| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589 |
- function GQ(t,e){for(var n=0;n<e.length;n++){const i=e[n];if(typeof i!="string"&&!Array.isArray(i)){for(const r in i)if(r!=="default"&&!(r in t)){const a=Object.getOwnPropertyDescriptor(i,r);a&&Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>i[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const s of a.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&i(s)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();var $x=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Vs(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var ME={exports:{}},ng={};var NU;function $Q(){if(NU)return ng;NU=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.fragment");function n(i,r,a){var s=null;if(a!==void 0&&(s=""+a),r.key!==void 0&&(s=""+r.key),"key"in r){a={};for(var o in r)o!=="key"&&(a[o]=r[o])}else a=r;return r=a.ref,{$$typeof:t,type:i,key:s,ref:r!==void 0?r:null,props:a}}return ng.Fragment=e,ng.jsx=n,ng.jsxs=n,ng}var OU;function WQ(){return OU||(OU=1,ME.exports=$Q()),ME.exports}var S=WQ(),EE={exports:{}},Gt={};var LU;function qQ(){if(LU)return Gt;LU=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),s=Symbol.for("react.context"),o=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.memo"),d=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),p=Symbol.iterator;function m(H){return H===null||typeof H!="object"?null:(H=p&&H[p]||H["@@iterator"],typeof H=="function"?H:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,x={};function v(H,X,re){this.props=H,this.context=X,this.refs=x,this.updater=re||y}v.prototype.isReactComponent={},v.prototype.setState=function(H,X){if(typeof H!="object"&&typeof H!="function"&&H!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,H,X,"setState")},v.prototype.forceUpdate=function(H){this.updater.enqueueForceUpdate(this,H,"forceUpdate")};function w(){}w.prototype=v.prototype;function M(H,X,re){this.props=H,this.context=X,this.refs=x,this.updater=re||y}var A=M.prototype=new w;A.constructor=M,b(A,v.prototype),A.isPureReactComponent=!0;var T=Array.isArray;function D(){}var C={H:null,A:null,T:null,S:null},U=Object.prototype.hasOwnProperty;function P(H,X,re){var ce=re.ref;return{$$typeof:t,type:H,key:X,ref:ce!==void 0?ce:null,props:re}}function k(H,X){return P(H.type,X,H.props)}function B(H){return typeof H=="object"&&H!==null&&H.$$typeof===t}function I(H){var X={"=":"=0",":":"=2"};return"$"+H.replace(/[=:]/g,function(re){return X[re]})}var W=/\/+/g;function O(H,X){return typeof H=="object"&&H!==null&&H.key!=null?I(""+H.key):X.toString(36)}function $(H){switch(H.status){case"fulfilled":return H.value;case"rejected":throw H.reason;default:switch(typeof H.status=="string"?H.then(D,D):(H.status="pending",H.then(function(X){H.status==="pending"&&(H.status="fulfilled",H.value=X)},function(X){H.status==="pending"&&(H.status="rejected",H.reason=X)})),H.status){case"fulfilled":return H.value;case"rejected":throw H.reason}}throw H}function q(H,X,re,ce,ye){var me=typeof H;(me==="undefined"||me==="boolean")&&(H=null);var be=!1;if(H===null)be=!0;else switch(me){case"bigint":case"string":case"number":be=!0;break;case"object":switch(H.$$typeof){case t:case e:be=!0;break;case d:return be=H._init,q(be(H._payload),X,re,ce,ye)}}if(be)return ye=ye(H),be=ce===""?"."+O(H,0):ce,T(ye)?(re="",be!=null&&(re=be.replace(W,"$&/")+"/"),q(ye,X,re,"",function(Ae){return Ae})):ye!=null&&(B(ye)&&(ye=k(ye,re+(ye.key==null||H&&H.key===ye.key?"":(""+ye.key).replace(W,"$&/")+"/")+be)),X.push(ye)),1;be=0;var Ne=ce===""?".":ce+":";if(T(H))for(var he=0;he<H.length;he++)ce=H[he],me=Ne+O(ce,he),be+=q(ce,X,re,me,ye);else if(he=m(H),typeof he=="function")for(H=he.call(H),he=0;!(ce=H.next()).done;)ce=ce.value,me=Ne+O(ce,he++),be+=q(ce,X,re,me,ye);else if(me==="object"){if(typeof H.then=="function")return q($(H),X,re,ce,ye);throw X=String(H),Error("Objects are not valid as a React child (found: "+(X==="[object Object]"?"object with keys {"+Object.keys(H).join(", ")+"}":X)+"). If you meant to render a collection of children, use an array instead.")}return be}function G(H,X,re){if(H==null)return H;var ce=[],ye=0;return q(H,ce,"","",function(me){return X.call(re,me,ye++)}),ce}function Y(H){if(H._status===-1){var X=H._result;X=X(),X.then(function(re){(H._status===0||H._status===-1)&&(H._status=1,H._result=re)},function(re){(H._status===0||H._status===-1)&&(H._status=2,H._result=re)}),H._status===-1&&(H._status=0,H._result=X)}if(H._status===1)return H._result.default;throw H._result}var Q=typeof reportError=="function"?reportError:function(H){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var X=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof H=="object"&&H!==null&&typeof H.message=="string"?String(H.message):String(H),error:H});if(!window.dispatchEvent(X))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",H);return}console.error(H)},se={map:G,forEach:function(H,X,re){G(H,function(){X.apply(this,arguments)},re)},count:function(H){var X=0;return G(H,function(){X++}),X},toArray:function(H){return G(H,function(X){return X})||[]},only:function(H){if(!B(H))throw Error("React.Children.only expected to receive a single React element child.");return H}};return Gt.Activity=f,Gt.Children=se,Gt.Component=v,Gt.Fragment=n,Gt.Profiler=r,Gt.PureComponent=M,Gt.StrictMode=i,Gt.Suspense=l,Gt.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=C,Gt.__COMPILER_RUNTIME={__proto__:null,c:function(H){return C.H.useMemoCache(H)}},Gt.cache=function(H){return function(){return H.apply(null,arguments)}},Gt.cacheSignal=function(){return null},Gt.cloneElement=function(H,X,re){if(H==null)throw Error("The argument must be a React element, but you passed "+H+".");var ce=b({},H.props),ye=H.key;if(X!=null)for(me in X.key!==void 0&&(ye=""+X.key),X)!U.call(X,me)||me==="key"||me==="__self"||me==="__source"||me==="ref"&&X.ref===void 0||(ce[me]=X[me]);var me=arguments.length-2;if(me===1)ce.children=re;else if(1<me){for(var be=Array(me),Ne=0;Ne<me;Ne++)be[Ne]=arguments[Ne+2];ce.children=be}return P(H.type,ye,ce)},Gt.createContext=function(H){return H={$$typeof:s,_currentValue:H,_currentValue2:H,_threadCount:0,Provider:null,Consumer:null},H.Provider=H,H.Consumer={$$typeof:a,_context:H},H},Gt.createElement=function(H,X,re){var ce,ye={},me=null;if(X!=null)for(ce in X.key!==void 0&&(me=""+X.key),X)U.call(X,ce)&&ce!=="key"&&ce!=="__self"&&ce!=="__source"&&(ye[ce]=X[ce]);var be=arguments.length-2;if(be===1)ye.children=re;else if(1<be){for(var Ne=Array(be),he=0;he<be;he++)Ne[he]=arguments[he+2];ye.children=Ne}if(H&&H.defaultProps)for(ce in be=H.defaultProps,be)ye[ce]===void 0&&(ye[ce]=be[ce]);return P(H,me,ye)},Gt.createRef=function(){return{current:null}},Gt.forwardRef=function(H){return{$$typeof:o,render:H}},Gt.isValidElement=B,Gt.lazy=function(H){return{$$typeof:d,_payload:{_status:-1,_result:H},_init:Y}},Gt.memo=function(H,X){return{$$typeof:c,type:H,compare:X===void 0?null:X}},Gt.startTransition=function(H){var X=C.T,re={};C.T=re;try{var ce=H(),ye=C.S;ye!==null&&ye(re,ce),typeof ce=="object"&&ce!==null&&typeof ce.then=="function"&&ce.then(D,Q)}catch(me){Q(me)}finally{X!==null&&re.types!==null&&(X.types=re.types),C.T=X}},Gt.unstable_useCacheRefresh=function(){return C.H.useCacheRefresh()},Gt.use=function(H){return C.H.use(H)},Gt.useActionState=function(H,X,re){return C.H.useActionState(H,X,re)},Gt.useCallback=function(H,X){return C.H.useCallback(H,X)},Gt.useContext=function(H){return C.H.useContext(H)},Gt.useDebugValue=function(){},Gt.useDeferredValue=function(H,X){return C.H.useDeferredValue(H,X)},Gt.useEffect=function(H,X){return C.H.useEffect(H,X)},Gt.useEffectEvent=function(H){return C.H.useEffectEvent(H)},Gt.useId=function(){return C.H.useId()},Gt.useImperativeHandle=function(H,X,re){return C.H.useImperativeHandle(H,X,re)},Gt.useInsertionEffect=function(H,X){return C.H.useInsertionEffect(H,X)},Gt.useLayoutEffect=function(H,X){return C.H.useLayoutEffect(H,X)},Gt.useMemo=function(H,X){return C.H.useMemo(H,X)},Gt.useOptimistic=function(H,X){return C.H.useOptimistic(H,X)},Gt.useReducer=function(H,X,re){return C.H.useReducer(H,X,re)},Gt.useRef=function(H){return C.H.useRef(H)},Gt.useState=function(H){return C.H.useState(H)},Gt.useSyncExternalStore=function(H,X,re){return C.H.useSyncExternalStore(H,X,re)},Gt.useTransition=function(){return C.H.useTransition()},Gt.version="19.2.0",Gt}var kU;function Hp(){return kU||(kU=1,EE.exports=qQ()),EE.exports}var R=Hp();const gi=Vs(R),XQ=GQ({__proto__:null,default:gi},[R]);var AE={exports:{}},ig={},TE={exports:{}},CE={};var IU;function YQ(){return IU||(IU=1,(function(t){function e(q,G){var Y=q.length;q.push(G);e:for(;0<Y;){var Q=Y-1>>>1,se=q[Q];if(0<r(se,G))q[Q]=G,q[Y]=se,Y=Q;else break e}}function n(q){return q.length===0?null:q[0]}function i(q){if(q.length===0)return null;var G=q[0],Y=q.pop();if(Y!==G){q[0]=Y;e:for(var Q=0,se=q.length,H=se>>>1;Q<H;){var X=2*(Q+1)-1,re=q[X],ce=X+1,ye=q[ce];if(0>r(re,Y))ce<se&&0>r(ye,re)?(q[Q]=ye,q[ce]=Y,Q=ce):(q[Q]=re,q[X]=Y,Q=X);else if(ce<se&&0>r(ye,Y))q[Q]=ye,q[ce]=Y,Q=ce;else break e}}return G}function r(q,G){var Y=q.sortIndex-G.sortIndex;return Y!==0?Y:q.id-G.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var a=performance;t.unstable_now=function(){return a.now()}}else{var s=Date,o=s.now();t.unstable_now=function(){return s.now()-o}}var l=[],c=[],d=1,f=null,p=3,m=!1,y=!1,b=!1,x=!1,v=typeof setTimeout=="function"?setTimeout:null,w=typeof clearTimeout=="function"?clearTimeout:null,M=typeof setImmediate<"u"?setImmediate:null;function A(q){for(var G=n(c);G!==null;){if(G.callback===null)i(c);else if(G.startTime<=q)i(c),G.sortIndex=G.expirationTime,e(l,G);else break;G=n(c)}}function T(q){if(b=!1,A(q),!y)if(n(l)!==null)y=!0,D||(D=!0,I());else{var G=n(c);G!==null&&$(T,G.startTime-q)}}var D=!1,C=-1,U=5,P=-1;function k(){return x?!0:!(t.unstable_now()-P<U)}function B(){if(x=!1,D){var q=t.unstable_now();P=q;var G=!0;try{e:{y=!1,b&&(b=!1,w(C),C=-1),m=!0;var Y=p;try{t:{for(A(q),f=n(l);f!==null&&!(f.expirationTime>q&&k());){var Q=f.callback;if(typeof Q=="function"){f.callback=null,p=f.priorityLevel;var se=Q(f.expirationTime<=q);if(q=t.unstable_now(),typeof se=="function"){f.callback=se,A(q),G=!0;break t}f===n(l)&&i(l),A(q)}else i(l);f=n(l)}if(f!==null)G=!0;else{var H=n(c);H!==null&&$(T,H.startTime-q),G=!1}}break e}finally{f=null,p=Y,m=!1}G=void 0}}finally{G?I():D=!1}}}var I;if(typeof M=="function")I=function(){M(B)};else if(typeof MessageChannel<"u"){var W=new MessageChannel,O=W.port2;W.port1.onmessage=B,I=function(){O.postMessage(null)}}else I=function(){v(B,0)};function $(q,G){C=v(function(){q(t.unstable_now())},G)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(q){q.callback=null},t.unstable_forceFrameRate=function(q){0>q||125<q?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):U=0<q?Math.floor(1e3/q):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_next=function(q){switch(p){case 1:case 2:case 3:var G=3;break;default:G=p}var Y=p;p=G;try{return q()}finally{p=Y}},t.unstable_requestPaint=function(){x=!0},t.unstable_runWithPriority=function(q,G){switch(q){case 1:case 2:case 3:case 4:case 5:break;default:q=3}var Y=p;p=q;try{return G()}finally{p=Y}},t.unstable_scheduleCallback=function(q,G,Y){var Q=t.unstable_now();switch(typeof Y=="object"&&Y!==null?(Y=Y.delay,Y=typeof Y=="number"&&0<Y?Q+Y:Q):Y=Q,q){case 1:var se=-1;break;case 2:se=250;break;case 5:se=1073741823;break;case 4:se=1e4;break;default:se=5e3}return se=Y+se,q={id:d++,callback:G,priorityLevel:q,startTime:Y,expirationTime:se,sortIndex:-1},Y>Q?(q.sortIndex=Y,e(c,q),n(l)===null&&q===n(c)&&(b?(w(C),C=-1):b=!0,$(T,Y-Q))):(q.sortIndex=se,e(l,q),y||m||(y=!0,D||(D=!0,I()))),q},t.unstable_shouldYield=k,t.unstable_wrapCallback=function(q){var G=p;return function(){var Y=p;p=G;try{return q.apply(this,arguments)}finally{p=Y}}}})(CE)),CE}var UU;function KQ(){return UU||(UU=1,TE.exports=YQ()),TE.exports}var RE={exports:{}},Vr={};var FU;function ZQ(){if(FU)return Vr;FU=1;var t=Hp();function e(l){var c="https://react.dev/errors/"+l;if(1<arguments.length){c+="?args[]="+encodeURIComponent(arguments[1]);for(var d=2;d<arguments.length;d++)c+="&args[]="+encodeURIComponent(arguments[d])}return"Minified React error #"+l+"; visit "+c+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var i={d:{f:n,r:function(){throw Error(e(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},r=Symbol.for("react.portal");function a(l,c,d){var f=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:r,key:f==null?null:""+f,children:l,containerInfo:c,implementation:d}}var s=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function o(l,c){if(l==="font")return"";if(typeof c=="string")return c==="use-credentials"?c:""}return Vr.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,Vr.createPortal=function(l,c){var d=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!c||c.nodeType!==1&&c.nodeType!==9&&c.nodeType!==11)throw Error(e(299));return a(l,c,null,d)},Vr.flushSync=function(l){var c=s.T,d=i.p;try{if(s.T=null,i.p=2,l)return l()}finally{s.T=c,i.p=d,i.d.f()}},Vr.preconnect=function(l,c){typeof l=="string"&&(c?(c=c.crossOrigin,c=typeof c=="string"?c==="use-credentials"?c:"":void 0):c=null,i.d.C(l,c))},Vr.prefetchDNS=function(l){typeof l=="string"&&i.d.D(l)},Vr.preinit=function(l,c){if(typeof l=="string"&&c&&typeof c.as=="string"){var d=c.as,f=o(d,c.crossOrigin),p=typeof c.integrity=="string"?c.integrity:void 0,m=typeof c.fetchPriority=="string"?c.fetchPriority:void 0;d==="style"?i.d.S(l,typeof c.precedence=="string"?c.precedence:void 0,{crossOrigin:f,integrity:p,fetchPriority:m}):d==="script"&&i.d.X(l,{crossOrigin:f,integrity:p,fetchPriority:m,nonce:typeof c.nonce=="string"?c.nonce:void 0})}},Vr.preinitModule=function(l,c){if(typeof l=="string")if(typeof c=="object"&&c!==null){if(c.as==null||c.as==="script"){var d=o(c.as,c.crossOrigin);i.d.M(l,{crossOrigin:d,integrity:typeof c.integrity=="string"?c.integrity:void 0,nonce:typeof c.nonce=="string"?c.nonce:void 0})}}else c==null&&i.d.M(l)},Vr.preload=function(l,c){if(typeof l=="string"&&typeof c=="object"&&c!==null&&typeof c.as=="string"){var d=c.as,f=o(d,c.crossOrigin);i.d.L(l,d,{crossOrigin:f,integrity:typeof c.integrity=="string"?c.integrity:void 0,nonce:typeof c.nonce=="string"?c.nonce:void 0,type:typeof c.type=="string"?c.type:void 0,fetchPriority:typeof c.fetchPriority=="string"?c.fetchPriority:void 0,referrerPolicy:typeof c.referrerPolicy=="string"?c.referrerPolicy:void 0,imageSrcSet:typeof c.imageSrcSet=="string"?c.imageSrcSet:void 0,imageSizes:typeof c.imageSizes=="string"?c.imageSizes:void 0,media:typeof c.media=="string"?c.media:void 0})}},Vr.preloadModule=function(l,c){if(typeof l=="string")if(c){var d=o(c.as,c.crossOrigin);i.d.m(l,{as:typeof c.as=="string"&&c.as!=="script"?c.as:void 0,crossOrigin:d,integrity:typeof c.integrity=="string"?c.integrity:void 0})}else i.d.m(l)},Vr.requestFormReset=function(l){i.d.r(l)},Vr.unstable_batchedUpdates=function(l,c){return l(c)},Vr.useFormState=function(l,c,d){return s.H.useFormState(l,c,d)},Vr.useFormStatus=function(){return s.H.useHostTransitionStatus()},Vr.version="19.2.0",Vr}var zU;function bV(){if(zU)return RE.exports;zU=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),RE.exports=ZQ(),RE.exports}var BU;function JQ(){if(BU)return ig;BU=1;var t=KQ(),e=Hp(),n=bV();function i(u){var h="https://react.dev/errors/"+u;if(1<arguments.length){h+="?args[]="+encodeURIComponent(arguments[1]);for(var g=2;g<arguments.length;g++)h+="&args[]="+encodeURIComponent(arguments[g])}return"Minified React error #"+u+"; visit "+h+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(u){return!(!u||u.nodeType!==1&&u.nodeType!==9&&u.nodeType!==11)}function a(u){var h=u,g=u;if(u.alternate)for(;h.return;)h=h.return;else{u=h;do h=u,(h.flags&4098)!==0&&(g=h.return),u=h.return;while(u)}return h.tag===3?g:null}function s(u){if(u.tag===13){var h=u.memoizedState;if(h===null&&(u=u.alternate,u!==null&&(h=u.memoizedState)),h!==null)return h.dehydrated}return null}function o(u){if(u.tag===31){var h=u.memoizedState;if(h===null&&(u=u.alternate,u!==null&&(h=u.memoizedState)),h!==null)return h.dehydrated}return null}function l(u){if(a(u)!==u)throw Error(i(188))}function c(u){var h=u.alternate;if(!h){if(h=a(u),h===null)throw Error(i(188));return h!==u?null:u}for(var g=u,_=h;;){var E=g.return;if(E===null)break;var N=E.alternate;if(N===null){if(_=E.return,_!==null){g=_;continue}break}if(E.child===N.child){for(N=E.child;N;){if(N===g)return l(E),u;if(N===_)return l(E),h;N=N.sibling}throw Error(i(188))}if(g.return!==_.return)g=E,_=N;else{for(var j=!1,te=E.child;te;){if(te===g){j=!0,g=E,_=N;break}if(te===_){j=!0,_=E,g=N;break}te=te.sibling}if(!j){for(te=N.child;te;){if(te===g){j=!0,g=N,_=E;break}if(te===_){j=!0,_=N,g=E;break}te=te.sibling}if(!j)throw Error(i(189))}}if(g.alternate!==_)throw Error(i(190))}if(g.tag!==3)throw Error(i(188));return g.stateNode.current===g?u:h}function d(u){var h=u.tag;if(h===5||h===26||h===27||h===6)return u;for(u=u.child;u!==null;){if(h=d(u),h!==null)return h;u=u.sibling}return null}var f=Object.assign,p=Symbol.for("react.element"),m=Symbol.for("react.transitional.element"),y=Symbol.for("react.portal"),b=Symbol.for("react.fragment"),x=Symbol.for("react.strict_mode"),v=Symbol.for("react.profiler"),w=Symbol.for("react.consumer"),M=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),D=Symbol.for("react.suspense_list"),C=Symbol.for("react.memo"),U=Symbol.for("react.lazy"),P=Symbol.for("react.activity"),k=Symbol.for("react.memo_cache_sentinel"),B=Symbol.iterator;function I(u){return u===null||typeof u!="object"?null:(u=B&&u[B]||u["@@iterator"],typeof u=="function"?u:null)}var W=Symbol.for("react.client.reference");function O(u){if(u==null)return null;if(typeof u=="function")return u.$$typeof===W?null:u.displayName||u.name||null;if(typeof u=="string")return u;switch(u){case b:return"Fragment";case v:return"Profiler";case x:return"StrictMode";case T:return"Suspense";case D:return"SuspenseList";case P:return"Activity"}if(typeof u=="object")switch(u.$$typeof){case y:return"Portal";case M:return u.displayName||"Context";case w:return(u._context.displayName||"Context")+".Consumer";case A:var h=u.render;return u=u.displayName,u||(u=h.displayName||h.name||"",u=u!==""?"ForwardRef("+u+")":"ForwardRef"),u;case C:return h=u.displayName||null,h!==null?h:O(u.type)||"Memo";case U:h=u._payload,u=u._init;try{return O(u(h))}catch{}}return null}var $=Array.isArray,q=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,G=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Y={pending:!1,data:null,method:null,action:null},Q=[],se=-1;function H(u){return{current:u}}function X(u){0>se||(u.current=Q[se],Q[se]=null,se--)}function re(u,h){se++,Q[se]=u.current,u.current=h}var ce=H(null),ye=H(null),me=H(null),be=H(null);function Ne(u,h){switch(re(me,h),re(ye,u),re(ce,null),h.nodeType){case 9:case 11:u=(u=h.documentElement)&&(u=u.namespaceURI)?tU(u):0;break;default:if(u=h.tagName,h=h.namespaceURI)h=tU(h),u=nU(h,u);else switch(u){case"svg":u=1;break;case"math":u=2;break;default:u=0}}X(ce),re(ce,u)}function he(){X(ce),X(ye),X(me)}function Ae(u){u.memoizedState!==null&&re(be,u);var h=ce.current,g=nU(h,u.type);h!==g&&(re(ye,u),re(ce,g))}function Be(u){ye.current===u&&(X(ce),X(ye)),be.current===u&&(X(be),Jm._currentValue=Y)}var le,ct;function z(u){if(le===void 0)try{throw Error()}catch(g){var h=g.stack.trim().match(/\n( *(at )?)/);le=h&&h[1]||"",ct=-1<g.stack.indexOf(`
- at`)?" (<anonymous>)":-1<g.stack.indexOf("@")?"@unknown:0:0":""}return`
- `+le+u+ct}var V=!1;function ne(u,h){if(!u||V)return"";V=!0;var g=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var _={DetermineComponentFrameRoot:function(){try{if(h){var it=function(){throw Error()};if(Object.defineProperty(it.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(it,[])}catch(Ye){var Ve=Ye}Reflect.construct(u,[],it)}else{try{it.call()}catch(Ye){Ve=Ye}u.call(it.prototype)}}else{try{throw Error()}catch(Ye){Ve=Ye}(it=u())&&typeof it.catch=="function"&&it.catch(function(){})}}catch(Ye){if(Ye&&Ve&&typeof Ye.stack=="string")return[Ye.stack,Ve.stack]}return[null,null]}};_.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var E=Object.getOwnPropertyDescriptor(_.DetermineComponentFrameRoot,"name");E&&E.configurable&&Object.defineProperty(_.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var N=_.DetermineComponentFrameRoot(),j=N[0],te=N[1];if(j&&te){var Se=j.split(`
- `),ze=te.split(`
- `);for(E=_=0;_<Se.length&&!Se[_].includes("DetermineComponentFrameRoot");)_++;for(;E<ze.length&&!ze[E].includes("DetermineComponentFrameRoot");)E++;if(_===Se.length||E===ze.length)for(_=Se.length-1,E=ze.length-1;1<=_&&0<=E&&Se[_]!==ze[E];)E--;for(;1<=_&&0<=E;_--,E--)if(Se[_]!==ze[E]){if(_!==1||E!==1)do if(_--,E--,0>E||Se[_]!==ze[E]){var Je=`
- `+Se[_].replace(" at new "," at ");return u.displayName&&Je.includes("<anonymous>")&&(Je=Je.replace("<anonymous>",u.displayName)),Je}while(1<=_&&0<=E);break}}}finally{V=!1,Error.prepareStackTrace=g}return(g=u?u.displayName||u.name:"")?z(g):""}function J(u,h){switch(u.tag){case 26:case 27:case 5:return z(u.type);case 16:return z("Lazy");case 13:return u.child!==h&&h!==null?z("Suspense Fallback"):z("Suspense");case 19:return z("SuspenseList");case 0:case 15:return ne(u.type,!1);case 11:return ne(u.type.render,!1);case 1:return ne(u.type,!0);case 31:return z("Activity");default:return""}}function ee(u){try{var h="",g=null;do h+=J(u,g),g=u,u=u.return;while(u);return h}catch(_){return`
- Error generating stack: `+_.message+`
- `+_.stack}}var ae=Object.prototype.hasOwnProperty,ie=t.unstable_scheduleCallback,we=t.unstable_cancelCallback,ve=t.unstable_shouldYield,F=t.unstable_requestPaint,L=t.unstable_now,K=t.unstable_getCurrentPriorityLevel,pe=t.unstable_ImmediatePriority,xe=t.unstable_UserBlockingPriority,fe=t.unstable_NormalPriority,Ke=t.unstable_LowPriority,ke=t.unstable_IdlePriority,$e=t.log,rt=t.unstable_setDisableYieldValue,Ue=null,De=null;function ut(u){if(typeof $e=="function"&&rt(u),De&&typeof De.setStrictMode=="function")try{De.setStrictMode(Ue,u)}catch{}}var et=Math.clz32?Math.clz32:ue,Qe=Math.log,st=Math.LN2;function ue(u){return u>>>=0,u===0?32:31-(Qe(u)/st|0)|0}var tt=256,de=262144,Le=4194304;function Ee(u){var h=u&42;if(h!==0)return h;switch(u&-u){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return u&261888;case 262144:case 524288:case 1048576:case 2097152:return u&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return u&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return u}}function ge(u,h,g){var _=u.pendingLanes;if(_===0)return 0;var E=0,N=u.suspendedLanes,j=u.pingedLanes;u=u.warmLanes;var te=_&134217727;return te!==0?(_=te&~N,_!==0?E=Ee(_):(j&=te,j!==0?E=Ee(j):g||(g=te&~u,g!==0&&(E=Ee(g))))):(te=_&~N,te!==0?E=Ee(te):j!==0?E=Ee(j):g||(g=_&~u,g!==0&&(E=Ee(g)))),E===0?0:h!==0&&h!==E&&(h&N)===0&&(N=E&-E,g=h&-h,N>=g||N===32&&(g&4194048)!==0)?h:E}function je(u,h){return(u.pendingLanes&~(u.suspendedLanes&~u.pingedLanes)&h)===0}function at(u,h){switch(u){case 1:case 2:case 4:case 8:case 64:return h+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return h+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function vt(){var u=Le;return Le<<=1,(Le&62914560)===0&&(Le=4194304),u}function Ct(u){for(var h=[],g=0;31>g;g++)h.push(u);return h}function en(u,h){u.pendingLanes|=h,h!==268435456&&(u.suspendedLanes=0,u.pingedLanes=0,u.warmLanes=0)}function Dt(u,h,g,_,E,N){var j=u.pendingLanes;u.pendingLanes=g,u.suspendedLanes=0,u.pingedLanes=0,u.warmLanes=0,u.expiredLanes&=g,u.entangledLanes&=g,u.errorRecoveryDisabledLanes&=g,u.shellSuspendCounter=0;var te=u.entanglements,Se=u.expirationTimes,ze=u.hiddenUpdates;for(g=j&~g;0<g;){var Je=31-et(g),it=1<<Je;te[Je]=0,Se[Je]=-1;var Ve=ze[Je];if(Ve!==null)for(ze[Je]=null,Je=0;Je<Ve.length;Je++){var Ye=Ve[Je];Ye!==null&&(Ye.lane&=-536870913)}g&=~it}_!==0&&wn(u,_,0),N!==0&&E===0&&u.tag!==0&&(u.suspendedLanes|=N&~(j&~h))}function wn(u,h,g){u.pendingLanes|=h,u.suspendedLanes&=~h;var _=31-et(h);u.entangledLanes|=h,u.entanglements[_]=u.entanglements[_]|1073741824|g&261930}function zn(u,h){var g=u.entangledLanes|=h;for(u=u.entanglements;g;){var _=31-et(g),E=1<<_;E&h|u[_]&h&&(u[_]|=h),g&=~E}}function cr(u,h){var g=h&-h;return g=(g&42)!==0?1:Gi(g),(g&(u.suspendedLanes|h))!==0?0:g}function Gi(u){switch(u){case 2:u=1;break;case 8:u=4;break;case 32:u=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:u=128;break;case 268435456:u=134217728;break;default:u=0}return u}function ur(u){return u&=-u,2<u?8<u?(u&134217727)!==0?32:268435456:8:2}function Er(){var u=G.p;return u!==0?u:(u=window.event,u===void 0?32:EU(u.type))}function Hr(u,h){var g=G.p;try{return G.p=u,h()}finally{G.p=g}}var Ai=Math.random().toString(36).slice(2),ri="__reactFiber$"+Ai,xi="__reactProps$"+Ai,$s="__reactContainer$"+Ai,mc="__reactEvents$"+Ai,oe="__reactListeners$"+Ai,Ie="__reactHandles$"+Ai,qe="__reactResources$"+Ai,Xe="__reactMarker$"+Ai;function We(u){delete u[ri],delete u[xi],delete u[mc],delete u[oe],delete u[Ie]}function xt(u){var h=u[ri];if(h)return h;for(var g=u.parentNode;g;){if(h=g[$s]||g[ri]){if(g=h.alternate,h.child!==null||g!==null&&g.child!==null)for(u=cU(u);u!==null;){if(g=u[ri])return g;u=cU(u)}return h}u=g,g=u.parentNode}return null}function Z(u){if(u=u[ri]||u[$s]){var h=u.tag;if(h===5||h===6||h===13||h===31||h===26||h===27||h===3)return u}return null}function _e(u){var h=u.tag;if(h===5||h===26||h===27||h===6)return u.stateNode;throw Error(i(33))}function Pe(u){var h=u[qe];return h||(h=u[qe]={hoistableStyles:new Map,hoistableScripts:new Map}),h}function Re(u){u[Xe]=!0}var Me=new Set,Ze={};function ot(u,h){mt(u,h),mt(u+"Capture",h)}function mt(u,h){for(Ze[u]=h,u=0;u<h.length;u++)Me.add(h[u])}var pt=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Rt={},bt={};function dt(u){return ae.call(bt,u)?!0:ae.call(Rt,u)?!1:pt.test(u)?bt[u]=!0:(Rt[u]=!0,!1)}function Bt(u,h,g){if(dt(h))if(g===null)u.removeAttribute(h);else{switch(typeof g){case"undefined":case"function":case"symbol":u.removeAttribute(h);return;case"boolean":var _=h.toLowerCase().slice(0,5);if(_!=="data-"&&_!=="aria-"){u.removeAttribute(h);return}}u.setAttribute(h,""+g)}}function Ot(u,h,g){if(g===null)u.removeAttribute(h);else{switch(typeof g){case"undefined":case"function":case"symbol":case"boolean":u.removeAttribute(h);return}u.setAttribute(h,""+g)}}function Xt(u,h,g,_){if(_===null)u.removeAttribute(g);else{switch(typeof _){case"undefined":case"function":case"symbol":case"boolean":u.removeAttribute(g);return}u.setAttributeNS(h,g,""+_)}}function nn(u){switch(typeof u){case"bigint":case"boolean":case"number":case"string":case"undefined":return u;case"object":return u;default:return""}}function ln(u){var h=u.type;return(u=u.nodeName)&&u.toLowerCase()==="input"&&(h==="checkbox"||h==="radio")}function Nt(u,h,g){var _=Object.getOwnPropertyDescriptor(u.constructor.prototype,h);if(!u.hasOwnProperty(h)&&typeof _<"u"&&typeof _.get=="function"&&typeof _.set=="function"){var E=_.get,N=_.set;return Object.defineProperty(u,h,{configurable:!0,get:function(){return E.call(this)},set:function(j){g=""+j,N.call(this,j)}}),Object.defineProperty(u,h,{enumerable:_.enumerable}),{getValue:function(){return g},setValue:function(j){g=""+j},stopTracking:function(){u._valueTracker=null,delete u[h]}}}}function Vt(u){if(!u._valueTracker){var h=ln(u)?"checked":"value";u._valueTracker=Nt(u,h,""+u[h])}}function $t(u){if(!u)return!1;var h=u._valueTracker;if(!h)return!0;var g=h.getValue(),_="";return u&&(_=ln(u)?u.checked?"true":"false":u.value),u=_,u!==g?(h.setValue(u),!0):!1}function ui(u){if(u=u||(typeof document<"u"?document:void 0),typeof u>"u")return null;try{return u.activeElement||u.body}catch{return u.body}}var yi=/[\n"\\]/g;function Sn(u){return u.replace(yi,function(h){return"\\"+h.charCodeAt(0).toString(16)+" "})}function Ws(u,h,g,_,E,N,j,te){u.name="",j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"?u.type=j:u.removeAttribute("type"),h!=null?j==="number"?(h===0&&u.value===""||u.value!=h)&&(u.value=""+nn(h)):u.value!==""+nn(h)&&(u.value=""+nn(h)):j!=="submit"&&j!=="reset"||u.removeAttribute("value"),h!=null?dr(u,j,nn(h)):g!=null?dr(u,j,nn(g)):_!=null&&u.removeAttribute("value"),E==null&&N!=null&&(u.defaultChecked=!!N),E!=null&&(u.checked=E&&typeof E!="function"&&typeof E!="symbol"),te!=null&&typeof te!="function"&&typeof te!="symbol"&&typeof te!="boolean"?u.name=""+nn(te):u.removeAttribute("name")}function Mn(u,h,g,_,E,N,j,te){if(N!=null&&typeof N!="function"&&typeof N!="symbol"&&typeof N!="boolean"&&(u.type=N),h!=null||g!=null){if(!(N!=="submit"&&N!=="reset"||h!=null)){Vt(u);return}g=g!=null?""+nn(g):"",h=h!=null?""+nn(h):g,te||h===u.value||(u.value=h),u.defaultValue=h}_=_??E,_=typeof _!="function"&&typeof _!="symbol"&&!!_,u.checked=te?u.checked:!!_,u.defaultChecked=!!_,j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"&&(u.name=j),Vt(u)}function dr(u,h,g){h==="number"&&ui(u.ownerDocument)===u||u.defaultValue===""+g||(u.defaultValue=""+g)}function $i(u,h,g,_){if(u=u.options,h){h={};for(var E=0;E<g.length;E++)h["$"+g[E]]=!0;for(g=0;g<u.length;g++)E=h.hasOwnProperty("$"+u[g].value),u[g].selected!==E&&(u[g].selected=E),E&&_&&(u[g].defaultSelected=!0)}else{for(g=""+nn(g),h=null,E=0;E<u.length;E++){if(u[E].value===g){u[E].selected=!0,_&&(u[E].defaultSelected=!0);return}h!==null||u[E].disabled||(h=u[E])}h!==null&&(h.selected=!0)}}function fr(u,h,g){if(h!=null&&(h=""+nn(h),h!==u.value&&(u.value=h),g==null)){u.defaultValue!==h&&(u.defaultValue=h);return}u.defaultValue=g!=null?""+nn(g):""}function Ar(u,h,g,_){if(h==null){if(_!=null){if(g!=null)throw Error(i(92));if($(_)){if(1<_.length)throw Error(i(93));_=_[0]}g=_}g==null&&(g=""),h=g}g=nn(h),u.defaultValue=g,_=u.textContent,_===g&&_!==""&&_!==null&&(u.value=_),Vt(u)}function yo(u,h){if(h){var g=u.firstChild;if(g&&g===u.lastChild&&g.nodeType===3){g.nodeValue=h;return}}u.textContent=h}var Ko=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function JO(u,h,g){var _=h.indexOf("--")===0;g==null||typeof g=="boolean"||g===""?_?u.setProperty(h,""):h==="float"?u.cssFloat="":u[h]="":_?u.setProperty(h,g):typeof g!="number"||g===0||Ko.has(h)?h==="float"?u.cssFloat=g:u[h]=(""+g).trim():u[h]=g+"px"}function QO(u,h,g){if(h!=null&&typeof h!="object")throw Error(i(62));if(u=u.style,g!=null){for(var _ in g)!g.hasOwnProperty(_)||h!=null&&h.hasOwnProperty(_)||(_.indexOf("--")===0?u.setProperty(_,""):_==="float"?u.cssFloat="":u[_]="");for(var E in h)_=h[E],h.hasOwnProperty(E)&&g[E]!==_&&JO(u,E,_)}else for(var N in h)h.hasOwnProperty(N)&&JO(u,N,h[N])}function bw(u){if(u.indexOf("-")===-1)return!1;switch(u){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var BZ=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),jZ=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Iv(u){return jZ.test(""+u)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":u}function Zo(){}var _w=null;function Sw(u){return u=u.target||u.srcElement||window,u.correspondingUseElement&&(u=u.correspondingUseElement),u.nodeType===3?u.parentNode:u}var Pf=null,Df=null;function eL(u){var h=Z(u);if(h&&(u=h.stateNode)){var g=u[xi]||null;e:switch(u=h.stateNode,h.type){case"input":if(Ws(u,g.value,g.defaultValue,g.defaultValue,g.checked,g.defaultChecked,g.type,g.name),h=g.name,g.type==="radio"&&h!=null){for(g=u;g.parentNode;)g=g.parentNode;for(g=g.querySelectorAll('input[name="'+Sn(""+h)+'"][type="radio"]'),h=0;h<g.length;h++){var _=g[h];if(_!==u&&_.form===u.form){var E=_[xi]||null;if(!E)throw Error(i(90));Ws(_,E.value,E.defaultValue,E.defaultValue,E.checked,E.defaultChecked,E.type,E.name)}}for(h=0;h<g.length;h++)_=g[h],_.form===u.form&&$t(_)}break e;case"textarea":fr(u,g.value,g.defaultValue);break e;case"select":h=g.value,h!=null&&$i(u,!!g.multiple,h,!1)}}}var ww=!1;function tL(u,h,g){if(ww)return u(h,g);ww=!0;try{var _=u(h);return _}finally{if(ww=!1,(Pf!==null||Df!==null)&&(wx(),Pf&&(h=Pf,u=Df,Df=Pf=null,eL(h),u)))for(h=0;h<u.length;h++)eL(u[h])}}function mm(u,h){var g=u.stateNode;if(g===null)return null;var _=g[xi]||null;if(_===null)return null;g=_[h];e:switch(h){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(_=!_.disabled)||(u=u.type,_=!(u==="button"||u==="input"||u==="select"||u==="textarea")),u=!_;break e;default:u=!1}if(u)return null;if(g&&typeof g!="function")throw Error(i(231,h,typeof g));return g}var Jo=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Mw=!1;if(Jo)try{var gm={};Object.defineProperty(gm,"passive",{get:function(){Mw=!0}}),window.addEventListener("test",gm,gm),window.removeEventListener("test",gm,gm)}catch{Mw=!1}var gc=null,Ew=null,Uv=null;function nL(){if(Uv)return Uv;var u,h=Ew,g=h.length,_,E="value"in gc?gc.value:gc.textContent,N=E.length;for(u=0;u<g&&h[u]===E[u];u++);var j=g-u;for(_=1;_<=j&&h[g-_]===E[N-_];_++);return Uv=E.slice(u,1<_?1-_:void 0)}function Fv(u){var h=u.keyCode;return"charCode"in u?(u=u.charCode,u===0&&h===13&&(u=13)):u=h,u===10&&(u=13),32<=u||u===13?u:0}function zv(){return!0}function iL(){return!1}function xa(u){function h(g,_,E,N,j){this._reactName=g,this._targetInst=E,this.type=_,this.nativeEvent=N,this.target=j,this.currentTarget=null;for(var te in u)u.hasOwnProperty(te)&&(g=u[te],this[te]=g?g(N):N[te]);return this.isDefaultPrevented=(N.defaultPrevented!=null?N.defaultPrevented:N.returnValue===!1)?zv:iL,this.isPropagationStopped=iL,this}return f(h.prototype,{preventDefault:function(){this.defaultPrevented=!0;var g=this.nativeEvent;g&&(g.preventDefault?g.preventDefault():typeof g.returnValue!="unknown"&&(g.returnValue=!1),this.isDefaultPrevented=zv)},stopPropagation:function(){var g=this.nativeEvent;g&&(g.stopPropagation?g.stopPropagation():typeof g.cancelBubble!="unknown"&&(g.cancelBubble=!0),this.isPropagationStopped=zv)},persist:function(){},isPersistent:zv}),h}var $u={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(u){return u.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Bv=xa($u),vm=f({},$u,{view:0,detail:0}),HZ=xa(vm),Aw,Tw,xm,jv=f({},vm,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Rw,button:0,buttons:0,relatedTarget:function(u){return u.relatedTarget===void 0?u.fromElement===u.srcElement?u.toElement:u.fromElement:u.relatedTarget},movementX:function(u){return"movementX"in u?u.movementX:(u!==xm&&(xm&&u.type==="mousemove"?(Aw=u.screenX-xm.screenX,Tw=u.screenY-xm.screenY):Tw=Aw=0,xm=u),Aw)},movementY:function(u){return"movementY"in u?u.movementY:Tw}}),rL=xa(jv),VZ=f({},jv,{dataTransfer:0}),GZ=xa(VZ),$Z=f({},vm,{relatedTarget:0}),Cw=xa($Z),WZ=f({},$u,{animationName:0,elapsedTime:0,pseudoElement:0}),qZ=xa(WZ),XZ=f({},$u,{clipboardData:function(u){return"clipboardData"in u?u.clipboardData:window.clipboardData}}),YZ=xa(XZ),KZ=f({},$u,{data:0}),aL=xa(KZ),ZZ={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},JZ={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},QZ={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function eJ(u){var h=this.nativeEvent;return h.getModifierState?h.getModifierState(u):(u=QZ[u])?!!h[u]:!1}function Rw(){return eJ}var tJ=f({},vm,{key:function(u){if(u.key){var h=ZZ[u.key]||u.key;if(h!=="Unidentified")return h}return u.type==="keypress"?(u=Fv(u),u===13?"Enter":String.fromCharCode(u)):u.type==="keydown"||u.type==="keyup"?JZ[u.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Rw,charCode:function(u){return u.type==="keypress"?Fv(u):0},keyCode:function(u){return u.type==="keydown"||u.type==="keyup"?u.keyCode:0},which:function(u){return u.type==="keypress"?Fv(u):u.type==="keydown"||u.type==="keyup"?u.keyCode:0}}),nJ=xa(tJ),iJ=f({},jv,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),sL=xa(iJ),rJ=f({},vm,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Rw}),aJ=xa(rJ),sJ=f({},$u,{propertyName:0,elapsedTime:0,pseudoElement:0}),oJ=xa(sJ),lJ=f({},jv,{deltaX:function(u){return"deltaX"in u?u.deltaX:"wheelDeltaX"in u?-u.wheelDeltaX:0},deltaY:function(u){return"deltaY"in u?u.deltaY:"wheelDeltaY"in u?-u.wheelDeltaY:"wheelDelta"in u?-u.wheelDelta:0},deltaZ:0,deltaMode:0}),cJ=xa(lJ),uJ=f({},$u,{newState:0,oldState:0}),dJ=xa(uJ),fJ=[9,13,27,32],Pw=Jo&&"CompositionEvent"in window,ym=null;Jo&&"documentMode"in document&&(ym=document.documentMode);var hJ=Jo&&"TextEvent"in window&&!ym,oL=Jo&&(!Pw||ym&&8<ym&&11>=ym),lL=" ",cL=!1;function uL(u,h){switch(u){case"keyup":return fJ.indexOf(h.keyCode)!==-1;case"keydown":return h.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function dL(u){return u=u.detail,typeof u=="object"&&"data"in u?u.data:null}var Nf=!1;function pJ(u,h){switch(u){case"compositionend":return dL(h);case"keypress":return h.which!==32?null:(cL=!0,lL);case"textInput":return u=h.data,u===lL&&cL?null:u;default:return null}}function mJ(u,h){if(Nf)return u==="compositionend"||!Pw&&uL(u,h)?(u=nL(),Uv=Ew=gc=null,Nf=!1,u):null;switch(u){case"paste":return null;case"keypress":if(!(h.ctrlKey||h.altKey||h.metaKey)||h.ctrlKey&&h.altKey){if(h.char&&1<h.char.length)return h.char;if(h.which)return String.fromCharCode(h.which)}return null;case"compositionend":return oL&&h.locale!=="ko"?null:h.data;default:return null}}var gJ={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function fL(u){var h=u&&u.nodeName&&u.nodeName.toLowerCase();return h==="input"?!!gJ[u.type]:h==="textarea"}function hL(u,h,g,_){Pf?Df?Df.push(_):Df=[_]:Pf=_,h=Px(h,"onChange"),0<h.length&&(g=new Bv("onChange","change",null,g,_),u.push({event:g,listeners:h}))}var bm=null,_m=null;function vJ(u){YI(u,0)}function Hv(u){var h=_e(u);if($t(h))return u}function pL(u,h){if(u==="change")return h}var mL=!1;if(Jo){var Dw;if(Jo){var Nw="oninput"in document;if(!Nw){var gL=document.createElement("div");gL.setAttribute("oninput","return;"),Nw=typeof gL.oninput=="function"}Dw=Nw}else Dw=!1;mL=Dw&&(!document.documentMode||9<document.documentMode)}function vL(){bm&&(bm.detachEvent("onpropertychange",xL),_m=bm=null)}function xL(u){if(u.propertyName==="value"&&Hv(_m)){var h=[];hL(h,_m,u,Sw(u)),tL(vJ,h)}}function xJ(u,h,g){u==="focusin"?(vL(),bm=h,_m=g,bm.attachEvent("onpropertychange",xL)):u==="focusout"&&vL()}function yJ(u){if(u==="selectionchange"||u==="keyup"||u==="keydown")return Hv(_m)}function bJ(u,h){if(u==="click")return Hv(h)}function _J(u,h){if(u==="input"||u==="change")return Hv(h)}function SJ(u,h){return u===h&&(u!==0||1/u===1/h)||u!==u&&h!==h}var Ba=typeof Object.is=="function"?Object.is:SJ;function Sm(u,h){if(Ba(u,h))return!0;if(typeof u!="object"||u===null||typeof h!="object"||h===null)return!1;var g=Object.keys(u),_=Object.keys(h);if(g.length!==_.length)return!1;for(_=0;_<g.length;_++){var E=g[_];if(!ae.call(h,E)||!Ba(u[E],h[E]))return!1}return!0}function yL(u){for(;u&&u.firstChild;)u=u.firstChild;return u}function bL(u,h){var g=yL(u);u=0;for(var _;g;){if(g.nodeType===3){if(_=u+g.textContent.length,u<=h&&_>=h)return{node:g,offset:h-u};u=_}e:{for(;g;){if(g.nextSibling){g=g.nextSibling;break e}g=g.parentNode}g=void 0}g=yL(g)}}function _L(u,h){return u&&h?u===h?!0:u&&u.nodeType===3?!1:h&&h.nodeType===3?_L(u,h.parentNode):"contains"in u?u.contains(h):u.compareDocumentPosition?!!(u.compareDocumentPosition(h)&16):!1:!1}function SL(u){u=u!=null&&u.ownerDocument!=null&&u.ownerDocument.defaultView!=null?u.ownerDocument.defaultView:window;for(var h=ui(u.document);h instanceof u.HTMLIFrameElement;){try{var g=typeof h.contentWindow.location.href=="string"}catch{g=!1}if(g)u=h.contentWindow;else break;h=ui(u.document)}return h}function Ow(u){var h=u&&u.nodeName&&u.nodeName.toLowerCase();return h&&(h==="input"&&(u.type==="text"||u.type==="search"||u.type==="tel"||u.type==="url"||u.type==="password")||h==="textarea"||u.contentEditable==="true")}var wJ=Jo&&"documentMode"in document&&11>=document.documentMode,Of=null,Lw=null,wm=null,kw=!1;function wL(u,h,g){var _=g.window===g?g.document:g.nodeType===9?g:g.ownerDocument;kw||Of==null||Of!==ui(_)||(_=Of,"selectionStart"in _&&Ow(_)?_={start:_.selectionStart,end:_.selectionEnd}:(_=(_.ownerDocument&&_.ownerDocument.defaultView||window).getSelection(),_={anchorNode:_.anchorNode,anchorOffset:_.anchorOffset,focusNode:_.focusNode,focusOffset:_.focusOffset}),wm&&Sm(wm,_)||(wm=_,_=Px(Lw,"onSelect"),0<_.length&&(h=new Bv("onSelect","select",null,h,g),u.push({event:h,listeners:_}),h.target=Of)))}function Wu(u,h){var g={};return g[u.toLowerCase()]=h.toLowerCase(),g["Webkit"+u]="webkit"+h,g["Moz"+u]="moz"+h,g}var Lf={animationend:Wu("Animation","AnimationEnd"),animationiteration:Wu("Animation","AnimationIteration"),animationstart:Wu("Animation","AnimationStart"),transitionrun:Wu("Transition","TransitionRun"),transitionstart:Wu("Transition","TransitionStart"),transitioncancel:Wu("Transition","TransitionCancel"),transitionend:Wu("Transition","TransitionEnd")},Iw={},ML={};Jo&&(ML=document.createElement("div").style,"AnimationEvent"in window||(delete Lf.animationend.animation,delete Lf.animationiteration.animation,delete Lf.animationstart.animation),"TransitionEvent"in window||delete Lf.transitionend.transition);function qu(u){if(Iw[u])return Iw[u];if(!Lf[u])return u;var h=Lf[u],g;for(g in h)if(h.hasOwnProperty(g)&&g in ML)return Iw[u]=h[g];return u}var EL=qu("animationend"),AL=qu("animationiteration"),TL=qu("animationstart"),MJ=qu("transitionrun"),EJ=qu("transitionstart"),AJ=qu("transitioncancel"),CL=qu("transitionend"),RL=new Map,Uw="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Uw.push("scrollEnd");function qs(u,h){RL.set(u,h),ot(h,[u])}var Vv=typeof reportError=="function"?reportError:function(u){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var h=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof u=="object"&&u!==null&&typeof u.message=="string"?String(u.message):String(u),error:u});if(!window.dispatchEvent(h))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",u);return}console.error(u)},cs=[],kf=0,Fw=0;function Gv(){for(var u=kf,h=Fw=kf=0;h<u;){var g=cs[h];cs[h++]=null;var _=cs[h];cs[h++]=null;var E=cs[h];cs[h++]=null;var N=cs[h];if(cs[h++]=null,_!==null&&E!==null){var j=_.pending;j===null?E.next=E:(E.next=j.next,j.next=E),_.pending=E}N!==0&&PL(g,E,N)}}function $v(u,h,g,_){cs[kf++]=u,cs[kf++]=h,cs[kf++]=g,cs[kf++]=_,Fw|=_,u.lanes|=_,u=u.alternate,u!==null&&(u.lanes|=_)}function zw(u,h,g,_){return $v(u,h,g,_),Wv(u)}function Xu(u,h){return $v(u,null,null,h),Wv(u)}function PL(u,h,g){u.lanes|=g;var _=u.alternate;_!==null&&(_.lanes|=g);for(var E=!1,N=u.return;N!==null;)N.childLanes|=g,_=N.alternate,_!==null&&(_.childLanes|=g),N.tag===22&&(u=N.stateNode,u===null||u._visibility&1||(E=!0)),u=N,N=N.return;return u.tag===3?(N=u.stateNode,E&&h!==null&&(E=31-et(g),u=N.hiddenUpdates,_=u[E],_===null?u[E]=[h]:_.push(h),h.lane=g|536870912),N):null}function Wv(u){if(50<$m)throw $m=0,XM=null,Error(i(185));for(var h=u.return;h!==null;)u=h,h=u.return;return u.tag===3?u.stateNode:null}var If={};function TJ(u,h,g,_){this.tag=u,this.key=g,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=h,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=_,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ja(u,h,g,_){return new TJ(u,h,g,_)}function Bw(u){return u=u.prototype,!(!u||!u.isReactComponent)}function Qo(u,h){var g=u.alternate;return g===null?(g=ja(u.tag,h,u.key,u.mode),g.elementType=u.elementType,g.type=u.type,g.stateNode=u.stateNode,g.alternate=u,u.alternate=g):(g.pendingProps=h,g.type=u.type,g.flags=0,g.subtreeFlags=0,g.deletions=null),g.flags=u.flags&65011712,g.childLanes=u.childLanes,g.lanes=u.lanes,g.child=u.child,g.memoizedProps=u.memoizedProps,g.memoizedState=u.memoizedState,g.updateQueue=u.updateQueue,h=u.dependencies,g.dependencies=h===null?null:{lanes:h.lanes,firstContext:h.firstContext},g.sibling=u.sibling,g.index=u.index,g.ref=u.ref,g.refCleanup=u.refCleanup,g}function DL(u,h){u.flags&=65011714;var g=u.alternate;return g===null?(u.childLanes=0,u.lanes=h,u.child=null,u.subtreeFlags=0,u.memoizedProps=null,u.memoizedState=null,u.updateQueue=null,u.dependencies=null,u.stateNode=null):(u.childLanes=g.childLanes,u.lanes=g.lanes,u.child=g.child,u.subtreeFlags=0,u.deletions=null,u.memoizedProps=g.memoizedProps,u.memoizedState=g.memoizedState,u.updateQueue=g.updateQueue,u.type=g.type,h=g.dependencies,u.dependencies=h===null?null:{lanes:h.lanes,firstContext:h.firstContext}),u}function qv(u,h,g,_,E,N){var j=0;if(_=u,typeof u=="function")Bw(u)&&(j=1);else if(typeof u=="string")j=NQ(u,g,ce.current)?26:u==="html"||u==="head"||u==="body"?27:5;else e:switch(u){case P:return u=ja(31,g,h,E),u.elementType=P,u.lanes=N,u;case b:return Yu(g.children,E,N,h);case x:j=8,E|=24;break;case v:return u=ja(12,g,h,E|2),u.elementType=v,u.lanes=N,u;case T:return u=ja(13,g,h,E),u.elementType=T,u.lanes=N,u;case D:return u=ja(19,g,h,E),u.elementType=D,u.lanes=N,u;default:if(typeof u=="object"&&u!==null)switch(u.$$typeof){case M:j=10;break e;case w:j=9;break e;case A:j=11;break e;case C:j=14;break e;case U:j=16,_=null;break e}j=29,g=Error(i(130,u===null?"null":typeof u,"")),_=null}return h=ja(j,g,h,E),h.elementType=u,h.type=_,h.lanes=N,h}function Yu(u,h,g,_){return u=ja(7,u,_,h),u.lanes=g,u}function jw(u,h,g){return u=ja(6,u,null,h),u.lanes=g,u}function NL(u){var h=ja(18,null,null,0);return h.stateNode=u,h}function Hw(u,h,g){return h=ja(4,u.children!==null?u.children:[],u.key,h),h.lanes=g,h.stateNode={containerInfo:u.containerInfo,pendingChildren:null,implementation:u.implementation},h}var OL=new WeakMap;function us(u,h){if(typeof u=="object"&&u!==null){var g=OL.get(u);return g!==void 0?g:(h={value:u,source:h,stack:ee(h)},OL.set(u,h),h)}return{value:u,source:h,stack:ee(h)}}var Uf=[],Ff=0,Xv=null,Mm=0,ds=[],fs=0,vc=null,bo=1,_o="";function el(u,h){Uf[Ff++]=Mm,Uf[Ff++]=Xv,Xv=u,Mm=h}function LL(u,h,g){ds[fs++]=bo,ds[fs++]=_o,ds[fs++]=vc,vc=u;var _=bo;u=_o;var E=32-et(_)-1;_&=~(1<<E),g+=1;var N=32-et(h)+E;if(30<N){var j=E-E%5;N=(_&(1<<j)-1).toString(32),_>>=j,E-=j,bo=1<<32-et(h)+E|g<<E|_,_o=N+u}else bo=1<<N|g<<E|_,_o=u}function Vw(u){u.return!==null&&(el(u,1),LL(u,1,0))}function Gw(u){for(;u===Xv;)Xv=Uf[--Ff],Uf[Ff]=null,Mm=Uf[--Ff],Uf[Ff]=null;for(;u===vc;)vc=ds[--fs],ds[fs]=null,_o=ds[--fs],ds[fs]=null,bo=ds[--fs],ds[fs]=null}function kL(u,h){ds[fs++]=bo,ds[fs++]=_o,ds[fs++]=vc,bo=h.id,_o=h.overflow,vc=u}var Tr=null,qn=null,fn=!1,xc=null,hs=!1,$w=Error(i(519));function yc(u){var h=Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Em(us(h,u)),$w}function IL(u){var h=u.stateNode,g=u.type,_=u.memoizedProps;switch(h[ri]=u,h[xi]=_,g){case"dialog":sn("cancel",h),sn("close",h);break;case"iframe":case"object":case"embed":sn("load",h);break;case"video":case"audio":for(g=0;g<qm.length;g++)sn(qm[g],h);break;case"source":sn("error",h);break;case"img":case"image":case"link":sn("error",h),sn("load",h);break;case"details":sn("toggle",h);break;case"input":sn("invalid",h),Mn(h,_.value,_.defaultValue,_.checked,_.defaultChecked,_.type,_.name,!0);break;case"select":sn("invalid",h);break;case"textarea":sn("invalid",h),Ar(h,_.value,_.defaultValue,_.children)}g=_.children,typeof g!="string"&&typeof g!="number"&&typeof g!="bigint"||h.textContent===""+g||_.suppressHydrationWarning===!0||QI(h.textContent,g)?(_.popover!=null&&(sn("beforetoggle",h),sn("toggle",h)),_.onScroll!=null&&sn("scroll",h),_.onScrollEnd!=null&&sn("scrollend",h),_.onClick!=null&&(h.onclick=Zo),h=!0):h=!1,h||yc(u,!0)}function UL(u){for(Tr=u.return;Tr;)switch(Tr.tag){case 5:case 31:case 13:hs=!1;return;case 27:case 3:hs=!0;return;default:Tr=Tr.return}}function zf(u){if(u!==Tr)return!1;if(!fn)return UL(u),fn=!0,!1;var h=u.tag,g;if((g=h!==3&&h!==27)&&((g=h===5)&&(g=u.type,g=!(g!=="form"&&g!=="button")||cE(u.type,u.memoizedProps)),g=!g),g&&qn&&yc(u),UL(u),h===13){if(u=u.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(i(317));qn=lU(u)}else if(h===31){if(u=u.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(i(317));qn=lU(u)}else h===27?(h=qn,Oc(u.type)?(u=pE,pE=null,qn=u):qn=h):qn=Tr?ms(u.stateNode.nextSibling):null;return!0}function Ku(){qn=Tr=null,fn=!1}function Ww(){var u=xc;return u!==null&&(Sa===null?Sa=u:Sa.push.apply(Sa,u),xc=null),u}function Em(u){xc===null?xc=[u]:xc.push(u)}var qw=H(null),Zu=null,tl=null;function bc(u,h,g){re(qw,h._currentValue),h._currentValue=g}function nl(u){u._currentValue=qw.current,X(qw)}function Xw(u,h,g){for(;u!==null;){var _=u.alternate;if((u.childLanes&h)!==h?(u.childLanes|=h,_!==null&&(_.childLanes|=h)):_!==null&&(_.childLanes&h)!==h&&(_.childLanes|=h),u===g)break;u=u.return}}function Yw(u,h,g,_){var E=u.child;for(E!==null&&(E.return=u);E!==null;){var N=E.dependencies;if(N!==null){var j=E.child;N=N.firstContext;e:for(;N!==null;){var te=N;N=E;for(var Se=0;Se<h.length;Se++)if(te.context===h[Se]){N.lanes|=g,te=N.alternate,te!==null&&(te.lanes|=g),Xw(N.return,g,u),_||(j=null);break e}N=te.next}}else if(E.tag===18){if(j=E.return,j===null)throw Error(i(341));j.lanes|=g,N=j.alternate,N!==null&&(N.lanes|=g),Xw(j,g,u),j=null}else j=E.child;if(j!==null)j.return=E;else for(j=E;j!==null;){if(j===u){j=null;break}if(E=j.sibling,E!==null){E.return=j.return,j=E;break}j=j.return}E=j}}function Bf(u,h,g,_){u=null;for(var E=h,N=!1;E!==null;){if(!N){if((E.flags&524288)!==0)N=!0;else if((E.flags&262144)!==0)break}if(E.tag===10){var j=E.alternate;if(j===null)throw Error(i(387));if(j=j.memoizedProps,j!==null){var te=E.type;Ba(E.pendingProps.value,j.value)||(u!==null?u.push(te):u=[te])}}else if(E===be.current){if(j=E.alternate,j===null)throw Error(i(387));j.memoizedState.memoizedState!==E.memoizedState.memoizedState&&(u!==null?u.push(Jm):u=[Jm])}E=E.return}u!==null&&Yw(h,u,g,_),h.flags|=262144}function Yv(u){for(u=u.firstContext;u!==null;){if(!Ba(u.context._currentValue,u.memoizedValue))return!0;u=u.next}return!1}function Ju(u){Zu=u,tl=null,u=u.dependencies,u!==null&&(u.firstContext=null)}function Cr(u){return FL(Zu,u)}function Kv(u,h){return Zu===null&&Ju(u),FL(u,h)}function FL(u,h){var g=h._currentValue;if(h={context:h,memoizedValue:g,next:null},tl===null){if(u===null)throw Error(i(308));tl=h,u.dependencies={lanes:0,firstContext:h},u.flags|=524288}else tl=tl.next=h;return g}var CJ=typeof AbortController<"u"?AbortController:function(){var u=[],h=this.signal={aborted:!1,addEventListener:function(g,_){u.push(_)}};this.abort=function(){h.aborted=!0,u.forEach(function(g){return g()})}},RJ=t.unstable_scheduleCallback,PJ=t.unstable_NormalPriority,Ti={$$typeof:M,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Kw(){return{controller:new CJ,data:new Map,refCount:0}}function Am(u){u.refCount--,u.refCount===0&&RJ(PJ,function(){u.controller.abort()})}var Tm=null,Zw=0,jf=0,Hf=null;function DJ(u,h){if(Tm===null){var g=Tm=[];Zw=0,jf=eE(),Hf={status:"pending",value:void 0,then:function(_){g.push(_)}}}return Zw++,h.then(zL,zL),h}function zL(){if(--Zw===0&&Tm!==null){Hf!==null&&(Hf.status="fulfilled");var u=Tm;Tm=null,jf=0,Hf=null;for(var h=0;h<u.length;h++)(0,u[h])()}}function NJ(u,h){var g=[],_={status:"pending",value:null,reason:null,then:function(E){g.push(E)}};return u.then(function(){_.status="fulfilled",_.value=h;for(var E=0;E<g.length;E++)(0,g[E])(h)},function(E){for(_.status="rejected",_.reason=E,E=0;E<g.length;E++)(0,g[E])(void 0)}),_}var BL=q.S;q.S=function(u,h){wI=L(),typeof h=="object"&&h!==null&&typeof h.then=="function"&&DJ(u,h),BL!==null&&BL(u,h)};var Qu=H(null);function Jw(){var u=Qu.current;return u!==null?u:Bn.pooledCache}function Zv(u,h){h===null?re(Qu,Qu.current):re(Qu,h.pool)}function jL(){var u=Jw();return u===null?null:{parent:Ti._currentValue,pool:u}}var Vf=Error(i(460)),Qw=Error(i(474)),Jv=Error(i(542)),Qv={then:function(){}};function HL(u){return u=u.status,u==="fulfilled"||u==="rejected"}function VL(u,h,g){switch(g=u[g],g===void 0?u.push(h):g!==h&&(h.then(Zo,Zo),h=g),h.status){case"fulfilled":return h.value;case"rejected":throw u=h.reason,$L(u),u;default:if(typeof h.status=="string")h.then(Zo,Zo);else{if(u=Bn,u!==null&&100<u.shellSuspendCounter)throw Error(i(482));u=h,u.status="pending",u.then(function(_){if(h.status==="pending"){var E=h;E.status="fulfilled",E.value=_}},function(_){if(h.status==="pending"){var E=h;E.status="rejected",E.reason=_}})}switch(h.status){case"fulfilled":return h.value;case"rejected":throw u=h.reason,$L(u),u}throw td=h,Vf}}function ed(u){try{var h=u._init;return h(u._payload)}catch(g){throw g!==null&&typeof g=="object"&&typeof g.then=="function"?(td=g,Vf):g}}var td=null;function GL(){if(td===null)throw Error(i(459));var u=td;return td=null,u}function $L(u){if(u===Vf||u===Jv)throw Error(i(483))}var Gf=null,Cm=0;function ex(u){var h=Cm;return Cm+=1,Gf===null&&(Gf=[]),VL(Gf,u,h)}function Rm(u,h){h=h.props.ref,u.ref=h!==void 0?h:null}function tx(u,h){throw h.$$typeof===p?Error(i(525)):(u=Object.prototype.toString.call(h),Error(i(31,u==="[object Object]"?"object with keys {"+Object.keys(h).join(", ")+"}":u)))}function WL(u){function h(Oe,Te){if(u){var Fe=Oe.deletions;Fe===null?(Oe.deletions=[Te],Oe.flags|=16):Fe.push(Te)}}function g(Oe,Te){if(!u)return null;for(;Te!==null;)h(Oe,Te),Te=Te.sibling;return null}function _(Oe){for(var Te=new Map;Oe!==null;)Oe.key!==null?Te.set(Oe.key,Oe):Te.set(Oe.index,Oe),Oe=Oe.sibling;return Te}function E(Oe,Te){return Oe=Qo(Oe,Te),Oe.index=0,Oe.sibling=null,Oe}function N(Oe,Te,Fe){return Oe.index=Fe,u?(Fe=Oe.alternate,Fe!==null?(Fe=Fe.index,Fe<Te?(Oe.flags|=67108866,Te):Fe):(Oe.flags|=67108866,Te)):(Oe.flags|=1048576,Te)}function j(Oe){return u&&Oe.alternate===null&&(Oe.flags|=67108866),Oe}function te(Oe,Te,Fe,nt){return Te===null||Te.tag!==6?(Te=jw(Fe,Oe.mode,nt),Te.return=Oe,Te):(Te=E(Te,Fe),Te.return=Oe,Te)}function Se(Oe,Te,Fe,nt){var Lt=Fe.type;return Lt===b?Je(Oe,Te,Fe.props.children,nt,Fe.key):Te!==null&&(Te.elementType===Lt||typeof Lt=="object"&&Lt!==null&&Lt.$$typeof===U&&ed(Lt)===Te.type)?(Te=E(Te,Fe.props),Rm(Te,Fe),Te.return=Oe,Te):(Te=qv(Fe.type,Fe.key,Fe.props,null,Oe.mode,nt),Rm(Te,Fe),Te.return=Oe,Te)}function ze(Oe,Te,Fe,nt){return Te===null||Te.tag!==4||Te.stateNode.containerInfo!==Fe.containerInfo||Te.stateNode.implementation!==Fe.implementation?(Te=Hw(Fe,Oe.mode,nt),Te.return=Oe,Te):(Te=E(Te,Fe.children||[]),Te.return=Oe,Te)}function Je(Oe,Te,Fe,nt,Lt){return Te===null||Te.tag!==7?(Te=Yu(Fe,Oe.mode,nt,Lt),Te.return=Oe,Te):(Te=E(Te,Fe),Te.return=Oe,Te)}function it(Oe,Te,Fe){if(typeof Te=="string"&&Te!==""||typeof Te=="number"||typeof Te=="bigint")return Te=jw(""+Te,Oe.mode,Fe),Te.return=Oe,Te;if(typeof Te=="object"&&Te!==null){switch(Te.$$typeof){case m:return Fe=qv(Te.type,Te.key,Te.props,null,Oe.mode,Fe),Rm(Fe,Te),Fe.return=Oe,Fe;case y:return Te=Hw(Te,Oe.mode,Fe),Te.return=Oe,Te;case U:return Te=ed(Te),it(Oe,Te,Fe)}if($(Te)||I(Te))return Te=Yu(Te,Oe.mode,Fe,null),Te.return=Oe,Te;if(typeof Te.then=="function")return it(Oe,ex(Te),Fe);if(Te.$$typeof===M)return it(Oe,Kv(Oe,Te),Fe);tx(Oe,Te)}return null}function Ve(Oe,Te,Fe,nt){var Lt=Te!==null?Te.key:null;if(typeof Fe=="string"&&Fe!==""||typeof Fe=="number"||typeof Fe=="bigint")return Lt!==null?null:te(Oe,Te,""+Fe,nt);if(typeof Fe=="object"&&Fe!==null){switch(Fe.$$typeof){case m:return Fe.key===Lt?Se(Oe,Te,Fe,nt):null;case y:return Fe.key===Lt?ze(Oe,Te,Fe,nt):null;case U:return Fe=ed(Fe),Ve(Oe,Te,Fe,nt)}if($(Fe)||I(Fe))return Lt!==null?null:Je(Oe,Te,Fe,nt,null);if(typeof Fe.then=="function")return Ve(Oe,Te,ex(Fe),nt);if(Fe.$$typeof===M)return Ve(Oe,Te,Kv(Oe,Fe),nt);tx(Oe,Fe)}return null}function Ye(Oe,Te,Fe,nt,Lt){if(typeof nt=="string"&&nt!==""||typeof nt=="number"||typeof nt=="bigint")return Oe=Oe.get(Fe)||null,te(Te,Oe,""+nt,Lt);if(typeof nt=="object"&&nt!==null){switch(nt.$$typeof){case m:return Oe=Oe.get(nt.key===null?Fe:nt.key)||null,Se(Te,Oe,nt,Lt);case y:return Oe=Oe.get(nt.key===null?Fe:nt.key)||null,ze(Te,Oe,nt,Lt);case U:return nt=ed(nt),Ye(Oe,Te,Fe,nt,Lt)}if($(nt)||I(nt))return Oe=Oe.get(Fe)||null,Je(Te,Oe,nt,Lt,null);if(typeof nt.then=="function")return Ye(Oe,Te,Fe,ex(nt),Lt);if(nt.$$typeof===M)return Ye(Oe,Te,Fe,Kv(Te,nt),Lt);tx(Te,nt)}return null}function Et(Oe,Te,Fe,nt){for(var Lt=null,gn=null,Pt=Te,qt=Te=0,un=null;Pt!==null&&qt<Fe.length;qt++){Pt.index>qt?(un=Pt,Pt=null):un=Pt.sibling;var vn=Ve(Oe,Pt,Fe[qt],nt);if(vn===null){Pt===null&&(Pt=un);break}u&&Pt&&vn.alternate===null&&h(Oe,Pt),Te=N(vn,Te,qt),gn===null?Lt=vn:gn.sibling=vn,gn=vn,Pt=un}if(qt===Fe.length)return g(Oe,Pt),fn&&el(Oe,qt),Lt;if(Pt===null){for(;qt<Fe.length;qt++)Pt=it(Oe,Fe[qt],nt),Pt!==null&&(Te=N(Pt,Te,qt),gn===null?Lt=Pt:gn.sibling=Pt,gn=Pt);return fn&&el(Oe,qt),Lt}for(Pt=_(Pt);qt<Fe.length;qt++)un=Ye(Pt,Oe,qt,Fe[qt],nt),un!==null&&(u&&un.alternate!==null&&Pt.delete(un.key===null?qt:un.key),Te=N(un,Te,qt),gn===null?Lt=un:gn.sibling=un,gn=un);return u&&Pt.forEach(function(Fc){return h(Oe,Fc)}),fn&&el(Oe,qt),Lt}function Ft(Oe,Te,Fe,nt){if(Fe==null)throw Error(i(151));for(var Lt=null,gn=null,Pt=Te,qt=Te=0,un=null,vn=Fe.next();Pt!==null&&!vn.done;qt++,vn=Fe.next()){Pt.index>qt?(un=Pt,Pt=null):un=Pt.sibling;var Fc=Ve(Oe,Pt,vn.value,nt);if(Fc===null){Pt===null&&(Pt=un);break}u&&Pt&&Fc.alternate===null&&h(Oe,Pt),Te=N(Fc,Te,qt),gn===null?Lt=Fc:gn.sibling=Fc,gn=Fc,Pt=un}if(vn.done)return g(Oe,Pt),fn&&el(Oe,qt),Lt;if(Pt===null){for(;!vn.done;qt++,vn=Fe.next())vn=it(Oe,vn.value,nt),vn!==null&&(Te=N(vn,Te,qt),gn===null?Lt=vn:gn.sibling=vn,gn=vn);return fn&&el(Oe,qt),Lt}for(Pt=_(Pt);!vn.done;qt++,vn=Fe.next())vn=Ye(Pt,Oe,qt,vn.value,nt),vn!==null&&(u&&vn.alternate!==null&&Pt.delete(vn.key===null?qt:vn.key),Te=N(vn,Te,qt),gn===null?Lt=vn:gn.sibling=vn,gn=vn);return u&&Pt.forEach(function(VQ){return h(Oe,VQ)}),fn&&el(Oe,qt),Lt}function Dn(Oe,Te,Fe,nt){if(typeof Fe=="object"&&Fe!==null&&Fe.type===b&&Fe.key===null&&(Fe=Fe.props.children),typeof Fe=="object"&&Fe!==null){switch(Fe.$$typeof){case m:e:{for(var Lt=Fe.key;Te!==null;){if(Te.key===Lt){if(Lt=Fe.type,Lt===b){if(Te.tag===7){g(Oe,Te.sibling),nt=E(Te,Fe.props.children),nt.return=Oe,Oe=nt;break e}}else if(Te.elementType===Lt||typeof Lt=="object"&&Lt!==null&&Lt.$$typeof===U&&ed(Lt)===Te.type){g(Oe,Te.sibling),nt=E(Te,Fe.props),Rm(nt,Fe),nt.return=Oe,Oe=nt;break e}g(Oe,Te);break}else h(Oe,Te);Te=Te.sibling}Fe.type===b?(nt=Yu(Fe.props.children,Oe.mode,nt,Fe.key),nt.return=Oe,Oe=nt):(nt=qv(Fe.type,Fe.key,Fe.props,null,Oe.mode,nt),Rm(nt,Fe),nt.return=Oe,Oe=nt)}return j(Oe);case y:e:{for(Lt=Fe.key;Te!==null;){if(Te.key===Lt)if(Te.tag===4&&Te.stateNode.containerInfo===Fe.containerInfo&&Te.stateNode.implementation===Fe.implementation){g(Oe,Te.sibling),nt=E(Te,Fe.children||[]),nt.return=Oe,Oe=nt;break e}else{g(Oe,Te);break}else h(Oe,Te);Te=Te.sibling}nt=Hw(Fe,Oe.mode,nt),nt.return=Oe,Oe=nt}return j(Oe);case U:return Fe=ed(Fe),Dn(Oe,Te,Fe,nt)}if($(Fe))return Et(Oe,Te,Fe,nt);if(I(Fe)){if(Lt=I(Fe),typeof Lt!="function")throw Error(i(150));return Fe=Lt.call(Fe),Ft(Oe,Te,Fe,nt)}if(typeof Fe.then=="function")return Dn(Oe,Te,ex(Fe),nt);if(Fe.$$typeof===M)return Dn(Oe,Te,Kv(Oe,Fe),nt);tx(Oe,Fe)}return typeof Fe=="string"&&Fe!==""||typeof Fe=="number"||typeof Fe=="bigint"?(Fe=""+Fe,Te!==null&&Te.tag===6?(g(Oe,Te.sibling),nt=E(Te,Fe),nt.return=Oe,Oe=nt):(g(Oe,Te),nt=jw(Fe,Oe.mode,nt),nt.return=Oe,Oe=nt),j(Oe)):g(Oe,Te)}return function(Oe,Te,Fe,nt){try{Cm=0;var Lt=Dn(Oe,Te,Fe,nt);return Gf=null,Lt}catch(Pt){if(Pt===Vf||Pt===Jv)throw Pt;var gn=ja(29,Pt,null,Oe.mode);return gn.lanes=nt,gn.return=Oe,gn}finally{}}}var nd=WL(!0),qL=WL(!1),_c=!1;function eM(u){u.updateQueue={baseState:u.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function tM(u,h){u=u.updateQueue,h.updateQueue===u&&(h.updateQueue={baseState:u.baseState,firstBaseUpdate:u.firstBaseUpdate,lastBaseUpdate:u.lastBaseUpdate,shared:u.shared,callbacks:null})}function Sc(u){return{lane:u,tag:0,payload:null,callback:null,next:null}}function wc(u,h,g){var _=u.updateQueue;if(_===null)return null;if(_=_.shared,(_n&2)!==0){var E=_.pending;return E===null?h.next=h:(h.next=E.next,E.next=h),_.pending=h,h=Wv(u),PL(u,null,g),h}return $v(u,_,h,g),Wv(u)}function Pm(u,h,g){if(h=h.updateQueue,h!==null&&(h=h.shared,(g&4194048)!==0)){var _=h.lanes;_&=u.pendingLanes,g|=_,h.lanes=g,zn(u,g)}}function nM(u,h){var g=u.updateQueue,_=u.alternate;if(_!==null&&(_=_.updateQueue,g===_)){var E=null,N=null;if(g=g.firstBaseUpdate,g!==null){do{var j={lane:g.lane,tag:g.tag,payload:g.payload,callback:null,next:null};N===null?E=N=j:N=N.next=j,g=g.next}while(g!==null);N===null?E=N=h:N=N.next=h}else E=N=h;g={baseState:_.baseState,firstBaseUpdate:E,lastBaseUpdate:N,shared:_.shared,callbacks:_.callbacks},u.updateQueue=g;return}u=g.lastBaseUpdate,u===null?g.firstBaseUpdate=h:u.next=h,g.lastBaseUpdate=h}var iM=!1;function Dm(){if(iM){var u=Hf;if(u!==null)throw u}}function Nm(u,h,g,_){iM=!1;var E=u.updateQueue;_c=!1;var N=E.firstBaseUpdate,j=E.lastBaseUpdate,te=E.shared.pending;if(te!==null){E.shared.pending=null;var Se=te,ze=Se.next;Se.next=null,j===null?N=ze:j.next=ze,j=Se;var Je=u.alternate;Je!==null&&(Je=Je.updateQueue,te=Je.lastBaseUpdate,te!==j&&(te===null?Je.firstBaseUpdate=ze:te.next=ze,Je.lastBaseUpdate=Se))}if(N!==null){var it=E.baseState;j=0,Je=ze=Se=null,te=N;do{var Ve=te.lane&-536870913,Ye=Ve!==te.lane;if(Ye?(cn&Ve)===Ve:(_&Ve)===Ve){Ve!==0&&Ve===jf&&(iM=!0),Je!==null&&(Je=Je.next={lane:0,tag:te.tag,payload:te.payload,callback:null,next:null});e:{var Et=u,Ft=te;Ve=h;var Dn=g;switch(Ft.tag){case 1:if(Et=Ft.payload,typeof Et=="function"){it=Et.call(Dn,it,Ve);break e}it=Et;break e;case 3:Et.flags=Et.flags&-65537|128;case 0:if(Et=Ft.payload,Ve=typeof Et=="function"?Et.call(Dn,it,Ve):Et,Ve==null)break e;it=f({},it,Ve);break e;case 2:_c=!0}}Ve=te.callback,Ve!==null&&(u.flags|=64,Ye&&(u.flags|=8192),Ye=E.callbacks,Ye===null?E.callbacks=[Ve]:Ye.push(Ve))}else Ye={lane:Ve,tag:te.tag,payload:te.payload,callback:te.callback,next:null},Je===null?(ze=Je=Ye,Se=it):Je=Je.next=Ye,j|=Ve;if(te=te.next,te===null){if(te=E.shared.pending,te===null)break;Ye=te,te=Ye.next,Ye.next=null,E.lastBaseUpdate=Ye,E.shared.pending=null}}while(!0);Je===null&&(Se=it),E.baseState=Se,E.firstBaseUpdate=ze,E.lastBaseUpdate=Je,N===null&&(E.shared.lanes=0),Cc|=j,u.lanes=j,u.memoizedState=it}}function XL(u,h){if(typeof u!="function")throw Error(i(191,u));u.call(h)}function YL(u,h){var g=u.callbacks;if(g!==null)for(u.callbacks=null,u=0;u<g.length;u++)XL(g[u],h)}var $f=H(null),nx=H(0);function KL(u,h){u=dl,re(nx,u),re($f,h),dl=u|h.baseLanes}function rM(){re(nx,dl),re($f,$f.current)}function aM(){dl=nx.current,X($f),X(nx)}var Ha=H(null),ps=null;function Mc(u){var h=u.alternate;re(bi,bi.current&1),re(Ha,u),ps===null&&(h===null||$f.current!==null||h.memoizedState!==null)&&(ps=u)}function sM(u){re(bi,bi.current),re(Ha,u),ps===null&&(ps=u)}function ZL(u){u.tag===22?(re(bi,bi.current),re(Ha,u),ps===null&&(ps=u)):Ec()}function Ec(){re(bi,bi.current),re(Ha,Ha.current)}function Va(u){X(Ha),ps===u&&(ps=null),X(bi)}var bi=H(0);function ix(u){for(var h=u;h!==null;){if(h.tag===13){var g=h.memoizedState;if(g!==null&&(g=g.dehydrated,g===null||fE(g)||hE(g)))return h}else if(h.tag===19&&(h.memoizedProps.revealOrder==="forwards"||h.memoizedProps.revealOrder==="backwards"||h.memoizedProps.revealOrder==="unstable_legacy-backwards"||h.memoizedProps.revealOrder==="together")){if((h.flags&128)!==0)return h}else if(h.child!==null){h.child.return=h,h=h.child;continue}if(h===u)break;for(;h.sibling===null;){if(h.return===null||h.return===u)return null;h=h.return}h.sibling.return=h.return,h=h.sibling}return null}var il=0,Wt=null,Rn=null,Ci=null,rx=!1,Wf=!1,id=!1,ax=0,Om=0,qf=null,OJ=0;function di(){throw Error(i(321))}function oM(u,h){if(h===null)return!1;for(var g=0;g<h.length&&g<u.length;g++)if(!Ba(u[g],h[g]))return!1;return!0}function lM(u,h,g,_,E,N){return il=N,Wt=h,h.memoizedState=null,h.updateQueue=null,h.lanes=0,q.H=u===null||u.memoizedState===null?Lk:wM,id=!1,N=g(_,E),id=!1,Wf&&(N=QL(h,g,_,E)),JL(u),N}function JL(u){q.H=Im;var h=Rn!==null&&Rn.next!==null;if(il=0,Ci=Rn=Wt=null,rx=!1,Om=0,qf=null,h)throw Error(i(300));u===null||Ri||(u=u.dependencies,u!==null&&Yv(u)&&(Ri=!0))}function QL(u,h,g,_){Wt=u;var E=0;do{if(Wf&&(qf=null),Om=0,Wf=!1,25<=E)throw Error(i(301));if(E+=1,Ci=Rn=null,u.updateQueue!=null){var N=u.updateQueue;N.lastEffect=null,N.events=null,N.stores=null,N.memoCache!=null&&(N.memoCache.index=0)}q.H=kk,N=h(g,_)}while(Wf);return N}function LJ(){var u=q.H,h=u.useState()[0];return h=typeof h.then=="function"?Lm(h):h,u=u.useState()[0],(Rn!==null?Rn.memoizedState:null)!==u&&(Wt.flags|=1024),h}function cM(){var u=ax!==0;return ax=0,u}function uM(u,h,g){h.updateQueue=u.updateQueue,h.flags&=-2053,u.lanes&=~g}function dM(u){if(rx){for(u=u.memoizedState;u!==null;){var h=u.queue;h!==null&&(h.pending=null),u=u.next}rx=!1}il=0,Ci=Rn=Wt=null,Wf=!1,Om=ax=0,qf=null}function ra(){var u={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ci===null?Wt.memoizedState=Ci=u:Ci=Ci.next=u,Ci}function _i(){if(Rn===null){var u=Wt.alternate;u=u!==null?u.memoizedState:null}else u=Rn.next;var h=Ci===null?Wt.memoizedState:Ci.next;if(h!==null)Ci=h,Rn=u;else{if(u===null)throw Wt.alternate===null?Error(i(467)):Error(i(310));Rn=u,u={memoizedState:Rn.memoizedState,baseState:Rn.baseState,baseQueue:Rn.baseQueue,queue:Rn.queue,next:null},Ci===null?Wt.memoizedState=Ci=u:Ci=Ci.next=u}return Ci}function sx(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Lm(u){var h=Om;return Om+=1,qf===null&&(qf=[]),u=VL(qf,u,h),h=Wt,(Ci===null?h.memoizedState:Ci.next)===null&&(h=h.alternate,q.H=h===null||h.memoizedState===null?Lk:wM),u}function ox(u){if(u!==null&&typeof u=="object"){if(typeof u.then=="function")return Lm(u);if(u.$$typeof===M)return Cr(u)}throw Error(i(438,String(u)))}function fM(u){var h=null,g=Wt.updateQueue;if(g!==null&&(h=g.memoCache),h==null){var _=Wt.alternate;_!==null&&(_=_.updateQueue,_!==null&&(_=_.memoCache,_!=null&&(h={data:_.data.map(function(E){return E.slice()}),index:0})))}if(h==null&&(h={data:[],index:0}),g===null&&(g=sx(),Wt.updateQueue=g),g.memoCache=h,g=h.data[h.index],g===void 0)for(g=h.data[h.index]=Array(u),_=0;_<u;_++)g[_]=k;return h.index++,g}function rl(u,h){return typeof h=="function"?h(u):h}function lx(u){var h=_i();return hM(h,Rn,u)}function hM(u,h,g){var _=u.queue;if(_===null)throw Error(i(311));_.lastRenderedReducer=g;var E=u.baseQueue,N=_.pending;if(N!==null){if(E!==null){var j=E.next;E.next=N.next,N.next=j}h.baseQueue=E=N,_.pending=null}if(N=u.baseState,E===null)u.memoizedState=N;else{h=E.next;var te=j=null,Se=null,ze=h,Je=!1;do{var it=ze.lane&-536870913;if(it!==ze.lane?(cn&it)===it:(il&it)===it){var Ve=ze.revertLane;if(Ve===0)Se!==null&&(Se=Se.next={lane:0,revertLane:0,gesture:null,action:ze.action,hasEagerState:ze.hasEagerState,eagerState:ze.eagerState,next:null}),it===jf&&(Je=!0);else if((il&Ve)===Ve){ze=ze.next,Ve===jf&&(Je=!0);continue}else it={lane:0,revertLane:ze.revertLane,gesture:null,action:ze.action,hasEagerState:ze.hasEagerState,eagerState:ze.eagerState,next:null},Se===null?(te=Se=it,j=N):Se=Se.next=it,Wt.lanes|=Ve,Cc|=Ve;it=ze.action,id&&g(N,it),N=ze.hasEagerState?ze.eagerState:g(N,it)}else Ve={lane:it,revertLane:ze.revertLane,gesture:ze.gesture,action:ze.action,hasEagerState:ze.hasEagerState,eagerState:ze.eagerState,next:null},Se===null?(te=Se=Ve,j=N):Se=Se.next=Ve,Wt.lanes|=it,Cc|=it;ze=ze.next}while(ze!==null&&ze!==h);if(Se===null?j=N:Se.next=te,!Ba(N,u.memoizedState)&&(Ri=!0,Je&&(g=Hf,g!==null)))throw g;u.memoizedState=N,u.baseState=j,u.baseQueue=Se,_.lastRenderedState=N}return E===null&&(_.lanes=0),[u.memoizedState,_.dispatch]}function pM(u){var h=_i(),g=h.queue;if(g===null)throw Error(i(311));g.lastRenderedReducer=u;var _=g.dispatch,E=g.pending,N=h.memoizedState;if(E!==null){g.pending=null;var j=E=E.next;do N=u(N,j.action),j=j.next;while(j!==E);Ba(N,h.memoizedState)||(Ri=!0),h.memoizedState=N,h.baseQueue===null&&(h.baseState=N),g.lastRenderedState=N}return[N,_]}function ek(u,h,g){var _=Wt,E=_i(),N=fn;if(N){if(g===void 0)throw Error(i(407));g=g()}else g=h();var j=!Ba((Rn||E).memoizedState,g);if(j&&(E.memoizedState=g,Ri=!0),E=E.queue,vM(ik.bind(null,_,E,u),[u]),E.getSnapshot!==h||j||Ci!==null&&Ci.memoizedState.tag&1){if(_.flags|=2048,Xf(9,{destroy:void 0},nk.bind(null,_,E,g,h),null),Bn===null)throw Error(i(349));N||(il&127)!==0||tk(_,h,g)}return g}function tk(u,h,g){u.flags|=16384,u={getSnapshot:h,value:g},h=Wt.updateQueue,h===null?(h=sx(),Wt.updateQueue=h,h.stores=[u]):(g=h.stores,g===null?h.stores=[u]:g.push(u))}function nk(u,h,g,_){h.value=g,h.getSnapshot=_,rk(h)&&ak(u)}function ik(u,h,g){return g(function(){rk(h)&&ak(u)})}function rk(u){var h=u.getSnapshot;u=u.value;try{var g=h();return!Ba(u,g)}catch{return!0}}function ak(u){var h=Xu(u,2);h!==null&&wa(h,u,2)}function mM(u){var h=ra();if(typeof u=="function"){var g=u;if(u=g(),id){ut(!0);try{g()}finally{ut(!1)}}}return h.memoizedState=h.baseState=u,h.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:rl,lastRenderedState:u},h}function sk(u,h,g,_){return u.baseState=g,hM(u,Rn,typeof _=="function"?_:rl)}function kJ(u,h,g,_,E){if(dx(u))throw Error(i(485));if(u=h.action,u!==null){var N={payload:E,action:u,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(j){N.listeners.push(j)}};q.T!==null?g(!0):N.isTransition=!1,_(N),g=h.pending,g===null?(N.next=h.pending=N,ok(h,N)):(N.next=g.next,h.pending=g.next=N)}}function ok(u,h){var g=h.action,_=h.payload,E=u.state;if(h.isTransition){var N=q.T,j={};q.T=j;try{var te=g(E,_),Se=q.S;Se!==null&&Se(j,te),lk(u,h,te)}catch(ze){gM(u,h,ze)}finally{N!==null&&j.types!==null&&(N.types=j.types),q.T=N}}else try{N=g(E,_),lk(u,h,N)}catch(ze){gM(u,h,ze)}}function lk(u,h,g){g!==null&&typeof g=="object"&&typeof g.then=="function"?g.then(function(_){ck(u,h,_)},function(_){return gM(u,h,_)}):ck(u,h,g)}function ck(u,h,g){h.status="fulfilled",h.value=g,uk(h),u.state=g,h=u.pending,h!==null&&(g=h.next,g===h?u.pending=null:(g=g.next,h.next=g,ok(u,g)))}function gM(u,h,g){var _=u.pending;if(u.pending=null,_!==null){_=_.next;do h.status="rejected",h.reason=g,uk(h),h=h.next;while(h!==_)}u.action=null}function uk(u){u=u.listeners;for(var h=0;h<u.length;h++)(0,u[h])()}function dk(u,h){return h}function fk(u,h){if(fn){var g=Bn.formState;if(g!==null){e:{var _=Wt;if(fn){if(qn){t:{for(var E=qn,N=hs;E.nodeType!==8;){if(!N){E=null;break t}if(E=ms(E.nextSibling),E===null){E=null;break t}}N=E.data,E=N==="F!"||N==="F"?E:null}if(E){qn=ms(E.nextSibling),_=E.data==="F!";break e}}yc(_)}_=!1}_&&(h=g[0])}}return g=ra(),g.memoizedState=g.baseState=h,_={pending:null,lanes:0,dispatch:null,lastRenderedReducer:dk,lastRenderedState:h},g.queue=_,g=Dk.bind(null,Wt,_),_.dispatch=g,_=mM(!1),N=SM.bind(null,Wt,!1,_.queue),_=ra(),E={state:h,dispatch:null,action:u,pending:null},_.queue=E,g=kJ.bind(null,Wt,E,N,g),E.dispatch=g,_.memoizedState=u,[h,g,!1]}function hk(u){var h=_i();return pk(h,Rn,u)}function pk(u,h,g){if(h=hM(u,h,dk)[0],u=lx(rl)[0],typeof h=="object"&&h!==null&&typeof h.then=="function")try{var _=Lm(h)}catch(j){throw j===Vf?Jv:j}else _=h;h=_i();var E=h.queue,N=E.dispatch;return g!==h.memoizedState&&(Wt.flags|=2048,Xf(9,{destroy:void 0},IJ.bind(null,E,g),null)),[_,N,u]}function IJ(u,h){u.action=h}function mk(u){var h=_i(),g=Rn;if(g!==null)return pk(h,g,u);_i(),h=h.memoizedState,g=_i();var _=g.queue.dispatch;return g.memoizedState=u,[h,_,!1]}function Xf(u,h,g,_){return u={tag:u,create:g,deps:_,inst:h,next:null},h=Wt.updateQueue,h===null&&(h=sx(),Wt.updateQueue=h),g=h.lastEffect,g===null?h.lastEffect=u.next=u:(_=g.next,g.next=u,u.next=_,h.lastEffect=u),u}function gk(){return _i().memoizedState}function cx(u,h,g,_){var E=ra();Wt.flags|=u,E.memoizedState=Xf(1|h,{destroy:void 0},g,_===void 0?null:_)}function ux(u,h,g,_){var E=_i();_=_===void 0?null:_;var N=E.memoizedState.inst;Rn!==null&&_!==null&&oM(_,Rn.memoizedState.deps)?E.memoizedState=Xf(h,N,g,_):(Wt.flags|=u,E.memoizedState=Xf(1|h,N,g,_))}function vk(u,h){cx(8390656,8,u,h)}function vM(u,h){ux(2048,8,u,h)}function UJ(u){Wt.flags|=4;var h=Wt.updateQueue;if(h===null)h=sx(),Wt.updateQueue=h,h.events=[u];else{var g=h.events;g===null?h.events=[u]:g.push(u)}}function xk(u){var h=_i().memoizedState;return UJ({ref:h,nextImpl:u}),function(){if((_n&2)!==0)throw Error(i(440));return h.impl.apply(void 0,arguments)}}function yk(u,h){return ux(4,2,u,h)}function bk(u,h){return ux(4,4,u,h)}function _k(u,h){if(typeof h=="function"){u=u();var g=h(u);return function(){typeof g=="function"?g():h(null)}}if(h!=null)return u=u(),h.current=u,function(){h.current=null}}function Sk(u,h,g){g=g!=null?g.concat([u]):null,ux(4,4,_k.bind(null,h,u),g)}function xM(){}function wk(u,h){var g=_i();h=h===void 0?null:h;var _=g.memoizedState;return h!==null&&oM(h,_[1])?_[0]:(g.memoizedState=[u,h],u)}function Mk(u,h){var g=_i();h=h===void 0?null:h;var _=g.memoizedState;if(h!==null&&oM(h,_[1]))return _[0];if(_=u(),id){ut(!0);try{u()}finally{ut(!1)}}return g.memoizedState=[_,h],_}function yM(u,h,g){return g===void 0||(il&1073741824)!==0&&(cn&261930)===0?u.memoizedState=h:(u.memoizedState=g,u=EI(),Wt.lanes|=u,Cc|=u,g)}function Ek(u,h,g,_){return Ba(g,h)?g:$f.current!==null?(u=yM(u,g,_),Ba(u,h)||(Ri=!0),u):(il&42)===0||(il&1073741824)!==0&&(cn&261930)===0?(Ri=!0,u.memoizedState=g):(u=EI(),Wt.lanes|=u,Cc|=u,h)}function Ak(u,h,g,_,E){var N=G.p;G.p=N!==0&&8>N?N:8;var j=q.T,te={};q.T=te,SM(u,!1,h,g);try{var Se=E(),ze=q.S;if(ze!==null&&ze(te,Se),Se!==null&&typeof Se=="object"&&typeof Se.then=="function"){var Je=NJ(Se,_);km(u,h,Je,Wa(u))}else km(u,h,_,Wa(u))}catch(it){km(u,h,{then:function(){},status:"rejected",reason:it},Wa())}finally{G.p=N,j!==null&&te.types!==null&&(j.types=te.types),q.T=j}}function FJ(){}function bM(u,h,g,_){if(u.tag!==5)throw Error(i(476));var E=Tk(u).queue;Ak(u,E,h,Y,g===null?FJ:function(){return Ck(u),g(_)})}function Tk(u){var h=u.memoizedState;if(h!==null)return h;h={memoizedState:Y,baseState:Y,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:rl,lastRenderedState:Y},next:null};var g={};return h.next={memoizedState:g,baseState:g,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:rl,lastRenderedState:g},next:null},u.memoizedState=h,u=u.alternate,u!==null&&(u.memoizedState=h),h}function Ck(u){var h=Tk(u);h.next===null&&(h=u.alternate.memoizedState),km(u,h.next.queue,{},Wa())}function _M(){return Cr(Jm)}function Rk(){return _i().memoizedState}function Pk(){return _i().memoizedState}function zJ(u){for(var h=u.return;h!==null;){switch(h.tag){case 24:case 3:var g=Wa();u=Sc(g);var _=wc(h,u,g);_!==null&&(wa(_,h,g),Pm(_,h,g)),h={cache:Kw()},u.payload=h;return}h=h.return}}function BJ(u,h,g){var _=Wa();g={lane:_,revertLane:0,gesture:null,action:g,hasEagerState:!1,eagerState:null,next:null},dx(u)?Nk(h,g):(g=zw(u,h,g,_),g!==null&&(wa(g,u,_),Ok(g,h,_)))}function Dk(u,h,g){var _=Wa();km(u,h,g,_)}function km(u,h,g,_){var E={lane:_,revertLane:0,gesture:null,action:g,hasEagerState:!1,eagerState:null,next:null};if(dx(u))Nk(h,E);else{var N=u.alternate;if(u.lanes===0&&(N===null||N.lanes===0)&&(N=h.lastRenderedReducer,N!==null))try{var j=h.lastRenderedState,te=N(j,g);if(E.hasEagerState=!0,E.eagerState=te,Ba(te,j))return $v(u,h,E,0),Bn===null&&Gv(),!1}catch{}finally{}if(g=zw(u,h,E,_),g!==null)return wa(g,u,_),Ok(g,h,_),!0}return!1}function SM(u,h,g,_){if(_={lane:2,revertLane:eE(),gesture:null,action:_,hasEagerState:!1,eagerState:null,next:null},dx(u)){if(h)throw Error(i(479))}else h=zw(u,g,_,2),h!==null&&wa(h,u,2)}function dx(u){var h=u.alternate;return u===Wt||h!==null&&h===Wt}function Nk(u,h){Wf=rx=!0;var g=u.pending;g===null?h.next=h:(h.next=g.next,g.next=h),u.pending=h}function Ok(u,h,g){if((g&4194048)!==0){var _=h.lanes;_&=u.pendingLanes,g|=_,h.lanes=g,zn(u,g)}}var Im={readContext:Cr,use:ox,useCallback:di,useContext:di,useEffect:di,useImperativeHandle:di,useLayoutEffect:di,useInsertionEffect:di,useMemo:di,useReducer:di,useRef:di,useState:di,useDebugValue:di,useDeferredValue:di,useTransition:di,useSyncExternalStore:di,useId:di,useHostTransitionStatus:di,useFormState:di,useActionState:di,useOptimistic:di,useMemoCache:di,useCacheRefresh:di};Im.useEffectEvent=di;var Lk={readContext:Cr,use:ox,useCallback:function(u,h){return ra().memoizedState=[u,h===void 0?null:h],u},useContext:Cr,useEffect:vk,useImperativeHandle:function(u,h,g){g=g!=null?g.concat([u]):null,cx(4194308,4,_k.bind(null,h,u),g)},useLayoutEffect:function(u,h){return cx(4194308,4,u,h)},useInsertionEffect:function(u,h){cx(4,2,u,h)},useMemo:function(u,h){var g=ra();h=h===void 0?null:h;var _=u();if(id){ut(!0);try{u()}finally{ut(!1)}}return g.memoizedState=[_,h],_},useReducer:function(u,h,g){var _=ra();if(g!==void 0){var E=g(h);if(id){ut(!0);try{g(h)}finally{ut(!1)}}}else E=h;return _.memoizedState=_.baseState=E,u={pending:null,lanes:0,dispatch:null,lastRenderedReducer:u,lastRenderedState:E},_.queue=u,u=u.dispatch=BJ.bind(null,Wt,u),[_.memoizedState,u]},useRef:function(u){var h=ra();return u={current:u},h.memoizedState=u},useState:function(u){u=mM(u);var h=u.queue,g=Dk.bind(null,Wt,h);return h.dispatch=g,[u.memoizedState,g]},useDebugValue:xM,useDeferredValue:function(u,h){var g=ra();return yM(g,u,h)},useTransition:function(){var u=mM(!1);return u=Ak.bind(null,Wt,u.queue,!0,!1),ra().memoizedState=u,[!1,u]},useSyncExternalStore:function(u,h,g){var _=Wt,E=ra();if(fn){if(g===void 0)throw Error(i(407));g=g()}else{if(g=h(),Bn===null)throw Error(i(349));(cn&127)!==0||tk(_,h,g)}E.memoizedState=g;var N={value:g,getSnapshot:h};return E.queue=N,vk(ik.bind(null,_,N,u),[u]),_.flags|=2048,Xf(9,{destroy:void 0},nk.bind(null,_,N,g,h),null),g},useId:function(){var u=ra(),h=Bn.identifierPrefix;if(fn){var g=_o,_=bo;g=(_&~(1<<32-et(_)-1)).toString(32)+g,h="_"+h+"R_"+g,g=ax++,0<g&&(h+="H"+g.toString(32)),h+="_"}else g=OJ++,h="_"+h+"r_"+g.toString(32)+"_";return u.memoizedState=h},useHostTransitionStatus:_M,useFormState:fk,useActionState:fk,useOptimistic:function(u){var h=ra();h.memoizedState=h.baseState=u;var g={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return h.queue=g,h=SM.bind(null,Wt,!0,g),g.dispatch=h,[u,h]},useMemoCache:fM,useCacheRefresh:function(){return ra().memoizedState=zJ.bind(null,Wt)},useEffectEvent:function(u){var h=ra(),g={impl:u};return h.memoizedState=g,function(){if((_n&2)!==0)throw Error(i(440));return g.impl.apply(void 0,arguments)}}},wM={readContext:Cr,use:ox,useCallback:wk,useContext:Cr,useEffect:vM,useImperativeHandle:Sk,useInsertionEffect:yk,useLayoutEffect:bk,useMemo:Mk,useReducer:lx,useRef:gk,useState:function(){return lx(rl)},useDebugValue:xM,useDeferredValue:function(u,h){var g=_i();return Ek(g,Rn.memoizedState,u,h)},useTransition:function(){var u=lx(rl)[0],h=_i().memoizedState;return[typeof u=="boolean"?u:Lm(u),h]},useSyncExternalStore:ek,useId:Rk,useHostTransitionStatus:_M,useFormState:hk,useActionState:hk,useOptimistic:function(u,h){var g=_i();return sk(g,Rn,u,h)},useMemoCache:fM,useCacheRefresh:Pk};wM.useEffectEvent=xk;var kk={readContext:Cr,use:ox,useCallback:wk,useContext:Cr,useEffect:vM,useImperativeHandle:Sk,useInsertionEffect:yk,useLayoutEffect:bk,useMemo:Mk,useReducer:pM,useRef:gk,useState:function(){return pM(rl)},useDebugValue:xM,useDeferredValue:function(u,h){var g=_i();return Rn===null?yM(g,u,h):Ek(g,Rn.memoizedState,u,h)},useTransition:function(){var u=pM(rl)[0],h=_i().memoizedState;return[typeof u=="boolean"?u:Lm(u),h]},useSyncExternalStore:ek,useId:Rk,useHostTransitionStatus:_M,useFormState:mk,useActionState:mk,useOptimistic:function(u,h){var g=_i();return Rn!==null?sk(g,Rn,u,h):(g.baseState=u,[u,g.queue.dispatch])},useMemoCache:fM,useCacheRefresh:Pk};kk.useEffectEvent=xk;function MM(u,h,g,_){h=u.memoizedState,g=g(_,h),g=g==null?h:f({},h,g),u.memoizedState=g,u.lanes===0&&(u.updateQueue.baseState=g)}var EM={enqueueSetState:function(u,h,g){u=u._reactInternals;var _=Wa(),E=Sc(_);E.payload=h,g!=null&&(E.callback=g),h=wc(u,E,_),h!==null&&(wa(h,u,_),Pm(h,u,_))},enqueueReplaceState:function(u,h,g){u=u._reactInternals;var _=Wa(),E=Sc(_);E.tag=1,E.payload=h,g!=null&&(E.callback=g),h=wc(u,E,_),h!==null&&(wa(h,u,_),Pm(h,u,_))},enqueueForceUpdate:function(u,h){u=u._reactInternals;var g=Wa(),_=Sc(g);_.tag=2,h!=null&&(_.callback=h),h=wc(u,_,g),h!==null&&(wa(h,u,g),Pm(h,u,g))}};function Ik(u,h,g,_,E,N,j){return u=u.stateNode,typeof u.shouldComponentUpdate=="function"?u.shouldComponentUpdate(_,N,j):h.prototype&&h.prototype.isPureReactComponent?!Sm(g,_)||!Sm(E,N):!0}function Uk(u,h,g,_){u=h.state,typeof h.componentWillReceiveProps=="function"&&h.componentWillReceiveProps(g,_),typeof h.UNSAFE_componentWillReceiveProps=="function"&&h.UNSAFE_componentWillReceiveProps(g,_),h.state!==u&&EM.enqueueReplaceState(h,h.state,null)}function rd(u,h){var g=h;if("ref"in h){g={};for(var _ in h)_!=="ref"&&(g[_]=h[_])}if(u=u.defaultProps){g===h&&(g=f({},g));for(var E in u)g[E]===void 0&&(g[E]=u[E])}return g}function Fk(u){Vv(u)}function zk(u){console.error(u)}function Bk(u){Vv(u)}function fx(u,h){try{var g=u.onUncaughtError;g(h.value,{componentStack:h.stack})}catch(_){setTimeout(function(){throw _})}}function jk(u,h,g){try{var _=u.onCaughtError;_(g.value,{componentStack:g.stack,errorBoundary:h.tag===1?h.stateNode:null})}catch(E){setTimeout(function(){throw E})}}function AM(u,h,g){return g=Sc(g),g.tag=3,g.payload={element:null},g.callback=function(){fx(u,h)},g}function Hk(u){return u=Sc(u),u.tag=3,u}function Vk(u,h,g,_){var E=g.type.getDerivedStateFromError;if(typeof E=="function"){var N=_.value;u.payload=function(){return E(N)},u.callback=function(){jk(h,g,_)}}var j=g.stateNode;j!==null&&typeof j.componentDidCatch=="function"&&(u.callback=function(){jk(h,g,_),typeof E!="function"&&(Rc===null?Rc=new Set([this]):Rc.add(this));var te=_.stack;this.componentDidCatch(_.value,{componentStack:te!==null?te:""})})}function jJ(u,h,g,_,E){if(g.flags|=32768,_!==null&&typeof _=="object"&&typeof _.then=="function"){if(h=g.alternate,h!==null&&Bf(h,g,E,!0),g=Ha.current,g!==null){switch(g.tag){case 31:case 13:return ps===null?Mx():g.alternate===null&&fi===0&&(fi=3),g.flags&=-257,g.flags|=65536,g.lanes=E,_===Qv?g.flags|=16384:(h=g.updateQueue,h===null?g.updateQueue=new Set([_]):h.add(_),ZM(u,_,E)),!1;case 22:return g.flags|=65536,_===Qv?g.flags|=16384:(h=g.updateQueue,h===null?(h={transitions:null,markerInstances:null,retryQueue:new Set([_])},g.updateQueue=h):(g=h.retryQueue,g===null?h.retryQueue=new Set([_]):g.add(_)),ZM(u,_,E)),!1}throw Error(i(435,g.tag))}return ZM(u,_,E),Mx(),!1}if(fn)return h=Ha.current,h!==null?((h.flags&65536)===0&&(h.flags|=256),h.flags|=65536,h.lanes=E,_!==$w&&(u=Error(i(422),{cause:_}),Em(us(u,g)))):(_!==$w&&(h=Error(i(423),{cause:_}),Em(us(h,g))),u=u.current.alternate,u.flags|=65536,E&=-E,u.lanes|=E,_=us(_,g),E=AM(u.stateNode,_,E),nM(u,E),fi!==4&&(fi=2)),!1;var N=Error(i(520),{cause:_});if(N=us(N,g),Gm===null?Gm=[N]:Gm.push(N),fi!==4&&(fi=2),h===null)return!0;_=us(_,g),g=h;do{switch(g.tag){case 3:return g.flags|=65536,u=E&-E,g.lanes|=u,u=AM(g.stateNode,_,u),nM(g,u),!1;case 1:if(h=g.type,N=g.stateNode,(g.flags&128)===0&&(typeof h.getDerivedStateFromError=="function"||N!==null&&typeof N.componentDidCatch=="function"&&(Rc===null||!Rc.has(N))))return g.flags|=65536,E&=-E,g.lanes|=E,E=Hk(E),Vk(E,u,g,_),nM(g,E),!1}g=g.return}while(g!==null);return!1}var TM=Error(i(461)),Ri=!1;function Rr(u,h,g,_){h.child=u===null?qL(h,null,g,_):nd(h,u.child,g,_)}function Gk(u,h,g,_,E){g=g.render;var N=h.ref;if("ref"in _){var j={};for(var te in _)te!=="ref"&&(j[te]=_[te])}else j=_;return Ju(h),_=lM(u,h,g,j,N,E),te=cM(),u!==null&&!Ri?(uM(u,h,E),al(u,h,E)):(fn&&te&&Vw(h),h.flags|=1,Rr(u,h,_,E),h.child)}function $k(u,h,g,_,E){if(u===null){var N=g.type;return typeof N=="function"&&!Bw(N)&&N.defaultProps===void 0&&g.compare===null?(h.tag=15,h.type=N,Wk(u,h,N,_,E)):(u=qv(g.type,null,_,h,h.mode,E),u.ref=h.ref,u.return=h,h.child=u)}if(N=u.child,!kM(u,E)){var j=N.memoizedProps;if(g=g.compare,g=g!==null?g:Sm,g(j,_)&&u.ref===h.ref)return al(u,h,E)}return h.flags|=1,u=Qo(N,_),u.ref=h.ref,u.return=h,h.child=u}function Wk(u,h,g,_,E){if(u!==null){var N=u.memoizedProps;if(Sm(N,_)&&u.ref===h.ref)if(Ri=!1,h.pendingProps=_=N,kM(u,E))(u.flags&131072)!==0&&(Ri=!0);else return h.lanes=u.lanes,al(u,h,E)}return CM(u,h,g,_,E)}function qk(u,h,g,_){var E=_.children,N=u!==null?u.memoizedState:null;if(u===null&&h.stateNode===null&&(h.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),_.mode==="hidden"){if((h.flags&128)!==0){if(N=N!==null?N.baseLanes|g:g,u!==null){for(_=h.child=u.child,E=0;_!==null;)E=E|_.lanes|_.childLanes,_=_.sibling;_=E&~N}else _=0,h.child=null;return Xk(u,h,N,g,_)}if((g&536870912)!==0)h.memoizedState={baseLanes:0,cachePool:null},u!==null&&Zv(h,N!==null?N.cachePool:null),N!==null?KL(h,N):rM(),ZL(h);else return _=h.lanes=536870912,Xk(u,h,N!==null?N.baseLanes|g:g,g,_)}else N!==null?(Zv(h,N.cachePool),KL(h,N),Ec(),h.memoizedState=null):(u!==null&&Zv(h,null),rM(),Ec());return Rr(u,h,E,g),h.child}function Um(u,h){return u!==null&&u.tag===22||h.stateNode!==null||(h.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),h.sibling}function Xk(u,h,g,_,E){var N=Jw();return N=N===null?null:{parent:Ti._currentValue,pool:N},h.memoizedState={baseLanes:g,cachePool:N},u!==null&&Zv(h,null),rM(),ZL(h),u!==null&&Bf(u,h,_,!0),h.childLanes=E,null}function hx(u,h){return h=mx({mode:h.mode,children:h.children},u.mode),h.ref=u.ref,u.child=h,h.return=u,h}function Yk(u,h,g){return nd(h,u.child,null,g),u=hx(h,h.pendingProps),u.flags|=2,Va(h),h.memoizedState=null,u}function HJ(u,h,g){var _=h.pendingProps,E=(h.flags&128)!==0;if(h.flags&=-129,u===null){if(fn){if(_.mode==="hidden")return u=hx(h,_),h.lanes=536870912,Um(null,u);if(sM(h),(u=qn)?(u=oU(u,hs),u=u!==null&&u.data==="&"?u:null,u!==null&&(h.memoizedState={dehydrated:u,treeContext:vc!==null?{id:bo,overflow:_o}:null,retryLane:536870912,hydrationErrors:null},g=NL(u),g.return=h,h.child=g,Tr=h,qn=null)):u=null,u===null)throw yc(h);return h.lanes=536870912,null}return hx(h,_)}var N=u.memoizedState;if(N!==null){var j=N.dehydrated;if(sM(h),E)if(h.flags&256)h.flags&=-257,h=Yk(u,h,g);else if(h.memoizedState!==null)h.child=u.child,h.flags|=128,h=null;else throw Error(i(558));else if(Ri||Bf(u,h,g,!1),E=(g&u.childLanes)!==0,Ri||E){if(_=Bn,_!==null&&(j=cr(_,g),j!==0&&j!==N.retryLane))throw N.retryLane=j,Xu(u,j),wa(_,u,j),TM;Mx(),h=Yk(u,h,g)}else u=N.treeContext,qn=ms(j.nextSibling),Tr=h,fn=!0,xc=null,hs=!1,u!==null&&kL(h,u),h=hx(h,_),h.flags|=4096;return h}return u=Qo(u.child,{mode:_.mode,children:_.children}),u.ref=h.ref,h.child=u,u.return=h,u}function px(u,h){var g=h.ref;if(g===null)u!==null&&u.ref!==null&&(h.flags|=4194816);else{if(typeof g!="function"&&typeof g!="object")throw Error(i(284));(u===null||u.ref!==g)&&(h.flags|=4194816)}}function CM(u,h,g,_,E){return Ju(h),g=lM(u,h,g,_,void 0,E),_=cM(),u!==null&&!Ri?(uM(u,h,E),al(u,h,E)):(fn&&_&&Vw(h),h.flags|=1,Rr(u,h,g,E),h.child)}function Kk(u,h,g,_,E,N){return Ju(h),h.updateQueue=null,g=QL(h,_,g,E),JL(u),_=cM(),u!==null&&!Ri?(uM(u,h,N),al(u,h,N)):(fn&&_&&Vw(h),h.flags|=1,Rr(u,h,g,N),h.child)}function Zk(u,h,g,_,E){if(Ju(h),h.stateNode===null){var N=If,j=g.contextType;typeof j=="object"&&j!==null&&(N=Cr(j)),N=new g(_,N),h.memoizedState=N.state!==null&&N.state!==void 0?N.state:null,N.updater=EM,h.stateNode=N,N._reactInternals=h,N=h.stateNode,N.props=_,N.state=h.memoizedState,N.refs={},eM(h),j=g.contextType,N.context=typeof j=="object"&&j!==null?Cr(j):If,N.state=h.memoizedState,j=g.getDerivedStateFromProps,typeof j=="function"&&(MM(h,g,j,_),N.state=h.memoizedState),typeof g.getDerivedStateFromProps=="function"||typeof N.getSnapshotBeforeUpdate=="function"||typeof N.UNSAFE_componentWillMount!="function"&&typeof N.componentWillMount!="function"||(j=N.state,typeof N.componentWillMount=="function"&&N.componentWillMount(),typeof N.UNSAFE_componentWillMount=="function"&&N.UNSAFE_componentWillMount(),j!==N.state&&EM.enqueueReplaceState(N,N.state,null),Nm(h,_,N,E),Dm(),N.state=h.memoizedState),typeof N.componentDidMount=="function"&&(h.flags|=4194308),_=!0}else if(u===null){N=h.stateNode;var te=h.memoizedProps,Se=rd(g,te);N.props=Se;var ze=N.context,Je=g.contextType;j=If,typeof Je=="object"&&Je!==null&&(j=Cr(Je));var it=g.getDerivedStateFromProps;Je=typeof it=="function"||typeof N.getSnapshotBeforeUpdate=="function",te=h.pendingProps!==te,Je||typeof N.UNSAFE_componentWillReceiveProps!="function"&&typeof N.componentWillReceiveProps!="function"||(te||ze!==j)&&Uk(h,N,_,j),_c=!1;var Ve=h.memoizedState;N.state=Ve,Nm(h,_,N,E),Dm(),ze=h.memoizedState,te||Ve!==ze||_c?(typeof it=="function"&&(MM(h,g,it,_),ze=h.memoizedState),(Se=_c||Ik(h,g,Se,_,Ve,ze,j))?(Je||typeof N.UNSAFE_componentWillMount!="function"&&typeof N.componentWillMount!="function"||(typeof N.componentWillMount=="function"&&N.componentWillMount(),typeof N.UNSAFE_componentWillMount=="function"&&N.UNSAFE_componentWillMount()),typeof N.componentDidMount=="function"&&(h.flags|=4194308)):(typeof N.componentDidMount=="function"&&(h.flags|=4194308),h.memoizedProps=_,h.memoizedState=ze),N.props=_,N.state=ze,N.context=j,_=Se):(typeof N.componentDidMount=="function"&&(h.flags|=4194308),_=!1)}else{N=h.stateNode,tM(u,h),j=h.memoizedProps,Je=rd(g,j),N.props=Je,it=h.pendingProps,Ve=N.context,ze=g.contextType,Se=If,typeof ze=="object"&&ze!==null&&(Se=Cr(ze)),te=g.getDerivedStateFromProps,(ze=typeof te=="function"||typeof N.getSnapshotBeforeUpdate=="function")||typeof N.UNSAFE_componentWillReceiveProps!="function"&&typeof N.componentWillReceiveProps!="function"||(j!==it||Ve!==Se)&&Uk(h,N,_,Se),_c=!1,Ve=h.memoizedState,N.state=Ve,Nm(h,_,N,E),Dm();var Ye=h.memoizedState;j!==it||Ve!==Ye||_c||u!==null&&u.dependencies!==null&&Yv(u.dependencies)?(typeof te=="function"&&(MM(h,g,te,_),Ye=h.memoizedState),(Je=_c||Ik(h,g,Je,_,Ve,Ye,Se)||u!==null&&u.dependencies!==null&&Yv(u.dependencies))?(ze||typeof N.UNSAFE_componentWillUpdate!="function"&&typeof N.componentWillUpdate!="function"||(typeof N.componentWillUpdate=="function"&&N.componentWillUpdate(_,Ye,Se),typeof N.UNSAFE_componentWillUpdate=="function"&&N.UNSAFE_componentWillUpdate(_,Ye,Se)),typeof N.componentDidUpdate=="function"&&(h.flags|=4),typeof N.getSnapshotBeforeUpdate=="function"&&(h.flags|=1024)):(typeof N.componentDidUpdate!="function"||j===u.memoizedProps&&Ve===u.memoizedState||(h.flags|=4),typeof N.getSnapshotBeforeUpdate!="function"||j===u.memoizedProps&&Ve===u.memoizedState||(h.flags|=1024),h.memoizedProps=_,h.memoizedState=Ye),N.props=_,N.state=Ye,N.context=Se,_=Je):(typeof N.componentDidUpdate!="function"||j===u.memoizedProps&&Ve===u.memoizedState||(h.flags|=4),typeof N.getSnapshotBeforeUpdate!="function"||j===u.memoizedProps&&Ve===u.memoizedState||(h.flags|=1024),_=!1)}return N=_,px(u,h),_=(h.flags&128)!==0,N||_?(N=h.stateNode,g=_&&typeof g.getDerivedStateFromError!="function"?null:N.render(),h.flags|=1,u!==null&&_?(h.child=nd(h,u.child,null,E),h.child=nd(h,null,g,E)):Rr(u,h,g,E),h.memoizedState=N.state,u=h.child):u=al(u,h,E),u}function Jk(u,h,g,_){return Ku(),h.flags|=256,Rr(u,h,g,_),h.child}var RM={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function PM(u){return{baseLanes:u,cachePool:jL()}}function DM(u,h,g){return u=u!==null?u.childLanes&~g:0,h&&(u|=$a),u}function Qk(u,h,g){var _=h.pendingProps,E=!1,N=(h.flags&128)!==0,j;if((j=N)||(j=u!==null&&u.memoizedState===null?!1:(bi.current&2)!==0),j&&(E=!0,h.flags&=-129),j=(h.flags&32)!==0,h.flags&=-33,u===null){if(fn){if(E?Mc(h):Ec(),(u=qn)?(u=oU(u,hs),u=u!==null&&u.data!=="&"?u:null,u!==null&&(h.memoizedState={dehydrated:u,treeContext:vc!==null?{id:bo,overflow:_o}:null,retryLane:536870912,hydrationErrors:null},g=NL(u),g.return=h,h.child=g,Tr=h,qn=null)):u=null,u===null)throw yc(h);return hE(u)?h.lanes=32:h.lanes=536870912,null}var te=_.children;return _=_.fallback,E?(Ec(),E=h.mode,te=mx({mode:"hidden",children:te},E),_=Yu(_,E,g,null),te.return=h,_.return=h,te.sibling=_,h.child=te,_=h.child,_.memoizedState=PM(g),_.childLanes=DM(u,j,g),h.memoizedState=RM,Um(null,_)):(Mc(h),NM(h,te))}var Se=u.memoizedState;if(Se!==null&&(te=Se.dehydrated,te!==null)){if(N)h.flags&256?(Mc(h),h.flags&=-257,h=OM(u,h,g)):h.memoizedState!==null?(Ec(),h.child=u.child,h.flags|=128,h=null):(Ec(),te=_.fallback,E=h.mode,_=mx({mode:"visible",children:_.children},E),te=Yu(te,E,g,null),te.flags|=2,_.return=h,te.return=h,_.sibling=te,h.child=_,nd(h,u.child,null,g),_=h.child,_.memoizedState=PM(g),_.childLanes=DM(u,j,g),h.memoizedState=RM,h=Um(null,_));else if(Mc(h),hE(te)){if(j=te.nextSibling&&te.nextSibling.dataset,j)var ze=j.dgst;j=ze,_=Error(i(419)),_.stack="",_.digest=j,Em({value:_,source:null,stack:null}),h=OM(u,h,g)}else if(Ri||Bf(u,h,g,!1),j=(g&u.childLanes)!==0,Ri||j){if(j=Bn,j!==null&&(_=cr(j,g),_!==0&&_!==Se.retryLane))throw Se.retryLane=_,Xu(u,_),wa(j,u,_),TM;fE(te)||Mx(),h=OM(u,h,g)}else fE(te)?(h.flags|=192,h.child=u.child,h=null):(u=Se.treeContext,qn=ms(te.nextSibling),Tr=h,fn=!0,xc=null,hs=!1,u!==null&&kL(h,u),h=NM(h,_.children),h.flags|=4096);return h}return E?(Ec(),te=_.fallback,E=h.mode,Se=u.child,ze=Se.sibling,_=Qo(Se,{mode:"hidden",children:_.children}),_.subtreeFlags=Se.subtreeFlags&65011712,ze!==null?te=Qo(ze,te):(te=Yu(te,E,g,null),te.flags|=2),te.return=h,_.return=h,_.sibling=te,h.child=_,Um(null,_),_=h.child,te=u.child.memoizedState,te===null?te=PM(g):(E=te.cachePool,E!==null?(Se=Ti._currentValue,E=E.parent!==Se?{parent:Se,pool:Se}:E):E=jL(),te={baseLanes:te.baseLanes|g,cachePool:E}),_.memoizedState=te,_.childLanes=DM(u,j,g),h.memoizedState=RM,Um(u.child,_)):(Mc(h),g=u.child,u=g.sibling,g=Qo(g,{mode:"visible",children:_.children}),g.return=h,g.sibling=null,u!==null&&(j=h.deletions,j===null?(h.deletions=[u],h.flags|=16):j.push(u)),h.child=g,h.memoizedState=null,g)}function NM(u,h){return h=mx({mode:"visible",children:h},u.mode),h.return=u,u.child=h}function mx(u,h){return u=ja(22,u,null,h),u.lanes=0,u}function OM(u,h,g){return nd(h,u.child,null,g),u=NM(h,h.pendingProps.children),u.flags|=2,h.memoizedState=null,u}function eI(u,h,g){u.lanes|=h;var _=u.alternate;_!==null&&(_.lanes|=h),Xw(u.return,h,g)}function LM(u,h,g,_,E,N){var j=u.memoizedState;j===null?u.memoizedState={isBackwards:h,rendering:null,renderingStartTime:0,last:_,tail:g,tailMode:E,treeForkCount:N}:(j.isBackwards=h,j.rendering=null,j.renderingStartTime=0,j.last=_,j.tail=g,j.tailMode=E,j.treeForkCount=N)}function tI(u,h,g){var _=h.pendingProps,E=_.revealOrder,N=_.tail;_=_.children;var j=bi.current,te=(j&2)!==0;if(te?(j=j&1|2,h.flags|=128):j&=1,re(bi,j),Rr(u,h,_,g),_=fn?Mm:0,!te&&u!==null&&(u.flags&128)!==0)e:for(u=h.child;u!==null;){if(u.tag===13)u.memoizedState!==null&&eI(u,g,h);else if(u.tag===19)eI(u,g,h);else if(u.child!==null){u.child.return=u,u=u.child;continue}if(u===h)break e;for(;u.sibling===null;){if(u.return===null||u.return===h)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}switch(E){case"forwards":for(g=h.child,E=null;g!==null;)u=g.alternate,u!==null&&ix(u)===null&&(E=g),g=g.sibling;g=E,g===null?(E=h.child,h.child=null):(E=g.sibling,g.sibling=null),LM(h,!1,E,g,N,_);break;case"backwards":case"unstable_legacy-backwards":for(g=null,E=h.child,h.child=null;E!==null;){if(u=E.alternate,u!==null&&ix(u)===null){h.child=E;break}u=E.sibling,E.sibling=g,g=E,E=u}LM(h,!0,g,null,N,_);break;case"together":LM(h,!1,null,null,void 0,_);break;default:h.memoizedState=null}return h.child}function al(u,h,g){if(u!==null&&(h.dependencies=u.dependencies),Cc|=h.lanes,(g&h.childLanes)===0)if(u!==null){if(Bf(u,h,g,!1),(g&h.childLanes)===0)return null}else return null;if(u!==null&&h.child!==u.child)throw Error(i(153));if(h.child!==null){for(u=h.child,g=Qo(u,u.pendingProps),h.child=g,g.return=h;u.sibling!==null;)u=u.sibling,g=g.sibling=Qo(u,u.pendingProps),g.return=h;g.sibling=null}return h.child}function kM(u,h){return(u.lanes&h)!==0?!0:(u=u.dependencies,!!(u!==null&&Yv(u)))}function VJ(u,h,g){switch(h.tag){case 3:Ne(h,h.stateNode.containerInfo),bc(h,Ti,u.memoizedState.cache),Ku();break;case 27:case 5:Ae(h);break;case 4:Ne(h,h.stateNode.containerInfo);break;case 10:bc(h,h.type,h.memoizedProps.value);break;case 31:if(h.memoizedState!==null)return h.flags|=128,sM(h),null;break;case 13:var _=h.memoizedState;if(_!==null)return _.dehydrated!==null?(Mc(h),h.flags|=128,null):(g&h.child.childLanes)!==0?Qk(u,h,g):(Mc(h),u=al(u,h,g),u!==null?u.sibling:null);Mc(h);break;case 19:var E=(u.flags&128)!==0;if(_=(g&h.childLanes)!==0,_||(Bf(u,h,g,!1),_=(g&h.childLanes)!==0),E){if(_)return tI(u,h,g);h.flags|=128}if(E=h.memoizedState,E!==null&&(E.rendering=null,E.tail=null,E.lastEffect=null),re(bi,bi.current),_)break;return null;case 22:return h.lanes=0,qk(u,h,g,h.pendingProps);case 24:bc(h,Ti,u.memoizedState.cache)}return al(u,h,g)}function nI(u,h,g){if(u!==null)if(u.memoizedProps!==h.pendingProps)Ri=!0;else{if(!kM(u,g)&&(h.flags&128)===0)return Ri=!1,VJ(u,h,g);Ri=(u.flags&131072)!==0}else Ri=!1,fn&&(h.flags&1048576)!==0&&LL(h,Mm,h.index);switch(h.lanes=0,h.tag){case 16:e:{var _=h.pendingProps;if(u=ed(h.elementType),h.type=u,typeof u=="function")Bw(u)?(_=rd(u,_),h.tag=1,h=Zk(null,h,u,_,g)):(h.tag=0,h=CM(null,h,u,_,g));else{if(u!=null){var E=u.$$typeof;if(E===A){h.tag=11,h=Gk(null,h,u,_,g);break e}else if(E===C){h.tag=14,h=$k(null,h,u,_,g);break e}}throw h=O(u)||u,Error(i(306,h,""))}}return h;case 0:return CM(u,h,h.type,h.pendingProps,g);case 1:return _=h.type,E=rd(_,h.pendingProps),Zk(u,h,_,E,g);case 3:e:{if(Ne(h,h.stateNode.containerInfo),u===null)throw Error(i(387));_=h.pendingProps;var N=h.memoizedState;E=N.element,tM(u,h),Nm(h,_,null,g);var j=h.memoizedState;if(_=j.cache,bc(h,Ti,_),_!==N.cache&&Yw(h,[Ti],g,!0),Dm(),_=j.element,N.isDehydrated)if(N={element:_,isDehydrated:!1,cache:j.cache},h.updateQueue.baseState=N,h.memoizedState=N,h.flags&256){h=Jk(u,h,_,g);break e}else if(_!==E){E=us(Error(i(424)),h),Em(E),h=Jk(u,h,_,g);break e}else{switch(u=h.stateNode.containerInfo,u.nodeType){case 9:u=u.body;break;default:u=u.nodeName==="HTML"?u.ownerDocument.body:u}for(qn=ms(u.firstChild),Tr=h,fn=!0,xc=null,hs=!0,g=qL(h,null,_,g),h.child=g;g;)g.flags=g.flags&-3|4096,g=g.sibling}else{if(Ku(),_===E){h=al(u,h,g);break e}Rr(u,h,_,g)}h=h.child}return h;case 26:return px(u,h),u===null?(g=hU(h.type,null,h.pendingProps,null))?h.memoizedState=g:fn||(g=h.type,u=h.pendingProps,_=Dx(me.current).createElement(g),_[ri]=h,_[xi]=u,Pr(_,g,u),Re(_),h.stateNode=_):h.memoizedState=hU(h.type,u.memoizedProps,h.pendingProps,u.memoizedState),null;case 27:return Ae(h),u===null&&fn&&(_=h.stateNode=uU(h.type,h.pendingProps,me.current),Tr=h,hs=!0,E=qn,Oc(h.type)?(pE=E,qn=ms(_.firstChild)):qn=E),Rr(u,h,h.pendingProps.children,g),px(u,h),u===null&&(h.flags|=4194304),h.child;case 5:return u===null&&fn&&((E=_=qn)&&(_=yQ(_,h.type,h.pendingProps,hs),_!==null?(h.stateNode=_,Tr=h,qn=ms(_.firstChild),hs=!1,E=!0):E=!1),E||yc(h)),Ae(h),E=h.type,N=h.pendingProps,j=u!==null?u.memoizedProps:null,_=N.children,cE(E,N)?_=null:j!==null&&cE(E,j)&&(h.flags|=32),h.memoizedState!==null&&(E=lM(u,h,LJ,null,null,g),Jm._currentValue=E),px(u,h),Rr(u,h,_,g),h.child;case 6:return u===null&&fn&&((u=g=qn)&&(g=bQ(g,h.pendingProps,hs),g!==null?(h.stateNode=g,Tr=h,qn=null,u=!0):u=!1),u||yc(h)),null;case 13:return Qk(u,h,g);case 4:return Ne(h,h.stateNode.containerInfo),_=h.pendingProps,u===null?h.child=nd(h,null,_,g):Rr(u,h,_,g),h.child;case 11:return Gk(u,h,h.type,h.pendingProps,g);case 7:return Rr(u,h,h.pendingProps,g),h.child;case 8:return Rr(u,h,h.pendingProps.children,g),h.child;case 12:return Rr(u,h,h.pendingProps.children,g),h.child;case 10:return _=h.pendingProps,bc(h,h.type,_.value),Rr(u,h,_.children,g),h.child;case 9:return E=h.type._context,_=h.pendingProps.children,Ju(h),E=Cr(E),_=_(E),h.flags|=1,Rr(u,h,_,g),h.child;case 14:return $k(u,h,h.type,h.pendingProps,g);case 15:return Wk(u,h,h.type,h.pendingProps,g);case 19:return tI(u,h,g);case 31:return HJ(u,h,g);case 22:return qk(u,h,g,h.pendingProps);case 24:return Ju(h),_=Cr(Ti),u===null?(E=Jw(),E===null&&(E=Bn,N=Kw(),E.pooledCache=N,N.refCount++,N!==null&&(E.pooledCacheLanes|=g),E=N),h.memoizedState={parent:_,cache:E},eM(h),bc(h,Ti,E)):((u.lanes&g)!==0&&(tM(u,h),Nm(h,null,null,g),Dm()),E=u.memoizedState,N=h.memoizedState,E.parent!==_?(E={parent:_,cache:_},h.memoizedState=E,h.lanes===0&&(h.memoizedState=h.updateQueue.baseState=E),bc(h,Ti,_)):(_=N.cache,bc(h,Ti,_),_!==E.cache&&Yw(h,[Ti],g,!0))),Rr(u,h,h.pendingProps.children,g),h.child;case 29:throw h.pendingProps}throw Error(i(156,h.tag))}function sl(u){u.flags|=4}function IM(u,h,g,_,E){if((h=(u.mode&32)!==0)&&(h=!1),h){if(u.flags|=16777216,(E&335544128)===E)if(u.stateNode.complete)u.flags|=8192;else if(RI())u.flags|=8192;else throw td=Qv,Qw}else u.flags&=-16777217}function iI(u,h){if(h.type!=="stylesheet"||(h.state.loading&4)!==0)u.flags&=-16777217;else if(u.flags|=16777216,!xU(h))if(RI())u.flags|=8192;else throw td=Qv,Qw}function gx(u,h){h!==null&&(u.flags|=4),u.flags&16384&&(h=u.tag!==22?vt():536870912,u.lanes|=h,Jf|=h)}function Fm(u,h){if(!fn)switch(u.tailMode){case"hidden":h=u.tail;for(var g=null;h!==null;)h.alternate!==null&&(g=h),h=h.sibling;g===null?u.tail=null:g.sibling=null;break;case"collapsed":g=u.tail;for(var _=null;g!==null;)g.alternate!==null&&(_=g),g=g.sibling;_===null?h||u.tail===null?u.tail=null:u.tail.sibling=null:_.sibling=null}}function Xn(u){var h=u.alternate!==null&&u.alternate.child===u.child,g=0,_=0;if(h)for(var E=u.child;E!==null;)g|=E.lanes|E.childLanes,_|=E.subtreeFlags&65011712,_|=E.flags&65011712,E.return=u,E=E.sibling;else for(E=u.child;E!==null;)g|=E.lanes|E.childLanes,_|=E.subtreeFlags,_|=E.flags,E.return=u,E=E.sibling;return u.subtreeFlags|=_,u.childLanes=g,h}function GJ(u,h,g){var _=h.pendingProps;switch(Gw(h),h.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Xn(h),null;case 1:return Xn(h),null;case 3:return g=h.stateNode,_=null,u!==null&&(_=u.memoizedState.cache),h.memoizedState.cache!==_&&(h.flags|=2048),nl(Ti),he(),g.pendingContext&&(g.context=g.pendingContext,g.pendingContext=null),(u===null||u.child===null)&&(zf(h)?sl(h):u===null||u.memoizedState.isDehydrated&&(h.flags&256)===0||(h.flags|=1024,Ww())),Xn(h),null;case 26:var E=h.type,N=h.memoizedState;return u===null?(sl(h),N!==null?(Xn(h),iI(h,N)):(Xn(h),IM(h,E,null,_,g))):N?N!==u.memoizedState?(sl(h),Xn(h),iI(h,N)):(Xn(h),h.flags&=-16777217):(u=u.memoizedProps,u!==_&&sl(h),Xn(h),IM(h,E,u,_,g)),null;case 27:if(Be(h),g=me.current,E=h.type,u!==null&&h.stateNode!=null)u.memoizedProps!==_&&sl(h);else{if(!_){if(h.stateNode===null)throw Error(i(166));return Xn(h),null}u=ce.current,zf(h)?IL(h):(u=uU(E,_,g),h.stateNode=u,sl(h))}return Xn(h),null;case 5:if(Be(h),E=h.type,u!==null&&h.stateNode!=null)u.memoizedProps!==_&&sl(h);else{if(!_){if(h.stateNode===null)throw Error(i(166));return Xn(h),null}if(N=ce.current,zf(h))IL(h);else{var j=Dx(me.current);switch(N){case 1:N=j.createElementNS("http://www.w3.org/2000/svg",E);break;case 2:N=j.createElementNS("http://www.w3.org/1998/Math/MathML",E);break;default:switch(E){case"svg":N=j.createElementNS("http://www.w3.org/2000/svg",E);break;case"math":N=j.createElementNS("http://www.w3.org/1998/Math/MathML",E);break;case"script":N=j.createElement("div"),N.innerHTML="<script><\/script>",N=N.removeChild(N.firstChild);break;case"select":N=typeof _.is=="string"?j.createElement("select",{is:_.is}):j.createElement("select"),_.multiple?N.multiple=!0:_.size&&(N.size=_.size);break;default:N=typeof _.is=="string"?j.createElement(E,{is:_.is}):j.createElement(E)}}N[ri]=h,N[xi]=_;e:for(j=h.child;j!==null;){if(j.tag===5||j.tag===6)N.appendChild(j.stateNode);else if(j.tag!==4&&j.tag!==27&&j.child!==null){j.child.return=j,j=j.child;continue}if(j===h)break e;for(;j.sibling===null;){if(j.return===null||j.return===h)break e;j=j.return}j.sibling.return=j.return,j=j.sibling}h.stateNode=N;e:switch(Pr(N,E,_),E){case"button":case"input":case"select":case"textarea":_=!!_.autoFocus;break e;case"img":_=!0;break e;default:_=!1}_&&sl(h)}}return Xn(h),IM(h,h.type,u===null?null:u.memoizedProps,h.pendingProps,g),null;case 6:if(u&&h.stateNode!=null)u.memoizedProps!==_&&sl(h);else{if(typeof _!="string"&&h.stateNode===null)throw Error(i(166));if(u=me.current,zf(h)){if(u=h.stateNode,g=h.memoizedProps,_=null,E=Tr,E!==null)switch(E.tag){case 27:case 5:_=E.memoizedProps}u[ri]=h,u=!!(u.nodeValue===g||_!==null&&_.suppressHydrationWarning===!0||QI(u.nodeValue,g)),u||yc(h,!0)}else u=Dx(u).createTextNode(_),u[ri]=h,h.stateNode=u}return Xn(h),null;case 31:if(g=h.memoizedState,u===null||u.memoizedState!==null){if(_=zf(h),g!==null){if(u===null){if(!_)throw Error(i(318));if(u=h.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(i(557));u[ri]=h}else Ku(),(h.flags&128)===0&&(h.memoizedState=null),h.flags|=4;Xn(h),u=!1}else g=Ww(),u!==null&&u.memoizedState!==null&&(u.memoizedState.hydrationErrors=g),u=!0;if(!u)return h.flags&256?(Va(h),h):(Va(h),null);if((h.flags&128)!==0)throw Error(i(558))}return Xn(h),null;case 13:if(_=h.memoizedState,u===null||u.memoizedState!==null&&u.memoizedState.dehydrated!==null){if(E=zf(h),_!==null&&_.dehydrated!==null){if(u===null){if(!E)throw Error(i(318));if(E=h.memoizedState,E=E!==null?E.dehydrated:null,!E)throw Error(i(317));E[ri]=h}else Ku(),(h.flags&128)===0&&(h.memoizedState=null),h.flags|=4;Xn(h),E=!1}else E=Ww(),u!==null&&u.memoizedState!==null&&(u.memoizedState.hydrationErrors=E),E=!0;if(!E)return h.flags&256?(Va(h),h):(Va(h),null)}return Va(h),(h.flags&128)!==0?(h.lanes=g,h):(g=_!==null,u=u!==null&&u.memoizedState!==null,g&&(_=h.child,E=null,_.alternate!==null&&_.alternate.memoizedState!==null&&_.alternate.memoizedState.cachePool!==null&&(E=_.alternate.memoizedState.cachePool.pool),N=null,_.memoizedState!==null&&_.memoizedState.cachePool!==null&&(N=_.memoizedState.cachePool.pool),N!==E&&(_.flags|=2048)),g!==u&&g&&(h.child.flags|=8192),gx(h,h.updateQueue),Xn(h),null);case 4:return he(),u===null&&rE(h.stateNode.containerInfo),Xn(h),null;case 10:return nl(h.type),Xn(h),null;case 19:if(X(bi),_=h.memoizedState,_===null)return Xn(h),null;if(E=(h.flags&128)!==0,N=_.rendering,N===null)if(E)Fm(_,!1);else{if(fi!==0||u!==null&&(u.flags&128)!==0)for(u=h.child;u!==null;){if(N=ix(u),N!==null){for(h.flags|=128,Fm(_,!1),u=N.updateQueue,h.updateQueue=u,gx(h,u),h.subtreeFlags=0,u=g,g=h.child;g!==null;)DL(g,u),g=g.sibling;return re(bi,bi.current&1|2),fn&&el(h,_.treeForkCount),h.child}u=u.sibling}_.tail!==null&&L()>_x&&(h.flags|=128,E=!0,Fm(_,!1),h.lanes=4194304)}else{if(!E)if(u=ix(N),u!==null){if(h.flags|=128,E=!0,u=u.updateQueue,h.updateQueue=u,gx(h,u),Fm(_,!0),_.tail===null&&_.tailMode==="hidden"&&!N.alternate&&!fn)return Xn(h),null}else 2*L()-_.renderingStartTime>_x&&g!==536870912&&(h.flags|=128,E=!0,Fm(_,!1),h.lanes=4194304);_.isBackwards?(N.sibling=h.child,h.child=N):(u=_.last,u!==null?u.sibling=N:h.child=N,_.last=N)}return _.tail!==null?(u=_.tail,_.rendering=u,_.tail=u.sibling,_.renderingStartTime=L(),u.sibling=null,g=bi.current,re(bi,E?g&1|2:g&1),fn&&el(h,_.treeForkCount),u):(Xn(h),null);case 22:case 23:return Va(h),aM(),_=h.memoizedState!==null,u!==null?u.memoizedState!==null!==_&&(h.flags|=8192):_&&(h.flags|=8192),_?(g&536870912)!==0&&(h.flags&128)===0&&(Xn(h),h.subtreeFlags&6&&(h.flags|=8192)):Xn(h),g=h.updateQueue,g!==null&&gx(h,g.retryQueue),g=null,u!==null&&u.memoizedState!==null&&u.memoizedState.cachePool!==null&&(g=u.memoizedState.cachePool.pool),_=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(_=h.memoizedState.cachePool.pool),_!==g&&(h.flags|=2048),u!==null&&X(Qu),null;case 24:return g=null,u!==null&&(g=u.memoizedState.cache),h.memoizedState.cache!==g&&(h.flags|=2048),nl(Ti),Xn(h),null;case 25:return null;case 30:return null}throw Error(i(156,h.tag))}function $J(u,h){switch(Gw(h),h.tag){case 1:return u=h.flags,u&65536?(h.flags=u&-65537|128,h):null;case 3:return nl(Ti),he(),u=h.flags,(u&65536)!==0&&(u&128)===0?(h.flags=u&-65537|128,h):null;case 26:case 27:case 5:return Be(h),null;case 31:if(h.memoizedState!==null){if(Va(h),h.alternate===null)throw Error(i(340));Ku()}return u=h.flags,u&65536?(h.flags=u&-65537|128,h):null;case 13:if(Va(h),u=h.memoizedState,u!==null&&u.dehydrated!==null){if(h.alternate===null)throw Error(i(340));Ku()}return u=h.flags,u&65536?(h.flags=u&-65537|128,h):null;case 19:return X(bi),null;case 4:return he(),null;case 10:return nl(h.type),null;case 22:case 23:return Va(h),aM(),u!==null&&X(Qu),u=h.flags,u&65536?(h.flags=u&-65537|128,h):null;case 24:return nl(Ti),null;case 25:return null;default:return null}}function rI(u,h){switch(Gw(h),h.tag){case 3:nl(Ti),he();break;case 26:case 27:case 5:Be(h);break;case 4:he();break;case 31:h.memoizedState!==null&&Va(h);break;case 13:Va(h);break;case 19:X(bi);break;case 10:nl(h.type);break;case 22:case 23:Va(h),aM(),u!==null&&X(Qu);break;case 24:nl(Ti)}}function zm(u,h){try{var g=h.updateQueue,_=g!==null?g.lastEffect:null;if(_!==null){var E=_.next;g=E;do{if((g.tag&u)===u){_=void 0;var N=g.create,j=g.inst;_=N(),j.destroy=_}g=g.next}while(g!==E)}}catch(te){An(h,h.return,te)}}function Ac(u,h,g){try{var _=h.updateQueue,E=_!==null?_.lastEffect:null;if(E!==null){var N=E.next;_=N;do{if((_.tag&u)===u){var j=_.inst,te=j.destroy;if(te!==void 0){j.destroy=void 0,E=h;var Se=g,ze=te;try{ze()}catch(Je){An(E,Se,Je)}}}_=_.next}while(_!==N)}}catch(Je){An(h,h.return,Je)}}function aI(u){var h=u.updateQueue;if(h!==null){var g=u.stateNode;try{YL(h,g)}catch(_){An(u,u.return,_)}}}function sI(u,h,g){g.props=rd(u.type,u.memoizedProps),g.state=u.memoizedState;try{g.componentWillUnmount()}catch(_){An(u,h,_)}}function Bm(u,h){try{var g=u.ref;if(g!==null){switch(u.tag){case 26:case 27:case 5:var _=u.stateNode;break;case 30:_=u.stateNode;break;default:_=u.stateNode}typeof g=="function"?u.refCleanup=g(_):g.current=_}}catch(E){An(u,h,E)}}function So(u,h){var g=u.ref,_=u.refCleanup;if(g!==null)if(typeof _=="function")try{_()}catch(E){An(u,h,E)}finally{u.refCleanup=null,u=u.alternate,u!=null&&(u.refCleanup=null)}else if(typeof g=="function")try{g(null)}catch(E){An(u,h,E)}else g.current=null}function oI(u){var h=u.type,g=u.memoizedProps,_=u.stateNode;try{e:switch(h){case"button":case"input":case"select":case"textarea":g.autoFocus&&_.focus();break e;case"img":g.src?_.src=g.src:g.srcSet&&(_.srcset=g.srcSet)}}catch(E){An(u,u.return,E)}}function UM(u,h,g){try{var _=u.stateNode;hQ(_,u.type,g,h),_[xi]=h}catch(E){An(u,u.return,E)}}function lI(u){return u.tag===5||u.tag===3||u.tag===26||u.tag===27&&Oc(u.type)||u.tag===4}function FM(u){e:for(;;){for(;u.sibling===null;){if(u.return===null||lI(u.return))return null;u=u.return}for(u.sibling.return=u.return,u=u.sibling;u.tag!==5&&u.tag!==6&&u.tag!==18;){if(u.tag===27&&Oc(u.type)||u.flags&2||u.child===null||u.tag===4)continue e;u.child.return=u,u=u.child}if(!(u.flags&2))return u.stateNode}}function zM(u,h,g){var _=u.tag;if(_===5||_===6)u=u.stateNode,h?(g.nodeType===9?g.body:g.nodeName==="HTML"?g.ownerDocument.body:g).insertBefore(u,h):(h=g.nodeType===9?g.body:g.nodeName==="HTML"?g.ownerDocument.body:g,h.appendChild(u),g=g._reactRootContainer,g!=null||h.onclick!==null||(h.onclick=Zo));else if(_!==4&&(_===27&&Oc(u.type)&&(g=u.stateNode,h=null),u=u.child,u!==null))for(zM(u,h,g),u=u.sibling;u!==null;)zM(u,h,g),u=u.sibling}function vx(u,h,g){var _=u.tag;if(_===5||_===6)u=u.stateNode,h?g.insertBefore(u,h):g.appendChild(u);else if(_!==4&&(_===27&&Oc(u.type)&&(g=u.stateNode),u=u.child,u!==null))for(vx(u,h,g),u=u.sibling;u!==null;)vx(u,h,g),u=u.sibling}function cI(u){var h=u.stateNode,g=u.memoizedProps;try{for(var _=u.type,E=h.attributes;E.length;)h.removeAttributeNode(E[0]);Pr(h,_,g),h[ri]=u,h[xi]=g}catch(N){An(u,u.return,N)}}var ol=!1,Pi=!1,BM=!1,uI=typeof WeakSet=="function"?WeakSet:Set,hr=null;function WJ(u,h){if(u=u.containerInfo,oE=Fx,u=SL(u),Ow(u)){if("selectionStart"in u)var g={start:u.selectionStart,end:u.selectionEnd};else e:{g=(g=u.ownerDocument)&&g.defaultView||window;var _=g.getSelection&&g.getSelection();if(_&&_.rangeCount!==0){g=_.anchorNode;var E=_.anchorOffset,N=_.focusNode;_=_.focusOffset;try{g.nodeType,N.nodeType}catch{g=null;break e}var j=0,te=-1,Se=-1,ze=0,Je=0,it=u,Ve=null;t:for(;;){for(var Ye;it!==g||E!==0&&it.nodeType!==3||(te=j+E),it!==N||_!==0&&it.nodeType!==3||(Se=j+_),it.nodeType===3&&(j+=it.nodeValue.length),(Ye=it.firstChild)!==null;)Ve=it,it=Ye;for(;;){if(it===u)break t;if(Ve===g&&++ze===E&&(te=j),Ve===N&&++Je===_&&(Se=j),(Ye=it.nextSibling)!==null)break;it=Ve,Ve=it.parentNode}it=Ye}g=te===-1||Se===-1?null:{start:te,end:Se}}else g=null}g=g||{start:0,end:0}}else g=null;for(lE={focusedElem:u,selectionRange:g},Fx=!1,hr=h;hr!==null;)if(h=hr,u=h.child,(h.subtreeFlags&1028)!==0&&u!==null)u.return=h,hr=u;else for(;hr!==null;){switch(h=hr,N=h.alternate,u=h.flags,h.tag){case 0:if((u&4)!==0&&(u=h.updateQueue,u=u!==null?u.events:null,u!==null))for(g=0;g<u.length;g++)E=u[g],E.ref.impl=E.nextImpl;break;case 11:case 15:break;case 1:if((u&1024)!==0&&N!==null){u=void 0,g=h,E=N.memoizedProps,N=N.memoizedState,_=g.stateNode;try{var Et=rd(g.type,E);u=_.getSnapshotBeforeUpdate(Et,N),_.__reactInternalSnapshotBeforeUpdate=u}catch(Ft){An(g,g.return,Ft)}}break;case 3:if((u&1024)!==0){if(u=h.stateNode.containerInfo,g=u.nodeType,g===9)dE(u);else if(g===1)switch(u.nodeName){case"HEAD":case"HTML":case"BODY":dE(u);break;default:u.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((u&1024)!==0)throw Error(i(163))}if(u=h.sibling,u!==null){u.return=h.return,hr=u;break}hr=h.return}}function dI(u,h,g){var _=g.flags;switch(g.tag){case 0:case 11:case 15:cl(u,g),_&4&&zm(5,g);break;case 1:if(cl(u,g),_&4)if(u=g.stateNode,h===null)try{u.componentDidMount()}catch(j){An(g,g.return,j)}else{var E=rd(g.type,h.memoizedProps);h=h.memoizedState;try{u.componentDidUpdate(E,h,u.__reactInternalSnapshotBeforeUpdate)}catch(j){An(g,g.return,j)}}_&64&&aI(g),_&512&&Bm(g,g.return);break;case 3:if(cl(u,g),_&64&&(u=g.updateQueue,u!==null)){if(h=null,g.child!==null)switch(g.child.tag){case 27:case 5:h=g.child.stateNode;break;case 1:h=g.child.stateNode}try{YL(u,h)}catch(j){An(g,g.return,j)}}break;case 27:h===null&&_&4&&cI(g);case 26:case 5:cl(u,g),h===null&&_&4&&oI(g),_&512&&Bm(g,g.return);break;case 12:cl(u,g);break;case 31:cl(u,g),_&4&&pI(u,g);break;case 13:cl(u,g),_&4&&mI(u,g),_&64&&(u=g.memoizedState,u!==null&&(u=u.dehydrated,u!==null&&(g=tQ.bind(null,g),_Q(u,g))));break;case 22:if(_=g.memoizedState!==null||ol,!_){h=h!==null&&h.memoizedState!==null||Pi,E=ol;var N=Pi;ol=_,(Pi=h)&&!N?ul(u,g,(g.subtreeFlags&8772)!==0):cl(u,g),ol=E,Pi=N}break;case 30:break;default:cl(u,g)}}function fI(u){var h=u.alternate;h!==null&&(u.alternate=null,fI(h)),u.child=null,u.deletions=null,u.sibling=null,u.tag===5&&(h=u.stateNode,h!==null&&We(h)),u.stateNode=null,u.return=null,u.dependencies=null,u.memoizedProps=null,u.memoizedState=null,u.pendingProps=null,u.stateNode=null,u.updateQueue=null}var ei=null,ya=!1;function ll(u,h,g){for(g=g.child;g!==null;)hI(u,h,g),g=g.sibling}function hI(u,h,g){if(De&&typeof De.onCommitFiberUnmount=="function")try{De.onCommitFiberUnmount(Ue,g)}catch{}switch(g.tag){case 26:Pi||So(g,h),ll(u,h,g),g.memoizedState?g.memoizedState.count--:g.stateNode&&(g=g.stateNode,g.parentNode.removeChild(g));break;case 27:Pi||So(g,h);var _=ei,E=ya;Oc(g.type)&&(ei=g.stateNode,ya=!1),ll(u,h,g),Ym(g.stateNode),ei=_,ya=E;break;case 5:Pi||So(g,h);case 6:if(_=ei,E=ya,ei=null,ll(u,h,g),ei=_,ya=E,ei!==null)if(ya)try{(ei.nodeType===9?ei.body:ei.nodeName==="HTML"?ei.ownerDocument.body:ei).removeChild(g.stateNode)}catch(N){An(g,h,N)}else try{ei.removeChild(g.stateNode)}catch(N){An(g,h,N)}break;case 18:ei!==null&&(ya?(u=ei,aU(u.nodeType===9?u.body:u.nodeName==="HTML"?u.ownerDocument.body:u,g.stateNode),sh(u)):aU(ei,g.stateNode));break;case 4:_=ei,E=ya,ei=g.stateNode.containerInfo,ya=!0,ll(u,h,g),ei=_,ya=E;break;case 0:case 11:case 14:case 15:Ac(2,g,h),Pi||Ac(4,g,h),ll(u,h,g);break;case 1:Pi||(So(g,h),_=g.stateNode,typeof _.componentWillUnmount=="function"&&sI(g,h,_)),ll(u,h,g);break;case 21:ll(u,h,g);break;case 22:Pi=(_=Pi)||g.memoizedState!==null,ll(u,h,g),Pi=_;break;default:ll(u,h,g)}}function pI(u,h){if(h.memoizedState===null&&(u=h.alternate,u!==null&&(u=u.memoizedState,u!==null))){u=u.dehydrated;try{sh(u)}catch(g){An(h,h.return,g)}}}function mI(u,h){if(h.memoizedState===null&&(u=h.alternate,u!==null&&(u=u.memoizedState,u!==null&&(u=u.dehydrated,u!==null))))try{sh(u)}catch(g){An(h,h.return,g)}}function qJ(u){switch(u.tag){case 31:case 13:case 19:var h=u.stateNode;return h===null&&(h=u.stateNode=new uI),h;case 22:return u=u.stateNode,h=u._retryCache,h===null&&(h=u._retryCache=new uI),h;default:throw Error(i(435,u.tag))}}function xx(u,h){var g=qJ(u);h.forEach(function(_){if(!g.has(_)){g.add(_);var E=nQ.bind(null,u,_);_.then(E,E)}})}function ba(u,h){var g=h.deletions;if(g!==null)for(var _=0;_<g.length;_++){var E=g[_],N=u,j=h,te=j;e:for(;te!==null;){switch(te.tag){case 27:if(Oc(te.type)){ei=te.stateNode,ya=!1;break e}break;case 5:ei=te.stateNode,ya=!1;break e;case 3:case 4:ei=te.stateNode.containerInfo,ya=!0;break e}te=te.return}if(ei===null)throw Error(i(160));hI(N,j,E),ei=null,ya=!1,N=E.alternate,N!==null&&(N.return=null),E.return=null}if(h.subtreeFlags&13886)for(h=h.child;h!==null;)gI(h,u),h=h.sibling}var Xs=null;function gI(u,h){var g=u.alternate,_=u.flags;switch(u.tag){case 0:case 11:case 14:case 15:ba(h,u),_a(u),_&4&&(Ac(3,u,u.return),zm(3,u),Ac(5,u,u.return));break;case 1:ba(h,u),_a(u),_&512&&(Pi||g===null||So(g,g.return)),_&64&&ol&&(u=u.updateQueue,u!==null&&(_=u.callbacks,_!==null&&(g=u.shared.hiddenCallbacks,u.shared.hiddenCallbacks=g===null?_:g.concat(_))));break;case 26:var E=Xs;if(ba(h,u),_a(u),_&512&&(Pi||g===null||So(g,g.return)),_&4){var N=g!==null?g.memoizedState:null;if(_=u.memoizedState,g===null)if(_===null)if(u.stateNode===null){e:{_=u.type,g=u.memoizedProps,E=E.ownerDocument||E;t:switch(_){case"title":N=E.getElementsByTagName("title")[0],(!N||N[Xe]||N[ri]||N.namespaceURI==="http://www.w3.org/2000/svg"||N.hasAttribute("itemprop"))&&(N=E.createElement(_),E.head.insertBefore(N,E.querySelector("head > title"))),Pr(N,_,g),N[ri]=u,Re(N),_=N;break e;case"link":var j=gU("link","href",E).get(_+(g.href||""));if(j){for(var te=0;te<j.length;te++)if(N=j[te],N.getAttribute("href")===(g.href==null||g.href===""?null:g.href)&&N.getAttribute("rel")===(g.rel==null?null:g.rel)&&N.getAttribute("title")===(g.title==null?null:g.title)&&N.getAttribute("crossorigin")===(g.crossOrigin==null?null:g.crossOrigin)){j.splice(te,1);break t}}N=E.createElement(_),Pr(N,_,g),E.head.appendChild(N);break;case"meta":if(j=gU("meta","content",E).get(_+(g.content||""))){for(te=0;te<j.length;te++)if(N=j[te],N.getAttribute("content")===(g.content==null?null:""+g.content)&&N.getAttribute("name")===(g.name==null?null:g.name)&&N.getAttribute("property")===(g.property==null?null:g.property)&&N.getAttribute("http-equiv")===(g.httpEquiv==null?null:g.httpEquiv)&&N.getAttribute("charset")===(g.charSet==null?null:g.charSet)){j.splice(te,1);break t}}N=E.createElement(_),Pr(N,_,g),E.head.appendChild(N);break;default:throw Error(i(468,_))}N[ri]=u,Re(N),_=N}u.stateNode=_}else vU(E,u.type,u.stateNode);else u.stateNode=mU(E,_,u.memoizedProps);else N!==_?(N===null?g.stateNode!==null&&(g=g.stateNode,g.parentNode.removeChild(g)):N.count--,_===null?vU(E,u.type,u.stateNode):mU(E,_,u.memoizedProps)):_===null&&u.stateNode!==null&&UM(u,u.memoizedProps,g.memoizedProps)}break;case 27:ba(h,u),_a(u),_&512&&(Pi||g===null||So(g,g.return)),g!==null&&_&4&&UM(u,u.memoizedProps,g.memoizedProps);break;case 5:if(ba(h,u),_a(u),_&512&&(Pi||g===null||So(g,g.return)),u.flags&32){E=u.stateNode;try{yo(E,"")}catch(Et){An(u,u.return,Et)}}_&4&&u.stateNode!=null&&(E=u.memoizedProps,UM(u,E,g!==null?g.memoizedProps:E)),_&1024&&(BM=!0);break;case 6:if(ba(h,u),_a(u),_&4){if(u.stateNode===null)throw Error(i(162));_=u.memoizedProps,g=u.stateNode;try{g.nodeValue=_}catch(Et){An(u,u.return,Et)}}break;case 3:if(Lx=null,E=Xs,Xs=Nx(h.containerInfo),ba(h,u),Xs=E,_a(u),_&4&&g!==null&&g.memoizedState.isDehydrated)try{sh(h.containerInfo)}catch(Et){An(u,u.return,Et)}BM&&(BM=!1,vI(u));break;case 4:_=Xs,Xs=Nx(u.stateNode.containerInfo),ba(h,u),_a(u),Xs=_;break;case 12:ba(h,u),_a(u);break;case 31:ba(h,u),_a(u),_&4&&(_=u.updateQueue,_!==null&&(u.updateQueue=null,xx(u,_)));break;case 13:ba(h,u),_a(u),u.child.flags&8192&&u.memoizedState!==null!=(g!==null&&g.memoizedState!==null)&&(bx=L()),_&4&&(_=u.updateQueue,_!==null&&(u.updateQueue=null,xx(u,_)));break;case 22:E=u.memoizedState!==null;var Se=g!==null&&g.memoizedState!==null,ze=ol,Je=Pi;if(ol=ze||E,Pi=Je||Se,ba(h,u),Pi=Je,ol=ze,_a(u),_&8192)e:for(h=u.stateNode,h._visibility=E?h._visibility&-2:h._visibility|1,E&&(g===null||Se||ol||Pi||ad(u)),g=null,h=u;;){if(h.tag===5||h.tag===26){if(g===null){Se=g=h;try{if(N=Se.stateNode,E)j=N.style,typeof j.setProperty=="function"?j.setProperty("display","none","important"):j.display="none";else{te=Se.stateNode;var it=Se.memoizedProps.style,Ve=it!=null&&it.hasOwnProperty("display")?it.display:null;te.style.display=Ve==null||typeof Ve=="boolean"?"":(""+Ve).trim()}}catch(Et){An(Se,Se.return,Et)}}}else if(h.tag===6){if(g===null){Se=h;try{Se.stateNode.nodeValue=E?"":Se.memoizedProps}catch(Et){An(Se,Se.return,Et)}}}else if(h.tag===18){if(g===null){Se=h;try{var Ye=Se.stateNode;E?sU(Ye,!0):sU(Se.stateNode,!1)}catch(Et){An(Se,Se.return,Et)}}}else if((h.tag!==22&&h.tag!==23||h.memoizedState===null||h===u)&&h.child!==null){h.child.return=h,h=h.child;continue}if(h===u)break e;for(;h.sibling===null;){if(h.return===null||h.return===u)break e;g===h&&(g=null),h=h.return}g===h&&(g=null),h.sibling.return=h.return,h=h.sibling}_&4&&(_=u.updateQueue,_!==null&&(g=_.retryQueue,g!==null&&(_.retryQueue=null,xx(u,g))));break;case 19:ba(h,u),_a(u),_&4&&(_=u.updateQueue,_!==null&&(u.updateQueue=null,xx(u,_)));break;case 30:break;case 21:break;default:ba(h,u),_a(u)}}function _a(u){var h=u.flags;if(h&2){try{for(var g,_=u.return;_!==null;){if(lI(_)){g=_;break}_=_.return}if(g==null)throw Error(i(160));switch(g.tag){case 27:var E=g.stateNode,N=FM(u);vx(u,N,E);break;case 5:var j=g.stateNode;g.flags&32&&(yo(j,""),g.flags&=-33);var te=FM(u);vx(u,te,j);break;case 3:case 4:var Se=g.stateNode.containerInfo,ze=FM(u);zM(u,ze,Se);break;default:throw Error(i(161))}}catch(Je){An(u,u.return,Je)}u.flags&=-3}h&4096&&(u.flags&=-4097)}function vI(u){if(u.subtreeFlags&1024)for(u=u.child;u!==null;){var h=u;vI(h),h.tag===5&&h.flags&1024&&h.stateNode.reset(),u=u.sibling}}function cl(u,h){if(h.subtreeFlags&8772)for(h=h.child;h!==null;)dI(u,h.alternate,h),h=h.sibling}function ad(u){for(u=u.child;u!==null;){var h=u;switch(h.tag){case 0:case 11:case 14:case 15:Ac(4,h,h.return),ad(h);break;case 1:So(h,h.return);var g=h.stateNode;typeof g.componentWillUnmount=="function"&&sI(h,h.return,g),ad(h);break;case 27:Ym(h.stateNode);case 26:case 5:So(h,h.return),ad(h);break;case 22:h.memoizedState===null&&ad(h);break;case 30:ad(h);break;default:ad(h)}u=u.sibling}}function ul(u,h,g){for(g=g&&(h.subtreeFlags&8772)!==0,h=h.child;h!==null;){var _=h.alternate,E=u,N=h,j=N.flags;switch(N.tag){case 0:case 11:case 15:ul(E,N,g),zm(4,N);break;case 1:if(ul(E,N,g),_=N,E=_.stateNode,typeof E.componentDidMount=="function")try{E.componentDidMount()}catch(ze){An(_,_.return,ze)}if(_=N,E=_.updateQueue,E!==null){var te=_.stateNode;try{var Se=E.shared.hiddenCallbacks;if(Se!==null)for(E.shared.hiddenCallbacks=null,E=0;E<Se.length;E++)XL(Se[E],te)}catch(ze){An(_,_.return,ze)}}g&&j&64&&aI(N),Bm(N,N.return);break;case 27:cI(N);case 26:case 5:ul(E,N,g),g&&_===null&&j&4&&oI(N),Bm(N,N.return);break;case 12:ul(E,N,g);break;case 31:ul(E,N,g),g&&j&4&&pI(E,N);break;case 13:ul(E,N,g),g&&j&4&&mI(E,N);break;case 22:N.memoizedState===null&&ul(E,N,g),Bm(N,N.return);break;case 30:break;default:ul(E,N,g)}h=h.sibling}}function jM(u,h){var g=null;u!==null&&u.memoizedState!==null&&u.memoizedState.cachePool!==null&&(g=u.memoizedState.cachePool.pool),u=null,h.memoizedState!==null&&h.memoizedState.cachePool!==null&&(u=h.memoizedState.cachePool.pool),u!==g&&(u!=null&&u.refCount++,g!=null&&Am(g))}function HM(u,h){u=null,h.alternate!==null&&(u=h.alternate.memoizedState.cache),h=h.memoizedState.cache,h!==u&&(h.refCount++,u!=null&&Am(u))}function Ys(u,h,g,_){if(h.subtreeFlags&10256)for(h=h.child;h!==null;)xI(u,h,g,_),h=h.sibling}function xI(u,h,g,_){var E=h.flags;switch(h.tag){case 0:case 11:case 15:Ys(u,h,g,_),E&2048&&zm(9,h);break;case 1:Ys(u,h,g,_);break;case 3:Ys(u,h,g,_),E&2048&&(u=null,h.alternate!==null&&(u=h.alternate.memoizedState.cache),h=h.memoizedState.cache,h!==u&&(h.refCount++,u!=null&&Am(u)));break;case 12:if(E&2048){Ys(u,h,g,_),u=h.stateNode;try{var N=h.memoizedProps,j=N.id,te=N.onPostCommit;typeof te=="function"&&te(j,h.alternate===null?"mount":"update",u.passiveEffectDuration,-0)}catch(Se){An(h,h.return,Se)}}else Ys(u,h,g,_);break;case 31:Ys(u,h,g,_);break;case 13:Ys(u,h,g,_);break;case 23:break;case 22:N=h.stateNode,j=h.alternate,h.memoizedState!==null?N._visibility&2?Ys(u,h,g,_):jm(u,h):N._visibility&2?Ys(u,h,g,_):(N._visibility|=2,Yf(u,h,g,_,(h.subtreeFlags&10256)!==0||!1)),E&2048&&jM(j,h);break;case 24:Ys(u,h,g,_),E&2048&&HM(h.alternate,h);break;default:Ys(u,h,g,_)}}function Yf(u,h,g,_,E){for(E=E&&((h.subtreeFlags&10256)!==0||!1),h=h.child;h!==null;){var N=u,j=h,te=g,Se=_,ze=j.flags;switch(j.tag){case 0:case 11:case 15:Yf(N,j,te,Se,E),zm(8,j);break;case 23:break;case 22:var Je=j.stateNode;j.memoizedState!==null?Je._visibility&2?Yf(N,j,te,Se,E):jm(N,j):(Je._visibility|=2,Yf(N,j,te,Se,E)),E&&ze&2048&&jM(j.alternate,j);break;case 24:Yf(N,j,te,Se,E),E&&ze&2048&&HM(j.alternate,j);break;default:Yf(N,j,te,Se,E)}h=h.sibling}}function jm(u,h){if(h.subtreeFlags&10256)for(h=h.child;h!==null;){var g=u,_=h,E=_.flags;switch(_.tag){case 22:jm(g,_),E&2048&&jM(_.alternate,_);break;case 24:jm(g,_),E&2048&&HM(_.alternate,_);break;default:jm(g,_)}h=h.sibling}}var Hm=8192;function Kf(u,h,g){if(u.subtreeFlags&Hm)for(u=u.child;u!==null;)yI(u,h,g),u=u.sibling}function yI(u,h,g){switch(u.tag){case 26:Kf(u,h,g),u.flags&Hm&&u.memoizedState!==null&&OQ(g,Xs,u.memoizedState,u.memoizedProps);break;case 5:Kf(u,h,g);break;case 3:case 4:var _=Xs;Xs=Nx(u.stateNode.containerInfo),Kf(u,h,g),Xs=_;break;case 22:u.memoizedState===null&&(_=u.alternate,_!==null&&_.memoizedState!==null?(_=Hm,Hm=16777216,Kf(u,h,g),Hm=_):Kf(u,h,g));break;default:Kf(u,h,g)}}function bI(u){var h=u.alternate;if(h!==null&&(u=h.child,u!==null)){h.child=null;do h=u.sibling,u.sibling=null,u=h;while(u!==null)}}function Vm(u){var h=u.deletions;if((u.flags&16)!==0){if(h!==null)for(var g=0;g<h.length;g++){var _=h[g];hr=_,SI(_,u)}bI(u)}if(u.subtreeFlags&10256)for(u=u.child;u!==null;)_I(u),u=u.sibling}function _I(u){switch(u.tag){case 0:case 11:case 15:Vm(u),u.flags&2048&&Ac(9,u,u.return);break;case 3:Vm(u);break;case 12:Vm(u);break;case 22:var h=u.stateNode;u.memoizedState!==null&&h._visibility&2&&(u.return===null||u.return.tag!==13)?(h._visibility&=-3,yx(u)):Vm(u);break;default:Vm(u)}}function yx(u){var h=u.deletions;if((u.flags&16)!==0){if(h!==null)for(var g=0;g<h.length;g++){var _=h[g];hr=_,SI(_,u)}bI(u)}for(u=u.child;u!==null;){switch(h=u,h.tag){case 0:case 11:case 15:Ac(8,h,h.return),yx(h);break;case 22:g=h.stateNode,g._visibility&2&&(g._visibility&=-3,yx(h));break;default:yx(h)}u=u.sibling}}function SI(u,h){for(;hr!==null;){var g=hr;switch(g.tag){case 0:case 11:case 15:Ac(8,g,h);break;case 23:case 22:if(g.memoizedState!==null&&g.memoizedState.cachePool!==null){var _=g.memoizedState.cachePool.pool;_!=null&&_.refCount++}break;case 24:Am(g.memoizedState.cache)}if(_=g.child,_!==null)_.return=g,hr=_;else e:for(g=u;hr!==null;){_=hr;var E=_.sibling,N=_.return;if(fI(_),_===g){hr=null;break e}if(E!==null){E.return=N,hr=E;break e}hr=N}}}var XJ={getCacheForType:function(u){var h=Cr(Ti),g=h.data.get(u);return g===void 0&&(g=u(),h.data.set(u,g)),g},cacheSignal:function(){return Cr(Ti).controller.signal}},YJ=typeof WeakMap=="function"?WeakMap:Map,_n=0,Bn=null,an=null,cn=0,En=0,Ga=null,Tc=!1,Zf=!1,VM=!1,dl=0,fi=0,Cc=0,sd=0,GM=0,$a=0,Jf=0,Gm=null,Sa=null,$M=!1,bx=0,wI=0,_x=1/0,Sx=null,Rc=null,Wi=0,Pc=null,Qf=null,fl=0,WM=0,qM=null,MI=null,$m=0,XM=null;function Wa(){return(_n&2)!==0&&cn!==0?cn&-cn:q.T!==null?eE():Er()}function EI(){if($a===0)if((cn&536870912)===0||fn){var u=de;de<<=1,(de&3932160)===0&&(de=262144),$a=u}else $a=536870912;return u=Ha.current,u!==null&&(u.flags|=32),$a}function wa(u,h,g){(u===Bn&&(En===2||En===9)||u.cancelPendingCommit!==null)&&(eh(u,0),Dc(u,cn,$a,!1)),en(u,g),((_n&2)===0||u!==Bn)&&(u===Bn&&((_n&2)===0&&(sd|=g),fi===4&&Dc(u,cn,$a,!1)),wo(u))}function AI(u,h,g){if((_n&6)!==0)throw Error(i(327));var _=!g&&(h&127)===0&&(h&u.expiredLanes)===0||je(u,h),E=_?JJ(u,h):KM(u,h,!0),N=_;do{if(E===0){Zf&&!_&&Dc(u,h,0,!1);break}else{if(g=u.current.alternate,N&&!KJ(g)){E=KM(u,h,!1),N=!1;continue}if(E===2){if(N=h,u.errorRecoveryDisabledLanes&N)var j=0;else j=u.pendingLanes&-536870913,j=j!==0?j:j&536870912?536870912:0;if(j!==0){h=j;e:{var te=u;E=Gm;var Se=te.current.memoizedState.isDehydrated;if(Se&&(eh(te,j).flags|=256),j=KM(te,j,!1),j!==2){if(VM&&!Se){te.errorRecoveryDisabledLanes|=N,sd|=N,E=4;break e}N=Sa,Sa=E,N!==null&&(Sa===null?Sa=N:Sa.push.apply(Sa,N))}E=j}if(N=!1,E!==2)continue}}if(E===1){eh(u,0),Dc(u,h,0,!0);break}e:{switch(_=u,N=E,N){case 0:case 1:throw Error(i(345));case 4:if((h&4194048)!==h)break;case 6:Dc(_,h,$a,!Tc);break e;case 2:Sa=null;break;case 3:case 5:break;default:throw Error(i(329))}if((h&62914560)===h&&(E=bx+300-L(),10<E)){if(Dc(_,h,$a,!Tc),ge(_,0,!0)!==0)break e;fl=h,_.timeoutHandle=iU(TI.bind(null,_,g,Sa,Sx,$M,h,$a,sd,Jf,Tc,N,"Throttled",-0,0),E);break e}TI(_,g,Sa,Sx,$M,h,$a,sd,Jf,Tc,N,null,-0,0)}}break}while(!0);wo(u)}function TI(u,h,g,_,E,N,j,te,Se,ze,Je,it,Ve,Ye){if(u.timeoutHandle=-1,it=h.subtreeFlags,it&8192||(it&16785408)===16785408){it={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Zo},yI(h,N,it);var Et=(N&62914560)===N?bx-L():(N&4194048)===N?wI-L():0;if(Et=LQ(it,Et),Et!==null){fl=N,u.cancelPendingCommit=Et(kI.bind(null,u,h,N,g,_,E,j,te,Se,Je,it,null,Ve,Ye)),Dc(u,N,j,!ze);return}}kI(u,h,N,g,_,E,j,te,Se)}function KJ(u){for(var h=u;;){var g=h.tag;if((g===0||g===11||g===15)&&h.flags&16384&&(g=h.updateQueue,g!==null&&(g=g.stores,g!==null)))for(var _=0;_<g.length;_++){var E=g[_],N=E.getSnapshot;E=E.value;try{if(!Ba(N(),E))return!1}catch{return!1}}if(g=h.child,h.subtreeFlags&16384&&g!==null)g.return=h,h=g;else{if(h===u)break;for(;h.sibling===null;){if(h.return===null||h.return===u)return!0;h=h.return}h.sibling.return=h.return,h=h.sibling}}return!0}function Dc(u,h,g,_){h&=~GM,h&=~sd,u.suspendedLanes|=h,u.pingedLanes&=~h,_&&(u.warmLanes|=h),_=u.expirationTimes;for(var E=h;0<E;){var N=31-et(E),j=1<<N;_[N]=-1,E&=~j}g!==0&&wn(u,g,h)}function wx(){return(_n&6)===0?(Wm(0),!1):!0}function YM(){if(an!==null){if(En===0)var u=an.return;else u=an,tl=Zu=null,dM(u),Gf=null,Cm=0,u=an;for(;u!==null;)rI(u.alternate,u),u=u.return;an=null}}function eh(u,h){var g=u.timeoutHandle;g!==-1&&(u.timeoutHandle=-1,gQ(g)),g=u.cancelPendingCommit,g!==null&&(u.cancelPendingCommit=null,g()),fl=0,YM(),Bn=u,an=g=Qo(u.current,null),cn=h,En=0,Ga=null,Tc=!1,Zf=je(u,h),VM=!1,Jf=$a=GM=sd=Cc=fi=0,Sa=Gm=null,$M=!1,(h&8)!==0&&(h|=h&32);var _=u.entangledLanes;if(_!==0)for(u=u.entanglements,_&=h;0<_;){var E=31-et(_),N=1<<E;h|=u[E],_&=~N}return dl=h,Gv(),g}function CI(u,h){Wt=null,q.H=Im,h===Vf||h===Jv?(h=GL(),En=3):h===Qw?(h=GL(),En=4):En=h===TM?8:h!==null&&typeof h=="object"&&typeof h.then=="function"?6:1,Ga=h,an===null&&(fi=1,fx(u,us(h,u.current)))}function RI(){var u=Ha.current;return u===null?!0:(cn&4194048)===cn?ps===null:(cn&62914560)===cn||(cn&536870912)!==0?u===ps:!1}function PI(){var u=q.H;return q.H=Im,u===null?Im:u}function DI(){var u=q.A;return q.A=XJ,u}function Mx(){fi=4,Tc||(cn&4194048)!==cn&&Ha.current!==null||(Zf=!0),(Cc&134217727)===0&&(sd&134217727)===0||Bn===null||Dc(Bn,cn,$a,!1)}function KM(u,h,g){var _=_n;_n|=2;var E=PI(),N=DI();(Bn!==u||cn!==h)&&(Sx=null,eh(u,h)),h=!1;var j=fi;e:do try{if(En!==0&&an!==null){var te=an,Se=Ga;switch(En){case 8:YM(),j=6;break e;case 3:case 2:case 9:case 6:Ha.current===null&&(h=!0);var ze=En;if(En=0,Ga=null,th(u,te,Se,ze),g&&Zf){j=0;break e}break;default:ze=En,En=0,Ga=null,th(u,te,Se,ze)}}ZJ(),j=fi;break}catch(Je){CI(u,Je)}while(!0);return h&&u.shellSuspendCounter++,tl=Zu=null,_n=_,q.H=E,q.A=N,an===null&&(Bn=null,cn=0,Gv()),j}function ZJ(){for(;an!==null;)NI(an)}function JJ(u,h){var g=_n;_n|=2;var _=PI(),E=DI();Bn!==u||cn!==h?(Sx=null,_x=L()+500,eh(u,h)):Zf=je(u,h);e:do try{if(En!==0&&an!==null){h=an;var N=Ga;t:switch(En){case 1:En=0,Ga=null,th(u,h,N,1);break;case 2:case 9:if(HL(N)){En=0,Ga=null,OI(h);break}h=function(){En!==2&&En!==9||Bn!==u||(En=7),wo(u)},N.then(h,h);break e;case 3:En=7;break e;case 4:En=5;break e;case 7:HL(N)?(En=0,Ga=null,OI(h)):(En=0,Ga=null,th(u,h,N,7));break;case 5:var j=null;switch(an.tag){case 26:j=an.memoizedState;case 5:case 27:var te=an;if(j?xU(j):te.stateNode.complete){En=0,Ga=null;var Se=te.sibling;if(Se!==null)an=Se;else{var ze=te.return;ze!==null?(an=ze,Ex(ze)):an=null}break t}}En=0,Ga=null,th(u,h,N,5);break;case 6:En=0,Ga=null,th(u,h,N,6);break;case 8:YM(),fi=6;break e;default:throw Error(i(462))}}QJ();break}catch(Je){CI(u,Je)}while(!0);return tl=Zu=null,q.H=_,q.A=E,_n=g,an!==null?0:(Bn=null,cn=0,Gv(),fi)}function QJ(){for(;an!==null&&!ve();)NI(an)}function NI(u){var h=nI(u.alternate,u,dl);u.memoizedProps=u.pendingProps,h===null?Ex(u):an=h}function OI(u){var h=u,g=h.alternate;switch(h.tag){case 15:case 0:h=Kk(g,h,h.pendingProps,h.type,void 0,cn);break;case 11:h=Kk(g,h,h.pendingProps,h.type.render,h.ref,cn);break;case 5:dM(h);default:rI(g,h),h=an=DL(h,dl),h=nI(g,h,dl)}u.memoizedProps=u.pendingProps,h===null?Ex(u):an=h}function th(u,h,g,_){tl=Zu=null,dM(h),Gf=null,Cm=0;var E=h.return;try{if(jJ(u,E,h,g,cn)){fi=1,fx(u,us(g,u.current)),an=null;return}}catch(N){if(E!==null)throw an=E,N;fi=1,fx(u,us(g,u.current)),an=null;return}h.flags&32768?(fn||_===1?u=!0:Zf||(cn&536870912)!==0?u=!1:(Tc=u=!0,(_===2||_===9||_===3||_===6)&&(_=Ha.current,_!==null&&_.tag===13&&(_.flags|=16384))),LI(h,u)):Ex(h)}function Ex(u){var h=u;do{if((h.flags&32768)!==0){LI(h,Tc);return}u=h.return;var g=GJ(h.alternate,h,dl);if(g!==null){an=g;return}if(h=h.sibling,h!==null){an=h;return}an=h=u}while(h!==null);fi===0&&(fi=5)}function LI(u,h){do{var g=$J(u.alternate,u);if(g!==null){g.flags&=32767,an=g;return}if(g=u.return,g!==null&&(g.flags|=32768,g.subtreeFlags=0,g.deletions=null),!h&&(u=u.sibling,u!==null)){an=u;return}an=u=g}while(u!==null);fi=6,an=null}function kI(u,h,g,_,E,N,j,te,Se){u.cancelPendingCommit=null;do Ax();while(Wi!==0);if((_n&6)!==0)throw Error(i(327));if(h!==null){if(h===u.current)throw Error(i(177));if(N=h.lanes|h.childLanes,N|=Fw,Dt(u,g,N,j,te,Se),u===Bn&&(an=Bn=null,cn=0),Qf=h,Pc=u,fl=g,WM=N,qM=E,MI=_,(h.subtreeFlags&10256)!==0||(h.flags&10256)!==0?(u.callbackNode=null,u.callbackPriority=0,iQ(fe,function(){return BI(),null})):(u.callbackNode=null,u.callbackPriority=0),_=(h.flags&13878)!==0,(h.subtreeFlags&13878)!==0||_){_=q.T,q.T=null,E=G.p,G.p=2,j=_n,_n|=4;try{WJ(u,h,g)}finally{_n=j,G.p=E,q.T=_}}Wi=1,II(),UI(),FI()}}function II(){if(Wi===1){Wi=0;var u=Pc,h=Qf,g=(h.flags&13878)!==0;if((h.subtreeFlags&13878)!==0||g){g=q.T,q.T=null;var _=G.p;G.p=2;var E=_n;_n|=4;try{gI(h,u);var N=lE,j=SL(u.containerInfo),te=N.focusedElem,Se=N.selectionRange;if(j!==te&&te&&te.ownerDocument&&_L(te.ownerDocument.documentElement,te)){if(Se!==null&&Ow(te)){var ze=Se.start,Je=Se.end;if(Je===void 0&&(Je=ze),"selectionStart"in te)te.selectionStart=ze,te.selectionEnd=Math.min(Je,te.value.length);else{var it=te.ownerDocument||document,Ve=it&&it.defaultView||window;if(Ve.getSelection){var Ye=Ve.getSelection(),Et=te.textContent.length,Ft=Math.min(Se.start,Et),Dn=Se.end===void 0?Ft:Math.min(Se.end,Et);!Ye.extend&&Ft>Dn&&(j=Dn,Dn=Ft,Ft=j);var Oe=bL(te,Ft),Te=bL(te,Dn);if(Oe&&Te&&(Ye.rangeCount!==1||Ye.anchorNode!==Oe.node||Ye.anchorOffset!==Oe.offset||Ye.focusNode!==Te.node||Ye.focusOffset!==Te.offset)){var Fe=it.createRange();Fe.setStart(Oe.node,Oe.offset),Ye.removeAllRanges(),Ft>Dn?(Ye.addRange(Fe),Ye.extend(Te.node,Te.offset)):(Fe.setEnd(Te.node,Te.offset),Ye.addRange(Fe))}}}}for(it=[],Ye=te;Ye=Ye.parentNode;)Ye.nodeType===1&&it.push({element:Ye,left:Ye.scrollLeft,top:Ye.scrollTop});for(typeof te.focus=="function"&&te.focus(),te=0;te<it.length;te++){var nt=it[te];nt.element.scrollLeft=nt.left,nt.element.scrollTop=nt.top}}Fx=!!oE,lE=oE=null}finally{_n=E,G.p=_,q.T=g}}u.current=h,Wi=2}}function UI(){if(Wi===2){Wi=0;var u=Pc,h=Qf,g=(h.flags&8772)!==0;if((h.subtreeFlags&8772)!==0||g){g=q.T,q.T=null;var _=G.p;G.p=2;var E=_n;_n|=4;try{dI(u,h.alternate,h)}finally{_n=E,G.p=_,q.T=g}}Wi=3}}function FI(){if(Wi===4||Wi===3){Wi=0,F();var u=Pc,h=Qf,g=fl,_=MI;(h.subtreeFlags&10256)!==0||(h.flags&10256)!==0?Wi=5:(Wi=0,Qf=Pc=null,zI(u,u.pendingLanes));var E=u.pendingLanes;if(E===0&&(Rc=null),ur(g),h=h.stateNode,De&&typeof De.onCommitFiberRoot=="function")try{De.onCommitFiberRoot(Ue,h,void 0,(h.current.flags&128)===128)}catch{}if(_!==null){h=q.T,E=G.p,G.p=2,q.T=null;try{for(var N=u.onRecoverableError,j=0;j<_.length;j++){var te=_[j];N(te.value,{componentStack:te.stack})}}finally{q.T=h,G.p=E}}(fl&3)!==0&&Ax(),wo(u),E=u.pendingLanes,(g&261930)!==0&&(E&42)!==0?u===XM?$m++:($m=0,XM=u):$m=0,Wm(0)}}function zI(u,h){(u.pooledCacheLanes&=h)===0&&(h=u.pooledCache,h!=null&&(u.pooledCache=null,Am(h)))}function Ax(){return II(),UI(),FI(),BI()}function BI(){if(Wi!==5)return!1;var u=Pc,h=WM;WM=0;var g=ur(fl),_=q.T,E=G.p;try{G.p=32>g?32:g,q.T=null,g=qM,qM=null;var N=Pc,j=fl;if(Wi=0,Qf=Pc=null,fl=0,(_n&6)!==0)throw Error(i(331));var te=_n;if(_n|=4,_I(N.current),xI(N,N.current,j,g),_n=te,Wm(0,!1),De&&typeof De.onPostCommitFiberRoot=="function")try{De.onPostCommitFiberRoot(Ue,N)}catch{}return!0}finally{G.p=E,q.T=_,zI(u,h)}}function jI(u,h,g){h=us(g,h),h=AM(u.stateNode,h,2),u=wc(u,h,2),u!==null&&(en(u,2),wo(u))}function An(u,h,g){if(u.tag===3)jI(u,u,g);else for(;h!==null;){if(h.tag===3){jI(h,u,g);break}else if(h.tag===1){var _=h.stateNode;if(typeof h.type.getDerivedStateFromError=="function"||typeof _.componentDidCatch=="function"&&(Rc===null||!Rc.has(_))){u=us(g,u),g=Hk(2),_=wc(h,g,2),_!==null&&(Vk(g,_,h,u),en(_,2),wo(_));break}}h=h.return}}function ZM(u,h,g){var _=u.pingCache;if(_===null){_=u.pingCache=new YJ;var E=new Set;_.set(h,E)}else E=_.get(h),E===void 0&&(E=new Set,_.set(h,E));E.has(g)||(VM=!0,E.add(g),u=eQ.bind(null,u,h,g),h.then(u,u))}function eQ(u,h,g){var _=u.pingCache;_!==null&&_.delete(h),u.pingedLanes|=u.suspendedLanes&g,u.warmLanes&=~g,Bn===u&&(cn&g)===g&&(fi===4||fi===3&&(cn&62914560)===cn&&300>L()-bx?(_n&2)===0&&eh(u,0):GM|=g,Jf===cn&&(Jf=0)),wo(u)}function HI(u,h){h===0&&(h=vt()),u=Xu(u,h),u!==null&&(en(u,h),wo(u))}function tQ(u){var h=u.memoizedState,g=0;h!==null&&(g=h.retryLane),HI(u,g)}function nQ(u,h){var g=0;switch(u.tag){case 31:case 13:var _=u.stateNode,E=u.memoizedState;E!==null&&(g=E.retryLane);break;case 19:_=u.stateNode;break;case 22:_=u.stateNode._retryCache;break;default:throw Error(i(314))}_!==null&&_.delete(h),HI(u,g)}function iQ(u,h){return ie(u,h)}var Tx=null,nh=null,JM=!1,Cx=!1,QM=!1,Nc=0;function wo(u){u!==nh&&u.next===null&&(nh===null?Tx=nh=u:nh=nh.next=u),Cx=!0,JM||(JM=!0,aQ())}function Wm(u,h){if(!QM&&Cx){QM=!0;do for(var g=!1,_=Tx;_!==null;){if(u!==0){var E=_.pendingLanes;if(E===0)var N=0;else{var j=_.suspendedLanes,te=_.pingedLanes;N=(1<<31-et(42|u)+1)-1,N&=E&~(j&~te),N=N&201326741?N&201326741|1:N?N|2:0}N!==0&&(g=!0,WI(_,N))}else N=cn,N=ge(_,_===Bn?N:0,_.cancelPendingCommit!==null||_.timeoutHandle!==-1),(N&3)===0||je(_,N)||(g=!0,WI(_,N));_=_.next}while(g);QM=!1}}function rQ(){VI()}function VI(){Cx=JM=!1;var u=0;Nc!==0&&mQ()&&(u=Nc);for(var h=L(),g=null,_=Tx;_!==null;){var E=_.next,N=GI(_,h);N===0?(_.next=null,g===null?Tx=E:g.next=E,E===null&&(nh=g)):(g=_,(u!==0||(N&3)!==0)&&(Cx=!0)),_=E}Wi!==0&&Wi!==5||Wm(u),Nc!==0&&(Nc=0)}function GI(u,h){for(var g=u.suspendedLanes,_=u.pingedLanes,E=u.expirationTimes,N=u.pendingLanes&-62914561;0<N;){var j=31-et(N),te=1<<j,Se=E[j];Se===-1?((te&g)===0||(te&_)!==0)&&(E[j]=at(te,h)):Se<=h&&(u.expiredLanes|=te),N&=~te}if(h=Bn,g=cn,g=ge(u,u===h?g:0,u.cancelPendingCommit!==null||u.timeoutHandle!==-1),_=u.callbackNode,g===0||u===h&&(En===2||En===9)||u.cancelPendingCommit!==null)return _!==null&&_!==null&&we(_),u.callbackNode=null,u.callbackPriority=0;if((g&3)===0||je(u,g)){if(h=g&-g,h===u.callbackPriority)return h;switch(_!==null&&we(_),ur(g)){case 2:case 8:g=xe;break;case 32:g=fe;break;case 268435456:g=ke;break;default:g=fe}return _=$I.bind(null,u),g=ie(g,_),u.callbackPriority=h,u.callbackNode=g,h}return _!==null&&_!==null&&we(_),u.callbackPriority=2,u.callbackNode=null,2}function $I(u,h){if(Wi!==0&&Wi!==5)return u.callbackNode=null,u.callbackPriority=0,null;var g=u.callbackNode;if(Ax()&&u.callbackNode!==g)return null;var _=cn;return _=ge(u,u===Bn?_:0,u.cancelPendingCommit!==null||u.timeoutHandle!==-1),_===0?null:(AI(u,_,h),GI(u,L()),u.callbackNode!=null&&u.callbackNode===g?$I.bind(null,u):null)}function WI(u,h){if(Ax())return null;AI(u,h,!0)}function aQ(){vQ(function(){(_n&6)!==0?ie(pe,rQ):VI()})}function eE(){if(Nc===0){var u=jf;u===0&&(u=tt,tt<<=1,(tt&261888)===0&&(tt=256)),Nc=u}return Nc}function qI(u){return u==null||typeof u=="symbol"||typeof u=="boolean"?null:typeof u=="function"?u:Iv(""+u)}function XI(u,h){var g=h.ownerDocument.createElement("input");return g.name=h.name,g.value=h.value,u.id&&g.setAttribute("form",u.id),h.parentNode.insertBefore(g,h),u=new FormData(u),g.parentNode.removeChild(g),u}function sQ(u,h,g,_,E){if(h==="submit"&&g&&g.stateNode===E){var N=qI((E[xi]||null).action),j=_.submitter;j&&(h=(h=j[xi]||null)?qI(h.formAction):j.getAttribute("formAction"),h!==null&&(N=h,j=null));var te=new Bv("action","action",null,_,E);u.push({event:te,listeners:[{instance:null,listener:function(){if(_.defaultPrevented){if(Nc!==0){var Se=j?XI(E,j):new FormData(E);bM(g,{pending:!0,data:Se,method:E.method,action:N},null,Se)}}else typeof N=="function"&&(te.preventDefault(),Se=j?XI(E,j):new FormData(E),bM(g,{pending:!0,data:Se,method:E.method,action:N},N,Se))},currentTarget:E}]})}}for(var tE=0;tE<Uw.length;tE++){var nE=Uw[tE],oQ=nE.toLowerCase(),lQ=nE[0].toUpperCase()+nE.slice(1);qs(oQ,"on"+lQ)}qs(EL,"onAnimationEnd"),qs(AL,"onAnimationIteration"),qs(TL,"onAnimationStart"),qs("dblclick","onDoubleClick"),qs("focusin","onFocus"),qs("focusout","onBlur"),qs(MJ,"onTransitionRun"),qs(EJ,"onTransitionStart"),qs(AJ,"onTransitionCancel"),qs(CL,"onTransitionEnd"),mt("onMouseEnter",["mouseout","mouseover"]),mt("onMouseLeave",["mouseout","mouseover"]),mt("onPointerEnter",["pointerout","pointerover"]),mt("onPointerLeave",["pointerout","pointerover"]),ot("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),ot("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),ot("onBeforeInput",["compositionend","keypress","textInput","paste"]),ot("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),ot("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),ot("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var qm="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),cQ=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(qm));function YI(u,h){h=(h&4)!==0;for(var g=0;g<u.length;g++){var _=u[g],E=_.event;_=_.listeners;e:{var N=void 0;if(h)for(var j=_.length-1;0<=j;j--){var te=_[j],Se=te.instance,ze=te.currentTarget;if(te=te.listener,Se!==N&&E.isPropagationStopped())break e;N=te,E.currentTarget=ze;try{N(E)}catch(Je){Vv(Je)}E.currentTarget=null,N=Se}else for(j=0;j<_.length;j++){if(te=_[j],Se=te.instance,ze=te.currentTarget,te=te.listener,Se!==N&&E.isPropagationStopped())break e;N=te,E.currentTarget=ze;try{N(E)}catch(Je){Vv(Je)}E.currentTarget=null,N=Se}}}}function sn(u,h){var g=h[mc];g===void 0&&(g=h[mc]=new Set);var _=u+"__bubble";g.has(_)||(KI(h,u,2,!1),g.add(_))}function iE(u,h,g){var _=0;h&&(_|=4),KI(g,u,_,h)}var Rx="_reactListening"+Math.random().toString(36).slice(2);function rE(u){if(!u[Rx]){u[Rx]=!0,Me.forEach(function(g){g!=="selectionchange"&&(cQ.has(g)||iE(g,!1,u),iE(g,!0,u))});var h=u.nodeType===9?u:u.ownerDocument;h===null||h[Rx]||(h[Rx]=!0,iE("selectionchange",!1,h))}}function KI(u,h,g,_){switch(EU(h)){case 2:var E=UQ;break;case 8:E=FQ;break;default:E=yE}g=E.bind(null,h,g,u),E=void 0,!Mw||h!=="touchstart"&&h!=="touchmove"&&h!=="wheel"||(E=!0),_?E!==void 0?u.addEventListener(h,g,{capture:!0,passive:E}):u.addEventListener(h,g,!0):E!==void 0?u.addEventListener(h,g,{passive:E}):u.addEventListener(h,g,!1)}function aE(u,h,g,_,E){var N=_;if((h&1)===0&&(h&2)===0&&_!==null)e:for(;;){if(_===null)return;var j=_.tag;if(j===3||j===4){var te=_.stateNode.containerInfo;if(te===E)break;if(j===4)for(j=_.return;j!==null;){var Se=j.tag;if((Se===3||Se===4)&&j.stateNode.containerInfo===E)return;j=j.return}for(;te!==null;){if(j=xt(te),j===null)return;if(Se=j.tag,Se===5||Se===6||Se===26||Se===27){_=N=j;continue e}te=te.parentNode}}_=_.return}tL(function(){var ze=N,Je=Sw(g),it=[];e:{var Ve=RL.get(u);if(Ve!==void 0){var Ye=Bv,Et=u;switch(u){case"keypress":if(Fv(g)===0)break e;case"keydown":case"keyup":Ye=nJ;break;case"focusin":Et="focus",Ye=Cw;break;case"focusout":Et="blur",Ye=Cw;break;case"beforeblur":case"afterblur":Ye=Cw;break;case"click":if(g.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":Ye=rL;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":Ye=GZ;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":Ye=aJ;break;case EL:case AL:case TL:Ye=qZ;break;case CL:Ye=oJ;break;case"scroll":case"scrollend":Ye=HZ;break;case"wheel":Ye=cJ;break;case"copy":case"cut":case"paste":Ye=YZ;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":Ye=sL;break;case"toggle":case"beforetoggle":Ye=dJ}var Ft=(h&4)!==0,Dn=!Ft&&(u==="scroll"||u==="scrollend"),Oe=Ft?Ve!==null?Ve+"Capture":null:Ve;Ft=[];for(var Te=ze,Fe;Te!==null;){var nt=Te;if(Fe=nt.stateNode,nt=nt.tag,nt!==5&&nt!==26&&nt!==27||Fe===null||Oe===null||(nt=mm(Te,Oe),nt!=null&&Ft.push(Xm(Te,nt,Fe))),Dn)break;Te=Te.return}0<Ft.length&&(Ve=new Ye(Ve,Et,null,g,Je),it.push({event:Ve,listeners:Ft}))}}if((h&7)===0){e:{if(Ve=u==="mouseover"||u==="pointerover",Ye=u==="mouseout"||u==="pointerout",Ve&&g!==_w&&(Et=g.relatedTarget||g.fromElement)&&(xt(Et)||Et[$s]))break e;if((Ye||Ve)&&(Ve=Je.window===Je?Je:(Ve=Je.ownerDocument)?Ve.defaultView||Ve.parentWindow:window,Ye?(Et=g.relatedTarget||g.toElement,Ye=ze,Et=Et?xt(Et):null,Et!==null&&(Dn=a(Et),Ft=Et.tag,Et!==Dn||Ft!==5&&Ft!==27&&Ft!==6)&&(Et=null)):(Ye=null,Et=ze),Ye!==Et)){if(Ft=rL,nt="onMouseLeave",Oe="onMouseEnter",Te="mouse",(u==="pointerout"||u==="pointerover")&&(Ft=sL,nt="onPointerLeave",Oe="onPointerEnter",Te="pointer"),Dn=Ye==null?Ve:_e(Ye),Fe=Et==null?Ve:_e(Et),Ve=new Ft(nt,Te+"leave",Ye,g,Je),Ve.target=Dn,Ve.relatedTarget=Fe,nt=null,xt(Je)===ze&&(Ft=new Ft(Oe,Te+"enter",Et,g,Je),Ft.target=Fe,Ft.relatedTarget=Dn,nt=Ft),Dn=nt,Ye&&Et)t:{for(Ft=uQ,Oe=Ye,Te=Et,Fe=0,nt=Oe;nt;nt=Ft(nt))Fe++;nt=0;for(var Lt=Te;Lt;Lt=Ft(Lt))nt++;for(;0<Fe-nt;)Oe=Ft(Oe),Fe--;for(;0<nt-Fe;)Te=Ft(Te),nt--;for(;Fe--;){if(Oe===Te||Te!==null&&Oe===Te.alternate){Ft=Oe;break t}Oe=Ft(Oe),Te=Ft(Te)}Ft=null}else Ft=null;Ye!==null&&ZI(it,Ve,Ye,Ft,!1),Et!==null&&Dn!==null&&ZI(it,Dn,Et,Ft,!0)}}e:{if(Ve=ze?_e(ze):window,Ye=Ve.nodeName&&Ve.nodeName.toLowerCase(),Ye==="select"||Ye==="input"&&Ve.type==="file")var gn=pL;else if(fL(Ve))if(mL)gn=_J;else{gn=yJ;var Pt=xJ}else Ye=Ve.nodeName,!Ye||Ye.toLowerCase()!=="input"||Ve.type!=="checkbox"&&Ve.type!=="radio"?ze&&bw(ze.elementType)&&(gn=pL):gn=bJ;if(gn&&(gn=gn(u,ze))){hL(it,gn,g,Je);break e}Pt&&Pt(u,Ve,ze),u==="focusout"&&ze&&Ve.type==="number"&&ze.memoizedProps.value!=null&&dr(Ve,"number",Ve.value)}switch(Pt=ze?_e(ze):window,u){case"focusin":(fL(Pt)||Pt.contentEditable==="true")&&(Of=Pt,Lw=ze,wm=null);break;case"focusout":wm=Lw=Of=null;break;case"mousedown":kw=!0;break;case"contextmenu":case"mouseup":case"dragend":kw=!1,wL(it,g,Je);break;case"selectionchange":if(wJ)break;case"keydown":case"keyup":wL(it,g,Je)}var qt;if(Pw)e:{switch(u){case"compositionstart":var un="onCompositionStart";break e;case"compositionend":un="onCompositionEnd";break e;case"compositionupdate":un="onCompositionUpdate";break e}un=void 0}else Nf?uL(u,g)&&(un="onCompositionEnd"):u==="keydown"&&g.keyCode===229&&(un="onCompositionStart");un&&(oL&&g.locale!=="ko"&&(Nf||un!=="onCompositionStart"?un==="onCompositionEnd"&&Nf&&(qt=nL()):(gc=Je,Ew="value"in gc?gc.value:gc.textContent,Nf=!0)),Pt=Px(ze,un),0<Pt.length&&(un=new aL(un,u,null,g,Je),it.push({event:un,listeners:Pt}),qt?un.data=qt:(qt=dL(g),qt!==null&&(un.data=qt)))),(qt=hJ?pJ(u,g):mJ(u,g))&&(un=Px(ze,"onBeforeInput"),0<un.length&&(Pt=new aL("onBeforeInput","beforeinput",null,g,Je),it.push({event:Pt,listeners:un}),Pt.data=qt)),sQ(it,u,ze,g,Je)}YI(it,h)})}function Xm(u,h,g){return{instance:u,listener:h,currentTarget:g}}function Px(u,h){for(var g=h+"Capture",_=[];u!==null;){var E=u,N=E.stateNode;if(E=E.tag,E!==5&&E!==26&&E!==27||N===null||(E=mm(u,g),E!=null&&_.unshift(Xm(u,E,N)),E=mm(u,h),E!=null&&_.push(Xm(u,E,N))),u.tag===3)return _;u=u.return}return[]}function uQ(u){if(u===null)return null;do u=u.return;while(u&&u.tag!==5&&u.tag!==27);return u||null}function ZI(u,h,g,_,E){for(var N=h._reactName,j=[];g!==null&&g!==_;){var te=g,Se=te.alternate,ze=te.stateNode;if(te=te.tag,Se!==null&&Se===_)break;te!==5&&te!==26&&te!==27||ze===null||(Se=ze,E?(ze=mm(g,N),ze!=null&&j.unshift(Xm(g,ze,Se))):E||(ze=mm(g,N),ze!=null&&j.push(Xm(g,ze,Se)))),g=g.return}j.length!==0&&u.push({event:h,listeners:j})}var dQ=/\r\n?/g,fQ=/\u0000|\uFFFD/g;function JI(u){return(typeof u=="string"?u:""+u).replace(dQ,`
- `).replace(fQ,"")}function QI(u,h){return h=JI(h),JI(u)===h}function Pn(u,h,g,_,E,N){switch(g){case"children":typeof _=="string"?h==="body"||h==="textarea"&&_===""||yo(u,_):(typeof _=="number"||typeof _=="bigint")&&h!=="body"&&yo(u,""+_);break;case"className":Ot(u,"class",_);break;case"tabIndex":Ot(u,"tabindex",_);break;case"dir":case"role":case"viewBox":case"width":case"height":Ot(u,g,_);break;case"style":QO(u,_,N);break;case"data":if(h!=="object"){Ot(u,"data",_);break}case"src":case"href":if(_===""&&(h!=="a"||g!=="href")){u.removeAttribute(g);break}if(_==null||typeof _=="function"||typeof _=="symbol"||typeof _=="boolean"){u.removeAttribute(g);break}_=Iv(""+_),u.setAttribute(g,_);break;case"action":case"formAction":if(typeof _=="function"){u.setAttribute(g,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof N=="function"&&(g==="formAction"?(h!=="input"&&Pn(u,h,"name",E.name,E,null),Pn(u,h,"formEncType",E.formEncType,E,null),Pn(u,h,"formMethod",E.formMethod,E,null),Pn(u,h,"formTarget",E.formTarget,E,null)):(Pn(u,h,"encType",E.encType,E,null),Pn(u,h,"method",E.method,E,null),Pn(u,h,"target",E.target,E,null)));if(_==null||typeof _=="symbol"||typeof _=="boolean"){u.removeAttribute(g);break}_=Iv(""+_),u.setAttribute(g,_);break;case"onClick":_!=null&&(u.onclick=Zo);break;case"onScroll":_!=null&&sn("scroll",u);break;case"onScrollEnd":_!=null&&sn("scrollend",u);break;case"dangerouslySetInnerHTML":if(_!=null){if(typeof _!="object"||!("__html"in _))throw Error(i(61));if(g=_.__html,g!=null){if(E.children!=null)throw Error(i(60));u.innerHTML=g}}break;case"multiple":u.multiple=_&&typeof _!="function"&&typeof _!="symbol";break;case"muted":u.muted=_&&typeof _!="function"&&typeof _!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(_==null||typeof _=="function"||typeof _=="boolean"||typeof _=="symbol"){u.removeAttribute("xlink:href");break}g=Iv(""+_),u.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",g);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":_!=null&&typeof _!="function"&&typeof _!="symbol"?u.setAttribute(g,""+_):u.removeAttribute(g);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":_&&typeof _!="function"&&typeof _!="symbol"?u.setAttribute(g,""):u.removeAttribute(g);break;case"capture":case"download":_===!0?u.setAttribute(g,""):_!==!1&&_!=null&&typeof _!="function"&&typeof _!="symbol"?u.setAttribute(g,_):u.removeAttribute(g);break;case"cols":case"rows":case"size":case"span":_!=null&&typeof _!="function"&&typeof _!="symbol"&&!isNaN(_)&&1<=_?u.setAttribute(g,_):u.removeAttribute(g);break;case"rowSpan":case"start":_==null||typeof _=="function"||typeof _=="symbol"||isNaN(_)?u.removeAttribute(g):u.setAttribute(g,_);break;case"popover":sn("beforetoggle",u),sn("toggle",u),Bt(u,"popover",_);break;case"xlinkActuate":Xt(u,"http://www.w3.org/1999/xlink","xlink:actuate",_);break;case"xlinkArcrole":Xt(u,"http://www.w3.org/1999/xlink","xlink:arcrole",_);break;case"xlinkRole":Xt(u,"http://www.w3.org/1999/xlink","xlink:role",_);break;case"xlinkShow":Xt(u,"http://www.w3.org/1999/xlink","xlink:show",_);break;case"xlinkTitle":Xt(u,"http://www.w3.org/1999/xlink","xlink:title",_);break;case"xlinkType":Xt(u,"http://www.w3.org/1999/xlink","xlink:type",_);break;case"xmlBase":Xt(u,"http://www.w3.org/XML/1998/namespace","xml:base",_);break;case"xmlLang":Xt(u,"http://www.w3.org/XML/1998/namespace","xml:lang",_);break;case"xmlSpace":Xt(u,"http://www.w3.org/XML/1998/namespace","xml:space",_);break;case"is":Bt(u,"is",_);break;case"innerText":case"textContent":break;default:(!(2<g.length)||g[0]!=="o"&&g[0]!=="O"||g[1]!=="n"&&g[1]!=="N")&&(g=BZ.get(g)||g,Bt(u,g,_))}}function sE(u,h,g,_,E,N){switch(g){case"style":QO(u,_,N);break;case"dangerouslySetInnerHTML":if(_!=null){if(typeof _!="object"||!("__html"in _))throw Error(i(61));if(g=_.__html,g!=null){if(E.children!=null)throw Error(i(60));u.innerHTML=g}}break;case"children":typeof _=="string"?yo(u,_):(typeof _=="number"||typeof _=="bigint")&&yo(u,""+_);break;case"onScroll":_!=null&&sn("scroll",u);break;case"onScrollEnd":_!=null&&sn("scrollend",u);break;case"onClick":_!=null&&(u.onclick=Zo);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Ze.hasOwnProperty(g))e:{if(g[0]==="o"&&g[1]==="n"&&(E=g.endsWith("Capture"),h=g.slice(2,E?g.length-7:void 0),N=u[xi]||null,N=N!=null?N[g]:null,typeof N=="function"&&u.removeEventListener(h,N,E),typeof _=="function")){typeof N!="function"&&N!==null&&(g in u?u[g]=null:u.hasAttribute(g)&&u.removeAttribute(g)),u.addEventListener(h,_,E);break e}g in u?u[g]=_:_===!0?u.setAttribute(g,""):Bt(u,g,_)}}}function Pr(u,h,g){switch(h){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":sn("error",u),sn("load",u);var _=!1,E=!1,N;for(N in g)if(g.hasOwnProperty(N)){var j=g[N];if(j!=null)switch(N){case"src":_=!0;break;case"srcSet":E=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(i(137,h));default:Pn(u,h,N,j,g,null)}}E&&Pn(u,h,"srcSet",g.srcSet,g,null),_&&Pn(u,h,"src",g.src,g,null);return;case"input":sn("invalid",u);var te=N=j=E=null,Se=null,ze=null;for(_ in g)if(g.hasOwnProperty(_)){var Je=g[_];if(Je!=null)switch(_){case"name":E=Je;break;case"type":j=Je;break;case"checked":Se=Je;break;case"defaultChecked":ze=Je;break;case"value":N=Je;break;case"defaultValue":te=Je;break;case"children":case"dangerouslySetInnerHTML":if(Je!=null)throw Error(i(137,h));break;default:Pn(u,h,_,Je,g,null)}}Mn(u,N,te,Se,ze,j,E,!1);return;case"select":sn("invalid",u),_=j=N=null;for(E in g)if(g.hasOwnProperty(E)&&(te=g[E],te!=null))switch(E){case"value":N=te;break;case"defaultValue":j=te;break;case"multiple":_=te;default:Pn(u,h,E,te,g,null)}h=N,g=j,u.multiple=!!_,h!=null?$i(u,!!_,h,!1):g!=null&&$i(u,!!_,g,!0);return;case"textarea":sn("invalid",u),N=E=_=null;for(j in g)if(g.hasOwnProperty(j)&&(te=g[j],te!=null))switch(j){case"value":_=te;break;case"defaultValue":E=te;break;case"children":N=te;break;case"dangerouslySetInnerHTML":if(te!=null)throw Error(i(91));break;default:Pn(u,h,j,te,g,null)}Ar(u,_,E,N);return;case"option":for(Se in g)if(g.hasOwnProperty(Se)&&(_=g[Se],_!=null))switch(Se){case"selected":u.selected=_&&typeof _!="function"&&typeof _!="symbol";break;default:Pn(u,h,Se,_,g,null)}return;case"dialog":sn("beforetoggle",u),sn("toggle",u),sn("cancel",u),sn("close",u);break;case"iframe":case"object":sn("load",u);break;case"video":case"audio":for(_=0;_<qm.length;_++)sn(qm[_],u);break;case"image":sn("error",u),sn("load",u);break;case"details":sn("toggle",u);break;case"embed":case"source":case"link":sn("error",u),sn("load",u);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(ze in g)if(g.hasOwnProperty(ze)&&(_=g[ze],_!=null))switch(ze){case"children":case"dangerouslySetInnerHTML":throw Error(i(137,h));default:Pn(u,h,ze,_,g,null)}return;default:if(bw(h)){for(Je in g)g.hasOwnProperty(Je)&&(_=g[Je],_!==void 0&&sE(u,h,Je,_,g,void 0));return}}for(te in g)g.hasOwnProperty(te)&&(_=g[te],_!=null&&Pn(u,h,te,_,g,null))}function hQ(u,h,g,_){switch(h){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var E=null,N=null,j=null,te=null,Se=null,ze=null,Je=null;for(Ye in g){var it=g[Ye];if(g.hasOwnProperty(Ye)&&it!=null)switch(Ye){case"checked":break;case"value":break;case"defaultValue":Se=it;default:_.hasOwnProperty(Ye)||Pn(u,h,Ye,null,_,it)}}for(var Ve in _){var Ye=_[Ve];if(it=g[Ve],_.hasOwnProperty(Ve)&&(Ye!=null||it!=null))switch(Ve){case"type":N=Ye;break;case"name":E=Ye;break;case"checked":ze=Ye;break;case"defaultChecked":Je=Ye;break;case"value":j=Ye;break;case"defaultValue":te=Ye;break;case"children":case"dangerouslySetInnerHTML":if(Ye!=null)throw Error(i(137,h));break;default:Ye!==it&&Pn(u,h,Ve,Ye,_,it)}}Ws(u,j,te,Se,ze,Je,N,E);return;case"select":Ye=j=te=Ve=null;for(N in g)if(Se=g[N],g.hasOwnProperty(N)&&Se!=null)switch(N){case"value":break;case"multiple":Ye=Se;default:_.hasOwnProperty(N)||Pn(u,h,N,null,_,Se)}for(E in _)if(N=_[E],Se=g[E],_.hasOwnProperty(E)&&(N!=null||Se!=null))switch(E){case"value":Ve=N;break;case"defaultValue":te=N;break;case"multiple":j=N;default:N!==Se&&Pn(u,h,E,N,_,Se)}h=te,g=j,_=Ye,Ve!=null?$i(u,!!g,Ve,!1):!!_!=!!g&&(h!=null?$i(u,!!g,h,!0):$i(u,!!g,g?[]:"",!1));return;case"textarea":Ye=Ve=null;for(te in g)if(E=g[te],g.hasOwnProperty(te)&&E!=null&&!_.hasOwnProperty(te))switch(te){case"value":break;case"children":break;default:Pn(u,h,te,null,_,E)}for(j in _)if(E=_[j],N=g[j],_.hasOwnProperty(j)&&(E!=null||N!=null))switch(j){case"value":Ve=E;break;case"defaultValue":Ye=E;break;case"children":break;case"dangerouslySetInnerHTML":if(E!=null)throw Error(i(91));break;default:E!==N&&Pn(u,h,j,E,_,N)}fr(u,Ve,Ye);return;case"option":for(var Et in g)if(Ve=g[Et],g.hasOwnProperty(Et)&&Ve!=null&&!_.hasOwnProperty(Et))switch(Et){case"selected":u.selected=!1;break;default:Pn(u,h,Et,null,_,Ve)}for(Se in _)if(Ve=_[Se],Ye=g[Se],_.hasOwnProperty(Se)&&Ve!==Ye&&(Ve!=null||Ye!=null))switch(Se){case"selected":u.selected=Ve&&typeof Ve!="function"&&typeof Ve!="symbol";break;default:Pn(u,h,Se,Ve,_,Ye)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var Ft in g)Ve=g[Ft],g.hasOwnProperty(Ft)&&Ve!=null&&!_.hasOwnProperty(Ft)&&Pn(u,h,Ft,null,_,Ve);for(ze in _)if(Ve=_[ze],Ye=g[ze],_.hasOwnProperty(ze)&&Ve!==Ye&&(Ve!=null||Ye!=null))switch(ze){case"children":case"dangerouslySetInnerHTML":if(Ve!=null)throw Error(i(137,h));break;default:Pn(u,h,ze,Ve,_,Ye)}return;default:if(bw(h)){for(var Dn in g)Ve=g[Dn],g.hasOwnProperty(Dn)&&Ve!==void 0&&!_.hasOwnProperty(Dn)&&sE(u,h,Dn,void 0,_,Ve);for(Je in _)Ve=_[Je],Ye=g[Je],!_.hasOwnProperty(Je)||Ve===Ye||Ve===void 0&&Ye===void 0||sE(u,h,Je,Ve,_,Ye);return}}for(var Oe in g)Ve=g[Oe],g.hasOwnProperty(Oe)&&Ve!=null&&!_.hasOwnProperty(Oe)&&Pn(u,h,Oe,null,_,Ve);for(it in _)Ve=_[it],Ye=g[it],!_.hasOwnProperty(it)||Ve===Ye||Ve==null&&Ye==null||Pn(u,h,it,Ve,_,Ye)}function eU(u){switch(u){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function pQ(){if(typeof performance.getEntriesByType=="function"){for(var u=0,h=0,g=performance.getEntriesByType("resource"),_=0;_<g.length;_++){var E=g[_],N=E.transferSize,j=E.initiatorType,te=E.duration;if(N&&te&&eU(j)){for(j=0,te=E.responseEnd,_+=1;_<g.length;_++){var Se=g[_],ze=Se.startTime;if(ze>te)break;var Je=Se.transferSize,it=Se.initiatorType;Je&&eU(it)&&(Se=Se.responseEnd,j+=Je*(Se<te?1:(te-ze)/(Se-ze)))}if(--_,h+=8*(N+j)/(E.duration/1e3),u++,10<u)break}}if(0<u)return h/u/1e6}return navigator.connection&&(u=navigator.connection.downlink,typeof u=="number")?u:5}var oE=null,lE=null;function Dx(u){return u.nodeType===9?u:u.ownerDocument}function tU(u){switch(u){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function nU(u,h){if(u===0)switch(h){case"svg":return 1;case"math":return 2;default:return 0}return u===1&&h==="foreignObject"?0:u}function cE(u,h){return u==="textarea"||u==="noscript"||typeof h.children=="string"||typeof h.children=="number"||typeof h.children=="bigint"||typeof h.dangerouslySetInnerHTML=="object"&&h.dangerouslySetInnerHTML!==null&&h.dangerouslySetInnerHTML.__html!=null}var uE=null;function mQ(){var u=window.event;return u&&u.type==="popstate"?u===uE?!1:(uE=u,!0):(uE=null,!1)}var iU=typeof setTimeout=="function"?setTimeout:void 0,gQ=typeof clearTimeout=="function"?clearTimeout:void 0,rU=typeof Promise=="function"?Promise:void 0,vQ=typeof queueMicrotask=="function"?queueMicrotask:typeof rU<"u"?function(u){return rU.resolve(null).then(u).catch(xQ)}:iU;function xQ(u){setTimeout(function(){throw u})}function Oc(u){return u==="head"}function aU(u,h){var g=h,_=0;do{var E=g.nextSibling;if(u.removeChild(g),E&&E.nodeType===8)if(g=E.data,g==="/$"||g==="/&"){if(_===0){u.removeChild(E),sh(h);return}_--}else if(g==="$"||g==="$?"||g==="$~"||g==="$!"||g==="&")_++;else if(g==="html")Ym(u.ownerDocument.documentElement);else if(g==="head"){g=u.ownerDocument.head,Ym(g);for(var N=g.firstChild;N;){var j=N.nextSibling,te=N.nodeName;N[Xe]||te==="SCRIPT"||te==="STYLE"||te==="LINK"&&N.rel.toLowerCase()==="stylesheet"||g.removeChild(N),N=j}}else g==="body"&&Ym(u.ownerDocument.body);g=E}while(g);sh(h)}function sU(u,h){var g=u;u=0;do{var _=g.nextSibling;if(g.nodeType===1?h?(g._stashedDisplay=g.style.display,g.style.display="none"):(g.style.display=g._stashedDisplay||"",g.getAttribute("style")===""&&g.removeAttribute("style")):g.nodeType===3&&(h?(g._stashedText=g.nodeValue,g.nodeValue=""):g.nodeValue=g._stashedText||""),_&&_.nodeType===8)if(g=_.data,g==="/$"){if(u===0)break;u--}else g!=="$"&&g!=="$?"&&g!=="$~"&&g!=="$!"||u++;g=_}while(g)}function dE(u){var h=u.firstChild;for(h&&h.nodeType===10&&(h=h.nextSibling);h;){var g=h;switch(h=h.nextSibling,g.nodeName){case"HTML":case"HEAD":case"BODY":dE(g),We(g);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(g.rel.toLowerCase()==="stylesheet")continue}u.removeChild(g)}}function yQ(u,h,g,_){for(;u.nodeType===1;){var E=g;if(u.nodeName.toLowerCase()!==h.toLowerCase()){if(!_&&(u.nodeName!=="INPUT"||u.type!=="hidden"))break}else if(_){if(!u[Xe])switch(h){case"meta":if(!u.hasAttribute("itemprop"))break;return u;case"link":if(N=u.getAttribute("rel"),N==="stylesheet"&&u.hasAttribute("data-precedence"))break;if(N!==E.rel||u.getAttribute("href")!==(E.href==null||E.href===""?null:E.href)||u.getAttribute("crossorigin")!==(E.crossOrigin==null?null:E.crossOrigin)||u.getAttribute("title")!==(E.title==null?null:E.title))break;return u;case"style":if(u.hasAttribute("data-precedence"))break;return u;case"script":if(N=u.getAttribute("src"),(N!==(E.src==null?null:E.src)||u.getAttribute("type")!==(E.type==null?null:E.type)||u.getAttribute("crossorigin")!==(E.crossOrigin==null?null:E.crossOrigin))&&N&&u.hasAttribute("async")&&!u.hasAttribute("itemprop"))break;return u;default:return u}}else if(h==="input"&&u.type==="hidden"){var N=E.name==null?null:""+E.name;if(E.type==="hidden"&&u.getAttribute("name")===N)return u}else return u;if(u=ms(u.nextSibling),u===null)break}return null}function bQ(u,h,g){if(h==="")return null;for(;u.nodeType!==3;)if((u.nodeType!==1||u.nodeName!=="INPUT"||u.type!=="hidden")&&!g||(u=ms(u.nextSibling),u===null))return null;return u}function oU(u,h){for(;u.nodeType!==8;)if((u.nodeType!==1||u.nodeName!=="INPUT"||u.type!=="hidden")&&!h||(u=ms(u.nextSibling),u===null))return null;return u}function fE(u){return u.data==="$?"||u.data==="$~"}function hE(u){return u.data==="$!"||u.data==="$?"&&u.ownerDocument.readyState!=="loading"}function _Q(u,h){var g=u.ownerDocument;if(u.data==="$~")u._reactRetry=h;else if(u.data!=="$?"||g.readyState!=="loading")h();else{var _=function(){h(),g.removeEventListener("DOMContentLoaded",_)};g.addEventListener("DOMContentLoaded",_),u._reactRetry=_}}function ms(u){for(;u!=null;u=u.nextSibling){var h=u.nodeType;if(h===1||h===3)break;if(h===8){if(h=u.data,h==="$"||h==="$!"||h==="$?"||h==="$~"||h==="&"||h==="F!"||h==="F")break;if(h==="/$"||h==="/&")return null}}return u}var pE=null;function lU(u){u=u.nextSibling;for(var h=0;u;){if(u.nodeType===8){var g=u.data;if(g==="/$"||g==="/&"){if(h===0)return ms(u.nextSibling);h--}else g!=="$"&&g!=="$!"&&g!=="$?"&&g!=="$~"&&g!=="&"||h++}u=u.nextSibling}return null}function cU(u){u=u.previousSibling;for(var h=0;u;){if(u.nodeType===8){var g=u.data;if(g==="$"||g==="$!"||g==="$?"||g==="$~"||g==="&"){if(h===0)return u;h--}else g!=="/$"&&g!=="/&"||h++}u=u.previousSibling}return null}function uU(u,h,g){switch(h=Dx(g),u){case"html":if(u=h.documentElement,!u)throw Error(i(452));return u;case"head":if(u=h.head,!u)throw Error(i(453));return u;case"body":if(u=h.body,!u)throw Error(i(454));return u;default:throw Error(i(451))}}function Ym(u){for(var h=u.attributes;h.length;)u.removeAttributeNode(h[0]);We(u)}var gs=new Map,dU=new Set;function Nx(u){return typeof u.getRootNode=="function"?u.getRootNode():u.nodeType===9?u:u.ownerDocument}var hl=G.d;G.d={f:SQ,r:wQ,D:MQ,C:EQ,L:AQ,m:TQ,X:RQ,S:CQ,M:PQ};function SQ(){var u=hl.f(),h=wx();return u||h}function wQ(u){var h=Z(u);h!==null&&h.tag===5&&h.type==="form"?Ck(h):hl.r(u)}var ih=typeof document>"u"?null:document;function fU(u,h,g){var _=ih;if(_&&typeof h=="string"&&h){var E=Sn(h);E='link[rel="'+u+'"][href="'+E+'"]',typeof g=="string"&&(E+='[crossorigin="'+g+'"]'),dU.has(E)||(dU.add(E),u={rel:u,crossOrigin:g,href:h},_.querySelector(E)===null&&(h=_.createElement("link"),Pr(h,"link",u),Re(h),_.head.appendChild(h)))}}function MQ(u){hl.D(u),fU("dns-prefetch",u,null)}function EQ(u,h){hl.C(u,h),fU("preconnect",u,h)}function AQ(u,h,g){hl.L(u,h,g);var _=ih;if(_&&u&&h){var E='link[rel="preload"][as="'+Sn(h)+'"]';h==="image"&&g&&g.imageSrcSet?(E+='[imagesrcset="'+Sn(g.imageSrcSet)+'"]',typeof g.imageSizes=="string"&&(E+='[imagesizes="'+Sn(g.imageSizes)+'"]')):E+='[href="'+Sn(u)+'"]';var N=E;switch(h){case"style":N=rh(u);break;case"script":N=ah(u)}gs.has(N)||(u=f({rel:"preload",href:h==="image"&&g&&g.imageSrcSet?void 0:u,as:h},g),gs.set(N,u),_.querySelector(E)!==null||h==="style"&&_.querySelector(Km(N))||h==="script"&&_.querySelector(Zm(N))||(h=_.createElement("link"),Pr(h,"link",u),Re(h),_.head.appendChild(h)))}}function TQ(u,h){hl.m(u,h);var g=ih;if(g&&u){var _=h&&typeof h.as=="string"?h.as:"script",E='link[rel="modulepreload"][as="'+Sn(_)+'"][href="'+Sn(u)+'"]',N=E;switch(_){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":N=ah(u)}if(!gs.has(N)&&(u=f({rel:"modulepreload",href:u},h),gs.set(N,u),g.querySelector(E)===null)){switch(_){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(g.querySelector(Zm(N)))return}_=g.createElement("link"),Pr(_,"link",u),Re(_),g.head.appendChild(_)}}}function CQ(u,h,g){hl.S(u,h,g);var _=ih;if(_&&u){var E=Pe(_).hoistableStyles,N=rh(u);h=h||"default";var j=E.get(N);if(!j){var te={loading:0,preload:null};if(j=_.querySelector(Km(N)))te.loading=5;else{u=f({rel:"stylesheet",href:u,"data-precedence":h},g),(g=gs.get(N))&&mE(u,g);var Se=j=_.createElement("link");Re(Se),Pr(Se,"link",u),Se._p=new Promise(function(ze,Je){Se.onload=ze,Se.onerror=Je}),Se.addEventListener("load",function(){te.loading|=1}),Se.addEventListener("error",function(){te.loading|=2}),te.loading|=4,Ox(j,h,_)}j={type:"stylesheet",instance:j,count:1,state:te},E.set(N,j)}}}function RQ(u,h){hl.X(u,h);var g=ih;if(g&&u){var _=Pe(g).hoistableScripts,E=ah(u),N=_.get(E);N||(N=g.querySelector(Zm(E)),N||(u=f({src:u,async:!0},h),(h=gs.get(E))&&gE(u,h),N=g.createElement("script"),Re(N),Pr(N,"link",u),g.head.appendChild(N)),N={type:"script",instance:N,count:1,state:null},_.set(E,N))}}function PQ(u,h){hl.M(u,h);var g=ih;if(g&&u){var _=Pe(g).hoistableScripts,E=ah(u),N=_.get(E);N||(N=g.querySelector(Zm(E)),N||(u=f({src:u,async:!0,type:"module"},h),(h=gs.get(E))&&gE(u,h),N=g.createElement("script"),Re(N),Pr(N,"link",u),g.head.appendChild(N)),N={type:"script",instance:N,count:1,state:null},_.set(E,N))}}function hU(u,h,g,_){var E=(E=me.current)?Nx(E):null;if(!E)throw Error(i(446));switch(u){case"meta":case"title":return null;case"style":return typeof g.precedence=="string"&&typeof g.href=="string"?(h=rh(g.href),g=Pe(E).hoistableStyles,_=g.get(h),_||(_={type:"style",instance:null,count:0,state:null},g.set(h,_)),_):{type:"void",instance:null,count:0,state:null};case"link":if(g.rel==="stylesheet"&&typeof g.href=="string"&&typeof g.precedence=="string"){u=rh(g.href);var N=Pe(E).hoistableStyles,j=N.get(u);if(j||(E=E.ownerDocument||E,j={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},N.set(u,j),(N=E.querySelector(Km(u)))&&!N._p&&(j.instance=N,j.state.loading=5),gs.has(u)||(g={rel:"preload",as:"style",href:g.href,crossOrigin:g.crossOrigin,integrity:g.integrity,media:g.media,hrefLang:g.hrefLang,referrerPolicy:g.referrerPolicy},gs.set(u,g),N||DQ(E,u,g,j.state))),h&&_===null)throw Error(i(528,""));return j}if(h&&_!==null)throw Error(i(529,""));return null;case"script":return h=g.async,g=g.src,typeof g=="string"&&h&&typeof h!="function"&&typeof h!="symbol"?(h=ah(g),g=Pe(E).hoistableScripts,_=g.get(h),_||(_={type:"script",instance:null,count:0,state:null},g.set(h,_)),_):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,u))}}function rh(u){return'href="'+Sn(u)+'"'}function Km(u){return'link[rel="stylesheet"]['+u+"]"}function pU(u){return f({},u,{"data-precedence":u.precedence,precedence:null})}function DQ(u,h,g,_){u.querySelector('link[rel="preload"][as="style"]['+h+"]")?_.loading=1:(h=u.createElement("link"),_.preload=h,h.addEventListener("load",function(){return _.loading|=1}),h.addEventListener("error",function(){return _.loading|=2}),Pr(h,"link",g),Re(h),u.head.appendChild(h))}function ah(u){return'[src="'+Sn(u)+'"]'}function Zm(u){return"script[async]"+u}function mU(u,h,g){if(h.count++,h.instance===null)switch(h.type){case"style":var _=u.querySelector('style[data-href~="'+Sn(g.href)+'"]');if(_)return h.instance=_,Re(_),_;var E=f({},g,{"data-href":g.href,"data-precedence":g.precedence,href:null,precedence:null});return _=(u.ownerDocument||u).createElement("style"),Re(_),Pr(_,"style",E),Ox(_,g.precedence,u),h.instance=_;case"stylesheet":E=rh(g.href);var N=u.querySelector(Km(E));if(N)return h.state.loading|=4,h.instance=N,Re(N),N;_=pU(g),(E=gs.get(E))&&mE(_,E),N=(u.ownerDocument||u).createElement("link"),Re(N);var j=N;return j._p=new Promise(function(te,Se){j.onload=te,j.onerror=Se}),Pr(N,"link",_),h.state.loading|=4,Ox(N,g.precedence,u),h.instance=N;case"script":return N=ah(g.src),(E=u.querySelector(Zm(N)))?(h.instance=E,Re(E),E):(_=g,(E=gs.get(N))&&(_=f({},g),gE(_,E)),u=u.ownerDocument||u,E=u.createElement("script"),Re(E),Pr(E,"link",_),u.head.appendChild(E),h.instance=E);case"void":return null;default:throw Error(i(443,h.type))}else h.type==="stylesheet"&&(h.state.loading&4)===0&&(_=h.instance,h.state.loading|=4,Ox(_,g.precedence,u));return h.instance}function Ox(u,h,g){for(var _=g.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),E=_.length?_[_.length-1]:null,N=E,j=0;j<_.length;j++){var te=_[j];if(te.dataset.precedence===h)N=te;else if(N!==E)break}N?N.parentNode.insertBefore(u,N.nextSibling):(h=g.nodeType===9?g.head:g,h.insertBefore(u,h.firstChild))}function mE(u,h){u.crossOrigin==null&&(u.crossOrigin=h.crossOrigin),u.referrerPolicy==null&&(u.referrerPolicy=h.referrerPolicy),u.title==null&&(u.title=h.title)}function gE(u,h){u.crossOrigin==null&&(u.crossOrigin=h.crossOrigin),u.referrerPolicy==null&&(u.referrerPolicy=h.referrerPolicy),u.integrity==null&&(u.integrity=h.integrity)}var Lx=null;function gU(u,h,g){if(Lx===null){var _=new Map,E=Lx=new Map;E.set(g,_)}else E=Lx,_=E.get(g),_||(_=new Map,E.set(g,_));if(_.has(u))return _;for(_.set(u,null),g=g.getElementsByTagName(u),E=0;E<g.length;E++){var N=g[E];if(!(N[Xe]||N[ri]||u==="link"&&N.getAttribute("rel")==="stylesheet")&&N.namespaceURI!=="http://www.w3.org/2000/svg"){var j=N.getAttribute(h)||"";j=u+j;var te=_.get(j);te?te.push(N):_.set(j,[N])}}return _}function vU(u,h,g){u=u.ownerDocument||u,u.head.insertBefore(g,h==="title"?u.querySelector("head > title"):null)}function NQ(u,h,g){if(g===1||h.itemProp!=null)return!1;switch(u){case"meta":case"title":return!0;case"style":if(typeof h.precedence!="string"||typeof h.href!="string"||h.href==="")break;return!0;case"link":if(typeof h.rel!="string"||typeof h.href!="string"||h.href===""||h.onLoad||h.onError)break;switch(h.rel){case"stylesheet":return u=h.disabled,typeof h.precedence=="string"&&u==null;default:return!0}case"script":if(h.async&&typeof h.async!="function"&&typeof h.async!="symbol"&&!h.onLoad&&!h.onError&&h.src&&typeof h.src=="string")return!0}return!1}function xU(u){return!(u.type==="stylesheet"&&(u.state.loading&3)===0)}function OQ(u,h,g,_){if(g.type==="stylesheet"&&(typeof _.media!="string"||matchMedia(_.media).matches!==!1)&&(g.state.loading&4)===0){if(g.instance===null){var E=rh(_.href),N=h.querySelector(Km(E));if(N){h=N._p,h!==null&&typeof h=="object"&&typeof h.then=="function"&&(u.count++,u=kx.bind(u),h.then(u,u)),g.state.loading|=4,g.instance=N,Re(N);return}N=h.ownerDocument||h,_=pU(_),(E=gs.get(E))&&mE(_,E),N=N.createElement("link"),Re(N);var j=N;j._p=new Promise(function(te,Se){j.onload=te,j.onerror=Se}),Pr(N,"link",_),g.instance=N}u.stylesheets===null&&(u.stylesheets=new Map),u.stylesheets.set(g,h),(h=g.state.preload)&&(g.state.loading&3)===0&&(u.count++,g=kx.bind(u),h.addEventListener("load",g),h.addEventListener("error",g))}}var vE=0;function LQ(u,h){return u.stylesheets&&u.count===0&&Ux(u,u.stylesheets),0<u.count||0<u.imgCount?function(g){var _=setTimeout(function(){if(u.stylesheets&&Ux(u,u.stylesheets),u.unsuspend){var N=u.unsuspend;u.unsuspend=null,N()}},6e4+h);0<u.imgBytes&&vE===0&&(vE=62500*pQ());var E=setTimeout(function(){if(u.waitingForImages=!1,u.count===0&&(u.stylesheets&&Ux(u,u.stylesheets),u.unsuspend)){var N=u.unsuspend;u.unsuspend=null,N()}},(u.imgBytes>vE?50:800)+h);return u.unsuspend=g,function(){u.unsuspend=null,clearTimeout(_),clearTimeout(E)}}:null}function kx(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Ux(this,this.stylesheets);else if(this.unsuspend){var u=this.unsuspend;this.unsuspend=null,u()}}}var Ix=null;function Ux(u,h){u.stylesheets=null,u.unsuspend!==null&&(u.count++,Ix=new Map,h.forEach(kQ,u),Ix=null,kx.call(u))}function kQ(u,h){if(!(h.state.loading&4)){var g=Ix.get(u);if(g)var _=g.get(null);else{g=new Map,Ix.set(u,g);for(var E=u.querySelectorAll("link[data-precedence],style[data-precedence]"),N=0;N<E.length;N++){var j=E[N];(j.nodeName==="LINK"||j.getAttribute("media")!=="not all")&&(g.set(j.dataset.precedence,j),_=j)}_&&g.set(null,_)}E=h.instance,j=E.getAttribute("data-precedence"),N=g.get(j)||_,N===_&&g.set(null,E),g.set(j,E),this.count++,_=kx.bind(this),E.addEventListener("load",_),E.addEventListener("error",_),N?N.parentNode.insertBefore(E,N.nextSibling):(u=u.nodeType===9?u.head:u,u.insertBefore(E,u.firstChild)),h.state.loading|=4}}var Jm={$$typeof:M,Provider:null,Consumer:null,_currentValue:Y,_currentValue2:Y,_threadCount:0};function IQ(u,h,g,_,E,N,j,te,Se){this.tag=1,this.containerInfo=u,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Ct(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ct(0),this.hiddenUpdates=Ct(null),this.identifierPrefix=_,this.onUncaughtError=E,this.onCaughtError=N,this.onRecoverableError=j,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=Se,this.incompleteTransitions=new Map}function yU(u,h,g,_,E,N,j,te,Se,ze,Je,it){return u=new IQ(u,h,g,j,Se,ze,Je,it,te),h=1,N===!0&&(h|=24),N=ja(3,null,null,h),u.current=N,N.stateNode=u,h=Kw(),h.refCount++,u.pooledCache=h,h.refCount++,N.memoizedState={element:_,isDehydrated:g,cache:h},eM(N),u}function bU(u){return u?(u=If,u):If}function _U(u,h,g,_,E,N){E=bU(E),_.context===null?_.context=E:_.pendingContext=E,_=Sc(h),_.payload={element:g},N=N===void 0?null:N,N!==null&&(_.callback=N),g=wc(u,_,h),g!==null&&(wa(g,u,h),Pm(g,u,h))}function SU(u,h){if(u=u.memoizedState,u!==null&&u.dehydrated!==null){var g=u.retryLane;u.retryLane=g!==0&&g<h?g:h}}function xE(u,h){SU(u,h),(u=u.alternate)&&SU(u,h)}function wU(u){if(u.tag===13||u.tag===31){var h=Xu(u,67108864);h!==null&&wa(h,u,67108864),xE(u,67108864)}}function MU(u){if(u.tag===13||u.tag===31){var h=Wa();h=Gi(h);var g=Xu(u,h);g!==null&&wa(g,u,h),xE(u,h)}}var Fx=!0;function UQ(u,h,g,_){var E=q.T;q.T=null;var N=G.p;try{G.p=2,yE(u,h,g,_)}finally{G.p=N,q.T=E}}function FQ(u,h,g,_){var E=q.T;q.T=null;var N=G.p;try{G.p=8,yE(u,h,g,_)}finally{G.p=N,q.T=E}}function yE(u,h,g,_){if(Fx){var E=bE(_);if(E===null)aE(u,h,_,zx,g),AU(u,_);else if(BQ(E,u,h,g,_))_.stopPropagation();else if(AU(u,_),h&4&&-1<zQ.indexOf(u)){for(;E!==null;){var N=Z(E);if(N!==null)switch(N.tag){case 3:if(N=N.stateNode,N.current.memoizedState.isDehydrated){var j=Ee(N.pendingLanes);if(j!==0){var te=N;for(te.pendingLanes|=2,te.entangledLanes|=2;j;){var Se=1<<31-et(j);te.entanglements[1]|=Se,j&=~Se}wo(N),(_n&6)===0&&(_x=L()+500,Wm(0))}}break;case 31:case 13:te=Xu(N,2),te!==null&&wa(te,N,2),wx(),xE(N,2)}if(N=bE(_),N===null&&aE(u,h,_,zx,g),N===E)break;E=N}E!==null&&_.stopPropagation()}else aE(u,h,_,null,g)}}function bE(u){return u=Sw(u),_E(u)}var zx=null;function _E(u){if(zx=null,u=xt(u),u!==null){var h=a(u);if(h===null)u=null;else{var g=h.tag;if(g===13){if(u=s(h),u!==null)return u;u=null}else if(g===31){if(u=o(h),u!==null)return u;u=null}else if(g===3){if(h.stateNode.current.memoizedState.isDehydrated)return h.tag===3?h.stateNode.containerInfo:null;u=null}else h!==u&&(u=null)}}return zx=u,null}function EU(u){switch(u){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(K()){case pe:return 2;case xe:return 8;case fe:case Ke:return 32;case ke:return 268435456;default:return 32}default:return 32}}var SE=!1,Lc=null,kc=null,Ic=null,Qm=new Map,eg=new Map,Uc=[],zQ="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function AU(u,h){switch(u){case"focusin":case"focusout":Lc=null;break;case"dragenter":case"dragleave":kc=null;break;case"mouseover":case"mouseout":Ic=null;break;case"pointerover":case"pointerout":Qm.delete(h.pointerId);break;case"gotpointercapture":case"lostpointercapture":eg.delete(h.pointerId)}}function tg(u,h,g,_,E,N){return u===null||u.nativeEvent!==N?(u={blockedOn:h,domEventName:g,eventSystemFlags:_,nativeEvent:N,targetContainers:[E]},h!==null&&(h=Z(h),h!==null&&wU(h)),u):(u.eventSystemFlags|=_,h=u.targetContainers,E!==null&&h.indexOf(E)===-1&&h.push(E),u)}function BQ(u,h,g,_,E){switch(h){case"focusin":return Lc=tg(Lc,u,h,g,_,E),!0;case"dragenter":return kc=tg(kc,u,h,g,_,E),!0;case"mouseover":return Ic=tg(Ic,u,h,g,_,E),!0;case"pointerover":var N=E.pointerId;return Qm.set(N,tg(Qm.get(N)||null,u,h,g,_,E)),!0;case"gotpointercapture":return N=E.pointerId,eg.set(N,tg(eg.get(N)||null,u,h,g,_,E)),!0}return!1}function TU(u){var h=xt(u.target);if(h!==null){var g=a(h);if(g!==null){if(h=g.tag,h===13){if(h=s(g),h!==null){u.blockedOn=h,Hr(u.priority,function(){MU(g)});return}}else if(h===31){if(h=o(g),h!==null){u.blockedOn=h,Hr(u.priority,function(){MU(g)});return}}else if(h===3&&g.stateNode.current.memoizedState.isDehydrated){u.blockedOn=g.tag===3?g.stateNode.containerInfo:null;return}}}u.blockedOn=null}function Bx(u){if(u.blockedOn!==null)return!1;for(var h=u.targetContainers;0<h.length;){var g=bE(u.nativeEvent);if(g===null){g=u.nativeEvent;var _=new g.constructor(g.type,g);_w=_,g.target.dispatchEvent(_),_w=null}else return h=Z(g),h!==null&&wU(h),u.blockedOn=g,!1;h.shift()}return!0}function CU(u,h,g){Bx(u)&&g.delete(h)}function jQ(){SE=!1,Lc!==null&&Bx(Lc)&&(Lc=null),kc!==null&&Bx(kc)&&(kc=null),Ic!==null&&Bx(Ic)&&(Ic=null),Qm.forEach(CU),eg.forEach(CU)}function jx(u,h){u.blockedOn===h&&(u.blockedOn=null,SE||(SE=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,jQ)))}var Hx=null;function RU(u){Hx!==u&&(Hx=u,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Hx===u&&(Hx=null);for(var h=0;h<u.length;h+=3){var g=u[h],_=u[h+1],E=u[h+2];if(typeof _!="function"){if(_E(_||g)===null)continue;break}var N=Z(g);N!==null&&(u.splice(h,3),h-=3,bM(N,{pending:!0,data:E,method:g.method,action:_},_,E))}}))}function sh(u){function h(Se){return jx(Se,u)}Lc!==null&&jx(Lc,u),kc!==null&&jx(kc,u),Ic!==null&&jx(Ic,u),Qm.forEach(h),eg.forEach(h);for(var g=0;g<Uc.length;g++){var _=Uc[g];_.blockedOn===u&&(_.blockedOn=null)}for(;0<Uc.length&&(g=Uc[0],g.blockedOn===null);)TU(g),g.blockedOn===null&&Uc.shift();if(g=(u.ownerDocument||u).$$reactFormReplay,g!=null)for(_=0;_<g.length;_+=3){var E=g[_],N=g[_+1],j=E[xi]||null;if(typeof N=="function")j||RU(g);else if(j){var te=null;if(N&&N.hasAttribute("formAction")){if(E=N,j=N[xi]||null)te=j.formAction;else if(_E(E)!==null)continue}else te=j.action;typeof te=="function"?g[_+1]=te:(g.splice(_,3),_-=3),RU(g)}}}function PU(){function u(N){N.canIntercept&&N.info==="react-transition"&&N.intercept({handler:function(){return new Promise(function(j){return E=j})},focusReset:"manual",scroll:"manual"})}function h(){E!==null&&(E(),E=null),_||setTimeout(g,20)}function g(){if(!_&&!navigation.transition){var N=navigation.currentEntry;N&&N.url!=null&&navigation.navigate(N.url,{state:N.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var _=!1,E=null;return navigation.addEventListener("navigate",u),navigation.addEventListener("navigatesuccess",h),navigation.addEventListener("navigateerror",h),setTimeout(g,100),function(){_=!0,navigation.removeEventListener("navigate",u),navigation.removeEventListener("navigatesuccess",h),navigation.removeEventListener("navigateerror",h),E!==null&&(E(),E=null)}}}function wE(u){this._internalRoot=u}Vx.prototype.render=wE.prototype.render=function(u){var h=this._internalRoot;if(h===null)throw Error(i(409));var g=h.current,_=Wa();_U(g,_,u,h,null,null)},Vx.prototype.unmount=wE.prototype.unmount=function(){var u=this._internalRoot;if(u!==null){this._internalRoot=null;var h=u.containerInfo;_U(u.current,2,null,u,null,null),wx(),h[$s]=null}};function Vx(u){this._internalRoot=u}Vx.prototype.unstable_scheduleHydration=function(u){if(u){var h=Er();u={blockedOn:null,target:u,priority:h};for(var g=0;g<Uc.length&&h!==0&&h<Uc[g].priority;g++);Uc.splice(g,0,u),g===0&&TU(u)}};var DU=e.version;if(DU!=="19.2.0")throw Error(i(527,DU,"19.2.0"));G.findDOMNode=function(u){var h=u._reactInternals;if(h===void 0)throw typeof u.render=="function"?Error(i(188)):(u=Object.keys(u).join(","),Error(i(268,u)));return u=c(h),u=u!==null?d(u):null,u=u===null?null:u.stateNode,u};var HQ={bundleType:0,version:"19.2.0",rendererPackageName:"react-dom",currentDispatcherRef:q,reconcilerVersion:"19.2.0"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Gx=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Gx.isDisabled&&Gx.supportsFiber)try{Ue=Gx.inject(HQ),De=Gx}catch{}}return ig.createRoot=function(u,h){if(!r(u))throw Error(i(299));var g=!1,_="",E=Fk,N=zk,j=Bk;return h!=null&&(h.unstable_strictMode===!0&&(g=!0),h.identifierPrefix!==void 0&&(_=h.identifierPrefix),h.onUncaughtError!==void 0&&(E=h.onUncaughtError),h.onCaughtError!==void 0&&(N=h.onCaughtError),h.onRecoverableError!==void 0&&(j=h.onRecoverableError)),h=yU(u,1,!1,null,null,g,_,null,E,N,j,PU),u[$s]=h.current,rE(u),new wE(h)},ig.hydrateRoot=function(u,h,g){if(!r(u))throw Error(i(299));var _=!1,E="",N=Fk,j=zk,te=Bk,Se=null;return g!=null&&(g.unstable_strictMode===!0&&(_=!0),g.identifierPrefix!==void 0&&(E=g.identifierPrefix),g.onUncaughtError!==void 0&&(N=g.onUncaughtError),g.onCaughtError!==void 0&&(j=g.onCaughtError),g.onRecoverableError!==void 0&&(te=g.onRecoverableError),g.formState!==void 0&&(Se=g.formState)),h=yU(u,1,!0,h,g??null,_,E,Se,N,j,te,PU),h.context=bU(null),g=h.current,_=Wa(),_=Gi(_),E=Sc(_),E.callback=null,wc(g,E,_),g=_,h.current.lanes=g,en(h,g),wo(h),u[$s]=h.current,rE(u),new Vx(h)},ig.version="19.2.0",ig}var jU;function QQ(){if(jU)return AE.exports;jU=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(e){console.error(e)}}return t(),AE.exports=JQ(),AE.exports}var eee=QQ();var HU="popstate";function tee(t={}){function e(i,r){let{pathname:a,search:s,hash:o}=i.location;return f2("",{pathname:a,search:s,hash:o},r.state&&r.state.usr||null,r.state&&r.state.key||"default")}function n(i,r){return typeof r=="string"?r:s0(r)}return iee(e,n,null,t)}function si(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function po(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function nee(){return Math.random().toString(36).substring(2,10)}function VU(t,e){return{usr:t.state,key:t.key,idx:e}}function f2(t,e,n=null,i){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof e=="string"?Vp(e):e,state:n,key:e&&e.key||i||nee()}}function s0({pathname:t="/",search:e="",hash:n=""}){return e&&e!=="?"&&(t+=e.charAt(0)==="?"?e:"?"+e),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function Vp(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substring(n),t=t.substring(0,n));let i=t.indexOf("?");i>=0&&(e.search=t.substring(i),t=t.substring(0,i)),t&&(e.pathname=t)}return e}function iee(t,e,n,i={}){let{window:r=document.defaultView,v5Compat:a=!1}=i,s=r.history,o="POP",l=null,c=d();c==null&&(c=0,s.replaceState({...s.state,idx:c},""));function d(){return(s.state||{idx:null}).idx}function f(){o="POP";let x=d(),v=x==null?null:x-c;c=x,l&&l({action:o,location:b.location,delta:v})}function p(x,v){o="PUSH";let w=f2(b.location,x,v);c=d()+1;let M=VU(w,c),A=b.createHref(w);try{s.pushState(M,"",A)}catch(T){if(T instanceof DOMException&&T.name==="DataCloneError")throw T;r.location.assign(A)}a&&l&&l({action:o,location:b.location,delta:1})}function m(x,v){o="REPLACE";let w=f2(b.location,x,v);c=d();let M=VU(w,c),A=b.createHref(w);s.replaceState(M,"",A),a&&l&&l({action:o,location:b.location,delta:0})}function y(x){return ree(x)}let b={get action(){return o},get location(){return t(r,s)},listen(x){if(l)throw new Error("A history only accepts one active listener");return r.addEventListener(HU,f),l=x,()=>{r.removeEventListener(HU,f),l=null}},createHref(x){return e(r,x)},createURL:y,encodeLocation(x){let v=y(x);return{pathname:v.pathname,search:v.search,hash:v.hash}},push:p,replace:m,go(x){return s.go(x)}};return b}function ree(t,e=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),si(n,"No window.location.(origin|href) available to create URL");let i=typeof t=="string"?t:s0(t);return i=i.replace(/ $/,"%20"),!e&&i.startsWith("//")&&(i=n+i),new URL(i,n)}function _V(t,e,n="/"){return aee(t,e,n,!1)}function aee(t,e,n,i){let r=typeof e=="string"?Vp(e):e,a=Zl(r.pathname||"/",n);if(a==null)return null;let s=SV(t);see(s);let o=null;for(let l=0;o==null&&l<s.length;++l){let c=vee(a);o=mee(s[l],c,i)}return o}function SV(t,e=[],n=[],i="",r=!1){let a=(s,o,l=r,c)=>{let d={relativePath:c===void 0?s.path||"":c,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};if(d.relativePath.startsWith("/")){if(!d.relativePath.startsWith(i)&&l)return;si(d.relativePath.startsWith(i),`Absolute route path "${d.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),d.relativePath=d.relativePath.slice(i.length)}let f=Vl([i,d.relativePath]),p=n.concat(d);s.children&&s.children.length>0&&(si(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${f}".`),SV(s.children,e,p,f,l)),!(s.path==null&&!s.index)&&e.push({path:f,score:hee(f,s.index),routesMeta:p})};return t.forEach((s,o)=>{if(s.path===""||!s.path?.includes("?"))a(s,o);else for(let l of wV(s.path))a(s,o,!0,l)}),e}function wV(t){let e=t.split("/");if(e.length===0)return[];let[n,...i]=e,r=n.endsWith("?"),a=n.replace(/\?$/,"");if(i.length===0)return r?[a,""]:[a];let s=wV(i.join("/")),o=[];return o.push(...s.map(l=>l===""?a:[a,l].join("/"))),r&&o.push(...s),o.map(l=>t.startsWith("/")&&l===""?"/":l)}function see(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:pee(e.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}var oee=/^:[\w-]+$/,lee=3,cee=2,uee=1,dee=10,fee=-2,GU=t=>t==="*";function hee(t,e){let n=t.split("/"),i=n.length;return n.some(GU)&&(i+=fee),e&&(i+=cee),n.filter(r=>!GU(r)).reduce((r,a)=>r+(oee.test(a)?lee:a===""?uee:dee),i)}function pee(t,e){return t.length===e.length&&t.slice(0,-1).every((i,r)=>i===e[r])?t[t.length-1]-e[e.length-1]:0}function mee(t,e,n=!1){let{routesMeta:i}=t,r={},a="/",s=[];for(let o=0;o<i.length;++o){let l=i[o],c=o===i.length-1,d=a==="/"?e:e.slice(a.length)||"/",f=Wb({path:l.relativePath,caseSensitive:l.caseSensitive,end:c},d),p=l.route;if(!f&&c&&n&&!i[i.length-1].route.index&&(f=Wb({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},d)),!f)return null;Object.assign(r,f.params),s.push({params:r,pathname:Vl([a,f.pathname]),pathnameBase:See(Vl([a,f.pathnameBase])),route:p}),f.pathnameBase!=="/"&&(a=Vl([a,f.pathnameBase]))}return s}function Wb(t,e){typeof t=="string"&&(t={path:t,caseSensitive:!1,end:!0});let[n,i]=gee(t.path,t.caseSensitive,t.end),r=e.match(n);if(!r)return null;let a=r[0],s=a.replace(/(.)\/+$/,"$1"),o=r.slice(1);return{params:i.reduce((c,{paramName:d,isOptional:f},p)=>{if(d==="*"){let y=o[p]||"";s=a.slice(0,a.length-y.length).replace(/(.)\/+$/,"$1")}const m=o[p];return f&&!m?c[d]=void 0:c[d]=(m||"").replace(/%2F/g,"/"),c},{}),pathname:a,pathnameBase:s,pattern:t}}function gee(t,e=!1,n=!0){po(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let i=[],r="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,o,l)=>(i.push({paramName:o,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(i.push({paramName:"*"}),r+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?r+="\\/*$":t!==""&&t!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,e?void 0:"i"),i]}function vee(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return po(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${e}).`),t}}function Zl(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,i=t.charAt(n);return i&&i!=="/"?null:t.slice(n)||"/"}var xee=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,yee=t=>xee.test(t);function bee(t,e="/"){let{pathname:n,search:i="",hash:r=""}=typeof t=="string"?Vp(t):t,a;if(n)if(yee(n))a=n;else{if(n.includes("//")){let s=n;n=n.replace(/\/\/+/g,"/"),po(!1,`Pathnames cannot have embedded double slashes - normalizing ${s} -> ${n}`)}n.startsWith("/")?a=$U(n.substring(1),"/"):a=$U(n,e)}else a=e;return{pathname:a,search:wee(i),hash:Mee(r)}}function $U(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(r=>{r===".."?n.length>1&&n.pop():r!=="."&&n.push(r)}),n.length>1?n.join("/"):"/"}function PE(t,e,n,i){return`Cannot include a '${t}' character in a manually specified \`to.${e}\` field [${JSON.stringify(i)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function _ee(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function MV(t){let e=_ee(t);return e.map((n,i)=>i===e.length-1?n.pathname:n.pathnameBase)}function EV(t,e,n,i=!1){let r;typeof t=="string"?r=Vp(t):(r={...t},si(!r.pathname||!r.pathname.includes("?"),PE("?","pathname","search",r)),si(!r.pathname||!r.pathname.includes("#"),PE("#","pathname","hash",r)),si(!r.search||!r.search.includes("#"),PE("#","search","hash",r)));let a=t===""||r.pathname==="",s=a?"/":r.pathname,o;if(s==null)o=n;else{let f=e.length-1;if(!i&&s.startsWith("..")){let p=s.split("/");for(;p[0]==="..";)p.shift(),f-=1;r.pathname=p.join("/")}o=f>=0?e[f]:"/"}let l=bee(r,o),c=s&&s!=="/"&&s.endsWith("/"),d=(a||s===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||d)&&(l.pathname+="/"),l}var Vl=t=>t.join("/").replace(/\/\/+/g,"/"),See=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),wee=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,Mee=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function Eee(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var AV=["POST","PUT","PATCH","DELETE"];new Set(AV);var Aee=["GET",...AV];new Set(Aee);var Gp=R.createContext(null);Gp.displayName="DataRouter";var Z1=R.createContext(null);Z1.displayName="DataRouterState";R.createContext(!1);var TV=R.createContext({isTransitioning:!1});TV.displayName="ViewTransition";var Tee=R.createContext(new Map);Tee.displayName="Fetchers";var Cee=R.createContext(null);Cee.displayName="Await";var qo=R.createContext(null);qo.displayName="Navigation";var K0=R.createContext(null);K0.displayName="Location";var Xo=R.createContext({outlet:null,matches:[],isDataRoute:!1});Xo.displayName="Route";var hP=R.createContext(null);hP.displayName="RouteError";function Ree(t,{relative:e}={}){si(Z0(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:i}=R.useContext(qo),{hash:r,pathname:a,search:s}=J0(t,{relative:e}),o=a;return n!=="/"&&(o=a==="/"?n:Vl([n,a])),i.createHref({pathname:o,search:s,hash:r})}function Z0(){return R.useContext(K0)!=null}function wf(){return si(Z0(),"useLocation() may be used only in the context of a <Router> component."),R.useContext(K0).location}var CV="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function RV(t){R.useContext(qo).static||R.useLayoutEffect(t)}function PV(){let{isDataRoute:t}=R.useContext(Xo);return t?Gee():Pee()}function Pee(){si(Z0(),"useNavigate() may be used only in the context of a <Router> component.");let t=R.useContext(Gp),{basename:e,navigator:n}=R.useContext(qo),{matches:i}=R.useContext(Xo),{pathname:r}=wf(),a=JSON.stringify(MV(i)),s=R.useRef(!1);return RV(()=>{s.current=!0}),R.useCallback((l,c={})=>{if(po(s.current,CV),!s.current)return;if(typeof l=="number"){n.go(l);return}let d=EV(l,JSON.parse(a),r,c.relative==="path");t==null&&e!=="/"&&(d.pathname=d.pathname==="/"?e:Vl([e,d.pathname])),(c.replace?n.replace:n.push)(d,c.state,c)},[e,n,a,r,t])}var Dee=R.createContext(null);function Nee(t){let e=R.useContext(Xo).outlet;return R.useMemo(()=>e&&R.createElement(Dee.Provider,{value:t},e),[e,t])}function J0(t,{relative:e}={}){let{matches:n}=R.useContext(Xo),{pathname:i}=wf(),r=JSON.stringify(MV(n));return R.useMemo(()=>EV(t,JSON.parse(r),i,e==="path"),[t,r,i,e])}function Oee(t,e){return DV(t,e)}function DV(t,e,n,i,r){si(Z0(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=R.useContext(qo),{matches:s}=R.useContext(Xo),o=s[s.length-1],l=o?o.params:{},c=o?o.pathname:"/",d=o?o.pathnameBase:"/",f=o&&o.route;{let w=f&&f.path||"";NV(c,!f||w.endsWith("*")||w.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${c}" (under <Route path="${w}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
- Please change the parent <Route path="${w}"> to <Route path="${w==="/"?"*":`${w}/*`}">.`)}let p=wf(),m;if(e){let w=typeof e=="string"?Vp(e):e;si(d==="/"||w.pathname?.startsWith(d),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${d}" but pathname "${w.pathname}" was given in the \`location\` prop.`),m=w}else m=p;let y=m.pathname||"/",b=y;if(d!=="/"){let w=d.replace(/^\//,"").split("/");b="/"+y.replace(/^\//,"").split("/").slice(w.length).join("/")}let x=_V(t,{pathname:b});po(f||x!=null,`No routes matched location "${m.pathname}${m.search}${m.hash}" `),po(x==null||x[x.length-1].route.element!==void 0||x[x.length-1].route.Component!==void 0||x[x.length-1].route.lazy!==void 0,`Matched leaf route at location "${m.pathname}${m.search}${m.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let v=Fee(x&&x.map(w=>Object.assign({},w,{params:Object.assign({},l,w.params),pathname:Vl([d,a.encodeLocation?a.encodeLocation(w.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?d:Vl([d,a.encodeLocation?a.encodeLocation(w.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:w.pathnameBase])})),s,n,i,r);return e&&v?R.createElement(K0.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...m},navigationType:"POP"}},v):v}function Lee(){let t=Vee(),e=Eee(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,i="rgba(200,200,200, 0.5)",r={padding:"0.5rem",backgroundColor:i},a={padding:"2px 4px",backgroundColor:i},s=null;return console.error("Error handled by React Router default ErrorBoundary:",t),s=R.createElement(R.Fragment,null,R.createElement("p",null,"💿 Hey developer 👋"),R.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",R.createElement("code",{style:a},"ErrorBoundary")," or"," ",R.createElement("code",{style:a},"errorElement")," prop on your route.")),R.createElement(R.Fragment,null,R.createElement("h2",null,"Unexpected Application Error!"),R.createElement("h3",{style:{fontStyle:"italic"}},e),n?R.createElement("pre",{style:r},n):null,s)}var kee=R.createElement(Lee,null),Iee=class extends R.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,e){return e.location!==t.location||e.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:e.error,location:e.location,revalidation:t.revalidation||e.revalidation}}componentDidCatch(t,e){this.props.onError?this.props.onError(t,e):console.error("React Router caught the following error during render",t)}render(){return this.state.error!==void 0?R.createElement(Xo.Provider,{value:this.props.routeContext},R.createElement(hP.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function Uee({routeContext:t,match:e,children:n}){let i=R.useContext(Gp);return i&&i.static&&i.staticContext&&(e.route.errorElement||e.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=e.route.id),R.createElement(Xo.Provider,{value:t},n)}function Fee(t,e=[],n=null,i=null,r=null){if(t==null){if(!n)return null;if(n.errors)t=n.matches;else if(e.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let a=t,s=n?.errors;if(s!=null){let d=a.findIndex(f=>f.route.id&&s?.[f.route.id]!==void 0);si(d>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),a=a.slice(0,Math.min(a.length,d+1))}let o=!1,l=-1;if(n)for(let d=0;d<a.length;d++){let f=a[d];if((f.route.HydrateFallback||f.route.hydrateFallbackElement)&&(l=d),f.route.id){let{loaderData:p,errors:m}=n,y=f.route.loader&&!p.hasOwnProperty(f.route.id)&&(!m||m[f.route.id]===void 0);if(f.route.lazy||y){o=!0,l>=0?a=a.slice(0,l+1):a=[a[0]];break}}}let c=n&&i?(d,f)=>{i(d,{location:n.location,params:n.matches?.[0]?.params??{},errorInfo:f})}:void 0;return a.reduceRight((d,f,p)=>{let m,y=!1,b=null,x=null;n&&(m=s&&f.route.id?s[f.route.id]:void 0,b=f.route.errorElement||kee,o&&(l<0&&p===0?(NV("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),y=!0,x=null):l===p&&(y=!0,x=f.route.hydrateFallbackElement||null)));let v=e.concat(a.slice(0,p+1)),w=()=>{let M;return m?M=b:y?M=x:f.route.Component?M=R.createElement(f.route.Component,null):f.route.element?M=f.route.element:M=d,R.createElement(Uee,{match:f,routeContext:{outlet:d,matches:v,isDataRoute:n!=null},children:M})};return n&&(f.route.ErrorBoundary||f.route.errorElement||p===0)?R.createElement(Iee,{location:n.location,revalidation:n.revalidation,component:b,error:m,children:w(),routeContext:{outlet:null,matches:v,isDataRoute:!0},onError:c}):w()},null)}function pP(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function zee(t){let e=R.useContext(Gp);return si(e,pP(t)),e}function Bee(t){let e=R.useContext(Z1);return si(e,pP(t)),e}function jee(t){let e=R.useContext(Xo);return si(e,pP(t)),e}function mP(t){let e=jee(t),n=e.matches[e.matches.length-1];return si(n.route.id,`${t} can only be used on routes that contain a unique "id"`),n.route.id}function Hee(){return mP("useRouteId")}function Vee(){let t=R.useContext(hP),e=Bee("useRouteError"),n=mP("useRouteError");return t!==void 0?t:e.errors?.[n]}function Gee(){let{router:t}=zee("useNavigate"),e=mP("useNavigate"),n=R.useRef(!1);return RV(()=>{n.current=!0}),R.useCallback(async(r,a={})=>{po(n.current,CV),n.current&&(typeof r=="number"?t.navigate(r):await t.navigate(r,{fromRouteId:e,...a}))},[t,e])}var WU={};function NV(t,e,n){!e&&!WU[t]&&(WU[t]=!0,po(!1,n))}R.memo($ee);function $ee({routes:t,future:e,state:n,unstable_onError:i}){return DV(t,void 0,n,i,e)}function Wee(t){return Nee(t.context)}function yd(t){si(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function qee({basename:t="/",children:e=null,location:n,navigationType:i="POP",navigator:r,static:a=!1}){si(!Z0(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let s=t.replace(/^\/*/,"/"),o=R.useMemo(()=>({basename:s,navigator:r,static:a,future:{}}),[s,r,a]);typeof n=="string"&&(n=Vp(n));let{pathname:l="/",search:c="",hash:d="",state:f=null,key:p="default"}=n,m=R.useMemo(()=>{let y=Zl(l,s);return y==null?null:{location:{pathname:y,search:c,hash:d,state:f,key:p},navigationType:i}},[s,l,c,d,f,p,i]);return po(m!=null,`<Router basename="${s}"> is not able to match the URL "${l}${c}${d}" because it does not start with the basename, so the <Router> won't render anything.`),m==null?null:R.createElement(qo.Provider,{value:o},R.createElement(K0.Provider,{children:e,value:m}))}function Xee({children:t,location:e}){return Oee(h2(t),e)}function h2(t,e=[]){let n=[];return R.Children.forEach(t,(i,r)=>{if(!R.isValidElement(i))return;let a=[...e,r];if(i.type===R.Fragment){n.push.apply(n,h2(i.props.children,a));return}si(i.type===yd,`[${typeof i.type=="string"?i.type:i.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),si(!i.props.index||!i.props.children,"An index route cannot have child routes.");let s={id:i.props.id||a.join("-"),caseSensitive:i.props.caseSensitive,element:i.props.element,Component:i.props.Component,index:i.props.index,path:i.props.path,middleware:i.props.middleware,loader:i.props.loader,action:i.props.action,hydrateFallbackElement:i.props.hydrateFallbackElement,HydrateFallback:i.props.HydrateFallback,errorElement:i.props.errorElement,ErrorBoundary:i.props.ErrorBoundary,hasErrorBoundary:i.props.hasErrorBoundary===!0||i.props.ErrorBoundary!=null||i.props.errorElement!=null,shouldRevalidate:i.props.shouldRevalidate,handle:i.props.handle,lazy:i.props.lazy};i.props.children&&(s.children=h2(i.props.children,a)),n.push(s)}),n}var wb="get",Mb="application/x-www-form-urlencoded";function J1(t){return t!=null&&typeof t.tagName=="string"}function Yee(t){return J1(t)&&t.tagName.toLowerCase()==="button"}function Kee(t){return J1(t)&&t.tagName.toLowerCase()==="form"}function Zee(t){return J1(t)&&t.tagName.toLowerCase()==="input"}function Jee(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function Qee(t,e){return t.button===0&&(!e||e==="_self")&&!Jee(t)}var Wx=null;function ete(){if(Wx===null)try{new FormData(document.createElement("form"),0),Wx=!1}catch{Wx=!0}return Wx}var tte=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function DE(t){return t!=null&&!tte.has(t)?(po(!1,`"${t}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Mb}"`),null):t}function nte(t,e){let n,i,r,a,s;if(Kee(t)){let o=t.getAttribute("action");i=o?Zl(o,e):null,n=t.getAttribute("method")||wb,r=DE(t.getAttribute("enctype"))||Mb,a=new FormData(t)}else if(Yee(t)||Zee(t)&&(t.type==="submit"||t.type==="image")){let o=t.form;if(o==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let l=t.getAttribute("formaction")||o.getAttribute("action");if(i=l?Zl(l,e):null,n=t.getAttribute("formmethod")||o.getAttribute("method")||wb,r=DE(t.getAttribute("formenctype"))||DE(o.getAttribute("enctype"))||Mb,a=new FormData(o,t),!ete()){let{name:c,type:d,value:f}=t;if(d==="image"){let p=c?`${c}.`:"";a.append(`${p}x`,"0"),a.append(`${p}y`,"0")}else c&&a.append(c,f)}}else{if(J1(t))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=wb,i=null,r=Mb,s=t}return a&&r==="text/plain"&&(s=a,a=void 0),{action:i,method:n.toLowerCase(),encType:r,formData:a,body:s}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function gP(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function ite(t,e,n){let i=typeof t=="string"?new URL(t,typeof window>"u"?"server://singlefetch/":window.location.origin):t;return i.pathname==="/"?i.pathname=`_root.${n}`:e&&Zl(i.pathname,e)==="/"?i.pathname=`${e.replace(/\/$/,"")}/_root.${n}`:i.pathname=`${i.pathname.replace(/\/$/,"")}.${n}`,i}async function rte(t,e){if(t.id in e)return e[t.id];try{let n=await import(t.module);return e[t.id]=n,n}catch(n){return console.error(`Error loading route module \`${t.module}\`, reloading page...`),console.error(n),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function ate(t){return t==null?!1:t.href==null?t.rel==="preload"&&typeof t.imageSrcSet=="string"&&typeof t.imageSizes=="string":typeof t.rel=="string"&&typeof t.href=="string"}async function ste(t,e,n){let i=await Promise.all(t.map(async r=>{let a=e.routes[r.route.id];if(a){let s=await rte(a,n);return s.links?s.links():[]}return[]}));return ute(i.flat(1).filter(ate).filter(r=>r.rel==="stylesheet"||r.rel==="preload").map(r=>r.rel==="stylesheet"?{...r,rel:"prefetch",as:"style"}:{...r,rel:"prefetch"}))}function qU(t,e,n,i,r,a){let s=(l,c)=>n[c]?l.route.id!==n[c].route.id:!0,o=(l,c)=>n[c].pathname!==l.pathname||n[c].route.path?.endsWith("*")&&n[c].params["*"]!==l.params["*"];return a==="assets"?e.filter((l,c)=>s(l,c)||o(l,c)):a==="data"?e.filter((l,c)=>{let d=i.routes[l.route.id];if(!d||!d.hasLoader)return!1;if(s(l,c)||o(l,c))return!0;if(l.route.shouldRevalidate){let f=l.route.shouldRevalidate({currentUrl:new URL(r.pathname+r.search+r.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(t,window.origin),nextParams:l.params,defaultShouldRevalidate:!0});if(typeof f=="boolean")return f}return!0}):[]}function ote(t,e,{includeHydrateFallback:n}={}){return lte(t.map(i=>{let r=e.routes[i.route.id];if(!r)return[];let a=[r.module];return r.clientActionModule&&(a=a.concat(r.clientActionModule)),r.clientLoaderModule&&(a=a.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(a=a.concat(r.hydrateFallbackModule)),r.imports&&(a=a.concat(r.imports)),a}).flat(1))}function lte(t){return[...new Set(t)]}function cte(t){let e={},n=Object.keys(t).sort();for(let i of n)e[i]=t[i];return e}function ute(t,e){let n=new Set;return new Set(e),t.reduce((i,r)=>{let a=JSON.stringify(cte(r));return n.has(a)||(n.add(a),i.push({key:a,link:r})),i},[])}function OV(){let t=R.useContext(Gp);return gP(t,"You must render this element inside a <DataRouterContext.Provider> element"),t}function dte(){let t=R.useContext(Z1);return gP(t,"You must render this element inside a <DataRouterStateContext.Provider> element"),t}var vP=R.createContext(void 0);vP.displayName="FrameworkContext";function LV(){let t=R.useContext(vP);return gP(t,"You must render this element inside a <HydratedRouter> element"),t}function fte(t,e){let n=R.useContext(vP),[i,r]=R.useState(!1),[a,s]=R.useState(!1),{onFocus:o,onBlur:l,onMouseEnter:c,onMouseLeave:d,onTouchStart:f}=e,p=R.useRef(null);R.useEffect(()=>{if(t==="render"&&s(!0),t==="viewport"){let b=v=>{v.forEach(w=>{s(w.isIntersecting)})},x=new IntersectionObserver(b,{threshold:.5});return p.current&&x.observe(p.current),()=>{x.disconnect()}}},[t]),R.useEffect(()=>{if(i){let b=setTimeout(()=>{s(!0)},100);return()=>{clearTimeout(b)}}},[i]);let m=()=>{r(!0)},y=()=>{r(!1),s(!1)};return n?t!=="intent"?[a,p,{}]:[a,p,{onFocus:rg(o,m),onBlur:rg(l,y),onMouseEnter:rg(c,m),onMouseLeave:rg(d,y),onTouchStart:rg(f,m)}]:[!1,p,{}]}function rg(t,e){return n=>{t&&t(n),n.defaultPrevented||e(n)}}function hte({page:t,...e}){let{router:n}=OV(),i=R.useMemo(()=>_V(n.routes,t,n.basename),[n.routes,t,n.basename]);return i?R.createElement(mte,{page:t,matches:i,...e}):null}function pte(t){let{manifest:e,routeModules:n}=LV(),[i,r]=R.useState([]);return R.useEffect(()=>{let a=!1;return ste(t,e,n).then(s=>{a||r(s)}),()=>{a=!0}},[t,e,n]),i}function mte({page:t,matches:e,...n}){let i=wf(),{manifest:r,routeModules:a}=LV(),{basename:s}=OV(),{loaderData:o,matches:l}=dte(),c=R.useMemo(()=>qU(t,e,l,r,i,"data"),[t,e,l,r,i]),d=R.useMemo(()=>qU(t,e,l,r,i,"assets"),[t,e,l,r,i]),f=R.useMemo(()=>{if(t===i.pathname+i.search+i.hash)return[];let y=new Set,b=!1;if(e.forEach(v=>{let w=r.routes[v.route.id];!w||!w.hasLoader||(!c.some(M=>M.route.id===v.route.id)&&v.route.id in o&&a[v.route.id]?.shouldRevalidate||w.hasClientLoader?b=!0:y.add(v.route.id))}),y.size===0)return[];let x=ite(t,s,"data");return b&&y.size>0&&x.searchParams.set("_routes",e.filter(v=>y.has(v.route.id)).map(v=>v.route.id).join(",")),[x.pathname+x.search]},[s,o,i,r,c,e,t,a]),p=R.useMemo(()=>ote(d,r),[d,r]),m=pte(d);return R.createElement(R.Fragment,null,f.map(y=>R.createElement("link",{key:y,rel:"prefetch",as:"fetch",href:y,...n})),p.map(y=>R.createElement("link",{key:y,rel:"modulepreload",href:y,...n})),m.map(({key:y,link:b})=>R.createElement("link",{key:y,nonce:n.nonce,...b})))}function gte(...t){return e=>{t.forEach(n=>{typeof n=="function"?n(e):n!=null&&(n.current=e)})}}var kV=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{kV&&(window.__reactRouterVersion="7.9.6")}catch{}function vte({basename:t,children:e,window:n}){let i=R.useRef();i.current==null&&(i.current=tee({window:n,v5Compat:!0}));let r=i.current,[a,s]=R.useState({action:r.action,location:r.location}),o=R.useCallback(l=>{R.startTransition(()=>s(l))},[s]);return R.useLayoutEffect(()=>r.listen(o),[r,o]),R.createElement(qee,{basename:t,children:e,location:a.location,navigationType:a.action,navigator:r})}var IV=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,UV=R.forwardRef(function({onClick:e,discover:n="render",prefetch:i="none",relative:r,reloadDocument:a,replace:s,state:o,target:l,to:c,preventScrollReset:d,viewTransition:f,...p},m){let{basename:y}=R.useContext(qo),b=typeof c=="string"&&IV.test(c),x,v=!1;if(typeof c=="string"&&b&&(x=c,kV))try{let P=new URL(window.location.href),k=c.startsWith("//")?new URL(P.protocol+c):new URL(c),B=Zl(k.pathname,y);k.origin===P.origin&&B!=null?c=B+k.search+k.hash:v=!0}catch{po(!1,`<Link to="${c}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}let w=Ree(c,{relative:r}),[M,A,T]=fte(i,p),D=bte(c,{replace:s,state:o,target:l,preventScrollReset:d,relative:r,viewTransition:f});function C(P){e&&e(P),P.defaultPrevented||D(P)}let U=R.createElement("a",{...p,...T,href:x||w,onClick:v||a?e:C,ref:gte(m,A),target:l,"data-discover":!b&&n==="render"?"true":void 0});return M&&!b?R.createElement(R.Fragment,null,U,R.createElement(hte,{page:w})):U});UV.displayName="Link";var FV=R.forwardRef(function({"aria-current":e="page",caseSensitive:n=!1,className:i="",end:r=!1,style:a,to:s,viewTransition:o,children:l,...c},d){let f=J0(s,{relative:c.relative}),p=wf(),m=R.useContext(Z1),{navigator:y,basename:b}=R.useContext(qo),x=m!=null&&Ete(f)&&o===!0,v=y.encodeLocation?y.encodeLocation(f).pathname:f.pathname,w=p.pathname,M=m&&m.navigation&&m.navigation.location?m.navigation.location.pathname:null;n||(w=w.toLowerCase(),M=M?M.toLowerCase():null,v=v.toLowerCase()),M&&b&&(M=Zl(M,b)||M);const A=v!=="/"&&v.endsWith("/")?v.length-1:v.length;let T=w===v||!r&&w.startsWith(v)&&w.charAt(A)==="/",D=M!=null&&(M===v||!r&&M.startsWith(v)&&M.charAt(v.length)==="/"),C={isActive:T,isPending:D,isTransitioning:x},U=T?e:void 0,P;typeof i=="function"?P=i(C):P=[i,T?"active":null,D?"pending":null,x?"transitioning":null].filter(Boolean).join(" ");let k=typeof a=="function"?a(C):a;return R.createElement(UV,{...c,"aria-current":U,className:P,ref:d,style:k,to:s,viewTransition:o},typeof l=="function"?l(C):l)});FV.displayName="NavLink";var xte=R.forwardRef(({discover:t="render",fetcherKey:e,navigate:n,reloadDocument:i,replace:r,state:a,method:s=wb,action:o,onSubmit:l,relative:c,preventScrollReset:d,viewTransition:f,...p},m)=>{let y=wte(),b=Mte(o,{relative:c}),x=s.toLowerCase()==="get"?"get":"post",v=typeof o=="string"&&IV.test(o),w=M=>{if(l&&l(M),M.defaultPrevented)return;M.preventDefault();let A=M.nativeEvent.submitter,T=A?.getAttribute("formmethod")||s;y(A||M.currentTarget,{fetcherKey:e,method:T,navigate:n,replace:r,state:a,relative:c,preventScrollReset:d,viewTransition:f})};return R.createElement("form",{ref:m,method:x,action:b,onSubmit:i?l:w,...p,"data-discover":!v&&t==="render"?"true":void 0})});xte.displayName="Form";function yte(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function zV(t){let e=R.useContext(Gp);return si(e,yte(t)),e}function bte(t,{target:e,replace:n,state:i,preventScrollReset:r,relative:a,viewTransition:s}={}){let o=PV(),l=wf(),c=J0(t,{relative:a});return R.useCallback(d=>{if(Qee(d,e)){d.preventDefault();let f=n!==void 0?n:s0(l)===s0(c);o(t,{replace:f,state:i,preventScrollReset:r,relative:a,viewTransition:s})}},[l,o,c,n,i,e,t,r,a,s])}var _te=0,Ste=()=>`__${String(++_te)}__`;function wte(){let{router:t}=zV("useSubmit"),{basename:e}=R.useContext(qo),n=Hee();return R.useCallback(async(i,r={})=>{let{action:a,method:s,encType:o,formData:l,body:c}=nte(i,e);if(r.navigate===!1){let d=r.fetcherKey||Ste();await t.fetch(d,n,r.action||a,{preventScrollReset:r.preventScrollReset,formData:l,body:c,formMethod:r.method||s,formEncType:r.encType||o,flushSync:r.flushSync})}else await t.navigate(r.action||a,{preventScrollReset:r.preventScrollReset,formData:l,body:c,formMethod:r.method||s,formEncType:r.encType||o,replace:r.replace,state:r.state,fromRouteId:n,flushSync:r.flushSync,viewTransition:r.viewTransition})},[t,e,n])}function Mte(t,{relative:e}={}){let{basename:n}=R.useContext(qo),i=R.useContext(Xo);si(i,"useFormAction must be used inside a RouteContext");let[r]=i.matches.slice(-1),a={...J0(t||".",{relative:e})},s=wf();if(t==null){a.search=s.search;let o=new URLSearchParams(a.search),l=o.getAll("index");if(l.some(d=>d==="")){o.delete("index"),l.filter(f=>f).forEach(f=>o.append("index",f));let d=o.toString();a.search=d?`?${d}`:""}}return(!t||t===".")&&r.route.index&&(a.search=a.search?a.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(a.pathname=a.pathname==="/"?n:Vl([n,a.pathname])),s0(a)}function Ete(t,{relative:e}={}){let n=R.useContext(TV);si(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:i}=zV("useViewTransitionState"),r=J0(t,{relative:e});if(!n.isTransitioning)return!1;let a=Zl(n.currentLocation.pathname,i)||n.currentLocation.pathname,s=Zl(n.nextLocation.pathname,i)||n.nextLocation.pathname;return Wb(r.pathname,s)!=null||Wb(r.pathname,a)!=null}var Il=bV();const Ate=Vs(Il);var $p=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Tte={setTimeout:(t,e)=>setTimeout(t,e),clearTimeout:t=>clearTimeout(t),setInterval:(t,e)=>setInterval(t,e),clearInterval:t=>clearInterval(t)},Cte=class{#e=Tte;#t=!1;setTimeoutProvider(t){this.#e=t}setTimeout(t,e){return this.#e.setTimeout(t,e)}clearTimeout(t){this.#e.clearTimeout(t)}setInterval(t,e){return this.#e.setInterval(t,e)}clearInterval(t){this.#e.clearInterval(t)}},Pd=new Cte;function Rte(t){setTimeout(t,0)}var Qd=typeof window>"u"||"Deno"in globalThis;function la(){}function Pte(t,e){return typeof t=="function"?t(e):t}function p2(t){return typeof t=="number"&&t>=0&&t!==1/0}function BV(t,e){return Math.max(t+(e||0)-Date.now(),0)}function xu(t,e){return typeof t=="function"?t(e):t}function Es(t,e){return typeof t=="function"?t(e):t}function XU(t,e){const{type:n="all",exact:i,fetchStatus:r,predicate:a,queryKey:s,stale:o}=t;if(s){if(i){if(e.queryHash!==xP(s,e.options))return!1}else if(!o0(e.queryKey,s))return!1}if(n!=="all"){const l=e.isActive();if(n==="active"&&!l||n==="inactive"&&l)return!1}return!(typeof o=="boolean"&&e.isStale()!==o||r&&r!==e.state.fetchStatus||a&&!a(e))}function YU(t,e){const{exact:n,status:i,predicate:r,mutationKey:a}=t;if(a){if(!e.options.mutationKey)return!1;if(n){if(ef(e.options.mutationKey)!==ef(a))return!1}else if(!o0(e.options.mutationKey,a))return!1}return!(i&&e.state.status!==i||r&&!r(e))}function xP(t,e){return(e?.queryKeyHashFn||ef)(t)}function ef(t){return JSON.stringify(t,(e,n)=>m2(n)?Object.keys(n).sort().reduce((i,r)=>(i[r]=n[r],i),{}):n)}function o0(t,e){return t===e?!0:typeof t!=typeof e?!1:t&&e&&typeof t=="object"&&typeof e=="object"?Object.keys(e).every(n=>o0(t[n],e[n])):!1}var Dte=Object.prototype.hasOwnProperty;function jV(t,e){if(t===e)return t;const n=KU(t)&&KU(e);if(!n&&!(m2(t)&&m2(e)))return e;const r=(n?t:Object.keys(t)).length,a=n?e:Object.keys(e),s=a.length,o=n?new Array(s):{};let l=0;for(let c=0;c<s;c++){const d=n?c:a[c],f=t[d],p=e[d];if(f===p){o[d]=f,(n?c<r:Dte.call(t,d))&&l++;continue}if(f===null||p===null||typeof f!="object"||typeof p!="object"){o[d]=p;continue}const m=jV(f,p);o[d]=m,m===f&&l++}return r===s&&l===r?t:o}function qb(t,e){if(!e||Object.keys(t).length!==Object.keys(e).length)return!1;for(const n in t)if(t[n]!==e[n])return!1;return!0}function KU(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function m2(t){if(!ZU(t))return!1;const e=t.constructor;if(e===void 0)return!0;const n=e.prototype;return!(!ZU(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(t)!==Object.prototype)}function ZU(t){return Object.prototype.toString.call(t)==="[object Object]"}function Nte(t){return new Promise(e=>{Pd.setTimeout(e,t)})}function g2(t,e,n){return typeof n.structuralSharing=="function"?n.structuralSharing(t,e):n.structuralSharing!==!1?jV(t,e):e}function Ote(t,e,n=0){const i=[...t,e];return n&&i.length>n?i.slice(1):i}function Lte(t,e,n=0){const i=[e,...t];return n&&i.length>n?i.slice(0,-1):i}var yP=Symbol();function HV(t,e){return!t.queryFn&&e?.initialPromise?()=>e.initialPromise:!t.queryFn||t.queryFn===yP?()=>Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)):t.queryFn}function VV(t,e){return typeof t=="function"?t(...e):!!t}var kte=class extends $p{#e;#t;#n;constructor(){super(),this.#n=t=>{if(!Qd&&window.addEventListener){const e=()=>t();return window.addEventListener("visibilitychange",e,!1),()=>{window.removeEventListener("visibilitychange",e)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(t){this.#n=t,this.#t?.(),this.#t=t(e=>{typeof e=="boolean"?this.setFocused(e):this.onFocus()})}setFocused(t){this.#e!==t&&(this.#e=t,this.onFocus())}onFocus(){const t=this.isFocused();this.listeners.forEach(e=>{e(t)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},bP=new kte;function v2(){let t,e;const n=new Promise((r,a)=>{t=r,e=a});n.status="pending",n.catch(()=>{});function i(r){Object.assign(n,r),delete n.resolve,delete n.reject}return n.resolve=r=>{i({status:"fulfilled",value:r}),t(r)},n.reject=r=>{i({status:"rejected",reason:r}),e(r)},n}var Ite=Rte;function Ute(){let t=[],e=0,n=o=>{o()},i=o=>{o()},r=Ite;const a=o=>{e?t.push(o):r(()=>{n(o)})},s=()=>{const o=t;t=[],o.length&&r(()=>{i(()=>{o.forEach(l=>{n(l)})})})};return{batch:o=>{let l;e++;try{l=o()}finally{e--,e||s()}return l},batchCalls:o=>(...l)=>{a(()=>{o(...l)})},schedule:a,setNotifyFunction:o=>{n=o},setBatchNotifyFunction:o=>{i=o},setScheduler:o=>{r=o}}}var Ki=Ute(),Fte=class extends $p{#e=!0;#t;#n;constructor(){super(),this.#n=t=>{if(!Qd&&window.addEventListener){const e=()=>t(!0),n=()=>t(!1);return window.addEventListener("online",e,!1),window.addEventListener("offline",n,!1),()=>{window.removeEventListener("online",e),window.removeEventListener("offline",n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(t){this.#n=t,this.#t?.(),this.#t=t(this.setOnline.bind(this))}setOnline(t){this.#e!==t&&(this.#e=t,this.listeners.forEach(n=>{n(t)}))}isOnline(){return this.#e}},Xb=new Fte;function zte(t){return Math.min(1e3*2**t,3e4)}function GV(t){return(t??"online")==="online"?Xb.isOnline():!0}var x2=class extends Error{constructor(t){super("CancelledError"),this.revert=t?.revert,this.silent=t?.silent}};function $V(t){let e=!1,n=0,i;const r=v2(),a=()=>r.status!=="pending",s=b=>{if(!a()){const x=new x2(b);p(x),t.onCancel?.(x)}},o=()=>{e=!0},l=()=>{e=!1},c=()=>bP.isFocused()&&(t.networkMode==="always"||Xb.isOnline())&&t.canRun(),d=()=>GV(t.networkMode)&&t.canRun(),f=b=>{a()||(i?.(),r.resolve(b))},p=b=>{a()||(i?.(),r.reject(b))},m=()=>new Promise(b=>{i=x=>{(a()||c())&&b(x)},t.onPause?.()}).then(()=>{i=void 0,a()||t.onContinue?.()}),y=()=>{if(a())return;let b;const x=n===0?t.initialPromise:void 0;try{b=x??t.fn()}catch(v){b=Promise.reject(v)}Promise.resolve(b).then(f).catch(v=>{if(a())return;const w=t.retry??(Qd?0:3),M=t.retryDelay??zte,A=typeof M=="function"?M(n,v):M,T=w===!0||typeof w=="number"&&n<w||typeof w=="function"&&w(n,v);if(e||!T){p(v);return}n++,t.onFail?.(n,v),Nte(A).then(()=>c()?void 0:m()).then(()=>{e?p(v):y()})})};return{promise:r,status:()=>r.status,cancel:s,continue:()=>(i?.(),r),cancelRetry:o,continueRetry:l,canStart:d,start:()=>(d()?y():m().then(y),r)}}var WV=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),p2(this.gcTime)&&(this.#e=Pd.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(Qd?1/0:300*1e3))}clearGcTimeout(){this.#e&&(Pd.clearTimeout(this.#e),this.#e=void 0)}},Bte=class extends WV{#e;#t;#n;#r;#i;#s;#o;constructor(t){super(),this.#o=!1,this.#s=t.defaultOptions,this.setOptions(t.options),this.observers=[],this.#r=t.client,this.#n=this.#r.getQueryCache(),this.queryKey=t.queryKey,this.queryHash=t.queryHash,this.#e=QU(this.options),this.state=t.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#i?.promise}setOptions(t){if(this.options={...this.#s,...t},this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const e=QU(this.options);e.data!==void 0&&(this.setState(JU(e.data,e.dataUpdatedAt)),this.#e=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#n.remove(this)}setData(t,e){const n=g2(this.state.data,t,this.options);return this.#a({data:n,type:"success",dataUpdatedAt:e?.updatedAt,manual:e?.manual}),n}setState(t,e){this.#a({type:"setState",state:t,setStateOptions:e})}cancel(t){const e=this.#i?.promise;return this.#i?.cancel(t),e?e.then(la).catch(la):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(t=>Es(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===yP||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>xu(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!BV(this.state.dataUpdatedAt,t)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#i?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#i?.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),this.#n.notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(e=>e!==t),this.observers.length||(this.#i&&(this.#o?this.#i.cancel({revert:!0}):this.#i.cancelRetry()),this.scheduleGc()),this.#n.notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#a({type:"invalidate"})}async fetch(t,e){if(this.state.fetchStatus!=="idle"&&this.#i?.status()!=="rejected"){if(this.state.data!==void 0&&e?.cancelRefetch)this.cancel({silent:!0});else if(this.#i)return this.#i.continueRetry(),this.#i.promise}if(t&&this.setOptions(t),!this.options.queryFn){const o=this.observers.find(l=>l.options.queryFn);o&&this.setOptions(o.options)}const n=new AbortController,i=o=>{Object.defineProperty(o,"signal",{enumerable:!0,get:()=>(this.#o=!0,n.signal)})},r=()=>{const o=HV(this.options,e),c=(()=>{const d={client:this.#r,queryKey:this.queryKey,meta:this.meta};return i(d),d})();return this.#o=!1,this.options.persister?this.options.persister(o,c,this):o(c)},s=(()=>{const o={fetchOptions:e,options:this.options,queryKey:this.queryKey,client:this.#r,state:this.state,fetchFn:r};return i(o),o})();this.options.behavior?.onFetch(s,this),this.#t=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==s.fetchOptions?.meta)&&this.#a({type:"fetch",meta:s.fetchOptions?.meta}),this.#i=$V({initialPromise:e?.initialPromise,fn:s.fetchFn,onCancel:o=>{o instanceof x2&&o.revert&&this.setState({...this.#t,fetchStatus:"idle"}),n.abort()},onFail:(o,l)=>{this.#a({type:"failed",failureCount:o,error:l})},onPause:()=>{this.#a({type:"pause"})},onContinue:()=>{this.#a({type:"continue"})},retry:s.options.retry,retryDelay:s.options.retryDelay,networkMode:s.options.networkMode,canRun:()=>!0});try{const o=await this.#i.start();if(o===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(o),this.#n.config.onSuccess?.(o,this),this.#n.config.onSettled?.(o,this.state.error,this),o}catch(o){if(o instanceof x2){if(o.silent)return this.#i.promise;if(o.revert){if(this.state.data===void 0)throw o;return this.state.data}}throw this.#a({type:"error",error:o}),this.#n.config.onError?.(o,this),this.#n.config.onSettled?.(this.state.data,o,this),o}finally{this.scheduleGc()}}#a(t){const e=n=>{switch(t.type){case"failed":return{...n,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,...qV(n.data,this.options),fetchMeta:t.meta??null};case"success":const i={...n,...JU(t.data,t.dataUpdatedAt),dataUpdateCount:n.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return this.#t=t.manual?i:void 0,i;case"error":const r=t.error;return{...n,error:r,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:"idle",status:"error"};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...t.state}}};this.state=e(this.state),Ki.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),this.#n.notify({query:this,type:"updated",action:t})})}};function qV(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:GV(e.networkMode)?"fetching":"paused",...t===void 0&&{error:null,status:"pending"}}}function JU(t,e){return{data:t,dataUpdatedAt:e??Date.now(),error:null,isInvalidated:!1,status:"success"}}function QU(t){const e=typeof t.initialData=="function"?t.initialData():t.initialData,n=e!==void 0,i=n?typeof t.initialDataUpdatedAt=="function"?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:n?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var jte=class extends $p{constructor(t,e){super(),this.options=e,this.#e=t,this.#a=null,this.#o=v2(),this.bindMethods(),this.setOptions(e)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#s;#o;#a;#m;#f;#h;#c;#u;#l;#p=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),eF(this.#t,this.options)?this.#d():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return y2(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return y2(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#_(),this.#t.removeObserver(this)}setOptions(t){const e=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof Es(this.options.enabled,this.#t)!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");this.#S(),this.#t.setOptions(this.options),e._defaulted&&!qb(this.options,e)&&this.#e.getQueryCache().notify({type:"observerOptionsUpdated",query:this.#t,observer:this});const i=this.hasListeners();i&&tF(this.#t,n,this.options,e)&&this.#d(),this.updateResult(),i&&(this.#t!==n||Es(this.options.enabled,this.#t)!==Es(e.enabled,this.#t)||xu(this.options.staleTime,this.#t)!==xu(e.staleTime,this.#t))&&this.#g();const r=this.#v();i&&(this.#t!==n||Es(this.options.enabled,this.#t)!==Es(e.enabled,this.#t)||r!==this.#l)&&this.#x(r)}getOptimisticResult(t){const e=this.#e.getQueryCache().build(this.#e,t),n=this.createResult(e,t);return Vte(this,n)&&(this.#r=n,this.#s=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(t,e){return new Proxy(t,{get:(n,i)=>(this.trackProp(i),e?.(i),i==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&this.#o.status==="pending"&&this.#o.reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,i))})}trackProp(t){this.#p.add(t)}getCurrentQuery(){return this.#t}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const e=this.#e.defaultQueryOptions(t),n=this.#e.getQueryCache().build(this.#e,e);return n.fetch().then(()=>this.createResult(n,e))}fetch(t){return this.#d({...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#d(t){this.#S();let e=this.#t.fetch(this.options,t);return t?.throwOnError||(e=e.catch(la)),e}#g(){this.#b();const t=xu(this.options.staleTime,this.#t);if(Qd||this.#r.isStale||!p2(t))return;const n=BV(this.#r.dataUpdatedAt,t)+1;this.#c=Pd.setTimeout(()=>{this.#r.isStale||this.updateResult()},n)}#v(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#x(t){this.#_(),this.#l=t,!(Qd||Es(this.options.enabled,this.#t)===!1||!p2(this.#l)||this.#l===0)&&(this.#u=Pd.setInterval(()=>{(this.options.refetchIntervalInBackground||bP.isFocused())&&this.#d()},this.#l))}#y(){this.#g(),this.#x(this.#v())}#b(){this.#c&&(Pd.clearTimeout(this.#c),this.#c=void 0)}#_(){this.#u&&(Pd.clearInterval(this.#u),this.#u=void 0)}createResult(t,e){const n=this.#t,i=this.options,r=this.#r,a=this.#i,s=this.#s,l=t!==n?t.state:this.#n,{state:c}=t;let d={...c},f=!1,p;if(e._optimisticResults){const U=this.hasListeners(),P=!U&&eF(t,e),k=U&&tF(t,n,e,i);(P||k)&&(d={...d,...qV(c.data,t.options)}),e._optimisticResults==="isRestoring"&&(d.fetchStatus="idle")}let{error:m,errorUpdatedAt:y,status:b}=d;p=d.data;let x=!1;if(e.placeholderData!==void 0&&p===void 0&&b==="pending"){let U;r?.isPlaceholderData&&e.placeholderData===s?.placeholderData?(U=r.data,x=!0):U=typeof e.placeholderData=="function"?e.placeholderData(this.#h?.state.data,this.#h):e.placeholderData,U!==void 0&&(b="success",p=g2(r?.data,U,e),f=!0)}if(e.select&&p!==void 0&&!x)if(r&&p===a?.data&&e.select===this.#m)p=this.#f;else try{this.#m=e.select,p=e.select(p),p=g2(r?.data,p,e),this.#f=p,this.#a=null}catch(U){this.#a=U}this.#a&&(m=this.#a,p=this.#f,y=Date.now(),b="error");const v=d.fetchStatus==="fetching",w=b==="pending",M=b==="error",A=w&&v,T=p!==void 0,C={status:b,fetchStatus:d.fetchStatus,isPending:w,isSuccess:b==="success",isError:M,isInitialLoading:A,isLoading:A,data:p,dataUpdatedAt:d.dataUpdatedAt,error:m,errorUpdatedAt:y,failureCount:d.fetchFailureCount,failureReason:d.fetchFailureReason,errorUpdateCount:d.errorUpdateCount,isFetched:d.dataUpdateCount>0||d.errorUpdateCount>0,isFetchedAfterMount:d.dataUpdateCount>l.dataUpdateCount||d.errorUpdateCount>l.errorUpdateCount,isFetching:v,isRefetching:v&&!w,isLoadingError:M&&!T,isPaused:d.fetchStatus==="paused",isPlaceholderData:f,isRefetchError:M&&T,isStale:_P(t,e),refetch:this.refetch,promise:this.#o,isEnabled:Es(e.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const U=B=>{C.status==="error"?B.reject(C.error):C.data!==void 0&&B.resolve(C.data)},P=()=>{const B=this.#o=C.promise=v2();U(B)},k=this.#o;switch(k.status){case"pending":t.queryHash===n.queryHash&&U(k);break;case"fulfilled":(C.status==="error"||C.data!==k.value)&&P();break;case"rejected":(C.status!=="error"||C.error!==k.reason)&&P();break}}return C}updateResult(){const t=this.#r,e=this.createResult(this.#t,this.options);if(this.#i=this.#t.state,this.#s=this.options,this.#i.data!==void 0&&(this.#h=this.#t),qb(e,t))return;this.#r=e;const n=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,r=typeof i=="function"?i():i;if(r==="all"||!r&&!this.#p.size)return!0;const a=new Set(r??this.#p);return this.options.throwOnError&&a.add("error"),Object.keys(this.#r).some(s=>{const o=s;return this.#r[o]!==t[o]&&a.has(o)})};this.#w({listeners:n()})}#S(){const t=this.#e.getQueryCache().build(this.#e,this.options);if(t===this.#t)return;const e=this.#t;this.#t=t,this.#n=t.state,this.hasListeners()&&(e?.removeObserver(this),t.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#w(t){Ki.batch(()=>{t.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:"observerResultsUpdated"})})}};function Hte(t,e){return Es(e.enabled,t)!==!1&&t.state.data===void 0&&!(t.state.status==="error"&&e.retryOnMount===!1)}function eF(t,e){return Hte(t,e)||t.state.data!==void 0&&y2(t,e,e.refetchOnMount)}function y2(t,e,n){if(Es(e.enabled,t)!==!1&&xu(e.staleTime,t)!=="static"){const i=typeof n=="function"?n(t):n;return i==="always"||i!==!1&&_P(t,e)}return!1}function tF(t,e,n,i){return(t!==e||Es(i.enabled,t)===!1)&&(!n.suspense||t.state.status!=="error")&&_P(t,n)}function _P(t,e){return Es(e.enabled,t)!==!1&&t.isStaleByTime(xu(e.staleTime,t))}function Vte(t,e){return!qb(t.getCurrentResult(),e)}function nF(t){return{onFetch:(e,n)=>{const i=e.options,r=e.fetchOptions?.meta?.fetchMore?.direction,a=e.state.data?.pages||[],s=e.state.data?.pageParams||[];let o={pages:[],pageParams:[]},l=0;const c=async()=>{let d=!1;const f=y=>{Object.defineProperty(y,"signal",{enumerable:!0,get:()=>(e.signal.aborted?d=!0:e.signal.addEventListener("abort",()=>{d=!0}),e.signal)})},p=HV(e.options,e.fetchOptions),m=async(y,b,x)=>{if(d)return Promise.reject();if(b==null&&y.pages.length)return Promise.resolve(y);const w=(()=>{const D={client:e.client,queryKey:e.queryKey,pageParam:b,direction:x?"backward":"forward",meta:e.options.meta};return f(D),D})(),M=await p(w),{maxPages:A}=e.options,T=x?Lte:Ote;return{pages:T(y.pages,M,A),pageParams:T(y.pageParams,b,A)}};if(r&&a.length){const y=r==="backward",b=y?Gte:iF,x={pages:a,pageParams:s},v=b(i,x);o=await m(x,v,y)}else{const y=t??a.length;do{const b=l===0?s[0]??i.initialPageParam:iF(i,o);if(l>0&&b==null)break;o=await m(o,b),l++}while(l<y)}return o};e.options.persister?e.fetchFn=()=>e.options.persister?.(c,{client:e.client,queryKey:e.queryKey,meta:e.options.meta,signal:e.signal},n):e.fetchFn=c}}}function iF(t,{pages:e,pageParams:n}){const i=e.length-1;return e.length>0?t.getNextPageParam(e[i],e,n[i],n):void 0}function Gte(t,{pages:e,pageParams:n}){return e.length>0?t.getPreviousPageParam?.(e[0],e,n[0],n):void 0}var $te=class extends WV{#e;#t;#n;#r;constructor(t){super(),this.#e=t.client,this.mutationId=t.mutationId,this.#n=t.mutationCache,this.#t=[],this.state=t.state||XV(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){this.#t.includes(t)||(this.#t.push(t),this.clearGcTimeout(),this.#n.notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){this.#t=this.#t.filter(e=>e!==t),this.scheduleGc(),this.#n.notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){this.#t.length||(this.state.status==="pending"?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(t){const e=()=>{this.#i({type:"continue"})},n={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=$V({fn:()=>this.options.mutationFn?this.options.mutationFn(t,n):Promise.reject(new Error("No mutationFn found")),onFail:(a,s)=>{this.#i({type:"failed",failureCount:a,error:s})},onPause:()=>{this.#i({type:"pause"})},onContinue:e,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});const i=this.state.status==="pending",r=!this.#r.canStart();try{if(i)e();else{this.#i({type:"pending",variables:t,isPaused:r}),await this.#n.config.onMutate?.(t,this,n);const s=await this.options.onMutate?.(t,n);s!==this.state.context&&this.#i({type:"pending",context:s,variables:t,isPaused:r})}const a=await this.#r.start();return await this.#n.config.onSuccess?.(a,t,this.state.context,this,n),await this.options.onSuccess?.(a,t,this.state.context,n),await this.#n.config.onSettled?.(a,null,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(a,null,t,this.state.context,n),this.#i({type:"success",data:a}),a}catch(a){try{throw await this.#n.config.onError?.(a,t,this.state.context,this,n),await this.options.onError?.(a,t,this.state.context,n),await this.#n.config.onSettled?.(void 0,a,this.state.variables,this.state.context,this,n),await this.options.onSettled?.(void 0,a,t,this.state.context,n),a}finally{this.#i({type:"error",error:a})}}finally{this.#n.runNext(this)}}#i(t){const e=n=>{switch(t.type){case"failed":return{...n,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};case"pending":return{...n,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...n,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:t.error,failureCount:n.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=e(this.state),Ki.batch(()=>{this.#t.forEach(n=>{n.onMutationUpdate(t)}),this.#n.notify({mutation:this,type:"updated",action:t})})}};function XV(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Wte=class extends $p{constructor(t={}){super(),this.config=t,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(t,e,n){const i=new $te({client:t,mutationCache:this,mutationId:++this.#n,options:t.defaultMutationOptions(e),state:n});return this.add(i),i}add(t){this.#e.add(t);const e=qx(t);if(typeof e=="string"){const n=this.#t.get(e);n?n.push(t):this.#t.set(e,[t])}this.notify({type:"added",mutation:t})}remove(t){if(this.#e.delete(t)){const e=qx(t);if(typeof e=="string"){const n=this.#t.get(e);if(n)if(n.length>1){const i=n.indexOf(t);i!==-1&&n.splice(i,1)}else n[0]===t&&this.#t.delete(e)}}this.notify({type:"removed",mutation:t})}canRun(t){const e=qx(t);if(typeof e=="string"){const i=this.#t.get(e)?.find(r=>r.state.status==="pending");return!i||i===t}else return!0}runNext(t){const e=qx(t);return typeof e=="string"?this.#t.get(e)?.find(i=>i!==t&&i.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){Ki.batch(()=>{this.#e.forEach(t=>{this.notify({type:"removed",mutation:t})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(t){const e={exact:!0,...t};return this.getAll().find(n=>YU(e,n))}findAll(t={}){return this.getAll().filter(e=>YU(t,e))}notify(t){Ki.batch(()=>{this.listeners.forEach(e=>{e(t)})})}resumePausedMutations(){const t=this.getAll().filter(e=>e.state.isPaused);return Ki.batch(()=>Promise.all(t.map(e=>e.continue().catch(la))))}};function qx(t){return t.options.scope?.id}var qte=class extends $p{#e;#t=void 0;#n;#r;constructor(e,n){super(),this.#e=e,this.setOptions(n),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){const n=this.options;this.options=this.#e.defaultMutationOptions(e),qb(this.options,n)||this.#e.getMutationCache().notify({type:"observerOptionsUpdated",mutation:this.#n,observer:this}),n?.mutationKey&&this.options.mutationKey&&ef(n.mutationKey)!==ef(this.options.mutationKey)?this.reset():this.#n?.state.status==="pending"&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#s(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#s()}mutate(e,n){return this.#r=n,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){const e=this.#n?.state??XV();this.#t={...e,isPending:e.status==="pending",isSuccess:e.status==="success",isError:e.status==="error",isIdle:e.status==="idle",mutate:this.mutate,reset:this.reset}}#s(e){Ki.batch(()=>{if(this.#r&&this.hasListeners()){const n=this.#t.variables,i=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};e?.type==="success"?(this.#r.onSuccess?.(e.data,n,i,r),this.#r.onSettled?.(e.data,null,n,i,r)):e?.type==="error"&&(this.#r.onError?.(e.error,n,i,r),this.#r.onSettled?.(void 0,e.error,n,i,r))}this.listeners.forEach(n=>{n(this.#t)})})}},Xte=class extends $p{constructor(t={}){super(),this.config=t,this.#e=new Map}#e;build(t,e,n){const i=e.queryKey,r=e.queryHash??xP(i,e);let a=this.get(r);return a||(a=new Bte({client:t,queryKey:i,queryHash:r,options:t.defaultQueryOptions(e),state:n,defaultOptions:t.getQueryDefaults(i)}),this.add(a)),a}add(t){this.#e.has(t.queryHash)||(this.#e.set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const e=this.#e.get(t.queryHash);e&&(t.destroy(),e===t&&this.#e.delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Ki.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return this.#e.get(t)}getAll(){return[...this.#e.values()]}find(t){const e={exact:!0,...t};return this.getAll().find(n=>XU(e,n))}findAll(t={}){const e=this.getAll();return Object.keys(t).length>0?e.filter(n=>XU(t,n)):e}notify(t){Ki.batch(()=>{this.listeners.forEach(e=>{e(t)})})}onFocus(){Ki.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Ki.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Yte=class{#e;#t;#n;#r;#i;#s;#o;#a;constructor(t={}){this.#e=t.queryCache||new Xte,this.#t=t.mutationCache||new Wte,this.#n=t.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#s=0}mount(){this.#s++,this.#s===1&&(this.#o=bP.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#a=Xb.subscribe(async t=>{t&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#s--,this.#s===0&&(this.#o?.(),this.#o=void 0,this.#a?.(),this.#a=void 0)}isFetching(t){return this.#e.findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return this.#t.findAll({...t,status:"pending"}).length}getQueryData(t){const e=this.defaultQueryOptions({queryKey:t});return this.#e.get(e.queryHash)?.state.data}ensureQueryData(t){const e=this.defaultQueryOptions(t),n=this.#e.build(this,e),i=n.state.data;return i===void 0?this.fetchQuery(t):(t.revalidateIfStale&&n.isStaleByTime(xu(e.staleTime,n))&&this.prefetchQuery(e),Promise.resolve(i))}getQueriesData(t){return this.#e.findAll(t).map(({queryKey:e,state:n})=>{const i=n.data;return[e,i]})}setQueryData(t,e,n){const i=this.defaultQueryOptions({queryKey:t}),a=this.#e.get(i.queryHash)?.state.data,s=Pte(e,a);if(s!==void 0)return this.#e.build(this,i).setData(s,{...n,manual:!0})}setQueriesData(t,e,n){return Ki.batch(()=>this.#e.findAll(t).map(({queryKey:i})=>[i,this.setQueryData(i,e,n)]))}getQueryState(t){const e=this.defaultQueryOptions({queryKey:t});return this.#e.get(e.queryHash)?.state}removeQueries(t){const e=this.#e;Ki.batch(()=>{e.findAll(t).forEach(n=>{e.remove(n)})})}resetQueries(t,e){const n=this.#e;return Ki.batch(()=>(n.findAll(t).forEach(i=>{i.reset()}),this.refetchQueries({type:"active",...t},e)))}cancelQueries(t,e={}){const n={revert:!0,...e},i=Ki.batch(()=>this.#e.findAll(t).map(r=>r.cancel(n)));return Promise.all(i).then(la).catch(la)}invalidateQueries(t,e={}){return Ki.batch(()=>(this.#e.findAll(t).forEach(n=>{n.invalidate()}),t?.refetchType==="none"?Promise.resolve():this.refetchQueries({...t,type:t?.refetchType??t?.type??"active"},e)))}refetchQueries(t,e={}){const n={...e,cancelRefetch:e.cancelRefetch??!0},i=Ki.batch(()=>this.#e.findAll(t).filter(r=>!r.isDisabled()&&!r.isStatic()).map(r=>{let a=r.fetch(void 0,n);return n.throwOnError||(a=a.catch(la)),r.state.fetchStatus==="paused"?Promise.resolve():a}));return Promise.all(i).then(la)}fetchQuery(t){const e=this.defaultQueryOptions(t);e.retry===void 0&&(e.retry=!1);const n=this.#e.build(this,e);return n.isStaleByTime(xu(e.staleTime,n))?n.fetch(e):Promise.resolve(n.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(la).catch(la)}fetchInfiniteQuery(t){return t.behavior=nF(t.pages),this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(la).catch(la)}ensureInfiniteQueryData(t){return t.behavior=nF(t.pages),this.ensureQueryData(t)}resumePausedMutations(){return Xb.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(t){this.#n=t}setQueryDefaults(t,e){this.#r.set(ef(t),{queryKey:t,defaultOptions:e})}getQueryDefaults(t){const e=[...this.#r.values()],n={};return e.forEach(i=>{o0(t,i.queryKey)&&Object.assign(n,i.defaultOptions)}),n}setMutationDefaults(t,e){this.#i.set(ef(t),{mutationKey:t,defaultOptions:e})}getMutationDefaults(t){const e=[...this.#i.values()],n={};return e.forEach(i=>{o0(t,i.mutationKey)&&Object.assign(n,i.defaultOptions)}),n}defaultQueryOptions(t){if(t._defaulted)return t;const e={...this.#n.queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return e.queryHash||(e.queryHash=xP(e.queryKey,e)),e.refetchOnReconnect===void 0&&(e.refetchOnReconnect=e.networkMode!=="always"),e.throwOnError===void 0&&(e.throwOnError=!!e.suspense),!e.networkMode&&e.persister&&(e.networkMode="offlineFirst"),e.queryFn===yP&&(e.enabled=!1),e}defaultMutationOptions(t){return t?._defaulted?t:{...this.#n.mutations,...t?.mutationKey&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},YV=R.createContext(void 0),ka=t=>{const e=R.useContext(YV);if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},Kte=({client:t,children:e})=>(R.useEffect(()=>(t.mount(),()=>{t.unmount()}),[t]),S.jsx(YV.Provider,{value:t,children:e})),KV=R.createContext(!1),Zte=()=>R.useContext(KV);KV.Provider;function Jte(){let t=!1;return{clearReset:()=>{t=!1},reset:()=>{t=!0},isReset:()=>t}}var Qte=R.createContext(Jte()),ene=()=>R.useContext(Qte),tne=(t,e)=>{(t.suspense||t.throwOnError||t.experimental_prefetchInRender)&&(e.isReset()||(t.retryOnMount=!1))},nne=t=>{R.useEffect(()=>{t.clearReset()},[t])},ine=({result:t,errorResetBoundary:e,throwOnError:n,query:i,suspense:r})=>t.isError&&!e.isReset()&&!t.isFetching&&i&&(r&&t.data===void 0||VV(n,[t.error,i])),rne=t=>{if(t.suspense){const n=r=>r==="static"?r:Math.max(r??1e3,1e3),i=t.staleTime;t.staleTime=typeof i=="function"?(...r)=>n(i(...r)):n(i),typeof t.gcTime=="number"&&(t.gcTime=Math.max(t.gcTime,1e3))}},ane=(t,e)=>t.isLoading&&t.isFetching&&!e,sne=(t,e)=>t?.suspense&&e.isPending,rF=(t,e,n)=>e.fetchOptimistic(t).catch(()=>{n.clearReset()});function one(t,e,n){const i=Zte(),r=ene(),a=ka(),s=a.defaultQueryOptions(t);a.getDefaultOptions().queries?._experimental_beforeQuery?.(s),s._optimisticResults=i?"isRestoring":"optimistic",rne(s),tne(s,r),nne(r);const o=!a.getQueryCache().get(s.queryHash),[l]=R.useState(()=>new e(a,s)),c=l.getOptimisticResult(s),d=!i&&t.subscribed!==!1;if(R.useSyncExternalStore(R.useCallback(f=>{const p=d?l.subscribe(Ki.batchCalls(f)):la;return l.updateResult(),p},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),R.useEffect(()=>{l.setOptions(s)},[s,l]),sne(s,c))throw rF(s,l,r);if(ine({result:c,errorResetBoundary:r,throwOnError:s.throwOnError,query:a.getQueryCache().get(s.queryHash),suspense:s.suspense}))throw c.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(s,c),s.experimental_prefetchInRender&&!Qd&&ane(c,i)&&(o?rF(s,l,r):a.getQueryCache().get(s.queryHash)?.promise)?.catch(la).finally(()=>{l.updateResult()}),s.notifyOnChangeProps?c:l.trackResult(c)}function Zi(t,e){return one(t,jte)}function Ji(t,e){const n=ka(),[i]=R.useState(()=>new qte(n,t));R.useEffect(()=>{i.setOptions(t)},[i,t]);const r=R.useSyncExternalStore(R.useCallback(s=>i.subscribe(Ki.batchCalls(s)),[i]),()=>i.getCurrentResult(),()=>i.getCurrentResult()),a=R.useCallback((s,o)=>{i.mutate(s,o).catch(la)},[i]);if(r.error&&VV(i.options.throwOnError,[r.error]))throw r.error;return{...r,mutate:a,mutateAsync:r.mutate}}const lne=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),cne=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,n,i)=>i?i.toUpperCase():n.toLowerCase()),aF=t=>{const e=cne(t);return e.charAt(0).toUpperCase()+e.slice(1)},ZV=(...t)=>t.filter((e,n,i)=>!!e&&e.trim()!==""&&i.indexOf(e)===n).join(" ").trim(),une=t=>{for(const e in t)if(e.startsWith("aria-")||e==="role"||e==="title")return!0};var dne={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const fne=R.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:n=2,absoluteStrokeWidth:i,className:r="",children:a,iconNode:s,...o},l)=>R.createElement("svg",{ref:l,...dne,width:e,height:e,stroke:t,strokeWidth:i?Number(n)*24/Number(e):n,className:ZV("lucide",r),...!a&&!une(o)&&{"aria-hidden":"true"},...o},[...s.map(([c,d])=>R.createElement(c,d)),...Array.isArray(a)?a:[a]]));const ht=(t,e)=>{const n=R.forwardRef(({className:i,...r},a)=>R.createElement(fne,{ref:a,iconNode:e,className:ZV(`lucide-${lne(aF(t))}`,`lucide-${t}`,i),...r}));return n.displayName=aF(t),n};const hne=[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"M10 12h4",key:"a56b0p"}]],pne=ht("archive",hne);const mne=[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]],gne=ht("arrow-up-down",mne);const vne=[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]],xne=ht("bold",vne);const yne=[["path",{d:"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z",key:"hh9hay"}],["path",{d:"m3.3 7 8.7 5 8.7-5",key:"g66t2b"}],["path",{d:"M12 22V12",key:"d0xqtd"}]],l0=ht("box",yne);const bne=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}],["path",{d:"M8 14h.01",key:"6423bh"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 18h.01",key:"lrp35t"}],["path",{d:"M12 18h.01",key:"mhygvu"}],["path",{d:"M16 18h.01",key:"kzsmim"}]],_ne=ht("calendar-days",bne);const Sne=[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]],b2=ht("calendar",Sne);const wne=[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]],_2=ht("camera",wne);const Mne=[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]],Ene=ht("chart-column",Mne);const Ane=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],Tne=ht("check",Ane);const Cne=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Rne=ht("chevron-down",Cne);const Pne=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Wp=ht("chevron-right",Pne);const Dne=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],tf=ht("chevron-left",Dne);const Nne=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]],SP=ht("circle-alert",Nne);const One=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],wP=ht("circle-check-big",One);const Lne=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],JV=ht("circle-x",Lne);const kne=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Q1=ht("clock",kne);const Ine=[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]],MP=ht("cloud",Ine);const Une=[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]],Fne=ht("code-xml",Une);const zne=[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]],Bne=ht("copy",zne);const jne=[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]],Hne=ht("dollar-sign",jne);const Vne=[["path",{d:"M12 15V3",key:"m9g1x1"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["path",{d:"m7 10 5 5 5-5",key:"brsn70"}]],zd=ht("download",Vne);const Gne=[["path",{d:"M12 22a7 7 0 0 0 7-7c0-2-1-3.9-3-5.5s-3.5-4-4-6.5c-.5 2.5-2 4.9-4 6.5C6 11.1 5 13 5 15a7 7 0 0 0 7 7z",key:"c7niix"}]],$ne=ht("droplet",Gne);const Wne=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]],qne=ht("ellipsis-vertical",Wne);const Xne=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],gp=ht("external-link",Xne);const Yne=[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],Kne=ht("eye-off",Yne);const Zne=[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],sF=ht("eye",Zne);const Jne=[["path",{d:"M14.5 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.8",key:"1kchwa"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M11.7 14.2 7 17l-4.7-2.8",key:"1yk8tc"}],["path",{d:"M3 13.1a2 2 0 0 0-.999 1.76v3.24a2 2 0 0 0 .969 1.78L6 21.7a2 2 0 0 0 2.03.01L11 19.9a2 2 0 0 0 1-1.76V14.9a2 2 0 0 0-.97-1.78L8 11.3a2 2 0 0 0-2.03-.01z",key:"19flxy"}],["path",{d:"M7 17v5",key:"1yj1jh"}]],Qne=ht("file-box",Jne);const eie=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],tie=ht("file-exclamation-point",eie);const nie=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],Zh=ht("file-text",nie);const iie=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],QV=ht("file",iie);const rie=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M7 3v18",key:"bbkbws"}],["path",{d:"M3 7.5h4",key:"zfgn84"}],["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 16.5h4",key:"1230mu"}],["path",{d:"M17 3v18",key:"in4fa5"}],["path",{d:"M17 7.5h4",key:"myr1c1"}],["path",{d:"M17 16.5h4",key:"go4c1d"}]],zg=ht("film",rie);const aie=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],sie=ht("folder-open",aie);const oie=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]],lie=ht("folder",oie);const cie=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],uie=ht("funnel",cie);const die=[["path",{d:"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4",key:"tonef"}],["path",{d:"M9 18c-4.51 2-5-2-7-2",key:"9comsn"}]],fie=ht("github",die);const hie=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],S2=ht("globe",hie);const pie=[["circle",{cx:"9",cy:"12",r:"1",key:"1vctgf"}],["circle",{cx:"9",cy:"5",r:"1",key:"hp0tcf"}],["circle",{cx:"9",cy:"19",r:"1",key:"fkjjf6"}],["circle",{cx:"15",cy:"12",r:"1",key:"1tmaij"}],["circle",{cx:"15",cy:"5",r:"1",key:"19l28e"}],["circle",{cx:"15",cy:"19",r:"1",key:"f4zoj3"}]],mie=ht("grip-vertical",pie);const gie=[["line",{x1:"22",x2:"2",y1:"12",y2:"12",key:"1y58io"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}],["line",{x1:"6",x2:"6.01",y1:"16",y2:"16",key:"sgf278"}],["line",{x1:"10",x2:"10.01",y1:"16",y2:"16",key:"1l4acy"}]],eG=ht("hard-drive",gie);const vie=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],eS=ht("image",vie);const xie=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],yie=ht("info",xie);const bie=[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]],_ie=ht("italic",bie);const Sie=[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]],wie=ht("key",Sie);const Mie=[["path",{d:"M10 8h.01",key:"1r9ogq"}],["path",{d:"M12 12h.01",key:"1mp3jc"}],["path",{d:"M14 8h.01",key:"1primd"}],["path",{d:"M16 12h.01",key:"1l6xoz"}],["path",{d:"M18 8h.01",key:"emo2bl"}],["path",{d:"M6 8h.01",key:"x9i8wu"}],["path",{d:"M7 16h10",key:"wp8him"}],["path",{d:"M8 12h.01",key:"czm47f"}],["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}]],tG=ht("keyboard",Mie);const Eie=[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]],nG=ht("layers",Eie);const Aie=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],Tie=ht("layout-grid",Aie);const Cie=[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]],Rie=ht("link",Cie);const Pie=[["path",{d:"M11 5h10",key:"1cz7ny"}],["path",{d:"M11 12h10",key:"1438ji"}],["path",{d:"M11 19h10",key:"11t30w"}],["path",{d:"M4 4h1v5",key:"10yrso"}],["path",{d:"M4 9h2",key:"r1h2o0"}],["path",{d:"M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02",key:"xtkcd5"}]],Die=ht("list-ordered",Pie);const Nie=[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]],iG=ht("list",Nie);const Oie=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],jr=ht("loader-circle",Oie);const Lie=[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]],oF=ht("log-in",Lie);const kie=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],Iie=ht("log-out",kie);const Uie=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]],Fie=ht("maximize-2",Uie);const zie=[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]],Bie=ht("minimize-2",zie);const jie=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],Hie=ht("moon",jie);const Vie=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],Yb=ht("package",Vie);const Gie=[["path",{d:"M13 21h8",key:"1jsn5i"}],["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}]],$ie=ht("pen-line",Gie);const Wie=[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]],lF=ht("pencil",Wie);const qie=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]],Kb=ht("plus",qie);const Xie=[["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"143wyd"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}],["rect",{x:"6",y:"14",width:"12",height:"8",rx:"1",key:"1ue0tg"}]],nf=ht("printer",Xie);const Yie=[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]],Kie=ht("qr-code",Yie);const Zie=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],EP=ht("refresh-cw",Zie);const Jie=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],AP=ht("rotate-ccw",Jie);const Qie=[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]],TP=ht("save",Qie);const ere=[["path",{d:"M3 7V5a2 2 0 0 1 2-2h2",key:"aa7l1z"}],["path",{d:"M17 3h2a2 2 0 0 1 2 2v2",key:"4qcy5o"}],["path",{d:"M21 17v2a2 2 0 0 1-2 2h-2",key:"6vwrx8"}],["path",{d:"M7 21H5a2 2 0 0 1-2-2v-2",key:"ioqczr"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["path",{d:"m16 16-1.9-1.9",key:"1dq9hf"}]],tre=ht("scan-search",ere);const nre=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],rG=ht("search",nre);const ire=[["path",{d:"M14 17H5",key:"gfn3mx"}],["path",{d:"M19 7h-9",key:"6i9tg"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]],rre=ht("settings-2",ire);const are=[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],sre=ht("settings",are);const ore=[["path",{d:"M21 10.656V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h12.344",key:"2acyp4"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],Zb=ht("square-check-big",ore);const lre=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],w2=ht("square",lre);const cre=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],c0=ht("star",cre);const ure=[["path",{d:"M21 9a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 15 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2z",key:"1dfntj"}],["path",{d:"M15 3v5a1 1 0 0 0 1 1h5",key:"6s6qgf"}]],dre=ht("sticky-note",ure);const fre=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],hre=ht("sun",fre);const pre=[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]],u0=ht("tag",pre);const mre=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M17 12H7",key:"16if0g"}],["path",{d:"M19 19H5",key:"vjpgq2"}]],gre=ht("text-align-center",mre);const vre=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M21 19H7",key:"4cu937"}]],xre=ht("text-align-end",vre);const yre=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]],bre=ht("text-align-start",yre);const _re=[["path",{d:"M14 4v10.54a4 4 0 1 1-4 0V4a2 2 0 0 1 4 0Z",key:"17jzev"}]],NE=ht("thermometer",_re);const Sre=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],rf=ht("trash-2",Sre);const wre=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],Mre=ht("triangle-alert",wre);const Ere=[["path",{d:"M6 4v6a6 6 0 0 0 12 0V4",key:"9kb039"}],["line",{x1:"4",x2:"20",y1:"20",y2:"20",key:"nun2al"}]],Are=ht("underline",Ere);const Tre=[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]],Cre=ht("unlink",Tre);const Rre=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Jb=ht("upload",Rre);const Pre=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],cF=ht("user",Pre);const Dre=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],Nre=ht("wifi-off",Dre);const Ore=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],Lre=ht("wifi",Ore);const kre=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],zi=ht("x",kre);const Ire=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],Ure=ht("zoom-in",Ire);const Fre=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]],zre=ht("zoom-out",Fre),aG=R.createContext(void 0);function Bre({children:t}){const[e,n]=R.useState(()=>{const a=localStorage.getItem("theme");return a||(window.matchMedia("(prefers-color-scheme: light)").matches?"light":"dark")});R.useEffect(()=>{const a=document.documentElement;e==="dark"?a.classList.add("dark"):a.classList.remove("dark"),localStorage.setItem("theme",e)},[e]);const i=()=>{n(a=>a==="dark"?"light":"dark")},r=a=>{n(a)};return S.jsx(aG.Provider,{value:{theme:e,toggleTheme:i,setTheme:r},children:t})}function jre(){const t=R.useContext(aG);if(!t)throw new Error("useTheme must be used within a ThemeProvider");return t}function ki({children:t,className:e="",onClick:n,onContextMenu:i}){return S.jsx("div",{className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary ${e}`,onClick:n,onContextMenu:i,children:t})}function Eb({children:t,className:e=""}){return S.jsx("div",{className:`px-6 py-4 border-b border-bambu-dark-tertiary ${e}`,children:t})}function Qi({children:t,className:e=""}){return S.jsx("div",{className:`p-6 ${e}`,children:t})}const Hre=[{category:"Navigation",items:[{keys:["1"],description:"Go to Printers"},{keys:["2"],description:"Go to Archives"},{keys:["3"],description:"Go to Statistics"},{keys:["4"],description:"Go to Cloud Profiles"},{keys:["5"],description:"Go to Settings"}]},{category:"Archives",items:[{keys:["/"],description:"Focus search"},{keys:["U"],description:"Open upload modal"},{keys:["Esc"],description:"Clear selection / blur input"},{keys:["Right-click"],description:"Context menu on cards"}]},{category:"General",items:[{keys:["?"],description:"Show this help"}]}];function uF({children:t}){return S.jsx("kbd",{className:"px-2 py-1 text-xs font-mono bg-bambu-dark border border-bambu-dark-tertiary rounded text-white",children:t})}function Vre({onClose:t}){return S.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",onClick:t,children:S.jsx(ki,{className:"w-full max-w-md",onClick:e=>e.stopPropagation(),children:S.jsxs(Qi,{className:"p-0",children:[S.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-bambu-dark-tertiary",children:[S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(tG,{className:"w-5 h-5 text-bambu-green"}),S.jsx("h2",{className:"text-xl font-semibold text-white",children:"Keyboard Shortcuts"})]}),S.jsx("button",{onClick:t,className:"text-bambu-gray hover:text-white transition-colors",children:S.jsx(zi,{className:"w-5 h-5"})})]}),S.jsx("div",{className:"p-4 space-y-6 max-h-[60vh] overflow-y-auto",children:Hre.map(e=>S.jsxs("div",{children:[S.jsx("h3",{className:"text-sm font-medium text-bambu-gray mb-3",children:e.category}),S.jsx("div",{className:"space-y-2",children:e.items.map(n=>S.jsxs("div",{className:"flex items-center justify-between",children:[S.jsx("span",{className:"text-white text-sm",children:n.description}),S.jsx("div",{className:"flex gap-1",children:n.keys.map(i=>S.jsx(uF,{children:i},i))})]},n.description))})]},e.category))}),S.jsx("div",{className:"p-4 border-t border-bambu-dark-tertiary",children:S.jsxs("p",{className:"text-xs text-bambu-gray text-center",children:["Press ",S.jsx(uF,{children:"Esc"})," or click outside to close"]})})]})})})}const Gre=[{to:"/",icon:nf,label:"Printers"},{to:"/archives",icon:pne,label:"Archives"},{to:"/stats",icon:Ene,label:"Statistics"},{to:"/cloud",icon:MP,label:"Cloud Profiles"},{to:"/settings",icon:sre,label:"Settings"}];function $re(){const t=PV(),{theme:e,toggleTheme:n}=jre(),[i,r]=R.useState(()=>localStorage.getItem("sidebarExpanded")!=="false"),[a,s]=R.useState(!1);R.useEffect(()=>{localStorage.setItem("sidebarExpanded",String(i))},[i]);const o=R.useCallback(l=>{const c=l.target;if(!(c.tagName==="INPUT"||c.tagName==="TEXTAREA"||c.isContentEditable)&&!l.metaKey&&!l.ctrlKey&&!l.altKey)switch(l.key){case"1":l.preventDefault(),t("/");break;case"2":l.preventDefault(),t("/archives");break;case"3":l.preventDefault(),t("/stats");break;case"4":l.preventDefault(),t("/cloud");break;case"5":l.preventDefault(),t("/settings");break;case"?":l.preventDefault(),s(!0);break;case"Escape":s(!1);break}},[t]);return R.useEffect(()=>(document.addEventListener("keydown",o),()=>document.removeEventListener("keydown",o)),[o]),S.jsxs("div",{className:"flex min-h-screen",children:[S.jsxs("aside",{className:`${i?"w-64":"w-16"} bg-bambu-dark-secondary border-r border-bambu-dark-tertiary flex flex-col fixed inset-y-0 left-0 z-30 transition-all duration-300`,children:[S.jsx("div",{className:"p-4 border-b border-bambu-dark-tertiary flex items-center justify-center overflow-hidden",children:S.jsx("div",{className:`${i?"":"w-10 h-10 overflow-hidden"}`,children:S.jsx("img",{src:e==="dark"?"/img/bambusy_logo_dark.png":"/img/bambusy_logo_light.png",alt:"Bambusy",className:i?"h-16 w-auto":"h-10 w-auto max-w-none"})})}),S.jsx("nav",{className:"flex-1 p-2",children:S.jsx("ul",{className:"space-y-2",children:Gre.map(({to:l,icon:c,label:d})=>S.jsx("li",{children:S.jsxs(FV,{to:l,className:({isActive:f})=>`flex items-center ${i?"gap-3 px-4":"justify-center px-2"} py-3 rounded-lg transition-colors ${f?"bg-bambu-green text-white":"text-bambu-gray-light hover:bg-bambu-dark-tertiary hover:text-white"}`,title:i?void 0:d,children:[S.jsx(c,{className:"w-5 h-5 flex-shrink-0"}),i&&S.jsx("span",{children:d})]})},l))})}),S.jsx("button",{onClick:()=>r(!i),className:"p-2 mx-2 mb-2 rounded-lg hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray-light hover:text-white flex items-center justify-center",title:i?"Collapse sidebar":"Expand sidebar",children:i?S.jsx(tf,{className:"w-5 h-5"}):S.jsx(Wp,{className:"w-5 h-5"})}),S.jsx("div",{className:"p-2 border-t border-bambu-dark-tertiary",children:S.jsxs("div",{className:`flex items-center ${i?"justify-between px-2":"flex-col gap-2"}`,children:[i&&S.jsx("span",{className:"text-sm text-bambu-gray",children:"v0.1.2"}),S.jsxs("div",{className:"flex items-center gap-1",children:[S.jsx("a",{href:"https://github.com/maziggy/bambusy",target:"_blank",rel:"noopener noreferrer",className:"p-2 rounded-lg hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray-light hover:text-white",title:"View on GitHub",children:S.jsx(fie,{className:"w-5 h-5"})}),S.jsx("button",{onClick:()=>s(!0),className:"p-2 rounded-lg hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray-light hover:text-white",title:"Keyboard shortcuts (?)",children:S.jsx(tG,{className:"w-5 h-5"})}),S.jsx("button",{onClick:n,className:"p-2 rounded-lg hover:bg-bambu-dark-tertiary transition-colors text-bambu-gray-light hover:text-white",title:e==="dark"?"Switch to light mode":"Switch to dark mode",children:e==="dark"?S.jsx(hre,{className:"w-5 h-5"}):S.jsx(Hie,{className:"w-5 h-5"})})]})]})})]}),S.jsx("main",{className:`flex-1 bg-bambu-dark overflow-auto ${i?"ml-64":"ml-16"} transition-all duration-300`,children:S.jsx(Wee,{})}),a&&S.jsx(Vre,{onClose:()=>s(!1)})]})}const Yr="/api/v1";async function mn(t,e={}){const n=await fetch(`${Yr}${t}`,{...e,headers:{"Content-Type":"application/json",...e.headers}});if(!n.ok){const i=await n.json().catch(()=>({}));throw new Error(i.detail||`HTTP ${n.status}`)}return n.json()}const Tt={getPrinters:()=>mn("/printers/"),getPrinter:t=>mn(`/printers/${t}`),createPrinter:t=>mn("/printers/",{method:"POST",body:JSON.stringify(t)}),updatePrinter:(t,e)=>mn(`/printers/${t}`,{method:"PATCH",body:JSON.stringify(e)}),deletePrinter:t=>mn(`/printers/${t}`,{method:"DELETE"}),getPrinterStatus:t=>mn(`/printers/${t}/status`),connectPrinter:t=>mn(`/printers/${t}/connect`,{method:"POST"}),disconnectPrinter:t=>mn(`/printers/${t}/disconnect`,{method:"POST"}),getPrinterFiles:(t,e="/")=>mn(`/printers/${t}/files?path=${encodeURIComponent(e)}`),getPrinterFileDownloadUrl:(t,e)=>`${Yr}/printers/${t}/files/download?path=${encodeURIComponent(e)}`,deletePrinterFile:(t,e)=>mn(`/printers/${t}/files?path=${encodeURIComponent(e)}`,{method:"DELETE"}),getPrinterStorage:t=>mn(`/printers/${t}/storage`),getArchives:(t,e=50,n=0)=>{const i=new URLSearchParams;return t&&i.set("printer_id",String(t)),i.set("limit",String(e)),i.set("offset",String(n)),mn(`/archives/?${i}`)},getArchive:t=>mn(`/archives/${t}`),updateArchive:(t,e)=>mn(`/archives/${t}`,{method:"PATCH",body:JSON.stringify(e)}),toggleFavorite:t=>mn(`/archives/${t}/favorite`,{method:"POST"}),deleteArchive:t=>mn(`/archives/${t}`,{method:"DELETE"}),getArchiveStats:()=>mn("/archives/stats"),getArchiveThumbnail:t=>`${Yr}/archives/${t}/thumbnail`,getArchiveDownload:t=>`${Yr}/archives/${t}/download`,getArchiveGcode:t=>`${Yr}/archives/${t}/gcode`,getArchiveTimelapse:t=>`${Yr}/archives/${t}/timelapse`,scanArchiveTimelapse:t=>mn(`/archives/${t}/timelapse/scan`,{method:"POST"}),uploadArchiveTimelapse:async(t,e)=>{const n=new FormData;n.append("file",e);const i=await fetch(`${Yr}/archives/${t}/timelapse/upload`,{method:"POST",body:n});if(!i.ok){const r=await i.json().catch(()=>({}));throw new Error(r.detail||`HTTP ${i.status}`)}return i.json()},getArchivePhotoUrl:(t,e)=>`${Yr}/archives/${t}/photos/${encodeURIComponent(e)}`,uploadArchivePhoto:async(t,e)=>{const n=new FormData;n.append("file",e);const i=await fetch(`${Yr}/archives/${t}/photos`,{method:"POST",body:n});if(!i.ok){const r=await i.json().catch(()=>({}));throw new Error(r.detail||`HTTP ${i.status}`)}return i.json()},deleteArchivePhoto:(t,e)=>mn(`/archives/${t}/photos/${encodeURIComponent(e)}`,{method:"DELETE"}),getArchiveQRCodeUrl:(t,e=200)=>`${Yr}/archives/${t}/qrcode?size=${e}`,getArchiveCapabilities:t=>mn(`/archives/${t}/capabilities`),getArchiveProjectPage:t=>mn(`/archives/${t}/project-page`),updateArchiveProjectPage:(t,e)=>mn(`/archives/${t}/project-page`,{method:"PATCH",body:JSON.stringify(e)}),getArchiveProjectImageUrl:(t,e)=>`${Yr}/archives/${t}/project-image/${encodeURIComponent(e)}`,getArchiveForSlicer:(t,e)=>`${Yr}/archives/${t}/file/${encodeURIComponent(e.endsWith(".3mf")?e:e+".3mf")}`,reprintArchive:(t,e)=>mn(`/archives/${t}/reprint?printer_id=${e}`,{method:"POST"}),uploadArchive:async(t,e)=>{const n=new FormData;n.append("file",t);const i=e?`${Yr}/archives/upload?printer_id=${e}`:`${Yr}/archives/upload`,r=await fetch(i,{method:"POST",body:n});if(!r.ok){const a=await r.json().catch(()=>({}));throw new Error(a.detail||`HTTP ${r.status}`)}return r.json()},uploadArchivesBulk:async(t,e)=>{const n=new FormData;t.forEach(a=>n.append("files",a));const i=e?`${Yr}/archives/upload-bulk?printer_id=${e}`:`${Yr}/archives/upload-bulk`,r=await fetch(i,{method:"POST",body:n});if(!r.ok){const a=await r.json().catch(()=>({}));throw new Error(a.detail||`HTTP ${r.status}`)}return r.json()},getSettings:()=>mn("/settings/"),updateSettings:t=>mn("/settings/",{method:"PUT",body:JSON.stringify(t)}),resetSettings:()=>mn("/settings/reset",{method:"POST"}),getCloudStatus:()=>mn("/cloud/status"),cloudLogin:(t,e,n="global")=>mn("/cloud/login",{method:"POST",body:JSON.stringify({email:t,password:e,region:n})}),cloudVerify:(t,e)=>mn("/cloud/verify",{method:"POST",body:JSON.stringify({email:t,code:e})}),cloudSetToken:t=>mn("/cloud/token",{method:"POST",body:JSON.stringify({access_token:t})}),cloudLogout:()=>mn("/cloud/logout",{method:"POST"}),getCloudSettings:(t="01.09.00.00")=>mn(`/cloud/settings?version=${t}`),getCloudSettingDetail:t=>mn(`/cloud/settings/${t}`),getCloudDevices:()=>mn("/cloud/devices")};function At({variant:t="primary",size:e="md",className:n="",children:i,...r}){const a="inline-flex items-center justify-center font-medium rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-bambu-dark disabled:opacity-50 disabled:cursor-not-allowed",s={primary:"bg-bambu-green hover:bg-bambu-green-light text-white focus:ring-bambu-green",secondary:"bg-bambu-dark-tertiary hover:bg-bambu-gray-dark text-white focus:ring-bambu-gray",danger:"bg-red-600 hover:bg-red-700 text-white focus:ring-red-500",ghost:"bg-transparent hover:bg-bambu-dark-tertiary text-bambu-gray-light hover:text-white"},o={sm:"px-3 py-1.5 text-sm gap-1.5",md:"px-4 py-2 text-sm gap-2",lg:"px-6 py-3 text-base gap-2"};return S.jsx("button",{className:`${a} ${s[t]} ${o[e]} ${n}`,...r,children:i})}function qp({title:t,message:e,confirmText:n="Confirm",cancelText:i="Cancel",variant:r="default",onConfirm:a,onCancel:s}){R.useEffect(()=>{const c=d=>{d.key==="Escape"&&s()};return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[s]);const l={danger:{icon:"text-red-400",button:"bg-red-500 hover:bg-red-600"},warning:{icon:"text-yellow-400",button:"bg-yellow-500 hover:bg-yellow-600"},default:{icon:"text-bambu-green",button:"bg-bambu-green hover:bg-bambu-green-dark"}}[r];return S.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",onClick:s,children:S.jsx(ki,{className:"w-full max-w-md",onClick:c=>c.stopPropagation(),children:S.jsxs(Qi,{className:"p-6",children:[S.jsxs("div",{className:"flex items-start gap-4",children:[S.jsx("div",{className:`p-2 rounded-full bg-bambu-dark ${l.icon}`,children:S.jsx(Mre,{className:"w-6 h-6"})}),S.jsxs("div",{className:"flex-1",children:[S.jsx("h3",{className:"text-lg font-semibold text-white mb-2",children:t}),S.jsx("p",{className:"text-bambu-gray text-sm",children:e})]})]}),S.jsxs("div",{className:"flex gap-3 mt-6",children:[S.jsx(At,{variant:"secondary",onClick:s,className:"flex-1",children:i}),S.jsx(At,{onClick:a,className:`flex-1 ${l.button}`,children:n})]})]})})})}const sG=R.createContext(void 0);function Mf(){const t=R.useContext(sG);if(!t)throw new Error("useToast must be used within a ToastProvider");return t}const Wre={success:S.jsx(wP,{className:"w-5 h-5 text-green-400"}),error:S.jsx(JV,{className:"w-5 h-5 text-red-400"}),warning:S.jsx(SP,{className:"w-5 h-5 text-yellow-400"}),info:S.jsx(yie,{className:"w-5 h-5 text-blue-400"})},qre={success:"bg-green-500/10 border-green-500/30",error:"bg-red-500/10 border-red-500/30",warning:"bg-yellow-500/10 border-yellow-500/30",info:"bg-blue-500/10 border-blue-500/30"};function Xre({children:t}){const[e,n]=R.useState([]),i=R.useCallback((a,s="success")=>{const o=Math.random().toString(36).substr(2,9);n(l=>[...l,{id:o,message:a,type:s}]),setTimeout(()=>{n(l=>l.filter(c=>c.id!==o))},3e3)},[]),r=R.useCallback(a=>{n(s=>s.filter(o=>o.id!==a))},[]);return S.jsxs(sG.Provider,{value:{showToast:i},children:[t,S.jsx("div",{className:"fixed bottom-4 right-4 z-50 flex flex-col gap-2",children:e.map(a=>S.jsxs("div",{className:`flex items-center gap-3 px-4 py-3 rounded-lg border shadow-lg backdrop-blur-sm animate-slide-in ${qre[a.type]}`,children:[Wre[a.type],S.jsx("span",{className:"text-white text-sm",children:a.message}),S.jsx("button",{onClick:()=>r(a.id),className:"ml-2 text-bambu-gray hover:text-white transition-colors",children:S.jsx(zi,{className:"w-4 h-4"})})]},a.id))})]})}function Yre(t){if(t===0)return"0 B";const e=1024,n=["B","KB","MB","GB"],i=Math.floor(Math.log(t)/Math.log(e));return`${parseFloat((t/Math.pow(e,i)).toFixed(1))} ${n[i]}`}function Kre(t){if(t===0)return"0 GB";const e=t/(1024*1024*1024);return e>=1?`${e.toFixed(1)} GB`:`${(t/(1024*1024)).toFixed(0)} MB`}function Zre(t,e){if(e)return lie;switch(t.toLowerCase().split(".").pop()||""){case"3mf":return Qne;case"gcode":return Zh;case"mp4":case"avi":return zg;case"png":case"jpg":case"jpeg":return eS;default:return QV}}function Jre({printerId:t,printerName:e,onClose:n}){const{showToast:i}=Mf(),r=ka(),[a,s]=R.useState("/"),[o,l]=R.useState(null),[c,d]=R.useState(""),[f,p]=R.useState(null);R.useEffect(()=>{const C=U=>{U.key==="Escape"&&n()};return window.addEventListener("keydown",C),()=>window.removeEventListener("keydown",C)},[n]);const{data:m,isLoading:y,refetch:b}=Zi({queryKey:["printerFiles",t,a],queryFn:()=>Tt.getPrinterFiles(t,a)}),{data:x}=Zi({queryKey:["printerStorage",t],queryFn:()=>Tt.getPrinterStorage(t),staleTime:3e4}),v=Ji({mutationFn:C=>Tt.deletePrinterFile(t,C),onSuccess:(C,U)=>{i(`Deleted: ${U.split("/").pop()}`),r.invalidateQueries({queryKey:["printerFiles",t]}),l(null)},onError:C=>{i(`Delete failed: ${C.message}`,"error")}}),w=C=>{s(C),l(null)},M=()=>{if(a==="/")return;const C=a.split("/").filter(Boolean);C.pop(),s(C.length?"/"+C.join("/"):"/"),l(null)},A=C=>{window.open(Tt.getPrinterFileDownloadUrl(t,C),"_blank")},T=C=>{p(C)},D=[{path:"/",label:"Root"},{path:"/cache",label:"Cache"},{path:"/model",label:"Models"},{path:"/timelapse",label:"Timelapse"}];return S.jsxs("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",onClick:n,children:[S.jsxs("div",{className:"w-full max-w-3xl max-h-[85vh] flex flex-col bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary overflow-hidden",onClick:C=>C.stopPropagation(),children:[S.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-bambu-dark-tertiary flex-shrink-0",children:[S.jsxs("div",{className:"flex items-center gap-3",children:[S.jsx(eG,{className:"w-5 h-5 text-bambu-green"}),S.jsxs("div",{children:[S.jsx("h2",{className:"text-lg font-semibold text-white",children:"File Manager"}),S.jsx("p",{className:"text-sm text-bambu-gray",children:e})]})]}),S.jsxs("div",{className:"flex items-center gap-4",children:[x?.used_bytes!=null&&x.used_bytes>0&&S.jsxs("div",{className:"text-sm text-bambu-gray",children:["Used: ",Kre(x.used_bytes)]}),S.jsx("button",{onClick:n,className:"text-bambu-gray hover:text-white transition-colors",children:S.jsx(zi,{className:"w-5 h-5"})})]})]}),S.jsxs("div",{className:"flex items-center gap-2 p-3 border-b border-bambu-dark-tertiary bg-bambu-dark/50 flex-shrink-0",children:[D.map(C=>S.jsx("button",{onClick:()=>{w(C.path),d("")},className:`px-3 py-1 text-sm rounded-full transition-colors ${a===C.path?"bg-bambu-green text-white":"bg-bambu-dark-tertiary text-bambu-gray hover:text-white"}`,children:C.label},C.path)),S.jsx("div",{className:"flex-1"}),S.jsxs("div",{className:"relative",children:[S.jsx(rG,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray"}),S.jsx("input",{type:"text",placeholder:"Filter files...",value:c,onChange:C=>d(C.target.value),className:"w-40 pl-8 pr-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none"})]}),S.jsx(At,{variant:"secondary",size:"sm",onClick:()=>b(),disabled:y,children:S.jsx(EP,{className:`w-4 h-4 ${y?"animate-spin":""}`})})]}),S.jsxs("div",{className:"flex items-center gap-2 px-4 py-2 bg-bambu-dark text-sm flex-shrink-0",children:[S.jsx("button",{onClick:M,disabled:a==="/",className:"p-1 rounded hover:bg-bambu-dark-tertiary disabled:opacity-50 disabled:cursor-not-allowed",children:S.jsx(tf,{className:"w-4 h-4"})}),S.jsx("span",{className:"text-bambu-gray font-mono",children:a})]}),S.jsx("div",{className:"flex-1 overflow-y-auto p-2 min-h-0",children:y?S.jsx("div",{className:"flex items-center justify-center py-12",children:S.jsx(jr,{className:"w-8 h-8 text-bambu-green animate-spin"})}):m?.files?.length?S.jsx("div",{className:"space-y-1",children:[...m.files].filter(C=>!c||C.name.toLowerCase().includes(c.toLowerCase())).sort((C,U)=>C.is_directory&&!U.is_directory?-1:!C.is_directory&&U.is_directory?1:C.name.localeCompare(U.name)).map(C=>{const U=Zre(C.name,C.is_directory),P=o===C.path;return S.jsxs("div",{className:`flex items-center gap-3 p-2 rounded-lg cursor-pointer transition-colors ${P?"bg-bambu-green/20 border border-bambu-green/50":"hover:bg-bambu-dark-tertiary"}`,onClick:()=>{C.is_directory?w(C.path):l(P?null:C.path)},children:[S.jsx(U,{className:`w-5 h-5 flex-shrink-0 ${C.is_directory?"text-bambu-green":"text-bambu-gray"}`}),S.jsx("span",{className:"flex-1 text-white truncate",children:C.name}),!C.is_directory&&S.jsx("span",{className:"text-sm text-bambu-gray",children:Yre(C.size)}),C.is_directory&&S.jsx(tf,{className:"w-4 h-4 text-bambu-gray rotate-180"})]},C.path)})}):S.jsx("div",{className:"text-center py-12 text-bambu-gray",children:"No files in this directory"})}),S.jsxs("div",{className:"flex items-center justify-between p-4 border-t border-bambu-dark-tertiary bg-bambu-dark/50 flex-shrink-0",children:[S.jsx("div",{className:"text-sm text-bambu-gray",children:c?`${m?.files?.filter(C=>C.name.toLowerCase().includes(c.toLowerCase())).length||0} of ${m?.files?.length||0} items`:`${m?.files?.length||0} items`}),S.jsxs("div",{className:"flex gap-2",children:[S.jsxs(At,{variant:"secondary",disabled:!o,onClick:()=>o&&A(o),children:[S.jsx(zd,{className:"w-4 h-4"}),"Download"]}),S.jsxs(At,{variant:"secondary",disabled:!o||v.isPending,onClick:()=>o&&T(o),className:"text-red-400 hover:text-red-300",children:[v.isPending?S.jsx(jr,{className:"w-4 h-4 animate-spin"}):S.jsx(rf,{className:"w-4 h-4"}),"Delete"]})]})]})]}),f&&S.jsx(qp,{title:"Delete File",message:`Delete "${f.split("/").pop()}"? This cannot be undone.`,confirmText:"Delete",variant:"danger",onConfirm:()=>{v.mutate(f),p(null)},onCancel:()=>p(null)})]})}function Qre(t){const e=Math.floor(t/3600),n=Math.floor(t%3600/60);return e>0?`${e}h ${n}m`:`${n}m`}function eae({url:t,printName:e}){const[n,i]=R.useState(!1),[r,a]=R.useState(!1),[s,o]=R.useState(!1);return S.jsxs(S.Fragment,{children:[S.jsx("div",{className:`w-20 h-20 flex-shrink-0 rounded-lg overflow-hidden bg-bambu-dark-tertiary flex items-center justify-center ${t&&n?"cursor-pointer":""}`,onClick:()=>t&&n&&o(!0),children:t&&!r?S.jsxs(S.Fragment,{children:[S.jsx("img",{src:t,alt:"Print preview",className:`w-full h-full object-cover ${n?"block":"hidden"}`,onLoad:()=>i(!0),onError:()=>a(!0)}),!n&&S.jsx(l0,{className:"w-8 h-8 text-bambu-gray"})]}):S.jsx(l0,{className:"w-8 h-8 text-bambu-gray"})}),s&&t&&S.jsx("div",{className:"fixed inset-0 bg-black/80 flex items-center justify-center z-50 p-8",onClick:()=>o(!1),children:S.jsxs("div",{className:"relative max-w-2xl max-h-full",children:[S.jsx("img",{src:t,alt:"Print preview",className:"max-w-full max-h-[80vh] rounded-lg shadow-2xl"}),e&&S.jsx("p",{className:"text-white text-center mt-4 text-lg",children:e})]})})]})}function tae({printer:t}){const e=ka(),[n,i]=R.useState(!1),[r,a]=R.useState(!1),[s,o]=R.useState(!1),{data:l}=Zi({queryKey:["printerStatus",t.id],queryFn:()=>Tt.getPrinterStatus(t.id),refetchInterval:3e4}),c=Ji({mutationFn:()=>Tt.deletePrinter(t.id),onSuccess:()=>{e.invalidateQueries({queryKey:["printers"]})}}),d=Ji({mutationFn:()=>Tt.connectPrinter(t.id),onSuccess:()=>{e.invalidateQueries({queryKey:["printerStatus",t.id]})}});return S.jsxs(ki,{className:"relative",children:[S.jsxs(Qi,{children:[S.jsxs("div",{className:"flex items-start justify-between mb-4",children:[S.jsxs("div",{children:[S.jsx("h3",{className:"text-lg font-semibold text-white",children:t.name}),S.jsx("p",{className:"text-sm text-bambu-gray",children:t.model||"Unknown Model"})]}),S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsxs("span",{className:`flex items-center gap-1.5 px-2 py-1 rounded-full text-xs ${l?.connected?"bg-bambu-green/20 text-bambu-green":"bg-red-500/20 text-red-400"}`,children:[l?.connected?S.jsx(Lre,{className:"w-3 h-3"}):S.jsx(Nre,{className:"w-3 h-3"}),l?.connected?"Connected":"Offline"]}),S.jsxs("div",{className:"relative",children:[S.jsx(At,{variant:"ghost",size:"sm",onClick:()=>i(!n),children:S.jsx(qne,{className:"w-4 h-4"})}),n&&S.jsxs("div",{className:"absolute right-0 mt-2 w-48 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-10",children:[S.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm hover:bg-bambu-dark-tertiary flex items-center gap-2",onClick:()=>{d.mutate(),i(!1)},children:[S.jsx(EP,{className:"w-4 h-4"}),"Reconnect"]}),S.jsxs("button",{className:"w-full px-4 py-2 text-left text-sm text-red-400 hover:bg-bambu-dark-tertiary flex items-center gap-2",onClick:()=>{a(!0),i(!1)},children:[S.jsx(rf,{className:"w-4 h-4"}),"Delete"]})]})]})]})]}),r&&S.jsx(qp,{title:"Delete Printer",message:`Are you sure you want to delete "${t.name}"? This will also remove all connection settings.`,confirmText:"Delete",variant:"danger",onConfirm:()=>{c.mutate(),a(!1)},onCancel:()=>a(!1)}),l?.connected&&S.jsxs(S.Fragment,{children:[S.jsxs("div",{className:"mb-4",children:[S.jsx("p",{className:"text-sm text-bambu-gray mb-1",children:"Status"}),S.jsx("p",{className:"text-white font-medium capitalize",children:l.state?.toLowerCase()||"Idle"})]}),l.current_print&&l.state==="RUNNING"&&S.jsx("div",{className:"mb-4 p-3 bg-bambu-dark rounded-lg",children:S.jsxs("div",{className:"flex gap-3",children:[S.jsx(eae,{url:l.cover_url,printName:l.subtask_name||l.current_print||void 0}),S.jsxs("div",{className:"flex-1 min-w-0",children:[S.jsx("p",{className:"text-sm text-bambu-gray mb-1",children:"Printing"}),S.jsx("p",{className:"text-white text-sm mb-2 truncate",children:l.subtask_name||l.current_print}),S.jsxs("div",{className:"flex items-center justify-between text-sm",children:[S.jsx("div",{className:"flex-1 bg-bambu-dark-tertiary rounded-full h-2 mr-3",children:S.jsx("div",{className:"bg-bambu-green h-2 rounded-full transition-all",style:{width:`${l.progress||0}%`}})}),S.jsxs("span",{className:"text-white",children:[Math.round(l.progress||0),"%"]})]}),S.jsxs("div",{className:"flex items-center gap-3 mt-2 text-xs text-bambu-gray",children:[l.remaining_time!=null&&l.remaining_time>0&&S.jsxs("span",{className:"flex items-center gap-1",children:[S.jsx(Q1,{className:"w-3 h-3"}),Qre(l.remaining_time*60)]}),l.layer_num!=null&&l.total_layers!=null&&l.total_layers>0&&S.jsxs("span",{children:["Layer ",l.layer_num,"/",l.total_layers]})]})]})]})}),l.temperatures&&S.jsxs("div",{className:"grid grid-cols-3 gap-3",children:[S.jsxs("div",{className:"text-center p-2 bg-bambu-dark rounded-lg",children:[S.jsx(NE,{className:"w-4 h-4 mx-auto mb-1 text-orange-400"}),S.jsx("p",{className:"text-xs text-bambu-gray",children:"Nozzle"}),S.jsxs("p",{className:"text-sm text-white",children:[Math.round(l.temperatures.nozzle||0),"°C"]})]}),S.jsxs("div",{className:"text-center p-2 bg-bambu-dark rounded-lg",children:[S.jsx(NE,{className:"w-4 h-4 mx-auto mb-1 text-blue-400"}),S.jsx("p",{className:"text-xs text-bambu-gray",children:"Bed"}),S.jsxs("p",{className:"text-sm text-white",children:[Math.round(l.temperatures.bed||0),"°C"]})]}),l.temperatures.chamber!==void 0&&S.jsxs("div",{className:"text-center p-2 bg-bambu-dark rounded-lg",children:[S.jsx(NE,{className:"w-4 h-4 mx-auto mb-1 text-green-400"}),S.jsx("p",{className:"text-xs text-bambu-gray",children:"Chamber"}),S.jsxs("p",{className:"text-sm text-white",children:[Math.round(l.temperatures.chamber||0),"°C"]})]})]})]}),S.jsxs("div",{className:"mt-4 pt-4 border-t border-bambu-dark-tertiary flex items-center justify-between",children:[S.jsxs("div",{className:"text-xs text-bambu-gray",children:[S.jsx("p",{children:t.ip_address}),S.jsx("p",{className:"truncate",children:t.serial_number})]}),S.jsxs(At,{variant:"secondary",size:"sm",onClick:()=>o(!0),title:"Browse printer files",children:[S.jsx(eG,{className:"w-4 h-4"}),"Files"]})]})]}),s&&S.jsx(Jre,{printerId:t.id,printerName:t.name,onClose:()=>o(!1)})]})}function nae({onClose:t,onAdd:e}){const[n,i]=R.useState({name:"",serial_number:"",ip_address:"",access_code:"",model:"",auto_archive:!0});return R.useEffect(()=>{const r=a=>{a.key==="Escape"&&t()};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[t]),S.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50",onClick:t,children:S.jsx(ki,{className:"w-full max-w-md",onClick:r=>r.stopPropagation(),children:S.jsxs(Qi,{children:[S.jsx("h2",{className:"text-xl font-semibold mb-4",children:"Add Printer"}),S.jsxs("form",{onSubmit:r=>{r.preventDefault(),e(n)},className:"space-y-4",children:[S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Name"}),S.jsx("input",{type:"text",required:!0,className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:n.name,onChange:r=>i({...n,name:r.target.value}),placeholder:"My Printer"})]}),S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"IP Address"}),S.jsx("input",{type:"text",required:!0,pattern:"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}",className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:n.ip_address,onChange:r=>i({...n,ip_address:r.target.value}),placeholder:"192.168.1.100"})]}),S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Serial Number"}),S.jsx("input",{type:"text",required:!0,className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:n.serial_number,onChange:r=>i({...n,serial_number:r.target.value}),placeholder:"01P00A000000000"})]}),S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Access Code"}),S.jsx("input",{type:"password",required:!0,className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:n.access_code,onChange:r=>i({...n,access_code:r.target.value}),placeholder:"From printer settings"})]}),S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Model (optional)"}),S.jsxs("select",{className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:n.model||"",onChange:r=>i({...n,model:r.target.value}),children:[S.jsx("option",{value:"",children:"Select model..."}),S.jsxs("optgroup",{label:"H2 Series",children:[S.jsx("option",{value:"H2C",children:"H2C"}),S.jsx("option",{value:"H2D",children:"H2D"}),S.jsx("option",{value:"H2S",children:"H2S"})]}),S.jsxs("optgroup",{label:"X1 Series",children:[S.jsx("option",{value:"X1E",children:"X1E"}),S.jsx("option",{value:"X1C",children:"X1 Carbon"}),S.jsx("option",{value:"X1",children:"X1"})]}),S.jsxs("optgroup",{label:"P Series",children:[S.jsx("option",{value:"P2S",children:"P2S"}),S.jsx("option",{value:"P1S",children:"P1S"}),S.jsx("option",{value:"P1P",children:"P1P"})]}),S.jsxs("optgroup",{label:"A1 Series",children:[S.jsx("option",{value:"A1",children:"A1"}),S.jsx("option",{value:"A1 Mini",children:"A1 Mini"})]})]})]}),S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx("input",{type:"checkbox",id:"auto_archive",checked:n.auto_archive,onChange:r=>i({...n,auto_archive:r.target.checked}),className:"rounded border-bambu-dark-tertiary bg-bambu-dark text-bambu-green focus:ring-bambu-green"}),S.jsx("label",{htmlFor:"auto_archive",className:"text-sm text-bambu-gray",children:"Auto-archive completed prints"})]}),S.jsxs("div",{className:"flex gap-3 pt-4",children:[S.jsx(At,{type:"button",variant:"secondary",onClick:t,className:"flex-1",children:"Cancel"}),S.jsx(At,{type:"submit",className:"flex-1",children:"Add Printer"})]})]})]})})})}function iae(){const[t,e]=R.useState(!1),n=ka(),{data:i,isLoading:r}=Zi({queryKey:["printers"],queryFn:Tt.getPrinters}),a=Ji({mutationFn:Tt.createPrinter,onSuccess:()=>{n.invalidateQueries({queryKey:["printers"]}),e(!1)}});return S.jsxs("div",{className:"p-8",children:[S.jsxs("div",{className:"flex items-center justify-between mb-8",children:[S.jsxs("div",{children:[S.jsx("h1",{className:"text-2xl font-bold text-white",children:"Printers"}),S.jsx("p",{className:"text-bambu-gray",children:"Manage your Bambu Lab printers"})]}),S.jsxs(At,{onClick:()=>e(!0),children:[S.jsx(Kb,{className:"w-4 h-4"}),"Add Printer"]})]}),r?S.jsx("div",{className:"text-center py-12 text-bambu-gray",children:"Loading printers..."}):i?.length===0?S.jsx(ki,{children:S.jsxs(Qi,{className:"text-center py-12",children:[S.jsx("p",{className:"text-bambu-gray mb-4",children:"No printers configured yet"}),S.jsxs(At,{onClick:()=>e(!0),children:[S.jsx(Kb,{className:"w-4 h-4"}),"Add Your First Printer"]})]})}):S.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:i?.map(s=>S.jsx(tae,{printer:s},s.id))}),t&&S.jsx(nae,{onClose:()=>e(!1),onAdd:s=>a.mutate(s)})]})}const CP="181",rp={ROTATE:0,DOLLY:1,PAN:2},Jh={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},rae=0,dF=1,aae=2,oG=1,sae=2,Cl=3,Cu=0,Pa=1,Do=2,Gl=0,ap=1,fF=2,hF=3,pF=4,oae=5,Md=100,lae=101,cae=102,uae=103,dae=104,fae=200,hae=201,pae=202,mae=203,M2=204,E2=205,gae=206,vae=207,xae=208,yae=209,bae=210,_ae=211,Sae=212,wae=213,Mae=214,A2=0,T2=1,C2=2,vp=3,R2=4,P2=5,D2=6,N2=7,RP=0,Eae=1,Aae=2,yu=0,Tae=1,Cae=2,Rae=3,Pae=4,Dae=5,Nae=6,Oae=7,lG=300,xp=301,yp=302,O2=303,L2=304,tS=306,k2=1e3,Ul=1001,I2=1002,ns=1003,Lae=1004,Xx=1005,Ls=1006,OE=1007,Dd=1008,zo=1009,cG=1010,uG=1011,d0=1012,PP=1013,af=1014,Fl=1015,Xp=1016,DP=1017,NP=1018,f0=1020,dG=35902,fG=35899,hG=1021,pG=1022,lo=1023,h0=1026,p0=1027,mG=1028,OP=1029,LP=1030,kP=1031,IP=1033,Ab=33776,Tb=33777,Cb=33778,Rb=33779,U2=35840,F2=35841,z2=35842,B2=35843,j2=36196,H2=37492,V2=37496,G2=37808,$2=37809,W2=37810,q2=37811,X2=37812,Y2=37813,K2=37814,Z2=37815,J2=37816,Q2=37817,eR=37818,tR=37819,nR=37820,iR=37821,rR=36492,aR=36494,sR=36495,oR=36283,lR=36284,cR=36285,uR=36286,kae=3200,Iae=3201,gG=0,Uae=1,lu="",As="srgb",bp="srgb-linear",Qb="linear",On="srgb",oh=7680,mF=519,Fae=512,zae=513,Bae=514,vG=515,jae=516,Hae=517,Vae=518,Gae=519,gF=35044,vF="300 es",Oo=2e3,e_=2001;function xG(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}function t_(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function $ae(){const t=t_("canvas");return t.style.display="block",t}const xF={};function yF(...t){const e="THREE."+t.shift();console.log(e,...t)}function jt(...t){const e="THREE."+t.shift();console.warn(e,...t)}function wi(...t){const e="THREE."+t.shift();console.error(e,...t)}function m0(...t){const e=t.join(" ");e in xF||(xF[e]=!0,jt(...t))}function Wae(t,e,n){return new Promise(function(i,r){function a(){switch(t.clientWaitSync(e,t.SYNC_FLUSH_COMMANDS_BIT,0)){case t.WAIT_FAILED:r();break;case t.TIMEOUT_EXPIRED:setTimeout(a,n);break;default:i()}}setTimeout(a,n)})}let Ef=class{addEventListener(e,n){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(n)===-1&&i[e].push(n)}hasEventListener(e,n){const i=this._listeners;return i===void 0?!1:i[e]!==void 0&&i[e].indexOf(n)!==-1}removeEventListener(e,n){const i=this._listeners;if(i===void 0)return;const r=i[e];if(r!==void 0){const a=r.indexOf(n);a!==-1&&r.splice(a,1)}}dispatchEvent(e){const n=this._listeners;if(n===void 0)return;const i=n[e.type];if(i!==void 0){e.target=this;const r=i.slice(0);for(let a=0,s=r.length;a<s;a++)r[a].call(this,e);e.target=null}}};const Gr=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"],Pb=Math.PI/180,dR=180/Math.PI;function Q0(){const t=Math.random()*4294967295|0,e=Math.random()*4294967295|0,n=Math.random()*4294967295|0,i=Math.random()*4294967295|0;return(Gr[t&255]+Gr[t>>8&255]+Gr[t>>16&255]+Gr[t>>24&255]+"-"+Gr[e&255]+Gr[e>>8&255]+"-"+Gr[e>>16&15|64]+Gr[e>>24&255]+"-"+Gr[n&63|128]+Gr[n>>8&255]+"-"+Gr[n>>16&255]+Gr[n>>24&255]+Gr[i&255]+Gr[i>>8&255]+Gr[i>>16&255]+Gr[i>>24&255]).toLowerCase()}function on(t,e,n){return Math.max(e,Math.min(n,t))}function qae(t,e){return(t%e+e)%e}function LE(t,e,n){return(1-n)*t+n*e}function ag(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function Ma(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(t*4294967295);case Uint16Array:return Math.round(t*65535);case Uint8Array:return Math.round(t*255);case Int32Array:return Math.round(t*2147483647);case Int16Array:return Math.round(t*32767);case Int8Array:return Math.round(t*127);default:throw new Error("Invalid component type.")}}const Xae={DEG2RAD:Pb};let Jt=class yG{constructor(e=0,n=0){yG.prototype.isVector2=!0,this.x=e,this.y=n}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,n){return this.x=e,this.y=n,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const n=this.x,i=this.y,r=e.elements;return this.x=r[0]*n+r[3]*i+r[6],this.y=r[1]*n+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,n){return this.x=on(this.x,e.x,n.x),this.y=on(this.y,e.y,n.y),this}clampScalar(e,n){return this.x=on(this.x,e,n),this.y=on(this.y,e,n),this}clampLength(e,n){const i=this.length();return this.divideScalar(i||1).multiplyScalar(on(i,e,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const n=Math.sqrt(this.lengthSq()*e.lengthSq());if(n===0)return Math.PI/2;const i=this.dot(e)/n;return Math.acos(on(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const n=this.x-e.x,i=this.y-e.y;return n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this}lerpVectors(e,n,i){return this.x=e.x+(n.x-e.x)*i,this.y=e.y+(n.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this}rotateAround(e,n){const i=Math.cos(n),r=Math.sin(n),a=this.x-e.x,s=this.y-e.y;return this.x=a*i-s*r+e.x,this.y=a*r+s*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},sf=class{constructor(e=0,n=0,i=0,r=1){this.isQuaternion=!0,this._x=e,this._y=n,this._z=i,this._w=r}static slerpFlat(e,n,i,r,a,s,o){let l=i[r+0],c=i[r+1],d=i[r+2],f=i[r+3],p=a[s+0],m=a[s+1],y=a[s+2],b=a[s+3];if(o<=0){e[n+0]=l,e[n+1]=c,e[n+2]=d,e[n+3]=f;return}if(o>=1){e[n+0]=p,e[n+1]=m,e[n+2]=y,e[n+3]=b;return}if(f!==b||l!==p||c!==m||d!==y){let x=l*p+c*m+d*y+f*b;x<0&&(p=-p,m=-m,y=-y,b=-b,x=-x);let v=1-o;if(x<.9995){const w=Math.acos(x),M=Math.sin(w);v=Math.sin(v*w)/M,o=Math.sin(o*w)/M,l=l*v+p*o,c=c*v+m*o,d=d*v+y*o,f=f*v+b*o}else{l=l*v+p*o,c=c*v+m*o,d=d*v+y*o,f=f*v+b*o;const w=1/Math.sqrt(l*l+c*c+d*d+f*f);l*=w,c*=w,d*=w,f*=w}}e[n]=l,e[n+1]=c,e[n+2]=d,e[n+3]=f}static multiplyQuaternionsFlat(e,n,i,r,a,s){const o=i[r],l=i[r+1],c=i[r+2],d=i[r+3],f=a[s],p=a[s+1],m=a[s+2],y=a[s+3];return e[n]=o*y+d*f+l*m-c*p,e[n+1]=l*y+d*p+c*f-o*m,e[n+2]=c*y+d*m+o*p-l*f,e[n+3]=d*y-o*f-l*p-c*m,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,n,i,r){return this._x=e,this._y=n,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,n=!0){const i=e._x,r=e._y,a=e._z,s=e._order,o=Math.cos,l=Math.sin,c=o(i/2),d=o(r/2),f=o(a/2),p=l(i/2),m=l(r/2),y=l(a/2);switch(s){case"XYZ":this._x=p*d*f+c*m*y,this._y=c*m*f-p*d*y,this._z=c*d*y+p*m*f,this._w=c*d*f-p*m*y;break;case"YXZ":this._x=p*d*f+c*m*y,this._y=c*m*f-p*d*y,this._z=c*d*y-p*m*f,this._w=c*d*f+p*m*y;break;case"ZXY":this._x=p*d*f-c*m*y,this._y=c*m*f+p*d*y,this._z=c*d*y+p*m*f,this._w=c*d*f-p*m*y;break;case"ZYX":this._x=p*d*f-c*m*y,this._y=c*m*f+p*d*y,this._z=c*d*y-p*m*f,this._w=c*d*f+p*m*y;break;case"YZX":this._x=p*d*f+c*m*y,this._y=c*m*f+p*d*y,this._z=c*d*y-p*m*f,this._w=c*d*f-p*m*y;break;case"XZY":this._x=p*d*f-c*m*y,this._y=c*m*f-p*d*y,this._z=c*d*y+p*m*f,this._w=c*d*f+p*m*y;break;default:jt("Quaternion: .setFromEuler() encountered an unknown order: "+s)}return n===!0&&this._onChangeCallback(),this}setFromAxisAngle(e,n){const i=n/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const n=e.elements,i=n[0],r=n[4],a=n[8],s=n[1],o=n[5],l=n[9],c=n[2],d=n[6],f=n[10],p=i+o+f;if(p>0){const m=.5/Math.sqrt(p+1);this._w=.25/m,this._x=(d-l)*m,this._y=(a-c)*m,this._z=(s-r)*m}else if(i>o&&i>f){const m=2*Math.sqrt(1+i-o-f);this._w=(d-l)/m,this._x=.25*m,this._y=(r+s)/m,this._z=(a+c)/m}else if(o>f){const m=2*Math.sqrt(1+o-i-f);this._w=(a-c)/m,this._x=(r+s)/m,this._y=.25*m,this._z=(l+d)/m}else{const m=2*Math.sqrt(1+f-i-o);this._w=(s-r)/m,this._x=(a+c)/m,this._y=(l+d)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(e,n){let i=e.dot(n)+1;return i<1e-8?(i=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*n.z-e.z*n.y,this._y=e.z*n.x-e.x*n.z,this._z=e.x*n.y-e.y*n.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(on(this.dot(e),-1,1)))}rotateTowards(e,n){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,n/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,n){const i=e._x,r=e._y,a=e._z,s=e._w,o=n._x,l=n._y,c=n._z,d=n._w;return this._x=i*d+s*o+r*c-a*l,this._y=r*d+s*l+a*o-i*c,this._z=a*d+s*c+i*l-r*o,this._w=s*d-i*o-r*l-a*c,this._onChangeCallback(),this}slerp(e,n){if(n<=0)return this;if(n>=1)return this.copy(e);let i=e._x,r=e._y,a=e._z,s=e._w,o=this.dot(e);o<0&&(i=-i,r=-r,a=-a,s=-s,o=-o);let l=1-n;if(o<.9995){const c=Math.acos(o),d=Math.sin(c);l=Math.sin(l*c)/d,n=Math.sin(n*c)/d,this._x=this._x*l+i*n,this._y=this._y*l+r*n,this._z=this._z*l+a*n,this._w=this._w*l+s*n,this._onChangeCallback()}else this._x=this._x*l+i*n,this._y=this._y*l+r*n,this._z=this._z*l+a*n,this._w=this._w*l+s*n,this.normalize();return this}slerpQuaternions(e,n,i){return this.copy(e).slerp(n,i)}random(){const e=2*Math.PI*Math.random(),n=2*Math.PI*Math.random(),i=Math.random(),r=Math.sqrt(1-i),a=Math.sqrt(i);return this.set(r*Math.sin(e),r*Math.cos(e),a*Math.sin(n),a*Math.cos(n))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,n=0){return this._x=e[n],this._y=e[n+1],this._z=e[n+2],this._w=e[n+3],this._onChangeCallback(),this}toArray(e=[],n=0){return e[n]=this._x,e[n+1]=this._y,e[n+2]=this._z,e[n+3]=this._w,e}fromBufferAttribute(e,n){return this._x=e.getX(n),this._y=e.getY(n),this._z=e.getZ(n),this._w=e.getW(n),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},Ge=class bG{constructor(e=0,n=0,i=0){bG.prototype.isVector3=!0,this.x=e,this.y=n,this.z=i}set(e,n,i){return i===void 0&&(i=this.z),this.x=e,this.y=n,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this.z=e.z+n.z,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this.z+=e.z*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this.z=e.z-n.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,n){return this.x=e.x*n.x,this.y=e.y*n.y,this.z=e.z*n.z,this}applyEuler(e){return this.applyQuaternion(bF.setFromEuler(e))}applyAxisAngle(e,n){return this.applyQuaternion(bF.setFromAxisAngle(e,n))}applyMatrix3(e){const n=this.x,i=this.y,r=this.z,a=e.elements;return this.x=a[0]*n+a[3]*i+a[6]*r,this.y=a[1]*n+a[4]*i+a[7]*r,this.z=a[2]*n+a[5]*i+a[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const n=this.x,i=this.y,r=this.z,a=e.elements,s=1/(a[3]*n+a[7]*i+a[11]*r+a[15]);return this.x=(a[0]*n+a[4]*i+a[8]*r+a[12])*s,this.y=(a[1]*n+a[5]*i+a[9]*r+a[13])*s,this.z=(a[2]*n+a[6]*i+a[10]*r+a[14])*s,this}applyQuaternion(e){const n=this.x,i=this.y,r=this.z,a=e.x,s=e.y,o=e.z,l=e.w,c=2*(s*r-o*i),d=2*(o*n-a*r),f=2*(a*i-s*n);return this.x=n+l*c+s*f-o*d,this.y=i+l*d+o*c-a*f,this.z=r+l*f+a*d-s*c,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const n=this.x,i=this.y,r=this.z,a=e.elements;return this.x=a[0]*n+a[4]*i+a[8]*r,this.y=a[1]*n+a[5]*i+a[9]*r,this.z=a[2]*n+a[6]*i+a[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,n){return this.x=on(this.x,e.x,n.x),this.y=on(this.y,e.y,n.y),this.z=on(this.z,e.z,n.z),this}clampScalar(e,n){return this.x=on(this.x,e,n),this.y=on(this.y,e,n),this.z=on(this.z,e,n),this}clampLength(e,n){const i=this.length();return this.divideScalar(i||1).multiplyScalar(on(i,e,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this.z+=(e.z-this.z)*n,this}lerpVectors(e,n,i){return this.x=e.x+(n.x-e.x)*i,this.y=e.y+(n.y-e.y)*i,this.z=e.z+(n.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,n){const i=e.x,r=e.y,a=e.z,s=n.x,o=n.y,l=n.z;return this.x=r*l-a*o,this.y=a*s-i*l,this.z=i*o-r*s,this}projectOnVector(e){const n=e.lengthSq();if(n===0)return this.set(0,0,0);const i=e.dot(this)/n;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return kE.copy(this).projectOnVector(e),this.sub(kE)}reflect(e){return this.sub(kE.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const n=Math.sqrt(this.lengthSq()*e.lengthSq());if(n===0)return Math.PI/2;const i=this.dot(e)/n;return Math.acos(on(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const n=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return n*n+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,n,i){const r=Math.sin(n)*e;return this.x=r*Math.sin(i),this.y=Math.cos(n)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,n,i){return this.x=e*Math.sin(n),this.y=i,this.z=e*Math.cos(n),this}setFromMatrixPosition(e){const n=e.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this}setFromMatrixScale(e){const n=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=n,this.y=i,this.z=r,this}setFromMatrixColumn(e,n){return this.fromArray(e.elements,n*4)}setFromMatrix3Column(e,n){return this.fromArray(e.elements,n*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this.z=e[n+2],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e[n+2]=this.z,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this.z=e.getZ(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=Math.random()*Math.PI*2,n=Math.random()*2-1,i=Math.sqrt(1-n*n);return this.x=i*Math.cos(e),this.y=n,this.z=i*Math.sin(e),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}};const kE=new Ge,bF=new sf;let tn=class _G{constructor(e,n,i,r,a,s,o,l,c){_G.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,n,i,r,a,s,o,l,c)}set(e,n,i,r,a,s,o,l,c){const d=this.elements;return d[0]=e,d[1]=r,d[2]=o,d[3]=n,d[4]=a,d[5]=l,d[6]=i,d[7]=s,d[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const n=this.elements,i=e.elements;return n[0]=i[0],n[1]=i[1],n[2]=i[2],n[3]=i[3],n[4]=i[4],n[5]=i[5],n[6]=i[6],n[7]=i[7],n[8]=i[8],this}extractBasis(e,n,i){return e.setFromMatrix3Column(this,0),n.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const n=e.elements;return this.set(n[0],n[4],n[8],n[1],n[5],n[9],n[2],n[6],n[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,n){const i=e.elements,r=n.elements,a=this.elements,s=i[0],o=i[3],l=i[6],c=i[1],d=i[4],f=i[7],p=i[2],m=i[5],y=i[8],b=r[0],x=r[3],v=r[6],w=r[1],M=r[4],A=r[7],T=r[2],D=r[5],C=r[8];return a[0]=s*b+o*w+l*T,a[3]=s*x+o*M+l*D,a[6]=s*v+o*A+l*C,a[1]=c*b+d*w+f*T,a[4]=c*x+d*M+f*D,a[7]=c*v+d*A+f*C,a[2]=p*b+m*w+y*T,a[5]=p*x+m*M+y*D,a[8]=p*v+m*A+y*C,this}multiplyScalar(e){const n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=e,n[4]*=e,n[7]*=e,n[2]*=e,n[5]*=e,n[8]*=e,this}determinant(){const e=this.elements,n=e[0],i=e[1],r=e[2],a=e[3],s=e[4],o=e[5],l=e[6],c=e[7],d=e[8];return n*s*d-n*o*c-i*a*d+i*o*l+r*a*c-r*s*l}invert(){const e=this.elements,n=e[0],i=e[1],r=e[2],a=e[3],s=e[4],o=e[5],l=e[6],c=e[7],d=e[8],f=d*s-o*c,p=o*l-d*a,m=c*a-s*l,y=n*f+i*p+r*m;if(y===0)return this.set(0,0,0,0,0,0,0,0,0);const b=1/y;return e[0]=f*b,e[1]=(r*c-d*i)*b,e[2]=(o*i-r*s)*b,e[3]=p*b,e[4]=(d*n-r*l)*b,e[5]=(r*a-o*n)*b,e[6]=m*b,e[7]=(i*l-c*n)*b,e[8]=(s*n-i*a)*b,this}transpose(){let e;const n=this.elements;return e=n[1],n[1]=n[3],n[3]=e,e=n[2],n[2]=n[6],n[6]=e,e=n[5],n[5]=n[7],n[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const n=this.elements;return e[0]=n[0],e[1]=n[3],e[2]=n[6],e[3]=n[1],e[4]=n[4],e[5]=n[7],e[6]=n[2],e[7]=n[5],e[8]=n[8],this}setUvTransform(e,n,i,r,a,s,o){const l=Math.cos(a),c=Math.sin(a);return this.set(i*l,i*c,-i*(l*s+c*o)+s+e,-r*c,r*l,-r*(-c*s+l*o)+o+n,0,0,1),this}scale(e,n){return this.premultiply(IE.makeScale(e,n)),this}rotate(e){return this.premultiply(IE.makeRotation(-e)),this}translate(e,n){return this.premultiply(IE.makeTranslation(e,n)),this}makeTranslation(e,n){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,n,0,0,1),this}makeRotation(e){const n=Math.cos(e),i=Math.sin(e);return this.set(n,-i,0,i,n,0,0,0,1),this}makeScale(e,n){return this.set(e,0,0,0,n,0,0,0,1),this}equals(e){const n=this.elements,i=e.elements;for(let r=0;r<9;r++)if(n[r]!==i[r])return!1;return!0}fromArray(e,n=0){for(let i=0;i<9;i++)this.elements[i]=e[i+n];return this}toArray(e=[],n=0){const i=this.elements;return e[n]=i[0],e[n+1]=i[1],e[n+2]=i[2],e[n+3]=i[3],e[n+4]=i[4],e[n+5]=i[5],e[n+6]=i[6],e[n+7]=i[7],e[n+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}};const IE=new tn,_F=new tn().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),SF=new tn().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function Yae(){const t={enabled:!0,workingColorSpace:bp,spaces:{},convert:function(r,a,s){return this.enabled===!1||a===s||!a||!s||(this.spaces[a].transfer===On&&(r.r=$l(r.r),r.g=$l(r.g),r.b=$l(r.b)),this.spaces[a].primaries!==this.spaces[s].primaries&&(r.applyMatrix3(this.spaces[a].toXYZ),r.applyMatrix3(this.spaces[s].fromXYZ)),this.spaces[s].transfer===On&&(r.r=sp(r.r),r.g=sp(r.g),r.b=sp(r.b))),r},workingToColorSpace:function(r,a){return this.convert(r,this.workingColorSpace,a)},colorSpaceToWorking:function(r,a){return this.convert(r,a,this.workingColorSpace)},getPrimaries:function(r){return this.spaces[r].primaries},getTransfer:function(r){return r===lu?Qb:this.spaces[r].transfer},getToneMappingMode:function(r){return this.spaces[r].outputColorSpaceConfig.toneMappingMode||"standard"},getLuminanceCoefficients:function(r,a=this.workingColorSpace){return r.fromArray(this.spaces[a].luminanceCoefficients)},define:function(r){Object.assign(this.spaces,r)},_getMatrix:function(r,a,s){return r.copy(this.spaces[a].toXYZ).multiply(this.spaces[s].fromXYZ)},_getDrawingBufferColorSpace:function(r){return this.spaces[r].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(r=this.workingColorSpace){return this.spaces[r].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(r,a){return m0("ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace()."),t.workingToColorSpace(r,a)},toWorkingColorSpace:function(r,a){return m0("ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking()."),t.colorSpaceToWorking(r,a)}},e=[.64,.33,.3,.6,.15,.06],n=[.2126,.7152,.0722],i=[.3127,.329];return t.define({[bp]:{primaries:e,whitePoint:i,transfer:Qb,toXYZ:_F,fromXYZ:SF,luminanceCoefficients:n,workingColorSpaceConfig:{unpackColorSpace:As},outputColorSpaceConfig:{drawingBufferColorSpace:As}},[As]:{primaries:e,whitePoint:i,transfer:On,toXYZ:_F,fromXYZ:SF,luminanceCoefficients:n,outputColorSpaceConfig:{drawingBufferColorSpace:As}}}),t}const xn=Yae();function $l(t){return t<.04045?t*.0773993808:Math.pow(t*.9478672986+.0521327014,2.4)}function sp(t){return t<.0031308?t*12.92:1.055*Math.pow(t,.41666)-.055}let lh,Kae=class{static getDataURL(e,n="image/png"){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let i;if(e instanceof HTMLCanvasElement)i=e;else{lh===void 0&&(lh=t_("canvas")),lh.width=e.width,lh.height=e.height;const r=lh.getContext("2d");e instanceof ImageData?r.putImageData(e,0,0):r.drawImage(e,0,0,e.width,e.height),i=lh}return i.toDataURL(n)}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const n=t_("canvas");n.width=e.width,n.height=e.height;const i=n.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),a=r.data;for(let s=0;s<a.length;s++)a[s]=$l(a[s]/255)*255;return i.putImageData(r,0,0),n}else if(e.data){const n=e.data.slice(0);for(let i=0;i<n.length;i++)n instanceof Uint8Array||n instanceof Uint8ClampedArray?n[i]=Math.floor($l(n[i]/255)*255):n[i]=$l(n[i]);return{data:n,width:e.width,height:e.height}}else return jt("ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),e}},Zae=0,UP=class{constructor(e=null){this.isSource=!0,Object.defineProperty(this,"id",{value:Zae++}),this.uuid=Q0(),this.data=e,this.dataReady=!0,this.version=0}getSize(e){const n=this.data;return typeof HTMLVideoElement<"u"&&n instanceof HTMLVideoElement?e.set(n.videoWidth,n.videoHeight,0):n instanceof VideoFrame?e.set(n.displayHeight,n.displayWidth,0):n!==null?e.set(n.width,n.height,n.depth||0):e.set(0,0,0),e}set needsUpdate(e){e===!0&&this.version++}toJSON(e){const n=e===void 0||typeof e=="string";if(!n&&e.images[this.uuid]!==void 0)return e.images[this.uuid];const i={uuid:this.uuid,url:""},r=this.data;if(r!==null){let a;if(Array.isArray(r)){a=[];for(let s=0,o=r.length;s<o;s++)r[s].isDataTexture?a.push(UE(r[s].image)):a.push(UE(r[s]))}else a=UE(r);i.url=a}return n||(e.images[this.uuid]=i),i}};function UE(t){return typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap?Kae.getDataURL(t):t.data?{data:Array.from(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(jt("Texture: Unable to serialize Texture."),{})}let Jae=0;const FE=new Ge;let vo=class Db extends Ef{constructor(e=Db.DEFAULT_IMAGE,n=Db.DEFAULT_MAPPING,i=Ul,r=Ul,a=Ls,s=Dd,o=lo,l=zo,c=Db.DEFAULT_ANISOTROPY,d=lu){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:Jae++}),this.uuid=Q0(),this.name="",this.source=new UP(e),this.mipmaps=[],this.mapping=n,this.channel=0,this.wrapS=i,this.wrapT=r,this.magFilter=a,this.minFilter=s,this.anisotropy=c,this.format=o,this.internalFormat=null,this.type=l,this.offset=new Jt(0,0),this.repeat=new Jt(1,1),this.center=new Jt(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new tn,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=d,this.userData={},this.updateRanges=[],this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.isArrayTexture=!!(e&&e.depth&&e.depth>1),this.pmremVersion=0}get width(){return this.source.getSize(FE).x}get height(){return this.source.getSize(FE).y}get depth(){return this.source.getSize(FE).z}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.renderTarget=e.renderTarget,this.isRenderTargetTexture=e.isRenderTargetTexture,this.isArrayTexture=e.isArrayTexture,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}setValues(e){for(const n in e){const i=e[n];if(i===void 0){jt(`Texture.setValues(): parameter '${n}' has value of undefined.`);continue}const r=this[n];if(r===void 0){jt(`Texture.setValues(): property '${n}' does not exist.`);continue}r&&i&&r.isVector2&&i.isVector2||r&&i&&r.isVector3&&i.isVector3||r&&i&&r.isMatrix3&&i.isMatrix3?r.copy(i):this[n]=i}}toJSON(e){const n=e===void 0||typeof e=="string";if(!n&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];const i={metadata:{version:4.7,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(i.userData=this.userData),n||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==lG)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case k2:e.x=e.x-Math.floor(e.x);break;case Ul:e.x=e.x<0?0:1;break;case I2:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case k2:e.y=e.y-Math.floor(e.y);break;case Ul:e.y=e.y<0?0:1;break;case I2:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(e){e===!0&&this.pmremVersion++}};vo.DEFAULT_IMAGE=null;vo.DEFAULT_MAPPING=lG;vo.DEFAULT_ANISOTROPY=1;let Li=class SG{constructor(e=0,n=0,i=0,r=1){SG.prototype.isVector4=!0,this.x=e,this.y=n,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,n,i,r){return this.x=e,this.y=n,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;case 3:this.w=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this.z=e.z+n.z,this.w=e.w+n.w,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this.z+=e.z*n,this.w+=e.w*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this.z=e.z-n.z,this.w=e.w-n.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const n=this.x,i=this.y,r=this.z,a=this.w,s=e.elements;return this.x=s[0]*n+s[4]*i+s[8]*r+s[12]*a,this.y=s[1]*n+s[5]*i+s[9]*r+s[13]*a,this.z=s[2]*n+s[6]*i+s[10]*r+s[14]*a,this.w=s[3]*n+s[7]*i+s[11]*r+s[15]*a,this}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this.w/=e.w,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const n=Math.sqrt(1-e.w*e.w);return n<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/n,this.y=e.y/n,this.z=e.z/n),this}setAxisAngleFromRotationMatrix(e){let n,i,r,a;const l=e.elements,c=l[0],d=l[4],f=l[8],p=l[1],m=l[5],y=l[9],b=l[2],x=l[6],v=l[10];if(Math.abs(d-p)<.01&&Math.abs(f-b)<.01&&Math.abs(y-x)<.01){if(Math.abs(d+p)<.1&&Math.abs(f+b)<.1&&Math.abs(y+x)<.1&&Math.abs(c+m+v-3)<.1)return this.set(1,0,0,0),this;n=Math.PI;const M=(c+1)/2,A=(m+1)/2,T=(v+1)/2,D=(d+p)/4,C=(f+b)/4,U=(y+x)/4;return M>A&&M>T?M<.01?(i=0,r=.707106781,a=.707106781):(i=Math.sqrt(M),r=D/i,a=C/i):A>T?A<.01?(i=.707106781,r=0,a=.707106781):(r=Math.sqrt(A),i=D/r,a=U/r):T<.01?(i=.707106781,r=.707106781,a=0):(a=Math.sqrt(T),i=C/a,r=U/a),this.set(i,r,a,n),this}let w=Math.sqrt((x-y)*(x-y)+(f-b)*(f-b)+(p-d)*(p-d));return Math.abs(w)<.001&&(w=1),this.x=(x-y)/w,this.y=(f-b)/w,this.z=(p-d)/w,this.w=Math.acos((c+m+v-1)/2),this}setFromMatrixPosition(e){const n=e.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this.w=n[15],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,n){return this.x=on(this.x,e.x,n.x),this.y=on(this.y,e.y,n.y),this.z=on(this.z,e.z,n.z),this.w=on(this.w,e.w,n.w),this}clampScalar(e,n){return this.x=on(this.x,e,n),this.y=on(this.y,e,n),this.z=on(this.z,e,n),this.w=on(this.w,e,n),this}clampLength(e,n){const i=this.length();return this.divideScalar(i||1).multiplyScalar(on(i,e,n))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this.z+=(e.z-this.z)*n,this.w+=(e.w-this.w)*n,this}lerpVectors(e,n,i){return this.x=e.x+(n.x-e.x)*i,this.y=e.y+(n.y-e.y)*i,this.z=e.z+(n.z-e.z)*i,this.w=e.w+(n.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this.z=e[n+2],this.w=e[n+3],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e[n+2]=this.z,e[n+3]=this.w,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this.z=e.getZ(n),this.w=e.getW(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},Qae=class extends Ef{constructor(e=1,n=1,i={}){super(),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Ls,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1},i),this.isRenderTarget=!0,this.width=e,this.height=n,this.depth=i.depth,this.scissor=new Li(0,0,e,n),this.scissorTest=!1,this.viewport=new Li(0,0,e,n);const r={width:e,height:n,depth:i.depth},a=new vo(r);this.textures=[];const s=i.count;for(let o=0;o<s;o++)this.textures[o]=a.clone(),this.textures[o].isRenderTargetTexture=!0,this.textures[o].renderTarget=this;this._setTextureOptions(i),this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.resolveDepthBuffer=i.resolveDepthBuffer,this.resolveStencilBuffer=i.resolveStencilBuffer,this._depthTexture=null,this.depthTexture=i.depthTexture,this.samples=i.samples,this.multiview=i.multiview}_setTextureOptions(e={}){const n={minFilter:Ls,generateMipmaps:!1,flipY:!1,internalFormat:null};e.mapping!==void 0&&(n.mapping=e.mapping),e.wrapS!==void 0&&(n.wrapS=e.wrapS),e.wrapT!==void 0&&(n.wrapT=e.wrapT),e.wrapR!==void 0&&(n.wrapR=e.wrapR),e.magFilter!==void 0&&(n.magFilter=e.magFilter),e.minFilter!==void 0&&(n.minFilter=e.minFilter),e.format!==void 0&&(n.format=e.format),e.type!==void 0&&(n.type=e.type),e.anisotropy!==void 0&&(n.anisotropy=e.anisotropy),e.colorSpace!==void 0&&(n.colorSpace=e.colorSpace),e.flipY!==void 0&&(n.flipY=e.flipY),e.generateMipmaps!==void 0&&(n.generateMipmaps=e.generateMipmaps),e.internalFormat!==void 0&&(n.internalFormat=e.internalFormat);for(let i=0;i<this.textures.length;i++)this.textures[i].setValues(n)}get texture(){return this.textures[0]}set texture(e){this.textures[0]=e}set depthTexture(e){this._depthTexture!==null&&(this._depthTexture.renderTarget=null),e!==null&&(e.renderTarget=this),this._depthTexture=e}get depthTexture(){return this._depthTexture}setSize(e,n,i=1){if(this.width!==e||this.height!==n||this.depth!==i){this.width=e,this.height=n,this.depth=i;for(let r=0,a=this.textures.length;r<a;r++)this.textures[r].image.width=e,this.textures[r].image.height=n,this.textures[r].image.depth=i,this.textures[r].isData3DTexture!==!0&&(this.textures[r].isArrayTexture=this.textures[r].image.depth>1);this.dispose()}this.viewport.set(0,0,e,n),this.scissor.set(0,0,e,n)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.textures.length=0;for(let n=0,i=e.textures.length;n<i;n++){this.textures[n]=e.textures[n].clone(),this.textures[n].isRenderTargetTexture=!0,this.textures[n].renderTarget=this;const r=Object.assign({},e.textures[n].image);this.textures[n].source=new UP(r)}return this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,this.resolveDepthBuffer=e.resolveDepthBuffer,this.resolveStencilBuffer=e.resolveStencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}},of=class extends Qae{constructor(e=1,n=1,i={}){super(e,n,i),this.isWebGLRenderTarget=!0}},wG=class extends vo{constructor(e=null,n=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:n,height:i,depth:r},this.magFilter=ns,this.minFilter=ns,this.wrapR=Ul,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set}addLayerUpdate(e){this.layerUpdates.add(e)}clearLayerUpdates(){this.layerUpdates.clear()}},ese=class extends vo{constructor(e=null,n=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:n,height:i,depth:r},this.magFilter=ns,this.minFilter=ns,this.wrapR=Ul,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},lf=class{constructor(e=new Ge(1/0,1/0,1/0),n=new Ge(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=n}set(e,n){return this.min.copy(e),this.max.copy(n),this}setFromArray(e){this.makeEmpty();for(let n=0,i=e.length;n<i;n+=3)this.expandByPoint(Ks.fromArray(e,n));return this}setFromBufferAttribute(e){this.makeEmpty();for(let n=0,i=e.count;n<i;n++)this.expandByPoint(Ks.fromBufferAttribute(e,n));return this}setFromPoints(e){this.makeEmpty();for(let n=0,i=e.length;n<i;n++)this.expandByPoint(e[n]);return this}setFromCenterAndSize(e,n){const i=Ks.copy(n).multiplyScalar(.5);return this.min.copy(e).sub(i),this.max.copy(e).add(i),this}setFromObject(e,n=!1){return this.makeEmpty(),this.expandByObject(e,n)}clone(){return new this.constructor().copy(this)}copy(e){return this.min.copy(e.min),this.max.copy(e.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)}expandByPoint(e){return this.min.min(e),this.max.max(e),this}expandByVector(e){return this.min.sub(e),this.max.add(e),this}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this}expandByObject(e,n=!1){e.updateWorldMatrix(!1,!1);const i=e.geometry;if(i!==void 0){const a=i.getAttribute("position");if(n===!0&&a!==void 0&&e.isInstancedMesh!==!0)for(let s=0,o=a.count;s<o;s++)e.isMesh===!0?e.getVertexPosition(s,Ks):Ks.fromBufferAttribute(a,s),Ks.applyMatrix4(e.matrixWorld),this.expandByPoint(Ks);else e.boundingBox!==void 0?(e.boundingBox===null&&e.computeBoundingBox(),Yx.copy(e.boundingBox)):(i.boundingBox===null&&i.computeBoundingBox(),Yx.copy(i.boundingBox)),Yx.applyMatrix4(e.matrixWorld),this.union(Yx)}const r=e.children;for(let a=0,s=r.length;a<s;a++)this.expandByObject(r[a],n);return this}containsPoint(e){return e.x>=this.min.x&&e.x<=this.max.x&&e.y>=this.min.y&&e.y<=this.max.y&&e.z>=this.min.z&&e.z<=this.max.z}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,n){return n.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return e.max.x>=this.min.x&&e.min.x<=this.max.x&&e.max.y>=this.min.y&&e.min.y<=this.max.y&&e.max.z>=this.min.z&&e.min.z<=this.max.z}intersectsSphere(e){return this.clampPoint(e.center,Ks),Ks.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let n,i;return e.normal.x>0?(n=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(n=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(n+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(n+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(n+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(n+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),n<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(sg),Kx.subVectors(this.max,sg),ch.subVectors(e.a,sg),uh.subVectors(e.b,sg),dh.subVectors(e.c,sg),zc.subVectors(uh,ch),Bc.subVectors(dh,uh),od.subVectors(ch,dh);let n=[0,-zc.z,zc.y,0,-Bc.z,Bc.y,0,-od.z,od.y,zc.z,0,-zc.x,Bc.z,0,-Bc.x,od.z,0,-od.x,-zc.y,zc.x,0,-Bc.y,Bc.x,0,-od.y,od.x,0];return!zE(n,ch,uh,dh,Kx)||(n=[1,0,0,0,1,0,0,0,1],!zE(n,ch,uh,dh,Kx))?!1:(Zx.crossVectors(zc,Bc),n=[Zx.x,Zx.y,Zx.z],zE(n,ch,uh,dh,Kx))}clampPoint(e,n){return n.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Ks).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(Ks).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(pl[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),pl[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),pl[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),pl[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),pl[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),pl[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),pl[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),pl[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(pl),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(e){return this.min.fromArray(e.min),this.max.fromArray(e.max),this}};const pl=[new Ge,new Ge,new Ge,new Ge,new Ge,new Ge,new Ge,new Ge],Ks=new Ge,Yx=new lf,ch=new Ge,uh=new Ge,dh=new Ge,zc=new Ge,Bc=new Ge,od=new Ge,sg=new Ge,Kx=new Ge,Zx=new Ge,ld=new Ge;function zE(t,e,n,i,r){for(let a=0,s=t.length-3;a<=s;a+=3){ld.fromArray(t,a);const o=r.x*Math.abs(ld.x)+r.y*Math.abs(ld.y)+r.z*Math.abs(ld.z),l=e.dot(ld),c=n.dot(ld),d=i.dot(ld);if(Math.max(-Math.max(l,c,d),Math.min(l,c,d))>o)return!1}return!0}const tse=new lf,og=new Ge,BE=new Ge;let nS=class{constructor(e=new Ge,n=-1){this.isSphere=!0,this.center=e,this.radius=n}set(e,n){return this.center.copy(e),this.radius=n,this}setFromPoints(e,n){const i=this.center;n!==void 0?i.copy(n):tse.setFromPoints(e).getCenter(i);let r=0;for(let a=0,s=e.length;a<s;a++)r=Math.max(r,i.distanceToSquared(e[a]));return this.radius=Math.sqrt(r),this}copy(e){return this.center.copy(e.center),this.radius=e.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(e){return e.distanceTo(this.center)-this.radius}intersectsSphere(e){const n=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=n*n}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,n){const i=this.center.distanceToSquared(e);return n.copy(e),i>this.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;og.subVectors(e,this.center);const n=og.lengthSq();if(n>this.radius*this.radius){const i=Math.sqrt(n),r=(i-this.radius)*.5;this.center.addScaledVector(og,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(BE.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(og.copy(e.center).add(BE)),this.expandByPoint(og.copy(e.center).sub(BE))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(e){return this.radius=e.radius,this.center.fromArray(e.center),this}};const ml=new Ge,jE=new Ge,Jx=new Ge,jc=new Ge,HE=new Ge,Qx=new Ge,VE=new Ge;let FP=class{constructor(e=new Ge,n=new Ge(0,0,-1)){this.origin=e,this.direction=n}set(e,n){return this.origin.copy(e),this.direction.copy(n),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,n){return n.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,ml)),this}closestPointToPoint(e,n){n.subVectors(e,this.origin);const i=n.dot(this.direction);return i<0?n.copy(this.origin):n.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const n=ml.subVectors(e,this.origin).dot(this.direction);return n<0?this.origin.distanceToSquared(e):(ml.copy(this.origin).addScaledVector(this.direction,n),ml.distanceToSquared(e))}distanceSqToSegment(e,n,i,r){jE.copy(e).add(n).multiplyScalar(.5),Jx.copy(n).sub(e).normalize(),jc.copy(this.origin).sub(jE);const a=e.distanceTo(n)*.5,s=-this.direction.dot(Jx),o=jc.dot(this.direction),l=-jc.dot(Jx),c=jc.lengthSq(),d=Math.abs(1-s*s);let f,p,m,y;if(d>0)if(f=s*l-o,p=s*o-l,y=a*d,f>=0)if(p>=-y)if(p<=y){const b=1/d;f*=b,p*=b,m=f*(f+s*p+2*o)+p*(s*f+p+2*l)+c}else p=a,f=Math.max(0,-(s*p+o)),m=-f*f+p*(p+2*l)+c;else p=-a,f=Math.max(0,-(s*p+o)),m=-f*f+p*(p+2*l)+c;else p<=-y?(f=Math.max(0,-(-s*a+o)),p=f>0?-a:Math.min(Math.max(-a,-l),a),m=-f*f+p*(p+2*l)+c):p<=y?(f=0,p=Math.min(Math.max(-a,-l),a),m=p*(p+2*l)+c):(f=Math.max(0,-(s*a+o)),p=f>0?a:Math.min(Math.max(-a,-l),a),m=-f*f+p*(p+2*l)+c);else p=s>0?-a:a,f=Math.max(0,-(s*p+o)),m=-f*f+p*(p+2*l)+c;return i&&i.copy(this.origin).addScaledVector(this.direction,f),r&&r.copy(jE).addScaledVector(Jx,p),m}intersectSphere(e,n){ml.subVectors(e.center,this.origin);const i=ml.dot(this.direction),r=ml.dot(ml)-i*i,a=e.radius*e.radius;if(r>a)return null;const s=Math.sqrt(a-r),o=i-s,l=i+s;return l<0?null:o<0?this.at(l,n):this.at(o,n)}intersectsSphere(e){return e.radius<0?!1:this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const n=e.normal.dot(this.direction);if(n===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/n;return i>=0?i:null}intersectPlane(e,n){const i=this.distanceToPlane(e);return i===null?null:this.at(i,n)}intersectsPlane(e){const n=e.distanceToPoint(this.origin);return n===0||e.normal.dot(this.direction)*n<0}intersectBox(e,n){let i,r,a,s,o,l;const c=1/this.direction.x,d=1/this.direction.y,f=1/this.direction.z,p=this.origin;return c>=0?(i=(e.min.x-p.x)*c,r=(e.max.x-p.x)*c):(i=(e.max.x-p.x)*c,r=(e.min.x-p.x)*c),d>=0?(a=(e.min.y-p.y)*d,s=(e.max.y-p.y)*d):(a=(e.max.y-p.y)*d,s=(e.min.y-p.y)*d),i>s||a>r||((a>i||isNaN(i))&&(i=a),(s<r||isNaN(r))&&(r=s),f>=0?(o=(e.min.z-p.z)*f,l=(e.max.z-p.z)*f):(o=(e.max.z-p.z)*f,l=(e.min.z-p.z)*f),i>l||o>r)||((o>i||i!==i)&&(i=o),(l<r||r!==r)&&(r=l),r<0)?null:this.at(i>=0?i:r,n)}intersectsBox(e){return this.intersectBox(e,ml)!==null}intersectTriangle(e,n,i,r,a){HE.subVectors(n,e),Qx.subVectors(i,e),VE.crossVectors(HE,Qx);let s=this.direction.dot(VE),o;if(s>0){if(r)return null;o=1}else if(s<0)o=-1,s=-s;else return null;jc.subVectors(this.origin,e);const l=o*this.direction.dot(Qx.crossVectors(jc,Qx));if(l<0)return null;const c=o*this.direction.dot(HE.cross(jc));if(c<0||l+c>s)return null;const d=-o*jc.dot(VE);return d<0?null:this.at(d/s,a)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},Bi=class fR{constructor(e,n,i,r,a,s,o,l,c,d,f,p,m,y,b,x){fR.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,n,i,r,a,s,o,l,c,d,f,p,m,y,b,x)}set(e,n,i,r,a,s,o,l,c,d,f,p,m,y,b,x){const v=this.elements;return v[0]=e,v[4]=n,v[8]=i,v[12]=r,v[1]=a,v[5]=s,v[9]=o,v[13]=l,v[2]=c,v[6]=d,v[10]=f,v[14]=p,v[3]=m,v[7]=y,v[11]=b,v[15]=x,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new fR().fromArray(this.elements)}copy(e){const n=this.elements,i=e.elements;return n[0]=i[0],n[1]=i[1],n[2]=i[2],n[3]=i[3],n[4]=i[4],n[5]=i[5],n[6]=i[6],n[7]=i[7],n[8]=i[8],n[9]=i[9],n[10]=i[10],n[11]=i[11],n[12]=i[12],n[13]=i[13],n[14]=i[14],n[15]=i[15],this}copyPosition(e){const n=this.elements,i=e.elements;return n[12]=i[12],n[13]=i[13],n[14]=i[14],this}setFromMatrix3(e){const n=e.elements;return this.set(n[0],n[3],n[6],0,n[1],n[4],n[7],0,n[2],n[5],n[8],0,0,0,0,1),this}extractBasis(e,n,i){return e.setFromMatrixColumn(this,0),n.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,n,i){return this.set(e.x,n.x,i.x,0,e.y,n.y,i.y,0,e.z,n.z,i.z,0,0,0,0,1),this}extractRotation(e){const n=this.elements,i=e.elements,r=1/fh.setFromMatrixColumn(e,0).length(),a=1/fh.setFromMatrixColumn(e,1).length(),s=1/fh.setFromMatrixColumn(e,2).length();return n[0]=i[0]*r,n[1]=i[1]*r,n[2]=i[2]*r,n[3]=0,n[4]=i[4]*a,n[5]=i[5]*a,n[6]=i[6]*a,n[7]=0,n[8]=i[8]*s,n[9]=i[9]*s,n[10]=i[10]*s,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromEuler(e){const n=this.elements,i=e.x,r=e.y,a=e.z,s=Math.cos(i),o=Math.sin(i),l=Math.cos(r),c=Math.sin(r),d=Math.cos(a),f=Math.sin(a);if(e.order==="XYZ"){const p=s*d,m=s*f,y=o*d,b=o*f;n[0]=l*d,n[4]=-l*f,n[8]=c,n[1]=m+y*c,n[5]=p-b*c,n[9]=-o*l,n[2]=b-p*c,n[6]=y+m*c,n[10]=s*l}else if(e.order==="YXZ"){const p=l*d,m=l*f,y=c*d,b=c*f;n[0]=p+b*o,n[4]=y*o-m,n[8]=s*c,n[1]=s*f,n[5]=s*d,n[9]=-o,n[2]=m*o-y,n[6]=b+p*o,n[10]=s*l}else if(e.order==="ZXY"){const p=l*d,m=l*f,y=c*d,b=c*f;n[0]=p-b*o,n[4]=-s*f,n[8]=y+m*o,n[1]=m+y*o,n[5]=s*d,n[9]=b-p*o,n[2]=-s*c,n[6]=o,n[10]=s*l}else if(e.order==="ZYX"){const p=s*d,m=s*f,y=o*d,b=o*f;n[0]=l*d,n[4]=y*c-m,n[8]=p*c+b,n[1]=l*f,n[5]=b*c+p,n[9]=m*c-y,n[2]=-c,n[6]=o*l,n[10]=s*l}else if(e.order==="YZX"){const p=s*l,m=s*c,y=o*l,b=o*c;n[0]=l*d,n[4]=b-p*f,n[8]=y*f+m,n[1]=f,n[5]=s*d,n[9]=-o*d,n[2]=-c*d,n[6]=m*f+y,n[10]=p-b*f}else if(e.order==="XZY"){const p=s*l,m=s*c,y=o*l,b=o*c;n[0]=l*d,n[4]=-f,n[8]=c*d,n[1]=p*f+b,n[5]=s*d,n[9]=m*f-y,n[2]=y*f-m,n[6]=o*d,n[10]=b*f+p}return n[3]=0,n[7]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromQuaternion(e){return this.compose(nse,e,ise)}lookAt(e,n,i){const r=this.elements;return qa.subVectors(e,n),qa.lengthSq()===0&&(qa.z=1),qa.normalize(),Hc.crossVectors(i,qa),Hc.lengthSq()===0&&(Math.abs(i.z)===1?qa.x+=1e-4:qa.z+=1e-4,qa.normalize(),Hc.crossVectors(i,qa)),Hc.normalize(),ey.crossVectors(qa,Hc),r[0]=Hc.x,r[4]=ey.x,r[8]=qa.x,r[1]=Hc.y,r[5]=ey.y,r[9]=qa.y,r[2]=Hc.z,r[6]=ey.z,r[10]=qa.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,n){const i=e.elements,r=n.elements,a=this.elements,s=i[0],o=i[4],l=i[8],c=i[12],d=i[1],f=i[5],p=i[9],m=i[13],y=i[2],b=i[6],x=i[10],v=i[14],w=i[3],M=i[7],A=i[11],T=i[15],D=r[0],C=r[4],U=r[8],P=r[12],k=r[1],B=r[5],I=r[9],W=r[13],O=r[2],$=r[6],q=r[10],G=r[14],Y=r[3],Q=r[7],se=r[11],H=r[15];return a[0]=s*D+o*k+l*O+c*Y,a[4]=s*C+o*B+l*$+c*Q,a[8]=s*U+o*I+l*q+c*se,a[12]=s*P+o*W+l*G+c*H,a[1]=d*D+f*k+p*O+m*Y,a[5]=d*C+f*B+p*$+m*Q,a[9]=d*U+f*I+p*q+m*se,a[13]=d*P+f*W+p*G+m*H,a[2]=y*D+b*k+x*O+v*Y,a[6]=y*C+b*B+x*$+v*Q,a[10]=y*U+b*I+x*q+v*se,a[14]=y*P+b*W+x*G+v*H,a[3]=w*D+M*k+A*O+T*Y,a[7]=w*C+M*B+A*$+T*Q,a[11]=w*U+M*I+A*q+T*se,a[15]=w*P+M*W+A*G+T*H,this}multiplyScalar(e){const n=this.elements;return n[0]*=e,n[4]*=e,n[8]*=e,n[12]*=e,n[1]*=e,n[5]*=e,n[9]*=e,n[13]*=e,n[2]*=e,n[6]*=e,n[10]*=e,n[14]*=e,n[3]*=e,n[7]*=e,n[11]*=e,n[15]*=e,this}determinant(){const e=this.elements,n=e[0],i=e[4],r=e[8],a=e[12],s=e[1],o=e[5],l=e[9],c=e[13],d=e[2],f=e[6],p=e[10],m=e[14],y=e[3],b=e[7],x=e[11],v=e[15];return y*(+a*l*f-r*c*f-a*o*p+i*c*p+r*o*m-i*l*m)+b*(+n*l*m-n*c*p+a*s*p-r*s*m+r*c*d-a*l*d)+x*(+n*c*f-n*o*m-a*s*f+i*s*m+a*o*d-i*c*d)+v*(-r*o*d-n*l*f+n*o*p+r*s*f-i*s*p+i*l*d)}transpose(){const e=this.elements;let n;return n=e[1],e[1]=e[4],e[4]=n,n=e[2],e[2]=e[8],e[8]=n,n=e[6],e[6]=e[9],e[9]=n,n=e[3],e[3]=e[12],e[12]=n,n=e[7],e[7]=e[13],e[13]=n,n=e[11],e[11]=e[14],e[14]=n,this}setPosition(e,n,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=n,r[14]=i),this}invert(){const e=this.elements,n=e[0],i=e[1],r=e[2],a=e[3],s=e[4],o=e[5],l=e[6],c=e[7],d=e[8],f=e[9],p=e[10],m=e[11],y=e[12],b=e[13],x=e[14],v=e[15],w=f*x*c-b*p*c+b*l*m-o*x*m-f*l*v+o*p*v,M=y*p*c-d*x*c-y*l*m+s*x*m+d*l*v-s*p*v,A=d*b*c-y*f*c+y*o*m-s*b*m-d*o*v+s*f*v,T=y*f*l-d*b*l-y*o*p+s*b*p+d*o*x-s*f*x,D=n*w+i*M+r*A+a*T;if(D===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const C=1/D;return e[0]=w*C,e[1]=(b*p*a-f*x*a-b*r*m+i*x*m+f*r*v-i*p*v)*C,e[2]=(o*x*a-b*l*a+b*r*c-i*x*c-o*r*v+i*l*v)*C,e[3]=(f*l*a-o*p*a-f*r*c+i*p*c+o*r*m-i*l*m)*C,e[4]=M*C,e[5]=(d*x*a-y*p*a+y*r*m-n*x*m-d*r*v+n*p*v)*C,e[6]=(y*l*a-s*x*a-y*r*c+n*x*c+s*r*v-n*l*v)*C,e[7]=(s*p*a-d*l*a+d*r*c-n*p*c-s*r*m+n*l*m)*C,e[8]=A*C,e[9]=(y*f*a-d*b*a-y*i*m+n*b*m+d*i*v-n*f*v)*C,e[10]=(s*b*a-y*o*a+y*i*c-n*b*c-s*i*v+n*o*v)*C,e[11]=(d*o*a-s*f*a-d*i*c+n*f*c+s*i*m-n*o*m)*C,e[12]=T*C,e[13]=(d*b*r-y*f*r+y*i*p-n*b*p-d*i*x+n*f*x)*C,e[14]=(y*o*r-s*b*r-y*i*l+n*b*l+s*i*x-n*o*x)*C,e[15]=(s*f*r-d*o*r+d*i*l-n*f*l-s*i*p+n*o*p)*C,this}scale(e){const n=this.elements,i=e.x,r=e.y,a=e.z;return n[0]*=i,n[4]*=r,n[8]*=a,n[1]*=i,n[5]*=r,n[9]*=a,n[2]*=i,n[6]*=r,n[10]*=a,n[3]*=i,n[7]*=r,n[11]*=a,this}getMaxScaleOnAxis(){const e=this.elements,n=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(n,i,r))}makeTranslation(e,n,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,n,0,0,1,i,0,0,0,1),this}makeRotationX(e){const n=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,n,-i,0,0,i,n,0,0,0,0,1),this}makeRotationY(e){const n=Math.cos(e),i=Math.sin(e);return this.set(n,0,i,0,0,1,0,0,-i,0,n,0,0,0,0,1),this}makeRotationZ(e){const n=Math.cos(e),i=Math.sin(e);return this.set(n,-i,0,0,i,n,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,n){const i=Math.cos(n),r=Math.sin(n),a=1-i,s=e.x,o=e.y,l=e.z,c=a*s,d=a*o;return this.set(c*s+i,c*o-r*l,c*l+r*o,0,c*o+r*l,d*o+i,d*l-r*s,0,c*l-r*o,d*l+r*s,a*l*l+i,0,0,0,0,1),this}makeScale(e,n,i){return this.set(e,0,0,0,0,n,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,n,i,r,a,s){return this.set(1,i,a,0,e,1,s,0,n,r,1,0,0,0,0,1),this}compose(e,n,i){const r=this.elements,a=n._x,s=n._y,o=n._z,l=n._w,c=a+a,d=s+s,f=o+o,p=a*c,m=a*d,y=a*f,b=s*d,x=s*f,v=o*f,w=l*c,M=l*d,A=l*f,T=i.x,D=i.y,C=i.z;return r[0]=(1-(b+v))*T,r[1]=(m+A)*T,r[2]=(y-M)*T,r[3]=0,r[4]=(m-A)*D,r[5]=(1-(p+v))*D,r[6]=(x+w)*D,r[7]=0,r[8]=(y+M)*C,r[9]=(x-w)*C,r[10]=(1-(p+b))*C,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,n,i){const r=this.elements;let a=fh.set(r[0],r[1],r[2]).length();const s=fh.set(r[4],r[5],r[6]).length(),o=fh.set(r[8],r[9],r[10]).length();this.determinant()<0&&(a=-a),e.x=r[12],e.y=r[13],e.z=r[14],Zs.copy(this);const c=1/a,d=1/s,f=1/o;return Zs.elements[0]*=c,Zs.elements[1]*=c,Zs.elements[2]*=c,Zs.elements[4]*=d,Zs.elements[5]*=d,Zs.elements[6]*=d,Zs.elements[8]*=f,Zs.elements[9]*=f,Zs.elements[10]*=f,n.setFromRotationMatrix(Zs),i.x=a,i.y=s,i.z=o,this}makePerspective(e,n,i,r,a,s,o=Oo,l=!1){const c=this.elements,d=2*a/(n-e),f=2*a/(i-r),p=(n+e)/(n-e),m=(i+r)/(i-r);let y,b;if(l)y=a/(s-a),b=s*a/(s-a);else if(o===Oo)y=-(s+a)/(s-a),b=-2*s*a/(s-a);else if(o===e_)y=-s/(s-a),b=-s*a/(s-a);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return c[0]=d,c[4]=0,c[8]=p,c[12]=0,c[1]=0,c[5]=f,c[9]=m,c[13]=0,c[2]=0,c[6]=0,c[10]=y,c[14]=b,c[3]=0,c[7]=0,c[11]=-1,c[15]=0,this}makeOrthographic(e,n,i,r,a,s,o=Oo,l=!1){const c=this.elements,d=2/(n-e),f=2/(i-r),p=-(n+e)/(n-e),m=-(i+r)/(i-r);let y,b;if(l)y=1/(s-a),b=s/(s-a);else if(o===Oo)y=-2/(s-a),b=-(s+a)/(s-a);else if(o===e_)y=-1/(s-a),b=-a/(s-a);else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return c[0]=d,c[4]=0,c[8]=0,c[12]=p,c[1]=0,c[5]=f,c[9]=0,c[13]=m,c[2]=0,c[6]=0,c[10]=y,c[14]=b,c[3]=0,c[7]=0,c[11]=0,c[15]=1,this}equals(e){const n=this.elements,i=e.elements;for(let r=0;r<16;r++)if(n[r]!==i[r])return!1;return!0}fromArray(e,n=0){for(let i=0;i<16;i++)this.elements[i]=e[i+n];return this}toArray(e=[],n=0){const i=this.elements;return e[n]=i[0],e[n+1]=i[1],e[n+2]=i[2],e[n+3]=i[3],e[n+4]=i[4],e[n+5]=i[5],e[n+6]=i[6],e[n+7]=i[7],e[n+8]=i[8],e[n+9]=i[9],e[n+10]=i[10],e[n+11]=i[11],e[n+12]=i[12],e[n+13]=i[13],e[n+14]=i[14],e[n+15]=i[15],e}};const fh=new Ge,Zs=new Bi,nse=new Ge(0,0,0),ise=new Ge(1,1,1),Hc=new Ge,ey=new Ge,qa=new Ge,wF=new Bi,MF=new sf;let Ru=class MG{constructor(e=0,n=0,i=0,r=MG.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=n,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,n,i,r=this._order){return this._x=e,this._y=n,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,n=this._order,i=!0){const r=e.elements,a=r[0],s=r[4],o=r[8],l=r[1],c=r[5],d=r[9],f=r[2],p=r[6],m=r[10];switch(n){case"XYZ":this._y=Math.asin(on(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-d,m),this._z=Math.atan2(-s,a)):(this._x=Math.atan2(p,c),this._z=0);break;case"YXZ":this._x=Math.asin(-on(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(o,m),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-f,a),this._z=0);break;case"ZXY":this._x=Math.asin(on(p,-1,1)),Math.abs(p)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-s,c)):(this._y=0,this._z=Math.atan2(l,a));break;case"ZYX":this._y=Math.asin(-on(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(p,m),this._z=Math.atan2(l,a)):(this._x=0,this._z=Math.atan2(-s,c));break;case"YZX":this._z=Math.asin(on(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-d,c),this._y=Math.atan2(-f,a)):(this._x=0,this._y=Math.atan2(o,m));break;case"XZY":this._z=Math.asin(-on(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(p,c),this._y=Math.atan2(o,a)):(this._x=Math.atan2(-d,m),this._y=0);break;default:jt("Euler: .setFromRotationMatrix() encountered an unknown order: "+n)}return this._order=n,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,n,i){return wF.makeRotationFromQuaternion(e),this.setFromRotationMatrix(wF,n,i)}setFromVector3(e,n=this._order){return this.set(e.x,e.y,e.z,n)}reorder(e){return MF.setFromEuler(this),this.setFromQuaternion(MF,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],n=0){return e[n]=this._x,e[n+1]=this._y,e[n+2]=this._z,e[n+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};Ru.DEFAULT_ORDER="XYZ";let EG=class{constructor(){this.mask=1}set(e){this.mask=(1<<e|0)>>>0}enable(e){this.mask|=1<<e|0}enableAll(){this.mask=-1}toggle(e){this.mask^=1<<e|0}disable(e){this.mask&=~(1<<e|0)}disableAll(){this.mask=0}test(e){return(this.mask&e.mask)!==0}isEnabled(e){return(this.mask&(1<<e|0))!==0}},rse=0;const EF=new Ge,hh=new sf,gl=new Bi,ty=new Ge,lg=new Ge,ase=new Ge,sse=new sf,AF=new Ge(1,0,0),TF=new Ge(0,1,0),CF=new Ge(0,0,1),RF={type:"added"},ose={type:"removed"},ph={type:"childadded",child:null},GE={type:"childremoved",child:null};let ss=class Nb extends Ef{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:rse++}),this.uuid=Q0(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Nb.DEFAULT_UP.clone();const e=new Ge,n=new Ru,i=new sf,r=new Ge(1,1,1);function a(){i.setFromEuler(n,!1)}function s(){n.setFromQuaternion(i,void 0,!1)}n._onChange(a),i._onChange(s),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:n},quaternion:{configurable:!0,enumerable:!0,value:i},scale:{configurable:!0,enumerable:!0,value:r},modelViewMatrix:{value:new Bi},normalMatrix:{value:new tn}}),this.matrix=new Bi,this.matrixWorld=new Bi,this.matrixAutoUpdate=Nb.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=Nb.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new EG,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.customDepthMaterial=void 0,this.customDistanceMaterial=void 0,this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,n){this.quaternion.setFromAxisAngle(e,n)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,n){return hh.setFromAxisAngle(e,n),this.quaternion.multiply(hh),this}rotateOnWorldAxis(e,n){return hh.setFromAxisAngle(e,n),this.quaternion.premultiply(hh),this}rotateX(e){return this.rotateOnAxis(AF,e)}rotateY(e){return this.rotateOnAxis(TF,e)}rotateZ(e){return this.rotateOnAxis(CF,e)}translateOnAxis(e,n){return EF.copy(e).applyQuaternion(this.quaternion),this.position.add(EF.multiplyScalar(n)),this}translateX(e){return this.translateOnAxis(AF,e)}translateY(e){return this.translateOnAxis(TF,e)}translateZ(e){return this.translateOnAxis(CF,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(gl.copy(this.matrixWorld).invert())}lookAt(e,n,i){e.isVector3?ty.copy(e):ty.set(e,n,i);const r=this.parent;this.updateWorldMatrix(!0,!1),lg.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?gl.lookAt(lg,ty,this.up):gl.lookAt(ty,lg,this.up),this.quaternion.setFromRotationMatrix(gl),r&&(gl.extractRotation(r.matrixWorld),hh.setFromRotationMatrix(gl),this.quaternion.premultiply(hh.invert()))}add(e){if(arguments.length>1){for(let n=0;n<arguments.length;n++)this.add(arguments[n]);return this}return e===this?(wi("Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(e.removeFromParent(),e.parent=this,this.children.push(e),e.dispatchEvent(RF),ph.child=e,this.dispatchEvent(ph),ph.child=null):wi("Object3D.add: object not an instance of THREE.Object3D.",e),this)}remove(e){if(arguments.length>1){for(let i=0;i<arguments.length;i++)this.remove(arguments[i]);return this}const n=this.children.indexOf(e);return n!==-1&&(e.parent=null,this.children.splice(n,1),e.dispatchEvent(ose),GE.child=e,this.dispatchEvent(GE),GE.child=null),this}removeFromParent(){const e=this.parent;return e!==null&&e.remove(this),this}clear(){return this.remove(...this.children)}attach(e){return this.updateWorldMatrix(!0,!1),gl.copy(this.matrixWorld).invert(),e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),gl.multiply(e.parent.matrixWorld)),e.applyMatrix4(gl),e.removeFromParent(),e.parent=this,this.children.push(e),e.updateWorldMatrix(!1,!0),e.dispatchEvent(RF),ph.child=e,this.dispatchEvent(ph),ph.child=null,this}getObjectById(e){return this.getObjectByProperty("id",e)}getObjectByName(e){return this.getObjectByProperty("name",e)}getObjectByProperty(e,n){if(this[e]===n)return this;for(let i=0,r=this.children.length;i<r;i++){const s=this.children[i].getObjectByProperty(e,n);if(s!==void 0)return s}}getObjectsByProperty(e,n,i=[]){this[e]===n&&i.push(this);const r=this.children;for(let a=0,s=r.length;a<s;a++)r[a].getObjectsByProperty(e,n,i);return i}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(lg,e,ase),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(lg,sse,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const n=this.matrixWorld.elements;return e.set(n[8],n[9],n[10]).normalize()}raycast(){}traverse(e){e(this);const n=this.children;for(let i=0,r=n.length;i<r;i++)n[i].traverse(e)}traverseVisible(e){if(this.visible===!1)return;e(this);const n=this.children;for(let i=0,r=n.length;i<r;i++)n[i].traverseVisible(e)}traverseAncestors(e){const n=this.parent;n!==null&&(e(n),n.traverseAncestors(e))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,e=!0);const n=this.children;for(let i=0,r=n.length;i<r;i++)n[i].updateMatrixWorld(e)}updateWorldMatrix(e,n){const i=this.parent;if(e===!0&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.matrixWorldAutoUpdate===!0&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),n===!0){const r=this.children;for(let a=0,s=r.length;a<s;a++)r[a].updateWorldMatrix(!1,!0)}}toJSON(e){const n=e===void 0||typeof e=="string",i={};n&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},i.metadata={version:4.7,type:"Object",generator:"Object3D.toJSON"});const r={};r.uuid=this.uuid,r.type=this.type,this.name!==""&&(r.name=this.name),this.castShadow===!0&&(r.castShadow=!0),this.receiveShadow===!0&&(r.receiveShadow=!0),this.visible===!1&&(r.visible=!1),this.frustumCulled===!1&&(r.frustumCulled=!1),this.renderOrder!==0&&(r.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.geometryInfo=this._geometryInfo.map(o=>({...o,boundingBox:o.boundingBox?o.boundingBox.toJSON():void 0,boundingSphere:o.boundingSphere?o.boundingSphere.toJSON():void 0})),r.instanceInfo=this._instanceInfo.map(o=>({...o})),r.availableInstanceIds=this._availableInstanceIds.slice(),r.availableGeometryIds=this._availableGeometryIds.slice(),r.nextIndexStart=this._nextIndexStart,r.nextVertexStart=this._nextVertexStart,r.geometryCount=this._geometryCount,r.maxInstanceCount=this._maxInstanceCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.matricesTexture=this._matricesTexture.toJSON(e),r.indirectTexture=this._indirectTexture.toJSON(e),this._colorsTexture!==null&&(r.colorsTexture=this._colorsTexture.toJSON(e)),this.boundingSphere!==null&&(r.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&&(r.boundingBox=this.boundingBox.toJSON()));function a(o,l){return o[l.uuid]===void 0&&(o[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=a(e.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const l=o.shapes;if(Array.isArray(l))for(let c=0,d=l.length;c<d;c++){const f=l[c];a(e.shapes,f)}else a(e.shapes,l)}}if(this.isSkinnedMesh&&(r.bindMode=this.bindMode,r.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(a(e.skeletons,this.skeleton),r.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){const o=[];for(let l=0,c=this.material.length;l<c;l++)o.push(a(e.materials,this.material[l]));r.material=o}else r.material=a(e.materials,this.material);if(this.children.length>0){r.children=[];for(let o=0;o<this.children.length;o++)r.children.push(this.children[o].toJSON(e).object)}if(this.animations.length>0){r.animations=[];for(let o=0;o<this.animations.length;o++){const l=this.animations[o];r.animations.push(a(e.animations,l))}}if(n){const o=s(e.geometries),l=s(e.materials),c=s(e.textures),d=s(e.images),f=s(e.shapes),p=s(e.skeletons),m=s(e.animations),y=s(e.nodes);o.length>0&&(i.geometries=o),l.length>0&&(i.materials=l),c.length>0&&(i.textures=c),d.length>0&&(i.images=d),f.length>0&&(i.shapes=f),p.length>0&&(i.skeletons=p),m.length>0&&(i.animations=m),y.length>0&&(i.nodes=y)}return i.object=r,i;function s(o){const l=[];for(const c in o){const d=o[c];delete d.metadata,l.push(d)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,n=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),n===!0)for(let i=0;i<e.children.length;i++){const r=e.children[i];this.add(r.clone())}return this}};ss.DEFAULT_UP=new Ge(0,1,0);ss.DEFAULT_MATRIX_AUTO_UPDATE=!0;ss.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;const Js=new Ge,vl=new Ge,$E=new Ge,xl=new Ge,mh=new Ge,gh=new Ge,PF=new Ge,WE=new Ge,qE=new Ge,XE=new Ge,YE=new Li,KE=new Li,ZE=new Li;let cg=class $h{constructor(e=new Ge,n=new Ge,i=new Ge){this.a=e,this.b=n,this.c=i}static getNormal(e,n,i,r){r.subVectors(i,n),Js.subVectors(e,n),r.cross(Js);const a=r.lengthSq();return a>0?r.multiplyScalar(1/Math.sqrt(a)):r.set(0,0,0)}static getBarycoord(e,n,i,r,a){Js.subVectors(r,n),vl.subVectors(i,n),$E.subVectors(e,n);const s=Js.dot(Js),o=Js.dot(vl),l=Js.dot($E),c=vl.dot(vl),d=vl.dot($E),f=s*c-o*o;if(f===0)return a.set(0,0,0),null;const p=1/f,m=(c*l-o*d)*p,y=(s*d-o*l)*p;return a.set(1-m-y,y,m)}static containsPoint(e,n,i,r){return this.getBarycoord(e,n,i,r,xl)===null?!1:xl.x>=0&&xl.y>=0&&xl.x+xl.y<=1}static getInterpolation(e,n,i,r,a,s,o,l){return this.getBarycoord(e,n,i,r,xl)===null?(l.x=0,l.y=0,"z"in l&&(l.z=0),"w"in l&&(l.w=0),null):(l.setScalar(0),l.addScaledVector(a,xl.x),l.addScaledVector(s,xl.y),l.addScaledVector(o,xl.z),l)}static getInterpolatedAttribute(e,n,i,r,a,s){return YE.setScalar(0),KE.setScalar(0),ZE.setScalar(0),YE.fromBufferAttribute(e,n),KE.fromBufferAttribute(e,i),ZE.fromBufferAttribute(e,r),s.setScalar(0),s.addScaledVector(YE,a.x),s.addScaledVector(KE,a.y),s.addScaledVector(ZE,a.z),s}static isFrontFacing(e,n,i,r){return Js.subVectors(i,n),vl.subVectors(e,n),Js.cross(vl).dot(r)<0}set(e,n,i){return this.a.copy(e),this.b.copy(n),this.c.copy(i),this}setFromPointsAndIndices(e,n,i,r){return this.a.copy(e[n]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,n,i,r){return this.a.fromBufferAttribute(e,n),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return Js.subVectors(this.c,this.b),vl.subVectors(this.a,this.b),Js.cross(vl).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return $h.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,n){return $h.getBarycoord(e,this.a,this.b,this.c,n)}getInterpolation(e,n,i,r,a){return $h.getInterpolation(e,this.a,this.b,this.c,n,i,r,a)}containsPoint(e){return $h.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return $h.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,n){const i=this.a,r=this.b,a=this.c;let s,o;mh.subVectors(r,i),gh.subVectors(a,i),WE.subVectors(e,i);const l=mh.dot(WE),c=gh.dot(WE);if(l<=0&&c<=0)return n.copy(i);qE.subVectors(e,r);const d=mh.dot(qE),f=gh.dot(qE);if(d>=0&&f<=d)return n.copy(r);const p=l*f-d*c;if(p<=0&&l>=0&&d<=0)return s=l/(l-d),n.copy(i).addScaledVector(mh,s);XE.subVectors(e,a);const m=mh.dot(XE),y=gh.dot(XE);if(y>=0&&m<=y)return n.copy(a);const b=m*c-l*y;if(b<=0&&c>=0&&y<=0)return o=c/(c-y),n.copy(i).addScaledVector(gh,o);const x=d*y-m*f;if(x<=0&&f-d>=0&&m-y>=0)return PF.subVectors(a,r),o=(f-d)/(f-d+(m-y)),n.copy(r).addScaledVector(PF,o);const v=1/(x+b+p);return s=b*v,o=p*v,n.copy(i).addScaledVector(mh,s).addScaledVector(gh,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}};const AG={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Vc={h:0,s:0,l:0},ny={h:0,s:0,l:0};function JE(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*6*(2/3-n):t}let dn=class{constructor(e,n,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,n,i)}set(e,n,i){if(n===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,n,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,n=As){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,xn.colorSpaceToWorking(this,n),this}setRGB(e,n,i,r=xn.workingColorSpace){return this.r=e,this.g=n,this.b=i,xn.colorSpaceToWorking(this,r),this}setHSL(e,n,i,r=xn.workingColorSpace){if(e=qae(e,1),n=on(n,0,1),i=on(i,0,1),n===0)this.r=this.g=this.b=i;else{const a=i<=.5?i*(1+n):i+n-i*n,s=2*i-a;this.r=JE(s,a,e+1/3),this.g=JE(s,a,e),this.b=JE(s,a,e-1/3)}return xn.colorSpaceToWorking(this,r),this}setStyle(e,n=As){function i(a){a!==void 0&&parseFloat(a)<1&&jt("Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let a;const s=r[1],o=r[2];switch(s){case"rgb":case"rgba":if(a=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return i(a[4]),this.setRGB(Math.min(255,parseInt(a[1],10))/255,Math.min(255,parseInt(a[2],10))/255,Math.min(255,parseInt(a[3],10))/255,n);if(a=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return i(a[4]),this.setRGB(Math.min(100,parseInt(a[1],10))/100,Math.min(100,parseInt(a[2],10))/100,Math.min(100,parseInt(a[3],10))/100,n);break;case"hsl":case"hsla":if(a=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return i(a[4]),this.setHSL(parseFloat(a[1])/360,parseFloat(a[2])/100,parseFloat(a[3])/100,n);break;default:jt("Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const a=r[1],s=a.length;if(s===3)return this.setRGB(parseInt(a.charAt(0),16)/15,parseInt(a.charAt(1),16)/15,parseInt(a.charAt(2),16)/15,n);if(s===6)return this.setHex(parseInt(a,16),n);jt("Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,n);return this}setColorName(e,n=As){const i=AG[e.toLowerCase()];return i!==void 0?this.setHex(i,n):jt("Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=$l(e.r),this.g=$l(e.g),this.b=$l(e.b),this}copyLinearToSRGB(e){return this.r=sp(e.r),this.g=sp(e.g),this.b=sp(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=As){return xn.workingToColorSpace($r.copy(this),e),Math.round(on($r.r*255,0,255))*65536+Math.round(on($r.g*255,0,255))*256+Math.round(on($r.b*255,0,255))}getHexString(e=As){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,n=xn.workingColorSpace){xn.workingToColorSpace($r.copy(this),n);const i=$r.r,r=$r.g,a=$r.b,s=Math.max(i,r,a),o=Math.min(i,r,a);let l,c;const d=(o+s)/2;if(o===s)l=0,c=0;else{const f=s-o;switch(c=d<=.5?f/(s+o):f/(2-s-o),s){case i:l=(r-a)/f+(r<a?6:0);break;case r:l=(a-i)/f+2;break;case a:l=(i-r)/f+4;break}l/=6}return e.h=l,e.s=c,e.l=d,e}getRGB(e,n=xn.workingColorSpace){return xn.workingToColorSpace($r.copy(this),n),e.r=$r.r,e.g=$r.g,e.b=$r.b,e}getStyle(e=As){xn.workingToColorSpace($r.copy(this),e);const n=$r.r,i=$r.g,r=$r.b;return e!==As?`color(${e} ${n.toFixed(3)} ${i.toFixed(3)} ${r.toFixed(3)})`:`rgb(${Math.round(n*255)},${Math.round(i*255)},${Math.round(r*255)})`}offsetHSL(e,n,i){return this.getHSL(Vc),this.setHSL(Vc.h+e,Vc.s+n,Vc.l+i)}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addColors(e,n){return this.r=e.r+n.r,this.g=e.g+n.g,this.b=e.b+n.b,this}addScalar(e){return this.r+=e,this.g+=e,this.b+=e,this}sub(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this}multiply(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this}lerp(e,n){return this.r+=(e.r-this.r)*n,this.g+=(e.g-this.g)*n,this.b+=(e.b-this.b)*n,this}lerpColors(e,n,i){return this.r=e.r+(n.r-e.r)*i,this.g=e.g+(n.g-e.g)*i,this.b=e.b+(n.b-e.b)*i,this}lerpHSL(e,n){this.getHSL(Vc),e.getHSL(ny);const i=LE(Vc.h,ny.h,n),r=LE(Vc.s,ny.s,n),a=LE(Vc.l,ny.l,n);return this.setHSL(i,r,a),this}setFromVector3(e){return this.r=e.x,this.g=e.y,this.b=e.z,this}applyMatrix3(e){const n=this.r,i=this.g,r=this.b,a=e.elements;return this.r=a[0]*n+a[3]*i+a[6]*r,this.g=a[1]*n+a[4]*i+a[7]*r,this.b=a[2]*n+a[5]*i+a[8]*r,this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,n=0){return this.r=e[n],this.g=e[n+1],this.b=e[n+2],this}toArray(e=[],n=0){return e[n]=this.r,e[n+1]=this.g,e[n+2]=this.b,e}fromBufferAttribute(e,n){return this.r=e.getX(n),this.g=e.getY(n),this.b=e.getZ(n),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}};const $r=new dn;dn.NAMES=AG;let lse=0,Yp=class extends Ef{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:lse++}),this.uuid=Q0(),this.name="",this.type="Material",this.blending=ap,this.side=Cu,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=M2,this.blendDst=E2,this.blendEquation=Md,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new dn(0,0,0),this.blendAlpha=0,this.depthFunc=vp,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=mF,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=oh,this.stencilZFail=oh,this.stencilZPass=oh,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const n in e){const i=e[n];if(i===void 0){jt(`Material: parameter '${n}' has value of undefined.`);continue}const r=this[n];if(r===void 0){jt(`Material: '${n}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[n]=i}}toJSON(e){const n=e===void 0||typeof e=="string";n&&(e={textures:{},images:{}});const i={metadata:{version:4.7,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.sheenColorMap&&this.sheenColorMap.isTexture&&(i.sheenColorMap=this.sheenColorMap.toJSON(e).uuid),this.sheenRoughnessMap&&this.sheenRoughnessMap.isTexture&&(i.sheenRoughnessMap=this.sheenRoughnessMap.toJSON(e).uuid),this.dispersion!==void 0&&(i.dispersion=this.dispersion),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapRotation!==void 0&&(i.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==ap&&(i.blending=this.blending),this.side!==Cu&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==M2&&(i.blendSrc=this.blendSrc),this.blendDst!==E2&&(i.blendDst=this.blendDst),this.blendEquation!==Md&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==vp&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==mF&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==oh&&(i.stencilFail=this.stencilFail),this.stencilZFail!==oh&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==oh&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(a){const s=[];for(const o in a){const l=a[o];delete l.metadata,s.push(l)}return s}if(n){const a=r(e.textures),s=r(e.images);a.length>0&&(i.textures=a),s.length>0&&(i.images=s)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const n=e.clippingPlanes;let i=null;if(n!==null){const r=n.length;i=new Array(r);for(let a=0;a!==r;++a)i[a]=n[a].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}},zP=class extends Yp{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new dn(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Ru,this.combine=RP,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}};const Di=new Ge,iy=new Jt;let cse=0,Is=class{constructor(e,n,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,Object.defineProperty(this,"id",{value:cse++}),this.name="",this.array=e,this.itemSize=n,this.count=e!==void 0?e.length/n:0,this.normalized=i,this.usage=gF,this.updateRanges=[],this.gpuType=Fl,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}setUsage(e){return this.usage=e,this}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,n,i){e*=this.itemSize,i*=n.itemSize;for(let r=0,a=this.itemSize;r<a;r++)this.array[e+r]=n.array[i+r];return this}copyArray(e){return this.array.set(e),this}applyMatrix3(e){if(this.itemSize===2)for(let n=0,i=this.count;n<i;n++)iy.fromBufferAttribute(this,n),iy.applyMatrix3(e),this.setXY(n,iy.x,iy.y);else if(this.itemSize===3)for(let n=0,i=this.count;n<i;n++)Di.fromBufferAttribute(this,n),Di.applyMatrix3(e),this.setXYZ(n,Di.x,Di.y,Di.z);return this}applyMatrix4(e){for(let n=0,i=this.count;n<i;n++)Di.fromBufferAttribute(this,n),Di.applyMatrix4(e),this.setXYZ(n,Di.x,Di.y,Di.z);return this}applyNormalMatrix(e){for(let n=0,i=this.count;n<i;n++)Di.fromBufferAttribute(this,n),Di.applyNormalMatrix(e),this.setXYZ(n,Di.x,Di.y,Di.z);return this}transformDirection(e){for(let n=0,i=this.count;n<i;n++)Di.fromBufferAttribute(this,n),Di.transformDirection(e),this.setXYZ(n,Di.x,Di.y,Di.z);return this}set(e,n=0){return this.array.set(e,n),this}getComponent(e,n){let i=this.array[e*this.itemSize+n];return this.normalized&&(i=ag(i,this.array)),i}setComponent(e,n,i){return this.normalized&&(i=Ma(i,this.array)),this.array[e*this.itemSize+n]=i,this}getX(e){let n=this.array[e*this.itemSize];return this.normalized&&(n=ag(n,this.array)),n}setX(e,n){return this.normalized&&(n=Ma(n,this.array)),this.array[e*this.itemSize]=n,this}getY(e){let n=this.array[e*this.itemSize+1];return this.normalized&&(n=ag(n,this.array)),n}setY(e,n){return this.normalized&&(n=Ma(n,this.array)),this.array[e*this.itemSize+1]=n,this}getZ(e){let n=this.array[e*this.itemSize+2];return this.normalized&&(n=ag(n,this.array)),n}setZ(e,n){return this.normalized&&(n=Ma(n,this.array)),this.array[e*this.itemSize+2]=n,this}getW(e){let n=this.array[e*this.itemSize+3];return this.normalized&&(n=ag(n,this.array)),n}setW(e,n){return this.normalized&&(n=Ma(n,this.array)),this.array[e*this.itemSize+3]=n,this}setXY(e,n,i){return e*=this.itemSize,this.normalized&&(n=Ma(n,this.array),i=Ma(i,this.array)),this.array[e+0]=n,this.array[e+1]=i,this}setXYZ(e,n,i,r){return e*=this.itemSize,this.normalized&&(n=Ma(n,this.array),i=Ma(i,this.array),r=Ma(r,this.array)),this.array[e+0]=n,this.array[e+1]=i,this.array[e+2]=r,this}setXYZW(e,n,i,r,a){return e*=this.itemSize,this.normalized&&(n=Ma(n,this.array),i=Ma(i,this.array),r=Ma(r,this.array),a=Ma(a,this.array)),this.array[e+0]=n,this.array[e+1]=i,this.array[e+2]=r,this.array[e+3]=a,this}onUpload(e){return this.onUploadCallback=e,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return this.name!==""&&(e.name=this.name),this.usage!==gF&&(e.usage=this.usage),e}},TG=class extends Is{constructor(e,n,i){super(new Uint16Array(e),n,i)}},CG=class extends Is{constructor(e,n,i){super(new Uint32Array(e),n,i)}},fo=class extends Is{constructor(e,n,i){super(new Float32Array(e),n,i)}},use=0;const vs=new Bi,QE=new ss,vh=new Ge,Xa=new lf,ug=new lf,pr=new Ge;let Yo=class RG extends Ef{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:use++}),this.uuid=Q0(),this.name="",this.type="BufferGeometry",this.index=null,this.indirect=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(e){return Array.isArray(e)?this.index=new(xG(e)?CG:TG)(e,1):this.index=e,this}setIndirect(e){return this.indirect=e,this}getIndirect(){return this.indirect}getAttribute(e){return this.attributes[e]}setAttribute(e,n){return this.attributes[e]=n,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,n,i=0){this.groups.push({start:e,count:n,materialIndex:i})}clearGroups(){this.groups=[]}setDrawRange(e,n){this.drawRange.start=e,this.drawRange.count=n}applyMatrix4(e){const n=this.attributes.position;n!==void 0&&(n.applyMatrix4(e),n.needsUpdate=!0);const i=this.attributes.normal;if(i!==void 0){const a=new tn().getNormalMatrix(e);i.applyNormalMatrix(a),i.needsUpdate=!0}const r=this.attributes.tangent;return r!==void 0&&(r.transformDirection(e),r.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(e){return vs.makeRotationFromQuaternion(e),this.applyMatrix4(vs),this}rotateX(e){return vs.makeRotationX(e),this.applyMatrix4(vs),this}rotateY(e){return vs.makeRotationY(e),this.applyMatrix4(vs),this}rotateZ(e){return vs.makeRotationZ(e),this.applyMatrix4(vs),this}translate(e,n,i){return vs.makeTranslation(e,n,i),this.applyMatrix4(vs),this}scale(e,n,i){return vs.makeScale(e,n,i),this.applyMatrix4(vs),this}lookAt(e){return QE.lookAt(e),QE.updateMatrix(),this.applyMatrix4(QE.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(vh).negate(),this.translate(vh.x,vh.y,vh.z),this}setFromPoints(e){const n=this.getAttribute("position");if(n===void 0){const i=[];for(let r=0,a=e.length;r<a;r++){const s=e[r];i.push(s.x,s.y,s.z||0)}this.setAttribute("position",new fo(i,3))}else{const i=Math.min(e.length,n.count);for(let r=0;r<i;r++){const a=e[r];n.setXYZ(r,a.x,a.y,a.z||0)}e.length>n.count&&jt("BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry."),n.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new lf);const e=this.attributes.position,n=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){wi("BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.",this),this.boundingBox.set(new Ge(-1/0,-1/0,-1/0),new Ge(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),n)for(let i=0,r=n.length;i<r;i++){const a=n[i];Xa.setFromBufferAttribute(a),this.morphTargetsRelative?(pr.addVectors(this.boundingBox.min,Xa.min),this.boundingBox.expandByPoint(pr),pr.addVectors(this.boundingBox.max,Xa.max),this.boundingBox.expandByPoint(pr)):(this.boundingBox.expandByPoint(Xa.min),this.boundingBox.expandByPoint(Xa.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&wi('BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new nS);const e=this.attributes.position,n=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){wi("BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.",this),this.boundingSphere.set(new Ge,1/0);return}if(e){const i=this.boundingSphere.center;if(Xa.setFromBufferAttribute(e),n)for(let a=0,s=n.length;a<s;a++){const o=n[a];ug.setFromBufferAttribute(o),this.morphTargetsRelative?(pr.addVectors(Xa.min,ug.min),Xa.expandByPoint(pr),pr.addVectors(Xa.max,ug.max),Xa.expandByPoint(pr)):(Xa.expandByPoint(ug.min),Xa.expandByPoint(ug.max))}Xa.getCenter(i);let r=0;for(let a=0,s=e.count;a<s;a++)pr.fromBufferAttribute(e,a),r=Math.max(r,i.distanceToSquared(pr));if(n)for(let a=0,s=n.length;a<s;a++){const o=n[a],l=this.morphTargetsRelative;for(let c=0,d=o.count;c<d;c++)pr.fromBufferAttribute(o,c),l&&(vh.fromBufferAttribute(e,c),pr.add(vh)),r=Math.max(r,i.distanceToSquared(pr))}this.boundingSphere.radius=Math.sqrt(r),isNaN(this.boundingSphere.radius)&&wi('BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){const e=this.index,n=this.attributes;if(e===null||n.position===void 0||n.normal===void 0||n.uv===void 0){wi("BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}const i=n.position,r=n.normal,a=n.uv;this.hasAttribute("tangent")===!1&&this.setAttribute("tangent",new Is(new Float32Array(4*i.count),4));const s=this.getAttribute("tangent"),o=[],l=[];for(let U=0;U<i.count;U++)o[U]=new Ge,l[U]=new Ge;const c=new Ge,d=new Ge,f=new Ge,p=new Jt,m=new Jt,y=new Jt,b=new Ge,x=new Ge;function v(U,P,k){c.fromBufferAttribute(i,U),d.fromBufferAttribute(i,P),f.fromBufferAttribute(i,k),p.fromBufferAttribute(a,U),m.fromBufferAttribute(a,P),y.fromBufferAttribute(a,k),d.sub(c),f.sub(c),m.sub(p),y.sub(p);const B=1/(m.x*y.y-y.x*m.y);isFinite(B)&&(b.copy(d).multiplyScalar(y.y).addScaledVector(f,-m.y).multiplyScalar(B),x.copy(f).multiplyScalar(m.x).addScaledVector(d,-y.x).multiplyScalar(B),o[U].add(b),o[P].add(b),o[k].add(b),l[U].add(x),l[P].add(x),l[k].add(x))}let w=this.groups;w.length===0&&(w=[{start:0,count:e.count}]);for(let U=0,P=w.length;U<P;++U){const k=w[U],B=k.start,I=k.count;for(let W=B,O=B+I;W<O;W+=3)v(e.getX(W+0),e.getX(W+1),e.getX(W+2))}const M=new Ge,A=new Ge,T=new Ge,D=new Ge;function C(U){T.fromBufferAttribute(r,U),D.copy(T);const P=o[U];M.copy(P),M.sub(T.multiplyScalar(T.dot(P))).normalize(),A.crossVectors(D,P);const B=A.dot(l[U])<0?-1:1;s.setXYZW(U,M.x,M.y,M.z,B)}for(let U=0,P=w.length;U<P;++U){const k=w[U],B=k.start,I=k.count;for(let W=B,O=B+I;W<O;W+=3)C(e.getX(W+0)),C(e.getX(W+1)),C(e.getX(W+2))}}computeVertexNormals(){const e=this.index,n=this.getAttribute("position");if(n!==void 0){let i=this.getAttribute("normal");if(i===void 0)i=new Is(new Float32Array(n.count*3),3),this.setAttribute("normal",i);else for(let p=0,m=i.count;p<m;p++)i.setXYZ(p,0,0,0);const r=new Ge,a=new Ge,s=new Ge,o=new Ge,l=new Ge,c=new Ge,d=new Ge,f=new Ge;if(e)for(let p=0,m=e.count;p<m;p+=3){const y=e.getX(p+0),b=e.getX(p+1),x=e.getX(p+2);r.fromBufferAttribute(n,y),a.fromBufferAttribute(n,b),s.fromBufferAttribute(n,x),d.subVectors(s,a),f.subVectors(r,a),d.cross(f),o.fromBufferAttribute(i,y),l.fromBufferAttribute(i,b),c.fromBufferAttribute(i,x),o.add(d),l.add(d),c.add(d),i.setXYZ(y,o.x,o.y,o.z),i.setXYZ(b,l.x,l.y,l.z),i.setXYZ(x,c.x,c.y,c.z)}else for(let p=0,m=n.count;p<m;p+=3)r.fromBufferAttribute(n,p+0),a.fromBufferAttribute(n,p+1),s.fromBufferAttribute(n,p+2),d.subVectors(s,a),f.subVectors(r,a),d.cross(f),i.setXYZ(p+0,d.x,d.y,d.z),i.setXYZ(p+1,d.x,d.y,d.z),i.setXYZ(p+2,d.x,d.y,d.z);this.normalizeNormals(),i.needsUpdate=!0}}normalizeNormals(){const e=this.attributes.normal;for(let n=0,i=e.count;n<i;n++)pr.fromBufferAttribute(e,n),pr.normalize(),e.setXYZ(n,pr.x,pr.y,pr.z)}toNonIndexed(){function e(o,l){const c=o.array,d=o.itemSize,f=o.normalized,p=new c.constructor(l.length*d);let m=0,y=0;for(let b=0,x=l.length;b<x;b++){o.isInterleavedBufferAttribute?m=l[b]*o.data.stride+o.offset:m=l[b]*d;for(let v=0;v<d;v++)p[y++]=c[m++]}return new Is(p,d,f)}if(this.index===null)return jt("BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const n=new RG,i=this.index.array,r=this.attributes;for(const o in r){const l=r[o],c=e(l,i);n.setAttribute(o,c)}const a=this.morphAttributes;for(const o in a){const l=[],c=a[o];for(let d=0,f=c.length;d<f;d++){const p=c[d],m=e(p,i);l.push(m)}n.morphAttributes[o]=l}n.morphTargetsRelative=this.morphTargetsRelative;const s=this.groups;for(let o=0,l=s.length;o<l;o++){const c=s[o];n.addGroup(c.start,c.count,c.materialIndex)}return n}toJSON(){const e={metadata:{version:4.7,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),Object.keys(this.userData).length>0&&(e.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const c in l)l[c]!==void 0&&(e[c]=l[c]);return e}e.data={attributes:{}};const n=this.index;n!==null&&(e.data.index={type:n.array.constructor.name,array:Array.prototype.slice.call(n.array)});const i=this.attributes;for(const l in i){const c=i[l];e.data.attributes[l]=c.toJSON(e.data)}const r={};let a=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],d=[];for(let f=0,p=c.length;f<p;f++){const m=c[f];d.push(m.toJSON(e.data))}d.length>0&&(r[l]=d,a=!0)}a&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));const o=this.boundingSphere;return o!==null&&(e.data.boundingSphere=o.toJSON()),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const n={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone());const r=e.attributes;for(const c in r){const d=r[c];this.setAttribute(c,d.clone(n))}const a=e.morphAttributes;for(const c in a){const d=[],f=a[c];for(let p=0,m=f.length;p<m;p++)d.push(f[p].clone(n));this.morphAttributes[c]=d}this.morphTargetsRelative=e.morphTargetsRelative;const s=e.groups;for(let c=0,d=s.length;c<d;c++){const f=s[c];this.addGroup(f.start,f.count,f.materialIndex)}const o=e.boundingBox;o!==null&&(this.boundingBox=o.clone());const l=e.boundingSphere;return l!==null&&(this.boundingSphere=l.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}};const DF=new Bi,cd=new FP,ry=new nS,NF=new Ge,ay=new Ge,sy=new Ge,oy=new Ge,eA=new Ge,ly=new Ge,OF=new Ge,cy=new Ge;let Bo=class extends ss{constructor(e=new Yo,n=new zP){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=n,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(e,n){return super.copy(e,n),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}updateMorphTargets(){const n=this.geometry.morphAttributes,i=Object.keys(n);if(i.length>0){const r=n[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=r.length;a<s;a++){const o=r[a].name||String(a);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=a}}}}getVertexPosition(e,n){const i=this.geometry,r=i.attributes.position,a=i.morphAttributes.position,s=i.morphTargetsRelative;n.fromBufferAttribute(r,e);const o=this.morphTargetInfluences;if(a&&o){ly.set(0,0,0);for(let l=0,c=a.length;l<c;l++){const d=o[l],f=a[l];d!==0&&(eA.fromBufferAttribute(f,e),s?ly.addScaledVector(eA,d):ly.addScaledVector(eA.sub(n),d))}n.add(ly)}return n}raycast(e,n){const i=this.geometry,r=this.material,a=this.matrixWorld;r!==void 0&&(i.boundingSphere===null&&i.computeBoundingSphere(),ry.copy(i.boundingSphere),ry.applyMatrix4(a),cd.copy(e.ray).recast(e.near),!(ry.containsPoint(cd.origin)===!1&&(cd.intersectSphere(ry,NF)===null||cd.origin.distanceToSquared(NF)>(e.far-e.near)**2))&&(DF.copy(a).invert(),cd.copy(e.ray).applyMatrix4(DF),!(i.boundingBox!==null&&cd.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,n,cd)))}_computeIntersections(e,n,i){let r;const a=this.geometry,s=this.material,o=a.index,l=a.attributes.position,c=a.attributes.uv,d=a.attributes.uv1,f=a.attributes.normal,p=a.groups,m=a.drawRange;if(o!==null)if(Array.isArray(s))for(let y=0,b=p.length;y<b;y++){const x=p[y],v=s[x.materialIndex],w=Math.max(x.start,m.start),M=Math.min(o.count,Math.min(x.start+x.count,m.start+m.count));for(let A=w,T=M;A<T;A+=3){const D=o.getX(A),C=o.getX(A+1),U=o.getX(A+2);r=uy(this,v,e,i,c,d,f,D,C,U),r&&(r.faceIndex=Math.floor(A/3),r.face.materialIndex=x.materialIndex,n.push(r))}}else{const y=Math.max(0,m.start),b=Math.min(o.count,m.start+m.count);for(let x=y,v=b;x<v;x+=3){const w=o.getX(x),M=o.getX(x+1),A=o.getX(x+2);r=uy(this,s,e,i,c,d,f,w,M,A),r&&(r.faceIndex=Math.floor(x/3),n.push(r))}}else if(l!==void 0)if(Array.isArray(s))for(let y=0,b=p.length;y<b;y++){const x=p[y],v=s[x.materialIndex],w=Math.max(x.start,m.start),M=Math.min(l.count,Math.min(x.start+x.count,m.start+m.count));for(let A=w,T=M;A<T;A+=3){const D=A,C=A+1,U=A+2;r=uy(this,v,e,i,c,d,f,D,C,U),r&&(r.faceIndex=Math.floor(A/3),r.face.materialIndex=x.materialIndex,n.push(r))}}else{const y=Math.max(0,m.start),b=Math.min(l.count,m.start+m.count);for(let x=y,v=b;x<v;x+=3){const w=x,M=x+1,A=x+2;r=uy(this,s,e,i,c,d,f,w,M,A),r&&(r.faceIndex=Math.floor(x/3),n.push(r))}}}};function dse(t,e,n,i,r,a,s,o){let l;if(e.side===Pa?l=i.intersectTriangle(s,a,r,!0,o):l=i.intersectTriangle(r,a,s,e.side===Cu,o),l===null)return null;cy.copy(o),cy.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(cy);return c<n.near||c>n.far?null:{distance:c,point:cy.clone(),object:t}}function uy(t,e,n,i,r,a,s,o,l,c){t.getVertexPosition(o,ay),t.getVertexPosition(l,sy),t.getVertexPosition(c,oy);const d=dse(t,e,n,i,ay,sy,oy,OF);if(d){const f=new Ge;cg.getBarycoord(OF,ay,sy,oy,f),r&&(d.uv=cg.getInterpolatedAttribute(r,o,l,c,f,new Jt)),a&&(d.uv1=cg.getInterpolatedAttribute(a,o,l,c,f,new Jt)),s&&(d.normal=cg.getInterpolatedAttribute(s,o,l,c,f,new Ge),d.normal.dot(i.direction)>0&&d.normal.multiplyScalar(-1));const p={a:o,b:l,c,normal:new Ge,materialIndex:0};cg.getNormal(ay,sy,oy,p.normal),d.face=p,d.barycoord=f}return d}let BP=class PG extends Yo{constructor(e=1,n=1,i=1,r=1,a=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:n,depth:i,widthSegments:r,heightSegments:a,depthSegments:s};const o=this;r=Math.floor(r),a=Math.floor(a),s=Math.floor(s);const l=[],c=[],d=[],f=[];let p=0,m=0;y("z","y","x",-1,-1,i,n,e,s,a,0),y("z","y","x",1,-1,i,n,-e,s,a,1),y("x","z","y",1,1,e,i,n,r,s,2),y("x","z","y",1,-1,e,i,-n,r,s,3),y("x","y","z",1,-1,e,n,i,r,a,4),y("x","y","z",-1,-1,e,n,-i,r,a,5),this.setIndex(l),this.setAttribute("position",new fo(c,3)),this.setAttribute("normal",new fo(d,3)),this.setAttribute("uv",new fo(f,2));function y(b,x,v,w,M,A,T,D,C,U,P){const k=A/C,B=T/U,I=A/2,W=T/2,O=D/2,$=C+1,q=U+1;let G=0,Y=0;const Q=new Ge;for(let se=0;se<q;se++){const H=se*B-W;for(let X=0;X<$;X++){const re=X*k-I;Q[b]=re*w,Q[x]=H*M,Q[v]=O,c.push(Q.x,Q.y,Q.z),Q[b]=0,Q[x]=0,Q[v]=D>0?1:-1,d.push(Q.x,Q.y,Q.z),f.push(X/C),f.push(1-se/U),G+=1}}for(let se=0;se<U;se++)for(let H=0;H<C;H++){const X=p+H+$*se,re=p+H+$*(se+1),ce=p+(H+1)+$*(se+1),ye=p+(H+1)+$*se;l.push(X,re,ye),l.push(re,ce,ye),Y+=6}o.addGroup(m,Y,P),m+=Y,p+=G}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new PG(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}};function _p(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion)?r.isRenderTargetTexture?(jt("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[n][i]=null):e[n][i]=r.clone():Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function sa(t){const e={};for(let n=0;n<t.length;n++){const i=_p(t[n]);for(const r in i)e[r]=i[r]}return e}function fse(t){const e=[];for(let n=0;n<t.length;n++)e.push(t[n].clone());return e}function DG(t){const e=t.getRenderTarget();return e===null?t.outputColorSpace:e.isXRRenderTarget===!0?e.texture.colorSpace:xn.workingColorSpace}const hse={clone:_p,merge:sa};var pse=`void main() {
- gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
- }`,mse=`void main() {
- gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
- }`;let Jl=class extends Yp{constructor(e){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=pse,this.fragmentShader=mse,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&this.setValues(e)}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=_p(e.uniforms),this.uniformsGroups=fse(e.uniformsGroups),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.fog=e.fog,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this}toJSON(e){const n=super.toJSON(e);n.glslVersion=this.glslVersion,n.uniforms={};for(const r in this.uniforms){const s=this.uniforms[r].value;s&&s.isTexture?n.uniforms[r]={type:"t",value:s.toJSON(e).uuid}:s&&s.isColor?n.uniforms[r]={type:"c",value:s.getHex()}:s&&s.isVector2?n.uniforms[r]={type:"v2",value:s.toArray()}:s&&s.isVector3?n.uniforms[r]={type:"v3",value:s.toArray()}:s&&s.isVector4?n.uniforms[r]={type:"v4",value:s.toArray()}:s&&s.isMatrix3?n.uniforms[r]={type:"m3",value:s.toArray()}:s&&s.isMatrix4?n.uniforms[r]={type:"m4",value:s.toArray()}:n.uniforms[r]={value:s}}Object.keys(this.defines).length>0&&(n.defines=this.defines),n.vertexShader=this.vertexShader,n.fragmentShader=this.fragmentShader,n.lights=this.lights,n.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(n.extensions=i),n}},NG=class extends ss{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Bi,this.projectionMatrix=new Bi,this.projectionMatrixInverse=new Bi,this.coordinateSystem=Oo,this._reversedDepth=!1}get reversedDepth(){return this._reversedDepth}copy(e,n){return super.copy(e,n),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}};const Gc=new Ge,LF=new Jt,kF=new Jt;let Rs=class extends NG{constructor(e=50,n=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=n,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,n){return super.copy(e,n),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const n=.5*this.getFilmHeight()/e;this.fov=dR*2*Math.atan(n),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(Pb*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return dR*2*Math.atan(Math.tan(Pb*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(e,n,i){Gc.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),n.set(Gc.x,Gc.y).multiplyScalar(-e/Gc.z),Gc.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set(Gc.x,Gc.y).multiplyScalar(-e/Gc.z)}getViewSize(e,n){return this.getViewBounds(e,LF,kF),n.subVectors(kF,LF)}setViewOffset(e,n,i,r,a,s){this.aspect=e/n,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=n,this.view.offsetX=i,this.view.offsetY=r,this.view.width=a,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let n=e*Math.tan(Pb*.5*this.fov)/this.zoom,i=2*n,r=this.aspect*i,a=-.5*r;const s=this.view;if(this.view!==null&&this.view.enabled){const l=s.fullWidth,c=s.fullHeight;a+=s.offsetX*r/l,n-=s.offsetY*i/c,r*=s.width/l,i*=s.height/c}const o=this.filmOffset;o!==0&&(a+=e*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(a,a+r,n,n-i,e,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const n=super.toJSON(e);return n.object.fov=this.fov,n.object.zoom=this.zoom,n.object.near=this.near,n.object.far=this.far,n.object.focus=this.focus,n.object.aspect=this.aspect,this.view!==null&&(n.object.view=Object.assign({},this.view)),n.object.filmGauge=this.filmGauge,n.object.filmOffset=this.filmOffset,n}};const xh=-90,yh=1;let gse=class extends ss{constructor(e,n,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Rs(xh,yh,e,n);r.layers=this.layers,this.add(r);const a=new Rs(xh,yh,e,n);a.layers=this.layers,this.add(a);const s=new Rs(xh,yh,e,n);s.layers=this.layers,this.add(s);const o=new Rs(xh,yh,e,n);o.layers=this.layers,this.add(o);const l=new Rs(xh,yh,e,n);l.layers=this.layers,this.add(l);const c=new Rs(xh,yh,e,n);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const e=this.coordinateSystem,n=this.children.concat(),[i,r,a,s,o,l]=n;for(const c of n)this.remove(c);if(e===Oo)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),a.up.set(0,0,-1),a.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),o.up.set(0,1,0),o.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===e_)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),a.up.set(0,0,1),a.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),o.up.set(0,-1,0),o.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const c of n)this.add(c),c.updateMatrixWorld()}update(e,n){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[a,s,o,l,c,d]=this.children,f=e.getRenderTarget(),p=e.getActiveCubeFace(),m=e.getActiveMipmapLevel(),y=e.xr.enabled;e.xr.enabled=!1;const b=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(n,a),e.setRenderTarget(i,1,r),e.render(n,s),e.setRenderTarget(i,2,r),e.render(n,o),e.setRenderTarget(i,3,r),e.render(n,l),e.setRenderTarget(i,4,r),e.render(n,c),i.texture.generateMipmaps=b,e.setRenderTarget(i,5,r),e.render(n,d),e.setRenderTarget(f,p,m),e.xr.enabled=y,i.texture.needsPMREMUpdate=!0}},OG=class extends vo{constructor(e=[],n=xp,i,r,a,s,o,l,c,d){super(e,n,i,r,a,s,o,l,c,d),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}},vse=class extends of{constructor(e=1,n={}){super(e,e,n),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];this.texture=new OG(r),this._setTextureOptions(n),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(e,n){this.texture.type=n.type,this.texture.colorSpace=n.colorSpace,this.texture.generateMipmaps=n.generateMipmaps,this.texture.minFilter=n.minFilter,this.texture.magFilter=n.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:`
- varying vec3 vWorldDirection;
- vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
- return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
- }
- void main() {
- vWorldDirection = transformDirection( position, modelMatrix );
- #include <begin_vertex>
- #include <project_vertex>
- }
- `,fragmentShader:`
- uniform sampler2D tEquirect;
- varying vec3 vWorldDirection;
- #include <common>
- void main() {
- vec3 direction = normalize( vWorldDirection );
- vec2 sampleUV = equirectUv( direction );
- gl_FragColor = texture2D( tEquirect, sampleUV );
- }
- `},r=new BP(5,5,5),a=new Jl({name:"CubemapFromEquirect",uniforms:_p(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Pa,blending:Gl});a.uniforms.tEquirect.value=n;const s=new Bo(r,a),o=n.minFilter;return n.minFilter===Dd&&(n.minFilter=Ls),new gse(1,10,this).update(e,s),n.minFilter=o,s.geometry.dispose(),s.material.dispose(),this}clear(e,n=!0,i=!0,r=!0){const a=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(n,i,r);e.setRenderTarget(a)}},Rg=class extends ss{constructor(){super(),this.isGroup=!0,this.type="Group"}};const xse={type:"move"};let tA=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Rg,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Rg,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Ge,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Ge),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Rg,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Ge,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Ge),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const n=this._hand;if(n)for(const i of e.hand.values())this._getHandJoint(n,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,n,i){let r=null,a=null,s=null;const o=this._targetRay,l=this._grip,c=this._hand;if(e&&n.session.visibilityState!=="visible-blurred"){if(c&&e.hand){s=!0;for(const b of e.hand.values()){const x=n.getJointPose(b,i),v=this._getHandJoint(c,b);x!==null&&(v.matrix.fromArray(x.transform.matrix),v.matrix.decompose(v.position,v.rotation,v.scale),v.matrixWorldNeedsUpdate=!0,v.jointRadius=x.radius),v.visible=x!==null}const d=c.joints["index-finger-tip"],f=c.joints["thumb-tip"],p=d.position.distanceTo(f.position),m=.02,y=.005;c.inputState.pinching&&p>m+y?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&p<=m-y&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(a=n.getPose(e.gripSpace,i),a!==null&&(l.matrix.fromArray(a.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,a.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(a.linearVelocity)):l.hasLinearVelocity=!1,a.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(a.angularVelocity)):l.hasAngularVelocity=!1));o!==null&&(r=n.getPose(e.targetRaySpace,i),r===null&&a!==null&&(r=a),r!==null&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(xse)))}return o!==null&&(o.visible=r!==null),l!==null&&(l.visible=a!==null),c!==null&&(c.visible=s!==null),this}_getHandJoint(e,n){if(e.joints[n.jointName]===void 0){const i=new Rg;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[n.jointName]=i,e.add(i)}return e.joints[n.jointName]}},yse=class extends ss{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new Ru,this.environmentIntensity=1,this.environmentRotation=new Ru,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,n){return super.copy(e,n),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,this.backgroundRotation.copy(e.backgroundRotation),this.environmentIntensity=e.environmentIntensity,this.environmentRotation.copy(e.environmentRotation),e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const n=super.toJSON(e);return this.fog!==null&&(n.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(n.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(n.object.backgroundIntensity=this.backgroundIntensity),n.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&&(n.object.environmentIntensity=this.environmentIntensity),n.object.environmentRotation=this.environmentRotation.toArray(),n}},bse=class extends vo{constructor(e=null,n=1,i=1,r,a,s,o,l,c=ns,d=ns,f,p){super(null,s,o,l,c,d,r,a,f,p),this.isDataTexture=!0,this.image={data:e,width:n,height:i},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}};const nA=new Ge,_se=new Ge,Sse=new tn;let eu=class{constructor(e=new Ge(1,0,0),n=0){this.isPlane=!0,this.normal=e,this.constant=n}set(e,n){return this.normal.copy(e),this.constant=n,this}setComponents(e,n,i,r){return this.normal.set(e,n,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,n){return this.normal.copy(e),this.constant=-n.dot(this.normal),this}setFromCoplanarPoints(e,n,i){const r=nA.subVectors(i,n).cross(_se.subVectors(e,n)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,n){return n.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,n){const i=e.delta(nA),r=this.normal.dot(i);if(r===0)return this.distanceToPoint(e.start)===0?n.copy(e.start):null;const a=-(e.start.dot(this.normal)+this.constant)/r;return a<0||a>1?null:n.copy(e.start).addScaledVector(i,a)}intersectsLine(e){const n=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return n<0&&i>0||i<0&&n>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,n){const i=n||Sse.getNormalMatrix(e),r=this.coplanarPoint(nA).applyMatrix4(e),a=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(a),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}};const ud=new nS,wse=new Jt(.5,.5),dy=new Ge;let jP=class{constructor(e=new eu,n=new eu,i=new eu,r=new eu,a=new eu,s=new eu){this.planes=[e,n,i,r,a,s]}set(e,n,i,r,a,s){const o=this.planes;return o[0].copy(e),o[1].copy(n),o[2].copy(i),o[3].copy(r),o[4].copy(a),o[5].copy(s),this}copy(e){const n=this.planes;for(let i=0;i<6;i++)n[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,n=Oo,i=!1){const r=this.planes,a=e.elements,s=a[0],o=a[1],l=a[2],c=a[3],d=a[4],f=a[5],p=a[6],m=a[7],y=a[8],b=a[9],x=a[10],v=a[11],w=a[12],M=a[13],A=a[14],T=a[15];if(r[0].setComponents(c-s,m-d,v-y,T-w).normalize(),r[1].setComponents(c+s,m+d,v+y,T+w).normalize(),r[2].setComponents(c+o,m+f,v+b,T+M).normalize(),r[3].setComponents(c-o,m-f,v-b,T-M).normalize(),i)r[4].setComponents(l,p,x,A).normalize(),r[5].setComponents(c-l,m-p,v-x,T-A).normalize();else if(r[4].setComponents(c-l,m-p,v-x,T-A).normalize(),n===Oo)r[5].setComponents(c+l,m+p,v+x,T+A).normalize();else if(n===e_)r[5].setComponents(l,p,x,A).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+n);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),ud.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const n=e.geometry;n.boundingSphere===null&&n.computeBoundingSphere(),ud.copy(n.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(ud)}intersectsSprite(e){ud.center.set(0,0,0);const n=wse.distanceTo(e.center);return ud.radius=.7071067811865476+n,ud.applyMatrix4(e.matrixWorld),this.intersectsSphere(ud)}intersectsSphere(e){const n=this.planes,i=e.center,r=-e.radius;for(let a=0;a<6;a++)if(n[a].distanceToPoint(i)<r)return!1;return!0}intersectsBox(e){const n=this.planes;for(let i=0;i<6;i++){const r=n[i];if(dy.x=r.normal.x>0?e.max.x:e.min.x,dy.y=r.normal.y>0?e.max.y:e.min.y,dy.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(dy)<0)return!1}return!0}containsPoint(e){const n=this.planes;for(let i=0;i<6;i++)if(n[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}},LG=class extends Yp{constructor(e){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new dn(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}};const n_=new Ge,i_=new Ge,IF=new Bi,dg=new FP,fy=new nS,iA=new Ge,UF=new Ge;let Mse=class extends ss{constructor(e=new Yo,n=new LG){super(),this.isLine=!0,this.type="Line",this.geometry=e,this.material=n,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(e,n){return super.copy(e,n),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}computeLineDistances(){const e=this.geometry;if(e.index===null){const n=e.attributes.position,i=[0];for(let r=1,a=n.count;r<a;r++)n_.fromBufferAttribute(n,r-1),i_.fromBufferAttribute(n,r),i[r]=i[r-1],i[r]+=n_.distanceTo(i_);e.setAttribute("lineDistance",new fo(i,1))}else jt("Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(e,n){const i=this.geometry,r=this.matrixWorld,a=e.params.Line.threshold,s=i.drawRange;if(i.boundingSphere===null&&i.computeBoundingSphere(),fy.copy(i.boundingSphere),fy.applyMatrix4(r),fy.radius+=a,e.ray.intersectsSphere(fy)===!1)return;IF.copy(r).invert(),dg.copy(e.ray).applyMatrix4(IF);const o=a/((this.scale.x+this.scale.y+this.scale.z)/3),l=o*o,c=this.isLineSegments?2:1,d=i.index,p=i.attributes.position;if(d!==null){const m=Math.max(0,s.start),y=Math.min(d.count,s.start+s.count);for(let b=m,x=y-1;b<x;b+=c){const v=d.getX(b),w=d.getX(b+1),M=hy(this,e,dg,l,v,w,b);M&&n.push(M)}if(this.isLineLoop){const b=d.getX(y-1),x=d.getX(m),v=hy(this,e,dg,l,b,x,y-1);v&&n.push(v)}}else{const m=Math.max(0,s.start),y=Math.min(p.count,s.start+s.count);for(let b=m,x=y-1;b<x;b+=c){const v=hy(this,e,dg,l,b,b+1,b);v&&n.push(v)}if(this.isLineLoop){const b=hy(this,e,dg,l,y-1,m,y-1);b&&n.push(b)}}}updateMorphTargets(){const n=this.geometry.morphAttributes,i=Object.keys(n);if(i.length>0){const r=n[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=r.length;a<s;a++){const o=r[a].name||String(a);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=a}}}}};function hy(t,e,n,i,r,a,s){const o=t.geometry.attributes.position;if(n_.fromBufferAttribute(o,r),i_.fromBufferAttribute(o,a),n.distanceSqToSegment(n_,i_,iA,UF)>i)return;iA.applyMatrix4(t.matrixWorld);const c=e.ray.origin.distanceTo(iA);if(!(c<e.near||c>e.far))return{distance:c,point:UF.clone().applyMatrix4(t.matrixWorld),index:s,face:null,faceIndex:null,barycoord:null,object:t}}const FF=new Ge,zF=new Ge;let Ese=class extends Mse{constructor(e,n){super(e,n),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.index===null){const n=e.attributes.position,i=[];for(let r=0,a=n.count;r<a;r+=2)FF.fromBufferAttribute(n,r),zF.fromBufferAttribute(n,r+1),i[r]=r===0?0:i[r-1],i[r+1]=i[r]+FF.distanceTo(zF);e.setAttribute("lineDistance",new fo(i,1))}else jt("LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}},kG=class extends vo{constructor(e,n,i=af,r,a,s,o=ns,l=ns,c,d=h0,f=1){if(d!==h0&&d!==p0)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");const p={width:e,height:n,depth:f};super(p,r,a,s,o,l,d,i,c),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.source=new UP(Object.assign({},e.image)),this.compareFunction=e.compareFunction,this}toJSON(e){const n=super.toJSON(e);return this.compareFunction!==null&&(n.compareFunction=this.compareFunction),n}};class IG extends vo{constructor(e=null){super(),this.sourceTexture=e,this.isExternalTexture=!0}copy(e){return super.copy(e),this.sourceTexture=e.sourceTexture,this}}let HP=class UG extends Yo{constructor(e=1,n=1,i=1,r=1){super(),this.type="PlaneGeometry",this.parameters={width:e,height:n,widthSegments:i,heightSegments:r};const a=e/2,s=n/2,o=Math.floor(i),l=Math.floor(r),c=o+1,d=l+1,f=e/o,p=n/l,m=[],y=[],b=[],x=[];for(let v=0;v<d;v++){const w=v*p-s;for(let M=0;M<c;M++){const A=M*f-a;y.push(A,-w,0),b.push(0,0,1),x.push(M/o),x.push(1-v/l)}}for(let v=0;v<l;v++)for(let w=0;w<o;w++){const M=w+c*v,A=w+c*(v+1),T=w+1+c*(v+1),D=w+1+c*v;m.push(M,A,D),m.push(A,T,D)}this.setIndex(m),this.setAttribute("position",new fo(y,3)),this.setAttribute("normal",new fo(b,3)),this.setAttribute("uv",new fo(x,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new UG(e.width,e.height,e.widthSegments,e.heightSegments)}};class Ase extends Yp{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new dn(16777215),this.specular=new dn(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new dn(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=gG,this.normalScale=new Jt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new Ru,this.combine=RP,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.specular.copy(e.specular),this.shininess=e.shininess,this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapRotation.copy(e.envMapRotation),this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}let Tse=class extends Yp{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=kae,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}},Cse=class extends Yp{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}},FG=class extends ss{constructor(e,n=1){super(),this.isLight=!0,this.type="Light",this.color=new dn(e),this.intensity=n}dispose(){}copy(e,n){return super.copy(e,n),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const n=super.toJSON(e);return n.object.color=this.color.getHex(),n.object.intensity=this.intensity,this.groundColor!==void 0&&(n.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(n.object.distance=this.distance),this.angle!==void 0&&(n.object.angle=this.angle),this.decay!==void 0&&(n.object.decay=this.decay),this.penumbra!==void 0&&(n.object.penumbra=this.penumbra),this.shadow!==void 0&&(n.object.shadow=this.shadow.toJSON()),this.target!==void 0&&(n.object.target=this.target.uuid),n}};const rA=new Bi,BF=new Ge,jF=new Ge;let Rse=class{constructor(e){this.camera=e,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Jt(512,512),this.mapType=zo,this.map=null,this.mapPass=null,this.matrix=new Bi,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new jP,this._frameExtents=new Jt(1,1),this._viewportCount=1,this._viewports=[new Li(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const n=this.camera,i=this.matrix;BF.setFromMatrixPosition(e.matrixWorld),n.position.copy(BF),jF.setFromMatrixPosition(e.target.matrixWorld),n.lookAt(jF),n.updateMatrixWorld(),rA.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(rA,n.coordinateSystem,n.reversedDepth),n.reversedDepth?i.set(.5,0,0,.5,0,.5,0,.5,0,0,1,0,0,0,0,1):i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(rA)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.intensity=e.intensity,this.bias=e.bias,this.radius=e.radius,this.autoUpdate=e.autoUpdate,this.needsUpdate=e.needsUpdate,this.normalBias=e.normalBias,this.blurSamples=e.blurSamples,this.mapSize.copy(e.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const e={};return this.intensity!==1&&(e.intensity=this.intensity),this.bias!==0&&(e.bias=this.bias),this.normalBias!==0&&(e.normalBias=this.normalBias),this.radius!==1&&(e.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}},zG=class extends NG{constructor(e=-1,n=1,i=1,r=-1,a=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=n,this.top=i,this.bottom=r,this.near=a,this.far=s,this.updateProjectionMatrix()}copy(e,n){return super.copy(e,n),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,n,i,r,a,s){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=n,this.view.offsetX=i,this.view.offsetY=r,this.view.width=a,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),n=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let a=i-e,s=i+e,o=r+n,l=r-n;if(this.view!==null&&this.view.enabled){const c=(this.right-this.left)/this.view.fullWidth/this.zoom,d=(this.top-this.bottom)/this.view.fullHeight/this.zoom;a+=c*this.view.offsetX,s=a+c*this.view.width,o-=d*this.view.offsetY,l=o-d*this.view.height}this.projectionMatrix.makeOrthographic(a,s,o,l,this.near,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const n=super.toJSON(e);return n.object.zoom=this.zoom,n.object.left=this.left,n.object.right=this.right,n.object.top=this.top,n.object.bottom=this.bottom,n.object.near=this.near,n.object.far=this.far,this.view!==null&&(n.object.view=Object.assign({},this.view)),n}};class Pse extends Rse{constructor(){super(new zG(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class HF extends FG{constructor(e,n){super(e,n),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ss.DEFAULT_UP),this.updateMatrix(),this.target=new ss,this.shadow=new Pse}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}let Dse=class extends FG{constructor(e,n){super(e,n),this.isAmbientLight=!0,this.type="AmbientLight"}},Nse=class extends Rs{constructor(e=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=e}},VF=class{constructor(e=1,n=0,i=0){this.radius=e,this.phi=n,this.theta=i}set(e,n,i){return this.radius=e,this.phi=n,this.theta=i,this}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this}makeSafe(){return this.phi=on(this.phi,1e-6,Math.PI-1e-6),this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,n,i){return this.radius=Math.sqrt(e*e+n*n+i*i),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,i),this.phi=Math.acos(on(n/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}};class Ose extends Ese{constructor(e=10,n=10,i=4473924,r=8947848){i=new dn(i),r=new dn(r);const a=n/2,s=e/n,o=e/2,l=[],c=[];for(let p=0,m=0,y=-o;p<=n;p++,y+=s){l.push(-o,0,y,o,0,y),l.push(y,0,-o,y,0,o);const b=p===a?i:r;b.toArray(c,m),m+=3,b.toArray(c,m),m+=3,b.toArray(c,m),m+=3,b.toArray(c,m),m+=3}const d=new Yo;d.setAttribute("position",new fo(l,3)),d.setAttribute("color",new fo(c,3));const f=new LG({vertexColors:!0,toneMapped:!1});super(d,f),this.type="GridHelper"}dispose(){this.geometry.dispose(),this.material.dispose()}}class Lse extends Ef{constructor(e,n=null){super(),this.object=e,this.domElement=n,this.enabled=!0,this.state=-1,this.keys={},this.mouseButtons={LEFT:null,MIDDLE:null,RIGHT:null},this.touches={ONE:null,TWO:null}}connect(e){if(e===void 0){jt("Controls: connect() now requires an element.");return}this.domElement!==null&&this.disconnect(),this.domElement=e}disconnect(){}dispose(){}update(){}}function GF(t,e,n,i){const r=kse(i);switch(n){case hG:return t*e;case mG:return t*e/r.components*r.byteLength;case OP:return t*e/r.components*r.byteLength;case LP:return t*e*2/r.components*r.byteLength;case kP:return t*e*2/r.components*r.byteLength;case pG:return t*e*3/r.components*r.byteLength;case lo:return t*e*4/r.components*r.byteLength;case IP:return t*e*4/r.components*r.byteLength;case Ab:case Tb:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case Cb:case Rb:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case F2:case B2:return Math.max(t,16)*Math.max(e,8)/4;case U2:case z2:return Math.max(t,8)*Math.max(e,8)/2;case j2:case H2:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*8;case V2:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case G2:return Math.floor((t+3)/4)*Math.floor((e+3)/4)*16;case $2:return Math.floor((t+4)/5)*Math.floor((e+3)/4)*16;case W2:return Math.floor((t+4)/5)*Math.floor((e+4)/5)*16;case q2:return Math.floor((t+5)/6)*Math.floor((e+4)/5)*16;case X2:return Math.floor((t+5)/6)*Math.floor((e+5)/6)*16;case Y2:return Math.floor((t+7)/8)*Math.floor((e+4)/5)*16;case K2:return Math.floor((t+7)/8)*Math.floor((e+5)/6)*16;case Z2:return Math.floor((t+7)/8)*Math.floor((e+7)/8)*16;case J2:return Math.floor((t+9)/10)*Math.floor((e+4)/5)*16;case Q2:return Math.floor((t+9)/10)*Math.floor((e+5)/6)*16;case eR:return Math.floor((t+9)/10)*Math.floor((e+7)/8)*16;case tR:return Math.floor((t+9)/10)*Math.floor((e+9)/10)*16;case nR:return Math.floor((t+11)/12)*Math.floor((e+9)/10)*16;case iR:return Math.floor((t+11)/12)*Math.floor((e+11)/12)*16;case rR:case aR:case sR:return Math.ceil(t/4)*Math.ceil(e/4)*16;case oR:case lR:return Math.ceil(t/4)*Math.ceil(e/4)*8;case cR:case uR:return Math.ceil(t/4)*Math.ceil(e/4)*16}throw new Error(`Unable to determine texture byte length for ${n} format.`)}function kse(t){switch(t){case zo:case cG:return{byteLength:1,components:1};case d0:case uG:case Xp:return{byteLength:2,components:1};case DP:case NP:return{byteLength:2,components:4};case af:case PP:case Fl:return{byteLength:4,components:1};case dG:case fG:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${t}.`)}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:CP}}));typeof window<"u"&&(window.__THREE__?jt("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=CP);function BG(){let t=null,e=!1,n=null,i=null;function r(a,s){n(a,s),i=t.requestAnimationFrame(r)}return{start:function(){e!==!0&&n!==null&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(a){n=a},setContext:function(a){t=a}}}function Ise(t){const e=new WeakMap;function n(o,l){const c=o.array,d=o.usage,f=c.byteLength,p=t.createBuffer();t.bindBuffer(l,p),t.bufferData(l,c,d),o.onUploadCallback();let m;if(c instanceof Float32Array)m=t.FLOAT;else if(typeof Float16Array<"u"&&c instanceof Float16Array)m=t.HALF_FLOAT;else if(c instanceof Uint16Array)o.isFloat16BufferAttribute?m=t.HALF_FLOAT:m=t.UNSIGNED_SHORT;else if(c instanceof Int16Array)m=t.SHORT;else if(c instanceof Uint32Array)m=t.UNSIGNED_INT;else if(c instanceof Int32Array)m=t.INT;else if(c instanceof Int8Array)m=t.BYTE;else if(c instanceof Uint8Array)m=t.UNSIGNED_BYTE;else if(c instanceof Uint8ClampedArray)m=t.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+c);return{buffer:p,type:m,bytesPerElement:c.BYTES_PER_ELEMENT,version:o.version,size:f}}function i(o,l,c){const d=l.array,f=l.updateRanges;if(t.bindBuffer(c,o),f.length===0)t.bufferSubData(c,0,d);else{f.sort((m,y)=>m.start-y.start);let p=0;for(let m=1;m<f.length;m++){const y=f[p],b=f[m];b.start<=y.start+y.count+1?y.count=Math.max(y.count,b.start+b.count-y.start):(++p,f[p]=b)}f.length=p+1;for(let m=0,y=f.length;m<y;m++){const b=f[m];t.bufferSubData(c,b.start*d.BYTES_PER_ELEMENT,d,b.start,b.count)}l.clearUpdateRanges()}l.onUploadCallback()}function r(o){return o.isInterleavedBufferAttribute&&(o=o.data),e.get(o)}function a(o){o.isInterleavedBufferAttribute&&(o=o.data);const l=e.get(o);l&&(t.deleteBuffer(l.buffer),e.delete(o))}function s(o,l){if(o.isInterleavedBufferAttribute&&(o=o.data),o.isGLBufferAttribute){const d=e.get(o);(!d||d.version<o.version)&&e.set(o,{buffer:o.buffer,type:o.type,bytesPerElement:o.elementSize,version:o.version});return}const c=e.get(o);if(c===void 0)e.set(o,n(o,l));else if(c.version<o.version){if(c.size!==o.array.byteLength)throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.");i(c.buffer,o,l),c.version=o.version}}return{get:r,remove:a,update:s}}var Use=`#ifdef USE_ALPHAHASH
- if ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;
- #endif`,Fse=`#ifdef USE_ALPHAHASH
- const float ALPHA_HASH_SCALE = 0.05;
- float hash2D( vec2 value ) {
- return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );
- }
- float hash3D( vec3 value ) {
- return hash2D( vec2( hash2D( value.xy ), value.z ) );
- }
- float getAlphaHashThreshold( vec3 position ) {
- float maxDeriv = max(
- length( dFdx( position.xyz ) ),
- length( dFdy( position.xyz ) )
- );
- float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );
- vec2 pixScales = vec2(
- exp2( floor( log2( pixScale ) ) ),
- exp2( ceil( log2( pixScale ) ) )
- );
- vec2 alpha = vec2(
- hash3D( floor( pixScales.x * position.xyz ) ),
- hash3D( floor( pixScales.y * position.xyz ) )
- );
- float lerpFactor = fract( log2( pixScale ) );
- float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;
- float a = min( lerpFactor, 1.0 - lerpFactor );
- vec3 cases = vec3(
- x * x / ( 2.0 * a * ( 1.0 - a ) ),
- ( x - 0.5 * a ) / ( 1.0 - a ),
- 1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )
- );
- float threshold = ( x < ( 1.0 - a ) )
- ? ( ( x < a ) ? cases.x : cases.y )
- : cases.z;
- return clamp( threshold , 1.0e-6, 1.0 );
- }
- #endif`,zse=`#ifdef USE_ALPHAMAP
- diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;
- #endif`,Bse=`#ifdef USE_ALPHAMAP
- uniform sampler2D alphaMap;
- #endif`,jse=`#ifdef USE_ALPHATEST
- #ifdef ALPHA_TO_COVERAGE
- diffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );
- if ( diffuseColor.a == 0.0 ) discard;
- #else
- if ( diffuseColor.a < alphaTest ) discard;
- #endif
- #endif`,Hse=`#ifdef USE_ALPHATEST
- uniform float alphaTest;
- #endif`,Vse=`#ifdef USE_AOMAP
- float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;
- reflectedLight.indirectDiffuse *= ambientOcclusion;
- #if defined( USE_CLEARCOAT )
- clearcoatSpecularIndirect *= ambientOcclusion;
- #endif
- #if defined( USE_SHEEN )
- sheenSpecularIndirect *= ambientOcclusion;
- #endif
- #if defined( USE_ENVMAP ) && defined( STANDARD )
- float dotNV = saturate( dot( geometryNormal, geometryViewDir ) );
- reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );
- #endif
- #endif`,Gse=`#ifdef USE_AOMAP
- uniform sampler2D aoMap;
- uniform float aoMapIntensity;
- #endif`,$se=`#ifdef USE_BATCHING
- #if ! defined( GL_ANGLE_multi_draw )
- #define gl_DrawID _gl_DrawID
- uniform int _gl_DrawID;
- #endif
- uniform highp sampler2D batchingTexture;
- uniform highp usampler2D batchingIdTexture;
- mat4 getBatchingMatrix( const in float i ) {
- int size = textureSize( batchingTexture, 0 ).x;
- int j = int( i ) * 4;
- int x = j % size;
- int y = j / size;
- vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );
- vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );
- vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );
- vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );
- return mat4( v1, v2, v3, v4 );
- }
- float getIndirectIndex( const in int i ) {
- int size = textureSize( batchingIdTexture, 0 ).x;
- int x = i % size;
- int y = i / size;
- return float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );
- }
- #endif
- #ifdef USE_BATCHING_COLOR
- uniform sampler2D batchingColorTexture;
- vec3 getBatchingColor( const in float i ) {
- int size = textureSize( batchingColorTexture, 0 ).x;
- int j = int( i );
- int x = j % size;
- int y = j / size;
- return texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;
- }
- #endif`,Wse=`#ifdef USE_BATCHING
- mat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );
- #endif`,qse=`vec3 transformed = vec3( position );
- #ifdef USE_ALPHAHASH
- vPosition = vec3( position );
- #endif`,Xse=`vec3 objectNormal = vec3( normal );
- #ifdef USE_TANGENT
- vec3 objectTangent = vec3( tangent.xyz );
- #endif`,Yse=`float G_BlinnPhong_Implicit( ) {
- return 0.25;
- }
- float D_BlinnPhong( const in float shininess, const in float dotNH ) {
- return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );
- }
- vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {
- vec3 halfDir = normalize( lightDir + viewDir );
- float dotNH = saturate( dot( normal, halfDir ) );
- float dotVH = saturate( dot( viewDir, halfDir ) );
- vec3 F = F_Schlick( specularColor, 1.0, dotVH );
- float G = G_BlinnPhong_Implicit( );
- float D = D_BlinnPhong( shininess, dotNH );
- return F * ( G * D );
- } // validated`,Kse=`#ifdef USE_IRIDESCENCE
- const mat3 XYZ_TO_REC709 = mat3(
- 3.2404542, -0.9692660, 0.0556434,
- -1.5371385, 1.8760108, -0.2040259,
- -0.4985314, 0.0415560, 1.0572252
- );
- vec3 Fresnel0ToIor( vec3 fresnel0 ) {
- vec3 sqrtF0 = sqrt( fresnel0 );
- return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );
- }
- vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {
- return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );
- }
- float IorToFresnel0( float transmittedIor, float incidentIor ) {
- return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));
- }
- vec3 evalSensitivity( float OPD, vec3 shift ) {
- float phase = 2.0 * PI * OPD * 1.0e-9;
- vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );
- vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );
- vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );
- vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );
- xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );
- xyz /= 1.0685e-7;
- vec3 rgb = XYZ_TO_REC709 * xyz;
- return rgb;
- }
- vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {
- vec3 I;
- float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );
- float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );
- float cosTheta2Sq = 1.0 - sinTheta2Sq;
- if ( cosTheta2Sq < 0.0 ) {
- return vec3( 1.0 );
- }
- float cosTheta2 = sqrt( cosTheta2Sq );
- float R0 = IorToFresnel0( iridescenceIOR, outsideIOR );
- float R12 = F_Schlick( R0, 1.0, cosTheta1 );
- float T121 = 1.0 - R12;
- float phi12 = 0.0;
- if ( iridescenceIOR < outsideIOR ) phi12 = PI;
- float phi21 = PI - phi12;
- vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );
- vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );
- vec3 phi23 = vec3( 0.0 );
- if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;
- if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;
- if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;
- float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;
- vec3 phi = vec3( phi21 ) + phi23;
- vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );
- vec3 r123 = sqrt( R123 );
- vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );
- vec3 C0 = R12 + Rs;
- I = C0;
- vec3 Cm = Rs - T121;
- for ( int m = 1; m <= 2; ++ m ) {
- Cm *= r123;
- vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );
- I += Cm * Sm;
- }
- return max( I, vec3( 0.0 ) );
- }
- #endif`,Zse=`#ifdef USE_BUMPMAP
- uniform sampler2D bumpMap;
- uniform float bumpScale;
- vec2 dHdxy_fwd() {
- vec2 dSTdx = dFdx( vBumpMapUv );
- vec2 dSTdy = dFdy( vBumpMapUv );
- float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;
- float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;
- float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;
- return vec2( dBx, dBy );
- }
- vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {
- vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );
- vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );
- vec3 vN = surf_norm;
- vec3 R1 = cross( vSigmaY, vN );
- vec3 R2 = cross( vN, vSigmaX );
- float fDet = dot( vSigmaX, R1 ) * faceDirection;
- vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );
- return normalize( abs( fDet ) * surf_norm - vGrad );
- }
- #endif`,Jse=`#if NUM_CLIPPING_PLANES > 0
- vec4 plane;
- #ifdef ALPHA_TO_COVERAGE
- float distanceToPlane, distanceGradient;
- float clipOpacity = 1.0;
- #pragma unroll_loop_start
- for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
- plane = clippingPlanes[ i ];
- distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
- distanceGradient = fwidth( distanceToPlane ) / 2.0;
- clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
- if ( clipOpacity == 0.0 ) discard;
- }
- #pragma unroll_loop_end
- #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
- float unionClipOpacity = 1.0;
- #pragma unroll_loop_start
- for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
- plane = clippingPlanes[ i ];
- distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
- distanceGradient = fwidth( distanceToPlane ) / 2.0;
- unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
- }
- #pragma unroll_loop_end
- clipOpacity *= 1.0 - unionClipOpacity;
- #endif
- diffuseColor.a *= clipOpacity;
- if ( diffuseColor.a == 0.0 ) discard;
- #else
- #pragma unroll_loop_start
- for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
- plane = clippingPlanes[ i ];
- if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;
- }
- #pragma unroll_loop_end
- #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
- bool clipped = true;
- #pragma unroll_loop_start
- for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
- plane = clippingPlanes[ i ];
- clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;
- }
- #pragma unroll_loop_end
- if ( clipped ) discard;
- #endif
- #endif
- #endif`,Qse=`#if NUM_CLIPPING_PLANES > 0
- varying vec3 vClipPosition;
- uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];
- #endif`,eoe=`#if NUM_CLIPPING_PLANES > 0
- varying vec3 vClipPosition;
- #endif`,toe=`#if NUM_CLIPPING_PLANES > 0
- vClipPosition = - mvPosition.xyz;
- #endif`,noe=`#if defined( USE_COLOR_ALPHA )
- diffuseColor *= vColor;
- #elif defined( USE_COLOR )
- diffuseColor.rgb *= vColor;
- #endif`,ioe=`#if defined( USE_COLOR_ALPHA )
- varying vec4 vColor;
- #elif defined( USE_COLOR )
- varying vec3 vColor;
- #endif`,roe=`#if defined( USE_COLOR_ALPHA )
- varying vec4 vColor;
- #elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )
- varying vec3 vColor;
- #endif`,aoe=`#if defined( USE_COLOR_ALPHA )
- vColor = vec4( 1.0 );
- #elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )
- vColor = vec3( 1.0 );
- #endif
- #ifdef USE_COLOR
- vColor *= color;
- #endif
- #ifdef USE_INSTANCING_COLOR
- vColor.xyz *= instanceColor.xyz;
- #endif
- #ifdef USE_BATCHING_COLOR
- vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );
- vColor.xyz *= batchingColor.xyz;
- #endif`,soe=`#define PI 3.141592653589793
- #define PI2 6.283185307179586
- #define PI_HALF 1.5707963267948966
- #define RECIPROCAL_PI 0.3183098861837907
- #define RECIPROCAL_PI2 0.15915494309189535
- #define EPSILON 1e-6
- #ifndef saturate
- #define saturate( a ) clamp( a, 0.0, 1.0 )
- #endif
- #define whiteComplement( a ) ( 1.0 - saturate( a ) )
- float pow2( const in float x ) { return x*x; }
- vec3 pow2( const in vec3 x ) { return x*x; }
- float pow3( const in float x ) { return x*x*x; }
- float pow4( const in float x ) { float x2 = x*x; return x2*x2; }
- float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }
- float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }
- highp float rand( const in vec2 uv ) {
- const highp float a = 12.9898, b = 78.233, c = 43758.5453;
- highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );
- return fract( sin( sn ) * c );
- }
- #ifdef HIGH_PRECISION
- float precisionSafeLength( vec3 v ) { return length( v ); }
- #else
- float precisionSafeLength( vec3 v ) {
- float maxComponent = max3( abs( v ) );
- return length( v / maxComponent ) * maxComponent;
- }
- #endif
- struct IncidentLight {
- vec3 color;
- vec3 direction;
- bool visible;
- };
- struct ReflectedLight {
- vec3 directDiffuse;
- vec3 directSpecular;
- vec3 indirectDiffuse;
- vec3 indirectSpecular;
- };
- #ifdef USE_ALPHAHASH
- varying vec3 vPosition;
- #endif
- vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
- return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
- }
- vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {
- return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );
- }
- bool isPerspectiveMatrix( mat4 m ) {
- return m[ 2 ][ 3 ] == - 1.0;
- }
- vec2 equirectUv( in vec3 dir ) {
- float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;
- float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
- return vec2( u, v );
- }
- vec3 BRDF_Lambert( const in vec3 diffuseColor ) {
- return RECIPROCAL_PI * diffuseColor;
- }
- vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {
- float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
- return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
- }
- float F_Schlick( const in float f0, const in float f90, const in float dotVH ) {
- float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
- return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
- } // validated`,ooe=`#ifdef ENVMAP_TYPE_CUBE_UV
- #define cubeUV_minMipLevel 4.0
- #define cubeUV_minTileSize 16.0
- float getFace( vec3 direction ) {
- vec3 absDirection = abs( direction );
- float face = - 1.0;
- if ( absDirection.x > absDirection.z ) {
- if ( absDirection.x > absDirection.y )
- face = direction.x > 0.0 ? 0.0 : 3.0;
- else
- face = direction.y > 0.0 ? 1.0 : 4.0;
- } else {
- if ( absDirection.z > absDirection.y )
- face = direction.z > 0.0 ? 2.0 : 5.0;
- else
- face = direction.y > 0.0 ? 1.0 : 4.0;
- }
- return face;
- }
- vec2 getUV( vec3 direction, float face ) {
- vec2 uv;
- if ( face == 0.0 ) {
- uv = vec2( direction.z, direction.y ) / abs( direction.x );
- } else if ( face == 1.0 ) {
- uv = vec2( - direction.x, - direction.z ) / abs( direction.y );
- } else if ( face == 2.0 ) {
- uv = vec2( - direction.x, direction.y ) / abs( direction.z );
- } else if ( face == 3.0 ) {
- uv = vec2( - direction.z, direction.y ) / abs( direction.x );
- } else if ( face == 4.0 ) {
- uv = vec2( - direction.x, direction.z ) / abs( direction.y );
- } else {
- uv = vec2( direction.x, direction.y ) / abs( direction.z );
- }
- return 0.5 * ( uv + 1.0 );
- }
- vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {
- float face = getFace( direction );
- float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );
- mipInt = max( mipInt, cubeUV_minMipLevel );
- float faceSize = exp2( mipInt );
- highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;
- if ( face > 2.0 ) {
- uv.y += faceSize;
- face -= 3.0;
- }
- uv.x += face * faceSize;
- uv.x += filterInt * 3.0 * cubeUV_minTileSize;
- uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );
- uv.x *= CUBEUV_TEXEL_WIDTH;
- uv.y *= CUBEUV_TEXEL_HEIGHT;
- #ifdef texture2DGradEXT
- return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;
- #else
- return texture2D( envMap, uv ).rgb;
- #endif
- }
- #define cubeUV_r0 1.0
- #define cubeUV_m0 - 2.0
- #define cubeUV_r1 0.8
- #define cubeUV_m1 - 1.0
- #define cubeUV_r4 0.4
- #define cubeUV_m4 2.0
- #define cubeUV_r5 0.305
- #define cubeUV_m5 3.0
- #define cubeUV_r6 0.21
- #define cubeUV_m6 4.0
- float roughnessToMip( float roughness ) {
- float mip = 0.0;
- if ( roughness >= cubeUV_r1 ) {
- mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;
- } else if ( roughness >= cubeUV_r4 ) {
- mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;
- } else if ( roughness >= cubeUV_r5 ) {
- mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;
- } else if ( roughness >= cubeUV_r6 ) {
- mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;
- } else {
- mip = - 2.0 * log2( 1.16 * roughness ); }
- return mip;
- }
- vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {
- float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );
- float mipF = fract( mip );
- float mipInt = floor( mip );
- vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );
- if ( mipF == 0.0 ) {
- return vec4( color0, 1.0 );
- } else {
- vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );
- return vec4( mix( color0, color1, mipF ), 1.0 );
- }
- }
- #endif`,loe=`vec3 transformedNormal = objectNormal;
- #ifdef USE_TANGENT
- vec3 transformedTangent = objectTangent;
- #endif
- #ifdef USE_BATCHING
- mat3 bm = mat3( batchingMatrix );
- transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );
- transformedNormal = bm * transformedNormal;
- #ifdef USE_TANGENT
- transformedTangent = bm * transformedTangent;
- #endif
- #endif
- #ifdef USE_INSTANCING
- mat3 im = mat3( instanceMatrix );
- transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );
- transformedNormal = im * transformedNormal;
- #ifdef USE_TANGENT
- transformedTangent = im * transformedTangent;
- #endif
- #endif
- transformedNormal = normalMatrix * transformedNormal;
- #ifdef FLIP_SIDED
- transformedNormal = - transformedNormal;
- #endif
- #ifdef USE_TANGENT
- transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;
- #ifdef FLIP_SIDED
- transformedTangent = - transformedTangent;
- #endif
- #endif`,coe=`#ifdef USE_DISPLACEMENTMAP
- uniform sampler2D displacementMap;
- uniform float displacementScale;
- uniform float displacementBias;
- #endif`,uoe=`#ifdef USE_DISPLACEMENTMAP
- transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );
- #endif`,doe=`#ifdef USE_EMISSIVEMAP
- vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );
- #ifdef DECODE_VIDEO_TEXTURE_EMISSIVE
- emissiveColor = sRGBTransferEOTF( emissiveColor );
- #endif
- totalEmissiveRadiance *= emissiveColor.rgb;
- #endif`,foe=`#ifdef USE_EMISSIVEMAP
- uniform sampler2D emissiveMap;
- #endif`,hoe="gl_FragColor = linearToOutputTexel( gl_FragColor );",poe=`vec4 LinearTransferOETF( in vec4 value ) {
- return value;
- }
- vec4 sRGBTransferEOTF( in vec4 value ) {
- return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );
- }
- vec4 sRGBTransferOETF( in vec4 value ) {
- return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );
- }`,moe=`#ifdef USE_ENVMAP
- #ifdef ENV_WORLDPOS
- vec3 cameraToFrag;
- if ( isOrthographic ) {
- cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
- } else {
- cameraToFrag = normalize( vWorldPosition - cameraPosition );
- }
- vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
- #ifdef ENVMAP_MODE_REFLECTION
- vec3 reflectVec = reflect( cameraToFrag, worldNormal );
- #else
- vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );
- #endif
- #else
- vec3 reflectVec = vReflect;
- #endif
- #ifdef ENVMAP_TYPE_CUBE
- vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );
- #else
- vec4 envColor = vec4( 0.0 );
- #endif
- #ifdef ENVMAP_BLENDING_MULTIPLY
- outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );
- #elif defined( ENVMAP_BLENDING_MIX )
- outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );
- #elif defined( ENVMAP_BLENDING_ADD )
- outgoingLight += envColor.xyz * specularStrength * reflectivity;
- #endif
- #endif`,goe=`#ifdef USE_ENVMAP
- uniform float envMapIntensity;
- uniform float flipEnvMap;
- uniform mat3 envMapRotation;
- #ifdef ENVMAP_TYPE_CUBE
- uniform samplerCube envMap;
- #else
- uniform sampler2D envMap;
- #endif
- #endif`,voe=`#ifdef USE_ENVMAP
- uniform float reflectivity;
- #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
- #define ENV_WORLDPOS
- #endif
- #ifdef ENV_WORLDPOS
- varying vec3 vWorldPosition;
- uniform float refractionRatio;
- #else
- varying vec3 vReflect;
- #endif
- #endif`,xoe=`#ifdef USE_ENVMAP
- #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
- #define ENV_WORLDPOS
- #endif
- #ifdef ENV_WORLDPOS
-
- varying vec3 vWorldPosition;
- #else
- varying vec3 vReflect;
- uniform float refractionRatio;
- #endif
- #endif`,yoe=`#ifdef USE_ENVMAP
- #ifdef ENV_WORLDPOS
- vWorldPosition = worldPosition.xyz;
- #else
- vec3 cameraToVertex;
- if ( isOrthographic ) {
- cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
- } else {
- cameraToVertex = normalize( worldPosition.xyz - cameraPosition );
- }
- vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
- #ifdef ENVMAP_MODE_REFLECTION
- vReflect = reflect( cameraToVertex, worldNormal );
- #else
- vReflect = refract( cameraToVertex, worldNormal, refractionRatio );
- #endif
- #endif
- #endif`,boe=`#ifdef USE_FOG
- vFogDepth = - mvPosition.z;
- #endif`,_oe=`#ifdef USE_FOG
- varying float vFogDepth;
- #endif`,Soe=`#ifdef USE_FOG
- #ifdef FOG_EXP2
- float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );
- #else
- float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );
- #endif
- gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );
- #endif`,woe=`#ifdef USE_FOG
- uniform vec3 fogColor;
- varying float vFogDepth;
- #ifdef FOG_EXP2
- uniform float fogDensity;
- #else
- uniform float fogNear;
- uniform float fogFar;
- #endif
- #endif`,Moe=`#ifdef USE_GRADIENTMAP
- uniform sampler2D gradientMap;
- #endif
- vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {
- float dotNL = dot( normal, lightDirection );
- vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );
- #ifdef USE_GRADIENTMAP
- return vec3( texture2D( gradientMap, coord ).r );
- #else
- vec2 fw = fwidth( coord ) * 0.5;
- return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );
- #endif
- }`,Eoe=`#ifdef USE_LIGHTMAP
- uniform sampler2D lightMap;
- uniform float lightMapIntensity;
- #endif`,Aoe=`LambertMaterial material;
- material.diffuseColor = diffuseColor.rgb;
- material.specularStrength = specularStrength;`,Toe=`varying vec3 vViewPosition;
- struct LambertMaterial {
- vec3 diffuseColor;
- float specularStrength;
- };
- void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
- float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
- vec3 irradiance = dotNL * directLight.color;
- reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
- reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- #define RE_Direct RE_Direct_Lambert
- #define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,Coe=`uniform bool receiveShadow;
- uniform vec3 ambientLightColor;
- #if defined( USE_LIGHT_PROBES )
- uniform vec3 lightProbe[ 9 ];
- #endif
- vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
- float x = normal.x, y = normal.y, z = normal.z;
- vec3 result = shCoefficients[ 0 ] * 0.886227;
- result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;
- result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;
- result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;
- result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;
- result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;
- result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );
- result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;
- result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );
- return result;
- }
- vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {
- vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
- vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );
- return irradiance;
- }
- vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
- vec3 irradiance = ambientLightColor;
- return irradiance;
- }
- float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {
- float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );
- if ( cutoffDistance > 0.0 ) {
- distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );
- }
- return distanceFalloff;
- }
- float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {
- return smoothstep( coneCosine, penumbraCosine, angleCosine );
- }
- #if NUM_DIR_LIGHTS > 0
- struct DirectionalLight {
- vec3 direction;
- vec3 color;
- };
- uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];
- void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {
- light.color = directionalLight.color;
- light.direction = directionalLight.direction;
- light.visible = true;
- }
- #endif
- #if NUM_POINT_LIGHTS > 0
- struct PointLight {
- vec3 position;
- vec3 color;
- float distance;
- float decay;
- };
- uniform PointLight pointLights[ NUM_POINT_LIGHTS ];
- void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {
- vec3 lVector = pointLight.position - geometryPosition;
- light.direction = normalize( lVector );
- float lightDistance = length( lVector );
- light.color = pointLight.color;
- light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );
- light.visible = ( light.color != vec3( 0.0 ) );
- }
- #endif
- #if NUM_SPOT_LIGHTS > 0
- struct SpotLight {
- vec3 position;
- vec3 direction;
- vec3 color;
- float distance;
- float decay;
- float coneCos;
- float penumbraCos;
- };
- uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];
- void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {
- vec3 lVector = spotLight.position - geometryPosition;
- light.direction = normalize( lVector );
- float angleCos = dot( light.direction, spotLight.direction );
- float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );
- if ( spotAttenuation > 0.0 ) {
- float lightDistance = length( lVector );
- light.color = spotLight.color * spotAttenuation;
- light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );
- light.visible = ( light.color != vec3( 0.0 ) );
- } else {
- light.color = vec3( 0.0 );
- light.visible = false;
- }
- }
- #endif
- #if NUM_RECT_AREA_LIGHTS > 0
- struct RectAreaLight {
- vec3 color;
- vec3 position;
- vec3 halfWidth;
- vec3 halfHeight;
- };
- uniform sampler2D ltc_1; uniform sampler2D ltc_2;
- uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];
- #endif
- #if NUM_HEMI_LIGHTS > 0
- struct HemisphereLight {
- vec3 direction;
- vec3 skyColor;
- vec3 groundColor;
- };
- uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];
- vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {
- float dotNL = dot( normal, hemiLight.direction );
- float hemiDiffuseWeight = 0.5 * dotNL + 0.5;
- vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );
- return irradiance;
- }
- #endif`,Roe=`#ifdef USE_ENVMAP
- vec3 getIBLIrradiance( const in vec3 normal ) {
- #ifdef ENVMAP_TYPE_CUBE_UV
- vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
- vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );
- return PI * envMapColor.rgb * envMapIntensity;
- #else
- return vec3( 0.0 );
- #endif
- }
- vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {
- #ifdef ENVMAP_TYPE_CUBE_UV
- vec3 reflectVec = reflect( - viewDir, normal );
- reflectVec = normalize( mix( reflectVec, normal, pow4( roughness ) ) );
- reflectVec = inverseTransformDirection( reflectVec, viewMatrix );
- vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );
- return envMapColor.rgb * envMapIntensity;
- #else
- return vec3( 0.0 );
- #endif
- }
- #ifdef USE_ANISOTROPY
- vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {
- #ifdef ENVMAP_TYPE_CUBE_UV
- vec3 bentNormal = cross( bitangent, viewDir );
- bentNormal = normalize( cross( bentNormal, bitangent ) );
- bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );
- return getIBLRadiance( viewDir, bentNormal, roughness );
- #else
- return vec3( 0.0 );
- #endif
- }
- #endif
- #endif`,Poe=`ToonMaterial material;
- material.diffuseColor = diffuseColor.rgb;`,Doe=`varying vec3 vViewPosition;
- struct ToonMaterial {
- vec3 diffuseColor;
- };
- void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
- vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;
- reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
- reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- #define RE_Direct RE_Direct_Toon
- #define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,Noe=`BlinnPhongMaterial material;
- material.diffuseColor = diffuseColor.rgb;
- material.specularColor = specular;
- material.specularShininess = shininess;
- material.specularStrength = specularStrength;`,Ooe=`varying vec3 vViewPosition;
- struct BlinnPhongMaterial {
- vec3 diffuseColor;
- vec3 specularColor;
- float specularShininess;
- float specularStrength;
- };
- void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
- float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
- vec3 irradiance = dotNL * directLight.color;
- reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;
- }
- void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
- reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- #define RE_Direct RE_Direct_BlinnPhong
- #define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,Loe=`PhysicalMaterial material;
- material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );
- vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );
- float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );
- material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;
- material.roughness = min( material.roughness, 1.0 );
- #ifdef IOR
- material.ior = ior;
- #ifdef USE_SPECULAR
- float specularIntensityFactor = specularIntensity;
- vec3 specularColorFactor = specularColor;
- #ifdef USE_SPECULAR_COLORMAP
- specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;
- #endif
- #ifdef USE_SPECULAR_INTENSITYMAP
- specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;
- #endif
- material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );
- #else
- float specularIntensityFactor = 1.0;
- vec3 specularColorFactor = vec3( 1.0 );
- material.specularF90 = 1.0;
- #endif
- material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );
- #else
- material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );
- material.specularF90 = 1.0;
- #endif
- #ifdef USE_CLEARCOAT
- material.clearcoat = clearcoat;
- material.clearcoatRoughness = clearcoatRoughness;
- material.clearcoatF0 = vec3( 0.04 );
- material.clearcoatF90 = 1.0;
- #ifdef USE_CLEARCOATMAP
- material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;
- #endif
- #ifdef USE_CLEARCOAT_ROUGHNESSMAP
- material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;
- #endif
- material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );
- material.clearcoatRoughness += geometryRoughness;
- material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );
- #endif
- #ifdef USE_DISPERSION
- material.dispersion = dispersion;
- #endif
- #ifdef USE_IRIDESCENCE
- material.iridescence = iridescence;
- material.iridescenceIOR = iridescenceIOR;
- #ifdef USE_IRIDESCENCEMAP
- material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;
- #endif
- #ifdef USE_IRIDESCENCE_THICKNESSMAP
- material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;
- #else
- material.iridescenceThickness = iridescenceThicknessMaximum;
- #endif
- #endif
- #ifdef USE_SHEEN
- material.sheenColor = sheenColor;
- #ifdef USE_SHEEN_COLORMAP
- material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;
- #endif
- material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );
- #ifdef USE_SHEEN_ROUGHNESSMAP
- material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;
- #endif
- #endif
- #ifdef USE_ANISOTROPY
- #ifdef USE_ANISOTROPYMAP
- mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );
- vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;
- vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;
- #else
- vec2 anisotropyV = anisotropyVector;
- #endif
- material.anisotropy = length( anisotropyV );
- if( material.anisotropy == 0.0 ) {
- anisotropyV = vec2( 1.0, 0.0 );
- } else {
- anisotropyV /= material.anisotropy;
- material.anisotropy = saturate( material.anisotropy );
- }
- material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );
- material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;
- material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;
- #endif`,koe=`uniform sampler2D dfgLUT;
- struct PhysicalMaterial {
- vec3 diffuseColor;
- float roughness;
- vec3 specularColor;
- float specularF90;
- float dispersion;
- #ifdef USE_CLEARCOAT
- float clearcoat;
- float clearcoatRoughness;
- vec3 clearcoatF0;
- float clearcoatF90;
- #endif
- #ifdef USE_IRIDESCENCE
- float iridescence;
- float iridescenceIOR;
- float iridescenceThickness;
- vec3 iridescenceFresnel;
- vec3 iridescenceF0;
- #endif
- #ifdef USE_SHEEN
- vec3 sheenColor;
- float sheenRoughness;
- #endif
- #ifdef IOR
- float ior;
- #endif
- #ifdef USE_TRANSMISSION
- float transmission;
- float transmissionAlpha;
- float thickness;
- float attenuationDistance;
- vec3 attenuationColor;
- #endif
- #ifdef USE_ANISOTROPY
- float anisotropy;
- float alphaT;
- vec3 anisotropyT;
- vec3 anisotropyB;
- #endif
- };
- vec3 clearcoatSpecularDirect = vec3( 0.0 );
- vec3 clearcoatSpecularIndirect = vec3( 0.0 );
- vec3 sheenSpecularDirect = vec3( 0.0 );
- vec3 sheenSpecularIndirect = vec3(0.0 );
- vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {
- float x = clamp( 1.0 - dotVH, 0.0, 1.0 );
- float x2 = x * x;
- float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );
- return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );
- }
- float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {
- float a2 = pow2( alpha );
- float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );
- float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );
- return 0.5 / max( gv + gl, EPSILON );
- }
- float D_GGX( const in float alpha, const in float dotNH ) {
- float a2 = pow2( alpha );
- float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;
- return RECIPROCAL_PI * a2 / pow2( denom );
- }
- #ifdef USE_ANISOTROPY
- float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {
- float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );
- float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );
- float v = 0.5 / ( gv + gl );
- return saturate(v);
- }
- float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {
- float a2 = alphaT * alphaB;
- highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );
- highp float v2 = dot( v, v );
- float w2 = a2 / v2;
- return RECIPROCAL_PI * a2 * pow2 ( w2 );
- }
- #endif
- #ifdef USE_CLEARCOAT
- vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {
- vec3 f0 = material.clearcoatF0;
- float f90 = material.clearcoatF90;
- float roughness = material.clearcoatRoughness;
- float alpha = pow2( roughness );
- vec3 halfDir = normalize( lightDir + viewDir );
- float dotNL = saturate( dot( normal, lightDir ) );
- float dotNV = saturate( dot( normal, viewDir ) );
- float dotNH = saturate( dot( normal, halfDir ) );
- float dotVH = saturate( dot( viewDir, halfDir ) );
- vec3 F = F_Schlick( f0, f90, dotVH );
- float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
- float D = D_GGX( alpha, dotNH );
- return F * ( V * D );
- }
- #endif
- vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {
- vec3 f0 = material.specularColor;
- float f90 = material.specularF90;
- float roughness = material.roughness;
- float alpha = pow2( roughness );
- vec3 halfDir = normalize( lightDir + viewDir );
- float dotNL = saturate( dot( normal, lightDir ) );
- float dotNV = saturate( dot( normal, viewDir ) );
- float dotNH = saturate( dot( normal, halfDir ) );
- float dotVH = saturate( dot( viewDir, halfDir ) );
- vec3 F = F_Schlick( f0, f90, dotVH );
- #ifdef USE_IRIDESCENCE
- F = mix( F, material.iridescenceFresnel, material.iridescence );
- #endif
- #ifdef USE_ANISOTROPY
- float dotTL = dot( material.anisotropyT, lightDir );
- float dotTV = dot( material.anisotropyT, viewDir );
- float dotTH = dot( material.anisotropyT, halfDir );
- float dotBL = dot( material.anisotropyB, lightDir );
- float dotBV = dot( material.anisotropyB, viewDir );
- float dotBH = dot( material.anisotropyB, halfDir );
- float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );
- float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );
- #else
- float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
- float D = D_GGX( alpha, dotNH );
- #endif
- return F * ( V * D );
- }
- vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {
- const float LUT_SIZE = 64.0;
- const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;
- const float LUT_BIAS = 0.5 / LUT_SIZE;
- float dotNV = saturate( dot( N, V ) );
- vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );
- uv = uv * LUT_SCALE + LUT_BIAS;
- return uv;
- }
- float LTC_ClippedSphereFormFactor( const in vec3 f ) {
- float l = length( f );
- return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );
- }
- vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {
- float x = dot( v1, v2 );
- float y = abs( x );
- float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;
- float b = 3.4175940 + ( 4.1616724 + y ) * y;
- float v = a / b;
- float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;
- return cross( v1, v2 ) * theta_sintheta;
- }
- vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {
- vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];
- vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];
- vec3 lightNormal = cross( v1, v2 );
- if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );
- vec3 T1, T2;
- T1 = normalize( V - N * dot( V, N ) );
- T2 = - cross( N, T1 );
- mat3 mat = mInv * transpose( mat3( T1, T2, N ) );
- vec3 coords[ 4 ];
- coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );
- coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );
- coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );
- coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );
- coords[ 0 ] = normalize( coords[ 0 ] );
- coords[ 1 ] = normalize( coords[ 1 ] );
- coords[ 2 ] = normalize( coords[ 2 ] );
- coords[ 3 ] = normalize( coords[ 3 ] );
- vec3 vectorFormFactor = vec3( 0.0 );
- vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );
- vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );
- vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );
- vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );
- float result = LTC_ClippedSphereFormFactor( vectorFormFactor );
- return vec3( result );
- }
- #if defined( USE_SHEEN )
- float D_Charlie( float roughness, float dotNH ) {
- float alpha = pow2( roughness );
- float invAlpha = 1.0 / alpha;
- float cos2h = dotNH * dotNH;
- float sin2h = max( 1.0 - cos2h, 0.0078125 );
- return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );
- }
- float V_Neubelt( float dotNV, float dotNL ) {
- return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );
- }
- vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {
- vec3 halfDir = normalize( lightDir + viewDir );
- float dotNL = saturate( dot( normal, lightDir ) );
- float dotNV = saturate( dot( normal, viewDir ) );
- float dotNH = saturate( dot( normal, halfDir ) );
- float D = D_Charlie( sheenRoughness, dotNH );
- float V = V_Neubelt( dotNV, dotNL );
- return sheenColor * ( D * V );
- }
- #endif
- float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
- float dotNV = saturate( dot( normal, viewDir ) );
- float r2 = roughness * roughness;
- float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;
- float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;
- float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );
- return saturate( DG * RECIPROCAL_PI );
- }
- vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
- float dotNV = saturate( dot( normal, viewDir ) );
- vec2 uv = vec2( roughness, dotNV );
- return texture2D( dfgLUT, uv ).rg;
- }
- vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {
- vec2 fab = DFGApprox( normal, viewDir, roughness );
- return specularColor * fab.x + specularF90 * fab.y;
- }
- #ifdef USE_IRIDESCENCE
- void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
- #else
- void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
- #endif
- vec2 fab = DFGApprox( normal, viewDir, roughness );
- #ifdef USE_IRIDESCENCE
- vec3 Fr = mix( specularColor, iridescenceF0, iridescence );
- #else
- vec3 Fr = specularColor;
- #endif
- vec3 FssEss = Fr * fab.x + specularF90 * fab.y;
- float Ess = fab.x + fab.y;
- float Ems = 1.0 - Ess;
- vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );
- singleScatter += FssEss;
- multiScatter += Fms * Ems;
- }
- vec3 BRDF_GGX_Multiscatter( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {
- vec3 singleScatter = BRDF_GGX( lightDir, viewDir, normal, material );
- float dotNL = saturate( dot( normal, lightDir ) );
- float dotNV = saturate( dot( normal, viewDir ) );
- vec2 dfgV = DFGApprox( vec3(0.0, 0.0, 1.0), vec3(sqrt(1.0 - dotNV * dotNV), 0.0, dotNV), material.roughness );
- vec2 dfgL = DFGApprox( vec3(0.0, 0.0, 1.0), vec3(sqrt(1.0 - dotNL * dotNL), 0.0, dotNL), material.roughness );
- vec3 FssEss_V = material.specularColor * dfgV.x + material.specularF90 * dfgV.y;
- vec3 FssEss_L = material.specularColor * dfgL.x + material.specularF90 * dfgL.y;
- float Ess_V = dfgV.x + dfgV.y;
- float Ess_L = dfgL.x + dfgL.y;
- float Ems_V = 1.0 - Ess_V;
- float Ems_L = 1.0 - Ess_L;
- vec3 Favg = material.specularColor + ( 1.0 - material.specularColor ) * 0.047619;
- vec3 Fms = FssEss_V * FssEss_L * Favg / ( 1.0 - Ems_V * Ems_L * Favg * Favg + EPSILON );
- float compensationFactor = Ems_V * Ems_L;
- vec3 multiScatter = Fms * compensationFactor;
- return singleScatter + multiScatter;
- }
- #if NUM_RECT_AREA_LIGHTS > 0
- void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
- vec3 normal = geometryNormal;
- vec3 viewDir = geometryViewDir;
- vec3 position = geometryPosition;
- vec3 lightPos = rectAreaLight.position;
- vec3 halfWidth = rectAreaLight.halfWidth;
- vec3 halfHeight = rectAreaLight.halfHeight;
- vec3 lightColor = rectAreaLight.color;
- float roughness = material.roughness;
- vec3 rectCoords[ 4 ];
- rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;
- rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;
- rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;
- vec2 uv = LTC_Uv( normal, viewDir, roughness );
- vec4 t1 = texture2D( ltc_1, uv );
- vec4 t2 = texture2D( ltc_2, uv );
- mat3 mInv = mat3(
- vec3( t1.x, 0, t1.y ),
- vec3( 0, 1, 0 ),
- vec3( t1.z, 0, t1.w )
- );
- vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );
- reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );
- reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );
- }
- #endif
- void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
- float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
- vec3 irradiance = dotNL * directLight.color;
- #ifdef USE_CLEARCOAT
- float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );
- vec3 ccIrradiance = dotNLcc * directLight.color;
- clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );
- #endif
- #ifdef USE_SHEEN
- sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );
- #endif
- reflectedLight.directSpecular += irradiance * BRDF_GGX_Multiscatter( directLight.direction, geometryViewDir, geometryNormal, material );
- reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
- reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {
- #ifdef USE_CLEARCOAT
- clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );
- #endif
- #ifdef USE_SHEEN
- sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
- #endif
- vec3 singleScattering = vec3( 0.0 );
- vec3 multiScattering = vec3( 0.0 );
- vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;
- #ifdef USE_IRIDESCENCE
- computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );
- #else
- computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );
- #endif
- vec3 totalScattering = singleScattering + multiScattering;
- vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );
- reflectedLight.indirectSpecular += radiance * singleScattering;
- reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;
- reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;
- }
- #define RE_Direct RE_Direct_Physical
- #define RE_Direct_RectArea RE_Direct_RectArea_Physical
- #define RE_IndirectDiffuse RE_IndirectDiffuse_Physical
- #define RE_IndirectSpecular RE_IndirectSpecular_Physical
- float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {
- return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );
- }`,Ioe=`
- vec3 geometryPosition = - vViewPosition;
- vec3 geometryNormal = normal;
- vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );
- vec3 geometryClearcoatNormal = vec3( 0.0 );
- #ifdef USE_CLEARCOAT
- geometryClearcoatNormal = clearcoatNormal;
- #endif
- #ifdef USE_IRIDESCENCE
- float dotNVi = saturate( dot( normal, geometryViewDir ) );
- if ( material.iridescenceThickness == 0.0 ) {
- material.iridescence = 0.0;
- } else {
- material.iridescence = saturate( material.iridescence );
- }
- if ( material.iridescence > 0.0 ) {
- material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );
- material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );
- }
- #endif
- IncidentLight directLight;
- #if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )
- PointLight pointLight;
- #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0
- PointLightShadow pointLightShadow;
- #endif
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
- pointLight = pointLights[ i ];
- getPointLightInfo( pointLight, geometryPosition, directLight );
- #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )
- pointLightShadow = pointLightShadows[ i ];
- directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;
- #endif
- RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- }
- #pragma unroll_loop_end
- #endif
- #if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )
- SpotLight spotLight;
- vec4 spotColor;
- vec3 spotLightCoord;
- bool inSpotLightMap;
- #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0
- SpotLightShadow spotLightShadow;
- #endif
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
- spotLight = spotLights[ i ];
- getSpotLightInfo( spotLight, geometryPosition, directLight );
- #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
- #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX
- #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
- #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS
- #else
- #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
- #endif
- #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )
- spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;
- inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );
- spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );
- directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;
- #endif
- #undef SPOT_LIGHT_MAP_INDEX
- #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
- spotLightShadow = spotLightShadows[ i ];
- directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
- #endif
- RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- }
- #pragma unroll_loop_end
- #endif
- #if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )
- DirectionalLight directionalLight;
- #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0
- DirectionalLightShadow directionalLightShadow;
- #endif
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
- directionalLight = directionalLights[ i ];
- getDirectionalLightInfo( directionalLight, directLight );
- #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )
- directionalLightShadow = directionalLightShadows[ i ];
- directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
- #endif
- RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- }
- #pragma unroll_loop_end
- #endif
- #if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )
- RectAreaLight rectAreaLight;
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {
- rectAreaLight = rectAreaLights[ i ];
- RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- }
- #pragma unroll_loop_end
- #endif
- #if defined( RE_IndirectDiffuse )
- vec3 iblIrradiance = vec3( 0.0 );
- vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );
- #if defined( USE_LIGHT_PROBES )
- irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );
- #endif
- #if ( NUM_HEMI_LIGHTS > 0 )
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
- irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );
- }
- #pragma unroll_loop_end
- #endif
- #endif
- #if defined( RE_IndirectSpecular )
- vec3 radiance = vec3( 0.0 );
- vec3 clearcoatRadiance = vec3( 0.0 );
- #endif`,Uoe=`#if defined( RE_IndirectDiffuse )
- #ifdef USE_LIGHTMAP
- vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
- vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;
- irradiance += lightMapIrradiance;
- #endif
- #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )
- iblIrradiance += getIBLIrradiance( geometryNormal );
- #endif
- #endif
- #if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )
- #ifdef USE_ANISOTROPY
- radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );
- #else
- radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );
- #endif
- #ifdef USE_CLEARCOAT
- clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );
- #endif
- #endif`,Foe=`#if defined( RE_IndirectDiffuse )
- RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- #endif
- #if defined( RE_IndirectSpecular )
- RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- #endif`,zoe=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER )
- gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;
- #endif`,Boe=`#if defined( USE_LOGARITHMIC_DEPTH_BUFFER )
- uniform float logDepthBufFC;
- varying float vFragDepth;
- varying float vIsPerspective;
- #endif`,joe=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER
- varying float vFragDepth;
- varying float vIsPerspective;
- #endif`,Hoe=`#ifdef USE_LOGARITHMIC_DEPTH_BUFFER
- vFragDepth = 1.0 + gl_Position.w;
- vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
- #endif`,Voe=`#ifdef USE_MAP
- vec4 sampledDiffuseColor = texture2D( map, vMapUv );
- #ifdef DECODE_VIDEO_TEXTURE
- sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );
- #endif
- diffuseColor *= sampledDiffuseColor;
- #endif`,Goe=`#ifdef USE_MAP
- uniform sampler2D map;
- #endif`,$oe=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
- #if defined( USE_POINTS_UV )
- vec2 uv = vUv;
- #else
- vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;
- #endif
- #endif
- #ifdef USE_MAP
- diffuseColor *= texture2D( map, uv );
- #endif
- #ifdef USE_ALPHAMAP
- diffuseColor.a *= texture2D( alphaMap, uv ).g;
- #endif`,Woe=`#if defined( USE_POINTS_UV )
- varying vec2 vUv;
- #else
- #if defined( USE_MAP ) || defined( USE_ALPHAMAP )
- uniform mat3 uvTransform;
- #endif
- #endif
- #ifdef USE_MAP
- uniform sampler2D map;
- #endif
- #ifdef USE_ALPHAMAP
- uniform sampler2D alphaMap;
- #endif`,qoe=`float metalnessFactor = metalness;
- #ifdef USE_METALNESSMAP
- vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );
- metalnessFactor *= texelMetalness.b;
- #endif`,Xoe=`#ifdef USE_METALNESSMAP
- uniform sampler2D metalnessMap;
- #endif`,Yoe=`#ifdef USE_INSTANCING_MORPH
- float morphTargetInfluences[ MORPHTARGETS_COUNT ];
- float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;
- for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
- morphTargetInfluences[i] = texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;
- }
- #endif`,Koe=`#if defined( USE_MORPHCOLORS )
- vColor *= morphTargetBaseInfluence;
- for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
- #if defined( USE_COLOR_ALPHA )
- if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];
- #elif defined( USE_COLOR )
- if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];
- #endif
- }
- #endif`,Zoe=`#ifdef USE_MORPHNORMALS
- objectNormal *= morphTargetBaseInfluence;
- for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
- if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];
- }
- #endif`,Joe=`#ifdef USE_MORPHTARGETS
- #ifndef USE_INSTANCING_MORPH
- uniform float morphTargetBaseInfluence;
- uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];
- #endif
- uniform sampler2DArray morphTargetsTexture;
- uniform ivec2 morphTargetsTextureSize;
- vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {
- int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;
- int y = texelIndex / morphTargetsTextureSize.x;
- int x = texelIndex - y * morphTargetsTextureSize.x;
- ivec3 morphUV = ivec3( x, y, morphTargetIndex );
- return texelFetch( morphTargetsTexture, morphUV, 0 );
- }
- #endif`,Qoe=`#ifdef USE_MORPHTARGETS
- transformed *= morphTargetBaseInfluence;
- for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
- if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];
- }
- #endif`,ele=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
- #ifdef FLAT_SHADED
- vec3 fdx = dFdx( vViewPosition );
- vec3 fdy = dFdy( vViewPosition );
- vec3 normal = normalize( cross( fdx, fdy ) );
- #else
- vec3 normal = normalize( vNormal );
- #ifdef DOUBLE_SIDED
- normal *= faceDirection;
- #endif
- #endif
- #if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )
- #ifdef USE_TANGENT
- mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
- #else
- mat3 tbn = getTangentFrame( - vViewPosition, normal,
- #if defined( USE_NORMALMAP )
- vNormalMapUv
- #elif defined( USE_CLEARCOAT_NORMALMAP )
- vClearcoatNormalMapUv
- #else
- vUv
- #endif
- );
- #endif
- #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )
- tbn[0] *= faceDirection;
- tbn[1] *= faceDirection;
- #endif
- #endif
- #ifdef USE_CLEARCOAT_NORMALMAP
- #ifdef USE_TANGENT
- mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
- #else
- mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );
- #endif
- #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )
- tbn2[0] *= faceDirection;
- tbn2[1] *= faceDirection;
- #endif
- #endif
- vec3 nonPerturbedNormal = normal;`,tle=`#ifdef USE_NORMALMAP_OBJECTSPACE
- normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
- #ifdef FLIP_SIDED
- normal = - normal;
- #endif
- #ifdef DOUBLE_SIDED
- normal = normal * faceDirection;
- #endif
- normal = normalize( normalMatrix * normal );
- #elif defined( USE_NORMALMAP_TANGENTSPACE )
- vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
- mapN.xy *= normalScale;
- normal = normalize( tbn * mapN );
- #elif defined( USE_BUMPMAP )
- normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );
- #endif`,nle=`#ifndef FLAT_SHADED
- varying vec3 vNormal;
- #ifdef USE_TANGENT
- varying vec3 vTangent;
- varying vec3 vBitangent;
- #endif
- #endif`,ile=`#ifndef FLAT_SHADED
- varying vec3 vNormal;
- #ifdef USE_TANGENT
- varying vec3 vTangent;
- varying vec3 vBitangent;
- #endif
- #endif`,rle=`#ifndef FLAT_SHADED
- vNormal = normalize( transformedNormal );
- #ifdef USE_TANGENT
- vTangent = normalize( transformedTangent );
- vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );
- #endif
- #endif`,ale=`#ifdef USE_NORMALMAP
- uniform sampler2D normalMap;
- uniform vec2 normalScale;
- #endif
- #ifdef USE_NORMALMAP_OBJECTSPACE
- uniform mat3 normalMatrix;
- #endif
- #if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )
- mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {
- vec3 q0 = dFdx( eye_pos.xyz );
- vec3 q1 = dFdy( eye_pos.xyz );
- vec2 st0 = dFdx( uv.st );
- vec2 st1 = dFdy( uv.st );
- vec3 N = surf_norm;
- vec3 q1perp = cross( q1, N );
- vec3 q0perp = cross( N, q0 );
- vec3 T = q1perp * st0.x + q0perp * st1.x;
- vec3 B = q1perp * st0.y + q0perp * st1.y;
- float det = max( dot( T, T ), dot( B, B ) );
- float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );
- return mat3( T * scale, B * scale, N );
- }
- #endif`,sle=`#ifdef USE_CLEARCOAT
- vec3 clearcoatNormal = nonPerturbedNormal;
- #endif`,ole=`#ifdef USE_CLEARCOAT_NORMALMAP
- vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;
- clearcoatMapN.xy *= clearcoatNormalScale;
- clearcoatNormal = normalize( tbn2 * clearcoatMapN );
- #endif`,lle=`#ifdef USE_CLEARCOATMAP
- uniform sampler2D clearcoatMap;
- #endif
- #ifdef USE_CLEARCOAT_NORMALMAP
- uniform sampler2D clearcoatNormalMap;
- uniform vec2 clearcoatNormalScale;
- #endif
- #ifdef USE_CLEARCOAT_ROUGHNESSMAP
- uniform sampler2D clearcoatRoughnessMap;
- #endif`,cle=`#ifdef USE_IRIDESCENCEMAP
- uniform sampler2D iridescenceMap;
- #endif
- #ifdef USE_IRIDESCENCE_THICKNESSMAP
- uniform sampler2D iridescenceThicknessMap;
- #endif`,ule=`#ifdef OPAQUE
- diffuseColor.a = 1.0;
- #endif
- #ifdef USE_TRANSMISSION
- diffuseColor.a *= material.transmissionAlpha;
- #endif
- gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,dle=`vec3 packNormalToRGB( const in vec3 normal ) {
- return normalize( normal ) * 0.5 + 0.5;
- }
- vec3 unpackRGBToNormal( const in vec3 rgb ) {
- return 2.0 * rgb.xyz - 1.0;
- }
- const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;
- const float Inv255 = 1. / 255.;
- const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );
- const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );
- const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );
- const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );
- vec4 packDepthToRGBA( const in float v ) {
- if( v <= 0.0 )
- return vec4( 0., 0., 0., 0. );
- if( v >= 1.0 )
- return vec4( 1., 1., 1., 1. );
- float vuf;
- float af = modf( v * PackFactors.a, vuf );
- float bf = modf( vuf * ShiftRight8, vuf );
- float gf = modf( vuf * ShiftRight8, vuf );
- return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );
- }
- vec3 packDepthToRGB( const in float v ) {
- if( v <= 0.0 )
- return vec3( 0., 0., 0. );
- if( v >= 1.0 )
- return vec3( 1., 1., 1. );
- float vuf;
- float bf = modf( v * PackFactors.b, vuf );
- float gf = modf( vuf * ShiftRight8, vuf );
- return vec3( vuf * Inv255, gf * PackUpscale, bf );
- }
- vec2 packDepthToRG( const in float v ) {
- if( v <= 0.0 )
- return vec2( 0., 0. );
- if( v >= 1.0 )
- return vec2( 1., 1. );
- float vuf;
- float gf = modf( v * 256., vuf );
- return vec2( vuf * Inv255, gf );
- }
- float unpackRGBAToDepth( const in vec4 v ) {
- return dot( v, UnpackFactors4 );
- }
- float unpackRGBToDepth( const in vec3 v ) {
- return dot( v, UnpackFactors3 );
- }
- float unpackRGToDepth( const in vec2 v ) {
- return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;
- }
- vec4 pack2HalfToRGBA( const in vec2 v ) {
- vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );
- return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );
- }
- vec2 unpackRGBATo2Half( const in vec4 v ) {
- return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );
- }
- float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {
- return ( viewZ + near ) / ( near - far );
- }
- float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {
- return depth * ( near - far ) - near;
- }
- float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {
- return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );
- }
- float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {
- return ( near * far ) / ( ( far - near ) * depth - far );
- }`,fle=`#ifdef PREMULTIPLIED_ALPHA
- gl_FragColor.rgb *= gl_FragColor.a;
- #endif`,hle=`vec4 mvPosition = vec4( transformed, 1.0 );
- #ifdef USE_BATCHING
- mvPosition = batchingMatrix * mvPosition;
- #endif
- #ifdef USE_INSTANCING
- mvPosition = instanceMatrix * mvPosition;
- #endif
- mvPosition = modelViewMatrix * mvPosition;
- gl_Position = projectionMatrix * mvPosition;`,ple=`#ifdef DITHERING
- gl_FragColor.rgb = dithering( gl_FragColor.rgb );
- #endif`,mle=`#ifdef DITHERING
- vec3 dithering( vec3 color ) {
- float grid_position = rand( gl_FragCoord.xy );
- vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );
- dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );
- return color + dither_shift_RGB;
- }
- #endif`,gle=`float roughnessFactor = roughness;
- #ifdef USE_ROUGHNESSMAP
- vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );
- roughnessFactor *= texelRoughness.g;
- #endif`,vle=`#ifdef USE_ROUGHNESSMAP
- uniform sampler2D roughnessMap;
- #endif`,xle=`#if NUM_SPOT_LIGHT_COORDS > 0
- varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
- #endif
- #if NUM_SPOT_LIGHT_MAPS > 0
- uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];
- #endif
- #ifdef USE_SHADOWMAP
- #if NUM_DIR_LIGHT_SHADOWS > 0
- uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];
- varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
- struct DirectionalLightShadow {
- float shadowIntensity;
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- };
- uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
- #endif
- #if NUM_SPOT_LIGHT_SHADOWS > 0
- uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];
- struct SpotLightShadow {
- float shadowIntensity;
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- };
- uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
- #endif
- #if NUM_POINT_LIGHT_SHADOWS > 0
- uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];
- varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
- struct PointLightShadow {
- float shadowIntensity;
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- float shadowCameraNear;
- float shadowCameraFar;
- };
- uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
- #endif
- float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {
- float depth = unpackRGBAToDepth( texture2D( depths, uv ) );
- #ifdef USE_REVERSED_DEPTH_BUFFER
- return step( depth, compare );
- #else
- return step( compare, depth );
- #endif
- }
- vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {
- return unpackRGBATo2Half( texture2D( shadow, uv ) );
- }
- float VSMShadow( sampler2D shadow, vec2 uv, float compare ) {
- float occlusion = 1.0;
- vec2 distribution = texture2DDistribution( shadow, uv );
- #ifdef USE_REVERSED_DEPTH_BUFFER
- float hard_shadow = step( distribution.x, compare );
- #else
- float hard_shadow = step( compare, distribution.x );
- #endif
- if ( hard_shadow != 1.0 ) {
- float distance = compare - distribution.x;
- float variance = max( 0.00000, distribution.y * distribution.y );
- float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );
- }
- return occlusion;
- }
- float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {
- float shadow = 1.0;
- shadowCoord.xyz /= shadowCoord.w;
- shadowCoord.z += shadowBias;
- bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;
- bool frustumTest = inFrustum && shadowCoord.z <= 1.0;
- if ( frustumTest ) {
- #if defined( SHADOWMAP_TYPE_PCF )
- vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
- float dx0 = - texelSize.x * shadowRadius;
- float dy0 = - texelSize.y * shadowRadius;
- float dx1 = + texelSize.x * shadowRadius;
- float dy1 = + texelSize.y * shadowRadius;
- float dx2 = dx0 / 2.0;
- float dy2 = dy0 / 2.0;
- float dx3 = dx1 / 2.0;
- float dy3 = dy1 / 2.0;
- shadow = (
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )
- ) * ( 1.0 / 17.0 );
- #elif defined( SHADOWMAP_TYPE_PCF_SOFT )
- vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
- float dx = texelSize.x;
- float dy = texelSize.y;
- vec2 uv = shadowCoord.xy;
- vec2 f = fract( uv * shadowMapSize + 0.5 );
- uv -= f * texelSize;
- shadow = (
- texture2DCompare( shadowMap, uv, shadowCoord.z ) +
- texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +
- texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +
- mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),
- f.x ) +
- mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),
- f.x ) +
- mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),
- f.y ) +
- mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),
- f.y ) +
- mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),
- f.x ),
- mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),
- f.x ),
- f.y )
- ) * ( 1.0 / 9.0 );
- #elif defined( SHADOWMAP_TYPE_VSM )
- shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );
- #else
- shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );
- #endif
- }
- return mix( 1.0, shadow, shadowIntensity );
- }
- vec2 cubeToUV( vec3 v, float texelSizeY ) {
- vec3 absV = abs( v );
- float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );
- absV *= scaleToCube;
- v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );
- vec2 planar = v.xy;
- float almostATexel = 1.5 * texelSizeY;
- float almostOne = 1.0 - almostATexel;
- if ( absV.z >= almostOne ) {
- if ( v.z > 0.0 )
- planar.x = 4.0 - v.x;
- } else if ( absV.x >= almostOne ) {
- float signX = sign( v.x );
- planar.x = v.z * signX + 2.0 * signX;
- } else if ( absV.y >= almostOne ) {
- float signY = sign( v.y );
- planar.x = v.x + 2.0 * signY + 2.0;
- planar.y = v.z * signY - 2.0;
- }
- return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );
- }
- float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {
- float shadow = 1.0;
- vec3 lightToPosition = shadowCoord.xyz;
-
- float lightToPositionLength = length( lightToPosition );
- if ( lightToPositionLength - shadowCameraFar <= 0.0 && lightToPositionLength - shadowCameraNear >= 0.0 ) {
- float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias;
- vec3 bd3D = normalize( lightToPosition );
- vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );
- #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )
- vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;
- shadow = (
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )
- ) * ( 1.0 / 9.0 );
- #else
- shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );
- #endif
- }
- return mix( 1.0, shadow, shadowIntensity );
- }
- #endif`,yle=`#if NUM_SPOT_LIGHT_COORDS > 0
- uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];
- varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
- #endif
- #ifdef USE_SHADOWMAP
- #if NUM_DIR_LIGHT_SHADOWS > 0
- uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];
- varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
- struct DirectionalLightShadow {
- float shadowIntensity;
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- };
- uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
- #endif
- #if NUM_SPOT_LIGHT_SHADOWS > 0
- struct SpotLightShadow {
- float shadowIntensity;
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- };
- uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
- #endif
- #if NUM_POINT_LIGHT_SHADOWS > 0
- uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];
- varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
- struct PointLightShadow {
- float shadowIntensity;
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- float shadowCameraNear;
- float shadowCameraFar;
- };
- uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
- #endif
- #endif`,ble=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )
- vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
- vec4 shadowWorldPosition;
- #endif
- #if defined( USE_SHADOWMAP )
- #if NUM_DIR_LIGHT_SHADOWS > 0
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
- shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );
- vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;
- }
- #pragma unroll_loop_end
- #endif
- #if NUM_POINT_LIGHT_SHADOWS > 0
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
- shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );
- vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;
- }
- #pragma unroll_loop_end
- #endif
- #endif
- #if NUM_SPOT_LIGHT_COORDS > 0
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {
- shadowWorldPosition = worldPosition;
- #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
- shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;
- #endif
- vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;
- }
- #pragma unroll_loop_end
- #endif`,_le=`float getShadowMask() {
- float shadow = 1.0;
- #ifdef USE_SHADOWMAP
- #if NUM_DIR_LIGHT_SHADOWS > 0
- DirectionalLightShadow directionalLight;
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
- directionalLight = directionalLightShadows[ i ];
- shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
- }
- #pragma unroll_loop_end
- #endif
- #if NUM_SPOT_LIGHT_SHADOWS > 0
- SpotLightShadow spotLight;
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {
- spotLight = spotLightShadows[ i ];
- shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
- }
- #pragma unroll_loop_end
- #endif
- #if NUM_POINT_LIGHT_SHADOWS > 0
- PointLightShadow pointLight;
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
- pointLight = pointLightShadows[ i ];
- shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;
- }
- #pragma unroll_loop_end
- #endif
- #endif
- return shadow;
- }`,Sle=`#ifdef USE_SKINNING
- mat4 boneMatX = getBoneMatrix( skinIndex.x );
- mat4 boneMatY = getBoneMatrix( skinIndex.y );
- mat4 boneMatZ = getBoneMatrix( skinIndex.z );
- mat4 boneMatW = getBoneMatrix( skinIndex.w );
- #endif`,wle=`#ifdef USE_SKINNING
- uniform mat4 bindMatrix;
- uniform mat4 bindMatrixInverse;
- uniform highp sampler2D boneTexture;
- mat4 getBoneMatrix( const in float i ) {
- int size = textureSize( boneTexture, 0 ).x;
- int j = int( i ) * 4;
- int x = j % size;
- int y = j / size;
- vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );
- vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );
- vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );
- vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );
- return mat4( v1, v2, v3, v4 );
- }
- #endif`,Mle=`#ifdef USE_SKINNING
- vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );
- vec4 skinned = vec4( 0.0 );
- skinned += boneMatX * skinVertex * skinWeight.x;
- skinned += boneMatY * skinVertex * skinWeight.y;
- skinned += boneMatZ * skinVertex * skinWeight.z;
- skinned += boneMatW * skinVertex * skinWeight.w;
- transformed = ( bindMatrixInverse * skinned ).xyz;
- #endif`,Ele=`#ifdef USE_SKINNING
- mat4 skinMatrix = mat4( 0.0 );
- skinMatrix += skinWeight.x * boneMatX;
- skinMatrix += skinWeight.y * boneMatY;
- skinMatrix += skinWeight.z * boneMatZ;
- skinMatrix += skinWeight.w * boneMatW;
- skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;
- objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;
- #ifdef USE_TANGENT
- objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;
- #endif
- #endif`,Ale=`float specularStrength;
- #ifdef USE_SPECULARMAP
- vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );
- specularStrength = texelSpecular.r;
- #else
- specularStrength = 1.0;
- #endif`,Tle=`#ifdef USE_SPECULARMAP
- uniform sampler2D specularMap;
- #endif`,Cle=`#if defined( TONE_MAPPING )
- gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );
- #endif`,Rle=`#ifndef saturate
- #define saturate( a ) clamp( a, 0.0, 1.0 )
- #endif
- uniform float toneMappingExposure;
- vec3 LinearToneMapping( vec3 color ) {
- return saturate( toneMappingExposure * color );
- }
- vec3 ReinhardToneMapping( vec3 color ) {
- color *= toneMappingExposure;
- return saturate( color / ( vec3( 1.0 ) + color ) );
- }
- vec3 CineonToneMapping( vec3 color ) {
- color *= toneMappingExposure;
- color = max( vec3( 0.0 ), color - 0.004 );
- return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );
- }
- vec3 RRTAndODTFit( vec3 v ) {
- vec3 a = v * ( v + 0.0245786 ) - 0.000090537;
- vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;
- return a / b;
- }
- vec3 ACESFilmicToneMapping( vec3 color ) {
- const mat3 ACESInputMat = mat3(
- vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ),
- vec3( 0.04823, 0.01566, 0.83777 )
- );
- const mat3 ACESOutputMat = mat3(
- vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ),
- vec3( -0.07367, -0.00605, 1.07602 )
- );
- color *= toneMappingExposure / 0.6;
- color = ACESInputMat * color;
- color = RRTAndODTFit( color );
- color = ACESOutputMat * color;
- return saturate( color );
- }
- const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(
- vec3( 1.6605, - 0.1246, - 0.0182 ),
- vec3( - 0.5876, 1.1329, - 0.1006 ),
- vec3( - 0.0728, - 0.0083, 1.1187 )
- );
- const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(
- vec3( 0.6274, 0.0691, 0.0164 ),
- vec3( 0.3293, 0.9195, 0.0880 ),
- vec3( 0.0433, 0.0113, 0.8956 )
- );
- vec3 agxDefaultContrastApprox( vec3 x ) {
- vec3 x2 = x * x;
- vec3 x4 = x2 * x2;
- return + 15.5 * x4 * x2
- - 40.14 * x4 * x
- + 31.96 * x4
- - 6.868 * x2 * x
- + 0.4298 * x2
- + 0.1191 * x
- - 0.00232;
- }
- vec3 AgXToneMapping( vec3 color ) {
- const mat3 AgXInsetMatrix = mat3(
- vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),
- vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),
- vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )
- );
- const mat3 AgXOutsetMatrix = mat3(
- vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),
- vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),
- vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )
- );
- const float AgxMinEv = - 12.47393; const float AgxMaxEv = 4.026069;
- color *= toneMappingExposure;
- color = LINEAR_SRGB_TO_LINEAR_REC2020 * color;
- color = AgXInsetMatrix * color;
- color = max( color, 1e-10 ); color = log2( color );
- color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );
- color = clamp( color, 0.0, 1.0 );
- color = agxDefaultContrastApprox( color );
- color = AgXOutsetMatrix * color;
- color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );
- color = LINEAR_REC2020_TO_LINEAR_SRGB * color;
- color = clamp( color, 0.0, 1.0 );
- return color;
- }
- vec3 NeutralToneMapping( vec3 color ) {
- const float StartCompression = 0.8 - 0.04;
- const float Desaturation = 0.15;
- color *= toneMappingExposure;
- float x = min( color.r, min( color.g, color.b ) );
- float offset = x < 0.08 ? x - 6.25 * x * x : 0.04;
- color -= offset;
- float peak = max( color.r, max( color.g, color.b ) );
- if ( peak < StartCompression ) return color;
- float d = 1. - StartCompression;
- float newPeak = 1. - d * d / ( peak + d - StartCompression );
- color *= newPeak / peak;
- float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );
- return mix( color, vec3( newPeak ), g );
- }
- vec3 CustomToneMapping( vec3 color ) { return color; }`,Ple=`#ifdef USE_TRANSMISSION
- material.transmission = transmission;
- material.transmissionAlpha = 1.0;
- material.thickness = thickness;
- material.attenuationDistance = attenuationDistance;
- material.attenuationColor = attenuationColor;
- #ifdef USE_TRANSMISSIONMAP
- material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;
- #endif
- #ifdef USE_THICKNESSMAP
- material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;
- #endif
- vec3 pos = vWorldPosition;
- vec3 v = normalize( cameraPosition - pos );
- vec3 n = inverseTransformDirection( normal, viewMatrix );
- vec4 transmitted = getIBLVolumeRefraction(
- n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,
- pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,
- material.attenuationColor, material.attenuationDistance );
- material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );
- totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );
- #endif`,Dle=`#ifdef USE_TRANSMISSION
- uniform float transmission;
- uniform float thickness;
- uniform float attenuationDistance;
- uniform vec3 attenuationColor;
- #ifdef USE_TRANSMISSIONMAP
- uniform sampler2D transmissionMap;
- #endif
- #ifdef USE_THICKNESSMAP
- uniform sampler2D thicknessMap;
- #endif
- uniform vec2 transmissionSamplerSize;
- uniform sampler2D transmissionSamplerMap;
- uniform mat4 modelMatrix;
- uniform mat4 projectionMatrix;
- varying vec3 vWorldPosition;
- float w0( float a ) {
- return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );
- }
- float w1( float a ) {
- return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );
- }
- float w2( float a ){
- return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );
- }
- float w3( float a ) {
- return ( 1.0 / 6.0 ) * ( a * a * a );
- }
- float g0( float a ) {
- return w0( a ) + w1( a );
- }
- float g1( float a ) {
- return w2( a ) + w3( a );
- }
- float h0( float a ) {
- return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );
- }
- float h1( float a ) {
- return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );
- }
- vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {
- uv = uv * texelSize.zw + 0.5;
- vec2 iuv = floor( uv );
- vec2 fuv = fract( uv );
- float g0x = g0( fuv.x );
- float g1x = g1( fuv.x );
- float h0x = h0( fuv.x );
- float h1x = h1( fuv.x );
- float h0y = h0( fuv.y );
- float h1y = h1( fuv.y );
- vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
- vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
- vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
- vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
- return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +
- g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );
- }
- vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {
- vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );
- vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );
- vec2 fLodSizeInv = 1.0 / fLodSize;
- vec2 cLodSizeInv = 1.0 / cLodSize;
- vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );
- vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );
- return mix( fSample, cSample, fract( lod ) );
- }
- vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {
- vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );
- vec3 modelScale;
- modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );
- modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );
- modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
- return normalize( refractionVector ) * thickness * modelScale;
- }
- float applyIorToRoughness( const in float roughness, const in float ior ) {
- return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
- }
- vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {
- float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
- return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );
- }
- vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {
- if ( isinf( attenuationDistance ) ) {
- return vec3( 1.0 );
- } else {
- vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;
- vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance;
- }
- }
- vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,
- const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,
- const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,
- const in vec3 attenuationColor, const in float attenuationDistance ) {
- vec4 transmittedLight;
- vec3 transmittance;
- #ifdef USE_DISPERSION
- float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;
- vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );
- for ( int i = 0; i < 3; i ++ ) {
- vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );
- vec3 refractedRayExit = position + transmissionRay;
- vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
- vec2 refractionCoords = ndcPos.xy / ndcPos.w;
- refractionCoords += 1.0;
- refractionCoords /= 2.0;
- vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );
- transmittedLight[ i ] = transmissionSample[ i ];
- transmittedLight.a += transmissionSample.a;
- transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];
- }
- transmittedLight.a /= 3.0;
- #else
- vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
- vec3 refractedRayExit = position + transmissionRay;
- vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
- vec2 refractionCoords = ndcPos.xy / ndcPos.w;
- refractionCoords += 1.0;
- refractionCoords /= 2.0;
- transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );
- transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );
- #endif
- vec3 attenuatedColor = transmittance * transmittedLight.rgb;
- vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );
- float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;
- return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );
- }
- #endif`,Nle=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
- varying vec2 vUv;
- #endif
- #ifdef USE_MAP
- varying vec2 vMapUv;
- #endif
- #ifdef USE_ALPHAMAP
- varying vec2 vAlphaMapUv;
- #endif
- #ifdef USE_LIGHTMAP
- varying vec2 vLightMapUv;
- #endif
- #ifdef USE_AOMAP
- varying vec2 vAoMapUv;
- #endif
- #ifdef USE_BUMPMAP
- varying vec2 vBumpMapUv;
- #endif
- #ifdef USE_NORMALMAP
- varying vec2 vNormalMapUv;
- #endif
- #ifdef USE_EMISSIVEMAP
- varying vec2 vEmissiveMapUv;
- #endif
- #ifdef USE_METALNESSMAP
- varying vec2 vMetalnessMapUv;
- #endif
- #ifdef USE_ROUGHNESSMAP
- varying vec2 vRoughnessMapUv;
- #endif
- #ifdef USE_ANISOTROPYMAP
- varying vec2 vAnisotropyMapUv;
- #endif
- #ifdef USE_CLEARCOATMAP
- varying vec2 vClearcoatMapUv;
- #endif
- #ifdef USE_CLEARCOAT_NORMALMAP
- varying vec2 vClearcoatNormalMapUv;
- #endif
- #ifdef USE_CLEARCOAT_ROUGHNESSMAP
- varying vec2 vClearcoatRoughnessMapUv;
- #endif
- #ifdef USE_IRIDESCENCEMAP
- varying vec2 vIridescenceMapUv;
- #endif
- #ifdef USE_IRIDESCENCE_THICKNESSMAP
- varying vec2 vIridescenceThicknessMapUv;
- #endif
- #ifdef USE_SHEEN_COLORMAP
- varying vec2 vSheenColorMapUv;
- #endif
- #ifdef USE_SHEEN_ROUGHNESSMAP
- varying vec2 vSheenRoughnessMapUv;
- #endif
- #ifdef USE_SPECULARMAP
- varying vec2 vSpecularMapUv;
- #endif
- #ifdef USE_SPECULAR_COLORMAP
- varying vec2 vSpecularColorMapUv;
- #endif
- #ifdef USE_SPECULAR_INTENSITYMAP
- varying vec2 vSpecularIntensityMapUv;
- #endif
- #ifdef USE_TRANSMISSIONMAP
- uniform mat3 transmissionMapTransform;
- varying vec2 vTransmissionMapUv;
- #endif
- #ifdef USE_THICKNESSMAP
- uniform mat3 thicknessMapTransform;
- varying vec2 vThicknessMapUv;
- #endif`,Ole=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
- varying vec2 vUv;
- #endif
- #ifdef USE_MAP
- uniform mat3 mapTransform;
- varying vec2 vMapUv;
- #endif
- #ifdef USE_ALPHAMAP
- uniform mat3 alphaMapTransform;
- varying vec2 vAlphaMapUv;
- #endif
- #ifdef USE_LIGHTMAP
- uniform mat3 lightMapTransform;
- varying vec2 vLightMapUv;
- #endif
- #ifdef USE_AOMAP
- uniform mat3 aoMapTransform;
- varying vec2 vAoMapUv;
- #endif
- #ifdef USE_BUMPMAP
- uniform mat3 bumpMapTransform;
- varying vec2 vBumpMapUv;
- #endif
- #ifdef USE_NORMALMAP
- uniform mat3 normalMapTransform;
- varying vec2 vNormalMapUv;
- #endif
- #ifdef USE_DISPLACEMENTMAP
- uniform mat3 displacementMapTransform;
- varying vec2 vDisplacementMapUv;
- #endif
- #ifdef USE_EMISSIVEMAP
- uniform mat3 emissiveMapTransform;
- varying vec2 vEmissiveMapUv;
- #endif
- #ifdef USE_METALNESSMAP
- uniform mat3 metalnessMapTransform;
- varying vec2 vMetalnessMapUv;
- #endif
- #ifdef USE_ROUGHNESSMAP
- uniform mat3 roughnessMapTransform;
- varying vec2 vRoughnessMapUv;
- #endif
- #ifdef USE_ANISOTROPYMAP
- uniform mat3 anisotropyMapTransform;
- varying vec2 vAnisotropyMapUv;
- #endif
- #ifdef USE_CLEARCOATMAP
- uniform mat3 clearcoatMapTransform;
- varying vec2 vClearcoatMapUv;
- #endif
- #ifdef USE_CLEARCOAT_NORMALMAP
- uniform mat3 clearcoatNormalMapTransform;
- varying vec2 vClearcoatNormalMapUv;
- #endif
- #ifdef USE_CLEARCOAT_ROUGHNESSMAP
- uniform mat3 clearcoatRoughnessMapTransform;
- varying vec2 vClearcoatRoughnessMapUv;
- #endif
- #ifdef USE_SHEEN_COLORMAP
- uniform mat3 sheenColorMapTransform;
- varying vec2 vSheenColorMapUv;
- #endif
- #ifdef USE_SHEEN_ROUGHNESSMAP
- uniform mat3 sheenRoughnessMapTransform;
- varying vec2 vSheenRoughnessMapUv;
- #endif
- #ifdef USE_IRIDESCENCEMAP
- uniform mat3 iridescenceMapTransform;
- varying vec2 vIridescenceMapUv;
- #endif
- #ifdef USE_IRIDESCENCE_THICKNESSMAP
- uniform mat3 iridescenceThicknessMapTransform;
- varying vec2 vIridescenceThicknessMapUv;
- #endif
- #ifdef USE_SPECULARMAP
- uniform mat3 specularMapTransform;
- varying vec2 vSpecularMapUv;
- #endif
- #ifdef USE_SPECULAR_COLORMAP
- uniform mat3 specularColorMapTransform;
- varying vec2 vSpecularColorMapUv;
- #endif
- #ifdef USE_SPECULAR_INTENSITYMAP
- uniform mat3 specularIntensityMapTransform;
- varying vec2 vSpecularIntensityMapUv;
- #endif
- #ifdef USE_TRANSMISSIONMAP
- uniform mat3 transmissionMapTransform;
- varying vec2 vTransmissionMapUv;
- #endif
- #ifdef USE_THICKNESSMAP
- uniform mat3 thicknessMapTransform;
- varying vec2 vThicknessMapUv;
- #endif`,Lle=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
- vUv = vec3( uv, 1 ).xy;
- #endif
- #ifdef USE_MAP
- vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_ALPHAMAP
- vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_LIGHTMAP
- vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_AOMAP
- vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_BUMPMAP
- vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_NORMALMAP
- vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_DISPLACEMENTMAP
- vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_EMISSIVEMAP
- vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_METALNESSMAP
- vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_ROUGHNESSMAP
- vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_ANISOTROPYMAP
- vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_CLEARCOATMAP
- vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_CLEARCOAT_NORMALMAP
- vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_CLEARCOAT_ROUGHNESSMAP
- vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_IRIDESCENCEMAP
- vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_IRIDESCENCE_THICKNESSMAP
- vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_SHEEN_COLORMAP
- vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_SHEEN_ROUGHNESSMAP
- vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_SPECULARMAP
- vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_SPECULAR_COLORMAP
- vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_SPECULAR_INTENSITYMAP
- vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_TRANSMISSIONMAP
- vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_THICKNESSMAP
- vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;
- #endif`,kle=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0
- vec4 worldPosition = vec4( transformed, 1.0 );
- #ifdef USE_BATCHING
- worldPosition = batchingMatrix * worldPosition;
- #endif
- #ifdef USE_INSTANCING
- worldPosition = instanceMatrix * worldPosition;
- #endif
- worldPosition = modelMatrix * worldPosition;
- #endif`;const Ile=`varying vec2 vUv;
- uniform mat3 uvTransform;
- void main() {
- vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
- gl_Position = vec4( position.xy, 1.0, 1.0 );
- }`,Ule=`uniform sampler2D t2D;
- uniform float backgroundIntensity;
- varying vec2 vUv;
- void main() {
- vec4 texColor = texture2D( t2D, vUv );
- #ifdef DECODE_VIDEO_TEXTURE
- texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );
- #endif
- texColor.rgb *= backgroundIntensity;
- gl_FragColor = texColor;
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- }`,Fle=`varying vec3 vWorldDirection;
- #include <common>
- void main() {
- vWorldDirection = transformDirection( position, modelMatrix );
- #include <begin_vertex>
- #include <project_vertex>
- gl_Position.z = gl_Position.w;
- }`,zle=`#ifdef ENVMAP_TYPE_CUBE
- uniform samplerCube envMap;
- #elif defined( ENVMAP_TYPE_CUBE_UV )
- uniform sampler2D envMap;
- #endif
- uniform float flipEnvMap;
- uniform float backgroundBlurriness;
- uniform float backgroundIntensity;
- uniform mat3 backgroundRotation;
- varying vec3 vWorldDirection;
- #include <cube_uv_reflection_fragment>
- void main() {
- #ifdef ENVMAP_TYPE_CUBE
- vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );
- #elif defined( ENVMAP_TYPE_CUBE_UV )
- vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );
- #else
- vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );
- #endif
- texColor.rgb *= backgroundIntensity;
- gl_FragColor = texColor;
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- }`,Ble=`varying vec3 vWorldDirection;
- #include <common>
- void main() {
- vWorldDirection = transformDirection( position, modelMatrix );
- #include <begin_vertex>
- #include <project_vertex>
- gl_Position.z = gl_Position.w;
- }`,jle=`uniform samplerCube tCube;
- uniform float tFlip;
- uniform float opacity;
- varying vec3 vWorldDirection;
- void main() {
- vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );
- gl_FragColor = texColor;
- gl_FragColor.a *= opacity;
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- }`,Hle=`#include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- varying vec2 vHighPrecisionZW;
- void main() {
- #include <uv_vertex>
- #include <batching_vertex>
- #include <skinbase_vertex>
- #include <morphinstance_vertex>
- #ifdef USE_DISPLACEMENTMAP
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinnormal_vertex>
- #endif
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- vHighPrecisionZW = gl_Position.zw;
- }`,Vle=`#if DEPTH_PACKING == 3200
- uniform float opacity;
- #endif
- #include <common>
- #include <packing>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- varying vec2 vHighPrecisionZW;
- void main() {
- vec4 diffuseColor = vec4( 1.0 );
- #include <clipping_planes_fragment>
- #if DEPTH_PACKING == 3200
- diffuseColor.a = opacity;
- #endif
- #include <map_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <logdepthbuf_fragment>
- #ifdef USE_REVERSED_DEPTH_BUFFER
- float fragCoordZ = vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ];
- #else
- float fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ] + 0.5;
- #endif
- #if DEPTH_PACKING == 3200
- gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );
- #elif DEPTH_PACKING == 3201
- gl_FragColor = packDepthToRGBA( fragCoordZ );
- #elif DEPTH_PACKING == 3202
- gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );
- #elif DEPTH_PACKING == 3203
- gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );
- #endif
- }`,Gle=`#define DISTANCE
- varying vec3 vWorldPosition;
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <batching_vertex>
- #include <skinbase_vertex>
- #include <morphinstance_vertex>
- #ifdef USE_DISPLACEMENTMAP
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinnormal_vertex>
- #endif
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <worldpos_vertex>
- #include <clipping_planes_vertex>
- vWorldPosition = worldPosition.xyz;
- }`,$le=`#define DISTANCE
- uniform vec3 referencePosition;
- uniform float nearDistance;
- uniform float farDistance;
- varying vec3 vWorldPosition;
- #include <common>
- #include <packing>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main () {
- vec4 diffuseColor = vec4( 1.0 );
- #include <clipping_planes_fragment>
- #include <map_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- float dist = length( vWorldPosition - referencePosition );
- dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
- dist = saturate( dist );
- gl_FragColor = packDepthToRGBA( dist );
- }`,Wle=`varying vec3 vWorldDirection;
- #include <common>
- void main() {
- vWorldDirection = transformDirection( position, modelMatrix );
- #include <begin_vertex>
- #include <project_vertex>
- }`,qle=`uniform sampler2D tEquirect;
- varying vec3 vWorldDirection;
- #include <common>
- void main() {
- vec3 direction = normalize( vWorldDirection );
- vec2 sampleUV = equirectUv( direction );
- gl_FragColor = texture2D( tEquirect, sampleUV );
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- }`,Xle=`uniform float scale;
- attribute float lineDistance;
- varying float vLineDistance;
- #include <common>
- #include <uv_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- vLineDistance = scale * lineDistance;
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphinstance_vertex>
- #include <morphcolor_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <fog_vertex>
- }`,Yle=`uniform vec3 diffuse;
- uniform float opacity;
- uniform float dashSize;
- uniform float totalSize;
- varying float vLineDistance;
- #include <common>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <fog_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <clipping_planes_fragment>
- if ( mod( vLineDistance, totalSize ) > dashSize ) {
- discard;
- }
- vec3 outgoingLight = vec3( 0.0 );
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- outgoingLight = diffuseColor.rgb;
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- }`,Kle=`#include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <envmap_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphinstance_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #endif
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <worldpos_vertex>
- #include <envmap_vertex>
- #include <fog_vertex>
- }`,Zle=`uniform vec3 diffuse;
- uniform float opacity;
- #ifndef FLAT_SHADED
- varying vec3 vNormal;
- #endif
- #include <common>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <aomap_pars_fragment>
- #include <lightmap_pars_fragment>
- #include <envmap_common_pars_fragment>
- #include <envmap_pars_fragment>
- #include <fog_pars_fragment>
- #include <specularmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <clipping_planes_fragment>
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <specularmap_fragment>
- ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
- #ifdef USE_LIGHTMAP
- vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
- reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;
- #else
- reflectedLight.indirectDiffuse += vec3( 1.0 );
- #endif
- #include <aomap_fragment>
- reflectedLight.indirectDiffuse *= diffuseColor.rgb;
- vec3 outgoingLight = reflectedLight.indirectDiffuse;
- #include <envmap_fragment>
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,Jle=`#define LAMBERT
- varying vec3 vViewPosition;
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <envmap_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <shadowmap_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphinstance_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- vViewPosition = - mvPosition.xyz;
- #include <worldpos_vertex>
- #include <envmap_vertex>
- #include <shadowmap_vertex>
- #include <fog_vertex>
- }`,Qle=`#define LAMBERT
- uniform vec3 diffuse;
- uniform vec3 emissive;
- uniform float opacity;
- #include <common>
- #include <packing>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <aomap_pars_fragment>
- #include <lightmap_pars_fragment>
- #include <emissivemap_pars_fragment>
- #include <envmap_common_pars_fragment>
- #include <envmap_pars_fragment>
- #include <fog_pars_fragment>
- #include <bsdfs>
- #include <lights_pars_begin>
- #include <normal_pars_fragment>
- #include <lights_lambert_pars_fragment>
- #include <shadowmap_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <specularmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <clipping_planes_fragment>
- ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
- vec3 totalEmissiveRadiance = emissive;
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <specularmap_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- #include <emissivemap_fragment>
- #include <lights_lambert_fragment>
- #include <lights_fragment_begin>
- #include <lights_fragment_maps>
- #include <lights_fragment_end>
- #include <aomap_fragment>
- vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
- #include <envmap_fragment>
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,ece=`#define MATCAP
- varying vec3 vViewPosition;
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <color_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <fog_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphinstance_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <fog_vertex>
- vViewPosition = - mvPosition.xyz;
- }`,tce=`#define MATCAP
- uniform vec3 diffuse;
- uniform float opacity;
- uniform sampler2D matcap;
- varying vec3 vViewPosition;
- #include <common>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <fog_pars_fragment>
- #include <normal_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <clipping_planes_fragment>
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- vec3 viewDir = normalize( vViewPosition );
- vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
- vec3 y = cross( viewDir, x );
- vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
- #ifdef USE_MATCAP
- vec4 matcapColor = texture2D( matcap, uv );
- #else
- vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );
- #endif
- vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,nce=`#define NORMAL
- #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
- varying vec3 vViewPosition;
- #endif
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphinstance_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
- vViewPosition = - mvPosition.xyz;
- #endif
- }`,ice=`#define NORMAL
- uniform float opacity;
- #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
- varying vec3 vViewPosition;
- #endif
- #include <packing>
- #include <uv_pars_fragment>
- #include <normal_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );
- #include <clipping_planes_fragment>
- #include <logdepthbuf_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );
- #ifdef OPAQUE
- gl_FragColor.a = 1.0;
- #endif
- }`,rce=`#define PHONG
- varying vec3 vViewPosition;
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <envmap_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <shadowmap_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphinstance_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- vViewPosition = - mvPosition.xyz;
- #include <worldpos_vertex>
- #include <envmap_vertex>
- #include <shadowmap_vertex>
- #include <fog_vertex>
- }`,ace=`#define PHONG
- uniform vec3 diffuse;
- uniform vec3 emissive;
- uniform vec3 specular;
- uniform float shininess;
- uniform float opacity;
- #include <common>
- #include <packing>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <aomap_pars_fragment>
- #include <lightmap_pars_fragment>
- #include <emissivemap_pars_fragment>
- #include <envmap_common_pars_fragment>
- #include <envmap_pars_fragment>
- #include <fog_pars_fragment>
- #include <bsdfs>
- #include <lights_pars_begin>
- #include <normal_pars_fragment>
- #include <lights_phong_pars_fragment>
- #include <shadowmap_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <specularmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <clipping_planes_fragment>
- ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
- vec3 totalEmissiveRadiance = emissive;
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <specularmap_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- #include <emissivemap_fragment>
- #include <lights_phong_fragment>
- #include <lights_fragment_begin>
- #include <lights_fragment_maps>
- #include <lights_fragment_end>
- #include <aomap_fragment>
- vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
- #include <envmap_fragment>
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,sce=`#define STANDARD
- varying vec3 vViewPosition;
- #ifdef USE_TRANSMISSION
- varying vec3 vWorldPosition;
- #endif
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <shadowmap_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphinstance_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- vViewPosition = - mvPosition.xyz;
- #include <worldpos_vertex>
- #include <shadowmap_vertex>
- #include <fog_vertex>
- #ifdef USE_TRANSMISSION
- vWorldPosition = worldPosition.xyz;
- #endif
- }`,oce=`#define STANDARD
- #ifdef PHYSICAL
- #define IOR
- #define USE_SPECULAR
- #endif
- uniform vec3 diffuse;
- uniform vec3 emissive;
- uniform float roughness;
- uniform float metalness;
- uniform float opacity;
- #ifdef IOR
- uniform float ior;
- #endif
- #ifdef USE_SPECULAR
- uniform float specularIntensity;
- uniform vec3 specularColor;
- #ifdef USE_SPECULAR_COLORMAP
- uniform sampler2D specularColorMap;
- #endif
- #ifdef USE_SPECULAR_INTENSITYMAP
- uniform sampler2D specularIntensityMap;
- #endif
- #endif
- #ifdef USE_CLEARCOAT
- uniform float clearcoat;
- uniform float clearcoatRoughness;
- #endif
- #ifdef USE_DISPERSION
- uniform float dispersion;
- #endif
- #ifdef USE_IRIDESCENCE
- uniform float iridescence;
- uniform float iridescenceIOR;
- uniform float iridescenceThicknessMinimum;
- uniform float iridescenceThicknessMaximum;
- #endif
- #ifdef USE_SHEEN
- uniform vec3 sheenColor;
- uniform float sheenRoughness;
- #ifdef USE_SHEEN_COLORMAP
- uniform sampler2D sheenColorMap;
- #endif
- #ifdef USE_SHEEN_ROUGHNESSMAP
- uniform sampler2D sheenRoughnessMap;
- #endif
- #endif
- #ifdef USE_ANISOTROPY
- uniform vec2 anisotropyVector;
- #ifdef USE_ANISOTROPYMAP
- uniform sampler2D anisotropyMap;
- #endif
- #endif
- varying vec3 vViewPosition;
- #include <common>
- #include <packing>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <aomap_pars_fragment>
- #include <lightmap_pars_fragment>
- #include <emissivemap_pars_fragment>
- #include <iridescence_fragment>
- #include <cube_uv_reflection_fragment>
- #include <envmap_common_pars_fragment>
- #include <envmap_physical_pars_fragment>
- #include <fog_pars_fragment>
- #include <lights_pars_begin>
- #include <normal_pars_fragment>
- #include <lights_physical_pars_fragment>
- #include <transmission_pars_fragment>
- #include <shadowmap_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <clearcoat_pars_fragment>
- #include <iridescence_pars_fragment>
- #include <roughnessmap_pars_fragment>
- #include <metalnessmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <clipping_planes_fragment>
- ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
- vec3 totalEmissiveRadiance = emissive;
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <roughnessmap_fragment>
- #include <metalnessmap_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- #include <clearcoat_normal_fragment_begin>
- #include <clearcoat_normal_fragment_maps>
- #include <emissivemap_fragment>
- #include <lights_physical_fragment>
- #include <lights_fragment_begin>
- #include <lights_fragment_maps>
- #include <lights_fragment_end>
- #include <aomap_fragment>
- vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;
- vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;
- #include <transmission_fragment>
- vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;
- #ifdef USE_SHEEN
- float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );
- outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;
- #endif
- #ifdef USE_CLEARCOAT
- float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );
- vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );
- outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;
- #endif
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,lce=`#define TOON
- varying vec3 vViewPosition;
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <shadowmap_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphinstance_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- vViewPosition = - mvPosition.xyz;
- #include <worldpos_vertex>
- #include <shadowmap_vertex>
- #include <fog_vertex>
- }`,cce=`#define TOON
- uniform vec3 diffuse;
- uniform vec3 emissive;
- uniform float opacity;
- #include <common>
- #include <packing>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <aomap_pars_fragment>
- #include <lightmap_pars_fragment>
- #include <emissivemap_pars_fragment>
- #include <gradientmap_pars_fragment>
- #include <fog_pars_fragment>
- #include <bsdfs>
- #include <lights_pars_begin>
- #include <normal_pars_fragment>
- #include <lights_toon_pars_fragment>
- #include <shadowmap_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <clipping_planes_fragment>
- ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
- vec3 totalEmissiveRadiance = emissive;
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- #include <emissivemap_fragment>
- #include <lights_toon_fragment>
- #include <lights_fragment_begin>
- #include <lights_fragment_maps>
- #include <lights_fragment_end>
- #include <aomap_fragment>
- vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,uce=`uniform float size;
- uniform float scale;
- #include <common>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- #ifdef USE_POINTS_UV
- varying vec2 vUv;
- uniform mat3 uvTransform;
- #endif
- void main() {
- #ifdef USE_POINTS_UV
- vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
- #endif
- #include <color_vertex>
- #include <morphinstance_vertex>
- #include <morphcolor_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <project_vertex>
- gl_PointSize = size;
- #ifdef USE_SIZEATTENUATION
- bool isPerspective = isPerspectiveMatrix( projectionMatrix );
- if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );
- #endif
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <worldpos_vertex>
- #include <fog_vertex>
- }`,dce=`uniform vec3 diffuse;
- uniform float opacity;
- #include <common>
- #include <color_pars_fragment>
- #include <map_particle_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <fog_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <clipping_planes_fragment>
- vec3 outgoingLight = vec3( 0.0 );
- #include <logdepthbuf_fragment>
- #include <map_particle_fragment>
- #include <color_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- outgoingLight = diffuseColor.rgb;
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- }`,fce=`#include <common>
- #include <batching_pars_vertex>
- #include <fog_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <shadowmap_pars_vertex>
- void main() {
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphinstance_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <worldpos_vertex>
- #include <shadowmap_vertex>
- #include <fog_vertex>
- }`,hce=`uniform vec3 color;
- uniform float opacity;
- #include <common>
- #include <packing>
- #include <fog_pars_fragment>
- #include <bsdfs>
- #include <lights_pars_begin>
- #include <logdepthbuf_pars_fragment>
- #include <shadowmap_pars_fragment>
- #include <shadowmask_pars_fragment>
- void main() {
- #include <logdepthbuf_fragment>
- gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- }`,pce=`uniform float rotation;
- uniform vec2 center;
- #include <common>
- #include <uv_pars_vertex>
- #include <fog_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- vec4 mvPosition = modelViewMatrix[ 3 ];
- vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );
- #ifndef USE_SIZEATTENUATION
- bool isPerspective = isPerspectiveMatrix( projectionMatrix );
- if ( isPerspective ) scale *= - mvPosition.z;
- #endif
- vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;
- vec2 rotatedPosition;
- rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
- rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
- mvPosition.xy += rotatedPosition;
- gl_Position = projectionMatrix * mvPosition;
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <fog_vertex>
- }`,mce=`uniform vec3 diffuse;
- uniform float opacity;
- #include <common>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <fog_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <clipping_planes_fragment>
- vec3 outgoingLight = vec3( 0.0 );
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- outgoingLight = diffuseColor.rgb;
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- }`,Kt={alphahash_fragment:Use,alphahash_pars_fragment:Fse,alphamap_fragment:zse,alphamap_pars_fragment:Bse,alphatest_fragment:jse,alphatest_pars_fragment:Hse,aomap_fragment:Vse,aomap_pars_fragment:Gse,batching_pars_vertex:$se,batching_vertex:Wse,begin_vertex:qse,beginnormal_vertex:Xse,bsdfs:Yse,iridescence_fragment:Kse,bumpmap_pars_fragment:Zse,clipping_planes_fragment:Jse,clipping_planes_pars_fragment:Qse,clipping_planes_pars_vertex:eoe,clipping_planes_vertex:toe,color_fragment:noe,color_pars_fragment:ioe,color_pars_vertex:roe,color_vertex:aoe,common:soe,cube_uv_reflection_fragment:ooe,defaultnormal_vertex:loe,displacementmap_pars_vertex:coe,displacementmap_vertex:uoe,emissivemap_fragment:doe,emissivemap_pars_fragment:foe,colorspace_fragment:hoe,colorspace_pars_fragment:poe,envmap_fragment:moe,envmap_common_pars_fragment:goe,envmap_pars_fragment:voe,envmap_pars_vertex:xoe,envmap_physical_pars_fragment:Roe,envmap_vertex:yoe,fog_vertex:boe,fog_pars_vertex:_oe,fog_fragment:Soe,fog_pars_fragment:woe,gradientmap_pars_fragment:Moe,lightmap_pars_fragment:Eoe,lights_lambert_fragment:Aoe,lights_lambert_pars_fragment:Toe,lights_pars_begin:Coe,lights_toon_fragment:Poe,lights_toon_pars_fragment:Doe,lights_phong_fragment:Noe,lights_phong_pars_fragment:Ooe,lights_physical_fragment:Loe,lights_physical_pars_fragment:koe,lights_fragment_begin:Ioe,lights_fragment_maps:Uoe,lights_fragment_end:Foe,logdepthbuf_fragment:zoe,logdepthbuf_pars_fragment:Boe,logdepthbuf_pars_vertex:joe,logdepthbuf_vertex:Hoe,map_fragment:Voe,map_pars_fragment:Goe,map_particle_fragment:$oe,map_particle_pars_fragment:Woe,metalnessmap_fragment:qoe,metalnessmap_pars_fragment:Xoe,morphinstance_vertex:Yoe,morphcolor_vertex:Koe,morphnormal_vertex:Zoe,morphtarget_pars_vertex:Joe,morphtarget_vertex:Qoe,normal_fragment_begin:ele,normal_fragment_maps:tle,normal_pars_fragment:nle,normal_pars_vertex:ile,normal_vertex:rle,normalmap_pars_fragment:ale,clearcoat_normal_fragment_begin:sle,clearcoat_normal_fragment_maps:ole,clearcoat_pars_fragment:lle,iridescence_pars_fragment:cle,opaque_fragment:ule,packing:dle,premultiplied_alpha_fragment:fle,project_vertex:hle,dithering_fragment:ple,dithering_pars_fragment:mle,roughnessmap_fragment:gle,roughnessmap_pars_fragment:vle,shadowmap_pars_fragment:xle,shadowmap_pars_vertex:yle,shadowmap_vertex:ble,shadowmask_pars_fragment:_le,skinbase_vertex:Sle,skinning_pars_vertex:wle,skinning_vertex:Mle,skinnormal_vertex:Ele,specularmap_fragment:Ale,specularmap_pars_fragment:Tle,tonemapping_fragment:Cle,tonemapping_pars_fragment:Rle,transmission_fragment:Ple,transmission_pars_fragment:Dle,uv_pars_fragment:Nle,uv_pars_vertex:Ole,uv_vertex:Lle,worldpos_vertex:kle,background_vert:Ile,background_frag:Ule,backgroundCube_vert:Fle,backgroundCube_frag:zle,cube_vert:Ble,cube_frag:jle,depth_vert:Hle,depth_frag:Vle,distanceRGBA_vert:Gle,distanceRGBA_frag:$le,equirect_vert:Wle,equirect_frag:qle,linedashed_vert:Xle,linedashed_frag:Yle,meshbasic_vert:Kle,meshbasic_frag:Zle,meshlambert_vert:Jle,meshlambert_frag:Qle,meshmatcap_vert:ece,meshmatcap_frag:tce,meshnormal_vert:nce,meshnormal_frag:ice,meshphong_vert:rce,meshphong_frag:ace,meshphysical_vert:sce,meshphysical_frag:oce,meshtoon_vert:lce,meshtoon_frag:cce,points_vert:uce,points_frag:dce,shadow_vert:fce,shadow_frag:hce,sprite_vert:pce,sprite_frag:mce},yt={common:{diffuse:{value:new dn(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new tn},alphaMap:{value:null},alphaMapTransform:{value:new tn},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new tn}},envmap:{envMap:{value:null},envMapRotation:{value:new tn},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98},dfgLUT:{value:null}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new tn}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new tn}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new tn},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new tn},normalScale:{value:new Jt(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new tn},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new tn}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new tn}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new tn}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new dn(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new dn(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new tn},alphaTest:{value:0},uvTransform:{value:new tn}},sprite:{diffuse:{value:new dn(16777215)},opacity:{value:1},center:{value:new Jt(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new tn},alphaMap:{value:null},alphaMapTransform:{value:new tn},alphaTest:{value:0}}},Po={basic:{uniforms:sa([yt.common,yt.specularmap,yt.envmap,yt.aomap,yt.lightmap,yt.fog]),vertexShader:Kt.meshbasic_vert,fragmentShader:Kt.meshbasic_frag},lambert:{uniforms:sa([yt.common,yt.specularmap,yt.envmap,yt.aomap,yt.lightmap,yt.emissivemap,yt.bumpmap,yt.normalmap,yt.displacementmap,yt.fog,yt.lights,{emissive:{value:new dn(0)}}]),vertexShader:Kt.meshlambert_vert,fragmentShader:Kt.meshlambert_frag},phong:{uniforms:sa([yt.common,yt.specularmap,yt.envmap,yt.aomap,yt.lightmap,yt.emissivemap,yt.bumpmap,yt.normalmap,yt.displacementmap,yt.fog,yt.lights,{emissive:{value:new dn(0)},specular:{value:new dn(1118481)},shininess:{value:30}}]),vertexShader:Kt.meshphong_vert,fragmentShader:Kt.meshphong_frag},standard:{uniforms:sa([yt.common,yt.envmap,yt.aomap,yt.lightmap,yt.emissivemap,yt.bumpmap,yt.normalmap,yt.displacementmap,yt.roughnessmap,yt.metalnessmap,yt.fog,yt.lights,{emissive:{value:new dn(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Kt.meshphysical_vert,fragmentShader:Kt.meshphysical_frag},toon:{uniforms:sa([yt.common,yt.aomap,yt.lightmap,yt.emissivemap,yt.bumpmap,yt.normalmap,yt.displacementmap,yt.gradientmap,yt.fog,yt.lights,{emissive:{value:new dn(0)}}]),vertexShader:Kt.meshtoon_vert,fragmentShader:Kt.meshtoon_frag},matcap:{uniforms:sa([yt.common,yt.bumpmap,yt.normalmap,yt.displacementmap,yt.fog,{matcap:{value:null}}]),vertexShader:Kt.meshmatcap_vert,fragmentShader:Kt.meshmatcap_frag},points:{uniforms:sa([yt.points,yt.fog]),vertexShader:Kt.points_vert,fragmentShader:Kt.points_frag},dashed:{uniforms:sa([yt.common,yt.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Kt.linedashed_vert,fragmentShader:Kt.linedashed_frag},depth:{uniforms:sa([yt.common,yt.displacementmap]),vertexShader:Kt.depth_vert,fragmentShader:Kt.depth_frag},normal:{uniforms:sa([yt.common,yt.bumpmap,yt.normalmap,yt.displacementmap,{opacity:{value:1}}]),vertexShader:Kt.meshnormal_vert,fragmentShader:Kt.meshnormal_frag},sprite:{uniforms:sa([yt.sprite,yt.fog]),vertexShader:Kt.sprite_vert,fragmentShader:Kt.sprite_frag},background:{uniforms:{uvTransform:{value:new tn},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Kt.background_vert,fragmentShader:Kt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new tn}},vertexShader:Kt.backgroundCube_vert,fragmentShader:Kt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Kt.cube_vert,fragmentShader:Kt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Kt.equirect_vert,fragmentShader:Kt.equirect_frag},distanceRGBA:{uniforms:sa([yt.common,yt.displacementmap,{referencePosition:{value:new Ge},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Kt.distanceRGBA_vert,fragmentShader:Kt.distanceRGBA_frag},shadow:{uniforms:sa([yt.lights,yt.fog,{color:{value:new dn(0)},opacity:{value:1}}]),vertexShader:Kt.shadow_vert,fragmentShader:Kt.shadow_frag}};Po.physical={uniforms:sa([Po.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new tn},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new tn},clearcoatNormalScale:{value:new Jt(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new tn},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new tn},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new tn},sheen:{value:0},sheenColor:{value:new dn(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new tn},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new tn},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new tn},transmissionSamplerSize:{value:new Jt},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new tn},attenuationDistance:{value:0},attenuationColor:{value:new dn(0)},specularColor:{value:new dn(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new tn},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new tn},anisotropyVector:{value:new Jt},anisotropyMap:{value:null},anisotropyMapTransform:{value:new tn}}]),vertexShader:Kt.meshphysical_vert,fragmentShader:Kt.meshphysical_frag};const py={r:0,b:0,g:0},dd=new Ru,gce=new Bi;function vce(t,e,n,i,r,a,s){const o=new dn(0);let l=a===!0?0:1,c,d,f=null,p=0,m=null;function y(M){let A=M.isScene===!0?M.background:null;return A&&A.isTexture&&(A=(M.backgroundBlurriness>0?n:e).get(A)),A}function b(M){let A=!1;const T=y(M);T===null?v(o,l):T&&T.isColor&&(v(T,1),A=!0);const D=t.xr.getEnvironmentBlendMode();D==="additive"?i.buffers.color.setClear(0,0,0,1,s):D==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,s),(t.autoClear||A)&&(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil))}function x(M,A){const T=y(A);T&&(T.isCubeTexture||T.mapping===tS)?(d===void 0&&(d=new Bo(new BP(1,1,1),new Jl({name:"BackgroundCubeMaterial",uniforms:_p(Po.backgroundCube.uniforms),vertexShader:Po.backgroundCube.vertexShader,fragmentShader:Po.backgroundCube.fragmentShader,side:Pa,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),d.geometry.deleteAttribute("normal"),d.geometry.deleteAttribute("uv"),d.onBeforeRender=function(D,C,U){this.matrixWorld.copyPosition(U.matrixWorld)},Object.defineProperty(d.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(d)),dd.copy(A.backgroundRotation),dd.x*=-1,dd.y*=-1,dd.z*=-1,T.isCubeTexture&&T.isRenderTargetTexture===!1&&(dd.y*=-1,dd.z*=-1),d.material.uniforms.envMap.value=T,d.material.uniforms.flipEnvMap.value=T.isCubeTexture&&T.isRenderTargetTexture===!1?-1:1,d.material.uniforms.backgroundBlurriness.value=A.backgroundBlurriness,d.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,d.material.uniforms.backgroundRotation.value.setFromMatrix4(gce.makeRotationFromEuler(dd)),d.material.toneMapped=xn.getTransfer(T.colorSpace)!==On,(f!==T||p!==T.version||m!==t.toneMapping)&&(d.material.needsUpdate=!0,f=T,p=T.version,m=t.toneMapping),d.layers.enableAll(),M.unshift(d,d.geometry,d.material,0,0,null)):T&&T.isTexture&&(c===void 0&&(c=new Bo(new HP(2,2),new Jl({name:"BackgroundMaterial",uniforms:_p(Po.background.uniforms),vertexShader:Po.background.vertexShader,fragmentShader:Po.background.fragmentShader,side:Cu,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=T,c.material.uniforms.backgroundIntensity.value=A.backgroundIntensity,c.material.toneMapped=xn.getTransfer(T.colorSpace)!==On,T.matrixAutoUpdate===!0&&T.updateMatrix(),c.material.uniforms.uvTransform.value.copy(T.matrix),(f!==T||p!==T.version||m!==t.toneMapping)&&(c.material.needsUpdate=!0,f=T,p=T.version,m=t.toneMapping),c.layers.enableAll(),M.unshift(c,c.geometry,c.material,0,0,null))}function v(M,A){M.getRGB(py,DG(t)),i.buffers.color.setClear(py.r,py.g,py.b,A,s)}function w(){d!==void 0&&(d.geometry.dispose(),d.material.dispose(),d=void 0),c!==void 0&&(c.geometry.dispose(),c.material.dispose(),c=void 0)}return{getClearColor:function(){return o},setClearColor:function(M,A=1){o.set(M),l=A,v(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(M){l=M,v(o,l)},render:b,addToRenderList:x,dispose:w}}function xce(t,e){const n=t.getParameter(t.MAX_VERTEX_ATTRIBS),i={},r=p(null);let a=r,s=!1;function o(k,B,I,W,O){let $=!1;const q=f(W,I,B);a!==q&&(a=q,c(a.object)),$=m(k,W,I,O),$&&y(k,W,I,O),O!==null&&e.update(O,t.ELEMENT_ARRAY_BUFFER),($||s)&&(s=!1,A(k,B,I,W),O!==null&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,e.get(O).buffer))}function l(){return t.createVertexArray()}function c(k){return t.bindVertexArray(k)}function d(k){return t.deleteVertexArray(k)}function f(k,B,I){const W=I.wireframe===!0;let O=i[k.id];O===void 0&&(O={},i[k.id]=O);let $=O[B.id];$===void 0&&($={},O[B.id]=$);let q=$[W];return q===void 0&&(q=p(l()),$[W]=q),q}function p(k){const B=[],I=[],W=[];for(let O=0;O<n;O++)B[O]=0,I[O]=0,W[O]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:B,enabledAttributes:I,attributeDivisors:W,object:k,attributes:{},index:null}}function m(k,B,I,W){const O=a.attributes,$=B.attributes;let q=0;const G=I.getAttributes();for(const Y in G)if(G[Y].location>=0){const se=O[Y];let H=$[Y];if(H===void 0&&(Y==="instanceMatrix"&&k.instanceMatrix&&(H=k.instanceMatrix),Y==="instanceColor"&&k.instanceColor&&(H=k.instanceColor)),se===void 0||se.attribute!==H||H&&se.data!==H.data)return!0;q++}return a.attributesNum!==q||a.index!==W}function y(k,B,I,W){const O={},$=B.attributes;let q=0;const G=I.getAttributes();for(const Y in G)if(G[Y].location>=0){let se=$[Y];se===void 0&&(Y==="instanceMatrix"&&k.instanceMatrix&&(se=k.instanceMatrix),Y==="instanceColor"&&k.instanceColor&&(se=k.instanceColor));const H={};H.attribute=se,se&&se.data&&(H.data=se.data),O[Y]=H,q++}a.attributes=O,a.attributesNum=q,a.index=W}function b(){const k=a.newAttributes;for(let B=0,I=k.length;B<I;B++)k[B]=0}function x(k){v(k,0)}function v(k,B){const I=a.newAttributes,W=a.enabledAttributes,O=a.attributeDivisors;I[k]=1,W[k]===0&&(t.enableVertexAttribArray(k),W[k]=1),O[k]!==B&&(t.vertexAttribDivisor(k,B),O[k]=B)}function w(){const k=a.newAttributes,B=a.enabledAttributes;for(let I=0,W=B.length;I<W;I++)B[I]!==k[I]&&(t.disableVertexAttribArray(I),B[I]=0)}function M(k,B,I,W,O,$,q){q===!0?t.vertexAttribIPointer(k,B,I,O,$):t.vertexAttribPointer(k,B,I,W,O,$)}function A(k,B,I,W){b();const O=W.attributes,$=I.getAttributes(),q=B.defaultAttributeValues;for(const G in $){const Y=$[G];if(Y.location>=0){let Q=O[G];if(Q===void 0&&(G==="instanceMatrix"&&k.instanceMatrix&&(Q=k.instanceMatrix),G==="instanceColor"&&k.instanceColor&&(Q=k.instanceColor)),Q!==void 0){const se=Q.normalized,H=Q.itemSize,X=e.get(Q);if(X===void 0)continue;const re=X.buffer,ce=X.type,ye=X.bytesPerElement,me=ce===t.INT||ce===t.UNSIGNED_INT||Q.gpuType===PP;if(Q.isInterleavedBufferAttribute){const be=Q.data,Ne=be.stride,he=Q.offset;if(be.isInstancedInterleavedBuffer){for(let Ae=0;Ae<Y.locationSize;Ae++)v(Y.location+Ae,be.meshPerAttribute);k.isInstancedMesh!==!0&&W._maxInstanceCount===void 0&&(W._maxInstanceCount=be.meshPerAttribute*be.count)}else for(let Ae=0;Ae<Y.locationSize;Ae++)x(Y.location+Ae);t.bindBuffer(t.ARRAY_BUFFER,re);for(let Ae=0;Ae<Y.locationSize;Ae++)M(Y.location+Ae,H/Y.locationSize,ce,se,Ne*ye,(he+H/Y.locationSize*Ae)*ye,me)}else{if(Q.isInstancedBufferAttribute){for(let be=0;be<Y.locationSize;be++)v(Y.location+be,Q.meshPerAttribute);k.isInstancedMesh!==!0&&W._maxInstanceCount===void 0&&(W._maxInstanceCount=Q.meshPerAttribute*Q.count)}else for(let be=0;be<Y.locationSize;be++)x(Y.location+be);t.bindBuffer(t.ARRAY_BUFFER,re);for(let be=0;be<Y.locationSize;be++)M(Y.location+be,H/Y.locationSize,ce,se,H*ye,H/Y.locationSize*be*ye,me)}}else if(q!==void 0){const se=q[G];if(se!==void 0)switch(se.length){case 2:t.vertexAttrib2fv(Y.location,se);break;case 3:t.vertexAttrib3fv(Y.location,se);break;case 4:t.vertexAttrib4fv(Y.location,se);break;default:t.vertexAttrib1fv(Y.location,se)}}}}w()}function T(){U();for(const k in i){const B=i[k];for(const I in B){const W=B[I];for(const O in W)d(W[O].object),delete W[O];delete B[I]}delete i[k]}}function D(k){if(i[k.id]===void 0)return;const B=i[k.id];for(const I in B){const W=B[I];for(const O in W)d(W[O].object),delete W[O];delete B[I]}delete i[k.id]}function C(k){for(const B in i){const I=i[B];if(I[k.id]===void 0)continue;const W=I[k.id];for(const O in W)d(W[O].object),delete W[O];delete I[k.id]}}function U(){P(),s=!0,a!==r&&(a=r,c(a.object))}function P(){r.geometry=null,r.program=null,r.wireframe=!1}return{setup:o,reset:U,resetDefaultState:P,dispose:T,releaseStatesOfGeometry:D,releaseStatesOfProgram:C,initAttributes:b,enableAttribute:x,disableUnusedAttributes:w}}function yce(t,e,n){let i;function r(c){i=c}function a(c,d){t.drawArrays(i,c,d),n.update(d,i,1)}function s(c,d,f){f!==0&&(t.drawArraysInstanced(i,c,d,f),n.update(d,i,f))}function o(c,d,f){if(f===0)return;e.get("WEBGL_multi_draw").multiDrawArraysWEBGL(i,c,0,d,0,f);let m=0;for(let y=0;y<f;y++)m+=d[y];n.update(m,i,1)}function l(c,d,f,p){if(f===0)return;const m=e.get("WEBGL_multi_draw");if(m===null)for(let y=0;y<c.length;y++)s(c[y],d[y],p[y]);else{m.multiDrawArraysInstancedWEBGL(i,c,0,d,0,p,0,f);let y=0;for(let b=0;b<f;b++)y+=d[b]*p[b];n.update(y,i,1)}}this.setMode=r,this.render=a,this.renderInstances=s,this.renderMultiDraw=o,this.renderMultiDrawInstances=l}function bce(t,e,n,i){let r;function a(){if(r!==void 0)return r;if(e.has("EXT_texture_filter_anisotropic")===!0){const C=e.get("EXT_texture_filter_anisotropic");r=t.getParameter(C.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r}function s(C){return!(C!==lo&&i.convert(C)!==t.getParameter(t.IMPLEMENTATION_COLOR_READ_FORMAT))}function o(C){const U=C===Xp&&(e.has("EXT_color_buffer_half_float")||e.has("EXT_color_buffer_float"));return!(C!==zo&&i.convert(C)!==t.getParameter(t.IMPLEMENTATION_COLOR_READ_TYPE)&&C!==Fl&&!U)}function l(C){if(C==="highp"){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";C="mediump"}return C==="mediump"&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}let c=n.precision!==void 0?n.precision:"highp";const d=l(c);d!==c&&(jt("WebGLRenderer:",c,"not supported, using",d,"instead."),c=d);const f=n.logarithmicDepthBuffer===!0,p=n.reversedDepthBuffer===!0&&e.has("EXT_clip_control"),m=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),y=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),b=t.getParameter(t.MAX_TEXTURE_SIZE),x=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),v=t.getParameter(t.MAX_VERTEX_ATTRIBS),w=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),M=t.getParameter(t.MAX_VARYING_VECTORS),A=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),T=y>0,D=t.getParameter(t.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:a,getMaxPrecision:l,textureFormatReadable:s,textureTypeReadable:o,precision:c,logarithmicDepthBuffer:f,reversedDepthBuffer:p,maxTextures:m,maxVertexTextures:y,maxTextureSize:b,maxCubemapSize:x,maxAttributes:v,maxVertexUniforms:w,maxVaryings:M,maxFragmentUniforms:A,vertexTextures:T,maxSamples:D}}function _ce(t){const e=this;let n=null,i=0,r=!1,a=!1;const s=new eu,o=new tn,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(f,p){const m=f.length!==0||p||i!==0||r;return r=p,i=f.length,m},this.beginShadows=function(){a=!0,d(null)},this.endShadows=function(){a=!1},this.setGlobalState=function(f,p){n=d(f,p,0)},this.setState=function(f,p,m){const y=f.clippingPlanes,b=f.clipIntersection,x=f.clipShadows,v=t.get(f);if(!r||y===null||y.length===0||a&&!x)a?d(null):c();else{const w=a?0:i,M=w*4;let A=v.clippingState||null;l.value=A,A=d(y,p,M,m);for(let T=0;T!==M;++T)A[T]=n[T];v.clippingState=A,this.numIntersection=b?this.numPlanes:0,this.numPlanes+=w}};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function d(f,p,m,y){const b=f!==null?f.length:0;let x=null;if(b!==0){if(x=l.value,y!==!0||x===null){const v=m+b*4,w=p.matrixWorldInverse;o.getNormalMatrix(w),(x===null||x.length<v)&&(x=new Float32Array(v));for(let M=0,A=m;M!==b;++M,A+=4)s.copy(f[M]).applyMatrix4(w,o),s.normal.toArray(x,A),x[A+3]=s.constant}l.value=x,l.needsUpdate=!0}return e.numPlanes=b,e.numIntersection=0,x}}function Sce(t){let e=new WeakMap;function n(s,o){return o===O2?s.mapping=xp:o===L2&&(s.mapping=yp),s}function i(s){if(s&&s.isTexture){const o=s.mapping;if(o===O2||o===L2)if(e.has(s)){const l=e.get(s).texture;return n(l,s.mapping)}else{const l=s.image;if(l&&l.height>0){const c=new vse(l.height);return c.fromEquirectangularTexture(t,s),e.set(s,c),s.addEventListener("dispose",r),n(c.texture,s.mapping)}else return null}}return s}function r(s){const o=s.target;o.removeEventListener("dispose",r);const l=e.get(o);l!==void 0&&(e.delete(o),l.dispose())}function a(){e=new WeakMap}return{get:i,dispose:a}}const fu=4,$F=[.125,.215,.35,.446,.526,.582],Ed=20,wce=256,fg=new zG,WF=new dn;let aA=null,sA=0,oA=0,lA=!1;const Mce=new Ge;let qF=class{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._sizeLods=[],this._sigmas=[],this._lodMeshes=[],this._backgroundBox=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._blurMaterial=null,this._ggxMaterial=null}fromScene(e,n=0,i=.1,r=100,a={}){const{size:s=256,position:o=Mce}=a;aA=this._renderer.getRenderTarget(),sA=this._renderer.getActiveCubeFace(),oA=this._renderer.getActiveMipmapLevel(),lA=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(s);const l=this._allocateTargets();return l.depthBuffer=!0,this._sceneToCubeUV(e,i,r,l,o),n>0&&this._blur(l,0,0,n),this._applyPMREM(l),this._cleanup(l),l}fromEquirectangular(e,n=null){return this._fromTexture(e,n)}fromCubemap(e,n=null){return this._fromTexture(e,n)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=KF(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=YF(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose(),this._backgroundBox!==null&&(this._backgroundBox.geometry.dispose(),this._backgroundBox.material.dispose())}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._ggxMaterial!==null&&this._ggxMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e<this._lodMeshes.length;e++)this._lodMeshes[e].geometry.dispose()}_cleanup(e){this._renderer.setRenderTarget(aA,sA,oA),this._renderer.xr.enabled=lA,e.scissorTest=!1,bh(e,0,0,e.width,e.height)}_fromTexture(e,n){e.mapping===xp||e.mapping===yp?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4),aA=this._renderer.getRenderTarget(),sA=this._renderer.getActiveCubeFace(),oA=this._renderer.getActiveMipmapLevel(),lA=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;const i=n||this._allocateTargets();return this._textureToCubeUV(e,i),this._applyPMREM(i),this._cleanup(i),i}_allocateTargets(){const e=3*Math.max(this._cubeSize,112),n=4*this._cubeSize,i={magFilter:Ls,minFilter:Ls,generateMipmaps:!1,type:Xp,format:lo,colorSpace:bp,depthBuffer:!1},r=XF(e,n,i);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==e||this._pingPongRenderTarget.height!==n){this._pingPongRenderTarget!==null&&this._dispose(),this._pingPongRenderTarget=XF(e,n,i);const{_lodMax:a}=this;({lodMeshes:this._lodMeshes,sizeLods:this._sizeLods,sigmas:this._sigmas}=Ece(a)),this._blurMaterial=Tce(a,e,n),this._ggxMaterial=Ace(a,e,n)}return r}_compileMaterial(e){const n=new Bo(new Yo,e);this._renderer.compile(n,fg)}_sceneToCubeUV(e,n,i,r,a){const l=new Rs(90,1,n,i),c=[1,-1,1,1,1,1],d=[1,1,1,-1,-1,-1],f=this._renderer,p=f.autoClear,m=f.toneMapping;f.getClearColor(WF),f.toneMapping=yu,f.autoClear=!1,f.state.buffers.depth.getReversed()&&(f.setRenderTarget(r),f.clearDepth(),f.setRenderTarget(null)),this._backgroundBox===null&&(this._backgroundBox=new Bo(new BP,new zP({name:"PMREM.Background",side:Pa,depthWrite:!1,depthTest:!1})));const b=this._backgroundBox,x=b.material;let v=!1;const w=e.background;w?w.isColor&&(x.color.copy(w),e.background=null,v=!0):(x.color.copy(WF),v=!0);for(let M=0;M<6;M++){const A=M%3;A===0?(l.up.set(0,c[M],0),l.position.set(a.x,a.y,a.z),l.lookAt(a.x+d[M],a.y,a.z)):A===1?(l.up.set(0,0,c[M]),l.position.set(a.x,a.y,a.z),l.lookAt(a.x,a.y+d[M],a.z)):(l.up.set(0,c[M],0),l.position.set(a.x,a.y,a.z),l.lookAt(a.x,a.y,a.z+d[M]));const T=this._cubeSize;bh(r,A*T,M>2?T:0,T,T),f.setRenderTarget(r),v&&f.render(b,l),f.render(e,l)}f.toneMapping=m,f.autoClear=p,e.background=w}_textureToCubeUV(e,n){const i=this._renderer,r=e.mapping===xp||e.mapping===yp;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=KF()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=YF());const a=r?this._cubemapMaterial:this._equirectMaterial,s=this._lodMeshes[0];s.material=a;const o=a.uniforms;o.envMap.value=e;const l=this._cubeSize;bh(n,0,0,3*l,2*l),i.setRenderTarget(n),i.render(s,fg)}_applyPMREM(e){const n=this._renderer,i=n.autoClear;n.autoClear=!1;const r=this._lodMeshes.length;for(let a=1;a<r;a++)this._applyGGXFilter(e,a-1,a);n.autoClear=i}_applyGGXFilter(e,n,i){const r=this._renderer,a=this._pingPongRenderTarget,s=this._ggxMaterial,o=this._lodMeshes[i];o.material=s;const l=s.uniforms,c=i/(this._lodMeshes.length-1),d=n/(this._lodMeshes.length-1),f=Math.sqrt(c*c-d*d),p=.05+c*.95,m=f*p,{_lodMax:y}=this,b=this._sizeLods[i],x=3*b*(i>y-fu?i-y+fu:0),v=4*(this._cubeSize-b);l.envMap.value=e.texture,l.roughness.value=m,l.mipInt.value=y-n,bh(a,x,v,3*b,2*b),r.setRenderTarget(a),r.render(o,fg),l.envMap.value=a.texture,l.roughness.value=0,l.mipInt.value=y-i,bh(e,x,v,3*b,2*b),r.setRenderTarget(e),r.render(o,fg)}_blur(e,n,i,r,a){const s=this._pingPongRenderTarget;this._halfBlur(e,s,n,i,r,"latitudinal",a),this._halfBlur(s,e,i,i,r,"longitudinal",a)}_halfBlur(e,n,i,r,a,s,o){const l=this._renderer,c=this._blurMaterial;s!=="latitudinal"&&s!=="longitudinal"&&wi("blur direction must be either latitudinal or longitudinal!");const d=3,f=this._lodMeshes[r];f.material=c;const p=c.uniforms,m=this._sizeLods[i]-1,y=isFinite(a)?Math.PI/(2*m):2*Math.PI/(2*Ed-1),b=a/y,x=isFinite(a)?1+Math.floor(d*b):Ed;x>Ed&&jt(`sigmaRadians, ${a}, is too large and will clip, as it requested ${x} samples when the maximum is set to ${Ed}`);const v=[];let w=0;for(let C=0;C<Ed;++C){const U=C/b,P=Math.exp(-U*U/2);v.push(P),C===0?w+=P:C<x&&(w+=2*P)}for(let C=0;C<v.length;C++)v[C]=v[C]/w;p.envMap.value=e.texture,p.samples.value=x,p.weights.value=v,p.latitudinal.value=s==="latitudinal",o&&(p.poleAxis.value=o);const{_lodMax:M}=this;p.dTheta.value=y,p.mipInt.value=M-i;const A=this._sizeLods[r],T=3*A*(r>M-fu?r-M+fu:0),D=4*(this._cubeSize-A);bh(n,T,D,3*A,2*A),l.setRenderTarget(n),l.render(f,fg)}};function Ece(t){const e=[],n=[],i=[];let r=t;const a=t-fu+1+$F.length;for(let s=0;s<a;s++){const o=Math.pow(2,r);e.push(o);let l=1/o;s>t-fu?l=$F[s-t+fu-1]:s===0&&(l=0),n.push(l);const c=1/(o-2),d=-c,f=1+c,p=[d,d,f,d,f,f,d,d,f,f,d,f],m=6,y=6,b=3,x=2,v=1,w=new Float32Array(b*y*m),M=new Float32Array(x*y*m),A=new Float32Array(v*y*m);for(let D=0;D<m;D++){const C=D%3*2/3-1,U=D>2?0:-1,P=[C,U,0,C+2/3,U,0,C+2/3,U+1,0,C,U,0,C+2/3,U+1,0,C,U+1,0];w.set(P,b*y*D),M.set(p,x*y*D);const k=[D,D,D,D,D,D];A.set(k,v*y*D)}const T=new Yo;T.setAttribute("position",new Is(w,b)),T.setAttribute("uv",new Is(M,x)),T.setAttribute("faceIndex",new Is(A,v)),i.push(new Bo(T,null)),r>fu&&r--}return{lodMeshes:i,sizeLods:e,sigmas:n}}function XF(t,e,n){const i=new of(t,e,n);return i.texture.mapping=tS,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function bh(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function Ace(t,e,n){return new Jl({name:"PMREMGGXConvolution",defines:{GGX_SAMPLES:wce,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},roughness:{value:0},mipInt:{value:0}},vertexShader:iS(),fragmentShader:`
- precision highp float;
- precision highp int;
- varying vec3 vOutputDirection;
- uniform sampler2D envMap;
- uniform float roughness;
- uniform float mipInt;
- #define ENVMAP_TYPE_CUBE_UV
- #include <cube_uv_reflection_fragment>
- #define PI 3.14159265359
- // Van der Corput radical inverse
- float radicalInverse_VdC(uint bits) {
- bits = (bits << 16u) | (bits >> 16u);
- bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);
- bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);
- bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);
- bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);
- return float(bits) * 2.3283064365386963e-10; // / 0x100000000
- }
- // Hammersley sequence
- vec2 hammersley(uint i, uint N) {
- return vec2(float(i) / float(N), radicalInverse_VdC(i));
- }
- // GGX VNDF importance sampling (Eric Heitz 2018)
- // "Sampling the GGX Distribution of Visible Normals"
- // https://jcgt.org/published/0007/04/01/
- vec3 importanceSampleGGX_VNDF(vec2 Xi, vec3 V, float roughness) {
- float alpha = roughness * roughness;
- // Section 3.2: Transform view direction to hemisphere configuration
- vec3 Vh = normalize(vec3(alpha * V.x, alpha * V.y, V.z));
- // Section 4.1: Orthonormal basis
- float lensq = Vh.x * Vh.x + Vh.y * Vh.y;
- vec3 T1 = lensq > 0.0 ? vec3(-Vh.y, Vh.x, 0.0) / sqrt(lensq) : vec3(1.0, 0.0, 0.0);
- vec3 T2 = cross(Vh, T1);
- // Section 4.2: Parameterization of projected area
- float r = sqrt(Xi.x);
- float phi = 2.0 * PI * Xi.y;
- float t1 = r * cos(phi);
- float t2 = r * sin(phi);
- float s = 0.5 * (1.0 + Vh.z);
- t2 = (1.0 - s) * sqrt(1.0 - t1 * t1) + s * t2;
- // Section 4.3: Reprojection onto hemisphere
- vec3 Nh = t1 * T1 + t2 * T2 + sqrt(max(0.0, 1.0 - t1 * t1 - t2 * t2)) * Vh;
- // Section 3.4: Transform back to ellipsoid configuration
- return normalize(vec3(alpha * Nh.x, alpha * Nh.y, max(0.0, Nh.z)));
- }
- void main() {
- vec3 N = normalize(vOutputDirection);
- vec3 V = N; // Assume view direction equals normal for pre-filtering
- vec3 prefilteredColor = vec3(0.0);
- float totalWeight = 0.0;
- // For very low roughness, just sample the environment directly
- if (roughness < 0.001) {
- gl_FragColor = vec4(bilinearCubeUV(envMap, N, mipInt), 1.0);
- return;
- }
- // Tangent space basis for VNDF sampling
- vec3 up = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);
- vec3 tangent = normalize(cross(up, N));
- vec3 bitangent = cross(N, tangent);
- for(uint i = 0u; i < uint(GGX_SAMPLES); i++) {
- vec2 Xi = hammersley(i, uint(GGX_SAMPLES));
- // For PMREM, V = N, so in tangent space V is always (0, 0, 1)
- vec3 H_tangent = importanceSampleGGX_VNDF(Xi, vec3(0.0, 0.0, 1.0), roughness);
- // Transform H back to world space
- vec3 H = normalize(tangent * H_tangent.x + bitangent * H_tangent.y + N * H_tangent.z);
- vec3 L = normalize(2.0 * dot(V, H) * H - V);
- float NdotL = max(dot(N, L), 0.0);
- if(NdotL > 0.0) {
- // Sample environment at fixed mip level
- // VNDF importance sampling handles the distribution filtering
- vec3 sampleColor = bilinearCubeUV(envMap, L, mipInt);
- // Weight by NdotL for the split-sum approximation
- // VNDF PDF naturally accounts for the visible microfacet distribution
- prefilteredColor += sampleColor * NdotL;
- totalWeight += NdotL;
- }
- }
- if (totalWeight > 0.0) {
- prefilteredColor = prefilteredColor / totalWeight;
- }
- gl_FragColor = vec4(prefilteredColor, 1.0);
- }
- `,blending:Gl,depthTest:!1,depthWrite:!1})}function Tce(t,e,n){const i=new Float32Array(Ed),r=new Ge(0,1,0);return new Jl({name:"SphericalGaussianBlur",defines:{n:Ed,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:iS(),fragmentShader:`
- precision mediump float;
- precision mediump int;
- varying vec3 vOutputDirection;
- uniform sampler2D envMap;
- uniform int samples;
- uniform float weights[ n ];
- uniform bool latitudinal;
- uniform float dTheta;
- uniform float mipInt;
- uniform vec3 poleAxis;
- #define ENVMAP_TYPE_CUBE_UV
- #include <cube_uv_reflection_fragment>
- vec3 getSample( float theta, vec3 axis ) {
- float cosTheta = cos( theta );
- // Rodrigues' axis-angle rotation
- vec3 sampleDirection = vOutputDirection * cosTheta
- + cross( axis, vOutputDirection ) * sin( theta )
- + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );
- return bilinearCubeUV( envMap, sampleDirection, mipInt );
- }
- void main() {
- vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );
- if ( all( equal( axis, vec3( 0.0 ) ) ) ) {
- axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );
- }
- axis = normalize( axis );
- gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
- gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );
- for ( int i = 1; i < n; i++ ) {
- if ( i >= samples ) {
- break;
- }
- float theta = dTheta * float( i );
- gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );
- gl_FragColor.rgb += weights[ i ] * getSample( theta, axis );
- }
- }
- `,blending:Gl,depthTest:!1,depthWrite:!1})}function YF(){return new Jl({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:iS(),fragmentShader:`
- precision mediump float;
- precision mediump int;
- varying vec3 vOutputDirection;
- uniform sampler2D envMap;
- #include <common>
- void main() {
- vec3 outputDirection = normalize( vOutputDirection );
- vec2 uv = equirectUv( outputDirection );
- gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );
- }
- `,blending:Gl,depthTest:!1,depthWrite:!1})}function KF(){return new Jl({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:iS(),fragmentShader:`
- precision mediump float;
- precision mediump int;
- uniform float flipEnvMap;
- varying vec3 vOutputDirection;
- uniform samplerCube envMap;
- void main() {
- gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );
- }
- `,blending:Gl,depthTest:!1,depthWrite:!1})}function iS(){return`
- precision mediump float;
- precision mediump int;
- attribute float faceIndex;
- varying vec3 vOutputDirection;
- // RH coordinate system; PMREM face-indexing convention
- vec3 getDirection( vec2 uv, float face ) {
- uv = 2.0 * uv - 1.0;
- vec3 direction = vec3( uv, 1.0 );
- if ( face == 0.0 ) {
- direction = direction.zyx; // ( 1, v, u ) pos x
- } else if ( face == 1.0 ) {
- direction = direction.xzy;
- direction.xz *= -1.0; // ( -u, 1, -v ) pos y
- } else if ( face == 2.0 ) {
- direction.x *= -1.0; // ( -u, v, 1 ) pos z
- } else if ( face == 3.0 ) {
- direction = direction.zyx;
- direction.xz *= -1.0; // ( -1, v, -u ) neg x
- } else if ( face == 4.0 ) {
- direction = direction.xzy;
- direction.xy *= -1.0; // ( -u, -1, v ) neg y
- } else if ( face == 5.0 ) {
- direction.z *= -1.0; // ( u, v, -1 ) neg z
- }
- return direction;
- }
- void main() {
- vOutputDirection = getDirection( uv, faceIndex );
- gl_Position = vec4( position, 1.0 );
- }
- `}function Cce(t){let e=new WeakMap,n=null;function i(o){if(o&&o.isTexture){const l=o.mapping,c=l===O2||l===L2,d=l===xp||l===yp;if(c||d){let f=e.get(o);const p=f!==void 0?f.texture.pmremVersion:0;if(o.isRenderTargetTexture&&o.pmremVersion!==p)return n===null&&(n=new qF(t)),f=c?n.fromEquirectangular(o,f):n.fromCubemap(o,f),f.texture.pmremVersion=o.pmremVersion,e.set(o,f),f.texture;if(f!==void 0)return f.texture;{const m=o.image;return c&&m&&m.height>0||d&&m&&r(m)?(n===null&&(n=new qF(t)),f=c?n.fromEquirectangular(o):n.fromCubemap(o),f.texture.pmremVersion=o.pmremVersion,e.set(o,f),o.addEventListener("dispose",a),f.texture):null}}}return o}function r(o){let l=0;const c=6;for(let d=0;d<c;d++)o[d]!==void 0&&l++;return l===c}function a(o){const l=o.target;l.removeEventListener("dispose",a);const c=e.get(l);c!==void 0&&(e.delete(l),c.dispose())}function s(){e=new WeakMap,n!==null&&(n.dispose(),n=null)}return{get:i,dispose:s}}function Rce(t){const e={};function n(i){if(e[i]!==void 0)return e[i];const r=t.getExtension(i);return e[i]=r,r}return{has:function(i){return n(i)!==null},init:function(){n("EXT_color_buffer_float"),n("WEBGL_clip_cull_distance"),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture"),n("WEBGL_render_shared_exponent")},get:function(i){const r=n(i);return r===null&&m0("WebGLRenderer: "+i+" extension not supported."),r}}}function Pce(t,e,n,i){const r={},a=new WeakMap;function s(f){const p=f.target;p.index!==null&&e.remove(p.index);for(const y in p.attributes)e.remove(p.attributes[y]);p.removeEventListener("dispose",s),delete r[p.id];const m=a.get(p);m&&(e.remove(m),a.delete(p)),i.releaseStatesOfGeometry(p),p.isInstancedBufferGeometry===!0&&delete p._maxInstanceCount,n.memory.geometries--}function o(f,p){return r[p.id]===!0||(p.addEventListener("dispose",s),r[p.id]=!0,n.memory.geometries++),p}function l(f){const p=f.attributes;for(const m in p)e.update(p[m],t.ARRAY_BUFFER)}function c(f){const p=[],m=f.index,y=f.attributes.position;let b=0;if(m!==null){const w=m.array;b=m.version;for(let M=0,A=w.length;M<A;M+=3){const T=w[M+0],D=w[M+1],C=w[M+2];p.push(T,D,D,C,C,T)}}else if(y!==void 0){const w=y.array;b=y.version;for(let M=0,A=w.length/3-1;M<A;M+=3){const T=M+0,D=M+1,C=M+2;p.push(T,D,D,C,C,T)}}else return;const x=new(xG(p)?CG:TG)(p,1);x.version=b;const v=a.get(f);v&&e.remove(v),a.set(f,x)}function d(f){const p=a.get(f);if(p){const m=f.index;m!==null&&p.version<m.version&&c(f)}else c(f);return a.get(f)}return{get:o,update:l,getWireframeAttribute:d}}function Dce(t,e,n){let i;function r(p){i=p}let a,s;function o(p){a=p.type,s=p.bytesPerElement}function l(p,m){t.drawElements(i,m,a,p*s),n.update(m,i,1)}function c(p,m,y){y!==0&&(t.drawElementsInstanced(i,m,a,p*s,y),n.update(m,i,y))}function d(p,m,y){if(y===0)return;e.get("WEBGL_multi_draw").multiDrawElementsWEBGL(i,m,0,a,p,0,y);let x=0;for(let v=0;v<y;v++)x+=m[v];n.update(x,i,1)}function f(p,m,y,b){if(y===0)return;const x=e.get("WEBGL_multi_draw");if(x===null)for(let v=0;v<p.length;v++)c(p[v]/s,m[v],b[v]);else{x.multiDrawElementsInstancedWEBGL(i,m,0,a,p,0,b,0,y);let v=0;for(let w=0;w<y;w++)v+=m[w]*b[w];n.update(v,i,1)}}this.setMode=r,this.setIndex=o,this.render=l,this.renderInstances=c,this.renderMultiDraw=d,this.renderMultiDrawInstances=f}function Nce(t){const e={geometries:0,textures:0},n={frame:0,calls:0,triangles:0,points:0,lines:0};function i(a,s,o){switch(n.calls++,s){case t.TRIANGLES:n.triangles+=o*(a/3);break;case t.LINES:n.lines+=o*(a/2);break;case t.LINE_STRIP:n.lines+=o*(a-1);break;case t.LINE_LOOP:n.lines+=o*a;break;case t.POINTS:n.points+=o*a;break;default:wi("WebGLInfo: Unknown draw mode:",s);break}}function r(){n.calls=0,n.triangles=0,n.points=0,n.lines=0}return{memory:e,render:n,programs:null,autoReset:!0,reset:r,update:i}}function Oce(t,e,n){const i=new WeakMap,r=new Li;function a(s,o,l){const c=s.morphTargetInfluences,d=o.morphAttributes.position||o.morphAttributes.normal||o.morphAttributes.color,f=d!==void 0?d.length:0;let p=i.get(o);if(p===void 0||p.count!==f){let k=function(){U.dispose(),i.delete(o),o.removeEventListener("dispose",k)};var m=k;p!==void 0&&p.texture.dispose();const y=o.morphAttributes.position!==void 0,b=o.morphAttributes.normal!==void 0,x=o.morphAttributes.color!==void 0,v=o.morphAttributes.position||[],w=o.morphAttributes.normal||[],M=o.morphAttributes.color||[];let A=0;y===!0&&(A=1),b===!0&&(A=2),x===!0&&(A=3);let T=o.attributes.position.count*A,D=1;T>e.maxTextureSize&&(D=Math.ceil(T/e.maxTextureSize),T=e.maxTextureSize);const C=new Float32Array(T*D*4*f),U=new wG(C,T,D,f);U.type=Fl,U.needsUpdate=!0;const P=A*4;for(let B=0;B<f;B++){const I=v[B],W=w[B],O=M[B],$=T*D*4*B;for(let q=0;q<I.count;q++){const G=q*P;y===!0&&(r.fromBufferAttribute(I,q),C[$+G+0]=r.x,C[$+G+1]=r.y,C[$+G+2]=r.z,C[$+G+3]=0),b===!0&&(r.fromBufferAttribute(W,q),C[$+G+4]=r.x,C[$+G+5]=r.y,C[$+G+6]=r.z,C[$+G+7]=0),x===!0&&(r.fromBufferAttribute(O,q),C[$+G+8]=r.x,C[$+G+9]=r.y,C[$+G+10]=r.z,C[$+G+11]=O.itemSize===4?r.w:1)}}p={count:f,texture:U,size:new Jt(T,D)},i.set(o,p),o.addEventListener("dispose",k)}if(s.isInstancedMesh===!0&&s.morphTexture!==null)l.getUniforms().setValue(t,"morphTexture",s.morphTexture,n);else{let y=0;for(let x=0;x<c.length;x++)y+=c[x];const b=o.morphTargetsRelative?1:1-y;l.getUniforms().setValue(t,"morphTargetBaseInfluence",b),l.getUniforms().setValue(t,"morphTargetInfluences",c)}l.getUniforms().setValue(t,"morphTargetsTexture",p.texture,n),l.getUniforms().setValue(t,"morphTargetsTextureSize",p.size)}return{update:a}}function Lce(t,e,n,i){let r=new WeakMap;function a(l){const c=i.render.frame,d=l.geometry,f=e.get(l,d);if(r.get(f)!==c&&(e.update(f),r.set(f,c)),l.isInstancedMesh&&(l.hasEventListener("dispose",o)===!1&&l.addEventListener("dispose",o),r.get(l)!==c&&(n.update(l.instanceMatrix,t.ARRAY_BUFFER),l.instanceColor!==null&&n.update(l.instanceColor,t.ARRAY_BUFFER),r.set(l,c))),l.isSkinnedMesh){const p=l.skeleton;r.get(p)!==c&&(p.update(),r.set(p,c))}return f}function s(){r=new WeakMap}function o(l){const c=l.target;c.removeEventListener("dispose",o),n.remove(c.instanceMatrix),c.instanceColor!==null&&n.remove(c.instanceColor)}return{update:a,dispose:s}}const jG=new vo,ZF=new kG(1,1),HG=new wG,VG=new ese,GG=new OG,JF=[],QF=[],ez=new Float32Array(16),tz=new Float32Array(9),nz=new Float32Array(4);function Kp(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let a=JF[r];if(a===void 0&&(a=new Float32Array(r),JF[r]=a),e!==0){i.toArray(a,0);for(let s=1,o=0;s!==e;++s)o+=n,t[s].toArray(a,o)}return a}function er(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function tr(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function rS(t,e){let n=QF[e];n===void 0&&(n=new Int32Array(e),QF[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function kce(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function Ice(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y)&&(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(er(n,e))return;t.uniform2fv(this.addr,e),tr(n,e)}}function Uce(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z)&&(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(e.r!==void 0)(n[0]!==e.r||n[1]!==e.g||n[2]!==e.b)&&(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(er(n,e))return;t.uniform3fv(this.addr,e),tr(n,e)}}function Fce(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w)&&(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(er(n,e))return;t.uniform4fv(this.addr,e),tr(n,e)}}function zce(t,e){const n=this.cache,i=e.elements;if(i===void 0){if(er(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),tr(n,e)}else{if(er(n,i))return;nz.set(i),t.uniformMatrix2fv(this.addr,!1,nz),tr(n,i)}}function Bce(t,e){const n=this.cache,i=e.elements;if(i===void 0){if(er(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),tr(n,e)}else{if(er(n,i))return;tz.set(i),t.uniformMatrix3fv(this.addr,!1,tz),tr(n,i)}}function jce(t,e){const n=this.cache,i=e.elements;if(i===void 0){if(er(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),tr(n,e)}else{if(er(n,i))return;ez.set(i),t.uniformMatrix4fv(this.addr,!1,ez),tr(n,i)}}function Hce(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function Vce(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y)&&(t.uniform2i(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(er(n,e))return;t.uniform2iv(this.addr,e),tr(n,e)}}function Gce(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z)&&(t.uniform3i(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(er(n,e))return;t.uniform3iv(this.addr,e),tr(n,e)}}function $ce(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w)&&(t.uniform4i(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(er(n,e))return;t.uniform4iv(this.addr,e),tr(n,e)}}function Wce(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function qce(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y)&&(t.uniform2ui(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(er(n,e))return;t.uniform2uiv(this.addr,e),tr(n,e)}}function Xce(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z)&&(t.uniform3ui(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(er(n,e))return;t.uniform3uiv(this.addr,e),tr(n,e)}}function Yce(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w)&&(t.uniform4ui(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(er(n,e))return;t.uniform4uiv(this.addr,e),tr(n,e)}}function Kce(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r);let a;this.type===t.SAMPLER_2D_SHADOW?(ZF.compareFunction=vG,a=ZF):a=jG,n.setTexture2D(e||a,r)}function Zce(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture3D(e||VG,r)}function Jce(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTextureCube(e||GG,r)}function Qce(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture2DArray(e||HG,r)}function eue(t){switch(t){case 5126:return kce;case 35664:return Ice;case 35665:return Uce;case 35666:return Fce;case 35674:return zce;case 35675:return Bce;case 35676:return jce;case 5124:case 35670:return Hce;case 35667:case 35671:return Vce;case 35668:case 35672:return Gce;case 35669:case 35673:return $ce;case 5125:return Wce;case 36294:return qce;case 36295:return Xce;case 36296:return Yce;case 35678:case 36198:case 36298:case 36306:case 35682:return Kce;case 35679:case 36299:case 36307:return Zce;case 35680:case 36300:case 36308:case 36293:return Jce;case 36289:case 36303:case 36311:case 36292:return Qce}}function tue(t,e){t.uniform1fv(this.addr,e)}function nue(t,e){const n=Kp(e,this.size,2);t.uniform2fv(this.addr,n)}function iue(t,e){const n=Kp(e,this.size,3);t.uniform3fv(this.addr,n)}function rue(t,e){const n=Kp(e,this.size,4);t.uniform4fv(this.addr,n)}function aue(t,e){const n=Kp(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function sue(t,e){const n=Kp(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function oue(t,e){const n=Kp(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function lue(t,e){t.uniform1iv(this.addr,e)}function cue(t,e){t.uniform2iv(this.addr,e)}function uue(t,e){t.uniform3iv(this.addr,e)}function due(t,e){t.uniform4iv(this.addr,e)}function fue(t,e){t.uniform1uiv(this.addr,e)}function hue(t,e){t.uniform2uiv(this.addr,e)}function pue(t,e){t.uniform3uiv(this.addr,e)}function mue(t,e){t.uniform4uiv(this.addr,e)}function gue(t,e,n){const i=this.cache,r=e.length,a=rS(n,r);er(i,a)||(t.uniform1iv(this.addr,a),tr(i,a));for(let s=0;s!==r;++s)n.setTexture2D(e[s]||jG,a[s])}function vue(t,e,n){const i=this.cache,r=e.length,a=rS(n,r);er(i,a)||(t.uniform1iv(this.addr,a),tr(i,a));for(let s=0;s!==r;++s)n.setTexture3D(e[s]||VG,a[s])}function xue(t,e,n){const i=this.cache,r=e.length,a=rS(n,r);er(i,a)||(t.uniform1iv(this.addr,a),tr(i,a));for(let s=0;s!==r;++s)n.setTextureCube(e[s]||GG,a[s])}function yue(t,e,n){const i=this.cache,r=e.length,a=rS(n,r);er(i,a)||(t.uniform1iv(this.addr,a),tr(i,a));for(let s=0;s!==r;++s)n.setTexture2DArray(e[s]||HG,a[s])}function bue(t){switch(t){case 5126:return tue;case 35664:return nue;case 35665:return iue;case 35666:return rue;case 35674:return aue;case 35675:return sue;case 35676:return oue;case 5124:case 35670:return lue;case 35667:case 35671:return cue;case 35668:case 35672:return uue;case 35669:case 35673:return due;case 5125:return fue;case 36294:return hue;case 36295:return pue;case 36296:return mue;case 35678:case 36198:case 36298:case 36306:case 35682:return gue;case 35679:case 36299:case 36307:return vue;case 35680:case 36300:case 36308:case 36293:return xue;case 36289:case 36303:case 36311:case 36292:return yue}}let _ue=class{constructor(e,n,i){this.id=e,this.addr=i,this.cache=[],this.type=n.type,this.setValue=eue(n.type)}},Sue=class{constructor(e,n,i){this.id=e,this.addr=i,this.cache=[],this.type=n.type,this.size=n.size,this.setValue=bue(n.type)}},wue=class{constructor(e){this.id=e,this.seq=[],this.map={}}setValue(e,n,i){const r=this.seq;for(let a=0,s=r.length;a!==s;++a){const o=r[a];o.setValue(e,n[o.id],i)}}};const cA=/(\w+)(\])?(\[|\.)?/g;function iz(t,e){t.seq.push(e),t.map[e.id]=e}function Mue(t,e,n){const i=t.name,r=i.length;for(cA.lastIndex=0;;){const a=cA.exec(i),s=cA.lastIndex;let o=a[1];const l=a[2]==="]",c=a[3];if(l&&(o=o|0),c===void 0||c==="["&&s+2===r){iz(n,c===void 0?new _ue(o,t,e):new Sue(o,t,e));break}else{let f=n.map[o];f===void 0&&(f=new wue(o),iz(n,f)),n=f}}}let Ob=class{constructor(e,n){this.seq=[],this.map={};const i=e.getProgramParameter(n,e.ACTIVE_UNIFORMS);for(let r=0;r<i;++r){const a=e.getActiveUniform(n,r),s=e.getUniformLocation(n,a.name);Mue(a,s,this)}}setValue(e,n,i,r){const a=this.map[n];a!==void 0&&a.setValue(e,i,r)}setOptional(e,n,i){const r=n[i];r!==void 0&&this.setValue(e,i,r)}static upload(e,n,i,r){for(let a=0,s=n.length;a!==s;++a){const o=n[a],l=i[o.id];l.needsUpdate!==!1&&o.setValue(e,l.value,r)}}static seqWithValue(e,n){const i=[];for(let r=0,a=e.length;r!==a;++r){const s=e[r];s.id in n&&i.push(s)}return i}};function rz(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}const Eue=37297;let Aue=0;function Tue(t,e){const n=t.split(`
- `),i=[],r=Math.max(e-6,0),a=Math.min(e+6,n.length);for(let s=r;s<a;s++){const o=s+1;i.push(`${o===e?">":" "} ${o}: ${n[s]}`)}return i.join(`
- `)}const az=new tn;function Cue(t){xn._getMatrix(az,xn.workingColorSpace,t);const e=`mat3( ${az.elements.map(n=>n.toFixed(4))} )`;switch(xn.getTransfer(t)){case Qb:return[e,"LinearTransferOETF"];case On:return[e,"sRGBTransferOETF"];default:return jt("WebGLProgram: Unsupported color space: ",t),[e,"LinearTransferOETF"]}}function sz(t,e,n){const i=t.getShaderParameter(e,t.COMPILE_STATUS),a=(t.getShaderInfoLog(e)||"").trim();if(i&&a==="")return"";const s=/ERROR: 0:(\d+)/.exec(a);if(s){const o=parseInt(s[1]);return n.toUpperCase()+`
- `+a+`
- `+Tue(t.getShaderSource(e),o)}else return a}function Rue(t,e){const n=Cue(e);return[`vec4 ${t}( vec4 value ) {`,` return ${n[1]}( vec4( value.rgb * ${n[0]}, value.a ) );`,"}"].join(`
- `)}function Pue(t,e){let n;switch(e){case Tae:n="Linear";break;case Cae:n="Reinhard";break;case Rae:n="Cineon";break;case Pae:n="ACESFilmic";break;case Nae:n="AgX";break;case Oae:n="Neutral";break;case Dae:n="Custom";break;default:jt("WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}const my=new Ge;function Due(){xn.getLuminanceCoefficients(my);const t=my.x.toFixed(4),e=my.y.toFixed(4),n=my.z.toFixed(4);return["float luminance( const in vec3 rgb ) {",` const vec3 weights = vec3( ${t}, ${e}, ${n} );`," return dot( weights, rgb );","}"].join(`
- `)}function Nue(t){return[t.extensionClipCullDistance?"#extension GL_ANGLE_clip_cull_distance : require":"",t.extensionMultiDraw?"#extension GL_ANGLE_multi_draw : require":""].filter(Pg).join(`
- `)}function Oue(t){const e=[];for(const n in t){const i=t[n];i!==!1&&e.push("#define "+n+" "+i)}return e.join(`
- `)}function Lue(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r<i;r++){const a=t.getActiveAttrib(e,r),s=a.name;let o=1;a.type===t.FLOAT_MAT2&&(o=2),a.type===t.FLOAT_MAT3&&(o=3),a.type===t.FLOAT_MAT4&&(o=4),n[s]={type:a.type,location:t.getAttribLocation(e,s),locationSize:o}}return n}function Pg(t){return t!==""}function oz(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function lz(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const kue=/^[ \t]*#include +<([\w\d./]+)>/gm;function hR(t){return t.replace(kue,Uue)}const Iue=new Map;function Uue(t,e){let n=Kt[e];if(n===void 0){const i=Iue.get(e);if(i!==void 0)n=Kt[i],jt('WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return hR(n)}const Fue=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function cz(t){return t.replace(Fue,zue)}function zue(t,e,n,i){let r="";for(let a=parseInt(e);a<parseInt(n);a++)r+=i.replace(/\[\s*i\s*\]/g,"[ "+a+" ]").replace(/UNROLLED_LOOP_INDEX/g,a);return r}function uz(t){let e=`precision ${t.precision} float;
- precision ${t.precision} int;
- precision ${t.precision} sampler2D;
- precision ${t.precision} samplerCube;
- precision ${t.precision} sampler3D;
- precision ${t.precision} sampler2DArray;
- precision ${t.precision} sampler2DShadow;
- precision ${t.precision} samplerCubeShadow;
- precision ${t.precision} sampler2DArrayShadow;
- precision ${t.precision} isampler2D;
- precision ${t.precision} isampler3D;
- precision ${t.precision} isamplerCube;
- precision ${t.precision} isampler2DArray;
- precision ${t.precision} usampler2D;
- precision ${t.precision} usampler3D;
- precision ${t.precision} usamplerCube;
- precision ${t.precision} usampler2DArray;
- `;return t.precision==="highp"?e+=`
- #define HIGH_PRECISION`:t.precision==="mediump"?e+=`
- #define MEDIUM_PRECISION`:t.precision==="lowp"&&(e+=`
- #define LOW_PRECISION`),e}function Bue(t){let e="SHADOWMAP_TYPE_BASIC";return t.shadowMapType===oG?e="SHADOWMAP_TYPE_PCF":t.shadowMapType===sae?e="SHADOWMAP_TYPE_PCF_SOFT":t.shadowMapType===Cl&&(e="SHADOWMAP_TYPE_VSM"),e}function jue(t){let e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case xp:case yp:e="ENVMAP_TYPE_CUBE";break;case tS:e="ENVMAP_TYPE_CUBE_UV";break}return e}function Hue(t){let e="ENVMAP_MODE_REFLECTION";if(t.envMap)switch(t.envMapMode){case yp:e="ENVMAP_MODE_REFRACTION";break}return e}function Vue(t){let e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case RP:e="ENVMAP_BLENDING_MULTIPLY";break;case Eae:e="ENVMAP_BLENDING_MIX";break;case Aae:e="ENVMAP_BLENDING_ADD";break}return e}function Gue(t){const e=t.envMapCubeUVHeight;if(e===null)return null;const n=Math.log2(e)-2,i=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,n),112)),texelHeight:i,maxMip:n}}function $ue(t,e,n,i){const r=t.getContext(),a=n.defines;let s=n.vertexShader,o=n.fragmentShader;const l=Bue(n),c=jue(n),d=Hue(n),f=Vue(n),p=Gue(n),m=Nue(n),y=Oue(a),b=r.createProgram();let x,v,w=n.glslVersion?"#version "+n.glslVersion+`
- `:"";n.isRawShaderMaterial?(x=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y].filter(Pg).join(`
- `),x.length>0&&(x+=`
- `),v=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y].filter(Pg).join(`
- `),v.length>0&&(v+=`
- `)):(x=[uz(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y,n.extensionClipCullDistance?"#define USE_CLIP_DISTANCE":"",n.batching?"#define USE_BATCHING":"",n.batchingColor?"#define USE_BATCHING_COLOR":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.instancingMorph?"#define USE_INSTANCING_MORPH":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&n.flatShading===!1?"#define USE_MORPHNORMALS":"",n.morphColors?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",n.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","#ifdef USE_INSTANCING_MORPH"," uniform sampler2D morphTexture;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",`
- `].filter(Pg).join(`
- `),v=[uz(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.alphaToCoverage?"#define ALPHA_TO_COVERAGE":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+c:"",n.envMap?"#define "+d:"",n.envMap?"#define "+f:"",p?"#define CUBEUV_TEXEL_WIDTH "+p.texelWidth:"",p?"#define CUBEUV_TEXEL_HEIGHT "+p.texelHeight:"",p?"#define CUBEUV_MAX_MIP "+p.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.dispersion?"#define USE_DISPERSION":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor||n.batchingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.decodeVideoTextureEmissive?"#define DECODE_VIDEO_TEXTURE_EMISSIVE":"",n.logarithmicDepthBuffer?"#define USE_LOGARITHMIC_DEPTH_BUFFER":"",n.reversedDepthBuffer?"#define USE_REVERSED_DEPTH_BUFFER":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==yu?"#define TONE_MAPPING":"",n.toneMapping!==yu?Kt.tonemapping_pars_fragment:"",n.toneMapping!==yu?Pue("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Kt.colorspace_pars_fragment,Rue("linearToOutputTexel",n.outputColorSpace),Due(),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"",`
- `].filter(Pg).join(`
- `)),s=hR(s),s=oz(s,n),s=lz(s,n),o=hR(o),o=oz(o,n),o=lz(o,n),s=cz(s),o=cz(o),n.isRawShaderMaterial!==!0&&(w=`#version 300 es
- `,x=[m,"#define attribute in","#define varying out","#define texture2D texture"].join(`
- `)+`
- `+x,v=["#define varying in",n.glslVersion===vF?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===vF?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(`
- `)+`
- `+v);const M=w+x+s,A=w+v+o,T=rz(r,r.VERTEX_SHADER,M),D=rz(r,r.FRAGMENT_SHADER,A);r.attachShader(b,T),r.attachShader(b,D),n.index0AttributeName!==void 0?r.bindAttribLocation(b,0,n.index0AttributeName):n.morphTargets===!0&&r.bindAttribLocation(b,0,"position"),r.linkProgram(b);function C(B){if(t.debug.checkShaderErrors){const I=r.getProgramInfoLog(b)||"",W=r.getShaderInfoLog(T)||"",O=r.getShaderInfoLog(D)||"",$=I.trim(),q=W.trim(),G=O.trim();let Y=!0,Q=!0;if(r.getProgramParameter(b,r.LINK_STATUS)===!1)if(Y=!1,typeof t.debug.onShaderError=="function")t.debug.onShaderError(r,b,T,D);else{const se=sz(r,T,"vertex"),H=sz(r,D,"fragment");wi("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(b,r.VALIDATE_STATUS)+`
- Material Name: `+B.name+`
- Material Type: `+B.type+`
- Program Info Log: `+$+`
- `+se+`
- `+H)}else $!==""?jt("WebGLProgram: Program Info Log:",$):(q===""||G==="")&&(Q=!1);Q&&(B.diagnostics={runnable:Y,programLog:$,vertexShader:{log:q,prefix:x},fragmentShader:{log:G,prefix:v}})}r.deleteShader(T),r.deleteShader(D),U=new Ob(r,b),P=Lue(r,b)}let U;this.getUniforms=function(){return U===void 0&&C(this),U};let P;this.getAttributes=function(){return P===void 0&&C(this),P};let k=n.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return k===!1&&(k=r.getProgramParameter(b,Eue)),k},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(b),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=Aue++,this.cacheKey=e,this.usedTimes=1,this.program=b,this.vertexShader=T,this.fragmentShader=D,this}let Wue=0,que=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const n=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(n),a=this._getShaderStage(i),s=this._getShaderCacheForMaterial(e);return s.has(r)===!1&&(s.add(r),r.usedTimes++),s.has(a)===!1&&(s.add(a),a.usedTimes++),this}remove(e){const n=this.materialCache.get(e);for(const i of n)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const n=this.materialCache;let i=n.get(e);return i===void 0&&(i=new Set,n.set(e,i)),i}_getShaderStage(e){const n=this.shaderCache;let i=n.get(e);return i===void 0&&(i=new Xue(e),n.set(e,i)),i}},Xue=class{constructor(e){this.id=Wue++,this.code=e,this.usedTimes=0}};function Yue(t,e,n,i,r,a,s){const o=new EG,l=new que,c=new Set,d=[],f=r.logarithmicDepthBuffer,p=r.vertexTextures;let m=r.precision;const y={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function b(P){return c.add(P),P===0?"uv":`uv${P}`}function x(P,k,B,I,W){const O=I.fog,$=W.geometry,q=P.isMeshStandardMaterial?I.environment:null,G=(P.isMeshStandardMaterial?n:e).get(P.envMap||q),Y=G&&G.mapping===tS?G.image.height:null,Q=y[P.type];P.precision!==null&&(m=r.getMaxPrecision(P.precision),m!==P.precision&&jt("WebGLProgram.getParameters:",P.precision,"not supported, using",m,"instead."));const se=$.morphAttributes.position||$.morphAttributes.normal||$.morphAttributes.color,H=se!==void 0?se.length:0;let X=0;$.morphAttributes.position!==void 0&&(X=1),$.morphAttributes.normal!==void 0&&(X=2),$.morphAttributes.color!==void 0&&(X=3);let re,ce,ye,me;if(Q){const Ct=Po[Q];re=Ct.vertexShader,ce=Ct.fragmentShader}else re=P.vertexShader,ce=P.fragmentShader,l.update(P),ye=l.getVertexShaderID(P),me=l.getFragmentShaderID(P);const be=t.getRenderTarget(),Ne=t.state.buffers.depth.getReversed(),he=W.isInstancedMesh===!0,Ae=W.isBatchedMesh===!0,Be=!!P.map,le=!!P.matcap,ct=!!G,z=!!P.aoMap,V=!!P.lightMap,ne=!!P.bumpMap,J=!!P.normalMap,ee=!!P.displacementMap,ae=!!P.emissiveMap,ie=!!P.metalnessMap,we=!!P.roughnessMap,ve=P.anisotropy>0,F=P.clearcoat>0,L=P.dispersion>0,K=P.iridescence>0,pe=P.sheen>0,xe=P.transmission>0,fe=ve&&!!P.anisotropyMap,Ke=F&&!!P.clearcoatMap,ke=F&&!!P.clearcoatNormalMap,$e=F&&!!P.clearcoatRoughnessMap,rt=K&&!!P.iridescenceMap,Ue=K&&!!P.iridescenceThicknessMap,De=pe&&!!P.sheenColorMap,ut=pe&&!!P.sheenRoughnessMap,et=!!P.specularMap,Qe=!!P.specularColorMap,st=!!P.specularIntensityMap,ue=xe&&!!P.transmissionMap,tt=xe&&!!P.thicknessMap,de=!!P.gradientMap,Le=!!P.alphaMap,Ee=P.alphaTest>0,ge=!!P.alphaHash,je=!!P.extensions;let at=yu;P.toneMapped&&(be===null||be.isXRRenderTarget===!0)&&(at=t.toneMapping);const vt={shaderID:Q,shaderType:P.type,shaderName:P.name,vertexShader:re,fragmentShader:ce,defines:P.defines,customVertexShaderID:ye,customFragmentShaderID:me,isRawShaderMaterial:P.isRawShaderMaterial===!0,glslVersion:P.glslVersion,precision:m,batching:Ae,batchingColor:Ae&&W._colorsTexture!==null,instancing:he,instancingColor:he&&W.instanceColor!==null,instancingMorph:he&&W.morphTexture!==null,supportsVertexTextures:p,outputColorSpace:be===null?t.outputColorSpace:be.isXRRenderTarget===!0?be.texture.colorSpace:bp,alphaToCoverage:!!P.alphaToCoverage,map:Be,matcap:le,envMap:ct,envMapMode:ct&&G.mapping,envMapCubeUVHeight:Y,aoMap:z,lightMap:V,bumpMap:ne,normalMap:J,displacementMap:p&&ee,emissiveMap:ae,normalMapObjectSpace:J&&P.normalMapType===Uae,normalMapTangentSpace:J&&P.normalMapType===gG,metalnessMap:ie,roughnessMap:we,anisotropy:ve,anisotropyMap:fe,clearcoat:F,clearcoatMap:Ke,clearcoatNormalMap:ke,clearcoatRoughnessMap:$e,dispersion:L,iridescence:K,iridescenceMap:rt,iridescenceThicknessMap:Ue,sheen:pe,sheenColorMap:De,sheenRoughnessMap:ut,specularMap:et,specularColorMap:Qe,specularIntensityMap:st,transmission:xe,transmissionMap:ue,thicknessMap:tt,gradientMap:de,opaque:P.transparent===!1&&P.blending===ap&&P.alphaToCoverage===!1,alphaMap:Le,alphaTest:Ee,alphaHash:ge,combine:P.combine,mapUv:Be&&b(P.map.channel),aoMapUv:z&&b(P.aoMap.channel),lightMapUv:V&&b(P.lightMap.channel),bumpMapUv:ne&&b(P.bumpMap.channel),normalMapUv:J&&b(P.normalMap.channel),displacementMapUv:ee&&b(P.displacementMap.channel),emissiveMapUv:ae&&b(P.emissiveMap.channel),metalnessMapUv:ie&&b(P.metalnessMap.channel),roughnessMapUv:we&&b(P.roughnessMap.channel),anisotropyMapUv:fe&&b(P.anisotropyMap.channel),clearcoatMapUv:Ke&&b(P.clearcoatMap.channel),clearcoatNormalMapUv:ke&&b(P.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:$e&&b(P.clearcoatRoughnessMap.channel),iridescenceMapUv:rt&&b(P.iridescenceMap.channel),iridescenceThicknessMapUv:Ue&&b(P.iridescenceThicknessMap.channel),sheenColorMapUv:De&&b(P.sheenColorMap.channel),sheenRoughnessMapUv:ut&&b(P.sheenRoughnessMap.channel),specularMapUv:et&&b(P.specularMap.channel),specularColorMapUv:Qe&&b(P.specularColorMap.channel),specularIntensityMapUv:st&&b(P.specularIntensityMap.channel),transmissionMapUv:ue&&b(P.transmissionMap.channel),thicknessMapUv:tt&&b(P.thicknessMap.channel),alphaMapUv:Le&&b(P.alphaMap.channel),vertexTangents:!!$.attributes.tangent&&(J||ve),vertexColors:P.vertexColors,vertexAlphas:P.vertexColors===!0&&!!$.attributes.color&&$.attributes.color.itemSize===4,pointsUvs:W.isPoints===!0&&!!$.attributes.uv&&(Be||Le),fog:!!O,useFog:P.fog===!0,fogExp2:!!O&&O.isFogExp2,flatShading:P.flatShading===!0&&P.wireframe===!1,sizeAttenuation:P.sizeAttenuation===!0,logarithmicDepthBuffer:f,reversedDepthBuffer:Ne,skinning:W.isSkinnedMesh===!0,morphTargets:$.morphAttributes.position!==void 0,morphNormals:$.morphAttributes.normal!==void 0,morphColors:$.morphAttributes.color!==void 0,morphTargetsCount:H,morphTextureStride:X,numDirLights:k.directional.length,numPointLights:k.point.length,numSpotLights:k.spot.length,numSpotLightMaps:k.spotLightMap.length,numRectAreaLights:k.rectArea.length,numHemiLights:k.hemi.length,numDirLightShadows:k.directionalShadowMap.length,numPointLightShadows:k.pointShadowMap.length,numSpotLightShadows:k.spotShadowMap.length,numSpotLightShadowsWithMaps:k.numSpotLightShadowsWithMaps,numLightProbes:k.numLightProbes,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:P.dithering,shadowMapEnabled:t.shadowMap.enabled&&B.length>0,shadowMapType:t.shadowMap.type,toneMapping:at,decodeVideoTexture:Be&&P.map.isVideoTexture===!0&&xn.getTransfer(P.map.colorSpace)===On,decodeVideoTextureEmissive:ae&&P.emissiveMap.isVideoTexture===!0&&xn.getTransfer(P.emissiveMap.colorSpace)===On,premultipliedAlpha:P.premultipliedAlpha,doubleSided:P.side===Do,flipSided:P.side===Pa,useDepthPacking:P.depthPacking>=0,depthPacking:P.depthPacking||0,index0AttributeName:P.index0AttributeName,extensionClipCullDistance:je&&P.extensions.clipCullDistance===!0&&i.has("WEBGL_clip_cull_distance"),extensionMultiDraw:(je&&P.extensions.multiDraw===!0||Ae)&&i.has("WEBGL_multi_draw"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:P.customProgramCacheKey()};return vt.vertexUv1s=c.has(1),vt.vertexUv2s=c.has(2),vt.vertexUv3s=c.has(3),c.clear(),vt}function v(P){const k=[];if(P.shaderID?k.push(P.shaderID):(k.push(P.customVertexShaderID),k.push(P.customFragmentShaderID)),P.defines!==void 0)for(const B in P.defines)k.push(B),k.push(P.defines[B]);return P.isRawShaderMaterial===!1&&(w(k,P),M(k,P),k.push(t.outputColorSpace)),k.push(P.customProgramCacheKey),k.join()}function w(P,k){P.push(k.precision),P.push(k.outputColorSpace),P.push(k.envMapMode),P.push(k.envMapCubeUVHeight),P.push(k.mapUv),P.push(k.alphaMapUv),P.push(k.lightMapUv),P.push(k.aoMapUv),P.push(k.bumpMapUv),P.push(k.normalMapUv),P.push(k.displacementMapUv),P.push(k.emissiveMapUv),P.push(k.metalnessMapUv),P.push(k.roughnessMapUv),P.push(k.anisotropyMapUv),P.push(k.clearcoatMapUv),P.push(k.clearcoatNormalMapUv),P.push(k.clearcoatRoughnessMapUv),P.push(k.iridescenceMapUv),P.push(k.iridescenceThicknessMapUv),P.push(k.sheenColorMapUv),P.push(k.sheenRoughnessMapUv),P.push(k.specularMapUv),P.push(k.specularColorMapUv),P.push(k.specularIntensityMapUv),P.push(k.transmissionMapUv),P.push(k.thicknessMapUv),P.push(k.combine),P.push(k.fogExp2),P.push(k.sizeAttenuation),P.push(k.morphTargetsCount),P.push(k.morphAttributeCount),P.push(k.numDirLights),P.push(k.numPointLights),P.push(k.numSpotLights),P.push(k.numSpotLightMaps),P.push(k.numHemiLights),P.push(k.numRectAreaLights),P.push(k.numDirLightShadows),P.push(k.numPointLightShadows),P.push(k.numSpotLightShadows),P.push(k.numSpotLightShadowsWithMaps),P.push(k.numLightProbes),P.push(k.shadowMapType),P.push(k.toneMapping),P.push(k.numClippingPlanes),P.push(k.numClipIntersection),P.push(k.depthPacking)}function M(P,k){o.disableAll(),k.supportsVertexTextures&&o.enable(0),k.instancing&&o.enable(1),k.instancingColor&&o.enable(2),k.instancingMorph&&o.enable(3),k.matcap&&o.enable(4),k.envMap&&o.enable(5),k.normalMapObjectSpace&&o.enable(6),k.normalMapTangentSpace&&o.enable(7),k.clearcoat&&o.enable(8),k.iridescence&&o.enable(9),k.alphaTest&&o.enable(10),k.vertexColors&&o.enable(11),k.vertexAlphas&&o.enable(12),k.vertexUv1s&&o.enable(13),k.vertexUv2s&&o.enable(14),k.vertexUv3s&&o.enable(15),k.vertexTangents&&o.enable(16),k.anisotropy&&o.enable(17),k.alphaHash&&o.enable(18),k.batching&&o.enable(19),k.dispersion&&o.enable(20),k.batchingColor&&o.enable(21),k.gradientMap&&o.enable(22),P.push(o.mask),o.disableAll(),k.fog&&o.enable(0),k.useFog&&o.enable(1),k.flatShading&&o.enable(2),k.logarithmicDepthBuffer&&o.enable(3),k.reversedDepthBuffer&&o.enable(4),k.skinning&&o.enable(5),k.morphTargets&&o.enable(6),k.morphNormals&&o.enable(7),k.morphColors&&o.enable(8),k.premultipliedAlpha&&o.enable(9),k.shadowMapEnabled&&o.enable(10),k.doubleSided&&o.enable(11),k.flipSided&&o.enable(12),k.useDepthPacking&&o.enable(13),k.dithering&&o.enable(14),k.transmission&&o.enable(15),k.sheen&&o.enable(16),k.opaque&&o.enable(17),k.pointsUvs&&o.enable(18),k.decodeVideoTexture&&o.enable(19),k.decodeVideoTextureEmissive&&o.enable(20),k.alphaToCoverage&&o.enable(21),P.push(o.mask)}function A(P){const k=y[P.type];let B;if(k){const I=Po[k];B=hse.clone(I.uniforms)}else B=P.uniforms;return B}function T(P,k){let B;for(let I=0,W=d.length;I<W;I++){const O=d[I];if(O.cacheKey===k){B=O,++B.usedTimes;break}}return B===void 0&&(B=new $ue(t,k,P,a),d.push(B)),B}function D(P){if(--P.usedTimes===0){const k=d.indexOf(P);d[k]=d[d.length-1],d.pop(),P.destroy()}}function C(P){l.remove(P)}function U(){l.dispose()}return{getParameters:x,getProgramCacheKey:v,getUniforms:A,acquireProgram:T,releaseProgram:D,releaseShaderCache:C,programs:d,dispose:U}}function Kue(){let t=new WeakMap;function e(s){return t.has(s)}function n(s){let o=t.get(s);return o===void 0&&(o={},t.set(s,o)),o}function i(s){t.delete(s)}function r(s,o,l){t.get(s)[o]=l}function a(){t=new WeakMap}return{has:e,get:n,remove:i,update:r,dispose:a}}function Zue(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function dz(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function fz(){const t=[];let e=0;const n=[],i=[],r=[];function a(){e=0,n.length=0,i.length=0,r.length=0}function s(f,p,m,y,b,x){let v=t[e];return v===void 0?(v={id:f.id,object:f,geometry:p,material:m,groupOrder:y,renderOrder:f.renderOrder,z:b,group:x},t[e]=v):(v.id=f.id,v.object=f,v.geometry=p,v.material=m,v.groupOrder=y,v.renderOrder=f.renderOrder,v.z=b,v.group=x),e++,v}function o(f,p,m,y,b,x){const v=s(f,p,m,y,b,x);m.transmission>0?i.push(v):m.transparent===!0?r.push(v):n.push(v)}function l(f,p,m,y,b,x){const v=s(f,p,m,y,b,x);m.transmission>0?i.unshift(v):m.transparent===!0?r.unshift(v):n.unshift(v)}function c(f,p){n.length>1&&n.sort(f||Zue),i.length>1&&i.sort(p||dz),r.length>1&&r.sort(p||dz)}function d(){for(let f=e,p=t.length;f<p;f++){const m=t[f];if(m.id===null)break;m.id=null,m.object=null,m.geometry=null,m.material=null,m.group=null}}return{opaque:n,transmissive:i,transparent:r,init:a,push:o,unshift:l,finish:d,sort:c}}function Jue(){let t=new WeakMap;function e(i,r){const a=t.get(i);let s;return a===void 0?(s=new fz,t.set(i,[s])):r>=a.length?(s=new fz,a.push(s)):s=a[r],s}function n(){t=new WeakMap}return{get:e,dispose:n}}function Que(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new Ge,color:new dn};break;case"SpotLight":n={position:new Ge,direction:new Ge,color:new dn,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Ge,color:new dn,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Ge,skyColor:new dn,groundColor:new dn};break;case"RectAreaLight":n={color:new dn,position:new Ge,halfWidth:new Ge,halfHeight:new Ge};break}return t[e.id]=n,n}}}function ede(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Jt};break;case"SpotLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Jt};break;case"PointLight":n={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Jt,shadowCameraNear:1,shadowCameraFar:1e3};break}return t[e.id]=n,n}}}let tde=0;function nde(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function ide(t){const e=new Que,n=ede(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let c=0;c<9;c++)i.probe.push(new Ge);const r=new Ge,a=new Bi,s=new Bi;function o(c){let d=0,f=0,p=0;for(let P=0;P<9;P++)i.probe[P].set(0,0,0);let m=0,y=0,b=0,x=0,v=0,w=0,M=0,A=0,T=0,D=0,C=0;c.sort(nde);for(let P=0,k=c.length;P<k;P++){const B=c[P],I=B.color,W=B.intensity,O=B.distance,$=B.shadow&&B.shadow.map?B.shadow.map.texture:null;if(B.isAmbientLight)d+=I.r*W,f+=I.g*W,p+=I.b*W;else if(B.isLightProbe){for(let q=0;q<9;q++)i.probe[q].addScaledVector(B.sh.coefficients[q],W);C++}else if(B.isDirectionalLight){const q=e.get(B);if(q.color.copy(B.color).multiplyScalar(B.intensity),B.castShadow){const G=B.shadow,Y=n.get(B);Y.shadowIntensity=G.intensity,Y.shadowBias=G.bias,Y.shadowNormalBias=G.normalBias,Y.shadowRadius=G.radius,Y.shadowMapSize=G.mapSize,i.directionalShadow[m]=Y,i.directionalShadowMap[m]=$,i.directionalShadowMatrix[m]=B.shadow.matrix,w++}i.directional[m]=q,m++}else if(B.isSpotLight){const q=e.get(B);q.position.setFromMatrixPosition(B.matrixWorld),q.color.copy(I).multiplyScalar(W),q.distance=O,q.coneCos=Math.cos(B.angle),q.penumbraCos=Math.cos(B.angle*(1-B.penumbra)),q.decay=B.decay,i.spot[b]=q;const G=B.shadow;if(B.map&&(i.spotLightMap[T]=B.map,T++,G.updateMatrices(B),B.castShadow&&D++),i.spotLightMatrix[b]=G.matrix,B.castShadow){const Y=n.get(B);Y.shadowIntensity=G.intensity,Y.shadowBias=G.bias,Y.shadowNormalBias=G.normalBias,Y.shadowRadius=G.radius,Y.shadowMapSize=G.mapSize,i.spotShadow[b]=Y,i.spotShadowMap[b]=$,A++}b++}else if(B.isRectAreaLight){const q=e.get(B);q.color.copy(I).multiplyScalar(W),q.halfWidth.set(B.width*.5,0,0),q.halfHeight.set(0,B.height*.5,0),i.rectArea[x]=q,x++}else if(B.isPointLight){const q=e.get(B);if(q.color.copy(B.color).multiplyScalar(B.intensity),q.distance=B.distance,q.decay=B.decay,B.castShadow){const G=B.shadow,Y=n.get(B);Y.shadowIntensity=G.intensity,Y.shadowBias=G.bias,Y.shadowNormalBias=G.normalBias,Y.shadowRadius=G.radius,Y.shadowMapSize=G.mapSize,Y.shadowCameraNear=G.camera.near,Y.shadowCameraFar=G.camera.far,i.pointShadow[y]=Y,i.pointShadowMap[y]=$,i.pointShadowMatrix[y]=B.shadow.matrix,M++}i.point[y]=q,y++}else if(B.isHemisphereLight){const q=e.get(B);q.skyColor.copy(B.color).multiplyScalar(W),q.groundColor.copy(B.groundColor).multiplyScalar(W),i.hemi[v]=q,v++}}x>0&&(t.has("OES_texture_float_linear")===!0?(i.rectAreaLTC1=yt.LTC_FLOAT_1,i.rectAreaLTC2=yt.LTC_FLOAT_2):(i.rectAreaLTC1=yt.LTC_HALF_1,i.rectAreaLTC2=yt.LTC_HALF_2)),i.ambient[0]=d,i.ambient[1]=f,i.ambient[2]=p;const U=i.hash;(U.directionalLength!==m||U.pointLength!==y||U.spotLength!==b||U.rectAreaLength!==x||U.hemiLength!==v||U.numDirectionalShadows!==w||U.numPointShadows!==M||U.numSpotShadows!==A||U.numSpotMaps!==T||U.numLightProbes!==C)&&(i.directional.length=m,i.spot.length=b,i.rectArea.length=x,i.point.length=y,i.hemi.length=v,i.directionalShadow.length=w,i.directionalShadowMap.length=w,i.pointShadow.length=M,i.pointShadowMap.length=M,i.spotShadow.length=A,i.spotShadowMap.length=A,i.directionalShadowMatrix.length=w,i.pointShadowMatrix.length=M,i.spotLightMatrix.length=A+T-D,i.spotLightMap.length=T,i.numSpotLightShadowsWithMaps=D,i.numLightProbes=C,U.directionalLength=m,U.pointLength=y,U.spotLength=b,U.rectAreaLength=x,U.hemiLength=v,U.numDirectionalShadows=w,U.numPointShadows=M,U.numSpotShadows=A,U.numSpotMaps=T,U.numLightProbes=C,i.version=tde++)}function l(c,d){let f=0,p=0,m=0,y=0,b=0;const x=d.matrixWorldInverse;for(let v=0,w=c.length;v<w;v++){const M=c[v];if(M.isDirectionalLight){const A=i.directional[f];A.direction.setFromMatrixPosition(M.matrixWorld),r.setFromMatrixPosition(M.target.matrixWorld),A.direction.sub(r),A.direction.transformDirection(x),f++}else if(M.isSpotLight){const A=i.spot[m];A.position.setFromMatrixPosition(M.matrixWorld),A.position.applyMatrix4(x),A.direction.setFromMatrixPosition(M.matrixWorld),r.setFromMatrixPosition(M.target.matrixWorld),A.direction.sub(r),A.direction.transformDirection(x),m++}else if(M.isRectAreaLight){const A=i.rectArea[y];A.position.setFromMatrixPosition(M.matrixWorld),A.position.applyMatrix4(x),s.identity(),a.copy(M.matrixWorld),a.premultiply(x),s.extractRotation(a),A.halfWidth.set(M.width*.5,0,0),A.halfHeight.set(0,M.height*.5,0),A.halfWidth.applyMatrix4(s),A.halfHeight.applyMatrix4(s),y++}else if(M.isPointLight){const A=i.point[p];A.position.setFromMatrixPosition(M.matrixWorld),A.position.applyMatrix4(x),p++}else if(M.isHemisphereLight){const A=i.hemi[b];A.direction.setFromMatrixPosition(M.matrixWorld),A.direction.transformDirection(x),b++}}}return{setup:o,setupView:l,state:i}}function hz(t){const e=new ide(t),n=[],i=[];function r(d){c.camera=d,n.length=0,i.length=0}function a(d){n.push(d)}function s(d){i.push(d)}function o(){e.setup(n)}function l(d){e.setupView(n,d)}const c={lightsArray:n,shadowsArray:i,camera:null,lights:e,transmissionRenderTarget:{}};return{init:r,state:c,setupLights:o,setupLightsView:l,pushLight:a,pushShadow:s}}function rde(t){let e=new WeakMap;function n(r,a=0){const s=e.get(r);let o;return s===void 0?(o=new hz(t),e.set(r,[o])):a>=s.length?(o=new hz(t),s.push(o)):o=s[a],o}function i(){e=new WeakMap}return{get:n,dispose:i}}const ade=`void main() {
- gl_Position = vec4( position, 1.0 );
- }`,sde=`uniform sampler2D shadow_pass;
- uniform vec2 resolution;
- uniform float radius;
- #include <packing>
- void main() {
- const float samples = float( VSM_SAMPLES );
- float mean = 0.0;
- float squared_mean = 0.0;
- float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );
- float uvStart = samples <= 1.0 ? 0.0 : - 1.0;
- for ( float i = 0.0; i < samples; i ++ ) {
- float uvOffset = uvStart + i * uvStride;
- #ifdef HORIZONTAL_PASS
- vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );
- mean += distribution.x;
- squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;
- #else
- float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );
- mean += depth;
- squared_mean += depth * depth;
- #endif
- }
- mean = mean / samples;
- squared_mean = squared_mean / samples;
- float std_dev = sqrt( squared_mean - mean * mean );
- gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );
- }`;function ode(t,e,n){let i=new jP;const r=new Jt,a=new Jt,s=new Li,o=new Tse({depthPacking:Iae}),l=new Cse,c={},d=n.maxTextureSize,f={[Cu]:Pa,[Pa]:Cu,[Do]:Do},p=new Jl({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Jt},radius:{value:4}},vertexShader:ade,fragmentShader:sde}),m=p.clone();m.defines.HORIZONTAL_PASS=1;const y=new Yo;y.setAttribute("position",new Is(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const b=new Bo(y,p),x=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=oG;let v=this.type;this.render=function(D,C,U){if(x.enabled===!1||x.autoUpdate===!1&&x.needsUpdate===!1||D.length===0)return;const P=t.getRenderTarget(),k=t.getActiveCubeFace(),B=t.getActiveMipmapLevel(),I=t.state;I.setBlending(Gl),I.buffers.depth.getReversed()===!0?I.buffers.color.setClear(0,0,0,0):I.buffers.color.setClear(1,1,1,1),I.buffers.depth.setTest(!0),I.setScissorTest(!1);const W=v!==Cl&&this.type===Cl,O=v===Cl&&this.type!==Cl;for(let $=0,q=D.length;$<q;$++){const G=D[$],Y=G.shadow;if(Y===void 0){jt("WebGLShadowMap:",G,"has no shadow.");continue}if(Y.autoUpdate===!1&&Y.needsUpdate===!1)continue;r.copy(Y.mapSize);const Q=Y.getFrameExtents();if(r.multiply(Q),a.copy(Y.mapSize),(r.x>d||r.y>d)&&(r.x>d&&(a.x=Math.floor(d/Q.x),r.x=a.x*Q.x,Y.mapSize.x=a.x),r.y>d&&(a.y=Math.floor(d/Q.y),r.y=a.y*Q.y,Y.mapSize.y=a.y)),Y.map===null||W===!0||O===!0){const H=this.type!==Cl?{minFilter:ns,magFilter:ns}:{};Y.map!==null&&Y.map.dispose(),Y.map=new of(r.x,r.y,H),Y.map.texture.name=G.name+".shadowMap",Y.camera.updateProjectionMatrix()}t.setRenderTarget(Y.map),t.clear();const se=Y.getViewportCount();for(let H=0;H<se;H++){const X=Y.getViewport(H);s.set(a.x*X.x,a.y*X.y,a.x*X.z,a.y*X.w),I.viewport(s),Y.updateMatrices(G,H),i=Y.getFrustum(),A(C,U,Y.camera,G,this.type)}Y.isPointLightShadow!==!0&&this.type===Cl&&w(Y,U),Y.needsUpdate=!1}v=this.type,x.needsUpdate=!1,t.setRenderTarget(P,k,B)};function w(D,C){const U=e.update(b);p.defines.VSM_SAMPLES!==D.blurSamples&&(p.defines.VSM_SAMPLES=D.blurSamples,m.defines.VSM_SAMPLES=D.blurSamples,p.needsUpdate=!0,m.needsUpdate=!0),D.mapPass===null&&(D.mapPass=new of(r.x,r.y)),p.uniforms.shadow_pass.value=D.map.texture,p.uniforms.resolution.value=D.mapSize,p.uniforms.radius.value=D.radius,t.setRenderTarget(D.mapPass),t.clear(),t.renderBufferDirect(C,null,U,p,b,null),m.uniforms.shadow_pass.value=D.mapPass.texture,m.uniforms.resolution.value=D.mapSize,m.uniforms.radius.value=D.radius,t.setRenderTarget(D.map),t.clear(),t.renderBufferDirect(C,null,U,m,b,null)}function M(D,C,U,P){let k=null;const B=U.isPointLight===!0?D.customDistanceMaterial:D.customDepthMaterial;if(B!==void 0)k=B;else if(k=U.isPointLight===!0?l:o,t.localClippingEnabled&&C.clipShadows===!0&&Array.isArray(C.clippingPlanes)&&C.clippingPlanes.length!==0||C.displacementMap&&C.displacementScale!==0||C.alphaMap&&C.alphaTest>0||C.map&&C.alphaTest>0||C.alphaToCoverage===!0){const I=k.uuid,W=C.uuid;let O=c[I];O===void 0&&(O={},c[I]=O);let $=O[W];$===void 0&&($=k.clone(),O[W]=$,C.addEventListener("dispose",T)),k=$}if(k.visible=C.visible,k.wireframe=C.wireframe,P===Cl?k.side=C.shadowSide!==null?C.shadowSide:C.side:k.side=C.shadowSide!==null?C.shadowSide:f[C.side],k.alphaMap=C.alphaMap,k.alphaTest=C.alphaToCoverage===!0?.5:C.alphaTest,k.map=C.map,k.clipShadows=C.clipShadows,k.clippingPlanes=C.clippingPlanes,k.clipIntersection=C.clipIntersection,k.displacementMap=C.displacementMap,k.displacementScale=C.displacementScale,k.displacementBias=C.displacementBias,k.wireframeLinewidth=C.wireframeLinewidth,k.linewidth=C.linewidth,U.isPointLight===!0&&k.isMeshDistanceMaterial===!0){const I=t.properties.get(k);I.light=U}return k}function A(D,C,U,P,k){if(D.visible===!1)return;if(D.layers.test(C.layers)&&(D.isMesh||D.isLine||D.isPoints)&&(D.castShadow||D.receiveShadow&&k===Cl)&&(!D.frustumCulled||i.intersectsObject(D))){D.modelViewMatrix.multiplyMatrices(U.matrixWorldInverse,D.matrixWorld);const W=e.update(D),O=D.material;if(Array.isArray(O)){const $=W.groups;for(let q=0,G=$.length;q<G;q++){const Y=$[q],Q=O[Y.materialIndex];if(Q&&Q.visible){const se=M(D,Q,P,k);D.onBeforeShadow(t,D,C,U,W,se,Y),t.renderBufferDirect(U,null,W,se,D,Y),D.onAfterShadow(t,D,C,U,W,se,Y)}}}else if(O.visible){const $=M(D,O,P,k);D.onBeforeShadow(t,D,C,U,W,$,null),t.renderBufferDirect(U,null,W,$,D,null),D.onAfterShadow(t,D,C,U,W,$,null)}}const I=D.children;for(let W=0,O=I.length;W<O;W++)A(I[W],C,U,P,k)}function T(D){D.target.removeEventListener("dispose",T);for(const U in c){const P=c[U],k=D.target.uuid;k in P&&(P[k].dispose(),delete P[k])}}}const lde={[A2]:T2,[C2]:D2,[R2]:N2,[vp]:P2,[T2]:A2,[D2]:C2,[N2]:R2,[P2]:vp};function cde(t,e){function n(){let ue=!1;const tt=new Li;let de=null;const Le=new Li(0,0,0,0);return{setMask:function(Ee){de!==Ee&&!ue&&(t.colorMask(Ee,Ee,Ee,Ee),de=Ee)},setLocked:function(Ee){ue=Ee},setClear:function(Ee,ge,je,at,vt){vt===!0&&(Ee*=at,ge*=at,je*=at),tt.set(Ee,ge,je,at),Le.equals(tt)===!1&&(t.clearColor(Ee,ge,je,at),Le.copy(tt))},reset:function(){ue=!1,de=null,Le.set(-1,0,0,0)}}}function i(){let ue=!1,tt=!1,de=null,Le=null,Ee=null;return{setReversed:function(ge){if(tt!==ge){const je=e.get("EXT_clip_control");ge?je.clipControlEXT(je.LOWER_LEFT_EXT,je.ZERO_TO_ONE_EXT):je.clipControlEXT(je.LOWER_LEFT_EXT,je.NEGATIVE_ONE_TO_ONE_EXT),tt=ge;const at=Ee;Ee=null,this.setClear(at)}},getReversed:function(){return tt},setTest:function(ge){ge?be(t.DEPTH_TEST):Ne(t.DEPTH_TEST)},setMask:function(ge){de!==ge&&!ue&&(t.depthMask(ge),de=ge)},setFunc:function(ge){if(tt&&(ge=lde[ge]),Le!==ge){switch(ge){case A2:t.depthFunc(t.NEVER);break;case T2:t.depthFunc(t.ALWAYS);break;case C2:t.depthFunc(t.LESS);break;case vp:t.depthFunc(t.LEQUAL);break;case R2:t.depthFunc(t.EQUAL);break;case P2:t.depthFunc(t.GEQUAL);break;case D2:t.depthFunc(t.GREATER);break;case N2:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}Le=ge}},setLocked:function(ge){ue=ge},setClear:function(ge){Ee!==ge&&(tt&&(ge=1-ge),t.clearDepth(ge),Ee=ge)},reset:function(){ue=!1,de=null,Le=null,Ee=null,tt=!1}}}function r(){let ue=!1,tt=null,de=null,Le=null,Ee=null,ge=null,je=null,at=null,vt=null;return{setTest:function(Ct){ue||(Ct?be(t.STENCIL_TEST):Ne(t.STENCIL_TEST))},setMask:function(Ct){tt!==Ct&&!ue&&(t.stencilMask(Ct),tt=Ct)},setFunc:function(Ct,en,Dt){(de!==Ct||Le!==en||Ee!==Dt)&&(t.stencilFunc(Ct,en,Dt),de=Ct,Le=en,Ee=Dt)},setOp:function(Ct,en,Dt){(ge!==Ct||je!==en||at!==Dt)&&(t.stencilOp(Ct,en,Dt),ge=Ct,je=en,at=Dt)},setLocked:function(Ct){ue=Ct},setClear:function(Ct){vt!==Ct&&(t.clearStencil(Ct),vt=Ct)},reset:function(){ue=!1,tt=null,de=null,Le=null,Ee=null,ge=null,je=null,at=null,vt=null}}}const a=new n,s=new i,o=new r,l=new WeakMap,c=new WeakMap;let d={},f={},p=new WeakMap,m=[],y=null,b=!1,x=null,v=null,w=null,M=null,A=null,T=null,D=null,C=new dn(0,0,0),U=0,P=!1,k=null,B=null,I=null,W=null,O=null;const $=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let q=!1,G=0;const Y=t.getParameter(t.VERSION);Y.indexOf("WebGL")!==-1?(G=parseFloat(/^WebGL (\d)/.exec(Y)[1]),q=G>=1):Y.indexOf("OpenGL ES")!==-1&&(G=parseFloat(/^OpenGL ES (\d)/.exec(Y)[1]),q=G>=2);let Q=null,se={};const H=t.getParameter(t.SCISSOR_BOX),X=t.getParameter(t.VIEWPORT),re=new Li().fromArray(H),ce=new Li().fromArray(X);function ye(ue,tt,de,Le){const Ee=new Uint8Array(4),ge=t.createTexture();t.bindTexture(ue,ge),t.texParameteri(ue,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(ue,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let je=0;je<de;je++)ue===t.TEXTURE_3D||ue===t.TEXTURE_2D_ARRAY?t.texImage3D(tt,0,t.RGBA,1,1,Le,0,t.RGBA,t.UNSIGNED_BYTE,Ee):t.texImage2D(tt+je,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,Ee);return ge}const me={};me[t.TEXTURE_2D]=ye(t.TEXTURE_2D,t.TEXTURE_2D,1),me[t.TEXTURE_CUBE_MAP]=ye(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),me[t.TEXTURE_2D_ARRAY]=ye(t.TEXTURE_2D_ARRAY,t.TEXTURE_2D_ARRAY,1,1),me[t.TEXTURE_3D]=ye(t.TEXTURE_3D,t.TEXTURE_3D,1,1),a.setClear(0,0,0,1),s.setClear(1),o.setClear(0),be(t.DEPTH_TEST),s.setFunc(vp),ne(!1),J(dF),be(t.CULL_FACE),z(Gl);function be(ue){d[ue]!==!0&&(t.enable(ue),d[ue]=!0)}function Ne(ue){d[ue]!==!1&&(t.disable(ue),d[ue]=!1)}function he(ue,tt){return f[ue]!==tt?(t.bindFramebuffer(ue,tt),f[ue]=tt,ue===t.DRAW_FRAMEBUFFER&&(f[t.FRAMEBUFFER]=tt),ue===t.FRAMEBUFFER&&(f[t.DRAW_FRAMEBUFFER]=tt),!0):!1}function Ae(ue,tt){let de=m,Le=!1;if(ue){de=p.get(tt),de===void 0&&(de=[],p.set(tt,de));const Ee=ue.textures;if(de.length!==Ee.length||de[0]!==t.COLOR_ATTACHMENT0){for(let ge=0,je=Ee.length;ge<je;ge++)de[ge]=t.COLOR_ATTACHMENT0+ge;de.length=Ee.length,Le=!0}}else de[0]!==t.BACK&&(de[0]=t.BACK,Le=!0);Le&&t.drawBuffers(de)}function Be(ue){return y!==ue?(t.useProgram(ue),y=ue,!0):!1}const le={[Md]:t.FUNC_ADD,[lae]:t.FUNC_SUBTRACT,[cae]:t.FUNC_REVERSE_SUBTRACT};le[uae]=t.MIN,le[dae]=t.MAX;const ct={[fae]:t.ZERO,[hae]:t.ONE,[pae]:t.SRC_COLOR,[M2]:t.SRC_ALPHA,[bae]:t.SRC_ALPHA_SATURATE,[xae]:t.DST_COLOR,[gae]:t.DST_ALPHA,[mae]:t.ONE_MINUS_SRC_COLOR,[E2]:t.ONE_MINUS_SRC_ALPHA,[yae]:t.ONE_MINUS_DST_COLOR,[vae]:t.ONE_MINUS_DST_ALPHA,[_ae]:t.CONSTANT_COLOR,[Sae]:t.ONE_MINUS_CONSTANT_COLOR,[wae]:t.CONSTANT_ALPHA,[Mae]:t.ONE_MINUS_CONSTANT_ALPHA};function z(ue,tt,de,Le,Ee,ge,je,at,vt,Ct){if(ue===Gl){b===!0&&(Ne(t.BLEND),b=!1);return}if(b===!1&&(be(t.BLEND),b=!0),ue!==oae){if(ue!==x||Ct!==P){if((v!==Md||A!==Md)&&(t.blendEquation(t.FUNC_ADD),v=Md,A=Md),Ct)switch(ue){case ap:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case fF:t.blendFunc(t.ONE,t.ONE);break;case hF:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case pF:t.blendFuncSeparate(t.DST_COLOR,t.ONE_MINUS_SRC_ALPHA,t.ZERO,t.ONE);break;default:wi("WebGLState: Invalid blending: ",ue);break}else switch(ue){case ap:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case fF:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE,t.ONE,t.ONE);break;case hF:wi("WebGLState: SubtractiveBlending requires material.premultipliedAlpha = true");break;case pF:wi("WebGLState: MultiplyBlending requires material.premultipliedAlpha = true");break;default:wi("WebGLState: Invalid blending: ",ue);break}w=null,M=null,T=null,D=null,C.set(0,0,0),U=0,x=ue,P=Ct}return}Ee=Ee||tt,ge=ge||de,je=je||Le,(tt!==v||Ee!==A)&&(t.blendEquationSeparate(le[tt],le[Ee]),v=tt,A=Ee),(de!==w||Le!==M||ge!==T||je!==D)&&(t.blendFuncSeparate(ct[de],ct[Le],ct[ge],ct[je]),w=de,M=Le,T=ge,D=je),(at.equals(C)===!1||vt!==U)&&(t.blendColor(at.r,at.g,at.b,vt),C.copy(at),U=vt),x=ue,P=!1}function V(ue,tt){ue.side===Do?Ne(t.CULL_FACE):be(t.CULL_FACE);let de=ue.side===Pa;tt&&(de=!de),ne(de),ue.blending===ap&&ue.transparent===!1?z(Gl):z(ue.blending,ue.blendEquation,ue.blendSrc,ue.blendDst,ue.blendEquationAlpha,ue.blendSrcAlpha,ue.blendDstAlpha,ue.blendColor,ue.blendAlpha,ue.premultipliedAlpha),s.setFunc(ue.depthFunc),s.setTest(ue.depthTest),s.setMask(ue.depthWrite),a.setMask(ue.colorWrite);const Le=ue.stencilWrite;o.setTest(Le),Le&&(o.setMask(ue.stencilWriteMask),o.setFunc(ue.stencilFunc,ue.stencilRef,ue.stencilFuncMask),o.setOp(ue.stencilFail,ue.stencilZFail,ue.stencilZPass)),ae(ue.polygonOffset,ue.polygonOffsetFactor,ue.polygonOffsetUnits),ue.alphaToCoverage===!0?be(t.SAMPLE_ALPHA_TO_COVERAGE):Ne(t.SAMPLE_ALPHA_TO_COVERAGE)}function ne(ue){k!==ue&&(ue?t.frontFace(t.CW):t.frontFace(t.CCW),k=ue)}function J(ue){ue!==rae?(be(t.CULL_FACE),ue!==B&&(ue===dF?t.cullFace(t.BACK):ue===aae?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))):Ne(t.CULL_FACE),B=ue}function ee(ue){ue!==I&&(q&&t.lineWidth(ue),I=ue)}function ae(ue,tt,de){ue?(be(t.POLYGON_OFFSET_FILL),(W!==tt||O!==de)&&(t.polygonOffset(tt,de),W=tt,O=de)):Ne(t.POLYGON_OFFSET_FILL)}function ie(ue){ue?be(t.SCISSOR_TEST):Ne(t.SCISSOR_TEST)}function we(ue){ue===void 0&&(ue=t.TEXTURE0+$-1),Q!==ue&&(t.activeTexture(ue),Q=ue)}function ve(ue,tt,de){de===void 0&&(Q===null?de=t.TEXTURE0+$-1:de=Q);let Le=se[de];Le===void 0&&(Le={type:void 0,texture:void 0},se[de]=Le),(Le.type!==ue||Le.texture!==tt)&&(Q!==de&&(t.activeTexture(de),Q=de),t.bindTexture(ue,tt||me[ue]),Le.type=ue,Le.texture=tt)}function F(){const ue=se[Q];ue!==void 0&&ue.type!==void 0&&(t.bindTexture(ue.type,null),ue.type=void 0,ue.texture=void 0)}function L(){try{t.compressedTexImage2D(...arguments)}catch(ue){ue("WebGLState:",ue)}}function K(){try{t.compressedTexImage3D(...arguments)}catch(ue){ue("WebGLState:",ue)}}function pe(){try{t.texSubImage2D(...arguments)}catch(ue){ue("WebGLState:",ue)}}function xe(){try{t.texSubImage3D(...arguments)}catch(ue){ue("WebGLState:",ue)}}function fe(){try{t.compressedTexSubImage2D(...arguments)}catch(ue){ue("WebGLState:",ue)}}function Ke(){try{t.compressedTexSubImage3D(...arguments)}catch(ue){ue("WebGLState:",ue)}}function ke(){try{t.texStorage2D(...arguments)}catch(ue){ue("WebGLState:",ue)}}function $e(){try{t.texStorage3D(...arguments)}catch(ue){ue("WebGLState:",ue)}}function rt(){try{t.texImage2D(...arguments)}catch(ue){ue("WebGLState:",ue)}}function Ue(){try{t.texImage3D(...arguments)}catch(ue){ue("WebGLState:",ue)}}function De(ue){re.equals(ue)===!1&&(t.scissor(ue.x,ue.y,ue.z,ue.w),re.copy(ue))}function ut(ue){ce.equals(ue)===!1&&(t.viewport(ue.x,ue.y,ue.z,ue.w),ce.copy(ue))}function et(ue,tt){let de=c.get(tt);de===void 0&&(de=new WeakMap,c.set(tt,de));let Le=de.get(ue);Le===void 0&&(Le=t.getUniformBlockIndex(tt,ue.name),de.set(ue,Le))}function Qe(ue,tt){const Le=c.get(tt).get(ue);l.get(tt)!==Le&&(t.uniformBlockBinding(tt,Le,ue.__bindingPointIndex),l.set(tt,Le))}function st(){t.disable(t.BLEND),t.disable(t.CULL_FACE),t.disable(t.DEPTH_TEST),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SCISSOR_TEST),t.disable(t.STENCIL_TEST),t.disable(t.SAMPLE_ALPHA_TO_COVERAGE),t.blendEquation(t.FUNC_ADD),t.blendFunc(t.ONE,t.ZERO),t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ZERO),t.blendColor(0,0,0,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(t.LESS),s.setReversed(!1),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(t.ALWAYS,0,4294967295),t.stencilOp(t.KEEP,t.KEEP,t.KEEP),t.clearStencil(0),t.cullFace(t.BACK),t.frontFace(t.CCW),t.polygonOffset(0,0),t.activeTexture(t.TEXTURE0),t.bindFramebuffer(t.FRAMEBUFFER,null),t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),t.bindFramebuffer(t.READ_FRAMEBUFFER,null),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),d={},Q=null,se={},f={},p=new WeakMap,m=[],y=null,b=!1,x=null,v=null,w=null,M=null,A=null,T=null,D=null,C=new dn(0,0,0),U=0,P=!1,k=null,B=null,I=null,W=null,O=null,re.set(0,0,t.canvas.width,t.canvas.height),ce.set(0,0,t.canvas.width,t.canvas.height),a.reset(),s.reset(),o.reset()}return{buffers:{color:a,depth:s,stencil:o},enable:be,disable:Ne,bindFramebuffer:he,drawBuffers:Ae,useProgram:Be,setBlending:z,setMaterial:V,setFlipSided:ne,setCullFace:J,setLineWidth:ee,setPolygonOffset:ae,setScissorTest:ie,activeTexture:we,bindTexture:ve,unbindTexture:F,compressedTexImage2D:L,compressedTexImage3D:K,texImage2D:rt,texImage3D:Ue,updateUBOMapping:et,uniformBlockBinding:Qe,texStorage2D:ke,texStorage3D:$e,texSubImage2D:pe,texSubImage3D:xe,compressedTexSubImage2D:fe,compressedTexSubImage3D:Ke,scissor:De,viewport:ut,reset:st}}function ude(t,e,n,i,r,a,s){const o=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,l=typeof navigator>"u"?!1:/OculusBrowser/g.test(navigator.userAgent),c=new Jt,d=new WeakMap;let f;const p=new WeakMap;let m=!1;try{m=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function y(F,L){return m?new OffscreenCanvas(F,L):t_("canvas")}function b(F,L,K){let pe=1;const xe=ve(F);if((xe.width>K||xe.height>K)&&(pe=K/Math.max(xe.width,xe.height)),pe<1)if(typeof HTMLImageElement<"u"&&F instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&F instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&F instanceof ImageBitmap||typeof VideoFrame<"u"&&F instanceof VideoFrame){const fe=Math.floor(pe*xe.width),Ke=Math.floor(pe*xe.height);f===void 0&&(f=y(fe,Ke));const ke=L?y(fe,Ke):f;return ke.width=fe,ke.height=Ke,ke.getContext("2d").drawImage(F,0,0,fe,Ke),jt("WebGLRenderer: Texture has been resized from ("+xe.width+"x"+xe.height+") to ("+fe+"x"+Ke+")."),ke}else return"data"in F&&jt("WebGLRenderer: Image in DataTexture is too big ("+xe.width+"x"+xe.height+")."),F;return F}function x(F){return F.generateMipmaps}function v(F){t.generateMipmap(F)}function w(F){return F.isWebGLCubeRenderTarget?t.TEXTURE_CUBE_MAP:F.isWebGL3DRenderTarget?t.TEXTURE_3D:F.isWebGLArrayRenderTarget||F.isCompressedArrayTexture?t.TEXTURE_2D_ARRAY:t.TEXTURE_2D}function M(F,L,K,pe,xe=!1){if(F!==null){if(t[F]!==void 0)return t[F];jt("WebGLRenderer: Attempt to use non-existing WebGL internal format '"+F+"'")}let fe=L;if(L===t.RED&&(K===t.FLOAT&&(fe=t.R32F),K===t.HALF_FLOAT&&(fe=t.R16F),K===t.UNSIGNED_BYTE&&(fe=t.R8)),L===t.RED_INTEGER&&(K===t.UNSIGNED_BYTE&&(fe=t.R8UI),K===t.UNSIGNED_SHORT&&(fe=t.R16UI),K===t.UNSIGNED_INT&&(fe=t.R32UI),K===t.BYTE&&(fe=t.R8I),K===t.SHORT&&(fe=t.R16I),K===t.INT&&(fe=t.R32I)),L===t.RG&&(K===t.FLOAT&&(fe=t.RG32F),K===t.HALF_FLOAT&&(fe=t.RG16F),K===t.UNSIGNED_BYTE&&(fe=t.RG8)),L===t.RG_INTEGER&&(K===t.UNSIGNED_BYTE&&(fe=t.RG8UI),K===t.UNSIGNED_SHORT&&(fe=t.RG16UI),K===t.UNSIGNED_INT&&(fe=t.RG32UI),K===t.BYTE&&(fe=t.RG8I),K===t.SHORT&&(fe=t.RG16I),K===t.INT&&(fe=t.RG32I)),L===t.RGB_INTEGER&&(K===t.UNSIGNED_BYTE&&(fe=t.RGB8UI),K===t.UNSIGNED_SHORT&&(fe=t.RGB16UI),K===t.UNSIGNED_INT&&(fe=t.RGB32UI),K===t.BYTE&&(fe=t.RGB8I),K===t.SHORT&&(fe=t.RGB16I),K===t.INT&&(fe=t.RGB32I)),L===t.RGBA_INTEGER&&(K===t.UNSIGNED_BYTE&&(fe=t.RGBA8UI),K===t.UNSIGNED_SHORT&&(fe=t.RGBA16UI),K===t.UNSIGNED_INT&&(fe=t.RGBA32UI),K===t.BYTE&&(fe=t.RGBA8I),K===t.SHORT&&(fe=t.RGBA16I),K===t.INT&&(fe=t.RGBA32I)),L===t.RGB&&(K===t.UNSIGNED_INT_5_9_9_9_REV&&(fe=t.RGB9_E5),K===t.UNSIGNED_INT_10F_11F_11F_REV&&(fe=t.R11F_G11F_B10F)),L===t.RGBA){const Ke=xe?Qb:xn.getTransfer(pe);K===t.FLOAT&&(fe=t.RGBA32F),K===t.HALF_FLOAT&&(fe=t.RGBA16F),K===t.UNSIGNED_BYTE&&(fe=Ke===On?t.SRGB8_ALPHA8:t.RGBA8),K===t.UNSIGNED_SHORT_4_4_4_4&&(fe=t.RGBA4),K===t.UNSIGNED_SHORT_5_5_5_1&&(fe=t.RGB5_A1)}return(fe===t.R16F||fe===t.R32F||fe===t.RG16F||fe===t.RG32F||fe===t.RGBA16F||fe===t.RGBA32F)&&e.get("EXT_color_buffer_float"),fe}function A(F,L){let K;return F?L===null||L===af||L===f0?K=t.DEPTH24_STENCIL8:L===Fl?K=t.DEPTH32F_STENCIL8:L===d0&&(K=t.DEPTH24_STENCIL8,jt("DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.")):L===null||L===af||L===f0?K=t.DEPTH_COMPONENT24:L===Fl?K=t.DEPTH_COMPONENT32F:L===d0&&(K=t.DEPTH_COMPONENT16),K}function T(F,L){return x(F)===!0||F.isFramebufferTexture&&F.minFilter!==ns&&F.minFilter!==Ls?Math.log2(Math.max(L.width,L.height))+1:F.mipmaps!==void 0&&F.mipmaps.length>0?F.mipmaps.length:F.isCompressedTexture&&Array.isArray(F.image)?L.mipmaps.length:1}function D(F){const L=F.target;L.removeEventListener("dispose",D),U(L),L.isVideoTexture&&d.delete(L)}function C(F){const L=F.target;L.removeEventListener("dispose",C),k(L)}function U(F){const L=i.get(F);if(L.__webglInit===void 0)return;const K=F.source,pe=p.get(K);if(pe){const xe=pe[L.__cacheKey];xe.usedTimes--,xe.usedTimes===0&&P(F),Object.keys(pe).length===0&&p.delete(K)}i.remove(F)}function P(F){const L=i.get(F);t.deleteTexture(L.__webglTexture);const K=F.source,pe=p.get(K);delete pe[L.__cacheKey],s.memory.textures--}function k(F){const L=i.get(F);if(F.depthTexture&&(F.depthTexture.dispose(),i.remove(F.depthTexture)),F.isWebGLCubeRenderTarget)for(let pe=0;pe<6;pe++){if(Array.isArray(L.__webglFramebuffer[pe]))for(let xe=0;xe<L.__webglFramebuffer[pe].length;xe++)t.deleteFramebuffer(L.__webglFramebuffer[pe][xe]);else t.deleteFramebuffer(L.__webglFramebuffer[pe]);L.__webglDepthbuffer&&t.deleteRenderbuffer(L.__webglDepthbuffer[pe])}else{if(Array.isArray(L.__webglFramebuffer))for(let pe=0;pe<L.__webglFramebuffer.length;pe++)t.deleteFramebuffer(L.__webglFramebuffer[pe]);else t.deleteFramebuffer(L.__webglFramebuffer);if(L.__webglDepthbuffer&&t.deleteRenderbuffer(L.__webglDepthbuffer),L.__webglMultisampledFramebuffer&&t.deleteFramebuffer(L.__webglMultisampledFramebuffer),L.__webglColorRenderbuffer)for(let pe=0;pe<L.__webglColorRenderbuffer.length;pe++)L.__webglColorRenderbuffer[pe]&&t.deleteRenderbuffer(L.__webglColorRenderbuffer[pe]);L.__webglDepthRenderbuffer&&t.deleteRenderbuffer(L.__webglDepthRenderbuffer)}const K=F.textures;for(let pe=0,xe=K.length;pe<xe;pe++){const fe=i.get(K[pe]);fe.__webglTexture&&(t.deleteTexture(fe.__webglTexture),s.memory.textures--),i.remove(K[pe])}i.remove(F)}let B=0;function I(){B=0}function W(){const F=B;return F>=r.maxTextures&&jt("WebGLTextures: Trying to use "+F+" texture units while this GPU supports only "+r.maxTextures),B+=1,F}function O(F){const L=[];return L.push(F.wrapS),L.push(F.wrapT),L.push(F.wrapR||0),L.push(F.magFilter),L.push(F.minFilter),L.push(F.anisotropy),L.push(F.internalFormat),L.push(F.format),L.push(F.type),L.push(F.generateMipmaps),L.push(F.premultiplyAlpha),L.push(F.flipY),L.push(F.unpackAlignment),L.push(F.colorSpace),L.join()}function $(F,L){const K=i.get(F);if(F.isVideoTexture&&ie(F),F.isRenderTargetTexture===!1&&F.isExternalTexture!==!0&&F.version>0&&K.__version!==F.version){const pe=F.image;if(pe===null)jt("WebGLRenderer: Texture marked for update but no image data found.");else if(pe.complete===!1)jt("WebGLRenderer: Texture marked for update but image is incomplete");else{me(K,F,L);return}}else F.isExternalTexture&&(K.__webglTexture=F.sourceTexture?F.sourceTexture:null);n.bindTexture(t.TEXTURE_2D,K.__webglTexture,t.TEXTURE0+L)}function q(F,L){const K=i.get(F);if(F.isRenderTargetTexture===!1&&F.version>0&&K.__version!==F.version){me(K,F,L);return}else F.isExternalTexture&&(K.__webglTexture=F.sourceTexture?F.sourceTexture:null);n.bindTexture(t.TEXTURE_2D_ARRAY,K.__webglTexture,t.TEXTURE0+L)}function G(F,L){const K=i.get(F);if(F.isRenderTargetTexture===!1&&F.version>0&&K.__version!==F.version){me(K,F,L);return}n.bindTexture(t.TEXTURE_3D,K.__webglTexture,t.TEXTURE0+L)}function Y(F,L){const K=i.get(F);if(F.version>0&&K.__version!==F.version){be(K,F,L);return}n.bindTexture(t.TEXTURE_CUBE_MAP,K.__webglTexture,t.TEXTURE0+L)}const Q={[k2]:t.REPEAT,[Ul]:t.CLAMP_TO_EDGE,[I2]:t.MIRRORED_REPEAT},se={[ns]:t.NEAREST,[Lae]:t.NEAREST_MIPMAP_NEAREST,[Xx]:t.NEAREST_MIPMAP_LINEAR,[Ls]:t.LINEAR,[OE]:t.LINEAR_MIPMAP_NEAREST,[Dd]:t.LINEAR_MIPMAP_LINEAR},H={[Fae]:t.NEVER,[Gae]:t.ALWAYS,[zae]:t.LESS,[vG]:t.LEQUAL,[Bae]:t.EQUAL,[Vae]:t.GEQUAL,[jae]:t.GREATER,[Hae]:t.NOTEQUAL};function X(F,L){if(L.type===Fl&&e.has("OES_texture_float_linear")===!1&&(L.magFilter===Ls||L.magFilter===OE||L.magFilter===Xx||L.magFilter===Dd||L.minFilter===Ls||L.minFilter===OE||L.minFilter===Xx||L.minFilter===Dd)&&jt("WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device."),t.texParameteri(F,t.TEXTURE_WRAP_S,Q[L.wrapS]),t.texParameteri(F,t.TEXTURE_WRAP_T,Q[L.wrapT]),(F===t.TEXTURE_3D||F===t.TEXTURE_2D_ARRAY)&&t.texParameteri(F,t.TEXTURE_WRAP_R,Q[L.wrapR]),t.texParameteri(F,t.TEXTURE_MAG_FILTER,se[L.magFilter]),t.texParameteri(F,t.TEXTURE_MIN_FILTER,se[L.minFilter]),L.compareFunction&&(t.texParameteri(F,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(F,t.TEXTURE_COMPARE_FUNC,H[L.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){if(L.magFilter===ns||L.minFilter!==Xx&&L.minFilter!==Dd||L.type===Fl&&e.has("OES_texture_float_linear")===!1)return;if(L.anisotropy>1||i.get(L).__currentAnisotropy){const K=e.get("EXT_texture_filter_anisotropic");t.texParameterf(F,K.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(L.anisotropy,r.getMaxAnisotropy())),i.get(L).__currentAnisotropy=L.anisotropy}}}function re(F,L){let K=!1;F.__webglInit===void 0&&(F.__webglInit=!0,L.addEventListener("dispose",D));const pe=L.source;let xe=p.get(pe);xe===void 0&&(xe={},p.set(pe,xe));const fe=O(L);if(fe!==F.__cacheKey){xe[fe]===void 0&&(xe[fe]={texture:t.createTexture(),usedTimes:0},s.memory.textures++,K=!0),xe[fe].usedTimes++;const Ke=xe[F.__cacheKey];Ke!==void 0&&(xe[F.__cacheKey].usedTimes--,Ke.usedTimes===0&&P(L)),F.__cacheKey=fe,F.__webglTexture=xe[fe].texture}return K}function ce(F,L,K){return Math.floor(Math.floor(F/K)/L)}function ye(F,L,K,pe){const fe=F.updateRanges;if(fe.length===0)n.texSubImage2D(t.TEXTURE_2D,0,0,0,L.width,L.height,K,pe,L.data);else{fe.sort((Ue,De)=>Ue.start-De.start);let Ke=0;for(let Ue=1;Ue<fe.length;Ue++){const De=fe[Ke],ut=fe[Ue],et=De.start+De.count,Qe=ce(ut.start,L.width,4),st=ce(De.start,L.width,4);ut.start<=et+1&&Qe===st&&ce(ut.start+ut.count-1,L.width,4)===Qe?De.count=Math.max(De.count,ut.start+ut.count-De.start):(++Ke,fe[Ke]=ut)}fe.length=Ke+1;const ke=t.getParameter(t.UNPACK_ROW_LENGTH),$e=t.getParameter(t.UNPACK_SKIP_PIXELS),rt=t.getParameter(t.UNPACK_SKIP_ROWS);t.pixelStorei(t.UNPACK_ROW_LENGTH,L.width);for(let Ue=0,De=fe.length;Ue<De;Ue++){const ut=fe[Ue],et=Math.floor(ut.start/4),Qe=Math.ceil(ut.count/4),st=et%L.width,ue=Math.floor(et/L.width),tt=Qe,de=1;t.pixelStorei(t.UNPACK_SKIP_PIXELS,st),t.pixelStorei(t.UNPACK_SKIP_ROWS,ue),n.texSubImage2D(t.TEXTURE_2D,0,st,ue,tt,de,K,pe,L.data)}F.clearUpdateRanges(),t.pixelStorei(t.UNPACK_ROW_LENGTH,ke),t.pixelStorei(t.UNPACK_SKIP_PIXELS,$e),t.pixelStorei(t.UNPACK_SKIP_ROWS,rt)}}function me(F,L,K){let pe=t.TEXTURE_2D;(L.isDataArrayTexture||L.isCompressedArrayTexture)&&(pe=t.TEXTURE_2D_ARRAY),L.isData3DTexture&&(pe=t.TEXTURE_3D);const xe=re(F,L),fe=L.source;n.bindTexture(pe,F.__webglTexture,t.TEXTURE0+K);const Ke=i.get(fe);if(fe.version!==Ke.__version||xe===!0){n.activeTexture(t.TEXTURE0+K);const ke=xn.getPrimaries(xn.workingColorSpace),$e=L.colorSpace===lu?null:xn.getPrimaries(L.colorSpace),rt=L.colorSpace===lu||ke===$e?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,L.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,L.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,L.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,rt);let Ue=b(L.image,!1,r.maxTextureSize);Ue=we(L,Ue);const De=a.convert(L.format,L.colorSpace),ut=a.convert(L.type);let et=M(L.internalFormat,De,ut,L.colorSpace,L.isVideoTexture);X(pe,L);let Qe;const st=L.mipmaps,ue=L.isVideoTexture!==!0,tt=Ke.__version===void 0||xe===!0,de=fe.dataReady,Le=T(L,Ue);if(L.isDepthTexture)et=A(L.format===p0,L.type),tt&&(ue?n.texStorage2D(t.TEXTURE_2D,1,et,Ue.width,Ue.height):n.texImage2D(t.TEXTURE_2D,0,et,Ue.width,Ue.height,0,De,ut,null));else if(L.isDataTexture)if(st.length>0){ue&&tt&&n.texStorage2D(t.TEXTURE_2D,Le,et,st[0].width,st[0].height);for(let Ee=0,ge=st.length;Ee<ge;Ee++)Qe=st[Ee],ue?de&&n.texSubImage2D(t.TEXTURE_2D,Ee,0,0,Qe.width,Qe.height,De,ut,Qe.data):n.texImage2D(t.TEXTURE_2D,Ee,et,Qe.width,Qe.height,0,De,ut,Qe.data);L.generateMipmaps=!1}else ue?(tt&&n.texStorage2D(t.TEXTURE_2D,Le,et,Ue.width,Ue.height),de&&ye(L,Ue,De,ut)):n.texImage2D(t.TEXTURE_2D,0,et,Ue.width,Ue.height,0,De,ut,Ue.data);else if(L.isCompressedTexture)if(L.isCompressedArrayTexture){ue&&tt&&n.texStorage3D(t.TEXTURE_2D_ARRAY,Le,et,st[0].width,st[0].height,Ue.depth);for(let Ee=0,ge=st.length;Ee<ge;Ee++)if(Qe=st[Ee],L.format!==lo)if(De!==null)if(ue){if(de)if(L.layerUpdates.size>0){const je=GF(Qe.width,Qe.height,L.format,L.type);for(const at of L.layerUpdates){const vt=Qe.data.subarray(at*je/Qe.data.BYTES_PER_ELEMENT,(at+1)*je/Qe.data.BYTES_PER_ELEMENT);n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,Ee,0,0,at,Qe.width,Qe.height,1,De,vt)}L.clearLayerUpdates()}else n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,Ee,0,0,0,Qe.width,Qe.height,Ue.depth,De,Qe.data)}else n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,Ee,et,Qe.width,Qe.height,Ue.depth,0,Qe.data,0,0);else jt("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()");else ue?de&&n.texSubImage3D(t.TEXTURE_2D_ARRAY,Ee,0,0,0,Qe.width,Qe.height,Ue.depth,De,ut,Qe.data):n.texImage3D(t.TEXTURE_2D_ARRAY,Ee,et,Qe.width,Qe.height,Ue.depth,0,De,ut,Qe.data)}else{ue&&tt&&n.texStorage2D(t.TEXTURE_2D,Le,et,st[0].width,st[0].height);for(let Ee=0,ge=st.length;Ee<ge;Ee++)Qe=st[Ee],L.format!==lo?De!==null?ue?de&&n.compressedTexSubImage2D(t.TEXTURE_2D,Ee,0,0,Qe.width,Qe.height,De,Qe.data):n.compressedTexImage2D(t.TEXTURE_2D,Ee,et,Qe.width,Qe.height,0,Qe.data):jt("WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):ue?de&&n.texSubImage2D(t.TEXTURE_2D,Ee,0,0,Qe.width,Qe.height,De,ut,Qe.data):n.texImage2D(t.TEXTURE_2D,Ee,et,Qe.width,Qe.height,0,De,ut,Qe.data)}else if(L.isDataArrayTexture)if(ue){if(tt&&n.texStorage3D(t.TEXTURE_2D_ARRAY,Le,et,Ue.width,Ue.height,Ue.depth),de)if(L.layerUpdates.size>0){const Ee=GF(Ue.width,Ue.height,L.format,L.type);for(const ge of L.layerUpdates){const je=Ue.data.subarray(ge*Ee/Ue.data.BYTES_PER_ELEMENT,(ge+1)*Ee/Ue.data.BYTES_PER_ELEMENT);n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,ge,Ue.width,Ue.height,1,De,ut,je)}L.clearLayerUpdates()}else n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,0,Ue.width,Ue.height,Ue.depth,De,ut,Ue.data)}else n.texImage3D(t.TEXTURE_2D_ARRAY,0,et,Ue.width,Ue.height,Ue.depth,0,De,ut,Ue.data);else if(L.isData3DTexture)ue?(tt&&n.texStorage3D(t.TEXTURE_3D,Le,et,Ue.width,Ue.height,Ue.depth),de&&n.texSubImage3D(t.TEXTURE_3D,0,0,0,0,Ue.width,Ue.height,Ue.depth,De,ut,Ue.data)):n.texImage3D(t.TEXTURE_3D,0,et,Ue.width,Ue.height,Ue.depth,0,De,ut,Ue.data);else if(L.isFramebufferTexture){if(tt)if(ue)n.texStorage2D(t.TEXTURE_2D,Le,et,Ue.width,Ue.height);else{let Ee=Ue.width,ge=Ue.height;for(let je=0;je<Le;je++)n.texImage2D(t.TEXTURE_2D,je,et,Ee,ge,0,De,ut,null),Ee>>=1,ge>>=1}}else if(st.length>0){if(ue&&tt){const Ee=ve(st[0]);n.texStorage2D(t.TEXTURE_2D,Le,et,Ee.width,Ee.height)}for(let Ee=0,ge=st.length;Ee<ge;Ee++)Qe=st[Ee],ue?de&&n.texSubImage2D(t.TEXTURE_2D,Ee,0,0,De,ut,Qe):n.texImage2D(t.TEXTURE_2D,Ee,et,De,ut,Qe);L.generateMipmaps=!1}else if(ue){if(tt){const Ee=ve(Ue);n.texStorage2D(t.TEXTURE_2D,Le,et,Ee.width,Ee.height)}de&&n.texSubImage2D(t.TEXTURE_2D,0,0,0,De,ut,Ue)}else n.texImage2D(t.TEXTURE_2D,0,et,De,ut,Ue);x(L)&&v(pe),Ke.__version=fe.version,L.onUpdate&&L.onUpdate(L)}F.__version=L.version}function be(F,L,K){if(L.image.length!==6)return;const pe=re(F,L),xe=L.source;n.bindTexture(t.TEXTURE_CUBE_MAP,F.__webglTexture,t.TEXTURE0+K);const fe=i.get(xe);if(xe.version!==fe.__version||pe===!0){n.activeTexture(t.TEXTURE0+K);const Ke=xn.getPrimaries(xn.workingColorSpace),ke=L.colorSpace===lu?null:xn.getPrimaries(L.colorSpace),$e=L.colorSpace===lu||Ke===ke?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,L.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,L.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,L.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,$e);const rt=L.isCompressedTexture||L.image[0].isCompressedTexture,Ue=L.image[0]&&L.image[0].isDataTexture,De=[];for(let ge=0;ge<6;ge++)!rt&&!Ue?De[ge]=b(L.image[ge],!0,r.maxCubemapSize):De[ge]=Ue?L.image[ge].image:L.image[ge],De[ge]=we(L,De[ge]);const ut=De[0],et=a.convert(L.format,L.colorSpace),Qe=a.convert(L.type),st=M(L.internalFormat,et,Qe,L.colorSpace),ue=L.isVideoTexture!==!0,tt=fe.__version===void 0||pe===!0,de=xe.dataReady;let Le=T(L,ut);X(t.TEXTURE_CUBE_MAP,L);let Ee;if(rt){ue&&tt&&n.texStorage2D(t.TEXTURE_CUBE_MAP,Le,st,ut.width,ut.height);for(let ge=0;ge<6;ge++){Ee=De[ge].mipmaps;for(let je=0;je<Ee.length;je++){const at=Ee[je];L.format!==lo?et!==null?ue?de&&n.compressedTexSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je,0,0,at.width,at.height,et,at.data):n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je,st,at.width,at.height,0,at.data):jt("WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):ue?de&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je,0,0,at.width,at.height,et,Qe,at.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je,st,at.width,at.height,0,et,Qe,at.data)}}}else{if(Ee=L.mipmaps,ue&&tt){Ee.length>0&&Le++;const ge=ve(De[0]);n.texStorage2D(t.TEXTURE_CUBE_MAP,Le,st,ge.width,ge.height)}for(let ge=0;ge<6;ge++)if(Ue){ue?de&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,0,0,0,De[ge].width,De[ge].height,et,Qe,De[ge].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,0,st,De[ge].width,De[ge].height,0,et,Qe,De[ge].data);for(let je=0;je<Ee.length;je++){const vt=Ee[je].image[ge].image;ue?de&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je+1,0,0,vt.width,vt.height,et,Qe,vt.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je+1,st,vt.width,vt.height,0,et,Qe,vt.data)}}else{ue?de&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,0,0,0,et,Qe,De[ge]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,0,st,et,Qe,De[ge]);for(let je=0;je<Ee.length;je++){const at=Ee[je];ue?de&&n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je+1,0,0,et,Qe,at.image[ge]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je+1,st,et,Qe,at.image[ge])}}}x(L)&&v(t.TEXTURE_CUBE_MAP),fe.__version=xe.version,L.onUpdate&&L.onUpdate(L)}F.__version=L.version}function Ne(F,L,K,pe,xe,fe){const Ke=a.convert(K.format,K.colorSpace),ke=a.convert(K.type),$e=M(K.internalFormat,Ke,ke,K.colorSpace),rt=i.get(L),Ue=i.get(K);if(Ue.__renderTarget=L,!rt.__hasExternalTextures){const De=Math.max(1,L.width>>fe),ut=Math.max(1,L.height>>fe);xe===t.TEXTURE_3D||xe===t.TEXTURE_2D_ARRAY?n.texImage3D(xe,fe,$e,De,ut,L.depth,0,Ke,ke,null):n.texImage2D(xe,fe,$e,De,ut,0,Ke,ke,null)}n.bindFramebuffer(t.FRAMEBUFFER,F),ae(L)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,pe,xe,Ue.__webglTexture,0,ee(L)):(xe===t.TEXTURE_2D||xe>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&xe<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,pe,xe,Ue.__webglTexture,fe),n.bindFramebuffer(t.FRAMEBUFFER,null)}function he(F,L,K){if(t.bindRenderbuffer(t.RENDERBUFFER,F),L.depthBuffer){const pe=L.depthTexture,xe=pe&&pe.isDepthTexture?pe.type:null,fe=A(L.stencilBuffer,xe),Ke=L.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,ke=ee(L);ae(L)?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,ke,fe,L.width,L.height):K?t.renderbufferStorageMultisample(t.RENDERBUFFER,ke,fe,L.width,L.height):t.renderbufferStorage(t.RENDERBUFFER,fe,L.width,L.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,Ke,t.RENDERBUFFER,F)}else{const pe=L.textures;for(let xe=0;xe<pe.length;xe++){const fe=pe[xe],Ke=a.convert(fe.format,fe.colorSpace),ke=a.convert(fe.type),$e=M(fe.internalFormat,Ke,ke,fe.colorSpace),rt=ee(L);K&&ae(L)===!1?t.renderbufferStorageMultisample(t.RENDERBUFFER,rt,$e,L.width,L.height):ae(L)?o.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,rt,$e,L.width,L.height):t.renderbufferStorage(t.RENDERBUFFER,$e,L.width,L.height)}}t.bindRenderbuffer(t.RENDERBUFFER,null)}function Ae(F,L){if(L&&L.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(n.bindFramebuffer(t.FRAMEBUFFER,F),!(L.depthTexture&&L.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");const pe=i.get(L.depthTexture);pe.__renderTarget=L,(!pe.__webglTexture||L.depthTexture.image.width!==L.width||L.depthTexture.image.height!==L.height)&&(L.depthTexture.image.width=L.width,L.depthTexture.image.height=L.height,L.depthTexture.needsUpdate=!0),$(L.depthTexture,0);const xe=pe.__webglTexture,fe=ee(L);if(L.depthTexture.format===h0)ae(L)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,xe,0,fe):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,xe,0);else if(L.depthTexture.format===p0)ae(L)?o.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,xe,0,fe):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,xe,0);else throw new Error("Unknown depthTexture format")}function Be(F){const L=i.get(F),K=F.isWebGLCubeRenderTarget===!0;if(L.__boundDepthTexture!==F.depthTexture){const pe=F.depthTexture;if(L.__depthDisposeCallback&&L.__depthDisposeCallback(),pe){const xe=()=>{delete L.__boundDepthTexture,delete L.__depthDisposeCallback,pe.removeEventListener("dispose",xe)};pe.addEventListener("dispose",xe),L.__depthDisposeCallback=xe}L.__boundDepthTexture=pe}if(F.depthTexture&&!L.__autoAllocateDepthBuffer){if(K)throw new Error("target.depthTexture not supported in Cube render targets");const pe=F.texture.mipmaps;pe&&pe.length>0?Ae(L.__webglFramebuffer[0],F):Ae(L.__webglFramebuffer,F)}else if(K){L.__webglDepthbuffer=[];for(let pe=0;pe<6;pe++)if(n.bindFramebuffer(t.FRAMEBUFFER,L.__webglFramebuffer[pe]),L.__webglDepthbuffer[pe]===void 0)L.__webglDepthbuffer[pe]=t.createRenderbuffer(),he(L.__webglDepthbuffer[pe],F,!1);else{const xe=F.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,fe=L.__webglDepthbuffer[pe];t.bindRenderbuffer(t.RENDERBUFFER,fe),t.framebufferRenderbuffer(t.FRAMEBUFFER,xe,t.RENDERBUFFER,fe)}}else{const pe=F.texture.mipmaps;if(pe&&pe.length>0?n.bindFramebuffer(t.FRAMEBUFFER,L.__webglFramebuffer[0]):n.bindFramebuffer(t.FRAMEBUFFER,L.__webglFramebuffer),L.__webglDepthbuffer===void 0)L.__webglDepthbuffer=t.createRenderbuffer(),he(L.__webglDepthbuffer,F,!1);else{const xe=F.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,fe=L.__webglDepthbuffer;t.bindRenderbuffer(t.RENDERBUFFER,fe),t.framebufferRenderbuffer(t.FRAMEBUFFER,xe,t.RENDERBUFFER,fe)}}n.bindFramebuffer(t.FRAMEBUFFER,null)}function le(F,L,K){const pe=i.get(F);L!==void 0&&Ne(pe.__webglFramebuffer,F,F.texture,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,0),K!==void 0&&Be(F)}function ct(F){const L=F.texture,K=i.get(F),pe=i.get(L);F.addEventListener("dispose",C);const xe=F.textures,fe=F.isWebGLCubeRenderTarget===!0,Ke=xe.length>1;if(Ke||(pe.__webglTexture===void 0&&(pe.__webglTexture=t.createTexture()),pe.__version=L.version,s.memory.textures++),fe){K.__webglFramebuffer=[];for(let ke=0;ke<6;ke++)if(L.mipmaps&&L.mipmaps.length>0){K.__webglFramebuffer[ke]=[];for(let $e=0;$e<L.mipmaps.length;$e++)K.__webglFramebuffer[ke][$e]=t.createFramebuffer()}else K.__webglFramebuffer[ke]=t.createFramebuffer()}else{if(L.mipmaps&&L.mipmaps.length>0){K.__webglFramebuffer=[];for(let ke=0;ke<L.mipmaps.length;ke++)K.__webglFramebuffer[ke]=t.createFramebuffer()}else K.__webglFramebuffer=t.createFramebuffer();if(Ke)for(let ke=0,$e=xe.length;ke<$e;ke++){const rt=i.get(xe[ke]);rt.__webglTexture===void 0&&(rt.__webglTexture=t.createTexture(),s.memory.textures++)}if(F.samples>0&&ae(F)===!1){K.__webglMultisampledFramebuffer=t.createFramebuffer(),K.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,K.__webglMultisampledFramebuffer);for(let ke=0;ke<xe.length;ke++){const $e=xe[ke];K.__webglColorRenderbuffer[ke]=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,K.__webglColorRenderbuffer[ke]);const rt=a.convert($e.format,$e.colorSpace),Ue=a.convert($e.type),De=M($e.internalFormat,rt,Ue,$e.colorSpace,F.isXRRenderTarget===!0),ut=ee(F);t.renderbufferStorageMultisample(t.RENDERBUFFER,ut,De,F.width,F.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+ke,t.RENDERBUFFER,K.__webglColorRenderbuffer[ke])}t.bindRenderbuffer(t.RENDERBUFFER,null),F.depthBuffer&&(K.__webglDepthRenderbuffer=t.createRenderbuffer(),he(K.__webglDepthRenderbuffer,F,!0)),n.bindFramebuffer(t.FRAMEBUFFER,null)}}if(fe){n.bindTexture(t.TEXTURE_CUBE_MAP,pe.__webglTexture),X(t.TEXTURE_CUBE_MAP,L);for(let ke=0;ke<6;ke++)if(L.mipmaps&&L.mipmaps.length>0)for(let $e=0;$e<L.mipmaps.length;$e++)Ne(K.__webglFramebuffer[ke][$e],F,L,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+ke,$e);else Ne(K.__webglFramebuffer[ke],F,L,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+ke,0);x(L)&&v(t.TEXTURE_CUBE_MAP),n.unbindTexture()}else if(Ke){for(let ke=0,$e=xe.length;ke<$e;ke++){const rt=xe[ke],Ue=i.get(rt);let De=t.TEXTURE_2D;(F.isWebGL3DRenderTarget||F.isWebGLArrayRenderTarget)&&(De=F.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY),n.bindTexture(De,Ue.__webglTexture),X(De,rt),Ne(K.__webglFramebuffer,F,rt,t.COLOR_ATTACHMENT0+ke,De,0),x(rt)&&v(De)}n.unbindTexture()}else{let ke=t.TEXTURE_2D;if((F.isWebGL3DRenderTarget||F.isWebGLArrayRenderTarget)&&(ke=F.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY),n.bindTexture(ke,pe.__webglTexture),X(ke,L),L.mipmaps&&L.mipmaps.length>0)for(let $e=0;$e<L.mipmaps.length;$e++)Ne(K.__webglFramebuffer[$e],F,L,t.COLOR_ATTACHMENT0,ke,$e);else Ne(K.__webglFramebuffer,F,L,t.COLOR_ATTACHMENT0,ke,0);x(L)&&v(ke),n.unbindTexture()}F.depthBuffer&&Be(F)}function z(F){const L=F.textures;for(let K=0,pe=L.length;K<pe;K++){const xe=L[K];if(x(xe)){const fe=w(F),Ke=i.get(xe).__webglTexture;n.bindTexture(fe,Ke),v(fe),n.unbindTexture()}}}const V=[],ne=[];function J(F){if(F.samples>0){if(ae(F)===!1){const L=F.textures,K=F.width,pe=F.height;let xe=t.COLOR_BUFFER_BIT;const fe=F.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,Ke=i.get(F),ke=L.length>1;if(ke)for(let rt=0;rt<L.length;rt++)n.bindFramebuffer(t.FRAMEBUFFER,Ke.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+rt,t.RENDERBUFFER,null),n.bindFramebuffer(t.FRAMEBUFFER,Ke.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+rt,t.TEXTURE_2D,null,0);n.bindFramebuffer(t.READ_FRAMEBUFFER,Ke.__webglMultisampledFramebuffer);const $e=F.texture.mipmaps;$e&&$e.length>0?n.bindFramebuffer(t.DRAW_FRAMEBUFFER,Ke.__webglFramebuffer[0]):n.bindFramebuffer(t.DRAW_FRAMEBUFFER,Ke.__webglFramebuffer);for(let rt=0;rt<L.length;rt++){if(F.resolveDepthBuffer&&(F.depthBuffer&&(xe|=t.DEPTH_BUFFER_BIT),F.stencilBuffer&&F.resolveStencilBuffer&&(xe|=t.STENCIL_BUFFER_BIT)),ke){t.framebufferRenderbuffer(t.READ_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,Ke.__webglColorRenderbuffer[rt]);const Ue=i.get(L[rt]).__webglTexture;t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,Ue,0)}t.blitFramebuffer(0,0,K,pe,0,0,K,pe,xe,t.NEAREST),l===!0&&(V.length=0,ne.length=0,V.push(t.COLOR_ATTACHMENT0+rt),F.depthBuffer&&F.resolveDepthBuffer===!1&&(V.push(fe),ne.push(fe),t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,ne)),t.invalidateFramebuffer(t.READ_FRAMEBUFFER,V))}if(n.bindFramebuffer(t.READ_FRAMEBUFFER,null),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),ke)for(let rt=0;rt<L.length;rt++){n.bindFramebuffer(t.FRAMEBUFFER,Ke.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+rt,t.RENDERBUFFER,Ke.__webglColorRenderbuffer[rt]);const Ue=i.get(L[rt]).__webglTexture;n.bindFramebuffer(t.FRAMEBUFFER,Ke.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+rt,t.TEXTURE_2D,Ue,0)}n.bindFramebuffer(t.DRAW_FRAMEBUFFER,Ke.__webglMultisampledFramebuffer)}else if(F.depthBuffer&&F.resolveDepthBuffer===!1&&l){const L=F.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT;t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,[L])}}}function ee(F){return Math.min(r.maxSamples,F.samples)}function ae(F){const L=i.get(F);return F.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&L.__useRenderToTexture!==!1}function ie(F){const L=s.render.frame;d.get(F)!==L&&(d.set(F,L),F.update())}function we(F,L){const K=F.colorSpace,pe=F.format,xe=F.type;return F.isCompressedTexture===!0||F.isVideoTexture===!0||K!==bp&&K!==lu&&(xn.getTransfer(K)===On?(pe!==lo||xe!==zo)&&jt("WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):wi("WebGLTextures: Unsupported texture color space:",K)),L}function ve(F){return typeof HTMLImageElement<"u"&&F instanceof HTMLImageElement?(c.width=F.naturalWidth||F.width,c.height=F.naturalHeight||F.height):typeof VideoFrame<"u"&&F instanceof VideoFrame?(c.width=F.displayWidth,c.height=F.displayHeight):(c.width=F.width,c.height=F.height),c}this.allocateTextureUnit=W,this.resetTextureUnits=I,this.setTexture2D=$,this.setTexture2DArray=q,this.setTexture3D=G,this.setTextureCube=Y,this.rebindTextures=le,this.setupRenderTarget=ct,this.updateRenderTargetMipmap=z,this.updateMultisampleRenderTarget=J,this.setupDepthRenderbuffer=Be,this.setupFrameBufferTexture=Ne,this.useMultisampledRTT=ae}function dde(t,e){function n(i,r=lu){let a;const s=xn.getTransfer(r);if(i===zo)return t.UNSIGNED_BYTE;if(i===DP)return t.UNSIGNED_SHORT_4_4_4_4;if(i===NP)return t.UNSIGNED_SHORT_5_5_5_1;if(i===dG)return t.UNSIGNED_INT_5_9_9_9_REV;if(i===fG)return t.UNSIGNED_INT_10F_11F_11F_REV;if(i===cG)return t.BYTE;if(i===uG)return t.SHORT;if(i===d0)return t.UNSIGNED_SHORT;if(i===PP)return t.INT;if(i===af)return t.UNSIGNED_INT;if(i===Fl)return t.FLOAT;if(i===Xp)return t.HALF_FLOAT;if(i===hG)return t.ALPHA;if(i===pG)return t.RGB;if(i===lo)return t.RGBA;if(i===h0)return t.DEPTH_COMPONENT;if(i===p0)return t.DEPTH_STENCIL;if(i===mG)return t.RED;if(i===OP)return t.RED_INTEGER;if(i===LP)return t.RG;if(i===kP)return t.RG_INTEGER;if(i===IP)return t.RGBA_INTEGER;if(i===Ab||i===Tb||i===Cb||i===Rb)if(s===On)if(a=e.get("WEBGL_compressed_texture_s3tc_srgb"),a!==null){if(i===Ab)return a.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===Tb)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===Cb)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===Rb)return a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(a=e.get("WEBGL_compressed_texture_s3tc"),a!==null){if(i===Ab)return a.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===Tb)return a.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===Cb)return a.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===Rb)return a.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===U2||i===F2||i===z2||i===B2)if(a=e.get("WEBGL_compressed_texture_pvrtc"),a!==null){if(i===U2)return a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===F2)return a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===z2)return a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===B2)return a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===j2||i===H2||i===V2)if(a=e.get("WEBGL_compressed_texture_etc"),a!==null){if(i===j2||i===H2)return s===On?a.COMPRESSED_SRGB8_ETC2:a.COMPRESSED_RGB8_ETC2;if(i===V2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:a.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===G2||i===$2||i===W2||i===q2||i===X2||i===Y2||i===K2||i===Z2||i===J2||i===Q2||i===eR||i===tR||i===nR||i===iR)if(a=e.get("WEBGL_compressed_texture_astc"),a!==null){if(i===G2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:a.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===$2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:a.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===W2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:a.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===q2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:a.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===X2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:a.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===Y2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:a.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===K2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:a.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===Z2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:a.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===J2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:a.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===Q2)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:a.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===eR)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:a.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===tR)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:a.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===nR)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:a.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===iR)return s===On?a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:a.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===rR||i===aR||i===sR)if(a=e.get("EXT_texture_compression_bptc"),a!==null){if(i===rR)return s===On?a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:a.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(i===aR)return a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(i===sR)return a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(i===oR||i===lR||i===cR||i===uR)if(a=e.get("EXT_texture_compression_rgtc"),a!==null){if(i===oR)return a.COMPRESSED_RED_RGTC1_EXT;if(i===lR)return a.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(i===cR)return a.COMPRESSED_RED_GREEN_RGTC2_EXT;if(i===uR)return a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return i===f0?t.UNSIGNED_INT_24_8:t[i]!==void 0?t[i]:null}return{convert:n}}const fde=`
- void main() {
- gl_Position = vec4( position, 1.0 );
- }`,hde=`
- uniform sampler2DArray depthColor;
- uniform float depthWidth;
- uniform float depthHeight;
- void main() {
- vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );
- if ( coord.x >= 1.0 ) {
- gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;
- } else {
- gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;
- }
- }`;class pde{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(e,n){if(this.texture===null){const i=new IG(e.texture);(e.depthNear!==n.depthNear||e.depthFar!==n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=i}}getMesh(e){if(this.texture!==null&&this.mesh===null){const n=e.cameras[0].viewport,i=new Jl({vertexShader:fde,fragmentShader:hde,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Bo(new HP(20,20),i)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}}let mde=class extends Ef{constructor(e,n){super();const i=this;let r=null,a=1,s=null,o="local-floor",l=1,c=null,d=null,f=null,p=null,m=null,y=null;const b=typeof XRWebGLBinding<"u",x=new pde,v={},w=n.getContextAttributes();let M=null,A=null;const T=[],D=[],C=new Jt;let U=null;const P=new Rs;P.viewport=new Li;const k=new Rs;k.viewport=new Li;const B=[P,k],I=new Nse;let W=null,O=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(me){let be=T[me];return be===void 0&&(be=new tA,T[me]=be),be.getTargetRaySpace()},this.getControllerGrip=function(me){let be=T[me];return be===void 0&&(be=new tA,T[me]=be),be.getGripSpace()},this.getHand=function(me){let be=T[me];return be===void 0&&(be=new tA,T[me]=be),be.getHandSpace()};function $(me){const be=D.indexOf(me.inputSource);if(be===-1)return;const Ne=T[be];Ne!==void 0&&(Ne.update(me.inputSource,me.frame,c||s),Ne.dispatchEvent({type:me.type,data:me.inputSource}))}function q(){r.removeEventListener("select",$),r.removeEventListener("selectstart",$),r.removeEventListener("selectend",$),r.removeEventListener("squeeze",$),r.removeEventListener("squeezestart",$),r.removeEventListener("squeezeend",$),r.removeEventListener("end",q),r.removeEventListener("inputsourceschange",G);for(let me=0;me<T.length;me++){const be=D[me];be!==null&&(D[me]=null,T[me].disconnect(be))}W=null,O=null,x.reset();for(const me in v)delete v[me];e.setRenderTarget(M),m=null,p=null,f=null,r=null,A=null,ye.stop(),i.isPresenting=!1,e.setPixelRatio(U),e.setSize(C.width,C.height,!1),i.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(me){a=me,i.isPresenting===!0&&jt("WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(me){o=me,i.isPresenting===!0&&jt("WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||s},this.setReferenceSpace=function(me){c=me},this.getBaseLayer=function(){return p!==null?p:m},this.getBinding=function(){return f===null&&b&&(f=new XRWebGLBinding(r,n)),f},this.getFrame=function(){return y},this.getSession=function(){return r},this.setSession=async function(me){if(r=me,r!==null){if(M=e.getRenderTarget(),r.addEventListener("select",$),r.addEventListener("selectstart",$),r.addEventListener("selectend",$),r.addEventListener("squeeze",$),r.addEventListener("squeezestart",$),r.addEventListener("squeezeend",$),r.addEventListener("end",q),r.addEventListener("inputsourceschange",G),w.xrCompatible!==!0&&await n.makeXRCompatible(),U=e.getPixelRatio(),e.getSize(C),b&&"createProjectionLayer"in XRWebGLBinding.prototype){let Ne=null,he=null,Ae=null;w.depth&&(Ae=w.stencil?n.DEPTH24_STENCIL8:n.DEPTH_COMPONENT24,Ne=w.stencil?p0:h0,he=w.stencil?f0:af);const Be={colorFormat:n.RGBA8,depthFormat:Ae,scaleFactor:a};f=this.getBinding(),p=f.createProjectionLayer(Be),r.updateRenderState({layers:[p]}),e.setPixelRatio(1),e.setSize(p.textureWidth,p.textureHeight,!1),A=new of(p.textureWidth,p.textureHeight,{format:lo,type:zo,depthTexture:new kG(p.textureWidth,p.textureHeight,he,void 0,void 0,void 0,void 0,void 0,void 0,Ne),stencilBuffer:w.stencil,colorSpace:e.outputColorSpace,samples:w.antialias?4:0,resolveDepthBuffer:p.ignoreDepthValues===!1,resolveStencilBuffer:p.ignoreDepthValues===!1})}else{const Ne={antialias:w.antialias,alpha:!0,depth:w.depth,stencil:w.stencil,framebufferScaleFactor:a};m=new XRWebGLLayer(r,n,Ne),r.updateRenderState({baseLayer:m}),e.setPixelRatio(1),e.setSize(m.framebufferWidth,m.framebufferHeight,!1),A=new of(m.framebufferWidth,m.framebufferHeight,{format:lo,type:zo,colorSpace:e.outputColorSpace,stencilBuffer:w.stencil,resolveDepthBuffer:m.ignoreDepthValues===!1,resolveStencilBuffer:m.ignoreDepthValues===!1})}A.isXRRenderTarget=!0,this.setFoveation(l),c=null,s=await r.requestReferenceSpace(o),ye.setContext(r),ye.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(r!==null)return r.environmentBlendMode},this.getDepthTexture=function(){return x.getDepthTexture()};function G(me){for(let be=0;be<me.removed.length;be++){const Ne=me.removed[be],he=D.indexOf(Ne);he>=0&&(D[he]=null,T[he].disconnect(Ne))}for(let be=0;be<me.added.length;be++){const Ne=me.added[be];let he=D.indexOf(Ne);if(he===-1){for(let Be=0;Be<T.length;Be++)if(Be>=D.length){D.push(Ne),he=Be;break}else if(D[Be]===null){D[Be]=Ne,he=Be;break}if(he===-1)break}const Ae=T[he];Ae&&Ae.connect(Ne)}}const Y=new Ge,Q=new Ge;function se(me,be,Ne){Y.setFromMatrixPosition(be.matrixWorld),Q.setFromMatrixPosition(Ne.matrixWorld);const he=Y.distanceTo(Q),Ae=be.projectionMatrix.elements,Be=Ne.projectionMatrix.elements,le=Ae[14]/(Ae[10]-1),ct=Ae[14]/(Ae[10]+1),z=(Ae[9]+1)/Ae[5],V=(Ae[9]-1)/Ae[5],ne=(Ae[8]-1)/Ae[0],J=(Be[8]+1)/Be[0],ee=le*ne,ae=le*J,ie=he/(-ne+J),we=ie*-ne;if(be.matrixWorld.decompose(me.position,me.quaternion,me.scale),me.translateX(we),me.translateZ(ie),me.matrixWorld.compose(me.position,me.quaternion,me.scale),me.matrixWorldInverse.copy(me.matrixWorld).invert(),Ae[10]===-1)me.projectionMatrix.copy(be.projectionMatrix),me.projectionMatrixInverse.copy(be.projectionMatrixInverse);else{const ve=le+ie,F=ct+ie,L=ee-we,K=ae+(he-we),pe=z*ct/F*ve,xe=V*ct/F*ve;me.projectionMatrix.makePerspective(L,K,pe,xe,ve,F),me.projectionMatrixInverse.copy(me.projectionMatrix).invert()}}function H(me,be){be===null?me.matrixWorld.copy(me.matrix):me.matrixWorld.multiplyMatrices(be.matrixWorld,me.matrix),me.matrixWorldInverse.copy(me.matrixWorld).invert()}this.updateCamera=function(me){if(r===null)return;let be=me.near,Ne=me.far;x.texture!==null&&(x.depthNear>0&&(be=x.depthNear),x.depthFar>0&&(Ne=x.depthFar)),I.near=k.near=P.near=be,I.far=k.far=P.far=Ne,(W!==I.near||O!==I.far)&&(r.updateRenderState({depthNear:I.near,depthFar:I.far}),W=I.near,O=I.far),I.layers.mask=me.layers.mask|6,P.layers.mask=I.layers.mask&3,k.layers.mask=I.layers.mask&5;const he=me.parent,Ae=I.cameras;H(I,he);for(let Be=0;Be<Ae.length;Be++)H(Ae[Be],he);Ae.length===2?se(I,P,k):I.projectionMatrix.copy(P.projectionMatrix),X(me,I,he)};function X(me,be,Ne){Ne===null?me.matrix.copy(be.matrixWorld):(me.matrix.copy(Ne.matrixWorld),me.matrix.invert(),me.matrix.multiply(be.matrixWorld)),me.matrix.decompose(me.position,me.quaternion,me.scale),me.updateMatrixWorld(!0),me.projectionMatrix.copy(be.projectionMatrix),me.projectionMatrixInverse.copy(be.projectionMatrixInverse),me.isPerspectiveCamera&&(me.fov=dR*2*Math.atan(1/me.projectionMatrix.elements[5]),me.zoom=1)}this.getCamera=function(){return I},this.getFoveation=function(){if(!(p===null&&m===null))return l},this.setFoveation=function(me){l=me,p!==null&&(p.fixedFoveation=me),m!==null&&m.fixedFoveation!==void 0&&(m.fixedFoveation=me)},this.hasDepthSensing=function(){return x.texture!==null},this.getDepthSensingMesh=function(){return x.getMesh(I)},this.getCameraTexture=function(me){return v[me]};let re=null;function ce(me,be){if(d=be.getViewerPose(c||s),y=be,d!==null){const Ne=d.views;m!==null&&(e.setRenderTargetFramebuffer(A,m.framebuffer),e.setRenderTarget(A));let he=!1;Ne.length!==I.cameras.length&&(I.cameras.length=0,he=!0);for(let ct=0;ct<Ne.length;ct++){const z=Ne[ct];let V=null;if(m!==null)V=m.getViewport(z);else{const J=f.getViewSubImage(p,z);V=J.viewport,ct===0&&(e.setRenderTargetTextures(A,J.colorTexture,J.depthStencilTexture),e.setRenderTarget(A))}let ne=B[ct];ne===void 0&&(ne=new Rs,ne.layers.enable(ct),ne.viewport=new Li,B[ct]=ne),ne.matrix.fromArray(z.transform.matrix),ne.matrix.decompose(ne.position,ne.quaternion,ne.scale),ne.projectionMatrix.fromArray(z.projectionMatrix),ne.projectionMatrixInverse.copy(ne.projectionMatrix).invert(),ne.viewport.set(V.x,V.y,V.width,V.height),ct===0&&(I.matrix.copy(ne.matrix),I.matrix.decompose(I.position,I.quaternion,I.scale)),he===!0&&I.cameras.push(ne)}const Ae=r.enabledFeatures;if(Ae&&Ae.includes("depth-sensing")&&r.depthUsage=="gpu-optimized"&&b){f=i.getBinding();const ct=f.getDepthInformation(Ne[0]);ct&&ct.isValid&&ct.texture&&x.init(ct,r.renderState)}if(Ae&&Ae.includes("camera-access")&&b){e.state.unbindTexture(),f=i.getBinding();for(let ct=0;ct<Ne.length;ct++){const z=Ne[ct].camera;if(z){let V=v[z];V||(V=new IG,v[z]=V);const ne=f.getCameraImage(z);V.sourceTexture=ne}}}}for(let Ne=0;Ne<T.length;Ne++){const he=D[Ne],Ae=T[Ne];he!==null&&Ae!==void 0&&Ae.update(he,be,c||s)}re&&re(me,be),be.detectedPlanes&&i.dispatchEvent({type:"planesdetected",data:be}),y=null}const ye=new BG;ye.setAnimationLoop(ce),this.setAnimationLoop=function(me){re=me},this.dispose=function(){}}};const fd=new Ru,gde=new Bi;function vde(t,e){function n(x,v){x.matrixAutoUpdate===!0&&x.updateMatrix(),v.value.copy(x.matrix)}function i(x,v){v.color.getRGB(x.fogColor.value,DG(t)),v.isFog?(x.fogNear.value=v.near,x.fogFar.value=v.far):v.isFogExp2&&(x.fogDensity.value=v.density)}function r(x,v,w,M,A){v.isMeshBasicMaterial||v.isMeshLambertMaterial?a(x,v):v.isMeshToonMaterial?(a(x,v),f(x,v)):v.isMeshPhongMaterial?(a(x,v),d(x,v)):v.isMeshStandardMaterial?(a(x,v),p(x,v),v.isMeshPhysicalMaterial&&m(x,v,A)):v.isMeshMatcapMaterial?(a(x,v),y(x,v)):v.isMeshDepthMaterial?a(x,v):v.isMeshDistanceMaterial?(a(x,v),b(x,v)):v.isMeshNormalMaterial?a(x,v):v.isLineBasicMaterial?(s(x,v),v.isLineDashedMaterial&&o(x,v)):v.isPointsMaterial?l(x,v,w,M):v.isSpriteMaterial?c(x,v):v.isShadowMaterial?(x.color.value.copy(v.color),x.opacity.value=v.opacity):v.isShaderMaterial&&(v.uniformsNeedUpdate=!1)}function a(x,v){x.opacity.value=v.opacity,v.color&&x.diffuse.value.copy(v.color),v.emissive&&x.emissive.value.copy(v.emissive).multiplyScalar(v.emissiveIntensity),v.map&&(x.map.value=v.map,n(v.map,x.mapTransform)),v.alphaMap&&(x.alphaMap.value=v.alphaMap,n(v.alphaMap,x.alphaMapTransform)),v.bumpMap&&(x.bumpMap.value=v.bumpMap,n(v.bumpMap,x.bumpMapTransform),x.bumpScale.value=v.bumpScale,v.side===Pa&&(x.bumpScale.value*=-1)),v.normalMap&&(x.normalMap.value=v.normalMap,n(v.normalMap,x.normalMapTransform),x.normalScale.value.copy(v.normalScale),v.side===Pa&&x.normalScale.value.negate()),v.displacementMap&&(x.displacementMap.value=v.displacementMap,n(v.displacementMap,x.displacementMapTransform),x.displacementScale.value=v.displacementScale,x.displacementBias.value=v.displacementBias),v.emissiveMap&&(x.emissiveMap.value=v.emissiveMap,n(v.emissiveMap,x.emissiveMapTransform)),v.specularMap&&(x.specularMap.value=v.specularMap,n(v.specularMap,x.specularMapTransform)),v.alphaTest>0&&(x.alphaTest.value=v.alphaTest);const w=e.get(v),M=w.envMap,A=w.envMapRotation;M&&(x.envMap.value=M,fd.copy(A),fd.x*=-1,fd.y*=-1,fd.z*=-1,M.isCubeTexture&&M.isRenderTargetTexture===!1&&(fd.y*=-1,fd.z*=-1),x.envMapRotation.value.setFromMatrix4(gde.makeRotationFromEuler(fd)),x.flipEnvMap.value=M.isCubeTexture&&M.isRenderTargetTexture===!1?-1:1,x.reflectivity.value=v.reflectivity,x.ior.value=v.ior,x.refractionRatio.value=v.refractionRatio),v.lightMap&&(x.lightMap.value=v.lightMap,x.lightMapIntensity.value=v.lightMapIntensity,n(v.lightMap,x.lightMapTransform)),v.aoMap&&(x.aoMap.value=v.aoMap,x.aoMapIntensity.value=v.aoMapIntensity,n(v.aoMap,x.aoMapTransform))}function s(x,v){x.diffuse.value.copy(v.color),x.opacity.value=v.opacity,v.map&&(x.map.value=v.map,n(v.map,x.mapTransform))}function o(x,v){x.dashSize.value=v.dashSize,x.totalSize.value=v.dashSize+v.gapSize,x.scale.value=v.scale}function l(x,v,w,M){x.diffuse.value.copy(v.color),x.opacity.value=v.opacity,x.size.value=v.size*w,x.scale.value=M*.5,v.map&&(x.map.value=v.map,n(v.map,x.uvTransform)),v.alphaMap&&(x.alphaMap.value=v.alphaMap,n(v.alphaMap,x.alphaMapTransform)),v.alphaTest>0&&(x.alphaTest.value=v.alphaTest)}function c(x,v){x.diffuse.value.copy(v.color),x.opacity.value=v.opacity,x.rotation.value=v.rotation,v.map&&(x.map.value=v.map,n(v.map,x.mapTransform)),v.alphaMap&&(x.alphaMap.value=v.alphaMap,n(v.alphaMap,x.alphaMapTransform)),v.alphaTest>0&&(x.alphaTest.value=v.alphaTest)}function d(x,v){x.specular.value.copy(v.specular),x.shininess.value=Math.max(v.shininess,1e-4)}function f(x,v){v.gradientMap&&(x.gradientMap.value=v.gradientMap)}function p(x,v){x.metalness.value=v.metalness,v.metalnessMap&&(x.metalnessMap.value=v.metalnessMap,n(v.metalnessMap,x.metalnessMapTransform)),x.roughness.value=v.roughness,v.roughnessMap&&(x.roughnessMap.value=v.roughnessMap,n(v.roughnessMap,x.roughnessMapTransform)),v.envMap&&(x.envMapIntensity.value=v.envMapIntensity)}function m(x,v,w){x.ior.value=v.ior,v.sheen>0&&(x.sheenColor.value.copy(v.sheenColor).multiplyScalar(v.sheen),x.sheenRoughness.value=v.sheenRoughness,v.sheenColorMap&&(x.sheenColorMap.value=v.sheenColorMap,n(v.sheenColorMap,x.sheenColorMapTransform)),v.sheenRoughnessMap&&(x.sheenRoughnessMap.value=v.sheenRoughnessMap,n(v.sheenRoughnessMap,x.sheenRoughnessMapTransform))),v.clearcoat>0&&(x.clearcoat.value=v.clearcoat,x.clearcoatRoughness.value=v.clearcoatRoughness,v.clearcoatMap&&(x.clearcoatMap.value=v.clearcoatMap,n(v.clearcoatMap,x.clearcoatMapTransform)),v.clearcoatRoughnessMap&&(x.clearcoatRoughnessMap.value=v.clearcoatRoughnessMap,n(v.clearcoatRoughnessMap,x.clearcoatRoughnessMapTransform)),v.clearcoatNormalMap&&(x.clearcoatNormalMap.value=v.clearcoatNormalMap,n(v.clearcoatNormalMap,x.clearcoatNormalMapTransform),x.clearcoatNormalScale.value.copy(v.clearcoatNormalScale),v.side===Pa&&x.clearcoatNormalScale.value.negate())),v.dispersion>0&&(x.dispersion.value=v.dispersion),v.iridescence>0&&(x.iridescence.value=v.iridescence,x.iridescenceIOR.value=v.iridescenceIOR,x.iridescenceThicknessMinimum.value=v.iridescenceThicknessRange[0],x.iridescenceThicknessMaximum.value=v.iridescenceThicknessRange[1],v.iridescenceMap&&(x.iridescenceMap.value=v.iridescenceMap,n(v.iridescenceMap,x.iridescenceMapTransform)),v.iridescenceThicknessMap&&(x.iridescenceThicknessMap.value=v.iridescenceThicknessMap,n(v.iridescenceThicknessMap,x.iridescenceThicknessMapTransform))),v.transmission>0&&(x.transmission.value=v.transmission,x.transmissionSamplerMap.value=w.texture,x.transmissionSamplerSize.value.set(w.width,w.height),v.transmissionMap&&(x.transmissionMap.value=v.transmissionMap,n(v.transmissionMap,x.transmissionMapTransform)),x.thickness.value=v.thickness,v.thicknessMap&&(x.thicknessMap.value=v.thicknessMap,n(v.thicknessMap,x.thicknessMapTransform)),x.attenuationDistance.value=v.attenuationDistance,x.attenuationColor.value.copy(v.attenuationColor)),v.anisotropy>0&&(x.anisotropyVector.value.set(v.anisotropy*Math.cos(v.anisotropyRotation),v.anisotropy*Math.sin(v.anisotropyRotation)),v.anisotropyMap&&(x.anisotropyMap.value=v.anisotropyMap,n(v.anisotropyMap,x.anisotropyMapTransform))),x.specularIntensity.value=v.specularIntensity,x.specularColor.value.copy(v.specularColor),v.specularColorMap&&(x.specularColorMap.value=v.specularColorMap,n(v.specularColorMap,x.specularColorMapTransform)),v.specularIntensityMap&&(x.specularIntensityMap.value=v.specularIntensityMap,n(v.specularIntensityMap,x.specularIntensityMapTransform))}function y(x,v){v.matcap&&(x.matcap.value=v.matcap)}function b(x,v){const w=e.get(v).light;x.referencePosition.value.setFromMatrixPosition(w.matrixWorld),x.nearDistance.value=w.shadow.camera.near,x.farDistance.value=w.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function xde(t,e,n,i){let r={},a={},s=[];const o=t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS);function l(w,M){const A=M.program;i.uniformBlockBinding(w,A)}function c(w,M){let A=r[w.id];A===void 0&&(y(w),A=d(w),r[w.id]=A,w.addEventListener("dispose",x));const T=M.program;i.updateUBOMapping(w,T);const D=e.render.frame;a[w.id]!==D&&(p(w),a[w.id]=D)}function d(w){const M=f();w.__bindingPointIndex=M;const A=t.createBuffer(),T=w.__size,D=w.usage;return t.bindBuffer(t.UNIFORM_BUFFER,A),t.bufferData(t.UNIFORM_BUFFER,T,D),t.bindBuffer(t.UNIFORM_BUFFER,null),t.bindBufferBase(t.UNIFORM_BUFFER,M,A),A}function f(){for(let w=0;w<o;w++)if(s.indexOf(w)===-1)return s.push(w),w;return wi("WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function p(w){const M=r[w.id],A=w.uniforms,T=w.__cache;t.bindBuffer(t.UNIFORM_BUFFER,M);for(let D=0,C=A.length;D<C;D++){const U=Array.isArray(A[D])?A[D]:[A[D]];for(let P=0,k=U.length;P<k;P++){const B=U[P];if(m(B,D,P,T)===!0){const I=B.__offset,W=Array.isArray(B.value)?B.value:[B.value];let O=0;for(let $=0;$<W.length;$++){const q=W[$],G=b(q);typeof q=="number"||typeof q=="boolean"?(B.__data[0]=q,t.bufferSubData(t.UNIFORM_BUFFER,I+O,B.__data)):q.isMatrix3?(B.__data[0]=q.elements[0],B.__data[1]=q.elements[1],B.__data[2]=q.elements[2],B.__data[3]=0,B.__data[4]=q.elements[3],B.__data[5]=q.elements[4],B.__data[6]=q.elements[5],B.__data[7]=0,B.__data[8]=q.elements[6],B.__data[9]=q.elements[7],B.__data[10]=q.elements[8],B.__data[11]=0):(q.toArray(B.__data,O),O+=G.storage/Float32Array.BYTES_PER_ELEMENT)}t.bufferSubData(t.UNIFORM_BUFFER,I,B.__data)}}}t.bindBuffer(t.UNIFORM_BUFFER,null)}function m(w,M,A,T){const D=w.value,C=M+"_"+A;if(T[C]===void 0)return typeof D=="number"||typeof D=="boolean"?T[C]=D:T[C]=D.clone(),!0;{const U=T[C];if(typeof D=="number"||typeof D=="boolean"){if(U!==D)return T[C]=D,!0}else if(U.equals(D)===!1)return U.copy(D),!0}return!1}function y(w){const M=w.uniforms;let A=0;const T=16;for(let C=0,U=M.length;C<U;C++){const P=Array.isArray(M[C])?M[C]:[M[C]];for(let k=0,B=P.length;k<B;k++){const I=P[k],W=Array.isArray(I.value)?I.value:[I.value];for(let O=0,$=W.length;O<$;O++){const q=W[O],G=b(q),Y=A%T,Q=Y%G.boundary,se=Y+Q;A+=Q,se!==0&&T-se<G.storage&&(A+=T-se),I.__data=new Float32Array(G.storage/Float32Array.BYTES_PER_ELEMENT),I.__offset=A,A+=G.storage}}}const D=A%T;return D>0&&(A+=T-D),w.__size=A,w.__cache={},this}function b(w){const M={boundary:0,storage:0};return typeof w=="number"||typeof w=="boolean"?(M.boundary=4,M.storage=4):w.isVector2?(M.boundary=8,M.storage=8):w.isVector3||w.isColor?(M.boundary=16,M.storage=12):w.isVector4?(M.boundary=16,M.storage=16):w.isMatrix3?(M.boundary=48,M.storage=48):w.isMatrix4?(M.boundary=64,M.storage=64):w.isTexture?jt("WebGLRenderer: Texture samplers can not be part of an uniforms group."):jt("WebGLRenderer: Unsupported uniform value type.",w),M}function x(w){const M=w.target;M.removeEventListener("dispose",x);const A=s.indexOf(M.__bindingPointIndex);s.splice(A,1),t.deleteBuffer(r[M.id]),delete r[M.id],delete a[M.id]}function v(){for(const w in r)t.deleteBuffer(r[w]);s=[],r={},a={}}return{bind:l,update:c,dispose:v}}const yde=new Uint16Array([11481,15204,11534,15171,11808,15015,12385,14843,12894,14716,13396,14600,13693,14483,13976,14366,14237,14171,14405,13961,14511,13770,14605,13598,14687,13444,14760,13305,14822,13066,14876,12857,14923,12675,14963,12517,14997,12379,15025,12230,15049,12023,15070,11843,15086,11687,15100,11551,15111,11433,15120,11330,15127,11217,15132,11060,15135,10922,15138,10801,15139,10695,15139,10600,13012,14923,13020,14917,13064,14886,13176,14800,13349,14666,13513,14526,13724,14398,13960,14230,14200,14020,14383,13827,14488,13651,14583,13491,14667,13348,14740,13132,14803,12908,14856,12713,14901,12542,14938,12394,14968,12241,14992,12017,15010,11822,15024,11654,15034,11507,15041,11380,15044,11269,15044,11081,15042,10913,15037,10764,15031,10635,15023,10520,15014,10419,15003,10330,13657,14676,13658,14673,13670,14660,13698,14622,13750,14547,13834,14442,13956,14317,14112,14093,14291,13889,14407,13704,14499,13538,14586,13389,14664,13201,14733,12966,14792,12758,14842,12577,14882,12418,14915,12272,14940,12033,14959,11826,14972,11646,14980,11490,14983,11355,14983,11212,14979,11008,14971,10830,14961,10675,14950,10540,14936,10420,14923,10315,14909,10204,14894,10041,14089,14460,14090,14459,14096,14452,14112,14431,14141,14388,14186,14305,14252,14130,14341,13941,14399,13756,14467,13585,14539,13430,14610,13272,14677,13026,14737,12808,14790,12617,14833,12449,14869,12303,14896,12065,14916,11845,14929,11655,14937,11490,14939,11347,14936,11184,14930,10970,14921,10783,14912,10621,14900,10480,14885,10356,14867,10247,14848,10062,14827,9894,14805,9745,14400,14208,14400,14206,14402,14198,14406,14174,14415,14122,14427,14035,14444,13913,14469,13767,14504,13613,14548,13463,14598,13324,14651,13082,14704,12858,14752,12658,14795,12483,14831,12330,14860,12106,14881,11875,14895,11675,14903,11501,14905,11351,14903,11178,14900,10953,14892,10757,14880,10589,14865,10442,14847,10313,14827,10162,14805,9965,14782,9792,14757,9642,14731,9507,14562,13883,14562,13883,14563,13877,14566,13862,14570,13830,14576,13773,14584,13689,14595,13582,14613,13461,14637,13336,14668,13120,14704,12897,14741,12695,14776,12516,14808,12358,14835,12150,14856,11910,14870,11701,14878,11519,14882,11361,14884,11187,14880,10951,14871,10748,14858,10572,14842,10418,14823,10286,14801,10099,14777,9897,14751,9722,14725,9567,14696,9430,14666,9309,14702,13604,14702,13604,14702,13600,14703,13591,14705,13570,14707,13533,14709,13477,14712,13400,14718,13305,14727,13106,14743,12907,14762,12716,14784,12539,14807,12380,14827,12190,14844,11943,14855,11727,14863,11539,14870,11376,14871,11204,14868,10960,14858,10748,14845,10565,14829,10406,14809,10269,14786,10058,14761,9852,14734,9671,14705,9512,14674,9374,14641,9253,14608,9076,14821,13366,14821,13365,14821,13364,14821,13358,14821,13344,14821,13320,14819,13252,14817,13145,14815,13011,14814,12858,14817,12698,14823,12539,14832,12389,14841,12214,14850,11968,14856,11750,14861,11558,14866,11390,14867,11226,14862,10972,14853,10754,14840,10565,14823,10401,14803,10259,14780,10032,14754,9820,14725,9635,14694,9473,14661,9333,14627,9203,14593,8988,14557,8798,14923,13014,14922,13014,14922,13012,14922,13004,14920,12987,14919,12957,14915,12907,14909,12834,14902,12738,14894,12623,14888,12498,14883,12370,14880,12203,14878,11970,14875,11759,14873,11569,14874,11401,14872,11243,14865,10986,14855,10762,14842,10568,14825,10401,14804,10255,14781,10017,14754,9799,14725,9611,14692,9445,14658,9301,14623,9139,14587,8920,14548,8729,14509,8562,15008,12672,15008,12672,15008,12671,15007,12667,15005,12656,15001,12637,14997,12605,14989,12556,14978,12490,14966,12407,14953,12313,14940,12136,14927,11934,14914,11742,14903,11563,14896,11401,14889,11247,14879,10992,14866,10767,14851,10570,14833,10400,14812,10252,14789,10007,14761,9784,14731,9592,14698,9424,14663,9279,14627,9088,14588,8868,14548,8676,14508,8508,14467,8360,15080,12386,15080,12386,15079,12385,15078,12383,15076,12378,15072,12367,15066,12347,15057,12315,15045,12253,15030,12138,15012,11998,14993,11845,14972,11685,14951,11530,14935,11383,14920,11228,14904,10981,14887,10762,14870,10567,14850,10397,14827,10248,14803,9997,14774,9771,14743,9578,14710,9407,14674,9259,14637,9048,14596,8826,14555,8632,14514,8464,14471,8317,14427,8182,15139,12008,15139,12008,15138,12008,15137,12007,15135,12003,15130,11990,15124,11969,15115,11929,15102,11872,15086,11794,15064,11693,15041,11581,15013,11459,14987,11336,14966,11170,14944,10944,14921,10738,14898,10552,14875,10387,14850,10239,14824,9983,14794,9758,14762,9563,14728,9392,14692,9244,14653,9014,14611,8791,14569,8597,14526,8427,14481,8281,14436,8110,14391,7885,15188,11617,15188,11617,15187,11617,15186,11618,15183,11617,15179,11612,15173,11601,15163,11581,15150,11546,15133,11495,15110,11427,15083,11346,15051,11246,15024,11057,14996,10868,14967,10687,14938,10517,14911,10362,14882,10206,14853,9956,14821,9737,14787,9543,14752,9375,14715,9228,14675,8980,14632,8760,14589,8565,14544,8395,14498,8248,14451,8049,14404,7824,14357,7630,15228,11298,15228,11298,15227,11299,15226,11301,15223,11303,15219,11302,15213,11299,15204,11290,15191,11271,15174,11217,15150,11129,15119,11015,15087,10886,15057,10744,15024,10599,14990,10455,14957,10318,14924,10143,14891,9911,14856,9701,14820,9516,14782,9352,14744,9200,14703,8946,14659,8725,14615,8533,14568,8366,14521,8220,14472,7992,14423,7770,14374,7578,14315,7408,15260,10819,15260,10819,15259,10822,15258,10826,15256,10832,15251,10836,15246,10841,15237,10838,15225,10821,15207,10788,15183,10734,15151,10660,15120,10571,15087,10469,15049,10359,15012,10249,14974,10041,14937,9837,14900,9647,14860,9475,14820,9320,14779,9147,14736,8902,14691,8688,14646,8499,14598,8335,14549,8189,14499,7940,14448,7720,14397,7529,14347,7363,14256,7218,15285,10410,15285,10411,15285,10413,15284,10418,15282,10425,15278,10434,15272,10442,15264,10449,15252,10445,15235,10433,15210,10403,15179,10358,15149,10301,15113,10218,15073,10059,15033,9894,14991,9726,14951,9565,14909,9413,14865,9273,14822,9073,14777,8845,14730,8641,14682,8459,14633,8300,14583,8129,14531,7883,14479,7670,14426,7482,14373,7321,14305,7176,14201,6939,15305,9939,15305,9940,15305,9945,15304,9955,15302,9967,15298,9989,15293,10010,15286,10033,15274,10044,15258,10045,15233,10022,15205,9975,15174,9903,15136,9808,15095,9697,15053,9578,15009,9451,14965,9327,14918,9198,14871,8973,14825,8766,14775,8579,14725,8408,14675,8259,14622,8058,14569,7821,14515,7615,14460,7435,14405,7276,14350,7108,14256,6866,14149,6653,15321,9444,15321,9445,15321,9448,15320,9458,15317,9470,15314,9490,15310,9515,15302,9540,15292,9562,15276,9579,15251,9577,15226,9559,15195,9519,15156,9463,15116,9389,15071,9304,15025,9208,14978,9023,14927,8838,14878,8661,14827,8496,14774,8344,14722,8206,14667,7973,14612,7749,14556,7555,14499,7382,14443,7229,14385,7025,14322,6791,14210,6588,14100,6409,15333,8920,15333,8921,15332,8927,15332,8943,15329,8965,15326,9002,15322,9048,15316,9106,15307,9162,15291,9204,15267,9221,15244,9221,15212,9196,15175,9134,15133,9043,15088,8930,15040,8801,14990,8665,14938,8526,14886,8391,14830,8261,14775,8087,14719,7866,14661,7664,14603,7482,14544,7322,14485,7178,14426,6936,14367,6713,14281,6517,14166,6348,14054,6198,15341,8360,15341,8361,15341,8366,15341,8379,15339,8399,15336,8431,15332,8473,15326,8527,15318,8585,15302,8632,15281,8670,15258,8690,15227,8690,15191,8664,15149,8612,15104,8543,15055,8456,15001,8360,14948,8259,14892,8122,14834,7923,14776,7734,14716,7558,14656,7397,14595,7250,14534,7070,14472,6835,14410,6628,14350,6443,14243,6283,14125,6135,14010,5889,15348,7715,15348,7717,15348,7725,15347,7745,15345,7780,15343,7836,15339,7905,15334,8e3,15326,8103,15310,8193,15293,8239,15270,8270,15240,8287,15204,8283,15163,8260,15118,8223,15067,8143,15014,8014,14958,7873,14899,7723,14839,7573,14778,7430,14715,7293,14652,7164,14588,6931,14524,6720,14460,6531,14396,6362,14330,6210,14207,6015,14086,5781,13969,5576,15352,7114,15352,7116,15352,7128,15352,7159,15350,7195,15348,7237,15345,7299,15340,7374,15332,7457,15317,7544,15301,7633,15280,7703,15251,7754,15216,7775,15176,7767,15131,7733,15079,7670,15026,7588,14967,7492,14906,7387,14844,7278,14779,7171,14714,6965,14648,6770,14581,6587,14515,6420,14448,6269,14382,6123,14299,5881,14172,5665,14049,5477,13929,5310,15355,6329,15355,6330,15355,6339,15355,6362,15353,6410,15351,6472,15349,6572,15344,6688,15337,6835,15323,6985,15309,7142,15287,7220,15260,7277,15226,7310,15188,7326,15142,7318,15090,7285,15036,7239,14976,7177,14914,7045,14849,6892,14782,6736,14714,6581,14645,6433,14576,6293,14506,6164,14438,5946,14369,5733,14270,5540,14140,5369,14014,5216,13892,5043,15357,5483,15357,5484,15357,5496,15357,5528,15356,5597,15354,5692,15351,5835,15347,6011,15339,6195,15328,6317,15314,6446,15293,6566,15268,6668,15235,6746,15197,6796,15152,6811,15101,6790,15046,6748,14985,6673,14921,6583,14854,6479,14785,6371,14714,6259,14643,6149,14571,5946,14499,5750,14428,5567,14358,5401,14242,5250,14109,5111,13980,4870,13856,4657,15359,4555,15359,4557,15358,4573,15358,4633,15357,4715,15355,4841,15353,5061,15349,5216,15342,5391,15331,5577,15318,5770,15299,5967,15274,6150,15243,6223,15206,6280,15161,6310,15111,6317,15055,6300,14994,6262,14928,6208,14860,6141,14788,5994,14715,5838,14641,5684,14566,5529,14492,5384,14418,5247,14346,5121,14216,4892,14079,4682,13948,4496,13822,4330,15359,3498,15359,3501,15359,3520,15359,3598,15358,3719,15356,3860,15355,4137,15351,4305,15344,4563,15334,4809,15321,5116,15303,5273,15280,5418,15250,5547,15214,5653,15170,5722,15120,5761,15064,5763,15002,5733,14935,5673,14865,5597,14792,5504,14716,5400,14640,5294,14563,5185,14486,5041,14410,4841,14335,4655,14191,4482,14051,4325,13918,4183,13790,4012,15360,2282,15360,2285,15360,2306,15360,2401,15359,2547,15357,2748,15355,3103,15352,3349,15345,3675,15336,4020,15324,4272,15307,4496,15285,4716,15255,4908,15220,5086,15178,5170,15128,5214,15072,5234,15010,5231,14943,5206,14871,5166,14796,5102,14718,4971,14639,4833,14559,4687,14480,4541,14402,4401,14315,4268,14167,4142,14025,3958,13888,3747,13759,3556,15360,923,15360,925,15360,946,15360,1052,15359,1214,15357,1494,15356,1892,15352,2274,15346,2663,15338,3099,15326,3393,15309,3679,15288,3980,15260,4183,15226,4325,15185,4437,15136,4517,15080,4570,15018,4591,14950,4581,14877,4545,14800,4485,14720,4411,14638,4325,14556,4231,14475,4136,14395,3988,14297,3803,14145,3628,13999,3465,13861,3314,13729,3177,15360,263,15360,264,15360,272,15360,325,15359,407,15358,548,15356,780,15352,1144,15347,1580,15339,2099,15328,2425,15312,2795,15292,3133,15264,3329,15232,3517,15191,3689,15143,3819,15088,3923,15025,3978,14956,3999,14882,3979,14804,3931,14722,3855,14639,3756,14554,3645,14470,3529,14388,3409,14279,3289,14124,3173,13975,3055,13834,2848,13701,2658,15360,49,15360,49,15360,52,15360,75,15359,111,15358,201,15356,283,15353,519,15348,726,15340,1045,15329,1415,15314,1795,15295,2173,15269,2410,15237,2649,15197,2866,15150,3054,15095,3140,15032,3196,14963,3228,14888,3236,14808,3224,14725,3191,14639,3146,14553,3088,14466,2976,14382,2836,14262,2692,14103,2549,13952,2409,13808,2278,13674,2154,15360,4,15360,4,15360,4,15360,13,15359,33,15358,59,15357,112,15353,199,15348,302,15341,456,15331,628,15316,827,15297,1082,15272,1332,15241,1601,15202,1851,15156,2069,15101,2172,15039,2256,14970,2314,14894,2348,14813,2358,14728,2344,14640,2311,14551,2263,14463,2203,14376,2133,14247,2059,14084,1915,13930,1761,13784,1609,13648,1464,15360,0,15360,0,15360,0,15360,3,15359,18,15358,26,15357,53,15354,80,15348,97,15341,165,15332,238,15318,326,15299,427,15275,529,15245,654,15207,771,15161,885,15108,994,15046,1089,14976,1170,14900,1229,14817,1266,14731,1284,14641,1282,14550,1260,14460,1223,14370,1174,14232,1116,14066,1050,13909,981,13761,910,13623,839]);let yl=null;function bde(){return yl===null&&(yl=new bse(yde,32,32,LP,Xp),yl.minFilter=Ls,yl.magFilter=Ls,yl.wrapS=Ul,yl.wrapT=Ul,yl.generateMipmaps=!1,yl.needsUpdate=!0),yl}let _de=class{constructor(e={}){const{canvas:n=$ae(),context:i=null,depth:r=!0,stencil:a=!1,alpha:s=!1,antialias:o=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:d="default",failIfMajorPerformanceCaveat:f=!1,reversedDepthBuffer:p=!1}=e;this.isWebGLRenderer=!0;let m;if(i!==null){if(typeof WebGLRenderingContext<"u"&&i instanceof WebGLRenderingContext)throw new Error("THREE.WebGLRenderer: WebGL 1 is not supported since r163.");m=i.getContextAttributes().alpha}else m=s;const y=new Set([IP,kP,OP]),b=new Set([zo,af,d0,f0,DP,NP]),x=new Uint32Array(4),v=new Int32Array(4);let w=null,M=null;const A=[],T=[];this.domElement=n,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=yu,this.toneMappingExposure=1,this.transmissionResolutionScale=1;const D=this;let C=!1;this._outputColorSpace=As;let U=0,P=0,k=null,B=-1,I=null;const W=new Li,O=new Li;let $=null;const q=new dn(0);let G=0,Y=n.width,Q=n.height,se=1,H=null,X=null;const re=new Li(0,0,Y,Q),ce=new Li(0,0,Y,Q);let ye=!1;const me=new jP;let be=!1,Ne=!1;const he=new Bi,Ae=new Ge,Be=new Li,le={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};let ct=!1;function z(){return k===null?se:1}let V=i;function ne(Z,_e){return n.getContext(Z,_e)}try{const Z={alpha:!0,depth:r,stencil:a,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:d,failIfMajorPerformanceCaveat:f};if("setAttribute"in n&&n.setAttribute("data-engine",`three.js r${CP}`),n.addEventListener("webglcontextlost",Ee,!1),n.addEventListener("webglcontextrestored",ge,!1),n.addEventListener("webglcontextcreationerror",je,!1),V===null){const _e="webgl2";if(V=ne(_e,Z),V===null)throw ne(_e)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}}catch(Z){throw Z("WebGLRenderer: "+Z.message),Z}let J,ee,ae,ie,we,ve,F,L,K,pe,xe,fe,Ke,ke,$e,rt,Ue,De,ut,et,Qe,st,ue,tt;function de(){J=new Rce(V),J.init(),st=new dde(V,J),ee=new bce(V,J,e,st),ae=new cde(V,J),ee.reversedDepthBuffer&&p&&ae.buffers.depth.setReversed(!0),ie=new Nce(V),we=new Kue,ve=new ude(V,J,ae,we,ee,st,ie),F=new Sce(D),L=new Cce(D),K=new Ise(V),ue=new xce(V,K),pe=new Pce(V,K,ie,ue),xe=new Lce(V,pe,K,ie),ut=new Oce(V,ee,ve),rt=new _ce(we),fe=new Yue(D,F,L,J,ee,ue,rt),Ke=new vde(D,we),ke=new Jue,$e=new rde(J),De=new vce(D,F,L,ae,xe,m,l),Ue=new ode(D,xe,ee),tt=new xde(V,ie,ee,ae),et=new yce(V,J,ie),Qe=new Dce(V,J,ie),ie.programs=fe.programs,D.capabilities=ee,D.extensions=J,D.properties=we,D.renderLists=ke,D.shadowMap=Ue,D.state=ae,D.info=ie}de();const Le=new mde(D,V);this.xr=Le,this.getContext=function(){return V},this.getContextAttributes=function(){return V.getContextAttributes()},this.forceContextLoss=function(){const Z=J.get("WEBGL_lose_context");Z&&Z.loseContext()},this.forceContextRestore=function(){const Z=J.get("WEBGL_lose_context");Z&&Z.restoreContext()},this.getPixelRatio=function(){return se},this.setPixelRatio=function(Z){Z!==void 0&&(se=Z,this.setSize(Y,Q,!1))},this.getSize=function(Z){return Z.set(Y,Q)},this.setSize=function(Z,_e,Pe=!0){if(Le.isPresenting){jt("WebGLRenderer: Can't change size while VR device is presenting.");return}Y=Z,Q=_e,n.width=Math.floor(Z*se),n.height=Math.floor(_e*se),Pe===!0&&(n.style.width=Z+"px",n.style.height=_e+"px"),this.setViewport(0,0,Z,_e)},this.getDrawingBufferSize=function(Z){return Z.set(Y*se,Q*se).floor()},this.setDrawingBufferSize=function(Z,_e,Pe){Y=Z,Q=_e,se=Pe,n.width=Math.floor(Z*Pe),n.height=Math.floor(_e*Pe),this.setViewport(0,0,Z,_e)},this.getCurrentViewport=function(Z){return Z.copy(W)},this.getViewport=function(Z){return Z.copy(re)},this.setViewport=function(Z,_e,Pe,Re){Z.isVector4?re.set(Z.x,Z.y,Z.z,Z.w):re.set(Z,_e,Pe,Re),ae.viewport(W.copy(re).multiplyScalar(se).round())},this.getScissor=function(Z){return Z.copy(ce)},this.setScissor=function(Z,_e,Pe,Re){Z.isVector4?ce.set(Z.x,Z.y,Z.z,Z.w):ce.set(Z,_e,Pe,Re),ae.scissor(O.copy(ce).multiplyScalar(se).round())},this.getScissorTest=function(){return ye},this.setScissorTest=function(Z){ae.setScissorTest(ye=Z)},this.setOpaqueSort=function(Z){H=Z},this.setTransparentSort=function(Z){X=Z},this.getClearColor=function(Z){return Z.copy(De.getClearColor())},this.setClearColor=function(){De.setClearColor(...arguments)},this.getClearAlpha=function(){return De.getClearAlpha()},this.setClearAlpha=function(){De.setClearAlpha(...arguments)},this.clear=function(Z=!0,_e=!0,Pe=!0){let Re=0;if(Z){let Me=!1;if(k!==null){const Ze=k.texture.format;Me=y.has(Ze)}if(Me){const Ze=k.texture.type,ot=b.has(Ze),mt=De.getClearColor(),pt=De.getClearAlpha(),Rt=mt.r,bt=mt.g,dt=mt.b;ot?(x[0]=Rt,x[1]=bt,x[2]=dt,x[3]=pt,V.clearBufferuiv(V.COLOR,0,x)):(v[0]=Rt,v[1]=bt,v[2]=dt,v[3]=pt,V.clearBufferiv(V.COLOR,0,v))}else Re|=V.COLOR_BUFFER_BIT}_e&&(Re|=V.DEPTH_BUFFER_BIT),Pe&&(Re|=V.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),V.clear(Re)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){n.removeEventListener("webglcontextlost",Ee,!1),n.removeEventListener("webglcontextrestored",ge,!1),n.removeEventListener("webglcontextcreationerror",je,!1),De.dispose(),ke.dispose(),$e.dispose(),we.dispose(),F.dispose(),L.dispose(),xe.dispose(),ue.dispose(),tt.dispose(),fe.dispose(),Le.dispose(),Le.removeEventListener("sessionstart",zn),Le.removeEventListener("sessionend",cr),Gi.stop()};function Ee(Z){Z.preventDefault(),yF("WebGLRenderer: Context Lost."),C=!0}function ge(){yF("WebGLRenderer: Context Restored."),C=!1;const Z=ie.autoReset,_e=Ue.enabled,Pe=Ue.autoUpdate,Re=Ue.needsUpdate,Me=Ue.type;de(),ie.autoReset=Z,Ue.enabled=_e,Ue.autoUpdate=Pe,Ue.needsUpdate=Re,Ue.type=Me}function je(Z){wi("WebGLRenderer: A WebGL context could not be created. Reason: ",Z.statusMessage)}function at(Z){const _e=Z.target;_e.removeEventListener("dispose",at),vt(_e)}function vt(Z){Ct(Z),we.remove(Z)}function Ct(Z){const _e=we.get(Z).programs;_e!==void 0&&(_e.forEach(function(Pe){fe.releaseProgram(Pe)}),Z.isShaderMaterial&&fe.releaseShaderCache(Z))}this.renderBufferDirect=function(Z,_e,Pe,Re,Me,Ze){_e===null&&(_e=le);const ot=Me.isMesh&&Me.matrixWorld.determinant()<0,mt=oe(Z,_e,Pe,Re,Me);ae.setMaterial(Re,ot);let pt=Pe.index,Rt=1;if(Re.wireframe===!0){if(pt=pe.getWireframeAttribute(Pe),pt===void 0)return;Rt=2}const bt=Pe.drawRange,dt=Pe.attributes.position;let Bt=bt.start*Rt,Ot=(bt.start+bt.count)*Rt;Ze!==null&&(Bt=Math.max(Bt,Ze.start*Rt),Ot=Math.min(Ot,(Ze.start+Ze.count)*Rt)),pt!==null?(Bt=Math.max(Bt,0),Ot=Math.min(Ot,pt.count)):dt!=null&&(Bt=Math.max(Bt,0),Ot=Math.min(Ot,dt.count));const Xt=Ot-Bt;if(Xt<0||Xt===1/0)return;ue.setup(Me,Re,mt,Pe,pt);let nn,ln=et;if(pt!==null&&(nn=K.get(pt),ln=Qe,ln.setIndex(nn)),Me.isMesh)Re.wireframe===!0?(ae.setLineWidth(Re.wireframeLinewidth*z()),ln.setMode(V.LINES)):ln.setMode(V.TRIANGLES);else if(Me.isLine){let Nt=Re.linewidth;Nt===void 0&&(Nt=1),ae.setLineWidth(Nt*z()),Me.isLineSegments?ln.setMode(V.LINES):Me.isLineLoop?ln.setMode(V.LINE_LOOP):ln.setMode(V.LINE_STRIP)}else Me.isPoints?ln.setMode(V.POINTS):Me.isSprite&&ln.setMode(V.TRIANGLES);if(Me.isBatchedMesh)if(Me._multiDrawInstances!==null)m0("WebGLRenderer: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection."),ln.renderMultiDrawInstances(Me._multiDrawStarts,Me._multiDrawCounts,Me._multiDrawCount,Me._multiDrawInstances);else if(J.get("WEBGL_multi_draw"))ln.renderMultiDraw(Me._multiDrawStarts,Me._multiDrawCounts,Me._multiDrawCount);else{const Nt=Me._multiDrawStarts,Vt=Me._multiDrawCounts,$t=Me._multiDrawCount,ui=pt?K.get(pt).bytesPerElement:1,yi=we.get(Re).currentProgram.getUniforms();for(let Sn=0;Sn<$t;Sn++)yi.setValue(V,"_gl_DrawID",Sn),ln.render(Nt[Sn]/ui,Vt[Sn])}else if(Me.isInstancedMesh)ln.renderInstances(Bt,Xt,Me.count);else if(Pe.isInstancedBufferGeometry){const Nt=Pe._maxInstanceCount!==void 0?Pe._maxInstanceCount:1/0,Vt=Math.min(Pe.instanceCount,Nt);ln.renderInstances(Bt,Xt,Vt)}else ln.render(Bt,Xt)};function en(Z,_e,Pe){Z.transparent===!0&&Z.side===Do&&Z.forceSinglePass===!1?(Z.side=Pa,Z.needsUpdate=!0,xi(Z,_e,Pe),Z.side=Cu,Z.needsUpdate=!0,xi(Z,_e,Pe),Z.side=Do):xi(Z,_e,Pe)}this.compile=function(Z,_e,Pe=null){Pe===null&&(Pe=Z),M=$e.get(Pe),M.init(_e),T.push(M),Pe.traverseVisible(function(Me){Me.isLight&&Me.layers.test(_e.layers)&&(M.pushLight(Me),Me.castShadow&&M.pushShadow(Me))}),Z!==Pe&&Z.traverseVisible(function(Me){Me.isLight&&Me.layers.test(_e.layers)&&(M.pushLight(Me),Me.castShadow&&M.pushShadow(Me))}),M.setupLights();const Re=new Set;return Z.traverse(function(Me){if(!(Me.isMesh||Me.isPoints||Me.isLine||Me.isSprite))return;const Ze=Me.material;if(Ze)if(Array.isArray(Ze))for(let ot=0;ot<Ze.length;ot++){const mt=Ze[ot];en(mt,Pe,Me),Re.add(mt)}else en(Ze,Pe,Me),Re.add(Ze)}),M=T.pop(),Re},this.compileAsync=function(Z,_e,Pe=null){const Re=this.compile(Z,_e,Pe);return new Promise(Me=>{function Ze(){if(Re.forEach(function(ot){we.get(ot).currentProgram.isReady()&&Re.delete(ot)}),Re.size===0){Me(Z);return}setTimeout(Ze,10)}J.get("KHR_parallel_shader_compile")!==null?Ze():setTimeout(Ze,10)})};let Dt=null;function wn(Z){Dt&&Dt(Z)}function zn(){Gi.stop()}function cr(){Gi.start()}const Gi=new BG;Gi.setAnimationLoop(wn),typeof self<"u"&&Gi.setContext(self),this.setAnimationLoop=function(Z){Dt=Z,Le.setAnimationLoop(Z),Z===null?Gi.stop():Gi.start()},Le.addEventListener("sessionstart",zn),Le.addEventListener("sessionend",cr),this.render=function(Z,_e){if(_e!==void 0&&_e.isCamera!==!0){wi("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(C===!0)return;if(Z.matrixWorldAutoUpdate===!0&&Z.updateMatrixWorld(),_e.parent===null&&_e.matrixWorldAutoUpdate===!0&&_e.updateMatrixWorld(),Le.enabled===!0&&Le.isPresenting===!0&&(Le.cameraAutoUpdate===!0&&Le.updateCamera(_e),_e=Le.getCamera()),Z.isScene===!0&&Z.onBeforeRender(D,Z,_e,k),M=$e.get(Z,T.length),M.init(_e),T.push(M),he.multiplyMatrices(_e.projectionMatrix,_e.matrixWorldInverse),me.setFromProjectionMatrix(he,Oo,_e.reversedDepth),Ne=this.localClippingEnabled,be=rt.init(this.clippingPlanes,Ne),w=ke.get(Z,A.length),w.init(),A.push(w),Le.enabled===!0&&Le.isPresenting===!0){const Ze=D.xr.getDepthSensingMesh();Ze!==null&&ur(Ze,_e,-1/0,D.sortObjects)}ur(Z,_e,0,D.sortObjects),w.finish(),D.sortObjects===!0&&w.sort(H,X),ct=Le.enabled===!1||Le.isPresenting===!1||Le.hasDepthSensing()===!1,ct&&De.addToRenderList(w,Z),this.info.render.frame++,be===!0&&rt.beginShadows();const Pe=M.state.shadowsArray;Ue.render(Pe,Z,_e),be===!0&&rt.endShadows(),this.info.autoReset===!0&&this.info.reset();const Re=w.opaque,Me=w.transmissive;if(M.setupLights(),_e.isArrayCamera){const Ze=_e.cameras;if(Me.length>0)for(let ot=0,mt=Ze.length;ot<mt;ot++){const pt=Ze[ot];Hr(Re,Me,Z,pt)}ct&&De.render(Z);for(let ot=0,mt=Ze.length;ot<mt;ot++){const pt=Ze[ot];Er(w,Z,pt,pt.viewport)}}else Me.length>0&&Hr(Re,Me,Z,_e),ct&&De.render(Z),Er(w,Z,_e);k!==null&&P===0&&(ve.updateMultisampleRenderTarget(k),ve.updateRenderTargetMipmap(k)),Z.isScene===!0&&Z.onAfterRender(D,Z,_e),ue.resetDefaultState(),B=-1,I=null,T.pop(),T.length>0?(M=T[T.length-1],be===!0&&rt.setGlobalState(D.clippingPlanes,M.state.camera)):M=null,A.pop(),A.length>0?w=A[A.length-1]:w=null};function ur(Z,_e,Pe,Re){if(Z.visible===!1)return;if(Z.layers.test(_e.layers)){if(Z.isGroup)Pe=Z.renderOrder;else if(Z.isLOD)Z.autoUpdate===!0&&Z.update(_e);else if(Z.isLight)M.pushLight(Z),Z.castShadow&&M.pushShadow(Z);else if(Z.isSprite){if(!Z.frustumCulled||me.intersectsSprite(Z)){Re&&Be.setFromMatrixPosition(Z.matrixWorld).applyMatrix4(he);const ot=xe.update(Z),mt=Z.material;mt.visible&&w.push(Z,ot,mt,Pe,Be.z,null)}}else if((Z.isMesh||Z.isLine||Z.isPoints)&&(!Z.frustumCulled||me.intersectsObject(Z))){const ot=xe.update(Z),mt=Z.material;if(Re&&(Z.boundingSphere!==void 0?(Z.boundingSphere===null&&Z.computeBoundingSphere(),Be.copy(Z.boundingSphere.center)):(ot.boundingSphere===null&&ot.computeBoundingSphere(),Be.copy(ot.boundingSphere.center)),Be.applyMatrix4(Z.matrixWorld).applyMatrix4(he)),Array.isArray(mt)){const pt=ot.groups;for(let Rt=0,bt=pt.length;Rt<bt;Rt++){const dt=pt[Rt],Bt=mt[dt.materialIndex];Bt&&Bt.visible&&w.push(Z,ot,Bt,Pe,Be.z,dt)}}else mt.visible&&w.push(Z,ot,mt,Pe,Be.z,null)}}const Ze=Z.children;for(let ot=0,mt=Ze.length;ot<mt;ot++)ur(Ze[ot],_e,Pe,Re)}function Er(Z,_e,Pe,Re){const{opaque:Me,transmissive:Ze,transparent:ot}=Z;M.setupLightsView(Pe),be===!0&&rt.setGlobalState(D.clippingPlanes,Pe),Re&&ae.viewport(W.copy(Re)),Me.length>0&&Ai(Me,_e,Pe),Ze.length>0&&Ai(Ze,_e,Pe),ot.length>0&&Ai(ot,_e,Pe),ae.buffers.depth.setTest(!0),ae.buffers.depth.setMask(!0),ae.buffers.color.setMask(!0),ae.setPolygonOffset(!1)}function Hr(Z,_e,Pe,Re){if((Pe.isScene===!0?Pe.overrideMaterial:null)!==null)return;M.state.transmissionRenderTarget[Re.id]===void 0&&(M.state.transmissionRenderTarget[Re.id]=new of(1,1,{generateMipmaps:!0,type:J.has("EXT_color_buffer_half_float")||J.has("EXT_color_buffer_float")?Xp:zo,minFilter:Dd,samples:4,stencilBuffer:a,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:xn.workingColorSpace}));const Ze=M.state.transmissionRenderTarget[Re.id],ot=Re.viewport||W;Ze.setSize(ot.z*D.transmissionResolutionScale,ot.w*D.transmissionResolutionScale);const mt=D.getRenderTarget(),pt=D.getActiveCubeFace(),Rt=D.getActiveMipmapLevel();D.setRenderTarget(Ze),D.getClearColor(q),G=D.getClearAlpha(),G<1&&D.setClearColor(16777215,.5),D.clear(),ct&&De.render(Pe);const bt=D.toneMapping;D.toneMapping=yu;const dt=Re.viewport;if(Re.viewport!==void 0&&(Re.viewport=void 0),M.setupLightsView(Re),be===!0&&rt.setGlobalState(D.clippingPlanes,Re),Ai(Z,Pe,Re),ve.updateMultisampleRenderTarget(Ze),ve.updateRenderTargetMipmap(Ze),J.has("WEBGL_multisampled_render_to_texture")===!1){let Bt=!1;for(let Ot=0,Xt=_e.length;Ot<Xt;Ot++){const nn=_e[Ot],{object:ln,geometry:Nt,material:Vt,group:$t}=nn;if(Vt.side===Do&&ln.layers.test(Re.layers)){const ui=Vt.side;Vt.side=Pa,Vt.needsUpdate=!0,ri(ln,Pe,Re,Nt,Vt,$t),Vt.side=ui,Vt.needsUpdate=!0,Bt=!0}}Bt===!0&&(ve.updateMultisampleRenderTarget(Ze),ve.updateRenderTargetMipmap(Ze))}D.setRenderTarget(mt,pt,Rt),D.setClearColor(q,G),dt!==void 0&&(Re.viewport=dt),D.toneMapping=bt}function Ai(Z,_e,Pe){const Re=_e.isScene===!0?_e.overrideMaterial:null;for(let Me=0,Ze=Z.length;Me<Ze;Me++){const ot=Z[Me],{object:mt,geometry:pt,group:Rt}=ot;let bt=ot.material;bt.allowOverride===!0&&Re!==null&&(bt=Re),mt.layers.test(Pe.layers)&&ri(mt,_e,Pe,pt,bt,Rt)}}function ri(Z,_e,Pe,Re,Me,Ze){Z.onBeforeRender(D,_e,Pe,Re,Me,Ze),Z.modelViewMatrix.multiplyMatrices(Pe.matrixWorldInverse,Z.matrixWorld),Z.normalMatrix.getNormalMatrix(Z.modelViewMatrix),Me.onBeforeRender(D,_e,Pe,Re,Z,Ze),Me.transparent===!0&&Me.side===Do&&Me.forceSinglePass===!1?(Me.side=Pa,Me.needsUpdate=!0,D.renderBufferDirect(Pe,_e,Re,Me,Z,Ze),Me.side=Cu,Me.needsUpdate=!0,D.renderBufferDirect(Pe,_e,Re,Me,Z,Ze),Me.side=Do):D.renderBufferDirect(Pe,_e,Re,Me,Z,Ze),Z.onAfterRender(D,_e,Pe,Re,Me,Ze)}function xi(Z,_e,Pe){_e.isScene!==!0&&(_e=le);const Re=we.get(Z),Me=M.state.lights,Ze=M.state.shadowsArray,ot=Me.state.version,mt=fe.getParameters(Z,Me.state,Ze,_e,Pe),pt=fe.getProgramCacheKey(mt);let Rt=Re.programs;Re.environment=Z.isMeshStandardMaterial?_e.environment:null,Re.fog=_e.fog,Re.envMap=(Z.isMeshStandardMaterial?L:F).get(Z.envMap||Re.environment),Re.envMapRotation=Re.environment!==null&&Z.envMap===null?_e.environmentRotation:Z.envMapRotation,Rt===void 0&&(Z.addEventListener("dispose",at),Rt=new Map,Re.programs=Rt);let bt=Rt.get(pt);if(bt!==void 0){if(Re.currentProgram===bt&&Re.lightsStateVersion===ot)return mc(Z,mt),bt}else mt.uniforms=fe.getUniforms(Z),Z.onBeforeCompile(mt,D),bt=fe.acquireProgram(mt,pt),Rt.set(pt,bt),Re.uniforms=mt.uniforms;const dt=Re.uniforms;return(!Z.isShaderMaterial&&!Z.isRawShaderMaterial||Z.clipping===!0)&&(dt.clippingPlanes=rt.uniform),mc(Z,mt),Re.needsLights=qe(Z),Re.lightsStateVersion=ot,Re.needsLights&&(dt.ambientLightColor.value=Me.state.ambient,dt.lightProbe.value=Me.state.probe,dt.directionalLights.value=Me.state.directional,dt.directionalLightShadows.value=Me.state.directionalShadow,dt.spotLights.value=Me.state.spot,dt.spotLightShadows.value=Me.state.spotShadow,dt.rectAreaLights.value=Me.state.rectArea,dt.ltc_1.value=Me.state.rectAreaLTC1,dt.ltc_2.value=Me.state.rectAreaLTC2,dt.pointLights.value=Me.state.point,dt.pointLightShadows.value=Me.state.pointShadow,dt.hemisphereLights.value=Me.state.hemi,dt.directionalShadowMap.value=Me.state.directionalShadowMap,dt.directionalShadowMatrix.value=Me.state.directionalShadowMatrix,dt.spotShadowMap.value=Me.state.spotShadowMap,dt.spotLightMatrix.value=Me.state.spotLightMatrix,dt.spotLightMap.value=Me.state.spotLightMap,dt.pointShadowMap.value=Me.state.pointShadowMap,dt.pointShadowMatrix.value=Me.state.pointShadowMatrix),Re.currentProgram=bt,Re.uniformsList=null,bt}function $s(Z){if(Z.uniformsList===null){const _e=Z.currentProgram.getUniforms();Z.uniformsList=Ob.seqWithValue(_e.seq,Z.uniforms)}return Z.uniformsList}function mc(Z,_e){const Pe=we.get(Z);Pe.outputColorSpace=_e.outputColorSpace,Pe.batching=_e.batching,Pe.batchingColor=_e.batchingColor,Pe.instancing=_e.instancing,Pe.instancingColor=_e.instancingColor,Pe.instancingMorph=_e.instancingMorph,Pe.skinning=_e.skinning,Pe.morphTargets=_e.morphTargets,Pe.morphNormals=_e.morphNormals,Pe.morphColors=_e.morphColors,Pe.morphTargetsCount=_e.morphTargetsCount,Pe.numClippingPlanes=_e.numClippingPlanes,Pe.numIntersection=_e.numClipIntersection,Pe.vertexAlphas=_e.vertexAlphas,Pe.vertexTangents=_e.vertexTangents,Pe.toneMapping=_e.toneMapping}function oe(Z,_e,Pe,Re,Me){_e.isScene!==!0&&(_e=le),ve.resetTextureUnits();const Ze=_e.fog,ot=Re.isMeshStandardMaterial?_e.environment:null,mt=k===null?D.outputColorSpace:k.isXRRenderTarget===!0?k.texture.colorSpace:bp,pt=(Re.isMeshStandardMaterial?L:F).get(Re.envMap||ot),Rt=Re.vertexColors===!0&&!!Pe.attributes.color&&Pe.attributes.color.itemSize===4,bt=!!Pe.attributes.tangent&&(!!Re.normalMap||Re.anisotropy>0),dt=!!Pe.morphAttributes.position,Bt=!!Pe.morphAttributes.normal,Ot=!!Pe.morphAttributes.color;let Xt=yu;Re.toneMapped&&(k===null||k.isXRRenderTarget===!0)&&(Xt=D.toneMapping);const nn=Pe.morphAttributes.position||Pe.morphAttributes.normal||Pe.morphAttributes.color,ln=nn!==void 0?nn.length:0,Nt=we.get(Re),Vt=M.state.lights;if(be===!0&&(Ne===!0||Z!==I)){const fr=Z===I&&Re.id===B;rt.setState(Re,Z,fr)}let $t=!1;Re.version===Nt.__version?(Nt.needsLights&&Nt.lightsStateVersion!==Vt.state.version||Nt.outputColorSpace!==mt||Me.isBatchedMesh&&Nt.batching===!1||!Me.isBatchedMesh&&Nt.batching===!0||Me.isBatchedMesh&&Nt.batchingColor===!0&&Me.colorTexture===null||Me.isBatchedMesh&&Nt.batchingColor===!1&&Me.colorTexture!==null||Me.isInstancedMesh&&Nt.instancing===!1||!Me.isInstancedMesh&&Nt.instancing===!0||Me.isSkinnedMesh&&Nt.skinning===!1||!Me.isSkinnedMesh&&Nt.skinning===!0||Me.isInstancedMesh&&Nt.instancingColor===!0&&Me.instanceColor===null||Me.isInstancedMesh&&Nt.instancingColor===!1&&Me.instanceColor!==null||Me.isInstancedMesh&&Nt.instancingMorph===!0&&Me.morphTexture===null||Me.isInstancedMesh&&Nt.instancingMorph===!1&&Me.morphTexture!==null||Nt.envMap!==pt||Re.fog===!0&&Nt.fog!==Ze||Nt.numClippingPlanes!==void 0&&(Nt.numClippingPlanes!==rt.numPlanes||Nt.numIntersection!==rt.numIntersection)||Nt.vertexAlphas!==Rt||Nt.vertexTangents!==bt||Nt.morphTargets!==dt||Nt.morphNormals!==Bt||Nt.morphColors!==Ot||Nt.toneMapping!==Xt||Nt.morphTargetsCount!==ln)&&($t=!0):($t=!0,Nt.__version=Re.version);let ui=Nt.currentProgram;$t===!0&&(ui=xi(Re,_e,Me));let yi=!1,Sn=!1,Ws=!1;const Mn=ui.getUniforms(),dr=Nt.uniforms;if(ae.useProgram(ui.program)&&(yi=!0,Sn=!0,Ws=!0),Re.id!==B&&(B=Re.id,Sn=!0),yi||I!==Z){ae.buffers.depth.getReversed()&&Z.reversedDepth!==!0&&(Z._reversedDepth=!0,Z.updateProjectionMatrix()),Mn.setValue(V,"projectionMatrix",Z.projectionMatrix),Mn.setValue(V,"viewMatrix",Z.matrixWorldInverse);const Ar=Mn.map.cameraPosition;Ar!==void 0&&Ar.setValue(V,Ae.setFromMatrixPosition(Z.matrixWorld)),ee.logarithmicDepthBuffer&&Mn.setValue(V,"logDepthBufFC",2/(Math.log(Z.far+1)/Math.LN2)),(Re.isMeshPhongMaterial||Re.isMeshToonMaterial||Re.isMeshLambertMaterial||Re.isMeshBasicMaterial||Re.isMeshStandardMaterial||Re.isShaderMaterial)&&Mn.setValue(V,"isOrthographic",Z.isOrthographicCamera===!0),I!==Z&&(I=Z,Sn=!0,Ws=!0)}if(Me.isSkinnedMesh){Mn.setOptional(V,Me,"bindMatrix"),Mn.setOptional(V,Me,"bindMatrixInverse");const fr=Me.skeleton;fr&&(fr.boneTexture===null&&fr.computeBoneTexture(),Mn.setValue(V,"boneTexture",fr.boneTexture,ve))}Me.isBatchedMesh&&(Mn.setOptional(V,Me,"batchingTexture"),Mn.setValue(V,"batchingTexture",Me._matricesTexture,ve),Mn.setOptional(V,Me,"batchingIdTexture"),Mn.setValue(V,"batchingIdTexture",Me._indirectTexture,ve),Mn.setOptional(V,Me,"batchingColorTexture"),Me._colorsTexture!==null&&Mn.setValue(V,"batchingColorTexture",Me._colorsTexture,ve));const $i=Pe.morphAttributes;if(($i.position!==void 0||$i.normal!==void 0||$i.color!==void 0)&&ut.update(Me,Pe,ui),(Sn||Nt.receiveShadow!==Me.receiveShadow)&&(Nt.receiveShadow=Me.receiveShadow,Mn.setValue(V,"receiveShadow",Me.receiveShadow)),Re.isMeshGouraudMaterial&&Re.envMap!==null&&(dr.envMap.value=pt,dr.flipEnvMap.value=pt.isCubeTexture&&pt.isRenderTargetTexture===!1?-1:1),Re.isMeshStandardMaterial&&Re.envMap===null&&_e.environment!==null&&(dr.envMapIntensity.value=_e.environmentIntensity),dr.dfgLUT!==void 0&&(dr.dfgLUT.value=bde()),Sn&&(Mn.setValue(V,"toneMappingExposure",D.toneMappingExposure),Nt.needsLights&&Ie(dr,Ws),Ze&&Re.fog===!0&&Ke.refreshFogUniforms(dr,Ze),Ke.refreshMaterialUniforms(dr,Re,se,Q,M.state.transmissionRenderTarget[Z.id]),Ob.upload(V,$s(Nt),dr,ve)),Re.isShaderMaterial&&Re.uniformsNeedUpdate===!0&&(Ob.upload(V,$s(Nt),dr,ve),Re.uniformsNeedUpdate=!1),Re.isSpriteMaterial&&Mn.setValue(V,"center",Me.center),Mn.setValue(V,"modelViewMatrix",Me.modelViewMatrix),Mn.setValue(V,"normalMatrix",Me.normalMatrix),Mn.setValue(V,"modelMatrix",Me.matrixWorld),Re.isShaderMaterial||Re.isRawShaderMaterial){const fr=Re.uniformsGroups;for(let Ar=0,yo=fr.length;Ar<yo;Ar++){const Ko=fr[Ar];tt.update(Ko,ui),tt.bind(Ko,ui)}}return ui}function Ie(Z,_e){Z.ambientLightColor.needsUpdate=_e,Z.lightProbe.needsUpdate=_e,Z.directionalLights.needsUpdate=_e,Z.directionalLightShadows.needsUpdate=_e,Z.pointLights.needsUpdate=_e,Z.pointLightShadows.needsUpdate=_e,Z.spotLights.needsUpdate=_e,Z.spotLightShadows.needsUpdate=_e,Z.rectAreaLights.needsUpdate=_e,Z.hemisphereLights.needsUpdate=_e}function qe(Z){return Z.isMeshLambertMaterial||Z.isMeshToonMaterial||Z.isMeshPhongMaterial||Z.isMeshStandardMaterial||Z.isShadowMaterial||Z.isShaderMaterial&&Z.lights===!0}this.getActiveCubeFace=function(){return U},this.getActiveMipmapLevel=function(){return P},this.getRenderTarget=function(){return k},this.setRenderTargetTextures=function(Z,_e,Pe){const Re=we.get(Z);Re.__autoAllocateDepthBuffer=Z.resolveDepthBuffer===!1,Re.__autoAllocateDepthBuffer===!1&&(Re.__useRenderToTexture=!1),we.get(Z.texture).__webglTexture=_e,we.get(Z.depthTexture).__webglTexture=Re.__autoAllocateDepthBuffer?void 0:Pe,Re.__hasExternalTextures=!0},this.setRenderTargetFramebuffer=function(Z,_e){const Pe=we.get(Z);Pe.__webglFramebuffer=_e,Pe.__useDefaultFramebuffer=_e===void 0};const Xe=V.createFramebuffer();this.setRenderTarget=function(Z,_e=0,Pe=0){k=Z,U=_e,P=Pe;let Re=!0,Me=null,Ze=!1,ot=!1;if(Z){const pt=we.get(Z);if(pt.__useDefaultFramebuffer!==void 0)ae.bindFramebuffer(V.FRAMEBUFFER,null),Re=!1;else if(pt.__webglFramebuffer===void 0)ve.setupRenderTarget(Z);else if(pt.__hasExternalTextures)ve.rebindTextures(Z,we.get(Z.texture).__webglTexture,we.get(Z.depthTexture).__webglTexture);else if(Z.depthBuffer){const dt=Z.depthTexture;if(pt.__boundDepthTexture!==dt){if(dt!==null&&we.has(dt)&&(Z.width!==dt.image.width||Z.height!==dt.image.height))throw new Error("WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.");ve.setupDepthRenderbuffer(Z)}}const Rt=Z.texture;(Rt.isData3DTexture||Rt.isDataArrayTexture||Rt.isCompressedArrayTexture)&&(ot=!0);const bt=we.get(Z).__webglFramebuffer;Z.isWebGLCubeRenderTarget?(Array.isArray(bt[_e])?Me=bt[_e][Pe]:Me=bt[_e],Ze=!0):Z.samples>0&&ve.useMultisampledRTT(Z)===!1?Me=we.get(Z).__webglMultisampledFramebuffer:Array.isArray(bt)?Me=bt[Pe]:Me=bt,W.copy(Z.viewport),O.copy(Z.scissor),$=Z.scissorTest}else W.copy(re).multiplyScalar(se).floor(),O.copy(ce).multiplyScalar(se).floor(),$=ye;if(Pe!==0&&(Me=Xe),ae.bindFramebuffer(V.FRAMEBUFFER,Me)&&Re&&ae.drawBuffers(Z,Me),ae.viewport(W),ae.scissor(O),ae.setScissorTest($),Ze){const pt=we.get(Z.texture);V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_CUBE_MAP_POSITIVE_X+_e,pt.__webglTexture,Pe)}else if(ot){const pt=_e;for(let Rt=0;Rt<Z.textures.length;Rt++){const bt=we.get(Z.textures[Rt]);V.framebufferTextureLayer(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0+Rt,bt.__webglTexture,Pe,pt)}}else if(Z!==null&&Pe!==0){const pt=we.get(Z.texture);V.framebufferTexture2D(V.FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_2D,pt.__webglTexture,Pe)}B=-1},this.readRenderTargetPixels=function(Z,_e,Pe,Re,Me,Ze,ot,mt=0){if(!(Z&&Z.isWebGLRenderTarget)){wi("WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let pt=we.get(Z).__webglFramebuffer;if(Z.isWebGLCubeRenderTarget&&ot!==void 0&&(pt=pt[ot]),pt){ae.bindFramebuffer(V.FRAMEBUFFER,pt);try{const Rt=Z.textures[mt],bt=Rt.format,dt=Rt.type;if(!ee.textureFormatReadable(bt)){wi("WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}if(!ee.textureTypeReadable(dt)){wi("WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}_e>=0&&_e<=Z.width-Re&&Pe>=0&&Pe<=Z.height-Me&&(Z.textures.length>1&&V.readBuffer(V.COLOR_ATTACHMENT0+mt),V.readPixels(_e,Pe,Re,Me,st.convert(bt),st.convert(dt),Ze))}finally{const Rt=k!==null?we.get(k).__webglFramebuffer:null;ae.bindFramebuffer(V.FRAMEBUFFER,Rt)}}},this.readRenderTargetPixelsAsync=async function(Z,_e,Pe,Re,Me,Ze,ot,mt=0){if(!(Z&&Z.isWebGLRenderTarget))throw new Error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let pt=we.get(Z).__webglFramebuffer;if(Z.isWebGLCubeRenderTarget&&ot!==void 0&&(pt=pt[ot]),pt)if(_e>=0&&_e<=Z.width-Re&&Pe>=0&&Pe<=Z.height-Me){ae.bindFramebuffer(V.FRAMEBUFFER,pt);const Rt=Z.textures[mt],bt=Rt.format,dt=Rt.type;if(!ee.textureFormatReadable(bt))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.");if(!ee.textureTypeReadable(dt))throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.");const Bt=V.createBuffer();V.bindBuffer(V.PIXEL_PACK_BUFFER,Bt),V.bufferData(V.PIXEL_PACK_BUFFER,Ze.byteLength,V.STREAM_READ),Z.textures.length>1&&V.readBuffer(V.COLOR_ATTACHMENT0+mt),V.readPixels(_e,Pe,Re,Me,st.convert(bt),st.convert(dt),0);const Ot=k!==null?we.get(k).__webglFramebuffer:null;ae.bindFramebuffer(V.FRAMEBUFFER,Ot);const Xt=V.fenceSync(V.SYNC_GPU_COMMANDS_COMPLETE,0);return V.flush(),await Wae(V,Xt,4),V.bindBuffer(V.PIXEL_PACK_BUFFER,Bt),V.getBufferSubData(V.PIXEL_PACK_BUFFER,0,Ze),V.deleteBuffer(Bt),V.deleteSync(Xt),Ze}else throw new Error("THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.")},this.copyFramebufferToTexture=function(Z,_e=null,Pe=0){const Re=Math.pow(2,-Pe),Me=Math.floor(Z.image.width*Re),Ze=Math.floor(Z.image.height*Re),ot=_e!==null?_e.x:0,mt=_e!==null?_e.y:0;ve.setTexture2D(Z,0),V.copyTexSubImage2D(V.TEXTURE_2D,Pe,0,0,ot,mt,Me,Ze),ae.unbindTexture()};const We=V.createFramebuffer(),xt=V.createFramebuffer();this.copyTextureToTexture=function(Z,_e,Pe=null,Re=null,Me=0,Ze=null){Ze===null&&(Me!==0?(m0("WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels."),Ze=Me,Me=0):Ze=0);let ot,mt,pt,Rt,bt,dt,Bt,Ot,Xt;const nn=Z.isCompressedTexture?Z.mipmaps[Ze]:Z.image;if(Pe!==null)ot=Pe.max.x-Pe.min.x,mt=Pe.max.y-Pe.min.y,pt=Pe.isBox3?Pe.max.z-Pe.min.z:1,Rt=Pe.min.x,bt=Pe.min.y,dt=Pe.isBox3?Pe.min.z:0;else{const $i=Math.pow(2,-Me);ot=Math.floor(nn.width*$i),mt=Math.floor(nn.height*$i),Z.isDataArrayTexture?pt=nn.depth:Z.isData3DTexture?pt=Math.floor(nn.depth*$i):pt=1,Rt=0,bt=0,dt=0}Re!==null?(Bt=Re.x,Ot=Re.y,Xt=Re.z):(Bt=0,Ot=0,Xt=0);const ln=st.convert(_e.format),Nt=st.convert(_e.type);let Vt;_e.isData3DTexture?(ve.setTexture3D(_e,0),Vt=V.TEXTURE_3D):_e.isDataArrayTexture||_e.isCompressedArrayTexture?(ve.setTexture2DArray(_e,0),Vt=V.TEXTURE_2D_ARRAY):(ve.setTexture2D(_e,0),Vt=V.TEXTURE_2D),V.pixelStorei(V.UNPACK_FLIP_Y_WEBGL,_e.flipY),V.pixelStorei(V.UNPACK_PREMULTIPLY_ALPHA_WEBGL,_e.premultiplyAlpha),V.pixelStorei(V.UNPACK_ALIGNMENT,_e.unpackAlignment);const $t=V.getParameter(V.UNPACK_ROW_LENGTH),ui=V.getParameter(V.UNPACK_IMAGE_HEIGHT),yi=V.getParameter(V.UNPACK_SKIP_PIXELS),Sn=V.getParameter(V.UNPACK_SKIP_ROWS),Ws=V.getParameter(V.UNPACK_SKIP_IMAGES);V.pixelStorei(V.UNPACK_ROW_LENGTH,nn.width),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,nn.height),V.pixelStorei(V.UNPACK_SKIP_PIXELS,Rt),V.pixelStorei(V.UNPACK_SKIP_ROWS,bt),V.pixelStorei(V.UNPACK_SKIP_IMAGES,dt);const Mn=Z.isDataArrayTexture||Z.isData3DTexture,dr=_e.isDataArrayTexture||_e.isData3DTexture;if(Z.isDepthTexture){const $i=we.get(Z),fr=we.get(_e),Ar=we.get($i.__renderTarget),yo=we.get(fr.__renderTarget);ae.bindFramebuffer(V.READ_FRAMEBUFFER,Ar.__webglFramebuffer),ae.bindFramebuffer(V.DRAW_FRAMEBUFFER,yo.__webglFramebuffer);for(let Ko=0;Ko<pt;Ko++)Mn&&(V.framebufferTextureLayer(V.READ_FRAMEBUFFER,V.COLOR_ATTACHMENT0,we.get(Z).__webglTexture,Me,dt+Ko),V.framebufferTextureLayer(V.DRAW_FRAMEBUFFER,V.COLOR_ATTACHMENT0,we.get(_e).__webglTexture,Ze,Xt+Ko)),V.blitFramebuffer(Rt,bt,ot,mt,Bt,Ot,ot,mt,V.DEPTH_BUFFER_BIT,V.NEAREST);ae.bindFramebuffer(V.READ_FRAMEBUFFER,null),ae.bindFramebuffer(V.DRAW_FRAMEBUFFER,null)}else if(Me!==0||Z.isRenderTargetTexture||we.has(Z)){const $i=we.get(Z),fr=we.get(_e);ae.bindFramebuffer(V.READ_FRAMEBUFFER,We),ae.bindFramebuffer(V.DRAW_FRAMEBUFFER,xt);for(let Ar=0;Ar<pt;Ar++)Mn?V.framebufferTextureLayer(V.READ_FRAMEBUFFER,V.COLOR_ATTACHMENT0,$i.__webglTexture,Me,dt+Ar):V.framebufferTexture2D(V.READ_FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_2D,$i.__webglTexture,Me),dr?V.framebufferTextureLayer(V.DRAW_FRAMEBUFFER,V.COLOR_ATTACHMENT0,fr.__webglTexture,Ze,Xt+Ar):V.framebufferTexture2D(V.DRAW_FRAMEBUFFER,V.COLOR_ATTACHMENT0,V.TEXTURE_2D,fr.__webglTexture,Ze),Me!==0?V.blitFramebuffer(Rt,bt,ot,mt,Bt,Ot,ot,mt,V.COLOR_BUFFER_BIT,V.NEAREST):dr?V.copyTexSubImage3D(Vt,Ze,Bt,Ot,Xt+Ar,Rt,bt,ot,mt):V.copyTexSubImage2D(Vt,Ze,Bt,Ot,Rt,bt,ot,mt);ae.bindFramebuffer(V.READ_FRAMEBUFFER,null),ae.bindFramebuffer(V.DRAW_FRAMEBUFFER,null)}else dr?Z.isDataTexture||Z.isData3DTexture?V.texSubImage3D(Vt,Ze,Bt,Ot,Xt,ot,mt,pt,ln,Nt,nn.data):_e.isCompressedArrayTexture?V.compressedTexSubImage3D(Vt,Ze,Bt,Ot,Xt,ot,mt,pt,ln,nn.data):V.texSubImage3D(Vt,Ze,Bt,Ot,Xt,ot,mt,pt,ln,Nt,nn):Z.isDataTexture?V.texSubImage2D(V.TEXTURE_2D,Ze,Bt,Ot,ot,mt,ln,Nt,nn.data):Z.isCompressedTexture?V.compressedTexSubImage2D(V.TEXTURE_2D,Ze,Bt,Ot,nn.width,nn.height,ln,nn.data):V.texSubImage2D(V.TEXTURE_2D,Ze,Bt,Ot,ot,mt,ln,Nt,nn);V.pixelStorei(V.UNPACK_ROW_LENGTH,$t),V.pixelStorei(V.UNPACK_IMAGE_HEIGHT,ui),V.pixelStorei(V.UNPACK_SKIP_PIXELS,yi),V.pixelStorei(V.UNPACK_SKIP_ROWS,Sn),V.pixelStorei(V.UNPACK_SKIP_IMAGES,Ws),Ze===0&&_e.generateMipmaps&&V.generateMipmap(Vt),ae.unbindTexture()},this.initRenderTarget=function(Z){we.get(Z).__webglFramebuffer===void 0&&ve.setupRenderTarget(Z)},this.initTexture=function(Z){Z.isCubeTexture?ve.setTextureCube(Z,0):Z.isData3DTexture?ve.setTexture3D(Z,0):Z.isDataArrayTexture||Z.isCompressedArrayTexture?ve.setTexture2DArray(Z,0):ve.setTexture2D(Z,0),ae.unbindTexture()},this.resetState=function(){U=0,P=0,k=null,ae.reset(),ue.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Oo}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const n=this.getContext();n.drawingBufferColorSpace=xn._getDrawingBufferColorSpace(e),n.unpackColorSpace=xn._getUnpackColorSpace()}};const pz={type:"change"},VP={type:"start"},$G={type:"end"},gy=new FP,mz=new eu,Sde=Math.cos(70*Xae.DEG2RAD),qi=new Ge,Ea=2*Math.PI,In={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},uA=1e-6;class wde extends Lse{constructor(e,n=null){super(e,n),this.state=In.NONE,this.target=new Ge,this.cursor=new Ge,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:rp.ROTATE,MIDDLE:rp.DOLLY,RIGHT:rp.PAN},this.touches={ONE:Jh.ROTATE,TWO:Jh.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this._lastPosition=new Ge,this._lastQuaternion=new sf,this._lastTargetPosition=new Ge,this._quat=new sf().setFromUnitVectors(e.up,new Ge(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new VF,this._sphericalDelta=new VF,this._scale=1,this._panOffset=new Ge,this._rotateStart=new Jt,this._rotateEnd=new Jt,this._rotateDelta=new Jt,this._panStart=new Jt,this._panEnd=new Jt,this._panDelta=new Jt,this._dollyStart=new Jt,this._dollyEnd=new Jt,this._dollyDelta=new Jt,this._dollyDirection=new Ge,this._mouse=new Jt,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=Ede.bind(this),this._onPointerDown=Mde.bind(this),this._onPointerUp=Ade.bind(this),this._onContextMenu=Ode.bind(this),this._onMouseWheel=Rde.bind(this),this._onKeyDown=Pde.bind(this),this._onTouchStart=Dde.bind(this),this._onTouchMove=Nde.bind(this),this._onMouseDown=Tde.bind(this),this._onMouseMove=Cde.bind(this),this._interceptControlDown=Lde.bind(this),this._interceptControlUp=kde.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}connect(e){super.connect(e),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction="auto"}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(e){e.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=e}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(pz),this.update(),this.state=In.NONE}update(e=null){const n=this.object.position;qi.copy(n).sub(this.target),qi.applyQuaternion(this._quat),this._spherical.setFromVector3(qi),this.autoRotate&&this.state===In.NONE&&this._rotateLeft(this._getAutoRotationAngle(e)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let i=this.minAzimuthAngle,r=this.maxAzimuthAngle;isFinite(i)&&isFinite(r)&&(i<-Math.PI?i+=Ea:i>Math.PI&&(i-=Ea),r<-Math.PI?r+=Ea:r>Math.PI&&(r-=Ea),i<=r?this._spherical.theta=Math.max(i,Math.min(r,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(i+r)/2?Math.max(i,this._spherical.theta):Math.min(r,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let a=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const s=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),a=s!=this._spherical.radius}if(qi.setFromSpherical(this._spherical),qi.applyQuaternion(this._quatInverse),n.copy(this.target).add(qi),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let s=null;if(this.object.isPerspectiveCamera){const o=qi.length();s=this._clampDistance(o*this._scale);const l=o-s;this.object.position.addScaledVector(this._dollyDirection,l),this.object.updateMatrixWorld(),a=!!l}else if(this.object.isOrthographicCamera){const o=new Ge(this._mouse.x,this._mouse.y,0);o.unproject(this.object);const l=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),a=l!==this.object.zoom;const c=new Ge(this._mouse.x,this._mouse.y,0);c.unproject(this.object),this.object.position.sub(c).add(o),this.object.updateMatrixWorld(),s=qi.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;s!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(s).add(this.object.position):(gy.origin.copy(this.object.position),gy.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(gy.direction))<Sde?this.object.lookAt(this.target):(mz.setFromNormalAndCoplanarPoint(this.object.up,this.target),gy.intersectPlane(mz,this.target))))}else if(this.object.isOrthographicCamera){const s=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),s!==this.object.zoom&&(this.object.updateProjectionMatrix(),a=!0)}return this._scale=1,this._performCursorZoom=!1,a||this._lastPosition.distanceToSquared(this.object.position)>uA||8*(1-this._lastQuaternion.dot(this.object.quaternion))>uA||this._lastTargetPosition.distanceToSquared(this.target)>uA?(this.dispatchEvent(pz),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(e){return e!==null?Ea/60*this.autoRotateSpeed*e:Ea/60/60*this.autoRotateSpeed}_getZoomScale(e){const n=Math.abs(e*.01);return Math.pow(.95,this.zoomSpeed*n)}_rotateLeft(e){this._sphericalDelta.theta-=e}_rotateUp(e){this._sphericalDelta.phi-=e}_panLeft(e,n){qi.setFromMatrixColumn(n,0),qi.multiplyScalar(-e),this._panOffset.add(qi)}_panUp(e,n){this.screenSpacePanning===!0?qi.setFromMatrixColumn(n,1):(qi.setFromMatrixColumn(n,0),qi.crossVectors(this.object.up,qi)),qi.multiplyScalar(e),this._panOffset.add(qi)}_pan(e,n){const i=this.domElement;if(this.object.isPerspectiveCamera){const r=this.object.position;qi.copy(r).sub(this.target);let a=qi.length();a*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*e*a/i.clientHeight,this.object.matrix),this._panUp(2*n*a/i.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(e*(this.object.right-this.object.left)/this.object.zoom/i.clientWidth,this.object.matrix),this._panUp(n*(this.object.top-this.object.bottom)/this.object.zoom/i.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(e){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=e:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(e,n){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const i=this.domElement.getBoundingClientRect(),r=e-i.left,a=n-i.top,s=i.width,o=i.height;this._mouse.x=r/s*2-1,this._mouse.y=-(a/o)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(e){return Math.max(this.minDistance,Math.min(this.maxDistance,e))}_handleMouseDownRotate(e){this._rotateStart.set(e.clientX,e.clientY)}_handleMouseDownDolly(e){this._updateZoomParameters(e.clientX,e.clientX),this._dollyStart.set(e.clientX,e.clientY)}_handleMouseDownPan(e){this._panStart.set(e.clientX,e.clientY)}_handleMouseMoveRotate(e){this._rotateEnd.set(e.clientX,e.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const n=this.domElement;this._rotateLeft(Ea*this._rotateDelta.x/n.clientHeight),this._rotateUp(Ea*this._rotateDelta.y/n.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(e){this._dollyEnd.set(e.clientX,e.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(e){this._panEnd.set(e.clientX,e.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(e){this._updateZoomParameters(e.clientX,e.clientY),e.deltaY<0?this._dollyIn(this._getZoomScale(e.deltaY)):e.deltaY>0&&this._dollyOut(this._getZoomScale(e.deltaY)),this.update()}_handleKeyDown(e){let n=!1;switch(e.code){case this.keys.UP:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(Ea*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),n=!0;break;case this.keys.BOTTOM:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateUp(-Ea*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),n=!0;break;case this.keys.LEFT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(Ea*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),n=!0;break;case this.keys.RIGHT:e.ctrlKey||e.metaKey||e.shiftKey?this.enableRotate&&this._rotateLeft(-Ea*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),n=!0;break}n&&(e.preventDefault(),this.update())}_handleTouchStartRotate(e){if(this._pointers.length===1)this._rotateStart.set(e.pageX,e.pageY);else{const n=this._getSecondPointerPosition(e),i=.5*(e.pageX+n.x),r=.5*(e.pageY+n.y);this._rotateStart.set(i,r)}}_handleTouchStartPan(e){if(this._pointers.length===1)this._panStart.set(e.pageX,e.pageY);else{const n=this._getSecondPointerPosition(e),i=.5*(e.pageX+n.x),r=.5*(e.pageY+n.y);this._panStart.set(i,r)}}_handleTouchStartDolly(e){const n=this._getSecondPointerPosition(e),i=e.pageX-n.x,r=e.pageY-n.y,a=Math.sqrt(i*i+r*r);this._dollyStart.set(0,a)}_handleTouchStartDollyPan(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enablePan&&this._handleTouchStartPan(e)}_handleTouchStartDollyRotate(e){this.enableZoom&&this._handleTouchStartDolly(e),this.enableRotate&&this._handleTouchStartRotate(e)}_handleTouchMoveRotate(e){if(this._pointers.length==1)this._rotateEnd.set(e.pageX,e.pageY);else{const i=this._getSecondPointerPosition(e),r=.5*(e.pageX+i.x),a=.5*(e.pageY+i.y);this._rotateEnd.set(r,a)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const n=this.domElement;this._rotateLeft(Ea*this._rotateDelta.x/n.clientHeight),this._rotateUp(Ea*this._rotateDelta.y/n.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(e){if(this._pointers.length===1)this._panEnd.set(e.pageX,e.pageY);else{const n=this._getSecondPointerPosition(e),i=.5*(e.pageX+n.x),r=.5*(e.pageY+n.y);this._panEnd.set(i,r)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(e){const n=this._getSecondPointerPosition(e),i=e.pageX-n.x,r=e.pageY-n.y,a=Math.sqrt(i*i+r*r);this._dollyEnd.set(0,a),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const s=(e.pageX+n.x)*.5,o=(e.pageY+n.y)*.5;this._updateZoomParameters(s,o)}_handleTouchMoveDollyPan(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enablePan&&this._handleTouchMovePan(e)}_handleTouchMoveDollyRotate(e){this.enableZoom&&this._handleTouchMoveDolly(e),this.enableRotate&&this._handleTouchMoveRotate(e)}_addPointer(e){this._pointers.push(e.pointerId)}_removePointer(e){delete this._pointerPositions[e.pointerId];for(let n=0;n<this._pointers.length;n++)if(this._pointers[n]==e.pointerId){this._pointers.splice(n,1);return}}_isTrackingPointer(e){for(let n=0;n<this._pointers.length;n++)if(this._pointers[n]==e.pointerId)return!0;return!1}_trackPointer(e){let n=this._pointerPositions[e.pointerId];n===void 0&&(n=new Jt,this._pointerPositions[e.pointerId]=n),n.set(e.pageX,e.pageY)}_getSecondPointerPosition(e){const n=e.pointerId===this._pointers[0]?this._pointers[1]:this._pointers[0];return this._pointerPositions[n]}_customWheelEvent(e){const n=e.deltaMode,i={clientX:e.clientX,clientY:e.clientY,deltaY:e.deltaY};switch(n){case 1:i.deltaY*=16;break;case 2:i.deltaY*=100;break}return e.ctrlKey&&!this._controlActive&&(i.deltaY*=10),i}}function Mde(t){this.enabled!==!1&&(this._pointers.length===0&&(this.domElement.setPointerCapture(t.pointerId),this.domElement.addEventListener("pointermove",this._onPointerMove),this.domElement.addEventListener("pointerup",this._onPointerUp)),!this._isTrackingPointer(t)&&(this._addPointer(t),t.pointerType==="touch"?this._onTouchStart(t):this._onMouseDown(t)))}function Ede(t){this.enabled!==!1&&(t.pointerType==="touch"?this._onTouchMove(t):this._onMouseMove(t))}function Ade(t){switch(this._removePointer(t),this._pointers.length){case 0:this.domElement.releasePointerCapture(t.pointerId),this.domElement.removeEventListener("pointermove",this._onPointerMove),this.domElement.removeEventListener("pointerup",this._onPointerUp),this.dispatchEvent($G),this.state=In.NONE;break;case 1:const e=this._pointers[0],n=this._pointerPositions[e];this._onTouchStart({pointerId:e,pageX:n.x,pageY:n.y});break}}function Tde(t){let e;switch(t.button){case 0:e=this.mouseButtons.LEFT;break;case 1:e=this.mouseButtons.MIDDLE;break;case 2:e=this.mouseButtons.RIGHT;break;default:e=-1}switch(e){case rp.DOLLY:if(this.enableZoom===!1)return;this._handleMouseDownDolly(t),this.state=In.DOLLY;break;case rp.ROTATE:if(t.ctrlKey||t.metaKey||t.shiftKey){if(this.enablePan===!1)return;this._handleMouseDownPan(t),this.state=In.PAN}else{if(this.enableRotate===!1)return;this._handleMouseDownRotate(t),this.state=In.ROTATE}break;case rp.PAN:if(t.ctrlKey||t.metaKey||t.shiftKey){if(this.enableRotate===!1)return;this._handleMouseDownRotate(t),this.state=In.ROTATE}else{if(this.enablePan===!1)return;this._handleMouseDownPan(t),this.state=In.PAN}break;default:this.state=In.NONE}this.state!==In.NONE&&this.dispatchEvent(VP)}function Cde(t){switch(this.state){case In.ROTATE:if(this.enableRotate===!1)return;this._handleMouseMoveRotate(t);break;case In.DOLLY:if(this.enableZoom===!1)return;this._handleMouseMoveDolly(t);break;case In.PAN:if(this.enablePan===!1)return;this._handleMouseMovePan(t);break}}function Rde(t){this.enabled===!1||this.enableZoom===!1||this.state!==In.NONE||(t.preventDefault(),this.dispatchEvent(VP),this._handleMouseWheel(this._customWheelEvent(t)),this.dispatchEvent($G))}function Pde(t){this.enabled!==!1&&this._handleKeyDown(t)}function Dde(t){switch(this._trackPointer(t),this._pointers.length){case 1:switch(this.touches.ONE){case Jh.ROTATE:if(this.enableRotate===!1)return;this._handleTouchStartRotate(t),this.state=In.TOUCH_ROTATE;break;case Jh.PAN:if(this.enablePan===!1)return;this._handleTouchStartPan(t),this.state=In.TOUCH_PAN;break;default:this.state=In.NONE}break;case 2:switch(this.touches.TWO){case Jh.DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchStartDollyPan(t),this.state=In.TOUCH_DOLLY_PAN;break;case Jh.DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchStartDollyRotate(t),this.state=In.TOUCH_DOLLY_ROTATE;break;default:this.state=In.NONE}break;default:this.state=In.NONE}this.state!==In.NONE&&this.dispatchEvent(VP)}function Nde(t){switch(this._trackPointer(t),this.state){case In.TOUCH_ROTATE:if(this.enableRotate===!1)return;this._handleTouchMoveRotate(t),this.update();break;case In.TOUCH_PAN:if(this.enablePan===!1)return;this._handleTouchMovePan(t),this.update();break;case In.TOUCH_DOLLY_PAN:if(this.enableZoom===!1&&this.enablePan===!1)return;this._handleTouchMoveDollyPan(t),this.update();break;case In.TOUCH_DOLLY_ROTATE:if(this.enableZoom===!1&&this.enableRotate===!1)return;this._handleTouchMoveDollyRotate(t),this.update();break;default:this.state=In.NONE}}function Ode(t){this.enabled!==!1&&t.preventDefault()}function Lde(t){t.key==="Control"&&(this._controlActive=!0,this.domElement.getRootNode().addEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function kde(t){t.key==="Control"&&(this._controlActive=!1,this.domElement.getRootNode().removeEventListener("keyup",this._interceptControlUp,{passive:!0,capture:!0}))}function Ide(t,e=!1){const n=t[0].index!==null,i=new Set(Object.keys(t[0].attributes)),r=new Set(Object.keys(t[0].morphAttributes)),a={},s={},o=t[0].morphTargetsRelative,l=new Yo;let c=0;for(let d=0;d<t.length;++d){const f=t[d];let p=0;if(n!==(f.index!==null))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+d+". All geometries must have compatible attributes; make sure index attribute exists among all geometries, or in none of them."),null;for(const m in f.attributes){if(!i.has(m))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+d+'. All geometries must have compatible attributes; make sure "'+m+'" attribute exists among all geometries, or in none of them.'),null;a[m]===void 0&&(a[m]=[]),a[m].push(f.attributes[m]),p++}if(p!==i.size)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+d+". Make sure all geometries have the same number of attributes."),null;if(o!==f.morphTargetsRelative)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+d+". .morphTargetsRelative must be consistent throughout all geometries."),null;for(const m in f.morphAttributes){if(!r.has(m))return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+d+". .morphAttributes must be consistent throughout all geometries."),null;s[m]===void 0&&(s[m]=[]),s[m].push(f.morphAttributes[m])}if(e){let m;if(n)m=f.index.count;else if(f.attributes.position!==void 0)m=f.attributes.position.count;else return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed with geometry at index "+d+". The geometry must have either an index or a position attribute"),null;l.addGroup(c,m,d),c+=m}}if(n){let d=0;const f=[];for(let p=0;p<t.length;++p){const m=t[p].index;for(let y=0;y<m.count;++y)f.push(m.getX(y)+d);d+=t[p].attributes.position.count}l.setIndex(f)}for(const d in a){const f=gz(a[d]);if(!f)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+d+" attribute."),null;l.setAttribute(d,f)}for(const d in s){const f=s[d][0].length;if(f===0)break;l.morphAttributes=l.morphAttributes||{},l.morphAttributes[d]=[];for(let p=0;p<f;++p){const m=[];for(let b=0;b<s[d].length;++b)m.push(s[d][b][p]);const y=gz(m);if(!y)return console.error("THREE.BufferGeometryUtils: .mergeGeometries() failed while trying to merge the "+d+" morphAttribute."),null;l.morphAttributes[d].push(y)}}return l}function gz(t){let e,n,i,r=-1,a=0;for(let c=0;c<t.length;++c){const d=t[c];if(e===void 0&&(e=d.array.constructor),e!==d.array.constructor)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.array must be of consistent array types across matching attributes."),null;if(n===void 0&&(n=d.itemSize),n!==d.itemSize)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.itemSize must be consistent across matching attributes."),null;if(i===void 0&&(i=d.normalized),i!==d.normalized)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.normalized must be consistent across matching attributes."),null;if(r===-1&&(r=d.gpuType),r!==d.gpuType)return console.error("THREE.BufferGeometryUtils: .mergeAttributes() failed. BufferAttribute.gpuType must be consistent across matching attributes."),null;a+=d.count*n}const s=new e(a),o=new Is(s,n,i);let l=0;for(let c=0;c<t.length;++c){const d=t[c];if(d.isInterleavedBufferAttribute){const f=l/n;for(let p=0,m=d.count;p<m;p++)for(let y=0;y<n;y++){const b=d.getComponent(p,y);o.setComponent(p+f,y,b)}}else s.set(d.array,l);l+=d.count*n}return r!==void 0&&(o.gpuType=r),o}function vy(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var dA={exports:{}};var vz;function Ude(){return vz||(vz=1,(function(t,e){(function(n){t.exports=n()})(function(){return(function n(i,r,a){function s(c,d){if(!r[c]){if(!i[c]){var f=typeof vy=="function"&&vy;if(!d&&f)return f(c,!0);if(o)return o(c,!0);var p=new Error("Cannot find module '"+c+"'");throw p.code="MODULE_NOT_FOUND",p}var m=r[c]={exports:{}};i[c][0].call(m.exports,function(y){var b=i[c][1][y];return s(b||y)},m,m.exports,n,i,r,a)}return r[c].exports}for(var o=typeof vy=="function"&&vy,l=0;l<a.length;l++)s(a[l]);return s})({1:[function(n,i,r){var a=n("./utils"),s=n("./support"),o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";r.encode=function(l){for(var c,d,f,p,m,y,b,x=[],v=0,w=l.length,M=w,A=a.getTypeOf(l)!=="string";v<l.length;)M=w-v,f=A?(c=l[v++],d=v<w?l[v++]:0,v<w?l[v++]:0):(c=l.charCodeAt(v++),d=v<w?l.charCodeAt(v++):0,v<w?l.charCodeAt(v++):0),p=c>>2,m=(3&c)<<4|d>>4,y=1<M?(15&d)<<2|f>>6:64,b=2<M?63&f:64,x.push(o.charAt(p)+o.charAt(m)+o.charAt(y)+o.charAt(b));return x.join("")},r.decode=function(l){var c,d,f,p,m,y,b=0,x=0,v="data:";if(l.substr(0,v.length)===v)throw new Error("Invalid base64 input, it looks like a data url.");var w,M=3*(l=l.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(l.charAt(l.length-1)===o.charAt(64)&&M--,l.charAt(l.length-2)===o.charAt(64)&&M--,M%1!=0)throw new Error("Invalid base64 input, bad content length.");for(w=s.uint8array?new Uint8Array(0|M):new Array(0|M);b<l.length;)c=o.indexOf(l.charAt(b++))<<2|(p=o.indexOf(l.charAt(b++)))>>4,d=(15&p)<<4|(m=o.indexOf(l.charAt(b++)))>>2,f=(3&m)<<6|(y=o.indexOf(l.charAt(b++))),w[x++]=c,m!==64&&(w[x++]=d),y!==64&&(w[x++]=f);return w}},{"./support":30,"./utils":32}],2:[function(n,i,r){var a=n("./external"),s=n("./stream/DataWorker"),o=n("./stream/Crc32Probe"),l=n("./stream/DataLengthProbe");function c(d,f,p,m,y){this.compressedSize=d,this.uncompressedSize=f,this.crc32=p,this.compression=m,this.compressedContent=y}c.prototype={getContentWorker:function(){var d=new s(a.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new l("data_length")),f=this;return d.on("end",function(){if(this.streamInfo.data_length!==f.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),d},getCompressedWorker:function(){return new s(a.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},c.createWorkerFrom=function(d,f,p){return d.pipe(new o).pipe(new l("uncompressedSize")).pipe(f.compressWorker(p)).pipe(new l("compressedSize")).withStreamInfo("compression",f)},i.exports=c},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(n,i,r){var a=n("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new a("STORE compression")},uncompressWorker:function(){return new a("STORE decompression")}},r.DEFLATE=n("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(n,i,r){var a=n("./utils"),s=(function(){for(var o,l=[],c=0;c<256;c++){o=c;for(var d=0;d<8;d++)o=1&o?3988292384^o>>>1:o>>>1;l[c]=o}return l})();i.exports=function(o,l){return o!==void 0&&o.length?a.getTypeOf(o)!=="string"?(function(c,d,f,p){var m=s,y=p+f;c^=-1;for(var b=p;b<y;b++)c=c>>>8^m[255&(c^d[b])];return-1^c})(0|l,o,o.length,0):(function(c,d,f,p){var m=s,y=p+f;c^=-1;for(var b=p;b<y;b++)c=c>>>8^m[255&(c^d.charCodeAt(b))];return-1^c})(0|l,o,o.length,0):0}},{"./utils":32}],5:[function(n,i,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(n,i,r){var a=null;a=typeof Promise<"u"?Promise:n("lie"),i.exports={Promise:a}},{lie:37}],7:[function(n,i,r){var a=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Uint32Array<"u",s=n("pako"),o=n("./utils"),l=n("./stream/GenericWorker"),c=a?"uint8array":"array";function d(f,p){l.call(this,"FlateWorker/"+f),this._pako=null,this._pakoAction=f,this._pakoOptions=p,this.meta={}}r.magic="\b\0",o.inherits(d,l),d.prototype.processChunk=function(f){this.meta=f.meta,this._pako===null&&this._createPako(),this._pako.push(o.transformTo(c,f.data),!1)},d.prototype.flush=function(){l.prototype.flush.call(this),this._pako===null&&this._createPako(),this._pako.push([],!0)},d.prototype.cleanUp=function(){l.prototype.cleanUp.call(this),this._pako=null},d.prototype._createPako=function(){this._pako=new s[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var f=this;this._pako.onData=function(p){f.push({data:p,meta:f.meta})}},r.compressWorker=function(f){return new d("Deflate",f)},r.uncompressWorker=function(){return new d("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(n,i,r){function a(m,y){var b,x="";for(b=0;b<y;b++)x+=String.fromCharCode(255&m),m>>>=8;return x}function s(m,y,b,x,v,w){var M,A,T=m.file,D=m.compression,C=w!==c.utf8encode,U=o.transformTo("string",w(T.name)),P=o.transformTo("string",c.utf8encode(T.name)),k=T.comment,B=o.transformTo("string",w(k)),I=o.transformTo("string",c.utf8encode(k)),W=P.length!==T.name.length,O=I.length!==k.length,$="",q="",G="",Y=T.dir,Q=T.date,se={crc32:0,compressedSize:0,uncompressedSize:0};y&&!b||(se.crc32=m.crc32,se.compressedSize=m.compressedSize,se.uncompressedSize=m.uncompressedSize);var H=0;y&&(H|=8),C||!W&&!O||(H|=2048);var X=0,re=0;Y&&(X|=16),v==="UNIX"?(re=798,X|=(function(ye,me){var be=ye;return ye||(be=me?16893:33204),(65535&be)<<16})(T.unixPermissions,Y)):(re=20,X|=(function(ye){return 63&(ye||0)})(T.dosPermissions)),M=Q.getUTCHours(),M<<=6,M|=Q.getUTCMinutes(),M<<=5,M|=Q.getUTCSeconds()/2,A=Q.getUTCFullYear()-1980,A<<=4,A|=Q.getUTCMonth()+1,A<<=5,A|=Q.getUTCDate(),W&&(q=a(1,1)+a(d(U),4)+P,$+="up"+a(q.length,2)+q),O&&(G=a(1,1)+a(d(B),4)+I,$+="uc"+a(G.length,2)+G);var ce="";return ce+=`
- \0`,ce+=a(H,2),ce+=D.magic,ce+=a(M,2),ce+=a(A,2),ce+=a(se.crc32,4),ce+=a(se.compressedSize,4),ce+=a(se.uncompressedSize,4),ce+=a(U.length,2),ce+=a($.length,2),{fileRecord:f.LOCAL_FILE_HEADER+ce+U+$,dirRecord:f.CENTRAL_FILE_HEADER+a(re,2)+ce+a(B.length,2)+"\0\0\0\0"+a(X,4)+a(x,4)+U+$+B}}var o=n("../utils"),l=n("../stream/GenericWorker"),c=n("../utf8"),d=n("../crc32"),f=n("../signature");function p(m,y,b,x){l.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=y,this.zipPlatform=b,this.encodeFileName=x,this.streamFiles=m,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}o.inherits(p,l),p.prototype.push=function(m){var y=m.meta.percent||0,b=this.entriesCount,x=this._sources.length;this.accumulate?this.contentBuffer.push(m):(this.bytesWritten+=m.data.length,l.prototype.push.call(this,{data:m.data,meta:{currentFile:this.currentFile,percent:b?(y+100*(b-x-1))/b:100}}))},p.prototype.openedSource=function(m){this.currentSourceOffset=this.bytesWritten,this.currentFile=m.file.name;var y=this.streamFiles&&!m.file.dir;if(y){var b=s(m,y,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:b.fileRecord,meta:{percent:0}})}else this.accumulate=!0},p.prototype.closedSource=function(m){this.accumulate=!1;var y=this.streamFiles&&!m.file.dir,b=s(m,y,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(b.dirRecord),y)this.push({data:(function(x){return f.DATA_DESCRIPTOR+a(x.crc32,4)+a(x.compressedSize,4)+a(x.uncompressedSize,4)})(m),meta:{percent:100}});else for(this.push({data:b.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},p.prototype.flush=function(){for(var m=this.bytesWritten,y=0;y<this.dirRecords.length;y++)this.push({data:this.dirRecords[y],meta:{percent:100}});var b=this.bytesWritten-m,x=(function(v,w,M,A,T){var D=o.transformTo("string",T(A));return f.CENTRAL_DIRECTORY_END+"\0\0\0\0"+a(v,2)+a(v,2)+a(w,4)+a(M,4)+a(D.length,2)+D})(this.dirRecords.length,b,m,this.zipComment,this.encodeFileName);this.push({data:x,meta:{percent:100}})},p.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},p.prototype.registerPrevious=function(m){this._sources.push(m);var y=this;return m.on("data",function(b){y.processChunk(b)}),m.on("end",function(){y.closedSource(y.previous.streamInfo),y._sources.length?y.prepareNextSource():y.end()}),m.on("error",function(b){y.error(b)}),this},p.prototype.resume=function(){return!!l.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},p.prototype.error=function(m){var y=this._sources;if(!l.prototype.error.call(this,m))return!1;for(var b=0;b<y.length;b++)try{y[b].error(m)}catch{}return!0},p.prototype.lock=function(){l.prototype.lock.call(this);for(var m=this._sources,y=0;y<m.length;y++)m[y].lock()},i.exports=p},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(n,i,r){var a=n("../compressions"),s=n("./ZipFileWorker");r.generateWorker=function(o,l,c){var d=new s(l.streamFiles,c,l.platform,l.encodeFileName),f=0;try{o.forEach(function(p,m){f++;var y=(function(w,M){var A=w||M,T=a[A];if(!T)throw new Error(A+" is not a valid compression method !");return T})(m.options.compression,l.compression),b=m.options.compressionOptions||l.compressionOptions||{},x=m.dir,v=m.date;m._compressWorker(y,b).withStreamInfo("file",{name:p,dir:x,date:v,comment:m.comment||"",unixPermissions:m.unixPermissions,dosPermissions:m.dosPermissions}).pipe(d)}),d.entriesCount=f}catch(p){d.error(p)}return d}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(n,i,r){function a(){if(!(this instanceof a))return new a;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var s=new a;for(var o in this)typeof this[o]!="function"&&(s[o]=this[o]);return s}}(a.prototype=n("./object")).loadAsync=n("./load"),a.support=n("./support"),a.defaults=n("./defaults"),a.version="3.10.1",a.loadAsync=function(s,o){return new a().loadAsync(s,o)},a.external=n("./external"),i.exports=a},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(n,i,r){var a=n("./utils"),s=n("./external"),o=n("./utf8"),l=n("./zipEntries"),c=n("./stream/Crc32Probe"),d=n("./nodejsUtils");function f(p){return new s.Promise(function(m,y){var b=p.decompressed.getContentWorker().pipe(new c);b.on("error",function(x){y(x)}).on("end",function(){b.streamInfo.crc32!==p.decompressed.crc32?y(new Error("Corrupted zip : CRC32 mismatch")):m()}).resume()})}i.exports=function(p,m){var y=this;return m=a.extend(m||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:o.utf8decode}),d.isNode&&d.isStream(p)?s.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):a.prepareContent("the loaded zip file",p,!0,m.optimizedBinaryString,m.base64).then(function(b){var x=new l(m);return x.load(b),x}).then(function(b){var x=[s.Promise.resolve(b)],v=b.files;if(m.checkCRC32)for(var w=0;w<v.length;w++)x.push(f(v[w]));return s.Promise.all(x)}).then(function(b){for(var x=b.shift(),v=x.files,w=0;w<v.length;w++){var M=v[w],A=M.fileNameStr,T=a.resolve(M.fileNameStr);y.file(T,M.decompressed,{binary:!0,optimizedBinaryString:!0,date:M.date,dir:M.dir,comment:M.fileCommentStr.length?M.fileCommentStr:null,unixPermissions:M.unixPermissions,dosPermissions:M.dosPermissions,createFolders:m.createFolders}),M.dir||(y.file(T).unsafeOriginalName=A)}return x.zipComment.length&&(y.comment=x.zipComment),y})}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(n,i,r){var a=n("../utils"),s=n("../stream/GenericWorker");function o(l,c){s.call(this,"Nodejs stream input adapter for "+l),this._upstreamEnded=!1,this._bindStream(c)}a.inherits(o,s),o.prototype._bindStream=function(l){var c=this;(this._stream=l).pause(),l.on("data",function(d){c.push({data:d,meta:{percent:0}})}).on("error",function(d){c.isPaused?this.generatedError=d:c.error(d)}).on("end",function(){c.isPaused?c._upstreamEnded=!0:c.end()})},o.prototype.pause=function(){return!!s.prototype.pause.call(this)&&(this._stream.pause(),!0)},o.prototype.resume=function(){return!!s.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},i.exports=o},{"../stream/GenericWorker":28,"../utils":32}],13:[function(n,i,r){var a=n("readable-stream").Readable;function s(o,l,c){a.call(this,l),this._helper=o;var d=this;o.on("data",function(f,p){d.push(f)||d._helper.pause(),c&&c(p)}).on("error",function(f){d.emit("error",f)}).on("end",function(){d.push(null)})}n("../utils").inherits(s,a),s.prototype._read=function(){this._helper.resume()},i.exports=s},{"../utils":32,"readable-stream":16}],14:[function(n,i,r){i.exports={isNode:typeof Buffer<"u",newBufferFrom:function(a,s){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(a,s);if(typeof a=="number")throw new Error('The "data" argument must not be a number');return new Buffer(a,s)},allocBuffer:function(a){if(Buffer.alloc)return Buffer.alloc(a);var s=new Buffer(a);return s.fill(0),s},isBuffer:function(a){return Buffer.isBuffer(a)},isStream:function(a){return a&&typeof a.on=="function"&&typeof a.pause=="function"&&typeof a.resume=="function"}}},{}],15:[function(n,i,r){function a(T,D,C){var U,P=o.getTypeOf(D),k=o.extend(C||{},d);k.date=k.date||new Date,k.compression!==null&&(k.compression=k.compression.toUpperCase()),typeof k.unixPermissions=="string"&&(k.unixPermissions=parseInt(k.unixPermissions,8)),k.unixPermissions&&16384&k.unixPermissions&&(k.dir=!0),k.dosPermissions&&16&k.dosPermissions&&(k.dir=!0),k.dir&&(T=v(T)),k.createFolders&&(U=x(T))&&w.call(this,U,!0);var B=P==="string"&&k.binary===!1&&k.base64===!1;C&&C.binary!==void 0||(k.binary=!B),(D instanceof f&&D.uncompressedSize===0||k.dir||!D||D.length===0)&&(k.base64=!1,k.binary=!0,D="",k.compression="STORE",P="string");var I=null;I=D instanceof f||D instanceof l?D:y.isNode&&y.isStream(D)?new b(T,D):o.prepareContent(T,D,k.binary,k.optimizedBinaryString,k.base64);var W=new p(T,I,k);this.files[T]=W}var s=n("./utf8"),o=n("./utils"),l=n("./stream/GenericWorker"),c=n("./stream/StreamHelper"),d=n("./defaults"),f=n("./compressedObject"),p=n("./zipObject"),m=n("./generate"),y=n("./nodejsUtils"),b=n("./nodejs/NodejsStreamInputAdapter"),x=function(T){T.slice(-1)==="/"&&(T=T.substring(0,T.length-1));var D=T.lastIndexOf("/");return 0<D?T.substring(0,D):""},v=function(T){return T.slice(-1)!=="/"&&(T+="/"),T},w=function(T,D){return D=D!==void 0?D:d.createFolders,T=v(T),this.files[T]||a.call(this,T,null,{dir:!0,createFolders:D}),this.files[T]};function M(T){return Object.prototype.toString.call(T)==="[object RegExp]"}var A={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(T){var D,C,U;for(D in this.files)U=this.files[D],(C=D.slice(this.root.length,D.length))&&D.slice(0,this.root.length)===this.root&&T(C,U)},filter:function(T){var D=[];return this.forEach(function(C,U){T(C,U)&&D.push(U)}),D},file:function(T,D,C){if(arguments.length!==1)return T=this.root+T,a.call(this,T,D,C),this;if(M(T)){var U=T;return this.filter(function(k,B){return!B.dir&&U.test(k)})}var P=this.files[this.root+T];return P&&!P.dir?P:null},folder:function(T){if(!T)return this;if(M(T))return this.filter(function(P,k){return k.dir&&T.test(P)});var D=this.root+T,C=w.call(this,D),U=this.clone();return U.root=C.name,U},remove:function(T){T=this.root+T;var D=this.files[T];if(D||(T.slice(-1)!=="/"&&(T+="/"),D=this.files[T]),D&&!D.dir)delete this.files[T];else for(var C=this.filter(function(P,k){return k.name.slice(0,T.length)===T}),U=0;U<C.length;U++)delete this.files[C[U].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(T){var D,C={};try{if((C=o.extend(T||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:s.utf8encode})).type=C.type.toLowerCase(),C.compression=C.compression.toUpperCase(),C.type==="binarystring"&&(C.type="string"),!C.type)throw new Error("No output type specified.");o.checkSupport(C.type),C.platform!=="darwin"&&C.platform!=="freebsd"&&C.platform!=="linux"&&C.platform!=="sunos"||(C.platform="UNIX"),C.platform==="win32"&&(C.platform="DOS");var U=C.comment||this.comment||"";D=m.generateWorker(this,C,U)}catch(P){(D=new l("error")).error(P)}return new c(D,C.type||"string",C.mimeType)},generateAsync:function(T,D){return this.generateInternalStream(T).accumulate(D)},generateNodeStream:function(T,D){return(T=T||{}).type||(T.type="nodebuffer"),this.generateInternalStream(T).toNodejsStream(D)}};i.exports=A},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(n,i,r){i.exports=n("stream")},{stream:void 0}],17:[function(n,i,r){var a=n("./DataReader");function s(o){a.call(this,o);for(var l=0;l<this.data.length;l++)o[l]=255&o[l]}n("../utils").inherits(s,a),s.prototype.byteAt=function(o){return this.data[this.zero+o]},s.prototype.lastIndexOfSignature=function(o){for(var l=o.charCodeAt(0),c=o.charCodeAt(1),d=o.charCodeAt(2),f=o.charCodeAt(3),p=this.length-4;0<=p;--p)if(this.data[p]===l&&this.data[p+1]===c&&this.data[p+2]===d&&this.data[p+3]===f)return p-this.zero;return-1},s.prototype.readAndCheckSignature=function(o){var l=o.charCodeAt(0),c=o.charCodeAt(1),d=o.charCodeAt(2),f=o.charCodeAt(3),p=this.readData(4);return l===p[0]&&c===p[1]&&d===p[2]&&f===p[3]},s.prototype.readData=function(o){if(this.checkOffset(o),o===0)return[];var l=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,l},i.exports=s},{"../utils":32,"./DataReader":18}],18:[function(n,i,r){var a=n("../utils");function s(o){this.data=o,this.length=o.length,this.index=0,this.zero=0}s.prototype={checkOffset:function(o){this.checkIndex(this.index+o)},checkIndex:function(o){if(this.length<this.zero+o||o<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+o+"). Corrupted zip ?")},setIndex:function(o){this.checkIndex(o),this.index=o},skip:function(o){this.setIndex(this.index+o)},byteAt:function(){},readInt:function(o){var l,c=0;for(this.checkOffset(o),l=this.index+o-1;l>=this.index;l--)c=(c<<8)+this.byteAt(l);return this.index+=o,c},readString:function(o){return a.transformTo("string",this.readData(o))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var o=this.readInt(4);return new Date(Date.UTC(1980+(o>>25&127),(o>>21&15)-1,o>>16&31,o>>11&31,o>>5&63,(31&o)<<1))}},i.exports=s},{"../utils":32}],19:[function(n,i,r){var a=n("./Uint8ArrayReader");function s(o){a.call(this,o)}n("../utils").inherits(s,a),s.prototype.readData=function(o){this.checkOffset(o);var l=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,l},i.exports=s},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(n,i,r){var a=n("./DataReader");function s(o){a.call(this,o)}n("../utils").inherits(s,a),s.prototype.byteAt=function(o){return this.data.charCodeAt(this.zero+o)},s.prototype.lastIndexOfSignature=function(o){return this.data.lastIndexOf(o)-this.zero},s.prototype.readAndCheckSignature=function(o){return o===this.readData(4)},s.prototype.readData=function(o){this.checkOffset(o);var l=this.data.slice(this.zero+this.index,this.zero+this.index+o);return this.index+=o,l},i.exports=s},{"../utils":32,"./DataReader":18}],21:[function(n,i,r){var a=n("./ArrayReader");function s(o){a.call(this,o)}n("../utils").inherits(s,a),s.prototype.readData=function(o){if(this.checkOffset(o),o===0)return new Uint8Array(0);var l=this.data.subarray(this.zero+this.index,this.zero+this.index+o);return this.index+=o,l},i.exports=s},{"../utils":32,"./ArrayReader":17}],22:[function(n,i,r){var a=n("../utils"),s=n("../support"),o=n("./ArrayReader"),l=n("./StringReader"),c=n("./NodeBufferReader"),d=n("./Uint8ArrayReader");i.exports=function(f){var p=a.getTypeOf(f);return a.checkSupport(p),p!=="string"||s.uint8array?p==="nodebuffer"?new c(f):s.uint8array?new d(a.transformTo("uint8array",f)):new o(a.transformTo("array",f)):new l(f)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(n,i,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK\x07",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\x07\b"},{}],24:[function(n,i,r){var a=n("./GenericWorker"),s=n("../utils");function o(l){a.call(this,"ConvertWorker to "+l),this.destType=l}s.inherits(o,a),o.prototype.processChunk=function(l){this.push({data:s.transformTo(this.destType,l.data),meta:l.meta})},i.exports=o},{"../utils":32,"./GenericWorker":28}],25:[function(n,i,r){var a=n("./GenericWorker"),s=n("../crc32");function o(){a.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}n("../utils").inherits(o,a),o.prototype.processChunk=function(l){this.streamInfo.crc32=s(l.data,this.streamInfo.crc32||0),this.push(l)},i.exports=o},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(n,i,r){var a=n("../utils"),s=n("./GenericWorker");function o(l){s.call(this,"DataLengthProbe for "+l),this.propName=l,this.withStreamInfo(l,0)}a.inherits(o,s),o.prototype.processChunk=function(l){if(l){var c=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=c+l.data.length}s.prototype.processChunk.call(this,l)},i.exports=o},{"../utils":32,"./GenericWorker":28}],27:[function(n,i,r){var a=n("../utils"),s=n("./GenericWorker");function o(l){s.call(this,"DataWorker");var c=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,l.then(function(d){c.dataIsReady=!0,c.data=d,c.max=d&&d.length||0,c.type=a.getTypeOf(d),c.isPaused||c._tickAndRepeat()},function(d){c.error(d)})}a.inherits(o,s),o.prototype.cleanUp=function(){s.prototype.cleanUp.call(this),this.data=null},o.prototype.resume=function(){return!!s.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,a.delay(this._tickAndRepeat,[],this)),!0)},o.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(a.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},o.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var l=null,c=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":l=this.data.substring(this.index,c);break;case"uint8array":l=this.data.subarray(this.index,c);break;case"array":case"nodebuffer":l=this.data.slice(this.index,c)}return this.index=c,this.push({data:l,meta:{percent:this.max?this.index/this.max*100:0}})},i.exports=o},{"../utils":32,"./GenericWorker":28}],28:[function(n,i,r){function a(s){this.name=s||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}a.prototype={push:function(s){this.emit("data",s)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(s){this.emit("error",s)}return!0},error:function(s){return!this.isFinished&&(this.isPaused?this.generatedError=s:(this.isFinished=!0,this.emit("error",s),this.previous&&this.previous.error(s),this.cleanUp()),!0)},on:function(s,o){return this._listeners[s].push(o),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(s,o){if(this._listeners[s])for(var l=0;l<this._listeners[s].length;l++)this._listeners[s][l].call(this,o)},pipe:function(s){return s.registerPrevious(this)},registerPrevious:function(s){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=s.streamInfo,this.mergeStreamInfo(),this.previous=s;var o=this;return s.on("data",function(l){o.processChunk(l)}),s.on("end",function(){o.end()}),s.on("error",function(l){o.error(l)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var s=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),s=!0),this.previous&&this.previous.resume(),!s},flush:function(){},processChunk:function(s){this.push(s)},withStreamInfo:function(s,o){return this.extraStreamInfo[s]=o,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var s in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,s)&&(this.streamInfo[s]=this.extraStreamInfo[s])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var s="Worker "+this.name;return this.previous?this.previous+" -> "+s:s}},i.exports=a},{}],29:[function(n,i,r){var a=n("../utils"),s=n("./ConvertWorker"),o=n("./GenericWorker"),l=n("../base64"),c=n("../support"),d=n("../external"),f=null;if(c.nodestream)try{f=n("../nodejs/NodejsStreamOutputAdapter")}catch{}function p(y,b){return new d.Promise(function(x,v){var w=[],M=y._internalType,A=y._outputType,T=y._mimeType;y.on("data",function(D,C){w.push(D),b&&b(C)}).on("error",function(D){w=[],v(D)}).on("end",function(){try{var D=(function(C,U,P){switch(C){case"blob":return a.newBlob(a.transformTo("arraybuffer",U),P);case"base64":return l.encode(U);default:return a.transformTo(C,U)}})(A,(function(C,U){var P,k=0,B=null,I=0;for(P=0;P<U.length;P++)I+=U[P].length;switch(C){case"string":return U.join("");case"array":return Array.prototype.concat.apply([],U);case"uint8array":for(B=new Uint8Array(I),P=0;P<U.length;P++)B.set(U[P],k),k+=U[P].length;return B;case"nodebuffer":return Buffer.concat(U);default:throw new Error("concat : unsupported type '"+C+"'")}})(M,w),T);x(D)}catch(C){v(C)}w=[]}).resume()})}function m(y,b,x){var v=b;switch(b){case"blob":case"arraybuffer":v="uint8array";break;case"base64":v="string"}try{this._internalType=v,this._outputType=b,this._mimeType=x,a.checkSupport(v),this._worker=y.pipe(new s(v)),y.lock()}catch(w){this._worker=new o("error"),this._worker.error(w)}}m.prototype={accumulate:function(y){return p(this,y)},on:function(y,b){var x=this;return y==="data"?this._worker.on(y,function(v){b.call(x,v.data,v.meta)}):this._worker.on(y,function(){a.delay(b,arguments,x)}),this},resume:function(){return a.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(y){if(a.checkSupport("nodestream"),this._outputType!=="nodebuffer")throw new Error(this._outputType+" is not supported by this method");return new f(this,{objectMode:this._outputType!=="nodebuffer"},y)}},i.exports=m},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(n,i,r){if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",r.nodebuffer=typeof Buffer<"u",r.uint8array=typeof Uint8Array<"u",typeof ArrayBuffer>"u")r.blob=!1;else{var a=new ArrayBuffer(0);try{r.blob=new Blob([a],{type:"application/zip"}).size===0}catch{try{var s=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);s.append(a),r.blob=s.getBlob("application/zip").size===0}catch{r.blob=!1}}}try{r.nodestream=!!n("readable-stream").Readable}catch{r.nodestream=!1}},{"readable-stream":16}],31:[function(n,i,r){for(var a=n("./utils"),s=n("./support"),o=n("./nodejsUtils"),l=n("./stream/GenericWorker"),c=new Array(256),d=0;d<256;d++)c[d]=252<=d?6:248<=d?5:240<=d?4:224<=d?3:192<=d?2:1;c[254]=c[254]=1;function f(){l.call(this,"utf-8 decode"),this.leftOver=null}function p(){l.call(this,"utf-8 encode")}r.utf8encode=function(m){return s.nodebuffer?o.newBufferFrom(m,"utf-8"):(function(y){var b,x,v,w,M,A=y.length,T=0;for(w=0;w<A;w++)(64512&(x=y.charCodeAt(w)))==55296&&w+1<A&&(64512&(v=y.charCodeAt(w+1)))==56320&&(x=65536+(x-55296<<10)+(v-56320),w++),T+=x<128?1:x<2048?2:x<65536?3:4;for(b=s.uint8array?new Uint8Array(T):new Array(T),w=M=0;M<T;w++)(64512&(x=y.charCodeAt(w)))==55296&&w+1<A&&(64512&(v=y.charCodeAt(w+1)))==56320&&(x=65536+(x-55296<<10)+(v-56320),w++),x<128?b[M++]=x:(x<2048?b[M++]=192|x>>>6:(x<65536?b[M++]=224|x>>>12:(b[M++]=240|x>>>18,b[M++]=128|x>>>12&63),b[M++]=128|x>>>6&63),b[M++]=128|63&x);return b})(m)},r.utf8decode=function(m){return s.nodebuffer?a.transformTo("nodebuffer",m).toString("utf-8"):(function(y){var b,x,v,w,M=y.length,A=new Array(2*M);for(b=x=0;b<M;)if((v=y[b++])<128)A[x++]=v;else if(4<(w=c[v]))A[x++]=65533,b+=w-1;else{for(v&=w===2?31:w===3?15:7;1<w&&b<M;)v=v<<6|63&y[b++],w--;1<w?A[x++]=65533:v<65536?A[x++]=v:(v-=65536,A[x++]=55296|v>>10&1023,A[x++]=56320|1023&v)}return A.length!==x&&(A.subarray?A=A.subarray(0,x):A.length=x),a.applyFromCharCode(A)})(m=a.transformTo(s.uint8array?"uint8array":"array",m))},a.inherits(f,l),f.prototype.processChunk=function(m){var y=a.transformTo(s.uint8array?"uint8array":"array",m.data);if(this.leftOver&&this.leftOver.length){if(s.uint8array){var b=y;(y=new Uint8Array(b.length+this.leftOver.length)).set(this.leftOver,0),y.set(b,this.leftOver.length)}else y=this.leftOver.concat(y);this.leftOver=null}var x=(function(w,M){var A;for((M=M||w.length)>w.length&&(M=w.length),A=M-1;0<=A&&(192&w[A])==128;)A--;return A<0||A===0?M:A+c[w[A]]>M?A:M})(y),v=y;x!==y.length&&(s.uint8array?(v=y.subarray(0,x),this.leftOver=y.subarray(x,y.length)):(v=y.slice(0,x),this.leftOver=y.slice(x,y.length))),this.push({data:r.utf8decode(v),meta:m.meta})},f.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:r.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},r.Utf8DecodeWorker=f,a.inherits(p,l),p.prototype.processChunk=function(m){this.push({data:r.utf8encode(m.data),meta:m.meta})},r.Utf8EncodeWorker=p},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(n,i,r){var a=n("./support"),s=n("./base64"),o=n("./nodejsUtils"),l=n("./external");function c(b){return b}function d(b,x){for(var v=0;v<b.length;++v)x[v]=255&b.charCodeAt(v);return x}n("setimmediate"),r.newBlob=function(b,x){r.checkSupport("blob");try{return new Blob([b],{type:x})}catch{try{var v=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return v.append(b),v.getBlob(x)}catch{throw new Error("Bug : can't construct the Blob.")}}};var f={stringifyByChunk:function(b,x,v){var w=[],M=0,A=b.length;if(A<=v)return String.fromCharCode.apply(null,b);for(;M<A;)x==="array"||x==="nodebuffer"?w.push(String.fromCharCode.apply(null,b.slice(M,Math.min(M+v,A)))):w.push(String.fromCharCode.apply(null,b.subarray(M,Math.min(M+v,A)))),M+=v;return w.join("")},stringifyByChar:function(b){for(var x="",v=0;v<b.length;v++)x+=String.fromCharCode(b[v]);return x},applyCanBeUsed:{uint8array:(function(){try{return a.uint8array&&String.fromCharCode.apply(null,new Uint8Array(1)).length===1}catch{return!1}})(),nodebuffer:(function(){try{return a.nodebuffer&&String.fromCharCode.apply(null,o.allocBuffer(1)).length===1}catch{return!1}})()}};function p(b){var x=65536,v=r.getTypeOf(b),w=!0;if(v==="uint8array"?w=f.applyCanBeUsed.uint8array:v==="nodebuffer"&&(w=f.applyCanBeUsed.nodebuffer),w)for(;1<x;)try{return f.stringifyByChunk(b,v,x)}catch{x=Math.floor(x/2)}return f.stringifyByChar(b)}function m(b,x){for(var v=0;v<b.length;v++)x[v]=b[v];return x}r.applyFromCharCode=p;var y={};y.string={string:c,array:function(b){return d(b,new Array(b.length))},arraybuffer:function(b){return y.string.uint8array(b).buffer},uint8array:function(b){return d(b,new Uint8Array(b.length))},nodebuffer:function(b){return d(b,o.allocBuffer(b.length))}},y.array={string:p,array:c,arraybuffer:function(b){return new Uint8Array(b).buffer},uint8array:function(b){return new Uint8Array(b)},nodebuffer:function(b){return o.newBufferFrom(b)}},y.arraybuffer={string:function(b){return p(new Uint8Array(b))},array:function(b){return m(new Uint8Array(b),new Array(b.byteLength))},arraybuffer:c,uint8array:function(b){return new Uint8Array(b)},nodebuffer:function(b){return o.newBufferFrom(new Uint8Array(b))}},y.uint8array={string:p,array:function(b){return m(b,new Array(b.length))},arraybuffer:function(b){return b.buffer},uint8array:c,nodebuffer:function(b){return o.newBufferFrom(b)}},y.nodebuffer={string:p,array:function(b){return m(b,new Array(b.length))},arraybuffer:function(b){return y.nodebuffer.uint8array(b).buffer},uint8array:function(b){return m(b,new Uint8Array(b.length))},nodebuffer:c},r.transformTo=function(b,x){if(x=x||"",!b)return x;r.checkSupport(b);var v=r.getTypeOf(x);return y[v][b](x)},r.resolve=function(b){for(var x=b.split("/"),v=[],w=0;w<x.length;w++){var M=x[w];M==="."||M===""&&w!==0&&w!==x.length-1||(M===".."?v.pop():v.push(M))}return v.join("/")},r.getTypeOf=function(b){return typeof b=="string"?"string":Object.prototype.toString.call(b)==="[object Array]"?"array":a.nodebuffer&&o.isBuffer(b)?"nodebuffer":a.uint8array&&b instanceof Uint8Array?"uint8array":a.arraybuffer&&b instanceof ArrayBuffer?"arraybuffer":void 0},r.checkSupport=function(b){if(!a[b.toLowerCase()])throw new Error(b+" is not supported by this platform")},r.MAX_VALUE_16BITS=65535,r.MAX_VALUE_32BITS=-1,r.pretty=function(b){var x,v,w="";for(v=0;v<(b||"").length;v++)w+="\\x"+((x=b.charCodeAt(v))<16?"0":"")+x.toString(16).toUpperCase();return w},r.delay=function(b,x,v){setImmediate(function(){b.apply(v||null,x||[])})},r.inherits=function(b,x){function v(){}v.prototype=x.prototype,b.prototype=new v},r.extend=function(){var b,x,v={};for(b=0;b<arguments.length;b++)for(x in arguments[b])Object.prototype.hasOwnProperty.call(arguments[b],x)&&v[x]===void 0&&(v[x]=arguments[b][x]);return v},r.prepareContent=function(b,x,v,w,M){return l.Promise.resolve(x).then(function(A){return a.blob&&(A instanceof Blob||["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(A))!==-1)&&typeof FileReader<"u"?new l.Promise(function(T,D){var C=new FileReader;C.onload=function(U){T(U.target.result)},C.onerror=function(U){D(U.target.error)},C.readAsArrayBuffer(A)}):A}).then(function(A){var T=r.getTypeOf(A);return T?(T==="arraybuffer"?A=r.transformTo("uint8array",A):T==="string"&&(M?A=s.decode(A):v&&w!==!0&&(A=(function(D){return d(D,a.uint8array?new Uint8Array(D.length):new Array(D.length))})(A))),A):l.Promise.reject(new Error("Can't read the data of '"+b+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))})}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(n,i,r){var a=n("./reader/readerFor"),s=n("./utils"),o=n("./signature"),l=n("./zipEntry"),c=n("./support");function d(f){this.files=[],this.loadOptions=f}d.prototype={checkSignature:function(f){if(!this.reader.readAndCheckSignature(f)){this.reader.index-=4;var p=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+s.pretty(p)+", expected "+s.pretty(f)+")")}},isSignature:function(f,p){var m=this.reader.index;this.reader.setIndex(f);var y=this.reader.readString(4)===p;return this.reader.setIndex(m),y},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var f=this.reader.readData(this.zipCommentLength),p=c.uint8array?"uint8array":"array",m=s.transformTo(p,f);this.zipComment=this.loadOptions.decodeFileName(m)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var f,p,m,y=this.zip64EndOfCentralSize-44;0<y;)f=this.reader.readInt(2),p=this.reader.readInt(4),m=this.reader.readData(p),this.zip64ExtensibleData[f]={id:f,length:p,value:m}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var f,p;for(f=0;f<this.files.length;f++)p=this.files[f],this.reader.setIndex(p.localHeaderOffset),this.checkSignature(o.LOCAL_FILE_HEADER),p.readLocalPart(this.reader),p.handleUTF8(),p.processAttributes()},readCentralDir:function(){var f;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(o.CENTRAL_FILE_HEADER);)(f=new l({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(f);if(this.centralDirRecords!==this.files.length&&this.centralDirRecords!==0&&this.files.length===0)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var f=this.reader.lastIndexOfSignature(o.CENTRAL_DIRECTORY_END);if(f<0)throw this.isSignature(0,o.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(f);var p=f;if(this.checkSignature(o.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===s.MAX_VALUE_16BITS||this.diskWithCentralDirStart===s.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===s.MAX_VALUE_16BITS||this.centralDirRecords===s.MAX_VALUE_16BITS||this.centralDirSize===s.MAX_VALUE_32BITS||this.centralDirOffset===s.MAX_VALUE_32BITS){if(this.zip64=!0,(f=this.reader.lastIndexOfSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(f),this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,o.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(o.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(o.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var m=this.centralDirOffset+this.centralDirSize;this.zip64&&(m+=20,m+=12+this.zip64EndOfCentralSize);var y=p-m;if(0<y)this.isSignature(p,o.CENTRAL_FILE_HEADER)||(this.reader.zero=y);else if(y<0)throw new Error("Corrupted zip: missing "+Math.abs(y)+" bytes.")},prepareReader:function(f){this.reader=a(f)},load:function(f){this.prepareReader(f),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},i.exports=d},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(n,i,r){var a=n("./reader/readerFor"),s=n("./utils"),o=n("./compressedObject"),l=n("./crc32"),c=n("./utf8"),d=n("./compressions"),f=n("./support");function p(m,y){this.options=m,this.loadOptions=y}p.prototype={isEncrypted:function(){return(1&this.bitFlag)==1},useUTF8:function(){return(2048&this.bitFlag)==2048},readLocalPart:function(m){var y,b;if(m.skip(22),this.fileNameLength=m.readInt(2),b=m.readInt(2),this.fileName=m.readData(this.fileNameLength),m.skip(b),this.compressedSize===-1||this.uncompressedSize===-1)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if((y=(function(x){for(var v in d)if(Object.prototype.hasOwnProperty.call(d,v)&&d[v].magic===x)return d[v];return null})(this.compressionMethod))===null)throw new Error("Corrupted zip : compression "+s.pretty(this.compressionMethod)+" unknown (inner file : "+s.transformTo("string",this.fileName)+")");this.decompressed=new o(this.compressedSize,this.uncompressedSize,this.crc32,y,m.readData(this.compressedSize))},readCentralPart:function(m){this.versionMadeBy=m.readInt(2),m.skip(2),this.bitFlag=m.readInt(2),this.compressionMethod=m.readString(2),this.date=m.readDate(),this.crc32=m.readInt(4),this.compressedSize=m.readInt(4),this.uncompressedSize=m.readInt(4);var y=m.readInt(2);if(this.extraFieldsLength=m.readInt(2),this.fileCommentLength=m.readInt(2),this.diskNumberStart=m.readInt(2),this.internalFileAttributes=m.readInt(2),this.externalFileAttributes=m.readInt(4),this.localHeaderOffset=m.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");m.skip(y),this.readExtraFields(m),this.parseZIP64ExtraField(m),this.fileComment=m.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var m=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),m==0&&(this.dosPermissions=63&this.externalFileAttributes),m==3&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||this.fileNameStr.slice(-1)!=="/"||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var m=a(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=m.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=m.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=m.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=m.readInt(4))}},readExtraFields:function(m){var y,b,x,v=m.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});m.index+4<v;)y=m.readInt(2),b=m.readInt(2),x=m.readData(b),this.extraFields[y]={id:y,length:b,value:x};m.setIndex(v)},handleUTF8:function(){var m=f.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=c.utf8decode(this.fileName),this.fileCommentStr=c.utf8decode(this.fileComment);else{var y=this.findExtraFieldUnicodePath();if(y!==null)this.fileNameStr=y;else{var b=s.transformTo(m,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(b)}var x=this.findExtraFieldUnicodeComment();if(x!==null)this.fileCommentStr=x;else{var v=s.transformTo(m,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(v)}}},findExtraFieldUnicodePath:function(){var m=this.extraFields[28789];if(m){var y=a(m.value);return y.readInt(1)!==1||l(this.fileName)!==y.readInt(4)?null:c.utf8decode(y.readData(m.length-5))}return null},findExtraFieldUnicodeComment:function(){var m=this.extraFields[25461];if(m){var y=a(m.value);return y.readInt(1)!==1||l(this.fileComment)!==y.readInt(4)?null:c.utf8decode(y.readData(m.length-5))}return null}},i.exports=p},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(n,i,r){function a(y,b,x){this.name=y,this.dir=x.dir,this.date=x.date,this.comment=x.comment,this.unixPermissions=x.unixPermissions,this.dosPermissions=x.dosPermissions,this._data=b,this._dataBinary=x.binary,this.options={compression:x.compression,compressionOptions:x.compressionOptions}}var s=n("./stream/StreamHelper"),o=n("./stream/DataWorker"),l=n("./utf8"),c=n("./compressedObject"),d=n("./stream/GenericWorker");a.prototype={internalStream:function(y){var b=null,x="string";try{if(!y)throw new Error("No output type specified.");var v=(x=y.toLowerCase())==="string"||x==="text";x!=="binarystring"&&x!=="text"||(x="string"),b=this._decompressWorker();var w=!this._dataBinary;w&&!v&&(b=b.pipe(new l.Utf8EncodeWorker)),!w&&v&&(b=b.pipe(new l.Utf8DecodeWorker))}catch(M){(b=new d("error")).error(M)}return new s(b,x,"")},async:function(y,b){return this.internalStream(y).accumulate(b)},nodeStream:function(y,b){return this.internalStream(y||"nodebuffer").toNodejsStream(b)},_compressWorker:function(y,b){if(this._data instanceof c&&this._data.compression.magic===y.magic)return this._data.getCompressedWorker();var x=this._decompressWorker();return this._dataBinary||(x=x.pipe(new l.Utf8EncodeWorker)),c.createWorkerFrom(x,y,b)},_decompressWorker:function(){return this._data instanceof c?this._data.getContentWorker():this._data instanceof d?this._data:new o(this._data)}};for(var f=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],p=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},m=0;m<f.length;m++)a.prototype[f[m]]=p;i.exports=a},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(n,i,r){(function(a){var s,o,l=a.MutationObserver||a.WebKitMutationObserver;if(l){var c=0,d=new l(y),f=a.document.createTextNode("");d.observe(f,{characterData:!0}),s=function(){f.data=c=++c%2}}else if(a.setImmediate||a.MessageChannel===void 0)s="document"in a&&"onreadystatechange"in a.document.createElement("script")?function(){var b=a.document.createElement("script");b.onreadystatechange=function(){y(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},a.document.documentElement.appendChild(b)}:function(){setTimeout(y,0)};else{var p=new a.MessageChannel;p.port1.onmessage=y,s=function(){p.port2.postMessage(0)}}var m=[];function y(){var b,x;o=!0;for(var v=m.length;v;){for(x=m,m=[],b=-1;++b<v;)x[b]();v=m.length}o=!1}i.exports=function(b){m.push(b)!==1||o||s()}}).call(this,typeof $x<"u"?$x:typeof self<"u"?self:typeof window<"u"?window:{})},{}],37:[function(n,i,r){var a=n("immediate");function s(){}var o={},l=["REJECTED"],c=["FULFILLED"],d=["PENDING"];function f(v){if(typeof v!="function")throw new TypeError("resolver must be a function");this.state=d,this.queue=[],this.outcome=void 0,v!==s&&b(this,v)}function p(v,w,M){this.promise=v,typeof w=="function"&&(this.onFulfilled=w,this.callFulfilled=this.otherCallFulfilled),typeof M=="function"&&(this.onRejected=M,this.callRejected=this.otherCallRejected)}function m(v,w,M){a(function(){var A;try{A=w(M)}catch(T){return o.reject(v,T)}A===v?o.reject(v,new TypeError("Cannot resolve promise with itself")):o.resolve(v,A)})}function y(v){var w=v&&v.then;if(v&&(typeof v=="object"||typeof v=="function")&&typeof w=="function")return function(){w.apply(v,arguments)}}function b(v,w){var M=!1;function A(C){M||(M=!0,o.reject(v,C))}function T(C){M||(M=!0,o.resolve(v,C))}var D=x(function(){w(T,A)});D.status==="error"&&A(D.value)}function x(v,w){var M={};try{M.value=v(w),M.status="success"}catch(A){M.status="error",M.value=A}return M}(i.exports=f).prototype.finally=function(v){if(typeof v!="function")return this;var w=this.constructor;return this.then(function(M){return w.resolve(v()).then(function(){return M})},function(M){return w.resolve(v()).then(function(){throw M})})},f.prototype.catch=function(v){return this.then(null,v)},f.prototype.then=function(v,w){if(typeof v!="function"&&this.state===c||typeof w!="function"&&this.state===l)return this;var M=new this.constructor(s);return this.state!==d?m(M,this.state===c?v:w,this.outcome):this.queue.push(new p(M,v,w)),M},p.prototype.callFulfilled=function(v){o.resolve(this.promise,v)},p.prototype.otherCallFulfilled=function(v){m(this.promise,this.onFulfilled,v)},p.prototype.callRejected=function(v){o.reject(this.promise,v)},p.prototype.otherCallRejected=function(v){m(this.promise,this.onRejected,v)},o.resolve=function(v,w){var M=x(y,w);if(M.status==="error")return o.reject(v,M.value);var A=M.value;if(A)b(v,A);else{v.state=c,v.outcome=w;for(var T=-1,D=v.queue.length;++T<D;)v.queue[T].callFulfilled(w)}return v},o.reject=function(v,w){v.state=l,v.outcome=w;for(var M=-1,A=v.queue.length;++M<A;)v.queue[M].callRejected(w);return v},f.resolve=function(v){return v instanceof this?v:o.resolve(new this(s),v)},f.reject=function(v){var w=new this(s);return o.reject(w,v)},f.all=function(v){var w=this;if(Object.prototype.toString.call(v)!=="[object Array]")return this.reject(new TypeError("must be an array"));var M=v.length,A=!1;if(!M)return this.resolve([]);for(var T=new Array(M),D=0,C=-1,U=new this(s);++C<M;)P(v[C],C);return U;function P(k,B){w.resolve(k).then(function(I){T[B]=I,++D!==M||A||(A=!0,o.resolve(U,T))},function(I){A||(A=!0,o.reject(U,I))})}},f.race=function(v){var w=this;if(Object.prototype.toString.call(v)!=="[object Array]")return this.reject(new TypeError("must be an array"));var M=v.length,A=!1;if(!M)return this.resolve([]);for(var T=-1,D=new this(s);++T<M;)C=v[T],w.resolve(C).then(function(U){A||(A=!0,o.resolve(D,U))},function(U){A||(A=!0,o.reject(D,U))});var C;return D}},{immediate:36}],38:[function(n,i,r){var a={};(0,n("./lib/utils/common").assign)(a,n("./lib/deflate"),n("./lib/inflate"),n("./lib/zlib/constants")),i.exports=a},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(n,i,r){var a=n("./zlib/deflate"),s=n("./utils/common"),o=n("./utils/strings"),l=n("./zlib/messages"),c=n("./zlib/zstream"),d=Object.prototype.toString,f=0,p=-1,m=0,y=8;function b(v){if(!(this instanceof b))return new b(v);this.options=s.assign({level:p,method:y,chunkSize:16384,windowBits:15,memLevel:8,strategy:m,to:""},v||{});var w=this.options;w.raw&&0<w.windowBits?w.windowBits=-w.windowBits:w.gzip&&0<w.windowBits&&w.windowBits<16&&(w.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new c,this.strm.avail_out=0;var M=a.deflateInit2(this.strm,w.level,w.method,w.windowBits,w.memLevel,w.strategy);if(M!==f)throw new Error(l[M]);if(w.header&&a.deflateSetHeader(this.strm,w.header),w.dictionary){var A;if(A=typeof w.dictionary=="string"?o.string2buf(w.dictionary):d.call(w.dictionary)==="[object ArrayBuffer]"?new Uint8Array(w.dictionary):w.dictionary,(M=a.deflateSetDictionary(this.strm,A))!==f)throw new Error(l[M]);this._dict_set=!0}}function x(v,w){var M=new b(w);if(M.push(v,!0),M.err)throw M.msg||l[M.err];return M.result}b.prototype.push=function(v,w){var M,A,T=this.strm,D=this.options.chunkSize;if(this.ended)return!1;A=w===~~w?w:w===!0?4:0,typeof v=="string"?T.input=o.string2buf(v):d.call(v)==="[object ArrayBuffer]"?T.input=new Uint8Array(v):T.input=v,T.next_in=0,T.avail_in=T.input.length;do{if(T.avail_out===0&&(T.output=new s.Buf8(D),T.next_out=0,T.avail_out=D),(M=a.deflate(T,A))!==1&&M!==f)return this.onEnd(M),!(this.ended=!0);T.avail_out!==0&&(T.avail_in!==0||A!==4&&A!==2)||(this.options.to==="string"?this.onData(o.buf2binstring(s.shrinkBuf(T.output,T.next_out))):this.onData(s.shrinkBuf(T.output,T.next_out)))}while((0<T.avail_in||T.avail_out===0)&&M!==1);return A===4?(M=a.deflateEnd(this.strm),this.onEnd(M),this.ended=!0,M===f):A!==2||(this.onEnd(f),!(T.avail_out=0))},b.prototype.onData=function(v){this.chunks.push(v)},b.prototype.onEnd=function(v){v===f&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=v,this.msg=this.strm.msg},r.Deflate=b,r.deflate=x,r.deflateRaw=function(v,w){return(w=w||{}).raw=!0,x(v,w)},r.gzip=function(v,w){return(w=w||{}).gzip=!0,x(v,w)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(n,i,r){var a=n("./zlib/inflate"),s=n("./utils/common"),o=n("./utils/strings"),l=n("./zlib/constants"),c=n("./zlib/messages"),d=n("./zlib/zstream"),f=n("./zlib/gzheader"),p=Object.prototype.toString;function m(b){if(!(this instanceof m))return new m(b);this.options=s.assign({chunkSize:16384,windowBits:0,to:""},b||{});var x=this.options;x.raw&&0<=x.windowBits&&x.windowBits<16&&(x.windowBits=-x.windowBits,x.windowBits===0&&(x.windowBits=-15)),!(0<=x.windowBits&&x.windowBits<16)||b&&b.windowBits||(x.windowBits+=32),15<x.windowBits&&x.windowBits<48&&(15&x.windowBits)==0&&(x.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new d,this.strm.avail_out=0;var v=a.inflateInit2(this.strm,x.windowBits);if(v!==l.Z_OK)throw new Error(c[v]);this.header=new f,a.inflateGetHeader(this.strm,this.header)}function y(b,x){var v=new m(x);if(v.push(b,!0),v.err)throw v.msg||c[v.err];return v.result}m.prototype.push=function(b,x){var v,w,M,A,T,D,C=this.strm,U=this.options.chunkSize,P=this.options.dictionary,k=!1;if(this.ended)return!1;w=x===~~x?x:x===!0?l.Z_FINISH:l.Z_NO_FLUSH,typeof b=="string"?C.input=o.binstring2buf(b):p.call(b)==="[object ArrayBuffer]"?C.input=new Uint8Array(b):C.input=b,C.next_in=0,C.avail_in=C.input.length;do{if(C.avail_out===0&&(C.output=new s.Buf8(U),C.next_out=0,C.avail_out=U),(v=a.inflate(C,l.Z_NO_FLUSH))===l.Z_NEED_DICT&&P&&(D=typeof P=="string"?o.string2buf(P):p.call(P)==="[object ArrayBuffer]"?new Uint8Array(P):P,v=a.inflateSetDictionary(this.strm,D)),v===l.Z_BUF_ERROR&&k===!0&&(v=l.Z_OK,k=!1),v!==l.Z_STREAM_END&&v!==l.Z_OK)return this.onEnd(v),!(this.ended=!0);C.next_out&&(C.avail_out!==0&&v!==l.Z_STREAM_END&&(C.avail_in!==0||w!==l.Z_FINISH&&w!==l.Z_SYNC_FLUSH)||(this.options.to==="string"?(M=o.utf8border(C.output,C.next_out),A=C.next_out-M,T=o.buf2string(C.output,M),C.next_out=A,C.avail_out=U-A,A&&s.arraySet(C.output,C.output,M,A,0),this.onData(T)):this.onData(s.shrinkBuf(C.output,C.next_out)))),C.avail_in===0&&C.avail_out===0&&(k=!0)}while((0<C.avail_in||C.avail_out===0)&&v!==l.Z_STREAM_END);return v===l.Z_STREAM_END&&(w=l.Z_FINISH),w===l.Z_FINISH?(v=a.inflateEnd(this.strm),this.onEnd(v),this.ended=!0,v===l.Z_OK):w!==l.Z_SYNC_FLUSH||(this.onEnd(l.Z_OK),!(C.avail_out=0))},m.prototype.onData=function(b){this.chunks.push(b)},m.prototype.onEnd=function(b){b===l.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=b,this.msg=this.strm.msg},r.Inflate=m,r.inflate=y,r.inflateRaw=function(b,x){return(x=x||{}).raw=!0,y(b,x)},r.ungzip=y},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(n,i,r){var a=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";r.assign=function(l){for(var c=Array.prototype.slice.call(arguments,1);c.length;){var d=c.shift();if(d){if(typeof d!="object")throw new TypeError(d+"must be non-object");for(var f in d)d.hasOwnProperty(f)&&(l[f]=d[f])}}return l},r.shrinkBuf=function(l,c){return l.length===c?l:l.subarray?l.subarray(0,c):(l.length=c,l)};var s={arraySet:function(l,c,d,f,p){if(c.subarray&&l.subarray)l.set(c.subarray(d,d+f),p);else for(var m=0;m<f;m++)l[p+m]=c[d+m]},flattenChunks:function(l){var c,d,f,p,m,y;for(c=f=0,d=l.length;c<d;c++)f+=l[c].length;for(y=new Uint8Array(f),c=p=0,d=l.length;c<d;c++)m=l[c],y.set(m,p),p+=m.length;return y}},o={arraySet:function(l,c,d,f,p){for(var m=0;m<f;m++)l[p+m]=c[d+m]},flattenChunks:function(l){return[].concat.apply([],l)}};r.setTyped=function(l){l?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,s)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,o))},r.setTyped(a)},{}],42:[function(n,i,r){var a=n("./common"),s=!0,o=!0;try{String.fromCharCode.apply(null,[0])}catch{s=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{o=!1}for(var l=new a.Buf8(256),c=0;c<256;c++)l[c]=252<=c?6:248<=c?5:240<=c?4:224<=c?3:192<=c?2:1;function d(f,p){if(p<65537&&(f.subarray&&o||!f.subarray&&s))return String.fromCharCode.apply(null,a.shrinkBuf(f,p));for(var m="",y=0;y<p;y++)m+=String.fromCharCode(f[y]);return m}l[254]=l[254]=1,r.string2buf=function(f){var p,m,y,b,x,v=f.length,w=0;for(b=0;b<v;b++)(64512&(m=f.charCodeAt(b)))==55296&&b+1<v&&(64512&(y=f.charCodeAt(b+1)))==56320&&(m=65536+(m-55296<<10)+(y-56320),b++),w+=m<128?1:m<2048?2:m<65536?3:4;for(p=new a.Buf8(w),b=x=0;x<w;b++)(64512&(m=f.charCodeAt(b)))==55296&&b+1<v&&(64512&(y=f.charCodeAt(b+1)))==56320&&(m=65536+(m-55296<<10)+(y-56320),b++),m<128?p[x++]=m:(m<2048?p[x++]=192|m>>>6:(m<65536?p[x++]=224|m>>>12:(p[x++]=240|m>>>18,p[x++]=128|m>>>12&63),p[x++]=128|m>>>6&63),p[x++]=128|63&m);return p},r.buf2binstring=function(f){return d(f,f.length)},r.binstring2buf=function(f){for(var p=new a.Buf8(f.length),m=0,y=p.length;m<y;m++)p[m]=f.charCodeAt(m);return p},r.buf2string=function(f,p){var m,y,b,x,v=p||f.length,w=new Array(2*v);for(m=y=0;m<v;)if((b=f[m++])<128)w[y++]=b;else if(4<(x=l[b]))w[y++]=65533,m+=x-1;else{for(b&=x===2?31:x===3?15:7;1<x&&m<v;)b=b<<6|63&f[m++],x--;1<x?w[y++]=65533:b<65536?w[y++]=b:(b-=65536,w[y++]=55296|b>>10&1023,w[y++]=56320|1023&b)}return d(w,y)},r.utf8border=function(f,p){var m;for((p=p||f.length)>f.length&&(p=f.length),m=p-1;0<=m&&(192&f[m])==128;)m--;return m<0||m===0?p:m+l[f[m]]>p?m:p}},{"./common":41}],43:[function(n,i,r){i.exports=function(a,s,o,l){for(var c=65535&a|0,d=a>>>16&65535|0,f=0;o!==0;){for(o-=f=2e3<o?2e3:o;d=d+(c=c+s[l++]|0)|0,--f;);c%=65521,d%=65521}return c|d<<16|0}},{}],44:[function(n,i,r){i.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(n,i,r){var a=(function(){for(var s,o=[],l=0;l<256;l++){s=l;for(var c=0;c<8;c++)s=1&s?3988292384^s>>>1:s>>>1;o[l]=s}return o})();i.exports=function(s,o,l,c){var d=a,f=c+l;s^=-1;for(var p=c;p<f;p++)s=s>>>8^d[255&(s^o[p])];return-1^s}},{}],46:[function(n,i,r){var a,s=n("../utils/common"),o=n("./trees"),l=n("./adler32"),c=n("./crc32"),d=n("./messages"),f=0,p=4,m=0,y=-2,b=-1,x=4,v=2,w=8,M=9,A=286,T=30,D=19,C=2*A+1,U=15,P=3,k=258,B=k+P+1,I=42,W=113,O=1,$=2,q=3,G=4;function Y(z,V){return z.msg=d[V],V}function Q(z){return(z<<1)-(4<z?9:0)}function se(z){for(var V=z.length;0<=--V;)z[V]=0}function H(z){var V=z.state,ne=V.pending;ne>z.avail_out&&(ne=z.avail_out),ne!==0&&(s.arraySet(z.output,V.pending_buf,V.pending_out,ne,z.next_out),z.next_out+=ne,V.pending_out+=ne,z.total_out+=ne,z.avail_out-=ne,V.pending-=ne,V.pending===0&&(V.pending_out=0))}function X(z,V){o._tr_flush_block(z,0<=z.block_start?z.block_start:-1,z.strstart-z.block_start,V),z.block_start=z.strstart,H(z.strm)}function re(z,V){z.pending_buf[z.pending++]=V}function ce(z,V){z.pending_buf[z.pending++]=V>>>8&255,z.pending_buf[z.pending++]=255&V}function ye(z,V){var ne,J,ee=z.max_chain_length,ae=z.strstart,ie=z.prev_length,we=z.nice_match,ve=z.strstart>z.w_size-B?z.strstart-(z.w_size-B):0,F=z.window,L=z.w_mask,K=z.prev,pe=z.strstart+k,xe=F[ae+ie-1],fe=F[ae+ie];z.prev_length>=z.good_match&&(ee>>=2),we>z.lookahead&&(we=z.lookahead);do if(F[(ne=V)+ie]===fe&&F[ne+ie-1]===xe&&F[ne]===F[ae]&&F[++ne]===F[ae+1]){ae+=2,ne++;do;while(F[++ae]===F[++ne]&&F[++ae]===F[++ne]&&F[++ae]===F[++ne]&&F[++ae]===F[++ne]&&F[++ae]===F[++ne]&&F[++ae]===F[++ne]&&F[++ae]===F[++ne]&&F[++ae]===F[++ne]&&ae<pe);if(J=k-(pe-ae),ae=pe-k,ie<J){if(z.match_start=V,we<=(ie=J))break;xe=F[ae+ie-1],fe=F[ae+ie]}}while((V=K[V&L])>ve&&--ee!=0);return ie<=z.lookahead?ie:z.lookahead}function me(z){var V,ne,J,ee,ae,ie,we,ve,F,L,K=z.w_size;do{if(ee=z.window_size-z.lookahead-z.strstart,z.strstart>=K+(K-B)){for(s.arraySet(z.window,z.window,K,K,0),z.match_start-=K,z.strstart-=K,z.block_start-=K,V=ne=z.hash_size;J=z.head[--V],z.head[V]=K<=J?J-K:0,--ne;);for(V=ne=K;J=z.prev[--V],z.prev[V]=K<=J?J-K:0,--ne;);ee+=K}if(z.strm.avail_in===0)break;if(ie=z.strm,we=z.window,ve=z.strstart+z.lookahead,F=ee,L=void 0,L=ie.avail_in,F<L&&(L=F),ne=L===0?0:(ie.avail_in-=L,s.arraySet(we,ie.input,ie.next_in,L,ve),ie.state.wrap===1?ie.adler=l(ie.adler,we,L,ve):ie.state.wrap===2&&(ie.adler=c(ie.adler,we,L,ve)),ie.next_in+=L,ie.total_in+=L,L),z.lookahead+=ne,z.lookahead+z.insert>=P)for(ae=z.strstart-z.insert,z.ins_h=z.window[ae],z.ins_h=(z.ins_h<<z.hash_shift^z.window[ae+1])&z.hash_mask;z.insert&&(z.ins_h=(z.ins_h<<z.hash_shift^z.window[ae+P-1])&z.hash_mask,z.prev[ae&z.w_mask]=z.head[z.ins_h],z.head[z.ins_h]=ae,ae++,z.insert--,!(z.lookahead+z.insert<P)););}while(z.lookahead<B&&z.strm.avail_in!==0)}function be(z,V){for(var ne,J;;){if(z.lookahead<B){if(me(z),z.lookahead<B&&V===f)return O;if(z.lookahead===0)break}if(ne=0,z.lookahead>=P&&(z.ins_h=(z.ins_h<<z.hash_shift^z.window[z.strstart+P-1])&z.hash_mask,ne=z.prev[z.strstart&z.w_mask]=z.head[z.ins_h],z.head[z.ins_h]=z.strstart),ne!==0&&z.strstart-ne<=z.w_size-B&&(z.match_length=ye(z,ne)),z.match_length>=P)if(J=o._tr_tally(z,z.strstart-z.match_start,z.match_length-P),z.lookahead-=z.match_length,z.match_length<=z.max_lazy_match&&z.lookahead>=P){for(z.match_length--;z.strstart++,z.ins_h=(z.ins_h<<z.hash_shift^z.window[z.strstart+P-1])&z.hash_mask,ne=z.prev[z.strstart&z.w_mask]=z.head[z.ins_h],z.head[z.ins_h]=z.strstart,--z.match_length!=0;);z.strstart++}else z.strstart+=z.match_length,z.match_length=0,z.ins_h=z.window[z.strstart],z.ins_h=(z.ins_h<<z.hash_shift^z.window[z.strstart+1])&z.hash_mask;else J=o._tr_tally(z,0,z.window[z.strstart]),z.lookahead--,z.strstart++;if(J&&(X(z,!1),z.strm.avail_out===0))return O}return z.insert=z.strstart<P-1?z.strstart:P-1,V===p?(X(z,!0),z.strm.avail_out===0?q:G):z.last_lit&&(X(z,!1),z.strm.avail_out===0)?O:$}function Ne(z,V){for(var ne,J,ee;;){if(z.lookahead<B){if(me(z),z.lookahead<B&&V===f)return O;if(z.lookahead===0)break}if(ne=0,z.lookahead>=P&&(z.ins_h=(z.ins_h<<z.hash_shift^z.window[z.strstart+P-1])&z.hash_mask,ne=z.prev[z.strstart&z.w_mask]=z.head[z.ins_h],z.head[z.ins_h]=z.strstart),z.prev_length=z.match_length,z.prev_match=z.match_start,z.match_length=P-1,ne!==0&&z.prev_length<z.max_lazy_match&&z.strstart-ne<=z.w_size-B&&(z.match_length=ye(z,ne),z.match_length<=5&&(z.strategy===1||z.match_length===P&&4096<z.strstart-z.match_start)&&(z.match_length=P-1)),z.prev_length>=P&&z.match_length<=z.prev_length){for(ee=z.strstart+z.lookahead-P,J=o._tr_tally(z,z.strstart-1-z.prev_match,z.prev_length-P),z.lookahead-=z.prev_length-1,z.prev_length-=2;++z.strstart<=ee&&(z.ins_h=(z.ins_h<<z.hash_shift^z.window[z.strstart+P-1])&z.hash_mask,ne=z.prev[z.strstart&z.w_mask]=z.head[z.ins_h],z.head[z.ins_h]=z.strstart),--z.prev_length!=0;);if(z.match_available=0,z.match_length=P-1,z.strstart++,J&&(X(z,!1),z.strm.avail_out===0))return O}else if(z.match_available){if((J=o._tr_tally(z,0,z.window[z.strstart-1]))&&X(z,!1),z.strstart++,z.lookahead--,z.strm.avail_out===0)return O}else z.match_available=1,z.strstart++,z.lookahead--}return z.match_available&&(J=o._tr_tally(z,0,z.window[z.strstart-1]),z.match_available=0),z.insert=z.strstart<P-1?z.strstart:P-1,V===p?(X(z,!0),z.strm.avail_out===0?q:G):z.last_lit&&(X(z,!1),z.strm.avail_out===0)?O:$}function he(z,V,ne,J,ee){this.good_length=z,this.max_lazy=V,this.nice_length=ne,this.max_chain=J,this.func=ee}function Ae(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=w,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new s.Buf16(2*C),this.dyn_dtree=new s.Buf16(2*(2*T+1)),this.bl_tree=new s.Buf16(2*(2*D+1)),se(this.dyn_ltree),se(this.dyn_dtree),se(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new s.Buf16(U+1),this.heap=new s.Buf16(2*A+1),se(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new s.Buf16(2*A+1),se(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function Be(z){var V;return z&&z.state?(z.total_in=z.total_out=0,z.data_type=v,(V=z.state).pending=0,V.pending_out=0,V.wrap<0&&(V.wrap=-V.wrap),V.status=V.wrap?I:W,z.adler=V.wrap===2?0:1,V.last_flush=f,o._tr_init(V),m):Y(z,y)}function le(z){var V=Be(z);return V===m&&(function(ne){ne.window_size=2*ne.w_size,se(ne.head),ne.max_lazy_match=a[ne.level].max_lazy,ne.good_match=a[ne.level].good_length,ne.nice_match=a[ne.level].nice_length,ne.max_chain_length=a[ne.level].max_chain,ne.strstart=0,ne.block_start=0,ne.lookahead=0,ne.insert=0,ne.match_length=ne.prev_length=P-1,ne.match_available=0,ne.ins_h=0})(z.state),V}function ct(z,V,ne,J,ee,ae){if(!z)return y;var ie=1;if(V===b&&(V=6),J<0?(ie=0,J=-J):15<J&&(ie=2,J-=16),ee<1||M<ee||ne!==w||J<8||15<J||V<0||9<V||ae<0||x<ae)return Y(z,y);J===8&&(J=9);var we=new Ae;return(z.state=we).strm=z,we.wrap=ie,we.gzhead=null,we.w_bits=J,we.w_size=1<<we.w_bits,we.w_mask=we.w_size-1,we.hash_bits=ee+7,we.hash_size=1<<we.hash_bits,we.hash_mask=we.hash_size-1,we.hash_shift=~~((we.hash_bits+P-1)/P),we.window=new s.Buf8(2*we.w_size),we.head=new s.Buf16(we.hash_size),we.prev=new s.Buf16(we.w_size),we.lit_bufsize=1<<ee+6,we.pending_buf_size=4*we.lit_bufsize,we.pending_buf=new s.Buf8(we.pending_buf_size),we.d_buf=1*we.lit_bufsize,we.l_buf=3*we.lit_bufsize,we.level=V,we.strategy=ae,we.method=ne,le(z)}a=[new he(0,0,0,0,function(z,V){var ne=65535;for(ne>z.pending_buf_size-5&&(ne=z.pending_buf_size-5);;){if(z.lookahead<=1){if(me(z),z.lookahead===0&&V===f)return O;if(z.lookahead===0)break}z.strstart+=z.lookahead,z.lookahead=0;var J=z.block_start+ne;if((z.strstart===0||z.strstart>=J)&&(z.lookahead=z.strstart-J,z.strstart=J,X(z,!1),z.strm.avail_out===0)||z.strstart-z.block_start>=z.w_size-B&&(X(z,!1),z.strm.avail_out===0))return O}return z.insert=0,V===p?(X(z,!0),z.strm.avail_out===0?q:G):(z.strstart>z.block_start&&(X(z,!1),z.strm.avail_out),O)}),new he(4,4,8,4,be),new he(4,5,16,8,be),new he(4,6,32,32,be),new he(4,4,16,16,Ne),new he(8,16,32,32,Ne),new he(8,16,128,128,Ne),new he(8,32,128,256,Ne),new he(32,128,258,1024,Ne),new he(32,258,258,4096,Ne)],r.deflateInit=function(z,V){return ct(z,V,w,15,8,0)},r.deflateInit2=ct,r.deflateReset=le,r.deflateResetKeep=Be,r.deflateSetHeader=function(z,V){return z&&z.state?z.state.wrap!==2?y:(z.state.gzhead=V,m):y},r.deflate=function(z,V){var ne,J,ee,ae;if(!z||!z.state||5<V||V<0)return z?Y(z,y):y;if(J=z.state,!z.output||!z.input&&z.avail_in!==0||J.status===666&&V!==p)return Y(z,z.avail_out===0?-5:y);if(J.strm=z,ne=J.last_flush,J.last_flush=V,J.status===I)if(J.wrap===2)z.adler=0,re(J,31),re(J,139),re(J,8),J.gzhead?(re(J,(J.gzhead.text?1:0)+(J.gzhead.hcrc?2:0)+(J.gzhead.extra?4:0)+(J.gzhead.name?8:0)+(J.gzhead.comment?16:0)),re(J,255&J.gzhead.time),re(J,J.gzhead.time>>8&255),re(J,J.gzhead.time>>16&255),re(J,J.gzhead.time>>24&255),re(J,J.level===9?2:2<=J.strategy||J.level<2?4:0),re(J,255&J.gzhead.os),J.gzhead.extra&&J.gzhead.extra.length&&(re(J,255&J.gzhead.extra.length),re(J,J.gzhead.extra.length>>8&255)),J.gzhead.hcrc&&(z.adler=c(z.adler,J.pending_buf,J.pending,0)),J.gzindex=0,J.status=69):(re(J,0),re(J,0),re(J,0),re(J,0),re(J,0),re(J,J.level===9?2:2<=J.strategy||J.level<2?4:0),re(J,3),J.status=W);else{var ie=w+(J.w_bits-8<<4)<<8;ie|=(2<=J.strategy||J.level<2?0:J.level<6?1:J.level===6?2:3)<<6,J.strstart!==0&&(ie|=32),ie+=31-ie%31,J.status=W,ce(J,ie),J.strstart!==0&&(ce(J,z.adler>>>16),ce(J,65535&z.adler)),z.adler=1}if(J.status===69)if(J.gzhead.extra){for(ee=J.pending;J.gzindex<(65535&J.gzhead.extra.length)&&(J.pending!==J.pending_buf_size||(J.gzhead.hcrc&&J.pending>ee&&(z.adler=c(z.adler,J.pending_buf,J.pending-ee,ee)),H(z),ee=J.pending,J.pending!==J.pending_buf_size));)re(J,255&J.gzhead.extra[J.gzindex]),J.gzindex++;J.gzhead.hcrc&&J.pending>ee&&(z.adler=c(z.adler,J.pending_buf,J.pending-ee,ee)),J.gzindex===J.gzhead.extra.length&&(J.gzindex=0,J.status=73)}else J.status=73;if(J.status===73)if(J.gzhead.name){ee=J.pending;do{if(J.pending===J.pending_buf_size&&(J.gzhead.hcrc&&J.pending>ee&&(z.adler=c(z.adler,J.pending_buf,J.pending-ee,ee)),H(z),ee=J.pending,J.pending===J.pending_buf_size)){ae=1;break}ae=J.gzindex<J.gzhead.name.length?255&J.gzhead.name.charCodeAt(J.gzindex++):0,re(J,ae)}while(ae!==0);J.gzhead.hcrc&&J.pending>ee&&(z.adler=c(z.adler,J.pending_buf,J.pending-ee,ee)),ae===0&&(J.gzindex=0,J.status=91)}else J.status=91;if(J.status===91)if(J.gzhead.comment){ee=J.pending;do{if(J.pending===J.pending_buf_size&&(J.gzhead.hcrc&&J.pending>ee&&(z.adler=c(z.adler,J.pending_buf,J.pending-ee,ee)),H(z),ee=J.pending,J.pending===J.pending_buf_size)){ae=1;break}ae=J.gzindex<J.gzhead.comment.length?255&J.gzhead.comment.charCodeAt(J.gzindex++):0,re(J,ae)}while(ae!==0);J.gzhead.hcrc&&J.pending>ee&&(z.adler=c(z.adler,J.pending_buf,J.pending-ee,ee)),ae===0&&(J.status=103)}else J.status=103;if(J.status===103&&(J.gzhead.hcrc?(J.pending+2>J.pending_buf_size&&H(z),J.pending+2<=J.pending_buf_size&&(re(J,255&z.adler),re(J,z.adler>>8&255),z.adler=0,J.status=W)):J.status=W),J.pending!==0){if(H(z),z.avail_out===0)return J.last_flush=-1,m}else if(z.avail_in===0&&Q(V)<=Q(ne)&&V!==p)return Y(z,-5);if(J.status===666&&z.avail_in!==0)return Y(z,-5);if(z.avail_in!==0||J.lookahead!==0||V!==f&&J.status!==666){var we=J.strategy===2?(function(ve,F){for(var L;;){if(ve.lookahead===0&&(me(ve),ve.lookahead===0)){if(F===f)return O;break}if(ve.match_length=0,L=o._tr_tally(ve,0,ve.window[ve.strstart]),ve.lookahead--,ve.strstart++,L&&(X(ve,!1),ve.strm.avail_out===0))return O}return ve.insert=0,F===p?(X(ve,!0),ve.strm.avail_out===0?q:G):ve.last_lit&&(X(ve,!1),ve.strm.avail_out===0)?O:$})(J,V):J.strategy===3?(function(ve,F){for(var L,K,pe,xe,fe=ve.window;;){if(ve.lookahead<=k){if(me(ve),ve.lookahead<=k&&F===f)return O;if(ve.lookahead===0)break}if(ve.match_length=0,ve.lookahead>=P&&0<ve.strstart&&(K=fe[pe=ve.strstart-1])===fe[++pe]&&K===fe[++pe]&&K===fe[++pe]){xe=ve.strstart+k;do;while(K===fe[++pe]&&K===fe[++pe]&&K===fe[++pe]&&K===fe[++pe]&&K===fe[++pe]&&K===fe[++pe]&&K===fe[++pe]&&K===fe[++pe]&&pe<xe);ve.match_length=k-(xe-pe),ve.match_length>ve.lookahead&&(ve.match_length=ve.lookahead)}if(ve.match_length>=P?(L=o._tr_tally(ve,1,ve.match_length-P),ve.lookahead-=ve.match_length,ve.strstart+=ve.match_length,ve.match_length=0):(L=o._tr_tally(ve,0,ve.window[ve.strstart]),ve.lookahead--,ve.strstart++),L&&(X(ve,!1),ve.strm.avail_out===0))return O}return ve.insert=0,F===p?(X(ve,!0),ve.strm.avail_out===0?q:G):ve.last_lit&&(X(ve,!1),ve.strm.avail_out===0)?O:$})(J,V):a[J.level].func(J,V);if(we!==q&&we!==G||(J.status=666),we===O||we===q)return z.avail_out===0&&(J.last_flush=-1),m;if(we===$&&(V===1?o._tr_align(J):V!==5&&(o._tr_stored_block(J,0,0,!1),V===3&&(se(J.head),J.lookahead===0&&(J.strstart=0,J.block_start=0,J.insert=0))),H(z),z.avail_out===0))return J.last_flush=-1,m}return V!==p?m:J.wrap<=0?1:(J.wrap===2?(re(J,255&z.adler),re(J,z.adler>>8&255),re(J,z.adler>>16&255),re(J,z.adler>>24&255),re(J,255&z.total_in),re(J,z.total_in>>8&255),re(J,z.total_in>>16&255),re(J,z.total_in>>24&255)):(ce(J,z.adler>>>16),ce(J,65535&z.adler)),H(z),0<J.wrap&&(J.wrap=-J.wrap),J.pending!==0?m:1)},r.deflateEnd=function(z){var V;return z&&z.state?(V=z.state.status)!==I&&V!==69&&V!==73&&V!==91&&V!==103&&V!==W&&V!==666?Y(z,y):(z.state=null,V===W?Y(z,-3):m):y},r.deflateSetDictionary=function(z,V){var ne,J,ee,ae,ie,we,ve,F,L=V.length;if(!z||!z.state||(ae=(ne=z.state).wrap)===2||ae===1&&ne.status!==I||ne.lookahead)return y;for(ae===1&&(z.adler=l(z.adler,V,L,0)),ne.wrap=0,L>=ne.w_size&&(ae===0&&(se(ne.head),ne.strstart=0,ne.block_start=0,ne.insert=0),F=new s.Buf8(ne.w_size),s.arraySet(F,V,L-ne.w_size,ne.w_size,0),V=F,L=ne.w_size),ie=z.avail_in,we=z.next_in,ve=z.input,z.avail_in=L,z.next_in=0,z.input=V,me(ne);ne.lookahead>=P;){for(J=ne.strstart,ee=ne.lookahead-(P-1);ne.ins_h=(ne.ins_h<<ne.hash_shift^ne.window[J+P-1])&ne.hash_mask,ne.prev[J&ne.w_mask]=ne.head[ne.ins_h],ne.head[ne.ins_h]=J,J++,--ee;);ne.strstart=J,ne.lookahead=P-1,me(ne)}return ne.strstart+=ne.lookahead,ne.block_start=ne.strstart,ne.insert=ne.lookahead,ne.lookahead=0,ne.match_length=ne.prev_length=P-1,ne.match_available=0,z.next_in=we,z.input=ve,z.avail_in=ie,ne.wrap=ae,m},r.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(n,i,r){i.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(n,i,r){i.exports=function(a,s){var o,l,c,d,f,p,m,y,b,x,v,w,M,A,T,D,C,U,P,k,B,I,W,O,$;o=a.state,l=a.next_in,O=a.input,c=l+(a.avail_in-5),d=a.next_out,$=a.output,f=d-(s-a.avail_out),p=d+(a.avail_out-257),m=o.dmax,y=o.wsize,b=o.whave,x=o.wnext,v=o.window,w=o.hold,M=o.bits,A=o.lencode,T=o.distcode,D=(1<<o.lenbits)-1,C=(1<<o.distbits)-1;e:do{M<15&&(w+=O[l++]<<M,M+=8,w+=O[l++]<<M,M+=8),U=A[w&D];t:for(;;){if(w>>>=P=U>>>24,M-=P,(P=U>>>16&255)===0)$[d++]=65535&U;else{if(!(16&P)){if((64&P)==0){U=A[(65535&U)+(w&(1<<P)-1)];continue t}if(32&P){o.mode=12;break e}a.msg="invalid literal/length code",o.mode=30;break e}k=65535&U,(P&=15)&&(M<P&&(w+=O[l++]<<M,M+=8),k+=w&(1<<P)-1,w>>>=P,M-=P),M<15&&(w+=O[l++]<<M,M+=8,w+=O[l++]<<M,M+=8),U=T[w&C];n:for(;;){if(w>>>=P=U>>>24,M-=P,!(16&(P=U>>>16&255))){if((64&P)==0){U=T[(65535&U)+(w&(1<<P)-1)];continue n}a.msg="invalid distance code",o.mode=30;break e}if(B=65535&U,M<(P&=15)&&(w+=O[l++]<<M,(M+=8)<P&&(w+=O[l++]<<M,M+=8)),m<(B+=w&(1<<P)-1)){a.msg="invalid distance too far back",o.mode=30;break e}if(w>>>=P,M-=P,(P=d-f)<B){if(b<(P=B-P)&&o.sane){a.msg="invalid distance too far back",o.mode=30;break e}if(W=v,(I=0)===x){if(I+=y-P,P<k){for(k-=P;$[d++]=v[I++],--P;);I=d-B,W=$}}else if(x<P){if(I+=y+x-P,(P-=x)<k){for(k-=P;$[d++]=v[I++],--P;);if(I=0,x<k){for(k-=P=x;$[d++]=v[I++],--P;);I=d-B,W=$}}}else if(I+=x-P,P<k){for(k-=P;$[d++]=v[I++],--P;);I=d-B,W=$}for(;2<k;)$[d++]=W[I++],$[d++]=W[I++],$[d++]=W[I++],k-=3;k&&($[d++]=W[I++],1<k&&($[d++]=W[I++]))}else{for(I=d-B;$[d++]=$[I++],$[d++]=$[I++],$[d++]=$[I++],2<(k-=3););k&&($[d++]=$[I++],1<k&&($[d++]=$[I++]))}break}}break}}while(l<c&&d<p);l-=k=M>>3,w&=(1<<(M-=k<<3))-1,a.next_in=l,a.next_out=d,a.avail_in=l<c?c-l+5:5-(l-c),a.avail_out=d<p?p-d+257:257-(d-p),o.hold=w,o.bits=M}},{}],49:[function(n,i,r){var a=n("../utils/common"),s=n("./adler32"),o=n("./crc32"),l=n("./inffast"),c=n("./inftrees"),d=1,f=2,p=0,m=-2,y=1,b=852,x=592;function v(I){return(I>>>24&255)+(I>>>8&65280)+((65280&I)<<8)+((255&I)<<24)}function w(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new a.Buf16(320),this.work=new a.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function M(I){var W;return I&&I.state?(W=I.state,I.total_in=I.total_out=W.total=0,I.msg="",W.wrap&&(I.adler=1&W.wrap),W.mode=y,W.last=0,W.havedict=0,W.dmax=32768,W.head=null,W.hold=0,W.bits=0,W.lencode=W.lendyn=new a.Buf32(b),W.distcode=W.distdyn=new a.Buf32(x),W.sane=1,W.back=-1,p):m}function A(I){var W;return I&&I.state?((W=I.state).wsize=0,W.whave=0,W.wnext=0,M(I)):m}function T(I,W){var O,$;return I&&I.state?($=I.state,W<0?(O=0,W=-W):(O=1+(W>>4),W<48&&(W&=15)),W&&(W<8||15<W)?m:($.window!==null&&$.wbits!==W&&($.window=null),$.wrap=O,$.wbits=W,A(I))):m}function D(I,W){var O,$;return I?($=new w,(I.state=$).window=null,(O=T(I,W))!==p&&(I.state=null),O):m}var C,U,P=!0;function k(I){if(P){var W;for(C=new a.Buf32(512),U=new a.Buf32(32),W=0;W<144;)I.lens[W++]=8;for(;W<256;)I.lens[W++]=9;for(;W<280;)I.lens[W++]=7;for(;W<288;)I.lens[W++]=8;for(c(d,I.lens,0,288,C,0,I.work,{bits:9}),W=0;W<32;)I.lens[W++]=5;c(f,I.lens,0,32,U,0,I.work,{bits:5}),P=!1}I.lencode=C,I.lenbits=9,I.distcode=U,I.distbits=5}function B(I,W,O,$){var q,G=I.state;return G.window===null&&(G.wsize=1<<G.wbits,G.wnext=0,G.whave=0,G.window=new a.Buf8(G.wsize)),$>=G.wsize?(a.arraySet(G.window,W,O-G.wsize,G.wsize,0),G.wnext=0,G.whave=G.wsize):($<(q=G.wsize-G.wnext)&&(q=$),a.arraySet(G.window,W,O-$,q,G.wnext),($-=q)?(a.arraySet(G.window,W,O-$,$,0),G.wnext=$,G.whave=G.wsize):(G.wnext+=q,G.wnext===G.wsize&&(G.wnext=0),G.whave<G.wsize&&(G.whave+=q))),0}r.inflateReset=A,r.inflateReset2=T,r.inflateResetKeep=M,r.inflateInit=function(I){return D(I,15)},r.inflateInit2=D,r.inflate=function(I,W){var O,$,q,G,Y,Q,se,H,X,re,ce,ye,me,be,Ne,he,Ae,Be,le,ct,z,V,ne,J,ee=0,ae=new a.Buf8(4),ie=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!I||!I.state||!I.output||!I.input&&I.avail_in!==0)return m;(O=I.state).mode===12&&(O.mode=13),Y=I.next_out,q=I.output,se=I.avail_out,G=I.next_in,$=I.input,Q=I.avail_in,H=O.hold,X=O.bits,re=Q,ce=se,V=p;e:for(;;)switch(O.mode){case y:if(O.wrap===0){O.mode=13;break}for(;X<16;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}if(2&O.wrap&&H===35615){ae[O.check=0]=255&H,ae[1]=H>>>8&255,O.check=o(O.check,ae,2,0),X=H=0,O.mode=2;break}if(O.flags=0,O.head&&(O.head.done=!1),!(1&O.wrap)||(((255&H)<<8)+(H>>8))%31){I.msg="incorrect header check",O.mode=30;break}if((15&H)!=8){I.msg="unknown compression method",O.mode=30;break}if(X-=4,z=8+(15&(H>>>=4)),O.wbits===0)O.wbits=z;else if(z>O.wbits){I.msg="invalid window size",O.mode=30;break}O.dmax=1<<z,I.adler=O.check=1,O.mode=512&H?10:12,X=H=0;break;case 2:for(;X<16;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}if(O.flags=H,(255&O.flags)!=8){I.msg="unknown compression method",O.mode=30;break}if(57344&O.flags){I.msg="unknown header flags set",O.mode=30;break}O.head&&(O.head.text=H>>8&1),512&O.flags&&(ae[0]=255&H,ae[1]=H>>>8&255,O.check=o(O.check,ae,2,0)),X=H=0,O.mode=3;case 3:for(;X<32;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}O.head&&(O.head.time=H),512&O.flags&&(ae[0]=255&H,ae[1]=H>>>8&255,ae[2]=H>>>16&255,ae[3]=H>>>24&255,O.check=o(O.check,ae,4,0)),X=H=0,O.mode=4;case 4:for(;X<16;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}O.head&&(O.head.xflags=255&H,O.head.os=H>>8),512&O.flags&&(ae[0]=255&H,ae[1]=H>>>8&255,O.check=o(O.check,ae,2,0)),X=H=0,O.mode=5;case 5:if(1024&O.flags){for(;X<16;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}O.length=H,O.head&&(O.head.extra_len=H),512&O.flags&&(ae[0]=255&H,ae[1]=H>>>8&255,O.check=o(O.check,ae,2,0)),X=H=0}else O.head&&(O.head.extra=null);O.mode=6;case 6:if(1024&O.flags&&(Q<(ye=O.length)&&(ye=Q),ye&&(O.head&&(z=O.head.extra_len-O.length,O.head.extra||(O.head.extra=new Array(O.head.extra_len)),a.arraySet(O.head.extra,$,G,ye,z)),512&O.flags&&(O.check=o(O.check,$,ye,G)),Q-=ye,G+=ye,O.length-=ye),O.length))break e;O.length=0,O.mode=7;case 7:if(2048&O.flags){if(Q===0)break e;for(ye=0;z=$[G+ye++],O.head&&z&&O.length<65536&&(O.head.name+=String.fromCharCode(z)),z&&ye<Q;);if(512&O.flags&&(O.check=o(O.check,$,ye,G)),Q-=ye,G+=ye,z)break e}else O.head&&(O.head.name=null);O.length=0,O.mode=8;case 8:if(4096&O.flags){if(Q===0)break e;for(ye=0;z=$[G+ye++],O.head&&z&&O.length<65536&&(O.head.comment+=String.fromCharCode(z)),z&&ye<Q;);if(512&O.flags&&(O.check=o(O.check,$,ye,G)),Q-=ye,G+=ye,z)break e}else O.head&&(O.head.comment=null);O.mode=9;case 9:if(512&O.flags){for(;X<16;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}if(H!==(65535&O.check)){I.msg="header crc mismatch",O.mode=30;break}X=H=0}O.head&&(O.head.hcrc=O.flags>>9&1,O.head.done=!0),I.adler=O.check=0,O.mode=12;break;case 10:for(;X<32;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}I.adler=O.check=v(H),X=H=0,O.mode=11;case 11:if(O.havedict===0)return I.next_out=Y,I.avail_out=se,I.next_in=G,I.avail_in=Q,O.hold=H,O.bits=X,2;I.adler=O.check=1,O.mode=12;case 12:if(W===5||W===6)break e;case 13:if(O.last){H>>>=7&X,X-=7&X,O.mode=27;break}for(;X<3;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}switch(O.last=1&H,X-=1,3&(H>>>=1)){case 0:O.mode=14;break;case 1:if(k(O),O.mode=20,W!==6)break;H>>>=2,X-=2;break e;case 2:O.mode=17;break;case 3:I.msg="invalid block type",O.mode=30}H>>>=2,X-=2;break;case 14:for(H>>>=7&X,X-=7&X;X<32;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}if((65535&H)!=(H>>>16^65535)){I.msg="invalid stored block lengths",O.mode=30;break}if(O.length=65535&H,X=H=0,O.mode=15,W===6)break e;case 15:O.mode=16;case 16:if(ye=O.length){if(Q<ye&&(ye=Q),se<ye&&(ye=se),ye===0)break e;a.arraySet(q,$,G,ye,Y),Q-=ye,G+=ye,se-=ye,Y+=ye,O.length-=ye;break}O.mode=12;break;case 17:for(;X<14;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}if(O.nlen=257+(31&H),H>>>=5,X-=5,O.ndist=1+(31&H),H>>>=5,X-=5,O.ncode=4+(15&H),H>>>=4,X-=4,286<O.nlen||30<O.ndist){I.msg="too many length or distance symbols",O.mode=30;break}O.have=0,O.mode=18;case 18:for(;O.have<O.ncode;){for(;X<3;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}O.lens[ie[O.have++]]=7&H,H>>>=3,X-=3}for(;O.have<19;)O.lens[ie[O.have++]]=0;if(O.lencode=O.lendyn,O.lenbits=7,ne={bits:O.lenbits},V=c(0,O.lens,0,19,O.lencode,0,O.work,ne),O.lenbits=ne.bits,V){I.msg="invalid code lengths set",O.mode=30;break}O.have=0,O.mode=19;case 19:for(;O.have<O.nlen+O.ndist;){for(;he=(ee=O.lencode[H&(1<<O.lenbits)-1])>>>16&255,Ae=65535&ee,!((Ne=ee>>>24)<=X);){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}if(Ae<16)H>>>=Ne,X-=Ne,O.lens[O.have++]=Ae;else{if(Ae===16){for(J=Ne+2;X<J;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}if(H>>>=Ne,X-=Ne,O.have===0){I.msg="invalid bit length repeat",O.mode=30;break}z=O.lens[O.have-1],ye=3+(3&H),H>>>=2,X-=2}else if(Ae===17){for(J=Ne+3;X<J;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}X-=Ne,z=0,ye=3+(7&(H>>>=Ne)),H>>>=3,X-=3}else{for(J=Ne+7;X<J;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}X-=Ne,z=0,ye=11+(127&(H>>>=Ne)),H>>>=7,X-=7}if(O.have+ye>O.nlen+O.ndist){I.msg="invalid bit length repeat",O.mode=30;break}for(;ye--;)O.lens[O.have++]=z}}if(O.mode===30)break;if(O.lens[256]===0){I.msg="invalid code -- missing end-of-block",O.mode=30;break}if(O.lenbits=9,ne={bits:O.lenbits},V=c(d,O.lens,0,O.nlen,O.lencode,0,O.work,ne),O.lenbits=ne.bits,V){I.msg="invalid literal/lengths set",O.mode=30;break}if(O.distbits=6,O.distcode=O.distdyn,ne={bits:O.distbits},V=c(f,O.lens,O.nlen,O.ndist,O.distcode,0,O.work,ne),O.distbits=ne.bits,V){I.msg="invalid distances set",O.mode=30;break}if(O.mode=20,W===6)break e;case 20:O.mode=21;case 21:if(6<=Q&&258<=se){I.next_out=Y,I.avail_out=se,I.next_in=G,I.avail_in=Q,O.hold=H,O.bits=X,l(I,ce),Y=I.next_out,q=I.output,se=I.avail_out,G=I.next_in,$=I.input,Q=I.avail_in,H=O.hold,X=O.bits,O.mode===12&&(O.back=-1);break}for(O.back=0;he=(ee=O.lencode[H&(1<<O.lenbits)-1])>>>16&255,Ae=65535&ee,!((Ne=ee>>>24)<=X);){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}if(he&&(240&he)==0){for(Be=Ne,le=he,ct=Ae;he=(ee=O.lencode[ct+((H&(1<<Be+le)-1)>>Be)])>>>16&255,Ae=65535&ee,!(Be+(Ne=ee>>>24)<=X);){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}H>>>=Be,X-=Be,O.back+=Be}if(H>>>=Ne,X-=Ne,O.back+=Ne,O.length=Ae,he===0){O.mode=26;break}if(32&he){O.back=-1,O.mode=12;break}if(64&he){I.msg="invalid literal/length code",O.mode=30;break}O.extra=15&he,O.mode=22;case 22:if(O.extra){for(J=O.extra;X<J;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}O.length+=H&(1<<O.extra)-1,H>>>=O.extra,X-=O.extra,O.back+=O.extra}O.was=O.length,O.mode=23;case 23:for(;he=(ee=O.distcode[H&(1<<O.distbits)-1])>>>16&255,Ae=65535&ee,!((Ne=ee>>>24)<=X);){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}if((240&he)==0){for(Be=Ne,le=he,ct=Ae;he=(ee=O.distcode[ct+((H&(1<<Be+le)-1)>>Be)])>>>16&255,Ae=65535&ee,!(Be+(Ne=ee>>>24)<=X);){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}H>>>=Be,X-=Be,O.back+=Be}if(H>>>=Ne,X-=Ne,O.back+=Ne,64&he){I.msg="invalid distance code",O.mode=30;break}O.offset=Ae,O.extra=15&he,O.mode=24;case 24:if(O.extra){for(J=O.extra;X<J;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}O.offset+=H&(1<<O.extra)-1,H>>>=O.extra,X-=O.extra,O.back+=O.extra}if(O.offset>O.dmax){I.msg="invalid distance too far back",O.mode=30;break}O.mode=25;case 25:if(se===0)break e;if(ye=ce-se,O.offset>ye){if((ye=O.offset-ye)>O.whave&&O.sane){I.msg="invalid distance too far back",O.mode=30;break}me=ye>O.wnext?(ye-=O.wnext,O.wsize-ye):O.wnext-ye,ye>O.length&&(ye=O.length),be=O.window}else be=q,me=Y-O.offset,ye=O.length;for(se<ye&&(ye=se),se-=ye,O.length-=ye;q[Y++]=be[me++],--ye;);O.length===0&&(O.mode=21);break;case 26:if(se===0)break e;q[Y++]=O.length,se--,O.mode=21;break;case 27:if(O.wrap){for(;X<32;){if(Q===0)break e;Q--,H|=$[G++]<<X,X+=8}if(ce-=se,I.total_out+=ce,O.total+=ce,ce&&(I.adler=O.check=O.flags?o(O.check,q,ce,Y-ce):s(O.check,q,ce,Y-ce)),ce=se,(O.flags?H:v(H))!==O.check){I.msg="incorrect data check",O.mode=30;break}X=H=0}O.mode=28;case 28:if(O.wrap&&O.flags){for(;X<32;){if(Q===0)break e;Q--,H+=$[G++]<<X,X+=8}if(H!==(4294967295&O.total)){I.msg="incorrect length check",O.mode=30;break}X=H=0}O.mode=29;case 29:V=1;break e;case 30:V=-3;break e;case 31:return-4;case 32:default:return m}return I.next_out=Y,I.avail_out=se,I.next_in=G,I.avail_in=Q,O.hold=H,O.bits=X,(O.wsize||ce!==I.avail_out&&O.mode<30&&(O.mode<27||W!==4))&&B(I,I.output,I.next_out,ce-I.avail_out)?(O.mode=31,-4):(re-=I.avail_in,ce-=I.avail_out,I.total_in+=re,I.total_out+=ce,O.total+=ce,O.wrap&&ce&&(I.adler=O.check=O.flags?o(O.check,q,ce,I.next_out-ce):s(O.check,q,ce,I.next_out-ce)),I.data_type=O.bits+(O.last?64:0)+(O.mode===12?128:0)+(O.mode===20||O.mode===15?256:0),(re==0&&ce===0||W===4)&&V===p&&(V=-5),V)},r.inflateEnd=function(I){if(!I||!I.state)return m;var W=I.state;return W.window&&(W.window=null),I.state=null,p},r.inflateGetHeader=function(I,W){var O;return I&&I.state?(2&(O=I.state).wrap)==0?m:((O.head=W).done=!1,p):m},r.inflateSetDictionary=function(I,W){var O,$=W.length;return I&&I.state?(O=I.state).wrap!==0&&O.mode!==11?m:O.mode===11&&s(1,W,$,0)!==O.check?-3:B(I,W,$,$)?(O.mode=31,-4):(O.havedict=1,p):m},r.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(n,i,r){var a=n("../utils/common"),s=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],o=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],l=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],c=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];i.exports=function(d,f,p,m,y,b,x,v){var w,M,A,T,D,C,U,P,k,B=v.bits,I=0,W=0,O=0,$=0,q=0,G=0,Y=0,Q=0,se=0,H=0,X=null,re=0,ce=new a.Buf16(16),ye=new a.Buf16(16),me=null,be=0;for(I=0;I<=15;I++)ce[I]=0;for(W=0;W<m;W++)ce[f[p+W]]++;for(q=B,$=15;1<=$&&ce[$]===0;$--);if($<q&&(q=$),$===0)return y[b++]=20971520,y[b++]=20971520,v.bits=1,0;for(O=1;O<$&&ce[O]===0;O++);for(q<O&&(q=O),I=Q=1;I<=15;I++)if(Q<<=1,(Q-=ce[I])<0)return-1;if(0<Q&&(d===0||$!==1))return-1;for(ye[1]=0,I=1;I<15;I++)ye[I+1]=ye[I]+ce[I];for(W=0;W<m;W++)f[p+W]!==0&&(x[ye[f[p+W]]++]=W);if(C=d===0?(X=me=x,19):d===1?(X=s,re-=257,me=o,be-=257,256):(X=l,me=c,-1),I=O,D=b,Y=W=H=0,A=-1,T=(se=1<<(G=q))-1,d===1&&852<se||d===2&&592<se)return 1;for(;;){for(U=I-Y,k=x[W]<C?(P=0,x[W]):x[W]>C?(P=me[be+x[W]],X[re+x[W]]):(P=96,0),w=1<<I-Y,O=M=1<<G;y[D+(H>>Y)+(M-=w)]=U<<24|P<<16|k|0,M!==0;);for(w=1<<I-1;H&w;)w>>=1;if(w!==0?(H&=w-1,H+=w):H=0,W++,--ce[I]==0){if(I===$)break;I=f[p+x[W]]}if(q<I&&(H&T)!==A){for(Y===0&&(Y=q),D+=O,Q=1<<(G=I-Y);G+Y<$&&!((Q-=ce[G+Y])<=0);)G++,Q<<=1;if(se+=1<<G,d===1&&852<se||d===2&&592<se)return 1;y[A=H&T]=q<<24|G<<16|D-b|0}}return H!==0&&(y[D+H]=I-Y<<24|64<<16|0),v.bits=q,0}},{"../utils/common":41}],51:[function(n,i,r){i.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(n,i,r){var a=n("../utils/common"),s=0,o=1;function l(ee){for(var ae=ee.length;0<=--ae;)ee[ae]=0}var c=0,d=29,f=256,p=f+1+d,m=30,y=19,b=2*p+1,x=15,v=16,w=7,M=256,A=16,T=17,D=18,C=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],U=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],P=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],k=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],B=new Array(2*(p+2));l(B);var I=new Array(2*m);l(I);var W=new Array(512);l(W);var O=new Array(256);l(O);var $=new Array(d);l($);var q,G,Y,Q=new Array(m);function se(ee,ae,ie,we,ve){this.static_tree=ee,this.extra_bits=ae,this.extra_base=ie,this.elems=we,this.max_length=ve,this.has_stree=ee&&ee.length}function H(ee,ae){this.dyn_tree=ee,this.max_code=0,this.stat_desc=ae}function X(ee){return ee<256?W[ee]:W[256+(ee>>>7)]}function re(ee,ae){ee.pending_buf[ee.pending++]=255&ae,ee.pending_buf[ee.pending++]=ae>>>8&255}function ce(ee,ae,ie){ee.bi_valid>v-ie?(ee.bi_buf|=ae<<ee.bi_valid&65535,re(ee,ee.bi_buf),ee.bi_buf=ae>>v-ee.bi_valid,ee.bi_valid+=ie-v):(ee.bi_buf|=ae<<ee.bi_valid&65535,ee.bi_valid+=ie)}function ye(ee,ae,ie){ce(ee,ie[2*ae],ie[2*ae+1])}function me(ee,ae){for(var ie=0;ie|=1&ee,ee>>>=1,ie<<=1,0<--ae;);return ie>>>1}function be(ee,ae,ie){var we,ve,F=new Array(x+1),L=0;for(we=1;we<=x;we++)F[we]=L=L+ie[we-1]<<1;for(ve=0;ve<=ae;ve++){var K=ee[2*ve+1];K!==0&&(ee[2*ve]=me(F[K]++,K))}}function Ne(ee){var ae;for(ae=0;ae<p;ae++)ee.dyn_ltree[2*ae]=0;for(ae=0;ae<m;ae++)ee.dyn_dtree[2*ae]=0;for(ae=0;ae<y;ae++)ee.bl_tree[2*ae]=0;ee.dyn_ltree[2*M]=1,ee.opt_len=ee.static_len=0,ee.last_lit=ee.matches=0}function he(ee){8<ee.bi_valid?re(ee,ee.bi_buf):0<ee.bi_valid&&(ee.pending_buf[ee.pending++]=ee.bi_buf),ee.bi_buf=0,ee.bi_valid=0}function Ae(ee,ae,ie,we){var ve=2*ae,F=2*ie;return ee[ve]<ee[F]||ee[ve]===ee[F]&&we[ae]<=we[ie]}function Be(ee,ae,ie){for(var we=ee.heap[ie],ve=ie<<1;ve<=ee.heap_len&&(ve<ee.heap_len&&Ae(ae,ee.heap[ve+1],ee.heap[ve],ee.depth)&&ve++,!Ae(ae,we,ee.heap[ve],ee.depth));)ee.heap[ie]=ee.heap[ve],ie=ve,ve<<=1;ee.heap[ie]=we}function le(ee,ae,ie){var we,ve,F,L,K=0;if(ee.last_lit!==0)for(;we=ee.pending_buf[ee.d_buf+2*K]<<8|ee.pending_buf[ee.d_buf+2*K+1],ve=ee.pending_buf[ee.l_buf+K],K++,we===0?ye(ee,ve,ae):(ye(ee,(F=O[ve])+f+1,ae),(L=C[F])!==0&&ce(ee,ve-=$[F],L),ye(ee,F=X(--we),ie),(L=U[F])!==0&&ce(ee,we-=Q[F],L)),K<ee.last_lit;);ye(ee,M,ae)}function ct(ee,ae){var ie,we,ve,F=ae.dyn_tree,L=ae.stat_desc.static_tree,K=ae.stat_desc.has_stree,pe=ae.stat_desc.elems,xe=-1;for(ee.heap_len=0,ee.heap_max=b,ie=0;ie<pe;ie++)F[2*ie]!==0?(ee.heap[++ee.heap_len]=xe=ie,ee.depth[ie]=0):F[2*ie+1]=0;for(;ee.heap_len<2;)F[2*(ve=ee.heap[++ee.heap_len]=xe<2?++xe:0)]=1,ee.depth[ve]=0,ee.opt_len--,K&&(ee.static_len-=L[2*ve+1]);for(ae.max_code=xe,ie=ee.heap_len>>1;1<=ie;ie--)Be(ee,F,ie);for(ve=pe;ie=ee.heap[1],ee.heap[1]=ee.heap[ee.heap_len--],Be(ee,F,1),we=ee.heap[1],ee.heap[--ee.heap_max]=ie,ee.heap[--ee.heap_max]=we,F[2*ve]=F[2*ie]+F[2*we],ee.depth[ve]=(ee.depth[ie]>=ee.depth[we]?ee.depth[ie]:ee.depth[we])+1,F[2*ie+1]=F[2*we+1]=ve,ee.heap[1]=ve++,Be(ee,F,1),2<=ee.heap_len;);ee.heap[--ee.heap_max]=ee.heap[1],(function(fe,Ke){var ke,$e,rt,Ue,De,ut,et=Ke.dyn_tree,Qe=Ke.max_code,st=Ke.stat_desc.static_tree,ue=Ke.stat_desc.has_stree,tt=Ke.stat_desc.extra_bits,de=Ke.stat_desc.extra_base,Le=Ke.stat_desc.max_length,Ee=0;for(Ue=0;Ue<=x;Ue++)fe.bl_count[Ue]=0;for(et[2*fe.heap[fe.heap_max]+1]=0,ke=fe.heap_max+1;ke<b;ke++)Le<(Ue=et[2*et[2*($e=fe.heap[ke])+1]+1]+1)&&(Ue=Le,Ee++),et[2*$e+1]=Ue,Qe<$e||(fe.bl_count[Ue]++,De=0,de<=$e&&(De=tt[$e-de]),ut=et[2*$e],fe.opt_len+=ut*(Ue+De),ue&&(fe.static_len+=ut*(st[2*$e+1]+De)));if(Ee!==0){do{for(Ue=Le-1;fe.bl_count[Ue]===0;)Ue--;fe.bl_count[Ue]--,fe.bl_count[Ue+1]+=2,fe.bl_count[Le]--,Ee-=2}while(0<Ee);for(Ue=Le;Ue!==0;Ue--)for($e=fe.bl_count[Ue];$e!==0;)Qe<(rt=fe.heap[--ke])||(et[2*rt+1]!==Ue&&(fe.opt_len+=(Ue-et[2*rt+1])*et[2*rt],et[2*rt+1]=Ue),$e--)}})(ee,ae),be(F,xe,ee.bl_count)}function z(ee,ae,ie){var we,ve,F=-1,L=ae[1],K=0,pe=7,xe=4;for(L===0&&(pe=138,xe=3),ae[2*(ie+1)+1]=65535,we=0;we<=ie;we++)ve=L,L=ae[2*(we+1)+1],++K<pe&&ve===L||(K<xe?ee.bl_tree[2*ve]+=K:ve!==0?(ve!==F&&ee.bl_tree[2*ve]++,ee.bl_tree[2*A]++):K<=10?ee.bl_tree[2*T]++:ee.bl_tree[2*D]++,F=ve,xe=(K=0)===L?(pe=138,3):ve===L?(pe=6,3):(pe=7,4))}function V(ee,ae,ie){var we,ve,F=-1,L=ae[1],K=0,pe=7,xe=4;for(L===0&&(pe=138,xe=3),we=0;we<=ie;we++)if(ve=L,L=ae[2*(we+1)+1],!(++K<pe&&ve===L)){if(K<xe)for(;ye(ee,ve,ee.bl_tree),--K!=0;);else ve!==0?(ve!==F&&(ye(ee,ve,ee.bl_tree),K--),ye(ee,A,ee.bl_tree),ce(ee,K-3,2)):K<=10?(ye(ee,T,ee.bl_tree),ce(ee,K-3,3)):(ye(ee,D,ee.bl_tree),ce(ee,K-11,7));F=ve,xe=(K=0)===L?(pe=138,3):ve===L?(pe=6,3):(pe=7,4)}}l(Q);var ne=!1;function J(ee,ae,ie,we){ce(ee,(c<<1)+(we?1:0),3),(function(ve,F,L,K){he(ve),re(ve,L),re(ve,~L),a.arraySet(ve.pending_buf,ve.window,F,L,ve.pending),ve.pending+=L})(ee,ae,ie)}r._tr_init=function(ee){ne||((function(){var ae,ie,we,ve,F,L=new Array(x+1);for(ve=we=0;ve<d-1;ve++)for($[ve]=we,ae=0;ae<1<<C[ve];ae++)O[we++]=ve;for(O[we-1]=ve,ve=F=0;ve<16;ve++)for(Q[ve]=F,ae=0;ae<1<<U[ve];ae++)W[F++]=ve;for(F>>=7;ve<m;ve++)for(Q[ve]=F<<7,ae=0;ae<1<<U[ve]-7;ae++)W[256+F++]=ve;for(ie=0;ie<=x;ie++)L[ie]=0;for(ae=0;ae<=143;)B[2*ae+1]=8,ae++,L[8]++;for(;ae<=255;)B[2*ae+1]=9,ae++,L[9]++;for(;ae<=279;)B[2*ae+1]=7,ae++,L[7]++;for(;ae<=287;)B[2*ae+1]=8,ae++,L[8]++;for(be(B,p+1,L),ae=0;ae<m;ae++)I[2*ae+1]=5,I[2*ae]=me(ae,5);q=new se(B,C,f+1,p,x),G=new se(I,U,0,m,x),Y=new se(new Array(0),P,0,y,w)})(),ne=!0),ee.l_desc=new H(ee.dyn_ltree,q),ee.d_desc=new H(ee.dyn_dtree,G),ee.bl_desc=new H(ee.bl_tree,Y),ee.bi_buf=0,ee.bi_valid=0,Ne(ee)},r._tr_stored_block=J,r._tr_flush_block=function(ee,ae,ie,we){var ve,F,L=0;0<ee.level?(ee.strm.data_type===2&&(ee.strm.data_type=(function(K){var pe,xe=4093624447;for(pe=0;pe<=31;pe++,xe>>>=1)if(1&xe&&K.dyn_ltree[2*pe]!==0)return s;if(K.dyn_ltree[18]!==0||K.dyn_ltree[20]!==0||K.dyn_ltree[26]!==0)return o;for(pe=32;pe<f;pe++)if(K.dyn_ltree[2*pe]!==0)return o;return s})(ee)),ct(ee,ee.l_desc),ct(ee,ee.d_desc),L=(function(K){var pe;for(z(K,K.dyn_ltree,K.l_desc.max_code),z(K,K.dyn_dtree,K.d_desc.max_code),ct(K,K.bl_desc),pe=y-1;3<=pe&&K.bl_tree[2*k[pe]+1]===0;pe--);return K.opt_len+=3*(pe+1)+5+5+4,pe})(ee),ve=ee.opt_len+3+7>>>3,(F=ee.static_len+3+7>>>3)<=ve&&(ve=F)):ve=F=ie+5,ie+4<=ve&&ae!==-1?J(ee,ae,ie,we):ee.strategy===4||F===ve?(ce(ee,2+(we?1:0),3),le(ee,B,I)):(ce(ee,4+(we?1:0),3),(function(K,pe,xe,fe){var Ke;for(ce(K,pe-257,5),ce(K,xe-1,5),ce(K,fe-4,4),Ke=0;Ke<fe;Ke++)ce(K,K.bl_tree[2*k[Ke]+1],3);V(K,K.dyn_ltree,pe-1),V(K,K.dyn_dtree,xe-1)})(ee,ee.l_desc.max_code+1,ee.d_desc.max_code+1,L+1),le(ee,ee.dyn_ltree,ee.dyn_dtree)),Ne(ee),we&&he(ee)},r._tr_tally=function(ee,ae,ie){return ee.pending_buf[ee.d_buf+2*ee.last_lit]=ae>>>8&255,ee.pending_buf[ee.d_buf+2*ee.last_lit+1]=255&ae,ee.pending_buf[ee.l_buf+ee.last_lit]=255&ie,ee.last_lit++,ae===0?ee.dyn_ltree[2*ie]++:(ee.matches++,ae--,ee.dyn_ltree[2*(O[ie]+f+1)]++,ee.dyn_dtree[2*X(ae)]++),ee.last_lit===ee.lit_bufsize-1},r._tr_align=function(ee){ce(ee,2,3),ye(ee,M,B),(function(ae){ae.bi_valid===16?(re(ae,ae.bi_buf),ae.bi_buf=0,ae.bi_valid=0):8<=ae.bi_valid&&(ae.pending_buf[ae.pending++]=255&ae.bi_buf,ae.bi_buf>>=8,ae.bi_valid-=8)})(ee)}},{"../utils/common":41}],53:[function(n,i,r){i.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(n,i,r){(function(a){(function(s,o){if(!s.setImmediate){var l,c,d,f,p=1,m={},y=!1,b=s.document,x=Object.getPrototypeOf&&Object.getPrototypeOf(s);x=x&&x.setTimeout?x:s,l={}.toString.call(s.process)==="[object process]"?function(A){process.nextTick(function(){w(A)})}:(function(){if(s.postMessage&&!s.importScripts){var A=!0,T=s.onmessage;return s.onmessage=function(){A=!1},s.postMessage("","*"),s.onmessage=T,A}})()?(f="setImmediate$"+Math.random()+"$",s.addEventListener?s.addEventListener("message",M,!1):s.attachEvent("onmessage",M),function(A){s.postMessage(f+A,"*")}):s.MessageChannel?((d=new MessageChannel).port1.onmessage=function(A){w(A.data)},function(A){d.port2.postMessage(A)}):b&&"onreadystatechange"in b.createElement("script")?(c=b.documentElement,function(A){var T=b.createElement("script");T.onreadystatechange=function(){w(A),T.onreadystatechange=null,c.removeChild(T),T=null},c.appendChild(T)}):function(A){setTimeout(w,0,A)},x.setImmediate=function(A){typeof A!="function"&&(A=new Function(""+A));for(var T=new Array(arguments.length-1),D=0;D<T.length;D++)T[D]=arguments[D+1];var C={callback:A,args:T};return m[p]=C,l(p),p++},x.clearImmediate=v}function v(A){delete m[A]}function w(A){if(y)setTimeout(w,0,A);else{var T=m[A];if(T){y=!0;try{(function(D){var C=D.callback,U=D.args;switch(U.length){case 0:C();break;case 1:C(U[0]);break;case 2:C(U[0],U[1]);break;case 3:C(U[0],U[1],U[2]);break;default:C.apply(o,U)}})(T)}finally{v(A),y=!1}}}}function M(A){A.source===s&&typeof A.data=="string"&&A.data.indexOf(f)===0&&w(+A.data.slice(f.length))}})(typeof self>"u"?a===void 0?this:a:self)}).call(this,typeof $x<"u"?$x:typeof self<"u"?self:typeof window<"u"?window:{})},{}]},{},[10])(10)})})(dA)),dA.exports}var Fde=Ude();const zde=Vs(Fde);function Bde(t){const e=new Bi;if(!t)return e;const n=t.trim().split(/\s+/).map(parseFloat);return n.length>=12&&e.set(n[0],n[1],n[2],n[9],n[3],n[4],n[5],n[10],n[6],n[7],n[8],n[11],0,0,0,1),e}const xz=Bde;async function yz(t){const e=[],n=t.getElementsByTagName("mesh");for(let i=0;i<n.length;i++){const r=n[i],a=[],s=[],o=r.getElementsByTagName("vertex");for(let c=0;c<o.length;c++){const d=o[c];a.push(parseFloat(d.getAttribute("x")||"0"),parseFloat(d.getAttribute("y")||"0"),parseFloat(d.getAttribute("z")||"0"))}const l=r.getElementsByTagName("triangle");for(let c=0;c<l.length;c++){const d=l[c];s.push(parseInt(d.getAttribute("v1")||"0"),parseInt(d.getAttribute("v2")||"0"),parseInt(d.getAttribute("v3")||"0"))}a.length>0&&s.length>0&&e.push({vertices:a,triangles:s})}return e}async function jde(t){const e=await zde.loadAsync(t),n=new Map,i=[],r=new DOMParser;async function a(d){const f=d.startsWith("/")?d.slice(1):d,p=e.files[f];if(!p)return null;const m=await p.async("string");return r.parseFromString(m,"application/xml")}const s=Object.keys(e.files).find(d=>d==="3D/3dmodel.model"||d.endsWith("/3dmodel.model"));if(!s){const d=Object.keys(e.files).find(f=>f.endsWith(".model"));if(d){const f=await a(d);if(f){const p=await yz(f);p.length>0&&n.set("1",{id:"1",meshes:p})}}return{objects:n,buildItems:i}}const o=await a(s);if(!o)return{objects:n,buildItems:i};const l=o.getElementsByTagName("object");for(let d=0;d<l.length;d++){const f=l[d],p=f.getAttribute("id");if(!p)continue;const m=[],y=f.getElementsByTagName("mesh");for(let x=0;x<y.length;x++){const v=y[x],w=[],M=[],A=v.getElementsByTagName("vertex");for(let D=0;D<A.length;D++){const C=A[D];w.push(parseFloat(C.getAttribute("x")||"0"),parseFloat(C.getAttribute("y")||"0"),parseFloat(C.getAttribute("z")||"0"))}const T=v.getElementsByTagName("triangle");for(let D=0;D<T.length;D++){const C=T[D];M.push(parseInt(C.getAttribute("v1")||"0"),parseInt(C.getAttribute("v2")||"0"),parseInt(C.getAttribute("v3")||"0"))}w.length>0&&M.length>0&&m.push({vertices:w,triangles:M})}const b=f.getElementsByTagName("component");for(let x=0;x<b.length;x++){const v=b[x],w=v.getAttribute("p:path")||v.getAttributeNS("http://schemas.microsoft.com/3dmanufacturing/production/2015/06","path");if(w){const M=await a(w);if(M){const A=await yz(M),T=v.getAttribute("transform"),D=xz(T);for(const C of A)if(T){const U=[];for(let P=0;P<C.vertices.length;P+=3){const k=new Ge(C.vertices[P],C.vertices[P+1],C.vertices[P+2]);k.applyMatrix4(D),U.push(k.x,k.y,k.z)}m.push({vertices:U,triangles:C.triangles})}else m.push(C)}}}m.length>0&&n.set(p,{id:p,meshes:m})}const c=o.getElementsByTagName("build");if(c.length>0){const d=c[0].getElementsByTagName("item");for(let f=0;f<d.length;f++){const p=d[f],m=p.getAttribute("objectid");if(!m)continue;const y=xz(p.getAttribute("transform"));i.push({objectId:m,transform:y})}}return{objects:n,buildItems:i}}function bz(t){const e=new Yo,n=new Float32Array(t.vertices.length);for(let i=0;i<t.vertices.length;i+=3)n[i]=t.vertices[i],n[i+1]=t.vertices[i+2],n[i+2]=t.vertices[i+1];return e.setAttribute("position",new Is(n,3)),e.setIndex(t.triangles),e.computeVertexNormals(),e}function Hde({url:t,buildVolume:e={x:256,y:256,z:256},className:n=""}){const i=R.useRef(null),r=R.useRef(null),a=R.useRef(null),s=R.useRef(null),o=R.useRef(null),[l,c]=R.useState(!0),[d,f]=R.useState(null);R.useEffect(()=>{if(!i.current)return;const y=i.current,b=y.clientWidth,x=y.clientHeight,v=new yse;v.background=new dn(1710618),a.current=v;const w=new Rs(45,b/x,.1,1e4);w.position.set(150,150,150),s.current=w;const M=new _de({antialias:!0});M.setSize(b,x),M.setPixelRatio(window.devicePixelRatio),y.appendChild(M.domElement),r.current=M;const A=new wde(w,M.domElement);A.enableDamping=!0,A.dampingFactor=.05,o.current=A;const T=new Dse(16777215,.6);v.add(T);const D=new HF(16777215,.8);D.position.set(100,100,100),v.add(D);const C=new HF(16777215,.4);C.position.set(-100,50,-100),v.add(C);const U=Math.max(e.x,e.y),P=Math.ceil(U/16),k=new Ose(U,P,4473924,3355443);v.add(k);const B=new HP(e.x,e.y),I=new zP({color:44610,transparent:!0,opacity:.15,side:Do}),W=new Bo(B,I);W.rotation.x=-Math.PI/2,W.position.y=-.5,v.add(W);let O;const $=()=>{O=requestAnimationFrame($),A.update(),M.render(v,w)};$(),fetch(t).then(G=>{if(!G.ok)throw new Error("Failed to load file");return G.arrayBuffer()}).then(jde).then(({objects:G,buildItems:Y})=>{if(G.size===0)throw new Error("No meshes found in 3MF file");const Q=new Ase({color:44610,shininess:30,flatShading:!1}),se=new Rg,H=[];if(Y.length>0)for(const he of Y){const Ae=G.get(he.objectId);if(Ae)for(const Be of Ae.meshes){const le=[];for(let z=0;z<Be.vertices.length;z+=3){const V=new Ge(Be.vertices[z],Be.vertices[z+1],Be.vertices[z+2]);V.applyMatrix4(he.transform),le.push(V.x,V.y,V.z)}const ct=bz({vertices:le,triangles:Be.triangles});H.push(ct)}}else for(const he of G.values())for(const Ae of he.meshes){const Be=bz(Ae);H.push(Be)}if(H.length>0){const he=H.length===1?H[0]:Ide(H,!1);if(he){const Ae=new Bo(he,Q);se.add(Ae)}if(H.length>1)for(const Ae of H)Ae.dispose()}const X=new lf().setFromObject(se),re=X.getCenter(new Ge);se.position.y=-X.min.y,Y.length===0&&(se.position.x=-re.x,se.position.z=-re.z),v.add(se);const ce=new lf().setFromObject(se),ye=ce.getCenter(new Ge),me=ce.getSize(new Ge),Ne=Math.max(me.x,me.y,me.z)*1.8;w.position.set(ye.x+Ne*.7,ye.y+Ne*.5,ye.z+Ne*.7),A.target.copy(ye),A.update(),c(!1)}).catch(G=>{f(G.message),c(!1)});const q=()=>{if(!y)return;const G=y.clientWidth,Y=y.clientHeight;w.aspect=G/Y,w.updateProjectionMatrix(),M.setSize(G,Y)};return window.addEventListener("resize",q),()=>{window.removeEventListener("resize",q),cancelAnimationFrame(O),A.dispose(),M.dispose(),y.removeChild(M.domElement)}},[t,e]);const p=()=>{s.current&&o.current&&(s.current.position.set(150,150,150),o.current.target.set(0,50,0),o.current.update())},m=y=>{s.current&&s.current.position.multiplyScalar(y)};return S.jsxs("div",{className:`relative ${n}`,children:[S.jsx("div",{ref:i,className:"w-full h-full min-h-[400px]"}),l&&S.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-bambu-dark/80",children:S.jsx(jr,{className:"w-8 h-8 text-bambu-green animate-spin"})}),d&&S.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-bambu-dark/80",children:S.jsx("p",{className:"text-red-400",children:d})}),!l&&!d&&S.jsxs("div",{className:"absolute bottom-4 right-4 flex gap-2",children:[S.jsx(At,{variant:"secondary",size:"sm",onClick:()=>m(.8),children:S.jsx(Ure,{className:"w-4 h-4"})}),S.jsx(At,{variant:"secondary",size:"sm",onClick:()=>m(1.25),children:S.jsx(zre,{className:"w-4 h-4"})}),S.jsx(At,{variant:"secondary",size:"sm",onClick:p,children:S.jsx(AP,{className:"w-4 h-4"})})]})]})}const aS="159",_h={ROTATE:0,DOLLY:1,PAN:2},Sh={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Vde=0,_z=1,Gde=2,WG=1,$de=2,Rl=3,Pu=0,Da=1,Ol=2,bu=0,op=1,Sz=2,wz=3,Mz=4,Wde=5,Ad=100,qde=101,Xde=102,Ez=103,Az=104,Yde=200,Kde=201,Zde=202,Jde=203,pR=204,mR=205,Qde=206,efe=207,tfe=208,nfe=209,ife=210,rfe=211,afe=212,sfe=213,ofe=214,lfe=0,cfe=1,ufe=2,r_=3,dfe=4,ffe=5,hfe=6,pfe=7,GP=0,mfe=1,gfe=2,_u=0,vfe=1,xfe=2,yfe=3,bfe=4,_fe=5,qG=300,Sp=301,wp=302,gR=303,vR=304,sS=306,xR=1e3,io=1001,yR=1002,Ir=1003,Tz=1004,fA=1005,Ps=1006,Sfe=1007,g0=1008,Su=1009,wfe=1010,Mfe=1011,$P=1012,XG=1013,hu=1014,zl=1015,v0=1016,YG=1017,KG=1018,Bd=1020,Efe=1021,Ds=1023,Afe=1024,Tfe=1025,jd=1026,Mp=1027,Cfe=1028,ZG=1029,Rfe=1030,JG=1031,QG=1033,hA=33776,pA=33777,mA=33778,gA=33779,Cz=35840,Rz=35841,Pz=35842,Dz=35843,e$=36196,Nz=37492,Oz=37496,Lz=37808,kz=37809,Iz=37810,Uz=37811,Fz=37812,zz=37813,Bz=37814,jz=37815,Hz=37816,Vz=37817,Gz=37818,$z=37819,Wz=37820,qz=37821,vA=36492,Xz=36494,Yz=36495,Pfe=36283,Kz=36284,Zz=36285,Jz=36286,t$=3e3,Hd=3001,Dfe=3200,Nfe=3201,n$=0,Ofe=1,Ns="",Ur="srgb",Ql="srgb-linear",WP="display-p3",oS="display-p3-linear",a_="linear",Yn="srgb",s_="rec709",o_="p3",wh=7680,Qz=519,Lfe=512,kfe=513,Ife=514,i$=515,Ufe=516,Ffe=517,zfe=518,Bfe=519,bR=35044,e4="300 es",_R=1035,Lo=2e3,x0=2001;class Af{addEventListener(e,n){this._listeners===void 0&&(this._listeners={});const i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(n)===-1&&i[e].push(n)}hasEventListener(e,n){if(this._listeners===void 0)return!1;const i=this._listeners;return i[e]!==void 0&&i[e].indexOf(n)!==-1}removeEventListener(e,n){if(this._listeners===void 0)return;const r=this._listeners[e];if(r!==void 0){const a=r.indexOf(n);a!==-1&&r.splice(a,1)}}dispatchEvent(e){if(this._listeners===void 0)return;const i=this._listeners[e.type];if(i!==void 0){e.target=this;const r=i.slice(0);for(let a=0,s=r.length;a<s;a++)r[a].call(this,e);e.target=null}}}const Wr=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"];let t4=1234567;const Bg=Math.PI/180,y0=180/Math.PI;function Wl(){const t=Math.random()*4294967295|0,e=Math.random()*4294967295|0,n=Math.random()*4294967295|0,i=Math.random()*4294967295|0;return(Wr[t&255]+Wr[t>>8&255]+Wr[t>>16&255]+Wr[t>>24&255]+"-"+Wr[e&255]+Wr[e>>8&255]+"-"+Wr[e>>16&15|64]+Wr[e>>24&255]+"-"+Wr[n&63|128]+Wr[n>>8&255]+"-"+Wr[n>>16&255]+Wr[n>>24&255]+Wr[i&255]+Wr[i>>8&255]+Wr[i>>16&255]+Wr[i>>24&255]).toLowerCase()}function Fr(t,e,n){return Math.max(e,Math.min(n,t))}function qP(t,e){return(t%e+e)%e}function jfe(t,e,n,i,r){return i+(t-e)*(r-i)/(n-e)}function Hfe(t,e,n){return t!==e?(n-t)/(e-t):0}function jg(t,e,n){return(1-n)*t+n*e}function Vfe(t,e,n,i){return jg(t,e,1-Math.exp(-n*i))}function Gfe(t,e=1){return e-Math.abs(qP(t,e*2)-e)}function $fe(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e),t*t*(3-2*t))}function Wfe(t,e,n){return t<=e?0:t>=n?1:(t=(t-e)/(n-e),t*t*t*(t*(t*6-15)+10))}function qfe(t,e){return t+Math.floor(Math.random()*(e-t+1))}function Xfe(t,e){return t+Math.random()*(e-t)}function Yfe(t){return t*(.5-Math.random())}function Kfe(t){t!==void 0&&(t4=t);let e=t4+=1831565813;return e=Math.imul(e^e>>>15,e|1),e^=e+Math.imul(e^e>>>7,e|61),((e^e>>>14)>>>0)/4294967296}function Zfe(t){return t*Bg}function Jfe(t){return t*y0}function SR(t){return(t&t-1)===0&&t!==0}function Qfe(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}function l_(t){return Math.pow(2,Math.floor(Math.log(t)/Math.LN2))}function ehe(t,e,n,i,r){const a=Math.cos,s=Math.sin,o=a(n/2),l=s(n/2),c=a((e+i)/2),d=s((e+i)/2),f=a((e-i)/2),p=s((e-i)/2),m=a((i-e)/2),y=s((i-e)/2);switch(r){case"XYX":t.set(o*d,l*f,l*p,o*c);break;case"YZY":t.set(l*p,o*d,l*f,o*c);break;case"ZXZ":t.set(l*f,l*p,o*d,o*c);break;case"XZX":t.set(o*d,l*y,l*m,o*c);break;case"YXY":t.set(l*m,o*d,l*y,o*c);break;case"ZYZ":t.set(l*y,l*m,o*d,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+r)}}function No(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return t/4294967295;case Uint16Array:return t/65535;case Uint8Array:return t/255;case Int32Array:return Math.max(t/2147483647,-1);case Int16Array:return Math.max(t/32767,-1);case Int8Array:return Math.max(t/127,-1);default:throw new Error("Invalid component type.")}}function Ln(t,e){switch(e.constructor){case Float32Array:return t;case Uint32Array:return Math.round(t*4294967295);case Uint16Array:return Math.round(t*65535);case Uint8Array:return Math.round(t*255);case Int32Array:return Math.round(t*2147483647);case Int16Array:return Math.round(t*32767);case Int8Array:return Math.round(t*127);default:throw new Error("Invalid component type.")}}const r$={DEG2RAD:Bg,RAD2DEG:y0,generateUUID:Wl,clamp:Fr,euclideanModulo:qP,mapLinear:jfe,inverseLerp:Hfe,lerp:jg,damp:Vfe,pingpong:Gfe,smoothstep:$fe,smootherstep:Wfe,randInt:qfe,randFloat:Xfe,randFloatSpread:Yfe,seededRandom:Kfe,degToRad:Zfe,radToDeg:Jfe,isPowerOfTwo:SR,ceilPowerOfTwo:Qfe,floorPowerOfTwo:l_,setQuaternionFromProperEuler:ehe,normalize:Ln,denormalize:No};class Ht{constructor(e=0,n=0){Ht.prototype.isVector2=!0,this.x=e,this.y=n}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,n){return this.x=e,this.y=n,this}setScalar(e){return this.x=e,this.y=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScalar(e){return this.x+=e,this.y+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subScalar(e){return this.x-=e,this.y-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this}multiply(e){return this.x*=e.x,this.y*=e.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}divide(e){return this.x/=e.x,this.y/=e.y,this}divideScalar(e){return this.multiplyScalar(1/e)}applyMatrix3(e){const n=this.x,i=this.y,r=e.elements;return this.x=r[0]*n+r[3]*i+r[6],this.y=r[1]*n+r[4]*i+r[7],this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this}clamp(e,n){return this.x=Math.max(e.x,Math.min(n.x,this.x)),this.y=Math.max(e.y,Math.min(n.y,this.y)),this}clampScalar(e,n){return this.x=Math.max(e,Math.min(n,this.x)),this.y=Math.max(e,Math.min(n,this.y)),this}clampLength(e,n){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(n,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(e){return this.x*e.x+this.y*e.y}cross(e){return this.x*e.y-this.y*e.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(e){const n=Math.sqrt(this.lengthSq()*e.lengthSq());if(n===0)return Math.PI/2;const i=this.dot(e)/n;return Math.acos(Fr(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const n=this.x-e.x,i=this.y-e.y;return n*n+i*i}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this}lerpVectors(e,n,i){return this.x=e.x+(n.x-e.x)*i,this.y=e.y+(n.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this}rotateAround(e,n){const i=Math.cos(n),r=Math.sin(n),a=this.x-e.x,s=this.y-e.y;return this.x=a*i-s*r+e.x,this.y=a*r+s*i+e.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}}class rn{constructor(e,n,i,r,a,s,o,l,c){rn.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,n,i,r,a,s,o,l,c)}set(e,n,i,r,a,s,o,l,c){const d=this.elements;return d[0]=e,d[1]=r,d[2]=o,d[3]=n,d[4]=a,d[5]=l,d[6]=i,d[7]=s,d[8]=c,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const n=this.elements,i=e.elements;return n[0]=i[0],n[1]=i[1],n[2]=i[2],n[3]=i[3],n[4]=i[4],n[5]=i[5],n[6]=i[6],n[7]=i[7],n[8]=i[8],this}extractBasis(e,n,i){return e.setFromMatrix3Column(this,0),n.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const n=e.elements;return this.set(n[0],n[4],n[8],n[1],n[5],n[9],n[2],n[6],n[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,n){const i=e.elements,r=n.elements,a=this.elements,s=i[0],o=i[3],l=i[6],c=i[1],d=i[4],f=i[7],p=i[2],m=i[5],y=i[8],b=r[0],x=r[3],v=r[6],w=r[1],M=r[4],A=r[7],T=r[2],D=r[5],C=r[8];return a[0]=s*b+o*w+l*T,a[3]=s*x+o*M+l*D,a[6]=s*v+o*A+l*C,a[1]=c*b+d*w+f*T,a[4]=c*x+d*M+f*D,a[7]=c*v+d*A+f*C,a[2]=p*b+m*w+y*T,a[5]=p*x+m*M+y*D,a[8]=p*v+m*A+y*C,this}multiplyScalar(e){const n=this.elements;return n[0]*=e,n[3]*=e,n[6]*=e,n[1]*=e,n[4]*=e,n[7]*=e,n[2]*=e,n[5]*=e,n[8]*=e,this}determinant(){const e=this.elements,n=e[0],i=e[1],r=e[2],a=e[3],s=e[4],o=e[5],l=e[6],c=e[7],d=e[8];return n*s*d-n*o*c-i*a*d+i*o*l+r*a*c-r*s*l}invert(){const e=this.elements,n=e[0],i=e[1],r=e[2],a=e[3],s=e[4],o=e[5],l=e[6],c=e[7],d=e[8],f=d*s-o*c,p=o*l-d*a,m=c*a-s*l,y=n*f+i*p+r*m;if(y===0)return this.set(0,0,0,0,0,0,0,0,0);const b=1/y;return e[0]=f*b,e[1]=(r*c-d*i)*b,e[2]=(o*i-r*s)*b,e[3]=p*b,e[4]=(d*n-r*l)*b,e[5]=(r*a-o*n)*b,e[6]=m*b,e[7]=(i*l-c*n)*b,e[8]=(s*n-i*a)*b,this}transpose(){let e;const n=this.elements;return e=n[1],n[1]=n[3],n[3]=e,e=n[2],n[2]=n[6],n[6]=e,e=n[5],n[5]=n[7],n[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const n=this.elements;return e[0]=n[0],e[1]=n[3],e[2]=n[6],e[3]=n[1],e[4]=n[4],e[5]=n[7],e[6]=n[2],e[7]=n[5],e[8]=n[8],this}setUvTransform(e,n,i,r,a,s,o){const l=Math.cos(a),c=Math.sin(a);return this.set(i*l,i*c,-i*(l*s+c*o)+s+e,-r*c,r*l,-r*(-c*s+l*o)+o+n,0,0,1),this}scale(e,n){return this.premultiply(xA.makeScale(e,n)),this}rotate(e){return this.premultiply(xA.makeRotation(-e)),this}translate(e,n){return this.premultiply(xA.makeTranslation(e,n)),this}makeTranslation(e,n){return e.isVector2?this.set(1,0,e.x,0,1,e.y,0,0,1):this.set(1,0,e,0,1,n,0,0,1),this}makeRotation(e){const n=Math.cos(e),i=Math.sin(e);return this.set(n,-i,0,i,n,0,0,0,1),this}makeScale(e,n){return this.set(e,0,0,0,n,0,0,0,1),this}equals(e){const n=this.elements,i=e.elements;for(let r=0;r<9;r++)if(n[r]!==i[r])return!1;return!0}fromArray(e,n=0){for(let i=0;i<9;i++)this.elements[i]=e[i+n];return this}toArray(e=[],n=0){const i=this.elements;return e[n]=i[0],e[n+1]=i[1],e[n+2]=i[2],e[n+3]=i[3],e[n+4]=i[4],e[n+5]=i[5],e[n+6]=i[6],e[n+7]=i[7],e[n+8]=i[8],e}clone(){return new this.constructor().fromArray(this.elements)}}const xA=new rn;function a$(t){for(let e=t.length-1;e>=0;--e)if(t[e]>=65535)return!0;return!1}function c_(t){return document.createElementNS("http://www.w3.org/1999/xhtml",t)}function the(){const t=c_("canvas");return t.style.display="block",t}const n4={};function Hg(t){t in n4||(n4[t]=!0,console.warn(t))}const i4=new rn().set(.8224621,.177538,0,.0331941,.9668058,0,.0170827,.0723974,.9105199),r4=new rn().set(1.2249401,-.2249404,0,-.0420569,1.0420571,0,-.0196376,-.0786361,1.0982735),xy={[Ql]:{transfer:a_,primaries:s_,toReference:t=>t,fromReference:t=>t},[Ur]:{transfer:Yn,primaries:s_,toReference:t=>t.convertSRGBToLinear(),fromReference:t=>t.convertLinearToSRGB()},[oS]:{transfer:a_,primaries:o_,toReference:t=>t.applyMatrix3(r4),fromReference:t=>t.applyMatrix3(i4)},[WP]:{transfer:Yn,primaries:o_,toReference:t=>t.convertSRGBToLinear().applyMatrix3(r4),fromReference:t=>t.applyMatrix3(i4).convertLinearToSRGB()}},nhe=new Set([Ql,oS]),kn={enabled:!0,_workingColorSpace:Ql,get legacyMode(){return console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),!this.enabled},set legacyMode(t){console.warn("THREE.ColorManagement: .legacyMode=false renamed to .enabled=true in r150."),this.enabled=!t},get workingColorSpace(){return this._workingColorSpace},set workingColorSpace(t){if(!nhe.has(t))throw new Error(`Unsupported working color space, "${t}".`);this._workingColorSpace=t},convert:function(t,e,n){if(this.enabled===!1||e===n||!e||!n)return t;const i=xy[e].toReference,r=xy[n].fromReference;return r(i(t))},fromWorkingColorSpace:function(t,e){return this.convert(t,this._workingColorSpace,e)},toWorkingColorSpace:function(t,e){return this.convert(t,e,this._workingColorSpace)},getPrimaries:function(t){return xy[t].primaries},getTransfer:function(t){return t===Ns?a_:xy[t].transfer}};function lp(t){return t<.04045?t*.0773993808:Math.pow(t*.9478672986+.0521327014,2.4)}function yA(t){return t<.0031308?t*12.92:1.055*Math.pow(t,.41666)-.055}let Mh;class s${static getDataURL(e){if(/^data:/i.test(e.src)||typeof HTMLCanvasElement>"u")return e.src;let n;if(e instanceof HTMLCanvasElement)n=e;else{Mh===void 0&&(Mh=c_("canvas")),Mh.width=e.width,Mh.height=e.height;const i=Mh.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),n=Mh}return n.width>2048||n.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),n.toDataURL("image/jpeg",.6)):n.toDataURL("image/png")}static sRGBToLinear(e){if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap){const n=c_("canvas");n.width=e.width,n.height=e.height;const i=n.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),a=r.data;for(let s=0;s<a.length;s++)a[s]=lp(a[s]/255)*255;return i.putImageData(r,0,0),n}else if(e.data){const n=e.data.slice(0);for(let i=0;i<n.length;i++)n instanceof Uint8Array||n instanceof Uint8ClampedArray?n[i]=Math.floor(lp(n[i]/255)*255):n[i]=lp(n[i]);return{data:n,width:e.width,height:e.height}}else return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),e}}let ihe=0;class o${constructor(e=null){this.isSource=!0,Object.defineProperty(this,"id",{value:ihe++}),this.uuid=Wl(),this.data=e,this.version=0}set needsUpdate(e){e===!0&&this.version++}toJSON(e){const n=e===void 0||typeof e=="string";if(!n&&e.images[this.uuid]!==void 0)return e.images[this.uuid];const i={uuid:this.uuid,url:""},r=this.data;if(r!==null){let a;if(Array.isArray(r)){a=[];for(let s=0,o=r.length;s<o;s++)r[s].isDataTexture?a.push(bA(r[s].image)):a.push(bA(r[s]))}else a=bA(r);i.url=a}return n||(e.images[this.uuid]=i),i}}function bA(t){return typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap?s$.getDataURL(t):t.data?{data:Array.from(t.data),width:t.width,height:t.height,type:t.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}let rhe=0;class Na extends Af{constructor(e=Na.DEFAULT_IMAGE,n=Na.DEFAULT_MAPPING,i=io,r=io,a=Ps,s=g0,o=Ds,l=Su,c=Na.DEFAULT_ANISOTROPY,d=Ns){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:rhe++}),this.uuid=Wl(),this.name="",this.source=new o$(e),this.mipmaps=[],this.mapping=n,this.channel=0,this.wrapS=i,this.wrapT=r,this.magFilter=a,this.minFilter=s,this.anisotropy=c,this.format=o,this.internalFormat=null,this.type=l,this.offset=new Ht(0,0),this.repeat=new Ht(1,1),this.center=new Ht(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new rn,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,typeof d=="string"?this.colorSpace=d:(Hg("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=d===Hd?Ur:Ns),this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}get image(){return this.source.data}set image(e=null){this.source.data=e}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}toJSON(e){const n=e===void 0||typeof e=="string";if(!n&&e.textures[this.uuid]!==void 0)return e.textures[this.uuid];const i={metadata:{version:4.6,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length>0&&(i.userData=this.userData),n||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==qG)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case xR:e.x=e.x-Math.floor(e.x);break;case io:e.x=e.x<0?0:1;break;case yR:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case xR:e.y=e.y-Math.floor(e.y);break;case io:e.y=e.y<0?0:1;break;case yR:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}get encoding(){return Hg("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace===Ur?Hd:t$}set encoding(e){Hg("THREE.Texture: Property .encoding has been replaced by .colorSpace."),this.colorSpace=e===Hd?Ur:Ns}}Na.DEFAULT_IMAGE=null;Na.DEFAULT_MAPPING=qG;Na.DEFAULT_ANISOTROPY=1;class Un{constructor(e=0,n=0,i=0,r=1){Un.prototype.isVector4=!0,this.x=e,this.y=n,this.z=i,this.w=r}get width(){return this.z}set width(e){this.z=e}get height(){return this.w}set height(e){this.w=e}set(e,n,i,r){return this.x=e,this.y=n,this.z=i,this.w=r,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this.w=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setW(e){return this.w=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;case 3:this.w=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this.w+=e.w,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this.w+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this.z=e.z+n.z,this.w=e.w+n.w,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this.z+=e.z*n,this.w+=e.w*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this.w-=e.w,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this.w-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this.z=e.z-n.z,this.w=e.w-n.w,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this.w*=e.w,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}applyMatrix4(e){const n=this.x,i=this.y,r=this.z,a=this.w,s=e.elements;return this.x=s[0]*n+s[4]*i+s[8]*r+s[12]*a,this.y=s[1]*n+s[5]*i+s[9]*r+s[13]*a,this.z=s[2]*n+s[6]*i+s[10]*r+s[14]*a,this.w=s[3]*n+s[7]*i+s[11]*r+s[15]*a,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const n=Math.sqrt(1-e.w*e.w);return n<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/n,this.y=e.y/n,this.z=e.z/n),this}setAxisAngleFromRotationMatrix(e){let n,i,r,a;const l=e.elements,c=l[0],d=l[4],f=l[8],p=l[1],m=l[5],y=l[9],b=l[2],x=l[6],v=l[10];if(Math.abs(d-p)<.01&&Math.abs(f-b)<.01&&Math.abs(y-x)<.01){if(Math.abs(d+p)<.1&&Math.abs(f+b)<.1&&Math.abs(y+x)<.1&&Math.abs(c+m+v-3)<.1)return this.set(1,0,0,0),this;n=Math.PI;const M=(c+1)/2,A=(m+1)/2,T=(v+1)/2,D=(d+p)/4,C=(f+b)/4,U=(y+x)/4;return M>A&&M>T?M<.01?(i=0,r=.707106781,a=.707106781):(i=Math.sqrt(M),r=D/i,a=C/i):A>T?A<.01?(i=.707106781,r=0,a=.707106781):(r=Math.sqrt(A),i=D/r,a=U/r):T<.01?(i=.707106781,r=.707106781,a=0):(a=Math.sqrt(T),i=C/a,r=U/a),this.set(i,r,a,n),this}let w=Math.sqrt((x-y)*(x-y)+(f-b)*(f-b)+(p-d)*(p-d));return Math.abs(w)<.001&&(w=1),this.x=(x-y)/w,this.y=(f-b)/w,this.z=(p-d)/w,this.w=Math.acos((c+m+v-1)/2),this}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this.w=Math.min(this.w,e.w),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this.w=Math.max(this.w,e.w),this}clamp(e,n){return this.x=Math.max(e.x,Math.min(n.x,this.x)),this.y=Math.max(e.y,Math.min(n.y,this.y)),this.z=Math.max(e.z,Math.min(n.z,this.z)),this.w=Math.max(e.w,Math.min(n.w,this.w)),this}clampScalar(e,n){return this.x=Math.max(e,Math.min(n,this.x)),this.y=Math.max(e,Math.min(n,this.y)),this.z=Math.max(e,Math.min(n,this.z)),this.w=Math.max(e,Math.min(n,this.w)),this}clampLength(e,n){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(n,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z+this.w*e.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this.z+=(e.z-this.z)*n,this.w+=(e.w-this.w)*n,this}lerpVectors(e,n,i){return this.x=e.x+(n.x-e.x)*i,this.y=e.y+(n.y-e.y)*i,this.z=e.z+(n.z-e.z)*i,this.w=e.w+(n.w-e.w)*i,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this.z=e[n+2],this.w=e[n+3],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e[n+2]=this.z,e[n+3]=this.w,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this.z=e.getZ(n),this.w=e.getW(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}}class ahe extends Af{constructor(e=1,n=1,i={}){super(),this.isRenderTarget=!0,this.width=e,this.height=n,this.depth=1,this.scissor=new Un(0,0,e,n),this.scissorTest=!1,this.viewport=new Un(0,0,e,n);const r={width:e,height:n,depth:1};i.encoding!==void 0&&(Hg("THREE.WebGLRenderTarget: option.encoding has been replaced by option.colorSpace."),i.colorSpace=i.encoding===Hd?Ur:Ns),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Ps,depthBuffer:!0,stencilBuffer:!1,depthTexture:null,samples:0},i),this.texture=new Na(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=i.generateMipmaps,this.texture.internalFormat=i.internalFormat,this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.depthTexture=i.depthTexture,this.samples=i.samples}setSize(e,n,i=1){(this.width!==e||this.height!==n||this.depth!==i)&&(this.width=e,this.height=n,this.depth=i,this.texture.image.width=e,this.texture.image.height=n,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,n),this.scissor.set(0,0,e,n)}clone(){return new this.constructor().copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.scissor.copy(e.scissor),this.scissorTest=e.scissorTest,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const n=Object.assign({},e.texture.image);return this.texture.source=new o$(n),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,e.depthTexture!==null&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class cf extends ahe{constructor(e=1,n=1,i={}){super(e,n,i),this.isWebGLRenderTarget=!0}}class l$ extends Na{constructor(e=null,n=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:n,height:i,depth:r},this.magFilter=Ir,this.minFilter=Ir,this.wrapR=io,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class she extends Na{constructor(e=null,n=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:n,height:i,depth:r},this.magFilter=Ir,this.minFilter=Ir,this.wrapR=io,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class uf{constructor(e=0,n=0,i=0,r=1){this.isQuaternion=!0,this._x=e,this._y=n,this._z=i,this._w=r}static slerpFlat(e,n,i,r,a,s,o){let l=i[r+0],c=i[r+1],d=i[r+2],f=i[r+3];const p=a[s+0],m=a[s+1],y=a[s+2],b=a[s+3];if(o===0){e[n+0]=l,e[n+1]=c,e[n+2]=d,e[n+3]=f;return}if(o===1){e[n+0]=p,e[n+1]=m,e[n+2]=y,e[n+3]=b;return}if(f!==b||l!==p||c!==m||d!==y){let x=1-o;const v=l*p+c*m+d*y+f*b,w=v>=0?1:-1,M=1-v*v;if(M>Number.EPSILON){const T=Math.sqrt(M),D=Math.atan2(T,v*w);x=Math.sin(x*D)/T,o=Math.sin(o*D)/T}const A=o*w;if(l=l*x+p*A,c=c*x+m*A,d=d*x+y*A,f=f*x+b*A,x===1-o){const T=1/Math.sqrt(l*l+c*c+d*d+f*f);l*=T,c*=T,d*=T,f*=T}}e[n]=l,e[n+1]=c,e[n+2]=d,e[n+3]=f}static multiplyQuaternionsFlat(e,n,i,r,a,s){const o=i[r],l=i[r+1],c=i[r+2],d=i[r+3],f=a[s],p=a[s+1],m=a[s+2],y=a[s+3];return e[n]=o*y+d*f+l*m-c*p,e[n+1]=l*y+d*p+c*f-o*m,e[n+2]=c*y+d*m+o*p-l*f,e[n+3]=d*y-o*f-l*p-c*m,e}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,n,i,r){return this._x=e,this._y=n,this._z=i,this._w=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,n){const i=e._x,r=e._y,a=e._z,s=e._order,o=Math.cos,l=Math.sin,c=o(i/2),d=o(r/2),f=o(a/2),p=l(i/2),m=l(r/2),y=l(a/2);switch(s){case"XYZ":this._x=p*d*f+c*m*y,this._y=c*m*f-p*d*y,this._z=c*d*y+p*m*f,this._w=c*d*f-p*m*y;break;case"YXZ":this._x=p*d*f+c*m*y,this._y=c*m*f-p*d*y,this._z=c*d*y-p*m*f,this._w=c*d*f+p*m*y;break;case"ZXY":this._x=p*d*f-c*m*y,this._y=c*m*f+p*d*y,this._z=c*d*y+p*m*f,this._w=c*d*f-p*m*y;break;case"ZYX":this._x=p*d*f-c*m*y,this._y=c*m*f+p*d*y,this._z=c*d*y-p*m*f,this._w=c*d*f+p*m*y;break;case"YZX":this._x=p*d*f+c*m*y,this._y=c*m*f+p*d*y,this._z=c*d*y-p*m*f,this._w=c*d*f-p*m*y;break;case"XZY":this._x=p*d*f-c*m*y,this._y=c*m*f-p*d*y,this._z=c*d*y+p*m*f,this._w=c*d*f+p*m*y;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return n!==!1&&this._onChangeCallback(),this}setFromAxisAngle(e,n){const i=n/2,r=Math.sin(i);return this._x=e.x*r,this._y=e.y*r,this._z=e.z*r,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(e){const n=e.elements,i=n[0],r=n[4],a=n[8],s=n[1],o=n[5],l=n[9],c=n[2],d=n[6],f=n[10],p=i+o+f;if(p>0){const m=.5/Math.sqrt(p+1);this._w=.25/m,this._x=(d-l)*m,this._y=(a-c)*m,this._z=(s-r)*m}else if(i>o&&i>f){const m=2*Math.sqrt(1+i-o-f);this._w=(d-l)/m,this._x=.25*m,this._y=(r+s)/m,this._z=(a+c)/m}else if(o>f){const m=2*Math.sqrt(1+o-i-f);this._w=(a-c)/m,this._x=(r+s)/m,this._y=.25*m,this._z=(l+d)/m}else{const m=2*Math.sqrt(1+f-i-o);this._w=(s-r)/m,this._x=(a+c)/m,this._y=(l+d)/m,this._z=.25*m}return this._onChangeCallback(),this}setFromUnitVectors(e,n){let i=e.dot(n)+1;return i<Number.EPSILON?(i=0,Math.abs(e.x)>Math.abs(e.z)?(this._x=-e.y,this._y=e.x,this._z=0,this._w=i):(this._x=0,this._y=-e.z,this._z=e.y,this._w=i)):(this._x=e.y*n.z-e.z*n.y,this._y=e.z*n.x-e.x*n.z,this._z=e.x*n.y-e.y*n.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(Fr(this.dot(e),-1,1)))}rotateTowards(e,n){const i=this.angleTo(e);if(i===0)return this;const r=Math.min(1,n/i);return this.slerp(e,r),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,n){const i=e._x,r=e._y,a=e._z,s=e._w,o=n._x,l=n._y,c=n._z,d=n._w;return this._x=i*d+s*o+r*c-a*l,this._y=r*d+s*l+a*o-i*c,this._z=a*d+s*c+i*l-r*o,this._w=s*d-i*o-r*l-a*c,this._onChangeCallback(),this}slerp(e,n){if(n===0)return this;if(n===1)return this.copy(e);const i=this._x,r=this._y,a=this._z,s=this._w;let o=s*e._w+i*e._x+r*e._y+a*e._z;if(o<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,o=-o):this.copy(e),o>=1)return this._w=s,this._x=i,this._y=r,this._z=a,this;const l=1-o*o;if(l<=Number.EPSILON){const m=1-n;return this._w=m*s+n*this._w,this._x=m*i+n*this._x,this._y=m*r+n*this._y,this._z=m*a+n*this._z,this.normalize(),this._onChangeCallback(),this}const c=Math.sqrt(l),d=Math.atan2(c,o),f=Math.sin((1-n)*d)/c,p=Math.sin(n*d)/c;return this._w=s*f+this._w*p,this._x=i*f+this._x*p,this._y=r*f+this._y*p,this._z=a*f+this._z*p,this._onChangeCallback(),this}slerpQuaternions(e,n,i){return this.copy(e).slerp(n,i)}random(){const e=Math.random(),n=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),a=2*Math.PI*Math.random();return this.set(n*Math.cos(r),i*Math.sin(a),i*Math.cos(a),n*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,n=0){return this._x=e[n],this._y=e[n+1],this._z=e[n+2],this._w=e[n+3],this._onChangeCallback(),this}toArray(e=[],n=0){return e[n]=this._x,e[n+1]=this._y,e[n+2]=this._z,e[n+3]=this._w,e}fromBufferAttribute(e,n){return this._x=e.getX(n),this._y=e.getY(n),this._z=e.getZ(n),this._w=e.getW(n),this}toJSON(){return this.toArray()}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Ce{constructor(e=0,n=0,i=0){Ce.prototype.isVector3=!0,this.x=e,this.y=n,this.z=i}set(e,n,i){return i===void 0&&(i=this.z),this.x=e,this.y=n,this.z=i,this}setScalar(e){return this.x=e,this.y=e,this.z=e,this}setX(e){return this.x=e,this}setY(e){return this.y=e,this}setZ(e){return this.z=e,this}setComponent(e,n){switch(e){case 0:this.x=n;break;case 1:this.y=n;break;case 2:this.z=n;break;default:throw new Error("index is out of range: "+e)}return this}getComponent(e){switch(e){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("index is out of range: "+e)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addScalar(e){return this.x+=e,this.y+=e,this.z+=e,this}addVectors(e,n){return this.x=e.x+n.x,this.y=e.y+n.y,this.z=e.z+n.z,this}addScaledVector(e,n){return this.x+=e.x*n,this.y+=e.y*n,this.z+=e.z*n,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,n){return this.x=e.x-n.x,this.y=e.y-n.y,this.z=e.z-n.z,this}multiply(e){return this.x*=e.x,this.y*=e.y,this.z*=e.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}multiplyVectors(e,n){return this.x=e.x*n.x,this.y=e.y*n.y,this.z=e.z*n.z,this}applyEuler(e){return this.applyQuaternion(a4.setFromEuler(e))}applyAxisAngle(e,n){return this.applyQuaternion(a4.setFromAxisAngle(e,n))}applyMatrix3(e){const n=this.x,i=this.y,r=this.z,a=e.elements;return this.x=a[0]*n+a[3]*i+a[6]*r,this.y=a[1]*n+a[4]*i+a[7]*r,this.z=a[2]*n+a[5]*i+a[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const n=this.x,i=this.y,r=this.z,a=e.elements,s=1/(a[3]*n+a[7]*i+a[11]*r+a[15]);return this.x=(a[0]*n+a[4]*i+a[8]*r+a[12])*s,this.y=(a[1]*n+a[5]*i+a[9]*r+a[13])*s,this.z=(a[2]*n+a[6]*i+a[10]*r+a[14])*s,this}applyQuaternion(e){const n=this.x,i=this.y,r=this.z,a=e.x,s=e.y,o=e.z,l=e.w,c=2*(s*r-o*i),d=2*(o*n-a*r),f=2*(a*i-s*n);return this.x=n+l*c+s*f-o*d,this.y=i+l*d+o*c-a*f,this.z=r+l*f+a*d-s*c,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const n=this.x,i=this.y,r=this.z,a=e.elements;return this.x=a[0]*n+a[4]*i+a[8]*r,this.y=a[1]*n+a[5]*i+a[9]*r,this.z=a[2]*n+a[6]*i+a[10]*r,this.normalize()}divide(e){return this.x/=e.x,this.y/=e.y,this.z/=e.z,this}divideScalar(e){return this.multiplyScalar(1/e)}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}clamp(e,n){return this.x=Math.max(e.x,Math.min(n.x,this.x)),this.y=Math.max(e.y,Math.min(n.y,this.y)),this.z=Math.max(e.z,Math.min(n.z,this.z)),this}clampScalar(e,n){return this.x=Math.max(e,Math.min(n,this.x)),this.y=Math.max(e,Math.min(n,this.y)),this.z=Math.max(e,Math.min(n,this.z)),this}clampLength(e,n){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(n,i)))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,n){return this.x+=(e.x-this.x)*n,this.y+=(e.y-this.y)*n,this.z+=(e.z-this.z)*n,this}lerpVectors(e,n,i){return this.x=e.x+(n.x-e.x)*i,this.y=e.y+(n.y-e.y)*i,this.z=e.z+(n.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,n){const i=e.x,r=e.y,a=e.z,s=n.x,o=n.y,l=n.z;return this.x=r*l-a*o,this.y=a*s-i*l,this.z=i*o-r*s,this}projectOnVector(e){const n=e.lengthSq();if(n===0)return this.set(0,0,0);const i=e.dot(this)/n;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return _A.copy(this).projectOnVector(e),this.sub(_A)}reflect(e){return this.sub(_A.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const n=Math.sqrt(this.lengthSq()*e.lengthSq());if(n===0)return Math.PI/2;const i=this.dot(e)/n;return Math.acos(Fr(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const n=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return n*n+i*i+r*r}manhattanDistanceTo(e){return Math.abs(this.x-e.x)+Math.abs(this.y-e.y)+Math.abs(this.z-e.z)}setFromSpherical(e){return this.setFromSphericalCoords(e.radius,e.phi,e.theta)}setFromSphericalCoords(e,n,i){const r=Math.sin(n)*e;return this.x=r*Math.sin(i),this.y=Math.cos(n)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,n,i){return this.x=e*Math.sin(n),this.y=i,this.z=e*Math.cos(n),this}setFromMatrixPosition(e){const n=e.elements;return this.x=n[12],this.y=n[13],this.z=n[14],this}setFromMatrixScale(e){const n=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=n,this.y=i,this.z=r,this}setFromMatrixColumn(e,n){return this.fromArray(e.elements,n*4)}setFromMatrix3Column(e,n){return this.fromArray(e.elements,n*3)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}setFromColor(e){return this.x=e.r,this.y=e.g,this.z=e.b,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,n=0){return this.x=e[n],this.y=e[n+1],this.z=e[n+2],this}toArray(e=[],n=0){return e[n]=this.x,e[n+1]=this.y,e[n+2]=this.z,e}fromBufferAttribute(e,n){return this.x=e.getX(n),this.y=e.getY(n),this.z=e.getZ(n),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=(Math.random()-.5)*2,n=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(n),this.y=i*Math.sin(n),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const _A=new Ce,a4=new uf;class Us{constructor(e=new Ce(1/0,1/0,1/0),n=new Ce(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=n}set(e,n){return this.min.copy(e),this.max.copy(n),this}setFromArray(e){this.makeEmpty();for(let n=0,i=e.length;n<i;n+=3)this.expandByPoint(Qs.fromArray(e,n));return this}setFromBufferAttribute(e){this.makeEmpty();for(let n=0,i=e.count;n<i;n++)this.expandByPoint(Qs.fromBufferAttribute(e,n));return this}setFromPoints(e){this.makeEmpty();for(let n=0,i=e.length;n<i;n++)this.expandByPoint(e[n]);return this}setFromCenterAndSize(e,n){const i=Qs.copy(n).multiplyScalar(.5);return this.min.copy(e).sub(i),this.max.copy(e).add(i),this}setFromObject(e,n=!1){return this.makeEmpty(),this.expandByObject(e,n)}clone(){return new this.constructor().copy(this)}copy(e){return this.min.copy(e.min),this.max.copy(e.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y||this.max.z<this.min.z}getCenter(e){return this.isEmpty()?e.set(0,0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(0,0,0):e.subVectors(this.max,this.min)}expandByPoint(e){return this.min.min(e),this.max.max(e),this}expandByVector(e){return this.min.sub(e),this.max.add(e),this}expandByScalar(e){return this.min.addScalar(-e),this.max.addScalar(e),this}expandByObject(e,n=!1){e.updateWorldMatrix(!1,!1);const i=e.geometry;if(i!==void 0){const a=i.getAttribute("position");if(n===!0&&a!==void 0&&e.isInstancedMesh!==!0)for(let s=0,o=a.count;s<o;s++)e.isMesh===!0?e.getVertexPosition(s,Qs):Qs.fromBufferAttribute(a,s),Qs.applyMatrix4(e.matrixWorld),this.expandByPoint(Qs);else e.boundingBox!==void 0?(e.boundingBox===null&&e.computeBoundingBox(),yy.copy(e.boundingBox)):(i.boundingBox===null&&i.computeBoundingBox(),yy.copy(i.boundingBox)),yy.applyMatrix4(e.matrixWorld),this.union(yy)}const r=e.children;for(let a=0,s=r.length;a<s;a++)this.expandByObject(r[a],n);return this}containsPoint(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y||e.z<this.min.z||e.z>this.max.z)}containsBox(e){return this.min.x<=e.min.x&&e.max.x<=this.max.x&&this.min.y<=e.min.y&&e.max.y<=this.max.y&&this.min.z<=e.min.z&&e.max.z<=this.max.z}getParameter(e,n){return n.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y),(e.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(e){return!(e.max.x<this.min.x||e.min.x>this.max.x||e.max.y<this.min.y||e.min.y>this.max.y||e.max.z<this.min.z||e.min.z>this.max.z)}intersectsSphere(e){return this.clampPoint(e.center,Qs),Qs.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let n,i;return e.normal.x>0?(n=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(n=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(n+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(n+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(n+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(n+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),n<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(hg),by.subVectors(this.max,hg),Eh.subVectors(e.a,hg),Ah.subVectors(e.b,hg),Th.subVectors(e.c,hg),$c.subVectors(Ah,Eh),Wc.subVectors(Th,Ah),hd.subVectors(Eh,Th);let n=[0,-$c.z,$c.y,0,-Wc.z,Wc.y,0,-hd.z,hd.y,$c.z,0,-$c.x,Wc.z,0,-Wc.x,hd.z,0,-hd.x,-$c.y,$c.x,0,-Wc.y,Wc.x,0,-hd.y,hd.x,0];return!SA(n,Eh,Ah,Th,by)||(n=[1,0,0,0,1,0,0,0,1],!SA(n,Eh,Ah,Th,by))?!1:(_y.crossVectors($c,Wc),n=[_y.x,_y.y,_y.z],SA(n,Eh,Ah,Th,by))}clampPoint(e,n){return n.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return this.clampPoint(e,Qs).distanceTo(e)}getBoundingSphere(e){return this.isEmpty()?e.makeEmpty():(this.getCenter(e.center),e.radius=this.getSize(Qs).length()*.5),e}intersect(e){return this.min.max(e.min),this.max.min(e.max),this.isEmpty()&&this.makeEmpty(),this}union(e){return this.min.min(e.min),this.max.max(e.max),this}applyMatrix4(e){return this.isEmpty()?this:(bl[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),bl[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),bl[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),bl[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),bl[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),bl[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),bl[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),bl[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(bl),this)}translate(e){return this.min.add(e),this.max.add(e),this}equals(e){return e.min.equals(this.min)&&e.max.equals(this.max)}}const bl=[new Ce,new Ce,new Ce,new Ce,new Ce,new Ce,new Ce,new Ce],Qs=new Ce,yy=new Us,Eh=new Ce,Ah=new Ce,Th=new Ce,$c=new Ce,Wc=new Ce,hd=new Ce,hg=new Ce,by=new Ce,_y=new Ce,pd=new Ce;function SA(t,e,n,i,r){for(let a=0,s=t.length-3;a<=s;a+=3){pd.fromArray(t,a);const o=r.x*Math.abs(pd.x)+r.y*Math.abs(pd.y)+r.z*Math.abs(pd.z),l=e.dot(pd),c=n.dot(pd),d=i.dot(pd);if(Math.max(-Math.max(l,c,d),Math.min(l,c,d))>o)return!1}return!0}const ohe=new Us,pg=new Ce,wA=new Ce;class Io{constructor(e=new Ce,n=-1){this.center=e,this.radius=n}set(e,n){return this.center.copy(e),this.radius=n,this}setFromPoints(e,n){const i=this.center;n!==void 0?i.copy(n):ohe.setFromPoints(e).getCenter(i);let r=0;for(let a=0,s=e.length;a<s;a++)r=Math.max(r,i.distanceToSquared(e[a]));return this.radius=Math.sqrt(r),this}copy(e){return this.center.copy(e.center),this.radius=e.radius,this}isEmpty(){return this.radius<0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(e){return e.distanceToSquared(this.center)<=this.radius*this.radius}distanceToPoint(e){return e.distanceTo(this.center)-this.radius}intersectsSphere(e){const n=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=n*n}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,n){const i=this.center.distanceToSquared(e);return n.copy(e),i>this.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n}getBoundingBox(e){return this.isEmpty()?(e.makeEmpty(),e):(e.set(this.center,this.center),e.expandByScalar(this.radius),e)}applyMatrix4(e){return this.center.applyMatrix4(e),this.radius=this.radius*e.getMaxScaleOnAxis(),this}translate(e){return this.center.add(e),this}expandByPoint(e){if(this.isEmpty())return this.center.copy(e),this.radius=0,this;pg.subVectors(e,this.center);const n=pg.lengthSq();if(n>this.radius*this.radius){const i=Math.sqrt(n),r=(i-this.radius)*.5;this.center.addScaledVector(pg,r/i),this.radius+=r}return this}union(e){return e.isEmpty()?this:this.isEmpty()?(this.copy(e),this):(this.center.equals(e.center)===!0?this.radius=Math.max(this.radius,e.radius):(wA.subVectors(e.center,this.center).setLength(e.radius),this.expandByPoint(pg.copy(e.center).add(wA)),this.expandByPoint(pg.copy(e.center).sub(wA))),this)}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return new this.constructor().copy(this)}}const _l=new Ce,MA=new Ce,Sy=new Ce,qc=new Ce,EA=new Ce,wy=new Ce,AA=new Ce;class XP{constructor(e=new Ce,n=new Ce(0,0,-1)){this.origin=e,this.direction=n}set(e,n){return this.origin.copy(e),this.direction.copy(n),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,n){return n.copy(this.origin).addScaledVector(this.direction,e)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,_l)),this}closestPointToPoint(e,n){n.subVectors(e,this.origin);const i=n.dot(this.direction);return i<0?n.copy(this.origin):n.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const n=_l.subVectors(e,this.origin).dot(this.direction);return n<0?this.origin.distanceToSquared(e):(_l.copy(this.origin).addScaledVector(this.direction,n),_l.distanceToSquared(e))}distanceSqToSegment(e,n,i,r){MA.copy(e).add(n).multiplyScalar(.5),Sy.copy(n).sub(e).normalize(),qc.copy(this.origin).sub(MA);const a=e.distanceTo(n)*.5,s=-this.direction.dot(Sy),o=qc.dot(this.direction),l=-qc.dot(Sy),c=qc.lengthSq(),d=Math.abs(1-s*s);let f,p,m,y;if(d>0)if(f=s*l-o,p=s*o-l,y=a*d,f>=0)if(p>=-y)if(p<=y){const b=1/d;f*=b,p*=b,m=f*(f+s*p+2*o)+p*(s*f+p+2*l)+c}else p=a,f=Math.max(0,-(s*p+o)),m=-f*f+p*(p+2*l)+c;else p=-a,f=Math.max(0,-(s*p+o)),m=-f*f+p*(p+2*l)+c;else p<=-y?(f=Math.max(0,-(-s*a+o)),p=f>0?-a:Math.min(Math.max(-a,-l),a),m=-f*f+p*(p+2*l)+c):p<=y?(f=0,p=Math.min(Math.max(-a,-l),a),m=p*(p+2*l)+c):(f=Math.max(0,-(s*a+o)),p=f>0?a:Math.min(Math.max(-a,-l),a),m=-f*f+p*(p+2*l)+c);else p=s>0?-a:a,f=Math.max(0,-(s*p+o)),m=-f*f+p*(p+2*l)+c;return i&&i.copy(this.origin).addScaledVector(this.direction,f),r&&r.copy(MA).addScaledVector(Sy,p),m}intersectSphere(e,n){_l.subVectors(e.center,this.origin);const i=_l.dot(this.direction),r=_l.dot(_l)-i*i,a=e.radius*e.radius;if(r>a)return null;const s=Math.sqrt(a-r),o=i-s,l=i+s;return l<0?null:o<0?this.at(l,n):this.at(o,n)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const n=e.normal.dot(this.direction);if(n===0)return e.distanceToPoint(this.origin)===0?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/n;return i>=0?i:null}intersectPlane(e,n){const i=this.distanceToPlane(e);return i===null?null:this.at(i,n)}intersectsPlane(e){const n=e.distanceToPoint(this.origin);return n===0||e.normal.dot(this.direction)*n<0}intersectBox(e,n){let i,r,a,s,o,l;const c=1/this.direction.x,d=1/this.direction.y,f=1/this.direction.z,p=this.origin;return c>=0?(i=(e.min.x-p.x)*c,r=(e.max.x-p.x)*c):(i=(e.max.x-p.x)*c,r=(e.min.x-p.x)*c),d>=0?(a=(e.min.y-p.y)*d,s=(e.max.y-p.y)*d):(a=(e.max.y-p.y)*d,s=(e.min.y-p.y)*d),i>s||a>r||((a>i||isNaN(i))&&(i=a),(s<r||isNaN(r))&&(r=s),f>=0?(o=(e.min.z-p.z)*f,l=(e.max.z-p.z)*f):(o=(e.max.z-p.z)*f,l=(e.min.z-p.z)*f),i>l||o>r)||((o>i||i!==i)&&(i=o),(l<r||r!==r)&&(r=l),r<0)?null:this.at(i>=0?i:r,n)}intersectsBox(e){return this.intersectBox(e,_l)!==null}intersectTriangle(e,n,i,r,a){EA.subVectors(n,e),wy.subVectors(i,e),AA.crossVectors(EA,wy);let s=this.direction.dot(AA),o;if(s>0){if(r)return null;o=1}else if(s<0)o=-1,s=-s;else return null;qc.subVectors(this.origin,e);const l=o*this.direction.dot(wy.crossVectors(qc,wy));if(l<0)return null;const c=o*this.direction.dot(EA.cross(qc));if(c<0||l+c>s)return null;const d=-o*qc.dot(AA);return d<0?null:this.at(d/s,a)}applyMatrix4(e){return this.origin.applyMatrix4(e),this.direction.transformDirection(e),this}equals(e){return e.origin.equals(this.origin)&&e.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}}class $n{constructor(e,n,i,r,a,s,o,l,c,d,f,p,m,y,b,x){$n.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,n,i,r,a,s,o,l,c,d,f,p,m,y,b,x)}set(e,n,i,r,a,s,o,l,c,d,f,p,m,y,b,x){const v=this.elements;return v[0]=e,v[4]=n,v[8]=i,v[12]=r,v[1]=a,v[5]=s,v[9]=o,v[13]=l,v[2]=c,v[6]=d,v[10]=f,v[14]=p,v[3]=m,v[7]=y,v[11]=b,v[15]=x,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new $n().fromArray(this.elements)}copy(e){const n=this.elements,i=e.elements;return n[0]=i[0],n[1]=i[1],n[2]=i[2],n[3]=i[3],n[4]=i[4],n[5]=i[5],n[6]=i[6],n[7]=i[7],n[8]=i[8],n[9]=i[9],n[10]=i[10],n[11]=i[11],n[12]=i[12],n[13]=i[13],n[14]=i[14],n[15]=i[15],this}copyPosition(e){const n=this.elements,i=e.elements;return n[12]=i[12],n[13]=i[13],n[14]=i[14],this}setFromMatrix3(e){const n=e.elements;return this.set(n[0],n[3],n[6],0,n[1],n[4],n[7],0,n[2],n[5],n[8],0,0,0,0,1),this}extractBasis(e,n,i){return e.setFromMatrixColumn(this,0),n.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,n,i){return this.set(e.x,n.x,i.x,0,e.y,n.y,i.y,0,e.z,n.z,i.z,0,0,0,0,1),this}extractRotation(e){const n=this.elements,i=e.elements,r=1/Ch.setFromMatrixColumn(e,0).length(),a=1/Ch.setFromMatrixColumn(e,1).length(),s=1/Ch.setFromMatrixColumn(e,2).length();return n[0]=i[0]*r,n[1]=i[1]*r,n[2]=i[2]*r,n[3]=0,n[4]=i[4]*a,n[5]=i[5]*a,n[6]=i[6]*a,n[7]=0,n[8]=i[8]*s,n[9]=i[9]*s,n[10]=i[10]*s,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromEuler(e){const n=this.elements,i=e.x,r=e.y,a=e.z,s=Math.cos(i),o=Math.sin(i),l=Math.cos(r),c=Math.sin(r),d=Math.cos(a),f=Math.sin(a);if(e.order==="XYZ"){const p=s*d,m=s*f,y=o*d,b=o*f;n[0]=l*d,n[4]=-l*f,n[8]=c,n[1]=m+y*c,n[5]=p-b*c,n[9]=-o*l,n[2]=b-p*c,n[6]=y+m*c,n[10]=s*l}else if(e.order==="YXZ"){const p=l*d,m=l*f,y=c*d,b=c*f;n[0]=p+b*o,n[4]=y*o-m,n[8]=s*c,n[1]=s*f,n[5]=s*d,n[9]=-o,n[2]=m*o-y,n[6]=b+p*o,n[10]=s*l}else if(e.order==="ZXY"){const p=l*d,m=l*f,y=c*d,b=c*f;n[0]=p-b*o,n[4]=-s*f,n[8]=y+m*o,n[1]=m+y*o,n[5]=s*d,n[9]=b-p*o,n[2]=-s*c,n[6]=o,n[10]=s*l}else if(e.order==="ZYX"){const p=s*d,m=s*f,y=o*d,b=o*f;n[0]=l*d,n[4]=y*c-m,n[8]=p*c+b,n[1]=l*f,n[5]=b*c+p,n[9]=m*c-y,n[2]=-c,n[6]=o*l,n[10]=s*l}else if(e.order==="YZX"){const p=s*l,m=s*c,y=o*l,b=o*c;n[0]=l*d,n[4]=b-p*f,n[8]=y*f+m,n[1]=f,n[5]=s*d,n[9]=-o*d,n[2]=-c*d,n[6]=m*f+y,n[10]=p-b*f}else if(e.order==="XZY"){const p=s*l,m=s*c,y=o*l,b=o*c;n[0]=l*d,n[4]=-f,n[8]=c*d,n[1]=p*f+b,n[5]=s*d,n[9]=m*f-y,n[2]=y*f-m,n[6]=o*d,n[10]=b*f+p}return n[3]=0,n[7]=0,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,this}makeRotationFromQuaternion(e){return this.compose(lhe,e,che)}lookAt(e,n,i){const r=this.elements;return Ya.subVectors(e,n),Ya.lengthSq()===0&&(Ya.z=1),Ya.normalize(),Xc.crossVectors(i,Ya),Xc.lengthSq()===0&&(Math.abs(i.z)===1?Ya.x+=1e-4:Ya.z+=1e-4,Ya.normalize(),Xc.crossVectors(i,Ya)),Xc.normalize(),My.crossVectors(Ya,Xc),r[0]=Xc.x,r[4]=My.x,r[8]=Ya.x,r[1]=Xc.y,r[5]=My.y,r[9]=Ya.y,r[2]=Xc.z,r[6]=My.z,r[10]=Ya.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,n){const i=e.elements,r=n.elements,a=this.elements,s=i[0],o=i[4],l=i[8],c=i[12],d=i[1],f=i[5],p=i[9],m=i[13],y=i[2],b=i[6],x=i[10],v=i[14],w=i[3],M=i[7],A=i[11],T=i[15],D=r[0],C=r[4],U=r[8],P=r[12],k=r[1],B=r[5],I=r[9],W=r[13],O=r[2],$=r[6],q=r[10],G=r[14],Y=r[3],Q=r[7],se=r[11],H=r[15];return a[0]=s*D+o*k+l*O+c*Y,a[4]=s*C+o*B+l*$+c*Q,a[8]=s*U+o*I+l*q+c*se,a[12]=s*P+o*W+l*G+c*H,a[1]=d*D+f*k+p*O+m*Y,a[5]=d*C+f*B+p*$+m*Q,a[9]=d*U+f*I+p*q+m*se,a[13]=d*P+f*W+p*G+m*H,a[2]=y*D+b*k+x*O+v*Y,a[6]=y*C+b*B+x*$+v*Q,a[10]=y*U+b*I+x*q+v*se,a[14]=y*P+b*W+x*G+v*H,a[3]=w*D+M*k+A*O+T*Y,a[7]=w*C+M*B+A*$+T*Q,a[11]=w*U+M*I+A*q+T*se,a[15]=w*P+M*W+A*G+T*H,this}multiplyScalar(e){const n=this.elements;return n[0]*=e,n[4]*=e,n[8]*=e,n[12]*=e,n[1]*=e,n[5]*=e,n[9]*=e,n[13]*=e,n[2]*=e,n[6]*=e,n[10]*=e,n[14]*=e,n[3]*=e,n[7]*=e,n[11]*=e,n[15]*=e,this}determinant(){const e=this.elements,n=e[0],i=e[4],r=e[8],a=e[12],s=e[1],o=e[5],l=e[9],c=e[13],d=e[2],f=e[6],p=e[10],m=e[14],y=e[3],b=e[7],x=e[11],v=e[15];return y*(+a*l*f-r*c*f-a*o*p+i*c*p+r*o*m-i*l*m)+b*(+n*l*m-n*c*p+a*s*p-r*s*m+r*c*d-a*l*d)+x*(+n*c*f-n*o*m-a*s*f+i*s*m+a*o*d-i*c*d)+v*(-r*o*d-n*l*f+n*o*p+r*s*f-i*s*p+i*l*d)}transpose(){const e=this.elements;let n;return n=e[1],e[1]=e[4],e[4]=n,n=e[2],e[2]=e[8],e[8]=n,n=e[6],e[6]=e[9],e[9]=n,n=e[3],e[3]=e[12],e[12]=n,n=e[7],e[7]=e[13],e[13]=n,n=e[11],e[11]=e[14],e[14]=n,this}setPosition(e,n,i){const r=this.elements;return e.isVector3?(r[12]=e.x,r[13]=e.y,r[14]=e.z):(r[12]=e,r[13]=n,r[14]=i),this}invert(){const e=this.elements,n=e[0],i=e[1],r=e[2],a=e[3],s=e[4],o=e[5],l=e[6],c=e[7],d=e[8],f=e[9],p=e[10],m=e[11],y=e[12],b=e[13],x=e[14],v=e[15],w=f*x*c-b*p*c+b*l*m-o*x*m-f*l*v+o*p*v,M=y*p*c-d*x*c-y*l*m+s*x*m+d*l*v-s*p*v,A=d*b*c-y*f*c+y*o*m-s*b*m-d*o*v+s*f*v,T=y*f*l-d*b*l-y*o*p+s*b*p+d*o*x-s*f*x,D=n*w+i*M+r*A+a*T;if(D===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const C=1/D;return e[0]=w*C,e[1]=(b*p*a-f*x*a-b*r*m+i*x*m+f*r*v-i*p*v)*C,e[2]=(o*x*a-b*l*a+b*r*c-i*x*c-o*r*v+i*l*v)*C,e[3]=(f*l*a-o*p*a-f*r*c+i*p*c+o*r*m-i*l*m)*C,e[4]=M*C,e[5]=(d*x*a-y*p*a+y*r*m-n*x*m-d*r*v+n*p*v)*C,e[6]=(y*l*a-s*x*a-y*r*c+n*x*c+s*r*v-n*l*v)*C,e[7]=(s*p*a-d*l*a+d*r*c-n*p*c-s*r*m+n*l*m)*C,e[8]=A*C,e[9]=(y*f*a-d*b*a-y*i*m+n*b*m+d*i*v-n*f*v)*C,e[10]=(s*b*a-y*o*a+y*i*c-n*b*c-s*i*v+n*o*v)*C,e[11]=(d*o*a-s*f*a-d*i*c+n*f*c+s*i*m-n*o*m)*C,e[12]=T*C,e[13]=(d*b*r-y*f*r+y*i*p-n*b*p-d*i*x+n*f*x)*C,e[14]=(y*o*r-s*b*r-y*i*l+n*b*l+s*i*x-n*o*x)*C,e[15]=(s*f*r-d*o*r+d*i*l-n*f*l-s*i*p+n*o*p)*C,this}scale(e){const n=this.elements,i=e.x,r=e.y,a=e.z;return n[0]*=i,n[4]*=r,n[8]*=a,n[1]*=i,n[5]*=r,n[9]*=a,n[2]*=i,n[6]*=r,n[10]*=a,n[3]*=i,n[7]*=r,n[11]*=a,this}getMaxScaleOnAxis(){const e=this.elements,n=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],r=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(n,i,r))}makeTranslation(e,n,i){return e.isVector3?this.set(1,0,0,e.x,0,1,0,e.y,0,0,1,e.z,0,0,0,1):this.set(1,0,0,e,0,1,0,n,0,0,1,i,0,0,0,1),this}makeRotationX(e){const n=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,n,-i,0,0,i,n,0,0,0,0,1),this}makeRotationY(e){const n=Math.cos(e),i=Math.sin(e);return this.set(n,0,i,0,0,1,0,0,-i,0,n,0,0,0,0,1),this}makeRotationZ(e){const n=Math.cos(e),i=Math.sin(e);return this.set(n,-i,0,0,i,n,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,n){const i=Math.cos(n),r=Math.sin(n),a=1-i,s=e.x,o=e.y,l=e.z,c=a*s,d=a*o;return this.set(c*s+i,c*o-r*l,c*l+r*o,0,c*o+r*l,d*o+i,d*l-r*s,0,c*l-r*o,d*l+r*s,a*l*l+i,0,0,0,0,1),this}makeScale(e,n,i){return this.set(e,0,0,0,0,n,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,n,i,r,a,s){return this.set(1,i,a,0,e,1,s,0,n,r,1,0,0,0,0,1),this}compose(e,n,i){const r=this.elements,a=n._x,s=n._y,o=n._z,l=n._w,c=a+a,d=s+s,f=o+o,p=a*c,m=a*d,y=a*f,b=s*d,x=s*f,v=o*f,w=l*c,M=l*d,A=l*f,T=i.x,D=i.y,C=i.z;return r[0]=(1-(b+v))*T,r[1]=(m+A)*T,r[2]=(y-M)*T,r[3]=0,r[4]=(m-A)*D,r[5]=(1-(p+v))*D,r[6]=(x+w)*D,r[7]=0,r[8]=(y+M)*C,r[9]=(x-w)*C,r[10]=(1-(p+b))*C,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,n,i){const r=this.elements;let a=Ch.set(r[0],r[1],r[2]).length();const s=Ch.set(r[4],r[5],r[6]).length(),o=Ch.set(r[8],r[9],r[10]).length();this.determinant()<0&&(a=-a),e.x=r[12],e.y=r[13],e.z=r[14],eo.copy(this);const c=1/a,d=1/s,f=1/o;return eo.elements[0]*=c,eo.elements[1]*=c,eo.elements[2]*=c,eo.elements[4]*=d,eo.elements[5]*=d,eo.elements[6]*=d,eo.elements[8]*=f,eo.elements[9]*=f,eo.elements[10]*=f,n.setFromRotationMatrix(eo),i.x=a,i.y=s,i.z=o,this}makePerspective(e,n,i,r,a,s,o=Lo){const l=this.elements,c=2*a/(n-e),d=2*a/(i-r),f=(n+e)/(n-e),p=(i+r)/(i-r);let m,y;if(o===Lo)m=-(s+a)/(s-a),y=-2*s*a/(s-a);else if(o===x0)m=-s/(s-a),y=-s*a/(s-a);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+o);return l[0]=c,l[4]=0,l[8]=f,l[12]=0,l[1]=0,l[5]=d,l[9]=p,l[13]=0,l[2]=0,l[6]=0,l[10]=m,l[14]=y,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,n,i,r,a,s,o=Lo){const l=this.elements,c=1/(n-e),d=1/(i-r),f=1/(s-a),p=(n+e)*c,m=(i+r)*d;let y,b;if(o===Lo)y=(s+a)*f,b=-2*f;else if(o===x0)y=a*f,b=-1*f;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+o);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-p,l[1]=0,l[5]=2*d,l[9]=0,l[13]=-m,l[2]=0,l[6]=0,l[10]=b,l[14]=-y,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){const n=this.elements,i=e.elements;for(let r=0;r<16;r++)if(n[r]!==i[r])return!1;return!0}fromArray(e,n=0){for(let i=0;i<16;i++)this.elements[i]=e[i+n];return this}toArray(e=[],n=0){const i=this.elements;return e[n]=i[0],e[n+1]=i[1],e[n+2]=i[2],e[n+3]=i[3],e[n+4]=i[4],e[n+5]=i[5],e[n+6]=i[6],e[n+7]=i[7],e[n+8]=i[8],e[n+9]=i[9],e[n+10]=i[10],e[n+11]=i[11],e[n+12]=i[12],e[n+13]=i[13],e[n+14]=i[14],e[n+15]=i[15],e}}const Ch=new Ce,eo=new $n,lhe=new Ce(0,0,0),che=new Ce(1,1,1),Xc=new Ce,My=new Ce,Ya=new Ce,s4=new $n,o4=new uf;class ev{constructor(e=0,n=0,i=0,r=ev.DEFAULT_ORDER){this.isEuler=!0,this._x=e,this._y=n,this._z=i,this._order=r}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,n,i,r=this._order){return this._x=e,this._y=n,this._z=i,this._order=r,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(e){return this._x=e._x,this._y=e._y,this._z=e._z,this._order=e._order,this._onChangeCallback(),this}setFromRotationMatrix(e,n=this._order,i=!0){const r=e.elements,a=r[0],s=r[4],o=r[8],l=r[1],c=r[5],d=r[9],f=r[2],p=r[6],m=r[10];switch(n){case"XYZ":this._y=Math.asin(Fr(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-d,m),this._z=Math.atan2(-s,a)):(this._x=Math.atan2(p,c),this._z=0);break;case"YXZ":this._x=Math.asin(-Fr(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(o,m),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-f,a),this._z=0);break;case"ZXY":this._x=Math.asin(Fr(p,-1,1)),Math.abs(p)<.9999999?(this._y=Math.atan2(-f,m),this._z=Math.atan2(-s,c)):(this._y=0,this._z=Math.atan2(l,a));break;case"ZYX":this._y=Math.asin(-Fr(f,-1,1)),Math.abs(f)<.9999999?(this._x=Math.atan2(p,m),this._z=Math.atan2(l,a)):(this._x=0,this._z=Math.atan2(-s,c));break;case"YZX":this._z=Math.asin(Fr(l,-1,1)),Math.abs(l)<.9999999?(this._x=Math.atan2(-d,c),this._y=Math.atan2(-f,a)):(this._x=0,this._y=Math.atan2(o,m));break;case"XZY":this._z=Math.asin(-Fr(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(p,c),this._y=Math.atan2(o,a)):(this._x=Math.atan2(-d,m),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+n)}return this._order=n,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,n,i){return s4.makeRotationFromQuaternion(e),this.setFromRotationMatrix(s4,n,i)}setFromVector3(e,n=this._order){return this.set(e.x,e.y,e.z,n)}reorder(e){return o4.setFromEuler(this),this.setFromQuaternion(o4,e)}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._order===this._order}fromArray(e){return this._x=e[0],this._y=e[1],this._z=e[2],e[3]!==void 0&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],n=0){return e[n]=this._x,e[n+1]=this._y,e[n+2]=this._z,e[n+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}}ev.DEFAULT_ORDER="XYZ";class c${constructor(){this.mask=1}set(e){this.mask=(1<<e|0)>>>0}enable(e){this.mask|=1<<e|0}enableAll(){this.mask=-1}toggle(e){this.mask^=1<<e|0}disable(e){this.mask&=~(1<<e|0)}disableAll(){this.mask=0}test(e){return(this.mask&e.mask)!==0}isEnabled(e){return(this.mask&(1<<e|0))!==0}}let uhe=0;const l4=new Ce,Rh=new uf,Sl=new $n,Ey=new Ce,mg=new Ce,dhe=new Ce,fhe=new uf,c4=new Ce(1,0,0),u4=new Ce(0,1,0),d4=new Ce(0,0,1),hhe={type:"added"},phe={type:"removed"};class fa extends Af{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:uhe++}),this.uuid=Wl(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=fa.DEFAULT_UP.clone();const e=new Ce,n=new ev,i=new uf,r=new Ce(1,1,1);function a(){i.setFromEuler(n,!1)}function s(){n.setFromQuaternion(i,void 0,!1)}n._onChange(a),i._onChange(s),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:n},quaternion:{configurable:!0,enumerable:!0,value:i},scale:{configurable:!0,enumerable:!0,value:r},modelViewMatrix:{value:new $n},normalMatrix:{value:new rn}}),this.matrix=new $n,this.matrixWorld=new $n,this.matrixAutoUpdate=fa.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=fa.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new c$,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(e){this.matrixAutoUpdate&&this.updateMatrix(),this.matrix.premultiply(e),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(e){return this.quaternion.premultiply(e),this}setRotationFromAxisAngle(e,n){this.quaternion.setFromAxisAngle(e,n)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,n){return Rh.setFromAxisAngle(e,n),this.quaternion.multiply(Rh),this}rotateOnWorldAxis(e,n){return Rh.setFromAxisAngle(e,n),this.quaternion.premultiply(Rh),this}rotateX(e){return this.rotateOnAxis(c4,e)}rotateY(e){return this.rotateOnAxis(u4,e)}rotateZ(e){return this.rotateOnAxis(d4,e)}translateOnAxis(e,n){return l4.copy(e).applyQuaternion(this.quaternion),this.position.add(l4.multiplyScalar(n)),this}translateX(e){return this.translateOnAxis(c4,e)}translateY(e){return this.translateOnAxis(u4,e)}translateZ(e){return this.translateOnAxis(d4,e)}localToWorld(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return this.updateWorldMatrix(!0,!1),e.applyMatrix4(Sl.copy(this.matrixWorld).invert())}lookAt(e,n,i){e.isVector3?Ey.copy(e):Ey.set(e,n,i);const r=this.parent;this.updateWorldMatrix(!0,!1),mg.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Sl.lookAt(mg,Ey,this.up):Sl.lookAt(Ey,mg,this.up),this.quaternion.setFromRotationMatrix(Sl),r&&(Sl.extractRotation(r.matrixWorld),Rh.setFromRotationMatrix(Sl),this.quaternion.premultiply(Rh.invert()))}add(e){if(arguments.length>1){for(let n=0;n<arguments.length;n++)this.add(arguments[n]);return this}return e===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",e),this):(e&&e.isObject3D?(e.parent!==null&&e.parent.remove(e),e.parent=this,this.children.push(e),e.dispatchEvent(hhe)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",e),this)}remove(e){if(arguments.length>1){for(let i=0;i<arguments.length;i++)this.remove(arguments[i]);return this}const n=this.children.indexOf(e);return n!==-1&&(e.parent=null,this.children.splice(n,1),e.dispatchEvent(phe)),this}removeFromParent(){const e=this.parent;return e!==null&&e.remove(this),this}clear(){return this.remove(...this.children)}attach(e){return this.updateWorldMatrix(!0,!1),Sl.copy(this.matrixWorld).invert(),e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),Sl.multiply(e.parent.matrixWorld)),e.applyMatrix4(Sl),this.add(e),e.updateWorldMatrix(!1,!0),this}getObjectById(e){return this.getObjectByProperty("id",e)}getObjectByName(e){return this.getObjectByProperty("name",e)}getObjectByProperty(e,n){if(this[e]===n)return this;for(let i=0,r=this.children.length;i<r;i++){const s=this.children[i].getObjectByProperty(e,n);if(s!==void 0)return s}}getObjectsByProperty(e,n,i=[]){this[e]===n&&i.push(this);const r=this.children;for(let a=0,s=r.length;a<s;a++)r[a].getObjectsByProperty(e,n,i);return i}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(mg,e,dhe),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(mg,fhe,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const n=this.matrixWorld.elements;return e.set(n[8],n[9],n[10]).normalize()}raycast(){}traverse(e){e(this);const n=this.children;for(let i=0,r=n.length;i<r;i++)n[i].traverse(e)}traverseVisible(e){if(this.visible===!1)return;e(this);const n=this.children;for(let i=0,r=n.length;i<r;i++)n[i].traverseVisible(e)}traverseAncestors(e){const n=this.parent;n!==null&&(e(n),n.traverseAncestors(e))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);const n=this.children;for(let i=0,r=n.length;i<r;i++){const a=n[i];(a.matrixWorldAutoUpdate===!0||e===!0)&&a.updateMatrixWorld(e)}}updateWorldMatrix(e,n){const i=this.parent;if(e===!0&&i!==null&&i.matrixWorldAutoUpdate===!0&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),n===!0){const r=this.children;for(let a=0,s=r.length;a<s;a++){const o=r[a];o.matrixWorldAutoUpdate===!0&&o.updateWorldMatrix(!1,!0)}}}toJSON(e){const n=e===void 0||typeof e=="string",i={};n&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},i.metadata={version:4.6,type:"Object",generator:"Object3D.toJSON"});const r={};r.uuid=this.uuid,r.type=this.type,this.name!==""&&(r.name=this.name),this.castShadow===!0&&(r.castShadow=!0),this.receiveShadow===!0&&(r.receiveShadow=!0),this.visible===!1&&(r.visible=!1),this.frustumCulled===!1&&(r.frustumCulled=!1),this.renderOrder!==0&&(r.renderOrder=this.renderOrder),Object.keys(this.userData).length>0&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),r.up=this.up.toArray(),this.matrixAutoUpdate===!1&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&&(r.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&&(r.type="BatchedMesh",r.perObjectFrustumCulled=this.perObjectFrustumCulled,r.sortObjects=this.sortObjects,r.drawRanges=this._drawRanges,r.reservedRanges=this._reservedRanges,r.visibility=this._visibility,r.active=this._active,r.bounds=this._bounds.map(o=>({boxInitialized:o.boxInitialized,boxMin:o.box.min.toArray(),boxMax:o.box.max.toArray(),sphereInitialized:o.sphereInitialized,sphereRadius:o.sphere.radius,sphereCenter:o.sphere.center.toArray()})),r.maxGeometryCount=this._maxGeometryCount,r.maxVertexCount=this._maxVertexCount,r.maxIndexCount=this._maxIndexCount,r.geometryInitialized=this._geometryInitialized,r.geometryCount=this._geometryCount,r.matricesTexture=this._matricesTexture.toJSON(e),this.boundingSphere!==null&&(r.boundingSphere={center:r.boundingSphere.center.toArray(),radius:r.boundingSphere.radius}),this.boundingBox!==null&&(r.boundingBox={min:r.boundingBox.min.toArray(),max:r.boundingBox.max.toArray()}));function a(o,l){return o[l.uuid]===void 0&&(o[l.uuid]=l.toJSON(e)),l.uuid}if(this.isScene)this.background&&(this.background.isColor?r.background=this.background.toJSON():this.background.isTexture&&(r.background=this.background.toJSON(e).uuid)),this.environment&&this.environment.isTexture&&this.environment.isRenderTargetTexture!==!0&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=a(e.geometries,this.geometry);const o=this.geometry.parameters;if(o!==void 0&&o.shapes!==void 0){const l=o.shapes;if(Array.isArray(l))for(let c=0,d=l.length;c<d;c++){const f=l[c];a(e.shapes,f)}else a(e.shapes,l)}}if(this.isSkinnedMesh&&(r.bindMode=this.bindMode,r.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&&(a(e.skeletons,this.skeleton),r.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){const o=[];for(let l=0,c=this.material.length;l<c;l++)o.push(a(e.materials,this.material[l]));r.material=o}else r.material=a(e.materials,this.material);if(this.children.length>0){r.children=[];for(let o=0;o<this.children.length;o++)r.children.push(this.children[o].toJSON(e).object)}if(this.animations.length>0){r.animations=[];for(let o=0;o<this.animations.length;o++){const l=this.animations[o];r.animations.push(a(e.animations,l))}}if(n){const o=s(e.geometries),l=s(e.materials),c=s(e.textures),d=s(e.images),f=s(e.shapes),p=s(e.skeletons),m=s(e.animations),y=s(e.nodes);o.length>0&&(i.geometries=o),l.length>0&&(i.materials=l),c.length>0&&(i.textures=c),d.length>0&&(i.images=d),f.length>0&&(i.shapes=f),p.length>0&&(i.skeletons=p),m.length>0&&(i.animations=m),y.length>0&&(i.nodes=y)}return i.object=r,i;function s(o){const l=[];for(const c in o){const d=o[c];delete d.metadata,l.push(d)}return l}}clone(e){return new this.constructor().copy(this,e)}copy(e,n=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldAutoUpdate=e.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.animations=e.animations.slice(),this.userData=JSON.parse(JSON.stringify(e.userData)),n===!0)for(let i=0;i<e.children.length;i++){const r=e.children[i];this.add(r.clone())}return this}}fa.DEFAULT_UP=new Ce(0,1,0);fa.DEFAULT_MATRIX_AUTO_UPDATE=!0;fa.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;const to=new Ce,wl=new Ce,TA=new Ce,Ml=new Ce,Ph=new Ce,Dh=new Ce,f4=new Ce,CA=new Ce,RA=new Ce,PA=new Ce;let Ay=!1;class no{constructor(e=new Ce,n=new Ce,i=new Ce){this.a=e,this.b=n,this.c=i}static getNormal(e,n,i,r){r.subVectors(i,n),to.subVectors(e,n),r.cross(to);const a=r.lengthSq();return a>0?r.multiplyScalar(1/Math.sqrt(a)):r.set(0,0,0)}static getBarycoord(e,n,i,r,a){to.subVectors(r,n),wl.subVectors(i,n),TA.subVectors(e,n);const s=to.dot(to),o=to.dot(wl),l=to.dot(TA),c=wl.dot(wl),d=wl.dot(TA),f=s*c-o*o;if(f===0)return a.set(-2,-1,-1);const p=1/f,m=(c*l-o*d)*p,y=(s*d-o*l)*p;return a.set(1-m-y,y,m)}static containsPoint(e,n,i,r){return this.getBarycoord(e,n,i,r,Ml),Ml.x>=0&&Ml.y>=0&&Ml.x+Ml.y<=1}static getUV(e,n,i,r,a,s,o,l){return Ay===!1&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Ay=!0),this.getInterpolation(e,n,i,r,a,s,o,l)}static getInterpolation(e,n,i,r,a,s,o,l){return this.getBarycoord(e,n,i,r,Ml),l.setScalar(0),l.addScaledVector(a,Ml.x),l.addScaledVector(s,Ml.y),l.addScaledVector(o,Ml.z),l}static isFrontFacing(e,n,i,r){return to.subVectors(i,n),wl.subVectors(e,n),to.cross(wl).dot(r)<0}set(e,n,i){return this.a.copy(e),this.b.copy(n),this.c.copy(i),this}setFromPointsAndIndices(e,n,i,r){return this.a.copy(e[n]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,n,i,r){return this.a.fromBufferAttribute(e,n),this.b.fromBufferAttribute(e,i),this.c.fromBufferAttribute(e,r),this}clone(){return new this.constructor().copy(this)}copy(e){return this.a.copy(e.a),this.b.copy(e.b),this.c.copy(e.c),this}getArea(){return to.subVectors(this.c,this.b),wl.subVectors(this.a,this.b),to.cross(wl).length()*.5}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return no.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,n){return no.getBarycoord(e,this.a,this.b,this.c,n)}getUV(e,n,i,r,a){return Ay===!1&&(console.warn("THREE.Triangle.getUV() has been renamed to THREE.Triangle.getInterpolation()."),Ay=!0),no.getInterpolation(e,this.a,this.b,this.c,n,i,r,a)}getInterpolation(e,n,i,r,a){return no.getInterpolation(e,this.a,this.b,this.c,n,i,r,a)}containsPoint(e){return no.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return no.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,n){const i=this.a,r=this.b,a=this.c;let s,o;Ph.subVectors(r,i),Dh.subVectors(a,i),CA.subVectors(e,i);const l=Ph.dot(CA),c=Dh.dot(CA);if(l<=0&&c<=0)return n.copy(i);RA.subVectors(e,r);const d=Ph.dot(RA),f=Dh.dot(RA);if(d>=0&&f<=d)return n.copy(r);const p=l*f-d*c;if(p<=0&&l>=0&&d<=0)return s=l/(l-d),n.copy(i).addScaledVector(Ph,s);PA.subVectors(e,a);const m=Ph.dot(PA),y=Dh.dot(PA);if(y>=0&&m<=y)return n.copy(a);const b=m*c-l*y;if(b<=0&&c>=0&&y<=0)return o=c/(c-y),n.copy(i).addScaledVector(Dh,o);const x=d*y-m*f;if(x<=0&&f-d>=0&&m-y>=0)return f4.subVectors(a,r),o=(f-d)/(f-d+(m-y)),n.copy(r).addScaledVector(f4,o);const v=1/(x+b+p);return s=b*v,o=p*v,n.copy(i).addScaledVector(Ph,s).addScaledVector(Dh,o)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}const u$={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Yc={h:0,s:0,l:0},Ty={h:0,s:0,l:0};function DA(t,e,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?t+(e-t)*6*n:n<1/2?e:n<2/3?t+(e-t)*6*(2/3-n):t}let Ut=class{constructor(e,n,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(e,n,i)}set(e,n,i){if(n===void 0&&i===void 0){const r=e;r&&r.isColor?this.copy(r):typeof r=="number"?this.setHex(r):typeof r=="string"&&this.setStyle(r)}else this.setRGB(e,n,i);return this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,n=Ur){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(e&255)/255,kn.toWorkingColorSpace(this,n),this}setRGB(e,n,i,r=kn.workingColorSpace){return this.r=e,this.g=n,this.b=i,kn.toWorkingColorSpace(this,r),this}setHSL(e,n,i,r=kn.workingColorSpace){if(e=qP(e,1),n=Fr(n,0,1),i=Fr(i,0,1),n===0)this.r=this.g=this.b=i;else{const a=i<=.5?i*(1+n):i+n-i*n,s=2*i-a;this.r=DA(s,a,e+1/3),this.g=DA(s,a,e),this.b=DA(s,a,e-1/3)}return kn.toWorkingColorSpace(this,r),this}setStyle(e,n=Ur){function i(a){a!==void 0&&parseFloat(a)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let r;if(r=/^(\w+)\(([^\)]*)\)/.exec(e)){let a;const s=r[1],o=r[2];switch(s){case"rgb":case"rgba":if(a=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return i(a[4]),this.setRGB(Math.min(255,parseInt(a[1],10))/255,Math.min(255,parseInt(a[2],10))/255,Math.min(255,parseInt(a[3],10))/255,n);if(a=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return i(a[4]),this.setRGB(Math.min(100,parseInt(a[1],10))/100,Math.min(100,parseInt(a[2],10))/100,Math.min(100,parseInt(a[3],10))/100,n);break;case"hsl":case"hsla":if(a=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(o))return i(a[4]),this.setHSL(parseFloat(a[1])/360,parseFloat(a[2])/100,parseFloat(a[3])/100,n);break;default:console.warn("THREE.Color: Unknown color model "+e)}}else if(r=/^\#([A-Fa-f\d]+)$/.exec(e)){const a=r[1],s=a.length;if(s===3)return this.setRGB(parseInt(a.charAt(0),16)/15,parseInt(a.charAt(1),16)/15,parseInt(a.charAt(2),16)/15,n);if(s===6)return this.setHex(parseInt(a,16),n);console.warn("THREE.Color: Invalid hex color "+e)}else if(e&&e.length>0)return this.setColorName(e,n);return this}setColorName(e,n=Ur){const i=u$[e.toLowerCase()];return i!==void 0?this.setHex(i,n):console.warn("THREE.Color: Unknown color "+e),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}copySRGBToLinear(e){return this.r=lp(e.r),this.g=lp(e.g),this.b=lp(e.b),this}copyLinearToSRGB(e){return this.r=yA(e.r),this.g=yA(e.g),this.b=yA(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Ur){return kn.fromWorkingColorSpace(qr.copy(this),e),Math.round(Fr(qr.r*255,0,255))*65536+Math.round(Fr(qr.g*255,0,255))*256+Math.round(Fr(qr.b*255,0,255))}getHexString(e=Ur){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,n=kn.workingColorSpace){kn.fromWorkingColorSpace(qr.copy(this),n);const i=qr.r,r=qr.g,a=qr.b,s=Math.max(i,r,a),o=Math.min(i,r,a);let l,c;const d=(o+s)/2;if(o===s)l=0,c=0;else{const f=s-o;switch(c=d<=.5?f/(s+o):f/(2-s-o),s){case i:l=(r-a)/f+(r<a?6:0);break;case r:l=(a-i)/f+2;break;case a:l=(i-r)/f+4;break}l/=6}return e.h=l,e.s=c,e.l=d,e}getRGB(e,n=kn.workingColorSpace){return kn.fromWorkingColorSpace(qr.copy(this),n),e.r=qr.r,e.g=qr.g,e.b=qr.b,e}getStyle(e=Ur){kn.fromWorkingColorSpace(qr.copy(this),e);const n=qr.r,i=qr.g,r=qr.b;return e!==Ur?`color(${e} ${n.toFixed(3)} ${i.toFixed(3)} ${r.toFixed(3)})`:`rgb(${Math.round(n*255)},${Math.round(i*255)},${Math.round(r*255)})`}offsetHSL(e,n,i){return this.getHSL(Yc),this.setHSL(Yc.h+e,Yc.s+n,Yc.l+i)}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addColors(e,n){return this.r=e.r+n.r,this.g=e.g+n.g,this.b=e.b+n.b,this}addScalar(e){return this.r+=e,this.g+=e,this.b+=e,this}sub(e){return this.r=Math.max(0,this.r-e.r),this.g=Math.max(0,this.g-e.g),this.b=Math.max(0,this.b-e.b),this}multiply(e){return this.r*=e.r,this.g*=e.g,this.b*=e.b,this}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this}lerp(e,n){return this.r+=(e.r-this.r)*n,this.g+=(e.g-this.g)*n,this.b+=(e.b-this.b)*n,this}lerpColors(e,n,i){return this.r=e.r+(n.r-e.r)*i,this.g=e.g+(n.g-e.g)*i,this.b=e.b+(n.b-e.b)*i,this}lerpHSL(e,n){this.getHSL(Yc),e.getHSL(Ty);const i=jg(Yc.h,Ty.h,n),r=jg(Yc.s,Ty.s,n),a=jg(Yc.l,Ty.l,n);return this.setHSL(i,r,a),this}setFromVector3(e){return this.r=e.x,this.g=e.y,this.b=e.z,this}applyMatrix3(e){const n=this.r,i=this.g,r=this.b,a=e.elements;return this.r=a[0]*n+a[3]*i+a[6]*r,this.g=a[1]*n+a[4]*i+a[7]*r,this.b=a[2]*n+a[5]*i+a[8]*r,this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,n=0){return this.r=e[n],this.g=e[n+1],this.b=e[n+2],this}toArray(e=[],n=0){return e[n]=this.r,e[n+1]=this.g,e[n+2]=this.b,e}fromBufferAttribute(e,n){return this.r=e.getX(n),this.g=e.getY(n),this.b=e.getZ(n),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}};const qr=new Ut;Ut.NAMES=u$;let mhe=0;class Zp extends Af{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:mhe++}),this.uuid=Wl(),this.name="",this.type="Material",this.blending=op,this.side=Pu,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=pR,this.blendDst=mR,this.blendEquation=Ad,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new Ut(0,0,0),this.blendAlpha=0,this.depthFunc=r_,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=Qz,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=wh,this.stencilZFail=wh,this.stencilZPass=wh,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(e){this._alphaTest>0!=e>0&&this.version++,this._alphaTest=e}onBuild(){}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(e){if(e!==void 0)for(const n in e){const i=e[n];if(i===void 0){console.warn(`THREE.Material: parameter '${n}' has value of undefined.`);continue}const r=this[n];if(r===void 0){console.warn(`THREE.Material: '${n}' is not a property of THREE.${this.type}.`);continue}r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[n]=i}}toJSON(e){const n=e===void 0||typeof e=="string";n&&(e={textures:{},images:{}});const i={metadata:{version:4.6,type:"Material",generator:"Material.toJSON"}};i.uuid=this.uuid,i.type=this.type,this.name!==""&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),this.roughness!==void 0&&(i.roughness=this.roughness),this.metalness!==void 0&&(i.metalness=this.metalness),this.sheen!==void 0&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&this.emissiveIntensity!==1&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&&(i.shininess=this.shininess),this.clearcoat!==void 0&&(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&&(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&&this.clearcoatMap.isTexture&&(i.clearcoatMap=this.clearcoatMap.toJSON(e).uuid),this.clearcoatRoughnessMap&&this.clearcoatRoughnessMap.isTexture&&(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(e).uuid),this.clearcoatNormalMap&&this.clearcoatNormalMap.isTexture&&(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(e).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.iridescence!==void 0&&(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&&(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&&(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&&this.iridescenceMap.isTexture&&(i.iridescenceMap=this.iridescenceMap.toJSON(e).uuid),this.iridescenceThicknessMap&&this.iridescenceThicknessMap.isTexture&&(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(e).uuid),this.anisotropy!==void 0&&(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&&(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&&this.anisotropyMap.isTexture&&(i.anisotropyMap=this.anisotropyMap.toJSON(e).uuid),this.map&&this.map.isTexture&&(i.map=this.map.toJSON(e).uuid),this.matcap&&this.matcap.isTexture&&(i.matcap=this.matcap.toJSON(e).uuid),this.alphaMap&&this.alphaMap.isTexture&&(i.alphaMap=this.alphaMap.toJSON(e).uuid),this.lightMap&&this.lightMap.isTexture&&(i.lightMap=this.lightMap.toJSON(e).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&&this.aoMap.isTexture&&(i.aoMap=this.aoMap.toJSON(e).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&&this.bumpMap.isTexture&&(i.bumpMap=this.bumpMap.toJSON(e).uuid,i.bumpScale=this.bumpScale),this.normalMap&&this.normalMap.isTexture&&(i.normalMap=this.normalMap.toJSON(e).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&&this.displacementMap.isTexture&&(i.displacementMap=this.displacementMap.toJSON(e).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&&this.roughnessMap.isTexture&&(i.roughnessMap=this.roughnessMap.toJSON(e).uuid),this.metalnessMap&&this.metalnessMap.isTexture&&(i.metalnessMap=this.metalnessMap.toJSON(e).uuid),this.emissiveMap&&this.emissiveMap.isTexture&&(i.emissiveMap=this.emissiveMap.toJSON(e).uuid),this.specularMap&&this.specularMap.isTexture&&(i.specularMap=this.specularMap.toJSON(e).uuid),this.specularIntensityMap&&this.specularIntensityMap.isTexture&&(i.specularIntensityMap=this.specularIntensityMap.toJSON(e).uuid),this.specularColorMap&&this.specularColorMap.isTexture&&(i.specularColorMap=this.specularColorMap.toJSON(e).uuid),this.envMap&&this.envMap.isTexture&&(i.envMap=this.envMap.toJSON(e).uuid,this.combine!==void 0&&(i.combine=this.combine)),this.envMapIntensity!==void 0&&(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&&(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),this.transmission!==void 0&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),this.thickness!==void 0&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),this.attenuationDistance!==void 0&&this.attenuationDistance!==1/0&&(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&&(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&&(i.size=this.size),this.shadowSide!==null&&(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==op&&(i.blending=this.blending),this.side!==Pu&&(i.side=this.side),this.vertexColors===!0&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),this.transparent===!0&&(i.transparent=!0),this.blendSrc!==pR&&(i.blendSrc=this.blendSrc),this.blendDst!==mR&&(i.blendDst=this.blendDst),this.blendEquation!==Ad&&(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&&(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&&(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&&(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&&this.blendColor.isColor&&(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&&(i.blendAlpha=this.blendAlpha),this.depthFunc!==r_&&(i.depthFunc=this.depthFunc),this.depthTest===!1&&(i.depthTest=this.depthTest),this.depthWrite===!1&&(i.depthWrite=this.depthWrite),this.colorWrite===!1&&(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&&(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==Qz&&(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&&(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&&(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==wh&&(i.stencilFail=this.stencilFail),this.stencilZFail!==wh&&(i.stencilZFail=this.stencilZFail),this.stencilZPass!==wh&&(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&&(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&&this.rotation!==0&&(i.rotation=this.rotation),this.polygonOffset===!0&&(i.polygonOffset=!0),this.polygonOffsetFactor!==0&&(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&&(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&&this.linewidth!==1&&(i.linewidth=this.linewidth),this.dashSize!==void 0&&(i.dashSize=this.dashSize),this.gapSize!==void 0&&(i.gapSize=this.gapSize),this.scale!==void 0&&(i.scale=this.scale),this.dithering===!0&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),this.alphaHash===!0&&(i.alphaHash=!0),this.alphaToCoverage===!0&&(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&&(i.premultipliedAlpha=!0),this.forceSinglePass===!0&&(i.forceSinglePass=!0),this.wireframe===!0&&(i.wireframe=!0),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!=="round"&&(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!=="round"&&(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&&(i.flatShading=!0),this.visible===!1&&(i.visible=!1),this.toneMapped===!1&&(i.toneMapped=!1),this.fog===!1&&(i.fog=!1),Object.keys(this.userData).length>0&&(i.userData=this.userData);function r(a){const s=[];for(const o in a){const l=a[o];delete l.metadata,s.push(l)}return s}if(n){const a=r(e.textures),s=r(e.images);a.length>0&&(i.textures=a),s.length>0&&(i.images=s)}return i}clone(){return new this.constructor().copy(this)}copy(e){this.name=e.name,this.blending=e.blending,this.side=e.side,this.vertexColors=e.vertexColors,this.opacity=e.opacity,this.transparent=e.transparent,this.blendSrc=e.blendSrc,this.blendDst=e.blendDst,this.blendEquation=e.blendEquation,this.blendSrcAlpha=e.blendSrcAlpha,this.blendDstAlpha=e.blendDstAlpha,this.blendEquationAlpha=e.blendEquationAlpha,this.blendColor.copy(e.blendColor),this.blendAlpha=e.blendAlpha,this.depthFunc=e.depthFunc,this.depthTest=e.depthTest,this.depthWrite=e.depthWrite,this.stencilWriteMask=e.stencilWriteMask,this.stencilFunc=e.stencilFunc,this.stencilRef=e.stencilRef,this.stencilFuncMask=e.stencilFuncMask,this.stencilFail=e.stencilFail,this.stencilZFail=e.stencilZFail,this.stencilZPass=e.stencilZPass,this.stencilWrite=e.stencilWrite;const n=e.clippingPlanes;let i=null;if(n!==null){const r=n.length;i=new Array(r);for(let a=0;a!==r;++a)i[a]=n[a].clone()}return this.clippingPlanes=i,this.clipIntersection=e.clipIntersection,this.clipShadows=e.clipShadows,this.shadowSide=e.shadowSide,this.colorWrite=e.colorWrite,this.precision=e.precision,this.polygonOffset=e.polygonOffset,this.polygonOffsetFactor=e.polygonOffsetFactor,this.polygonOffsetUnits=e.polygonOffsetUnits,this.dithering=e.dithering,this.alphaTest=e.alphaTest,this.alphaHash=e.alphaHash,this.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,this.forceSinglePass=e.forceSinglePass,this.visible=e.visible,this.toneMapped=e.toneMapped,this.userData=JSON.parse(JSON.stringify(e.userData)),this}dispose(){this.dispatchEvent({type:"dispose"})}set needsUpdate(e){e===!0&&this.version++}}class d$ extends Zp{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Ut(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=GP,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}const Ni=new Ce,Cy=new Ht;class is{constructor(e,n,i=!1){if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.isBufferAttribute=!0,this.name="",this.array=e,this.itemSize=n,this.count=e!==void 0?e.length/n:0,this.normalized=i,this.usage=bR,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.gpuType=zl,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return console.warn('THREE.BufferAttribute: "updateRange" is deprecated and removed in r169. Use "addUpdateRange()" instead.'),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.name=e.name,this.array=new e.array.constructor(e.array),this.itemSize=e.itemSize,this.count=e.count,this.normalized=e.normalized,this.usage=e.usage,this.gpuType=e.gpuType,this}copyAt(e,n,i){e*=this.itemSize,i*=n.itemSize;for(let r=0,a=this.itemSize;r<a;r++)this.array[e+r]=n.array[i+r];return this}copyArray(e){return this.array.set(e),this}applyMatrix3(e){if(this.itemSize===2)for(let n=0,i=this.count;n<i;n++)Cy.fromBufferAttribute(this,n),Cy.applyMatrix3(e),this.setXY(n,Cy.x,Cy.y);else if(this.itemSize===3)for(let n=0,i=this.count;n<i;n++)Ni.fromBufferAttribute(this,n),Ni.applyMatrix3(e),this.setXYZ(n,Ni.x,Ni.y,Ni.z);return this}applyMatrix4(e){for(let n=0,i=this.count;n<i;n++)Ni.fromBufferAttribute(this,n),Ni.applyMatrix4(e),this.setXYZ(n,Ni.x,Ni.y,Ni.z);return this}applyNormalMatrix(e){for(let n=0,i=this.count;n<i;n++)Ni.fromBufferAttribute(this,n),Ni.applyNormalMatrix(e),this.setXYZ(n,Ni.x,Ni.y,Ni.z);return this}transformDirection(e){for(let n=0,i=this.count;n<i;n++)Ni.fromBufferAttribute(this,n),Ni.transformDirection(e),this.setXYZ(n,Ni.x,Ni.y,Ni.z);return this}set(e,n=0){return this.array.set(e,n),this}getComponent(e,n){let i=this.array[e*this.itemSize+n];return this.normalized&&(i=No(i,this.array)),i}setComponent(e,n,i){return this.normalized&&(i=Ln(i,this.array)),this.array[e*this.itemSize+n]=i,this}getX(e){let n=this.array[e*this.itemSize];return this.normalized&&(n=No(n,this.array)),n}setX(e,n){return this.normalized&&(n=Ln(n,this.array)),this.array[e*this.itemSize]=n,this}getY(e){let n=this.array[e*this.itemSize+1];return this.normalized&&(n=No(n,this.array)),n}setY(e,n){return this.normalized&&(n=Ln(n,this.array)),this.array[e*this.itemSize+1]=n,this}getZ(e){let n=this.array[e*this.itemSize+2];return this.normalized&&(n=No(n,this.array)),n}setZ(e,n){return this.normalized&&(n=Ln(n,this.array)),this.array[e*this.itemSize+2]=n,this}getW(e){let n=this.array[e*this.itemSize+3];return this.normalized&&(n=No(n,this.array)),n}setW(e,n){return this.normalized&&(n=Ln(n,this.array)),this.array[e*this.itemSize+3]=n,this}setXY(e,n,i){return e*=this.itemSize,this.normalized&&(n=Ln(n,this.array),i=Ln(i,this.array)),this.array[e+0]=n,this.array[e+1]=i,this}setXYZ(e,n,i,r){return e*=this.itemSize,this.normalized&&(n=Ln(n,this.array),i=Ln(i,this.array),r=Ln(r,this.array)),this.array[e+0]=n,this.array[e+1]=i,this.array[e+2]=r,this}setXYZW(e,n,i,r,a){return e*=this.itemSize,this.normalized&&(n=Ln(n,this.array),i=Ln(i,this.array),r=Ln(r,this.array),a=Ln(a,this.array)),this.array[e+0]=n,this.array[e+1]=i,this.array[e+2]=r,this.array[e+3]=a,this}onUpload(e){return this.onUploadCallback=e,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){const e={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return this.name!==""&&(e.name=this.name),this.usage!==bR&&(e.usage=this.usage),e}}class f$ extends is{constructor(e,n,i){super(new Uint16Array(e),n,i)}}class h$ extends is{constructor(e,n,i){super(new Uint32Array(e),n,i)}}class Mi extends is{constructor(e,n,i){super(new Float32Array(e),n,i)}}let ghe=0;const xs=new $n,NA=new fa,Nh=new Ce,Ka=new Us,gg=new Us,mr=new Ce;class ta extends Af{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:ghe++}),this.uuid=Wl(),this.name="",this.type="BufferGeometry",this.index=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(e){return Array.isArray(e)?this.index=new(a$(e)?h$:f$)(e,1):this.index=e,this}getAttribute(e){return this.attributes[e]}setAttribute(e,n){return this.attributes[e]=n,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return this.attributes[e]!==void 0}addGroup(e,n,i=0){this.groups.push({start:e,count:n,materialIndex:i})}clearGroups(){this.groups=[]}setDrawRange(e,n){this.drawRange.start=e,this.drawRange.count=n}applyMatrix4(e){const n=this.attributes.position;n!==void 0&&(n.applyMatrix4(e),n.needsUpdate=!0);const i=this.attributes.normal;if(i!==void 0){const a=new rn().getNormalMatrix(e);i.applyNormalMatrix(a),i.needsUpdate=!0}const r=this.attributes.tangent;return r!==void 0&&(r.transformDirection(e),r.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}applyQuaternion(e){return xs.makeRotationFromQuaternion(e),this.applyMatrix4(xs),this}rotateX(e){return xs.makeRotationX(e),this.applyMatrix4(xs),this}rotateY(e){return xs.makeRotationY(e),this.applyMatrix4(xs),this}rotateZ(e){return xs.makeRotationZ(e),this.applyMatrix4(xs),this}translate(e,n,i){return xs.makeTranslation(e,n,i),this.applyMatrix4(xs),this}scale(e,n,i){return xs.makeScale(e,n,i),this.applyMatrix4(xs),this}lookAt(e){return NA.lookAt(e),NA.updateMatrix(),this.applyMatrix4(NA.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Nh).negate(),this.translate(Nh.x,Nh.y,Nh.z),this}setFromPoints(e){const n=[];for(let i=0,r=e.length;i<r;i++){const a=e[i];n.push(a.x,a.y,a.z||0)}return this.setAttribute("position",new Mi(n,3)),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Us);const e=this.attributes.position,n=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".',this),this.boundingBox.set(new Ce(-1/0,-1/0,-1/0),new Ce(1/0,1/0,1/0));return}if(e!==void 0){if(this.boundingBox.setFromBufferAttribute(e),n)for(let i=0,r=n.length;i<r;i++){const a=n[i];Ka.setFromBufferAttribute(a),this.morphTargetsRelative?(mr.addVectors(this.boundingBox.min,Ka.min),this.boundingBox.expandByPoint(mr),mr.addVectors(this.boundingBox.max,Ka.max),this.boundingBox.expandByPoint(mr)):(this.boundingBox.expandByPoint(Ka.min),this.boundingBox.expandByPoint(Ka.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The "position" attribute is likely to have NaN values.',this)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Io);const e=this.attributes.position,n=this.morphAttributes.position;if(e&&e.isGLBufferAttribute){console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".',this),this.boundingSphere.set(new Ce,1/0);return}if(e){const i=this.boundingSphere.center;if(Ka.setFromBufferAttribute(e),n)for(let a=0,s=n.length;a<s;a++){const o=n[a];gg.setFromBufferAttribute(o),this.morphTargetsRelative?(mr.addVectors(Ka.min,gg.min),Ka.expandByPoint(mr),mr.addVectors(Ka.max,gg.max),Ka.expandByPoint(mr)):(Ka.expandByPoint(gg.min),Ka.expandByPoint(gg.max))}Ka.getCenter(i);let r=0;for(let a=0,s=e.count;a<s;a++)mr.fromBufferAttribute(e,a),r=Math.max(r,i.distanceToSquared(mr));if(n)for(let a=0,s=n.length;a<s;a++){const o=n[a],l=this.morphTargetsRelative;for(let c=0,d=o.count;c<d;c++)mr.fromBufferAttribute(o,c),l&&(Nh.fromBufferAttribute(e,c),mr.add(Nh)),r=Math.max(r,i.distanceToSquared(mr))}this.boundingSphere.radius=Math.sqrt(r),isNaN(this.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this)}}computeTangents(){const e=this.index,n=this.attributes;if(e===null||n.position===void 0||n.normal===void 0||n.uv===void 0){console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");return}const i=e.array,r=n.position.array,a=n.normal.array,s=n.uv.array,o=r.length/3;this.hasAttribute("tangent")===!1&&this.setAttribute("tangent",new is(new Float32Array(4*o),4));const l=this.getAttribute("tangent").array,c=[],d=[];for(let k=0;k<o;k++)c[k]=new Ce,d[k]=new Ce;const f=new Ce,p=new Ce,m=new Ce,y=new Ht,b=new Ht,x=new Ht,v=new Ce,w=new Ce;function M(k,B,I){f.fromArray(r,k*3),p.fromArray(r,B*3),m.fromArray(r,I*3),y.fromArray(s,k*2),b.fromArray(s,B*2),x.fromArray(s,I*2),p.sub(f),m.sub(f),b.sub(y),x.sub(y);const W=1/(b.x*x.y-x.x*b.y);isFinite(W)&&(v.copy(p).multiplyScalar(x.y).addScaledVector(m,-b.y).multiplyScalar(W),w.copy(m).multiplyScalar(b.x).addScaledVector(p,-x.x).multiplyScalar(W),c[k].add(v),c[B].add(v),c[I].add(v),d[k].add(w),d[B].add(w),d[I].add(w))}let A=this.groups;A.length===0&&(A=[{start:0,count:i.length}]);for(let k=0,B=A.length;k<B;++k){const I=A[k],W=I.start,O=I.count;for(let $=W,q=W+O;$<q;$+=3)M(i[$+0],i[$+1],i[$+2])}const T=new Ce,D=new Ce,C=new Ce,U=new Ce;function P(k){C.fromArray(a,k*3),U.copy(C);const B=c[k];T.copy(B),T.sub(C.multiplyScalar(C.dot(B))).normalize(),D.crossVectors(U,B);const W=D.dot(d[k])<0?-1:1;l[k*4]=T.x,l[k*4+1]=T.y,l[k*4+2]=T.z,l[k*4+3]=W}for(let k=0,B=A.length;k<B;++k){const I=A[k],W=I.start,O=I.count;for(let $=W,q=W+O;$<q;$+=3)P(i[$+0]),P(i[$+1]),P(i[$+2])}}computeVertexNormals(){const e=this.index,n=this.getAttribute("position");if(n!==void 0){let i=this.getAttribute("normal");if(i===void 0)i=new is(new Float32Array(n.count*3),3),this.setAttribute("normal",i);else for(let p=0,m=i.count;p<m;p++)i.setXYZ(p,0,0,0);const r=new Ce,a=new Ce,s=new Ce,o=new Ce,l=new Ce,c=new Ce,d=new Ce,f=new Ce;if(e)for(let p=0,m=e.count;p<m;p+=3){const y=e.getX(p+0),b=e.getX(p+1),x=e.getX(p+2);r.fromBufferAttribute(n,y),a.fromBufferAttribute(n,b),s.fromBufferAttribute(n,x),d.subVectors(s,a),f.subVectors(r,a),d.cross(f),o.fromBufferAttribute(i,y),l.fromBufferAttribute(i,b),c.fromBufferAttribute(i,x),o.add(d),l.add(d),c.add(d),i.setXYZ(y,o.x,o.y,o.z),i.setXYZ(b,l.x,l.y,l.z),i.setXYZ(x,c.x,c.y,c.z)}else for(let p=0,m=n.count;p<m;p+=3)r.fromBufferAttribute(n,p+0),a.fromBufferAttribute(n,p+1),s.fromBufferAttribute(n,p+2),d.subVectors(s,a),f.subVectors(r,a),d.cross(f),i.setXYZ(p+0,d.x,d.y,d.z),i.setXYZ(p+1,d.x,d.y,d.z),i.setXYZ(p+2,d.x,d.y,d.z);this.normalizeNormals(),i.needsUpdate=!0}}normalizeNormals(){const e=this.attributes.normal;for(let n=0,i=e.count;n<i;n++)mr.fromBufferAttribute(e,n),mr.normalize(),e.setXYZ(n,mr.x,mr.y,mr.z)}toNonIndexed(){function e(o,l){const c=o.array,d=o.itemSize,f=o.normalized,p=new c.constructor(l.length*d);let m=0,y=0;for(let b=0,x=l.length;b<x;b++){o.isInterleavedBufferAttribute?m=l[b]*o.data.stride+o.offset:m=l[b]*d;for(let v=0;v<d;v++)p[y++]=c[m++]}return new is(p,d,f)}if(this.index===null)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const n=new ta,i=this.index.array,r=this.attributes;for(const o in r){const l=r[o],c=e(l,i);n.setAttribute(o,c)}const a=this.morphAttributes;for(const o in a){const l=[],c=a[o];for(let d=0,f=c.length;d<f;d++){const p=c[d],m=e(p,i);l.push(m)}n.morphAttributes[o]=l}n.morphTargetsRelative=this.morphTargetsRelative;const s=this.groups;for(let o=0,l=s.length;o<l;o++){const c=s[o];n.addGroup(c.start,c.count,c.materialIndex)}return n}toJSON(){const e={metadata:{version:4.6,type:"BufferGeometry",generator:"BufferGeometry.toJSON"}};if(e.uuid=this.uuid,e.type=this.type,this.name!==""&&(e.name=this.name),Object.keys(this.userData).length>0&&(e.userData=this.userData),this.parameters!==void 0){const l=this.parameters;for(const c in l)l[c]!==void 0&&(e[c]=l[c]);return e}e.data={attributes:{}};const n=this.index;n!==null&&(e.data.index={type:n.array.constructor.name,array:Array.prototype.slice.call(n.array)});const i=this.attributes;for(const l in i){const c=i[l];e.data.attributes[l]=c.toJSON(e.data)}const r={};let a=!1;for(const l in this.morphAttributes){const c=this.morphAttributes[l],d=[];for(let f=0,p=c.length;f<p;f++){const m=c[f];d.push(m.toJSON(e.data))}d.length>0&&(r[l]=d,a=!0)}a&&(e.data.morphAttributes=r,e.data.morphTargetsRelative=this.morphTargetsRelative);const s=this.groups;s.length>0&&(e.data.groups=JSON.parse(JSON.stringify(s)));const o=this.boundingSphere;return o!==null&&(e.data.boundingSphere={center:o.center.toArray(),radius:o.radius}),e}clone(){return new this.constructor().copy(this)}copy(e){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;const n={};this.name=e.name;const i=e.index;i!==null&&this.setIndex(i.clone(n));const r=e.attributes;for(const c in r){const d=r[c];this.setAttribute(c,d.clone(n))}const a=e.morphAttributes;for(const c in a){const d=[],f=a[c];for(let p=0,m=f.length;p<m;p++)d.push(f[p].clone(n));this.morphAttributes[c]=d}this.morphTargetsRelative=e.morphTargetsRelative;const s=e.groups;for(let c=0,d=s.length;c<d;c++){const f=s[c];this.addGroup(f.start,f.count,f.materialIndex)}const o=e.boundingBox;o!==null&&(this.boundingBox=o.clone());const l=e.boundingSphere;return l!==null&&(this.boundingSphere=l.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,this}dispose(){this.dispatchEvent({type:"dispose"})}}const h4=new $n,md=new XP,Ry=new Io,p4=new Ce,Oh=new Ce,Lh=new Ce,kh=new Ce,OA=new Ce,Py=new Ce,Dy=new Ht,Ny=new Ht,Oy=new Ht,m4=new Ce,g4=new Ce,v4=new Ce,Ly=new Ce,ky=new Ce;class co extends fa{constructor(e=new ta,n=new d$){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=n,this.updateMorphTargets()}copy(e,n){return super.copy(e,n),e.morphTargetInfluences!==void 0&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),e.morphTargetDictionary!==void 0&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}updateMorphTargets(){const n=this.geometry.morphAttributes,i=Object.keys(n);if(i.length>0){const r=n[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=r.length;a<s;a++){const o=r[a].name||String(a);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=a}}}}getVertexPosition(e,n){const i=this.geometry,r=i.attributes.position,a=i.morphAttributes.position,s=i.morphTargetsRelative;n.fromBufferAttribute(r,e);const o=this.morphTargetInfluences;if(a&&o){Py.set(0,0,0);for(let l=0,c=a.length;l<c;l++){const d=o[l],f=a[l];d!==0&&(OA.fromBufferAttribute(f,e),s?Py.addScaledVector(OA,d):Py.addScaledVector(OA.sub(n),d))}n.add(Py)}return n}raycast(e,n){const i=this.geometry,r=this.material,a=this.matrixWorld;r!==void 0&&(i.boundingSphere===null&&i.computeBoundingSphere(),Ry.copy(i.boundingSphere),Ry.applyMatrix4(a),md.copy(e.ray).recast(e.near),!(Ry.containsPoint(md.origin)===!1&&(md.intersectSphere(Ry,p4)===null||md.origin.distanceToSquared(p4)>(e.far-e.near)**2))&&(h4.copy(a).invert(),md.copy(e.ray).applyMatrix4(h4),!(i.boundingBox!==null&&md.intersectsBox(i.boundingBox)===!1)&&this._computeIntersections(e,n,md)))}_computeIntersections(e,n,i){let r;const a=this.geometry,s=this.material,o=a.index,l=a.attributes.position,c=a.attributes.uv,d=a.attributes.uv1,f=a.attributes.normal,p=a.groups,m=a.drawRange;if(o!==null)if(Array.isArray(s))for(let y=0,b=p.length;y<b;y++){const x=p[y],v=s[x.materialIndex],w=Math.max(x.start,m.start),M=Math.min(o.count,Math.min(x.start+x.count,m.start+m.count));for(let A=w,T=M;A<T;A+=3){const D=o.getX(A),C=o.getX(A+1),U=o.getX(A+2);r=Iy(this,v,e,i,c,d,f,D,C,U),r&&(r.faceIndex=Math.floor(A/3),r.face.materialIndex=x.materialIndex,n.push(r))}}else{const y=Math.max(0,m.start),b=Math.min(o.count,m.start+m.count);for(let x=y,v=b;x<v;x+=3){const w=o.getX(x),M=o.getX(x+1),A=o.getX(x+2);r=Iy(this,s,e,i,c,d,f,w,M,A),r&&(r.faceIndex=Math.floor(x/3),n.push(r))}}else if(l!==void 0)if(Array.isArray(s))for(let y=0,b=p.length;y<b;y++){const x=p[y],v=s[x.materialIndex],w=Math.max(x.start,m.start),M=Math.min(l.count,Math.min(x.start+x.count,m.start+m.count));for(let A=w,T=M;A<T;A+=3){const D=A,C=A+1,U=A+2;r=Iy(this,v,e,i,c,d,f,D,C,U),r&&(r.faceIndex=Math.floor(A/3),r.face.materialIndex=x.materialIndex,n.push(r))}}else{const y=Math.max(0,m.start),b=Math.min(l.count,m.start+m.count);for(let x=y,v=b;x<v;x+=3){const w=x,M=x+1,A=x+2;r=Iy(this,s,e,i,c,d,f,w,M,A),r&&(r.faceIndex=Math.floor(x/3),n.push(r))}}}}function vhe(t,e,n,i,r,a,s,o){let l;if(e.side===Da?l=i.intersectTriangle(s,a,r,!0,o):l=i.intersectTriangle(r,a,s,e.side===Pu,o),l===null)return null;ky.copy(o),ky.applyMatrix4(t.matrixWorld);const c=n.ray.origin.distanceTo(ky);return c<n.near||c>n.far?null:{distance:c,point:ky.clone(),object:t}}function Iy(t,e,n,i,r,a,s,o,l,c){t.getVertexPosition(o,Oh),t.getVertexPosition(l,Lh),t.getVertexPosition(c,kh);const d=vhe(t,e,n,i,Oh,Lh,kh,Ly);if(d){r&&(Dy.fromBufferAttribute(r,o),Ny.fromBufferAttribute(r,l),Oy.fromBufferAttribute(r,c),d.uv=no.getInterpolation(Ly,Oh,Lh,kh,Dy,Ny,Oy,new Ht)),a&&(Dy.fromBufferAttribute(a,o),Ny.fromBufferAttribute(a,l),Oy.fromBufferAttribute(a,c),d.uv1=no.getInterpolation(Ly,Oh,Lh,kh,Dy,Ny,Oy,new Ht),d.uv2=d.uv1),s&&(m4.fromBufferAttribute(s,o),g4.fromBufferAttribute(s,l),v4.fromBufferAttribute(s,c),d.normal=no.getInterpolation(Ly,Oh,Lh,kh,m4,g4,v4,new Ce),d.normal.dot(i.direction)>0&&d.normal.multiplyScalar(-1));const f={a:o,b:l,c,normal:new Ce,materialIndex:0};no.getNormal(Oh,Lh,kh,f.normal),d.face=f}return d}class tv extends ta{constructor(e=1,n=1,i=1,r=1,a=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:n,depth:i,widthSegments:r,heightSegments:a,depthSegments:s};const o=this;r=Math.floor(r),a=Math.floor(a),s=Math.floor(s);const l=[],c=[],d=[],f=[];let p=0,m=0;y("z","y","x",-1,-1,i,n,e,s,a,0),y("z","y","x",1,-1,i,n,-e,s,a,1),y("x","z","y",1,1,e,i,n,r,s,2),y("x","z","y",1,-1,e,i,-n,r,s,3),y("x","y","z",1,-1,e,n,i,r,a,4),y("x","y","z",-1,-1,e,n,-i,r,a,5),this.setIndex(l),this.setAttribute("position",new Mi(c,3)),this.setAttribute("normal",new Mi(d,3)),this.setAttribute("uv",new Mi(f,2));function y(b,x,v,w,M,A,T,D,C,U,P){const k=A/C,B=T/U,I=A/2,W=T/2,O=D/2,$=C+1,q=U+1;let G=0,Y=0;const Q=new Ce;for(let se=0;se<q;se++){const H=se*B-W;for(let X=0;X<$;X++){const re=X*k-I;Q[b]=re*w,Q[x]=H*M,Q[v]=O,c.push(Q.x,Q.y,Q.z),Q[b]=0,Q[x]=0,Q[v]=D>0?1:-1,d.push(Q.x,Q.y,Q.z),f.push(X/C),f.push(1-se/U),G+=1}}for(let se=0;se<U;se++)for(let H=0;H<C;H++){const X=p+H+$*se,re=p+H+$*(se+1),ce=p+(H+1)+$*(se+1),ye=p+(H+1)+$*se;l.push(X,re,ye),l.push(re,ce,ye),Y+=6}o.addGroup(m,Y,P),m+=Y,p+=G}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new tv(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}}function Ep(t){const e={};for(const n in t){e[n]={};for(const i in t[n]){const r=t[n][i];r&&(r.isColor||r.isMatrix3||r.isMatrix4||r.isVector2||r.isVector3||r.isVector4||r.isTexture||r.isQuaternion)?r.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[n][i]=null):e[n][i]=r.clone():Array.isArray(r)?e[n][i]=r.slice():e[n][i]=r}}return e}function oa(t){const e={};for(let n=0;n<t.length;n++){const i=Ep(t[n]);for(const r in i)e[r]=i[r]}return e}function xhe(t){const e=[];for(let n=0;n<t.length;n++)e.push(t[n].clone());return e}function p$(t){return t.getRenderTarget()===null?t.outputColorSpace:kn.workingColorSpace}const YP={clone:Ep,merge:oa};var yhe=`void main() {
- gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
- }`,bhe=`void main() {
- gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
- }`;class Du extends Zp{constructor(e){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=yhe,this.fragmentShader=bhe,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,e!==void 0&&this.setValues(e)}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=Ep(e.uniforms),this.uniformsGroups=xhe(e.uniformsGroups),this.defines=Object.assign({},e.defines),this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.fog=e.fog,this.lights=e.lights,this.clipping=e.clipping,this.extensions=Object.assign({},e.extensions),this.glslVersion=e.glslVersion,this}toJSON(e){const n=super.toJSON(e);n.glslVersion=this.glslVersion,n.uniforms={};for(const r in this.uniforms){const s=this.uniforms[r].value;s&&s.isTexture?n.uniforms[r]={type:"t",value:s.toJSON(e).uuid}:s&&s.isColor?n.uniforms[r]={type:"c",value:s.getHex()}:s&&s.isVector2?n.uniforms[r]={type:"v2",value:s.toArray()}:s&&s.isVector3?n.uniforms[r]={type:"v3",value:s.toArray()}:s&&s.isVector4?n.uniforms[r]={type:"v4",value:s.toArray()}:s&&s.isMatrix3?n.uniforms[r]={type:"m3",value:s.toArray()}:s&&s.isMatrix4?n.uniforms[r]={type:"m4",value:s.toArray()}:n.uniforms[r]={value:s}}Object.keys(this.defines).length>0&&(n.defines=this.defines),n.vertexShader=this.vertexShader,n.fragmentShader=this.fragmentShader,n.lights=this.lights,n.clipping=this.clipping;const i={};for(const r in this.extensions)this.extensions[r]===!0&&(i[r]=!0);return Object.keys(i).length>0&&(n.extensions=i),n}}class m$ extends fa{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new $n,this.projectionMatrix=new $n,this.projectionMatrixInverse=new $n,this.coordinateSystem=Lo}copy(e,n){return super.copy(e,n),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this.coordinateSystem=e.coordinateSystem,this}getWorldDirection(e){return super.getWorldDirection(e).negate()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,n){super.updateWorldMatrix(e,n),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}}class Ja extends m${constructor(e=50,n=1,i=.1,r=2e3){super(),this.isPerspectiveCamera=!0,this.type="PerspectiveCamera",this.fov=e,this.zoom=1,this.near=i,this.far=r,this.focus=10,this.aspect=n,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,n){return super.copy(e,n),this.fov=e.fov,this.zoom=e.zoom,this.near=e.near,this.far=e.far,this.focus=e.focus,this.aspect=e.aspect,this.view=e.view===null?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const n=.5*this.getFilmHeight()/e;this.fov=y0*2*Math.atan(n),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(Bg*.5*this.fov);return .5*this.getFilmHeight()/e}getEffectiveFOV(){return y0*2*Math.atan(Math.tan(Bg*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,n,i,r,a,s){this.aspect=e/n,this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=n,this.view.offsetX=i,this.view.offsetY=r,this.view.width=a,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let n=e*Math.tan(Bg*.5*this.fov)/this.zoom,i=2*n,r=this.aspect*i,a=-.5*r;const s=this.view;if(this.view!==null&&this.view.enabled){const l=s.fullWidth,c=s.fullHeight;a+=s.offsetX*r/l,n-=s.offsetY*i/c,r*=s.width/l,i*=s.height/c}const o=this.filmOffset;o!==0&&(a+=e*o/this.getFilmWidth()),this.projectionMatrix.makePerspective(a,a+r,n,n-i,e,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const n=super.toJSON(e);return n.object.fov=this.fov,n.object.zoom=this.zoom,n.object.near=this.near,n.object.far=this.far,n.object.focus=this.focus,n.object.aspect=this.aspect,this.view!==null&&(n.object.view=Object.assign({},this.view)),n.object.filmGauge=this.filmGauge,n.object.filmOffset=this.filmOffset,n}}const Ih=-90,Uh=1;class _he extends fa{constructor(e,n,i){super(),this.type="CubeCamera",this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;const r=new Ja(Ih,Uh,e,n);r.layers=this.layers,this.add(r);const a=new Ja(Ih,Uh,e,n);a.layers=this.layers,this.add(a);const s=new Ja(Ih,Uh,e,n);s.layers=this.layers,this.add(s);const o=new Ja(Ih,Uh,e,n);o.layers=this.layers,this.add(o);const l=new Ja(Ih,Uh,e,n);l.layers=this.layers,this.add(l);const c=new Ja(Ih,Uh,e,n);c.layers=this.layers,this.add(c)}updateCoordinateSystem(){const e=this.coordinateSystem,n=this.children.concat(),[i,r,a,s,o,l]=n;for(const c of n)this.remove(c);if(e===Lo)i.up.set(0,1,0),i.lookAt(1,0,0),r.up.set(0,1,0),r.lookAt(-1,0,0),a.up.set(0,0,-1),a.lookAt(0,1,0),s.up.set(0,0,1),s.lookAt(0,-1,0),o.up.set(0,1,0),o.lookAt(0,0,1),l.up.set(0,1,0),l.lookAt(0,0,-1);else if(e===x0)i.up.set(0,-1,0),i.lookAt(-1,0,0),r.up.set(0,-1,0),r.lookAt(1,0,0),a.up.set(0,0,1),a.lookAt(0,1,0),s.up.set(0,0,-1),s.lookAt(0,-1,0),o.up.set(0,-1,0),o.lookAt(0,0,1),l.up.set(0,-1,0),l.lookAt(0,0,-1);else throw new Error("THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: "+e);for(const c of n)this.add(c),c.updateMatrixWorld()}update(e,n){this.parent===null&&this.updateMatrixWorld();const{renderTarget:i,activeMipmapLevel:r}=this;this.coordinateSystem!==e.coordinateSystem&&(this.coordinateSystem=e.coordinateSystem,this.updateCoordinateSystem());const[a,s,o,l,c,d]=this.children,f=e.getRenderTarget(),p=e.getActiveCubeFace(),m=e.getActiveMipmapLevel(),y=e.xr.enabled;e.xr.enabled=!1;const b=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0,r),e.render(n,a),e.setRenderTarget(i,1,r),e.render(n,s),e.setRenderTarget(i,2,r),e.render(n,o),e.setRenderTarget(i,3,r),e.render(n,l),e.setRenderTarget(i,4,r),e.render(n,c),i.texture.generateMipmaps=b,e.setRenderTarget(i,5,r),e.render(n,d),e.setRenderTarget(f,p,m),e.xr.enabled=y,i.texture.needsPMREMUpdate=!0}}class g$ extends Na{constructor(e,n,i,r,a,s,o,l,c,d){e=e!==void 0?e:[],n=n!==void 0?n:Sp,super(e,n,i,r,a,s,o,l,c,d),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class She extends cf{constructor(e=1,n={}){super(e,e,n),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];n.encoding!==void 0&&(Hg("THREE.WebGLCubeRenderTarget: option.encoding has been replaced by option.colorSpace."),n.colorSpace=n.encoding===Hd?Ur:Ns),this.texture=new g$(r,n.mapping,n.wrapS,n.wrapT,n.magFilter,n.minFilter,n.format,n.type,n.anisotropy,n.colorSpace),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=n.generateMipmaps!==void 0?n.generateMipmaps:!1,this.texture.minFilter=n.minFilter!==void 0?n.minFilter:Ps}fromEquirectangularTexture(e,n){this.texture.type=n.type,this.texture.colorSpace=n.colorSpace,this.texture.generateMipmaps=n.generateMipmaps,this.texture.minFilter=n.minFilter,this.texture.magFilter=n.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:`
- varying vec3 vWorldDirection;
- vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
- return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
- }
- void main() {
- vWorldDirection = transformDirection( position, modelMatrix );
- #include <begin_vertex>
- #include <project_vertex>
- }
- `,fragmentShader:`
- uniform sampler2D tEquirect;
- varying vec3 vWorldDirection;
- #include <common>
- void main() {
- vec3 direction = normalize( vWorldDirection );
- vec2 sampleUV = equirectUv( direction );
- gl_FragColor = texture2D( tEquirect, sampleUV );
- }
- `},r=new tv(5,5,5),a=new Du({name:"CubemapFromEquirect",uniforms:Ep(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Da,blending:bu});a.uniforms.tEquirect.value=n;const s=new co(r,a),o=n.minFilter;return n.minFilter===g0&&(n.minFilter=Ps),new _he(1,10,this).update(e,s),n.minFilter=o,s.geometry.dispose(),s.material.dispose(),this}clear(e,n,i,r){const a=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(n,i,r);e.setRenderTarget(a)}}const LA=new Ce,whe=new Ce,Mhe=new rn;class tu{constructor(e=new Ce(1,0,0),n=0){this.isPlane=!0,this.normal=e,this.constant=n}set(e,n){return this.normal.copy(e),this.constant=n,this}setComponents(e,n,i,r){return this.normal.set(e,n,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,n){return this.normal.copy(e),this.constant=-n.dot(this.normal),this}setFromCoplanarPoints(e,n,i){const r=LA.subVectors(i,n).cross(whe.subVectors(e,n)).normalize();return this.setFromNormalAndCoplanarPoint(r,e),this}copy(e){return this.normal.copy(e.normal),this.constant=e.constant,this}normalize(){const e=1/this.normal.length();return this.normal.multiplyScalar(e),this.constant*=e,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(e){return this.normal.dot(e)+this.constant}distanceToSphere(e){return this.distanceToPoint(e.center)-e.radius}projectPoint(e,n){return n.copy(e).addScaledVector(this.normal,-this.distanceToPoint(e))}intersectLine(e,n){const i=e.delta(LA),r=this.normal.dot(i);if(r===0)return this.distanceToPoint(e.start)===0?n.copy(e.start):null;const a=-(e.start.dot(this.normal)+this.constant)/r;return a<0||a>1?null:n.copy(e.start).addScaledVector(i,a)}intersectsLine(e){const n=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return n<0&&i>0||i<0&&n>0}intersectsBox(e){return e.intersectsPlane(this)}intersectsSphere(e){return e.intersectsPlane(this)}coplanarPoint(e){return e.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(e,n){const i=n||Mhe.getNormalMatrix(e),r=this.coplanarPoint(LA).applyMatrix4(e),a=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(a),this}translate(e){return this.constant-=e.dot(this.normal),this}equals(e){return e.normal.equals(this.normal)&&e.constant===this.constant}clone(){return new this.constructor().copy(this)}}const gd=new Io,Uy=new Ce;class lS{constructor(e=new tu,n=new tu,i=new tu,r=new tu,a=new tu,s=new tu){this.planes=[e,n,i,r,a,s]}set(e,n,i,r,a,s){const o=this.planes;return o[0].copy(e),o[1].copy(n),o[2].copy(i),o[3].copy(r),o[4].copy(a),o[5].copy(s),this}copy(e){const n=this.planes;for(let i=0;i<6;i++)n[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e,n=Lo){const i=this.planes,r=e.elements,a=r[0],s=r[1],o=r[2],l=r[3],c=r[4],d=r[5],f=r[6],p=r[7],m=r[8],y=r[9],b=r[10],x=r[11],v=r[12],w=r[13],M=r[14],A=r[15];if(i[0].setComponents(l-a,p-c,x-m,A-v).normalize(),i[1].setComponents(l+a,p+c,x+m,A+v).normalize(),i[2].setComponents(l+s,p+d,x+y,A+w).normalize(),i[3].setComponents(l-s,p-d,x-y,A-w).normalize(),i[4].setComponents(l-o,p-f,x-b,A-M).normalize(),n===Lo)i[5].setComponents(l+o,p+f,x+b,A+M).normalize();else if(n===x0)i[5].setComponents(o,f,b,M).normalize();else throw new Error("THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: "+n);return this}intersectsObject(e){if(e.boundingSphere!==void 0)e.boundingSphere===null&&e.computeBoundingSphere(),gd.copy(e.boundingSphere).applyMatrix4(e.matrixWorld);else{const n=e.geometry;n.boundingSphere===null&&n.computeBoundingSphere(),gd.copy(n.boundingSphere).applyMatrix4(e.matrixWorld)}return this.intersectsSphere(gd)}intersectsSprite(e){return gd.center.set(0,0,0),gd.radius=.7071067811865476,gd.applyMatrix4(e.matrixWorld),this.intersectsSphere(gd)}intersectsSphere(e){const n=this.planes,i=e.center,r=-e.radius;for(let a=0;a<6;a++)if(n[a].distanceToPoint(i)<r)return!1;return!0}intersectsBox(e){const n=this.planes;for(let i=0;i<6;i++){const r=n[i];if(Uy.x=r.normal.x>0?e.max.x:e.min.x,Uy.y=r.normal.y>0?e.max.y:e.min.y,Uy.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(Uy)<0)return!1}return!0}containsPoint(e){const n=this.planes;for(let i=0;i<6;i++)if(n[i].distanceToPoint(e)<0)return!1;return!0}clone(){return new this.constructor().copy(this)}}function v$(){let t=null,e=!1,n=null,i=null;function r(a,s){n(a,s),i=t.requestAnimationFrame(r)}return{start:function(){e!==!0&&n!==null&&(i=t.requestAnimationFrame(r),e=!0)},stop:function(){t.cancelAnimationFrame(i),e=!1},setAnimationLoop:function(a){n=a},setContext:function(a){t=a}}}function Ehe(t,e){const n=e.isWebGL2,i=new WeakMap;function r(c,d){const f=c.array,p=c.usage,m=f.byteLength,y=t.createBuffer();t.bindBuffer(d,y),t.bufferData(d,f,p),c.onUploadCallback();let b;if(f instanceof Float32Array)b=t.FLOAT;else if(f instanceof Uint16Array)if(c.isFloat16BufferAttribute)if(n)b=t.HALF_FLOAT;else throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");else b=t.UNSIGNED_SHORT;else if(f instanceof Int16Array)b=t.SHORT;else if(f instanceof Uint32Array)b=t.UNSIGNED_INT;else if(f instanceof Int32Array)b=t.INT;else if(f instanceof Int8Array)b=t.BYTE;else if(f instanceof Uint8Array)b=t.UNSIGNED_BYTE;else if(f instanceof Uint8ClampedArray)b=t.UNSIGNED_BYTE;else throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+f);return{buffer:y,type:b,bytesPerElement:f.BYTES_PER_ELEMENT,version:c.version,size:m}}function a(c,d,f){const p=d.array,m=d._updateRange,y=d.updateRanges;if(t.bindBuffer(f,c),m.count===-1&&y.length===0&&t.bufferSubData(f,0,p),y.length!==0){for(let b=0,x=y.length;b<x;b++){const v=y[b];n?t.bufferSubData(f,v.start*p.BYTES_PER_ELEMENT,p,v.start,v.count):t.bufferSubData(f,v.start*p.BYTES_PER_ELEMENT,p.subarray(v.start,v.start+v.count))}d.clearUpdateRanges()}m.count!==-1&&(n?t.bufferSubData(f,m.offset*p.BYTES_PER_ELEMENT,p,m.offset,m.count):t.bufferSubData(f,m.offset*p.BYTES_PER_ELEMENT,p.subarray(m.offset,m.offset+m.count)),m.count=-1),d.onUploadCallback()}function s(c){return c.isInterleavedBufferAttribute&&(c=c.data),i.get(c)}function o(c){c.isInterleavedBufferAttribute&&(c=c.data);const d=i.get(c);d&&(t.deleteBuffer(d.buffer),i.delete(c))}function l(c,d){if(c.isGLBufferAttribute){const p=i.get(c);(!p||p.version<c.version)&&i.set(c,{buffer:c.buffer,type:c.type,bytesPerElement:c.elementSize,version:c.version});return}c.isInterleavedBufferAttribute&&(c=c.data);const f=i.get(c);if(f===void 0)i.set(c,r(c,d));else if(f.version<c.version){if(f.size!==c.array.byteLength)throw new Error("THREE.WebGLAttributes: The size of the buffer attribute's array buffer does not match the original size. Resizing buffer attributes is not supported.");a(f.buffer,c,d),f.version=c.version}}return{get:s,remove:o,update:l}}class KP extends ta{constructor(e=1,n=1,i=1,r=1){super(),this.type="PlaneGeometry",this.parameters={width:e,height:n,widthSegments:i,heightSegments:r};const a=e/2,s=n/2,o=Math.floor(i),l=Math.floor(r),c=o+1,d=l+1,f=e/o,p=n/l,m=[],y=[],b=[],x=[];for(let v=0;v<d;v++){const w=v*p-s;for(let M=0;M<c;M++){const A=M*f-a;y.push(A,-w,0),b.push(0,0,1),x.push(M/o),x.push(1-v/l)}}for(let v=0;v<l;v++)for(let w=0;w<o;w++){const M=w+c*v,A=w+c*(v+1),T=w+1+c*(v+1),D=w+1+c*v;m.push(M,A,D),m.push(A,T,D)}this.setIndex(m),this.setAttribute("position",new Mi(y,3)),this.setAttribute("normal",new Mi(b,3)),this.setAttribute("uv",new Mi(x,2))}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}static fromJSON(e){return new KP(e.width,e.height,e.widthSegments,e.heightSegments)}}var Ahe=`#ifdef USE_ALPHAHASH
- if ( diffuseColor.a < getAlphaHashThreshold( vPosition ) ) discard;
- #endif`,The=`#ifdef USE_ALPHAHASH
- const float ALPHA_HASH_SCALE = 0.05;
- float hash2D( vec2 value ) {
- return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );
- }
- float hash3D( vec3 value ) {
- return hash2D( vec2( hash2D( value.xy ), value.z ) );
- }
- float getAlphaHashThreshold( vec3 position ) {
- float maxDeriv = max(
- length( dFdx( position.xyz ) ),
- length( dFdy( position.xyz ) )
- );
- float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );
- vec2 pixScales = vec2(
- exp2( floor( log2( pixScale ) ) ),
- exp2( ceil( log2( pixScale ) ) )
- );
- vec2 alpha = vec2(
- hash3D( floor( pixScales.x * position.xyz ) ),
- hash3D( floor( pixScales.y * position.xyz ) )
- );
- float lerpFactor = fract( log2( pixScale ) );
- float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;
- float a = min( lerpFactor, 1.0 - lerpFactor );
- vec3 cases = vec3(
- x * x / ( 2.0 * a * ( 1.0 - a ) ),
- ( x - 0.5 * a ) / ( 1.0 - a ),
- 1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )
- );
- float threshold = ( x < ( 1.0 - a ) )
- ? ( ( x < a ) ? cases.x : cases.y )
- : cases.z;
- return clamp( threshold , 1.0e-6, 1.0 );
- }
- #endif`,Che=`#ifdef USE_ALPHAMAP
- diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;
- #endif`,Rhe=`#ifdef USE_ALPHAMAP
- uniform sampler2D alphaMap;
- #endif`,Phe=`#ifdef USE_ALPHATEST
- if ( diffuseColor.a < alphaTest ) discard;
- #endif`,Dhe=`#ifdef USE_ALPHATEST
- uniform float alphaTest;
- #endif`,Nhe=`#ifdef USE_AOMAP
- float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;
- reflectedLight.indirectDiffuse *= ambientOcclusion;
- #if defined( USE_CLEARCOAT )
- clearcoatSpecularIndirect *= ambientOcclusion;
- #endif
- #if defined( USE_SHEEN )
- sheenSpecularIndirect *= ambientOcclusion;
- #endif
- #if defined( USE_ENVMAP ) && defined( STANDARD )
- float dotNV = saturate( dot( geometryNormal, geometryViewDir ) );
- reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );
- #endif
- #endif`,Ohe=`#ifdef USE_AOMAP
- uniform sampler2D aoMap;
- uniform float aoMapIntensity;
- #endif`,Lhe=`#ifdef USE_BATCHING
- attribute float batchId;
- uniform highp sampler2D batchingTexture;
- mat4 getBatchingMatrix( const in float i ) {
- int size = textureSize( batchingTexture, 0 ).x;
- int j = int( i ) * 4;
- int x = j % size;
- int y = j / size;
- vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );
- vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );
- vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );
- vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );
- return mat4( v1, v2, v3, v4 );
- }
- #endif`,khe=`#ifdef USE_BATCHING
- mat4 batchingMatrix = getBatchingMatrix( batchId );
- #endif`,Ihe=`vec3 transformed = vec3( position );
- #ifdef USE_ALPHAHASH
- vPosition = vec3( position );
- #endif`,Uhe=`vec3 objectNormal = vec3( normal );
- #ifdef USE_TANGENT
- vec3 objectTangent = vec3( tangent.xyz );
- #endif`,Fhe=`float G_BlinnPhong_Implicit( ) {
- return 0.25;
- }
- float D_BlinnPhong( const in float shininess, const in float dotNH ) {
- return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );
- }
- vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {
- vec3 halfDir = normalize( lightDir + viewDir );
- float dotNH = saturate( dot( normal, halfDir ) );
- float dotVH = saturate( dot( viewDir, halfDir ) );
- vec3 F = F_Schlick( specularColor, 1.0, dotVH );
- float G = G_BlinnPhong_Implicit( );
- float D = D_BlinnPhong( shininess, dotNH );
- return F * ( G * D );
- } // validated`,zhe=`#ifdef USE_IRIDESCENCE
- const mat3 XYZ_TO_REC709 = mat3(
- 3.2404542, -0.9692660, 0.0556434,
- -1.5371385, 1.8760108, -0.2040259,
- -0.4985314, 0.0415560, 1.0572252
- );
- vec3 Fresnel0ToIor( vec3 fresnel0 ) {
- vec3 sqrtF0 = sqrt( fresnel0 );
- return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );
- }
- vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {
- return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );
- }
- float IorToFresnel0( float transmittedIor, float incidentIor ) {
- return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));
- }
- vec3 evalSensitivity( float OPD, vec3 shift ) {
- float phase = 2.0 * PI * OPD * 1.0e-9;
- vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );
- vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );
- vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );
- vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );
- xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );
- xyz /= 1.0685e-7;
- vec3 rgb = XYZ_TO_REC709 * xyz;
- return rgb;
- }
- vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {
- vec3 I;
- float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );
- float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );
- float cosTheta2Sq = 1.0 - sinTheta2Sq;
- if ( cosTheta2Sq < 0.0 ) {
- return vec3( 1.0 );
- }
- float cosTheta2 = sqrt( cosTheta2Sq );
- float R0 = IorToFresnel0( iridescenceIOR, outsideIOR );
- float R12 = F_Schlick( R0, 1.0, cosTheta1 );
- float T121 = 1.0 - R12;
- float phi12 = 0.0;
- if ( iridescenceIOR < outsideIOR ) phi12 = PI;
- float phi21 = PI - phi12;
- vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) ); vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );
- vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );
- vec3 phi23 = vec3( 0.0 );
- if ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;
- if ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;
- if ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;
- float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;
- vec3 phi = vec3( phi21 ) + phi23;
- vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );
- vec3 r123 = sqrt( R123 );
- vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );
- vec3 C0 = R12 + Rs;
- I = C0;
- vec3 Cm = Rs - T121;
- for ( int m = 1; m <= 2; ++ m ) {
- Cm *= r123;
- vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );
- I += Cm * Sm;
- }
- return max( I, vec3( 0.0 ) );
- }
- #endif`,Bhe=`#ifdef USE_BUMPMAP
- uniform sampler2D bumpMap;
- uniform float bumpScale;
- vec2 dHdxy_fwd() {
- vec2 dSTdx = dFdx( vBumpMapUv );
- vec2 dSTdy = dFdy( vBumpMapUv );
- float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;
- float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;
- float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;
- return vec2( dBx, dBy );
- }
- vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {
- vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );
- vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );
- vec3 vN = surf_norm;
- vec3 R1 = cross( vSigmaY, vN );
- vec3 R2 = cross( vN, vSigmaX );
- float fDet = dot( vSigmaX, R1 ) * faceDirection;
- vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );
- return normalize( abs( fDet ) * surf_norm - vGrad );
- }
- #endif`,jhe=`#if NUM_CLIPPING_PLANES > 0
- vec4 plane;
- #pragma unroll_loop_start
- for ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {
- plane = clippingPlanes[ i ];
- if ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;
- }
- #pragma unroll_loop_end
- #if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES
- bool clipped = true;
- #pragma unroll_loop_start
- for ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {
- plane = clippingPlanes[ i ];
- clipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;
- }
- #pragma unroll_loop_end
- if ( clipped ) discard;
- #endif
- #endif`,Hhe=`#if NUM_CLIPPING_PLANES > 0
- varying vec3 vClipPosition;
- uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];
- #endif`,Vhe=`#if NUM_CLIPPING_PLANES > 0
- varying vec3 vClipPosition;
- #endif`,Ghe=`#if NUM_CLIPPING_PLANES > 0
- vClipPosition = - mvPosition.xyz;
- #endif`,$he=`#if defined( USE_COLOR_ALPHA )
- diffuseColor *= vColor;
- #elif defined( USE_COLOR )
- diffuseColor.rgb *= vColor;
- #endif`,Whe=`#if defined( USE_COLOR_ALPHA )
- varying vec4 vColor;
- #elif defined( USE_COLOR )
- varying vec3 vColor;
- #endif`,qhe=`#if defined( USE_COLOR_ALPHA )
- varying vec4 vColor;
- #elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )
- varying vec3 vColor;
- #endif`,Xhe=`#if defined( USE_COLOR_ALPHA )
- vColor = vec4( 1.0 );
- #elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )
- vColor = vec3( 1.0 );
- #endif
- #ifdef USE_COLOR
- vColor *= color;
- #endif
- #ifdef USE_INSTANCING_COLOR
- vColor.xyz *= instanceColor.xyz;
- #endif`,Yhe=`#define PI 3.141592653589793
- #define PI2 6.283185307179586
- #define PI_HALF 1.5707963267948966
- #define RECIPROCAL_PI 0.3183098861837907
- #define RECIPROCAL_PI2 0.15915494309189535
- #define EPSILON 1e-6
- #ifndef saturate
- #define saturate( a ) clamp( a, 0.0, 1.0 )
- #endif
- #define whiteComplement( a ) ( 1.0 - saturate( a ) )
- float pow2( const in float x ) { return x*x; }
- vec3 pow2( const in vec3 x ) { return x*x; }
- float pow3( const in float x ) { return x*x*x; }
- float pow4( const in float x ) { float x2 = x*x; return x2*x2; }
- float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }
- float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }
- highp float rand( const in vec2 uv ) {
- const highp float a = 12.9898, b = 78.233, c = 43758.5453;
- highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );
- return fract( sin( sn ) * c );
- }
- #ifdef HIGH_PRECISION
- float precisionSafeLength( vec3 v ) { return length( v ); }
- #else
- float precisionSafeLength( vec3 v ) {
- float maxComponent = max3( abs( v ) );
- return length( v / maxComponent ) * maxComponent;
- }
- #endif
- struct IncidentLight {
- vec3 color;
- vec3 direction;
- bool visible;
- };
- struct ReflectedLight {
- vec3 directDiffuse;
- vec3 directSpecular;
- vec3 indirectDiffuse;
- vec3 indirectSpecular;
- };
- #ifdef USE_ALPHAHASH
- varying vec3 vPosition;
- #endif
- vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
- return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
- }
- vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {
- return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );
- }
- mat3 transposeMat3( const in mat3 m ) {
- mat3 tmp;
- tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );
- tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );
- tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );
- return tmp;
- }
- float luminance( const in vec3 rgb ) {
- const vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );
- return dot( weights, rgb );
- }
- bool isPerspectiveMatrix( mat4 m ) {
- return m[ 2 ][ 3 ] == - 1.0;
- }
- vec2 equirectUv( in vec3 dir ) {
- float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;
- float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
- return vec2( u, v );
- }
- vec3 BRDF_Lambert( const in vec3 diffuseColor ) {
- return RECIPROCAL_PI * diffuseColor;
- }
- vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {
- float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
- return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
- }
- float F_Schlick( const in float f0, const in float f90, const in float dotVH ) {
- float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
- return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
- } // validated`,Khe=`#ifdef ENVMAP_TYPE_CUBE_UV
- #define cubeUV_minMipLevel 4.0
- #define cubeUV_minTileSize 16.0
- float getFace( vec3 direction ) {
- vec3 absDirection = abs( direction );
- float face = - 1.0;
- if ( absDirection.x > absDirection.z ) {
- if ( absDirection.x > absDirection.y )
- face = direction.x > 0.0 ? 0.0 : 3.0;
- else
- face = direction.y > 0.0 ? 1.0 : 4.0;
- } else {
- if ( absDirection.z > absDirection.y )
- face = direction.z > 0.0 ? 2.0 : 5.0;
- else
- face = direction.y > 0.0 ? 1.0 : 4.0;
- }
- return face;
- }
- vec2 getUV( vec3 direction, float face ) {
- vec2 uv;
- if ( face == 0.0 ) {
- uv = vec2( direction.z, direction.y ) / abs( direction.x );
- } else if ( face == 1.0 ) {
- uv = vec2( - direction.x, - direction.z ) / abs( direction.y );
- } else if ( face == 2.0 ) {
- uv = vec2( - direction.x, direction.y ) / abs( direction.z );
- } else if ( face == 3.0 ) {
- uv = vec2( - direction.z, direction.y ) / abs( direction.x );
- } else if ( face == 4.0 ) {
- uv = vec2( - direction.x, direction.z ) / abs( direction.y );
- } else {
- uv = vec2( direction.x, direction.y ) / abs( direction.z );
- }
- return 0.5 * ( uv + 1.0 );
- }
- vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {
- float face = getFace( direction );
- float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );
- mipInt = max( mipInt, cubeUV_minMipLevel );
- float faceSize = exp2( mipInt );
- highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;
- if ( face > 2.0 ) {
- uv.y += faceSize;
- face -= 3.0;
- }
- uv.x += face * faceSize;
- uv.x += filterInt * 3.0 * cubeUV_minTileSize;
- uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );
- uv.x *= CUBEUV_TEXEL_WIDTH;
- uv.y *= CUBEUV_TEXEL_HEIGHT;
- #ifdef texture2DGradEXT
- return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;
- #else
- return texture2D( envMap, uv ).rgb;
- #endif
- }
- #define cubeUV_r0 1.0
- #define cubeUV_v0 0.339
- #define cubeUV_m0 - 2.0
- #define cubeUV_r1 0.8
- #define cubeUV_v1 0.276
- #define cubeUV_m1 - 1.0
- #define cubeUV_r4 0.4
- #define cubeUV_v4 0.046
- #define cubeUV_m4 2.0
- #define cubeUV_r5 0.305
- #define cubeUV_v5 0.016
- #define cubeUV_m5 3.0
- #define cubeUV_r6 0.21
- #define cubeUV_v6 0.0038
- #define cubeUV_m6 4.0
- float roughnessToMip( float roughness ) {
- float mip = 0.0;
- if ( roughness >= cubeUV_r1 ) {
- mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;
- } else if ( roughness >= cubeUV_r4 ) {
- mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;
- } else if ( roughness >= cubeUV_r5 ) {
- mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;
- } else if ( roughness >= cubeUV_r6 ) {
- mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;
- } else {
- mip = - 2.0 * log2( 1.16 * roughness ); }
- return mip;
- }
- vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {
- float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );
- float mipF = fract( mip );
- float mipInt = floor( mip );
- vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );
- if ( mipF == 0.0 ) {
- return vec4( color0, 1.0 );
- } else {
- vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );
- return vec4( mix( color0, color1, mipF ), 1.0 );
- }
- }
- #endif`,Zhe=`vec3 transformedNormal = objectNormal;
- #ifdef USE_TANGENT
- vec3 transformedTangent = objectTangent;
- #endif
- #ifdef USE_BATCHING
- mat3 bm = mat3( batchingMatrix );
- transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );
- transformedNormal = bm * transformedNormal;
- #ifdef USE_TANGENT
- transformedTangent = bm * transformedTangent;
- #endif
- #endif
- #ifdef USE_INSTANCING
- mat3 im = mat3( instanceMatrix );
- transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );
- transformedNormal = im * transformedNormal;
- #ifdef USE_TANGENT
- transformedTangent = im * transformedTangent;
- #endif
- #endif
- transformedNormal = normalMatrix * transformedNormal;
- #ifdef FLIP_SIDED
- transformedNormal = - transformedNormal;
- #endif
- #ifdef USE_TANGENT
- transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;
- #ifdef FLIP_SIDED
- transformedTangent = - transformedTangent;
- #endif
- #endif`,Jhe=`#ifdef USE_DISPLACEMENTMAP
- uniform sampler2D displacementMap;
- uniform float displacementScale;
- uniform float displacementBias;
- #endif`,Qhe=`#ifdef USE_DISPLACEMENTMAP
- transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );
- #endif`,epe=`#ifdef USE_EMISSIVEMAP
- vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );
- totalEmissiveRadiance *= emissiveColor.rgb;
- #endif`,tpe=`#ifdef USE_EMISSIVEMAP
- uniform sampler2D emissiveMap;
- #endif`,npe="gl_FragColor = linearToOutputTexel( gl_FragColor );",ipe=`
- const mat3 LINEAR_SRGB_TO_LINEAR_DISPLAY_P3 = mat3(
- vec3( 0.8224621, 0.177538, 0.0 ),
- vec3( 0.0331941, 0.9668058, 0.0 ),
- vec3( 0.0170827, 0.0723974, 0.9105199 )
- );
- const mat3 LINEAR_DISPLAY_P3_TO_LINEAR_SRGB = mat3(
- vec3( 1.2249401, - 0.2249404, 0.0 ),
- vec3( - 0.0420569, 1.0420571, 0.0 ),
- vec3( - 0.0196376, - 0.0786361, 1.0982735 )
- );
- vec4 LinearSRGBToLinearDisplayP3( in vec4 value ) {
- return vec4( value.rgb * LINEAR_SRGB_TO_LINEAR_DISPLAY_P3, value.a );
- }
- vec4 LinearDisplayP3ToLinearSRGB( in vec4 value ) {
- return vec4( value.rgb * LINEAR_DISPLAY_P3_TO_LINEAR_SRGB, value.a );
- }
- vec4 LinearTransferOETF( in vec4 value ) {
- return value;
- }
- vec4 sRGBTransferOETF( in vec4 value ) {
- return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );
- }
- vec4 LinearToLinear( in vec4 value ) {
- return value;
- }
- vec4 LinearTosRGB( in vec4 value ) {
- return sRGBTransferOETF( value );
- }`,rpe=`#ifdef USE_ENVMAP
- #ifdef ENV_WORLDPOS
- vec3 cameraToFrag;
- if ( isOrthographic ) {
- cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
- } else {
- cameraToFrag = normalize( vWorldPosition - cameraPosition );
- }
- vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
- #ifdef ENVMAP_MODE_REFLECTION
- vec3 reflectVec = reflect( cameraToFrag, worldNormal );
- #else
- vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );
- #endif
- #else
- vec3 reflectVec = vReflect;
- #endif
- #ifdef ENVMAP_TYPE_CUBE
- vec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );
- #else
- vec4 envColor = vec4( 0.0 );
- #endif
- #ifdef ENVMAP_BLENDING_MULTIPLY
- outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );
- #elif defined( ENVMAP_BLENDING_MIX )
- outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );
- #elif defined( ENVMAP_BLENDING_ADD )
- outgoingLight += envColor.xyz * specularStrength * reflectivity;
- #endif
- #endif`,ape=`#ifdef USE_ENVMAP
- uniform float envMapIntensity;
- uniform float flipEnvMap;
- #ifdef ENVMAP_TYPE_CUBE
- uniform samplerCube envMap;
- #else
- uniform sampler2D envMap;
- #endif
-
- #endif`,spe=`#ifdef USE_ENVMAP
- uniform float reflectivity;
- #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
- #define ENV_WORLDPOS
- #endif
- #ifdef ENV_WORLDPOS
- varying vec3 vWorldPosition;
- uniform float refractionRatio;
- #else
- varying vec3 vReflect;
- #endif
- #endif`,ope=`#ifdef USE_ENVMAP
- #if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
- #define ENV_WORLDPOS
- #endif
- #ifdef ENV_WORLDPOS
-
- varying vec3 vWorldPosition;
- #else
- varying vec3 vReflect;
- uniform float refractionRatio;
- #endif
- #endif`,lpe=`#ifdef USE_ENVMAP
- #ifdef ENV_WORLDPOS
- vWorldPosition = worldPosition.xyz;
- #else
- vec3 cameraToVertex;
- if ( isOrthographic ) {
- cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
- } else {
- cameraToVertex = normalize( worldPosition.xyz - cameraPosition );
- }
- vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
- #ifdef ENVMAP_MODE_REFLECTION
- vReflect = reflect( cameraToVertex, worldNormal );
- #else
- vReflect = refract( cameraToVertex, worldNormal, refractionRatio );
- #endif
- #endif
- #endif`,cpe=`#ifdef USE_FOG
- vFogDepth = - mvPosition.z;
- #endif`,upe=`#ifdef USE_FOG
- varying float vFogDepth;
- #endif`,dpe=`#ifdef USE_FOG
- #ifdef FOG_EXP2
- float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );
- #else
- float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );
- #endif
- gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );
- #endif`,fpe=`#ifdef USE_FOG
- uniform vec3 fogColor;
- varying float vFogDepth;
- #ifdef FOG_EXP2
- uniform float fogDensity;
- #else
- uniform float fogNear;
- uniform float fogFar;
- #endif
- #endif`,hpe=`#ifdef USE_GRADIENTMAP
- uniform sampler2D gradientMap;
- #endif
- vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {
- float dotNL = dot( normal, lightDirection );
- vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );
- #ifdef USE_GRADIENTMAP
- return vec3( texture2D( gradientMap, coord ).r );
- #else
- vec2 fw = fwidth( coord ) * 0.5;
- return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );
- #endif
- }`,ppe=`#ifdef USE_LIGHTMAP
- vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
- vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;
- reflectedLight.indirectDiffuse += lightMapIrradiance;
- #endif`,mpe=`#ifdef USE_LIGHTMAP
- uniform sampler2D lightMap;
- uniform float lightMapIntensity;
- #endif`,gpe=`LambertMaterial material;
- material.diffuseColor = diffuseColor.rgb;
- material.specularStrength = specularStrength;`,vpe=`varying vec3 vViewPosition;
- struct LambertMaterial {
- vec3 diffuseColor;
- float specularStrength;
- };
- void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
- float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
- vec3 irradiance = dotNL * directLight.color;
- reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
- reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- #define RE_Direct RE_Direct_Lambert
- #define RE_IndirectDiffuse RE_IndirectDiffuse_Lambert`,xpe=`uniform bool receiveShadow;
- uniform vec3 ambientLightColor;
- #if defined( USE_LIGHT_PROBES )
- uniform vec3 lightProbe[ 9 ];
- #endif
- vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
- float x = normal.x, y = normal.y, z = normal.z;
- vec3 result = shCoefficients[ 0 ] * 0.886227;
- result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;
- result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;
- result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;
- result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;
- result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;
- result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );
- result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;
- result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );
- return result;
- }
- vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {
- vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
- vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );
- return irradiance;
- }
- vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
- vec3 irradiance = ambientLightColor;
- return irradiance;
- }
- float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {
- #if defined ( LEGACY_LIGHTS )
- if ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {
- return pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );
- }
- return 1.0;
- #else
- float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );
- if ( cutoffDistance > 0.0 ) {
- distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );
- }
- return distanceFalloff;
- #endif
- }
- float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {
- return smoothstep( coneCosine, penumbraCosine, angleCosine );
- }
- #if NUM_DIR_LIGHTS > 0
- struct DirectionalLight {
- vec3 direction;
- vec3 color;
- };
- uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];
- void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {
- light.color = directionalLight.color;
- light.direction = directionalLight.direction;
- light.visible = true;
- }
- #endif
- #if NUM_POINT_LIGHTS > 0
- struct PointLight {
- vec3 position;
- vec3 color;
- float distance;
- float decay;
- };
- uniform PointLight pointLights[ NUM_POINT_LIGHTS ];
- void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {
- vec3 lVector = pointLight.position - geometryPosition;
- light.direction = normalize( lVector );
- float lightDistance = length( lVector );
- light.color = pointLight.color;
- light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );
- light.visible = ( light.color != vec3( 0.0 ) );
- }
- #endif
- #if NUM_SPOT_LIGHTS > 0
- struct SpotLight {
- vec3 position;
- vec3 direction;
- vec3 color;
- float distance;
- float decay;
- float coneCos;
- float penumbraCos;
- };
- uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];
- void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {
- vec3 lVector = spotLight.position - geometryPosition;
- light.direction = normalize( lVector );
- float angleCos = dot( light.direction, spotLight.direction );
- float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );
- if ( spotAttenuation > 0.0 ) {
- float lightDistance = length( lVector );
- light.color = spotLight.color * spotAttenuation;
- light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );
- light.visible = ( light.color != vec3( 0.0 ) );
- } else {
- light.color = vec3( 0.0 );
- light.visible = false;
- }
- }
- #endif
- #if NUM_RECT_AREA_LIGHTS > 0
- struct RectAreaLight {
- vec3 color;
- vec3 position;
- vec3 halfWidth;
- vec3 halfHeight;
- };
- uniform sampler2D ltc_1; uniform sampler2D ltc_2;
- uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];
- #endif
- #if NUM_HEMI_LIGHTS > 0
- struct HemisphereLight {
- vec3 direction;
- vec3 skyColor;
- vec3 groundColor;
- };
- uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];
- vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {
- float dotNL = dot( normal, hemiLight.direction );
- float hemiDiffuseWeight = 0.5 * dotNL + 0.5;
- vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );
- return irradiance;
- }
- #endif`,ype=`#ifdef USE_ENVMAP
- vec3 getIBLIrradiance( const in vec3 normal ) {
- #ifdef ENVMAP_TYPE_CUBE_UV
- vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
- vec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );
- return PI * envMapColor.rgb * envMapIntensity;
- #else
- return vec3( 0.0 );
- #endif
- }
- vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {
- #ifdef ENVMAP_TYPE_CUBE_UV
- vec3 reflectVec = reflect( - viewDir, normal );
- reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );
- reflectVec = inverseTransformDirection( reflectVec, viewMatrix );
- vec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );
- return envMapColor.rgb * envMapIntensity;
- #else
- return vec3( 0.0 );
- #endif
- }
- #ifdef USE_ANISOTROPY
- vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {
- #ifdef ENVMAP_TYPE_CUBE_UV
- vec3 bentNormal = cross( bitangent, viewDir );
- bentNormal = normalize( cross( bentNormal, bitangent ) );
- bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );
- return getIBLRadiance( viewDir, bentNormal, roughness );
- #else
- return vec3( 0.0 );
- #endif
- }
- #endif
- #endif`,bpe=`ToonMaterial material;
- material.diffuseColor = diffuseColor.rgb;`,_pe=`varying vec3 vViewPosition;
- struct ToonMaterial {
- vec3 diffuseColor;
- };
- void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
- vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;
- reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
- reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- #define RE_Direct RE_Direct_Toon
- #define RE_IndirectDiffuse RE_IndirectDiffuse_Toon`,Spe=`BlinnPhongMaterial material;
- material.diffuseColor = diffuseColor.rgb;
- material.specularColor = specular;
- material.specularShininess = shininess;
- material.specularStrength = specularStrength;`,wpe=`varying vec3 vViewPosition;
- struct BlinnPhongMaterial {
- vec3 diffuseColor;
- vec3 specularColor;
- float specularShininess;
- float specularStrength;
- };
- void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
- float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
- vec3 irradiance = dotNL * directLight.color;
- reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;
- }
- void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
- reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- #define RE_Direct RE_Direct_BlinnPhong
- #define RE_IndirectDiffuse RE_IndirectDiffuse_BlinnPhong`,Mpe=`PhysicalMaterial material;
- material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );
- vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );
- float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );
- material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;
- material.roughness = min( material.roughness, 1.0 );
- #ifdef IOR
- material.ior = ior;
- #ifdef USE_SPECULAR
- float specularIntensityFactor = specularIntensity;
- vec3 specularColorFactor = specularColor;
- #ifdef USE_SPECULAR_COLORMAP
- specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;
- #endif
- #ifdef USE_SPECULAR_INTENSITYMAP
- specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;
- #endif
- material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );
- #else
- float specularIntensityFactor = 1.0;
- vec3 specularColorFactor = vec3( 1.0 );
- material.specularF90 = 1.0;
- #endif
- material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );
- #else
- material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );
- material.specularF90 = 1.0;
- #endif
- #ifdef USE_CLEARCOAT
- material.clearcoat = clearcoat;
- material.clearcoatRoughness = clearcoatRoughness;
- material.clearcoatF0 = vec3( 0.04 );
- material.clearcoatF90 = 1.0;
- #ifdef USE_CLEARCOATMAP
- material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;
- #endif
- #ifdef USE_CLEARCOAT_ROUGHNESSMAP
- material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;
- #endif
- material.clearcoat = saturate( material.clearcoat ); material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );
- material.clearcoatRoughness += geometryRoughness;
- material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );
- #endif
- #ifdef USE_IRIDESCENCE
- material.iridescence = iridescence;
- material.iridescenceIOR = iridescenceIOR;
- #ifdef USE_IRIDESCENCEMAP
- material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;
- #endif
- #ifdef USE_IRIDESCENCE_THICKNESSMAP
- material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;
- #else
- material.iridescenceThickness = iridescenceThicknessMaximum;
- #endif
- #endif
- #ifdef USE_SHEEN
- material.sheenColor = sheenColor;
- #ifdef USE_SHEEN_COLORMAP
- material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;
- #endif
- material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );
- #ifdef USE_SHEEN_ROUGHNESSMAP
- material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;
- #endif
- #endif
- #ifdef USE_ANISOTROPY
- #ifdef USE_ANISOTROPYMAP
- mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );
- vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;
- vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;
- #else
- vec2 anisotropyV = anisotropyVector;
- #endif
- material.anisotropy = length( anisotropyV );
- if( material.anisotropy == 0.0 ) {
- anisotropyV = vec2( 1.0, 0.0 );
- } else {
- anisotropyV /= material.anisotropy;
- material.anisotropy = saturate( material.anisotropy );
- }
- material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );
- material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;
- material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;
- #endif`,Epe=`struct PhysicalMaterial {
- vec3 diffuseColor;
- float roughness;
- vec3 specularColor;
- float specularF90;
- #ifdef USE_CLEARCOAT
- float clearcoat;
- float clearcoatRoughness;
- vec3 clearcoatF0;
- float clearcoatF90;
- #endif
- #ifdef USE_IRIDESCENCE
- float iridescence;
- float iridescenceIOR;
- float iridescenceThickness;
- vec3 iridescenceFresnel;
- vec3 iridescenceF0;
- #endif
- #ifdef USE_SHEEN
- vec3 sheenColor;
- float sheenRoughness;
- #endif
- #ifdef IOR
- float ior;
- #endif
- #ifdef USE_TRANSMISSION
- float transmission;
- float transmissionAlpha;
- float thickness;
- float attenuationDistance;
- vec3 attenuationColor;
- #endif
- #ifdef USE_ANISOTROPY
- float anisotropy;
- float alphaT;
- vec3 anisotropyT;
- vec3 anisotropyB;
- #endif
- };
- vec3 clearcoatSpecularDirect = vec3( 0.0 );
- vec3 clearcoatSpecularIndirect = vec3( 0.0 );
- vec3 sheenSpecularDirect = vec3( 0.0 );
- vec3 sheenSpecularIndirect = vec3(0.0 );
- vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {
- float x = clamp( 1.0 - dotVH, 0.0, 1.0 );
- float x2 = x * x;
- float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );
- return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );
- }
- float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {
- float a2 = pow2( alpha );
- float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );
- float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );
- return 0.5 / max( gv + gl, EPSILON );
- }
- float D_GGX( const in float alpha, const in float dotNH ) {
- float a2 = pow2( alpha );
- float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;
- return RECIPROCAL_PI * a2 / pow2( denom );
- }
- #ifdef USE_ANISOTROPY
- float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {
- float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );
- float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );
- float v = 0.5 / ( gv + gl );
- return saturate(v);
- }
- float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {
- float a2 = alphaT * alphaB;
- highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );
- highp float v2 = dot( v, v );
- float w2 = a2 / v2;
- return RECIPROCAL_PI * a2 * pow2 ( w2 );
- }
- #endif
- #ifdef USE_CLEARCOAT
- vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {
- vec3 f0 = material.clearcoatF0;
- float f90 = material.clearcoatF90;
- float roughness = material.clearcoatRoughness;
- float alpha = pow2( roughness );
- vec3 halfDir = normalize( lightDir + viewDir );
- float dotNL = saturate( dot( normal, lightDir ) );
- float dotNV = saturate( dot( normal, viewDir ) );
- float dotNH = saturate( dot( normal, halfDir ) );
- float dotVH = saturate( dot( viewDir, halfDir ) );
- vec3 F = F_Schlick( f0, f90, dotVH );
- float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
- float D = D_GGX( alpha, dotNH );
- return F * ( V * D );
- }
- #endif
- vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {
- vec3 f0 = material.specularColor;
- float f90 = material.specularF90;
- float roughness = material.roughness;
- float alpha = pow2( roughness );
- vec3 halfDir = normalize( lightDir + viewDir );
- float dotNL = saturate( dot( normal, lightDir ) );
- float dotNV = saturate( dot( normal, viewDir ) );
- float dotNH = saturate( dot( normal, halfDir ) );
- float dotVH = saturate( dot( viewDir, halfDir ) );
- vec3 F = F_Schlick( f0, f90, dotVH );
- #ifdef USE_IRIDESCENCE
- F = mix( F, material.iridescenceFresnel, material.iridescence );
- #endif
- #ifdef USE_ANISOTROPY
- float dotTL = dot( material.anisotropyT, lightDir );
- float dotTV = dot( material.anisotropyT, viewDir );
- float dotTH = dot( material.anisotropyT, halfDir );
- float dotBL = dot( material.anisotropyB, lightDir );
- float dotBV = dot( material.anisotropyB, viewDir );
- float dotBH = dot( material.anisotropyB, halfDir );
- float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );
- float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );
- #else
- float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
- float D = D_GGX( alpha, dotNH );
- #endif
- return F * ( V * D );
- }
- vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {
- const float LUT_SIZE = 64.0;
- const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;
- const float LUT_BIAS = 0.5 / LUT_SIZE;
- float dotNV = saturate( dot( N, V ) );
- vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );
- uv = uv * LUT_SCALE + LUT_BIAS;
- return uv;
- }
- float LTC_ClippedSphereFormFactor( const in vec3 f ) {
- float l = length( f );
- return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );
- }
- vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {
- float x = dot( v1, v2 );
- float y = abs( x );
- float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;
- float b = 3.4175940 + ( 4.1616724 + y ) * y;
- float v = a / b;
- float theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;
- return cross( v1, v2 ) * theta_sintheta;
- }
- vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {
- vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];
- vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];
- vec3 lightNormal = cross( v1, v2 );
- if( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );
- vec3 T1, T2;
- T1 = normalize( V - N * dot( V, N ) );
- T2 = - cross( N, T1 );
- mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );
- vec3 coords[ 4 ];
- coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );
- coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );
- coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );
- coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );
- coords[ 0 ] = normalize( coords[ 0 ] );
- coords[ 1 ] = normalize( coords[ 1 ] );
- coords[ 2 ] = normalize( coords[ 2 ] );
- coords[ 3 ] = normalize( coords[ 3 ] );
- vec3 vectorFormFactor = vec3( 0.0 );
- vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );
- vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );
- vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );
- vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );
- float result = LTC_ClippedSphereFormFactor( vectorFormFactor );
- return vec3( result );
- }
- #if defined( USE_SHEEN )
- float D_Charlie( float roughness, float dotNH ) {
- float alpha = pow2( roughness );
- float invAlpha = 1.0 / alpha;
- float cos2h = dotNH * dotNH;
- float sin2h = max( 1.0 - cos2h, 0.0078125 );
- return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );
- }
- float V_Neubelt( float dotNV, float dotNL ) {
- return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );
- }
- vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {
- vec3 halfDir = normalize( lightDir + viewDir );
- float dotNL = saturate( dot( normal, lightDir ) );
- float dotNV = saturate( dot( normal, viewDir ) );
- float dotNH = saturate( dot( normal, halfDir ) );
- float D = D_Charlie( sheenRoughness, dotNH );
- float V = V_Neubelt( dotNV, dotNL );
- return sheenColor * ( D * V );
- }
- #endif
- float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
- float dotNV = saturate( dot( normal, viewDir ) );
- float r2 = roughness * roughness;
- float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;
- float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;
- float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );
- return saturate( DG * RECIPROCAL_PI );
- }
- vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
- float dotNV = saturate( dot( normal, viewDir ) );
- const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );
- const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );
- vec4 r = roughness * c0 + c1;
- float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;
- vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;
- return fab;
- }
- vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {
- vec2 fab = DFGApprox( normal, viewDir, roughness );
- return specularColor * fab.x + specularF90 * fab.y;
- }
- #ifdef USE_IRIDESCENCE
- void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
- #else
- void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
- #endif
- vec2 fab = DFGApprox( normal, viewDir, roughness );
- #ifdef USE_IRIDESCENCE
- vec3 Fr = mix( specularColor, iridescenceF0, iridescence );
- #else
- vec3 Fr = specularColor;
- #endif
- vec3 FssEss = Fr * fab.x + specularF90 * fab.y;
- float Ess = fab.x + fab.y;
- float Ems = 1.0 - Ess;
- vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619; vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );
- singleScatter += FssEss;
- multiScatter += Fms * Ems;
- }
- #if NUM_RECT_AREA_LIGHTS > 0
- void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
- vec3 normal = geometryNormal;
- vec3 viewDir = geometryViewDir;
- vec3 position = geometryPosition;
- vec3 lightPos = rectAreaLight.position;
- vec3 halfWidth = rectAreaLight.halfWidth;
- vec3 halfHeight = rectAreaLight.halfHeight;
- vec3 lightColor = rectAreaLight.color;
- float roughness = material.roughness;
- vec3 rectCoords[ 4 ];
- rectCoords[ 0 ] = lightPos + halfWidth - halfHeight; rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;
- rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;
- rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;
- vec2 uv = LTC_Uv( normal, viewDir, roughness );
- vec4 t1 = texture2D( ltc_1, uv );
- vec4 t2 = texture2D( ltc_2, uv );
- mat3 mInv = mat3(
- vec3( t1.x, 0, t1.y ),
- vec3( 0, 1, 0 ),
- vec3( t1.z, 0, t1.w )
- );
- vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );
- reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );
- reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );
- }
- #endif
- void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
- float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
- vec3 irradiance = dotNL * directLight.color;
- #ifdef USE_CLEARCOAT
- float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );
- vec3 ccIrradiance = dotNLcc * directLight.color;
- clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );
- #endif
- #ifdef USE_SHEEN
- sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );
- #endif
- reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );
- reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
- reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
- }
- void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {
- #ifdef USE_CLEARCOAT
- clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );
- #endif
- #ifdef USE_SHEEN
- sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
- #endif
- vec3 singleScattering = vec3( 0.0 );
- vec3 multiScattering = vec3( 0.0 );
- vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;
- #ifdef USE_IRIDESCENCE
- computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );
- #else
- computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );
- #endif
- vec3 totalScattering = singleScattering + multiScattering;
- vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );
- reflectedLight.indirectSpecular += radiance * singleScattering;
- reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;
- reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;
- }
- #define RE_Direct RE_Direct_Physical
- #define RE_Direct_RectArea RE_Direct_RectArea_Physical
- #define RE_IndirectDiffuse RE_IndirectDiffuse_Physical
- #define RE_IndirectSpecular RE_IndirectSpecular_Physical
- float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {
- return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );
- }`,Ape=`
- vec3 geometryPosition = - vViewPosition;
- vec3 geometryNormal = normal;
- vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );
- vec3 geometryClearcoatNormal = vec3( 0.0 );
- #ifdef USE_CLEARCOAT
- geometryClearcoatNormal = clearcoatNormal;
- #endif
- #ifdef USE_IRIDESCENCE
- float dotNVi = saturate( dot( normal, geometryViewDir ) );
- if ( material.iridescenceThickness == 0.0 ) {
- material.iridescence = 0.0;
- } else {
- material.iridescence = saturate( material.iridescence );
- }
- if ( material.iridescence > 0.0 ) {
- material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );
- material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );
- }
- #endif
- IncidentLight directLight;
- #if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )
- PointLight pointLight;
- #if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0
- PointLightShadow pointLightShadow;
- #endif
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {
- pointLight = pointLights[ i ];
- getPointLightInfo( pointLight, geometryPosition, directLight );
- #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )
- pointLightShadow = pointLightShadows[ i ];
- directLight.color *= ( directLight.visible && receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;
- #endif
- RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- }
- #pragma unroll_loop_end
- #endif
- #if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )
- SpotLight spotLight;
- vec4 spotColor;
- vec3 spotLightCoord;
- bool inSpotLightMap;
- #if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0
- SpotLightShadow spotLightShadow;
- #endif
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {
- spotLight = spotLights[ i ];
- getSpotLightInfo( spotLight, geometryPosition, directLight );
- #if ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
- #define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX
- #elif ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
- #define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS
- #else
- #define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
- #endif
- #if ( SPOT_LIGHT_MAP_INDEX < NUM_SPOT_LIGHT_MAPS )
- spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;
- inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );
- spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );
- directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;
- #endif
- #undef SPOT_LIGHT_MAP_INDEX
- #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
- spotLightShadow = spotLightShadows[ i ];
- directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
- #endif
- RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- }
- #pragma unroll_loop_end
- #endif
- #if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )
- DirectionalLight directionalLight;
- #if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0
- DirectionalLightShadow directionalLightShadow;
- #endif
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {
- directionalLight = directionalLights[ i ];
- getDirectionalLightInfo( directionalLight, directLight );
- #if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )
- directionalLightShadow = directionalLightShadows[ i ];
- directLight.color *= ( directLight.visible && receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
- #endif
- RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- }
- #pragma unroll_loop_end
- #endif
- #if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )
- RectAreaLight rectAreaLight;
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {
- rectAreaLight = rectAreaLights[ i ];
- RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- }
- #pragma unroll_loop_end
- #endif
- #if defined( RE_IndirectDiffuse )
- vec3 iblIrradiance = vec3( 0.0 );
- vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );
- #if defined( USE_LIGHT_PROBES )
- irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );
- #endif
- #if ( NUM_HEMI_LIGHTS > 0 )
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {
- irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );
- }
- #pragma unroll_loop_end
- #endif
- #endif
- #if defined( RE_IndirectSpecular )
- vec3 radiance = vec3( 0.0 );
- vec3 clearcoatRadiance = vec3( 0.0 );
- #endif`,Tpe=`#if defined( RE_IndirectDiffuse )
- #ifdef USE_LIGHTMAP
- vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
- vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;
- irradiance += lightMapIrradiance;
- #endif
- #if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )
- iblIrradiance += getIBLIrradiance( geometryNormal );
- #endif
- #endif
- #if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )
- #ifdef USE_ANISOTROPY
- radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );
- #else
- radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );
- #endif
- #ifdef USE_CLEARCOAT
- clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );
- #endif
- #endif`,Cpe=`#if defined( RE_IndirectDiffuse )
- RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- #endif
- #if defined( RE_IndirectSpecular )
- RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
- #endif`,Rpe=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )
- gl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;
- #endif`,Ppe=`#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )
- uniform float logDepthBufFC;
- varying float vFragDepth;
- varying float vIsPerspective;
- #endif`,Dpe=`#ifdef USE_LOGDEPTHBUF
- #ifdef USE_LOGDEPTHBUF_EXT
- varying float vFragDepth;
- varying float vIsPerspective;
- #else
- uniform float logDepthBufFC;
- #endif
- #endif`,Npe=`#ifdef USE_LOGDEPTHBUF
- #ifdef USE_LOGDEPTHBUF_EXT
- vFragDepth = 1.0 + gl_Position.w;
- vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
- #else
- if ( isPerspectiveMatrix( projectionMatrix ) ) {
- gl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;
- gl_Position.z *= gl_Position.w;
- }
- #endif
- #endif`,Ope=`#ifdef USE_MAP
- vec4 sampledDiffuseColor = texture2D( map, vMapUv );
- #ifdef DECODE_VIDEO_TEXTURE
- sampledDiffuseColor = vec4( mix( pow( sampledDiffuseColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), sampledDiffuseColor.rgb * 0.0773993808, vec3( lessThanEqual( sampledDiffuseColor.rgb, vec3( 0.04045 ) ) ) ), sampledDiffuseColor.w );
-
- #endif
- diffuseColor *= sampledDiffuseColor;
- #endif`,Lpe=`#ifdef USE_MAP
- uniform sampler2D map;
- #endif`,kpe=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
- #if defined( USE_POINTS_UV )
- vec2 uv = vUv;
- #else
- vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;
- #endif
- #endif
- #ifdef USE_MAP
- diffuseColor *= texture2D( map, uv );
- #endif
- #ifdef USE_ALPHAMAP
- diffuseColor.a *= texture2D( alphaMap, uv ).g;
- #endif`,Ipe=`#if defined( USE_POINTS_UV )
- varying vec2 vUv;
- #else
- #if defined( USE_MAP ) || defined( USE_ALPHAMAP )
- uniform mat3 uvTransform;
- #endif
- #endif
- #ifdef USE_MAP
- uniform sampler2D map;
- #endif
- #ifdef USE_ALPHAMAP
- uniform sampler2D alphaMap;
- #endif`,Upe=`float metalnessFactor = metalness;
- #ifdef USE_METALNESSMAP
- vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );
- metalnessFactor *= texelMetalness.b;
- #endif`,Fpe=`#ifdef USE_METALNESSMAP
- uniform sampler2D metalnessMap;
- #endif`,zpe=`#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )
- vColor *= morphTargetBaseInfluence;
- for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
- #if defined( USE_COLOR_ALPHA )
- if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];
- #elif defined( USE_COLOR )
- if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];
- #endif
- }
- #endif`,Bpe=`#ifdef USE_MORPHNORMALS
- objectNormal *= morphTargetBaseInfluence;
- #ifdef MORPHTARGETS_TEXTURE
- for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
- if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];
- }
- #else
- objectNormal += morphNormal0 * morphTargetInfluences[ 0 ];
- objectNormal += morphNormal1 * morphTargetInfluences[ 1 ];
- objectNormal += morphNormal2 * morphTargetInfluences[ 2 ];
- objectNormal += morphNormal3 * morphTargetInfluences[ 3 ];
- #endif
- #endif`,jpe=`#ifdef USE_MORPHTARGETS
- uniform float morphTargetBaseInfluence;
- #ifdef MORPHTARGETS_TEXTURE
- uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];
- uniform sampler2DArray morphTargetsTexture;
- uniform ivec2 morphTargetsTextureSize;
- vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {
- int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;
- int y = texelIndex / morphTargetsTextureSize.x;
- int x = texelIndex - y * morphTargetsTextureSize.x;
- ivec3 morphUV = ivec3( x, y, morphTargetIndex );
- return texelFetch( morphTargetsTexture, morphUV, 0 );
- }
- #else
- #ifndef USE_MORPHNORMALS
- uniform float morphTargetInfluences[ 8 ];
- #else
- uniform float morphTargetInfluences[ 4 ];
- #endif
- #endif
- #endif`,Hpe=`#ifdef USE_MORPHTARGETS
- transformed *= morphTargetBaseInfluence;
- #ifdef MORPHTARGETS_TEXTURE
- for ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {
- if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];
- }
- #else
- transformed += morphTarget0 * morphTargetInfluences[ 0 ];
- transformed += morphTarget1 * morphTargetInfluences[ 1 ];
- transformed += morphTarget2 * morphTargetInfluences[ 2 ];
- transformed += morphTarget3 * morphTargetInfluences[ 3 ];
- #ifndef USE_MORPHNORMALS
- transformed += morphTarget4 * morphTargetInfluences[ 4 ];
- transformed += morphTarget5 * morphTargetInfluences[ 5 ];
- transformed += morphTarget6 * morphTargetInfluences[ 6 ];
- transformed += morphTarget7 * morphTargetInfluences[ 7 ];
- #endif
- #endif
- #endif`,Vpe=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
- #ifdef FLAT_SHADED
- vec3 fdx = dFdx( vViewPosition );
- vec3 fdy = dFdy( vViewPosition );
- vec3 normal = normalize( cross( fdx, fdy ) );
- #else
- vec3 normal = normalize( vNormal );
- #ifdef DOUBLE_SIDED
- normal *= faceDirection;
- #endif
- #endif
- #if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )
- #ifdef USE_TANGENT
- mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
- #else
- mat3 tbn = getTangentFrame( - vViewPosition, normal,
- #if defined( USE_NORMALMAP )
- vNormalMapUv
- #elif defined( USE_CLEARCOAT_NORMALMAP )
- vClearcoatNormalMapUv
- #else
- vUv
- #endif
- );
- #endif
- #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )
- tbn[0] *= faceDirection;
- tbn[1] *= faceDirection;
- #endif
- #endif
- #ifdef USE_CLEARCOAT_NORMALMAP
- #ifdef USE_TANGENT
- mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
- #else
- mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );
- #endif
- #if defined( DOUBLE_SIDED ) && ! defined( FLAT_SHADED )
- tbn2[0] *= faceDirection;
- tbn2[1] *= faceDirection;
- #endif
- #endif
- vec3 nonPerturbedNormal = normal;`,Gpe=`#ifdef USE_NORMALMAP_OBJECTSPACE
- normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
- #ifdef FLIP_SIDED
- normal = - normal;
- #endif
- #ifdef DOUBLE_SIDED
- normal = normal * faceDirection;
- #endif
- normal = normalize( normalMatrix * normal );
- #elif defined( USE_NORMALMAP_TANGENTSPACE )
- vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
- mapN.xy *= normalScale;
- normal = normalize( tbn * mapN );
- #elif defined( USE_BUMPMAP )
- normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );
- #endif`,$pe=`#ifndef FLAT_SHADED
- varying vec3 vNormal;
- #ifdef USE_TANGENT
- varying vec3 vTangent;
- varying vec3 vBitangent;
- #endif
- #endif`,Wpe=`#ifndef FLAT_SHADED
- varying vec3 vNormal;
- #ifdef USE_TANGENT
- varying vec3 vTangent;
- varying vec3 vBitangent;
- #endif
- #endif`,qpe=`#ifndef FLAT_SHADED
- vNormal = normalize( transformedNormal );
- #ifdef USE_TANGENT
- vTangent = normalize( transformedTangent );
- vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );
- #endif
- #endif`,Xpe=`#ifdef USE_NORMALMAP
- uniform sampler2D normalMap;
- uniform vec2 normalScale;
- #endif
- #ifdef USE_NORMALMAP_OBJECTSPACE
- uniform mat3 normalMatrix;
- #endif
- #if ! defined ( USE_TANGENT ) && ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )
- mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {
- vec3 q0 = dFdx( eye_pos.xyz );
- vec3 q1 = dFdy( eye_pos.xyz );
- vec2 st0 = dFdx( uv.st );
- vec2 st1 = dFdy( uv.st );
- vec3 N = surf_norm;
- vec3 q1perp = cross( q1, N );
- vec3 q0perp = cross( N, q0 );
- vec3 T = q1perp * st0.x + q0perp * st1.x;
- vec3 B = q1perp * st0.y + q0perp * st1.y;
- float det = max( dot( T, T ), dot( B, B ) );
- float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );
- return mat3( T * scale, B * scale, N );
- }
- #endif`,Ype=`#ifdef USE_CLEARCOAT
- vec3 clearcoatNormal = nonPerturbedNormal;
- #endif`,Kpe=`#ifdef USE_CLEARCOAT_NORMALMAP
- vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;
- clearcoatMapN.xy *= clearcoatNormalScale;
- clearcoatNormal = normalize( tbn2 * clearcoatMapN );
- #endif`,Zpe=`#ifdef USE_CLEARCOATMAP
- uniform sampler2D clearcoatMap;
- #endif
- #ifdef USE_CLEARCOAT_NORMALMAP
- uniform sampler2D clearcoatNormalMap;
- uniform vec2 clearcoatNormalScale;
- #endif
- #ifdef USE_CLEARCOAT_ROUGHNESSMAP
- uniform sampler2D clearcoatRoughnessMap;
- #endif`,Jpe=`#ifdef USE_IRIDESCENCEMAP
- uniform sampler2D iridescenceMap;
- #endif
- #ifdef USE_IRIDESCENCE_THICKNESSMAP
- uniform sampler2D iridescenceThicknessMap;
- #endif`,Qpe=`#ifdef OPAQUE
- diffuseColor.a = 1.0;
- #endif
- #ifdef USE_TRANSMISSION
- diffuseColor.a *= material.transmissionAlpha;
- #endif
- gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,eme=`vec3 packNormalToRGB( const in vec3 normal ) {
- return normalize( normal ) * 0.5 + 0.5;
- }
- vec3 unpackRGBToNormal( const in vec3 rgb ) {
- return 2.0 * rgb.xyz - 1.0;
- }
- const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;
- const vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );
- const vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );
- const float ShiftRight8 = 1. / 256.;
- vec4 packDepthToRGBA( const in float v ) {
- vec4 r = vec4( fract( v * PackFactors ), v );
- r.yzw -= r.xyz * ShiftRight8; return r * PackUpscale;
- }
- float unpackRGBAToDepth( const in vec4 v ) {
- return dot( v, UnpackFactors );
- }
- vec2 packDepthToRG( in highp float v ) {
- return packDepthToRGBA( v ).yx;
- }
- float unpackRGToDepth( const in highp vec2 v ) {
- return unpackRGBAToDepth( vec4( v.xy, 0.0, 0.0 ) );
- }
- vec4 pack2HalfToRGBA( vec2 v ) {
- vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );
- return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );
- }
- vec2 unpackRGBATo2Half( vec4 v ) {
- return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );
- }
- float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {
- return ( viewZ + near ) / ( near - far );
- }
- float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {
- return depth * ( near - far ) - near;
- }
- float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {
- return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );
- }
- float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {
- return ( near * far ) / ( ( far - near ) * depth - far );
- }`,tme=`#ifdef PREMULTIPLIED_ALPHA
- gl_FragColor.rgb *= gl_FragColor.a;
- #endif`,nme=`vec4 mvPosition = vec4( transformed, 1.0 );
- #ifdef USE_BATCHING
- mvPosition = batchingMatrix * mvPosition;
- #endif
- #ifdef USE_INSTANCING
- mvPosition = instanceMatrix * mvPosition;
- #endif
- mvPosition = modelViewMatrix * mvPosition;
- gl_Position = projectionMatrix * mvPosition;`,ime=`#ifdef DITHERING
- gl_FragColor.rgb = dithering( gl_FragColor.rgb );
- #endif`,rme=`#ifdef DITHERING
- vec3 dithering( vec3 color ) {
- float grid_position = rand( gl_FragCoord.xy );
- vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );
- dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );
- return color + dither_shift_RGB;
- }
- #endif`,ame=`float roughnessFactor = roughness;
- #ifdef USE_ROUGHNESSMAP
- vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );
- roughnessFactor *= texelRoughness.g;
- #endif`,sme=`#ifdef USE_ROUGHNESSMAP
- uniform sampler2D roughnessMap;
- #endif`,ome=`#if NUM_SPOT_LIGHT_COORDS > 0
- varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
- #endif
- #if NUM_SPOT_LIGHT_MAPS > 0
- uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];
- #endif
- #ifdef USE_SHADOWMAP
- #if NUM_DIR_LIGHT_SHADOWS > 0
- uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];
- varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
- struct DirectionalLightShadow {
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- };
- uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
- #endif
- #if NUM_SPOT_LIGHT_SHADOWS > 0
- uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];
- struct SpotLightShadow {
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- };
- uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
- #endif
- #if NUM_POINT_LIGHT_SHADOWS > 0
- uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];
- varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
- struct PointLightShadow {
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- float shadowCameraNear;
- float shadowCameraFar;
- };
- uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
- #endif
- float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {
- return step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );
- }
- vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {
- return unpackRGBATo2Half( texture2D( shadow, uv ) );
- }
- float VSMShadow (sampler2D shadow, vec2 uv, float compare ){
- float occlusion = 1.0;
- vec2 distribution = texture2DDistribution( shadow, uv );
- float hard_shadow = step( compare , distribution.x );
- if (hard_shadow != 1.0 ) {
- float distance = compare - distribution.x ;
- float variance = max( 0.00000, distribution.y * distribution.y );
- float softness_probability = variance / (variance + distance * distance ); softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 ); occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );
- }
- return occlusion;
- }
- float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {
- float shadow = 1.0;
- shadowCoord.xyz /= shadowCoord.w;
- shadowCoord.z += shadowBias;
- bool inFrustum = shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0;
- bool frustumTest = inFrustum && shadowCoord.z <= 1.0;
- if ( frustumTest ) {
- #if defined( SHADOWMAP_TYPE_PCF )
- vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
- float dx0 = - texelSize.x * shadowRadius;
- float dy0 = - texelSize.y * shadowRadius;
- float dx1 = + texelSize.x * shadowRadius;
- float dy1 = + texelSize.y * shadowRadius;
- float dx2 = dx0 / 2.0;
- float dy2 = dy0 / 2.0;
- float dx3 = dx1 / 2.0;
- float dy3 = dy1 / 2.0;
- shadow = (
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )
- ) * ( 1.0 / 17.0 );
- #elif defined( SHADOWMAP_TYPE_PCF_SOFT )
- vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
- float dx = texelSize.x;
- float dy = texelSize.y;
- vec2 uv = shadowCoord.xy;
- vec2 f = fract( uv * shadowMapSize + 0.5 );
- uv -= f * texelSize;
- shadow = (
- texture2DCompare( shadowMap, uv, shadowCoord.z ) +
- texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +
- texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +
- texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +
- mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),
- f.x ) +
- mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),
- f.x ) +
- mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),
- f.y ) +
- mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),
- f.y ) +
- mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),
- f.x ),
- mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),
- texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),
- f.x ),
- f.y )
- ) * ( 1.0 / 9.0 );
- #elif defined( SHADOWMAP_TYPE_VSM )
- shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );
- #else
- shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );
- #endif
- }
- return shadow;
- }
- vec2 cubeToUV( vec3 v, float texelSizeY ) {
- vec3 absV = abs( v );
- float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );
- absV *= scaleToCube;
- v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );
- vec2 planar = v.xy;
- float almostATexel = 1.5 * texelSizeY;
- float almostOne = 1.0 - almostATexel;
- if ( absV.z >= almostOne ) {
- if ( v.z > 0.0 )
- planar.x = 4.0 - v.x;
- } else if ( absV.x >= almostOne ) {
- float signX = sign( v.x );
- planar.x = v.z * signX + 2.0 * signX;
- } else if ( absV.y >= almostOne ) {
- float signY = sign( v.y );
- planar.x = v.x + 2.0 * signY + 2.0;
- planar.y = v.z * signY - 2.0;
- }
- return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );
- }
- float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {
- vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );
- vec3 lightToPosition = shadowCoord.xyz;
- float dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear ); dp += shadowBias;
- vec3 bd3D = normalize( lightToPosition );
- #if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )
- vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;
- return (
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +
- texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )
- ) * ( 1.0 / 9.0 );
- #else
- return texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );
- #endif
- }
- #endif`,lme=`#if NUM_SPOT_LIGHT_COORDS > 0
- uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];
- varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
- #endif
- #ifdef USE_SHADOWMAP
- #if NUM_DIR_LIGHT_SHADOWS > 0
- uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];
- varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
- struct DirectionalLightShadow {
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- };
- uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
- #endif
- #if NUM_SPOT_LIGHT_SHADOWS > 0
- struct SpotLightShadow {
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- };
- uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
- #endif
- #if NUM_POINT_LIGHT_SHADOWS > 0
- uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];
- varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
- struct PointLightShadow {
- float shadowBias;
- float shadowNormalBias;
- float shadowRadius;
- vec2 shadowMapSize;
- float shadowCameraNear;
- float shadowCameraFar;
- };
- uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
- #endif
- #endif`,cme=`#if ( defined( USE_SHADOWMAP ) && ( NUM_DIR_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0 ) ) || ( NUM_SPOT_LIGHT_COORDS > 0 )
- vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
- vec4 shadowWorldPosition;
- #endif
- #if defined( USE_SHADOWMAP )
- #if NUM_DIR_LIGHT_SHADOWS > 0
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
- shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );
- vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;
- }
- #pragma unroll_loop_end
- #endif
- #if NUM_POINT_LIGHT_SHADOWS > 0
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
- shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );
- vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;
- }
- #pragma unroll_loop_end
- #endif
- #endif
- #if NUM_SPOT_LIGHT_COORDS > 0
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_SPOT_LIGHT_COORDS; i ++ ) {
- shadowWorldPosition = worldPosition;
- #if ( defined( USE_SHADOWMAP ) && UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )
- shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;
- #endif
- vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;
- }
- #pragma unroll_loop_end
- #endif`,ume=`float getShadowMask() {
- float shadow = 1.0;
- #ifdef USE_SHADOWMAP
- #if NUM_DIR_LIGHT_SHADOWS > 0
- DirectionalLightShadow directionalLight;
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {
- directionalLight = directionalLightShadows[ i ];
- shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
- }
- #pragma unroll_loop_end
- #endif
- #if NUM_SPOT_LIGHT_SHADOWS > 0
- SpotLightShadow spotLight;
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {
- spotLight = spotLightShadows[ i ];
- shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
- }
- #pragma unroll_loop_end
- #endif
- #if NUM_POINT_LIGHT_SHADOWS > 0
- PointLightShadow pointLight;
- #pragma unroll_loop_start
- for ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {
- pointLight = pointLightShadows[ i ];
- shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;
- }
- #pragma unroll_loop_end
- #endif
- #endif
- return shadow;
- }`,dme=`#ifdef USE_SKINNING
- mat4 boneMatX = getBoneMatrix( skinIndex.x );
- mat4 boneMatY = getBoneMatrix( skinIndex.y );
- mat4 boneMatZ = getBoneMatrix( skinIndex.z );
- mat4 boneMatW = getBoneMatrix( skinIndex.w );
- #endif`,fme=`#ifdef USE_SKINNING
- uniform mat4 bindMatrix;
- uniform mat4 bindMatrixInverse;
- uniform highp sampler2D boneTexture;
- mat4 getBoneMatrix( const in float i ) {
- int size = textureSize( boneTexture, 0 ).x;
- int j = int( i ) * 4;
- int x = j % size;
- int y = j / size;
- vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );
- vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );
- vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );
- vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );
- return mat4( v1, v2, v3, v4 );
- }
- #endif`,hme=`#ifdef USE_SKINNING
- vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );
- vec4 skinned = vec4( 0.0 );
- skinned += boneMatX * skinVertex * skinWeight.x;
- skinned += boneMatY * skinVertex * skinWeight.y;
- skinned += boneMatZ * skinVertex * skinWeight.z;
- skinned += boneMatW * skinVertex * skinWeight.w;
- transformed = ( bindMatrixInverse * skinned ).xyz;
- #endif`,pme=`#ifdef USE_SKINNING
- mat4 skinMatrix = mat4( 0.0 );
- skinMatrix += skinWeight.x * boneMatX;
- skinMatrix += skinWeight.y * boneMatY;
- skinMatrix += skinWeight.z * boneMatZ;
- skinMatrix += skinWeight.w * boneMatW;
- skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;
- objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;
- #ifdef USE_TANGENT
- objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;
- #endif
- #endif`,mme=`float specularStrength;
- #ifdef USE_SPECULARMAP
- vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );
- specularStrength = texelSpecular.r;
- #else
- specularStrength = 1.0;
- #endif`,gme=`#ifdef USE_SPECULARMAP
- uniform sampler2D specularMap;
- #endif`,vme=`#if defined( TONE_MAPPING )
- gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );
- #endif`,xme=`#ifndef saturate
- #define saturate( a ) clamp( a, 0.0, 1.0 )
- #endif
- uniform float toneMappingExposure;
- vec3 LinearToneMapping( vec3 color ) {
- return saturate( toneMappingExposure * color );
- }
- vec3 ReinhardToneMapping( vec3 color ) {
- color *= toneMappingExposure;
- return saturate( color / ( vec3( 1.0 ) + color ) );
- }
- vec3 OptimizedCineonToneMapping( vec3 color ) {
- color *= toneMappingExposure;
- color = max( vec3( 0.0 ), color - 0.004 );
- return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );
- }
- vec3 RRTAndODTFit( vec3 v ) {
- vec3 a = v * ( v + 0.0245786 ) - 0.000090537;
- vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;
- return a / b;
- }
- vec3 ACESFilmicToneMapping( vec3 color ) {
- const mat3 ACESInputMat = mat3(
- vec3( 0.59719, 0.07600, 0.02840 ), vec3( 0.35458, 0.90834, 0.13383 ),
- vec3( 0.04823, 0.01566, 0.83777 )
- );
- const mat3 ACESOutputMat = mat3(
- vec3( 1.60475, -0.10208, -0.00327 ), vec3( -0.53108, 1.10813, -0.07276 ),
- vec3( -0.07367, -0.00605, 1.07602 )
- );
- color *= toneMappingExposure / 0.6;
- color = ACESInputMat * color;
- color = RRTAndODTFit( color );
- color = ACESOutputMat * color;
- return saturate( color );
- }
- vec3 CustomToneMapping( vec3 color ) { return color; }`,yme=`#ifdef USE_TRANSMISSION
- material.transmission = transmission;
- material.transmissionAlpha = 1.0;
- material.thickness = thickness;
- material.attenuationDistance = attenuationDistance;
- material.attenuationColor = attenuationColor;
- #ifdef USE_TRANSMISSIONMAP
- material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;
- #endif
- #ifdef USE_THICKNESSMAP
- material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;
- #endif
- vec3 pos = vWorldPosition;
- vec3 v = normalize( cameraPosition - pos );
- vec3 n = inverseTransformDirection( normal, viewMatrix );
- vec4 transmitted = getIBLVolumeRefraction(
- n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,
- pos, modelMatrix, viewMatrix, projectionMatrix, material.ior, material.thickness,
- material.attenuationColor, material.attenuationDistance );
- material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );
- totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );
- #endif`,bme=`#ifdef USE_TRANSMISSION
- uniform float transmission;
- uniform float thickness;
- uniform float attenuationDistance;
- uniform vec3 attenuationColor;
- #ifdef USE_TRANSMISSIONMAP
- uniform sampler2D transmissionMap;
- #endif
- #ifdef USE_THICKNESSMAP
- uniform sampler2D thicknessMap;
- #endif
- uniform vec2 transmissionSamplerSize;
- uniform sampler2D transmissionSamplerMap;
- uniform mat4 modelMatrix;
- uniform mat4 projectionMatrix;
- varying vec3 vWorldPosition;
- float w0( float a ) {
- return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );
- }
- float w1( float a ) {
- return ( 1.0 / 6.0 ) * ( a * a * ( 3.0 * a - 6.0 ) + 4.0 );
- }
- float w2( float a ){
- return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );
- }
- float w3( float a ) {
- return ( 1.0 / 6.0 ) * ( a * a * a );
- }
- float g0( float a ) {
- return w0( a ) + w1( a );
- }
- float g1( float a ) {
- return w2( a ) + w3( a );
- }
- float h0( float a ) {
- return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );
- }
- float h1( float a ) {
- return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );
- }
- vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {
- uv = uv * texelSize.zw + 0.5;
- vec2 iuv = floor( uv );
- vec2 fuv = fract( uv );
- float g0x = g0( fuv.x );
- float g1x = g1( fuv.x );
- float h0x = h0( fuv.x );
- float h1x = h1( fuv.x );
- float h0y = h0( fuv.y );
- float h1y = h1( fuv.y );
- vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
- vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
- vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
- vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
- return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +
- g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );
- }
- vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {
- vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );
- vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );
- vec2 fLodSizeInv = 1.0 / fLodSize;
- vec2 cLodSizeInv = 1.0 / cLodSize;
- vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );
- vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );
- return mix( fSample, cSample, fract( lod ) );
- }
- vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {
- vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );
- vec3 modelScale;
- modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );
- modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );
- modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
- return normalize( refractionVector ) * thickness * modelScale;
- }
- float applyIorToRoughness( const in float roughness, const in float ior ) {
- return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
- }
- vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {
- float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
- return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );
- }
- vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {
- if ( isinf( attenuationDistance ) ) {
- return vec3( 1.0 );
- } else {
- vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;
- vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance ); return transmittance;
- }
- }
- vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,
- const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,
- const in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,
- const in vec3 attenuationColor, const in float attenuationDistance ) {
- vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
- vec3 refractedRayExit = position + transmissionRay;
- vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
- vec2 refractionCoords = ndcPos.xy / ndcPos.w;
- refractionCoords += 1.0;
- refractionCoords /= 2.0;
- vec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );
- vec3 transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );
- vec3 attenuatedColor = transmittance * transmittedLight.rgb;
- vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );
- float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;
- return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );
- }
- #endif`,_me=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
- varying vec2 vUv;
- #endif
- #ifdef USE_MAP
- varying vec2 vMapUv;
- #endif
- #ifdef USE_ALPHAMAP
- varying vec2 vAlphaMapUv;
- #endif
- #ifdef USE_LIGHTMAP
- varying vec2 vLightMapUv;
- #endif
- #ifdef USE_AOMAP
- varying vec2 vAoMapUv;
- #endif
- #ifdef USE_BUMPMAP
- varying vec2 vBumpMapUv;
- #endif
- #ifdef USE_NORMALMAP
- varying vec2 vNormalMapUv;
- #endif
- #ifdef USE_EMISSIVEMAP
- varying vec2 vEmissiveMapUv;
- #endif
- #ifdef USE_METALNESSMAP
- varying vec2 vMetalnessMapUv;
- #endif
- #ifdef USE_ROUGHNESSMAP
- varying vec2 vRoughnessMapUv;
- #endif
- #ifdef USE_ANISOTROPYMAP
- varying vec2 vAnisotropyMapUv;
- #endif
- #ifdef USE_CLEARCOATMAP
- varying vec2 vClearcoatMapUv;
- #endif
- #ifdef USE_CLEARCOAT_NORMALMAP
- varying vec2 vClearcoatNormalMapUv;
- #endif
- #ifdef USE_CLEARCOAT_ROUGHNESSMAP
- varying vec2 vClearcoatRoughnessMapUv;
- #endif
- #ifdef USE_IRIDESCENCEMAP
- varying vec2 vIridescenceMapUv;
- #endif
- #ifdef USE_IRIDESCENCE_THICKNESSMAP
- varying vec2 vIridescenceThicknessMapUv;
- #endif
- #ifdef USE_SHEEN_COLORMAP
- varying vec2 vSheenColorMapUv;
- #endif
- #ifdef USE_SHEEN_ROUGHNESSMAP
- varying vec2 vSheenRoughnessMapUv;
- #endif
- #ifdef USE_SPECULARMAP
- varying vec2 vSpecularMapUv;
- #endif
- #ifdef USE_SPECULAR_COLORMAP
- varying vec2 vSpecularColorMapUv;
- #endif
- #ifdef USE_SPECULAR_INTENSITYMAP
- varying vec2 vSpecularIntensityMapUv;
- #endif
- #ifdef USE_TRANSMISSIONMAP
- uniform mat3 transmissionMapTransform;
- varying vec2 vTransmissionMapUv;
- #endif
- #ifdef USE_THICKNESSMAP
- uniform mat3 thicknessMapTransform;
- varying vec2 vThicknessMapUv;
- #endif`,Sme=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
- varying vec2 vUv;
- #endif
- #ifdef USE_MAP
- uniform mat3 mapTransform;
- varying vec2 vMapUv;
- #endif
- #ifdef USE_ALPHAMAP
- uniform mat3 alphaMapTransform;
- varying vec2 vAlphaMapUv;
- #endif
- #ifdef USE_LIGHTMAP
- uniform mat3 lightMapTransform;
- varying vec2 vLightMapUv;
- #endif
- #ifdef USE_AOMAP
- uniform mat3 aoMapTransform;
- varying vec2 vAoMapUv;
- #endif
- #ifdef USE_BUMPMAP
- uniform mat3 bumpMapTransform;
- varying vec2 vBumpMapUv;
- #endif
- #ifdef USE_NORMALMAP
- uniform mat3 normalMapTransform;
- varying vec2 vNormalMapUv;
- #endif
- #ifdef USE_DISPLACEMENTMAP
- uniform mat3 displacementMapTransform;
- varying vec2 vDisplacementMapUv;
- #endif
- #ifdef USE_EMISSIVEMAP
- uniform mat3 emissiveMapTransform;
- varying vec2 vEmissiveMapUv;
- #endif
- #ifdef USE_METALNESSMAP
- uniform mat3 metalnessMapTransform;
- varying vec2 vMetalnessMapUv;
- #endif
- #ifdef USE_ROUGHNESSMAP
- uniform mat3 roughnessMapTransform;
- varying vec2 vRoughnessMapUv;
- #endif
- #ifdef USE_ANISOTROPYMAP
- uniform mat3 anisotropyMapTransform;
- varying vec2 vAnisotropyMapUv;
- #endif
- #ifdef USE_CLEARCOATMAP
- uniform mat3 clearcoatMapTransform;
- varying vec2 vClearcoatMapUv;
- #endif
- #ifdef USE_CLEARCOAT_NORMALMAP
- uniform mat3 clearcoatNormalMapTransform;
- varying vec2 vClearcoatNormalMapUv;
- #endif
- #ifdef USE_CLEARCOAT_ROUGHNESSMAP
- uniform mat3 clearcoatRoughnessMapTransform;
- varying vec2 vClearcoatRoughnessMapUv;
- #endif
- #ifdef USE_SHEEN_COLORMAP
- uniform mat3 sheenColorMapTransform;
- varying vec2 vSheenColorMapUv;
- #endif
- #ifdef USE_SHEEN_ROUGHNESSMAP
- uniform mat3 sheenRoughnessMapTransform;
- varying vec2 vSheenRoughnessMapUv;
- #endif
- #ifdef USE_IRIDESCENCEMAP
- uniform mat3 iridescenceMapTransform;
- varying vec2 vIridescenceMapUv;
- #endif
- #ifdef USE_IRIDESCENCE_THICKNESSMAP
- uniform mat3 iridescenceThicknessMapTransform;
- varying vec2 vIridescenceThicknessMapUv;
- #endif
- #ifdef USE_SPECULARMAP
- uniform mat3 specularMapTransform;
- varying vec2 vSpecularMapUv;
- #endif
- #ifdef USE_SPECULAR_COLORMAP
- uniform mat3 specularColorMapTransform;
- varying vec2 vSpecularColorMapUv;
- #endif
- #ifdef USE_SPECULAR_INTENSITYMAP
- uniform mat3 specularIntensityMapTransform;
- varying vec2 vSpecularIntensityMapUv;
- #endif
- #ifdef USE_TRANSMISSIONMAP
- uniform mat3 transmissionMapTransform;
- varying vec2 vTransmissionMapUv;
- #endif
- #ifdef USE_THICKNESSMAP
- uniform mat3 thicknessMapTransform;
- varying vec2 vThicknessMapUv;
- #endif`,wme=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
- vUv = vec3( uv, 1 ).xy;
- #endif
- #ifdef USE_MAP
- vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_ALPHAMAP
- vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_LIGHTMAP
- vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_AOMAP
- vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_BUMPMAP
- vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_NORMALMAP
- vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_DISPLACEMENTMAP
- vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_EMISSIVEMAP
- vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_METALNESSMAP
- vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_ROUGHNESSMAP
- vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_ANISOTROPYMAP
- vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_CLEARCOATMAP
- vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_CLEARCOAT_NORMALMAP
- vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_CLEARCOAT_ROUGHNESSMAP
- vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_IRIDESCENCEMAP
- vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_IRIDESCENCE_THICKNESSMAP
- vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_SHEEN_COLORMAP
- vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_SHEEN_ROUGHNESSMAP
- vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_SPECULARMAP
- vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_SPECULAR_COLORMAP
- vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_SPECULAR_INTENSITYMAP
- vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_TRANSMISSIONMAP
- vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;
- #endif
- #ifdef USE_THICKNESSMAP
- vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;
- #endif`,Mme=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS > 0
- vec4 worldPosition = vec4( transformed, 1.0 );
- #ifdef USE_BATCHING
- worldPosition = batchingMatrix * worldPosition;
- #endif
- #ifdef USE_INSTANCING
- worldPosition = instanceMatrix * worldPosition;
- #endif
- worldPosition = modelMatrix * worldPosition;
- #endif`;const Eme=`varying vec2 vUv;
- uniform mat3 uvTransform;
- void main() {
- vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
- gl_Position = vec4( position.xy, 1.0, 1.0 );
- }`,Ame=`uniform sampler2D t2D;
- uniform float backgroundIntensity;
- varying vec2 vUv;
- void main() {
- vec4 texColor = texture2D( t2D, vUv );
- #ifdef DECODE_VIDEO_TEXTURE
- texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );
- #endif
- texColor.rgb *= backgroundIntensity;
- gl_FragColor = texColor;
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- }`,Tme=`varying vec3 vWorldDirection;
- #include <common>
- void main() {
- vWorldDirection = transformDirection( position, modelMatrix );
- #include <begin_vertex>
- #include <project_vertex>
- gl_Position.z = gl_Position.w;
- }`,Cme=`#ifdef ENVMAP_TYPE_CUBE
- uniform samplerCube envMap;
- #elif defined( ENVMAP_TYPE_CUBE_UV )
- uniform sampler2D envMap;
- #endif
- uniform float flipEnvMap;
- uniform float backgroundBlurriness;
- uniform float backgroundIntensity;
- varying vec3 vWorldDirection;
- #include <cube_uv_reflection_fragment>
- void main() {
- #ifdef ENVMAP_TYPE_CUBE
- vec4 texColor = textureCube( envMap, vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );
- #elif defined( ENVMAP_TYPE_CUBE_UV )
- vec4 texColor = textureCubeUV( envMap, vWorldDirection, backgroundBlurriness );
- #else
- vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );
- #endif
- texColor.rgb *= backgroundIntensity;
- gl_FragColor = texColor;
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- }`,Rme=`varying vec3 vWorldDirection;
- #include <common>
- void main() {
- vWorldDirection = transformDirection( position, modelMatrix );
- #include <begin_vertex>
- #include <project_vertex>
- gl_Position.z = gl_Position.w;
- }`,Pme=`uniform samplerCube tCube;
- uniform float tFlip;
- uniform float opacity;
- varying vec3 vWorldDirection;
- void main() {
- vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );
- gl_FragColor = texColor;
- gl_FragColor.a *= opacity;
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- }`,Dme=`#include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- varying vec2 vHighPrecisionZW;
- void main() {
- #include <uv_vertex>
- #include <batching_vertex>
- #include <skinbase_vertex>
- #ifdef USE_DISPLACEMENTMAP
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinnormal_vertex>
- #endif
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- vHighPrecisionZW = gl_Position.zw;
- }`,Nme=`#if DEPTH_PACKING == 3200
- uniform float opacity;
- #endif
- #include <common>
- #include <packing>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- varying vec2 vHighPrecisionZW;
- void main() {
- #include <clipping_planes_fragment>
- vec4 diffuseColor = vec4( 1.0 );
- #if DEPTH_PACKING == 3200
- diffuseColor.a = opacity;
- #endif
- #include <map_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <logdepthbuf_fragment>
- float fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;
- #if DEPTH_PACKING == 3200
- gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );
- #elif DEPTH_PACKING == 3201
- gl_FragColor = packDepthToRGBA( fragCoordZ );
- #endif
- }`,Ome=`#define DISTANCE
- varying vec3 vWorldPosition;
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <batching_vertex>
- #include <skinbase_vertex>
- #ifdef USE_DISPLACEMENTMAP
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinnormal_vertex>
- #endif
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <worldpos_vertex>
- #include <clipping_planes_vertex>
- vWorldPosition = worldPosition.xyz;
- }`,Lme=`#define DISTANCE
- uniform vec3 referencePosition;
- uniform float nearDistance;
- uniform float farDistance;
- varying vec3 vWorldPosition;
- #include <common>
- #include <packing>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main () {
- #include <clipping_planes_fragment>
- vec4 diffuseColor = vec4( 1.0 );
- #include <map_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- float dist = length( vWorldPosition - referencePosition );
- dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
- dist = saturate( dist );
- gl_FragColor = packDepthToRGBA( dist );
- }`,kme=`varying vec3 vWorldDirection;
- #include <common>
- void main() {
- vWorldDirection = transformDirection( position, modelMatrix );
- #include <begin_vertex>
- #include <project_vertex>
- }`,Ime=`uniform sampler2D tEquirect;
- varying vec3 vWorldDirection;
- #include <common>
- void main() {
- vec3 direction = normalize( vWorldDirection );
- vec2 sampleUV = equirectUv( direction );
- gl_FragColor = texture2D( tEquirect, sampleUV );
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- }`,Ume=`uniform float scale;
- attribute float lineDistance;
- varying float vLineDistance;
- #include <common>
- #include <uv_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- vLineDistance = scale * lineDistance;
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphcolor_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <fog_vertex>
- }`,Fme=`uniform vec3 diffuse;
- uniform float opacity;
- uniform float dashSize;
- uniform float totalSize;
- varying float vLineDistance;
- #include <common>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <fog_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- #include <clipping_planes_fragment>
- if ( mod( vLineDistance, totalSize ) > dashSize ) {
- discard;
- }
- vec3 outgoingLight = vec3( 0.0 );
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- outgoingLight = diffuseColor.rgb;
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- }`,zme=`#include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <envmap_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #endif
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <worldpos_vertex>
- #include <envmap_vertex>
- #include <fog_vertex>
- }`,Bme=`uniform vec3 diffuse;
- uniform float opacity;
- #ifndef FLAT_SHADED
- varying vec3 vNormal;
- #endif
- #include <common>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <aomap_pars_fragment>
- #include <lightmap_pars_fragment>
- #include <envmap_common_pars_fragment>
- #include <envmap_pars_fragment>
- #include <fog_pars_fragment>
- #include <specularmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- #include <clipping_planes_fragment>
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <specularmap_fragment>
- ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
- #ifdef USE_LIGHTMAP
- vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
- reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;
- #else
- reflectedLight.indirectDiffuse += vec3( 1.0 );
- #endif
- #include <aomap_fragment>
- reflectedLight.indirectDiffuse *= diffuseColor.rgb;
- vec3 outgoingLight = reflectedLight.indirectDiffuse;
- #include <envmap_fragment>
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,jme=`#define LAMBERT
- varying vec3 vViewPosition;
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <envmap_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <shadowmap_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- vViewPosition = - mvPosition.xyz;
- #include <worldpos_vertex>
- #include <envmap_vertex>
- #include <shadowmap_vertex>
- #include <fog_vertex>
- }`,Hme=`#define LAMBERT
- uniform vec3 diffuse;
- uniform vec3 emissive;
- uniform float opacity;
- #include <common>
- #include <packing>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <aomap_pars_fragment>
- #include <lightmap_pars_fragment>
- #include <emissivemap_pars_fragment>
- #include <envmap_common_pars_fragment>
- #include <envmap_pars_fragment>
- #include <fog_pars_fragment>
- #include <bsdfs>
- #include <lights_pars_begin>
- #include <normal_pars_fragment>
- #include <lights_lambert_pars_fragment>
- #include <shadowmap_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <specularmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- #include <clipping_planes_fragment>
- vec4 diffuseColor = vec4( diffuse, opacity );
- ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
- vec3 totalEmissiveRadiance = emissive;
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <specularmap_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- #include <emissivemap_fragment>
- #include <lights_lambert_fragment>
- #include <lights_fragment_begin>
- #include <lights_fragment_maps>
- #include <lights_fragment_end>
- #include <aomap_fragment>
- vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
- #include <envmap_fragment>
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,Vme=`#define MATCAP
- varying vec3 vViewPosition;
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <color_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <fog_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <fog_vertex>
- vViewPosition = - mvPosition.xyz;
- }`,Gme=`#define MATCAP
- uniform vec3 diffuse;
- uniform float opacity;
- uniform sampler2D matcap;
- varying vec3 vViewPosition;
- #include <common>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <fog_pars_fragment>
- #include <normal_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- #include <clipping_planes_fragment>
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- vec3 viewDir = normalize( vViewPosition );
- vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
- vec3 y = cross( viewDir, x );
- vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
- #ifdef USE_MATCAP
- vec4 matcapColor = texture2D( matcap, uv );
- #else
- vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );
- #endif
- vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,$me=`#define NORMAL
- #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
- varying vec3 vViewPosition;
- #endif
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
- vViewPosition = - mvPosition.xyz;
- #endif
- }`,Wme=`#define NORMAL
- uniform float opacity;
- #if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
- varying vec3 vViewPosition;
- #endif
- #include <packing>
- #include <uv_pars_fragment>
- #include <normal_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- #include <clipping_planes_fragment>
- #include <logdepthbuf_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- gl_FragColor = vec4( packNormalToRGB( normal ), opacity );
- #ifdef OPAQUE
- gl_FragColor.a = 1.0;
- #endif
- }`,qme=`#define PHONG
- varying vec3 vViewPosition;
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <envmap_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <shadowmap_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- vViewPosition = - mvPosition.xyz;
- #include <worldpos_vertex>
- #include <envmap_vertex>
- #include <shadowmap_vertex>
- #include <fog_vertex>
- }`,Xme=`#define PHONG
- uniform vec3 diffuse;
- uniform vec3 emissive;
- uniform vec3 specular;
- uniform float shininess;
- uniform float opacity;
- #include <common>
- #include <packing>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <aomap_pars_fragment>
- #include <lightmap_pars_fragment>
- #include <emissivemap_pars_fragment>
- #include <envmap_common_pars_fragment>
- #include <envmap_pars_fragment>
- #include <fog_pars_fragment>
- #include <bsdfs>
- #include <lights_pars_begin>
- #include <normal_pars_fragment>
- #include <lights_phong_pars_fragment>
- #include <shadowmap_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <specularmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- #include <clipping_planes_fragment>
- vec4 diffuseColor = vec4( diffuse, opacity );
- ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
- vec3 totalEmissiveRadiance = emissive;
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <specularmap_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- #include <emissivemap_fragment>
- #include <lights_phong_fragment>
- #include <lights_fragment_begin>
- #include <lights_fragment_maps>
- #include <lights_fragment_end>
- #include <aomap_fragment>
- vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
- #include <envmap_fragment>
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,Yme=`#define STANDARD
- varying vec3 vViewPosition;
- #ifdef USE_TRANSMISSION
- varying vec3 vWorldPosition;
- #endif
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <shadowmap_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- vViewPosition = - mvPosition.xyz;
- #include <worldpos_vertex>
- #include <shadowmap_vertex>
- #include <fog_vertex>
- #ifdef USE_TRANSMISSION
- vWorldPosition = worldPosition.xyz;
- #endif
- }`,Kme=`#define STANDARD
- #ifdef PHYSICAL
- #define IOR
- #define USE_SPECULAR
- #endif
- uniform vec3 diffuse;
- uniform vec3 emissive;
- uniform float roughness;
- uniform float metalness;
- uniform float opacity;
- #ifdef IOR
- uniform float ior;
- #endif
- #ifdef USE_SPECULAR
- uniform float specularIntensity;
- uniform vec3 specularColor;
- #ifdef USE_SPECULAR_COLORMAP
- uniform sampler2D specularColorMap;
- #endif
- #ifdef USE_SPECULAR_INTENSITYMAP
- uniform sampler2D specularIntensityMap;
- #endif
- #endif
- #ifdef USE_CLEARCOAT
- uniform float clearcoat;
- uniform float clearcoatRoughness;
- #endif
- #ifdef USE_IRIDESCENCE
- uniform float iridescence;
- uniform float iridescenceIOR;
- uniform float iridescenceThicknessMinimum;
- uniform float iridescenceThicknessMaximum;
- #endif
- #ifdef USE_SHEEN
- uniform vec3 sheenColor;
- uniform float sheenRoughness;
- #ifdef USE_SHEEN_COLORMAP
- uniform sampler2D sheenColorMap;
- #endif
- #ifdef USE_SHEEN_ROUGHNESSMAP
- uniform sampler2D sheenRoughnessMap;
- #endif
- #endif
- #ifdef USE_ANISOTROPY
- uniform vec2 anisotropyVector;
- #ifdef USE_ANISOTROPYMAP
- uniform sampler2D anisotropyMap;
- #endif
- #endif
- varying vec3 vViewPosition;
- #include <common>
- #include <packing>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <aomap_pars_fragment>
- #include <lightmap_pars_fragment>
- #include <emissivemap_pars_fragment>
- #include <iridescence_fragment>
- #include <cube_uv_reflection_fragment>
- #include <envmap_common_pars_fragment>
- #include <envmap_physical_pars_fragment>
- #include <fog_pars_fragment>
- #include <lights_pars_begin>
- #include <normal_pars_fragment>
- #include <lights_physical_pars_fragment>
- #include <transmission_pars_fragment>
- #include <shadowmap_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <clearcoat_pars_fragment>
- #include <iridescence_pars_fragment>
- #include <roughnessmap_pars_fragment>
- #include <metalnessmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- #include <clipping_planes_fragment>
- vec4 diffuseColor = vec4( diffuse, opacity );
- ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
- vec3 totalEmissiveRadiance = emissive;
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <roughnessmap_fragment>
- #include <metalnessmap_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- #include <clearcoat_normal_fragment_begin>
- #include <clearcoat_normal_fragment_maps>
- #include <emissivemap_fragment>
- #include <lights_physical_fragment>
- #include <lights_fragment_begin>
- #include <lights_fragment_maps>
- #include <lights_fragment_end>
- #include <aomap_fragment>
- vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;
- vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;
- #include <transmission_fragment>
- vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;
- #ifdef USE_SHEEN
- float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );
- outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;
- #endif
- #ifdef USE_CLEARCOAT
- float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );
- vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );
- outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;
- #endif
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,Zme=`#define TOON
- varying vec3 vViewPosition;
- #include <common>
- #include <batching_pars_vertex>
- #include <uv_pars_vertex>
- #include <displacementmap_pars_vertex>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <normal_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <shadowmap_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- #include <color_vertex>
- #include <morphcolor_vertex>
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <normal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <displacementmap_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- vViewPosition = - mvPosition.xyz;
- #include <worldpos_vertex>
- #include <shadowmap_vertex>
- #include <fog_vertex>
- }`,Jme=`#define TOON
- uniform vec3 diffuse;
- uniform vec3 emissive;
- uniform float opacity;
- #include <common>
- #include <packing>
- #include <dithering_pars_fragment>
- #include <color_pars_fragment>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <aomap_pars_fragment>
- #include <lightmap_pars_fragment>
- #include <emissivemap_pars_fragment>
- #include <gradientmap_pars_fragment>
- #include <fog_pars_fragment>
- #include <bsdfs>
- #include <lights_pars_begin>
- #include <normal_pars_fragment>
- #include <lights_toon_pars_fragment>
- #include <shadowmap_pars_fragment>
- #include <bumpmap_pars_fragment>
- #include <normalmap_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- #include <clipping_planes_fragment>
- vec4 diffuseColor = vec4( diffuse, opacity );
- ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
- vec3 totalEmissiveRadiance = emissive;
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <color_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- #include <normal_fragment_begin>
- #include <normal_fragment_maps>
- #include <emissivemap_fragment>
- #include <lights_toon_fragment>
- #include <lights_fragment_begin>
- #include <lights_fragment_maps>
- #include <lights_fragment_end>
- #include <aomap_fragment>
- vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- #include <dithering_fragment>
- }`,Qme=`uniform float size;
- uniform float scale;
- #include <common>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- #ifdef USE_POINTS_UV
- varying vec2 vUv;
- uniform mat3 uvTransform;
- #endif
- void main() {
- #ifdef USE_POINTS_UV
- vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
- #endif
- #include <color_vertex>
- #include <morphcolor_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <project_vertex>
- gl_PointSize = size;
- #ifdef USE_SIZEATTENUATION
- bool isPerspective = isPerspectiveMatrix( projectionMatrix );
- if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );
- #endif
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <worldpos_vertex>
- #include <fog_vertex>
- }`,ege=`uniform vec3 diffuse;
- uniform float opacity;
- #include <common>
- #include <color_pars_fragment>
- #include <map_particle_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <fog_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- #include <clipping_planes_fragment>
- vec3 outgoingLight = vec3( 0.0 );
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <logdepthbuf_fragment>
- #include <map_particle_fragment>
- #include <color_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- outgoingLight = diffuseColor.rgb;
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- }`,tge=`#include <common>
- #include <batching_pars_vertex>
- #include <fog_pars_vertex>
- #include <morphtarget_pars_vertex>
- #include <skinning_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <shadowmap_pars_vertex>
- void main() {
- #include <batching_vertex>
- #include <beginnormal_vertex>
- #include <morphnormal_vertex>
- #include <skinbase_vertex>
- #include <skinnormal_vertex>
- #include <defaultnormal_vertex>
- #include <begin_vertex>
- #include <morphtarget_vertex>
- #include <skinning_vertex>
- #include <project_vertex>
- #include <logdepthbuf_vertex>
- #include <worldpos_vertex>
- #include <shadowmap_vertex>
- #include <fog_vertex>
- }`,nge=`uniform vec3 color;
- uniform float opacity;
- #include <common>
- #include <packing>
- #include <fog_pars_fragment>
- #include <bsdfs>
- #include <lights_pars_begin>
- #include <logdepthbuf_pars_fragment>
- #include <shadowmap_pars_fragment>
- #include <shadowmask_pars_fragment>
- void main() {
- #include <logdepthbuf_fragment>
- gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- }`,ige=`uniform float rotation;
- uniform vec2 center;
- #include <common>
- #include <uv_pars_vertex>
- #include <fog_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- void main() {
- #include <uv_vertex>
- vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );
- vec2 scale;
- scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );
- scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );
- #ifndef USE_SIZEATTENUATION
- bool isPerspective = isPerspectiveMatrix( projectionMatrix );
- if ( isPerspective ) scale *= - mvPosition.z;
- #endif
- vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;
- vec2 rotatedPosition;
- rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
- rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
- mvPosition.xy += rotatedPosition;
- gl_Position = projectionMatrix * mvPosition;
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <fog_vertex>
- }`,rge=`uniform vec3 diffuse;
- uniform float opacity;
- #include <common>
- #include <uv_pars_fragment>
- #include <map_pars_fragment>
- #include <alphamap_pars_fragment>
- #include <alphatest_pars_fragment>
- #include <alphahash_pars_fragment>
- #include <fog_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- void main() {
- #include <clipping_planes_fragment>
- vec3 outgoingLight = vec3( 0.0 );
- vec4 diffuseColor = vec4( diffuse, opacity );
- #include <logdepthbuf_fragment>
- #include <map_fragment>
- #include <alphamap_fragment>
- #include <alphatest_fragment>
- #include <alphahash_fragment>
- outgoingLight = diffuseColor.rgb;
- #include <opaque_fragment>
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- }`,Zt={alphahash_fragment:Ahe,alphahash_pars_fragment:The,alphamap_fragment:Che,alphamap_pars_fragment:Rhe,alphatest_fragment:Phe,alphatest_pars_fragment:Dhe,aomap_fragment:Nhe,aomap_pars_fragment:Ohe,batching_pars_vertex:Lhe,batching_vertex:khe,begin_vertex:Ihe,beginnormal_vertex:Uhe,bsdfs:Fhe,iridescence_fragment:zhe,bumpmap_pars_fragment:Bhe,clipping_planes_fragment:jhe,clipping_planes_pars_fragment:Hhe,clipping_planes_pars_vertex:Vhe,clipping_planes_vertex:Ghe,color_fragment:$he,color_pars_fragment:Whe,color_pars_vertex:qhe,color_vertex:Xhe,common:Yhe,cube_uv_reflection_fragment:Khe,defaultnormal_vertex:Zhe,displacementmap_pars_vertex:Jhe,displacementmap_vertex:Qhe,emissivemap_fragment:epe,emissivemap_pars_fragment:tpe,colorspace_fragment:npe,colorspace_pars_fragment:ipe,envmap_fragment:rpe,envmap_common_pars_fragment:ape,envmap_pars_fragment:spe,envmap_pars_vertex:ope,envmap_physical_pars_fragment:ype,envmap_vertex:lpe,fog_vertex:cpe,fog_pars_vertex:upe,fog_fragment:dpe,fog_pars_fragment:fpe,gradientmap_pars_fragment:hpe,lightmap_fragment:ppe,lightmap_pars_fragment:mpe,lights_lambert_fragment:gpe,lights_lambert_pars_fragment:vpe,lights_pars_begin:xpe,lights_toon_fragment:bpe,lights_toon_pars_fragment:_pe,lights_phong_fragment:Spe,lights_phong_pars_fragment:wpe,lights_physical_fragment:Mpe,lights_physical_pars_fragment:Epe,lights_fragment_begin:Ape,lights_fragment_maps:Tpe,lights_fragment_end:Cpe,logdepthbuf_fragment:Rpe,logdepthbuf_pars_fragment:Ppe,logdepthbuf_pars_vertex:Dpe,logdepthbuf_vertex:Npe,map_fragment:Ope,map_pars_fragment:Lpe,map_particle_fragment:kpe,map_particle_pars_fragment:Ipe,metalnessmap_fragment:Upe,metalnessmap_pars_fragment:Fpe,morphcolor_vertex:zpe,morphnormal_vertex:Bpe,morphtarget_pars_vertex:jpe,morphtarget_vertex:Hpe,normal_fragment_begin:Vpe,normal_fragment_maps:Gpe,normal_pars_fragment:$pe,normal_pars_vertex:Wpe,normal_vertex:qpe,normalmap_pars_fragment:Xpe,clearcoat_normal_fragment_begin:Ype,clearcoat_normal_fragment_maps:Kpe,clearcoat_pars_fragment:Zpe,iridescence_pars_fragment:Jpe,opaque_fragment:Qpe,packing:eme,premultiplied_alpha_fragment:tme,project_vertex:nme,dithering_fragment:ime,dithering_pars_fragment:rme,roughnessmap_fragment:ame,roughnessmap_pars_fragment:sme,shadowmap_pars_fragment:ome,shadowmap_pars_vertex:lme,shadowmap_vertex:cme,shadowmask_pars_fragment:ume,skinbase_vertex:dme,skinning_pars_vertex:fme,skinning_vertex:hme,skinnormal_vertex:pme,specularmap_fragment:mme,specularmap_pars_fragment:gme,tonemapping_fragment:vme,tonemapping_pars_fragment:xme,transmission_fragment:yme,transmission_pars_fragment:bme,uv_pars_fragment:_me,uv_pars_vertex:Sme,uv_vertex:wme,worldpos_vertex:Mme,background_vert:Eme,background_frag:Ame,backgroundCube_vert:Tme,backgroundCube_frag:Cme,cube_vert:Rme,cube_frag:Pme,depth_vert:Dme,depth_frag:Nme,distanceRGBA_vert:Ome,distanceRGBA_frag:Lme,equirect_vert:kme,equirect_frag:Ime,linedashed_vert:Ume,linedashed_frag:Fme,meshbasic_vert:zme,meshbasic_frag:Bme,meshlambert_vert:jme,meshlambert_frag:Hme,meshmatcap_vert:Vme,meshmatcap_frag:Gme,meshnormal_vert:$me,meshnormal_frag:Wme,meshphong_vert:qme,meshphong_frag:Xme,meshphysical_vert:Yme,meshphysical_frag:Kme,meshtoon_vert:Zme,meshtoon_frag:Jme,points_vert:Qme,points_frag:ege,shadow_vert:tge,shadow_frag:nge,sprite_vert:ige,sprite_frag:rge},gt={common:{diffuse:{value:new Ut(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new rn},alphaMap:{value:null},alphaMapTransform:{value:new rn},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new rn}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new rn}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new rn}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new rn},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new rn},normalScale:{value:new Ht(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new rn},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new rn}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new rn}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new rn}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Ut(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Ut(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new rn},alphaTest:{value:0},uvTransform:{value:new rn}},sprite:{diffuse:{value:new Ut(16777215)},opacity:{value:1},center:{value:new Ht(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new rn},alphaMap:{value:null},alphaMapTransform:{value:new rn},alphaTest:{value:0}}},Ta={basic:{uniforms:oa([gt.common,gt.specularmap,gt.envmap,gt.aomap,gt.lightmap,gt.fog]),vertexShader:Zt.meshbasic_vert,fragmentShader:Zt.meshbasic_frag},lambert:{uniforms:oa([gt.common,gt.specularmap,gt.envmap,gt.aomap,gt.lightmap,gt.emissivemap,gt.bumpmap,gt.normalmap,gt.displacementmap,gt.fog,gt.lights,{emissive:{value:new Ut(0)}}]),vertexShader:Zt.meshlambert_vert,fragmentShader:Zt.meshlambert_frag},phong:{uniforms:oa([gt.common,gt.specularmap,gt.envmap,gt.aomap,gt.lightmap,gt.emissivemap,gt.bumpmap,gt.normalmap,gt.displacementmap,gt.fog,gt.lights,{emissive:{value:new Ut(0)},specular:{value:new Ut(1118481)},shininess:{value:30}}]),vertexShader:Zt.meshphong_vert,fragmentShader:Zt.meshphong_frag},standard:{uniforms:oa([gt.common,gt.envmap,gt.aomap,gt.lightmap,gt.emissivemap,gt.bumpmap,gt.normalmap,gt.displacementmap,gt.roughnessmap,gt.metalnessmap,gt.fog,gt.lights,{emissive:{value:new Ut(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:Zt.meshphysical_vert,fragmentShader:Zt.meshphysical_frag},toon:{uniforms:oa([gt.common,gt.aomap,gt.lightmap,gt.emissivemap,gt.bumpmap,gt.normalmap,gt.displacementmap,gt.gradientmap,gt.fog,gt.lights,{emissive:{value:new Ut(0)}}]),vertexShader:Zt.meshtoon_vert,fragmentShader:Zt.meshtoon_frag},matcap:{uniforms:oa([gt.common,gt.bumpmap,gt.normalmap,gt.displacementmap,gt.fog,{matcap:{value:null}}]),vertexShader:Zt.meshmatcap_vert,fragmentShader:Zt.meshmatcap_frag},points:{uniforms:oa([gt.points,gt.fog]),vertexShader:Zt.points_vert,fragmentShader:Zt.points_frag},dashed:{uniforms:oa([gt.common,gt.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:Zt.linedashed_vert,fragmentShader:Zt.linedashed_frag},depth:{uniforms:oa([gt.common,gt.displacementmap]),vertexShader:Zt.depth_vert,fragmentShader:Zt.depth_frag},normal:{uniforms:oa([gt.common,gt.bumpmap,gt.normalmap,gt.displacementmap,{opacity:{value:1}}]),vertexShader:Zt.meshnormal_vert,fragmentShader:Zt.meshnormal_frag},sprite:{uniforms:oa([gt.sprite,gt.fog]),vertexShader:Zt.sprite_vert,fragmentShader:Zt.sprite_frag},background:{uniforms:{uvTransform:{value:new rn},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:Zt.background_vert,fragmentShader:Zt.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1}},vertexShader:Zt.backgroundCube_vert,fragmentShader:Zt.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:Zt.cube_vert,fragmentShader:Zt.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:Zt.equirect_vert,fragmentShader:Zt.equirect_frag},distanceRGBA:{uniforms:oa([gt.common,gt.displacementmap,{referencePosition:{value:new Ce},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:Zt.distanceRGBA_vert,fragmentShader:Zt.distanceRGBA_frag},shadow:{uniforms:oa([gt.lights,gt.fog,{color:{value:new Ut(0)},opacity:{value:1}}]),vertexShader:Zt.shadow_vert,fragmentShader:Zt.shadow_frag}};Ta.physical={uniforms:oa([Ta.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new rn},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new rn},clearcoatNormalScale:{value:new Ht(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new rn},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new rn},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new rn},sheen:{value:0},sheenColor:{value:new Ut(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new rn},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new rn},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new rn},transmissionSamplerSize:{value:new Ht},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new rn},attenuationDistance:{value:0},attenuationColor:{value:new Ut(0)},specularColor:{value:new Ut(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new rn},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new rn},anisotropyVector:{value:new Ht},anisotropyMap:{value:null},anisotropyMapTransform:{value:new rn}}]),vertexShader:Zt.meshphysical_vert,fragmentShader:Zt.meshphysical_frag};const Fy={r:0,b:0,g:0};function age(t,e,n,i,r,a,s){const o=new Ut(0);let l=a===!0?0:1,c,d,f=null,p=0,m=null;function y(x,v){let w=!1,M=v.isScene===!0?v.background:null;M&&M.isTexture&&(M=(v.backgroundBlurriness>0?n:e).get(M)),M===null?b(o,l):M&&M.isColor&&(b(M,1),w=!0);const A=t.xr.getEnvironmentBlendMode();A==="additive"?i.buffers.color.setClear(0,0,0,1,s):A==="alpha-blend"&&i.buffers.color.setClear(0,0,0,0,s),(t.autoClear||w)&&t.clear(t.autoClearColor,t.autoClearDepth,t.autoClearStencil),M&&(M.isCubeTexture||M.mapping===sS)?(d===void 0&&(d=new co(new tv(1,1,1),new Du({name:"BackgroundCubeMaterial",uniforms:Ep(Ta.backgroundCube.uniforms),vertexShader:Ta.backgroundCube.vertexShader,fragmentShader:Ta.backgroundCube.fragmentShader,side:Da,depthTest:!1,depthWrite:!1,fog:!1})),d.geometry.deleteAttribute("normal"),d.geometry.deleteAttribute("uv"),d.onBeforeRender=function(T,D,C){this.matrixWorld.copyPosition(C.matrixWorld)},Object.defineProperty(d.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(d)),d.material.uniforms.envMap.value=M,d.material.uniforms.flipEnvMap.value=M.isCubeTexture&&M.isRenderTargetTexture===!1?-1:1,d.material.uniforms.backgroundBlurriness.value=v.backgroundBlurriness,d.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,d.material.toneMapped=kn.getTransfer(M.colorSpace)!==Yn,(f!==M||p!==M.version||m!==t.toneMapping)&&(d.material.needsUpdate=!0,f=M,p=M.version,m=t.toneMapping),d.layers.enableAll(),x.unshift(d,d.geometry,d.material,0,0,null)):M&&M.isTexture&&(c===void 0&&(c=new co(new KP(2,2),new Du({name:"BackgroundMaterial",uniforms:Ep(Ta.background.uniforms),vertexShader:Ta.background.vertexShader,fragmentShader:Ta.background.fragmentShader,side:Pu,depthTest:!1,depthWrite:!1,fog:!1})),c.geometry.deleteAttribute("normal"),Object.defineProperty(c.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(c)),c.material.uniforms.t2D.value=M,c.material.uniforms.backgroundIntensity.value=v.backgroundIntensity,c.material.toneMapped=kn.getTransfer(M.colorSpace)!==Yn,M.matrixAutoUpdate===!0&&M.updateMatrix(),c.material.uniforms.uvTransform.value.copy(M.matrix),(f!==M||p!==M.version||m!==t.toneMapping)&&(c.material.needsUpdate=!0,f=M,p=M.version,m=t.toneMapping),c.layers.enableAll(),x.unshift(c,c.geometry,c.material,0,0,null))}function b(x,v){x.getRGB(Fy,p$(t)),i.buffers.color.setClear(Fy.r,Fy.g,Fy.b,v,s)}return{getClearColor:function(){return o},setClearColor:function(x,v=1){o.set(x),l=v,b(o,l)},getClearAlpha:function(){return l},setClearAlpha:function(x){l=x,b(o,l)},render:y}}function sge(t,e,n,i){const r=t.getParameter(t.MAX_VERTEX_ATTRIBS),a=i.isWebGL2?null:e.get("OES_vertex_array_object"),s=i.isWebGL2||a!==null,o={},l=x(null);let c=l,d=!1;function f(O,$,q,G,Y){let Q=!1;if(s){const se=b(G,q,$);c!==se&&(c=se,m(c.object)),Q=v(O,G,q,Y),Q&&w(O,G,q,Y)}else{const se=$.wireframe===!0;(c.geometry!==G.id||c.program!==q.id||c.wireframe!==se)&&(c.geometry=G.id,c.program=q.id,c.wireframe=se,Q=!0)}Y!==null&&n.update(Y,t.ELEMENT_ARRAY_BUFFER),(Q||d)&&(d=!1,U(O,$,q,G),Y!==null&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,n.get(Y).buffer))}function p(){return i.isWebGL2?t.createVertexArray():a.createVertexArrayOES()}function m(O){return i.isWebGL2?t.bindVertexArray(O):a.bindVertexArrayOES(O)}function y(O){return i.isWebGL2?t.deleteVertexArray(O):a.deleteVertexArrayOES(O)}function b(O,$,q){const G=q.wireframe===!0;let Y=o[O.id];Y===void 0&&(Y={},o[O.id]=Y);let Q=Y[$.id];Q===void 0&&(Q={},Y[$.id]=Q);let se=Q[G];return se===void 0&&(se=x(p()),Q[G]=se),se}function x(O){const $=[],q=[],G=[];for(let Y=0;Y<r;Y++)$[Y]=0,q[Y]=0,G[Y]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:$,enabledAttributes:q,attributeDivisors:G,object:O,attributes:{},index:null}}function v(O,$,q,G){const Y=c.attributes,Q=$.attributes;let se=0;const H=q.getAttributes();for(const X in H)if(H[X].location>=0){const ce=Y[X];let ye=Q[X];if(ye===void 0&&(X==="instanceMatrix"&&O.instanceMatrix&&(ye=O.instanceMatrix),X==="instanceColor"&&O.instanceColor&&(ye=O.instanceColor)),ce===void 0||ce.attribute!==ye||ye&&ce.data!==ye.data)return!0;se++}return c.attributesNum!==se||c.index!==G}function w(O,$,q,G){const Y={},Q=$.attributes;let se=0;const H=q.getAttributes();for(const X in H)if(H[X].location>=0){let ce=Q[X];ce===void 0&&(X==="instanceMatrix"&&O.instanceMatrix&&(ce=O.instanceMatrix),X==="instanceColor"&&O.instanceColor&&(ce=O.instanceColor));const ye={};ye.attribute=ce,ce&&ce.data&&(ye.data=ce.data),Y[X]=ye,se++}c.attributes=Y,c.attributesNum=se,c.index=G}function M(){const O=c.newAttributes;for(let $=0,q=O.length;$<q;$++)O[$]=0}function A(O){T(O,0)}function T(O,$){const q=c.newAttributes,G=c.enabledAttributes,Y=c.attributeDivisors;q[O]=1,G[O]===0&&(t.enableVertexAttribArray(O),G[O]=1),Y[O]!==$&&((i.isWebGL2?t:e.get("ANGLE_instanced_arrays"))[i.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](O,$),Y[O]=$)}function D(){const O=c.newAttributes,$=c.enabledAttributes;for(let q=0,G=$.length;q<G;q++)$[q]!==O[q]&&(t.disableVertexAttribArray(q),$[q]=0)}function C(O,$,q,G,Y,Q,se){se===!0?t.vertexAttribIPointer(O,$,q,Y,Q):t.vertexAttribPointer(O,$,q,G,Y,Q)}function U(O,$,q,G){if(i.isWebGL2===!1&&(O.isInstancedMesh||G.isInstancedBufferGeometry)&&e.get("ANGLE_instanced_arrays")===null)return;M();const Y=G.attributes,Q=q.getAttributes(),se=$.defaultAttributeValues;for(const H in Q){const X=Q[H];if(X.location>=0){let re=Y[H];if(re===void 0&&(H==="instanceMatrix"&&O.instanceMatrix&&(re=O.instanceMatrix),H==="instanceColor"&&O.instanceColor&&(re=O.instanceColor)),re!==void 0){const ce=re.normalized,ye=re.itemSize,me=n.get(re);if(me===void 0)continue;const be=me.buffer,Ne=me.type,he=me.bytesPerElement,Ae=i.isWebGL2===!0&&(Ne===t.INT||Ne===t.UNSIGNED_INT||re.gpuType===XG);if(re.isInterleavedBufferAttribute){const Be=re.data,le=Be.stride,ct=re.offset;if(Be.isInstancedInterleavedBuffer){for(let z=0;z<X.locationSize;z++)T(X.location+z,Be.meshPerAttribute);O.isInstancedMesh!==!0&&G._maxInstanceCount===void 0&&(G._maxInstanceCount=Be.meshPerAttribute*Be.count)}else for(let z=0;z<X.locationSize;z++)A(X.location+z);t.bindBuffer(t.ARRAY_BUFFER,be);for(let z=0;z<X.locationSize;z++)C(X.location+z,ye/X.locationSize,Ne,ce,le*he,(ct+ye/X.locationSize*z)*he,Ae)}else{if(re.isInstancedBufferAttribute){for(let Be=0;Be<X.locationSize;Be++)T(X.location+Be,re.meshPerAttribute);O.isInstancedMesh!==!0&&G._maxInstanceCount===void 0&&(G._maxInstanceCount=re.meshPerAttribute*re.count)}else for(let Be=0;Be<X.locationSize;Be++)A(X.location+Be);t.bindBuffer(t.ARRAY_BUFFER,be);for(let Be=0;Be<X.locationSize;Be++)C(X.location+Be,ye/X.locationSize,Ne,ce,ye*he,ye/X.locationSize*Be*he,Ae)}}else if(se!==void 0){const ce=se[H];if(ce!==void 0)switch(ce.length){case 2:t.vertexAttrib2fv(X.location,ce);break;case 3:t.vertexAttrib3fv(X.location,ce);break;case 4:t.vertexAttrib4fv(X.location,ce);break;default:t.vertexAttrib1fv(X.location,ce)}}}}D()}function P(){I();for(const O in o){const $=o[O];for(const q in $){const G=$[q];for(const Y in G)y(G[Y].object),delete G[Y];delete $[q]}delete o[O]}}function k(O){if(o[O.id]===void 0)return;const $=o[O.id];for(const q in $){const G=$[q];for(const Y in G)y(G[Y].object),delete G[Y];delete $[q]}delete o[O.id]}function B(O){for(const $ in o){const q=o[$];if(q[O.id]===void 0)continue;const G=q[O.id];for(const Y in G)y(G[Y].object),delete G[Y];delete q[O.id]}}function I(){W(),d=!0,c!==l&&(c=l,m(c.object))}function W(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:f,reset:I,resetDefaultState:W,dispose:P,releaseStatesOfGeometry:k,releaseStatesOfProgram:B,initAttributes:M,enableAttribute:A,disableUnusedAttributes:D}}function oge(t,e,n,i){const r=i.isWebGL2;let a;function s(d){a=d}function o(d,f){t.drawArrays(a,d,f),n.update(f,a,1)}function l(d,f,p){if(p===0)return;let m,y;if(r)m=t,y="drawArraysInstanced";else if(m=e.get("ANGLE_instanced_arrays"),y="drawArraysInstancedANGLE",m===null){console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}m[y](a,d,f,p),n.update(f,a,p)}function c(d,f,p){if(p===0)return;const m=e.get("WEBGL_multi_draw");if(m===null)for(let y=0;y<p;y++)this.render(d[y],f[y]);else{m.multiDrawArraysWEBGL(a,d,0,f,0,p);let y=0;for(let b=0;b<p;b++)y+=f[b];n.update(y,a,1)}}this.setMode=s,this.render=o,this.renderInstances=l,this.renderMultiDraw=c}function lge(t,e,n){let i;function r(){if(i!==void 0)return i;if(e.has("EXT_texture_filter_anisotropic")===!0){const C=e.get("EXT_texture_filter_anisotropic");i=t.getParameter(C.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else i=0;return i}function a(C){if(C==="highp"){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return"highp";C="mediump"}return C==="mediump"&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?"mediump":"lowp"}const s=typeof WebGL2RenderingContext<"u"&&t.constructor.name==="WebGL2RenderingContext";let o=n.precision!==void 0?n.precision:"highp";const l=a(o);l!==o&&(console.warn("THREE.WebGLRenderer:",o,"not supported, using",l,"instead."),o=l);const c=s||e.has("WEBGL_draw_buffers"),d=n.logarithmicDepthBuffer===!0,f=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),p=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),m=t.getParameter(t.MAX_TEXTURE_SIZE),y=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),b=t.getParameter(t.MAX_VERTEX_ATTRIBS),x=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),v=t.getParameter(t.MAX_VARYING_VECTORS),w=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),M=p>0,A=s||e.has("OES_texture_float"),T=M&&A,D=s?t.getParameter(t.MAX_SAMPLES):0;return{isWebGL2:s,drawBuffers:c,getMaxAnisotropy:r,getMaxPrecision:a,precision:o,logarithmicDepthBuffer:d,maxTextures:f,maxVertexTextures:p,maxTextureSize:m,maxCubemapSize:y,maxAttributes:b,maxVertexUniforms:x,maxVaryings:v,maxFragmentUniforms:w,vertexTextures:M,floatFragmentTextures:A,floatVertexTextures:T,maxSamples:D}}function cge(t){const e=this;let n=null,i=0,r=!1,a=!1;const s=new tu,o=new rn,l={value:null,needsUpdate:!1};this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(f,p){const m=f.length!==0||p||i!==0||r;return r=p,i=f.length,m},this.beginShadows=function(){a=!0,d(null)},this.endShadows=function(){a=!1},this.setGlobalState=function(f,p){n=d(f,p,0)},this.setState=function(f,p,m){const y=f.clippingPlanes,b=f.clipIntersection,x=f.clipShadows,v=t.get(f);if(!r||y===null||y.length===0||a&&!x)a?d(null):c();else{const w=a?0:i,M=w*4;let A=v.clippingState||null;l.value=A,A=d(y,p,M,m);for(let T=0;T!==M;++T)A[T]=n[T];v.clippingState=A,this.numIntersection=b?this.numPlanes:0,this.numPlanes+=w}};function c(){l.value!==n&&(l.value=n,l.needsUpdate=i>0),e.numPlanes=i,e.numIntersection=0}function d(f,p,m,y){const b=f!==null?f.length:0;let x=null;if(b!==0){if(x=l.value,y!==!0||x===null){const v=m+b*4,w=p.matrixWorldInverse;o.getNormalMatrix(w),(x===null||x.length<v)&&(x=new Float32Array(v));for(let M=0,A=m;M!==b;++M,A+=4)s.copy(f[M]).applyMatrix4(w,o),s.normal.toArray(x,A),x[A+3]=s.constant}l.value=x,l.needsUpdate=!0}return e.numPlanes=b,e.numIntersection=0,x}}function uge(t){let e=new WeakMap;function n(s,o){return o===gR?s.mapping=Sp:o===vR&&(s.mapping=wp),s}function i(s){if(s&&s.isTexture){const o=s.mapping;if(o===gR||o===vR)if(e.has(s)){const l=e.get(s).texture;return n(l,s.mapping)}else{const l=s.image;if(l&&l.height>0){const c=new She(l.height/2);return c.fromEquirectangularTexture(t,s),e.set(s,c),s.addEventListener("dispose",r),n(c.texture,s.mapping)}else return null}}return s}function r(s){const o=s.target;o.removeEventListener("dispose",r);const l=e.get(o);l!==void 0&&(e.delete(o),l.dispose())}function a(){e=new WeakMap}return{get:i,dispose:a}}class dge extends m${constructor(e=-1,n=1,i=1,r=-1,a=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=n,this.top=i,this.bottom=r,this.near=a,this.far=s,this.updateProjectionMatrix()}copy(e,n){return super.copy(e,n),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.near=e.near,this.far=e.far,this.zoom=e.zoom,this.view=e.view===null?null:Object.assign({},e.view),this}setViewOffset(e,n,i,r,a,s){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=n,this.view.offsetX=i,this.view.offsetY=r,this.view.width=a,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),n=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let a=i-e,s=i+e,o=r+n,l=r-n;if(this.view!==null&&this.view.enabled){const c=(this.right-this.left)/this.view.fullWidth/this.zoom,d=(this.top-this.bottom)/this.view.fullHeight/this.zoom;a+=c*this.view.offsetX,s=a+c*this.view.width,o-=d*this.view.offsetY,l=o-d*this.view.height}this.projectionMatrix.makeOrthographic(a,s,o,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const n=super.toJSON(e);return n.object.zoom=this.zoom,n.object.left=this.left,n.object.right=this.right,n.object.top=this.top,n.object.bottom=this.bottom,n.object.near=this.near,n.object.far=this.far,this.view!==null&&(n.object.view=Object.assign({},this.view)),n}}const Qh=4,x4=[.125,.215,.35,.446,.526,.582],Td=20,kA=new dge,y4=new Ut;let IA=null,UA=0,FA=0;const bd=(1+Math.sqrt(5))/2,Fh=1/bd,b4=[new Ce(1,1,1),new Ce(-1,1,1),new Ce(1,1,-1),new Ce(-1,1,-1),new Ce(0,bd,Fh),new Ce(0,bd,-Fh),new Ce(Fh,0,bd),new Ce(-Fh,0,bd),new Ce(bd,Fh,0),new Ce(-bd,Fh,0)];class _4{constructor(e){this._renderer=e,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(e,n=0,i=.1,r=100){IA=this._renderer.getRenderTarget(),UA=this._renderer.getActiveCubeFace(),FA=this._renderer.getActiveMipmapLevel(),this._setSize(256);const a=this._allocateTargets();return a.depthBuffer=!0,this._sceneToCubeUV(e,i,r,a),n>0&&this._blur(a,0,0,n),this._applyPMREM(a),this._cleanup(a),a}fromEquirectangular(e,n=null){return this._fromTexture(e,n)}fromCubemap(e,n=null){return this._fromTexture(e,n)}compileCubemapShader(){this._cubemapMaterial===null&&(this._cubemapMaterial=M4(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&&(this._equirectMaterial=w4(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&&this._cubemapMaterial.dispose(),this._equirectMaterial!==null&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&&this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&&this._pingPongRenderTarget.dispose();for(let e=0;e<this._lodPlanes.length;e++)this._lodPlanes[e].dispose()}_cleanup(e){this._renderer.setRenderTarget(IA,UA,FA),e.scissorTest=!1,zy(e,0,0,e.width,e.height)}_fromTexture(e,n){e.mapping===Sp||e.mapping===wp?this._setSize(e.image.length===0?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4),IA=this._renderer.getRenderTarget(),UA=this._renderer.getActiveCubeFace(),FA=this._renderer.getActiveMipmapLevel();const i=n||this._allocateTargets();return this._textureToCubeUV(e,i),this._applyPMREM(i),this._cleanup(i),i}_allocateTargets(){const e=3*Math.max(this._cubeSize,112),n=4*this._cubeSize,i={magFilter:Ps,minFilter:Ps,generateMipmaps:!1,type:v0,format:Ds,colorSpace:Ql,depthBuffer:!1},r=S4(e,n,i);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==e||this._pingPongRenderTarget.height!==n){this._pingPongRenderTarget!==null&&this._dispose(),this._pingPongRenderTarget=S4(e,n,i);const{_lodMax:a}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=fge(a)),this._blurMaterial=hge(a,e,n)}return r}_compileMaterial(e){const n=new co(this._lodPlanes[0],e);this._renderer.compile(n,kA)}_sceneToCubeUV(e,n,i,r){const o=new Ja(90,1,n,i),l=[1,-1,1,1,1,1],c=[1,1,1,-1,-1,-1],d=this._renderer,f=d.autoClear,p=d.toneMapping;d.getClearColor(y4),d.toneMapping=_u,d.autoClear=!1;const m=new d$({name:"PMREM.Background",side:Da,depthWrite:!1,depthTest:!1}),y=new co(new tv,m);let b=!1;const x=e.background;x?x.isColor&&(m.color.copy(x),e.background=null,b=!0):(m.color.copy(y4),b=!0);for(let v=0;v<6;v++){const w=v%3;w===0?(o.up.set(0,l[v],0),o.lookAt(c[v],0,0)):w===1?(o.up.set(0,0,l[v]),o.lookAt(0,c[v],0)):(o.up.set(0,l[v],0),o.lookAt(0,0,c[v]));const M=this._cubeSize;zy(r,w*M,v>2?M:0,M,M),d.setRenderTarget(r),b&&d.render(y,o),d.render(e,o)}y.geometry.dispose(),y.material.dispose(),d.toneMapping=p,d.autoClear=f,e.background=x}_textureToCubeUV(e,n){const i=this._renderer,r=e.mapping===Sp||e.mapping===wp;r?(this._cubemapMaterial===null&&(this._cubemapMaterial=M4()),this._cubemapMaterial.uniforms.flipEnvMap.value=e.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&&(this._equirectMaterial=w4());const a=r?this._cubemapMaterial:this._equirectMaterial,s=new co(this._lodPlanes[0],a),o=a.uniforms;o.envMap.value=e;const l=this._cubeSize;zy(n,0,0,3*l,2*l),i.setRenderTarget(n),i.render(s,kA)}_applyPMREM(e){const n=this._renderer,i=n.autoClear;n.autoClear=!1;for(let r=1;r<this._lodPlanes.length;r++){const a=Math.sqrt(this._sigmas[r]*this._sigmas[r]-this._sigmas[r-1]*this._sigmas[r-1]),s=b4[(r-1)%b4.length];this._blur(e,r-1,r,a,s)}n.autoClear=i}_blur(e,n,i,r,a){const s=this._pingPongRenderTarget;this._halfBlur(e,s,n,i,r,"latitudinal",a),this._halfBlur(s,e,i,i,r,"longitudinal",a)}_halfBlur(e,n,i,r,a,s,o){const l=this._renderer,c=this._blurMaterial;s!=="latitudinal"&&s!=="longitudinal"&&console.error("blur direction must be either latitudinal or longitudinal!");const d=3,f=new co(this._lodPlanes[r],c),p=c.uniforms,m=this._sizeLods[i]-1,y=isFinite(a)?Math.PI/(2*m):2*Math.PI/(2*Td-1),b=a/y,x=isFinite(a)?1+Math.floor(d*b):Td;x>Td&&console.warn(`sigmaRadians, ${a}, is too large and will clip, as it requested ${x} samples when the maximum is set to ${Td}`);const v=[];let w=0;for(let C=0;C<Td;++C){const U=C/b,P=Math.exp(-U*U/2);v.push(P),C===0?w+=P:C<x&&(w+=2*P)}for(let C=0;C<v.length;C++)v[C]=v[C]/w;p.envMap.value=e.texture,p.samples.value=x,p.weights.value=v,p.latitudinal.value=s==="latitudinal",o&&(p.poleAxis.value=o);const{_lodMax:M}=this;p.dTheta.value=y,p.mipInt.value=M-i;const A=this._sizeLods[r],T=3*A*(r>M-Qh?r-M+Qh:0),D=4*(this._cubeSize-A);zy(n,T,D,3*A,2*A),l.setRenderTarget(n),l.render(f,kA)}}function fge(t){const e=[],n=[],i=[];let r=t;const a=t-Qh+1+x4.length;for(let s=0;s<a;s++){const o=Math.pow(2,r);n.push(o);let l=1/o;s>t-Qh?l=x4[s-t+Qh-1]:s===0&&(l=0),i.push(l);const c=1/(o-2),d=-c,f=1+c,p=[d,d,f,d,f,f,d,d,f,f,d,f],m=6,y=6,b=3,x=2,v=1,w=new Float32Array(b*y*m),M=new Float32Array(x*y*m),A=new Float32Array(v*y*m);for(let D=0;D<m;D++){const C=D%3*2/3-1,U=D>2?0:-1,P=[C,U,0,C+2/3,U,0,C+2/3,U+1,0,C,U,0,C+2/3,U+1,0,C,U+1,0];w.set(P,b*y*D),M.set(p,x*y*D);const k=[D,D,D,D,D,D];A.set(k,v*y*D)}const T=new ta;T.setAttribute("position",new is(w,b)),T.setAttribute("uv",new is(M,x)),T.setAttribute("faceIndex",new is(A,v)),e.push(T),r>Qh&&r--}return{lodPlanes:e,sizeLods:n,sigmas:i}}function S4(t,e,n){const i=new cf(t,e,n);return i.texture.mapping=sS,i.texture.name="PMREM.cubeUv",i.scissorTest=!0,i}function zy(t,e,n,i,r){t.viewport.set(e,n,i,r),t.scissor.set(e,n,i,r)}function hge(t,e,n){const i=new Float32Array(Td),r=new Ce(0,1,0);return new Du({name:"SphericalGaussianBlur",defines:{n:Td,CUBEUV_TEXEL_WIDTH:1/e,CUBEUV_TEXEL_HEIGHT:1/n,CUBEUV_MAX_MIP:`${t}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:r}},vertexShader:ZP(),fragmentShader:`
- precision mediump float;
- precision mediump int;
- varying vec3 vOutputDirection;
- uniform sampler2D envMap;
- uniform int samples;
- uniform float weights[ n ];
- uniform bool latitudinal;
- uniform float dTheta;
- uniform float mipInt;
- uniform vec3 poleAxis;
- #define ENVMAP_TYPE_CUBE_UV
- #include <cube_uv_reflection_fragment>
- vec3 getSample( float theta, vec3 axis ) {
- float cosTheta = cos( theta );
- // Rodrigues' axis-angle rotation
- vec3 sampleDirection = vOutputDirection * cosTheta
- + cross( axis, vOutputDirection ) * sin( theta )
- + axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );
- return bilinearCubeUV( envMap, sampleDirection, mipInt );
- }
- void main() {
- vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );
- if ( all( equal( axis, vec3( 0.0 ) ) ) ) {
- axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );
- }
- axis = normalize( axis );
- gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
- gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );
- for ( int i = 1; i < n; i++ ) {
- if ( i >= samples ) {
- break;
- }
- float theta = dTheta * float( i );
- gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );
- gl_FragColor.rgb += weights[ i ] * getSample( theta, axis );
- }
- }
- `,blending:bu,depthTest:!1,depthWrite:!1})}function w4(){return new Du({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:ZP(),fragmentShader:`
- precision mediump float;
- precision mediump int;
- varying vec3 vOutputDirection;
- uniform sampler2D envMap;
- #include <common>
- void main() {
- vec3 outputDirection = normalize( vOutputDirection );
- vec2 uv = equirectUv( outputDirection );
- gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );
- }
- `,blending:bu,depthTest:!1,depthWrite:!1})}function M4(){return new Du({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:ZP(),fragmentShader:`
- precision mediump float;
- precision mediump int;
- uniform float flipEnvMap;
- varying vec3 vOutputDirection;
- uniform samplerCube envMap;
- void main() {
- gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );
- }
- `,blending:bu,depthTest:!1,depthWrite:!1})}function ZP(){return`
- precision mediump float;
- precision mediump int;
- attribute float faceIndex;
- varying vec3 vOutputDirection;
- // RH coordinate system; PMREM face-indexing convention
- vec3 getDirection( vec2 uv, float face ) {
- uv = 2.0 * uv - 1.0;
- vec3 direction = vec3( uv, 1.0 );
- if ( face == 0.0 ) {
- direction = direction.zyx; // ( 1, v, u ) pos x
- } else if ( face == 1.0 ) {
- direction = direction.xzy;
- direction.xz *= -1.0; // ( -u, 1, -v ) pos y
- } else if ( face == 2.0 ) {
- direction.x *= -1.0; // ( -u, v, 1 ) pos z
- } else if ( face == 3.0 ) {
- direction = direction.zyx;
- direction.xz *= -1.0; // ( -1, v, -u ) neg x
- } else if ( face == 4.0 ) {
- direction = direction.xzy;
- direction.xy *= -1.0; // ( -u, -1, v ) neg y
- } else if ( face == 5.0 ) {
- direction.z *= -1.0; // ( u, v, -1 ) neg z
- }
- return direction;
- }
- void main() {
- vOutputDirection = getDirection( uv, faceIndex );
- gl_Position = vec4( position, 1.0 );
- }
- `}function pge(t){let e=new WeakMap,n=null;function i(o){if(o&&o.isTexture){const l=o.mapping,c=l===gR||l===vR,d=l===Sp||l===wp;if(c||d)if(o.isRenderTargetTexture&&o.needsPMREMUpdate===!0){o.needsPMREMUpdate=!1;let f=e.get(o);return n===null&&(n=new _4(t)),f=c?n.fromEquirectangular(o,f):n.fromCubemap(o,f),e.set(o,f),f.texture}else{if(e.has(o))return e.get(o).texture;{const f=o.image;if(c&&f&&f.height>0||d&&f&&r(f)){n===null&&(n=new _4(t));const p=c?n.fromEquirectangular(o):n.fromCubemap(o);return e.set(o,p),o.addEventListener("dispose",a),p.texture}else return null}}}return o}function r(o){let l=0;const c=6;for(let d=0;d<c;d++)o[d]!==void 0&&l++;return l===c}function a(o){const l=o.target;l.removeEventListener("dispose",a);const c=e.get(l);c!==void 0&&(e.delete(l),c.dispose())}function s(){e=new WeakMap,n!==null&&(n.dispose(),n=null)}return{get:i,dispose:s}}function mge(t){const e={};function n(i){if(e[i]!==void 0)return e[i];let r;switch(i){case"WEBGL_depth_texture":r=t.getExtension("WEBGL_depth_texture")||t.getExtension("MOZ_WEBGL_depth_texture")||t.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=t.getExtension("EXT_texture_filter_anisotropic")||t.getExtension("MOZ_EXT_texture_filter_anisotropic")||t.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=t.getExtension("WEBGL_compressed_texture_s3tc")||t.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=t.getExtension(i)}return e[i]=r,r}return{has:function(i){return n(i)!==null},init:function(i){i.isWebGL2?n("EXT_color_buffer_float"):(n("WEBGL_depth_texture"),n("OES_texture_float"),n("OES_texture_half_float"),n("OES_texture_half_float_linear"),n("OES_standard_derivatives"),n("OES_element_index_uint"),n("OES_vertex_array_object"),n("ANGLE_instanced_arrays")),n("OES_texture_float_linear"),n("EXT_color_buffer_half_float"),n("WEBGL_multisampled_render_to_texture")},get:function(i){const r=n(i);return r===null&&console.warn("THREE.WebGLRenderer: "+i+" extension not supported."),r}}}function gge(t,e,n,i){const r={},a=new WeakMap;function s(f){const p=f.target;p.index!==null&&e.remove(p.index);for(const y in p.attributes)e.remove(p.attributes[y]);for(const y in p.morphAttributes){const b=p.morphAttributes[y];for(let x=0,v=b.length;x<v;x++)e.remove(b[x])}p.removeEventListener("dispose",s),delete r[p.id];const m=a.get(p);m&&(e.remove(m),a.delete(p)),i.releaseStatesOfGeometry(p),p.isInstancedBufferGeometry===!0&&delete p._maxInstanceCount,n.memory.geometries--}function o(f,p){return r[p.id]===!0||(p.addEventListener("dispose",s),r[p.id]=!0,n.memory.geometries++),p}function l(f){const p=f.attributes;for(const y in p)e.update(p[y],t.ARRAY_BUFFER);const m=f.morphAttributes;for(const y in m){const b=m[y];for(let x=0,v=b.length;x<v;x++)e.update(b[x],t.ARRAY_BUFFER)}}function c(f){const p=[],m=f.index,y=f.attributes.position;let b=0;if(m!==null){const w=m.array;b=m.version;for(let M=0,A=w.length;M<A;M+=3){const T=w[M+0],D=w[M+1],C=w[M+2];p.push(T,D,D,C,C,T)}}else if(y!==void 0){const w=y.array;b=y.version;for(let M=0,A=w.length/3-1;M<A;M+=3){const T=M+0,D=M+1,C=M+2;p.push(T,D,D,C,C,T)}}else return;const x=new(a$(p)?h$:f$)(p,1);x.version=b;const v=a.get(f);v&&e.remove(v),a.set(f,x)}function d(f){const p=a.get(f);if(p){const m=f.index;m!==null&&p.version<m.version&&c(f)}else c(f);return a.get(f)}return{get:o,update:l,getWireframeAttribute:d}}function vge(t,e,n,i){const r=i.isWebGL2;let a;function s(m){a=m}let o,l;function c(m){o=m.type,l=m.bytesPerElement}function d(m,y){t.drawElements(a,y,o,m*l),n.update(y,a,1)}function f(m,y,b){if(b===0)return;let x,v;if(r)x=t,v="drawElementsInstanced";else if(x=e.get("ANGLE_instanced_arrays"),v="drawElementsInstancedANGLE",x===null){console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");return}x[v](a,y,o,m*l,b),n.update(y,a,b)}function p(m,y,b){if(b===0)return;const x=e.get("WEBGL_multi_draw");if(x===null)for(let v=0;v<b;v++)this.render(m[v]/l,y[v]);else{x.multiDrawElementsWEBGL(a,y,0,o,m,0,b);let v=0;for(let w=0;w<b;w++)v+=y[w];n.update(v,a,1)}}this.setMode=s,this.setIndex=c,this.render=d,this.renderInstances=f,this.renderMultiDraw=p}function xge(t){const e={geometries:0,textures:0},n={frame:0,calls:0,triangles:0,points:0,lines:0};function i(a,s,o){switch(n.calls++,s){case t.TRIANGLES:n.triangles+=o*(a/3);break;case t.LINES:n.lines+=o*(a/2);break;case t.LINE_STRIP:n.lines+=o*(a-1);break;case t.LINE_LOOP:n.lines+=o*a;break;case t.POINTS:n.points+=o*a;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",s);break}}function r(){n.calls=0,n.triangles=0,n.points=0,n.lines=0}return{memory:e,render:n,programs:null,autoReset:!0,reset:r,update:i}}function yge(t,e){return t[0]-e[0]}function bge(t,e){return Math.abs(e[1])-Math.abs(t[1])}function _ge(t,e,n){const i={},r=new Float32Array(8),a=new WeakMap,s=new Un,o=[];for(let c=0;c<8;c++)o[c]=[c,0];function l(c,d,f){const p=c.morphTargetInfluences;if(e.isWebGL2===!0){const y=d.morphAttributes.position||d.morphAttributes.normal||d.morphAttributes.color,b=y!==void 0?y.length:0;let x=a.get(d);if(x===void 0||x.count!==b){let $=function(){W.dispose(),a.delete(d),d.removeEventListener("dispose",$)};var m=$;x!==void 0&&x.texture.dispose();const M=d.morphAttributes.position!==void 0,A=d.morphAttributes.normal!==void 0,T=d.morphAttributes.color!==void 0,D=d.morphAttributes.position||[],C=d.morphAttributes.normal||[],U=d.morphAttributes.color||[];let P=0;M===!0&&(P=1),A===!0&&(P=2),T===!0&&(P=3);let k=d.attributes.position.count*P,B=1;k>e.maxTextureSize&&(B=Math.ceil(k/e.maxTextureSize),k=e.maxTextureSize);const I=new Float32Array(k*B*4*b),W=new l$(I,k,B,b);W.type=zl,W.needsUpdate=!0;const O=P*4;for(let q=0;q<b;q++){const G=D[q],Y=C[q],Q=U[q],se=k*B*4*q;for(let H=0;H<G.count;H++){const X=H*O;M===!0&&(s.fromBufferAttribute(G,H),I[se+X+0]=s.x,I[se+X+1]=s.y,I[se+X+2]=s.z,I[se+X+3]=0),A===!0&&(s.fromBufferAttribute(Y,H),I[se+X+4]=s.x,I[se+X+5]=s.y,I[se+X+6]=s.z,I[se+X+7]=0),T===!0&&(s.fromBufferAttribute(Q,H),I[se+X+8]=s.x,I[se+X+9]=s.y,I[se+X+10]=s.z,I[se+X+11]=Q.itemSize===4?s.w:1)}}x={count:b,texture:W,size:new Ht(k,B)},a.set(d,x),d.addEventListener("dispose",$)}let v=0;for(let M=0;M<p.length;M++)v+=p[M];const w=d.morphTargetsRelative?1:1-v;f.getUniforms().setValue(t,"morphTargetBaseInfluence",w),f.getUniforms().setValue(t,"morphTargetInfluences",p),f.getUniforms().setValue(t,"morphTargetsTexture",x.texture,n),f.getUniforms().setValue(t,"morphTargetsTextureSize",x.size)}else{const y=p===void 0?0:p.length;let b=i[d.id];if(b===void 0||b.length!==y){b=[];for(let A=0;A<y;A++)b[A]=[A,0];i[d.id]=b}for(let A=0;A<y;A++){const T=b[A];T[0]=A,T[1]=p[A]}b.sort(bge);for(let A=0;A<8;A++)A<y&&b[A][1]?(o[A][0]=b[A][0],o[A][1]=b[A][1]):(o[A][0]=Number.MAX_SAFE_INTEGER,o[A][1]=0);o.sort(yge);const x=d.morphAttributes.position,v=d.morphAttributes.normal;let w=0;for(let A=0;A<8;A++){const T=o[A],D=T[0],C=T[1];D!==Number.MAX_SAFE_INTEGER&&C?(x&&d.getAttribute("morphTarget"+A)!==x[D]&&d.setAttribute("morphTarget"+A,x[D]),v&&d.getAttribute("morphNormal"+A)!==v[D]&&d.setAttribute("morphNormal"+A,v[D]),r[A]=C,w+=C):(x&&d.hasAttribute("morphTarget"+A)===!0&&d.deleteAttribute("morphTarget"+A),v&&d.hasAttribute("morphNormal"+A)===!0&&d.deleteAttribute("morphNormal"+A),r[A]=0)}const M=d.morphTargetsRelative?1:1-w;f.getUniforms().setValue(t,"morphTargetBaseInfluence",M),f.getUniforms().setValue(t,"morphTargetInfluences",r)}}return{update:l}}function Sge(t,e,n,i){let r=new WeakMap;function a(l){const c=i.render.frame,d=l.geometry,f=e.get(l,d);if(r.get(f)!==c&&(e.update(f),r.set(f,c)),l.isInstancedMesh&&(l.hasEventListener("dispose",o)===!1&&l.addEventListener("dispose",o),r.get(l)!==c&&(n.update(l.instanceMatrix,t.ARRAY_BUFFER),l.instanceColor!==null&&n.update(l.instanceColor,t.ARRAY_BUFFER),r.set(l,c))),l.isSkinnedMesh){const p=l.skeleton;r.get(p)!==c&&(p.update(),r.set(p,c))}return f}function s(){r=new WeakMap}function o(l){const c=l.target;c.removeEventListener("dispose",o),n.remove(c.instanceMatrix),c.instanceColor!==null&&n.remove(c.instanceColor)}return{update:a,dispose:s}}class x$ extends Na{constructor(e,n,i,r,a,s,o,l,c,d){if(d=d!==void 0?d:jd,d!==jd&&d!==Mp)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");i===void 0&&d===jd&&(i=hu),i===void 0&&d===Mp&&(i=Bd),super(null,r,a,s,o,l,d,i,c),this.isDepthTexture=!0,this.image={width:e,height:n},this.magFilter=o!==void 0?o:Ir,this.minFilter=l!==void 0?l:Ir,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(e){return super.copy(e),this.compareFunction=e.compareFunction,this}toJSON(e){const n=super.toJSON(e);return this.compareFunction!==null&&(n.compareFunction=this.compareFunction),n}}const y$=new Na,b$=new x$(1,1);b$.compareFunction=i$;const _$=new l$,S$=new she,w$=new g$,E4=[],A4=[],T4=new Float32Array(16),C4=new Float32Array(9),R4=new Float32Array(4);function Jp(t,e,n){const i=t[0];if(i<=0||i>0)return t;const r=e*n;let a=E4[r];if(a===void 0&&(a=new Float32Array(r),E4[r]=a),e!==0){i.toArray(a,0);for(let s=1,o=0;s!==e;++s)o+=n,t[s].toArray(a,o)}return a}function nr(t,e){if(t.length!==e.length)return!1;for(let n=0,i=t.length;n<i;n++)if(t[n]!==e[n])return!1;return!0}function ir(t,e){for(let n=0,i=e.length;n<i;n++)t[n]=e[n]}function cS(t,e){let n=A4[e];n===void 0&&(n=new Int32Array(e),A4[e]=n);for(let i=0;i!==e;++i)n[i]=t.allocateTextureUnit();return n}function wge(t,e){const n=this.cache;n[0]!==e&&(t.uniform1f(this.addr,e),n[0]=e)}function Mge(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y)&&(t.uniform2f(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(nr(n,e))return;t.uniform2fv(this.addr,e),ir(n,e)}}function Ege(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z)&&(t.uniform3f(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else if(e.r!==void 0)(n[0]!==e.r||n[1]!==e.g||n[2]!==e.b)&&(t.uniform3f(this.addr,e.r,e.g,e.b),n[0]=e.r,n[1]=e.g,n[2]=e.b);else{if(nr(n,e))return;t.uniform3fv(this.addr,e),ir(n,e)}}function Age(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w)&&(t.uniform4f(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(nr(n,e))return;t.uniform4fv(this.addr,e),ir(n,e)}}function Tge(t,e){const n=this.cache,i=e.elements;if(i===void 0){if(nr(n,e))return;t.uniformMatrix2fv(this.addr,!1,e),ir(n,e)}else{if(nr(n,i))return;R4.set(i),t.uniformMatrix2fv(this.addr,!1,R4),ir(n,i)}}function Cge(t,e){const n=this.cache,i=e.elements;if(i===void 0){if(nr(n,e))return;t.uniformMatrix3fv(this.addr,!1,e),ir(n,e)}else{if(nr(n,i))return;C4.set(i),t.uniformMatrix3fv(this.addr,!1,C4),ir(n,i)}}function Rge(t,e){const n=this.cache,i=e.elements;if(i===void 0){if(nr(n,e))return;t.uniformMatrix4fv(this.addr,!1,e),ir(n,e)}else{if(nr(n,i))return;T4.set(i),t.uniformMatrix4fv(this.addr,!1,T4),ir(n,i)}}function Pge(t,e){const n=this.cache;n[0]!==e&&(t.uniform1i(this.addr,e),n[0]=e)}function Dge(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y)&&(t.uniform2i(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(nr(n,e))return;t.uniform2iv(this.addr,e),ir(n,e)}}function Nge(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z)&&(t.uniform3i(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(nr(n,e))return;t.uniform3iv(this.addr,e),ir(n,e)}}function Oge(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w)&&(t.uniform4i(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(nr(n,e))return;t.uniform4iv(this.addr,e),ir(n,e)}}function Lge(t,e){const n=this.cache;n[0]!==e&&(t.uniform1ui(this.addr,e),n[0]=e)}function kge(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y)&&(t.uniform2ui(this.addr,e.x,e.y),n[0]=e.x,n[1]=e.y);else{if(nr(n,e))return;t.uniform2uiv(this.addr,e),ir(n,e)}}function Ige(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z)&&(t.uniform3ui(this.addr,e.x,e.y,e.z),n[0]=e.x,n[1]=e.y,n[2]=e.z);else{if(nr(n,e))return;t.uniform3uiv(this.addr,e),ir(n,e)}}function Uge(t,e){const n=this.cache;if(e.x!==void 0)(n[0]!==e.x||n[1]!==e.y||n[2]!==e.z||n[3]!==e.w)&&(t.uniform4ui(this.addr,e.x,e.y,e.z,e.w),n[0]=e.x,n[1]=e.y,n[2]=e.z,n[3]=e.w);else{if(nr(n,e))return;t.uniform4uiv(this.addr,e),ir(n,e)}}function Fge(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r);const a=this.type===t.SAMPLER_2D_SHADOW?b$:y$;n.setTexture2D(e||a,r)}function zge(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture3D(e||S$,r)}function Bge(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTextureCube(e||w$,r)}function jge(t,e,n){const i=this.cache,r=n.allocateTextureUnit();i[0]!==r&&(t.uniform1i(this.addr,r),i[0]=r),n.setTexture2DArray(e||_$,r)}function Hge(t){switch(t){case 5126:return wge;case 35664:return Mge;case 35665:return Ege;case 35666:return Age;case 35674:return Tge;case 35675:return Cge;case 35676:return Rge;case 5124:case 35670:return Pge;case 35667:case 35671:return Dge;case 35668:case 35672:return Nge;case 35669:case 35673:return Oge;case 5125:return Lge;case 36294:return kge;case 36295:return Ige;case 36296:return Uge;case 35678:case 36198:case 36298:case 36306:case 35682:return Fge;case 35679:case 36299:case 36307:return zge;case 35680:case 36300:case 36308:case 36293:return Bge;case 36289:case 36303:case 36311:case 36292:return jge}}function Vge(t,e){t.uniform1fv(this.addr,e)}function Gge(t,e){const n=Jp(e,this.size,2);t.uniform2fv(this.addr,n)}function $ge(t,e){const n=Jp(e,this.size,3);t.uniform3fv(this.addr,n)}function Wge(t,e){const n=Jp(e,this.size,4);t.uniform4fv(this.addr,n)}function qge(t,e){const n=Jp(e,this.size,4);t.uniformMatrix2fv(this.addr,!1,n)}function Xge(t,e){const n=Jp(e,this.size,9);t.uniformMatrix3fv(this.addr,!1,n)}function Yge(t,e){const n=Jp(e,this.size,16);t.uniformMatrix4fv(this.addr,!1,n)}function Kge(t,e){t.uniform1iv(this.addr,e)}function Zge(t,e){t.uniform2iv(this.addr,e)}function Jge(t,e){t.uniform3iv(this.addr,e)}function Qge(t,e){t.uniform4iv(this.addr,e)}function e0e(t,e){t.uniform1uiv(this.addr,e)}function t0e(t,e){t.uniform2uiv(this.addr,e)}function n0e(t,e){t.uniform3uiv(this.addr,e)}function i0e(t,e){t.uniform4uiv(this.addr,e)}function r0e(t,e,n){const i=this.cache,r=e.length,a=cS(n,r);nr(i,a)||(t.uniform1iv(this.addr,a),ir(i,a));for(let s=0;s!==r;++s)n.setTexture2D(e[s]||y$,a[s])}function a0e(t,e,n){const i=this.cache,r=e.length,a=cS(n,r);nr(i,a)||(t.uniform1iv(this.addr,a),ir(i,a));for(let s=0;s!==r;++s)n.setTexture3D(e[s]||S$,a[s])}function s0e(t,e,n){const i=this.cache,r=e.length,a=cS(n,r);nr(i,a)||(t.uniform1iv(this.addr,a),ir(i,a));for(let s=0;s!==r;++s)n.setTextureCube(e[s]||w$,a[s])}function o0e(t,e,n){const i=this.cache,r=e.length,a=cS(n,r);nr(i,a)||(t.uniform1iv(this.addr,a),ir(i,a));for(let s=0;s!==r;++s)n.setTexture2DArray(e[s]||_$,a[s])}function l0e(t){switch(t){case 5126:return Vge;case 35664:return Gge;case 35665:return $ge;case 35666:return Wge;case 35674:return qge;case 35675:return Xge;case 35676:return Yge;case 5124:case 35670:return Kge;case 35667:case 35671:return Zge;case 35668:case 35672:return Jge;case 35669:case 35673:return Qge;case 5125:return e0e;case 36294:return t0e;case 36295:return n0e;case 36296:return i0e;case 35678:case 36198:case 36298:case 36306:case 35682:return r0e;case 35679:case 36299:case 36307:return a0e;case 35680:case 36300:case 36308:case 36293:return s0e;case 36289:case 36303:case 36311:case 36292:return o0e}}class c0e{constructor(e,n,i){this.id=e,this.addr=i,this.cache=[],this.type=n.type,this.setValue=Hge(n.type)}}class u0e{constructor(e,n,i){this.id=e,this.addr=i,this.cache=[],this.type=n.type,this.size=n.size,this.setValue=l0e(n.type)}}class d0e{constructor(e){this.id=e,this.seq=[],this.map={}}setValue(e,n,i){const r=this.seq;for(let a=0,s=r.length;a!==s;++a){const o=r[a];o.setValue(e,n[o.id],i)}}}const zA=/(\w+)(\])?(\[|\.)?/g;function P4(t,e){t.seq.push(e),t.map[e.id]=e}function f0e(t,e,n){const i=t.name,r=i.length;for(zA.lastIndex=0;;){const a=zA.exec(i),s=zA.lastIndex;let o=a[1];const l=a[2]==="]",c=a[3];if(l&&(o=o|0),c===void 0||c==="["&&s+2===r){P4(n,c===void 0?new c0e(o,t,e):new u0e(o,t,e));break}else{let f=n.map[o];f===void 0&&(f=new d0e(o),P4(n,f)),n=f}}}class Lb{constructor(e,n){this.seq=[],this.map={};const i=e.getProgramParameter(n,e.ACTIVE_UNIFORMS);for(let r=0;r<i;++r){const a=e.getActiveUniform(n,r),s=e.getUniformLocation(n,a.name);f0e(a,s,this)}}setValue(e,n,i,r){const a=this.map[n];a!==void 0&&a.setValue(e,i,r)}setOptional(e,n,i){const r=n[i];r!==void 0&&this.setValue(e,i,r)}static upload(e,n,i,r){for(let a=0,s=n.length;a!==s;++a){const o=n[a],l=i[o.id];l.needsUpdate!==!1&&o.setValue(e,l.value,r)}}static seqWithValue(e,n){const i=[];for(let r=0,a=e.length;r!==a;++r){const s=e[r];s.id in n&&i.push(s)}return i}}function D4(t,e,n){const i=t.createShader(e);return t.shaderSource(i,n),t.compileShader(i),i}const h0e=37297;let p0e=0;function m0e(t,e){const n=t.split(`
- `),i=[],r=Math.max(e-6,0),a=Math.min(e+6,n.length);for(let s=r;s<a;s++){const o=s+1;i.push(`${o===e?">":" "} ${o}: ${n[s]}`)}return i.join(`
- `)}function g0e(t){const e=kn.getPrimaries(kn.workingColorSpace),n=kn.getPrimaries(t);let i;switch(e===n?i="":e===o_&&n===s_?i="LinearDisplayP3ToLinearSRGB":e===s_&&n===o_&&(i="LinearSRGBToLinearDisplayP3"),t){case Ql:case oS:return[i,"LinearTransferOETF"];case Ur:case WP:return[i,"sRGBTransferOETF"];default:return console.warn("THREE.WebGLProgram: Unsupported color space:",t),[i,"LinearTransferOETF"]}}function N4(t,e,n){const i=t.getShaderParameter(e,t.COMPILE_STATUS),r=t.getShaderInfoLog(e).trim();if(i&&r==="")return"";const a=/ERROR: 0:(\d+)/.exec(r);if(a){const s=parseInt(a[1]);return n.toUpperCase()+`
- `+r+`
- `+m0e(t.getShaderSource(e),s)}else return r}function v0e(t,e){const n=g0e(e);return`vec4 ${t}( vec4 value ) { return ${n[0]}( ${n[1]}( value ) ); }`}function x0e(t,e){let n;switch(e){case vfe:n="Linear";break;case xfe:n="Reinhard";break;case yfe:n="OptimizedCineon";break;case bfe:n="ACESFilmic";break;case _fe:n="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",e),n="Linear"}return"vec3 "+t+"( vec3 color ) { return "+n+"ToneMapping( color ); }"}function y0e(t){return[t.extensionDerivatives||t.envMapCubeUVHeight||t.bumpMap||t.normalMapTangentSpace||t.clearcoatNormalMap||t.flatShading||t.shaderID==="physical"?"#extension GL_OES_standard_derivatives : enable":"",(t.extensionFragDepth||t.logarithmicDepthBuffer)&&t.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",t.extensionDrawBuffers&&t.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(t.extensionShaderTextureLOD||t.envMap||t.transmission)&&t.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(Dg).join(`
- `)}function b0e(t){const e=[];for(const n in t){const i=t[n];i!==!1&&e.push("#define "+n+" "+i)}return e.join(`
- `)}function _0e(t,e){const n={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r<i;r++){const a=t.getActiveAttrib(e,r),s=a.name;let o=1;a.type===t.FLOAT_MAT2&&(o=2),a.type===t.FLOAT_MAT3&&(o=3),a.type===t.FLOAT_MAT4&&(o=4),n[s]={type:a.type,location:t.getAttribLocation(e,s),locationSize:o}}return n}function Dg(t){return t!==""}function O4(t,e){const n=e.numSpotLightShadows+e.numSpotLightMaps-e.numSpotLightShadowsWithMaps;return t.replace(/NUM_DIR_LIGHTS/g,e.numDirLights).replace(/NUM_SPOT_LIGHTS/g,e.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,e.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,n).replace(/NUM_RECT_AREA_LIGHTS/g,e.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,e.numPointLights).replace(/NUM_HEMI_LIGHTS/g,e.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,e.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,e.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,e.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,e.numPointLightShadows)}function L4(t,e){return t.replace(/NUM_CLIPPING_PLANES/g,e.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,e.numClippingPlanes-e.numClipIntersection)}const S0e=/^[ \t]*#include +<([\w\d./]+)>/gm;function wR(t){return t.replace(S0e,M0e)}const w0e=new Map([["encodings_fragment","colorspace_fragment"],["encodings_pars_fragment","colorspace_pars_fragment"],["output_fragment","opaque_fragment"]]);function M0e(t,e){let n=Zt[e];if(n===void 0){const i=w0e.get(e);if(i!==void 0)n=Zt[i],console.warn('THREE.WebGLRenderer: Shader chunk "%s" has been deprecated. Use "%s" instead.',e,i);else throw new Error("Can not resolve #include <"+e+">")}return wR(n)}const E0e=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*<\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function k4(t){return t.replace(E0e,A0e)}function A0e(t,e,n,i){let r="";for(let a=parseInt(e);a<parseInt(n);a++)r+=i.replace(/\[\s*i\s*\]/g,"[ "+a+" ]").replace(/UNROLLED_LOOP_INDEX/g,a);return r}function I4(t){let e="precision "+t.precision+` float;
- precision `+t.precision+" int;";return t.precision==="highp"?e+=`
- #define HIGH_PRECISION`:t.precision==="mediump"?e+=`
- #define MEDIUM_PRECISION`:t.precision==="lowp"&&(e+=`
- #define LOW_PRECISION`),e}function T0e(t){let e="SHADOWMAP_TYPE_BASIC";return t.shadowMapType===WG?e="SHADOWMAP_TYPE_PCF":t.shadowMapType===$de?e="SHADOWMAP_TYPE_PCF_SOFT":t.shadowMapType===Rl&&(e="SHADOWMAP_TYPE_VSM"),e}function C0e(t){let e="ENVMAP_TYPE_CUBE";if(t.envMap)switch(t.envMapMode){case Sp:case wp:e="ENVMAP_TYPE_CUBE";break;case sS:e="ENVMAP_TYPE_CUBE_UV";break}return e}function R0e(t){let e="ENVMAP_MODE_REFLECTION";if(t.envMap)switch(t.envMapMode){case wp:e="ENVMAP_MODE_REFRACTION";break}return e}function P0e(t){let e="ENVMAP_BLENDING_NONE";if(t.envMap)switch(t.combine){case GP:e="ENVMAP_BLENDING_MULTIPLY";break;case mfe:e="ENVMAP_BLENDING_MIX";break;case gfe:e="ENVMAP_BLENDING_ADD";break}return e}function D0e(t){const e=t.envMapCubeUVHeight;if(e===null)return null;const n=Math.log2(e)-2,i=1/e;return{texelWidth:1/(3*Math.max(Math.pow(2,n),112)),texelHeight:i,maxMip:n}}function N0e(t,e,n,i){const r=t.getContext(),a=n.defines;let s=n.vertexShader,o=n.fragmentShader;const l=T0e(n),c=C0e(n),d=R0e(n),f=P0e(n),p=D0e(n),m=n.isWebGL2?"":y0e(n),y=b0e(a),b=r.createProgram();let x,v,w=n.glslVersion?"#version "+n.glslVersion+`
- `:"";n.isRawShaderMaterial?(x=["#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y].filter(Dg).join(`
- `),x.length>0&&(x+=`
- `),v=[m,"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y].filter(Dg).join(`
- `),v.length>0&&(v+=`
- `)):(x=[I4(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y,n.batching?"#define USE_BATCHING":"",n.instancing?"#define USE_INSTANCING":"",n.instancingColor?"#define USE_INSTANCING_COLOR":"",n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+d:"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.displacementMap?"#define USE_DISPLACEMENTMAP":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.mapUv?"#define MAP_UV "+n.mapUv:"",n.alphaMapUv?"#define ALPHAMAP_UV "+n.alphaMapUv:"",n.lightMapUv?"#define LIGHTMAP_UV "+n.lightMapUv:"",n.aoMapUv?"#define AOMAP_UV "+n.aoMapUv:"",n.emissiveMapUv?"#define EMISSIVEMAP_UV "+n.emissiveMapUv:"",n.bumpMapUv?"#define BUMPMAP_UV "+n.bumpMapUv:"",n.normalMapUv?"#define NORMALMAP_UV "+n.normalMapUv:"",n.displacementMapUv?"#define DISPLACEMENTMAP_UV "+n.displacementMapUv:"",n.metalnessMapUv?"#define METALNESSMAP_UV "+n.metalnessMapUv:"",n.roughnessMapUv?"#define ROUGHNESSMAP_UV "+n.roughnessMapUv:"",n.anisotropyMapUv?"#define ANISOTROPYMAP_UV "+n.anisotropyMapUv:"",n.clearcoatMapUv?"#define CLEARCOATMAP_UV "+n.clearcoatMapUv:"",n.clearcoatNormalMapUv?"#define CLEARCOAT_NORMALMAP_UV "+n.clearcoatNormalMapUv:"",n.clearcoatRoughnessMapUv?"#define CLEARCOAT_ROUGHNESSMAP_UV "+n.clearcoatRoughnessMapUv:"",n.iridescenceMapUv?"#define IRIDESCENCEMAP_UV "+n.iridescenceMapUv:"",n.iridescenceThicknessMapUv?"#define IRIDESCENCE_THICKNESSMAP_UV "+n.iridescenceThicknessMapUv:"",n.sheenColorMapUv?"#define SHEEN_COLORMAP_UV "+n.sheenColorMapUv:"",n.sheenRoughnessMapUv?"#define SHEEN_ROUGHNESSMAP_UV "+n.sheenRoughnessMapUv:"",n.specularMapUv?"#define SPECULARMAP_UV "+n.specularMapUv:"",n.specularColorMapUv?"#define SPECULAR_COLORMAP_UV "+n.specularColorMapUv:"",n.specularIntensityMapUv?"#define SPECULAR_INTENSITYMAP_UV "+n.specularIntensityMapUv:"",n.transmissionMapUv?"#define TRANSMISSIONMAP_UV "+n.transmissionMapUv:"",n.thicknessMapUv?"#define THICKNESSMAP_UV "+n.thicknessMapUv:"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.flatShading?"#define FLAT_SHADED":"",n.skinning?"#define USE_SKINNING":"",n.morphTargets?"#define USE_MORPHTARGETS":"",n.morphNormals&&n.flatShading===!1?"#define USE_MORPHNORMALS":"",n.morphColors&&n.isWebGL2?"#define USE_MORPHCOLORS":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+n.morphTextureStride:"",n.morphTargetsCount>0&&n.isWebGL2?"#define MORPHTARGETS_COUNT "+n.morphTargetsCount:"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.sizeAttenuation?"#define USE_SIZEATTENUATION":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 modelMatrix;","uniform mat4 modelViewMatrix;","uniform mat4 projectionMatrix;","uniform mat4 viewMatrix;","uniform mat3 normalMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;","#ifdef USE_INSTANCING"," attribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR"," attribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_UV1"," attribute vec2 uv1;","#endif","#ifdef USE_UV2"," attribute vec2 uv2;","#endif","#ifdef USE_UV3"," attribute vec2 uv3;","#endif","#ifdef USE_TANGENT"," attribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )"," attribute vec4 color;","#elif defined( USE_COLOR )"," attribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )"," attribute vec3 morphTarget0;"," attribute vec3 morphTarget1;"," attribute vec3 morphTarget2;"," attribute vec3 morphTarget3;"," #ifdef USE_MORPHNORMALS"," attribute vec3 morphNormal0;"," attribute vec3 morphNormal1;"," attribute vec3 morphNormal2;"," attribute vec3 morphNormal3;"," #else"," attribute vec3 morphTarget4;"," attribute vec3 morphTarget5;"," attribute vec3 morphTarget6;"," attribute vec3 morphTarget7;"," #endif","#endif","#ifdef USE_SKINNING"," attribute vec4 skinIndex;"," attribute vec4 skinWeight;","#endif",`
- `].filter(Dg).join(`
- `),v=[m,I4(n),"#define SHADER_TYPE "+n.shaderType,"#define SHADER_NAME "+n.shaderName,y,n.useFog&&n.fog?"#define USE_FOG":"",n.useFog&&n.fogExp2?"#define FOG_EXP2":"",n.map?"#define USE_MAP":"",n.matcap?"#define USE_MATCAP":"",n.envMap?"#define USE_ENVMAP":"",n.envMap?"#define "+c:"",n.envMap?"#define "+d:"",n.envMap?"#define "+f:"",p?"#define CUBEUV_TEXEL_WIDTH "+p.texelWidth:"",p?"#define CUBEUV_TEXEL_HEIGHT "+p.texelHeight:"",p?"#define CUBEUV_MAX_MIP "+p.maxMip+".0":"",n.lightMap?"#define USE_LIGHTMAP":"",n.aoMap?"#define USE_AOMAP":"",n.bumpMap?"#define USE_BUMPMAP":"",n.normalMap?"#define USE_NORMALMAP":"",n.normalMapObjectSpace?"#define USE_NORMALMAP_OBJECTSPACE":"",n.normalMapTangentSpace?"#define USE_NORMALMAP_TANGENTSPACE":"",n.emissiveMap?"#define USE_EMISSIVEMAP":"",n.anisotropy?"#define USE_ANISOTROPY":"",n.anisotropyMap?"#define USE_ANISOTROPYMAP":"",n.clearcoat?"#define USE_CLEARCOAT":"",n.clearcoatMap?"#define USE_CLEARCOATMAP":"",n.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",n.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",n.iridescence?"#define USE_IRIDESCENCE":"",n.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",n.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",n.specularMap?"#define USE_SPECULARMAP":"",n.specularColorMap?"#define USE_SPECULAR_COLORMAP":"",n.specularIntensityMap?"#define USE_SPECULAR_INTENSITYMAP":"",n.roughnessMap?"#define USE_ROUGHNESSMAP":"",n.metalnessMap?"#define USE_METALNESSMAP":"",n.alphaMap?"#define USE_ALPHAMAP":"",n.alphaTest?"#define USE_ALPHATEST":"",n.alphaHash?"#define USE_ALPHAHASH":"",n.sheen?"#define USE_SHEEN":"",n.sheenColorMap?"#define USE_SHEEN_COLORMAP":"",n.sheenRoughnessMap?"#define USE_SHEEN_ROUGHNESSMAP":"",n.transmission?"#define USE_TRANSMISSION":"",n.transmissionMap?"#define USE_TRANSMISSIONMAP":"",n.thicknessMap?"#define USE_THICKNESSMAP":"",n.vertexTangents&&n.flatShading===!1?"#define USE_TANGENT":"",n.vertexColors||n.instancingColor?"#define USE_COLOR":"",n.vertexAlphas?"#define USE_COLOR_ALPHA":"",n.vertexUv1s?"#define USE_UV1":"",n.vertexUv2s?"#define USE_UV2":"",n.vertexUv3s?"#define USE_UV3":"",n.pointsUvs?"#define USE_POINTS_UV":"",n.gradientMap?"#define USE_GRADIENTMAP":"",n.flatShading?"#define FLAT_SHADED":"",n.doubleSided?"#define DOUBLE_SIDED":"",n.flipSided?"#define FLIP_SIDED":"",n.shadowMapEnabled?"#define USE_SHADOWMAP":"",n.shadowMapEnabled?"#define "+l:"",n.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",n.numLightProbes>0?"#define USE_LIGHT_PROBES":"",n.useLegacyLights?"#define LEGACY_LIGHTS":"",n.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",n.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",n.logarithmicDepthBuffer&&n.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",n.toneMapping!==_u?"#define TONE_MAPPING":"",n.toneMapping!==_u?Zt.tonemapping_pars_fragment:"",n.toneMapping!==_u?x0e("toneMapping",n.toneMapping):"",n.dithering?"#define DITHERING":"",n.opaque?"#define OPAQUE":"",Zt.colorspace_pars_fragment,v0e("linearToOutputTexel",n.outputColorSpace),n.useDepthPacking?"#define DEPTH_PACKING "+n.depthPacking:"",`
- `].filter(Dg).join(`
- `)),s=wR(s),s=O4(s,n),s=L4(s,n),o=wR(o),o=O4(o,n),o=L4(o,n),s=k4(s),o=k4(o),n.isWebGL2&&n.isRawShaderMaterial!==!0&&(w=`#version 300 es
- `,x=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join(`
- `)+`
- `+x,v=["precision mediump sampler2DArray;","#define varying in",n.glslVersion===e4?"":"layout(location = 0) out highp vec4 pc_fragColor;",n.glslVersion===e4?"":"#define gl_FragColor pc_fragColor","#define gl_FragDepthEXT gl_FragDepth","#define texture2D texture","#define textureCube texture","#define texture2DProj textureProj","#define texture2DLodEXT textureLod","#define texture2DProjLodEXT textureProjLod","#define textureCubeLodEXT textureLod","#define texture2DGradEXT textureGrad","#define texture2DProjGradEXT textureProjGrad","#define textureCubeGradEXT textureGrad"].join(`
- `)+`
- `+v);const M=w+x+s,A=w+v+o,T=D4(r,r.VERTEX_SHADER,M),D=D4(r,r.FRAGMENT_SHADER,A);r.attachShader(b,T),r.attachShader(b,D),n.index0AttributeName!==void 0?r.bindAttribLocation(b,0,n.index0AttributeName):n.morphTargets===!0&&r.bindAttribLocation(b,0,"position"),r.linkProgram(b);function C(B){if(t.debug.checkShaderErrors){const I=r.getProgramInfoLog(b).trim(),W=r.getShaderInfoLog(T).trim(),O=r.getShaderInfoLog(D).trim();let $=!0,q=!0;if(r.getProgramParameter(b,r.LINK_STATUS)===!1)if($=!1,typeof t.debug.onShaderError=="function")t.debug.onShaderError(r,b,T,D);else{const G=N4(r,T,"vertex"),Y=N4(r,D,"fragment");console.error("THREE.WebGLProgram: Shader Error "+r.getError()+" - VALIDATE_STATUS "+r.getProgramParameter(b,r.VALIDATE_STATUS)+`
- Program Info Log: `+I+`
- `+G+`
- `+Y)}else I!==""?console.warn("THREE.WebGLProgram: Program Info Log:",I):(W===""||O==="")&&(q=!1);q&&(B.diagnostics={runnable:$,programLog:I,vertexShader:{log:W,prefix:x},fragmentShader:{log:O,prefix:v}})}r.deleteShader(T),r.deleteShader(D),U=new Lb(r,b),P=_0e(r,b)}let U;this.getUniforms=function(){return U===void 0&&C(this),U};let P;this.getAttributes=function(){return P===void 0&&C(this),P};let k=n.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return k===!1&&(k=r.getProgramParameter(b,h0e)),k},this.destroy=function(){i.releaseStatesOfProgram(this),r.deleteProgram(b),this.program=void 0},this.type=n.shaderType,this.name=n.shaderName,this.id=p0e++,this.cacheKey=e,this.usedTimes=1,this.program=b,this.vertexShader=T,this.fragmentShader=D,this}let O0e=0;class L0e{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const n=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(n),a=this._getShaderStage(i),s=this._getShaderCacheForMaterial(e);return s.has(r)===!1&&(s.add(r),r.usedTimes++),s.has(a)===!1&&(s.add(a),a.usedTimes++),this}remove(e){const n=this.materialCache.get(e);for(const i of n)i.usedTimes--,i.usedTimes===0&&this.shaderCache.delete(i.code);return this.materialCache.delete(e),this}getVertexShaderID(e){return this._getShaderStage(e.vertexShader).id}getFragmentShaderID(e){return this._getShaderStage(e.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(e){const n=this.materialCache;let i=n.get(e);return i===void 0&&(i=new Set,n.set(e,i)),i}_getShaderStage(e){const n=this.shaderCache;let i=n.get(e);return i===void 0&&(i=new k0e(e),n.set(e,i)),i}}class k0e{constructor(e){this.id=O0e++,this.code=e,this.usedTimes=0}}function I0e(t,e,n,i,r,a,s){const o=new c$,l=new L0e,c=[],d=r.isWebGL2,f=r.logarithmicDepthBuffer,p=r.vertexTextures;let m=r.precision;const y={MeshDepthMaterial:"depth",MeshDistanceMaterial:"distanceRGBA",MeshNormalMaterial:"normal",MeshBasicMaterial:"basic",MeshLambertMaterial:"lambert",MeshPhongMaterial:"phong",MeshToonMaterial:"toon",MeshStandardMaterial:"physical",MeshPhysicalMaterial:"physical",MeshMatcapMaterial:"matcap",LineBasicMaterial:"basic",LineDashedMaterial:"dashed",PointsMaterial:"points",ShadowMaterial:"shadow",SpriteMaterial:"sprite"};function b(P){return P===0?"uv":`uv${P}`}function x(P,k,B,I,W){const O=I.fog,$=W.geometry,q=P.isMeshStandardMaterial?I.environment:null,G=(P.isMeshStandardMaterial?n:e).get(P.envMap||q),Y=G&&G.mapping===sS?G.image.height:null,Q=y[P.type];P.precision!==null&&(m=r.getMaxPrecision(P.precision),m!==P.precision&&console.warn("THREE.WebGLProgram.getParameters:",P.precision,"not supported, using",m,"instead."));const se=$.morphAttributes.position||$.morphAttributes.normal||$.morphAttributes.color,H=se!==void 0?se.length:0;let X=0;$.morphAttributes.position!==void 0&&(X=1),$.morphAttributes.normal!==void 0&&(X=2),$.morphAttributes.color!==void 0&&(X=3);let re,ce,ye,me;if(Q){const en=Ta[Q];re=en.vertexShader,ce=en.fragmentShader}else re=P.vertexShader,ce=P.fragmentShader,l.update(P),ye=l.getVertexShaderID(P),me=l.getFragmentShaderID(P);const be=t.getRenderTarget(),Ne=W.isInstancedMesh===!0,he=W.isBatchedMesh===!0,Ae=!!P.map,Be=!!P.matcap,le=!!G,ct=!!P.aoMap,z=!!P.lightMap,V=!!P.bumpMap,ne=!!P.normalMap,J=!!P.displacementMap,ee=!!P.emissiveMap,ae=!!P.metalnessMap,ie=!!P.roughnessMap,we=P.anisotropy>0,ve=P.clearcoat>0,F=P.iridescence>0,L=P.sheen>0,K=P.transmission>0,pe=we&&!!P.anisotropyMap,xe=ve&&!!P.clearcoatMap,fe=ve&&!!P.clearcoatNormalMap,Ke=ve&&!!P.clearcoatRoughnessMap,ke=F&&!!P.iridescenceMap,$e=F&&!!P.iridescenceThicknessMap,rt=L&&!!P.sheenColorMap,Ue=L&&!!P.sheenRoughnessMap,De=!!P.specularMap,ut=!!P.specularColorMap,et=!!P.specularIntensityMap,Qe=K&&!!P.transmissionMap,st=K&&!!P.thicknessMap,ue=!!P.gradientMap,tt=!!P.alphaMap,de=P.alphaTest>0,Le=!!P.alphaHash,Ee=!!P.extensions,ge=!!$.attributes.uv1,je=!!$.attributes.uv2,at=!!$.attributes.uv3;let vt=_u;return P.toneMapped&&(be===null||be.isXRRenderTarget===!0)&&(vt=t.toneMapping),{isWebGL2:d,shaderID:Q,shaderType:P.type,shaderName:P.name,vertexShader:re,fragmentShader:ce,defines:P.defines,customVertexShaderID:ye,customFragmentShaderID:me,isRawShaderMaterial:P.isRawShaderMaterial===!0,glslVersion:P.glslVersion,precision:m,batching:he,instancing:Ne,instancingColor:Ne&&W.instanceColor!==null,supportsVertexTextures:p,outputColorSpace:be===null?t.outputColorSpace:be.isXRRenderTarget===!0?be.texture.colorSpace:Ql,map:Ae,matcap:Be,envMap:le,envMapMode:le&&G.mapping,envMapCubeUVHeight:Y,aoMap:ct,lightMap:z,bumpMap:V,normalMap:ne,displacementMap:p&&J,emissiveMap:ee,normalMapObjectSpace:ne&&P.normalMapType===Ofe,normalMapTangentSpace:ne&&P.normalMapType===n$,metalnessMap:ae,roughnessMap:ie,anisotropy:we,anisotropyMap:pe,clearcoat:ve,clearcoatMap:xe,clearcoatNormalMap:fe,clearcoatRoughnessMap:Ke,iridescence:F,iridescenceMap:ke,iridescenceThicknessMap:$e,sheen:L,sheenColorMap:rt,sheenRoughnessMap:Ue,specularMap:De,specularColorMap:ut,specularIntensityMap:et,transmission:K,transmissionMap:Qe,thicknessMap:st,gradientMap:ue,opaque:P.transparent===!1&&P.blending===op,alphaMap:tt,alphaTest:de,alphaHash:Le,combine:P.combine,mapUv:Ae&&b(P.map.channel),aoMapUv:ct&&b(P.aoMap.channel),lightMapUv:z&&b(P.lightMap.channel),bumpMapUv:V&&b(P.bumpMap.channel),normalMapUv:ne&&b(P.normalMap.channel),displacementMapUv:J&&b(P.displacementMap.channel),emissiveMapUv:ee&&b(P.emissiveMap.channel),metalnessMapUv:ae&&b(P.metalnessMap.channel),roughnessMapUv:ie&&b(P.roughnessMap.channel),anisotropyMapUv:pe&&b(P.anisotropyMap.channel),clearcoatMapUv:xe&&b(P.clearcoatMap.channel),clearcoatNormalMapUv:fe&&b(P.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Ke&&b(P.clearcoatRoughnessMap.channel),iridescenceMapUv:ke&&b(P.iridescenceMap.channel),iridescenceThicknessMapUv:$e&&b(P.iridescenceThicknessMap.channel),sheenColorMapUv:rt&&b(P.sheenColorMap.channel),sheenRoughnessMapUv:Ue&&b(P.sheenRoughnessMap.channel),specularMapUv:De&&b(P.specularMap.channel),specularColorMapUv:ut&&b(P.specularColorMap.channel),specularIntensityMapUv:et&&b(P.specularIntensityMap.channel),transmissionMapUv:Qe&&b(P.transmissionMap.channel),thicknessMapUv:st&&b(P.thicknessMap.channel),alphaMapUv:tt&&b(P.alphaMap.channel),vertexTangents:!!$.attributes.tangent&&(ne||we),vertexColors:P.vertexColors,vertexAlphas:P.vertexColors===!0&&!!$.attributes.color&&$.attributes.color.itemSize===4,vertexUv1s:ge,vertexUv2s:je,vertexUv3s:at,pointsUvs:W.isPoints===!0&&!!$.attributes.uv&&(Ae||tt),fog:!!O,useFog:P.fog===!0,fogExp2:O&&O.isFogExp2,flatShading:P.flatShading===!0,sizeAttenuation:P.sizeAttenuation===!0,logarithmicDepthBuffer:f,skinning:W.isSkinnedMesh===!0,morphTargets:$.morphAttributes.position!==void 0,morphNormals:$.morphAttributes.normal!==void 0,morphColors:$.morphAttributes.color!==void 0,morphTargetsCount:H,morphTextureStride:X,numDirLights:k.directional.length,numPointLights:k.point.length,numSpotLights:k.spot.length,numSpotLightMaps:k.spotLightMap.length,numRectAreaLights:k.rectArea.length,numHemiLights:k.hemi.length,numDirLightShadows:k.directionalShadowMap.length,numPointLightShadows:k.pointShadowMap.length,numSpotLightShadows:k.spotShadowMap.length,numSpotLightShadowsWithMaps:k.numSpotLightShadowsWithMaps,numLightProbes:k.numLightProbes,numClippingPlanes:s.numPlanes,numClipIntersection:s.numIntersection,dithering:P.dithering,shadowMapEnabled:t.shadowMap.enabled&&B.length>0,shadowMapType:t.shadowMap.type,toneMapping:vt,useLegacyLights:t._useLegacyLights,decodeVideoTexture:Ae&&P.map.isVideoTexture===!0&&kn.getTransfer(P.map.colorSpace)===Yn,premultipliedAlpha:P.premultipliedAlpha,doubleSided:P.side===Ol,flipSided:P.side===Da,useDepthPacking:P.depthPacking>=0,depthPacking:P.depthPacking||0,index0AttributeName:P.index0AttributeName,extensionDerivatives:Ee&&P.extensions.derivatives===!0,extensionFragDepth:Ee&&P.extensions.fragDepth===!0,extensionDrawBuffers:Ee&&P.extensions.drawBuffers===!0,extensionShaderTextureLOD:Ee&&P.extensions.shaderTextureLOD===!0,rendererExtensionFragDepth:d||i.has("EXT_frag_depth"),rendererExtensionDrawBuffers:d||i.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:d||i.has("EXT_shader_texture_lod"),rendererExtensionParallelShaderCompile:i.has("KHR_parallel_shader_compile"),customProgramCacheKey:P.customProgramCacheKey()}}function v(P){const k=[];if(P.shaderID?k.push(P.shaderID):(k.push(P.customVertexShaderID),k.push(P.customFragmentShaderID)),P.defines!==void 0)for(const B in P.defines)k.push(B),k.push(P.defines[B]);return P.isRawShaderMaterial===!1&&(w(k,P),M(k,P),k.push(t.outputColorSpace)),k.push(P.customProgramCacheKey),k.join()}function w(P,k){P.push(k.precision),P.push(k.outputColorSpace),P.push(k.envMapMode),P.push(k.envMapCubeUVHeight),P.push(k.mapUv),P.push(k.alphaMapUv),P.push(k.lightMapUv),P.push(k.aoMapUv),P.push(k.bumpMapUv),P.push(k.normalMapUv),P.push(k.displacementMapUv),P.push(k.emissiveMapUv),P.push(k.metalnessMapUv),P.push(k.roughnessMapUv),P.push(k.anisotropyMapUv),P.push(k.clearcoatMapUv),P.push(k.clearcoatNormalMapUv),P.push(k.clearcoatRoughnessMapUv),P.push(k.iridescenceMapUv),P.push(k.iridescenceThicknessMapUv),P.push(k.sheenColorMapUv),P.push(k.sheenRoughnessMapUv),P.push(k.specularMapUv),P.push(k.specularColorMapUv),P.push(k.specularIntensityMapUv),P.push(k.transmissionMapUv),P.push(k.thicknessMapUv),P.push(k.combine),P.push(k.fogExp2),P.push(k.sizeAttenuation),P.push(k.morphTargetsCount),P.push(k.morphAttributeCount),P.push(k.numDirLights),P.push(k.numPointLights),P.push(k.numSpotLights),P.push(k.numSpotLightMaps),P.push(k.numHemiLights),P.push(k.numRectAreaLights),P.push(k.numDirLightShadows),P.push(k.numPointLightShadows),P.push(k.numSpotLightShadows),P.push(k.numSpotLightShadowsWithMaps),P.push(k.numLightProbes),P.push(k.shadowMapType),P.push(k.toneMapping),P.push(k.numClippingPlanes),P.push(k.numClipIntersection),P.push(k.depthPacking)}function M(P,k){o.disableAll(),k.isWebGL2&&o.enable(0),k.supportsVertexTextures&&o.enable(1),k.instancing&&o.enable(2),k.instancingColor&&o.enable(3),k.matcap&&o.enable(4),k.envMap&&o.enable(5),k.normalMapObjectSpace&&o.enable(6),k.normalMapTangentSpace&&o.enable(7),k.clearcoat&&o.enable(8),k.iridescence&&o.enable(9),k.alphaTest&&o.enable(10),k.vertexColors&&o.enable(11),k.vertexAlphas&&o.enable(12),k.vertexUv1s&&o.enable(13),k.vertexUv2s&&o.enable(14),k.vertexUv3s&&o.enable(15),k.vertexTangents&&o.enable(16),k.anisotropy&&o.enable(17),k.alphaHash&&o.enable(18),k.batching&&o.enable(19),P.push(o.mask),o.disableAll(),k.fog&&o.enable(0),k.useFog&&o.enable(1),k.flatShading&&o.enable(2),k.logarithmicDepthBuffer&&o.enable(3),k.skinning&&o.enable(4),k.morphTargets&&o.enable(5),k.morphNormals&&o.enable(6),k.morphColors&&o.enable(7),k.premultipliedAlpha&&o.enable(8),k.shadowMapEnabled&&o.enable(9),k.useLegacyLights&&o.enable(10),k.doubleSided&&o.enable(11),k.flipSided&&o.enable(12),k.useDepthPacking&&o.enable(13),k.dithering&&o.enable(14),k.transmission&&o.enable(15),k.sheen&&o.enable(16),k.opaque&&o.enable(17),k.pointsUvs&&o.enable(18),k.decodeVideoTexture&&o.enable(19),P.push(o.mask)}function A(P){const k=y[P.type];let B;if(k){const I=Ta[k];B=YP.clone(I.uniforms)}else B=P.uniforms;return B}function T(P,k){let B;for(let I=0,W=c.length;I<W;I++){const O=c[I];if(O.cacheKey===k){B=O,++B.usedTimes;break}}return B===void 0&&(B=new N0e(t,k,P,a),c.push(B)),B}function D(P){if(--P.usedTimes===0){const k=c.indexOf(P);c[k]=c[c.length-1],c.pop(),P.destroy()}}function C(P){l.remove(P)}function U(){l.dispose()}return{getParameters:x,getProgramCacheKey:v,getUniforms:A,acquireProgram:T,releaseProgram:D,releaseShaderCache:C,programs:c,dispose:U}}function U0e(){let t=new WeakMap;function e(a){let s=t.get(a);return s===void 0&&(s={},t.set(a,s)),s}function n(a){t.delete(a)}function i(a,s,o){t.get(a)[s]=o}function r(){t=new WeakMap}return{get:e,remove:n,update:i,dispose:r}}function F0e(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function U4(t,e){return t.groupOrder!==e.groupOrder?t.groupOrder-e.groupOrder:t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function F4(){const t=[];let e=0;const n=[],i=[],r=[];function a(){e=0,n.length=0,i.length=0,r.length=0}function s(f,p,m,y,b,x){let v=t[e];return v===void 0?(v={id:f.id,object:f,geometry:p,material:m,groupOrder:y,renderOrder:f.renderOrder,z:b,group:x},t[e]=v):(v.id=f.id,v.object=f,v.geometry=p,v.material=m,v.groupOrder=y,v.renderOrder=f.renderOrder,v.z=b,v.group=x),e++,v}function o(f,p,m,y,b,x){const v=s(f,p,m,y,b,x);m.transmission>0?i.push(v):m.transparent===!0?r.push(v):n.push(v)}function l(f,p,m,y,b,x){const v=s(f,p,m,y,b,x);m.transmission>0?i.unshift(v):m.transparent===!0?r.unshift(v):n.unshift(v)}function c(f,p){n.length>1&&n.sort(f||F0e),i.length>1&&i.sort(p||U4),r.length>1&&r.sort(p||U4)}function d(){for(let f=e,p=t.length;f<p;f++){const m=t[f];if(m.id===null)break;m.id=null,m.object=null,m.geometry=null,m.material=null,m.group=null}}return{opaque:n,transmissive:i,transparent:r,init:a,push:o,unshift:l,finish:d,sort:c}}function z0e(){let t=new WeakMap;function e(i,r){const a=t.get(i);let s;return a===void 0?(s=new F4,t.set(i,[s])):r>=a.length?(s=new F4,a.push(s)):s=a[r],s}function n(){t=new WeakMap}return{get:e,dispose:n}}function B0e(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={direction:new Ce,color:new Ut};break;case"SpotLight":n={position:new Ce,direction:new Ce,color:new Ut,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":n={position:new Ce,color:new Ut,distance:0,decay:0};break;case"HemisphereLight":n={direction:new Ce,skyColor:new Ut,groundColor:new Ut};break;case"RectAreaLight":n={color:new Ut,position:new Ce,halfWidth:new Ce,halfHeight:new Ce};break}return t[e.id]=n,n}}}function j0e(){const t={};return{get:function(e){if(t[e.id]!==void 0)return t[e.id];let n;switch(e.type){case"DirectionalLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ht};break;case"SpotLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ht};break;case"PointLight":n={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Ht,shadowCameraNear:1,shadowCameraFar:1e3};break}return t[e.id]=n,n}}}let H0e=0;function V0e(t,e){return(e.castShadow?2:0)-(t.castShadow?2:0)+(e.map?1:0)-(t.map?1:0)}function G0e(t,e){const n=new B0e,i=j0e(),r={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let d=0;d<9;d++)r.probe.push(new Ce);const a=new Ce,s=new $n,o=new $n;function l(d,f){let p=0,m=0,y=0;for(let I=0;I<9;I++)r.probe[I].set(0,0,0);let b=0,x=0,v=0,w=0,M=0,A=0,T=0,D=0,C=0,U=0,P=0;d.sort(V0e);const k=f===!0?Math.PI:1;for(let I=0,W=d.length;I<W;I++){const O=d[I],$=O.color,q=O.intensity,G=O.distance,Y=O.shadow&&O.shadow.map?O.shadow.map.texture:null;if(O.isAmbientLight)p+=$.r*q*k,m+=$.g*q*k,y+=$.b*q*k;else if(O.isLightProbe){for(let Q=0;Q<9;Q++)r.probe[Q].addScaledVector(O.sh.coefficients[Q],q);P++}else if(O.isDirectionalLight){const Q=n.get(O);if(Q.color.copy(O.color).multiplyScalar(O.intensity*k),O.castShadow){const se=O.shadow,H=i.get(O);H.shadowBias=se.bias,H.shadowNormalBias=se.normalBias,H.shadowRadius=se.radius,H.shadowMapSize=se.mapSize,r.directionalShadow[b]=H,r.directionalShadowMap[b]=Y,r.directionalShadowMatrix[b]=O.shadow.matrix,A++}r.directional[b]=Q,b++}else if(O.isSpotLight){const Q=n.get(O);Q.position.setFromMatrixPosition(O.matrixWorld),Q.color.copy($).multiplyScalar(q*k),Q.distance=G,Q.coneCos=Math.cos(O.angle),Q.penumbraCos=Math.cos(O.angle*(1-O.penumbra)),Q.decay=O.decay,r.spot[v]=Q;const se=O.shadow;if(O.map&&(r.spotLightMap[C]=O.map,C++,se.updateMatrices(O),O.castShadow&&U++),r.spotLightMatrix[v]=se.matrix,O.castShadow){const H=i.get(O);H.shadowBias=se.bias,H.shadowNormalBias=se.normalBias,H.shadowRadius=se.radius,H.shadowMapSize=se.mapSize,r.spotShadow[v]=H,r.spotShadowMap[v]=Y,D++}v++}else if(O.isRectAreaLight){const Q=n.get(O);Q.color.copy($).multiplyScalar(q),Q.halfWidth.set(O.width*.5,0,0),Q.halfHeight.set(0,O.height*.5,0),r.rectArea[w]=Q,w++}else if(O.isPointLight){const Q=n.get(O);if(Q.color.copy(O.color).multiplyScalar(O.intensity*k),Q.distance=O.distance,Q.decay=O.decay,O.castShadow){const se=O.shadow,H=i.get(O);H.shadowBias=se.bias,H.shadowNormalBias=se.normalBias,H.shadowRadius=se.radius,H.shadowMapSize=se.mapSize,H.shadowCameraNear=se.camera.near,H.shadowCameraFar=se.camera.far,r.pointShadow[x]=H,r.pointShadowMap[x]=Y,r.pointShadowMatrix[x]=O.shadow.matrix,T++}r.point[x]=Q,x++}else if(O.isHemisphereLight){const Q=n.get(O);Q.skyColor.copy(O.color).multiplyScalar(q*k),Q.groundColor.copy(O.groundColor).multiplyScalar(q*k),r.hemi[M]=Q,M++}}w>0&&(e.isWebGL2||t.has("OES_texture_float_linear")===!0?(r.rectAreaLTC1=gt.LTC_FLOAT_1,r.rectAreaLTC2=gt.LTC_FLOAT_2):t.has("OES_texture_half_float_linear")===!0?(r.rectAreaLTC1=gt.LTC_HALF_1,r.rectAreaLTC2=gt.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),r.ambient[0]=p,r.ambient[1]=m,r.ambient[2]=y;const B=r.hash;(B.directionalLength!==b||B.pointLength!==x||B.spotLength!==v||B.rectAreaLength!==w||B.hemiLength!==M||B.numDirectionalShadows!==A||B.numPointShadows!==T||B.numSpotShadows!==D||B.numSpotMaps!==C||B.numLightProbes!==P)&&(r.directional.length=b,r.spot.length=v,r.rectArea.length=w,r.point.length=x,r.hemi.length=M,r.directionalShadow.length=A,r.directionalShadowMap.length=A,r.pointShadow.length=T,r.pointShadowMap.length=T,r.spotShadow.length=D,r.spotShadowMap.length=D,r.directionalShadowMatrix.length=A,r.pointShadowMatrix.length=T,r.spotLightMatrix.length=D+C-U,r.spotLightMap.length=C,r.numSpotLightShadowsWithMaps=U,r.numLightProbes=P,B.directionalLength=b,B.pointLength=x,B.spotLength=v,B.rectAreaLength=w,B.hemiLength=M,B.numDirectionalShadows=A,B.numPointShadows=T,B.numSpotShadows=D,B.numSpotMaps=C,B.numLightProbes=P,r.version=H0e++)}function c(d,f){let p=0,m=0,y=0,b=0,x=0;const v=f.matrixWorldInverse;for(let w=0,M=d.length;w<M;w++){const A=d[w];if(A.isDirectionalLight){const T=r.directional[p];T.direction.setFromMatrixPosition(A.matrixWorld),a.setFromMatrixPosition(A.target.matrixWorld),T.direction.sub(a),T.direction.transformDirection(v),p++}else if(A.isSpotLight){const T=r.spot[y];T.position.setFromMatrixPosition(A.matrixWorld),T.position.applyMatrix4(v),T.direction.setFromMatrixPosition(A.matrixWorld),a.setFromMatrixPosition(A.target.matrixWorld),T.direction.sub(a),T.direction.transformDirection(v),y++}else if(A.isRectAreaLight){const T=r.rectArea[b];T.position.setFromMatrixPosition(A.matrixWorld),T.position.applyMatrix4(v),o.identity(),s.copy(A.matrixWorld),s.premultiply(v),o.extractRotation(s),T.halfWidth.set(A.width*.5,0,0),T.halfHeight.set(0,A.height*.5,0),T.halfWidth.applyMatrix4(o),T.halfHeight.applyMatrix4(o),b++}else if(A.isPointLight){const T=r.point[m];T.position.setFromMatrixPosition(A.matrixWorld),T.position.applyMatrix4(v),m++}else if(A.isHemisphereLight){const T=r.hemi[x];T.direction.setFromMatrixPosition(A.matrixWorld),T.direction.transformDirection(v),x++}}}return{setup:l,setupView:c,state:r}}function z4(t,e){const n=new G0e(t,e),i=[],r=[];function a(){i.length=0,r.length=0}function s(f){i.push(f)}function o(f){r.push(f)}function l(f){n.setup(i,f)}function c(f){n.setupView(i,f)}return{init:a,state:{lightsArray:i,shadowsArray:r,lights:n},setupLights:l,setupLightsView:c,pushLight:s,pushShadow:o}}function $0e(t,e){let n=new WeakMap;function i(a,s=0){const o=n.get(a);let l;return o===void 0?(l=new z4(t,e),n.set(a,[l])):s>=o.length?(l=new z4(t,e),o.push(l)):l=o[s],l}function r(){n=new WeakMap}return{get:i,dispose:r}}class W0e extends Zp{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Dfe,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(e)}copy(e){return super.copy(e),this.depthPacking=e.depthPacking,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this}}class q0e extends Zp{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(e)}copy(e){return super.copy(e),this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const X0e=`void main() {
- gl_Position = vec4( position, 1.0 );
- }`,Y0e=`uniform sampler2D shadow_pass;
- uniform vec2 resolution;
- uniform float radius;
- #include <packing>
- void main() {
- const float samples = float( VSM_SAMPLES );
- float mean = 0.0;
- float squared_mean = 0.0;
- float uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );
- float uvStart = samples <= 1.0 ? 0.0 : - 1.0;
- for ( float i = 0.0; i < samples; i ++ ) {
- float uvOffset = uvStart + i * uvStride;
- #ifdef HORIZONTAL_PASS
- vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );
- mean += distribution.x;
- squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;
- #else
- float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );
- mean += depth;
- squared_mean += depth * depth;
- #endif
- }
- mean = mean / samples;
- squared_mean = squared_mean / samples;
- float std_dev = sqrt( squared_mean - mean * mean );
- gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );
- }`;function K0e(t,e,n){let i=new lS;const r=new Ht,a=new Ht,s=new Un,o=new W0e({depthPacking:Nfe}),l=new q0e,c={},d=n.maxTextureSize,f={[Pu]:Da,[Da]:Pu,[Ol]:Ol},p=new Du({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Ht},radius:{value:4}},vertexShader:X0e,fragmentShader:Y0e}),m=p.clone();m.defines.HORIZONTAL_PASS=1;const y=new ta;y.setAttribute("position",new is(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const b=new co(y,p),x=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=WG;let v=this.type;this.render=function(T,D,C){if(x.enabled===!1||x.autoUpdate===!1&&x.needsUpdate===!1||T.length===0)return;const U=t.getRenderTarget(),P=t.getActiveCubeFace(),k=t.getActiveMipmapLevel(),B=t.state;B.setBlending(bu),B.buffers.color.setClear(1,1,1,1),B.buffers.depth.setTest(!0),B.setScissorTest(!1);const I=v!==Rl&&this.type===Rl,W=v===Rl&&this.type!==Rl;for(let O=0,$=T.length;O<$;O++){const q=T[O],G=q.shadow;if(G===void 0){console.warn("THREE.WebGLShadowMap:",q,"has no shadow.");continue}if(G.autoUpdate===!1&&G.needsUpdate===!1)continue;r.copy(G.mapSize);const Y=G.getFrameExtents();if(r.multiply(Y),a.copy(G.mapSize),(r.x>d||r.y>d)&&(r.x>d&&(a.x=Math.floor(d/Y.x),r.x=a.x*Y.x,G.mapSize.x=a.x),r.y>d&&(a.y=Math.floor(d/Y.y),r.y=a.y*Y.y,G.mapSize.y=a.y)),G.map===null||I===!0||W===!0){const se=this.type!==Rl?{minFilter:Ir,magFilter:Ir}:{};G.map!==null&&G.map.dispose(),G.map=new cf(r.x,r.y,se),G.map.texture.name=q.name+".shadowMap",G.camera.updateProjectionMatrix()}t.setRenderTarget(G.map),t.clear();const Q=G.getViewportCount();for(let se=0;se<Q;se++){const H=G.getViewport(se);s.set(a.x*H.x,a.y*H.y,a.x*H.z,a.y*H.w),B.viewport(s),G.updateMatrices(q,se),i=G.getFrustum(),A(D,C,G.camera,q,this.type)}G.isPointLightShadow!==!0&&this.type===Rl&&w(G,C),G.needsUpdate=!1}v=this.type,x.needsUpdate=!1,t.setRenderTarget(U,P,k)};function w(T,D){const C=e.update(b);p.defines.VSM_SAMPLES!==T.blurSamples&&(p.defines.VSM_SAMPLES=T.blurSamples,m.defines.VSM_SAMPLES=T.blurSamples,p.needsUpdate=!0,m.needsUpdate=!0),T.mapPass===null&&(T.mapPass=new cf(r.x,r.y)),p.uniforms.shadow_pass.value=T.map.texture,p.uniforms.resolution.value=T.mapSize,p.uniforms.radius.value=T.radius,t.setRenderTarget(T.mapPass),t.clear(),t.renderBufferDirect(D,null,C,p,b,null),m.uniforms.shadow_pass.value=T.mapPass.texture,m.uniforms.resolution.value=T.mapSize,m.uniforms.radius.value=T.radius,t.setRenderTarget(T.map),t.clear(),t.renderBufferDirect(D,null,C,m,b,null)}function M(T,D,C,U){let P=null;const k=C.isPointLight===!0?T.customDistanceMaterial:T.customDepthMaterial;if(k!==void 0)P=k;else if(P=C.isPointLight===!0?l:o,t.localClippingEnabled&&D.clipShadows===!0&&Array.isArray(D.clippingPlanes)&&D.clippingPlanes.length!==0||D.displacementMap&&D.displacementScale!==0||D.alphaMap&&D.alphaTest>0||D.map&&D.alphaTest>0){const B=P.uuid,I=D.uuid;let W=c[B];W===void 0&&(W={},c[B]=W);let O=W[I];O===void 0&&(O=P.clone(),W[I]=O),P=O}if(P.visible=D.visible,P.wireframe=D.wireframe,U===Rl?P.side=D.shadowSide!==null?D.shadowSide:D.side:P.side=D.shadowSide!==null?D.shadowSide:f[D.side],P.alphaMap=D.alphaMap,P.alphaTest=D.alphaTest,P.map=D.map,P.clipShadows=D.clipShadows,P.clippingPlanes=D.clippingPlanes,P.clipIntersection=D.clipIntersection,P.displacementMap=D.displacementMap,P.displacementScale=D.displacementScale,P.displacementBias=D.displacementBias,P.wireframeLinewidth=D.wireframeLinewidth,P.linewidth=D.linewidth,C.isPointLight===!0&&P.isMeshDistanceMaterial===!0){const B=t.properties.get(P);B.light=C}return P}function A(T,D,C,U,P){if(T.visible===!1)return;if(T.layers.test(D.layers)&&(T.isMesh||T.isLine||T.isPoints)&&(T.castShadow||T.receiveShadow&&P===Rl)&&(!T.frustumCulled||i.intersectsObject(T))){T.modelViewMatrix.multiplyMatrices(C.matrixWorldInverse,T.matrixWorld);const I=e.update(T),W=T.material;if(Array.isArray(W)){const O=I.groups;for(let $=0,q=O.length;$<q;$++){const G=O[$],Y=W[G.materialIndex];if(Y&&Y.visible){const Q=M(T,Y,U,P);T.onBeforeShadow(t,T,D,C,I,Q,G),t.renderBufferDirect(C,null,I,Q,T,G),T.onAfterShadow(t,T,D,C,I,Q,G)}}}else if(W.visible){const O=M(T,W,U,P);T.onBeforeShadow(t,T,D,C,I,O,null),t.renderBufferDirect(C,null,I,O,T,null),T.onAfterShadow(t,T,D,C,I,O,null)}}const B=T.children;for(let I=0,W=B.length;I<W;I++)A(B[I],D,C,U,P)}}function Z0e(t,e,n){const i=n.isWebGL2;function r(){let de=!1;const Le=new Un;let Ee=null;const ge=new Un(0,0,0,0);return{setMask:function(je){Ee!==je&&!de&&(t.colorMask(je,je,je,je),Ee=je)},setLocked:function(je){de=je},setClear:function(je,at,vt,Ct,en){en===!0&&(je*=Ct,at*=Ct,vt*=Ct),Le.set(je,at,vt,Ct),ge.equals(Le)===!1&&(t.clearColor(je,at,vt,Ct),ge.copy(Le))},reset:function(){de=!1,Ee=null,ge.set(-1,0,0,0)}}}function a(){let de=!1,Le=null,Ee=null,ge=null;return{setTest:function(je){je?he(t.DEPTH_TEST):Ae(t.DEPTH_TEST)},setMask:function(je){Le!==je&&!de&&(t.depthMask(je),Le=je)},setFunc:function(je){if(Ee!==je){switch(je){case lfe:t.depthFunc(t.NEVER);break;case cfe:t.depthFunc(t.ALWAYS);break;case ufe:t.depthFunc(t.LESS);break;case r_:t.depthFunc(t.LEQUAL);break;case dfe:t.depthFunc(t.EQUAL);break;case ffe:t.depthFunc(t.GEQUAL);break;case hfe:t.depthFunc(t.GREATER);break;case pfe:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}Ee=je}},setLocked:function(je){de=je},setClear:function(je){ge!==je&&(t.clearDepth(je),ge=je)},reset:function(){de=!1,Le=null,Ee=null,ge=null}}}function s(){let de=!1,Le=null,Ee=null,ge=null,je=null,at=null,vt=null,Ct=null,en=null;return{setTest:function(Dt){de||(Dt?he(t.STENCIL_TEST):Ae(t.STENCIL_TEST))},setMask:function(Dt){Le!==Dt&&!de&&(t.stencilMask(Dt),Le=Dt)},setFunc:function(Dt,wn,zn){(Ee!==Dt||ge!==wn||je!==zn)&&(t.stencilFunc(Dt,wn,zn),Ee=Dt,ge=wn,je=zn)},setOp:function(Dt,wn,zn){(at!==Dt||vt!==wn||Ct!==zn)&&(t.stencilOp(Dt,wn,zn),at=Dt,vt=wn,Ct=zn)},setLocked:function(Dt){de=Dt},setClear:function(Dt){en!==Dt&&(t.clearStencil(Dt),en=Dt)},reset:function(){de=!1,Le=null,Ee=null,ge=null,je=null,at=null,vt=null,Ct=null,en=null}}}const o=new r,l=new a,c=new s,d=new WeakMap,f=new WeakMap;let p={},m={},y=new WeakMap,b=[],x=null,v=!1,w=null,M=null,A=null,T=null,D=null,C=null,U=null,P=new Ut(0,0,0),k=0,B=!1,I=null,W=null,O=null,$=null,q=null;const G=t.getParameter(t.MAX_COMBINED_TEXTURE_IMAGE_UNITS);let Y=!1,Q=0;const se=t.getParameter(t.VERSION);se.indexOf("WebGL")!==-1?(Q=parseFloat(/^WebGL (\d)/.exec(se)[1]),Y=Q>=1):se.indexOf("OpenGL ES")!==-1&&(Q=parseFloat(/^OpenGL ES (\d)/.exec(se)[1]),Y=Q>=2);let H=null,X={};const re=t.getParameter(t.SCISSOR_BOX),ce=t.getParameter(t.VIEWPORT),ye=new Un().fromArray(re),me=new Un().fromArray(ce);function be(de,Le,Ee,ge){const je=new Uint8Array(4),at=t.createTexture();t.bindTexture(de,at),t.texParameteri(de,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(de,t.TEXTURE_MAG_FILTER,t.NEAREST);for(let vt=0;vt<Ee;vt++)i&&(de===t.TEXTURE_3D||de===t.TEXTURE_2D_ARRAY)?t.texImage3D(Le,0,t.RGBA,1,1,ge,0,t.RGBA,t.UNSIGNED_BYTE,je):t.texImage2D(Le+vt,0,t.RGBA,1,1,0,t.RGBA,t.UNSIGNED_BYTE,je);return at}const Ne={};Ne[t.TEXTURE_2D]=be(t.TEXTURE_2D,t.TEXTURE_2D,1),Ne[t.TEXTURE_CUBE_MAP]=be(t.TEXTURE_CUBE_MAP,t.TEXTURE_CUBE_MAP_POSITIVE_X,6),i&&(Ne[t.TEXTURE_2D_ARRAY]=be(t.TEXTURE_2D_ARRAY,t.TEXTURE_2D_ARRAY,1,1),Ne[t.TEXTURE_3D]=be(t.TEXTURE_3D,t.TEXTURE_3D,1,1)),o.setClear(0,0,0,1),l.setClear(1),c.setClear(0),he(t.DEPTH_TEST),l.setFunc(r_),ee(!1),ae(_z),he(t.CULL_FACE),ne(bu);function he(de){p[de]!==!0&&(t.enable(de),p[de]=!0)}function Ae(de){p[de]!==!1&&(t.disable(de),p[de]=!1)}function Be(de,Le){return m[de]!==Le?(t.bindFramebuffer(de,Le),m[de]=Le,i&&(de===t.DRAW_FRAMEBUFFER&&(m[t.FRAMEBUFFER]=Le),de===t.FRAMEBUFFER&&(m[t.DRAW_FRAMEBUFFER]=Le)),!0):!1}function le(de,Le){let Ee=b,ge=!1;if(de)if(Ee=y.get(Le),Ee===void 0&&(Ee=[],y.set(Le,Ee)),de.isWebGLMultipleRenderTargets){const je=de.texture;if(Ee.length!==je.length||Ee[0]!==t.COLOR_ATTACHMENT0){for(let at=0,vt=je.length;at<vt;at++)Ee[at]=t.COLOR_ATTACHMENT0+at;Ee.length=je.length,ge=!0}}else Ee[0]!==t.COLOR_ATTACHMENT0&&(Ee[0]=t.COLOR_ATTACHMENT0,ge=!0);else Ee[0]!==t.BACK&&(Ee[0]=t.BACK,ge=!0);ge&&(n.isWebGL2?t.drawBuffers(Ee):e.get("WEBGL_draw_buffers").drawBuffersWEBGL(Ee))}function ct(de){return x!==de?(t.useProgram(de),x=de,!0):!1}const z={[Ad]:t.FUNC_ADD,[qde]:t.FUNC_SUBTRACT,[Xde]:t.FUNC_REVERSE_SUBTRACT};if(i)z[Ez]=t.MIN,z[Az]=t.MAX;else{const de=e.get("EXT_blend_minmax");de!==null&&(z[Ez]=de.MIN_EXT,z[Az]=de.MAX_EXT)}const V={[Yde]:t.ZERO,[Kde]:t.ONE,[Zde]:t.SRC_COLOR,[pR]:t.SRC_ALPHA,[ife]:t.SRC_ALPHA_SATURATE,[tfe]:t.DST_COLOR,[Qde]:t.DST_ALPHA,[Jde]:t.ONE_MINUS_SRC_COLOR,[mR]:t.ONE_MINUS_SRC_ALPHA,[nfe]:t.ONE_MINUS_DST_COLOR,[efe]:t.ONE_MINUS_DST_ALPHA,[rfe]:t.CONSTANT_COLOR,[afe]:t.ONE_MINUS_CONSTANT_COLOR,[sfe]:t.CONSTANT_ALPHA,[ofe]:t.ONE_MINUS_CONSTANT_ALPHA};function ne(de,Le,Ee,ge,je,at,vt,Ct,en,Dt){if(de===bu){v===!0&&(Ae(t.BLEND),v=!1);return}if(v===!1&&(he(t.BLEND),v=!0),de!==Wde){if(de!==w||Dt!==B){if((M!==Ad||D!==Ad)&&(t.blendEquation(t.FUNC_ADD),M=Ad,D=Ad),Dt)switch(de){case op:t.blendFuncSeparate(t.ONE,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case Sz:t.blendFunc(t.ONE,t.ONE);break;case wz:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case Mz:t.blendFuncSeparate(t.ZERO,t.SRC_COLOR,t.ZERO,t.SRC_ALPHA);break;default:console.error("THREE.WebGLState: Invalid blending: ",de);break}else switch(de){case op:t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA);break;case Sz:t.blendFunc(t.SRC_ALPHA,t.ONE);break;case wz:t.blendFuncSeparate(t.ZERO,t.ONE_MINUS_SRC_COLOR,t.ZERO,t.ONE);break;case Mz:t.blendFunc(t.ZERO,t.SRC_COLOR);break;default:console.error("THREE.WebGLState: Invalid blending: ",de);break}A=null,T=null,C=null,U=null,P.set(0,0,0),k=0,w=de,B=Dt}return}je=je||Le,at=at||Ee,vt=vt||ge,(Le!==M||je!==D)&&(t.blendEquationSeparate(z[Le],z[je]),M=Le,D=je),(Ee!==A||ge!==T||at!==C||vt!==U)&&(t.blendFuncSeparate(V[Ee],V[ge],V[at],V[vt]),A=Ee,T=ge,C=at,U=vt),(Ct.equals(P)===!1||en!==k)&&(t.blendColor(Ct.r,Ct.g,Ct.b,en),P.copy(Ct),k=en),w=de,B=!1}function J(de,Le){de.side===Ol?Ae(t.CULL_FACE):he(t.CULL_FACE);let Ee=de.side===Da;Le&&(Ee=!Ee),ee(Ee),de.blending===op&&de.transparent===!1?ne(bu):ne(de.blending,de.blendEquation,de.blendSrc,de.blendDst,de.blendEquationAlpha,de.blendSrcAlpha,de.blendDstAlpha,de.blendColor,de.blendAlpha,de.premultipliedAlpha),l.setFunc(de.depthFunc),l.setTest(de.depthTest),l.setMask(de.depthWrite),o.setMask(de.colorWrite);const ge=de.stencilWrite;c.setTest(ge),ge&&(c.setMask(de.stencilWriteMask),c.setFunc(de.stencilFunc,de.stencilRef,de.stencilFuncMask),c.setOp(de.stencilFail,de.stencilZFail,de.stencilZPass)),we(de.polygonOffset,de.polygonOffsetFactor,de.polygonOffsetUnits),de.alphaToCoverage===!0?he(t.SAMPLE_ALPHA_TO_COVERAGE):Ae(t.SAMPLE_ALPHA_TO_COVERAGE)}function ee(de){I!==de&&(de?t.frontFace(t.CW):t.frontFace(t.CCW),I=de)}function ae(de){de!==Vde?(he(t.CULL_FACE),de!==W&&(de===_z?t.cullFace(t.BACK):de===Gde?t.cullFace(t.FRONT):t.cullFace(t.FRONT_AND_BACK))):Ae(t.CULL_FACE),W=de}function ie(de){de!==O&&(Y&&t.lineWidth(de),O=de)}function we(de,Le,Ee){de?(he(t.POLYGON_OFFSET_FILL),($!==Le||q!==Ee)&&(t.polygonOffset(Le,Ee),$=Le,q=Ee)):Ae(t.POLYGON_OFFSET_FILL)}function ve(de){de?he(t.SCISSOR_TEST):Ae(t.SCISSOR_TEST)}function F(de){de===void 0&&(de=t.TEXTURE0+G-1),H!==de&&(t.activeTexture(de),H=de)}function L(de,Le,Ee){Ee===void 0&&(H===null?Ee=t.TEXTURE0+G-1:Ee=H);let ge=X[Ee];ge===void 0&&(ge={type:void 0,texture:void 0},X[Ee]=ge),(ge.type!==de||ge.texture!==Le)&&(H!==Ee&&(t.activeTexture(Ee),H=Ee),t.bindTexture(de,Le||Ne[de]),ge.type=de,ge.texture=Le)}function K(){const de=X[H];de!==void 0&&de.type!==void 0&&(t.bindTexture(de.type,null),de.type=void 0,de.texture=void 0)}function pe(){try{t.compressedTexImage2D.apply(t,arguments)}catch(de){console.error("THREE.WebGLState:",de)}}function xe(){try{t.compressedTexImage3D.apply(t,arguments)}catch(de){console.error("THREE.WebGLState:",de)}}function fe(){try{t.texSubImage2D.apply(t,arguments)}catch(de){console.error("THREE.WebGLState:",de)}}function Ke(){try{t.texSubImage3D.apply(t,arguments)}catch(de){console.error("THREE.WebGLState:",de)}}function ke(){try{t.compressedTexSubImage2D.apply(t,arguments)}catch(de){console.error("THREE.WebGLState:",de)}}function $e(){try{t.compressedTexSubImage3D.apply(t,arguments)}catch(de){console.error("THREE.WebGLState:",de)}}function rt(){try{t.texStorage2D.apply(t,arguments)}catch(de){console.error("THREE.WebGLState:",de)}}function Ue(){try{t.texStorage3D.apply(t,arguments)}catch(de){console.error("THREE.WebGLState:",de)}}function De(){try{t.texImage2D.apply(t,arguments)}catch(de){console.error("THREE.WebGLState:",de)}}function ut(){try{t.texImage3D.apply(t,arguments)}catch(de){console.error("THREE.WebGLState:",de)}}function et(de){ye.equals(de)===!1&&(t.scissor(de.x,de.y,de.z,de.w),ye.copy(de))}function Qe(de){me.equals(de)===!1&&(t.viewport(de.x,de.y,de.z,de.w),me.copy(de))}function st(de,Le){let Ee=f.get(Le);Ee===void 0&&(Ee=new WeakMap,f.set(Le,Ee));let ge=Ee.get(de);ge===void 0&&(ge=t.getUniformBlockIndex(Le,de.name),Ee.set(de,ge))}function ue(de,Le){const ge=f.get(Le).get(de);d.get(Le)!==ge&&(t.uniformBlockBinding(Le,ge,de.__bindingPointIndex),d.set(Le,ge))}function tt(){t.disable(t.BLEND),t.disable(t.CULL_FACE),t.disable(t.DEPTH_TEST),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SCISSOR_TEST),t.disable(t.STENCIL_TEST),t.disable(t.SAMPLE_ALPHA_TO_COVERAGE),t.blendEquation(t.FUNC_ADD),t.blendFunc(t.ONE,t.ZERO),t.blendFuncSeparate(t.ONE,t.ZERO,t.ONE,t.ZERO),t.blendColor(0,0,0,0),t.colorMask(!0,!0,!0,!0),t.clearColor(0,0,0,0),t.depthMask(!0),t.depthFunc(t.LESS),t.clearDepth(1),t.stencilMask(4294967295),t.stencilFunc(t.ALWAYS,0,4294967295),t.stencilOp(t.KEEP,t.KEEP,t.KEEP),t.clearStencil(0),t.cullFace(t.BACK),t.frontFace(t.CCW),t.polygonOffset(0,0),t.activeTexture(t.TEXTURE0),t.bindFramebuffer(t.FRAMEBUFFER,null),i===!0&&(t.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),t.bindFramebuffer(t.READ_FRAMEBUFFER,null)),t.useProgram(null),t.lineWidth(1),t.scissor(0,0,t.canvas.width,t.canvas.height),t.viewport(0,0,t.canvas.width,t.canvas.height),p={},H=null,X={},m={},y=new WeakMap,b=[],x=null,v=!1,w=null,M=null,A=null,T=null,D=null,C=null,U=null,P=new Ut(0,0,0),k=0,B=!1,I=null,W=null,O=null,$=null,q=null,ye.set(0,0,t.canvas.width,t.canvas.height),me.set(0,0,t.canvas.width,t.canvas.height),o.reset(),l.reset(),c.reset()}return{buffers:{color:o,depth:l,stencil:c},enable:he,disable:Ae,bindFramebuffer:Be,drawBuffers:le,useProgram:ct,setBlending:ne,setMaterial:J,setFlipSided:ee,setCullFace:ae,setLineWidth:ie,setPolygonOffset:we,setScissorTest:ve,activeTexture:F,bindTexture:L,unbindTexture:K,compressedTexImage2D:pe,compressedTexImage3D:xe,texImage2D:De,texImage3D:ut,updateUBOMapping:st,uniformBlockBinding:ue,texStorage2D:rt,texStorage3D:Ue,texSubImage2D:fe,texSubImage3D:Ke,compressedTexSubImage2D:ke,compressedTexSubImage3D:$e,scissor:et,viewport:Qe,reset:tt}}function J0e(t,e,n,i,r,a,s){const o=r.isWebGL2,l=r.maxTextures,c=r.maxCubemapSize,d=r.maxTextureSize,f=r.maxSamples,p=e.has("WEBGL_multisampled_render_to_texture")?e.get("WEBGL_multisampled_render_to_texture"):null,m=typeof navigator>"u"?!1:/OculusBrowser/g.test(navigator.userAgent),y=new WeakMap;let b;const x=new WeakMap;let v=!1;try{v=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")!==null}catch{}function w(F,L){return v?new OffscreenCanvas(F,L):c_("canvas")}function M(F,L,K,pe){let xe=1;if((F.width>pe||F.height>pe)&&(xe=pe/Math.max(F.width,F.height)),xe<1||L===!0)if(typeof HTMLImageElement<"u"&&F instanceof HTMLImageElement||typeof HTMLCanvasElement<"u"&&F instanceof HTMLCanvasElement||typeof ImageBitmap<"u"&&F instanceof ImageBitmap){const fe=L?l_:Math.floor,Ke=fe(xe*F.width),ke=fe(xe*F.height);b===void 0&&(b=w(Ke,ke));const $e=K?w(Ke,ke):b;return $e.width=Ke,$e.height=ke,$e.getContext("2d").drawImage(F,0,0,Ke,ke),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+F.width+"x"+F.height+") to ("+Ke+"x"+ke+")."),$e}else return"data"in F&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+F.width+"x"+F.height+")."),F;return F}function A(F){return SR(F.width)&&SR(F.height)}function T(F){return o?!1:F.wrapS!==io||F.wrapT!==io||F.minFilter!==Ir&&F.minFilter!==Ps}function D(F,L){return F.generateMipmaps&&L&&F.minFilter!==Ir&&F.minFilter!==Ps}function C(F){t.generateMipmap(F)}function U(F,L,K,pe,xe=!1){if(o===!1)return L;if(F!==null){if(t[F]!==void 0)return t[F];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+F+"'")}let fe=L;if(L===t.RED&&(K===t.FLOAT&&(fe=t.R32F),K===t.HALF_FLOAT&&(fe=t.R16F),K===t.UNSIGNED_BYTE&&(fe=t.R8)),L===t.RED_INTEGER&&(K===t.UNSIGNED_BYTE&&(fe=t.R8UI),K===t.UNSIGNED_SHORT&&(fe=t.R16UI),K===t.UNSIGNED_INT&&(fe=t.R32UI),K===t.BYTE&&(fe=t.R8I),K===t.SHORT&&(fe=t.R16I),K===t.INT&&(fe=t.R32I)),L===t.RG&&(K===t.FLOAT&&(fe=t.RG32F),K===t.HALF_FLOAT&&(fe=t.RG16F),K===t.UNSIGNED_BYTE&&(fe=t.RG8)),L===t.RGBA){const Ke=xe?a_:kn.getTransfer(pe);K===t.FLOAT&&(fe=t.RGBA32F),K===t.HALF_FLOAT&&(fe=t.RGBA16F),K===t.UNSIGNED_BYTE&&(fe=Ke===Yn?t.SRGB8_ALPHA8:t.RGBA8),K===t.UNSIGNED_SHORT_4_4_4_4&&(fe=t.RGBA4),K===t.UNSIGNED_SHORT_5_5_5_1&&(fe=t.RGB5_A1)}return(fe===t.R16F||fe===t.R32F||fe===t.RG16F||fe===t.RG32F||fe===t.RGBA16F||fe===t.RGBA32F)&&e.get("EXT_color_buffer_float"),fe}function P(F,L,K){return D(F,K)===!0||F.isFramebufferTexture&&F.minFilter!==Ir&&F.minFilter!==Ps?Math.log2(Math.max(L.width,L.height))+1:F.mipmaps!==void 0&&F.mipmaps.length>0?F.mipmaps.length:F.isCompressedTexture&&Array.isArray(F.image)?L.mipmaps.length:1}function k(F){return F===Ir||F===Tz||F===fA?t.NEAREST:t.LINEAR}function B(F){const L=F.target;L.removeEventListener("dispose",B),W(L),L.isVideoTexture&&y.delete(L)}function I(F){const L=F.target;L.removeEventListener("dispose",I),$(L)}function W(F){const L=i.get(F);if(L.__webglInit===void 0)return;const K=F.source,pe=x.get(K);if(pe){const xe=pe[L.__cacheKey];xe.usedTimes--,xe.usedTimes===0&&O(F),Object.keys(pe).length===0&&x.delete(K)}i.remove(F)}function O(F){const L=i.get(F);t.deleteTexture(L.__webglTexture);const K=F.source,pe=x.get(K);delete pe[L.__cacheKey],s.memory.textures--}function $(F){const L=F.texture,K=i.get(F),pe=i.get(L);if(pe.__webglTexture!==void 0&&(t.deleteTexture(pe.__webglTexture),s.memory.textures--),F.depthTexture&&F.depthTexture.dispose(),F.isWebGLCubeRenderTarget)for(let xe=0;xe<6;xe++){if(Array.isArray(K.__webglFramebuffer[xe]))for(let fe=0;fe<K.__webglFramebuffer[xe].length;fe++)t.deleteFramebuffer(K.__webglFramebuffer[xe][fe]);else t.deleteFramebuffer(K.__webglFramebuffer[xe]);K.__webglDepthbuffer&&t.deleteRenderbuffer(K.__webglDepthbuffer[xe])}else{if(Array.isArray(K.__webglFramebuffer))for(let xe=0;xe<K.__webglFramebuffer.length;xe++)t.deleteFramebuffer(K.__webglFramebuffer[xe]);else t.deleteFramebuffer(K.__webglFramebuffer);if(K.__webglDepthbuffer&&t.deleteRenderbuffer(K.__webglDepthbuffer),K.__webglMultisampledFramebuffer&&t.deleteFramebuffer(K.__webglMultisampledFramebuffer),K.__webglColorRenderbuffer)for(let xe=0;xe<K.__webglColorRenderbuffer.length;xe++)K.__webglColorRenderbuffer[xe]&&t.deleteRenderbuffer(K.__webglColorRenderbuffer[xe]);K.__webglDepthRenderbuffer&&t.deleteRenderbuffer(K.__webglDepthRenderbuffer)}if(F.isWebGLMultipleRenderTargets)for(let xe=0,fe=L.length;xe<fe;xe++){const Ke=i.get(L[xe]);Ke.__webglTexture&&(t.deleteTexture(Ke.__webglTexture),s.memory.textures--),i.remove(L[xe])}i.remove(L),i.remove(F)}let q=0;function G(){q=0}function Y(){const F=q;return F>=l&&console.warn("THREE.WebGLTextures: Trying to use "+F+" texture units while this GPU supports only "+l),q+=1,F}function Q(F){const L=[];return L.push(F.wrapS),L.push(F.wrapT),L.push(F.wrapR||0),L.push(F.magFilter),L.push(F.minFilter),L.push(F.anisotropy),L.push(F.internalFormat),L.push(F.format),L.push(F.type),L.push(F.generateMipmaps),L.push(F.premultiplyAlpha),L.push(F.flipY),L.push(F.unpackAlignment),L.push(F.colorSpace),L.join()}function se(F,L){const K=i.get(F);if(F.isVideoTexture&&we(F),F.isRenderTargetTexture===!1&&F.version>0&&K.__version!==F.version){const pe=F.image;if(pe===null)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else if(pe.complete===!1)console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete");else{he(K,F,L);return}}n.bindTexture(t.TEXTURE_2D,K.__webglTexture,t.TEXTURE0+L)}function H(F,L){const K=i.get(F);if(F.version>0&&K.__version!==F.version){he(K,F,L);return}n.bindTexture(t.TEXTURE_2D_ARRAY,K.__webglTexture,t.TEXTURE0+L)}function X(F,L){const K=i.get(F);if(F.version>0&&K.__version!==F.version){he(K,F,L);return}n.bindTexture(t.TEXTURE_3D,K.__webglTexture,t.TEXTURE0+L)}function re(F,L){const K=i.get(F);if(F.version>0&&K.__version!==F.version){Ae(K,F,L);return}n.bindTexture(t.TEXTURE_CUBE_MAP,K.__webglTexture,t.TEXTURE0+L)}const ce={[xR]:t.REPEAT,[io]:t.CLAMP_TO_EDGE,[yR]:t.MIRRORED_REPEAT},ye={[Ir]:t.NEAREST,[Tz]:t.NEAREST_MIPMAP_NEAREST,[fA]:t.NEAREST_MIPMAP_LINEAR,[Ps]:t.LINEAR,[Sfe]:t.LINEAR_MIPMAP_NEAREST,[g0]:t.LINEAR_MIPMAP_LINEAR},me={[Lfe]:t.NEVER,[Bfe]:t.ALWAYS,[kfe]:t.LESS,[i$]:t.LEQUAL,[Ife]:t.EQUAL,[zfe]:t.GEQUAL,[Ufe]:t.GREATER,[Ffe]:t.NOTEQUAL};function be(F,L,K){if(K?(t.texParameteri(F,t.TEXTURE_WRAP_S,ce[L.wrapS]),t.texParameteri(F,t.TEXTURE_WRAP_T,ce[L.wrapT]),(F===t.TEXTURE_3D||F===t.TEXTURE_2D_ARRAY)&&t.texParameteri(F,t.TEXTURE_WRAP_R,ce[L.wrapR]),t.texParameteri(F,t.TEXTURE_MAG_FILTER,ye[L.magFilter]),t.texParameteri(F,t.TEXTURE_MIN_FILTER,ye[L.minFilter])):(t.texParameteri(F,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(F,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),(F===t.TEXTURE_3D||F===t.TEXTURE_2D_ARRAY)&&t.texParameteri(F,t.TEXTURE_WRAP_R,t.CLAMP_TO_EDGE),(L.wrapS!==io||L.wrapT!==io)&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),t.texParameteri(F,t.TEXTURE_MAG_FILTER,k(L.magFilter)),t.texParameteri(F,t.TEXTURE_MIN_FILTER,k(L.minFilter)),L.minFilter!==Ir&&L.minFilter!==Ps&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),L.compareFunction&&(t.texParameteri(F,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE),t.texParameteri(F,t.TEXTURE_COMPARE_FUNC,me[L.compareFunction])),e.has("EXT_texture_filter_anisotropic")===!0){const pe=e.get("EXT_texture_filter_anisotropic");if(L.magFilter===Ir||L.minFilter!==fA&&L.minFilter!==g0||L.type===zl&&e.has("OES_texture_float_linear")===!1||o===!1&&L.type===v0&&e.has("OES_texture_half_float_linear")===!1)return;(L.anisotropy>1||i.get(L).__currentAnisotropy)&&(t.texParameterf(F,pe.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(L.anisotropy,r.getMaxAnisotropy())),i.get(L).__currentAnisotropy=L.anisotropy)}}function Ne(F,L){let K=!1;F.__webglInit===void 0&&(F.__webglInit=!0,L.addEventListener("dispose",B));const pe=L.source;let xe=x.get(pe);xe===void 0&&(xe={},x.set(pe,xe));const fe=Q(L);if(fe!==F.__cacheKey){xe[fe]===void 0&&(xe[fe]={texture:t.createTexture(),usedTimes:0},s.memory.textures++,K=!0),xe[fe].usedTimes++;const Ke=xe[F.__cacheKey];Ke!==void 0&&(xe[F.__cacheKey].usedTimes--,Ke.usedTimes===0&&O(L)),F.__cacheKey=fe,F.__webglTexture=xe[fe].texture}return K}function he(F,L,K){let pe=t.TEXTURE_2D;(L.isDataArrayTexture||L.isCompressedArrayTexture)&&(pe=t.TEXTURE_2D_ARRAY),L.isData3DTexture&&(pe=t.TEXTURE_3D);const xe=Ne(F,L),fe=L.source;n.bindTexture(pe,F.__webglTexture,t.TEXTURE0+K);const Ke=i.get(fe);if(fe.version!==Ke.__version||xe===!0){n.activeTexture(t.TEXTURE0+K);const ke=kn.getPrimaries(kn.workingColorSpace),$e=L.colorSpace===Ns?null:kn.getPrimaries(L.colorSpace),rt=L.colorSpace===Ns||ke===$e?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,L.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,L.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,L.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,rt);const Ue=T(L)&&A(L.image)===!1;let De=M(L.image,Ue,!1,d);De=ve(L,De);const ut=A(De)||o,et=a.convert(L.format,L.colorSpace);let Qe=a.convert(L.type),st=U(L.internalFormat,et,Qe,L.colorSpace,L.isVideoTexture);be(pe,L,ut);let ue;const tt=L.mipmaps,de=o&&L.isVideoTexture!==!0&&st!==e$,Le=Ke.__version===void 0||xe===!0,Ee=P(L,De,ut);if(L.isDepthTexture)st=t.DEPTH_COMPONENT,o?L.type===zl?st=t.DEPTH_COMPONENT32F:L.type===hu?st=t.DEPTH_COMPONENT24:L.type===Bd?st=t.DEPTH24_STENCIL8:st=t.DEPTH_COMPONENT16:L.type===zl&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),L.format===jd&&st===t.DEPTH_COMPONENT&&L.type!==$P&&L.type!==hu&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),L.type=hu,Qe=a.convert(L.type)),L.format===Mp&&st===t.DEPTH_COMPONENT&&(st=t.DEPTH_STENCIL,L.type!==Bd&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),L.type=Bd,Qe=a.convert(L.type))),Le&&(de?n.texStorage2D(t.TEXTURE_2D,1,st,De.width,De.height):n.texImage2D(t.TEXTURE_2D,0,st,De.width,De.height,0,et,Qe,null));else if(L.isDataTexture)if(tt.length>0&&ut){de&&Le&&n.texStorage2D(t.TEXTURE_2D,Ee,st,tt[0].width,tt[0].height);for(let ge=0,je=tt.length;ge<je;ge++)ue=tt[ge],de?n.texSubImage2D(t.TEXTURE_2D,ge,0,0,ue.width,ue.height,et,Qe,ue.data):n.texImage2D(t.TEXTURE_2D,ge,st,ue.width,ue.height,0,et,Qe,ue.data);L.generateMipmaps=!1}else de?(Le&&n.texStorage2D(t.TEXTURE_2D,Ee,st,De.width,De.height),n.texSubImage2D(t.TEXTURE_2D,0,0,0,De.width,De.height,et,Qe,De.data)):n.texImage2D(t.TEXTURE_2D,0,st,De.width,De.height,0,et,Qe,De.data);else if(L.isCompressedTexture)if(L.isCompressedArrayTexture){de&&Le&&n.texStorage3D(t.TEXTURE_2D_ARRAY,Ee,st,tt[0].width,tt[0].height,De.depth);for(let ge=0,je=tt.length;ge<je;ge++)ue=tt[ge],L.format!==Ds?et!==null?de?n.compressedTexSubImage3D(t.TEXTURE_2D_ARRAY,ge,0,0,0,ue.width,ue.height,De.depth,et,ue.data,0,0):n.compressedTexImage3D(t.TEXTURE_2D_ARRAY,ge,st,ue.width,ue.height,De.depth,0,ue.data,0,0):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):de?n.texSubImage3D(t.TEXTURE_2D_ARRAY,ge,0,0,0,ue.width,ue.height,De.depth,et,Qe,ue.data):n.texImage3D(t.TEXTURE_2D_ARRAY,ge,st,ue.width,ue.height,De.depth,0,et,Qe,ue.data)}else{de&&Le&&n.texStorage2D(t.TEXTURE_2D,Ee,st,tt[0].width,tt[0].height);for(let ge=0,je=tt.length;ge<je;ge++)ue=tt[ge],L.format!==Ds?et!==null?de?n.compressedTexSubImage2D(t.TEXTURE_2D,ge,0,0,ue.width,ue.height,et,ue.data):n.compressedTexImage2D(t.TEXTURE_2D,ge,st,ue.width,ue.height,0,ue.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):de?n.texSubImage2D(t.TEXTURE_2D,ge,0,0,ue.width,ue.height,et,Qe,ue.data):n.texImage2D(t.TEXTURE_2D,ge,st,ue.width,ue.height,0,et,Qe,ue.data)}else if(L.isDataArrayTexture)de?(Le&&n.texStorage3D(t.TEXTURE_2D_ARRAY,Ee,st,De.width,De.height,De.depth),n.texSubImage3D(t.TEXTURE_2D_ARRAY,0,0,0,0,De.width,De.height,De.depth,et,Qe,De.data)):n.texImage3D(t.TEXTURE_2D_ARRAY,0,st,De.width,De.height,De.depth,0,et,Qe,De.data);else if(L.isData3DTexture)de?(Le&&n.texStorage3D(t.TEXTURE_3D,Ee,st,De.width,De.height,De.depth),n.texSubImage3D(t.TEXTURE_3D,0,0,0,0,De.width,De.height,De.depth,et,Qe,De.data)):n.texImage3D(t.TEXTURE_3D,0,st,De.width,De.height,De.depth,0,et,Qe,De.data);else if(L.isFramebufferTexture){if(Le)if(de)n.texStorage2D(t.TEXTURE_2D,Ee,st,De.width,De.height);else{let ge=De.width,je=De.height;for(let at=0;at<Ee;at++)n.texImage2D(t.TEXTURE_2D,at,st,ge,je,0,et,Qe,null),ge>>=1,je>>=1}}else if(tt.length>0&&ut){de&&Le&&n.texStorage2D(t.TEXTURE_2D,Ee,st,tt[0].width,tt[0].height);for(let ge=0,je=tt.length;ge<je;ge++)ue=tt[ge],de?n.texSubImage2D(t.TEXTURE_2D,ge,0,0,et,Qe,ue):n.texImage2D(t.TEXTURE_2D,ge,st,et,Qe,ue);L.generateMipmaps=!1}else de?(Le&&n.texStorage2D(t.TEXTURE_2D,Ee,st,De.width,De.height),n.texSubImage2D(t.TEXTURE_2D,0,0,0,et,Qe,De)):n.texImage2D(t.TEXTURE_2D,0,st,et,Qe,De);D(L,ut)&&C(pe),Ke.__version=fe.version,L.onUpdate&&L.onUpdate(L)}F.__version=L.version}function Ae(F,L,K){if(L.image.length!==6)return;const pe=Ne(F,L),xe=L.source;n.bindTexture(t.TEXTURE_CUBE_MAP,F.__webglTexture,t.TEXTURE0+K);const fe=i.get(xe);if(xe.version!==fe.__version||pe===!0){n.activeTexture(t.TEXTURE0+K);const Ke=kn.getPrimaries(kn.workingColorSpace),ke=L.colorSpace===Ns?null:kn.getPrimaries(L.colorSpace),$e=L.colorSpace===Ns||Ke===ke?t.NONE:t.BROWSER_DEFAULT_WEBGL;t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,L.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,L.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,L.unpackAlignment),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,$e);const rt=L.isCompressedTexture||L.image[0].isCompressedTexture,Ue=L.image[0]&&L.image[0].isDataTexture,De=[];for(let ge=0;ge<6;ge++)!rt&&!Ue?De[ge]=M(L.image[ge],!1,!0,c):De[ge]=Ue?L.image[ge].image:L.image[ge],De[ge]=ve(L,De[ge]);const ut=De[0],et=A(ut)||o,Qe=a.convert(L.format,L.colorSpace),st=a.convert(L.type),ue=U(L.internalFormat,Qe,st,L.colorSpace),tt=o&&L.isVideoTexture!==!0,de=fe.__version===void 0||pe===!0;let Le=P(L,ut,et);be(t.TEXTURE_CUBE_MAP,L,et);let Ee;if(rt){tt&&de&&n.texStorage2D(t.TEXTURE_CUBE_MAP,Le,ue,ut.width,ut.height);for(let ge=0;ge<6;ge++){Ee=De[ge].mipmaps;for(let je=0;je<Ee.length;je++){const at=Ee[je];L.format!==Ds?Qe!==null?tt?n.compressedTexSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je,0,0,at.width,at.height,Qe,at.data):n.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je,ue,at.width,at.height,0,at.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):tt?n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je,0,0,at.width,at.height,Qe,st,at.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je,ue,at.width,at.height,0,Qe,st,at.data)}}}else{Ee=L.mipmaps,tt&&de&&(Ee.length>0&&Le++,n.texStorage2D(t.TEXTURE_CUBE_MAP,Le,ue,De[0].width,De[0].height));for(let ge=0;ge<6;ge++)if(Ue){tt?n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,0,0,0,De[ge].width,De[ge].height,Qe,st,De[ge].data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,0,ue,De[ge].width,De[ge].height,0,Qe,st,De[ge].data);for(let je=0;je<Ee.length;je++){const vt=Ee[je].image[ge].image;tt?n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je+1,0,0,vt.width,vt.height,Qe,st,vt.data):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je+1,ue,vt.width,vt.height,0,Qe,st,vt.data)}}else{tt?n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,0,0,0,Qe,st,De[ge]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,0,ue,Qe,st,De[ge]);for(let je=0;je<Ee.length;je++){const at=Ee[je];tt?n.texSubImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je+1,0,0,Qe,st,at.image[ge]):n.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+ge,je+1,ue,Qe,st,at.image[ge])}}}D(L,et)&&C(t.TEXTURE_CUBE_MAP),fe.__version=xe.version,L.onUpdate&&L.onUpdate(L)}F.__version=L.version}function Be(F,L,K,pe,xe,fe){const Ke=a.convert(K.format,K.colorSpace),ke=a.convert(K.type),$e=U(K.internalFormat,Ke,ke,K.colorSpace);if(!i.get(L).__hasExternalTextures){const Ue=Math.max(1,L.width>>fe),De=Math.max(1,L.height>>fe);xe===t.TEXTURE_3D||xe===t.TEXTURE_2D_ARRAY?n.texImage3D(xe,fe,$e,Ue,De,L.depth,0,Ke,ke,null):n.texImage2D(xe,fe,$e,Ue,De,0,Ke,ke,null)}n.bindFramebuffer(t.FRAMEBUFFER,F),ie(L)?p.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,pe,xe,i.get(K).__webglTexture,0,ae(L)):(xe===t.TEXTURE_2D||xe>=t.TEXTURE_CUBE_MAP_POSITIVE_X&&xe<=t.TEXTURE_CUBE_MAP_NEGATIVE_Z)&&t.framebufferTexture2D(t.FRAMEBUFFER,pe,xe,i.get(K).__webglTexture,fe),n.bindFramebuffer(t.FRAMEBUFFER,null)}function le(F,L,K){if(t.bindRenderbuffer(t.RENDERBUFFER,F),L.depthBuffer&&!L.stencilBuffer){let pe=o===!0?t.DEPTH_COMPONENT24:t.DEPTH_COMPONENT16;if(K||ie(L)){const xe=L.depthTexture;xe&&xe.isDepthTexture&&(xe.type===zl?pe=t.DEPTH_COMPONENT32F:xe.type===hu&&(pe=t.DEPTH_COMPONENT24));const fe=ae(L);ie(L)?p.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,fe,pe,L.width,L.height):t.renderbufferStorageMultisample(t.RENDERBUFFER,fe,pe,L.width,L.height)}else t.renderbufferStorage(t.RENDERBUFFER,pe,L.width,L.height);t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,F)}else if(L.depthBuffer&&L.stencilBuffer){const pe=ae(L);K&&ie(L)===!1?t.renderbufferStorageMultisample(t.RENDERBUFFER,pe,t.DEPTH24_STENCIL8,L.width,L.height):ie(L)?p.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,pe,t.DEPTH24_STENCIL8,L.width,L.height):t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,L.width,L.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,F)}else{const pe=L.isWebGLMultipleRenderTargets===!0?L.texture:[L.texture];for(let xe=0;xe<pe.length;xe++){const fe=pe[xe],Ke=a.convert(fe.format,fe.colorSpace),ke=a.convert(fe.type),$e=U(fe.internalFormat,Ke,ke,fe.colorSpace),rt=ae(L);K&&ie(L)===!1?t.renderbufferStorageMultisample(t.RENDERBUFFER,rt,$e,L.width,L.height):ie(L)?p.renderbufferStorageMultisampleEXT(t.RENDERBUFFER,rt,$e,L.width,L.height):t.renderbufferStorage(t.RENDERBUFFER,$e,L.width,L.height)}}t.bindRenderbuffer(t.RENDERBUFFER,null)}function ct(F,L){if(L&&L.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(n.bindFramebuffer(t.FRAMEBUFFER,F),!(L.depthTexture&&L.depthTexture.isDepthTexture))throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");(!i.get(L.depthTexture).__webglTexture||L.depthTexture.image.width!==L.width||L.depthTexture.image.height!==L.height)&&(L.depthTexture.image.width=L.width,L.depthTexture.image.height=L.height,L.depthTexture.needsUpdate=!0),se(L.depthTexture,0);const pe=i.get(L.depthTexture).__webglTexture,xe=ae(L);if(L.depthTexture.format===jd)ie(L)?p.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,pe,0,xe):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,pe,0);else if(L.depthTexture.format===Mp)ie(L)?p.framebufferTexture2DMultisampleEXT(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,pe,0,xe):t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,pe,0);else throw new Error("Unknown depthTexture format")}function z(F){const L=i.get(F),K=F.isWebGLCubeRenderTarget===!0;if(F.depthTexture&&!L.__autoAllocateDepthBuffer){if(K)throw new Error("target.depthTexture not supported in Cube render targets");ct(L.__webglFramebuffer,F)}else if(K){L.__webglDepthbuffer=[];for(let pe=0;pe<6;pe++)n.bindFramebuffer(t.FRAMEBUFFER,L.__webglFramebuffer[pe]),L.__webglDepthbuffer[pe]=t.createRenderbuffer(),le(L.__webglDepthbuffer[pe],F,!1)}else n.bindFramebuffer(t.FRAMEBUFFER,L.__webglFramebuffer),L.__webglDepthbuffer=t.createRenderbuffer(),le(L.__webglDepthbuffer,F,!1);n.bindFramebuffer(t.FRAMEBUFFER,null)}function V(F,L,K){const pe=i.get(F);L!==void 0&&Be(pe.__webglFramebuffer,F,F.texture,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,0),K!==void 0&&z(F)}function ne(F){const L=F.texture,K=i.get(F),pe=i.get(L);F.addEventListener("dispose",I),F.isWebGLMultipleRenderTargets!==!0&&(pe.__webglTexture===void 0&&(pe.__webglTexture=t.createTexture()),pe.__version=L.version,s.memory.textures++);const xe=F.isWebGLCubeRenderTarget===!0,fe=F.isWebGLMultipleRenderTargets===!0,Ke=A(F)||o;if(xe){K.__webglFramebuffer=[];for(let ke=0;ke<6;ke++)if(o&&L.mipmaps&&L.mipmaps.length>0){K.__webglFramebuffer[ke]=[];for(let $e=0;$e<L.mipmaps.length;$e++)K.__webglFramebuffer[ke][$e]=t.createFramebuffer()}else K.__webglFramebuffer[ke]=t.createFramebuffer()}else{if(o&&L.mipmaps&&L.mipmaps.length>0){K.__webglFramebuffer=[];for(let ke=0;ke<L.mipmaps.length;ke++)K.__webglFramebuffer[ke]=t.createFramebuffer()}else K.__webglFramebuffer=t.createFramebuffer();if(fe)if(r.drawBuffers){const ke=F.texture;for(let $e=0,rt=ke.length;$e<rt;$e++){const Ue=i.get(ke[$e]);Ue.__webglTexture===void 0&&(Ue.__webglTexture=t.createTexture(),s.memory.textures++)}}else console.warn("THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.");if(o&&F.samples>0&&ie(F)===!1){const ke=fe?L:[L];K.__webglMultisampledFramebuffer=t.createFramebuffer(),K.__webglColorRenderbuffer=[],n.bindFramebuffer(t.FRAMEBUFFER,K.__webglMultisampledFramebuffer);for(let $e=0;$e<ke.length;$e++){const rt=ke[$e];K.__webglColorRenderbuffer[$e]=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,K.__webglColorRenderbuffer[$e]);const Ue=a.convert(rt.format,rt.colorSpace),De=a.convert(rt.type),ut=U(rt.internalFormat,Ue,De,rt.colorSpace,F.isXRRenderTarget===!0),et=ae(F);t.renderbufferStorageMultisample(t.RENDERBUFFER,et,ut,F.width,F.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+$e,t.RENDERBUFFER,K.__webglColorRenderbuffer[$e])}t.bindRenderbuffer(t.RENDERBUFFER,null),F.depthBuffer&&(K.__webglDepthRenderbuffer=t.createRenderbuffer(),le(K.__webglDepthRenderbuffer,F,!0)),n.bindFramebuffer(t.FRAMEBUFFER,null)}}if(xe){n.bindTexture(t.TEXTURE_CUBE_MAP,pe.__webglTexture),be(t.TEXTURE_CUBE_MAP,L,Ke);for(let ke=0;ke<6;ke++)if(o&&L.mipmaps&&L.mipmaps.length>0)for(let $e=0;$e<L.mipmaps.length;$e++)Be(K.__webglFramebuffer[ke][$e],F,L,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+ke,$e);else Be(K.__webglFramebuffer[ke],F,L,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+ke,0);D(L,Ke)&&C(t.TEXTURE_CUBE_MAP),n.unbindTexture()}else if(fe){const ke=F.texture;for(let $e=0,rt=ke.length;$e<rt;$e++){const Ue=ke[$e],De=i.get(Ue);n.bindTexture(t.TEXTURE_2D,De.__webglTexture),be(t.TEXTURE_2D,Ue,Ke),Be(K.__webglFramebuffer,F,Ue,t.COLOR_ATTACHMENT0+$e,t.TEXTURE_2D,0),D(Ue,Ke)&&C(t.TEXTURE_2D)}n.unbindTexture()}else{let ke=t.TEXTURE_2D;if((F.isWebGL3DRenderTarget||F.isWebGLArrayRenderTarget)&&(o?ke=F.isWebGL3DRenderTarget?t.TEXTURE_3D:t.TEXTURE_2D_ARRAY:console.error("THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.")),n.bindTexture(ke,pe.__webglTexture),be(ke,L,Ke),o&&L.mipmaps&&L.mipmaps.length>0)for(let $e=0;$e<L.mipmaps.length;$e++)Be(K.__webglFramebuffer[$e],F,L,t.COLOR_ATTACHMENT0,ke,$e);else Be(K.__webglFramebuffer,F,L,t.COLOR_ATTACHMENT0,ke,0);D(L,Ke)&&C(ke),n.unbindTexture()}F.depthBuffer&&z(F)}function J(F){const L=A(F)||o,K=F.isWebGLMultipleRenderTargets===!0?F.texture:[F.texture];for(let pe=0,xe=K.length;pe<xe;pe++){const fe=K[pe];if(D(fe,L)){const Ke=F.isWebGLCubeRenderTarget?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D,ke=i.get(fe).__webglTexture;n.bindTexture(Ke,ke),C(Ke),n.unbindTexture()}}}function ee(F){if(o&&F.samples>0&&ie(F)===!1){const L=F.isWebGLMultipleRenderTargets?F.texture:[F.texture],K=F.width,pe=F.height;let xe=t.COLOR_BUFFER_BIT;const fe=[],Ke=F.stencilBuffer?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,ke=i.get(F),$e=F.isWebGLMultipleRenderTargets===!0;if($e)for(let rt=0;rt<L.length;rt++)n.bindFramebuffer(t.FRAMEBUFFER,ke.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+rt,t.RENDERBUFFER,null),n.bindFramebuffer(t.FRAMEBUFFER,ke.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+rt,t.TEXTURE_2D,null,0);n.bindFramebuffer(t.READ_FRAMEBUFFER,ke.__webglMultisampledFramebuffer),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,ke.__webglFramebuffer);for(let rt=0;rt<L.length;rt++){fe.push(t.COLOR_ATTACHMENT0+rt),F.depthBuffer&&fe.push(Ke);const Ue=ke.__ignoreDepthValues!==void 0?ke.__ignoreDepthValues:!1;if(Ue===!1&&(F.depthBuffer&&(xe|=t.DEPTH_BUFFER_BIT),F.stencilBuffer&&(xe|=t.STENCIL_BUFFER_BIT)),$e&&t.framebufferRenderbuffer(t.READ_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,ke.__webglColorRenderbuffer[rt]),Ue===!0&&(t.invalidateFramebuffer(t.READ_FRAMEBUFFER,[Ke]),t.invalidateFramebuffer(t.DRAW_FRAMEBUFFER,[Ke])),$e){const De=i.get(L[rt]).__webglTexture;t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,De,0)}t.blitFramebuffer(0,0,K,pe,0,0,K,pe,xe,t.NEAREST),m&&t.invalidateFramebuffer(t.READ_FRAMEBUFFER,fe)}if(n.bindFramebuffer(t.READ_FRAMEBUFFER,null),n.bindFramebuffer(t.DRAW_FRAMEBUFFER,null),$e)for(let rt=0;rt<L.length;rt++){n.bindFramebuffer(t.FRAMEBUFFER,ke.__webglMultisampledFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0+rt,t.RENDERBUFFER,ke.__webglColorRenderbuffer[rt]);const Ue=i.get(L[rt]).__webglTexture;n.bindFramebuffer(t.FRAMEBUFFER,ke.__webglFramebuffer),t.framebufferTexture2D(t.DRAW_FRAMEBUFFER,t.COLOR_ATTACHMENT0+rt,t.TEXTURE_2D,Ue,0)}n.bindFramebuffer(t.DRAW_FRAMEBUFFER,ke.__webglMultisampledFramebuffer)}}function ae(F){return Math.min(f,F.samples)}function ie(F){const L=i.get(F);return o&&F.samples>0&&e.has("WEBGL_multisampled_render_to_texture")===!0&&L.__useRenderToTexture!==!1}function we(F){const L=s.render.frame;y.get(F)!==L&&(y.set(F,L),F.update())}function ve(F,L){const K=F.colorSpace,pe=F.format,xe=F.type;return F.isCompressedTexture===!0||F.isVideoTexture===!0||F.format===_R||K!==Ql&&K!==Ns&&(kn.getTransfer(K)===Yn?o===!1?e.has("EXT_sRGB")===!0&&pe===Ds?(F.format=_R,F.minFilter=Ps,F.generateMipmaps=!1):L=s$.sRGBToLinear(L):(pe!==Ds||xe!==Su)&&console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture color space:",K)),L}this.allocateTextureUnit=Y,this.resetTextureUnits=G,this.setTexture2D=se,this.setTexture2DArray=H,this.setTexture3D=X,this.setTextureCube=re,this.rebindTextures=V,this.setupRenderTarget=ne,this.updateRenderTargetMipmap=J,this.updateMultisampleRenderTarget=ee,this.setupDepthRenderbuffer=z,this.setupFrameBufferTexture=Be,this.useMultisampledRTT=ie}function Q0e(t,e,n){const i=n.isWebGL2;function r(a,s=Ns){let o;const l=kn.getTransfer(s);if(a===Su)return t.UNSIGNED_BYTE;if(a===YG)return t.UNSIGNED_SHORT_4_4_4_4;if(a===KG)return t.UNSIGNED_SHORT_5_5_5_1;if(a===wfe)return t.BYTE;if(a===Mfe)return t.SHORT;if(a===$P)return t.UNSIGNED_SHORT;if(a===XG)return t.INT;if(a===hu)return t.UNSIGNED_INT;if(a===zl)return t.FLOAT;if(a===v0)return i?t.HALF_FLOAT:(o=e.get("OES_texture_half_float"),o!==null?o.HALF_FLOAT_OES:null);if(a===Efe)return t.ALPHA;if(a===Ds)return t.RGBA;if(a===Afe)return t.LUMINANCE;if(a===Tfe)return t.LUMINANCE_ALPHA;if(a===jd)return t.DEPTH_COMPONENT;if(a===Mp)return t.DEPTH_STENCIL;if(a===_R)return o=e.get("EXT_sRGB"),o!==null?o.SRGB_ALPHA_EXT:null;if(a===Cfe)return t.RED;if(a===ZG)return t.RED_INTEGER;if(a===Rfe)return t.RG;if(a===JG)return t.RG_INTEGER;if(a===QG)return t.RGBA_INTEGER;if(a===hA||a===pA||a===mA||a===gA)if(l===Yn)if(o=e.get("WEBGL_compressed_texture_s3tc_srgb"),o!==null){if(a===hA)return o.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(a===pA)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(a===mA)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(a===gA)return o.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(o=e.get("WEBGL_compressed_texture_s3tc"),o!==null){if(a===hA)return o.COMPRESSED_RGB_S3TC_DXT1_EXT;if(a===pA)return o.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(a===mA)return o.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(a===gA)return o.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(a===Cz||a===Rz||a===Pz||a===Dz)if(o=e.get("WEBGL_compressed_texture_pvrtc"),o!==null){if(a===Cz)return o.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(a===Rz)return o.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(a===Pz)return o.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(a===Dz)return o.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(a===e$)return o=e.get("WEBGL_compressed_texture_etc1"),o!==null?o.COMPRESSED_RGB_ETC1_WEBGL:null;if(a===Nz||a===Oz)if(o=e.get("WEBGL_compressed_texture_etc"),o!==null){if(a===Nz)return l===Yn?o.COMPRESSED_SRGB8_ETC2:o.COMPRESSED_RGB8_ETC2;if(a===Oz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:o.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(a===Lz||a===kz||a===Iz||a===Uz||a===Fz||a===zz||a===Bz||a===jz||a===Hz||a===Vz||a===Gz||a===$z||a===Wz||a===qz)if(o=e.get("WEBGL_compressed_texture_astc"),o!==null){if(a===Lz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:o.COMPRESSED_RGBA_ASTC_4x4_KHR;if(a===kz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:o.COMPRESSED_RGBA_ASTC_5x4_KHR;if(a===Iz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:o.COMPRESSED_RGBA_ASTC_5x5_KHR;if(a===Uz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:o.COMPRESSED_RGBA_ASTC_6x5_KHR;if(a===Fz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:o.COMPRESSED_RGBA_ASTC_6x6_KHR;if(a===zz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:o.COMPRESSED_RGBA_ASTC_8x5_KHR;if(a===Bz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:o.COMPRESSED_RGBA_ASTC_8x6_KHR;if(a===jz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:o.COMPRESSED_RGBA_ASTC_8x8_KHR;if(a===Hz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:o.COMPRESSED_RGBA_ASTC_10x5_KHR;if(a===Vz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:o.COMPRESSED_RGBA_ASTC_10x6_KHR;if(a===Gz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:o.COMPRESSED_RGBA_ASTC_10x8_KHR;if(a===$z)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:o.COMPRESSED_RGBA_ASTC_10x10_KHR;if(a===Wz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:o.COMPRESSED_RGBA_ASTC_12x10_KHR;if(a===qz)return l===Yn?o.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:o.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(a===vA||a===Xz||a===Yz)if(o=e.get("EXT_texture_compression_bptc"),o!==null){if(a===vA)return l===Yn?o.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:o.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(a===Xz)return o.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(a===Yz)return o.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(a===Pfe||a===Kz||a===Zz||a===Jz)if(o=e.get("EXT_texture_compression_rgtc"),o!==null){if(a===vA)return o.COMPRESSED_RED_RGTC1_EXT;if(a===Kz)return o.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(a===Zz)return o.COMPRESSED_RED_GREEN_RGTC2_EXT;if(a===Jz)return o.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return a===Bd?i?t.UNSIGNED_INT_24_8:(o=e.get("WEBGL_depth_texture"),o!==null?o.UNSIGNED_INT_24_8_WEBGL:null):t[a]!==void 0?t[a]:null}return{convert:r}}class eve extends Ja{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class Ng extends fa{constructor(){super(),this.isGroup=!0,this.type="Group"}}const tve={type:"move"};class BA{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&&(this._hand=new Ng,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&&(this._targetRay=new Ng,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Ce,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Ce),this._targetRay}getGripSpace(){return this._grip===null&&(this._grip=new Ng,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Ce,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Ce),this._grip}dispatchEvent(e){return this._targetRay!==null&&this._targetRay.dispatchEvent(e),this._grip!==null&&this._grip.dispatchEvent(e),this._hand!==null&&this._hand.dispatchEvent(e),this}connect(e){if(e&&e.hand){const n=this._hand;if(n)for(const i of e.hand.values())this._getHandJoint(n,i)}return this.dispatchEvent({type:"connected",data:e}),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),this._targetRay!==null&&(this._targetRay.visible=!1),this._grip!==null&&(this._grip.visible=!1),this._hand!==null&&(this._hand.visible=!1),this}update(e,n,i){let r=null,a=null,s=null;const o=this._targetRay,l=this._grip,c=this._hand;if(e&&n.session.visibilityState!=="visible-blurred"){if(c&&e.hand){s=!0;for(const b of e.hand.values()){const x=n.getJointPose(b,i),v=this._getHandJoint(c,b);x!==null&&(v.matrix.fromArray(x.transform.matrix),v.matrix.decompose(v.position,v.rotation,v.scale),v.matrixWorldNeedsUpdate=!0,v.jointRadius=x.radius),v.visible=x!==null}const d=c.joints["index-finger-tip"],f=c.joints["thumb-tip"],p=d.position.distanceTo(f.position),m=.02,y=.005;c.inputState.pinching&&p>m+y?(c.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!c.inputState.pinching&&p<=m-y&&(c.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else l!==null&&e.gripSpace&&(a=n.getPose(e.gripSpace,i),a!==null&&(l.matrix.fromArray(a.transform.matrix),l.matrix.decompose(l.position,l.rotation,l.scale),l.matrixWorldNeedsUpdate=!0,a.linearVelocity?(l.hasLinearVelocity=!0,l.linearVelocity.copy(a.linearVelocity)):l.hasLinearVelocity=!1,a.angularVelocity?(l.hasAngularVelocity=!0,l.angularVelocity.copy(a.angularVelocity)):l.hasAngularVelocity=!1));o!==null&&(r=n.getPose(e.targetRaySpace,i),r===null&&a!==null&&(r=a),r!==null&&(o.matrix.fromArray(r.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),o.matrixWorldNeedsUpdate=!0,r.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(r.linearVelocity)):o.hasLinearVelocity=!1,r.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(r.angularVelocity)):o.hasAngularVelocity=!1,this.dispatchEvent(tve)))}return o!==null&&(o.visible=r!==null),l!==null&&(l.visible=a!==null),c!==null&&(c.visible=s!==null),this}_getHandJoint(e,n){if(e.joints[n.jointName]===void 0){const i=new Ng;i.matrixAutoUpdate=!1,i.visible=!1,e.joints[n.jointName]=i,e.add(i)}return e.joints[n.jointName]}}class nve extends Af{constructor(e,n){super();const i=this;let r=null,a=1,s=null,o="local-floor",l=1,c=null,d=null,f=null,p=null,m=null,y=null;const b=n.getContextAttributes();let x=null,v=null;const w=[],M=[],A=new Ht;let T=null;const D=new Ja;D.layers.enable(1),D.viewport=new Un;const C=new Ja;C.layers.enable(2),C.viewport=new Un;const U=[D,C],P=new eve;P.layers.enable(1),P.layers.enable(2);let k=null,B=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(re){let ce=w[re];return ce===void 0&&(ce=new BA,w[re]=ce),ce.getTargetRaySpace()},this.getControllerGrip=function(re){let ce=w[re];return ce===void 0&&(ce=new BA,w[re]=ce),ce.getGripSpace()},this.getHand=function(re){let ce=w[re];return ce===void 0&&(ce=new BA,w[re]=ce),ce.getHandSpace()};function I(re){const ce=M.indexOf(re.inputSource);if(ce===-1)return;const ye=w[ce];ye!==void 0&&(ye.update(re.inputSource,re.frame,c||s),ye.dispatchEvent({type:re.type,data:re.inputSource}))}function W(){r.removeEventListener("select",I),r.removeEventListener("selectstart",I),r.removeEventListener("selectend",I),r.removeEventListener("squeeze",I),r.removeEventListener("squeezestart",I),r.removeEventListener("squeezeend",I),r.removeEventListener("end",W),r.removeEventListener("inputsourceschange",O);for(let re=0;re<w.length;re++){const ce=M[re];ce!==null&&(M[re]=null,w[re].disconnect(ce))}k=null,B=null,e.setRenderTarget(x),m=null,p=null,f=null,r=null,v=null,X.stop(),i.isPresenting=!1,e.setPixelRatio(T),e.setSize(A.width,A.height,!1),i.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(re){a=re,i.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(re){o=re,i.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||s},this.setReferenceSpace=function(re){c=re},this.getBaseLayer=function(){return p!==null?p:m},this.getBinding=function(){return f},this.getFrame=function(){return y},this.getSession=function(){return r},this.setSession=async function(re){if(r=re,r!==null){if(x=e.getRenderTarget(),r.addEventListener("select",I),r.addEventListener("selectstart",I),r.addEventListener("selectend",I),r.addEventListener("squeeze",I),r.addEventListener("squeezestart",I),r.addEventListener("squeezeend",I),r.addEventListener("end",W),r.addEventListener("inputsourceschange",O),b.xrCompatible!==!0&&await n.makeXRCompatible(),T=e.getPixelRatio(),e.getSize(A),r.renderState.layers===void 0||e.capabilities.isWebGL2===!1){const ce={antialias:r.renderState.layers===void 0?b.antialias:!0,alpha:!0,depth:b.depth,stencil:b.stencil,framebufferScaleFactor:a};m=new XRWebGLLayer(r,n,ce),r.updateRenderState({baseLayer:m}),e.setPixelRatio(1),e.setSize(m.framebufferWidth,m.framebufferHeight,!1),v=new cf(m.framebufferWidth,m.framebufferHeight,{format:Ds,type:Su,colorSpace:e.outputColorSpace,stencilBuffer:b.stencil})}else{let ce=null,ye=null,me=null;b.depth&&(me=b.stencil?n.DEPTH24_STENCIL8:n.DEPTH_COMPONENT24,ce=b.stencil?Mp:jd,ye=b.stencil?Bd:hu);const be={colorFormat:n.RGBA8,depthFormat:me,scaleFactor:a};f=new XRWebGLBinding(r,n),p=f.createProjectionLayer(be),r.updateRenderState({layers:[p]}),e.setPixelRatio(1),e.setSize(p.textureWidth,p.textureHeight,!1),v=new cf(p.textureWidth,p.textureHeight,{format:Ds,type:Su,depthTexture:new x$(p.textureWidth,p.textureHeight,ye,void 0,void 0,void 0,void 0,void 0,void 0,ce),stencilBuffer:b.stencil,colorSpace:e.outputColorSpace,samples:b.antialias?4:0});const Ne=e.properties.get(v);Ne.__ignoreDepthValues=p.ignoreDepthValues}v.isXRRenderTarget=!0,this.setFoveation(l),c=null,s=await r.requestReferenceSpace(o),X.setContext(r),X.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}},this.getEnvironmentBlendMode=function(){if(r!==null)return r.environmentBlendMode};function O(re){for(let ce=0;ce<re.removed.length;ce++){const ye=re.removed[ce],me=M.indexOf(ye);me>=0&&(M[me]=null,w[me].disconnect(ye))}for(let ce=0;ce<re.added.length;ce++){const ye=re.added[ce];let me=M.indexOf(ye);if(me===-1){for(let Ne=0;Ne<w.length;Ne++)if(Ne>=M.length){M.push(ye),me=Ne;break}else if(M[Ne]===null){M[Ne]=ye,me=Ne;break}if(me===-1)break}const be=w[me];be&&be.connect(ye)}}const $=new Ce,q=new Ce;function G(re,ce,ye){$.setFromMatrixPosition(ce.matrixWorld),q.setFromMatrixPosition(ye.matrixWorld);const me=$.distanceTo(q),be=ce.projectionMatrix.elements,Ne=ye.projectionMatrix.elements,he=be[14]/(be[10]-1),Ae=be[14]/(be[10]+1),Be=(be[9]+1)/be[5],le=(be[9]-1)/be[5],ct=(be[8]-1)/be[0],z=(Ne[8]+1)/Ne[0],V=he*ct,ne=he*z,J=me/(-ct+z),ee=J*-ct;ce.matrixWorld.decompose(re.position,re.quaternion,re.scale),re.translateX(ee),re.translateZ(J),re.matrixWorld.compose(re.position,re.quaternion,re.scale),re.matrixWorldInverse.copy(re.matrixWorld).invert();const ae=he+J,ie=Ae+J,we=V-ee,ve=ne+(me-ee),F=Be*Ae/ie*ae,L=le*Ae/ie*ae;re.projectionMatrix.makePerspective(we,ve,F,L,ae,ie),re.projectionMatrixInverse.copy(re.projectionMatrix).invert()}function Y(re,ce){ce===null?re.matrixWorld.copy(re.matrix):re.matrixWorld.multiplyMatrices(ce.matrixWorld,re.matrix),re.matrixWorldInverse.copy(re.matrixWorld).invert()}this.updateCamera=function(re){if(r===null)return;P.near=C.near=D.near=re.near,P.far=C.far=D.far=re.far,(k!==P.near||B!==P.far)&&(r.updateRenderState({depthNear:P.near,depthFar:P.far}),k=P.near,B=P.far);const ce=re.parent,ye=P.cameras;Y(P,ce);for(let me=0;me<ye.length;me++)Y(ye[me],ce);ye.length===2?G(P,D,C):P.projectionMatrix.copy(D.projectionMatrix),Q(re,P,ce)};function Q(re,ce,ye){ye===null?re.matrix.copy(ce.matrixWorld):(re.matrix.copy(ye.matrixWorld),re.matrix.invert(),re.matrix.multiply(ce.matrixWorld)),re.matrix.decompose(re.position,re.quaternion,re.scale),re.updateMatrixWorld(!0),re.projectionMatrix.copy(ce.projectionMatrix),re.projectionMatrixInverse.copy(ce.projectionMatrixInverse),re.isPerspectiveCamera&&(re.fov=y0*2*Math.atan(1/re.projectionMatrix.elements[5]),re.zoom=1)}this.getCamera=function(){return P},this.getFoveation=function(){if(!(p===null&&m===null))return l},this.setFoveation=function(re){l=re,p!==null&&(p.fixedFoveation=re),m!==null&&m.fixedFoveation!==void 0&&(m.fixedFoveation=re)};let se=null;function H(re,ce){if(d=ce.getViewerPose(c||s),y=ce,d!==null){const ye=d.views;m!==null&&(e.setRenderTargetFramebuffer(v,m.framebuffer),e.setRenderTarget(v));let me=!1;ye.length!==P.cameras.length&&(P.cameras.length=0,me=!0);for(let be=0;be<ye.length;be++){const Ne=ye[be];let he=null;if(m!==null)he=m.getViewport(Ne);else{const Be=f.getViewSubImage(p,Ne);he=Be.viewport,be===0&&(e.setRenderTargetTextures(v,Be.colorTexture,p.ignoreDepthValues?void 0:Be.depthStencilTexture),e.setRenderTarget(v))}let Ae=U[be];Ae===void 0&&(Ae=new Ja,Ae.layers.enable(be),Ae.viewport=new Un,U[be]=Ae),Ae.matrix.fromArray(Ne.transform.matrix),Ae.matrix.decompose(Ae.position,Ae.quaternion,Ae.scale),Ae.projectionMatrix.fromArray(Ne.projectionMatrix),Ae.projectionMatrixInverse.copy(Ae.projectionMatrix).invert(),Ae.viewport.set(he.x,he.y,he.width,he.height),be===0&&(P.matrix.copy(Ae.matrix),P.matrix.decompose(P.position,P.quaternion,P.scale)),me===!0&&P.cameras.push(Ae)}}for(let ye=0;ye<w.length;ye++){const me=M[ye],be=w[ye];me!==null&&be!==void 0&&be.update(me,ce,c||s)}se&&se(re,ce),ce.detectedPlanes&&i.dispatchEvent({type:"planesdetected",data:ce}),y=null}const X=new v$;X.setAnimationLoop(H),this.setAnimationLoop=function(re){se=re},this.dispose=function(){}}}function ive(t,e){function n(x,v){x.matrixAutoUpdate===!0&&x.updateMatrix(),v.value.copy(x.matrix)}function i(x,v){v.color.getRGB(x.fogColor.value,p$(t)),v.isFog?(x.fogNear.value=v.near,x.fogFar.value=v.far):v.isFogExp2&&(x.fogDensity.value=v.density)}function r(x,v,w,M,A){v.isMeshBasicMaterial||v.isMeshLambertMaterial?a(x,v):v.isMeshToonMaterial?(a(x,v),f(x,v)):v.isMeshPhongMaterial?(a(x,v),d(x,v)):v.isMeshStandardMaterial?(a(x,v),p(x,v),v.isMeshPhysicalMaterial&&m(x,v,A)):v.isMeshMatcapMaterial?(a(x,v),y(x,v)):v.isMeshDepthMaterial?a(x,v):v.isMeshDistanceMaterial?(a(x,v),b(x,v)):v.isMeshNormalMaterial?a(x,v):v.isLineBasicMaterial?(s(x,v),v.isLineDashedMaterial&&o(x,v)):v.isPointsMaterial?l(x,v,w,M):v.isSpriteMaterial?c(x,v):v.isShadowMaterial?(x.color.value.copy(v.color),x.opacity.value=v.opacity):v.isShaderMaterial&&(v.uniformsNeedUpdate=!1)}function a(x,v){x.opacity.value=v.opacity,v.color&&x.diffuse.value.copy(v.color),v.emissive&&x.emissive.value.copy(v.emissive).multiplyScalar(v.emissiveIntensity),v.map&&(x.map.value=v.map,n(v.map,x.mapTransform)),v.alphaMap&&(x.alphaMap.value=v.alphaMap,n(v.alphaMap,x.alphaMapTransform)),v.bumpMap&&(x.bumpMap.value=v.bumpMap,n(v.bumpMap,x.bumpMapTransform),x.bumpScale.value=v.bumpScale,v.side===Da&&(x.bumpScale.value*=-1)),v.normalMap&&(x.normalMap.value=v.normalMap,n(v.normalMap,x.normalMapTransform),x.normalScale.value.copy(v.normalScale),v.side===Da&&x.normalScale.value.negate()),v.displacementMap&&(x.displacementMap.value=v.displacementMap,n(v.displacementMap,x.displacementMapTransform),x.displacementScale.value=v.displacementScale,x.displacementBias.value=v.displacementBias),v.emissiveMap&&(x.emissiveMap.value=v.emissiveMap,n(v.emissiveMap,x.emissiveMapTransform)),v.specularMap&&(x.specularMap.value=v.specularMap,n(v.specularMap,x.specularMapTransform)),v.alphaTest>0&&(x.alphaTest.value=v.alphaTest);const w=e.get(v).envMap;if(w&&(x.envMap.value=w,x.flipEnvMap.value=w.isCubeTexture&&w.isRenderTargetTexture===!1?-1:1,x.reflectivity.value=v.reflectivity,x.ior.value=v.ior,x.refractionRatio.value=v.refractionRatio),v.lightMap){x.lightMap.value=v.lightMap;const M=t._useLegacyLights===!0?Math.PI:1;x.lightMapIntensity.value=v.lightMapIntensity*M,n(v.lightMap,x.lightMapTransform)}v.aoMap&&(x.aoMap.value=v.aoMap,x.aoMapIntensity.value=v.aoMapIntensity,n(v.aoMap,x.aoMapTransform))}function s(x,v){x.diffuse.value.copy(v.color),x.opacity.value=v.opacity,v.map&&(x.map.value=v.map,n(v.map,x.mapTransform))}function o(x,v){x.dashSize.value=v.dashSize,x.totalSize.value=v.dashSize+v.gapSize,x.scale.value=v.scale}function l(x,v,w,M){x.diffuse.value.copy(v.color),x.opacity.value=v.opacity,x.size.value=v.size*w,x.scale.value=M*.5,v.map&&(x.map.value=v.map,n(v.map,x.uvTransform)),v.alphaMap&&(x.alphaMap.value=v.alphaMap,n(v.alphaMap,x.alphaMapTransform)),v.alphaTest>0&&(x.alphaTest.value=v.alphaTest)}function c(x,v){x.diffuse.value.copy(v.color),x.opacity.value=v.opacity,x.rotation.value=v.rotation,v.map&&(x.map.value=v.map,n(v.map,x.mapTransform)),v.alphaMap&&(x.alphaMap.value=v.alphaMap,n(v.alphaMap,x.alphaMapTransform)),v.alphaTest>0&&(x.alphaTest.value=v.alphaTest)}function d(x,v){x.specular.value.copy(v.specular),x.shininess.value=Math.max(v.shininess,1e-4)}function f(x,v){v.gradientMap&&(x.gradientMap.value=v.gradientMap)}function p(x,v){x.metalness.value=v.metalness,v.metalnessMap&&(x.metalnessMap.value=v.metalnessMap,n(v.metalnessMap,x.metalnessMapTransform)),x.roughness.value=v.roughness,v.roughnessMap&&(x.roughnessMap.value=v.roughnessMap,n(v.roughnessMap,x.roughnessMapTransform)),e.get(v).envMap&&(x.envMapIntensity.value=v.envMapIntensity)}function m(x,v,w){x.ior.value=v.ior,v.sheen>0&&(x.sheenColor.value.copy(v.sheenColor).multiplyScalar(v.sheen),x.sheenRoughness.value=v.sheenRoughness,v.sheenColorMap&&(x.sheenColorMap.value=v.sheenColorMap,n(v.sheenColorMap,x.sheenColorMapTransform)),v.sheenRoughnessMap&&(x.sheenRoughnessMap.value=v.sheenRoughnessMap,n(v.sheenRoughnessMap,x.sheenRoughnessMapTransform))),v.clearcoat>0&&(x.clearcoat.value=v.clearcoat,x.clearcoatRoughness.value=v.clearcoatRoughness,v.clearcoatMap&&(x.clearcoatMap.value=v.clearcoatMap,n(v.clearcoatMap,x.clearcoatMapTransform)),v.clearcoatRoughnessMap&&(x.clearcoatRoughnessMap.value=v.clearcoatRoughnessMap,n(v.clearcoatRoughnessMap,x.clearcoatRoughnessMapTransform)),v.clearcoatNormalMap&&(x.clearcoatNormalMap.value=v.clearcoatNormalMap,n(v.clearcoatNormalMap,x.clearcoatNormalMapTransform),x.clearcoatNormalScale.value.copy(v.clearcoatNormalScale),v.side===Da&&x.clearcoatNormalScale.value.negate())),v.iridescence>0&&(x.iridescence.value=v.iridescence,x.iridescenceIOR.value=v.iridescenceIOR,x.iridescenceThicknessMinimum.value=v.iridescenceThicknessRange[0],x.iridescenceThicknessMaximum.value=v.iridescenceThicknessRange[1],v.iridescenceMap&&(x.iridescenceMap.value=v.iridescenceMap,n(v.iridescenceMap,x.iridescenceMapTransform)),v.iridescenceThicknessMap&&(x.iridescenceThicknessMap.value=v.iridescenceThicknessMap,n(v.iridescenceThicknessMap,x.iridescenceThicknessMapTransform))),v.transmission>0&&(x.transmission.value=v.transmission,x.transmissionSamplerMap.value=w.texture,x.transmissionSamplerSize.value.set(w.width,w.height),v.transmissionMap&&(x.transmissionMap.value=v.transmissionMap,n(v.transmissionMap,x.transmissionMapTransform)),x.thickness.value=v.thickness,v.thicknessMap&&(x.thicknessMap.value=v.thicknessMap,n(v.thicknessMap,x.thicknessMapTransform)),x.attenuationDistance.value=v.attenuationDistance,x.attenuationColor.value.copy(v.attenuationColor)),v.anisotropy>0&&(x.anisotropyVector.value.set(v.anisotropy*Math.cos(v.anisotropyRotation),v.anisotropy*Math.sin(v.anisotropyRotation)),v.anisotropyMap&&(x.anisotropyMap.value=v.anisotropyMap,n(v.anisotropyMap,x.anisotropyMapTransform))),x.specularIntensity.value=v.specularIntensity,x.specularColor.value.copy(v.specularColor),v.specularColorMap&&(x.specularColorMap.value=v.specularColorMap,n(v.specularColorMap,x.specularColorMapTransform)),v.specularIntensityMap&&(x.specularIntensityMap.value=v.specularIntensityMap,n(v.specularIntensityMap,x.specularIntensityMapTransform))}function y(x,v){v.matcap&&(x.matcap.value=v.matcap)}function b(x,v){const w=e.get(v).light;x.referencePosition.value.setFromMatrixPosition(w.matrixWorld),x.nearDistance.value=w.shadow.camera.near,x.farDistance.value=w.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:r}}function rve(t,e,n,i){let r={},a={},s=[];const o=n.isWebGL2?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(w,M){const A=M.program;i.uniformBlockBinding(w,A)}function c(w,M){let A=r[w.id];A===void 0&&(y(w),A=d(w),r[w.id]=A,w.addEventListener("dispose",x));const T=M.program;i.updateUBOMapping(w,T);const D=e.render.frame;a[w.id]!==D&&(p(w),a[w.id]=D)}function d(w){const M=f();w.__bindingPointIndex=M;const A=t.createBuffer(),T=w.__size,D=w.usage;return t.bindBuffer(t.UNIFORM_BUFFER,A),t.bufferData(t.UNIFORM_BUFFER,T,D),t.bindBuffer(t.UNIFORM_BUFFER,null),t.bindBufferBase(t.UNIFORM_BUFFER,M,A),A}function f(){for(let w=0;w<o;w++)if(s.indexOf(w)===-1)return s.push(w),w;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}function p(w){const M=r[w.id],A=w.uniforms,T=w.__cache;t.bindBuffer(t.UNIFORM_BUFFER,M);for(let D=0,C=A.length;D<C;D++){const U=A[D];if(m(U,D,T)===!0){const P=U.__offset,k=Array.isArray(U.value)?U.value:[U.value];let B=0;for(let I=0;I<k.length;I++){const W=k[I],O=b(W);typeof W=="number"?(U.__data[0]=W,t.bufferSubData(t.UNIFORM_BUFFER,P+B,U.__data)):W.isMatrix3?(U.__data[0]=W.elements[0],U.__data[1]=W.elements[1],U.__data[2]=W.elements[2],U.__data[3]=W.elements[0],U.__data[4]=W.elements[3],U.__data[5]=W.elements[4],U.__data[6]=W.elements[5],U.__data[7]=W.elements[0],U.__data[8]=W.elements[6],U.__data[9]=W.elements[7],U.__data[10]=W.elements[8],U.__data[11]=W.elements[0]):(W.toArray(U.__data,B),B+=O.storage/Float32Array.BYTES_PER_ELEMENT)}t.bufferSubData(t.UNIFORM_BUFFER,P,U.__data)}}t.bindBuffer(t.UNIFORM_BUFFER,null)}function m(w,M,A){const T=w.value;if(A[M]===void 0){if(typeof T=="number")A[M]=T;else{const D=Array.isArray(T)?T:[T],C=[];for(let U=0;U<D.length;U++)C.push(D[U].clone());A[M]=C}return!0}else if(typeof T=="number"){if(A[M]!==T)return A[M]=T,!0}else{const D=Array.isArray(A[M])?A[M]:[A[M]],C=Array.isArray(T)?T:[T];for(let U=0;U<D.length;U++){const P=D[U];if(P.equals(C[U])===!1)return P.copy(C[U]),!0}}return!1}function y(w){const M=w.uniforms;let A=0;const T=16;let D=0;for(let C=0,U=M.length;C<U;C++){const P=M[C],k={boundary:0,storage:0},B=Array.isArray(P.value)?P.value:[P.value];for(let I=0,W=B.length;I<W;I++){const O=B[I],$=b(O);k.boundary+=$.boundary,k.storage+=$.storage}if(P.__data=new Float32Array(k.storage/Float32Array.BYTES_PER_ELEMENT),P.__offset=A,C>0){D=A%T;const I=T-D;D!==0&&I-k.boundary<0&&(A+=T-D,P.__offset=A)}A+=k.storage}return D=A%T,D>0&&(A+=T-D),w.__size=A,w.__cache={},this}function b(w){const M={boundary:0,storage:0};return typeof w=="number"?(M.boundary=4,M.storage=4):w.isVector2?(M.boundary=8,M.storage=8):w.isVector3||w.isColor?(M.boundary=16,M.storage=12):w.isVector4?(M.boundary=16,M.storage=16):w.isMatrix3?(M.boundary=48,M.storage=48):w.isMatrix4?(M.boundary=64,M.storage=64):w.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",w),M}function x(w){const M=w.target;M.removeEventListener("dispose",x);const A=s.indexOf(M.__bindingPointIndex);s.splice(A,1),t.deleteBuffer(r[M.id]),delete r[M.id],delete a[M.id]}function v(){for(const w in r)t.deleteBuffer(r[w]);s=[],r={},a={}}return{bind:l,update:c,dispose:v}}class MR{constructor(e={}){const{canvas:n=the(),context:i=null,depth:r=!0,stencil:a=!0,alpha:s=!1,antialias:o=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:d="default",failIfMajorPerformanceCaveat:f=!1}=e;this.isWebGLRenderer=!0;let p;i!==null?p=i.getContextAttributes().alpha:p=s;const m=new Uint32Array(4),y=new Int32Array(4);let b=null,x=null;const v=[],w=[];this.domElement=n,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=Ur,this._useLegacyLights=!1,this.toneMapping=_u,this.toneMappingExposure=1;const M=this;let A=!1,T=0,D=0,C=null,U=-1,P=null;const k=new Un,B=new Un;let I=null;const W=new Ut(0);let O=0,$=n.width,q=n.height,G=1,Y=null,Q=null;const se=new Un(0,0,$,q),H=new Un(0,0,$,q);let X=!1;const re=new lS;let ce=!1,ye=!1,me=null;const be=new $n,Ne=new Ht,he=new Ce,Ae={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function Be(){return C===null?G:1}let le=i;function ct(oe,Ie){for(let qe=0;qe<oe.length;qe++){const Xe=oe[qe],We=n.getContext(Xe,Ie);if(We!==null)return We}return null}try{const oe={alpha:!0,depth:r,stencil:a,antialias:o,premultipliedAlpha:l,preserveDrawingBuffer:c,powerPreference:d,failIfMajorPerformanceCaveat:f};if("setAttribute"in n&&n.setAttribute("data-engine",`three.js r${aS}`),n.addEventListener("webglcontextlost",tt,!1),n.addEventListener("webglcontextrestored",de,!1),n.addEventListener("webglcontextcreationerror",Le,!1),le===null){const Ie=["webgl2","webgl","experimental-webgl"];if(M.isWebGL1Renderer===!0&&Ie.shift(),le=ct(Ie,oe),le===null)throw ct(Ie)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}typeof WebGLRenderingContext<"u"&&le instanceof WebGLRenderingContext&&console.warn("THREE.WebGLRenderer: WebGL 1 support was deprecated in r153 and will be removed in r163."),le.getShaderPrecisionFormat===void 0&&(le.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(oe){throw console.error("THREE.WebGLRenderer: "+oe.message),oe}let z,V,ne,J,ee,ae,ie,we,ve,F,L,K,pe,xe,fe,Ke,ke,$e,rt,Ue,De,ut,et,Qe;function st(){z=new mge(le),V=new lge(le,z,e),z.init(V),ut=new Q0e(le,z,V),ne=new Z0e(le,z,V),J=new xge(le),ee=new U0e,ae=new J0e(le,z,ne,ee,V,ut,J),ie=new uge(M),we=new pge(M),ve=new Ehe(le,V),et=new sge(le,z,ve,V),F=new gge(le,ve,J,et),L=new Sge(le,F,ve,J),rt=new _ge(le,V,ae),Ke=new cge(ee),K=new I0e(M,ie,we,z,V,et,Ke),pe=new ive(M,ee),xe=new z0e,fe=new $0e(z,V),$e=new age(M,ie,we,ne,L,p,l),ke=new K0e(M,L,V),Qe=new rve(le,J,V,ne),Ue=new oge(le,z,J,V),De=new vge(le,z,J,V),J.programs=K.programs,M.capabilities=V,M.extensions=z,M.properties=ee,M.renderLists=xe,M.shadowMap=ke,M.state=ne,M.info=J}st();const ue=new nve(M,le);this.xr=ue,this.getContext=function(){return le},this.getContextAttributes=function(){return le.getContextAttributes()},this.forceContextLoss=function(){const oe=z.get("WEBGL_lose_context");oe&&oe.loseContext()},this.forceContextRestore=function(){const oe=z.get("WEBGL_lose_context");oe&&oe.restoreContext()},this.getPixelRatio=function(){return G},this.setPixelRatio=function(oe){oe!==void 0&&(G=oe,this.setSize($,q,!1))},this.getSize=function(oe){return oe.set($,q)},this.setSize=function(oe,Ie,qe=!0){if(ue.isPresenting){console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting.");return}$=oe,q=Ie,n.width=Math.floor(oe*G),n.height=Math.floor(Ie*G),qe===!0&&(n.style.width=oe+"px",n.style.height=Ie+"px"),this.setViewport(0,0,oe,Ie)},this.getDrawingBufferSize=function(oe){return oe.set($*G,q*G).floor()},this.setDrawingBufferSize=function(oe,Ie,qe){$=oe,q=Ie,G=qe,n.width=Math.floor(oe*qe),n.height=Math.floor(Ie*qe),this.setViewport(0,0,oe,Ie)},this.getCurrentViewport=function(oe){return oe.copy(k)},this.getViewport=function(oe){return oe.copy(se)},this.setViewport=function(oe,Ie,qe,Xe){oe.isVector4?se.set(oe.x,oe.y,oe.z,oe.w):se.set(oe,Ie,qe,Xe),ne.viewport(k.copy(se).multiplyScalar(G).floor())},this.getScissor=function(oe){return oe.copy(H)},this.setScissor=function(oe,Ie,qe,Xe){oe.isVector4?H.set(oe.x,oe.y,oe.z,oe.w):H.set(oe,Ie,qe,Xe),ne.scissor(B.copy(H).multiplyScalar(G).floor())},this.getScissorTest=function(){return X},this.setScissorTest=function(oe){ne.setScissorTest(X=oe)},this.setOpaqueSort=function(oe){Y=oe},this.setTransparentSort=function(oe){Q=oe},this.getClearColor=function(oe){return oe.copy($e.getClearColor())},this.setClearColor=function(){$e.setClearColor.apply($e,arguments)},this.getClearAlpha=function(){return $e.getClearAlpha()},this.setClearAlpha=function(){$e.setClearAlpha.apply($e,arguments)},this.clear=function(oe=!0,Ie=!0,qe=!0){let Xe=0;if(oe){let We=!1;if(C!==null){const xt=C.texture.format;We=xt===QG||xt===JG||xt===ZG}if(We){const xt=C.texture.type,Z=xt===Su||xt===hu||xt===$P||xt===Bd||xt===YG||xt===KG,_e=$e.getClearColor(),Pe=$e.getClearAlpha(),Re=_e.r,Me=_e.g,Ze=_e.b;Z?(m[0]=Re,m[1]=Me,m[2]=Ze,m[3]=Pe,le.clearBufferuiv(le.COLOR,0,m)):(y[0]=Re,y[1]=Me,y[2]=Ze,y[3]=Pe,le.clearBufferiv(le.COLOR,0,y))}else Xe|=le.COLOR_BUFFER_BIT}Ie&&(Xe|=le.DEPTH_BUFFER_BIT),qe&&(Xe|=le.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),le.clear(Xe)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){n.removeEventListener("webglcontextlost",tt,!1),n.removeEventListener("webglcontextrestored",de,!1),n.removeEventListener("webglcontextcreationerror",Le,!1),xe.dispose(),fe.dispose(),ee.dispose(),ie.dispose(),we.dispose(),L.dispose(),et.dispose(),Qe.dispose(),K.dispose(),ue.dispose(),ue.removeEventListener("sessionstart",en),ue.removeEventListener("sessionend",Dt),me&&(me.dispose(),me=null),wn.stop()};function tt(oe){oe.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),A=!0}function de(){console.log("THREE.WebGLRenderer: Context Restored."),A=!1;const oe=J.autoReset,Ie=ke.enabled,qe=ke.autoUpdate,Xe=ke.needsUpdate,We=ke.type;st(),J.autoReset=oe,ke.enabled=Ie,ke.autoUpdate=qe,ke.needsUpdate=Xe,ke.type=We}function Le(oe){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",oe.statusMessage)}function Ee(oe){const Ie=oe.target;Ie.removeEventListener("dispose",Ee),ge(Ie)}function ge(oe){je(oe),ee.remove(oe)}function je(oe){const Ie=ee.get(oe).programs;Ie!==void 0&&(Ie.forEach(function(qe){K.releaseProgram(qe)}),oe.isShaderMaterial&&K.releaseShaderCache(oe))}this.renderBufferDirect=function(oe,Ie,qe,Xe,We,xt){Ie===null&&(Ie=Ae);const Z=We.isMesh&&We.matrixWorld.determinant()<0,_e=xi(oe,Ie,qe,Xe,We);ne.setMaterial(Xe,Z);let Pe=qe.index,Re=1;if(Xe.wireframe===!0){if(Pe=F.getWireframeAttribute(qe),Pe===void 0)return;Re=2}const Me=qe.drawRange,Ze=qe.attributes.position;let ot=Me.start*Re,mt=(Me.start+Me.count)*Re;xt!==null&&(ot=Math.max(ot,xt.start*Re),mt=Math.min(mt,(xt.start+xt.count)*Re)),Pe!==null?(ot=Math.max(ot,0),mt=Math.min(mt,Pe.count)):Ze!=null&&(ot=Math.max(ot,0),mt=Math.min(mt,Ze.count));const pt=mt-ot;if(pt<0||pt===1/0)return;et.setup(We,Xe,_e,qe,Pe);let Rt,bt=Ue;if(Pe!==null&&(Rt=ve.get(Pe),bt=De,bt.setIndex(Rt)),We.isMesh)Xe.wireframe===!0?(ne.setLineWidth(Xe.wireframeLinewidth*Be()),bt.setMode(le.LINES)):bt.setMode(le.TRIANGLES);else if(We.isLine){let dt=Xe.linewidth;dt===void 0&&(dt=1),ne.setLineWidth(dt*Be()),We.isLineSegments?bt.setMode(le.LINES):We.isLineLoop?bt.setMode(le.LINE_LOOP):bt.setMode(le.LINE_STRIP)}else We.isPoints?bt.setMode(le.POINTS):We.isSprite&&bt.setMode(le.TRIANGLES);if(We.isBatchedMesh)bt.renderMultiDraw(We._multiDrawStarts,We._multiDrawCounts,We._multiDrawCount);else if(We.isInstancedMesh)bt.renderInstances(ot,pt,We.count);else if(qe.isInstancedBufferGeometry){const dt=qe._maxInstanceCount!==void 0?qe._maxInstanceCount:1/0,Bt=Math.min(qe.instanceCount,dt);bt.renderInstances(ot,pt,Bt)}else bt.render(ot,pt)};function at(oe,Ie,qe){oe.transparent===!0&&oe.side===Ol&&oe.forceSinglePass===!1?(oe.side=Da,oe.needsUpdate=!0,Hr(oe,Ie,qe),oe.side=Pu,oe.needsUpdate=!0,Hr(oe,Ie,qe),oe.side=Ol):Hr(oe,Ie,qe)}this.compile=function(oe,Ie,qe=null){qe===null&&(qe=oe),x=fe.get(qe),x.init(),w.push(x),qe.traverseVisible(function(We){We.isLight&&We.layers.test(Ie.layers)&&(x.pushLight(We),We.castShadow&&x.pushShadow(We))}),oe!==qe&&oe.traverseVisible(function(We){We.isLight&&We.layers.test(Ie.layers)&&(x.pushLight(We),We.castShadow&&x.pushShadow(We))}),x.setupLights(M._useLegacyLights);const Xe=new Set;return oe.traverse(function(We){const xt=We.material;if(xt)if(Array.isArray(xt))for(let Z=0;Z<xt.length;Z++){const _e=xt[Z];at(_e,qe,We),Xe.add(_e)}else at(xt,qe,We),Xe.add(xt)}),w.pop(),x=null,Xe},this.compileAsync=function(oe,Ie,qe=null){const Xe=this.compile(oe,Ie,qe);return new Promise(We=>{function xt(){if(Xe.forEach(function(Z){ee.get(Z).currentProgram.isReady()&&Xe.delete(Z)}),Xe.size===0){We(oe);return}setTimeout(xt,10)}z.get("KHR_parallel_shader_compile")!==null?xt():setTimeout(xt,10)})};let vt=null;function Ct(oe){vt&&vt(oe)}function en(){wn.stop()}function Dt(){wn.start()}const wn=new v$;wn.setAnimationLoop(Ct),typeof self<"u"&&wn.setContext(self),this.setAnimationLoop=function(oe){vt=oe,ue.setAnimationLoop(oe),oe===null?wn.stop():wn.start()},ue.addEventListener("sessionstart",en),ue.addEventListener("sessionend",Dt),this.render=function(oe,Ie){if(Ie!==void 0&&Ie.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(A===!0)return;oe.matrixWorldAutoUpdate===!0&&oe.updateMatrixWorld(),Ie.parent===null&&Ie.matrixWorldAutoUpdate===!0&&Ie.updateMatrixWorld(),ue.enabled===!0&&ue.isPresenting===!0&&(ue.cameraAutoUpdate===!0&&ue.updateCamera(Ie),Ie=ue.getCamera()),oe.isScene===!0&&oe.onBeforeRender(M,oe,Ie,C),x=fe.get(oe,w.length),x.init(),w.push(x),be.multiplyMatrices(Ie.projectionMatrix,Ie.matrixWorldInverse),re.setFromProjectionMatrix(be),ye=this.localClippingEnabled,ce=Ke.init(this.clippingPlanes,ye),b=xe.get(oe,v.length),b.init(),v.push(b),zn(oe,Ie,0,M.sortObjects),b.finish(),M.sortObjects===!0&&b.sort(Y,Q),this.info.render.frame++,ce===!0&&Ke.beginShadows();const qe=x.state.shadowsArray;if(ke.render(qe,oe,Ie),ce===!0&&Ke.endShadows(),this.info.autoReset===!0&&this.info.reset(),$e.render(b,oe),x.setupLights(M._useLegacyLights),Ie.isArrayCamera){const Xe=Ie.cameras;for(let We=0,xt=Xe.length;We<xt;We++){const Z=Xe[We];cr(b,oe,Z,Z.viewport)}}else cr(b,oe,Ie);C!==null&&(ae.updateMultisampleRenderTarget(C),ae.updateRenderTargetMipmap(C)),oe.isScene===!0&&oe.onAfterRender(M,oe,Ie),et.resetDefaultState(),U=-1,P=null,w.pop(),w.length>0?x=w[w.length-1]:x=null,v.pop(),v.length>0?b=v[v.length-1]:b=null};function zn(oe,Ie,qe,Xe){if(oe.visible===!1)return;if(oe.layers.test(Ie.layers)){if(oe.isGroup)qe=oe.renderOrder;else if(oe.isLOD)oe.autoUpdate===!0&&oe.update(Ie);else if(oe.isLight)x.pushLight(oe),oe.castShadow&&x.pushShadow(oe);else if(oe.isSprite){if(!oe.frustumCulled||re.intersectsSprite(oe)){Xe&&he.setFromMatrixPosition(oe.matrixWorld).applyMatrix4(be);const Z=L.update(oe),_e=oe.material;_e.visible&&b.push(oe,Z,_e,qe,he.z,null)}}else if((oe.isMesh||oe.isLine||oe.isPoints)&&(!oe.frustumCulled||re.intersectsObject(oe))){const Z=L.update(oe),_e=oe.material;if(Xe&&(oe.boundingSphere!==void 0?(oe.boundingSphere===null&&oe.computeBoundingSphere(),he.copy(oe.boundingSphere.center)):(Z.boundingSphere===null&&Z.computeBoundingSphere(),he.copy(Z.boundingSphere.center)),he.applyMatrix4(oe.matrixWorld).applyMatrix4(be)),Array.isArray(_e)){const Pe=Z.groups;for(let Re=0,Me=Pe.length;Re<Me;Re++){const Ze=Pe[Re],ot=_e[Ze.materialIndex];ot&&ot.visible&&b.push(oe,Z,ot,qe,he.z,Ze)}}else _e.visible&&b.push(oe,Z,_e,qe,he.z,null)}}const xt=oe.children;for(let Z=0,_e=xt.length;Z<_e;Z++)zn(xt[Z],Ie,qe,Xe)}function cr(oe,Ie,qe,Xe){const We=oe.opaque,xt=oe.transmissive,Z=oe.transparent;x.setupLightsView(qe),ce===!0&&Ke.setGlobalState(M.clippingPlanes,qe),xt.length>0&&Gi(We,xt,Ie,qe),Xe&&ne.viewport(k.copy(Xe)),We.length>0&&ur(We,Ie,qe),xt.length>0&&ur(xt,Ie,qe),Z.length>0&&ur(Z,Ie,qe),ne.buffers.depth.setTest(!0),ne.buffers.depth.setMask(!0),ne.buffers.color.setMask(!0),ne.setPolygonOffset(!1)}function Gi(oe,Ie,qe,Xe){if((qe.isScene===!0?qe.overrideMaterial:null)!==null)return;const xt=V.isWebGL2;me===null&&(me=new cf(1,1,{generateMipmaps:!0,type:z.has("EXT_color_buffer_half_float")?v0:Su,minFilter:g0,samples:xt?4:0})),M.getDrawingBufferSize(Ne),xt?me.setSize(Ne.x,Ne.y):me.setSize(l_(Ne.x),l_(Ne.y));const Z=M.getRenderTarget();M.setRenderTarget(me),M.getClearColor(W),O=M.getClearAlpha(),O<1&&M.setClearColor(16777215,.5),M.clear();const _e=M.toneMapping;M.toneMapping=_u,ur(oe,qe,Xe),ae.updateMultisampleRenderTarget(me),ae.updateRenderTargetMipmap(me);let Pe=!1;for(let Re=0,Me=Ie.length;Re<Me;Re++){const Ze=Ie[Re],ot=Ze.object,mt=Ze.geometry,pt=Ze.material,Rt=Ze.group;if(pt.side===Ol&&ot.layers.test(Xe.layers)){const bt=pt.side;pt.side=Da,pt.needsUpdate=!0,Er(ot,qe,Xe,mt,pt,Rt),pt.side=bt,pt.needsUpdate=!0,Pe=!0}}Pe===!0&&(ae.updateMultisampleRenderTarget(me),ae.updateRenderTargetMipmap(me)),M.setRenderTarget(Z),M.setClearColor(W,O),M.toneMapping=_e}function ur(oe,Ie,qe){const Xe=Ie.isScene===!0?Ie.overrideMaterial:null;for(let We=0,xt=oe.length;We<xt;We++){const Z=oe[We],_e=Z.object,Pe=Z.geometry,Re=Xe===null?Z.material:Xe,Me=Z.group;_e.layers.test(qe.layers)&&Er(_e,Ie,qe,Pe,Re,Me)}}function Er(oe,Ie,qe,Xe,We,xt){oe.onBeforeRender(M,Ie,qe,Xe,We,xt),oe.modelViewMatrix.multiplyMatrices(qe.matrixWorldInverse,oe.matrixWorld),oe.normalMatrix.getNormalMatrix(oe.modelViewMatrix),We.onBeforeRender(M,Ie,qe,Xe,oe,xt),We.transparent===!0&&We.side===Ol&&We.forceSinglePass===!1?(We.side=Da,We.needsUpdate=!0,M.renderBufferDirect(qe,Ie,Xe,We,oe,xt),We.side=Pu,We.needsUpdate=!0,M.renderBufferDirect(qe,Ie,Xe,We,oe,xt),We.side=Ol):M.renderBufferDirect(qe,Ie,Xe,We,oe,xt),oe.onAfterRender(M,Ie,qe,Xe,We,xt)}function Hr(oe,Ie,qe){Ie.isScene!==!0&&(Ie=Ae);const Xe=ee.get(oe),We=x.state.lights,xt=x.state.shadowsArray,Z=We.state.version,_e=K.getParameters(oe,We.state,xt,Ie,qe),Pe=K.getProgramCacheKey(_e);let Re=Xe.programs;Xe.environment=oe.isMeshStandardMaterial?Ie.environment:null,Xe.fog=Ie.fog,Xe.envMap=(oe.isMeshStandardMaterial?we:ie).get(oe.envMap||Xe.environment),Re===void 0&&(oe.addEventListener("dispose",Ee),Re=new Map,Xe.programs=Re);let Me=Re.get(Pe);if(Me!==void 0){if(Xe.currentProgram===Me&&Xe.lightsStateVersion===Z)return ri(oe,_e),Me}else _e.uniforms=K.getUniforms(oe),oe.onBuild(qe,_e,M),oe.onBeforeCompile(_e,M),Me=K.acquireProgram(_e,Pe),Re.set(Pe,Me),Xe.uniforms=_e.uniforms;const Ze=Xe.uniforms;return(!oe.isShaderMaterial&&!oe.isRawShaderMaterial||oe.clipping===!0)&&(Ze.clippingPlanes=Ke.uniform),ri(oe,_e),Xe.needsLights=mc(oe),Xe.lightsStateVersion=Z,Xe.needsLights&&(Ze.ambientLightColor.value=We.state.ambient,Ze.lightProbe.value=We.state.probe,Ze.directionalLights.value=We.state.directional,Ze.directionalLightShadows.value=We.state.directionalShadow,Ze.spotLights.value=We.state.spot,Ze.spotLightShadows.value=We.state.spotShadow,Ze.rectAreaLights.value=We.state.rectArea,Ze.ltc_1.value=We.state.rectAreaLTC1,Ze.ltc_2.value=We.state.rectAreaLTC2,Ze.pointLights.value=We.state.point,Ze.pointLightShadows.value=We.state.pointShadow,Ze.hemisphereLights.value=We.state.hemi,Ze.directionalShadowMap.value=We.state.directionalShadowMap,Ze.directionalShadowMatrix.value=We.state.directionalShadowMatrix,Ze.spotShadowMap.value=We.state.spotShadowMap,Ze.spotLightMatrix.value=We.state.spotLightMatrix,Ze.spotLightMap.value=We.state.spotLightMap,Ze.pointShadowMap.value=We.state.pointShadowMap,Ze.pointShadowMatrix.value=We.state.pointShadowMatrix),Xe.currentProgram=Me,Xe.uniformsList=null,Me}function Ai(oe){if(oe.uniformsList===null){const Ie=oe.currentProgram.getUniforms();oe.uniformsList=Lb.seqWithValue(Ie.seq,oe.uniforms)}return oe.uniformsList}function ri(oe,Ie){const qe=ee.get(oe);qe.outputColorSpace=Ie.outputColorSpace,qe.batching=Ie.batching,qe.instancing=Ie.instancing,qe.instancingColor=Ie.instancingColor,qe.skinning=Ie.skinning,qe.morphTargets=Ie.morphTargets,qe.morphNormals=Ie.morphNormals,qe.morphColors=Ie.morphColors,qe.morphTargetsCount=Ie.morphTargetsCount,qe.numClippingPlanes=Ie.numClippingPlanes,qe.numIntersection=Ie.numClipIntersection,qe.vertexAlphas=Ie.vertexAlphas,qe.vertexTangents=Ie.vertexTangents,qe.toneMapping=Ie.toneMapping}function xi(oe,Ie,qe,Xe,We){Ie.isScene!==!0&&(Ie=Ae),ae.resetTextureUnits();const xt=Ie.fog,Z=Xe.isMeshStandardMaterial?Ie.environment:null,_e=C===null?M.outputColorSpace:C.isXRRenderTarget===!0?C.texture.colorSpace:Ql,Pe=(Xe.isMeshStandardMaterial?we:ie).get(Xe.envMap||Z),Re=Xe.vertexColors===!0&&!!qe.attributes.color&&qe.attributes.color.itemSize===4,Me=!!qe.attributes.tangent&&(!!Xe.normalMap||Xe.anisotropy>0),Ze=!!qe.morphAttributes.position,ot=!!qe.morphAttributes.normal,mt=!!qe.morphAttributes.color;let pt=_u;Xe.toneMapped&&(C===null||C.isXRRenderTarget===!0)&&(pt=M.toneMapping);const Rt=qe.morphAttributes.position||qe.morphAttributes.normal||qe.morphAttributes.color,bt=Rt!==void 0?Rt.length:0,dt=ee.get(Xe),Bt=x.state.lights;if(ce===!0&&(ye===!0||oe!==P)){const yi=oe===P&&Xe.id===U;Ke.setState(Xe,oe,yi)}let Ot=!1;Xe.version===dt.__version?(dt.needsLights&&dt.lightsStateVersion!==Bt.state.version||dt.outputColorSpace!==_e||We.isBatchedMesh&&dt.batching===!1||!We.isBatchedMesh&&dt.batching===!0||We.isInstancedMesh&&dt.instancing===!1||!We.isInstancedMesh&&dt.instancing===!0||We.isSkinnedMesh&&dt.skinning===!1||!We.isSkinnedMesh&&dt.skinning===!0||We.isInstancedMesh&&dt.instancingColor===!0&&We.instanceColor===null||We.isInstancedMesh&&dt.instancingColor===!1&&We.instanceColor!==null||dt.envMap!==Pe||Xe.fog===!0&&dt.fog!==xt||dt.numClippingPlanes!==void 0&&(dt.numClippingPlanes!==Ke.numPlanes||dt.numIntersection!==Ke.numIntersection)||dt.vertexAlphas!==Re||dt.vertexTangents!==Me||dt.morphTargets!==Ze||dt.morphNormals!==ot||dt.morphColors!==mt||dt.toneMapping!==pt||V.isWebGL2===!0&&dt.morphTargetsCount!==bt)&&(Ot=!0):(Ot=!0,dt.__version=Xe.version);let Xt=dt.currentProgram;Ot===!0&&(Xt=Hr(Xe,Ie,We));let nn=!1,ln=!1,Nt=!1;const Vt=Xt.getUniforms(),$t=dt.uniforms;if(ne.useProgram(Xt.program)&&(nn=!0,ln=!0,Nt=!0),Xe.id!==U&&(U=Xe.id,ln=!0),nn||P!==oe){Vt.setValue(le,"projectionMatrix",oe.projectionMatrix),Vt.setValue(le,"viewMatrix",oe.matrixWorldInverse);const yi=Vt.map.cameraPosition;yi!==void 0&&yi.setValue(le,he.setFromMatrixPosition(oe.matrixWorld)),V.logarithmicDepthBuffer&&Vt.setValue(le,"logDepthBufFC",2/(Math.log(oe.far+1)/Math.LN2)),(Xe.isMeshPhongMaterial||Xe.isMeshToonMaterial||Xe.isMeshLambertMaterial||Xe.isMeshBasicMaterial||Xe.isMeshStandardMaterial||Xe.isShaderMaterial)&&Vt.setValue(le,"isOrthographic",oe.isOrthographicCamera===!0),P!==oe&&(P=oe,ln=!0,Nt=!0)}if(We.isSkinnedMesh){Vt.setOptional(le,We,"bindMatrix"),Vt.setOptional(le,We,"bindMatrixInverse");const yi=We.skeleton;yi&&(V.floatVertexTextures?(yi.boneTexture===null&&yi.computeBoneTexture(),Vt.setValue(le,"boneTexture",yi.boneTexture,ae)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}We.isBatchedMesh&&(Vt.setOptional(le,We,"batchingTexture"),Vt.setValue(le,"batchingTexture",We._matricesTexture,ae));const ui=qe.morphAttributes;if((ui.position!==void 0||ui.normal!==void 0||ui.color!==void 0&&V.isWebGL2===!0)&&rt.update(We,qe,Xt),(ln||dt.receiveShadow!==We.receiveShadow)&&(dt.receiveShadow=We.receiveShadow,Vt.setValue(le,"receiveShadow",We.receiveShadow)),Xe.isMeshGouraudMaterial&&Xe.envMap!==null&&($t.envMap.value=Pe,$t.flipEnvMap.value=Pe.isCubeTexture&&Pe.isRenderTargetTexture===!1?-1:1),ln&&(Vt.setValue(le,"toneMappingExposure",M.toneMappingExposure),dt.needsLights&&$s($t,Nt),xt&&Xe.fog===!0&&pe.refreshFogUniforms($t,xt),pe.refreshMaterialUniforms($t,Xe,G,q,me),Lb.upload(le,Ai(dt),$t,ae)),Xe.isShaderMaterial&&Xe.uniformsNeedUpdate===!0&&(Lb.upload(le,Ai(dt),$t,ae),Xe.uniformsNeedUpdate=!1),Xe.isSpriteMaterial&&Vt.setValue(le,"center",We.center),Vt.setValue(le,"modelViewMatrix",We.modelViewMatrix),Vt.setValue(le,"normalMatrix",We.normalMatrix),Vt.setValue(le,"modelMatrix",We.matrixWorld),Xe.isShaderMaterial||Xe.isRawShaderMaterial){const yi=Xe.uniformsGroups;for(let Sn=0,Ws=yi.length;Sn<Ws;Sn++)if(V.isWebGL2){const Mn=yi[Sn];Qe.update(Mn,Xt),Qe.bind(Mn,Xt)}else console.warn("THREE.WebGLRenderer: Uniform Buffer Objects can only be used with WebGL 2.")}return Xt}function $s(oe,Ie){oe.ambientLightColor.needsUpdate=Ie,oe.lightProbe.needsUpdate=Ie,oe.directionalLights.needsUpdate=Ie,oe.directionalLightShadows.needsUpdate=Ie,oe.pointLights.needsUpdate=Ie,oe.pointLightShadows.needsUpdate=Ie,oe.spotLights.needsUpdate=Ie,oe.spotLightShadows.needsUpdate=Ie,oe.rectAreaLights.needsUpdate=Ie,oe.hemisphereLights.needsUpdate=Ie}function mc(oe){return oe.isMeshLambertMaterial||oe.isMeshToonMaterial||oe.isMeshPhongMaterial||oe.isMeshStandardMaterial||oe.isShadowMaterial||oe.isShaderMaterial&&oe.lights===!0}this.getActiveCubeFace=function(){return T},this.getActiveMipmapLevel=function(){return D},this.getRenderTarget=function(){return C},this.setRenderTargetTextures=function(oe,Ie,qe){ee.get(oe.texture).__webglTexture=Ie,ee.get(oe.depthTexture).__webglTexture=qe;const Xe=ee.get(oe);Xe.__hasExternalTextures=!0,Xe.__hasExternalTextures&&(Xe.__autoAllocateDepthBuffer=qe===void 0,Xe.__autoAllocateDepthBuffer||z.has("WEBGL_multisampled_render_to_texture")===!0&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),Xe.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(oe,Ie){const qe=ee.get(oe);qe.__webglFramebuffer=Ie,qe.__useDefaultFramebuffer=Ie===void 0},this.setRenderTarget=function(oe,Ie=0,qe=0){C=oe,T=Ie,D=qe;let Xe=!0,We=null,xt=!1,Z=!1;if(oe){const Pe=ee.get(oe);Pe.__useDefaultFramebuffer!==void 0?(ne.bindFramebuffer(le.FRAMEBUFFER,null),Xe=!1):Pe.__webglFramebuffer===void 0?ae.setupRenderTarget(oe):Pe.__hasExternalTextures&&ae.rebindTextures(oe,ee.get(oe.texture).__webglTexture,ee.get(oe.depthTexture).__webglTexture);const Re=oe.texture;(Re.isData3DTexture||Re.isDataArrayTexture||Re.isCompressedArrayTexture)&&(Z=!0);const Me=ee.get(oe).__webglFramebuffer;oe.isWebGLCubeRenderTarget?(Array.isArray(Me[Ie])?We=Me[Ie][qe]:We=Me[Ie],xt=!0):V.isWebGL2&&oe.samples>0&&ae.useMultisampledRTT(oe)===!1?We=ee.get(oe).__webglMultisampledFramebuffer:Array.isArray(Me)?We=Me[qe]:We=Me,k.copy(oe.viewport),B.copy(oe.scissor),I=oe.scissorTest}else k.copy(se).multiplyScalar(G).floor(),B.copy(H).multiplyScalar(G).floor(),I=X;if(ne.bindFramebuffer(le.FRAMEBUFFER,We)&&V.drawBuffers&&Xe&&ne.drawBuffers(oe,We),ne.viewport(k),ne.scissor(B),ne.setScissorTest(I),xt){const Pe=ee.get(oe.texture);le.framebufferTexture2D(le.FRAMEBUFFER,le.COLOR_ATTACHMENT0,le.TEXTURE_CUBE_MAP_POSITIVE_X+Ie,Pe.__webglTexture,qe)}else if(Z){const Pe=ee.get(oe.texture),Re=Ie||0;le.framebufferTextureLayer(le.FRAMEBUFFER,le.COLOR_ATTACHMENT0,Pe.__webglTexture,qe||0,Re)}U=-1},this.readRenderTargetPixels=function(oe,Ie,qe,Xe,We,xt,Z){if(!(oe&&oe.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let _e=ee.get(oe).__webglFramebuffer;if(oe.isWebGLCubeRenderTarget&&Z!==void 0&&(_e=_e[Z]),_e){ne.bindFramebuffer(le.FRAMEBUFFER,_e);try{const Pe=oe.texture,Re=Pe.format,Me=Pe.type;if(Re!==Ds&&ut.convert(Re)!==le.getParameter(le.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Ze=Me===v0&&(z.has("EXT_color_buffer_half_float")||V.isWebGL2&&z.has("EXT_color_buffer_float"));if(Me!==Su&&ut.convert(Me)!==le.getParameter(le.IMPLEMENTATION_COLOR_READ_TYPE)&&!(Me===zl&&(V.isWebGL2||z.has("OES_texture_float")||z.has("WEBGL_color_buffer_float")))&&!Ze){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}Ie>=0&&Ie<=oe.width-Xe&&qe>=0&&qe<=oe.height-We&&le.readPixels(Ie,qe,Xe,We,ut.convert(Re),ut.convert(Me),xt)}finally{const Pe=C!==null?ee.get(C).__webglFramebuffer:null;ne.bindFramebuffer(le.FRAMEBUFFER,Pe)}}},this.copyFramebufferToTexture=function(oe,Ie,qe=0){const Xe=Math.pow(2,-qe),We=Math.floor(Ie.image.width*Xe),xt=Math.floor(Ie.image.height*Xe);ae.setTexture2D(Ie,0),le.copyTexSubImage2D(le.TEXTURE_2D,qe,0,0,oe.x,oe.y,We,xt),ne.unbindTexture()},this.copyTextureToTexture=function(oe,Ie,qe,Xe=0){const We=Ie.image.width,xt=Ie.image.height,Z=ut.convert(qe.format),_e=ut.convert(qe.type);ae.setTexture2D(qe,0),le.pixelStorei(le.UNPACK_FLIP_Y_WEBGL,qe.flipY),le.pixelStorei(le.UNPACK_PREMULTIPLY_ALPHA_WEBGL,qe.premultiplyAlpha),le.pixelStorei(le.UNPACK_ALIGNMENT,qe.unpackAlignment),Ie.isDataTexture?le.texSubImage2D(le.TEXTURE_2D,Xe,oe.x,oe.y,We,xt,Z,_e,Ie.image.data):Ie.isCompressedTexture?le.compressedTexSubImage2D(le.TEXTURE_2D,Xe,oe.x,oe.y,Ie.mipmaps[0].width,Ie.mipmaps[0].height,Z,Ie.mipmaps[0].data):le.texSubImage2D(le.TEXTURE_2D,Xe,oe.x,oe.y,Z,_e,Ie.image),Xe===0&&qe.generateMipmaps&&le.generateMipmap(le.TEXTURE_2D),ne.unbindTexture()},this.copyTextureToTexture3D=function(oe,Ie,qe,Xe,We=0){if(M.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const xt=oe.max.x-oe.min.x+1,Z=oe.max.y-oe.min.y+1,_e=oe.max.z-oe.min.z+1,Pe=ut.convert(Xe.format),Re=ut.convert(Xe.type);let Me;if(Xe.isData3DTexture)ae.setTexture3D(Xe,0),Me=le.TEXTURE_3D;else if(Xe.isDataArrayTexture)ae.setTexture2DArray(Xe,0),Me=le.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}le.pixelStorei(le.UNPACK_FLIP_Y_WEBGL,Xe.flipY),le.pixelStorei(le.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Xe.premultiplyAlpha),le.pixelStorei(le.UNPACK_ALIGNMENT,Xe.unpackAlignment);const Ze=le.getParameter(le.UNPACK_ROW_LENGTH),ot=le.getParameter(le.UNPACK_IMAGE_HEIGHT),mt=le.getParameter(le.UNPACK_SKIP_PIXELS),pt=le.getParameter(le.UNPACK_SKIP_ROWS),Rt=le.getParameter(le.UNPACK_SKIP_IMAGES),bt=qe.isCompressedTexture?qe.mipmaps[0]:qe.image;le.pixelStorei(le.UNPACK_ROW_LENGTH,bt.width),le.pixelStorei(le.UNPACK_IMAGE_HEIGHT,bt.height),le.pixelStorei(le.UNPACK_SKIP_PIXELS,oe.min.x),le.pixelStorei(le.UNPACK_SKIP_ROWS,oe.min.y),le.pixelStorei(le.UNPACK_SKIP_IMAGES,oe.min.z),qe.isDataTexture||qe.isData3DTexture?le.texSubImage3D(Me,We,Ie.x,Ie.y,Ie.z,xt,Z,_e,Pe,Re,bt.data):qe.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),le.compressedTexSubImage3D(Me,We,Ie.x,Ie.y,Ie.z,xt,Z,_e,Pe,bt.data)):le.texSubImage3D(Me,We,Ie.x,Ie.y,Ie.z,xt,Z,_e,Pe,Re,bt),le.pixelStorei(le.UNPACK_ROW_LENGTH,Ze),le.pixelStorei(le.UNPACK_IMAGE_HEIGHT,ot),le.pixelStorei(le.UNPACK_SKIP_PIXELS,mt),le.pixelStorei(le.UNPACK_SKIP_ROWS,pt),le.pixelStorei(le.UNPACK_SKIP_IMAGES,Rt),We===0&&Xe.generateMipmaps&&le.generateMipmap(Me),ne.unbindTexture()},this.initTexture=function(oe){oe.isCubeTexture?ae.setTextureCube(oe,0):oe.isData3DTexture?ae.setTexture3D(oe,0):oe.isDataArrayTexture||oe.isCompressedArrayTexture?ae.setTexture2DArray(oe,0):ae.setTexture2D(oe,0),ne.unbindTexture()},this.resetState=function(){T=0,D=0,C=null,ne.reset(),et.reset()},typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return Lo}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(e){this._outputColorSpace=e;const n=this.getContext();n.drawingBufferColorSpace=e===WP?"display-p3":"srgb",n.unpackColorSpace=kn.workingColorSpace===oS?"display-p3":"srgb"}get physicallyCorrectLights(){return console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),!this.useLegacyLights}set physicallyCorrectLights(e){console.warn("THREE.WebGLRenderer: The property .physicallyCorrectLights has been removed. Set renderer.useLegacyLights instead."),this.useLegacyLights=!e}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===Ur?Hd:t$}set outputEncoding(e){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=e===Hd?Ur:Ql}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(e){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=e}}class ave extends MR{}ave.prototype.isWebGL1Renderer=!0;class JP{constructor(e,n=1,i=1e3){this.isFog=!0,this.name="",this.color=new Ut(e),this.near=n,this.far=i}clone(){return new JP(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class sve extends fa{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,n){return super.copy(e,n),e.background!==null&&(this.background=e.background.clone()),e.environment!==null&&(this.environment=e.environment.clone()),e.fog!==null&&(this.fog=e.fog.clone()),this.backgroundBlurriness=e.backgroundBlurriness,this.backgroundIntensity=e.backgroundIntensity,e.overrideMaterial!==null&&(this.overrideMaterial=e.overrideMaterial.clone()),this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const n=super.toJSON(e);return this.fog!==null&&(n.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(n.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(n.object.backgroundIntensity=this.backgroundIntensity),n}}class ove{constructor(e,n){this.isInterleavedBuffer=!0,this.array=e,this.stride=n,this.count=e!==void 0?e.length/n:0,this.usage=bR,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Wl()}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}get updateRange(){return console.warn('THREE.InterleavedBuffer: "updateRange" is deprecated and removed in r169. Use "addUpdateRange()" instead.'),this._updateRange}setUsage(e){return this.usage=e,this}addUpdateRange(e,n){this.updateRanges.push({start:e,count:n})}clearUpdateRanges(){this.updateRanges.length=0}copy(e){return this.array=new e.array.constructor(e.array),this.count=e.count,this.stride=e.stride,this.usage=e.usage,this}copyAt(e,n,i){e*=this.stride,i*=n.stride;for(let r=0,a=this.stride;r<a;r++)this.array[e+r]=n.array[i+r];return this}set(e,n=0){return this.array.set(e,n),this}clone(e){e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Wl()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const n=new this.array.constructor(e.arrayBuffers[this.array.buffer._uuid]),i=new this.constructor(n,this.stride);return i.setUsage(this.usage),i}onUpload(e){return this.onUploadCallback=e,this}toJSON(e){return e.arrayBuffers===void 0&&(e.arrayBuffers={}),this.array.buffer._uuid===void 0&&(this.array.buffer._uuid=Wl()),e.arrayBuffers[this.array.buffer._uuid]===void 0&&(e.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}}const aa=new Ce;class pu{constructor(e,n,i,r=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=e,this.itemSize=n,this.offset=i,this.normalized=r}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(e){this.data.needsUpdate=e}applyMatrix4(e){for(let n=0,i=this.data.count;n<i;n++)aa.fromBufferAttribute(this,n),aa.applyMatrix4(e),this.setXYZ(n,aa.x,aa.y,aa.z);return this}applyNormalMatrix(e){for(let n=0,i=this.count;n<i;n++)aa.fromBufferAttribute(this,n),aa.applyNormalMatrix(e),this.setXYZ(n,aa.x,aa.y,aa.z);return this}transformDirection(e){for(let n=0,i=this.count;n<i;n++)aa.fromBufferAttribute(this,n),aa.transformDirection(e),this.setXYZ(n,aa.x,aa.y,aa.z);return this}setX(e,n){return this.normalized&&(n=Ln(n,this.array)),this.data.array[e*this.data.stride+this.offset]=n,this}setY(e,n){return this.normalized&&(n=Ln(n,this.array)),this.data.array[e*this.data.stride+this.offset+1]=n,this}setZ(e,n){return this.normalized&&(n=Ln(n,this.array)),this.data.array[e*this.data.stride+this.offset+2]=n,this}setW(e,n){return this.normalized&&(n=Ln(n,this.array)),this.data.array[e*this.data.stride+this.offset+3]=n,this}getX(e){let n=this.data.array[e*this.data.stride+this.offset];return this.normalized&&(n=No(n,this.array)),n}getY(e){let n=this.data.array[e*this.data.stride+this.offset+1];return this.normalized&&(n=No(n,this.array)),n}getZ(e){let n=this.data.array[e*this.data.stride+this.offset+2];return this.normalized&&(n=No(n,this.array)),n}getW(e){let n=this.data.array[e*this.data.stride+this.offset+3];return this.normalized&&(n=No(n,this.array)),n}setXY(e,n,i){return e=e*this.data.stride+this.offset,this.normalized&&(n=Ln(n,this.array),i=Ln(i,this.array)),this.data.array[e+0]=n,this.data.array[e+1]=i,this}setXYZ(e,n,i,r){return e=e*this.data.stride+this.offset,this.normalized&&(n=Ln(n,this.array),i=Ln(i,this.array),r=Ln(r,this.array)),this.data.array[e+0]=n,this.data.array[e+1]=i,this.data.array[e+2]=r,this}setXYZW(e,n,i,r,a){return e=e*this.data.stride+this.offset,this.normalized&&(n=Ln(n,this.array),i=Ln(i,this.array),r=Ln(r,this.array),a=Ln(a,this.array)),this.data.array[e+0]=n,this.data.array[e+1]=i,this.data.array[e+2]=r,this.data.array[e+3]=a,this}clone(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.");const n=[];for(let i=0;i<this.count;i++){const r=i*this.data.stride+this.offset;for(let a=0;a<this.itemSize;a++)n.push(this.data.array[r+a])}return new is(new this.array.constructor(n),this.itemSize,this.normalized)}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.clone(e)),new pu(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(e===void 0){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.");const n=[];for(let i=0;i<this.count;i++){const r=i*this.data.stride+this.offset;for(let a=0;a<this.itemSize;a++)n.push(this.data.array[r+a])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:n,normalized:this.normalized}}else return e.interleavedBuffers===void 0&&(e.interleavedBuffers={}),e.interleavedBuffers[this.data.uuid]===void 0&&(e.interleavedBuffers[this.data.uuid]=this.data.toJSON(e)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}}class lve extends Na{constructor(e=null,n=1,i=1,r,a,s,o,l,c=Ir,d=Ir,f,p){super(null,s,o,l,c,d,r,a,f,p),this.isDataTexture=!0,this.image={data:e,width:n,height:i},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}function cve(t,e){return t.z-e.z}function uve(t,e){return e.z-t.z}class dve{constructor(){this.index=0,this.pool=[],this.list=[]}push(e,n){const i=this.pool,r=this.list;this.index>=i.length&&i.push({start:-1,count:-1,z:-1});const a=i[this.index];r.push(a),this.index++,a.start=e.start,a.count=e.count,a.z=n}reset(){this.list.length=0,this.index=0}}const zh="batchId",Kc=new $n,B4=new $n,fve=new $n,j4=new $n,jA=new lS,By=new Us,vd=new Io,vg=new Ce,HA=new dve,Xr=new co,jy=[];function hve(t,e,n=0){const i=e.itemSize;if(t.isInterleavedBufferAttribute||t.array.constructor!==e.array.constructor){const r=t.count;for(let a=0;a<r;a++)for(let s=0;s<i;s++)e.setComponent(a+n,s,t.getComponent(a,s))}else e.array.set(t.array,n*i);e.needsUpdate=!0}class pve extends co{get maxGeometryCount(){return this._maxGeometryCount}constructor(e,n,i=n*2,r){super(new ta,r),this.isBatchedMesh=!0,this.perObjectFrustumCulled=!0,this.sortObjects=!0,this.boundingBox=null,this.boundingSphere=null,this.customSort=null,this._drawRanges=[],this._reservedRanges=[],this._visibility=[],this._active=[],this._bounds=[],this._maxGeometryCount=e,this._maxVertexCount=n,this._maxIndexCount=i,this._geometryInitialized=!1,this._geometryCount=0,this._multiDrawCounts=new Int32Array(e),this._multiDrawStarts=new Int32Array(e),this._multiDrawCount=0,this._visibilityChanged=!0,this._matricesTexture=null,this._initMatricesTexture()}_initMatricesTexture(){let e=Math.sqrt(this._maxGeometryCount*4);e=Math.ceil(e/4)*4,e=Math.max(e,4);const n=new Float32Array(e*e*4),i=new lve(n,e,e,Ds,zl);this._matricesTexture=i}_initializeGeometry(e){const n=this.geometry,i=this._maxVertexCount,r=this._maxGeometryCount,a=this._maxIndexCount;if(this._geometryInitialized===!1){for(const o in e.attributes){const l=e.getAttribute(o),{array:c,itemSize:d,normalized:f}=l,p=new c.constructor(i*d),m=new l.constructor(p,d,f);m.setUsage(l.usage),n.setAttribute(o,m)}if(e.getIndex()!==null){const o=i>65536?new Uint32Array(a):new Uint16Array(a);n.setIndex(new is(o,1))}const s=r>65536?new Uint32Array(i):new Uint16Array(i);n.setAttribute(zh,new is(s,1)),this._geometryInitialized=!0}}_validateGeometry(e){if(e.getAttribute(zh))throw new Error(`BatchedMesh: Geometry cannot use attribute "${zh}"`);const n=this.geometry;if(!!e.getIndex()!=!!n.getIndex())throw new Error('BatchedMesh: All geometries must consistently have "index".');for(const i in n.attributes){if(i===zh)continue;if(!e.hasAttribute(i))throw new Error(`BatchedMesh: Added geometry missing "${i}". All geometries must have consistent attributes.`);const r=e.getAttribute(i),a=n.getAttribute(i);if(r.itemSize!==a.itemSize||r.normalized!==a.normalized)throw new Error("BatchedMesh: All attributes must have a consistent itemSize and normalized value.")}}setCustomSort(e){return this.customSort=e,this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Us);const e=this._geometryCount,n=this.boundingBox,i=this._active;n.makeEmpty();for(let r=0;r<e;r++)i[r]!==!1&&(this.getMatrixAt(r,Kc),this.getBoundingBoxAt(r,By).applyMatrix4(Kc),n.union(By))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Io);const e=this._geometryCount,n=this.boundingSphere,i=this._active;n.makeEmpty();for(let r=0;r<e;r++)i[r]!==!1&&(this.getMatrixAt(r,Kc),this.getBoundingSphereAt(r,vd).applyMatrix4(Kc),n.union(vd))}addGeometry(e,n=-1,i=-1){if(this._initializeGeometry(e),this._validateGeometry(e),this._geometryCount>=this._maxGeometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");const r={vertexStart:-1,vertexCount:-1,indexStart:-1,indexCount:-1};let a=null;const s=this._reservedRanges,o=this._drawRanges,l=this._bounds;this._geometryCount!==0&&(a=s[s.length-1]),n===-1?r.vertexCount=e.getAttribute("position").count:r.vertexCount=n,a===null?r.vertexStart=0:r.vertexStart=a.vertexStart+a.vertexCount;const c=e.getIndex(),d=c!==null;if(d&&(i===-1?r.indexCount=c.count:r.indexCount=i,a===null?r.indexStart=0:r.indexStart=a.indexStart+a.indexCount),r.indexStart!==-1&&r.indexStart+r.indexCount>this._maxIndexCount||r.vertexStart+r.vertexCount>this._maxVertexCount)throw new Error("BatchedMesh: Reserved space request exceeds the maximum buffer size.");const f=this._visibility,p=this._active,m=this._matricesTexture,y=this._matricesTexture.image.data;f.push(!0),p.push(!0);const b=this._geometryCount;this._geometryCount++,fve.toArray(y,b*16),m.needsUpdate=!0,s.push(r),o.push({start:d?r.indexStart:r.vertexStart,count:-1}),l.push({boxInitialized:!1,box:new Us,sphereInitialized:!1,sphere:new Io});const x=this.geometry.getAttribute(zh);for(let v=0;v<r.vertexCount;v++)x.setX(r.vertexStart+v,b);return x.needsUpdate=!0,this.setGeometryAt(b,e),b}setGeometryAt(e,n){if(e>=this._geometryCount)throw new Error("BatchedMesh: Maximum geometry count reached.");this._validateGeometry(n);const i=this.geometry,r=i.getIndex()!==null,a=i.getIndex(),s=n.getIndex(),o=this._reservedRanges[e];if(r&&s.count>o.indexCount||n.attributes.position.count>o.vertexCount)throw new Error("BatchedMesh: Reserved space not large enough for provided geometry.");const l=o.vertexStart,c=o.vertexCount;for(const m in i.attributes){if(m===zh)continue;const y=n.getAttribute(m),b=i.getAttribute(m);hve(y,b,l);const x=y.itemSize;for(let v=y.count,w=c;v<w;v++){const M=l+v;for(let A=0;A<x;A++)b.setComponent(M,A,0)}b.needsUpdate=!0}if(r){const m=o.indexStart;for(let y=0;y<s.count;y++)a.setX(m+y,l+s.getX(y));for(let y=s.count,b=o.indexCount;y<b;y++)a.setX(m+y,l);a.needsUpdate=!0}const d=this._bounds[e];n.boundingBox!==null?(d.box.copy(n.boundingBox),d.boxInitialized=!0):d.boxInitialized=!1,n.boundingSphere!==null?(d.sphere.copy(n.boundingSphere),d.sphereInitialized=!0):d.sphereInitialized=!1;const f=this._drawRanges[e],p=n.getAttribute("position");return f.count=r?s.count:p.count,this._visibilityChanged=!0,e}deleteGeometry(e){const n=this._active;return e>=n.length||n[e]===!1?this:(n[e]=!1,this._visibilityChanged=!0,this)}getBoundingBoxAt(e,n){if(this._active[e]===!1)return this;const r=this._bounds[e],a=r.box,s=this.geometry;if(r.boxInitialized===!1){a.makeEmpty();const o=s.index,l=s.attributes.position,c=this._drawRanges[e];for(let d=c.start,f=c.start+c.count;d<f;d++){let p=d;o&&(p=o.getX(p)),a.expandByPoint(vg.fromBufferAttribute(l,p))}r.boxInitialized=!0}return n.copy(a),n}getBoundingSphereAt(e,n){if(this._active[e]===!1)return this;const r=this._bounds[e],a=r.sphere,s=this.geometry;if(r.sphereInitialized===!1){a.makeEmpty(),this.getBoundingBoxAt(e,By),By.getCenter(a.center);const o=s.index,l=s.attributes.position,c=this._drawRanges[e];let d=0;for(let f=c.start,p=c.start+c.count;f<p;f++){let m=f;o&&(m=o.getX(m)),vg.fromBufferAttribute(l,m),d=Math.max(d,a.center.distanceToSquared(vg))}a.radius=Math.sqrt(d),r.sphereInitialized=!0}return n.copy(a),n}setMatrixAt(e,n){const i=this._active,r=this._matricesTexture,a=this._matricesTexture.image.data,s=this._geometryCount;return e>=s||i[e]===!1?this:(n.toArray(a,e*16),r.needsUpdate=!0,this)}getMatrixAt(e,n){const i=this._active,r=this._matricesTexture.image.data,a=this._geometryCount;return e>=a||i[e]===!1?null:n.fromArray(r,e*16)}setVisibleAt(e,n){const i=this._visibility,r=this._active,a=this._geometryCount;return e>=a||r[e]===!1||i[e]===n?this:(i[e]=n,this._visibilityChanged=!0,this)}getVisibleAt(e){const n=this._visibility,i=this._active,r=this._geometryCount;return e>=r||i[e]===!1?!1:n[e]}raycast(e,n){const i=this._visibility,r=this._active,a=this._drawRanges,s=this._geometryCount,o=this.matrixWorld,l=this.geometry;Xr.material=this.material,Xr.geometry.index=l.index,Xr.geometry.attributes=l.attributes,Xr.geometry.boundingBox===null&&(Xr.geometry.boundingBox=new Us),Xr.geometry.boundingSphere===null&&(Xr.geometry.boundingSphere=new Io);for(let c=0;c<s;c++){if(!i[c]||!r[c])continue;const d=a[c];Xr.geometry.setDrawRange(d.start,d.count),this.getMatrixAt(c,Xr.matrixWorld).premultiply(o),this.getBoundingBoxAt(c,Xr.geometry.boundingBox),this.getBoundingSphereAt(c,Xr.geometry.boundingSphere),Xr.raycast(e,jy);for(let f=0,p=jy.length;f<p;f++){const m=jy[f];m.object=this,m.batchId=c,n.push(m)}jy.length=0}Xr.material=null,Xr.geometry.index=null,Xr.geometry.attributes={},Xr.geometry.setDrawRange(0,1/0)}copy(e){return super.copy(e),this.geometry=e.geometry.clone(),this.perObjectFrustumCulled=e.perObjectFrustumCulled,this.sortObjects=e.sortObjects,this.boundingBox=e.boundingBox!==null?e.boundingBox.clone():null,this.boundingSphere=e.boundingSphere!==null?e.boundingSphere.clone():null,this._drawRanges=e._drawRanges.map(n=>({...n})),this._reservedRanges=e._reservedRanges.map(n=>({...n})),this._visibility=e._visibility.slice(),this._active=e._active.slice(),this._bounds=e._bounds.map(n=>({boxInitialized:n.boxInitialized,box:n.box.clone(),sphereInitialized:n.sphereInitialized,sphere:n.sphere.clone()})),this._maxGeometryCount=e._maxGeometryCount,this._maxVertexCount=e._maxVertexCount,this._maxIndexCount=e._maxIndexCount,this._geometryInitialized=e._geometryInitialized,this._geometryCount=e._geometryCount,this._multiDrawCounts=e._multiDrawCounts.slice(),this._multiDrawStarts=e._multiDrawStarts.slice(),this._matricesTexture=e._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.slice(),this}dispose(){return this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this}onBeforeRender(e,n,i,r,a){if(!this._visibilityChanged&&!this.perObjectFrustumCulled&&!this.sortObjects)return;const s=r.getIndex(),o=s===null?1:s.array.BYTES_PER_ELEMENT,l=this._visibility,c=this._multiDrawStarts,d=this._multiDrawCounts,f=this._drawRanges,p=this.perObjectFrustumCulled;p&&(j4.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),jA.setFromProjectionMatrix(j4,e.isWebGPURenderer?x0:Lo));let m=0;if(this.sortObjects){B4.copy(this.matrixWorld).invert(),vg.setFromMatrixPosition(i.matrixWorld).applyMatrix4(B4);for(let x=0,v=l.length;x<v;x++)if(l[x]){this.getMatrixAt(x,Kc),this.getBoundingSphereAt(x,vd).applyMatrix4(Kc);let w=!1;if(p&&(w=!jA.intersectsSphere(vd)),!w){const M=vg.distanceTo(vd.center);HA.push(f[x],M)}}const y=HA.list,b=this.customSort;b===null?y.sort(a.transparent?uve:cve):b.call(this,y,i);for(let x=0,v=y.length;x<v;x++){const w=y[x];c[m]=w.start*o,d[m]=w.count,m++}HA.reset()}else for(let y=0,b=l.length;y<b;y++)if(l[y]){let x=!1;if(p&&(this.getMatrixAt(y,Kc),this.getBoundingSphereAt(y,vd).applyMatrix4(Kc),x=!jA.intersectsSphere(vd)),!x){const v=f[y];c[m]=v.start*o,d[m]=v.count,m++}}this._multiDrawCount=m,this._visibilityChanged=!1}onBeforeShadow(e,n,i,r,a,s){this.onBeforeRender(e,null,r,a,s)}}class nv extends Zp{constructor(e){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new Ut(16777215),this.map=null,this.linewidth=1,this.linecap="round",this.linejoin="round",this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}}const H4=new Ce,V4=new Ce,G4=new $n,VA=new XP,Hy=new Io;class mve extends fa{constructor(e=new ta,n=new nv){super(),this.isLine=!0,this.type="Line",this.geometry=e,this.material=n,this.updateMorphTargets()}copy(e,n){return super.copy(e,n),this.material=Array.isArray(e.material)?e.material.slice():e.material,this.geometry=e.geometry,this}computeLineDistances(){const e=this.geometry;if(e.index===null){const n=e.attributes.position,i=[0];for(let r=1,a=n.count;r<a;r++)H4.fromBufferAttribute(n,r-1),V4.fromBufferAttribute(n,r),i[r]=i[r-1],i[r]+=H4.distanceTo(V4);e.setAttribute("lineDistance",new Mi(i,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(e,n){const i=this.geometry,r=this.matrixWorld,a=e.params.Line.threshold,s=i.drawRange;if(i.boundingSphere===null&&i.computeBoundingSphere(),Hy.copy(i.boundingSphere),Hy.applyMatrix4(r),Hy.radius+=a,e.ray.intersectsSphere(Hy)===!1)return;G4.copy(r).invert(),VA.copy(e.ray).applyMatrix4(G4);const o=a/((this.scale.x+this.scale.y+this.scale.z)/3),l=o*o,c=new Ce,d=new Ce,f=new Ce,p=new Ce,m=this.isLineSegments?2:1,y=i.index,x=i.attributes.position;if(y!==null){const v=Math.max(0,s.start),w=Math.min(y.count,s.start+s.count);for(let M=v,A=w-1;M<A;M+=m){const T=y.getX(M),D=y.getX(M+1);if(c.fromBufferAttribute(x,T),d.fromBufferAttribute(x,D),VA.distanceSqToSegment(c,d,p,f)>l)continue;p.applyMatrix4(this.matrixWorld);const U=e.ray.origin.distanceTo(p);U<e.near||U>e.far||n.push({distance:U,point:f.clone().applyMatrix4(this.matrixWorld),index:M,face:null,faceIndex:null,object:this})}}else{const v=Math.max(0,s.start),w=Math.min(x.count,s.start+s.count);for(let M=v,A=w-1;M<A;M+=m){if(c.fromBufferAttribute(x,M),d.fromBufferAttribute(x,M+1),VA.distanceSqToSegment(c,d,p,f)>l)continue;p.applyMatrix4(this.matrixWorld);const D=e.ray.origin.distanceTo(p);D<e.near||D>e.far||n.push({distance:D,point:f.clone().applyMatrix4(this.matrixWorld),index:M,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const n=this.geometry.morphAttributes,i=Object.keys(n);if(i.length>0){const r=n[i[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let a=0,s=r.length;a<s;a++){const o=r[a].name||String(a);this.morphTargetInfluences.push(0),this.morphTargetDictionary[o]=a}}}}}const $4=new Ce,W4=new Ce;class uS extends mve{constructor(e,n){super(e,n),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(e.index===null){const n=e.attributes.position,i=[];for(let r=0,a=n.count;r<a;r+=2)$4.fromBufferAttribute(n,r),W4.fromBufferAttribute(n,r+1),i[r]=r===0?0:i[r-1],i[r+1]=i[r]+$4.distanceTo(W4);e.setAttribute("lineDistance",new Mi(i,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}}class gve extends ta{constructor(e=null){if(super(),this.type="WireframeGeometry",this.parameters={geometry:e},e!==null){const n=[],i=new Set,r=new Ce,a=new Ce;if(e.index!==null){const s=e.attributes.position,o=e.index;let l=e.groups;l.length===0&&(l=[{start:0,count:o.count,materialIndex:0}]);for(let c=0,d=l.length;c<d;++c){const f=l[c],p=f.start,m=f.count;for(let y=p,b=p+m;y<b;y+=3)for(let x=0;x<3;x++){const v=o.getX(y+x),w=o.getX(y+(x+1)%3);r.fromBufferAttribute(s,v),a.fromBufferAttribute(s,w),q4(r,a,i)===!0&&(n.push(r.x,r.y,r.z),n.push(a.x,a.y,a.z))}}}else{const s=e.attributes.position;for(let o=0,l=s.count/3;o<l;o++)for(let c=0;c<3;c++){const d=3*o+c,f=3*o+(c+1)%3;r.fromBufferAttribute(s,d),a.fromBufferAttribute(s,f),q4(r,a,i)===!0&&(n.push(r.x,r.y,r.z),n.push(a.x,a.y,a.z))}}this.setAttribute("position",new Mi(n,3))}}copy(e){return super.copy(e),this.parameters=Object.assign({},e.parameters),this}}function q4(t,e,n){const i=`${t.x},${t.y},${t.z}-${e.x},${e.y},${e.z}`,r=`${e.x},${e.y},${e.z}-${t.x},${t.y},${t.z}`;return n.has(i)===!0||n.has(r)===!0?!1:(n.add(i),n.add(r),!0)}class vve extends Zp{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ut(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ut(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=n$,this.normalScale=new Ht(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=GP,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.lightMap=e.lightMap,this.lightMapIntensity=e.lightMapIntensity,this.aoMap=e.aoMap,this.aoMapIntensity=e.aoMapIntensity,this.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,this.bumpMap=e.bumpMap,this.bumpScale=e.bumpScale,this.normalMap=e.normalMap,this.normalMapType=e.normalMapType,this.normalScale.copy(e.normalScale),this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this.specularMap=e.specularMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.combine=e.combine,this.reflectivity=e.reflectivity,this.refractionRatio=e.refractionRatio,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.flatShading=e.flatShading,this.fog=e.fog,this}}class xve extends nv{constructor(e){super(),this.isLineDashedMaterial=!0,this.type="LineDashedMaterial",this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(e)}copy(e){return super.copy(e),this.scale=e.scale,this.dashSize=e.dashSize,this.gapSize=e.gapSize,this}}class M$ extends fa{constructor(e,n=1){super(),this.isLight=!0,this.type="Light",this.color=new Ut(e),this.intensity=n}dispose(){}copy(e,n){return super.copy(e,n),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const n=super.toJSON(e);return n.object.color=this.color.getHex(),n.object.intensity=this.intensity,this.groundColor!==void 0&&(n.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(n.object.distance=this.distance),this.angle!==void 0&&(n.object.angle=this.angle),this.decay!==void 0&&(n.object.decay=this.decay),this.penumbra!==void 0&&(n.object.penumbra=this.penumbra),this.shadow!==void 0&&(n.object.shadow=this.shadow.toJSON()),n}}const GA=new $n,X4=new Ce,Y4=new Ce;class yve{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Ht(512,512),this.map=null,this.mapPass=null,this.matrix=new $n,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new lS,this._frameExtents=new Ht(1,1),this._viewportCount=1,this._viewports=[new Un(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const n=this.camera,i=this.matrix;X4.setFromMatrixPosition(e.matrixWorld),n.position.copy(X4),Y4.setFromMatrixPosition(e.target.matrixWorld),n.lookAt(Y4),n.updateMatrixWorld(),GA.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(GA),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(GA)}getViewport(e){return this._viewports[e]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(e){return this.camera=e.camera.clone(),this.bias=e.bias,this.radius=e.radius,this.mapSize.copy(e.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const e={};return this.bias!==0&&(e.bias=this.bias),this.normalBias!==0&&(e.normalBias=this.normalBias),this.radius!==1&&(e.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}const K4=new $n,xg=new Ce,$A=new Ce;class bve extends yve{constructor(){super(new Ja(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Ht(4,2),this._viewportCount=6,this._viewports=[new Un(2,1,1,1),new Un(0,1,1,1),new Un(3,1,1,1),new Un(1,1,1,1),new Un(3,0,1,1),new Un(1,0,1,1)],this._cubeDirections=[new Ce(1,0,0),new Ce(-1,0,0),new Ce(0,0,1),new Ce(0,0,-1),new Ce(0,1,0),new Ce(0,-1,0)],this._cubeUps=[new Ce(0,1,0),new Ce(0,1,0),new Ce(0,1,0),new Ce(0,1,0),new Ce(0,0,1),new Ce(0,0,-1)]}updateMatrices(e,n=0){const i=this.camera,r=this.matrix,a=e.distance||i.far;a!==i.far&&(i.far=a,i.updateProjectionMatrix()),xg.setFromMatrixPosition(e.matrixWorld),i.position.copy(xg),$A.copy(i.position),$A.add(this._cubeDirections[n]),i.up.copy(this._cubeUps[n]),i.lookAt($A),i.updateMatrixWorld(),r.makeTranslation(-xg.x,-xg.y,-xg.z),K4.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse),this._frustum.setFromProjectionMatrix(K4)}}class _ve extends M${constructor(e,n,i=0,r=2){super(e,n),this.isPointLight=!0,this.type="PointLight",this.distance=i,this.decay=r,this.shadow=new bve}get power(){return this.intensity*4*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e,n){return super.copy(e,n),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}class Sve extends M${constructor(e,n){super(e,n),this.isAmbientLight=!0,this.type="AmbientLight"}}class wve extends ta{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(e){return super.copy(e),this.instanceCount=e.instanceCount,this}toJSON(){const e=super.toJSON();return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}}class ER extends ove{constructor(e,n,i=1){super(e,n),this.isInstancedInterleavedBuffer=!0,this.meshPerAttribute=i}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}clone(e){const n=super.clone(e);return n.meshPerAttribute=this.meshPerAttribute,n}toJSON(e){const n=super.toJSON(e);return n.isInstancedInterleavedBuffer=!0,n.meshPerAttribute=this.meshPerAttribute,n}}class Z4{constructor(e=1,n=0,i=0){return this.radius=e,this.phi=n,this.theta=i,this}set(e,n,i){return this.radius=e,this.phi=n,this.theta=i,this}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this}makeSafe(){return this.phi=Math.max(1e-6,Math.min(Math.PI-1e-6,this.phi)),this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,n,i){return this.radius=Math.sqrt(e*e+n*n+i*i),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,i),this.phi=Math.acos(Fr(n/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}}const J4=new Ce,Vy=new Ce;class Mve{constructor(e=new Ce,n=new Ce){this.start=e,this.end=n}set(e,n){return this.start.copy(e),this.end.copy(n),this}copy(e){return this.start.copy(e.start),this.end.copy(e.end),this}getCenter(e){return e.addVectors(this.start,this.end).multiplyScalar(.5)}delta(e){return e.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(e,n){return this.delta(n).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,n){J4.subVectors(e,this.start),Vy.subVectors(this.end,this.start);const i=Vy.dot(Vy);let a=Vy.dot(J4)/i;return n&&(a=Fr(a,0,1)),a}closestPointToPoint(e,n,i){const r=this.closestPointToPointParameter(e,n);return this.delta(i).multiplyScalar(r).add(this.start)}applyMatrix4(e){return this.start.applyMatrix4(e),this.end.applyMatrix4(e),this}equals(e){return e.start.equals(this.start)&&e.end.equals(this.end)}clone(){return new this.constructor().copy(this)}}class Eve extends uS{constructor(e=1){const n=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],r=new ta;r.setAttribute("position",new Mi(n,3)),r.setAttribute("color",new Mi(i,3));const a=new nv({vertexColors:!0,toneMapped:!1});super(r,a),this.type="AxesHelper"}setColors(e,n,i){const r=new Ut,a=this.geometry.attributes.color.array;return r.set(e),r.toArray(a,0),r.toArray(a,3),r.set(n),r.toArray(a,6),r.toArray(a,9),r.set(i),r.toArray(a,12),r.toArray(a,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}typeof __THREE_DEVTOOLS__<"u"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:aS}}));typeof window<"u"&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=aS);class Uo{constructor(e,n,i,r,a="div"){this.parent=e,this.object=n,this.property=i,this._disabled=!1,this._hidden=!1,this.initialValue=this.getValue(),this.domElement=document.createElement(a),this.domElement.classList.add("controller"),this.domElement.classList.add(r),this.$name=document.createElement("div"),this.$name.classList.add("name"),Uo.nextNameID=Uo.nextNameID||0,this.$name.id=`lil-gui-name-${++Uo.nextNameID}`,this.$widget=document.createElement("div"),this.$widget.classList.add("widget"),this.$disable=this.$widget,this.domElement.appendChild(this.$name),this.domElement.appendChild(this.$widget),this.domElement.addEventListener("keydown",s=>s.stopPropagation()),this.domElement.addEventListener("keyup",s=>s.stopPropagation()),this.parent.children.push(this),this.parent.controllers.push(this),this.parent.$children.appendChild(this.domElement),this._listenCallback=this._listenCallback.bind(this),this.name(i)}name(e){return this._name=e,this.$name.textContent=e,this}onChange(e){return this._onChange=e,this}_callOnChange(){this.parent._callOnChange(this),this._onChange!==void 0&&this._onChange.call(this,this.getValue()),this._changed=!0}onFinishChange(e){return this._onFinishChange=e,this}_callOnFinishChange(){this._changed&&(this.parent._callOnFinishChange(this),this._onFinishChange!==void 0&&this._onFinishChange.call(this,this.getValue())),this._changed=!1}reset(){return this.setValue(this.initialValue),this._callOnFinishChange(),this}enable(e=!0){return this.disable(!e)}disable(e=!0){return e===this._disabled?this:(this._disabled=e,this.domElement.classList.toggle("disabled",e),this.$disable.toggleAttribute("disabled",e),this)}show(e=!0){return this._hidden=!e,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}options(e){const n=this.parent.add(this.object,this.property,e);return n.name(this._name),this.destroy(),n}min(e){return this}max(e){return this}step(e){return this}decimals(e){return this}listen(e=!0){return this._listening=e,this._listenCallbackID!==void 0&&(cancelAnimationFrame(this._listenCallbackID),this._listenCallbackID=void 0),this._listening&&this._listenCallback(),this}_listenCallback(){this._listenCallbackID=requestAnimationFrame(this._listenCallback);const e=this.save();e!==this._listenPrevValue&&this.updateDisplay(),this._listenPrevValue=e}getValue(){return this.object[this.property]}setValue(e){return this.getValue()!==e&&(this.object[this.property]=e,this._callOnChange(),this.updateDisplay()),this}updateDisplay(){return this}load(e){return this.setValue(e),this._callOnFinishChange(),this}save(){return this.getValue()}destroy(){this.listen(!1),this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.controllers.splice(this.parent.controllers.indexOf(this),1),this.parent.$children.removeChild(this.domElement)}}class Ave extends Uo{constructor(e,n,i){super(e,n,i,"boolean","label"),this.$input=document.createElement("input"),this.$input.setAttribute("type","checkbox"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$widget.appendChild(this.$input),this.$input.addEventListener("change",()=>{this.setValue(this.$input.checked),this._callOnFinishChange()}),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.checked=this.getValue(),this}}function AR(t){let e,n;return(e=t.match(/(#|0x)?([a-f0-9]{6})/i))?n=e[2]:(e=t.match(/rgb\(\s*(\d*)\s*,\s*(\d*)\s*,\s*(\d*)\s*\)/))?n=parseInt(e[1]).toString(16).padStart(2,0)+parseInt(e[2]).toString(16).padStart(2,0)+parseInt(e[3]).toString(16).padStart(2,0):(e=t.match(/^#?([a-f0-9])([a-f0-9])([a-f0-9])$/i))&&(n=e[1]+e[1]+e[2]+e[2]+e[3]+e[3]),n?"#"+n:!1}const Tve={isPrimitive:!0,match:t=>typeof t=="string",fromHexString:AR,toHexString:AR},b0={isPrimitive:!0,match:t=>typeof t=="number",fromHexString:t=>parseInt(t.substring(1),16),toHexString:t=>"#"+t.toString(16).padStart(6,0)},Cve={isPrimitive:!1,match:t=>Array.isArray(t),fromHexString(t,e,n=1){const i=b0.fromHexString(t);e[0]=(i>>16&255)/255*n,e[1]=(i>>8&255)/255*n,e[2]=(i&255)/255*n},toHexString([t,e,n],i=1){i=255/i;const r=t*i<<16^e*i<<8^n*i<<0;return b0.toHexString(r)}},Rve={isPrimitive:!1,match:t=>Object(t)===t,fromHexString(t,e,n=1){const i=b0.fromHexString(t);e.r=(i>>16&255)/255*n,e.g=(i>>8&255)/255*n,e.b=(i&255)/255*n},toHexString({r:t,g:e,b:n},i=1){i=255/i;const r=t*i<<16^e*i<<8^n*i<<0;return b0.toHexString(r)}},Pve=[Tve,b0,Cve,Rve];function Dve(t){return Pve.find(e=>e.match(t))}class Nve extends Uo{constructor(e,n,i,r){super(e,n,i,"color"),this.$input=document.createElement("input"),this.$input.setAttribute("type","color"),this.$input.setAttribute("tabindex",-1),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$text=document.createElement("input"),this.$text.setAttribute("type","text"),this.$text.setAttribute("spellcheck","false"),this.$text.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$display.appendChild(this.$input),this.$widget.appendChild(this.$display),this.$widget.appendChild(this.$text),this._format=Dve(this.initialValue),this._rgbScale=r,this._initialValueHexString=this.save(),this._textFocused=!1,this.$input.addEventListener("input",()=>{this._setValueFromHexString(this.$input.value)}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$text.addEventListener("input",()=>{const a=AR(this.$text.value);a&&this._setValueFromHexString(a)}),this.$text.addEventListener("focus",()=>{this._textFocused=!0,this.$text.select()}),this.$text.addEventListener("blur",()=>{this._textFocused=!1,this.updateDisplay(),this._callOnFinishChange()}),this.$disable=this.$text,this.updateDisplay()}reset(){return this._setValueFromHexString(this._initialValueHexString),this}_setValueFromHexString(e){if(this._format.isPrimitive){const n=this._format.fromHexString(e);this.setValue(n)}else this._format.fromHexString(e,this.getValue(),this._rgbScale),this._callOnChange(),this.updateDisplay()}save(){return this._format.toHexString(this.getValue(),this._rgbScale)}load(e){return this._setValueFromHexString(e),this._callOnFinishChange(),this}updateDisplay(){return this.$input.value=this._format.toHexString(this.getValue(),this._rgbScale),this._textFocused||(this.$text.value=this.$input.value.substring(1)),this.$display.style.backgroundColor=this.$input.value,this}}class WA extends Uo{constructor(e,n,i){super(e,n,i,"function"),this.$button=document.createElement("button"),this.$button.appendChild(this.$name),this.$widget.appendChild(this.$button),this.$button.addEventListener("click",r=>{r.preventDefault(),this.getValue().call(this.object),this._callOnChange()}),this.$button.addEventListener("touchstart",()=>{},{passive:!0}),this.$disable=this.$button}}class Ove extends Uo{constructor(e,n,i,r,a,s){super(e,n,i,"number"),this._initInput(),this.min(r),this.max(a);const o=s!==void 0;this.step(o?s:this._getImplicitStep(),o),this.updateDisplay()}decimals(e){return this._decimals=e,this.updateDisplay(),this}min(e){return this._min=e,this._onUpdateMinMax(),this}max(e){return this._max=e,this._onUpdateMinMax(),this}step(e,n=!0){return this._step=e,this._stepExplicit=n,this}updateDisplay(){const e=this.getValue();if(this._hasSlider){let n=(e-this._min)/(this._max-this._min);n=Math.max(0,Math.min(n,1)),this.$fill.style.width=n*100+"%"}return this._inputFocused||(this.$input.value=this._decimals===void 0?e:e.toFixed(this._decimals)),this}_initInput(){this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("aria-labelledby",this.$name.id),window.matchMedia("(pointer: coarse)").matches&&(this.$input.setAttribute("type","number"),this.$input.setAttribute("step","any")),this.$widget.appendChild(this.$input),this.$disable=this.$input;const n=()=>{let w=parseFloat(this.$input.value);isNaN(w)||(this._stepExplicit&&(w=this._snap(w)),this.setValue(this._clamp(w)))},i=w=>{const M=parseFloat(this.$input.value);isNaN(M)||(this._snapClampSetValue(M+w),this.$input.value=this.getValue())},r=w=>{w.key==="Enter"&&this.$input.blur(),w.code==="ArrowUp"&&(w.preventDefault(),i(this._step*this._arrowKeyMultiplier(w))),w.code==="ArrowDown"&&(w.preventDefault(),i(this._step*this._arrowKeyMultiplier(w)*-1))},a=w=>{this._inputFocused&&(w.preventDefault(),i(this._step*this._normalizeMouseWheel(w)))};let s=!1,o,l,c,d,f;const p=5,m=w=>{o=w.clientX,l=c=w.clientY,s=!0,d=this.getValue(),f=0,window.addEventListener("mousemove",y),window.addEventListener("mouseup",b)},y=w=>{if(s){const M=w.clientX-o,A=w.clientY-l;Math.abs(A)>p?(w.preventDefault(),this.$input.blur(),s=!1,this._setDraggingStyle(!0,"vertical")):Math.abs(M)>p&&b()}if(!s){const M=w.clientY-c;f-=M*this._step*this._arrowKeyMultiplier(w),d+f>this._max?f=this._max-d:d+f<this._min&&(f=this._min-d),this._snapClampSetValue(d+f)}c=w.clientY},b=()=>{this._setDraggingStyle(!1,"vertical"),this._callOnFinishChange(),window.removeEventListener("mousemove",y),window.removeEventListener("mouseup",b)},x=()=>{this._inputFocused=!0},v=()=>{this._inputFocused=!1,this.updateDisplay(),this._callOnFinishChange()};this.$input.addEventListener("input",n),this.$input.addEventListener("keydown",r),this.$input.addEventListener("wheel",a,{passive:!1}),this.$input.addEventListener("mousedown",m),this.$input.addEventListener("focus",x),this.$input.addEventListener("blur",v)}_initSlider(){this._hasSlider=!0,this.$slider=document.createElement("div"),this.$slider.classList.add("slider"),this.$fill=document.createElement("div"),this.$fill.classList.add("fill"),this.$slider.appendChild(this.$fill),this.$widget.insertBefore(this.$slider,this.$input),this.domElement.classList.add("hasSlider");const e=(v,w,M,A,T)=>(v-w)/(M-w)*(T-A)+A,n=v=>{const w=this.$slider.getBoundingClientRect();let M=e(v,w.left,w.right,this._min,this._max);this._snapClampSetValue(M)},i=v=>{this._setDraggingStyle(!0),n(v.clientX),window.addEventListener("mousemove",r),window.addEventListener("mouseup",a)},r=v=>{n(v.clientX)},a=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",a)};let s=!1,o,l;const c=v=>{v.preventDefault(),this._setDraggingStyle(!0),n(v.touches[0].clientX),s=!1},d=v=>{v.touches.length>1||(this._hasScrollBar?(o=v.touches[0].clientX,l=v.touches[0].clientY,s=!0):c(v),window.addEventListener("touchmove",f,{passive:!1}),window.addEventListener("touchend",p))},f=v=>{if(s){const w=v.touches[0].clientX-o,M=v.touches[0].clientY-l;Math.abs(w)>Math.abs(M)?c(v):(window.removeEventListener("touchmove",f),window.removeEventListener("touchend",p))}else v.preventDefault(),n(v.touches[0].clientX)},p=()=>{this._callOnFinishChange(),this._setDraggingStyle(!1),window.removeEventListener("touchmove",f),window.removeEventListener("touchend",p)},m=this._callOnFinishChange.bind(this),y=400;let b;const x=v=>{if(Math.abs(v.deltaX)<Math.abs(v.deltaY)&&this._hasScrollBar)return;v.preventDefault();const M=this._normalizeMouseWheel(v)*this._step;this._snapClampSetValue(this.getValue()+M),this.$input.value=this.getValue(),clearTimeout(b),b=setTimeout(m,y)};this.$slider.addEventListener("mousedown",i),this.$slider.addEventListener("touchstart",d,{passive:!1}),this.$slider.addEventListener("wheel",x,{passive:!1})}_setDraggingStyle(e,n="horizontal"){this.$slider&&this.$slider.classList.toggle("active",e),document.body.classList.toggle("lil-gui-dragging",e),document.body.classList.toggle(`lil-gui-${n}`,e)}_getImplicitStep(){return this._hasMin&&this._hasMax?(this._max-this._min)/1e3:.1}_onUpdateMinMax(){!this._hasSlider&&this._hasMin&&this._hasMax&&(this._stepExplicit||this.step(this._getImplicitStep(),!1),this._initSlider(),this.updateDisplay())}_normalizeMouseWheel(e){let{deltaX:n,deltaY:i}=e;return Math.floor(e.deltaY)!==e.deltaY&&e.wheelDelta&&(n=0,i=-e.wheelDelta/120,i*=this._stepExplicit?1:10),n+-i}_arrowKeyMultiplier(e){let n=this._stepExplicit?1:10;return e.shiftKey?n*=10:e.altKey&&(n/=10),n}_snap(e){const n=Math.round(e/this._step)*this._step;return parseFloat(n.toPrecision(15))}_clamp(e){return e<this._min&&(e=this._min),e>this._max&&(e=this._max),e}_snapClampSetValue(e){this.setValue(this._clamp(this._snap(e)))}get _hasScrollBar(){const e=this.parent.root.$children;return e.scrollHeight>e.clientHeight}get _hasMin(){return this._min!==void 0}get _hasMax(){return this._max!==void 0}}class Lve extends Uo{constructor(e,n,i,r){super(e,n,i,"option"),this.$select=document.createElement("select"),this.$select.setAttribute("aria-labelledby",this.$name.id),this.$display=document.createElement("div"),this.$display.classList.add("display"),this.$select.addEventListener("change",()=>{this.setValue(this._values[this.$select.selectedIndex]),this._callOnFinishChange()}),this.$select.addEventListener("focus",()=>{this.$display.classList.add("focus")}),this.$select.addEventListener("blur",()=>{this.$display.classList.remove("focus")}),this.$widget.appendChild(this.$select),this.$widget.appendChild(this.$display),this.$disable=this.$select,this.options(r)}options(e){return this._values=Array.isArray(e)?e:Object.values(e),this._names=Array.isArray(e)?e:Object.keys(e),this.$select.replaceChildren(),this._names.forEach(n=>{const i=document.createElement("option");i.textContent=n,this.$select.appendChild(i)}),this.updateDisplay(),this}updateDisplay(){const e=this.getValue(),n=this._values.indexOf(e);return this.$select.selectedIndex=n,this.$display.textContent=n===-1?e:this._names[n],this}}class kve extends Uo{constructor(e,n,i){super(e,n,i,"string"),this.$input=document.createElement("input"),this.$input.setAttribute("type","text"),this.$input.setAttribute("spellcheck","false"),this.$input.setAttribute("aria-labelledby",this.$name.id),this.$input.addEventListener("input",()=>{this.setValue(this.$input.value)}),this.$input.addEventListener("keydown",r=>{r.code==="Enter"&&this.$input.blur()}),this.$input.addEventListener("blur",()=>{this._callOnFinishChange()}),this.$widget.appendChild(this.$input),this.$disable=this.$input,this.updateDisplay()}updateDisplay(){return this.$input.value=this.getValue(),this}}const Ive=`.lil-gui {
- font-family: var(--font-family);
- font-size: var(--font-size);
- line-height: 1;
- font-weight: normal;
- font-style: normal;
- text-align: left;
- color: var(--text-color);
- user-select: none;
- -webkit-user-select: none;
- touch-action: manipulation;
- --background-color: #1f1f1f;
- --text-color: #ebebeb;
- --title-background-color: #111111;
- --title-text-color: #ebebeb;
- --widget-color: #424242;
- --hover-color: #4f4f4f;
- --focus-color: #595959;
- --number-color: #2cc9ff;
- --string-color: #a2db3c;
- --font-size: 11px;
- --input-font-size: 11px;
- --font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
- --font-family-mono: Menlo, Monaco, Consolas, "Droid Sans Mono", monospace;
- --padding: 4px;
- --spacing: 4px;
- --widget-height: 20px;
- --title-height: calc(var(--widget-height) + var(--spacing) * 1.25);
- --name-width: 45%;
- --slider-knob-width: 2px;
- --slider-input-width: 27%;
- --color-input-width: 27%;
- --slider-input-min-width: 45px;
- --color-input-min-width: 45px;
- --folder-indent: 7px;
- --widget-padding: 0 0 0 3px;
- --widget-border-radius: 2px;
- --checkbox-size: calc(0.75 * var(--widget-height));
- --scrollbar-width: 5px;
- }
- .lil-gui, .lil-gui * {
- box-sizing: border-box;
- margin: 0;
- padding: 0;
- }
- .lil-gui.root {
- width: var(--width, 245px);
- display: flex;
- flex-direction: column;
- background: var(--background-color);
- }
- .lil-gui.root > .title {
- background: var(--title-background-color);
- color: var(--title-text-color);
- }
- .lil-gui.root > .children {
- overflow-x: hidden;
- overflow-y: auto;
- }
- .lil-gui.root > .children::-webkit-scrollbar {
- width: var(--scrollbar-width);
- height: var(--scrollbar-width);
- background: var(--background-color);
- }
- .lil-gui.root > .children::-webkit-scrollbar-thumb {
- border-radius: var(--scrollbar-width);
- background: var(--focus-color);
- }
- @media (pointer: coarse) {
- .lil-gui.allow-touch-styles, .lil-gui.allow-touch-styles .lil-gui {
- --widget-height: 28px;
- --padding: 6px;
- --spacing: 6px;
- --font-size: 13px;
- --input-font-size: 16px;
- --folder-indent: 10px;
- --scrollbar-width: 7px;
- --slider-input-min-width: 50px;
- --color-input-min-width: 65px;
- }
- }
- .lil-gui.force-touch-styles, .lil-gui.force-touch-styles .lil-gui {
- --widget-height: 28px;
- --padding: 6px;
- --spacing: 6px;
- --font-size: 13px;
- --input-font-size: 16px;
- --folder-indent: 10px;
- --scrollbar-width: 7px;
- --slider-input-min-width: 50px;
- --color-input-min-width: 65px;
- }
- .lil-gui.autoPlace {
- max-height: 100%;
- position: fixed;
- top: 0;
- right: 15px;
- z-index: 1001;
- }
- .lil-gui .controller {
- display: flex;
- align-items: center;
- padding: 0 var(--padding);
- margin: var(--spacing) 0;
- }
- .lil-gui .controller.disabled {
- opacity: 0.5;
- }
- .lil-gui .controller.disabled, .lil-gui .controller.disabled * {
- pointer-events: none !important;
- }
- .lil-gui .controller > .name {
- min-width: var(--name-width);
- flex-shrink: 0;
- white-space: pre;
- padding-right: var(--spacing);
- line-height: var(--widget-height);
- }
- .lil-gui .controller .widget {
- position: relative;
- display: flex;
- align-items: center;
- width: 100%;
- min-height: var(--widget-height);
- }
- .lil-gui .controller.string input {
- color: var(--string-color);
- }
- .lil-gui .controller.boolean {
- cursor: pointer;
- }
- .lil-gui .controller.color .display {
- width: 100%;
- height: var(--widget-height);
- border-radius: var(--widget-border-radius);
- position: relative;
- }
- @media (hover: hover) {
- .lil-gui .controller.color .display:hover:before {
- content: " ";
- display: block;
- position: absolute;
- border-radius: var(--widget-border-radius);
- border: 1px solid #fff9;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- }
- }
- .lil-gui .controller.color input[type=color] {
- opacity: 0;
- width: 100%;
- height: 100%;
- cursor: pointer;
- }
- .lil-gui .controller.color input[type=text] {
- margin-left: var(--spacing);
- font-family: var(--font-family-mono);
- min-width: var(--color-input-min-width);
- width: var(--color-input-width);
- flex-shrink: 0;
- }
- .lil-gui .controller.option select {
- opacity: 0;
- position: absolute;
- width: 100%;
- max-width: 100%;
- }
- .lil-gui .controller.option .display {
- position: relative;
- pointer-events: none;
- border-radius: var(--widget-border-radius);
- height: var(--widget-height);
- line-height: var(--widget-height);
- max-width: 100%;
- overflow: hidden;
- word-break: break-all;
- padding-left: 0.55em;
- padding-right: 1.75em;
- background: var(--widget-color);
- }
- @media (hover: hover) {
- .lil-gui .controller.option .display.focus {
- background: var(--focus-color);
- }
- }
- .lil-gui .controller.option .display.active {
- background: var(--focus-color);
- }
- .lil-gui .controller.option .display:after {
- font-family: "lil-gui";
- content: "↕";
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- padding-right: 0.375em;
- }
- .lil-gui .controller.option .widget,
- .lil-gui .controller.option select {
- cursor: pointer;
- }
- @media (hover: hover) {
- .lil-gui .controller.option .widget:hover .display {
- background: var(--hover-color);
- }
- }
- .lil-gui .controller.number input {
- color: var(--number-color);
- }
- .lil-gui .controller.number.hasSlider input {
- margin-left: var(--spacing);
- width: var(--slider-input-width);
- min-width: var(--slider-input-min-width);
- flex-shrink: 0;
- }
- .lil-gui .controller.number .slider {
- width: 100%;
- height: var(--widget-height);
- background: var(--widget-color);
- border-radius: var(--widget-border-radius);
- padding-right: var(--slider-knob-width);
- overflow: hidden;
- cursor: ew-resize;
- touch-action: pan-y;
- }
- @media (hover: hover) {
- .lil-gui .controller.number .slider:hover {
- background: var(--hover-color);
- }
- }
- .lil-gui .controller.number .slider.active {
- background: var(--focus-color);
- }
- .lil-gui .controller.number .slider.active .fill {
- opacity: 0.95;
- }
- .lil-gui .controller.number .fill {
- height: 100%;
- border-right: var(--slider-knob-width) solid var(--number-color);
- box-sizing: content-box;
- }
- .lil-gui-dragging .lil-gui {
- --hover-color: var(--widget-color);
- }
- .lil-gui-dragging * {
- cursor: ew-resize !important;
- }
- .lil-gui-dragging.lil-gui-vertical * {
- cursor: ns-resize !important;
- }
- .lil-gui .title {
- height: var(--title-height);
- line-height: calc(var(--title-height) - 4px);
- font-weight: 600;
- padding: 0 var(--padding);
- -webkit-tap-highlight-color: transparent;
- cursor: pointer;
- outline: none;
- text-decoration-skip: objects;
- }
- .lil-gui .title:before {
- font-family: "lil-gui";
- content: "▾";
- padding-right: 2px;
- display: inline-block;
- }
- .lil-gui .title:active {
- background: var(--title-background-color);
- opacity: 0.75;
- }
- @media (hover: hover) {
- body:not(.lil-gui-dragging) .lil-gui .title:hover {
- background: var(--title-background-color);
- opacity: 0.85;
- }
- .lil-gui .title:focus {
- text-decoration: underline var(--focus-color);
- }
- }
- .lil-gui.root > .title:focus {
- text-decoration: none !important;
- }
- .lil-gui.closed > .title:before {
- content: "▸";
- }
- .lil-gui.closed > .children {
- transform: translateY(-7px);
- opacity: 0;
- }
- .lil-gui.closed:not(.transition) > .children {
- display: none;
- }
- .lil-gui.transition > .children {
- transition-duration: 300ms;
- transition-property: height, opacity, transform;
- transition-timing-function: cubic-bezier(0.2, 0.6, 0.35, 1);
- overflow: hidden;
- pointer-events: none;
- }
- .lil-gui .children:empty:before {
- content: "Empty";
- padding: 0 var(--padding);
- margin: var(--spacing) 0;
- display: block;
- height: var(--widget-height);
- font-style: italic;
- line-height: var(--widget-height);
- opacity: 0.5;
- }
- .lil-gui.root > .children > .lil-gui > .title {
- border: 0 solid var(--widget-color);
- border-width: 1px 0;
- transition: border-color 300ms;
- }
- .lil-gui.root > .children > .lil-gui.closed > .title {
- border-bottom-color: transparent;
- }
- .lil-gui + .controller {
- border-top: 1px solid var(--widget-color);
- margin-top: 0;
- padding-top: var(--spacing);
- }
- .lil-gui .lil-gui .lil-gui > .title {
- border: none;
- }
- .lil-gui .lil-gui .lil-gui > .children {
- border: none;
- margin-left: var(--folder-indent);
- border-left: 2px solid var(--widget-color);
- }
- .lil-gui .lil-gui .controller {
- border: none;
- }
- .lil-gui label, .lil-gui input, .lil-gui button {
- -webkit-tap-highlight-color: transparent;
- }
- .lil-gui input {
- border: 0;
- outline: none;
- font-family: var(--font-family);
- font-size: var(--input-font-size);
- border-radius: var(--widget-border-radius);
- height: var(--widget-height);
- background: var(--widget-color);
- color: var(--text-color);
- width: 100%;
- }
- @media (hover: hover) {
- .lil-gui input:hover {
- background: var(--hover-color);
- }
- .lil-gui input:active {
- background: var(--focus-color);
- }
- }
- .lil-gui input:disabled {
- opacity: 1;
- }
- .lil-gui input[type=text],
- .lil-gui input[type=number] {
- padding: var(--widget-padding);
- -moz-appearance: textfield;
- }
- .lil-gui input[type=text]:focus,
- .lil-gui input[type=number]:focus {
- background: var(--focus-color);
- }
- .lil-gui input[type=checkbox] {
- appearance: none;
- width: var(--checkbox-size);
- height: var(--checkbox-size);
- border-radius: var(--widget-border-radius);
- text-align: center;
- cursor: pointer;
- }
- .lil-gui input[type=checkbox]:checked:before {
- font-family: "lil-gui";
- content: "✓";
- font-size: var(--checkbox-size);
- line-height: var(--checkbox-size);
- }
- @media (hover: hover) {
- .lil-gui input[type=checkbox]:focus {
- box-shadow: inset 0 0 0 1px var(--focus-color);
- }
- }
- .lil-gui button {
- outline: none;
- cursor: pointer;
- font-family: var(--font-family);
- font-size: var(--font-size);
- color: var(--text-color);
- width: 100%;
- height: var(--widget-height);
- text-transform: none;
- background: var(--widget-color);
- border-radius: var(--widget-border-radius);
- border: none;
- }
- @media (hover: hover) {
- .lil-gui button:hover {
- background: var(--hover-color);
- }
- .lil-gui button:focus {
- box-shadow: inset 0 0 0 1px var(--focus-color);
- }
- }
- .lil-gui button:active {
- background: var(--focus-color);
- }
- @font-face {
- font-family: "lil-gui";
- src: url("data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAAUsAAsAAAAACJwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAAH4AAADAImwmYE9TLzIAAAGIAAAAPwAAAGBKqH5SY21hcAAAAcgAAAD0AAACrukyyJBnbHlmAAACvAAAAF8AAACEIZpWH2hlYWQAAAMcAAAAJwAAADZfcj2zaGhlYQAAA0QAAAAYAAAAJAC5AHhobXR4AAADXAAAABAAAABMAZAAAGxvY2EAAANsAAAAFAAAACgCEgIybWF4cAAAA4AAAAAeAAAAIAEfABJuYW1lAAADoAAAASIAAAIK9SUU/XBvc3QAAATEAAAAZgAAAJCTcMc2eJxVjbEOgjAURU+hFRBK1dGRL+ALnAiToyMLEzFpnPz/eAshwSa97517c/MwwJmeB9kwPl+0cf5+uGPZXsqPu4nvZabcSZldZ6kfyWnomFY/eScKqZNWupKJO6kXN3K9uCVoL7iInPr1X5baXs3tjuMqCtzEuagm/AAlzQgPAAB4nGNgYRBlnMDAysDAYM/gBiT5oLQBAwuDJAMDEwMrMwNWEJDmmsJwgCFeXZghBcjlZMgFCzOiKOIFAB71Bb8AeJy1kjFuwkAQRZ+DwRAwBtNQRUGKQ8OdKCAWUhAgKLhIuAsVSpWz5Bbkj3dEgYiUIszqWdpZe+Z7/wB1oCYmIoboiwiLT2WjKl/jscrHfGg/pKdMkyklC5Zs2LEfHYpjcRoPzme9MWWmk3dWbK9ObkWkikOetJ554fWyoEsmdSlt+uR0pCJR34b6t/TVg1SY3sYvdf8vuiKrpyaDXDISiegp17p7579Gp3p++y7HPAiY9pmTibljrr85qSidtlg4+l25GLCaS8e6rRxNBmsnERunKbaOObRz7N72ju5vdAjYpBXHgJylOAVsMseDAPEP8LYoUHicY2BiAAEfhiAGJgZWBgZ7RnFRdnVJELCQlBSRlATJMoLV2DK4glSYs6ubq5vbKrJLSbGrgEmovDuDJVhe3VzcXFwNLCOILB/C4IuQ1xTn5FPilBTj5FPmBAB4WwoqAHicY2BkYGAA4sk1sR/j+W2+MnAzpDBgAyEMQUCSg4EJxAEAwUgFHgB4nGNgZGBgSGFggJMhDIwMqEAYAByHATJ4nGNgAIIUNEwmAABl3AGReJxjYAACIQYlBiMGJ3wQAEcQBEV4nGNgZGBgEGZgY2BiAAEQyQWEDAz/wXwGAAsPATIAAHicXdBNSsNAHAXwl35iA0UQXYnMShfS9GPZA7T7LgIu03SSpkwzYTIt1BN4Ak/gKTyAeCxfw39jZkjymzcvAwmAW/wgwHUEGDb36+jQQ3GXGot79L24jxCP4gHzF/EIr4jEIe7wxhOC3g2TMYy4Q7+Lu/SHuEd/ivt4wJd4wPxbPEKMX3GI5+DJFGaSn4qNzk8mcbKSR6xdXdhSzaOZJGtdapd4vVPbi6rP+cL7TGXOHtXKll4bY1Xl7EGnPtp7Xy2n00zyKLVHfkHBa4IcJ2oD3cgggWvt/V/FbDrUlEUJhTn/0azVWbNTNr0Ens8de1tceK9xZmfB1CPjOmPH4kitmvOubcNpmVTN3oFJyjzCvnmrwhJTzqzVj9jiSX911FjeAAB4nG3HMRKCMBBA0f0giiKi4DU8k0V2GWbIZDOh4PoWWvq6J5V8If9NVNQcaDhyouXMhY4rPTcG7jwYmXhKq8Wz+p762aNaeYXom2n3m2dLTVgsrCgFJ7OTmIkYbwIbC6vIB7WmFfAAAA==") format("woff");
- }`;function Uve(t){const e=document.createElement("style");e.innerHTML=t;const n=document.querySelector("head link[rel=stylesheet], head style");n?document.head.insertBefore(e,n):document.head.appendChild(e)}let Q4=!1;class u_{constructor({parent:e,autoPlace:n=e===void 0,container:i,width:r,title:a="Controls",closeFolders:s=!1,injectStyles:o=!0,touchStyles:l=!0}={}){if(this.parent=e,this.root=e?e.root:this,this.children=[],this.controllers=[],this.folders=[],this._closed=!1,this._hidden=!1,this.domElement=document.createElement("div"),this.domElement.classList.add("lil-gui"),this.$title=document.createElement("div"),this.$title.classList.add("title"),this.$title.setAttribute("role","button"),this.$title.setAttribute("aria-expanded",!0),this.$title.setAttribute("tabindex",0),this.$title.addEventListener("click",()=>this.openAnimated(this._closed)),this.$title.addEventListener("keydown",c=>{(c.code==="Enter"||c.code==="Space")&&(c.preventDefault(),this.$title.click())}),this.$title.addEventListener("touchstart",()=>{},{passive:!0}),this.$children=document.createElement("div"),this.$children.classList.add("children"),this.domElement.appendChild(this.$title),this.domElement.appendChild(this.$children),this.title(a),this.parent){this.parent.children.push(this),this.parent.folders.push(this),this.parent.$children.appendChild(this.domElement);return}this.domElement.classList.add("root"),l&&this.domElement.classList.add("allow-touch-styles"),!Q4&&o&&(Uve(Ive),Q4=!0),i?i.appendChild(this.domElement):n&&(this.domElement.classList.add("autoPlace"),document.body.appendChild(this.domElement)),r&&this.domElement.style.setProperty("--width",r+"px"),this._closeFolders=s}add(e,n,i,r,a){if(Object(i)===i)return new Lve(this,e,n,i);const s=e[n];switch(typeof s){case"number":return new Ove(this,e,n,i,r,a);case"boolean":return new Ave(this,e,n);case"string":return new kve(this,e,n);case"function":return new WA(this,e,n)}console.error(`gui.add failed
- property:`,n,`
- object:`,e,`
- value:`,s)}addColor(e,n,i=1){return new Nve(this,e,n,i)}addFolder(e){const n=new u_({parent:this,title:e});return this.root._closeFolders&&n.close(),n}load(e,n=!0){return e.controllers&&this.controllers.forEach(i=>{i instanceof WA||i._name in e.controllers&&i.load(e.controllers[i._name])}),n&&e.folders&&this.folders.forEach(i=>{i._title in e.folders&&i.load(e.folders[i._title])}),this}save(e=!0){const n={controllers:{},folders:{}};return this.controllers.forEach(i=>{if(!(i instanceof WA)){if(i._name in n.controllers)throw new Error(`Cannot save GUI with duplicate property "${i._name}"`);n.controllers[i._name]=i.save()}}),e&&this.folders.forEach(i=>{if(i._title in n.folders)throw new Error(`Cannot save GUI with duplicate folder "${i._title}"`);n.folders[i._title]=i.save()}),n}open(e=!0){return this._setClosed(!e),this.$title.setAttribute("aria-expanded",!this._closed),this.domElement.classList.toggle("closed",this._closed),this}close(){return this.open(!1)}_setClosed(e){this._closed!==e&&(this._closed=e,this._callOnOpenClose(this))}show(e=!0){return this._hidden=!e,this.domElement.style.display=this._hidden?"none":"",this}hide(){return this.show(!1)}openAnimated(e=!0){return this._setClosed(!e),this.$title.setAttribute("aria-expanded",!this._closed),requestAnimationFrame(()=>{const n=this.$children.clientHeight;this.$children.style.height=n+"px",this.domElement.classList.add("transition");const i=a=>{a.target===this.$children&&(this.$children.style.height="",this.domElement.classList.remove("transition"),this.$children.removeEventListener("transitionend",i))};this.$children.addEventListener("transitionend",i);const r=e?this.$children.scrollHeight:0;this.domElement.classList.toggle("closed",!e),requestAnimationFrame(()=>{this.$children.style.height=r+"px"})}),this}title(e){return this._title=e,this.$title.textContent=e,this}reset(e=!0){return(e?this.controllersRecursive():this.controllers).forEach(i=>i.reset()),this}onChange(e){return this._onChange=e,this}_callOnChange(e){this.parent&&this.parent._callOnChange(e),this._onChange!==void 0&&this._onChange.call(this,{object:e.object,property:e.property,value:e.getValue(),controller:e})}onFinishChange(e){return this._onFinishChange=e,this}_callOnFinishChange(e){this.parent&&this.parent._callOnFinishChange(e),this._onFinishChange!==void 0&&this._onFinishChange.call(this,{object:e.object,property:e.property,value:e.getValue(),controller:e})}onOpenClose(e){return this._onOpenClose=e,this}_callOnOpenClose(e){this.parent&&this.parent._callOnOpenClose(e),this._onOpenClose!==void 0&&this._onOpenClose.call(this,e)}destroy(){this.parent&&(this.parent.children.splice(this.parent.children.indexOf(this),1),this.parent.folders.splice(this.parent.folders.indexOf(this),1)),this.domElement.parentElement&&this.domElement.parentElement.removeChild(this.domElement),Array.from(this.children).forEach(e=>e.destroy())}controllersRecursive(){let e=Array.from(this.controllers);return this.folders.forEach(n=>{e=e.concat(n.controllersRecursive())}),e}foldersRecursive(){let e=Array.from(this.folders);return this.folders.forEach(n=>{e=e.concat(n.foldersRecursive())}),e}}function qA(t,e,n,i){return new(n||(n=Promise))((function(r,a){function s(c){try{l(i.next(c))}catch(d){a(d)}}function o(c){try{l(i.throw(c))}catch(d){a(d)}}function l(c){var d;c.done?r(c.value):(d=c.value,d instanceof n?d:new n((function(f){f(d)}))).then(s,o)}l((i=i.apply(t,[])).next())}))}class QP{constructor(e,n,i,r){this.size=e,this.width=n,this.height=i,this.charLength=r,this.chars=""}static parse(e){const n=e.split(" "),i=n[0],r=i.split("x");return new QP(i,+r[0],+r[1],+n[1])}get src(){return"data:image/jpeg;base64,"+this.chars}get isValid(){return this.chars.length==this.charLength&&/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(this.chars)}}class eD{constructor(e,n,i,r){this.src=e,this.gcode=n,this.params=i,this.comment=r}}class eB extends eD{constructor(e,n,i,r){super(e,n,i,r),this.params=i}}class Zc extends eD{constructor(e,n,i,r){super(e,n,void 0,i),this.toolIndex=r}}class tB{constructor(e,n,i,r=0){this.layer=e,this.commands=n,this.lineNumber=i,this.height=r}}class d_{constructor(e){this.lines=[],this.preamble=new tB(-1,[],0),this.layers=[],this.curZ=0,this.maxZ=0,this.metadata={thumbnails:{}},this.tolerance=0,this.tolerance=e??this.tolerance}parseGCode(e){const n=Array.isArray(e)?e:e.split(`
- `);this.lines=this.lines.concat(n);const i=this.lines2commands(n);this.groupIntoLayers(i);const r=this.parseMetadata(i.filter((a=>a.comment))).thumbnails;for(const[a,s]of Object.entries(r))this.metadata.thumbnails[a]=s;return{layers:this.layers,metadata:this.metadata}}lines2commands(e){return e.map((n=>this.parseCommand(n)))}parseCommand(e,n=!0){var i;const r=e.trim().split(";"),a=r[0],s=n&&r[1]||void 0,o=a.split(/([a-zA-Z])/g).slice(1).map((d=>d.trim())),l=o.length?`${(i=o[0])===null||i===void 0?void 0:i.toLowerCase()}${o[1]}`:"",c=this.parseParams(o.slice(2));switch(l){case"g0":case"g00":case"g1":case"g01":case"g2":case"g02":case"g3":case"g03":return new eB(e,l,c,s);case"t0":return new Zc(e,l,s,0);case"t1":return new Zc(e,l,s,1);case"t2":return new Zc(e,l,s,2);case"t3":return new Zc(e,l,s,3);case"t4":return new Zc(e,l,s,4);case"t5":return new Zc(e,l,s,5);case"t6":return new Zc(e,l,s,6);case"t7":return new Zc(e,l,s,7);default:return new eD(e,l,c,s)}}parseMove(e){return e.reduce(((n,i)=>{const r=i.charAt(0).toLowerCase();return r!="x"&&r!="y"&&r!="z"&&r!="e"&&r!="r"&&r!="f"&&r!="i"&&r!="j"||(n[r]=parseFloat(i.slice(1))),n}),{})}isAlpha(e){const n=e.charCodeAt(0);return n>=97&&n<=122||n>=65&&n<=90}parseParams(e){return e.reduce(((n,i,r,a)=>{if(r%2==0)return n;let s=a[r-1];return s=s.toLowerCase(),this.isAlpha(s)&&(n[s]=parseFloat(i)),n}),{})}groupIntoLayers(e){var n;for(let i=0;i<e.length;i++){const r=e[i];if(r instanceof eB){const a=r.params;if(a.z&&(this.curZ=a.z),((n=a.e)!==null&&n!==void 0?n:0)>0&&(a.x!=null||a.y!=null)&&Math.abs(this.curZ-(this.maxZ||-1/0))>this.tolerance){const s=Math.abs(this.curZ-this.maxZ);this.maxZ=this.curZ,this.layers.push(new tB(this.layers.length,[],i,s))}}this.maxLayer.commands.push(r)}return this.layers}get maxLayer(){var e;return(e=this.layers[this.layers.length-1])!==null&&e!==void 0?e:this.preamble}parseMetadata(e){const n={};let i;for(const r of e){const a=r.comment;if(!a)continue;const s=a.indexOf("thumbnail begin"),o=a.indexOf("thumbnail end");s>-1?i=QP.parse(a.slice(s+15).trim()):i&&(o==-1?i.chars+=a.trim():(i.isValid&&(n[i.size]=i),i=void 0))}return{thumbnails:n}}}d_.prototype.parseGcode=d_.prototype.parseGCode;const nB={type:"change"},XA={type:"start"},iB={type:"end"},Gy=new XP,rB=new tu,Fve=Math.cos(70*r$.DEG2RAD);class zve extends Af{constructor(e,n){super(),this.object=e,this.domElement=n,this.domElement.style.touchAction="none",this.enabled=!0,this.target=new Ce,this.cursor=new Ce,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:_h.ROTATE,MIDDLE:_h.DOLLY,RIGHT:_h.PAN},this.touches={ONE:Sh.ROTATE,TWO:Sh.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._domElementKeyEvents=null,this.getPolarAngle=function(){return o.phi},this.getAzimuthalAngle=function(){return o.theta},this.getDistance=function(){return this.object.position.distanceTo(this.target)},this.listenToKeyEvents=function(V){V.addEventListener("keydown",Be),this._domElementKeyEvents=V},this.stopListenToKeyEvents=function(){this._domElementKeyEvents.removeEventListener("keydown",Be),this._domElementKeyEvents=null},this.saveState=function(){i.target0.copy(i.target),i.position0.copy(i.object.position),i.zoom0=i.object.zoom},this.reset=function(){i.target.copy(i.target0),i.object.position.copy(i.position0),i.object.zoom=i.zoom0,i.object.updateProjectionMatrix(),i.dispatchEvent(nB),i.update(),a=r.NONE},this.update=(function(){const V=new Ce,ne=new uf().setFromUnitVectors(e.up,new Ce(0,1,0)),J=ne.clone().invert(),ee=new Ce,ae=new uf,ie=new Ce,we=2*Math.PI;return function(ve=null){const F=i.object.position;V.copy(F).sub(i.target),V.applyQuaternion(ne),o.setFromVector3(V),i.autoRotate&&a===r.NONE&&k((function(xe){return xe!==null?2*Math.PI/60*i.autoRotateSpeed*xe:2*Math.PI/60/60*i.autoRotateSpeed})(ve)),i.enableDamping?(o.theta+=l.theta*i.dampingFactor,o.phi+=l.phi*i.dampingFactor):(o.theta+=l.theta,o.phi+=l.phi);let L=i.minAzimuthAngle,K=i.maxAzimuthAngle;isFinite(L)&&isFinite(K)&&(L<-Math.PI?L+=we:L>Math.PI&&(L-=we),K<-Math.PI?K+=we:K>Math.PI&&(K-=we),o.theta=L<=K?Math.max(L,Math.min(K,o.theta)):o.theta>(L+K)/2?Math.max(L,o.theta):Math.min(K,o.theta)),o.phi=Math.max(i.minPolarAngle,Math.min(i.maxPolarAngle,o.phi)),o.makeSafe(),i.enableDamping===!0?i.target.addScaledVector(d,i.dampingFactor):i.target.add(d),i.target.sub(i.cursor),i.target.clampLength(i.minTargetRadius,i.maxTargetRadius),i.target.add(i.cursor),i.zoomToCursor&&D||i.object.isOrthographicCamera?o.radius=Y(o.radius):o.radius=Y(o.radius*c),V.setFromSpherical(o),V.applyQuaternion(J),F.copy(i.target).add(V),i.object.lookAt(i.target),i.enableDamping===!0?(l.theta*=1-i.dampingFactor,l.phi*=1-i.dampingFactor,d.multiplyScalar(1-i.dampingFactor)):(l.set(0,0,0),d.set(0,0,0));let pe=!1;if(i.zoomToCursor&&D){let xe=null;if(i.object.isPerspectiveCamera){const fe=V.length();xe=Y(fe*c);const Ke=fe-xe;i.object.position.addScaledVector(A,Ke),i.object.updateMatrixWorld()}else if(i.object.isOrthographicCamera){const fe=new Ce(T.x,T.y,0);fe.unproject(i.object),i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),pe=!0;const Ke=new Ce(T.x,T.y,0);Ke.unproject(i.object),i.object.position.sub(Ke).add(fe),i.object.updateMatrixWorld(),xe=V.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),i.zoomToCursor=!1;xe!==null&&(this.screenSpacePanning?i.target.set(0,0,-1).transformDirection(i.object.matrix).multiplyScalar(xe).add(i.object.position):(Gy.origin.copy(i.object.position),Gy.direction.set(0,0,-1).transformDirection(i.object.matrix),Math.abs(i.object.up.dot(Gy.direction))<Fve?e.lookAt(i.target):(rB.setFromNormalAndCoplanarPoint(i.object.up,i.target),Gy.intersectPlane(rB,i.target))))}else i.object.isOrthographicCamera&&(i.object.zoom=Math.max(i.minZoom,Math.min(i.maxZoom,i.object.zoom/c)),i.object.updateProjectionMatrix(),pe=!0);return c=1,D=!1,!!(pe||ee.distanceToSquared(i.object.position)>s||8*(1-ae.dot(i.object.quaternion))>s||ie.distanceToSquared(i.target)>0)&&(i.dispatchEvent(nB),ee.copy(i.object.position),ae.copy(i.object.quaternion),ie.copy(i.target),!0)}})(),this.dispose=function(){i.domElement.removeEventListener("contextmenu",le),i.domElement.removeEventListener("pointerdown",be),i.domElement.removeEventListener("pointercancel",he),i.domElement.removeEventListener("wheel",Ae),i.domElement.removeEventListener("pointermove",Ne),i.domElement.removeEventListener("pointerup",he),i._domElementKeyEvents!==null&&(i._domElementKeyEvents.removeEventListener("keydown",Be),i._domElementKeyEvents=null)};const i=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let a=r.NONE;const s=1e-6,o=new Z4,l=new Z4;let c=1;const d=new Ce,f=new Ht,p=new Ht,m=new Ht,y=new Ht,b=new Ht,x=new Ht,v=new Ht,w=new Ht,M=new Ht,A=new Ce,T=new Ht;let D=!1;const C=[],U={};function P(){return Math.pow(.95,i.zoomSpeed)}function k(V){l.theta-=V}function B(V){l.phi-=V}const I=(function(){const V=new Ce;return function(ne,J){V.setFromMatrixColumn(J,0),V.multiplyScalar(-ne),d.add(V)}})(),W=(function(){const V=new Ce;return function(ne,J){i.screenSpacePanning===!0?V.setFromMatrixColumn(J,1):(V.setFromMatrixColumn(J,0),V.crossVectors(i.object.up,V)),V.multiplyScalar(ne),d.add(V)}})(),O=(function(){const V=new Ce;return function(ne,J){const ee=i.domElement;if(i.object.isPerspectiveCamera){const ae=i.object.position;V.copy(ae).sub(i.target);let ie=V.length();ie*=Math.tan(i.object.fov/2*Math.PI/180),I(2*ne*ie/ee.clientHeight,i.object.matrix),W(2*J*ie/ee.clientHeight,i.object.matrix)}else i.object.isOrthographicCamera?(I(ne*(i.object.right-i.object.left)/i.object.zoom/ee.clientWidth,i.object.matrix),W(J*(i.object.top-i.object.bottom)/i.object.zoom/ee.clientHeight,i.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),i.enablePan=!1)}})();function $(V){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c/=V:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function q(V){i.object.isPerspectiveCamera||i.object.isOrthographicCamera?c*=V:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),i.enableZoom=!1)}function G(V){if(!i.zoomToCursor)return;D=!0;const ne=i.domElement.getBoundingClientRect(),J=V.clientX-ne.left,ee=V.clientY-ne.top,ae=ne.width,ie=ne.height;T.x=J/ae*2-1,T.y=-ee/ie*2+1,A.set(T.x,T.y,1).unproject(i.object).sub(i.object.position).normalize()}function Y(V){return Math.max(i.minDistance,Math.min(i.maxDistance,V))}function Q(V){f.set(V.clientX,V.clientY)}function se(V){y.set(V.clientX,V.clientY)}function H(){if(C.length===1)f.set(C[0].pageX,C[0].pageY);else{const V=.5*(C[0].pageX+C[1].pageX),ne=.5*(C[0].pageY+C[1].pageY);f.set(V,ne)}}function X(){if(C.length===1)y.set(C[0].pageX,C[0].pageY);else{const V=.5*(C[0].pageX+C[1].pageX),ne=.5*(C[0].pageY+C[1].pageY);y.set(V,ne)}}function re(){const V=C[0].pageX-C[1].pageX,ne=C[0].pageY-C[1].pageY,J=Math.sqrt(V*V+ne*ne);v.set(0,J)}function ce(V){if(C.length==1)p.set(V.pageX,V.pageY);else{const J=z(V),ee=.5*(V.pageX+J.x),ae=.5*(V.pageY+J.y);p.set(ee,ae)}m.subVectors(p,f).multiplyScalar(i.rotateSpeed);const ne=i.domElement;k(2*Math.PI*m.x/ne.clientHeight),B(2*Math.PI*m.y/ne.clientHeight),f.copy(p)}function ye(V){if(C.length===1)b.set(V.pageX,V.pageY);else{const ne=z(V),J=.5*(V.pageX+ne.x),ee=.5*(V.pageY+ne.y);b.set(J,ee)}x.subVectors(b,y).multiplyScalar(i.panSpeed),O(x.x,x.y),y.copy(b)}function me(V){const ne=z(V),J=V.pageX-ne.x,ee=V.pageY-ne.y,ae=Math.sqrt(J*J+ee*ee);w.set(0,ae),M.set(0,Math.pow(w.y/v.y,i.zoomSpeed)),$(M.y),v.copy(w)}function be(V){i.enabled!==!1&&(C.length===0&&(i.domElement.setPointerCapture(V.pointerId),i.domElement.addEventListener("pointermove",Ne),i.domElement.addEventListener("pointerup",he)),(function(ne){C.push(ne)})(V),V.pointerType==="touch"?(function(ne){switch(ct(ne),C.length){case 1:switch(i.touches.ONE){case Sh.ROTATE:if(i.enableRotate===!1)return;H(),a=r.TOUCH_ROTATE;break;case Sh.PAN:if(i.enablePan===!1)return;X(),a=r.TOUCH_PAN;break;default:a=r.NONE}break;case 2:switch(i.touches.TWO){case Sh.DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;i.enableZoom&&re(),i.enablePan&&X(),a=r.TOUCH_DOLLY_PAN;break;case Sh.DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;i.enableZoom&&re(),i.enableRotate&&H(),a=r.TOUCH_DOLLY_ROTATE;break;default:a=r.NONE}break;default:a=r.NONE}a!==r.NONE&&i.dispatchEvent(XA)})(V):(function(ne){let J;switch(ne.button){case 0:J=i.mouseButtons.LEFT;break;case 1:J=i.mouseButtons.MIDDLE;break;case 2:J=i.mouseButtons.RIGHT;break;default:J=-1}switch(J){case _h.DOLLY:if(i.enableZoom===!1)return;(function(ee){G(ee),v.set(ee.clientX,ee.clientY)})(ne),a=r.DOLLY;break;case _h.ROTATE:if(ne.ctrlKey||ne.metaKey||ne.shiftKey){if(i.enablePan===!1)return;se(ne),a=r.PAN}else{if(i.enableRotate===!1)return;Q(ne),a=r.ROTATE}break;case _h.PAN:if(ne.ctrlKey||ne.metaKey||ne.shiftKey){if(i.enableRotate===!1)return;Q(ne),a=r.ROTATE}else{if(i.enablePan===!1)return;se(ne),a=r.PAN}break;default:a=r.NONE}a!==r.NONE&&i.dispatchEvent(XA)})(V))}function Ne(V){i.enabled!==!1&&(V.pointerType==="touch"?(function(ne){switch(ct(ne),a){case r.TOUCH_ROTATE:if(i.enableRotate===!1)return;ce(ne),i.update();break;case r.TOUCH_PAN:if(i.enablePan===!1)return;ye(ne),i.update();break;case r.TOUCH_DOLLY_PAN:if(i.enableZoom===!1&&i.enablePan===!1)return;(function(J){i.enableZoom&&me(J),i.enablePan&&ye(J)})(ne),i.update();break;case r.TOUCH_DOLLY_ROTATE:if(i.enableZoom===!1&&i.enableRotate===!1)return;(function(J){i.enableZoom&&me(J),i.enableRotate&&ce(J)})(ne),i.update();break;default:a=r.NONE}})(V):(function(ne){switch(a){case r.ROTATE:if(i.enableRotate===!1)return;(function(J){p.set(J.clientX,J.clientY),m.subVectors(p,f).multiplyScalar(i.rotateSpeed);const ee=i.domElement;k(2*Math.PI*m.x/ee.clientHeight),B(2*Math.PI*m.y/ee.clientHeight),f.copy(p),i.update()})(ne);break;case r.DOLLY:if(i.enableZoom===!1)return;(function(J){w.set(J.clientX,J.clientY),M.subVectors(w,v),M.y>0?$(P()):M.y<0&&q(P()),v.copy(w),i.update()})(ne);break;case r.PAN:if(i.enablePan===!1)return;(function(J){b.set(J.clientX,J.clientY),x.subVectors(b,y).multiplyScalar(i.panSpeed),O(x.x,x.y),y.copy(b),i.update()})(ne)}})(V))}function he(V){(function(ne){delete U[ne.pointerId];for(let J=0;J<C.length;J++)if(C[J].pointerId==ne.pointerId)return void C.splice(J,1)})(V),C.length===0&&(i.domElement.releasePointerCapture(V.pointerId),i.domElement.removeEventListener("pointermove",Ne),i.domElement.removeEventListener("pointerup",he)),i.dispatchEvent(iB),a=r.NONE}function Ae(V){i.enabled!==!1&&i.enableZoom!==!1&&a===r.NONE&&(V.preventDefault(),i.dispatchEvent(XA),(function(ne){G(ne),ne.deltaY<0?q(P()):ne.deltaY>0&&$(P()),i.update()})(V),i.dispatchEvent(iB))}function Be(V){i.enabled!==!1&&i.enablePan!==!1&&(function(ne){let J=!1;switch(ne.code){case i.keys.UP:ne.ctrlKey||ne.metaKey||ne.shiftKey?B(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(0,i.keyPanSpeed),J=!0;break;case i.keys.BOTTOM:ne.ctrlKey||ne.metaKey||ne.shiftKey?B(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(0,-i.keyPanSpeed),J=!0;break;case i.keys.LEFT:ne.ctrlKey||ne.metaKey||ne.shiftKey?k(2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(i.keyPanSpeed,0),J=!0;break;case i.keys.RIGHT:ne.ctrlKey||ne.metaKey||ne.shiftKey?k(-2*Math.PI*i.rotateSpeed/i.domElement.clientHeight):O(-i.keyPanSpeed,0),J=!0}J&&(ne.preventDefault(),i.update())})(V)}function le(V){i.enabled!==!1&&V.preventDefault()}function ct(V){let ne=U[V.pointerId];ne===void 0&&(ne=new Ht,U[V.pointerId]=ne),ne.set(V.pageX,V.pageY)}function z(V){const ne=V.pointerId===C[0].pointerId?C[1]:C[0];return U[ne.pointerId]}i.domElement.addEventListener("contextmenu",le),i.domElement.addEventListener("pointerdown",be),i.domElement.addEventListener("pointercancel",he),i.domElement.addEventListener("wheel",Ae,{passive:!1}),this.update()}}gt.line={worldUnits:{value:1},linewidth:{value:1},resolution:{value:new Ht(1,1)},dashOffset:{value:0},dashScale:{value:1},dashSize:{value:1},gapSize:{value:1}},Ta.line={uniforms:YP.merge([gt.common,gt.fog,gt.line]),vertexShader:`
- #include <common>
- #include <color_pars_vertex>
- #include <fog_pars_vertex>
- #include <logdepthbuf_pars_vertex>
- #include <clipping_planes_pars_vertex>
- uniform float linewidth;
- uniform vec2 resolution;
- attribute vec3 instanceStart;
- attribute vec3 instanceEnd;
- attribute vec3 instanceColorStart;
- attribute vec3 instanceColorEnd;
- #ifdef WORLD_UNITS
- varying vec4 worldPos;
- varying vec3 worldStart;
- varying vec3 worldEnd;
- #ifdef USE_DASH
- varying vec2 vUv;
- #endif
- #else
- varying vec2 vUv;
- #endif
- #ifdef USE_DASH
- uniform float dashScale;
- attribute float instanceDistanceStart;
- attribute float instanceDistanceEnd;
- varying float vLineDistance;
- #endif
- void trimSegment( const in vec4 start, inout vec4 end ) {
- // trim end segment so it terminates between the camera plane and the near plane
- // conservative estimate of the near plane
- float a = projectionMatrix[ 2 ][ 2 ]; // 3nd entry in 3th column
- float b = projectionMatrix[ 3 ][ 2 ]; // 3nd entry in 4th column
- float nearEstimate = - 0.5 * b / a;
- float alpha = ( nearEstimate - start.z ) / ( end.z - start.z );
- end.xyz = mix( start.xyz, end.xyz, alpha );
- }
- void main() {
- #ifdef USE_COLOR
- vColor.xyz = ( position.y < 0.5 ) ? instanceColorStart : instanceColorEnd;
- #endif
- #ifdef USE_DASH
- vLineDistance = ( position.y < 0.5 ) ? dashScale * instanceDistanceStart : dashScale * instanceDistanceEnd;
- vUv = uv;
- #endif
- float aspect = resolution.x / resolution.y;
- // camera space
- vec4 start = modelViewMatrix * vec4( instanceStart, 1.0 );
- vec4 end = modelViewMatrix * vec4( instanceEnd, 1.0 );
- #ifdef WORLD_UNITS
- worldStart = start.xyz;
- worldEnd = end.xyz;
- #else
- vUv = uv;
- #endif
- // special case for perspective projection, and segments that terminate either in, or behind, the camera plane
- // clearly the gpu firmware has a way of addressing this issue when projecting into ndc space
- // but we need to perform ndc-space calculations in the shader, so we must address this issue directly
- // perhaps there is a more elegant solution -- WestLangley
- bool perspective = ( projectionMatrix[ 2 ][ 3 ] == - 1.0 ); // 4th entry in the 3rd column
- if ( perspective ) {
- if ( start.z < 0.0 && end.z >= 0.0 ) {
- trimSegment( start, end );
- } else if ( end.z < 0.0 && start.z >= 0.0 ) {
- trimSegment( end, start );
- }
- }
- // clip space
- vec4 clipStart = projectionMatrix * start;
- vec4 clipEnd = projectionMatrix * end;
- // ndc space
- vec3 ndcStart = clipStart.xyz / clipStart.w;
- vec3 ndcEnd = clipEnd.xyz / clipEnd.w;
- // direction
- vec2 dir = ndcEnd.xy - ndcStart.xy;
- // account for clip-space aspect ratio
- dir.x *= aspect;
- dir = normalize( dir );
- #ifdef WORLD_UNITS
- // get the offset direction as perpendicular to the view vector
- vec3 worldDir = normalize( end.xyz - start.xyz );
- vec3 offset;
- if ( position.y < 0.5 ) {
- offset = normalize( cross( start.xyz, worldDir ) );
- } else {
- offset = normalize( cross( end.xyz, worldDir ) );
- }
- // sign flip
- if ( position.x < 0.0 ) offset *= - 1.0;
- float forwardOffset = dot( worldDir, vec3( 0.0, 0.0, 1.0 ) );
- // don't extend the line if we're rendering dashes because we
- // won't be rendering the endcaps
- #ifndef USE_DASH
- // extend the line bounds to encompass endcaps
- start.xyz += - worldDir * linewidth * 0.5;
- end.xyz += worldDir * linewidth * 0.5;
- // shift the position of the quad so it hugs the forward edge of the line
- offset.xy -= dir * forwardOffset;
- offset.z += 0.5;
- #endif
- // endcaps
- if ( position.y > 1.0 || position.y < 0.0 ) {
- offset.xy += dir * 2.0 * forwardOffset;
- }
- // adjust for linewidth
- offset *= linewidth * 0.5;
- // set the world position
- worldPos = ( position.y < 0.5 ) ? start : end;
- worldPos.xyz += offset;
- // project the worldpos
- vec4 clip = projectionMatrix * worldPos;
- // shift the depth of the projected points so the line
- // segments overlap neatly
- vec3 clipPose = ( position.y < 0.5 ) ? ndcStart : ndcEnd;
- clip.z = clipPose.z * clip.w;
- #else
- vec2 offset = vec2( dir.y, - dir.x );
- // undo aspect ratio adjustment
- dir.x /= aspect;
- offset.x /= aspect;
- // sign flip
- if ( position.x < 0.0 ) offset *= - 1.0;
- // endcaps
- if ( position.y < 0.0 ) {
- offset += - dir;
- } else if ( position.y > 1.0 ) {
- offset += dir;
- }
- // adjust for linewidth
- offset *= linewidth;
- // adjust for clip-space to screen-space conversion // maybe resolution should be based on viewport ...
- offset /= resolution.y;
- // select end
- vec4 clip = ( position.y < 0.5 ) ? clipStart : clipEnd;
- // back to clip space
- offset *= clip.w;
- clip.xy += offset;
- #endif
- gl_Position = clip;
- vec4 mvPosition = ( position.y < 0.5 ) ? start : end; // this is an approximation
- #include <logdepthbuf_vertex>
- #include <clipping_planes_vertex>
- #include <fog_vertex>
- }
- `,fragmentShader:`
- uniform vec3 diffuse;
- uniform float opacity;
- uniform float linewidth;
- #ifdef USE_DASH
- uniform float dashOffset;
- uniform float dashSize;
- uniform float gapSize;
- #endif
- varying float vLineDistance;
- #ifdef WORLD_UNITS
- varying vec4 worldPos;
- varying vec3 worldStart;
- varying vec3 worldEnd;
- #ifdef USE_DASH
- varying vec2 vUv;
- #endif
- #else
- varying vec2 vUv;
- #endif
- #include <common>
- #include <color_pars_fragment>
- #include <fog_pars_fragment>
- #include <logdepthbuf_pars_fragment>
- #include <clipping_planes_pars_fragment>
- vec2 closestLineToLine(vec3 p1, vec3 p2, vec3 p3, vec3 p4) {
- float mua;
- float mub;
- vec3 p13 = p1 - p3;
- vec3 p43 = p4 - p3;
- vec3 p21 = p2 - p1;
- float d1343 = dot( p13, p43 );
- float d4321 = dot( p43, p21 );
- float d1321 = dot( p13, p21 );
- float d4343 = dot( p43, p43 );
- float d2121 = dot( p21, p21 );
- float denom = d2121 * d4343 - d4321 * d4321;
- float numer = d1343 * d4321 - d1321 * d4343;
- mua = numer / denom;
- mua = clamp( mua, 0.0, 1.0 );
- mub = ( d1343 + d4321 * ( mua ) ) / d4343;
- mub = clamp( mub, 0.0, 1.0 );
- return vec2( mua, mub );
- }
- void main() {
- #include <clipping_planes_fragment>
- #ifdef USE_DASH
- if ( vUv.y < - 1.0 || vUv.y > 1.0 ) discard; // discard endcaps
- if ( mod( vLineDistance + dashOffset, dashSize + gapSize ) > dashSize ) discard; // todo - FIX
- #endif
- float alpha = opacity;
- #ifdef WORLD_UNITS
- // Find the closest points on the view ray and the line segment
- vec3 rayEnd = normalize( worldPos.xyz ) * 1e5;
- vec3 lineDir = worldEnd - worldStart;
- vec2 params = closestLineToLine( worldStart, worldEnd, vec3( 0.0, 0.0, 0.0 ), rayEnd );
- vec3 p1 = worldStart + lineDir * params.x;
- vec3 p2 = rayEnd * params.y;
- vec3 delta = p1 - p2;
- float len = length( delta );
- float norm = len / linewidth;
- #ifndef USE_DASH
- #ifdef USE_ALPHA_TO_COVERAGE
- float dnorm = fwidth( norm );
- alpha = 1.0 - smoothstep( 0.5 - dnorm, 0.5 + dnorm, norm );
- #else
- if ( norm > 0.5 ) {
- discard;
- }
- #endif
- #endif
- #else
- #ifdef USE_ALPHA_TO_COVERAGE
- // artifacts appear on some hardware if a derivative is taken within a conditional
- float a = vUv.x;
- float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;
- float len2 = a * a + b * b;
- float dlen = fwidth( len2 );
- if ( abs( vUv.y ) > 1.0 ) {
- alpha = 1.0 - smoothstep( 1.0 - dlen, 1.0 + dlen, len2 );
- }
- #else
- if ( abs( vUv.y ) > 1.0 ) {
- float a = vUv.x;
- float b = ( vUv.y > 0.0 ) ? vUv.y - 1.0 : vUv.y + 1.0;
- float len2 = a * a + b * b;
- if ( len2 > 1.0 ) discard;
- }
- #endif
- #endif
- vec4 diffuseColor = vec4( diffuse, alpha );
- #include <logdepthbuf_fragment>
- #include <color_fragment>
- gl_FragColor = vec4( diffuseColor.rgb, alpha );
- #include <tonemapping_fragment>
- #include <colorspace_fragment>
- #include <fog_fragment>
- #include <premultiplied_alpha_fragment>
- }
- `};class E$ extends Du{constructor(e){super({type:"LineMaterial",uniforms:YP.clone(Ta.line.uniforms),vertexShader:Ta.line.vertexShader,fragmentShader:Ta.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(e)}get color(){return this.uniforms.diffuse.value}set color(e){this.uniforms.diffuse.value=e}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(e){e===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(e){this.uniforms.linewidth&&(this.uniforms.linewidth.value=e)}get dashed(){return"USE_DASH"in this.defines}set dashed(e){e===!0!==this.dashed&&(this.needsUpdate=!0),e===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(e){this.uniforms.dashScale.value=e}get dashSize(){return this.uniforms.dashSize.value}set dashSize(e){this.uniforms.dashSize.value=e}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(e){this.uniforms.dashOffset.value=e}get gapSize(){return this.uniforms.gapSize.value}set gapSize(e){this.uniforms.gapSize.value=e}get opacity(){return this.uniforms.opacity.value}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get resolution(){return this.uniforms.resolution.value}set resolution(e){this.uniforms.resolution.value.copy(e)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(e){this.defines&&(e===!0!==this.alphaToCoverage&&(this.needsUpdate=!0),e===!0?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1))}}const aB=new Us,$y=new Ce;class A$ extends wve{constructor(){super(),this.isLineSegmentsGeometry=!0,this.type="LineSegmentsGeometry",this.setIndex([0,2,1,2,3,1,2,4,3,4,5,3,4,6,5,6,7,5]),this.setAttribute("position",new Mi([-1,2,0,1,2,0,-1,1,0,1,1,0,-1,0,0,1,0,0,-1,-1,0,1,-1,0],3)),this.setAttribute("uv",new Mi([-1,2,1,2,-1,1,1,1,-1,-1,1,-1,-1,-2,1,-2],2))}applyMatrix4(e){const n=this.attributes.instanceStart,i=this.attributes.instanceEnd;return n!==void 0&&(n.applyMatrix4(e),i.applyMatrix4(e),n.needsUpdate=!0),this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this}setPositions(e){let n;e instanceof Float32Array?n=e:Array.isArray(e)&&(n=new Float32Array(e));const i=new ER(n,6,1);return this.setAttribute("instanceStart",new pu(i,3,0)),this.setAttribute("instanceEnd",new pu(i,3,3)),this.computeBoundingBox(),this.computeBoundingSphere(),this}setColors(e){let n;e instanceof Float32Array?n=e:Array.isArray(e)&&(n=new Float32Array(e));const i=new ER(n,6,1);return this.setAttribute("instanceColorStart",new pu(i,3,0)),this.setAttribute("instanceColorEnd",new pu(i,3,3)),this}fromWireframeGeometry(e){return this.setPositions(e.attributes.position.array),this}fromEdgesGeometry(e){return this.setPositions(e.attributes.position.array),this}fromMesh(e){return this.fromWireframeGeometry(new gve(e.geometry)),this}fromLineSegments(e){const n=e.geometry;return this.setPositions(n.attributes.position.array),this}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new Us);const e=this.attributes.instanceStart,n=this.attributes.instanceEnd;e!==void 0&&n!==void 0&&(this.boundingBox.setFromBufferAttribute(e),aB.setFromBufferAttribute(n),this.boundingBox.union(aB))}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new Io),this.boundingBox===null&&this.computeBoundingBox();const e=this.attributes.instanceStart,n=this.attributes.instanceEnd;if(e!==void 0&&n!==void 0){const i=this.boundingSphere.center;this.boundingBox.getCenter(i);let r=0;for(let a=0,s=e.count;a<s;a++)$y.fromBufferAttribute(e,a),r=Math.max(r,i.distanceToSquared($y)),$y.fromBufferAttribute(n,a),r=Math.max(r,i.distanceToSquared($y));this.boundingSphere.radius=Math.sqrt(r),isNaN(this.boundingSphere.radius)&&console.error("THREE.LineSegmentsGeometry.computeBoundingSphere(): Computed radius is NaN. The instanced position data is likely to have NaN values.",this)}}toJSON(){}applyMatrix(e){return console.warn("THREE.LineSegmentsGeometry: applyMatrix() has been renamed to applyMatrix4()."),this.applyMatrix4(e)}}const sB=new Ce,oB=new Ce,Dr=new Un,Nr=new Un,Mo=new Un,YA=new Ce,KA=new $n,Or=new Mve,lB=new Ce,Wy=new Us,qy=new Io,Eo=new Un;let Ao,Cd;function cB(t,e,n){return Eo.set(0,0,-e,1).applyMatrix4(t.projectionMatrix),Eo.multiplyScalar(1/Eo.w),Eo.x=Cd/n.width,Eo.y=Cd/n.height,Eo.applyMatrix4(t.projectionMatrixInverse),Eo.multiplyScalar(1/Eo.w),Math.abs(Math.max(Eo.x,Eo.y))}class Bve extends co{constructor(e=new A$,n=new E$({color:16777215*Math.random()})){super(e,n),this.isLineSegments2=!0,this.type="LineSegments2"}computeLineDistances(){const e=this.geometry,n=e.attributes.instanceStart,i=e.attributes.instanceEnd,r=new Float32Array(2*n.count);for(let s=0,o=0,l=n.count;s<l;s++,o+=2)sB.fromBufferAttribute(n,s),oB.fromBufferAttribute(i,s),r[o]=o===0?0:r[o-1],r[o+1]=r[o]+sB.distanceTo(oB);const a=new ER(r,2,1);return e.setAttribute("instanceDistanceStart",new pu(a,1,0)),e.setAttribute("instanceDistanceEnd",new pu(a,1,1)),this}raycast(e,n){const i=this.material.worldUnits,r=e.camera;r!==null||i||console.error('LineSegments2: "Raycaster.camera" needs to be set in order to raycast against LineSegments2 while worldUnits is set to false.');const a=e.params.Line2!==void 0&&e.params.Line2.threshold||0;Ao=e.ray;const s=this.matrixWorld,o=this.geometry,l=this.material;let c,d;Cd=l.linewidth+a,o.boundingSphere===null&&o.computeBoundingSphere(),qy.copy(o.boundingSphere).applyMatrix4(s),i?c=.5*Cd:c=cB(r,Math.max(r.near,qy.distanceToPoint(Ao.origin)),l.resolution),qy.radius+=c,Ao.intersectsSphere(qy)!==!1&&(o.boundingBox===null&&o.computeBoundingBox(),Wy.copy(o.boundingBox).applyMatrix4(s),i?d=.5*Cd:d=cB(r,Math.max(r.near,Wy.distanceToPoint(Ao.origin)),l.resolution),Wy.expandByScalar(d),Ao.intersectsBox(Wy)!==!1&&(i?(function(f,p){const m=f.matrixWorld,y=f.geometry,b=y.attributes.instanceStart,x=y.attributes.instanceEnd;for(let v=0,w=Math.min(y.instanceCount,b.count);v<w;v++){Or.start.fromBufferAttribute(b,v),Or.end.fromBufferAttribute(x,v),Or.applyMatrix4(m);const M=new Ce,A=new Ce;Ao.distanceSqToSegment(Or.start,Or.end,A,M),A.distanceTo(M)<.5*Cd&&p.push({point:A,pointOnLine:M,distance:Ao.origin.distanceTo(A),object:f,face:null,faceIndex:v,uv:null,uv1:null})}})(this,n):(function(f,p,m){const y=p.projectionMatrix,b=f.material.resolution,x=f.matrixWorld,v=f.geometry,w=v.attributes.instanceStart,M=v.attributes.instanceEnd,A=Math.min(v.instanceCount,w.count),T=-p.near;Ao.at(1,Mo),Mo.w=1,Mo.applyMatrix4(p.matrixWorldInverse),Mo.applyMatrix4(y),Mo.multiplyScalar(1/Mo.w),Mo.x*=b.x/2,Mo.y*=b.y/2,Mo.z=0,YA.copy(Mo),KA.multiplyMatrices(p.matrixWorldInverse,x);for(let D=0,C=A;D<C;D++){if(Dr.fromBufferAttribute(w,D),Nr.fromBufferAttribute(M,D),Dr.w=1,Nr.w=1,Dr.applyMatrix4(KA),Nr.applyMatrix4(KA),Dr.z>T&&Nr.z>T)continue;if(Dr.z>T){const I=Dr.z-Nr.z,W=(Dr.z-T)/I;Dr.lerp(Nr,W)}else if(Nr.z>T){const I=Nr.z-Dr.z,W=(Nr.z-T)/I;Nr.lerp(Dr,W)}Dr.applyMatrix4(y),Nr.applyMatrix4(y),Dr.multiplyScalar(1/Dr.w),Nr.multiplyScalar(1/Nr.w),Dr.x*=b.x/2,Dr.y*=b.y/2,Nr.x*=b.x/2,Nr.y*=b.y/2,Or.start.copy(Dr),Or.start.z=0,Or.end.copy(Nr),Or.end.z=0;const U=Or.closestPointToPointParameter(YA,!0);Or.at(U,lB);const P=r$.lerp(Dr.z,Nr.z,U),k=P>=-1&&P<=1,B=YA.distanceTo(lB)<.5*Cd;if(k&&B){Or.start.fromBufferAttribute(w,D),Or.end.fromBufferAttribute(M,D),Or.start.applyMatrix4(x),Or.end.applyMatrix4(x);const I=new Ce,W=new Ce;Ao.distanceSqToSegment(Or.start,Or.end,W,I),m.push({point:W,pointOnLine:I,distance:Ao.origin.distanceTo(W),object:f,face:null,faceIndex:D,uv:null,uv1:null})}}})(this,r,n)))}}class jve extends uS{constructor(e,n,i,r,a=4473924,s=8947848){a=new Ut(a),s=new Ut(s);const o=Math.round(e/n);i=Math.round(i/r)*r/2;const l=[],c=[];let d=0;for(let p=-1*(e=o*n/2);p<=e;p+=n){l.push(p,0,-1*i,p,0,i);const m=p===0?a:s;m.toArray(c,d),d+=3,m.toArray(c,d),d+=3,m.toArray(c,d),d+=3,m.toArray(c,d),d+=3}for(let p=-1*i;p<=i;p+=r){l.push(-1*e,0,p,e,0,p);const m=p===0?a:s;m.toArray(c,d),d+=3,m.toArray(c,d),d+=3,m.toArray(c,d),d+=3,m.toArray(c,d),d+=3}const f=new ta;f.setAttribute("position",new Mi(l,3)),f.setAttribute("color",new Mi(c,3)),super(f,new nv({vertexColors:!0,toneMapped:!1}))}}function Hve(t,e,n,i){const r=(function(s,o,l){s*=.5,o*=.5,l*=.5;const c=new ta,d=[];return d.push(-s,-o,-l,-s,o,-l,-s,o,-l,s,o,-l,s,o,-l,s,-o,-l,s,-o,-l,-s,-o,-l,-s,-o,l,-s,o,l,-s,o,l,s,o,l,s,o,l,s,-o,l,s,-o,l,-s,-o,l,-s,-o,-l,-s,-o,l,-s,o,-l,-s,o,l,s,o,-l,s,o,l,s,-o,-l,s,-o,l),c.setAttribute("position",new Mi(d,3)),c})(t,e,n),a=new uS(r,new xve({color:new Ut(i),dashSize:3,gapSize:1}));return a.computeLineDistances(),a}var Vg=function(){var t=0,e=document.createElement("div");function n(d){return e.appendChild(d.dom),d}function i(d){for(var f=0;f<e.children.length;f++)e.children[f].style.display=f===d?"block":"none";t=d}e.style.cssText="position:fixed;top:0;left:0;cursor:pointer;opacity:0.9;z-index:10000",e.addEventListener("click",(function(d){d.preventDefault(),i(++t%e.children.length)}),!1);var r=(performance||Date).now(),a=r,s=0,o=n(new Vg.Panel("FPS","#0ff","#002")),l=n(new Vg.Panel("MS","#0f0","#020"));if(self.performance&&self.performance.memory)var c=n(new Vg.Panel("MB","#f08","#201"));return i(0),{REVISION:16,dom:e,addPanel:n,showPanel:i,begin:function(){r=(performance||Date).now()},end:function(){s++;var d=(performance||Date).now();if(l.update(d-r,200),d>=a+1e3&&(o.update(1e3*s/(d-a),100),a=d,s=0,c)){var f=performance.memory;c.update(f.usedJSHeapSize/1048576,f.jsHeapSizeLimit/1048576)}return d},update:function(){r=this.end()},domElement:e,setMode:i}};Vg.Panel=function(t,e,n){var i=1/0,r=0,a=Math.round,s=a(window.devicePixelRatio||1),o=80*s,l=48*s,c=3*s,d=2*s,f=3*s,p=15*s,m=74*s,y=30*s,b=document.createElement("canvas");b.width=o,b.height=l,b.style.cssText="width:80px;height:48px";var x=b.getContext("2d");return x.font="bold "+9*s+"px Helvetica,Arial,sans-serif",x.textBaseline="top",x.fillStyle=n,x.fillRect(0,0,o,l),x.fillStyle=e,x.fillText(t,c,d),x.fillRect(f,p,m,y),x.fillStyle=n,x.globalAlpha=.9,x.fillRect(f,p,m,y),{dom:b,update:function(v,w){i=Math.min(i,v),r=Math.max(r,v),x.fillStyle=n,x.globalAlpha=1,x.fillRect(0,0,o,p),x.fillStyle=e,x.fillText(a(v)+" "+t+" ("+a(i)+"-"+a(r)+")",c,d),x.drawImage(b,f+s,p,m-s,y,f,p,m-s,y),x.fillRect(f+m-s,p,s,y),x.fillStyle=n,x.globalAlpha=.9,x.fillRect(f+m-s,p,s,a((1-v/w)*y))}}};var Vve=Vg;class uB{constructor(e,n){this.openFolders=[],this.watchedObject=e,this.options=n,this.gui=new u_,this.gui.title("Dev info"),this.setup()}setup(){this.loadOpenFolders(),this.options&&!this.options.renderer||this.setupRedererFolder(),this.options&&!this.options.camera||this.setupCameraFolder(),this.options&&!this.options.parser||this.setupParserFolder(),this.options&&!this.options.buildVolume||this.setupBuildVolumeFolder(),this.options&&!this.options.devHelpers||this.setupDevHelpers()}reset(){this.gui.destroy(),this.gui=new u_,this.gui.title("Dev info"),this.setup()}loadOpenFolders(){this.openFolders=JSON.parse(localStorage.getItem("dev-gui-open")||"{}").open||[]}saveOpenFolders(){this.openFolders=this.gui.foldersRecursive().filter((e=>!e._closed)).map((e=>e._title)),console.log(this.openFolders),localStorage.setItem("dev-gui-open",JSON.stringify({open:this.openFolders}))}setupRedererFolder(){const e=this.gui.addFolder("Render Info");this.openFolders.includes("Render Info")||e.close(),e.onOpenClose((()=>{this.saveOpenFolders()})),e.add(this.watchedObject.renderer.info.render,"triangles").listen(),e.add(this.watchedObject.renderer.info.render,"calls").listen(),e.add(this.watchedObject.renderer.info.render,"lines").listen(),e.add(this.watchedObject.renderer.info.render,"points").listen(),e.add(this.watchedObject.renderer.info.memory,"geometries").listen(),e.add(this.watchedObject.renderer.info.memory,"textures").listen(),e.add(this.watchedObject,"_lastRenderTime").listen()}setupCameraFolder(){const e=this.gui.addFolder("Camera");this.openFolders.includes("Camera")||e.close(),e.onOpenClose((()=>{this.saveOpenFolders()}));const n=e.addFolder("Camera position");n.add(this.watchedObject.camera.position,"x").listen(),n.add(this.watchedObject.camera.position,"y").listen(),n.add(this.watchedObject.camera.position,"z").listen();const i=e.addFolder("Camera rotation");i.add(this.watchedObject.camera.rotation,"x").listen(),i.add(this.watchedObject.camera.rotation,"y").listen(),i.add(this.watchedObject.camera.rotation,"z").listen()}setupParserFolder(){const e=this.gui.addFolder("Parser");this.openFolders.includes("Parser")||e.close(),e.onOpenClose((()=>{this.saveOpenFolders()})),e.add(this.watchedObject.parser,"curZ").listen(),e.add(this.watchedObject.parser,"maxZ").listen(),e.add(this.watchedObject.parser,"tolerance").listen(),e.add(this.watchedObject.parser.layers,"length").name("layers.count").listen(),e.add(this.watchedObject.parser.lines,"length").name("lines.count").listen()}setupBuildVolumeFolder(){const e=this.gui.addFolder("Build Volume");this.openFolders.includes("Build Volume")||e.close(),e.onOpenClose((()=>{this.saveOpenFolders()})),e.add(this.watchedObject.buildVolume,"x").min(0).max(600).listen().onChange((()=>{this.watchedObject.render()})),e.add(this.watchedObject.buildVolume,"y").min(0).max(600).listen().onChange((()=>{this.watchedObject.render()})),e.add(this.watchedObject.buildVolume,"z").min(0).max(600).listen().onChange((()=>{this.watchedObject.render()}))}setupDevHelpers(){const e=this.gui.addFolder("Dev Helpers");this.openFolders.includes("Dev Helpers")||e.close(),e.onOpenClose((()=>{this.saveOpenFolders()})),e.add(this.watchedObject,"_wireframe").listen().onChange((()=>{this.watchedObject.render()})),e.add(this.watchedObject,"render").listen(),e.add(this.watchedObject,"clear").listen()}}class Gve extends ta{constructor(e=[new Ce],n=.6,i=.2,r=8){super(),this.type="ExtrusionGeometry",this.parameters={points:e,lineWidth:n,lineHeight:i,radialSegments:r,closed:!1};const a=new Ce,s=new Ce,o=new Ht,l=[],c=[],d=[],f=[];function p(m){const[y,b,x]=(function(v){const w=e[v],M=new Ce,A=new Ce,T=new Ce,D=new Ce;M.copy(w).sub(e[v-1]||w).normalize().add((e[v+1]||w).clone().sub(w).normalize()).normalize();let C=Number.MAX_VALUE;const U=Math.abs(M.x),P=Math.abs(M.y),k=Math.abs(M.z);return U<=C&&(C=U,A.set(1,0,0)),P<=C&&(C=P,A.set(0,1,0)),k<=C&&A.set(0,0,1),D.crossVectors(M,A).normalize(),A.crossVectors(M,D),T.crossVectors(M,A),[w,A,T]})(m);for(let v=0;v<=r;v++){const w=v/r*Math.PI*2,M=Math.sin(w),A=-Math.cos(w);s.x=A*b.x+M*x.x,s.y=A*b.y+M*x.y,s.z=A*b.z+M*x.z,s.normalize(),c.push(s.x,s.y,s.z),a.x=y.x+n*s.x*.5,a.y=y.y+n*s.y*.5,a.z=y.z+i*s.z*.5,l.push(a.x,a.y,a.z)}}(function(){for(let m=0;m<e.length;m++)p(m);p(closed===!1?e.length-1:0),(function(){for(let m=0;m<e.length;m++)for(let y=0;y<=r;y++)o.x=m/e.length,o.y=y/r,d.push(o.x,o.y)})(),(function(){for(let m=1;m<e.length;m++)for(let y=1;y<=r;y++){const b=(r+1)*(m-1)+(y-1),x=(r+1)*m+(y-1),v=(r+1)*m+y,w=(r+1)*(m-1)+y;f.push(b,x,w),f.push(x,v,w)}})()})(),this.setIndex(f),this.setAttribute("position",new Mi(l,3)),this.setAttribute("normal",new Mi(c,3)),this.setAttribute("uv",new Mi(d,2))}}class Gg{static get initial(){const e=new Gg;return Object.assign(e,{x:0,y:0,z:0,r:0,e:0,i:0,j:0,t:0}),e}}const ZA={h:0,s:0,l:0};class cp{constructor(e){var n,i,r,a,s,o,l,c,d;if(this.minLayerThreshold=.05,this.renderExtrusion=!0,this.renderTravel=!1,this.renderTubes=!1,this.extrusionWidth=.6,this.singleLayerMode=!1,this.initialCameraPosition=[-100,400,450],this.debug=!1,this.inches=!1,this.nonTravelmoves=[],this.disableGradient=!1,this.state=Gg.initial,this.beyondFirstMove=!1,this.disposables=[],this._extrusionColor=cp.defaultExtrusionColor,this.renderLayerIndex=0,this._geometries={},this._backgroundColor=new Ut(14737632),this._travelColor=new Ut(10027008),this._toolColors={},this.devMode=!1,this._lastRenderTime=0,this._wireframe=!1,this.minLayerThreshold=(n=e.minLayerThreshold)!==null&&n!==void 0?n:this.minLayerThreshold,this.parser=new d_(this.minLayerThreshold),this.scene=new sve,this.scene.background=this._backgroundColor,e.backgroundColor!==void 0&&(this.backgroundColor=new Ut(e.backgroundColor)),this.targetId=e.targetId,this.endLayer=e.endLayer,this.startLayer=e.startLayer,this.lineWidth=e.lineWidth,this.lineHeight=e.lineHeight,this.buildVolume=e.buildVolume,this.initialCameraPosition=(i=e.initialCameraPosition)!==null&&i!==void 0?i:this.initialCameraPosition,this.debug=(r=e.debug)!==null&&r!==void 0?r:this.debug,this.renderExtrusion=(a=e.renderExtrusion)!==null&&a!==void 0?a:this.renderExtrusion,this.renderTravel=(s=e.renderTravel)!==null&&s!==void 0?s:this.renderTravel,this.nonTravelmoves=(o=e.nonTravelMoves)!==null&&o!==void 0?o:this.nonTravelmoves,this.renderTubes=(l=e.renderTubes)!==null&&l!==void 0?l:this.renderTubes,this.extrusionWidth=(c=e.extrusionWidth)!==null&&c!==void 0?c:this.extrusionWidth,this.devMode=(d=e.devMode)!==null&&d!==void 0?d:this.devMode,this.stats=this.devMode?new Vve:void 0,e.extrusionColor!==void 0&&(this.extrusionColor=e.extrusionColor),e.travelColor!==void 0&&(this.travelColor=new Ut(e.travelColor)),e.topLayerColor!==void 0&&(this.topLayerColor=new Ut(e.topLayerColor)),e.lastSegmentColor!==void 0&&(this.lastSegmentColor=new Ut(e.lastSegmentColor)),e.toolColors){this._toolColors={};for(const[m,y]of Object.entries(e.toolColors))this._toolColors[parseInt(m)]=new Ut(y)}if(e.disableGradient!==void 0&&(this.disableGradient=e.disableGradient),console.info("Using THREE r"+aS),console.debug("opts",e),this.targetId&&console.warn("`targetId` is deprecated and will removed in the future. Use `canvas` instead."),e.canvas)this.canvas=e.canvas,this.renderer=new MR({canvas:this.canvas,preserveDrawingBuffer:!0});else{if(!this.targetId)throw Error("Set either opts.canvas or opts.targetId");const m=document.getElementById(this.targetId);if(!m)throw new Error("Unable to find element "+this.targetId);this.renderer=new MR({preserveDrawingBuffer:!0}),this.canvas=this.renderer.domElement,m.appendChild(this.canvas)}this.camera=new Ja(25,this.canvas.offsetWidth/this.canvas.offsetHeight,10,5e3),this.camera.position.fromArray(this.initialCameraPosition);const f=this.camera.far,p=.8*f;this.scene.fog=new JP(this._backgroundColor,p,f),this.resize(),this.controls=new zve(this.camera,this.renderer.domElement),this.initScene(),this.animate(),e.allowDragNDrop&&this._enableDropHandler(),this.initStats()}get extrusionColor(){return this._extrusionColor}set extrusionColor(e){if(Array.isArray(e)){this._extrusionColor=[];for(const[n,i]of e.entries())this._extrusionColor[n]=new Ut(i)}else this._extrusionColor=new Ut(e)}get currentToolColor(){var e;return this._extrusionColor===void 0?cp.defaultExtrusionColor:this._extrusionColor instanceof Ut?this._extrusionColor:(e=this._extrusionColor[this.state.t])!==null&&e!==void 0?e:cp.defaultExtrusionColor}get backgroundColor(){return this._backgroundColor}set backgroundColor(e){this._backgroundColor=new Ut(e),this.scene.background=this._backgroundColor}get travelColor(){return this._travelColor}set travelColor(e){this._travelColor=new Ut(e)}get topLayerColor(){return this._topLayerColor}set topLayerColor(e){this._topLayerColor=e!==void 0?new Ut(e):void 0}get lastSegmentColor(){return this._lastSegmentColor}set lastSegmentColor(e){this._lastSegmentColor=e!==void 0?new Ut(e):void 0}get layers(){return[this.parser.preamble].concat(this.parser.layers.concat())}get maxLayerIndex(){var e;return((e=this.endLayer)!==null&&e!==void 0?e:this.layers.length)-1}get minLayerIndex(){var e;return this.singleLayerMode?this.maxLayerIndex:((e=this.startLayer)!==null&&e!==void 0?e:0)-1}animate(){var e;this.animationFrameId=requestAnimationFrame((()=>this.animate())),this.controls.update(),this.renderer.render(this.scene,this.camera),(e=this.stats)===null||e===void 0||e.update()}processGCode(e){this.parser.parseGCode(e),this.render()}initScene(){for(;this.scene.children.length>0;)this.scene.remove(this.scene.children[0]);for(;this.disposables.length>0;){const e=this.disposables.pop();e&&e.dispose()}if(this.debug&&this.buildVolume){const e=new Eve(Math.max(this.buildVolume.x/2,this.buildVolume.y/2)+20);this.scene.add(e)}if(this.buildVolume&&this.drawBuildVolume(),this.renderTubes){console.warn("Volumetric rendering is experimental. It may not work as expected or change in the future.");const e=new Sve(13421772,.3*Math.PI),n=new _ve(16777215,Math.PI,void 0,.001);n.position.set(0,500,500),this.scene.add(e),this.scene.add(n)}}createGroup(e){const n=new Ng;return n.name=e,n.quaternion.setFromEuler(new ev(-Math.PI/2,0,0)),this.buildVolume?n.position.set(-this.buildVolume.x/2,0,this.buildVolume.y/2):n.position.set(-100,0,100),n}render(){const e=performance.now();this.group=this.createGroup("allLayers"),this.state=Gg.initial,this.initScene();for(let n=0;n<this.layers.length;n++)this.renderLayer(n);this.batchGeometries(),this.scene.add(this.group),this.renderer.render(this.scene,this.camera),this._lastRenderTime=performance.now()-e}renderAnimated(e=1){return qA(this,void 0,void 0,(function*(){return this.initScene(),this.renderLayerIndex=0,this.renderFrameLoop(e>0?e:1)}))}renderFrameLoop(e){return new Promise((n=>{const i=()=>{this.renderLayerIndex>this.layers.length-1?n():(this.renderFrame(e),requestAnimationFrame(i))};i()}))}renderFrame(e){this.group=this.createGroup("layer"+this.renderLayerIndex);for(let n=0;n<e&&this.renderLayerIndex+n<this.layers.length;n++)this.renderLayer(this.renderLayerIndex),this.renderLayerIndex++;this.batchGeometries(),this.scene.add(this.group)}renderLayer(e){var n,i,r,a,s,o,l,c;if(e>this.maxLayerIndex)return;const d=this.layers[e],f={extrusion:[],travel:[],z:this.state.z,height:d.height};for(const p of d.commands)if(p.gcode!="g20"){if(p.gcode.startsWith("t")){this.doRenderExtrusion(f,e),f.extrusion=[];const m=p;this.state.t=m.toolIndex}else if(["g0","g00","g1","g01","g2","g02","g3","g03"].indexOf(p.gcode)>-1){const m=p,y={x:(n=m.params.x)!==null&&n!==void 0?n:this.state.x,y:(i=m.params.y)!==null&&i!==void 0?i:this.state.y,z:(r=m.params.z)!==null&&r!==void 0?r:this.state.z,r:(a=m.params.r)!==null&&a!==void 0?a:this.state.r,e:(s=m.params.e)!==null&&s!==void 0?s:this.state.e,i:(o=m.params.i)!==null&&o!==void 0?o:this.state.i,j:(l=m.params.j)!==null&&l!==void 0?l:this.state.j,t:this.state.t};if(e>=this.minLayerIndex){const b=((c=m.params.e)!==null&&c!==void 0?c:0)>0||this.nonTravelmoves.indexOf(p.gcode)>-1;(y.x!=this.state.x||y.y!=this.state.y||y.z!=this.state.z)&&(b&&this.renderExtrusion||!b&&this.renderTravel)&&(p.gcode=="g2"||p.gcode=="g3"||p.gcode=="g02"||p.gcode=="g03"?this.addArcSegment(f,this.state,y,b,p.gcode=="g2"||p.gcode=="g02"):this.addLineSegment(f,this.state,y,b))}this.state.x=y.x,this.state.y=y.y,this.state.z=y.z,this.beyondFirstMove||(this.beyondFirstMove=!0)}}else this.setInches();this.doRenderExtrusion(f,e)}doRenderExtrusion(e,n){var i,r;if(this.renderExtrusion){let a=this.currentToolColor;if(!this.singleLayerMode&&!this.renderTubes&&!this.disableGradient){const s=.1+.7*n/this.layers.length;a.getHSL(ZA),a=new Ut().setHSL(ZA.h,ZA.s,s)}if(n==this.layers.length-1){const s=(i=this._topLayerColor)!==null&&i!==void 0?i:a,o=(r=this._lastSegmentColor)!==null&&r!==void 0?r:s,l=e.extrusion.splice(-3),c=e.extrusion.splice(-3);this.renderTubes?(this.addTubeLine(e.extrusion,s.getHex(),e.height),this.addTubeLine([...c,...l],o.getHex(),e.height)):(this.addLine(e.extrusion,s.getHex()),this.addLine([...c,...l],o.getHex()))}else this.renderTubes?this.addTubeLine(e.extrusion,a.getHex(),e.height):this.addLine(e.extrusion,a.getHex())}this.renderTravel&&this.addLine(e.travel,this._travelColor.getHex())}setInches(){this.beyondFirstMove?console.warn("Switching units after movement is already made is discouraged and is not supported."):this.inches=!0}drawBuildVolume(){if(!this.buildVolume)return;this.scene.add(new jve(this.buildVolume.x,10,this.buildVolume.y,10));const e=Hve(this.buildVolume.x,this.buildVolume.z,this.buildVolume.y,8947848);e.position.setY(this.buildVolume.z/2),this.scene.add(e)}clear(){this.resetState(),this.parser=new d_(this.minLayerThreshold)}resetState(){var e;this.startLayer=1,this.endLayer=1/0,this.singleLayerMode=!1,this.beyondFirstMove=!1,this.state=Gg.initial,(e=this.devGui)===null||e===void 0||e.reset(),this._geometries={}}resize(){const[e,n]=[this.canvas.offsetWidth,this.canvas.offsetHeight];this.camera.aspect=e/n,this.camera.updateProjectionMatrix(),this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.setSize(e,n,!1)}addLineSegment(e,n,i,r){(r?e.extrusion:e.travel).push(n.x,n.y,n.z,i.x,i.y,i.z)}addArcSegment(e,n,i,r,a){const s=r?e.extrusion:e.travel,o=n.x,l=n.y,c=n.z,d=i.x,f=i.y,p=i.z;let m=i.r,y=i.i,b=i.j;if(m){const $=d-o,q=f-l,G=Math.sqrt(Math.pow($/2,2)+Math.pow(q/2,2));m=Math.max(m,G);const Y=Math.pow($,2)+Math.pow(q,2),Q=Math.pow(m,2)-Y/4;let se=Math.sqrt(Q/Y);(a&&m<0||!a&&m>0)&&(se=-se),y=$/2+q*se,b=q/2-$*se}const x=o==d&&l==f,v=o+y,w=l+b,M=Math.sqrt(y*y+b*b),A=Math.atan2(-b,-y),T=Math.atan2(f-w,d-v);let D;x?D=2*Math.PI:(D=a?A-T:T-A,D<0&&(D+=2*Math.PI));let C=M*D/1.8;this.inches&&(C*=25),C<1&&(C=1);let U=D/C;U*=a?-1:1;const P=[];P.push({x:o,y:l,z:c});const k=(c-p)/C;let B=o,I=l,W=c,O=A;for(let $=0;$<C-1;$++)O+=U,B=v+M*Math.cos(O),I=w+M*Math.sin(O),W+=k,P.push({x:B,y:I,z:W});P.push({x:i.x,y:i.y,z:i.z});for(let $=0;$<P.length-1;$++)s.push(P[$].x,P[$].y,P[$].z,P[$+1].x,P[$+1].y,P[$+1].z)}addLine(e,n){var i;if(typeof this.lineWidth=="number"&&this.lineWidth>0)return void this.addThickLine(e,n);const r=new ta;r.setAttribute("position",new Mi(e,3)),this.disposables.push(r);const a=new nv({color:n});this.disposables.push(a);const s=new uS(r,a);(i=this.group)===null||i===void 0||i.add(s)}addTubeLine(e,n,i=.2){let r=[];const a=[];for(let s=0;s<e.length;s+=6){const o=e.slice(s,s+9),l=new Ce(o[0],o[1],o[2]),c=new Ce(o[3],o[4],o[5]),d=new Ce(o[6],o[7],o[8]);r.push(l),c.equals(d)||(r.push(c),a.push(r),r=[])}a.forEach((s=>{var o;const l=new Gve(s,this.extrusionWidth,this.lineHeight||i,4);(o=this._geometries)[n]||(o[n]=[]),this._geometries[n].push(l)}))}addThickLine(e,n){var i;if(!e.length||!this.lineWidth)return;const r=new A$;this.disposables.push(r);const a=new E$({color:n,linewidth:this.lineWidth/(1e3*window.devicePixelRatio)});this.disposables.push(a),r.setPositions(e);const s=new Bve(r,a);(i=this.group)===null||i===void 0||i.add(s)}dispose(){this.disposables.forEach((e=>e.dispose())),this.disposables=[],this.controls.dispose(),this.renderer.dispose(),this.cancelAnimation()}cancelAnimation(){this.animationFrameId!==void 0&&cancelAnimationFrame(this.animationFrameId),this.animationFrameId=void 0}_enableDropHandler(){console.warn("Drag and drop is deprecated as a library feature. See the demo how to implement your own."),this.canvas.addEventListener("dragover",(e=>{e.stopPropagation(),e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect="copy"),this.canvas.classList.add("dragging")})),this.canvas.addEventListener("dragleave",(e=>{e.stopPropagation(),e.preventDefault(),this.canvas.classList.remove("dragging")})),this.canvas.addEventListener("drop",(e=>qA(this,void 0,void 0,(function*(){var n,i;e.stopPropagation(),e.preventDefault(),this.canvas.classList.remove("dragging");const r=((i=(n=e.dataTransfer)===null||n===void 0?void 0:n.files)!==null&&i!==void 0?i:[])[0];this.clear(),yield this._readFromStream(r.stream()),this.render()}))))}batchGeometries(){if(this._geometries)for(const e in this._geometries){const n=this.createBatchMesh(parseInt(e));for(;this._geometries[e].length>0;){const i=this._geometries[e].pop();n.addGeometry(i)}}}createBatchMesh(e){var n;const i=this._geometries[e],r=new vve({color:e,wireframe:this._wireframe});this.disposables.push(r);const a=i.reduce(((o,l)=>3*l.attributes.position.count+o),0),s=new pve(i.length,a,void 0,r);return this.disposables.push(s),(n=this.group)===null||n===void 0||n.add(s),s}_readFromStream(e){var n,i;return qA(this,void 0,void 0,(function*(){const r=e.getReader();let a,s="",o=0;do{console.debug("reading from stream"),a=yield r.read(),o+=(i=(n=a.value)===null||n===void 0?void 0:n.length)!==null&&i!==void 0?i:0;const c=(l=a.value,new TextDecoder("utf-8").decode(l)),d=c.lastIndexOf(`
- `),f=c.slice(0,d);this.parser.parseGCode(s+f),s=c.slice(d)}while(!a.done);var l;console.debug("read from stream",o)}))}initGui(){typeof this.devMode=="boolean"&&this.devMode===!0?this.devGui=new uB(this):typeof this.devMode=="object"&&(this.devGui=new uB(this,this.devMode))}initStats(){var e;this.stats&&(typeof this.devMode=="object"&&(this.statsContainer=this.devMode.statsContainer),((e=this.statsContainer)!==null&&e!==void 0?e:document.body).appendChild(this.stats.dom),this.stats.dom.classList.add("stats"),this.initGui())}}cp.defaultExtrusionColor=new Ut("hotpink");const $ve=function(t){return new cp(t)};function Wve({gcodeUrl:t,buildVolume:e={x:256,y:256,z:256},className:n=""}){const i=R.useRef(null),r=R.useRef(null),[a,s]=R.useState(!0),[o,l]=R.useState(null),[c,d]=R.useState(!1),[f,p]=R.useState(0),[m,y]=R.useState(0);R.useEffect(()=>{if(!i.current)return;const v=i.current,w=$ve({canvas:v,buildVolume:e,backgroundColor:1710618,travelColor:4473924,extrusionColor:44610,topLayerColor:65370,lastSegmentColor:16777215,lineWidth:2,renderTravel:!1,renderExtrusion:!0});r.current=w,s(!0),l(null),d(!1),fetch(t).then(async A=>{if(!A.ok)throw A.status===404&&(await A.json().catch(()=>({}))).detail?.includes("sliced")?(d(!0),new Error("not_sliced")):new Error("Failed to load G-code");return A.text()}).then(A=>{w.processGCode(A);const T=w.layers?.length||0;y(T),p(T),w.render(),s(!1)}).catch(A=>{l(A.message),s(!1)});const M=()=>{if(v.parentElement){const A=v.parentElement.getBoundingClientRect();v.width=A.width,v.height=A.height,w.resize()}};return M(),window.addEventListener("resize",M),()=>{window.removeEventListener("resize",M),w.dispose()}},[t,e]);const b=v=>{if(!r.current)return;const w=Math.max(1,Math.min(v,m));p(w),r.current.render()},x=v=>{b(parseInt(v.target.value,10))};return S.jsxs("div",{className:`relative flex flex-col h-full ${n}`,children:[S.jsxs("div",{className:"flex-1 relative bg-bambu-dark rounded-lg overflow-hidden",children:[S.jsx("canvas",{ref:i,className:"w-full h-full"}),a&&S.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-bambu-dark/80",children:S.jsxs("div",{className:"text-center",children:[S.jsx(jr,{className:"w-8 h-8 animate-spin text-bambu-green mx-auto mb-2"}),S.jsx("p",{className:"text-bambu-gray text-sm",children:"Loading G-code..."})]})}),c&&S.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-bambu-dark/80",children:S.jsxs("div",{className:"text-center max-w-sm px-4",children:[S.jsx(tie,{className:"w-12 h-12 text-bambu-gray mx-auto mb-3"}),S.jsx("p",{className:"text-white font-medium mb-2",children:"G-code not available"}),S.jsx("p",{className:"text-bambu-gray text-sm",children:"This file hasn't been sliced yet. G-code preview is only available after slicing the model in Bambu Studio or Orca Slicer."})]})}),o&&!c&&S.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-bambu-dark/80",children:S.jsx("div",{className:"text-center text-red-400",children:S.jsx("p",{className:"text-sm",children:o})})})]}),!a&&!o&&!c&&m>0&&S.jsx("div",{className:"mt-4 px-2",children:S.jsxs("div",{className:"flex items-center gap-3",children:[S.jsx(nG,{className:"w-4 h-4 text-bambu-gray flex-shrink-0"}),S.jsx("button",{onClick:()=>b(f-1),disabled:f<=1,className:"p-1 rounded hover:bg-bambu-dark-tertiary disabled:opacity-30 disabled:cursor-not-allowed",children:S.jsx(tf,{className:"w-4 h-4"})}),S.jsx("input",{type:"range",min:1,max:m,value:f,onChange:x,className:"flex-1 h-2 bg-bambu-dark-tertiary rounded-lg appearance-none cursor-pointer accent-bambu-green"}),S.jsx("button",{onClick:()=>b(f+1),disabled:f>=m,className:"p-1 rounded hover:bg-bambu-dark-tertiary disabled:opacity-30 disabled:cursor-not-allowed",children:S.jsx(Wp,{className:"w-4 h-4"})}),S.jsxs("span",{className:"text-sm text-bambu-gray min-w-[80px] text-right",children:[f," / ",m]})]})})]})}function qve({archiveId:t,title:e,onClose:n}){const[i,r]=R.useState(null),[a,s]=R.useState(null),[o,l]=R.useState(!0);R.useEffect(()=>{const d=f=>{f.key==="Escape"&&n()};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[n]),R.useEffect(()=>{Tt.getArchiveCapabilities(t).then(d=>{s(d),d.has_model?r("3d"):d.has_gcode&&r("gcode"),l(!1)}).catch(()=>{s({has_model:!0,has_gcode:!1,build_volume:{x:256,y:256,z:256}}),r("3d"),l(!1)})},[t]);const c=()=>{const d=e||"model",f=`${window.location.origin}${Tt.getArchiveForSlicer(t,d)}`;window.location.href=`bambustudioopen://${encodeURIComponent(f)}`};return S.jsx("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-8",onClick:n,children:S.jsxs("div",{className:"bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-4xl h-[80vh] flex flex-col",onClick:d=>d.stopPropagation(),children:[S.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary",children:[S.jsx("h2",{className:"text-lg font-semibold text-white truncate flex-1 mr-4",children:e}),S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsxs(At,{variant:"secondary",size:"sm",onClick:c,children:[S.jsx(gp,{className:"w-4 h-4"}),"Open in Slicer"]}),S.jsx(At,{variant:"ghost",size:"sm",onClick:n,children:S.jsx(zi,{className:"w-5 h-5"})})]})]}),a&&S.jsxs("div",{className:"flex border-b border-bambu-dark-tertiary",children:[S.jsxs("button",{onClick:()=>a.has_model&&r("3d"),disabled:!a.has_model,className:`flex items-center gap-2 px-6 py-3 text-sm font-medium transition-colors ${i==="3d"?"text-bambu-green border-b-2 border-bambu-green":a.has_model?"text-bambu-gray hover:text-white":"text-bambu-gray/30 cursor-not-allowed"}`,children:[S.jsx(l0,{className:"w-4 h-4"}),"3D Model",!a.has_model&&S.jsx("span",{className:"text-xs",children:"(not available)"})]}),S.jsxs("button",{onClick:()=>a.has_gcode&&r("gcode"),disabled:!a.has_gcode,className:`flex items-center gap-2 px-6 py-3 text-sm font-medium transition-colors ${i==="gcode"?"text-bambu-green border-b-2 border-bambu-green":a.has_gcode?"text-bambu-gray hover:text-white":"text-bambu-gray/30 cursor-not-allowed"}`,children:[S.jsx(Fne,{className:"w-4 h-4"}),"G-code Preview",!a.has_gcode&&S.jsx("span",{className:"text-xs",children:"(not sliced)"})]})]}),S.jsx("div",{className:"flex-1 overflow-hidden p-4",children:o?S.jsx("div",{className:"w-full h-full flex items-center justify-center",children:S.jsx(jr,{className:"w-8 h-8 animate-spin text-bambu-green"})}):i==="3d"&&a?S.jsx(Hde,{url:Tt.getArchiveDownload(t),buildVolume:a.build_volume,className:"w-full h-full"}):i==="gcode"&&a?S.jsx(Wve,{gcodeUrl:Tt.getArchiveGcode(t),buildVolume:a.build_volume,className:"w-full h-full"}):S.jsx("div",{className:"w-full h-full flex items-center justify-center text-bambu-gray",children:"No preview available for this file"})})]})})}function Xve({archiveId:t,archiveName:e,onClose:n,onSuccess:i}){const[r,a]=R.useState(null),{data:s,isLoading:o}=Zi({queryKey:["printers"],queryFn:Tt.getPrinters}),l=Ji({mutationFn:()=>{if(!r)throw new Error("No printer selected");return Tt.reprintArchive(t,r)},onSuccess:()=>{i(),n()}}),c=s?.filter(d=>d.is_active)||[];return S.jsx("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-8",children:S.jsx(ki,{className:"w-full max-w-md",children:S.jsxs(Qi,{children:[S.jsxs("div",{className:"flex items-center justify-between mb-4",children:[S.jsx("h2",{className:"text-lg font-semibold text-white",children:"Re-print"}),S.jsx(At,{variant:"ghost",size:"sm",onClick:n,children:S.jsx(zi,{className:"w-5 h-5"})})]}),S.jsxs("p",{className:"text-sm text-bambu-gray mb-4",children:["Send ",S.jsx("span",{className:"text-white",children:e})," to a printer"]}),o?S.jsx("div",{className:"flex justify-center py-8",children:S.jsx(jr,{className:"w-6 h-6 text-bambu-green animate-spin"})}):c.length===0?S.jsx("div",{className:"text-center py-8 text-bambu-gray",children:"No active printers available"}):S.jsx("div",{className:"space-y-2 mb-6",children:c.map(d=>S.jsxs("button",{onClick:()=>a(d.id),className:`w-full flex items-center gap-3 p-3 rounded-lg border transition-colors ${r===d.id?"border-bambu-green bg-bambu-green/10":"border-bambu-dark-tertiary bg-bambu-dark hover:border-bambu-gray"}`,children:[S.jsx("div",{className:`p-2 rounded-lg ${r===d.id?"bg-bambu-green/20":"bg-bambu-dark-tertiary"}`,children:S.jsx(nf,{className:`w-5 h-5 ${r===d.id?"text-bambu-green":"text-bambu-gray"}`})}),S.jsxs("div",{className:"text-left",children:[S.jsx("p",{className:"text-white font-medium",children:d.name}),S.jsxs("p",{className:"text-xs text-bambu-gray",children:[d.model||"Unknown model"," • ",d.ip_address]})]})]},d.id))}),l.isError&&S.jsx("div",{className:"mb-4 p-3 bg-red-500/20 border border-red-500/50 rounded-lg text-sm text-red-400",children:l.error.message||"Failed to start print"}),S.jsxs("div",{className:"flex gap-3",children:[S.jsx(At,{variant:"secondary",onClick:n,className:"flex-1",children:"Cancel"}),S.jsx(At,{onClick:()=>l.mutate(),disabled:!r||l.isPending,className:"flex-1",children:l.isPending?S.jsxs(S.Fragment,{children:[S.jsx(jr,{className:"w-4 h-4 animate-spin"}),"Sending..."]}):S.jsxs(S.Fragment,{children:[S.jsx(nf,{className:"w-4 h-4"}),"Print"]})})]})]})})})}function Yve({onClose:t,initialFiles:e}){const n=ka(),{showToast:i}=Mf(),r=R.useRef(null),[a,s]=R.useState(()=>e?.filter(C=>C.name.endsWith(".3mf")).map(C=>({file:C,status:"pending"}))||[]),[o,l]=R.useState(!1),[c,d]=R.useState(),[f,p]=R.useState(null),{data:m}=Zi({queryKey:["printers"],queryFn:Tt.getPrinters}),y=Ji({mutationFn:C=>Tt.uploadArchivesBulk(C,c),onSuccess:C=>{p(C),n.invalidateQueries({queryKey:["archives"]}),n.invalidateQueries({queryKey:["archiveStats"]}),s(U=>U.map(P=>{const k=C.results.find(I=>I.filename===P.file.name),B=C.errors.find(I=>I.filename===P.file.name);return k?{...P,status:"success",archiveId:k.id}:B?{...P,status:"error",error:B.error}:P})),C.failed===0?i(`${C.uploaded} file${C.uploaded!==1?"s":""} uploaded`):C.uploaded===0?i(`Failed to upload ${C.failed} file${C.failed!==1?"s":""}`,"error"):i(`${C.uploaded} uploaded, ${C.failed} failed`,"warning")},onError:()=>{s(C=>C.map(U=>({...U,status:"error",error:"Upload failed"}))),i("Upload failed","error")}}),b=R.useCallback(C=>{C.preventDefault(),l(!0)},[]),x=R.useCallback(C=>{C.preventDefault(),l(!1)},[]),v=R.useCallback(C=>{C.preventDefault(),l(!1);const U=Array.from(C.dataTransfer.files).filter(P=>P.name.endsWith(".3mf"));U.length>0&&s(P=>[...P,...U.map(k=>({file:k,status:"pending"}))])},[]),w=R.useCallback(C=>{const U=Array.from(C.target.files||[]).filter(P=>P.name.endsWith(".3mf"));U.length>0&&s(P=>[...P,...U.map(k=>({file:k,status:"pending"}))]),r.current&&(r.current.value="")},[]),M=R.useCallback(C=>{s(U=>U.filter((P,k)=>k!==C))},[]),A=()=>{if(a.length===0)return;const C=a.filter(U=>U.status==="pending");C.length!==0&&(s(U=>U.map(P=>P.status==="pending"?{...P,status:"uploading"}:P)),y.mutate(C.map(U=>U.file)))},T=a.filter(C=>C.status==="pending").length,D=y.isPending;return S.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:S.jsx(ki,{className:"w-full max-w-2xl max-h-[90vh] flex flex-col",children:S.jsxs(Qi,{className:"p-0 flex flex-col h-full",children:[S.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-bambu-dark-tertiary",children:[S.jsx("h2",{className:"text-xl font-semibold text-white",children:"Upload 3MF Files"}),S.jsx("button",{onClick:t,className:"text-bambu-gray hover:text-white transition-colors",children:S.jsx(zi,{className:"w-5 h-5"})})]}),S.jsx("div",{className:"p-4",children:S.jsxs("div",{className:`border-2 border-dashed rounded-lg p-8 text-center transition-colors ${o?"border-bambu-green bg-bambu-green/10":"border-bambu-dark-tertiary hover:border-bambu-gray"}`,onDragOver:b,onDragLeave:x,onDrop:v,children:[S.jsx(Jb,{className:"w-12 h-12 mx-auto mb-4 text-bambu-gray"}),S.jsx("p",{className:"text-white mb-2",children:"Drag & drop .3mf files here"}),S.jsx("p",{className:"text-bambu-gray text-sm mb-4",children:"or"}),S.jsx(At,{variant:"secondary",onClick:()=>r.current?.click(),disabled:D,children:"Browse Files"}),S.jsx("input",{ref:r,type:"file",accept:".3mf",multiple:!0,className:"hidden",onChange:w})]})}),S.jsxs("div",{className:"px-4 pb-4",children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-2",children:"Associate with printer (optional)"}),S.jsxs("select",{className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:c||"",onChange:C=>d(C.target.value?Number(C.target.value):void 0),disabled:D,children:[S.jsx("option",{value:"",children:"No printer"}),m?.map(C=>S.jsx("option",{value:C.id,children:C.name},C.id))]})]}),a.length>0&&S.jsx("div",{className:"px-4 pb-4 max-h-60 overflow-y-auto",children:S.jsx("div",{className:"space-y-2",children:a.map((C,U)=>S.jsxs("div",{className:"flex items-center gap-3 p-3 bg-bambu-dark rounded-lg",children:[S.jsx(QV,{className:"w-5 h-5 text-bambu-gray flex-shrink-0"}),S.jsx("span",{className:"flex-1 text-white text-sm truncate",children:C.file.name}),S.jsxs("span",{className:"text-xs text-bambu-gray",children:[(C.file.size/(1024*1024)).toFixed(1)," MB"]}),C.status==="pending"&&S.jsx("button",{onClick:()=>M(U),className:"text-bambu-gray hover:text-red-400 transition-colors",disabled:D,children:S.jsx(zi,{className:"w-4 h-4"})}),C.status==="uploading"&&S.jsx(jr,{className:"w-4 h-4 text-bambu-green animate-spin"}),C.status==="success"&&S.jsx(wP,{className:"w-4 h-4 text-bambu-green"}),C.status==="error"&&S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx("span",{className:"text-xs text-red-400",children:C.error}),S.jsx(SP,{className:"w-4 h-4 text-red-400"})]})]},`${C.file.name}-${U}`))})}),f&&S.jsx("div",{className:"px-4 pb-4",children:S.jsx("div",{className:"p-3 bg-bambu-dark rounded-lg",children:S.jsxs("p",{className:"text-sm text-white",children:[S.jsx("span",{className:"text-bambu-green",children:f.uploaded})," uploaded",f.failed>0&&S.jsxs(S.Fragment,{children:[", ",S.jsx("span",{className:"text-red-400",children:f.failed})," failed"]})]})})}),S.jsxs("div",{className:"flex gap-3 p-4 border-t border-bambu-dark-tertiary",children:[S.jsx(At,{variant:"secondary",onClick:t,className:"flex-1",children:f?"Close":"Cancel"}),!f&&S.jsx(At,{onClick:A,disabled:T===0||D,className:"flex-1",children:D?S.jsxs(S.Fragment,{children:[S.jsx(jr,{className:"w-4 h-4 animate-spin"}),"Uploading..."]}):S.jsxs(S.Fragment,{children:[S.jsx(Jb,{className:"w-4 h-4"}),"Upload ",T>0&&`(${T})`]})})]})]})})})}const Kve=["Adhesion failure","Spaghetti / Detached","Layer shift","Clogged nozzle","Filament runout","Warping","Stringing","Under-extrusion","Power failure","User cancelled","Other"];function Zve({archive:t,onClose:e,existingTags:n=[]}){R.useEffect(()=>{const Y=Q=>{Q.key==="Escape"&&e()};return window.addEventListener("keydown",Y),()=>window.removeEventListener("keydown",Y)},[e]);const i=ka(),[r,a]=R.useState(t.print_name||""),[s,o]=R.useState(t.printer_id),[l,c]=R.useState(t.notes||""),[d,f]=R.useState(t.tags||""),[p,m]=R.useState(t.failure_reason||""),[y,b]=R.useState(t.photos||[]),[x,v]=R.useState(!1),[w,M]=R.useState(!1),A=R.useRef(null),T=R.useRef(null),D=R.useRef(null),{data:C}=Zi({queryKey:["printers"],queryFn:Tt.getPrinters}),{data:U}=Zi({queryKey:["archives"],queryFn:()=>Tt.getArchives(void 0,1e3,0),enabled:n.length===0}),P=n.length>0?n:[...new Set(U?.flatMap(Y=>Y.tags?.split(",").map(Q=>Q.trim())||[]).filter(Boolean)||[])].sort(),k=d.split(",").map(Y=>Y.trim()).filter(Boolean),B=P.filter(Y=>!k.includes(Y)),I=Y=>{if(!k.includes(Y)){const Q=[...k,Y].join(", ");f(Q)}D.current!==null&&clearTimeout(D.current),A.current?.focus()},W=Y=>{const Q=k.filter(se=>se!==Y).join(", ");f(Q)},O=Ji({mutationFn:Y=>Tt.updateArchive(t.id,Y),onSuccess:()=>{i.invalidateQueries({queryKey:["archives"]}),e()}}),$=async Y=>{const Q=Y.target.files?.[0];if(Q){v(!0);try{const se=await Tt.uploadArchivePhoto(t.id,Q);b(se.photos),i.invalidateQueries({queryKey:["archives"]})}catch(se){console.error("Failed to upload photo:",se)}finally{v(!1),T.current&&(T.current.value="")}}},q=async Y=>{try{const Q=await Tt.deleteArchivePhoto(t.id,Y);b(Q.photos||[]),i.invalidateQueries({queryKey:["archives"]})}catch(Q){console.error("Failed to delete photo:",Q)}},G=Y=>{Y.preventDefault(),O.mutate({print_name:r||void 0,printer_id:s,notes:l||void 0,tags:d||void 0,failure_reason:t.status==="failed"&&p||void 0})};return S.jsx("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4",onClick:e,children:S.jsxs("div",{className:"bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-md max-h-[90vh] flex flex-col",onClick:Y=>Y.stopPropagation(),children:[S.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary",children:[S.jsx("h2",{className:"text-lg font-semibold text-white",children:"Edit Archive"}),S.jsx("button",{onClick:e,className:"text-bambu-gray hover:text-white transition-colors",children:S.jsx(zi,{className:"w-5 h-5"})})]}),S.jsxs("form",{onSubmit:G,className:"p-6 space-y-4 overflow-y-auto flex-1",children:[S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Name"}),S.jsx("input",{type:"text",value:r,onChange:Y=>a(Y.target.value),className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",placeholder:"Print name"})]}),S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Printer"}),S.jsxs("select",{value:s??"",onChange:Y=>o(Y.target.value?Number(Y.target.value):null),className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",children:[S.jsx("option",{value:"",children:"No printer"}),C?.map(Y=>S.jsx("option",{value:Y.id,children:Y.name},Y.id))]})]}),S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Notes"}),S.jsx("textarea",{value:l,onChange:Y=>c(Y.target.value),rows:3,className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none resize-none",placeholder:"Add notes about this print..."})]}),S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Tags"}),k.length>0&&S.jsx("div",{className:"flex flex-wrap gap-1.5 mb-2",children:k.map(Y=>S.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 bg-bambu-dark-tertiary rounded text-sm text-white",children:[S.jsx(u0,{className:"w-3 h-3"}),Y,S.jsx("button",{type:"button",onClick:()=>W(Y),className:"ml-0.5 text-bambu-gray hover:text-white",children:S.jsx(zi,{className:"w-3 h-3"})})]},Y))}),S.jsxs("div",{className:"relative",children:[S.jsx("input",{ref:A,type:"text",value:d,onChange:Y=>f(Y.target.value),onFocus:()=>{D.current!==null&&clearTimeout(D.current),M(!0)},onBlur:()=>{D.current=window.setTimeout(()=>M(!1),200)},className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",placeholder:k.length>0?"Add more tags...":"Add tags..."}),w&&B.length>0&&S.jsxs("div",{className:"absolute top-full left-0 right-0 mt-1 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-lg z-10 max-h-40 overflow-y-auto",children:[S.jsx("div",{className:"p-2 text-xs text-bambu-gray border-b border-bambu-dark-tertiary",children:"Existing tags (click to add)"}),S.jsx("div",{className:"p-2 flex flex-wrap gap-1.5",children:B.map(Y=>S.jsx("button",{type:"button",onClick:()=>I(Y),className:"px-2 py-0.5 bg-bambu-dark-tertiary hover:bg-bambu-green/20 rounded text-sm text-bambu-gray hover:text-white transition-colors",children:Y},Y))})]})]})]}),t.status==="failed"&&S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Failure Reason"}),S.jsxs("select",{value:p,onChange:Y=>m(Y.target.value),className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",children:[S.jsx("option",{value:"",children:"Select reason..."}),Kve.map(Y=>S.jsx("option",{value:Y,children:Y},Y))]})]}),S.jsxs("div",{children:[S.jsxs("label",{className:"block text-sm text-bambu-gray mb-1",children:[S.jsx(_2,{className:"w-4 h-4 inline mr-1"}),"Photos of Printed Result"]}),S.jsxs("div",{className:"flex flex-wrap gap-2 mb-2",children:[y.map(Y=>S.jsxs("div",{className:"relative group",children:[S.jsx("img",{src:Tt.getArchivePhotoUrl(t.id,Y),alt:"Print result",className:"w-20 h-20 object-cover rounded-lg border border-bambu-dark-tertiary"}),S.jsx("button",{type:"button",onClick:()=>q(Y),className:"absolute -top-1 -right-1 p-1 bg-red-500 rounded-full opacity-0 group-hover:opacity-100 transition-opacity",children:S.jsx(rf,{className:"w-3 h-3 text-white"})})]},Y)),S.jsxs("label",{className:"w-20 h-20 flex items-center justify-center border-2 border-dashed border-bambu-dark-tertiary rounded-lg cursor-pointer hover:border-bambu-green transition-colors",children:[S.jsx("input",{ref:T,type:"file",accept:"image/jpeg,image/png,image/webp",onChange:$,className:"hidden",disabled:x}),x?S.jsx(jr,{className:"w-6 h-6 text-bambu-gray animate-spin"}):S.jsx(Kb,{className:"w-6 h-6 text-bambu-gray"})]})]}),S.jsx("p",{className:"text-xs text-bambu-gray",children:"Click + to add photos of your printed result"})]}),S.jsxs("div",{className:"flex gap-3 pt-2",children:[S.jsx(At,{type:"button",variant:"secondary",onClick:e,className:"flex-1",children:"Cancel"}),S.jsxs(At,{type:"submit",disabled:O.isPending,className:"flex-1",children:[S.jsx(TP,{className:"w-4 h-4"}),O.isPending?"Saving...":"Save"]})]})]})]})})}function Jve({x:t,y:e,items:n,onClose:i}){const r=R.useRef(null);return R.useEffect(()=>{const a=l=>{r.current&&!r.current.contains(l.target)&&i()},s=l=>{l.key==="Escape"&&i()},o=()=>{i()};return document.addEventListener("mousedown",a),document.addEventListener("keydown",s),document.addEventListener("scroll",o,!0),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",s),document.removeEventListener("scroll",o,!0)}},[i]),R.useEffect(()=>{if(r.current){const a=r.current.getBoundingClientRect(),s=window.innerWidth,o=window.innerHeight;let l=t,c=e;t+a.width>s&&(l=s-a.width-8),e+a.height>o&&(c=o-a.height-8),r.current.style.left=`${l}px`,r.current.style.top=`${c}px`}},[t,e]),S.jsx("div",{ref:r,className:"fixed z-50 min-w-[160px] bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl py-1 overflow-hidden",style:{left:t,top:e},children:n.map((a,s)=>a.divider?S.jsx("div",{className:"my-1 border-t border-bambu-dark-tertiary"},s):S.jsxs("button",{onClick:()=>{a.disabled||(a.onClick(),i())},disabled:a.disabled,className:`w-full flex items-center gap-2 px-3 py-2 text-sm text-left transition-colors ${a.disabled?"text-bambu-gray cursor-not-allowed":a.danger?"text-red-400 hover:bg-red-400/10":"text-white hover:bg-bambu-dark-tertiary"}`,children:[a.icon&&S.jsx("span",{className:"w-4 h-4 flex-shrink-0",children:a.icon}),a.label]},s))})}function Qve({selectedIds:t,existingTags:e,onClose:n}){const i=ka(),{showToast:r}=Mf(),[a,s]=R.useState(""),[o,l]=R.useState(new Set),[c,d]=R.useState("add"),f=Ji({mutationFn:async()=>{const b=Array.from(o);return await Promise.all(t.map(async x=>{const v=await Tt.getArchive(x),w=v.tags?v.tags.split(",").map(A=>A.trim()).filter(Boolean):[];let M;return c==="add"?M=[...new Set([...w,...b])]:M=w.filter(A=>!o.has(A)),Tt.updateArchive(x,{tags:M.join(", ")})})),{count:t.length,mode:c,tags:b}},onSuccess:({count:b,mode:x,tags:v})=>{i.invalidateQueries({queryKey:["archives"]}),r(`${x==="add"?"Added":"Removed"} ${v.length} tag${v.length!==1?"s":""} ${x==="add"?"to":"from"} ${b} archive${b!==1?"s":""}`),n()},onError:()=>{r("Failed to update tags","error")}}),p=b=>{l(x=>{const v=new Set(x);return v.has(b)?v.delete(b):v.add(b),v})},m=()=>{a.trim()&&!o.has(a.trim())&&(l(b=>new Set([...b,a.trim()])),s(""))},y=b=>{b.key==="Enter"&&(b.preventDefault(),m())};return S.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:S.jsx(ki,{className:"w-full max-w-md",children:S.jsxs(Qi,{className:"p-0",children:[S.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-bambu-dark-tertiary",children:[S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(u0,{className:"w-5 h-5 text-bambu-green"}),S.jsx("h2",{className:"text-xl font-semibold text-white",children:c==="add"?"Add Tags":"Remove Tags"})]}),S.jsx("button",{onClick:n,className:"text-bambu-gray hover:text-white transition-colors",children:S.jsx(zi,{className:"w-5 h-5"})})]}),S.jsxs("div",{className:"p-4 space-y-4",children:[S.jsxs("p",{className:"text-sm text-bambu-gray",children:[c==="add"?"Add":"Remove"," tags for ",t.length," selected archive",t.length!==1?"s":""]}),S.jsxs("div",{className:"flex gap-2",children:[S.jsx(At,{size:"sm",variant:c==="add"?"primary":"secondary",onClick:()=>d("add"),children:"Add Tags"}),S.jsx(At,{size:"sm",variant:c==="remove"?"primary":"secondary",onClick:()=>d("remove"),children:"Remove Tags"})]}),c==="add"&&S.jsxs("div",{className:"flex gap-2",children:[S.jsx("input",{type:"text",placeholder:"Enter new tag...",className:"flex-1 px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-sm focus:border-bambu-green focus:outline-none",value:a,onChange:b=>s(b.target.value),onKeyDown:y}),S.jsx(At,{size:"sm",variant:"secondary",onClick:m,disabled:!a.trim(),children:S.jsx(Kb,{className:"w-4 h-4"})})]}),e.length>0&&S.jsxs("div",{children:[S.jsx("p",{className:"text-xs text-bambu-gray mb-2",children:"Existing tags:"}),S.jsx("div",{className:"flex flex-wrap gap-2",children:e.map(b=>S.jsx("button",{onClick:()=>p(b),className:`px-2 py-1 rounded text-sm transition-colors ${o.has(b)?"bg-bambu-green text-white":"bg-bambu-dark-tertiary text-bambu-gray-light hover:bg-bambu-dark"}`,children:b},b))})]}),o.size>0&&S.jsxs("div",{children:[S.jsxs("p",{className:"text-xs text-bambu-gray mb-2",children:["Tags to ",c==="add"?"add":"remove",":"]}),S.jsx("div",{className:"flex flex-wrap gap-2",children:Array.from(o).map(b=>S.jsxs("span",{className:`px-2 py-1 rounded text-sm flex items-center gap-1 ${c==="add"?"bg-green-500/20 text-green-400":"bg-red-500/20 text-red-400"}`,children:[b,S.jsx("button",{onClick:()=>p(b),className:"hover:opacity-70",children:S.jsx(zi,{className:"w-3 h-3"})})]},b))})]})]}),S.jsxs("div",{className:"flex gap-3 p-4 border-t border-bambu-dark-tertiary",children:[S.jsx(At,{variant:"secondary",onClick:n,className:"flex-1",children:"Cancel"}),S.jsx(At,{onClick:()=>f.mutate(),disabled:o.size===0||f.isPending,className:"flex-1",children:f.isPending?S.jsxs(S.Fragment,{children:[S.jsx(jr,{className:"w-4 h-4 animate-spin"}),"Processing..."]}):S.jsxs(S.Fragment,{children:[S.jsx(u0,{className:"w-4 h-4"}),c==="add"?"Add Tags":"Remove Tags"]})})]})]})})})}function exe(t,e){return new Date(t,e+1,0).getDate()}function txe(t,e){return new Date(t,e,1).getDay()}const nxe=["January","February","March","April","May","June","July","August","September","October","November","December"],ixe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];function rxe({archives:t,onArchiveClick:e}){const n=new Date,[i,r]=R.useState(n.getMonth()),[a,s]=R.useState(n.getFullYear()),[o,l]=R.useState(null),c=R.useMemo(()=>{const v=new Map;return t.forEach(w=>{const M=new Date(w.completed_at||w.created_at),A=`${M.getFullYear()}-${String(M.getMonth()+1).padStart(2,"0")}-${String(M.getDate()).padStart(2,"0")}`,T=v.get(A)||[];T.push(w),v.set(A,T)}),v},[t]),d=exe(a,i),f=txe(a,i),p=()=>{i===0?(r(11),s(a-1)):r(i-1)},m=()=>{i===11?(r(0),s(a+1)):r(i+1)},y=()=>{r(n.getMonth()),s(n.getFullYear())},b=[];for(let v=0;v<f;v++)b.push(null);for(let v=1;v<=d;v++)b.push(v);const x=o?c.get(o)||[]:[];return S.jsxs("div",{className:"flex flex-col lg:flex-row gap-6",children:[S.jsxs("div",{className:"flex-1",children:[S.jsxs("div",{className:"flex items-center justify-between mb-4",children:[S.jsx("button",{onClick:p,className:"p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors",children:S.jsx(tf,{className:"w-5 h-5 text-bambu-gray"})}),S.jsxs("div",{className:"flex items-center gap-3",children:[S.jsxs("h2",{className:"text-lg font-semibold text-white",children:[nxe[i]," ",a]}),S.jsx("button",{onClick:y,className:"px-2 py-1 text-xs bg-bambu-dark-tertiary hover:bg-bambu-green/20 text-bambu-gray hover:text-white rounded transition-colors",children:"Today"})]}),S.jsx("button",{onClick:m,className:"p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors",children:S.jsx(Wp,{className:"w-5 h-5 text-bambu-gray"})})]}),S.jsx("div",{className:"grid grid-cols-7 gap-1 mb-1",children:ixe.map(v=>S.jsx("div",{className:"text-center text-xs text-bambu-gray py-2",children:v},v))}),S.jsx("div",{className:"grid grid-cols-7 gap-1",children:b.map((v,w)=>{if(v===null)return S.jsx("div",{className:"aspect-square"},`empty-${w}`);const M=`${a}-${String(i+1).padStart(2,"0")}-${String(v).padStart(2,"0")}`,A=c.get(M)||[],T=A.length>0,D=v===n.getDate()&&i===n.getMonth()&&a===n.getFullYear(),C=M===o,U=A.filter(k=>k.status==="completed").length,P=A.filter(k=>k.status==="failed").length;return S.jsxs("button",{onClick:()=>l(C?null:M),className:`aspect-square rounded-lg p-1 flex flex-col items-center justify-center transition-colors relative ${C?"bg-bambu-green text-white":D?"bg-bambu-green/20 text-white ring-2 ring-bambu-green":T?"bg-bambu-dark-tertiary hover:bg-bambu-dark-tertiary/70 text-white":"hover:bg-bambu-dark-tertiary/50 text-bambu-gray"}`,children:[S.jsx("span",{className:`text-sm font-medium ${D&&!C?"text-bambu-green":""}`,children:v}),T&&S.jsxs("div",{className:"absolute bottom-1 left-1/2 -translate-x-1/2 flex items-center gap-1",children:[S.jsx("div",{className:`w-2 h-2 rounded-full ${P>0&&U===0?"bg-red-400":P>0?"bg-yellow-400":"bg-green-400"}`}),S.jsx("span",{className:"text-xs font-medium",children:A.length})]})]},v)})}),S.jsx("div",{className:"mt-4 pt-4 border-t border-bambu-dark-tertiary",children:S.jsxs("div",{className:"grid grid-cols-3 gap-4 text-center",children:[S.jsxs("div",{children:[S.jsx("div",{className:"text-2xl font-bold text-white",children:t.filter(v=>{const w=new Date(v.completed_at||v.created_at);return w.getMonth()===i&&w.getFullYear()===a}).length}),S.jsx("div",{className:"text-xs text-bambu-gray",children:"Prints this month"})]}),S.jsxs("div",{children:[S.jsx("div",{className:"text-2xl font-bold text-green-400",children:t.filter(v=>{const w=new Date(v.completed_at||v.created_at);return w.getMonth()===i&&w.getFullYear()===a&&v.status==="completed"}).length}),S.jsx("div",{className:"text-xs text-bambu-gray",children:"Successful"})]}),S.jsxs("div",{children:[S.jsx("div",{className:"text-2xl font-bold text-red-400",children:t.filter(v=>{const w=new Date(v.completed_at||v.created_at);return w.getMonth()===i&&w.getFullYear()===a&&v.status==="failed"}).length}),S.jsx("div",{className:"text-xs text-bambu-gray",children:"Failed"})]})]})})]}),S.jsx("div",{className:"lg:w-80 bg-bambu-dark rounded-xl p-4",children:o?S.jsxs(S.Fragment,{children:[S.jsx("h3",{className:"text-sm font-medium text-bambu-gray mb-3",children:new Date(o+"T12:00:00").toLocaleDateString("en-US",{weekday:"long",month:"long",day:"numeric",year:"numeric"})}),x.length>0?S.jsx("div",{className:"space-y-2 max-h-96 overflow-y-auto",children:x.map(v=>S.jsxs("button",{onClick:()=>e?.(v),className:"w-full flex items-center gap-3 p-2 rounded-lg hover:bg-bambu-dark-tertiary transition-colors text-left",children:[v.thumbnail_path?S.jsx("img",{src:Tt.getArchiveThumbnail(v.id),alt:"",className:"w-12 h-12 rounded object-cover"}):S.jsx("div",{className:"w-12 h-12 rounded bg-bambu-dark-tertiary flex items-center justify-center",children:S.jsx("span",{className:"text-xs text-bambu-gray",children:"3MF"})}),S.jsxs("div",{className:"flex-1 min-w-0",children:[S.jsx("p",{className:"text-sm text-white truncate",children:v.print_name||v.filename}),S.jsxs("div",{className:"flex items-center gap-2 text-xs",children:[S.jsx("span",{className:v.status==="failed"?"text-red-400":"text-green-400",children:v.status==="failed"?"Failed":"Completed"}),v.filament_color&&S.jsx("div",{className:"flex gap-0.5",children:v.filament_color.split(",").map((w,M)=>S.jsx("div",{className:"w-3 h-3 rounded-full border border-white/20",style:{backgroundColor:w}},M))})]})]})]},v.id))}):S.jsx("p",{className:"text-sm text-bambu-gray",children:"No prints on this day"})]}):S.jsx("div",{className:"text-center py-8",children:S.jsx("p",{className:"text-sm text-bambu-gray",children:"Select a day to see prints"})})})]})}function axe({archiveId:t,archiveName:e,onClose:n}){const i=Tt.getArchiveQRCodeUrl(t,300),r=()=>{const a=document.createElement("a");a.href=i,a.download=`${e}_qrcode.png`,a.click()};return S.jsx("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4",onClick:n,children:S.jsxs("div",{className:"bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary w-full max-w-sm",onClick:a=>a.stopPropagation(),children:[S.jsxs("div",{className:"flex items-center justify-between px-6 py-4 border-b border-bambu-dark-tertiary",children:[S.jsx("h2",{className:"text-lg font-semibold text-white",children:"QR Code"}),S.jsx("button",{onClick:n,className:"text-bambu-gray hover:text-white transition-colors",children:S.jsx(zi,{className:"w-5 h-5"})})]}),S.jsxs("div",{className:"p-6 flex flex-col items-center",children:[S.jsx("p",{className:"text-sm text-bambu-gray mb-4 text-center truncate max-w-full",children:e}),S.jsx("div",{className:"bg-white p-4 rounded-lg mb-4",children:S.jsx("img",{src:i,alt:"QR Code",className:"w-64 h-64"})}),S.jsx("p",{className:"text-xs text-bambu-gray mb-4 text-center",children:"Scan to open this archive"}),S.jsxs(At,{onClick:r,className:"w-full",children:[S.jsx(zd,{className:"w-4 h-4"}),"Download QR Code"]})]})]})})}function sxe({archiveId:t,archiveName:e,photos:n,onClose:i,onDelete:r}){const[a,s]=R.useState(0),[o,l]=R.useState(!1);if(R.useEffect(()=>{const m=y=>{y.key==="Escape"&&i(),y.key==="ArrowLeft"&&s(b=>Math.max(0,b-1)),y.key==="ArrowRight"&&s(b=>Math.min(n.length-1,b+1))};return window.addEventListener("keydown",m),()=>window.removeEventListener("keydown",m)},[i,n.length]),R.useEffect(()=>{a>=n.length&&s(Math.max(0,n.length-1))},[n.length,a]),n.length===0)return i(),null;const c=n[a],d=Tt.getArchivePhotoUrl(t,c),f=()=>{const m=document.createElement("a");m.href=d,m.download=`${e}_photo_${a+1}.jpg`,m.click()},p=()=>{r&&l(!0)};return S.jsxs("div",{className:"fixed inset-0 bg-black/90 flex items-center justify-center z-50",onClick:i,children:[S.jsxs("div",{className:"relative w-full h-full flex flex-col",onClick:m=>m.stopPropagation(),children:[S.jsxs("div",{className:"flex items-center justify-between px-6 py-4 bg-black/50",children:[S.jsxs("div",{children:[S.jsx("h2",{className:"text-lg font-semibold text-white",children:e}),S.jsxs("p",{className:"text-sm text-bambu-gray",children:["Photo ",a+1," of ",n.length]})]}),S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsxs(At,{variant:"secondary",size:"sm",onClick:f,children:[S.jsx(zd,{className:"w-4 h-4"}),"Download"]}),r&&S.jsx(At,{variant:"secondary",size:"sm",onClick:p,className:"text-red-400 hover:text-red-300",children:S.jsx(rf,{className:"w-4 h-4"})}),S.jsx("button",{onClick:i,className:"p-2 text-bambu-gray hover:text-white transition-colors",children:S.jsx(zi,{className:"w-6 h-6"})})]})]}),S.jsxs("div",{className:"flex-1 min-h-0 flex items-center justify-center p-4 relative overflow-hidden",children:[a>0&&S.jsx("button",{onClick:()=>s(m=>m-1),className:"absolute left-4 z-10 p-3 bg-black/50 hover:bg-black/70 rounded-full transition-colors",children:S.jsx(tf,{className:"w-8 h-8 text-white"})}),S.jsx("img",{src:d,alt:`Photo ${a+1}`,className:"max-w-full max-h-full object-contain rounded-lg",style:{maxHeight:"calc(100vh - 200px)"}}),a<n.length-1&&S.jsx("button",{onClick:()=>s(m=>m+1),className:"absolute right-4 z-10 p-3 bg-black/50 hover:bg-black/70 rounded-full transition-colors",children:S.jsx(Wp,{className:"w-8 h-8 text-white"})})]}),n.length>1&&S.jsx("div",{className:"flex justify-center gap-2 p-4 bg-black/50",children:n.map((m,y)=>S.jsx("button",{onClick:()=>s(y),className:`w-16 h-16 rounded-lg overflow-hidden border-2 transition-colors ${y===a?"border-bambu-green":"border-transparent hover:border-bambu-gray"}`,children:S.jsx("img",{src:Tt.getArchivePhotoUrl(t,m),alt:`Thumbnail ${y+1}`,className:"w-full h-full object-cover"})},m))})]}),o&&S.jsx(qp,{title:"Delete Photo",message:"Delete this photo? This cannot be undone.",confirmText:"Delete",variant:"danger",onConfirm:()=>{r?.(c),l(!1)},onCancel:()=>l(!1)})]})}var JA={exports:{}},QA={};var dB;function oxe(){if(dB)return QA;dB=1;var t=Hp();function e(f,p){return f===p&&(f!==0||1/f===1/p)||f!==f&&p!==p}var n=typeof Object.is=="function"?Object.is:e,i=t.useState,r=t.useEffect,a=t.useLayoutEffect,s=t.useDebugValue;function o(f,p){var m=p(),y=i({inst:{value:m,getSnapshot:p}}),b=y[0].inst,x=y[1];return a(function(){b.value=m,b.getSnapshot=p,l(b)&&x({inst:b})},[f,m,p]),r(function(){return l(b)&&x({inst:b}),f(function(){l(b)&&x({inst:b})})},[f]),s(m),m}function l(f){var p=f.getSnapshot;f=f.value;try{var m=p();return!n(f,m)}catch{return!0}}function c(f,p){return p()}var d=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c:o;return QA.useSyncExternalStore=t.useSyncExternalStore!==void 0?t.useSyncExternalStore:d,QA}var fB;function T$(){return fB||(fB=1,JA.exports=oxe()),JA.exports}var C$=T$();function kr(t){this.content=t}kr.prototype={constructor:kr,find:function(t){for(var e=0;e<this.content.length;e+=2)if(this.content[e]===t)return e;return-1},get:function(t){var e=this.find(t);return e==-1?void 0:this.content[e+1]},update:function(t,e,n){var i=n&&n!=t?this.remove(n):this,r=i.find(t),a=i.content.slice();return r==-1?a.push(n||t,e):(a[r+1]=e,n&&(a[r]=n)),new kr(a)},remove:function(t){var e=this.find(t);if(e==-1)return this;var n=this.content.slice();return n.splice(e,2),new kr(n)},addToStart:function(t,e){return new kr([t,e].concat(this.remove(t).content))},addToEnd:function(t,e){var n=this.remove(t).content.slice();return n.push(t,e),new kr(n)},addBefore:function(t,e,n){var i=this.remove(e),r=i.content.slice(),a=i.find(t);return r.splice(a==-1?r.length:a,0,e,n),new kr(r)},forEach:function(t){for(var e=0;e<this.content.length;e+=2)t(this.content[e],this.content[e+1])},prepend:function(t){return t=kr.from(t),t.size?new kr(t.content.concat(this.subtract(t).content)):this},append:function(t){return t=kr.from(t),t.size?new kr(this.subtract(t).content.concat(t.content)):this},subtract:function(t){var e=this;t=kr.from(t);for(var n=0;n<t.content.length;n+=2)e=e.remove(t.content[n]);return e},toObject:function(){var t={};return this.forEach(function(e,n){t[e]=n}),t},get size(){return this.content.length>>1}};kr.from=function(t){if(t instanceof kr)return t;var e=[];if(t)for(var n in t)e.push(n,t[n]);return new kr(e)};function R$(t,e,n){for(let i=0;;i++){if(i==t.childCount||i==e.childCount)return t.childCount==e.childCount?null:n;let r=t.child(i),a=e.child(i);if(r==a){n+=r.nodeSize;continue}if(!r.sameMarkup(a))return n;if(r.isText&&r.text!=a.text){for(let s=0;r.text[s]==a.text[s];s++)n++;return n}if(r.content.size||a.content.size){let s=R$(r.content,a.content,n+1);if(s!=null)return s}n+=r.nodeSize}}function P$(t,e,n,i){for(let r=t.childCount,a=e.childCount;;){if(r==0||a==0)return r==a?null:{a:n,b:i};let s=t.child(--r),o=e.child(--a),l=s.nodeSize;if(s==o){n-=l,i-=l;continue}if(!s.sameMarkup(o))return{a:n,b:i};if(s.isText&&s.text!=o.text){let c=0,d=Math.min(s.text.length,o.text.length);for(;c<d&&s.text[s.text.length-c-1]==o.text[o.text.length-c-1];)c++,n--,i--;return{a:n,b:i}}if(s.content.size||o.content.size){let c=P$(s.content,o.content,n-1,i-1);if(c)return c}n-=l,i-=l}}class lt{constructor(e,n){if(this.content=e,this.size=n||0,n==null)for(let i=0;i<e.length;i++)this.size+=e[i].nodeSize}nodesBetween(e,n,i,r=0,a){for(let s=0,o=0;o<n;s++){let l=this.content[s],c=o+l.nodeSize;if(c>e&&i(l,r+o,a||null,s)!==!1&&l.content.size){let d=o+1;l.nodesBetween(Math.max(0,e-d),Math.min(l.content.size,n-d),i,r+d)}o=c}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,n,i,r){let a="",s=!0;return this.nodesBetween(e,n,(o,l)=>{let c=o.isText?o.text.slice(Math.max(e,l)-l,n-l):o.isLeaf?r?typeof r=="function"?r(o):r:o.type.spec.leafText?o.type.spec.leafText(o):"":"";o.isBlock&&(o.isLeaf&&c||o.isTextblock)&&i&&(s?s=!1:a+=i),a+=c},0),a}append(e){if(!e.size)return this;if(!this.size)return e;let n=this.lastChild,i=e.firstChild,r=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(i)&&(r[r.length-1]=n.withText(n.text+i.text),a=1);a<e.content.length;a++)r.push(e.content[a]);return new lt(r,this.size+e.size)}cut(e,n=this.size){if(e==0&&n==this.size)return this;let i=[],r=0;if(n>e)for(let a=0,s=0;s<n;a++){let o=this.content[a],l=s+o.nodeSize;l>e&&((s<e||l>n)&&(o.isText?o=o.cut(Math.max(0,e-s),Math.min(o.text.length,n-s)):o=o.cut(Math.max(0,e-s-1),Math.min(o.content.size,n-s-1))),i.push(o),r+=o.nodeSize),s=l}return new lt(i,r)}cutByIndex(e,n){return e==n?lt.empty:e==0&&n==this.content.length?this:new lt(this.content.slice(e,n))}replaceChild(e,n){let i=this.content[e];if(i==n)return this;let r=this.content.slice(),a=this.size+n.nodeSize-i.nodeSize;return r[e]=n,new lt(r,a)}addToStart(e){return new lt([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new lt(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let n=0;n<this.content.length;n++)if(!this.content[n].eq(e.content[n]))return!1;return!0}get firstChild(){return this.content.length?this.content[0]:null}get lastChild(){return this.content.length?this.content[this.content.length-1]:null}get childCount(){return this.content.length}child(e){let n=this.content[e];if(!n)throw new RangeError("Index "+e+" out of range for "+this);return n}maybeChild(e){return this.content[e]||null}forEach(e){for(let n=0,i=0;n<this.content.length;n++){let r=this.content[n];e(r,i,n),i+=r.nodeSize}}findDiffStart(e,n=0){return R$(this,e,n)}findDiffEnd(e,n=this.size,i=e.size){return P$(this,e,n,i)}findIndex(e){if(e==0)return Xy(0,e);if(e==this.size)return Xy(this.content.length,e);if(e>this.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let n=0,i=0;;n++){let r=this.child(n),a=i+r.nodeSize;if(a>=e)return a==e?Xy(n+1,a):Xy(n,i);i=a}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,n){if(!n)return lt.empty;if(!Array.isArray(n))throw new RangeError("Invalid input for Fragment.fromJSON");return new lt(n.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return lt.empty;let n,i=0;for(let r=0;r<e.length;r++){let a=e[r];i+=a.nodeSize,r&&a.isText&&e[r-1].sameMarkup(a)?(n||(n=e.slice(0,r)),n[n.length-1]=a.withText(n[n.length-1].text+a.text)):n&&n.push(a)}return new lt(n||e,i)}static from(e){if(!e)return lt.empty;if(e instanceof lt)return e;if(Array.isArray(e))return this.fromArray(e);if(e.attrs)return new lt([e],e.nodeSize);throw new RangeError("Can not convert "+e+" to a Fragment"+(e.nodesBetween?" (looks like multiple versions of prosemirror-model were loaded)":""))}}lt.empty=new lt([],0);const eT={index:0,offset:0};function Xy(t,e){return eT.index=t,eT.offset=e,eT}function f_(t,e){if(t===e)return!0;if(!(t&&typeof t=="object")||!(e&&typeof e=="object"))return!1;let n=Array.isArray(t);if(Array.isArray(e)!=n)return!1;if(n){if(t.length!=e.length)return!1;for(let i=0;i<t.length;i++)if(!f_(t[i],e[i]))return!1}else{for(let i in t)if(!(i in e)||!f_(t[i],e[i]))return!1;for(let i in e)if(!(i in t))return!1}return!0}let jn=class TR{constructor(e,n){this.type=e,this.attrs=n}addToSet(e){let n,i=!1;for(let r=0;r<e.length;r++){let a=e[r];if(this.eq(a))return e;if(this.type.excludes(a.type))n||(n=e.slice(0,r));else{if(a.type.excludes(this.type))return e;!i&&a.type.rank>this.type.rank&&(n||(n=e.slice(0,r)),n.push(this),i=!0),n&&n.push(a)}}return n||(n=e.slice()),i||n.push(this),n}removeFromSet(e){for(let n=0;n<e.length;n++)if(this.eq(e[n]))return e.slice(0,n).concat(e.slice(n+1));return e}isInSet(e){for(let n=0;n<e.length;n++)if(this.eq(e[n]))return!0;return!1}eq(e){return this==e||this.type==e.type&&f_(this.attrs,e.attrs)}toJSON(){let e={type:this.type.name};for(let n in this.attrs){e.attrs=this.attrs;break}return e}static fromJSON(e,n){if(!n)throw new RangeError("Invalid input for Mark.fromJSON");let i=e.marks[n.type];if(!i)throw new RangeError(`There is no mark type ${n.type} in this schema`);let r=i.create(n.attrs);return i.checkAttrs(r.attrs),r}static sameSet(e,n){if(e==n)return!0;if(e.length!=n.length)return!1;for(let i=0;i<e.length;i++)if(!e[i].eq(n[i]))return!1;return!0}static setFrom(e){if(!e||Array.isArray(e)&&e.length==0)return TR.none;if(e instanceof TR)return[e];let n=e.slice();return n.sort((i,r)=>i.type.rank-r.type.rank),n}};jn.none=[];class h_ extends Error{}class _t{constructor(e,n,i){this.content=e,this.openStart=n,this.openEnd=i}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,n){let i=N$(this.content,e+this.openStart,n);return i&&new _t(i,this.openStart,this.openEnd)}removeBetween(e,n){return new _t(D$(this.content,e+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,n){if(!n)return _t.empty;let i=n.openStart||0,r=n.openEnd||0;if(typeof i!="number"||typeof r!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new _t(lt.fromJSON(e,n.content),i,r)}static maxOpen(e,n=!0){let i=0,r=0;for(let a=e.firstChild;a&&!a.isLeaf&&(n||!a.type.spec.isolating);a=a.firstChild)i++;for(let a=e.lastChild;a&&!a.isLeaf&&(n||!a.type.spec.isolating);a=a.lastChild)r++;return new _t(e,i,r)}}_t.empty=new _t(lt.empty,0,0);function D$(t,e,n){let{index:i,offset:r}=t.findIndex(e),a=t.maybeChild(i),{index:s,offset:o}=t.findIndex(n);if(r==e||a.isText){if(o!=n&&!t.child(s).isText)throw new RangeError("Removing non-flat range");return t.cut(0,e).append(t.cut(n))}if(i!=s)throw new RangeError("Removing non-flat range");return t.replaceChild(i,a.copy(D$(a.content,e-r-1,n-r-1)))}function N$(t,e,n,i){let{index:r,offset:a}=t.findIndex(e),s=t.maybeChild(r);if(a==e||s.isText)return i&&!i.canReplace(r,r,n)?null:t.cut(0,e).append(n).append(t.cut(e));let o=N$(s.content,e-a-1,n,s);return o&&t.replaceChild(r,s.copy(o))}function lxe(t,e,n){if(n.openStart>t.depth)throw new h_("Inserted content deeper than insertion position");if(t.depth-n.openStart!=e.depth-n.openEnd)throw new h_("Inconsistent open depths");return O$(t,e,n,0)}function O$(t,e,n,i){let r=t.index(i),a=t.node(i);if(r==e.index(i)&&i<t.depth-n.openStart){let s=O$(t,e,n,i+1);return a.copy(a.content.replaceChild(r,s))}else if(n.content.size)if(!n.openStart&&!n.openEnd&&t.depth==i&&e.depth==i){let s=t.parent,o=s.content;return Gd(s,o.cut(0,t.parentOffset).append(n.content).append(o.cut(e.parentOffset)))}else{let{start:s,end:o}=cxe(n,t);return Gd(a,k$(t,s,o,e,i))}else return Gd(a,p_(t,e,i))}function L$(t,e){if(!e.type.compatibleContent(t.type))throw new h_("Cannot join "+e.type.name+" onto "+t.type.name)}function CR(t,e,n){let i=t.node(n);return L$(i,e.node(n)),i}function Vd(t,e){let n=e.length-1;n>=0&&t.isText&&t.sameMarkup(e[n])?e[n]=t.withText(e[n].text+t.text):e.push(t)}function $g(t,e,n,i){let r=(e||t).node(n),a=0,s=e?e.index(n):r.childCount;t&&(a=t.index(n),t.depth>n?a++:t.textOffset&&(Vd(t.nodeAfter,i),a++));for(let o=a;o<s;o++)Vd(r.child(o),i);e&&e.depth==n&&e.textOffset&&Vd(e.nodeBefore,i)}function Gd(t,e){return t.type.checkContent(e),t.copy(e)}function k$(t,e,n,i,r){let a=t.depth>r&&CR(t,e,r+1),s=i.depth>r&&CR(n,i,r+1),o=[];return $g(null,t,r,o),a&&s&&e.index(r)==n.index(r)?(L$(a,s),Vd(Gd(a,k$(t,e,n,i,r+1)),o)):(a&&Vd(Gd(a,p_(t,e,r+1)),o),$g(e,n,r,o),s&&Vd(Gd(s,p_(n,i,r+1)),o)),$g(i,null,r,o),new lt(o)}function p_(t,e,n){let i=[];if($g(null,t,n,i),t.depth>n){let r=CR(t,e,n+1);Vd(Gd(r,p_(t,e,n+1)),i)}return $g(e,null,n,i),new lt(i)}function cxe(t,e){let n=e.depth-t.openStart,r=e.node(n).copy(t.content);for(let a=n-1;a>=0;a--)r=e.node(a).copy(lt.from(r));return{start:r.resolveNoCache(t.openStart+n),end:r.resolveNoCache(r.content.size-t.openEnd-n)}}class _0{constructor(e,n,i){this.pos=e,this.path=n,this.parentOffset=i,this.depth=n.length/3-1}resolveDepth(e){return e==null?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[this.resolveDepth(e)*3]}index(e){return this.path[this.resolveDepth(e)*3+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e==this.depth&&!this.textOffset?0:1)}start(e){return e=this.resolveDepth(e),e==0?0:this.path[e*3-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]}after(e){if(e=this.resolveDepth(e),!e)throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[e*3-1]+this.path[e*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,n=this.index(this.depth);if(n==e.childCount)return null;let i=this.pos-this.path[this.path.length-1],r=e.child(n);return i?e.child(n).cut(i):r}get nodeBefore(){let e=this.index(this.depth),n=this.pos-this.path[this.path.length-1];return n?this.parent.child(e).cut(0,n):e==0?null:this.parent.child(e-1)}posAtIndex(e,n){n=this.resolveDepth(n);let i=this.path[n*3],r=n==0?0:this.path[n*3-1]+1;for(let a=0;a<e;a++)r+=i.child(a).nodeSize;return r}marks(){let e=this.parent,n=this.index();if(e.content.size==0)return jn.none;if(this.textOffset)return e.child(n).marks;let i=e.maybeChild(n-1),r=e.maybeChild(n);if(!i){let o=i;i=r,r=o}let a=i.marks;for(var s=0;s<a.length;s++)a[s].type.spec.inclusive===!1&&(!r||!a[s].isInSet(r.marks))&&(a=a[s--].removeFromSet(a));return a}marksAcross(e){let n=this.parent.maybeChild(this.index());if(!n||!n.isInline)return null;let i=n.marks,r=e.parent.maybeChild(e.index());for(var a=0;a<i.length;a++)i[a].type.spec.inclusive===!1&&(!r||!i[a].isInSet(r.marks))&&(i=i[a--].removeFromSet(i));return i}sharedDepth(e){for(let n=this.depth;n>0;n--)if(this.start(n)<=e&&this.end(n)>=e)return n;return 0}blockRange(e=this,n){if(e.pos<this.pos)return e.blockRange(this);for(let i=this.depth-(this.parent.inlineContent||this.pos==e.pos?1:0);i>=0;i--)if(e.pos<=this.end(i)&&(!n||n(this.node(i))))return new m_(this,e,i);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos<this.pos?e:this}toString(){let e="";for(let n=1;n<=this.depth;n++)e+=(e?"/":"")+this.node(n).type.name+"_"+this.index(n-1);return e+":"+this.parentOffset}static resolve(e,n){if(!(n>=0&&n<=e.content.size))throw new RangeError("Position "+n+" out of range");let i=[],r=0,a=n;for(let s=e;;){let{index:o,offset:l}=s.content.findIndex(a),c=a-l;if(i.push(s,o,r+l),!c||(s=s.child(o),s.isText))break;a=c-1,r+=l+1}return new _0(n,i,a)}static resolveCached(e,n){let i=hB.get(e);if(i)for(let a=0;a<i.elts.length;a++){let s=i.elts[a];if(s.pos==n)return s}else hB.set(e,i=new uxe);let r=i.elts[i.i]=_0.resolve(e,n);return i.i=(i.i+1)%dxe,r}}class uxe{constructor(){this.elts=[],this.i=0}}const dxe=12,hB=new WeakMap;class m_{constructor(e,n,i){this.$from=e,this.$to=n,this.depth=i}get start(){return this.$from.before(this.depth+1)}get end(){return this.$to.after(this.depth+1)}get parent(){return this.$from.node(this.depth)}get startIndex(){return this.$from.index(this.depth)}get endIndex(){return this.$to.indexAfter(this.depth)}}const fxe=Object.create(null);let wu=class RR{constructor(e,n,i,r=jn.none){this.type=e,this.attrs=n,this.marks=r,this.content=i||lt.empty}get children(){return this.content.content}get nodeSize(){return this.isLeaf?1:2+this.content.size}get childCount(){return this.content.childCount}child(e){return this.content.child(e)}maybeChild(e){return this.content.maybeChild(e)}forEach(e){this.content.forEach(e)}nodesBetween(e,n,i,r=0){this.content.nodesBetween(e,n,i,r,this)}descendants(e){this.nodesBetween(0,this.content.size,e)}get textContent(){return this.isLeaf&&this.type.spec.leafText?this.type.spec.leafText(this):this.textBetween(0,this.content.size,"")}textBetween(e,n,i,r){return this.content.textBetween(e,n,i,r)}get firstChild(){return this.content.firstChild}get lastChild(){return this.content.lastChild}eq(e){return this==e||this.sameMarkup(e)&&this.content.eq(e.content)}sameMarkup(e){return this.hasMarkup(e.type,e.attrs,e.marks)}hasMarkup(e,n,i){return this.type==e&&f_(this.attrs,n||e.defaultAttrs||fxe)&&jn.sameSet(this.marks,i||jn.none)}copy(e=null){return e==this.content?this:new RR(this.type,this.attrs,e,this.marks)}mark(e){return e==this.marks?this:new RR(this.type,this.attrs,this.content,e)}cut(e,n=this.content.size){return e==0&&n==this.content.size?this:this.copy(this.content.cut(e,n))}slice(e,n=this.content.size,i=!1){if(e==n)return _t.empty;let r=this.resolve(e),a=this.resolve(n),s=i?0:r.sharedDepth(n),o=r.start(s),c=r.node(s).content.cut(r.pos-o,a.pos-o);return new _t(c,r.depth-s,a.depth-s)}replace(e,n,i){return lxe(this.resolve(e),this.resolve(n),i)}nodeAt(e){for(let n=this;;){let{index:i,offset:r}=n.content.findIndex(e);if(n=n.maybeChild(i),!n)return null;if(r==e||n.isText)return n;e-=r+1}}childAfter(e){let{index:n,offset:i}=this.content.findIndex(e);return{node:this.content.maybeChild(n),index:n,offset:i}}childBefore(e){if(e==0)return{node:null,index:0,offset:0};let{index:n,offset:i}=this.content.findIndex(e);if(i<e)return{node:this.content.child(n),index:n,offset:i};let r=this.content.child(n-1);return{node:r,index:n-1,offset:i-r.nodeSize}}resolve(e){return _0.resolveCached(this,e)}resolveNoCache(e){return _0.resolve(this,e)}rangeHasMark(e,n,i){let r=!1;return n>e&&this.nodesBetween(e,n,a=>(i.isInSet(a.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),I$(this.marks,e)}contentMatchAt(e){let n=this.type.contentMatch.matchFragment(this.content,0,e);if(!n)throw new Error("Called contentMatchAt on a node with invalid content");return n}canReplace(e,n,i=lt.empty,r=0,a=i.childCount){let s=this.contentMatchAt(e).matchFragment(i,r,a),o=s&&s.matchFragment(this.content,n);if(!o||!o.validEnd)return!1;for(let l=r;l<a;l++)if(!this.type.allowsMarks(i.child(l).marks))return!1;return!0}canReplaceWith(e,n,i,r){if(r&&!this.type.allowsMarks(r))return!1;let a=this.contentMatchAt(e).matchType(i),s=a&&a.matchFragment(this.content,n);return s?s.validEnd:!1}canAppend(e){return e.content.size?this.canReplace(this.childCount,this.childCount,e.content):this.type.compatibleContent(e.type)}check(){this.type.checkContent(this.content),this.type.checkAttrs(this.attrs);let e=jn.none;for(let n=0;n<this.marks.length;n++){let i=this.marks[n];i.type.checkAttrs(i.attrs),e=i.addToSet(e)}if(!jn.sameSet(e,this.marks))throw new RangeError(`Invalid collection of marks for node ${this.type.name}: ${this.marks.map(n=>n.type.name)}`);this.content.forEach(n=>n.check())}toJSON(){let e={type:this.type.name};for(let n in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(n=>n.toJSON())),e}static fromJSON(e,n){if(!n)throw new RangeError("Invalid input for Node.fromJSON");let i;if(n.marks){if(!Array.isArray(n.marks))throw new RangeError("Invalid mark data for Node.fromJSON");i=n.marks.map(e.markFromJSON)}if(n.type=="text"){if(typeof n.text!="string")throw new RangeError("Invalid text node in JSON");return e.text(n.text,i)}let r=lt.fromJSON(e,n.content),a=e.nodeType(n.type).create(n.attrs,r,i);return a.type.checkAttrs(a.attrs),a}};wu.prototype.text=void 0;class g_ extends wu{constructor(e,n,i,r){if(super(e,n,null,r),!i)throw new RangeError("Empty text nodes are not allowed");this.text=i}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):I$(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,n){return this.text.slice(e,n)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new g_(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new g_(this.type,this.attrs,e,this.marks)}cut(e=0,n=this.text.length){return e==0&&n==this.text.length?this:this.withText(this.text.slice(e,n))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function I$(t,e){for(let n=t.length-1;n>=0;n--)e=t[n].type.name+"("+e+")";return e}class df{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,n){let i=new hxe(e,n);if(i.next==null)return df.empty;let r=U$(i);i.next&&i.err("Unexpected trailing text");let a=bxe(yxe(r));return _xe(a,i),a}matchType(e){for(let n=0;n<this.next.length;n++)if(this.next[n].type==e)return this.next[n].next;return null}matchFragment(e,n=0,i=e.childCount){let r=this;for(let a=n;r&&a<i;a++)r=r.matchType(e.child(a).type);return r}get inlineContent(){return this.next.length!=0&&this.next[0].type.isInline}get defaultType(){for(let e=0;e<this.next.length;e++){let{type:n}=this.next[e];if(!(n.isText||n.hasRequiredAttrs()))return n}return null}compatible(e){for(let n=0;n<this.next.length;n++)for(let i=0;i<e.next.length;i++)if(this.next[n].type==e.next[i].type)return!0;return!1}fillBefore(e,n=!1,i=0){let r=[this];function a(s,o){let l=s.matchFragment(e,i);if(l&&(!n||l.validEnd))return lt.from(o.map(c=>c.createAndFill()));for(let c=0;c<s.next.length;c++){let{type:d,next:f}=s.next[c];if(!(d.isText||d.hasRequiredAttrs())&&r.indexOf(f)==-1){r.push(f);let p=a(f,o.concat(d));if(p)return p}}return null}return a(this,[])}findWrapping(e){for(let i=0;i<this.wrapCache.length;i+=2)if(this.wrapCache[i]==e)return this.wrapCache[i+1];let n=this.computeWrapping(e);return this.wrapCache.push(e,n),n}computeWrapping(e){let n=Object.create(null),i=[{match:this,type:null,via:null}];for(;i.length;){let r=i.shift(),a=r.match;if(a.matchType(e)){let s=[];for(let o=r;o.type;o=o.via)s.push(o.type);return s.reverse()}for(let s=0;s<a.next.length;s++){let{type:o,next:l}=a.next[s];!o.isLeaf&&!o.hasRequiredAttrs()&&!(o.name in n)&&(!r.type||l.validEnd)&&(i.push({match:o.contentMatch,type:o,via:r}),n[o.name]=!0)}}return null}get edgeCount(){return this.next.length}edge(e){if(e>=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];function n(i){e.push(i);for(let r=0;r<i.next.length;r++)e.indexOf(i.next[r].next)==-1&&n(i.next[r].next)}return n(this),e.map((i,r)=>{let a=r+(i.validEnd?"*":" ")+" ";for(let s=0;s<i.next.length;s++)a+=(s?", ":"")+i.next[s].type.name+"->"+e.indexOf(i.next[s].next);return a}).join(`
- `)}}df.empty=new df(!0);class hxe{constructor(e,n){this.string=e,this.nodeTypes=n,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function U$(t){let e=[];do e.push(pxe(t));while(t.eat("|"));return e.length==1?e[0]:{type:"choice",exprs:e}}function pxe(t){let e=[];do e.push(mxe(t));while(t.next&&t.next!=")"&&t.next!="|");return e.length==1?e[0]:{type:"seq",exprs:e}}function mxe(t){let e=xxe(t);for(;;)if(t.eat("+"))e={type:"plus",expr:e};else if(t.eat("*"))e={type:"star",expr:e};else if(t.eat("?"))e={type:"opt",expr:e};else if(t.eat("{"))e=gxe(t,e);else break;return e}function pB(t){/\D/.test(t.next)&&t.err("Expected number, got '"+t.next+"'");let e=Number(t.next);return t.pos++,e}function gxe(t,e){let n=pB(t),i=n;return t.eat(",")&&(t.next!="}"?i=pB(t):i=-1),t.eat("}")||t.err("Unclosed braced range"),{type:"range",min:n,max:i,expr:e}}function vxe(t,e){let n=t.nodeTypes,i=n[e];if(i)return[i];let r=[];for(let a in n){let s=n[a];s.isInGroup(e)&&r.push(s)}return r.length==0&&t.err("No node type or group '"+e+"' found"),r}function xxe(t){if(t.eat("(")){let e=U$(t);return t.eat(")")||t.err("Missing closing paren"),e}else if(/\W/.test(t.next))t.err("Unexpected token '"+t.next+"'");else{let e=vxe(t,t.next).map(n=>(t.inline==null?t.inline=n.isInline:t.inline!=n.isInline&&t.err("Mixing inline and block content"),{type:"name",value:n}));return t.pos++,e.length==1?e[0]:{type:"choice",exprs:e}}}function yxe(t){let e=[[]];return r(a(t,0),n()),e;function n(){return e.push([])-1}function i(s,o,l){let c={term:l,to:o};return e[s].push(c),c}function r(s,o){s.forEach(l=>l.to=o)}function a(s,o){if(s.type=="choice")return s.exprs.reduce((l,c)=>l.concat(a(c,o)),[]);if(s.type=="seq")for(let l=0;;l++){let c=a(s.exprs[l],o);if(l==s.exprs.length-1)return c;r(c,o=n())}else if(s.type=="star"){let l=n();return i(o,l),r(a(s.expr,l),l),[i(l)]}else if(s.type=="plus"){let l=n();return r(a(s.expr,o),l),r(a(s.expr,l),l),[i(l)]}else{if(s.type=="opt")return[i(o)].concat(a(s.expr,o));if(s.type=="range"){let l=o;for(let c=0;c<s.min;c++){let d=n();r(a(s.expr,l),d),l=d}if(s.max==-1)r(a(s.expr,l),l);else for(let c=s.min;c<s.max;c++){let d=n();i(l,d),r(a(s.expr,l),d),l=d}return[i(l)]}else{if(s.type=="name")return[i(o,void 0,s.value)];throw new Error("Unknown expr type")}}}}function F$(t,e){return e-t}function mB(t,e){let n=[];return i(e),n.sort(F$);function i(r){let a=t[r];if(a.length==1&&!a[0].term)return i(a[0].to);n.push(r);for(let s=0;s<a.length;s++){let{term:o,to:l}=a[s];!o&&n.indexOf(l)==-1&&i(l)}}}function bxe(t){let e=Object.create(null);return n(mB(t,0));function n(i){let r=[];i.forEach(s=>{t[s].forEach(({term:o,to:l})=>{if(!o)return;let c;for(let d=0;d<r.length;d++)r[d][0]==o&&(c=r[d][1]);mB(t,l).forEach(d=>{c||r.push([o,c=[]]),c.indexOf(d)==-1&&c.push(d)})})});let a=e[i.join(",")]=new df(i.indexOf(t.length-1)>-1);for(let s=0;s<r.length;s++){let o=r[s][1].sort(F$);a.next.push({type:r[s][0],next:e[o.join(",")]||n(o)})}return a}}function _xe(t,e){for(let n=0,i=[t];n<i.length;n++){let r=i[n],a=!r.validEnd,s=[];for(let o=0;o<r.next.length;o++){let{type:l,next:c}=r.next[o];s.push(l.name),a&&!(l.isText||l.hasRequiredAttrs())&&(a=!1),i.indexOf(c)==-1&&i.push(c)}a&&e.err("Only non-generatable nodes ("+s.join(", ")+") in a required position (see https://prosemirror.net/docs/guide/#generatable)")}}function z$(t){let e=Object.create(null);for(let n in t){let i=t[n];if(!i.hasDefault)return null;e[n]=i.default}return e}function B$(t,e){let n=Object.create(null);for(let i in t){let r=e&&e[i];if(r===void 0){let a=t[i];if(a.hasDefault)r=a.default;else throw new RangeError("No value supplied for attribute "+i)}n[i]=r}return n}function j$(t,e,n,i){for(let r in e)if(!(r in t))throw new RangeError(`Unsupported attribute ${r} for ${n} of type ${r}`);for(let r in t){let a=t[r];a.validate&&a.validate(e[r])}}function H$(t,e){let n=Object.create(null);if(e)for(let i in e)n[i]=new wxe(t,i,e[i]);return n}let gB=class V${constructor(e,n,i){this.name=e,this.schema=n,this.spec=i,this.markSet=null,this.groups=i.group?i.group.split(" "):[],this.attrs=H$(e,i.attrs),this.defaultAttrs=z$(this.attrs),this.contentMatch=null,this.inlineContent=null,this.isBlock=!(i.inline||e=="text"),this.isText=e=="text"}get isInline(){return!this.isBlock}get isTextblock(){return this.isBlock&&this.inlineContent}get isLeaf(){return this.contentMatch==df.empty}get isAtom(){return this.isLeaf||!!this.spec.atom}isInGroup(e){return this.groups.indexOf(e)>-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:B$(this.attrs,e)}create(e=null,n,i){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new wu(this,this.computeAttrs(e),lt.from(n),jn.setFrom(i))}createChecked(e=null,n,i){return n=lt.from(n),this.checkContent(n),new wu(this,this.computeAttrs(e),n,jn.setFrom(i))}createAndFill(e=null,n,i){if(e=this.computeAttrs(e),n=lt.from(n),n.size){let s=this.contentMatch.fillBefore(n);if(!s)return null;n=s.append(n)}let r=this.contentMatch.matchFragment(n),a=r&&r.fillBefore(lt.empty,!0);return a?new wu(this,e,n.append(a),jn.setFrom(i)):null}validContent(e){let n=this.contentMatch.matchFragment(e);if(!n||!n.validEnd)return!1;for(let i=0;i<e.childCount;i++)if(!this.allowsMarks(e.child(i).marks))return!1;return!0}checkContent(e){if(!this.validContent(e))throw new RangeError(`Invalid content for node ${this.name}: ${e.toString().slice(0,50)}`)}checkAttrs(e){j$(this.attrs,e,"node",this.name)}allowsMarkType(e){return this.markSet==null||this.markSet.indexOf(e)>-1}allowsMarks(e){if(this.markSet==null)return!0;for(let n=0;n<e.length;n++)if(!this.allowsMarkType(e[n].type))return!1;return!0}allowedMarks(e){if(this.markSet==null)return e;let n;for(let i=0;i<e.length;i++)this.allowsMarkType(e[i].type)?n&&n.push(e[i]):n||(n=e.slice(0,i));return n?n.length?n:jn.none:e}static compile(e,n){let i=Object.create(null);e.forEach((a,s)=>i[a]=new V$(a,n,s));let r=n.spec.topNode||"doc";if(!i[r])throw new RangeError("Schema is missing its top node type ('"+r+"')");if(!i.text)throw new RangeError("Every schema needs a 'text' type");for(let a in i.text.attrs)throw new RangeError("The text node type should not have attributes");return i}};function Sxe(t,e,n){let i=n.split("|");return r=>{let a=r===null?"null":typeof r;if(i.indexOf(a)<0)throw new RangeError(`Expected value of type ${i} for attribute ${e} on type ${t}, got ${a}`)}}class wxe{constructor(e,n,i){this.hasDefault=Object.prototype.hasOwnProperty.call(i,"default"),this.default=i.default,this.validate=typeof i.validate=="string"?Sxe(e,n,i.validate):i.validate}get isRequired(){return!this.hasDefault}}class dS{constructor(e,n,i,r){this.name=e,this.rank=n,this.schema=i,this.spec=r,this.attrs=H$(e,r.attrs),this.excluded=null;let a=z$(this.attrs);this.instance=a?new jn(this,a):null}create(e=null){return!e&&this.instance?this.instance:new jn(this,B$(this.attrs,e))}static compile(e,n){let i=Object.create(null),r=0;return e.forEach((a,s)=>i[a]=new dS(a,r++,n,s)),i}removeFromSet(e){for(var n=0;n<e.length;n++)e[n].type==this&&(e=e.slice(0,n).concat(e.slice(n+1)),n--);return e}isInSet(e){for(let n=0;n<e.length;n++)if(e[n].type==this)return e[n]}checkAttrs(e){j$(this.attrs,e,"mark",this.name)}excludes(e){return this.excluded.indexOf(e)>-1}}class G${constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let n=this.spec={};for(let r in e)n[r]=e[r];n.nodes=kr.from(e.nodes),n.marks=kr.from(e.marks||{}),this.nodes=gB.compile(this.spec.nodes,this),this.marks=dS.compile(this.spec.marks,this);let i=Object.create(null);for(let r in this.nodes){if(r in this.marks)throw new RangeError(r+" can not be both a node and a mark");let a=this.nodes[r],s=a.spec.content||"",o=a.spec.marks;if(a.contentMatch=i[s]||(i[s]=df.parse(s,this.nodes)),a.inlineContent=a.contentMatch.inlineContent,a.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!a.isInline||!a.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=a}a.markSet=o=="_"?null:o?vB(this,o.split(" ")):o==""||!a.inlineContent?[]:null}for(let r in this.marks){let a=this.marks[r],s=a.spec.excludes;a.excluded=s==null?[a]:s==""?[]:vB(this,s.split(" "))}this.nodeFromJSON=r=>wu.fromJSON(this,r),this.markFromJSON=r=>jn.fromJSON(this,r),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,n=null,i,r){if(typeof e=="string")e=this.nodeType(e);else if(e instanceof gB){if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}else throw new RangeError("Invalid node type: "+e);return e.createChecked(n,i,r)}text(e,n){let i=this.nodes.text;return new g_(i,i.defaultAttrs,e,jn.setFrom(n))}mark(e,n){return typeof e=="string"&&(e=this.marks[e]),e.create(n)}nodeType(e){let n=this.nodes[e];if(!n)throw new RangeError("Unknown node type: "+e);return n}}function vB(t,e){let n=[];for(let i=0;i<e.length;i++){let r=e[i],a=t.marks[r],s=a;if(a)n.push(a);else for(let o in t.marks){let l=t.marks[o];(r=="_"||l.spec.group&&l.spec.group.split(" ").indexOf(r)>-1)&&n.push(s=l)}if(!s)throw new SyntaxError("Unknown mark type: '"+e[i]+"'")}return n}function Mxe(t){return t.tag!=null}function Exe(t){return t.style!=null}let Wg=class PR{constructor(e,n){this.schema=e,this.rules=n,this.tags=[],this.styles=[];let i=this.matchedStyles=[];n.forEach(r=>{if(Mxe(r))this.tags.push(r);else if(Exe(r)){let a=/[^=]*/.exec(r.style)[0];i.indexOf(a)<0&&i.push(a),this.styles.push(r)}}),this.normalizeLists=!this.tags.some(r=>{if(!/^(ul|ol)\b/.test(r.tag)||!r.node)return!1;let a=e.nodes[r.node];return a.contentMatch.matchType(a)})}parse(e,n={}){let i=new yB(this,n,!1);return i.addAll(e,jn.none,n.from,n.to),i.finish()}parseSlice(e,n={}){let i=new yB(this,n,!0);return i.addAll(e,jn.none,n.from,n.to),_t.maxOpen(i.finish())}matchTag(e,n,i){for(let r=i?this.tags.indexOf(i)+1:0;r<this.tags.length;r++){let a=this.tags[r];if(Cxe(e,a.tag)&&(a.namespace===void 0||e.namespaceURI==a.namespace)&&(!a.context||n.matchesContext(a.context))){if(a.getAttrs){let s=a.getAttrs(e);if(s===!1)continue;a.attrs=s||void 0}return a}}}matchStyle(e,n,i,r){for(let a=r?this.styles.indexOf(r)+1:0;a<this.styles.length;a++){let s=this.styles[a],o=s.style;if(!(o.indexOf(e)!=0||s.context&&!i.matchesContext(s.context)||o.length>e.length&&(o.charCodeAt(e.length)!=61||o.slice(e.length+1)!=n))){if(s.getAttrs){let l=s.getAttrs(n);if(l===!1)continue;s.attrs=l||void 0}return s}}}static schemaRules(e){let n=[];function i(r){let a=r.priority==null?50:r.priority,s=0;for(;s<n.length;s++){let o=n[s];if((o.priority==null?50:o.priority)<a)break}n.splice(s,0,r)}for(let r in e.marks){let a=e.marks[r].spec.parseDOM;a&&a.forEach(s=>{i(s=bB(s)),s.mark||s.ignore||s.clearMark||(s.mark=r)})}for(let r in e.nodes){let a=e.nodes[r].spec.parseDOM;a&&a.forEach(s=>{i(s=bB(s)),s.node||s.ignore||s.mark||(s.node=r)})}return n}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new PR(e,PR.schemaRules(e)))}};const $$={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},Axe={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},W$={ol:!0,ul:!0},S0=1,DR=2,qg=4;function xB(t,e,n){return e!=null?(e?S0:0)|(e==="full"?DR:0):t&&t.whitespace=="pre"?S0|DR:n&~qg}class Yy{constructor(e,n,i,r,a,s){this.type=e,this.attrs=n,this.marks=i,this.solid=r,this.options=s,this.content=[],this.activeMarks=jn.none,this.match=a||(s&qg?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let n=this.type.contentMatch.fillBefore(lt.from(e));if(n)this.match=this.type.contentMatch.matchFragment(n);else{let i=this.type.contentMatch,r;return(r=i.findWrapping(e.type))?(this.match=i,r):null}}return this.match.findWrapping(e.type)}finish(e){if(!(this.options&S0)){let i=this.content[this.content.length-1],r;if(i&&i.isText&&(r=/[ \t\r\n\u000c]+$/.exec(i.text))){let a=i;i.text.length==r[0].length?this.content.pop():this.content[this.content.length-1]=a.withText(a.text.slice(0,a.text.length-r[0].length))}}let n=lt.from(this.content);return!e&&this.match&&(n=n.append(this.match.fillBefore(lt.empty,!0))),this.type?this.type.create(this.attrs,n,this.marks):n}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!$$.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class yB{constructor(e,n,i){this.parser=e,this.options=n,this.isOpen=i,this.open=0,this.localPreserveWS=!1;let r=n.topNode,a,s=xB(null,n.preserveWhitespace,0)|(i?qg:0);r?a=new Yy(r.type,r.attrs,jn.none,!0,n.topMatch||r.type.contentMatch,s):i?a=new Yy(null,null,jn.none,!0,null,s):a=new Yy(e.schema.topNodeType,null,jn.none,!0,null,s),this.nodes=[a],this.find=n.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,n){e.nodeType==3?this.addTextNode(e,n):e.nodeType==1&&this.addElement(e,n)}addTextNode(e,n){let i=e.nodeValue,r=this.top,a=r.options&DR?"full":this.localPreserveWS||(r.options&S0)>0,{schema:s}=this.parser;if(a==="full"||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(i)){if(a)if(a==="full")i=i.replace(/\r\n?/g,`
- `);else if(s.linebreakReplacement&&/[\r\n]/.test(i)&&this.top.findWrapping(s.linebreakReplacement.create())){let o=i.split(/\r?\n|\r/);for(let l=0;l<o.length;l++)l&&this.insertNode(s.linebreakReplacement.create(),n,!0),o[l]&&this.insertNode(s.text(o[l]),n,!/\S/.test(o[l]));i=""}else i=i.replace(/\r?\n|\r/g," ");else if(i=i.replace(/[ \t\r\n\u000c]+/g," "),/^[ \t\r\n\u000c]/.test(i)&&this.open==this.nodes.length-1){let o=r.content[r.content.length-1],l=e.previousSibling;(!o||l&&l.nodeName=="BR"||o.isText&&/[ \t\r\n\u000c]$/.test(o.text))&&(i=i.slice(1))}i&&this.insertNode(s.text(i),n,!/\S/.test(i)),this.findInText(e)}else this.findInside(e)}addElement(e,n,i){let r=this.localPreserveWS,a=this.top;(e.tagName=="PRE"||/pre/.test(e.style&&e.style.whiteSpace))&&(this.localPreserveWS=!0);let s=e.nodeName.toLowerCase(),o;W$.hasOwnProperty(s)&&this.parser.normalizeLists&&Txe(e);let l=this.options.ruleFromNode&&this.options.ruleFromNode(e)||(o=this.parser.matchTag(e,this,i));e:if(l?l.ignore:Axe.hasOwnProperty(s))this.findInside(e),this.ignoreFallback(e,n);else if(!l||l.skip||l.closeParent){l&&l.closeParent?this.open=Math.max(0,this.open-1):l&&l.skip.nodeType&&(e=l.skip);let c,d=this.needsBlock;if($$.hasOwnProperty(s))a.content.length&&a.content[0].isInline&&this.open&&(this.open--,a=this.top),c=!0,a.type||(this.needsBlock=!0);else if(!e.firstChild){this.leafFallback(e,n);break e}let f=l&&l.skip?n:this.readStyles(e,n);f&&this.addAll(e,f),c&&this.sync(a),this.needsBlock=d}else{let c=this.readStyles(e,n);c&&this.addElementByRule(e,l,c,l.consuming===!1?o:void 0)}this.localPreserveWS=r}leafFallback(e,n){e.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(e.ownerDocument.createTextNode(`
- `),n)}ignoreFallback(e,n){e.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"),n,!0)}readStyles(e,n){let i=e.style;if(i&&i.length)for(let r=0;r<this.parser.matchedStyles.length;r++){let a=this.parser.matchedStyles[r],s=i.getPropertyValue(a);if(s)for(let o=void 0;;){let l=this.parser.matchStyle(a,s,this,o);if(!l)break;if(l.ignore)return null;if(l.clearMark?n=n.filter(c=>!l.clearMark(c)):n=n.concat(this.parser.schema.marks[l.mark].create(l.attrs)),l.consuming===!1)o=l;else break}}return n}addElementByRule(e,n,i,r){let a,s;if(n.node)if(s=this.parser.schema.nodes[n.node],s.isLeaf)this.insertNode(s.create(n.attrs),i,e.nodeName=="BR")||this.leafFallback(e,i);else{let l=this.enter(s,n.attrs||null,i,n.preserveWhitespace);l&&(a=!0,i=l)}else{let l=this.parser.schema.marks[n.mark];i=i.concat(l.create(n.attrs))}let o=this.top;if(s&&s.isLeaf)this.findInside(e);else if(r)this.addElement(e,i,r);else if(n.getContent)this.findInside(e),n.getContent(e,this.parser.schema).forEach(l=>this.insertNode(l,i,!1));else{let l=e;typeof n.contentElement=="string"?l=e.querySelector(n.contentElement):typeof n.contentElement=="function"?l=n.contentElement(e):n.contentElement&&(l=n.contentElement),this.findAround(e,l,!0),this.addAll(l,i),this.findAround(e,l,!1)}a&&this.sync(o)&&this.open--}addAll(e,n,i,r){let a=i||0;for(let s=i?e.childNodes[i]:e.firstChild,o=r==null?null:e.childNodes[r];s!=o;s=s.nextSibling,++a)this.findAtPoint(e,a),this.addDOM(s,n);this.findAtPoint(e,a)}findPlace(e,n,i){let r,a;for(let s=this.open,o=0;s>=0;s--){let l=this.nodes[s],c=l.findWrapping(e);if(c&&(!r||r.length>c.length+o)&&(r=c,a=l,!c.length))break;if(l.solid){if(i)break;o+=2}}if(!r)return null;this.sync(a);for(let s=0;s<r.length;s++)n=this.enterInner(r[s],null,n,!1);return n}insertNode(e,n,i){if(e.isInline&&this.needsBlock&&!this.top.type){let a=this.textblockFromContext();a&&(n=this.enterInner(a,null,n))}let r=this.findPlace(e,n,i);if(r){this.closeExtra();let a=this.top;a.match&&(a.match=a.match.matchType(e.type));let s=jn.none;for(let o of r.concat(e.marks))(a.type?a.type.allowsMarkType(o.type):_B(o.type,e.type))&&(s=o.addToSet(s));return a.content.push(e.mark(s)),!0}return!1}enter(e,n,i,r){let a=this.findPlace(e.create(n),i,!1);return a&&(a=this.enterInner(e,n,i,!0,r)),a}enterInner(e,n,i,r=!1,a){this.closeExtra();let s=this.top;s.match=s.match&&s.match.matchType(e);let o=xB(e,a,s.options);s.options&qg&&s.content.length==0&&(o|=qg);let l=jn.none;return i=i.filter(c=>(s.type?s.type.allowsMarkType(c.type):_B(c.type,e))?(l=c.addToSet(l),!1):!0),this.nodes.push(new Yy(e,n,l,r,null,o)),this.open++,i}closeExtra(e=!1){let n=this.nodes.length-1;if(n>this.open){for(;n>this.open;n--)this.nodes[n-1].content.push(this.nodes[n].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!!(this.isOpen||this.options.topOpen))}sync(e){for(let n=this.open;n>=0;n--){if(this.nodes[n]==e)return this.open=n,!0;this.localPreserveWS&&(this.nodes[n].options|=S0)}return!1}get currentPos(){this.closeExtra();let e=0;for(let n=this.open;n>=0;n--){let i=this.nodes[n].content;for(let r=i.length-1;r>=0;r--)e+=i[r].nodeSize;n&&e++}return e}findAtPoint(e,n){if(this.find)for(let i=0;i<this.find.length;i++)this.find[i].node==e&&this.find[i].offset==n&&(this.find[i].pos=this.currentPos)}findInside(e){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].pos==null&&e.nodeType==1&&e.contains(this.find[n].node)&&(this.find[n].pos=this.currentPos)}findAround(e,n,i){if(e!=n&&this.find)for(let r=0;r<this.find.length;r++)this.find[r].pos==null&&e.nodeType==1&&e.contains(this.find[r].node)&&n.compareDocumentPosition(this.find[r].node)&(i?2:4)&&(this.find[r].pos=this.currentPos)}findInText(e){if(this.find)for(let n=0;n<this.find.length;n++)this.find[n].node==e&&(this.find[n].pos=this.currentPos-(e.nodeValue.length-this.find[n].offset))}matchesContext(e){if(e.indexOf("|")>-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let n=e.split("/"),i=this.options.context,r=!this.isOpen&&(!i||i.parent.type==this.nodes[0].type),a=-(i?i.depth+1:0)+(r?0:1),s=(o,l)=>{for(;o>=0;o--){let c=n[o];if(c==""){if(o==n.length-1||o==0)continue;for(;l>=a;l--)if(s(o-1,l))return!0;return!1}else{let d=l>0||l==0&&r?this.nodes[l].type:i&&l>=a?i.node(l-a).type:null;if(!d||d.name!=c&&!d.isInGroup(c))return!1;l--}}return!0};return s(n.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let n=e.depth;n>=0;n--){let i=e.node(n).contentMatchAt(e.indexAfter(n)).defaultType;if(i&&i.isTextblock&&i.defaultAttrs)return i}for(let n in this.parser.schema.nodes){let i=this.parser.schema.nodes[n];if(i.isTextblock&&i.defaultAttrs)return i}}}function Txe(t){for(let e=t.firstChild,n=null;e;e=e.nextSibling){let i=e.nodeType==1?e.nodeName.toLowerCase():null;i&&W$.hasOwnProperty(i)&&n?(n.appendChild(e),e=n):i=="li"?n=e:i&&(n=null)}}function Cxe(t,e){return(t.matches||t.msMatchesSelector||t.webkitMatchesSelector||t.mozMatchesSelector).call(t,e)}function bB(t){let e={};for(let n in t)e[n]=t[n];return e}function _B(t,e){let n=e.schema.nodes;for(let i in n){let r=n[i];if(!r.allowsMarkType(t))continue;let a=[],s=o=>{a.push(o);for(let l=0;l<o.edgeCount;l++){let{type:c,next:d}=o.edge(l);if(c==e||a.indexOf(d)<0&&s(d))return!0}};if(s(r.contentMatch))return!0}}class Tf{constructor(e,n){this.nodes=e,this.marks=n}serializeFragment(e,n={},i){i||(i=tT(n).createDocumentFragment());let r=i,a=[];return e.forEach(s=>{if(a.length||s.marks.length){let o=0,l=0;for(;o<a.length&&l<s.marks.length;){let c=s.marks[l];if(!this.marks[c.type.name]){l++;continue}if(!c.eq(a[o][0])||c.type.spec.spanning===!1)break;o++,l++}for(;o<a.length;)r=a.pop()[1];for(;l<s.marks.length;){let c=s.marks[l++],d=this.serializeMark(c,s.isInline,n);d&&(a.push([c,r]),r.appendChild(d.dom),r=d.contentDOM||d.dom)}}r.appendChild(this.serializeNodeInner(s,n))}),i}serializeNodeInner(e,n){let{dom:i,contentDOM:r}=kb(tT(n),this.nodes[e.type.name](e),null,e.attrs);if(r){if(e.isLeaf)throw new RangeError("Content hole not allowed in a leaf node spec");this.serializeFragment(e.content,n,r)}return i}serializeNode(e,n={}){let i=this.serializeNodeInner(e,n);for(let r=e.marks.length-1;r>=0;r--){let a=this.serializeMark(e.marks[r],e.isInline,n);a&&((a.contentDOM||a.dom).appendChild(i),i=a.dom)}return i}serializeMark(e,n,i={}){let r=this.marks[e.type.name];return r&&kb(tT(i),r(e,n),null,e.attrs)}static renderSpec(e,n,i=null,r){return kb(e,n,i,r)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new Tf(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let n=SB(e.nodes);return n.text||(n.text=i=>i.text),n}static marksFromSchema(e){return SB(e.marks)}}function SB(t){let e={};for(let n in t){let i=t[n].spec.toDOM;i&&(e[n]=i)}return e}function tT(t){return t.document||window.document}const wB=new WeakMap;function Rxe(t){let e=wB.get(t);return e===void 0&&wB.set(t,e=Pxe(t)),e}function Pxe(t){let e=null;function n(i){if(i&&typeof i=="object")if(Array.isArray(i))if(typeof i[0]=="string")e||(e=[]),e.push(i);else for(let r=0;r<i.length;r++)n(i[r]);else for(let r in i)n(i[r])}return n(t),e}function kb(t,e,n,i){if(typeof e=="string")return{dom:t.createTextNode(e)};if(e.nodeType!=null)return{dom:e};if(e.dom&&e.dom.nodeType!=null)return e;let r=e[0],a;if(typeof r!="string")throw new RangeError("Invalid array passed to renderSpec");if(i&&(a=Rxe(i))&&a.indexOf(e)>-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let s=r.indexOf(" ");s>0&&(n=r.slice(0,s),r=r.slice(s+1));let o,l=n?t.createElementNS(n,r):t.createElement(r),c=e[1],d=1;if(c&&typeof c=="object"&&c.nodeType==null&&!Array.isArray(c)){d=2;for(let f in c)if(c[f]!=null){let p=f.indexOf(" ");p>0?l.setAttributeNS(f.slice(0,p),f.slice(p+1),c[f]):f=="style"&&l.style?l.style.cssText=c[f]:l.setAttribute(f,c[f])}}for(let f=d;f<e.length;f++){let p=e[f];if(p===0){if(f<e.length-1||f>d)throw new RangeError("Content hole must be the only child of its parent node");return{dom:l,contentDOM:l}}else{let{dom:m,contentDOM:y}=kb(t,p,n,i);if(l.appendChild(m),y){if(o)throw new RangeError("Multiple content holes");o=y}}}return{dom:l,contentDOM:o}}const q$=65535,X$=Math.pow(2,16);function Dxe(t,e){return t+e*X$}function MB(t){return t&q$}function Nxe(t){return(t-(t&q$))/X$}const Y$=1,K$=2,Ib=4,Z$=8;class NR{constructor(e,n,i){this.pos=e,this.delInfo=n,this.recover=i}get deleted(){return(this.delInfo&Z$)>0}get deletedBefore(){return(this.delInfo&(Y$|Ib))>0}get deletedAfter(){return(this.delInfo&(K$|Ib))>0}get deletedAcross(){return(this.delInfo&Ib)>0}}class Qa{constructor(e,n=!1){if(this.ranges=e,this.inverted=n,!e.length&&Qa.empty)return Qa.empty}recover(e){let n=0,i=MB(e);if(!this.inverted)for(let r=0;r<i;r++)n+=this.ranges[r*3+2]-this.ranges[r*3+1];return this.ranges[i*3]+n+Nxe(e)}mapResult(e,n=1){return this._map(e,n,!1)}map(e,n=1){return this._map(e,n,!0)}_map(e,n,i){let r=0,a=this.inverted?2:1,s=this.inverted?1:2;for(let o=0;o<this.ranges.length;o+=3){let l=this.ranges[o]-(this.inverted?r:0);if(l>e)break;let c=this.ranges[o+a],d=this.ranges[o+s],f=l+c;if(e<=f){let p=c?e==l?-1:e==f?1:n:n,m=l+r+(p<0?0:d);if(i)return m;let y=e==(n<0?l:f)?null:Dxe(o/3,e-l),b=e==l?K$:e==f?Y$:Ib;return(n<0?e!=l:e!=f)&&(b|=Z$),new NR(m,b,y)}r+=d-c}return i?e+r:new NR(e+r,0,null)}touches(e,n){let i=0,r=MB(n),a=this.inverted?2:1,s=this.inverted?1:2;for(let o=0;o<this.ranges.length;o+=3){let l=this.ranges[o]-(this.inverted?i:0);if(l>e)break;let c=this.ranges[o+a],d=l+c;if(e<=d&&o==r*3)return!0;i+=this.ranges[o+s]-c}return!1}forEach(e){let n=this.inverted?2:1,i=this.inverted?1:2;for(let r=0,a=0;r<this.ranges.length;r+=3){let s=this.ranges[r],o=s-(this.inverted?a:0),l=s+(this.inverted?0:a),c=this.ranges[r+n],d=this.ranges[r+i];e(o,o+c,l,l+d),a+=d-c}}invert(){return new Qa(this.ranges,!this.inverted)}toString(){return(this.inverted?"-":"")+JSON.stringify(this.ranges)}static offset(e){return e==0?Qa.empty:new Qa(e<0?[0,-e,0]:[0,0,e])}}Qa.empty=new Qa([]);class w0{constructor(e,n,i=0,r=e?e.length:0){this.mirror=n,this.from=i,this.to=r,this._maps=e||[],this.ownData=!(e||n)}get maps(){return this._maps}slice(e=0,n=this.maps.length){return new w0(this._maps,this.mirror,e,n)}appendMap(e,n){this.ownData||(this._maps=this._maps.slice(),this.mirror=this.mirror&&this.mirror.slice(),this.ownData=!0),this.to=this._maps.push(e),n!=null&&this.setMirror(this._maps.length-1,n)}appendMapping(e){for(let n=0,i=this._maps.length;n<e._maps.length;n++){let r=e.getMirror(n);this.appendMap(e._maps[n],r!=null&&r<n?i+r:void 0)}}getMirror(e){if(this.mirror){for(let n=0;n<this.mirror.length;n++)if(this.mirror[n]==e)return this.mirror[n+(n%2?-1:1)]}}setMirror(e,n){this.mirror||(this.mirror=[]),this.mirror.push(e,n)}appendMappingInverted(e){for(let n=e.maps.length-1,i=this._maps.length+e._maps.length;n>=0;n--){let r=e.getMirror(n);this.appendMap(e._maps[n].invert(),r!=null&&r>n?i-r-1:void 0)}}invert(){let e=new w0;return e.appendMappingInverted(this),e}map(e,n=1){if(this.mirror)return this._map(e,n,!0);for(let i=this.from;i<this.to;i++)e=this._maps[i].map(e,n);return e}mapResult(e,n=1){return this._map(e,n,!1)}_map(e,n,i){let r=0;for(let a=this.from;a<this.to;a++){let s=this._maps[a],o=s.mapResult(e,n);if(o.recover!=null){let l=this.getMirror(a);if(l!=null&&l>a&&l<this.to){a=l,e=this._maps[l].recover(o.recover);continue}}r|=o.delInfo,e=o.pos}return i?e:new NR(e,r,null)}}const nT=Object.create(null);let na=class{getMap(){return Qa.empty}merge(e){return null}static fromJSON(e,n){if(!n||!n.stepType)throw new RangeError("Invalid input for Step.fromJSON");let i=nT[n.stepType];if(!i)throw new RangeError(`No step type ${n.stepType} defined`);return i.fromJSON(e,n)}static jsonID(e,n){if(e in nT)throw new RangeError("Duplicate use of step JSON ID "+e);return nT[e]=n,n.prototype.jsonID=e,n}};class Ii{constructor(e,n){this.doc=e,this.failed=n}static ok(e){return new Ii(e,null)}static fail(e){return new Ii(null,e)}static fromReplace(e,n,i,r){try{return Ii.ok(e.replace(n,i,r))}catch(a){if(a instanceof h_)return Ii.fail(a.message);throw a}}}function tD(t,e,n){let i=[];for(let r=0;r<t.childCount;r++){let a=t.child(r);a.content.size&&(a=a.copy(tD(a.content,e,a))),a.isInline&&(a=e(a,n,r)),i.push(a)}return lt.fromArray(i)}class mu extends na{constructor(e,n,i){super(),this.from=e,this.to=n,this.mark=i}apply(e){let n=e.slice(this.from,this.to),i=e.resolve(this.from),r=i.node(i.sharedDepth(this.to)),a=new _t(tD(n.content,(s,o)=>!s.isAtom||!o.type.allowsMarkType(this.mark.type)?s:s.mark(this.mark.addToSet(s.marks)),r),n.openStart,n.openEnd);return Ii.fromReplace(e,this.from,this.to,a)}invert(){return new uo(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),i=e.mapResult(this.to,-1);return n.deleted&&i.deleted||n.pos>=i.pos?null:new mu(n.pos,i.pos,this.mark)}merge(e){return e instanceof mu&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new mu(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new mu(n.from,n.to,e.markFromJSON(n.mark))}}na.jsonID("addMark",mu);class uo extends na{constructor(e,n,i){super(),this.from=e,this.to=n,this.mark=i}apply(e){let n=e.slice(this.from,this.to),i=new _t(tD(n.content,r=>r.mark(this.mark.removeFromSet(r.marks)),e),n.openStart,n.openEnd);return Ii.fromReplace(e,this.from,this.to,i)}invert(){return new mu(this.from,this.to,this.mark)}map(e){let n=e.mapResult(this.from,1),i=e.mapResult(this.to,-1);return n.deleted&&i.deleted||n.pos>=i.pos?null:new uo(n.pos,i.pos,this.mark)}merge(e){return e instanceof uo&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new uo(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new uo(n.from,n.to,e.markFromJSON(n.mark))}}na.jsonID("removeMark",uo);class gu extends na{constructor(e,n){super(),this.pos=e,this.mark=n}apply(e){let n=e.nodeAt(this.pos);if(!n)return Ii.fail("No node at mark step's position");let i=n.type.create(n.attrs,null,this.mark.addToSet(n.marks));return Ii.fromReplace(e,this.pos,this.pos+1,new _t(lt.from(i),0,n.isLeaf?0:1))}invert(e){let n=e.nodeAt(this.pos);if(n){let i=this.mark.addToSet(n.marks);if(i.length==n.marks.length){for(let r=0;r<n.marks.length;r++)if(!n.marks[r].isInSet(i))return new gu(this.pos,n.marks[r]);return new gu(this.pos,this.mark)}}return new ff(this.pos,this.mark)}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new gu(n.pos,this.mark)}toJSON(){return{stepType:"addNodeMark",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for AddNodeMarkStep.fromJSON");return new gu(n.pos,e.markFromJSON(n.mark))}}na.jsonID("addNodeMark",gu);class ff extends na{constructor(e,n){super(),this.pos=e,this.mark=n}apply(e){let n=e.nodeAt(this.pos);if(!n)return Ii.fail("No node at mark step's position");let i=n.type.create(n.attrs,null,this.mark.removeFromSet(n.marks));return Ii.fromReplace(e,this.pos,this.pos+1,new _t(lt.from(i),0,n.isLeaf?0:1))}invert(e){let n=e.nodeAt(this.pos);return!n||!this.mark.isInSet(n.marks)?this:new gu(this.pos,this.mark)}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new ff(n.pos,this.mark)}toJSON(){return{stepType:"removeNodeMark",pos:this.pos,mark:this.mark.toJSON()}}static fromJSON(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for RemoveNodeMarkStep.fromJSON");return new ff(n.pos,e.markFromJSON(n.mark))}}na.jsonID("removeNodeMark",ff);class br extends na{constructor(e,n,i,r=!1){super(),this.from=e,this.to=n,this.slice=i,this.structure=r}apply(e){return this.structure&&OR(e,this.from,this.to)?Ii.fail("Structure replace would overwrite content"):Ii.fromReplace(e,this.from,this.to,this.slice)}getMap(){return new Qa([this.from,this.to-this.from,this.slice.size])}invert(e){return new br(this.from,this.from+this.slice.size,e.slice(this.from,this.to))}map(e){let n=e.mapResult(this.from,1),i=e.mapResult(this.to,-1);return n.deletedAcross&&i.deletedAcross?null:new br(n.pos,Math.max(n.pos,i.pos),this.slice,this.structure)}merge(e){if(!(e instanceof br)||e.structure||this.structure)return null;if(this.from+this.slice.size==e.from&&!this.slice.openEnd&&!e.slice.openStart){let n=this.slice.size+e.slice.size==0?_t.empty:new _t(this.slice.content.append(e.slice.content),this.slice.openStart,e.slice.openEnd);return new br(this.from,this.to+(e.to-e.from),n,this.structure)}else if(e.to==this.from&&!this.slice.openStart&&!e.slice.openEnd){let n=this.slice.size+e.slice.size==0?_t.empty:new _t(e.slice.content.append(this.slice.content),e.slice.openStart,this.slice.openEnd);return new br(e.from,this.to,n,this.structure)}else return null}toJSON(){let e={stepType:"replace",from:this.from,to:this.to};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for ReplaceStep.fromJSON");return new br(n.from,n.to,_t.fromJSON(e,n.slice),!!n.structure)}}na.jsonID("replace",br);class Sr extends na{constructor(e,n,i,r,a,s,o=!1){super(),this.from=e,this.to=n,this.gapFrom=i,this.gapTo=r,this.slice=a,this.insert=s,this.structure=o}apply(e){if(this.structure&&(OR(e,this.from,this.gapFrom)||OR(e,this.gapTo,this.to)))return Ii.fail("Structure gap-replace would overwrite content");let n=e.slice(this.gapFrom,this.gapTo);if(n.openStart||n.openEnd)return Ii.fail("Gap is not a flat range");let i=this.slice.insertAt(this.insert,n.content);return i?Ii.fromReplace(e,this.from,this.to,i):Ii.fail("Content does not fit in gap")}getMap(){return new Qa([this.from,this.gapFrom-this.from,this.insert,this.gapTo,this.to-this.gapTo,this.slice.size-this.insert])}invert(e){let n=this.gapTo-this.gapFrom;return new Sr(this.from,this.from+this.slice.size+n,this.from+this.insert,this.from+this.insert+n,e.slice(this.from,this.to).removeBetween(this.gapFrom-this.from,this.gapTo-this.from),this.gapFrom-this.from,this.structure)}map(e){let n=e.mapResult(this.from,1),i=e.mapResult(this.to,-1),r=this.from==this.gapFrom?n.pos:e.map(this.gapFrom,-1),a=this.to==this.gapTo?i.pos:e.map(this.gapTo,1);return n.deletedAcross&&i.deletedAcross||r<n.pos||a>i.pos?null:new Sr(n.pos,i.pos,r,a,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,n){if(typeof n.from!="number"||typeof n.to!="number"||typeof n.gapFrom!="number"||typeof n.gapTo!="number"||typeof n.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new Sr(n.from,n.to,n.gapFrom,n.gapTo,_t.fromJSON(e,n.slice),n.insert,!!n.structure)}}na.jsonID("replaceAround",Sr);function OR(t,e,n){let i=t.resolve(e),r=n-e,a=i.depth;for(;r>0&&a>0&&i.indexAfter(a)==i.node(a).childCount;)a--,r--;if(r>0){let s=i.node(a).maybeChild(i.indexAfter(a));for(;r>0;){if(!s||s.isLeaf)return!0;s=s.firstChild,r--}}return!1}function Oxe(t,e,n,i){let r=[],a=[],s,o;t.doc.nodesBetween(e,n,(l,c,d)=>{if(!l.isInline)return;let f=l.marks;if(!i.isInSet(f)&&d.type.allowsMarkType(i.type)){let p=Math.max(c,e),m=Math.min(c+l.nodeSize,n),y=i.addToSet(f);for(let b=0;b<f.length;b++)f[b].isInSet(y)||(s&&s.to==p&&s.mark.eq(f[b])?s.to=m:r.push(s=new uo(p,m,f[b])));o&&o.to==p?o.to=m:a.push(o=new mu(p,m,i))}}),r.forEach(l=>t.step(l)),a.forEach(l=>t.step(l))}function Lxe(t,e,n,i){let r=[],a=0;t.doc.nodesBetween(e,n,(s,o)=>{if(!s.isInline)return;a++;let l=null;if(i instanceof dS){let c=s.marks,d;for(;d=i.isInSet(c);)(l||(l=[])).push(d),c=d.removeFromSet(c)}else i?i.isInSet(s.marks)&&(l=[i]):l=s.marks;if(l&&l.length){let c=Math.min(o+s.nodeSize,n);for(let d=0;d<l.length;d++){let f=l[d],p;for(let m=0;m<r.length;m++){let y=r[m];y.step==a-1&&f.eq(r[m].style)&&(p=y)}p?(p.to=c,p.step=a):r.push({style:f,from:Math.max(o,e),to:c,step:a})}}}),r.forEach(s=>t.step(new uo(s.from,s.to,s.style)))}function nD(t,e,n,i=n.contentMatch,r=!0){let a=t.doc.nodeAt(e),s=[],o=e+1;for(let l=0;l<a.childCount;l++){let c=a.child(l),d=o+c.nodeSize,f=i.matchType(c.type);if(!f)s.push(new br(o,d,_t.empty));else{i=f;for(let p=0;p<c.marks.length;p++)n.allowsMarkType(c.marks[p].type)||t.step(new uo(o,d,c.marks[p]));if(r&&c.isText&&n.whitespace!="pre"){let p,m=/\r?\n|\r/g,y;for(;p=m.exec(c.text);)y||(y=new _t(lt.from(n.schema.text(" ",n.allowedMarks(c.marks))),0,0)),s.push(new br(o+p.index,o+p.index+p[0].length,y))}}o=d}if(!i.validEnd){let l=i.fillBefore(lt.empty,!0);t.replace(o,o,new _t(l,0,0))}for(let l=s.length-1;l>=0;l--)t.step(s[l])}function kxe(t,e,n){return(e==0||t.canReplace(e,t.childCount))&&(n==t.childCount||t.canReplace(0,n))}function Qp(t){let n=t.parent.content.cutByIndex(t.startIndex,t.endIndex);for(let i=t.depth,r=0,a=0;;--i){let s=t.$from.node(i),o=t.$from.index(i)+r,l=t.$to.indexAfter(i)-a;if(i<t.depth&&s.canReplace(o,l,n))return i;if(i==0||s.type.spec.isolating||!kxe(s,o,l))break;o&&(r=1),l<s.childCount&&(a=1)}return null}function Ixe(t,e,n){let{$from:i,$to:r,depth:a}=e,s=i.before(a+1),o=r.after(a+1),l=s,c=o,d=lt.empty,f=0;for(let y=a,b=!1;y>n;y--)b||i.index(y)>0?(b=!0,d=lt.from(i.node(y).copy(d)),f++):l--;let p=lt.empty,m=0;for(let y=a,b=!1;y>n;y--)b||r.after(y+1)<r.end(y)?(b=!0,p=lt.from(r.node(y).copy(p)),m++):c++;t.step(new Sr(l,c,s,o,new _t(d.append(p),f,m),d.size-f,!0))}function iD(t,e,n=null,i=t){let r=Uxe(t,e),a=r&&Fxe(i,e);return a?r.map(EB).concat({type:e,attrs:n}).concat(a.map(EB)):null}function EB(t){return{type:t,attrs:null}}function Uxe(t,e){let{parent:n,startIndex:i,endIndex:r}=t,a=n.contentMatchAt(i).findWrapping(e);if(!a)return null;let s=a.length?a[0]:e;return n.canReplaceWith(i,r,s)?a:null}function Fxe(t,e){let{parent:n,startIndex:i,endIndex:r}=t,a=n.child(i),s=e.contentMatch.findWrapping(a.type);if(!s)return null;let l=(s.length?s[s.length-1]:e).contentMatch;for(let c=i;l&&c<r;c++)l=l.matchType(n.child(c).type);return!l||!l.validEnd?null:s}function zxe(t,e,n){let i=lt.empty;for(let s=n.length-1;s>=0;s--){if(i.size){let o=n[s].type.contentMatch.matchFragment(i);if(!o||!o.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}i=lt.from(n[s].type.create(n[s].attrs,i))}let r=e.start,a=e.end;t.step(new Sr(r,a,r,a,new _t(i,0,0),n.length,!0))}function Bxe(t,e,n,i,r){if(!i.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let a=t.steps.length;t.doc.nodesBetween(e,n,(s,o)=>{let l=typeof r=="function"?r(s):r;if(s.isTextblock&&!s.hasMarkup(i,l)&&jxe(t.doc,t.mapping.slice(a).map(o),i)){let c=null;if(i.schema.linebreakReplacement){let m=i.whitespace=="pre",y=!!i.contentMatch.matchType(i.schema.linebreakReplacement);m&&!y?c=!1:!m&&y&&(c=!0)}c===!1&&Q$(t,s,o,a),nD(t,t.mapping.slice(a).map(o,1),i,void 0,c===null);let d=t.mapping.slice(a),f=d.map(o,1),p=d.map(o+s.nodeSize,1);return t.step(new Sr(f,p,f+1,p-1,new _t(lt.from(i.create(l,null,s.marks)),0,0),1,!0)),c===!0&&J$(t,s,o,a),!1}})}function J$(t,e,n,i){e.forEach((r,a)=>{if(r.isText){let s,o=/\r?\n|\r/g;for(;s=o.exec(r.text);){let l=t.mapping.slice(i).map(n+1+a+s.index);t.replaceWith(l,l+1,e.type.schema.linebreakReplacement.create())}}})}function Q$(t,e,n,i){e.forEach((r,a)=>{if(r.type==r.type.schema.linebreakReplacement){let s=t.mapping.slice(i).map(n+1+a);t.replaceWith(s,s+1,e.type.schema.text(`
- `))}})}function jxe(t,e,n){let i=t.resolve(e),r=i.index();return i.parent.canReplaceWith(r,r+1,n)}function Hxe(t,e,n,i,r){let a=t.doc.nodeAt(e);if(!a)throw new RangeError("No node at given position");n||(n=a.type);let s=n.create(i,null,r||a.marks);if(a.isLeaf)return t.replaceWith(e,e+a.nodeSize,s);if(!n.validContent(a.content))throw new RangeError("Invalid content for node type "+n.name);t.step(new Sr(e,e+a.nodeSize,e+1,e+a.nodeSize-1,new _t(lt.from(s),0,0),1,!0))}function ql(t,e,n=1,i){let r=t.resolve(e),a=r.depth-n,s=i&&i[i.length-1]||r.parent;if(a<0||r.parent.type.spec.isolating||!r.parent.canReplace(r.index(),r.parent.childCount)||!s.type.validContent(r.parent.content.cutByIndex(r.index(),r.parent.childCount)))return!1;for(let c=r.depth-1,d=n-2;c>a;c--,d--){let f=r.node(c),p=r.index(c);if(f.type.spec.isolating)return!1;let m=f.content.cutByIndex(p,f.childCount),y=i&&i[d+1];y&&(m=m.replaceChild(0,y.type.create(y.attrs)));let b=i&&i[d]||f;if(!f.canReplace(p+1,f.childCount)||!b.type.validContent(m))return!1}let o=r.indexAfter(a),l=i&&i[0];return r.node(a).canReplaceWith(o,o,l?l.type:r.node(a+1).type)}function Vxe(t,e,n=1,i){let r=t.doc.resolve(e),a=lt.empty,s=lt.empty;for(let o=r.depth,l=r.depth-n,c=n-1;o>l;o--,c--){a=lt.from(r.node(o).copy(a));let d=i&&i[c];s=lt.from(d?d.type.create(d.attrs,s):r.node(o).copy(s))}t.step(new br(e,e,new _t(a.append(s),n,n),!0))}function zu(t,e){let n=t.resolve(e),i=n.index();return e9(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(i,i+1)}function Gxe(t,e){e.content.size||t.type.compatibleContent(e.type);let n=t.contentMatchAt(t.childCount),{linebreakReplacement:i}=t.type.schema;for(let r=0;r<e.childCount;r++){let a=e.child(r),s=a.type==i?t.type.schema.nodes.text:a.type;if(n=n.matchType(s),!n||!t.type.allowsMarks(a.marks))return!1}return n.validEnd}function e9(t,e){return!!(t&&e&&!t.isLeaf&&Gxe(t,e))}function fS(t,e,n=-1){let i=t.resolve(e);for(let r=i.depth;;r--){let a,s,o=i.index(r);if(r==i.depth?(a=i.nodeBefore,s=i.nodeAfter):n>0?(a=i.node(r+1),o++,s=i.node(r).maybeChild(o)):(a=i.node(r).maybeChild(o-1),s=i.node(r+1)),a&&!a.isTextblock&&e9(a,s)&&i.node(r).canReplace(o,o+1))return e;if(r==0)break;e=n<0?i.before(r):i.after(r)}}function $xe(t,e,n){let i=null,{linebreakReplacement:r}=t.doc.type.schema,a=t.doc.resolve(e-n),s=a.node().type;if(r&&s.inlineContent){let d=s.whitespace=="pre",f=!!s.contentMatch.matchType(r);d&&!f?i=!1:!d&&f&&(i=!0)}let o=t.steps.length;if(i===!1){let d=t.doc.resolve(e+n);Q$(t,d.node(),d.before(),o)}s.inlineContent&&nD(t,e+n-1,s,a.node().contentMatchAt(a.index()),i==null);let l=t.mapping.slice(o),c=l.map(e-n);if(t.step(new br(c,l.map(e+n,-1),_t.empty,!0)),i===!0){let d=t.doc.resolve(c);J$(t,d.node(),d.before(),t.steps.length)}return t}function Wxe(t,e,n){let i=t.resolve(e);if(i.parent.canReplaceWith(i.index(),i.index(),n))return e;if(i.parentOffset==0)for(let r=i.depth-1;r>=0;r--){let a=i.index(r);if(i.node(r).canReplaceWith(a,a,n))return i.before(r+1);if(a>0)return null}if(i.parentOffset==i.parent.content.size)for(let r=i.depth-1;r>=0;r--){let a=i.indexAfter(r);if(i.node(r).canReplaceWith(a,a,n))return i.after(r+1);if(a<i.node(r).childCount)return null}return null}function t9(t,e,n){let i=t.resolve(e);if(!n.content.size)return e;let r=n.content;for(let a=0;a<n.openStart;a++)r=r.firstChild.content;for(let a=1;a<=(n.openStart==0&&n.size?2:1);a++)for(let s=i.depth;s>=0;s--){let o=s==i.depth?0:i.pos<=(i.start(s+1)+i.end(s+1))/2?-1:1,l=i.index(s)+(o>0?1:0),c=i.node(s),d=!1;if(a==1)d=c.canReplace(l,l,r);else{let f=c.contentMatchAt(l).findWrapping(r.firstChild.type);d=f&&c.canReplaceWith(l,l,f[0])}if(d)return o==0?i.pos:o<0?i.before(s+1):i.after(s+1)}return null}function hS(t,e,n=e,i=_t.empty){if(e==n&&!i.size)return null;let r=t.resolve(e),a=t.resolve(n);return n9(r,a,i)?new br(e,n,i):new qxe(r,a,i).fit()}function n9(t,e,n){return!n.openStart&&!n.openEnd&&t.start()==e.start()&&t.parent.canReplace(t.index(),e.index(),n.content)}class qxe{constructor(e,n,i){this.$from=e,this.$to=n,this.unplaced=i,this.frontier=[],this.placed=lt.empty;for(let r=0;r<=e.depth;r++){let a=e.node(r);this.frontier.push({type:a.type,match:a.contentMatchAt(e.indexAfter(r))})}for(let r=e.depth;r>0;r--)this.placed=lt.from(e.node(r).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let c=this.findFittable();c?this.placeNodes(c):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,i=this.$from,r=this.close(e<0?this.$to:i.doc.resolve(e));if(!r)return null;let a=this.placed,s=i.depth,o=r.depth;for(;s&&o&&a.childCount==1;)a=a.firstChild.content,s--,o--;let l=new _t(a,s,o);return e>-1?new Sr(i.pos,e,this.$to.pos,this.$to.end(),l,n):l.size||i.pos!=this.$to.pos?new br(i.pos,r.pos,l):null}findFittable(){let e=this.unplaced.openStart;for(let n=this.unplaced.content,i=0,r=this.unplaced.openEnd;i<e;i++){let a=n.firstChild;if(n.childCount>1&&(r=0),a.type.spec.isolating&&r<=i){e=i;break}n=a.content}for(let n=1;n<=2;n++)for(let i=n==1?e:this.unplaced.openStart;i>=0;i--){let r,a=null;i?(a=iT(this.unplaced.content,i-1).firstChild,r=a.content):r=this.unplaced.content;let s=r.firstChild;for(let o=this.depth;o>=0;o--){let{type:l,match:c}=this.frontier[o],d,f=null;if(n==1&&(s?c.matchType(s.type)||(f=c.fillBefore(lt.from(s),!1)):a&&l.compatibleContent(a.type)))return{sliceDepth:i,frontierDepth:o,parent:a,inject:f};if(n==2&&s&&(d=c.findWrapping(s.type)))return{sliceDepth:i,frontierDepth:o,parent:a,wrap:d};if(a&&c.matchType(a.type))break}}}openMore(){let{content:e,openStart:n,openEnd:i}=this.unplaced,r=iT(e,n);return!r.childCount||r.firstChild.isLeaf?!1:(this.unplaced=new _t(e,n+1,Math.max(i,r.size+n>=e.size-i?n+1:0)),!0)}dropNode(){let{content:e,openStart:n,openEnd:i}=this.unplaced,r=iT(e,n);if(r.childCount<=1&&n>0){let a=e.size-n<=n+r.size;this.unplaced=new _t(Og(e,n-1,1),n-1,a?n-1:i)}else this.unplaced=new _t(Og(e,n,1),n,i)}placeNodes({sliceDepth:e,frontierDepth:n,parent:i,inject:r,wrap:a}){for(;this.depth>n;)this.closeFrontierNode();if(a)for(let b=0;b<a.length;b++)this.openFrontierNode(a[b]);let s=this.unplaced,o=i?i.content:s.content,l=s.openStart-e,c=0,d=[],{match:f,type:p}=this.frontier[n];if(r){for(let b=0;b<r.childCount;b++)d.push(r.child(b));f=f.matchFragment(r)}let m=o.size+e-(s.content.size-s.openEnd);for(;c<o.childCount;){let b=o.child(c),x=f.matchType(b.type);if(!x)break;c++,(c>1||l==0||b.content.size)&&(f=x,d.push(i9(b.mark(p.allowedMarks(b.marks)),c==1?l:0,c==o.childCount?m:-1)))}let y=c==o.childCount;y||(m=-1),this.placed=Lg(this.placed,n,lt.from(d)),this.frontier[n].match=f,y&&m<0&&i&&i.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let b=0,x=o;b<m;b++){let v=x.lastChild;this.frontier.push({type:v.type,match:v.contentMatchAt(v.childCount)}),x=v.content}this.unplaced=y?e==0?_t.empty:new _t(Og(s.content,e-1,1),e-1,m<0?s.openEnd:e-1):new _t(Og(s.content,e,c),s.openStart,s.openEnd)}mustMoveInline(){if(!this.$to.parent.isTextblock)return-1;let e=this.frontier[this.depth],n;if(!e.type.isTextblock||!rT(this.$to,this.$to.depth,e.type,e.match,!1)||this.$to.depth==this.depth&&(n=this.findCloseLevel(this.$to))&&n.depth==this.depth)return-1;let{depth:i}=this.$to,r=this.$to.after(i);for(;i>1&&r==this.$to.end(--i);)++r;return r}findCloseLevel(e){e:for(let n=Math.min(this.depth,e.depth);n>=0;n--){let{match:i,type:r}=this.frontier[n],a=n<e.depth&&e.end(n+1)==e.pos+(e.depth-(n+1)),s=rT(e,n,r,i,a);if(s){for(let o=n-1;o>=0;o--){let{match:l,type:c}=this.frontier[o],d=rT(e,o,c,l,!0);if(!d||d.childCount)continue e}return{depth:n,fit:s,move:a?e.doc.resolve(e.after(n+1)):e}}}}close(e){let n=this.findCloseLevel(e);if(!n)return null;for(;this.depth>n.depth;)this.closeFrontierNode();n.fit.childCount&&(this.placed=Lg(this.placed,n.depth,n.fit)),e=n.move;for(let i=n.depth+1;i<=e.depth;i++){let r=e.node(i),a=r.type.contentMatch.fillBefore(r.content,!0,e.index(i));this.openFrontierNode(r.type,r.attrs,a)}return e}openFrontierNode(e,n=null,i){let r=this.frontier[this.depth];r.match=r.match.matchType(e),this.placed=Lg(this.placed,this.depth,lt.from(e.create(n,i))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let n=this.frontier.pop().match.fillBefore(lt.empty,!0);n.childCount&&(this.placed=Lg(this.placed,this.frontier.length,n))}}function Og(t,e,n){return e==0?t.cutByIndex(n,t.childCount):t.replaceChild(0,t.firstChild.copy(Og(t.firstChild.content,e-1,n)))}function Lg(t,e,n){return e==0?t.append(n):t.replaceChild(t.childCount-1,t.lastChild.copy(Lg(t.lastChild.content,e-1,n)))}function iT(t,e){for(let n=0;n<e;n++)t=t.firstChild.content;return t}function i9(t,e,n){if(e<=0)return t;let i=t.content;return e>1&&(i=i.replaceChild(0,i9(i.firstChild,e-1,i.childCount==1?n-1:0))),e>0&&(i=t.type.contentMatch.fillBefore(i).append(i),n<=0&&(i=i.append(t.type.contentMatch.matchFragment(i).fillBefore(lt.empty,!0)))),t.copy(i)}function rT(t,e,n,i,r){let a=t.node(e),s=r?t.indexAfter(e):t.index(e);if(s==a.childCount&&!n.compatibleContent(a.type))return null;let o=i.fillBefore(a.content,!0,s);return o&&!Xxe(n,a.content,s)?o:null}function Xxe(t,e,n){for(let i=n;i<e.childCount;i++)if(!t.allowsMarks(e.child(i).marks))return!0;return!1}function Yxe(t){return t.spec.defining||t.spec.definingForContent}function Kxe(t,e,n,i){if(!i.size)return t.deleteRange(e,n);let r=t.doc.resolve(e),a=t.doc.resolve(n);if(n9(r,a,i))return t.step(new br(e,n,i));let s=a9(r,a);s[s.length-1]==0&&s.pop();let o=-(r.depth+1);s.unshift(o);for(let p=r.depth,m=r.pos-1;p>0;p--,m--){let y=r.node(p).type.spec;if(y.defining||y.definingAsContext||y.isolating)break;s.indexOf(p)>-1?o=p:r.before(p)==m&&s.splice(1,0,-p)}let l=s.indexOf(o),c=[],d=i.openStart;for(let p=i.content,m=0;;m++){let y=p.firstChild;if(c.push(y),m==i.openStart)break;p=y.content}for(let p=d-1;p>=0;p--){let m=c[p],y=Yxe(m.type);if(y&&!m.sameMarkup(r.node(Math.abs(o)-1)))d=p;else if(y||!m.type.isTextblock)break}for(let p=i.openStart;p>=0;p--){let m=(p+d+1)%(i.openStart+1),y=c[m];if(y)for(let b=0;b<s.length;b++){let x=s[(b+l)%s.length],v=!0;x<0&&(v=!1,x=-x);let w=r.node(x-1),M=r.index(x-1);if(w.canReplaceWith(M,M,y.type,y.marks))return t.replace(r.before(x),v?a.after(x):n,new _t(r9(i.content,0,i.openStart,m),m,i.openEnd))}}let f=t.steps.length;for(let p=s.length-1;p>=0&&(t.replace(e,n,i),!(t.steps.length>f));p--){let m=s[p];m<0||(e=r.before(m),n=a.after(m))}}function r9(t,e,n,i,r){if(e<n){let a=t.firstChild;t=t.replaceChild(0,a.copy(r9(a.content,e+1,n,i,a)))}if(e>i){let a=r.contentMatchAt(0),s=a.fillBefore(t).append(t);t=s.append(a.matchFragment(s).fillBefore(lt.empty,!0))}return t}function Zxe(t,e,n,i){if(!i.isInline&&e==n&&t.doc.resolve(e).parent.content.size){let r=Wxe(t.doc,e,i.type);r!=null&&(e=n=r)}t.replaceRange(e,n,new _t(lt.from(i),0,0))}function Jxe(t,e,n){let i=t.doc.resolve(e),r=t.doc.resolve(n),a=a9(i,r);for(let s=0;s<a.length;s++){let o=a[s],l=s==a.length-1;if(l&&o==0||i.node(o).type.contentMatch.validEnd)return t.delete(i.start(o),r.end(o));if(o>0&&(l||i.node(o-1).canReplace(i.index(o-1),r.indexAfter(o-1))))return t.delete(i.before(o),r.after(o))}for(let s=1;s<=i.depth&&s<=r.depth;s++)if(e-i.start(s)==i.depth-s&&n>i.end(s)&&r.end(s)-n!=r.depth-s&&i.start(s-1)==r.start(s-1)&&i.node(s-1).canReplace(i.index(s-1),r.index(s-1)))return t.delete(i.before(s),n);t.delete(e,n)}function a9(t,e){let n=[],i=Math.min(t.depth,e.depth);for(let r=i;r>=0;r--){let a=t.start(r);if(a<t.pos-(t.depth-r)||e.end(r)>e.pos+(e.depth-r)||t.node(r).type.spec.isolating||e.node(r).type.spec.isolating)break;(a==e.start(r)||r==t.depth&&r==e.depth&&t.parent.inlineContent&&e.parent.inlineContent&&r&&e.start(r-1)==a-1)&&n.push(r)}return n}class up extends na{constructor(e,n,i){super(),this.pos=e,this.attr=n,this.value=i}apply(e){let n=e.nodeAt(this.pos);if(!n)return Ii.fail("No node at attribute step's position");let i=Object.create(null);for(let a in n.attrs)i[a]=n.attrs[a];i[this.attr]=this.value;let r=n.type.create(i,null,n.marks);return Ii.fromReplace(e,this.pos,this.pos+1,new _t(lt.from(r),0,n.isLeaf?0:1))}getMap(){return Qa.empty}invert(e){return new up(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let n=e.mapResult(this.pos,1);return n.deletedAfter?null:new up(n.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.pos!="number"||typeof n.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new up(n.pos,n.attr,n.value)}}na.jsonID("attr",up);class M0 extends na{constructor(e,n){super(),this.attr=e,this.value=n}apply(e){let n=Object.create(null);for(let r in e.attrs)n[r]=e.attrs[r];n[this.attr]=this.value;let i=e.type.create(n,e.content,e.marks);return Ii.ok(i)}getMap(){return Qa.empty}invert(e){return new M0(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,n){if(typeof n.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new M0(n.attr,n.value)}}na.jsonID("docAttr",M0);let Ap=class extends Error{};Ap=function t(e){let n=Error.call(this,e);return n.__proto__=t.prototype,n};Ap.prototype=Object.create(Error.prototype);Ap.prototype.constructor=Ap;Ap.prototype.name="TransformError";class s9{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new w0}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let n=this.maybeStep(e);if(n.failed)throw new Ap(n.failed);return this}maybeStep(e){let n=e.apply(this.doc);return n.failed||this.addStep(e,n.doc),n}get docChanged(){return this.steps.length>0}addStep(e,n){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=n}replace(e,n=e,i=_t.empty){let r=hS(this.doc,e,n,i);return r&&this.step(r),this}replaceWith(e,n,i){return this.replace(e,n,new _t(lt.from(i),0,0))}delete(e,n){return this.replace(e,n,_t.empty)}insert(e,n){return this.replaceWith(e,e,n)}replaceRange(e,n,i){return Kxe(this,e,n,i),this}replaceRangeWith(e,n,i){return Zxe(this,e,n,i),this}deleteRange(e,n){return Jxe(this,e,n),this}lift(e,n){return Ixe(this,e,n),this}join(e,n=1){return $xe(this,e,n),this}wrap(e,n){return zxe(this,e,n),this}setBlockType(e,n=e,i,r=null){return Bxe(this,e,n,i,r),this}setNodeMarkup(e,n,i=null,r){return Hxe(this,e,n,i,r),this}setNodeAttribute(e,n,i){return this.step(new up(e,n,i)),this}setDocAttribute(e,n){return this.step(new M0(e,n)),this}addNodeMark(e,n){return this.step(new gu(e,n)),this}removeNodeMark(e,n){let i=this.doc.nodeAt(e);if(!i)throw new RangeError("No node at position "+e);if(n instanceof jn)n.isInSet(i.marks)&&this.step(new ff(e,n));else{let r=i.marks,a,s=[];for(;a=n.isInSet(r);)s.push(new ff(e,a)),r=a.removeFromSet(r);for(let o=s.length-1;o>=0;o--)this.step(s[o])}return this}split(e,n=1,i){return Vxe(this,e,n,i),this}addMark(e,n,i){return Oxe(this,e,n,i),this}removeMark(e,n,i){return Lxe(this,e,n,i),this}clearIncompatible(e,n,i){return nD(this,e,n,i),this}}const aT=Object.create(null);class Qt{constructor(e,n,i){this.$anchor=e,this.$head=n,this.ranges=i||[new Qxe(e.min(n),e.max(n))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let n=0;n<e.length;n++)if(e[n].$from.pos!=e[n].$to.pos)return!1;return!0}content(){return this.$from.doc.slice(this.from,this.to,!0)}replace(e,n=_t.empty){let i=n.content.lastChild,r=null;for(let o=0;o<n.openEnd;o++)r=i,i=i.lastChild;let a=e.steps.length,s=this.ranges;for(let o=0;o<s.length;o++){let{$from:l,$to:c}=s[o],d=e.mapping.slice(a);e.replaceRange(d.map(l.pos),d.map(c.pos),o?_t.empty:n),o==0&&CB(e,a,(i?i.isInline:r&&r.isTextblock)?-1:1)}}replaceWith(e,n){let i=e.steps.length,r=this.ranges;for(let a=0;a<r.length;a++){let{$from:s,$to:o}=r[a],l=e.mapping.slice(i),c=l.map(s.pos),d=l.map(o.pos);a?e.deleteRange(c,d):(e.replaceRangeWith(c,d,n),CB(e,i,n.isInline?-1:1))}}static findFrom(e,n,i=!1){let r=e.parent.inlineContent?new zt(e):Wh(e.node(0),e.parent,e.pos,e.index(),n,i);if(r)return r;for(let a=e.depth-1;a>=0;a--){let s=n<0?Wh(e.node(0),e.node(a),e.before(a+1),e.index(a),n,i):Wh(e.node(0),e.node(a),e.after(a+1),e.index(a)+1,n,i);if(s)return s}return null}static near(e,n=1){return this.findFrom(e,n)||this.findFrom(e,-n)||new rs(e.node(0))}static atStart(e){return Wh(e,e,0,0,1)||new rs(e)}static atEnd(e){return Wh(e,e,e.content.size,e.childCount,-1)||new rs(e)}static fromJSON(e,n){if(!n||!n.type)throw new RangeError("Invalid input for Selection.fromJSON");let i=aT[n.type];if(!i)throw new RangeError(`No selection type ${n.type} defined`);return i.fromJSON(e,n)}static jsonID(e,n){if(e in aT)throw new RangeError("Duplicate use of selection JSON ID "+e);return aT[e]=n,n.prototype.jsonID=e,n}getBookmark(){return zt.between(this.$anchor,this.$head).getBookmark()}}Qt.prototype.visible=!0;class Qxe{constructor(e,n){this.$from=e,this.$to=n}}let AB=!1;function TB(t){!AB&&!t.parent.inlineContent&&(AB=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+t.parent.type.name+")"))}class zt extends Qt{constructor(e,n=e){TB(e),TB(n),super(e,n)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,n){let i=e.resolve(n.map(this.head));if(!i.parent.inlineContent)return Qt.near(i);let r=e.resolve(n.map(this.anchor));return new zt(r.parent.inlineContent?r:i,i)}replace(e,n=_t.empty){if(super.replace(e,n),n==_t.empty){let i=this.$from.marksAcross(this.$to);i&&e.ensureMarks(i)}}eq(e){return e instanceof zt&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new pS(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,n){if(typeof n.anchor!="number"||typeof n.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new zt(e.resolve(n.anchor),e.resolve(n.head))}static create(e,n,i=n){let r=e.resolve(n);return new this(r,i==n?r:e.resolve(i))}static between(e,n,i){let r=e.pos-n.pos;if((!i||r)&&(i=r>=0?1:-1),!n.parent.inlineContent){let a=Qt.findFrom(n,i,!0)||Qt.findFrom(n,-i,!0);if(a)n=a.$head;else return Qt.near(n,i)}return e.parent.inlineContent||(r==0?e=n:(e=(Qt.findFrom(e,-i,!0)||Qt.findFrom(e,i,!0)).$anchor,e.pos<n.pos!=r<0&&(e=n))),new zt(e,n)}}Qt.jsonID("text",zt);class pS{constructor(e,n){this.anchor=e,this.head=n}map(e){return new pS(e.map(this.anchor),e.map(this.head))}resolve(e){return zt.between(e.resolve(this.anchor),e.resolve(this.head))}}class It extends Qt{constructor(e){let n=e.nodeAfter,i=e.node(0).resolve(e.pos+n.nodeSize);super(e,i),this.node=n}map(e,n){let{deleted:i,pos:r}=n.mapResult(this.anchor),a=e.resolve(r);return i?Qt.near(a):new It(a)}content(){return new _t(lt.from(this.node),0,0)}eq(e){return e instanceof It&&e.anchor==this.anchor}toJSON(){return{type:"node",anchor:this.anchor}}getBookmark(){return new rD(this.anchor)}static fromJSON(e,n){if(typeof n.anchor!="number")throw new RangeError("Invalid input for NodeSelection.fromJSON");return new It(e.resolve(n.anchor))}static create(e,n){return new It(e.resolve(n))}static isSelectable(e){return!e.isText&&e.type.spec.selectable!==!1}}It.prototype.visible=!1;Qt.jsonID("node",It);class rD{constructor(e){this.anchor=e}map(e){let{deleted:n,pos:i}=e.mapResult(this.anchor);return n?new pS(i,i):new rD(i)}resolve(e){let n=e.resolve(this.anchor),i=n.nodeAfter;return i&&It.isSelectable(i)?new It(n):Qt.near(n)}}class rs extends Qt{constructor(e){super(e.resolve(0),e.resolve(e.content.size))}replace(e,n=_t.empty){if(n==_t.empty){e.delete(0,e.doc.content.size);let i=Qt.atStart(e.doc);i.eq(e.selection)||e.setSelection(i)}else super.replace(e,n)}toJSON(){return{type:"all"}}static fromJSON(e){return new rs(e)}map(e){return new rs(e)}eq(e){return e instanceof rs}getBookmark(){return eye}}Qt.jsonID("all",rs);const eye={map(){return this},resolve(t){return new rs(t)}};function Wh(t,e,n,i,r,a=!1){if(e.inlineContent)return zt.create(t,n);for(let s=i-(r>0?0:1);r>0?s<e.childCount:s>=0;s+=r){let o=e.child(s);if(o.isAtom){if(!a&&It.isSelectable(o))return It.create(t,n-(r<0?o.nodeSize:0))}else{let l=Wh(t,o,n+r,r<0?o.childCount:0,r,a);if(l)return l}n+=o.nodeSize*r}return null}function CB(t,e,n){let i=t.steps.length-1;if(i<e)return;let r=t.steps[i];if(!(r instanceof br||r instanceof Sr))return;let a=t.mapping.maps[i],s;a.forEach((o,l,c,d)=>{s==null&&(s=d)}),t.setSelection(Qt.near(t.doc.resolve(s),n))}const RB=1,Ky=2,PB=4;class tye extends s9{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor<this.steps.length&&(this.curSelection=this.curSelection.map(this.doc,this.mapping.slice(this.curSelectionFor)),this.curSelectionFor=this.steps.length),this.curSelection}setSelection(e){if(e.$from.doc!=this.doc)throw new RangeError("Selection passed to setSelection must point at the current document");return this.curSelection=e,this.curSelectionFor=this.steps.length,this.updated=(this.updated|RB)&~Ky,this.storedMarks=null,this}get selectionSet(){return(this.updated&RB)>0}setStoredMarks(e){return this.storedMarks=e,this.updated|=Ky,this}ensureMarks(e){return jn.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&Ky)>0}addStep(e,n){super.addStep(e,n),this.updated=this.updated&~Ky,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,n=!0){let i=this.selection;return n&&(e=e.mark(this.storedMarks||(i.empty?i.$from.marks():i.$from.marksAcross(i.$to)||jn.none))),i.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,n,i){let r=this.doc.type.schema;if(n==null)return e?this.replaceSelectionWith(r.text(e),!0):this.deleteSelection();{if(i==null&&(i=n),!e)return this.deleteRange(n,i);let a=this.storedMarks;if(!a){let s=this.doc.resolve(n);a=i==n?s.marks():s.marksAcross(this.doc.resolve(i))}return this.replaceRangeWith(n,i,r.text(e,a)),!this.selection.empty&&this.selection.to==n+e.length&&this.setSelection(Qt.near(this.selection.$to)),this}}setMeta(e,n){return this.meta[typeof e=="string"?e:e.key]=n,this}getMeta(e){return this.meta[typeof e=="string"?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=PB,this}get scrolledIntoView(){return(this.updated&PB)>0}}function DB(t,e){return!e||!t?t:t.bind(e)}class kg{constructor(e,n,i){this.name=e,this.init=DB(n.init,i),this.apply=DB(n.apply,i)}}const nye=[new kg("doc",{init(t){return t.doc||t.schema.topNodeType.createAndFill()},apply(t){return t.doc}}),new kg("selection",{init(t,e){return t.selection||Qt.atStart(e.doc)},apply(t){return t.selection}}),new kg("storedMarks",{init(t){return t.storedMarks||null},apply(t,e,n,i){return i.selection.$cursor?t.storedMarks:null}}),new kg("scrollToSelection",{init(){return 0},apply(t,e){return t.scrolledIntoView?e+1:e}})];class sT{constructor(e,n){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=nye.slice(),n&&n.forEach(i=>{if(this.pluginsByKey[i.key])throw new RangeError("Adding different instances of a keyed plugin ("+i.key+")");this.plugins.push(i),this.pluginsByKey[i.key]=i,i.spec.state&&this.fields.push(new kg(i.key,i.spec.state,i))})}}class ep{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,n=-1){for(let i=0;i<this.config.plugins.length;i++)if(i!=n){let r=this.config.plugins[i];if(r.spec.filterTransaction&&!r.spec.filterTransaction.call(r,e,this))return!1}return!0}applyTransaction(e){if(!this.filterTransaction(e))return{state:this,transactions:[]};let n=[e],i=this.applyInner(e),r=null;for(;;){let a=!1;for(let s=0;s<this.config.plugins.length;s++){let o=this.config.plugins[s];if(o.spec.appendTransaction){let l=r?r[s].n:0,c=r?r[s].state:this,d=l<n.length&&o.spec.appendTransaction.call(o,l?n.slice(l):n,c,i);if(d&&i.filterTransaction(d,s)){if(d.setMeta("appendedTransaction",e),!r){r=[];for(let f=0;f<this.config.plugins.length;f++)r.push(f<s?{state:i,n:n.length}:{state:this,n:0})}n.push(d),i=i.applyInner(d),a=!0}r&&(r[s]={state:i,n:n.length})}}if(!a)return{state:i,transactions:n}}}applyInner(e){if(!e.before.eq(this.doc))throw new RangeError("Applying a mismatched transaction");let n=new ep(this.config),i=this.config.fields;for(let r=0;r<i.length;r++){let a=i[r];n[a.name]=a.apply(e,this[a.name],this,n)}return n}get tr(){return new tye(this)}static create(e){let n=new sT(e.doc?e.doc.type.schema:e.schema,e.plugins),i=new ep(n);for(let r=0;r<n.fields.length;r++)i[n.fields[r].name]=n.fields[r].init(e,i);return i}reconfigure(e){let n=new sT(this.schema,e.plugins),i=n.fields,r=new ep(n);for(let a=0;a<i.length;a++){let s=i[a].name;r[s]=this.hasOwnProperty(s)?this[s]:i[a].init(e,r)}return r}toJSON(e){let n={doc:this.doc.toJSON(),selection:this.selection.toJSON()};if(this.storedMarks&&(n.storedMarks=this.storedMarks.map(i=>i.toJSON())),e&&typeof e=="object")for(let i in e){if(i=="doc"||i=="selection")throw new RangeError("The JSON fields `doc` and `selection` are reserved");let r=e[i],a=r.spec.state;a&&a.toJSON&&(n[i]=a.toJSON.call(r,this[r.key]))}return n}static fromJSON(e,n,i){if(!n)throw new RangeError("Invalid input for EditorState.fromJSON");if(!e.schema)throw new RangeError("Required config field 'schema' missing");let r=new sT(e.schema,e.plugins),a=new ep(r);return r.fields.forEach(s=>{if(s.name=="doc")a.doc=wu.fromJSON(e.schema,n.doc);else if(s.name=="selection")a.selection=Qt.fromJSON(a.doc,n.selection);else if(s.name=="storedMarks")n.storedMarks&&(a.storedMarks=n.storedMarks.map(e.schema.markFromJSON));else{if(i)for(let o in i){let l=i[o],c=l.spec.state;if(l.key==s.name&&c&&c.fromJSON&&Object.prototype.hasOwnProperty.call(n,o)){a[s.name]=c.fromJSON.call(l,e,n[o],a);return}}a[s.name]=s.init(e,a)}}),a}}function o9(t,e,n){for(let i in t){let r=t[i];r instanceof Function?r=r.bind(e):i=="handleDOMEvents"&&(r=o9(r,e,{})),n[i]=r}return n}class li{constructor(e){this.spec=e,this.props={},e.props&&o9(e.props,this,this.props),this.key=e.key?e.key.key:l9("plugin")}getState(e){return e[this.key]}}const oT=Object.create(null);function l9(t){return t in oT?t+"$"+ ++oT[t]:(oT[t]=0,t+"$")}class rr{constructor(e="key"){this.key=l9(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}}const aD=(t,e)=>t.selection.empty?!1:(e&&e(t.tr.deleteSelection().scrollIntoView()),!0);function c9(t,e){let{$cursor:n}=t.selection;return!n||(e?!e.endOfTextblock("backward",t):n.parentOffset>0)?null:n}const u9=(t,e,n)=>{let i=c9(t,n);if(!i)return!1;let r=sD(i);if(!r){let s=i.blockRange(),o=s&&Qp(s);return o==null?!1:(e&&e(t.tr.lift(s,o).scrollIntoView()),!0)}let a=r.nodeBefore;if(y9(t,r,e,-1))return!0;if(i.parent.content.size==0&&(Tp(a,"end")||It.isSelectable(a)))for(let s=i.depth;;s--){let o=hS(t.doc,i.before(s),i.after(s),_t.empty);if(o&&o.slice.size<o.to-o.from){if(e){let l=t.tr.step(o);l.setSelection(Tp(a,"end")?Qt.findFrom(l.doc.resolve(l.mapping.map(r.pos,-1)),-1):It.create(l.doc,r.pos-a.nodeSize)),e(l.scrollIntoView())}return!0}if(s==1||i.node(s-1).childCount>1)break}return a.isAtom&&r.depth==i.depth-1?(e&&e(t.tr.delete(r.pos-a.nodeSize,r.pos).scrollIntoView()),!0):!1},iye=(t,e,n)=>{let i=c9(t,n);if(!i)return!1;let r=sD(i);return r?d9(t,r,e):!1},rye=(t,e,n)=>{let i=h9(t,n);if(!i)return!1;let r=oD(i);return r?d9(t,r,e):!1};function d9(t,e,n){let i=e.nodeBefore,r=i,a=e.pos-1;for(;!r.isTextblock;a--){if(r.type.spec.isolating)return!1;let d=r.lastChild;if(!d)return!1;r=d}let s=e.nodeAfter,o=s,l=e.pos+1;for(;!o.isTextblock;l++){if(o.type.spec.isolating)return!1;let d=o.firstChild;if(!d)return!1;o=d}let c=hS(t.doc,a,l,_t.empty);if(!c||c.from!=a||c instanceof br&&c.slice.size>=l-a)return!1;if(n){let d=t.tr.step(c);d.setSelection(zt.create(d.doc,a)),n(d.scrollIntoView())}return!0}function Tp(t,e,n=!1){for(let i=t;i;i=e=="start"?i.firstChild:i.lastChild){if(i.isTextblock)return!0;if(n&&i.childCount!=1)return!1}return!1}const f9=(t,e,n)=>{let{$head:i,empty:r}=t.selection,a=i;if(!r)return!1;if(i.parent.isTextblock){if(n?!n.endOfTextblock("backward",t):i.parentOffset>0)return!1;a=sD(i)}let s=a&&a.nodeBefore;return!s||!It.isSelectable(s)?!1:(e&&e(t.tr.setSelection(It.create(t.doc,a.pos-s.nodeSize)).scrollIntoView()),!0)};function sD(t){if(!t.parent.type.spec.isolating)for(let e=t.depth-1;e>=0;e--){if(t.index(e)>0)return t.doc.resolve(t.before(e+1));if(t.node(e).type.spec.isolating)break}return null}function h9(t,e){let{$cursor:n}=t.selection;return!n||(e?!e.endOfTextblock("forward",t):n.parentOffset<n.parent.content.size)?null:n}const p9=(t,e,n)=>{let i=h9(t,n);if(!i)return!1;let r=oD(i);if(!r)return!1;let a=r.nodeAfter;if(y9(t,r,e,1))return!0;if(i.parent.content.size==0&&(Tp(a,"start")||It.isSelectable(a))){let s=hS(t.doc,i.before(),i.after(),_t.empty);if(s&&s.slice.size<s.to-s.from){if(e){let o=t.tr.step(s);o.setSelection(Tp(a,"start")?Qt.findFrom(o.doc.resolve(o.mapping.map(r.pos)),1):It.create(o.doc,o.mapping.map(r.pos))),e(o.scrollIntoView())}return!0}}return a.isAtom&&r.depth==i.depth-1?(e&&e(t.tr.delete(r.pos,r.pos+a.nodeSize).scrollIntoView()),!0):!1},m9=(t,e,n)=>{let{$head:i,empty:r}=t.selection,a=i;if(!r)return!1;if(i.parent.isTextblock){if(n?!n.endOfTextblock("forward",t):i.parentOffset<i.parent.content.size)return!1;a=oD(i)}let s=a&&a.nodeAfter;return!s||!It.isSelectable(s)?!1:(e&&e(t.tr.setSelection(It.create(t.doc,a.pos)).scrollIntoView()),!0)};function oD(t){if(!t.parent.type.spec.isolating)for(let e=t.depth-1;e>=0;e--){let n=t.node(e);if(t.index(e)+1<n.childCount)return t.doc.resolve(t.after(e+1));if(n.type.spec.isolating)break}return null}const aye=(t,e)=>{let n=t.selection,i=n instanceof It,r;if(i){if(n.node.isTextblock||!zu(t.doc,n.from))return!1;r=n.from}else if(r=fS(t.doc,n.from,-1),r==null)return!1;if(e){let a=t.tr.join(r);i&&a.setSelection(It.create(a.doc,r-t.doc.resolve(r).nodeBefore.nodeSize)),e(a.scrollIntoView())}return!0},sye=(t,e)=>{let n=t.selection,i;if(n instanceof It){if(n.node.isTextblock||!zu(t.doc,n.to))return!1;i=n.to}else if(i=fS(t.doc,n.to,1),i==null)return!1;return e&&e(t.tr.join(i).scrollIntoView()),!0},oye=(t,e)=>{let{$from:n,$to:i}=t.selection,r=n.blockRange(i),a=r&&Qp(r);return a==null?!1:(e&&e(t.tr.lift(r,a).scrollIntoView()),!0)},g9=(t,e)=>{let{$head:n,$anchor:i}=t.selection;return!n.parent.type.spec.code||!n.sameParent(i)?!1:(e&&e(t.tr.insertText(`
- `).scrollIntoView()),!0)};function lD(t){for(let e=0;e<t.edgeCount;e++){let{type:n}=t.edge(e);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}const lye=(t,e)=>{let{$head:n,$anchor:i}=t.selection;if(!n.parent.type.spec.code||!n.sameParent(i))return!1;let r=n.node(-1),a=n.indexAfter(-1),s=lD(r.contentMatchAt(a));if(!s||!r.canReplaceWith(a,a,s))return!1;if(e){let o=n.after(),l=t.tr.replaceWith(o,o,s.createAndFill());l.setSelection(Qt.near(l.doc.resolve(o),1)),e(l.scrollIntoView())}return!0},v9=(t,e)=>{let n=t.selection,{$from:i,$to:r}=n;if(n instanceof rs||i.parent.inlineContent||r.parent.inlineContent)return!1;let a=lD(r.parent.contentMatchAt(r.indexAfter()));if(!a||!a.isTextblock)return!1;if(e){let s=(!i.parentOffset&&r.index()<r.parent.childCount?i:r).pos,o=t.tr.insert(s,a.createAndFill());o.setSelection(zt.create(o.doc,s+1)),e(o.scrollIntoView())}return!0},x9=(t,e)=>{let{$cursor:n}=t.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let a=n.before();if(ql(t.doc,a))return e&&e(t.tr.split(a).scrollIntoView()),!0}let i=n.blockRange(),r=i&&Qp(i);return r==null?!1:(e&&e(t.tr.lift(i,r).scrollIntoView()),!0)};function cye(t){return(e,n)=>{let{$from:i,$to:r}=e.selection;if(e.selection instanceof It&&e.selection.node.isBlock)return!i.parentOffset||!ql(e.doc,i.pos)?!1:(n&&n(e.tr.split(i.pos).scrollIntoView()),!0);if(!i.depth)return!1;let a=[],s,o,l=!1,c=!1;for(let m=i.depth;;m--)if(i.node(m).isBlock){l=i.end(m)==i.pos+(i.depth-m),c=i.start(m)==i.pos-(i.depth-m),o=lD(i.node(m-1).contentMatchAt(i.indexAfter(m-1))),a.unshift(l&&o?{type:o}:null),s=m;break}else{if(m==1)return!1;a.unshift(null)}let d=e.tr;(e.selection instanceof zt||e.selection instanceof rs)&&d.deleteSelection();let f=d.mapping.map(i.pos),p=ql(d.doc,f,a.length,a);if(p||(a[0]=o?{type:o}:null,p=ql(d.doc,f,a.length,a)),!p)return!1;if(d.split(f,a.length,a),!l&&c&&i.node(s).type!=o){let m=d.mapping.map(i.before(s)),y=d.doc.resolve(m);o&&i.node(s-1).canReplaceWith(y.index(),y.index()+1,o)&&d.setNodeMarkup(d.mapping.map(i.before(s)),o)}return n&&n(d.scrollIntoView()),!0}}const uye=cye(),dye=(t,e)=>{let{$from:n,to:i}=t.selection,r,a=n.sharedDepth(i);return a==0?!1:(r=n.before(a),e&&e(t.tr.setSelection(It.create(t.doc,r))),!0)};function fye(t,e,n){let i=e.nodeBefore,r=e.nodeAfter,a=e.index();return!i||!r||!i.type.compatibleContent(r.type)?!1:!i.content.size&&e.parent.canReplace(a-1,a)?(n&&n(t.tr.delete(e.pos-i.nodeSize,e.pos).scrollIntoView()),!0):!e.parent.canReplace(a,a+1)||!(r.isTextblock||zu(t.doc,e.pos))?!1:(n&&n(t.tr.join(e.pos).scrollIntoView()),!0)}function y9(t,e,n,i){let r=e.nodeBefore,a=e.nodeAfter,s,o,l=r.type.spec.isolating||a.type.spec.isolating;if(!l&&fye(t,e,n))return!0;let c=!l&&e.parent.canReplace(e.index(),e.index()+1);if(c&&(s=(o=r.contentMatchAt(r.childCount)).findWrapping(a.type))&&o.matchType(s[0]||a.type).validEnd){if(n){let m=e.pos+a.nodeSize,y=lt.empty;for(let v=s.length-1;v>=0;v--)y=lt.from(s[v].create(null,y));y=lt.from(r.copy(y));let b=t.tr.step(new Sr(e.pos-1,m,e.pos,m,new _t(y,1,0),s.length,!0)),x=b.doc.resolve(m+2*s.length);x.nodeAfter&&x.nodeAfter.type==r.type&&zu(b.doc,x.pos)&&b.join(x.pos),n(b.scrollIntoView())}return!0}let d=a.type.spec.isolating||i>0&&l?null:Qt.findFrom(e,1),f=d&&d.$from.blockRange(d.$to),p=f&&Qp(f);if(p!=null&&p>=e.depth)return n&&n(t.tr.lift(f,p).scrollIntoView()),!0;if(c&&Tp(a,"start",!0)&&Tp(r,"end")){let m=r,y=[];for(;y.push(m),!m.isTextblock;)m=m.lastChild;let b=a,x=1;for(;!b.isTextblock;b=b.firstChild)x++;if(m.canReplace(m.childCount,m.childCount,b.content)){if(n){let v=lt.empty;for(let M=y.length-1;M>=0;M--)v=lt.from(y[M].copy(v));let w=t.tr.step(new Sr(e.pos-y.length,e.pos+a.nodeSize,e.pos+x,e.pos+a.nodeSize-x,new _t(v,y.length,0),0,!0));n(w.scrollIntoView())}return!0}}return!1}function b9(t){return function(e,n){let i=e.selection,r=t<0?i.$from:i.$to,a=r.depth;for(;r.node(a).isInline;){if(!a)return!1;a--}return r.node(a).isTextblock?(n&&n(e.tr.setSelection(zt.create(e.doc,t<0?r.start(a):r.end(a)))),!0):!1}}const hye=b9(-1),pye=b9(1);function mye(t,e=null){return function(n,i){let{$from:r,$to:a}=n.selection,s=r.blockRange(a),o=s&&iD(s,t,e);return o?(i&&i(n.tr.wrap(s,o).scrollIntoView()),!0):!1}}function NB(t,e=null){return function(n,i){let r=!1;for(let a=0;a<n.selection.ranges.length&&!r;a++){let{$from:{pos:s},$to:{pos:o}}=n.selection.ranges[a];n.doc.nodesBetween(s,o,(l,c)=>{if(r)return!1;if(!(!l.isTextblock||l.hasMarkup(t,e)))if(l.type==t)r=!0;else{let d=n.doc.resolve(c),f=d.index();r=d.parent.canReplaceWith(f,f+1,t)}})}if(!r)return!1;if(i){let a=n.tr;for(let s=0;s<n.selection.ranges.length;s++){let{$from:{pos:o},$to:{pos:l}}=n.selection.ranges[s];a.setBlockType(o,l,t,e)}i(a.scrollIntoView())}return!0}}function cD(...t){return function(e,n,i){for(let r=0;r<t.length;r++)if(t[r](e,n,i))return!0;return!1}}cD(aD,u9,f9);cD(aD,p9,m9);cD(g9,v9,x9,uye);typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):typeof os<"u"&&os.platform&&os.platform()=="darwin";function gye(t,e=null){return function(n,i){let{$from:r,$to:a}=n.selection,s=r.blockRange(a);if(!s)return!1;let o=i?n.tr:null;return vye(o,s,t,e)?(i&&i(o.scrollIntoView()),!0):!1}}function vye(t,e,n,i=null){let r=!1,a=e,s=e.$from.doc;if(e.depth>=2&&e.$from.node(e.depth-1).type.compatibleContent(n)&&e.startIndex==0){if(e.$from.index(e.depth-1)==0)return!1;let l=s.resolve(e.start-2);a=new m_(l,l,e.depth),e.endIndex<e.parent.childCount&&(e=new m_(e.$from,s.resolve(e.$to.end(e.depth)),e.depth)),r=!0}let o=iD(a,n,i,e);return o?(t&&xye(t,e,o,r,n),!0):!1}function xye(t,e,n,i,r){let a=lt.empty;for(let d=n.length-1;d>=0;d--)a=lt.from(n[d].type.create(n[d].attrs,a));t.step(new Sr(e.start-(i?2:0),e.end,e.start,e.end,new _t(a,0,0),n.length,!0));let s=0;for(let d=0;d<n.length;d++)n[d].type==r&&(s=d+1);let o=n.length-s,l=e.start+n.length-(i?2:0),c=e.parent;for(let d=e.startIndex,f=e.endIndex,p=!0;d<f;d++,p=!1)!p&&ql(t.doc,l,o)&&(t.split(l,o),l+=2*o),l+=c.child(d).nodeSize;return t}function yye(t){return function(e,n){let{$from:i,$to:r}=e.selection,a=i.blockRange(r,s=>s.childCount>0&&s.firstChild.type==t);return a?n?i.node(a.depth-1).type==t?bye(e,n,t,a):_ye(e,n,a):!0:!1}}function bye(t,e,n,i){let r=t.tr,a=i.end,s=i.$to.end(i.depth);a<s&&(r.step(new Sr(a-1,s,a,s,new _t(lt.from(n.create(null,i.parent.copy())),1,0),1,!0)),i=new m_(r.doc.resolve(i.$from.pos),r.doc.resolve(s),i.depth));const o=Qp(i);if(o==null)return!1;r.lift(i,o);let l=r.doc.resolve(r.mapping.map(a,-1)-1);return zu(r.doc,l.pos)&&l.nodeBefore.type==l.nodeAfter.type&&r.join(l.pos),e(r.scrollIntoView()),!0}function _ye(t,e,n){let i=t.tr,r=n.parent;for(let m=n.end,y=n.endIndex-1,b=n.startIndex;y>b;y--)m-=r.child(y).nodeSize,i.delete(m-1,m+1);let a=i.doc.resolve(n.start),s=a.nodeAfter;if(i.mapping.map(n.end)!=n.start+a.nodeAfter.nodeSize)return!1;let o=n.startIndex==0,l=n.endIndex==r.childCount,c=a.node(-1),d=a.index(-1);if(!c.canReplace(d+(o?0:1),d+1,s.content.append(l?lt.empty:lt.from(r))))return!1;let f=a.pos,p=f+s.nodeSize;return i.step(new Sr(f-(o?1:0),p+(l?1:0),f+1,p-1,new _t((o?lt.empty:lt.from(r.copy(lt.empty))).append(l?lt.empty:lt.from(r.copy(lt.empty))),o?0:1,l?0:1),o?0:1)),e(i.scrollIntoView()),!0}function Sye(t){return function(e,n){let{$from:i,$to:r}=e.selection,a=i.blockRange(r,c=>c.childCount>0&&c.firstChild.type==t);if(!a)return!1;let s=a.startIndex;if(s==0)return!1;let o=a.parent,l=o.child(s-1);if(l.type!=t)return!1;if(n){let c=l.lastChild&&l.lastChild.type==o.type,d=lt.from(c?t.create():null),f=new _t(lt.from(t.create(null,lt.from(o.type.create(null,d)))),c?3:1,0),p=a.start,m=a.end;n(e.tr.step(new Sr(p-(c?3:1),m,p,m,f,1,!0)).scrollIntoView())}return!0}}const zr=function(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e},Cp=function(t){let e=t.assignedSlot||t.parentNode;return e&&e.nodeType==11?e.host:e};let LR=null;const Dl=function(t,e,n){let i=LR||(LR=document.createRange());return i.setEnd(t,n??t.nodeValue.length),i.setStart(t,e||0),i},wye=function(){LR=null},hf=function(t,e,n,i){return n&&(OB(t,e,n,i,-1)||OB(t,e,n,i,1))},Mye=/^(img|br|input|textarea|hr)$/i;function OB(t,e,n,i,r){for(var a;;){if(t==n&&e==i)return!0;if(e==(r<0?0:Os(t))){let s=t.parentNode;if(!s||s.nodeType!=1||iv(t)||Mye.test(t.nodeName)||t.contentEditable=="false")return!1;e=zr(t)+(r<0?0:1),t=s}else if(t.nodeType==1){let s=t.childNodes[e+(r<0?-1:0)];if(s.nodeType==1&&s.contentEditable=="false")if(!((a=s.pmViewDesc)===null||a===void 0)&&a.ignoreForSelection)e+=r;else return!1;else t=s,e=r<0?Os(t):0}else return!1}}function Os(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function Eye(t,e){for(;;){if(t.nodeType==3&&e)return t;if(t.nodeType==1&&e>0){if(t.contentEditable=="false")return null;t=t.childNodes[e-1],e=Os(t)}else if(t.parentNode&&!iv(t))e=zr(t),t=t.parentNode;else return null}}function Aye(t,e){for(;;){if(t.nodeType==3&&e<t.nodeValue.length)return t;if(t.nodeType==1&&e<t.childNodes.length){if(t.contentEditable=="false")return null;t=t.childNodes[e],e=0}else if(t.parentNode&&!iv(t))e=zr(t)+1,t=t.parentNode;else return null}}function Tye(t,e,n){for(let i=e==0,r=e==Os(t);i||r;){if(t==n)return!0;let a=zr(t);if(t=t.parentNode,!t)return!1;i=i&&a==0,r=r&&a==Os(t)}}function iv(t){let e;for(let n=t;n&&!(e=n.pmViewDesc);n=n.parentNode);return e&&e.node&&e.node.isBlock&&(e.dom==t||e.contentDOM==t)}const mS=function(t){return t.focusNode&&hf(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset)};function Rd(t,e){let n=document.createEvent("Event");return n.initEvent("keydown",!0,!0),n.keyCode=t,n.key=n.code=e,n}function Cye(t){let e=t.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function Rye(t,e,n){if(t.caretPositionFromPoint)try{let i=t.caretPositionFromPoint(e,n);if(i)return{node:i.offsetNode,offset:Math.min(Os(i.offsetNode),i.offset)}}catch{}if(t.caretRangeFromPoint){let i=t.caretRangeFromPoint(e,n);if(i)return{node:i.startContainer,offset:Math.min(Os(i.startContainer),i.startOffset)}}}const jo=typeof navigator<"u"?navigator:null,LB=typeof document<"u"?document:null,Bu=jo&&jo.userAgent||"",kR=/Edge\/(\d+)/.exec(Bu),_9=/MSIE \d/.exec(Bu),IR=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Bu),Oa=!!(_9||IR||kR),Mu=_9?document.documentMode:IR?+IR[1]:kR?+kR[1]:0,Fs=!Oa&&/gecko\/(\d+)/i.test(Bu);Fs&&+(/Firefox\/(\d+)/.exec(Bu)||[0,0])[1];const UR=!Oa&&/Chrome\/(\d+)/.exec(Bu),Qr=!!UR,S9=UR?+UR[1]:0,ha=!Oa&&!!jo&&/Apple Computer/.test(jo.vendor),Rp=ha&&(/Mobile\/\w+/.test(Bu)||!!jo&&jo.maxTouchPoints>2),Ts=Rp||(jo?/Mac/.test(jo.platform):!1),Pye=jo?/Win/.test(jo.platform):!1,Bl=/Android \d/.test(Bu),rv=!!LB&&"webkitFontSmoothing"in LB.documentElement.style,Dye=rv?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function Nye(t){let e=t.defaultView&&t.defaultView.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.documentElement.clientWidth,top:0,bottom:t.documentElement.clientHeight}}function El(t,e){return typeof t=="number"?t:t[e]}function Oye(t){let e=t.getBoundingClientRect(),n=e.width/t.offsetWidth||1,i=e.height/t.offsetHeight||1;return{left:e.left,right:e.left+t.clientWidth*n,top:e.top,bottom:e.top+t.clientHeight*i}}function kB(t,e,n){let i=t.someProp("scrollThreshold")||0,r=t.someProp("scrollMargin")||5,a=t.dom.ownerDocument;for(let s=n||t.dom;s;){if(s.nodeType!=1){s=Cp(s);continue}let o=s,l=o==a.body,c=l?Nye(a):Oye(o),d=0,f=0;if(e.top<c.top+El(i,"top")?f=-(c.top-e.top+El(r,"top")):e.bottom>c.bottom-El(i,"bottom")&&(f=e.bottom-e.top>c.bottom-c.top?e.top+El(r,"top")-c.top:e.bottom-c.bottom+El(r,"bottom")),e.left<c.left+El(i,"left")?d=-(c.left-e.left+El(r,"left")):e.right>c.right-El(i,"right")&&(d=e.right-c.right+El(r,"right")),d||f)if(l)a.defaultView.scrollBy(d,f);else{let m=o.scrollLeft,y=o.scrollTop;f&&(o.scrollTop+=f),d&&(o.scrollLeft+=d);let b=o.scrollLeft-m,x=o.scrollTop-y;e={left:e.left-b,top:e.top-x,right:e.right-b,bottom:e.bottom-x}}let p=l?"fixed":getComputedStyle(s).position;if(/^(fixed|sticky)$/.test(p))break;s=p=="absolute"?s.offsetParent:Cp(s)}}function Lye(t){let e=t.dom.getBoundingClientRect(),n=Math.max(0,e.top),i,r;for(let a=(e.left+e.right)/2,s=n+1;s<Math.min(innerHeight,e.bottom);s+=5){let o=t.root.elementFromPoint(a,s);if(!o||o==t.dom||!t.dom.contains(o))continue;let l=o.getBoundingClientRect();if(l.top>=n-20){i=o,r=l.top;break}}return{refDOM:i,refTop:r,stack:w9(t.dom)}}function w9(t){let e=[],n=t.ownerDocument;for(let i=t;i&&(e.push({dom:i,top:i.scrollTop,left:i.scrollLeft}),t!=n);i=Cp(i));return e}function kye({refDOM:t,refTop:e,stack:n}){let i=t?t.getBoundingClientRect().top:0;M9(n,i==0?0:i-e)}function M9(t,e){for(let n=0;n<t.length;n++){let{dom:i,top:r,left:a}=t[n];i.scrollTop!=r+e&&(i.scrollTop=r+e),i.scrollLeft!=a&&(i.scrollLeft=a)}}let Bh=null;function Iye(t){if(t.setActive)return t.setActive();if(Bh)return t.focus(Bh);let e=w9(t);t.focus(Bh==null?{get preventScroll(){return Bh={preventScroll:!0},!0}}:void 0),Bh||(Bh=!1,M9(e,0))}function E9(t,e){let n,i=2e8,r,a=0,s=e.top,o=e.top,l,c;for(let d=t.firstChild,f=0;d;d=d.nextSibling,f++){let p;if(d.nodeType==1)p=d.getClientRects();else if(d.nodeType==3)p=Dl(d).getClientRects();else continue;for(let m=0;m<p.length;m++){let y=p[m];if(y.top<=s&&y.bottom>=o){s=Math.max(y.bottom,s),o=Math.min(y.top,o);let b=y.left>e.left?y.left-e.left:y.right<e.left?e.left-y.right:0;if(b<i){n=d,i=b,r=b&&n.nodeType==3?{left:y.right<e.left?y.right:y.left,top:e.top}:e,d.nodeType==1&&b&&(a=f+(e.left>=(y.left+y.right)/2?1:0));continue}}else y.top>e.top&&!l&&y.left<=e.left&&y.right>=e.left&&(l=d,c={left:Math.max(y.left,Math.min(y.right,e.left)),top:y.top});!n&&(e.left>=y.right&&e.top>=y.top||e.left>=y.left&&e.top>=y.bottom)&&(a=f+1)}}return!n&&l&&(n=l,r=c,i=0),n&&n.nodeType==3?Uye(n,r):!n||i&&n.nodeType==1?{node:t,offset:a}:E9(n,r)}function Uye(t,e){let n=t.nodeValue.length,i=document.createRange();for(let r=0;r<n;r++){i.setEnd(t,r+1),i.setStart(t,r);let a=Qc(i,1);if(a.top!=a.bottom&&uD(e,a))return{node:t,offset:r+(e.left>=(a.left+a.right)/2?1:0)}}return{node:t,offset:0}}function uD(t,e){return t.left>=e.left-1&&t.left<=e.right+1&&t.top>=e.top-1&&t.top<=e.bottom+1}function Fye(t,e){let n=t.parentNode;return n&&/^li$/i.test(n.nodeName)&&e.left<t.getBoundingClientRect().left?n:t}function zye(t,e,n){let{node:i,offset:r}=E9(e,n),a=-1;if(i.nodeType==1&&!i.firstChild){let s=i.getBoundingClientRect();a=s.left!=s.right&&n.left>(s.left+s.right)/2?1:-1}return t.docView.posFromDOM(i,r,a)}function Bye(t,e,n,i){let r=-1;for(let a=e,s=!1;a!=t.dom;){let o=t.docView.nearestDesc(a,!0),l;if(!o)return null;if(o.dom.nodeType==1&&(o.node.isBlock&&o.parent||!o.contentDOM)&&((l=o.dom.getBoundingClientRect()).width||l.height)&&(o.node.isBlock&&o.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(o.dom.nodeName)&&(!s&&l.left>i.left||l.top>i.top?r=o.posBefore:(!s&&l.right<i.left||l.bottom<i.top)&&(r=o.posAfter),s=!0),!o.contentDOM&&r<0&&!o.node.isText))return(o.node.isBlock?i.top<(l.top+l.bottom)/2:i.left<(l.left+l.right)/2)?o.posBefore:o.posAfter;a=o.dom.parentNode}return r>-1?r:t.docView.posFromDOM(e,n,-1)}function A9(t,e,n){let i=t.childNodes.length;if(i&&n.top<n.bottom)for(let r=Math.max(0,Math.min(i-1,Math.floor(i*(e.top-n.top)/(n.bottom-n.top))-2)),a=r;;){let s=t.childNodes[a];if(s.nodeType==1){let o=s.getClientRects();for(let l=0;l<o.length;l++){let c=o[l];if(uD(e,c))return A9(s,e,c)}}if((a=(a+1)%i)==r)break}return t}function jye(t,e){let n=t.dom.ownerDocument,i,r=0,a=Rye(n,e.left,e.top);a&&({node:i,offset:r}=a);let s=(t.root.elementFromPoint?t.root:n).elementFromPoint(e.left,e.top),o;if(!s||!t.dom.contains(s.nodeType!=1?s.parentNode:s)){let c=t.dom.getBoundingClientRect();if(!uD(e,c)||(s=A9(t.dom,e,c),!s))return null}if(ha)for(let c=s;i&&c;c=Cp(c))c.draggable&&(i=void 0);if(s=Fye(s,e),i){if(Fs&&i.nodeType==1&&(r=Math.min(r,i.childNodes.length),r<i.childNodes.length)){let d=i.childNodes[r],f;d.nodeName=="IMG"&&(f=d.getBoundingClientRect()).right<=e.left&&f.bottom>e.top&&r++}let c;rv&&r&&i.nodeType==1&&(c=i.childNodes[r-1]).nodeType==1&&c.contentEditable=="false"&&c.getBoundingClientRect().top>=e.top&&r--,i==t.dom&&r==i.childNodes.length-1&&i.lastChild.nodeType==1&&e.top>i.lastChild.getBoundingClientRect().bottom?o=t.state.doc.content.size:(r==0||i.nodeType!=1||i.childNodes[r-1].nodeName!="BR")&&(o=Bye(t,i,r,e))}o==null&&(o=zye(t,s,e));let l=t.docView.nearestDesc(s,!0);return{pos:o,inside:l?l.posAtStart-l.border:-1}}function IB(t){return t.top<t.bottom||t.left<t.right}function Qc(t,e){let n=t.getClientRects();if(n.length){let i=n[e<0?0:n.length-1];if(IB(i))return i}return Array.prototype.find.call(n,IB)||t.getBoundingClientRect()}const Hye=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;function T9(t,e,n){let{node:i,offset:r,atom:a}=t.docView.domFromPos(e,n<0?-1:1),s=rv||Fs;if(i.nodeType==3)if(s&&(Hye.test(i.nodeValue)||(n<0?!r:r==i.nodeValue.length))){let l=Qc(Dl(i,r,r),n);if(Fs&&r&&/\s/.test(i.nodeValue[r-1])&&r<i.nodeValue.length){let c=Qc(Dl(i,r-1,r-1),-1);if(c.top==l.top){let d=Qc(Dl(i,r,r+1),-1);if(d.top!=l.top)return yg(d,d.left<c.left)}}return l}else{let l=r,c=r,d=n<0?1:-1;return n<0&&!r?(c++,d=-1):n>=0&&r==i.nodeValue.length?(l--,d=1):n<0?l--:c++,yg(Qc(Dl(i,l,c),d),d<0)}if(!t.state.doc.resolve(e-(a||0)).parent.inlineContent){if(a==null&&r&&(n<0||r==Os(i))){let l=i.childNodes[r-1];if(l.nodeType==1)return lT(l.getBoundingClientRect(),!1)}if(a==null&&r<Os(i)){let l=i.childNodes[r];if(l.nodeType==1)return lT(l.getBoundingClientRect(),!0)}return lT(i.getBoundingClientRect(),n>=0)}if(a==null&&r&&(n<0||r==Os(i))){let l=i.childNodes[r-1],c=l.nodeType==3?Dl(l,Os(l)-(s?0:1)):l.nodeType==1&&(l.nodeName!="BR"||!l.nextSibling)?l:null;if(c)return yg(Qc(c,1),!1)}if(a==null&&r<Os(i)){let l=i.childNodes[r];for(;l.pmViewDesc&&l.pmViewDesc.ignoreForCoords;)l=l.nextSibling;let c=l?l.nodeType==3?Dl(l,0,s?0:1):l.nodeType==1?l:null:null;if(c)return yg(Qc(c,-1),!0)}return yg(Qc(i.nodeType==3?Dl(i):i,-n),n>=0)}function yg(t,e){if(t.width==0)return t;let n=e?t.left:t.right;return{top:t.top,bottom:t.bottom,left:n,right:n}}function lT(t,e){if(t.height==0)return t;let n=e?t.top:t.bottom;return{top:n,bottom:n,left:t.left,right:t.right}}function C9(t,e,n){let i=t.state,r=t.root.activeElement;i!=e&&t.updateState(e),r!=t.dom&&t.focus();try{return n()}finally{i!=e&&t.updateState(i),r!=t.dom&&r&&r.focus()}}function Vye(t,e,n){let i=e.selection,r=n=="up"?i.$from:i.$to;return C9(t,e,()=>{let{node:a}=t.docView.domFromPos(r.pos,n=="up"?-1:1);for(;;){let o=t.docView.nearestDesc(a,!0);if(!o)break;if(o.node.isBlock){a=o.contentDOM||o.dom;break}a=o.dom.parentNode}let s=T9(t,r.pos,1);for(let o=a.firstChild;o;o=o.nextSibling){let l;if(o.nodeType==1)l=o.getClientRects();else if(o.nodeType==3)l=Dl(o,0,o.nodeValue.length).getClientRects();else continue;for(let c=0;c<l.length;c++){let d=l[c];if(d.bottom>d.top+1&&(n=="up"?s.top-d.top>(d.bottom-s.top)*2:d.bottom-s.bottom>(s.bottom-d.top)*2))return!1}}return!0})}const Gye=/[\u0590-\u08ac]/;function $ye(t,e,n){let{$head:i}=e.selection;if(!i.parent.isTextblock)return!1;let r=i.parentOffset,a=!r,s=r==i.parent.content.size,o=t.domSelection();return o?!Gye.test(i.parent.textContent)||!o.modify?n=="left"||n=="backward"?a:s:C9(t,e,()=>{let{focusNode:l,focusOffset:c,anchorNode:d,anchorOffset:f}=t.domSelectionRange(),p=o.caretBidiLevel;o.modify("move",n,"character");let m=i.depth?t.docView.domAfterPos(i.before()):t.dom,{focusNode:y,focusOffset:b}=t.domSelectionRange(),x=y&&!m.contains(y.nodeType==1?y:y.parentNode)||l==y&&c==b;try{o.collapse(d,f),l&&(l!=d||c!=f)&&o.extend&&o.extend(l,c)}catch{}return p!=null&&(o.caretBidiLevel=p),x}):i.pos==i.start()||i.pos==i.end()}let UB=null,FB=null,zB=!1;function Wye(t,e,n){return UB==e&&FB==n?zB:(UB=e,FB=n,zB=n=="up"||n=="down"?Vye(t,e,n):$ye(t,e,n))}const zs=0,BB=1,Nd=2,Ho=3;class av{constructor(e,n,i,r){this.parent=e,this.children=n,this.dom=i,this.contentDOM=r,this.dirty=zs,i.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,n,i){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let n=0;n<this.children.length;n++)e+=this.children[n].size;return e}get border(){return 0}destroy(){this.parent=void 0,this.dom.pmViewDesc==this&&(this.dom.pmViewDesc=void 0);for(let e=0;e<this.children.length;e++)this.children[e].destroy()}posBeforeChild(e){for(let n=0,i=this.posAtStart;;n++){let r=this.children[n];if(r==e)return i;i+=r.size}}get posBefore(){return this.parent.posBeforeChild(this)}get posAtStart(){return this.parent?this.parent.posBeforeChild(this)+this.border:0}get posAfter(){return this.posBefore+this.size}get posAtEnd(){return this.posAtStart+this.size-2*this.border}localPosFromDOM(e,n,i){if(this.contentDOM&&this.contentDOM.contains(e.nodeType==1?e:e.parentNode))if(i<0){let a,s;if(e==this.contentDOM)a=e.childNodes[n-1];else{for(;e.parentNode!=this.contentDOM;)e=e.parentNode;a=e.previousSibling}for(;a&&!((s=a.pmViewDesc)&&s.parent==this);)a=a.previousSibling;return a?this.posBeforeChild(s)+s.size:this.posAtStart}else{let a,s;if(e==this.contentDOM)a=e.childNodes[n];else{for(;e.parentNode!=this.contentDOM;)e=e.parentNode;a=e.nextSibling}for(;a&&!((s=a.pmViewDesc)&&s.parent==this);)a=a.nextSibling;return a?this.posBeforeChild(s):this.posAtEnd}let r;if(e==this.dom&&this.contentDOM)r=n>zr(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))r=e.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(n==0)for(let a=e;;a=a.parentNode){if(a==this.dom){r=!1;break}if(a.previousSibling)break}if(r==null&&n==e.childNodes.length)for(let a=e;;a=a.parentNode){if(a==this.dom){r=!0;break}if(a.nextSibling)break}}return r??i>0?this.posAtEnd:this.posAtStart}nearestDesc(e,n=!1){for(let i=!0,r=e;r;r=r.parentNode){let a=this.getDesc(r),s;if(a&&(!n||a.node))if(i&&(s=a.nodeDOM)&&!(s.nodeType==1?s.contains(e.nodeType==1?e:e.parentNode):s==e))i=!1;else return a}}getDesc(e){let n=e.pmViewDesc;for(let i=n;i;i=i.parent)if(i==this)return n}posFromDOM(e,n,i){for(let r=e;r;r=r.parentNode){let a=this.getDesc(r);if(a)return a.localPosFromDOM(e,n,i)}return-1}descAt(e){for(let n=0,i=0;n<this.children.length;n++){let r=this.children[n],a=i+r.size;if(i==e&&a!=i){for(;!r.border&&r.children.length;)for(let s=0;s<r.children.length;s++){let o=r.children[s];if(o.size){r=o;break}}return r}if(e<a)return r.descAt(e-i-r.border);i=a}}domFromPos(e,n){if(!this.contentDOM)return{node:this.dom,offset:0,atom:e+1};let i=0,r=0;for(let a=0;i<this.children.length;i++){let s=this.children[i],o=a+s.size;if(o>e||s instanceof P9){r=e-a;break}a=o}if(r)return this.children[i].domFromPos(r-this.children[i].border,n);for(let a;i&&!(a=this.children[i-1]).size&&a instanceof R9&&a.side>=0;i--);if(n<=0){let a,s=!0;for(;a=i?this.children[i-1]:null,!(!a||a.dom.parentNode==this.contentDOM);i--,s=!1);return a&&n&&s&&!a.border&&!a.domAtom?a.domFromPos(a.size,n):{node:this.contentDOM,offset:a?zr(a.dom)+1:0}}else{let a,s=!0;for(;a=i<this.children.length?this.children[i]:null,!(!a||a.dom.parentNode==this.contentDOM);i++,s=!1);return a&&s&&!a.border&&!a.domAtom?a.domFromPos(0,n):{node:this.contentDOM,offset:a?zr(a.dom):this.contentDOM.childNodes.length}}}parseRange(e,n,i=0){if(this.children.length==0)return{node:this.contentDOM,from:e,to:n,fromOffset:0,toOffset:this.contentDOM.childNodes.length};let r=-1,a=-1;for(let s=i,o=0;;o++){let l=this.children[o],c=s+l.size;if(r==-1&&e<=c){let d=s+l.border;if(e>=d&&n<=c-l.border&&l.node&&l.contentDOM&&this.contentDOM.contains(l.contentDOM))return l.parseRange(e,n,d);e=s;for(let f=o;f>0;f--){let p=this.children[f-1];if(p.size&&p.dom.parentNode==this.contentDOM&&!p.emptyChildAt(1)){r=zr(p.dom)+1;break}e-=p.size}r==-1&&(r=0)}if(r>-1&&(c>n||o==this.children.length-1)){n=c;for(let d=o+1;d<this.children.length;d++){let f=this.children[d];if(f.size&&f.dom.parentNode==this.contentDOM&&!f.emptyChildAt(-1)){a=zr(f.dom);break}n+=f.size}a==-1&&(a=this.contentDOM.childNodes.length);break}s=c}return{node:this.contentDOM,from:e,to:n,fromOffset:r,toOffset:a}}emptyChildAt(e){if(this.border||!this.contentDOM||!this.children.length)return!1;let n=this.children[e<0?0:this.children.length-1];return n.size==0||n.emptyChildAt(e)}domAfterPos(e){let{node:n,offset:i}=this.domFromPos(e,0);if(n.nodeType!=1||i==n.childNodes.length)throw new RangeError("No node after pos "+e);return n.childNodes[i]}setSelection(e,n,i,r=!1){let a=Math.min(e,n),s=Math.max(e,n);for(let m=0,y=0;m<this.children.length;m++){let b=this.children[m],x=y+b.size;if(a>y&&s<x)return b.setSelection(e-y-b.border,n-y-b.border,i,r);y=x}let o=this.domFromPos(e,e?-1:1),l=n==e?o:this.domFromPos(n,n?-1:1),c=i.root.getSelection(),d=i.domSelectionRange(),f=!1;if((Fs||ha)&&e==n){let{node:m,offset:y}=o;if(m.nodeType==3){if(f=!!(y&&m.nodeValue[y-1]==`
- `),f&&y==m.nodeValue.length)for(let b=m,x;b;b=b.parentNode){if(x=b.nextSibling){x.nodeName=="BR"&&(o=l={node:x.parentNode,offset:zr(x)+1});break}let v=b.pmViewDesc;if(v&&v.node&&v.node.isBlock)break}}else{let b=m.childNodes[y-1];f=b&&(b.nodeName=="BR"||b.contentEditable=="false")}}if(Fs&&d.focusNode&&d.focusNode!=l.node&&d.focusNode.nodeType==1){let m=d.focusNode.childNodes[d.focusOffset];m&&m.contentEditable=="false"&&(r=!0)}if(!(r||f&&ha)&&hf(o.node,o.offset,d.anchorNode,d.anchorOffset)&&hf(l.node,l.offset,d.focusNode,d.focusOffset))return;let p=!1;if((c.extend||e==n)&&!(f&&Fs)){c.collapse(o.node,o.offset);try{e!=n&&c.extend(l.node,l.offset),p=!0}catch{}}if(!p){if(e>n){let y=o;o=l,l=y}let m=document.createRange();m.setEnd(l.node,l.offset),m.setStart(o.node,o.offset),c.removeAllRanges(),c.addRange(m)}}ignoreMutation(e){return!this.contentDOM&&e.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,n){for(let i=0,r=0;r<this.children.length;r++){let a=this.children[r],s=i+a.size;if(i==s?e<=s&&n>=i:e<s&&n>i){let o=i+a.border,l=s-a.border;if(e>=o&&n<=l){this.dirty=e==i||n==s?Nd:BB,e==o&&n==l&&(a.contentLost||a.dom.parentNode!=this.contentDOM)?a.dirty=Ho:a.markDirty(e-o,n-o);return}else a.dirty=a.dom==a.contentDOM&&a.dom.parentNode==this.contentDOM&&!a.children.length?Nd:Ho}i=s}this.dirty=Nd}markParentsDirty(){let e=1;for(let n=this.parent;n;n=n.parent,e++){let i=e==1?Nd:BB;n.dirty<i&&(n.dirty=i)}}get domAtom(){return!1}get ignoreForCoords(){return!1}get ignoreForSelection(){return!1}isText(e){return!1}}class R9 extends av{constructor(e,n,i,r){let a,s=n.type.toDOM;if(typeof s=="function"&&(s=s(i,()=>{if(!a)return r;if(a.parent)return a.parent.posBeforeChild(a)})),!n.type.spec.raw){if(s.nodeType!=1){let o=document.createElement("span");o.appendChild(s),s=o}s.contentEditable="false",s.classList.add("ProseMirror-widget")}super(e,[],s,null),this.widget=n,this.widget=n,a=this}matchesWidget(e){return this.dirty==zs&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let n=this.widget.spec.stopEvent;return n?n(e):!1}ignoreMutation(e){return e.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}}class qye extends av{constructor(e,n,i,r){super(e,[],n,null),this.textDOM=i,this.text=r}get size(){return this.text.length}localPosFromDOM(e,n){return e!=this.textDOM?this.posAtStart+(n?this.size:0):this.posAtStart+n}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return e.type==="characterData"&&e.target.nodeValue==e.oldValue}}class pf extends av{constructor(e,n,i,r,a){super(e,[],i,r),this.mark=n,this.spec=a}static create(e,n,i,r){let a=r.nodeViews[n.type.name],s=a&&a(n,r,i);return(!s||!s.dom)&&(s=Tf.renderSpec(document,n.type.spec.toDOM(n,i),null,n.attrs)),new pf(e,n,s.dom,s.contentDOM||s.dom,s)}parseRule(){return this.dirty&Ho||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return this.dirty!=Ho&&this.mark.eq(e)}markDirty(e,n){if(super.markDirty(e,n),this.dirty!=zs){let i=this.parent;for(;!i.node;)i=i.parent;i.dirty<this.dirty&&(i.dirty=this.dirty),this.dirty=zs}}slice(e,n,i){let r=pf.create(this.parent,this.mark,!0,i),a=this.children,s=this.size;n<s&&(a=zR(a,n,s,i)),e>0&&(a=zR(a,0,e,i));for(let o=0;o<a.length;o++)a[o].parent=r;return r.children=a,r}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}}class Eu extends av{constructor(e,n,i,r,a,s,o,l,c){super(e,[],a,s),this.node=n,this.outerDeco=i,this.innerDeco=r,this.nodeDOM=o}static create(e,n,i,r,a,s){let o=a.nodeViews[n.type.name],l,c=o&&o(n,a,()=>{if(!l)return s;if(l.parent)return l.parent.posBeforeChild(l)},i,r),d=c&&c.dom,f=c&&c.contentDOM;if(n.isText){if(!d)d=document.createTextNode(n.text);else if(d.nodeType!=3)throw new RangeError("Text must be rendered as a DOM text node")}else d||({dom:d,contentDOM:f}=Tf.renderSpec(document,n.type.spec.toDOM(n),null,n.attrs));!f&&!n.isText&&d.nodeName!="BR"&&(d.hasAttribute("contenteditable")||(d.contentEditable="false"),n.type.spec.draggable&&(d.draggable=!0));let p=d;return d=O9(d,i,n),c?l=new Xye(e,n,i,r,d,f||null,p,c,a,s+1):n.isText?new gS(e,n,i,r,d,p,a):new Eu(e,n,i,r,d,f||null,p,a,s+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let e={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre"&&(e.preserveWhitespace="full"),!this.contentDOM)e.getContent=()=>this.node.content;else if(!this.contentLost)e.contentElement=this.contentDOM;else{for(let n=this.children.length-1;n>=0;n--){let i=this.children[n];if(this.dom.contains(i.dom.parentNode)){e.contentElement=i.dom.parentNode;break}}e.contentElement||(e.getContent=()=>lt.empty)}return e}matchesNode(e,n,i){return this.dirty==zs&&e.eq(this.node)&&v_(n,this.outerDeco)&&i.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(e,n){let i=this.node.inlineContent,r=n,a=e.composing?this.localCompositionInfo(e,n):null,s=a&&a.pos>-1?a:null,o=a&&a.pos<0,l=new Kye(this,s&&s.node,e);Qye(this.node,this.innerDeco,(c,d,f)=>{c.spec.marks?l.syncToMarks(c.spec.marks,i,e):c.type.side>=0&&!f&&l.syncToMarks(d==this.node.childCount?jn.none:this.node.child(d).marks,i,e),l.placeWidget(c,e,r)},(c,d,f,p)=>{l.syncToMarks(c.marks,i,e);let m;l.findNodeMatch(c,d,f,p)||o&&e.state.selection.from>r&&e.state.selection.to<r+c.nodeSize&&(m=l.findIndexWithChild(a.node))>-1&&l.updateNodeAt(c,d,f,m,e)||l.updateNextNode(c,d,f,e,p,r)||l.addNode(c,d,f,e,r),r+=c.nodeSize}),l.syncToMarks([],i,e),this.node.isTextblock&&l.addTextblockHacks(),l.destroyRest(),(l.changed||this.dirty==Nd)&&(s&&this.protectLocalComposition(e,s),D9(this.contentDOM,this.children,e),Rp&&ebe(this.dom))}localCompositionInfo(e,n){let{from:i,to:r}=e.state.selection;if(!(e.state.selection instanceof zt)||i<n||r>n+this.node.content.size)return null;let a=e.input.compositionNode;if(!a||!this.dom.contains(a.parentNode))return null;if(this.node.inlineContent){let s=a.nodeValue,o=tbe(this.node.content,s,i-n,r-n);return o<0?null:{node:a,pos:o,text:s}}else return{node:a,pos:-1,text:""}}protectLocalComposition(e,{node:n,pos:i,text:r}){if(this.getDesc(n))return;let a=n;for(;a.parentNode!=this.contentDOM;a=a.parentNode){for(;a.previousSibling;)a.parentNode.removeChild(a.previousSibling);for(;a.nextSibling;)a.parentNode.removeChild(a.nextSibling);a.pmViewDesc&&(a.pmViewDesc=void 0)}let s=new qye(this,a,n,r);e.input.compositionNodes.push(s),this.children=zR(this.children,i,i+r.length,e,s)}update(e,n,i,r){return this.dirty==Ho||!e.sameMarkup(this.node)?!1:(this.updateInner(e,n,i,r),!0)}updateInner(e,n,i,r){this.updateOuterDeco(n),this.node=e,this.innerDeco=i,this.contentDOM&&this.updateChildren(r,this.posAtStart),this.dirty=zs}updateOuterDeco(e){if(v_(e,this.outerDeco))return;let n=this.nodeDOM.nodeType!=1,i=this.dom;this.dom=N9(this.dom,this.nodeDOM,FR(this.outerDeco,this.node,n),FR(e,this.node,n)),this.dom!=i&&(i.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.add("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&(this.nodeDOM.draggable=!0))}deselectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.remove("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&this.nodeDOM.removeAttribute("draggable"))}get domAtom(){return this.node.isAtom}}function jB(t,e,n,i,r){O9(i,e,t);let a=new Eu(void 0,t,e,n,i,i,i,r,0);return a.contentDOM&&a.updateChildren(r,0),a}class gS extends Eu{constructor(e,n,i,r,a,s,o){super(e,n,i,r,a,null,s,o,0)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,n,i,r){return this.dirty==Ho||this.dirty!=zs&&!this.inParent()||!e.sameMarkup(this.node)?!1:(this.updateOuterDeco(n),(this.dirty!=zs||e.text!=this.node.text)&&e.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=e.text,r.trackWrites==this.nodeDOM&&(r.trackWrites=null)),this.node=e,this.dirty=zs,!0)}inParent(){let e=this.parent.contentDOM;for(let n=this.nodeDOM;n;n=n.parentNode)if(n==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,n,i){return e==this.nodeDOM?this.posAtStart+Math.min(n,this.node.text.length):super.localPosFromDOM(e,n,i)}ignoreMutation(e){return e.type!="characterData"&&e.type!="selection"}slice(e,n,i){let r=this.node.cut(e,n),a=document.createTextNode(r.text);return new gS(this.parent,r,this.outerDeco,this.innerDeco,a,a,i)}markDirty(e,n){super.markDirty(e,n),this.dom!=this.nodeDOM&&(e==0||n==this.nodeDOM.nodeValue.length)&&(this.dirty=Ho)}get domAtom(){return!1}isText(e){return this.node.text==e}}class P9 extends av{parseRule(){return{ignore:!0}}matchesHack(e){return this.dirty==zs&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName=="IMG"}}class Xye extends Eu{constructor(e,n,i,r,a,s,o,l,c,d){super(e,n,i,r,a,s,o,c,d),this.spec=l}update(e,n,i,r){if(this.dirty==Ho)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let a=this.spec.update(e,n,i);return a&&this.updateInner(e,n,i,r),a}else return!this.contentDOM&&!e.isLeaf?!1:super.update(e,n,i,r)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,n,i,r){this.spec.setSelection?this.spec.setSelection(e,n,i.root):super.setSelection(e,n,i,r)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return this.spec.stopEvent?this.spec.stopEvent(e):!1}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}}function D9(t,e,n){let i=t.firstChild,r=!1;for(let a=0;a<e.length;a++){let s=e[a],o=s.dom;if(o.parentNode==t){for(;o!=i;)i=HB(i),r=!0;i=i.nextSibling}else r=!0,t.insertBefore(o,i);if(s instanceof pf){let l=i?i.previousSibling:t.lastChild;D9(s.contentDOM,s.children,n),i=l?l.nextSibling:t.firstChild}}for(;i;)i=HB(i),r=!0;r&&n.trackWrites==t&&(n.trackWrites=null)}const Xg=function(t){t&&(this.nodeName=t)};Xg.prototype=Object.create(null);const Od=[new Xg];function FR(t,e,n){if(t.length==0)return Od;let i=n?Od[0]:new Xg,r=[i];for(let a=0;a<t.length;a++){let s=t[a].type.attrs;if(s){s.nodeName&&r.push(i=new Xg(s.nodeName));for(let o in s){let l=s[o];l!=null&&(n&&r.length==1&&r.push(i=new Xg(e.isInline?"span":"div")),o=="class"?i.class=(i.class?i.class+" ":"")+l:o=="style"?i.style=(i.style?i.style+";":"")+l:o!="nodeName"&&(i[o]=l))}}}return r}function N9(t,e,n,i){if(n==Od&&i==Od)return e;let r=e;for(let a=0;a<i.length;a++){let s=i[a],o=n[a];if(a){let l;o&&o.nodeName==s.nodeName&&r!=t&&(l=r.parentNode)&&l.nodeName.toLowerCase()==s.nodeName||(l=document.createElement(s.nodeName),l.pmIsDeco=!0,l.appendChild(r),o=Od[0]),r=l}Yye(r,o||Od[0],s)}return r}function Yye(t,e,n){for(let i in e)i!="class"&&i!="style"&&i!="nodeName"&&!(i in n)&&t.removeAttribute(i);for(let i in n)i!="class"&&i!="style"&&i!="nodeName"&&n[i]!=e[i]&&t.setAttribute(i,n[i]);if(e.class!=n.class){let i=e.class?e.class.split(" ").filter(Boolean):[],r=n.class?n.class.split(" ").filter(Boolean):[];for(let a=0;a<i.length;a++)r.indexOf(i[a])==-1&&t.classList.remove(i[a]);for(let a=0;a<r.length;a++)i.indexOf(r[a])==-1&&t.classList.add(r[a]);t.classList.length==0&&t.removeAttribute("class")}if(e.style!=n.style){if(e.style){let i=/\s*([\w\-\xa1-\uffff]+)\s*:(?:"(?:\\.|[^"])*"|'(?:\\.|[^'])*'|\(.*?\)|[^;])*/g,r;for(;r=i.exec(e.style);)t.style.removeProperty(r[1])}n.style&&(t.style.cssText+=n.style)}}function O9(t,e,n){return N9(t,t,Od,FR(e,n,t.nodeType!=1))}function v_(t,e){if(t.length!=e.length)return!1;for(let n=0;n<t.length;n++)if(!t[n].type.eq(e[n].type))return!1;return!0}function HB(t){let e=t.nextSibling;return t.parentNode.removeChild(t),e}class Kye{constructor(e,n,i){this.lock=n,this.view=i,this.index=0,this.stack=[],this.changed=!1,this.top=e,this.preMatch=Zye(e.node.content,e)}destroyBetween(e,n){if(e!=n){for(let i=e;i<n;i++)this.top.children[i].destroy();this.top.children.splice(e,n-e),this.changed=!0}}destroyRest(){this.destroyBetween(this.index,this.top.children.length)}syncToMarks(e,n,i){let r=0,a=this.stack.length>>1,s=Math.min(a,e.length);for(;r<s&&(r==a-1?this.top:this.stack[r+1<<1]).matchesMark(e[r])&&e[r].type.spec.spanning!==!1;)r++;for(;r<a;)this.destroyRest(),this.top.dirty=zs,this.index=this.stack.pop(),this.top=this.stack.pop(),a--;for(;a<e.length;){this.stack.push(this.top,this.index+1);let o=-1;for(let l=this.index;l<Math.min(this.index+3,this.top.children.length);l++){let c=this.top.children[l];if(c.matchesMark(e[a])&&!this.isLocked(c.dom)){o=l;break}}if(o>-1)o>this.index&&(this.changed=!0,this.destroyBetween(this.index,o)),this.top=this.top.children[this.index];else{let l=pf.create(this.top,e[a],n,i);this.top.children.splice(this.index,0,l),this.top=l,this.changed=!0}this.index=0,a++}}findNodeMatch(e,n,i,r){let a=-1,s;if(r>=this.preMatch.index&&(s=this.preMatch.matches[r-this.preMatch.index]).parent==this.top&&s.matchesNode(e,n,i))a=this.top.children.indexOf(s,this.index);else for(let o=this.index,l=Math.min(this.top.children.length,o+5);o<l;o++){let c=this.top.children[o];if(c.matchesNode(e,n,i)&&!this.preMatch.matched.has(c)){a=o;break}}return a<0?!1:(this.destroyBetween(this.index,a),this.index++,!0)}updateNodeAt(e,n,i,r,a){let s=this.top.children[r];return s.dirty==Ho&&s.dom==s.contentDOM&&(s.dirty=Nd),s.update(e,n,i,a)?(this.destroyBetween(this.index,r),this.index++,!0):!1}findIndexWithChild(e){for(;;){let n=e.parentNode;if(!n)return-1;if(n==this.top.contentDOM){let i=e.pmViewDesc;if(i){for(let r=this.index;r<this.top.children.length;r++)if(this.top.children[r]==i)return r}return-1}e=n}}updateNextNode(e,n,i,r,a,s){for(let o=this.index;o<this.top.children.length;o++){let l=this.top.children[o];if(l instanceof Eu){let c=this.preMatch.matched.get(l);if(c!=null&&c!=a)return!1;let d=l.dom,f,p=this.isLocked(d)&&!(e.isText&&l.node&&l.node.isText&&l.nodeDOM.nodeValue==e.text&&l.dirty!=Ho&&v_(n,l.outerDeco));if(!p&&l.update(e,n,i,r))return this.destroyBetween(this.index,o),l.dom!=d&&(this.changed=!0),this.index++,!0;if(!p&&(f=this.recreateWrapper(l,e,n,i,r,s)))return this.destroyBetween(this.index,o),this.top.children[this.index]=f,f.contentDOM&&(f.dirty=Nd,f.updateChildren(r,s+1),f.dirty=zs),this.changed=!0,this.index++,!0;break}}return!1}recreateWrapper(e,n,i,r,a,s){if(e.dirty||n.isAtom||!e.children.length||!e.node.content.eq(n.content)||!v_(i,e.outerDeco)||!r.eq(e.innerDeco))return null;let o=Eu.create(this.top,n,i,r,a,s);if(o.contentDOM){o.children=e.children,e.children=[];for(let l of o.children)l.parent=o}return e.destroy(),o}addNode(e,n,i,r,a){let s=Eu.create(this.top,e,n,i,r,a);s.contentDOM&&s.updateChildren(r,a+1),this.top.children.splice(this.index++,0,s),this.changed=!0}placeWidget(e,n,i){let r=this.index<this.top.children.length?this.top.children[this.index]:null;if(r&&r.matchesWidget(e)&&(e==r.widget||!r.widget.type.toDOM.parentNode))this.index++;else{let a=new R9(this.top,e,n,i);this.top.children.splice(this.index++,0,a),this.changed=!0}}addTextblockHacks(){let e=this.top.children[this.index-1],n=this.top;for(;e instanceof pf;)n=e,e=n.children[n.children.length-1];(!e||!(e instanceof gS)||/\n$/.test(e.node.text)||this.view.requiresGeckoHackNode&&/\s$/.test(e.node.text))&&((ha||Qr)&&e&&e.dom.contentEditable=="false"&&this.addHackNode("IMG",n),this.addHackNode("BR",this.top))}addHackNode(e,n){if(n==this.top&&this.index<n.children.length&&n.children[this.index].matchesHack(e))this.index++;else{let i=document.createElement(e);e=="IMG"&&(i.className="ProseMirror-separator",i.alt=""),e=="BR"&&(i.className="ProseMirror-trailingBreak");let r=new P9(this.top,[],i,null);n!=this.top?n.children.push(r):n.children.splice(this.index++,0,r),this.changed=!0}}isLocked(e){return this.lock&&(e==this.lock||e.nodeType==1&&e.contains(this.lock.parentNode))}}function Zye(t,e){let n=e,i=n.children.length,r=t.childCount,a=new Map,s=[];e:for(;r>0;){let o;for(;;)if(i){let c=n.children[i-1];if(c instanceof pf)n=c,i=c.children.length;else{o=c,i--;break}}else{if(n==e)break e;i=n.parent.children.indexOf(n),n=n.parent}let l=o.node;if(l){if(l!=t.child(r-1))break;--r,a.set(o,r),s.push(o)}}return{index:r,matched:a,matches:s.reverse()}}function Jye(t,e){return t.type.side-e.type.side}function Qye(t,e,n,i){let r=e.locals(t),a=0;if(r.length==0){for(let c=0;c<t.childCount;c++){let d=t.child(c);i(d,r,e.forChild(a,d),c),a+=d.nodeSize}return}let s=0,o=[],l=null;for(let c=0;;){let d,f;for(;s<r.length&&r[s].to==a;){let x=r[s++];x.widget&&(d?(f||(f=[d])).push(x):d=x)}if(d)if(f){f.sort(Jye);for(let x=0;x<f.length;x++)n(f[x],c,!!l)}else n(d,c,!!l);let p,m;if(l)m=-1,p=l,l=null;else if(c<t.childCount)m=c,p=t.child(c++);else break;for(let x=0;x<o.length;x++)o[x].to<=a&&o.splice(x--,1);for(;s<r.length&&r[s].from<=a&&r[s].to>a;)o.push(r[s++]);let y=a+p.nodeSize;if(p.isText){let x=y;s<r.length&&r[s].from<x&&(x=r[s].from);for(let v=0;v<o.length;v++)o[v].to<x&&(x=o[v].to);x<y&&(l=p.cut(x-a),p=p.cut(0,x-a),y=x,m=-1)}else for(;s<r.length&&r[s].to<y;)s++;let b=p.isInline&&!p.isLeaf?o.filter(x=>!x.inline):o.slice();i(p,b,e.forChild(a,p),m),a=y}}function ebe(t){if(t.nodeName=="UL"||t.nodeName=="OL"){let e=t.style.cssText;t.style.cssText=e+"; list-style: square !important",window.getComputedStyle(t).listStyle,t.style.cssText=e}}function tbe(t,e,n,i){for(let r=0,a=0;r<t.childCount&&a<=i;){let s=t.child(r++),o=a;if(a+=s.nodeSize,!s.isText)continue;let l=s.text;for(;r<t.childCount;){let c=t.child(r++);if(a+=c.nodeSize,!c.isText)break;l+=c.text}if(a>=n){if(a>=i&&l.slice(i-e.length-o,i-o)==e)return i-e.length;let c=o<i?l.lastIndexOf(e,i-o-1):-1;if(c>=0&&c+e.length+o>=n)return o+c;if(n==i&&l.length>=i+e.length-o&&l.slice(i-o,i-o+e.length)==e)return i}}return-1}function zR(t,e,n,i,r){let a=[];for(let s=0,o=0;s<t.length;s++){let l=t[s],c=o,d=o+=l.size;c>=n||d<=e?a.push(l):(c<e&&a.push(l.slice(0,e-c,i)),r&&(a.push(r),r=void 0),d>n&&a.push(l.slice(n-c,l.size,i)))}return a}function dD(t,e=null){let n=t.domSelectionRange(),i=t.state.doc;if(!n.focusNode)return null;let r=t.docView.nearestDesc(n.focusNode),a=r&&r.size==0,s=t.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(s<0)return null;let o=i.resolve(s),l,c;if(mS(n)){for(l=s;r&&!r.node;)r=r.parent;let f=r.node;if(r&&f.isAtom&&It.isSelectable(f)&&r.parent&&!(f.isInline&&Tye(n.focusNode,n.focusOffset,r.dom))){let p=r.posBefore;c=new It(s==p?o:i.resolve(p))}}else{if(n instanceof t.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let f=s,p=s;for(let m=0;m<n.rangeCount;m++){let y=n.getRangeAt(m);f=Math.min(f,t.docView.posFromDOM(y.startContainer,y.startOffset,1)),p=Math.max(p,t.docView.posFromDOM(y.endContainer,y.endOffset,-1))}if(f<0)return null;[l,s]=p==t.state.selection.anchor?[p,f]:[f,p],o=i.resolve(s)}else l=t.docView.posFromDOM(n.anchorNode,n.anchorOffset,1);if(l<0)return null}let d=i.resolve(l);if(!c){let f=e=="pointer"||t.state.selection.head<o.pos&&!a?1:-1;c=fD(t,d,o,f)}return c}function L9(t){return t.editable?t.hasFocus():I9(t)&&document.activeElement&&document.activeElement.contains(t.dom)}function Xl(t,e=!1){let n=t.state.selection;if(k9(t,n),!!L9(t)){if(!e&&t.input.mouseDown&&t.input.mouseDown.allowDefault&&Qr){let i=t.domSelectionRange(),r=t.domObserver.currentSelection;if(i.anchorNode&&r.anchorNode&&hf(i.anchorNode,i.anchorOffset,r.anchorNode,r.anchorOffset)){t.input.mouseDown.delayedSelectionSync=!0,t.domObserver.setCurSelection();return}}if(t.domObserver.disconnectSelection(),t.cursorWrapper)ibe(t);else{let{anchor:i,head:r}=n,a,s;VB&&!(n instanceof zt)&&(n.$from.parent.inlineContent||(a=GB(t,n.from)),!n.empty&&!n.$from.parent.inlineContent&&(s=GB(t,n.to))),t.docView.setSelection(i,r,t,e),VB&&(a&&$B(a),s&&$B(s)),n.visible?t.dom.classList.remove("ProseMirror-hideselection"):(t.dom.classList.add("ProseMirror-hideselection"),"onselectionchange"in document&&nbe(t))}t.domObserver.setCurSelection(),t.domObserver.connectSelection()}}const VB=ha||Qr&&S9<63;function GB(t,e){let{node:n,offset:i}=t.docView.domFromPos(e,0),r=i<n.childNodes.length?n.childNodes[i]:null,a=i?n.childNodes[i-1]:null;if(ha&&r&&r.contentEditable=="false")return cT(r);if((!r||r.contentEditable=="false")&&(!a||a.contentEditable=="false")){if(r)return cT(r);if(a)return cT(a)}}function cT(t){return t.contentEditable="true",ha&&t.draggable&&(t.draggable=!1,t.wasDraggable=!0),t}function $B(t){t.contentEditable="false",t.wasDraggable&&(t.draggable=!0,t.wasDraggable=null)}function nbe(t){let e=t.dom.ownerDocument;e.removeEventListener("selectionchange",t.input.hideSelectionGuard);let n=t.domSelectionRange(),i=n.anchorNode,r=n.anchorOffset;e.addEventListener("selectionchange",t.input.hideSelectionGuard=()=>{(n.anchorNode!=i||n.anchorOffset!=r)&&(e.removeEventListener("selectionchange",t.input.hideSelectionGuard),setTimeout(()=>{(!L9(t)||t.state.selection.visible)&&t.dom.classList.remove("ProseMirror-hideselection")},20))})}function ibe(t){let e=t.domSelection();if(!e)return;let n=t.cursorWrapper.dom,i=n.nodeName=="IMG";i?e.collapse(n.parentNode,zr(n)+1):e.collapse(n,0),!i&&!t.state.selection.visible&&Oa&&Mu<=11&&(n.disabled=!0,n.disabled=!1)}function k9(t,e){if(e instanceof It){let n=t.docView.descAt(e.from);n!=t.lastSelectedViewDesc&&(WB(t),n&&n.selectNode(),t.lastSelectedViewDesc=n)}else WB(t)}function WB(t){t.lastSelectedViewDesc&&(t.lastSelectedViewDesc.parent&&t.lastSelectedViewDesc.deselectNode(),t.lastSelectedViewDesc=void 0)}function fD(t,e,n,i){return t.someProp("createSelectionBetween",r=>r(t,e,n))||zt.between(e,n,i)}function qB(t){return t.editable&&!t.hasFocus()?!1:I9(t)}function I9(t){let e=t.domSelectionRange();if(!e.anchorNode)return!1;try{return t.dom.contains(e.anchorNode.nodeType==3?e.anchorNode.parentNode:e.anchorNode)&&(t.editable||t.dom.contains(e.focusNode.nodeType==3?e.focusNode.parentNode:e.focusNode))}catch{return!1}}function rbe(t){let e=t.docView.domFromPos(t.state.selection.anchor,0),n=t.domSelectionRange();return hf(e.node,e.offset,n.anchorNode,n.anchorOffset)}function BR(t,e){let{$anchor:n,$head:i}=t.selection,r=e>0?n.max(i):n.min(i),a=r.parent.inlineContent?r.depth?t.doc.resolve(e>0?r.after():r.before()):null:r;return a&&Qt.findFrom(a,e)}function nu(t,e){return t.dispatch(t.state.tr.setSelection(e).scrollIntoView()),!0}function XB(t,e,n){let i=t.state.selection;if(i instanceof zt)if(n.indexOf("s")>-1){let{$head:r}=i,a=r.textOffset?null:e<0?r.nodeBefore:r.nodeAfter;if(!a||a.isText||!a.isLeaf)return!1;let s=t.state.doc.resolve(r.pos+a.nodeSize*(e<0?-1:1));return nu(t,new zt(i.$anchor,s))}else if(i.empty){if(t.endOfTextblock(e>0?"forward":"backward")){let r=BR(t.state,e);return r&&r instanceof It?nu(t,r):!1}else if(!(Ts&&n.indexOf("m")>-1)){let r=i.$head,a=r.textOffset?null:e<0?r.nodeBefore:r.nodeAfter,s;if(!a||a.isText)return!1;let o=e<0?r.pos-a.nodeSize:r.pos;return a.isAtom||(s=t.docView.descAt(o))&&!s.contentDOM?It.isSelectable(a)?nu(t,new It(e<0?t.state.doc.resolve(r.pos-a.nodeSize):r)):rv?nu(t,new zt(t.state.doc.resolve(e<0?o:o+a.nodeSize))):!1:!1}}else return!1;else{if(i instanceof It&&i.node.isInline)return nu(t,new zt(e>0?i.$to:i.$from));{let r=BR(t.state,e);return r?nu(t,r):!1}}}function x_(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function Yg(t,e){let n=t.pmViewDesc;return n&&n.size==0&&(e<0||t.nextSibling||t.nodeName!="BR")}function jh(t,e){return e<0?abe(t):sbe(t)}function abe(t){let e=t.domSelectionRange(),n=e.focusNode,i=e.focusOffset;if(!n)return;let r,a,s=!1;for(Fs&&n.nodeType==1&&i<x_(n)&&Yg(n.childNodes[i],-1)&&(s=!0);;)if(i>0){if(n.nodeType!=1)break;{let o=n.childNodes[i-1];if(Yg(o,-1))r=n,a=--i;else if(o.nodeType==3)n=o,i=n.nodeValue.length;else break}}else{if(U9(n))break;{let o=n.previousSibling;for(;o&&Yg(o,-1);)r=n.parentNode,a=zr(o),o=o.previousSibling;if(o)n=o,i=x_(n);else{if(n=n.parentNode,n==t.dom)break;i=0}}}s?jR(t,n,i):r&&jR(t,r,a)}function sbe(t){let e=t.domSelectionRange(),n=e.focusNode,i=e.focusOffset;if(!n)return;let r=x_(n),a,s;for(;;)if(i<r){if(n.nodeType!=1)break;let o=n.childNodes[i];if(Yg(o,1))a=n,s=++i;else break}else{if(U9(n))break;{let o=n.nextSibling;for(;o&&Yg(o,1);)a=o.parentNode,s=zr(o)+1,o=o.nextSibling;if(o)n=o,i=0,r=x_(n);else{if(n=n.parentNode,n==t.dom)break;i=r=0}}}a&&jR(t,a,s)}function U9(t){let e=t.pmViewDesc;return e&&e.node&&e.node.isBlock}function obe(t,e){for(;t&&e==t.childNodes.length&&!iv(t);)e=zr(t)+1,t=t.parentNode;for(;t&&e<t.childNodes.length;){let n=t.childNodes[e];if(n.nodeType==3)return n;if(n.nodeType==1&&n.contentEditable=="false")break;t=n,e=0}}function lbe(t,e){for(;t&&!e&&!iv(t);)e=zr(t),t=t.parentNode;for(;t&&e;){let n=t.childNodes[e-1];if(n.nodeType==3)return n;if(n.nodeType==1&&n.contentEditable=="false")break;t=n,e=t.childNodes.length}}function jR(t,e,n){if(e.nodeType!=3){let a,s;(s=obe(e,n))?(e=s,n=0):(a=lbe(e,n))&&(e=a,n=a.nodeValue.length)}let i=t.domSelection();if(!i)return;if(mS(i)){let a=document.createRange();a.setEnd(e,n),a.setStart(e,n),i.removeAllRanges(),i.addRange(a)}else i.extend&&i.extend(e,n);t.domObserver.setCurSelection();let{state:r}=t;setTimeout(()=>{t.state==r&&Xl(t)},50)}function YB(t,e){let n=t.state.doc.resolve(e);if(!(Qr||Pye)&&n.parent.inlineContent){let r=t.coordsAtPos(e);if(e>n.start()){let a=t.coordsAtPos(e-1),s=(a.top+a.bottom)/2;if(s>r.top&&s<r.bottom&&Math.abs(a.left-r.left)>1)return a.left<r.left?"ltr":"rtl"}if(e<n.end()){let a=t.coordsAtPos(e+1),s=(a.top+a.bottom)/2;if(s>r.top&&s<r.bottom&&Math.abs(a.left-r.left)>1)return a.left>r.left?"ltr":"rtl"}}return getComputedStyle(t.dom).direction=="rtl"?"rtl":"ltr"}function KB(t,e,n){let i=t.state.selection;if(i instanceof zt&&!i.empty||n.indexOf("s")>-1||Ts&&n.indexOf("m")>-1)return!1;let{$from:r,$to:a}=i;if(!r.parent.inlineContent||t.endOfTextblock(e<0?"up":"down")){let s=BR(t.state,e);if(s&&s instanceof It)return nu(t,s)}if(!r.parent.inlineContent){let s=e<0?r:a,o=i instanceof rs?Qt.near(s,e):Qt.findFrom(s,e);return o?nu(t,o):!1}return!1}function ZB(t,e){if(!(t.state.selection instanceof zt))return!0;let{$head:n,$anchor:i,empty:r}=t.state.selection;if(!n.sameParent(i))return!0;if(!r)return!1;if(t.endOfTextblock(e>0?"forward":"backward"))return!0;let a=!n.textOffset&&(e<0?n.nodeBefore:n.nodeAfter);if(a&&!a.isText){let s=t.state.tr;return e<0?s.delete(n.pos-a.nodeSize,n.pos):s.delete(n.pos,n.pos+a.nodeSize),t.dispatch(s),!0}return!1}function JB(t,e,n){t.domObserver.stop(),e.contentEditable=n,t.domObserver.start()}function cbe(t){if(!ha||t.state.selection.$head.parentOffset>0)return!1;let{focusNode:e,focusOffset:n}=t.domSelectionRange();if(e&&e.nodeType==1&&n==0&&e.firstChild&&e.firstChild.contentEditable=="false"){let i=e.firstChild;JB(t,i,"true"),setTimeout(()=>JB(t,i,"false"),20)}return!1}function ube(t){let e="";return t.ctrlKey&&(e+="c"),t.metaKey&&(e+="m"),t.altKey&&(e+="a"),t.shiftKey&&(e+="s"),e}function dbe(t,e){let n=e.keyCode,i=ube(e);if(n==8||Ts&&n==72&&i=="c")return ZB(t,-1)||jh(t,-1);if(n==46&&!e.shiftKey||Ts&&n==68&&i=="c")return ZB(t,1)||jh(t,1);if(n==13||n==27)return!0;if(n==37||Ts&&n==66&&i=="c"){let r=n==37?YB(t,t.state.selection.from)=="ltr"?-1:1:-1;return XB(t,r,i)||jh(t,r)}else if(n==39||Ts&&n==70&&i=="c"){let r=n==39?YB(t,t.state.selection.from)=="ltr"?1:-1:1;return XB(t,r,i)||jh(t,r)}else{if(n==38||Ts&&n==80&&i=="c")return KB(t,-1,i)||jh(t,-1);if(n==40||Ts&&n==78&&i=="c")return cbe(t)||KB(t,1,i)||jh(t,1);if(i==(Ts?"m":"c")&&(n==66||n==73||n==89||n==90))return!0}return!1}function hD(t,e){t.someProp("transformCopied",m=>{e=m(e,t)});let n=[],{content:i,openStart:r,openEnd:a}=e;for(;r>1&&a>1&&i.childCount==1&&i.firstChild.childCount==1;){r--,a--;let m=i.firstChild;n.push(m.type.name,m.attrs!=m.type.defaultAttrs?m.attrs:null),i=m.content}let s=t.someProp("clipboardSerializer")||Tf.fromSchema(t.state.schema),o=V9(),l=o.createElement("div");l.appendChild(s.serializeFragment(i,{document:o}));let c=l.firstChild,d,f=0;for(;c&&c.nodeType==1&&(d=H9[c.nodeName.toLowerCase()]);){for(let m=d.length-1;m>=0;m--){let y=o.createElement(d[m]);for(;l.firstChild;)y.appendChild(l.firstChild);l.appendChild(y),f++}c=l.firstChild}c&&c.nodeType==1&&c.setAttribute("data-pm-slice",`${r} ${a}${f?` -${f}`:""} ${JSON.stringify(n)}`);let p=t.someProp("clipboardTextSerializer",m=>m(e,t))||e.content.textBetween(0,e.content.size,`
- `);return{dom:l,text:p,slice:e}}function F9(t,e,n,i,r){let a=r.parent.type.spec.code,s,o;if(!n&&!e)return null;let l=!!e&&(i||a||!n);if(l){if(t.someProp("transformPastedText",p=>{e=p(e,a||i,t)}),a)return o=new _t(lt.from(t.state.schema.text(e.replace(/\r\n?/g,`
- `))),0,0),t.someProp("transformPasted",p=>{o=p(o,t,!0)}),o;let f=t.someProp("clipboardTextParser",p=>p(e,r,i,t));if(f)o=f;else{let p=r.marks(),{schema:m}=t.state,y=Tf.fromSchema(m);s=document.createElement("div"),e.split(/(?:\r\n?|\n)+/).forEach(b=>{let x=s.appendChild(document.createElement("p"));b&&x.appendChild(y.serializeNode(m.text(b,p)))})}}else t.someProp("transformPastedHTML",f=>{n=f(n,t)}),s=mbe(n),rv&&gbe(s);let c=s&&s.querySelector("[data-pm-slice]"),d=c&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(c.getAttribute("data-pm-slice")||"");if(d&&d[3])for(let f=+d[3];f>0;f--){let p=s.firstChild;for(;p&&p.nodeType!=1;)p=p.nextSibling;if(!p)break;s=p}if(o||(o=(t.someProp("clipboardParser")||t.someProp("domParser")||Wg.fromSchema(t.state.schema)).parseSlice(s,{preserveWhitespace:!!(l||d),context:r,ruleFromNode(p){return p.nodeName=="BR"&&!p.nextSibling&&p.parentNode&&!fbe.test(p.parentNode.nodeName)?{ignore:!0}:null}})),d)o=vbe(QB(o,+d[1],+d[2]),d[4]);else if(o=_t.maxOpen(hbe(o.content,r),!0),o.openStart||o.openEnd){let f=0,p=0;for(let m=o.content.firstChild;f<o.openStart&&!m.type.spec.isolating;f++,m=m.firstChild);for(let m=o.content.lastChild;p<o.openEnd&&!m.type.spec.isolating;p++,m=m.lastChild);o=QB(o,f,p)}return t.someProp("transformPasted",f=>{o=f(o,t,l)}),o}const fbe=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function hbe(t,e){if(t.childCount<2)return t;for(let n=e.depth;n>=0;n--){let r=e.node(n).contentMatchAt(e.index(n)),a,s=[];if(t.forEach(o=>{if(!s)return;let l=r.findWrapping(o.type),c;if(!l)return s=null;if(c=s.length&&a.length&&B9(l,a,o,s[s.length-1],0))s[s.length-1]=c;else{s.length&&(s[s.length-1]=j9(s[s.length-1],a.length));let d=z9(o,l);s.push(d),r=r.matchType(d.type),a=l}}),s)return lt.from(s)}return t}function z9(t,e,n=0){for(let i=e.length-1;i>=n;i--)t=e[i].create(null,lt.from(t));return t}function B9(t,e,n,i,r){if(r<t.length&&r<e.length&&t[r]==e[r]){let a=B9(t,e,n,i.lastChild,r+1);if(a)return i.copy(i.content.replaceChild(i.childCount-1,a));if(i.contentMatchAt(i.childCount).matchType(r==t.length-1?n.type:t[r+1]))return i.copy(i.content.append(lt.from(z9(n,t,r+1))))}}function j9(t,e){if(e==0)return t;let n=t.content.replaceChild(t.childCount-1,j9(t.lastChild,e-1)),i=t.contentMatchAt(t.childCount).fillBefore(lt.empty,!0);return t.copy(n.append(i))}function HR(t,e,n,i,r,a){let s=e<0?t.firstChild:t.lastChild,o=s.content;return t.childCount>1&&(a=0),r<i-1&&(o=HR(o,e,n,i,r+1,a)),r>=n&&(o=e<0?s.contentMatchAt(0).fillBefore(o,a<=r).append(o):o.append(s.contentMatchAt(s.childCount).fillBefore(lt.empty,!0))),t.replaceChild(e<0?0:t.childCount-1,s.copy(o))}function QB(t,e,n){return e<t.openStart&&(t=new _t(HR(t.content,-1,e,t.openStart,0,t.openEnd),e,t.openEnd)),n<t.openEnd&&(t=new _t(HR(t.content,1,n,t.openEnd,0,0),t.openStart,n)),t}const H9={thead:["table"],tbody:["table"],tfoot:["table"],caption:["table"],colgroup:["table"],col:["table","colgroup"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","tbody","tr"]};let e5=null;function V9(){return e5||(e5=document.implementation.createHTMLDocument("title"))}let uT=null;function pbe(t){let e=window.trustedTypes;return e?(uT||(uT=e.defaultPolicy||e.createPolicy("ProseMirrorClipboard",{createHTML:n=>n})),uT.createHTML(t)):t}function mbe(t){let e=/^(\s*<meta [^>]*>)*/.exec(t);e&&(t=t.slice(e[0].length));let n=V9().createElement("div"),i=/<([a-z][^>\s]+)/i.exec(t),r;if((r=i&&H9[i[1].toLowerCase()])&&(t=r.map(a=>"<"+a+">").join("")+t+r.map(a=>"</"+a+">").reverse().join("")),n.innerHTML=pbe(t),r)for(let a=0;a<r.length;a++)n=n.querySelector(r[a])||n;return n}function gbe(t){let e=t.querySelectorAll(Qr?"span:not([class]):not([style])":"span.Apple-converted-space");for(let n=0;n<e.length;n++){let i=e[n];i.childNodes.length==1&&i.textContent==" "&&i.parentNode&&i.parentNode.replaceChild(t.ownerDocument.createTextNode(" "),i)}}function vbe(t,e){if(!t.size)return t;let n=t.content.firstChild.type.schema,i;try{i=JSON.parse(e)}catch{return t}let{content:r,openStart:a,openEnd:s}=t;for(let o=i.length-2;o>=0;o-=2){let l=n.nodes[i[o]];if(!l||l.hasRequiredAttrs())break;r=lt.from(l.create(i[o+1],r)),a++,s++}return new _t(r,a,s)}const pa={},ma={},xbe={touchstart:!0,touchmove:!0};class ybe{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:"",button:0},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastChromeDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function bbe(t){for(let e in pa){let n=pa[e];t.dom.addEventListener(e,t.input.eventHandlers[e]=i=>{Sbe(t,i)&&!pD(t,i)&&(t.editable||!(i.type in ma))&&n(t,i)},xbe[e]?{passive:!0}:void 0)}ha&&t.dom.addEventListener("input",()=>null),VR(t)}function vu(t,e){t.input.lastSelectionOrigin=e,t.input.lastSelectionTime=Date.now()}function _be(t){t.domObserver.stop();for(let e in t.input.eventHandlers)t.dom.removeEventListener(e,t.input.eventHandlers[e]);clearTimeout(t.input.composingTimeout),clearTimeout(t.input.lastIOSEnterFallbackTimeout)}function VR(t){t.someProp("handleDOMEvents",e=>{for(let n in e)t.input.eventHandlers[n]||t.dom.addEventListener(n,t.input.eventHandlers[n]=i=>pD(t,i))})}function pD(t,e){return t.someProp("handleDOMEvents",n=>{let i=n[e.type];return i?i(t,e)||e.defaultPrevented:!1})}function Sbe(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let n=e.target;n!=t.dom;n=n.parentNode)if(!n||n.nodeType==11||n.pmViewDesc&&n.pmViewDesc.stopEvent(e))return!1;return!0}function wbe(t,e){!pD(t,e)&&pa[e.type]&&(t.editable||!(e.type in ma))&&pa[e.type](t,e)}ma.keydown=(t,e)=>{let n=e;if(t.input.shiftKey=n.keyCode==16||n.shiftKey,!$9(t,n)&&(t.input.lastKeyCode=n.keyCode,t.input.lastKeyCodeTime=Date.now(),!(Bl&&Qr&&n.keyCode==13)))if(n.keyCode!=229&&t.domObserver.forceFlush(),Rp&&n.keyCode==13&&!n.ctrlKey&&!n.altKey&&!n.metaKey){let i=Date.now();t.input.lastIOSEnter=i,t.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{t.input.lastIOSEnter==i&&(t.someProp("handleKeyDown",r=>r(t,Rd(13,"Enter"))),t.input.lastIOSEnter=0)},200)}else t.someProp("handleKeyDown",i=>i(t,n))||dbe(t,n)?n.preventDefault():vu(t,"key")};ma.keyup=(t,e)=>{e.keyCode==16&&(t.input.shiftKey=!1)};ma.keypress=(t,e)=>{let n=e;if($9(t,n)||!n.charCode||n.ctrlKey&&!n.altKey||Ts&&n.metaKey)return;if(t.someProp("handleKeyPress",r=>r(t,n))){n.preventDefault();return}let i=t.state.selection;if(!(i instanceof zt)||!i.$from.sameParent(i.$to)){let r=String.fromCharCode(n.charCode),a=()=>t.state.tr.insertText(r).scrollIntoView();!/[\r\n]/.test(r)&&!t.someProp("handleTextInput",s=>s(t,i.$from.pos,i.$to.pos,r,a))&&t.dispatch(a()),n.preventDefault()}};function vS(t){return{left:t.clientX,top:t.clientY}}function Mbe(t,e){let n=e.x-t.clientX,i=e.y-t.clientY;return n*n+i*i<100}function mD(t,e,n,i,r){if(i==-1)return!1;let a=t.state.doc.resolve(i);for(let s=a.depth+1;s>0;s--)if(t.someProp(e,o=>s>a.depth?o(t,n,a.nodeAfter,a.before(s),r,!0):o(t,n,a.node(s),a.before(s),r,!1)))return!0;return!1}function dp(t,e,n){if(t.focused||t.focus(),t.state.selection.eq(e))return;let i=t.state.tr.setSelection(e);i.setMeta("pointer",!0),t.dispatch(i)}function Ebe(t,e){if(e==-1)return!1;let n=t.state.doc.resolve(e),i=n.nodeAfter;return i&&i.isAtom&&It.isSelectable(i)?(dp(t,new It(n)),!0):!1}function Abe(t,e){if(e==-1)return!1;let n=t.state.selection,i,r;n instanceof It&&(i=n.node);let a=t.state.doc.resolve(e);for(let s=a.depth+1;s>0;s--){let o=s>a.depth?a.nodeAfter:a.node(s);if(It.isSelectable(o)){i&&n.$from.depth>0&&s>=n.$from.depth&&a.before(n.$from.depth+1)==n.$from.pos?r=a.before(n.$from.depth):r=a.before(s);break}}return r!=null?(dp(t,It.create(t.state.doc,r)),!0):!1}function Tbe(t,e,n,i,r){return mD(t,"handleClickOn",e,n,i)||t.someProp("handleClick",a=>a(t,e,i))||(r?Abe(t,n):Ebe(t,n))}function Cbe(t,e,n,i){return mD(t,"handleDoubleClickOn",e,n,i)||t.someProp("handleDoubleClick",r=>r(t,e,i))}function Rbe(t,e,n,i){return mD(t,"handleTripleClickOn",e,n,i)||t.someProp("handleTripleClick",r=>r(t,e,i))||Pbe(t,n,i)}function Pbe(t,e,n){if(n.button!=0)return!1;let i=t.state.doc;if(e==-1)return i.inlineContent?(dp(t,zt.create(i,0,i.content.size)),!0):!1;let r=i.resolve(e);for(let a=r.depth+1;a>0;a--){let s=a>r.depth?r.nodeAfter:r.node(a),o=r.before(a);if(s.inlineContent)dp(t,zt.create(i,o+1,o+1+s.content.size));else if(It.isSelectable(s))dp(t,It.create(i,o));else continue;return!0}}function gD(t){return y_(t)}const G9=Ts?"metaKey":"ctrlKey";pa.mousedown=(t,e)=>{let n=e;t.input.shiftKey=n.shiftKey;let i=gD(t),r=Date.now(),a="singleClick";r-t.input.lastClick.time<500&&Mbe(n,t.input.lastClick)&&!n[G9]&&t.input.lastClick.button==n.button&&(t.input.lastClick.type=="singleClick"?a="doubleClick":t.input.lastClick.type=="doubleClick"&&(a="tripleClick")),t.input.lastClick={time:r,x:n.clientX,y:n.clientY,type:a,button:n.button};let s=t.posAtCoords(vS(n));s&&(a=="singleClick"?(t.input.mouseDown&&t.input.mouseDown.done(),t.input.mouseDown=new Dbe(t,s,n,!!i)):(a=="doubleClick"?Cbe:Rbe)(t,s.pos,s.inside,n)?n.preventDefault():vu(t,"pointer"))};class Dbe{constructor(e,n,i,r){this.view=e,this.pos=n,this.event=i,this.flushed=r,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!i[G9],this.allowDefault=i.shiftKey;let a,s;if(n.inside>-1)a=e.state.doc.nodeAt(n.inside),s=n.inside;else{let d=e.state.doc.resolve(n.pos);a=d.parent,s=d.depth?d.before():0}const o=r?null:i.target,l=o?e.docView.nearestDesc(o,!0):null;this.target=l&&l.nodeDOM.nodeType==1?l.nodeDOM:null;let{selection:c}=e.state;(i.button==0&&a.type.spec.draggable&&a.type.spec.selectable!==!1||c instanceof It&&c.from<=s&&c.to>s)&&(this.mightDrag={node:a,pos:s,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&Fs&&!this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),vu(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>Xl(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let n=this.pos;this.view.state.doc!=this.startDoc&&(n=this.view.posAtCoords(vS(e))),this.updateAllowDefault(e),this.allowDefault||!n?vu(this.view,"pointer"):Tbe(this.view,n.pos,n.inside,e,this.selectNode)?e.preventDefault():e.button==0&&(this.flushed||ha&&this.mightDrag&&!this.mightDrag.node.isAtom||Qr&&!this.view.state.selection.visible&&Math.min(Math.abs(n.pos-this.view.state.selection.from),Math.abs(n.pos-this.view.state.selection.to))<=2)?(dp(this.view,Qt.near(this.view.state.doc.resolve(n.pos))),e.preventDefault()):vu(this.view,"pointer")}move(e){this.updateAllowDefault(e),vu(this.view,"pointer"),e.buttons==0&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}pa.touchstart=t=>{t.input.lastTouch=Date.now(),gD(t),vu(t,"pointer")};pa.touchmove=t=>{t.input.lastTouch=Date.now(),vu(t,"pointer")};pa.contextmenu=t=>gD(t);function $9(t,e){return t.composing?!0:ha&&Math.abs(e.timeStamp-t.input.compositionEndedAt)<500?(t.input.compositionEndedAt=-2e8,!0):!1}const Nbe=Bl?5e3:-1;ma.compositionstart=ma.compositionupdate=t=>{if(!t.composing){t.domObserver.flush();let{state:e}=t,n=e.selection.$to;if(e.selection instanceof zt&&(e.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(i=>i.type.spec.inclusive===!1)))t.markCursor=t.state.storedMarks||n.marks(),y_(t,!0),t.markCursor=null;else if(y_(t,!e.selection.empty),Fs&&e.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let i=t.domSelectionRange();for(let r=i.focusNode,a=i.focusOffset;r&&r.nodeType==1&&a!=0;){let s=a<0?r.lastChild:r.childNodes[a-1];if(!s)break;if(s.nodeType==3){let o=t.domSelection();o&&o.collapse(s,s.nodeValue.length);break}else r=s,a=-1}}t.input.composing=!0}W9(t,Nbe)};ma.compositionend=(t,e)=>{t.composing&&(t.input.composing=!1,t.input.compositionEndedAt=e.timeStamp,t.input.compositionPendingChanges=t.domObserver.pendingRecords().length?t.input.compositionID:0,t.input.compositionNode=null,t.input.compositionPendingChanges&&Promise.resolve().then(()=>t.domObserver.flush()),t.input.compositionID++,W9(t,20))};function W9(t,e){clearTimeout(t.input.composingTimeout),e>-1&&(t.input.composingTimeout=setTimeout(()=>y_(t),e))}function q9(t){for(t.composing&&(t.input.composing=!1,t.input.compositionEndedAt=Lbe());t.input.compositionNodes.length>0;)t.input.compositionNodes.pop().markParentsDirty()}function Obe(t){let e=t.domSelectionRange();if(!e.focusNode)return null;let n=Eye(e.focusNode,e.focusOffset),i=Aye(e.focusNode,e.focusOffset);if(n&&i&&n!=i){let r=i.pmViewDesc,a=t.domObserver.lastChangedTextNode;if(n==a||i==a)return a;if(!r||!r.isText(i.nodeValue))return i;if(t.input.compositionNode==i){let s=n.pmViewDesc;if(!(!s||!s.isText(n.nodeValue)))return i}}return n||i}function Lbe(){let t=document.createEvent("Event");return t.initEvent("event",!0,!0),t.timeStamp}function y_(t,e=!1){if(!(Bl&&t.domObserver.flushingSoon>=0)){if(t.domObserver.forceFlush(),q9(t),e||t.docView&&t.docView.dirty){let n=dD(t),i=t.state.selection;return n&&!n.eq(i)?t.dispatch(t.state.tr.setSelection(n)):(t.markCursor||e)&&!i.$from.node(i.$from.sharedDepth(i.to)).inlineContent?t.dispatch(t.state.tr.deleteSelection()):t.updateState(t.state),!0}return!1}}function kbe(t,e){if(!t.dom.parentNode)return;let n=t.dom.parentNode.appendChild(document.createElement("div"));n.appendChild(e),n.style.cssText="position: fixed; left: -10000px; top: 10px";let i=getSelection(),r=document.createRange();r.selectNodeContents(e),t.dom.blur(),i.removeAllRanges(),i.addRange(r),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),t.focus()},50)}const E0=Oa&&Mu<15||Rp&&Dye<604;pa.copy=ma.cut=(t,e)=>{let n=e,i=t.state.selection,r=n.type=="cut";if(i.empty)return;let a=E0?null:n.clipboardData,s=i.content(),{dom:o,text:l}=hD(t,s);a?(n.preventDefault(),a.clearData(),a.setData("text/html",o.innerHTML),a.setData("text/plain",l)):kbe(t,o),r&&t.dispatch(t.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function Ibe(t){return t.openStart==0&&t.openEnd==0&&t.content.childCount==1?t.content.firstChild:null}function Ube(t,e){if(!t.dom.parentNode)return;let n=t.input.shiftKey||t.state.selection.$from.parent.type.spec.code,i=t.dom.parentNode.appendChild(document.createElement(n?"textarea":"div"));n||(i.contentEditable="true"),i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus();let r=t.input.shiftKey&&t.input.lastKeyCode!=45;setTimeout(()=>{t.focus(),i.parentNode&&i.parentNode.removeChild(i),n?A0(t,i.value,null,r,e):A0(t,i.textContent,i.innerHTML,r,e)},50)}function A0(t,e,n,i,r){let a=F9(t,e,n,i,t.state.selection.$from);if(t.someProp("handlePaste",l=>l(t,r,a||_t.empty)))return!0;if(!a)return!1;let s=Ibe(a),o=s?t.state.tr.replaceSelectionWith(s,i):t.state.tr.replaceSelection(a);return t.dispatch(o.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function X9(t){let e=t.getData("text/plain")||t.getData("Text");if(e)return e;let n=t.getData("text/uri-list");return n?n.replace(/\r?\n/g," "):""}ma.paste=(t,e)=>{let n=e;if(t.composing&&!Bl)return;let i=E0?null:n.clipboardData,r=t.input.shiftKey&&t.input.lastKeyCode!=45;i&&A0(t,X9(i),i.getData("text/html"),r,n)?n.preventDefault():Ube(t,n)};class Y9{constructor(e,n,i){this.slice=e,this.move=n,this.node=i}}const Fbe=Ts?"altKey":"ctrlKey";function K9(t,e){let n=t.someProp("dragCopies",i=>!i(e));return n??!e[Fbe]}pa.dragstart=(t,e)=>{let n=e,i=t.input.mouseDown;if(i&&i.done(),!n.dataTransfer)return;let r=t.state.selection,a=r.empty?null:t.posAtCoords(vS(n)),s;if(!(a&&a.pos>=r.from&&a.pos<=(r instanceof It?r.to-1:r.to))){if(i&&i.mightDrag)s=It.create(t.state.doc,i.mightDrag.pos);else if(n.target&&n.target.nodeType==1){let f=t.docView.nearestDesc(n.target,!0);f&&f.node.type.spec.draggable&&f!=t.docView&&(s=It.create(t.state.doc,f.posBefore))}}let o=(s||t.state.selection).content(),{dom:l,text:c,slice:d}=hD(t,o);(!n.dataTransfer.files.length||!Qr||S9>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(E0?"Text":"text/html",l.innerHTML),n.dataTransfer.effectAllowed="copyMove",E0||n.dataTransfer.setData("text/plain",c),t.dragging=new Y9(d,K9(t,n),s)};pa.dragend=t=>{let e=t.dragging;window.setTimeout(()=>{t.dragging==e&&(t.dragging=null)},50)};ma.dragover=ma.dragenter=(t,e)=>e.preventDefault();ma.drop=(t,e)=>{let n=e,i=t.dragging;if(t.dragging=null,!n.dataTransfer)return;let r=t.posAtCoords(vS(n));if(!r)return;let a=t.state.doc.resolve(r.pos),s=i&&i.slice;s?t.someProp("transformPasted",y=>{s=y(s,t,!1)}):s=F9(t,X9(n.dataTransfer),E0?null:n.dataTransfer.getData("text/html"),!1,a);let o=!!(i&&K9(t,n));if(t.someProp("handleDrop",y=>y(t,n,s||_t.empty,o))){n.preventDefault();return}if(!s)return;n.preventDefault();let l=s?t9(t.state.doc,a.pos,s):a.pos;l==null&&(l=a.pos);let c=t.state.tr;if(o){let{node:y}=i;y?y.replace(c):c.deleteSelection()}let d=c.mapping.map(l),f=s.openStart==0&&s.openEnd==0&&s.content.childCount==1,p=c.doc;if(f?c.replaceRangeWith(d,d,s.content.firstChild):c.replaceRange(d,d,s),c.doc.eq(p))return;let m=c.doc.resolve(d);if(f&&It.isSelectable(s.content.firstChild)&&m.nodeAfter&&m.nodeAfter.sameMarkup(s.content.firstChild))c.setSelection(new It(m));else{let y=c.mapping.map(l);c.mapping.maps[c.mapping.maps.length-1].forEach((b,x,v,w)=>y=w),c.setSelection(fD(t,m,c.doc.resolve(y)))}t.focus(),t.dispatch(c.setMeta("uiEvent","drop"))};pa.focus=t=>{t.input.lastFocus=Date.now(),t.focused||(t.domObserver.stop(),t.dom.classList.add("ProseMirror-focused"),t.domObserver.start(),t.focused=!0,setTimeout(()=>{t.docView&&t.hasFocus()&&!t.domObserver.currentSelection.eq(t.domSelectionRange())&&Xl(t)},20))};pa.blur=(t,e)=>{let n=e;t.focused&&(t.domObserver.stop(),t.dom.classList.remove("ProseMirror-focused"),t.domObserver.start(),n.relatedTarget&&t.dom.contains(n.relatedTarget)&&t.domObserver.currentSelection.clear(),t.focused=!1)};pa.beforeinput=(t,e)=>{if(Qr&&Bl&&e.inputType=="deleteContentBackward"){t.domObserver.flushSoon();let{domChangeCount:i}=t.input;setTimeout(()=>{if(t.input.domChangeCount!=i||(t.dom.blur(),t.focus(),t.someProp("handleKeyDown",a=>a(t,Rd(8,"Backspace")))))return;let{$cursor:r}=t.state.selection;r&&r.pos>0&&t.dispatch(t.state.tr.delete(r.pos-1,r.pos).scrollIntoView())},50)}};for(let t in ma)pa[t]=ma[t];function T0(t,e){if(t==e)return!0;for(let n in t)if(t[n]!==e[n])return!1;for(let n in e)if(!(n in t))return!1;return!0}class b_{constructor(e,n){this.toDOM=e,this.spec=n||$d,this.side=this.spec.side||0}map(e,n,i,r){let{pos:a,deleted:s}=e.mapResult(n.from+r,this.side<0?-1:1);return s?null:new ua(a-i,a-i,this)}valid(){return!0}eq(e){return this==e||e instanceof b_&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&T0(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}}class Au{constructor(e,n){this.attrs=e,this.spec=n||$d}map(e,n,i,r){let a=e.map(n.from+r,this.spec.inclusiveStart?-1:1)-i,s=e.map(n.to+r,this.spec.inclusiveEnd?1:-1)-i;return a>=s?null:new ua(a,s,this)}valid(e,n){return n.from<n.to}eq(e){return this==e||e instanceof Au&&T0(this.attrs,e.attrs)&&T0(this.spec,e.spec)}static is(e){return e.type instanceof Au}destroy(){}}class vD{constructor(e,n){this.attrs=e,this.spec=n||$d}map(e,n,i,r){let a=e.mapResult(n.from+r,1);if(a.deleted)return null;let s=e.mapResult(n.to+r,-1);return s.deleted||s.pos<=a.pos?null:new ua(a.pos-i,s.pos-i,this)}valid(e,n){let{index:i,offset:r}=e.content.findIndex(n.from),a;return r==n.from&&!(a=e.child(i)).isText&&r+a.nodeSize==n.to}eq(e){return this==e||e instanceof vD&&T0(this.attrs,e.attrs)&&T0(this.spec,e.spec)}destroy(){}}class ua{constructor(e,n,i){this.from=e,this.to=n,this.type=i}copy(e,n){return new ua(e,n,this.type)}eq(e,n=0){return this.type.eq(e.type)&&this.from+n==e.from&&this.to+n==e.to}map(e,n,i){return this.type.map(e,this,n,i)}static widget(e,n,i){return new ua(e,e,new b_(n,i))}static inline(e,n,i,r){return new ua(e,n,new Au(i,r))}static node(e,n,i,r){return new ua(e,n,new vD(i,r))}get spec(){return this.type.spec}get inline(){return this.type instanceof Au}get widget(){return this.type instanceof b_}}const qh=[],$d={};class ai{constructor(e,n){this.local=e.length?e:qh,this.children=n.length?n:qh}static create(e,n){return n.length?__(n,e,0,$d):Kr}find(e,n,i){let r=[];return this.findInner(e??0,n??1e9,r,0,i),r}findInner(e,n,i,r,a){for(let s=0;s<this.local.length;s++){let o=this.local[s];o.from<=n&&o.to>=e&&(!a||a(o.spec))&&i.push(o.copy(o.from+r,o.to+r))}for(let s=0;s<this.children.length;s+=3)if(this.children[s]<n&&this.children[s+1]>e){let o=this.children[s]+1;this.children[s+2].findInner(e-o,n-o,i,r+o,a)}}map(e,n,i){return this==Kr||e.maps.length==0?this:this.mapInner(e,n,0,0,i||$d)}mapInner(e,n,i,r,a){let s;for(let o=0;o<this.local.length;o++){let l=this.local[o].map(e,i,r);l&&l.type.valid(n,l)?(s||(s=[])).push(l):a.onRemove&&a.onRemove(this.local[o].spec)}return this.children.length?zbe(this.children,s||[],e,n,i,r,a):s?new ai(s.sort(Wd),qh):Kr}add(e,n){return n.length?this==Kr?ai.create(e,n):this.addInner(e,n,0):this}addInner(e,n,i){let r,a=0;e.forEach((o,l)=>{let c=l+i,d;if(d=J9(n,o,c)){for(r||(r=this.children.slice());a<r.length&&r[a]<l;)a+=3;r[a]==l?r[a+2]=r[a+2].addInner(o,d,c+1):r.splice(a,0,l,l+o.nodeSize,__(d,o,c+1,$d)),a+=3}});let s=Z9(a?Q9(n):n,-i);for(let o=0;o<s.length;o++)s[o].type.valid(e,s[o])||s.splice(o--,1);return new ai(s.length?this.local.concat(s).sort(Wd):this.local,r||this.children)}remove(e){return e.length==0||this==Kr?this:this.removeInner(e,0)}removeInner(e,n){let i=this.children,r=this.local;for(let a=0;a<i.length;a+=3){let s,o=i[a]+n,l=i[a+1]+n;for(let d=0,f;d<e.length;d++)(f=e[d])&&f.from>o&&f.to<l&&(e[d]=null,(s||(s=[])).push(f));if(!s)continue;i==this.children&&(i=this.children.slice());let c=i[a+2].removeInner(s,o+1);c!=Kr?i[a+2]=c:(i.splice(a,3),a-=3)}if(r.length){for(let a=0,s;a<e.length;a++)if(s=e[a])for(let o=0;o<r.length;o++)r[o].eq(s,n)&&(r==this.local&&(r=this.local.slice()),r.splice(o--,1))}return i==this.children&&r==this.local?this:r.length||i.length?new ai(r,i):Kr}forChild(e,n){if(this==Kr)return this;if(n.isLeaf)return ai.empty;let i,r;for(let o=0;o<this.children.length;o+=3)if(this.children[o]>=e){this.children[o]==e&&(i=this.children[o+2]);break}let a=e+1,s=a+n.content.size;for(let o=0;o<this.local.length;o++){let l=this.local[o];if(l.from<s&&l.to>a&&l.type instanceof Au){let c=Math.max(a,l.from)-a,d=Math.min(s,l.to)-a;c<d&&(r||(r=[])).push(l.copy(c,d))}}if(r){let o=new ai(r.sort(Wd),qh);return i?new cu([o,i]):o}return i||Kr}eq(e){if(this==e)return!0;if(!(e instanceof ai)||this.local.length!=e.local.length||this.children.length!=e.children.length)return!1;for(let n=0;n<this.local.length;n++)if(!this.local[n].eq(e.local[n]))return!1;for(let n=0;n<this.children.length;n+=3)if(this.children[n]!=e.children[n]||this.children[n+1]!=e.children[n+1]||!this.children[n+2].eq(e.children[n+2]))return!1;return!0}locals(e){return xD(this.localsInner(e))}localsInner(e){if(this==Kr)return qh;if(e.inlineContent||!this.local.some(Au.is))return this.local;let n=[];for(let i=0;i<this.local.length;i++)this.local[i].type instanceof Au||n.push(this.local[i]);return n}forEachSet(e){e(this)}}ai.empty=new ai([],[]);ai.removeOverlap=xD;const Kr=ai.empty;class cu{constructor(e){this.members=e}map(e,n){const i=this.members.map(r=>r.map(e,n,$d));return cu.from(i)}forChild(e,n){if(n.isLeaf)return ai.empty;let i=[];for(let r=0;r<this.members.length;r++){let a=this.members[r].forChild(e,n);a!=Kr&&(a instanceof cu?i=i.concat(a.members):i.push(a))}return cu.from(i)}eq(e){if(!(e instanceof cu)||e.members.length!=this.members.length)return!1;for(let n=0;n<this.members.length;n++)if(!this.members[n].eq(e.members[n]))return!1;return!0}locals(e){let n,i=!0;for(let r=0;r<this.members.length;r++){let a=this.members[r].localsInner(e);if(a.length)if(!n)n=a;else{i&&(n=n.slice(),i=!1);for(let s=0;s<a.length;s++)n.push(a[s])}}return n?xD(i?n:n.sort(Wd)):qh}static from(e){switch(e.length){case 0:return Kr;case 1:return e[0];default:return new cu(e.every(n=>n instanceof ai)?e:e.reduce((n,i)=>n.concat(i instanceof ai?i:i.members),[]))}}forEachSet(e){for(let n=0;n<this.members.length;n++)this.members[n].forEachSet(e)}}function zbe(t,e,n,i,r,a,s){let o=t.slice();for(let c=0,d=a;c<n.maps.length;c++){let f=0;n.maps[c].forEach((p,m,y,b)=>{let x=b-y-(m-p);for(let v=0;v<o.length;v+=3){let w=o[v+1];if(w<0||p>w+d-f)continue;let M=o[v]+d-f;m>=M?o[v+1]=p<=M?-2:-1:p>=d&&x&&(o[v]+=x,o[v+1]+=x)}f+=x}),d=n.maps[c].map(d,-1)}let l=!1;for(let c=0;c<o.length;c+=3)if(o[c+1]<0){if(o[c+1]==-2){l=!0,o[c+1]=-1;continue}let d=n.map(t[c]+a),f=d-r;if(f<0||f>=i.content.size){l=!0;continue}let p=n.map(t[c+1]+a,-1),m=p-r,{index:y,offset:b}=i.content.findIndex(f),x=i.maybeChild(y);if(x&&b==f&&b+x.nodeSize==m){let v=o[c+2].mapInner(n,x,d+1,t[c]+a+1,s);v!=Kr?(o[c]=f,o[c+1]=m,o[c+2]=v):(o[c+1]=-2,l=!0)}else l=!0}if(l){let c=Bbe(o,t,e,n,r,a,s),d=__(c,i,0,s);e=d.local;for(let f=0;f<o.length;f+=3)o[f+1]<0&&(o.splice(f,3),f-=3);for(let f=0,p=0;f<d.children.length;f+=3){let m=d.children[f];for(;p<o.length&&o[p]<m;)p+=3;o.splice(p,0,d.children[f],d.children[f+1],d.children[f+2])}}return new ai(e.sort(Wd),o)}function Z9(t,e){if(!e||!t.length)return t;let n=[];for(let i=0;i<t.length;i++){let r=t[i];n.push(new ua(r.from+e,r.to+e,r.type))}return n}function Bbe(t,e,n,i,r,a,s){function o(l,c){for(let d=0;d<l.local.length;d++){let f=l.local[d].map(i,r,c);f?n.push(f):s.onRemove&&s.onRemove(l.local[d].spec)}for(let d=0;d<l.children.length;d+=3)o(l.children[d+2],l.children[d]+c+1)}for(let l=0;l<t.length;l+=3)t[l+1]==-1&&o(t[l+2],e[l]+a+1);return n}function J9(t,e,n){if(e.isLeaf)return null;let i=n+e.nodeSize,r=null;for(let a=0,s;a<t.length;a++)(s=t[a])&&s.from>n&&s.to<i&&((r||(r=[])).push(s),t[a]=null);return r}function Q9(t){let e=[];for(let n=0;n<t.length;n++)t[n]!=null&&e.push(t[n]);return e}function __(t,e,n,i){let r=[],a=!1;e.forEach((o,l)=>{let c=J9(t,o,l+n);if(c){a=!0;let d=__(c,o,n+l+1,i);d!=Kr&&r.push(l,l+o.nodeSize,d)}});let s=Z9(a?Q9(t):t,-n).sort(Wd);for(let o=0;o<s.length;o++)s[o].type.valid(e,s[o])||(i.onRemove&&i.onRemove(s[o].spec),s.splice(o--,1));return s.length||r.length?new ai(s,r):Kr}function Wd(t,e){return t.from-e.from||t.to-e.to}function xD(t){let e=t;for(let n=0;n<e.length-1;n++){let i=e[n];if(i.from!=i.to)for(let r=n+1;r<e.length;r++){let a=e[r];if(a.from==i.from){a.to!=i.to&&(e==t&&(e=t.slice()),e[r]=a.copy(a.from,i.to),t5(e,r+1,a.copy(i.to,a.to)));continue}else{a.from<i.to&&(e==t&&(e=t.slice()),e[n]=i.copy(i.from,a.from),t5(e,r,i.copy(a.from,i.to)));break}}}return e}function t5(t,e,n){for(;e<t.length&&Wd(n,t[e])>0;)e++;t.splice(e,0,n)}function dT(t){let e=[];return t.someProp("decorations",n=>{let i=n(t.state);i&&i!=Kr&&e.push(i)}),t.cursorWrapper&&e.push(ai.create(t.state.doc,[t.cursorWrapper.deco])),cu.from(e)}const jbe={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},Hbe=Oa&&Mu<=11;class Vbe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}class Gbe{constructor(e,n){this.view=e,this.handleDOMChange=n,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new Vbe,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(i=>{for(let r=0;r<i.length;r++)this.queue.push(i[r]);Oa&&Mu<=11&&i.some(r=>r.type=="childList"&&r.removedNodes.length||r.type=="characterData"&&r.oldValue.length>r.target.nodeValue.length)?this.flushSoon():this.flush()}),Hbe&&(this.onCharData=i=>{this.queue.push({target:i.target,type:"characterData",oldValue:i.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,jbe)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let n=0;n<e.length;n++)this.queue.push(e[n]);window.setTimeout(()=>this.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(qB(this.view)){if(this.suppressingSelectionUpdates)return Xl(this.view);if(Oa&&Mu<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&hf(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let n=new Set,i;for(let a=e.focusNode;a;a=Cp(a))n.add(a);for(let a=e.anchorNode;a;a=Cp(a))if(n.has(a)){i=a;break}let r=i&&this.view.docView.nearestDesc(i);if(r&&r.ignoreMutation({type:"selection",target:i.nodeType==3?i.parentNode:i}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let n=this.pendingRecords();n.length&&(this.queue=[]);let i=e.domSelectionRange(),r=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(i)&&qB(e)&&!this.ignoreSelectionChange(i),a=-1,s=-1,o=!1,l=[];if(e.editable)for(let d=0;d<n.length;d++){let f=this.registerMutation(n[d],l);f&&(a=a<0?f.from:Math.min(f.from,a),s=s<0?f.to:Math.max(f.to,s),f.typeOver&&(o=!0))}if(Fs&&l.length){let d=l.filter(f=>f.nodeName=="BR");if(d.length==2){let[f,p]=d;f.parentNode&&f.parentNode.parentNode==p.parentNode?p.remove():f.remove()}else{let{focusNode:f}=this.currentSelection;for(let p of d){let m=p.parentNode;m&&m.nodeName=="LI"&&(!f||qbe(e,f)!=m)&&p.remove()}}}let c=null;a<0&&r&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)<Date.now()-300&&mS(i)&&(c=dD(e))&&c.eq(Qt.near(e.state.doc.resolve(0),1))?(e.input.lastFocus=0,Xl(e),this.currentSelection.set(i),e.scrollToSelection()):(a>-1||r)&&(a>-1&&(e.docView.markDirty(a,s),$be(e)),this.handleDOMChange(a,s,o,l),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(i)||Xl(e),this.currentSelection.set(i))}registerMutation(e,n){if(n.indexOf(e.target)>-1)return null;let i=this.view.docView.nearestDesc(e.target);if(e.type=="attributes"&&(i==this.view.docView||e.attributeName=="contenteditable"||e.attributeName=="style"&&!e.oldValue&&!e.target.getAttribute("style"))||!i||i.ignoreMutation(e))return null;if(e.type=="childList"){for(let d=0;d<e.addedNodes.length;d++){let f=e.addedNodes[d];n.push(f),f.nodeType==3&&(this.lastChangedTextNode=f)}if(i.contentDOM&&i.contentDOM!=i.dom&&!i.contentDOM.contains(e.target))return{from:i.posBefore,to:i.posAfter};let r=e.previousSibling,a=e.nextSibling;if(Oa&&Mu<=11&&e.addedNodes.length)for(let d=0;d<e.addedNodes.length;d++){let{previousSibling:f,nextSibling:p}=e.addedNodes[d];(!f||Array.prototype.indexOf.call(e.addedNodes,f)<0)&&(r=f),(!p||Array.prototype.indexOf.call(e.addedNodes,p)<0)&&(a=p)}let s=r&&r.parentNode==e.target?zr(r)+1:0,o=i.localPosFromDOM(e.target,s,-1),l=a&&a.parentNode==e.target?zr(a):e.target.childNodes.length,c=i.localPosFromDOM(e.target,l,1);return{from:o,to:c}}else return e.type=="attributes"?{from:i.posAtStart-i.border,to:i.posAtEnd+i.border}:(this.lastChangedTextNode=e.target,{from:i.posAtStart,to:i.posAtEnd,typeOver:e.target.nodeValue==e.oldValue})}}let n5=new WeakMap,i5=!1;function $be(t){if(!n5.has(t)&&(n5.set(t,null),["normal","nowrap","pre-line"].indexOf(getComputedStyle(t.dom).whiteSpace)!==-1)){if(t.requiresGeckoHackNode=Fs,i5)return;console.warn("ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package."),i5=!0}}function r5(t,e){let n=e.startContainer,i=e.startOffset,r=e.endContainer,a=e.endOffset,s=t.domAtPos(t.state.selection.anchor);return hf(s.node,s.offset,r,a)&&([n,i,r,a]=[r,a,n,i]),{anchorNode:n,anchorOffset:i,focusNode:r,focusOffset:a}}function Wbe(t,e){if(e.getComposedRanges){let r=e.getComposedRanges(t.root)[0];if(r)return r5(t,r)}let n;function i(r){r.preventDefault(),r.stopImmediatePropagation(),n=r.getTargetRanges()[0]}return t.dom.addEventListener("beforeinput",i,!0),document.execCommand("indent"),t.dom.removeEventListener("beforeinput",i,!0),n?r5(t,n):null}function qbe(t,e){for(let n=e.parentNode;n&&n!=t.dom;n=n.parentNode){let i=t.docView.nearestDesc(n,!0);if(i&&i.node.isBlock)return n}return null}function Xbe(t,e,n){let{node:i,fromOffset:r,toOffset:a,from:s,to:o}=t.docView.parseRange(e,n),l=t.domSelectionRange(),c,d=l.anchorNode;if(d&&t.dom.contains(d.nodeType==1?d:d.parentNode)&&(c=[{node:d,offset:l.anchorOffset}],mS(l)||c.push({node:l.focusNode,offset:l.focusOffset})),Qr&&t.input.lastKeyCode===8)for(let x=a;x>r;x--){let v=i.childNodes[x-1],w=v.pmViewDesc;if(v.nodeName=="BR"&&!w){a=x;break}if(!w||w.size)break}let f=t.state.doc,p=t.someProp("domParser")||Wg.fromSchema(t.state.schema),m=f.resolve(s),y=null,b=p.parse(i,{topNode:m.parent,topMatch:m.parent.contentMatchAt(m.index()),topOpen:!0,from:r,to:a,preserveWhitespace:m.parent.type.whitespace=="pre"?"full":!0,findPositions:c,ruleFromNode:Ybe,context:m});if(c&&c[0].pos!=null){let x=c[0].pos,v=c[1]&&c[1].pos;v==null&&(v=x),y={anchor:x+s,head:v+s}}return{doc:b,sel:y,from:s,to:o}}function Ybe(t){let e=t.pmViewDesc;if(e)return e.parseRule();if(t.nodeName=="BR"&&t.parentNode){if(ha&&/^(ul|ol)$/i.test(t.parentNode.nodeName)){let n=document.createElement("div");return n.appendChild(document.createElement("li")),{skip:n}}else if(t.parentNode.lastChild==t||ha&&/^(tr|table)$/i.test(t.parentNode.nodeName))return{ignore:!0}}else if(t.nodeName=="IMG"&&t.getAttribute("mark-placeholder"))return{ignore:!0};return null}const Kbe=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function Zbe(t,e,n,i,r){let a=t.input.compositionPendingChanges||(t.composing?t.input.compositionID:0);if(t.input.compositionPendingChanges=0,e<0){let C=t.input.lastSelectionTime>Date.now()-50?t.input.lastSelectionOrigin:null,U=dD(t,C);if(U&&!t.state.selection.eq(U)){if(Qr&&Bl&&t.input.lastKeyCode===13&&Date.now()-100<t.input.lastKeyCodeTime&&t.someProp("handleKeyDown",k=>k(t,Rd(13,"Enter"))))return;let P=t.state.tr.setSelection(U);C=="pointer"?P.setMeta("pointer",!0):C=="key"&&P.scrollIntoView(),a&&P.setMeta("composition",a),t.dispatch(P)}return}let s=t.state.doc.resolve(e),o=s.sharedDepth(n);e=s.before(o+1),n=t.state.doc.resolve(n).after(o+1);let l=t.state.selection,c=Xbe(t,e,n),d=t.state.doc,f=d.slice(c.from,c.to),p,m;t.input.lastKeyCode===8&&Date.now()-100<t.input.lastKeyCodeTime?(p=t.state.selection.to,m="end"):(p=t.state.selection.from,m="start"),t.input.lastKeyCode=null;let y=e_e(f.content,c.doc.content,c.from,p,m);if(y&&t.input.domChangeCount++,(Rp&&t.input.lastIOSEnter>Date.now()-225||Bl)&&r.some(C=>C.nodeType==1&&!Kbe.test(C.nodeName))&&(!y||y.endA>=y.endB)&&t.someProp("handleKeyDown",C=>C(t,Rd(13,"Enter")))){t.input.lastIOSEnter=0;return}if(!y)if(i&&l instanceof zt&&!l.empty&&l.$head.sameParent(l.$anchor)&&!t.composing&&!(c.sel&&c.sel.anchor!=c.sel.head))y={start:l.from,endA:l.to,endB:l.to};else{if(c.sel){let C=a5(t,t.state.doc,c.sel);if(C&&!C.eq(t.state.selection)){let U=t.state.tr.setSelection(C);a&&U.setMeta("composition",a),t.dispatch(U)}}return}t.state.selection.from<t.state.selection.to&&y.start==y.endB&&t.state.selection instanceof zt&&(y.start>t.state.selection.from&&y.start<=t.state.selection.from+2&&t.state.selection.from>=c.from?y.start=t.state.selection.from:y.endA<t.state.selection.to&&y.endA>=t.state.selection.to-2&&t.state.selection.to<=c.to&&(y.endB+=t.state.selection.to-y.endA,y.endA=t.state.selection.to)),Oa&&Mu<=11&&y.endB==y.start+1&&y.endA==y.start&&y.start>c.from&&c.doc.textBetween(y.start-c.from-1,y.start-c.from+1)==" "&&(y.start--,y.endA--,y.endB--);let b=c.doc.resolveNoCache(y.start-c.from),x=c.doc.resolveNoCache(y.endB-c.from),v=d.resolve(y.start),w=b.sameParent(x)&&b.parent.inlineContent&&v.end()>=y.endA;if((Rp&&t.input.lastIOSEnter>Date.now()-225&&(!w||r.some(C=>C.nodeName=="DIV"||C.nodeName=="P"))||!w&&b.pos<c.doc.content.size&&(!b.sameParent(x)||!b.parent.inlineContent)&&b.pos<x.pos&&!/\S/.test(c.doc.textBetween(b.pos,x.pos,"","")))&&t.someProp("handleKeyDown",C=>C(t,Rd(13,"Enter")))){t.input.lastIOSEnter=0;return}if(t.state.selection.anchor>y.start&&Qbe(d,y.start,y.endA,b,x)&&t.someProp("handleKeyDown",C=>C(t,Rd(8,"Backspace")))){Bl&&Qr&&t.domObserver.suppressSelectionUpdates();return}Qr&&y.endB==y.start&&(t.input.lastChromeDelete=Date.now()),Bl&&!w&&b.start()!=x.start()&&x.parentOffset==0&&b.depth==x.depth&&c.sel&&c.sel.anchor==c.sel.head&&c.sel.head==y.endA&&(y.endB-=2,x=c.doc.resolveNoCache(y.endB-c.from),setTimeout(()=>{t.someProp("handleKeyDown",function(C){return C(t,Rd(13,"Enter"))})},20));let M=y.start,A=y.endA,T=C=>{let U=C||t.state.tr.replace(M,A,c.doc.slice(y.start-c.from,y.endB-c.from));if(c.sel){let P=a5(t,U.doc,c.sel);P&&!(Qr&&t.composing&&P.empty&&(y.start!=y.endB||t.input.lastChromeDelete<Date.now()-100)&&(P.head==M||P.head==U.mapping.map(A)-1)||Oa&&P.empty&&P.head==M)&&U.setSelection(P)}return a&&U.setMeta("composition",a),U.scrollIntoView()},D;if(w)if(b.pos==x.pos){Oa&&Mu<=11&&b.parentOffset==0&&(t.domObserver.suppressSelectionUpdates(),setTimeout(()=>Xl(t),20));let C=T(t.state.tr.delete(M,A)),U=d.resolve(y.start).marksAcross(d.resolve(y.endA));U&&C.ensureMarks(U),t.dispatch(C)}else if(y.endA==y.endB&&(D=Jbe(b.parent.content.cut(b.parentOffset,x.parentOffset),v.parent.content.cut(v.parentOffset,y.endA-v.start())))){let C=T(t.state.tr);D.type=="add"?C.addMark(M,A,D.mark):C.removeMark(M,A,D.mark),t.dispatch(C)}else if(b.parent.child(b.index()).isText&&b.index()==x.index()-(x.textOffset?0:1)){let C=b.parent.textBetween(b.parentOffset,x.parentOffset),U=()=>T(t.state.tr.insertText(C,M,A));t.someProp("handleTextInput",P=>P(t,M,A,C,U))||t.dispatch(U())}else t.dispatch(T());else t.dispatch(T())}function a5(t,e,n){return Math.max(n.anchor,n.head)>e.content.size?null:fD(t,e.resolve(n.anchor),e.resolve(n.head))}function Jbe(t,e){let n=t.firstChild.marks,i=e.firstChild.marks,r=n,a=i,s,o,l;for(let d=0;d<i.length;d++)r=i[d].removeFromSet(r);for(let d=0;d<n.length;d++)a=n[d].removeFromSet(a);if(r.length==1&&a.length==0)o=r[0],s="add",l=d=>d.mark(o.addToSet(d.marks));else if(r.length==0&&a.length==1)o=a[0],s="remove",l=d=>d.mark(o.removeFromSet(d.marks));else return null;let c=[];for(let d=0;d<e.childCount;d++)c.push(l(e.child(d)));if(lt.from(c).eq(t))return{mark:o,type:s}}function Qbe(t,e,n,i,r){if(n-e<=r.pos-i.pos||fT(i,!0,!1)<r.pos)return!1;let a=t.resolve(e);if(!i.parent.isTextblock){let o=a.nodeAfter;return o!=null&&n==e+o.nodeSize}if(a.parentOffset<a.parent.content.size||!a.parent.isTextblock)return!1;let s=t.resolve(fT(a,!0,!0));return!s.parent.isTextblock||s.pos>n||fT(s,!0,!1)<n?!1:i.parent.content.cut(i.parentOffset).eq(s.parent.content)}function fT(t,e,n){let i=t.depth,r=e?t.end():t.pos;for(;i>0&&(e||t.indexAfter(i)==t.node(i).childCount);)i--,r++,e=!1;if(n){let a=t.node(i).maybeChild(t.indexAfter(i));for(;a&&!a.isLeaf;)a=a.firstChild,r++}return r}function e_e(t,e,n,i,r){let a=t.findDiffStart(e,n);if(a==null)return null;let{a:s,b:o}=t.findDiffEnd(e,n+t.size,n+e.size);if(r=="end"){let l=Math.max(0,a-Math.min(s,o));i-=s+l-a}if(s<a&&t.size<e.size){let l=i<=a&&i>=s?a-i:0;a-=l,a&&a<e.size&&s5(e.textBetween(a-1,a+1))&&(a+=l?1:-1),o=a+(o-s),s=a}else if(o<a){let l=i<=a&&i>=o?a-i:0;a-=l,a&&a<t.size&&s5(t.textBetween(a-1,a+1))&&(a+=l?1:-1),s=a+(s-o),o=a}return{start:a,endA:s,endB:o}}function s5(t){if(t.length!=2)return!1;let e=t.charCodeAt(0),n=t.charCodeAt(1);return e>=56320&&e<=57343&&n>=55296&&n<=56319}class eW{constructor(e,n){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new ybe,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=n,this.state=n.state,this.directPlugins=n.plugins||[],this.directPlugins.forEach(d5),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):typeof e=="function"?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=c5(this),l5(this),this.nodeViews=u5(this),this.docView=jB(this.state.doc,o5(this),dT(this),this.dom,this),this.domObserver=new Gbe(this,(i,r,a,s)=>Zbe(this,i,r,a,s)),this.domObserver.start(),bbe(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let n in e)this._props[n]=e[n];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&VR(this);let n=this._props;this._props=e,e.plugins&&(e.plugins.forEach(d5),this.directPlugins=e.plugins),this.updateStateInner(e.state,n)}setProps(e){let n={};for(let i in this._props)n[i]=this._props[i];n.state=this.state;for(let i in e)n[i]=e[i];this.update(n)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,n){var i;let r=this.state,a=!1,s=!1;e.storedMarks&&this.composing&&(q9(this),s=!0),this.state=e;let o=r.plugins!=e.plugins||this._props.plugins!=n.plugins;if(o||this._props.plugins!=n.plugins||this._props.nodeViews!=n.nodeViews){let m=u5(this);n_e(m,this.nodeViews)&&(this.nodeViews=m,a=!0)}(o||n.handleDOMEvents!=this._props.handleDOMEvents)&&VR(this),this.editable=c5(this),l5(this);let l=dT(this),c=o5(this),d=r.plugins!=e.plugins&&!r.doc.eq(e.doc)?"reset":e.scrollToSelection>r.scrollToSelection?"to selection":"preserve",f=a||!this.docView.matchesNode(e.doc,c,l);(f||!e.selection.eq(r.selection))&&(s=!0);let p=d=="preserve"&&s&&this.dom.style.overflowAnchor==null&&Lye(this);if(s){this.domObserver.stop();let m=f&&(Oa||Qr)&&!this.composing&&!r.selection.empty&&!e.selection.empty&&t_e(r.selection,e.selection);if(f){let y=Qr?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=Obe(this)),(a||!this.docView.update(e.doc,c,l,this))&&(this.docView.updateOuterDeco(c),this.docView.destroy(),this.docView=jB(e.doc,c,l,this.dom,this)),y&&!this.trackWrites&&(m=!0)}m||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&rbe(this))?Xl(this,m):(k9(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(r),!((i=this.dragging)===null||i===void 0)&&i.node&&!r.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,r),d=="reset"?this.dom.scrollTop=0:d=="to selection"?this.scrollToSelection():p&&kye(p)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(!(!e||!this.dom.contains(e.nodeType==1?e:e.parentNode))){if(!this.someProp("handleScrollToSelection",n=>n(this)))if(this.state.selection instanceof It){let n=this.docView.domAfterPos(this.state.selection.from);n.nodeType==1&&kB(this,n.getBoundingClientRect(),e)}else kB(this,this.coordsAtPos(this.state.selection.head,1),e)}}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(!e||e.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let n=0;n<this.directPlugins.length;n++){let i=this.directPlugins[n];i.spec.view&&this.pluginViews.push(i.spec.view(this))}for(let n=0;n<this.state.plugins.length;n++){let i=this.state.plugins[n];i.spec.view&&this.pluginViews.push(i.spec.view(this))}}else for(let n=0;n<this.pluginViews.length;n++){let i=this.pluginViews[n];i.update&&i.update(this,e)}}updateDraggedNode(e,n){let i=e.node,r=-1;if(this.state.doc.nodeAt(i.from)==i.node)r=i.from;else{let a=i.from+(this.state.doc.content.size-n.doc.content.size);(a>0&&this.state.doc.nodeAt(a))==i.node&&(r=a)}this.dragging=new Y9(e.slice,e.move,r<0?void 0:It.create(this.state.doc,r))}someProp(e,n){let i=this._props&&this._props[e],r;if(i!=null&&(r=n?n(i):i))return r;for(let s=0;s<this.directPlugins.length;s++){let o=this.directPlugins[s].props[e];if(o!=null&&(r=n?n(o):o))return r}let a=this.state.plugins;if(a)for(let s=0;s<a.length;s++){let o=a[s].props[e];if(o!=null&&(r=n?n(o):o))return r}}hasFocus(){if(Oa){let e=this.root.activeElement;if(e==this.dom)return!0;if(!e||!this.dom.contains(e))return!1;for(;e&&this.dom!=e&&this.dom.contains(e);){if(e.contentEditable=="false")return!1;e=e.parentElement}return!0}return this.root.activeElement==this.dom}focus(){this.domObserver.stop(),this.editable&&Iye(this.dom),Xl(this),this.domObserver.start()}get root(){let e=this._root;if(e==null){for(let n=this.dom.parentNode;n;n=n.parentNode)if(n.nodeType==9||n.nodeType==11&&n.host)return n.getSelection||(Object.getPrototypeOf(n).getSelection=()=>n.ownerDocument.getSelection()),this._root=n}return e||document}updateRoot(){this._root=null}posAtCoords(e){return jye(this,e)}coordsAtPos(e,n=1){return T9(this,e,n)}domAtPos(e,n=0){return this.docView.domFromPos(e,n)}nodeDOM(e){let n=this.docView.descAt(e);return n?n.nodeDOM:null}posAtDOM(e,n,i=-1){let r=this.docView.posFromDOM(e,n,i);if(r==null)throw new RangeError("DOM position not inside the editor");return r}endOfTextblock(e,n){return Wye(this,n||this.state,e)}pasteHTML(e,n){return A0(this,"",e,!1,n||new ClipboardEvent("paste"))}pasteText(e,n){return A0(this,e,null,!0,n||new ClipboardEvent("paste"))}serializeForClipboard(e){return hD(this,e)}destroy(){this.docView&&(_be(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],dT(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,wye())}get isDestroyed(){return this.docView==null}dispatchEvent(e){return wbe(this,e)}domSelectionRange(){let e=this.domSelection();return e?ha&&this.root.nodeType===11&&Cye(this.dom.ownerDocument)==this.dom&&Wbe(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}}eW.prototype.dispatch=function(t){let e=this._props.dispatchTransaction;e?e.call(this,t):this.updateState(this.state.apply(t))};function o5(t){let e=Object.create(null);return e.class="ProseMirror",e.contenteditable=String(t.editable),t.someProp("attributes",n=>{if(typeof n=="function"&&(n=n(t.state)),n)for(let i in n)i=="class"?e.class+=" "+n[i]:i=="style"?e.style=(e.style?e.style+";":"")+n[i]:!e[i]&&i!="contenteditable"&&i!="nodeName"&&(e[i]=String(n[i]))}),e.translate||(e.translate="no"),[ua.node(0,t.state.doc.content.size,e)]}function l5(t){if(t.markCursor){let e=document.createElement("img");e.className="ProseMirror-separator",e.setAttribute("mark-placeholder","true"),e.setAttribute("alt",""),t.cursorWrapper={dom:e,deco:ua.widget(t.state.selection.from,e,{raw:!0,marks:t.markCursor})}}else t.cursorWrapper=null}function c5(t){return!t.someProp("editable",e=>e(t.state)===!1)}function t_e(t,e){let n=Math.min(t.$anchor.sharedDepth(t.head),e.$anchor.sharedDepth(e.head));return t.$anchor.start(n)!=e.$anchor.start(n)}function u5(t){let e=Object.create(null);function n(i){for(let r in i)Object.prototype.hasOwnProperty.call(e,r)||(e[r]=i[r])}return t.someProp("nodeViews",n),t.someProp("markViews",n),e}function n_e(t,e){let n=0,i=0;for(let r in t){if(t[r]!=e[r])return!0;n++}for(let r in e)i++;return n!=i}function d5(t){if(t.spec.state||t.spec.filterTransaction||t.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}var Nu={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},S_={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},i_e=typeof navigator<"u"&&/Mac/.test(navigator.platform),r_e=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Br=0;Br<10;Br++)Nu[48+Br]=Nu[96+Br]=String(Br);for(var Br=1;Br<=24;Br++)Nu[Br+111]="F"+Br;for(var Br=65;Br<=90;Br++)Nu[Br]=String.fromCharCode(Br+32),S_[Br]=String.fromCharCode(Br);for(var hT in Nu)S_.hasOwnProperty(hT)||(S_[hT]=Nu[hT]);function a_e(t){var e=i_e&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||r_e&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",n=!e&&t.key||(t.shiftKey?S_:Nu)[t.keyCode]||t.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}const s_e=typeof navigator<"u"&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),o_e=typeof navigator<"u"&&/Win/.test(navigator.platform);function l_e(t){let e=t.split(/-(?!$)/),n=e[e.length-1];n=="Space"&&(n=" ");let i,r,a,s;for(let o=0;o<e.length-1;o++){let l=e[o];if(/^(cmd|meta|m)$/i.test(l))s=!0;else if(/^a(lt)?$/i.test(l))i=!0;else if(/^(c|ctrl|control)$/i.test(l))r=!0;else if(/^s(hift)?$/i.test(l))a=!0;else if(/^mod$/i.test(l))s_e?s=!0:r=!0;else throw new Error("Unrecognized modifier name: "+l)}return i&&(n="Alt-"+n),r&&(n="Ctrl-"+n),s&&(n="Meta-"+n),a&&(n="Shift-"+n),n}function c_e(t){let e=Object.create(null);for(let n in t)e[l_e(n)]=t[n];return e}function pT(t,e,n=!0){return e.altKey&&(t="Alt-"+t),e.ctrlKey&&(t="Ctrl-"+t),e.metaKey&&(t="Meta-"+t),n&&e.shiftKey&&(t="Shift-"+t),t}function u_e(t){return new li({props:{handleKeyDown:tW(t)}})}function tW(t){let e=c_e(t);return function(n,i){let r=a_e(i),a,s=e[pT(r,i)];if(s&&s(n.state,n.dispatch,n))return!0;if(r.length==1&&r!=" "){if(i.shiftKey){let o=e[pT(r,i,!1)];if(o&&o(n.state,n.dispatch,n))return!0}if((i.altKey||i.metaKey||i.ctrlKey)&&!(o_e&&i.ctrlKey&&i.altKey)&&(a=Nu[i.keyCode])&&a!=r){let o=e[pT(a,i)];if(o&&o(n.state,n.dispatch,n))return!0}}return!1}}var d_e=Object.defineProperty,yD=(t,e)=>{for(var n in e)d_e(t,n,{get:e[n],enumerable:!0})};function xS(t){const{state:e,transaction:n}=t;let{selection:i}=n,{doc:r}=n,{storedMarks:a}=n;return{...e,apply:e.apply.bind(e),applyTransaction:e.applyTransaction.bind(e),plugins:e.plugins,schema:e.schema,reconfigure:e.reconfigure.bind(e),toJSON:e.toJSON.bind(e),get storedMarks(){return a},get selection(){return i},get doc(){return r},get tr(){return i=n.selection,r=n.doc,a=n.storedMarks,n}}}var yS=class{constructor(t){this.editor=t.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=t.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){const{rawCommands:t,editor:e,state:n}=this,{view:i}=e,{tr:r}=n,a=this.buildProps(r);return Object.fromEntries(Object.entries(t).map(([s,o])=>[s,(...c)=>{const d=o(...c)(a);return!r.getMeta("preventDispatch")&&!this.hasCustomState&&i.dispatch(r),d}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(t,e=!0){const{rawCommands:n,editor:i,state:r}=this,{view:a}=i,s=[],o=!!t,l=t||r.tr,c=()=>(!o&&e&&!l.getMeta("preventDispatch")&&!this.hasCustomState&&a.dispatch(l),s.every(f=>f===!0)),d={...Object.fromEntries(Object.entries(n).map(([f,p])=>[f,(...y)=>{const b=this.buildProps(l,e),x=p(...y)(b);return s.push(x),d}])),run:c};return d}createCan(t){const{rawCommands:e,state:n}=this,i=!1,r=t||n.tr,a=this.buildProps(r,i);return{...Object.fromEntries(Object.entries(e).map(([o,l])=>[o,(...c)=>l(...c)({...a,dispatch:void 0})])),chain:()=>this.createChain(r,i)}}buildProps(t,e=!0){const{rawCommands:n,editor:i,state:r}=this,{view:a}=i,s={tr:t,editor:i,view:a,state:xS({state:r,transaction:t}),dispatch:e?()=>{}:void 0,chain:()=>this.createChain(t,e),can:()=>this.createCan(t),get commands(){return Object.fromEntries(Object.entries(n).map(([o,l])=>[o,(...c)=>l(...c)(s)]))}};return s}},nW={};yD(nW,{blur:()=>f_e,clearContent:()=>h_e,clearNodes:()=>p_e,command:()=>m_e,createParagraphNear:()=>g_e,cut:()=>v_e,deleteCurrentNode:()=>x_e,deleteNode:()=>y_e,deleteRange:()=>b_e,deleteSelection:()=>__e,enter:()=>S_e,exitCode:()=>w_e,extendMarkRange:()=>M_e,first:()=>E_e,focus:()=>T_e,forEach:()=>C_e,insertContent:()=>R_e,insertContentAt:()=>N_e,joinBackward:()=>k_e,joinDown:()=>L_e,joinForward:()=>I_e,joinItemBackward:()=>U_e,joinItemForward:()=>F_e,joinTextblockBackward:()=>z_e,joinTextblockForward:()=>B_e,joinUp:()=>O_e,keyboardShortcut:()=>H_e,lift:()=>V_e,liftEmptyBlock:()=>G_e,liftListItem:()=>$_e,newlineInCode:()=>W_e,resetAttributes:()=>q_e,scrollIntoView:()=>X_e,selectAll:()=>Y_e,selectNodeBackward:()=>K_e,selectNodeForward:()=>Z_e,selectParentNode:()=>J_e,selectTextblockEnd:()=>Q_e,selectTextblockStart:()=>e1e,setContent:()=>t1e,setMark:()=>y1e,setMeta:()=>b1e,setNode:()=>_1e,setNodeSelection:()=>S1e,setTextDirection:()=>w1e,setTextSelection:()=>M1e,sinkListItem:()=>E1e,splitBlock:()=>A1e,splitListItem:()=>T1e,toggleList:()=>C1e,toggleMark:()=>R1e,toggleNode:()=>P1e,toggleWrap:()=>D1e,undoInputRule:()=>N1e,unsetAllMarks:()=>O1e,unsetMark:()=>L1e,unsetTextDirection:()=>k1e,updateAttributes:()=>I1e,wrapIn:()=>U1e,wrapInList:()=>F1e});var f_e=()=>({editor:t,view:e})=>(requestAnimationFrame(()=>{var n;t.isDestroyed||(e.dom.blur(),(n=window?.getSelection())==null||n.removeAllRanges())}),!0),h_e=(t=!0)=>({commands:e})=>e.setContent("",{emitUpdate:t}),p_e=()=>({state:t,tr:e,dispatch:n})=>{const{selection:i}=e,{ranges:r}=i;return n&&r.forEach(({$from:a,$to:s})=>{t.doc.nodesBetween(a.pos,s.pos,(o,l)=>{if(o.type.isText)return;const{doc:c,mapping:d}=e,f=c.resolve(d.map(l)),p=c.resolve(d.map(l+o.nodeSize)),m=f.blockRange(p);if(!m)return;const y=Qp(m);if(o.type.isTextblock){const{defaultType:b}=f.parent.contentMatchAt(f.index());e.setNodeMarkup(m.start,b)}(y||y===0)&&e.lift(m,y)})}),!0},m_e=t=>e=>t(e),g_e=()=>({state:t,dispatch:e})=>v9(t,e),v_e=(t,e)=>({editor:n,tr:i})=>{const{state:r}=n,a=r.doc.slice(t.from,t.to);i.deleteRange(t.from,t.to);const s=i.mapping.map(e);return i.insert(s,a.content),i.setSelection(new zt(i.doc.resolve(Math.max(s-1,0)))),!0},x_e=()=>({tr:t,dispatch:e})=>{const{selection:n}=t,i=n.$anchor.node();if(i.content.size>0)return!1;const r=t.selection.$anchor;for(let a=r.depth;a>0;a-=1)if(r.node(a).type===i.type){if(e){const o=r.before(a),l=r.after(a);t.delete(o,l).scrollIntoView()}return!0}return!1};function Hi(t,e){if(typeof t=="string"){if(!e.nodes[t])throw Error(`There is no node type named '${t}'. Maybe you forgot to add the extension?`);return e.nodes[t]}return t}var y_e=t=>({tr:e,state:n,dispatch:i})=>{const r=Hi(t,n.schema),a=e.selection.$anchor;for(let s=a.depth;s>0;s-=1)if(a.node(s).type===r){if(i){const l=a.before(s),c=a.after(s);e.delete(l,c).scrollIntoView()}return!0}return!1},b_e=t=>({tr:e,dispatch:n})=>{const{from:i,to:r}=t;return n&&e.delete(i,r),!0},__e=()=>({state:t,dispatch:e})=>aD(t,e),S_e=()=>({commands:t})=>t.keyboardShortcut("Enter"),w_e=()=>({state:t,dispatch:e})=>lye(t,e);function bD(t){return Object.prototype.toString.call(t)==="[object RegExp]"}function w_(t,e,n={strict:!0}){const i=Object.keys(e);return i.length?i.every(r=>n.strict?e[r]===t[r]:bD(e[r])?e[r].test(t[r]):e[r]===t[r]):!0}function iW(t,e,n={}){return t.find(i=>i.type===e&&w_(Object.fromEntries(Object.keys(n).map(r=>[r,i.attrs[r]])),n))}function f5(t,e,n={}){return!!iW(t,e,n)}function _D(t,e,n){var i;if(!t||!e)return;let r=t.parent.childAfter(t.parentOffset);if((!r.node||!r.node.marks.some(d=>d.type===e))&&(r=t.parent.childBefore(t.parentOffset)),!r.node||!r.node.marks.some(d=>d.type===e)||(n=n||((i=r.node.marks[0])==null?void 0:i.attrs),!iW([...r.node.marks],e,n)))return;let s=r.index,o=t.start()+r.offset,l=s+1,c=o+r.node.nodeSize;for(;s>0&&f5([...t.parent.child(s-1).marks],e,n);)s-=1,o-=t.parent.child(s).nodeSize;for(;l<t.parent.childCount&&f5([...t.parent.child(l).marks],e,n);)c+=t.parent.child(l).nodeSize,l+=1;return{from:o,to:c}}function oc(t,e){if(typeof t=="string"){if(!e.marks[t])throw Error(`There is no mark type named '${t}'. Maybe you forgot to add the extension?`);return e.marks[t]}return t}var M_e=(t,e={})=>({tr:n,state:i,dispatch:r})=>{const a=oc(t,i.schema),{doc:s,selection:o}=n,{$from:l,from:c,to:d}=o;if(r){const f=_D(l,a,e);if(f&&f.from<=c&&f.to>=d){const p=zt.create(s,f.from,f.to);n.setSelection(p)}}return!0},E_e=t=>e=>{const n=typeof t=="function"?t(e):t;for(let i=0;i<n.length;i+=1)if(n[i](e))return!0;return!1};function rW(t){return t instanceof zt}function Ld(t=0,e=0,n=0){return Math.min(Math.max(t,e),n)}function aW(t,e=null){if(!e)return null;const n=Qt.atStart(t),i=Qt.atEnd(t);if(e==="start"||e===!0)return n;if(e==="end")return i;const r=n.from,a=i.to;return e==="all"?zt.create(t,Ld(0,r,a),Ld(t.content.size,r,a)):zt.create(t,Ld(e,r,a),Ld(e,r,a))}function A_e(){return navigator.platform==="Android"||/android/i.test(navigator.userAgent)}function SD(){return["iPad Simulator","iPhone Simulator","iPod Simulator","iPad","iPhone","iPod"].includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document}var T_e=(t=null,e={})=>({editor:n,view:i,tr:r,dispatch:a})=>{e={scrollIntoView:!0,...e};const s=()=>{(SD()||A_e())&&i.dom.focus(),requestAnimationFrame(()=>{n.isDestroyed||(i.focus(),e?.scrollIntoView&&n.commands.scrollIntoView())})};if(i.hasFocus()&&t===null||t===!1)return!0;if(a&&t===null&&!rW(n.state.selection))return s(),!0;const o=aW(r.doc,t)||n.state.selection,l=n.state.selection.eq(o);return a&&(l||r.setSelection(o),l&&r.storedMarks&&r.setStoredMarks(r.storedMarks),s()),!0},C_e=(t,e)=>n=>t.every((i,r)=>e(i,{...n,index:r})),R_e=(t,e)=>({tr:n,commands:i})=>i.insertContentAt({from:n.selection.from,to:n.selection.to},t,e),sW=t=>{const e=t.childNodes;for(let n=e.length-1;n>=0;n-=1){const i=e[n];i.nodeType===3&&i.nodeValue&&/^(\n\s\s|\n)$/.test(i.nodeValue)?t.removeChild(i):i.nodeType===1&&sW(i)}return t};function Zy(t){if(typeof window>"u")throw new Error("[tiptap error]: there is no window object available, so this function cannot be used");const e=`<body>${t}</body>`,n=new window.DOMParser().parseFromString(e,"text/html").body;return sW(n)}function C0(t,e,n){if(t instanceof wu||t instanceof lt)return t;n={slice:!0,parseOptions:{},...n};const i=typeof t=="object"&&t!==null,r=typeof t=="string";if(i)try{if(Array.isArray(t)&&t.length>0)return lt.fromArray(t.map(o=>e.nodeFromJSON(o)));const s=e.nodeFromJSON(t);return n.errorOnInvalidContent&&s.check(),s}catch(a){if(n.errorOnInvalidContent)throw new Error("[tiptap error]: Invalid JSON content",{cause:a});return console.warn("[tiptap warn]: Invalid content.","Passed value:",t,"Error:",a),C0("",e,n)}if(r){if(n.errorOnInvalidContent){let s=!1,o="";const l=new G$({topNode:e.spec.topNode,marks:e.spec.marks,nodes:e.spec.nodes.append({__tiptap__private__unknown__catch__all__node:{content:"inline*",group:"block",parseDOM:[{tag:"*",getAttrs:c=>(s=!0,o=typeof c=="string"?c:c.outerHTML,null)}]}})});if(n.slice?Wg.fromSchema(l).parseSlice(Zy(t),n.parseOptions):Wg.fromSchema(l).parse(Zy(t),n.parseOptions),n.errorOnInvalidContent&&s)throw new Error("[tiptap error]: Invalid HTML content",{cause:new Error(`Invalid element found: ${o}`)})}const a=Wg.fromSchema(e);return n.slice?a.parseSlice(Zy(t),n.parseOptions).content:a.parse(Zy(t),n.parseOptions)}return C0("",e,n)}function P_e(t,e,n){const i=t.steps.length-1;if(i<e)return;const r=t.steps[i];if(!(r instanceof br||r instanceof Sr))return;const a=t.mapping.maps[i];let s=0;a.forEach((o,l,c,d)=>{s===0&&(s=d)}),t.setSelection(Qt.near(t.doc.resolve(s),n))}var D_e=t=>!("type"in t),N_e=(t,e,n)=>({tr:i,dispatch:r,editor:a})=>{var s;if(r){n={parseOptions:a.options.parseOptions,updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};let o;const l=x=>{a.emit("contentError",{editor:a,error:x,disableCollaboration:()=>{"collaboration"in a.storage&&typeof a.storage.collaboration=="object"&&a.storage.collaboration&&(a.storage.collaboration.isDisabled=!0)}})},c={preserveWhitespace:"full",...n.parseOptions};if(!n.errorOnInvalidContent&&!a.options.enableContentCheck&&a.options.emitContentError)try{C0(e,a.schema,{parseOptions:c,errorOnInvalidContent:!0})}catch(x){l(x)}try{o=C0(e,a.schema,{parseOptions:c,errorOnInvalidContent:(s=n.errorOnInvalidContent)!=null?s:a.options.enableContentCheck})}catch(x){return l(x),!1}let{from:d,to:f}=typeof t=="number"?{from:t,to:t}:{from:t.from,to:t.to},p=!0,m=!0;if((D_e(o)?o:[o]).forEach(x=>{x.check(),p=p?x.isText&&x.marks.length===0:!1,m=m?x.isBlock:!1}),d===f&&m){const{parent:x}=i.doc.resolve(d);x.isTextblock&&!x.type.spec.code&&!x.childCount&&(d-=1,f+=1)}let b;if(p){if(Array.isArray(e))b=e.map(x=>x.text||"").join("");else if(e instanceof lt){let x="";e.forEach(v=>{v.text&&(x+=v.text)}),b=x}else typeof e=="object"&&e&&e.text?b=e.text:b=e;i.insertText(b,d,f)}else{b=o;const x=i.doc.resolve(d),v=x.node(),w=x.parentOffset===0,M=v.isText||v.isTextblock,A=v.content.size>0;w&&M&&A&&(d=Math.max(0,d-1)),i.replaceWith(d,f,b)}n.updateSelection&&P_e(i,i.steps.length-1,-1),n.applyInputRules&&i.setMeta("applyInputRules",{from:d,text:b}),n.applyPasteRules&&i.setMeta("applyPasteRules",{from:d,text:b})}return!0},O_e=()=>({state:t,dispatch:e})=>aye(t,e),L_e=()=>({state:t,dispatch:e})=>sye(t,e),k_e=()=>({state:t,dispatch:e})=>u9(t,e),I_e=()=>({state:t,dispatch:e})=>p9(t,e),U_e=()=>({state:t,dispatch:e,tr:n})=>{try{const i=fS(t.doc,t.selection.$from.pos,-1);return i==null?!1:(n.join(i,2),e&&e(n),!0)}catch{return!1}},F_e=()=>({state:t,dispatch:e,tr:n})=>{try{const i=fS(t.doc,t.selection.$from.pos,1);return i==null?!1:(n.join(i,2),e&&e(n),!0)}catch{return!1}},z_e=()=>({state:t,dispatch:e})=>iye(t,e),B_e=()=>({state:t,dispatch:e})=>rye(t,e);function oW(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function j_e(t){const e=t.split(/-(?!$)/);let n=e[e.length-1];n==="Space"&&(n=" ");let i,r,a,s;for(let o=0;o<e.length-1;o+=1){const l=e[o];if(/^(cmd|meta|m)$/i.test(l))s=!0;else if(/^a(lt)?$/i.test(l))i=!0;else if(/^(c|ctrl|control)$/i.test(l))r=!0;else if(/^s(hift)?$/i.test(l))a=!0;else if(/^mod$/i.test(l))SD()||oW()?s=!0:r=!0;else throw new Error(`Unrecognized modifier name: ${l}`)}return i&&(n=`Alt-${n}`),r&&(n=`Ctrl-${n}`),s&&(n=`Meta-${n}`),a&&(n=`Shift-${n}`),n}var H_e=t=>({editor:e,view:n,tr:i,dispatch:r})=>{const a=j_e(t).split(/-(?!$)/),s=a.find(c=>!["Alt","Ctrl","Meta","Shift"].includes(c)),o=new KeyboardEvent("keydown",{key:s==="Space"?" ":s,altKey:a.includes("Alt"),ctrlKey:a.includes("Ctrl"),metaKey:a.includes("Meta"),shiftKey:a.includes("Shift"),bubbles:!0,cancelable:!0}),l=e.captureTransaction(()=>{n.someProp("handleKeyDown",c=>c(n,o))});return l?.steps.forEach(c=>{const d=c.map(i.mapping);d&&r&&i.maybeStep(d)}),!0};function Ou(t,e,n={}){const{from:i,to:r,empty:a}=t.selection,s=e?Hi(e,t.schema):null,o=[];t.doc.nodesBetween(i,r,(f,p)=>{if(f.isText)return;const m=Math.max(i,p),y=Math.min(r,p+f.nodeSize);o.push({node:f,from:m,to:y})});const l=r-i,c=o.filter(f=>s?s.name===f.node.type.name:!0).filter(f=>w_(f.node.attrs,n,{strict:!1}));return a?!!c.length:c.reduce((f,p)=>f+p.to-p.from,0)>=l}var V_e=(t,e={})=>({state:n,dispatch:i})=>{const r=Hi(t,n.schema);return Ou(n,r,e)?oye(n,i):!1},G_e=()=>({state:t,dispatch:e})=>x9(t,e),$_e=t=>({state:e,dispatch:n})=>{const i=Hi(t,e.schema);return yye(i)(e,n)},W_e=()=>({state:t,dispatch:e})=>g9(t,e);function bS(t,e){return e.nodes[t]?"node":e.marks[t]?"mark":null}function h5(t,e){const n=typeof e=="string"?[e]:e;return Object.keys(t).reduce((i,r)=>(n.includes(r)||(i[r]=t[r]),i),{})}var q_e=(t,e)=>({tr:n,state:i,dispatch:r})=>{let a=null,s=null;const o=bS(typeof t=="string"?t:t.name,i.schema);if(!o)return!1;o==="node"&&(a=Hi(t,i.schema)),o==="mark"&&(s=oc(t,i.schema));let l=!1;return n.selection.ranges.forEach(c=>{i.doc.nodesBetween(c.$from.pos,c.$to.pos,(d,f)=>{a&&a===d.type&&(l=!0,r&&n.setNodeMarkup(f,void 0,h5(d.attrs,e))),s&&d.marks.length&&d.marks.forEach(p=>{s===p.type&&(l=!0,r&&n.addMark(f,f+d.nodeSize,s.create(h5(p.attrs,e))))})})}),l},X_e=()=>({tr:t,dispatch:e})=>(e&&t.scrollIntoView(),!0),Y_e=()=>({tr:t,dispatch:e})=>{if(e){const n=new rs(t.doc);t.setSelection(n)}return!0},K_e=()=>({state:t,dispatch:e})=>f9(t,e),Z_e=()=>({state:t,dispatch:e})=>m9(t,e),J_e=()=>({state:t,dispatch:e})=>dye(t,e),Q_e=()=>({state:t,dispatch:e})=>pye(t,e),e1e=()=>({state:t,dispatch:e})=>hye(t,e);function GR(t,e,n={},i={}){return C0(t,e,{slice:!1,parseOptions:n,errorOnInvalidContent:i.errorOnInvalidContent})}var t1e=(t,{errorOnInvalidContent:e,emitUpdate:n=!0,parseOptions:i={}}={})=>({editor:r,tr:a,dispatch:s,commands:o})=>{const{doc:l}=a;if(i.preserveWhitespace!=="full"){const c=GR(t,r.schema,i,{errorOnInvalidContent:e??r.options.enableContentCheck});return s&&a.replaceWith(0,l.content.size,c).setMeta("preventUpdate",!n),!0}return s&&a.setMeta("preventUpdate",!n),o.insertContentAt({from:0,to:l.content.size},t,{parseOptions:i,errorOnInvalidContent:e??r.options.enableContentCheck})};function lW(t,e){const n=oc(e,t.schema),{from:i,to:r,empty:a}=t.selection,s=[];a?(t.storedMarks&&s.push(...t.storedMarks),s.push(...t.selection.$head.marks())):t.doc.nodesBetween(i,r,l=>{s.push(...l.marks)});const o=s.find(l=>l.type.name===n.name);return o?{...o.attrs}:{}}function cW(t,e){const n=new s9(t);return e.forEach(i=>{i.steps.forEach(r=>{n.step(r)})}),n}function n1e(t){for(let e=0;e<t.edgeCount;e+=1){const{type:n}=t.edge(e);if(n.isTextblock&&!n.hasRequiredAttrs())return n}return null}function i1e(t,e,n){const i=[];return t.nodesBetween(e.from,e.to,(r,a)=>{n(r)&&i.push({node:r,pos:a})}),i}function r1e(t,e){for(let n=t.depth;n>0;n-=1){const i=t.node(n);if(e(i))return{pos:n>0?t.before(n):0,start:t.start(n),depth:n,node:i}}}function _S(t){return e=>r1e(e.$from,t)}function kt(t,e,n){return t.config[e]===void 0&&t.parent?kt(t.parent,e,n):typeof t.config[e]=="function"?t.config[e].bind({...n,parent:t.parent?kt(t.parent,e,n):null}):t.config[e]}function wD(t){return t.map(e=>{const n={name:e.name,options:e.options,storage:e.storage},i=kt(e,"addExtensions",n);return i?[e,...wD(i())]:e}).flat(10)}function MD(t,e){const n=Tf.fromSchema(e).serializeFragment(t),r=document.implementation.createHTMLDocument().createElement("div");return r.appendChild(n),r.innerHTML}function uW(t){return typeof t=="function"}function Tn(t,e=void 0,...n){return uW(t)?e?t.bind(e)(...n):t(...n):t}function a1e(t={}){return Object.keys(t).length===0&&t.constructor===Object}function Pp(t){const e=t.filter(r=>r.type==="extension"),n=t.filter(r=>r.type==="node"),i=t.filter(r=>r.type==="mark");return{baseExtensions:e,nodeExtensions:n,markExtensions:i}}function dW(t){const e=[],{nodeExtensions:n,markExtensions:i}=Pp(t),r=[...n,...i],a={default:null,validate:void 0,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1};return t.forEach(s=>{const o={name:s.name,options:s.options,storage:s.storage,extensions:r},l=kt(s,"addGlobalAttributes",o);if(!l)return;l().forEach(d=>{d.types.forEach(f=>{Object.entries(d.attributes).forEach(([p,m])=>{e.push({type:f,name:p,attribute:{...a,...m}})})})})}),r.forEach(s=>{const o={name:s.name,options:s.options,storage:s.storage},l=kt(s,"addAttributes",o);if(!l)return;const c=l();Object.entries(c).forEach(([d,f])=>{const p={...a,...f};typeof p?.default=="function"&&(p.default=p.default()),p?.isRequired&&p?.default===void 0&&delete p.default,e.push({type:s.name,name:d,attribute:p})})}),e}function vi(...t){return t.filter(e=>!!e).reduce((e,n)=>{const i={...e};return Object.entries(n).forEach(([r,a])=>{if(!i[r]){i[r]=a;return}if(r==="class"){const o=a?String(a).split(" "):[],l=i[r]?i[r].split(" "):[],c=o.filter(d=>!l.includes(d));i[r]=[...l,...c].join(" ")}else if(r==="style"){const o=a?a.split(";").map(d=>d.trim()).filter(Boolean):[],l=i[r]?i[r].split(";").map(d=>d.trim()).filter(Boolean):[],c=new Map;l.forEach(d=>{const[f,p]=d.split(":").map(m=>m.trim());c.set(f,p)}),o.forEach(d=>{const[f,p]=d.split(":").map(m=>m.trim());c.set(f,p)}),i[r]=Array.from(c.entries()).map(([d,f])=>`${d}: ${f}`).join("; ")}else i[r]=a}),i},{})}function M_(t,e){return e.filter(n=>n.type===t.type.name).filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(t.attrs)||{}:{[n.name]:t.attrs[n.name]}).reduce((n,i)=>vi(n,i),{})}function s1e(t){return typeof t!="string"?t:t.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(t):t==="true"?!0:t==="false"?!1:t}function p5(t,e){return"style"in t?t:{...t,getAttrs:n=>{const i=t.getAttrs?t.getAttrs(n):t.attrs;if(i===!1)return!1;const r=e.reduce((a,s)=>{const o=s.attribute.parseHTML?s.attribute.parseHTML(n):s1e(n.getAttribute(s.name));return o==null?a:{...a,[s.name]:o}},{});return{...i,...r}}}}function m5(t){return Object.fromEntries(Object.entries(t).filter(([e,n])=>e==="attrs"&&a1e(n)?!1:n!=null))}function g5(t){var e,n;const i={};return!((e=t?.attribute)!=null&&e.isRequired)&&"default"in(t?.attribute||{})&&(i.default=t.attribute.default),((n=t?.attribute)==null?void 0:n.validate)!==void 0&&(i.validate=t.attribute.validate),[t.name,i]}function o1e(t,e){var n;const i=dW(t),{nodeExtensions:r,markExtensions:a}=Pp(t),s=(n=r.find(c=>kt(c,"topNode")))==null?void 0:n.name,o=Object.fromEntries(r.map(c=>{const d=i.filter(v=>v.type===c.name),f={name:c.name,options:c.options,storage:c.storage,editor:e},p=t.reduce((v,w)=>{const M=kt(w,"extendNodeSchema",f);return{...v,...M?M(c):{}}},{}),m=m5({...p,content:Tn(kt(c,"content",f)),marks:Tn(kt(c,"marks",f)),group:Tn(kt(c,"group",f)),inline:Tn(kt(c,"inline",f)),atom:Tn(kt(c,"atom",f)),selectable:Tn(kt(c,"selectable",f)),draggable:Tn(kt(c,"draggable",f)),code:Tn(kt(c,"code",f)),whitespace:Tn(kt(c,"whitespace",f)),linebreakReplacement:Tn(kt(c,"linebreakReplacement",f)),defining:Tn(kt(c,"defining",f)),isolating:Tn(kt(c,"isolating",f)),attrs:Object.fromEntries(d.map(g5))}),y=Tn(kt(c,"parseHTML",f));y&&(m.parseDOM=y.map(v=>p5(v,d)));const b=kt(c,"renderHTML",f);b&&(m.toDOM=v=>b({node:v,HTMLAttributes:M_(v,d)}));const x=kt(c,"renderText",f);return x&&(m.toText=x),[c.name,m]})),l=Object.fromEntries(a.map(c=>{const d=i.filter(x=>x.type===c.name),f={name:c.name,options:c.options,storage:c.storage,editor:e},p=t.reduce((x,v)=>{const w=kt(v,"extendMarkSchema",f);return{...x,...w?w(c):{}}},{}),m=m5({...p,inclusive:Tn(kt(c,"inclusive",f)),excludes:Tn(kt(c,"excludes",f)),group:Tn(kt(c,"group",f)),spanning:Tn(kt(c,"spanning",f)),code:Tn(kt(c,"code",f)),attrs:Object.fromEntries(d.map(g5))}),y=Tn(kt(c,"parseHTML",f));y&&(m.parseDOM=y.map(x=>p5(x,d)));const b=kt(c,"renderHTML",f);return b&&(m.toDOM=x=>b({mark:x,HTMLAttributes:M_(x,d)})),[c.name,m]}));return new G$({topNode:s,nodes:o,marks:l})}function l1e(t){const e=t.filter((n,i)=>t.indexOf(n)!==i);return Array.from(new Set(e))}function ED(t){return t.sort((n,i)=>{const r=kt(n,"priority")||100,a=kt(i,"priority")||100;return r>a?-1:r<a?1:0})}function fW(t){const e=ED(wD(t)),n=l1e(e.map(i=>i.name));return n.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${n.map(i=>`'${i}'`).join(", ")}]. This can lead to issues.`),e}function hW(t,e,n){const{from:i,to:r}=e,{blockSeparator:a=`
- `,textSerializers:s={}}=n||{};let o="";return t.nodesBetween(i,r,(l,c,d,f)=>{var p;l.isBlock&&c>i&&(o+=a);const m=s?.[l.type.name];if(m)return d&&(o+=m({node:l,pos:c,parent:d,index:f,range:e})),!1;l.isText&&(o+=(p=l?.text)==null?void 0:p.slice(Math.max(i,c)-c,r-c))}),o}function c1e(t,e){const n={from:0,to:t.content.size};return hW(t,n,e)}function pW(t){return Object.fromEntries(Object.entries(t.nodes).filter(([,e])=>e.spec.toText).map(([e,n])=>[e,n.spec.toText]))}function u1e(t,e){const n=Hi(e,t.schema),{from:i,to:r}=t.selection,a=[];t.doc.nodesBetween(i,r,o=>{a.push(o)});const s=a.reverse().find(o=>o.type.name===n.name);return s?{...s.attrs}:{}}function mW(t,e){const n=bS(typeof e=="string"?e:e.name,t.schema);return n==="node"?u1e(t,e):n==="mark"?lW(t,e):{}}function d1e(t,e=JSON.stringify){const n={};return t.filter(i=>{const r=e(i);return Object.prototype.hasOwnProperty.call(n,r)?!1:n[r]=!0})}function f1e(t){const e=d1e(t);return e.length===1?e:e.filter((n,i)=>!e.filter((a,s)=>s!==i).some(a=>n.oldRange.from>=a.oldRange.from&&n.oldRange.to<=a.oldRange.to&&n.newRange.from>=a.newRange.from&&n.newRange.to<=a.newRange.to))}function gW(t){const{mapping:e,steps:n}=t,i=[];return e.maps.forEach((r,a)=>{const s=[];if(r.ranges.length)r.forEach((o,l)=>{s.push({from:o,to:l})});else{const{from:o,to:l}=n[a];if(o===void 0||l===void 0)return;s.push({from:o,to:l})}s.forEach(({from:o,to:l})=>{const c=e.slice(a).map(o,-1),d=e.slice(a).map(l),f=e.invert().map(c,-1),p=e.invert().map(d);i.push({oldRange:{from:f,to:p},newRange:{from:c,to:d}})})}),f1e(i)}function AD(t,e,n){const i=[];return t===e?n.resolve(t).marks().forEach(r=>{const a=n.resolve(t),s=_D(a,r.type);s&&i.push({mark:r,...s})}):n.nodesBetween(t,e,(r,a)=>{!r||r?.nodeSize===void 0||i.push(...r.marks.map(s=>({from:a,to:a+r.nodeSize,mark:s})))}),i}var h1e=(t,e,n,i=20)=>{const r=t.doc.resolve(n);let a=i,s=null;for(;a>0&&s===null;){const o=r.node(a);o?.type.name===e?s=o:a-=1}return[s,a]};function mT(t,e){return e.nodes[t]||e.marks[t]||null}function Ub(t,e,n){return Object.fromEntries(Object.entries(n).filter(([i])=>{const r=t.find(a=>a.type===e&&a.name===i);return r?r.attribute.keepOnSplit:!1}))}var p1e=(t,e=500)=>{let n="";const i=t.parentOffset;return t.parent.nodesBetween(Math.max(0,i-e),i,(r,a,s,o)=>{var l,c;const d=((c=(l=r.type.spec).toText)==null?void 0:c.call(l,{node:r,pos:a,parent:s,index:o}))||r.textContent||"%leaf%";n+=r.isAtom&&!r.isText?d:d.slice(0,Math.max(0,i-a))}),n};function $R(t,e,n={}){const{empty:i,ranges:r}=t.selection,a=e?oc(e,t.schema):null;if(i)return!!(t.storedMarks||t.selection.$from.marks()).filter(f=>a?a.name===f.type.name:!0).find(f=>w_(f.attrs,n,{strict:!1}));let s=0;const o=[];if(r.forEach(({$from:f,$to:p})=>{const m=f.pos,y=p.pos;t.doc.nodesBetween(m,y,(b,x)=>{if(!b.isText&&!b.marks.length)return;const v=Math.max(m,x),w=Math.min(y,x+b.nodeSize),M=w-v;s+=M,o.push(...b.marks.map(A=>({mark:A,from:v,to:w})))})}),s===0)return!1;const l=o.filter(f=>a?a.name===f.mark.type.name:!0).filter(f=>w_(f.mark.attrs,n,{strict:!1})).reduce((f,p)=>f+p.to-p.from,0),c=o.filter(f=>a?f.mark.type!==a&&f.mark.type.excludes(a):!0).reduce((f,p)=>f+p.to-p.from,0);return(l>0?l+c:l)>=s}function m1e(t,e,n={}){if(!e)return Ou(t,null,n)||$R(t,null,n);const i=bS(e,t.schema);return i==="node"?Ou(t,e,n):i==="mark"?$R(t,e,n):!1}var g1e=(t,e)=>{const{$from:n,$to:i,$anchor:r}=t.selection;if(e){const a=_S(o=>o.type.name===e)(t.selection);if(!a)return!1;const s=t.doc.resolve(a.pos+1);return r.pos+1===s.end()}return!(i.parentOffset<i.parent.nodeSize-2||n.pos!==i.pos)},v1e=t=>{const{$from:e,$to:n}=t.selection;return!(e.parentOffset>0||e.pos!==n.pos)};function v5(t,e){return Array.isArray(e)?e.some(n=>(typeof n=="string"?n:n.name)===t.name):e}function x5(t,e){const{nodeExtensions:n}=Pp(e),i=n.find(s=>s.name===t);if(!i)return!1;const r={name:i.name,options:i.options,storage:i.storage},a=Tn(kt(i,"group",r));return typeof a!="string"?!1:a.split(" ").includes("list")}function SS(t,{checkChildren:e=!0,ignoreWhitespace:n=!1}={}){var i;if(n){if(t.type.name==="hardBreak")return!0;if(t.isText)return/^\s*$/m.test((i=t.text)!=null?i:"")}if(t.isText)return!t.text;if(t.isAtom||t.isLeaf)return!1;if(t.content.childCount===0)return!0;if(e){let r=!0;return t.content.forEach(a=>{r!==!1&&(SS(a,{ignoreWhitespace:n,checkChildren:e})||(r=!1))}),r}return!1}function vW(t){return t instanceof It}function x1e(t,e,n){var i;const{selection:r}=e;let a=null;if(rW(r)&&(a=r.$cursor),a){const o=(i=t.storedMarks)!=null?i:a.marks();return a.parent.type.allowsMarkType(n)&&(!!n.isInSet(o)||!o.some(c=>c.type.excludes(n)))}const{ranges:s}=r;return s.some(({$from:o,$to:l})=>{let c=o.depth===0?t.doc.inlineContent&&t.doc.type.allowsMarkType(n):!1;return t.doc.nodesBetween(o.pos,l.pos,(d,f,p)=>{if(c)return!1;if(d.isInline){const m=!p||p.type.allowsMarkType(n),y=!!n.isInSet(d.marks)||!d.marks.some(b=>b.type.excludes(n));c=m&&y}return!c}),c})}var y1e=(t,e={})=>({tr:n,state:i,dispatch:r})=>{const{selection:a}=n,{empty:s,ranges:o}=a,l=oc(t,i.schema);if(r)if(s){const c=lW(i,l);n.addStoredMark(l.create({...c,...e}))}else o.forEach(c=>{const d=c.$from.pos,f=c.$to.pos;i.doc.nodesBetween(d,f,(p,m)=>{const y=Math.max(m,d),b=Math.min(m+p.nodeSize,f);p.marks.find(v=>v.type===l)?p.marks.forEach(v=>{l===v.type&&n.addMark(y,b,l.create({...v.attrs,...e}))}):n.addMark(y,b,l.create(e))})});return x1e(i,n,l)},b1e=(t,e)=>({tr:n})=>(n.setMeta(t,e),!0),_1e=(t,e={})=>({state:n,dispatch:i,chain:r})=>{const a=Hi(t,n.schema);let s;return n.selection.$anchor.sameParent(n.selection.$head)&&(s=n.selection.$anchor.parent.attrs),a.isTextblock?r().command(({commands:o})=>NB(a,{...s,...e})(n)?!0:o.clearNodes()).command(({state:o})=>NB(a,{...s,...e})(o,i)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},S1e=t=>({tr:e,dispatch:n})=>{if(n){const{doc:i}=e,r=Ld(t,0,i.content.size),a=It.create(i,r);e.setSelection(a)}return!0},w1e=(t,e)=>({tr:n,state:i,dispatch:r})=>{const{selection:a}=i;let s,o;return typeof e=="number"?(s=e,o=e):e&&"from"in e&&"to"in e?(s=e.from,o=e.to):(s=a.from,o=a.to),r&&n.doc.nodesBetween(s,o,(l,c)=>{l.isText||n.setNodeMarkup(c,void 0,{...l.attrs,dir:t})}),!0},M1e=t=>({tr:e,dispatch:n})=>{if(n){const{doc:i}=e,{from:r,to:a}=typeof t=="number"?{from:t,to:t}:t,s=zt.atStart(i).from,o=zt.atEnd(i).to,l=Ld(r,s,o),c=Ld(a,s,o),d=zt.create(i,l,c);e.setSelection(d)}return!0},E1e=t=>({state:e,dispatch:n})=>{const i=Hi(t,e.schema);return Sye(i)(e,n)};function y5(t,e){const n=t.storedMarks||t.selection.$to.parentOffset&&t.selection.$from.marks();if(n){const i=n.filter(r=>e?.includes(r.type.name));t.tr.ensureMarks(i)}}var A1e=({keepMarks:t=!0}={})=>({tr:e,state:n,dispatch:i,editor:r})=>{const{selection:a,doc:s}=e,{$from:o,$to:l}=a,c=r.extensionManager.attributes,d=Ub(c,o.node().type.name,o.node().attrs);if(a instanceof It&&a.node.isBlock)return!o.parentOffset||!ql(s,o.pos)?!1:(i&&(t&&y5(n,r.extensionManager.splittableMarks),e.split(o.pos).scrollIntoView()),!0);if(!o.parent.isBlock)return!1;const f=l.parentOffset===l.parent.content.size,p=o.depth===0?void 0:n1e(o.node(-1).contentMatchAt(o.indexAfter(-1)));let m=f&&p?[{type:p,attrs:d}]:void 0,y=ql(e.doc,e.mapping.map(o.pos),1,m);if(!m&&!y&&ql(e.doc,e.mapping.map(o.pos),1,p?[{type:p}]:void 0)&&(y=!0,m=p?[{type:p,attrs:d}]:void 0),i){if(y&&(a instanceof zt&&e.deleteSelection(),e.split(e.mapping.map(o.pos),1,m),p&&!f&&!o.parentOffset&&o.parent.type!==p)){const b=e.mapping.map(o.before()),x=e.doc.resolve(b);o.node(-1).canReplaceWith(x.index(),x.index()+1,p)&&e.setNodeMarkup(e.mapping.map(o.before()),p)}t&&y5(n,r.extensionManager.splittableMarks),e.scrollIntoView()}return y},T1e=(t,e={})=>({tr:n,state:i,dispatch:r,editor:a})=>{var s;const o=Hi(t,i.schema),{$from:l,$to:c}=i.selection,d=i.selection.node;if(d&&d.isBlock||l.depth<2||!l.sameParent(c))return!1;const f=l.node(-1);if(f.type!==o)return!1;const p=a.extensionManager.attributes;if(l.parent.content.size===0&&l.node(-1).childCount===l.indexAfter(-1)){if(l.depth===2||l.node(-3).type!==o||l.index(-2)!==l.node(-2).childCount-1)return!1;if(r){let v=lt.empty;const w=l.index(-1)?1:l.index(-2)?2:3;for(let U=l.depth-w;U>=l.depth-3;U-=1)v=lt.from(l.node(U).copy(v));const M=l.indexAfter(-1)<l.node(-2).childCount?1:l.indexAfter(-2)<l.node(-3).childCount?2:3,A={...Ub(p,l.node().type.name,l.node().attrs),...e},T=((s=o.contentMatch.defaultType)==null?void 0:s.createAndFill(A))||void 0;v=v.append(lt.from(o.createAndFill(null,T)||void 0));const D=l.before(l.depth-(w-1));n.replace(D,l.after(-M),new _t(v,4-w,0));let C=-1;n.doc.nodesBetween(D,n.doc.content.size,(U,P)=>{if(C>-1)return!1;U.isTextblock&&U.content.size===0&&(C=P+1)}),C>-1&&n.setSelection(zt.near(n.doc.resolve(C))),n.scrollIntoView()}return!0}const m=c.pos===l.end()?f.contentMatchAt(0).defaultType:null,y={...Ub(p,f.type.name,f.attrs),...e},b={...Ub(p,l.node().type.name,l.node().attrs),...e};n.delete(l.pos,c.pos);const x=m?[{type:o,attrs:y},{type:m,attrs:b}]:[{type:o,attrs:y}];if(!ql(n.doc,l.pos,2))return!1;if(r){const{selection:v,storedMarks:w}=i,{splittableMarks:M}=a.extensionManager,A=w||v.$to.parentOffset&&v.$from.marks();if(n.split(l.pos,2,x).scrollIntoView(),!A||!r)return!0;const T=A.filter(D=>M.includes(D.type.name));n.ensureMarks(T)}return!0},gT=(t,e)=>{const n=_S(s=>s.type===e)(t.selection);if(!n)return!0;const i=t.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(i===void 0)return!0;const r=t.doc.nodeAt(i);return n.node.type===r?.type&&zu(t.doc,n.pos)&&t.join(n.pos),!0},vT=(t,e)=>{const n=_S(s=>s.type===e)(t.selection);if(!n)return!0;const i=t.doc.resolve(n.start).after(n.depth);if(i===void 0)return!0;const r=t.doc.nodeAt(i);return n.node.type===r?.type&&zu(t.doc,i)&&t.join(i),!0},C1e=(t,e,n,i={})=>({editor:r,tr:a,state:s,dispatch:o,chain:l,commands:c,can:d})=>{const{extensions:f,splittableMarks:p}=r.extensionManager,m=Hi(t,s.schema),y=Hi(e,s.schema),{selection:b,storedMarks:x}=s,{$from:v,$to:w}=b,M=v.blockRange(w),A=x||b.$to.parentOffset&&b.$from.marks();if(!M)return!1;const T=_S(D=>x5(D.type.name,f))(b);if(M.depth>=1&&T&&M.depth-T.depth<=1){if(T.node.type===m)return c.liftListItem(y);if(x5(T.node.type.name,f)&&m.validContent(T.node.content)&&o)return l().command(()=>(a.setNodeMarkup(T.pos,m),!0)).command(()=>gT(a,m)).command(()=>vT(a,m)).run()}return!n||!A||!o?l().command(()=>d().wrapInList(m,i)?!0:c.clearNodes()).wrapInList(m,i).command(()=>gT(a,m)).command(()=>vT(a,m)).run():l().command(()=>{const D=d().wrapInList(m,i),C=A.filter(U=>p.includes(U.type.name));return a.ensureMarks(C),D?!0:c.clearNodes()}).wrapInList(m,i).command(()=>gT(a,m)).command(()=>vT(a,m)).run()},R1e=(t,e={},n={})=>({state:i,commands:r})=>{const{extendEmptyMarkRange:a=!1}=n,s=oc(t,i.schema);return $R(i,s,e)?r.unsetMark(s,{extendEmptyMarkRange:a}):r.setMark(s,e)},P1e=(t,e,n={})=>({state:i,commands:r})=>{const a=Hi(t,i.schema),s=Hi(e,i.schema),o=Ou(i,a,n);let l;return i.selection.$anchor.sameParent(i.selection.$head)&&(l=i.selection.$anchor.parent.attrs),o?r.setNode(s,l):r.setNode(a,{...l,...n})},D1e=(t,e={})=>({state:n,commands:i})=>{const r=Hi(t,n.schema);return Ou(n,r,e)?i.lift(r):i.wrapIn(r,e)},N1e=()=>({state:t,dispatch:e})=>{const n=t.plugins;for(let i=0;i<n.length;i+=1){const r=n[i];let a;if(r.spec.isInputRules&&(a=r.getState(t))){if(e){const s=t.tr,o=a.transform;for(let l=o.steps.length-1;l>=0;l-=1)s.step(o.steps[l].invert(o.docs[l]));if(a.text){const l=s.doc.resolve(a.from).marks();s.replaceWith(a.from,a.to,t.schema.text(a.text,l))}else s.delete(a.from,a.to)}return!0}}return!1},O1e=()=>({tr:t,dispatch:e})=>{const{selection:n}=t,{empty:i,ranges:r}=n;return i||e&&r.forEach(a=>{t.removeMark(a.$from.pos,a.$to.pos)}),!0},L1e=(t,e={})=>({tr:n,state:i,dispatch:r})=>{var a;const{extendEmptyMarkRange:s=!1}=e,{selection:o}=n,l=oc(t,i.schema),{$from:c,empty:d,ranges:f}=o;if(!r)return!0;if(d&&s){let{from:p,to:m}=o;const y=(a=c.marks().find(x=>x.type===l))==null?void 0:a.attrs,b=_D(c,l,y);b&&(p=b.from,m=b.to),n.removeMark(p,m,l)}else f.forEach(p=>{n.removeMark(p.$from.pos,p.$to.pos,l)});return n.removeStoredMark(l),!0},k1e=t=>({tr:e,state:n,dispatch:i})=>{const{selection:r}=n;let a,s;return typeof t=="number"?(a=t,s=t):t&&"from"in t&&"to"in t?(a=t.from,s=t.to):(a=r.from,s=r.to),i&&e.doc.nodesBetween(a,s,(o,l)=>{if(o.isText)return;const c={...o.attrs};delete c.dir,e.setNodeMarkup(l,void 0,c)}),!0},I1e=(t,e={})=>({tr:n,state:i,dispatch:r})=>{let a=null,s=null;const o=bS(typeof t=="string"?t:t.name,i.schema);if(!o)return!1;o==="node"&&(a=Hi(t,i.schema)),o==="mark"&&(s=oc(t,i.schema));let l=!1;return n.selection.ranges.forEach(c=>{const d=c.$from.pos,f=c.$to.pos;let p,m,y,b;n.selection.empty?i.doc.nodesBetween(d,f,(x,v)=>{a&&a===x.type&&(l=!0,y=Math.max(v,d),b=Math.min(v+x.nodeSize,f),p=v,m=x)}):i.doc.nodesBetween(d,f,(x,v)=>{v<d&&a&&a===x.type&&(l=!0,y=Math.max(v,d),b=Math.min(v+x.nodeSize,f),p=v,m=x),v>=d&&v<=f&&(a&&a===x.type&&(l=!0,r&&n.setNodeMarkup(v,void 0,{...x.attrs,...e})),s&&x.marks.length&&x.marks.forEach(w=>{if(s===w.type&&(l=!0,r)){const M=Math.max(v,d),A=Math.min(v+x.nodeSize,f);n.addMark(M,A,s.create({...w.attrs,...e}))}}))}),m&&(p!==void 0&&r&&n.setNodeMarkup(p,void 0,{...m.attrs,...e}),s&&m.marks.length&&m.marks.forEach(x=>{s===x.type&&r&&n.addMark(y,b,s.create({...x.attrs,...e}))}))}),l},U1e=(t,e={})=>({state:n,dispatch:i})=>{const r=Hi(t,n.schema);return mye(r,e)(n,i)},F1e=(t,e={})=>({state:n,dispatch:i})=>{const r=Hi(t,n.schema);return gye(r,e)(n,i)},z1e=class{constructor(){this.callbacks={}}on(e,n){return this.callbacks[e]||(this.callbacks[e]=[]),this.callbacks[e].push(n),this}emit(e,...n){const i=this.callbacks[e];return i&&i.forEach(r=>r.apply(this,n)),this}off(e,n){const i=this.callbacks[e];return i&&(n?this.callbacks[e]=i.filter(r=>r!==n):delete this.callbacks[e]),this}once(e,n){const i=(...r)=>{this.off(e,i),n.apply(this,r)};return this.on(e,i)}removeAllListeners(){this.callbacks={}}},wS=class{constructor(t){var e;this.find=t.find,this.handler=t.handler,this.undoable=(e=t.undoable)!=null?e:!0}},B1e=(t,e)=>{if(bD(e))return e.exec(t);const n=e(t);if(!n)return null;const i=[n.text];return i.index=n.index,i.input=t,i.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),i.push(n.replaceWith)),i};function Jy(t){var e;const{editor:n,from:i,to:r,text:a,rules:s,plugin:o}=t,{view:l}=n;if(l.composing)return!1;const c=l.state.doc.resolve(i);if(c.parent.type.spec.code||(e=c.nodeBefore||c.nodeAfter)!=null&&e.marks.find(p=>p.type.spec.code))return!1;let d=!1;const f=p1e(c)+a;return s.forEach(p=>{if(d)return;const m=B1e(f,p.find);if(!m)return;const y=l.state.tr,b=xS({state:l.state,transaction:y}),x={from:i-(m[0].length-a.length),to:r},{commands:v,chain:w,can:M}=new yS({editor:n,state:b});p.handler({state:b,range:x,match:m,commands:v,chain:w,can:M})===null||!y.steps.length||(p.undoable&&y.setMeta(o,{transform:y,from:i,to:r,text:a}),l.dispatch(y),d=!0)}),d}function j1e(t){const{editor:e,rules:n}=t,i=new li({state:{init(){return null},apply(r,a,s){const o=r.getMeta(i);if(o)return o;const l=r.getMeta("applyInputRules");return!!l&&setTimeout(()=>{let{text:d}=l;typeof d=="string"?d=d:d=MD(lt.from(d),s.schema);const{from:f}=l,p=f+d.length;Jy({editor:e,from:f,to:p,text:d,rules:n,plugin:i})}),r.selectionSet||r.docChanged?null:a}},props:{handleTextInput(r,a,s,o){return Jy({editor:e,from:a,to:s,text:o,rules:n,plugin:i})},handleDOMEvents:{compositionend:r=>(setTimeout(()=>{const{$cursor:a}=r.state.selection;a&&Jy({editor:e,from:a.pos,to:a.pos,text:"",rules:n,plugin:i})}),!1)},handleKeyDown(r,a){if(a.key!=="Enter")return!1;const{$cursor:s}=r.state.selection;return s?Jy({editor:e,from:s.pos,to:s.pos,text:`
- `,rules:n,plugin:i}):!1}},isInputRules:!0});return i}function H1e(t){return Object.prototype.toString.call(t).slice(8,-1)}function Qy(t){return H1e(t)!=="Object"?!1:t.constructor===Object&&Object.getPrototypeOf(t)===Object.prototype}function xW(t,e){const n={...t};return Qy(t)&&Qy(e)&&Object.keys(e).forEach(i=>{Qy(e[i])&&Qy(t[i])?n[i]=xW(t[i],e[i]):n[i]=e[i]}),n}var TD=class{constructor(t={}){this.type="extendable",this.parent=null,this.child=null,this.name="",this.config={name:this.name},this.config={...this.config,...t},this.name=this.config.name}get options(){return{...Tn(kt(this,"addOptions",{name:this.name}))||{}}}get storage(){return{...Tn(kt(this,"addStorage",{name:this.name,options:this.options}))||{}}}configure(t={}){const e=this.extend({...this.config,addOptions:()=>xW(this.options,t)});return e.name=this.name,e.parent=this.parent,e}extend(t={}){const e=new this.constructor({...this.config,...t});return e.parent=this,this.child=e,e.name="name"in t?t.name:e.parent.name,e}},ju=class yW extends TD{constructor(){super(...arguments),this.type="mark"}static create(e={}){const n=typeof e=="function"?e():e;return new yW(n)}static handleExit({editor:e,mark:n}){const{tr:i}=e.state,r=e.state.selection.$from;if(r.pos===r.end()){const s=r.marks();if(!!!s.find(c=>c?.type.name===n.name))return!1;const l=s.find(c=>c?.type.name===n.name);return l&&i.removeStoredMark(l),i.insertText(" ",r.pos),e.view.dispatch(i),!0}return!1}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}};function V1e(t){return typeof t=="number"}var G1e=class{constructor(t){this.find=t.find,this.handler=t.handler}},$1e=(t,e,n)=>{if(bD(e))return[...t.matchAll(e)];const i=e(t,n);return i?i.map(r=>{const a=[r.text];return a.index=r.index,a.input=t,a.data=r.data,r.replaceWith&&(r.text.includes(r.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),a.push(r.replaceWith)),a}):[]};function W1e(t){const{editor:e,state:n,from:i,to:r,rule:a,pasteEvent:s,dropEvent:o}=t,{commands:l,chain:c,can:d}=new yS({editor:e,state:n}),f=[];return n.doc.nodesBetween(i,r,(m,y)=>{var b,x,v,w,M;if((x=(b=m.type)==null?void 0:b.spec)!=null&&x.code||!(m.isText||m.isTextblock||m.isInline))return;const A=(M=(w=(v=m.content)==null?void 0:v.size)!=null?w:m.nodeSize)!=null?M:0,T=Math.max(i,y),D=Math.min(r,y+A);if(T>=D)return;const C=m.isText?m.text||"":m.textBetween(T-y,D-y,void 0,"");$1e(C,a.find,s).forEach(P=>{if(P.index===void 0)return;const k=T+P.index+1,B=k+P[0].length,I={from:n.tr.mapping.map(k),to:n.tr.mapping.map(B)},W=a.handler({state:n,range:I,match:P,commands:l,chain:c,can:d,pasteEvent:s,dropEvent:o});f.push(W)})}),f.every(m=>m!==null)}var eb=null,q1e=t=>{var e;const n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(e=n.clipboardData)==null||e.setData("text/html",t),n};function X1e(t){const{editor:e,rules:n}=t;let i=null,r=!1,a=!1,s=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,o;try{o=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{o=null}const l=({state:d,from:f,to:p,rule:m,pasteEvt:y})=>{const b=d.tr,x=xS({state:d,transaction:b});if(!(!W1e({editor:e,state:x,from:Math.max(f-1,0),to:p.b-1,rule:m,pasteEvent:y,dropEvent:o})||!b.steps.length)){try{o=typeof DragEvent<"u"?new DragEvent("drop"):null}catch{o=null}return s=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,b}};return n.map(d=>new li({view(f){const p=y=>{var b;i=(b=f.dom.parentElement)!=null&&b.contains(y.target)?f.dom.parentElement:null,i&&(eb=e)},m=()=>{eb&&(eb=null)};return window.addEventListener("dragstart",p),window.addEventListener("dragend",m),{destroy(){window.removeEventListener("dragstart",p),window.removeEventListener("dragend",m)}}},props:{handleDOMEvents:{drop:(f,p)=>{if(a=i===f.dom.parentElement,o=p,!a){const m=eb;m?.isEditable&&setTimeout(()=>{const y=m.state.selection;y&&m.commands.deleteRange({from:y.from,to:y.to})},10)}return!1},paste:(f,p)=>{var m;const y=(m=p.clipboardData)==null?void 0:m.getData("text/html");return s=p,r=!!y?.includes("data-pm-slice"),!1}}},appendTransaction:(f,p,m)=>{const y=f[0],b=y.getMeta("uiEvent")==="paste"&&!r,x=y.getMeta("uiEvent")==="drop"&&!a,v=y.getMeta("applyPasteRules"),w=!!v;if(!b&&!x&&!w)return;if(w){let{text:T}=v;typeof T=="string"?T=T:T=MD(lt.from(T),m.schema);const{from:D}=v,C=D+T.length,U=q1e(T);return l({rule:d,state:m,from:D,to:{b:C},pasteEvt:U})}const M=p.doc.content.findDiffStart(m.doc.content),A=p.doc.content.findDiffEnd(m.doc.content);if(!(!V1e(M)||!A||M===A.b))return l({rule:d,state:m,from:M,to:A,pasteEvt:s})}}))}var MS=class{constructor(t,e){this.splittableMarks=[],this.editor=e,this.baseExtensions=t,this.extensions=fW(t),this.schema=o1e(this.extensions,e),this.setupExtensions()}get commands(){return this.extensions.reduce((t,e)=>{const n={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:mT(e.name,this.schema)},i=kt(e,"addCommands",n);return i?{...t,...i()}:t},{})}get plugins(){const{editor:t}=this;return ED([...this.extensions].reverse()).flatMap(i=>{const r={name:i.name,options:i.options,storage:this.editor.extensionStorage[i.name],editor:t,type:mT(i.name,this.schema)},a=[],s=kt(i,"addKeyboardShortcuts",r);let o={};if(i.type==="mark"&&kt(i,"exitable",r)&&(o.ArrowRight=()=>ju.handleExit({editor:t,mark:i})),s){const p=Object.fromEntries(Object.entries(s()).map(([m,y])=>[m,()=>y({editor:t})]));o={...o,...p}}const l=u_e(o);a.push(l);const c=kt(i,"addInputRules",r);if(v5(i,t.options.enableInputRules)&&c){const p=c();if(p&&p.length){const m=j1e({editor:t,rules:p}),y=Array.isArray(m)?m:[m];a.push(...y)}}const d=kt(i,"addPasteRules",r);if(v5(i,t.options.enablePasteRules)&&d){const p=d();if(p&&p.length){const m=X1e({editor:t,rules:p});a.push(...m)}}const f=kt(i,"addProseMirrorPlugins",r);if(f){const p=f();a.push(...p)}return a})}get attributes(){return dW(this.extensions)}get nodeViews(){const{editor:t}=this,{nodeExtensions:e}=Pp(this.extensions);return Object.fromEntries(e.filter(n=>!!kt(n,"addNodeView")).map(n=>{const i=this.attributes.filter(l=>l.type===n.name),r={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:Hi(n.name,this.schema)},a=kt(n,"addNodeView",r);if(!a)return[];const s=a();if(!s)return[];const o=(l,c,d,f,p)=>{const m=M_(l,i);return s({node:l,view:c,getPos:d,decorations:f,innerDecorations:p,editor:t,extension:n,HTMLAttributes:m})};return[n.name,o]}))}get markViews(){const{editor:t}=this,{markExtensions:e}=Pp(this.extensions);return Object.fromEntries(e.filter(n=>!!kt(n,"addMarkView")).map(n=>{const i=this.attributes.filter(o=>o.type===n.name),r={name:n.name,options:n.options,storage:this.editor.extensionStorage[n.name],editor:t,type:oc(n.name,this.schema)},a=kt(n,"addMarkView",r);if(!a)return[];const s=(o,l,c)=>{const d=M_(o,i);return a()({mark:o,view:l,inline:c,editor:t,extension:n,HTMLAttributes:d,updateAttributes:f=>{cSe(o,t,f)}})};return[n.name,s]}))}setupExtensions(){const t=this.extensions;this.editor.extensionStorage=Object.fromEntries(t.map(e=>[e.name,e.storage])),t.forEach(e=>{var n;const i={name:e.name,options:e.options,storage:this.editor.extensionStorage[e.name],editor:this.editor,type:mT(e.name,this.schema)};e.type==="mark"&&((n=Tn(kt(e,"keepOnSplit",i)))==null||n)&&this.splittableMarks.push(e.name);const r=kt(e,"onBeforeCreate",i),a=kt(e,"onCreate",i),s=kt(e,"onUpdate",i),o=kt(e,"onSelectionUpdate",i),l=kt(e,"onTransaction",i),c=kt(e,"onFocus",i),d=kt(e,"onBlur",i),f=kt(e,"onDestroy",i);r&&this.editor.on("beforeCreate",r),a&&this.editor.on("create",a),s&&this.editor.on("update",s),o&&this.editor.on("selectionUpdate",o),l&&this.editor.on("transaction",l),c&&this.editor.on("focus",c),d&&this.editor.on("blur",d),f&&this.editor.on("destroy",f)})}};MS.resolve=fW;MS.sort=ED;MS.flatten=wD;var Y1e={};yD(Y1e,{ClipboardTextSerializer:()=>_W,Commands:()=>SW,Delete:()=>wW,Drop:()=>MW,Editable:()=>EW,FocusEvents:()=>TW,Keymap:()=>CW,Paste:()=>RW,Tabindex:()=>PW,TextDirection:()=>DW,focusEventsPluginKey:()=>AW});var Fn=class bW extends TD{constructor(){super(...arguments),this.type="extension"}static create(e={}){const n=typeof e=="function"?e():e;return new bW(n)}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}},_W=Fn.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new li({key:new rr("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:t}=this,{state:e,schema:n}=t,{doc:i,selection:r}=e,{ranges:a}=r,s=Math.min(...a.map(d=>d.$from.pos)),o=Math.max(...a.map(d=>d.$to.pos)),l=pW(n);return hW(i,{from:s,to:o},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:l})}}})]}}),SW=Fn.create({name:"commands",addCommands(){return{...nW}}}),wW=Fn.create({name:"delete",onUpdate({transaction:t,appendedTransactions:e}){var n,i,r;const a=()=>{var s,o,l,c;if((c=(l=(o=(s=this.editor.options.coreExtensionOptions)==null?void 0:s.delete)==null?void 0:o.filterTransaction)==null?void 0:l.call(o,t))!=null?c:t.getMeta("y-sync$"))return;const d=cW(t.before,[t,...e]);gW(d).forEach(m=>{d.mapping.mapResult(m.oldRange.from).deletedAfter&&d.mapping.mapResult(m.oldRange.to).deletedBefore&&d.before.nodesBetween(m.oldRange.from,m.oldRange.to,(y,b)=>{const x=b+y.nodeSize-2,v=m.oldRange.from<=b&&x<=m.oldRange.to;this.editor.emit("delete",{type:"node",node:y,from:b,to:x,newFrom:d.mapping.map(b),newTo:d.mapping.map(x),deletedRange:m.oldRange,newRange:m.newRange,partial:!v,editor:this.editor,transaction:t,combinedTransform:d})})});const p=d.mapping;d.steps.forEach((m,y)=>{var b,x;if(m instanceof uo){const v=p.slice(y).map(m.from,-1),w=p.slice(y).map(m.to),M=p.invert().map(v,-1),A=p.invert().map(w),T=(b=d.doc.nodeAt(v-1))==null?void 0:b.marks.some(C=>C.eq(m.mark)),D=(x=d.doc.nodeAt(w))==null?void 0:x.marks.some(C=>C.eq(m.mark));this.editor.emit("delete",{type:"mark",mark:m.mark,from:m.from,to:m.to,deletedRange:{from:M,to:A},newRange:{from:v,to:w},partial:!!(D||T),editor:this.editor,transaction:t,combinedTransform:d})}})};(r=(i=(n=this.editor.options.coreExtensionOptions)==null?void 0:n.delete)==null?void 0:i.async)==null||r?setTimeout(a,0):a()}}),MW=Fn.create({name:"drop",addProseMirrorPlugins(){return[new li({key:new rr("tiptapDrop"),props:{handleDrop:(t,e,n,i)=>{this.editor.emit("drop",{editor:this.editor,event:e,slice:n,moved:i})}}})]}}),EW=Fn.create({name:"editable",addProseMirrorPlugins(){return[new li({key:new rr("editable"),props:{editable:()=>this.editor.options.editable}})]}}),AW=new rr("focusEvents"),TW=Fn.create({name:"focusEvents",addProseMirrorPlugins(){const{editor:t}=this;return[new li({key:AW,props:{handleDOMEvents:{focus:(e,n)=>{t.isFocused=!0;const i=t.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return e.dispatch(i),!1},blur:(e,n)=>{t.isFocused=!1;const i=t.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return e.dispatch(i),!1}}}})]}}),CW=Fn.create({name:"keymap",addKeyboardShortcuts(){const t=()=>this.editor.commands.first(({commands:s})=>[()=>s.undoInputRule(),()=>s.command(({tr:o})=>{const{selection:l,doc:c}=o,{empty:d,$anchor:f}=l,{pos:p,parent:m}=f,y=f.parent.isTextblock&&p>0?o.doc.resolve(p-1):f,b=y.parent.type.spec.isolating,x=f.pos-f.parentOffset,v=b&&y.parent.childCount===1?x===f.pos:Qt.atStart(c).from===p;return!d||!m.type.isTextblock||m.textContent.length||!v||v&&f.parent.type.name==="paragraph"?!1:s.clearNodes()}),()=>s.deleteSelection(),()=>s.joinBackward(),()=>s.selectNodeBackward()]),e=()=>this.editor.commands.first(({commands:s})=>[()=>s.deleteSelection(),()=>s.deleteCurrentNode(),()=>s.joinForward(),()=>s.selectNodeForward()]),i={Enter:()=>this.editor.commands.first(({commands:s})=>[()=>s.newlineInCode(),()=>s.createParagraphNear(),()=>s.liftEmptyBlock(),()=>s.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:t,"Mod-Backspace":t,"Shift-Backspace":t,Delete:e,"Mod-Delete":e,"Mod-a":()=>this.editor.commands.selectAll()},r={...i},a={...i,"Ctrl-h":t,"Alt-Backspace":t,"Ctrl-d":e,"Ctrl-Alt-Backspace":e,"Alt-Delete":e,"Alt-d":e,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return SD()||oW()?a:r},addProseMirrorPlugins(){return[new li({key:new rr("clearDocument"),appendTransaction:(t,e,n)=>{if(t.some(b=>b.getMeta("composition")))return;const i=t.some(b=>b.docChanged)&&!e.doc.eq(n.doc),r=t.some(b=>b.getMeta("preventClearDocument"));if(!i||r)return;const{empty:a,from:s,to:o}=e.selection,l=Qt.atStart(e.doc).from,c=Qt.atEnd(e.doc).to;if(a||!(s===l&&o===c)||!SS(n.doc))return;const p=n.tr,m=xS({state:n,transaction:p}),{commands:y}=new yS({editor:this.editor,state:m});if(y.clearNodes(),!!p.steps.length)return p}})]}}),RW=Fn.create({name:"paste",addProseMirrorPlugins(){return[new li({key:new rr("tiptapPaste"),props:{handlePaste:(t,e,n)=>{this.editor.emit("paste",{editor:this.editor,event:e,slice:n})}}})]}}),PW=Fn.create({name:"tabindex",addProseMirrorPlugins(){return[new li({key:new rr("tabindex"),props:{attributes:()=>this.editor.isEditable?{tabindex:"0"}:{}}})]}}),DW=Fn.create({name:"textDirection",addOptions(){return{direction:void 0}},addGlobalAttributes(){if(!this.options.direction)return[];const{nodeExtensions:t}=Pp(this.extensions);return[{types:t.filter(e=>e.name!=="text").map(e=>e.name),attributes:{dir:{default:this.options.direction,parseHTML:e=>{const n=e.getAttribute("dir");return n&&(n==="ltr"||n==="rtl"||n==="auto")?n:this.options.direction},renderHTML:e=>e.dir?{dir:e.dir}:{}}}}]},addProseMirrorPlugins(){return[new li({key:new rr("textDirection"),props:{attributes:()=>{const t=this.options.direction;return t?{dir:t}:{}}}})]}}),K1e=class Xh{constructor(e,n,i=!1,r=null){this.currentNode=null,this.actualDepth=null,this.isBlock=i,this.resolvedPos=e,this.editor=n,this.currentNode=r}get name(){return this.node.type.name}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){var e;return(e=this.actualDepth)!=null?e:this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(e){let n=this.from,i=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}n=this.from+1,i=this.to-1}this.editor.commands.insertContentAt({from:n,to:i},e)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+(this.node.isText?0:1)}get parent(){if(this.depth===0)return null;const e=this.resolvedPos.start(this.resolvedPos.depth-1),n=this.resolvedPos.doc.resolve(e);return new Xh(n,this.editor)}get before(){let e=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return e.depth!==this.depth&&(e=this.resolvedPos.doc.resolve(this.from-3)),new Xh(e,this.editor)}get after(){let e=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return e.depth!==this.depth&&(e=this.resolvedPos.doc.resolve(this.to+3)),new Xh(e,this.editor)}get children(){const e=[];return this.node.content.forEach((n,i)=>{const r=n.isBlock&&!n.isTextblock,a=n.isAtom&&!n.isText,s=this.pos+i+(a?0:1);if(s<0||s>this.resolvedPos.doc.nodeSize-2)return;const o=this.resolvedPos.doc.resolve(s);if(!r&&o.depth<=this.depth)return;const l=new Xh(o,this.editor,r,r?n:null);r&&(l.actualDepth=this.depth+1),e.push(new Xh(o,this.editor,r,r?n:null))}),e}get firstChild(){return this.children[0]||null}get lastChild(){const e=this.children;return e[e.length-1]||null}closest(e,n={}){let i=null,r=this.parent;for(;r&&!i;){if(r.node.type.name===e)if(Object.keys(n).length>0){const a=r.node.attrs,s=Object.keys(n);for(let o=0;o<s.length;o+=1){const l=s[o];if(a[l]!==n[l])break}}else i=r;r=r.parent}return i}querySelector(e,n={}){return this.querySelectorAll(e,n,!0)[0]||null}querySelectorAll(e,n={},i=!1){let r=[];if(!this.children||this.children.length===0)return r;const a=Object.keys(n);return this.children.forEach(s=>{i&&r.length>0||(s.node.type.name===e&&a.every(l=>n[l]===s.node.attrs[l])&&r.push(s),!(i&&r.length>0)&&(r=r.concat(s.querySelectorAll(e,n,i))))}),r}setAttribute(e){const{tr:n}=this.editor.state;n.setNodeMarkup(this.from,void 0,{...this.node.attrs,...e}),this.editor.view.dispatch(n)}},Z1e=`.ProseMirror {
- position: relative;
- }
- .ProseMirror {
- word-wrap: break-word;
- white-space: pre-wrap;
- white-space: break-spaces;
- -webkit-font-variant-ligatures: none;
- font-variant-ligatures: none;
- font-feature-settings: "liga" 0; /* the above doesn't seem to work in Edge */
- }
- .ProseMirror [contenteditable="false"] {
- white-space: normal;
- }
- .ProseMirror [contenteditable="false"] [contenteditable="true"] {
- white-space: pre-wrap;
- }
- .ProseMirror pre {
- white-space: pre-wrap;
- }
- img.ProseMirror-separator {
- display: inline !important;
- border: none !important;
- margin: 0 !important;
- width: 0 !important;
- height: 0 !important;
- }
- .ProseMirror-gapcursor {
- display: none;
- pointer-events: none;
- position: absolute;
- margin: 0;
- }
- .ProseMirror-gapcursor:after {
- content: "";
- display: block;
- position: absolute;
- top: -2px;
- width: 20px;
- border-top: 1px solid black;
- animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
- }
- @keyframes ProseMirror-cursor-blink {
- to {
- visibility: hidden;
- }
- }
- .ProseMirror-hideselection *::selection {
- background: transparent;
- }
- .ProseMirror-hideselection *::-moz-selection {
- background: transparent;
- }
- .ProseMirror-hideselection * {
- caret-color: transparent;
- }
- .ProseMirror-focused .ProseMirror-gapcursor {
- display: block;
- }`;function J1e(t,e,n){const i=document.querySelector("style[data-tiptap-style]");if(i!==null)return i;const r=document.createElement("style");return e&&r.setAttribute("nonce",e),r.setAttribute("data-tiptap-style",""),r.innerHTML=t,document.getElementsByTagName("head")[0].appendChild(r),r}var Q1e=class extends z1e{constructor(t={}){super(),this.css=null,this.className="tiptap",this.editorView=null,this.isFocused=!1,this.isInitialized=!1,this.extensionStorage={},this.instanceId=Math.random().toString(36).slice(2,9),this.options={element:typeof document<"u"?document.createElement("div"):null,content:"",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,textDirection:void 0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,enableContentCheck:!1,emitContentError:!1,onBeforeCreate:()=>null,onCreate:()=>null,onMount:()=>null,onUnmount:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null,onContentError:({error:i})=>{throw i},onPaste:()=>null,onDrop:()=>null,onDelete:()=>null},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.setOptions(t),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.on("mount",this.options.onMount),this.on("unmount",this.options.onUnmount),this.on("contentError",this.options.onContentError),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),this.on("drop",({event:i,slice:r,moved:a})=>this.options.onDrop(i,r,a)),this.on("paste",({event:i,slice:r})=>this.options.onPaste(i,r)),this.on("delete",this.options.onDelete);const e=this.createDoc(),n=aW(e,this.options.autofocus);this.editorState=ep.create({doc:e,schema:this.schema,selection:n||void 0}),this.options.element&&this.mount(this.options.element)}mount(t){if(typeof document>"u")throw new Error("[tiptap error]: The editor cannot be mounted because there is no 'document' defined in this environment.");this.createView(t),this.emit("mount",{editor:this}),this.css&&!document.head.contains(this.css)&&document.head.appendChild(this.css),window.setTimeout(()=>{this.isDestroyed||(this.options.autofocus!==!1&&this.options.autofocus!==null&&this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}),this.isInitialized=!0)},0)}unmount(){if(this.editorView){const t=this.editorView.dom;t?.editor&&delete t.editor,this.editorView.destroy()}if(this.editorView=null,this.isInitialized=!1,this.css&&!document.querySelectorAll(`.${this.className}`).length)try{typeof this.css.remove=="function"?this.css.remove():this.css.parentNode&&this.css.parentNode.removeChild(this.css)}catch(t){console.warn("Failed to remove CSS element:",t)}this.css=null,this.emit("unmount",{editor:this})}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager.chain()}can(){return this.commandManager.can()}injectCSS(){this.options.injectCSS&&typeof document<"u"&&(this.css=J1e(Z1e,this.options.injectNonce))}setOptions(t={}){this.options={...this.options,...t},!(!this.editorView||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(t,e=!0){this.setOptions({editable:t}),e&&this.emit("update",{editor:this,transaction:this.state.tr,appendedTransactions:[]})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get view(){return this.editorView?this.editorView:new Proxy({state:this.editorState,updateState:t=>{this.editorState=t},dispatch:t=>{this.dispatchTransaction(t)},composing:!1,dragging:null,editable:!0,isDestroyed:!1},{get:(t,e)=>{if(this.editorView)return this.editorView[e];if(e==="state")return this.editorState;if(e in t)return Reflect.get(t,e);throw new Error(`[tiptap error]: The editor view is not available. Cannot access view['${e}']. The editor may not be mounted yet.`)}})}get state(){return this.editorView&&(this.editorState=this.view.state),this.editorState}registerPlugin(t,e){const n=uW(e)?e(t,[...this.state.plugins]):[...this.state.plugins,t],i=this.state.reconfigure({plugins:n});return this.view.updateState(i),i}unregisterPlugin(t){if(this.isDestroyed)return;const e=this.state.plugins;let n=e;if([].concat(t).forEach(r=>{const a=typeof r=="string"?`${r}$`:r.key;n=n.filter(s=>!s.key.startsWith(a))}),e.length===n.length)return;const i=this.state.reconfigure({plugins:n});return this.view.updateState(i),i}createExtensionManager(){var t,e;const i=[...this.options.enableCoreExtensions?[EW,_W.configure({blockSeparator:(e=(t=this.options.coreExtensionOptions)==null?void 0:t.clipboardTextSerializer)==null?void 0:e.blockSeparator}),SW,TW,CW,PW,MW,RW,wW,DW.configure({direction:this.options.textDirection})].filter(r=>typeof this.options.enableCoreExtensions=="object"?this.options.enableCoreExtensions[r.name]!==!1:!0):[],...this.options.extensions].filter(r=>["extension","node","mark"].includes(r?.type));this.extensionManager=new MS(i,this)}createCommandManager(){this.commandManager=new yS({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createDoc(){let t;try{t=GR(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:this.options.enableContentCheck})}catch(e){if(!(e instanceof Error)||!["[tiptap error]: Invalid JSON content","[tiptap error]: Invalid HTML content"].includes(e.message))throw e;this.emit("contentError",{editor:this,error:e,disableCollaboration:()=>{"collaboration"in this.storage&&typeof this.storage.collaboration=="object"&&this.storage.collaboration&&(this.storage.collaboration.isDisabled=!0),this.options.extensions=this.options.extensions.filter(n=>n.name!=="collaboration"),this.createExtensionManager()}}),t=GR(this.options.content,this.schema,this.options.parseOptions,{errorOnInvalidContent:!1})}return t}createView(t){var e;this.editorView=new eW(t,{...this.options.editorProps,attributes:{role:"textbox",...(e=this.options.editorProps)==null?void 0:e.attributes},dispatchTransaction:this.dispatchTransaction.bind(this),state:this.editorState,markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews});const n=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(n),this.prependClass(),this.injectCSS();const i=this.view.dom;i.editor=this}createNodeViews(){this.view.isDestroyed||this.view.setProps({markViews:this.extensionManager.markViews,nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`${this.className} ${this.view.dom.className}`}captureTransaction(t){this.isCapturingTransaction=!0,t(),this.isCapturingTransaction=!1;const e=this.capturedTransaction;return this.capturedTransaction=null,e}dispatchTransaction(t){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=t;return}t.steps.forEach(c=>{var d;return(d=this.capturedTransaction)==null?void 0:d.step(c)});return}const{state:e,transactions:n}=this.state.applyTransaction(t),i=!this.state.selection.eq(e.selection),r=n.includes(t),a=this.state;if(this.emit("beforeTransaction",{editor:this,transaction:t,nextState:e}),!r)return;this.view.updateState(e),this.emit("transaction",{editor:this,transaction:t,appendedTransactions:n.slice(1)}),i&&this.emit("selectionUpdate",{editor:this,transaction:t});const s=n.findLast(c=>c.getMeta("focus")||c.getMeta("blur")),o=s?.getMeta("focus"),l=s?.getMeta("blur");o&&this.emit("focus",{editor:this,event:o.event,transaction:s}),l&&this.emit("blur",{editor:this,event:l.event,transaction:s}),!(t.getMeta("preventUpdate")||!n.some(c=>c.docChanged)||a.doc.eq(e.doc))&&this.emit("update",{editor:this,transaction:t,appendedTransactions:n.slice(1)})}getAttributes(t){return mW(this.state,t)}isActive(t,e){const n=typeof t=="string"?t:null,i=typeof t=="string"?e:t;return m1e(this.state,n,i)}getJSON(){return this.state.doc.toJSON()}getHTML(){return MD(this.state.doc.content,this.schema)}getText(t){const{blockSeparator:e=`
- `,textSerializers:n={}}=t||{};return c1e(this.state.doc,{blockSeparator:e,textSerializers:{...pW(this.schema),...n}})}get isEmpty(){return SS(this.state.doc)}destroy(){this.emit("destroy"),this.unmount(),this.removeAllListeners()}get isDestroyed(){var t,e;return(e=(t=this.editorView)==null?void 0:t.isDestroyed)!=null?e:!0}$node(t,e){var n;return((n=this.$doc)==null?void 0:n.querySelector(t,e))||null}$nodes(t,e){var n;return((n=this.$doc)==null?void 0:n.querySelectorAll(t,e))||null}$pos(t){const e=this.state.doc.resolve(t);return new K1e(e,this)}get $doc(){return this.$pos(0)}};function Dp(t){return new wS({find:t.find,handler:({state:e,range:n,match:i})=>{const r=Tn(t.getAttributes,void 0,i);if(r===!1||r===null)return null;const{tr:a}=e,s=i[i.length-1],o=i[0];if(s){const l=o.search(/\S/),c=n.from+o.indexOf(s),d=c+s.length;if(AD(n.from,n.to,e.doc).filter(m=>m.mark.type.excluded.find(b=>b===t.type&&b!==m.mark.type)).filter(m=>m.to>c).length)return null;d<n.to&&a.delete(d,n.to),c>n.from&&a.delete(n.from+l,c);const p=n.from+l+s.length;a.addMark(n.from+l,p,t.type.create(r||{})),a.removeStoredMark(t.type)}},undoable:t.undoable})}function NW(t){return new wS({find:t.find,handler:({state:e,range:n,match:i})=>{const r=Tn(t.getAttributes,void 0,i)||{},{tr:a}=e,s=n.from;let o=n.to;const l=t.type.create(r);if(i[1]){const c=i[0].lastIndexOf(i[1]);let d=s+c;d>o?d=o:o=d+i[1].length;const f=i[0][i[0].length-1];a.insertText(f,s+i[0].length-1),a.replaceWith(d,o,l)}else if(i[0]){const c=t.type.isInline?s:s-1;a.insert(c,t.type.create(r)).delete(a.mapping.map(s),a.mapping.map(o))}a.scrollIntoView()},undoable:t.undoable})}function WR(t){return new wS({find:t.find,handler:({state:e,range:n,match:i})=>{const r=e.doc.resolve(n.from),a=Tn(t.getAttributes,void 0,i)||{};if(!r.node(-1).canReplaceWith(r.index(-1),r.indexAfter(-1),t.type))return null;e.tr.delete(n.from,n.to).setBlockType(n.from,n.from,t.type,a)},undoable:t.undoable})}function Np(t){return new wS({find:t.find,handler:({state:e,range:n,match:i,chain:r})=>{const a=Tn(t.getAttributes,void 0,i)||{},s=e.tr.delete(n.from,n.to),l=s.doc.resolve(n.from).blockRange(),c=l&&iD(l,t.type,a);if(!c)return null;if(s.wrap(l,c),t.keepMarks&&t.editor){const{selection:f,storedMarks:p}=e,{splittableMarks:m}=t.editor.extensionManager,y=p||f.$to.parentOffset&&f.$from.marks();if(y){const b=y.filter(x=>m.includes(x.type.name));s.ensureMarks(b)}}if(t.keepAttributes){const f=t.type.name==="bulletList"||t.type.name==="orderedList"?"listItem":"taskList";r().updateAttributes(f,a).run()}const d=s.doc.resolve(n.from-1).nodeBefore;d&&d.type===t.type&&zu(s.doc,n.from-1)&&(!t.joinPredicate||t.joinPredicate(i,d))&&s.join(n.from-1)},undoable:t.undoable})}var eSe=t=>"touches"in t,tSe=class{constructor(t){this.directions=["bottom-left","bottom-right","top-left","top-right"],this.minSize={height:8,width:8},this.preserveAspectRatio=!1,this.classNames={container:"",wrapper:"",handle:"",resizing:""},this.initialWidth=0,this.initialHeight=0,this.aspectRatio=1,this.isResizing=!1,this.activeHandle=null,this.startX=0,this.startY=0,this.startWidth=0,this.startHeight=0,this.isShiftKeyPressed=!1,this.handleMouseMove=s=>{if(!this.isResizing||!this.activeHandle)return;const o=s.clientX-this.startX,l=s.clientY-this.startY;this.handleResize(o,l)},this.handleTouchMove=s=>{if(!this.isResizing||!this.activeHandle)return;const o=s.touches[0];if(!o)return;const l=o.clientX-this.startX,c=o.clientY-this.startY;this.handleResize(l,c)},this.handleMouseUp=()=>{if(!this.isResizing)return;const s=this.element.offsetWidth,o=this.element.offsetHeight;this.onCommit(s,o),this.isResizing=!1,this.activeHandle=null,this.container.dataset.resizeState="false",this.classNames.resizing&&this.container.classList.remove(this.classNames.resizing),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("keyup",this.handleKeyUp)},this.handleKeyDown=s=>{s.key==="Shift"&&(this.isShiftKeyPressed=!0)},this.handleKeyUp=s=>{s.key==="Shift"&&(this.isShiftKeyPressed=!1)};var e,n,i,r,a;this.node=t.node,this.element=t.element,this.contentElement=t.contentElement,this.getPos=t.getPos,this.onResize=t.onResize,this.onCommit=t.onCommit,this.onUpdate=t.onUpdate,(e=t.options)!=null&&e.min&&(this.minSize={...this.minSize,...t.options.min}),(n=t.options)!=null&&n.max&&(this.maxSize=t.options.max),(i=t?.options)!=null&&i.directions&&(this.directions=t.options.directions),(r=t.options)!=null&&r.preserveAspectRatio&&(this.preserveAspectRatio=t.options.preserveAspectRatio),(a=t.options)!=null&&a.className&&(this.classNames={container:t.options.className.container||"",wrapper:t.options.className.wrapper||"",handle:t.options.className.handle||"",resizing:t.options.className.resizing||""}),this.wrapper=this.createWrapper(),this.container=this.createContainer(),this.applyInitialSize(),this.attachHandles()}get dom(){return this.container}get contentDOM(){return this.contentElement}update(t,e,n){return t.type!==this.node.type?!1:(this.node=t,this.onUpdate?this.onUpdate(t,e,n):!0)}destroy(){this.isResizing&&(this.container.dataset.resizeState="false",this.classNames.resizing&&this.container.classList.remove(this.classNames.resizing),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("keydown",this.handleKeyDown),document.removeEventListener("keyup",this.handleKeyUp),this.isResizing=!1,this.activeHandle=null),this.container.remove()}createContainer(){const t=document.createElement("div");return t.dataset.resizeContainer="",t.dataset.node=this.node.type.name,t.style.display="flex",t.style.justifyContent="flex-start",t.style.alignItems="flex-start",this.classNames.container&&(t.className=this.classNames.container),t.appendChild(this.wrapper),t}createWrapper(){const t=document.createElement("div");return t.style.position="relative",t.style.display="block",t.dataset.resizeWrapper="",this.classNames.wrapper&&(t.className=this.classNames.wrapper),t.appendChild(this.element),t}createHandle(t){const e=document.createElement("div");return e.dataset.resizeHandle=t,e.style.position="absolute",this.classNames.handle&&(e.className=this.classNames.handle),e}positionHandle(t,e){const n=e.includes("top"),i=e.includes("bottom"),r=e.includes("left"),a=e.includes("right");n&&(t.style.top="0"),i&&(t.style.bottom="0"),r&&(t.style.left="0"),a&&(t.style.right="0"),(e==="top"||e==="bottom")&&(t.style.left="0",t.style.right="0"),(e==="left"||e==="right")&&(t.style.top="0",t.style.bottom="0")}attachHandles(){this.directions.forEach(t=>{const e=this.createHandle(t);this.positionHandle(e,t),e.addEventListener("mousedown",n=>this.handleResizeStart(n,t)),e.addEventListener("touchstart",n=>this.handleResizeStart(n,t)),this.wrapper.appendChild(e)})}applyInitialSize(){const t=this.node.attrs.width,e=this.node.attrs.height;t?(this.element.style.width=`${t}px`,this.initialWidth=t):this.initialWidth=this.element.offsetWidth,e?(this.element.style.height=`${e}px`,this.initialHeight=e):this.initialHeight=this.element.offsetHeight,this.initialWidth>0&&this.initialHeight>0&&(this.aspectRatio=this.initialWidth/this.initialHeight)}handleResizeStart(t,e){t.preventDefault(),t.stopPropagation(),this.isResizing=!0,this.activeHandle=e,eSe(t)?(this.startX=t.touches[0].clientX,this.startY=t.touches[0].clientY):(this.startX=t.clientX,this.startY=t.clientY),this.startWidth=this.element.offsetWidth,this.startHeight=this.element.offsetHeight,this.startWidth>0&&this.startHeight>0&&(this.aspectRatio=this.startWidth/this.startHeight),this.getPos(),this.container.dataset.resizeState="true",this.classNames.resizing&&this.container.classList.add(this.classNames.resizing),document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("touchmove",this.handleTouchMove),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("keydown",this.handleKeyDown),document.addEventListener("keyup",this.handleKeyUp)}handleResize(t,e){if(!this.activeHandle)return;const n=this.preserveAspectRatio||this.isShiftKeyPressed,{width:i,height:r}=this.calculateNewDimensions(this.activeHandle,t,e),a=this.applyConstraints(i,r,n);this.element.style.width=`${a.width}px`,this.element.style.height=`${a.height}px`,this.onResize&&this.onResize(a.width,a.height)}calculateNewDimensions(t,e,n){let i=this.startWidth,r=this.startHeight;const a=t.includes("right"),s=t.includes("left"),o=t.includes("bottom"),l=t.includes("top");return a?i=this.startWidth+e:s&&(i=this.startWidth-e),o?r=this.startHeight+n:l&&(r=this.startHeight-n),(t==="right"||t==="left")&&(i=this.startWidth+(a?e:-e)),(t==="top"||t==="bottom")&&(r=this.startHeight+(o?n:-n)),this.preserveAspectRatio||this.isShiftKeyPressed?this.applyAspectRatio(i,r,t):{width:i,height:r}}applyConstraints(t,e,n){var i,r,a,s;if(!n){let c=Math.max(this.minSize.width,t),d=Math.max(this.minSize.height,e);return(i=this.maxSize)!=null&&i.width&&(c=Math.min(this.maxSize.width,c)),(r=this.maxSize)!=null&&r.height&&(d=Math.min(this.maxSize.height,d)),{width:c,height:d}}let o=t,l=e;return o<this.minSize.width&&(o=this.minSize.width,l=o/this.aspectRatio),l<this.minSize.height&&(l=this.minSize.height,o=l*this.aspectRatio),(a=this.maxSize)!=null&&a.width&&o>this.maxSize.width&&(o=this.maxSize.width,l=o/this.aspectRatio),(s=this.maxSize)!=null&&s.height&&l>this.maxSize.height&&(l=this.maxSize.height,o=l*this.aspectRatio),{width:o,height:l}}applyAspectRatio(t,e,n){const i=n==="left"||n==="right",r=n==="top"||n==="bottom";return i?{width:t,height:t/this.aspectRatio}:r?{width:e*this.aspectRatio,height:e}:{width:t,height:t/this.aspectRatio}}};function nSe(t,e){const{selection:n}=t,{$from:i}=n;if(n instanceof It){const a=i.index();return i.parent.canReplaceWith(a,a+1,e)}let r=i.depth;for(;r>=0;){const a=i.index(r);if(i.node(r).contentMatchAt(a).matchType(e))return!0;r-=1}return!1}var iSe={};yD(iSe,{createAtomBlockMarkdownSpec:()=>rSe,createBlockMarkdownSpec:()=>aSe,createInlineMarkdownSpec:()=>lSe,parseAttributes:()=>CD,parseIndentedBlocks:()=>qR,renderNestedMarkdownContent:()=>PD,serializeAttributes:()=>RD});function CD(t){if(!t?.trim())return{};const e={},n=[],i=t.replace(/["']([^"']*)["']/g,c=>(n.push(c),`__QUOTED_${n.length-1}__`)),r=i.match(/(?:^|\s)\.([a-zA-Z][\w-]*)/g);if(r){const c=r.map(d=>d.trim().slice(1));e.class=c.join(" ")}const a=i.match(/(?:^|\s)#([a-zA-Z][\w-]*)/);a&&(e.id=a[1]);const s=/([a-zA-Z][\w-]*)\s*=\s*(__QUOTED_\d+__)/g;Array.from(i.matchAll(s)).forEach(([,c,d])=>{var f;const p=parseInt(((f=d.match(/__QUOTED_(\d+)__/))==null?void 0:f[1])||"0",10),m=n[p];m&&(e[c]=m.slice(1,-1))});const l=i.replace(/(?:^|\s)\.([a-zA-Z][\w-]*)/g,"").replace(/(?:^|\s)#([a-zA-Z][\w-]*)/g,"").replace(/([a-zA-Z][\w-]*)\s*=\s*__QUOTED_\d+__/g,"").trim();return l&&l.split(/\s+/).filter(Boolean).forEach(d=>{d.match(/^[a-zA-Z][\w-]*$/)&&(e[d]=!0)}),e}function RD(t){if(!t||Object.keys(t).length===0)return"";const e=[];return t.class&&String(t.class).split(/\s+/).filter(Boolean).forEach(i=>e.push(`.${i}`)),t.id&&e.push(`#${t.id}`),Object.entries(t).forEach(([n,i])=>{n==="class"||n==="id"||(i===!0?e.push(n):i!==!1&&i!=null&&e.push(`${n}="${String(i)}"`))}),e.join(" ")}function rSe(t){const{nodeName:e,name:n,parseAttributes:i=CD,serializeAttributes:r=RD,defaultAttributes:a={},requiredAttributes:s=[],allowedAttributes:o}=t,l=n||e,c=d=>{if(!o)return d;const f={};return o.forEach(p=>{p in d&&(f[p]=d[p])}),f};return{parseMarkdown:(d,f)=>{const p={...a,...d.attributes};return f.createNode(e,p,[])},markdownTokenizer:{name:e,level:"block",start(d){var f;const p=new RegExp(`^:::${l}(?:\\s|$)`,"m"),m=(f=d.match(p))==null?void 0:f.index;return m!==void 0?m:-1},tokenize(d,f,p){const m=new RegExp(`^:::${l}(?:\\s+\\{([^}]*)\\})?\\s*:::(?:\\n|$)`),y=d.match(m);if(!y)return;const b=y[1]||"",x=i(b);if(!s.find(w=>!(w in x)))return{type:e,raw:y[0],attributes:x}}},renderMarkdown:d=>{const f=c(d.attrs||{}),p=r(f),m=p?` {${p}}`:"";return`:::${l}${m} :::`}}}function aSe(t){const{nodeName:e,name:n,getContent:i,parseAttributes:r=CD,serializeAttributes:a=RD,defaultAttributes:s={},content:o="block",allowedAttributes:l}=t,c=n||e,d=f=>{if(!l)return f;const p={};return l.forEach(m=>{m in f&&(p[m]=f[m])}),p};return{parseMarkdown:(f,p)=>{let m;if(i){const b=i(f);m=typeof b=="string"?[{type:"text",text:b}]:b}else o==="block"?m=p.parseChildren(f.tokens||[]):m=p.parseInline(f.tokens||[]);const y={...s,...f.attributes};return p.createNode(e,y,m)},markdownTokenizer:{name:e,level:"block",start(f){var p;const m=new RegExp(`^:::${c}`,"m"),y=(p=f.match(m))==null?void 0:p.index;return y!==void 0?y:-1},tokenize(f,p,m){var y;const b=new RegExp(`^:::${c}(?:\\s+\\{([^}]*)\\})?\\s*\\n`),x=f.match(b);if(!x)return;const[v,w=""]=x,M=r(w);let A=1;const T=v.length;let D="";const C=/^:::([\w-]*)(\s.*)?/gm,U=f.slice(T);for(C.lastIndex=0;;){const P=C.exec(U);if(P===null)break;const k=P.index,B=P[1];if(!((y=P[2])!=null&&y.endsWith(":::"))){if(B)A+=1;else if(A-=1,A===0){const I=U.slice(0,k);D=I.trim();const W=f.slice(0,T+k+P[0].length);let O=[];if(D)if(o==="block")for(O=m.blockTokens(I),O.forEach($=>{$.text&&(!$.tokens||$.tokens.length===0)&&($.tokens=m.inlineTokens($.text))});O.length>0;){const $=O[O.length-1];if($.type==="paragraph"&&(!$.text||$.text.trim()===""))O.pop();else break}else O=m.inlineTokens(D);return{type:e,raw:W,attributes:M,content:D,tokens:O}}}}}},renderMarkdown:(f,p)=>{const m=d(f.attrs||{}),y=a(m),b=y?` {${y}}`:"",x=p.renderChildren(f.content||[],`
- `);return`:::${c}${b}
- ${x}
- :::`}}}function sSe(t){if(!t.trim())return{};const e={},n=/(\w+)=(?:"([^"]*)"|'([^']*)')/g;let i=n.exec(t);for(;i!==null;){const[,r,a,s]=i;e[r]=a||s,i=n.exec(t)}return e}function oSe(t){return Object.entries(t).filter(([,e])=>e!=null).map(([e,n])=>`${e}="${n}"`).join(" ")}function lSe(t){const{nodeName:e,name:n,getContent:i,parseAttributes:r=sSe,serializeAttributes:a=oSe,defaultAttributes:s={},selfClosing:o=!1,allowedAttributes:l}=t,c=n||e,d=p=>{if(!l)return p;const m={};return l.forEach(y=>{y in p&&(m[y]=p[y])}),m},f=c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return{parseMarkdown:(p,m)=>{const y={...s,...p.attributes};if(o)return m.createNode(e,y);const b=i?i(p):p.content||"";return b?m.createNode(e,y,[m.createTextNode(b)]):m.createNode(e,y,[])},markdownTokenizer:{name:e,level:"inline",start(p){const m=o?new RegExp(`\\[${f}\\s*[^\\]]*\\]`):new RegExp(`\\[${f}\\s*[^\\]]*\\][\\s\\S]*?\\[\\/${f}\\]`),y=p.match(m),b=y?.index;return b!==void 0?b:-1},tokenize(p,m,y){const b=o?new RegExp(`^\\[${f}\\s*([^\\]]*)\\]`):new RegExp(`^\\[${f}\\s*([^\\]]*)\\]([\\s\\S]*?)\\[\\/${f}\\]`),x=p.match(b);if(!x)return;let v="",w="";if(o){const[,A]=x;w=A}else{const[,A,T]=x;w=A,v=T||""}const M=r(w.trim());return{type:e,raw:x[0],content:v.trim(),attributes:M}}},renderMarkdown:p=>{let m="";i?m=i(p):p.content&&p.content.length>0&&(m=p.content.filter(v=>v.type==="text").map(v=>v.text).join(""));const y=d(p.attrs||{}),b=a(y),x=b?` ${b}`:"";return o?`[${c}${x}]`:`[${c}${x}]${m}[/${c}]`}}}function qR(t,e,n){var i,r,a,s;const o=t.split(`
- `),l=[];let c="",d=0;const f=e.baseIndentSize||2;for(;d<o.length;){const p=o[d],m=p.match(e.itemPattern);if(!m){if(l.length>0)break;if(p.trim()===""){d+=1,c=`${c}${p}
- `;continue}else return}const y=e.extractItemData(m),{indentLevel:b,mainContent:x}=y;c=`${c}${p}
- `;const v=[x];for(d+=1;d<o.length;){const T=o[d];if(T.trim()===""){const C=o.slice(d+1).findIndex(k=>k.trim()!=="");if(C===-1)break;if((((r=(i=o[d+1+C].match(/^(\s*)/))==null?void 0:i[1])==null?void 0:r.length)||0)>b){v.push(T),c=`${c}${T}
- `,d+=1;continue}else break}if((((s=(a=T.match(/^(\s*)/))==null?void 0:a[1])==null?void 0:s.length)||0)>b)v.push(T),c=`${c}${T}
- `,d+=1;else break}let w;const M=v.slice(1);if(M.length>0){const T=M.map(D=>D.slice(b+f)).join(`
- `);T.trim()&&(e.customNestedParser?w=e.customNestedParser(T):w=n.blockTokens(T))}const A=e.createToken(y,w);l.push(A)}if(l.length!==0)return{items:l,raw:c}}function PD(t,e,n,i){if(!t||!Array.isArray(t.content))return"";const r=typeof n=="function"?n(i):n,[a,...s]=t.content,o=e.renderChildren([a]),l=[`${r}${o}`];return s&&s.length>0&&s.forEach(c=>{const d=e.renderChildren([c]);if(d){const f=d.split(`
- `).map(p=>p?e.indent(p):"").join(`
- `);l.push(f)}}),l.join(`
- `)}function cSe(t,e,n={}){const{state:i}=e,{doc:r,tr:a}=i,s=t;r.descendants((o,l)=>{const c=a.mapping.map(l),d=a.mapping.map(l)+o.nodeSize;let f=null;if(o.marks.forEach(m=>{if(m!==s)return!1;f=m}),!f)return;let p=!1;if(Object.keys(n).forEach(m=>{n[m]!==f.attrs[m]&&(p=!0)}),p){const m=t.type.create({...t.attrs,...n});a.removeMark(c,d,t.type),a.addMark(c,d,m)}}),a.docChanged&&e.view.dispatch(a)}var Ia=class OW extends TD{constructor(){super(...arguments),this.type="node"}static create(e={}){const n=typeof e=="function"?e():e;return new OW(n)}configure(e){return super.configure(e)}extend(e){const n=typeof e=="function"?e():e;return super.extend(n)}};function mf(t){return new G1e({find:t.find,handler:({state:e,range:n,match:i,pasteEvent:r})=>{const a=Tn(t.getAttributes,void 0,i,r);if(a===!1||a===null)return null;const{tr:s}=e,o=i[i.length-1],l=i[0];let c=n.to;if(o){const d=l.search(/\S/),f=n.from+l.indexOf(o),p=f+o.length;if(AD(n.from,n.to,e.doc).filter(y=>y.mark.type.excluded.find(x=>x===t.type&&x!==y.mark.type)).filter(y=>y.to>f).length)return null;p<n.to&&s.delete(p,n.to),f>n.from&&s.delete(n.from+d,f),c=n.from+d+o.length,s.addMark(n.from+d,c,t.type.create(a||{})),s.removeStoredMark(t.type)}}})}var xT,b5;function uSe(){return b5||(b5=1,xT=function t(e,n){if(e===n)return!0;if(e&&n&&typeof e=="object"&&typeof n=="object"){if(e.constructor!==n.constructor)return!1;var i,r,a;if(Array.isArray(e)){if(i=e.length,i!=n.length)return!1;for(r=i;r--!==0;)if(!t(e[r],n[r]))return!1;return!0}if(e instanceof Map&&n instanceof Map){if(e.size!==n.size)return!1;for(r of e.entries())if(!n.has(r[0]))return!1;for(r of e.entries())if(!t(r[1],n.get(r[0])))return!1;return!0}if(e instanceof Set&&n instanceof Set){if(e.size!==n.size)return!1;for(r of e.entries())if(!n.has(r[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(n)){if(i=e.length,i!=n.length)return!1;for(r=i;r--!==0;)if(e[r]!==n[r])return!1;return!0}if(e.constructor===RegExp)return e.source===n.source&&e.flags===n.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===n.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===n.toString();if(a=Object.keys(e),i=a.length,i!==Object.keys(n).length)return!1;for(r=i;r--!==0;)if(!Object.prototype.hasOwnProperty.call(n,a[r]))return!1;for(r=i;r--!==0;){var s=a[r];if(!(s==="_owner"&&e.$$typeof)&&!t(e[s],n[s]))return!1}return!0}return e!==e&&n!==n}),xT}var dSe=uSe();const fSe=Vs(dSe);var yT={exports:{}},bT={};var _5;function hSe(){if(_5)return bT;_5=1;var t=Hp(),e=T$();function n(c,d){return c===d&&(c!==0||1/c===1/d)||c!==c&&d!==d}var i=typeof Object.is=="function"?Object.is:n,r=e.useSyncExternalStore,a=t.useRef,s=t.useEffect,o=t.useMemo,l=t.useDebugValue;return bT.useSyncExternalStoreWithSelector=function(c,d,f,p,m){var y=a(null);if(y.current===null){var b={hasValue:!1,value:null};y.current=b}else b=y.current;y=o(function(){function v(D){if(!w){if(w=!0,M=D,D=p(D),m!==void 0&&b.hasValue){var C=b.value;if(m(C,D))return A=C}return A=D}if(C=A,i(M,D))return C;var U=p(D);return m!==void 0&&m(C,U)?(M=D,C):(M=D,A=U)}var w=!1,M,A,T=f===void 0?null:f;return[function(){return v(d())},T===null?void 0:function(){return v(T())}]},[d,f,p,m]);var x=r(c,y[0],y[1]);return s(function(){b.hasValue=!0,b.value=x},[x]),l(x),x},bT}var S5;function pSe(){return S5||(S5=1,yT.exports=hSe()),yT.exports}var LW=pSe(),mSe=(...t)=>e=>{t.forEach(n=>{typeof n=="function"?n(e):n&&(n.current=e)})},gSe=({contentComponent:t})=>{const e=C$.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getServerSnapshot);return S.jsx(S.Fragment,{children:Object.values(e)})};function vSe(){const t=new Set;let e={};return{subscribe(n){return t.add(n),()=>{t.delete(n)}},getSnapshot(){return e},getServerSnapshot(){return e},setRenderer(n,i){e={...e,[n]:Ate.createPortal(i.reactElement,i.element,n)},t.forEach(r=>r())},removeRenderer(n){const i={...e};delete i[n],e=i,t.forEach(r=>r())}}}var xSe=class extends gi.Component{constructor(t){var e;super(t),this.editorContentRef=gi.createRef(),this.initialized=!1,this.state={hasContentComponentInitialized:!!((e=t.editor)!=null&&e.contentComponent)}}componentDidMount(){this.init()}componentDidUpdate(){this.init()}init(){const t=this.props.editor;if(t&&!t.isDestroyed&&t.options.element){if(t.contentComponent)return;const e=this.editorContentRef.current;e.append(t.view.dom),t.setOptions({element:e}),t.contentComponent=vSe(),this.state.hasContentComponentInitialized||(this.unsubscribeToContentComponent=t.contentComponent.subscribe(()=>{this.setState(n=>n.hasContentComponentInitialized?n:{hasContentComponentInitialized:!0}),this.unsubscribeToContentComponent&&this.unsubscribeToContentComponent()})),t.createNodeViews(),this.initialized=!0}}componentWillUnmount(){var t;const e=this.props.editor;if(e){this.initialized=!1,e.isDestroyed||e.view.setProps({nodeViews:{}}),this.unsubscribeToContentComponent&&this.unsubscribeToContentComponent(),e.contentComponent=null;try{if(!((t=e.view.dom)!=null&&t.firstChild))return;const n=document.createElement("div");n.append(e.view.dom),e.setOptions({element:n})}catch{}}}render(){const{editor:t,innerRef:e,...n}=this.props;return S.jsxs(S.Fragment,{children:[S.jsx("div",{ref:mSe(e,this.editorContentRef),...n}),t?.contentComponent&&S.jsx(gSe,{contentComponent:t.contentComponent})]})}},ySe=R.forwardRef((t,e)=>{const n=gi.useMemo(()=>Math.floor(Math.random()*4294967295).toString(),[t.editor]);return gi.createElement(xSe,{key:n,innerRef:e,...t})}),bSe=gi.memo(ySe),_Se=typeof window<"u"?R.useLayoutEffect:R.useEffect,SSe=class{constructor(t){this.transactionNumber=0,this.lastTransactionNumber=0,this.subscribers=new Set,this.editor=t,this.lastSnapshot={editor:t,transactionNumber:0},this.getSnapshot=this.getSnapshot.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.watch=this.watch.bind(this),this.subscribe=this.subscribe.bind(this)}getSnapshot(){return this.transactionNumber===this.lastTransactionNumber?this.lastSnapshot:(this.lastTransactionNumber=this.transactionNumber,this.lastSnapshot={editor:this.editor,transactionNumber:this.transactionNumber},this.lastSnapshot)}getServerSnapshot(){return{editor:null,transactionNumber:0}}subscribe(t){return this.subscribers.add(t),()=>{this.subscribers.delete(t)}}watch(t){if(this.editor=t,this.editor){const e=()=>{this.transactionNumber+=1,this.subscribers.forEach(i=>i())},n=this.editor;return n.on("transaction",e),()=>{n.off("transaction",e)}}}};function wSe(t){var e;const[n]=R.useState(()=>new SSe(t.editor)),i=LW.useSyncExternalStoreWithSelector(n.subscribe,n.getSnapshot,n.getServerSnapshot,t.selector,(e=t.equalityFn)!=null?e:fSe);return _Se(()=>n.watch(t.editor),[t.editor,n]),R.useDebugValue(i),i}var MSe=!1,XR=typeof window>"u",ESe=XR||!!(typeof window<"u"&&window.next),ASe=class kW{constructor(e){this.editor=null,this.subscriptions=new Set,this.isComponentMounted=!1,this.previousDeps=null,this.instanceId="",this.options=e,this.subscriptions=new Set,this.setEditor(this.getInitialEditor()),this.scheduleDestroy(),this.getEditor=this.getEditor.bind(this),this.getServerSnapshot=this.getServerSnapshot.bind(this),this.subscribe=this.subscribe.bind(this),this.refreshEditorInstance=this.refreshEditorInstance.bind(this),this.scheduleDestroy=this.scheduleDestroy.bind(this),this.onRender=this.onRender.bind(this),this.createEditor=this.createEditor.bind(this)}setEditor(e){this.editor=e,this.instanceId=Math.random().toString(36).slice(2,9),this.subscriptions.forEach(n=>n())}getInitialEditor(){return this.options.current.immediatelyRender===void 0?XR||ESe?null:this.createEditor():(this.options.current.immediatelyRender,this.options.current.immediatelyRender?this.createEditor():null)}createEditor(){const e={...this.options.current,onBeforeCreate:(...i)=>{var r,a;return(a=(r=this.options.current).onBeforeCreate)==null?void 0:a.call(r,...i)},onBlur:(...i)=>{var r,a;return(a=(r=this.options.current).onBlur)==null?void 0:a.call(r,...i)},onCreate:(...i)=>{var r,a;return(a=(r=this.options.current).onCreate)==null?void 0:a.call(r,...i)},onDestroy:(...i)=>{var r,a;return(a=(r=this.options.current).onDestroy)==null?void 0:a.call(r,...i)},onFocus:(...i)=>{var r,a;return(a=(r=this.options.current).onFocus)==null?void 0:a.call(r,...i)},onSelectionUpdate:(...i)=>{var r,a;return(a=(r=this.options.current).onSelectionUpdate)==null?void 0:a.call(r,...i)},onTransaction:(...i)=>{var r,a;return(a=(r=this.options.current).onTransaction)==null?void 0:a.call(r,...i)},onUpdate:(...i)=>{var r,a;return(a=(r=this.options.current).onUpdate)==null?void 0:a.call(r,...i)},onContentError:(...i)=>{var r,a;return(a=(r=this.options.current).onContentError)==null?void 0:a.call(r,...i)},onDrop:(...i)=>{var r,a;return(a=(r=this.options.current).onDrop)==null?void 0:a.call(r,...i)},onPaste:(...i)=>{var r,a;return(a=(r=this.options.current).onPaste)==null?void 0:a.call(r,...i)},onDelete:(...i)=>{var r,a;return(a=(r=this.options.current).onDelete)==null?void 0:a.call(r,...i)}};return new Q1e(e)}getEditor(){return this.editor}getServerSnapshot(){return null}subscribe(e){return this.subscriptions.add(e),()=>{this.subscriptions.delete(e)}}static compareOptions(e,n){return Object.keys(e).every(i=>["onCreate","onBeforeCreate","onDestroy","onUpdate","onTransaction","onFocus","onBlur","onSelectionUpdate","onContentError","onDrop","onPaste"].includes(i)?!0:i==="extensions"&&e.extensions&&n.extensions?e.extensions.length!==n.extensions.length?!1:e.extensions.every((r,a)=>{var s;return r===((s=n.extensions)==null?void 0:s[a])}):e[i]===n[i])}onRender(e){return()=>(this.isComponentMounted=!0,clearTimeout(this.scheduledDestructionTimeout),this.editor&&!this.editor.isDestroyed&&e.length===0?kW.compareOptions(this.options.current,this.editor.options)||this.editor.setOptions({...this.options.current,editable:this.editor.isEditable}):this.refreshEditorInstance(e),()=>{this.isComponentMounted=!1,this.scheduleDestroy()})}refreshEditorInstance(e){if(this.editor&&!this.editor.isDestroyed){if(this.previousDeps===null){this.previousDeps=e;return}if(this.previousDeps.length===e.length&&this.previousDeps.every((i,r)=>i===e[r]))return}this.editor&&!this.editor.isDestroyed&&this.editor.destroy(),this.setEditor(this.createEditor()),this.previousDeps=e}scheduleDestroy(){const e=this.instanceId,n=this.editor;this.scheduledDestructionTimeout=setTimeout(()=>{if(this.isComponentMounted&&this.instanceId===e){n&&n.setOptions(this.options.current);return}n&&!n.isDestroyed&&(n.destroy(),this.instanceId===e&&this.setEditor(null))},1)}};function TSe(t={},e=[]){const n=R.useRef(t);n.current=t;const[i]=R.useState(()=>new ASe(n)),r=C$.useSyncExternalStore(i.subscribe,i.getEditor,i.getServerSnapshot);return R.useDebugValue(r),R.useEffect(i.onRender(e)),wSe({editor:r,selector:({transactionNumber:a})=>t.shouldRerenderOnTransaction===!1||t.shouldRerenderOnTransaction===void 0?null:t.immediatelyRender&&a===0?0:a+1}),r}var CSe=R.createContext({editor:null});CSe.Consumer;var RSe=R.createContext({onDragStart:()=>{},nodeViewContentChildren:void 0,nodeViewContentRef:()=>{}}),PSe=()=>R.useContext(RSe);gi.forwardRef((t,e)=>{const{onDragStart:n}=PSe(),i=t.as||"div";return S.jsx(i,{...t,ref:e,"data-node-view-wrapper":"",onDragStart:n,style:{whiteSpace:"normal",...t.style}})});gi.createContext({markViewContentRef:()=>{}});var E_=(t,e)=>{if(t==="slot")return 0;if(t instanceof Function)return t(e);const{children:n,...i}=e??{};if(t==="svg")throw new Error("SVG elements are not supported in the JSX syntax, use the array syntax instead");return[t,i,n]},DSe=/^\s*>\s$/,NSe=Ia.create({name:"blockquote",addOptions(){return{HTMLAttributes:{}}},content:"block+",group:"block",defining:!0,parseHTML(){return[{tag:"blockquote"}]},renderHTML({HTMLAttributes:t}){return E_("blockquote",{...vi(this.options.HTMLAttributes,t),children:E_("slot",{})})},parseMarkdown:(t,e)=>e.createNode("blockquote",void 0,e.parseChildren(t.tokens||[])),renderMarkdown:(t,e)=>{if(!t.content)return"";const n=">",i=[];return t.content.forEach(r=>{const o=e.renderChildren([r]).split(`
- `).map(l=>l.trim()===""?n:`${n} ${l}`);i.push(o.join(`
- `))}),i.join(`
- ${n}
- `)},addCommands(){return{setBlockquote:()=>({commands:t})=>t.wrapIn(this.name),toggleBlockquote:()=>({commands:t})=>t.toggleWrap(this.name),unsetBlockquote:()=>({commands:t})=>t.lift(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-b":()=>this.editor.commands.toggleBlockquote()}},addInputRules(){return[Np({find:DSe,type:this.type})]}}),OSe=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,LSe=/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,kSe=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,ISe=/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,USe=ju.create({name:"bold",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"strong"},{tag:"b",getAttrs:t=>t.style.fontWeight!=="normal"&&null},{style:"font-weight=400",clearMark:t=>t.type.name===this.name},{style:"font-weight",getAttrs:t=>/^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null}]},renderHTML({HTMLAttributes:t}){return E_("strong",{...vi(this.options.HTMLAttributes,t),children:E_("slot",{})})},markdownTokenName:"strong",parseMarkdown:(t,e)=>e.applyMark("bold",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`**${e.renderChildren(t)}**`,addCommands(){return{setBold:()=>({commands:t})=>t.setMark(this.name),toggleBold:()=>({commands:t})=>t.toggleMark(this.name),unsetBold:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-b":()=>this.editor.commands.toggleBold(),"Mod-B":()=>this.editor.commands.toggleBold()}},addInputRules(){return[Dp({find:OSe,type:this.type}),Dp({find:kSe,type:this.type})]},addPasteRules(){return[mf({find:LSe,type:this.type}),mf({find:ISe,type:this.type})]}}),FSe=/(^|[^`])`([^`]+)`(?!`)$/,zSe=/(^|[^`])`([^`]+)`(?!`)/g,BSe=ju.create({name:"code",addOptions(){return{HTMLAttributes:{}}},excludes:"_",code:!0,exitable:!0,parseHTML(){return[{tag:"code"}]},renderHTML({HTMLAttributes:t}){return["code",vi(this.options.HTMLAttributes,t),0]},markdownTokenName:"codespan",parseMarkdown:(t,e)=>e.applyMark("code",[{type:"text",text:t.text||""}]),renderMarkdown:(t,e)=>t.content?`\`${e.renderChildren(t.content)}\``:"",addCommands(){return{setCode:()=>({commands:t})=>t.setMark(this.name),toggleCode:()=>({commands:t})=>t.toggleMark(this.name),unsetCode:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-e":()=>this.editor.commands.toggleCode()}},addInputRules(){return[Dp({find:FSe,type:this.type})]},addPasteRules(){return[mf({find:zSe,type:this.type})]}}),_T=4,jSe=/^```([a-z]+)?[\s\n]$/,HSe=/^~~~([a-z]+)?[\s\n]$/,VSe=Ia.create({name:"codeBlock",addOptions(){return{languageClassPrefix:"language-",exitOnTripleEnter:!0,exitOnArrowDown:!0,defaultLanguage:null,enableTabIndentation:!1,tabSize:_T,HTMLAttributes:{}}},content:"text*",marks:"",group:"block",code:!0,defining:!0,addAttributes(){return{language:{default:this.options.defaultLanguage,parseHTML:t=>{var e;const{languageClassPrefix:n}=this.options;if(!n)return null;const a=[...((e=t.firstElementChild)==null?void 0:e.classList)||[]].filter(s=>s.startsWith(n)).map(s=>s.replace(n,""))[0];return a||null},rendered:!1}}},parseHTML(){return[{tag:"pre",preserveWhitespace:"full"}]},renderHTML({node:t,HTMLAttributes:e}){return["pre",vi(this.options.HTMLAttributes,e),["code",{class:t.attrs.language?this.options.languageClassPrefix+t.attrs.language:null},0]]},markdownTokenName:"code",parseMarkdown:(t,e)=>{var n;return((n=t.raw)==null?void 0:n.startsWith("```"))===!1&&t.codeBlockStyle!=="indented"?[]:e.createNode("codeBlock",{language:t.lang||null},t.text?[e.createTextNode(t.text)]:[])},renderMarkdown:(t,e)=>{var n;let i="";const r=((n=t.attrs)==null?void 0:n.language)||"";return t.content?i=[`\`\`\`${r}`,e.renderChildren(t.content),"```"].join(`
- `):i=`\`\`\`${r}
- \`\`\``,i},addCommands(){return{setCodeBlock:t=>({commands:e})=>e.setNode(this.name,t),toggleCodeBlock:t=>({commands:e})=>e.toggleNode(this.name,"paragraph",t)}},addKeyboardShortcuts(){return{"Mod-Alt-c":()=>this.editor.commands.toggleCodeBlock(),Backspace:()=>{const{empty:t,$anchor:e}=this.editor.state.selection,n=e.pos===1;return!t||e.parent.type.name!==this.name?!1:n||!e.parent.textContent.length?this.editor.commands.clearNodes():!1},Tab:({editor:t})=>{var e;if(!this.options.enableTabIndentation)return!1;const n=(e=this.options.tabSize)!=null?e:_T,{state:i}=t,{selection:r}=i,{$from:a,empty:s}=r;if(a.parent.type!==this.type)return!1;const o=" ".repeat(n);return s?t.commands.insertContent(o):t.commands.command(({tr:l})=>{const{from:c,to:d}=r,m=i.doc.textBetween(c,d,`
- `,`
- `).split(`
- `).map(y=>o+y).join(`
- `);return l.replaceWith(c,d,i.schema.text(m)),!0})},"Shift-Tab":({editor:t})=>{var e;if(!this.options.enableTabIndentation)return!1;const n=(e=this.options.tabSize)!=null?e:_T,{state:i}=t,{selection:r}=i,{$from:a,empty:s}=r;return a.parent.type!==this.type?!1:s?t.commands.command(({tr:o})=>{var l;const{pos:c}=a,d=a.start(),f=a.end(),m=i.doc.textBetween(d,f,`
- `,`
- `).split(`
- `);let y=0,b=0;const x=c-d;for(let D=0;D<m.length;D+=1){if(b+m[D].length>=x){y=D;break}b+=m[D].length+1}const w=((l=m[y].match(/^ */))==null?void 0:l[0])||"",M=Math.min(w.length,n);if(M===0)return!0;let A=d;for(let D=0;D<y;D+=1)A+=m[D].length+1;return o.delete(A,A+M),c-A<=M&&o.setSelection(zt.create(o.doc,A)),!0}):t.commands.command(({tr:o})=>{const{from:l,to:c}=r,p=i.doc.textBetween(l,c,`
- `,`
- `).split(`
- `).map(m=>{var y;const b=((y=m.match(/^ */))==null?void 0:y[0])||"",x=Math.min(b.length,n);return m.slice(x)}).join(`
- `);return o.replaceWith(l,c,i.schema.text(p)),!0})},Enter:({editor:t})=>{if(!this.options.exitOnTripleEnter)return!1;const{state:e}=t,{selection:n}=e,{$from:i,empty:r}=n;if(!r||i.parent.type!==this.type)return!1;const a=i.parentOffset===i.parent.nodeSize-2,s=i.parent.textContent.endsWith(`
- `);return!a||!s?!1:t.chain().command(({tr:o})=>(o.delete(i.pos-2,i.pos),!0)).exitCode().run()},ArrowDown:({editor:t})=>{if(!this.options.exitOnArrowDown)return!1;const{state:e}=t,{selection:n,doc:i}=e,{$from:r,empty:a}=n;if(!a||r.parent.type!==this.type||!(r.parentOffset===r.parent.nodeSize-2))return!1;const o=r.after();return o===void 0?!1:i.nodeAt(o)?t.commands.command(({tr:c})=>(c.setSelection(Qt.near(i.resolve(o))),!0)):t.commands.exitCode()}}},addInputRules(){return[WR({find:jSe,type:this.type,getAttributes:t=>({language:t[1]})}),WR({find:HSe,type:this.type,getAttributes:t=>({language:t[1]})})]},addProseMirrorPlugins(){return[new li({key:new rr("codeBlockVSCodeHandler"),props:{handlePaste:(t,e)=>{if(!e.clipboardData||this.editor.isActive(this.type.name))return!1;const n=e.clipboardData.getData("text/plain"),i=e.clipboardData.getData("vscode-editor-data"),r=i?JSON.parse(i):void 0,a=r?.mode;if(!n||!a)return!1;const{tr:s,schema:o}=t.state,l=o.text(n.replace(/\r\n?/g,`
- `));return s.replaceSelectionWith(this.type.create({language:a},l)),s.selection.$from.parent.type!==this.type&&s.setSelection(zt.near(s.doc.resolve(Math.max(0,s.selection.from-2)))),s.setMeta("paste",!0),t.dispatch(s),!0}}})]}}),GSe=Ia.create({name:"doc",topNode:!0,content:"block+",renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,`
- `):""}),$Se=Ia.create({name:"hardBreak",markdownTokenName:"br",addOptions(){return{keepMarks:!0,HTMLAttributes:{}}},inline:!0,group:"inline",selectable:!1,linebreakReplacement:!0,parseHTML(){return[{tag:"br"}]},renderHTML({HTMLAttributes:t}){return["br",vi(this.options.HTMLAttributes,t)]},renderText(){return`
- `},renderMarkdown:()=>`
- `,parseMarkdown:()=>({type:"hardBreak"}),addCommands(){return{setHardBreak:()=>({commands:t,chain:e,state:n,editor:i})=>t.first([()=>t.exitCode(),()=>t.command(()=>{const{selection:r,storedMarks:a}=n;if(r.$from.parent.type.spec.isolating)return!1;const{keepMarks:s}=this.options,{splittableMarks:o}=i.extensionManager,l=a||r.$to.parentOffset&&r.$from.marks();return e().insertContent({type:this.name}).command(({tr:c,dispatch:d})=>{if(d&&l&&s){const f=l.filter(p=>o.includes(p.type.name));c.ensureMarks(f)}return!0}).run()})])}},addKeyboardShortcuts(){return{"Mod-Enter":()=>this.editor.commands.setHardBreak(),"Shift-Enter":()=>this.editor.commands.setHardBreak()}}}),WSe=Ia.create({name:"heading",addOptions(){return{levels:[1,2,3,4,5,6],HTMLAttributes:{}}},content:"inline*",group:"block",defining:!0,addAttributes(){return{level:{default:1,rendered:!1}}},parseHTML(){return this.options.levels.map(t=>({tag:`h${t}`,attrs:{level:t}}))},renderHTML({node:t,HTMLAttributes:e}){return[`h${this.options.levels.includes(t.attrs.level)?t.attrs.level:this.options.levels[0]}`,vi(this.options.HTMLAttributes,e),0]},parseMarkdown:(t,e)=>e.createNode("heading",{level:t.depth||1},e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>{var n;const i=(n=t.attrs)!=null&&n.level?parseInt(t.attrs.level,10):1,r="#".repeat(i);return t.content?`${r} ${e.renderChildren(t.content)}`:""},addCommands(){return{setHeading:t=>({commands:e})=>this.options.levels.includes(t.level)?e.setNode(this.name,t):!1,toggleHeading:t=>({commands:e})=>this.options.levels.includes(t.level)?e.toggleNode(this.name,"paragraph",t):!1}},addKeyboardShortcuts(){return this.options.levels.reduce((t,e)=>({...t,[`Mod-Alt-${e}`]:()=>this.editor.commands.toggleHeading({level:e})}),{})},addInputRules(){return this.options.levels.map(t=>WR({find:new RegExp(`^(#{${Math.min(...this.options.levels)},${t}})\\s$`),type:this.type,getAttributes:{level:t}}))}}),qSe=Ia.create({name:"horizontalRule",addOptions(){return{HTMLAttributes:{},nextNodeType:"paragraph"}},group:"block",parseHTML(){return[{tag:"hr"}]},renderHTML({HTMLAttributes:t}){return["hr",vi(this.options.HTMLAttributes,t)]},markdownTokenName:"hr",parseMarkdown:(t,e)=>e.createNode("horizontalRule"),renderMarkdown:()=>"---",addCommands(){return{setHorizontalRule:()=>({chain:t,state:e})=>{if(!nSe(e,e.schema.nodes[this.name]))return!1;const{selection:n}=e,{$to:i}=n,r=t();return vW(n)?r.insertContentAt(i.pos,{type:this.name}):r.insertContent({type:this.name}),r.command(({state:a,tr:s,dispatch:o})=>{if(o){const{$to:l}=s.selection,c=l.end();if(l.nodeAfter)l.nodeAfter.isTextblock?s.setSelection(zt.create(s.doc,l.pos+1)):l.nodeAfter.isBlock?s.setSelection(It.create(s.doc,l.pos)):s.setSelection(zt.create(s.doc,l.pos));else{const d=a.schema.nodes[this.options.nextNodeType]||l.parent.type.contentMatch.defaultType,f=d?.create();f&&(s.insert(c,f),s.setSelection(zt.create(s.doc,c+1)))}s.scrollIntoView()}return!0}).run()}}},addInputRules(){return[NW({find:/^(?:---|—-|___\s|\*\*\*\s)$/,type:this.type})]}}),XSe=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,YSe=/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,KSe=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,ZSe=/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,JSe=ju.create({name:"italic",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"em"},{tag:"i",getAttrs:t=>t.style.fontStyle!=="normal"&&null},{style:"font-style=normal",clearMark:t=>t.type.name===this.name},{style:"font-style=italic"}]},renderHTML({HTMLAttributes:t}){return["em",vi(this.options.HTMLAttributes,t),0]},addCommands(){return{setItalic:()=>({commands:t})=>t.setMark(this.name),toggleItalic:()=>({commands:t})=>t.toggleMark(this.name),unsetItalic:()=>({commands:t})=>t.unsetMark(this.name)}},markdownTokenName:"em",parseMarkdown:(t,e)=>e.applyMark("italic",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`*${e.renderChildren(t)}*`,addKeyboardShortcuts(){return{"Mod-i":()=>this.editor.commands.toggleItalic(),"Mod-I":()=>this.editor.commands.toggleItalic()}},addInputRules(){return[Dp({find:XSe,type:this.type}),Dp({find:KSe,type:this.type})]},addPasteRules(){return[mf({find:YSe,type:this.type}),mf({find:ZSe,type:this.type})]}});const QSe="aaa1rp3bb0ott3vie4c1le2ogado5udhabi7c0ademy5centure6ountant0s9o1tor4d0s1ult4e0g1ro2tna4f0l1rica5g0akhan5ency5i0g1rbus3force5tel5kdn3l0ibaba4pay4lfinanz6state5y2sace3tom5m0azon4ericanexpress7family11x2fam3ica3sterdam8nalytics7droid5quan4z2o0l2partments8p0le4q0uarelle8r0ab1mco4chi3my2pa2t0e3s0da2ia2sociates9t0hleta5torney7u0ction5di0ble3o3spost5thor3o0s4w0s2x0a2z0ure5ba0by2idu3namex4d1k2r0celona5laycard4s5efoot5gains6seball5ketball8uhaus5yern5b0c1t1va3cg1n2d1e0ats2uty4er2rlin4st0buy5t2f1g1h0arti5i0ble3d1ke2ng0o3o1z2j1lack0friday9ockbuster8g1omberg7ue3m0s1w2n0pparibas9o0ats3ehringer8fa2m1nd2o0k0ing5sch2tik2on4t1utique6x2r0adesco6idgestone9oadway5ker3ther5ussels7s1t1uild0ers6siness6y1zz3v1w1y1z0h3ca0b1fe2l0l1vinklein9m0era3p2non3petown5ital0one8r0avan4ds2e0er0s4s2sa1e1h1ino4t0ering5holic7ba1n1re3c1d1enter4o1rn3f0a1d2g1h0anel2nel4rity4se2t2eap3intai5ristmas6ome4urch5i0priani6rcle4sco3tadel4i0c2y3k1l0aims4eaning6ick2nic1que6othing5ud3ub0med6m1n1o0ach3des3ffee4llege4ogne5m0mbank4unity6pany2re3uter5sec4ndos3struction8ulting7tact3ractors9oking4l1p2rsica5untry4pon0s4rses6pa2r0edit0card4union9icket5own3s1uise0s6u0isinella9v1w1x1y0mru3ou3z2dad1nce3ta1e1ing3sun4y2clk3ds2e0al0er2s3gree4livery5l1oitte5ta3mocrat6ntal2ist5si0gn4v2hl2iamonds6et2gital5rect0ory7scount3ver5h2y2j1k1m1np2o0cs1tor4g1mains5t1wnload7rive4tv2ubai3nlop4pont4rban5vag2r2z2earth3t2c0o2deka3u0cation8e1g1mail3erck5nergy4gineer0ing9terprises10pson4quipment8r0icsson6ni3s0q1tate5t1u0rovision8s2vents5xchange6pert3osed4ress5traspace10fage2il1rwinds6th3mily4n0s2rm0ers5shion4t3edex3edback6rrari3ero6i0delity5o2lm2nal1nce1ial7re0stone6mdale6sh0ing5t0ness6j1k1lickr3ghts4r2orist4wers5y2m1o0o0d1tball6rd1ex2sale4um3undation8x2r0ee1senius7l1ogans4ntier7tr2ujitsu5n0d2rniture7tbol5yi3ga0l0lery3o1up4me0s3p1rden4y2b0iz3d0n2e0a1nt0ing5orge5f1g0ee3h1i0ft0s3ves2ing5l0ass3e1obal2o4m0ail3bh2o1x2n1odaddy5ld0point6f2o0dyear5g0le4p1t1v2p1q1r0ainger5phics5tis4een3ipe3ocery4up4s1t1u0cci3ge2ide2tars5ru3w1y2hair2mburg5ngout5us3bo2dfc0bank7ealth0care8lp1sinki6re1mes5iphop4samitsu7tachi5v2k0t2m1n1ockey4ldings5iday5medepot5goods5s0ense7nda3rse3spital5t0ing5t0els3mail5use3w2r1sbc3t1u0ghes5yatt3undai7ibm2cbc2e1u2d1e0ee3fm2kano4l1m0amat4db2mo0bilien9n0c1dustries8finiti5o2g1k1stitute6urance4e4t0ernational10uit4vestments10o1piranga7q1r0ish4s0maili5t0anbul7t0au2v3jaguar4va3cb2e0ep2tzt3welry6io2ll2m0p2nj2o0bs1urg4t1y2p0morgan6rs3uegos4niper7kaufen5ddi3e0rryhotels6properties14fh2g1h1i0a1ds2m1ndle4tchen5wi3m1n1oeln3matsu5sher5p0mg2n2r0d1ed3uokgroup8w1y0oto4z2la0caixa5mborghini8er3nd0rover6xess5salle5t0ino3robe5w0yer5b1c1ds2ease3clerc5frak4gal2o2xus4gbt3i0dl2fe0insurance9style7ghting6ke2lly3mited4o2ncoln4k2ve1ing5k1lc1p2oan0s3cker3us3l1ndon4tte1o3ve3pl0financial11r1s1t0d0a3u0ndbeck6xe1ury5v1y2ma0drid4if1son4keup4n0agement7go3p1rket0ing3s4riott5shalls7ttel5ba2c0kinsey7d1e0d0ia3et2lbourne7me1orial6n0u2rckmsd7g1h1iami3crosoft7l1ni1t2t0subishi9k1l0b1s2m0a2n1o0bi0le4da2e1i1m1nash3ey2ster5rmon3tgage6scow4to0rcycles9v0ie4p1q1r1s0d2t0n1r2u0seum3ic4v1w1x1y1z2na0b1goya4me2vy3ba2c1e0c1t0bank4flix4work5ustar5w0s2xt0direct7us4f0l2g0o2hk2i0co2ke1on3nja3ssan1y5l1o0kia3rton4w0ruz3tv4p1r0a1w2tt2u1yc2z2obi1server7ffice5kinawa6layan0group9lo3m0ega4ne1g1l0ine5oo2pen3racle3nge4g0anic5igins6saka4tsuka4t2vh3pa0ge2nasonic7ris2s1tners4s1y3y2ccw3e0t2f0izer5g1h0armacy6d1ilips5one2to0graphy6s4ysio5ics1tet2ures6d1n0g1k2oneer5zza4k1l0ace2y0station9umbing5s3m1n0c2ohl2ker3litie5rn2st3r0axi3ess3ime3o0d0uctions8f1gressive8mo2perties3y5tection8u0dential9s1t1ub2w0c2y2qa1pon3uebec3st5racing4dio4e0ad1lestate6tor2y4cipes5d0stone5umbrella9hab3ise0n3t2liance6n0t0als5pair3ort3ublican8st0aurant8view0s5xroth6ich0ardli6oh3l1o1p2o0cks3deo3gers4om3s0vp3u0gby3hr2n2w0e2yukyu6sa0arland6fe0ty4kura4le1on3msclub4ung5ndvik0coromant12ofi4p1rl2s1ve2xo3b0i1s2c0b1haeffler7midt4olarships8ol3ule3warz5ience5ot3d1e0arch3t2cure1ity6ek2lect4ner3rvices6ven3w1x0y3fr2g1h0angrila6rp3ell3ia1ksha5oes2p0ping5uji3w3i0lk2na1gles5te3j1k0i0n2y0pe4l0ing4m0art3ile4n0cf3o0ccer3ial4ftbank4ware6hu2lar2utions7ng1y2y2pa0ce3ort2t3r0l2s1t0ada2ples4r1tebank4farm7c0group6ockholm6rage3e3ream4udio2y3yle4u0cks3pplies3y2ort5rf1gery5zuki5v1watch4iss4x1y0dney4stems6z2tab1ipei4lk2obao4rget4tamotors6r2too4x0i3c0i2d0k2eam2ch0nology8l1masek5nnis4va3f1g1h0d1eater2re6iaa2ckets5enda4ps2res2ol4j0maxx4x2k0maxx5l1m0all4n1o0day3kyo3ols3p1ray3shiba5tal3urs3wn2yota3s3r0ade1ing4ining5vel0ers0insurance16ust3v2t1ube2i1nes3shu4v0s2w1z2ua1bank3s2g1k1nicom3versity8o2ol2ps2s1y1z2va0cations7na1guard7c1e0gas3ntures6risign5mögensberater2ung14sicherung10t2g1i0ajes4deo3g1king4llas4n1p1rgin4sa1ion4va1o3laanderen9n1odka3lvo3te1ing3o2yage5u2wales2mart4ter4ng0gou5tch0es6eather0channel12bcam3er2site5d0ding5ibo2r3f1hoswho6ien2ki2lliamhill9n0dows4e1ners6me2olterskluwer11odside6rk0s2ld3w2s1tc1f3xbox3erox4ihuan4n2xx2yz3yachts4hoo3maxun5ndex5e1odobashi7ga2kohama6u0tube6t1un3za0ppos4ra3ero3ip2m1one3uerich6w2",ewe="ελ1υ2бг1ел3дети4ею2католик6ом3мкд2он1сква6онлайн5рг3рус2ф2сайт3рб3укр3қаз3հայ3ישראל5קום3ابوظبي5رامكو5لاردن4بحرين5جزائر5سعودية6عليان5مغرب5مارات5یران5بارت2زار4يتك3ھارت5تونس4سودان3رية5شبكة4عراق2ب2مان4فلسطين6قطر3كاثوليك6وم3مصر2ليسيا5وريتانيا7قع4همراه5پاکستان7ڀارت4कॉम3नेट3भारत0म्3ोत5संगठन5বাংলা5ভারত2ৰত4ਭਾਰਤ4ભારત4ଭାରତ4இந்தியா6லங்கை6சிங்கப்பூர்11భారత్5ಭಾರತ4ഭാരതം5ලංකා4คอม3ไทย3ລາວ3გე2みんな3アマゾン4クラウド4グーグル4コム2ストア3セール3ファッション6ポイント4世界2中信1国1國1文网3亚马逊3企业2佛山2信息2健康2八卦2公司1益2台湾1灣2商城1店1标2嘉里0大酒店5在线2大拿2天主教3娱乐2家電2广东2微博2慈善2我爱你3手机2招聘2政务1府2新加坡2闻2时尚2書籍2机构2淡马锡3游戏2澳門2点看2移动2组织机构4网址1店1站1络2联通2谷歌2购物2通販2集团2電訊盈科4飞利浦3食品2餐厅2香格里拉3港2닷넷1컴2삼성2한국2",YR="numeric",KR="ascii",ZR="alpha",Kg="asciinumeric",Ig="alphanumeric",JR="domain",IW="emoji",twe="scheme",nwe="slashscheme",ST="whitespace";function iwe(t,e){return t in e||(e[t]=[]),e[t]}function kd(t,e,n){e[YR]&&(e[Kg]=!0,e[Ig]=!0),e[KR]&&(e[Kg]=!0,e[ZR]=!0),e[Kg]&&(e[Ig]=!0),e[ZR]&&(e[Ig]=!0),e[Ig]&&(e[JR]=!0),e[IW]&&(e[JR]=!0);for(const i in e){const r=iwe(i,n);r.indexOf(t)<0&&r.push(t)}}function rwe(t,e){const n={};for(const i in e)e[i].indexOf(t)>=0&&(n[i]=!0);return n}function Ca(t=null){this.j={},this.jr=[],this.jd=null,this.t=t}Ca.groups={};Ca.prototype={accepts(){return!!this.t},go(t){const e=this,n=e.j[t];if(n)return n;for(let i=0;i<e.jr.length;i++){const r=e.jr[i][0],a=e.jr[i][1];if(a&&r.test(t))return a}return e.jd},has(t,e=!1){return e?t in this.j:!!this.go(t)},ta(t,e,n,i){for(let r=0;r<t.length;r++)this.tt(t[r],e,n,i)},tr(t,e,n,i){i=i||Ca.groups;let r;return e&&e.j?r=e:(r=new Ca(e),n&&i&&kd(e,n,i)),this.jr.push([t,r]),r},ts(t,e,n,i){let r=this;const a=t.length;if(!a)return r;for(let s=0;s<a-1;s++)r=r.tt(t[s]);return r.tt(t[a-1],e,n,i)},tt(t,e,n,i){i=i||Ca.groups;const r=this;if(e&&e.j)return r.j[t]=e,e;const a=e;let s,o=r.go(t);if(o?(s=new Ca,Object.assign(s.j,o.j),s.jr.push.apply(s.jr,o.jr),s.jd=o.jd,s.t=o.t):s=new Ca,a){if(i)if(s.t&&typeof s.t=="string"){const l=Object.assign(rwe(s.t,i),n);kd(a,l,i)}else n&&kd(a,n,i);s.t=a}return r.j[t]=s,s}};const Yt=(t,e,n,i,r)=>t.ta(e,n,i,r),hi=(t,e,n,i,r)=>t.tr(e,n,i,r),w5=(t,e,n,i,r)=>t.ts(e,n,i,r),ft=(t,e,n,i,r)=>t.tt(e,n,i,r),Pl="WORD",QR="UWORD",UW="ASCIINUMERICAL",FW="ALPHANUMERICAL",R0="LOCALHOST",e3="TLD",t3="UTLD",Fb="SCHEME",Yh="SLASH_SCHEME",DD="NUM",n3="WS",ND="NL",Zg="OPENBRACE",Jg="CLOSEBRACE",A_="OPENBRACKET",T_="CLOSEBRACKET",C_="OPENPAREN",R_="CLOSEPAREN",P_="OPENANGLEBRACKET",D_="CLOSEANGLEBRACKET",N_="FULLWIDTHLEFTPAREN",O_="FULLWIDTHRIGHTPAREN",L_="LEFTCORNERBRACKET",k_="RIGHTCORNERBRACKET",I_="LEFTWHITECORNERBRACKET",U_="RIGHTWHITECORNERBRACKET",F_="FULLWIDTHLESSTHAN",z_="FULLWIDTHGREATERTHAN",B_="AMPERSAND",j_="APOSTROPHE",H_="ASTERISK",iu="AT",V_="BACKSLASH",G_="BACKTICK",$_="CARET",uu="COLON",OD="COMMA",W_="DOLLAR",To="DOT",q_="EQUALS",LD="EXCLAMATION",ws="HYPHEN",Qg="PERCENT",X_="PIPE",Y_="PLUS",K_="POUND",e0="QUERY",kD="QUOTE",zW="FULLWIDTHMIDDLEDOT",ID="SEMI",Co="SLASH",t0="TILDE",Z_="UNDERSCORE",BW="EMOJI",J_="SYM";var jW=Object.freeze({__proto__:null,ALPHANUMERICAL:FW,AMPERSAND:B_,APOSTROPHE:j_,ASCIINUMERICAL:UW,ASTERISK:H_,AT:iu,BACKSLASH:V_,BACKTICK:G_,CARET:$_,CLOSEANGLEBRACKET:D_,CLOSEBRACE:Jg,CLOSEBRACKET:T_,CLOSEPAREN:R_,COLON:uu,COMMA:OD,DOLLAR:W_,DOT:To,EMOJI:BW,EQUALS:q_,EXCLAMATION:LD,FULLWIDTHGREATERTHAN:z_,FULLWIDTHLEFTPAREN:N_,FULLWIDTHLESSTHAN:F_,FULLWIDTHMIDDLEDOT:zW,FULLWIDTHRIGHTPAREN:O_,HYPHEN:ws,LEFTCORNERBRACKET:L_,LEFTWHITECORNERBRACKET:I_,LOCALHOST:R0,NL:ND,NUM:DD,OPENANGLEBRACKET:P_,OPENBRACE:Zg,OPENBRACKET:A_,OPENPAREN:C_,PERCENT:Qg,PIPE:X_,PLUS:Y_,POUND:K_,QUERY:e0,QUOTE:kD,RIGHTCORNERBRACKET:k_,RIGHTWHITECORNERBRACKET:U_,SCHEME:Fb,SEMI:ID,SLASH:Co,SLASH_SCHEME:Yh,SYM:J_,TILDE:t0,TLD:e3,UNDERSCORE:Z_,UTLD:t3,UWORD:QR,WORD:Pl,WS:n3});const Al=/[a-z]/,bg=new RegExp("\\p{L}","u"),wT=new RegExp("\\p{Emoji}","u"),Tl=/\d/,MT=/\s/,M5="\r",ET=`
- `,awe="️",swe="",AT="";let tb=null,nb=null;function owe(t=[]){const e={};Ca.groups=e;const n=new Ca;tb==null&&(tb=E5(QSe)),nb==null&&(nb=E5(ewe)),ft(n,"'",j_),ft(n,"{",Zg),ft(n,"}",Jg),ft(n,"[",A_),ft(n,"]",T_),ft(n,"(",C_),ft(n,")",R_),ft(n,"<",P_),ft(n,">",D_),ft(n,"(",N_),ft(n,")",O_),ft(n,"「",L_),ft(n,"」",k_),ft(n,"『",I_),ft(n,"』",U_),ft(n,"<",F_),ft(n,">",z_),ft(n,"&",B_),ft(n,"*",H_),ft(n,"@",iu),ft(n,"`",G_),ft(n,"^",$_),ft(n,":",uu),ft(n,",",OD),ft(n,"$",W_),ft(n,".",To),ft(n,"=",q_),ft(n,"!",LD),ft(n,"-",ws),ft(n,"%",Qg),ft(n,"|",X_),ft(n,"+",Y_),ft(n,"#",K_),ft(n,"?",e0),ft(n,'"',kD),ft(n,"/",Co),ft(n,";",ID),ft(n,"~",t0),ft(n,"_",Z_),ft(n,"\\",V_),ft(n,"・",zW);const i=hi(n,Tl,DD,{[YR]:!0});hi(i,Tl,i);const r=hi(i,Al,UW,{[Kg]:!0}),a=hi(i,bg,FW,{[Ig]:!0}),s=hi(n,Al,Pl,{[KR]:!0});hi(s,Tl,r),hi(s,Al,s),hi(r,Tl,r),hi(r,Al,r);const o=hi(n,bg,QR,{[ZR]:!0});hi(o,Al),hi(o,Tl,a),hi(o,bg,o),hi(a,Tl,a),hi(a,Al),hi(a,bg,a);const l=ft(n,ET,ND,{[ST]:!0}),c=ft(n,M5,n3,{[ST]:!0}),d=hi(n,MT,n3,{[ST]:!0});ft(n,AT,d),ft(c,ET,l),ft(c,AT,d),hi(c,MT,d),ft(d,M5),ft(d,ET),hi(d,MT,d),ft(d,AT,d);const f=hi(n,wT,BW,{[IW]:!0});ft(f,"#"),hi(f,wT,f),ft(f,awe,f);const p=ft(f,swe);ft(p,"#"),hi(p,wT,f);const m=[[Al,s],[Tl,r]],y=[[Al,null],[bg,o],[Tl,a]];for(let b=0;b<tb.length;b++)Jc(n,tb[b],e3,Pl,m);for(let b=0;b<nb.length;b++)Jc(n,nb[b],t3,QR,y);kd(e3,{tld:!0,ascii:!0},e),kd(t3,{utld:!0,alpha:!0},e),Jc(n,"file",Fb,Pl,m),Jc(n,"mailto",Fb,Pl,m),Jc(n,"http",Yh,Pl,m),Jc(n,"https",Yh,Pl,m),Jc(n,"ftp",Yh,Pl,m),Jc(n,"ftps",Yh,Pl,m),kd(Fb,{scheme:!0,ascii:!0},e),kd(Yh,{slashscheme:!0,ascii:!0},e),t=t.sort((b,x)=>b[0]>x[0]?1:-1);for(let b=0;b<t.length;b++){const x=t[b][0],w=t[b][1]?{[twe]:!0}:{[nwe]:!0};x.indexOf("-")>=0?w[JR]=!0:Al.test(x)?Tl.test(x)?w[Kg]=!0:w[KR]=!0:w[YR]=!0,w5(n,x,x,w)}return w5(n,"localhost",R0,{ascii:!0}),n.jd=new Ca(J_),{start:n,tokens:Object.assign({groups:e},jW)}}function HW(t,e){const n=lwe(e.replace(/[A-Z]/g,o=>o.toLowerCase())),i=n.length,r=[];let a=0,s=0;for(;s<i;){let o=t,l=null,c=0,d=null,f=-1,p=-1;for(;s<i&&(l=o.go(n[s]));)o=l,o.accepts()?(f=0,p=0,d=o):f>=0&&(f+=n[s].length,p++),c+=n[s].length,a+=n[s].length,s++;a-=f,s-=p,c-=f,r.push({t:d.t,v:e.slice(a-c,a),s:a-c,e:a})}return r}function lwe(t){const e=[],n=t.length;let i=0;for(;i<n;){let r=t.charCodeAt(i),a,s=r<55296||r>56319||i+1===n||(a=t.charCodeAt(i+1))<56320||a>57343?t[i]:t.slice(i,i+2);e.push(s),i+=s.length}return e}function Jc(t,e,n,i,r){let a;const s=e.length;for(let o=0;o<s-1;o++){const l=e[o];t.j[l]?a=t.j[l]:(a=new Ca(i),a.jr=r.slice(),t.j[l]=a),t=a}return a=new Ca(n),a.jr=r.slice(),t.j[e[s-1]]=a,a}function E5(t){const e=[],n=[];let i=0,r="0123456789";for(;i<t.length;){let a=0;for(;r.indexOf(t[i+a])>=0;)a++;if(a>0){e.push(n.join(""));for(let s=parseInt(t.substring(i,i+a),10);s>0;s--)n.pop();i+=a}else n.push(t[i]),i++}return e}const P0={defaultProtocol:"http",events:null,format:A5,formatHref:A5,nl2br:!1,tagName:"a",target:null,rel:null,validate:!0,truncate:1/0,className:null,attributes:null,ignoreTags:[],render:null};function UD(t,e=null){let n=Object.assign({},P0);t&&(n=Object.assign(n,t instanceof UD?t.o:t));const i=n.ignoreTags,r=[];for(let a=0;a<i.length;a++)r.push(i[a].toUpperCase());this.o=n,e&&(this.defaultRender=e),this.ignoreTags=r}UD.prototype={o:P0,ignoreTags:[],defaultRender(t){return t},check(t){return this.get("validate",t.toString(),t)},get(t,e,n){const i=e!=null;let r=this.o[t];return r&&(typeof r=="object"?(r=n.t in r?r[n.t]:P0[t],typeof r=="function"&&i&&(r=r(e,n))):typeof r=="function"&&i&&(r=r(e,n.t,n)),r)},getObj(t,e,n){let i=this.o[t];return typeof i=="function"&&e!=null&&(i=i(e,n.t,n)),i},render(t){const e=t.render(this);return(this.get("render",null,t)||this.defaultRender)(e,t.t,t)}};function A5(t){return t}function VW(t,e){this.t="token",this.v=t,this.tk=e}VW.prototype={isLink:!1,toString(){return this.v},toHref(t){return this.toString()},toFormattedString(t){const e=this.toString(),n=t.get("truncate",e,this),i=t.get("format",e,this);return n&&i.length>n?i.substring(0,n)+"…":i},toFormattedHref(t){return t.get("formatHref",this.toHref(t.get("defaultProtocol")),this)},startIndex(){return this.tk[0].s},endIndex(){return this.tk[this.tk.length-1].e},toObject(t=P0.defaultProtocol){return{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(t),start:this.startIndex(),end:this.endIndex()}},toFormattedObject(t){return{type:this.t,value:this.toFormattedString(t),isLink:this.isLink,href:this.toFormattedHref(t),start:this.startIndex(),end:this.endIndex()}},validate(t){return t.get("validate",this.toString(),this)},render(t){const e=this,n=this.toHref(t.get("defaultProtocol")),i=t.get("formatHref",n,this),r=t.get("tagName",n,e),a=this.toFormattedString(t),s={},o=t.get("className",n,e),l=t.get("target",n,e),c=t.get("rel",n,e),d=t.getObj("attributes",n,e),f=t.getObj("events",n,e);return s.href=i,o&&(s.class=o),l&&(s.target=l),c&&(s.rel=c),d&&Object.assign(s,d),{tagName:r,attributes:s,content:a,eventListeners:f}}};function ES(t,e){class n extends VW{constructor(r,a){super(r,a),this.t=t}}for(const i in e)n.prototype[i]=e[i];return n.t=t,n}const T5=ES("email",{isLink:!0,toHref(){return"mailto:"+this.toString()}}),C5=ES("text"),cwe=ES("nl"),ib=ES("url",{isLink:!0,toHref(t=P0.defaultProtocol){return this.hasProtocol()?this.v:`${t}://${this.v}`},hasProtocol(){const t=this.tk;return t.length>=2&&t[0].t!==R0&&t[1].t===uu}}),ys=t=>new Ca(t);function uwe({groups:t}){const e=t.domain.concat([B_,H_,iu,V_,G_,$_,W_,q_,ws,DD,Qg,X_,Y_,K_,Co,J_,t0,Z_]),n=[j_,uu,OD,To,LD,Qg,e0,kD,ID,P_,D_,Zg,Jg,T_,A_,C_,R_,N_,O_,L_,k_,I_,U_,F_,z_],i=[B_,j_,H_,V_,G_,$_,W_,q_,ws,Zg,Jg,Qg,X_,Y_,K_,e0,Co,J_,t0,Z_],r=ys(),a=ft(r,t0);Yt(a,i,a),Yt(a,t.domain,a);const s=ys(),o=ys(),l=ys();Yt(r,t.domain,s),Yt(r,t.scheme,o),Yt(r,t.slashscheme,l),Yt(s,i,a),Yt(s,t.domain,s);const c=ft(s,iu);ft(a,iu,c),ft(o,iu,c),ft(l,iu,c);const d=ft(a,To);Yt(d,i,a),Yt(d,t.domain,a);const f=ys();Yt(c,t.domain,f),Yt(f,t.domain,f);const p=ft(f,To);Yt(p,t.domain,f);const m=ys(T5);Yt(p,t.tld,m),Yt(p,t.utld,m),ft(c,R0,m);const y=ft(f,ws);ft(y,ws,y),Yt(y,t.domain,f),Yt(m,t.domain,f),ft(m,To,p),ft(m,ws,y);const b=ft(m,uu);Yt(b,t.numeric,T5);const x=ft(s,ws),v=ft(s,To);ft(x,ws,x),Yt(x,t.domain,s),Yt(v,i,a),Yt(v,t.domain,s);const w=ys(ib);Yt(v,t.tld,w),Yt(v,t.utld,w),Yt(w,t.domain,s),Yt(w,i,a),ft(w,To,v),ft(w,ws,x),ft(w,iu,c);const M=ft(w,uu),A=ys(ib);Yt(M,t.numeric,A);const T=ys(ib),D=ys();Yt(T,e,T),Yt(T,n,D),Yt(D,e,T),Yt(D,n,D),ft(w,Co,T),ft(A,Co,T);const C=ft(o,uu),U=ft(l,uu),P=ft(U,Co),k=ft(P,Co);Yt(o,t.domain,s),ft(o,To,v),ft(o,ws,x),Yt(l,t.domain,s),ft(l,To,v),ft(l,ws,x),Yt(C,t.domain,T),ft(C,Co,T),ft(C,e0,T),Yt(k,t.domain,T),Yt(k,e,T),ft(k,Co,T);const B=[[Zg,Jg],[A_,T_],[C_,R_],[P_,D_],[N_,O_],[L_,k_],[I_,U_],[F_,z_]];for(let I=0;I<B.length;I++){const[W,O]=B[I],$=ft(T,W);ft(D,W,$),ft($,O,T);const q=ys(ib);Yt($,e,q);const G=ys();Yt($,n),Yt(q,e,q),Yt(q,n,G),Yt(G,e,q),Yt(G,n,G),ft(q,O,T),ft(G,O,T)}return ft(r,R0,w),ft(r,ND,cwe),{start:r,tokens:jW}}function dwe(t,e,n){let i=n.length,r=0,a=[],s=[];for(;r<i;){let o=t,l=null,c=null,d=0,f=null,p=-1;for(;r<i&&!(l=o.go(n[r].t));)s.push(n[r++]);for(;r<i&&(c=l||o.go(n[r].t));)l=null,o=c,o.accepts()?(p=0,f=o):p>=0&&p++,r++,d++;if(p<0)r-=d,r<i&&(s.push(n[r]),r++);else{s.length>0&&(a.push(TT(C5,e,s)),s=[]),r-=p,d-=p;const m=f.t,y=n.slice(r-d,r);a.push(TT(m,e,y))}}return s.length>0&&a.push(TT(C5,e,s)),a}function TT(t,e,n){const i=n[0].s,r=n[n.length-1].e,a=e.slice(i,r);return new t(a,n)}const fwe=typeof console<"u"&&console&&console.warn||(()=>{}),hwe="until manual call of linkify.init(). Register all schemes and plugins before invoking linkify the first time.",Kn={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function pwe(){return Ca.groups={},Kn.scanner=null,Kn.parser=null,Kn.tokenQueue=[],Kn.pluginQueue=[],Kn.customSchemes=[],Kn.initialized=!1,Kn}function R5(t,e=!1){if(Kn.initialized&&fwe(`linkifyjs: already initialized - will not register custom scheme "${t}" ${hwe}`),!/^[0-9a-z]+(-[0-9a-z]+)*$/.test(t))throw new Error(`linkifyjs: incorrect scheme format.
- 1. Must only contain digits, lowercase ASCII letters or "-"
- 2. Cannot start or end with "-"
- 3. "-" cannot repeat`);Kn.customSchemes.push([t,e])}function mwe(){Kn.scanner=owe(Kn.customSchemes);for(let t=0;t<Kn.tokenQueue.length;t++)Kn.tokenQueue[t][1]({scanner:Kn.scanner});Kn.parser=uwe(Kn.scanner.tokens);for(let t=0;t<Kn.pluginQueue.length;t++)Kn.pluginQueue[t][1]({scanner:Kn.scanner,parser:Kn.parser});return Kn.initialized=!0,Kn}function FD(t){return Kn.initialized||mwe(),dwe(Kn.parser.start,t,HW(Kn.scanner.start,t))}FD.scan=HW;function GW(t,e=null,n=null){if(e&&typeof e=="object"){if(n)throw Error(`linkifyjs: Invalid link type ${e}; must be a string`);n=e,e=null}const i=new UD(n),r=FD(t),a=[];for(let s=0;s<r.length;s++){const o=r[s];o.isLink&&(!e||o.t===e)&&i.check(o)&&a.push(o.toFormattedObject(i))}return a}var zD="[\0- -\u2029 ]",gwe=new RegExp(zD),vwe=new RegExp(`${zD}$`),xwe=new RegExp(zD,"g");function ywe(t){return t.length===1?t[0].isLink:t.length===3&&t[1].isLink?["()","[]"].includes(t[0].value+t[2].value):!1}function bwe(t){return new li({key:new rr("autolink"),appendTransaction:(e,n,i)=>{const r=e.some(c=>c.docChanged)&&!n.doc.eq(i.doc),a=e.some(c=>c.getMeta("preventAutolink"));if(!r||a)return;const{tr:s}=i,o=cW(n.doc,[...e]);if(gW(o).forEach(({newRange:c})=>{const d=i1e(i.doc,c,m=>m.isTextblock);let f,p;if(d.length>1)f=d[0],p=i.doc.textBetween(f.pos,f.pos+f.node.nodeSize,void 0," ");else if(d.length){const m=i.doc.textBetween(c.from,c.to," "," ");if(!vwe.test(m))return;f=d[0],p=i.doc.textBetween(f.pos,c.to,void 0," ")}if(f&&p){const m=p.split(gwe).filter(Boolean);if(m.length<=0)return!1;const y=m[m.length-1],b=f.pos+p.lastIndexOf(y);if(!y)return!1;const x=FD(y).map(v=>v.toObject(t.defaultProtocol));if(!ywe(x))return!1;x.filter(v=>v.isLink).map(v=>({...v,from:b+v.start+1,to:b+v.end+1})).filter(v=>i.schema.marks.code?!i.doc.rangeHasMark(v.from,v.to,i.schema.marks.code):!0).filter(v=>t.validate(v.value)).filter(v=>t.shouldAutoLink(v.value)).forEach(v=>{AD(v.from,v.to,i.doc).some(w=>w.mark.type===t.type)||s.addMark(v.from,v.to,t.type.create({href:v.href}))})}}),!!s.steps.length)return s}})}function _we(t){return new li({key:new rr("handleClickLink"),props:{handleClick:(e,n,i)=>{var r,a;if(i.button!==0||!e.editable)return!1;let s=null;if(i.target instanceof HTMLAnchorElement)s=i.target;else{let d=i.target;const f=[];for(;d.nodeName!=="DIV";)f.push(d),d=d.parentNode;s=f.find(p=>p.nodeName==="A")}if(!s)return!1;const o=mW(e.state,t.type.name),l=(r=s?.href)!=null?r:o.href,c=(a=s?.target)!=null?a:o.target;return t.enableClickSelection&&t.editor.commands.extendMarkRange(t.type.name),s&&l?(window.open(l,c),!0):!1}}})}function Swe(t){return new li({key:new rr("handlePasteLink"),props:{handlePaste:(e,n,i)=>{const{shouldAutoLink:r}=t,{state:a}=e,{selection:s}=a,{empty:o}=s;if(o)return!1;let l="";i.content.forEach(d=>{l+=d.textContent});const c=GW(l,{defaultProtocol:t.defaultProtocol}).find(d=>d.isLink&&d.value===l);return!l||!c||r!==void 0&&!r(c.href)?!1:t.editor.commands.setMark(t.type,{href:c.href})}}})}function xd(t,e){const n=["http","https","ftp","ftps","mailto","tel","callto","sms","cid","xmpp"];return e&&e.forEach(i=>{const r=typeof i=="string"?i:i.scheme;r&&n.push(r)}),!t||t.replace(xwe,"").match(new RegExp(`^(?:(?:${n.join("|")}):|[^a-z]|[a-z0-9+.-]+(?:[^a-z+.-:]|$))`,"i"))}var $W=ju.create({name:"link",priority:1e3,keepOnSplit:!1,exitable:!0,onCreate(){this.options.validate&&!this.options.shouldAutoLink&&(this.options.shouldAutoLink=this.options.validate,console.warn("The `validate` option is deprecated. Rename to the `shouldAutoLink` option instead.")),this.options.protocols.forEach(t=>{if(typeof t=="string"){R5(t);return}R5(t.scheme,t.optionalSlashes)})},onDestroy(){pwe()},inclusive(){return this.options.autolink},addOptions(){return{openOnClick:!0,enableClickSelection:!1,linkOnPaste:!0,autolink:!0,protocols:[],defaultProtocol:"http",HTMLAttributes:{target:"_blank",rel:"noopener noreferrer nofollow",class:null},isAllowedUri:(t,e)=>!!xd(t,e.protocols),validate:t=>!!t,shouldAutoLink:t=>!!t}},addAttributes(){return{href:{default:null,parseHTML(t){return t.getAttribute("href")}},target:{default:this.options.HTMLAttributes.target},rel:{default:this.options.HTMLAttributes.rel},class:{default:this.options.HTMLAttributes.class}}},parseHTML(){return[{tag:"a[href]",getAttrs:t=>{const e=t.getAttribute("href");return!e||!this.options.isAllowedUri(e,{defaultValidate:n=>!!xd(n,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:null}}]},renderHTML({HTMLAttributes:t}){return this.options.isAllowedUri(t.href,{defaultValidate:e=>!!xd(e,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?["a",vi(this.options.HTMLAttributes,t),0]:["a",vi(this.options.HTMLAttributes,{...t,href:""}),0]},markdownTokenName:"link",parseMarkdown:(t,e)=>e.applyMark("link",e.parseInline(t.tokens||[]),{href:t.href,title:t.title||null}),renderMarkdown:(t,e)=>{var n;const i=((n=t.attrs)==null?void 0:n.href)||"";return`[${e.renderChildren(t)}](${i})`},addCommands(){return{setLink:t=>({chain:e})=>{const{href:n}=t;return this.options.isAllowedUri(n,{defaultValidate:i=>!!xd(i,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?e().setMark(this.name,t).setMeta("preventAutolink",!0).run():!1},toggleLink:t=>({chain:e})=>{const{href:n}=t||{};return n&&!this.options.isAllowedUri(n,{defaultValidate:i=>!!xd(i,this.options.protocols),protocols:this.options.protocols,defaultProtocol:this.options.defaultProtocol})?!1:e().toggleMark(this.name,t,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()},unsetLink:()=>({chain:t})=>t().unsetMark(this.name,{extendEmptyMarkRange:!0}).setMeta("preventAutolink",!0).run()}},addPasteRules(){return[mf({find:t=>{const e=[];if(t){const{protocols:n,defaultProtocol:i}=this.options,r=GW(t).filter(a=>a.isLink&&this.options.isAllowedUri(a.value,{defaultValidate:s=>!!xd(s,n),protocols:n,defaultProtocol:i}));r.length&&r.forEach(a=>{this.options.shouldAutoLink(a.value)&&e.push({text:a.value,data:{href:a.href},index:a.start})})}return e},type:this.type,getAttributes:t=>{var e;return{href:(e=t.data)==null?void 0:e.href}}})]},addProseMirrorPlugins(){const t=[],{protocols:e,defaultProtocol:n}=this.options;return this.options.autolink&&t.push(bwe({type:this.type,defaultProtocol:this.options.defaultProtocol,validate:i=>this.options.isAllowedUri(i,{defaultValidate:r=>!!xd(r,e),protocols:e,defaultProtocol:n}),shouldAutoLink:this.options.shouldAutoLink})),this.options.openOnClick===!0&&t.push(_we({type:this.type,editor:this.editor,enableClickSelection:this.options.enableClickSelection})),this.options.linkOnPaste&&t.push(Swe({editor:this.editor,defaultProtocol:this.options.defaultProtocol,type:this.type,shouldAutoLink:this.options.shouldAutoLink})),t}}),wwe=$W,Mwe=Object.defineProperty,Ewe=(t,e)=>{for(var n in e)Mwe(t,n,{get:e[n],enumerable:!0})},Awe="listItem",P5="textStyle",D5=/^\s*([-+*])\s$/,WW=Ia.create({name:"bulletList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:"ul"}]},renderHTML({HTMLAttributes:t}){return["ul",vi(this.options.HTMLAttributes,t),0]},markdownTokenName:"list",parseMarkdown:(t,e)=>t.type!=="list"||t.ordered?[]:{type:"bulletList",content:t.items?e.parseChildren(t.items):[]},renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,`
- `):"",markdownOptions:{indentsContent:!0},addCommands(){return{toggleBulletList:()=>({commands:t,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(Awe,this.editor.getAttributes(P5)).run():t.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-8":()=>this.editor.commands.toggleBulletList()}},addInputRules(){let t=Np({find:D5,type:this.type});return(this.options.keepMarks||this.options.keepAttributes)&&(t=Np({find:D5,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:()=>this.editor.getAttributes(P5),editor:this.editor})),[t]}}),qW=Ia.create({name:"listItem",addOptions(){return{HTMLAttributes:{},bulletListTypeName:"bulletList",orderedListTypeName:"orderedList"}},content:"paragraph block*",defining:!0,parseHTML(){return[{tag:"li"}]},renderHTML({HTMLAttributes:t}){return["li",vi(this.options.HTMLAttributes,t),0]},markdownTokenName:"list_item",parseMarkdown:(t,e)=>{if(t.type!=="list_item")return[];let n=[];if(t.tokens&&t.tokens.length>0)if(t.tokens.some(r=>r.type==="paragraph"))n=e.parseChildren(t.tokens);else{const r=t.tokens[0];if(r&&r.type==="text"&&r.tokens&&r.tokens.length>0){if(n=[{type:"paragraph",content:e.parseInline(r.tokens)}],t.tokens.length>1){const s=t.tokens.slice(1),o=e.parseChildren(s);n.push(...o)}}else n=e.parseChildren(t.tokens)}return n.length===0&&(n=[{type:"paragraph",content:[]}]),{type:"listItem",content:n}},renderMarkdown:(t,e,n)=>PD(t,e,i=>i.parentType==="bulletList"?"- ":i.parentType==="orderedList"?`${i.index+1}. `:"- ",n),addKeyboardShortcuts(){return{Enter:()=>this.editor.commands.splitListItem(this.name),Tab:()=>this.editor.commands.sinkListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)}}}),Twe={};Ewe(Twe,{findListItemPos:()=>sv,getNextListDepth:()=>BD,handleBackspace:()=>i3,handleDelete:()=>r3,hasListBefore:()=>XW,hasListItemAfter:()=>Cwe,hasListItemBefore:()=>YW,listItemHasSubList:()=>KW,nextListIsDeeper:()=>ZW,nextListIsHigher:()=>JW});var sv=(t,e)=>{const{$from:n}=e.selection,i=Hi(t,e.schema);let r=null,a=n.depth,s=n.pos,o=null;for(;a>0&&o===null;)r=n.node(a),r.type===i?o=a:(a-=1,s-=1);return o===null?null:{$pos:e.doc.resolve(s),depth:o}},BD=(t,e)=>{const n=sv(t,e);if(!n)return!1;const[,i]=h1e(e,t,n.$pos.pos+4);return i},XW=(t,e,n)=>{const{$anchor:i}=t.selection,r=Math.max(0,i.pos-2),a=t.doc.resolve(r).node();return!(!a||!n.includes(a.type.name))},YW=(t,e)=>{var n;const{$anchor:i}=e.selection,r=e.doc.resolve(i.pos-2);return!(r.index()===0||((n=r.nodeBefore)==null?void 0:n.type.name)!==t)},KW=(t,e,n)=>{if(!n)return!1;const i=Hi(t,e.schema);let r=!1;return n.descendants(a=>{a.type===i&&(r=!0)}),r},i3=(t,e,n)=>{if(t.commands.undoInputRule())return!0;if(t.state.selection.from!==t.state.selection.to)return!1;if(!Ou(t.state,e)&&XW(t.state,e,n)){const{$anchor:o}=t.state.selection,l=t.state.doc.resolve(o.before()-1),c=[];l.node().descendants((p,m)=>{p.type.name===e&&c.push({node:p,pos:m})});const d=c.at(-1);if(!d)return!1;const f=t.state.doc.resolve(l.start()+d.pos+1);return t.chain().cut({from:o.start()-1,to:o.end()+1},f.end()).joinForward().run()}if(!Ou(t.state,e)||!v1e(t.state))return!1;const i=sv(e,t.state);if(!i)return!1;const a=t.state.doc.resolve(i.$pos.pos-2).node(i.depth),s=KW(e,t.state,a);return YW(e,t.state)&&!s?t.commands.joinItemBackward():t.chain().liftListItem(e).run()},ZW=(t,e)=>{const n=BD(t,e),i=sv(t,e);return!i||!n?!1:n>i.depth},JW=(t,e)=>{const n=BD(t,e),i=sv(t,e);return!i||!n?!1:n<i.depth},r3=(t,e)=>{if(!Ou(t.state,e)||!g1e(t.state,e))return!1;const{selection:n}=t.state,{$from:i,$to:r}=n;return!n.empty&&i.sameParent(r)?!1:ZW(e,t.state)?t.chain().focus(t.state.selection.from+4).lift(e).joinBackward().run():JW(e,t.state)?t.chain().joinForward().joinBackward().run():t.commands.joinItemForward()},Cwe=(t,e)=>{var n;const{$anchor:i}=e.selection,r=e.doc.resolve(i.pos-i.parentOffset-2);return!(r.index()===r.parent.childCount-1||((n=r.nodeAfter)==null?void 0:n.type.name)!==t)},QW=Fn.create({name:"listKeymap",addOptions(){return{listTypes:[{itemName:"listItem",wrapperNames:["bulletList","orderedList"]},{itemName:"taskItem",wrapperNames:["taskList"]}]}},addKeyboardShortcuts(){return{Delete:({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n})=>{t.state.schema.nodes[n]!==void 0&&r3(t,n)&&(e=!0)}),e},"Mod-Delete":({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n})=>{t.state.schema.nodes[n]!==void 0&&r3(t,n)&&(e=!0)}),e},Backspace:({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:i})=>{t.state.schema.nodes[n]!==void 0&&i3(t,n,i)&&(e=!0)}),e},"Mod-Backspace":({editor:t})=>{let e=!1;return this.options.listTypes.forEach(({itemName:n,wrapperNames:i})=>{t.state.schema.nodes[n]!==void 0&&i3(t,n,i)&&(e=!0)}),e}}}}),N5=/^(\s*)(\d+)\.\s+(.*)$/,Rwe=/^\s/;function Pwe(t){const e=[];let n=0,i=0;for(;n<t.length;){const r=t[n],a=r.match(N5);if(!a)break;const[,s,o,l]=a,c=s.length;let d=l,f=n+1;const p=[r];for(;f<t.length;){const m=t[f];if(m.match(N5))break;if(m.trim()==="")p.push(m),d+=`
- `,f+=1;else if(m.match(Rwe))p.push(m),d+=`
- ${m.slice(c+2)}`,f+=1;else break}e.push({indent:c,number:parseInt(o,10),content:d.trim(),raw:p.join(`
- `)}),i=f,n=f}return[e,i]}function e7(t,e,n){var i;const r=[];let a=0;for(;a<t.length;){const s=t[a];if(s.indent===e){const o=s.content.split(`
- `),l=((i=o[0])==null?void 0:i.trim())||"",c=[];l&&c.push({type:"paragraph",raw:l,tokens:n.inlineTokens(l)});const d=o.slice(1).join(`
- `).trim();if(d){const m=n.blockTokens(d);c.push(...m)}let f=a+1;const p=[];for(;f<t.length&&t[f].indent>e;)p.push(t[f]),f+=1;if(p.length>0){const m=Math.min(...p.map(b=>b.indent)),y=e7(p,m,n);c.push({type:"list",ordered:!0,start:p[0].number,items:y,raw:p.map(b=>b.raw).join(`
- `)})}r.push({type:"list_item",raw:s.raw,tokens:c}),a=f}else a+=1}return r}function Dwe(t,e){return t.map(n=>{if(n.type!=="list_item")return e.parseChildren([n])[0];const i=[];return n.tokens&&n.tokens.length>0&&n.tokens.forEach(r=>{if(r.type==="paragraph"||r.type==="list"||r.type==="blockquote"||r.type==="code")i.push(...e.parseChildren([r]));else if(r.type==="text"&&r.tokens){const a=e.parseChildren([r]);i.push({type:"paragraph",content:a})}else{const a=e.parseChildren([r]);a.length>0&&i.push(...a)}}),{type:"listItem",content:i}})}var Nwe="listItem",O5="textStyle",L5=/^(\d+)\.\s$/,t7=Ia.create({name:"orderedList",addOptions(){return{itemTypeName:"listItem",HTMLAttributes:{},keepMarks:!1,keepAttributes:!1}},group:"block list",content(){return`${this.options.itemTypeName}+`},addAttributes(){return{start:{default:1,parseHTML:t=>t.hasAttribute("start")?parseInt(t.getAttribute("start")||"",10):1},type:{default:null,parseHTML:t=>t.getAttribute("type")}}},parseHTML(){return[{tag:"ol"}]},renderHTML({HTMLAttributes:t}){const{start:e,...n}=t;return e===1?["ol",vi(this.options.HTMLAttributes,n),0]:["ol",vi(this.options.HTMLAttributes,t),0]},markdownTokenName:"list",parseMarkdown:(t,e)=>{if(t.type!=="list"||!t.ordered)return[];const n=t.start||1,i=t.items?Dwe(t.items,e):[];return n!==1?{type:"orderedList",attrs:{start:n},content:i}:{type:"orderedList",content:i}},renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,`
- `):"",markdownTokenizer:{name:"orderedList",level:"block",start:t=>{const e=t.match(/^(\s*)(\d+)\.\s+/),n=e?.index;return n!==void 0?n:-1},tokenize:(t,e,n)=>{var i;const r=t.split(`
- `),[a,s]=Pwe(r);if(a.length===0)return;const o=e7(a,0,n);return o.length===0?void 0:{type:"list",ordered:!0,start:((i=a[0])==null?void 0:i.number)||1,items:o,raw:r.slice(0,s).join(`
- `)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:t,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(Nwe,this.editor.getAttributes(O5)).run():t.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addInputRules(){let t=Np({find:L5,type:this.type,getAttributes:e=>({start:+e[1]}),joinPredicate:(e,n)=>n.childCount+n.attrs.start===+e[1]});return(this.options.keepMarks||this.options.keepAttributes)&&(t=Np({find:L5,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:e=>({start:+e[1],...this.editor.getAttributes(O5)}),joinPredicate:(e,n)=>n.childCount+n.attrs.start===+e[1],editor:this.editor})),[t]}}),Owe=/^\s*(\[([( |x])?\])\s$/,Lwe=Ia.create({name:"taskItem",addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:"taskList",a11y:void 0}},content(){return this.options.nested?"paragraph block*":"paragraph+"},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:t=>{const e=t.getAttribute("data-checked");return e===""||e==="true"},renderHTML:t=>({"data-checked":t.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51}]},renderHTML({node:t,HTMLAttributes:e}){return["li",vi(this.options.HTMLAttributes,e,{"data-type":this.name}),["label",["input",{type:"checkbox",checked:t.attrs.checked?"checked":null}],["span"]],["div",0]]},parseMarkdown:(t,e)=>{const n=[];if(t.tokens&&t.tokens.length>0?n.push(e.createNode("paragraph",{},e.parseInline(t.tokens))):t.text?n.push(e.createNode("paragraph",{},[e.createNode("text",{text:t.text})])):n.push(e.createNode("paragraph",{},[])),t.nestedTokens&&t.nestedTokens.length>0){const i=e.parseChildren(t.nestedTokens);n.push(...i)}return e.createNode("taskItem",{checked:t.checked||!1},n)},renderMarkdown:(t,e)=>{var n;const r=`- [${(n=t.attrs)!=null&&n.checked?"x":" "}] `;return PD(t,e,r)},addKeyboardShortcuts(){const t={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...t,Tab:()=>this.editor.commands.sinkListItem(this.name)}:t},addNodeView(){return({node:t,HTMLAttributes:e,getPos:n,editor:i})=>{const r=document.createElement("li"),a=document.createElement("label"),s=document.createElement("span"),o=document.createElement("input"),l=document.createElement("div"),c=d=>{var f,p;o.ariaLabel=((p=(f=this.options.a11y)==null?void 0:f.checkboxLabel)==null?void 0:p.call(f,d,o.checked))||`Task item checkbox for ${d.textContent||"empty task item"}`};return c(t),a.contentEditable="false",o.type="checkbox",o.addEventListener("mousedown",d=>d.preventDefault()),o.addEventListener("change",d=>{if(!i.isEditable&&!this.options.onReadOnlyChecked){o.checked=!o.checked;return}const{checked:f}=d.target;i.isEditable&&typeof n=="function"&&i.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:p})=>{const m=n();if(typeof m!="number")return!1;const y=p.doc.nodeAt(m);return p.setNodeMarkup(m,void 0,{...y?.attrs,checked:f}),!0}).run(),!i.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(t,f)||(o.checked=!o.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([d,f])=>{r.setAttribute(d,f)}),r.dataset.checked=t.attrs.checked,o.checked=t.attrs.checked,a.append(o,s),r.append(a,l),Object.entries(e).forEach(([d,f])=>{r.setAttribute(d,f)}),{dom:r,contentDOM:l,update:d=>d.type!==this.type?!1:(r.dataset.checked=d.attrs.checked,o.checked=d.attrs.checked,c(d),!0)}}},addInputRules(){return[Np({find:Owe,type:this.type,getAttributes:t=>({checked:t[t.length-1]==="x"})})]}}),kwe=Ia.create({name:"taskList",addOptions(){return{itemTypeName:"taskItem",HTMLAttributes:{}}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:t}){return["ul",vi(this.options.HTMLAttributes,t,{"data-type":this.name}),0]},parseMarkdown:(t,e)=>e.createNode("taskList",{},e.parseChildren(t.items||[])),renderMarkdown:(t,e)=>t.content?e.renderChildren(t.content,`
- `):"",markdownTokenizer:{name:"taskList",level:"block",start(t){var e;const n=(e=t.match(/^\s*[-+*]\s+\[([ xX])\]\s+/))==null?void 0:e.index;return n!==void 0?n:-1},tokenize(t,e,n){const i=a=>{const s=qR(a,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:o=>({indentLevel:o[1].length,mainContent:o[4],checked:o[3].toLowerCase()==="x"}),createToken:(o,l)=>({type:"taskItem",raw:"",mainContent:o.mainContent,indentLevel:o.indentLevel,checked:o.checked,text:o.mainContent,tokens:n.inlineTokens(o.mainContent),nestedTokens:l}),customNestedParser:i},n);return s?[{type:"taskList",raw:s.raw,items:s.items}]:n.blockTokens(a)},r=qR(t,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:a=>({indentLevel:a[1].length,mainContent:a[4],checked:a[3].toLowerCase()==="x"}),createToken:(a,s)=>({type:"taskItem",raw:"",mainContent:a.mainContent,indentLevel:a.indentLevel,checked:a.checked,text:a.mainContent,tokens:n.inlineTokens(a.mainContent),nestedTokens:s}),customNestedParser:i},n);if(r)return{type:"taskList",raw:r.raw,items:r.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:t})=>t.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});Fn.create({name:"listKit",addExtensions(){const t=[];return this.options.bulletList!==!1&&t.push(WW.configure(this.options.bulletList)),this.options.listItem!==!1&&t.push(qW.configure(this.options.listItem)),this.options.listKeymap!==!1&&t.push(QW.configure(this.options.listKeymap)),this.options.orderedList!==!1&&t.push(t7.configure(this.options.orderedList)),this.options.taskItem!==!1&&t.push(Lwe.configure(this.options.taskItem)),this.options.taskList!==!1&&t.push(kwe.configure(this.options.taskList)),t}});var Iwe=Ia.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:t}){return["p",vi(this.options.HTMLAttributes,t),0]},parseMarkdown:(t,e)=>{const n=t.tokens||[];return n.length===1&&n[0].type==="image"?e.parseChildren([n[0]]):e.createNode("paragraph",void 0,e.parseInline(n))},renderMarkdown:(t,e)=>!t||!Array.isArray(t.content)?"":e.renderChildren(t.content),addCommands(){return{setParagraph:()=>({commands:t})=>t.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),Uwe=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,Fwe=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,zwe=ju.create({name:"strike",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:t=>t.includes("line-through")?{}:!1}]},renderHTML({HTMLAttributes:t}){return["s",vi(this.options.HTMLAttributes,t),0]},markdownTokenName:"del",parseMarkdown:(t,e)=>e.applyMark("strike",e.parseInline(t.tokens||[])),renderMarkdown:(t,e)=>`~~${e.renderChildren(t)}~~`,addCommands(){return{setStrike:()=>({commands:t})=>t.setMark(this.name),toggleStrike:()=>({commands:t})=>t.toggleMark(this.name),unsetStrike:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[Dp({find:Uwe,type:this.type})]},addPasteRules(){return[mf({find:Fwe,type:this.type})]}}),Bwe=Ia.create({name:"text",group:"inline",parseMarkdown:t=>({type:"text",text:t.text||""}),renderMarkdown:t=>t.text||""}),n7=ju.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:t=>t.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:t}){return["u",vi(this.options.HTMLAttributes,t),0]},parseMarkdown(t,e){return e.applyMark(this.name||"underline",e.parseInline(t.tokens||[]))},renderMarkdown(t,e){return`++${e.renderChildren(t)}++`},markdownTokenizer:{name:"underline",level:"inline",start(t){return t.indexOf("++")},tokenize(t,e,n){const r=/^(\+\+)([\s\S]+?)(\+\+)/.exec(t);if(!r)return;const a=r[2].trim();return{type:"underline",raw:r[0],text:a,tokens:n.inlineTokens(a)}}},addCommands(){return{setUnderline:()=>({commands:t})=>t.setMark(this.name),toggleUnderline:()=>({commands:t})=>t.toggleMark(this.name),unsetUnderline:()=>({commands:t})=>t.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}}),jwe=n7;function Hwe(t={}){return new li({view(e){return new Vwe(e,t)}})}class Vwe{constructor(e,n){var i;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.width=(i=n.width)!==null&&i!==void 0?i:1,this.color=n.color===!1?void 0:n.color||"black",this.class=n.class,this.handlers=["dragover","dragend","drop","dragleave"].map(r=>{let a=s=>{this[r](s)};return e.dom.addEventListener(r,a),{name:r,handler:a}})}destroy(){this.handlers.forEach(({name:e,handler:n})=>this.editorView.dom.removeEventListener(e,n))}update(e,n){this.cursorPos!=null&&n.doc!=e.state.doc&&(this.cursorPos>e.state.doc.content.size?this.setCursor(null):this.updateOverlay())}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),n=!e.parent.inlineContent,i,r=this.editorView.dom,a=r.getBoundingClientRect(),s=a.width/r.offsetWidth,o=a.height/r.offsetHeight;if(n){let f=e.nodeBefore,p=e.nodeAfter;if(f||p){let m=this.editorView.nodeDOM(this.cursorPos-(f?f.nodeSize:0));if(m){let y=m.getBoundingClientRect(),b=f?y.bottom:y.top;f&&p&&(b=(b+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let x=this.width/2*o;i={left:y.left,right:y.right,top:b-x,bottom:b+x}}}}if(!i){let f=this.editorView.coordsAtPos(this.cursorPos),p=this.width/2*s;i={left:f.left-p,right:f.left+p,top:f.top,bottom:f.bottom}}let l=this.editorView.dom.offsetParent;this.element||(this.element=l.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",n),this.element.classList.toggle("prosemirror-dropcursor-inline",!n);let c,d;if(!l||l==document.body&&getComputedStyle(l).position=="static")c=-pageXOffset,d=-pageYOffset;else{let f=l.getBoundingClientRect(),p=f.width/l.offsetWidth,m=f.height/l.offsetHeight;c=f.left-l.scrollLeft*p,d=f.top-l.scrollTop*m}this.element.style.left=(i.left-c)/s+"px",this.element.style.top=(i.top-d)/o+"px",this.element.style.width=(i.right-i.left)/s+"px",this.element.style.height=(i.bottom-i.top)/o+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}dragover(e){if(!this.editorView.editable)return;let n=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),i=n&&n.inside>=0&&this.editorView.state.doc.nodeAt(n.inside),r=i&&i.type.spec.disableDropCursor,a=typeof r=="function"?r(this.editorView,n,e):r;if(n&&!a){let s=n.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let o=t9(this.editorView.state.doc,s,this.editorView.dragging.slice);o!=null&&(s=o)}this.setCursor(s),this.scheduleRemoval(5e3)}}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}class mi extends Qt{constructor(e){super(e,e)}map(e,n){let i=e.resolve(n.map(this.head));return mi.valid(i)?new mi(i):Qt.near(i)}content(){return _t.empty}eq(e){return e instanceof mi&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,n){if(typeof n.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new mi(e.resolve(n.pos))}getBookmark(){return new jD(this.anchor)}static valid(e){let n=e.parent;if(n.isTextblock||!Gwe(e)||!$we(e))return!1;let i=n.type.spec.allowGapCursor;if(i!=null)return i;let r=n.contentMatchAt(e.index()).defaultType;return r&&r.isTextblock}static findGapCursorFrom(e,n,i=!1){e:for(;;){if(!i&&mi.valid(e))return e;let r=e.pos,a=null;for(let s=e.depth;;s--){let o=e.node(s);if(n>0?e.indexAfter(s)<o.childCount:e.index(s)>0){a=o.child(n>0?e.indexAfter(s):e.index(s)-1);break}else if(s==0)return null;r+=n;let l=e.doc.resolve(r);if(mi.valid(l))return l}for(;;){let s=n>0?a.firstChild:a.lastChild;if(!s){if(a.isAtom&&!a.isText&&!It.isSelectable(a)){e=e.doc.resolve(r+a.nodeSize*n),i=!1;continue e}break}a=s,r+=n;let o=e.doc.resolve(r);if(mi.valid(o))return o}return null}}}mi.prototype.visible=!1;mi.findFrom=mi.findGapCursorFrom;Qt.jsonID("gapcursor",mi);class jD{constructor(e){this.pos=e}map(e){return new jD(e.map(this.pos))}resolve(e){let n=e.resolve(this.pos);return mi.valid(n)?new mi(n):Qt.near(n)}}function i7(t){return t.isAtom||t.spec.isolating||t.spec.createGapCursor}function Gwe(t){for(let e=t.depth;e>=0;e--){let n=t.index(e),i=t.node(e);if(n==0){if(i.type.spec.isolating)return!0;continue}for(let r=i.child(n-1);;r=r.lastChild){if(r.childCount==0&&!r.inlineContent||i7(r.type))return!0;if(r.inlineContent)return!1}}return!0}function $we(t){for(let e=t.depth;e>=0;e--){let n=t.indexAfter(e),i=t.node(e);if(n==i.childCount){if(i.type.spec.isolating)return!0;continue}for(let r=i.child(n);;r=r.firstChild){if(r.childCount==0&&!r.inlineContent||i7(r.type))return!0;if(r.inlineContent)return!1}}return!0}function Wwe(){return new li({props:{decorations:Kwe,createSelectionBetween(t,e,n){return e.pos==n.pos&&mi.valid(n)?new mi(n):null},handleClick:Xwe,handleKeyDown:qwe,handleDOMEvents:{beforeinput:Ywe}}})}const qwe=tW({ArrowLeft:rb("horiz",-1),ArrowRight:rb("horiz",1),ArrowUp:rb("vert",-1),ArrowDown:rb("vert",1)});function rb(t,e){const n=t=="vert"?e>0?"down":"up":e>0?"right":"left";return function(i,r,a){let s=i.selection,o=e>0?s.$to:s.$from,l=s.empty;if(s instanceof zt){if(!a.endOfTextblock(n)||o.depth==0)return!1;l=!1,o=i.doc.resolve(e>0?o.after():o.before())}let c=mi.findGapCursorFrom(o,e,l);return c?(r&&r(i.tr.setSelection(new mi(c))),!0):!1}}function Xwe(t,e,n){if(!t||!t.editable)return!1;let i=t.state.doc.resolve(e);if(!mi.valid(i))return!1;let r=t.posAtCoords({left:n.clientX,top:n.clientY});return r&&r.inside>-1&&It.isSelectable(t.state.doc.nodeAt(r.inside))?!1:(t.dispatch(t.state.tr.setSelection(new mi(i))),!0)}function Ywe(t,e){if(e.inputType!="insertCompositionText"||!(t.state.selection instanceof mi))return!1;let{$from:n}=t.state.selection,i=n.parent.contentMatchAt(n.index()).findWrapping(t.state.schema.nodes.text);if(!i)return!1;let r=lt.empty;for(let s=i.length-1;s>=0;s--)r=lt.from(i[s].createAndFill(null,r));let a=t.state.tr.replace(n.pos,n.pos,new _t(r,0,0));return a.setSelection(zt.near(a.doc.resolve(n.pos+1))),t.dispatch(a),!1}function Kwe(t){if(!(t.selection instanceof mi))return null;let e=document.createElement("div");return e.className="ProseMirror-gapcursor",ai.create(t.doc,[ua.widget(t.selection.head,e,{key:"gapcursor"})])}var Q_=200,wr=function(){};wr.prototype.append=function(e){return e.length?(e=wr.from(e),!this.length&&e||e.length<Q_&&this.leafAppend(e)||this.length<Q_&&e.leafPrepend(this)||this.appendInner(e)):this};wr.prototype.prepend=function(e){return e.length?wr.from(e).append(this):this};wr.prototype.appendInner=function(e){return new Zwe(this,e)};wr.prototype.slice=function(e,n){return e===void 0&&(e=0),n===void 0&&(n=this.length),e>=n?wr.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,n))};wr.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)};wr.prototype.forEach=function(e,n,i){n===void 0&&(n=0),i===void 0&&(i=this.length),n<=i?this.forEachInner(e,n,i,0):this.forEachInvertedInner(e,n,i,0)};wr.prototype.map=function(e,n,i){n===void 0&&(n=0),i===void 0&&(i=this.length);var r=[];return this.forEach(function(a,s){return r.push(e(a,s))},n,i),r};wr.from=function(e){return e instanceof wr?e:e&&e.length?new r7(e):wr.empty};var r7=(function(t){function e(i){t.call(this),this.values=i}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(r,a){return r==0&&a==this.length?this:new e(this.values.slice(r,a))},e.prototype.getInner=function(r){return this.values[r]},e.prototype.forEachInner=function(r,a,s,o){for(var l=a;l<s;l++)if(r(this.values[l],o+l)===!1)return!1},e.prototype.forEachInvertedInner=function(r,a,s,o){for(var l=a-1;l>=s;l--)if(r(this.values[l],o+l)===!1)return!1},e.prototype.leafAppend=function(r){if(this.length+r.length<=Q_)return new e(this.values.concat(r.flatten()))},e.prototype.leafPrepend=function(r){if(this.length+r.length<=Q_)return new e(r.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(e.prototype,n),e})(wr);wr.empty=new r7([]);var Zwe=(function(t){function e(n,i){t.call(this),this.left=n,this.right=i,this.length=n.length+i.length,this.depth=Math.max(n.depth,i.depth)+1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(i){return i<this.left.length?this.left.get(i):this.right.get(i-this.left.length)},e.prototype.forEachInner=function(i,r,a,s){var o=this.left.length;if(r<o&&this.left.forEachInner(i,r,Math.min(a,o),s)===!1||a>o&&this.right.forEachInner(i,Math.max(r-o,0),Math.min(this.length,a)-o,s+o)===!1)return!1},e.prototype.forEachInvertedInner=function(i,r,a,s){var o=this.left.length;if(r>o&&this.right.forEachInvertedInner(i,r-o,Math.max(a,o)-o,s+o)===!1||a<o&&this.left.forEachInvertedInner(i,Math.min(r,o),a,s)===!1)return!1},e.prototype.sliceInner=function(i,r){if(i==0&&r==this.length)return this;var a=this.left.length;return r<=a?this.left.slice(i,r):i>=a?this.right.slice(i-a,r-a):this.left.slice(i,a).append(this.right.slice(0,r-a))},e.prototype.leafAppend=function(i){var r=this.right.leafAppend(i);if(r)return new e(this.left,r)},e.prototype.leafPrepend=function(i){var r=this.left.leafPrepend(i);if(r)return new e(r,this.right)},e.prototype.appendInner=function(i){return this.left.depth>=Math.max(this.right.depth,i.depth)+1?new e(this.left,new e(this.right,i)):new e(this,i)},e})(wr);const Jwe=500;class ro{constructor(e,n){this.items=e,this.eventCount=n}popEvent(e,n){if(this.eventCount==0)return null;let i=this.items.length;for(;;i--)if(this.items.get(i-1).selection){--i;break}let r,a;n&&(r=this.remapping(i,this.items.length),a=r.maps.length);let s=e.tr,o,l,c=[],d=[];return this.items.forEach((f,p)=>{if(!f.step){r||(r=this.remapping(i,p+1),a=r.maps.length),a--,d.push(f);return}if(r){d.push(new Ro(f.map));let m=f.step.map(r.slice(a)),y;m&&s.maybeStep(m).doc&&(y=s.mapping.maps[s.mapping.maps.length-1],c.push(new Ro(y,void 0,void 0,c.length+d.length))),a--,y&&r.appendMap(y,a)}else s.maybeStep(f.step);if(f.selection)return o=r?f.selection.map(r.slice(a)):f.selection,l=new ro(this.items.slice(0,i).append(d.reverse().concat(c)),this.eventCount-1),!1},this.items.length,0),{remaining:l,transform:s,selection:o}}addTransform(e,n,i,r){let a=[],s=this.eventCount,o=this.items,l=!r&&o.length?o.get(o.length-1):null;for(let d=0;d<e.steps.length;d++){let f=e.steps[d].invert(e.docs[d]),p=new Ro(e.mapping.maps[d],f,n),m;(m=l&&l.merge(p))&&(p=m,d?a.pop():o=o.slice(0,o.length-1)),a.push(p),n&&(s++,n=void 0),r||(l=p)}let c=s-i.depth;return c>eMe&&(o=Qwe(o,c),s-=c),new ro(o.append(a),s)}remapping(e,n){let i=new w0;return this.items.forEach((r,a)=>{let s=r.mirrorOffset!=null&&a-r.mirrorOffset>=e?i.maps.length-r.mirrorOffset:void 0;i.appendMap(r.map,s)},e,n),i}addMaps(e){return this.eventCount==0?this:new ro(this.items.append(e.map(n=>new Ro(n))),this.eventCount)}rebased(e,n){if(!this.eventCount)return this;let i=[],r=Math.max(0,this.items.length-n),a=e.mapping,s=e.steps.length,o=this.eventCount;this.items.forEach(p=>{p.selection&&o--},r);let l=n;this.items.forEach(p=>{let m=a.getMirror(--l);if(m==null)return;s=Math.min(s,m);let y=a.maps[m];if(p.step){let b=e.steps[m].invert(e.docs[m]),x=p.selection&&p.selection.map(a.slice(l+1,m));x&&o++,i.push(new Ro(y,b,x))}else i.push(new Ro(y))},r);let c=[];for(let p=n;p<s;p++)c.push(new Ro(a.maps[p]));let d=this.items.slice(0,r).append(c).append(i),f=new ro(d,o);return f.emptyItemCount()>Jwe&&(f=f.compress(this.items.length-i.length)),f}emptyItemCount(){let e=0;return this.items.forEach(n=>{n.step||e++}),e}compress(e=this.items.length){let n=this.remapping(0,e),i=n.maps.length,r=[],a=0;return this.items.forEach((s,o)=>{if(o>=e)r.push(s),s.selection&&a++;else if(s.step){let l=s.step.map(n.slice(i)),c=l&&l.getMap();if(i--,c&&n.appendMap(c,i),l){let d=s.selection&&s.selection.map(n.slice(i));d&&a++;let f=new Ro(c.invert(),l,d),p,m=r.length-1;(p=r.length&&r[m].merge(f))?r[m]=p:r.push(f)}}else s.map&&i--},this.items.length,0),new ro(wr.from(r.reverse()),a)}}ro.empty=new ro(wr.empty,0);function Qwe(t,e){let n;return t.forEach((i,r)=>{if(i.selection&&e--==0)return n=r,!1}),t.slice(n)}class Ro{constructor(e,n,i,r){this.map=e,this.step=n,this.selection=i,this.mirrorOffset=r}merge(e){if(this.step&&e.step&&!e.selection){let n=e.step.merge(this.step);if(n)return new Ro(n.getMap().invert(),n,this.selection)}}}class ru{constructor(e,n,i,r,a){this.done=e,this.undone=n,this.prevRanges=i,this.prevTime=r,this.prevComposition=a}}const eMe=20;function tMe(t,e,n,i){let r=n.getMeta(qd),a;if(r)return r.historyState;n.getMeta(rMe)&&(t=new ru(t.done,t.undone,null,0,-1));let s=n.getMeta("appendedTransaction");if(n.steps.length==0)return t;if(s&&s.getMeta(qd))return s.getMeta(qd).redo?new ru(t.done.addTransform(n,void 0,i,zb(e)),t.undone,k5(n.mapping.maps),t.prevTime,t.prevComposition):new ru(t.done,t.undone.addTransform(n,void 0,i,zb(e)),null,t.prevTime,t.prevComposition);if(n.getMeta("addToHistory")!==!1&&!(s&&s.getMeta("addToHistory")===!1)){let o=n.getMeta("composition"),l=t.prevTime==0||!s&&t.prevComposition!=o&&(t.prevTime<(n.time||0)-i.newGroupDelay||!nMe(n,t.prevRanges)),c=s?CT(t.prevRanges,n.mapping):k5(n.mapping.maps);return new ru(t.done.addTransform(n,l?e.selection.getBookmark():void 0,i,zb(e)),ro.empty,c,n.time,o??t.prevComposition)}else return(a=n.getMeta("rebased"))?new ru(t.done.rebased(n,a),t.undone.rebased(n,a),CT(t.prevRanges,n.mapping),t.prevTime,t.prevComposition):new ru(t.done.addMaps(n.mapping.maps),t.undone.addMaps(n.mapping.maps),CT(t.prevRanges,n.mapping),t.prevTime,t.prevComposition)}function nMe(t,e){if(!e)return!1;if(!t.docChanged)return!0;let n=!1;return t.mapping.maps[0].forEach((i,r)=>{for(let a=0;a<e.length;a+=2)i<=e[a+1]&&r>=e[a]&&(n=!0)}),n}function k5(t){let e=[];for(let n=t.length-1;n>=0&&e.length==0;n--)t[n].forEach((i,r,a,s)=>e.push(a,s));return e}function CT(t,e){if(!t)return null;let n=[];for(let i=0;i<t.length;i+=2){let r=e.map(t[i],1),a=e.map(t[i+1],-1);r<=a&&n.push(r,a)}return n}function iMe(t,e,n){let i=zb(e),r=qd.get(e).spec.config,a=(n?t.undone:t.done).popEvent(e,i);if(!a)return null;let s=a.selection.resolve(a.transform.doc),o=(n?t.done:t.undone).addTransform(a.transform,e.selection.getBookmark(),r,i),l=new ru(n?o:a.remaining,n?a.remaining:o,null,0,-1);return a.transform.setSelection(s).setMeta(qd,{redo:n,historyState:l})}let RT=!1,I5=null;function zb(t){let e=t.plugins;if(I5!=e){RT=!1,I5=e;for(let n=0;n<e.length;n++)if(e[n].spec.historyPreserveItems){RT=!0;break}}return RT}const qd=new rr("history"),rMe=new rr("closeHistory");function aMe(t={}){return t={depth:t.depth||100,newGroupDelay:t.newGroupDelay||500},new li({key:qd,state:{init(){return new ru(ro.empty,ro.empty,null,0,-1)},apply(e,n,i){return tMe(n,i,e,t)}},config:t,props:{handleDOMEvents:{beforeinput(e,n){let i=n.inputType,r=i=="historyUndo"?s7:i=="historyRedo"?o7:null;return!r||!e.editable?!1:(n.preventDefault(),r(e.state,e.dispatch))}}}})}function a7(t,e){return(n,i)=>{let r=qd.getState(n);if(!r||(t?r.undone:r.done).eventCount==0)return!1;if(i){let a=iMe(r,n,t);a&&i(e?a.scrollIntoView():a)}return!0}}const s7=a7(!1,!0),o7=a7(!0,!0);Fn.create({name:"characterCount",addOptions(){return{limit:null,mode:"textSize",textCounter:t=>t.length,wordCounter:t=>t.split(" ").filter(e=>e!=="").length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=t=>{const e=t?.node||this.editor.state.doc;if((t?.mode||this.options.mode)==="textSize"){const i=e.textBetween(0,e.content.size,void 0," ");return this.options.textCounter(i)}return e.nodeSize},this.storage.words=t=>{const e=t?.node||this.editor.state.doc,n=e.textBetween(0,e.content.size," "," ");return this.options.wordCounter(n)}},addProseMirrorPlugins(){let t=!1;return[new li({key:new rr("characterCount"),appendTransaction:(e,n,i)=>{if(t)return;const r=this.options.limit;if(r==null||r===0){t=!0;return}const a=this.storage.characters({node:i.doc});if(a>r){const s=a-r,o=0,l=s;console.warn(`[CharacterCount] Initial content exceeded limit of ${r} characters. Content was automatically trimmed.`);const c=i.tr.deleteRange(o,l);return t=!0,c}t=!0},filterTransaction:(e,n)=>{const i=this.options.limit;if(!e.docChanged||i===0||i===null||i===void 0)return!0;const r=this.storage.characters({node:n.doc}),a=this.storage.characters({node:e.doc});if(a<=i||r>i&&a>i&&a<=r)return!0;if(r>i&&a>i&&a>r||!e.getMeta("paste"))return!1;const o=e.selection.$head.pos,l=a-i,c=o-l,d=o;return e.deleteRange(c,d),!(this.storage.characters({node:e.doc})>i)}})]}});var sMe=Fn.create({name:"dropCursor",addOptions(){return{color:"currentColor",width:1,class:void 0}},addProseMirrorPlugins(){return[Hwe(this.options)]}});Fn.create({name:"focus",addOptions(){return{className:"has-focus",mode:"all"}},addProseMirrorPlugins(){return[new li({key:new rr("focus"),props:{decorations:({doc:t,selection:e})=>{const{isEditable:n,isFocused:i}=this.editor,{anchor:r}=e,a=[];if(!n||!i)return ai.create(t,[]);let s=0;this.options.mode==="deepest"&&t.descendants((l,c)=>{if(l.isText)return;if(!(r>=c&&r<=c+l.nodeSize-1))return!1;s+=1});let o=0;return t.descendants((l,c)=>{if(l.isText||!(r>=c&&r<=c+l.nodeSize-1))return!1;if(o+=1,this.options.mode==="deepest"&&s-o>0||this.options.mode==="shallowest"&&o>1)return this.options.mode==="deepest";a.push(ua.node(c,c+l.nodeSize,{class:this.options.className}))}),ai.create(t,a)}}})]}});var oMe=Fn.create({name:"gapCursor",addProseMirrorPlugins(){return[Wwe()]},extendNodeSchema(t){var e;const n={name:t.name,options:t.options,storage:t.storage};return{allowGapCursor:(e=Tn(kt(t,"allowGapCursor",n)))!=null?e:null}}});Fn.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something …",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new li({key:new rr("placeholder"),props:{decorations:({doc:t,selection:e})=>{const n=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:i}=e,r=[];if(!n)return null;const a=this.editor.isEmpty;return t.descendants((s,o)=>{const l=i>=o&&i<=o+s.nodeSize,c=!s.isLeaf&&SS(s);if((l||!this.options.showOnlyCurrent)&&c){const d=[this.options.emptyNodeClass];a&&d.push(this.options.emptyEditorClass);const f=ua.node(o,o+s.nodeSize,{class:d.join(" "),"data-placeholder":typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:s,pos:o,hasAnchor:l}):this.options.placeholder});r.push(f)}return this.options.includeChildren}),ai.create(t,r)}}})]}});Fn.create({name:"selection",addOptions(){return{className:"selection"}},addProseMirrorPlugins(){const{editor:t,options:e}=this;return[new li({key:new rr("selection"),props:{decorations(n){return n.selection.empty||t.isFocused||!t.isEditable||vW(n.selection)||t.view.dragging?null:ai.create(n.doc,[ua.inline(n.selection.from,n.selection.to,{class:e.className})])}}})]}});function U5({types:t,node:e}){return e&&Array.isArray(t)&&t.includes(e.type)||e?.type===t}var lMe=Fn.create({name:"trailingNode",addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){var t;const e=new rr(this.name),n=this.options.node||((t=this.editor.schema.topNodeType.contentMatch.defaultType)==null?void 0:t.name)||"paragraph",i=Object.entries(this.editor.schema.nodes).map(([,r])=>r).filter(r=>(this.options.notAfter||[]).concat(n).includes(r.name));return[new li({key:e,appendTransaction:(r,a,s)=>{const{doc:o,tr:l,schema:c}=s,d=e.getState(s),f=o.content.size,p=c.nodes[n];if(d)return l.insert(f,p.create())},state:{init:(r,a)=>{const s=a.tr.doc.lastChild;return!U5({node:s,types:i})},apply:(r,a)=>{if(!r.docChanged||r.getMeta("__uniqueIDTransaction"))return a;const s=r.doc.lastChild;return!U5({node:s,types:i})}}})]}}),cMe=Fn.create({name:"undoRedo",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:t,dispatch:e})=>s7(t,e),redo:()=>({state:t,dispatch:e})=>o7(t,e)}},addProseMirrorPlugins(){return[aMe(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),uMe=Fn.create({name:"starterKit",addExtensions(){var t,e,n,i;const r=[];return this.options.bold!==!1&&r.push(USe.configure(this.options.bold)),this.options.blockquote!==!1&&r.push(NSe.configure(this.options.blockquote)),this.options.bulletList!==!1&&r.push(WW.configure(this.options.bulletList)),this.options.code!==!1&&r.push(BSe.configure(this.options.code)),this.options.codeBlock!==!1&&r.push(VSe.configure(this.options.codeBlock)),this.options.document!==!1&&r.push(GSe.configure(this.options.document)),this.options.dropcursor!==!1&&r.push(sMe.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&r.push(oMe.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&r.push($Se.configure(this.options.hardBreak)),this.options.heading!==!1&&r.push(WSe.configure(this.options.heading)),this.options.undoRedo!==!1&&r.push(cMe.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&r.push(qSe.configure(this.options.horizontalRule)),this.options.italic!==!1&&r.push(JSe.configure(this.options.italic)),this.options.listItem!==!1&&r.push(qW.configure(this.options.listItem)),this.options.listKeymap!==!1&&r.push(QW.configure((t=this.options)==null?void 0:t.listKeymap)),this.options.link!==!1&&r.push($W.configure((e=this.options)==null?void 0:e.link)),this.options.orderedList!==!1&&r.push(t7.configure(this.options.orderedList)),this.options.paragraph!==!1&&r.push(Iwe.configure(this.options.paragraph)),this.options.strike!==!1&&r.push(zwe.configure(this.options.strike)),this.options.text!==!1&&r.push(Bwe.configure(this.options.text)),this.options.underline!==!1&&r.push(n7.configure((n=this.options)==null?void 0:n.underline)),this.options.trailingNode!==!1&&r.push(lMe.configure((i=this.options)==null?void 0:i.trailingNode)),r}}),dMe=uMe,fMe=Fn.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:t=>{const e=t.style.textAlign;return this.options.alignments.includes(e)?e:this.options.defaultAlignment},renderHTML:t=>t.textAlign?{style:`text-align: ${t.textAlign}`}:{}}}}]},addCommands(){return{setTextAlign:t=>({commands:e})=>this.options.alignments.includes(t)?this.options.types.map(n=>e.updateAttributes(n,{textAlign:t})).some(n=>n):!1,unsetTextAlign:()=>({commands:t})=>this.options.types.map(e=>t.resetAttributes(e,"textAlign")).some(e=>e),toggleTextAlign:t=>({editor:e,commands:n})=>this.options.alignments.includes(t)?e.isActive({textAlign:t})?n.unsetTextAlign():n.setTextAlign(t):!1}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),hMe=fMe,pMe=20,l7=(t,e=0)=>{const n=[];return!t.children.length||e>pMe||Array.from(t.children).forEach(i=>{i.tagName==="SPAN"?n.push(i):i.children.length&&n.push(...l7(i,e+1))}),n},mMe=t=>{if(!t.children.length)return;const e=l7(t);e&&e.forEach(n=>{var i,r;const a=n.getAttribute("style"),s=(r=(i=n.parentElement)==null?void 0:i.closest("span"))==null?void 0:r.getAttribute("style");n.setAttribute("style",`${s};${a}`)})},c7=ju.create({name:"textStyle",priority:101,addOptions(){return{HTMLAttributes:{},mergeNestedSpanStyles:!0}},parseHTML(){return[{tag:"span",consuming:!1,getAttrs:t=>t.hasAttribute("style")?(this.options.mergeNestedSpanStyles&&mMe(t),{}):!1}]},renderHTML({HTMLAttributes:t}){return["span",vi(this.options.HTMLAttributes,t),0]},addCommands(){return{toggleTextStyle:t=>({commands:e})=>e.toggleMark(this.name,t),removeEmptyTextStyle:()=>({tr:t})=>{const{selection:e}=t;return t.doc.nodesBetween(e.from,e.to,(n,i)=>{if(n.isTextblock)return!0;n.marks.filter(r=>r.type===this.type).some(r=>Object.values(r.attrs).some(a=>!!a))||t.removeMark(i,i+n.nodeSize,this.type)}),!0}}}}),gMe=Fn.create({name:"backgroundColor",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{backgroundColor:{default:null,parseHTML:t=>{var e;const n=t.getAttribute("style");if(n){const i=n.split(";").map(r=>r.trim()).filter(Boolean);for(let r=i.length-1;r>=0;r-=1){const a=i[r].split(":");if(a.length>=2){const s=a[0].trim().toLowerCase(),o=a.slice(1).join(":").trim();if(s==="background-color")return o.replace(/['"]+/g,"")}}}return(e=t.style.backgroundColor)==null?void 0:e.replace(/['"]+/g,"")},renderHTML:t=>t.backgroundColor?{style:`background-color: ${t.backgroundColor}`}:{}}}}]},addCommands(){return{setBackgroundColor:t=>({chain:e})=>e().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),u7=Fn.create({name:"color",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:t=>{var e;const n=t.getAttribute("style");if(n){const i=n.split(";").map(r=>r.trim()).filter(Boolean);for(let r=i.length-1;r>=0;r-=1){const a=i[r].split(":");if(a.length>=2){const s=a[0].trim().toLowerCase(),o=a.slice(1).join(":").trim();if(s==="color")return o.replace(/['"]+/g,"")}}}return(e=t.style.color)==null?void 0:e.replace(/['"]+/g,"")},renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}}}}]},addCommands(){return{setColor:t=>({chain:e})=>e().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()}}}),vMe=Fn.create({name:"fontFamily",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:t=>t.style.fontFamily,renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}}}}]},addCommands(){return{setFontFamily:t=>({chain:e})=>e().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run()}}}),xMe=Fn.create({name:"fontSize",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:t=>t.style.fontSize,renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:t=>({chain:e})=>e().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run()}}}),yMe=Fn.create({name:"lineHeight",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:t=>t.style.lineHeight,renderHTML:t=>t.lineHeight?{style:`line-height: ${t.lineHeight}`}:{}}}}]},addCommands(){return{setLineHeight:t=>({chain:e})=>e().setMark("textStyle",{lineHeight:t}).run(),unsetLineHeight:()=>({chain:t})=>t().setMark("textStyle",{lineHeight:null}).removeEmptyTextStyle().run()}}});Fn.create({name:"textStyleKit",addExtensions(){const t=[];return this.options.backgroundColor!==!1&&t.push(gMe.configure(this.options.backgroundColor)),this.options.color!==!1&&t.push(u7.configure(this.options.color)),this.options.fontFamily!==!1&&t.push(vMe.configure(this.options.fontFamily)),this.options.fontSize!==!1&&t.push(xMe.configure(this.options.fontSize)),this.options.lineHeight!==!1&&t.push(yMe.configure(this.options.lineHeight)),this.options.textStyle!==!1&&t.push(c7.configure(this.options.textStyle)),t}});var bMe=u7,_Me=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,SMe=Ia.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:t}){return["img",vi(this.options.HTMLAttributes,t)]},parseMarkdown:(t,e)=>e.createNode("image",{src:t.href,title:t.title,alt:t.text}),renderMarkdown:t=>{var e,n,i,r,a,s;const o=(n=(e=t.attrs)==null?void 0:e.src)!=null?n:"",l=(r=(i=t.attrs)==null?void 0:i.alt)!=null?r:"",c=(s=(a=t.attrs)==null?void 0:a.title)!=null?s:"";return c?``:``},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>"u"||!this.editor.isEditable)return null;const{directions:t,minWidth:e,minHeight:n,alwaysPreserveAspectRatio:i}=this.options.resize;return({node:r,getPos:a,HTMLAttributes:s})=>{const o=document.createElement("img");Object.entries(s).forEach(([d,f])=>{if(f!=null)switch(d){case"width":case"height":break;default:o.setAttribute(d,f);break}}),o.src=s.src;const l=new tSe({element:o,node:r,getPos:a,onResize:(d,f)=>{o.style.width=`${d}px`,o.style.height=`${f}px`},onCommit:(d,f)=>{const p=a();p!==void 0&&this.editor.chain().setNodeSelection(p).updateAttributes(this.name,{width:d,height:f}).run()},onUpdate:(d,f,p)=>d.type===r.type,options:{directions:t,min:{width:e,height:n},preserveAspectRatio:i===!0}}),c=l.dom;return c.style.visibility="hidden",c.style.pointerEvents="none",o.onload=()=>{c.style.visibility="",c.style.pointerEvents=""},l}},addCommands(){return{setImage:t=>({commands:e})=>e.insertContent({type:this.name,attrs:t})}},addInputRules(){return[NW({find:_Me,type:this.type,getAttributes:t=>{const[,,e,n,i]=t;return{src:n,alt:e,title:i}}})]}}),wMe=SMe;function F5({content:t,onChange:e,placeholder:n}){const i=TSe({extensions:[dMe.configure({heading:!1,codeBlock:!1,code:!1}),jwe,wwe.configure({openOnClick:!1,HTMLAttributes:{target:"_blank",rel:"noopener noreferrer"}}),hMe.configure({types:["paragraph"]}),c7,bMe,wMe.configure({HTMLAttributes:{style:"max-width: 100%; height: auto;"}})],content:t,onUpdate:({editor:s})=>{e(s.getHTML())},editorProps:{attributes:{class:"prose prose-invert prose-sm max-w-none focus:outline-none min-h-[120px] px-3 py-2",placeholder:n||""}}});if(!i)return null;const r=({onClick:s,isActive:o=!1,children:l,title:c})=>S.jsx("button",{type:"button",onClick:s,title:c,className:`p-1.5 rounded hover:bg-bambu-dark-tertiary transition-colors ${o?"bg-bambu-dark-tertiary text-bambu-green":"text-bambu-gray"}`,children:l}),a=()=>{const s=window.prompt("Enter URL:");s&&i.chain().focus().setLink({href:s}).run()};return S.jsxs("div",{className:"border border-bambu-dark-tertiary rounded-lg overflow-hidden bg-bambu-dark",children:[S.jsxs("div",{className:"flex items-center gap-0.5 p-1.5 border-b border-bambu-dark-tertiary bg-bambu-dark-secondary",children:[S.jsx(r,{onClick:()=>i.chain().focus().toggleBold().run(),isActive:i.isActive("bold"),title:"Bold",children:S.jsx(xne,{className:"w-4 h-4"})}),S.jsx(r,{onClick:()=>i.chain().focus().toggleItalic().run(),isActive:i.isActive("italic"),title:"Italic",children:S.jsx(_ie,{className:"w-4 h-4"})}),S.jsx(r,{onClick:()=>i.chain().focus().toggleUnderline().run(),isActive:i.isActive("underline"),title:"Underline",children:S.jsx(Are,{className:"w-4 h-4"})}),S.jsx("div",{className:"w-px h-5 bg-bambu-dark-tertiary mx-1"}),S.jsx(r,{onClick:()=>i.chain().focus().toggleBulletList().run(),isActive:i.isActive("bulletList"),title:"Bullet List",children:S.jsx(iG,{className:"w-4 h-4"})}),S.jsx(r,{onClick:()=>i.chain().focus().toggleOrderedList().run(),isActive:i.isActive("orderedList"),title:"Numbered List",children:S.jsx(Die,{className:"w-4 h-4"})}),S.jsx("div",{className:"w-px h-5 bg-bambu-dark-tertiary mx-1"}),S.jsx(r,{onClick:()=>i.chain().focus().setTextAlign("left").run(),isActive:i.isActive({textAlign:"left"}),title:"Align Left",children:S.jsx(bre,{className:"w-4 h-4"})}),S.jsx(r,{onClick:()=>i.chain().focus().setTextAlign("center").run(),isActive:i.isActive({textAlign:"center"}),title:"Align Center",children:S.jsx(gre,{className:"w-4 h-4"})}),S.jsx(r,{onClick:()=>i.chain().focus().setTextAlign("right").run(),isActive:i.isActive({textAlign:"right"}),title:"Align Right",children:S.jsx(xre,{className:"w-4 h-4"})}),S.jsx("div",{className:"w-px h-5 bg-bambu-dark-tertiary mx-1"}),S.jsx(r,{onClick:a,isActive:i.isActive("link"),title:"Add Link",children:S.jsx(Rie,{className:"w-4 h-4"})}),i.isActive("link")&&S.jsx(r,{onClick:()=>i.chain().focus().unsetLink().run(),title:"Remove Link",children:S.jsx(Cre,{className:"w-4 h-4"})})]}),S.jsx(bSe,{editor:i})]})}function MMe({archiveId:t,archiveName:e,onClose:n}){const i=ka(),[r,a]=R.useState(!1),[s,o]=R.useState(null),[l,c]=R.useState({}),{data:d,isLoading:f,error:p}=Zi({queryKey:["archive-project-page",t],queryFn:()=>Tt.getArchiveProjectPage(t)}),m=Ji({mutationFn:T=>Tt.updateArchiveProjectPage(t,T),onSuccess:()=>{i.invalidateQueries({queryKey:["archive-project-page",t]}),a(!1),c({})}});R.useEffect(()=>{const T=D=>{D.key==="Escape"&&(s!==null?o(null):r?v():n())};return document.addEventListener("keydown",T),()=>document.removeEventListener("keydown",T)},[s,r,n]);const y=[...d?.model_pictures||[],...d?.profile_pictures||[]],b=()=>{c({title:d?.title||"",description:d?.description||"",designer:d?.designer||"",license:d?.license||"",profile_title:d?.profile_title||"",profile_description:d?.profile_description||""}),a(!0)},x=()=>{m.mutate(l)},v=()=>{a(!1),c({})},w=T=>{const D=["p","br","b","strong","i","em","u","a","ul","ol","li","figure","img"],C=new DOMParser().parseFromString(T,"text/html"),U=P=>{if(P.nodeType===Node.TEXT_NODE)return P.textContent||"";if(P.nodeType===Node.ELEMENT_NODE){const k=P,B=k.tagName.toLowerCase();if(!D.includes(B))return Array.from(k.childNodes).map(U).join("");let I="";if(B==="a"&&k.getAttribute("href")){const O=k.getAttribute("href");O?.toLowerCase().startsWith("http")&&(I=` href="${O}" target="_blank" rel="noopener noreferrer"`)}if(B==="img"){const O=k.getAttribute("src");if(!O?.toLowerCase().startsWith("http"))return"";I=` src="${O}" style="max-width: 100%; height: auto;"`}const W=Array.from(k.childNodes).map(U).join("");return["br","img"].includes(B)?`<${B}${I} />`:`<${B}${I}>${W}</${B}>`}return""};return Array.from(C.body.childNodes).map(U).join("")},M=d&&(d.title||d.description||d.designer||d.profile_title||y.length>0),A=T=>{T.target===T.currentTarget&&n()};return S.jsxs("div",{className:"fixed inset-0 bg-black/70 flex items-center justify-center z-50 p-4",onClick:A,children:[S.jsxs("div",{className:"bg-bambu-dark-secondary rounded-xl max-w-4xl w-full max-h-[90vh] overflow-hidden flex flex-col",children:[S.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-bambu-dark-tertiary",children:[S.jsxs("div",{className:"flex items-center gap-3",children:[S.jsx(Zh,{className:"w-5 h-5 text-bambu-green"}),S.jsxs("h2",{className:"text-lg font-semibold text-white",children:["Project Page",e&&S.jsxs("span",{className:"text-bambu-gray ml-2",children:["- ",e]})]})]}),S.jsxs("div",{className:"flex items-center gap-2",children:[!r&&M&&S.jsxs(At,{variant:"ghost",size:"sm",onClick:b,children:[S.jsx($ie,{className:"w-4 h-4 mr-1"}),"Edit"]}),r&&S.jsxs(S.Fragment,{children:[S.jsx(At,{variant:"ghost",size:"sm",onClick:v,children:"Cancel"}),S.jsxs(At,{variant:"primary",size:"sm",onClick:x,disabled:m.isPending,children:[S.jsx(TP,{className:"w-4 h-4 mr-1"}),"Save"]})]}),S.jsx("button",{onClick:n,className:"p-2 hover:bg-bambu-dark-tertiary rounded-lg transition-colors",children:S.jsx(zi,{className:"w-5 h-5 text-bambu-gray"})})]})]}),S.jsxs("div",{className:"flex-1 overflow-y-auto p-6",children:[f&&S.jsx("div",{className:"flex items-center justify-center py-12",children:S.jsx("div",{className:"animate-spin rounded-full h-8 w-8 border-2 border-bambu-green border-t-transparent"})}),p&&S.jsx("div",{className:"text-red-400 text-center py-12",children:"Failed to load project page data"}),d&&!M&&S.jsxs("div",{className:"text-bambu-gray text-center py-12",children:[S.jsx(Zh,{className:"w-12 h-12 mx-auto mb-4 opacity-50"}),S.jsx("p",{children:"No project page data found in this 3MF file."}),S.jsx("p",{className:"text-sm mt-2",children:"Project pages are typically included in files downloaded from MakerWorld."})]}),d&&M&&S.jsxs("div",{className:"space-y-6",children:[S.jsxs("div",{className:"space-y-4",children:[r?S.jsx("input",{type:"text",value:l.title||"",onChange:T=>c({...l,title:T.target.value}),placeholder:"Title",className:"w-full bg-bambu-dark border border-bambu-dark-tertiary rounded-lg px-4 py-2 text-white text-xl font-semibold"}):d.title&&S.jsx("h3",{className:"text-xl font-semibold text-white",children:d.title}),S.jsxs("div",{className:"flex flex-wrap gap-4 text-sm",children:[r?S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(cF,{className:"w-4 h-4 text-bambu-gray"}),S.jsx("input",{type:"text",value:l.designer||"",onChange:T=>c({...l,designer:T.target.value}),placeholder:"Designer",className:"bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1 text-white"})]}):d.designer&&S.jsxs("div",{className:"flex items-center gap-2 text-bambu-gray",children:[S.jsx(cF,{className:"w-4 h-4"}),S.jsx("span",{children:d.designer}),d.designer_user_id&&S.jsx("a",{href:`https://makerworld.com/en/@${d.designer_user_id}`,target:"_blank",rel:"noopener noreferrer",className:"text-bambu-green hover:underline",children:S.jsx(gp,{className:"w-3 h-3"})})]}),d.creation_date&&S.jsxs("div",{className:"flex items-center gap-2 text-bambu-gray",children:[S.jsx(b2,{className:"w-4 h-4"}),S.jsx("span",{children:d.creation_date})]}),r?S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(Zh,{className:"w-4 h-4 text-bambu-gray"}),S.jsx("input",{type:"text",value:l.license||"",onChange:T=>c({...l,license:T.target.value}),placeholder:"License",className:"bg-bambu-dark border border-bambu-dark-tertiary rounded px-2 py-1 text-white"})]}):d.license&&S.jsxs("div",{className:"flex items-center gap-2 text-bambu-gray",children:[S.jsx(Zh,{className:"w-4 h-4"}),S.jsx("span",{children:d.license})]}),d.origin&&S.jsx("span",{className:"px-2 py-0.5 bg-bambu-dark rounded text-bambu-gray",children:d.origin})]})]}),(d.description||r)&&S.jsxs("div",{className:"space-y-2",children:[S.jsx("h4",{className:"text-sm font-medium text-bambu-gray uppercase tracking-wide",children:"Description"}),r?S.jsx(F5,{content:l.description||"",onChange:T=>c({...l,description:T}),placeholder:"Enter description..."}):S.jsx("div",{className:"prose prose-invert prose-sm max-w-none text-bambu-gray-light",dangerouslySetInnerHTML:{__html:w(d.description||"")}})]}),(d.profile_title||d.profile_description||r)&&S.jsxs("div",{className:"space-y-2 p-4 bg-bambu-dark rounded-lg",children:[S.jsx("h4",{className:"text-sm font-medium text-bambu-gray uppercase tracking-wide",children:"Print Profile"}),r?S.jsxs("div",{className:"space-y-2",children:[S.jsx("input",{type:"text",value:l.profile_title||"",onChange:T=>c({...l,profile_title:T.target.value}),placeholder:"Profile Title",className:"w-full bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded px-3 py-2 text-white"}),S.jsx(F5,{content:l.profile_description||"",onChange:T=>c({...l,profile_description:T}),placeholder:"Profile description..."})]}):S.jsxs(S.Fragment,{children:[d.profile_title&&S.jsx("p",{className:"text-white font-medium",children:d.profile_title}),d.profile_description&&S.jsx("div",{className:"prose prose-invert prose-sm max-w-none text-bambu-gray-light",dangerouslySetInnerHTML:{__html:w(d.profile_description)}}),d.profile_user_name&&S.jsxs("p",{className:"text-sm text-bambu-gray",children:["by ",d.profile_user_name]})]})]}),y.length>0&&S.jsxs("div",{className:"space-y-2",children:[S.jsxs("h4",{className:"text-sm font-medium text-bambu-gray uppercase tracking-wide flex items-center gap-2",children:[S.jsx(eS,{className:"w-4 h-4"}),"Images (",y.length,")"]}),S.jsx("div",{className:"grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 gap-2",children:y.map((T,D)=>S.jsx("button",{onClick:()=>o(D),className:"aspect-square rounded-lg overflow-hidden border border-bambu-dark-tertiary hover:border-bambu-green transition-colors",children:S.jsx("img",{src:T.url,alt:T.name,className:"w-full h-full object-cover"})},T.path))})]}),d.design_model_id&&S.jsx("div",{className:"pt-4 border-t border-bambu-dark-tertiary",children:S.jsxs("a",{href:`https://makerworld.com/en/models/${d.design_model_id}`,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-bambu-green hover:underline",children:[S.jsx(gp,{className:"w-4 h-4"}),"View on MakerWorld"]})})]})]})]}),s!==null&&y[s]&&S.jsxs("div",{className:"fixed inset-0 bg-black/90 flex items-center justify-center z-60",onClick:()=>o(null),children:[S.jsx("button",{onClick:T=>{T.stopPropagation(),o(Math.max(0,s-1))},disabled:s===0,className:"absolute left-4 p-2 bg-bambu-dark-secondary rounded-full hover:bg-bambu-dark-tertiary disabled:opacity-30",children:S.jsx(tf,{className:"w-6 h-6 text-white"})}),S.jsx("img",{src:y[s].url,alt:y[s].name,className:"max-w-[90vw] max-h-[90vh] object-contain",onClick:T=>T.stopPropagation()}),S.jsx("button",{onClick:T=>{T.stopPropagation(),o(Math.min(y.length-1,s+1))},disabled:s===y.length-1,className:"absolute right-4 p-2 bg-bambu-dark-secondary rounded-full hover:bg-bambu-dark-tertiary disabled:opacity-30",children:S.jsx(Wp,{className:"w-6 h-6 text-white"})}),S.jsx("button",{onClick:()=>o(null),className:"absolute top-4 right-4 p-2 bg-bambu-dark-secondary rounded-full hover:bg-bambu-dark-tertiary",children:S.jsx(zi,{className:"w-6 h-6 text-white"})}),S.jsxs("div",{className:"absolute bottom-4 text-white text-sm",children:[s+1," / ",y.length]})]})]})}function d7(t){return t<1024?`${t} B`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function EMe(t){const e=Math.floor(t/3600),n=Math.floor(t%3600/60);return e>0?`${e}h ${n}m`:`${n}m`}function AMe(t){return new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})}function TMe({archive:t,printerName:e,isSelected:n,onSelect:i,selectionMode:r}){const a=ka(),{showToast:s}=Mf(),[o,l]=R.useState(!1),[c,d]=R.useState(!1),[f,p]=R.useState(!1),[m,y]=R.useState(!1),[b,x]=R.useState(!1),[v,w]=R.useState(!1),[M,A]=R.useState(!1),[T,D]=R.useState(!1),[C,U]=R.useState(null),P=Ji({mutationFn:()=>Tt.scanArchiveTimelapse(t.id),onSuccess:O=>{O.status==="attached"?(a.invalidateQueries({queryKey:["archives"]}),s(`Timelapse attached: ${O.filename}`)):O.status==="exists"?s("Timelapse already attached"):s(O.message||"No matching timelapse found","warning")},onError:O=>{s(O.message||"Failed to scan for timelapse","error")}}),k=Ji({mutationFn:()=>Tt.deleteArchive(t.id),onSuccess:()=>{a.invalidateQueries({queryKey:["archives"]}),s("Archive deleted")},onError:()=>{s("Failed to delete archive","error")}}),B=Ji({mutationFn:()=>Tt.toggleFavorite(t.id),onSuccess:O=>{a.invalidateQueries({queryKey:["archives"]}),s(O.is_favorite?"Added to favorites":"Removed from favorites")}}),I=O=>{O.preventDefault(),U({x:O.clientX,y:O.clientY})},W=[{label:"Print",icon:S.jsx(nf,{className:"w-4 h-4"}),onClick:()=>d(!0)},{label:"Open in Bambu Studio",icon:S.jsx(gp,{className:"w-4 h-4"}),onClick:()=>{const O=t.print_name||t.filename||"model",$=`${window.location.origin}${Tt.getArchiveForSlicer(t.id,O)}`;window.location.href=`bambustudioopen://${encodeURIComponent($)}`}},{label:"View on MakerWorld",icon:S.jsx(S2,{className:"w-4 h-4"}),onClick:()=>t.makerworld_url&&window.open(t.makerworld_url,"_blank"),disabled:!t.makerworld_url},{label:"",divider:!0,onClick:()=>{}},{label:"3D Preview",icon:S.jsx(l0,{className:"w-4 h-4"}),onClick:()=>l(!0)},{label:"View Timelapse",icon:S.jsx(zg,{className:"w-4 h-4"}),onClick:()=>x(!0),disabled:!t.timelapse_path},{label:"Scan for Timelapse",icon:S.jsx(tre,{className:"w-4 h-4"}),onClick:()=>P.mutate(),disabled:!t.printer_id||!!t.timelapse_path||P.isPending},{label:"Download",icon:S.jsx(zd,{className:"w-4 h-4"}),onClick:()=>{const O=document.createElement("a");O.href=Tt.getArchiveDownload(t.id),O.download=`${t.print_name||t.filename}.3mf`,O.click()}},{label:"Copy Download Link",icon:S.jsx(Bne,{className:"w-4 h-4"}),onClick:()=>{const O=`${window.location.origin}${Tt.getArchiveDownload(t.id)}`;navigator.clipboard.writeText(O).then(()=>{s("Link copied to clipboard")}).catch(()=>{s("Failed to copy link","error")})}},{label:"QR Code",icon:S.jsx(Kie,{className:"w-4 h-4"}),onClick:()=>w(!0)},{label:`View Photos${t.photos?.length?` (${t.photos.length})`:""}`,icon:S.jsx(_2,{className:"w-4 h-4"}),onClick:()=>A(!0),disabled:!t.photos?.length},{label:"Project Page",icon:S.jsx(Zh,{className:"w-4 h-4"}),onClick:()=>D(!0)},{label:"",divider:!0,onClick:()=>{}},{label:t.is_favorite?"Remove from Favorites":"Add to Favorites",icon:S.jsx(c0,{className:`w-4 h-4 ${t.is_favorite?"fill-yellow-400 text-yellow-400":""}`}),onClick:()=>B.mutate()},{label:"Edit",icon:S.jsx(lF,{className:"w-4 h-4"}),onClick:()=>y(!0)},{label:n?"Deselect":"Select",icon:n?S.jsx(Zb,{className:"w-4 h-4"}):S.jsx(w2,{className:"w-4 h-4"}),onClick:()=>i(t.id)},{label:"",divider:!0,onClick:()=>{}},{label:"Delete",icon:S.jsx(rf,{className:"w-4 h-4"}),onClick:()=>p(!0),danger:!0}];return S.jsxs(ki,{className:`relative flex flex-col ${n?"ring-2 ring-bambu-green":""}`,onContextMenu:I,children:[r&&S.jsx("button",{className:"absolute top-2 left-2 z-10 p-1 rounded bg-black/50 hover:bg-black/70 transition-colors",onClick:()=>i(t.id),children:n?S.jsx(Zb,{className:"w-5 h-5 text-bambu-green"}):S.jsx(w2,{className:"w-5 h-5 text-white"})}),S.jsxs("div",{className:"aspect-video bg-bambu-dark relative flex-shrink-0 overflow-hidden rounded-t-xl",children:[t.thumbnail_path?S.jsx("img",{src:Tt.getArchiveThumbnail(t.id),alt:t.print_name||t.filename,className:"w-full h-full object-cover"}):S.jsx("div",{className:"w-full h-full flex items-center justify-center",children:S.jsx(eS,{className:"w-12 h-12 text-bambu-dark-tertiary"})}),S.jsx("button",{className:"absolute top-2 right-2 p-1 rounded bg-black/50 hover:bg-black/70 transition-colors",onClick:O=>{O.stopPropagation(),B.mutate()},title:t.is_favorite?"Remove from favorites":"Add to favorites",children:S.jsx(c0,{className:`w-5 h-5 ${t.is_favorite?"text-yellow-400 fill-yellow-400":"text-white"}`})}),t.status==="failed"&&S.jsx("div",{className:"absolute top-2 left-12 px-2 py-1 rounded text-xs bg-red-500/80 text-white",children:"failed"}),t.timelapse_path&&S.jsx("button",{className:"absolute bottom-2 right-2 p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors",onClick:O=>{O.stopPropagation(),x(!0)},title:"View timelapse",children:S.jsx(zg,{className:"w-4 h-4 text-bambu-green"})}),t.photos&&t.photos.length>0&&S.jsxs("button",{className:`absolute bottom-2 ${t.timelapse_path?"right-12":"right-2"} p-1.5 rounded bg-black/60 hover:bg-black/80 transition-colors`,onClick:O=>{O.stopPropagation(),A(!0)},title:`View ${t.photos.length} photo${t.photos.length>1?"s":""}`,children:[S.jsx(_2,{className:"w-4 h-4 text-blue-400"}),t.photos.length>1&&S.jsx("span",{className:"absolute -top-1 -right-1 w-4 h-4 bg-blue-500 rounded-full text-[10px] text-white flex items-center justify-center",children:t.photos.length})]})]}),S.jsxs(Qi,{className:"p-4 flex-1 flex flex-col",children:[S.jsx("h3",{className:"font-medium text-white mb-1 truncate",children:t.print_name||t.filename}),S.jsx("p",{className:"text-xs text-bambu-gray mb-3",children:e}),S.jsxs("div",{className:"grid grid-cols-2 gap-2 text-xs mb-4 min-h-[48px]",children:[t.print_time_seconds&&S.jsxs("div",{className:"flex items-center gap-1.5 text-bambu-gray",children:[S.jsx(Q1,{className:"w-3 h-3"}),EMe(t.print_time_seconds)]}),t.filament_used_grams&&S.jsxs("div",{className:"flex items-center gap-1.5 text-bambu-gray",children:[S.jsx(Yb,{className:"w-3 h-3"}),t.filament_used_grams.toFixed(1),"g"]}),t.layer_height&&S.jsxs("div",{className:"flex items-center gap-1.5 text-bambu-gray",children:[S.jsx(nG,{className:"w-3 h-3"}),t.layer_height,"mm"]}),t.filament_type&&S.jsxs("div",{className:"flex items-center gap-1.5 col-span-2",children:[S.jsx("span",{className:"text-bambu-gray text-xs",children:t.filament_type}),t.filament_color&&S.jsx("div",{className:"flex items-center gap-0.5 flex-wrap",children:t.filament_color.split(",").map((O,$)=>S.jsx("div",{className:"w-3 h-3 rounded-full border border-white/20",style:{backgroundColor:O},title:O},$))})]})]}),(t.tags||t.notes)&&S.jsxs("div",{className:"flex flex-wrap items-center gap-1.5 mb-3",children:[t.notes&&S.jsx("div",{className:"flex items-center gap-1 px-1.5 py-0.5 bg-blue-500/20 text-blue-400 rounded text-xs",title:t.notes,children:S.jsx(dre,{className:"w-3 h-3"})}),t.tags?.split(",").map((O,$)=>S.jsx("span",{className:"px-1.5 py-0.5 bg-bambu-dark-tertiary text-bambu-gray-light rounded text-xs",children:O.trim()},$))]}),S.jsx("div",{className:"flex-1"}),S.jsxs("div",{className:"flex items-center justify-between text-xs text-bambu-gray border-t border-bambu-dark-tertiary pt-3",children:[S.jsx("span",{children:AMe(t.created_at)}),S.jsx("span",{children:d7(t.file_size)})]}),S.jsxs("div",{className:"flex gap-1 mt-3",children:[S.jsxs(At,{variant:"primary",size:"sm",className:"flex-1 min-w-0",onClick:()=>d(!0),children:[S.jsx(nf,{className:"w-3 h-3 flex-shrink-0"}),S.jsx("span",{className:"hidden sm:inline",children:"Print"})]}),S.jsx(At,{variant:"secondary",size:"sm",className:"min-w-0 p-1 sm:p-1.5",onClick:()=>{const O=t.print_name||t.filename||"model",$=`${window.location.origin}${Tt.getArchiveForSlicer(t.id,O)}`;window.location.href=`bambustudioopen://${encodeURIComponent($)}`},title:"Open in Bambu Studio",children:S.jsx(gp,{className:"w-3 h-3 sm:w-4 sm:h-4"})}),S.jsx(At,{variant:"secondary",size:"sm",className:"min-w-0 p-1 sm:p-1.5",onClick:()=>t.makerworld_url&&window.open(t.makerworld_url,"_blank"),disabled:!t.makerworld_url,title:t.makerworld_url?`MakerWorld: ${t.designer||"View project"}`:"Not from MakerWorld",children:S.jsx(S2,{className:`w-3 h-3 sm:w-4 sm:h-4 ${t.makerworld_url?"":"opacity-20"}`})}),S.jsx(At,{variant:"secondary",size:"sm",className:"min-w-0 p-1 sm:p-1.5",onClick:()=>l(!0),title:"3D Preview",children:S.jsx(l0,{className:"w-3 h-3 sm:w-4 sm:h-4"})}),S.jsx(At,{variant:"secondary",size:"sm",className:"min-w-0 p-1 sm:p-1.5",onClick:()=>{const O=document.createElement("a");O.href=Tt.getArchiveDownload(t.id),O.download=`${t.print_name||t.filename}.3mf`,O.click()},title:"Download",children:S.jsx(zd,{className:"w-3 h-3 sm:w-4 sm:h-4"})}),S.jsx(At,{variant:"ghost",size:"sm",className:"min-w-0 p-1 sm:p-1.5",onClick:()=>y(!0),title:"Edit",children:S.jsx(lF,{className:"w-3 h-3 sm:w-4 sm:h-4"})}),S.jsx(At,{variant:"ghost",size:"sm",className:"min-w-0 p-1 sm:p-1.5",onClick:()=>p(!0),title:"Delete",children:S.jsx(rf,{className:"w-3 h-3 sm:w-4 sm:h-4 text-red-400"})})]})]}),m&&S.jsx(Zve,{archive:t,onClose:()=>y(!1)}),o&&S.jsx(qve,{archiveId:t.id,title:t.print_name||t.filename,onClose:()=>l(!1)}),c&&S.jsx(Xve,{archiveId:t.id,archiveName:t.print_name||t.filename,onClose:()=>d(!1),onSuccess:()=>{}}),f&&S.jsx(qp,{title:"Delete Archive",message:`Are you sure you want to delete "${t.print_name||t.filename}"? This action cannot be undone.`,confirmText:"Delete",variant:"danger",onConfirm:()=>{k.mutate(),p(!1)},onCancel:()=>p(!1)}),C&&S.jsx(Jve,{x:C.x,y:C.y,items:W,onClose:()=>U(null)}),b&&t.timelapse_path&&S.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80",children:S.jsxs("div",{className:"relative bg-bambu-dark-secondary rounded-xl max-w-4xl w-full mx-4 overflow-hidden",children:[S.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-bambu-dark-tertiary",children:[S.jsxs("h3",{className:"text-lg font-semibold text-white flex items-center gap-2",children:[S.jsx(zg,{className:"w-5 h-5 text-bambu-green"}),t.print_name||t.filename," - Timelapse"]}),S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsxs(At,{variant:"secondary",size:"sm",onClick:()=>{const O=document.createElement("a");O.href=Tt.getArchiveTimelapse(t.id),O.download=`${t.print_name||t.filename}_timelapse.mp4`,O.click()},children:[S.jsx(zd,{className:"w-4 h-4"}),"Download"]}),S.jsx("button",{onClick:()=>x(!1),className:"p-1 hover:bg-bambu-dark-tertiary rounded transition-colors",children:S.jsx(zi,{className:"w-5 h-5 text-bambu-gray"})})]})]}),S.jsx("div",{className:"p-4",children:S.jsx("video",{src:Tt.getArchiveTimelapse(t.id),controls:!0,autoPlay:!0,className:"w-full rounded-lg"})})]})}),v&&S.jsx(axe,{archiveId:t.id,archiveName:t.print_name||t.filename,onClose:()=>w(!1)}),M&&t.photos&&t.photos.length>0&&S.jsx(sxe,{archiveId:t.id,archiveName:t.print_name||t.filename,photos:t.photos,onClose:()=>A(!1),onDelete:async O=>{try{await Tt.deleteArchivePhoto(t.id,O),a.invalidateQueries({queryKey:["archives"]}),s("Photo deleted")}catch{s("Failed to delete photo","error")}}}),T&&S.jsx(MMe,{archiveId:t.id,archiveName:t.print_name||t.filename,onClose:()=>D(!1)})]})}const CMe=[{id:"all",label:"All Archives",icon:S.jsx(sie,{className:"w-4 h-4"})},{id:"recent",label:"Last 24 Hours",icon:S.jsx(Q1,{className:"w-4 h-4"})},{id:"this-week",label:"This Week",icon:S.jsx(b2,{className:"w-4 h-4"})},{id:"this-month",label:"This Month",icon:S.jsx(b2,{className:"w-4 h-4"})},{id:"favorites",label:"Favorites",icon:S.jsx(c0,{className:"w-4 h-4"})},{id:"failed",label:"Failed Prints",icon:S.jsx(SP,{className:"w-4 h-4"})}];function RMe(){const t=ka(),{showToast:e}=Mf(),n=R.useRef(null),[i,r]=R.useState(""),[a,s]=R.useState(null),[o,l]=R.useState(null),[c,d]=R.useState(new Set),[f,p]=R.useState("or"),[m,y]=R.useState(!1),[b,x]=R.useState(null),[v,w]=R.useState(!1),[M,A]=R.useState([]),[T,D]=R.useState(!1),[C,U]=R.useState(new Set),[P,k]=R.useState(!1),[B,I]=R.useState(!1),[W,O]=R.useState("grid"),[$,q]=R.useState("date-desc"),[G,Y]=R.useState("all"),{data:Q,isLoading:se}=Zi({queryKey:["archives",a],queryFn:()=>Tt.getArchives(a||void 0)}),{data:H}=Zi({queryKey:["printers"],queryFn:Tt.getPrinters}),X=Ji({mutationFn:async ie=>(await Promise.all(ie.map(we=>Tt.deleteArchive(we))),ie.length),onSuccess:ie=>{t.invalidateQueries({queryKey:["archives"]}),U(new Set),e(`${ie} archive${ie!==1?"s":""} deleted`)},onError:()=>{e("Failed to delete archives","error")}}),re=new Map(H?.map(ie=>[ie.id,ie.name])||[]),ce=[...new Set(Q?.flatMap(ie=>ie.filament_type?.split(", ")||[]).filter(Boolean)||[])].sort(),ye=[...new Set(Q?.flatMap(ie=>ie.filament_color?.split(",")||[]).filter(Boolean)||[])],me=[...new Set(Q?.flatMap(ie=>ie.tags?.split(",").map(we=>we.trim())||[]).filter(Boolean)||[])].sort(),be=Q?.filter(ie=>{const we=new Date,ve=new Date(ie.created_at);let F=!0;switch(G){case"recent":F=we.getTime()-ve.getTime()<1440*60*1e3;break;case"this-week":F=we.getTime()-ve.getTime()<10080*60*1e3;break;case"this-month":F=ve.getMonth()===we.getMonth()&&ve.getFullYear()===we.getFullYear();break;case"favorites":F=ie.is_favorite===!0;break;case"failed":F=ie.status==="failed";break}const L=(ie.print_name||ie.filename).toLowerCase().includes(i.toLowerCase()),K=!o||ie.filament_type?.split(", ").includes(o),pe=ie.filament_color?.split(",")||[],xe=c.size===0||(f==="or"?pe.some($e=>c.has($e)):[...c].every($e=>pe.includes($e))),fe=G==="favorites"||!m||ie.is_favorite,Ke=ie.tags?.split(",").map($e=>$e.trim())||[],ke=!b||Ke.includes(b);return F&&L&&K&&xe&&fe&&ke}).sort((ie,we)=>{switch($){case"date-desc":return new Date(we.created_at).getTime()-new Date(ie.created_at).getTime();case"date-asc":return new Date(ie.created_at).getTime()-new Date(we.created_at).getTime();case"name-asc":return(ie.print_name||ie.filename).localeCompare(we.print_name||we.filename);case"name-desc":return(we.print_name||we.filename).localeCompare(ie.print_name||ie.filename);case"size-desc":return we.file_size-ie.file_size;case"size-asc":return ie.file_size-we.file_size;default:return 0}}),Ne=C.size>0,he=ie=>{U(we=>{const ve=new Set(we);return ve.has(ie)?ve.delete(ie):ve.add(ie),ve})},Ae=()=>{be&&U(new Set(be.map(ie=>ie.id)))},Be=()=>{U(new Set)},le=ie=>{d(we=>{const ve=new Set(we);return ve.has(ie)?ve.delete(ie):ve.add(ie),ve})},ct=()=>{d(new Set)},z=()=>{r(""),s(null),l(null),y(!1),x(null)},V=i||a||o||m||b,ne=R.useCallback(ie=>{ie.preventDefault(),ie.dataTransfer.types.includes("Files")&&D(!0)},[]),J=R.useCallback(ie=>{ie.preventDefault(),ie.currentTarget===ie.target&&D(!1)},[]),ee=R.useCallback(ie=>{ie.preventDefault(),D(!1);const we=Array.from(ie.dataTransfer.files).filter(ve=>ve.name.endsWith(".3mf"));we.length>0?(A(we),w(!0)):ie.dataTransfer.files.length>0&&e("Only .3mf files are supported","warning")},[e]),ae=R.useCallback(ie=>{const we=ie.target;if(we.tagName==="INPUT"||we.tagName==="TEXTAREA"||we.isContentEditable){ie.key==="Escape"&&we.blur();return}switch(ie.key){case"/":ie.preventDefault(),n.current?.focus();break;case"u":case"U":!ie.metaKey&&!ie.ctrlKey&&(ie.preventDefault(),w(!0));break;case"Escape":Ne&&Be();break}},[Ne]);return R.useEffect(()=>(document.addEventListener("keydown",ae),()=>document.removeEventListener("keydown",ae)),[ae]),S.jsxs("div",{className:"p-8 relative min-h-full",onDragOver:ne,onDragLeave:J,onDrop:ee,children:[T&&S.jsx("div",{className:"fixed inset-0 z-50 bg-bambu-dark/90 flex items-center justify-center pointer-events-none",children:S.jsxs("div",{className:"border-4 border-dashed border-bambu-green rounded-xl p-12 text-center",children:[S.jsx(Jb,{className:"w-16 h-16 mx-auto mb-4 text-bambu-green"}),S.jsx("p",{className:"text-2xl font-semibold text-white mb-2",children:"Drop .3mf files here"}),S.jsx("p",{className:"text-bambu-gray",children:"Release to upload"})]})}),Ne&&S.jsxs("div",{className:"fixed bottom-6 left-1/2 -translate-x-1/2 z-40 bg-bambu-dark-secondary border border-bambu-dark-tertiary rounded-lg shadow-xl px-4 py-3 flex items-center gap-4",children:[S.jsxs("span",{className:"text-white font-medium",children:[C.size," selected"]}),S.jsx("div",{className:"w-px h-6 bg-bambu-dark-tertiary"}),S.jsx(At,{variant:"secondary",size:"sm",onClick:Ae,children:"Select All"}),S.jsxs(At,{variant:"secondary",size:"sm",onClick:Be,children:[S.jsx(zi,{className:"w-4 h-4"}),"Clear"]}),S.jsx("div",{className:"w-px h-6 bg-bambu-dark-tertiary"}),S.jsxs(At,{variant:"secondary",size:"sm",onClick:()=>I(!0),children:[S.jsx(u0,{className:"w-4 h-4"}),"Tags"]}),S.jsxs(At,{variant:"secondary",size:"sm",onClick:()=>{const ie=Array.from(C);Promise.all(ie.map(we=>Tt.toggleFavorite(we))).then(()=>{t.invalidateQueries({queryKey:["archives"]}),e(`Toggled favorites for ${ie.length} archive${ie.length!==1?"s":""}`)}).catch(()=>{e("Failed to update favorites","error")})},children:[S.jsx(c0,{className:"w-4 h-4"}),"Favorite"]}),S.jsxs(At,{size:"sm",className:"bg-red-500 hover:bg-red-600",onClick:()=>k(!0),children:[S.jsx(rf,{className:"w-4 h-4"}),"Delete"]})]}),S.jsxs("div",{className:"flex items-center justify-between mb-8",children:[S.jsxs("div",{children:[S.jsxs("div",{className:"flex items-center gap-3",children:[S.jsx("h1",{className:"text-2xl font-bold text-white",children:"Archives"}),S.jsx("select",{className:"px-3 py-1.5 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-bambu-gray-light text-sm focus:border-bambu-green focus:outline-none",value:G,onChange:ie=>Y(ie.target.value),children:CMe.map(ie=>S.jsx("option",{value:ie.id,children:ie.label},ie.id))})]}),S.jsxs("p",{className:"text-bambu-gray",children:[be?.length||0," of ",Q?.length||0," prints"]})]}),S.jsxs("div",{className:"flex items-center gap-3",children:[!Ne&&S.jsxs(At,{variant:"secondary",onClick:()=>be?.length&&he(be[0].id),children:[S.jsx(Zb,{className:"w-4 h-4"}),"Select"]}),S.jsxs(At,{onClick:()=>w(!0),children:[S.jsx(Jb,{className:"w-4 h-4"}),"Upload 3MF"]})]})]}),S.jsx(ki,{className:"mb-6",children:S.jsxs(Qi,{className:"py-4",children:[S.jsxs("div",{className:"flex gap-4 items-center flex-wrap",children:[S.jsxs("div",{className:"flex-1 relative min-w-[200px]",children:[S.jsx(rG,{className:"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-bambu-gray"}),S.jsx("input",{ref:n,type:"text",placeholder:"Search archives... (press /)",className:"w-full pl-10 pr-4 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:i,onChange:ie=>r(ie.target.value)})]}),S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(uie,{className:"w-4 h-4 text-bambu-gray"}),S.jsxs("select",{className:"px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:a||"",onChange:ie=>s(ie.target.value?Number(ie.target.value):null),children:[S.jsx("option",{value:"",children:"All Printers"}),H?.map(ie=>S.jsx("option",{value:ie.id,children:ie.name},ie.id))]})]}),S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(Yb,{className:"w-4 h-4 text-bambu-gray"}),S.jsxs("select",{className:"px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:o||"",onChange:ie=>l(ie.target.value||null),children:[S.jsx("option",{value:"",children:"All Materials"}),ce.map(ie=>S.jsx("option",{value:ie,children:ie},ie))]})]}),S.jsxs("button",{onClick:()=>y(!m),className:`flex items-center gap-2 px-3 py-2 rounded-lg border transition-colors ${m?"bg-yellow-500/20 border-yellow-500 text-yellow-400":"bg-bambu-dark border-bambu-dark-tertiary text-bambu-gray hover:text-white"}`,title:m?"Show all":"Show favorites only",children:[S.jsx(c0,{className:`w-4 h-4 ${m?"fill-yellow-400":""}`}),S.jsx("span",{className:"text-sm",children:"Favorites"})]}),me.length>0&&S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(u0,{className:"w-4 h-4 text-bambu-gray"}),S.jsxs("select",{className:"px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:b||"",onChange:ie=>x(ie.target.value||null),children:[S.jsx("option",{value:"",children:"All Tags"}),me.map(ie=>S.jsx("option",{value:ie,children:ie},ie))]})]}),S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(gne,{className:"w-4 h-4 text-bambu-gray"}),S.jsxs("select",{className:"px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",value:$,onChange:ie=>q(ie.target.value),children:[S.jsx("option",{value:"date-desc",children:"Newest first"}),S.jsx("option",{value:"date-asc",children:"Oldest first"}),S.jsx("option",{value:"name-asc",children:"Name A-Z"}),S.jsx("option",{value:"name-desc",children:"Name Z-A"}),S.jsx("option",{value:"size-desc",children:"Largest first"}),S.jsx("option",{value:"size-asc",children:"Smallest first"})]})]}),S.jsxs("div",{className:"flex items-center border border-bambu-dark-tertiary rounded-lg overflow-hidden",children:[S.jsx("button",{className:`p-2 ${W==="grid"?"bg-bambu-green text-white":"bg-bambu-dark text-bambu-gray hover:text-white"}`,onClick:()=>O("grid"),title:"Grid view",children:S.jsx(Tie,{className:"w-4 h-4"})}),S.jsx("button",{className:`p-2 ${W==="list"?"bg-bambu-green text-white":"bg-bambu-dark text-bambu-gray hover:text-white"}`,onClick:()=>O("list"),title:"List view",children:S.jsx(iG,{className:"w-4 h-4"})}),S.jsx("button",{className:`p-2 ${W==="calendar"?"bg-bambu-green text-white":"bg-bambu-dark text-bambu-gray hover:text-white"}`,onClick:()=>O("calendar"),title:"Calendar view",children:S.jsx(_ne,{className:"w-4 h-4"})})]}),V&&S.jsxs(At,{variant:"ghost",size:"sm",onClick:z,className:"text-bambu-gray hover:text-white",children:[S.jsx(zi,{className:"w-4 h-4"}),"Reset"]})]}),ye.length>0&&S.jsxs("div",{className:"flex items-center gap-3 mt-4 pt-4 border-t border-bambu-dark-tertiary",children:[S.jsx("span",{className:"text-xs text-bambu-gray",children:"Colors:"}),c.size>1&&S.jsx("button",{onClick:()=>p(ie=>ie==="or"?"and":"or"),className:`px-2 py-0.5 text-xs rounded transition-colors ${f==="and"?"bg-bambu-green text-white":"bg-bambu-dark-tertiary text-bambu-gray hover:text-white"}`,title:f==="or"?"Match ANY selected color":"Match ALL selected colors",children:f.toUpperCase()}),S.jsx("div",{className:"flex items-center gap-1.5 flex-wrap",children:ye.map(ie=>S.jsx("button",{onClick:()=>le(ie),className:`w-6 h-6 rounded-full border-2 transition-all ${c.has(ie)?"border-bambu-green scale-110":"border-white/20 hover:border-white/40"}`,style:{backgroundColor:ie},title:ie},ie))}),c.size>0&&S.jsxs("button",{onClick:ct,className:"text-xs text-bambu-gray hover:text-white flex items-center gap-1",children:[S.jsx(zi,{className:"w-3 h-3"}),"Clear"]})]})]})}),se?S.jsx("div",{className:"text-center py-12 text-bambu-gray",children:"Loading archives..."}):be?.length===0?S.jsx(ki,{children:S.jsxs(Qi,{className:"text-center py-12",children:[S.jsx("p",{className:"text-bambu-gray",children:i?"No archives match your search":"No archives yet"}),S.jsx("p",{className:"text-sm text-bambu-gray mt-2",children:"Archives are created automatically when prints complete"})]})}):W==="calendar"?S.jsx(ki,{className:"p-6",children:S.jsx(rxe,{archives:be||[],onArchiveClick:ie=>{r(ie.print_name||ie.filename),O("grid")}})}):W==="grid"?S.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6",children:be?.map(ie=>S.jsx(TMe,{archive:ie,printerName:ie.printer_id?re.get(ie.printer_id)||"Unknown":"No Printer",isSelected:C.has(ie.id),onSelect:he,selectionMode:Ne},ie.id))}):W==="list"?S.jsx(ki,{children:S.jsxs("div",{className:"divide-y divide-bambu-dark-tertiary",children:[S.jsxs("div",{className:"grid grid-cols-12 gap-4 px-4 py-3 text-xs text-bambu-gray font-medium",children:[S.jsx("div",{className:"col-span-1"}),S.jsx("div",{className:"col-span-4",children:"Name"}),S.jsx("div",{className:"col-span-2",children:"Printer"}),S.jsx("div",{className:"col-span-2",children:"Date"}),S.jsx("div",{className:"col-span-1",children:"Size"}),S.jsx("div",{className:"col-span-2 text-right",children:"Actions"})]}),be?.map(ie=>S.jsxs("div",{className:`grid grid-cols-12 gap-4 px-4 py-3 items-center hover:bg-bambu-dark-tertiary/30 ${C.has(ie.id)?"bg-bambu-green/10":""}`,children:[S.jsxs("div",{className:"col-span-1 flex items-center gap-2",children:[Ne&&S.jsx("button",{onClick:()=>he(ie.id),children:C.has(ie.id)?S.jsx(Zb,{className:"w-4 h-4 text-bambu-green"}):S.jsx(w2,{className:"w-4 h-4 text-bambu-gray"})}),ie.thumbnail_path?S.jsx("img",{src:Tt.getArchiveThumbnail(ie.id),alt:"",className:"w-10 h-10 object-cover rounded"}):S.jsx("div",{className:"w-10 h-10 bg-bambu-dark rounded flex items-center justify-center",children:S.jsx(eS,{className:"w-5 h-5 text-bambu-dark-tertiary"})})]}),S.jsxs("div",{className:"col-span-4",children:[S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx("p",{className:"text-white text-sm truncate",children:ie.print_name||ie.filename}),ie.timelapse_path&&S.jsx("span",{title:"Has timelapse",children:S.jsx(zg,{className:"w-3.5 h-3.5 text-bambu-green flex-shrink-0"})})]}),ie.filament_type&&S.jsxs("div",{className:"flex items-center gap-1.5 mt-0.5",children:[S.jsx("span",{className:"text-xs text-bambu-gray",children:ie.filament_type}),ie.filament_color&&S.jsx("div",{className:"flex items-center gap-0.5 flex-wrap",children:ie.filament_color.split(",").map((we,ve)=>S.jsx("div",{className:"w-2.5 h-2.5 rounded-full border border-white/20",style:{backgroundColor:we},title:we},ve))})]})]}),S.jsx("div",{className:"col-span-2 text-sm text-bambu-gray truncate",children:ie.printer_id?re.get(ie.printer_id)||"Unknown":"No Printer"}),S.jsx("div",{className:"col-span-2 text-sm text-bambu-gray",children:new Date(ie.created_at).toLocaleDateString()}),S.jsx("div",{className:"col-span-1 text-sm text-bambu-gray",children:d7(ie.file_size)}),S.jsxs("div",{className:"col-span-2 flex justify-end gap-1",children:[S.jsx(At,{variant:"ghost",size:"sm",onClick:()=>{const we=ie.print_name||ie.filename||"model",ve=`${window.location.origin}${Tt.getArchiveForSlicer(ie.id,we)}`;window.location.href=`bambustudioopen://${encodeURIComponent(ve)}`},title:"Open in Slicer",children:S.jsx(gp,{className:"w-4 h-4"})}),ie.makerworld_url&&S.jsx(At,{variant:"ghost",size:"sm",onClick:()=>window.open(ie.makerworld_url,"_blank"),title:"MakerWorld",children:S.jsx(S2,{className:"w-4 h-4"})}),S.jsx(At,{variant:"ghost",size:"sm",onClick:()=>{const we=document.createElement("a");we.href=Tt.getArchiveDownload(ie.id),we.download=`${ie.print_name||ie.filename}.3mf`,we.click()},title:"Download",children:S.jsx(zd,{className:"w-4 h-4"})})]})]},ie.id))]})}):null,v&&S.jsx(Yve,{onClose:()=>{w(!1),A([])},initialFiles:M}),P&&S.jsx(qp,{title:"Delete Archives",message:`Are you sure you want to delete ${C.size} archive${C.size>1?"s":""}? This action cannot be undone.`,confirmText:`Delete ${C.size}`,variant:"danger",onConfirm:()=>{X.mutate(Array.from(C)),k(!1)},onCancel:()=>k(!1)}),B&&S.jsx(Qve,{selectedIds:Array.from(C),existingTags:me,onClose:()=>I(!1)})]})}function PMe({printDates:t,months:e=3}){const{weeks:n,monthLabels:i,printCounts:r}=R.useMemo(()=>{const l={};t.forEach(v=>{const w=v.split("T")[0];l[w]=(l[w]||0)+1});const c=new Date,d=new Date(c);d.setMonth(d.getMonth()-e),d.setDate(d.getDate()-d.getDay());const f=[],p=[];let m=[],y=-1;const b=new Date(d);let x=0;for(;b<=c;)b.getDay()===0&&m.length>0&&(f.push(m),m=[],x++),b.getMonth()!==y&&(p.push({month:b.toLocaleDateString("en-US",{month:"short"}),weekIndex:x}),y=b.getMonth()),m.push(new Date(b)),b.setDate(b.getDate()+1);return m.length>0&&f.push(m),{weeks:f,monthLabels:p,printCounts:l}},[t,e]),a=Math.max(1,...Object.values(r)),s=l=>{if(l===0)return"bg-bambu-dark";const c=l/a;return c<=.25?"bg-bambu-green/30":c<=.5?"bg-bambu-green/50":c<=.75?"bg-bambu-green/75":"bg-bambu-green"},o=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"];return S.jsxs("div",{className:"overflow-x-auto",children:[S.jsx("div",{className:"flex mb-1 ml-8",children:i.map(({month:l,weekIndex:c},d)=>S.jsx("div",{className:"text-xs text-bambu-gray",style:{marginLeft:d===0?0:`${(c-(i[d-1]?.weekIndex||0))*14-24}px`},children:l},d))}),S.jsxs("div",{className:"flex gap-0.5",children:[S.jsx("div",{className:"flex flex-col gap-0.5 mr-1",children:o.map((l,c)=>S.jsx("div",{className:"h-3 text-xs text-bambu-gray flex items-center",style:{visibility:c%2===1?"visible":"hidden"},children:l},l))}),n.map((l,c)=>S.jsx("div",{className:"flex flex-col gap-0.5",children:[0,1,2,3,4,5,6].map(d=>{const f=l.find(b=>b.getDay()===d);if(!f)return S.jsx("div",{className:"w-3 h-3"},d);const p=f.toISOString().split("T")[0],m=r[p]||0,y=p===new Date().toISOString().split("T")[0];return S.jsx("div",{className:`w-3 h-3 rounded-sm ${s(m)} ${y?"ring-1 ring-white":""}`,title:`${f.toLocaleDateString()}: ${m} print${m!==1?"s":""}`},d)})},c))]}),S.jsxs("div",{className:"flex items-center gap-2 mt-3 text-xs text-bambu-gray",children:[S.jsx("span",{children:"Less"}),S.jsxs("div",{className:"flex gap-0.5",children:[S.jsx("div",{className:"w-3 h-3 rounded-sm bg-bambu-dark"}),S.jsx("div",{className:"w-3 h-3 rounded-sm bg-bambu-green/30"}),S.jsx("div",{className:"w-3 h-3 rounded-sm bg-bambu-green/50"}),S.jsx("div",{className:"w-3 h-3 rounded-sm bg-bambu-green/75"}),S.jsx("div",{className:"w-3 h-3 rounded-sm bg-bambu-green"})]}),S.jsx("span",{children:"More"})]})]})}function f7(t){var e,n,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var r=t.length;for(e=0;e<r;e++)t[e]&&(n=f7(t[e]))&&(i&&(i+=" "),i+=n)}else for(n in t)t[n]&&(i&&(i+=" "),i+=n);return i}function yn(){for(var t,e,n=0,i="",r=arguments.length;n<r;n++)(t=arguments[n])&&(e=f7(t))&&(i&&(i+=" "),i+=e);return i}var DMe=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function HD(t){if(typeof t!="string")return!1;var e=DMe;return e.includes(t)}var NMe=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],OMe=new Set(NMe);function h7(t){return typeof t!="string"?!1:OMe.has(t)}function p7(t){return typeof t=="string"&&t.startsWith("data-")}function La(t){if(typeof t!="object"||t===null)return{};var e={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(h7(n)||p7(n))&&(e[n]=t[n]);return e}function gf(t){if(t==null)return null;if(R.isValidElement(t)&&typeof t.props=="object"&&t.props!==null){var e=t.props;return La(e)}return typeof t=="object"&&!Array.isArray(t)?La(t):null}function ga(t){var e={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(h7(n)||p7(n)||HD(n))&&(e[n]=t[n]);return e}function LMe(t){return t==null?null:R.isValidElement(t)?ga(t.props):typeof t=="object"&&!Array.isArray(t)?ga(t):null}var kMe=["children","width","height","viewBox","className","style","title","desc"];function a3(){return a3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},a3.apply(null,arguments)}function IMe(t,e){if(t==null)return{};var n,i,r=UMe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function UMe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var VD=R.forwardRef((t,e)=>{var{children:n,width:i,height:r,viewBox:a,className:s,style:o,title:l,desc:c}=t,d=IMe(t,kMe),f=a||{width:i,height:r,x:0,y:0},p=yn("recharts-surface",s);return R.createElement("svg",a3({},ga(d),{className:p,width:i,height:r,style:o,viewBox:"".concat(f.x," ").concat(f.y," ").concat(f.width," ").concat(f.height),ref:e}),R.createElement("title",null,l),R.createElement("desc",null,c),n)}),FMe=["children","className"];function s3(){return s3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},s3.apply(null,arguments)}function zMe(t,e){if(t==null)return{};var n,i,r=BMe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function BMe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var Ei=R.forwardRef((t,e)=>{var{children:n,className:i}=t,r=zMe(t,FMe),a=yn("recharts-layer",i);return R.createElement("g",s3({className:a},ga(r),{ref:e}),n)}),m7=R.createContext(null),jMe=()=>R.useContext(m7);function Gn(t){return function(){return t}}const g7=Math.cos,e1=Math.sin,xo=Math.sqrt,t1=Math.PI,AS=2*t1,o3=Math.PI,l3=2*o3,_d=1e-6,HMe=l3-_d;function v7(t){this._+=t[0];for(let e=1,n=t.length;e<n;++e)this._+=arguments[e]+t[e]}function VMe(t){let e=Math.floor(t);if(!(e>=0))throw new Error(`invalid digits: ${t}`);if(e>15)return v7;const n=10**e;return function(i){this._+=i[0];for(let r=1,a=i.length;r<a;++r)this._+=Math.round(arguments[r]*n)/n+i[r]}}class GMe{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=e==null?v7:VMe(e)}moveTo(e,n){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,n){this._append`L${this._x1=+e},${this._y1=+n}`}quadraticCurveTo(e,n,i,r){this._append`Q${+e},${+n},${this._x1=+i},${this._y1=+r}`}bezierCurveTo(e,n,i,r,a,s){this._append`C${+e},${+n},${+i},${+r},${this._x1=+a},${this._y1=+s}`}arcTo(e,n,i,r,a){if(e=+e,n=+n,i=+i,r=+r,a=+a,a<0)throw new Error(`negative radius: ${a}`);let s=this._x1,o=this._y1,l=i-e,c=r-n,d=s-e,f=o-n,p=d*d+f*f;if(this._x1===null)this._append`M${this._x1=e},${this._y1=n}`;else if(p>_d)if(!(Math.abs(f*l-c*d)>_d)||!a)this._append`L${this._x1=e},${this._y1=n}`;else{let m=i-s,y=r-o,b=l*l+c*c,x=m*m+y*y,v=Math.sqrt(b),w=Math.sqrt(p),M=a*Math.tan((o3-Math.acos((b+p-x)/(2*v*w)))/2),A=M/w,T=M/v;Math.abs(A-1)>_d&&this._append`L${e+A*d},${n+A*f}`,this._append`A${a},${a},0,0,${+(f*m>d*y)},${this._x1=e+T*l},${this._y1=n+T*c}`}}arc(e,n,i,r,a,s){if(e=+e,n=+n,i=+i,s=!!s,i<0)throw new Error(`negative radius: ${i}`);let o=i*Math.cos(r),l=i*Math.sin(r),c=e+o,d=n+l,f=1^s,p=s?r-a:a-r;this._x1===null?this._append`M${c},${d}`:(Math.abs(this._x1-c)>_d||Math.abs(this._y1-d)>_d)&&this._append`L${c},${d}`,i&&(p<0&&(p=p%l3+l3),p>HMe?this._append`A${i},${i},0,1,${f},${e-o},${n-l}A${i},${i},0,1,${f},${this._x1=c},${this._y1=d}`:p>_d&&this._append`A${i},${i},0,${+(p>=o3)},${f},${this._x1=e+i*Math.cos(a)},${this._y1=n+i*Math.sin(a)}`)}rect(e,n,i,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+n}h${i=+i}v${+r}h${-i}Z`}toString(){return this._}}function GD(t){let e=3;return t.digits=function(n){if(!arguments.length)return e;if(n==null)e=null;else{const i=Math.floor(n);if(!(i>=0))throw new RangeError(`invalid digits: ${n}`);e=i}return t},()=>new GMe(e)}function $D(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function x7(t){this._context=t}x7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:this._context.lineTo(t,e);break}}};function TS(t){return new x7(t)}function y7(t){return t[0]}function b7(t){return t[1]}function _7(t,e){var n=Gn(!0),i=null,r=TS,a=null,s=GD(o);t=typeof t=="function"?t:t===void 0?y7:Gn(t),e=typeof e=="function"?e:e===void 0?b7:Gn(e);function o(l){var c,d=(l=$D(l)).length,f,p=!1,m;for(i==null&&(a=r(m=s())),c=0;c<=d;++c)!(c<d&&n(f=l[c],c,l))===p&&((p=!p)?a.lineStart():a.lineEnd()),p&&a.point(+t(f,c,l),+e(f,c,l));if(m)return a=null,m+""||null}return o.x=function(l){return arguments.length?(t=typeof l=="function"?l:Gn(+l),o):t},o.y=function(l){return arguments.length?(e=typeof l=="function"?l:Gn(+l),o):e},o.defined=function(l){return arguments.length?(n=typeof l=="function"?l:Gn(!!l),o):n},o.curve=function(l){return arguments.length?(r=l,i!=null&&(a=r(i)),o):r},o.context=function(l){return arguments.length?(l==null?i=a=null:a=r(i=l),o):i},o}function ab(t,e,n){var i=null,r=Gn(!0),a=null,s=TS,o=null,l=GD(c);t=typeof t=="function"?t:t===void 0?y7:Gn(+t),e=typeof e=="function"?e:Gn(e===void 0?0:+e),n=typeof n=="function"?n:n===void 0?b7:Gn(+n);function c(f){var p,m,y,b=(f=$D(f)).length,x,v=!1,w,M=new Array(b),A=new Array(b);for(a==null&&(o=s(w=l())),p=0;p<=b;++p){if(!(p<b&&r(x=f[p],p,f))===v)if(v=!v)m=p,o.areaStart(),o.lineStart();else{for(o.lineEnd(),o.lineStart(),y=p-1;y>=m;--y)o.point(M[y],A[y]);o.lineEnd(),o.areaEnd()}v&&(M[p]=+t(x,p,f),A[p]=+e(x,p,f),o.point(i?+i(x,p,f):M[p],n?+n(x,p,f):A[p]))}if(w)return o=null,w+""||null}function d(){return _7().defined(r).curve(s).context(a)}return c.x=function(f){return arguments.length?(t=typeof f=="function"?f:Gn(+f),i=null,c):t},c.x0=function(f){return arguments.length?(t=typeof f=="function"?f:Gn(+f),c):t},c.x1=function(f){return arguments.length?(i=f==null?null:typeof f=="function"?f:Gn(+f),c):i},c.y=function(f){return arguments.length?(e=typeof f=="function"?f:Gn(+f),n=null,c):e},c.y0=function(f){return arguments.length?(e=typeof f=="function"?f:Gn(+f),c):e},c.y1=function(f){return arguments.length?(n=f==null?null:typeof f=="function"?f:Gn(+f),c):n},c.lineX0=c.lineY0=function(){return d().x(t).y(e)},c.lineY1=function(){return d().x(t).y(n)},c.lineX1=function(){return d().x(i).y(e)},c.defined=function(f){return arguments.length?(r=typeof f=="function"?f:Gn(!!f),c):r},c.curve=function(f){return arguments.length?(s=f,a!=null&&(o=s(a)),c):s},c.context=function(f){return arguments.length?(f==null?a=o=null:o=s(a=f),c):a},c}class S7{constructor(e,n){this._context=e,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(e,n){switch(e=+e,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(e,n):this._context.moveTo(e,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,n,e,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,e,this._y0,e,n);break}}this._x0=e,this._y0=n}}function $Me(t){return new S7(t,!0)}function WMe(t){return new S7(t,!1)}const WD={draw(t,e){const n=xo(e/t1);t.moveTo(n,0),t.arc(0,0,n,0,AS)}},qMe={draw(t,e){const n=xo(e/5)/2;t.moveTo(-3*n,-n),t.lineTo(-n,-n),t.lineTo(-n,-3*n),t.lineTo(n,-3*n),t.lineTo(n,-n),t.lineTo(3*n,-n),t.lineTo(3*n,n),t.lineTo(n,n),t.lineTo(n,3*n),t.lineTo(-n,3*n),t.lineTo(-n,n),t.lineTo(-3*n,n),t.closePath()}},w7=xo(1/3),XMe=w7*2,YMe={draw(t,e){const n=xo(e/XMe),i=n*w7;t.moveTo(0,-n),t.lineTo(i,0),t.lineTo(0,n),t.lineTo(-i,0),t.closePath()}},KMe={draw(t,e){const n=xo(e),i=-n/2;t.rect(i,i,n,n)}},ZMe=.8908130915292852,M7=e1(t1/10)/e1(7*t1/10),JMe=e1(AS/10)*M7,QMe=-g7(AS/10)*M7,eEe={draw(t,e){const n=xo(e*ZMe),i=JMe*n,r=QMe*n;t.moveTo(0,-n),t.lineTo(i,r);for(let a=1;a<5;++a){const s=AS*a/5,o=g7(s),l=e1(s);t.lineTo(l*n,-o*n),t.lineTo(o*i-l*r,l*i+o*r)}t.closePath()}},PT=xo(3),tEe={draw(t,e){const n=-xo(e/(PT*3));t.moveTo(0,n*2),t.lineTo(-PT*n,-n),t.lineTo(PT*n,-n),t.closePath()}},bs=-.5,_s=xo(3)/2,c3=1/xo(12),nEe=(c3/2+1)*3,iEe={draw(t,e){const n=xo(e/nEe),i=n/2,r=n*c3,a=i,s=n*c3+n,o=-a,l=s;t.moveTo(i,r),t.lineTo(a,s),t.lineTo(o,l),t.lineTo(bs*i-_s*r,_s*i+bs*r),t.lineTo(bs*a-_s*s,_s*a+bs*s),t.lineTo(bs*o-_s*l,_s*o+bs*l),t.lineTo(bs*i+_s*r,bs*r-_s*i),t.lineTo(bs*a+_s*s,bs*s-_s*a),t.lineTo(bs*o+_s*l,bs*l-_s*o),t.closePath()}};function rEe(t,e){let n=null,i=GD(r);t=typeof t=="function"?t:Gn(t||WD),e=typeof e=="function"?e:Gn(e===void 0?64:+e);function r(){let a;if(n||(n=a=i()),t.apply(this,arguments).draw(n,+e.apply(this,arguments)),a)return n=null,a+""||null}return r.type=function(a){return arguments.length?(t=typeof a=="function"?a:Gn(a),r):t},r.size=function(a){return arguments.length?(e=typeof a=="function"?a:Gn(+a),r):e},r.context=function(a){return arguments.length?(n=a??null,r):n},r}function n1(){}function i1(t,e,n){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+e)/6,(t._y0+4*t._y1+n)/6)}function E7(t){this._context=t}E7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:i1(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:i1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function aEe(t){return new E7(t)}function A7(t){this._context=t}A7.prototype={areaStart:n1,areaEnd:n1,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._x2=t,this._y2=e;break;case 1:this._point=2,this._x3=t,this._y3=e;break;case 2:this._point=3,this._x4=t,this._y4=e,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+e)/6);break;default:i1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function sEe(t){return new A7(t)}function T7(t){this._context=t}T7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+t)/6,i=(this._y0+4*this._y1+e)/6;this._line?this._context.lineTo(n,i):this._context.moveTo(n,i);break;case 3:this._point=4;default:i1(this,t,e);break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e}};function oEe(t){return new T7(t)}function C7(t){this._context=t}C7.prototype={areaStart:n1,areaEnd:n1,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,e){t=+t,e=+e,this._point?this._context.lineTo(t,e):(this._point=1,this._context.moveTo(t,e))}};function lEe(t){return new C7(t)}function z5(t){return t<0?-1:1}function B5(t,e,n){var i=t._x1-t._x0,r=e-t._x1,a=(t._y1-t._y0)/(i||r<0&&-0),s=(n-t._y1)/(r||i<0&&-0),o=(a*r+s*i)/(i+r);return(z5(a)+z5(s))*Math.min(Math.abs(a),Math.abs(s),.5*Math.abs(o))||0}function j5(t,e){var n=t._x1-t._x0;return n?(3*(t._y1-t._y0)/n-e)/2:e}function DT(t,e,n){var i=t._x0,r=t._y0,a=t._x1,s=t._y1,o=(a-i)/3;t._context.bezierCurveTo(i+o,r+o*e,a-o,s-o*n,a,s)}function r1(t){this._context=t}r1.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:DT(this,this._t0,j5(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(t,e){var n=NaN;if(t=+t,e=+e,!(t===this._x1&&e===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;break;case 2:this._point=3,DT(this,j5(this,n=B5(this,t,e)),n);break;default:DT(this,this._t0,n=B5(this,t,e));break}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=e,this._t0=n}}};function R7(t){this._context=new P7(t)}(R7.prototype=Object.create(r1.prototype)).point=function(t,e){r1.prototype.point.call(this,e,t)};function P7(t){this._context=t}P7.prototype={moveTo:function(t,e){this._context.moveTo(e,t)},closePath:function(){this._context.closePath()},lineTo:function(t,e){this._context.lineTo(e,t)},bezierCurveTo:function(t,e,n,i,r,a){this._context.bezierCurveTo(e,t,i,n,a,r)}};function cEe(t){return new r1(t)}function uEe(t){return new R7(t)}function D7(t){this._context=t}D7.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,e=this._y,n=t.length;if(n)if(this._line?this._context.lineTo(t[0],e[0]):this._context.moveTo(t[0],e[0]),n===2)this._context.lineTo(t[1],e[1]);else for(var i=H5(t),r=H5(e),a=0,s=1;s<n;++a,++s)this._context.bezierCurveTo(i[0][a],r[0][a],i[1][a],r[1][a],t[s],e[s]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,e){this._x.push(+t),this._y.push(+e)}};function H5(t){var e,n=t.length-1,i,r=new Array(n),a=new Array(n),s=new Array(n);for(r[0]=0,a[0]=2,s[0]=t[0]+2*t[1],e=1;e<n-1;++e)r[e]=1,a[e]=4,s[e]=4*t[e]+2*t[e+1];for(r[n-1]=2,a[n-1]=7,s[n-1]=8*t[n-1]+t[n],e=1;e<n;++e)i=r[e]/a[e-1],a[e]-=i,s[e]-=i*s[e-1];for(r[n-1]=s[n-1]/a[n-1],e=n-2;e>=0;--e)r[e]=(s[e]-r[e+1])/a[e];for(a[n-1]=(t[n]+r[n-1])/2,e=0;e<n-1;++e)a[e]=2*t[e+1]-r[e+1];return[r,a]}function dEe(t){return new D7(t)}function CS(t,e){this._context=t,this._t=e}CS.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,e){switch(t=+t,e=+e,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,e):this._context.moveTo(t,e);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,e),this._context.lineTo(t,e);else{var n=this._x*(1-this._t)+t*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,e)}break}}this._x=t,this._y=e}};function fEe(t){return new CS(t,.5)}function hEe(t){return new CS(t,0)}function pEe(t){return new CS(t,1)}function Op(t,e){if((s=t.length)>1)for(var n=1,i,r,a=t[e[0]],s,o=a.length;n<s;++n)for(r=a,a=t[e[n]],i=0;i<o;++i)a[i][1]+=a[i][0]=isNaN(r[i][1])?r[i][0]:r[i][1]}function u3(t){for(var e=t.length,n=new Array(e);--e>=0;)n[e]=e;return n}function mEe(t,e){return t[e]}function gEe(t){const e=[];return e.key=t,e}function vEe(){var t=Gn([]),e=u3,n=Op,i=mEe;function r(a){var s=Array.from(t.apply(this,arguments),gEe),o,l=s.length,c=-1,d;for(const f of a)for(o=0,++c;o<l;++o)(s[o][c]=[0,+i(f,s[o].key,c,a)]).data=f;for(o=0,d=$D(e(s));o<l;++o)s[d[o]].index=o;return n(s,d),s}return r.keys=function(a){return arguments.length?(t=typeof a=="function"?a:Gn(Array.from(a)),r):t},r.value=function(a){return arguments.length?(i=typeof a=="function"?a:Gn(+a),r):i},r.order=function(a){return arguments.length?(e=a==null?u3:typeof a=="function"?a:Gn(Array.from(a)),r):e},r.offset=function(a){return arguments.length?(n=a??Op,r):n},r}function xEe(t,e){if((i=t.length)>0){for(var n,i,r=0,a=t[0].length,s;r<a;++r){for(s=n=0;n<i;++n)s+=t[n][r][1]||0;if(s)for(n=0;n<i;++n)t[n][r][1]/=s}Op(t,e)}}function yEe(t,e){if((r=t.length)>0){for(var n=0,i=t[e[0]],r,a=i.length;n<a;++n){for(var s=0,o=0;s<r;++s)o+=t[s][n][1]||0;i[n][1]+=i[n][0]=-o/2}Op(t,e)}}function bEe(t,e){if(!(!((s=t.length)>0)||!((a=(r=t[e[0]]).length)>0))){for(var n=0,i=1,r,a,s;i<a;++i){for(var o=0,l=0,c=0;o<s;++o){for(var d=t[e[o]],f=d[i][1]||0,p=d[i-1][1]||0,m=(f-p)/2,y=0;y<o;++y){var b=t[e[y]],x=b[i][1]||0,v=b[i-1][1]||0;m+=x-v}l+=f,c+=m*f}r[i-1][1]+=r[i-1][0]=n,l&&(n-=c/l)}r[i-1][1]+=r[i-1][0]=n,Op(t,e)}}var NT={},OT={},V5;function _Ee(){return V5||(V5=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return n==="__proto__"}t.isUnsafeProperty=e})(OT)),OT}var LT={},G5;function N7(){return G5||(G5=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){switch(typeof n){case"number":case"symbol":return!1;case"string":return n.includes(".")||n.includes("[")||n.includes("]")}}t.isDeepKey=e})(LT)),LT}var kT={},$5;function qD(){return $5||($5=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return typeof n=="string"||typeof n=="symbol"?n:Object.is(n?.valueOf?.(),-0)?"-0":String(n)}t.toKey=e})(kT)),kT}var IT={},UT={},W5;function SEe(){return W5||(W5=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){if(n==null)return"";if(typeof n=="string")return n;if(Array.isArray(n))return n.map(e).join(",");const i=String(n);return i==="0"&&Object.is(Number(n),-0)?"-0":i}t.toString=e})(UT)),UT}var q5;function XD(){return q5||(q5=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=SEe(),n=qD();function i(r){if(Array.isArray(r))return r.map(n.toKey);if(typeof r=="symbol")return[r];r=e.toString(r);const a=[],s=r.length;if(s===0)return a;let o=0,l="",c="",d=!1;for(r.charCodeAt(0)===46&&(a.push(""),o++);o<s;){const f=r[o];c?f==="\\"&&o+1<s?(o++,l+=r[o]):f===c?c="":l+=f:d?f==='"'||f==="'"?c=f:f==="]"?(d=!1,a.push(l),l=""):l+=f:f==="["?(d=!0,l&&(a.push(l),l="")):f==="."?l&&(a.push(l),l=""):l+=f,o++}return l&&a.push(l),a}t.toPath=i})(IT)),IT}var X5;function YD(){return X5||(X5=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=_Ee(),n=N7(),i=qD(),r=XD();function a(o,l,c){if(o==null)return c;switch(typeof l){case"string":{if(e.isUnsafeProperty(l))return c;const d=o[l];return d===void 0?n.isDeepKey(l)?a(o,r.toPath(l),c):c:d}case"number":case"symbol":{typeof l=="number"&&(l=i.toKey(l));const d=o[l];return d===void 0?c:d}default:{if(Array.isArray(l))return s(o,l,c);if(Object.is(l?.valueOf(),-0)?l="-0":l=String(l),e.isUnsafeProperty(l))return c;const d=o[l];return d===void 0?c:d}}}function s(o,l,c){if(l.length===0)return c;let d=o;for(let f=0;f<l.length;f++){if(d==null||e.isUnsafeProperty(l[f]))return c;d=d[l[f]]}return d===void 0?c:d}t.get=a})(NT)),NT}var FT,Y5;function wEe(){return Y5||(Y5=1,FT=YD().get),FT}var MEe=wEe();const vf=Vs(MEe);var _r=t=>t===0?0:t>0?1:-1,Bs=t=>typeof t=="number"&&t!=+t,ec=t=>typeof t=="string"&&t.indexOf("%")===t.length-1,St=t=>(typeof t=="number"||t instanceof Number)&&!Bs(t),Vo=t=>St(t)||typeof t=="string",EEe=0,D0=t=>{var e=++EEe;return"".concat(t||"").concat(e)},ea=function(e,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!St(e)&&typeof e!="string")return i;var a;if(ec(e)){if(n==null)return i;var s=e.indexOf("%");a=n*parseFloat(e.slice(0,s))/100}else a=+e;return Bs(a)&&(a=i),r&&n!=null&&a>n&&(a=n),a},O7=t=>{if(!Array.isArray(t))return!1;for(var e=t.length,n={},i=0;i<e;i++)if(!n[t[i]])n[t[i]]=!0;else return!0;return!1};function Jn(t,e,n){return St(t)&&St(e)?t+n*(e-t):e}function L7(t,e,n){if(!(!t||!t.length))return t.find(i=>i&&(typeof e=="function"?e(i):vf(i,e))===n)}var oi=t=>t===null||typeof t>"u",ov=t=>oi(t)?t:"".concat(t.charAt(0).toUpperCase()).concat(t.slice(1));function AEe(t){return t!=null}function lv(){}var TEe=["type","size","sizeType"];function d3(){return d3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},d3.apply(null,arguments)}function K5(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Z5(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?K5(Object(n),!0).forEach(function(i){CEe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):K5(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function CEe(t,e,n){return(e=REe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function REe(t){var e=PEe(t,"string");return typeof e=="symbol"?e:e+""}function PEe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function DEe(t,e){if(t==null)return{};var n,i,r=NEe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function NEe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var k7={symbolCircle:WD,symbolCross:qMe,symbolDiamond:YMe,symbolSquare:KMe,symbolStar:eEe,symbolTriangle:tEe,symbolWye:iEe},OEe=Math.PI/180,LEe=t=>{var e="symbol".concat(ov(t));return k7[e]||WD},kEe=(t,e,n)=>{if(e==="area")return t;switch(n){case"cross":return 5*t*t/9;case"diamond":return .5*t*t/Math.sqrt(3);case"square":return t*t;case"star":{var i=18*OEe;return 1.25*t*t*(Math.tan(i)-Math.tan(i*2)*Math.tan(i)**2)}case"triangle":return Math.sqrt(3)*t*t/4;case"wye":return(21-10*Math.sqrt(3))*t*t/8;default:return Math.PI*t*t/4}},IEe=(t,e)=>{k7["symbol".concat(ov(t))]=e},KD=t=>{var{type:e="circle",size:n=64,sizeType:i="area"}=t,r=DEe(t,TEe),a=Z5(Z5({},r),{},{type:e,size:n,sizeType:i}),s="circle";typeof e=="string"&&(s=e);var o=()=>{var p=LEe(s),m=rEe().type(p).size(kEe(n,i,s)),y=m();if(y!==null)return y},{className:l,cx:c,cy:d}=a,f=ga(a);return St(c)&&St(d)&&St(n)?R.createElement("path",d3({},f,{className:yn("recharts-symbols",l),transform:"translate(".concat(c,", ").concat(d,")"),d:o()})):null};KD.registerSymbol=IEe;var I7=t=>"radius"in t&&"startAngle"in t&&"endAngle"in t,ZD=(t,e)=>{if(!t||typeof t=="function"||typeof t=="boolean")return null;var n=t;if(R.isValidElement(t)&&(n=t.props),typeof n!="object"&&typeof n!="function")return null;var i={};return Object.keys(n).forEach(r=>{HD(r)&&(i[r]=(a=>n[r](n,a)))}),i},UEe=(t,e,n)=>i=>(t(e,n,i),null),cv=(t,e,n)=>{if(t===null||typeof t!="object"&&typeof t!="function")return null;var i=null;return Object.keys(t).forEach(r=>{var a=t[r];HD(r)&&typeof a=="function"&&(i||(i={}),i[r]=UEe(a,e,n))}),i};function J5(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function FEe(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?J5(Object(n),!0).forEach(function(i){zEe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):J5(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function zEe(t,e,n){return(e=BEe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function BEe(t){var e=jEe(t,"string");return typeof e=="symbol"?e:e+""}function jEe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Vi(t,e){var n=FEe({},t),i=e,r=Object.keys(e),a=r.reduce((s,o)=>(s[o]===void 0&&i[o]!==void 0&&(s[o]=i[o]),s),n);return a}function a1(){return a1=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},a1.apply(null,arguments)}function Q5(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function HEe(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Q5(Object(n),!0).forEach(function(i){VEe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Q5(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function VEe(t,e,n){return(e=GEe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function GEe(t){var e=$Ee(t,"string");return typeof e=="symbol"?e:e+""}function $Ee(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Ms=32,WEe={align:"center",iconSize:14,inactiveColor:"#ccc",layout:"horizontal",verticalAlign:"middle"};function qEe(t){var{data:e,iconType:n,inactiveColor:i}=t,r=Ms/2,a=Ms/6,s=Ms/3,o=e.inactive?i:e.color,l=n??e.type;if(l==="none")return null;if(l==="plainline"){var c;return R.createElement("line",{strokeWidth:4,fill:"none",stroke:o,strokeDasharray:(c=e.payload)===null||c===void 0?void 0:c.strokeDasharray,x1:0,y1:r,x2:Ms,y2:r,className:"recharts-legend-icon"})}if(l==="line")return R.createElement("path",{strokeWidth:4,fill:"none",stroke:o,d:"M0,".concat(r,"h").concat(s,`
- A`).concat(a,",").concat(a,",0,1,1,").concat(2*s,",").concat(r,`
- H`).concat(Ms,"M").concat(2*s,",").concat(r,`
- A`).concat(a,",").concat(a,",0,1,1,").concat(s,",").concat(r),className:"recharts-legend-icon"});if(l==="rect")return R.createElement("path",{stroke:"none",fill:o,d:"M0,".concat(Ms/8,"h").concat(Ms,"v").concat(Ms*3/4,"h").concat(-Ms,"z"),className:"recharts-legend-icon"});if(R.isValidElement(e.legendIcon)){var d=HEe({},e);return delete d.legendIcon,R.cloneElement(e.legendIcon,d)}return R.createElement(KD,{fill:o,cx:r,cy:r,size:Ms,sizeType:"diameter",type:l})}function XEe(t){var{payload:e,iconSize:n,layout:i,formatter:r,inactiveColor:a,iconType:s}=t,o={x:0,y:0,width:Ms,height:Ms},l={display:i==="horizontal"?"inline-block":"block",marginRight:10},c={display:"inline-block",verticalAlign:"middle",marginRight:4};return e.map((d,f)=>{var p=d.formatter||r,m=yn({"recharts-legend-item":!0,["legend-item-".concat(f)]:!0,inactive:d.inactive});if(d.type==="none")return null;var y=d.inactive?a:d.color,b=p?p(d.value,d,f):d.value;return R.createElement("li",a1({className:m,style:l,key:"legend-item-".concat(f)},cv(t,d,f)),R.createElement(VD,{width:n,height:n,viewBox:o,style:c,"aria-label":"".concat(b," legend icon")},R.createElement(qEe,{data:d,iconType:s,inactiveColor:a})),R.createElement("span",{className:"recharts-legend-item-text",style:{color:y}},b))})}var YEe=t=>{var e=Vi(t,WEe),{payload:n,layout:i,align:r}=e;if(!n||!n.length)return null;var a={padding:0,margin:0,textAlign:i==="horizontal"?r:"left"};return R.createElement("ul",{className:"recharts-default-legend",style:a},R.createElement(XEe,a1({},e,{payload:n})))},zT={},BT={},ej;function KEe(){return ej||(ej=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n,i){const r=new Map;for(let a=0;a<n.length;a++){const s=n[a],o=i(s);r.has(o)||r.set(o,s)}return Array.from(r.values())}t.uniqBy=e})(BT)),BT}var jT={},tj;function U7(){return tj||(tj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return n}t.identity=e})(jT)),jT}var HT={},VT={},GT={},nj;function ZEe(){return nj||(nj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return Number.isSafeInteger(n)&&n>=0}t.isLength=e})(GT)),GT}var ij;function JD(){return ij||(ij=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=ZEe();function n(i){return i!=null&&typeof i!="function"&&e.isLength(i.length)}t.isArrayLike=n})(VT)),VT}var $T={},rj;function JEe(){return rj||(rj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return typeof n=="object"&&n!==null}t.isObjectLike=e})($T)),$T}var aj;function QEe(){return aj||(aj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=JD(),n=JEe();function i(r){return n.isObjectLike(r)&&e.isArrayLike(r)}t.isArrayLikeObject=i})(HT)),HT}var WT={},qT={},sj;function eAe(){return sj||(sj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=YD();function n(i){return function(r){return e.get(r,i)}}t.property=n})(qT)),qT}var XT={},YT={},KT={},ZT={},oj;function F7(){return oj||(oj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return n!==null&&(typeof n=="object"||typeof n=="function")}t.isObject=e})(ZT)),ZT}var JT={},lj;function z7(){return lj||(lj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return n==null||typeof n!="object"&&typeof n!="function"}t.isPrimitive=e})(JT)),JT}var QT={},cj;function B7(){return cj||(cj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n,i){return n===i||Number.isNaN(n)&&Number.isNaN(i)}t.eq=e})(QT)),QT}var uj;function tAe(){return uj||(uj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=F7(),n=z7(),i=B7();function r(d,f,p){return typeof p!="function"?r(d,f,()=>{}):a(d,f,function m(y,b,x,v,w,M){const A=p(y,b,x,v,w,M);return A!==void 0?!!A:a(y,b,m,M)},new Map)}function a(d,f,p,m){if(f===d)return!0;switch(typeof f){case"object":return s(d,f,p,m);case"function":return Object.keys(f).length>0?a(d,{...f},p,m):i.eq(d,f);default:return e.isObject(d)?typeof f=="string"?f==="":!0:i.eq(d,f)}}function s(d,f,p,m){if(f==null)return!0;if(Array.isArray(f))return l(d,f,p,m);if(f instanceof Map)return o(d,f,p,m);if(f instanceof Set)return c(d,f,p,m);const y=Object.keys(f);if(d==null)return y.length===0;if(y.length===0)return!0;if(m?.has(f))return m.get(f)===d;m?.set(f,d);try{for(let b=0;b<y.length;b++){const x=y[b];if(!n.isPrimitive(d)&&!(x in d)||f[x]===void 0&&d[x]!==void 0||f[x]===null&&d[x]!==null||!p(d[x],f[x],x,d,f,m))return!1}return!0}finally{m?.delete(f)}}function o(d,f,p,m){if(f.size===0)return!0;if(!(d instanceof Map))return!1;for(const[y,b]of f.entries()){const x=d.get(y);if(p(x,b,y,d,f,m)===!1)return!1}return!0}function l(d,f,p,m){if(f.length===0)return!0;if(!Array.isArray(d))return!1;const y=new Set;for(let b=0;b<f.length;b++){const x=f[b];let v=!1;for(let w=0;w<d.length;w++){if(y.has(w))continue;const M=d[w];let A=!1;if(p(M,x,b,d,f,m)&&(A=!0),A){y.add(w),v=!0;break}}if(!v)return!1}return!0}function c(d,f,p,m){return f.size===0?!0:d instanceof Set?l([...d],[...f],p,m):!1}t.isMatchWith=r,t.isSetMatch=c})(KT)),KT}var dj;function j7(){return dj||(dj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=tAe();function n(i,r){return e.isMatchWith(i,r,()=>{})}t.isMatch=n})(YT)),YT}var eC={},tC={},nC={},fj;function nAe(){return fj||(fj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return Object.getOwnPropertySymbols(n).filter(i=>Object.prototype.propertyIsEnumerable.call(n,i))}t.getSymbols=e})(nC)),nC}var iC={},hj;function H7(){return hj||(hj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return n==null?n===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(n)}t.getTag=e})(iC)),iC}var rC={},pj;function V7(){return pj||(pj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e="[object RegExp]",n="[object String]",i="[object Number]",r="[object Boolean]",a="[object Arguments]",s="[object Symbol]",o="[object Date]",l="[object Map]",c="[object Set]",d="[object Array]",f="[object Function]",p="[object ArrayBuffer]",m="[object Object]",y="[object Error]",b="[object DataView]",x="[object Uint8Array]",v="[object Uint8ClampedArray]",w="[object Uint16Array]",M="[object Uint32Array]",A="[object BigUint64Array]",T="[object Int8Array]",D="[object Int16Array]",C="[object Int32Array]",U="[object BigInt64Array]",P="[object Float32Array]",k="[object Float64Array]";t.argumentsTag=a,t.arrayBufferTag=p,t.arrayTag=d,t.bigInt64ArrayTag=U,t.bigUint64ArrayTag=A,t.booleanTag=r,t.dataViewTag=b,t.dateTag=o,t.errorTag=y,t.float32ArrayTag=P,t.float64ArrayTag=k,t.functionTag=f,t.int16ArrayTag=D,t.int32ArrayTag=C,t.int8ArrayTag=T,t.mapTag=l,t.numberTag=i,t.objectTag=m,t.regexpTag=e,t.setTag=c,t.stringTag=n,t.symbolTag=s,t.uint16ArrayTag=w,t.uint32ArrayTag=M,t.uint8ArrayTag=x,t.uint8ClampedArrayTag=v})(rC)),rC}var aC={},mj;function iAe(){return mj||(mj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}t.isTypedArray=e})(aC)),aC}var gj;function G7(){return gj||(gj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=nAe(),n=H7(),i=V7(),r=z7(),a=iAe();function s(d,f){return o(d,void 0,d,new Map,f)}function o(d,f,p,m=new Map,y=void 0){const b=y?.(d,f,p,m);if(b!==void 0)return b;if(r.isPrimitive(d))return d;if(m.has(d))return m.get(d);if(Array.isArray(d)){const x=new Array(d.length);m.set(d,x);for(let v=0;v<d.length;v++)x[v]=o(d[v],v,p,m,y);return Object.hasOwn(d,"index")&&(x.index=d.index),Object.hasOwn(d,"input")&&(x.input=d.input),x}if(d instanceof Date)return new Date(d.getTime());if(d instanceof RegExp){const x=new RegExp(d.source,d.flags);return x.lastIndex=d.lastIndex,x}if(d instanceof Map){const x=new Map;m.set(d,x);for(const[v,w]of d)x.set(v,o(w,v,p,m,y));return x}if(d instanceof Set){const x=new Set;m.set(d,x);for(const v of d)x.add(o(v,void 0,p,m,y));return x}if(typeof Buffer<"u"&&Buffer.isBuffer(d))return d.subarray();if(a.isTypedArray(d)){const x=new(Object.getPrototypeOf(d)).constructor(d.length);m.set(d,x);for(let v=0;v<d.length;v++)x[v]=o(d[v],v,p,m,y);return x}if(d instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&d instanceof SharedArrayBuffer)return d.slice(0);if(d instanceof DataView){const x=new DataView(d.buffer.slice(0),d.byteOffset,d.byteLength);return m.set(d,x),l(x,d,p,m,y),x}if(typeof File<"u"&&d instanceof File){const x=new File([d],d.name,{type:d.type});return m.set(d,x),l(x,d,p,m,y),x}if(typeof Blob<"u"&&d instanceof Blob){const x=new Blob([d],{type:d.type});return m.set(d,x),l(x,d,p,m,y),x}if(d instanceof Error){const x=new d.constructor;return m.set(d,x),x.message=d.message,x.name=d.name,x.stack=d.stack,x.cause=d.cause,l(x,d,p,m,y),x}if(d instanceof Boolean){const x=new Boolean(d.valueOf());return m.set(d,x),l(x,d,p,m,y),x}if(d instanceof Number){const x=new Number(d.valueOf());return m.set(d,x),l(x,d,p,m,y),x}if(d instanceof String){const x=new String(d.valueOf());return m.set(d,x),l(x,d,p,m,y),x}if(typeof d=="object"&&c(d)){const x=Object.create(Object.getPrototypeOf(d));return m.set(d,x),l(x,d,p,m,y),x}return d}function l(d,f,p=d,m,y){const b=[...Object.keys(f),...e.getSymbols(f)];for(let x=0;x<b.length;x++){const v=b[x],w=Object.getOwnPropertyDescriptor(d,v);(w==null||w.writable)&&(d[v]=o(f[v],v,p,m,y))}}function c(d){switch(n.getTag(d)){case i.argumentsTag:case i.arrayTag:case i.arrayBufferTag:case i.dataViewTag:case i.booleanTag:case i.dateTag:case i.float32ArrayTag:case i.float64ArrayTag:case i.int8ArrayTag:case i.int16ArrayTag:case i.int32ArrayTag:case i.mapTag:case i.numberTag:case i.objectTag:case i.regexpTag:case i.setTag:case i.stringTag:case i.symbolTag:case i.uint8ArrayTag:case i.uint8ClampedArrayTag:case i.uint16ArrayTag:case i.uint32ArrayTag:return!0;default:return!1}}t.cloneDeepWith=s,t.cloneDeepWithImpl=o,t.copyProperties=l})(tC)),tC}var vj;function rAe(){return vj||(vj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=G7();function n(i){return e.cloneDeepWithImpl(i,void 0,i,new Map,void 0)}t.cloneDeep=n})(eC)),eC}var xj;function aAe(){return xj||(xj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=j7(),n=rAe();function i(r){return r=n.cloneDeep(r),a=>e.isMatch(a,r)}t.matches=i})(XT)),XT}var sC={},oC={},lC={},yj;function sAe(){return yj||(yj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=G7(),n=V7();function i(r,a){return e.cloneDeepWith(r,(s,o,l,c)=>{const d=a?.(s,o,l,c);if(d!==void 0)return d;if(typeof r=="object")switch(Object.prototype.toString.call(r)){case n.numberTag:case n.stringTag:case n.booleanTag:{const f=new r.constructor(r?.valueOf());return e.copyProperties(f,r),f}case n.argumentsTag:{const f={};return e.copyProperties(f,r),f.length=r.length,f[Symbol.iterator]=r[Symbol.iterator],f}default:return}})}t.cloneDeepWith=i})(lC)),lC}var bj;function oAe(){return bj||(bj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=sAe();function n(i){return e.cloneDeepWith(i)}t.cloneDeep=n})(oC)),oC}var cC={},uC={},_j;function $7(){return _j||(_j=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=/^(?:0|[1-9]\d*)$/;function n(i,r=Number.MAX_SAFE_INTEGER){switch(typeof i){case"number":return Number.isInteger(i)&&i>=0&&i<r;case"symbol":return!1;case"string":return e.test(i)}}t.isIndex=n})(uC)),uC}var dC={},Sj;function lAe(){return Sj||(Sj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=H7();function n(i){return i!==null&&typeof i=="object"&&e.getTag(i)==="[object Arguments]"}t.isArguments=n})(dC)),dC}var wj;function cAe(){return wj||(wj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=N7(),n=$7(),i=lAe(),r=XD();function a(s,o){let l;if(Array.isArray(o)?l=o:typeof o=="string"&&e.isDeepKey(o)&&s?.[o]==null?l=r.toPath(o):l=[o],l.length===0)return!1;let c=s;for(let d=0;d<l.length;d++){const f=l[d];if((c==null||!Object.hasOwn(c,f))&&!((Array.isArray(c)||i.isArguments(c))&&n.isIndex(f)&&f<c.length))return!1;c=c[f]}return!0}t.has=a})(cC)),cC}var Mj;function uAe(){return Mj||(Mj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=j7(),n=qD(),i=oAe(),r=YD(),a=cAe();function s(o,l){switch(typeof o){case"object":{Object.is(o?.valueOf(),-0)&&(o="-0");break}case"number":{o=n.toKey(o);break}}return l=i.cloneDeep(l),function(c){const d=r.get(c,o);return d===void 0?a.has(c,o):l===void 0?d===void 0:e.isMatch(d,l)}}t.matchesProperty=s})(sC)),sC}var Ej;function dAe(){return Ej||(Ej=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=U7(),n=eAe(),i=aAe(),r=uAe();function a(s){if(s==null)return e.identity;switch(typeof s){case"function":return s;case"object":return Array.isArray(s)&&s.length===2?r.matchesProperty(s[0],s[1]):i.matches(s);case"string":case"symbol":case"number":return n.property(s)}}t.iteratee=a})(WT)),WT}var Aj;function fAe(){return Aj||(Aj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=KEe(),n=U7(),i=QEe(),r=dAe();function a(s,o=n.identity){return i.isArrayLikeObject(s)?e.uniqBy(Array.from(s),r.iteratee(o)):[]}t.uniqBy=a})(zT)),zT}var fC,Tj;function hAe(){return Tj||(Tj=1,fC=fAe().uniqBy),fC}var pAe=hAe();const Cj=Vs(pAe);function W7(t,e,n){return e===!0?Cj(t,n):typeof e=="function"?Cj(t,e):t}var QD=R.createContext(null),mAe=t=>t,Wn=()=>{var t=R.useContext(QD);return t?t.store.dispatch:mAe},Bb=()=>{},gAe=()=>Bb,vAe=(t,e)=>t===e;function wt(t){var e=R.useContext(QD);return LW.useSyncExternalStoreWithSelector(e?e.subscription.addNestedSub:gAe,e?e.store.getState:Bb,e?e.store.getState:Bb,e?t:Bb,vAe)}function xAe(t,e=`expected a function, instead received ${typeof t}`){if(typeof t!="function")throw new TypeError(e)}function yAe(t,e=`expected an object, instead received ${typeof t}`){if(typeof t!="object")throw new TypeError(e)}function bAe(t,e="expected all items to be functions, instead received the following types: "){if(!t.every(n=>typeof n=="function")){const n=t.map(i=>typeof i=="function"?`function ${i.name||"unnamed"}()`:typeof i).join(", ");throw new TypeError(`${e}[${n}]`)}}var Rj=t=>Array.isArray(t)?t:[t];function _Ae(t){const e=Array.isArray(t[0])?t[0]:t;return bAe(e,"createSelector expects all input-selectors to be functions, but received the following types: "),e}function SAe(t,e){const n=[],{length:i}=t;for(let r=0;r<i;r++)n.push(t[r].apply(null,e));return n}var wAe=class{constructor(t){this.value=t}deref(){return this.value}},MAe=typeof WeakRef<"u"?WeakRef:wAe,EAe=0,Pj=1;function sb(){return{s:EAe,v:void 0,o:null,p:null}}function q7(t,e={}){let n=sb();const{resultEqualityCheck:i}=e;let r,a=0;function s(){let o=n;const{length:l}=arguments;for(let f=0,p=l;f<p;f++){const m=arguments[f];if(typeof m=="function"||typeof m=="object"&&m!==null){let y=o.o;y===null&&(o.o=y=new WeakMap);const b=y.get(m);b===void 0?(o=sb(),y.set(m,o)):o=b}else{let y=o.p;y===null&&(o.p=y=new Map);const b=y.get(m);b===void 0?(o=sb(),y.set(m,o)):o=b}}const c=o;let d;if(o.s===Pj)d=o.v;else if(d=t.apply(null,arguments),a++,i){const f=r?.deref?.()??r;f!=null&&i(f,d)&&(d=f,a!==0&&a--),r=typeof d=="object"&&d!==null||typeof d=="function"?new MAe(d):d}return c.s=Pj,c.v=d,d}return s.clearCache=()=>{n=sb(),s.resetResultsCount()},s.resultsCount=()=>a,s.resetResultsCount=()=>{a=0},s}function AAe(t,...e){const n=typeof t=="function"?{memoize:t,memoizeOptions:e}:t,i=(...r)=>{let a=0,s=0,o,l={},c=r.pop();typeof c=="object"&&(l=c,c=r.pop()),xAe(c,`createSelector expects an output function after the inputs, but received: [${typeof c}]`);const d={...n,...l},{memoize:f,memoizeOptions:p=[],argsMemoize:m=q7,argsMemoizeOptions:y=[]}=d,b=Rj(p),x=Rj(y),v=_Ae(r),w=f(function(){return a++,c.apply(null,arguments)},...b),M=m(function(){s++;const T=SAe(v,arguments);return o=w.apply(null,T),o},...x);return Object.assign(M,{resultFunc:c,memoizedResultFunc:w,dependencies:v,dependencyRecomputations:()=>s,resetDependencyRecomputations:()=>{s=0},lastResult:()=>o,recomputations:()=>a,resetRecomputations:()=>{a=0},memoize:f,argsMemoize:m})};return Object.assign(i,{withTypes:()=>i}),i}var He=AAe(q7),TAe=Object.assign((t,e=He)=>{yAe(t,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof t}`);const n=Object.keys(t),i=n.map(a=>t[a]);return e(i,(...a)=>a.reduce((s,o,l)=>(s[n[l]]=o,s),{}))},{withTypes:()=>TAe}),hC={},pC={},mC={},Dj;function CAe(){return Dj||(Dj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(i){return typeof i=="symbol"?1:i===null?2:i===void 0?3:i!==i?4:0}const n=(i,r,a)=>{if(i!==r){const s=e(i),o=e(r);if(s===o&&s===0){if(i<r)return a==="desc"?1:-1;if(i>r)return a==="desc"?-1:1}return a==="desc"?o-s:s-o}return 0};t.compareValues=n})(mC)),mC}var gC={},vC={},Nj;function X7(){return Nj||(Nj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return typeof n=="symbol"||n instanceof Symbol}t.isSymbol=e})(vC)),vC}var Oj;function RAe(){return Oj||(Oj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=X7(),n=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;function r(a,s){return Array.isArray(a)?!1:typeof a=="number"||typeof a=="boolean"||a==null||e.isSymbol(a)?!0:typeof a=="string"&&(i.test(a)||!n.test(a))||s!=null&&Object.hasOwn(s,a)}t.isKey=r})(gC)),gC}var Lj;function PAe(){return Lj||(Lj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=CAe(),n=RAe(),i=XD();function r(a,s,o,l){if(a==null)return[];o=l?void 0:o,Array.isArray(a)||(a=Object.values(a)),Array.isArray(s)||(s=s==null?[null]:[s]),s.length===0&&(s=[null]),Array.isArray(o)||(o=o==null?[]:[o]),o=o.map(m=>String(m));const c=(m,y)=>{let b=m;for(let x=0;x<y.length&&b!=null;++x)b=b[y[x]];return b},d=(m,y)=>y==null||m==null?y:typeof m=="object"&&"key"in m?Object.hasOwn(y,m.key)?y[m.key]:c(y,m.path):typeof m=="function"?m(y):Array.isArray(m)?c(y,m):typeof y=="object"?y[m]:y,f=s.map(m=>(Array.isArray(m)&&m.length===1&&(m=m[0]),m==null||typeof m=="function"||Array.isArray(m)||n.isKey(m)?m:{key:m,path:i.toPath(m)}));return a.map(m=>({original:m,criteria:f.map(y=>d(y,m))})).slice().sort((m,y)=>{for(let b=0;b<f.length;b++){const x=e.compareValues(m.criteria[b],y.criteria[b],o[b]);if(x!==0)return x}return 0}).map(m=>m.original)}t.orderBy=r})(pC)),pC}var xC={},kj;function DAe(){return kj||(kj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n,i=1){const r=[],a=Math.floor(i),s=(o,l)=>{for(let c=0;c<o.length;c++){const d=o[c];Array.isArray(d)&&l<a?s(d,l+1):r.push(d)}};return s(n,0),r}t.flatten=e})(xC)),xC}var yC={},Ij;function Y7(){return Ij||(Ij=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=$7(),n=JD(),i=F7(),r=B7();function a(s,o,l){return i.isObject(l)&&(typeof o=="number"&&n.isArrayLike(l)&&e.isIndex(o)&&o<l.length||typeof o=="string"&&o in l)?r.eq(l[o],s):!1}t.isIterateeCall=a})(yC)),yC}var Uj;function NAe(){return Uj||(Uj=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=PAe(),n=DAe(),i=Y7();function r(a,...s){const o=s.length;return o>1&&i.isIterateeCall(a,s[0],s[1])?s=[]:o>2&&i.isIterateeCall(s[0],s[1],s[2])&&(s=[s[0]]),e.orderBy(a,n.flatten(s),["asc"])}t.sortBy=r})(hC)),hC}var bC,Fj;function OAe(){return Fj||(Fj=1,bC=NAe().sortBy),bC}var LAe=OAe();const RS=Vs(LAe);var K7=t=>t.legend.settings,kAe=t=>t.legend.size,IAe=t=>t.legend.payload,UAe=He([IAe,K7],(t,e)=>{var{itemSorter:n}=e,i=t.flat(1);return n?RS(i,n):i});function FAe(){return wt(UAe)}var ob=1;function Z7(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],[e,n]=R.useState({height:0,left:0,top:0,width:0}),i=R.useCallback(r=>{if(r!=null){var a=r.getBoundingClientRect(),s={height:a.height,left:a.left,top:a.top,width:a.width};(Math.abs(s.height-e.height)>ob||Math.abs(s.left-e.left)>ob||Math.abs(s.top-e.top)>ob||Math.abs(s.width-e.width)>ob)&&n({height:s.height,left:s.left,top:s.top,width:s.width})}},[e.width,e.height,e.top,e.left,...t]);return[e,i]}function Lr(t){return`Minified Redux error #${t}; visit https://redux.js.org/Errors?code=${t} for the full message or use the non-minified dev environment for full errors. `}var zAe=typeof Symbol=="function"&&Symbol.observable||"@@observable",zj=zAe,_C=()=>Math.random().toString(36).substring(7).split("").join("."),BAe={INIT:`@@redux/INIT${_C()}`,REPLACE:`@@redux/REPLACE${_C()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${_C()}`},s1=BAe;function eN(t){if(typeof t!="object"||t===null)return!1;let e=t;for(;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e||Object.getPrototypeOf(t)===null}function J7(t,e,n){if(typeof t!="function")throw new Error(Lr(2));if(typeof e=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(Lr(0));if(typeof e=="function"&&typeof n>"u"&&(n=e,e=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(Lr(1));return n(J7)(t,e)}let i=t,r=e,a=new Map,s=a,o=0,l=!1;function c(){s===a&&(s=new Map,a.forEach((x,v)=>{s.set(v,x)}))}function d(){if(l)throw new Error(Lr(3));return r}function f(x){if(typeof x!="function")throw new Error(Lr(4));if(l)throw new Error(Lr(5));let v=!0;c();const w=o++;return s.set(w,x),function(){if(v){if(l)throw new Error(Lr(6));v=!1,c(),s.delete(w),a=null}}}function p(x){if(!eN(x))throw new Error(Lr(7));if(typeof x.type>"u")throw new Error(Lr(8));if(typeof x.type!="string")throw new Error(Lr(17));if(l)throw new Error(Lr(9));try{l=!0,r=i(r,x)}finally{l=!1}return(a=s).forEach(w=>{w()}),x}function m(x){if(typeof x!="function")throw new Error(Lr(10));i=x,p({type:s1.REPLACE})}function y(){const x=f;return{subscribe(v){if(typeof v!="object"||v===null)throw new Error(Lr(11));function w(){const A=v;A.next&&A.next(d())}return w(),{unsubscribe:x(w)}},[zj](){return this}}}return p({type:s1.INIT}),{dispatch:p,subscribe:f,getState:d,replaceReducer:m,[zj]:y}}function jAe(t){Object.keys(t).forEach(e=>{const n=t[e];if(typeof n(void 0,{type:s1.INIT})>"u")throw new Error(Lr(12));if(typeof n(void 0,{type:s1.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Lr(13))})}function Q7(t){const e=Object.keys(t),n={};for(let a=0;a<e.length;a++){const s=e[a];typeof t[s]=="function"&&(n[s]=t[s])}const i=Object.keys(n);let r;try{jAe(n)}catch(a){r=a}return function(s={},o){if(r)throw r;let l=!1;const c={};for(let d=0;d<i.length;d++){const f=i[d],p=n[f],m=s[f],y=p(m,o);if(typeof y>"u")throw o&&o.type,new Error(Lr(14));c[f]=y,l=l||y!==m}return l=l||i.length!==Object.keys(s).length,l?c:s}}function o1(...t){return t.length===0?e=>e:t.length===1?t[0]:t.reduce((e,n)=>(...i)=>e(n(...i)))}function HAe(...t){return e=>(n,i)=>{const r=e(n,i);let a=()=>{throw new Error(Lr(15))};const s={getState:r.getState,dispatch:(l,...c)=>a(l,...c)},o=t.map(l=>l(s));return a=o1(...o)(r.dispatch),{...r,dispatch:a}}}function eq(t){return eN(t)&&"type"in t&&typeof t.type=="string"}var tq=Symbol.for("immer-nothing"),Bj=Symbol.for("immer-draftable"),va=Symbol.for("immer-state");function ao(t,...e){throw new Error(`[Immer] minified error nr: ${t}. Full error at: https://bit.ly/3cXEKWf`)}var ts=Object,Lp=ts.getPrototypeOf,l1="constructor",PS="prototype",f3="configurable",c1="enumerable",jb="writable",N0="value",tc=t=>!!t&&!!t[va];function mo(t){return t?nq(t)||DS(t)||!!t[Bj]||!!t[l1]?.[Bj]||NS(t)||OS(t):!1}var VAe=ts[PS][l1].toString(),jj=new WeakMap;function nq(t){if(!t||!tN(t))return!1;const e=Lp(t);if(e===null||e===ts[PS])return!0;const n=ts.hasOwnProperty.call(e,l1)&&e[l1];if(n===Object)return!0;if(!Kh(n))return!1;let i=jj.get(n);return i===void 0&&(i=Function.toString.call(n),jj.set(n,i)),i===VAe}function uv(t,e,n=!0){dv(t)===0?(n?Reflect.ownKeys(t):ts.keys(t)).forEach(r=>{e(r,t[r],t)}):t.forEach((i,r)=>e(r,i,t))}function dv(t){const e=t[va];return e?e.type_:DS(t)?1:NS(t)?2:OS(t)?3:0}var Hj=(t,e,n=dv(t))=>n===2?t.has(e):ts[PS].hasOwnProperty.call(t,e),h3=(t,e,n=dv(t))=>n===2?t.get(e):t[e],u1=(t,e,n,i=dv(t))=>{i===2?t.set(e,n):i===3?t.add(n):t[e]=n};function GAe(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}var DS=Array.isArray,NS=t=>t instanceof Map,OS=t=>t instanceof Set,tN=t=>typeof t=="object",Kh=t=>typeof t=="function",SC=t=>typeof t=="boolean",Nl=t=>t.copy_||t.base_,nN=t=>t.modified_?t.copy_:t.base_;function p3(t,e){if(NS(t))return new Map(t);if(OS(t))return new Set(t);if(DS(t))return Array[PS].slice.call(t);const n=nq(t);if(e===!0||e==="class_only"&&!n){const i=ts.getOwnPropertyDescriptors(t);delete i[va];let r=Reflect.ownKeys(i);for(let a=0;a<r.length;a++){const s=r[a],o=i[s];o[jb]===!1&&(o[jb]=!0,o[f3]=!0),(o.get||o.set)&&(i[s]={[f3]:!0,[jb]:!0,[c1]:o[c1],[N0]:t[s]})}return ts.create(Lp(t),i)}else{const i=Lp(t);if(i!==null&&n)return{...t};const r=ts.create(i);return ts.assign(r,t)}}function iN(t,e=!1){return LS(t)||tc(t)||!mo(t)||(dv(t)>1&&ts.defineProperties(t,{set:lb,add:lb,clear:lb,delete:lb}),ts.freeze(t),e&&uv(t,(n,i)=>{iN(i,!0)},!1)),t}function $Ae(){ao(2)}var lb={[N0]:$Ae};function LS(t){return t===null||!tN(t)?!0:ts.isFrozen(t)}var d1="MapSet",m3="Patches",iq={};function kp(t){const e=iq[t];return e||ao(0,t),e}var WAe=t=>!!iq[t],O0,rq=()=>O0,qAe=(t,e)=>({drafts_:[],parent_:t,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:WAe(d1)?kp(d1):void 0});function Vj(t,e){e&&(t.patchPlugin_=kp(m3),t.patches_=[],t.inversePatches_=[],t.patchListener_=e)}function g3(t){v3(t),t.drafts_.forEach(XAe),t.drafts_=null}function v3(t){t===O0&&(O0=t.parent_)}var Gj=t=>O0=qAe(O0,t);function XAe(t){const e=t[va];e.type_===0||e.type_===1?e.revoke_():e.revoked_=!0}function $j(t,e){e.unfinalizedDrafts_=e.drafts_.length;const n=e.drafts_[0];if(t!==void 0&&t!==n){n[va].modified_&&(g3(e),ao(4)),mo(t)&&(t=Wj(e,t));const{patchPlugin_:r}=e;r&&r.generateReplacementPatches_(n[va].base_,t,e)}else t=Wj(e,n);return YAe(e,t,!0),g3(e),e.patches_&&e.patchListener_(e.patches_,e.inversePatches_),t!==tq?t:void 0}function Wj(t,e){if(LS(e))return e;const n=e[va];if(!n)return rN(e,t.handledSet_,t);if(!kS(n,t))return e;if(!n.modified_)return n.base_;if(!n.finalized_){const{callbacks_:i}=n;if(i)for(;i.length>0;)i.pop()(t);oq(n,t)}return n.copy_}function YAe(t,e,n=!1){!t.parent_&&t.immer_.autoFreeze_&&t.canAutoFreeze_&&iN(e,n)}function aq(t){t.finalized_=!0,t.scope_.unfinalizedDrafts_--}var kS=(t,e)=>t.scope_===e,KAe=[];function sq(t,e,n,i){const r=Nl(t),a=t.type_;if(i!==void 0&&h3(r,i,a)===e){u1(r,i,n,a);return}if(!t.draftLocations_){const o=t.draftLocations_=new Map;uv(r,(l,c)=>{if(tc(c)){const d=o.get(c)||[];d.push(l),o.set(c,d)}})}const s=t.draftLocations_.get(e)??KAe;for(const o of s)u1(r,o,n,a)}function ZAe(t,e,n){t.callbacks_.push(function(r){const a=e;if(!a||!kS(a,r))return;r.mapSetPlugin_?.fixSetContents(a);const s=nN(a);sq(t,a.draft_??a,s,n),oq(a,r)})}function oq(t,e){if(t.modified_&&!t.finalized_&&(t.type_===3||(t.assigned_?.size??0)>0)){const{patchPlugin_:i}=e;if(i){const r=i.getPath(t);r&&i.generatePatches_(t,r,e)}aq(t)}}function JAe(t,e,n){const{scope_:i}=t;if(tc(n)){const r=n[va];kS(r,i)&&r.callbacks_.push(function(){Hb(t);const s=nN(r);sq(t,n,s,e)})}else mo(n)&&t.callbacks_.push(function(){const a=Nl(t);h3(a,e,t.type_)===n&&i.drafts_.length>1&&(t.assigned_.get(e)??!1)===!0&&t.copy_&&rN(h3(t.copy_,e,t.type_),i.handledSet_,i)})}function rN(t,e,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||tc(t)||e.has(t)||!mo(t)||LS(t)||(e.add(t),uv(t,(i,r)=>{if(tc(r)){const a=r[va];if(kS(a,n)){const s=nN(a);u1(t,i,s,t.type_),aq(a)}}else mo(r)&&rN(r,e,n)})),t}function QAe(t,e){const n=DS(t),i={type_:n?1:0,scope_:e?e.scope_:rq(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:e,base_:t,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let r=i,a=aN;n&&(r=[i],a=L0);const{revoke:s,proxy:o}=Proxy.revocable(r,a);return i.draft_=o,i.revoke_=s,[o,i]}var aN={get(t,e){if(e===va)return t;const n=Nl(t);if(!Hj(n,e,t.type_))return eTe(t,n,e);const i=n[e];if(t.finalized_||!mo(i))return i;if(i===wC(t.base_,e)){Hb(t);const r=t.type_===1?+e:e,a=y3(t.scope_,i,t,r);return t.copy_[r]=a}return i},has(t,e){return e in Nl(t)},ownKeys(t){return Reflect.ownKeys(Nl(t))},set(t,e,n){const i=lq(Nl(t),e);if(i?.set)return i.set.call(t.draft_,n),!0;if(!t.modified_){const r=wC(Nl(t),e),a=r?.[va];if(a&&a.base_===n)return t.copy_[e]=n,t.assigned_.set(e,!1),!0;if(GAe(n,r)&&(n!==void 0||Hj(t.base_,e,t.type_)))return!0;Hb(t),x3(t)}return t.copy_[e]===n&&(n!==void 0||e in t.copy_)||Number.isNaN(n)&&Number.isNaN(t.copy_[e])||(t.copy_[e]=n,t.assigned_.set(e,!0),JAe(t,e,n)),!0},deleteProperty(t,e){return Hb(t),wC(t.base_,e)!==void 0||e in t.base_?(t.assigned_.set(e,!1),x3(t)):t.assigned_.delete(e),t.copy_&&delete t.copy_[e],!0},getOwnPropertyDescriptor(t,e){const n=Nl(t),i=Reflect.getOwnPropertyDescriptor(n,e);return i&&{[jb]:!0,[f3]:t.type_!==1||e!=="length",[c1]:i[c1],[N0]:n[e]}},defineProperty(){ao(11)},getPrototypeOf(t){return Lp(t.base_)},setPrototypeOf(){ao(12)}},L0={};uv(aN,(t,e)=>{L0[t]=function(){const n=arguments;return n[0]=n[0][0],e.apply(this,n)}});L0.deleteProperty=function(t,e){return L0.set.call(this,t,e,void 0)};L0.set=function(t,e,n){return aN.set.call(this,t[0],e,n,t[0])};function wC(t,e){const n=t[va];return(n?Nl(n):t)[e]}function eTe(t,e,n){const i=lq(e,n);return i?N0 in i?i[N0]:i.get?.call(t.draft_):void 0}function lq(t,e){if(!(e in t))return;let n=Lp(t);for(;n;){const i=Object.getOwnPropertyDescriptor(n,e);if(i)return i;n=Lp(n)}}function x3(t){t.modified_||(t.modified_=!0,t.parent_&&x3(t.parent_))}function Hb(t){t.copy_||(t.assigned_=new Map,t.copy_=p3(t.base_,t.scope_.immer_.useStrictShallowCopy_))}var tTe=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(n,i,r)=>{if(Kh(n)&&!Kh(i)){const s=i;i=n;const o=this;return function(c=s,...d){return o.produce(c,f=>i.call(this,f,...d))}}Kh(i)||ao(6),r!==void 0&&!Kh(r)&&ao(7);let a;if(mo(n)){const s=Gj(this),o=y3(s,n,void 0);let l=!0;try{a=i(o),l=!1}finally{l?g3(s):v3(s)}return Vj(s,r),$j(a,s)}else if(!n||!tN(n)){if(a=i(n),a===void 0&&(a=n),a===tq&&(a=void 0),this.autoFreeze_&&iN(a,!0),r){const s=[],o=[];kp(m3).generateReplacementPatches_(n,a,{patches_:s,inversePatches_:o}),r(s,o)}return a}else ao(1,n)},this.produceWithPatches=(n,i)=>{if(Kh(n))return(o,...l)=>this.produceWithPatches(o,c=>n(c,...l));let r,a;return[this.produce(n,i,(o,l)=>{r=o,a=l}),r,a]},SC(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),SC(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),SC(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){mo(e)||ao(8),tc(e)&&(e=ho(e));const n=Gj(this),i=y3(n,e,void 0);return i[va].isManual_=!0,v3(n),i}finishDraft(e,n){const i=e&&e[va];(!i||!i.isManual_)&&ao(9);const{scope_:r}=i;return Vj(r,n),$j(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,n){let i;for(i=n.length-1;i>=0;i--){const a=n[i];if(a.path.length===0&&a.op==="replace"){e=a.value;break}}i>-1&&(n=n.slice(i+1));const r=kp(m3).applyPatches_;return tc(e)?r(e,n):this.produce(e,a=>r(a,n))}};function y3(t,e,n,i){const[r,a]=NS(e)?kp(d1).proxyMap_(e,n):OS(e)?kp(d1).proxySet_(e,n):QAe(e,n);return(n?.scope_??rq()).drafts_.push(r),a.callbacks_=n?.callbacks_??[],a.key_=i,n&&i!==void 0?ZAe(n,a,i):a.callbacks_.push(function(l){l.mapSetPlugin_?.fixSetContents(a);const{patchPlugin_:c}=l;a.modified_&&c&&c.generatePatches_(a,[],l)}),r}function ho(t){return tc(t)||ao(10,t),cq(t)}function cq(t){if(!mo(t)||LS(t))return t;const e=t[va];let n,i=!0;if(e){if(!e.modified_)return e.base_;e.finalized_=!0,n=p3(t,e.scope_.immer_.useStrictShallowCopy_),i=e.scope_.immer_.shouldUseStrictIteration()}else n=p3(t,!0);return uv(n,(r,a)=>{u1(n,r,cq(a))},i),e&&(e.finalized_=!1),n}var nTe=new tTe,uq=nTe.produce;function dq(t){return({dispatch:n,getState:i})=>r=>a=>typeof a=="function"?a(n,i,t):r(a)}var iTe=dq(),rTe=dq,aTe=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?o1:o1.apply(null,arguments)};function js(t,e){function n(...i){if(e){let r=e(...i);if(!r)throw new Error(as(0));return{type:t,payload:r.payload,..."meta"in r&&{meta:r.meta},..."error"in r&&{error:r.error}}}return{type:t,payload:i[0]}}return n.toString=()=>`${t}`,n.type=t,n.match=i=>eq(i)&&i.type===t,n}var fq=class Ug extends Array{constructor(...e){super(...e),Object.setPrototypeOf(this,Ug.prototype)}static get[Symbol.species](){return Ug}concat(...e){return super.concat.apply(this,e)}prepend(...e){return e.length===1&&Array.isArray(e[0])?new Ug(...e[0].concat(this)):new Ug(...e.concat(this))}};function qj(t){return mo(t)?uq(t,()=>{}):t}function cb(t,e,n){return t.has(e)?t.get(e):t.set(e,n(e)).get(e)}function sTe(t){return typeof t=="boolean"}var oTe=()=>function(e){const{thunk:n=!0,immutableCheck:i=!0,serializableCheck:r=!0,actionCreatorCheck:a=!0}=e??{};let s=new fq;return n&&(sTe(n)?s.push(iTe):s.push(rTe(n.extraArgument))),s},hq="RTK_autoBatch",ti=()=>t=>({payload:t,meta:{[hq]:!0}}),Xj=t=>e=>{setTimeout(e,t)},pq=(t={type:"raf"})=>e=>(...n)=>{const i=e(...n);let r=!0,a=!1,s=!1;const o=new Set,l=t.type==="tick"?queueMicrotask:t.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:Xj(10):t.type==="callback"?t.queueNotification:Xj(t.timeout),c=()=>{s=!1,a&&(a=!1,o.forEach(d=>d()))};return Object.assign({},i,{subscribe(d){const f=()=>r&&d(),p=i.subscribe(f);return o.add(d),()=>{p(),o.delete(d)}},dispatch(d){try{return r=!d?.meta?.[hq],a=!r,a&&(s||(s=!0,l(c))),i.dispatch(d)}finally{r=!0}}})},lTe=t=>function(n){const{autoBatch:i=!0}=n??{};let r=new fq(t);return i&&r.push(pq(typeof i=="object"?i:void 0)),r};function cTe(t){const e=oTe(),{reducer:n=void 0,middleware:i,devTools:r=!0,preloadedState:a=void 0,enhancers:s=void 0}=t||{};let o;if(typeof n=="function")o=n;else if(eN(n))o=Q7(n);else throw new Error(as(1));let l;typeof i=="function"?l=i(e):l=e();let c=o1;r&&(c=aTe({trace:!1,...typeof r=="object"&&r}));const d=HAe(...l),f=lTe(d);let p=typeof s=="function"?s(f):f();const m=c(...p);return J7(o,a,m)}function mq(t){const e={},n=[];let i;const r={addCase(a,s){const o=typeof a=="string"?a:a.type;if(!o)throw new Error(as(28));if(o in e)throw new Error(as(29));return e[o]=s,r},addAsyncThunk(a,s){return s.pending&&(e[a.pending.type]=s.pending),s.rejected&&(e[a.rejected.type]=s.rejected),s.fulfilled&&(e[a.fulfilled.type]=s.fulfilled),s.settled&&n.push({matcher:a.settled,reducer:s.settled}),r},addMatcher(a,s){return n.push({matcher:a,reducer:s}),r},addDefaultCase(a){return i=a,r}};return t(r),[e,n,i]}function uTe(t){return typeof t=="function"}function dTe(t,e){let[n,i,r]=mq(e),a;if(uTe(t))a=()=>qj(t());else{const o=qj(t);a=()=>o}function s(o=a(),l){let c=[n[l.type],...i.filter(({matcher:d})=>d(l)).map(({reducer:d})=>d)];return c.filter(d=>!!d).length===0&&(c=[r]),c.reduce((d,f)=>{if(f)if(tc(d)){const m=f(d,l);return m===void 0?d:m}else{if(mo(d))return uq(d,p=>f(p,l));{const p=f(d,l);if(p===void 0){if(d===null)return d;throw Error("A case reducer on a non-draftable value must not return undefined")}return p}}return d},o)}return s.getInitialState=a,s}var fTe="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",hTe=(t=21)=>{let e="",n=t;for(;n--;)e+=fTe[Math.random()*64|0];return e},pTe=Symbol.for("rtk-slice-createasyncthunk");function mTe(t,e){return`${t}/${e}`}function gTe({creators:t}={}){const e=t?.asyncThunk?.[pTe];return function(i){const{name:r,reducerPath:a=r}=i;if(!r)throw new Error(as(11));const s=(typeof i.reducers=="function"?i.reducers(xTe()):i.reducers)||{},o=Object.keys(s),l={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},c={addCase(M,A){const T=typeof M=="string"?M:M.type;if(!T)throw new Error(as(12));if(T in l.sliceCaseReducersByType)throw new Error(as(13));return l.sliceCaseReducersByType[T]=A,c},addMatcher(M,A){return l.sliceMatchers.push({matcher:M,reducer:A}),c},exposeAction(M,A){return l.actionCreators[M]=A,c},exposeCaseReducer(M,A){return l.sliceCaseReducersByName[M]=A,c}};o.forEach(M=>{const A=s[M],T={reducerName:M,type:mTe(r,M),createNotation:typeof i.reducers=="function"};bTe(A)?STe(T,A,c,e):yTe(T,A,c)});function d(){const[M={},A=[],T=void 0]=typeof i.extraReducers=="function"?mq(i.extraReducers):[i.extraReducers],D={...M,...l.sliceCaseReducersByType};return dTe(i.initialState,C=>{for(let U in D)C.addCase(U,D[U]);for(let U of l.sliceMatchers)C.addMatcher(U.matcher,U.reducer);for(let U of A)C.addMatcher(U.matcher,U.reducer);T&&C.addDefaultCase(T)})}const f=M=>M,p=new Map,m=new WeakMap;let y;function b(M,A){return y||(y=d()),y(M,A)}function x(){return y||(y=d()),y.getInitialState()}function v(M,A=!1){function T(C){let U=C[M];return typeof U>"u"&&A&&(U=cb(m,T,x)),U}function D(C=f){const U=cb(p,A,()=>new WeakMap);return cb(U,C,()=>{const P={};for(const[k,B]of Object.entries(i.selectors??{}))P[k]=vTe(B,C,()=>cb(m,C,x),A);return P})}return{reducerPath:M,getSelectors:D,get selectors(){return D(T)},selectSlice:T}}const w={name:r,reducer:b,actions:l.actionCreators,caseReducers:l.sliceCaseReducersByName,getInitialState:x,...v(a),injectInto(M,{reducerPath:A,...T}={}){const D=A??a;return M.inject({reducerPath:D,reducer:b},T),{...w,...v(D,!0)}}};return w}}function vTe(t,e,n,i){function r(a,...s){let o=e(a);return typeof o>"u"&&i&&(o=n()),t(o,...s)}return r.unwrapped=t,r}var Ua=gTe();function xTe(){function t(e,n){return{_reducerDefinitionType:"asyncThunk",payloadCreator:e,...n}}return t.withTypes=()=>t,{reducer(e){return Object.assign({[e.name](...n){return e(...n)}}[e.name],{_reducerDefinitionType:"reducer"})},preparedReducer(e,n){return{_reducerDefinitionType:"reducerWithPrepare",prepare:e,reducer:n}},asyncThunk:t}}function yTe({type:t,reducerName:e,createNotation:n},i,r){let a,s;if("reducer"in i){if(n&&!_Te(i))throw new Error(as(17));a=i.reducer,s=i.prepare}else a=i;r.addCase(t,a).exposeCaseReducer(e,a).exposeAction(e,s?js(t,s):js(t))}function bTe(t){return t._reducerDefinitionType==="asyncThunk"}function _Te(t){return t._reducerDefinitionType==="reducerWithPrepare"}function STe({type:t,reducerName:e},n,i,r){if(!r)throw new Error(as(18));const{payloadCreator:a,fulfilled:s,pending:o,rejected:l,settled:c,options:d}=n,f=r(t,a,d);i.exposeAction(e,f),s&&i.addCase(f.fulfilled,s),o&&i.addCase(f.pending,o),l&&i.addCase(f.rejected,l),c&&i.addMatcher(f.settled,c),i.exposeCaseReducer(e,{fulfilled:s||ub,pending:o||ub,rejected:l||ub,settled:c||ub})}function ub(){}var wTe="task",gq="listener",vq="completed",sN="cancelled",MTe=`task-${sN}`,ETe=`task-${vq}`,b3=`${gq}-${sN}`,ATe=`${gq}-${vq}`,IS=class{constructor(t){this.code=t,this.message=`${wTe} ${sN} (reason: ${t})`}name="TaskAbortError";message},oN=(t,e)=>{if(typeof t!="function")throw new TypeError(as(32))},f1=()=>{},xq=(t,e=f1)=>(t.catch(e),t),yq=(t,e)=>(t.addEventListener("abort",e,{once:!0}),()=>t.removeEventListener("abort",e)),Xd=(t,e)=>{const n=t.signal;n.aborted||("reason"in n||Object.defineProperty(n,"reason",{enumerable:!0,value:e,configurable:!0,writable:!0}),t.abort(e))},Yd=t=>{if(t.aborted){const{reason:e}=t;throw new IS(e)}};function bq(t,e){let n=f1;return new Promise((i,r)=>{const a=()=>r(new IS(t.reason));if(t.aborted){a();return}n=yq(t,a),e.finally(()=>n()).then(i,r)}).finally(()=>{n=f1})}var TTe=async(t,e)=>{try{return await Promise.resolve(),{status:"ok",value:await t()}}catch(n){return{status:n instanceof IS?"cancelled":"rejected",error:n}}finally{e?.()}},h1=t=>e=>xq(bq(t,e).then(n=>(Yd(t),n))),_q=t=>{const e=h1(t);return n=>e(new Promise(i=>setTimeout(i,n)))},{assign:fp}=Object,Yj={},US="listenerMiddleware",CTe=(t,e)=>{const n=i=>yq(t,()=>Xd(i,t.reason));return(i,r)=>{oN(i);const a=new AbortController;n(a);const s=TTe(async()=>{Yd(t),Yd(a.signal);const o=await i({pause:h1(a.signal),delay:_q(a.signal),signal:a.signal});return Yd(a.signal),o},()=>Xd(a,ETe));return r?.autoJoin&&e.push(s.catch(f1)),{result:h1(t)(s),cancel(){Xd(a,MTe)}}}},RTe=(t,e)=>{const n=async(i,r)=>{Yd(e);let a=()=>{};const o=[new Promise((l,c)=>{let d=t({predicate:i,effect:(f,p)=>{p.unsubscribe(),l([f,p.getState(),p.getOriginalState()])}});a=()=>{d(),c()}})];r!=null&&o.push(new Promise(l=>setTimeout(l,r,null)));try{const l=await bq(e,Promise.race(o));return Yd(e),l}finally{a()}};return(i,r)=>xq(n(i,r))},Sq=t=>{let{type:e,actionCreator:n,matcher:i,predicate:r,effect:a}=t;if(e)r=js(e).match;else if(n)e=n.type,r=n.match;else if(i)r=i;else if(!r)throw new Error(as(21));return oN(a),{predicate:r,type:e,effect:a}},wq=fp(t=>{const{type:e,predicate:n,effect:i}=Sq(t);return{id:hTe(),effect:i,type:e,predicate:n,pending:new Set,unsubscribe:()=>{throw new Error(as(22))}}},{withTypes:()=>wq}),Kj=(t,e)=>{const{type:n,effect:i,predicate:r}=Sq(e);return Array.from(t.values()).find(a=>(typeof n=="string"?a.type===n:a.predicate===r)&&a.effect===i)},_3=t=>{t.pending.forEach(e=>{Xd(e,b3)})},PTe=(t,e)=>()=>{for(const n of e.keys())_3(n);t.clear()},Zj=(t,e,n)=>{try{t(e,n)}catch(i){setTimeout(()=>{throw i},0)}},Mq=fp(js(`${US}/add`),{withTypes:()=>Mq}),DTe=js(`${US}/removeAll`),Eq=fp(js(`${US}/remove`),{withTypes:()=>Eq}),NTe=(...t)=>{console.error(`${US}/error`,...t)},fv=(t={})=>{const e=new Map,n=new Map,i=m=>{const y=n.get(m)??0;n.set(m,y+1)},r=m=>{const y=n.get(m)??1;y===1?n.delete(m):n.set(m,y-1)},{extra:a,onError:s=NTe}=t;oN(s);const o=m=>(m.unsubscribe=()=>e.delete(m.id),e.set(m.id,m),y=>{m.unsubscribe(),y?.cancelActive&&_3(m)}),l=m=>{const y=Kj(e,m)??wq(m);return o(y)};fp(l,{withTypes:()=>l});const c=m=>{const y=Kj(e,m);return y&&(y.unsubscribe(),m.cancelActive&&_3(y)),!!y};fp(c,{withTypes:()=>c});const d=async(m,y,b,x)=>{const v=new AbortController,w=RTe(l,v.signal),M=[];try{m.pending.add(v),i(m),await Promise.resolve(m.effect(y,fp({},b,{getOriginalState:x,condition:(A,T)=>w(A,T).then(Boolean),take:w,delay:_q(v.signal),pause:h1(v.signal),extra:a,signal:v.signal,fork:CTe(v.signal,M),unsubscribe:m.unsubscribe,subscribe:()=>{e.set(m.id,m)},cancelActiveListeners:()=>{m.pending.forEach((A,T,D)=>{A!==v&&(Xd(A,b3),D.delete(A))})},cancel:()=>{Xd(v,b3),m.pending.delete(v)},throwIfCancelled:()=>{Yd(v.signal)}})))}catch(A){A instanceof IS||Zj(s,A,{raisedBy:"effect"})}finally{await Promise.all(M),Xd(v,ATe),r(m),m.pending.delete(v)}},f=PTe(e,n);return{middleware:m=>y=>b=>{if(!eq(b))return y(b);if(Mq.match(b))return l(b.payload);if(DTe.match(b)){f();return}if(Eq.match(b))return c(b.payload);let x=m.getState();const v=()=>{if(x===Yj)throw new Error(as(23));return x};let w;try{if(w=y(b),e.size>0){const M=m.getState(),A=Array.from(e.values());for(const T of A){let D=!1;try{D=T.predicate(b,M,x)}catch(C){D=!1,Zj(s,C,{raisedBy:"predicate"})}D&&d(T,b,m,v)}}}finally{x=Yj}return w},startListening:l,stopListening:c,clearListeners:f}};function as(t){return`Minified Redux Toolkit error #${t}; visit https://redux-toolkit.js.org/Errors?code=${t} for the full message or use the non-minified dev environment for full errors. `}var OTe={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},Aq=Ua({name:"chartLayout",initialState:OTe,reducers:{setLayout(t,e){t.layoutType=e.payload},setChartSize(t,e){t.width=e.payload.width,t.height=e.payload.height},setMargin(t,e){var n,i,r,a;t.margin.top=(n=e.payload.top)!==null&&n!==void 0?n:0,t.margin.right=(i=e.payload.right)!==null&&i!==void 0?i:0,t.margin.bottom=(r=e.payload.bottom)!==null&&r!==void 0?r:0,t.margin.left=(a=e.payload.left)!==null&&a!==void 0?a:0},setScale(t,e){t.scale=e.payload}}}),{setMargin:LTe,setLayout:kTe,setChartSize:ITe,setScale:UTe}=Aq.actions,FTe=Aq.reducer;function Tq(t,e,n){return Array.isArray(t)&&t&&e+n!==0?t.slice(e,n+1):t}function Jj(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function tp(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Jj(Object(n),!0).forEach(function(i){zTe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Jj(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function zTe(t,e,n){return(e=BTe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function BTe(t){var e=jTe(t,"string");return typeof e=="symbol"?e:e+""}function jTe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Hn(t,e,n){return oi(t)||oi(e)?n:Vo(e)?vf(t,e,n):typeof e=="function"?e(t):n}var HTe=(t,e,n)=>{if(e&&n){var{width:i,height:r}=n,{align:a,verticalAlign:s,layout:o}=e;if((o==="vertical"||o==="horizontal"&&s==="middle")&&a!=="center"&&St(t[a]))return tp(tp({},t),{},{[a]:t[a]+(i||0)});if((o==="horizontal"||o==="vertical"&&a==="center")&&s!=="middle"&&St(t[s]))return tp(tp({},t),{},{[s]:t[s]+(r||0)})}return t},lc=(t,e)=>t==="horizontal"&&e==="xAxis"||t==="vertical"&&e==="yAxis"||t==="centric"&&e==="angleAxis"||t==="radial"&&e==="radiusAxis",Cq=(t,e,n,i)=>{if(i)return t.map(o=>o.coordinate);var r,a,s=t.map(o=>(o.coordinate===e&&(r=!0),o.coordinate===n&&(a=!0),o.coordinate));return r||s.push(e),a||s.push(n),s},Rq=(t,e,n)=>{if(!t)return null;var{duplicateDomain:i,type:r,range:a,scale:s,realScaleType:o,isCategorical:l,categoricalDomain:c,tickCount:d,ticks:f,niceTicks:p,axisType:m}=t;if(!s)return null;var y=o==="scaleBand"&&s.bandwidth?s.bandwidth()/2:2,b=r==="category"&&s.bandwidth?s.bandwidth()/y:0;if(b=m==="angleAxis"&&a&&a.length>=2?_r(a[0]-a[1])*2*b:b,f||p){var x=(f||p||[]).map((v,w)=>{var M=i?i.indexOf(v):v;return{coordinate:s(M)+b,value:v,offset:b,index:w}});return x.filter(v=>!Bs(v.coordinate))}return l&&c?c.map((v,w)=>({coordinate:s(v)+b,value:v,index:w,offset:b})):s.ticks&&d!=null?s.ticks(d).map((v,w)=>({coordinate:s(v)+b,value:v,offset:b,index:w})):s.domain().map((v,w)=>({coordinate:s(v)+b,value:i?i[v]:v,index:w,offset:b}))},Qj=1e-4,VTe=t=>{var e=t.domain();if(!(!e||e.length<=2)){var n=e.length,i=t.range(),r=Math.min(i[0],i[1])-Qj,a=Math.max(i[0],i[1])+Qj,s=t(e[0]),o=t(e[n-1]);(s<r||s>a||o<r||o>a)&&t.domain([e[0],e[n-1]])}},GTe=(t,e)=>{if(!e||e.length!==2||!St(e[0])||!St(e[1]))return t;var n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]),r=[t[0],t[1]];return(!St(t[0])||t[0]<n)&&(r[0]=n),(!St(t[1])||t[1]>i)&&(r[1]=i),r[0]>i&&(r[0]=i),r[1]<n&&(r[1]=n),r},$Te=t=>{var e=t.length;if(!(e<=0))for(var n=0,i=t[0].length;n<i;++n)for(var r=0,a=0,s=0;s<e;++s){var o=Bs(t[s][n][1])?t[s][n][0]:t[s][n][1];o>=0?(t[s][n][0]=r,t[s][n][1]=r+o,r=t[s][n][1]):(t[s][n][0]=a,t[s][n][1]=a+o,a=t[s][n][1])}},WTe=t=>{var e=t.length;if(!(e<=0))for(var n=0,i=t[0].length;n<i;++n)for(var r=0,a=0;a<e;++a){var s=Bs(t[a][n][1])?t[a][n][0]:t[a][n][1];s>=0?(t[a][n][0]=r,t[a][n][1]=r+s,r=t[a][n][1]):(t[a][n][0]=0,t[a][n][1]=0)}},qTe={sign:$Te,expand:xEe,none:Op,silhouette:yEe,wiggle:bEe,positive:WTe},XTe=(t,e,n)=>{var i=qTe[n],r=vEe().keys(e).value((a,s)=>Number(Hn(a,s,0))).order(u3).offset(i);return r(t)};function Pq(t){return t==null?void 0:String(t)}function eH(t){var{axis:e,ticks:n,bandSize:i,entry:r,index:a,dataKey:s}=t;if(e.type==="category"){if(!e.allowDuplicatedCategory&&e.dataKey&&!oi(r[e.dataKey])){var o=L7(n,"value",r[e.dataKey]);if(o)return o.coordinate+i/2}return n[a]?n[a].coordinate+i/2:null}var l=Hn(r,oi(s)?e.dataKey:s);return oi(l)?null:e.scale(l)}var tH=t=>{var{axis:e,ticks:n,offset:i,bandSize:r,entry:a,index:s}=t;if(e.type==="category")return n[s]?n[s].coordinate+i:null;var o=Hn(a,e.dataKey,e.scale.domain()[s]);return oi(o)?null:e.scale(o)-r/2+i},YTe=t=>{var{numericAxis:e}=t,n=e.scale.domain();if(e.type==="number"){var i=Math.min(n[0],n[1]),r=Math.max(n[0],n[1]);return i<=0&&r>=0?0:r<0?r:i}return n[0]},KTe=t=>{var e=t.flat(2).filter(St);return[Math.min(...e),Math.max(...e)]},ZTe=t=>[t[0]===1/0?0:t[0],t[1]===-1/0?0:t[1]],JTe=(t,e,n)=>{if(t!=null)return ZTe(Object.keys(t).reduce((i,r)=>{var a=t[r],{stackedData:s}=a,o=s.reduce((l,c)=>{var d=Tq(c,e,n),f=KTe(d);return[Math.min(l[0],f[0]),Math.max(l[1],f[1])]},[1/0,-1/0]);return[Math.min(o[0],i[0]),Math.max(o[1],i[1])]},[1/0,-1/0]))},nH=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,iH=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Ip=(t,e,n)=>{if(t&&t.scale&&t.scale.bandwidth){var i=t.scale.bandwidth();if(!n||i>0)return i}if(t&&e&&e.length>=2){for(var r=RS(e,d=>d.coordinate),a=1/0,s=1,o=r.length;s<o;s++){var l=r[s],c=r[s-1];a=Math.min((l.coordinate||0)-(c.coordinate||0),a)}return a===1/0?0:a}return n?void 0:0};function rH(t){var{tooltipEntrySettings:e,dataKey:n,payload:i,value:r,name:a}=t;return tp(tp({},e),{},{dataKey:n,payload:i,value:r,name:a})}function em(t,e){if(t)return String(t);if(typeof e=="string")return e}var QTe=(t,e)=>{if(e==="horizontal")return t.chartX;if(e==="vertical")return t.chartY},eCe=(t,e)=>e==="centric"?t.angle:t.radius,cc=t=>t.layout.width,uc=t=>t.layout.height,tCe=t=>t.layout.scale,Dq=t=>t.layout.margin,FS=He(t=>t.cartesianAxis.xAxis,t=>Object.values(t)),zS=He(t=>t.cartesianAxis.yAxis,t=>Object.values(t)),Nq="data-recharts-item-index",Oq="data-recharts-item-data-key",hv=60;function aH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function db(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?aH(Object(n),!0).forEach(function(i){nCe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):aH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function nCe(t,e,n){return(e=iCe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function iCe(t){var e=rCe(t,"string");return typeof e=="symbol"?e:e+""}function rCe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var aCe=t=>t.brush.height;function sCe(t){var e=zS(t);return e.reduce((n,i)=>{if(i.orientation==="left"&&!i.mirror&&!i.hide){var r=typeof i.width=="number"?i.width:hv;return n+r}return n},0)}function oCe(t){var e=zS(t);return e.reduce((n,i)=>{if(i.orientation==="right"&&!i.mirror&&!i.hide){var r=typeof i.width=="number"?i.width:hv;return n+r}return n},0)}function lCe(t){var e=FS(t);return e.reduce((n,i)=>i.orientation==="top"&&!i.mirror&&!i.hide?n+i.height:n,0)}function cCe(t){var e=FS(t);return e.reduce((n,i)=>i.orientation==="bottom"&&!i.mirror&&!i.hide?n+i.height:n,0)}var ar=He([cc,uc,Dq,aCe,sCe,oCe,lCe,cCe,K7,kAe],(t,e,n,i,r,a,s,o,l,c)=>{var d={left:(n.left||0)+r,right:(n.right||0)+a},f={top:(n.top||0)+s,bottom:(n.bottom||0)+o},p=db(db({},f),d),m=p.bottom;p.bottom+=i,p=HTe(p,l,c);var y=t-p.left-p.right,b=e-p.top-p.bottom;return db(db({brushBottom:m},p),{},{width:Math.max(y,0),height:Math.max(b,0)})}),uCe=He(ar,t=>({x:t.left,y:t.top,width:t.width,height:t.height})),lN=He(cc,uc,(t,e)=>({x:0,y:0,width:t,height:e})),dCe=R.createContext(null),ia=()=>R.useContext(dCe)!=null,BS=t=>t.brush,jS=He([BS,ar,Dq],(t,e,n)=>({height:t.height,x:St(t.x)?t.x:e.left,y:St(t.y)?t.y:e.top+e.height+e.brushBottom-(n?.bottom||0),width:St(t.width)?t.width:e.width})),MC={},EC={},AC={},sH;function fCe(){return sH||(sH=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n,i,{signal:r,edges:a}={}){let s,o=null;const l=a!=null&&a.includes("leading"),c=a==null||a.includes("trailing"),d=()=>{o!==null&&(n.apply(s,o),s=void 0,o=null)},f=()=>{c&&d(),b()};let p=null;const m=()=>{p!=null&&clearTimeout(p),p=setTimeout(()=>{p=null,f()},i)},y=()=>{p!==null&&(clearTimeout(p),p=null)},b=()=>{y(),s=void 0,o=null},x=()=>{d()},v=function(...w){if(r?.aborted)return;s=this,o=w;const M=p==null;m(),l&&M&&d()};return v.schedule=m,v.cancel=b,v.flush=x,r?.addEventListener("abort",b,{once:!0}),v}t.debounce=e})(AC)),AC}var oH;function hCe(){return oH||(oH=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=fCe();function n(i,r=0,a={}){typeof a!="object"&&(a={});const{leading:s=!1,trailing:o=!0,maxWait:l}=a,c=Array(2);s&&(c[0]="leading"),o&&(c[1]="trailing");let d,f=null;const p=e.debounce(function(...b){d=i.apply(this,b),f=null},r,{edges:c}),m=function(...b){return l!=null&&(f===null&&(f=Date.now()),Date.now()-f>=l)?(d=i.apply(this,b),f=Date.now(),p.cancel(),p.schedule(),d):(p.apply(this,b),d)},y=()=>(p.flush(),d);return m.cancel=p.cancel,m.flush=y,m}t.debounce=n})(EC)),EC}var lH;function pCe(){return lH||(lH=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=hCe();function n(i,r=0,a={}){const{leading:s=!0,trailing:o=!0}=a;return e.debounce(i,r,{leading:s,maxWait:r,trailing:o})}t.throttle=n})(MC)),MC}var TC,cH;function mCe(){return cH||(cH=1,TC=pCe().throttle),TC}var gCe=mCe();const vCe=Vs(gCe);var p1=function(e,n){for(var i=arguments.length,r=new Array(i>2?i-2:0),a=2;a<i;a++)r[a-2]=arguments[a];if(typeof console<"u"&&console.warn&&(n===void 0&&console.warn("LogUtils requires an error message argument"),!e))if(n===void 0)console.warn("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var s=0;console.warn(n.replace(/%s/g,()=>r[s++]))}},Lq=(t,e,n)=>{var{width:i="100%",height:r="100%",aspect:a,maxHeight:s}=n,o=ec(i)?t:Number(i),l=ec(r)?e:Number(r);return a&&a>0&&(o?l=o/a:l&&(o=l*a),s&&l!=null&&l>s&&(l=s)),{calculatedWidth:o,calculatedHeight:l}},xCe={width:0,height:0,overflow:"visible"},yCe={width:0,overflowX:"visible"},bCe={height:0,overflowY:"visible"},_Ce={},SCe=t=>{var{width:e,height:n}=t,i=ec(e),r=ec(n);return i&&r?xCe:i?yCe:r?bCe:_Ce};function wCe(t){var{width:e,height:n,aspect:i}=t,r=e,a=n;return r===void 0&&a===void 0?(r="100%",a="100%"):r===void 0?r=i&&i>0?void 0:"100%":a===void 0&&(a=i&&i>0?void 0:"100%"),{width:r,height:a}}function Qn(t){return Number.isFinite(t)}function Go(t){return typeof t=="number"&&t>0&&Number.isFinite(t)}function S3(){return S3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},S3.apply(null,arguments)}function uH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function dH(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?uH(Object(n),!0).forEach(function(i){MCe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):uH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function MCe(t,e,n){return(e=ECe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ECe(t){var e=ACe(t,"string");return typeof e=="symbol"?e:e+""}function ACe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var kq=R.createContext({width:-1,height:-1});function TCe(t){return Go(t.width)&&Go(t.height)}function Iq(t){var{children:e,width:n,height:i}=t,r=R.useMemo(()=>({width:n,height:i}),[n,i]);return TCe(r)?R.createElement(kq.Provider,{value:r},e):null}var cN=()=>R.useContext(kq),CCe=R.forwardRef((t,e)=>{var{aspect:n,initialDimension:i={width:-1,height:-1},width:r,height:a,minWidth:s=0,minHeight:o,maxHeight:l,children:c,debounce:d=0,id:f,className:p,onResize:m,style:y={}}=t,b=R.useRef(null),x=R.useRef();x.current=m,R.useImperativeHandle(e,()=>b.current);var[v,w]=R.useState({containerWidth:i.width,containerHeight:i.height}),M=R.useCallback((U,P)=>{w(k=>{var B=Math.round(U),I=Math.round(P);return k.containerWidth===B&&k.containerHeight===I?k:{containerWidth:B,containerHeight:I}})},[]);R.useEffect(()=>{if(b.current==null||typeof ResizeObserver>"u")return lv;var U=I=>{var W,{width:O,height:$}=I[0].contentRect;M(O,$),(W=x.current)===null||W===void 0||W.call(x,O,$)};d>0&&(U=vCe(U,d,{trailing:!0,leading:!1}));var P=new ResizeObserver(U),{width:k,height:B}=b.current.getBoundingClientRect();return M(k,B),P.observe(b.current),()=>{P.disconnect()}},[M,d]);var{containerWidth:A,containerHeight:T}=v;p1(!n||n>0,"The aspect(%s) must be greater than zero.",n);var{calculatedWidth:D,calculatedHeight:C}=Lq(A,T,{width:r,height:a,aspect:n,maxHeight:l});return p1(D!=null&&D>0||C!=null&&C>0,`The width(%s) and height(%s) of chart should be greater than 0,
- please check the style of container, or the props width(%s) and height(%s),
- or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the
- height and width.`,D,C,r,a,s,o,n),R.createElement("div",{id:f?"".concat(f):void 0,className:yn("recharts-responsive-container",p),style:dH(dH({},y),{},{width:r,height:a,minWidth:s,minHeight:o,maxHeight:l}),ref:b},R.createElement("div",{style:SCe({width:r,height:a})},R.createElement(Iq,{width:D,height:C},c)))}),CC=R.forwardRef((t,e)=>{var n=cN();if(Go(n.width)&&Go(n.height))return t.children;var{width:i,height:r}=wCe({width:t.width,height:t.height,aspect:t.aspect}),{calculatedWidth:a,calculatedHeight:s}=Lq(void 0,void 0,{width:i,height:r,aspect:t.aspect,maxHeight:t.maxHeight});return St(a)&&St(s)?R.createElement(Iq,{width:a,height:s},t.children):R.createElement(CCe,S3({},t,{width:i,height:r,ref:e}))});function Uq(t){if(t)return{x:t.x,y:t.y,upperWidth:"upperWidth"in t?t.upperWidth:t.width,lowerWidth:"lowerWidth"in t?t.lowerWidth:t.width,width:t.width,height:t.height}}var HS=()=>{var t,e=ia(),n=wt(uCe),i=wt(jS),r=(t=wt(BS))===null||t===void 0?void 0:t.padding;return!e||!i||!r?n:{width:i.width-r.left-r.right,height:i.height-r.top-r.bottom,x:r.left,y:r.top}},RCe={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},Fq=()=>{var t;return(t=wt(ar))!==null&&t!==void 0?t:RCe},uN=()=>wt(cc),dN=()=>wt(uc),PCe=()=>wt(t=>t.layout.margin),pn=t=>t.layout.layoutType,tm=()=>wt(pn),DCe=()=>{var t=tm();if(t==="horizontal"||t==="vertical")return t},NCe=()=>{var t=tm();return t!==void 0},VS=t=>{var e=Wn(),n=ia(),{width:i,height:r}=t,a=cN(),s=i,o=r;return a&&(s=a.width>0?a.width:i,o=a.height>0?a.height:r),R.useEffect(()=>{!n&&Go(s)&&Go(o)&&e(ITe({width:s,height:o}))},[e,n,s,o]),null},zq=Symbol.for("immer-nothing"),fH=Symbol.for("immer-draftable"),ls=Symbol.for("immer-state");function so(t,...e){throw new Error(`[Immer] minified error nr: ${t}. Full error at: https://bit.ly/3cXEKWf`)}var k0=Object.getPrototypeOf;function Up(t){return!!t&&!!t[ls]}function xf(t){return t?Bq(t)||Array.isArray(t)||!!t[fH]||!!t.constructor?.[fH]||pv(t)||$S(t):!1}var OCe=Object.prototype.constructor.toString(),hH=new WeakMap;function Bq(t){if(!t||typeof t!="object")return!1;const e=Object.getPrototypeOf(t);if(e===null||e===Object.prototype)return!0;const n=Object.hasOwnProperty.call(e,"constructor")&&e.constructor;if(n===Object)return!0;if(typeof n!="function")return!1;let i=hH.get(n);return i===void 0&&(i=Function.toString.call(n),hH.set(n,i)),i===OCe}function m1(t,e,n=!0){GS(t)===0?(n?Reflect.ownKeys(t):Object.keys(t)).forEach(r=>{e(r,t[r],t)}):t.forEach((i,r)=>e(r,i,t))}function GS(t){const e=t[ls];return e?e.type_:Array.isArray(t)?1:pv(t)?2:$S(t)?3:0}function w3(t,e){return GS(t)===2?t.has(e):Object.prototype.hasOwnProperty.call(t,e)}function jq(t,e,n){const i=GS(t);i===2?t.set(e,n):i===3?t.add(n):t[e]=n}function LCe(t,e){return t===e?t!==0||1/t===1/e:t!==t&&e!==e}function pv(t){return t instanceof Map}function $S(t){return t instanceof Set}function Sd(t){return t.copy_||t.base_}function M3(t,e){if(pv(t))return new Map(t);if($S(t))return new Set(t);if(Array.isArray(t))return Array.prototype.slice.call(t);const n=Bq(t);if(e===!0||e==="class_only"&&!n){const i=Object.getOwnPropertyDescriptors(t);delete i[ls];let r=Reflect.ownKeys(i);for(let a=0;a<r.length;a++){const s=r[a],o=i[s];o.writable===!1&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(i[s]={configurable:!0,writable:!0,enumerable:o.enumerable,value:t[s]})}return Object.create(k0(t),i)}else{const i=k0(t);if(i!==null&&n)return{...t};const r=Object.create(i);return Object.assign(r,t)}}function fN(t,e=!1){return WS(t)||Up(t)||!xf(t)||(GS(t)>1&&Object.defineProperties(t,{set:fb,add:fb,clear:fb,delete:fb}),Object.freeze(t),e&&Object.values(t).forEach(n=>fN(n,!0))),t}function kCe(){so(2)}var fb={value:kCe};function WS(t){return t===null||typeof t!="object"?!0:Object.isFrozen(t)}var ICe={};function yf(t){const e=ICe[t];return e||so(0,t),e}var I0;function Hq(){return I0}function UCe(t,e){return{drafts_:[],parent_:t,immer_:e,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function pH(t,e){e&&(yf("Patches"),t.patches_=[],t.inversePatches_=[],t.patchListener_=e)}function E3(t){A3(t),t.drafts_.forEach(FCe),t.drafts_=null}function A3(t){t===I0&&(I0=t.parent_)}function mH(t){return I0=UCe(I0,t)}function FCe(t){const e=t[ls];e.type_===0||e.type_===1?e.revoke_():e.revoked_=!0}function gH(t,e){e.unfinalizedDrafts_=e.drafts_.length;const n=e.drafts_[0];return t!==void 0&&t!==n?(n[ls].modified_&&(E3(e),so(4)),xf(t)&&(t=g1(e,t),e.parent_||v1(e,t)),e.patches_&&yf("Patches").generateReplacementPatches_(n[ls].base_,t,e.patches_,e.inversePatches_)):t=g1(e,n,[]),E3(e),e.patches_&&e.patchListener_(e.patches_,e.inversePatches_),t!==zq?t:void 0}function g1(t,e,n){if(WS(e))return e;const i=t.immer_.shouldUseStrictIteration(),r=e[ls];if(!r)return m1(e,(a,s)=>vH(t,r,e,a,s,n),i),e;if(r.scope_!==t)return e;if(!r.modified_)return v1(t,r.base_,!0),r.base_;if(!r.finalized_){r.finalized_=!0,r.scope_.unfinalizedDrafts_--;const a=r.copy_;let s=a,o=!1;r.type_===3&&(s=new Set(a),a.clear(),o=!0),m1(s,(l,c)=>vH(t,r,a,l,c,n,o),i),v1(t,a,!1),n&&t.patches_&&yf("Patches").generatePatches_(r,n,t.patches_,t.inversePatches_)}return r.copy_}function vH(t,e,n,i,r,a,s){if(r==null||typeof r!="object"&&!s)return;const o=WS(r);if(!(o&&!s)){if(Up(r)){const l=a&&e&&e.type_!==3&&!w3(e.assigned_,i)?a.concat(i):void 0,c=g1(t,r,l);if(jq(n,i,c),Up(c))t.canAutoFreeze_=!1;else return}else s&&n.add(r);if(xf(r)&&!o){if(!t.immer_.autoFreeze_&&t.unfinalizedDrafts_<1||e&&e.base_&&e.base_[i]===r&&o)return;g1(t,r),(!e||!e.scope_.parent_)&&typeof i!="symbol"&&(pv(n)?n.has(i):Object.prototype.propertyIsEnumerable.call(n,i))&&v1(t,r)}}}function v1(t,e,n=!1){!t.parent_&&t.immer_.autoFreeze_&&t.canAutoFreeze_&&fN(e,n)}function zCe(t,e){const n=Array.isArray(t),i={type_:n?1:0,scope_:e?e.scope_:Hq(),modified_:!1,finalized_:!1,assigned_:{},parent_:e,base_:t,draft_:null,copy_:null,revoke_:null,isManual_:!1};let r=i,a=hN;n&&(r=[i],a=U0);const{revoke:s,proxy:o}=Proxy.revocable(r,a);return i.draft_=o,i.revoke_=s,o}var hN={get(t,e){if(e===ls)return t;const n=Sd(t);if(!w3(n,e))return BCe(t,n,e);const i=n[e];return t.finalized_||!xf(i)?i:i===RC(t.base_,e)?(PC(t),t.copy_[e]=C3(i,t)):i},has(t,e){return e in Sd(t)},ownKeys(t){return Reflect.ownKeys(Sd(t))},set(t,e,n){const i=Vq(Sd(t),e);if(i?.set)return i.set.call(t.draft_,n),!0;if(!t.modified_){const r=RC(Sd(t),e),a=r?.[ls];if(a&&a.base_===n)return t.copy_[e]=n,t.assigned_[e]=!1,!0;if(LCe(n,r)&&(n!==void 0||w3(t.base_,e)))return!0;PC(t),T3(t)}return t.copy_[e]===n&&(n!==void 0||e in t.copy_)||Number.isNaN(n)&&Number.isNaN(t.copy_[e])||(t.copy_[e]=n,t.assigned_[e]=!0),!0},deleteProperty(t,e){return RC(t.base_,e)!==void 0||e in t.base_?(t.assigned_[e]=!1,PC(t),T3(t)):delete t.assigned_[e],t.copy_&&delete t.copy_[e],!0},getOwnPropertyDescriptor(t,e){const n=Sd(t),i=Reflect.getOwnPropertyDescriptor(n,e);return i&&{writable:!0,configurable:t.type_!==1||e!=="length",enumerable:i.enumerable,value:n[e]}},defineProperty(){so(11)},getPrototypeOf(t){return k0(t.base_)},setPrototypeOf(){so(12)}},U0={};m1(hN,(t,e)=>{U0[t]=function(){return arguments[0]=arguments[0][0],e.apply(this,arguments)}});U0.deleteProperty=function(t,e){return U0.set.call(this,t,e,void 0)};U0.set=function(t,e,n){return hN.set.call(this,t[0],e,n,t[0])};function RC(t,e){const n=t[ls];return(n?Sd(n):t)[e]}function BCe(t,e,n){const i=Vq(e,n);return i?"value"in i?i.value:i.get?.call(t.draft_):void 0}function Vq(t,e){if(!(e in t))return;let n=k0(t);for(;n;){const i=Object.getOwnPropertyDescriptor(n,e);if(i)return i;n=k0(n)}}function T3(t){t.modified_||(t.modified_=!0,t.parent_&&T3(t.parent_))}function PC(t){t.copy_||(t.copy_=M3(t.base_,t.scope_.immer_.useStrictShallowCopy_))}var jCe=class{constructor(t){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!0,this.produce=(e,n,i)=>{if(typeof e=="function"&&typeof n!="function"){const a=n;n=e;const s=this;return function(l=a,...c){return s.produce(l,d=>n.call(this,d,...c))}}typeof n!="function"&&so(6),i!==void 0&&typeof i!="function"&&so(7);let r;if(xf(e)){const a=mH(this),s=C3(e,void 0);let o=!0;try{r=n(s),o=!1}finally{o?E3(a):A3(a)}return pH(a,i),gH(r,a)}else if(!e||typeof e!="object"){if(r=n(e),r===void 0&&(r=e),r===zq&&(r=void 0),this.autoFreeze_&&fN(r,!0),i){const a=[],s=[];yf("Patches").generateReplacementPatches_(e,r,a,s),i(a,s)}return r}else so(1,e)},this.produceWithPatches=(e,n)=>{if(typeof e=="function")return(s,...o)=>this.produceWithPatches(s,l=>e(l,...o));let i,r;return[this.produce(e,n,(s,o)=>{i=s,r=o}),i,r]},typeof t?.autoFreeze=="boolean"&&this.setAutoFreeze(t.autoFreeze),typeof t?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(t.useStrictShallowCopy),typeof t?.useStrictIteration=="boolean"&&this.setUseStrictIteration(t.useStrictIteration)}createDraft(t){xf(t)||so(8),Up(t)&&(t=HCe(t));const e=mH(this),n=C3(t,void 0);return n[ls].isManual_=!0,A3(e),n}finishDraft(t,e){const n=t&&t[ls];(!n||!n.isManual_)&&so(9);const{scope_:i}=n;return pH(i,e),gH(void 0,i)}setAutoFreeze(t){this.autoFreeze_=t}setUseStrictShallowCopy(t){this.useStrictShallowCopy_=t}setUseStrictIteration(t){this.useStrictIteration_=t}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(t,e){let n;for(n=e.length-1;n>=0;n--){const r=e[n];if(r.path.length===0&&r.op==="replace"){t=r.value;break}}n>-1&&(e=e.slice(n+1));const i=yf("Patches").applyPatches_;return Up(t)?i(t,e):this.produce(t,r=>i(r,e))}};function C3(t,e){const n=pv(t)?yf("MapSet").proxyMap_(t,e):$S(t)?yf("MapSet").proxySet_(t,e):zCe(t,e);return(e?e.scope_:Hq()).drafts_.push(n),n}function HCe(t){return Up(t)||so(10,t),Gq(t)}function Gq(t){if(!xf(t)||WS(t))return t;const e=t[ls];let n,i=!0;if(e){if(!e.modified_)return e.base_;e.finalized_=!0,n=M3(t,e.scope_.immer_.useStrictShallowCopy_),i=e.scope_.immer_.shouldUseStrictIteration()}else n=M3(t,!0);return m1(n,(r,a)=>{jq(n,r,Gq(a))},i),e&&(e.finalized_=!1),n}var VCe=new jCe;VCe.produce;var GCe={settings:{layout:"horizontal",align:"center",verticalAlign:"middle",itemSorter:"value"},size:{width:0,height:0},payload:[]},$q=Ua({name:"legend",initialState:GCe,reducers:{setLegendSize(t,e){t.size.width=e.payload.width,t.size.height=e.payload.height},setLegendSettings(t,e){t.settings.align=e.payload.align,t.settings.layout=e.payload.layout,t.settings.verticalAlign=e.payload.verticalAlign,t.settings.itemSorter=e.payload.itemSorter},addLegendPayload:{reducer(t,e){t.payload.push(e.payload)},prepare:ti()},replaceLegendPayload:{reducer(t,e){var{prev:n,next:i}=e.payload,r=ho(t).payload.indexOf(n);r>-1&&(t.payload[r]=i)},prepare:ti()},removeLegendPayload:{reducer(t,e){var n=ho(t).payload.indexOf(e.payload);n>-1&&t.payload.splice(n,1)},prepare:ti()}}}),{setLegendSize:xH,setLegendSettings:$Ce,addLegendPayload:Wq,replaceLegendPayload:qq,removeLegendPayload:Xq}=$q.actions,WCe=$q.reducer,qCe=["contextPayload"];function R3(){return R3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},R3.apply(null,arguments)}function yH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Fp(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?yH(Object(n),!0).forEach(function(i){XCe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):yH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function XCe(t,e,n){return(e=YCe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function YCe(t){var e=KCe(t,"string");return typeof e=="symbol"?e:e+""}function KCe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ZCe(t,e){if(t==null)return{};var n,i,r=JCe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function JCe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function QCe(t){return t.value}function e2e(t){var{contextPayload:e}=t,n=ZCe(t,qCe),i=W7(e,t.payloadUniqBy,QCe),r=Fp(Fp({},n),{},{payload:i});return R.isValidElement(t.content)?R.cloneElement(t.content,r):typeof t.content=="function"?R.createElement(t.content,r):R.createElement(YEe,r)}function t2e(t,e,n,i,r,a){var{layout:s,align:o,verticalAlign:l}=e,c,d;return(!t||(t.left===void 0||t.left===null)&&(t.right===void 0||t.right===null))&&(o==="center"&&s==="vertical"?c={left:((i||0)-a.width)/2}:c=o==="right"?{right:n&&n.right||0}:{left:n&&n.left||0}),(!t||(t.top===void 0||t.top===null)&&(t.bottom===void 0||t.bottom===null))&&(l==="middle"?d={top:((r||0)-a.height)/2}:d=l==="bottom"?{bottom:n&&n.bottom||0}:{top:n&&n.top||0}),Fp(Fp({},c),d)}function n2e(t){var e=Wn();return R.useEffect(()=>{e($Ce(t))},[e,t]),null}function i2e(t){var e=Wn();return R.useEffect(()=>(e(xH(t)),()=>{e(xH({width:0,height:0}))}),[e,t]),null}function r2e(t,e,n,i){return t==="vertical"&&St(e)?{height:e}:t==="horizontal"?{width:n||i}:null}var a2e={align:"center",iconSize:14,itemSorter:"value",layout:"horizontal",verticalAlign:"bottom"};function Yq(t){var e=Vi(t,a2e),n=FAe(),i=jMe(),r=PCe(),{width:a,height:s,wrapperStyle:o,portal:l}=e,[c,d]=Z7([n]),f=uN(),p=dN();if(f==null||p==null)return null;var m=f-(r?.left||0)-(r?.right||0),y=r2e(e.layout,s,a,m),b=l?o:Fp(Fp({position:"absolute",width:y?.width||a||"auto",height:y?.height||s||"auto"},t2e(o,e,r,f,p,c)),o),x=l??i;if(x==null||n==null)return null;var v=R.createElement("div",{className:"recharts-legend-wrapper",style:b,ref:d},R.createElement(n2e,{layout:e.layout,align:e.align,verticalAlign:e.verticalAlign,itemSorter:e.itemSorter}),!l&&R.createElement(i2e,{width:c.width,height:c.height}),R.createElement(e2e,R3({},e,y,{margin:r,chartWidth:f,chartHeight:p,contextPayload:n})));return Il.createPortal(v,x)}Yq.displayName="Legend";function P3(){return P3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},P3.apply(null,arguments)}function bH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function DC(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?bH(Object(n),!0).forEach(function(i){s2e(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):bH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function s2e(t,e,n){return(e=o2e(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o2e(t){var e=l2e(t,"string");return typeof e=="symbol"?e:e+""}function l2e(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function c2e(t){return Array.isArray(t)&&Vo(t[0])&&Vo(t[1])?t.join(" ~ "):t}var u2e=t=>{var{separator:e=" : ",contentStyle:n={},itemStyle:i={},labelStyle:r={},payload:a,formatter:s,itemSorter:o,wrapperClassName:l,labelClassName:c,label:d,labelFormatter:f,accessibilityLayer:p=!1}=t,m=()=>{if(a&&a.length){var T={padding:0,margin:0},D=(o?RS(a,o):a).map((C,U)=>{if(C.type==="none")return null;var P=C.formatter||s||c2e,{value:k,name:B}=C,I=k,W=B;if(P){var O=P(k,B,C,U,a);if(Array.isArray(O))[I,W]=O;else if(O!=null)I=O;else return null}var $=DC({display:"block",paddingTop:4,paddingBottom:4,color:C.color||"#000"},i);return R.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(U),style:$},Vo(W)?R.createElement("span",{className:"recharts-tooltip-item-name"},W):null,Vo(W)?R.createElement("span",{className:"recharts-tooltip-item-separator"},e):null,R.createElement("span",{className:"recharts-tooltip-item-value"},I),R.createElement("span",{className:"recharts-tooltip-item-unit"},C.unit||""))});return R.createElement("ul",{className:"recharts-tooltip-item-list",style:T},D)}return null},y=DC({margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},n),b=DC({margin:0},r),x=!oi(d),v=x?d:"",w=yn("recharts-default-tooltip",l),M=yn("recharts-tooltip-label",c);x&&f&&a!==void 0&&a!==null&&(v=f(d,a));var A=p?{role:"status","aria-live":"assertive"}:{};return R.createElement("div",P3({className:w,style:y},A),R.createElement("p",{className:M,style:b},R.isValidElement(v)?v:"".concat(v)),m())},_g="recharts-tooltip-wrapper",d2e={visibility:"hidden"};function f2e(t){var{coordinate:e,translateX:n,translateY:i}=t;return yn(_g,{["".concat(_g,"-right")]:St(n)&&e&&St(e.x)&&n>=e.x,["".concat(_g,"-left")]:St(n)&&e&&St(e.x)&&n<e.x,["".concat(_g,"-bottom")]:St(i)&&e&&St(e.y)&&i>=e.y,["".concat(_g,"-top")]:St(i)&&e&&St(e.y)&&i<e.y})}function _H(t){var{allowEscapeViewBox:e,coordinate:n,key:i,offsetTopLeft:r,position:a,reverseDirection:s,tooltipDimension:o,viewBox:l,viewBoxDimension:c}=t;if(a&&St(a[i]))return a[i];var d=n[i]-o-(r>0?r:0),f=n[i]+r;if(e[i])return s[i]?d:f;var p=l[i];if(p==null)return 0;if(s[i]){var m=d,y=p;return m<y?Math.max(f,p):Math.max(d,p)}if(c==null)return 0;var b=f+o,x=p+c;return b>x?Math.max(d,p):Math.max(f,p)}function h2e(t){var{translateX:e,translateY:n,useTranslate3d:i}=t;return{transform:i?"translate3d(".concat(e,"px, ").concat(n,"px, 0)"):"translate(".concat(e,"px, ").concat(n,"px)")}}function p2e(t){var{allowEscapeViewBox:e,coordinate:n,offsetTopLeft:i,position:r,reverseDirection:a,tooltipBox:s,useTranslate3d:o,viewBox:l}=t,c,d,f;return s.height>0&&s.width>0&&n?(d=_H({allowEscapeViewBox:e,coordinate:n,key:"x",offsetTopLeft:i,position:r,reverseDirection:a,tooltipDimension:s.width,viewBox:l,viewBoxDimension:l.width}),f=_H({allowEscapeViewBox:e,coordinate:n,key:"y",offsetTopLeft:i,position:r,reverseDirection:a,tooltipDimension:s.height,viewBox:l,viewBoxDimension:l.height}),c=h2e({translateX:d,translateY:f,useTranslate3d:o})):c=d2e,{cssProperties:c,cssClasses:f2e({translateX:d,translateY:f,coordinate:n})}}function SH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function hb(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?SH(Object(n),!0).forEach(function(i){D3(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):SH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function D3(t,e,n){return(e=m2e(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function m2e(t){var e=g2e(t,"string");return typeof e=="symbol"?e:e+""}function g2e(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}class v2e extends R.PureComponent{constructor(){super(...arguments),D3(this,"state",{dismissed:!1,dismissedAtCoordinate:{x:0,y:0}}),D3(this,"handleKeyDown",e=>{if(e.key==="Escape"){var n,i,r,a;this.setState({dismissed:!0,dismissedAtCoordinate:{x:(n=(i=this.props.coordinate)===null||i===void 0?void 0:i.x)!==null&&n!==void 0?n:0,y:(r=(a=this.props.coordinate)===null||a===void 0?void 0:a.y)!==null&&r!==void 0?r:0}})}})}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}componentDidUpdate(){var e,n;this.state.dismissed&&(((e=this.props.coordinate)===null||e===void 0?void 0:e.x)!==this.state.dismissedAtCoordinate.x||((n=this.props.coordinate)===null||n===void 0?void 0:n.y)!==this.state.dismissedAtCoordinate.y)&&(this.state.dismissed=!1)}render(){var{active:e,allowEscapeViewBox:n,animationDuration:i,animationEasing:r,children:a,coordinate:s,hasPayload:o,isAnimationActive:l,offset:c,position:d,reverseDirection:f,useTranslate3d:p,viewBox:m,wrapperStyle:y,lastBoundingBox:b,innerRef:x,hasPortalFromProps:v}=this.props,{cssClasses:w,cssProperties:M}=p2e({allowEscapeViewBox:n,coordinate:s,offsetTopLeft:c,position:d,reverseDirection:f,tooltipBox:{height:b.height,width:b.width},useTranslate3d:p,viewBox:m}),A=v?{}:hb(hb({transition:l&&e?"transform ".concat(i,"ms ").concat(r):void 0},M),{},{pointerEvents:"none",visibility:!this.state.dismissed&&e&&o?"visible":"hidden",position:"absolute",top:0,left:0}),T=hb(hb({},A),{},{visibility:!this.state.dismissed&&e&&o?"visible":"hidden"},y);return R.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:w,style:T,ref:x},a)}}var Kq=()=>{var t;return(t=wt(e=>e.rootProps.accessibilityLayer))!==null&&t!==void 0?t:!0};function N3(){return N3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},N3.apply(null,arguments)}function wH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function MH(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?wH(Object(n),!0).forEach(function(i){x2e(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):wH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function x2e(t,e,n){return(e=y2e(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function y2e(t){var e=b2e(t,"string");return typeof e=="symbol"?e:e+""}function b2e(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var EH={curveBasisClosed:sEe,curveBasisOpen:oEe,curveBasis:aEe,curveBumpX:$Me,curveBumpY:WMe,curveLinearClosed:lEe,curveLinear:TS,curveMonotoneX:cEe,curveMonotoneY:uEe,curveNatural:dEe,curveStep:fEe,curveStepAfter:pEe,curveStepBefore:hEe},x1=t=>Qn(t.x)&&Qn(t.y),AH=t=>t.base!=null&&x1(t.base)&&x1(t),Sg=t=>t.x,wg=t=>t.y,_2e=(t,e)=>{if(typeof t=="function")return t;var n="curve".concat(ov(t));return(n==="curveMonotone"||n==="curveBump")&&e?EH["".concat(n).concat(e==="vertical"?"Y":"X")]:EH[n]||TS},S2e=t=>{var{type:e="linear",points:n=[],baseLine:i,layout:r,connectNulls:a=!1}=t,s=_2e(e,r),o=a?n.filter(x1):n,l;if(Array.isArray(i)){var c=n.map((m,y)=>MH(MH({},m),{},{base:i[y]}));r==="vertical"?l=ab().y(wg).x1(Sg).x0(m=>m.base.x):l=ab().x(Sg).y1(wg).y0(m=>m.base.y);var d=l.defined(AH).curve(s),f=a?c.filter(AH):c;return d(f)}r==="vertical"&&St(i)?l=ab().y(wg).x1(Sg).x0(i):St(i)?l=ab().x(Sg).y1(wg).y0(i):l=_7().x(Sg).y(wg);var p=l.defined(x1).curve(s);return p(o)},hp=t=>{var{className:e,points:n,path:i,pathRef:r}=t;if((!n||!n.length)&&!i)return null;var a=n&&n.length?S2e(t):i;return R.createElement("path",N3({},La(t),ZD(t),{className:yn("recharts-curve",e),d:a===null?void 0:a,ref:r}))},w2e=["x","y","top","left","width","height","className"];function O3(){return O3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},O3.apply(null,arguments)}function TH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function M2e(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?TH(Object(n),!0).forEach(function(i){E2e(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):TH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function E2e(t,e,n){return(e=A2e(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function A2e(t){var e=T2e(t,"string");return typeof e=="symbol"?e:e+""}function T2e(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function C2e(t,e){if(t==null)return{};var n,i,r=R2e(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function R2e(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var P2e=(t,e,n,i,r,a)=>"M".concat(t,",").concat(r,"v").concat(i,"M").concat(a,",").concat(e,"h").concat(n),D2e=t=>{var{x:e=0,y:n=0,top:i=0,left:r=0,width:a=0,height:s=0,className:o}=t,l=C2e(t,w2e),c=M2e({x:e,y:n,top:i,left:r,width:a,height:s},l);return!St(e)||!St(n)||!St(a)||!St(s)||!St(i)||!St(r)?null:R.createElement("path",O3({},ga(c),{className:yn("recharts-cross",o),d:P2e(e,n,a,s,i,r)}))};function N2e(t,e,n,i){var r=i/2;return{stroke:"none",fill:"#ccc",x:t==="horizontal"?e.x-r:n.left+.5,y:t==="horizontal"?n.top+.5:e.y-r,width:t==="horizontal"?i:n.width-1,height:t==="horizontal"?n.height-1:i}}function CH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function RH(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?CH(Object(n),!0).forEach(function(i){O2e(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):CH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function O2e(t,e,n){return(e=L2e(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function L2e(t){var e=k2e(t,"string");return typeof e=="symbol"?e:e+""}function k2e(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var I2e=t=>t.replace(/([A-Z])/g,e=>"-".concat(e.toLowerCase())),Zq=(t,e,n)=>t.map(i=>"".concat(I2e(i)," ").concat(e,"ms ").concat(n)).join(","),U2e=(t,e)=>[Object.keys(t),Object.keys(e)].reduce((n,i)=>n.filter(r=>i.includes(r))),F0=(t,e)=>Object.keys(e).reduce((n,i)=>RH(RH({},n),{},{[i]:t(i,e[i])}),{});function PH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Xi(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?PH(Object(n),!0).forEach(function(i){F2e(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):PH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function F2e(t,e,n){return(e=z2e(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function z2e(t){var e=B2e(t,"string");return typeof e=="symbol"?e:e+""}function B2e(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var y1=(t,e,n)=>t+(e-t)*n,L3=t=>{var{from:e,to:n}=t;return e!==n},Jq=(t,e,n)=>{var i=F0((r,a)=>{if(L3(a)){var[s,o]=t(a.from,a.to,a.velocity);return Xi(Xi({},a),{},{from:s,velocity:o})}return a},e);return n<1?F0((r,a)=>L3(a)?Xi(Xi({},a),{},{velocity:y1(a.velocity,i[r].velocity,n),from:y1(a.from,i[r].from,n)}):a,e):Jq(t,i,n-1)};function j2e(t,e,n,i,r,a){var s,o=i.reduce((p,m)=>Xi(Xi({},p),{},{[m]:{from:t[m],velocity:0,to:e[m]}}),{}),l=()=>F0((p,m)=>m.from,o),c=()=>!Object.values(o).filter(L3).length,d=null,f=p=>{s||(s=p);var m=p-s,y=m/n.dt;o=Jq(n,o,y),r(Xi(Xi(Xi({},t),e),l())),s=p,c()||(d=a.setTimeout(f))};return()=>(d=a.setTimeout(f),()=>{var p;(p=d)===null||p===void 0||p()})}function H2e(t,e,n,i,r,a,s){var o=null,l=r.reduce((f,p)=>Xi(Xi({},f),{},{[p]:[t[p],e[p]]}),{}),c,d=f=>{c||(c=f);var p=(f-c)/i,m=F0((b,x)=>y1(...x,n(p)),l);if(a(Xi(Xi(Xi({},t),e),m)),p<1)o=s.setTimeout(d);else{var y=F0((b,x)=>y1(...x,n(1)),l);a(Xi(Xi(Xi({},t),e),y))}};return()=>(o=s.setTimeout(d),()=>{var f;(f=o)===null||f===void 0||f()})}const V2e=(t,e,n,i,r,a)=>{var s=U2e(t,e);return n==null?()=>(r(Xi(Xi({},t),e)),()=>{}):n.isStepper===!0?j2e(t,e,n,s,r,a):H2e(t,e,n,i,s,r,a)};var b1=1e-4,Qq=(t,e)=>[0,3*t,3*e-6*t,3*t-3*e+1],eX=(t,e)=>t.map((n,i)=>n*e**i).reduce((n,i)=>n+i),DH=(t,e)=>n=>{var i=Qq(t,e);return eX(i,n)},G2e=(t,e)=>n=>{var i=Qq(t,e),r=[...i.map((a,s)=>a*s).slice(1),0];return eX(r,n)},$2e=function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];if(n.length===1)switch(n[0]){case"linear":return[0,0,1,1];case"ease":return[.25,.1,.25,1];case"ease-in":return[.42,0,1,1];case"ease-out":return[.42,0,.58,1];case"ease-in-out":return[0,0,.58,1];default:{var r,a=n[0].split("(");if(a[0]==="cubic-bezier"&&((r=a[1])===null||r===void 0?void 0:r.split(")")[0].split(",").length)===4){var s=a[1].split(")")[0].split(",").map(o=>parseFloat(o));return[s[0],s[1],s[2],s[3]]}}}return n.length===4?n:[0,0,1,1]},W2e=(t,e,n,i)=>{var r=DH(t,n),a=DH(e,i),s=G2e(t,n),o=c=>c>1?1:c<0?0:c,l=c=>{for(var d=c>1?1:c,f=d,p=0;p<8;++p){var m=r(f)-d,y=s(f);if(Math.abs(m-d)<b1||y<b1)return a(f);f=o(f-m/y)}return a(f)};return l.isStepper=!1,l},NH=function(){return W2e(...$2e(...arguments))},q2e=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{stiff:n=100,damping:i=8,dt:r=17}=e,a=(s,o,l)=>{var c=-(s-o)*n,d=l*i,f=l+(c-d)*r/1e3,p=l*r/1e3+s;return Math.abs(p-o)<b1&&Math.abs(f)<b1?[o,0]:[p,f]};return a.isStepper=!0,a.dt=r,a},X2e=t=>{if(typeof t=="string")switch(t){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return NH(t);case"spring":return q2e();default:if(t.split("(")[0]==="cubic-bezier")return NH(t)}return typeof t=="function"?t:null};function Y2e(t){var e,n=()=>null,i=!1,r=null,a=s=>{if(!i){if(Array.isArray(s)){if(!s.length)return;var o=s,[l,...c]=o;if(typeof l=="number"){r=t.setTimeout(a.bind(null,c),l);return}a(l),r=t.setTimeout(a.bind(null,c));return}typeof s=="string"&&(e=s,n(e)),typeof s=="object"&&(e=s,n(e)),typeof s=="function"&&s()}};return{stop:()=>{i=!0},start:s=>{i=!1,r&&(r(),r=null),a(s)},subscribe:s=>(n=s,()=>{n=()=>null}),getTimeoutController:()=>t}}class K2e{setTimeout(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=performance.now(),r=null,a=s=>{s-i>=n?e(s):typeof requestAnimationFrame=="function"&&(r=requestAnimationFrame(a))};return r=requestAnimationFrame(a),()=>{r!=null&&cancelAnimationFrame(r)}}}function Z2e(){return Y2e(new K2e)}var J2e=R.createContext(Z2e);function Q2e(t,e){var n=R.useContext(J2e);return R.useMemo(()=>e??n(t),[t,e,n])}var eRe=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),nm={devToolsEnabled:!1,isSsr:eRe()},tRe={begin:0,duration:1e3,easing:"ease",isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},OH={t:0},NC={t:1};function mv(t){var e=Vi(t,tRe),{isActive:n,canBegin:i,duration:r,easing:a,begin:s,onAnimationEnd:o,onAnimationStart:l,children:c}=e,d=n==="auto"?!nm.isSsr:n,f=Q2e(e.animationId,e.animationManager),[p,m]=R.useState(d?OH:NC),y=R.useRef(null);return R.useEffect(()=>{d||m(NC)},[d]),R.useEffect(()=>{if(!d||!i)return lv;var b=V2e(OH,NC,X2e(a),r,m,f.getTimeoutController()),x=()=>{y.current=b()};return f.start([l,s,x,r,o]),()=>{f.stop(),y.current&&y.current(),o()}},[d,i,r,a,s,l,o,f]),c(p.t)}function gv(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",n=R.useRef(D0(e)),i=R.useRef(t);return i.current!==t&&(n.current=D0(e),i.current=t),n.current}var nRe=["radius"],iRe=["radius"];function LH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function kH(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?LH(Object(n),!0).forEach(function(i){rRe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):LH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function rRe(t,e,n){return(e=aRe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function aRe(t){var e=sRe(t,"string");return typeof e=="symbol"?e:e+""}function sRe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function _1(){return _1=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},_1.apply(null,arguments)}function IH(t,e){if(t==null)return{};var n,i,r=oRe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function oRe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var UH=(t,e,n,i,r)=>{var a=Math.min(Math.abs(n)/2,Math.abs(i)/2),s=i>=0?1:-1,o=n>=0?1:-1,l=i>=0&&n>=0||i<0&&n<0?1:0,c;if(a>0&&r instanceof Array){for(var d=[0,0,0,0],f=0,p=4;f<p;f++)d[f]=r[f]>a?a:r[f];c="M".concat(t,",").concat(e+s*d[0]),d[0]>0&&(c+="A ".concat(d[0],",").concat(d[0],",0,0,").concat(l,",").concat(t+o*d[0],",").concat(e)),c+="L ".concat(t+n-o*d[1],",").concat(e),d[1]>0&&(c+="A ".concat(d[1],",").concat(d[1],",0,0,").concat(l,`,
- `).concat(t+n,",").concat(e+s*d[1])),c+="L ".concat(t+n,",").concat(e+i-s*d[2]),d[2]>0&&(c+="A ".concat(d[2],",").concat(d[2],",0,0,").concat(l,`,
- `).concat(t+n-o*d[2],",").concat(e+i)),c+="L ".concat(t+o*d[3],",").concat(e+i),d[3]>0&&(c+="A ".concat(d[3],",").concat(d[3],",0,0,").concat(l,`,
- `).concat(t,",").concat(e+i-s*d[3])),c+="Z"}else if(a>0&&r===+r&&r>0){var m=Math.min(a,r);c="M ".concat(t,",").concat(e+s*m,`
- A `).concat(m,",").concat(m,",0,0,").concat(l,",").concat(t+o*m,",").concat(e,`
- L `).concat(t+n-o*m,",").concat(e,`
- A `).concat(m,",").concat(m,",0,0,").concat(l,",").concat(t+n,",").concat(e+s*m,`
- L `).concat(t+n,",").concat(e+i-s*m,`
- A `).concat(m,",").concat(m,",0,0,").concat(l,",").concat(t+n-o*m,",").concat(e+i,`
- L `).concat(t+o*m,",").concat(e+i,`
- A `).concat(m,",").concat(m,",0,0,").concat(l,",").concat(t,",").concat(e+i-s*m," Z")}else c="M ".concat(t,",").concat(e," h ").concat(n," v ").concat(i," h ").concat(-n," Z");return c},FH={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},tX=t=>{var e=Vi(t,FH),n=R.useRef(null),[i,r]=R.useState(-1);R.useEffect(()=>{if(n.current&&n.current.getTotalLength)try{var G=n.current.getTotalLength();G&&r(G)}catch{}},[]);var{x:a,y:s,width:o,height:l,radius:c,className:d}=e,{animationEasing:f,animationDuration:p,animationBegin:m,isAnimationActive:y,isUpdateAnimationActive:b}=e,x=R.useRef(o),v=R.useRef(l),w=R.useRef(a),M=R.useRef(s),A=R.useMemo(()=>({x:a,y:s,width:o,height:l,radius:c}),[a,s,o,l,c]),T=gv(A,"rectangle-");if(a!==+a||s!==+s||o!==+o||l!==+l||o===0||l===0)return null;var D=yn("recharts-rectangle",d);if(!b){var C=ga(e),{radius:U}=C,P=IH(C,nRe);return R.createElement("path",_1({},P,{radius:typeof c=="number"?c:void 0,className:D,d:UH(a,s,o,l,c)}))}var k=x.current,B=v.current,I=w.current,W=M.current,O="0px ".concat(i===-1?1:i,"px"),$="".concat(i,"px 0px"),q=Zq(["strokeDasharray"],p,typeof f=="string"?f:FH.animationEasing);return R.createElement(mv,{animationId:T,key:T,canBegin:i>0,duration:p,easing:f,isActive:b,begin:m},G=>{var Y=Jn(k,o,G),Q=Jn(B,l,G),se=Jn(I,a,G),H=Jn(W,s,G);n.current&&(x.current=Y,v.current=Q,w.current=se,M.current=H);var X;y?G>0?X={transition:q,strokeDasharray:$}:X={strokeDasharray:O}:X={strokeDasharray:$};var re=ga(e),{radius:ce}=re,ye=IH(re,iRe);return R.createElement("path",_1({},ye,{radius:typeof c=="number"?c:void 0,className:D,d:UH(se,H,Y,Q,c),ref:n,style:kH(kH({},X),e.style)}))})};function zH(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function BH(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?zH(Object(n),!0).forEach(function(i){lRe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):zH(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function lRe(t,e,n){return(e=cRe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function cRe(t){var e=uRe(t,"string");return typeof e=="symbol"?e:e+""}function uRe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var S1=Math.PI/180,dRe=t=>t*180/Math.PI,Ui=(t,e,n,i)=>({x:t+Math.cos(-S1*i)*n,y:e+Math.sin(-S1*i)*n}),nX=function(e,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(e-(i.left||0)-(i.right||0)),Math.abs(n-(i.top||0)-(i.bottom||0)))/2},fRe=(t,e)=>{var{x:n,y:i}=t,{x:r,y:a}=e;return Math.sqrt((n-r)**2+(i-a)**2)},hRe=(t,e)=>{var{x:n,y:i}=t,{cx:r,cy:a}=e,s=fRe({x:n,y:i},{x:r,y:a});if(s<=0)return{radius:s,angle:0};var o=(n-r)/s,l=Math.acos(o);return i>a&&(l=2*Math.PI-l),{radius:s,angle:dRe(l),angleInRadian:l}},pRe=t=>{var{startAngle:e,endAngle:n}=t,i=Math.floor(e/360),r=Math.floor(n/360),a=Math.min(i,r);return{startAngle:e-a*360,endAngle:n-a*360}},mRe=(t,e)=>{var{startAngle:n,endAngle:i}=e,r=Math.floor(n/360),a=Math.floor(i/360),s=Math.min(r,a);return t+s*360},gRe=(t,e)=>{var{chartX:n,chartY:i}=t,{radius:r,angle:a}=hRe({x:n,y:i},e),{innerRadius:s,outerRadius:o}=e;if(r<s||r>o||r===0)return null;var{startAngle:l,endAngle:c}=pRe(e),d=a,f;if(l<=c){for(;d>c;)d-=360;for(;d<l;)d+=360;f=d>=l&&d<=c}else{for(;d>l;)d-=360;for(;d<c;)d+=360;f=d>=c&&d<=l}return f?BH(BH({},e),{},{radius:r,angle:mRe(d,e)}):null};function iX(t){var{cx:e,cy:n,radius:i,startAngle:r,endAngle:a}=t,s=Ui(e,n,i,r),o=Ui(e,n,i,a);return{points:[s,o],cx:e,cy:n,radius:i,startAngle:r,endAngle:a}}function k3(){return k3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},k3.apply(null,arguments)}var vRe=(t,e)=>{var n=_r(e-t),i=Math.min(Math.abs(e-t),359.999);return n*i},pb=t=>{var{cx:e,cy:n,radius:i,angle:r,sign:a,isExternal:s,cornerRadius:o,cornerIsExternal:l}=t,c=o*(s?1:-1)+i,d=Math.asin(o/c)/S1,f=l?r:r+a*d,p=Ui(e,n,c,f),m=Ui(e,n,i,f),y=l?r-a*d:r,b=Ui(e,n,c*Math.cos(d*S1),y);return{center:p,circleTangency:m,lineTangency:b,theta:d}},rX=t=>{var{cx:e,cy:n,innerRadius:i,outerRadius:r,startAngle:a,endAngle:s}=t,o=vRe(a,s),l=a+o,c=Ui(e,n,r,a),d=Ui(e,n,r,l),f="M ".concat(c.x,",").concat(c.y,`
- A `).concat(r,",").concat(r,`,0,
- `).concat(+(Math.abs(o)>180),",").concat(+(a>l),`,
- `).concat(d.x,",").concat(d.y,`
- `);if(i>0){var p=Ui(e,n,i,a),m=Ui(e,n,i,l);f+="L ".concat(m.x,",").concat(m.y,`
- A `).concat(i,",").concat(i,`,0,
- `).concat(+(Math.abs(o)>180),",").concat(+(a<=l),`,
- `).concat(p.x,",").concat(p.y," Z")}else f+="L ".concat(e,",").concat(n," Z");return f},xRe=t=>{var{cx:e,cy:n,innerRadius:i,outerRadius:r,cornerRadius:a,forceCornerRadius:s,cornerIsExternal:o,startAngle:l,endAngle:c}=t,d=_r(c-l),{circleTangency:f,lineTangency:p,theta:m}=pb({cx:e,cy:n,radius:r,angle:l,sign:d,cornerRadius:a,cornerIsExternal:o}),{circleTangency:y,lineTangency:b,theta:x}=pb({cx:e,cy:n,radius:r,angle:c,sign:-d,cornerRadius:a,cornerIsExternal:o}),v=o?Math.abs(l-c):Math.abs(l-c)-m-x;if(v<0)return s?"M ".concat(p.x,",").concat(p.y,`
- a`).concat(a,",").concat(a,",0,0,1,").concat(a*2,`,0
- a`).concat(a,",").concat(a,",0,0,1,").concat(-a*2,`,0
- `):rX({cx:e,cy:n,innerRadius:i,outerRadius:r,startAngle:l,endAngle:c});var w="M ".concat(p.x,",").concat(p.y,`
- A`).concat(a,",").concat(a,",0,0,").concat(+(d<0),",").concat(f.x,",").concat(f.y,`
- A`).concat(r,",").concat(r,",0,").concat(+(v>180),",").concat(+(d<0),",").concat(y.x,",").concat(y.y,`
- A`).concat(a,",").concat(a,",0,0,").concat(+(d<0),",").concat(b.x,",").concat(b.y,`
- `);if(i>0){var{circleTangency:M,lineTangency:A,theta:T}=pb({cx:e,cy:n,radius:i,angle:l,sign:d,isExternal:!0,cornerRadius:a,cornerIsExternal:o}),{circleTangency:D,lineTangency:C,theta:U}=pb({cx:e,cy:n,radius:i,angle:c,sign:-d,isExternal:!0,cornerRadius:a,cornerIsExternal:o}),P=o?Math.abs(l-c):Math.abs(l-c)-T-U;if(P<0&&a===0)return"".concat(w,"L").concat(e,",").concat(n,"Z");w+="L".concat(C.x,",").concat(C.y,`
- A`).concat(a,",").concat(a,",0,0,").concat(+(d<0),",").concat(D.x,",").concat(D.y,`
- A`).concat(i,",").concat(i,",0,").concat(+(P>180),",").concat(+(d>0),",").concat(M.x,",").concat(M.y,`
- A`).concat(a,",").concat(a,",0,0,").concat(+(d<0),",").concat(A.x,",").concat(A.y,"Z")}else w+="L".concat(e,",").concat(n,"Z");return w},yRe={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},aX=t=>{var e=Vi(t,yRe),{cx:n,cy:i,innerRadius:r,outerRadius:a,cornerRadius:s,forceCornerRadius:o,cornerIsExternal:l,startAngle:c,endAngle:d,className:f}=e;if(a<r||c===d)return null;var p=yn("recharts-sector",f),m=a-r,y=ea(s,m,0,!0),b;return y>0&&Math.abs(c-d)<360?b=xRe({cx:n,cy:i,innerRadius:r,outerRadius:a,cornerRadius:Math.min(y,m/2),forceCornerRadius:o,cornerIsExternal:l,startAngle:c,endAngle:d}):b=rX({cx:n,cy:i,innerRadius:r,outerRadius:a,startAngle:c,endAngle:d}),R.createElement("path",k3({},ga(e),{className:p,d:b}))};function bRe(t,e,n){if(t==="horizontal")return[{x:e.x,y:n.top},{x:e.x,y:n.top+n.height}];if(t==="vertical")return[{x:n.left,y:e.y},{x:n.left+n.width,y:e.y}];if(I7(e)){if(t==="centric"){var{cx:i,cy:r,innerRadius:a,outerRadius:s,angle:o}=e,l=Ui(i,r,a,o),c=Ui(i,r,s,o);return[{x:l.x,y:l.y},{x:c.x,y:c.y}]}return iX(e)}}var OC={},LC={},kC={},jH;function _Re(){return jH||(jH=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=X7();function n(i){return e.isSymbol(i)?NaN:Number(i)}t.toNumber=n})(kC)),kC}var HH;function SRe(){return HH||(HH=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=_Re();function n(i){return i?(i=e.toNumber(i),i===1/0||i===-1/0?(i<0?-1:1)*Number.MAX_VALUE:i===i?i:0):i===0?i:0}t.toFinite=n})(LC)),LC}var VH;function wRe(){return VH||(VH=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=Y7(),n=SRe();function i(r,a,s){s&&typeof s!="number"&&e.isIterateeCall(r,a,s)&&(a=s=void 0),r=n.toFinite(r),a===void 0?(a=r,r=0):a=n.toFinite(a),s=s===void 0?r<a?1:-1:n.toFinite(s);const o=Math.max(Math.ceil((a-r)/(s||1)),0),l=new Array(o);for(let c=0;c<o;c++)l[c]=r,r+=s;return l}t.range=i})(OC)),OC}var IC,GH;function MRe(){return GH||(GH=1,IC=wRe().range),IC}var ERe=MRe();const sX=Vs(ERe);function Tu(t,e){return t==null||e==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function ARe(t,e){return t==null||e==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function pN(t){let e,n,i;t.length!==2?(e=Tu,n=(o,l)=>Tu(t(o),l),i=(o,l)=>t(o)-l):(e=t===Tu||t===ARe?t:TRe,n=t,i=t);function r(o,l,c=0,d=o.length){if(c<d){if(e(l,l)!==0)return d;do{const f=c+d>>>1;n(o[f],l)<0?c=f+1:d=f}while(c<d)}return c}function a(o,l,c=0,d=o.length){if(c<d){if(e(l,l)!==0)return d;do{const f=c+d>>>1;n(o[f],l)<=0?c=f+1:d=f}while(c<d)}return c}function s(o,l,c=0,d=o.length){const f=r(o,l,c,d-1);return f>c&&i(o[f-1],l)>-i(o[f],l)?f-1:f}return{left:r,center:s,right:a}}function TRe(){return 0}function oX(t){return t===null?NaN:+t}function*CRe(t,e){for(let n of t)n!=null&&(n=+n)>=n&&(yield n)}const RRe=pN(Tu),vv=RRe.right;pN(oX).center;class $H extends Map{constructor(e,n=NRe){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),e!=null)for(const[i,r]of e)this.set(i,r)}get(e){return super.get(WH(this,e))}has(e){return super.has(WH(this,e))}set(e,n){return super.set(PRe(this,e),n)}delete(e){return super.delete(DRe(this,e))}}function WH({_intern:t,_key:e},n){const i=e(n);return t.has(i)?t.get(i):n}function PRe({_intern:t,_key:e},n){const i=e(n);return t.has(i)?t.get(i):(t.set(i,n),n)}function DRe({_intern:t,_key:e},n){const i=e(n);return t.has(i)&&(n=t.get(i),t.delete(i)),n}function NRe(t){return t!==null&&typeof t=="object"?t.valueOf():t}function ORe(t=Tu){if(t===Tu)return lX;if(typeof t!="function")throw new TypeError("compare is not a function");return(e,n)=>{const i=t(e,n);return i||i===0?i:(t(n,n)===0)-(t(e,e)===0)}}function lX(t,e){return(t==null||!(t>=t))-(e==null||!(e>=e))||(t<e?-1:t>e?1:0)}const LRe=Math.sqrt(50),kRe=Math.sqrt(10),IRe=Math.sqrt(2);function w1(t,e,n){const i=(e-t)/Math.max(0,n),r=Math.floor(Math.log10(i)),a=i/Math.pow(10,r),s=a>=LRe?10:a>=kRe?5:a>=IRe?2:1;let o,l,c;return r<0?(c=Math.pow(10,-r)/s,o=Math.round(t*c),l=Math.round(e*c),o/c<t&&++o,l/c>e&&--l,c=-c):(c=Math.pow(10,r)*s,o=Math.round(t/c),l=Math.round(e/c),o*c<t&&++o,l*c>e&&--l),l<o&&.5<=n&&n<2?w1(t,e,n*2):[o,l,c]}function I3(t,e,n){if(e=+e,t=+t,n=+n,!(n>0))return[];if(t===e)return[t];const i=e<t,[r,a,s]=i?w1(e,t,n):w1(t,e,n);if(!(a>=r))return[];const o=a-r+1,l=new Array(o);if(i)if(s<0)for(let c=0;c<o;++c)l[c]=(a-c)/-s;else for(let c=0;c<o;++c)l[c]=(a-c)*s;else if(s<0)for(let c=0;c<o;++c)l[c]=(r+c)/-s;else for(let c=0;c<o;++c)l[c]=(r+c)*s;return l}function U3(t,e,n){return e=+e,t=+t,n=+n,w1(t,e,n)[2]}function F3(t,e,n){e=+e,t=+t,n=+n;const i=e<t,r=i?U3(e,t,n):U3(t,e,n);return(i?-1:1)*(r<0?1/-r:r)}function qH(t,e){let n;for(const i of t)i!=null&&(n<i||n===void 0&&i>=i)&&(n=i);return n}function XH(t,e){let n;for(const i of t)i!=null&&(n>i||n===void 0&&i>=i)&&(n=i);return n}function cX(t,e,n=0,i=1/0,r){if(e=Math.floor(e),n=Math.floor(Math.max(0,n)),i=Math.floor(Math.min(t.length-1,i)),!(n<=e&&e<=i))return t;for(r=r===void 0?lX:ORe(r);i>n;){if(i-n>600){const l=i-n+1,c=e-n+1,d=Math.log(l),f=.5*Math.exp(2*d/3),p=.5*Math.sqrt(d*f*(l-f)/l)*(c-l/2<0?-1:1),m=Math.max(n,Math.floor(e-c*f/l+p)),y=Math.min(i,Math.floor(e+(l-c)*f/l+p));cX(t,e,m,y,r)}const a=t[e];let s=n,o=i;for(Mg(t,n,e),r(t[i],a)>0&&Mg(t,n,i);s<o;){for(Mg(t,s,o),++s,--o;r(t[s],a)<0;)++s;for(;r(t[o],a)>0;)--o}r(t[n],a)===0?Mg(t,n,o):(++o,Mg(t,o,i)),o<=e&&(n=o+1),e<=o&&(i=o-1)}return t}function Mg(t,e,n){const i=t[e];t[e]=t[n],t[n]=i}function URe(t,e,n){if(t=Float64Array.from(CRe(t)),!(!(i=t.length)||isNaN(e=+e))){if(e<=0||i<2)return XH(t);if(e>=1)return qH(t);var i,r=(i-1)*e,a=Math.floor(r),s=qH(cX(t,a).subarray(0,a+1)),o=XH(t.subarray(a+1));return s+(o-s)*(r-a)}}function FRe(t,e,n=oX){if(!(!(i=t.length)||isNaN(e=+e))){if(e<=0||i<2)return+n(t[0],0,t);if(e>=1)return+n(t[i-1],i-1,t);var i,r=(i-1)*e,a=Math.floor(r),s=+n(t[a],a,t),o=+n(t[a+1],a+1,t);return s+(o-s)*(r-a)}}function zRe(t,e,n){t=+t,e=+e,n=(r=arguments.length)<2?(e=t,t=0,1):r<3?1:+n;for(var i=-1,r=Math.max(0,Math.ceil((e-t)/n))|0,a=new Array(r);++i<r;)a[i]=t+i*n;return a}function Gs(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t);break}return this}function dc(t,e){switch(arguments.length){case 0:break;case 1:{typeof t=="function"?this.interpolator(t):this.range(t);break}default:{this.domain(t),typeof e=="function"?this.interpolator(e):this.range(e);break}}return this}const z3=Symbol("implicit");function mN(){var t=new $H,e=[],n=[],i=z3;function r(a){let s=t.get(a);if(s===void 0){if(i!==z3)return i;t.set(a,s=e.push(a)-1)}return n[s%n.length]}return r.domain=function(a){if(!arguments.length)return e.slice();e=[],t=new $H;for(const s of a)t.has(s)||t.set(s,e.push(s)-1);return r},r.range=function(a){return arguments.length?(n=Array.from(a),r):n.slice()},r.unknown=function(a){return arguments.length?(i=a,r):i},r.copy=function(){return mN(e,n).unknown(i)},Gs.apply(r,arguments),r}function gN(){var t=mN().unknown(void 0),e=t.domain,n=t.range,i=0,r=1,a,s,o=!1,l=0,c=0,d=.5;delete t.unknown;function f(){var p=e().length,m=r<i,y=m?r:i,b=m?i:r;a=(b-y)/Math.max(1,p-l+c*2),o&&(a=Math.floor(a)),y+=(b-y-a*(p-l))*d,s=a*(1-l),o&&(y=Math.round(y),s=Math.round(s));var x=zRe(p).map(function(v){return y+a*v});return n(m?x.reverse():x)}return t.domain=function(p){return arguments.length?(e(p),f()):e()},t.range=function(p){return arguments.length?([i,r]=p,i=+i,r=+r,f()):[i,r]},t.rangeRound=function(p){return[i,r]=p,i=+i,r=+r,o=!0,f()},t.bandwidth=function(){return s},t.step=function(){return a},t.round=function(p){return arguments.length?(o=!!p,f()):o},t.padding=function(p){return arguments.length?(l=Math.min(1,c=+p),f()):l},t.paddingInner=function(p){return arguments.length?(l=Math.min(1,p),f()):l},t.paddingOuter=function(p){return arguments.length?(c=+p,f()):c},t.align=function(p){return arguments.length?(d=Math.max(0,Math.min(1,p)),f()):d},t.copy=function(){return gN(e(),[i,r]).round(o).paddingInner(l).paddingOuter(c).align(d)},Gs.apply(f(),arguments)}function uX(t){var e=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return uX(e())},t}function BRe(){return uX(gN.apply(null,arguments).paddingInner(1))}function vN(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function dX(t,e){var n=Object.create(t.prototype);for(var i in e)n[i]=e[i];return n}function xv(){}var z0=.7,M1=1/z0,pp="\\s*([+-]?\\d+)\\s*",B0="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Fo="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",jRe=/^#([0-9a-f]{3,8})$/,HRe=new RegExp(`^rgb\\(${pp},${pp},${pp}\\)$`),VRe=new RegExp(`^rgb\\(${Fo},${Fo},${Fo}\\)$`),GRe=new RegExp(`^rgba\\(${pp},${pp},${pp},${B0}\\)$`),$Re=new RegExp(`^rgba\\(${Fo},${Fo},${Fo},${B0}\\)$`),WRe=new RegExp(`^hsl\\(${B0},${Fo},${Fo}\\)$`),qRe=new RegExp(`^hsla\\(${B0},${Fo},${Fo},${B0}\\)$`),YH={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};vN(xv,j0,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:KH,formatHex:KH,formatHex8:XRe,formatHsl:YRe,formatRgb:ZH,toString:ZH});function KH(){return this.rgb().formatHex()}function XRe(){return this.rgb().formatHex8()}function YRe(){return fX(this).formatHsl()}function ZH(){return this.rgb().formatRgb()}function j0(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=jRe.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?JH(e):n===3?new Ra(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?mb(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?mb(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=HRe.exec(t))?new Ra(e[1],e[2],e[3],1):(e=VRe.exec(t))?new Ra(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=GRe.exec(t))?mb(e[1],e[2],e[3],e[4]):(e=$Re.exec(t))?mb(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=WRe.exec(t))?t8(e[1],e[2]/100,e[3]/100,1):(e=qRe.exec(t))?t8(e[1],e[2]/100,e[3]/100,e[4]):YH.hasOwnProperty(t)?JH(YH[t]):t==="transparent"?new Ra(NaN,NaN,NaN,0):null}function JH(t){return new Ra(t>>16&255,t>>8&255,t&255,1)}function mb(t,e,n,i){return i<=0&&(t=e=n=NaN),new Ra(t,e,n,i)}function KRe(t){return t instanceof xv||(t=j0(t)),t?(t=t.rgb(),new Ra(t.r,t.g,t.b,t.opacity)):new Ra}function B3(t,e,n,i){return arguments.length===1?KRe(t):new Ra(t,e,n,i??1)}function Ra(t,e,n,i){this.r=+t,this.g=+e,this.b=+n,this.opacity=+i}vN(Ra,B3,dX(xv,{brighter(t){return t=t==null?M1:Math.pow(M1,t),new Ra(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?z0:Math.pow(z0,t),new Ra(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Ra(Kd(this.r),Kd(this.g),Kd(this.b),E1(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:QH,formatHex:QH,formatHex8:ZRe,formatRgb:e8,toString:e8}));function QH(){return`#${Id(this.r)}${Id(this.g)}${Id(this.b)}`}function ZRe(){return`#${Id(this.r)}${Id(this.g)}${Id(this.b)}${Id((isNaN(this.opacity)?1:this.opacity)*255)}`}function e8(){const t=E1(this.opacity);return`${t===1?"rgb(":"rgba("}${Kd(this.r)}, ${Kd(this.g)}, ${Kd(this.b)}${t===1?")":`, ${t})`}`}function E1(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Kd(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Id(t){return t=Kd(t),(t<16?"0":"")+t.toString(16)}function t8(t,e,n,i){return i<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new oo(t,e,n,i)}function fX(t){if(t instanceof oo)return new oo(t.h,t.s,t.l,t.opacity);if(t instanceof xv||(t=j0(t)),!t)return new oo;if(t instanceof oo)return t;t=t.rgb();var e=t.r/255,n=t.g/255,i=t.b/255,r=Math.min(e,n,i),a=Math.max(e,n,i),s=NaN,o=a-r,l=(a+r)/2;return o?(e===a?s=(n-i)/o+(n<i)*6:n===a?s=(i-e)/o+2:s=(e-n)/o+4,o/=l<.5?a+r:2-a-r,s*=60):o=l>0&&l<1?0:s,new oo(s,o,l,t.opacity)}function JRe(t,e,n,i){return arguments.length===1?fX(t):new oo(t,e,n,i??1)}function oo(t,e,n,i){this.h=+t,this.s=+e,this.l=+n,this.opacity=+i}vN(oo,JRe,dX(xv,{brighter(t){return t=t==null?M1:Math.pow(M1,t),new oo(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?z0:Math.pow(z0,t),new oo(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*e,r=2*n-i;return new Ra(UC(t>=240?t-240:t+120,r,i),UC(t,r,i),UC(t<120?t+240:t-120,r,i),this.opacity)},clamp(){return new oo(n8(this.h),gb(this.s),gb(this.l),E1(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=E1(this.opacity);return`${t===1?"hsl(":"hsla("}${n8(this.h)}, ${gb(this.s)*100}%, ${gb(this.l)*100}%${t===1?")":`, ${t})`}`}}));function n8(t){return t=(t||0)%360,t<0?t+360:t}function gb(t){return Math.max(0,Math.min(1,t||0))}function UC(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const xN=t=>()=>t;function QRe(t,e){return function(n){return t+n*e}}function e3e(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(i){return Math.pow(t+i*e,n)}}function t3e(t){return(t=+t)==1?hX:function(e,n){return n-e?e3e(e,n,t):xN(isNaN(e)?n:e)}}function hX(t,e){var n=e-t;return n?QRe(t,n):xN(isNaN(t)?e:t)}const i8=(function t(e){var n=t3e(e);function i(r,a){var s=n((r=B3(r)).r,(a=B3(a)).r),o=n(r.g,a.g),l=n(r.b,a.b),c=hX(r.opacity,a.opacity);return function(d){return r.r=s(d),r.g=o(d),r.b=l(d),r.opacity=c(d),r+""}}return i.gamma=t,i})(1);function n3e(t,e){e||(e=[]);var n=t?Math.min(e.length,t.length):0,i=e.slice(),r;return function(a){for(r=0;r<n;++r)i[r]=t[r]*(1-a)+e[r]*a;return i}}function i3e(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function r3e(t,e){var n=e?e.length:0,i=t?Math.min(n,t.length):0,r=new Array(i),a=new Array(n),s;for(s=0;s<i;++s)r[s]=im(t[s],e[s]);for(;s<n;++s)a[s]=e[s];return function(o){for(s=0;s<i;++s)a[s]=r[s](o);return a}}function a3e(t,e){var n=new Date;return t=+t,e=+e,function(i){return n.setTime(t*(1-i)+e*i),n}}function A1(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}function s3e(t,e){var n={},i={},r;(t===null||typeof t!="object")&&(t={}),(e===null||typeof e!="object")&&(e={});for(r in e)r in t?n[r]=im(t[r],e[r]):i[r]=e[r];return function(a){for(r in n)i[r]=n[r](a);return i}}var j3=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,FC=new RegExp(j3.source,"g");function o3e(t){return function(){return t}}function l3e(t){return function(e){return t(e)+""}}function c3e(t,e){var n=j3.lastIndex=FC.lastIndex=0,i,r,a,s=-1,o=[],l=[];for(t=t+"",e=e+"";(i=j3.exec(t))&&(r=FC.exec(e));)(a=r.index)>n&&(a=e.slice(n,a),o[s]?o[s]+=a:o[++s]=a),(i=i[0])===(r=r[0])?o[s]?o[s]+=r:o[++s]=r:(o[++s]=null,l.push({i:s,x:A1(i,r)})),n=FC.lastIndex;return n<e.length&&(a=e.slice(n),o[s]?o[s]+=a:o[++s]=a),o.length<2?l[0]?l3e(l[0].x):o3e(e):(e=l.length,function(c){for(var d=0,f;d<e;++d)o[(f=l[d]).i]=f.x(c);return o.join("")})}function im(t,e){var n=typeof e,i;return e==null||n==="boolean"?xN(e):(n==="number"?A1:n==="string"?(i=j0(e))?(e=i,i8):c3e:e instanceof j0?i8:e instanceof Date?a3e:i3e(e)?n3e:Array.isArray(e)?r3e:typeof e.valueOf!="function"&&typeof e.toString!="function"||isNaN(e)?s3e:A1)(t,e)}function yN(t,e){return t=+t,e=+e,function(n){return Math.round(t*(1-n)+e*n)}}function u3e(t,e){e===void 0&&(e=t,t=im);for(var n=0,i=e.length-1,r=e[0],a=new Array(i<0?0:i);n<i;)a[n]=t(r,r=e[++n]);return function(s){var o=Math.max(0,Math.min(i-1,Math.floor(s*=i)));return a[o](s-o)}}function d3e(t){return function(){return t}}function T1(t){return+t}var r8=[0,1];function da(t){return t}function H3(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:d3e(isNaN(e)?NaN:.5)}function f3e(t,e){var n;return t>e&&(n=t,t=e,e=n),function(i){return Math.max(t,Math.min(e,i))}}function h3e(t,e,n){var i=t[0],r=t[1],a=e[0],s=e[1];return r<i?(i=H3(r,i),a=n(s,a)):(i=H3(i,r),a=n(a,s)),function(o){return a(i(o))}}function p3e(t,e,n){var i=Math.min(t.length,e.length)-1,r=new Array(i),a=new Array(i),s=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),e=e.slice().reverse());++s<i;)r[s]=H3(t[s],t[s+1]),a[s]=n(e[s],e[s+1]);return function(o){var l=vv(t,o,1,i)-1;return a[l](r[l](o))}}function yv(t,e){return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function qS(){var t=r8,e=r8,n=im,i,r,a,s=da,o,l,c;function d(){var p=Math.min(t.length,e.length);return s!==da&&(s=f3e(t[0],t[p-1])),o=p>2?p3e:h3e,l=c=null,f}function f(p){return p==null||isNaN(p=+p)?a:(l||(l=o(t.map(i),e,n)))(i(s(p)))}return f.invert=function(p){return s(r((c||(c=o(e,t.map(i),A1)))(p)))},f.domain=function(p){return arguments.length?(t=Array.from(p,T1),d()):t.slice()},f.range=function(p){return arguments.length?(e=Array.from(p),d()):e.slice()},f.rangeRound=function(p){return e=Array.from(p),n=yN,d()},f.clamp=function(p){return arguments.length?(s=p?!0:da,d()):s!==da},f.interpolate=function(p){return arguments.length?(n=p,d()):n},f.unknown=function(p){return arguments.length?(a=p,f):a},function(p,m){return i=p,r=m,d()}}function bN(){return qS()(da,da)}function m3e(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)}function C1(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,i=t.slice(0,n);return[i.length>1?i[0]+i.slice(2):i,+t.slice(n+1)]}function zp(t){return t=C1(Math.abs(t)),t?t[1]:NaN}function g3e(t,e){return function(n,i){for(var r=n.length,a=[],s=0,o=t[0],l=0;r>0&&o>0&&(l+o+1>i&&(o=Math.max(1,i-l)),a.push(n.substring(r-=o,r+o)),!((l+=o+1)>i));)o=t[s=(s+1)%t.length];return a.reverse().join(e)}}function v3e(t){return function(e){return e.replace(/[0-9]/g,function(n){return t[+n]})}}var x3e=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function H0(t){if(!(e=x3e.exec(t)))throw new Error("invalid format: "+t);var e;return new _N({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}H0.prototype=_N.prototype;function _N(t){this.fill=t.fill===void 0?" ":t.fill+"",this.align=t.align===void 0?">":t.align+"",this.sign=t.sign===void 0?"-":t.sign+"",this.symbol=t.symbol===void 0?"":t.symbol+"",this.zero=!!t.zero,this.width=t.width===void 0?void 0:+t.width,this.comma=!!t.comma,this.precision=t.precision===void 0?void 0:+t.precision,this.trim=!!t.trim,this.type=t.type===void 0?"":t.type+""}_N.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function y3e(t){e:for(var e=t.length,n=1,i=-1,r;n<e;++n)switch(t[n]){case".":i=r=n;break;case"0":i===0&&(i=n),r=n;break;default:if(!+t[n])break e;i>0&&(i=0);break}return i>0?t.slice(0,i)+t.slice(r+1):t}var pX;function b3e(t,e){var n=C1(t,e);if(!n)return t+"";var i=n[0],r=n[1],a=r-(pX=Math.max(-8,Math.min(8,Math.floor(r/3)))*3)+1,s=i.length;return a===s?i:a>s?i+new Array(a-s+1).join("0"):a>0?i.slice(0,a)+"."+i.slice(a):"0."+new Array(1-a).join("0")+C1(t,Math.max(0,e+a-1))[0]}function a8(t,e){var n=C1(t,e);if(!n)return t+"";var i=n[0],r=n[1];return r<0?"0."+new Array(-r).join("0")+i:i.length>r+1?i.slice(0,r+1)+"."+i.slice(r+1):i+new Array(r-i.length+2).join("0")}const s8={"%":(t,e)=>(t*100).toFixed(e),b:t=>Math.round(t).toString(2),c:t=>t+"",d:m3e,e:(t,e)=>t.toExponential(e),f:(t,e)=>t.toFixed(e),g:(t,e)=>t.toPrecision(e),o:t=>Math.round(t).toString(8),p:(t,e)=>a8(t*100,e),r:a8,s:b3e,X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function o8(t){return t}var l8=Array.prototype.map,c8=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function _3e(t){var e=t.grouping===void 0||t.thousands===void 0?o8:g3e(l8.call(t.grouping,Number),t.thousands+""),n=t.currency===void 0?"":t.currency[0]+"",i=t.currency===void 0?"":t.currency[1]+"",r=t.decimal===void 0?".":t.decimal+"",a=t.numerals===void 0?o8:v3e(l8.call(t.numerals,String)),s=t.percent===void 0?"%":t.percent+"",o=t.minus===void 0?"−":t.minus+"",l=t.nan===void 0?"NaN":t.nan+"";function c(f){f=H0(f);var p=f.fill,m=f.align,y=f.sign,b=f.symbol,x=f.zero,v=f.width,w=f.comma,M=f.precision,A=f.trim,T=f.type;T==="n"?(w=!0,T="g"):s8[T]||(M===void 0&&(M=12),A=!0,T="g"),(x||p==="0"&&m==="=")&&(x=!0,p="0",m="=");var D=b==="$"?n:b==="#"&&/[boxX]/.test(T)?"0"+T.toLowerCase():"",C=b==="$"?i:/[%p]/.test(T)?s:"",U=s8[T],P=/[defgprs%]/.test(T);M=M===void 0?6:/[gprs]/.test(T)?Math.max(1,Math.min(21,M)):Math.max(0,Math.min(20,M));function k(B){var I=D,W=C,O,$,q;if(T==="c")W=U(B)+W,B="";else{B=+B;var G=B<0||1/B<0;if(B=isNaN(B)?l:U(Math.abs(B),M),A&&(B=y3e(B)),G&&+B==0&&y!=="+"&&(G=!1),I=(G?y==="("?y:o:y==="-"||y==="("?"":y)+I,W=(T==="s"?c8[8+pX/3]:"")+W+(G&&y==="("?")":""),P){for(O=-1,$=B.length;++O<$;)if(q=B.charCodeAt(O),48>q||q>57){W=(q===46?r+B.slice(O+1):B.slice(O))+W,B=B.slice(0,O);break}}}w&&!x&&(B=e(B,1/0));var Y=I.length+B.length+W.length,Q=Y<v?new Array(v-Y+1).join(p):"";switch(w&&x&&(B=e(Q+B,Q.length?v-W.length:1/0),Q=""),m){case"<":B=I+B+W+Q;break;case"=":B=I+Q+B+W;break;case"^":B=Q.slice(0,Y=Q.length>>1)+I+B+W+Q.slice(Y);break;default:B=Q+I+B+W;break}return a(B)}return k.toString=function(){return f+""},k}function d(f,p){var m=c((f=H0(f),f.type="f",f)),y=Math.max(-8,Math.min(8,Math.floor(zp(p)/3)))*3,b=Math.pow(10,-y),x=c8[8+y/3];return function(v){return m(b*v)+x}}return{format:c,formatPrefix:d}}var vb,SN,mX;S3e({thousands:",",grouping:[3],currency:["$",""]});function S3e(t){return vb=_3e(t),SN=vb.format,mX=vb.formatPrefix,vb}function w3e(t){return Math.max(0,-zp(Math.abs(t)))}function M3e(t,e){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(zp(e)/3)))*3-zp(Math.abs(t)))}function E3e(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,zp(e)-zp(t))+1}function gX(t,e,n,i){var r=F3(t,e,n),a;switch(i=H0(i??",f"),i.type){case"s":{var s=Math.max(Math.abs(t),Math.abs(e));return i.precision==null&&!isNaN(a=M3e(r,s))&&(i.precision=a),mX(i,s)}case"":case"e":case"g":case"p":case"r":{i.precision==null&&!isNaN(a=E3e(r,Math.max(Math.abs(t),Math.abs(e))))&&(i.precision=a-(i.type==="e"));break}case"f":case"%":{i.precision==null&&!isNaN(a=w3e(r))&&(i.precision=a-(i.type==="%")*2);break}}return SN(i)}function Hu(t){var e=t.domain;return t.ticks=function(n){var i=e();return I3(i[0],i[i.length-1],n??10)},t.tickFormat=function(n,i){var r=e();return gX(r[0],r[r.length-1],n??10,i)},t.nice=function(n){n==null&&(n=10);var i=e(),r=0,a=i.length-1,s=i[r],o=i[a],l,c,d=10;for(o<s&&(c=s,s=o,o=c,c=r,r=a,a=c);d-- >0;){if(c=U3(s,o,n),c===l)return i[r]=s,i[a]=o,e(i);if(c>0)s=Math.floor(s/c)*c,o=Math.ceil(o/c)*c;else if(c<0)s=Math.ceil(s*c)/c,o=Math.floor(o*c)/c;else break;l=c}return t},t}function vX(){var t=bN();return t.copy=function(){return yv(t,vX())},Gs.apply(t,arguments),Hu(t)}function xX(t){var e;function n(i){return i==null||isNaN(i=+i)?e:i}return n.invert=n,n.domain=n.range=function(i){return arguments.length?(t=Array.from(i,T1),n):t.slice()},n.unknown=function(i){return arguments.length?(e=i,n):e},n.copy=function(){return xX(t).unknown(e)},t=arguments.length?Array.from(t,T1):[0,1],Hu(n)}function yX(t,e){t=t.slice();var n=0,i=t.length-1,r=t[n],a=t[i],s;return a<r&&(s=n,n=i,i=s,s=r,r=a,a=s),t[n]=e.floor(r),t[i]=e.ceil(a),t}function u8(t){return Math.log(t)}function d8(t){return Math.exp(t)}function A3e(t){return-Math.log(-t)}function T3e(t){return-Math.exp(-t)}function C3e(t){return isFinite(t)?+("1e"+t):t<0?0:t}function R3e(t){return t===10?C3e:t===Math.E?Math.exp:e=>Math.pow(t,e)}function P3e(t){return t===Math.E?Math.log:t===10&&Math.log10||t===2&&Math.log2||(t=Math.log(t),e=>Math.log(e)/t)}function f8(t){return(e,n)=>-t(-e,n)}function wN(t){const e=t(u8,d8),n=e.domain;let i=10,r,a;function s(){return r=P3e(i),a=R3e(i),n()[0]<0?(r=f8(r),a=f8(a),t(A3e,T3e)):t(u8,d8),e}return e.base=function(o){return arguments.length?(i=+o,s()):i},e.domain=function(o){return arguments.length?(n(o),s()):n()},e.ticks=o=>{const l=n();let c=l[0],d=l[l.length-1];const f=d<c;f&&([c,d]=[d,c]);let p=r(c),m=r(d),y,b;const x=o==null?10:+o;let v=[];if(!(i%1)&&m-p<x){if(p=Math.floor(p),m=Math.ceil(m),c>0){for(;p<=m;++p)for(y=1;y<i;++y)if(b=p<0?y/a(-p):y*a(p),!(b<c)){if(b>d)break;v.push(b)}}else for(;p<=m;++p)for(y=i-1;y>=1;--y)if(b=p>0?y/a(-p):y*a(p),!(b<c)){if(b>d)break;v.push(b)}v.length*2<x&&(v=I3(c,d,x))}else v=I3(p,m,Math.min(m-p,x)).map(a);return f?v.reverse():v},e.tickFormat=(o,l)=>{if(o==null&&(o=10),l==null&&(l=i===10?"s":","),typeof l!="function"&&(!(i%1)&&(l=H0(l)).precision==null&&(l.trim=!0),l=SN(l)),o===1/0)return l;const c=Math.max(1,i*o/e.ticks().length);return d=>{let f=d/a(Math.round(r(d)));return f*i<i-.5&&(f*=i),f<=c?l(d):""}},e.nice=()=>n(yX(n(),{floor:o=>a(Math.floor(r(o))),ceil:o=>a(Math.ceil(r(o)))})),e}function bX(){const t=wN(qS()).domain([1,10]);return t.copy=()=>yv(t,bX()).base(t.base()),Gs.apply(t,arguments),t}function h8(t){return function(e){return Math.sign(e)*Math.log1p(Math.abs(e/t))}}function p8(t){return function(e){return Math.sign(e)*Math.expm1(Math.abs(e))*t}}function MN(t){var e=1,n=t(h8(e),p8(e));return n.constant=function(i){return arguments.length?t(h8(e=+i),p8(e)):e},Hu(n)}function _X(){var t=MN(qS());return t.copy=function(){return yv(t,_X()).constant(t.constant())},Gs.apply(t,arguments)}function m8(t){return function(e){return e<0?-Math.pow(-e,t):Math.pow(e,t)}}function D3e(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function N3e(t){return t<0?-t*t:t*t}function EN(t){var e=t(da,da),n=1;function i(){return n===1?t(da,da):n===.5?t(D3e,N3e):t(m8(n),m8(1/n))}return e.exponent=function(r){return arguments.length?(n=+r,i()):n},Hu(e)}function AN(){var t=EN(qS());return t.copy=function(){return yv(t,AN()).exponent(t.exponent())},Gs.apply(t,arguments),t}function O3e(){return AN.apply(null,arguments).exponent(.5)}function g8(t){return Math.sign(t)*t*t}function L3e(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}function SX(){var t=bN(),e=[0,1],n=!1,i;function r(a){var s=L3e(t(a));return isNaN(s)?i:n?Math.round(s):s}return r.invert=function(a){return t.invert(g8(a))},r.domain=function(a){return arguments.length?(t.domain(a),r):t.domain()},r.range=function(a){return arguments.length?(t.range((e=Array.from(a,T1)).map(g8)),r):e.slice()},r.rangeRound=function(a){return r.range(a).round(!0)},r.round=function(a){return arguments.length?(n=!!a,r):n},r.clamp=function(a){return arguments.length?(t.clamp(a),r):t.clamp()},r.unknown=function(a){return arguments.length?(i=a,r):i},r.copy=function(){return SX(t.domain(),e).round(n).clamp(t.clamp()).unknown(i)},Gs.apply(r,arguments),Hu(r)}function wX(){var t=[],e=[],n=[],i;function r(){var s=0,o=Math.max(1,e.length);for(n=new Array(o-1);++s<o;)n[s-1]=FRe(t,s/o);return a}function a(s){return s==null||isNaN(s=+s)?i:e[vv(n,s)]}return a.invertExtent=function(s){var o=e.indexOf(s);return o<0?[NaN,NaN]:[o>0?n[o-1]:t[0],o<n.length?n[o]:t[t.length-1]]},a.domain=function(s){if(!arguments.length)return t.slice();t=[];for(let o of s)o!=null&&!isNaN(o=+o)&&t.push(o);return t.sort(Tu),r()},a.range=function(s){return arguments.length?(e=Array.from(s),r()):e.slice()},a.unknown=function(s){return arguments.length?(i=s,a):i},a.quantiles=function(){return n.slice()},a.copy=function(){return wX().domain(t).range(e).unknown(i)},Gs.apply(a,arguments)}function MX(){var t=0,e=1,n=1,i=[.5],r=[0,1],a;function s(l){return l!=null&&l<=l?r[vv(i,l,0,n)]:a}function o(){var l=-1;for(i=new Array(n);++l<n;)i[l]=((l+1)*e-(l-n)*t)/(n+1);return s}return s.domain=function(l){return arguments.length?([t,e]=l,t=+t,e=+e,o()):[t,e]},s.range=function(l){return arguments.length?(n=(r=Array.from(l)).length-1,o()):r.slice()},s.invertExtent=function(l){var c=r.indexOf(l);return c<0?[NaN,NaN]:c<1?[t,i[0]]:c>=n?[i[n-1],e]:[i[c-1],i[c]]},s.unknown=function(l){return arguments.length&&(a=l),s},s.thresholds=function(){return i.slice()},s.copy=function(){return MX().domain([t,e]).range(r).unknown(a)},Gs.apply(Hu(s),arguments)}function EX(){var t=[.5],e=[0,1],n,i=1;function r(a){return a!=null&&a<=a?e[vv(t,a,0,i)]:n}return r.domain=function(a){return arguments.length?(t=Array.from(a),i=Math.min(t.length,e.length-1),r):t.slice()},r.range=function(a){return arguments.length?(e=Array.from(a),i=Math.min(t.length,e.length-1),r):e.slice()},r.invertExtent=function(a){var s=e.indexOf(a);return[t[s-1],t[s]]},r.unknown=function(a){return arguments.length?(n=a,r):n},r.copy=function(){return EX().domain(t).range(e).unknown(n)},Gs.apply(r,arguments)}const zC=new Date,BC=new Date;function sr(t,e,n,i){function r(a){return t(a=arguments.length===0?new Date:new Date(+a)),a}return r.floor=a=>(t(a=new Date(+a)),a),r.ceil=a=>(t(a=new Date(a-1)),e(a,1),t(a),a),r.round=a=>{const s=r(a),o=r.ceil(a);return a-s<o-a?s:o},r.offset=(a,s)=>(e(a=new Date(+a),s==null?1:Math.floor(s)),a),r.range=(a,s,o)=>{const l=[];if(a=r.ceil(a),o=o==null?1:Math.floor(o),!(a<s)||!(o>0))return l;let c;do l.push(c=new Date(+a)),e(a,o),t(a);while(c<a&&a<s);return l},r.filter=a=>sr(s=>{if(s>=s)for(;t(s),!a(s);)s.setTime(s-1)},(s,o)=>{if(s>=s)if(o<0)for(;++o<=0;)for(;e(s,-1),!a(s););else for(;--o>=0;)for(;e(s,1),!a(s););}),n&&(r.count=(a,s)=>(zC.setTime(+a),BC.setTime(+s),t(zC),t(BC),Math.floor(n(zC,BC))),r.every=a=>(a=Math.floor(a),!isFinite(a)||!(a>0)?null:a>1?r.filter(i?s=>i(s)%a===0:s=>r.count(0,s)%a===0):r)),r}const R1=sr(()=>{},(t,e)=>{t.setTime(+t+e)},(t,e)=>e-t);R1.every=t=>(t=Math.floor(t),!isFinite(t)||!(t>0)?null:t>1?sr(e=>{e.setTime(Math.floor(e/t)*t)},(e,n)=>{e.setTime(+e+n*t)},(e,n)=>(n-e)/t):R1);R1.range;const jl=1e3,ks=jl*60,Hl=ks*60,nc=Hl*24,TN=nc*7,v8=nc*30,jC=nc*365,Ud=sr(t=>{t.setTime(t-t.getMilliseconds())},(t,e)=>{t.setTime(+t+e*jl)},(t,e)=>(e-t)/jl,t=>t.getUTCSeconds());Ud.range;const CN=sr(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*jl)},(t,e)=>{t.setTime(+t+e*ks)},(t,e)=>(e-t)/ks,t=>t.getMinutes());CN.range;const RN=sr(t=>{t.setUTCSeconds(0,0)},(t,e)=>{t.setTime(+t+e*ks)},(t,e)=>(e-t)/ks,t=>t.getUTCMinutes());RN.range;const PN=sr(t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*jl-t.getMinutes()*ks)},(t,e)=>{t.setTime(+t+e*Hl)},(t,e)=>(e-t)/Hl,t=>t.getHours());PN.range;const DN=sr(t=>{t.setUTCMinutes(0,0,0)},(t,e)=>{t.setTime(+t+e*Hl)},(t,e)=>(e-t)/Hl,t=>t.getUTCHours());DN.range;const bv=sr(t=>t.setHours(0,0,0,0),(t,e)=>t.setDate(t.getDate()+e),(t,e)=>(e-t-(e.getTimezoneOffset()-t.getTimezoneOffset())*ks)/nc,t=>t.getDate()-1);bv.range;const XS=sr(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/nc,t=>t.getUTCDate()-1);XS.range;const AX=sr(t=>{t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCDate(t.getUTCDate()+e)},(t,e)=>(e-t)/nc,t=>Math.floor(t/nc));AX.range;function Cf(t){return sr(e=>{e.setDate(e.getDate()-(e.getDay()+7-t)%7),e.setHours(0,0,0,0)},(e,n)=>{e.setDate(e.getDate()+n*7)},(e,n)=>(n-e-(n.getTimezoneOffset()-e.getTimezoneOffset())*ks)/TN)}const YS=Cf(0),P1=Cf(1),k3e=Cf(2),I3e=Cf(3),Bp=Cf(4),U3e=Cf(5),F3e=Cf(6);YS.range;P1.range;k3e.range;I3e.range;Bp.range;U3e.range;F3e.range;function Rf(t){return sr(e=>{e.setUTCDate(e.getUTCDate()-(e.getUTCDay()+7-t)%7),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCDate(e.getUTCDate()+n*7)},(e,n)=>(n-e)/TN)}const KS=Rf(0),D1=Rf(1),z3e=Rf(2),B3e=Rf(3),jp=Rf(4),j3e=Rf(5),H3e=Rf(6);KS.range;D1.range;z3e.range;B3e.range;jp.range;j3e.range;H3e.range;const NN=sr(t=>{t.setDate(1),t.setHours(0,0,0,0)},(t,e)=>{t.setMonth(t.getMonth()+e)},(t,e)=>e.getMonth()-t.getMonth()+(e.getFullYear()-t.getFullYear())*12,t=>t.getMonth());NN.range;const ON=sr(t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCMonth(t.getUTCMonth()+e)},(t,e)=>e.getUTCMonth()-t.getUTCMonth()+(e.getUTCFullYear()-t.getUTCFullYear())*12,t=>t.getUTCMonth());ON.range;const ic=sr(t=>{t.setMonth(0,1),t.setHours(0,0,0,0)},(t,e)=>{t.setFullYear(t.getFullYear()+e)},(t,e)=>e.getFullYear()-t.getFullYear(),t=>t.getFullYear());ic.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:sr(e=>{e.setFullYear(Math.floor(e.getFullYear()/t)*t),e.setMonth(0,1),e.setHours(0,0,0,0)},(e,n)=>{e.setFullYear(e.getFullYear()+n*t)});ic.range;const rc=sr(t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,e)=>{t.setUTCFullYear(t.getUTCFullYear()+e)},(t,e)=>e.getUTCFullYear()-t.getUTCFullYear(),t=>t.getUTCFullYear());rc.every=t=>!isFinite(t=Math.floor(t))||!(t>0)?null:sr(e=>{e.setUTCFullYear(Math.floor(e.getUTCFullYear()/t)*t),e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,n)=>{e.setUTCFullYear(e.getUTCFullYear()+n*t)});rc.range;function TX(t,e,n,i,r,a){const s=[[Ud,1,jl],[Ud,5,5*jl],[Ud,15,15*jl],[Ud,30,30*jl],[a,1,ks],[a,5,5*ks],[a,15,15*ks],[a,30,30*ks],[r,1,Hl],[r,3,3*Hl],[r,6,6*Hl],[r,12,12*Hl],[i,1,nc],[i,2,2*nc],[n,1,TN],[e,1,v8],[e,3,3*v8],[t,1,jC]];function o(c,d,f){const p=d<c;p&&([c,d]=[d,c]);const m=f&&typeof f.range=="function"?f:l(c,d,f),y=m?m.range(c,+d+1):[];return p?y.reverse():y}function l(c,d,f){const p=Math.abs(d-c)/f,m=pN(([,,x])=>x).right(s,p);if(m===s.length)return t.every(F3(c/jC,d/jC,f));if(m===0)return R1.every(Math.max(F3(c,d,f),1));const[y,b]=s[p/s[m-1][2]<s[m][2]/p?m-1:m];return y.every(b)}return[o,l]}const[V3e,G3e]=TX(rc,ON,KS,AX,DN,RN),[$3e,W3e]=TX(ic,NN,YS,bv,PN,CN);function HC(t){if(0<=t.y&&t.y<100){var e=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return e.setFullYear(t.y),e}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function VC(t){if(0<=t.y&&t.y<100){var e=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return e.setUTCFullYear(t.y),e}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function Eg(t,e,n){return{y:t,m:e,d:n,H:0,M:0,S:0,L:0}}function q3e(t){var e=t.dateTime,n=t.date,i=t.time,r=t.periods,a=t.days,s=t.shortDays,o=t.months,l=t.shortMonths,c=Ag(r),d=Tg(r),f=Ag(a),p=Tg(a),m=Ag(s),y=Tg(s),b=Ag(o),x=Tg(o),v=Ag(l),w=Tg(l),M={a:G,A:Y,b:Q,B:se,c:null,d:w8,e:w8,f:gPe,g:APe,G:CPe,H:hPe,I:pPe,j:mPe,L:CX,m:vPe,M:xPe,p:H,q:X,Q:A8,s:T8,S:yPe,u:bPe,U:_Pe,V:SPe,w:wPe,W:MPe,x:null,X:null,y:EPe,Y:TPe,Z:RPe,"%":E8},A={a:re,A:ce,b:ye,B:me,c:null,d:M8,e:M8,f:OPe,g:VPe,G:$Pe,H:PPe,I:DPe,j:NPe,L:PX,m:LPe,M:kPe,p:be,q:Ne,Q:A8,s:T8,S:IPe,u:UPe,U:FPe,V:zPe,w:BPe,W:jPe,x:null,X:null,y:HPe,Y:GPe,Z:WPe,"%":E8},T={a:k,A:B,b:I,B:W,c:O,d:_8,e:_8,f:cPe,g:b8,G:y8,H:S8,I:S8,j:aPe,L:lPe,m:rPe,M:sPe,p:P,q:iPe,Q:dPe,s:fPe,S:oPe,u:J3e,U:Q3e,V:ePe,w:Z3e,W:tPe,x:$,X:q,y:b8,Y:y8,Z:nPe,"%":uPe};M.x=D(n,M),M.X=D(i,M),M.c=D(e,M),A.x=D(n,A),A.X=D(i,A),A.c=D(e,A);function D(he,Ae){return function(Be){var le=[],ct=-1,z=0,V=he.length,ne,J,ee;for(Be instanceof Date||(Be=new Date(+Be));++ct<V;)he.charCodeAt(ct)===37&&(le.push(he.slice(z,ct)),(J=x8[ne=he.charAt(++ct)])!=null?ne=he.charAt(++ct):J=ne==="e"?" ":"0",(ee=Ae[ne])&&(ne=ee(Be,J)),le.push(ne),z=ct+1);return le.push(he.slice(z,ct)),le.join("")}}function C(he,Ae){return function(Be){var le=Eg(1900,void 0,1),ct=U(le,he,Be+="",0),z,V;if(ct!=Be.length)return null;if("Q"in le)return new Date(le.Q);if("s"in le)return new Date(le.s*1e3+("L"in le?le.L:0));if(Ae&&!("Z"in le)&&(le.Z=0),"p"in le&&(le.H=le.H%12+le.p*12),le.m===void 0&&(le.m="q"in le?le.q:0),"V"in le){if(le.V<1||le.V>53)return null;"w"in le||(le.w=1),"Z"in le?(z=VC(Eg(le.y,0,1)),V=z.getUTCDay(),z=V>4||V===0?D1.ceil(z):D1(z),z=XS.offset(z,(le.V-1)*7),le.y=z.getUTCFullYear(),le.m=z.getUTCMonth(),le.d=z.getUTCDate()+(le.w+6)%7):(z=HC(Eg(le.y,0,1)),V=z.getDay(),z=V>4||V===0?P1.ceil(z):P1(z),z=bv.offset(z,(le.V-1)*7),le.y=z.getFullYear(),le.m=z.getMonth(),le.d=z.getDate()+(le.w+6)%7)}else("W"in le||"U"in le)&&("w"in le||(le.w="u"in le?le.u%7:"W"in le?1:0),V="Z"in le?VC(Eg(le.y,0,1)).getUTCDay():HC(Eg(le.y,0,1)).getDay(),le.m=0,le.d="W"in le?(le.w+6)%7+le.W*7-(V+5)%7:le.w+le.U*7-(V+6)%7);return"Z"in le?(le.H+=le.Z/100|0,le.M+=le.Z%100,VC(le)):HC(le)}}function U(he,Ae,Be,le){for(var ct=0,z=Ae.length,V=Be.length,ne,J;ct<z;){if(le>=V)return-1;if(ne=Ae.charCodeAt(ct++),ne===37){if(ne=Ae.charAt(ct++),J=T[ne in x8?Ae.charAt(ct++):ne],!J||(le=J(he,Be,le))<0)return-1}else if(ne!=Be.charCodeAt(le++))return-1}return le}function P(he,Ae,Be){var le=c.exec(Ae.slice(Be));return le?(he.p=d.get(le[0].toLowerCase()),Be+le[0].length):-1}function k(he,Ae,Be){var le=m.exec(Ae.slice(Be));return le?(he.w=y.get(le[0].toLowerCase()),Be+le[0].length):-1}function B(he,Ae,Be){var le=f.exec(Ae.slice(Be));return le?(he.w=p.get(le[0].toLowerCase()),Be+le[0].length):-1}function I(he,Ae,Be){var le=v.exec(Ae.slice(Be));return le?(he.m=w.get(le[0].toLowerCase()),Be+le[0].length):-1}function W(he,Ae,Be){var le=b.exec(Ae.slice(Be));return le?(he.m=x.get(le[0].toLowerCase()),Be+le[0].length):-1}function O(he,Ae,Be){return U(he,e,Ae,Be)}function $(he,Ae,Be){return U(he,n,Ae,Be)}function q(he,Ae,Be){return U(he,i,Ae,Be)}function G(he){return s[he.getDay()]}function Y(he){return a[he.getDay()]}function Q(he){return l[he.getMonth()]}function se(he){return o[he.getMonth()]}function H(he){return r[+(he.getHours()>=12)]}function X(he){return 1+~~(he.getMonth()/3)}function re(he){return s[he.getUTCDay()]}function ce(he){return a[he.getUTCDay()]}function ye(he){return l[he.getUTCMonth()]}function me(he){return o[he.getUTCMonth()]}function be(he){return r[+(he.getUTCHours()>=12)]}function Ne(he){return 1+~~(he.getUTCMonth()/3)}return{format:function(he){var Ae=D(he+="",M);return Ae.toString=function(){return he},Ae},parse:function(he){var Ae=C(he+="",!1);return Ae.toString=function(){return he},Ae},utcFormat:function(he){var Ae=D(he+="",A);return Ae.toString=function(){return he},Ae},utcParse:function(he){var Ae=C(he+="",!0);return Ae.toString=function(){return he},Ae}}}var x8={"-":"",_:" ",0:"0"},Mr=/^\s*\d+/,X3e=/^%/,Y3e=/[\\^$*+?|[\]().{}]/g;function bn(t,e,n){var i=t<0?"-":"",r=(i?-t:t)+"",a=r.length;return i+(a<n?new Array(n-a+1).join(e)+r:r)}function K3e(t){return t.replace(Y3e,"\\$&")}function Ag(t){return new RegExp("^(?:"+t.map(K3e).join("|")+")","i")}function Tg(t){return new Map(t.map((e,n)=>[e.toLowerCase(),n]))}function Z3e(t,e,n){var i=Mr.exec(e.slice(n,n+1));return i?(t.w=+i[0],n+i[0].length):-1}function J3e(t,e,n){var i=Mr.exec(e.slice(n,n+1));return i?(t.u=+i[0],n+i[0].length):-1}function Q3e(t,e,n){var i=Mr.exec(e.slice(n,n+2));return i?(t.U=+i[0],n+i[0].length):-1}function ePe(t,e,n){var i=Mr.exec(e.slice(n,n+2));return i?(t.V=+i[0],n+i[0].length):-1}function tPe(t,e,n){var i=Mr.exec(e.slice(n,n+2));return i?(t.W=+i[0],n+i[0].length):-1}function y8(t,e,n){var i=Mr.exec(e.slice(n,n+4));return i?(t.y=+i[0],n+i[0].length):-1}function b8(t,e,n){var i=Mr.exec(e.slice(n,n+2));return i?(t.y=+i[0]+(+i[0]>68?1900:2e3),n+i[0].length):-1}function nPe(t,e,n){var i=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n,n+6));return i?(t.Z=i[1]?0:-(i[2]+(i[3]||"00")),n+i[0].length):-1}function iPe(t,e,n){var i=Mr.exec(e.slice(n,n+1));return i?(t.q=i[0]*3-3,n+i[0].length):-1}function rPe(t,e,n){var i=Mr.exec(e.slice(n,n+2));return i?(t.m=i[0]-1,n+i[0].length):-1}function _8(t,e,n){var i=Mr.exec(e.slice(n,n+2));return i?(t.d=+i[0],n+i[0].length):-1}function aPe(t,e,n){var i=Mr.exec(e.slice(n,n+3));return i?(t.m=0,t.d=+i[0],n+i[0].length):-1}function S8(t,e,n){var i=Mr.exec(e.slice(n,n+2));return i?(t.H=+i[0],n+i[0].length):-1}function sPe(t,e,n){var i=Mr.exec(e.slice(n,n+2));return i?(t.M=+i[0],n+i[0].length):-1}function oPe(t,e,n){var i=Mr.exec(e.slice(n,n+2));return i?(t.S=+i[0],n+i[0].length):-1}function lPe(t,e,n){var i=Mr.exec(e.slice(n,n+3));return i?(t.L=+i[0],n+i[0].length):-1}function cPe(t,e,n){var i=Mr.exec(e.slice(n,n+6));return i?(t.L=Math.floor(i[0]/1e3),n+i[0].length):-1}function uPe(t,e,n){var i=X3e.exec(e.slice(n,n+1));return i?n+i[0].length:-1}function dPe(t,e,n){var i=Mr.exec(e.slice(n));return i?(t.Q=+i[0],n+i[0].length):-1}function fPe(t,e,n){var i=Mr.exec(e.slice(n));return i?(t.s=+i[0],n+i[0].length):-1}function w8(t,e){return bn(t.getDate(),e,2)}function hPe(t,e){return bn(t.getHours(),e,2)}function pPe(t,e){return bn(t.getHours()%12||12,e,2)}function mPe(t,e){return bn(1+bv.count(ic(t),t),e,3)}function CX(t,e){return bn(t.getMilliseconds(),e,3)}function gPe(t,e){return CX(t,e)+"000"}function vPe(t,e){return bn(t.getMonth()+1,e,2)}function xPe(t,e){return bn(t.getMinutes(),e,2)}function yPe(t,e){return bn(t.getSeconds(),e,2)}function bPe(t){var e=t.getDay();return e===0?7:e}function _Pe(t,e){return bn(YS.count(ic(t)-1,t),e,2)}function RX(t){var e=t.getDay();return e>=4||e===0?Bp(t):Bp.ceil(t)}function SPe(t,e){return t=RX(t),bn(Bp.count(ic(t),t)+(ic(t).getDay()===4),e,2)}function wPe(t){return t.getDay()}function MPe(t,e){return bn(P1.count(ic(t)-1,t),e,2)}function EPe(t,e){return bn(t.getFullYear()%100,e,2)}function APe(t,e){return t=RX(t),bn(t.getFullYear()%100,e,2)}function TPe(t,e){return bn(t.getFullYear()%1e4,e,4)}function CPe(t,e){var n=t.getDay();return t=n>=4||n===0?Bp(t):Bp.ceil(t),bn(t.getFullYear()%1e4,e,4)}function RPe(t){var e=t.getTimezoneOffset();return(e>0?"-":(e*=-1,"+"))+bn(e/60|0,"0",2)+bn(e%60,"0",2)}function M8(t,e){return bn(t.getUTCDate(),e,2)}function PPe(t,e){return bn(t.getUTCHours(),e,2)}function DPe(t,e){return bn(t.getUTCHours()%12||12,e,2)}function NPe(t,e){return bn(1+XS.count(rc(t),t),e,3)}function PX(t,e){return bn(t.getUTCMilliseconds(),e,3)}function OPe(t,e){return PX(t,e)+"000"}function LPe(t,e){return bn(t.getUTCMonth()+1,e,2)}function kPe(t,e){return bn(t.getUTCMinutes(),e,2)}function IPe(t,e){return bn(t.getUTCSeconds(),e,2)}function UPe(t){var e=t.getUTCDay();return e===0?7:e}function FPe(t,e){return bn(KS.count(rc(t)-1,t),e,2)}function DX(t){var e=t.getUTCDay();return e>=4||e===0?jp(t):jp.ceil(t)}function zPe(t,e){return t=DX(t),bn(jp.count(rc(t),t)+(rc(t).getUTCDay()===4),e,2)}function BPe(t){return t.getUTCDay()}function jPe(t,e){return bn(D1.count(rc(t)-1,t),e,2)}function HPe(t,e){return bn(t.getUTCFullYear()%100,e,2)}function VPe(t,e){return t=DX(t),bn(t.getUTCFullYear()%100,e,2)}function GPe(t,e){return bn(t.getUTCFullYear()%1e4,e,4)}function $Pe(t,e){var n=t.getUTCDay();return t=n>=4||n===0?jp(t):jp.ceil(t),bn(t.getUTCFullYear()%1e4,e,4)}function WPe(){return"+0000"}function E8(){return"%"}function A8(t){return+t}function T8(t){return Math.floor(+t/1e3)}var Hh,NX,OX;qPe({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function qPe(t){return Hh=q3e(t),NX=Hh.format,Hh.parse,OX=Hh.utcFormat,Hh.utcParse,Hh}function XPe(t){return new Date(t)}function YPe(t){return t instanceof Date?+t:+new Date(+t)}function LN(t,e,n,i,r,a,s,o,l,c){var d=bN(),f=d.invert,p=d.domain,m=c(".%L"),y=c(":%S"),b=c("%I:%M"),x=c("%I %p"),v=c("%a %d"),w=c("%b %d"),M=c("%B"),A=c("%Y");function T(D){return(l(D)<D?m:o(D)<D?y:s(D)<D?b:a(D)<D?x:i(D)<D?r(D)<D?v:w:n(D)<D?M:A)(D)}return d.invert=function(D){return new Date(f(D))},d.domain=function(D){return arguments.length?p(Array.from(D,YPe)):p().map(XPe)},d.ticks=function(D){var C=p();return t(C[0],C[C.length-1],D??10)},d.tickFormat=function(D,C){return C==null?T:c(C)},d.nice=function(D){var C=p();return(!D||typeof D.range!="function")&&(D=e(C[0],C[C.length-1],D??10)),D?p(yX(C,D)):d},d.copy=function(){return yv(d,LN(t,e,n,i,r,a,s,o,l,c))},d}function KPe(){return Gs.apply(LN($3e,W3e,ic,NN,YS,bv,PN,CN,Ud,NX).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function ZPe(){return Gs.apply(LN(V3e,G3e,rc,ON,KS,XS,DN,RN,Ud,OX).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function ZS(){var t=0,e=1,n,i,r,a,s=da,o=!1,l;function c(f){return f==null||isNaN(f=+f)?l:s(r===0?.5:(f=(a(f)-n)*r,o?Math.max(0,Math.min(1,f)):f))}c.domain=function(f){return arguments.length?([t,e]=f,n=a(t=+t),i=a(e=+e),r=n===i?0:1/(i-n),c):[t,e]},c.clamp=function(f){return arguments.length?(o=!!f,c):o},c.interpolator=function(f){return arguments.length?(s=f,c):s};function d(f){return function(p){var m,y;return arguments.length?([m,y]=p,s=f(m,y),c):[s(0),s(1)]}}return c.range=d(im),c.rangeRound=d(yN),c.unknown=function(f){return arguments.length?(l=f,c):l},function(f){return a=f,n=f(t),i=f(e),r=n===i?0:1/(i-n),c}}function Vu(t,e){return e.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function LX(){var t=Hu(ZS()(da));return t.copy=function(){return Vu(t,LX())},dc.apply(t,arguments)}function kX(){var t=wN(ZS()).domain([1,10]);return t.copy=function(){return Vu(t,kX()).base(t.base())},dc.apply(t,arguments)}function IX(){var t=MN(ZS());return t.copy=function(){return Vu(t,IX()).constant(t.constant())},dc.apply(t,arguments)}function kN(){var t=EN(ZS());return t.copy=function(){return Vu(t,kN()).exponent(t.exponent())},dc.apply(t,arguments)}function JPe(){return kN.apply(null,arguments).exponent(.5)}function UX(){var t=[],e=da;function n(i){if(i!=null&&!isNaN(i=+i))return e((vv(t,i,1)-1)/(t.length-1))}return n.domain=function(i){if(!arguments.length)return t.slice();t=[];for(let r of i)r!=null&&!isNaN(r=+r)&&t.push(r);return t.sort(Tu),n},n.interpolator=function(i){return arguments.length?(e=i,n):e},n.range=function(){return t.map((i,r)=>e(r/(t.length-1)))},n.quantiles=function(i){return Array.from({length:i+1},(r,a)=>URe(t,a/i))},n.copy=function(){return UX(e).domain(t)},dc.apply(n,arguments)}function JS(){var t=0,e=.5,n=1,i=1,r,a,s,o,l,c=da,d,f=!1,p;function m(b){return isNaN(b=+b)?p:(b=.5+((b=+d(b))-a)*(i*b<i*a?o:l),c(f?Math.max(0,Math.min(1,b)):b))}m.domain=function(b){return arguments.length?([t,e,n]=b,r=d(t=+t),a=d(e=+e),s=d(n=+n),o=r===a?0:.5/(a-r),l=a===s?0:.5/(s-a),i=a<r?-1:1,m):[t,e,n]},m.clamp=function(b){return arguments.length?(f=!!b,m):f},m.interpolator=function(b){return arguments.length?(c=b,m):c};function y(b){return function(x){var v,w,M;return arguments.length?([v,w,M]=x,c=u3e(b,[v,w,M]),m):[c(0),c(.5),c(1)]}}return m.range=y(im),m.rangeRound=y(yN),m.unknown=function(b){return arguments.length?(p=b,m):p},function(b){return d=b,r=b(t),a=b(e),s=b(n),o=r===a?0:.5/(a-r),l=a===s?0:.5/(s-a),i=a<r?-1:1,m}}function FX(){var t=Hu(JS()(da));return t.copy=function(){return Vu(t,FX())},dc.apply(t,arguments)}function zX(){var t=wN(JS()).domain([.1,1,10]);return t.copy=function(){return Vu(t,zX()).base(t.base())},dc.apply(t,arguments)}function BX(){var t=MN(JS());return t.copy=function(){return Vu(t,BX()).constant(t.constant())},dc.apply(t,arguments)}function IN(){var t=EN(JS());return t.copy=function(){return Vu(t,IN()).exponent(t.exponent())},dc.apply(t,arguments)}function QPe(){return IN.apply(null,arguments).exponent(.5)}const Fg=Object.freeze(Object.defineProperty({__proto__:null,scaleBand:gN,scaleDiverging:FX,scaleDivergingLog:zX,scaleDivergingPow:IN,scaleDivergingSqrt:QPe,scaleDivergingSymlog:BX,scaleIdentity:xX,scaleImplicit:z3,scaleLinear:vX,scaleLog:bX,scaleOrdinal:mN,scalePoint:BRe,scalePow:AN,scaleQuantile:wX,scaleQuantize:MX,scaleRadial:SX,scaleSequential:LX,scaleSequentialLog:kX,scaleSequentialPow:kN,scaleSequentialQuantile:UX,scaleSequentialSqrt:JPe,scaleSequentialSymlog:IX,scaleSqrt:O3e,scaleSymlog:_X,scaleThreshold:EX,scaleTime:KPe,scaleUtc:ZPe,tickFormat:gX},Symbol.toStringTag,{value:"Module"}));var Gu=t=>t.chartData,UN=He([Gu],t=>{var e=t.chartData!=null?t.chartData.length-1:0;return{chartData:t.chartData,computedData:t.computedData,dataEndIndex:e,dataStartIndex:0}}),QS=(t,e,n,i)=>i?UN(t):Gu(t);function Lu(t){if(Array.isArray(t)&&t.length===2){var[e,n]=t;if(Qn(e)&&Qn(n))return!0}return!1}function C8(t,e,n){return n?t:[Math.min(t[0],e[0]),Math.max(t[1],e[1])]}function jX(t,e){if(e&&typeof t!="function"&&Array.isArray(t)&&t.length===2){var[n,i]=t,r,a;if(Qn(n))r=n;else if(typeof n=="function")return;if(Qn(i))a=i;else if(typeof i=="function")return;var s=[r,a];if(Lu(s))return s}}function eDe(t,e,n){if(!(!n&&e==null)){if(typeof t=="function"&&e!=null)try{var i=t(e,n);if(Lu(i))return C8(i,e,n)}catch{}if(Array.isArray(t)&&t.length===2){var[r,a]=t,s,o;if(r==="auto")e!=null&&(s=Math.min(...e));else if(St(r))s=r;else if(typeof r=="function")try{e!=null&&(s=r(e?.[0]))}catch{}else if(typeof r=="string"&&nH.test(r)){var l=nH.exec(r);if(l==null||e==null)s=void 0;else{var c=+l[1];s=e[0]-c}}else s=e?.[0];if(a==="auto")e!=null&&(o=Math.max(...e));else if(St(a))o=a;else if(typeof a=="function")try{e!=null&&(o=a(e?.[1]))}catch{}else if(typeof a=="string"&&iH.test(a)){var d=iH.exec(a);if(d==null||e==null)o=void 0;else{var f=+d[1];o=e[1]+f}}else o=e?.[1];var p=[s,o];if(Lu(p))return e==null?p:C8(p,e,n)}}}var rm=1e9,tDe={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},zN,ni=!0,Hs="[DecimalError] ",Zd=Hs+"Invalid argument: ",FN=Hs+"Exponent out of range: ",am=Math.floor,wd=Math.pow,nDe=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,es,xr=1e7,Zn=7,HX=9007199254740991,N1=am(HX/Zn),Mt={};Mt.absoluteValue=Mt.abs=function(){var t=new this.constructor(this);return t.s&&(t.s=1),t};Mt.comparedTo=Mt.cmp=function(t){var e,n,i,r,a=this;if(t=new a.constructor(t),a.s!==t.s)return a.s||-t.s;if(a.e!==t.e)return a.e>t.e^a.s<0?1:-1;for(i=a.d.length,r=t.d.length,e=0,n=i<r?i:r;e<n;++e)if(a.d[e]!==t.d[e])return a.d[e]>t.d[e]^a.s<0?1:-1;return i===r?0:i>r^a.s<0?1:-1};Mt.decimalPlaces=Mt.dp=function(){var t=this,e=t.d.length-1,n=(e-t.e)*Zn;if(e=t.d[e],e)for(;e%10==0;e/=10)n--;return n<0?0:n};Mt.dividedBy=Mt.div=function(t){return Yl(this,new this.constructor(t))};Mt.dividedToIntegerBy=Mt.idiv=function(t){var e=this,n=e.constructor;return Vn(Yl(e,new n(t),0,1),n.precision)};Mt.equals=Mt.eq=function(t){return!this.cmp(t)};Mt.exponent=function(){return ji(this)};Mt.greaterThan=Mt.gt=function(t){return this.cmp(t)>0};Mt.greaterThanOrEqualTo=Mt.gte=function(t){return this.cmp(t)>=0};Mt.isInteger=Mt.isint=function(){return this.e>this.d.length-2};Mt.isNegative=Mt.isneg=function(){return this.s<0};Mt.isPositive=Mt.ispos=function(){return this.s>0};Mt.isZero=function(){return this.s===0};Mt.lessThan=Mt.lt=function(t){return this.cmp(t)<0};Mt.lessThanOrEqualTo=Mt.lte=function(t){return this.cmp(t)<1};Mt.logarithm=Mt.log=function(t){var e,n=this,i=n.constructor,r=i.precision,a=r+5;if(t===void 0)t=new i(10);else if(t=new i(t),t.s<1||t.eq(es))throw Error(Hs+"NaN");if(n.s<1)throw Error(Hs+(n.s?"NaN":"-Infinity"));return n.eq(es)?new i(0):(ni=!1,e=Yl(V0(n,a),V0(t,a),a),ni=!0,Vn(e,r))};Mt.minus=Mt.sub=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?$X(e,t):VX(e,(t.s=-t.s,t))};Mt.modulo=Mt.mod=function(t){var e,n=this,i=n.constructor,r=i.precision;if(t=new i(t),!t.s)throw Error(Hs+"NaN");return n.s?(ni=!1,e=Yl(n,t,0,1).times(t),ni=!0,n.minus(e)):Vn(new i(n),r)};Mt.naturalExponential=Mt.exp=function(){return GX(this)};Mt.naturalLogarithm=Mt.ln=function(){return V0(this)};Mt.negated=Mt.neg=function(){var t=new this.constructor(this);return t.s=-t.s||0,t};Mt.plus=Mt.add=function(t){var e=this;return t=new e.constructor(t),e.s==t.s?VX(e,t):$X(e,(t.s=-t.s,t))};Mt.precision=Mt.sd=function(t){var e,n,i,r=this;if(t!==void 0&&t!==!!t&&t!==1&&t!==0)throw Error(Zd+t);if(e=ji(r)+1,i=r.d.length-1,n=i*Zn+1,i=r.d[i],i){for(;i%10==0;i/=10)n--;for(i=r.d[0];i>=10;i/=10)n++}return t&&e>n?e:n};Mt.squareRoot=Mt.sqrt=function(){var t,e,n,i,r,a,s,o=this,l=o.constructor;if(o.s<1){if(!o.s)return new l(0);throw Error(Hs+"NaN")}for(t=ji(o),ni=!1,r=Math.sqrt(+o),r==0||r==1/0?(e=ko(o.d),(e.length+t)%2==0&&(e+="0"),r=Math.sqrt(e),t=am((t+1)/2)-(t<0||t%2),r==1/0?e="5e"+t:(e=r.toExponential(),e=e.slice(0,e.indexOf("e")+1)+t),i=new l(e)):i=new l(r.toString()),n=l.precision,r=s=n+3;;)if(a=i,i=a.plus(Yl(o,a,s+2)).times(.5),ko(a.d).slice(0,s)===(e=ko(i.d)).slice(0,s)){if(e=e.slice(s-3,s+1),r==s&&e=="4999"){if(Vn(a,n+1,0),a.times(a).eq(o)){i=a;break}}else if(e!="9999")break;s+=4}return ni=!0,Vn(i,n)};Mt.times=Mt.mul=function(t){var e,n,i,r,a,s,o,l,c,d=this,f=d.constructor,p=d.d,m=(t=new f(t)).d;if(!d.s||!t.s)return new f(0);for(t.s*=d.s,n=d.e+t.e,l=p.length,c=m.length,l<c&&(a=p,p=m,m=a,s=l,l=c,c=s),a=[],s=l+c,i=s;i--;)a.push(0);for(i=c;--i>=0;){for(e=0,r=l+i;r>i;)o=a[r]+m[i]*p[r-i-1]+e,a[r--]=o%xr|0,e=o/xr|0;a[r]=(a[r]+e)%xr|0}for(;!a[--s];)a.pop();return e?++n:a.shift(),t.d=a,t.e=n,ni?Vn(t,f.precision):t};Mt.toDecimalPlaces=Mt.todp=function(t,e){var n=this,i=n.constructor;return n=new i(n),t===void 0?n:($o(t,0,rm),e===void 0?e=i.rounding:$o(e,0,8),Vn(n,t+ji(n)+1,e))};Mt.toExponential=function(t,e){var n,i=this,r=i.constructor;return t===void 0?n=bf(i,!0):($o(t,0,rm),e===void 0?e=r.rounding:$o(e,0,8),i=Vn(new r(i),t+1,e),n=bf(i,!0,t+1)),n};Mt.toFixed=function(t,e){var n,i,r=this,a=r.constructor;return t===void 0?bf(r):($o(t,0,rm),e===void 0?e=a.rounding:$o(e,0,8),i=Vn(new a(r),t+ji(r)+1,e),n=bf(i.abs(),!1,t+ji(i)+1),r.isneg()&&!r.isZero()?"-"+n:n)};Mt.toInteger=Mt.toint=function(){var t=this,e=t.constructor;return Vn(new e(t),ji(t)+1,e.rounding)};Mt.toNumber=function(){return+this};Mt.toPower=Mt.pow=function(t){var e,n,i,r,a,s,o=this,l=o.constructor,c=12,d=+(t=new l(t));if(!t.s)return new l(es);if(o=new l(o),!o.s){if(t.s<1)throw Error(Hs+"Infinity");return o}if(o.eq(es))return o;if(i=l.precision,t.eq(es))return Vn(o,i);if(e=t.e,n=t.d.length-1,s=e>=n,a=o.s,s){if((n=d<0?-d:d)<=HX){for(r=new l(es),e=Math.ceil(i/Zn+4),ni=!1;n%2&&(r=r.times(o),P8(r.d,e)),n=am(n/2),n!==0;)o=o.times(o),P8(o.d,e);return ni=!0,t.s<0?new l(es).div(r):Vn(r,i)}}else if(a<0)throw Error(Hs+"NaN");return a=a<0&&t.d[Math.max(e,n)]&1?-1:1,o.s=1,ni=!1,r=t.times(V0(o,i+c)),ni=!0,r=GX(r),r.s=a,r};Mt.toPrecision=function(t,e){var n,i,r=this,a=r.constructor;return t===void 0?(n=ji(r),i=bf(r,n<=a.toExpNeg||n>=a.toExpPos)):($o(t,1,rm),e===void 0?e=a.rounding:$o(e,0,8),r=Vn(new a(r),t,e),n=ji(r),i=bf(r,t<=n||n<=a.toExpNeg,t)),i};Mt.toSignificantDigits=Mt.tosd=function(t,e){var n=this,i=n.constructor;return t===void 0?(t=i.precision,e=i.rounding):($o(t,1,rm),e===void 0?e=i.rounding:$o(e,0,8)),Vn(new i(n),t,e)};Mt.toString=Mt.valueOf=Mt.val=Mt.toJSON=Mt[Symbol.for("nodejs.util.inspect.custom")]=function(){var t=this,e=ji(t),n=t.constructor;return bf(t,e<=n.toExpNeg||e>=n.toExpPos)};function VX(t,e){var n,i,r,a,s,o,l,c,d=t.constructor,f=d.precision;if(!t.s||!e.s)return e.s||(e=new d(t)),ni?Vn(e,f):e;if(l=t.d,c=e.d,s=t.e,r=e.e,l=l.slice(),a=s-r,a){for(a<0?(i=l,a=-a,o=c.length):(i=c,r=s,o=l.length),s=Math.ceil(f/Zn),o=s>o?s+1:o+1,a>o&&(a=o,i.length=1),i.reverse();a--;)i.push(0);i.reverse()}for(o=l.length,a=c.length,o-a<0&&(a=o,i=c,c=l,l=i),n=0;a;)n=(l[--a]=l[a]+c[a]+n)/xr|0,l[a]%=xr;for(n&&(l.unshift(n),++r),o=l.length;l[--o]==0;)l.pop();return e.d=l,e.e=r,ni?Vn(e,f):e}function $o(t,e,n){if(t!==~~t||t<e||t>n)throw Error(Zd+t)}function ko(t){var e,n,i,r=t.length-1,a="",s=t[0];if(r>0){for(a+=s,e=1;e<r;e++)i=t[e]+"",n=Zn-i.length,n&&(a+=au(n)),a+=i;s=t[e],i=s+"",n=Zn-i.length,n&&(a+=au(n))}else if(s===0)return"0";for(;s%10===0;)s/=10;return a+s}var Yl=(function(){function t(i,r){var a,s=0,o=i.length;for(i=i.slice();o--;)a=i[o]*r+s,i[o]=a%xr|0,s=a/xr|0;return s&&i.unshift(s),i}function e(i,r,a,s){var o,l;if(a!=s)l=a>s?1:-1;else for(o=l=0;o<a;o++)if(i[o]!=r[o]){l=i[o]>r[o]?1:-1;break}return l}function n(i,r,a){for(var s=0;a--;)i[a]-=s,s=i[a]<r[a]?1:0,i[a]=s*xr+i[a]-r[a];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,a,s){var o,l,c,d,f,p,m,y,b,x,v,w,M,A,T,D,C,U,P=i.constructor,k=i.s==r.s?1:-1,B=i.d,I=r.d;if(!i.s)return new P(i);if(!r.s)throw Error(Hs+"Division by zero");for(l=i.e-r.e,C=I.length,T=B.length,m=new P(k),y=m.d=[],c=0;I[c]==(B[c]||0);)++c;if(I[c]>(B[c]||0)&&--l,a==null?w=a=P.precision:s?w=a+(ji(i)-ji(r))+1:w=a,w<0)return new P(0);if(w=w/Zn+2|0,c=0,C==1)for(d=0,I=I[0],w++;(c<T||d)&&w--;c++)M=d*xr+(B[c]||0),y[c]=M/I|0,d=M%I|0;else{for(d=xr/(I[0]+1)|0,d>1&&(I=t(I,d),B=t(B,d),C=I.length,T=B.length),A=C,b=B.slice(0,C),x=b.length;x<C;)b[x++]=0;U=I.slice(),U.unshift(0),D=I[0],I[1]>=xr/2&&++D;do d=0,o=e(I,b,C,x),o<0?(v=b[0],C!=x&&(v=v*xr+(b[1]||0)),d=v/D|0,d>1?(d>=xr&&(d=xr-1),f=t(I,d),p=f.length,x=b.length,o=e(f,b,p,x),o==1&&(d--,n(f,C<p?U:I,p))):(d==0&&(o=d=1),f=I.slice()),p=f.length,p<x&&f.unshift(0),n(b,f,x),o==-1&&(x=b.length,o=e(I,b,C,x),o<1&&(d++,n(b,C<x?U:I,x))),x=b.length):o===0&&(d++,b=[0]),y[c++]=d,o&&b[0]?b[x++]=B[A]||0:(b=[B[A]],x=1);while((A++<T||b[0]!==void 0)&&w--)}return y[0]||y.shift(),m.e=l,Vn(m,s?a+ji(m)+1:a)}})();function GX(t,e){var n,i,r,a,s,o,l=0,c=0,d=t.constructor,f=d.precision;if(ji(t)>16)throw Error(FN+ji(t));if(!t.s)return new d(es);for(ni=!1,o=f,s=new d(.03125);t.abs().gte(.1);)t=t.times(s),c+=5;for(i=Math.log(wd(2,c))/Math.LN10*2+5|0,o+=i,n=r=a=new d(es),d.precision=o;;){if(r=Vn(r.times(t),o),n=n.times(++l),s=a.plus(Yl(r,n,o)),ko(s.d).slice(0,o)===ko(a.d).slice(0,o)){for(;c--;)a=Vn(a.times(a),o);return d.precision=f,e==null?(ni=!0,Vn(a,f)):a}a=s}}function ji(t){for(var e=t.e*Zn,n=t.d[0];n>=10;n/=10)e++;return e}function GC(t,e,n){if(e>t.LN10.sd())throw ni=!0,n&&(t.precision=n),Error(Hs+"LN10 precision limit exceeded");return Vn(new t(t.LN10),e)}function au(t){for(var e="";t--;)e+="0";return e}function V0(t,e){var n,i,r,a,s,o,l,c,d,f=1,p=10,m=t,y=m.d,b=m.constructor,x=b.precision;if(m.s<1)throw Error(Hs+(m.s?"NaN":"-Infinity"));if(m.eq(es))return new b(0);if(e==null?(ni=!1,c=x):c=e,m.eq(10))return e==null&&(ni=!0),GC(b,c);if(c+=p,b.precision=c,n=ko(y),i=n.charAt(0),a=ji(m),Math.abs(a)<15e14){for(;i<7&&i!=1||i==1&&n.charAt(1)>3;)m=m.times(t),n=ko(m.d),i=n.charAt(0),f++;a=ji(m),i>1?(m=new b("0."+n),a++):m=new b(i+"."+n.slice(1))}else return l=GC(b,c+2,x).times(a+""),m=V0(new b(i+"."+n.slice(1)),c-p).plus(l),b.precision=x,e==null?(ni=!0,Vn(m,x)):m;for(o=s=m=Yl(m.minus(es),m.plus(es),c),d=Vn(m.times(m),c),r=3;;){if(s=Vn(s.times(d),c),l=o.plus(Yl(s,new b(r),c)),ko(l.d).slice(0,c)===ko(o.d).slice(0,c))return o=o.times(2),a!==0&&(o=o.plus(GC(b,c+2,x).times(a+""))),o=Yl(o,new b(f),c),b.precision=x,e==null?(ni=!0,Vn(o,x)):o;o=l,r+=2}}function R8(t,e){var n,i,r;for((n=e.indexOf("."))>-1&&(e=e.replace(".","")),(i=e.search(/e/i))>0?(n<0&&(n=i),n+=+e.slice(i+1),e=e.substring(0,i)):n<0&&(n=e.length),i=0;e.charCodeAt(i)===48;)++i;for(r=e.length;e.charCodeAt(r-1)===48;)--r;if(e=e.slice(i,r),e){if(r-=i,n=n-i-1,t.e=am(n/Zn),t.d=[],i=(n+1)%Zn,n<0&&(i+=Zn),i<r){for(i&&t.d.push(+e.slice(0,i)),r-=Zn;i<r;)t.d.push(+e.slice(i,i+=Zn));e=e.slice(i),i=Zn-e.length}else i-=r;for(;i--;)e+="0";if(t.d.push(+e),ni&&(t.e>N1||t.e<-N1))throw Error(FN+n)}else t.s=0,t.e=0,t.d=[0];return t}function Vn(t,e,n){var i,r,a,s,o,l,c,d,f=t.d;for(s=1,a=f[0];a>=10;a/=10)s++;if(i=e-s,i<0)i+=Zn,r=e,c=f[d=0];else{if(d=Math.ceil((i+1)/Zn),a=f.length,d>=a)return t;for(c=a=f[d],s=1;a>=10;a/=10)s++;i%=Zn,r=i-Zn+s}if(n!==void 0&&(a=wd(10,s-r-1),o=c/a%10|0,l=e<0||f[d+1]!==void 0||c%a,l=n<4?(o||l)&&(n==0||n==(t.s<0?3:2)):o>5||o==5&&(n==4||l||n==6&&(i>0?r>0?c/wd(10,s-r):0:f[d-1])%10&1||n==(t.s<0?8:7))),e<1||!f[0])return l?(a=ji(t),f.length=1,e=e-a-1,f[0]=wd(10,(Zn-e%Zn)%Zn),t.e=am(-e/Zn)||0):(f.length=1,f[0]=t.e=t.s=0),t;if(i==0?(f.length=d,a=1,d--):(f.length=d+1,a=wd(10,Zn-i),f[d]=r>0?(c/wd(10,s-r)%wd(10,r)|0)*a:0),l)for(;;)if(d==0){(f[0]+=a)==xr&&(f[0]=1,++t.e);break}else{if(f[d]+=a,f[d]!=xr)break;f[d--]=0,a=1}for(i=f.length;f[--i]===0;)f.pop();if(ni&&(t.e>N1||t.e<-N1))throw Error(FN+ji(t));return t}function $X(t,e){var n,i,r,a,s,o,l,c,d,f,p=t.constructor,m=p.precision;if(!t.s||!e.s)return e.s?e.s=-e.s:e=new p(t),ni?Vn(e,m):e;if(l=t.d,f=e.d,i=e.e,c=t.e,l=l.slice(),s=c-i,s){for(d=s<0,d?(n=l,s=-s,o=f.length):(n=f,i=c,o=l.length),r=Math.max(Math.ceil(m/Zn),o)+2,s>r&&(s=r,n.length=1),n.reverse(),r=s;r--;)n.push(0);n.reverse()}else{for(r=l.length,o=f.length,d=r<o,d&&(o=r),r=0;r<o;r++)if(l[r]!=f[r]){d=l[r]<f[r];break}s=0}for(d&&(n=l,l=f,f=n,e.s=-e.s),o=l.length,r=f.length-o;r>0;--r)l[o++]=0;for(r=f.length;r>s;){if(l[--r]<f[r]){for(a=r;a&&l[--a]===0;)l[a]=xr-1;--l[a],l[r]+=xr}l[r]-=f[r]}for(;l[--o]===0;)l.pop();for(;l[0]===0;l.shift())--i;return l[0]?(e.d=l,e.e=i,ni?Vn(e,m):e):new p(0)}function bf(t,e,n){var i,r=ji(t),a=ko(t.d),s=a.length;return e?(n&&(i=n-s)>0?a=a.charAt(0)+"."+a.slice(1)+au(i):s>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(r<0?"e":"e+")+r):r<0?(a="0."+au(-r-1)+a,n&&(i=n-s)>0&&(a+=au(i))):r>=s?(a+=au(r+1-s),n&&(i=n-r-1)>0&&(a=a+"."+au(i))):((i=r+1)<s&&(a=a.slice(0,i)+"."+a.slice(i)),n&&(i=n-s)>0&&(r+1===s&&(a+="."),a+=au(i))),t.s<0?"-"+a:a}function P8(t,e){if(t.length>e)return t.length=e,!0}function WX(t){var e,n,i;function r(a){var s=this;if(!(s instanceof r))return new r(a);if(s.constructor=r,a instanceof r){s.s=a.s,s.e=a.e,s.d=(a=a.d)?a.slice():a;return}if(typeof a=="number"){if(a*0!==0)throw Error(Zd+a);if(a>0)s.s=1;else if(a<0)a=-a,s.s=-1;else{s.s=0,s.e=0,s.d=[0];return}if(a===~~a&&a<1e7){s.e=0,s.d=[a];return}return R8(s,a.toString())}else if(typeof a!="string")throw Error(Zd+a);if(a.charCodeAt(0)===45?(a=a.slice(1),s.s=-1):s.s=1,nDe.test(a))R8(s,a);else throw Error(Zd+a)}if(r.prototype=Mt,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.clone=WX,r.config=r.set=iDe,t===void 0&&(t={}),t)for(i=["precision","rounding","toExpNeg","toExpPos","LN10"],e=0;e<i.length;)t.hasOwnProperty(n=i[e++])||(t[n]=this[n]);return r.config(t),r}function iDe(t){if(!t||typeof t!="object")throw Error(Hs+"Object expected");var e,n,i,r=["precision",1,rm,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(e=0;e<r.length;e+=3)if((i=t[n=r[e]])!==void 0)if(am(i)===i&&i>=r[e+1]&&i<=r[e+2])this[n]=i;else throw Error(Zd+n+": "+i);if((i=t[n="LN10"])!==void 0)if(i==Math.LN10)this[n]=new this(i);else throw Error(Zd+n+": "+i);return this}var zN=WX(tDe);es=new zN(1);const Cn=zN;var rDe=t=>t,qX={},XX=t=>t===qX,D8=t=>function e(){return arguments.length===0||arguments.length===1&&XX(arguments.length<=0?void 0:arguments[0])?e:t(...arguments)},YX=(t,e)=>t===1?e:D8(function(){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];var a=i.filter(s=>s!==qX).length;return a>=t?e(...i):YX(t-a,D8(function(){for(var s=arguments.length,o=new Array(s),l=0;l<s;l++)o[l]=arguments[l];var c=i.map(d=>XX(d)?o.shift():d);return e(...c,...o)}))}),aDe=t=>YX(t.length,t),V3=(t,e)=>{for(var n=[],i=t;i<e;++i)n[i-t]=i;return n},sDe=aDe((t,e)=>Array.isArray(e)?e.map(t):Object.keys(e).map(n=>e[n]).map(t)),oDe=function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];if(!n.length)return rDe;var r=n.reverse(),a=r[0],s=r.slice(1);return function(){return s.reduce((o,l)=>l(o),a(...arguments))}},G3=t=>Array.isArray(t)?t.reverse():t.split("").reverse().join("");function KX(t){var e;return t===0?e=1:e=Math.floor(new Cn(t).abs().log(10).toNumber())+1,e}function ZX(t,e,n){for(var i=new Cn(t),r=0,a=[];i.lt(e)&&r<1e5;)a.push(i.toNumber()),i=i.add(n),r++;return a}var JX=t=>{var[e,n]=t,[i,r]=[e,n];return e>n&&([i,r]=[n,e]),[i,r]},QX=(t,e,n)=>{if(t.lte(0))return new Cn(0);var i=KX(t.toNumber()),r=new Cn(10).pow(i),a=t.div(r),s=i!==1?.05:.1,o=new Cn(Math.ceil(a.div(s).toNumber())).add(n).mul(s),l=o.mul(r);return e?new Cn(l.toNumber()):new Cn(Math.ceil(l.toNumber()))},lDe=(t,e,n)=>{var i=new Cn(1),r=new Cn(t);if(!r.isint()&&n){var a=Math.abs(t);a<1?(i=new Cn(10).pow(KX(t)-1),r=new Cn(Math.floor(r.div(i).toNumber())).mul(i)):a>1&&(r=new Cn(Math.floor(t)))}else t===0?r=new Cn(Math.floor((e-1)/2)):n||(r=new Cn(Math.floor(t)));var s=Math.floor((e-1)/2),o=oDe(sDe(l=>r.add(new Cn(l-s).mul(i)).toNumber()),V3);return o(0,e)},eY=function(e,n,i,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;if(!Number.isFinite((n-e)/(i-1)))return{step:new Cn(0),tickMin:new Cn(0),tickMax:new Cn(0)};var s=QX(new Cn(n).sub(e).div(i-1),r,a),o;e<=0&&n>=0?o=new Cn(0):(o=new Cn(e).add(n).div(2),o=o.sub(new Cn(o).mod(s)));var l=Math.ceil(o.sub(e).div(s).toNumber()),c=Math.ceil(new Cn(n).sub(o).div(s).toNumber()),d=l+c+1;return d>i?eY(e,n,i,r,a+1):(d<i&&(c=n>0?c+(i-d):c,l=n>0?l:l+(i-d)),{step:s,tickMin:o.sub(new Cn(l).mul(s)),tickMax:o.add(new Cn(c).mul(s))})},cDe=function(e){var[n,i]=e,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=Math.max(r,2),[o,l]=JX([n,i]);if(o===-1/0||l===1/0){var c=l===1/0?[o,...V3(0,r-1).map(()=>1/0)]:[...V3(0,r-1).map(()=>-1/0),l];return n>i?G3(c):c}if(o===l)return lDe(o,r,a);var{step:d,tickMin:f,tickMax:p}=eY(o,l,s,a,0),m=ZX(f,p.add(new Cn(.1).mul(d)),d);return n>i?G3(m):m},uDe=function(e,n){var[i,r]=e,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,[s,o]=JX([i,r]);if(s===-1/0||o===1/0)return[i,r];if(s===o)return[s];var l=Math.max(n,2),c=QX(new Cn(o).sub(s).div(l-1),a,0),d=[...ZX(new Cn(s),new Cn(o),c),o];return a===!1&&(d=d.map(f=>Math.round(f))),i>r?G3(d):d},tY=t=>t.rootProps.maxBarSize,dDe=t=>t.rootProps.barGap,nY=t=>t.rootProps.barCategoryGap,fDe=t=>t.rootProps.barSize,_v=t=>t.rootProps.stackOffset,iY=t=>t.rootProps.reverseStackOrder,BN=t=>t.options.chartName,jN=t=>t.rootProps.syncId,rY=t=>t.rootProps.syncMethod,HN=t=>t.options.eventEmitter,hDe=t=>t.rootProps.baseValue,Fi={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},Ll={allowDuplicatedCategory:!0,angleAxisId:0,reversed:!1,scale:"auto",tick:!0,type:"category"},Za={allowDataOverflow:!1,allowDuplicatedCategory:!0,radiusAxisId:0,scale:"auto",tick:!0,tickCount:5,type:"number"},ew=(t,e)=>{if(!(!t||!e))return t!=null&&t.reversed?[e[1],e[0]]:e},pDe={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:Ll.angleAxisId,includeHidden:!1,name:void 0,reversed:Ll.reversed,scale:Ll.scale,tick:Ll.tick,tickCount:void 0,ticks:void 0,type:Ll.type,unit:void 0},mDe={allowDataOverflow:Za.allowDataOverflow,allowDecimals:!1,allowDuplicatedCategory:Za.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:Za.radiusAxisId,includeHidden:!1,name:void 0,reversed:!1,scale:Za.scale,tick:Za.tick,tickCount:Za.tickCount,ticks:void 0,type:Za.type,unit:void 0},gDe={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:Ll.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:Ll.angleAxisId,includeHidden:!1,name:void 0,reversed:!1,scale:Ll.scale,tick:Ll.tick,tickCount:void 0,ticks:void 0,type:"number",unit:void 0},vDe={allowDataOverflow:Za.allowDataOverflow,allowDecimals:!1,allowDuplicatedCategory:Za.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:Za.radiusAxisId,includeHidden:!1,name:void 0,reversed:!1,scale:Za.scale,tick:Za.tick,tickCount:Za.tickCount,ticks:void 0,type:"category",unit:void 0},VN=(t,e)=>t.polarAxis.angleAxis[e]!=null?t.polarAxis.angleAxis[e]:t.layout.layoutType==="radial"?gDe:pDe,GN=(t,e)=>t.polarAxis.radiusAxis[e]!=null?t.polarAxis.radiusAxis[e]:t.layout.layoutType==="radial"?vDe:mDe,tw=t=>t.polarOptions,$N=He([cc,uc,ar],nX),aY=He([tw,$N],(t,e)=>{if(t!=null)return ea(t.innerRadius,e,0)}),sY=He([tw,$N],(t,e)=>{if(t!=null)return ea(t.outerRadius,e,e*.8)}),xDe=t=>{if(t==null)return[0,0];var{startAngle:e,endAngle:n}=t;return[e,n]},oY=He([tw],xDe);He([VN,oY],ew);var lY=He([$N,aY,sY],(t,e,n)=>{if(!(t==null||e==null||n==null))return[e,n]});He([GN,lY],ew);var cY=He([pn,tw,aY,sY,cc,uc],(t,e,n,i,r,a)=>{if(!(t!=="centric"&&t!=="radial"||e==null||n==null||i==null)){var{cx:s,cy:o,startAngle:l,endAngle:c}=e;return{cx:ea(s,r,r/2),cy:ea(o,a,a/2),innerRadius:n,outerRadius:i,startAngle:l,endAngle:c,clockWise:!1}}}),ii=(t,e)=>e,Sv=(t,e,n)=>n;function nw(t){return t?.id}function uY(t,e,n){var{chartData:i=[]}=e,{allowDuplicatedCategory:r,dataKey:a}=n,s=new Map;return t.forEach(o=>{var l,c=(l=o.data)!==null&&l!==void 0?l:i;if(!(c==null||c.length===0)){var d=nw(o);c.forEach((f,p)=>{var m=a==null||r?p:String(Hn(f,a,null)),y=Hn(f,o.dataKey,0),b;s.has(m)?b=s.get(m):b={},Object.assign(b,{[d]:y}),s.set(m,b)})}}),Array.from(s.values())}function iw(t){return t.stackId!=null&&t.dataKey!=null}var rw=(t,e)=>t===e?!0:t==null||e==null?!1:t[0]===e[0]&&t[1]===e[1];function aw(t,e){return Array.isArray(t)&&Array.isArray(e)&&t.length===0&&e.length===0?!0:t===e}function yDe(t,e){if(t.length===e.length){for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}return!1}var or=t=>{var e=pn(t);return e==="horizontal"?"xAxis":e==="vertical"?"yAxis":e==="centric"?"angleAxis":"radiusAxis"},sm=t=>t.tooltip.settings.axisId;function N8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function O1(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?N8(Object(n),!0).forEach(function(i){bDe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):N8(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function bDe(t,e,n){return(e=_De(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _De(t){var e=SDe(t,"string");return typeof e=="symbol"?e:e+""}function SDe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var $3=[0,"auto"],gr={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:void 0,height:30,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"bottom",padding:{left:0,right:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"category",unit:void 0},dY=(t,e)=>t.cartesianAxis.xAxis[e],fc=(t,e)=>{var n=dY(t,e);return n??gr},vr={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:$3,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,width:hv},fY=(t,e)=>t.cartesianAxis.yAxis[e],hc=(t,e)=>{var n=fY(t,e);return n??vr},wDe={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},WN=(t,e)=>{var n=t.cartesianAxis.zAxis[e];return n??wDe},ci=(t,e,n)=>{switch(e){case"xAxis":return fc(t,n);case"yAxis":return hc(t,n);case"zAxis":return WN(t,n);case"angleAxis":return VN(t,n);case"radiusAxis":return GN(t,n);default:throw new Error("Unexpected axis type: ".concat(e))}},MDe=(t,e,n)=>{switch(e){case"xAxis":return fc(t,n);case"yAxis":return hc(t,n);default:throw new Error("Unexpected axis type: ".concat(e))}},wv=(t,e,n)=>{switch(e){case"xAxis":return fc(t,n);case"yAxis":return hc(t,n);case"angleAxis":return VN(t,n);case"radiusAxis":return GN(t,n);default:throw new Error("Unexpected axis type: ".concat(e))}},hY=t=>t.graphicalItems.cartesianItems.some(e=>e.type==="bar")||t.graphicalItems.polarItems.some(e=>e.type==="radialBar");function qN(t,e){return n=>{switch(t){case"xAxis":return"xAxisId"in n&&n.xAxisId===e;case"yAxis":return"yAxisId"in n&&n.yAxisId===e;case"zAxis":return"zAxisId"in n&&n.zAxisId===e;case"angleAxis":return"angleAxisId"in n&&n.angleAxisId===e;case"radiusAxis":return"radiusAxisId"in n&&n.radiusAxisId===e;default:return!1}}}var sw=t=>t.graphicalItems.cartesianItems,EDe=He([ii,Sv],qN),XN=(t,e,n)=>t.filter(n).filter(i=>e?.includeHidden===!0?!0:!i.hide),Mv=He([sw,ci,EDe],XN,{memoizeOptions:{resultEqualityCheck:aw}}),pY=He([Mv],t=>t.filter(e=>e.type==="area"||e.type==="bar").filter(iw)),mY=t=>t.filter(e=>!("stackId"in e)||e.stackId===void 0),ADe=He([Mv],mY),YN=t=>t.map(e=>e.data).filter(Boolean).flat(1),TDe=He([Mv],YN,{memoizeOptions:{resultEqualityCheck:aw}}),KN=(t,e)=>{var{chartData:n=[],dataStartIndex:i,dataEndIndex:r}=e;return t.length>0?t:n.slice(i,r+1)},ZN=He([TDe,QS],KN),JN=(t,e,n)=>e?.dataKey!=null?t.map(i=>({value:Hn(i,e.dataKey)})):n.length>0?n.map(i=>i.dataKey).flatMap(i=>t.map(r=>({value:Hn(r,i)}))):t.map(i=>({value:i})),ow=He([ZN,ci,Mv],JN);function gY(t,e){switch(t){case"xAxis":return e.direction==="x";case"yAxis":return e.direction==="y";default:return!1}}function Vb(t){if(Vo(t)||t instanceof Date){var e=Number(t);if(Qn(e))return e}}function O8(t){if(Array.isArray(t)){var e=[Vb(t[0]),Vb(t[1])];return Lu(e)?e:void 0}var n=Vb(t);if(n!=null)return[n,n]}function ac(t){return t.map(Vb).filter(AEe)}function CDe(t,e,n){return!n||typeof e!="number"||Bs(e)?[]:n.length?ac(n.flatMap(i=>{var r=Hn(t,i.dataKey),a,s;if(Array.isArray(r)?[a,s]=r:a=s=r,!(!Qn(a)||!Qn(s)))return[e-a,e+s]})):[]}var lr=t=>{var e=or(t),n=sm(t);return wv(t,e,n)},Ev=He([lr],t=>t?.dataKey),RDe=He([pY,QS,lr],uY),vY=(t,e,n,i)=>{var r={},a=e.reduce((s,o)=>(o.stackId==null||(s[o.stackId]==null&&(s[o.stackId]=[]),s[o.stackId].push(o)),s),r);return Object.fromEntries(Object.entries(a).map(s=>{var[o,l]=s,c=i?[...l].reverse():l,d=c.map(nw);return[o,{stackedData:XTe(t,d,n),graphicalItems:c}]}))},G0=He([RDe,pY,_v,iY],vY),xY=(t,e,n,i)=>{var{dataStartIndex:r,dataEndIndex:a}=e;if(i==null&&n!=="zAxis"){var s=JTe(t,r,a);if(!(s!=null&&s[0]===0&&s[1]===0))return s}},PDe=He([ci],t=>t.allowDataOverflow),QN=t=>{var e;if(t==null||!("domain"in t))return $3;if(t.domain!=null)return t.domain;if(t.ticks!=null){if(t.type==="number"){var n=ac(t.ticks);return[Math.min(...n),Math.max(...n)]}if(t.type==="category")return t.ticks.map(String)}return(e=t?.domain)!==null&&e!==void 0?e:$3},eO=He([ci],QN),tO=He([eO,PDe],jX),DDe=He([G0,Gu,ii,tO],xY,{memoizeOptions:{resultEqualityCheck:rw}}),lw=t=>t.errorBars,NDe=(t,e,n)=>t.flatMap(i=>e[i.id]).filter(Boolean).filter(i=>gY(n,i)),L1=function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];var r=n.filter(Boolean);if(r.length!==0){var a=r.flat(),s=Math.min(...a),o=Math.max(...a);return[s,o]}},nO=(t,e,n,i,r)=>{var a,s;if(n.length>0&&t.forEach(o=>{n.forEach(l=>{var c,d,f=(c=i[l.id])===null||c===void 0?void 0:c.filter(v=>gY(r,v)),p=Hn(o,(d=e.dataKey)!==null&&d!==void 0?d:l.dataKey),m=CDe(o,p,f);if(m.length>=2){var y=Math.min(...m),b=Math.max(...m);(a==null||y<a)&&(a=y),(s==null||b>s)&&(s=b)}var x=O8(p);x!=null&&(a=a==null?x[0]:Math.min(a,x[0]),s=s==null?x[1]:Math.max(s,x[1]))})}),e?.dataKey!=null&&t.forEach(o=>{var l=O8(Hn(o,e.dataKey));l!=null&&(a=a==null?l[0]:Math.min(a,l[0]),s=s==null?l[1]:Math.max(s,l[1]))}),Qn(a)&&Qn(s))return[a,s]},ODe=He([ZN,ci,ADe,lw,ii],nO,{memoizeOptions:{resultEqualityCheck:rw}});function LDe(t){var{value:e}=t;if(Vo(e)||e instanceof Date)return e}var kDe=(t,e,n)=>{var i=t.map(LDe).filter(r=>r!=null);return n&&(e.dataKey==null||e.allowDuplicatedCategory&&O7(i))?sX(0,t.length):e.allowDuplicatedCategory?i:Array.from(new Set(i))},yY=t=>t.referenceElements.dots,om=(t,e,n)=>t.filter(i=>i.ifOverflow==="extendDomain").filter(i=>e==="xAxis"?i.xAxisId===n:i.yAxisId===n),IDe=He([yY,ii,Sv],om),bY=t=>t.referenceElements.areas,UDe=He([bY,ii,Sv],om),_Y=t=>t.referenceElements.lines,FDe=He([_Y,ii,Sv],om),SY=(t,e)=>{var n=ac(t.map(i=>e==="xAxis"?i.x:i.y));if(n.length!==0)return[Math.min(...n),Math.max(...n)]},zDe=He(IDe,ii,SY),wY=(t,e)=>{var n=ac(t.flatMap(i=>[e==="xAxis"?i.x1:i.y1,e==="xAxis"?i.x2:i.y2]));if(n.length!==0)return[Math.min(...n),Math.max(...n)]},BDe=He([UDe,ii],wY);function jDe(t){var e;if(t.x!=null)return ac([t.x]);var n=(e=t.segment)===null||e===void 0?void 0:e.map(i=>i.x);return n==null||n.length===0?[]:ac(n)}function HDe(t){var e;if(t.y!=null)return ac([t.y]);var n=(e=t.segment)===null||e===void 0?void 0:e.map(i=>i.y);return n==null||n.length===0?[]:ac(n)}var MY=(t,e)=>{var n=t.flatMap(i=>e==="xAxis"?jDe(i):HDe(i));if(n.length!==0)return[Math.min(...n),Math.max(...n)]},VDe=He([FDe,ii],MY),GDe=He(zDe,VDe,BDe,(t,e,n)=>L1(t,n,e)),iO=(t,e,n,i,r,a,s,o)=>{if(n!=null)return n;var l=s==="vertical"&&o==="xAxis"||s==="horizontal"&&o==="yAxis",c=l?L1(i,a,r):L1(a,r);return eDe(e,c,t.allowDataOverflow)},$De=He([ci,eO,tO,DDe,ODe,GDe,pn,ii],iO,{memoizeOptions:{resultEqualityCheck:rw}}),WDe=[0,1],rO=(t,e,n,i,r,a,s)=>{if(!((t==null||n==null||n.length===0)&&s===void 0)){var{dataKey:o,type:l}=t,c=lc(e,a);if(c&&o==null){var d;return sX(0,(d=n?.length)!==null&&d!==void 0?d:0)}return l==="category"?kDe(i,t,c):r==="expand"?WDe:s}},aO=He([ci,pn,ZN,ow,_v,ii,$De],rO),EY=(t,e,n,i,r)=>{if(t!=null){var{scale:a,type:s}=t;if(a==="auto")return e==="radial"&&r==="radiusAxis"?"band":e==="radial"&&r==="angleAxis"?"linear":s==="category"&&i&&(i.indexOf("LineChart")>=0||i.indexOf("AreaChart")>=0||i.indexOf("ComposedChart")>=0&&!n)?"point":s==="category"?"band":"linear";if(typeof a=="string"){var o="scale".concat(ov(a));return o in Fg?o:"point"}}},lm=He([ci,pn,hY,BN,ii],EY);function qDe(t){if(t!=null){if(t in Fg)return Fg[t]();var e="scale".concat(ov(t));if(e in Fg)return Fg[e]()}}function sO(t,e,n,i){if(!(n==null||i==null)){if(typeof t.scale=="function")return t.scale.copy().domain(n).range(i);var r=qDe(e);if(r!=null){var a=r.domain(n).range(i);return VTe(a),a}}}var oO=(t,e,n)=>{var i=QN(e);if(!(n!=="auto"&&n!=="linear")){if(e!=null&&e.tickCount&&Array.isArray(i)&&(i[0]==="auto"||i[1]==="auto")&&Lu(t))return cDe(t,e.tickCount,e.allowDecimals);if(e!=null&&e.tickCount&&e.type==="number"&&Lu(t))return uDe(t,e.tickCount,e.allowDecimals)}},lO=He([aO,wv,lm],oO),cO=(t,e,n,i)=>{if(i!=="angleAxis"&&t?.type==="number"&&Lu(e)&&Array.isArray(n)&&n.length>0){var r=e[0],a=n[0],s=e[1],o=n[n.length-1];return[Math.min(r,a),Math.max(s,o)]}return e},XDe=He([ci,aO,lO,ii],cO),YDe=He(ow,ci,(t,e)=>{if(!(!e||e.type!=="number")){var n=1/0,i=Array.from(ac(t.map(o=>o.value))).sort((o,l)=>o-l);if(i.length<2)return 1/0;var r=i[i.length-1]-i[0];if(r===0)return 1/0;for(var a=0;a<i.length-1;a++){var s=i[a+1]-i[a];n=Math.min(n,s)}return n/r}}),AY=He(YDe,pn,nY,ar,(t,e,n,i)=>i,(t,e,n,i,r)=>{if(!Qn(t))return 0;var a=e==="vertical"?i.height:i.width;if(r==="gap")return t*a/2;if(r==="no-gap"){var s=ea(n,t*a),o=t*a/2;return o-s-(o-s)/a*s}return 0}),KDe=(t,e)=>{var n=fc(t,e);return n==null||typeof n.padding!="string"?0:AY(t,"xAxis",e,n.padding)},ZDe=(t,e)=>{var n=hc(t,e);return n==null||typeof n.padding!="string"?0:AY(t,"yAxis",e,n.padding)},JDe=He(fc,KDe,(t,e)=>{var n,i;if(t==null)return{left:0,right:0};var{padding:r}=t;return typeof r=="string"?{left:e,right:e}:{left:((n=r.left)!==null&&n!==void 0?n:0)+e,right:((i=r.right)!==null&&i!==void 0?i:0)+e}}),QDe=He(hc,ZDe,(t,e)=>{var n,i;if(t==null)return{top:0,bottom:0};var{padding:r}=t;return typeof r=="string"?{top:e,bottom:e}:{top:((n=r.top)!==null&&n!==void 0?n:0)+e,bottom:((i=r.bottom)!==null&&i!==void 0?i:0)+e}}),eNe=He([ar,JDe,jS,BS,(t,e,n)=>n],(t,e,n,i,r)=>{var{padding:a}=i;return r?[a.left,n.width-a.right]:[t.left+e.left,t.left+t.width-e.right]}),tNe=He([ar,pn,QDe,jS,BS,(t,e,n)=>n],(t,e,n,i,r,a)=>{var{padding:s}=r;return a?[i.height-s.bottom,s.top]:e==="horizontal"?[t.top+t.height-n.bottom,t.top+n.top]:[t.top+n.top,t.top+t.height-n.bottom]}),Av=(t,e,n,i)=>{var r;switch(e){case"xAxis":return eNe(t,n,i);case"yAxis":return tNe(t,n,i);case"zAxis":return(r=WN(t,n))===null||r===void 0?void 0:r.range;case"angleAxis":return oY(t);case"radiusAxis":return lY(t,n);default:return}},TY=He([ci,Av],ew),cm=He([ci,lm,XDe,TY],sO);He([Mv,lw,ii],NDe);function CY(t,e){return t.id<e.id?-1:t.id>e.id?1:0}var cw=(t,e)=>e,uw=(t,e,n)=>n,nNe=He(FS,cw,uw,(t,e,n)=>t.filter(i=>i.orientation===e).filter(i=>i.mirror===n).sort(CY)),iNe=He(zS,cw,uw,(t,e,n)=>t.filter(i=>i.orientation===e).filter(i=>i.mirror===n).sort(CY)),RY=(t,e)=>({width:t.width,height:e.height}),rNe=(t,e)=>{var n=typeof e.width=="number"?e.width:hv;return{width:n,height:t.height}},PY=He(ar,fc,RY),aNe=(t,e,n)=>{switch(e){case"top":return t.top;case"bottom":return n-t.bottom;default:return 0}},sNe=(t,e,n)=>{switch(e){case"left":return t.left;case"right":return n-t.right;default:return 0}},oNe=He(uc,ar,nNe,cw,uw,(t,e,n,i,r)=>{var a={},s;return n.forEach(o=>{var l=RY(e,o);s==null&&(s=aNe(e,i,t));var c=i==="top"&&!r||i==="bottom"&&r;a[o.id]=s-Number(c)*l.height,s+=(c?-1:1)*l.height}),a}),lNe=He(cc,ar,iNe,cw,uw,(t,e,n,i,r)=>{var a={},s;return n.forEach(o=>{var l=rNe(e,o);s==null&&(s=sNe(e,i,t));var c=i==="left"&&!r||i==="right"&&r;a[o.id]=s-Number(c)*l.width,s+=(c?-1:1)*l.width}),a}),cNe=(t,e)=>{var n=fc(t,e);if(n!=null)return oNe(t,n.orientation,n.mirror)},uNe=He([ar,fc,cNe,(t,e)=>e],(t,e,n,i)=>{if(e!=null){var r=n?.[i];return r==null?{x:t.left,y:0}:{x:t.left,y:r}}}),dNe=(t,e)=>{var n=hc(t,e);if(n!=null)return lNe(t,n.orientation,n.mirror)},fNe=He([ar,hc,dNe,(t,e)=>e],(t,e,n,i)=>{if(e!=null){var r=n?.[i];return r==null?{x:0,y:t.top}:{x:r,y:t.top}}}),DY=He(ar,hc,(t,e)=>{var n=typeof e.width=="number"?e.width:hv;return{width:n,height:t.height}}),L8=(t,e,n)=>{switch(e){case"xAxis":return PY(t,n).width;case"yAxis":return DY(t,n).height;default:return}},NY=(t,e,n,i)=>{if(n!=null){var{allowDuplicatedCategory:r,type:a,dataKey:s}=n,o=lc(t,i),l=e.map(c=>c.value);if(s&&o&&a==="category"&&r&&O7(l))return l}},uO=He([pn,ow,ci,ii],NY),OY=(t,e,n,i)=>{if(!(n==null||n.dataKey==null)){var{type:r,scale:a}=n,s=lc(t,i);if(s&&(r==="number"||a!=="auto"))return e.map(o=>o.value)}},dO=He([pn,ow,wv,ii],OY),k8=He([pn,MDe,lm,cm,uO,dO,Av,lO,ii],(t,e,n,i,r,a,s,o,l)=>{if(e!=null){var c=lc(t,l);return{angle:e.angle,interval:e.interval,minTickGap:e.minTickGap,orientation:e.orientation,tick:e.tick,tickCount:e.tickCount,tickFormatter:e.tickFormatter,ticks:e.ticks,type:e.type,unit:e.unit,axisType:l,categoricalDomain:a,duplicateDomain:r,isCategorical:c,niceTicks:o,range:s,realScaleType:n,scale:i}}}),hNe=(t,e,n,i,r,a,s,o,l)=>{if(!(e==null||i==null)){var c=lc(t,l),{type:d,ticks:f,tickCount:p}=e,m=n==="scaleBand"&&typeof i.bandwidth=="function"?i.bandwidth()/2:2,y=d==="category"&&i.bandwidth?i.bandwidth()/m:0;y=l==="angleAxis"&&a!=null&&a.length>=2?_r(a[0]-a[1])*2*y:y;var b=f||r;if(b){var x=b.map((v,w)=>{var M=s?s.indexOf(v):v;return{index:w,coordinate:i(M)+y,value:v,offset:y}});return x.filter(v=>Qn(v.coordinate))}return c&&o?o.map((v,w)=>({coordinate:i(v)+y,value:v,index:w,offset:y})).filter(v=>Qn(v.coordinate)):i.ticks?i.ticks(p).map(v=>({coordinate:i(v)+y,value:v,offset:y})):i.domain().map((v,w)=>({coordinate:i(v)+y,value:s?s[v]:v,index:w,offset:y}))}},LY=He([pn,wv,lm,cm,lO,Av,uO,dO,ii],hNe),pNe=(t,e,n,i,r,a,s)=>{if(!(e==null||n==null||i==null||i[0]===i[1])){var o=lc(t,s),{tickCount:l}=e,c=0;return c=s==="angleAxis"&&i?.length>=2?_r(i[0]-i[1])*2*c:c,o&&a?a.map((d,f)=>({coordinate:n(d)+c,value:d,index:f,offset:c})):n.ticks?n.ticks(l).map(d=>({coordinate:n(d)+c,value:d,offset:c})):n.domain().map((d,f)=>({coordinate:n(d)+c,value:r?r[d]:d,index:f,offset:c}))}},ku=He([pn,wv,cm,Av,uO,dO,ii],pNe),Iu=He(ci,cm,(t,e)=>{if(!(t==null||e==null))return O1(O1({},t),{},{scale:e})}),mNe=He([ci,lm,aO,TY],sO);He((t,e,n)=>WN(t,n),mNe,(t,e)=>{if(!(t==null||e==null))return O1(O1({},t),{},{scale:e})});var gNe=He([pn,FS,zS],(t,e,n)=>{switch(t){case"horizontal":return e.some(i=>i.reversed)?"right-to-left":"left-to-right";case"vertical":return n.some(i=>i.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),kY=t=>t.options.defaultTooltipEventType,IY=t=>t.options.validateTooltipEventTypes;function UY(t,e,n){if(t==null)return e;var i=t?"axis":"item";return n==null?e:n.includes(i)?i:e}function fO(t,e){var n=kY(t),i=IY(t);return UY(e,n,i)}function vNe(t){return wt(e=>fO(e,t))}var FY=(t,e)=>{var n,i=Number(e);if(!(Bs(i)||e==null))return i>=0?t==null||(n=t[i])===null||n===void 0?void 0:n.value:void 0},xNe=t=>t.tooltip.settings,du={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},yNe={itemInteraction:{click:du,hover:du},axisInteraction:{click:du,hover:du},keyboardInteraction:du,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},zY=Ua({name:"tooltip",initialState:yNe,reducers:{addTooltipEntrySettings:{reducer(t,e){t.tooltipItemPayloads.push(e.payload)},prepare:ti()},replaceTooltipEntrySettings:{reducer(t,e){var{prev:n,next:i}=e.payload,r=ho(t).tooltipItemPayloads.indexOf(n);r>-1&&(t.tooltipItemPayloads[r]=i)},prepare:ti()},removeTooltipEntrySettings:{reducer(t,e){var n=ho(t).tooltipItemPayloads.indexOf(e.payload);n>-1&&t.tooltipItemPayloads.splice(n,1)},prepare:ti()},setTooltipSettingsState(t,e){t.settings=e.payload},setActiveMouseOverItemIndex(t,e){t.syncInteraction.active=!1,t.keyboardInteraction.active=!1,t.itemInteraction.hover.active=!0,t.itemInteraction.hover.index=e.payload.activeIndex,t.itemInteraction.hover.dataKey=e.payload.activeDataKey,t.itemInteraction.hover.graphicalItemId=e.payload.activeGraphicalItemId,t.itemInteraction.hover.coordinate=e.payload.activeCoordinate},mouseLeaveChart(t){t.itemInteraction.hover.active=!1,t.axisInteraction.hover.active=!1},mouseLeaveItem(t){t.itemInteraction.hover.active=!1},setActiveClickItemIndex(t,e){t.syncInteraction.active=!1,t.itemInteraction.click.active=!0,t.keyboardInteraction.active=!1,t.itemInteraction.click.index=e.payload.activeIndex,t.itemInteraction.click.dataKey=e.payload.activeDataKey,t.itemInteraction.click.graphicalItemId=e.payload.activeGraphicalItemId,t.itemInteraction.click.coordinate=e.payload.activeCoordinate},setMouseOverAxisIndex(t,e){t.syncInteraction.active=!1,t.axisInteraction.hover.active=!0,t.keyboardInteraction.active=!1,t.axisInteraction.hover.index=e.payload.activeIndex,t.axisInteraction.hover.dataKey=e.payload.activeDataKey,t.axisInteraction.hover.coordinate=e.payload.activeCoordinate},setMouseClickAxisIndex(t,e){t.syncInteraction.active=!1,t.keyboardInteraction.active=!1,t.axisInteraction.click.active=!0,t.axisInteraction.click.index=e.payload.activeIndex,t.axisInteraction.click.dataKey=e.payload.activeDataKey,t.axisInteraction.click.coordinate=e.payload.activeCoordinate},setSyncInteraction(t,e){t.syncInteraction=e.payload},setKeyboardInteraction(t,e){t.keyboardInteraction.active=e.payload.active,t.keyboardInteraction.index=e.payload.activeIndex,t.keyboardInteraction.coordinate=e.payload.activeCoordinate,t.keyboardInteraction.dataKey=e.payload.activeDataKey}}}),{addTooltipEntrySettings:bNe,replaceTooltipEntrySettings:_Ne,removeTooltipEntrySettings:SNe,setTooltipSettingsState:wNe,setActiveMouseOverItemIndex:BY,mouseLeaveItem:MNe,mouseLeaveChart:jY,setActiveClickItemIndex:ENe,setMouseOverAxisIndex:HY,setMouseClickAxisIndex:ANe,setSyncInteraction:W3,setKeyboardInteraction:q3}=zY.actions,TNe=zY.reducer;function I8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function xb(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?I8(Object(n),!0).forEach(function(i){CNe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):I8(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function CNe(t,e,n){return(e=RNe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function RNe(t){var e=PNe(t,"string");return typeof e=="symbol"?e:e+""}function PNe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function DNe(t,e,n){return e==="axis"?n==="click"?t.axisInteraction.click:t.axisInteraction.hover:n==="click"?t.itemInteraction.click:t.itemInteraction.hover}function NNe(t){return t.index!=null}var VY=(t,e,n,i)=>{if(e==null)return du;var r=DNe(t,e,n);if(r==null)return du;if(r.active)return r;if(t.keyboardInteraction.active)return t.keyboardInteraction;if(t.syncInteraction.active&&t.syncInteraction.index!=null)return t.syncInteraction;var a=t.settings.active===!0;if(NNe(r)){if(a)return xb(xb({},r),{},{active:!0})}else if(i!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:i,graphicalItemId:void 0};return xb(xb({},du),{},{coordinate:r.coordinate})};function ONe(t){if(typeof t=="number")return Number.isFinite(t)?t:void 0;if(t instanceof Date){var e=t.valueOf();return Number.isFinite(e)?e:void 0}var n=Number(t);return Number.isFinite(n)?n:void 0}function LNe(t,e){var n=ONe(t),i=e[0],r=e[1];if(n===void 0)return!1;var a=Math.min(i,r),s=Math.max(i,r);return n>=a&&n<=s}function kNe(t,e,n){if(n==null||e==null)return!0;var i=Hn(t,e);return i==null||!Lu(n)?!0:LNe(i,n)}var hO=(t,e,n,i)=>{var r=t?.index;if(r==null)return null;var a=Number(r);if(!Qn(a))return r;var s=0,o=1/0;e.length>0&&(o=e.length-1);var l=Math.max(s,Math.min(a,o)),c=e[l];return c==null||kNe(c,n,i)?String(l):null},GY=(t,e,n,i,r,a,s,o)=>{if(!(a==null||o==null)){var l=s[0],c=l==null?void 0:o(l.positions,a);if(c!=null)return c;var d=r?.[Number(a)];if(d)switch(n){case"horizontal":return{x:d.coordinate,y:(i.top+e)/2};default:return{x:(i.left+t)/2,y:d.coordinate}}}},$Y=(t,e,n,i)=>{if(e==="axis")return t.tooltipItemPayloads;if(t.tooltipItemPayloads.length===0)return[];var r;return n==="hover"?r=t.itemInteraction.hover.dataKey:r=t.itemInteraction.click.dataKey,r==null&&i!=null?[t.tooltipItemPayloads[0]]:t.tooltipItemPayloads.filter(a=>{var s;return((s=a.settings)===null||s===void 0?void 0:s.dataKey)===r})},Tv=t=>t.options.tooltipPayloadSearcher,um=t=>t.tooltip;function U8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function F8(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?U8(Object(n),!0).forEach(function(i){INe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):U8(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function INe(t,e,n){return(e=UNe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function UNe(t){var e=FNe(t,"string");return typeof e=="symbol"?e:e+""}function FNe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function zNe(t,e){return t??e}var WY=(t,e,n,i,r,a,s)=>{if(!(e==null||a==null)){var{chartData:o,computedData:l,dataStartIndex:c,dataEndIndex:d}=n,f=[];return t.reduce((p,m)=>{var y,{dataDefinedOnItem:b,settings:x}=m,v=zNe(b,o),w=Array.isArray(v)?Tq(v,c,d):v,M=(y=x?.dataKey)!==null&&y!==void 0?y:i,A=x?.nameKey,T;if(i&&Array.isArray(w)&&!Array.isArray(w[0])&&s==="axis"?T=L7(w,i,r):T=a(w,e,l,A),Array.isArray(T))T.forEach(C=>{var U=F8(F8({},x),{},{name:C.name,unit:C.unit,color:void 0,fill:void 0});p.push(rH({tooltipEntrySettings:U,dataKey:C.dataKey,payload:C.payload,value:Hn(C.payload,C.dataKey),name:C.name}))});else{var D;p.push(rH({tooltipEntrySettings:x,dataKey:M,payload:T,value:Hn(T,M),name:(D=Hn(T,A))!==null&&D!==void 0?D:x?.name}))}return p},f)}},pO=He([lr,pn,hY,BN,or],EY),BNe=He([t=>t.graphicalItems.cartesianItems,t=>t.graphicalItems.polarItems],(t,e)=>[...t,...e]),jNe=He([or,sm],qN),Cv=He([BNe,lr,jNe],XN,{memoizeOptions:{resultEqualityCheck:aw}}),HNe=He([Cv],t=>t.filter(iw)),VNe=He([Cv],YN,{memoizeOptions:{resultEqualityCheck:aw}}),dm=He([VNe,Gu],KN),GNe=He([HNe,Gu,lr],uY),mO=He([dm,lr,Cv],JN),qY=He([lr],QN),$Ne=He([lr],t=>t.allowDataOverflow),XY=He([qY,$Ne],jX),WNe=He([Cv],t=>t.filter(iw)),qNe=He([GNe,WNe,_v,iY],vY),XNe=He([qNe,Gu,or,XY],xY),YNe=He([Cv],mY),KNe=He([dm,lr,YNe,lw,or],nO,{memoizeOptions:{resultEqualityCheck:rw}}),ZNe=He([yY,or,sm],om),JNe=He([ZNe,or],SY),QNe=He([bY,or,sm],om),eOe=He([QNe,or],wY),tOe=He([_Y,or,sm],om),nOe=He([tOe,or],MY),iOe=He([JNe,nOe,eOe],L1),rOe=He([lr,qY,XY,XNe,KNe,iOe,pn,or],iO),Rv=He([lr,pn,dm,mO,_v,or,rOe],rO),aOe=He([Rv,lr,pO],oO),sOe=He([lr,Rv,aOe,or],cO),YY=t=>{var e=or(t),n=sm(t),i=!1;return Av(t,e,n,i)},KY=He([lr,YY],ew),ZY=He([lr,pO,sOe,KY],sO),oOe=He([pn,mO,lr,or],NY),lOe=He([pn,mO,lr,or],OY),cOe=(t,e,n,i,r,a,s,o)=>{if(e){var{type:l}=e,c=lc(t,o);if(i){var d=n==="scaleBand"&&i.bandwidth?i.bandwidth()/2:2,f=l==="category"&&i.bandwidth?i.bandwidth()/d:0;return f=o==="angleAxis"&&r!=null&&r?.length>=2?_r(r[0]-r[1])*2*f:f,c&&s?s.map((p,m)=>({coordinate:i(p)+f,value:p,index:m,offset:f})):i.domain().map((p,m)=>({coordinate:i(p)+f,value:a?a[p]:p,index:m,offset:f}))}}},pc=He([pn,lr,pO,ZY,YY,oOe,lOe,or],cOe),gO=He([kY,IY,xNe],(t,e,n)=>UY(n.shared,t,e)),JY=t=>t.tooltip.settings.trigger,vO=t=>t.tooltip.settings.defaultIndex,Pv=He([um,gO,JY,vO],VY),Uu=He([Pv,dm,Ev,Rv],hO),QY=He([pc,Uu],FY),xO=He([Pv],t=>{if(t)return t.dataKey}),uOe=He([Pv],t=>{if(t)return t.graphicalItemId}),eK=He([um,gO,JY,vO],$Y),dOe=He([cc,uc,pn,ar,pc,vO,eK,Tv],GY),fOe=He([Pv,dOe],(t,e)=>t!=null&&t.coordinate?t.coordinate:e),hOe=He([Pv],t=>t.active),pOe=He([eK,Uu,Gu,Ev,QY,Tv,gO],WY),mOe=He([pOe],t=>{if(t!=null){var e=t.map(n=>n.payload).filter(n=>n!=null);return Array.from(new Set(e))}});function z8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function B8(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?z8(Object(n),!0).forEach(function(i){gOe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):z8(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function gOe(t,e,n){return(e=vOe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function vOe(t){var e=xOe(t,"string");return typeof e=="symbol"?e:e+""}function xOe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var yOe=()=>wt(lr),bOe=()=>{var t=yOe(),e=wt(pc),n=wt(ZY);return Ip(!t||!n?void 0:B8(B8({},t),{},{scale:n}),e)};function j8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Vh(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?j8(Object(n),!0).forEach(function(i){_Oe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):j8(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function _Oe(t,e,n){return(e=SOe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function SOe(t){var e=wOe(t,"string");return typeof e=="symbol"?e:e+""}function wOe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var MOe=(t,e,n,i)=>{var r=e.find(a=>a&&a.index===n);if(r){if(t==="horizontal")return{x:r.coordinate,y:i.chartY};if(t==="vertical")return{x:i.chartX,y:r.coordinate}}return{x:0,y:0}},EOe=(t,e,n,i)=>{var r=e.find(c=>c&&c.index===n);if(r){if(t==="centric"){var a=r.coordinate,{radius:s}=i;return Vh(Vh(Vh({},i),Ui(i.cx,i.cy,s,a)),{},{angle:a,radius:s})}var o=r.coordinate,{angle:l}=i;return Vh(Vh(Vh({},i),Ui(i.cx,i.cy,o,l)),{},{angle:l,radius:o})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function AOe(t,e){var{chartX:n,chartY:i}=t;return n>=e.left&&n<=e.left+e.width&&i>=e.top&&i<=e.top+e.height}var tK=(t,e,n,i,r)=>{var a,s=-1,o=(a=e?.length)!==null&&a!==void 0?a:0;if(o<=1||t==null)return 0;if(i==="angleAxis"&&r!=null&&Math.abs(Math.abs(r[1]-r[0])-360)<=1e-6)for(var l=0;l<o;l++){var c=l>0?n[l-1].coordinate:n[o-1].coordinate,d=n[l].coordinate,f=l>=o-1?n[0].coordinate:n[l+1].coordinate,p=void 0;if(_r(d-c)!==_r(f-d)){var m=[];if(_r(f-d)===_r(r[1]-r[0])){p=f;var y=d+r[1]-r[0];m[0]=Math.min(y,(y+c)/2),m[1]=Math.max(y,(y+c)/2)}else{p=c;var b=f+r[1]-r[0];m[0]=Math.min(d,(b+d)/2),m[1]=Math.max(d,(b+d)/2)}var x=[Math.min(d,(p+d)/2),Math.max(d,(p+d)/2)];if(t>x[0]&&t<=x[1]||t>=m[0]&&t<=m[1]){({index:s}=n[l]);break}}else{var v=Math.min(c,f),w=Math.max(c,f);if(t>(v+d)/2&&t<=(w+d)/2){({index:s}=n[l]);break}}}else if(e){for(var M=0;M<o;M++)if(M===0&&t<=(e[M].coordinate+e[M+1].coordinate)/2||M>0&&M<o-1&&t>(e[M].coordinate+e[M-1].coordinate)/2&&t<=(e[M].coordinate+e[M+1].coordinate)/2||M===o-1&&t>(e[M].coordinate+e[M-1].coordinate)/2){({index:s}=e[M]);break}}return s},nK=()=>wt(BN),yO=(t,e)=>e,iK=(t,e,n)=>n,bO=(t,e,n,i)=>i,TOe=He(pc,t=>RS(t,e=>e.coordinate)),_O=He([um,yO,iK,bO],VY),SO=He([_O,dm,Ev,Rv],hO),COe=(t,e,n)=>{if(e!=null){var i=um(t);return e==="axis"?n==="hover"?i.axisInteraction.hover.dataKey:i.axisInteraction.click.dataKey:n==="hover"?i.itemInteraction.hover.dataKey:i.itemInteraction.click.dataKey}},rK=He([um,yO,iK,bO],$Y),k1=He([cc,uc,pn,ar,pc,bO,rK,Tv],GY),ROe=He([_O,k1],(t,e)=>{var n;return(n=t.coordinate)!==null&&n!==void 0?n:e}),aK=He([pc,SO],FY),POe=He([rK,SO,Gu,Ev,aK,Tv,yO],WY),DOe=He([_O,SO],(t,e)=>({isActive:t.active&&e!=null,activeIndex:e})),NOe=(t,e,n,i,r,a,s)=>{if(!(!t||!n||!i||!r)&&AOe(t,s)){var o=QTe(t,e),l=tK(o,a,r,n,i),c=MOe(e,r,l,t);return{activeIndex:String(l),activeCoordinate:c}}},OOe=(t,e,n,i,r,a,s)=>{if(!(!t||!i||!r||!a||!n)){var o=gRe(t,n);if(o){var l=eCe(o,e),c=tK(l,s,a,i,r),d=EOe(e,a,c,o);return{activeIndex:String(c),activeCoordinate:d}}}},LOe=(t,e,n,i,r,a,s,o)=>{if(!(!t||!e||!i||!r||!a))return e==="horizontal"||e==="vertical"?NOe(t,e,i,r,a,s,o):OOe(t,e,n,i,r,a,s)},kOe=He(t=>t.zIndex.zIndexMap,(t,e)=>e,(t,e,n)=>n,(t,e,n)=>{if(e!=null){var i=t[e];if(i!=null)return n?i.panoramaElementId:i.elementId}}),IOe=He(t=>t.zIndex.zIndexMap,t=>{var e=Object.keys(t).map(i=>parseInt(i,10)).concat(Object.values(Fi)),n=Array.from(new Set(e));return n.sort((i,r)=>i-r)},{memoizeOptions:{resultEqualityCheck:yDe}});function H8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function V8(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?H8(Object(n),!0).forEach(function(i){UOe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):H8(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function UOe(t,e,n){return(e=FOe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function FOe(t){var e=zOe(t,"string");return typeof e=="symbol"?e:e+""}function zOe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var BOe={},jOe={zIndexMap:Object.values(Fi).reduce((t,e)=>V8(V8({},t),{},{[e]:{elementId:void 0,panoramaElementId:void 0,consumers:0}}),BOe)},HOe=new Set(Object.values(Fi));function VOe(t){return HOe.has(t)}var sK=Ua({name:"zIndex",initialState:jOe,reducers:{registerZIndexPortal:{reducer:(t,e)=>{var{zIndex:n}=e.payload;t.zIndexMap[n]?t.zIndexMap[n].consumers+=1:t.zIndexMap[n]={consumers:1,elementId:void 0,panoramaElementId:void 0}},prepare:ti()},unregisterZIndexPortal:{reducer:(t,e)=>{var{zIndex:n}=e.payload;t.zIndexMap[n]&&(t.zIndexMap[n].consumers-=1,t.zIndexMap[n].consumers<=0&&!VOe(n)&&delete t.zIndexMap[n])},prepare:ti()},registerZIndexPortalId:{reducer:(t,e)=>{var{zIndex:n,elementId:i,isPanorama:r}=e.payload;t.zIndexMap[n]?r?t.zIndexMap[n].panoramaElementId=i:t.zIndexMap[n].elementId=i:t.zIndexMap[n]={consumers:0,elementId:r?void 0:i,panoramaElementId:r?i:void 0}},prepare:ti()},unregisterZIndexPortalId:{reducer:(t,e)=>{var{zIndex:n}=e.payload;t.zIndexMap[n]&&(e.payload.isPanorama?t.zIndexMap[n].panoramaElementId=void 0:t.zIndexMap[n].elementId=void 0)},prepare:ti()}}}),{registerZIndexPortal:GOe,unregisterZIndexPortal:$Oe,registerZIndexPortalId:WOe,unregisterZIndexPortalId:qOe}=sK.actions,XOe=sK.reducer;function Fa(t){var{zIndex:e,children:n}=t,i=NCe(),r=i&&e!==void 0&&e!==0,a=ia(),s=Wn();R.useLayoutEffect(()=>r?(s(GOe({zIndex:e})),()=>{s($Oe({zIndex:e}))}):lv,[s,e,r]);var o=wt(c=>kOe(c,e,a));if(!r)return n;if(!o)return null;var l=document.getElementById(o);return l?Il.createPortal(n,l):null}function X3(){return X3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},X3.apply(null,arguments)}function G8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function yb(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?G8(Object(n),!0).forEach(function(i){YOe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):G8(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function YOe(t,e,n){return(e=KOe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function KOe(t){var e=ZOe(t,"string");return typeof e=="symbol"?e:e+""}function ZOe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function JOe(t){var{cursor:e,cursorComp:n,cursorProps:i}=t;return R.isValidElement(e)?R.cloneElement(e,i):R.createElement(n,i)}function QOe(t){var e,{coordinate:n,payload:i,index:r,offset:a,tooltipAxisBandSize:s,layout:o,cursor:l,tooltipEventType:c,chartName:d}=t,f=n,p=i,m=r;if(!l||!f||d!=="ScatterChart"&&c!=="axis")return null;var y,b,x;if(d==="ScatterChart")y=f,b=D2e,x=Fi.cursorLine;else if(d==="BarChart")y=N2e(o,f,a,s),b=tX,x=Fi.cursorRectangle;else if(o==="radial"&&I7(f)){var{cx:v,cy:w,radius:M,startAngle:A,endAngle:T}=iX(f);y={cx:v,cy:w,startAngle:A,endAngle:T,innerRadius:M,outerRadius:M},b=aX,x=Fi.cursorLine}else y={points:bRe(o,f,a)},b=hp,x=Fi.cursorLine;var D=typeof l=="object"&&"className"in l?l.className:void 0,C=yb(yb(yb(yb({stroke:"#ccc",pointerEvents:"none"},a),y),gf(l)),{},{payload:p,payloadIndex:m,className:yn("recharts-tooltip-cursor",D)});return R.createElement(Fa,{zIndex:(e=t.zIndex)!==null&&e!==void 0?e:x},R.createElement(JOe,{cursor:l,cursorComp:b,cursorProps:C}))}function eLe(t){var e=bOe(),n=Fq(),i=tm(),r=nK();return e==null||n==null||i==null||r==null?null:R.createElement(QOe,X3({},t,{offset:n,layout:i,tooltipAxisBandSize:e,chartName:r}))}var oK=R.createContext(null),tLe=()=>R.useContext(oK),$C={exports:{}},$8;function nLe(){return $8||($8=1,(function(t){var e=Object.prototype.hasOwnProperty,n="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(n=!1));function r(l,c,d){this.fn=l,this.context=c,this.once=d||!1}function a(l,c,d,f,p){if(typeof d!="function")throw new TypeError("The listener must be a function");var m=new r(d,f||l,p),y=n?n+c:c;return l._events[y]?l._events[y].fn?l._events[y]=[l._events[y],m]:l._events[y].push(m):(l._events[y]=m,l._eventsCount++),l}function s(l,c){--l._eventsCount===0?l._events=new i:delete l._events[c]}function o(){this._events=new i,this._eventsCount=0}o.prototype.eventNames=function(){var c=[],d,f;if(this._eventsCount===0)return c;for(f in d=this._events)e.call(d,f)&&c.push(n?f.slice(1):f);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(d)):c},o.prototype.listeners=function(c){var d=n?n+c:c,f=this._events[d];if(!f)return[];if(f.fn)return[f.fn];for(var p=0,m=f.length,y=new Array(m);p<m;p++)y[p]=f[p].fn;return y},o.prototype.listenerCount=function(c){var d=n?n+c:c,f=this._events[d];return f?f.fn?1:f.length:0},o.prototype.emit=function(c,d,f,p,m,y){var b=n?n+c:c;if(!this._events[b])return!1;var x=this._events[b],v=arguments.length,w,M;if(x.fn){switch(x.once&&this.removeListener(c,x.fn,void 0,!0),v){case 1:return x.fn.call(x.context),!0;case 2:return x.fn.call(x.context,d),!0;case 3:return x.fn.call(x.context,d,f),!0;case 4:return x.fn.call(x.context,d,f,p),!0;case 5:return x.fn.call(x.context,d,f,p,m),!0;case 6:return x.fn.call(x.context,d,f,p,m,y),!0}for(M=1,w=new Array(v-1);M<v;M++)w[M-1]=arguments[M];x.fn.apply(x.context,w)}else{var A=x.length,T;for(M=0;M<A;M++)switch(x[M].once&&this.removeListener(c,x[M].fn,void 0,!0),v){case 1:x[M].fn.call(x[M].context);break;case 2:x[M].fn.call(x[M].context,d);break;case 3:x[M].fn.call(x[M].context,d,f);break;case 4:x[M].fn.call(x[M].context,d,f,p);break;default:if(!w)for(T=1,w=new Array(v-1);T<v;T++)w[T-1]=arguments[T];x[M].fn.apply(x[M].context,w)}}return!0},o.prototype.on=function(c,d,f){return a(this,c,d,f,!1)},o.prototype.once=function(c,d,f){return a(this,c,d,f,!0)},o.prototype.removeListener=function(c,d,f,p){var m=n?n+c:c;if(!this._events[m])return this;if(!d)return s(this,m),this;var y=this._events[m];if(y.fn)y.fn===d&&(!p||y.once)&&(!f||y.context===f)&&s(this,m);else{for(var b=0,x=[],v=y.length;b<v;b++)(y[b].fn!==d||p&&!y[b].once||f&&y[b].context!==f)&&x.push(y[b]);x.length?this._events[m]=x.length===1?x[0]:x:s(this,m)}return this},o.prototype.removeAllListeners=function(c){var d;return c?(d=n?n+c:c,this._events[d]&&s(this,d)):(this._events=new i,this._eventsCount=0),this},o.prototype.off=o.prototype.removeListener,o.prototype.addListener=o.prototype.on,o.prefixed=n,o.EventEmitter=o,t.exports=o})($C)),$C.exports}var iLe=nLe();const rLe=Vs(iLe);var $0=new rLe,Y3="recharts.syncEvent.tooltip",W8="recharts.syncEvent.brush";function wO(t,e){if(e){var n=Number.parseInt(e,10);if(!Bs(n))return t?.[n]}}var aLe={chartName:"",tooltipPayloadSearcher:void 0,eventEmitter:void 0,defaultTooltipEventType:"axis"},lK=Ua({name:"options",initialState:aLe,reducers:{createEventEmitter:t=>{t.eventEmitter==null&&(t.eventEmitter=Symbol("rechartsEventEmitter"))}}}),sLe=lK.reducer,{createEventEmitter:oLe}=lK.actions;function lLe(t){return t.tooltip.syncInteraction}var cLe={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},cK=Ua({name:"chartData",initialState:cLe,reducers:{setChartData(t,e){if(t.chartData=e.payload,e.payload==null){t.dataStartIndex=0,t.dataEndIndex=0;return}e.payload.length>0&&t.dataEndIndex!==e.payload.length-1&&(t.dataEndIndex=e.payload.length-1)},setComputedData(t,e){t.computedData=e.payload},setDataStartEndIndexes(t,e){var{startIndex:n,endIndex:i}=e.payload;n!=null&&(t.dataStartIndex=n),i!=null&&(t.dataEndIndex=i)}}}),{setChartData:q8,setDataStartEndIndexes:uLe,setComputedData:WHe}=cK.actions,dLe=cK.reducer,fLe=["x","y"];function X8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Gh(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?X8(Object(n),!0).forEach(function(i){hLe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):X8(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function hLe(t,e,n){return(e=pLe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function pLe(t){var e=mLe(t,"string");return typeof e=="symbol"?e:e+""}function mLe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function gLe(t,e){if(t==null)return{};var n,i,r=vLe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function vLe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function xLe(){var t=wt(jN),e=wt(HN),n=Wn(),i=wt(rY),r=wt(pc),a=tm(),s=HS(),o=wt(l=>l.rootProps.className);R.useEffect(()=>{if(t==null)return lv;var l=(c,d,f)=>{if(e!==f&&t===c){if(i==="index"){var p;if(s&&d!==null&&d!==void 0&&(p=d.payload)!==null&&p!==void 0&&p.coordinate&&d.payload.sourceViewBox){var m=d.payload.coordinate,{x:y,y:b}=m,x=gLe(m,fLe),{x:v,y:w,width:M,height:A}=d.payload.sourceViewBox,T=Gh(Gh({},x),{},{x:s.x+(M?(y-v)/M:0)*s.width,y:s.y+(A?(b-w)/A:0)*s.height});n(Gh(Gh({},d),{},{payload:Gh(Gh({},d.payload),{},{coordinate:T})}))}else n(d);return}if(r!=null){var D;if(typeof i=="function"){var C={activeTooltipIndex:d.payload.index==null?void 0:Number(d.payload.index),isTooltipActive:d.payload.active,activeIndex:d.payload.index==null?void 0:Number(d.payload.index),activeLabel:d.payload.label,activeDataKey:d.payload.dataKey,activeCoordinate:d.payload.coordinate},U=i(r,C);D=r[U]}else i==="value"&&(D=r.find(q=>String(q.value)===d.payload.label));var{coordinate:P}=d.payload;if(D==null||d.payload.active===!1||P==null||s==null){n(W3({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}var{x:k,y:B}=P,I=Math.min(k,s.x+s.width),W=Math.min(B,s.y+s.height),O={x:a==="horizontal"?D.coordinate:I,y:a==="horizontal"?W:D.coordinate},$=W3({active:d.payload.active,coordinate:O,dataKey:d.payload.dataKey,index:String(D.index),label:d.payload.label,sourceViewBox:d.payload.sourceViewBox,graphicalItemId:d.payload.graphicalItemId});n($)}}};return $0.on(Y3,l),()=>{$0.off(Y3,l)}},[o,n,e,t,i,r,a,s])}function yLe(){var t=wt(jN),e=wt(HN),n=Wn();R.useEffect(()=>{if(t==null)return lv;var i=(r,a,s)=>{e!==s&&t===r&&n(uLe(a))};return $0.on(W8,i),()=>{$0.off(W8,i)}},[n,e,t])}function bLe(){var t=Wn();R.useEffect(()=>{t(oLe())},[t]),xLe(),yLe()}function _Le(t,e,n,i,r,a){var s=wt(m=>COe(m,t,e)),o=wt(HN),l=wt(jN),c=wt(rY),d=wt(lLe),f=d?.active,p=HS();R.useEffect(()=>{if(!f&&l!=null&&o!=null){var m=W3({active:a,coordinate:n,dataKey:s,index:r,label:typeof i=="number"?String(i):i,sourceViewBox:p,graphicalItemId:void 0});$0.emit(Y3,l,m,o)}},[f,n,s,r,i,o,l,c,a,p])}function Y8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function K8(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Y8(Object(n),!0).forEach(function(i){SLe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Y8(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function SLe(t,e,n){return(e=wLe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function wLe(t){var e=MLe(t,"string");return typeof e=="symbol"?e:e+""}function MLe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ELe(t){return t.dataKey}function ALe(t,e){return R.isValidElement(t)?R.cloneElement(t,e):typeof t=="function"?R.createElement(t,e):R.createElement(u2e,e)}var Z8=[],TLe={allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",axisId:0,contentStyle:{},cursor:!0,filterNull:!0,isAnimationActive:"auto",itemSorter:"name",itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,wrapperStyle:{}};function WC(t){var e,n,i=Vi(t,TLe),{active:r,allowEscapeViewBox:a,animationDuration:s,animationEasing:o,content:l,filterNull:c,isAnimationActive:d,offset:f,payloadUniqBy:p,position:m,reverseDirection:y,useTranslate3d:b,wrapperStyle:x,cursor:v,shared:w,trigger:M,defaultIndex:A,portal:T,axisId:D}=i,C=Wn(),U=typeof A=="number"?String(A):A;R.useEffect(()=>{C(wNe({shared:w,trigger:M,axisId:D,active:r,defaultIndex:U}))},[C,w,M,D,r,U]);var P=HS(),k=Kq(),B=vNe(w),{activeIndex:I,isActive:W}=(e=wt(be=>DOe(be,B,M,U)))!==null&&e!==void 0?e:{},O=wt(be=>POe(be,B,M,U)),$=wt(be=>aK(be,B,M,U)),q=wt(be=>ROe(be,B,M,U)),G=O,Y=tLe(),Q=(n=r??W)!==null&&n!==void 0?n:!1,[se,H]=Z7([G,Q]),X=B==="axis"?$:void 0;_Le(B,M,q,X,I,Q);var re=T??Y;if(re==null||P==null||B==null)return null;var ce=G??Z8;Q||(ce=Z8),c&&ce.length&&(ce=W7(ce.filter(be=>be.value!=null&&(be.hide!==!0||i.includeHidden)),p,ELe));var ye=ce.length>0,me=R.createElement(v2e,{allowEscapeViewBox:a,animationDuration:s,animationEasing:o,isAnimationActive:d,active:Q,coordinate:q,hasPayload:ye,offset:f,position:m,reverseDirection:y,useTranslate3d:b,viewBox:P,wrapperStyle:x,lastBoundingBox:se,innerRef:H,hasPortalFromProps:!!T},ALe(l,K8(K8({},i),{},{payload:ce,label:X,active:Q,activeIndex:I,coordinate:q,accessibilityLayer:k})));return R.createElement(R.Fragment,null,Il.createPortal(me,re),Q&&R.createElement(eLe,{cursor:v,tooltipEventType:B,coordinate:q,payload:ce,index:I}))}var Dv=t=>null;Dv.displayName="Cell";function CLe(t,e,n){return(e=RLe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function RLe(t){var e=PLe(t,"string");return typeof e=="symbol"?e:e+""}function PLe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}class DLe{constructor(e){CLe(this,"cache",new Map),this.maxSize=e}get(e){var n=this.cache.get(e);return n!==void 0&&(this.cache.delete(e),this.cache.set(e,n)),n}set(e,n){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){var i=this.cache.keys().next().value;i!=null&&this.cache.delete(i)}this.cache.set(e,n)}clear(){this.cache.clear()}size(){return this.cache.size}}function J8(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function NLe(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?J8(Object(n),!0).forEach(function(i){OLe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):J8(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function OLe(t,e,n){return(e=LLe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function LLe(t){var e=kLe(t,"string");return typeof e=="symbol"?e:e+""}function kLe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var ILe={cacheSize:2e3,enableCache:!0},uK=NLe({},ILe),Q8=new DLe(uK.cacheSize),ULe={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},e6="recharts_measurement_span";function FLe(t,e){var n=e.fontSize||"",i=e.fontFamily||"",r=e.fontWeight||"",a=e.fontStyle||"",s=e.letterSpacing||"",o=e.textTransform||"";return"".concat(t,"|").concat(n,"|").concat(i,"|").concat(r,"|").concat(a,"|").concat(s,"|").concat(o)}var t6=(t,e)=>{try{var n=document.getElementById(e6);n||(n=document.createElement("span"),n.setAttribute("id",e6),n.setAttribute("aria-hidden","true"),document.body.appendChild(n)),Object.assign(n.style,ULe,e),n.textContent="".concat(t);var i=n.getBoundingClientRect();return{width:i.width,height:i.height}}catch{return{width:0,height:0}}},n0=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||nm.isSsr)return{width:0,height:0};if(!uK.enableCache)return t6(e,n);var i=FLe(e,n),r=Q8.get(i);if(r)return r;var a=t6(e,n);return Q8.set(i,a),a},n6=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,i6=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,zLe=/^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/,BLe=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,dK={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},jLe=Object.keys(dK),np="NaN";function HLe(t,e){return t*dK[e]}class Aa{static parse(e){var n,[,i,r]=(n=BLe.exec(e))!==null&&n!==void 0?n:[];return new Aa(parseFloat(i),r??"")}constructor(e,n){this.num=e,this.unit=n,this.num=e,this.unit=n,Bs(e)&&(this.unit=""),n!==""&&!zLe.test(n)&&(this.num=NaN,this.unit=""),jLe.includes(n)&&(this.num=HLe(e,n),this.unit="px")}add(e){return this.unit!==e.unit?new Aa(NaN,""):new Aa(this.num+e.num,this.unit)}subtract(e){return this.unit!==e.unit?new Aa(NaN,""):new Aa(this.num-e.num,this.unit)}multiply(e){return this.unit!==""&&e.unit!==""&&this.unit!==e.unit?new Aa(NaN,""):new Aa(this.num*e.num,this.unit||e.unit)}divide(e){return this.unit!==""&&e.unit!==""&&this.unit!==e.unit?new Aa(NaN,""):new Aa(this.num/e.num,this.unit||e.unit)}toString(){return"".concat(this.num).concat(this.unit)}isNaN(){return Bs(this.num)}}function fK(t){if(t.includes(np))return np;for(var e=t;e.includes("*")||e.includes("/");){var n,[,i,r,a]=(n=n6.exec(e))!==null&&n!==void 0?n:[],s=Aa.parse(i??""),o=Aa.parse(a??""),l=r==="*"?s.multiply(o):s.divide(o);if(l.isNaN())return np;e=e.replace(n6,l.toString())}for(;e.includes("+")||/.-\d+(?:\.\d+)?/.test(e);){var c,[,d,f,p]=(c=i6.exec(e))!==null&&c!==void 0?c:[],m=Aa.parse(d??""),y=Aa.parse(p??""),b=f==="+"?m.add(y):m.subtract(y);if(b.isNaN())return np;e=e.replace(i6,b.toString())}return e}var r6=/\(([^()]*)\)/;function VLe(t){for(var e=t,n;(n=r6.exec(e))!=null;){var[,i]=n;e=e.replace(r6,fK(i))}return e}function GLe(t){var e=t.replace(/\s+/g,"");return e=VLe(e),e=fK(e),e}function $Le(t){try{return GLe(t)}catch{return np}}function qC(t){var e=$Le(t.slice(5,-1));return e===np?"":e}var WLe=["x","y","lineHeight","capHeight","fill","scaleToFit","textAnchor","verticalAnchor"],qLe=["dx","dy","angle","className","breakAll"];function K3(){return K3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},K3.apply(null,arguments)}function a6(t,e){if(t==null)return{};var n,i,r=XLe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function XLe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var hK=/[ \f\n\r\t\v\u2028\u2029]+/,pK=t=>{var{children:e,breakAll:n,style:i}=t;try{var r=[];oi(e)||(n?r=e.toString().split(""):r=e.toString().split(hK));var a=r.map(o=>({word:o,width:n0(o,i).width})),s=n?0:n0(" ",i).width;return{wordsWithComputedWidth:a,spaceWidth:s}}catch{return null}};function YLe(t){return t==="start"||t==="middle"||t==="end"||t==="inherit"}var mK=(t,e,n,i)=>t.reduce((r,a)=>{var{word:s,width:o}=a,l=r[r.length-1];if(l&&o!=null&&(e==null||i||l.width+o+n<Number(e)))l.words.push(s),l.width+=o+n;else{var c={words:[s],width:o};r.push(c)}return r},[]),gK=t=>t.reduce((e,n)=>e.width>n.width?e:n),KLe="…",s6=(t,e,n,i,r,a,s,o)=>{var l=t.slice(0,e),c=pK({breakAll:n,style:i,children:l+KLe});if(!c)return[!1,[]];var d=mK(c.wordsWithComputedWidth,a,s,o),f=d.length>r||gK(d).width>Number(a);return[f,d]},ZLe=(t,e,n,i,r)=>{var{maxLines:a,children:s,style:o,breakAll:l}=t,c=St(a),d=String(s),f=mK(e,i,n,r);if(!c||r)return f;var p=f.length>a||gK(f).width>Number(i);if(!p)return f;for(var m=0,y=d.length-1,b=0,x;m<=y&&b<=d.length-1;){var v=Math.floor((m+y)/2),w=v-1,[M,A]=s6(d,w,l,o,a,i,n,r),[T]=s6(d,v,l,o,a,i,n,r);if(!M&&!T&&(m=v+1),M&&T&&(y=v-1),!M&&T){x=A;break}b++}return x||f},o6=t=>{var e=oi(t)?[]:t.toString().split(hK);return[{words:e,width:void 0}]},JLe=t=>{var{width:e,scaleToFit:n,children:i,style:r,breakAll:a,maxLines:s}=t;if((e||n)&&!nm.isSsr){var o,l,c=pK({breakAll:a,children:i,style:r});if(c){var{wordsWithComputedWidth:d,spaceWidth:f}=c;o=d,l=f}else return o6(i);return ZLe({breakAll:a,children:i,maxLines:s,style:r},o,l,e,!!n)}return o6(i)},vK="#808080",QLe={angle:0,breakAll:!1,capHeight:"0.71em",fill:vK,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},dw=R.forwardRef((t,e)=>{var n=Vi(t,QLe),{x:i,y:r,lineHeight:a,capHeight:s,fill:o,scaleToFit:l,textAnchor:c,verticalAnchor:d}=n,f=a6(n,WLe),p=R.useMemo(()=>JLe({breakAll:f.breakAll,children:f.children,maxLines:f.maxLines,scaleToFit:l,style:f.style,width:f.width}),[f.breakAll,f.children,f.maxLines,l,f.style,f.width]),{dx:m,dy:y,angle:b,className:x,breakAll:v}=f,w=a6(f,qLe);if(!Vo(i)||!Vo(r)||p.length===0)return null;var M=Number(i)+(St(m)?m:0),A=Number(r)+(St(y)?y:0);if(!Qn(M)||!Qn(A))return null;var T;switch(d){case"start":T=qC("calc(".concat(s,")"));break;case"middle":T=qC("calc(".concat((p.length-1)/2," * -").concat(a," + (").concat(s," / 2))"));break;default:T=qC("calc(".concat(p.length-1," * -").concat(a,")"));break}var D=[];if(l){var C=p[0].width,{width:U}=f;D.push("scale(".concat(St(U)&&St(C)?U/C:1,")"))}return b&&D.push("rotate(".concat(b,", ").concat(M,", ").concat(A,")")),D.length&&(w.transform=D.join(" ")),R.createElement("text",K3({},ga(w),{ref:e,x:M,y:A,className:yn("recharts-text",x),textAnchor:c,fill:o.includes("url")?vK:o}),p.map((P,k)=>{var B=P.words.join(v?"":" ");return R.createElement("tspan",{x:M,dy:k===0?T:a,key:"".concat(B,"-").concat(k)},B)}))});dw.displayName="Text";var eke=["labelRef"];function tke(t,e){if(t==null)return{};var n,i,r=nke(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function nke(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function l6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Si(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?l6(Object(n),!0).forEach(function(i){ike(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):l6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function ike(t,e,n){return(e=rke(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function rke(t){var e=ake(t,"string");return typeof e=="symbol"?e:e+""}function ake(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function kl(){return kl=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},kl.apply(null,arguments)}var xK=R.createContext(null),ske=t=>{var{x:e,y:n,upperWidth:i,lowerWidth:r,width:a,height:s,children:o}=t,l=R.useMemo(()=>({x:e,y:n,upperWidth:i,lowerWidth:r,width:a,height:s}),[e,n,i,r,a,s]);return R.createElement(xK.Provider,{value:l},o)},yK=()=>{var t=R.useContext(xK),e=HS();return t||Uq(e)},oke=R.createContext(null),lke=()=>{var t=R.useContext(oke),e=wt(cY);return t||e},cke=t=>{var{value:e,formatter:n}=t,i=oi(t.children)?e:t.children;return typeof n=="function"?n(i):i},MO=t=>t!=null&&typeof t=="function",uke=(t,e)=>{var n=_r(e-t),i=Math.min(Math.abs(e-t),360);return n*i},dke=(t,e,n,i,r)=>{var{offset:a,className:s}=t,{cx:o,cy:l,innerRadius:c,outerRadius:d,startAngle:f,endAngle:p,clockWise:m}=r,y=(c+d)/2,b=uke(f,p),x=b>=0?1:-1,v,w;switch(e){case"insideStart":v=f+x*a,w=m;break;case"insideEnd":v=p-x*a,w=!m;break;case"end":v=p+x*a,w=m;break;default:throw new Error("Unsupported position ".concat(e))}w=b<=0?w:!w;var M=Ui(o,l,y,v),A=Ui(o,l,y,v+(w?1:-1)*359),T="M".concat(M.x,",").concat(M.y,`
- A`).concat(y,",").concat(y,",0,1,").concat(w?0:1,`,
- `).concat(A.x,",").concat(A.y),D=oi(t.id)?D0("recharts-radial-line-"):t.id;return R.createElement("text",kl({},i,{dominantBaseline:"central",className:yn("recharts-radial-bar-label",s)}),R.createElement("defs",null,R.createElement("path",{id:D,d:T})),R.createElement("textPath",{xlinkHref:"#".concat(D)},n))},fke=(t,e,n)=>{var{cx:i,cy:r,innerRadius:a,outerRadius:s,startAngle:o,endAngle:l}=t,c=(o+l)/2;if(n==="outside"){var{x:d,y:f}=Ui(i,r,s+e,c);return{x:d,y:f,textAnchor:d>=i?"start":"end",verticalAnchor:"middle"}}if(n==="center")return{x:i,y:r,textAnchor:"middle",verticalAnchor:"middle"};if(n==="centerTop")return{x:i,y:r,textAnchor:"middle",verticalAnchor:"start"};if(n==="centerBottom")return{x:i,y:r,textAnchor:"middle",verticalAnchor:"end"};var p=(a+s)/2,{x:m,y}=Ui(i,r,p,c);return{x:m,y,textAnchor:"middle",verticalAnchor:"middle"}},Z3=t=>"cx"in t&&St(t.cx),hke=(t,e)=>{var{parentViewBox:n,offset:i,position:r}=t,a;n!=null&&!Z3(n)&&(a=n);var{x:s,y:o,upperWidth:l,lowerWidth:c,height:d}=e,f=s,p=s+(l-c)/2,m=(f+p)/2,y=(l+c)/2,b=f+l/2,x=d>=0?1:-1,v=x*i,w=x>0?"end":"start",M=x>0?"start":"end",A=l>=0?1:-1,T=A*i,D=A>0?"end":"start",C=A>0?"start":"end";if(r==="top"){var U={x:f+l/2,y:o-v,textAnchor:"middle",verticalAnchor:w};return Si(Si({},U),a?{height:Math.max(o-a.y,0),width:l}:{})}if(r==="bottom"){var P={x:p+c/2,y:o+d+v,textAnchor:"middle",verticalAnchor:M};return Si(Si({},P),a?{height:Math.max(a.y+a.height-(o+d),0),width:c}:{})}if(r==="left"){var k={x:m-T,y:o+d/2,textAnchor:D,verticalAnchor:"middle"};return Si(Si({},k),a?{width:Math.max(k.x-a.x,0),height:d}:{})}if(r==="right"){var B={x:m+y+T,y:o+d/2,textAnchor:C,verticalAnchor:"middle"};return Si(Si({},B),a?{width:Math.max(a.x+a.width-B.x,0),height:d}:{})}var I=a?{width:y,height:d}:{};return r==="insideLeft"?Si({x:m+T,y:o+d/2,textAnchor:C,verticalAnchor:"middle"},I):r==="insideRight"?Si({x:m+y-T,y:o+d/2,textAnchor:D,verticalAnchor:"middle"},I):r==="insideTop"?Si({x:f+l/2,y:o+v,textAnchor:"middle",verticalAnchor:M},I):r==="insideBottom"?Si({x:p+c/2,y:o+d-v,textAnchor:"middle",verticalAnchor:w},I):r==="insideTopLeft"?Si({x:f+T,y:o+v,textAnchor:C,verticalAnchor:M},I):r==="insideTopRight"?Si({x:f+l-T,y:o+v,textAnchor:D,verticalAnchor:M},I):r==="insideBottomLeft"?Si({x:p+T,y:o+d-v,textAnchor:C,verticalAnchor:w},I):r==="insideBottomRight"?Si({x:p+c-T,y:o+d-v,textAnchor:D,verticalAnchor:w},I):r&&typeof r=="object"&&(St(r.x)||ec(r.x))&&(St(r.y)||ec(r.y))?Si({x:s+ea(r.x,y),y:o+ea(r.y,d),textAnchor:"end",verticalAnchor:"end"},I):Si({x:b,y:o+d/2,textAnchor:"middle",verticalAnchor:"middle"},I)},pke={angle:0,offset:5,zIndex:Fi.label,position:"middle",textBreakAll:!1};function su(t){var e=Vi(t,pke),{viewBox:n,position:i,value:r,children:a,content:s,className:o="",textBreakAll:l,labelRef:c}=e,d=lke(),f=yK(),p=i==="center"?f:d??f,m,y,b;if(n==null?m=p:Z3(n)?m=n:m=Uq(n),!m||oi(r)&&oi(a)&&!R.isValidElement(s)&&typeof s!="function")return null;var x=Si(Si({},e),{},{viewBox:m});if(R.isValidElement(s)){var{labelRef:v}=x,w=tke(x,eke);return R.cloneElement(s,w)}if(typeof s=="function"){if(y=R.createElement(s,x),R.isValidElement(y))return y}else y=cke(e);var M=ga(e);if(Z3(m)){if(i==="insideStart"||i==="insideEnd"||i==="end")return dke(e,i,y,M,m);b=fke(m,e.offset,e.position)}else b=hke(e,m);return R.createElement(Fa,{zIndex:e.zIndex},R.createElement(dw,kl({ref:c,className:yn("recharts-label",o)},M,b,{textAnchor:YLe(M.textAnchor)?M.textAnchor:b.textAnchor,breakAll:l}),y))}su.displayName="Label";var mke=(t,e,n)=>{if(!t)return null;var i={viewBox:e,labelRef:n};return t===!0?R.createElement(su,kl({key:"label-implicit"},i)):Vo(t)?R.createElement(su,kl({key:"label-implicit",value:t},i)):R.isValidElement(t)?t.type===su?R.cloneElement(t,Si({key:"label-implicit"},i)):R.createElement(su,kl({key:"label-implicit",content:t},i)):MO(t)?R.createElement(su,kl({key:"label-implicit",content:t},i)):t&&typeof t=="object"?R.createElement(su,kl({},t,{key:"label-implicit"},i)):null};function gke(t){var{label:e,labelRef:n}=t,i=yK();return mke(e,i,n)||null}var XC={},YC={},c6;function vke(){return c6||(c6=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return n[n.length-1]}t.last=e})(YC)),YC}var KC={},u6;function xke(){return u6||(u6=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){return Array.isArray(n)?n:Array.from(n)}t.toArray=e})(KC)),KC}var d6;function yke(){return d6||(d6=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});const e=vke(),n=xke(),i=JD();function r(a){if(i.isArrayLike(a))return e.last(n.toArray(a))}t.last=r})(XC)),XC}var ZC,f6;function bke(){return f6||(f6=1,ZC=yke().last),ZC}var _ke=bke();const Ske=Vs(_ke);var wke=["valueAccessor"],Mke=["dataKey","clockWise","id","textBreakAll","zIndex"];function I1(){return I1=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},I1.apply(null,arguments)}function h6(t,e){if(t==null)return{};var n,i,r=Eke(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Eke(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var Ake=t=>Array.isArray(t.value)?Ske(t.value):t.value,bK=R.createContext(void 0),_K=bK.Provider,SK=R.createContext(void 0),Tke=SK.Provider;function Cke(){return R.useContext(bK)}function Rke(){return R.useContext(SK)}function Gb(t){var{valueAccessor:e=Ake}=t,n=h6(t,wke),{dataKey:i,clockWise:r,id:a,textBreakAll:s,zIndex:o}=n,l=h6(n,Mke),c=Cke(),d=Rke(),f=c||d;return!f||!f.length?null:R.createElement(Fa,{zIndex:o??Fi.label},R.createElement(Ei,{className:"recharts-label-list"},f.map((p,m)=>{var y,b=oi(i)?e(p,m):Hn(p&&p.payload,i),x=oi(a)?{}:{id:"".concat(a,"-").concat(m)};return R.createElement(su,I1({key:"label-".concat(m)},ga(p),l,x,{fill:(y=n.fill)!==null&&y!==void 0?y:p.fill,parentViewBox:p.parentViewBox,value:b,textBreakAll:s,viewBox:p.viewBox,index:m,zIndex:0}))})))}Gb.displayName="LabelList";function EO(t){var{label:e}=t;return e?e===!0?R.createElement(Gb,{key:"labelList-implicit"}):R.isValidElement(e)||MO(e)?R.createElement(Gb,{key:"labelList-implicit",content:e}):typeof e=="object"?R.createElement(Gb,I1({key:"labelList-implicit"},e,{type:String(e.type)})):null:null}function J3(){return J3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},J3.apply(null,arguments)}var wK=t=>{var{cx:e,cy:n,r:i,className:r}=t,a=yn("recharts-dot",r);return St(e)&&St(n)&&St(i)?R.createElement("circle",J3({},La(t),ZD(t),{className:a,cx:e,cy:n,r:i})):null},MK=t=>t.graphicalItems.polarItems,Pke=He([ii,Sv],qN),fw=He([MK,ci,Pke],XN),Dke=He([fw],YN),hw=He([Dke,UN],KN),Nke=He([hw,ci,fw],JN);He([hw,ci,fw],(t,e,n)=>n.length>0?t.flatMap(i=>n.flatMap(r=>{var a,s=Hn(i,(a=e.dataKey)!==null&&a!==void 0?a:r.dataKey);return{value:s,errorDomain:[]}})).filter(Boolean):e?.dataKey!=null?t.map(i=>({value:Hn(i,e.dataKey),errorDomain:[]})):t.map(i=>({value:i,errorDomain:[]})));var p6=()=>{},Oke=He([hw,ci,fw,lw,ii],nO),Lke=He([ci,eO,tO,p6,Oke,p6,pn,ii],iO),EK=He([ci,pn,hw,Nke,_v,ii,Lke],rO),kke=He([EK,ci,lm],oO);He([ci,EK,kke,ii],cO);var Ike={radiusAxis:{},angleAxis:{}},AK=Ua({name:"polarAxis",initialState:Ike,reducers:{addRadiusAxis(t,e){t.radiusAxis[e.payload.id]=e.payload},removeRadiusAxis(t,e){delete t.radiusAxis[e.payload.id]},addAngleAxis(t,e){t.angleAxis[e.payload.id]=e.payload},removeAngleAxis(t,e){delete t.angleAxis[e.payload.id]}}}),{addRadiusAxis:qHe,removeRadiusAxis:XHe,addAngleAxis:YHe,removeAngleAxis:KHe}=AK.actions,Uke=AK.reducer;function m6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function g6(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?m6(Object(n),!0).forEach(function(i){Fke(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):m6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function Fke(t,e,n){return(e=zke(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function zke(t){var e=Bke(t,"string");return typeof e=="symbol"?e:e+""}function Bke(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var jke=(t,e)=>e,AO=He([MK,jke],(t,e)=>t.filter(n=>n.type==="pie").find(n=>n.id===e)),Hke=[],TO=(t,e,n)=>n?.length===0?Hke:n,TK=He([UN,AO,TO],(t,e,n)=>{var{chartData:i}=t;if(e!=null){var r;if(e?.data!=null&&e.data.length>0?r=e.data:r=i,(!r||!r.length)&&n!=null&&(r=n.map(a=>g6(g6({},e.presentationProps),a.props))),r!=null)return r}}),Vke=He([TK,AO,TO],(t,e,n)=>{if(!(t==null||e==null))return t.map((i,r)=>{var a,s=Hn(i,e.nameKey,e.name),o;return n!=null&&(a=n[r])!==null&&a!==void 0&&(a=a.props)!==null&&a!==void 0&&a.fill?o=n[r].props.fill:typeof i=="object"&&i!=null&&"fill"in i?o=i.fill:o=e.fill,{value:em(s,e.dataKey),color:o,payload:i,type:e.legendType}})}),Gke=He([TK,AO,TO,ar],(t,e,n,i)=>{if(!(e==null||t==null))return $Ie({offset:i,pieSettings:e,displayedData:t,cells:n})}),JC={exports:{}},Nn={};var v6;function $ke(){if(v6)return Nn;v6=1;var t=Symbol.for("react.transitional.element"),e=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),a=Symbol.for("react.consumer"),s=Symbol.for("react.context"),o=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.suspense_list"),d=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),p=Symbol.for("react.view_transition"),m=Symbol.for("react.client.reference");function y(b){if(typeof b=="object"&&b!==null){var x=b.$$typeof;switch(x){case t:switch(b=b.type,b){case n:case r:case i:case l:case c:case p:return b;default:switch(b=b&&b.$$typeof,b){case s:case o:case f:case d:return b;case a:return b;default:return x}}case e:return x}}}return Nn.ContextConsumer=a,Nn.ContextProvider=s,Nn.Element=t,Nn.ForwardRef=o,Nn.Fragment=n,Nn.Lazy=f,Nn.Memo=d,Nn.Portal=e,Nn.Profiler=r,Nn.StrictMode=i,Nn.Suspense=l,Nn.SuspenseList=c,Nn.isContextConsumer=function(b){return y(b)===a},Nn.isContextProvider=function(b){return y(b)===s},Nn.isElement=function(b){return typeof b=="object"&&b!==null&&b.$$typeof===t},Nn.isForwardRef=function(b){return y(b)===o},Nn.isFragment=function(b){return y(b)===n},Nn.isLazy=function(b){return y(b)===f},Nn.isMemo=function(b){return y(b)===d},Nn.isPortal=function(b){return y(b)===e},Nn.isProfiler=function(b){return y(b)===r},Nn.isStrictMode=function(b){return y(b)===i},Nn.isSuspense=function(b){return y(b)===l},Nn.isSuspenseList=function(b){return y(b)===c},Nn.isValidElementType=function(b){return typeof b=="string"||typeof b=="function"||b===n||b===r||b===i||b===l||b===c||typeof b=="object"&&b!==null&&(b.$$typeof===f||b.$$typeof===d||b.$$typeof===s||b.$$typeof===a||b.$$typeof===o||b.$$typeof===m||b.getModuleId!==void 0)},Nn.typeOf=y,Nn}var x6;function Wke(){return x6||(x6=1,JC.exports=$ke()),JC.exports}var qke=Wke(),y6=t=>typeof t=="string"?t:t?t.displayName||t.name||"Component":"",b6=null,QC=null,CK=t=>{if(t===b6&&Array.isArray(QC))return QC;var e=[];return R.Children.forEach(t,n=>{oi(n)||(qke.isFragment(n)?e=e.concat(CK(n.props.children)):e.push(n))}),QC=e,b6=t,e};function CO(t,e){var n=[],i=[];return Array.isArray(e)?i=e.map(r=>y6(r)):i=[y6(e)],CK(t).forEach(r=>{var a=vf(r,"type.displayName")||vf(r,"type.name");a&&i.indexOf(a)!==-1&&n.push(r)}),n}var RK=t=>t&&typeof t=="object"&&"clipDot"in t?!!t.clipDot:!0,e2={},_6;function Xke(){return _6||(_6=1,(function(t){Object.defineProperty(t,Symbol.toStringTag,{value:"Module"});function e(n){if(typeof n!="object"||n==null)return!1;if(Object.getPrototypeOf(n)===null)return!0;if(Object.prototype.toString.call(n)!=="[object Object]"){const r=n[Symbol.toStringTag];return r==null||!Object.getOwnPropertyDescriptor(n,Symbol.toStringTag)?.writable?!1:n.toString()===`[object ${r}]`}let i=n;for(;Object.getPrototypeOf(i)!==null;)i=Object.getPrototypeOf(i);return Object.getPrototypeOf(n)===i}t.isPlainObject=e})(e2)),e2}var t2,S6;function Yke(){return S6||(S6=1,t2=Xke().isPlainObject),t2}var Kke=Yke();const Zke=Vs(Kke);function w6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function M6(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?w6(Object(n),!0).forEach(function(i){Jke(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):w6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function Jke(t,e,n){return(e=Qke(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Qke(t){var e=eIe(t,"string");return typeof e=="symbol"?e:e+""}function eIe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function U1(){return U1=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},U1.apply(null,arguments)}var E6=(t,e,n,i,r)=>{var a=n-i,s;return s="M ".concat(t,",").concat(e),s+="L ".concat(t+n,",").concat(e),s+="L ".concat(t+n-a/2,",").concat(e+r),s+="L ".concat(t+n-a/2-i,",").concat(e+r),s+="L ".concat(t,",").concat(e," Z"),s},tIe={x:0,y:0,upperWidth:0,lowerWidth:0,height:0,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},nIe=t=>{var e=Vi(t,tIe),{x:n,y:i,upperWidth:r,lowerWidth:a,height:s,className:o}=e,{animationEasing:l,animationDuration:c,animationBegin:d,isUpdateAnimationActive:f}=e,p=R.useRef(null),[m,y]=R.useState(-1),b=R.useRef(r),x=R.useRef(a),v=R.useRef(s),w=R.useRef(n),M=R.useRef(i),A=gv(t,"trapezoid-");if(R.useEffect(()=>{if(p.current&&p.current.getTotalLength)try{var O=p.current.getTotalLength();O&&y(O)}catch{}},[]),n!==+n||i!==+i||r!==+r||a!==+a||s!==+s||r===0&&a===0||s===0)return null;var T=yn("recharts-trapezoid",o);if(!f)return R.createElement("g",null,R.createElement("path",U1({},ga(e),{className:T,d:E6(n,i,r,a,s)})));var D=b.current,C=x.current,U=v.current,P=w.current,k=M.current,B="0px ".concat(m===-1?1:m,"px"),I="".concat(m,"px 0px"),W=Zq(["strokeDasharray"],c,l);return R.createElement(mv,{animationId:A,key:A,canBegin:m>0,duration:c,easing:l,isActive:f,begin:d},O=>{var $=Jn(D,r,O),q=Jn(C,a,O),G=Jn(U,s,O),Y=Jn(P,n,O),Q=Jn(k,i,O);p.current&&(b.current=$,x.current=q,v.current=G,w.current=Y,M.current=Q);var se=O>0?{transition:W,strokeDasharray:I}:{strokeDasharray:B};return R.createElement("path",U1({},ga(e),{className:T,d:E6(Y,Q,$,q,G),ref:p,style:M6(M6({},se),e.style)}))})},iIe=["option","shapeType","propTransformer","activeClassName"];function rIe(t,e){if(t==null)return{};var n,i,r=aIe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function aIe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function A6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function F1(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?A6(Object(n),!0).forEach(function(i){sIe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):A6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function sIe(t,e,n){return(e=oIe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function oIe(t){var e=lIe(t,"string");return typeof e=="symbol"?e:e+""}function lIe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function cIe(t,e){return F1(F1({},e),t)}function uIe(t,e){return t==="symbols"}function T6(t){var{shapeType:e,elementProps:n}=t;switch(e){case"rectangle":return R.createElement(tX,n);case"trapezoid":return R.createElement(nIe,n);case"sector":return R.createElement(aX,n);case"symbols":if(uIe(e))return R.createElement(KD,n);break;case"curve":return R.createElement(hp,n);default:return null}}function dIe(t){return R.isValidElement(t)?t.props:t}function PK(t){var{option:e,shapeType:n,propTransformer:i=cIe,activeClassName:r="recharts-active-shape"}=t,a=rIe(t,iIe),s;if(R.isValidElement(e))s=R.cloneElement(e,F1(F1({},a),dIe(e)));else if(typeof e=="function")s=e(a,a.index);else if(Zke(e)&&typeof e!="boolean"){var o=i(e,a);s=R.createElement(T6,{shapeType:n,elementProps:o})}else{var l=a;s=R.createElement(T6,{shapeType:n,elementProps:l})}return a.isActive?R.createElement(Ei,{className:r},s):s}var RO=(t,e,n)=>{var i=Wn();return(r,a)=>s=>{t?.(r,a,s),i(BY({activeIndex:String(a),activeDataKey:e,activeCoordinate:r.tooltipPosition,activeGraphicalItemId:n}))}},PO=t=>{var e=Wn();return(n,i)=>r=>{t?.(n,i,r),e(MNe())}},DO=(t,e,n)=>{var i=Wn();return(r,a)=>s=>{t?.(r,a,s),i(ENe({activeIndex:String(a),activeDataKey:e,activeCoordinate:r.tooltipPosition,activeGraphicalItemId:n}))}};function NO(t){var{tooltipEntrySettings:e}=t,n=Wn(),i=ia(),r=R.useRef(null);return R.useLayoutEffect(()=>{i||(r.current===null?n(bNe(e)):r.current!==e&&n(_Ne({prev:r.current,next:e})),r.current=e)},[e,n,i]),R.useLayoutEffect(()=>()=>{r.current&&(n(SNe(r.current)),r.current=null)},[n]),null}function DK(t){var{legendPayload:e}=t,n=Wn(),i=ia(),r=R.useRef(null);return R.useLayoutEffect(()=>{i||(r.current===null?n(Wq(e)):r.current!==e&&n(qq({prev:r.current,next:e})),r.current=e)},[n,i,e]),R.useLayoutEffect(()=>()=>{r.current&&(n(Xq(r.current)),r.current=null)},[n]),null}function fIe(t){var{legendPayload:e}=t,n=Wn(),i=wt(pn),r=R.useRef(null);return R.useLayoutEffect(()=>{i!=="centric"&&i!=="radial"||(r.current===null?n(Wq(e)):r.current!==e&&n(qq({prev:r.current,next:e})),r.current=e)},[n,i,e]),R.useLayoutEffect(()=>()=>{r.current&&(n(Xq(r.current)),r.current=null)},[n]),null}var n2,hIe=()=>{var[t]=R.useState(()=>D0("uid-"));return t},pIe=(n2=XQ.useId)!==null&&n2!==void 0?n2:hIe;function NK(t,e){var n=pIe();return e||(t?"".concat(t,"-").concat(n):n)}var mIe=R.createContext(void 0),OO=t=>{var{id:e,type:n,children:i}=t,r=NK("recharts-".concat(n),e);return R.createElement(mIe.Provider,{value:r},i(r))},gIe={cartesianItems:[],polarItems:[]},OK=Ua({name:"graphicalItems",initialState:gIe,reducers:{addCartesianGraphicalItem:{reducer(t,e){t.cartesianItems.push(e.payload)},prepare:ti()},replaceCartesianGraphicalItem:{reducer(t,e){var{prev:n,next:i}=e.payload,r=ho(t).cartesianItems.indexOf(n);r>-1&&(t.cartesianItems[r]=i)},prepare:ti()},removeCartesianGraphicalItem:{reducer(t,e){var n=ho(t).cartesianItems.indexOf(e.payload);n>-1&&t.cartesianItems.splice(n,1)},prepare:ti()},addPolarGraphicalItem:{reducer(t,e){t.polarItems.push(e.payload)},prepare:ti()},removePolarGraphicalItem:{reducer(t,e){var n=ho(t).polarItems.indexOf(e.payload);n>-1&&t.polarItems.splice(n,1)},prepare:ti()}}}),{addCartesianGraphicalItem:vIe,replaceCartesianGraphicalItem:xIe,removeCartesianGraphicalItem:yIe,addPolarGraphicalItem:bIe,removePolarGraphicalItem:_Ie}=OK.actions,SIe=OK.reducer,wIe=t=>{var e=Wn(),n=R.useRef(null);return R.useLayoutEffect(()=>{n.current===null?e(vIe(t)):n.current!==t&&e(xIe({prev:n.current,next:t})),n.current=t},[e,t]),R.useLayoutEffect(()=>()=>{n.current&&(e(yIe(n.current)),n.current=null)},[e]),null},LK=R.memo(wIe);function MIe(t){var e=Wn();return R.useLayoutEffect(()=>(e(bIe(t)),()=>{e(_Ie(t))}),[e,t]),null}var EIe=["key"],AIe=["onMouseEnter","onClick","onMouseLeave"],TIe=["id"],CIe=["id"];function C6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function pi(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?C6(Object(n),!0).forEach(function(i){RIe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):C6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function RIe(t,e,n){return(e=PIe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function PIe(t){var e=DIe(t,"string");return typeof e=="symbol"?e:e+""}function DIe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Fu(){return Fu=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},Fu.apply(null,arguments)}function pw(t,e){if(t==null)return{};var n,i,r=NIe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function NIe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function OIe(t){var e=R.useMemo(()=>CO(t.children,Dv),[t.children]),n=wt(i=>Vke(i,t.id,e));return n==null?null:R.createElement(fIe,{legendPayload:n})}var LIe=R.memo(t=>{var{dataKey:e,nameKey:n,sectors:i,stroke:r,strokeWidth:a,fill:s,name:o,hide:l,tooltipType:c}=t,d={dataDefinedOnItem:i.map(f=>f.tooltipPayload),positions:i.map(f=>f.tooltipPosition),settings:{stroke:r,strokeWidth:a,fill:s,dataKey:e,nameKey:n,name:em(o,e),hide:l,type:c,color:s,unit:""}};return R.createElement(NO,{tooltipEntrySettings:d})}),kIe=(t,e)=>t>e?"start":t<e?"end":"middle",IIe=(t,e,n)=>ea(typeof e=="function"?e(t):e,n,n*.8),UIe=(t,e,n)=>{var{top:i,left:r,width:a,height:s}=e,o=nX(a,s),l=r+ea(t.cx,a,a/2),c=i+ea(t.cy,s,s/2),d=ea(t.innerRadius,o,0),f=IIe(n,t.outerRadius,o),p=t.maxRadius||Math.sqrt(a*a+s*s)/2;return{cx:l,cy:c,innerRadius:d,outerRadius:f,maxRadius:p}},FIe=(t,e)=>{var n=_r(e-t),i=Math.min(Math.abs(e-t),360);return n*i};function zIe(t){return t&&typeof t=="object"&&"className"in t&&typeof t.className=="string"?t.className:""}var BIe=(t,e)=>{if(R.isValidElement(t))return R.cloneElement(t,e);if(typeof t=="function")return t(e);var n=yn("recharts-pie-label-line",typeof t!="boolean"?t.className:""),{key:i}=e,r=pw(e,EIe);return R.createElement(hp,Fu({},r,{type:"linear",className:n}))},jIe=(t,e,n)=>{if(R.isValidElement(t))return R.cloneElement(t,e);var i=n;if(typeof t=="function"&&(i=t(e),R.isValidElement(i)))return i;var r=yn("recharts-pie-label-text",zIe(t));return R.createElement(dw,Fu({},e,{alignmentBaseline:"middle",className:r}),i)};function HIe(t){var{sectors:e,props:n,showLabels:i}=t,{label:r,labelLine:a,dataKey:s}=n;if(!i||!r||!e)return null;var o=La(n),l=gf(r),c=gf(a),d=typeof r=="object"&&"offsetRadius"in r&&typeof r.offsetRadius=="number"&&r.offsetRadius||20,f=e.map((p,m)=>{var y=(p.startAngle+p.endAngle)/2,b=Ui(p.cx,p.cy,p.outerRadius+d,y),x=pi(pi(pi(pi({},o),p),{},{stroke:"none"},l),{},{index:m,textAnchor:kIe(b.x,p.cx)},b),v=pi(pi(pi(pi({},o),p),{},{fill:"none",stroke:p.fill},c),{},{index:m,points:[Ui(p.cx,p.cy,p.outerRadius,y),b],key:"line"});return R.createElement(Fa,{zIndex:Fi.label,key:"label-".concat(p.startAngle,"-").concat(p.endAngle,"-").concat(p.midAngle,"-").concat(m)},R.createElement(Ei,null,a&&BIe(a,v),jIe(r,x,Hn(p,s))))});return R.createElement(Ei,{className:"recharts-pie-labels"},f)}function VIe(t){var{sectors:e,props:n,showLabels:i}=t,{label:r}=n;return typeof r=="object"&&r!=null&&"position"in r?R.createElement(EO,{label:r}):R.createElement(HIe,{sectors:e,props:n,showLabels:i})}function GIe(t){var{sectors:e,activeShape:n,inactiveShape:i,allOtherPieProps:r,shape:a,id:s}=t,o=wt(Uu),l=wt(xO),c=wt(uOe),{onMouseEnter:d,onClick:f,onMouseLeave:p}=r,m=pw(r,AIe),y=RO(d,r.dataKey,s),b=PO(p),x=DO(f,r.dataKey,s);return e==null||e.length===0?null:R.createElement(R.Fragment,null,e.map((v,w)=>{if(v?.startAngle===0&&v?.endAngle===0&&e.length!==1)return null;var M=c==null||c===s,A=String(w)===o&&(l==null||r.dataKey===l)&&M,T=o?i:null,D=n&&A?n:T,C=pi(pi({},v),{},{stroke:v.stroke,tabIndex:-1,[Nq]:w,[Oq]:r.dataKey});return R.createElement(Ei,Fu({key:"sector-".concat(v?.startAngle,"-").concat(v?.endAngle,"-").concat(v.midAngle,"-").concat(w),tabIndex:-1,className:"recharts-pie-sector"},cv(m,v,w),{onMouseEnter:y(v,w),onMouseLeave:b(v,w),onClick:x(v,w)}),R.createElement(PK,Fu({option:a??D,index:w,shapeType:"sector",isActive:A},C)))}))}function $Ie(t){var e,{pieSettings:n,displayedData:i,cells:r,offset:a}=t,{cornerRadius:s,startAngle:o,endAngle:l,dataKey:c,nameKey:d,tooltipType:f}=n,p=Math.abs(n.minAngle),m=FIe(o,l),y=Math.abs(m),b=i.length<=1?0:(e=n.paddingAngle)!==null&&e!==void 0?e:0,x=i.filter(D=>Hn(D,c,0)!==0).length,v=(y>=360?x:x-1)*b,w=y-x*p-v,M=i.reduce((D,C)=>{var U=Hn(C,c,0);return D+(St(U)?U:0)},0),A;if(M>0){var T;A=i.map((D,C)=>{var U=Hn(D,c,0),P=Hn(D,d,C),k=UIe(n,a,D),B=(St(U)?U:0)/M,I,W=pi(pi({},D),r&&r[C]&&r[C].props);C?I=T.endAngle+_r(m)*b*(U!==0?1:0):I=o;var O=I+_r(m)*((U!==0?p:0)+B*w),$=(I+O)/2,q=(k.innerRadius+k.outerRadius)/2,G=[{name:P,value:U,payload:W,dataKey:c,type:f}],Y=Ui(k.cx,k.cy,q,$);return T=pi(pi(pi(pi({},n.presentationProps),{},{percent:B,cornerRadius:typeof s=="string"?parseFloat(s):s,name:P,tooltipPayload:G,midAngle:$,middleRadius:q,tooltipPosition:Y},W),k),{},{value:U,dataKey:c,startAngle:I,endAngle:O,payload:W,paddingAngle:_r(m)*b}),T})}return A}function WIe(t){var{showLabels:e,sectors:n,children:i}=t,r=R.useMemo(()=>!e||!n?[]:n.map(a=>({value:a.value,payload:a.payload,clockWise:!1,parentViewBox:void 0,viewBox:{cx:a.cx,cy:a.cy,innerRadius:a.innerRadius,outerRadius:a.outerRadius,startAngle:a.startAngle,endAngle:a.endAngle,clockWise:!1},fill:a.fill})),[n,e]);return R.createElement(Tke,{value:e?r:void 0},i)}function qIe(t){var{props:e,previousSectorsRef:n,id:i}=t,{sectors:r,isAnimationActive:a,animationBegin:s,animationDuration:o,animationEasing:l,activeShape:c,inactiveShape:d,onAnimationStart:f,onAnimationEnd:p}=e,m=gv(e,"recharts-pie-"),y=n.current,[b,x]=R.useState(!1),v=R.useCallback(()=>{typeof p=="function"&&p(),x(!1)},[p]),w=R.useCallback(()=>{typeof f=="function"&&f(),x(!0)},[f]);return R.createElement(WIe,{showLabels:!b,sectors:r},R.createElement(mv,{animationId:m,begin:s,duration:o,isActive:a,easing:l,onAnimationStart:w,onAnimationEnd:v,key:m},M=>{var A=[],T=r&&r[0],D=T?.startAngle;return r?.forEach((C,U)=>{var P=y&&y[U],k=U>0?vf(C,"paddingAngle",0):0;if(P){var B=Jn(P.endAngle-P.startAngle,C.endAngle-C.startAngle,M),I=pi(pi({},C),{},{startAngle:D+k,endAngle:D+B+k});A.push(I),D=I.endAngle}else{var{endAngle:W,startAngle:O}=C,$=Jn(0,W-O,M),q=pi(pi({},C),{},{startAngle:D+k,endAngle:D+$+k});A.push(q),D=q.endAngle}}),n.current=A,R.createElement(Ei,null,R.createElement(GIe,{sectors:A,activeShape:c,inactiveShape:d,allOtherPieProps:e,shape:e.shape,id:i}))}),R.createElement(VIe,{showLabels:!b,sectors:r,props:e}),e.children)}var XIe={animationBegin:400,animationDuration:1500,animationEasing:"ease",cx:"50%",cy:"50%",dataKey:"value",endAngle:360,fill:"#808080",hide:!1,innerRadius:0,isAnimationActive:"auto",label:!1,labelLine:!0,legendType:"rect",minAngle:0,nameKey:"name",outerRadius:"80%",paddingAngle:0,rootTabIndex:0,startAngle:0,stroke:"#fff",zIndex:Fi.area};function YIe(t){var{id:e}=t,n=pw(t,TIe),{hide:i,className:r,rootTabIndex:a}=t,s=R.useMemo(()=>CO(t.children,Dv),[t.children]),o=wt(d=>Gke(d,e,s)),l=R.useRef(null),c=yn("recharts-pie",r);return i||o==null?(l.current=null,R.createElement(Ei,{tabIndex:a,className:c})):R.createElement(Fa,{zIndex:t.zIndex},R.createElement(LIe,{dataKey:t.dataKey,nameKey:t.nameKey,sectors:o,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,tooltipType:t.tooltipType}),R.createElement(Ei,{tabIndex:a,className:c},R.createElement(qIe,{props:pi(pi({},n),{},{sectors:o}),previousSectorsRef:l,id:e})))}function kK(t){var e=Vi(t,XIe),{id:n}=e,i=pw(e,CIe),r=La(i);return R.createElement(OO,{id:n,type:"pie"},a=>R.createElement(R.Fragment,null,R.createElement(MIe,{type:"pie",id:a,data:i.data,dataKey:i.dataKey,hide:i.hide,angleAxisId:0,radiusAxisId:0,name:i.name,nameKey:i.nameKey,tooltipType:i.tooltipType,legendType:i.legendType,fill:i.fill,cx:i.cx,cy:i.cy,startAngle:i.startAngle,endAngle:i.endAngle,paddingAngle:i.paddingAngle,minAngle:i.minAngle,innerRadius:i.innerRadius,outerRadius:i.outerRadius,cornerRadius:i.cornerRadius,presentationProps:r,maxRadius:e.maxRadius}),R.createElement(OIe,Fu({},i,{id:a})),R.createElement(YIe,Fu({},i,{id:a}))))}kK.displayName="Pie";var KIe=["points"];function R6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function i2(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?R6(Object(n),!0).forEach(function(i){ZIe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):R6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function ZIe(t,e,n){return(e=JIe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function JIe(t){var e=QIe(t,"string");return typeof e=="symbol"?e:e+""}function QIe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function z1(){return z1=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},z1.apply(null,arguments)}function eUe(t,e){if(t==null)return{};var n,i,r=tUe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function tUe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function nUe(t){var{option:e,dotProps:n,className:i}=t;if(R.isValidElement(e))return R.cloneElement(e,n);if(typeof e=="function")return e(n);var r=yn(i,typeof e!="boolean"?e.className:""),a=n??{},{points:s}=a,o=eUe(a,KIe);return R.createElement(wK,z1({},o,{className:r}))}function iUe(t,e){return t==null?!1:e?!0:t.length===1}function rUe(t){var{points:e,dot:n,className:i,dotClassName:r,dataKey:a,baseProps:s,needClip:o,clipPathId:l,zIndex:c=Fi.scatter}=t;if(!iUe(e,n))return null;var d=RK(n),f=LMe(n),p=e.map((y,b)=>{var x,v,w=i2(i2(i2({r:3},s),f),{},{index:b,cx:(x=y.x)!==null&&x!==void 0?x:void 0,cy:(v=y.y)!==null&&v!==void 0?v:void 0,dataKey:a,value:y.value,payload:y.payload,points:e});return R.createElement(nUe,{key:"dot-".concat(b),option:n,dotProps:w,className:r})}),m={};return o&&l!=null&&(m.clipPath="url(#clipPath-".concat(d?"":"dots-").concat(l,")")),R.createElement(Fa,{zIndex:c},R.createElement(Ei,z1({className:i},m),p))}function P6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function D6(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?P6(Object(n),!0).forEach(function(i){aUe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):P6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function aUe(t,e,n){return(e=sUe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function sUe(t){var e=oUe(t,"string");return typeof e=="symbol"?e:e+""}function oUe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var lUe={xAxis:{},yAxis:{},zAxis:{}},IK=Ua({name:"cartesianAxis",initialState:lUe,reducers:{addXAxis:{reducer(t,e){t.xAxis[e.payload.id]=e.payload},prepare:ti()},replaceXAxis:{reducer(t,e){var{prev:n,next:i}=e.payload;t.xAxis[n.id]!==void 0&&(n.id!==i.id&&delete t.xAxis[n.id],t.xAxis[i.id]=i)},prepare:ti()},removeXAxis:{reducer(t,e){delete t.xAxis[e.payload.id]},prepare:ti()},addYAxis:{reducer(t,e){t.yAxis[e.payload.id]=e.payload},prepare:ti()},replaceYAxis:{reducer(t,e){var{prev:n,next:i}=e.payload;t.yAxis[n.id]!==void 0&&(n.id!==i.id&&delete t.yAxis[n.id],t.yAxis[i.id]=i)},prepare:ti()},removeYAxis:{reducer(t,e){delete t.yAxis[e.payload.id]},prepare:ti()},addZAxis:{reducer(t,e){t.zAxis[e.payload.id]=e.payload},prepare:ti()},replaceZAxis:{reducer(t,e){var{prev:n,next:i}=e.payload;t.zAxis[n.id]!==void 0&&(n.id!==i.id&&delete t.zAxis[n.id],t.zAxis[i.id]=i)},prepare:ti()},removeZAxis:{reducer(t,e){delete t.zAxis[e.payload.id]},prepare:ti()},updateYAxisWidth(t,e){var{id:n,width:i}=e.payload,r=t.yAxis[n];if(r){var a=r.widthHistory||[];if(a.length===3&&a[0]===a[2]&&i===a[1]&&i!==r.width&&Math.abs(i-a[0])<=1)return;var s=[...a,i].slice(-3);t.yAxis[n]=D6(D6({},t.yAxis[n]),{},{width:i,widthHistory:s})}}}}),{addXAxis:cUe,replaceXAxis:uUe,removeXAxis:dUe,addYAxis:fUe,replaceYAxis:hUe,removeYAxis:pUe,addZAxis:ZHe,replaceZAxis:JHe,removeZAxis:QHe,updateYAxisWidth:mUe}=IK.actions,gUe=IK.reducer,vUe=He([ar],t=>({top:t.top,bottom:t.bottom,left:t.left,right:t.right})),xUe=He([vUe,cc,uc],(t,e,n)=>{if(!(!t||e==null||n==null))return{x:t.left,y:t.top,width:Math.max(0,e-t.left-t.right),height:Math.max(0,n-t.top-t.bottom)}}),LO=()=>wt(xUe),yUe=()=>wt(mOe);function N6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function r2(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?N6(Object(n),!0).forEach(function(i){bUe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):N6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function bUe(t,e,n){return(e=_Ue(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function _Ue(t){var e=SUe(t,"string");return typeof e=="symbol"?e:e+""}function SUe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var wUe=t=>{var{point:e,childIndex:n,mainColor:i,activeDot:r,dataKey:a,clipPath:s}=t;if(r===!1||e.x==null||e.y==null)return null;var o={index:n,dataKey:a,cx:e.x,cy:e.y,r:4,fill:i??"none",strokeWidth:2,stroke:"#fff",payload:e.payload,value:e.value},l=r2(r2(r2({},o),gf(r)),ZD(r)),c;return R.isValidElement(r)?c=R.cloneElement(r,l):typeof r=="function"?c=r(l):c=R.createElement(wK,l),R.createElement(Ei,{className:"recharts-active-dot",clipPath:s},c)};function O6(t){var{points:e,mainColor:n,activeDot:i,itemDataKey:r,clipPath:a,zIndex:s=Fi.activeDot}=t,o=wt(Uu),l=yUe();if(e==null||l==null)return null;var c=e.find(d=>l.includes(d.payload));return oi(c)?null:R.createElement(Fa,{zIndex:s},R.createElement(wUe,{point:c,childIndex:Number(o),mainColor:n,dataKey:r,activeDot:i,clipPath:a}))}var MUe="Invariant failed";function EUe(t,e){throw new Error(MUe)}var AUe=["x","y"];function Q3(){return Q3=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},Q3.apply(null,arguments)}function L6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Cg(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?L6(Object(n),!0).forEach(function(i){TUe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):L6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function TUe(t,e,n){return(e=CUe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function CUe(t){var e=RUe(t,"string");return typeof e=="symbol"?e:e+""}function RUe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function PUe(t,e){if(t==null)return{};var n,i,r=DUe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function DUe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function NUe(t,e){var{x:n,y:i}=t,r=PUe(t,AUe),a="".concat(n),s=parseInt(a,10),o="".concat(i),l=parseInt(o,10),c="".concat(e.height||r.height),d=parseInt(c,10),f="".concat(e.width||r.width),p=parseInt(f,10);return Cg(Cg(Cg(Cg(Cg({},e),r),s?{x:s}:{}),l?{y:l}:{}),{},{height:d,width:p,name:e.name,radius:e.radius})}function B1(t){return R.createElement(PK,Q3({shapeType:"rectangle",propTransformer:NUe,activeClassName:"recharts-active-bar"},t))}var OUe=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return(i,r)=>{if(St(e))return e;var a=St(i)||oi(i);return a?e(i,r):(a||EUe(),n)}},LUe={},UK=Ua({name:"errorBars",initialState:LUe,reducers:{addErrorBar:(t,e)=>{var{itemId:n,errorBar:i}=e.payload;t[n]||(t[n]=[]),t[n].push(i)},replaceErrorBar:(t,e)=>{var{itemId:n,prev:i,next:r}=e.payload;t[n]&&(t[n]=t[n].map(a=>a.dataKey===i.dataKey&&a.direction===i.direction?r:a))},removeErrorBar:(t,e)=>{var{itemId:n,errorBar:i}=e.payload;t[n]&&(t[n]=t[n].filter(r=>r.dataKey!==i.dataKey||r.direction!==i.direction))}}}),{addErrorBar:e8e,replaceErrorBar:t8e,removeErrorBar:n8e}=UK.actions,kUe=UK.reducer,IUe=["children"];function UUe(t,e){if(t==null)return{};var n,i,r=FUe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function FUe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var zUe={data:[],xAxisId:"xAxis-0",yAxisId:"yAxis-0",dataPointFormatter:()=>({x:0,y:0,value:0}),errorBarOffset:0},BUe=R.createContext(zUe);function jUe(t){var{children:e}=t,n=UUe(t,IUe);return R.createElement(BUe.Provider,{value:n},e)}function kO(t,e){var n,i,r=wt(c=>fc(c,t)),a=wt(c=>hc(c,e)),s=(n=r?.allowDataOverflow)!==null&&n!==void 0?n:gr.allowDataOverflow,o=(i=a?.allowDataOverflow)!==null&&i!==void 0?i:vr.allowDataOverflow,l=s||o;return{needClip:l,needClipX:s,needClipY:o}}function FK(t){var{xAxisId:e,yAxisId:n,clipPathId:i}=t,r=LO(),{needClipX:a,needClipY:s,needClip:o}=kO(e,n);if(!o||!r)return null;var{x:l,y:c,width:d,height:f}=r;return R.createElement("clipPath",{id:"clipPath-".concat(i)},R.createElement("rect",{x:a?l:l-d/2,y:s?c:c-f/2,width:a?d:d*2,height:s?f:f*2}))}function HUe(t,e){return t&&typeof t=="object"&&"zIndex"in t&&typeof t.zIndex=="number"&&Qn(t.zIndex)?t.zIndex:e}var a2={exports:{}},s2={};var k6;function VUe(){if(k6)return s2;k6=1;var t=Hp();function e(l,c){return l===c&&(l!==0||1/l===1/c)||l!==l&&c!==c}var n=typeof Object.is=="function"?Object.is:e,i=t.useSyncExternalStore,r=t.useRef,a=t.useEffect,s=t.useMemo,o=t.useDebugValue;return s2.useSyncExternalStoreWithSelector=function(l,c,d,f,p){var m=r(null);if(m.current===null){var y={hasValue:!1,value:null};m.current=y}else y=m.current;m=s(function(){function x(T){if(!v){if(v=!0,w=T,T=f(T),p!==void 0&&y.hasValue){var D=y.value;if(p(D,T))return M=D}return M=T}if(D=M,n(w,T))return D;var C=f(T);return p!==void 0&&p(D,C)?(w=T,D):(w=T,M=C)}var v=!1,w,M,A=d===void 0?null:d;return[function(){return x(c())},A===null?void 0:function(){return x(A())}]},[c,d,f,p]);var b=i(l,m[0],m[1]);return a(function(){y.hasValue=!0,y.value=b},[b]),o(b),b},s2}var I6;function GUe(){return I6||(I6=1,a2.exports=VUe()),a2.exports}GUe();function $Ue(t){t()}function WUe(){let t=null,e=null;return{clear(){t=null,e=null},notify(){$Ue(()=>{let n=t;for(;n;)n.callback(),n=n.next})},get(){const n=[];let i=t;for(;i;)n.push(i),i=i.next;return n},subscribe(n){let i=!0;const r=e={callback:n,next:null,prev:e};return r.prev?r.prev.next=r:t=r,function(){!i||t===null||(i=!1,r.next?r.next.prev=r.prev:e=r.prev,r.prev?r.prev.next=r.next:t=r.next)}}}}var U6={notify(){},get:()=>[]};function qUe(t,e){let n,i=U6,r=0,a=!1;function s(b){d();const x=i.subscribe(b);let v=!1;return()=>{v||(v=!0,x(),f())}}function o(){i.notify()}function l(){y.onStateChange&&y.onStateChange()}function c(){return a}function d(){r++,n||(n=t.subscribe(l),i=WUe())}function f(){r--,n&&r===0&&(n(),n=void 0,i.clear(),i=U6)}function p(){a||(a=!0,d())}function m(){a&&(a=!1,f())}const y={addNestedSub:s,notifyNestedSubs:o,handleChangeWrapper:l,isSubscribed:c,trySubscribe:p,tryUnsubscribe:m,getListeners:()=>i};return y}var XUe=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",YUe=XUe(),KUe=()=>typeof navigator<"u"&&navigator.product==="ReactNative",ZUe=KUe(),JUe=()=>YUe||ZUe?R.useLayoutEffect:R.useEffect,QUe=JUe();function F6(t,e){return t===e?t!==0||e!==0||1/t===1/e:t!==t&&e!==e}function eFe(t,e){if(F6(t,e))return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;const n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(e,n[r])||!F6(t[n[r]],e[n[r]]))return!1;return!0}var tFe=Symbol.for("react-redux-context"),nFe=typeof globalThis<"u"?globalThis:{};function iFe(){if(!R.createContext)return{};const t=nFe[tFe]??=new Map;let e=t.get(R.createContext);return e||(e=R.createContext(null),t.set(R.createContext,e)),e}var rFe=iFe();function aFe(t){const{children:e,context:n,serverState:i,store:r}=t,a=R.useMemo(()=>{const l=qUe(r);return{store:r,subscription:l,getServerState:i?()=>i:void 0}},[r,i]),s=R.useMemo(()=>r.getState(),[r]);QUe(()=>{const{subscription:l}=a;return l.onStateChange=l.notifyNestedSubs,l.trySubscribe(),s!==r.getState()&&l.notifyNestedSubs(),()=>{l.tryUnsubscribe(),l.onStateChange=void 0}},[a,s]);const o=n||rFe;return R.createElement(o.Provider,{value:a},e)}var sFe=aFe,oFe=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle"]);function lFe(t,e){return t==null&&e==null?!0:typeof t=="number"&&typeof e=="number"?t===e||t!==t&&e!==e:t===e}function mw(t,e){var n=new Set([...Object.keys(t),...Object.keys(e)]);for(var i of n)if(oFe.has(i)){if(t[i]==null&&e[i]==null)continue;if(!eFe(t[i],e[i]))return!1}else if(!lFe(t[i],e[i]))return!1;return!0}var cFe=["onMouseEnter","onMouseLeave","onClick"],uFe=["value","background","tooltipPosition"],dFe=["id"],fFe=["onMouseEnter","onClick","onMouseLeave"];function sc(){return sc=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},sc.apply(null,arguments)}function z6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function ca(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?z6(Object(n),!0).forEach(function(i){hFe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):z6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function hFe(t,e,n){return(e=pFe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function pFe(t){var e=mFe(t,"string");return typeof e=="symbol"?e:e+""}function mFe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function j1(t,e){if(t==null)return{};var n,i,r=gFe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function gFe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var vFe=t=>{var{dataKey:e,name:n,fill:i,legendType:r,hide:a}=t;return[{inactive:a,dataKey:e,type:r,color:i,value:em(n,e),payload:t}]},xFe=R.memo(t=>{var{dataKey:e,stroke:n,strokeWidth:i,fill:r,name:a,hide:s,unit:o,tooltipType:l}=t,c={dataDefinedOnItem:void 0,positions:void 0,settings:{stroke:n,strokeWidth:i,fill:r,dataKey:e,nameKey:void 0,name:em(a,e),hide:s,type:l,color:r,unit:o}};return R.createElement(NO,{tooltipEntrySettings:c})});function yFe(t){var e=wt(Uu),{data:n,dataKey:i,background:r,allOtherBarProps:a}=t,{onMouseEnter:s,onMouseLeave:o,onClick:l}=a,c=j1(a,cFe),d=RO(s,i),f=PO(o),p=DO(l,i);if(!r||n==null)return null;var m=gf(r);return R.createElement(Fa,{zIndex:HUe(r,Fi.barBackground)},n.map((y,b)=>{var{value:x,background:v,tooltipPosition:w}=y,M=j1(y,uFe);if(!v)return null;var A=d(y,b),T=f(y,b),D=p(y,b),C=ca(ca(ca(ca(ca({option:r,isActive:String(b)===e},M),{},{fill:"#eee"},v),m),cv(c,y,b)),{},{onMouseEnter:A,onMouseLeave:T,onClick:D,dataKey:i,index:b,className:"recharts-bar-background-rectangle"});return R.createElement(B1,sc({key:"background-bar-".concat(b)},C))}))}function bFe(t){var{showLabels:e,children:n,rects:i}=t,r=i?.map(a=>{var s={x:a.x,y:a.y,width:a.width,lowerWidth:a.width,upperWidth:a.width,height:a.height};return ca(ca({},s),{},{value:a.value,payload:a.payload,parentViewBox:a.parentViewBox,viewBox:s,fill:a.fill})});return R.createElement(_K,{value:e?r:void 0},n)}function _Fe(t){var{shape:e,activeBar:n,baseProps:i,entry:r,index:a,dataKey:s}=t,o=wt(Uu),l=wt(xO),c=n&&String(a)===o&&(l==null||s===l),d=c?n:e;return c?R.createElement(Fa,{zIndex:Fi.activeBar},R.createElement(B1,sc({},i,{name:String(i.name)},r,{isActive:c,option:d,index:a,dataKey:s}))):R.createElement(B1,sc({},i,{name:String(i.name)},r,{isActive:c,option:d,index:a,dataKey:s}))}function SFe(t){var{shape:e,baseProps:n,entry:i,index:r,dataKey:a}=t;return R.createElement(B1,sc({},n,{name:String(n.name)},i,{isActive:!1,option:e,index:r,dataKey:a}))}function wFe(t){var e,{data:n,props:i}=t,r=(e=La(i))!==null&&e!==void 0?e:{},{id:a}=r,s=j1(r,dFe),{shape:o,dataKey:l,activeBar:c}=i,{onMouseEnter:d,onClick:f,onMouseLeave:p}=i,m=j1(i,fFe),y=RO(d,l),b=PO(p),x=DO(f,l);return n?R.createElement(R.Fragment,null,n.map((v,w)=>R.createElement(Ei,sc({key:"rectangle-".concat(v?.x,"-").concat(v?.y,"-").concat(v?.value,"-").concat(w),className:"recharts-bar-rectangle"},cv(m,v,w),{onMouseEnter:y(v,w),onMouseLeave:b(v,w),onClick:x(v,w)}),c?R.createElement(_Fe,{shape:o,activeBar:c,baseProps:s,entry:v,index:w,dataKey:l}):R.createElement(SFe,{shape:o,baseProps:s,entry:v,index:w,dataKey:l})))):null}function MFe(t){var{props:e,previousRectanglesRef:n}=t,{data:i,layout:r,isAnimationActive:a,animationBegin:s,animationDuration:o,animationEasing:l,onAnimationEnd:c,onAnimationStart:d}=e,f=n.current,p=gv(e,"recharts-bar-"),[m,y]=R.useState(!1),b=!m,x=R.useCallback(()=>{typeof c=="function"&&c(),y(!1)},[c]),v=R.useCallback(()=>{typeof d=="function"&&d(),y(!0)},[d]);return R.createElement(bFe,{showLabels:b,rects:i},R.createElement(mv,{animationId:p,begin:s,duration:o,isActive:a,easing:l,onAnimationEnd:x,onAnimationStart:v,key:p},w=>{var M=w===1?i:i?.map((A,T)=>{var D=f&&f[T];if(D)return ca(ca({},A),{},{x:Jn(D.x,A.x,w),y:Jn(D.y,A.y,w),width:Jn(D.width,A.width,w),height:Jn(D.height,A.height,w)});if(r==="horizontal"){var C=Jn(0,A.height,w),U=Jn(A.stackedBarStart,A.y,w);return ca(ca({},A),{},{y:U,height:C})}var P=Jn(0,A.width,w),k=Jn(A.stackedBarStart,A.x,w);return ca(ca({},A),{},{width:P,x:k})});return w>0&&(n.current=M??null),M==null?null:R.createElement(Ei,null,R.createElement(wFe,{props:e,data:M}))}),R.createElement(EO,{label:e.label}),e.children)}function EFe(t){var e=R.useRef(null);return R.createElement(MFe,{previousRectanglesRef:e,props:t})}var zK=0,AFe=(t,e)=>{var n=Array.isArray(t.value)?t.value[1]:t.value;return{x:t.x,y:t.y,value:n,errorVal:Hn(t,e)}};class TFe extends R.PureComponent{render(){var{hide:e,data:n,dataKey:i,className:r,xAxisId:a,yAxisId:s,needClip:o,background:l,id:c}=this.props;if(e||n==null)return null;var d=yn("recharts-bar",r),f=c;return R.createElement(Ei,{className:d,id:c},o&&R.createElement("defs",null,R.createElement(FK,{clipPathId:f,xAxisId:a,yAxisId:s})),R.createElement(Ei,{className:"recharts-bar-rectangles",clipPath:o?"url(#clipPath-".concat(f,")"):void 0},R.createElement(yFe,{data:n,dataKey:i,background:l,allOtherBarProps:this.props}),R.createElement(EFe,this.props)))}}var CFe={activeBar:!1,animationBegin:0,animationDuration:400,animationEasing:"ease",background:!1,hide:!1,isAnimationActive:"auto",label:!1,legendType:"rect",minPointSize:zK,xAxisId:0,yAxisId:0,zIndex:Fi.bar};function RFe(t){var{xAxisId:e,yAxisId:n,hide:i,legendType:r,minPointSize:a,activeBar:s,animationBegin:o,animationDuration:l,animationEasing:c,isAnimationActive:d}=t,{needClip:f}=kO(e,n),p=tm(),m=ia(),y=CO(t.children,Dv),b=wt(w=>ize(w,e,n,m,t.id,y));if(p!=="vertical"&&p!=="horizontal")return null;var x,v=b?.[0];return v==null||v.height==null||v.width==null?x=0:x=p==="vertical"?v.height/2:v.width/2,R.createElement(jUe,{xAxisId:e,yAxisId:n,data:b,dataPointFormatter:AFe,errorBarOffset:x},R.createElement(TFe,sc({},t,{layout:p,needClip:f,data:b,xAxisId:e,yAxisId:n,hide:i,legendType:r,minPointSize:a,activeBar:s,animationBegin:o,animationDuration:l,animationEasing:c,isAnimationActive:d})))}function PFe(t){var{layout:e,barSettings:{dataKey:n,minPointSize:i},pos:r,bandSize:a,xAxis:s,yAxis:o,xAxisTicks:l,yAxisTicks:c,stackedData:d,displayedData:f,offset:p,cells:m,parentViewBox:y,dataStartIndex:b}=t,x=e==="horizontal"?o:s,v=d?x.scale.domain():null,w=YTe({numericAxis:x}),M=x.scale(w);return f.map((A,T)=>{var D,C,U,P,k,B;d?D=GTe(d[T+b],v):(D=Hn(A,n),Array.isArray(D)||(D=[w,D]));var I=OUe(i,zK)(D[1],T);if(e==="horizontal"){var W,[O,$]=[o.scale(D[0]),o.scale(D[1])];C=tH({axis:s,ticks:l,bandSize:a,offset:r.offset,entry:A,index:T}),U=(W=$??O)!==null&&W!==void 0?W:void 0,P=r.size;var q=O-$;if(k=Bs(q)?0:q,B={x:C,y:p.top,width:P,height:p.height},Math.abs(I)>0&&Math.abs(k)<Math.abs(I)){var G=_r(k||I)*(Math.abs(I)-Math.abs(k));U-=G,k+=G}}else{var[Y,Q]=[s.scale(D[0]),s.scale(D[1])];if(C=Y,U=tH({axis:o,ticks:c,bandSize:a,offset:r.offset,entry:A,index:T}),P=Q-Y,k=r.size,B={x:p.left,y:U,width:p.width,height:k},Math.abs(I)>0&&Math.abs(P)<Math.abs(I)){var se=_r(P||I)*(Math.abs(I)-Math.abs(P));P+=se}}if(C==null||U==null||P==null||k==null)return null;var H=ca(ca({},A),{},{stackedBarStart:M,x:C,y:U,width:P,height:k,value:d?D:D[1],payload:A,background:B,tooltipPosition:{x:C+P/2,y:U+k/2},parentViewBox:y},m&&m[T]&&m[T].props);return H}).filter(Boolean)}function DFe(t){var e=Vi(t,CFe),n=ia();return R.createElement(OO,{id:e.id,type:"bar"},i=>R.createElement(R.Fragment,null,R.createElement(DK,{legendPayload:vFe(e)}),R.createElement(xFe,{dataKey:e.dataKey,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,unit:e.unit,tooltipType:e.tooltipType}),R.createElement(LK,{type:"bar",id:i,data:void 0,xAxisId:e.xAxisId,yAxisId:e.yAxisId,zAxisId:0,dataKey:e.dataKey,stackId:Pq(e.stackId),hide:e.hide,barSize:e.barSize,minPointSize:e.minPointSize,maxBarSize:e.maxBarSize,isPanorama:n}),R.createElement(Fa,{zIndex:e.zIndex},R.createElement(RFe,sc({},e,{id:i})))))}var BK=R.memo(DFe,mw);BK.displayName="Bar";function B6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function bb(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?B6(Object(n),!0).forEach(function(i){NFe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):B6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function NFe(t,e,n){return(e=OFe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function OFe(t){var e=LFe(t,"string");return typeof e=="symbol"?e:e+""}function LFe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var kFe=(t,e)=>e,IFe=(t,e,n)=>n,UFe=(t,e,n,i)=>i,FFe=(t,e,n,i,r)=>r,Nv=He([sw,FFe],(t,e)=>t.filter(n=>n.type==="bar").find(n=>n.id===e)),zFe=He([Nv],t=>t?.maxBarSize),BFe=(t,e,n,i,r,a)=>a,j6=(t,e,n)=>{var i=n??t;if(!oi(i))return ea(i,e,0)},jFe=He([pn,sw,kFe,IFe,UFe],(t,e,n,i,r)=>e.filter(a=>t==="horizontal"?a.xAxisId===n:a.yAxisId===i).filter(a=>a.isPanorama===r).filter(a=>a.hide===!1).filter(a=>a.type==="bar")),HFe=(t,e,n,i)=>{var r=pn(t);return r==="horizontal"?G0(t,"yAxis",n,i):G0(t,"xAxis",e,i)},VFe=(t,e,n)=>{var i=pn(t);return i==="horizontal"?L8(t,"xAxis",e):L8(t,"yAxis",n)},GFe=(t,e,n)=>{var i={},r=t.filter(iw),a=t.filter(c=>c.stackId==null),s=r.reduce((c,d)=>(c[d.stackId]||(c[d.stackId]=[]),c[d.stackId].push(d),c),i),o=Object.entries(s).map(c=>{var[d,f]=c,p=f.map(y=>y.dataKey),m=j6(e,n,f[0].barSize);return{stackId:d,dataKeys:p,barSize:m}}),l=a.map(c=>{var d=[c.dataKey].filter(p=>p!=null),f=j6(e,n,c.barSize);return{stackId:void 0,dataKeys:d,barSize:f}});return[...o,...l]},$Fe=He([jFe,fDe,VFe],GFe),WFe=(t,e,n,i,r)=>{var a,s,o=Nv(t,e,n,i,r);if(o!=null){var l=pn(t),c=tY(t),{maxBarSize:d}=o,f=oi(d)?c:d,p,m;return l==="horizontal"?(p=Iu(t,"xAxis",e,i),m=ku(t,"xAxis",e,i)):(p=Iu(t,"yAxis",n,i),m=ku(t,"yAxis",n,i)),(a=(s=Ip(p,m,!0))!==null&&s!==void 0?s:f)!==null&&a!==void 0?a:0}},jK=(t,e,n,i)=>{var r=pn(t),a,s;return r==="horizontal"?(a=Iu(t,"xAxis",e,i),s=ku(t,"xAxis",e,i)):(a=Iu(t,"yAxis",n,i),s=ku(t,"yAxis",n,i)),Ip(a,s)};function qFe(t,e,n,i,r){var a=i.length;if(!(a<1)){var s=ea(t,n,0,!0),o,l=[];if(Qn(i[0].barSize)){var c=!1,d=n/a,f=i.reduce((v,w)=>v+(w.barSize||0),0);f+=(a-1)*s,f>=n&&(f-=(a-1)*s,s=0),f>=n&&d>0&&(c=!0,d*=.9,f=a*d);var p=(n-f)/2>>0,m={offset:p-s,size:0};o=i.reduce((v,w)=>{var M,A={stackId:w.stackId,dataKeys:w.dataKeys,position:{offset:m.offset+m.size+s,size:c?d:(M=w.barSize)!==null&&M!==void 0?M:0}},T=[...v,A];return m=T[T.length-1].position,T},l)}else{var y=ea(e,n,0,!0);n-2*y-(a-1)*s<=0&&(s=0);var b=(n-2*y-(a-1)*s)/a;b>1&&(b>>=0);var x=Qn(r)?Math.min(b,r):b;o=i.reduce((v,w,M)=>[...v,{stackId:w.stackId,dataKeys:w.dataKeys,position:{offset:y+(b+s)*M+(b-x)/2,size:x}}],l)}return o}}var XFe=(t,e,n,i,r,a,s)=>{var o=oi(s)?e:s,l=qFe(n,i,r!==a?r:a,t,o);return r!==a&&l!=null&&(l=l.map(c=>bb(bb({},c),{},{position:bb(bb({},c.position),{},{offset:c.position.offset-r/2})}))),l},YFe=He([$Fe,tY,dDe,nY,WFe,jK,zFe],XFe),KFe=(t,e,n,i)=>Iu(t,"xAxis",e,i),ZFe=(t,e,n,i)=>Iu(t,"yAxis",n,i),JFe=(t,e,n,i)=>ku(t,"xAxis",e,i),QFe=(t,e,n,i)=>ku(t,"yAxis",n,i),eze=He([YFe,Nv],(t,e)=>{if(!(t==null||e==null)){var n=t.find(i=>i.stackId===e.stackId&&e.dataKey!=null&&i.dataKeys.includes(e.dataKey));if(n!=null)return n.position}}),tze=(t,e)=>{var n=nw(e);if(!(!t||n==null||e==null)){var{stackId:i}=e;if(i!=null){var r=t[i];if(r){var{stackedData:a}=r;if(a)return a.find(s=>s.key===n)}}}},nze=He([HFe,Nv],tze),ize=He([ar,lN,KFe,ZFe,JFe,QFe,eze,pn,QS,jK,nze,Nv,BFe],(t,e,n,i,r,a,s,o,l,c,d,f,p)=>{var{chartData:m,dataStartIndex:y,dataEndIndex:b}=l;if(!(f==null||s==null||e==null||o!=="horizontal"&&o!=="vertical"||n==null||i==null||r==null||a==null||c==null)){var{data:x}=f,v;if(x!=null&&x.length>0?v=x:v=m?.slice(y,b+1),v!=null)return PFe({layout:o,barSettings:f,pos:s,parentViewBox:e,bandSize:c,xAxis:n,yAxis:i,xAxisTicks:r,yAxisTicks:a,stackedData:d,displayedData:v,offset:t,cells:p,dataStartIndex:y})}}),HK=t=>{var{chartData:e}=t,n=Wn(),i=ia();return R.useEffect(()=>i?()=>{}:(n(q8(e)),()=>{n(q8(void 0))}),[e,n,i]),null},H6={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},VK=Ua({name:"brush",initialState:H6,reducers:{setBrushSettings(t,e){return e.payload==null?H6:e.payload}}}),{setBrushSettings:i8e}=VK.actions,rze=VK.reducer;function aze(t,e,n){return(e=sze(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function sze(t){var e=oze(t,"string");return typeof e=="symbol"?e:e+""}function oze(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}class IO{static create(e){return new IO(e)}constructor(e){this.scale=e}get domain(){return this.scale.domain}get range(){return this.scale.range}get rangeMin(){return this.range()[0]}get rangeMax(){return this.range()[1]}get bandwidth(){return this.scale.bandwidth}apply(e){var{bandAware:n,position:i}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e!==void 0){if(i)switch(i){case"start":return this.scale(e);case"middle":{var r=this.bandwidth?this.bandwidth()/2:0;return this.scale(e)+r}case"end":{var a=this.bandwidth?this.bandwidth():0;return this.scale(e)+a}default:return this.scale(e)}if(n){var s=this.bandwidth?this.bandwidth()/2:0;return this.scale(e)+s}return this.scale(e)}}isInRange(e){var n=this.range(),i=n[0],r=n[n.length-1];return i<=r?e>=i&&e<=r:e>=r&&e<=i}}aze(IO,"EPS",1e-4);function lze(t){return(t%180+180)%180}var cze=function(e){var{width:n,height:i}=e,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=lze(r),s=a*Math.PI/180,o=Math.atan(i/n),l=s>o&&s<Math.PI-o?i/Math.sin(s):n/Math.cos(s);return Math.abs(l)},uze={dots:[],areas:[],lines:[]},GK=Ua({name:"referenceElements",initialState:uze,reducers:{addDot:(t,e)=>{t.dots.push(e.payload)},removeDot:(t,e)=>{var n=ho(t).dots.findIndex(i=>i===e.payload);n!==-1&&t.dots.splice(n,1)},addArea:(t,e)=>{t.areas.push(e.payload)},removeArea:(t,e)=>{var n=ho(t).areas.findIndex(i=>i===e.payload);n!==-1&&t.areas.splice(n,1)},addLine:(t,e)=>{t.lines.push(e.payload)},removeLine:(t,e)=>{var n=ho(t).lines.findIndex(i=>i===e.payload);n!==-1&&t.lines.splice(n,1)}}}),{addDot:r8e,removeDot:a8e,addArea:s8e,removeArea:o8e,addLine:l8e,removeLine:c8e}=GK.actions,dze=GK.reducer,fze=R.createContext(void 0),hze=t=>{var{children:e}=t,[n]=R.useState("".concat(D0("recharts"),"-clip")),i=LO();if(i==null)return null;var{x:r,y:a,width:s,height:o}=i;return R.createElement(fze.Provider,{value:n},R.createElement("defs",null,R.createElement("clipPath",{id:n},R.createElement("rect",{x:r,y:a,height:o,width:s}))),e)};function $K(t,e){if(e<1)return[];if(e===1)return t;for(var n=[],i=0;i<t.length;i+=e)n.push(t[i]);return n}function pze(t,e,n){var i={width:t.width+e.width,height:t.height+e.height};return cze(i,n)}function mze(t,e,n){var i=n==="width",{x:r,y:a,width:s,height:o}=t;return e===1?{start:i?r:a,end:i?r+s:a+o}:{start:i?r+s:a+o,end:i?r:a}}function H1(t,e,n,i,r){if(t*e<t*i||t*e>t*r)return!1;var a=n();return t*(e-t*a/2-i)>=0&&t*(e+t*a/2-r)<=0}function gze(t,e){return $K(t,e+1)}function vze(t,e,n,i,r){for(var a=(i||[]).slice(),{start:s,end:o}=e,l=0,c=1,d=s,f=function(){var y=i?.[l];if(y===void 0)return{v:$K(i,c)};var b=l,x,v=()=>(x===void 0&&(x=n(y,b)),x),w=y.coordinate,M=l===0||H1(t,w,v,d,o);M||(l=0,d=s,c+=1),M&&(d=w+t*(v()/2+r),l+=c)},p;c<=a.length;)if(p=f(),p)return p.v;return[]}function V6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Zr(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?V6(Object(n),!0).forEach(function(i){xze(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):V6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function xze(t,e,n){return(e=yze(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function yze(t){var e=bze(t,"string");return typeof e=="symbol"?e:e+""}function bze(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function _ze(t,e,n,i,r){for(var a=(i||[]).slice(),s=a.length,{start:o}=e,{end:l}=e,c=function(p){var m=a[p],y,b=()=>(y===void 0&&(y=n(m,p)),y);if(p===s-1){var x=t*(m.coordinate+t*b()/2-l);a[p]=m=Zr(Zr({},m),{},{tickCoord:x>0?m.coordinate-x*t:m.coordinate})}else a[p]=m=Zr(Zr({},m),{},{tickCoord:m.coordinate});if(m.tickCoord!=null){var v=H1(t,m.tickCoord,b,o,l);v&&(l=m.tickCoord-t*(b()/2+r),a[p]=Zr(Zr({},m),{},{isShow:!0}))}},d=s-1;d>=0;d--)c(d);return a}function Sze(t,e,n,i,r,a){var s=(i||[]).slice(),o=s.length,{start:l,end:c}=e;if(a){var d=i[o-1],f=n(d,o-1),p=t*(d.coordinate+t*f/2-c);if(s[o-1]=d=Zr(Zr({},d),{},{tickCoord:p>0?d.coordinate-p*t:d.coordinate}),d.tickCoord!=null){var m=H1(t,d.tickCoord,()=>f,l,c);m&&(c=d.tickCoord-t*(f/2+r),s[o-1]=Zr(Zr({},d),{},{isShow:!0}))}}for(var y=a?o-1:o,b=function(w){var M=s[w],A,T=()=>(A===void 0&&(A=n(M,w)),A);if(w===0){var D=t*(M.coordinate-t*T()/2-l);s[w]=M=Zr(Zr({},M),{},{tickCoord:D<0?M.coordinate-D*t:M.coordinate})}else s[w]=M=Zr(Zr({},M),{},{tickCoord:M.coordinate});if(M.tickCoord!=null){var C=H1(t,M.tickCoord,T,l,c);C&&(l=M.tickCoord+t*(T()/2+r),s[w]=Zr(Zr({},M),{},{isShow:!0}))}},x=0;x<y;x++)b(x);return s}function UO(t,e,n){var{tick:i,ticks:r,viewBox:a,minTickGap:s,orientation:o,interval:l,tickFormatter:c,unit:d,angle:f}=t;if(!r||!r.length||!i)return[];if(St(l)||nm.isSsr){var p;return(p=gze(r,St(l)?l:0))!==null&&p!==void 0?p:[]}var m=[],y=o==="top"||o==="bottom"?"width":"height",b=d&&y==="width"?n0(d,{fontSize:e,letterSpacing:n}):{width:0,height:0},x=(M,A)=>{var T=typeof c=="function"?c(M.value,A):M.value;return y==="width"?pze(n0(T,{fontSize:e,letterSpacing:n}),b,f):n0(T,{fontSize:e,letterSpacing:n})[y]},v=r.length>=2?_r(r[1].coordinate-r[0].coordinate):1,w=mze(a,v,y);return l==="equidistantPreserveStart"?vze(v,w,x,r,s):(l==="preserveStart"||l==="preserveStartEnd"?m=Sze(v,w,x,r,s,l==="preserveStartEnd"):m=_ze(v,w,x,r,s),m.filter(M=>M.isShow))}var wze=t=>{var{ticks:e,label:n,labelGapWithTick:i=5,tickSize:r=0,tickMargin:a=0}=t,s=0;if(e){Array.from(e).forEach(d=>{if(d){var f=d.getBoundingClientRect();f.width>s&&(s=f.width)}});var o=n?n.getBoundingClientRect().width:0,l=r+a,c=s+l+o+(n?i:0);return Math.round(c)}return 0},Mze=["axisLine","width","height","className","hide","ticks","axisType"];function Eze(t,e){if(t==null)return{};var n,i,r=Aze(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Aze(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function _f(){return _f=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},_f.apply(null,arguments)}function G6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Oi(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?G6(Object(n),!0).forEach(function(i){Tze(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):G6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function Tze(t,e,n){return(e=Cze(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Cze(t){var e=Rze(t,"string");return typeof e=="symbol"?e:e+""}function Rze(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var Kl={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd",zIndex:Fi.axis};function Pze(t){var{x:e,y:n,width:i,height:r,orientation:a,mirror:s,axisLine:o,otherSvgProps:l}=t;if(!o)return null;var c=Oi(Oi(Oi({},l),La(o)),{},{fill:"none"});if(a==="top"||a==="bottom"){var d=+(a==="top"&&!s||a==="bottom"&&s);c=Oi(Oi({},c),{},{x1:e,y1:n+d*r,x2:e+i,y2:n+d*r})}else{var f=+(a==="left"&&!s||a==="right"&&s);c=Oi(Oi({},c),{},{x1:e+f*i,y1:n,x2:e+f*i,y2:n+r})}return R.createElement("line",_f({},c,{className:yn("recharts-cartesian-axis-line",vf(o,"className"))}))}function Dze(t,e,n,i,r,a,s,o,l){var c,d,f,p,m,y,b=o?-1:1,x=t.tickSize||s,v=St(t.tickCoord)?t.tickCoord:t.coordinate;switch(a){case"top":c=d=t.coordinate,p=n+ +!o*r,f=p-b*x,y=f-b*l,m=v;break;case"left":f=p=t.coordinate,d=e+ +!o*i,c=d-b*x,m=c-b*l,y=v;break;case"right":f=p=t.coordinate,d=e+ +o*i,c=d+b*x,m=c+b*l,y=v;break;default:c=d=t.coordinate,p=n+ +o*r,f=p+b*x,y=f+b*l,m=v;break}return{line:{x1:c,y1:f,x2:d,y2:p},tick:{x:m,y}}}function Nze(t,e){switch(t){case"left":return e?"start":"end";case"right":return e?"end":"start";default:return"middle"}}function Oze(t,e){switch(t){case"left":case"right":return"middle";case"top":return e?"start":"end";default:return e?"end":"start"}}function Lze(t){var{option:e,tickProps:n,value:i}=t,r,a=yn(n.className,"recharts-cartesian-axis-tick-value");if(R.isValidElement(e))r=R.cloneElement(e,Oi(Oi({},n),{},{className:a}));else if(typeof e=="function")r=e(Oi(Oi({},n),{},{className:a}));else{var s="recharts-cartesian-axis-tick-value";typeof e!="boolean"&&(s=yn(s,e?.className)),r=R.createElement(dw,_f({},n,{className:s}),i)}return r}var kze=R.forwardRef((t,e)=>{var{ticks:n=[],tick:i,tickLine:r,stroke:a,tickFormatter:s,unit:o,padding:l,tickTextProps:c,orientation:d,mirror:f,x:p,y:m,width:y,height:b,tickSize:x,tickMargin:v,fontSize:w,letterSpacing:M,getTicksConfig:A,events:T,axisType:D}=t,C=UO(Oi(Oi({},A),{},{ticks:n}),w,M),U=Nze(d,f),P=Oze(d,f),k=La(A),B=gf(i),I={};typeof r=="object"&&(I=r);var W=Oi(Oi({},k),{},{fill:"none"},I),O=C.map(G=>Oi({entry:G},Dze(G,p,m,y,b,d,x,f,v))),$=O.map(G=>{var{entry:Y,line:Q}=G;return R.createElement(Ei,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(Y.value,"-").concat(Y.coordinate,"-").concat(Y.tickCoord)},r&&R.createElement("line",_f({},W,Q,{className:yn("recharts-cartesian-axis-tick-line",vf(r,"className"))})))}),q=O.map((G,Y)=>{var{entry:Q,tick:se}=G,H=Oi(Oi(Oi(Oi({textAnchor:U,verticalAnchor:P},k),{},{stroke:"none",fill:a},B),se),{},{index:Y,payload:Q,visibleTicksCount:C.length,tickFormatter:s,padding:l},c);return R.createElement(Ei,_f({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(Q.value,"-").concat(Q.coordinate,"-").concat(Q.tickCoord)},cv(T,Q,Y)),i&&R.createElement(Lze,{option:i,tickProps:H,value:"".concat(typeof s=="function"?s(Q.value,Y):Q.value).concat(o||"")}))});return R.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(D,"-ticks")},q.length>0&&R.createElement(Fa,{zIndex:Fi.label},R.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(D,"-tick-labels"),ref:e},q)),$.length>0&&R.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(D,"-tick-lines")},$))}),Ize=R.forwardRef((t,e)=>{var{axisLine:n,width:i,height:r,className:a,hide:s,ticks:o,axisType:l}=t,c=Eze(t,Mze),[d,f]=R.useState(""),[p,m]=R.useState(""),y=R.useRef(null);R.useImperativeHandle(e,()=>({getCalculatedWidth:()=>{var x;return wze({ticks:y.current,label:(x=t.labelRef)===null||x===void 0?void 0:x.current,labelGapWithTick:5,tickSize:t.tickSize,tickMargin:t.tickMargin})}}));var b=R.useCallback(x=>{if(x){var v=x.getElementsByClassName("recharts-cartesian-axis-tick-value");y.current=v;var w=v[0];if(w){var M=window.getComputedStyle(w),A=M.fontSize,T=M.letterSpacing;(A!==d||T!==p)&&(f(A),m(T))}}},[d,p]);return s||i!=null&&i<=0||r!=null&&r<=0?null:R.createElement(Fa,{zIndex:t.zIndex},R.createElement(Ei,{className:yn("recharts-cartesian-axis",a)},R.createElement(Pze,{x:t.x,y:t.y,width:i,height:r,orientation:t.orientation,mirror:t.mirror,axisLine:n,otherSvgProps:La(t)}),R.createElement(kze,{ref:b,axisType:l,events:c,fontSize:d,getTicksConfig:t,height:t.height,letterSpacing:p,mirror:t.mirror,orientation:t.orientation,padding:t.padding,stroke:t.stroke,tick:t.tick,tickFormatter:t.tickFormatter,tickLine:t.tickLine,tickMargin:t.tickMargin,tickSize:t.tickSize,tickTextProps:t.tickTextProps,ticks:o,unit:t.unit,width:t.width,x:t.x,y:t.y}),R.createElement(ske,{x:t.x,y:t.y,width:t.width,height:t.height,lowerWidth:t.width,upperWidth:t.width},R.createElement(gke,{label:t.label,labelRef:t.labelRef}),t.children)))}),FO=R.forwardRef((t,e)=>{var n=Vi(t,Kl);return R.createElement(Ize,_f({},n,{ref:e}))});FO.displayName="CartesianAxis";var Uze=["x1","y1","x2","y2","key"],Fze=["offset"],zze=["xAxisId","yAxisId"],Bze=["xAxisId","yAxisId"];function $6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Jr(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?$6(Object(n),!0).forEach(function(i){jze(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):$6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function jze(t,e,n){return(e=Hze(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Hze(t){var e=Vze(t,"string");return typeof e=="symbol"?e:e+""}function Vze(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Fd(){return Fd=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},Fd.apply(null,arguments)}function V1(t,e){if(t==null)return{};var n,i,r=Gze(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Gze(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var $ze=t=>{var{fill:e}=t;if(!e||e==="none")return null;var{fillOpacity:n,x:i,y:r,width:a,height:s,ry:o}=t;return R.createElement("rect",{x:i,y:r,ry:o,width:a,height:s,stroke:"none",fill:e,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function WK(t){var{option:e,lineItemProps:n}=t,i;if(R.isValidElement(e))i=R.cloneElement(e,n);else if(typeof e=="function")i=e(n);else{var r,{x1:a,y1:s,x2:o,y2:l,key:c}=n,d=V1(n,Uze),f=(r=La(d))!==null&&r!==void 0?r:{},{offset:p}=f,m=V1(f,Fze);i=R.createElement("line",Fd({},m,{x1:a,y1:s,x2:o,y2:l,fill:"none",key:c}))}return i}function Wze(t){var{x:e,width:n,horizontal:i=!0,horizontalPoints:r}=t;if(!i||!r||!r.length)return null;var{xAxisId:a,yAxisId:s}=t,o=V1(t,zze),l=r.map((c,d)=>{var f=Jr(Jr({},o),{},{x1:e,y1:c,x2:e+n,y2:c,key:"line-".concat(d),index:d});return R.createElement(WK,{key:"line-".concat(d),option:i,lineItemProps:f})});return R.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function qze(t){var{y:e,height:n,vertical:i=!0,verticalPoints:r}=t;if(!i||!r||!r.length)return null;var{xAxisId:a,yAxisId:s}=t,o=V1(t,Bze),l=r.map((c,d)=>{var f=Jr(Jr({},o),{},{x1:c,y1:e,x2:c,y2:e+n,key:"line-".concat(d),index:d});return R.createElement(WK,{option:i,lineItemProps:f,key:"line-".concat(d)})});return R.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function Xze(t){var{horizontalFill:e,fillOpacity:n,x:i,y:r,width:a,height:s,horizontalPoints:o,horizontal:l=!0}=t;if(!l||!e||!e.length||o==null)return null;var c=o.map(f=>Math.round(f+r-r)).sort((f,p)=>f-p);r!==c[0]&&c.unshift(0);var d=c.map((f,p)=>{var m=!c[p+1],y=m?r+s-f:c[p+1]-f;if(y<=0)return null;var b=p%e.length;return R.createElement("rect",{key:"react-".concat(p),y:f,x:i,height:y,width:a,stroke:"none",fill:e[b],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return R.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},d)}function Yze(t){var{vertical:e=!0,verticalFill:n,fillOpacity:i,x:r,y:a,width:s,height:o,verticalPoints:l}=t;if(!e||!n||!n.length)return null;var c=l.map(f=>Math.round(f+r-r)).sort((f,p)=>f-p);r!==c[0]&&c.unshift(0);var d=c.map((f,p)=>{var m=!c[p+1],y=m?r+s-f:c[p+1]-f;if(y<=0)return null;var b=p%n.length;return R.createElement("rect",{key:"react-".concat(p),x:f,y:a,width:y,height:o,stroke:"none",fill:n[b],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return R.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},d)}var Kze=(t,e)=>{var{xAxis:n,width:i,height:r,offset:a}=t;return Cq(UO(Jr(Jr(Jr({},Kl),n),{},{ticks:Rq(n),viewBox:{x:0,y:0,width:i,height:r}})),a.left,a.left+a.width,e)},Zze=(t,e)=>{var{yAxis:n,width:i,height:r,offset:a}=t;return Cq(UO(Jr(Jr(Jr({},Kl),n),{},{ticks:Rq(n),viewBox:{x:0,y:0,width:i,height:r}})),a.top,a.top+a.height,e)},Jze={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],stroke:"#ccc",fill:"none",verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:Fi.grid};function eP(t){var e=uN(),n=dN(),i=Fq(),r=Jr(Jr({},Vi(t,Jze)),{},{x:St(t.x)?t.x:i.left,y:St(t.y)?t.y:i.top,width:St(t.width)?t.width:i.width,height:St(t.height)?t.height:i.height}),{xAxisId:a,yAxisId:s,x:o,y:l,width:c,height:d,syncWithTicks:f,horizontalValues:p,verticalValues:m}=r,y=ia(),b=wt(P=>k8(P,"xAxis",a,y)),x=wt(P=>k8(P,"yAxis",s,y));if(!Go(c)||!Go(d)||!St(o)||!St(l))return null;var v=r.verticalCoordinatesGenerator||Kze,w=r.horizontalCoordinatesGenerator||Zze,{horizontalPoints:M,verticalPoints:A}=r;if((!M||!M.length)&&typeof w=="function"){var T=p&&p.length,D=w({yAxis:x?Jr(Jr({},x),{},{ticks:T?p:x.ticks}):void 0,width:e??c,height:n??d,offset:i},T?!0:f);p1(Array.isArray(D),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof D,"]")),Array.isArray(D)&&(M=D)}if((!A||!A.length)&&typeof v=="function"){var C=m&&m.length,U=v({xAxis:b?Jr(Jr({},b),{},{ticks:C?m:b.ticks}):void 0,width:e??c,height:n??d,offset:i},C?!0:f);p1(Array.isArray(U),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof U,"]")),Array.isArray(U)&&(A=U)}return R.createElement(Fa,{zIndex:r.zIndex},R.createElement("g",{className:"recharts-cartesian-grid"},R.createElement($ze,{fill:r.fill,fillOpacity:r.fillOpacity,x:r.x,y:r.y,width:r.width,height:r.height,ry:r.ry}),R.createElement(Xze,Fd({},r,{horizontalPoints:M})),R.createElement(Yze,Fd({},r,{verticalPoints:A})),R.createElement(Wze,Fd({},r,{offset:i,horizontalPoints:M,xAxis:b,yAxis:x})),R.createElement(qze,Fd({},r,{offset:i,verticalPoints:A,xAxis:b,yAxis:x}))))}eP.displayName="CartesianGrid";function Qze(t){var e=gf(t),n=3,i=2;if(e!=null){var{r,strokeWidth:a}=e,s=Number(r),o=Number(a);return(Number.isNaN(s)||s<0)&&(s=n),(Number.isNaN(o)||o<0)&&(o=i),{r:s,strokeWidth:o}}return{r:n,strokeWidth:i}}var qK=(t,e,n,i)=>Iu(t,"xAxis",e,i),XK=(t,e,n,i)=>ku(t,"xAxis",e,i),YK=(t,e,n,i)=>Iu(t,"yAxis",n,i),KK=(t,e,n,i)=>ku(t,"yAxis",n,i),e4e=He([pn,qK,YK,XK,KK],(t,e,n,i,r)=>lc(t,"xAxis")?Ip(e,i,!1):Ip(n,r,!1)),t4e=(t,e,n,i,r)=>r,ZK=He([sw,t4e],(t,e)=>t.filter(n=>n.type==="area").find(n=>n.id===e)),n4e=(t,e,n,i,r)=>{var a,s=ZK(t,e,n,i,r);if(s!=null){var o=pn(t),l=lc(o,"xAxis"),c;if(l?c=G0(t,"yAxis",n,i):c=G0(t,"xAxis",e,i),c!=null){var{stackId:d}=s,f=nw(s);if(!(d==null||f==null)){var p=(a=c[d])===null||a===void 0?void 0:a.stackedData;return p?.find(m=>m.key===f)}}}},i4e=He([pn,qK,YK,XK,KK,n4e,QS,e4e,ZK,hDe],(t,e,n,i,r,a,s,o,l,c)=>{var{chartData:d,dataStartIndex:f,dataEndIndex:p}=s;if(!(l==null||t!=="horizontal"&&t!=="vertical"||e==null||n==null||i==null||r==null||i.length===0||r.length===0||o==null)){var{data:m}=l,y;if(m&&m.length>0?y=m:y=d?.slice(f,p+1),y!=null)return S4e({layout:t,xAxis:e,yAxis:n,xAxisTicks:i,yAxisTicks:r,dataStartIndex:f,areaSettings:l,stackedData:a,displayedData:y,chartBaseValue:c,bandSize:o})}}),r4e=["id"],a4e=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function Jd(){return Jd=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},Jd.apply(null,arguments)}function JK(t,e){if(t==null)return{};var n,i,r=s4e(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function s4e(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function W6(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function ip(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?W6(Object(n),!0).forEach(function(i){o4e(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):W6(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function o4e(t,e,n){return(e=l4e(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l4e(t){var e=c4e(t,"string");return typeof e=="symbol"?e:e+""}function c4e(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function G1(t,e){return t&&t!=="none"?t:e}var u4e=t=>{var{dataKey:e,name:n,stroke:i,fill:r,legendType:a,hide:s}=t;return[{inactive:s,dataKey:e,type:a,color:G1(i,r),value:em(n,e),payload:t}]},d4e=R.memo(t=>{var{dataKey:e,data:n,stroke:i,strokeWidth:r,fill:a,name:s,hide:o,unit:l,tooltipType:c}=t,d={dataDefinedOnItem:n,positions:void 0,settings:{stroke:i,strokeWidth:r,fill:a,dataKey:e,nameKey:void 0,name:em(s,e),hide:o,type:c,color:G1(i,a),unit:l}};return R.createElement(NO,{tooltipEntrySettings:d})});function f4e(t){var{clipPathId:e,points:n,props:i}=t,{needClip:r,dot:a,dataKey:s}=i,o=La(i);return R.createElement(rUe,{points:n,dot:a,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:s,baseProps:o,needClip:r,clipPathId:e})}function h4e(t){var{showLabels:e,children:n,points:i}=t,r=i.map(a=>{var s,o,l={x:(s=a.x)!==null&&s!==void 0?s:0,y:(o=a.y)!==null&&o!==void 0?o:0,width:0,lowerWidth:0,upperWidth:0,height:0};return ip(ip({},l),{},{value:a.value,payload:a.payload,parentViewBox:void 0,viewBox:l,fill:void 0})});return R.createElement(_K,{value:e?r:void 0},n)}function q6(t){var{points:e,baseLine:n,needClip:i,clipPathId:r,props:a}=t,{layout:s,type:o,stroke:l,connectNulls:c,isRange:d}=a,{id:f}=a,p=JK(a,r4e),m=La(p),y=ga(p);return R.createElement(R.Fragment,null,e?.length>1&&R.createElement(Ei,{clipPath:i?"url(#clipPath-".concat(r,")"):void 0},R.createElement(hp,Jd({},y,{id:f,points:e,connectNulls:c,type:o,baseLine:n,layout:s,stroke:"none",className:"recharts-area-area"})),l!=="none"&&R.createElement(hp,Jd({},m,{className:"recharts-area-curve",layout:s,type:o,connectNulls:c,fill:"none",points:e})),l!=="none"&&d&&R.createElement(hp,Jd({},m,{className:"recharts-area-curve",layout:s,type:o,connectNulls:c,fill:"none",points:n}))),R.createElement(f4e,{points:e,props:p,clipPathId:r}))}function p4e(t){var{alpha:e,baseLine:n,points:i,strokeWidth:r}=t,a=i[0].y,s=i[i.length-1].y;if(!Qn(a)||!Qn(s))return null;var o=e*Math.abs(a-s),l=Math.max(...i.map(c=>c.x||0));return St(n)?l=Math.max(n,l):n&&Array.isArray(n)&&n.length&&(l=Math.max(...n.map(c=>c.x||0),l)),St(l)?R.createElement("rect",{x:0,y:a<s?a:a-o,width:l+(r?parseInt("".concat(r),10):1),height:Math.floor(o)}):null}function m4e(t){var{alpha:e,baseLine:n,points:i,strokeWidth:r}=t,a=i[0].x,s=i[i.length-1].x;if(!Qn(a)||!Qn(s))return null;var o=e*Math.abs(a-s),l=Math.max(...i.map(c=>c.y||0));return St(n)?l=Math.max(n,l):n&&Array.isArray(n)&&n.length&&(l=Math.max(...n.map(c=>c.y||0),l)),St(l)?R.createElement("rect",{x:a<s?a:a-o,y:0,width:o,height:Math.floor(l+(r?parseInt("".concat(r),10):1))}):null}function g4e(t){var{alpha:e,layout:n,points:i,baseLine:r,strokeWidth:a}=t;return n==="vertical"?R.createElement(p4e,{alpha:e,points:i,baseLine:r,strokeWidth:a}):R.createElement(m4e,{alpha:e,points:i,baseLine:r,strokeWidth:a})}function v4e(t){var{needClip:e,clipPathId:n,props:i,previousPointsRef:r,previousBaselineRef:a}=t,{points:s,baseLine:o,isAnimationActive:l,animationBegin:c,animationDuration:d,animationEasing:f,onAnimationStart:p,onAnimationEnd:m}=i,y=R.useMemo(()=>({points:s,baseLine:o}),[s,o]),b=gv(y,"recharts-area-"),x=DCe(),[v,w]=R.useState(!1),M=!v,A=R.useCallback(()=>{typeof m=="function"&&m(),w(!1)},[m]),T=R.useCallback(()=>{typeof p=="function"&&p(),w(!0)},[p]);if(x==null)return null;var D=r.current,C=a.current;return R.createElement(h4e,{showLabels:M,points:s},i.children,R.createElement(mv,{animationId:b,begin:c,duration:d,isActive:l,easing:f,onAnimationEnd:A,onAnimationStart:T,key:b},U=>{if(D){var P=D.length/s.length,k=U===1?s:s.map((I,W)=>{var O=Math.floor(W*P);if(D[O]){var $=D[O];return ip(ip({},I),{},{x:Jn($.x,I.x,U),y:Jn($.y,I.y,U)})}return I}),B;return St(o)?B=Jn(C,o,U):oi(o)||Bs(o)?B=Jn(C,0,U):B=o.map((I,W)=>{var O=Math.floor(W*P);if(Array.isArray(C)&&C[O]){var $=C[O];return ip(ip({},I),{},{x:Jn($.x,I.x,U),y:Jn($.y,I.y,U)})}return I}),U>0&&(r.current=k,a.current=B),R.createElement(q6,{points:k,baseLine:B,needClip:e,clipPathId:n,props:i})}return U>0&&(r.current=s,a.current=o),R.createElement(Ei,null,l&&R.createElement("defs",null,R.createElement("clipPath",{id:"animationClipPath-".concat(n)},R.createElement(g4e,{alpha:U,points:s,baseLine:o,layout:x,strokeWidth:i.strokeWidth}))),R.createElement(Ei,{clipPath:"url(#animationClipPath-".concat(n,")")},R.createElement(q6,{points:s,baseLine:o,needClip:e,clipPathId:n,props:i})))}),R.createElement(EO,{label:i.label}))}function x4e(t){var{needClip:e,clipPathId:n,props:i}=t,r=R.useRef(null),a=R.useRef();return R.createElement(v4e,{needClip:e,clipPathId:n,props:i,previousPointsRef:r,previousBaselineRef:a})}class y4e extends R.PureComponent{render(){var{hide:e,dot:n,points:i,className:r,top:a,left:s,needClip:o,xAxisId:l,yAxisId:c,width:d,height:f,id:p,baseLine:m,zIndex:y}=this.props;if(e)return null;var b=yn("recharts-area",r),x=p,{r:v,strokeWidth:w}=Qze(n),M=RK(n),A=v*2+w,T=o?"url(#clipPath-".concat(M?"":"dots-").concat(x,")"):void 0;return R.createElement(Fa,{zIndex:y},R.createElement(Ei,{className:b},o&&R.createElement("defs",null,R.createElement(FK,{clipPathId:x,xAxisId:l,yAxisId:c}),!M&&R.createElement("clipPath",{id:"clipPath-dots-".concat(x)},R.createElement("rect",{x:s-A/2,y:a-A/2,width:d+A,height:f+A}))),R.createElement(x4e,{needClip:o,clipPathId:x,props:this.props})),R.createElement(O6,{points:i,mainColor:G1(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:T}),this.props.isRange&&Array.isArray(m)&&R.createElement(O6,{points:m,mainColor:G1(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:T}))}}var QK={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,xAxisId:0,yAxisId:0,zIndex:Fi.area};function b4e(t){var e,n=Vi(t,QK),{activeDot:i,animationBegin:r,animationDuration:a,animationEasing:s,connectNulls:o,dot:l,fill:c,fillOpacity:d,hide:f,isAnimationActive:p,legendType:m,stroke:y,xAxisId:b,yAxisId:x}=n,v=JK(n,a4e),w=tm(),M=nK(),{needClip:A}=kO(b,x),T=ia(),{points:D,isRange:C,baseLine:U}=(e=wt(O=>i4e(O,b,x,T,t.id)))!==null&&e!==void 0?e:{},P=LO();if(w!=="horizontal"&&w!=="vertical"||P==null||M!=="AreaChart"&&M!=="ComposedChart")return null;var{height:k,width:B,x:I,y:W}=P;return!D||!D.length?null:R.createElement(y4e,Jd({},v,{activeDot:i,animationBegin:r,animationDuration:a,animationEasing:s,baseLine:U,connectNulls:o,dot:l,fill:c,fillOpacity:d,height:k,hide:f,layout:w,isAnimationActive:p==="auto"?!nm.isSsr:p,isRange:C,legendType:m,needClip:A,points:D,stroke:y,width:B,left:I,top:W,xAxisId:b,yAxisId:x}))}var _4e=(t,e,n,i,r)=>{var a=n??e;if(St(a))return a;var s=t==="horizontal"?r:i,o=s.scale.domain();if(s.type==="number"){var l=Math.max(o[0],o[1]),c=Math.min(o[0],o[1]);return a==="dataMin"?c:a==="dataMax"||l<0?l:Math.max(Math.min(o[0],o[1]),0)}return a==="dataMin"?o[0]:a==="dataMax"?o[1]:o[0]};function S4e(t){var{areaSettings:{connectNulls:e,baseValue:n,dataKey:i},stackedData:r,layout:a,chartBaseValue:s,xAxis:o,yAxis:l,displayedData:c,dataStartIndex:d,xAxisTicks:f,yAxisTicks:p,bandSize:m}=t,y=r&&r.length,b=_4e(a,s,n,o,l),x=a==="horizontal",v=!1,w=c.map((A,T)=>{var D;y?D=r[d+T]:(D=Hn(A,i),Array.isArray(D)?v=!0:D=[b,D]);var C=D[1]==null||y&&!e&&Hn(A,i)==null;return x?{x:eH({axis:o,ticks:f,bandSize:m,entry:A,index:T}),y:C?null:l.scale(D[1]),value:D,payload:A}:{x:C?null:o.scale(D[1]),y:eH({axis:l,ticks:p,bandSize:m,entry:A,index:T}),value:D,payload:A}}),M;return y||v?M=w.map(A=>{var T=Array.isArray(A.value)?A.value[0]:null;return x?{x:A.x,y:T!=null&&A.y!=null?l.scale(T):null,payload:A.payload}:{x:T!=null?o.scale(T):null,y:A.y,payload:A.payload}}):M=x?l.scale(b):o.scale(b),{points:w,baseLine:M,isRange:v}}function w4e(t){var e=Vi(t,QK),n=ia();return R.createElement(OO,{id:e.id,type:"area"},i=>R.createElement(R.Fragment,null,R.createElement(DK,{legendPayload:u4e(e)}),R.createElement(d4e,{dataKey:e.dataKey,data:e.data,stroke:e.stroke,strokeWidth:e.strokeWidth,fill:e.fill,name:e.name,hide:e.hide,unit:e.unit,tooltipType:e.tooltipType}),R.createElement(LK,{type:"area",id:i,data:e.data,dataKey:e.dataKey,xAxisId:e.xAxisId,yAxisId:e.yAxisId,zAxisId:0,stackId:Pq(e.stackId),hide:e.hide,barSize:void 0,baseValue:e.baseValue,isPanorama:n,connectNulls:e.connectNulls}),R.createElement(b4e,Jd({},e,{id:i}))))}var eZ=R.memo(w4e,mw);eZ.displayName="Area";var M4e=["domain","range"],E4e=["domain","range"];function X6(t,e){if(t==null)return{};var n,i,r=A4e(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function A4e(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function Y6(t,e){return t===e?!0:Array.isArray(t)&&t.length===2&&Array.isArray(e)&&e.length===2?t[0]===e[0]&&t[1]===e[1]:!1}function tZ(t,e){if(t===e)return!0;var{domain:n,range:i}=t,r=X6(t,M4e),{domain:a,range:s}=e,o=X6(e,E4e);return!Y6(n,a)||!Y6(i,s)?!1:mw(r,o)}var T4e=["dangerouslySetInnerHTML","ticks"],C4e=["id"];function tP(){return tP=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},tP.apply(null,arguments)}function K6(t,e){if(t==null)return{};var n,i,r=R4e(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function R4e(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function P4e(t){var e=Wn(),n=R.useRef(null);return R.useLayoutEffect(()=>{n.current===null?e(cUe(t)):n.current!==t&&e(uUe({prev:n.current,next:t})),n.current=t},[t,e]),R.useLayoutEffect(()=>()=>{n.current&&(e(dUe(n.current)),n.current=null)},[e]),null}var D4e=t=>{var{xAxisId:e,className:n}=t,i=wt(lN),r=ia(),a="xAxis",s=wt(x=>cm(x,a,e,r)),o=wt(x=>LY(x,a,e,r)),l=wt(x=>PY(x,e)),c=wt(x=>uNe(x,e)),d=wt(x=>dY(x,e));if(l==null||c==null||d==null)return null;var{dangerouslySetInnerHTML:f,ticks:p}=t,m=K6(t,T4e),{id:y}=d,b=K6(d,C4e);return R.createElement(FO,tP({},m,b,{scale:s,x:c.x,y:c.y,width:l.width,height:l.height,className:yn("recharts-".concat(a," ").concat(a),n),viewBox:i,ticks:o,axisType:a}))},N4e={allowDataOverflow:gr.allowDataOverflow,allowDecimals:gr.allowDecimals,allowDuplicatedCategory:gr.allowDuplicatedCategory,angle:gr.angle,axisLine:Kl.axisLine,height:gr.height,hide:!1,includeHidden:gr.includeHidden,interval:gr.interval,minTickGap:gr.minTickGap,mirror:gr.mirror,orientation:gr.orientation,padding:gr.padding,reversed:gr.reversed,scale:gr.scale,tick:gr.tick,tickCount:gr.tickCount,tickLine:Kl.tickLine,tickSize:Kl.tickSize,type:gr.type,xAxisId:0},O4e=t=>{var e=Vi(t,N4e);return R.createElement(R.Fragment,null,R.createElement(P4e,{allowDataOverflow:e.allowDataOverflow,allowDecimals:e.allowDecimals,allowDuplicatedCategory:e.allowDuplicatedCategory,angle:e.angle,dataKey:e.dataKey,domain:e.domain,height:e.height,hide:e.hide,id:e.xAxisId,includeHidden:e.includeHidden,interval:e.interval,minTickGap:e.minTickGap,mirror:e.mirror,name:e.name,orientation:e.orientation,padding:e.padding,reversed:e.reversed,scale:e.scale,tick:e.tick,tickCount:e.tickCount,tickFormatter:e.tickFormatter,ticks:e.ticks,type:e.type,unit:e.unit}),R.createElement(D4e,e))},nP=R.memo(O4e,tZ);nP.displayName="XAxis";var L4e=["dangerouslySetInnerHTML","ticks"],k4e=["id"];function iP(){return iP=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},iP.apply(null,arguments)}function Z6(t,e){if(t==null)return{};var n,i,r=I4e(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function I4e(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function U4e(t){var e=Wn(),n=R.useRef(null);return R.useLayoutEffect(()=>{n.current===null?e(fUe(t)):n.current!==t&&e(hUe({prev:n.current,next:t})),n.current=t},[t,e]),R.useLayoutEffect(()=>()=>{n.current&&(e(pUe(n.current)),n.current=null)},[e]),null}var F4e=t=>{var{yAxisId:e,className:n,width:i,label:r}=t,a=R.useRef(null),s=R.useRef(null),o=wt(lN),l=ia(),c=Wn(),d="yAxis",f=wt(T=>cm(T,d,e,l)),p=wt(T=>DY(T,e)),m=wt(T=>fNe(T,e)),y=wt(T=>LY(T,d,e,l)),b=wt(T=>fY(T,e));if(R.useLayoutEffect(()=>{if(!(i!=="auto"||!p||MO(r)||R.isValidElement(r)||b==null)){var T=a.current;if(T){var D=T.getCalculatedWidth();Math.round(p.width)!==Math.round(D)&&c(mUe({id:e,width:D}))}}},[y,p,c,r,e,i,b]),p==null||m==null||b==null)return null;var{dangerouslySetInnerHTML:x,ticks:v}=t,w=Z6(t,L4e),{id:M}=b,A=Z6(b,k4e);return R.createElement(FO,iP({},w,A,{ref:a,labelRef:s,scale:f,x:m.x,y:m.y,tickTextProps:i==="auto"?{width:void 0}:{width:i},width:p.width,height:p.height,className:yn("recharts-".concat(d," ").concat(d),n),viewBox:o,ticks:y,axisType:d}))},z4e={allowDataOverflow:vr.allowDataOverflow,allowDecimals:vr.allowDecimals,allowDuplicatedCategory:vr.allowDuplicatedCategory,angle:vr.angle,axisLine:Kl.axisLine,hide:!1,includeHidden:vr.includeHidden,interval:vr.interval,minTickGap:vr.minTickGap,mirror:vr.mirror,orientation:vr.orientation,padding:vr.padding,reversed:vr.reversed,scale:vr.scale,tick:vr.tick,tickCount:vr.tickCount,tickLine:Kl.tickLine,tickSize:Kl.tickSize,type:vr.type,width:vr.width,yAxisId:0},B4e=t=>{var e=Vi(t,z4e);return R.createElement(R.Fragment,null,R.createElement(U4e,{interval:e.interval,id:e.yAxisId,scale:e.scale,type:e.type,domain:e.domain,allowDataOverflow:e.allowDataOverflow,dataKey:e.dataKey,allowDuplicatedCategory:e.allowDuplicatedCategory,allowDecimals:e.allowDecimals,tickCount:e.tickCount,padding:e.padding,includeHidden:e.includeHidden,reversed:e.reversed,ticks:e.ticks,width:e.width,orientation:e.orientation,mirror:e.mirror,hide:e.hide,unit:e.unit,name:e.name,angle:e.angle,minTickGap:e.minTickGap,tick:e.tick,tickFormatter:e.tickFormatter}),R.createElement(F4e,e))},rP=R.memo(B4e,tZ);rP.displayName="YAxis";var j4e=(t,e)=>e,zO=He([j4e,pn,cY,or,KY,pc,TOe,ar],LOe),BO=t=>{var e=t.currentTarget.getBoundingClientRect(),n=e.width/t.currentTarget.offsetWidth,i=e.height/t.currentTarget.offsetHeight;return{chartX:Math.round((t.clientX-e.left)/n),chartY:Math.round((t.clientY-e.top)/i)}},nZ=js("mouseClick"),iZ=fv();iZ.startListening({actionCreator:nZ,effect:(t,e)=>{var n=t.payload,i=zO(e.getState(),BO(n));i?.activeIndex!=null&&e.dispatch(ANe({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}});var aP=js("mouseMove"),rZ=fv(),_b=null;rZ.startListening({actionCreator:aP,effect:(t,e)=>{var n=t.payload;_b!==null&&cancelAnimationFrame(_b);var i=BO(n);_b=requestAnimationFrame(()=>{var r=e.getState(),a=fO(r,r.tooltip.settings.shared);if(a==="axis"){var s=zO(r,i);s?.activeIndex!=null?e.dispatch(HY({activeIndex:s.activeIndex,activeDataKey:void 0,activeCoordinate:s.activeCoordinate})):e.dispatch(jY())}_b=null})}});var J6={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},aZ=Ua({name:"rootProps",initialState:J6,reducers:{updateOptions:(t,e)=>{var n;t.accessibilityLayer=e.payload.accessibilityLayer,t.barCategoryGap=e.payload.barCategoryGap,t.barGap=(n=e.payload.barGap)!==null&&n!==void 0?n:J6.barGap,t.barSize=e.payload.barSize,t.maxBarSize=e.payload.maxBarSize,t.stackOffset=e.payload.stackOffset,t.syncId=e.payload.syncId,t.syncMethod=e.payload.syncMethod,t.className=e.payload.className,t.baseValue=e.payload.baseValue,t.reverseStackOrder=e.payload.reverseStackOrder}}}),H4e=aZ.reducer,{updateOptions:V4e}=aZ.actions,sZ=Ua({name:"polarOptions",initialState:null,reducers:{updatePolarOptions:(t,e)=>e.payload}}),{updatePolarOptions:G4e}=sZ.actions,$4e=sZ.reducer,oZ=js("keyDown"),lZ=js("focus"),jO=fv();jO.startListening({actionCreator:oZ,effect:(t,e)=>{var n=e.getState(),i=n.rootProps.accessibilityLayer!==!1;if(i){var{keyboardInteraction:r}=n.tooltip,a=t.payload;if(!(a!=="ArrowRight"&&a!=="ArrowLeft"&&a!=="Enter")){var s=hO(r,dm(n),Ev(n),Rv(n)),o=s==null?-1:Number(s);if(!(!Number.isFinite(o)||o<0)){var l=pc(n);if(a==="Enter"){var c=k1(n,"axis","hover",String(r.index));e.dispatch(q3({active:!r.active,activeIndex:r.index,activeDataKey:r.dataKey,activeCoordinate:c}));return}var d=gNe(n),f=d==="left-to-right"?1:-1,p=a==="ArrowRight"?1:-1,m=o+p*f;if(!(l==null||m>=l.length||m<0)){var y=k1(n,"axis","hover",String(m));e.dispatch(q3({active:!0,activeIndex:m.toString(),activeDataKey:void 0,activeCoordinate:y}))}}}}}});jO.startListening({actionCreator:lZ,effect:(t,e)=>{var n=e.getState(),i=n.rootProps.accessibilityLayer!==!1;if(i){var{keyboardInteraction:r}=n.tooltip;if(!r.active&&r.index==null){var a="0",s=k1(n,"axis","hover",String(a));e.dispatch(q3({activeDataKey:void 0,active:!0,activeIndex:a,activeCoordinate:s}))}}}});var Ss=js("externalEvent"),cZ=fv(),o2=new Map;cZ.startListening({actionCreator:Ss,effect:(t,e)=>{var{handler:n,reactEvent:i}=t.payload;if(n!=null){i.persist();var r=i.type,a=o2.get(r);a!==void 0&&cancelAnimationFrame(a);var s=requestAnimationFrame(()=>{try{var o=e.getState(),l={activeCoordinate:fOe(o),activeDataKey:xO(o),activeIndex:Uu(o),activeLabel:QY(o),activeTooltipIndex:Uu(o),isTooltipActive:hOe(o)};n(l,i)}finally{o2.delete(r)}});o2.set(r,s)}}});var W4e=He([um],t=>t.tooltipItemPayloads),q4e=He([W4e,Tv,(t,e,n)=>e,(t,e,n)=>n],(t,e,n,i)=>{var r=t.find(o=>o.settings.dataKey===i);if(r!=null){var{positions:a}=r;if(a!=null){var s=e(a,n);return s}}}),uZ=js("touchMove"),dZ=fv();dZ.startListening({actionCreator:uZ,effect:(t,e)=>{var n=t.payload;if(!(n.touches==null||n.touches.length===0)){var i=e.getState(),r=fO(i,i.tooltip.settings.shared);if(r==="axis"){var a=zO(i,BO({clientX:n.touches[0].clientX,clientY:n.touches[0].clientY,currentTarget:n.currentTarget}));a?.activeIndex!=null&&e.dispatch(HY({activeIndex:a.activeIndex,activeDataKey:void 0,activeCoordinate:a.activeCoordinate}))}else if(r==="item"){var s,o=n.touches[0];if(document.elementFromPoint==null)return;var l=document.elementFromPoint(o.clientX,o.clientY);if(!l||!l.getAttribute)return;var c=l.getAttribute(Nq),d=(s=l.getAttribute(Oq))!==null&&s!==void 0?s:void 0,f=q4e(e.getState(),c,d);e.dispatch(BY({activeDataKey:d,activeIndex:c,activeCoordinate:f}))}}}});var X4e=Q7({brush:rze,cartesianAxis:gUe,chartData:dLe,errorBars:kUe,graphicalItems:SIe,layout:FTe,legend:WCe,options:sLe,polarAxis:Uke,polarOptions:$4e,referenceElements:dze,rootProps:H4e,tooltip:TNe,zIndex:XOe}),Y4e=function(e){return cTe({reducer:X4e,preloadedState:e,middleware:n=>{var i;return n({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((i="es6")!==null&&i!==void 0?i:"")}).concat([iZ.middleware,rZ.middleware,jO.middleware,cZ.middleware,dZ.middleware])},enhancers:n=>{var i=n;return typeof n=="function"&&(i=n()),i.concat(pq({type:"raf"}))},devTools:nm.devToolsEnabled})};function fZ(t){var{preloadedState:e,children:n,reduxStoreName:i}=t,r=ia(),a=R.useRef(null);if(r)return n;a.current==null&&(a.current=Y4e(e));var s=QD;return R.createElement(sFe,{context:s,store:a.current},n)}function K4e(t){var{layout:e,margin:n}=t,i=Wn(),r=ia();return R.useEffect(()=>{r||(i(kTe(e)),i(LTe(n)))},[i,r,e,n]),null}var hZ=R.memo(K4e,mw);function pZ(t){var e=Wn();return R.useEffect(()=>{e(V4e(t))},[e,t]),null}function Q6(t){var{zIndex:e,isPanorama:n}=t,i=n?"recharts-zindex-panorama-":"recharts-zindex-",r=NK("".concat(i).concat(e)),a=Wn();return R.useLayoutEffect(()=>(a(WOe({zIndex:e,elementId:r,isPanorama:n})),()=>{a(qOe({zIndex:e,isPanorama:n}))}),[a,e,r,n]),R.createElement("g",{tabIndex:-1,id:r})}function eV(t){var{children:e,isPanorama:n}=t,i=wt(IOe);if(!i||i.length===0)return e;var r=i.filter(s=>s<0),a=i.filter(s=>s>0);return R.createElement(R.Fragment,null,r.map(s=>R.createElement(Q6,{key:s,zIndex:s,isPanorama:n})),e,a.map(s=>R.createElement(Q6,{key:s,zIndex:s,isPanorama:n})))}var Z4e=["children"];function J4e(t,e){if(t==null)return{};var n,i,r=Q4e(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function Q4e(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}function $1(){return $1=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},$1.apply(null,arguments)}var eBe={width:"100%",height:"100%",display:"block"},tBe=R.forwardRef((t,e)=>{var n=uN(),i=dN(),r=Kq();if(!Go(n)||!Go(i))return null;var{children:a,otherAttributes:s,title:o,desc:l}=t,c,d;return s!=null&&(typeof s.tabIndex=="number"?c=s.tabIndex:c=r?0:void 0,typeof s.role=="string"?d=s.role:d=r?"application":void 0),R.createElement(VD,$1({},s,{title:o,desc:l,role:d,tabIndex:c,width:n,height:i,style:eBe,ref:e}),a)}),nBe=t=>{var{children:e}=t,n=wt(jS);if(!n)return null;var{width:i,height:r,y:a,x:s}=n;return R.createElement(VD,{width:i,height:r,x:s,y:a},e)},tV=R.forwardRef((t,e)=>{var{children:n}=t,i=J4e(t,Z4e),r=ia();return r?R.createElement(nBe,null,R.createElement(eV,{isPanorama:!0},n)):R.createElement(tBe,$1({ref:e},i),R.createElement(eV,{isPanorama:!1},n))});function iBe(){var t=Wn(),[e,n]=R.useState(null),i=wt(tCe);return R.useEffect(()=>{if(e!=null){var r=e.getBoundingClientRect(),a=r.width/e.offsetWidth;Qn(a)&&a!==i&&t(UTe(a))}},[e,t,i]),n}function nV(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function rBe(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?nV(Object(n),!0).forEach(function(i){aBe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):nV(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function aBe(t,e,n){return(e=sBe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function sBe(t){var e=oBe(t,"string");return typeof e=="symbol"?e:e+""}function oBe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Sf(){return Sf=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},Sf.apply(null,arguments)}var lBe=()=>(bLe(),null);function W1(t){if(typeof t=="number")return t;if(typeof t=="string"){var e=parseFloat(t);if(!Number.isNaN(e))return e}return 0}var cBe=R.forwardRef((t,e)=>{var n,i,r=R.useRef(null),[a,s]=R.useState({containerWidth:W1((n=t.style)===null||n===void 0?void 0:n.width),containerHeight:W1((i=t.style)===null||i===void 0?void 0:i.height)}),o=R.useCallback((c,d)=>{s(f=>{var p=Math.round(c),m=Math.round(d);return f.containerWidth===p&&f.containerHeight===m?f:{containerWidth:p,containerHeight:m}})},[]),l=R.useCallback(c=>{if(typeof e=="function"&&e(c),c!=null&&typeof ResizeObserver<"u"){var{width:d,height:f}=c.getBoundingClientRect();o(d,f);var p=y=>{var{width:b,height:x}=y[0].contentRect;o(b,x)},m=new ResizeObserver(p);m.observe(c),r.current=m}},[e,o]);return R.useEffect(()=>()=>{var c=r.current;c?.disconnect()},[o]),R.createElement(R.Fragment,null,R.createElement(VS,{width:a.containerWidth,height:a.containerHeight}),R.createElement("div",Sf({ref:l},t)))}),uBe=R.forwardRef((t,e)=>{var{width:n,height:i}=t,[r,a]=R.useState({containerWidth:W1(n),containerHeight:W1(i)}),s=R.useCallback((l,c)=>{a(d=>{var f=Math.round(l),p=Math.round(c);return d.containerWidth===f&&d.containerHeight===p?d:{containerWidth:f,containerHeight:p}})},[]),o=R.useCallback(l=>{if(typeof e=="function"&&e(l),l!=null){var{width:c,height:d}=l.getBoundingClientRect();s(c,d)}},[e,s]);return R.createElement(R.Fragment,null,R.createElement(VS,{width:r.containerWidth,height:r.containerHeight}),R.createElement("div",Sf({ref:o},t)))}),dBe=R.forwardRef((t,e)=>{var{width:n,height:i}=t;return R.createElement(R.Fragment,null,R.createElement(VS,{width:n,height:i}),R.createElement("div",Sf({ref:e},t)))}),fBe=R.forwardRef((t,e)=>{var{width:n,height:i}=t;return ec(n)||ec(i)?R.createElement(uBe,Sf({},t,{ref:e})):R.createElement(dBe,Sf({},t,{ref:e}))});function hBe(t){return t===!0?cBe:fBe}var pBe=R.forwardRef((t,e)=>{var{children:n,className:i,height:r,onClick:a,onContextMenu:s,onDoubleClick:o,onMouseDown:l,onMouseEnter:c,onMouseLeave:d,onMouseMove:f,onMouseUp:p,onTouchEnd:m,onTouchMove:y,onTouchStart:b,style:x,width:v,responsive:w,dispatchTouchEvents:M=!0}=t,A=R.useRef(null),T=Wn(),[D,C]=R.useState(null),[U,P]=R.useState(null),k=iBe(),B=cN(),I=B?.width>0?B.width:v,W=B?.height>0?B.height:r,O=R.useCallback(he=>{k(he),typeof e=="function"&&e(he),C(he),P(he),he!=null&&(A.current=he)},[k,e,C,P]),$=R.useCallback(he=>{T(nZ(he)),T(Ss({handler:a,reactEvent:he}))},[T,a]),q=R.useCallback(he=>{T(aP(he)),T(Ss({handler:c,reactEvent:he}))},[T,c]),G=R.useCallback(he=>{T(jY()),T(Ss({handler:d,reactEvent:he}))},[T,d]),Y=R.useCallback(he=>{T(aP(he)),T(Ss({handler:f,reactEvent:he}))},[T,f]),Q=R.useCallback(()=>{T(lZ())},[T]),se=R.useCallback(he=>{T(oZ(he.key))},[T]),H=R.useCallback(he=>{T(Ss({handler:s,reactEvent:he}))},[T,s]),X=R.useCallback(he=>{T(Ss({handler:o,reactEvent:he}))},[T,o]),re=R.useCallback(he=>{T(Ss({handler:l,reactEvent:he}))},[T,l]),ce=R.useCallback(he=>{T(Ss({handler:p,reactEvent:he}))},[T,p]),ye=R.useCallback(he=>{T(Ss({handler:b,reactEvent:he}))},[T,b]),me=R.useCallback(he=>{M&&T(uZ(he)),T(Ss({handler:y,reactEvent:he}))},[T,M,y]),be=R.useCallback(he=>{T(Ss({handler:m,reactEvent:he}))},[T,m]),Ne=hBe(w);return R.createElement(oK.Provider,{value:D},R.createElement(m7.Provider,{value:U},R.createElement(Ne,{width:I??x?.width,height:W??x?.height,className:yn("recharts-wrapper",i),style:rBe({position:"relative",cursor:"default",width:I,height:W},x),onClick:$,onContextMenu:H,onDoubleClick:X,onFocus:Q,onKeyDown:se,onMouseDown:re,onMouseEnter:q,onMouseLeave:G,onMouseMove:Y,onMouseUp:ce,onTouchEnd:be,onTouchMove:me,onTouchStart:ye,ref:O},R.createElement(lBe,null),n)))}),mBe=["width","height","responsive","children","className","style","compact","title","desc"];function gBe(t,e){if(t==null)return{};var n,i,r=vBe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function vBe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var mZ=R.forwardRef((t,e)=>{var{width:n,height:i,responsive:r,children:a,className:s,style:o,compact:l,title:c,desc:d}=t,f=gBe(t,mBe),p=La(f);return l?R.createElement(R.Fragment,null,R.createElement(VS,{width:n,height:i}),R.createElement(tV,{otherAttributes:p,title:c,desc:d},a)):R.createElement(pBe,{className:s,style:o,width:n,height:i,responsive:r??!1,onClick:t.onClick,onMouseLeave:t.onMouseLeave,onMouseEnter:t.onMouseEnter,onMouseMove:t.onMouseMove,onMouseDown:t.onMouseDown,onMouseUp:t.onMouseUp,onContextMenu:t.onContextMenu,onDoubleClick:t.onDoubleClick,onTouchStart:t.onTouchStart,onTouchMove:t.onTouchMove,onTouchEnd:t.onTouchEnd},R.createElement(tV,{otherAttributes:p,title:c,desc:d,ref:e},R.createElement(hze,null,a)))});function sP(){return sP=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},sP.apply(null,arguments)}var xBe={top:5,right:5,bottom:5,left:5},yBe={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:xBe,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},gZ=R.forwardRef(function(e,n){var i,r=Vi(e.categoricalChartProps,yBe),{chartName:a,defaultTooltipEventType:s,validateTooltipEventTypes:o,tooltipPayloadSearcher:l,categoricalChartProps:c}=e,d={chartName:a,defaultTooltipEventType:s,validateTooltipEventTypes:o,tooltipPayloadSearcher:l,eventEmitter:void 0};return R.createElement(fZ,{preloadedState:{options:d},reduxStoreName:(i=c.id)!==null&&i!==void 0?i:a},R.createElement(HK,{chartData:c.data}),R.createElement(hZ,{layout:r.layout,margin:r.margin}),R.createElement(pZ,{baseValue:r.baseValue,accessibilityLayer:r.accessibilityLayer,barCategoryGap:r.barCategoryGap,maxBarSize:r.maxBarSize,stackOffset:r.stackOffset,barGap:r.barGap,barSize:r.barSize,syncId:r.syncId,syncMethod:r.syncMethod,className:r.className,reverseStackOrder:r.reverseStackOrder}),R.createElement(mZ,sP({},r,{ref:n})))}),bBe=["axis","item"],_Be=R.forwardRef((t,e)=>R.createElement(gZ,{chartName:"BarChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:bBe,tooltipPayloadSearcher:wO,categoricalChartProps:t,ref:e}));function SBe(t){var e=Wn();return R.useEffect(()=>{e(G4e(t))},[e,t]),null}var wBe=["layout"];function oP(){return oP=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},oP.apply(null,arguments)}function MBe(t,e){if(t==null)return{};var n,i,r=EBe(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)===-1&&{}.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function EBe(t,e){if(t==null)return{};var n={};for(var i in t)if({}.hasOwnProperty.call(t,i)){if(e.indexOf(i)!==-1)continue;n[i]=t[i]}return n}var ABe={top:5,right:5,bottom:5,left:5},vZ={accessibilityLayer:!0,stackOffset:"none",barCategoryGap:"10%",barGap:4,margin:ABe,reverseStackOrder:!1,syncMethod:"index",layout:"radial",responsive:!1,cx:"50%",cy:"50%",innerRadius:0,outerRadius:"80%"},TBe=R.forwardRef(function(e,n){var i,r=Vi(e.categoricalChartProps,vZ),{layout:a}=r,s=MBe(r,wBe),{chartName:o,defaultTooltipEventType:l,validateTooltipEventTypes:c,tooltipPayloadSearcher:d}=e,f={chartName:o,defaultTooltipEventType:l,validateTooltipEventTypes:c,tooltipPayloadSearcher:d,eventEmitter:void 0};return R.createElement(fZ,{preloadedState:{options:f},reduxStoreName:(i=r.id)!==null&&i!==void 0?i:o},R.createElement(HK,{chartData:r.data}),R.createElement(hZ,{layout:a,margin:r.margin}),R.createElement(pZ,{baseValue:void 0,accessibilityLayer:r.accessibilityLayer,barCategoryGap:r.barCategoryGap,maxBarSize:r.maxBarSize,stackOffset:r.stackOffset,barGap:r.barGap,barSize:r.barSize,syncId:r.syncId,syncMethod:r.syncMethod,className:r.className,reverseStackOrder:r.reverseStackOrder}),R.createElement(SBe,{cx:r.cx,cy:r.cy,startAngle:r.startAngle,endAngle:r.endAngle,innerRadius:r.innerRadius,outerRadius:r.outerRadius}),R.createElement(mZ,oP({},s,{ref:n})))});function iV(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function rV(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?iV(Object(n),!0).forEach(function(i){CBe(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):iV(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function CBe(t,e,n){return(e=RBe(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function RBe(t){var e=PBe(t,"string");return typeof e=="symbol"?e:e+""}function PBe(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var DBe=["item"],NBe=rV(rV({},vZ),{},{layout:"centric",startAngle:0,endAngle:360}),OBe=R.forwardRef((t,e)=>{var n=Vi(t,NBe);return R.createElement(TBe,{chartName:"PieChart",defaultTooltipEventType:"item",validateTooltipEventTypes:DBe,tooltipPayloadSearcher:wO,categoricalChartProps:n,ref:e})}),LBe=["axis"],kBe=R.forwardRef((t,e)=>R.createElement(gZ,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:LBe,tooltipPayloadSearcher:wO,categoricalChartProps:t,ref:e}));const aV=["#00ae42","#3b82f6","#f59e0b","#ef4444","#8b5cf6","#ec4899","#14b8a6","#f97316"];function IBe(t){const e=new Date;switch(t){case"7d":return new Date(e.getTime()-10080*60*1e3);case"30d":return new Date(e.getTime()-720*60*60*1e3);case"90d":return new Date(e.getTime()-2160*60*60*1e3);case"365d":return new Date(e.getTime()-365*24*60*60*1e3);case"all":return new Date(0)}}function UBe({archives:t,currency:e="$"}){const[n,i]=R.useState("30d"),r=R.useMemo(()=>{const p=IBe(n);return t.filter(m=>new Date(m.completed_at||m.created_at)>=p)},[t,n]),a=R.useMemo(()=>{const p=new Map;return r.forEach(m=>{const b=new Date(m.completed_at||m.created_at).toISOString().split("T")[0],x=p.get(b)||{date:b,filament:0,cost:0,prints:0};x.filament+=m.filament_used_grams||0,x.cost+=m.cost||0,x.prints+=1,p.set(b,x)}),Array.from(p.values()).sort((m,y)=>m.date.localeCompare(y.date)).map(m=>({...m,dateLabel:new Date(m.date).toLocaleDateString("en-US",{month:"short",day:"numeric"})}))},[r]),s=R.useMemo(()=>{if(n==="7d"||n==="30d")return a;const p=new Map;return r.forEach(m=>{const y=new Date(m.completed_at||m.created_at),b=new Date(y);b.setDate(y.getDate()-y.getDay());const x=b.toISOString().split("T")[0],v=p.get(x)||{week:x,filament:0,cost:0,prints:0};v.filament+=m.filament_used_grams||0,v.cost+=m.cost||0,v.prints+=1,p.set(x,v)}),Array.from(p.values()).sort((m,y)=>m.week.localeCompare(y.week)).map(m=>({date:m.week,dateLabel:`Week of ${new Date(m.week).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`,...m}))},[r,a,n]),o=R.useMemo(()=>{const p=new Map;return r.forEach(m=>{const b=(m.filament_type||"Unknown").split(", ");b.forEach(x=>{const v=(m.filament_used_grams||0)/b.length;p.set(x,(p.get(x)||0)+v)})}),Array.from(p.entries()).map(([m,y])=>({name:m,value:Math.round(y)})).sort((m,y)=>y.value-m.value)},[r]),l=R.useMemo(()=>{const p=new Date,m=[];for(let y=5;y>=0;y--){const b=new Date(p.getFullYear(),p.getMonth()-y,1),x=new Date(p.getFullYear(),p.getMonth()-y+1,0),v=b.toLocaleDateString("en-US",{month:"short",year:"2-digit"}),w=t.filter(M=>{const A=new Date(M.completed_at||M.created_at);return A>=b&&A<=x});m.push({month:v,filament:Math.round(w.reduce((M,A)=>M+(A.filament_used_grams||0),0)),cost:w.reduce((M,A)=>M+(A.cost||0),0),prints:w.length})}return m},[t]),c=n==="7d"||n==="30d"?a:s,d=r.reduce((p,m)=>p+(m.filament_used_grams||0),0),f=r.reduce((p,m)=>p+(m.cost||0),0);return S.jsxs("div",{className:"space-y-6",children:[S.jsxs("div",{className:"flex items-center justify-between",children:[S.jsx("h3",{className:"text-lg font-semibold text-white",children:"Filament Usage Trends"}),S.jsx("div",{className:"flex gap-1 bg-bambu-dark rounded-lg p-1",children:["7d","30d","90d","365d","all"].map(p=>S.jsx("button",{onClick:()=>i(p),className:`px-3 py-1 text-sm rounded-md transition-colors ${n===p?"bg-bambu-green text-white":"text-bambu-gray hover:text-white"}`,children:p==="all"?"All":p.replace("d","D")},p))})]}),S.jsxs("div",{className:"grid grid-cols-3 gap-4",children:[S.jsxs("div",{className:"bg-bambu-dark rounded-lg p-4",children:[S.jsx("p",{className:"text-sm text-bambu-gray",children:"Period Filament"}),S.jsxs("p",{className:"text-2xl font-bold text-white",children:[(d/1e3).toFixed(2),"kg"]}),S.jsxs("p",{className:"text-xs text-bambu-gray",children:[d.toFixed(0),"g total"]})]}),S.jsxs("div",{className:"bg-bambu-dark rounded-lg p-4",children:[S.jsx("p",{className:"text-sm text-bambu-gray",children:"Period Cost"}),S.jsxs("p",{className:"text-2xl font-bold text-white",children:[e,f.toFixed(2)]}),S.jsxs("p",{className:"text-xs text-bambu-gray",children:[r.length," prints"]})]}),S.jsxs("div",{className:"bg-bambu-dark rounded-lg p-4",children:[S.jsx("p",{className:"text-sm text-bambu-gray",children:"Avg per Print"}),S.jsxs("p",{className:"text-2xl font-bold text-white",children:[r.length>0?(d/r.length).toFixed(0):0,"g"]}),S.jsxs("p",{className:"text-xs text-bambu-gray",children:[e,r.length>0?(f/r.length).toFixed(2):"0.00"," avg"]})]})]}),c.length>0?S.jsxs("div",{className:"bg-bambu-dark rounded-lg p-4",children:[S.jsx("h4",{className:"text-sm font-medium text-bambu-gray mb-4",children:"Usage Over Time"}),S.jsx(CC,{width:"100%",height:250,children:S.jsxs(kBe,{data:c,children:[S.jsx("defs",{children:S.jsxs("linearGradient",{id:"colorFilament",x1:"0",y1:"0",x2:"0",y2:"1",children:[S.jsx("stop",{offset:"5%",stopColor:"#00ae42",stopOpacity:.3}),S.jsx("stop",{offset:"95%",stopColor:"#00ae42",stopOpacity:0})]})}),S.jsx(eP,{strokeDasharray:"3 3",stroke:"#3d3d3d"}),S.jsx(nP,{dataKey:"dateLabel",stroke:"#9ca3af",tick:{fontSize:12},interval:"preserveStartEnd"}),S.jsx(rP,{stroke:"#9ca3af",tick:{fontSize:12},tickFormatter:p=>`${p}g`}),S.jsx(WC,{contentStyle:{backgroundColor:"#2d2d2d",border:"1px solid #3d3d3d",borderRadius:"8px"},labelStyle:{color:"#fff"},formatter:p=>[`${p.toFixed(0)}g`,"Filament"]}),S.jsx(eZ,{type:"monotone",dataKey:"filament",stroke:"#00ae42",strokeWidth:2,fillOpacity:1,fill:"url(#colorFilament)"})]})})]}):S.jsx("div",{className:"bg-bambu-dark rounded-lg p-8 text-center text-bambu-gray",children:"No data for selected time range"}),S.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[S.jsxs("div",{className:"bg-bambu-dark rounded-lg p-4",children:[S.jsx("h4",{className:"text-sm font-medium text-bambu-gray mb-4",children:"By Filament Type"}),o.length>0?S.jsx(CC,{width:"100%",height:200,children:S.jsxs(OBe,{children:[S.jsx(kK,{data:o,cx:"50%",cy:"50%",innerRadius:50,outerRadius:80,paddingAngle:2,dataKey:"value",label:({name:p,percent:m})=>`${p} ${((m||0)*100).toFixed(0)}%`,labelLine:!1,children:o.map((p,m)=>S.jsx(Dv,{fill:aV[m%aV.length]},`cell-${m}`))}),S.jsx(WC,{contentStyle:{backgroundColor:"#2d2d2d",border:"1px solid #3d3d3d",borderRadius:"8px"},formatter:p=>[`${p}g`,"Usage"]})]})}):S.jsx("div",{className:"h-[200px] flex items-center justify-center text-bambu-gray",children:"No filament data"})]}),S.jsxs("div",{className:"bg-bambu-dark rounded-lg p-4",children:[S.jsx("h4",{className:"text-sm font-medium text-bambu-gray mb-4",children:"Monthly Comparison"}),S.jsx(CC,{width:"100%",height:200,children:S.jsxs(_Be,{data:l,children:[S.jsx(eP,{strokeDasharray:"3 3",stroke:"#3d3d3d"}),S.jsx(nP,{dataKey:"month",stroke:"#9ca3af",tick:{fontSize:12}}),S.jsx(rP,{stroke:"#9ca3af",tick:{fontSize:12},tickFormatter:p=>`${p}g`}),S.jsx(WC,{contentStyle:{backgroundColor:"#2d2d2d",border:"1px solid #3d3d3d",borderRadius:"8px"},formatter:(p,m)=>[m==="filament"?`${p}g`:m==="cost"?`${e}${p.toFixed(2)}`:p,m==="filament"?"Filament":m==="cost"?"Cost":"Prints"]}),S.jsx(Yq,{}),S.jsx(BK,{dataKey:"filament",name:"Filament (g)",fill:"#00ae42",radius:[4,4,0,0]})]})})]})]})]})}function FBe(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return R.useMemo(()=>i=>{e.forEach(r=>r(i))},e)}const gw=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function fm(t){const e=Object.prototype.toString.call(t);return e==="[object Window]"||e==="[object global]"}function HO(t){return"nodeType"in t}function za(t){var e,n;return t?fm(t)?t:HO(t)&&(e=(n=t.ownerDocument)==null?void 0:n.defaultView)!=null?e:window:window}function VO(t){const{Document:e}=za(t);return t instanceof e}function Ov(t){return fm(t)?!1:t instanceof za(t).HTMLElement}function xZ(t){return t instanceof za(t).SVGElement}function hm(t){return t?fm(t)?t.document:HO(t)?VO(t)?t:Ov(t)||xZ(t)?t.ownerDocument:document:document:document}const Wo=gw?R.useLayoutEffect:R.useEffect;function GO(t){const e=R.useRef(t);return Wo(()=>{e.current=t}),R.useCallback(function(){for(var n=arguments.length,i=new Array(n),r=0;r<n;r++)i[r]=arguments[r];return e.current==null?void 0:e.current(...i)},[])}function zBe(){const t=R.useRef(null),e=R.useCallback((i,r)=>{t.current=setInterval(i,r)},[]),n=R.useCallback(()=>{t.current!==null&&(clearInterval(t.current),t.current=null)},[]);return[e,n]}function W0(t,e){e===void 0&&(e=[t]);const n=R.useRef(t);return Wo(()=>{n.current!==t&&(n.current=t)},e),n}function Lv(t,e){const n=R.useRef();return R.useMemo(()=>{const i=t(n.current);return n.current=i,i},[...e])}function q1(t){const e=GO(t),n=R.useRef(null),i=R.useCallback(r=>{r!==n.current&&e?.(r,n.current),n.current=r},[]);return[n,i]}function lP(t){const e=R.useRef();return R.useEffect(()=>{e.current=t},[t]),e.current}let l2={};function kv(t,e){return R.useMemo(()=>{if(e)return e;const n=l2[t]==null?0:l2[t]+1;return l2[t]=n,t+"-"+n},[t,e])}function yZ(t){return function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return i.reduce((a,s)=>{const o=Object.entries(s);for(const[l,c]of o){const d=a[l];d!=null&&(a[l]=d+t*c)}return a},{...e})}}const mp=yZ(1),q0=yZ(-1);function BBe(t){return"clientX"in t&&"clientY"in t}function $O(t){if(!t)return!1;const{KeyboardEvent:e}=za(t.target);return e&&t instanceof e}function jBe(t){if(!t)return!1;const{TouchEvent:e}=za(t.target);return e&&t instanceof e}function cP(t){if(jBe(t)){if(t.touches&&t.touches.length){const{clientX:e,clientY:n}=t.touches[0];return{x:e,y:n}}else if(t.changedTouches&&t.changedTouches.length){const{clientX:e,clientY:n}=t.changedTouches[0];return{x:e,y:n}}}return BBe(t)?{x:t.clientX,y:t.clientY}:null}const X0=Object.freeze({Translate:{toString(t){if(!t)return;const{x:e,y:n}=t;return"translate3d("+(e?Math.round(e):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(t){if(!t)return;const{scaleX:e,scaleY:n}=t;return"scaleX("+e+") scaleY("+n+")"}},Transform:{toString(t){if(t)return[X0.Translate.toString(t),X0.Scale.toString(t)].join(" ")}},Transition:{toString(t){let{property:e,duration:n,easing:i}=t;return e+" "+n+"ms "+i}}}),sV="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function HBe(t){return t.matches(sV)?t:t.querySelector(sV)}const VBe={display:"none"};function GBe(t){let{id:e,value:n}=t;return gi.createElement("div",{id:e,style:VBe},n)}function $Be(t){let{id:e,announcement:n,ariaLiveType:i="assertive"}=t;const r={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return gi.createElement("div",{id:e,style:r,role:"status","aria-live":i,"aria-atomic":!0},n)}function WBe(){const[t,e]=R.useState("");return{announce:R.useCallback(i=>{i!=null&&e(i)},[]),announcement:t}}const bZ=R.createContext(null);function qBe(t){const e=R.useContext(bZ);R.useEffect(()=>{if(!e)throw new Error("useDndMonitor must be used within a children of <DndContext>");return e(t)},[t,e])}function XBe(){const[t]=R.useState(()=>new Set),e=R.useCallback(i=>(t.add(i),()=>t.delete(i)),[t]);return[R.useCallback(i=>{let{type:r,event:a}=i;t.forEach(s=>{var o;return(o=s[r])==null?void 0:o.call(s,a)})},[t]),e]}const YBe={draggable:`
- To pick up a draggable item, press the space bar.
- While dragging, use the arrow keys to move the item.
- Press space again to drop the item in its new position, or press escape to cancel.
- `},KBe={onDragStart(t){let{active:e}=t;return"Picked up draggable item "+e.id+"."},onDragOver(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was moved over droppable area "+n.id+".":"Draggable item "+e.id+" is no longer over a droppable area."},onDragEnd(t){let{active:e,over:n}=t;return n?"Draggable item "+e.id+" was dropped over droppable area "+n.id:"Draggable item "+e.id+" was dropped."},onDragCancel(t){let{active:e}=t;return"Dragging was cancelled. Draggable item "+e.id+" was dropped."}};function ZBe(t){let{announcements:e=KBe,container:n,hiddenTextDescribedById:i,screenReaderInstructions:r=YBe}=t;const{announce:a,announcement:s}=WBe(),o=kv("DndLiveRegion"),[l,c]=R.useState(!1);if(R.useEffect(()=>{c(!0)},[]),qBe(R.useMemo(()=>({onDragStart(f){let{active:p}=f;a(e.onDragStart({active:p}))},onDragMove(f){let{active:p,over:m}=f;e.onDragMove&&a(e.onDragMove({active:p,over:m}))},onDragOver(f){let{active:p,over:m}=f;a(e.onDragOver({active:p,over:m}))},onDragEnd(f){let{active:p,over:m}=f;a(e.onDragEnd({active:p,over:m}))},onDragCancel(f){let{active:p,over:m}=f;a(e.onDragCancel({active:p,over:m}))}}),[a,e])),!l)return null;const d=gi.createElement(gi.Fragment,null,gi.createElement(GBe,{id:i,value:r.draggable}),gi.createElement($Be,{id:o,announcement:s}));return n?Il.createPortal(d,n):d}var Yi;(function(t){t.DragStart="dragStart",t.DragMove="dragMove",t.DragEnd="dragEnd",t.DragCancel="dragCancel",t.DragOver="dragOver",t.RegisterDroppable="registerDroppable",t.SetDroppableDisabled="setDroppableDisabled",t.UnregisterDroppable="unregisterDroppable"})(Yi||(Yi={}));function X1(){}function oV(t,e){return R.useMemo(()=>({sensor:t,options:e??{}}),[t,e])}function JBe(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return R.useMemo(()=>[...e].filter(i=>i!=null),[...e])}const go=Object.freeze({x:0,y:0});function _Z(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}function SZ(t,e){let{data:{value:n}}=t,{data:{value:i}}=e;return n-i}function QBe(t,e){let{data:{value:n}}=t,{data:{value:i}}=e;return i-n}function lV(t){let{left:e,top:n,height:i,width:r}=t;return[{x:e,y:n},{x:e+r,y:n},{x:e,y:n+i},{x:e+r,y:n+i}]}function wZ(t,e){if(!t||t.length===0)return null;const[n]=t;return n[e]}function cV(t,e,n){return e===void 0&&(e=t.left),n===void 0&&(n=t.top),{x:e+t.width*.5,y:n+t.height*.5}}const e5e=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:i}=t;const r=cV(e,e.left,e.top),a=[];for(const s of i){const{id:o}=s,l=n.get(o);if(l){const c=_Z(cV(l),r);a.push({id:o,data:{droppableContainer:s,value:c}})}}return a.sort(SZ)},t5e=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:i}=t;const r=lV(e),a=[];for(const s of i){const{id:o}=s,l=n.get(o);if(l){const c=lV(l),d=r.reduce((p,m,y)=>p+_Z(c[y],m),0),f=Number((d/4).toFixed(4));a.push({id:o,data:{droppableContainer:s,value:f}})}}return a.sort(SZ)};function n5e(t,e){const n=Math.max(e.top,t.top),i=Math.max(e.left,t.left),r=Math.min(e.left+e.width,t.left+t.width),a=Math.min(e.top+e.height,t.top+t.height),s=r-i,o=a-n;if(i<r&&n<a){const l=e.width*e.height,c=t.width*t.height,d=s*o,f=d/(l+c-d);return Number(f.toFixed(4))}return 0}const i5e=t=>{let{collisionRect:e,droppableRects:n,droppableContainers:i}=t;const r=[];for(const a of i){const{id:s}=a,o=n.get(s);if(o){const l=n5e(o,e);l>0&&r.push({id:s,data:{droppableContainer:a,value:l}})}}return r.sort(QBe)};function r5e(t,e,n){return{...t,scaleX:e&&n?e.width/n.width:1,scaleY:e&&n?e.height/n.height:1}}function MZ(t,e){return t&&e?{x:t.left-e.left,y:t.top-e.top}:go}function a5e(t){return function(n){for(var i=arguments.length,r=new Array(i>1?i-1:0),a=1;a<i;a++)r[a-1]=arguments[a];return r.reduce((s,o)=>({...s,top:s.top+t*o.y,bottom:s.bottom+t*o.y,left:s.left+t*o.x,right:s.right+t*o.x}),{...n})}}const s5e=a5e(1);function o5e(t){if(t.startsWith("matrix3d(")){const e=t.slice(9,-1).split(/, /);return{x:+e[12],y:+e[13],scaleX:+e[0],scaleY:+e[5]}}else if(t.startsWith("matrix(")){const e=t.slice(7,-1).split(/, /);return{x:+e[4],y:+e[5],scaleX:+e[0],scaleY:+e[3]}}return null}function l5e(t,e,n){const i=o5e(e);if(!i)return t;const{scaleX:r,scaleY:a,x:s,y:o}=i,l=t.left-s-(1-r)*parseFloat(n),c=t.top-o-(1-a)*parseFloat(n.slice(n.indexOf(" ")+1)),d=r?t.width/r:t.width,f=a?t.height/a:t.height;return{width:d,height:f,top:c,right:l+d,bottom:c+f,left:l}}const c5e={ignoreTransform:!1};function pm(t,e){e===void 0&&(e=c5e);let n=t.getBoundingClientRect();if(e.ignoreTransform){const{transform:c,transformOrigin:d}=za(t).getComputedStyle(t);c&&(n=l5e(n,c,d))}const{top:i,left:r,width:a,height:s,bottom:o,right:l}=n;return{top:i,left:r,width:a,height:s,bottom:o,right:l}}function uV(t){return pm(t,{ignoreTransform:!0})}function u5e(t){const e=t.innerWidth,n=t.innerHeight;return{top:0,left:0,right:e,bottom:n,width:e,height:n}}function d5e(t,e){return e===void 0&&(e=za(t).getComputedStyle(t)),e.position==="fixed"}function f5e(t,e){e===void 0&&(e=za(t).getComputedStyle(t));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(r=>{const a=e[r];return typeof a=="string"?n.test(a):!1})}function vw(t,e){const n=[];function i(r){if(e!=null&&n.length>=e||!r)return n;if(VO(r)&&r.scrollingElement!=null&&!n.includes(r.scrollingElement))return n.push(r.scrollingElement),n;if(!Ov(r)||xZ(r)||n.includes(r))return n;const a=za(t).getComputedStyle(r);return r!==t&&f5e(r,a)&&n.push(r),d5e(r,a)?n:i(r.parentNode)}return t?i(t):n}function EZ(t){const[e]=vw(t,1);return e??null}function c2(t){return!gw||!t?null:fm(t)?t:HO(t)?VO(t)||t===hm(t).scrollingElement?window:Ov(t)?t:null:null}function AZ(t){return fm(t)?t.scrollX:t.scrollLeft}function TZ(t){return fm(t)?t.scrollY:t.scrollTop}function uP(t){return{x:AZ(t),y:TZ(t)}}var yr;(function(t){t[t.Forward=1]="Forward",t[t.Backward=-1]="Backward"})(yr||(yr={}));function CZ(t){return!gw||!t?!1:t===document.scrollingElement}function RZ(t){const e={x:0,y:0},n=CZ(t)?{height:window.innerHeight,width:window.innerWidth}:{height:t.clientHeight,width:t.clientWidth},i={x:t.scrollWidth-n.width,y:t.scrollHeight-n.height},r=t.scrollTop<=e.y,a=t.scrollLeft<=e.x,s=t.scrollTop>=i.y,o=t.scrollLeft>=i.x;return{isTop:r,isLeft:a,isBottom:s,isRight:o,maxScroll:i,minScroll:e}}const h5e={x:.2,y:.2};function p5e(t,e,n,i,r){let{top:a,left:s,right:o,bottom:l}=n;i===void 0&&(i=10),r===void 0&&(r=h5e);const{isTop:c,isBottom:d,isLeft:f,isRight:p}=RZ(t),m={x:0,y:0},y={x:0,y:0},b={height:e.height*r.y,width:e.width*r.x};return!c&&a<=e.top+b.height?(m.y=yr.Backward,y.y=i*Math.abs((e.top+b.height-a)/b.height)):!d&&l>=e.bottom-b.height&&(m.y=yr.Forward,y.y=i*Math.abs((e.bottom-b.height-l)/b.height)),!p&&o>=e.right-b.width?(m.x=yr.Forward,y.x=i*Math.abs((e.right-b.width-o)/b.width)):!f&&s<=e.left+b.width&&(m.x=yr.Backward,y.x=i*Math.abs((e.left+b.width-s)/b.width)),{direction:m,speed:y}}function m5e(t){if(t===document.scrollingElement){const{innerWidth:a,innerHeight:s}=window;return{top:0,left:0,right:a,bottom:s,width:a,height:s}}const{top:e,left:n,right:i,bottom:r}=t.getBoundingClientRect();return{top:e,left:n,right:i,bottom:r,width:t.clientWidth,height:t.clientHeight}}function PZ(t){return t.reduce((e,n)=>mp(e,uP(n)),go)}function g5e(t){return t.reduce((e,n)=>e+AZ(n),0)}function v5e(t){return t.reduce((e,n)=>e+TZ(n),0)}function x5e(t,e){if(e===void 0&&(e=pm),!t)return;const{top:n,left:i,bottom:r,right:a}=e(t);EZ(t)&&(r<=0||a<=0||n>=window.innerHeight||i>=window.innerWidth)&&t.scrollIntoView({block:"center",inline:"center"})}const y5e=[["x",["left","right"],g5e],["y",["top","bottom"],v5e]];class WO{constructor(e,n){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const i=vw(n),r=PZ(i);this.rect={...e},this.width=e.width,this.height=e.height;for(const[a,s,o]of y5e)for(const l of s)Object.defineProperty(this,l,{get:()=>{const c=o(i),d=r[a]-c;return this.rect[l]+d},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class i0{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var i;return(i=this.target)==null?void 0:i.removeEventListener(...n)})},this.target=e}add(e,n,i){var r;(r=this.target)==null||r.addEventListener(e,n,i),this.listeners.push([e,n,i])}}function b5e(t){const{EventTarget:e}=za(t);return t instanceof e?t:hm(t)}function u2(t,e){const n=Math.abs(t.x),i=Math.abs(t.y);return typeof e=="number"?Math.sqrt(n**2+i**2)>e:"x"in e&&"y"in e?n>e.x&&i>e.y:"x"in e?n>e.x:"y"in e?i>e.y:!1}var Cs;(function(t){t.Click="click",t.DragStart="dragstart",t.Keydown="keydown",t.ContextMenu="contextmenu",t.Resize="resize",t.SelectionChange="selectionchange",t.VisibilityChange="visibilitychange"})(Cs||(Cs={}));function dV(t){t.preventDefault()}function _5e(t){t.stopPropagation()}var hn;(function(t){t.Space="Space",t.Down="ArrowDown",t.Right="ArrowRight",t.Left="ArrowLeft",t.Up="ArrowUp",t.Esc="Escape",t.Enter="Enter",t.Tab="Tab"})(hn||(hn={}));const DZ={start:[hn.Space,hn.Enter],cancel:[hn.Esc],end:[hn.Space,hn.Enter,hn.Tab]},S5e=(t,e)=>{let{currentCoordinates:n}=e;switch(t.code){case hn.Right:return{...n,x:n.x+25};case hn.Left:return{...n,x:n.x-25};case hn.Down:return{...n,y:n.y+25};case hn.Up:return{...n,y:n.y-25}}};class qO{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:n}}=e;this.props=e,this.listeners=new i0(hm(n)),this.windowListeners=new i0(za(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Cs.Resize,this.handleCancel),this.windowListeners.add(Cs.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Cs.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:n}=this.props,i=e.node.current;i&&x5e(i),n(go)}handleKeyDown(e){if($O(e)){const{active:n,context:i,options:r}=this.props,{keyboardCodes:a=DZ,coordinateGetter:s=S5e,scrollBehavior:o="smooth"}=r,{code:l}=e;if(a.end.includes(l)){this.handleEnd(e);return}if(a.cancel.includes(l)){this.handleCancel(e);return}const{collisionRect:c}=i.current,d=c?{x:c.left,y:c.top}:go;this.referenceCoordinates||(this.referenceCoordinates=d);const f=s(e,{active:n,context:i.current,currentCoordinates:d});if(f){const p=q0(f,d),m={x:0,y:0},{scrollableAncestors:y}=i.current;for(const b of y){const x=e.code,{isTop:v,isRight:w,isLeft:M,isBottom:A,maxScroll:T,minScroll:D}=RZ(b),C=m5e(b),U={x:Math.min(x===hn.Right?C.right-C.width/2:C.right,Math.max(x===hn.Right?C.left:C.left+C.width/2,f.x)),y:Math.min(x===hn.Down?C.bottom-C.height/2:C.bottom,Math.max(x===hn.Down?C.top:C.top+C.height/2,f.y))},P=x===hn.Right&&!w||x===hn.Left&&!M,k=x===hn.Down&&!A||x===hn.Up&&!v;if(P&&U.x!==f.x){const B=b.scrollLeft+p.x,I=x===hn.Right&&B<=T.x||x===hn.Left&&B>=D.x;if(I&&!p.y){b.scrollTo({left:B,behavior:o});return}I?m.x=b.scrollLeft-B:m.x=x===hn.Right?b.scrollLeft-T.x:b.scrollLeft-D.x,m.x&&b.scrollBy({left:-m.x,behavior:o});break}else if(k&&U.y!==f.y){const B=b.scrollTop+p.y,I=x===hn.Down&&B<=T.y||x===hn.Up&&B>=D.y;if(I&&!p.x){b.scrollTo({top:B,behavior:o});return}I?m.y=b.scrollTop-B:m.y=x===hn.Down?b.scrollTop-T.y:b.scrollTop-D.y,m.y&&b.scrollBy({top:-m.y,behavior:o});break}}this.handleMove(e,mp(q0(f,this.referenceCoordinates),m))}}}handleMove(e,n){const{onMove:i}=this.props;e.preventDefault(),i(n)}handleEnd(e){const{onEnd:n}=this.props;e.preventDefault(),this.detach(),n()}handleCancel(e){const{onCancel:n}=this.props;e.preventDefault(),this.detach(),n()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}qO.activators=[{eventName:"onKeyDown",handler:(t,e,n)=>{let{keyboardCodes:i=DZ,onActivation:r}=e,{active:a}=n;const{code:s}=t.nativeEvent;if(i.start.includes(s)){const o=a.activatorNode.current;return o&&t.target!==o?!1:(t.preventDefault(),r?.({event:t.nativeEvent}),!0)}return!1}}];function fV(t){return!!(t&&"distance"in t)}function hV(t){return!!(t&&"delay"in t)}class XO{constructor(e,n,i){var r;i===void 0&&(i=b5e(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=n;const{event:a}=e,{target:s}=a;this.props=e,this.events=n,this.document=hm(s),this.documentListeners=new i0(this.document),this.listeners=new i0(i),this.windowListeners=new i0(za(s)),this.initialCoordinates=(r=cP(a))!=null?r:go,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:n,bypassActivationConstraint:i}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Cs.Resize,this.handleCancel),this.windowListeners.add(Cs.DragStart,dV),this.windowListeners.add(Cs.VisibilityChange,this.handleCancel),this.windowListeners.add(Cs.ContextMenu,dV),this.documentListeners.add(Cs.Keydown,this.handleKeydown),n){if(i!=null&&i({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(hV(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(fV(n)){this.handlePending(n);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,n){const{active:i,onPending:r}=this.props;r(i,e,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:e}=this,{onStart:n}=this.props;e&&(this.activated=!0,this.documentListeners.add(Cs.Click,_5e,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Cs.SelectionChange,this.removeTextSelection),n(e))}handleMove(e){var n;const{activated:i,initialCoordinates:r,props:a}=this,{onMove:s,options:{activationConstraint:o}}=a;if(!r)return;const l=(n=cP(e))!=null?n:go,c=q0(r,l);if(!i&&o){if(fV(o)){if(o.tolerance!=null&&u2(c,o.tolerance))return this.handleCancel();if(u2(c,o.distance))return this.handleStart()}if(hV(o)&&u2(c,o.tolerance))return this.handleCancel();this.handlePending(o,c);return}e.cancelable&&e.preventDefault(),s(l)}handleEnd(){const{onAbort:e,onEnd:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleCancel(){const{onAbort:e,onCancel:n}=this.props;this.detach(),this.activated||e(this.props.active),n()}handleKeydown(e){e.code===hn.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}}const w5e={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class YO extends XO{constructor(e){const{event:n}=e,i=hm(n.target);super(e,w5e,i)}}YO.activators=[{eventName:"onPointerDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:i}=e;return!n.isPrimary||n.button!==0?!1:(i?.({event:n}),!0)}}];const M5e={move:{name:"mousemove"},end:{name:"mouseup"}};var dP;(function(t){t[t.RightClick=2]="RightClick"})(dP||(dP={}));class E5e extends XO{constructor(e){super(e,M5e,hm(e.event.target))}}E5e.activators=[{eventName:"onMouseDown",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:i}=e;return n.button===dP.RightClick?!1:(i?.({event:n}),!0)}}];const d2={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class A5e extends XO{constructor(e){super(e,d2)}static setup(){return window.addEventListener(d2.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(d2.move.name,e)};function e(){}}}A5e.activators=[{eventName:"onTouchStart",handler:(t,e)=>{let{nativeEvent:n}=t,{onActivation:i}=e;const{touches:r}=n;return r.length>1?!1:(i?.({event:n}),!0)}}];var r0;(function(t){t[t.Pointer=0]="Pointer",t[t.DraggableRect=1]="DraggableRect"})(r0||(r0={}));var Y1;(function(t){t[t.TreeOrder=0]="TreeOrder",t[t.ReversedTreeOrder=1]="ReversedTreeOrder"})(Y1||(Y1={}));function T5e(t){let{acceleration:e,activator:n=r0.Pointer,canScroll:i,draggingRect:r,enabled:a,interval:s=5,order:o=Y1.TreeOrder,pointerCoordinates:l,scrollableAncestors:c,scrollableAncestorRects:d,delta:f,threshold:p}=t;const m=R5e({delta:f,disabled:!a}),[y,b]=zBe(),x=R.useRef({x:0,y:0}),v=R.useRef({x:0,y:0}),w=R.useMemo(()=>{switch(n){case r0.Pointer:return l?{top:l.y,bottom:l.y,left:l.x,right:l.x}:null;case r0.DraggableRect:return r}},[n,r,l]),M=R.useRef(null),A=R.useCallback(()=>{const D=M.current;if(!D)return;const C=x.current.x*v.current.x,U=x.current.y*v.current.y;D.scrollBy(C,U)},[]),T=R.useMemo(()=>o===Y1.TreeOrder?[...c].reverse():c,[o,c]);R.useEffect(()=>{if(!a||!c.length||!w){b();return}for(const D of T){if(i?.(D)===!1)continue;const C=c.indexOf(D),U=d[C];if(!U)continue;const{direction:P,speed:k}=p5e(D,U,w,e,p);for(const B of["x","y"])m[B][P[B]]||(k[B]=0,P[B]=0);if(k.x>0||k.y>0){b(),M.current=D,y(A,s),x.current=k,v.current=P;return}}x.current={x:0,y:0},v.current={x:0,y:0},b()},[e,A,i,b,a,s,JSON.stringify(w),JSON.stringify(m),y,c,T,d,JSON.stringify(p)])}const C5e={x:{[yr.Backward]:!1,[yr.Forward]:!1},y:{[yr.Backward]:!1,[yr.Forward]:!1}};function R5e(t){let{delta:e,disabled:n}=t;const i=lP(e);return Lv(r=>{if(n||!i||!r)return C5e;const a={x:Math.sign(e.x-i.x),y:Math.sign(e.y-i.y)};return{x:{[yr.Backward]:r.x[yr.Backward]||a.x===-1,[yr.Forward]:r.x[yr.Forward]||a.x===1},y:{[yr.Backward]:r.y[yr.Backward]||a.y===-1,[yr.Forward]:r.y[yr.Forward]||a.y===1}}},[n,e,i])}function P5e(t,e){const n=e!=null?t.get(e):void 0,i=n?n.node.current:null;return Lv(r=>{var a;return e==null?null:(a=i??r)!=null?a:null},[i,e])}function D5e(t,e){return R.useMemo(()=>t.reduce((n,i)=>{const{sensor:r}=i,a=r.activators.map(s=>({eventName:s.eventName,handler:e(s.handler,i)}));return[...n,...a]},[]),[t,e])}var Y0;(function(t){t[t.Always=0]="Always",t[t.BeforeDragging=1]="BeforeDragging",t[t.WhileDragging=2]="WhileDragging"})(Y0||(Y0={}));var fP;(function(t){t.Optimized="optimized"})(fP||(fP={}));const pV=new Map;function N5e(t,e){let{dragging:n,dependencies:i,config:r}=e;const[a,s]=R.useState(null),{frequency:o,measure:l,strategy:c}=r,d=R.useRef(t),f=x(),p=W0(f),m=R.useCallback(function(v){v===void 0&&(v=[]),!p.current&&s(w=>w===null?v:w.concat(v.filter(M=>!w.includes(M))))},[p]),y=R.useRef(null),b=Lv(v=>{if(f&&!n)return pV;if(!v||v===pV||d.current!==t||a!=null){const w=new Map;for(let M of t){if(!M)continue;if(a&&a.length>0&&!a.includes(M.id)&&M.rect.current){w.set(M.id,M.rect.current);continue}const A=M.node.current,T=A?new WO(l(A),A):null;M.rect.current=T,T&&w.set(M.id,T)}return w}return v},[t,a,n,f,l]);return R.useEffect(()=>{d.current=t},[t]),R.useEffect(()=>{f||m()},[n,f]),R.useEffect(()=>{a&&a.length>0&&s(null)},[JSON.stringify(a)]),R.useEffect(()=>{f||typeof o!="number"||y.current!==null||(y.current=setTimeout(()=>{m(),y.current=null},o))},[o,f,m,...i]),{droppableRects:b,measureDroppableContainers:m,measuringScheduled:a!=null};function x(){switch(c){case Y0.Always:return!1;case Y0.BeforeDragging:return n;default:return!n}}}function NZ(t,e){return Lv(n=>t?n||(typeof e=="function"?e(t):t):null,[e,t])}function O5e(t,e){return NZ(t,e)}function L5e(t){let{callback:e,disabled:n}=t;const i=GO(e),r=R.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:a}=window;return new a(i)},[i,n]);return R.useEffect(()=>()=>r?.disconnect(),[r]),r}function xw(t){let{callback:e,disabled:n}=t;const i=GO(e),r=R.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:a}=window;return new a(i)},[n]);return R.useEffect(()=>()=>r?.disconnect(),[r]),r}function k5e(t){return new WO(pm(t),t)}function mV(t,e,n){e===void 0&&(e=k5e);const[i,r]=R.useState(null);function a(){r(l=>{if(!t)return null;if(t.isConnected===!1){var c;return(c=l??n)!=null?c:null}const d=e(t);return JSON.stringify(l)===JSON.stringify(d)?l:d})}const s=L5e({callback(l){if(t)for(const c of l){const{type:d,target:f}=c;if(d==="childList"&&f instanceof HTMLElement&&f.contains(t)){a();break}}}}),o=xw({callback:a});return Wo(()=>{a(),t?(o?.observe(t),s?.observe(document.body,{childList:!0,subtree:!0})):(o?.disconnect(),s?.disconnect())},[t]),i}function I5e(t){const e=NZ(t);return MZ(t,e)}const gV=[];function U5e(t){const e=R.useRef(t),n=Lv(i=>t?i&&i!==gV&&t&&e.current&&t.parentNode===e.current.parentNode?i:vw(t):gV,[t]);return R.useEffect(()=>{e.current=t},[t]),n}function F5e(t){const[e,n]=R.useState(null),i=R.useRef(t),r=R.useCallback(a=>{const s=c2(a.target);s&&n(o=>o?(o.set(s,uP(s)),new Map(o)):null)},[]);return R.useEffect(()=>{const a=i.current;if(t!==a){s(a);const o=t.map(l=>{const c=c2(l);return c?(c.addEventListener("scroll",r,{passive:!0}),[c,uP(c)]):null}).filter(l=>l!=null);n(o.length?new Map(o):null),i.current=t}return()=>{s(t),s(a)};function s(o){o.forEach(l=>{const c=c2(l);c?.removeEventListener("scroll",r)})}},[r,t]),R.useMemo(()=>t.length?e?Array.from(e.values()).reduce((a,s)=>mp(a,s),go):PZ(t):go,[t,e])}function vV(t,e){e===void 0&&(e=[]);const n=R.useRef(null);return R.useEffect(()=>{n.current=null},e),R.useEffect(()=>{const i=t!==go;i&&!n.current&&(n.current=t),!i&&n.current&&(n.current=null)},[t]),n.current?q0(t,n.current):go}function z5e(t){R.useEffect(()=>{if(!gw)return;const e=t.map(n=>{let{sensor:i}=n;return i.setup==null?void 0:i.setup()});return()=>{for(const n of e)n?.()}},t.map(e=>{let{sensor:n}=e;return n}))}function B5e(t,e){return R.useMemo(()=>t.reduce((n,i)=>{let{eventName:r,handler:a}=i;return n[r]=s=>{a(s,e)},n},{}),[t,e])}function OZ(t){return R.useMemo(()=>t?u5e(t):null,[t])}const xV=[];function j5e(t,e){e===void 0&&(e=pm);const[n]=t,i=OZ(n?za(n):null),[r,a]=R.useState(xV);function s(){a(()=>t.length?t.map(l=>CZ(l)?i:new WO(e(l),l)):xV)}const o=xw({callback:s});return Wo(()=>{o?.disconnect(),s(),t.forEach(l=>o?.observe(l))},[t]),r}function H5e(t){if(!t)return null;if(t.children.length>1)return t;const e=t.children[0];return Ov(e)?e:t}function V5e(t){let{measure:e}=t;const[n,i]=R.useState(null),r=R.useCallback(c=>{for(const{target:d}of c)if(Ov(d)){i(f=>{const p=e(d);return f?{...f,width:p.width,height:p.height}:p});break}},[e]),a=xw({callback:r}),s=R.useCallback(c=>{const d=H5e(c);a?.disconnect(),d&&a?.observe(d),i(d?e(d):null)},[e,a]),[o,l]=q1(s);return R.useMemo(()=>({nodeRef:o,rect:n,setRef:l}),[n,o,l])}const G5e=[{sensor:YO,options:{}},{sensor:qO,options:{}}],$5e={current:{}},$b={draggable:{measure:uV},droppable:{measure:uV,strategy:Y0.WhileDragging,frequency:fP.Optimized},dragOverlay:{measure:pm}};class a0 extends Map{get(e){var n;return e!=null&&(n=super.get(e))!=null?n:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:n}=e;return!n})}getNodeFor(e){var n,i;return(n=(i=this.get(e))==null?void 0:i.node.current)!=null?n:void 0}}const W5e={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new a0,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:X1},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:$b,measureDroppableContainers:X1,windowRect:null,measuringScheduled:!1},q5e={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:X1,draggableNodes:new Map,over:null,measureDroppableContainers:X1},yw=R.createContext(q5e),LZ=R.createContext(W5e);function X5e(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new a0}}}function Y5e(t,e){switch(e.type){case Yi.DragStart:return{...t,draggable:{...t.draggable,initialCoordinates:e.initialCoordinates,active:e.active}};case Yi.DragMove:return t.draggable.active==null?t:{...t,draggable:{...t.draggable,translate:{x:e.coordinates.x-t.draggable.initialCoordinates.x,y:e.coordinates.y-t.draggable.initialCoordinates.y}}};case Yi.DragEnd:case Yi.DragCancel:return{...t,draggable:{...t.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Yi.RegisterDroppable:{const{element:n}=e,{id:i}=n,r=new a0(t.droppable.containers);return r.set(i,n),{...t,droppable:{...t.droppable,containers:r}}}case Yi.SetDroppableDisabled:{const{id:n,key:i,disabled:r}=e,a=t.droppable.containers.get(n);if(!a||i!==a.key)return t;const s=new a0(t.droppable.containers);return s.set(n,{...a,disabled:r}),{...t,droppable:{...t.droppable,containers:s}}}case Yi.UnregisterDroppable:{const{id:n,key:i}=e,r=t.droppable.containers.get(n);if(!r||i!==r.key)return t;const a=new a0(t.droppable.containers);return a.delete(n),{...t,droppable:{...t.droppable,containers:a}}}default:return t}}function K5e(t){let{disabled:e}=t;const{active:n,activatorEvent:i,draggableNodes:r}=R.useContext(yw),a=lP(i),s=lP(n?.id);return R.useEffect(()=>{if(!e&&!i&&a&&s!=null){if(!$O(a)||document.activeElement===a.target)return;const o=r.get(s);if(!o)return;const{activatorNode:l,node:c}=o;if(!l.current&&!c.current)return;requestAnimationFrame(()=>{for(const d of[l.current,c.current]){if(!d)continue;const f=HBe(d);if(f){f.focus();break}}})}},[i,e,r,s,a]),null}function Z5e(t,e){let{transform:n,...i}=e;return t!=null&&t.length?t.reduce((r,a)=>a({transform:r,...i}),n):n}function J5e(t){return R.useMemo(()=>({draggable:{...$b.draggable,...t?.draggable},droppable:{...$b.droppable,...t?.droppable},dragOverlay:{...$b.dragOverlay,...t?.dragOverlay}}),[t?.draggable,t?.droppable,t?.dragOverlay])}function Q5e(t){let{activeNode:e,measure:n,initialRect:i,config:r=!0}=t;const a=R.useRef(!1),{x:s,y:o}=typeof r=="boolean"?{x:r,y:r}:r;Wo(()=>{if(!s&&!o||!e){a.current=!1;return}if(a.current||!i)return;const c=e?.node.current;if(!c||c.isConnected===!1)return;const d=n(c),f=MZ(d,i);if(s||(f.x=0),o||(f.y=0),a.current=!0,Math.abs(f.x)>0||Math.abs(f.y)>0){const p=EZ(c);p&&p.scrollBy({top:f.y,left:f.x})}},[e,s,o,i,n])}const kZ=R.createContext({...go,scaleX:1,scaleY:1});var ou;(function(t){t[t.Uninitialized=0]="Uninitialized",t[t.Initializing=1]="Initializing",t[t.Initialized=2]="Initialized"})(ou||(ou={}));const eje=R.memo(function(e){var n,i,r,a;let{id:s,accessibility:o,autoScroll:l=!0,children:c,sensors:d=G5e,collisionDetection:f=i5e,measuring:p,modifiers:m,...y}=e;const b=R.useReducer(Y5e,void 0,X5e),[x,v]=b,[w,M]=XBe(),[A,T]=R.useState(ou.Uninitialized),D=A===ou.Initialized,{draggable:{active:C,nodes:U,translate:P},droppable:{containers:k}}=x,B=C!=null?U.get(C):null,I=R.useRef({initial:null,translated:null}),W=R.useMemo(()=>{var Le;return C!=null?{id:C,data:(Le=B?.data)!=null?Le:$5e,rect:I}:null},[C,B]),O=R.useRef(null),[$,q]=R.useState(null),[G,Y]=R.useState(null),Q=W0(y,Object.values(y)),se=kv("DndDescribedBy",s),H=R.useMemo(()=>k.getEnabled(),[k]),X=J5e(p),{droppableRects:re,measureDroppableContainers:ce,measuringScheduled:ye}=N5e(H,{dragging:D,dependencies:[P.x,P.y],config:X.droppable}),me=P5e(U,C),be=R.useMemo(()=>G?cP(G):null,[G]),Ne=de(),he=O5e(me,X.draggable.measure);Q5e({activeNode:C!=null?U.get(C):null,config:Ne.layoutShiftCompensation,initialRect:he,measure:X.draggable.measure});const Ae=mV(me,X.draggable.measure,he),Be=mV(me?me.parentElement:null),le=R.useRef({activatorEvent:null,active:null,activeNode:me,collisionRect:null,collisions:null,droppableRects:re,draggableNodes:U,draggingNode:null,draggingNodeRect:null,droppableContainers:k,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ct=k.getNodeFor((n=le.current.over)==null?void 0:n.id),z=V5e({measure:X.dragOverlay.measure}),V=(i=z.nodeRef.current)!=null?i:me,ne=D?(r=z.rect)!=null?r:Ae:null,J=!!(z.nodeRef.current&&z.rect),ee=I5e(J?null:Ae),ae=OZ(V?za(V):null),ie=U5e(D?ct??me:null),we=j5e(ie),ve=Z5e(m,{transform:{x:P.x-ee.x,y:P.y-ee.y,scaleX:1,scaleY:1},activatorEvent:G,active:W,activeNodeRect:Ae,containerNodeRect:Be,draggingNodeRect:ne,over:le.current.over,overlayNodeRect:z.rect,scrollableAncestors:ie,scrollableAncestorRects:we,windowRect:ae}),F=be?mp(be,P):null,L=F5e(ie),K=vV(L),pe=vV(L,[Ae]),xe=mp(ve,K),fe=ne?s5e(ne,ve):null,Ke=W&&fe?f({active:W,collisionRect:fe,droppableRects:re,droppableContainers:H,pointerCoordinates:F}):null,ke=wZ(Ke,"id"),[$e,rt]=R.useState(null),Ue=J?ve:mp(ve,pe),De=r5e(Ue,(a=$e?.rect)!=null?a:null,Ae),ut=R.useRef(null),et=R.useCallback((Le,Ee)=>{let{sensor:ge,options:je}=Ee;if(O.current==null)return;const at=U.get(O.current);if(!at)return;const vt=Le.nativeEvent,Ct=new ge({active:O.current,activeNode:at,event:vt,options:je,context:le,onAbort(Dt){if(!U.get(Dt))return;const{onDragAbort:zn}=Q.current,cr={id:Dt};zn?.(cr),w({type:"onDragAbort",event:cr})},onPending(Dt,wn,zn,cr){if(!U.get(Dt))return;const{onDragPending:ur}=Q.current,Er={id:Dt,constraint:wn,initialCoordinates:zn,offset:cr};ur?.(Er),w({type:"onDragPending",event:Er})},onStart(Dt){const wn=O.current;if(wn==null)return;const zn=U.get(wn);if(!zn)return;const{onDragStart:cr}=Q.current,Gi={activatorEvent:vt,active:{id:wn,data:zn.data,rect:I}};Il.unstable_batchedUpdates(()=>{cr?.(Gi),T(ou.Initializing),v({type:Yi.DragStart,initialCoordinates:Dt,active:wn}),w({type:"onDragStart",event:Gi}),q(ut.current),Y(vt)})},onMove(Dt){v({type:Yi.DragMove,coordinates:Dt})},onEnd:en(Yi.DragEnd),onCancel:en(Yi.DragCancel)});ut.current=Ct;function en(Dt){return async function(){const{active:zn,collisions:cr,over:Gi,scrollAdjustedTranslate:ur}=le.current;let Er=null;if(zn&&ur){const{cancelDrop:Hr}=Q.current;Er={activatorEvent:vt,active:zn,collisions:cr,delta:ur,over:Gi},Dt===Yi.DragEnd&&typeof Hr=="function"&&await Promise.resolve(Hr(Er))&&(Dt=Yi.DragCancel)}O.current=null,Il.unstable_batchedUpdates(()=>{v({type:Dt}),T(ou.Uninitialized),rt(null),q(null),Y(null),ut.current=null;const Hr=Dt===Yi.DragEnd?"onDragEnd":"onDragCancel";if(Er){const Ai=Q.current[Hr];Ai?.(Er),w({type:Hr,event:Er})}})}}},[U]),Qe=R.useCallback((Le,Ee)=>(ge,je)=>{const at=ge.nativeEvent,vt=U.get(je);if(O.current!==null||!vt||at.dndKit||at.defaultPrevented)return;const Ct={active:vt};Le(ge,Ee.options,Ct)===!0&&(at.dndKit={capturedBy:Ee.sensor},O.current=je,et(ge,Ee))},[U,et]),st=D5e(d,Qe);z5e(d),Wo(()=>{Ae&&A===ou.Initializing&&T(ou.Initialized)},[Ae,A]),R.useEffect(()=>{const{onDragMove:Le}=Q.current,{active:Ee,activatorEvent:ge,collisions:je,over:at}=le.current;if(!Ee||!ge)return;const vt={active:Ee,activatorEvent:ge,collisions:je,delta:{x:xe.x,y:xe.y},over:at};Il.unstable_batchedUpdates(()=>{Le?.(vt),w({type:"onDragMove",event:vt})})},[xe.x,xe.y]),R.useEffect(()=>{const{active:Le,activatorEvent:Ee,collisions:ge,droppableContainers:je,scrollAdjustedTranslate:at}=le.current;if(!Le||O.current==null||!Ee||!at)return;const{onDragOver:vt}=Q.current,Ct=je.get(ke),en=Ct&&Ct.rect.current?{id:Ct.id,rect:Ct.rect.current,data:Ct.data,disabled:Ct.disabled}:null,Dt={active:Le,activatorEvent:Ee,collisions:ge,delta:{x:at.x,y:at.y},over:en};Il.unstable_batchedUpdates(()=>{rt(en),vt?.(Dt),w({type:"onDragOver",event:Dt})})},[ke]),Wo(()=>{le.current={activatorEvent:G,active:W,activeNode:me,collisionRect:fe,collisions:Ke,droppableRects:re,draggableNodes:U,draggingNode:V,draggingNodeRect:ne,droppableContainers:k,over:$e,scrollableAncestors:ie,scrollAdjustedTranslate:xe},I.current={initial:ne,translated:fe}},[W,me,Ke,fe,U,V,ne,re,k,$e,ie,xe]),T5e({...Ne,delta:P,draggingRect:fe,pointerCoordinates:F,scrollableAncestors:ie,scrollableAncestorRects:we});const ue=R.useMemo(()=>({active:W,activeNode:me,activeNodeRect:Ae,activatorEvent:G,collisions:Ke,containerNodeRect:Be,dragOverlay:z,draggableNodes:U,droppableContainers:k,droppableRects:re,over:$e,measureDroppableContainers:ce,scrollableAncestors:ie,scrollableAncestorRects:we,measuringConfiguration:X,measuringScheduled:ye,windowRect:ae}),[W,me,Ae,G,Ke,Be,z,U,k,re,$e,ce,ie,we,X,ye,ae]),tt=R.useMemo(()=>({activatorEvent:G,activators:st,active:W,activeNodeRect:Ae,ariaDescribedById:{draggable:se},dispatch:v,draggableNodes:U,over:$e,measureDroppableContainers:ce}),[G,st,W,Ae,v,se,U,$e,ce]);return gi.createElement(bZ.Provider,{value:M},gi.createElement(yw.Provider,{value:tt},gi.createElement(LZ.Provider,{value:ue},gi.createElement(kZ.Provider,{value:De},c)),gi.createElement(K5e,{disabled:o?.restoreFocus===!1})),gi.createElement(ZBe,{...o,hiddenTextDescribedById:se}));function de(){const Le=$?.autoScrollEnabled===!1,Ee=typeof l=="object"?l.enabled===!1:l===!1,ge=D&&!Le&&!Ee;return typeof l=="object"?{...l,enabled:ge}:{enabled:ge}}}),tje=R.createContext(null),yV="button",nje="Draggable";function ije(t){let{id:e,data:n,disabled:i=!1,attributes:r}=t;const a=kv(nje),{activators:s,activatorEvent:o,active:l,activeNodeRect:c,ariaDescribedById:d,draggableNodes:f,over:p}=R.useContext(yw),{role:m=yV,roleDescription:y="draggable",tabIndex:b=0}=r??{},x=l?.id===e,v=R.useContext(x?kZ:tje),[w,M]=q1(),[A,T]=q1(),D=B5e(s,e),C=W0(n);Wo(()=>(f.set(e,{id:e,key:a,node:w,activatorNode:A,data:C}),()=>{const P=f.get(e);P&&P.key===a&&f.delete(e)}),[f,e]);const U=R.useMemo(()=>({role:m,tabIndex:b,"aria-disabled":i,"aria-pressed":x&&m===yV?!0:void 0,"aria-roledescription":y,"aria-describedby":d.draggable}),[i,m,b,x,y,d.draggable]);return{active:l,activatorEvent:o,activeNodeRect:c,attributes:U,isDragging:x,listeners:i?void 0:D,node:w,over:p,setNodeRef:M,setActivatorNodeRef:T,transform:v}}function rje(){return R.useContext(LZ)}const aje="Droppable",sje={timeout:25};function oje(t){let{data:e,disabled:n=!1,id:i,resizeObserverConfig:r}=t;const a=kv(aje),{active:s,dispatch:o,over:l,measureDroppableContainers:c}=R.useContext(yw),d=R.useRef({disabled:n}),f=R.useRef(!1),p=R.useRef(null),m=R.useRef(null),{disabled:y,updateMeasurementsFor:b,timeout:x}={...sje,...r},v=W0(b??i),w=R.useCallback(()=>{if(!f.current){f.current=!0;return}m.current!=null&&clearTimeout(m.current),m.current=setTimeout(()=>{c(Array.isArray(v.current)?v.current:[v.current]),m.current=null},x)},[x]),M=xw({callback:w,disabled:y||!s}),A=R.useCallback((U,P)=>{M&&(P&&(M.unobserve(P),f.current=!1),U&&M.observe(U))},[M]),[T,D]=q1(A),C=W0(e);return R.useEffect(()=>{!M||!T.current||(M.disconnect(),f.current=!1,M.observe(T.current))},[T,M]),R.useEffect(()=>(o({type:Yi.RegisterDroppable,element:{id:i,key:a,disabled:n,node:T,rect:p,data:C}}),()=>o({type:Yi.UnregisterDroppable,key:a,id:i})),[i]),R.useEffect(()=>{n!==d.current.disabled&&(o({type:Yi.SetDroppableDisabled,id:i,key:a,disabled:n}),d.current.disabled=n)},[i,a,n,o]),{active:s,rect:p,isOver:l?.id===i,node:T,over:l,setNodeRef:D}}function KO(t,e,n){const i=t.slice();return i.splice(n<0?i.length+n:n,0,i.splice(e,1)[0]),i}function lje(t,e){return t.reduce((n,i,r)=>{const a=e.get(i);return a&&(n[r]=a),n},Array(t.length))}function Sb(t){return t!==null&&t>=0}function cje(t,e){if(t===e)return!0;if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0}function uje(t){return typeof t=="boolean"?{draggable:t,droppable:t}:t}const ZO=t=>{let{rects:e,activeIndex:n,overIndex:i,index:r}=t;const a=KO(e,i,n),s=e[r],o=a[r];return!o||!s?null:{x:o.left-s.left,y:o.top-s.top,scaleX:o.width/s.width,scaleY:o.height/s.height}},IZ="Sortable",UZ=gi.createContext({activeIndex:-1,containerId:IZ,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:ZO,disabled:{draggable:!1,droppable:!1}});function dje(t){let{children:e,id:n,items:i,strategy:r=ZO,disabled:a=!1}=t;const{active:s,dragOverlay:o,droppableRects:l,over:c,measureDroppableContainers:d}=rje(),f=kv(IZ,n),p=o.rect!==null,m=R.useMemo(()=>i.map(D=>typeof D=="object"&&"id"in D?D.id:D),[i]),y=s!=null,b=s?m.indexOf(s.id):-1,x=c?m.indexOf(c.id):-1,v=R.useRef(m),w=!cje(m,v.current),M=x!==-1&&b===-1||w,A=uje(a);Wo(()=>{w&&y&&d(m)},[w,m,y,d]),R.useEffect(()=>{v.current=m},[m]);const T=R.useMemo(()=>({activeIndex:b,containerId:f,disabled:A,disableTransforms:M,items:m,overIndex:x,useDragOverlay:p,sortedRects:lje(m,l),strategy:r}),[b,f,A.draggable,A.droppable,M,m,x,l,p,r]);return gi.createElement(UZ.Provider,{value:T},e)}const fje=t=>{let{id:e,items:n,activeIndex:i,overIndex:r}=t;return KO(n,i,r).indexOf(e)},hje=t=>{let{containerId:e,isSorting:n,wasDragging:i,index:r,items:a,newIndex:s,previousItems:o,previousContainerId:l,transition:c}=t;return!c||!i||o!==a&&r===s?!1:n?!0:s!==r&&e===l},pje={duration:200,easing:"ease"},FZ="transform",mje=X0.Transition.toString({property:FZ,duration:0,easing:"linear"}),gje={roleDescription:"sortable"};function vje(t){let{disabled:e,index:n,node:i,rect:r}=t;const[a,s]=R.useState(null),o=R.useRef(n);return Wo(()=>{if(!e&&n!==o.current&&i.current){const l=r.current;if(l){const c=pm(i.current,{ignoreTransform:!0}),d={x:l.left-c.left,y:l.top-c.top,scaleX:l.width/c.width,scaleY:l.height/c.height};(d.x||d.y)&&s(d)}}n!==o.current&&(o.current=n)},[e,n,i,r]),R.useEffect(()=>{a&&s(null)},[a]),a}function xje(t){let{animateLayoutChanges:e=hje,attributes:n,disabled:i,data:r,getNewIndex:a=fje,id:s,strategy:o,resizeObserverConfig:l,transition:c=pje}=t;const{items:d,containerId:f,activeIndex:p,disabled:m,disableTransforms:y,sortedRects:b,overIndex:x,useDragOverlay:v,strategy:w}=R.useContext(UZ),M=yje(i,m),A=d.indexOf(s),T=R.useMemo(()=>({sortable:{containerId:f,index:A,items:d},...r}),[f,r,A,d]),D=R.useMemo(()=>d.slice(d.indexOf(s)),[d,s]),{rect:C,node:U,isOver:P,setNodeRef:k}=oje({id:s,data:T,disabled:M.droppable,resizeObserverConfig:{updateMeasurementsFor:D,...l}}),{active:B,activatorEvent:I,activeNodeRect:W,attributes:O,setNodeRef:$,listeners:q,isDragging:G,over:Y,setActivatorNodeRef:Q,transform:se}=ije({id:s,data:T,attributes:{...gje,...n},disabled:M.draggable}),H=FBe(k,$),X=!!B,re=X&&!y&&Sb(p)&&Sb(x),ce=!v&&G,ye=ce&&re?se:null,be=re?ye??(o??w)({rects:b,activeNodeRect:W,activeIndex:p,overIndex:x,index:A}):null,Ne=Sb(p)&&Sb(x)?a({id:s,items:d,activeIndex:p,overIndex:x}):A,he=B?.id,Ae=R.useRef({activeId:he,items:d,newIndex:Ne,containerId:f}),Be=d!==Ae.current.items,le=e({active:B,containerId:f,isDragging:G,isSorting:X,id:s,index:A,items:d,newIndex:Ae.current.newIndex,previousItems:Ae.current.items,previousContainerId:Ae.current.containerId,transition:c,wasDragging:Ae.current.activeId!=null}),ct=vje({disabled:!le,index:A,node:U,rect:C});return R.useEffect(()=>{X&&Ae.current.newIndex!==Ne&&(Ae.current.newIndex=Ne),f!==Ae.current.containerId&&(Ae.current.containerId=f),d!==Ae.current.items&&(Ae.current.items=d)},[X,Ne,f,d]),R.useEffect(()=>{if(he===Ae.current.activeId)return;if(he!=null&&Ae.current.activeId==null){Ae.current.activeId=he;return}const V=setTimeout(()=>{Ae.current.activeId=he},50);return()=>clearTimeout(V)},[he]),{active:B,activeIndex:p,attributes:O,data:T,rect:C,index:A,newIndex:Ne,items:d,isOver:P,isSorting:X,isDragging:G,listeners:q,node:U,overIndex:x,over:Y,setNodeRef:H,setActivatorNodeRef:Q,setDroppableNodeRef:k,setDraggableNodeRef:$,transform:ct??be,transition:z()};function z(){if(ct||Be&&Ae.current.newIndex===A)return mje;if(!(ce&&!$O(I)||!c)&&(X||le))return X0.Transition.toString({...c,property:FZ})}}function yje(t,e){var n,i;return typeof t=="boolean"?{draggable:t,droppable:!1}:{draggable:(n=t?.draggable)!=null?n:e.draggable,droppable:(i=t?.droppable)!=null?i:e.droppable}}function K1(t){if(!t)return!1;const e=t.data.current;return!!(e&&"sortable"in e&&typeof e.sortable=="object"&&"containerId"in e.sortable&&"items"in e.sortable&&"index"in e.sortable)}const bje=[hn.Down,hn.Right,hn.Up,hn.Left],_je=(t,e)=>{let{context:{active:n,collisionRect:i,droppableRects:r,droppableContainers:a,over:s,scrollableAncestors:o}}=e;if(bje.includes(t.code)){if(t.preventDefault(),!n||!i)return;const l=[];a.getEnabled().forEach(f=>{if(!f||f!=null&&f.disabled)return;const p=r.get(f.id);if(p)switch(t.code){case hn.Down:i.top<p.top&&l.push(f);break;case hn.Up:i.top>p.top&&l.push(f);break;case hn.Left:i.left>p.left&&l.push(f);break;case hn.Right:i.left<p.left&&l.push(f);break}});const c=t5e({collisionRect:i,droppableRects:r,droppableContainers:l});let d=wZ(c,"id");if(d===s?.id&&c.length>1&&(d=c[1].id),d!=null){const f=a.get(n.id),p=a.get(d),m=p?r.get(p.id):null,y=p?.node.current;if(y&&m&&f&&p){const x=vw(y).some((D,C)=>o[C]!==D),v=zZ(f,p),w=Sje(f,p),M=x||!v?{x:0,y:0}:{x:w?i.width-m.width:0,y:w?i.height-m.height:0},A={x:m.left,y:m.top};return M.x&&M.y?A:q0(A,M)}}}};function zZ(t,e){return!K1(t)||!K1(e)?!1:t.data.current.sortable.containerId===e.data.current.sortable.containerId}function Sje(t,e){return!K1(t)||!K1(e)||!zZ(t,e)?!1:t.data.current.sortable.index<e.data.current.sortable.index}function wje({id:t,title:e,children:n,isHidden:i,size:r,onToggleVisibility:a,onToggleSize:s}){const{attributes:o,listeners:l,setNodeRef:c,transform:d,transition:f,isDragging:p}=xje({id:t}),m={transform:X0.Transform.toString(d),transition:f,opacity:p?.5:1};return i?null:S.jsxs("div",{ref:c,style:{...m,gridColumn:`span ${r}`},className:`bg-bambu-dark-secondary rounded-xl border border-bambu-dark-tertiary overflow-hidden ${p?"ring-2 ring-bambu-green shadow-lg":""}`,children:[S.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-bambu-dark-tertiary bg-bambu-dark/30",children:[S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx("button",{...o,...l,className:"cursor-grab active:cursor-grabbing p-1 hover:bg-bambu-dark-tertiary rounded transition-colors",title:"Drag to reorder",children:S.jsx(mie,{className:"w-4 h-4 text-bambu-gray"})}),S.jsx("h3",{className:"text-sm font-medium text-white",children:e})]}),S.jsxs("div",{className:"flex items-center gap-1",children:[S.jsx("button",{onClick:s,className:"p-1 hover:bg-bambu-dark-tertiary rounded transition-colors",title:`Size: ${r===1?"1/4":r===2?"1/2":"Full"} - Click to cycle`,children:r===4?S.jsx(Bie,{className:"w-4 h-4 text-bambu-gray hover:text-white"}):S.jsx(Fie,{className:"w-4 h-4 text-bambu-gray hover:text-white"})}),S.jsx("button",{onClick:a,className:"p-1 hover:bg-bambu-dark-tertiary rounded transition-colors",title:"Hide widget",children:S.jsx(Kne,{className:"w-4 h-4 text-bambu-gray hover:text-white"})})]})]}),S.jsx("div",{className:"p-4",children:n})]})}function Mje({widgets:t,storageKey:e,columns:n=4}){const i=()=>{const x={};return t.forEach(v=>{x[v.id]=v.defaultSize||4}),x},[r,a]=R.useState(()=>{const x=localStorage.getItem(e);if(x)try{const v=JSON.parse(x);return v.sizes||(v.sizes=i()),v}catch{}return{order:t.map(v=>v.id),hidden:t.filter(v=>v.defaultVisible===!1).map(v=>v.id),sizes:i()}}),[s,o]=R.useState(!1);R.useEffect(()=>{localStorage.setItem(e,JSON.stringify(r))},[r,e]),R.useEffect(()=>{const v=t.map(w=>w.id).filter(w=>!r.order.includes(w));v.length>0&&a(w=>({...w,order:[...w.order,...v]}))},[t,r.order]);const l=JBe(oV(YO,{activationConstraint:{distance:8}}),oV(qO,{coordinateGetter:_je})),c=x=>{const{active:v,over:w}=x;w&&v.id!==w.id&&a(M=>{const A=M.order.indexOf(v.id),T=M.order.indexOf(w.id);return{...M,order:KO(M.order,A,T)}})},d=x=>{a(v=>({...v,hidden:v.hidden.includes(x)?v.hidden.filter(w=>w!==x):[...v.hidden,x]}))},f=x=>{a(v=>{const w=v.sizes[x]||4,M=w===1?2:w===2?4:1;return{...v,sizes:{...v.sizes,[x]:M}}})},p=()=>{const x={order:t.map(v=>v.id),hidden:t.filter(v=>v.defaultVisible===!1).map(v=>v.id),sizes:i()};a(x)},m=r.order.map(x=>t.find(v=>v.id===x)).filter(Boolean),y=m.filter(x=>!r.hidden.includes(x.id)),b=m.filter(x=>r.hidden.includes(x.id));return S.jsxs("div",{className:"space-y-4",children:[S.jsxs("div",{className:"flex items-center justify-end gap-2",children:[b.length>0&&S.jsxs(At,{variant:"secondary",size:"sm",onClick:()=>o(!s),children:[S.jsx(sF,{className:"w-4 h-4"}),b.length," Hidden"]}),S.jsxs(At,{variant:"secondary",size:"sm",onClick:p,children:[S.jsx(AP,{className:"w-4 h-4"}),"Reset Layout"]})]}),s&&b.length>0&&S.jsxs("div",{className:"p-4 bg-bambu-dark rounded-xl border border-bambu-dark-tertiary",children:[S.jsx("p",{className:"text-sm text-bambu-gray mb-3",children:"Hidden widgets (click to show):"}),S.jsx("div",{className:"flex flex-wrap gap-2",children:b.map(x=>S.jsxs("button",{onClick:()=>d(x.id),className:"px-3 py-1.5 bg-bambu-dark-tertiary hover:bg-bambu-green/20 rounded-lg text-sm text-white transition-colors flex items-center gap-2",children:[S.jsx(sF,{className:"w-3 h-3"}),x.title]},x.id))})]}),S.jsx(eje,{sensors:l,collisionDetection:e5e,onDragEnd:c,children:S.jsx(dje,{items:y.map(x=>x.id),strategy:ZO,children:S.jsx("div",{className:"grid gap-6",style:{gridTemplateColumns:`repeat(${n}, minmax(0, 1fr))`},children:y.map(x=>S.jsx(wje,{id:x.id,title:x.title,isHidden:r.hidden.includes(x.id),size:r.sizes[x.id]||2,onToggleVisibility:()=>d(x.id),onToggleSize:()=>f(x.id),children:x.component},x.id))})})}),y.length===0&&S.jsxs("div",{className:"text-center py-12 text-bambu-gray",children:[S.jsx("p",{children:"All widgets are hidden."}),S.jsx(At,{className:"mt-4",onClick:p,children:"Reset Layout"})]})]})}function Eje({stats:t,currency:e}){return S.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[S.jsxs("div",{className:"flex items-start gap-3",children:[S.jsx("div",{className:"p-2 rounded-lg bg-bambu-dark text-bambu-green",children:S.jsx(Yb,{className:"w-5 h-5"})}),S.jsxs("div",{children:[S.jsx("p",{className:"text-xs text-bambu-gray",children:"Total Prints"}),S.jsx("p",{className:"text-xl font-bold text-white",children:t?.total_prints||0})]})]}),S.jsxs("div",{className:"flex items-start gap-3",children:[S.jsx("div",{className:"p-2 rounded-lg bg-bambu-dark text-blue-400",children:S.jsx(Q1,{className:"w-5 h-5"})}),S.jsxs("div",{children:[S.jsx("p",{className:"text-xs text-bambu-gray",children:"Print Time"}),S.jsxs("p",{className:"text-xl font-bold text-white",children:[t?.total_print_time_hours.toFixed(1)||0,"h"]})]})]}),S.jsxs("div",{className:"flex items-start gap-3",children:[S.jsx("div",{className:"p-2 rounded-lg bg-bambu-dark text-orange-400",children:S.jsx(Yb,{className:"w-5 h-5"})}),S.jsxs("div",{children:[S.jsx("p",{className:"text-xs text-bambu-gray",children:"Filament Used"}),S.jsxs("p",{className:"text-xl font-bold text-white",children:[((t?.total_filament_grams||0)/1e3).toFixed(2),"kg"]})]})]}),S.jsxs("div",{className:"flex items-start gap-3",children:[S.jsx("div",{className:"p-2 rounded-lg bg-bambu-dark text-green-400",children:S.jsx(Hne,{className:"w-5 h-5"})}),S.jsxs("div",{children:[S.jsx("p",{className:"text-xs text-bambu-gray",children:"Total Cost"}),S.jsxs("p",{className:"text-xl font-bold text-white",children:[e," ",t?.total_cost.toFixed(2)||"0.00"]})]})]})]})}function Aje({stats:t}){const e=t?.total_prints?Math.round(t.successful_prints/t.total_prints*100):0;return S.jsxs("div",{className:"flex items-center gap-6",children:[S.jsxs("div",{className:"relative w-28 h-28",children:[S.jsxs("svg",{className:"w-full h-full -rotate-90",children:[S.jsx("circle",{cx:"56",cy:"56",r:"48",fill:"none",stroke:"#3d3d3d",strokeWidth:"10"}),S.jsx("circle",{cx:"56",cy:"56",r:"48",fill:"none",stroke:"#00ae42",strokeWidth:"10",strokeLinecap:"round",strokeDasharray:`${e*3.02} 302`})]}),S.jsx("div",{className:"absolute inset-0 flex items-center justify-center",children:S.jsxs("span",{className:"text-xl font-bold text-white",children:[e,"%"]})})]}),S.jsxs("div",{className:"space-y-2",children:[S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(wP,{className:"w-4 h-4 text-bambu-green"}),S.jsx("span",{className:"text-sm text-bambu-gray",children:"Successful:"}),S.jsx("span",{className:"text-sm text-white font-medium",children:t?.successful_prints||0})]}),S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(JV,{className:"w-4 h-4 text-red-400"}),S.jsx("span",{className:"text-sm text-bambu-gray",children:"Failed:"}),S.jsx("span",{className:"text-sm text-white font-medium",children:t?.failed_prints||0})]})]})]})}function Tje({stats:t}){if(!t?.prints_by_filament_type||Object.keys(t.prints_by_filament_type).length===0)return S.jsx("p",{className:"text-bambu-gray text-center py-4",children:"No filament data available"});const e=Object.entries(t.prints_by_filament_type).sort(([,n],[,i])=>i-n);return S.jsx("div",{className:"space-y-3",children:e.map(([n,i])=>{const r=Math.round(i/(t.total_prints||1)*100);return S.jsxs("div",{children:[S.jsxs("div",{className:"flex justify-between text-sm mb-1",children:[S.jsx("span",{className:"text-white",children:n}),S.jsxs("span",{className:"text-bambu-gray",children:[i," prints"]})]}),S.jsx("div",{className:"h-2 bg-bambu-dark rounded-full",children:S.jsx("div",{className:"h-full bg-bambu-green rounded-full transition-all",style:{width:`${r}%`}})})]},n)})})}function Cje({printDates:t}){return S.jsx(PMe,{printDates:t,months:4})}function Rje({stats:t,printerMap:e}){return!t?.prints_by_printer||Object.keys(t.prints_by_printer).length===0?S.jsx("p",{className:"text-bambu-gray text-center py-4",children:"No printer data available"}):S.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:Object.entries(t.prints_by_printer).map(([n,i])=>S.jsxs("div",{className:"flex items-center gap-3 p-3 bg-bambu-dark rounded-lg",children:[S.jsx("div",{className:"p-2 bg-bambu-dark-tertiary rounded-lg",children:S.jsx(nf,{className:"w-4 h-4 text-bambu-green"})}),S.jsxs("div",{children:[S.jsx("p",{className:"text-white font-medium text-sm",children:e.get(n)||`Printer ${n}`}),S.jsxs("p",{className:"text-xs text-bambu-gray",children:[i," prints"]})]})]},n))})}function Pje({archives:t,currency:e}){return!t||t.length===0?S.jsx("p",{className:"text-bambu-gray text-center py-4",children:"No print data available"}):S.jsx(UBe,{archives:t,currency:e})}function Dje(){const{data:t,isLoading:e}=Zi({queryKey:["archiveStats"],queryFn:Tt.getArchiveStats}),{data:n}=Zi({queryKey:["printers"],queryFn:Tt.getPrinters}),{data:i}=Zi({queryKey:["archives"],queryFn:()=>Tt.getArchives(void 0,1e3,0)}),{data:r}=Zi({queryKey:["settings"],queryFn:Tt.getSettings}),a=r?.currency||"$",s=new Map(n?.map(c=>[String(c.id),c.name])||[]),o=i?.map(c=>c.created_at)||[];if(e)return S.jsx("div",{className:"p-8",children:S.jsx("div",{className:"text-center py-12 text-bambu-gray",children:"Loading statistics..."})});const l=[{id:"quick-stats",title:"Quick Stats",component:S.jsx(Eje,{stats:t,currency:a}),defaultSize:2},{id:"success-rate",title:"Success Rate",component:S.jsx(Aje,{stats:t}),defaultSize:1},{id:"filament-types",title:"Filament Types",component:S.jsx(Tje,{stats:t}),defaultSize:1},{id:"print-activity",title:"Print Activity",component:S.jsx(Cje,{printDates:o}),defaultSize:2},{id:"prints-by-printer",title:"Prints by Printer",component:S.jsx(Rje,{stats:t,printerMap:s}),defaultSize:2},{id:"filament-trends",title:"Filament Usage Trends",component:S.jsx(Pje,{archives:i||[],currency:a}),defaultSize:4}];return S.jsxs("div",{className:"p-8",children:[S.jsxs("div",{className:"mb-6",children:[S.jsx("h1",{className:"text-2xl font-bold text-white",children:"Dashboard"}),S.jsx("p",{className:"text-bambu-gray",children:"Drag widgets to rearrange. Click the eye icon to hide."})]}),S.jsx(Mje,{widgets:l,storageKey:"bambusy-dashboard-layout"})]})}function Nje(){const t=ka(),[e,n]=R.useState(null),[i,r]=R.useState(!1),[a,s]=R.useState(!1),[o,l]=R.useState(!1),{data:c,isLoading:d}=Zi({queryKey:["settings"],queryFn:Tt.getSettings});R.useEffect(()=>{c&&!e&&n(c)},[c,e]),R.useEffect(()=>{if(c&&e){const x=c.auto_archive!==e.auto_archive||c.save_thumbnails!==e.save_thumbnails||c.default_filament_cost!==e.default_filament_cost||c.currency!==e.currency;r(x)}},[c,e]);const f=Ji({mutationFn:Tt.updateSettings,onSuccess:x=>{t.setQueryData(["settings"],x),n(x),r(!1),s(!0),setTimeout(()=>s(!1),2e3)}}),p=Ji({mutationFn:Tt.resetSettings,onSuccess:x=>{t.setQueryData(["settings"],x),n(x),r(!1)}}),m=()=>{e&&f.mutate(e)},y=()=>{l(!0)},b=(x,v)=>{e&&n({...e,[x]:v})};return d||!e?S.jsx("div",{className:"p-8 flex justify-center",children:S.jsx(jr,{className:"w-8 h-8 text-bambu-green animate-spin"})}):S.jsxs("div",{className:"p-8",children:[S.jsxs("div",{className:"mb-8 flex items-center justify-between",children:[S.jsxs("div",{children:[S.jsx("h1",{className:"text-2xl font-bold text-white",children:"Settings"}),S.jsx("p",{className:"text-bambu-gray",children:"Configure Bambusy"})]}),S.jsxs("div",{className:"flex gap-3",children:[S.jsxs(At,{variant:"secondary",onClick:y,disabled:p.isPending,children:[S.jsx(AP,{className:"w-4 h-4"}),"Reset"]}),S.jsxs(At,{onClick:m,disabled:!i||f.isPending,children:[f.isPending?S.jsx(jr,{className:"w-4 h-4 animate-spin"}):a?S.jsx(Tne,{className:"w-4 h-4"}):S.jsx(TP,{className:"w-4 h-4"}),a?"Saved!":"Save"]})]})]}),f.isError&&S.jsxs("div",{className:"mb-6 p-3 bg-red-500/20 border border-red-500/50 rounded-lg text-sm text-red-400",children:["Failed to save settings: ",f.error.message]}),S.jsxs("div",{className:"space-y-6 max-w-2xl",children:[S.jsxs(ki,{children:[S.jsx(Eb,{children:S.jsx("h2",{className:"text-lg font-semibold text-white",children:"Archive Settings"})}),S.jsxs(Qi,{className:"space-y-4",children:[S.jsxs("div",{className:"flex items-center justify-between",children:[S.jsxs("div",{children:[S.jsx("p",{className:"text-white",children:"Auto-archive prints"}),S.jsx("p",{className:"text-sm text-bambu-gray",children:"Automatically save 3MF files when prints complete"})]}),S.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[S.jsx("input",{type:"checkbox",checked:e.auto_archive,onChange:x=>b("auto_archive",x.target.checked),className:"sr-only peer"}),S.jsx("div",{className:"w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green"})]})]}),S.jsxs("div",{className:"flex items-center justify-between",children:[S.jsxs("div",{children:[S.jsx("p",{className:"text-white",children:"Save thumbnails"}),S.jsx("p",{className:"text-sm text-bambu-gray",children:"Extract and save preview images from 3MF files"})]}),S.jsxs("label",{className:"relative inline-flex items-center cursor-pointer",children:[S.jsx("input",{type:"checkbox",checked:e.save_thumbnails,onChange:x=>b("save_thumbnails",x.target.checked),className:"sr-only peer"}),S.jsx("div",{className:"w-11 h-6 bg-bambu-dark-tertiary peer-focus:outline-none rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-bambu-green"})]})]})]})]}),S.jsxs(ki,{children:[S.jsx(Eb,{children:S.jsx("h2",{className:"text-lg font-semibold text-white",children:"Cost Tracking"})}),S.jsxs(Qi,{className:"space-y-4",children:[S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Default filament cost (per kg)"}),S.jsx("input",{type:"number",step:"0.01",min:"0",value:e.default_filament_cost,onChange:x=>b("default_filament_cost",parseFloat(x.target.value)||0),className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none"})]}),S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Currency"}),S.jsxs("select",{value:e.currency,onChange:x=>b("currency",x.target.value),className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",children:[S.jsx("option",{value:"USD",children:"USD ($)"}),S.jsx("option",{value:"EUR",children:"EUR (€)"}),S.jsx("option",{value:"GBP",children:"GBP (£)"}),S.jsx("option",{value:"CHF",children:"CHF (Fr.)"}),S.jsx("option",{value:"JPY",children:"JPY (¥)"}),S.jsx("option",{value:"CNY",children:"CNY (¥)"}),S.jsx("option",{value:"CAD",children:"CAD ($)"}),S.jsx("option",{value:"AUD",children:"AUD ($)"})]})]})]})]}),S.jsxs(ki,{children:[S.jsx(Eb,{children:S.jsx("h2",{className:"text-lg font-semibold text-white",children:"About"})}),S.jsx(Qi,{children:S.jsxs("div",{className:"space-y-2 text-sm",children:[S.jsx("p",{className:"text-white",children:"Bambusy v0.1.0"}),S.jsx("p",{className:"text-bambu-gray",children:"Archive and manage your Bambu Lab 3MF files"}),S.jsx("p",{className:"text-bambu-gray",children:"Connect to printers via LAN mode (developer mode required)"})]})})]})]}),o&&S.jsx(qp,{title:"Reset Settings",message:"Reset all settings to defaults? This cannot be undone.",confirmText:"Reset",variant:"danger",onConfirm:()=>{p.mutate(),l(!1)},onCancel:()=>l(!1)})]})}function Oje({onSuccess:t}){const{showToast:e}=Mf(),[n,i]=R.useState("email"),[r,a]=R.useState(""),[s,o]=R.useState(""),[l,c]=R.useState(""),[d,f]=R.useState(""),[p,m]=R.useState("global"),y=Ji({mutationFn:()=>Tt.cloudLogin(r,s,p),onSuccess:M=>{M.success?(e("Logged in successfully"),t()):M.needs_verification?(e("Verification code sent to your email"),i("code")):e(M.message,"error")},onError:M=>{e(M.message,"error")}}),b=Ji({mutationFn:()=>Tt.cloudVerify(r,l),onSuccess:M=>{M.success?(e("Logged in successfully"),t()):e(M.message,"error")},onError:M=>{e(M.message,"error")}}),x=Ji({mutationFn:()=>Tt.cloudSetToken(d),onSuccess:()=>{e("Token set successfully"),t()},onError:M=>{e(M.message,"error")}}),v=M=>{M.preventDefault(),n==="email"?y.mutate():n==="code"?b.mutate():n==="token"&&x.mutate()},w=y.isPending||b.isPending||x.isPending;return S.jsxs(ki,{className:"max-w-md mx-auto",children:[S.jsx(Eb,{children:S.jsxs("div",{className:"flex items-center gap-2",children:[S.jsx(MP,{className:"w-5 h-5 text-bambu-green"}),S.jsx("h2",{className:"text-xl font-semibold text-white",children:"Connect to Bambu Cloud"})]})}),S.jsx(Qi,{children:S.jsxs("form",{onSubmit:v,className:"space-y-4",children:[n==="email"&&S.jsxs(S.Fragment,{children:[S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Email"}),S.jsx("input",{type:"email",value:r,onChange:M=>a(M.target.value),className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",placeholder:"your@email.com",required:!0})]}),S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Password"}),S.jsx("input",{type:"password",value:s,onChange:M=>o(M.target.value),className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",placeholder:"••••••••",required:!0})]}),S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Region"}),S.jsxs("select",{value:p,onChange:M=>m(M.target.value),className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white focus:border-bambu-green focus:outline-none",children:[S.jsx("option",{value:"global",children:"Global"}),S.jsx("option",{value:"china",children:"China"})]})]})]}),n==="code"&&S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Verification Code"}),S.jsxs("p",{className:"text-xs text-bambu-gray mb-2",children:["Check your email (",r,") for a 6-digit code"]}),S.jsx("input",{type:"text",value:l,onChange:M=>c(M.target.value.replace(/\D/g,"").slice(0,6)),className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-center text-2xl tracking-widest focus:border-bambu-green focus:outline-none",placeholder:"000000",maxLength:6,required:!0})]}),n==="token"&&S.jsxs("div",{children:[S.jsx("label",{className:"block text-sm text-bambu-gray mb-1",children:"Access Token"}),S.jsx("p",{className:"text-xs text-bambu-gray mb-2",children:"Paste your Bambu Lab access token (from Bambu Studio)"}),S.jsx("textarea",{value:d,onChange:M=>f(M.target.value),className:"w-full px-3 py-2 bg-bambu-dark border border-bambu-dark-tertiary rounded-lg text-white text-xs font-mono focus:border-bambu-green focus:outline-none resize-none",placeholder:"eyJ...",rows:3,required:!0})]}),S.jsxs("div",{className:"flex gap-2",children:[n==="code"&&S.jsx(At,{type:"button",variant:"secondary",onClick:()=>i("email"),className:"flex-1",children:"Back"}),S.jsxs(At,{type:"submit",disabled:w,className:"flex-1",children:[w?S.jsx(jr,{className:"w-4 h-4 animate-spin"}):S.jsx(oF,{className:"w-4 h-4"}),n==="email"?"Login":n==="code"?"Verify":"Set Token"]})]}),n==="email"&&S.jsx("div",{className:"pt-4 border-t border-bambu-dark-tertiary",children:S.jsxs("button",{type:"button",onClick:()=>i("token"),className:"text-sm text-bambu-gray hover:text-white flex items-center gap-1",children:[S.jsx(wie,{className:"w-3 h-3"}),"Use access token instead"]})}),n==="token"&&S.jsx("div",{className:"pt-4 border-t border-bambu-dark-tertiary",children:S.jsxs("button",{type:"button",onClick:()=>i("email"),className:"text-sm text-bambu-gray hover:text-white flex items-center gap-1",children:[S.jsx(oF,{className:"w-3 h-3"}),"Login with email instead"]})})]})})]})}function Lje({setting:t,onClick:e}){return S.jsxs("button",{onClick:e,className:"w-full text-left p-3 bg-bambu-dark rounded-lg hover:bg-bambu-dark-tertiary transition-colors",children:[S.jsx("p",{className:"text-white font-medium truncate",children:t.name}),t.updated_time&&S.jsxs("p",{className:"text-xs text-bambu-gray mt-1",children:["Updated: ",new Date(t.updated_time).toLocaleDateString()]})]})}function kje({setting:t,onClose:e}){const{data:n,isLoading:i}=Zi({queryKey:["cloudSettingDetail",t.setting_id],queryFn:()=>Tt.getCloudSettingDetail(t.setting_id)});return S.jsx("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:S.jsx(ki,{className:"w-full max-w-2xl max-h-[90vh] flex flex-col",children:S.jsxs(Qi,{className:"p-0 flex flex-col h-full",children:[S.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-bambu-dark-tertiary",children:[S.jsxs("div",{children:[S.jsx("h2",{className:"text-xl font-semibold text-white",children:t.name}),S.jsxs("p",{className:"text-sm text-bambu-gray capitalize",children:[t.type," preset"]})]}),S.jsx("button",{onClick:e,className:"text-bambu-gray hover:text-white transition-colors",children:S.jsx(zi,{className:"w-5 h-5"})})]}),S.jsx("div",{className:"flex-1 overflow-y-auto p-4",children:i?S.jsx("div",{className:"flex justify-center py-8",children:S.jsx(jr,{className:"w-8 h-8 text-bambu-green animate-spin"})}):n?S.jsx("pre",{className:"text-xs text-bambu-gray font-mono whitespace-pre-wrap overflow-x-auto bg-bambu-dark p-4 rounded-lg",children:JSON.stringify(n,null,2)}):S.jsx("p",{className:"text-bambu-gray text-center py-8",children:"Failed to load preset details"})}),S.jsx("div",{className:"p-4 border-t border-bambu-dark-tertiary",children:S.jsx(At,{variant:"secondary",onClick:e,className:"w-full",children:"Close"})})]})})})}function Ije({settings:t}){const[e,n]=R.useState(new Set),[i,r]=R.useState(null),a=l=>[...l].sort((c,d)=>c.name.localeCompare(d.name)),s=l=>{n(c=>{const d=new Set(c);return d.has(l)?d.delete(l):d.add(l),d})},o=[{key:"filament",label:"Filament Presets",icon:$ne,items:a(t.filament)},{key:"printer",label:"Printer Presets",icon:nf,items:a(t.printer)},{key:"process",label:"Process Presets",icon:rre,items:a(t.process)}];return S.jsxs(S.Fragment,{children:[S.jsx("div",{className:"space-y-4",children:o.map(({key:l,label:c,icon:d,items:f})=>S.jsxs(ki,{children:[S.jsxs("button",{onClick:()=>s(l),className:"w-full flex items-center justify-between p-4",children:[S.jsxs("div",{className:"flex items-center gap-3",children:[S.jsx(d,{className:"w-5 h-5 text-bambu-green"}),S.jsx("span",{className:"text-lg font-semibold text-white",children:c}),S.jsxs("span",{className:"text-sm text-bambu-gray",children:["(",f.length,")"]})]}),e.has(l)?S.jsx(Rne,{className:"w-5 h-5 text-bambu-gray"}):S.jsx(Wp,{className:"w-5 h-5 text-bambu-gray"})]}),e.has(l)&&f.length>0&&S.jsx(Qi,{className:"pt-0",children:S.jsx("div",{className:"grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:f.map(p=>S.jsx(Lje,{setting:p,onClick:()=>r(p)},p.setting_id))})}),e.has(l)&&f.length===0&&S.jsx(Qi,{className:"pt-0",children:S.jsx("p",{className:"text-bambu-gray text-sm",children:"No presets found"})})]},l))}),i&&S.jsx(kje,{setting:i,onClose:()=>r(null)})]})}function Uje(){const t=ka(),{showToast:e}=Mf(),{data:n,isLoading:i}=Zi({queryKey:["cloudStatus"],queryFn:Tt.getCloudStatus}),{data:r,isLoading:a,refetch:s}=Zi({queryKey:["cloudSettings"],queryFn:()=>Tt.getCloudSettings(),enabled:!!n?.is_authenticated,retry:!1,staleTime:1e3*60*5}),o=Ji({mutationFn:Tt.cloudLogout,onSuccess:()=>{t.invalidateQueries({queryKey:["cloudStatus"]}),t.removeQueries({queryKey:["cloudSettings"]}),e("Logged out")}}),l=()=>{t.invalidateQueries({queryKey:["cloudStatus"]})};return i?S.jsx("div",{className:"p-8 flex justify-center",children:S.jsx(jr,{className:"w-8 h-8 text-bambu-green animate-spin"})}):S.jsxs("div",{className:"p-8",children:[S.jsxs("div",{className:"mb-8 flex items-center justify-between",children:[S.jsxs("div",{children:[S.jsxs("h1",{className:"text-2xl font-bold text-white flex items-center gap-2",children:[S.jsx(MP,{className:"w-6 h-6 text-bambu-green"}),"Cloud Profiles"]}),S.jsx("p",{className:"text-bambu-gray",children:n?.is_authenticated?`Connected as ${n.email}`:"Manage your Bambu Cloud slicer presets"})]}),n?.is_authenticated&&S.jsxs("div",{className:"flex gap-2",children:[S.jsxs(At,{variant:"secondary",onClick:()=>s(),disabled:a,children:[S.jsx(EP,{className:`w-4 h-4 ${a?"animate-spin":""}`}),"Refresh"]}),S.jsxs(At,{variant:"secondary",onClick:()=>o.mutate(),disabled:o.isPending,children:[S.jsx(Iie,{className:"w-4 h-4"}),"Logout"]})]})]}),n?.is_authenticated?a?S.jsx("div",{className:"flex justify-center py-12",children:S.jsx(jr,{className:"w-8 h-8 text-bambu-green animate-spin"})}):r?S.jsx(Ije,{settings:r}):S.jsx(ki,{children:S.jsxs(Qi,{className:"py-8 text-center",children:[S.jsx("p",{className:"text-bambu-gray",children:"Failed to load profiles"}),S.jsx(At,{className:"mt-4",onClick:()=>s(),children:"Retry"})]})}):S.jsx(Oje,{onSuccess:l})]})}function Fje(){const t=R.useRef(null),e=R.useRef(null),n=ka(),[i,r]=R.useState(!1),a=R.useCallback(()=>{if(t.current?.readyState===WebSocket.OPEN)return;const c=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/api/v1/ws`,d=new WebSocket(c);d.onopen=()=>{r(!0);const f=setInterval(()=>{d.readyState===WebSocket.OPEN&&d.send(JSON.stringify({type:"ping"}))},3e4);d.onclose=()=>{clearInterval(f)}},d.onmessage=f=>{try{const p=JSON.parse(f.data);s(p)}catch{}},d.onclose=()=>{r(!1),t.current=null,e.current=window.setTimeout(()=>{a()},3e3)},d.onerror=()=>{d.close()},t.current=d},[]),s=R.useCallback(l=>{switch(l.type){case"printer_status":l.printer_id!==void 0&&n.setQueryData(["printerStatus",l.printer_id],c=>({...c,...l.data}));break;case"print_complete":n.invalidateQueries({queryKey:["archives"]}),n.invalidateQueries({queryKey:["archiveStats"]});break;case"archive_created":n.invalidateQueries({queryKey:["archives"]}),n.invalidateQueries({queryKey:["archiveStats"]});break}},[n]);R.useEffect(()=>(a(),()=>{e.current&&clearTimeout(e.current),t.current&&t.current.close()}),[a]);const o=R.useCallback(l=>{t.current?.readyState===WebSocket.OPEN&&t.current.send(JSON.stringify(l))},[]);return{isConnected:i,sendMessage:o}}const zje=new Yte({defaultOptions:{queries:{staleTime:1e3*60,retry:1}}});function Bje({children:t}){return Fje(),S.jsx(S.Fragment,{children:t})}function jje(){return S.jsx(Bre,{children:S.jsx(Xre,{children:S.jsx(Kte,{client:zje,children:S.jsx(Bje,{children:S.jsx(vte,{children:S.jsx(Xee,{children:S.jsxs(yd,{path:"/",element:S.jsx($re,{}),children:[S.jsx(yd,{index:!0,element:S.jsx(iae,{})}),S.jsx(yd,{path:"archives",element:S.jsx(RMe,{})}),S.jsx(yd,{path:"stats",element:S.jsx(Dje,{})}),S.jsx(yd,{path:"cloud",element:S.jsx(Uje,{})}),S.jsx(yd,{path:"settings",element:S.jsx(Nje,{})})]})})})})})})})}eee.createRoot(document.getElementById("root")).render(S.jsx(R.StrictMode,{children:S.jsx(jje,{})}));
|