build.js 3.0 MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168
  1. /*! For license information please see three.js.LICENSE.txt */
  2. (()=>{"use strict";var e={d:(t,i)=>{for(var r in i)e.o(i,r)&&!e.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:i[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{ACESFilmicToneMapping:()=>ie,AddEquation:()=>T,AddOperation:()=>K,AdditiveAnimationBlendMode:()=>Et,AdditiveBlending:()=>b,AlphaFormat:()=>Be,AlwaysDepth:()=>k,AlwaysStencilFunc:()=>ii,AmbientLight:()=>AmbientLight,AmbientLightProbe:()=>AmbientLightProbe,AnimationClip:()=>AnimationClip,AnimationLoader:()=>AnimationLoader,AnimationMixer:()=>AnimationMixer,AnimationObjectGroup:()=>AnimationObjectGroup,AnimationUtils:()=>Gs,ArcCurve:()=>ArcCurve,ArrayCamera:()=>ArrayCamera,ArrowHelper:()=>ArrowHelper,Audio:()=>Audio,AudioAnalyser:()=>AudioAnalyser,AudioContext:()=>ea,AudioListener:()=>AudioListener,AudioLoader:()=>AudioLoader,AxesHelper:()=>AxesHelper,BackSide:()=>m,BasicDepthPacking:()=>Bt,BasicShadowMap:()=>c,Bone:()=>Bone,BooleanKeyframeTrack:()=>BooleanKeyframeTrack,Box2:()=>Box2,Box3:()=>Box3,Box3Helper:()=>Box3Helper,BoxBufferGeometry:()=>BoxGeometry,BoxGeometry:()=>BoxGeometry,BoxHelper:()=>BoxHelper,BufferAttribute:()=>BufferAttribute,BufferGeometry:()=>BufferGeometry,BufferGeometryLoader:()=>BufferGeometryLoader,ByteType:()=>we,Cache:()=>Us,Camera:()=>Camera,CameraHelper:()=>CameraHelper,CanvasTexture:()=>CanvasTexture,CapsuleBufferGeometry:()=>CapsuleGeometry,CapsuleGeometry:()=>CapsuleGeometry,CatmullRomCurve3:()=>CatmullRomCurve3,CineonToneMapping:()=>te,CircleBufferGeometry:()=>CircleGeometry,CircleGeometry:()=>CircleGeometry,ClampToEdgeWrapping:()=>ue,Clock:()=>Clock,Color:()=>Color,ColorKeyframeTrack:()=>ColorKeyframeTrack,ColorManagement:()=>Mi,CompressedTexture:()=>CompressedTexture,CompressedTextureLoader:()=>CompressedTextureLoader,ConeBufferGeometry:()=>ConeGeometry,ConeGeometry:()=>ConeGeometry,CubeCamera:()=>CubeCamera,CubeReflectionMapping:()=>se,CubeRefractionMapping:()=>ae,CubeTexture:()=>CubeTexture,CubeTextureLoader:()=>CubeTextureLoader,CubeUVReflectionMapping:()=>ce,CubicBezierCurve:()=>CubicBezierCurve,CubicBezierCurve3:()=>CubicBezierCurve3,CubicInterpolant:()=>CubicInterpolant,CullFaceBack:()=>a,CullFaceFront:()=>o,CullFaceFrontBack:()=>l,CullFaceNone:()=>s,Curve:()=>Curve,CurvePath:()=>CurvePath,CustomBlending:()=>w,CustomToneMapping:()=>re,CylinderBufferGeometry:()=>CylinderGeometry,CylinderGeometry:()=>CylinderGeometry,Cylindrical:()=>Cylindrical,Data3DTexture:()=>Data3DTexture,DataArrayTexture:()=>DataArrayTexture,DataTexture:()=>DataTexture,DataTexture2DArray:()=>DataTexture2DArray,DataTexture3D:()=>DataTexture3D,DataTextureLoader:()=>DataTextureLoader,DataUtils:()=>Ga,DecrementStencilOp:()=>jt,DecrementWrapStencilOp:()=>Xt,DefaultLoadingManager:()=>ks,DepthFormat:()=>Fe,DepthStencilFormat:()=>Ge,DepthTexture:()=>DepthTexture,DirectionalLight:()=>DirectionalLight,DirectionalLightHelper:()=>DirectionalLightHelper,DiscreteInterpolant:()=>DiscreteInterpolant,DodecahedronBufferGeometry:()=>DodecahedronGeometry,DodecahedronGeometry:()=>DodecahedronGeometry,DoubleSide:()=>f,DstAlphaFactor:()=>N,DstColorFactor:()=>z,DynamicCopyUsage:()=>hi,DynamicDrawUsage:()=>ni,DynamicReadUsage:()=>oi,EdgesGeometry:()=>EdgesGeometry,EllipseCurve:()=>EllipseCurve,EqualDepth:()=>j,EqualStencilFunc:()=>Kt,EquirectangularReflectionMapping:()=>oe,EquirectangularRefractionMapping:()=>le,Euler:()=>Euler,EventDispatcher:()=>EventDispatcher,ExtrudeBufferGeometry:()=>ExtrudeGeometry,ExtrudeGeometry:()=>ExtrudeGeometry,FileLoader:()=>FileLoader,FlatShading:()=>g,Float16BufferAttribute:()=>Float16BufferAttribute,Float32BufferAttribute:()=>Float32BufferAttribute,Float64BufferAttribute:()=>Float64BufferAttribute,FloatType:()=>Le,Fog:()=>Fog,FogExp2:()=>FogExp2,Font:()=>Font,FontLoader:()=>FontLoader,FramebufferTexture:()=>FramebufferTexture,FrontSide:()=>p,Frustum:()=>Frustum,GLBufferAttribute:()=>GLBufferAttribute,GLSL1:()=>di,GLSL3:()=>pi,GreaterDepth:()=>X,GreaterEqualDepth:()=>q,GreaterEqualStencilFunc:()=>ti,GreaterStencilFunc:()=>$t,GridHelper:()=>GridHelper,Group:()=>Group,HalfFloatType:()=>Pe,HemisphereLight:()=>HemisphereLight,HemisphereLightHelper:()=>HemisphereLightHelper,HemisphereLightProbe:()=>HemisphereLightProbe,IcosahedronBufferGeometry:()=>IcosahedronGeometry,IcosahedronGeometry:()=>IcosahedronGeometry,ImageBitmapLoader:()=>ImageBitmapLoader,ImageLoader:()=>ImageLoader,ImageUtils:()=>ImageUtils,ImmediateRenderObject:()=>ImmediateRenderObject,IncrementStencilOp:()=>Ht,IncrementWrapStencilOp:()=>qt,InstancedBufferAttribute:()=>InstancedBufferAttribute,InstancedBufferGeometry:()=>InstancedBufferGeometry,InstancedInterleavedBuffer:()=>InstancedInterleavedBuffer,InstancedMesh:()=>InstancedMesh,Int16BufferAttribute:()=>Int16BufferAttribute,Int32BufferAttribute:()=>Int32BufferAttribute,Int8BufferAttribute:()=>Int8BufferAttribute,IntType:()=>Ce,InterleavedBuffer:()=>InterleavedBuffer,InterleavedBufferAttribute:()=>InterleavedBufferAttribute,Interpolant:()=>Interpolant,InterpolateDiscrete:()=>bt,InterpolateLinear:()=>Mt,InterpolateSmooth:()=>St,InvertStencilOp:()=>Yt,KeepStencilOp:()=>kt,KeyframeTrack:()=>KeyframeTrack,LOD:()=>LOD,LatheBufferGeometry:()=>LatheGeometry,LatheGeometry:()=>LatheGeometry,Layers:()=>Layers,LessDepth:()=>W,LessEqualDepth:()=>H,LessEqualStencilFunc:()=>Qt,LessStencilFunc:()=>Jt,Light:()=>Light,LightProbe:()=>LightProbe,Line:()=>Line,Line3:()=>Line3,LineBasicMaterial:()=>LineBasicMaterial,LineCurve:()=>LineCurve,LineCurve3:()=>LineCurve3,LineDashedMaterial:()=>LineDashedMaterial,LineLoop:()=>LineLoop,LineSegments:()=>LineSegments,LinearEncoding:()=>Dt,LinearFilter:()=>xe,LinearInterpolant:()=>LinearInterpolant,LinearMipMapLinearFilter:()=>Me,LinearMipMapNearestFilter:()=>_e,LinearMipmapLinearFilter:()=>be,LinearMipmapNearestFilter:()=>ye,LinearSRGBColorSpace:()=>Gt,LinearToneMapping:()=>$,Loader:()=>Loader,LoaderUtils:()=>LoaderUtils,LoadingManager:()=>LoadingManager,LoopOnce:()=>xt,LoopPingPong:()=>_t,LoopRepeat:()=>yt,LuminanceAlphaFormat:()=>ze,LuminanceFormat:()=>Oe,MOUSE:()=>r,Material:()=>Material,MaterialLoader:()=>MaterialLoader,MathUtils:()=>yi,Matrix3:()=>Matrix3,Matrix4:()=>Matrix4,MaxEquation:()=>L,Mesh:()=>Mesh,MeshBasicMaterial:()=>MeshBasicMaterial,MeshDepthMaterial:()=>MeshDepthMaterial,MeshDistanceMaterial:()=>MeshDistanceMaterial,MeshLambertMaterial:()=>MeshLambertMaterial,MeshMatcapMaterial:()=>MeshMatcapMaterial,MeshNormalMaterial:()=>MeshNormalMaterial,MeshPhongMaterial:()=>MeshPhongMaterial,MeshPhysicalMaterial:()=>MeshPhysicalMaterial,MeshStandardMaterial:()=>MeshStandardMaterial,MeshToonMaterial:()=>MeshToonMaterial,MinEquation:()=>E,MirroredRepeatWrapping:()=>de,MixOperation:()=>J,MultiplyBlending:()=>S,MultiplyOperation:()=>Z,NearestFilter:()=>pe,NearestMipMapLinearFilter:()=>ve,NearestMipMapNearestFilter:()=>fe,NearestMipmapLinearFilter:()=>ge,NearestMipmapNearestFilter:()=>me,NeverDepth:()=>U,NeverStencilFunc:()=>Zt,NoBlending:()=>y,NoColorSpace:()=>zt,NoToneMapping:()=>Q,NormalAnimationBlendMode:()=>Ct,NormalBlending:()=>_,NotEqualDepth:()=>Y,NotEqualStencilFunc:()=>ei,NumberKeyframeTrack:()=>NumberKeyframeTrack,Object3D:()=>Object3D,ObjectLoader:()=>ObjectLoader,ObjectSpaceNormalMap:()=>Ot,OctahedronBufferGeometry:()=>OctahedronGeometry,OctahedronGeometry:()=>OctahedronGeometry,OneFactor:()=>R,OneMinusDstAlphaFactor:()=>O,OneMinusDstColorFactor:()=>F,OneMinusSrcAlphaFactor:()=>V,OneMinusSrcColorFactor:()=>I,OrthographicCamera:()=>OrthographicCamera,PCFShadowMap:()=>h,PCFSoftShadowMap:()=>u,PMREMGenerator:()=>PMREMGenerator,ParametricGeometry:()=>ParametricGeometry,Path:()=>Path,PerspectiveCamera:()=>PerspectiveCamera,Plane:()=>Plane,PlaneBufferGeometry:()=>PlaneGeometry,PlaneGeometry:()=>PlaneGeometry,PlaneHelper:()=>PlaneHelper,PointLight:()=>PointLight,PointLightHelper:()=>PointLightHelper,Points:()=>Points,PointsMaterial:()=>PointsMaterial,PolarGridHelper:()=>PolarGridHelper,PolyhedronBufferGeometry:()=>PolyhedronGeometry,PolyhedronGeometry:()=>PolyhedronGeometry,PositionalAudio:()=>PositionalAudio,PropertyBinding:()=>PropertyBinding,PropertyMixer:()=>PropertyMixer,QuadraticBezierCurve:()=>QuadraticBezierCurve,QuadraticBezierCurve3:()=>QuadraticBezierCurve3,Quaternion:()=>Quaternion,QuaternionKeyframeTrack:()=>QuaternionKeyframeTrack,QuaternionLinearInterpolant:()=>QuaternionLinearInterpolant,REVISION:()=>i,RGBADepthPacking:()=>Vt,RGBAFormat:()=>Ne,RGBAIntegerFormat:()=>je,RGBA_ASTC_10x10_Format:()=>mt,RGBA_ASTC_10x5_Format:()=>ut,RGBA_ASTC_10x6_Format:()=>dt,RGBA_ASTC_10x8_Format:()=>pt,RGBA_ASTC_12x10_Format:()=>ft,RGBA_ASTC_12x12_Format:()=>gt,RGBA_ASTC_4x4_Format:()=>rt,RGBA_ASTC_5x4_Format:()=>nt,RGBA_ASTC_5x5_Format:()=>st,RGBA_ASTC_6x5_Format:()=>at,RGBA_ASTC_6x6_Format:()=>ot,RGBA_ASTC_8x5_Format:()=>lt,RGBA_ASTC_8x6_Format:()=>ct,RGBA_ASTC_8x8_Format:()=>ht,RGBA_BPTC_Format:()=>vt,RGBA_ETC2_EAC_Format:()=>it,RGBA_PVRTC_2BPPV1_Format:()=>$e,RGBA_PVRTC_4BPPV1_Format:()=>Qe,RGBA_S3TC_DXT1_Format:()=>Xe,RGBA_S3TC_DXT3_Format:()=>Ye,RGBA_S3TC_DXT5_Format:()=>Ze,RGBFormat:()=>Ve,RGB_ETC1_Format:()=>et,RGB_ETC2_Format:()=>tt,RGB_PVRTC_2BPPV1_Format:()=>Ke,RGB_PVRTC_4BPPV1_Format:()=>Je,RGB_S3TC_DXT1_Format:()=>qe,RGFormat:()=>We,RGIntegerFormat:()=>He,RawShaderMaterial:()=>RawShaderMaterial,Ray:()=>Ray,Raycaster:()=>Raycaster,RectAreaLight:()=>RectAreaLight,RedFormat:()=>Ue,RedIntegerFormat:()=>ke,ReinhardToneMapping:()=>ee,RepeatWrapping:()=>he,ReplaceStencilOp:()=>Wt,ReverseSubtractEquation:()=>C,RingBufferGeometry:()=>RingGeometry,RingGeometry:()=>RingGeometry,SRGBColorSpace:()=>Ft,Scene:()=>Scene,ShaderChunk:()=>mn,ShaderLib:()=>gn,ShaderMaterial:()=>ShaderMaterial,ShadowMaterial:()=>ShadowMaterial,Shape:()=>Shape,ShapeBufferGeometry:()=>ShapeGeometry,ShapeGeometry:()=>ShapeGeometry,ShapePath:()=>ShapePath,ShapeUtils:()=>ShapeUtils,ShortType:()=>Te,Skeleton:()=>Skeleton,SkeletonHelper:()=>SkeletonHelper,SkinnedMesh:()=>SkinnedMesh,SmoothShading:()=>x,Source:()=>Source,Sphere:()=>Sphere,SphereBufferGeometry:()=>SphereGeometry,SphereGeometry:()=>SphereGeometry,Spherical:()=>Spherical,SphericalHarmonics3:()=>SphericalHarmonics3,SplineCurve:()=>SplineCurve,SpotLight:()=>SpotLight,SpotLightHelper:()=>SpotLightHelper,Sprite:()=>Sprite,SpriteMaterial:()=>SpriteMaterial,SrcAlphaFactor:()=>B,SrcAlphaSaturateFactor:()=>G,SrcColorFactor:()=>D,StaticCopyUsage:()=>ci,StaticDrawUsage:()=>ri,StaticReadUsage:()=>ai,StereoCamera:()=>StereoCamera,StreamCopyUsage:()=>ui,StreamDrawUsage:()=>si,StreamReadUsage:()=>li,StringKeyframeTrack:()=>StringKeyframeTrack,SubtractEquation:()=>A,SubtractiveBlending:()=>M,TOUCH:()=>n,TangentSpaceNormalMap:()=>Nt,TetrahedronBufferGeometry:()=>TetrahedronGeometry,TetrahedronGeometry:()=>TetrahedronGeometry,TextGeometry:()=>TextGeometry,Texture:()=>Texture,TextureLoader:()=>TextureLoader,TorusBufferGeometry:()=>TorusGeometry,TorusGeometry:()=>TorusGeometry,TorusKnotBufferGeometry:()=>TorusKnotGeometry,TorusKnotGeometry:()=>TorusKnotGeometry,Triangle:()=>Triangle,TriangleFanDrawMode:()=>Rt,TriangleStripDrawMode:()=>Pt,TrianglesDrawMode:()=>Lt,TubeBufferGeometry:()=>TubeGeometry,TubeGeometry:()=>TubeGeometry,UVMapping:()=>ne,Uint16BufferAttribute:()=>Uint16BufferAttribute,Uint32BufferAttribute:()=>Uint32BufferAttribute,Uint8BufferAttribute:()=>Uint8BufferAttribute,Uint8ClampedBufferAttribute:()=>Uint8ClampedBufferAttribute,Uniform:()=>Uniform,UniformsGroup:()=>UniformsGroup,UniformsLib:()=>fn,UniformsUtils:()=>on,UnsignedByteType:()=>Se,UnsignedInt248Type:()=>Ie,UnsignedIntType:()=>Ee,UnsignedShort4444Type:()=>Re,UnsignedShort5551Type:()=>De,UnsignedShortType:()=>Ae,VSMShadowMap:()=>d,Vector2:()=>Vector2,Vector3:()=>Vector3,Vector4:()=>Vector4,VectorKeyframeTrack:()=>VectorKeyframeTrack,VideoTexture:()=>VideoTexture,WebGL1Renderer:()=>WebGL1Renderer,WebGL3DRenderTarget:()=>WebGL3DRenderTarget,WebGLArrayRenderTarget:()=>WebGLArrayRenderTarget,WebGLCubeRenderTarget:()=>WebGLCubeRenderTarget,WebGLMultipleRenderTargets:()=>WebGLMultipleRenderTargets,WebGLMultisampleRenderTarget:()=>WebGLMultisampleRenderTarget,WebGLRenderTarget:()=>WebGLRenderTarget,WebGLRenderer:()=>WebGLRenderer,WebGLUtils:()=>WebGLUtils,WireframeGeometry:()=>WireframeGeometry,WrapAroundEnding:()=>At,ZeroCurvatureEnding:()=>wt,ZeroFactor:()=>P,ZeroSlopeEnding:()=>Tt,ZeroStencilOp:()=>Ut,_SRGBAFormat:()=>mi,sRGBEncoding:()=>It});const i="143",r={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},n={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},s=0,a=1,o=2,l=3,c=0,h=1,u=2,d=3,p=0,m=1,f=2,g=1,x=2,y=0,_=1,b=2,M=3,S=4,w=5,T=100,A=101,C=102,E=103,L=104,P=200,R=201,D=202,I=203,B=204,V=205,N=206,O=207,z=208,F=209,G=210,U=0,k=1,W=2,H=3,j=4,q=5,X=6,Y=7,Z=0,J=1,K=2,Q=0,$=1,ee=2,te=3,ie=4,re=5,ne=300,se=301,ae=302,oe=303,le=304,ce=306,he=1e3,ue=1001,de=1002,pe=1003,me=1004,fe=1004,ge=1005,ve=1005,xe=1006,ye=1007,_e=1007,be=1008,Me=1008,Se=1009,we=1010,Te=1011,Ae=1012,Ce=1013,Ee=1014,Le=1015,Pe=1016,Re=1017,De=1018,Ie=1020,Be=1021,Ve=1022,Ne=1023,Oe=1024,ze=1025,Fe=1026,Ge=1027,Ue=1028,ke=1029,We=1030,He=1031,je=1033,qe=33776,Xe=33777,Ye=33778,Ze=33779,Je=35840,Ke=35841,Qe=35842,$e=35843,et=36196,tt=37492,it=37496,rt=37808,nt=37809,st=37810,at=37811,ot=37812,lt=37813,ct=37814,ht=37815,ut=37816,dt=37817,pt=37818,mt=37819,ft=37820,gt=37821,vt=36492,xt=2200,yt=2201,_t=2202,bt=2300,Mt=2301,St=2302,wt=2400,Tt=2401,At=2402,Ct=2500,Et=2501,Lt=0,Pt=1,Rt=2,Dt=3e3,It=3001,Bt=3200,Vt=3201,Nt=0,Ot=1,zt="",Ft="srgb",Gt="srgb-linear",Ut=0,kt=7680,Wt=7681,Ht=7682,jt=7683,qt=34055,Xt=34056,Yt=5386,Zt=512,Jt=513,Kt=514,Qt=515,$t=516,ei=517,ti=518,ii=519,ri=35044,ni=35048,si=35040,ai=35045,oi=35049,li=35041,ci=35046,hi=35050,ui=35042,di="100",pi="300 es",mi=1035;class EventDispatcher{addEventListener(e,t){void 0===this._listeners&&(this._listeners={});const i=this._listeners;void 0===i[e]&&(i[e]=[]),-1===i[e].indexOf(t)&&i[e].push(t)}hasEventListener(e,t){if(void 0===this._listeners)return!1;const i=this._listeners;return void 0!==i[e]&&-1!==i[e].indexOf(t)}removeEventListener(e,t){if(void 0===this._listeners)return;const i=this._listeners[e];if(void 0!==i){const e=i.indexOf(t);-1!==e&&i.splice(e,1)}}dispatchEvent(e){if(void 0===this._listeners)return;const t=this._listeners[e.type];if(void 0!==t){e.target=this;const i=t.slice(0);for(let t=0,r=i.length;t<r;t++)i[t].call(this,e);e.target=null}}}const fi=["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 gi=1234567;const vi=Math.PI/180,xi=180/Math.PI;function generateUUID(){const e=4294967295*Math.random()|0,t=4294967295*Math.random()|0,i=4294967295*Math.random()|0,r=4294967295*Math.random()|0;return(fi[255&e]+fi[e>>8&255]+fi[e>>16&255]+fi[e>>24&255]+"-"+fi[255&t]+fi[t>>8&255]+"-"+fi[t>>16&15|64]+fi[t>>24&255]+"-"+fi[63&i|128]+fi[i>>8&255]+"-"+fi[i>>16&255]+fi[i>>24&255]+fi[255&r]+fi[r>>8&255]+fi[r>>16&255]+fi[r>>24&255]).toLowerCase()}function clamp(e,t,i){return Math.max(t,Math.min(i,e))}function euclideanModulo(e,t){return(e%t+t)%t}function lerp(e,t,i){return(1-i)*e+i*t}function isPowerOfTwo(e){return 0===(e&e-1)&&0!==e}function ceilPowerOfTwo(e){return Math.pow(2,Math.ceil(Math.log(e)/Math.LN2))}function floorPowerOfTwo(e){return Math.pow(2,Math.floor(Math.log(e)/Math.LN2))}var yi=Object.freeze({__proto__:null,DEG2RAD:vi,RAD2DEG:xi,generateUUID:generateUUID,clamp:clamp,euclideanModulo:euclideanModulo,mapLinear:function mapLinear(e,t,i,r,n){return r+(e-t)*(n-r)/(i-t)},inverseLerp:function inverseLerp(e,t,i){return e!==t?(i-e)/(t-e):0},lerp:lerp,damp:function damp(e,t,i,r){return lerp(e,t,1-Math.exp(-i*r))},pingpong:function pingpong(e,t=1){return t-Math.abs(euclideanModulo(e,2*t)-t)},smoothstep:function smoothstep(e,t,i){return e<=t?0:e>=i?1:(e=(e-t)/(i-t))*e*(3-2*e)},smootherstep:function smootherstep(e,t,i){return e<=t?0:e>=i?1:(e=(e-t)/(i-t))*e*e*(e*(6*e-15)+10)},randInt:function randInt(e,t){return e+Math.floor(Math.random()*(t-e+1))},randFloat:function randFloat(e,t){return e+Math.random()*(t-e)},randFloatSpread:function randFloatSpread(e){return e*(.5-Math.random())},seededRandom:function seededRandom(e){void 0!==e&&(gi=e);let t=gi+=1831565813;return t=Math.imul(t^t>>>15,1|t),t^=t+Math.imul(t^t>>>7,61|t),((t^t>>>14)>>>0)/4294967296},degToRad:function degToRad(e){return e*vi},radToDeg:function radToDeg(e){return e*xi},isPowerOfTwo:isPowerOfTwo,ceilPowerOfTwo:ceilPowerOfTwo,floorPowerOfTwo:floorPowerOfTwo,setQuaternionFromProperEuler:function setQuaternionFromProperEuler(e,t,i,r,n){const s=Math.cos,a=Math.sin,o=s(i/2),l=a(i/2),c=s((t+r)/2),h=a((t+r)/2),u=s((t-r)/2),d=a((t-r)/2),p=s((r-t)/2),m=a((r-t)/2);switch(n){case"XYX":e.set(o*h,l*u,l*d,o*c);break;case"YZY":e.set(l*d,o*h,l*u,o*c);break;case"ZXZ":e.set(l*u,l*d,o*h,o*c);break;case"XZX":e.set(o*h,l*m,l*p,o*c);break;case"YXY":e.set(l*p,o*h,l*m,o*c);break;case"ZYZ":e.set(l*m,l*p,o*h,o*c);break;default:console.warn("THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: "+n)}},normalize:function normalize(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return Math.round(65535*e);case Uint8Array:return Math.round(255*e);case Int16Array:return Math.round(32767*e);case Int8Array:return Math.round(127*e);default:throw new Error("Invalid component type.")}},denormalize:function denormalize$1(e,t){switch(t.constructor){case Float32Array:return e;case Uint16Array:return e/65535;case Uint8Array:return e/255;case Int16Array:return Math.max(e/32767,-1);case Int8Array:return Math.max(e/127,-1);default:throw new Error("Invalid component type.")}}});class Vector2{constructor(e=0,t=0){Vector2.prototype.isVector2=!0,this.x=e,this.y=t}get width(){return this.x}set width(e){this.x=e}get height(){return this.y}set height(e){this.y=e}set(e,t){return this.x=e,this.y=t,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,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;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,t){return this.x=e.x+t.x,this.y=e.y+t.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,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,t){return this.x=e.x-t.x,this.y=e.y-t.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 t=this.x,i=this.y,r=e.elements;return this.x=r[0]*t+r[3]*i+r[6],this.y=r[1]*t+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,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(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}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y;return t*t+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,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this}equals(e){return e.x===this.x&&e.y===this.y}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}rotateAround(e,t){const i=Math.cos(t),r=Math.sin(t),n=this.x-e.x,s=this.y-e.y;return this.x=n*i-s*r+e.x,this.y=n*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 Matrix3{constructor(){Matrix3.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1]}set(e,t,i,r,n,s,a,o,l){const c=this.elements;return c[0]=e,c[1]=r,c[2]=a,c[3]=t,c[4]=n,c[5]=o,c[6]=i,c[7]=s,c[8]=l,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}extractBasis(e,t,i){return e.setFromMatrix3Column(this,0),t.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(e){const t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,n=this.elements,s=i[0],a=i[3],o=i[6],l=i[1],c=i[4],h=i[7],u=i[2],d=i[5],p=i[8],m=r[0],f=r[3],g=r[6],x=r[1],y=r[4],_=r[7],b=r[2],M=r[5],S=r[8];return n[0]=s*m+a*x+o*b,n[3]=s*f+a*y+o*M,n[6]=s*g+a*_+o*S,n[1]=l*m+c*x+h*b,n[4]=l*f+c*y+h*M,n[7]=l*g+c*_+h*S,n[2]=u*m+d*x+p*b,n[5]=u*f+d*y+p*M,n[8]=u*g+d*_+p*S,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[3]*=e,t[6]*=e,t[1]*=e,t[4]*=e,t[7]*=e,t[2]*=e,t[5]*=e,t[8]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[1],r=e[2],n=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8];return t*s*c-t*a*l-i*n*c+i*a*o+r*n*l-r*s*o}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],n=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],h=c*s-a*l,u=a*o-c*n,d=l*n-s*o,p=t*h+i*u+r*d;if(0===p)return this.set(0,0,0,0,0,0,0,0,0);const m=1/p;return e[0]=h*m,e[1]=(r*l-c*i)*m,e[2]=(a*i-r*s)*m,e[3]=u*m,e[4]=(c*t-r*o)*m,e[5]=(r*n-a*t)*m,e[6]=d*m,e[7]=(i*o-l*t)*m,e[8]=(s*t-i*n)*m,this}transpose(){let e;const t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}transposeIntoArray(e){const t=this.elements;return e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8],this}setUvTransform(e,t,i,r,n,s,a){const o=Math.cos(n),l=Math.sin(n);return this.set(i*o,i*l,-i*(o*s+l*a)+s+e,-r*l,r*o,-r*(-l*s+o*a)+a+t,0,0,1),this}scale(e,t){const i=this.elements;return i[0]*=e,i[3]*=e,i[6]*=e,i[1]*=t,i[4]*=t,i[7]*=t,this}rotate(e){const t=Math.cos(e),i=Math.sin(e),r=this.elements,n=r[0],s=r[3],a=r[6],o=r[1],l=r[4],c=r[7];return r[0]=t*n+i*o,r[3]=t*s+i*l,r[6]=t*a+i*c,r[1]=-i*n+t*o,r[4]=-i*s+t*l,r[7]=-i*a+t*c,this}translate(e,t){const i=this.elements;return i[0]+=e*i[2],i[3]+=e*i[5],i[6]+=e*i[8],i[1]+=t*i[2],i[4]+=t*i[5],i[7]+=t*i[8],this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<9;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<9;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){return(new this.constructor).fromArray(this.elements)}}function arrayNeedsUint32(e){for(let t=e.length-1;t>=0;--t)if(e[t]>65535)return!0;return!1}const _i={Int8Array:Int8Array,Uint8Array:Uint8Array,Uint8ClampedArray:Uint8ClampedArray,Int16Array:Int16Array,Uint16Array:Uint16Array,Int32Array:Int32Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array};function getTypedArray(e,t){return new _i[e](t)}function createElementNS(e){return document.createElementNS("http://www.w3.org/1999/xhtml",e)}function SRGBToLinear(e){return e<.04045?.0773993808*e:Math.pow(.9478672986*e+.0521327014,2.4)}function LinearToSRGB(e){return e<.0031308?12.92*e:1.055*Math.pow(e,.41666)-.055}const bi={[Ft]:{[Gt]:SRGBToLinear},[Gt]:{[Ft]:LinearToSRGB}},Mi={legacyMode:!0,get workingColorSpace(){return Gt},set workingColorSpace(e){console.warn("THREE.ColorManagement: .workingColorSpace is readonly.")},convert:function(e,t,i){if(this.legacyMode||t===i||!t||!i)return e;if(bi[t]&&void 0!==bi[t][i]){const r=bi[t][i];return e.r=r(e.r),e.g=r(e.g),e.b=r(e.b),e}throw new Error("Unsupported color space conversion.")},fromWorkingColorSpace:function(e,t){return this.convert(e,this.workingColorSpace,t)},toWorkingColorSpace:function(e,t){return this.convert(e,t,this.workingColorSpace)}},Si={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},wi={r:0,g:0,b:0},Ti={h:0,s:0,l:0},Ai={h:0,s:0,l:0};function hue2rgb(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?e+6*(t-e)*i:i<.5?t:i<2/3?e+6*(t-e)*(2/3-i):e}function toComponents(e,t){return t.r=e.r,t.g=e.g,t.b=e.b,t}class Color{constructor(e,t,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,void 0===t&&void 0===i?this.set(e):this.setRGB(e,t,i)}set(e){return e&&e.isColor?this.copy(e):"number"===typeof e?this.setHex(e):"string"===typeof e&&this.setStyle(e),this}setScalar(e){return this.r=e,this.g=e,this.b=e,this}setHex(e,t=Ft){return e=Math.floor(e),this.r=(e>>16&255)/255,this.g=(e>>8&255)/255,this.b=(255&e)/255,Mi.toWorkingColorSpace(this,t),this}setRGB(e,t,i,r=Gt){return this.r=e,this.g=t,this.b=i,Mi.toWorkingColorSpace(this,r),this}setHSL(e,t,i,r=Gt){if(e=euclideanModulo(e,1),t=clamp(t,0,1),i=clamp(i,0,1),0===t)this.r=this.g=this.b=i;else{const r=i<=.5?i*(1+t):i+t-i*t,n=2*i-r;this.r=hue2rgb(n,r,e+1/3),this.g=hue2rgb(n,r,e),this.b=hue2rgb(n,r,e-1/3)}return Mi.toWorkingColorSpace(this,r),this}setStyle(e,t=Ft){function handleAlpha(t){void 0!==t&&parseFloat(t)<1&&console.warn("THREE.Color: Alpha component of "+e+" will be ignored.")}let i;if(i=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(e)){let e;const r=i[1],n=i[2];switch(r){case"rgb":case"rgba":if(e=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(n))return this.r=Math.min(255,parseInt(e[1],10))/255,this.g=Math.min(255,parseInt(e[2],10))/255,this.b=Math.min(255,parseInt(e[3],10))/255,Mi.toWorkingColorSpace(this,t),handleAlpha(e[4]),this;if(e=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(n))return this.r=Math.min(100,parseInt(e[1],10))/100,this.g=Math.min(100,parseInt(e[2],10))/100,this.b=Math.min(100,parseInt(e[3],10))/100,Mi.toWorkingColorSpace(this,t),handleAlpha(e[4]),this;break;case"hsl":case"hsla":if(e=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(n)){const i=parseFloat(e[1])/360,r=parseInt(e[2],10)/100,n=parseInt(e[3],10)/100;return handleAlpha(e[4]),this.setHSL(i,r,n,t)}}}else if(i=/^\#([A-Fa-f\d]+)$/.exec(e)){const e=i[1],r=e.length;if(3===r)return this.r=parseInt(e.charAt(0)+e.charAt(0),16)/255,this.g=parseInt(e.charAt(1)+e.charAt(1),16)/255,this.b=parseInt(e.charAt(2)+e.charAt(2),16)/255,Mi.toWorkingColorSpace(this,t),this;if(6===r)return this.r=parseInt(e.charAt(0)+e.charAt(1),16)/255,this.g=parseInt(e.charAt(2)+e.charAt(3),16)/255,this.b=parseInt(e.charAt(4)+e.charAt(5),16)/255,Mi.toWorkingColorSpace(this,t),this}return e&&e.length>0?this.setColorName(e,t):this}setColorName(e,t=Ft){const i=Si[e.toLowerCase()];return void 0!==i?this.setHex(i,t):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=SRGBToLinear(e.r),this.g=SRGBToLinear(e.g),this.b=SRGBToLinear(e.b),this}copyLinearToSRGB(e){return this.r=LinearToSRGB(e.r),this.g=LinearToSRGB(e.g),this.b=LinearToSRGB(e.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(e=Ft){return Mi.fromWorkingColorSpace(toComponents(this,wi),e),clamp(255*wi.r,0,255)<<16^clamp(255*wi.g,0,255)<<8^clamp(255*wi.b,0,255)<<0}getHexString(e=Ft){return("000000"+this.getHex(e).toString(16)).slice(-6)}getHSL(e,t=Gt){Mi.fromWorkingColorSpace(toComponents(this,wi),t);const i=wi.r,r=wi.g,n=wi.b,s=Math.max(i,r,n),a=Math.min(i,r,n);let o,l;const c=(a+s)/2;if(a===s)o=0,l=0;else{const e=s-a;switch(l=c<=.5?e/(s+a):e/(2-s-a),s){case i:o=(r-n)/e+(r<n?6:0);break;case r:o=(n-i)/e+2;break;case n:o=(i-r)/e+4}o/=6}return e.h=o,e.s=l,e.l=c,e}getRGB(e,t=Gt){return Mi.fromWorkingColorSpace(toComponents(this,wi),t),e.r=wi.r,e.g=wi.g,e.b=wi.b,e}getStyle(e=Ft){return Mi.fromWorkingColorSpace(toComponents(this,wi),e),e!==Ft?`color(${e} ${wi.r} ${wi.g} ${wi.b})`:`rgb(${255*wi.r|0},${255*wi.g|0},${255*wi.b|0})`}offsetHSL(e,t,i){return this.getHSL(Ti),Ti.h+=e,Ti.s+=t,Ti.l+=i,this.setHSL(Ti.h,Ti.s,Ti.l),this}add(e){return this.r+=e.r,this.g+=e.g,this.b+=e.b,this}addColors(e,t){return this.r=e.r+t.r,this.g=e.g+t.g,this.b=e.b+t.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,t){return this.r+=(e.r-this.r)*t,this.g+=(e.g-this.g)*t,this.b+=(e.b-this.b)*t,this}lerpColors(e,t,i){return this.r=e.r+(t.r-e.r)*i,this.g=e.g+(t.g-e.g)*i,this.b=e.b+(t.b-e.b)*i,this}lerpHSL(e,t){this.getHSL(Ti),e.getHSL(Ai);const i=lerp(Ti.h,Ai.h,t),r=lerp(Ti.s,Ai.s,t),n=lerp(Ti.l,Ai.l,t);return this.setHSL(i,r,n),this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,t=0){return this.r=e[t],this.g=e[t+1],this.b=e[t+2],this}toArray(e=[],t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e}fromBufferAttribute(e,t){return this.r=e.getX(t),this.g=e.getY(t),this.b=e.getZ(t),!0===e.normalized&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}}let Ci;Color.NAMES=Si;class ImageUtils{static getDataURL(e){if(/^data:/i.test(e.src))return e.src;if("undefined"==typeof HTMLCanvasElement)return e.src;let t;if(e instanceof HTMLCanvasElement)t=e;else{void 0===Ci&&(Ci=createElementNS("canvas")),Ci.width=e.width,Ci.height=e.height;const i=Ci.getContext("2d");e instanceof ImageData?i.putImageData(e,0,0):i.drawImage(e,0,0,e.width,e.height),t=Ci}return t.width>2048||t.height>2048?(console.warn("THREE.ImageUtils.getDataURL: Image converted to jpg for performance reasons",e),t.toDataURL("image/jpeg",.6)):t.toDataURL("image/png")}static sRGBToLinear(e){if("undefined"!==typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&e instanceof ImageBitmap){const t=createElementNS("canvas");t.width=e.width,t.height=e.height;const i=t.getContext("2d");i.drawImage(e,0,0,e.width,e.height);const r=i.getImageData(0,0,e.width,e.height),n=r.data;for(let e=0;e<n.length;e++)n[e]=255*SRGBToLinear(n[e]/255);return i.putImageData(r,0,0),t}if(e.data){const t=e.data.slice(0);for(let e=0;e<t.length;e++)t instanceof Uint8Array||t instanceof Uint8ClampedArray?t[e]=Math.floor(255*SRGBToLinear(t[e]/255)):t[e]=SRGBToLinear(t[e]);return{data:t,width:e.width,height:e.height}}return console.warn("THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied."),e}}class Source{constructor(e=null){this.isSource=!0,this.uuid=generateUUID(),this.data=e,this.version=0}set needsUpdate(e){!0===e&&this.version++}toJSON(e){const t=void 0===e||"string"===typeof e;if(!t&&void 0!==e.images[this.uuid])return e.images[this.uuid];const i={uuid:this.uuid,url:""},r=this.data;if(null!==r){let e;if(Array.isArray(r)){e=[];for(let t=0,i=r.length;t<i;t++)r[t].isDataTexture?e.push(serializeImage(r[t].image)):e.push(serializeImage(r[t]))}else e=serializeImage(r);i.url=e}return t||(e.images[this.uuid]=i),i}}function serializeImage(e){return"undefined"!==typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&e instanceof ImageBitmap?ImageUtils.getDataURL(e):e.data?{data:Array.from(e.data),width:e.width,height:e.height,type:e.data.constructor.name}:(console.warn("THREE.Texture: Unable to serialize Texture."),{})}let Ei=0;class Texture extends EventDispatcher{constructor(e=Texture.DEFAULT_IMAGE,t=Texture.DEFAULT_MAPPING,i=ue,r=ue,n=xe,s=be,a=Ne,o=Se,l=1,c=Dt){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:Ei++}),this.uuid=generateUUID(),this.name="",this.source=new Source(e),this.mipmaps=[],this.mapping=t,this.wrapS=i,this.wrapT=r,this.magFilter=n,this.minFilter=s,this.anisotropy=l,this.format=a,this.internalFormat=null,this.type=o,this.offset=new Vector2(0,0),this.repeat=new Vector2(1,1),this.center=new Vector2(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Matrix3,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.encoding=c,this.userData={},this.version=0,this.onUpdate=null,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}get image(){return this.source.data}set image(e){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.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.encoding=e.encoding,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}toJSON(e){const t=void 0===e||"string"===typeof e;if(!t&&void 0!==e.textures[this.uuid])return e.textures[this.uuid];const i={metadata:{version:4.5,type:"Texture",generator:"Texture.toJSON"},uuid:this.uuid,name:this.name,image:this.source.toJSON(e).uuid,mapping:this.mapping,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,type:this.type,encoding:this.encoding,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return"{}"!==JSON.stringify(this.userData)&&(i.userData=this.userData),t||(e.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==ne)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case he:e.x=e.x-Math.floor(e.x);break;case ue:e.x=e.x<0?0:1;break;case de:1===Math.abs(Math.floor(e.x)%2)?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x)}if(e.y<0||e.y>1)switch(this.wrapT){case he:e.y=e.y-Math.floor(e.y);break;case ue:e.y=e.y<0?0:1;break;case de:1===Math.abs(Math.floor(e.y)%2)?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y)}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){!0===e&&(this.version++,this.source.needsUpdate=!0)}}Texture.DEFAULT_IMAGE=null,Texture.DEFAULT_MAPPING=ne;class Vector4{constructor(e=0,t=0,i=0,r=1){Vector4.prototype.isVector4=!0,this.x=e,this.y=t,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,t,i,r){return this.x=e,this.y=t,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,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;break;case 3:this.w=t;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=void 0!==e.w?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,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this.w=e.w+t.w,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,this.w+=e.w*t,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,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this.w=e.w-t.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 t=this.x,i=this.y,r=this.z,n=this.w,s=e.elements;return this.x=s[0]*t+s[4]*i+s[8]*r+s[12]*n,this.y=s[1]*t+s[5]*i+s[9]*r+s[13]*n,this.z=s[2]*t+s[6]*i+s[10]*r+s[14]*n,this.w=s[3]*t+s[7]*i+s[11]*r+s[15]*n,this}divideScalar(e){return this.multiplyScalar(1/e)}setAxisAngleFromQuaternion(e){this.w=2*Math.acos(e.w);const t=Math.sqrt(1-e.w*e.w);return t<1e-4?(this.x=1,this.y=0,this.z=0):(this.x=e.x/t,this.y=e.y/t,this.z=e.z/t),this}setAxisAngleFromRotationMatrix(e){let t,i,r,n;const s=.01,a=.1,o=e.elements,l=o[0],c=o[4],h=o[8],u=o[1],d=o[5],p=o[9],m=o[2],f=o[6],g=o[10];if(Math.abs(c-u)<s&&Math.abs(h-m)<s&&Math.abs(p-f)<s){if(Math.abs(c+u)<a&&Math.abs(h+m)<a&&Math.abs(p+f)<a&&Math.abs(l+d+g-3)<a)return this.set(1,0,0,0),this;t=Math.PI;const e=(l+1)/2,o=(d+1)/2,x=(g+1)/2,y=(c+u)/4,_=(h+m)/4,b=(p+f)/4;return e>o&&e>x?e<s?(i=0,r=.707106781,n=.707106781):(i=Math.sqrt(e),r=y/i,n=_/i):o>x?o<s?(i=.707106781,r=0,n=.707106781):(r=Math.sqrt(o),i=y/r,n=b/r):x<s?(i=.707106781,r=.707106781,n=0):(n=Math.sqrt(x),i=_/n,r=b/n),this.set(i,r,n,t),this}let x=Math.sqrt((f-p)*(f-p)+(h-m)*(h-m)+(u-c)*(u-c));return Math.abs(x)<.001&&(x=1),this.x=(f-p)/x,this.y=(h-m)/x,this.z=(u-c)/x,this.w=Math.acos((l+d+g-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,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this.w=Math.max(e.w,Math.min(t.w,this.w)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this.w=Math.max(e,Math.min(t,this.w)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this.w=this.w<0?Math.ceil(this.w):Math.floor(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,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this.w+=(e.w-this.w)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this.w=e.w+(t.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,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),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 WebGLRenderTarget extends EventDispatcher{constructor(e,t,i={}){super(),this.isWebGLRenderTarget=!0,this.width=e,this.height=t,this.depth=1,this.scissor=new Vector4(0,0,e,t),this.scissorTest=!1,this.viewport=new Vector4(0,0,e,t);const r={width:e,height:t,depth:1};this.texture=new Texture(r,i.mapping,i.wrapS,i.wrapT,i.magFilter,i.minFilter,i.format,i.type,i.anisotropy,i.encoding),this.texture.isRenderTargetTexture=!0,this.texture.flipY=!1,this.texture.generateMipmaps=void 0!==i.generateMipmaps&&i.generateMipmaps,this.texture.internalFormat=void 0!==i.internalFormat?i.internalFormat:null,this.texture.minFilter=void 0!==i.minFilter?i.minFilter:xe,this.depthBuffer=void 0===i.depthBuffer||i.depthBuffer,this.stencilBuffer=void 0!==i.stencilBuffer&&i.stencilBuffer,this.depthTexture=void 0!==i.depthTexture?i.depthTexture:null,this.samples=void 0!==i.samples?i.samples:0}setSize(e,t,i=1){this.width===e&&this.height===t&&this.depth===i||(this.width=e,this.height=t,this.depth=i,this.texture.image.width=e,this.texture.image.height=t,this.texture.image.depth=i,this.dispose()),this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t)}clone(){return(new this.constructor).copy(this)}copy(e){this.width=e.width,this.height=e.height,this.depth=e.depth,this.viewport.copy(e.viewport),this.texture=e.texture.clone(),this.texture.isRenderTargetTexture=!0;const t=Object.assign({},e.texture.image);return this.texture.source=new Source(t),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,null!==e.depthTexture&&(this.depthTexture=e.depthTexture.clone()),this.samples=e.samples,this}dispose(){this.dispatchEvent({type:"dispose"})}}class DataArrayTexture extends Texture{constructor(e=null,t=1,i=1,r=1){super(null),this.isDataArrayTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=pe,this.minFilter=pe,this.wrapR=ue,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class WebGLArrayRenderTarget extends WebGLRenderTarget{constructor(e,t,i){super(e,t),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new DataArrayTexture(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class Data3DTexture extends Texture{constructor(e=null,t=1,i=1,r=1){super(null),this.isData3DTexture=!0,this.image={data:e,width:t,height:i,depth:r},this.magFilter=pe,this.minFilter=pe,this.wrapR=ue,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}class WebGL3DRenderTarget extends WebGLRenderTarget{constructor(e,t,i){super(e,t),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new Data3DTexture(null,e,t,i),this.texture.isRenderTargetTexture=!0}}class WebGLMultipleRenderTargets extends WebGLRenderTarget{constructor(e,t,i,r={}){super(e,t,r),this.isWebGLMultipleRenderTargets=!0;const n=this.texture;this.texture=[];for(let s=0;s<i;s++)this.texture[s]=n.clone(),this.texture[s].isRenderTargetTexture=!0}setSize(e,t,i=1){if(this.width!==e||this.height!==t||this.depth!==i){this.width=e,this.height=t,this.depth=i;for(let r=0,n=this.texture.length;r<n;r++)this.texture[r].image.width=e,this.texture[r].image.height=t,this.texture[r].image.depth=i;this.dispose()}return this.viewport.set(0,0,e,t),this.scissor.set(0,0,e,t),this}copy(e){this.dispose(),this.width=e.width,this.height=e.height,this.depth=e.depth,this.viewport.set(0,0,this.width,this.height),this.scissor.set(0,0,this.width,this.height),this.depthBuffer=e.depthBuffer,this.stencilBuffer=e.stencilBuffer,null!==e.depthTexture&&(this.depthTexture=e.depthTexture.clone()),this.texture.length=0;for(let t=0,i=e.texture.length;t<i;t++)this.texture[t]=e.texture[t].clone(),this.texture[t].isRenderTargetTexture=!0;return this}}class Quaternion{constructor(e=0,t=0,i=0,r=1){this.isQuaternion=!0,this._x=e,this._y=t,this._z=i,this._w=r}static slerpFlat(e,t,i,r,n,s,a){let o=i[r+0],l=i[r+1],c=i[r+2],h=i[r+3];const u=n[s+0],d=n[s+1],p=n[s+2],m=n[s+3];if(0===a)return e[t+0]=o,e[t+1]=l,e[t+2]=c,void(e[t+3]=h);if(1===a)return e[t+0]=u,e[t+1]=d,e[t+2]=p,void(e[t+3]=m);if(h!==m||o!==u||l!==d||c!==p){let e=1-a;const t=o*u+l*d+c*p+h*m,i=t>=0?1:-1,r=1-t*t;if(r>Number.EPSILON){const n=Math.sqrt(r),s=Math.atan2(n,t*i);e=Math.sin(e*s)/n,a=Math.sin(a*s)/n}const n=a*i;if(o=o*e+u*n,l=l*e+d*n,c=c*e+p*n,h=h*e+m*n,e===1-a){const e=1/Math.sqrt(o*o+l*l+c*c+h*h);o*=e,l*=e,c*=e,h*=e}}e[t]=o,e[t+1]=l,e[t+2]=c,e[t+3]=h}static multiplyQuaternionsFlat(e,t,i,r,n,s){const a=i[r],o=i[r+1],l=i[r+2],c=i[r+3],h=n[s],u=n[s+1],d=n[s+2],p=n[s+3];return e[t]=a*p+c*h+o*d-l*u,e[t+1]=o*p+c*u+l*h-a*d,e[t+2]=l*p+c*d+a*u-o*h,e[t+3]=c*p-a*h-o*u-l*d,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,t,i,r){return this._x=e,this._y=t,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,t){if(!e||!e.isEuler)throw new Error("THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.");const i=e._x,r=e._y,n=e._z,s=e._order,a=Math.cos,o=Math.sin,l=a(i/2),c=a(r/2),h=a(n/2),u=o(i/2),d=o(r/2),p=o(n/2);switch(s){case"XYZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"YXZ":this._x=u*c*h+l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"ZXY":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h-u*d*p;break;case"ZYX":this._x=u*c*h-l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h+u*d*p;break;case"YZX":this._x=u*c*h+l*d*p,this._y=l*d*h+u*c*p,this._z=l*c*p-u*d*h,this._w=l*c*h-u*d*p;break;case"XZY":this._x=u*c*h-l*d*p,this._y=l*d*h-u*c*p,this._z=l*c*p+u*d*h,this._w=l*c*h+u*d*p;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+s)}return!1!==t&&this._onChangeCallback(),this}setFromAxisAngle(e,t){const i=t/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 t=e.elements,i=t[0],r=t[4],n=t[8],s=t[1],a=t[5],o=t[9],l=t[2],c=t[6],h=t[10],u=i+a+h;if(u>0){const e=.5/Math.sqrt(u+1);this._w=.25/e,this._x=(c-o)*e,this._y=(n-l)*e,this._z=(s-r)*e}else if(i>a&&i>h){const e=2*Math.sqrt(1+i-a-h);this._w=(c-o)/e,this._x=.25*e,this._y=(r+s)/e,this._z=(n+l)/e}else if(a>h){const e=2*Math.sqrt(1+a-i-h);this._w=(n-l)/e,this._x=(r+s)/e,this._y=.25*e,this._z=(o+c)/e}else{const e=2*Math.sqrt(1+h-i-a);this._w=(s-r)/e,this._x=(n+l)/e,this._y=(o+c)/e,this._z=.25*e}return this._onChangeCallback(),this}setFromUnitVectors(e,t){let i=e.dot(t)+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*t.z-e.z*t.y,this._y=e.z*t.x-e.x*t.z,this._z=e.x*t.y-e.y*t.x,this._w=i),this.normalize()}angleTo(e){return 2*Math.acos(Math.abs(clamp(this.dot(e),-1,1)))}rotateTowards(e,t){const i=this.angleTo(e);if(0===i)return this;const r=Math.min(1,t/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 0===e?(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,t){const i=e._x,r=e._y,n=e._z,s=e._w,a=t._x,o=t._y,l=t._z,c=t._w;return this._x=i*c+s*a+r*l-n*o,this._y=r*c+s*o+n*a-i*l,this._z=n*c+s*l+i*o-r*a,this._w=s*c-i*a-r*o-n*l,this._onChangeCallback(),this}slerp(e,t){if(0===t)return this;if(1===t)return this.copy(e);const i=this._x,r=this._y,n=this._z,s=this._w;let a=s*e._w+i*e._x+r*e._y+n*e._z;if(a<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,a=-a):this.copy(e),a>=1)return this._w=s,this._x=i,this._y=r,this._z=n,this;const o=1-a*a;if(o<=Number.EPSILON){const e=1-t;return this._w=e*s+t*this._w,this._x=e*i+t*this._x,this._y=e*r+t*this._y,this._z=e*n+t*this._z,this.normalize(),this._onChangeCallback(),this}const l=Math.sqrt(o),c=Math.atan2(l,a),h=Math.sin((1-t)*c)/l,u=Math.sin(t*c)/l;return this._w=s*h+this._w*u,this._x=i*h+this._x*u,this._y=r*h+this._y*u,this._z=n*h+this._z*u,this._onChangeCallback(),this}slerpQuaternions(e,t,i){return this.copy(e).slerp(t,i)}random(){const e=Math.random(),t=Math.sqrt(1-e),i=Math.sqrt(e),r=2*Math.PI*Math.random(),n=2*Math.PI*Math.random();return this.set(t*Math.cos(r),i*Math.sin(n),i*Math.cos(n),t*Math.sin(r))}equals(e){return e._x===this._x&&e._y===this._y&&e._z===this._z&&e._w===this._w}fromArray(e,t=0){return this._x=e[t],this._y=e[t+1],this._z=e[t+2],this._w=e[t+3],this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}}class Vector3{constructor(e=0,t=0,i=0){Vector3.prototype.isVector3=!0,this.x=e,this.y=t,this.z=i}set(e,t,i){return void 0===i&&(i=this.z),this.x=e,this.y=t,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,t){switch(e){case 0:this.x=t;break;case 1:this.y=t;break;case 2:this.z=t;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,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this.z+=e.z*t,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,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.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,t){return this.x=e.x*t.x,this.y=e.y*t.y,this.z=e.z*t.z,this}applyEuler(e){return this.applyQuaternion(Pi.setFromEuler(e))}applyAxisAngle(e,t){return this.applyQuaternion(Pi.setFromAxisAngle(e,t))}applyMatrix3(e){const t=this.x,i=this.y,r=this.z,n=e.elements;return this.x=n[0]*t+n[3]*i+n[6]*r,this.y=n[1]*t+n[4]*i+n[7]*r,this.z=n[2]*t+n[5]*i+n[8]*r,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){const t=this.x,i=this.y,r=this.z,n=e.elements,s=1/(n[3]*t+n[7]*i+n[11]*r+n[15]);return this.x=(n[0]*t+n[4]*i+n[8]*r+n[12])*s,this.y=(n[1]*t+n[5]*i+n[9]*r+n[13])*s,this.z=(n[2]*t+n[6]*i+n[10]*r+n[14])*s,this}applyQuaternion(e){const t=this.x,i=this.y,r=this.z,n=e.x,s=e.y,a=e.z,o=e.w,l=o*t+s*r-a*i,c=o*i+a*t-n*r,h=o*r+n*i-s*t,u=-n*t-s*i-a*r;return this.x=l*o+u*-n+c*-a-h*-s,this.y=c*o+u*-s+h*-n-l*-a,this.z=h*o+u*-a+l*-s-c*-n,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}unproject(e){return this.applyMatrix4(e.projectionMatrixInverse).applyMatrix4(e.matrixWorld)}transformDirection(e){const t=this.x,i=this.y,r=this.z,n=e.elements;return this.x=n[0]*t+n[4]*i+n[8]*r,this.y=n[1]*t+n[5]*i+n[9]*r,this.z=n[2]*t+n[6]*i+n[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,t){return this.x=Math.max(e.x,Math.min(t.x,this.x)),this.y=Math.max(e.y,Math.min(t.y,this.y)),this.z=Math.max(e.z,Math.min(t.z,this.z)),this}clampScalar(e,t){return this.x=Math.max(e,Math.min(t,this.x)),this.y=Math.max(e,Math.min(t,this.y)),this.z=Math.max(e,Math.min(t,this.z)),this}clampLength(e,t){const i=this.length();return this.divideScalar(i||1).multiplyScalar(Math.max(e,Math.min(t,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=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(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,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}lerpVectors(e,t,i){return this.x=e.x+(t.x-e.x)*i,this.y=e.y+(t.y-e.y)*i,this.z=e.z+(t.z-e.z)*i,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){const i=e.x,r=e.y,n=e.z,s=t.x,a=t.y,o=t.z;return this.x=r*o-n*a,this.y=n*s-i*o,this.z=i*a-r*s,this}projectOnVector(e){const t=e.lengthSq();if(0===t)return this.set(0,0,0);const i=e.dot(this)/t;return this.copy(e).multiplyScalar(i)}projectOnPlane(e){return Li.copy(this).projectOnVector(e),this.sub(Li)}reflect(e){return this.sub(Li.copy(e).multiplyScalar(2*this.dot(e)))}angleTo(e){const t=Math.sqrt(this.lengthSq()*e.lengthSq());if(0===t)return Math.PI/2;const i=this.dot(e)/t;return Math.acos(clamp(i,-1,1))}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){const t=this.x-e.x,i=this.y-e.y,r=this.z-e.z;return t*t+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,t,i){const r=Math.sin(t)*e;return this.x=r*Math.sin(i),this.y=Math.cos(t)*e,this.z=r*Math.cos(i),this}setFromCylindrical(e){return this.setFromCylindricalCoords(e.radius,e.theta,e.y)}setFromCylindricalCoords(e,t,i){return this.x=e*Math.sin(t),this.y=i,this.z=e*Math.cos(t),this}setFromMatrixPosition(e){const t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixScale(e){const t=this.setFromMatrixColumn(e,0).length(),i=this.setFromMatrixColumn(e,1).length(),r=this.setFromMatrixColumn(e,2).length();return this.x=t,this.y=i,this.z=r,this}setFromMatrixColumn(e,t){return this.fromArray(e.elements,4*t)}setFromMatrix3Column(e,t){return this.fromArray(e.elements,3*t)}setFromEuler(e){return this.x=e._x,this.y=e._y,this.z=e._z,this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this}toArray(e=[],t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){const e=2*(Math.random()-.5),t=Math.random()*Math.PI*2,i=Math.sqrt(1-e**2);return this.x=i*Math.cos(t),this.y=i*Math.sin(t),this.z=e,this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}}const Li=new Vector3,Pi=new Quaternion;class Box3{constructor(e=new Vector3(1/0,1/0,1/0),t=new Vector3(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromArray(e){let t=1/0,i=1/0,r=1/0,n=-1/0,s=-1/0,a=-1/0;for(let o=0,l=e.length;o<l;o+=3){const l=e[o],c=e[o+1],h=e[o+2];l<t&&(t=l),c<i&&(i=c),h<r&&(r=h),l>n&&(n=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(t,i,r),this.max.set(n,s,a),this}setFromBufferAttribute(e){let t=1/0,i=1/0,r=1/0,n=-1/0,s=-1/0,a=-1/0;for(let o=0,l=e.count;o<l;o++){const l=e.getX(o),c=e.getY(o),h=e.getZ(o);l<t&&(t=l),c<i&&(i=c),h<r&&(r=h),l>n&&(n=l),c>s&&(s=c),h>a&&(a=h)}return this.min.set(t,i,r),this.max.set(n,s,a),this}setFromPoints(e){this.makeEmpty();for(let t=0,i=e.length;t<i;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){const i=Di.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(i),this.max.copy(e).add(i),this}setFromObject(e,t=!1){return this.makeEmpty(),this.expandByObject(e,t)}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,t=!1){e.updateWorldMatrix(!1,!1);const i=e.geometry;if(void 0!==i)if(t&&void 0!=i.attributes&&void 0!==i.attributes.position){const t=i.attributes.position;for(let i=0,r=t.count;i<r;i++)Di.fromBufferAttribute(t,i).applyMatrix4(e.matrixWorld),this.expandByPoint(Di)}else null===i.boundingBox&&i.computeBoundingBox(),Ii.copy(i.boundingBox),Ii.applyMatrix4(e.matrixWorld),this.union(Ii);const r=e.children;for(let n=0,s=r.length;n<s;n++)this.expandByObject(r[n],t);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,t){return t.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,Di),Di.distanceToSquared(e.center)<=e.radius*e.radius}intersectsPlane(e){let t,i;return e.normal.x>0?(t=e.normal.x*this.min.x,i=e.normal.x*this.max.x):(t=e.normal.x*this.max.x,i=e.normal.x*this.min.x),e.normal.y>0?(t+=e.normal.y*this.min.y,i+=e.normal.y*this.max.y):(t+=e.normal.y*this.max.y,i+=e.normal.y*this.min.y),e.normal.z>0?(t+=e.normal.z*this.min.z,i+=e.normal.z*this.max.z):(t+=e.normal.z*this.max.z,i+=e.normal.z*this.min.z),t<=-e.constant&&i>=-e.constant}intersectsTriangle(e){if(this.isEmpty())return!1;this.getCenter(Gi),Ui.subVectors(this.max,Gi),Bi.subVectors(e.a,Gi),Vi.subVectors(e.b,Gi),Ni.subVectors(e.c,Gi),Oi.subVectors(Vi,Bi),zi.subVectors(Ni,Vi),Fi.subVectors(Bi,Ni);let t=[0,-Oi.z,Oi.y,0,-zi.z,zi.y,0,-Fi.z,Fi.y,Oi.z,0,-Oi.x,zi.z,0,-zi.x,Fi.z,0,-Fi.x,-Oi.y,Oi.x,0,-zi.y,zi.x,0,-Fi.y,Fi.x,0];return!!satForAxes(t,Bi,Vi,Ni,Ui)&&(t=[1,0,0,0,1,0,0,0,1],!!satForAxes(t,Bi,Vi,Ni,Ui)&&(ki.crossVectors(Oi,zi),t=[ki.x,ki.y,ki.z],satForAxes(t,Bi,Vi,Ni,Ui)))}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return Di.copy(e).clamp(this.min,this.max).sub(e).length()}getBoundingSphere(e){return this.getCenter(e.center),e.radius=.5*this.getSize(Di).length(),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()||(Ri[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),Ri[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),Ri[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),Ri[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),Ri[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),Ri[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),Ri[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),Ri[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(Ri)),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 Ri=[new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3,new Vector3],Di=new Vector3,Ii=new Box3,Bi=new Vector3,Vi=new Vector3,Ni=new Vector3,Oi=new Vector3,zi=new Vector3,Fi=new Vector3,Gi=new Vector3,Ui=new Vector3,ki=new Vector3,Wi=new Vector3;function satForAxes(e,t,i,r,n){for(let s=0,a=e.length-3;s<=a;s+=3){Wi.fromArray(e,s);const a=n.x*Math.abs(Wi.x)+n.y*Math.abs(Wi.y)+n.z*Math.abs(Wi.z),o=t.dot(Wi),l=i.dot(Wi),c=r.dot(Wi);if(Math.max(-Math.max(o,l,c),Math.min(o,l,c))>a)return!1}return!0}const Hi=new Box3,ji=new Vector3,qi=new Vector3,Xi=new Vector3;class Sphere{constructor(e=new Vector3,t=-1){this.center=e,this.radius=t}set(e,t){return this.center.copy(e),this.radius=t,this}setFromPoints(e,t){const i=this.center;void 0!==t?i.copy(t):Hi.setFromPoints(e).getCenter(i);let r=0;for(let n=0,s=e.length;n<s;n++)r=Math.max(r,i.distanceToSquared(e[n]));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 t=this.radius+e.radius;return e.center.distanceToSquared(this.center)<=t*t}intersectsBox(e){return e.intersectsSphere(this)}intersectsPlane(e){return Math.abs(e.distanceToPoint(this.center))<=this.radius}clampPoint(e,t){const i=this.center.distanceToSquared(e);return t.copy(e),i>this.radius*this.radius&&(t.sub(this.center).normalize(),t.multiplyScalar(this.radius).add(this.center)),t}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){Xi.subVectors(e,this.center);const t=Xi.lengthSq();if(t>this.radius*this.radius){const e=Math.sqrt(t),i=.5*(e-this.radius);this.center.add(Xi.multiplyScalar(i/e)),this.radius+=i}return this}union(e){return!0===this.center.equals(e.center)?qi.set(0,0,1).multiplyScalar(e.radius):qi.subVectors(e.center,this.center).normalize().multiplyScalar(e.radius),this.expandByPoint(ji.copy(e.center).add(qi)),this.expandByPoint(ji.copy(e.center).sub(qi)),this}equals(e){return e.center.equals(this.center)&&e.radius===this.radius}clone(){return(new this.constructor).copy(this)}}const Yi=new Vector3,Zi=new Vector3,Ji=new Vector3,Ki=new Vector3,Qi=new Vector3,$i=new Vector3,er=new Vector3;class Ray{constructor(e=new Vector3,t=new Vector3(0,0,-1)){this.origin=e,this.direction=t}set(e,t){return this.origin.copy(e),this.direction.copy(t),this}copy(e){return this.origin.copy(e.origin),this.direction.copy(e.direction),this}at(e,t){return t.copy(this.direction).multiplyScalar(e).add(this.origin)}lookAt(e){return this.direction.copy(e).sub(this.origin).normalize(),this}recast(e){return this.origin.copy(this.at(e,Yi)),this}closestPointToPoint(e,t){t.subVectors(e,this.origin);const i=t.dot(this.direction);return i<0?t.copy(this.origin):t.copy(this.direction).multiplyScalar(i).add(this.origin)}distanceToPoint(e){return Math.sqrt(this.distanceSqToPoint(e))}distanceSqToPoint(e){const t=Yi.subVectors(e,this.origin).dot(this.direction);return t<0?this.origin.distanceToSquared(e):(Yi.copy(this.direction).multiplyScalar(t).add(this.origin),Yi.distanceToSquared(e))}distanceSqToSegment(e,t,i,r){Zi.copy(e).add(t).multiplyScalar(.5),Ji.copy(t).sub(e).normalize(),Ki.copy(this.origin).sub(Zi);const n=.5*e.distanceTo(t),s=-this.direction.dot(Ji),a=Ki.dot(this.direction),o=-Ki.dot(Ji),l=Ki.lengthSq(),c=Math.abs(1-s*s);let h,u,d,p;if(c>0)if(h=s*o-a,u=s*a-o,p=n*c,h>=0)if(u>=-p)if(u<=p){const e=1/c;h*=e,u*=e,d=h*(h+s*u+2*a)+u*(s*h+u+2*o)+l}else u=n,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u=-n,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;else u<=-p?(h=Math.max(0,-(-s*n+a)),u=h>0?-n:Math.min(Math.max(-n,-o),n),d=-h*h+u*(u+2*o)+l):u<=p?(h=0,u=Math.min(Math.max(-n,-o),n),d=u*(u+2*o)+l):(h=Math.max(0,-(s*n+a)),u=h>0?n:Math.min(Math.max(-n,-o),n),d=-h*h+u*(u+2*o)+l);else u=s>0?-n:n,h=Math.max(0,-(s*u+a)),d=-h*h+u*(u+2*o)+l;return i&&i.copy(this.direction).multiplyScalar(h).add(this.origin),r&&r.copy(Ji).multiplyScalar(u).add(Zi),d}intersectSphere(e,t){Yi.subVectors(e.center,this.origin);const i=Yi.dot(this.direction),r=Yi.dot(Yi)-i*i,n=e.radius*e.radius;if(r>n)return null;const s=Math.sqrt(n-r),a=i-s,o=i+s;return a<0&&o<0?null:a<0?this.at(o,t):this.at(a,t)}intersectsSphere(e){return this.distanceSqToPoint(e.center)<=e.radius*e.radius}distanceToPlane(e){const t=e.normal.dot(this.direction);if(0===t)return 0===e.distanceToPoint(this.origin)?0:null;const i=-(this.origin.dot(e.normal)+e.constant)/t;return i>=0?i:null}intersectPlane(e,t){const i=this.distanceToPlane(e);return null===i?null:this.at(i,t)}intersectsPlane(e){const t=e.distanceToPoint(this.origin);if(0===t)return!0;return e.normal.dot(this.direction)*t<0}intersectBox(e,t){let i,r,n,s,a,o;const l=1/this.direction.x,c=1/this.direction.y,h=1/this.direction.z,u=this.origin;return l>=0?(i=(e.min.x-u.x)*l,r=(e.max.x-u.x)*l):(i=(e.max.x-u.x)*l,r=(e.min.x-u.x)*l),c>=0?(n=(e.min.y-u.y)*c,s=(e.max.y-u.y)*c):(n=(e.max.y-u.y)*c,s=(e.min.y-u.y)*c),i>s||n>r?null:((n>i||i!==i)&&(i=n),(s<r||r!==r)&&(r=s),h>=0?(a=(e.min.z-u.z)*h,o=(e.max.z-u.z)*h):(a=(e.max.z-u.z)*h,o=(e.min.z-u.z)*h),i>o||a>r?null:((a>i||i!==i)&&(i=a),(o<r||r!==r)&&(r=o),r<0?null:this.at(i>=0?i:r,t)))}intersectsBox(e){return null!==this.intersectBox(e,Yi)}intersectTriangle(e,t,i,r,n){Qi.subVectors(t,e),$i.subVectors(i,e),er.crossVectors(Qi,$i);let s,a=this.direction.dot(er);if(a>0){if(r)return null;s=1}else{if(!(a<0))return null;s=-1,a=-a}Ki.subVectors(this.origin,e);const o=s*this.direction.dot($i.crossVectors(Ki,$i));if(o<0)return null;const l=s*this.direction.dot(Qi.cross(Ki));if(l<0)return null;if(o+l>a)return null;const c=-s*Ki.dot(er);return c<0?null:this.at(c/a,n)}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 Matrix4{constructor(){Matrix4.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}set(e,t,i,r,n,s,a,o,l,c,h,u,d,p,m,f){const g=this.elements;return g[0]=e,g[4]=t,g[8]=i,g[12]=r,g[1]=n,g[5]=s,g[9]=a,g[13]=o,g[2]=l,g[6]=c,g[10]=h,g[14]=u,g[3]=d,g[7]=p,g[11]=m,g[15]=f,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 Matrix4).fromArray(this.elements)}copy(e){const t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}copyPosition(e){const t=this.elements,i=e.elements;return t[12]=i[12],t[13]=i[13],t[14]=i[14],this}setFromMatrix3(e){const t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractBasis(e,t,i){return e.setFromMatrixColumn(this,0),t.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(e,t,i){return this.set(e.x,t.x,i.x,0,e.y,t.y,i.y,0,e.z,t.z,i.z,0,0,0,0,1),this}extractRotation(e){const t=this.elements,i=e.elements,r=1/tr.setFromMatrixColumn(e,0).length(),n=1/tr.setFromMatrixColumn(e,1).length(),s=1/tr.setFromMatrixColumn(e,2).length();return t[0]=i[0]*r,t[1]=i[1]*r,t[2]=i[2]*r,t[3]=0,t[4]=i[4]*n,t[5]=i[5]*n,t[6]=i[6]*n,t[7]=0,t[8]=i[8]*s,t[9]=i[9]*s,t[10]=i[10]*s,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){const t=this.elements,i=e.x,r=e.y,n=e.z,s=Math.cos(i),a=Math.sin(i),o=Math.cos(r),l=Math.sin(r),c=Math.cos(n),h=Math.sin(n);if("XYZ"===e.order){const e=s*c,i=s*h,r=a*c,n=a*h;t[0]=o*c,t[4]=-o*h,t[8]=l,t[1]=i+r*l,t[5]=e-n*l,t[9]=-a*o,t[2]=n-e*l,t[6]=r+i*l,t[10]=s*o}else if("YXZ"===e.order){const e=o*c,i=o*h,r=l*c,n=l*h;t[0]=e+n*a,t[4]=r*a-i,t[8]=s*l,t[1]=s*h,t[5]=s*c,t[9]=-a,t[2]=i*a-r,t[6]=n+e*a,t[10]=s*o}else if("ZXY"===e.order){const e=o*c,i=o*h,r=l*c,n=l*h;t[0]=e-n*a,t[4]=-s*h,t[8]=r+i*a,t[1]=i+r*a,t[5]=s*c,t[9]=n-e*a,t[2]=-s*l,t[6]=a,t[10]=s*o}else if("ZYX"===e.order){const e=s*c,i=s*h,r=a*c,n=a*h;t[0]=o*c,t[4]=r*l-i,t[8]=e*l+n,t[1]=o*h,t[5]=n*l+e,t[9]=i*l-r,t[2]=-l,t[6]=a*o,t[10]=s*o}else if("YZX"===e.order){const e=s*o,i=s*l,r=a*o,n=a*l;t[0]=o*c,t[4]=n-e*h,t[8]=r*h+i,t[1]=h,t[5]=s*c,t[9]=-a*c,t[2]=-l*c,t[6]=i*h+r,t[10]=e-n*h}else if("XZY"===e.order){const e=s*o,i=s*l,r=a*o,n=a*l;t[0]=o*c,t[4]=-h,t[8]=l*c,t[1]=e*h+n,t[5]=s*c,t[9]=i*h-r,t[2]=r*h-i,t[6]=a*c,t[10]=n*h+e}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(rr,e,nr)}lookAt(e,t,i){const r=this.elements;return or.subVectors(e,t),0===or.lengthSq()&&(or.z=1),or.normalize(),sr.crossVectors(i,or),0===sr.lengthSq()&&(1===Math.abs(i.z)?or.x+=1e-4:or.z+=1e-4,or.normalize(),sr.crossVectors(i,or)),sr.normalize(),ar.crossVectors(or,sr),r[0]=sr.x,r[4]=ar.x,r[8]=or.x,r[1]=sr.y,r[5]=ar.y,r[9]=or.y,r[2]=sr.z,r[6]=ar.z,r[10]=or.z,this}multiply(e){return this.multiplyMatrices(this,e)}premultiply(e){return this.multiplyMatrices(e,this)}multiplyMatrices(e,t){const i=e.elements,r=t.elements,n=this.elements,s=i[0],a=i[4],o=i[8],l=i[12],c=i[1],h=i[5],u=i[9],d=i[13],p=i[2],m=i[6],f=i[10],g=i[14],x=i[3],y=i[7],_=i[11],b=i[15],M=r[0],S=r[4],w=r[8],T=r[12],A=r[1],C=r[5],E=r[9],L=r[13],P=r[2],R=r[6],D=r[10],I=r[14],B=r[3],V=r[7],N=r[11],O=r[15];return n[0]=s*M+a*A+o*P+l*B,n[4]=s*S+a*C+o*R+l*V,n[8]=s*w+a*E+o*D+l*N,n[12]=s*T+a*L+o*I+l*O,n[1]=c*M+h*A+u*P+d*B,n[5]=c*S+h*C+u*R+d*V,n[9]=c*w+h*E+u*D+d*N,n[13]=c*T+h*L+u*I+d*O,n[2]=p*M+m*A+f*P+g*B,n[6]=p*S+m*C+f*R+g*V,n[10]=p*w+m*E+f*D+g*N,n[14]=p*T+m*L+f*I+g*O,n[3]=x*M+y*A+_*P+b*B,n[7]=x*S+y*C+_*R+b*V,n[11]=x*w+y*E+_*D+b*N,n[15]=x*T+y*L+_*I+b*O,this}multiplyScalar(e){const t=this.elements;return t[0]*=e,t[4]*=e,t[8]*=e,t[12]*=e,t[1]*=e,t[5]*=e,t[9]*=e,t[13]*=e,t[2]*=e,t[6]*=e,t[10]*=e,t[14]*=e,t[3]*=e,t[7]*=e,t[11]*=e,t[15]*=e,this}determinant(){const e=this.elements,t=e[0],i=e[4],r=e[8],n=e[12],s=e[1],a=e[5],o=e[9],l=e[13],c=e[2],h=e[6],u=e[10],d=e[14];return e[3]*(+n*o*h-r*l*h-n*a*u+i*l*u+r*a*d-i*o*d)+e[7]*(+t*o*d-t*l*u+n*s*u-r*s*d+r*l*c-n*o*c)+e[11]*(+t*l*h-t*a*d-n*s*h+i*s*d+n*a*c-i*l*c)+e[15]*(-r*a*c-t*o*h+t*a*u+r*s*h-i*s*u+i*o*c)}transpose(){const e=this.elements;let t;return t=e[1],e[1]=e[4],e[4]=t,t=e[2],e[2]=e[8],e[8]=t,t=e[6],e[6]=e[9],e[9]=t,t=e[3],e[3]=e[12],e[12]=t,t=e[7],e[7]=e[13],e[13]=t,t=e[11],e[11]=e[14],e[14]=t,this}setPosition(e,t,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]=t,r[14]=i),this}invert(){const e=this.elements,t=e[0],i=e[1],r=e[2],n=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],h=e[9],u=e[10],d=e[11],p=e[12],m=e[13],f=e[14],g=e[15],x=h*f*l-m*u*l+m*o*d-a*f*d-h*o*g+a*u*g,y=p*u*l-c*f*l-p*o*d+s*f*d+c*o*g-s*u*g,_=c*m*l-p*h*l+p*a*d-s*m*d-c*a*g+s*h*g,b=p*h*o-c*m*o-p*a*u+s*m*u+c*a*f-s*h*f,M=t*x+i*y+r*_+n*b;if(0===M)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);const S=1/M;return e[0]=x*S,e[1]=(m*u*n-h*f*n-m*r*d+i*f*d+h*r*g-i*u*g)*S,e[2]=(a*f*n-m*o*n+m*r*l-i*f*l-a*r*g+i*o*g)*S,e[3]=(h*o*n-a*u*n-h*r*l+i*u*l+a*r*d-i*o*d)*S,e[4]=y*S,e[5]=(c*f*n-p*u*n+p*r*d-t*f*d-c*r*g+t*u*g)*S,e[6]=(p*o*n-s*f*n-p*r*l+t*f*l+s*r*g-t*o*g)*S,e[7]=(s*u*n-c*o*n+c*r*l-t*u*l-s*r*d+t*o*d)*S,e[8]=_*S,e[9]=(p*h*n-c*m*n-p*i*d+t*m*d+c*i*g-t*h*g)*S,e[10]=(s*m*n-p*a*n+p*i*l-t*m*l-s*i*g+t*a*g)*S,e[11]=(c*a*n-s*h*n-c*i*l+t*h*l+s*i*d-t*a*d)*S,e[12]=b*S,e[13]=(c*m*r-p*h*r+p*i*u-t*m*u-c*i*f+t*h*f)*S,e[14]=(p*a*r-s*m*r-p*i*o+t*m*o+s*i*f-t*a*f)*S,e[15]=(s*h*r-c*a*r+c*i*o-t*h*o-s*i*u+t*a*u)*S,this}scale(e){const t=this.elements,i=e.x,r=e.y,n=e.z;return t[0]*=i,t[4]*=r,t[8]*=n,t[1]*=i,t[5]*=r,t[9]*=n,t[2]*=i,t[6]*=r,t[10]*=n,t[3]*=i,t[7]*=r,t[11]*=n,this}getMaxScaleOnAxis(){const e=this.elements,t=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(t,i,r))}makeTranslation(e,t,i){return this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){const t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationY(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,0,i,0,0,1,0,0,-i,0,t,0,0,0,0,1),this}makeRotationZ(e){const t=Math.cos(e),i=Math.sin(e);return this.set(t,-i,0,0,i,t,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(e,t){const i=Math.cos(t),r=Math.sin(t),n=1-i,s=e.x,a=e.y,o=e.z,l=n*s,c=n*a;return this.set(l*s+i,l*a-r*o,l*o+r*a,0,l*a+r*o,c*a+i,c*o-r*s,0,l*o-r*a,c*o+r*s,n*o*o+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}makeShear(e,t,i,r,n,s){return this.set(1,i,n,0,e,1,s,0,t,r,1,0,0,0,0,1),this}compose(e,t,i){const r=this.elements,n=t._x,s=t._y,a=t._z,o=t._w,l=n+n,c=s+s,h=a+a,u=n*l,d=n*c,p=n*h,m=s*c,f=s*h,g=a*h,x=o*l,y=o*c,_=o*h,b=i.x,M=i.y,S=i.z;return r[0]=(1-(m+g))*b,r[1]=(d+_)*b,r[2]=(p-y)*b,r[3]=0,r[4]=(d-_)*M,r[5]=(1-(u+g))*M,r[6]=(f+x)*M,r[7]=0,r[8]=(p+y)*S,r[9]=(f-x)*S,r[10]=(1-(u+m))*S,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,this}decompose(e,t,i){const r=this.elements;let n=tr.set(r[0],r[1],r[2]).length();const s=tr.set(r[4],r[5],r[6]).length(),a=tr.set(r[8],r[9],r[10]).length();this.determinant()<0&&(n=-n),e.x=r[12],e.y=r[13],e.z=r[14],ir.copy(this);const o=1/n,l=1/s,c=1/a;return ir.elements[0]*=o,ir.elements[1]*=o,ir.elements[2]*=o,ir.elements[4]*=l,ir.elements[5]*=l,ir.elements[6]*=l,ir.elements[8]*=c,ir.elements[9]*=c,ir.elements[10]*=c,t.setFromRotationMatrix(ir),i.x=n,i.y=s,i.z=a,this}makePerspective(e,t,i,r,n,s){const a=this.elements,o=2*n/(t-e),l=2*n/(i-r),c=(t+e)/(t-e),h=(i+r)/(i-r),u=-(s+n)/(s-n),d=-2*s*n/(s-n);return a[0]=o,a[4]=0,a[8]=c,a[12]=0,a[1]=0,a[5]=l,a[9]=h,a[13]=0,a[2]=0,a[6]=0,a[10]=u,a[14]=d,a[3]=0,a[7]=0,a[11]=-1,a[15]=0,this}makeOrthographic(e,t,i,r,n,s){const a=this.elements,o=1/(t-e),l=1/(i-r),c=1/(s-n),h=(t+e)*o,u=(i+r)*l,d=(s+n)*c;return a[0]=2*o,a[4]=0,a[8]=0,a[12]=-h,a[1]=0,a[5]=2*l,a[9]=0,a[13]=-u,a[2]=0,a[6]=0,a[10]=-2*c,a[14]=-d,a[3]=0,a[7]=0,a[11]=0,a[15]=1,this}equals(e){const t=this.elements,i=e.elements;for(let r=0;r<16;r++)if(t[r]!==i[r])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e=[],t=0){const i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}}const tr=new Vector3,ir=new Matrix4,rr=new Vector3(0,0,0),nr=new Vector3(1,1,1),sr=new Vector3,ar=new Vector3,or=new Vector3,lr=new Matrix4,cr=new Quaternion;class Euler{constructor(e=0,t=0,i=0,r=Euler.DefaultOrder){this.isEuler=!0,this._x=e,this._y=t,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,t,i,r=this._order){return this._x=e,this._y=t,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,t=this._order,i=!0){const r=e.elements,n=r[0],s=r[4],a=r[8],o=r[1],l=r[5],c=r[9],h=r[2],u=r[6],d=r[10];switch(t){case"XYZ":this._y=Math.asin(clamp(a,-1,1)),Math.abs(a)<.9999999?(this._x=Math.atan2(-c,d),this._z=Math.atan2(-s,n)):(this._x=Math.atan2(u,l),this._z=0);break;case"YXZ":this._x=Math.asin(-clamp(c,-1,1)),Math.abs(c)<.9999999?(this._y=Math.atan2(a,d),this._z=Math.atan2(o,l)):(this._y=Math.atan2(-h,n),this._z=0);break;case"ZXY":this._x=Math.asin(clamp(u,-1,1)),Math.abs(u)<.9999999?(this._y=Math.atan2(-h,d),this._z=Math.atan2(-s,l)):(this._y=0,this._z=Math.atan2(o,n));break;case"ZYX":this._y=Math.asin(-clamp(h,-1,1)),Math.abs(h)<.9999999?(this._x=Math.atan2(u,d),this._z=Math.atan2(o,n)):(this._x=0,this._z=Math.atan2(-s,l));break;case"YZX":this._z=Math.asin(clamp(o,-1,1)),Math.abs(o)<.9999999?(this._x=Math.atan2(-c,l),this._y=Math.atan2(-h,n)):(this._x=0,this._y=Math.atan2(a,d));break;case"XZY":this._z=Math.asin(-clamp(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(u,l),this._y=Math.atan2(a,n)):(this._x=Math.atan2(-c,d),this._y=0);break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,!0===i&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return lr.makeRotationFromQuaternion(e),this.setFromRotationMatrix(lr,t,i)}setFromVector3(e,t=this._order){return this.set(e.x,e.y,e.z,t)}reorder(e){return cr.setFromEuler(this),this.setFromQuaternion(cr,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],void 0!==e[3]&&(this._order=e[3]),this._onChangeCallback(),this}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+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}toVector3(){console.error("THREE.Euler: .toVector3() has been removed. Use Vector3.setFromEuler() instead")}}Euler.DefaultOrder="XYZ",Euler.RotationOrders=["XYZ","YZX","ZXY","XZY","YXZ","ZYX"];class Layers{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 0!==(this.mask&e.mask)}isEnabled(e){return 0!==(this.mask&(1<<e|0))}}let hr=0;const ur=new Vector3,dr=new Quaternion,pr=new Matrix4,mr=new Vector3,fr=new Vector3,gr=new Vector3,vr=new Quaternion,xr=new Vector3(1,0,0),yr=new Vector3(0,1,0),_r=new Vector3(0,0,1),br={type:"added"},Mr={type:"removed"};class Object3D extends EventDispatcher{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,"id",{value:hr++}),this.uuid=generateUUID(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=Object3D.DefaultUp.clone();const e=new Vector3,t=new Euler,i=new Quaternion,r=new Vector3(1,1,1);t._onChange((function onRotationChange(){i.setFromEuler(t,!1)})),i._onChange((function onQuaternionChange(){t.setFromQuaternion(i,void 0,!1)})),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:e},rotation:{configurable:!0,enumerable:!0,value:t},quaternion:{configurable:!0,enumerable:!0,value:i},scale:{configurable:!0,enumerable:!0,value:r},modelViewMatrix:{value:new Matrix4},normalMatrix:{value:new Matrix3}}),this.matrix=new Matrix4,this.matrixWorld=new Matrix4,this.matrixAutoUpdate=Object3D.DefaultMatrixAutoUpdate,this.matrixWorldNeedsUpdate=!1,this.layers=new Layers,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.userData={}}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,t){this.quaternion.setFromAxisAngle(e,t)}setRotationFromEuler(e){this.quaternion.setFromEuler(e,!0)}setRotationFromMatrix(e){this.quaternion.setFromRotationMatrix(e)}setRotationFromQuaternion(e){this.quaternion.copy(e)}rotateOnAxis(e,t){return dr.setFromAxisAngle(e,t),this.quaternion.multiply(dr),this}rotateOnWorldAxis(e,t){return dr.setFromAxisAngle(e,t),this.quaternion.premultiply(dr),this}rotateX(e){return this.rotateOnAxis(xr,e)}rotateY(e){return this.rotateOnAxis(yr,e)}rotateZ(e){return this.rotateOnAxis(_r,e)}translateOnAxis(e,t){return ur.copy(e).applyQuaternion(this.quaternion),this.position.add(ur.multiplyScalar(t)),this}translateX(e){return this.translateOnAxis(xr,e)}translateY(e){return this.translateOnAxis(yr,e)}translateZ(e){return this.translateOnAxis(_r,e)}localToWorld(e){return e.applyMatrix4(this.matrixWorld)}worldToLocal(e){return e.applyMatrix4(pr.copy(this.matrixWorld).invert())}lookAt(e,t,i){e.isVector3?mr.copy(e):mr.set(e,t,i);const r=this.parent;this.updateWorldMatrix(!0,!1),fr.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?pr.lookAt(fr,mr,this.up):pr.lookAt(mr,fr,this.up),this.quaternion.setFromRotationMatrix(pr),r&&(pr.extractRotation(r.matrixWorld),dr.setFromRotationMatrix(pr),this.quaternion.premultiply(dr.invert()))}add(e){if(arguments.length>1){for(let e=0;e<arguments.length;e++)this.add(arguments[e]);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?(null!==e.parent&&e.parent.remove(e),e.parent=this,this.children.push(e),e.dispatchEvent(br)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",e),this)}remove(e){if(arguments.length>1){for(let e=0;e<arguments.length;e++)this.remove(arguments[e]);return this}const t=this.children.indexOf(e);return-1!==t&&(e.parent=null,this.children.splice(t,1),e.dispatchEvent(Mr)),this}removeFromParent(){const e=this.parent;return null!==e&&e.remove(this),this}clear(){for(let e=0;e<this.children.length;e++){const t=this.children[e];t.parent=null,t.dispatchEvent(Mr)}return this.children.length=0,this}attach(e){return this.updateWorldMatrix(!0,!1),pr.copy(this.matrixWorld).invert(),null!==e.parent&&(e.parent.updateWorldMatrix(!0,!1),pr.multiply(e.parent.matrixWorld)),e.applyMatrix4(pr),this.add(e),e.updateWorldMatrix(!1,!0),this}getObjectById(e){return this.getObjectByProperty("id",e)}getObjectByName(e){return this.getObjectByProperty("name",e)}getObjectByProperty(e,t){if(this[e]===t)return this;for(let i=0,r=this.children.length;i<r;i++){const r=this.children[i].getObjectByProperty(e,t);if(void 0!==r)return r}}getWorldPosition(e){return this.updateWorldMatrix(!0,!1),e.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(fr,e,gr),e}getWorldScale(e){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(fr,vr,e),e}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(t[8],t[9],t[10]).normalize()}raycast(){}traverse(e){e(this);const t=this.children;for(let i=0,r=t.length;i<r;i++)t[i].traverse(e)}traverseVisible(e){if(!1===this.visible)return;e(this);const t=this.children;for(let i=0,r=t.length;i<r;i++)t[i].traverseVisible(e)}traverseAncestors(e){const t=this.parent;null!==t&&(e(t),t.traverseAncestors(e))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,e=!0);const t=this.children;for(let i=0,r=t.length;i<r;i++)t[i].updateMatrixWorld(e)}updateWorldMatrix(e,t){const i=this.parent;if(!0===e&&null!==i&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),null===this.parent?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),!0===t){const e=this.children;for(let t=0,i=e.length;t<i;t++)e[t].updateWorldMatrix(!1,!0)}}toJSON(e){const t=void 0===e||"string"===typeof e,i={};t&&(e={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},i.metadata={version:4.5,type:"Object",generator:"Object3D.toJSON"});const r={};function serialize(t,i){return void 0===t[i.uuid]&&(t[i.uuid]=i.toJSON(e)),i.uuid}if(r.uuid=this.uuid,r.type=this.type,""!==this.name&&(r.name=this.name),!0===this.castShadow&&(r.castShadow=!0),!0===this.receiveShadow&&(r.receiveShadow=!0),!1===this.visible&&(r.visible=!1),!1===this.frustumCulled&&(r.frustumCulled=!1),0!==this.renderOrder&&(r.renderOrder=this.renderOrder),"{}"!==JSON.stringify(this.userData)&&(r.userData=this.userData),r.layers=this.layers.mask,r.matrix=this.matrix.toArray(),!1===this.matrixAutoUpdate&&(r.matrixAutoUpdate=!1),this.isInstancedMesh&&(r.type="InstancedMesh",r.count=this.count,r.instanceMatrix=this.instanceMatrix.toJSON(),null!==this.instanceColor&&(r.instanceColor=this.instanceColor.toJSON())),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&&!0!==this.environment.isRenderTargetTexture&&(r.environment=this.environment.toJSON(e).uuid);else if(this.isMesh||this.isLine||this.isPoints){r.geometry=serialize(e.geometries,this.geometry);const t=this.geometry.parameters;if(void 0!==t&&void 0!==t.shapes){const i=t.shapes;if(Array.isArray(i))for(let t=0,r=i.length;t<r;t++){const r=i[t];serialize(e.shapes,r)}else serialize(e.shapes,i)}}if(this.isSkinnedMesh&&(r.bindMode=this.bindMode,r.bindMatrix=this.bindMatrix.toArray(),void 0!==this.skeleton&&(serialize(e.skeletons,this.skeleton),r.skeleton=this.skeleton.uuid)),void 0!==this.material)if(Array.isArray(this.material)){const t=[];for(let i=0,r=this.material.length;i<r;i++)t.push(serialize(e.materials,this.material[i]));r.material=t}else r.material=serialize(e.materials,this.material);if(this.children.length>0){r.children=[];for(let t=0;t<this.children.length;t++)r.children.push(this.children[t].toJSON(e).object)}if(this.animations.length>0){r.animations=[];for(let t=0;t<this.animations.length;t++){const i=this.animations[t];r.animations.push(serialize(e.animations,i))}}if(t){const t=extractFromCache(e.geometries),r=extractFromCache(e.materials),n=extractFromCache(e.textures),s=extractFromCache(e.images),a=extractFromCache(e.shapes),o=extractFromCache(e.skeletons),l=extractFromCache(e.animations),c=extractFromCache(e.nodes);t.length>0&&(i.geometries=t),r.length>0&&(i.materials=r),n.length>0&&(i.textures=n),s.length>0&&(i.images=s),a.length>0&&(i.shapes=a),o.length>0&&(i.skeletons=o),l.length>0&&(i.animations=l),c.length>0&&(i.nodes=c)}return i.object=r,i;function extractFromCache(e){const t=[];for(const i in e){const r=e[i];delete r.metadata,t.push(r)}return t}}clone(e){return(new this.constructor).copy(this,e)}copy(e,t=!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.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.userData=JSON.parse(JSON.stringify(e.userData)),!0===t)for(let i=0;i<e.children.length;i++){const t=e.children[i];this.add(t.clone())}return this}}Object3D.DefaultUp=new Vector3(0,1,0),Object3D.DefaultMatrixAutoUpdate=!0;const Sr=new Vector3,wr=new Vector3,Tr=new Vector3,Ar=new Vector3,Cr=new Vector3,Er=new Vector3,Lr=new Vector3,Pr=new Vector3,Rr=new Vector3,Dr=new Vector3;class Triangle{constructor(e=new Vector3,t=new Vector3,i=new Vector3){this.a=e,this.b=t,this.c=i}static getNormal(e,t,i,r){r.subVectors(i,t),Sr.subVectors(e,t),r.cross(Sr);const n=r.lengthSq();return n>0?r.multiplyScalar(1/Math.sqrt(n)):r.set(0,0,0)}static getBarycoord(e,t,i,r,n){Sr.subVectors(r,t),wr.subVectors(i,t),Tr.subVectors(e,t);const s=Sr.dot(Sr),a=Sr.dot(wr),o=Sr.dot(Tr),l=wr.dot(wr),c=wr.dot(Tr),h=s*l-a*a;if(0===h)return n.set(-2,-1,-1);const u=1/h,d=(l*o-a*c)*u,p=(s*c-a*o)*u;return n.set(1-d-p,p,d)}static containsPoint(e,t,i,r){return this.getBarycoord(e,t,i,r,Ar),Ar.x>=0&&Ar.y>=0&&Ar.x+Ar.y<=1}static getUV(e,t,i,r,n,s,a,o){return this.getBarycoord(e,t,i,r,Ar),o.set(0,0),o.addScaledVector(n,Ar.x),o.addScaledVector(s,Ar.y),o.addScaledVector(a,Ar.z),o}static isFrontFacing(e,t,i,r){return Sr.subVectors(i,t),wr.subVectors(e,t),Sr.cross(wr).dot(r)<0}set(e,t,i){return this.a.copy(e),this.b.copy(t),this.c.copy(i),this}setFromPointsAndIndices(e,t,i,r){return this.a.copy(e[t]),this.b.copy(e[i]),this.c.copy(e[r]),this}setFromAttributeAndIndices(e,t,i,r){return this.a.fromBufferAttribute(e,t),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 Sr.subVectors(this.c,this.b),wr.subVectors(this.a,this.b),.5*Sr.cross(wr).length()}getMidpoint(e){return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(e){return Triangle.getNormal(this.a,this.b,this.c,e)}getPlane(e){return e.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(e,t){return Triangle.getBarycoord(e,this.a,this.b,this.c,t)}getUV(e,t,i,r,n){return Triangle.getUV(e,this.a,this.b,this.c,t,i,r,n)}containsPoint(e){return Triangle.containsPoint(e,this.a,this.b,this.c)}isFrontFacing(e){return Triangle.isFrontFacing(this.a,this.b,this.c,e)}intersectsBox(e){return e.intersectsTriangle(this)}closestPointToPoint(e,t){const i=this.a,r=this.b,n=this.c;let s,a;Cr.subVectors(r,i),Er.subVectors(n,i),Pr.subVectors(e,i);const o=Cr.dot(Pr),l=Er.dot(Pr);if(o<=0&&l<=0)return t.copy(i);Rr.subVectors(e,r);const c=Cr.dot(Rr),h=Er.dot(Rr);if(c>=0&&h<=c)return t.copy(r);const u=o*h-c*l;if(u<=0&&o>=0&&c<=0)return s=o/(o-c),t.copy(i).addScaledVector(Cr,s);Dr.subVectors(e,n);const d=Cr.dot(Dr),p=Er.dot(Dr);if(p>=0&&d<=p)return t.copy(n);const m=d*l-o*p;if(m<=0&&l>=0&&p<=0)return a=l/(l-p),t.copy(i).addScaledVector(Er,a);const f=c*p-d*h;if(f<=0&&h-c>=0&&d-p>=0)return Lr.subVectors(n,r),a=(h-c)/(h-c+(d-p)),t.copy(r).addScaledVector(Lr,a);const g=1/(f+m+u);return s=m*g,a=u*g,t.copy(i).addScaledVector(Cr,s).addScaledVector(Er,a)}equals(e){return e.a.equals(this.a)&&e.b.equals(this.b)&&e.c.equals(this.c)}}let Ir=0;class Material extends EventDispatcher{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,"id",{value:Ir++}),this.uuid=generateUUID(),this.name="",this.type="Material",this.blending=_,this.side=p,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.blendSrc=B,this.blendDst=V,this.blendEquation=T,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.depthFunc=H,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=ii,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=kt,this.stencilZFail=kt,this.stencilZPass=kt,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.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(void 0!==e)for(const t in e){const i=e[t];if(void 0===i){console.warn("THREE.Material: '"+t+"' parameter is undefined.");continue}if("shading"===t){console.warn("THREE."+this.type+": .shading has been removed. Use the boolean .flatShading instead."),this.flatShading=i===g;continue}const r=this[t];void 0!==r?r&&r.isColor?r.set(i):r&&r.isVector3&&i&&i.isVector3?r.copy(i):this[t]=i:console.warn("THREE."+this.type+": '"+t+"' is not a property of this material.")}}toJSON(e){const t=void 0===e||"string"===typeof e;t&&(e={textures:{},images:{}});const i={metadata:{version:4.5,type:"Material",generator:"Material.toJSON"}};function extractFromCache(e){const t=[];for(const i in e){const r=e[i];delete r.metadata,t.push(r)}return t}if(i.uuid=this.uuid,i.type=this.type,""!==this.name&&(i.name=this.name),this.color&&this.color.isColor&&(i.color=this.color.getHex()),void 0!==this.roughness&&(i.roughness=this.roughness),void 0!==this.metalness&&(i.metalness=this.metalness),void 0!==this.sheen&&(i.sheen=this.sheen),this.sheenColor&&this.sheenColor.isColor&&(i.sheenColor=this.sheenColor.getHex()),void 0!==this.sheenRoughness&&(i.sheenRoughness=this.sheenRoughness),this.emissive&&this.emissive.isColor&&(i.emissive=this.emissive.getHex()),this.emissiveIntensity&&1!==this.emissiveIntensity&&(i.emissiveIntensity=this.emissiveIntensity),this.specular&&this.specular.isColor&&(i.specular=this.specular.getHex()),void 0!==this.specularIntensity&&(i.specularIntensity=this.specularIntensity),this.specularColor&&this.specularColor.isColor&&(i.specularColor=this.specularColor.getHex()),void 0!==this.shininess&&(i.shininess=this.shininess),void 0!==this.clearcoat&&(i.clearcoat=this.clearcoat),void 0!==this.clearcoatRoughness&&(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()),void 0!==this.iridescence&&(i.iridescence=this.iridescence),void 0!==this.iridescenceIOR&&(i.iridescenceIOR=this.iridescenceIOR),void 0!==this.iridescenceThicknessRange&&(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.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,void 0!==this.combine&&(i.combine=this.combine)),void 0!==this.envMapIntensity&&(i.envMapIntensity=this.envMapIntensity),void 0!==this.reflectivity&&(i.reflectivity=this.reflectivity),void 0!==this.refractionRatio&&(i.refractionRatio=this.refractionRatio),this.gradientMap&&this.gradientMap.isTexture&&(i.gradientMap=this.gradientMap.toJSON(e).uuid),void 0!==this.transmission&&(i.transmission=this.transmission),this.transmissionMap&&this.transmissionMap.isTexture&&(i.transmissionMap=this.transmissionMap.toJSON(e).uuid),void 0!==this.thickness&&(i.thickness=this.thickness),this.thicknessMap&&this.thicknessMap.isTexture&&(i.thicknessMap=this.thicknessMap.toJSON(e).uuid),void 0!==this.attenuationDistance&&(i.attenuationDistance=this.attenuationDistance),void 0!==this.attenuationColor&&(i.attenuationColor=this.attenuationColor.getHex()),void 0!==this.size&&(i.size=this.size),null!==this.shadowSide&&(i.shadowSide=this.shadowSide),void 0!==this.sizeAttenuation&&(i.sizeAttenuation=this.sizeAttenuation),this.blending!==_&&(i.blending=this.blending),this.side!==p&&(i.side=this.side),this.vertexColors&&(i.vertexColors=!0),this.opacity<1&&(i.opacity=this.opacity),!0===this.transparent&&(i.transparent=this.transparent),i.depthFunc=this.depthFunc,i.depthTest=this.depthTest,i.depthWrite=this.depthWrite,i.colorWrite=this.colorWrite,i.stencilWrite=this.stencilWrite,i.stencilWriteMask=this.stencilWriteMask,i.stencilFunc=this.stencilFunc,i.stencilRef=this.stencilRef,i.stencilFuncMask=this.stencilFuncMask,i.stencilFail=this.stencilFail,i.stencilZFail=this.stencilZFail,i.stencilZPass=this.stencilZPass,void 0!==this.rotation&&0!==this.rotation&&(i.rotation=this.rotation),!0===this.polygonOffset&&(i.polygonOffset=!0),0!==this.polygonOffsetFactor&&(i.polygonOffsetFactor=this.polygonOffsetFactor),0!==this.polygonOffsetUnits&&(i.polygonOffsetUnits=this.polygonOffsetUnits),void 0!==this.linewidth&&1!==this.linewidth&&(i.linewidth=this.linewidth),void 0!==this.dashSize&&(i.dashSize=this.dashSize),void 0!==this.gapSize&&(i.gapSize=this.gapSize),void 0!==this.scale&&(i.scale=this.scale),!0===this.dithering&&(i.dithering=!0),this.alphaTest>0&&(i.alphaTest=this.alphaTest),!0===this.alphaToCoverage&&(i.alphaToCoverage=this.alphaToCoverage),!0===this.premultipliedAlpha&&(i.premultipliedAlpha=this.premultipliedAlpha),!0===this.wireframe&&(i.wireframe=this.wireframe),this.wireframeLinewidth>1&&(i.wireframeLinewidth=this.wireframeLinewidth),"round"!==this.wireframeLinecap&&(i.wireframeLinecap=this.wireframeLinecap),"round"!==this.wireframeLinejoin&&(i.wireframeLinejoin=this.wireframeLinejoin),!0===this.flatShading&&(i.flatShading=this.flatShading),!1===this.visible&&(i.visible=!1),!1===this.toneMapped&&(i.toneMapped=!1),!1===this.fog&&(i.fog=!1),"{}"!==JSON.stringify(this.userData)&&(i.userData=this.userData),t){const t=extractFromCache(e.textures),r=extractFromCache(e.images);t.length>0&&(i.textures=t),r.length>0&&(i.images=r)}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.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 t=e.clippingPlanes;let i=null;if(null!==t){const e=t.length;i=new Array(e);for(let r=0;r!==e;++r)i[r]=t[r].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.alphaToCoverage=e.alphaToCoverage,this.premultipliedAlpha=e.premultipliedAlpha,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){!0===e&&this.version++}}class MeshBasicMaterial extends Material{constructor(e){super(),this.isMeshBasicMaterial=!0,this.type="MeshBasicMaterial",this.color=new Color(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=Z,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 Br=new Vector3,Vr=new Vector2;class BufferAttribute{constructor(e,t,i){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=t,this.count=void 0!==e?e.length/t:0,this.normalized=!0===i,this.usage=ri,this.updateRange={offset:0,count:-1},this.version=0}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}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}copyAt(e,t,i){e*=this.itemSize,i*=t.itemSize;for(let r=0,n=this.itemSize;r<n;r++)this.array[e+r]=t.array[i+r];return this}copyArray(e){return this.array.set(e),this}copyColorsArray(e){const t=this.array;let i=0;for(let r=0,n=e.length;r<n;r++){let n=e[r];void 0===n&&(console.warn("THREE.BufferAttribute.copyColorsArray(): color is undefined",r),n=new Color),t[i++]=n.r,t[i++]=n.g,t[i++]=n.b}return this}copyVector2sArray(e){const t=this.array;let i=0;for(let r=0,n=e.length;r<n;r++){let n=e[r];void 0===n&&(console.warn("THREE.BufferAttribute.copyVector2sArray(): vector is undefined",r),n=new Vector2),t[i++]=n.x,t[i++]=n.y}return this}copyVector3sArray(e){const t=this.array;let i=0;for(let r=0,n=e.length;r<n;r++){let n=e[r];void 0===n&&(console.warn("THREE.BufferAttribute.copyVector3sArray(): vector is undefined",r),n=new Vector3),t[i++]=n.x,t[i++]=n.y,t[i++]=n.z}return this}copyVector4sArray(e){const t=this.array;let i=0;for(let r=0,n=e.length;r<n;r++){let n=e[r];void 0===n&&(console.warn("THREE.BufferAttribute.copyVector4sArray(): vector is undefined",r),n=new Vector4),t[i++]=n.x,t[i++]=n.y,t[i++]=n.z,t[i++]=n.w}return this}applyMatrix3(e){if(2===this.itemSize)for(let t=0,i=this.count;t<i;t++)Vr.fromBufferAttribute(this,t),Vr.applyMatrix3(e),this.setXY(t,Vr.x,Vr.y);else if(3===this.itemSize)for(let t=0,i=this.count;t<i;t++)Br.fromBufferAttribute(this,t),Br.applyMatrix3(e),this.setXYZ(t,Br.x,Br.y,Br.z);return this}applyMatrix4(e){for(let t=0,i=this.count;t<i;t++)Br.fromBufferAttribute(this,t),Br.applyMatrix4(e),this.setXYZ(t,Br.x,Br.y,Br.z);return this}applyNormalMatrix(e){for(let t=0,i=this.count;t<i;t++)Br.fromBufferAttribute(this,t),Br.applyNormalMatrix(e),this.setXYZ(t,Br.x,Br.y,Br.z);return this}transformDirection(e){for(let t=0,i=this.count;t<i;t++)Br.fromBufferAttribute(this,t),Br.transformDirection(e),this.setXYZ(t,Br.x,Br.y,Br.z);return this}set(e,t=0){return this.array.set(e,t),this}getX(e){return this.array[e*this.itemSize]}setX(e,t){return this.array[e*this.itemSize]=t,this}getY(e){return this.array[e*this.itemSize+1]}setY(e,t){return this.array[e*this.itemSize+1]=t,this}getZ(e){return this.array[e*this.itemSize+2]}setZ(e,t){return this.array[e*this.itemSize+2]=t,this}getW(e){return this.array[e*this.itemSize+3]}setW(e,t){return this.array[e*this.itemSize+3]=t,this}setXY(e,t,i){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=i,this}setXYZ(e,t,i,r){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=i,this.array[e+2]=r,this}setXYZW(e,t,i,r,n){return e*=this.itemSize,this.array[e+0]=t,this.array[e+1]=i,this.array[e+2]=r,this.array[e+3]=n,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!==ri&&(e.usage=this.usage),0===this.updateRange.offset&&-1===this.updateRange.count||(e.updateRange=this.updateRange),e}}class Int8BufferAttribute extends BufferAttribute{constructor(e,t,i){super(new Int8Array(e),t,i)}}class Uint8BufferAttribute extends BufferAttribute{constructor(e,t,i){super(new Uint8Array(e),t,i)}}class Uint8ClampedBufferAttribute extends BufferAttribute{constructor(e,t,i){super(new Uint8ClampedArray(e),t,i)}}class Int16BufferAttribute extends BufferAttribute{constructor(e,t,i){super(new Int16Array(e),t,i)}}class Uint16BufferAttribute extends BufferAttribute{constructor(e,t,i){super(new Uint16Array(e),t,i)}}class Int32BufferAttribute extends BufferAttribute{constructor(e,t,i){super(new Int32Array(e),t,i)}}class Uint32BufferAttribute extends BufferAttribute{constructor(e,t,i){super(new Uint32Array(e),t,i)}}class Float16BufferAttribute extends BufferAttribute{constructor(e,t,i){super(new Uint16Array(e),t,i),this.isFloat16BufferAttribute=!0}}class Float32BufferAttribute extends BufferAttribute{constructor(e,t,i){super(new Float32Array(e),t,i)}}class Float64BufferAttribute extends BufferAttribute{constructor(e,t,i){super(new Float64Array(e),t,i)}}let Nr=0;const Or=new Matrix4,zr=new Object3D,Fr=new Vector3,Gr=new Box3,Ur=new Box3,kr=new Vector3;class BufferGeometry extends EventDispatcher{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,"id",{value:Nr++}),this.uuid=generateUUID(),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(arrayNeedsUint32(e)?Uint32BufferAttribute:Uint16BufferAttribute)(e,1):this.index=e,this}getAttribute(e){return this.attributes[e]}setAttribute(e,t){return this.attributes[e]=t,this}deleteAttribute(e){return delete this.attributes[e],this}hasAttribute(e){return void 0!==this.attributes[e]}addGroup(e,t,i=0){this.groups.push({start:e,count:t,materialIndex:i})}clearGroups(){this.groups=[]}setDrawRange(e,t){this.drawRange.start=e,this.drawRange.count=t}applyMatrix4(e){const t=this.attributes.position;void 0!==t&&(t.applyMatrix4(e),t.needsUpdate=!0);const i=this.attributes.normal;if(void 0!==i){const t=(new Matrix3).getNormalMatrix(e);i.applyNormalMatrix(t),i.needsUpdate=!0}const r=this.attributes.tangent;return void 0!==r&&(r.transformDirection(e),r.needsUpdate=!0),null!==this.boundingBox&&this.computeBoundingBox(),null!==this.boundingSphere&&this.computeBoundingSphere(),this}applyQuaternion(e){return Or.makeRotationFromQuaternion(e),this.applyMatrix4(Or),this}rotateX(e){return Or.makeRotationX(e),this.applyMatrix4(Or),this}rotateY(e){return Or.makeRotationY(e),this.applyMatrix4(Or),this}rotateZ(e){return Or.makeRotationZ(e),this.applyMatrix4(Or),this}translate(e,t,i){return Or.makeTranslation(e,t,i),this.applyMatrix4(Or),this}scale(e,t,i){return Or.makeScale(e,t,i),this.applyMatrix4(Or),this}lookAt(e){return zr.lookAt(e),zr.updateMatrix(),this.applyMatrix4(zr.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Fr).negate(),this.translate(Fr.x,Fr.y,Fr.z),this}setFromPoints(e){const t=[];for(let i=0,r=e.length;i<r;i++){const r=e[i];t.push(r.x,r.y,r.z||0)}return this.setAttribute("position",new Float32BufferAttribute(t,3)),this}computeBoundingBox(){null===this.boundingBox&&(this.boundingBox=new Box3);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set "mesh.frustumCulled" to "false".',this),void this.boundingBox.set(new Vector3(-1/0,-1/0,-1/0),new Vector3(1/0,1/0,1/0));if(void 0!==e){if(this.boundingBox.setFromBufferAttribute(e),t)for(let i=0,r=t.length;i<r;i++){const e=t[i];Gr.setFromBufferAttribute(e),this.morphTargetsRelative?(kr.addVectors(this.boundingBox.min,Gr.min),this.boundingBox.expandByPoint(kr),kr.addVectors(this.boundingBox.max,Gr.max),this.boundingBox.expandByPoint(kr)):(this.boundingBox.expandByPoint(Gr.min),this.boundingBox.expandByPoint(Gr.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(){null===this.boundingSphere&&(this.boundingSphere=new Sphere);const e=this.attributes.position,t=this.morphAttributes.position;if(e&&e.isGLBufferAttribute)return console.error('THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set "mesh.frustumCulled" to "false".',this),void this.boundingSphere.set(new Vector3,1/0);if(e){const i=this.boundingSphere.center;if(Gr.setFromBufferAttribute(e),t)for(let e=0,n=t.length;e<n;e++){const i=t[e];Ur.setFromBufferAttribute(i),this.morphTargetsRelative?(kr.addVectors(Gr.min,Ur.min),Gr.expandByPoint(kr),kr.addVectors(Gr.max,Ur.max),Gr.expandByPoint(kr)):(Gr.expandByPoint(Ur.min),Gr.expandByPoint(Ur.max))}Gr.getCenter(i);let r=0;for(let t=0,n=e.count;t<n;t++)kr.fromBufferAttribute(e,t),r=Math.max(r,i.distanceToSquared(kr));if(t)for(let n=0,s=t.length;n<s;n++){const s=t[n],a=this.morphTargetsRelative;for(let t=0,n=s.count;t<n;t++)kr.fromBufferAttribute(s,t),a&&(Fr.fromBufferAttribute(e,t),kr.add(Fr)),r=Math.max(r,i.distanceToSquared(kr))}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,t=this.attributes;if(null===e||void 0===t.position||void 0===t.normal||void 0===t.uv)return void console.error("THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)");const i=e.array,r=t.position.array,n=t.normal.array,s=t.uv.array,a=r.length/3;!1===this.hasAttribute("tangent")&&this.setAttribute("tangent",new BufferAttribute(new Float32Array(4*a),4));const o=this.getAttribute("tangent").array,l=[],c=[];for(let w=0;w<a;w++)l[w]=new Vector3,c[w]=new Vector3;const h=new Vector3,u=new Vector3,d=new Vector3,p=new Vector2,m=new Vector2,f=new Vector2,g=new Vector3,x=new Vector3;function handleTriangle(e,t,i){h.fromArray(r,3*e),u.fromArray(r,3*t),d.fromArray(r,3*i),p.fromArray(s,2*e),m.fromArray(s,2*t),f.fromArray(s,2*i),u.sub(h),d.sub(h),m.sub(p),f.sub(p);const n=1/(m.x*f.y-f.x*m.y);isFinite(n)&&(g.copy(u).multiplyScalar(f.y).addScaledVector(d,-m.y).multiplyScalar(n),x.copy(d).multiplyScalar(m.x).addScaledVector(u,-f.x).multiplyScalar(n),l[e].add(g),l[t].add(g),l[i].add(g),c[e].add(x),c[t].add(x),c[i].add(x))}let y=this.groups;0===y.length&&(y=[{start:0,count:i.length}]);for(let w=0,T=y.length;w<T;++w){const e=y[w],t=e.start;for(let r=t,n=t+e.count;r<n;r+=3)handleTriangle(i[r+0],i[r+1],i[r+2])}const _=new Vector3,b=new Vector3,M=new Vector3,S=new Vector3;function handleVertex(e){M.fromArray(n,3*e),S.copy(M);const t=l[e];_.copy(t),_.sub(M.multiplyScalar(M.dot(t))).normalize(),b.crossVectors(S,t);const i=b.dot(c[e])<0?-1:1;o[4*e]=_.x,o[4*e+1]=_.y,o[4*e+2]=_.z,o[4*e+3]=i}for(let w=0,T=y.length;w<T;++w){const e=y[w],t=e.start;for(let r=t,n=t+e.count;r<n;r+=3)handleVertex(i[r+0]),handleVertex(i[r+1]),handleVertex(i[r+2])}}computeVertexNormals(){const e=this.index,t=this.getAttribute("position");if(void 0!==t){let i=this.getAttribute("normal");if(void 0===i)i=new BufferAttribute(new Float32Array(3*t.count),3),this.setAttribute("normal",i);else for(let e=0,t=i.count;e<t;e++)i.setXYZ(e,0,0,0);const r=new Vector3,n=new Vector3,s=new Vector3,a=new Vector3,o=new Vector3,l=new Vector3,c=new Vector3,h=new Vector3;if(e)for(let u=0,d=e.count;u<d;u+=3){const d=e.getX(u+0),p=e.getX(u+1),m=e.getX(u+2);r.fromBufferAttribute(t,d),n.fromBufferAttribute(t,p),s.fromBufferAttribute(t,m),c.subVectors(s,n),h.subVectors(r,n),c.cross(h),a.fromBufferAttribute(i,d),o.fromBufferAttribute(i,p),l.fromBufferAttribute(i,m),a.add(c),o.add(c),l.add(c),i.setXYZ(d,a.x,a.y,a.z),i.setXYZ(p,o.x,o.y,o.z),i.setXYZ(m,l.x,l.y,l.z)}else for(let e=0,u=t.count;e<u;e+=3)r.fromBufferAttribute(t,e+0),n.fromBufferAttribute(t,e+1),s.fromBufferAttribute(t,e+2),c.subVectors(s,n),h.subVectors(r,n),c.cross(h),i.setXYZ(e+0,c.x,c.y,c.z),i.setXYZ(e+1,c.x,c.y,c.z),i.setXYZ(e+2,c.x,c.y,c.z);this.normalizeNormals(),i.needsUpdate=!0}}merge(e,t){if(!e||!e.isBufferGeometry)return void console.error("THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.",e);void 0===t&&(t=0,console.warn("THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge."));const i=this.attributes;for(const r in i){if(void 0===e.attributes[r])continue;const n=i[r].array,s=e.attributes[r],a=s.array,o=s.itemSize*t,l=Math.min(a.length,n.length-o);for(let e=0,t=o;e<l;e++,t++)n[t]=a[e]}return this}normalizeNormals(){const e=this.attributes.normal;for(let t=0,i=e.count;t<i;t++)kr.fromBufferAttribute(e,t),kr.normalize(),e.setXYZ(t,kr.x,kr.y,kr.z)}toNonIndexed(){function convertBufferAttribute(e,t){const i=e.array,r=e.itemSize,n=e.normalized,s=new i.constructor(t.length*r);let a=0,o=0;for(let l=0,c=t.length;l<c;l++){a=e.isInterleavedBufferAttribute?t[l]*e.data.stride+e.offset:t[l]*r;for(let e=0;e<r;e++)s[o++]=i[a++]}return new BufferAttribute(s,r,n)}if(null===this.index)return console.warn("THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed."),this;const e=new BufferGeometry,t=this.index.array,i=this.attributes;for(const s in i){const r=convertBufferAttribute(i[s],t);e.setAttribute(s,r)}const r=this.morphAttributes;for(const s in r){const i=[],n=r[s];for(let e=0,r=n.length;e<r;e++){const r=convertBufferAttribute(n[e],t);i.push(r)}e.morphAttributes[s]=i}e.morphTargetsRelative=this.morphTargetsRelative;const n=this.groups;for(let s=0,a=n.length;s<a;s++){const t=n[s];e.addGroup(t.start,t.count,t.materialIndex)}return e}toJSON(){const e={metadata:{version:4.5,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),void 0!==this.parameters){const t=this.parameters;for(const i in t)void 0!==t[i]&&(e[i]=t[i]);return e}e.data={attributes:{}};const t=this.index;null!==t&&(e.data.index={type:t.array.constructor.name,array:Array.prototype.slice.call(t.array)});const i=this.attributes;for(const o in i){const t=i[o];e.data.attributes[o]=t.toJSON(e.data)}const r={};let n=!1;for(const o in this.morphAttributes){const t=this.morphAttributes[o],i=[];for(let r=0,n=t.length;r<n;r++){const n=t[r];i.push(n.toJSON(e.data))}i.length>0&&(r[o]=i,n=!0)}n&&(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 a=this.boundingSphere;return null!==a&&(e.data.boundingSphere={center:a.center.toArray(),radius:a.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 t={};this.name=e.name;const i=e.index;null!==i&&this.setIndex(i.clone(t));const r=e.attributes;for(const l in r){const e=r[l];this.setAttribute(l,e.clone(t))}const n=e.morphAttributes;for(const l in n){const e=[],i=n[l];for(let r=0,n=i.length;r<n;r++)e.push(i[r].clone(t));this.morphAttributes[l]=e}this.morphTargetsRelative=e.morphTargetsRelative;const s=e.groups;for(let l=0,c=s.length;l<c;l++){const e=s[l];this.addGroup(e.start,e.count,e.materialIndex)}const a=e.boundingBox;null!==a&&(this.boundingBox=a.clone());const o=e.boundingSphere;return null!==o&&(this.boundingSphere=o.clone()),this.drawRange.start=e.drawRange.start,this.drawRange.count=e.drawRange.count,this.userData=e.userData,void 0!==e.parameters&&(this.parameters=Object.assign({},e.parameters)),this}dispose(){this.dispatchEvent({type:"dispose"})}}const Wr=new Matrix4,Hr=new Ray,jr=new Sphere,qr=new Vector3,Xr=new Vector3,Yr=new Vector3,Zr=new Vector3,Jr=new Vector3,Kr=new Vector3,Qr=new Vector3,$r=new Vector3,en=new Vector3,tn=new Vector2,rn=new Vector2,nn=new Vector2,sn=new Vector3,an=new Vector3;class Mesh extends Object3D{constructor(e=new BufferGeometry,t=new MeshBasicMaterial){super(),this.isMesh=!0,this.type="Mesh",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),void 0!==e.morphTargetInfluences&&(this.morphTargetInfluences=e.morphTargetInfluences.slice()),void 0!==e.morphTargetDictionary&&(this.morphTargetDictionary=Object.assign({},e.morphTargetDictionary)),this.material=e.material,this.geometry=e.geometry,this}updateMorphTargets(){const e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){const i=e[t[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=i.length;e<t;e++){const t=i[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[t]=e}}}}raycast(e,t){const i=this.geometry,r=this.material,n=this.matrixWorld;if(void 0===r)return;if(null===i.boundingSphere&&i.computeBoundingSphere(),jr.copy(i.boundingSphere),jr.applyMatrix4(n),!1===e.ray.intersectsSphere(jr))return;if(Wr.copy(n).invert(),Hr.copy(e.ray).applyMatrix4(Wr),null!==i.boundingBox&&!1===Hr.intersectsBox(i.boundingBox))return;let s;const a=i.index,o=i.attributes.position,l=i.morphAttributes.position,c=i.morphTargetsRelative,h=i.attributes.uv,u=i.attributes.uv2,d=i.groups,p=i.drawRange;if(null!==a)if(Array.isArray(r))for(let m=0,f=d.length;m<f;m++){const i=d[m],n=r[i.materialIndex];for(let r=Math.max(i.start,p.start),d=Math.min(a.count,Math.min(i.start+i.count,p.start+p.count));r<d;r+=3){const d=a.getX(r),p=a.getX(r+1),m=a.getX(r+2);s=checkBufferGeometryIntersection(this,n,e,Hr,o,l,c,h,u,d,p,m),s&&(s.faceIndex=Math.floor(r/3),s.face.materialIndex=i.materialIndex,t.push(s))}}else{for(let i=Math.max(0,p.start),n=Math.min(a.count,p.start+p.count);i<n;i+=3){const n=a.getX(i),d=a.getX(i+1),p=a.getX(i+2);s=checkBufferGeometryIntersection(this,r,e,Hr,o,l,c,h,u,n,d,p),s&&(s.faceIndex=Math.floor(i/3),t.push(s))}}else if(void 0!==o)if(Array.isArray(r))for(let m=0,f=d.length;m<f;m++){const i=d[m],n=r[i.materialIndex];for(let r=Math.max(i.start,p.start),a=Math.min(o.count,Math.min(i.start+i.count,p.start+p.count));r<a;r+=3){s=checkBufferGeometryIntersection(this,n,e,Hr,o,l,c,h,u,r,r+1,r+2),s&&(s.faceIndex=Math.floor(r/3),s.face.materialIndex=i.materialIndex,t.push(s))}}else{for(let i=Math.max(0,p.start),n=Math.min(o.count,p.start+p.count);i<n;i+=3){s=checkBufferGeometryIntersection(this,r,e,Hr,o,l,c,h,u,i,i+1,i+2),s&&(s.faceIndex=Math.floor(i/3),t.push(s))}}}}function checkBufferGeometryIntersection(e,t,i,r,n,s,a,o,l,c,h,u){qr.fromBufferAttribute(n,c),Xr.fromBufferAttribute(n,h),Yr.fromBufferAttribute(n,u);const d=e.morphTargetInfluences;if(s&&d){Qr.set(0,0,0),$r.set(0,0,0),en.set(0,0,0);for(let e=0,t=s.length;e<t;e++){const t=d[e],i=s[e];0!==t&&(Zr.fromBufferAttribute(i,c),Jr.fromBufferAttribute(i,h),Kr.fromBufferAttribute(i,u),a?(Qr.addScaledVector(Zr,t),$r.addScaledVector(Jr,t),en.addScaledVector(Kr,t)):(Qr.addScaledVector(Zr.sub(qr),t),$r.addScaledVector(Jr.sub(Xr),t),en.addScaledVector(Kr.sub(Yr),t)))}qr.add(Qr),Xr.add($r),Yr.add(en)}e.isSkinnedMesh&&(e.boneTransform(c,qr),e.boneTransform(h,Xr),e.boneTransform(u,Yr));const p=function checkIntersection(e,t,i,r,n,s,a,o){let l;if(l=t.side===m?r.intersectTriangle(a,s,n,!0,o):r.intersectTriangle(n,s,a,t.side!==f,o),null===l)return null;an.copy(o),an.applyMatrix4(e.matrixWorld);const c=i.ray.origin.distanceTo(an);return c<i.near||c>i.far?null:{distance:c,point:an.clone(),object:e}}(e,t,i,r,qr,Xr,Yr,sn);if(p){o&&(tn.fromBufferAttribute(o,c),rn.fromBufferAttribute(o,h),nn.fromBufferAttribute(o,u),p.uv=Triangle.getUV(sn,qr,Xr,Yr,tn,rn,nn,new Vector2)),l&&(tn.fromBufferAttribute(l,c),rn.fromBufferAttribute(l,h),nn.fromBufferAttribute(l,u),p.uv2=Triangle.getUV(sn,qr,Xr,Yr,tn,rn,nn,new Vector2));const e={a:c,b:h,c:u,normal:new Vector3,materialIndex:0};Triangle.getNormal(qr,Xr,Yr,e.normal),p.face=e}return p}class BoxGeometry extends BufferGeometry{constructor(e=1,t=1,i=1,r=1,n=1,s=1){super(),this.type="BoxGeometry",this.parameters={width:e,height:t,depth:i,widthSegments:r,heightSegments:n,depthSegments:s};const a=this;r=Math.floor(r),n=Math.floor(n),s=Math.floor(s);const o=[],l=[],c=[],h=[];let u=0,d=0;function buildPlane(e,t,i,r,n,s,p,m,f,g,x){const y=s/f,_=p/g,b=s/2,M=p/2,S=m/2,w=f+1,T=g+1;let A=0,C=0;const E=new Vector3;for(let a=0;a<T;a++){const s=a*_-M;for(let o=0;o<w;o++){const u=o*y-b;E[e]=u*r,E[t]=s*n,E[i]=S,l.push(E.x,E.y,E.z),E[e]=0,E[t]=0,E[i]=m>0?1:-1,c.push(E.x,E.y,E.z),h.push(o/f),h.push(1-a/g),A+=1}}for(let a=0;a<g;a++)for(let e=0;e<f;e++){const t=u+e+w*a,i=u+e+w*(a+1),r=u+(e+1)+w*(a+1),n=u+(e+1)+w*a;o.push(t,i,n),o.push(i,r,n),C+=6}a.addGroup(d,C,x),d+=C,u+=A}buildPlane("z","y","x",-1,-1,i,t,e,s,n,0),buildPlane("z","y","x",1,-1,i,t,-e,s,n,1),buildPlane("x","z","y",1,1,e,i,t,r,s,2),buildPlane("x","z","y",1,-1,e,i,-t,r,s,3),buildPlane("x","y","z",1,-1,e,t,i,r,n,4),buildPlane("x","y","z",-1,-1,e,t,-i,r,n,5),this.setIndex(o),this.setAttribute("position",new Float32BufferAttribute(l,3)),this.setAttribute("normal",new Float32BufferAttribute(c,3)),this.setAttribute("uv",new Float32BufferAttribute(h,2))}static fromJSON(e){return new BoxGeometry(e.width,e.height,e.depth,e.widthSegments,e.heightSegments,e.depthSegments)}}function cloneUniforms(e){const t={};for(const i in e){t[i]={};for(const r in e[i]){const n=e[i][r];n&&(n.isColor||n.isMatrix3||n.isMatrix4||n.isVector2||n.isVector3||n.isVector4||n.isTexture||n.isQuaternion)?t[i][r]=n.clone():Array.isArray(n)?t[i][r]=n.slice():t[i][r]=n}}return t}function mergeUniforms(e){const t={};for(let i=0;i<e.length;i++){const r=cloneUniforms(e[i]);for(const e in r)t[e]=r[e]}return t}const on={clone:cloneUniforms,merge:mergeUniforms};class ShaderMaterial extends Material{constructor(e){super(),this.isShaderMaterial=!0,this.type="ShaderMaterial",this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader="void main() {\n\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",this.fragmentShader="void main() {\n\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\n}",this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv2:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,void 0!==e&&(void 0!==e.attributes&&console.error("THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead."),this.setValues(e))}copy(e){return super.copy(e),this.fragmentShader=e.fragmentShader,this.vertexShader=e.vertexShader,this.uniforms=cloneUniforms(e.uniforms),this.uniformsGroups=function cloneUniformsGroups(e){const t=[];for(let i=0;i<e.length;i++)t.push(e[i].clone());return t}(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 t=super.toJSON(e);t.glslVersion=this.glslVersion,t.uniforms={};for(const r in this.uniforms){const i=this.uniforms[r].value;i&&i.isTexture?t.uniforms[r]={type:"t",value:i.toJSON(e).uuid}:i&&i.isColor?t.uniforms[r]={type:"c",value:i.getHex()}:i&&i.isVector2?t.uniforms[r]={type:"v2",value:i.toArray()}:i&&i.isVector3?t.uniforms[r]={type:"v3",value:i.toArray()}:i&&i.isVector4?t.uniforms[r]={type:"v4",value:i.toArray()}:i&&i.isMatrix3?t.uniforms[r]={type:"m3",value:i.toArray()}:i&&i.isMatrix4?t.uniforms[r]={type:"m4",value:i.toArray()}:t.uniforms[r]={value:i}}Object.keys(this.defines).length>0&&(t.defines=this.defines),t.vertexShader=this.vertexShader,t.fragmentShader=this.fragmentShader;const i={};for(const r in this.extensions)!0===this.extensions[r]&&(i[r]=!0);return Object.keys(i).length>0&&(t.extensions=i),t}}class Camera extends Object3D{constructor(){super(),this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new Matrix4,this.projectionMatrix=new Matrix4,this.projectionMatrixInverse=new Matrix4}copy(e,t){return super.copy(e,t),this.matrixWorldInverse.copy(e.matrixWorldInverse),this.projectionMatrix.copy(e.projectionMatrix),this.projectionMatrixInverse.copy(e.projectionMatrixInverse),this}getWorldDirection(e){this.updateWorldMatrix(!0,!1);const t=this.matrixWorld.elements;return e.set(-t[8],-t[9],-t[10]).normalize()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return(new this.constructor).copy(this)}}class PerspectiveCamera extends Camera{constructor(e=50,t=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=t,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),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=null===e.view?null:Object.assign({},e.view),this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this}setFocalLength(e){const t=.5*this.getFilmHeight()/e;this.fov=2*xi*Math.atan(t),this.updateProjectionMatrix()}getFocalLength(){const e=Math.tan(.5*vi*this.fov);return.5*this.getFilmHeight()/e}getEffectiveFOV(){return 2*xi*Math.atan(Math.tan(.5*vi*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}setViewOffset(e,t,i,r,n,s){this.aspect=e/t,null===this.view&&(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=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=n,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=this.near;let t=e*Math.tan(.5*vi*this.fov)/this.zoom,i=2*t,r=this.aspect*i,n=-.5*r;const s=this.view;if(null!==this.view&&this.view.enabled){const e=s.fullWidth,a=s.fullHeight;n+=s.offsetX*r/e,t-=s.offsetY*i/a,r*=s.width/e,i*=s.height/a}const a=this.filmOffset;0!==a&&(n+=e*a/this.getFilmWidth()),this.projectionMatrix.makePerspective(n,n+r,t,t-i,e,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.fov=this.fov,t.object.zoom=this.zoom,t.object.near=this.near,t.object.far=this.far,t.object.focus=this.focus,t.object.aspect=this.aspect,null!==this.view&&(t.object.view=Object.assign({},this.view)),t.object.filmGauge=this.filmGauge,t.object.filmOffset=this.filmOffset,t}}const ln=90;class CubeCamera extends Object3D{constructor(e,t,i){if(super(),this.type="CubeCamera",!0!==i.isWebGLCubeRenderTarget)return void console.error("THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.");this.renderTarget=i;const r=new PerspectiveCamera(ln,1,e,t);r.layers=this.layers,r.up.set(0,-1,0),r.lookAt(new Vector3(1,0,0)),this.add(r);const n=new PerspectiveCamera(ln,1,e,t);n.layers=this.layers,n.up.set(0,-1,0),n.lookAt(new Vector3(-1,0,0)),this.add(n);const s=new PerspectiveCamera(ln,1,e,t);s.layers=this.layers,s.up.set(0,0,1),s.lookAt(new Vector3(0,1,0)),this.add(s);const a=new PerspectiveCamera(ln,1,e,t);a.layers=this.layers,a.up.set(0,0,-1),a.lookAt(new Vector3(0,-1,0)),this.add(a);const o=new PerspectiveCamera(ln,1,e,t);o.layers=this.layers,o.up.set(0,-1,0),o.lookAt(new Vector3(0,0,1)),this.add(o);const l=new PerspectiveCamera(ln,1,e,t);l.layers=this.layers,l.up.set(0,-1,0),l.lookAt(new Vector3(0,0,-1)),this.add(l)}update(e,t){null===this.parent&&this.updateMatrixWorld();const i=this.renderTarget,[r,n,s,a,o,l]=this.children,c=e.getRenderTarget(),h=e.toneMapping,u=e.xr.enabled;e.toneMapping=Q,e.xr.enabled=!1;const d=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,e.setRenderTarget(i,0),e.render(t,r),e.setRenderTarget(i,1),e.render(t,n),e.setRenderTarget(i,2),e.render(t,s),e.setRenderTarget(i,3),e.render(t,a),e.setRenderTarget(i,4),e.render(t,o),i.texture.generateMipmaps=d,e.setRenderTarget(i,5),e.render(t,l),e.setRenderTarget(c),e.toneMapping=h,e.xr.enabled=u,i.texture.needsPMREMUpdate=!0}}class CubeTexture extends Texture{constructor(e,t,i,r,n,s,a,o,l,c){super(e=void 0!==e?e:[],t=void 0!==t?t:se,i,r,n,s,a,o,l,c),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(e){this.image=e}}class WebGLCubeRenderTarget extends WebGLRenderTarget{constructor(e,t={}){super(e,e,t),this.isWebGLCubeRenderTarget=!0;const i={width:e,height:e,depth:1},r=[i,i,i,i,i,i];this.texture=new CubeTexture(r,t.mapping,t.wrapS,t.wrapT,t.magFilter,t.minFilter,t.format,t.type,t.anisotropy,t.encoding),this.texture.isRenderTargetTexture=!0,this.texture.generateMipmaps=void 0!==t.generateMipmaps&&t.generateMipmaps,this.texture.minFilter=void 0!==t.minFilter?t.minFilter:xe}fromEquirectangularTexture(e,t){this.texture.type=t.type,this.texture.encoding=t.encoding,this.texture.generateMipmaps=t.generateMipmaps,this.texture.minFilter=t.minFilter,this.texture.magFilter=t.magFilter;const i={uniforms:{tEquirect:{value:null}},vertexShader:"\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include <begin_vertex>\n\t\t\t\t\t#include <project_vertex>\n\n\t\t\t\t}\n\t\t\t",fragmentShader:"\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include <common>\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t"},r=new BoxGeometry(5,5,5),n=new ShaderMaterial({name:"CubemapFromEquirect",uniforms:cloneUniforms(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:m,blending:y});n.uniforms.tEquirect.value=t;const s=new Mesh(r,n),a=t.minFilter;t.minFilter===be&&(t.minFilter=xe);return new CubeCamera(1,10,this).update(e,s),t.minFilter=a,s.geometry.dispose(),s.material.dispose(),this}clear(e,t,i,r){const n=e.getRenderTarget();for(let s=0;s<6;s++)e.setRenderTarget(this,s),e.clear(t,i,r);e.setRenderTarget(n)}}const cn=new Vector3,hn=new Vector3,un=new Matrix3;class Plane{constructor(e=new Vector3(1,0,0),t=0){this.isPlane=!0,this.normal=e,this.constant=t}set(e,t){return this.normal.copy(e),this.constant=t,this}setComponents(e,t,i,r){return this.normal.set(e,t,i),this.constant=r,this}setFromNormalAndCoplanarPoint(e,t){return this.normal.copy(e),this.constant=-t.dot(this.normal),this}setFromCoplanarPoints(e,t,i){const r=cn.subVectors(i,t).cross(hn.subVectors(e,t)).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,t){return t.copy(this.normal).multiplyScalar(-this.distanceToPoint(e)).add(e)}intersectLine(e,t){const i=e.delta(cn),r=this.normal.dot(i);if(0===r)return 0===this.distanceToPoint(e.start)?t.copy(e.start):null;const n=-(e.start.dot(this.normal)+this.constant)/r;return n<0||n>1?null:t.copy(i).multiplyScalar(n).add(e.start)}intersectsLine(e){const t=this.distanceToPoint(e.start),i=this.distanceToPoint(e.end);return t<0&&i>0||i<0&&t>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,t){const i=t||un.getNormalMatrix(e),r=this.coplanarPoint(cn).applyMatrix4(e),n=this.normal.applyMatrix3(i).normalize();return this.constant=-r.dot(n),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 dn=new Sphere,pn=new Vector3;class Frustum{constructor(e=new Plane,t=new Plane,i=new Plane,r=new Plane,n=new Plane,s=new Plane){this.planes=[e,t,i,r,n,s]}set(e,t,i,r,n,s){const a=this.planes;return a[0].copy(e),a[1].copy(t),a[2].copy(i),a[3].copy(r),a[4].copy(n),a[5].copy(s),this}copy(e){const t=this.planes;for(let i=0;i<6;i++)t[i].copy(e.planes[i]);return this}setFromProjectionMatrix(e){const t=this.planes,i=e.elements,r=i[0],n=i[1],s=i[2],a=i[3],o=i[4],l=i[5],c=i[6],h=i[7],u=i[8],d=i[9],p=i[10],m=i[11],f=i[12],g=i[13],x=i[14],y=i[15];return t[0].setComponents(a-r,h-o,m-u,y-f).normalize(),t[1].setComponents(a+r,h+o,m+u,y+f).normalize(),t[2].setComponents(a+n,h+l,m+d,y+g).normalize(),t[3].setComponents(a-n,h-l,m-d,y-g).normalize(),t[4].setComponents(a-s,h-c,m-p,y-x).normalize(),t[5].setComponents(a+s,h+c,m+p,y+x).normalize(),this}intersectsObject(e){const t=e.geometry;return null===t.boundingSphere&&t.computeBoundingSphere(),dn.copy(t.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(dn)}intersectsSprite(e){return dn.center.set(0,0,0),dn.radius=.7071067811865476,dn.applyMatrix4(e.matrixWorld),this.intersectsSphere(dn)}intersectsSphere(e){const t=this.planes,i=e.center,r=-e.radius;for(let n=0;n<6;n++){if(t[n].distanceToPoint(i)<r)return!1}return!0}intersectsBox(e){const t=this.planes;for(let i=0;i<6;i++){const r=t[i];if(pn.x=r.normal.x>0?e.max.x:e.min.x,pn.y=r.normal.y>0?e.max.y:e.min.y,pn.z=r.normal.z>0?e.max.z:e.min.z,r.distanceToPoint(pn)<0)return!1}return!0}containsPoint(e){const t=this.planes;for(let i=0;i<6;i++)if(t[i].distanceToPoint(e)<0)return!1;return!0}clone(){return(new this.constructor).copy(this)}}function WebGLAnimation(){let e=null,t=!1,i=null,r=null;function onAnimationFrame(t,n){i(t,n),r=e.requestAnimationFrame(onAnimationFrame)}return{start:function(){!0!==t&&null!==i&&(r=e.requestAnimationFrame(onAnimationFrame),t=!0)},stop:function(){e.cancelAnimationFrame(r),t=!1},setAnimationLoop:function(e){i=e},setContext:function(t){e=t}}}function WebGLAttributes(e,t){const i=t.isWebGL2,r=new WeakMap;return{get:function get(e){return e.isInterleavedBufferAttribute&&(e=e.data),r.get(e)},remove:function remove(t){t.isInterleavedBufferAttribute&&(t=t.data);const i=r.get(t);i&&(e.deleteBuffer(i.buffer),r.delete(t))},update:function update(t,n){if(t.isGLBufferAttribute){const e=r.get(t);return void((!e||e.version<t.version)&&r.set(t,{buffer:t.buffer,type:t.type,bytesPerElement:t.elementSize,version:t.version}))}t.isInterleavedBufferAttribute&&(t=t.data);const s=r.get(t);void 0===s?r.set(t,function createBuffer(t,r){const n=t.array,s=t.usage,a=e.createBuffer();let o;if(e.bindBuffer(r,a),e.bufferData(r,n,s),t.onUploadCallback(),n instanceof Float32Array)o=5126;else if(n instanceof Uint16Array)if(t.isFloat16BufferAttribute){if(!i)throw new Error("THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.");o=5131}else o=5123;else if(n instanceof Int16Array)o=5122;else if(n instanceof Uint32Array)o=5125;else if(n instanceof Int32Array)o=5124;else if(n instanceof Int8Array)o=5120;else if(n instanceof Uint8Array)o=5121;else{if(!(n instanceof Uint8ClampedArray))throw new Error("THREE.WebGLAttributes: Unsupported buffer data format: "+n);o=5121}return{buffer:a,type:o,bytesPerElement:n.BYTES_PER_ELEMENT,version:t.version}}(t,n)):s.version<t.version&&(!function updateBuffer(t,r,n){const s=r.array,a=r.updateRange;e.bindBuffer(n,t),-1===a.count?e.bufferSubData(n,0,s):(i?e.bufferSubData(n,a.offset*s.BYTES_PER_ELEMENT,s,a.offset,a.count):e.bufferSubData(n,a.offset*s.BYTES_PER_ELEMENT,s.subarray(a.offset,a.offset+a.count)),a.count=-1)}(s.buffer,t,n),s.version=t.version)}}}class PlaneGeometry extends BufferGeometry{constructor(e=1,t=1,i=1,r=1){super(),this.type="PlaneGeometry",this.parameters={width:e,height:t,widthSegments:i,heightSegments:r};const n=e/2,s=t/2,a=Math.floor(i),o=Math.floor(r),l=a+1,c=o+1,h=e/a,u=t/o,d=[],p=[],m=[],f=[];for(let g=0;g<c;g++){const e=g*u-s;for(let t=0;t<l;t++){const i=t*h-n;p.push(i,-e,0),m.push(0,0,1),f.push(t/a),f.push(1-g/o)}}for(let g=0;g<o;g++)for(let e=0;e<a;e++){const t=e+l*g,i=e+l*(g+1),r=e+1+l*(g+1),n=e+1+l*g;d.push(t,i,n),d.push(i,r,n)}this.setIndex(d),this.setAttribute("position",new Float32BufferAttribute(p,3)),this.setAttribute("normal",new Float32BufferAttribute(m,3)),this.setAttribute("uv",new Float32BufferAttribute(f,2))}static fromJSON(e){return new PlaneGeometry(e.width,e.height,e.widthSegments,e.heightSegments)}}const mn={alphamap_fragment:"#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\n#endif",alphamap_pars_fragment:"#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",alphatest_fragment:"#ifdef USE_ALPHATEST\n\tif ( diffuseColor.a < alphaTest ) discard;\n#endif",alphatest_pars_fragment:"#ifdef USE_ALPHATEST\n\tuniform float alphaTest;\n#endif",aomap_fragment:"#ifdef USE_AOMAP\n\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\n\treflectedLight.indirectDiffuse *= ambientOcclusion;\n\t#if defined( USE_ENVMAP ) && defined( STANDARD )\n\t\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\n\t\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );\n\t#endif\n#endif",aomap_pars_fragment:"#ifdef USE_AOMAP\n\tuniform sampler2D aoMap;\n\tuniform float aoMapIntensity;\n#endif",begin_vertex:"vec3 transformed = vec3( position );",beginnormal_vertex:"vec3 objectNormal = vec3( normal );\n#ifdef USE_TANGENT\n\tvec3 objectTangent = vec3( tangent.xyz );\n#endif",bsdfs:"vec3 BRDF_Lambert( const in vec3 diffuseColor ) {\n\treturn RECIPROCAL_PI * diffuseColor;\n}\nvec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nfloat F_Schlick( const in float f0, const in float f90, const in float dotVH ) {\n\tfloat fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );\n\treturn f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );\n}\nvec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {\n float x = clamp( 1.0 - dotVH, 0.0, 1.0 );\n float x2 = x * x;\n float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );\n return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );\n}\nfloat V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\n\tfloat a2 = pow2( alpha );\n\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\n\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\n\treturn 0.5 / max( gv + gl, EPSILON );\n}\nfloat D_GGX( const in float alpha, const in float dotNH ) {\n\tfloat a2 = pow2( alpha );\n\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\n\treturn RECIPROCAL_PI * a2 / pow2( denom );\n}\nvec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float roughness ) {\n\tfloat alpha = pow2( roughness );\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( f0, f90, dotVH );\n\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\tfloat D = D_GGX( alpha, dotNH );\n\treturn F * ( V * D );\n}\n#ifdef USE_IRIDESCENCE\n\tvec3 BRDF_GGX_Iridescence( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 f0, const in float f90, const in float iridescence, const in vec3 iridescenceFresnel, const in float roughness ) {\n\t\tfloat alpha = pow2( roughness );\n\t\tvec3 halfDir = normalize( lightDir + viewDir );\n\t\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\t\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\t\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\t\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\t\tvec3 F = mix( F_Schlick( f0, f90, dotVH ), iridescenceFresnel, iridescence );\n\t\tfloat V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );\n\t\tfloat D = D_GGX( alpha, dotNH );\n\t\treturn F * ( V * D );\n\t}\n#endif\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\n\tconst float LUT_SIZE = 64.0;\n\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\n\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\n\tfloat dotNV = saturate( dot( N, V ) );\n\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\n\tuv = uv * LUT_SCALE + LUT_BIAS;\n\treturn uv;\n}\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\n\tfloat l = length( f );\n\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\n}\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\n\tfloat x = dot( v1, v2 );\n\tfloat y = abs( x );\n\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\n\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\n\tfloat v = a / b;\n\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\n\treturn cross( v1, v2 ) * theta_sintheta;\n}\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\n\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\n\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\n\tvec3 lightNormal = cross( v1, v2 );\n\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\n\tvec3 T1, T2;\n\tT1 = normalize( V - N * dot( V, N ) );\n\tT2 = - cross( N, T1 );\n\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\n\tvec3 coords[ 4 ];\n\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\n\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\n\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\n\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\n\tcoords[ 0 ] = normalize( coords[ 0 ] );\n\tcoords[ 1 ] = normalize( coords[ 1 ] );\n\tcoords[ 2 ] = normalize( coords[ 2 ] );\n\tcoords[ 3 ] = normalize( coords[ 3 ] );\n\tvec3 vectorFormFactor = vec3( 0.0 );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\n\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\n\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\n\treturn vec3( result );\n}\nfloat G_BlinnPhong_Implicit( ) {\n\treturn 0.25;\n}\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\n\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\n}\nvec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat dotVH = saturate( dot( viewDir, halfDir ) );\n\tvec3 F = F_Schlick( specularColor, 1.0, dotVH );\n\tfloat G = G_BlinnPhong_Implicit( );\n\tfloat D = D_BlinnPhong( shininess, dotNH );\n\treturn F * ( G * D );\n}\n#if defined( USE_SHEEN )\nfloat D_Charlie( float roughness, float dotNH ) {\n\tfloat alpha = pow2( roughness );\n\tfloat invAlpha = 1.0 / alpha;\n\tfloat cos2h = dotNH * dotNH;\n\tfloat sin2h = max( 1.0 - cos2h, 0.0078125 );\n\treturn ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );\n}\nfloat V_Neubelt( float dotNV, float dotNL ) {\n\treturn saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );\n}\nvec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {\n\tvec3 halfDir = normalize( lightDir + viewDir );\n\tfloat dotNL = saturate( dot( normal, lightDir ) );\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat dotNH = saturate( dot( normal, halfDir ) );\n\tfloat D = D_Charlie( sheenRoughness, dotNH );\n\tfloat V = V_Neubelt( dotNV, dotNL );\n\treturn sheenColor * ( D * V );\n}\n#endif",iridescence_fragment:"#ifdef USE_IRIDESCENCE\n\tconst mat3 XYZ_TO_REC709 = mat3(\n\t\t 3.2404542, -0.9692660, 0.0556434,\n\t\t-1.5371385, 1.8760108, -0.2040259,\n\t\t-0.4985314, 0.0415560, 1.0572252\n\t);\n\tvec3 Fresnel0ToIor( vec3 fresnel0 ) {\n\t\tvec3 sqrtF0 = sqrt( fresnel0 );\n\t\treturn ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );\n\t}\n\tvec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );\n\t}\n\tfloat IorToFresnel0( float transmittedIor, float incidentIor ) {\n\t\treturn pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));\n\t}\n\tvec3 evalSensitivity( float OPD, vec3 shift ) {\n\t\tfloat phase = 2.0 * PI * OPD * 1.0e-9;\n\t\tvec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );\n\t\tvec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );\n\t\tvec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );\n\t\tvec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );\n\t\txyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );\n\t\txyz /= 1.0685e-7;\n\t\tvec3 rgb = XYZ_TO_REC709 * xyz;\n\t\treturn rgb;\n\t}\n\tvec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {\n\t\tvec3 I;\n\t\tfloat iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );\n\t\tfloat sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );\n\t\tfloat cosTheta2Sq = 1.0 - sinTheta2Sq;\n\t\tif ( cosTheta2Sq < 0.0 ) {\n\t\t\t return vec3( 1.0 );\n\t\t}\n\t\tfloat cosTheta2 = sqrt( cosTheta2Sq );\n\t\tfloat R0 = IorToFresnel0( iridescenceIOR, outsideIOR );\n\t\tfloat R12 = F_Schlick( R0, 1.0, cosTheta1 );\n\t\tfloat R21 = R12;\n\t\tfloat T121 = 1.0 - R12;\n\t\tfloat phi12 = 0.0;\n\t\tif ( iridescenceIOR < outsideIOR ) phi12 = PI;\n\t\tfloat phi21 = PI - phi12;\n\t\tvec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );\t\tvec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );\n\t\tvec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );\n\t\tvec3 phi23 = vec3( 0.0 );\n\t\tif ( baseIOR[ 0 ] < iridescenceIOR ) phi23[ 0 ] = PI;\n\t\tif ( baseIOR[ 1 ] < iridescenceIOR ) phi23[ 1 ] = PI;\n\t\tif ( baseIOR[ 2 ] < iridescenceIOR ) phi23[ 2 ] = PI;\n\t\tfloat OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;\n\t\tvec3 phi = vec3( phi21 ) + phi23;\n\t\tvec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );\n\t\tvec3 r123 = sqrt( R123 );\n\t\tvec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );\n\t\tvec3 C0 = R12 + Rs;\n\t\tI = C0;\n\t\tvec3 Cm = Rs - T121;\n\t\tfor ( int m = 1; m <= 2; ++ m ) {\n\t\t\tCm *= r123;\n\t\t\tvec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );\n\t\t\tI += Cm * Sm;\n\t\t}\n\t\treturn max( I, vec3( 0.0 ) );\n\t}\n#endif",bumpmap_pars_fragment:"#ifdef USE_BUMPMAP\n\tuniform sampler2D bumpMap;\n\tuniform float bumpScale;\n\tvec2 dHdxy_fwd() {\n\t\tvec2 dSTdx = dFdx( vUv );\n\t\tvec2 dSTdy = dFdy( vUv );\n\t\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\n\t\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\n\t\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\n\t\treturn vec2( dBx, dBy );\n\t}\n\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {\n\t\tvec3 vSigmaX = dFdx( surf_pos.xyz );\n\t\tvec3 vSigmaY = dFdy( surf_pos.xyz );\n\t\tvec3 vN = surf_norm;\n\t\tvec3 R1 = cross( vSigmaY, vN );\n\t\tvec3 R2 = cross( vN, vSigmaX );\n\t\tfloat fDet = dot( vSigmaX, R1 ) * faceDirection;\n\t\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\n\t\treturn normalize( abs( fDet ) * surf_norm - vGrad );\n\t}\n#endif",clipping_planes_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvec4 plane;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\n\t\tplane = clippingPlanes[ i ];\n\t\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\n\t}\n\t#pragma unroll_loop_end\n\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\n\t\tbool clipped = true;\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\n\t\t\tplane = clippingPlanes[ i ];\n\t\t\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\n\t\t}\n\t\t#pragma unroll_loop_end\n\t\tif ( clipped ) discard;\n\t#endif\n#endif",clipping_planes_pars_fragment:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\n#endif",clipping_planes_pars_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvarying vec3 vClipPosition;\n#endif",clipping_planes_vertex:"#if NUM_CLIPPING_PLANES > 0\n\tvClipPosition = - mvPosition.xyz;\n#endif",color_fragment:"#if defined( USE_COLOR_ALPHA )\n\tdiffuseColor *= vColor;\n#elif defined( USE_COLOR )\n\tdiffuseColor.rgb *= vColor;\n#endif",color_pars_fragment:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR )\n\tvarying vec3 vColor;\n#endif",color_pars_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvarying vec4 vColor;\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvarying vec3 vColor;\n#endif",color_vertex:"#if defined( USE_COLOR_ALPHA )\n\tvColor = vec4( 1.0 );\n#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\n\tvColor = vec3( 1.0 );\n#endif\n#ifdef USE_COLOR\n\tvColor *= color;\n#endif\n#ifdef USE_INSTANCING_COLOR\n\tvColor.xyz *= instanceColor.xyz;\n#endif",common:"#define PI 3.141592653589793\n#define PI2 6.283185307179586\n#define PI_HALF 1.5707963267948966\n#define RECIPROCAL_PI 0.3183098861837907\n#define RECIPROCAL_PI2 0.15915494309189535\n#define EPSILON 1e-6\n#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\n#define whiteComplement( a ) ( 1.0 - saturate( a ) )\nfloat pow2( const in float x ) { return x*x; }\nvec3 pow2( const in vec3 x ) { return x*x; }\nfloat pow3( const in float x ) { return x*x*x; }\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\nfloat max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }\nfloat average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }\nhighp float rand( const in vec2 uv ) {\n\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\n\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\n\treturn fract( sin( sn ) * c );\n}\n#ifdef HIGH_PRECISION\n\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\n#else\n\tfloat precisionSafeLength( vec3 v ) {\n\t\tfloat maxComponent = max3( abs( v ) );\n\t\treturn length( v / maxComponent ) * maxComponent;\n\t}\n#endif\nstruct IncidentLight {\n\tvec3 color;\n\tvec3 direction;\n\tbool visible;\n};\nstruct ReflectedLight {\n\tvec3 directDiffuse;\n\tvec3 directSpecular;\n\tvec3 indirectDiffuse;\n\tvec3 indirectSpecular;\n};\nstruct GeometricContext {\n\tvec3 position;\n\tvec3 normal;\n\tvec3 viewDir;\n#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal;\n#endif\n};\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n}\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\n\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\n}\nmat3 transposeMat3( const in mat3 m ) {\n\tmat3 tmp;\n\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\n\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\n\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\n\treturn tmp;\n}\nfloat luminance( const in vec3 rgb ) {\n\tconst vec3 weights = vec3( 0.2126729, 0.7151522, 0.0721750 );\n\treturn dot( weights, rgb );\n}\nbool isPerspectiveMatrix( mat4 m ) {\n\treturn m[ 2 ][ 3 ] == - 1.0;\n}\nvec2 equirectUv( in vec3 dir ) {\n\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\n\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\n\treturn vec2( u, v );\n}",cube_uv_reflection_fragment:"#ifdef ENVMAP_TYPE_CUBE_UV\n\t#define cubeUV_minMipLevel 4.0\n\t#define cubeUV_minTileSize 16.0\n\tfloat getFace( vec3 direction ) {\n\t\tvec3 absDirection = abs( direction );\n\t\tfloat face = - 1.0;\n\t\tif ( absDirection.x > absDirection.z ) {\n\t\t\tif ( absDirection.x > absDirection.y )\n\t\t\t\tface = direction.x > 0.0 ? 0.0 : 3.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t} else {\n\t\t\tif ( absDirection.z > absDirection.y )\n\t\t\t\tface = direction.z > 0.0 ? 2.0 : 5.0;\n\t\t\telse\n\t\t\t\tface = direction.y > 0.0 ? 1.0 : 4.0;\n\t\t}\n\t\treturn face;\n\t}\n\tvec2 getUV( vec3 direction, float face ) {\n\t\tvec2 uv;\n\t\tif ( face == 0.0 ) {\n\t\t\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 1.0 ) {\n\t\t\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\n\t\t} else if ( face == 2.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\n\t\t} else if ( face == 3.0 ) {\n\t\t\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\n\t\t} else if ( face == 4.0 ) {\n\t\t\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\n\t\t} else {\n\t\t\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\n\t\t}\n\t\treturn 0.5 * ( uv + 1.0 );\n\t}\n\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\n\t\tfloat face = getFace( direction );\n\t\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\n\t\tmipInt = max( mipInt, cubeUV_minMipLevel );\n\t\tfloat faceSize = exp2( mipInt );\n\t\tvec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;\n\t\tif ( face > 2.0 ) {\n\t\t\tuv.y += faceSize;\n\t\t\tface -= 3.0;\n\t\t}\n\t\tuv.x += face * faceSize;\n\t\tuv.x += filterInt * 3.0 * cubeUV_minTileSize;\n\t\tuv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );\n\t\tuv.x *= CUBEUV_TEXEL_WIDTH;\n\t\tuv.y *= CUBEUV_TEXEL_HEIGHT;\n\t\t#ifdef texture2DGradEXT\n\t\t\treturn texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;\n\t\t#else\n\t\t\treturn texture2D( envMap, uv ).rgb;\n\t\t#endif\n\t}\n\t#define r0 1.0\n\t#define v0 0.339\n\t#define m0 - 2.0\n\t#define r1 0.8\n\t#define v1 0.276\n\t#define m1 - 1.0\n\t#define r4 0.4\n\t#define v4 0.046\n\t#define m4 2.0\n\t#define r5 0.305\n\t#define v5 0.016\n\t#define m5 3.0\n\t#define r6 0.21\n\t#define v6 0.0038\n\t#define m6 4.0\n\tfloat roughnessToMip( float roughness ) {\n\t\tfloat mip = 0.0;\n\t\tif ( roughness >= r1 ) {\n\t\t\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\n\t\t} else if ( roughness >= r4 ) {\n\t\t\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\n\t\t} else if ( roughness >= r5 ) {\n\t\t\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\n\t\t} else if ( roughness >= r6 ) {\n\t\t\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\n\t\t} else {\n\t\t\tmip = - 2.0 * log2( 1.16 * roughness );\t\t}\n\t\treturn mip;\n\t}\n\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\n\t\tfloat mip = clamp( roughnessToMip( roughness ), m0, CUBEUV_MAX_MIP );\n\t\tfloat mipF = fract( mip );\n\t\tfloat mipInt = floor( mip );\n\t\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\n\t\tif ( mipF == 0.0 ) {\n\t\t\treturn vec4( color0, 1.0 );\n\t\t} else {\n\t\t\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\n\t\t\treturn vec4( mix( color0, color1, mipF ), 1.0 );\n\t\t}\n\t}\n#endif",defaultnormal_vertex:"vec3 transformedNormal = objectNormal;\n#ifdef USE_INSTANCING\n\tmat3 m = mat3( instanceMatrix );\n\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\n\ttransformedNormal = m * transformedNormal;\n#endif\ntransformedNormal = normalMatrix * transformedNormal;\n#ifdef FLIP_SIDED\n\ttransformedNormal = - transformedNormal;\n#endif\n#ifdef USE_TANGENT\n\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#ifdef FLIP_SIDED\n\t\ttransformedTangent = - transformedTangent;\n\t#endif\n#endif",displacementmap_pars_vertex:"#ifdef USE_DISPLACEMENTMAP\n\tuniform sampler2D displacementMap;\n\tuniform float displacementScale;\n\tuniform float displacementBias;\n#endif",displacementmap_vertex:"#ifdef USE_DISPLACEMENTMAP\n\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\n#endif",emissivemap_fragment:"#ifdef USE_EMISSIVEMAP\n\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\n\ttotalEmissiveRadiance *= emissiveColor.rgb;\n#endif",emissivemap_pars_fragment:"#ifdef USE_EMISSIVEMAP\n\tuniform sampler2D emissiveMap;\n#endif",encodings_fragment:"gl_FragColor = linearToOutputTexel( gl_FragColor );",encodings_pars_fragment:"vec4 LinearToLinear( in vec4 value ) {\n\treturn value;\n}\nvec4 LinearTosRGB( in vec4 value ) {\n\treturn 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 );\n}",envmap_fragment:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvec3 cameraToFrag;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\n\t\t#else\n\t\t\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\n\t\t#endif\n\t#else\n\t\tvec3 reflectVec = vReflect;\n\t#endif\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\n\t#elif defined( ENVMAP_TYPE_CUBE_UV )\n\t\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\n\t#else\n\t\tvec4 envColor = vec4( 0.0 );\n\t#endif\n\t#ifdef ENVMAP_BLENDING_MULTIPLY\n\t\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_MIX )\n\t\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\n\t#elif defined( ENVMAP_BLENDING_ADD )\n\t\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\n\t#endif\n#endif",envmap_common_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float envMapIntensity;\n\tuniform float flipEnvMap;\n\t#ifdef ENVMAP_TYPE_CUBE\n\t\tuniform samplerCube envMap;\n\t#else\n\t\tuniform sampler2D envMap;\n\t#endif\n\t\n#endif",envmap_pars_fragment:"#ifdef USE_ENVMAP\n\tuniform float reflectivity;\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\tvarying vec3 vWorldPosition;\n\t\tuniform float refractionRatio;\n\t#else\n\t\tvarying vec3 vReflect;\n\t#endif\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\n\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\n\t\t#define ENV_WORLDPOS\n\t#endif\n\t#ifdef ENV_WORLDPOS\n\t\t\n\t\tvarying vec3 vWorldPosition;\n\t#else\n\t\tvarying vec3 vReflect;\n\t\tuniform float refractionRatio;\n\t#endif\n#endif",envmap_physical_pars_fragment:"#if defined( USE_ENVMAP )\n\tvec3 getIBLIrradiance( const in vec3 normal ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\n\t\t\treturn PI * envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n\tvec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {\n\t\t#if defined( ENVMAP_TYPE_CUBE_UV )\n\t\t\tvec3 reflectVec = reflect( - viewDir, normal );\n\t\t\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\n\t\t\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\n\t\t\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\n\t\t\treturn envMapColor.rgb * envMapIntensity;\n\t\t#else\n\t\t\treturn vec3( 0.0 );\n\t\t#endif\n\t}\n#endif",envmap_vertex:"#ifdef USE_ENVMAP\n\t#ifdef ENV_WORLDPOS\n\t\tvWorldPosition = worldPosition.xyz;\n\t#else\n\t\tvec3 cameraToVertex;\n\t\tif ( isOrthographic ) {\n\t\t\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\n\t\t} else {\n\t\t\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\n\t\t}\n\t\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\t#ifdef ENVMAP_MODE_REFLECTION\n\t\t\tvReflect = reflect( cameraToVertex, worldNormal );\n\t\t#else\n\t\t\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\n\t\t#endif\n\t#endif\n#endif",fog_vertex:"#ifdef USE_FOG\n\tvFogDepth = - mvPosition.z;\n#endif",fog_pars_vertex:"#ifdef USE_FOG\n\tvarying float vFogDepth;\n#endif",fog_fragment:"#ifdef USE_FOG\n\t#ifdef FOG_EXP2\n\t\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );\n\t#else\n\t\tfloat fogFactor = smoothstep( fogNear, fogFar, vFogDepth );\n\t#endif\n\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\n#endif",fog_pars_fragment:"#ifdef USE_FOG\n\tuniform vec3 fogColor;\n\tvarying float vFogDepth;\n\t#ifdef FOG_EXP2\n\t\tuniform float fogDensity;\n\t#else\n\t\tuniform float fogNear;\n\t\tuniform float fogFar;\n\t#endif\n#endif",gradientmap_pars_fragment:"#ifdef USE_GRADIENTMAP\n\tuniform sampler2D gradientMap;\n#endif\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\n\tfloat dotNL = dot( normal, lightDirection );\n\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\n\t#ifdef USE_GRADIENTMAP\n\t\treturn vec3( texture2D( gradientMap, coord ).r );\n\t#else\n\t\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\n\t#endif\n}",lightmap_fragment:"#ifdef USE_LIGHTMAP\n\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\treflectedLight.indirectDiffuse += lightMapIrradiance;\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\n\tuniform sampler2D lightMap;\n\tuniform float lightMapIntensity;\n#endif",lights_lambert_vertex:"vec3 diffuse = vec3( 1.0 );\nGeometricContext geometry;\ngeometry.position = mvPosition.xyz;\ngeometry.normal = normalize( transformedNormal );\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\nGeometricContext backGeometry;\nbackGeometry.position = geometry.position;\nbackGeometry.normal = -geometry.normal;\nbackGeometry.viewDir = geometry.viewDir;\nvLightFront = vec3( 0.0 );\nvIndirectFront = vec3( 0.0 );\n#ifdef DOUBLE_SIDED\n\tvLightBack = vec3( 0.0 );\n\tvIndirectBack = vec3( 0.0 );\n#endif\nIncidentLight directLight;\nfloat dotNL;\nvec3 directLightColor_Diffuse;\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry.normal );\n#ifdef DOUBLE_SIDED\n\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\n\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry.normal );\n#endif\n#if NUM_POINT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tgetPointLightInfo( pointLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tgetSpotLightInfo( spotLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_DIR_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tgetDirectionalLightInfo( directionalLights[ i ], geometry, directLight );\n\t\tdotNL = dot( geometry.normal, directLight.direction );\n\t\tdirectLightColor_Diffuse = directLight.color;\n\t\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvLightBack += saturate( - dotNL ) * directLightColor_Diffuse;\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry.normal );\n\t\t#endif\n\t}\n\t#pragma unroll_loop_end\n#endif",lights_pars_begin:"uniform bool receiveShadow;\nuniform vec3 ambientLightColor;\nuniform vec3 lightProbe[ 9 ];\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\n\tfloat x = normal.x, y = normal.y, z = normal.z;\n\tvec3 result = shCoefficients[ 0 ] * 0.886227;\n\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\n\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\n\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\n\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\n\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\n\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\n\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\n\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\n\treturn result;\n}\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {\n\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\n\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\n\treturn irradiance;\n}\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\n\tvec3 irradiance = ambientLightColor;\n\treturn irradiance;\n}\nfloat getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\n\t#if defined ( PHYSICALLY_CORRECT_LIGHTS )\n\t\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\n\t\tif ( cutoffDistance > 0.0 ) {\n\t\t\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\n\t\t}\n\t\treturn distanceFalloff;\n\t#else\n\t\tif ( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\n\t\t\treturn pow( saturate( - lightDistance / cutoffDistance + 1.0 ), decayExponent );\n\t\t}\n\t\treturn 1.0;\n\t#endif\n}\nfloat getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {\n\treturn smoothstep( coneCosine, penumbraCosine, angleCosine );\n}\n#if NUM_DIR_LIGHTS > 0\n\tstruct DirectionalLight {\n\t\tvec3 direction;\n\t\tvec3 color;\n\t};\n\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\n\tvoid getDirectionalLightInfo( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tlight.color = directionalLight.color;\n\t\tlight.direction = directionalLight.direction;\n\t\tlight.visible = true;\n\t}\n#endif\n#if NUM_POINT_LIGHTS > 0\n\tstruct PointLight {\n\t\tvec3 position;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t};\n\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\n\tvoid getPointLightInfo( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = pointLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat lightDistance = length( lVector );\n\t\tlight.color = pointLight.color;\n\t\tlight.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );\n\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t}\n#endif\n#if NUM_SPOT_LIGHTS > 0\n\tstruct SpotLight {\n\t\tvec3 position;\n\t\tvec3 direction;\n\t\tvec3 color;\n\t\tfloat distance;\n\t\tfloat decay;\n\t\tfloat coneCos;\n\t\tfloat penumbraCos;\n\t};\n\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\n\tvoid getSpotLightInfo( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight light ) {\n\t\tvec3 lVector = spotLight.position - geometry.position;\n\t\tlight.direction = normalize( lVector );\n\t\tfloat angleCos = dot( light.direction, spotLight.direction );\n\t\tfloat spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );\n\t\tif ( spotAttenuation > 0.0 ) {\n\t\t\tfloat lightDistance = length( lVector );\n\t\t\tlight.color = spotLight.color * spotAttenuation;\n\t\t\tlight.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );\n\t\t\tlight.visible = ( light.color != vec3( 0.0 ) );\n\t\t} else {\n\t\t\tlight.color = vec3( 0.0 );\n\t\t\tlight.visible = false;\n\t\t}\n\t}\n#endif\n#if NUM_RECT_AREA_LIGHTS > 0\n\tstruct RectAreaLight {\n\t\tvec3 color;\n\t\tvec3 position;\n\t\tvec3 halfWidth;\n\t\tvec3 halfHeight;\n\t};\n\tuniform sampler2D ltc_1;\tuniform sampler2D ltc_2;\n\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\n#endif\n#if NUM_HEMI_LIGHTS > 0\n\tstruct HemisphereLight {\n\t\tvec3 direction;\n\t\tvec3 skyColor;\n\t\tvec3 groundColor;\n\t};\n\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\n\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {\n\t\tfloat dotNL = dot( normal, hemiLight.direction );\n\t\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\n\t\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\n\t\treturn irradiance;\n\t}\n#endif",lights_toon_fragment:"ToonMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;",lights_toon_pars_fragment:"varying vec3 vViewPosition;\nstruct ToonMaterial {\n\tvec3 diffuseColor;\n};\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_Toon\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Toon\n#define Material_LightProbeLOD( material )\t(0)",lights_phong_fragment:"BlinnPhongMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb;\nmaterial.specularColor = specular;\nmaterial.specularShininess = shininess;\nmaterial.specularStrength = specularStrength;",lights_phong_pars_fragment:"varying vec3 vViewPosition;\nstruct BlinnPhongMaterial {\n\tvec3 diffuseColor;\n\tvec3 specularColor;\n\tfloat specularShininess;\n\tfloat specularStrength;\n};\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n\treflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularShininess ) * material.specularStrength;\n}\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\n#define RE_Direct\t\t\t\tRE_Direct_BlinnPhong\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_BlinnPhong\n#define Material_LightProbeLOD( material )\t(0)",lights_physical_fragment:"PhysicalMaterial material;\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\nmaterial.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;\nmaterial.roughness = min( material.roughness, 1.0 );\n#ifdef IOR\n\t#ifdef SPECULAR\n\t\tfloat specularIntensityFactor = specularIntensity;\n\t\tvec3 specularColorFactor = specularColor;\n\t\t#ifdef USE_SPECULARINTENSITYMAP\n\t\t\tspecularIntensityFactor *= texture2D( specularIntensityMap, vUv ).a;\n\t\t#endif\n\t\t#ifdef USE_SPECULARCOLORMAP\n\t\t\tspecularColorFactor *= texture2D( specularColorMap, vUv ).rgb;\n\t\t#endif\n\t\tmaterial.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );\n\t#else\n\t\tfloat specularIntensityFactor = 1.0;\n\t\tvec3 specularColorFactor = vec3( 1.0 );\n\t\tmaterial.specularF90 = 1.0;\n\t#endif\n\tmaterial.specularColor = mix( min( pow2( ( ior - 1.0 ) / ( ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );\n#else\n\tmaterial.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );\n\tmaterial.specularF90 = 1.0;\n#endif\n#ifdef USE_CLEARCOAT\n\tmaterial.clearcoat = clearcoat;\n\tmaterial.clearcoatRoughness = clearcoatRoughness;\n\tmaterial.clearcoatF0 = vec3( 0.04 );\n\tmaterial.clearcoatF90 = 1.0;\n\t#ifdef USE_CLEARCOATMAP\n\t\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\n\t#endif\n\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\t\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\n\t#endif\n\tmaterial.clearcoat = saturate( material.clearcoat );\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\n\tmaterial.clearcoatRoughness += geometryRoughness;\n\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\n#endif\n#ifdef USE_IRIDESCENCE\n\tmaterial.iridescence = iridescence;\n\tmaterial.iridescenceIOR = iridescenceIOR;\n\t#ifdef USE_IRIDESCENCEMAP\n\t\tmaterial.iridescence *= texture2D( iridescenceMap, vUv ).r;\n\t#endif\n\t#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\t\tmaterial.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vUv ).g + iridescenceThicknessMinimum;\n\t#else\n\t\tmaterial.iridescenceThickness = iridescenceThicknessMaximum;\n\t#endif\n#endif\n#ifdef USE_SHEEN\n\tmaterial.sheenColor = sheenColor;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tmaterial.sheenColor *= texture2D( sheenColorMap, vUv ).rgb;\n\t#endif\n\tmaterial.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tmaterial.sheenRoughness *= texture2D( sheenRoughnessMap, vUv ).a;\n\t#endif\n#endif",lights_physical_pars_fragment:"struct PhysicalMaterial {\n\tvec3 diffuseColor;\n\tfloat roughness;\n\tvec3 specularColor;\n\tfloat specularF90;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat clearcoat;\n\t\tfloat clearcoatRoughness;\n\t\tvec3 clearcoatF0;\n\t\tfloat clearcoatF90;\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\tfloat iridescence;\n\t\tfloat iridescenceIOR;\n\t\tfloat iridescenceThickness;\n\t\tvec3 iridescenceFresnel;\n\t\tvec3 iridescenceF0;\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tvec3 sheenColor;\n\t\tfloat sheenRoughness;\n\t#endif\n};\nvec3 clearcoatSpecular = vec3( 0.0 );\nvec3 sheenSpecular = vec3( 0.0 );\nfloat IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tfloat r2 = roughness * roughness;\n\tfloat a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;\n\tfloat b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;\n\tfloat DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );\n\treturn saturate( DG * RECIPROCAL_PI );\n}\nvec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {\n\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\n\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\n\tvec4 r = roughness * c0 + c1;\n\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\n\tvec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;\n\treturn fab;\n}\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\treturn specularColor * fab.x + specularF90 * fab.y;\n}\n#ifdef USE_IRIDESCENCE\nvoid 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 ) {\n#else\nvoid 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 ) {\n#endif\n\tvec2 fab = DFGApprox( normal, viewDir, roughness );\n\t#ifdef USE_IRIDESCENCE\n\t\tvec3 Fr = mix( specularColor, iridescenceF0, iridescence );\n\t#else\n\t\tvec3 Fr = specularColor;\n\t#endif\n\tvec3 FssEss = Fr * fab.x + specularF90 * fab.y;\n\tfloat Ess = fab.x + fab.y;\n\tfloat Ems = 1.0 - Ess;\n\tvec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\n\tsingleScatter += FssEss;\n\tmultiScatter += Fms * Ems;\n}\n#if NUM_RECT_AREA_LIGHTS > 0\n\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\t\tvec3 normal = geometry.normal;\n\t\tvec3 viewDir = geometry.viewDir;\n\t\tvec3 position = geometry.position;\n\t\tvec3 lightPos = rectAreaLight.position;\n\t\tvec3 halfWidth = rectAreaLight.halfWidth;\n\t\tvec3 halfHeight = rectAreaLight.halfHeight;\n\t\tvec3 lightColor = rectAreaLight.color;\n\t\tfloat roughness = material.roughness;\n\t\tvec3 rectCoords[ 4 ];\n\t\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\t\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\n\t\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\n\t\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\n\t\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\n\t\tvec4 t1 = texture2D( ltc_1, uv );\n\t\tvec4 t2 = texture2D( ltc_2, uv );\n\t\tmat3 mInv = mat3(\n\t\t\tvec3( t1.x, 0, t1.y ),\n\t\t\tvec3( 0, 1, 0 ),\n\t\t\tvec3( t1.z, 0, t1.w )\n\t\t);\n\t\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\n\t\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\n\t\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\n\t}\n#endif\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\n\tvec3 irradiance = dotNL * directLight.color;\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNLcc = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\n\t\tvec3 ccIrradiance = dotNLcc * directLight.color;\n\t\tclearcoatSpecular += ccIrradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.clearcoatNormal, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * BRDF_Sheen( directLight.direction, geometry.viewDir, geometry.normal, material.sheenColor, material.sheenRoughness );\n\t#endif\n\t#ifdef USE_IRIDESCENCE\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX_Iridescence( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness );\n\t#else\n\t\treflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometry.viewDir, geometry.normal, material.specularColor, material.specularF90, material.roughness );\n\t#endif\n\treflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\n\treflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );\n}\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatSpecular += clearcoatRadiance * EnvironmentBRDF( geometry.clearcoatNormal, geometry.viewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );\n\t#endif\n\t#ifdef USE_SHEEN\n\t\tsheenSpecular += irradiance * material.sheenColor * IBLSheenBRDF( geometry.normal, geometry.viewDir, material.sheenRoughness );\n\t#endif\n\tvec3 singleScattering = vec3( 0.0 );\n\tvec3 multiScattering = vec3( 0.0 );\n\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\n\t#ifdef USE_IRIDESCENCE\n\t\tcomputeMultiscatteringIridescence( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );\n\t#else\n\t\tcomputeMultiscattering( geometry.normal, geometry.viewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );\n\t#endif\n\tvec3 totalScattering = singleScattering + multiScattering;\n\tvec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );\n\treflectedLight.indirectSpecular += radiance * singleScattering;\n\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\n\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\n}\n#define RE_Direct\t\t\t\tRE_Direct_Physical\n#define RE_Direct_RectArea\t\tRE_Direct_RectArea_Physical\n#define RE_IndirectDiffuse\t\tRE_IndirectDiffuse_Physical\n#define RE_IndirectSpecular\t\tRE_IndirectSpecular_Physical\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\n\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\n}",lights_fragment_begin:"\nGeometricContext geometry;\ngeometry.position = - vViewPosition;\ngeometry.normal = normal;\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\n#ifdef USE_CLEARCOAT\n\tgeometry.clearcoatNormal = clearcoatNormal;\n#endif\n#ifdef USE_IRIDESCENCE\n\tfloat dotNVi = saturate( dot( normal, geometry.viewDir ) );\n\tif ( material.iridescenceThickness == 0.0 ) {\n\t\tmaterial.iridescence = 0.0;\n\t} else {\n\t\tmaterial.iridescence = saturate( material.iridescence );\n\t}\n\tif ( material.iridescence > 0.0 ) {\n\t\tmaterial.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );\n\t\tmaterial.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );\n\t}\n#endif\nIncidentLight directLight;\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\n\tPointLight pointLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\n\t\tpointLight = pointLights[ i ];\n\t\tgetPointLightInfo( pointLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\n\t\tpointLightShadow = pointLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\n\tSpotLight spotLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\n\t\tspotLight = spotLights[ i ];\n\t\tgetSpotLightInfo( spotLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\n\t\tspotLightShadow = spotLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\n\tDirectionalLight directionalLight;\n\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLightShadow;\n\t#endif\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\n\t\tdirectionalLight = directionalLights[ i ];\n\t\tgetDirectionalLightInfo( directionalLight, geometry, directLight );\n\t\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\n\t\tdirectionalLightShadow = directionalLightShadows[ i ];\n\t\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t\t#endif\n\t\tRE_Direct( directLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\n\tRectAreaLight rectAreaLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\n\t\trectAreaLight = rectAreaLights[ i ];\n\t\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\n\t}\n\t#pragma unroll_loop_end\n#endif\n#if defined( RE_IndirectDiffuse )\n\tvec3 iblIrradiance = vec3( 0.0 );\n\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\n\tirradiance += getLightProbeIrradiance( lightProbe, geometry.normal );\n\t#if ( NUM_HEMI_LIGHTS > 0 )\n\t\t#pragma unroll_loop_start\n\t\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\n\t\t\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry.normal );\n\t\t}\n\t\t#pragma unroll_loop_end\n\t#endif\n#endif\n#if defined( RE_IndirectSpecular )\n\tvec3 radiance = vec3( 0.0 );\n\tvec3 clearcoatRadiance = vec3( 0.0 );\n#endif",lights_fragment_maps:"#if defined( RE_IndirectDiffuse )\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\tvec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;\n\t\tirradiance += lightMapIrradiance;\n\t#endif\n\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\n\t\tiblIrradiance += getIBLIrradiance( geometry.normal );\n\t#endif\n#endif\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\n\tradiance += getIBLRadiance( geometry.viewDir, geometry.normal, material.roughness );\n\t#ifdef USE_CLEARCOAT\n\t\tclearcoatRadiance += getIBLRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness );\n\t#endif\n#endif",lights_fragment_end:"#if defined( RE_IndirectDiffuse )\n\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\n#endif\n#if defined( RE_IndirectSpecular )\n\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\n#endif",logdepthbuf_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\n#endif",logdepthbuf_pars_fragment:"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\n\tuniform float logDepthBufFC;\n\tvarying float vFragDepth;\n\tvarying float vIsPerspective;\n#endif",logdepthbuf_pars_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvarying float vFragDepth;\n\t\tvarying float vIsPerspective;\n\t#else\n\t\tuniform float logDepthBufFC;\n\t#endif\n#endif",logdepthbuf_vertex:"#ifdef USE_LOGDEPTHBUF\n\t#ifdef USE_LOGDEPTHBUF_EXT\n\t\tvFragDepth = 1.0 + gl_Position.w;\n\t\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\n\t#else\n\t\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\n\t\t\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\n\t\t\tgl_Position.z *= gl_Position.w;\n\t\t}\n\t#endif\n#endif",map_fragment:"#ifdef USE_MAP\n\tvec4 sampledDiffuseColor = texture2D( map, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tsampledDiffuseColor = 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 );\n\t#endif\n\tdiffuseColor *= sampledDiffuseColor;\n#endif",map_pars_fragment:"#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif",map_particle_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\n#endif\n#ifdef USE_MAP\n\tdiffuseColor *= texture2D( map, uv );\n#endif\n#ifdef USE_ALPHAMAP\n\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\n#endif",map_particle_pars_fragment:"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\n\tuniform mat3 uvTransform;\n#endif\n#ifdef USE_MAP\n\tuniform sampler2D map;\n#endif\n#ifdef USE_ALPHAMAP\n\tuniform sampler2D alphaMap;\n#endif",metalnessmap_fragment:"float metalnessFactor = metalness;\n#ifdef USE_METALNESSMAP\n\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\n\tmetalnessFactor *= texelMetalness.b;\n#endif",metalnessmap_pars_fragment:"#ifdef USE_METALNESSMAP\n\tuniform sampler2D metalnessMap;\n#endif",morphcolor_vertex:"#if defined( USE_MORPHCOLORS ) && defined( MORPHTARGETS_TEXTURE )\n\tvColor *= morphTargetBaseInfluence;\n\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t#if defined( USE_COLOR_ALPHA )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];\n\t\t#elif defined( USE_COLOR )\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];\n\t\t#endif\n\t}\n#endif",morphnormal_vertex:"#ifdef USE_MORPHNORMALS\n\tobjectNormal *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\n\t\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\n\t\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\n\t\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\n\t#endif\n#endif",morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\n\tuniform float morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tuniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];\n\t\tuniform sampler2DArray morphTargetsTexture;\n\t\tuniform ivec2 morphTargetsTextureSize;\n\t\tvec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {\n\t\t\tint texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;\n\t\t\tint y = texelIndex / morphTargetsTextureSize.x;\n\t\t\tint x = texelIndex - y * morphTargetsTextureSize.x;\n\t\t\tivec3 morphUV = ivec3( x, y, morphTargetIndex );\n\t\t\treturn texelFetch( morphTargetsTexture, morphUV, 0 );\n\t\t}\n\t#else\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\tuniform float morphTargetInfluences[ 8 ];\n\t\t#else\n\t\t\tuniform float morphTargetInfluences[ 4 ];\n\t\t#endif\n\t#endif\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\n\ttransformed *= morphTargetBaseInfluence;\n\t#ifdef MORPHTARGETS_TEXTURE\n\t\tfor ( int i = 0; i < MORPHTARGETS_COUNT; i ++ ) {\n\t\t\tif ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];\n\t\t}\n\t#else\n\t\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\n\t\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\n\t\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\n\t\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\n\t\t#ifndef USE_MORPHNORMALS\n\t\t\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\n\t\t\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\n\t\t\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\n\t\t\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\n\t\t#endif\n\t#endif\n#endif",normal_fragment_begin:"float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;\n#ifdef FLAT_SHADED\n\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\n\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\n\tvec3 normal = normalize( cross( fdx, fdy ) );\n#else\n\tvec3 normal = normalize( vNormal );\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\t#ifdef USE_TANGENT\n\t\tvec3 tangent = normalize( vTangent );\n\t\tvec3 bitangent = normalize( vBitangent );\n\t\t#ifdef DOUBLE_SIDED\n\t\t\ttangent = tangent * faceDirection;\n\t\t\tbitangent = bitangent * faceDirection;\n\t\t#endif\n\t\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\n\t\t\tmat3 vTBN = mat3( tangent, bitangent, normal );\n\t\t#endif\n\t#endif\n#endif\nvec3 geometryNormal = normal;",normal_fragment_maps:"#ifdef OBJECTSPACE_NORMALMAP\n\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\t#ifdef FLIP_SIDED\n\t\tnormal = - normal;\n\t#endif\n\t#ifdef DOUBLE_SIDED\n\t\tnormal = normal * faceDirection;\n\t#endif\n\tnormal = normalize( normalMatrix * normal );\n#elif defined( TANGENTSPACE_NORMALMAP )\n\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\n\tmapN.xy *= normalScale;\n\t#ifdef USE_TANGENT\n\t\tnormal = normalize( vTBN * mapN );\n\t#else\n\t\tnormal = perturbNormal2Arb( - vViewPosition, normal, mapN, faceDirection );\n\t#endif\n#elif defined( USE_BUMPMAP )\n\tnormal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );\n#endif",normal_pars_fragment:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_pars_vertex:"#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n\t#ifdef USE_TANGENT\n\t\tvarying vec3 vTangent;\n\t\tvarying vec3 vBitangent;\n\t#endif\n#endif",normal_vertex:"#ifndef FLAT_SHADED\n\tvNormal = normalize( transformedNormal );\n\t#ifdef USE_TANGENT\n\t\tvTangent = normalize( transformedTangent );\n\t\tvBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );\n\t#endif\n#endif",normalmap_pars_fragment:"#ifdef USE_NORMALMAP\n\tuniform sampler2D normalMap;\n\tuniform vec2 normalScale;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n\tuniform mat3 normalMatrix;\n#endif\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\n\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN, float faceDirection ) {\n\t\tvec3 q0 = dFdx( eye_pos.xyz );\n\t\tvec3 q1 = dFdy( eye_pos.xyz );\n\t\tvec2 st0 = dFdx( vUv.st );\n\t\tvec2 st1 = dFdy( vUv.st );\n\t\tvec3 N = surf_norm;\n\t\tvec3 q1perp = cross( q1, N );\n\t\tvec3 q0perp = cross( N, q0 );\n\t\tvec3 T = q1perp * st0.x + q0perp * st1.x;\n\t\tvec3 B = q1perp * st0.y + q0perp * st1.y;\n\t\tfloat det = max( dot( T, T ), dot( B, B ) );\n\t\tfloat scale = ( det == 0.0 ) ? 0.0 : faceDirection * inversesqrt( det );\n\t\treturn normalize( T * ( mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z );\n\t}\n#endif",clearcoat_normal_fragment_begin:"#ifdef USE_CLEARCOAT\n\tvec3 clearcoatNormal = geometryNormal;\n#endif",clearcoat_normal_fragment_maps:"#ifdef USE_CLEARCOAT_NORMALMAP\n\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\n\tclearcoatMapN.xy *= clearcoatNormalScale;\n\t#ifdef USE_TANGENT\n\t\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\n\t#else\n\t\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN, faceDirection );\n\t#endif\n#endif",clearcoat_pars_fragment:"#ifdef USE_CLEARCOATMAP\n\tuniform sampler2D clearcoatMap;\n#endif\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\n\tuniform sampler2D clearcoatRoughnessMap;\n#endif\n#ifdef USE_CLEARCOAT_NORMALMAP\n\tuniform sampler2D clearcoatNormalMap;\n\tuniform vec2 clearcoatNormalScale;\n#endif",iridescence_pars_fragment:"#ifdef USE_IRIDESCENCEMAP\n\tuniform sampler2D iridescenceMap;\n#endif\n#ifdef USE_IRIDESCENCE_THICKNESSMAP\n\tuniform sampler2D iridescenceThicknessMap;\n#endif",output_fragment:"#ifdef OPAQUE\ndiffuseColor.a = 1.0;\n#endif\n#ifdef USE_TRANSMISSION\ndiffuseColor.a *= transmissionAlpha + 0.1;\n#endif\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );",packing:"vec3 packNormalToRGB( const in vec3 normal ) {\n\treturn normalize( normal ) * 0.5 + 0.5;\n}\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\n\treturn 2.0 * rgb.xyz - 1.0;\n}\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\nconst float ShiftRight8 = 1. / 256.;\nvec4 packDepthToRGBA( const in float v ) {\n\tvec4 r = vec4( fract( v * PackFactors ), v );\n\tr.yzw -= r.xyz * ShiftRight8;\treturn r * PackUpscale;\n}\nfloat unpackRGBAToDepth( const in vec4 v ) {\n\treturn dot( v, UnpackFactors );\n}\nvec4 pack2HalfToRGBA( vec2 v ) {\n\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );\n\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );\n}\nvec2 unpackRGBATo2Half( vec4 v ) {\n\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\n}\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( viewZ + near ) / ( near - far );\n}\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\n\treturn linearClipZ * ( near - far ) - near;\n}\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\n\treturn ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );\n}\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\n\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\n}",premultiplied_alpha_fragment:"#ifdef PREMULTIPLIED_ALPHA\n\tgl_FragColor.rgb *= gl_FragColor.a;\n#endif",project_vertex:"vec4 mvPosition = vec4( transformed, 1.0 );\n#ifdef USE_INSTANCING\n\tmvPosition = instanceMatrix * mvPosition;\n#endif\nmvPosition = modelViewMatrix * mvPosition;\ngl_Position = projectionMatrix * mvPosition;",dithering_fragment:"#ifdef DITHERING\n\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\n#endif",dithering_pars_fragment:"#ifdef DITHERING\n\tvec3 dithering( vec3 color ) {\n\t\tfloat grid_position = rand( gl_FragCoord.xy );\n\t\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\n\t\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\n\t\treturn color + dither_shift_RGB;\n\t}\n#endif",roughnessmap_fragment:"float roughnessFactor = roughness;\n#ifdef USE_ROUGHNESSMAP\n\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\n\troughnessFactor *= texelRoughness.g;\n#endif",roughnessmap_pars_fragment:"#ifdef USE_ROUGHNESSMAP\n\tuniform sampler2D roughnessMap;\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\n\t\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\n\t}\n\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\n\t\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\n\t}\n\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\n\t\tfloat occlusion = 1.0;\n\t\tvec2 distribution = texture2DDistribution( shadow, uv );\n\t\tfloat hard_shadow = step( compare , distribution.x );\n\t\tif (hard_shadow != 1.0 ) {\n\t\t\tfloat distance = compare - distribution.x ;\n\t\t\tfloat variance = max( 0.00000, distribution.y * distribution.y );\n\t\t\tfloat softness_probability = variance / (variance + distance * distance );\t\t\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\t\t\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\n\t\t}\n\t\treturn occlusion;\n\t}\n\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\n\t\tfloat shadow = 1.0;\n\t\tshadowCoord.xyz /= shadowCoord.w;\n\t\tshadowCoord.z += shadowBias;\n\t\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\n\t\tbool inFrustum = all( inFrustumVec );\n\t\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\n\t\tbool frustumTest = all( frustumTestVec );\n\t\tif ( frustumTest ) {\n\t\t#if defined( SHADOWMAP_TYPE_PCF )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx0 = - texelSize.x * shadowRadius;\n\t\t\tfloat dy0 = - texelSize.y * shadowRadius;\n\t\t\tfloat dx1 = + texelSize.x * shadowRadius;\n\t\t\tfloat dy1 = + texelSize.y * shadowRadius;\n\t\t\tfloat dx2 = dx0 / 2.0;\n\t\t\tfloat dy2 = dy0 / 2.0;\n\t\t\tfloat dx3 = dx1 / 2.0;\n\t\t\tfloat dy3 = dy1 / 2.0;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\n\t\t\t) * ( 1.0 / 17.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\n\t\t\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\n\t\t\tfloat dx = texelSize.x;\n\t\t\tfloat dy = texelSize.y;\n\t\t\tvec2 uv = shadowCoord.xy;\n\t\t\tvec2 f = fract( uv * shadowMapSize + 0.5 );\n\t\t\tuv -= f * texelSize;\n\t\t\tshadow = (\n\t\t\t\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\n\t\t\t\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\n\t\t\t\t\t f.x ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t f.y ) +\n\t\t\t\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \n\t\t\t\t\t\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\n\t\t\t\t\t\t f.x ),\n\t\t\t\t\t f.y )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#elif defined( SHADOWMAP_TYPE_VSM )\n\t\t\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#else\n\t\t\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\n\t\t#endif\n\t\t}\n\t\treturn shadow;\n\t}\n\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\n\t\tvec3 absV = abs( v );\n\t\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\n\t\tabsV *= scaleToCube;\n\t\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\n\t\tvec2 planar = v.xy;\n\t\tfloat almostATexel = 1.5 * texelSizeY;\n\t\tfloat almostOne = 1.0 - almostATexel;\n\t\tif ( absV.z >= almostOne ) {\n\t\t\tif ( v.z > 0.0 )\n\t\t\t\tplanar.x = 4.0 - v.x;\n\t\t} else if ( absV.x >= almostOne ) {\n\t\t\tfloat signX = sign( v.x );\n\t\t\tplanar.x = v.z * signX + 2.0 * signX;\n\t\t} else if ( absV.y >= almostOne ) {\n\t\t\tfloat signY = sign( v.y );\n\t\t\tplanar.x = v.x + 2.0 * signY + 2.0;\n\t\t\tplanar.y = v.z * signY - 2.0;\n\t\t}\n\t\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\n\t}\n\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\n\t\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\n\t\tvec3 lightToPosition = shadowCoord.xyz;\n\t\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\t\tdp += shadowBias;\n\t\tvec3 bd3D = normalize( lightToPosition );\n\t\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\n\t\t\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\n\t\t\treturn (\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\n\t\t\t\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\n\t\t\t) * ( 1.0 / 9.0 );\n\t\t#else\n\t\t\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\n\t\t#endif\n\t}\n#endif",shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\n\t\tstruct DirectionalLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\n\t\tstruct SpotLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t};\n\t\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\n\t\tstruct PointLightShadow {\n\t\t\tfloat shadowBias;\n\t\t\tfloat shadowNormalBias;\n\t\t\tfloat shadowRadius;\n\t\t\tvec2 shadowMapSize;\n\t\t\tfloat shadowCameraNear;\n\t\t\tfloat shadowCameraFar;\n\t\t};\n\t\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\n\t#endif\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\n\t\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\n\t\tvec4 shadowWorldPosition;\n\t#endif\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\n\t\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n#endif",shadowmask_pars_fragment:"float getShadowMask() {\n\tfloat shadow = 1.0;\n\t#ifdef USE_SHADOWMAP\n\t#if NUM_DIR_LIGHT_SHADOWS > 0\n\tDirectionalLightShadow directionalLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\n\t\tdirectionalLight = directionalLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_SPOT_LIGHT_SHADOWS > 0\n\tSpotLightShadow spotLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\n\t\tspotLight = spotLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#if NUM_POINT_LIGHT_SHADOWS > 0\n\tPointLightShadow pointLight;\n\t#pragma unroll_loop_start\n\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\n\t\tpointLight = pointLightShadows[ i ];\n\t\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\n\t}\n\t#pragma unroll_loop_end\n\t#endif\n\t#endif\n\treturn shadow;\n}",skinbase_vertex:"#ifdef USE_SKINNING\n\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\n\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\n\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\n\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\n\tuniform mat4 bindMatrix;\n\tuniform mat4 bindMatrixInverse;\n\tuniform highp sampler2D boneTexture;\n\tuniform int boneTextureSize;\n\tmat4 getBoneMatrix( const in float i ) {\n\t\tfloat j = i * 4.0;\n\t\tfloat x = mod( j, float( boneTextureSize ) );\n\t\tfloat y = floor( j / float( boneTextureSize ) );\n\t\tfloat dx = 1.0 / float( boneTextureSize );\n\t\tfloat dy = 1.0 / float( boneTextureSize );\n\t\ty = dy * ( y + 0.5 );\n\t\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\n\t\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\n\t\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\n\t\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\n\t\tmat4 bone = mat4( v1, v2, v3, v4 );\n\t\treturn bone;\n\t}\n#endif",skinning_vertex:"#ifdef USE_SKINNING\n\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\n\tvec4 skinned = vec4( 0.0 );\n\tskinned += boneMatX * skinVertex * skinWeight.x;\n\tskinned += boneMatY * skinVertex * skinWeight.y;\n\tskinned += boneMatZ * skinVertex * skinWeight.z;\n\tskinned += boneMatW * skinVertex * skinWeight.w;\n\ttransformed = ( bindMatrixInverse * skinned ).xyz;\n#endif",skinnormal_vertex:"#ifdef USE_SKINNING\n\tmat4 skinMatrix = mat4( 0.0 );\n\tskinMatrix += skinWeight.x * boneMatX;\n\tskinMatrix += skinWeight.y * boneMatY;\n\tskinMatrix += skinWeight.z * boneMatZ;\n\tskinMatrix += skinWeight.w * boneMatW;\n\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\n\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\n\t#ifdef USE_TANGENT\n\t\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\n\t#endif\n#endif",specularmap_fragment:"float specularStrength;\n#ifdef USE_SPECULARMAP\n\tvec4 texelSpecular = texture2D( specularMap, vUv );\n\tspecularStrength = texelSpecular.r;\n#else\n\tspecularStrength = 1.0;\n#endif",specularmap_pars_fragment:"#ifdef USE_SPECULARMAP\n\tuniform sampler2D specularMap;\n#endif",tonemapping_fragment:"#if defined( TONE_MAPPING )\n\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\n#endif",tonemapping_pars_fragment:"#ifndef saturate\n#define saturate( a ) clamp( a, 0.0, 1.0 )\n#endif\nuniform float toneMappingExposure;\nvec3 LinearToneMapping( vec3 color ) {\n\treturn toneMappingExposure * color;\n}\nvec3 ReinhardToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\treturn saturate( color / ( vec3( 1.0 ) + color ) );\n}\nvec3 OptimizedCineonToneMapping( vec3 color ) {\n\tcolor *= toneMappingExposure;\n\tcolor = max( vec3( 0.0 ), color - 0.004 );\n\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\n}\nvec3 RRTAndODTFit( vec3 v ) {\n\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\n\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\n\treturn a / b;\n}\nvec3 ACESFilmicToneMapping( vec3 color ) {\n\tconst mat3 ACESInputMat = mat3(\n\t\tvec3( 0.59719, 0.07600, 0.02840 ),\t\tvec3( 0.35458, 0.90834, 0.13383 ),\n\t\tvec3( 0.04823, 0.01566, 0.83777 )\n\t);\n\tconst mat3 ACESOutputMat = mat3(\n\t\tvec3( 1.60475, -0.10208, -0.00327 ),\t\tvec3( -0.53108, 1.10813, -0.07276 ),\n\t\tvec3( -0.07367, -0.00605, 1.07602 )\n\t);\n\tcolor *= toneMappingExposure / 0.6;\n\tcolor = ACESInputMat * color;\n\tcolor = RRTAndODTFit( color );\n\tcolor = ACESOutputMat * color;\n\treturn saturate( color );\n}\nvec3 CustomToneMapping( vec3 color ) { return color; }",transmission_fragment:"#ifdef USE_TRANSMISSION\n\tfloat transmissionAlpha = 1.0;\n\tfloat transmissionFactor = transmission;\n\tfloat thicknessFactor = thickness;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\ttransmissionFactor *= texture2D( transmissionMap, vUv ).r;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tthicknessFactor *= texture2D( thicknessMap, vUv ).g;\n\t#endif\n\tvec3 pos = vWorldPosition;\n\tvec3 v = normalize( cameraPosition - pos );\n\tvec3 n = inverseTransformDirection( normal, viewMatrix );\n\tvec4 transmission = getIBLVolumeRefraction(\n\t\tn, v, roughnessFactor, material.diffuseColor, material.specularColor, material.specularF90,\n\t\tpos, modelMatrix, viewMatrix, projectionMatrix, ior, thicknessFactor,\n\t\tattenuationColor, attenuationDistance );\n\ttotalDiffuse = mix( totalDiffuse, transmission.rgb, transmissionFactor );\n\ttransmissionAlpha = mix( transmissionAlpha, transmission.a, transmissionFactor );\n#endif",transmission_pars_fragment:"#ifdef USE_TRANSMISSION\n\tuniform float transmission;\n\tuniform float thickness;\n\tuniform float attenuationDistance;\n\tuniform vec3 attenuationColor;\n\t#ifdef USE_TRANSMISSIONMAP\n\t\tuniform sampler2D transmissionMap;\n\t#endif\n\t#ifdef USE_THICKNESSMAP\n\t\tuniform sampler2D thicknessMap;\n\t#endif\n\tuniform vec2 transmissionSamplerSize;\n\tuniform sampler2D transmissionSamplerMap;\n\tuniform mat4 modelMatrix;\n\tuniform mat4 projectionMatrix;\n\tvarying vec3 vWorldPosition;\n\tvec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {\n\t\tvec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );\n\t\tvec3 modelScale;\n\t\tmodelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );\n\t\tmodelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );\n\t\tmodelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );\n\t\treturn normalize( refractionVector ) * thickness * modelScale;\n\t}\n\tfloat applyIorToRoughness( const in float roughness, const in float ior ) {\n\t\treturn roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );\n\t}\n\tvec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {\n\t\tfloat framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );\n\t\t#ifdef texture2DLodEXT\n\t\t\treturn texture2DLodEXT( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#else\n\t\t\treturn texture2D( transmissionSamplerMap, fragCoord.xy, framebufferLod );\n\t\t#endif\n\t}\n\tvec3 applyVolumeAttenuation( const in vec3 radiance, const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tif ( attenuationDistance == 0.0 ) {\n\t\t\treturn radiance;\n\t\t} else {\n\t\t\tvec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;\n\t\t\tvec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );\t\t\treturn transmittance * radiance;\n\t\t}\n\t}\n\tvec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,\n\t\tconst in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,\n\t\tconst in mat4 viewMatrix, const in mat4 projMatrix, const in float ior, const in float thickness,\n\t\tconst in vec3 attenuationColor, const in float attenuationDistance ) {\n\t\tvec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );\n\t\tvec3 refractedRayExit = position + transmissionRay;\n\t\tvec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );\n\t\tvec2 refractionCoords = ndcPos.xy / ndcPos.w;\n\t\trefractionCoords += 1.0;\n\t\trefractionCoords /= 2.0;\n\t\tvec4 transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );\n\t\tvec3 attenuatedColor = applyVolumeAttenuation( transmittedLight.rgb, length( transmissionRay ), attenuationColor, attenuationDistance );\n\t\tvec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );\n\t\treturn vec4( ( 1.0 - F ) * attenuatedColor * diffuseColor, transmittedLight.a );\n\t}\n#endif",uv_pars_fragment:"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\n\tvarying vec2 vUv;\n#endif",uv_pars_vertex:"#ifdef USE_UV\n\t#ifdef UVS_VERTEX_ONLY\n\t\tvec2 vUv;\n\t#else\n\t\tvarying vec2 vUv;\n\t#endif\n\tuniform mat3 uvTransform;\n#endif",uv_vertex:"#ifdef USE_UV\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n#endif",uv2_pars_fragment:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvarying vec2 vUv2;\n#endif",uv2_pars_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tattribute vec2 uv2;\n\tvarying vec2 vUv2;\n\tuniform mat3 uv2Transform;\n#endif",uv2_vertex:"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\n\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\n#endif",worldpos_vertex:"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION )\n\tvec4 worldPosition = vec4( transformed, 1.0 );\n\t#ifdef USE_INSTANCING\n\t\tworldPosition = instanceMatrix * worldPosition;\n\t#endif\n\tworldPosition = modelMatrix * worldPosition;\n#endif",background_vert:"varying vec2 vUv;\nuniform mat3 uvTransform;\nvoid main() {\n\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\n\tgl_Position = vec4( position.xy, 1.0, 1.0 );\n}",background_frag:"uniform sampler2D t2D;\nvarying vec2 vUv;\nvoid main() {\n\tgl_FragColor = texture2D( t2D, vUv );\n\t#ifdef DECODE_VIDEO_TEXTURE\n\t\tgl_FragColor = vec4( mix( pow( gl_FragColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), gl_FragColor.rgb * 0.0773993808, vec3( lessThanEqual( gl_FragColor.rgb, vec3( 0.04045 ) ) ) ), gl_FragColor.w );\n\t#endif\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",cube_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n\tgl_Position.z = gl_Position.w;\n}",cube_frag:"#include <envmap_common_pars_fragment>\nuniform float opacity;\nvarying vec3 vWorldDirection;\n#include <cube_uv_reflection_fragment>\nvoid main() {\n\tvec3 vReflect = vWorldDirection;\n\t#include <envmap_fragment>\n\tgl_FragColor = envColor;\n\tgl_FragColor.a *= opacity;\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",depth_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvHighPrecisionZW = gl_Position.zw;\n}",depth_frag:"#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvarying vec2 vHighPrecisionZW;\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <logdepthbuf_fragment>\n\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\n\t#if DEPTH_PACKING == 3200\n\t\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t#elif DEPTH_PACKING == 3201\n\t\tgl_FragColor = packDepthToRGBA( fragCoordZ );\n\t#endif\n}",distanceRGBA_vert:"#define DISTANCE\nvarying vec3 vWorldPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <skinbase_vertex>\n\t#ifdef USE_DISPLACEMENTMAP\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <clipping_planes_vertex>\n\tvWorldPosition = worldPosition.xyz;\n}",distanceRGBA_frag:"#define DISTANCE\nuniform vec3 referencePosition;\nuniform float nearDistance;\nuniform float farDistance;\nvarying vec3 vWorldPosition;\n#include <common>\n#include <packing>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main () {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( 1.0 );\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\tfloat dist = length( vWorldPosition - referencePosition );\n\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\n\tdist = saturate( dist );\n\tgl_FragColor = packDepthToRGBA( dist );\n}",equirect_vert:"varying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvWorldDirection = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}",equirect_frag:"uniform sampler2D tEquirect;\nvarying vec3 vWorldDirection;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldDirection );\n\tvec2 sampleUV = equirectUv( direction );\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n}",linedashed_vert:"uniform float scale;\nattribute float lineDistance;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\tvLineDistance = scale * lineDistance;\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",linedashed_frag:"uniform vec3 diffuse;\nuniform float opacity;\nuniform float dashSize;\nuniform float totalSize;\nvarying float vLineDistance;\n#include <common>\n#include <color_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\n\t\tdiscard;\n\t}\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <color_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",meshbasic_vert:"#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )\n\t\t#include <beginnormal_vertex>\n\t\t#include <morphnormal_vertex>\n\t\t#include <skinbase_vertex>\n\t\t#include <skinnormal_vertex>\n\t\t#include <defaultnormal_vertex>\n\t#endif\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <fog_vertex>\n}",meshbasic_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#ifndef FLAT_SHADED\n\tvarying vec3 vNormal;\n#endif\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\t#ifdef USE_LIGHTMAP\n\t\tvec4 lightMapTexel = texture2D( lightMap, vUv2 );\n\t\treflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;\n\t#else\n\t\treflectedLight.indirectDiffuse += vec3( 1.0 );\n\t#endif\n\t#include <aomap_fragment>\n\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\n\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshlambert_vert:"#define LAMBERT\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <envmap_pars_vertex>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <lights_lambert_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshlambert_frag:"uniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\nvarying vec3 vLightFront;\nvarying vec3 vIndirectFront;\n#ifdef DOUBLE_SIDED\n\tvarying vec3 vLightBack;\n\tvarying vec3 vIndirectBack;\n#endif\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <fog_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <emissivemap_fragment>\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\n\t#else\n\t\treflectedLight.indirectDiffuse += vIndirectFront;\n\t#endif\n\t#include <lightmap_fragment>\n\treflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );\n\t#ifdef DOUBLE_SIDED\n\t\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\n\t#else\n\t\treflectedLight.directDiffuse = vLightFront;\n\t#endif\n\treflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshmatcap_vert:"#define MATCAP\nvarying vec3 vViewPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <color_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n\tvViewPosition = - mvPosition.xyz;\n}",meshmatcap_frag:"#define MATCAP\nuniform vec3 diffuse;\nuniform float opacity;\nuniform sampler2D matcap;\nvarying vec3 vViewPosition;\n#include <common>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <fog_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tvec3 viewDir = normalize( vViewPosition );\n\tvec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );\n\tvec3 y = cross( viewDir, x );\n\tvec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;\n\t#ifdef USE_MATCAP\n\t\tvec4 matcapColor = texture2D( matcap, uv );\n\t#else\n\t\tvec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );\n\t#endif\n\tvec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshnormal_vert:"#define NORMAL\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvViewPosition = - mvPosition.xyz;\n#endif\n}",meshnormal_frag:"#define NORMAL\nuniform float opacity;\n#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( TANGENTSPACE_NORMALMAP )\n\tvarying vec3 vViewPosition;\n#endif\n#include <packing>\n#include <uv_pars_fragment>\n#include <normal_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\t#include <logdepthbuf_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\tgl_FragColor = vec4( packNormalToRGB( normal ), opacity );\n\t#ifdef OPAQUE\n\t\tgl_FragColor.a = 1.0;\n\t#endif\n}",meshphong_vert:"#define PHONG\nvarying vec3 vViewPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <envmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <envmap_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshphong_frag:"#define PHONG\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform vec3 specular;\nuniform float shininess;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_pars_fragment>\n#include <cube_uv_reflection_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_phong_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <specularmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <specularmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_phong_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\n\t#include <envmap_fragment>\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshphysical_vert:"#define STANDARD\nvarying vec3 vViewPosition;\n#ifdef USE_TRANSMISSION\n\tvarying vec3 vWorldPosition;\n#endif\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n#ifdef USE_TRANSMISSION\n\tvWorldPosition = worldPosition.xyz;\n#endif\n}",meshphysical_frag:"#define STANDARD\n#ifdef PHYSICAL\n\t#define IOR\n\t#define SPECULAR\n#endif\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float roughness;\nuniform float metalness;\nuniform float opacity;\n#ifdef IOR\n\tuniform float ior;\n#endif\n#ifdef SPECULAR\n\tuniform float specularIntensity;\n\tuniform vec3 specularColor;\n\t#ifdef USE_SPECULARINTENSITYMAP\n\t\tuniform sampler2D specularIntensityMap;\n\t#endif\n\t#ifdef USE_SPECULARCOLORMAP\n\t\tuniform sampler2D specularColorMap;\n\t#endif\n#endif\n#ifdef USE_CLEARCOAT\n\tuniform float clearcoat;\n\tuniform float clearcoatRoughness;\n#endif\n#ifdef USE_IRIDESCENCE\n\tuniform float iridescence;\n\tuniform float iridescenceIOR;\n\tuniform float iridescenceThicknessMinimum;\n\tuniform float iridescenceThicknessMaximum;\n#endif\n#ifdef USE_SHEEN\n\tuniform vec3 sheenColor;\n\tuniform float sheenRoughness;\n\t#ifdef USE_SHEENCOLORMAP\n\t\tuniform sampler2D sheenColorMap;\n\t#endif\n\t#ifdef USE_SHEENROUGHNESSMAP\n\t\tuniform sampler2D sheenRoughnessMap;\n\t#endif\n#endif\nvarying vec3 vViewPosition;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <bsdfs>\n#include <iridescence_fragment>\n#include <cube_uv_reflection_fragment>\n#include <envmap_common_pars_fragment>\n#include <envmap_physical_pars_fragment>\n#include <fog_pars_fragment>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_physical_pars_fragment>\n#include <transmission_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <clearcoat_pars_fragment>\n#include <iridescence_pars_fragment>\n#include <roughnessmap_pars_fragment>\n#include <metalnessmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <roughnessmap_fragment>\n\t#include <metalnessmap_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <clearcoat_normal_fragment_begin>\n\t#include <clearcoat_normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_physical_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;\n\tvec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;\n\t#include <transmission_fragment>\n\tvec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;\n\t#ifdef USE_SHEEN\n\t\tfloat sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );\n\t\toutgoingLight = outgoingLight * sheenEnergyComp + sheenSpecular;\n\t#endif\n\t#ifdef USE_CLEARCOAT\n\t\tfloat dotNVcc = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\n\t\tvec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );\n\t\toutgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + clearcoatSpecular * material.clearcoat;\n\t#endif\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",meshtoon_vert:"#define TOON\nvarying vec3 vViewPosition;\n#include <common>\n#include <uv_pars_vertex>\n#include <uv2_pars_vertex>\n#include <displacementmap_pars_vertex>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <normal_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\t#include <uv2_vertex>\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <normal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <displacementmap_vertex>\n\t#include <project_vertex>\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\tvViewPosition = - mvPosition.xyz;\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",meshtoon_frag:"#define TOON\nuniform vec3 diffuse;\nuniform vec3 emissive;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <dithering_pars_fragment>\n#include <color_pars_fragment>\n#include <uv_pars_fragment>\n#include <uv2_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <aomap_pars_fragment>\n#include <lightmap_pars_fragment>\n#include <emissivemap_pars_fragment>\n#include <gradientmap_pars_fragment>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <normal_pars_fragment>\n#include <lights_toon_pars_fragment>\n#include <shadowmap_pars_fragment>\n#include <bumpmap_pars_fragment>\n#include <normalmap_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\n\tvec3 totalEmissiveRadiance = emissive;\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <color_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\t#include <normal_fragment_begin>\n\t#include <normal_fragment_maps>\n\t#include <emissivemap_fragment>\n\t#include <lights_toon_fragment>\n\t#include <lights_fragment_begin>\n\t#include <lights_fragment_maps>\n\t#include <lights_fragment_end>\n\t#include <aomap_fragment>\n\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n\t#include <dithering_fragment>\n}",points_vert:"uniform float size;\nuniform float scale;\n#include <common>\n#include <color_pars_vertex>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <color_vertex>\n\t#include <morphcolor_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <project_vertex>\n\tgl_PointSize = size;\n\t#ifdef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );\n\t#endif\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <worldpos_vertex>\n\t#include <fog_vertex>\n}",points_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <color_pars_fragment>\n#include <map_particle_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_particle_fragment>\n\t#include <color_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n\t#include <premultiplied_alpha_fragment>\n}",shadow_vert:"#include <common>\n#include <fog_pars_vertex>\n#include <morphtarget_pars_vertex>\n#include <skinning_pars_vertex>\n#include <shadowmap_pars_vertex>\nvoid main() {\n\t#include <beginnormal_vertex>\n\t#include <morphnormal_vertex>\n\t#include <skinbase_vertex>\n\t#include <skinnormal_vertex>\n\t#include <defaultnormal_vertex>\n\t#include <begin_vertex>\n\t#include <morphtarget_vertex>\n\t#include <skinning_vertex>\n\t#include <project_vertex>\n\t#include <worldpos_vertex>\n\t#include <shadowmap_vertex>\n\t#include <fog_vertex>\n}",shadow_frag:"uniform vec3 color;\nuniform float opacity;\n#include <common>\n#include <packing>\n#include <fog_pars_fragment>\n#include <bsdfs>\n#include <lights_pars_begin>\n#include <shadowmap_pars_fragment>\n#include <shadowmask_pars_fragment>\nvoid main() {\n\tgl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}",sprite_vert:"uniform float rotation;\nuniform vec2 center;\n#include <common>\n#include <uv_pars_vertex>\n#include <fog_pars_vertex>\n#include <logdepthbuf_pars_vertex>\n#include <clipping_planes_pars_vertex>\nvoid main() {\n\t#include <uv_vertex>\n\tvec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\n\tvec2 scale;\n\tscale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) );\n\tscale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) );\n\t#ifndef USE_SIZEATTENUATION\n\t\tbool isPerspective = isPerspectiveMatrix( projectionMatrix );\n\t\tif ( isPerspective ) scale *= - mvPosition.z;\n\t#endif\n\tvec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;\n\tvec2 rotatedPosition;\n\trotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\n\trotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\n\tmvPosition.xy += rotatedPosition;\n\tgl_Position = projectionMatrix * mvPosition;\n\t#include <logdepthbuf_vertex>\n\t#include <clipping_planes_vertex>\n\t#include <fog_vertex>\n}",sprite_frag:"uniform vec3 diffuse;\nuniform float opacity;\n#include <common>\n#include <uv_pars_fragment>\n#include <map_pars_fragment>\n#include <alphamap_pars_fragment>\n#include <alphatest_pars_fragment>\n#include <fog_pars_fragment>\n#include <logdepthbuf_pars_fragment>\n#include <clipping_planes_pars_fragment>\nvoid main() {\n\t#include <clipping_planes_fragment>\n\tvec3 outgoingLight = vec3( 0.0 );\n\tvec4 diffuseColor = vec4( diffuse, opacity );\n\t#include <logdepthbuf_fragment>\n\t#include <map_fragment>\n\t#include <alphamap_fragment>\n\t#include <alphatest_fragment>\n\toutgoingLight = diffuseColor.rgb;\n\t#include <output_fragment>\n\t#include <tonemapping_fragment>\n\t#include <encodings_fragment>\n\t#include <fog_fragment>\n}"},fn={common:{diffuse:{value:new Color(16777215)},opacity:{value:1},map:{value:null},uvTransform:{value:new Matrix3},uv2Transform:{value:new Matrix3},alphaMap:{value:null},alphaTest:{value:0}},specularmap:{specularMap:{value:null}},envmap:{envMap:{value:null},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1}},emissivemap:{emissiveMap:{value:null}},bumpmap:{bumpMap:{value:null},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalScale:{value:new Vector2(1,1)}},displacementmap:{displacementMap:{value:null},displacementScale:{value:1},displacementBias:{value:0}},roughnessmap:{roughnessMap:{value:null}},metalnessmap:{metalnessMap:{value:null}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Color(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:{}}},spotShadowMap:{value:[]},spotShadowMatrix:{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 Color(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Matrix3}},sprite:{diffuse:{value:new Color(16777215)},opacity:{value:1},center:{value:new Vector2(.5,.5)},rotation:{value:0},map:{value:null},alphaMap:{value:null},alphaTest:{value:0},uvTransform:{value:new Matrix3}}},gn={basic:{uniforms:mergeUniforms([fn.common,fn.specularmap,fn.envmap,fn.aomap,fn.lightmap,fn.fog]),vertexShader:mn.meshbasic_vert,fragmentShader:mn.meshbasic_frag},lambert:{uniforms:mergeUniforms([fn.common,fn.specularmap,fn.envmap,fn.aomap,fn.lightmap,fn.emissivemap,fn.fog,fn.lights,{emissive:{value:new Color(0)}}]),vertexShader:mn.meshlambert_vert,fragmentShader:mn.meshlambert_frag},phong:{uniforms:mergeUniforms([fn.common,fn.specularmap,fn.envmap,fn.aomap,fn.lightmap,fn.emissivemap,fn.bumpmap,fn.normalmap,fn.displacementmap,fn.fog,fn.lights,{emissive:{value:new Color(0)},specular:{value:new Color(1118481)},shininess:{value:30}}]),vertexShader:mn.meshphong_vert,fragmentShader:mn.meshphong_frag},standard:{uniforms:mergeUniforms([fn.common,fn.envmap,fn.aomap,fn.lightmap,fn.emissivemap,fn.bumpmap,fn.normalmap,fn.displacementmap,fn.roughnessmap,fn.metalnessmap,fn.fog,fn.lights,{emissive:{value:new Color(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:mn.meshphysical_vert,fragmentShader:mn.meshphysical_frag},toon:{uniforms:mergeUniforms([fn.common,fn.aomap,fn.lightmap,fn.emissivemap,fn.bumpmap,fn.normalmap,fn.displacementmap,fn.gradientmap,fn.fog,fn.lights,{emissive:{value:new Color(0)}}]),vertexShader:mn.meshtoon_vert,fragmentShader:mn.meshtoon_frag},matcap:{uniforms:mergeUniforms([fn.common,fn.bumpmap,fn.normalmap,fn.displacementmap,fn.fog,{matcap:{value:null}}]),vertexShader:mn.meshmatcap_vert,fragmentShader:mn.meshmatcap_frag},points:{uniforms:mergeUniforms([fn.points,fn.fog]),vertexShader:mn.points_vert,fragmentShader:mn.points_frag},dashed:{uniforms:mergeUniforms([fn.common,fn.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:mn.linedashed_vert,fragmentShader:mn.linedashed_frag},depth:{uniforms:mergeUniforms([fn.common,fn.displacementmap]),vertexShader:mn.depth_vert,fragmentShader:mn.depth_frag},normal:{uniforms:mergeUniforms([fn.common,fn.bumpmap,fn.normalmap,fn.displacementmap,{opacity:{value:1}}]),vertexShader:mn.meshnormal_vert,fragmentShader:mn.meshnormal_frag},sprite:{uniforms:mergeUniforms([fn.sprite,fn.fog]),vertexShader:mn.sprite_vert,fragmentShader:mn.sprite_frag},background:{uniforms:{uvTransform:{value:new Matrix3},t2D:{value:null}},vertexShader:mn.background_vert,fragmentShader:mn.background_frag},cube:{uniforms:mergeUniforms([fn.envmap,{opacity:{value:1}}]),vertexShader:mn.cube_vert,fragmentShader:mn.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:mn.equirect_vert,fragmentShader:mn.equirect_frag},distanceRGBA:{uniforms:mergeUniforms([fn.common,fn.displacementmap,{referencePosition:{value:new Vector3},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:mn.distanceRGBA_vert,fragmentShader:mn.distanceRGBA_frag},shadow:{uniforms:mergeUniforms([fn.lights,fn.fog,{color:{value:new Color(0)},opacity:{value:1}}]),vertexShader:mn.shadow_vert,fragmentShader:mn.shadow_frag}};function WebGLBackground(e,t,i,r,n,s){const a=new Color(0);let o,l,c=!0===n?0:1,h=null,u=0,d=null;function setClear(e,t){i.buffers.color.setClear(e.r,e.g,e.b,t,s)}return{getClearColor:function(){return a},setClearColor:function(e,t=1){a.set(e),c=t,setClear(a,c)},getClearAlpha:function(){return c},setClearAlpha:function(e){c=e,setClear(a,c)},render:function render(i,n){let s=!1,f=!0===n.isScene?n.background:null;f&&f.isTexture&&(f=t.get(f));const g=e.xr,x=g.getSession&&g.getSession();x&&"additive"===x.environmentBlendMode&&(f=null),null===f?setClear(a,c):f&&f.isColor&&(setClear(f,1),s=!0),(e.autoClear||s)&&e.clear(e.autoClearColor,e.autoClearDepth,e.autoClearStencil),f&&(f.isCubeTexture||f.mapping===ce)?(void 0===l&&(l=new Mesh(new BoxGeometry(1,1,1),new ShaderMaterial({name:"BackgroundCubeMaterial",uniforms:cloneUniforms(gn.cube.uniforms),vertexShader:gn.cube.vertexShader,fragmentShader:gn.cube.fragmentShader,side:m,depthTest:!1,depthWrite:!1,fog:!1})),l.geometry.deleteAttribute("normal"),l.geometry.deleteAttribute("uv"),l.onBeforeRender=function(e,t,i){this.matrixWorld.copyPosition(i.matrixWorld)},Object.defineProperty(l.material,"envMap",{get:function(){return this.uniforms.envMap.value}}),r.update(l)),l.material.uniforms.envMap.value=f,l.material.uniforms.flipEnvMap.value=f.isCubeTexture&&!1===f.isRenderTargetTexture?-1:1,h===f&&u===f.version&&d===e.toneMapping||(l.material.needsUpdate=!0,h=f,u=f.version,d=e.toneMapping),l.layers.enableAll(),i.unshift(l,l.geometry,l.material,0,0,null)):f&&f.isTexture&&(void 0===o&&(o=new Mesh(new PlaneGeometry(2,2),new ShaderMaterial({name:"BackgroundMaterial",uniforms:cloneUniforms(gn.background.uniforms),vertexShader:gn.background.vertexShader,fragmentShader:gn.background.fragmentShader,side:p,depthTest:!1,depthWrite:!1,fog:!1})),o.geometry.deleteAttribute("normal"),Object.defineProperty(o.material,"map",{get:function(){return this.uniforms.t2D.value}}),r.update(o)),o.material.uniforms.t2D.value=f,!0===f.matrixAutoUpdate&&f.updateMatrix(),o.material.uniforms.uvTransform.value.copy(f.matrix),h===f&&u===f.version&&d===e.toneMapping||(o.material.needsUpdate=!0,h=f,u=f.version,d=e.toneMapping),o.layers.enableAll(),i.unshift(o,o.geometry,o.material,0,0,null))}}}function WebGLBindingStates(e,t,i,r){const n=e.getParameter(34921),s=r.isWebGL2?null:t.get("OES_vertex_array_object"),a=r.isWebGL2||null!==s,o={},l=createBindingState(null);let c=l,h=!1;function bindVertexArrayObject(t){return r.isWebGL2?e.bindVertexArray(t):s.bindVertexArrayOES(t)}function deleteVertexArrayObject(t){return r.isWebGL2?e.deleteVertexArray(t):s.deleteVertexArrayOES(t)}function createBindingState(e){const t=[],i=[],r=[];for(let s=0;s<n;s++)t[s]=0,i[s]=0,r[s]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:t,enabledAttributes:i,attributeDivisors:r,object:e,attributes:{},index:null}}function initAttributes(){const e=c.newAttributes;for(let t=0,i=e.length;t<i;t++)e[t]=0}function enableAttribute(e){enableAttributeAndDivisor(e,0)}function enableAttributeAndDivisor(i,n){const s=c.newAttributes,a=c.enabledAttributes,o=c.attributeDivisors;if(s[i]=1,0===a[i]&&(e.enableVertexAttribArray(i),a[i]=1),o[i]!==n){(r.isWebGL2?e:t.get("ANGLE_instanced_arrays"))[r.isWebGL2?"vertexAttribDivisor":"vertexAttribDivisorANGLE"](i,n),o[i]=n}}function disableUnusedAttributes(){const t=c.newAttributes,i=c.enabledAttributes;for(let r=0,n=i.length;r<n;r++)i[r]!==t[r]&&(e.disableVertexAttribArray(r),i[r]=0)}function vertexAttribPointer(t,i,n,s,a,o){!0!==r.isWebGL2||5124!==n&&5125!==n?e.vertexAttribPointer(t,i,n,s,a,o):e.vertexAttribIPointer(t,i,n,a,o)}function reset(){resetDefaultState(),h=!0,c!==l&&(c=l,bindVertexArrayObject(c.object))}function resetDefaultState(){l.geometry=null,l.program=null,l.wireframe=!1}return{setup:function setup(n,l,u,d,p){let m=!1;if(a){const t=function getBindingState(t,i,n){const a=!0===n.wireframe;let l=o[t.id];void 0===l&&(l={},o[t.id]=l);let c=l[i.id];void 0===c&&(c={},l[i.id]=c);let h=c[a];void 0===h&&(h=createBindingState(function createVertexArrayObject(){return r.isWebGL2?e.createVertexArray():s.createVertexArrayOES()}()),c[a]=h);return h}(d,u,l);c!==t&&(c=t,bindVertexArrayObject(c.object)),m=function needsUpdate(e,t,i,r){const n=c.attributes,s=t.attributes;let a=0;const o=i.getAttributes();for(const l in o){if(o[l].location>=0){const t=n[l];let i=s[l];if(void 0===i&&("instanceMatrix"===l&&e.instanceMatrix&&(i=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(i=e.instanceColor)),void 0===t)return!0;if(t.attribute!==i)return!0;if(i&&t.data!==i.data)return!0;a++}}return c.attributesNum!==a||c.index!==r}(n,d,u,p),m&&function saveCache(e,t,i,r){const n={},s=t.attributes;let a=0;const o=i.getAttributes();for(const l in o){if(o[l].location>=0){let t=s[l];void 0===t&&("instanceMatrix"===l&&e.instanceMatrix&&(t=e.instanceMatrix),"instanceColor"===l&&e.instanceColor&&(t=e.instanceColor));const i={};i.attribute=t,t&&t.data&&(i.data=t.data),n[l]=i,a++}}c.attributes=n,c.attributesNum=a,c.index=r}(n,d,u,p)}else{const e=!0===l.wireframe;c.geometry===d.id&&c.program===u.id&&c.wireframe===e||(c.geometry=d.id,c.program=u.id,c.wireframe=e,m=!0)}null!==p&&i.update(p,34963),(m||h)&&(h=!1,function setupVertexAttributes(n,s,a,o){if(!1===r.isWebGL2&&(n.isInstancedMesh||o.isInstancedBufferGeometry)&&null===t.get("ANGLE_instanced_arrays"))return;initAttributes();const l=o.attributes,c=a.getAttributes(),h=s.defaultAttributeValues;for(const t in c){const r=c[t];if(r.location>=0){let s=l[t];if(void 0===s&&("instanceMatrix"===t&&n.instanceMatrix&&(s=n.instanceMatrix),"instanceColor"===t&&n.instanceColor&&(s=n.instanceColor)),void 0!==s){const t=s.normalized,a=s.itemSize,l=i.get(s);if(void 0===l)continue;const c=l.buffer,h=l.type,u=l.bytesPerElement;if(s.isInterleavedBufferAttribute){const i=s.data,l=i.stride,d=s.offset;if(i.isInstancedInterleavedBuffer){for(let e=0;e<r.locationSize;e++)enableAttributeAndDivisor(r.location+e,i.meshPerAttribute);!0!==n.isInstancedMesh&&void 0===o._maxInstanceCount&&(o._maxInstanceCount=i.meshPerAttribute*i.count)}else for(let e=0;e<r.locationSize;e++)enableAttribute(r.location+e);e.bindBuffer(34962,c);for(let e=0;e<r.locationSize;e++)vertexAttribPointer(r.location+e,a/r.locationSize,h,t,l*u,(d+a/r.locationSize*e)*u)}else{if(s.isInstancedBufferAttribute){for(let e=0;e<r.locationSize;e++)enableAttributeAndDivisor(r.location+e,s.meshPerAttribute);!0!==n.isInstancedMesh&&void 0===o._maxInstanceCount&&(o._maxInstanceCount=s.meshPerAttribute*s.count)}else for(let e=0;e<r.locationSize;e++)enableAttribute(r.location+e);e.bindBuffer(34962,c);for(let e=0;e<r.locationSize;e++)vertexAttribPointer(r.location+e,a/r.locationSize,h,t,a*u,a/r.locationSize*e*u)}}else if(void 0!==h){const i=h[t];if(void 0!==i)switch(i.length){case 2:e.vertexAttrib2fv(r.location,i);break;case 3:e.vertexAttrib3fv(r.location,i);break;case 4:e.vertexAttrib4fv(r.location,i);break;default:e.vertexAttrib1fv(r.location,i)}}}}disableUnusedAttributes()}(n,l,u,d),null!==p&&e.bindBuffer(34963,i.get(p).buffer))},reset:reset,resetDefaultState:resetDefaultState,dispose:function dispose(){reset();for(const e in o){const t=o[e];for(const e in t){const i=t[e];for(const e in i)deleteVertexArrayObject(i[e].object),delete i[e];delete t[e]}delete o[e]}},releaseStatesOfGeometry:function releaseStatesOfGeometry(e){if(void 0===o[e.id])return;const t=o[e.id];for(const i in t){const e=t[i];for(const t in e)deleteVertexArrayObject(e[t].object),delete e[t];delete t[i]}delete o[e.id]},releaseStatesOfProgram:function releaseStatesOfProgram(e){for(const t in o){const i=o[t];if(void 0===i[e.id])continue;const r=i[e.id];for(const e in r)deleteVertexArrayObject(r[e].object),delete r[e];delete i[e.id]}},initAttributes:initAttributes,enableAttribute:enableAttribute,disableUnusedAttributes:disableUnusedAttributes}}function WebGLBufferRenderer(e,t,i,r){const n=r.isWebGL2;let s;this.setMode=function setMode(e){s=e},this.render=function render(t,r){e.drawArrays(s,t,r),i.update(r,s,1)},this.renderInstances=function renderInstances(r,a,o){if(0===o)return;let l,c;if(n)l=e,c="drawArraysInstanced";else if(l=t.get("ANGLE_instanced_arrays"),c="drawArraysInstancedANGLE",null===l)return void console.error("THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");l[c](s,r,a,o),i.update(a,s,o)}}function WebGLCapabilities(e,t,i){let r;function getMaxPrecision(t){if("highp"===t){if(e.getShaderPrecisionFormat(35633,36338).precision>0&&e.getShaderPrecisionFormat(35632,36338).precision>0)return"highp";t="mediump"}return"mediump"===t&&e.getShaderPrecisionFormat(35633,36337).precision>0&&e.getShaderPrecisionFormat(35632,36337).precision>0?"mediump":"lowp"}const n="undefined"!==typeof WebGL2RenderingContext&&e instanceof WebGL2RenderingContext||"undefined"!==typeof WebGL2ComputeRenderingContext&&e instanceof WebGL2ComputeRenderingContext;let s=void 0!==i.precision?i.precision:"highp";const a=getMaxPrecision(s);a!==s&&(console.warn("THREE.WebGLRenderer:",s,"not supported, using",a,"instead."),s=a);const o=n||t.has("WEBGL_draw_buffers"),l=!0===i.logarithmicDepthBuffer,c=e.getParameter(34930),h=e.getParameter(35660),u=e.getParameter(3379),d=e.getParameter(34076),p=e.getParameter(34921),m=e.getParameter(36347),f=e.getParameter(36348),g=e.getParameter(36349),x=h>0,y=n||t.has("OES_texture_float");return{isWebGL2:n,drawBuffers:o,getMaxAnisotropy:function getMaxAnisotropy(){if(void 0!==r)return r;if(!0===t.has("EXT_texture_filter_anisotropic")){const i=t.get("EXT_texture_filter_anisotropic");r=e.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else r=0;return r},getMaxPrecision:getMaxPrecision,precision:s,logarithmicDepthBuffer:l,maxTextures:c,maxVertexTextures:h,maxTextureSize:u,maxCubemapSize:d,maxAttributes:p,maxVertexUniforms:m,maxVaryings:f,maxFragmentUniforms:g,vertexTextures:x,floatFragmentTextures:y,floatVertexTextures:x&&y,maxSamples:n?e.getParameter(36183):0}}function WebGLClipping(e){const t=this;let i=null,r=0,n=!1,s=!1;const a=new Plane,o=new Matrix3,l={value:null,needsUpdate:!1};function resetGlobalState(){l.value!==i&&(l.value=i,l.needsUpdate=r>0),t.numPlanes=r,t.numIntersection=0}function projectPlanes(e,i,r,n){const s=null!==e?e.length:0;let c=null;if(0!==s){if(c=l.value,!0!==n||null===c){const t=r+4*s,n=i.matrixWorldInverse;o.getNormalMatrix(n),(null===c||c.length<t)&&(c=new Float32Array(t));for(let i=0,l=r;i!==s;++i,l+=4)a.copy(e[i]).applyMatrix4(n,o),a.normal.toArray(c,l),c[l+3]=a.constant}l.value=c,l.needsUpdate=!0}return t.numPlanes=s,t.numIntersection=0,c}this.uniform=l,this.numPlanes=0,this.numIntersection=0,this.init=function(e,t,s){const a=0!==e.length||t||0!==r||n;return n=t,i=projectPlanes(e,s,0),r=e.length,a},this.beginShadows=function(){s=!0,projectPlanes(null)},this.endShadows=function(){s=!1,resetGlobalState()},this.setState=function(t,a,o){const c=t.clippingPlanes,h=t.clipIntersection,u=t.clipShadows,d=e.get(t);if(!n||null===c||0===c.length||s&&!u)s?projectPlanes(null):resetGlobalState();else{const e=s?0:r,t=4*e;let n=d.clippingState||null;l.value=n,n=projectPlanes(c,a,t,o);for(let r=0;r!==t;++r)n[r]=i[r];d.clippingState=n,this.numIntersection=h?this.numPlanes:0,this.numPlanes+=e}}}function WebGLCubeMaps(e){let t=new WeakMap;function mapTextureMapping(e,t){return t===oe?e.mapping=se:t===le&&(e.mapping=ae),e}function onTextureDispose(e){const i=e.target;i.removeEventListener("dispose",onTextureDispose);const r=t.get(i);void 0!==r&&(t.delete(i),r.dispose())}return{get:function get(i){if(i&&i.isTexture&&!1===i.isRenderTargetTexture){const r=i.mapping;if(r===oe||r===le){if(t.has(i)){return mapTextureMapping(t.get(i).texture,i.mapping)}{const r=i.image;if(r&&r.height>0){const n=new WebGLCubeRenderTarget(r.height/2);return n.fromEquirectangularTexture(e,i),t.set(i,n),i.addEventListener("dispose",onTextureDispose),mapTextureMapping(n.texture,i.mapping)}return null}}}return i},dispose:function dispose(){t=new WeakMap}}}gn.physical={uniforms:mergeUniforms([gn.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatNormalScale:{value:new Vector2(1,1)},clearcoatNormalMap:{value:null},iridescence:{value:0},iridescenceMap:{value:null},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},sheen:{value:0},sheenColor:{value:new Color(0)},sheenColorMap:{value:null},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},transmission:{value:0},transmissionMap:{value:null},transmissionSamplerSize:{value:new Vector2},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},attenuationDistance:{value:0},attenuationColor:{value:new Color(0)},specularIntensity:{value:1},specularIntensityMap:{value:null},specularColor:{value:new Color(1,1,1)},specularColorMap:{value:null}}]),vertexShader:mn.meshphysical_vert,fragmentShader:mn.meshphysical_frag};class OrthographicCamera extends Camera{constructor(e=-1,t=1,i=1,r=-1,n=.1,s=2e3){super(),this.isOrthographicCamera=!0,this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=r,this.near=n,this.far=s,this.updateProjectionMatrix()}copy(e,t){return super.copy(e,t),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=null===e.view?null:Object.assign({},e.view),this}setViewOffset(e,t,i,r,n,s){null===this.view&&(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=t,this.view.offsetX=i,this.view.offsetY=r,this.view.width=n,this.view.height=s,this.updateProjectionMatrix()}clearViewOffset(){null!==this.view&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){const e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,r=(this.top+this.bottom)/2;let n=i-e,s=i+e,a=r+t,o=r-t;if(null!==this.view&&this.view.enabled){const e=(this.right-this.left)/this.view.fullWidth/this.zoom,t=(this.top-this.bottom)/this.view.fullHeight/this.zoom;n+=e*this.view.offsetX,s=n+e*this.view.width,a-=t*this.view.offsetY,o=a-t*this.view.height}this.projectionMatrix.makeOrthographic(n,s,a,o,this.near,this.far),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(e){const t=super.toJSON(e);return t.object.zoom=this.zoom,t.object.left=this.left,t.object.right=this.right,t.object.top=this.top,t.object.bottom=this.bottom,t.object.near=this.near,t.object.far=this.far,null!==this.view&&(t.object.view=Object.assign({},this.view)),t}}const vn=4,xn=[.125,.215,.35,.446,.526,.582],yn=20,_n=new OrthographicCamera,bn=new Color;let Mn=null;const Sn=(1+Math.sqrt(5))/2,wn=1/Sn,Tn=[new Vector3(1,1,1),new Vector3(-1,1,1),new Vector3(1,1,-1),new Vector3(-1,1,-1),new Vector3(0,Sn,wn),new Vector3(0,Sn,-wn),new Vector3(wn,0,Sn),new Vector3(-wn,0,Sn),new Vector3(Sn,wn,0),new Vector3(-Sn,wn,0)];class PMREMGenerator{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,t=0,i=.1,r=100){Mn=this._renderer.getRenderTarget(),this._setSize(256);const n=this._allocateTargets();return n.depthBuffer=!0,this._sceneToCubeUV(e,i,r,n),t>0&&this._blur(n,0,0,t),this._applyPMREM(n),this._cleanup(n),n}fromEquirectangular(e,t=null){return this._fromTexture(e,t)}fromCubemap(e,t=null){return this._fromTexture(e,t)}compileCubemapShader(){null===this._cubemapMaterial&&(this._cubemapMaterial=_getCubemapMaterial(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){null===this._equirectMaterial&&(this._equirectMaterial=_getEquirectMaterial(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),null!==this._cubemapMaterial&&this._cubemapMaterial.dispose(),null!==this._equirectMaterial&&this._equirectMaterial.dispose()}_setSize(e){this._lodMax=Math.floor(Math.log2(e)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){null!==this._blurMaterial&&this._blurMaterial.dispose(),null!==this._pingPongRenderTarget&&this._pingPongRenderTarget.dispose();for(let e=0;e<this._lodPlanes.length;e++)this._lodPlanes[e].dispose()}_cleanup(e){this._renderer.setRenderTarget(Mn),e.scissorTest=!1,_setViewport(e,0,0,e.width,e.height)}_fromTexture(e,t){e.mapping===se||e.mapping===ae?this._setSize(0===e.image.length?16:e.image[0].width||e.image[0].image.width):this._setSize(e.image.width/4),Mn=this._renderer.getRenderTarget();const i=t||this._allocateTargets();return this._textureToCubeUV(e,i),this._applyPMREM(i),this._cleanup(i),i}_allocateTargets(){const e=3*Math.max(this._cubeSize,112),t=4*this._cubeSize,i={magFilter:xe,minFilter:xe,generateMipmaps:!1,type:Pe,format:Ne,encoding:Dt,depthBuffer:!1},r=_createRenderTarget(e,t,i);if(null===this._pingPongRenderTarget||this._pingPongRenderTarget.width!==e){null!==this._pingPongRenderTarget&&this._dispose(),this._pingPongRenderTarget=_createRenderTarget(e,t,i);const{_lodMax:r}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=function _createPlanes(e){const t=[],i=[],r=[];let n=e;const s=e-vn+1+xn.length;for(let a=0;a<s;a++){const s=Math.pow(2,n);i.push(s);let o=1/s;a>e-vn?o=xn[a-e+vn-1]:0===a&&(o=0),r.push(o);const l=1/(s-2),c=-l,h=1+l,u=[c,c,h,c,h,h,c,c,h,h,c,h],d=6,p=6,m=3,f=2,g=1,x=new Float32Array(m*p*d),y=new Float32Array(f*p*d),_=new Float32Array(g*p*d);for(let e=0;e<d;e++){const t=e%3*2/3-1,i=e>2?0:-1,r=[t,i,0,t+2/3,i,0,t+2/3,i+1,0,t,i,0,t+2/3,i+1,0,t,i+1,0];x.set(r,m*p*e),y.set(u,f*p*e);const n=[e,e,e,e,e,e];_.set(n,g*p*e)}const b=new BufferGeometry;b.setAttribute("position",new BufferAttribute(x,m)),b.setAttribute("uv",new BufferAttribute(y,f)),b.setAttribute("faceIndex",new BufferAttribute(_,g)),t.push(b),n>vn&&n--}return{lodPlanes:t,sizeLods:i,sigmas:r}}(r)),this._blurMaterial=function _getBlurShader(e,t,i){const r=new Float32Array(yn),n=new Vector3(0,1,0),s=new ShaderMaterial({name:"SphericalGaussianBlur",defines:{n:yn,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/i,CUBEUV_MAX_MIP:`${e}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:r},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:n}},vertexShader:_getCommonVertexShader(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\t\t\tuniform int samples;\n\t\t\tuniform float weights[ n ];\n\t\t\tuniform bool latitudinal;\n\t\t\tuniform float dTheta;\n\t\t\tuniform float mipInt;\n\t\t\tuniform vec3 poleAxis;\n\n\t\t\t#define ENVMAP_TYPE_CUBE_UV\n\t\t\t#include <cube_uv_reflection_fragment>\n\n\t\t\tvec3 getSample( float theta, vec3 axis ) {\n\n\t\t\t\tfloat cosTheta = cos( theta );\n\t\t\t\t// Rodrigues' axis-angle rotation\n\t\t\t\tvec3 sampleDirection = vOutputDirection * cosTheta\n\t\t\t\t\t+ cross( axis, vOutputDirection ) * sin( theta )\n\t\t\t\t\t+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );\n\n\t\t\t\treturn bilinearCubeUV( envMap, sampleDirection, mipInt );\n\n\t\t\t}\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );\n\n\t\t\t\tif ( all( equal( axis, vec3( 0.0 ) ) ) ) {\n\n\t\t\t\t\taxis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );\n\n\t\t\t\t}\n\n\t\t\t\taxis = normalize( axis );\n\n\t\t\t\tgl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );\n\t\t\t\tgl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );\n\n\t\t\t\tfor ( int i = 1; i < n; i++ ) {\n\n\t\t\t\t\tif ( i >= samples ) {\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tfloat theta = dTheta * float( i );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );\n\t\t\t\t\tgl_FragColor.rgb += weights[ i ] * getSample( theta, axis );\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t",blending:y,depthTest:!1,depthWrite:!1});return s}(r,e,t)}return r}_compileMaterial(e){const t=new Mesh(this._lodPlanes[0],e);this._renderer.compile(t,_n)}_sceneToCubeUV(e,t,i,r){const n=new PerspectiveCamera(90,1,t,i),s=[1,-1,1,1,1,1],a=[1,1,1,-1,-1,-1],o=this._renderer,l=o.autoClear,c=o.toneMapping;o.getClearColor(bn),o.toneMapping=Q,o.autoClear=!1;const h=new MeshBasicMaterial({name:"PMREM.Background",side:m,depthWrite:!1,depthTest:!1}),u=new Mesh(new BoxGeometry,h);let d=!1;const p=e.background;p?p.isColor&&(h.color.copy(p),e.background=null,d=!0):(h.color.copy(bn),d=!0);for(let m=0;m<6;m++){const t=m%3;0===t?(n.up.set(0,s[m],0),n.lookAt(a[m],0,0)):1===t?(n.up.set(0,0,s[m]),n.lookAt(0,a[m],0)):(n.up.set(0,s[m],0),n.lookAt(0,0,a[m]));const i=this._cubeSize;_setViewport(r,t*i,m>2?i:0,i,i),o.setRenderTarget(r),d&&o.render(u,n),o.render(e,n)}u.geometry.dispose(),u.material.dispose(),o.toneMapping=c,o.autoClear=l,e.background=p}_textureToCubeUV(e,t){const i=this._renderer,r=e.mapping===se||e.mapping===ae;r?(null===this._cubemapMaterial&&(this._cubemapMaterial=_getCubemapMaterial()),this._cubemapMaterial.uniforms.flipEnvMap.value=!1===e.isRenderTargetTexture?-1:1):null===this._equirectMaterial&&(this._equirectMaterial=_getEquirectMaterial());const n=r?this._cubemapMaterial:this._equirectMaterial,s=new Mesh(this._lodPlanes[0],n);n.uniforms.envMap.value=e;const a=this._cubeSize;_setViewport(t,0,0,3*a,2*a),i.setRenderTarget(t),i.render(s,_n)}_applyPMREM(e){const t=this._renderer,i=t.autoClear;t.autoClear=!1;for(let r=1;r<this._lodPlanes.length;r++){const t=Math.sqrt(this._sigmas[r]*this._sigmas[r]-this._sigmas[r-1]*this._sigmas[r-1]),i=Tn[(r-1)%Tn.length];this._blur(e,r-1,r,t,i)}t.autoClear=i}_blur(e,t,i,r,n){const s=this._pingPongRenderTarget;this._halfBlur(e,s,t,i,r,"latitudinal",n),this._halfBlur(s,e,i,i,r,"longitudinal",n)}_halfBlur(e,t,i,r,n,s,a){const o=this._renderer,l=this._blurMaterial;"latitudinal"!==s&&"longitudinal"!==s&&console.error("blur direction must be either latitudinal or longitudinal!");const c=new Mesh(this._lodPlanes[r],l),h=l.uniforms,u=this._sizeLods[i]-1,d=isFinite(n)?Math.PI/(2*u):2*Math.PI/(2*yn-1),p=n/d,m=isFinite(n)?1+Math.floor(3*p):yn;m>yn&&console.warn(`sigmaRadians, ${n}, is too large and will clip, as it requested ${m} samples when the maximum is set to ${yn}`);const f=[];let g=0;for(let _=0;_<yn;++_){const e=_/p,t=Math.exp(-e*e/2);f.push(t),0===_?g+=t:_<m&&(g+=2*t)}for(let _=0;_<f.length;_++)f[_]=f[_]/g;h.envMap.value=e.texture,h.samples.value=m,h.weights.value=f,h.latitudinal.value="latitudinal"===s,a&&(h.poleAxis.value=a);const{_lodMax:x}=this;h.dTheta.value=d,h.mipInt.value=x-i;const y=this._sizeLods[r];_setViewport(t,3*y*(r>x-vn?r-x+vn:0),4*(this._cubeSize-y),3*y,2*y),o.setRenderTarget(t),o.render(c,_n)}}function _createRenderTarget(e,t,i){const r=new WebGLRenderTarget(e,t,i);return r.texture.mapping=ce,r.texture.name="PMREM.cubeUv",r.scissorTest=!0,r}function _setViewport(e,t,i,r,n){e.viewport.set(t,i,r,n),e.scissor.set(t,i,r,n)}function _getEquirectMaterial(){return new ShaderMaterial({name:"EquirectangularToCubeUV",uniforms:{envMap:{value:null}},vertexShader:_getCommonVertexShader(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform sampler2D envMap;\n\n\t\t\t#include <common>\n\n\t\t\tvoid main() {\n\n\t\t\t\tvec3 outputDirection = normalize( vOutputDirection );\n\t\t\t\tvec2 uv = equirectUv( outputDirection );\n\n\t\t\t\tgl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );\n\n\t\t\t}\n\t\t",blending:y,depthTest:!1,depthWrite:!1})}function _getCubemapMaterial(){return new ShaderMaterial({name:"CubemapToCubeUV",uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:_getCommonVertexShader(),fragmentShader:"\n\n\t\t\tprecision mediump float;\n\t\t\tprecision mediump int;\n\n\t\t\tuniform float flipEnvMap;\n\n\t\t\tvarying vec3 vOutputDirection;\n\n\t\t\tuniform samplerCube envMap;\n\n\t\t\tvoid main() {\n\n\t\t\t\tgl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );\n\n\t\t\t}\n\t\t",blending:y,depthTest:!1,depthWrite:!1})}function _getCommonVertexShader(){return"\n\n\t\tprecision mediump float;\n\t\tprecision mediump int;\n\n\t\tattribute float faceIndex;\n\n\t\tvarying vec3 vOutputDirection;\n\n\t\t// RH coordinate system; PMREM face-indexing convention\n\t\tvec3 getDirection( vec2 uv, float face ) {\n\n\t\t\tuv = 2.0 * uv - 1.0;\n\n\t\t\tvec3 direction = vec3( uv, 1.0 );\n\n\t\t\tif ( face == 0.0 ) {\n\n\t\t\t\tdirection = direction.zyx; // ( 1, v, u ) pos x\n\n\t\t\t} else if ( face == 1.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xz *= -1.0; // ( -u, 1, -v ) pos y\n\n\t\t\t} else if ( face == 2.0 ) {\n\n\t\t\t\tdirection.x *= -1.0; // ( -u, v, 1 ) pos z\n\n\t\t\t} else if ( face == 3.0 ) {\n\n\t\t\t\tdirection = direction.zyx;\n\t\t\t\tdirection.xz *= -1.0; // ( -1, v, -u ) neg x\n\n\t\t\t} else if ( face == 4.0 ) {\n\n\t\t\t\tdirection = direction.xzy;\n\t\t\t\tdirection.xy *= -1.0; // ( -u, -1, v ) neg y\n\n\t\t\t} else if ( face == 5.0 ) {\n\n\t\t\t\tdirection.z *= -1.0; // ( u, v, -1 ) neg z\n\n\t\t\t}\n\n\t\t\treturn direction;\n\n\t\t}\n\n\t\tvoid main() {\n\n\t\t\tvOutputDirection = getDirection( uv, faceIndex );\n\t\t\tgl_Position = vec4( position, 1.0 );\n\n\t\t}\n\t"}function WebGLCubeUVMaps(e){let t=new WeakMap,i=null;function onTextureDispose(e){const i=e.target;i.removeEventListener("dispose",onTextureDispose);const r=t.get(i);void 0!==r&&(t.delete(i),r.dispose())}return{get:function get(r){if(r&&r.isTexture){const n=r.mapping,s=n===oe||n===le,a=n===se||n===ae;if(s||a){if(r.isRenderTargetTexture&&!0===r.needsPMREMUpdate){r.needsPMREMUpdate=!1;let n=t.get(r);return null===i&&(i=new PMREMGenerator(e)),n=s?i.fromEquirectangular(r,n):i.fromCubemap(r,n),t.set(r,n),n.texture}if(t.has(r))return t.get(r).texture;{const n=r.image;if(s&&n&&n.height>0||a&&n&&function isCubeTextureComplete(e){let t=0;const i=6;for(let r=0;r<i;r++)void 0!==e[r]&&t++;return t===i}(n)){null===i&&(i=new PMREMGenerator(e));const n=s?i.fromEquirectangular(r):i.fromCubemap(r);return t.set(r,n),r.addEventListener("dispose",onTextureDispose),n.texture}return null}}}return r},dispose:function dispose(){t=new WeakMap,null!==i&&(i.dispose(),i=null)}}}function WebGLExtensions(e){const t={};function getExtension(i){if(void 0!==t[i])return t[i];let r;switch(i){case"WEBGL_depth_texture":r=e.getExtension("WEBGL_depth_texture")||e.getExtension("MOZ_WEBGL_depth_texture")||e.getExtension("WEBKIT_WEBGL_depth_texture");break;case"EXT_texture_filter_anisotropic":r=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");break;case"WEBGL_compressed_texture_s3tc":r=e.getExtension("WEBGL_compressed_texture_s3tc")||e.getExtension("MOZ_WEBGL_compressed_texture_s3tc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");break;case"WEBGL_compressed_texture_pvrtc":r=e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc");break;default:r=e.getExtension(i)}return t[i]=r,r}return{has:function(e){return null!==getExtension(e)},init:function(e){e.isWebGL2?getExtension("EXT_color_buffer_float"):(getExtension("WEBGL_depth_texture"),getExtension("OES_texture_float"),getExtension("OES_texture_half_float"),getExtension("OES_texture_half_float_linear"),getExtension("OES_standard_derivatives"),getExtension("OES_element_index_uint"),getExtension("OES_vertex_array_object"),getExtension("ANGLE_instanced_arrays")),getExtension("OES_texture_float_linear"),getExtension("EXT_color_buffer_half_float"),getExtension("WEBGL_multisampled_render_to_texture")},get:function(e){const t=getExtension(e);return null===t&&console.warn("THREE.WebGLRenderer: "+e+" extension not supported."),t}}}function WebGLGeometries(e,t,i,r){const n={},s=new WeakMap;function onGeometryDispose(e){const a=e.target;null!==a.index&&t.remove(a.index);for(const i in a.attributes)t.remove(a.attributes[i]);a.removeEventListener("dispose",onGeometryDispose),delete n[a.id];const o=s.get(a);o&&(t.remove(o),s.delete(a)),r.releaseStatesOfGeometry(a),!0===a.isInstancedBufferGeometry&&delete a._maxInstanceCount,i.memory.geometries--}function updateWireframeAttribute(e){const i=[],r=e.index,n=e.attributes.position;let a=0;if(null!==r){const e=r.array;a=r.version;for(let t=0,r=e.length;t<r;t+=3){const r=e[t+0],n=e[t+1],s=e[t+2];i.push(r,n,n,s,s,r)}}else{const e=n.array;a=n.version;for(let t=0,r=e.length/3-1;t<r;t+=3){const e=t+0,r=t+1,n=t+2;i.push(e,r,r,n,n,e)}}const o=new(arrayNeedsUint32(i)?Uint32BufferAttribute:Uint16BufferAttribute)(i,1);o.version=a;const l=s.get(e);l&&t.remove(l),s.set(e,o)}return{get:function get(e,t){return!0===n[t.id]||(t.addEventListener("dispose",onGeometryDispose),n[t.id]=!0,i.memory.geometries++),t},update:function update(e){const i=e.attributes;for(const n in i)t.update(i[n],34962);const r=e.morphAttributes;for(const n in r){const e=r[n];for(let i=0,r=e.length;i<r;i++)t.update(e[i],34962)}},getWireframeAttribute:function getWireframeAttribute(e){const t=s.get(e);if(t){const i=e.index;null!==i&&t.version<i.version&&updateWireframeAttribute(e)}else updateWireframeAttribute(e);return s.get(e)}}}function WebGLIndexedBufferRenderer(e,t,i,r){const n=r.isWebGL2;let s,a,o;this.setMode=function setMode(e){s=e},this.setIndex=function setIndex(e){a=e.type,o=e.bytesPerElement},this.render=function render(t,r){e.drawElements(s,r,a,t*o),i.update(r,s,1)},this.renderInstances=function renderInstances(r,l,c){if(0===c)return;let h,u;if(n)h=e,u="drawElementsInstanced";else if(h=t.get("ANGLE_instanced_arrays"),u="drawElementsInstancedANGLE",null===h)return void console.error("THREE.WebGLIndexedBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.");h[u](s,l,a,r*o,c),i.update(l,s,c)}}function WebGLInfo(e){const t={frame:0,calls:0,triangles:0,points:0,lines:0};return{memory:{geometries:0,textures:0},render:t,programs:null,autoReset:!0,reset:function reset(){t.frame++,t.calls=0,t.triangles=0,t.points=0,t.lines=0},update:function update(e,i,r){switch(t.calls++,i){case 4:t.triangles+=r*(e/3);break;case 1:t.lines+=r*(e/2);break;case 3:t.lines+=r*(e-1);break;case 2:t.lines+=r*e;break;case 0:t.points+=r*e;break;default:console.error("THREE.WebGLInfo: Unknown draw mode:",i)}}}}function numericalSort(e,t){return e[0]-t[0]}function absNumericalSort(e,t){return Math.abs(t[1])-Math.abs(e[1])}function denormalize(e,t){let i=1;const r=t.isInterleavedBufferAttribute?t.data.array:t.array;r instanceof Int8Array?i=127:r instanceof Uint8Array?i=255:r instanceof Uint16Array?i=65535:r instanceof Int16Array?i=32767:r instanceof Int32Array?i=2147483647:console.error("THREE.WebGLMorphtargets: Unsupported morph attribute data type: ",r),e.divideScalar(i)}function WebGLMorphtargets(e,t,i){const r={},n=new Float32Array(8),s=new WeakMap,a=new Vector4,o=[];for(let l=0;l<8;l++)o[l]=[l,0];return{update:function update(l,c,h,u){const d=l.morphTargetInfluences;if(!0===t.isWebGL2){const p=c.morphAttributes.position||c.morphAttributes.normal||c.morphAttributes.color,m=void 0!==p?p.length:0;let f=s.get(c);if(void 0===f||f.count!==m){void 0!==f&&f.texture.dispose();const y=void 0!==c.morphAttributes.position,_=void 0!==c.morphAttributes.normal,b=void 0!==c.morphAttributes.color,M=c.morphAttributes.position||[],S=c.morphAttributes.normal||[],w=c.morphAttributes.color||[];let T=0;!0===y&&(T=1),!0===_&&(T=2),!0===b&&(T=3);let A=c.attributes.position.count*T,C=1;A>t.maxTextureSize&&(C=Math.ceil(A/t.maxTextureSize),A=t.maxTextureSize);const E=new Float32Array(A*C*4*m),L=new DataArrayTexture(E,A,C,m);L.type=Le,L.needsUpdate=!0;const P=4*T;for(let R=0;R<m;R++){const D=M[R],I=S[R],B=w[R],V=A*C*4*R;for(let N=0;N<D.count;N++){const O=N*P;!0===y&&(a.fromBufferAttribute(D,N),!0===D.normalized&&denormalize(a,D),E[V+O+0]=a.x,E[V+O+1]=a.y,E[V+O+2]=a.z,E[V+O+3]=0),!0===_&&(a.fromBufferAttribute(I,N),!0===I.normalized&&denormalize(a,I),E[V+O+4]=a.x,E[V+O+5]=a.y,E[V+O+6]=a.z,E[V+O+7]=0),!0===b&&(a.fromBufferAttribute(B,N),!0===B.normalized&&denormalize(a,B),E[V+O+8]=a.x,E[V+O+9]=a.y,E[V+O+10]=a.z,E[V+O+11]=4===B.itemSize?a.w:1)}}function disposeTexture(){L.dispose(),s.delete(c),c.removeEventListener("dispose",disposeTexture)}f={count:m,texture:L,size:new Vector2(A,C)},s.set(c,f),c.addEventListener("dispose",disposeTexture)}let g=0;for(let z=0;z<d.length;z++)g+=d[z];const x=c.morphTargetsRelative?1:1-g;u.getUniforms().setValue(e,"morphTargetBaseInfluence",x),u.getUniforms().setValue(e,"morphTargetInfluences",d),u.getUniforms().setValue(e,"morphTargetsTexture",f.texture,i),u.getUniforms().setValue(e,"morphTargetsTextureSize",f.size)}else{const F=void 0===d?0:d.length;let G=r[c.id];if(void 0===G||G.length!==F){G=[];for(let j=0;j<F;j++)G[j]=[j,0];r[c.id]=G}for(let q=0;q<F;q++){const X=G[q];X[0]=q,X[1]=d[q]}G.sort(absNumericalSort);for(let Y=0;Y<8;Y++)Y<F&&G[Y][1]?(o[Y][0]=G[Y][0],o[Y][1]=G[Y][1]):(o[Y][0]=Number.MAX_SAFE_INTEGER,o[Y][1]=0);o.sort(numericalSort);const U=c.morphAttributes.position,k=c.morphAttributes.normal;let W=0;for(let Z=0;Z<8;Z++){const J=o[Z],K=J[0],Q=J[1];K!==Number.MAX_SAFE_INTEGER&&Q?(U&&c.getAttribute("morphTarget"+Z)!==U[K]&&c.setAttribute("morphTarget"+Z,U[K]),k&&c.getAttribute("morphNormal"+Z)!==k[K]&&c.setAttribute("morphNormal"+Z,k[K]),n[Z]=Q,W+=Q):(U&&!0===c.hasAttribute("morphTarget"+Z)&&c.deleteAttribute("morphTarget"+Z),k&&!0===c.hasAttribute("morphNormal"+Z)&&c.deleteAttribute("morphNormal"+Z),n[Z]=0)}const H=c.morphTargetsRelative?1:1-W;u.getUniforms().setValue(e,"morphTargetBaseInfluence",H),u.getUniforms().setValue(e,"morphTargetInfluences",n)}}}}function WebGLObjects(e,t,i,r){let n=new WeakMap;function onInstancedMeshDispose(e){const t=e.target;t.removeEventListener("dispose",onInstancedMeshDispose),i.remove(t.instanceMatrix),null!==t.instanceColor&&i.remove(t.instanceColor)}return{update:function update(e){const s=r.render.frame,a=e.geometry,o=t.get(e,a);return n.get(o)!==s&&(t.update(o),n.set(o,s)),e.isInstancedMesh&&(!1===e.hasEventListener("dispose",onInstancedMeshDispose)&&e.addEventListener("dispose",onInstancedMeshDispose),i.update(e.instanceMatrix,34962),null!==e.instanceColor&&i.update(e.instanceColor,34962)),o},dispose:function dispose(){n=new WeakMap}}}const An=new Texture,Cn=new DataArrayTexture,En=new Data3DTexture,Ln=new CubeTexture,Pn=[],Rn=[],Dn=new Float32Array(16),In=new Float32Array(9),Bn=new Float32Array(4);function flatten(e,t,i){const r=e[0];if(r<=0||r>0)return e;const n=t*i;let s=Pn[n];if(void 0===s&&(s=new Float32Array(n),Pn[n]=s),0!==t){r.toArray(s,0);for(let r=1,n=0;r!==t;++r)n+=i,e[r].toArray(s,n)}return s}function arraysEqual(e,t){if(e.length!==t.length)return!1;for(let i=0,r=e.length;i<r;i++)if(e[i]!==t[i])return!1;return!0}function copyArray(e,t){for(let i=0,r=t.length;i<r;i++)e[i]=t[i]}function allocTexUnits(e,t){let i=Rn[t];void 0===i&&(i=new Int32Array(t),Rn[t]=i);for(let r=0;r!==t;++r)i[r]=e.allocateTextureUnit();return i}function setValueV1f(e,t){const i=this.cache;i[0]!==t&&(e.uniform1f(this.addr,t),i[0]=t)}function setValueV2f(e,t){const i=this.cache;if(void 0!==t.x)i[0]===t.x&&i[1]===t.y||(e.uniform2f(this.addr,t.x,t.y),i[0]=t.x,i[1]=t.y);else{if(arraysEqual(i,t))return;e.uniform2fv(this.addr,t),copyArray(i,t)}}function setValueV3f(e,t){const i=this.cache;if(void 0!==t.x)i[0]===t.x&&i[1]===t.y&&i[2]===t.z||(e.uniform3f(this.addr,t.x,t.y,t.z),i[0]=t.x,i[1]=t.y,i[2]=t.z);else if(void 0!==t.r)i[0]===t.r&&i[1]===t.g&&i[2]===t.b||(e.uniform3f(this.addr,t.r,t.g,t.b),i[0]=t.r,i[1]=t.g,i[2]=t.b);else{if(arraysEqual(i,t))return;e.uniform3fv(this.addr,t),copyArray(i,t)}}function setValueV4f(e,t){const i=this.cache;if(void 0!==t.x)i[0]===t.x&&i[1]===t.y&&i[2]===t.z&&i[3]===t.w||(e.uniform4f(this.addr,t.x,t.y,t.z,t.w),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=t.w);else{if(arraysEqual(i,t))return;e.uniform4fv(this.addr,t),copyArray(i,t)}}function setValueM2(e,t){const i=this.cache,r=t.elements;if(void 0===r){if(arraysEqual(i,t))return;e.uniformMatrix2fv(this.addr,!1,t),copyArray(i,t)}else{if(arraysEqual(i,r))return;Bn.set(r),e.uniformMatrix2fv(this.addr,!1,Bn),copyArray(i,r)}}function setValueM3(e,t){const i=this.cache,r=t.elements;if(void 0===r){if(arraysEqual(i,t))return;e.uniformMatrix3fv(this.addr,!1,t),copyArray(i,t)}else{if(arraysEqual(i,r))return;In.set(r),e.uniformMatrix3fv(this.addr,!1,In),copyArray(i,r)}}function setValueM4(e,t){const i=this.cache,r=t.elements;if(void 0===r){if(arraysEqual(i,t))return;e.uniformMatrix4fv(this.addr,!1,t),copyArray(i,t)}else{if(arraysEqual(i,r))return;Dn.set(r),e.uniformMatrix4fv(this.addr,!1,Dn),copyArray(i,r)}}function setValueV1i(e,t){const i=this.cache;i[0]!==t&&(e.uniform1i(this.addr,t),i[0]=t)}function setValueV2i(e,t){const i=this.cache;arraysEqual(i,t)||(e.uniform2iv(this.addr,t),copyArray(i,t))}function setValueV3i(e,t){const i=this.cache;arraysEqual(i,t)||(e.uniform3iv(this.addr,t),copyArray(i,t))}function setValueV4i(e,t){const i=this.cache;arraysEqual(i,t)||(e.uniform4iv(this.addr,t),copyArray(i,t))}function setValueV1ui(e,t){const i=this.cache;i[0]!==t&&(e.uniform1ui(this.addr,t),i[0]=t)}function setValueV2ui(e,t){const i=this.cache;arraysEqual(i,t)||(e.uniform2uiv(this.addr,t),copyArray(i,t))}function setValueV3ui(e,t){const i=this.cache;arraysEqual(i,t)||(e.uniform3uiv(this.addr,t),copyArray(i,t))}function setValueV4ui(e,t){const i=this.cache;arraysEqual(i,t)||(e.uniform4uiv(this.addr,t),copyArray(i,t))}function setValueT1(e,t,i){const r=this.cache,n=i.allocateTextureUnit();r[0]!==n&&(e.uniform1i(this.addr,n),r[0]=n),i.setTexture2D(t||An,n)}function setValueT3D1(e,t,i){const r=this.cache,n=i.allocateTextureUnit();r[0]!==n&&(e.uniform1i(this.addr,n),r[0]=n),i.setTexture3D(t||En,n)}function setValueT6(e,t,i){const r=this.cache,n=i.allocateTextureUnit();r[0]!==n&&(e.uniform1i(this.addr,n),r[0]=n),i.setTextureCube(t||Ln,n)}function setValueT2DArray1(e,t,i){const r=this.cache,n=i.allocateTextureUnit();r[0]!==n&&(e.uniform1i(this.addr,n),r[0]=n),i.setTexture2DArray(t||Cn,n)}function setValueV1fArray(e,t){e.uniform1fv(this.addr,t)}function setValueV2fArray(e,t){const i=flatten(t,this.size,2);e.uniform2fv(this.addr,i)}function setValueV3fArray(e,t){const i=flatten(t,this.size,3);e.uniform3fv(this.addr,i)}function setValueV4fArray(e,t){const i=flatten(t,this.size,4);e.uniform4fv(this.addr,i)}function setValueM2Array(e,t){const i=flatten(t,this.size,4);e.uniformMatrix2fv(this.addr,!1,i)}function setValueM3Array(e,t){const i=flatten(t,this.size,9);e.uniformMatrix3fv(this.addr,!1,i)}function setValueM4Array(e,t){const i=flatten(t,this.size,16);e.uniformMatrix4fv(this.addr,!1,i)}function setValueV1iArray(e,t){e.uniform1iv(this.addr,t)}function setValueV2iArray(e,t){e.uniform2iv(this.addr,t)}function setValueV3iArray(e,t){e.uniform3iv(this.addr,t)}function setValueV4iArray(e,t){e.uniform4iv(this.addr,t)}function setValueV1uiArray(e,t){e.uniform1uiv(this.addr,t)}function setValueV2uiArray(e,t){e.uniform2uiv(this.addr,t)}function setValueV3uiArray(e,t){e.uniform3uiv(this.addr,t)}function setValueV4uiArray(e,t){e.uniform4uiv(this.addr,t)}function setValueT1Array(e,t,i){const r=t.length,n=allocTexUnits(i,r);e.uniform1iv(this.addr,n);for(let s=0;s!==r;++s)i.setTexture2D(t[s]||An,n[s])}function setValueT3DArray(e,t,i){const r=t.length,n=allocTexUnits(i,r);e.uniform1iv(this.addr,n);for(let s=0;s!==r;++s)i.setTexture3D(t[s]||En,n[s])}function setValueT6Array(e,t,i){const r=t.length,n=allocTexUnits(i,r);e.uniform1iv(this.addr,n);for(let s=0;s!==r;++s)i.setTextureCube(t[s]||Ln,n[s])}function setValueT2DArrayArray(e,t,i){const r=t.length,n=allocTexUnits(i,r);e.uniform1iv(this.addr,n);for(let s=0;s!==r;++s)i.setTexture2DArray(t[s]||Cn,n[s])}class SingleUniform{constructor(e,t,i){this.id=e,this.addr=i,this.cache=[],this.setValue=function getSingularSetter(e){switch(e){case 5126:return setValueV1f;case 35664:return setValueV2f;case 35665:return setValueV3f;case 35666:return setValueV4f;case 35674:return setValueM2;case 35675:return setValueM3;case 35676:return setValueM4;case 5124:case 35670:return setValueV1i;case 35667:case 35671:return setValueV2i;case 35668:case 35672:return setValueV3i;case 35669:case 35673:return setValueV4i;case 5125:return setValueV1ui;case 36294:return setValueV2ui;case 36295:return setValueV3ui;case 36296:return setValueV4ui;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1;case 35679:case 36299:case 36307:return setValueT3D1;case 35680:case 36300:case 36308:case 36293:return setValueT6;case 36289:case 36303:case 36311:case 36292:return setValueT2DArray1}}(t.type)}}class PureArrayUniform{constructor(e,t,i){this.id=e,this.addr=i,this.cache=[],this.size=t.size,this.setValue=function getPureArraySetter(e){switch(e){case 5126:return setValueV1fArray;case 35664:return setValueV2fArray;case 35665:return setValueV3fArray;case 35666:return setValueV4fArray;case 35674:return setValueM2Array;case 35675:return setValueM3Array;case 35676:return setValueM4Array;case 5124:case 35670:return setValueV1iArray;case 35667:case 35671:return setValueV2iArray;case 35668:case 35672:return setValueV3iArray;case 35669:case 35673:return setValueV4iArray;case 5125:return setValueV1uiArray;case 36294:return setValueV2uiArray;case 36295:return setValueV3uiArray;case 36296:return setValueV4uiArray;case 35678:case 36198:case 36298:case 36306:case 35682:return setValueT1Array;case 35679:case 36299:case 36307:return setValueT3DArray;case 35680:case 36300:case 36308:case 36293:return setValueT6Array;case 36289:case 36303:case 36311:case 36292:return setValueT2DArrayArray}}(t.type)}}class StructuredUniform{constructor(e){this.id=e,this.seq=[],this.map={}}setValue(e,t,i){const r=this.seq;for(let n=0,s=r.length;n!==s;++n){const s=r[n];s.setValue(e,t[s.id],i)}}}const Vn=/(\w+)(\])?(\[|\.)?/g;function addUniform(e,t){e.seq.push(t),e.map[t.id]=t}function parseUniform(e,t,i){const r=e.name,n=r.length;for(Vn.lastIndex=0;;){const s=Vn.exec(r),a=Vn.lastIndex;let o=s[1];const l="]"===s[2],c=s[3];if(l&&(o|=0),void 0===c||"["===c&&a+2===n){addUniform(i,void 0===c?new SingleUniform(o,e,t):new PureArrayUniform(o,e,t));break}{let e=i.map[o];void 0===e&&(e=new StructuredUniform(o),addUniform(i,e)),i=e}}}class WebGLUniforms{constructor(e,t){this.seq=[],this.map={};const i=e.getProgramParameter(t,35718);for(let r=0;r<i;++r){const i=e.getActiveUniform(t,r);parseUniform(i,e.getUniformLocation(t,i.name),this)}}setValue(e,t,i,r){const n=this.map[t];void 0!==n&&n.setValue(e,i,r)}setOptional(e,t,i){const r=t[i];void 0!==r&&this.setValue(e,i,r)}static upload(e,t,i,r){for(let n=0,s=t.length;n!==s;++n){const s=t[n],a=i[s.id];!1!==a.needsUpdate&&s.setValue(e,a.value,r)}}static seqWithValue(e,t){const i=[];for(let r=0,n=e.length;r!==n;++r){const n=e[r];n.id in t&&i.push(n)}return i}}function WebGLShader(e,t,i){const r=e.createShader(t);return e.shaderSource(r,i),e.compileShader(r),r}let Nn=0;function getShaderErrors(e,t,i){const r=e.getShaderParameter(t,35713),n=e.getShaderInfoLog(t).trim();if(r&&""===n)return"";const s=/ERROR: 0:(\d+)/.exec(n);if(s){const r=parseInt(s[1]);return i.toUpperCase()+"\n\n"+n+"\n\n"+function handleSource(e,t){const i=e.split("\n"),r=[],n=Math.max(t-6,0),s=Math.min(t+6,i.length);for(let a=n;a<s;a++){const e=a+1;r.push(`${e===t?">":" "} ${e}: ${i[a]}`)}return r.join("\n")}(e.getShaderSource(t),r)}return n}function getTexelEncodingFunction(e,t){const i=function getEncodingComponents(e){switch(e){case Dt:return["Linear","( value )"];case It:return["sRGB","( value )"];default:return console.warn("THREE.WebGLProgram: Unsupported encoding:",e),["Linear","( value )"]}}(t);return"vec4 "+e+"( vec4 value ) { return LinearTo"+i[0]+i[1]+"; }"}function getToneMappingFunction(e,t){let i;switch(t){case $:i="Linear";break;case ee:i="Reinhard";break;case te:i="OptimizedCineon";break;case ie:i="ACESFilmic";break;case re:i="Custom";break;default:console.warn("THREE.WebGLProgram: Unsupported toneMapping:",t),i="Linear"}return"vec3 "+e+"( vec3 color ) { return "+i+"ToneMapping( color ); }"}function filterEmptyLine(e){return""!==e}function replaceLightNums(e,t){return e.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function replaceClippingPlaneNums(e,t){return e.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}const On=/^[ \t]*#include +<([\w\d./]+)>/gm;function resolveIncludes(e){return e.replace(On,includeReplacer)}function includeReplacer(e,t){const i=mn[t];if(void 0===i)throw new Error("Can not resolve #include <"+t+">");return resolveIncludes(i)}const zn=/#pragma unroll_loop[\s]+?for \( int i \= (\d+)\; i < (\d+)\; i \+\+ \) \{([\s\S]+?)(?=\})\}/g,Fn=/#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 unrollLoops(e){return e.replace(Fn,loopReplacer).replace(zn,deprecatedLoopReplacer)}function deprecatedLoopReplacer(e,t,i,r){return console.warn("WebGLProgram: #pragma unroll_loop shader syntax is deprecated. Please use #pragma unroll_loop_start syntax instead."),loopReplacer(e,t,i,r)}function loopReplacer(e,t,i,r){let n="";for(let s=parseInt(t);s<parseInt(i);s++)n+=r.replace(/\[\s*i\s*\]/g,"[ "+s+" ]").replace(/UNROLLED_LOOP_INDEX/g,s);return n}function generatePrecision(e){let t="precision "+e.precision+" float;\nprecision "+e.precision+" int;";return"highp"===e.precision?t+="\n#define HIGH_PRECISION":"mediump"===e.precision?t+="\n#define MEDIUM_PRECISION":"lowp"===e.precision&&(t+="\n#define LOW_PRECISION"),t}function WebGLProgram(e,t,i,r){const n=e.getContext(),s=i.defines;let a=i.vertexShader,o=i.fragmentShader;const l=function generateShadowMapTypeDefine(e){let t="SHADOWMAP_TYPE_BASIC";return e.shadowMapType===h?t="SHADOWMAP_TYPE_PCF":e.shadowMapType===u?t="SHADOWMAP_TYPE_PCF_SOFT":e.shadowMapType===d&&(t="SHADOWMAP_TYPE_VSM"),t}(i),c=function generateEnvMapTypeDefine(e){let t="ENVMAP_TYPE_CUBE";if(e.envMap)switch(e.envMapMode){case se:case ae:t="ENVMAP_TYPE_CUBE";break;case ce:t="ENVMAP_TYPE_CUBE_UV"}return t}(i),p=function generateEnvMapModeDefine(e){let t="ENVMAP_MODE_REFLECTION";e.envMap&&e.envMapMode===ae&&(t="ENVMAP_MODE_REFRACTION");return t}(i),m=function generateEnvMapBlendingDefine(e){let t="ENVMAP_BLENDING_NONE";if(e.envMap)switch(e.combine){case Z:t="ENVMAP_BLENDING_MULTIPLY";break;case J:t="ENVMAP_BLENDING_MIX";break;case K:t="ENVMAP_BLENDING_ADD"}return t}(i),f=function generateCubeUVSize(e){const t=e.envMapCubeUVHeight;if(null===t)return null;const i=Math.log2(t)-2,r=1/t;return{texelWidth:1/(3*Math.max(Math.pow(2,i),112)),texelHeight:r,maxMip:i}}(i),g=i.isWebGL2?"":function generateExtensions(e){return[e.extensionDerivatives||e.envMapCubeUVHeight||e.bumpMap||e.tangentSpaceNormalMap||e.clearcoatNormalMap||e.flatShading||"physical"===e.shaderID?"#extension GL_OES_standard_derivatives : enable":"",(e.extensionFragDepth||e.logarithmicDepthBuffer)&&e.rendererExtensionFragDepth?"#extension GL_EXT_frag_depth : enable":"",e.extensionDrawBuffers&&e.rendererExtensionDrawBuffers?"#extension GL_EXT_draw_buffers : require":"",(e.extensionShaderTextureLOD||e.envMap||e.transmission)&&e.rendererExtensionShaderTextureLod?"#extension GL_EXT_shader_texture_lod : enable":""].filter(filterEmptyLine).join("\n")}(i),x=function generateDefines(e){const t=[];for(const i in e){const r=e[i];!1!==r&&t.push("#define "+i+" "+r)}return t.join("\n")}(s),y=n.createProgram();let _,b,M=i.glslVersion?"#version "+i.glslVersion+"\n":"";i.isRawShaderMaterial?(_=[x].filter(filterEmptyLine).join("\n"),_.length>0&&(_+="\n"),b=[g,x].filter(filterEmptyLine).join("\n"),b.length>0&&(b+="\n")):(_=[generatePrecision(i),"#define SHADER_NAME "+i.shaderName,x,i.instancing?"#define USE_INSTANCING":"",i.instancingColor?"#define USE_INSTANCING_COLOR":"",i.supportsVertexTextures?"#define VERTEX_TEXTURES":"",i.useFog&&i.fog?"#define USE_FOG":"",i.useFog&&i.fogExp2?"#define FOG_EXP2":"",i.map?"#define USE_MAP":"",i.envMap?"#define USE_ENVMAP":"",i.envMap?"#define "+p:"",i.lightMap?"#define USE_LIGHTMAP":"",i.aoMap?"#define USE_AOMAP":"",i.emissiveMap?"#define USE_EMISSIVEMAP":"",i.bumpMap?"#define USE_BUMPMAP":"",i.normalMap?"#define USE_NORMALMAP":"",i.normalMap&&i.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",i.normalMap&&i.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",i.clearcoatMap?"#define USE_CLEARCOATMAP":"",i.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",i.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",i.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",i.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",i.displacementMap&&i.supportsVertexTextures?"#define USE_DISPLACEMENTMAP":"",i.specularMap?"#define USE_SPECULARMAP":"",i.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",i.specularColorMap?"#define USE_SPECULARCOLORMAP":"",i.roughnessMap?"#define USE_ROUGHNESSMAP":"",i.metalnessMap?"#define USE_METALNESSMAP":"",i.alphaMap?"#define USE_ALPHAMAP":"",i.transmission?"#define USE_TRANSMISSION":"",i.transmissionMap?"#define USE_TRANSMISSIONMAP":"",i.thicknessMap?"#define USE_THICKNESSMAP":"",i.sheenColorMap?"#define USE_SHEENCOLORMAP":"",i.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",i.vertexTangents?"#define USE_TANGENT":"",i.vertexColors?"#define USE_COLOR":"",i.vertexAlphas?"#define USE_COLOR_ALPHA":"",i.vertexUvs?"#define USE_UV":"",i.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",i.flatShading?"#define FLAT_SHADED":"",i.skinning?"#define USE_SKINNING":"",i.morphTargets?"#define USE_MORPHTARGETS":"",i.morphNormals&&!1===i.flatShading?"#define USE_MORPHNORMALS":"",i.morphColors&&i.isWebGL2?"#define USE_MORPHCOLORS":"",i.morphTargetsCount>0&&i.isWebGL2?"#define MORPHTARGETS_TEXTURE":"",i.morphTargetsCount>0&&i.isWebGL2?"#define MORPHTARGETS_TEXTURE_STRIDE "+i.morphTextureStride:"",i.morphTargetsCount>0&&i.isWebGL2?"#define MORPHTARGETS_COUNT "+i.morphTargetsCount:"",i.doubleSided?"#define DOUBLE_SIDED":"",i.flipSided?"#define FLIP_SIDED":"",i.shadowMapEnabled?"#define USE_SHADOWMAP":"",i.shadowMapEnabled?"#define "+l:"",i.sizeAttenuation?"#define USE_SIZEATTENUATION":"",i.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",i.logarithmicDepthBuffer&&i.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","\tattribute mat4 instanceMatrix;","#endif","#ifdef USE_INSTANCING_COLOR","\tattribute vec3 instanceColor;","#endif","attribute vec3 position;","attribute vec3 normal;","attribute vec2 uv;","#ifdef USE_TANGENT","\tattribute vec4 tangent;","#endif","#if defined( USE_COLOR_ALPHA )","\tattribute vec4 color;","#elif defined( USE_COLOR )","\tattribute vec3 color;","#endif","#if ( defined( USE_MORPHTARGETS ) && ! defined( MORPHTARGETS_TEXTURE ) )","\tattribute vec3 morphTarget0;","\tattribute vec3 morphTarget1;","\tattribute vec3 morphTarget2;","\tattribute vec3 morphTarget3;","\t#ifdef USE_MORPHNORMALS","\t\tattribute vec3 morphNormal0;","\t\tattribute vec3 morphNormal1;","\t\tattribute vec3 morphNormal2;","\t\tattribute vec3 morphNormal3;","\t#else","\t\tattribute vec3 morphTarget4;","\t\tattribute vec3 morphTarget5;","\t\tattribute vec3 morphTarget6;","\t\tattribute vec3 morphTarget7;","\t#endif","#endif","#ifdef USE_SKINNING","\tattribute vec4 skinIndex;","\tattribute vec4 skinWeight;","#endif","\n"].filter(filterEmptyLine).join("\n"),b=[g,generatePrecision(i),"#define SHADER_NAME "+i.shaderName,x,i.useFog&&i.fog?"#define USE_FOG":"",i.useFog&&i.fogExp2?"#define FOG_EXP2":"",i.map?"#define USE_MAP":"",i.matcap?"#define USE_MATCAP":"",i.envMap?"#define USE_ENVMAP":"",i.envMap?"#define "+c:"",i.envMap?"#define "+p:"",i.envMap?"#define "+m:"",f?"#define CUBEUV_TEXEL_WIDTH "+f.texelWidth:"",f?"#define CUBEUV_TEXEL_HEIGHT "+f.texelHeight:"",f?"#define CUBEUV_MAX_MIP "+f.maxMip+".0":"",i.lightMap?"#define USE_LIGHTMAP":"",i.aoMap?"#define USE_AOMAP":"",i.emissiveMap?"#define USE_EMISSIVEMAP":"",i.bumpMap?"#define USE_BUMPMAP":"",i.normalMap?"#define USE_NORMALMAP":"",i.normalMap&&i.objectSpaceNormalMap?"#define OBJECTSPACE_NORMALMAP":"",i.normalMap&&i.tangentSpaceNormalMap?"#define TANGENTSPACE_NORMALMAP":"",i.clearcoat?"#define USE_CLEARCOAT":"",i.clearcoatMap?"#define USE_CLEARCOATMAP":"",i.clearcoatRoughnessMap?"#define USE_CLEARCOAT_ROUGHNESSMAP":"",i.clearcoatNormalMap?"#define USE_CLEARCOAT_NORMALMAP":"",i.iridescence?"#define USE_IRIDESCENCE":"",i.iridescenceMap?"#define USE_IRIDESCENCEMAP":"",i.iridescenceThicknessMap?"#define USE_IRIDESCENCE_THICKNESSMAP":"",i.specularMap?"#define USE_SPECULARMAP":"",i.specularIntensityMap?"#define USE_SPECULARINTENSITYMAP":"",i.specularColorMap?"#define USE_SPECULARCOLORMAP":"",i.roughnessMap?"#define USE_ROUGHNESSMAP":"",i.metalnessMap?"#define USE_METALNESSMAP":"",i.alphaMap?"#define USE_ALPHAMAP":"",i.alphaTest?"#define USE_ALPHATEST":"",i.sheen?"#define USE_SHEEN":"",i.sheenColorMap?"#define USE_SHEENCOLORMAP":"",i.sheenRoughnessMap?"#define USE_SHEENROUGHNESSMAP":"",i.transmission?"#define USE_TRANSMISSION":"",i.transmissionMap?"#define USE_TRANSMISSIONMAP":"",i.thicknessMap?"#define USE_THICKNESSMAP":"",i.decodeVideoTexture?"#define DECODE_VIDEO_TEXTURE":"",i.vertexTangents?"#define USE_TANGENT":"",i.vertexColors||i.instancingColor?"#define USE_COLOR":"",i.vertexAlphas?"#define USE_COLOR_ALPHA":"",i.vertexUvs?"#define USE_UV":"",i.uvsVertexOnly?"#define UVS_VERTEX_ONLY":"",i.gradientMap?"#define USE_GRADIENTMAP":"",i.flatShading?"#define FLAT_SHADED":"",i.doubleSided?"#define DOUBLE_SIDED":"",i.flipSided?"#define FLIP_SIDED":"",i.shadowMapEnabled?"#define USE_SHADOWMAP":"",i.shadowMapEnabled?"#define "+l:"",i.premultipliedAlpha?"#define PREMULTIPLIED_ALPHA":"",i.physicallyCorrectLights?"#define PHYSICALLY_CORRECT_LIGHTS":"",i.logarithmicDepthBuffer?"#define USE_LOGDEPTHBUF":"",i.logarithmicDepthBuffer&&i.rendererExtensionFragDepth?"#define USE_LOGDEPTHBUF_EXT":"","uniform mat4 viewMatrix;","uniform vec3 cameraPosition;","uniform bool isOrthographic;",i.toneMapping!==Q?"#define TONE_MAPPING":"",i.toneMapping!==Q?mn.tonemapping_pars_fragment:"",i.toneMapping!==Q?getToneMappingFunction("toneMapping",i.toneMapping):"",i.dithering?"#define DITHERING":"",i.opaque?"#define OPAQUE":"",mn.encodings_pars_fragment,getTexelEncodingFunction("linearToOutputTexel",i.outputEncoding),i.useDepthPacking?"#define DEPTH_PACKING "+i.depthPacking:"","\n"].filter(filterEmptyLine).join("\n")),a=resolveIncludes(a),a=replaceLightNums(a,i),a=replaceClippingPlaneNums(a,i),o=resolveIncludes(o),o=replaceLightNums(o,i),o=replaceClippingPlaneNums(o,i),a=unrollLoops(a),o=unrollLoops(o),i.isWebGL2&&!0!==i.isRawShaderMaterial&&(M="#version 300 es\n",_=["precision mediump sampler2DArray;","#define attribute in","#define varying out","#define texture2D texture"].join("\n")+"\n"+_,b=["#define varying in",i.glslVersion===pi?"":"layout(location = 0) out highp vec4 pc_fragColor;",i.glslVersion===pi?"":"#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("\n")+"\n"+b);const S=M+b+o,w=WebGLShader(n,35633,M+_+a),T=WebGLShader(n,35632,S);if(n.attachShader(y,w),n.attachShader(y,T),void 0!==i.index0AttributeName?n.bindAttribLocation(y,0,i.index0AttributeName):!0===i.morphTargets&&n.bindAttribLocation(y,0,"position"),n.linkProgram(y),e.debug.checkShaderErrors){const e=n.getProgramInfoLog(y).trim(),t=n.getShaderInfoLog(w).trim(),i=n.getShaderInfoLog(T).trim();let r=!0,s=!0;if(!1===n.getProgramParameter(y,35714)){r=!1;const t=getShaderErrors(n,w,"vertex"),i=getShaderErrors(n,T,"fragment");console.error("THREE.WebGLProgram: Shader Error "+n.getError()+" - VALIDATE_STATUS "+n.getProgramParameter(y,35715)+"\n\nProgram Info Log: "+e+"\n"+t+"\n"+i)}else""!==e?console.warn("THREE.WebGLProgram: Program Info Log:",e):""!==t&&""!==i||(s=!1);s&&(this.diagnostics={runnable:r,programLog:e,vertexShader:{log:t,prefix:_},fragmentShader:{log:i,prefix:b}})}let A,C;return n.deleteShader(w),n.deleteShader(T),this.getUniforms=function(){return void 0===A&&(A=new WebGLUniforms(n,y)),A},this.getAttributes=function(){return void 0===C&&(C=function fetchAttributeLocations(e,t){const i={},r=e.getProgramParameter(t,35721);for(let n=0;n<r;n++){const r=e.getActiveAttrib(t,n),s=r.name;let a=1;35674===r.type&&(a=2),35675===r.type&&(a=3),35676===r.type&&(a=4),i[s]={type:r.type,location:e.getAttribLocation(t,s),locationSize:a}}return i}(n,y)),C},this.destroy=function(){r.releaseStatesOfProgram(this),n.deleteProgram(y),this.program=void 0},this.name=i.shaderName,this.id=Nn++,this.cacheKey=t,this.usedTimes=1,this.program=y,this.vertexShader=w,this.fragmentShader=T,this}let Gn=0;class WebGLShaderCache{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(e){const t=e.vertexShader,i=e.fragmentShader,r=this._getShaderStage(t),n=this._getShaderStage(i),s=this._getShaderCacheForMaterial(e);return!1===s.has(r)&&(s.add(r),r.usedTimes++),!1===s.has(n)&&(s.add(n),n.usedTimes++),this}remove(e){const t=this.materialCache.get(e);for(const i of t)i.usedTimes--,0===i.usedTimes&&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 t=this.materialCache;return!1===t.has(e)&&t.set(e,new Set),t.get(e)}_getShaderStage(e){const t=this.shaderCache;if(!1===t.has(e)){const i=new WebGLShaderStage(e);t.set(e,i)}return t.get(e)}}class WebGLShaderStage{constructor(e){this.id=Gn++,this.code=e,this.usedTimes=0}}function WebGLPrograms(e,t,i,r,n,s,a){const o=new Layers,l=new WebGLShaderCache,c=[],h=n.isWebGL2,u=n.logarithmicDepthBuffer,d=n.vertexTextures;let p=n.precision;const g={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"};return{getParameters:function getParameters(s,o,c,x,y){const b=x.fog,M=y.geometry,S=s.isMeshStandardMaterial?x.environment:null,w=(s.isMeshStandardMaterial?i:t).get(s.envMap||S),T=w&&w.mapping===ce?w.image.height:null,A=g[s.type];null!==s.precision&&(p=n.getMaxPrecision(s.precision),p!==s.precision&&console.warn("THREE.WebGLProgram.getParameters:",s.precision,"not supported, using",p,"instead."));const C=M.morphAttributes.position||M.morphAttributes.normal||M.morphAttributes.color,E=void 0!==C?C.length:0;let L,P,R,D,I=0;if(void 0!==M.morphAttributes.position&&(I=1),void 0!==M.morphAttributes.normal&&(I=2),void 0!==M.morphAttributes.color&&(I=3),A){const e=gn[A];L=e.vertexShader,P=e.fragmentShader}else L=s.vertexShader,P=s.fragmentShader,l.update(s),R=l.getVertexShaderID(s),D=l.getFragmentShaderID(s);const B=e.getRenderTarget(),V=s.alphaTest>0,N=s.clearcoat>0,O=s.iridescence>0;return{isWebGL2:h,shaderID:A,shaderName:s.type,vertexShader:L,fragmentShader:P,defines:s.defines,customVertexShaderID:R,customFragmentShaderID:D,isRawShaderMaterial:!0===s.isRawShaderMaterial,glslVersion:s.glslVersion,precision:p,instancing:!0===y.isInstancedMesh,instancingColor:!0===y.isInstancedMesh&&null!==y.instanceColor,supportsVertexTextures:d,outputEncoding:null===B?e.outputEncoding:!0===B.isXRRenderTarget?B.texture.encoding:Dt,map:!!s.map,matcap:!!s.matcap,envMap:!!w,envMapMode:w&&w.mapping,envMapCubeUVHeight:T,lightMap:!!s.lightMap,aoMap:!!s.aoMap,emissiveMap:!!s.emissiveMap,bumpMap:!!s.bumpMap,normalMap:!!s.normalMap,objectSpaceNormalMap:s.normalMapType===Ot,tangentSpaceNormalMap:s.normalMapType===Nt,decodeVideoTexture:!!s.map&&!0===s.map.isVideoTexture&&s.map.encoding===It,clearcoat:N,clearcoatMap:N&&!!s.clearcoatMap,clearcoatRoughnessMap:N&&!!s.clearcoatRoughnessMap,clearcoatNormalMap:N&&!!s.clearcoatNormalMap,iridescence:O,iridescenceMap:O&&!!s.iridescenceMap,iridescenceThicknessMap:O&&!!s.iridescenceThicknessMap,displacementMap:!!s.displacementMap,roughnessMap:!!s.roughnessMap,metalnessMap:!!s.metalnessMap,specularMap:!!s.specularMap,specularIntensityMap:!!s.specularIntensityMap,specularColorMap:!!s.specularColorMap,opaque:!1===s.transparent&&s.blending===_,alphaMap:!!s.alphaMap,alphaTest:V,gradientMap:!!s.gradientMap,sheen:s.sheen>0,sheenColorMap:!!s.sheenColorMap,sheenRoughnessMap:!!s.sheenRoughnessMap,transmission:s.transmission>0,transmissionMap:!!s.transmissionMap,thicknessMap:!!s.thicknessMap,combine:s.combine,vertexTangents:!!s.normalMap&&!!M.attributes.tangent,vertexColors:s.vertexColors,vertexAlphas:!0===s.vertexColors&&!!M.attributes.color&&4===M.attributes.color.itemSize,vertexUvs:!!s.map||!!s.bumpMap||!!s.normalMap||!!s.specularMap||!!s.alphaMap||!!s.emissiveMap||!!s.roughnessMap||!!s.metalnessMap||!!s.clearcoatMap||!!s.clearcoatRoughnessMap||!!s.clearcoatNormalMap||!!s.iridescenceMap||!!s.iridescenceThicknessMap||!!s.displacementMap||!!s.transmissionMap||!!s.thicknessMap||!!s.specularIntensityMap||!!s.specularColorMap||!!s.sheenColorMap||!!s.sheenRoughnessMap,uvsVertexOnly:!(s.map||s.bumpMap||s.normalMap||s.specularMap||s.alphaMap||s.emissiveMap||s.roughnessMap||s.metalnessMap||s.clearcoatNormalMap||s.iridescenceMap||s.iridescenceThicknessMap||s.transmission>0||s.transmissionMap||s.thicknessMap||s.specularIntensityMap||s.specularColorMap||s.sheen>0||s.sheenColorMap||s.sheenRoughnessMap)&&!!s.displacementMap,fog:!!b,useFog:!0===s.fog,fogExp2:b&&b.isFogExp2,flatShading:!!s.flatShading,sizeAttenuation:s.sizeAttenuation,logarithmicDepthBuffer:u,skinning:!0===y.isSkinnedMesh,morphTargets:void 0!==M.morphAttributes.position,morphNormals:void 0!==M.morphAttributes.normal,morphColors:void 0!==M.morphAttributes.color,morphTargetsCount:E,morphTextureStride:I,numDirLights:o.directional.length,numPointLights:o.point.length,numSpotLights:o.spot.length,numRectAreaLights:o.rectArea.length,numHemiLights:o.hemi.length,numDirLightShadows:o.directionalShadowMap.length,numPointLightShadows:o.pointShadowMap.length,numSpotLightShadows:o.spotShadowMap.length,numClippingPlanes:a.numPlanes,numClipIntersection:a.numIntersection,dithering:s.dithering,shadowMapEnabled:e.shadowMap.enabled&&c.length>0,shadowMapType:e.shadowMap.type,toneMapping:s.toneMapped?e.toneMapping:Q,physicallyCorrectLights:e.physicallyCorrectLights,premultipliedAlpha:s.premultipliedAlpha,doubleSided:s.side===f,flipSided:s.side===m,useDepthPacking:!!s.depthPacking,depthPacking:s.depthPacking||0,index0AttributeName:s.index0AttributeName,extensionDerivatives:s.extensions&&s.extensions.derivatives,extensionFragDepth:s.extensions&&s.extensions.fragDepth,extensionDrawBuffers:s.extensions&&s.extensions.drawBuffers,extensionShaderTextureLOD:s.extensions&&s.extensions.shaderTextureLOD,rendererExtensionFragDepth:h||r.has("EXT_frag_depth"),rendererExtensionDrawBuffers:h||r.has("WEBGL_draw_buffers"),rendererExtensionShaderTextureLod:h||r.has("EXT_shader_texture_lod"),customProgramCacheKey:s.customProgramCacheKey()}},getProgramCacheKey:function getProgramCacheKey(t){const i=[];if(t.shaderID?i.push(t.shaderID):(i.push(t.customVertexShaderID),i.push(t.customFragmentShaderID)),void 0!==t.defines)for(const e in t.defines)i.push(e),i.push(t.defines[e]);return!1===t.isRawShaderMaterial&&(!function getProgramCacheKeyParameters(e,t){e.push(t.precision),e.push(t.outputEncoding),e.push(t.envMapMode),e.push(t.envMapCubeUVHeight),e.push(t.combine),e.push(t.vertexUvs),e.push(t.fogExp2),e.push(t.sizeAttenuation),e.push(t.morphTargetsCount),e.push(t.morphAttributeCount),e.push(t.numDirLights),e.push(t.numPointLights),e.push(t.numSpotLights),e.push(t.numHemiLights),e.push(t.numRectAreaLights),e.push(t.numDirLightShadows),e.push(t.numPointLightShadows),e.push(t.numSpotLightShadows),e.push(t.shadowMapType),e.push(t.toneMapping),e.push(t.numClippingPlanes),e.push(t.numClipIntersection),e.push(t.depthPacking)}(i,t),function getProgramCacheKeyBooleans(e,t){o.disableAll(),t.isWebGL2&&o.enable(0);t.supportsVertexTextures&&o.enable(1);t.instancing&&o.enable(2);t.instancingColor&&o.enable(3);t.map&&o.enable(4);t.matcap&&o.enable(5);t.envMap&&o.enable(6);t.lightMap&&o.enable(7);t.aoMap&&o.enable(8);t.emissiveMap&&o.enable(9);t.bumpMap&&o.enable(10);t.normalMap&&o.enable(11);t.objectSpaceNormalMap&&o.enable(12);t.tangentSpaceNormalMap&&o.enable(13);t.clearcoat&&o.enable(14);t.clearcoatMap&&o.enable(15);t.clearcoatRoughnessMap&&o.enable(16);t.clearcoatNormalMap&&o.enable(17);t.iridescence&&o.enable(18);t.iridescenceMap&&o.enable(19);t.iridescenceThicknessMap&&o.enable(20);t.displacementMap&&o.enable(21);t.specularMap&&o.enable(22);t.roughnessMap&&o.enable(23);t.metalnessMap&&o.enable(24);t.gradientMap&&o.enable(25);t.alphaMap&&o.enable(26);t.alphaTest&&o.enable(27);t.vertexColors&&o.enable(28);t.vertexAlphas&&o.enable(29);t.vertexUvs&&o.enable(30);t.vertexTangents&&o.enable(31);t.uvsVertexOnly&&o.enable(32);t.fog&&o.enable(33);e.push(o.mask),o.disableAll(),t.useFog&&o.enable(0);t.flatShading&&o.enable(1);t.logarithmicDepthBuffer&&o.enable(2);t.skinning&&o.enable(3);t.morphTargets&&o.enable(4);t.morphNormals&&o.enable(5);t.morphColors&&o.enable(6);t.premultipliedAlpha&&o.enable(7);t.shadowMapEnabled&&o.enable(8);t.physicallyCorrectLights&&o.enable(9);t.doubleSided&&o.enable(10);t.flipSided&&o.enable(11);t.useDepthPacking&&o.enable(12);t.dithering&&o.enable(13);t.specularIntensityMap&&o.enable(14);t.specularColorMap&&o.enable(15);t.transmission&&o.enable(16);t.transmissionMap&&o.enable(17);t.thicknessMap&&o.enable(18);t.sheen&&o.enable(19);t.sheenColorMap&&o.enable(20);t.sheenRoughnessMap&&o.enable(21);t.decodeVideoTexture&&o.enable(22);t.opaque&&o.enable(23);e.push(o.mask)}(i,t),i.push(e.outputEncoding)),i.push(t.customProgramCacheKey),i.join()},getUniforms:function getUniforms(e){const t=g[e.type];let i;if(t){const e=gn[t];i=on.clone(e.uniforms)}else i=e.uniforms;return i},acquireProgram:function acquireProgram(t,i){let r;for(let e=0,n=c.length;e<n;e++){const t=c[e];if(t.cacheKey===i){r=t,++r.usedTimes;break}}return void 0===r&&(r=new WebGLProgram(e,i,t,s),c.push(r)),r},releaseProgram:function releaseProgram(e){if(0===--e.usedTimes){const t=c.indexOf(e);c[t]=c[c.length-1],c.pop(),e.destroy()}},releaseShaderCache:function releaseShaderCache(e){l.remove(e)},programs:c,dispose:function dispose(){l.dispose()}}}function WebGLProperties(){let e=new WeakMap;return{get:function get(t){let i=e.get(t);return void 0===i&&(i={},e.set(t,i)),i},remove:function remove(t){e.delete(t)},update:function update(t,i,r){e.get(t)[i]=r},dispose:function dispose(){e=new WeakMap}}}function painterSortStable(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.material.id!==t.material.id?e.material.id-t.material.id:e.z!==t.z?e.z-t.z:e.id-t.id}function reversePainterSortStable(e,t){return e.groupOrder!==t.groupOrder?e.groupOrder-t.groupOrder:e.renderOrder!==t.renderOrder?e.renderOrder-t.renderOrder:e.z!==t.z?t.z-e.z:e.id-t.id}function WebGLRenderList(){const e=[];let t=0;const i=[],r=[],n=[];function getNextRenderItem(i,r,n,s,a,o){let l=e[t];return void 0===l?(l={id:i.id,object:i,geometry:r,material:n,groupOrder:s,renderOrder:i.renderOrder,z:a,group:o},e[t]=l):(l.id=i.id,l.object=i,l.geometry=r,l.material=n,l.groupOrder=s,l.renderOrder=i.renderOrder,l.z=a,l.group=o),t++,l}return{opaque:i,transmissive:r,transparent:n,init:function init(){t=0,i.length=0,r.length=0,n.length=0},push:function push(e,t,s,a,o,l){const c=getNextRenderItem(e,t,s,a,o,l);s.transmission>0?r.push(c):!0===s.transparent?n.push(c):i.push(c)},unshift:function unshift(e,t,s,a,o,l){const c=getNextRenderItem(e,t,s,a,o,l);s.transmission>0?r.unshift(c):!0===s.transparent?n.unshift(c):i.unshift(c)},finish:function finish(){for(let i=t,r=e.length;i<r;i++){const t=e[i];if(null===t.id)break;t.id=null,t.object=null,t.geometry=null,t.material=null,t.group=null}},sort:function sort(e,t){i.length>1&&i.sort(e||painterSortStable),r.length>1&&r.sort(t||reversePainterSortStable),n.length>1&&n.sort(t||reversePainterSortStable)}}}function WebGLRenderLists(){let e=new WeakMap;return{get:function get(t,i){let r;return!1===e.has(t)?(r=new WebGLRenderList,e.set(t,[r])):i>=e.get(t).length?(r=new WebGLRenderList,e.get(t).push(r)):r=e.get(t)[i],r},dispose:function dispose(){e=new WeakMap}}}function UniformsCache(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let i;switch(t.type){case"DirectionalLight":i={direction:new Vector3,color:new Color};break;case"SpotLight":i={position:new Vector3,direction:new Vector3,color:new Color,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case"PointLight":i={position:new Vector3,color:new Color,distance:0,decay:0};break;case"HemisphereLight":i={direction:new Vector3,skyColor:new Color,groundColor:new Color};break;case"RectAreaLight":i={color:new Color,position:new Vector3,halfWidth:new Vector3,halfHeight:new Vector3}}return e[t.id]=i,i}}}let Un=0;function shadowCastingLightsFirst(e,t){return(t.castShadow?1:0)-(e.castShadow?1:0)}function WebGLLights(e,t){const i=new UniformsCache,r=function ShadowUniformsCache(){const e={};return{get:function(t){if(void 0!==e[t.id])return e[t.id];let i;switch(t.type){case"DirectionalLight":case"SpotLight":i={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2};break;case"PointLight":i={shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new Vector2,shadowCameraNear:1,shadowCameraFar:1e3}}return e[t.id]=i,i}}}(),n={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadow:[],spotShadowMap:[],spotShadowMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[]};for(let l=0;l<9;l++)n.probe.push(new Vector3);const s=new Vector3,a=new Matrix4,o=new Matrix4;return{setup:function setup(s,a){let o=0,l=0,c=0;for(let e=0;e<9;e++)n.probe[e].set(0,0,0);let h=0,u=0,d=0,p=0,m=0,f=0,g=0,x=0;s.sort(shadowCastingLightsFirst);const y=!0!==a?Math.PI:1;for(let e=0,t=s.length;e<t;e++){const t=s[e],a=t.color,_=t.intensity,b=t.distance,M=t.shadow&&t.shadow.map?t.shadow.map.texture:null;if(t.isAmbientLight)o+=a.r*_*y,l+=a.g*_*y,c+=a.b*_*y;else if(t.isLightProbe)for(let e=0;e<9;e++)n.probe[e].addScaledVector(t.sh.coefficients[e],_);else if(t.isDirectionalLight){const e=i.get(t);if(e.color.copy(t.color).multiplyScalar(t.intensity*y),t.castShadow){const e=t.shadow,i=r.get(t);i.shadowBias=e.bias,i.shadowNormalBias=e.normalBias,i.shadowRadius=e.radius,i.shadowMapSize=e.mapSize,n.directionalShadow[h]=i,n.directionalShadowMap[h]=M,n.directionalShadowMatrix[h]=t.shadow.matrix,f++}n.directional[h]=e,h++}else if(t.isSpotLight){const e=i.get(t);if(e.position.setFromMatrixPosition(t.matrixWorld),e.color.copy(a).multiplyScalar(_*y),e.distance=b,e.coneCos=Math.cos(t.angle),e.penumbraCos=Math.cos(t.angle*(1-t.penumbra)),e.decay=t.decay,t.castShadow){const e=t.shadow,i=r.get(t);i.shadowBias=e.bias,i.shadowNormalBias=e.normalBias,i.shadowRadius=e.radius,i.shadowMapSize=e.mapSize,n.spotShadow[d]=i,n.spotShadowMap[d]=M,n.spotShadowMatrix[d]=t.shadow.matrix,x++}n.spot[d]=e,d++}else if(t.isRectAreaLight){const e=i.get(t);e.color.copy(a).multiplyScalar(_),e.halfWidth.set(.5*t.width,0,0),e.halfHeight.set(0,.5*t.height,0),n.rectArea[p]=e,p++}else if(t.isPointLight){const e=i.get(t);if(e.color.copy(t.color).multiplyScalar(t.intensity*y),e.distance=t.distance,e.decay=t.decay,t.castShadow){const e=t.shadow,i=r.get(t);i.shadowBias=e.bias,i.shadowNormalBias=e.normalBias,i.shadowRadius=e.radius,i.shadowMapSize=e.mapSize,i.shadowCameraNear=e.camera.near,i.shadowCameraFar=e.camera.far,n.pointShadow[u]=i,n.pointShadowMap[u]=M,n.pointShadowMatrix[u]=t.shadow.matrix,g++}n.point[u]=e,u++}else if(t.isHemisphereLight){const e=i.get(t);e.skyColor.copy(t.color).multiplyScalar(_*y),e.groundColor.copy(t.groundColor).multiplyScalar(_*y),n.hemi[m]=e,m++}}p>0&&(t.isWebGL2||!0===e.has("OES_texture_float_linear")?(n.rectAreaLTC1=fn.LTC_FLOAT_1,n.rectAreaLTC2=fn.LTC_FLOAT_2):!0===e.has("OES_texture_half_float_linear")?(n.rectAreaLTC1=fn.LTC_HALF_1,n.rectAreaLTC2=fn.LTC_HALF_2):console.error("THREE.WebGLRenderer: Unable to use RectAreaLight. Missing WebGL extensions.")),n.ambient[0]=o,n.ambient[1]=l,n.ambient[2]=c;const _=n.hash;_.directionalLength===h&&_.pointLength===u&&_.spotLength===d&&_.rectAreaLength===p&&_.hemiLength===m&&_.numDirectionalShadows===f&&_.numPointShadows===g&&_.numSpotShadows===x||(n.directional.length=h,n.spot.length=d,n.rectArea.length=p,n.point.length=u,n.hemi.length=m,n.directionalShadow.length=f,n.directionalShadowMap.length=f,n.pointShadow.length=g,n.pointShadowMap.length=g,n.spotShadow.length=x,n.spotShadowMap.length=x,n.directionalShadowMatrix.length=f,n.pointShadowMatrix.length=g,n.spotShadowMatrix.length=x,_.directionalLength=h,_.pointLength=u,_.spotLength=d,_.rectAreaLength=p,_.hemiLength=m,_.numDirectionalShadows=f,_.numPointShadows=g,_.numSpotShadows=x,n.version=Un++)},setupView:function setupView(e,t){let i=0,r=0,l=0,c=0,h=0;const u=t.matrixWorldInverse;for(let d=0,p=e.length;d<p;d++){const t=e[d];if(t.isDirectionalLight){const e=n.directional[i];e.direction.setFromMatrixPosition(t.matrixWorld),s.setFromMatrixPosition(t.target.matrixWorld),e.direction.sub(s),e.direction.transformDirection(u),i++}else if(t.isSpotLight){const e=n.spot[l];e.position.setFromMatrixPosition(t.matrixWorld),e.position.applyMatrix4(u),e.direction.setFromMatrixPosition(t.matrixWorld),s.setFromMatrixPosition(t.target.matrixWorld),e.direction.sub(s),e.direction.transformDirection(u),l++}else if(t.isRectAreaLight){const e=n.rectArea[c];e.position.setFromMatrixPosition(t.matrixWorld),e.position.applyMatrix4(u),o.identity(),a.copy(t.matrixWorld),a.premultiply(u),o.extractRotation(a),e.halfWidth.set(.5*t.width,0,0),e.halfHeight.set(0,.5*t.height,0),e.halfWidth.applyMatrix4(o),e.halfHeight.applyMatrix4(o),c++}else if(t.isPointLight){const e=n.point[r];e.position.setFromMatrixPosition(t.matrixWorld),e.position.applyMatrix4(u),r++}else if(t.isHemisphereLight){const e=n.hemi[h];e.direction.setFromMatrixPosition(t.matrixWorld),e.direction.transformDirection(u),h++}}},state:n}}function WebGLRenderState(e,t){const i=new WebGLLights(e,t),r=[],n=[];return{init:function init(){r.length=0,n.length=0},state:{lightsArray:r,shadowsArray:n,lights:i},setupLights:function setupLights(e){i.setup(r,e)},setupLightsView:function setupLightsView(e){i.setupView(r,e)},pushLight:function pushLight(e){r.push(e)},pushShadow:function pushShadow(e){n.push(e)}}}function WebGLRenderStates(e,t){let i=new WeakMap;return{get:function get(r,n=0){let s;return!1===i.has(r)?(s=new WebGLRenderState(e,t),i.set(r,[s])):n>=i.get(r).length?(s=new WebGLRenderState(e,t),i.get(r).push(s)):s=i.get(r)[n],s},dispose:function dispose(){i=new WeakMap}}}class MeshDepthMaterial extends Material{constructor(e){super(),this.isMeshDepthMaterial=!0,this.type="MeshDepthMaterial",this.depthPacking=Bt,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 MeshDistanceMaterial extends Material{constructor(e){super(),this.isMeshDistanceMaterial=!0,this.type="MeshDistanceMaterial",this.referencePosition=new Vector3,this.nearDistance=1,this.farDistance=1e3,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.referencePosition.copy(e.referencePosition),this.nearDistance=e.nearDistance,this.farDistance=e.farDistance,this.map=e.map,this.alphaMap=e.alphaMap,this.displacementMap=e.displacementMap,this.displacementScale=e.displacementScale,this.displacementBias=e.displacementBias,this}}const kn="void main() {\n\tgl_Position = vec4( position, 1.0 );\n}",Wn="uniform sampler2D shadow_pass;\nuniform vec2 resolution;\nuniform float radius;\n#include <packing>\nvoid main() {\n\tconst float samples = float( VSM_SAMPLES );\n\tfloat mean = 0.0;\n\tfloat squared_mean = 0.0;\n\tfloat uvStride = samples <= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );\n\tfloat uvStart = samples <= 1.0 ? 0.0 : - 1.0;\n\tfor ( float i = 0.0; i < samples; i ++ ) {\n\t\tfloat uvOffset = uvStart + i * uvStride;\n\t\t#ifdef HORIZONTAL_PASS\n\t\t\tvec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );\n\t\t\tmean += distribution.x;\n\t\t\tsquared_mean += distribution.y * distribution.y + distribution.x * distribution.x;\n\t\t#else\n\t\t\tfloat depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );\n\t\t\tmean += depth;\n\t\t\tsquared_mean += depth * depth;\n\t\t#endif\n\t}\n\tmean = mean / samples;\n\tsquared_mean = squared_mean / samples;\n\tfloat std_dev = sqrt( squared_mean - mean * mean );\n\tgl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );\n}";function WebGLShadowMap(e,t,i){let r=new Frustum;const n=new Vector2,s=new Vector2,a=new Vector4,o=new MeshDepthMaterial({depthPacking:Vt}),l=new MeshDistanceMaterial,c={},u=i.maxTextureSize,g={0:m,1:p,2:f},x=new ShaderMaterial({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new Vector2},radius:{value:4}},vertexShader:kn,fragmentShader:Wn}),_=x.clone();_.defines.HORIZONTAL_PASS=1;const b=new BufferGeometry;b.setAttribute("position",new BufferAttribute(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));const M=new Mesh(b,x),S=this;function VSMPass(i,r){const s=t.update(M);x.defines.VSM_SAMPLES!==i.blurSamples&&(x.defines.VSM_SAMPLES=i.blurSamples,_.defines.VSM_SAMPLES=i.blurSamples,x.needsUpdate=!0,_.needsUpdate=!0),null===i.mapPass&&(i.mapPass=new WebGLRenderTarget(n.x,n.y)),x.uniforms.shadow_pass.value=i.map.texture,x.uniforms.resolution.value=i.mapSize,x.uniforms.radius.value=i.radius,e.setRenderTarget(i.mapPass),e.clear(),e.renderBufferDirect(r,null,s,x,M,null),_.uniforms.shadow_pass.value=i.mapPass.texture,_.uniforms.resolution.value=i.mapSize,_.uniforms.radius.value=i.radius,e.setRenderTarget(i.map),e.clear(),e.renderBufferDirect(r,null,s,_,M,null)}function getDepthMaterial(t,i,r,n,s,a){let h=null;const u=!0===r.isPointLight?t.customDistanceMaterial:t.customDepthMaterial;if(h=void 0!==u?u:!0===r.isPointLight?l:o,e.localClippingEnabled&&!0===i.clipShadows&&Array.isArray(i.clippingPlanes)&&0!==i.clippingPlanes.length||i.displacementMap&&0!==i.displacementScale||i.alphaMap&&i.alphaTest>0){const e=h.uuid,t=i.uuid;let r=c[e];void 0===r&&(r={},c[e]=r);let n=r[t];void 0===n&&(n=h.clone(),r[t]=n),h=n}return h.visible=i.visible,h.wireframe=i.wireframe,h.side=a===d?null!==i.shadowSide?i.shadowSide:i.side:null!==i.shadowSide?i.shadowSide:g[i.side],h.alphaMap=i.alphaMap,h.alphaTest=i.alphaTest,h.clipShadows=i.clipShadows,h.clippingPlanes=i.clippingPlanes,h.clipIntersection=i.clipIntersection,h.displacementMap=i.displacementMap,h.displacementScale=i.displacementScale,h.displacementBias=i.displacementBias,h.wireframeLinewidth=i.wireframeLinewidth,h.linewidth=i.linewidth,!0===r.isPointLight&&!0===h.isMeshDistanceMaterial&&(h.referencePosition.setFromMatrixPosition(r.matrixWorld),h.nearDistance=n,h.farDistance=s),h}function renderObject(i,n,s,a,o){if(!1===i.visible)return;if(i.layers.test(n.layers)&&(i.isMesh||i.isLine||i.isPoints)&&(i.castShadow||i.receiveShadow&&o===d)&&(!i.frustumCulled||r.intersectsObject(i))){i.modelViewMatrix.multiplyMatrices(s.matrixWorldInverse,i.matrixWorld);const r=t.update(i),n=i.material;if(Array.isArray(n)){const t=r.groups;for(let l=0,c=t.length;l<c;l++){const c=t[l],h=n[c.materialIndex];if(h&&h.visible){const t=getDepthMaterial(i,h,a,s.near,s.far,o);e.renderBufferDirect(s,null,r,t,i,c)}}}else if(n.visible){const t=getDepthMaterial(i,n,a,s.near,s.far,o);e.renderBufferDirect(s,null,r,t,i,null)}}const l=i.children;for(let e=0,t=l.length;e<t;e++)renderObject(l[e],n,s,a,o)}this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=h,this.render=function(t,i,o){if(!1===S.enabled)return;if(!1===S.autoUpdate&&!1===S.needsUpdate)return;if(0===t.length)return;const l=e.getRenderTarget(),c=e.getActiveCubeFace(),h=e.getActiveMipmapLevel(),p=e.state;p.setBlending(y),p.buffers.color.setClear(1,1,1,1),p.buffers.depth.setTest(!0),p.setScissorTest(!1);for(let m=0,f=t.length;m<f;m++){const l=t[m],c=l.shadow;if(void 0===c){console.warn("THREE.WebGLShadowMap:",l,"has no shadow.");continue}if(!1===c.autoUpdate&&!1===c.needsUpdate)continue;n.copy(c.mapSize);const h=c.getFrameExtents();if(n.multiply(h),s.copy(c.mapSize),(n.x>u||n.y>u)&&(n.x>u&&(s.x=Math.floor(u/h.x),n.x=s.x*h.x,c.mapSize.x=s.x),n.y>u&&(s.y=Math.floor(u/h.y),n.y=s.y*h.y,c.mapSize.y=s.y)),null===c.map){const e=this.type!==d?{minFilter:pe,magFilter:pe}:{};c.map=new WebGLRenderTarget(n.x,n.y,e),c.map.texture.name=l.name+".shadowMap",c.camera.updateProjectionMatrix()}e.setRenderTarget(c.map),e.clear();const f=c.getViewportCount();for(let e=0;e<f;e++){const t=c.getViewport(e);a.set(s.x*t.x,s.y*t.y,s.x*t.z,s.y*t.w),p.viewport(a),c.updateMatrices(l,e),r=c.getFrustum(),renderObject(i,o,c.camera,l,this.type)}!0!==c.isPointLightShadow&&this.type===d&&VSMPass(c,o),c.needsUpdate=!1}S.needsUpdate=!1,e.setRenderTarget(l,c,h)}}function WebGLState(e,t,i){const r=i.isWebGL2;const n=new function ColorBuffer(){let t=!1;const i=new Vector4;let r=null;const n=new Vector4(0,0,0,0);return{setMask:function(i){r===i||t||(e.colorMask(i,i,i,i),r=i)},setLocked:function(e){t=e},setClear:function(t,r,s,a,o){!0===o&&(t*=a,r*=a,s*=a),i.set(t,r,s,a),!1===n.equals(i)&&(e.clearColor(t,r,s,a),n.copy(i))},reset:function(){t=!1,r=null,n.set(-1,0,0,0)}}},l=new function DepthBuffer(){let t=!1,i=null,r=null,n=null;return{setTest:function(e){e?enable(2929):disable(2929)},setMask:function(r){i===r||t||(e.depthMask(r),i=r)},setFunc:function(t){if(r!==t){if(t)switch(t){case U:e.depthFunc(512);break;case k:e.depthFunc(519);break;case W:e.depthFunc(513);break;case H:e.depthFunc(515);break;case j:e.depthFunc(514);break;case q:e.depthFunc(518);break;case X:e.depthFunc(516);break;case Y:e.depthFunc(517);break;default:e.depthFunc(515)}else e.depthFunc(515);r=t}},setLocked:function(e){t=e},setClear:function(t){n!==t&&(e.clearDepth(t),n=t)},reset:function(){t=!1,i=null,r=null,n=null}}},c=new function StencilBuffer(){let t=!1,i=null,r=null,n=null,s=null,a=null,o=null,l=null,c=null;return{setTest:function(e){t||(e?enable(2960):disable(2960))},setMask:function(r){i===r||t||(e.stencilMask(r),i=r)},setFunc:function(t,i,a){r===t&&n===i&&s===a||(e.stencilFunc(t,i,a),r=t,n=i,s=a)},setOp:function(t,i,r){a===t&&o===i&&l===r||(e.stencilOp(t,i,r),a=t,o=i,l=r)},setLocked:function(e){t=e},setClear:function(t){c!==t&&(e.clearStencil(t),c=t)},reset:function(){t=!1,i=null,r=null,n=null,s=null,a=null,o=null,l=null,c=null}}},h=new WeakMap,u=new WeakMap;let d={},p={},g=new WeakMap,x=[],Z=null,J=!1,K=null,Q=null,$=null,ee=null,te=null,ie=null,re=null,ne=!1,se=null,ae=null,oe=null,le=null,ce=null;const he=e.getParameter(35661);let ue=!1,de=0;const pe=e.getParameter(7938);-1!==pe.indexOf("WebGL")?(de=parseFloat(/^WebGL (\d)/.exec(pe)[1]),ue=de>=1):-1!==pe.indexOf("OpenGL ES")&&(de=parseFloat(/^OpenGL ES (\d)/.exec(pe)[1]),ue=de>=2);let me=null,fe={};const ge=e.getParameter(3088),ve=e.getParameter(2978),xe=(new Vector4).fromArray(ge),ye=(new Vector4).fromArray(ve);function createTexture(t,i,r){const n=new Uint8Array(4),s=e.createTexture();e.bindTexture(t,s),e.texParameteri(t,10241,9728),e.texParameteri(t,10240,9728);for(let a=0;a<r;a++)e.texImage2D(i+a,0,6408,1,1,0,6408,5121,n);return s}const _e={};function enable(t){!0!==d[t]&&(e.enable(t),d[t]=!0)}function disable(t){!1!==d[t]&&(e.disable(t),d[t]=!1)}_e[3553]=createTexture(3553,3553,1),_e[34067]=createTexture(34067,34069,6),n.setClear(0,0,0,1),l.setClear(1),c.setClear(0),enable(2929),l.setFunc(H),setFlipSided(!1),setCullFace(a),enable(2884),setBlending(y);const be={[T]:32774,[A]:32778,[C]:32779};if(r)be[E]=32775,be[L]=32776;else{const e=t.get("EXT_blend_minmax");null!==e&&(be[E]=e.MIN_EXT,be[L]=e.MAX_EXT)}const Me={[P]:0,[R]:1,[D]:768,[B]:770,[G]:776,[z]:774,[N]:772,[I]:769,[V]:771,[F]:775,[O]:773};function setBlending(t,i,r,n,s,a,o,l){if(t!==y){if(!1===J&&(enable(3042),J=!0),t===w)s=s||i,a=a||r,o=o||n,i===Q&&s===te||(e.blendEquationSeparate(be[i],be[s]),Q=i,te=s),r===$&&n===ee&&a===ie&&o===re||(e.blendFuncSeparate(Me[r],Me[n],Me[a],Me[o]),$=r,ee=n,ie=a,re=o),K=t,ne=null;else if(t!==K||l!==ne){if(Q===T&&te===T||(e.blendEquation(32774),Q=T,te=T),l)switch(t){case _:e.blendFuncSeparate(1,771,1,771);break;case b:e.blendFunc(1,1);break;case M:e.blendFuncSeparate(0,769,0,1);break;case S:e.blendFuncSeparate(0,768,0,770);break;default:console.error("THREE.WebGLState: Invalid blending: ",t)}else switch(t){case _:e.blendFuncSeparate(770,771,1,771);break;case b:e.blendFunc(770,1);break;case M:e.blendFuncSeparate(0,769,0,1);break;case S:e.blendFunc(0,768);break;default:console.error("THREE.WebGLState: Invalid blending: ",t)}$=null,ee=null,ie=null,re=null,K=t,ne=l}}else!0===J&&(disable(3042),J=!1)}function setFlipSided(t){se!==t&&(t?e.frontFace(2304):e.frontFace(2305),se=t)}function setCullFace(t){t!==s?(enable(2884),t!==ae&&(t===a?e.cullFace(1029):t===o?e.cullFace(1028):e.cullFace(1032))):disable(2884),ae=t}function setPolygonOffset(t,i,r){t?(enable(32823),le===i&&ce===r||(e.polygonOffset(i,r),le=i,ce=r)):disable(32823)}function activeTexture(t){void 0===t&&(t=33984+he-1),me!==t&&(e.activeTexture(t),me=t)}return{buffers:{color:n,depth:l,stencil:c},enable:enable,disable:disable,bindFramebuffer:function bindFramebuffer(t,i){return p[t]!==i&&(e.bindFramebuffer(t,i),p[t]=i,r&&(36009===t&&(p[36160]=i),36160===t&&(p[36009]=i)),!0)},drawBuffers:function drawBuffers(r,n){let s=x,a=!1;if(r)if(s=g.get(n),void 0===s&&(s=[],g.set(n,s)),r.isWebGLMultipleRenderTargets){const e=r.texture;if(s.length!==e.length||36064!==s[0]){for(let t=0,i=e.length;t<i;t++)s[t]=36064+t;s.length=e.length,a=!0}}else 36064!==s[0]&&(s[0]=36064,a=!0);else 1029!==s[0]&&(s[0]=1029,a=!0);a&&(i.isWebGL2?e.drawBuffers(s):t.get("WEBGL_draw_buffers").drawBuffersWEBGL(s))},useProgram:function useProgram(t){return Z!==t&&(e.useProgram(t),Z=t,!0)},setBlending:setBlending,setMaterial:function setMaterial(e,t){e.side===f?disable(2884):enable(2884);let i=e.side===m;t&&(i=!i),setFlipSided(i),e.blending===_&&!1===e.transparent?setBlending(y):setBlending(e.blending,e.blendEquation,e.blendSrc,e.blendDst,e.blendEquationAlpha,e.blendSrcAlpha,e.blendDstAlpha,e.premultipliedAlpha),l.setFunc(e.depthFunc),l.setTest(e.depthTest),l.setMask(e.depthWrite),n.setMask(e.colorWrite);const r=e.stencilWrite;c.setTest(r),r&&(c.setMask(e.stencilWriteMask),c.setFunc(e.stencilFunc,e.stencilRef,e.stencilFuncMask),c.setOp(e.stencilFail,e.stencilZFail,e.stencilZPass)),setPolygonOffset(e.polygonOffset,e.polygonOffsetFactor,e.polygonOffsetUnits),!0===e.alphaToCoverage?enable(32926):disable(32926)},setFlipSided:setFlipSided,setCullFace:setCullFace,setLineWidth:function setLineWidth(t){t!==oe&&(ue&&e.lineWidth(t),oe=t)},setPolygonOffset:setPolygonOffset,setScissorTest:function setScissorTest(e){e?enable(3089):disable(3089)},activeTexture:activeTexture,bindTexture:function bindTexture(t,i){null===me&&activeTexture();let r=fe[me];void 0===r&&(r={type:void 0,texture:void 0},fe[me]=r),r.type===t&&r.texture===i||(e.bindTexture(t,i||_e[t]),r.type=t,r.texture=i)},unbindTexture:function unbindTexture(){const t=fe[me];void 0!==t&&void 0!==t.type&&(e.bindTexture(t.type,null),t.type=void 0,t.texture=void 0)},compressedTexImage2D:function compressedTexImage2D(){try{e.compressedTexImage2D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texImage2D:function texImage2D(){try{e.texImage2D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texImage3D:function texImage3D(){try{e.texImage3D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},updateUBOMapping:function updateUBOMapping(t,i){let r=u.get(i);void 0===r&&(r=new WeakMap,u.set(i,r));let n=r.get(t);void 0===n&&(n=e.getUniformBlockIndex(i,t.name),r.set(t,n))},uniformBlockBinding:function uniformBlockBinding(t,i){const r=u.get(i).get(t);h.get(t)!==r&&(e.uniformBlockBinding(i,r,t.__bindingPointIndex),h.set(t,r))},texStorage2D:function texStorage2D(){try{e.texStorage2D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texStorage3D:function texStorage3D(){try{e.texStorage3D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texSubImage2D:function texSubImage2D(){try{e.texSubImage2D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},texSubImage3D:function texSubImage3D(){try{e.texSubImage3D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},compressedTexSubImage2D:function compressedTexSubImage2D(){try{e.compressedTexSubImage2D.apply(e,arguments)}catch(t){console.error("THREE.WebGLState:",t)}},scissor:function scissor(t){!1===xe.equals(t)&&(e.scissor(t.x,t.y,t.z,t.w),xe.copy(t))},viewport:function viewport(t){!1===ye.equals(t)&&(e.viewport(t.x,t.y,t.z,t.w),ye.copy(t))},reset:function reset(){e.disable(3042),e.disable(2884),e.disable(2929),e.disable(32823),e.disable(3089),e.disable(2960),e.disable(32926),e.blendEquation(32774),e.blendFunc(1,0),e.blendFuncSeparate(1,0,1,0),e.colorMask(!0,!0,!0,!0),e.clearColor(0,0,0,0),e.depthMask(!0),e.depthFunc(513),e.clearDepth(1),e.stencilMask(4294967295),e.stencilFunc(519,0,4294967295),e.stencilOp(7680,7680,7680),e.clearStencil(0),e.cullFace(1029),e.frontFace(2305),e.polygonOffset(0,0),e.activeTexture(33984),e.bindFramebuffer(36160,null),!0===r&&(e.bindFramebuffer(36009,null),e.bindFramebuffer(36008,null)),e.useProgram(null),e.lineWidth(1),e.scissor(0,0,e.canvas.width,e.canvas.height),e.viewport(0,0,e.canvas.width,e.canvas.height),d={},me=null,fe={},p={},g=new WeakMap,x=[],Z=null,J=!1,K=null,Q=null,$=null,ee=null,te=null,ie=null,re=null,ne=!1,se=null,ae=null,oe=null,le=null,ce=null,xe.set(0,0,e.canvas.width,e.canvas.height),ye.set(0,0,e.canvas.width,e.canvas.height),n.reset(),l.reset(),c.reset()}}}function WebGLTextures(e,t,i,r,n,s,a){const o=n.isWebGL2,l=n.maxTextures,c=n.maxCubemapSize,h=n.maxTextureSize,u=n.maxSamples,d=t.has("WEBGL_multisampled_render_to_texture")?t.get("WEBGL_multisampled_render_to_texture"):null,p=/OculusBrowser/g.test(navigator.userAgent),m=new WeakMap;let f;const g=new WeakMap;let x=!1;try{x="undefined"!==typeof OffscreenCanvas&&null!==new OffscreenCanvas(1,1).getContext("2d")}catch(M){}function createCanvas(e,t){return x?new OffscreenCanvas(e,t):createElementNS("canvas")}function resizeImage(e,t,i,r){let n=1;if((e.width>r||e.height>r)&&(n=r/Math.max(e.width,e.height)),n<1||!0===t){if("undefined"!==typeof HTMLImageElement&&e instanceof HTMLImageElement||"undefined"!==typeof HTMLCanvasElement&&e instanceof HTMLCanvasElement||"undefined"!==typeof ImageBitmap&&e instanceof ImageBitmap){const r=t?floorPowerOfTwo:Math.floor,s=r(n*e.width),a=r(n*e.height);void 0===f&&(f=createCanvas(s,a));const o=i?createCanvas(s,a):f;o.width=s,o.height=a;return o.getContext("2d").drawImage(e,0,0,s,a),console.warn("THREE.WebGLRenderer: Texture has been resized from ("+e.width+"x"+e.height+") to ("+s+"x"+a+")."),o}return"data"in e&&console.warn("THREE.WebGLRenderer: Image in DataTexture is too big ("+e.width+"x"+e.height+")."),e}return e}function isPowerOfTwo$1(e){return isPowerOfTwo(e.width)&&isPowerOfTwo(e.height)}function textureNeedsGenerateMipmaps(e,t){return e.generateMipmaps&&t&&e.minFilter!==pe&&e.minFilter!==xe}function generateMipmap(t){e.generateMipmap(t)}function getInternalFormat(i,r,n,s,a=!1){if(!1===o)return r;if(null!==i){if(void 0!==e[i])return e[i];console.warn("THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format '"+i+"'")}let l=r;return 6403===r&&(5126===n&&(l=33326),5131===n&&(l=33325),5121===n&&(l=33321)),33319===r&&(5126===n&&(l=33328),5131===n&&(l=33327),5121===n&&(l=33323)),6408===r&&(5126===n&&(l=34836),5131===n&&(l=34842),5121===n&&(l=s===It&&!1===a?35907:32856),32819===n&&(l=32854),32820===n&&(l=32855)),33325!==l&&33326!==l&&33327!==l&&33328!==l&&34842!==l&&34836!==l||t.get("EXT_color_buffer_float"),l}function getMipLevels(e,t,i){return!0===textureNeedsGenerateMipmaps(e,i)||e.isFramebufferTexture&&e.minFilter!==pe&&e.minFilter!==xe?Math.log2(Math.max(t.width,t.height))+1:void 0!==e.mipmaps&&e.mipmaps.length>0?e.mipmaps.length:e.isCompressedTexture&&Array.isArray(e.image)?t.mipmaps.length:1}function filterFallback(e){return e===pe||e===me||e===ge?9728:9729}function onTextureDispose(e){const t=e.target;t.removeEventListener("dispose",onTextureDispose),function deallocateTexture(e){const t=r.get(e);if(void 0===t.__webglInit)return;const i=e.source,n=g.get(i);if(n){const r=n[t.__cacheKey];r.usedTimes--,0===r.usedTimes&&deleteTexture(e),0===Object.keys(n).length&&g.delete(i)}r.remove(e)}(t),t.isVideoTexture&&m.delete(t)}function onRenderTargetDispose(t){const i=t.target;i.removeEventListener("dispose",onRenderTargetDispose),function deallocateRenderTarget(t){const i=t.texture,n=r.get(t),s=r.get(i);void 0!==s.__webglTexture&&(e.deleteTexture(s.__webglTexture),a.memory.textures--);t.depthTexture&&t.depthTexture.dispose();if(t.isWebGLCubeRenderTarget)for(let r=0;r<6;r++)e.deleteFramebuffer(n.__webglFramebuffer[r]),n.__webglDepthbuffer&&e.deleteRenderbuffer(n.__webglDepthbuffer[r]);else{if(e.deleteFramebuffer(n.__webglFramebuffer),n.__webglDepthbuffer&&e.deleteRenderbuffer(n.__webglDepthbuffer),n.__webglMultisampledFramebuffer&&e.deleteFramebuffer(n.__webglMultisampledFramebuffer),n.__webglColorRenderbuffer)for(let t=0;t<n.__webglColorRenderbuffer.length;t++)n.__webglColorRenderbuffer[t]&&e.deleteRenderbuffer(n.__webglColorRenderbuffer[t]);n.__webglDepthRenderbuffer&&e.deleteRenderbuffer(n.__webglDepthRenderbuffer)}if(t.isWebGLMultipleRenderTargets)for(let o=0,l=i.length;o<l;o++){const t=r.get(i[o]);t.__webglTexture&&(e.deleteTexture(t.__webglTexture),a.memory.textures--),r.remove(i[o])}r.remove(i),r.remove(t)}(i)}function deleteTexture(t){const i=r.get(t);e.deleteTexture(i.__webglTexture);const n=t.source;delete g.get(n)[i.__cacheKey],a.memory.textures--}let y=0;function setTexture2D(e,t){const n=r.get(e);if(e.isVideoTexture&&function updateVideoTexture(e){const t=a.render.frame;m.get(e)!==t&&(m.set(e,t),e.update())}(e),!1===e.isRenderTargetTexture&&e.version>0&&n.__version!==e.version){const i=e.image;if(null===i)console.warn("THREE.WebGLRenderer: Texture marked for update but no image data found.");else{if(!1!==i.complete)return void uploadTexture(n,e,t);console.warn("THREE.WebGLRenderer: Texture marked for update but image is incomplete")}}i.activeTexture(33984+t),i.bindTexture(3553,n.__webglTexture)}const _={[he]:10497,[ue]:33071,[de]:33648},b={[pe]:9728,[me]:9984,[ge]:9986,[xe]:9729,[ye]:9985,[be]:9987};function setTextureParameters(i,s,a){if(a?(e.texParameteri(i,10242,_[s.wrapS]),e.texParameteri(i,10243,_[s.wrapT]),32879!==i&&35866!==i||e.texParameteri(i,32882,_[s.wrapR]),e.texParameteri(i,10240,b[s.magFilter]),e.texParameteri(i,10241,b[s.minFilter])):(e.texParameteri(i,10242,33071),e.texParameteri(i,10243,33071),32879!==i&&35866!==i||e.texParameteri(i,32882,33071),s.wrapS===ue&&s.wrapT===ue||console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping."),e.texParameteri(i,10240,filterFallback(s.magFilter)),e.texParameteri(i,10241,filterFallback(s.minFilter)),s.minFilter!==pe&&s.minFilter!==xe&&console.warn("THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.")),!0===t.has("EXT_texture_filter_anisotropic")){const a=t.get("EXT_texture_filter_anisotropic");if(s.type===Le&&!1===t.has("OES_texture_float_linear"))return;if(!1===o&&s.type===Pe&&!1===t.has("OES_texture_half_float_linear"))return;(s.anisotropy>1||r.get(s).__currentAnisotropy)&&(e.texParameterf(i,a.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(s.anisotropy,n.getMaxAnisotropy())),r.get(s).__currentAnisotropy=s.anisotropy)}}function initTexture(t,i){let r=!1;void 0===t.__webglInit&&(t.__webglInit=!0,i.addEventListener("dispose",onTextureDispose));const n=i.source;let s=g.get(n);void 0===s&&(s={},g.set(n,s));const o=function getTextureCacheKey(e){const t=[];return t.push(e.wrapS),t.push(e.wrapT),t.push(e.magFilter),t.push(e.minFilter),t.push(e.anisotropy),t.push(e.internalFormat),t.push(e.format),t.push(e.type),t.push(e.generateMipmaps),t.push(e.premultiplyAlpha),t.push(e.flipY),t.push(e.unpackAlignment),t.push(e.encoding),t.join()}(i);if(o!==t.__cacheKey){void 0===s[o]&&(s[o]={texture:e.createTexture(),usedTimes:0},a.memory.textures++,r=!0),s[o].usedTimes++;const n=s[t.__cacheKey];void 0!==n&&(s[t.__cacheKey].usedTimes--,0===n.usedTimes&&deleteTexture(i)),t.__cacheKey=o,t.__webglTexture=s[o].texture}return r}function uploadTexture(t,r,n){let a=3553;r.isDataArrayTexture&&(a=35866),r.isData3DTexture&&(a=32879);const l=initTexture(t,r),c=r.source;if(i.activeTexture(33984+n),i.bindTexture(a,t.__webglTexture),c.version!==c.__currentVersion||!0===l){e.pixelStorei(37440,r.flipY),e.pixelStorei(37441,r.premultiplyAlpha),e.pixelStorei(3317,r.unpackAlignment),e.pixelStorei(37443,0);const t=function textureNeedsPowerOfTwo(e){return!o&&(e.wrapS!==ue||e.wrapT!==ue||e.minFilter!==pe&&e.minFilter!==xe)}(r)&&!1===isPowerOfTwo$1(r.image);let n=resizeImage(r.image,t,!1,h);n=verifyColorSpace(r,n);const u=isPowerOfTwo$1(n)||o,d=s.convert(r.format,r.encoding);let p,m=s.convert(r.type),f=getInternalFormat(r.internalFormat,d,m,r.encoding,r.isVideoTexture);setTextureParameters(a,r,u);const g=r.mipmaps,x=o&&!0!==r.isVideoTexture,y=void 0===c.__currentVersion||!0===l,_=getMipLevels(r,n,u);if(r.isDepthTexture)f=6402,o?f=r.type===Le?36012:r.type===Ee?33190:r.type===Ie?35056:33189:r.type===Le&&console.error("WebGLRenderer: Floating point depth texture requires WebGL2."),r.format===Fe&&6402===f&&r.type!==Ae&&r.type!==Ee&&(console.warn("THREE.WebGLRenderer: Use UnsignedShortType or UnsignedIntType for DepthFormat DepthTexture."),r.type=Ee,m=s.convert(r.type)),r.format===Ge&&6402===f&&(f=34041,r.type!==Ie&&(console.warn("THREE.WebGLRenderer: Use UnsignedInt248Type for DepthStencilFormat DepthTexture."),r.type=Ie,m=s.convert(r.type))),y&&(x?i.texStorage2D(3553,1,f,n.width,n.height):i.texImage2D(3553,0,f,n.width,n.height,0,d,m,null));else if(r.isDataTexture)if(g.length>0&&u){x&&y&&i.texStorage2D(3553,_,f,g[0].width,g[0].height);for(let e=0,t=g.length;e<t;e++)p=g[e],x?i.texSubImage2D(3553,e,0,0,p.width,p.height,d,m,p.data):i.texImage2D(3553,e,f,p.width,p.height,0,d,m,p.data);r.generateMipmaps=!1}else x?(y&&i.texStorage2D(3553,_,f,n.width,n.height),i.texSubImage2D(3553,0,0,0,n.width,n.height,d,m,n.data)):i.texImage2D(3553,0,f,n.width,n.height,0,d,m,n.data);else if(r.isCompressedTexture){x&&y&&i.texStorage2D(3553,_,f,g[0].width,g[0].height);for(let e=0,t=g.length;e<t;e++)p=g[e],r.format!==Ne?null!==d?x?i.compressedTexSubImage2D(3553,e,0,0,p.width,p.height,d,p.data):i.compressedTexImage2D(3553,e,f,p.width,p.height,0,p.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()"):x?i.texSubImage2D(3553,e,0,0,p.width,p.height,d,m,p.data):i.texImage2D(3553,e,f,p.width,p.height,0,d,m,p.data)}else if(r.isDataArrayTexture)x?(y&&i.texStorage3D(35866,_,f,n.width,n.height,n.depth),i.texSubImage3D(35866,0,0,0,0,n.width,n.height,n.depth,d,m,n.data)):i.texImage3D(35866,0,f,n.width,n.height,n.depth,0,d,m,n.data);else if(r.isData3DTexture)x?(y&&i.texStorage3D(32879,_,f,n.width,n.height,n.depth),i.texSubImage3D(32879,0,0,0,0,n.width,n.height,n.depth,d,m,n.data)):i.texImage3D(32879,0,f,n.width,n.height,n.depth,0,d,m,n.data);else if(r.isFramebufferTexture){if(y)if(x)i.texStorage2D(3553,_,f,n.width,n.height);else{let e=n.width,t=n.height;for(let r=0;r<_;r++)i.texImage2D(3553,r,f,e,t,0,d,m,null),e>>=1,t>>=1}}else if(g.length>0&&u){x&&y&&i.texStorage2D(3553,_,f,g[0].width,g[0].height);for(let e=0,t=g.length;e<t;e++)p=g[e],x?i.texSubImage2D(3553,e,0,0,d,m,p):i.texImage2D(3553,e,f,d,m,p);r.generateMipmaps=!1}else x?(y&&i.texStorage2D(3553,_,f,n.width,n.height),i.texSubImage2D(3553,0,0,0,d,m,n)):i.texImage2D(3553,0,f,d,m,n);textureNeedsGenerateMipmaps(r,u)&&generateMipmap(a),c.__currentVersion=c.version,r.onUpdate&&r.onUpdate(r)}t.__version=r.version}function setupFrameBufferTexture(t,n,a,o,l){const c=s.convert(a.format,a.encoding),h=s.convert(a.type),u=getInternalFormat(a.internalFormat,c,h,a.encoding);r.get(n).__hasExternalTextures||(32879===l||35866===l?i.texImage3D(l,0,u,n.width,n.height,n.depth,0,c,h,null):i.texImage2D(l,0,u,n.width,n.height,0,c,h,null)),i.bindFramebuffer(36160,t),useMultisampledRTT(n)?d.framebufferTexture2DMultisampleEXT(36160,o,l,r.get(a).__webglTexture,0,getRenderTargetSamples(n)):e.framebufferTexture2D(36160,o,l,r.get(a).__webglTexture,0),i.bindFramebuffer(36160,null)}function setupRenderBufferStorage(t,i,r){if(e.bindRenderbuffer(36161,t),i.depthBuffer&&!i.stencilBuffer){let n=33189;if(r||useMultisampledRTT(i)){const t=i.depthTexture;t&&t.isDepthTexture&&(t.type===Le?n=36012:t.type===Ee&&(n=33190));const r=getRenderTargetSamples(i);useMultisampledRTT(i)?d.renderbufferStorageMultisampleEXT(36161,r,n,i.width,i.height):e.renderbufferStorageMultisample(36161,r,n,i.width,i.height)}else e.renderbufferStorage(36161,n,i.width,i.height);e.framebufferRenderbuffer(36160,36096,36161,t)}else if(i.depthBuffer&&i.stencilBuffer){const n=getRenderTargetSamples(i);r&&!1===useMultisampledRTT(i)?e.renderbufferStorageMultisample(36161,n,35056,i.width,i.height):useMultisampledRTT(i)?d.renderbufferStorageMultisampleEXT(36161,n,35056,i.width,i.height):e.renderbufferStorage(36161,34041,i.width,i.height),e.framebufferRenderbuffer(36160,33306,36161,t)}else{const t=!0===i.isWebGLMultipleRenderTargets?i.texture:[i.texture];for(let n=0;n<t.length;n++){const a=t[n],o=s.convert(a.format,a.encoding),l=s.convert(a.type),c=getInternalFormat(a.internalFormat,o,l,a.encoding),h=getRenderTargetSamples(i);r&&!1===useMultisampledRTT(i)?e.renderbufferStorageMultisample(36161,h,c,i.width,i.height):useMultisampledRTT(i)?d.renderbufferStorageMultisampleEXT(36161,h,c,i.width,i.height):e.renderbufferStorage(36161,c,i.width,i.height)}}e.bindRenderbuffer(36161,null)}function setupDepthRenderbuffer(t){const n=r.get(t),s=!0===t.isWebGLCubeRenderTarget;if(t.depthTexture&&!n.__autoAllocateDepthBuffer){if(s)throw new Error("target.depthTexture not supported in Cube render targets");!function setupDepthTexture(t,n){if(n&&n.isWebGLCubeRenderTarget)throw new Error("Depth Texture with cube render targets is not supported");if(i.bindFramebuffer(36160,t),!n.depthTexture||!n.depthTexture.isDepthTexture)throw new Error("renderTarget.depthTexture must be an instance of THREE.DepthTexture");r.get(n.depthTexture).__webglTexture&&n.depthTexture.image.width===n.width&&n.depthTexture.image.height===n.height||(n.depthTexture.image.width=n.width,n.depthTexture.image.height=n.height,n.depthTexture.needsUpdate=!0),setTexture2D(n.depthTexture,0);const s=r.get(n.depthTexture).__webglTexture,a=getRenderTargetSamples(n);if(n.depthTexture.format===Fe)useMultisampledRTT(n)?d.framebufferTexture2DMultisampleEXT(36160,36096,3553,s,0,a):e.framebufferTexture2D(36160,36096,3553,s,0);else{if(n.depthTexture.format!==Ge)throw new Error("Unknown depthTexture format");useMultisampledRTT(n)?d.framebufferTexture2DMultisampleEXT(36160,33306,3553,s,0,a):e.framebufferTexture2D(36160,33306,3553,s,0)}}(n.__webglFramebuffer,t)}else if(s){n.__webglDepthbuffer=[];for(let r=0;r<6;r++)i.bindFramebuffer(36160,n.__webglFramebuffer[r]),n.__webglDepthbuffer[r]=e.createRenderbuffer(),setupRenderBufferStorage(n.__webglDepthbuffer[r],t,!1)}else i.bindFramebuffer(36160,n.__webglFramebuffer),n.__webglDepthbuffer=e.createRenderbuffer(),setupRenderBufferStorage(n.__webglDepthbuffer,t,!1);i.bindFramebuffer(36160,null)}function getRenderTargetSamples(e){return Math.min(u,e.samples)}function useMultisampledRTT(e){const i=r.get(e);return o&&e.samples>0&&!0===t.has("WEBGL_multisampled_render_to_texture")&&!1!==i.__useRenderToTexture}function verifyColorSpace(e,i){const r=e.encoding,n=e.format,s=e.type;return!0===e.isCompressedTexture||!0===e.isVideoTexture||e.format===mi||r!==Dt&&(r===It?!1===o?!0===t.has("EXT_sRGB")&&n===Ne?(e.format=mi,e.minFilter=xe,e.generateMipmaps=!1):i=ImageUtils.sRGBToLinear(i):n===Ne&&s===Se||console.warn("THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType."):console.error("THREE.WebGLTextures: Unsupported texture encoding:",r)),i}this.allocateTextureUnit=function allocateTextureUnit(){const e=y;return e>=l&&console.warn("THREE.WebGLTextures: Trying to use "+e+" texture units while this GPU supports only "+l),y+=1,e},this.resetTextureUnits=function resetTextureUnits(){y=0},this.setTexture2D=setTexture2D,this.setTexture2DArray=function setTexture2DArray(e,t){const n=r.get(e);e.version>0&&n.__version!==e.version?uploadTexture(n,e,t):(i.activeTexture(33984+t),i.bindTexture(35866,n.__webglTexture))},this.setTexture3D=function setTexture3D(e,t){const n=r.get(e);e.version>0&&n.__version!==e.version?uploadTexture(n,e,t):(i.activeTexture(33984+t),i.bindTexture(32879,n.__webglTexture))},this.setTextureCube=function setTextureCube(t,n){const a=r.get(t);t.version>0&&a.__version!==t.version?function uploadCubeTexture(t,r,n){if(6!==r.image.length)return;const a=initTexture(t,r),l=r.source;if(i.activeTexture(33984+n),i.bindTexture(34067,t.__webglTexture),l.version!==l.__currentVersion||!0===a){e.pixelStorei(37440,r.flipY),e.pixelStorei(37441,r.premultiplyAlpha),e.pixelStorei(3317,r.unpackAlignment),e.pixelStorei(37443,0);const t=r.isCompressedTexture||r.image[0].isCompressedTexture,n=r.image[0]&&r.image[0].isDataTexture,h=[];for(let e=0;e<6;e++)h[e]=t||n?n?r.image[e].image:r.image[e]:resizeImage(r.image[e],!1,!0,c),h[e]=verifyColorSpace(r,h[e]);const u=h[0],d=isPowerOfTwo$1(u)||o,p=s.convert(r.format,r.encoding),m=s.convert(r.type),f=getInternalFormat(r.internalFormat,p,m,r.encoding),g=o&&!0!==r.isVideoTexture,x=void 0===l.__currentVersion||!0===a;let y,_=getMipLevels(r,u,d);if(setTextureParameters(34067,r,d),t){g&&x&&i.texStorage2D(34067,_,f,u.width,u.height);for(let e=0;e<6;e++){y=h[e].mipmaps;for(let t=0;t<y.length;t++){const n=y[t];r.format!==Ne?null!==p?g?i.compressedTexSubImage2D(34069+e,t,0,0,n.width,n.height,p,n.data):i.compressedTexImage2D(34069+e,t,f,n.width,n.height,0,n.data):console.warn("THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()"):g?i.texSubImage2D(34069+e,t,0,0,n.width,n.height,p,m,n.data):i.texImage2D(34069+e,t,f,n.width,n.height,0,p,m,n.data)}}}else{y=r.mipmaps,g&&x&&(y.length>0&&_++,i.texStorage2D(34067,_,f,h[0].width,h[0].height));for(let e=0;e<6;e++)if(n){g?i.texSubImage2D(34069+e,0,0,0,h[e].width,h[e].height,p,m,h[e].data):i.texImage2D(34069+e,0,f,h[e].width,h[e].height,0,p,m,h[e].data);for(let t=0;t<y.length;t++){const r=y[t].image[e].image;g?i.texSubImage2D(34069+e,t+1,0,0,r.width,r.height,p,m,r.data):i.texImage2D(34069+e,t+1,f,r.width,r.height,0,p,m,r.data)}}else{g?i.texSubImage2D(34069+e,0,0,0,p,m,h[e]):i.texImage2D(34069+e,0,f,p,m,h[e]);for(let t=0;t<y.length;t++){const r=y[t];g?i.texSubImage2D(34069+e,t+1,0,0,p,m,r.image[e]):i.texImage2D(34069+e,t+1,f,p,m,r.image[e])}}}textureNeedsGenerateMipmaps(r,d)&&generateMipmap(34067),l.__currentVersion=l.version,r.onUpdate&&r.onUpdate(r)}t.__version=r.version}(a,t,n):(i.activeTexture(33984+n),i.bindTexture(34067,a.__webglTexture))},this.rebindTextures=function rebindTextures(e,t,i){const n=r.get(e);void 0!==t&&setupFrameBufferTexture(n.__webglFramebuffer,e,e.texture,36064,3553),void 0!==i&&setupDepthRenderbuffer(e)},this.setupRenderTarget=function setupRenderTarget(t){const l=t.texture,c=r.get(t),h=r.get(l);t.addEventListener("dispose",onRenderTargetDispose),!0!==t.isWebGLMultipleRenderTargets&&(void 0===h.__webglTexture&&(h.__webglTexture=e.createTexture()),h.__version=l.version,a.memory.textures++);const u=!0===t.isWebGLCubeRenderTarget,d=!0===t.isWebGLMultipleRenderTargets,p=isPowerOfTwo$1(t)||o;if(u){c.__webglFramebuffer=[];for(let t=0;t<6;t++)c.__webglFramebuffer[t]=e.createFramebuffer()}else{if(c.__webglFramebuffer=e.createFramebuffer(),d)if(n.drawBuffers){const i=t.texture;for(let t=0,n=i.length;t<n;t++){const n=r.get(i[t]);void 0===n.__webglTexture&&(n.__webglTexture=e.createTexture(),a.memory.textures++)}}else console.warn("THREE.WebGLRenderer: WebGLMultipleRenderTargets can only be used with WebGL2 or WEBGL_draw_buffers extension.");if(o&&t.samples>0&&!1===useMultisampledRTT(t)){const r=d?l:[l];c.__webglMultisampledFramebuffer=e.createFramebuffer(),c.__webglColorRenderbuffer=[],i.bindFramebuffer(36160,c.__webglMultisampledFramebuffer);for(let i=0;i<r.length;i++){const n=r[i];c.__webglColorRenderbuffer[i]=e.createRenderbuffer(),e.bindRenderbuffer(36161,c.__webglColorRenderbuffer[i]);const a=s.convert(n.format,n.encoding),o=s.convert(n.type),l=getInternalFormat(n.internalFormat,a,o,n.encoding),h=getRenderTargetSamples(t);e.renderbufferStorageMultisample(36161,h,l,t.width,t.height),e.framebufferRenderbuffer(36160,36064+i,36161,c.__webglColorRenderbuffer[i])}e.bindRenderbuffer(36161,null),t.depthBuffer&&(c.__webglDepthRenderbuffer=e.createRenderbuffer(),setupRenderBufferStorage(c.__webglDepthRenderbuffer,t,!0)),i.bindFramebuffer(36160,null)}}if(u){i.bindTexture(34067,h.__webglTexture),setTextureParameters(34067,l,p);for(let e=0;e<6;e++)setupFrameBufferTexture(c.__webglFramebuffer[e],t,l,36064,34069+e);textureNeedsGenerateMipmaps(l,p)&&generateMipmap(34067),i.unbindTexture()}else if(d){const e=t.texture;for(let n=0,s=e.length;n<s;n++){const s=e[n],a=r.get(s);i.bindTexture(3553,a.__webglTexture),setTextureParameters(3553,s,p),setupFrameBufferTexture(c.__webglFramebuffer,t,s,36064+n,3553),textureNeedsGenerateMipmaps(s,p)&&generateMipmap(3553)}i.unbindTexture()}else{let e=3553;(t.isWebGL3DRenderTarget||t.isWebGLArrayRenderTarget)&&(o?e=t.isWebGL3DRenderTarget?32879:35866:console.error("THREE.WebGLTextures: THREE.Data3DTexture and THREE.DataArrayTexture only supported with WebGL2.")),i.bindTexture(e,h.__webglTexture),setTextureParameters(e,l,p),setupFrameBufferTexture(c.__webglFramebuffer,t,l,36064,e),textureNeedsGenerateMipmaps(l,p)&&generateMipmap(e),i.unbindTexture()}t.depthBuffer&&setupDepthRenderbuffer(t)},this.updateRenderTargetMipmap=function updateRenderTargetMipmap(e){const t=isPowerOfTwo$1(e)||o,n=!0===e.isWebGLMultipleRenderTargets?e.texture:[e.texture];for(let s=0,a=n.length;s<a;s++){const a=n[s];if(textureNeedsGenerateMipmaps(a,t)){const t=e.isWebGLCubeRenderTarget?34067:3553,n=r.get(a).__webglTexture;i.bindTexture(t,n),generateMipmap(t),i.unbindTexture()}}},this.updateMultisampleRenderTarget=function updateMultisampleRenderTarget(t){if(o&&t.samples>0&&!1===useMultisampledRTT(t)){const n=t.isWebGLMultipleRenderTargets?t.texture:[t.texture],s=t.width,a=t.height;let o=16384;const l=[],c=t.stencilBuffer?33306:36096,h=r.get(t),u=!0===t.isWebGLMultipleRenderTargets;if(u)for(let t=0;t<n.length;t++)i.bindFramebuffer(36160,h.__webglMultisampledFramebuffer),e.framebufferRenderbuffer(36160,36064+t,36161,null),i.bindFramebuffer(36160,h.__webglFramebuffer),e.framebufferTexture2D(36009,36064+t,3553,null,0);i.bindFramebuffer(36008,h.__webglMultisampledFramebuffer),i.bindFramebuffer(36009,h.__webglFramebuffer);for(let i=0;i<n.length;i++){l.push(36064+i),t.depthBuffer&&l.push(c);const d=void 0!==h.__ignoreDepthValues&&h.__ignoreDepthValues;if(!1===d&&(t.depthBuffer&&(o|=256),t.stencilBuffer&&(o|=1024)),u&&e.framebufferRenderbuffer(36008,36064,36161,h.__webglColorRenderbuffer[i]),!0===d&&(e.invalidateFramebuffer(36008,[c]),e.invalidateFramebuffer(36009,[c])),u){const t=r.get(n[i]).__webglTexture;e.framebufferTexture2D(36009,36064,3553,t,0)}e.blitFramebuffer(0,0,s,a,0,0,s,a,o,9728),p&&e.invalidateFramebuffer(36008,l)}if(i.bindFramebuffer(36008,null),i.bindFramebuffer(36009,null),u)for(let t=0;t<n.length;t++){i.bindFramebuffer(36160,h.__webglMultisampledFramebuffer),e.framebufferRenderbuffer(36160,36064+t,36161,h.__webglColorRenderbuffer[t]);const s=r.get(n[t]).__webglTexture;i.bindFramebuffer(36160,h.__webglFramebuffer),e.framebufferTexture2D(36009,36064+t,3553,s,0)}i.bindFramebuffer(36009,h.__webglMultisampledFramebuffer)}},this.setupDepthRenderbuffer=setupDepthRenderbuffer,this.setupFrameBufferTexture=setupFrameBufferTexture,this.useMultisampledRTT=useMultisampledRTT}function WebGLUtils(e,t,i){const r=i.isWebGL2;return{convert:function convert(i,n=null){let s;if(i===Se)return 5121;if(i===Re)return 32819;if(i===De)return 32820;if(i===we)return 5120;if(i===Te)return 5122;if(i===Ae)return 5123;if(i===Ce)return 5124;if(i===Ee)return 5125;if(i===Le)return 5126;if(i===Pe)return r?5131:(s=t.get("OES_texture_half_float"),null!==s?s.HALF_FLOAT_OES:null);if(i===Be)return 6406;if(i===Ne)return 6408;if(i===Oe)return 6409;if(i===ze)return 6410;if(i===Fe)return 6402;if(i===Ge)return 34041;if(i===Ue)return 6403;if(i===Ve)return console.warn("THREE.WebGLRenderer: THREE.RGBFormat has been removed. Use THREE.RGBAFormat instead. https://github.com/mrdoob/three.js/pull/23228"),6408;if(i===mi)return s=t.get("EXT_sRGB"),null!==s?s.SRGB_ALPHA_EXT:null;if(i===ke)return 36244;if(i===We)return 33319;if(i===He)return 33320;if(i===je)return 36249;if(i===qe||i===Xe||i===Ye||i===Ze)if(n===It){if(s=t.get("WEBGL_compressed_texture_s3tc_srgb"),null===s)return null;if(i===qe)return s.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===Xe)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===Ye)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===Ze)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else{if(s=t.get("WEBGL_compressed_texture_s3tc"),null===s)return null;if(i===qe)return s.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===Xe)return s.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===Ye)return s.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===Ze)return s.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(i===Je||i===Ke||i===Qe||i===$e){if(s=t.get("WEBGL_compressed_texture_pvrtc"),null===s)return null;if(i===Je)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===Ke)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===Qe)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===$e)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(i===et)return s=t.get("WEBGL_compressed_texture_etc1"),null!==s?s.COMPRESSED_RGB_ETC1_WEBGL:null;if(i===tt||i===it){if(s=t.get("WEBGL_compressed_texture_etc"),null===s)return null;if(i===tt)return n===It?s.COMPRESSED_SRGB8_ETC2:s.COMPRESSED_RGB8_ETC2;if(i===it)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:s.COMPRESSED_RGBA8_ETC2_EAC}if(i===rt||i===nt||i===st||i===at||i===ot||i===lt||i===ct||i===ht||i===ut||i===dt||i===pt||i===mt||i===ft||i===gt){if(s=t.get("WEBGL_compressed_texture_astc"),null===s)return null;if(i===rt)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:s.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===nt)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:s.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===st)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:s.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===at)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:s.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===ot)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:s.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===lt)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:s.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===ct)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:s.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===ht)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:s.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===ut)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:s.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===dt)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:s.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===pt)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:s.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===mt)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:s.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===ft)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:s.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===gt)return n===It?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:s.COMPRESSED_RGBA_ASTC_12x12_KHR}if(i===vt){if(s=t.get("EXT_texture_compression_bptc"),null===s)return null;if(i===vt)return n===It?s.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:s.COMPRESSED_RGBA_BPTC_UNORM_EXT}return i===Ie?r?34042:(s=t.get("WEBGL_depth_texture"),null!==s?s.UNSIGNED_INT_24_8_WEBGL:null):void 0!==e[i]?e[i]:null}}}class ArrayCamera extends PerspectiveCamera{constructor(e=[]){super(),this.isArrayCamera=!0,this.cameras=e}}class Group extends Object3D{constructor(){super(),this.isGroup=!0,this.type="Group"}}const Hn={type:"move"};class WebXRController{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return null===this._hand&&(this._hand=new Group,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return null===this._targetRay&&(this._targetRay=new Group,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new Vector3,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new Vector3),this._targetRay}getGripSpace(){return null===this._grip&&(this._grip=new Group,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new Vector3,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new Vector3),this._grip}dispatchEvent(e){return null!==this._targetRay&&this._targetRay.dispatchEvent(e),null!==this._grip&&this._grip.dispatchEvent(e),null!==this._hand&&this._hand.dispatchEvent(e),this}disconnect(e){return this.dispatchEvent({type:"disconnected",data:e}),null!==this._targetRay&&(this._targetRay.visible=!1),null!==this._grip&&(this._grip.visible=!1),null!==this._hand&&(this._hand.visible=!1),this}update(e,t,i){let r=null,n=null,s=null;const a=this._targetRay,o=this._grip,l=this._hand;if(e&&"visible-blurred"!==t.session.visibilityState){if(l&&e.hand){s=!0;for(const s of e.hand.values()){const e=t.getJointPose(s,i);if(void 0===l.joints[s.jointName]){const e=new Group;e.matrixAutoUpdate=!1,e.visible=!1,l.joints[s.jointName]=e,l.add(e)}const r=l.joints[s.jointName];null!==e&&(r.matrix.fromArray(e.transform.matrix),r.matrix.decompose(r.position,r.rotation,r.scale),r.jointRadius=e.radius),r.visible=null!==e}const r=l.joints["index-finger-tip"],n=l.joints["thumb-tip"],a=r.position.distanceTo(n.position),o=.02,c=.005;l.inputState.pinching&&a>o+c?(l.inputState.pinching=!1,this.dispatchEvent({type:"pinchend",handedness:e.handedness,target:this})):!l.inputState.pinching&&a<=o-c&&(l.inputState.pinching=!0,this.dispatchEvent({type:"pinchstart",handedness:e.handedness,target:this}))}else null!==o&&e.gripSpace&&(n=t.getPose(e.gripSpace,i),null!==n&&(o.matrix.fromArray(n.transform.matrix),o.matrix.decompose(o.position,o.rotation,o.scale),n.linearVelocity?(o.hasLinearVelocity=!0,o.linearVelocity.copy(n.linearVelocity)):o.hasLinearVelocity=!1,n.angularVelocity?(o.hasAngularVelocity=!0,o.angularVelocity.copy(n.angularVelocity)):o.hasAngularVelocity=!1));null!==a&&(r=t.getPose(e.targetRaySpace,i),null===r&&null!==n&&(r=n),null!==r&&(a.matrix.fromArray(r.transform.matrix),a.matrix.decompose(a.position,a.rotation,a.scale),r.linearVelocity?(a.hasLinearVelocity=!0,a.linearVelocity.copy(r.linearVelocity)):a.hasLinearVelocity=!1,r.angularVelocity?(a.hasAngularVelocity=!0,a.angularVelocity.copy(r.angularVelocity)):a.hasAngularVelocity=!1,this.dispatchEvent(Hn)))}return null!==a&&(a.visible=null!==r),null!==o&&(o.visible=null!==n),null!==l&&(l.visible=null!==s),this}}class DepthTexture extends Texture{constructor(e,t,i,r,n,s,a,o,l,c){if((c=void 0!==c?c:Fe)!==Fe&&c!==Ge)throw new Error("DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat");void 0===i&&c===Fe&&(i=Ee),void 0===i&&c===Ge&&(i=Ie),super(null,r,n,s,a,o,c,i,l),this.isDepthTexture=!0,this.image={width:e,height:t},this.magFilter=void 0!==a?a:pe,this.minFilter=void 0!==o?o:pe,this.flipY=!1,this.generateMipmaps=!1}}class WebXRManager extends EventDispatcher{constructor(e,t){super();const i=this;let r=null,n=1,s=null,a="local-floor",o=null,l=null,c=null,h=null,u=null,d=null;const p=t.getContextAttributes();let m=null,f=null;const g=[],x=[],y=new PerspectiveCamera;y.layers.enable(1),y.viewport=new Vector4;const _=new PerspectiveCamera;_.layers.enable(2),_.viewport=new Vector4;const b=[y,_],M=new ArrayCamera;M.layers.enable(1),M.layers.enable(2);let S=null,w=null;function onSessionEvent(e){const t=x.indexOf(e.inputSource);if(-1===t)return;const i=g[t];void 0!==i&&i.dispatchEvent({type:e.type,data:e.inputSource})}function onSessionEnd(){r.removeEventListener("select",onSessionEvent),r.removeEventListener("selectstart",onSessionEvent),r.removeEventListener("selectend",onSessionEvent),r.removeEventListener("squeeze",onSessionEvent),r.removeEventListener("squeezestart",onSessionEvent),r.removeEventListener("squeezeend",onSessionEvent),r.removeEventListener("end",onSessionEnd),r.removeEventListener("inputsourceschange",onInputSourcesChange);for(let e=0;e<g.length;e++){const t=x[e];null!==t&&(x[e]=null,g[e].disconnect(t))}S=null,w=null,e.setRenderTarget(m),u=null,h=null,c=null,r=null,f=null,E.stop(),i.isPresenting=!1,i.dispatchEvent({type:"sessionend"})}function onInputSourcesChange(e){for(let t=0;t<e.removed.length;t++){const i=e.removed[t],r=x.indexOf(i);r>=0&&(x[r]=null,g[r].dispatchEvent({type:"disconnected",data:i}))}for(let t=0;t<e.added.length;t++){const i=e.added[t];let r=x.indexOf(i);if(-1===r){for(let e=0;e<g.length;e++){if(e>=x.length){x.push(i),r=e;break}if(null===x[e]){x[e]=i,r=e;break}}if(-1===r)break}const n=g[r];n&&n.dispatchEvent({type:"connected",data:i})}}this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(e){let t=g[e];return void 0===t&&(t=new WebXRController,g[e]=t),t.getTargetRaySpace()},this.getControllerGrip=function(e){let t=g[e];return void 0===t&&(t=new WebXRController,g[e]=t),t.getGripSpace()},this.getHand=function(e){let t=g[e];return void 0===t&&(t=new WebXRController,g[e]=t),t.getHandSpace()},this.setFramebufferScaleFactor=function(e){n=e,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(e){a=e,!0===i.isPresenting&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return o||s},this.setReferenceSpace=function(e){o=e},this.getBaseLayer=function(){return null!==h?h:u},this.getBinding=function(){return c},this.getFrame=function(){return d},this.getSession=function(){return r},this.setSession=async function(l){if(r=l,null!==r){if(m=e.getRenderTarget(),r.addEventListener("select",onSessionEvent),r.addEventListener("selectstart",onSessionEvent),r.addEventListener("selectend",onSessionEvent),r.addEventListener("squeeze",onSessionEvent),r.addEventListener("squeezestart",onSessionEvent),r.addEventListener("squeezeend",onSessionEvent),r.addEventListener("end",onSessionEnd),r.addEventListener("inputsourceschange",onInputSourcesChange),!0!==p.xrCompatible&&await t.makeXRCompatible(),void 0===r.renderState.layers||!1===e.capabilities.isWebGL2){const i={antialias:void 0!==r.renderState.layers||p.antialias,alpha:p.alpha,depth:p.depth,stencil:p.stencil,framebufferScaleFactor:n};u=new XRWebGLLayer(r,t,i),r.updateRenderState({baseLayer:u}),f=new WebGLRenderTarget(u.framebufferWidth,u.framebufferHeight,{format:Ne,type:Se,encoding:e.outputEncoding})}else{let i=null,s=null,a=null;p.depth&&(a=p.stencil?35056:33190,i=p.stencil?Ge:Fe,s=p.stencil?Ie:Ee);const o={colorFormat:32856,depthFormat:a,scaleFactor:n};c=new XRWebGLBinding(r,t),h=c.createProjectionLayer(o),r.updateRenderState({layers:[h]}),f=new WebGLRenderTarget(h.textureWidth,h.textureHeight,{format:Ne,type:Se,depthTexture:new DepthTexture(h.textureWidth,h.textureHeight,s,void 0,void 0,void 0,void 0,void 0,void 0,i),stencilBuffer:p.stencil,encoding:e.outputEncoding,samples:p.antialias?4:0});e.properties.get(f).__ignoreDepthValues=h.ignoreDepthValues}f.isXRRenderTarget=!0,this.setFoveation(1),o=null,s=await r.requestReferenceSpace(a),E.setContext(r),E.start(),i.isPresenting=!0,i.dispatchEvent({type:"sessionstart"})}};const T=new Vector3,A=new Vector3;function updateCamera(e,t){null===t?e.matrixWorld.copy(e.matrix):e.matrixWorld.multiplyMatrices(t.matrixWorld,e.matrix),e.matrixWorldInverse.copy(e.matrixWorld).invert()}this.updateCamera=function(e){if(null===r)return;M.near=_.near=y.near=e.near,M.far=_.far=y.far=e.far,S===M.near&&w===M.far||(r.updateRenderState({depthNear:M.near,depthFar:M.far}),S=M.near,w=M.far);const t=e.parent,i=M.cameras;updateCamera(M,t);for(let r=0;r<i.length;r++)updateCamera(i[r],t);M.matrixWorld.decompose(M.position,M.quaternion,M.scale),e.position.copy(M.position),e.quaternion.copy(M.quaternion),e.scale.copy(M.scale),e.matrix.copy(M.matrix),e.matrixWorld.copy(M.matrixWorld);const n=e.children;for(let r=0,s=n.length;r<s;r++)n[r].updateMatrixWorld(!0);2===i.length?function setProjectionFromUnion(e,t,i){T.setFromMatrixPosition(t.matrixWorld),A.setFromMatrixPosition(i.matrixWorld);const r=T.distanceTo(A),n=t.projectionMatrix.elements,s=i.projectionMatrix.elements,a=n[14]/(n[10]-1),o=n[14]/(n[10]+1),l=(n[9]+1)/n[5],c=(n[9]-1)/n[5],h=(n[8]-1)/n[0],u=(s[8]+1)/s[0],d=a*h,p=a*u,m=r/(-h+u),f=m*-h;t.matrixWorld.decompose(e.position,e.quaternion,e.scale),e.translateX(f),e.translateZ(m),e.matrixWorld.compose(e.position,e.quaternion,e.scale),e.matrixWorldInverse.copy(e.matrixWorld).invert();const g=a+m,x=o+m,y=d-f,_=p+(r-f),b=l*o/x*g,M=c*o/x*g;e.projectionMatrix.makePerspective(y,_,b,M,g,x)}(M,y,_):M.projectionMatrix.copy(y.projectionMatrix)},this.getCamera=function(){return M},this.getFoveation=function(){return null!==h?h.fixedFoveation:null!==u?u.fixedFoveation:void 0},this.setFoveation=function(e){null!==h&&(h.fixedFoveation=e),null!==u&&void 0!==u.fixedFoveation&&(u.fixedFoveation=e)};let C=null;const E=new WebGLAnimation;E.setAnimationLoop((function onAnimationFrame(t,i){if(l=i.getViewerPose(o||s),d=i,null!==l){const t=l.views;null!==u&&(e.setRenderTargetFramebuffer(f,u.framebuffer),e.setRenderTarget(f));let i=!1;t.length!==M.cameras.length&&(M.cameras.length=0,i=!0);for(let r=0;r<t.length;r++){const n=t[r];let s=null;if(null!==u)s=u.getViewport(n);else{const t=c.getViewSubImage(h,n);s=t.viewport,0===r&&(e.setRenderTargetTextures(f,t.colorTexture,h.ignoreDepthValues?void 0:t.depthStencilTexture),e.setRenderTarget(f))}let a=b[r];void 0===a&&(a=new PerspectiveCamera,a.layers.enable(r),a.viewport=new Vector4,b[r]=a),a.matrix.fromArray(n.transform.matrix),a.projectionMatrix.fromArray(n.projectionMatrix),a.viewport.set(s.x,s.y,s.width,s.height),0===r&&M.matrix.copy(a.matrix),!0===i&&M.cameras.push(a)}}for(let e=0;e<g.length;e++){const t=x[e],r=g[e];null!==t&&void 0!==r&&r.update(t,i,o||s)}C&&C(t,i),d=null})),this.setAnimationLoop=function(e){C=e},this.dispose=function(){}}}function WebGLMaterials(e,t){function refreshUniformsCommon(i,r){i.opacity.value=r.opacity,r.color&&i.diffuse.value.copy(r.color),r.emissive&&i.emissive.value.copy(r.emissive).multiplyScalar(r.emissiveIntensity),r.map&&(i.map.value=r.map),r.alphaMap&&(i.alphaMap.value=r.alphaMap),r.bumpMap&&(i.bumpMap.value=r.bumpMap,i.bumpScale.value=r.bumpScale,r.side===m&&(i.bumpScale.value*=-1)),r.displacementMap&&(i.displacementMap.value=r.displacementMap,i.displacementScale.value=r.displacementScale,i.displacementBias.value=r.displacementBias),r.emissiveMap&&(i.emissiveMap.value=r.emissiveMap),r.normalMap&&(i.normalMap.value=r.normalMap,i.normalScale.value.copy(r.normalScale),r.side===m&&i.normalScale.value.negate()),r.specularMap&&(i.specularMap.value=r.specularMap),r.alphaTest>0&&(i.alphaTest.value=r.alphaTest);const n=t.get(r).envMap;if(n&&(i.envMap.value=n,i.flipEnvMap.value=n.isCubeTexture&&!1===n.isRenderTargetTexture?-1:1,i.reflectivity.value=r.reflectivity,i.ior.value=r.ior,i.refractionRatio.value=r.refractionRatio),r.lightMap){i.lightMap.value=r.lightMap;const t=!0!==e.physicallyCorrectLights?Math.PI:1;i.lightMapIntensity.value=r.lightMapIntensity*t}let s,a;r.aoMap&&(i.aoMap.value=r.aoMap,i.aoMapIntensity.value=r.aoMapIntensity),r.map?s=r.map:r.specularMap?s=r.specularMap:r.displacementMap?s=r.displacementMap:r.normalMap?s=r.normalMap:r.bumpMap?s=r.bumpMap:r.roughnessMap?s=r.roughnessMap:r.metalnessMap?s=r.metalnessMap:r.alphaMap?s=r.alphaMap:r.emissiveMap?s=r.emissiveMap:r.clearcoatMap?s=r.clearcoatMap:r.clearcoatNormalMap?s=r.clearcoatNormalMap:r.clearcoatRoughnessMap?s=r.clearcoatRoughnessMap:r.iridescenceMap?s=r.iridescenceMap:r.iridescenceThicknessMap?s=r.iridescenceThicknessMap:r.specularIntensityMap?s=r.specularIntensityMap:r.specularColorMap?s=r.specularColorMap:r.transmissionMap?s=r.transmissionMap:r.thicknessMap?s=r.thicknessMap:r.sheenColorMap?s=r.sheenColorMap:r.sheenRoughnessMap&&(s=r.sheenRoughnessMap),void 0!==s&&(s.isWebGLRenderTarget&&(s=s.texture),!0===s.matrixAutoUpdate&&s.updateMatrix(),i.uvTransform.value.copy(s.matrix)),r.aoMap?a=r.aoMap:r.lightMap&&(a=r.lightMap),void 0!==a&&(a.isWebGLRenderTarget&&(a=a.texture),!0===a.matrixAutoUpdate&&a.updateMatrix(),i.uv2Transform.value.copy(a.matrix))}return{refreshFogUniforms:function refreshFogUniforms(e,t){e.fogColor.value.copy(t.color),t.isFog?(e.fogNear.value=t.near,e.fogFar.value=t.far):t.isFogExp2&&(e.fogDensity.value=t.density)},refreshMaterialUniforms:function refreshMaterialUniforms(e,i,r,n,s){i.isMeshBasicMaterial||i.isMeshLambertMaterial?refreshUniformsCommon(e,i):i.isMeshToonMaterial?(refreshUniformsCommon(e,i),function refreshUniformsToon(e,t){t.gradientMap&&(e.gradientMap.value=t.gradientMap)}(e,i)):i.isMeshPhongMaterial?(refreshUniformsCommon(e,i),function refreshUniformsPhong(e,t){e.specular.value.copy(t.specular),e.shininess.value=Math.max(t.shininess,1e-4)}(e,i)):i.isMeshStandardMaterial?(refreshUniformsCommon(e,i),function refreshUniformsStandard(e,i){e.roughness.value=i.roughness,e.metalness.value=i.metalness,i.roughnessMap&&(e.roughnessMap.value=i.roughnessMap);i.metalnessMap&&(e.metalnessMap.value=i.metalnessMap);const r=t.get(i).envMap;r&&(e.envMapIntensity.value=i.envMapIntensity)}(e,i),i.isMeshPhysicalMaterial&&function refreshUniformsPhysical(e,t,i){e.ior.value=t.ior,t.sheen>0&&(e.sheenColor.value.copy(t.sheenColor).multiplyScalar(t.sheen),e.sheenRoughness.value=t.sheenRoughness,t.sheenColorMap&&(e.sheenColorMap.value=t.sheenColorMap),t.sheenRoughnessMap&&(e.sheenRoughnessMap.value=t.sheenRoughnessMap));t.clearcoat>0&&(e.clearcoat.value=t.clearcoat,e.clearcoatRoughness.value=t.clearcoatRoughness,t.clearcoatMap&&(e.clearcoatMap.value=t.clearcoatMap),t.clearcoatRoughnessMap&&(e.clearcoatRoughnessMap.value=t.clearcoatRoughnessMap),t.clearcoatNormalMap&&(e.clearcoatNormalScale.value.copy(t.clearcoatNormalScale),e.clearcoatNormalMap.value=t.clearcoatNormalMap,t.side===m&&e.clearcoatNormalScale.value.negate()));t.iridescence>0&&(e.iridescence.value=t.iridescence,e.iridescenceIOR.value=t.iridescenceIOR,e.iridescenceThicknessMinimum.value=t.iridescenceThicknessRange[0],e.iridescenceThicknessMaximum.value=t.iridescenceThicknessRange[1],t.iridescenceMap&&(e.iridescenceMap.value=t.iridescenceMap),t.iridescenceThicknessMap&&(e.iridescenceThicknessMap.value=t.iridescenceThicknessMap));t.transmission>0&&(e.transmission.value=t.transmission,e.transmissionSamplerMap.value=i.texture,e.transmissionSamplerSize.value.set(i.width,i.height),t.transmissionMap&&(e.transmissionMap.value=t.transmissionMap),e.thickness.value=t.thickness,t.thicknessMap&&(e.thicknessMap.value=t.thicknessMap),e.attenuationDistance.value=t.attenuationDistance,e.attenuationColor.value.copy(t.attenuationColor));e.specularIntensity.value=t.specularIntensity,e.specularColor.value.copy(t.specularColor),t.specularIntensityMap&&(e.specularIntensityMap.value=t.specularIntensityMap);t.specularColorMap&&(e.specularColorMap.value=t.specularColorMap)}(e,i,s)):i.isMeshMatcapMaterial?(refreshUniformsCommon(e,i),function refreshUniformsMatcap(e,t){t.matcap&&(e.matcap.value=t.matcap)}(e,i)):i.isMeshDepthMaterial?refreshUniformsCommon(e,i):i.isMeshDistanceMaterial?(refreshUniformsCommon(e,i),function refreshUniformsDistance(e,t){e.referencePosition.value.copy(t.referencePosition),e.nearDistance.value=t.nearDistance,e.farDistance.value=t.farDistance}(e,i)):i.isMeshNormalMaterial?refreshUniformsCommon(e,i):i.isLineBasicMaterial?(!function refreshUniformsLine(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity}(e,i),i.isLineDashedMaterial&&function refreshUniformsDash(e,t){e.dashSize.value=t.dashSize,e.totalSize.value=t.dashSize+t.gapSize,e.scale.value=t.scale}(e,i)):i.isPointsMaterial?function refreshUniformsPoints(e,t,i,r){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.size.value=t.size*i,e.scale.value=.5*r,t.map&&(e.map.value=t.map);t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest);let n;t.map?n=t.map:t.alphaMap&&(n=t.alphaMap);void 0!==n&&(!0===n.matrixAutoUpdate&&n.updateMatrix(),e.uvTransform.value.copy(n.matrix))}(e,i,r,n):i.isSpriteMaterial?function refreshUniformsSprites(e,t){e.diffuse.value.copy(t.color),e.opacity.value=t.opacity,e.rotation.value=t.rotation,t.map&&(e.map.value=t.map);t.alphaMap&&(e.alphaMap.value=t.alphaMap);t.alphaTest>0&&(e.alphaTest.value=t.alphaTest);let i;t.map?i=t.map:t.alphaMap&&(i=t.alphaMap);void 0!==i&&(!0===i.matrixAutoUpdate&&i.updateMatrix(),e.uvTransform.value.copy(i.matrix))}(e,i):i.isShadowMaterial?(e.color.value.copy(i.color),e.opacity.value=i.opacity):i.isShaderMaterial&&(i.uniformsNeedUpdate=!1)}}}function WebGLUniformsGroups(e,t,i,r){let n={},s={},a=[];const o=i.isWebGL2?e.getParameter(35375):0;function hasUniformChanged(e,t,i){const r=e.value;if(void 0===i[t])return i[t]="number"===typeof r?r:r.clone(),!0;if("number"===typeof r){if(i[t]!==r)return i[t]=r,!0}else{const e=i[t];if(!1===e.equals(r))return e.copy(r),!0}return!1}function getUniformSize(e){const t=e.value,i={boundary:0,storage:0};return"number"===typeof t?(i.boundary=4,i.storage=4):t.isVector2?(i.boundary=8,i.storage=8):t.isVector3||t.isColor?(i.boundary=16,i.storage=12):t.isVector4?(i.boundary=16,i.storage=16):t.isMatrix3?(i.boundary=48,i.storage=48):t.isMatrix4?(i.boundary=64,i.storage=64):t.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",t),i}function onUniformsGroupsDispose(t){const i=t.target;i.removeEventListener("dispose",onUniformsGroupsDispose);const r=a.indexOf(i.__bindingPointIndex);a.splice(r,1),e.deleteBuffer(n[i.id]),delete n[i.id],delete s[i.id]}return{bind:function bind(e,t){const i=t.program;r.uniformBlockBinding(e,i)},update:function update(i,l){let c=n[i.id];void 0===c&&(!function prepareUniformsGroup(e){const t=e.uniforms;let i=0;const r=16;let n=0;for(let s=0,a=t.length;s<a;s++){const e=t[s],a=getUniformSize(e);if(e.__data=new Float32Array(a.storage/Float32Array.BYTES_PER_ELEMENT),e.__offset=i,s>0){n=i%r;0!==n&&r-n-a.boundary<0&&(i+=r-n,e.__offset=i)}i+=a.storage}n=i%r,n>0&&(i+=r-n);return e.__size=i,e.__cache={},this}(i),c=function createBuffer(t){const i=function allocateBindingPointIndex(){for(let e=0;e<o;e++)if(-1===a.indexOf(e))return a.push(e),e;return console.error("THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached."),0}();t.__bindingPointIndex=i;const r=e.createBuffer(),n=t.__size,s=t.usage;return e.bindBuffer(35345,r),e.bufferData(35345,n,s),e.bindBuffer(35345,null),e.bindBufferBase(35345,i,r),r}(i),n[i.id]=c,i.addEventListener("dispose",onUniformsGroupsDispose));const h=l.program;r.updateUBOMapping(i,h);const u=t.render.frame;s[i.id]!==u&&(!function updateBufferData(t){const i=n[t.id],r=t.uniforms,s=t.__cache;e.bindBuffer(35345,i);for(let n=0,a=r.length;n<a;n++){const t=r[n];if(!0===hasUniformChanged(t,n,s)){const i=t.value,r=t.__offset;"number"===typeof i?(t.__data[0]=i,e.bufferSubData(35345,r,t.__data)):(t.value.isMatrix3?(t.__data[0]=t.value.elements[0],t.__data[1]=t.value.elements[1],t.__data[2]=t.value.elements[2],t.__data[3]=t.value.elements[0],t.__data[4]=t.value.elements[3],t.__data[5]=t.value.elements[4],t.__data[6]=t.value.elements[5],t.__data[7]=t.value.elements[0],t.__data[8]=t.value.elements[6],t.__data[9]=t.value.elements[7],t.__data[10]=t.value.elements[8],t.__data[11]=t.value.elements[0]):i.toArray(t.__data),e.bufferSubData(35345,r,t.__data))}}e.bindBuffer(35345,null)}(i),s[i.id]=u)},dispose:function dispose(){for(const t in n)e.deleteBuffer(n[t]);a=[],n={},s={}}}}function WebGLRenderer(e={}){this.isWebGLRenderer=!0;const t=void 0!==e.canvas?e.canvas:function createCanvasElement(){const e=createElementNS("canvas");return e.style.display="block",e}(),r=void 0!==e.context?e.context:null,n=void 0===e.depth||e.depth,s=void 0===e.stencil||e.stencil,a=void 0!==e.antialias&&e.antialias,o=void 0===e.premultipliedAlpha||e.premultipliedAlpha,l=void 0!==e.preserveDrawingBuffer&&e.preserveDrawingBuffer,c=void 0!==e.powerPreference?e.powerPreference:"default",h=void 0!==e.failIfMajorPerformanceCaveat&&e.failIfMajorPerformanceCaveat;let u;u=null!==r?r.getContextAttributes().alpha:void 0!==e.alpha&&e.alpha;let d=null,g=null;const x=[],y=[];this.domElement=t,this.debug={checkShaderErrors:!0},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.outputEncoding=Dt,this.physicallyCorrectLights=!1,this.toneMapping=Q,this.toneMappingExposure=1,Object.defineProperties(this,{gammaFactor:{get:function(){return console.warn("THREE.WebGLRenderer: .gammaFactor has been removed."),2},set:function(){console.warn("THREE.WebGLRenderer: .gammaFactor has been removed.")}}});const _=this;let b=!1,M=0,S=0,w=null,T=-1,A=null;const C=new Vector4,E=new Vector4;let L=null,P=t.width,R=t.height,D=1,I=null,B=null;const V=new Vector4(0,0,P,R),N=new Vector4(0,0,P,R);let O=!1;const z=new Frustum;let F=!1,G=!1,U=null;const k=new Matrix4,W=new Vector2,H=new Vector3,j={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function getTargetPixelRatio(){return null===w?D:1}let q,X,Y,Z,J,K,$,ee,te,ie,re,ne,se,ae,oe,le,ce,he,ue,de,pe,me,fe,ge,ve=r;function getContext(e,i){for(let r=0;r<e.length;r++){const n=e[r],s=t.getContext(n,i);if(null!==s)return s}return null}try{const e={alpha:!0,depth:n,stencil:s,antialias:a,premultipliedAlpha:o,preserveDrawingBuffer:l,powerPreference:c,failIfMajorPerformanceCaveat:h};if("setAttribute"in t&&t.setAttribute("data-engine",`three.js r${i}`),t.addEventListener("webglcontextlost",onContextLost,!1),t.addEventListener("webglcontextrestored",onContextRestore,!1),t.addEventListener("webglcontextcreationerror",onContextCreationError,!1),null===ve){const t=["webgl2","webgl","experimental-webgl"];if(!0===_.isWebGL1Renderer&&t.shift(),ve=getContext(t,e),null===ve)throw getContext(t)?new Error("Error creating WebGL context with your selected attributes."):new Error("Error creating WebGL context.")}void 0===ve.getShaderPrecisionFormat&&(ve.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}})}catch(Me){throw console.error("THREE.WebGLRenderer: "+Me.message),Me}function initGLContext(){q=new WebGLExtensions(ve),X=new WebGLCapabilities(ve,q,e),q.init(X),me=new WebGLUtils(ve,q,X),Y=new WebGLState(ve,q,X),Z=new WebGLInfo,J=new WebGLProperties,K=new WebGLTextures(ve,q,Y,J,X,me,Z),$=new WebGLCubeMaps(_),ee=new WebGLCubeUVMaps(_),te=new WebGLAttributes(ve,X),fe=new WebGLBindingStates(ve,q,te,X),ie=new WebGLGeometries(ve,te,Z,fe),re=new WebGLObjects(ve,ie,te,Z),ue=new WebGLMorphtargets(ve,X,K),le=new WebGLClipping(J),ne=new WebGLPrograms(_,$,ee,q,X,fe,le),se=new WebGLMaterials(_,J),ae=new WebGLRenderLists,oe=new WebGLRenderStates(q,X),he=new WebGLBackground(_,$,Y,re,u,o),ce=new WebGLShadowMap(_,re,X),ge=new WebGLUniformsGroups(ve,Z,X,Y),de=new WebGLBufferRenderer(ve,q,Z,X),pe=new WebGLIndexedBufferRenderer(ve,q,Z,X),Z.programs=ne.programs,_.capabilities=X,_.extensions=q,_.properties=J,_.renderLists=ae,_.shadowMap=ce,_.state=Y,_.info=Z}initGLContext();const xe=new WebXRManager(_,ve);function onContextLost(e){e.preventDefault(),console.log("THREE.WebGLRenderer: Context Lost."),b=!0}function onContextRestore(){console.log("THREE.WebGLRenderer: Context Restored."),b=!1;const e=Z.autoReset,t=ce.enabled,i=ce.autoUpdate,r=ce.needsUpdate,n=ce.type;initGLContext(),Z.autoReset=e,ce.enabled=t,ce.autoUpdate=i,ce.needsUpdate=r,ce.type=n}function onContextCreationError(e){console.error("THREE.WebGLRenderer: A WebGL context could not be created. Reason: ",e.statusMessage)}function onMaterialDispose(e){const t=e.target;t.removeEventListener("dispose",onMaterialDispose),function deallocateMaterial(e){(function releaseMaterialProgramReferences(e){const t=J.get(e).programs;void 0!==t&&(t.forEach((function(e){ne.releaseProgram(e)})),e.isShaderMaterial&&ne.releaseShaderCache(e))})(e),J.remove(e)}(t)}this.xr=xe,this.getContext=function(){return ve},this.getContextAttributes=function(){return ve.getContextAttributes()},this.forceContextLoss=function(){const e=q.get("WEBGL_lose_context");e&&e.loseContext()},this.forceContextRestore=function(){const e=q.get("WEBGL_lose_context");e&&e.restoreContext()},this.getPixelRatio=function(){return D},this.setPixelRatio=function(e){void 0!==e&&(D=e,this.setSize(P,R,!1))},this.getSize=function(e){return e.set(P,R)},this.setSize=function(e,i,r){xe.isPresenting?console.warn("THREE.WebGLRenderer: Can't change size while VR device is presenting."):(P=e,R=i,t.width=Math.floor(e*D),t.height=Math.floor(i*D),!1!==r&&(t.style.width=e+"px",t.style.height=i+"px"),this.setViewport(0,0,e,i))},this.getDrawingBufferSize=function(e){return e.set(P*D,R*D).floor()},this.setDrawingBufferSize=function(e,i,r){P=e,R=i,D=r,t.width=Math.floor(e*r),t.height=Math.floor(i*r),this.setViewport(0,0,e,i)},this.getCurrentViewport=function(e){return e.copy(C)},this.getViewport=function(e){return e.copy(V)},this.setViewport=function(e,t,i,r){e.isVector4?V.set(e.x,e.y,e.z,e.w):V.set(e,t,i,r),Y.viewport(C.copy(V).multiplyScalar(D).floor())},this.getScissor=function(e){return e.copy(N)},this.setScissor=function(e,t,i,r){e.isVector4?N.set(e.x,e.y,e.z,e.w):N.set(e,t,i,r),Y.scissor(E.copy(N).multiplyScalar(D).floor())},this.getScissorTest=function(){return O},this.setScissorTest=function(e){Y.setScissorTest(O=e)},this.setOpaqueSort=function(e){I=e},this.setTransparentSort=function(e){B=e},this.getClearColor=function(e){return e.copy(he.getClearColor())},this.setClearColor=function(){he.setClearColor.apply(he,arguments)},this.getClearAlpha=function(){return he.getClearAlpha()},this.setClearAlpha=function(){he.setClearAlpha.apply(he,arguments)},this.clear=function(e=!0,t=!0,i=!0){let r=0;e&&(r|=16384),t&&(r|=256),i&&(r|=1024),ve.clear(r)},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(){t.removeEventListener("webglcontextlost",onContextLost,!1),t.removeEventListener("webglcontextrestored",onContextRestore,!1),t.removeEventListener("webglcontextcreationerror",onContextCreationError,!1),ae.dispose(),oe.dispose(),J.dispose(),$.dispose(),ee.dispose(),re.dispose(),fe.dispose(),ge.dispose(),ne.dispose(),xe.dispose(),xe.removeEventListener("sessionstart",onXRSessionStart),xe.removeEventListener("sessionend",onXRSessionEnd),U&&(U.dispose(),U=null),_e.stop()},this.renderBufferDirect=function(e,t,i,r,n,s){null===t&&(t=j);const a=n.isMesh&&n.matrixWorld.determinant()<0,o=function setProgram(e,t,i,r,n){!0!==t.isScene&&(t=j);K.resetTextureUnits();const s=t.fog,a=r.isMeshStandardMaterial?t.environment:null,o=null===w?_.outputEncoding:!0===w.isXRRenderTarget?w.texture.encoding:Dt,l=(r.isMeshStandardMaterial?ee:$).get(r.envMap||a),c=!0===r.vertexColors&&!!i.attributes.color&&4===i.attributes.color.itemSize,h=!!r.normalMap&&!!i.attributes.tangent,u=!!i.morphAttributes.position,d=!!i.morphAttributes.normal,p=!!i.morphAttributes.color,m=r.toneMapped?_.toneMapping:Q,f=i.morphAttributes.position||i.morphAttributes.normal||i.morphAttributes.color,x=void 0!==f?f.length:0,y=J.get(r),b=g.state.lights;if(!0===F&&(!0===G||e!==A)){const t=e===A&&r.id===T;le.setState(r,e,t)}let M=!1;r.version===y.__version?y.needsLights&&y.lightsStateVersion!==b.state.version||y.outputEncoding!==o||n.isInstancedMesh&&!1===y.instancing?M=!0:n.isInstancedMesh||!0!==y.instancing?n.isSkinnedMesh&&!1===y.skinning?M=!0:n.isSkinnedMesh||!0!==y.skinning?y.envMap!==l||!0===r.fog&&y.fog!==s?M=!0:void 0===y.numClippingPlanes||y.numClippingPlanes===le.numPlanes&&y.numIntersection===le.numIntersection?(y.vertexAlphas!==c||y.vertexTangents!==h||y.morphTargets!==u||y.morphNormals!==d||y.morphColors!==p||y.toneMapping!==m||!0===X.isWebGL2&&y.morphTargetsCount!==x)&&(M=!0):M=!0:M=!0:M=!0:(M=!0,y.__version=r.version);let S=y.currentProgram;!0===M&&(S=getProgram(r,t,n));let C=!1,E=!1,L=!1;const P=S.getUniforms(),I=y.uniforms;Y.useProgram(S.program)&&(C=!0,E=!0,L=!0);r.id!==T&&(T=r.id,E=!0);if(C||A!==e){if(P.setValue(ve,"projectionMatrix",e.projectionMatrix),X.logarithmicDepthBuffer&&P.setValue(ve,"logDepthBufFC",2/(Math.log(e.far+1)/Math.LN2)),A!==e&&(A=e,E=!0,L=!0),r.isShaderMaterial||r.isMeshPhongMaterial||r.isMeshToonMaterial||r.isMeshStandardMaterial||r.envMap){const t=P.map.cameraPosition;void 0!==t&&t.setValue(ve,H.setFromMatrixPosition(e.matrixWorld))}(r.isMeshPhongMaterial||r.isMeshToonMaterial||r.isMeshLambertMaterial||r.isMeshBasicMaterial||r.isMeshStandardMaterial||r.isShaderMaterial)&&P.setValue(ve,"isOrthographic",!0===e.isOrthographicCamera),(r.isMeshPhongMaterial||r.isMeshToonMaterial||r.isMeshLambertMaterial||r.isMeshBasicMaterial||r.isMeshStandardMaterial||r.isShaderMaterial||r.isShadowMaterial||n.isSkinnedMesh)&&P.setValue(ve,"viewMatrix",e.matrixWorldInverse)}if(n.isSkinnedMesh){P.setOptional(ve,n,"bindMatrix"),P.setOptional(ve,n,"bindMatrixInverse");const e=n.skeleton;e&&(X.floatVertexTextures?(null===e.boneTexture&&e.computeBoneTexture(),P.setValue(ve,"boneTexture",e.boneTexture,K),P.setValue(ve,"boneTextureSize",e.boneTextureSize)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}const B=i.morphAttributes;(void 0!==B.position||void 0!==B.normal||void 0!==B.color&&!0===X.isWebGL2)&&ue.update(n,i,r,S);(E||y.receiveShadow!==n.receiveShadow)&&(y.receiveShadow=n.receiveShadow,P.setValue(ve,"receiveShadow",n.receiveShadow));E&&(P.setValue(ve,"toneMappingExposure",_.toneMappingExposure),y.needsLights&&function markUniformsLightsNeedsUpdate(e,t){e.ambientLightColor.needsUpdate=t,e.lightProbe.needsUpdate=t,e.directionalLights.needsUpdate=t,e.directionalLightShadows.needsUpdate=t,e.pointLights.needsUpdate=t,e.pointLightShadows.needsUpdate=t,e.spotLights.needsUpdate=t,e.spotLightShadows.needsUpdate=t,e.rectAreaLights.needsUpdate=t,e.hemisphereLights.needsUpdate=t}(I,L),s&&!0===r.fog&&se.refreshFogUniforms(I,s),se.refreshMaterialUniforms(I,r,D,R,U),WebGLUniforms.upload(ve,y.uniformsList,I,K));r.isShaderMaterial&&!0===r.uniformsNeedUpdate&&(WebGLUniforms.upload(ve,y.uniformsList,I,K),r.uniformsNeedUpdate=!1);r.isSpriteMaterial&&P.setValue(ve,"center",n.center);if(P.setValue(ve,"modelViewMatrix",n.modelViewMatrix),P.setValue(ve,"normalMatrix",n.normalMatrix),P.setValue(ve,"modelMatrix",n.matrixWorld),r.isShaderMaterial||r.isRawShaderMaterial){const e=r.uniformsGroups;for(let t=0,i=e.length;t<i;t++)if(X.isWebGL2){const i=e[t];ge.update(i,S),ge.bind(i,S)}else console.warn("THREE.WebGLRenderer: Uniform Buffer Objects can only be used with WebGL 2.")}return S}(e,t,i,r,n);Y.setMaterial(r,a);let l=i.index;const c=i.attributes.position;if(null===l){if(void 0===c||0===c.count)return}else if(0===l.count)return;let h,u=1;!0===r.wireframe&&(l=ie.getWireframeAttribute(i),u=2),fe.setup(n,r,o,i,l);let d=de;null!==l&&(h=te.get(l),d=pe,d.setIndex(h));const p=null!==l?l.count:c.count,m=i.drawRange.start*u,f=i.drawRange.count*u,x=null!==s?s.start*u:0,y=null!==s?s.count*u:1/0,b=Math.max(m,x),M=Math.min(p,m+f,x+y)-1,S=Math.max(0,M-b+1);if(0!==S){if(n.isMesh)!0===r.wireframe?(Y.setLineWidth(r.wireframeLinewidth*getTargetPixelRatio()),d.setMode(1)):d.setMode(4);else if(n.isLine){let e=r.linewidth;void 0===e&&(e=1),Y.setLineWidth(e*getTargetPixelRatio()),n.isLineSegments?d.setMode(1):n.isLineLoop?d.setMode(2):d.setMode(3)}else n.isPoints?d.setMode(0):n.isSprite&&d.setMode(4);if(n.isInstancedMesh)d.renderInstances(b,S,n.count);else if(i.isInstancedBufferGeometry){const e=Math.min(i.instanceCount,i._maxInstanceCount);d.renderInstances(b,S,e)}else d.render(b,S)}},this.compile=function(e,t){g=oe.get(e),g.init(),y.push(g),e.traverseVisible((function(e){e.isLight&&e.layers.test(t.layers)&&(g.pushLight(e),e.castShadow&&g.pushShadow(e))})),g.setupLights(_.physicallyCorrectLights),e.traverse((function(t){const i=t.material;if(i)if(Array.isArray(i))for(let r=0;r<i.length;r++){getProgram(i[r],e,t)}else getProgram(i,e,t)})),y.pop(),g=null};let ye=null;function onXRSessionStart(){_e.stop()}function onXRSessionEnd(){_e.start()}const _e=new WebGLAnimation;function projectObject(e,t,i,r){if(!1===e.visible)return;if(e.layers.test(t.layers))if(e.isGroup)i=e.renderOrder;else if(e.isLOD)!0===e.autoUpdate&&e.update(t);else if(e.isLight)g.pushLight(e),e.castShadow&&g.pushShadow(e);else if(e.isSprite){if(!e.frustumCulled||z.intersectsSprite(e)){r&&H.setFromMatrixPosition(e.matrixWorld).applyMatrix4(k);const t=re.update(e),n=e.material;n.visible&&d.push(e,t,n,i,H.z,null)}}else if((e.isMesh||e.isLine||e.isPoints)&&(e.isSkinnedMesh&&e.skeleton.frame!==Z.render.frame&&(e.skeleton.update(),e.skeleton.frame=Z.render.frame),!e.frustumCulled||z.intersectsObject(e))){r&&H.setFromMatrixPosition(e.matrixWorld).applyMatrix4(k);const t=re.update(e),n=e.material;if(Array.isArray(n)){const r=t.groups;for(let s=0,a=r.length;s<a;s++){const a=r[s],o=n[a.materialIndex];o&&o.visible&&d.push(e,t,o,i,H.z,a)}}else n.visible&&d.push(e,t,n,i,H.z,null)}const n=e.children;for(let s=0,a=n.length;s<a;s++)projectObject(n[s],t,i,r)}function renderScene(e,t,i,r){const n=e.opaque,s=e.transmissive,o=e.transparent;g.setupLightsView(i),s.length>0&&function renderTransmissionPass(e,t,i){const r=X.isWebGL2;null===U&&(U=new WebGLRenderTarget(1,1,{generateMipmaps:!0,type:q.has("EXT_color_buffer_half_float")?Pe:Se,minFilter:be,samples:r&&!0===a?4:0}));_.getDrawingBufferSize(W),r?U.setSize(W.x,W.y):U.setSize(floorPowerOfTwo(W.x),floorPowerOfTwo(W.y));const n=_.getRenderTarget();_.setRenderTarget(U),_.clear();const s=_.toneMapping;_.toneMapping=Q,renderObjects(e,t,i),_.toneMapping=s,K.updateMultisampleRenderTarget(U),K.updateRenderTargetMipmap(U),_.setRenderTarget(n)}(n,t,i),r&&Y.viewport(C.copy(r)),n.length>0&&renderObjects(n,t,i),s.length>0&&renderObjects(s,t,i),o.length>0&&renderObjects(o,t,i),Y.buffers.depth.setTest(!0),Y.buffers.depth.setMask(!0),Y.buffers.color.setMask(!0),Y.setPolygonOffset(!1)}function renderObjects(e,t,i){const r=!0===t.isScene?t.overrideMaterial:null;for(let n=0,s=e.length;n<s;n++){const s=e[n],a=s.object,o=s.geometry,l=null===r?s.material:r,c=s.group;a.layers.test(i.layers)&&renderObject(a,t,i,o,l,c)}}function renderObject(e,t,i,r,n,s){e.onBeforeRender(_,t,i,r,n,s),e.modelViewMatrix.multiplyMatrices(i.matrixWorldInverse,e.matrixWorld),e.normalMatrix.getNormalMatrix(e.modelViewMatrix),n.onBeforeRender(_,t,i,r,e,s),!0===n.transparent&&n.side===f?(n.side=m,n.needsUpdate=!0,_.renderBufferDirect(i,t,r,n,e,s),n.side=p,n.needsUpdate=!0,_.renderBufferDirect(i,t,r,n,e,s),n.side=f):_.renderBufferDirect(i,t,r,n,e,s),e.onAfterRender(_,t,i,r,n,s)}function getProgram(e,t,i){!0!==t.isScene&&(t=j);const r=J.get(e),n=g.state.lights,s=g.state.shadowsArray,a=n.state.version,o=ne.getParameters(e,n.state,s,t,i),l=ne.getProgramCacheKey(o);let c=r.programs;r.environment=e.isMeshStandardMaterial?t.environment:null,r.fog=t.fog,r.envMap=(e.isMeshStandardMaterial?ee:$).get(e.envMap||r.environment),void 0===c&&(e.addEventListener("dispose",onMaterialDispose),c=new Map,r.programs=c);let h=c.get(l);if(void 0!==h){if(r.currentProgram===h&&r.lightsStateVersion===a)return updateCommonMaterialProperties(e,o),h}else o.uniforms=ne.getUniforms(e),e.onBuild(i,o,_),e.onBeforeCompile(o,_),h=ne.acquireProgram(o,l),c.set(l,h),r.uniforms=o.uniforms;const u=r.uniforms;(e.isShaderMaterial||e.isRawShaderMaterial)&&!0!==e.clipping||(u.clippingPlanes=le.uniform),updateCommonMaterialProperties(e,o),r.needsLights=function materialNeedsLights(e){return e.isMeshLambertMaterial||e.isMeshToonMaterial||e.isMeshPhongMaterial||e.isMeshStandardMaterial||e.isShadowMaterial||e.isShaderMaterial&&!0===e.lights}(e),r.lightsStateVersion=a,r.needsLights&&(u.ambientLightColor.value=n.state.ambient,u.lightProbe.value=n.state.probe,u.directionalLights.value=n.state.directional,u.directionalLightShadows.value=n.state.directionalShadow,u.spotLights.value=n.state.spot,u.spotLightShadows.value=n.state.spotShadow,u.rectAreaLights.value=n.state.rectArea,u.ltc_1.value=n.state.rectAreaLTC1,u.ltc_2.value=n.state.rectAreaLTC2,u.pointLights.value=n.state.point,u.pointLightShadows.value=n.state.pointShadow,u.hemisphereLights.value=n.state.hemi,u.directionalShadowMap.value=n.state.directionalShadowMap,u.directionalShadowMatrix.value=n.state.directionalShadowMatrix,u.spotShadowMap.value=n.state.spotShadowMap,u.spotShadowMatrix.value=n.state.spotShadowMatrix,u.pointShadowMap.value=n.state.pointShadowMap,u.pointShadowMatrix.value=n.state.pointShadowMatrix);const d=h.getUniforms(),p=WebGLUniforms.seqWithValue(d.seq,u);return r.currentProgram=h,r.uniformsList=p,h}function updateCommonMaterialProperties(e,t){const i=J.get(e);i.outputEncoding=t.outputEncoding,i.instancing=t.instancing,i.skinning=t.skinning,i.morphTargets=t.morphTargets,i.morphNormals=t.morphNormals,i.morphColors=t.morphColors,i.morphTargetsCount=t.morphTargetsCount,i.numClippingPlanes=t.numClippingPlanes,i.numIntersection=t.numClipIntersection,i.vertexAlphas=t.vertexAlphas,i.vertexTangents=t.vertexTangents,i.toneMapping=t.toneMapping}_e.setAnimationLoop((function onAnimationFrame(e){ye&&ye(e)})),"undefined"!==typeof self&&_e.setContext(self),this.setAnimationLoop=function(e){ye=e,xe.setAnimationLoop(e),null===e?_e.stop():_e.start()},xe.addEventListener("sessionstart",onXRSessionStart),xe.addEventListener("sessionend",onXRSessionEnd),this.render=function(e,t){if(void 0!==t&&!0!==t.isCamera)return void console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");if(!0===b)return;!0===e.autoUpdate&&e.updateMatrixWorld(),null===t.parent&&t.updateMatrixWorld(),!0===xe.enabled&&!0===xe.isPresenting&&(!0===xe.cameraAutoUpdate&&xe.updateCamera(t),t=xe.getCamera()),!0===e.isScene&&e.onBeforeRender(_,e,t,w),g=oe.get(e,y.length),g.init(),y.push(g),k.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),z.setFromProjectionMatrix(k),G=this.localClippingEnabled,F=le.init(this.clippingPlanes,G,t),d=ae.get(e,x.length),d.init(),x.push(d),projectObject(e,t,0,_.sortObjects),d.finish(),!0===_.sortObjects&&d.sort(I,B),!0===F&&le.beginShadows();const i=g.state.shadowsArray;if(ce.render(i,e,t),!0===F&&le.endShadows(),!0===this.info.autoReset&&this.info.reset(),he.render(d,e),g.setupLights(_.physicallyCorrectLights),t.isArrayCamera){const i=t.cameras;for(let t=0,r=i.length;t<r;t++){const r=i[t];renderScene(d,e,r,r.viewport)}}else renderScene(d,e,t);null!==w&&(K.updateMultisampleRenderTarget(w),K.updateRenderTargetMipmap(w)),!0===e.isScene&&e.onAfterRender(_,e,t),fe.resetDefaultState(),T=-1,A=null,y.pop(),g=y.length>0?y[y.length-1]:null,x.pop(),d=x.length>0?x[x.length-1]:null},this.getActiveCubeFace=function(){return M},this.getActiveMipmapLevel=function(){return S},this.getRenderTarget=function(){return w},this.setRenderTargetTextures=function(e,t,i){J.get(e.texture).__webglTexture=t,J.get(e.depthTexture).__webglTexture=i;const r=J.get(e);r.__hasExternalTextures=!0,r.__hasExternalTextures&&(r.__autoAllocateDepthBuffer=void 0===i,r.__autoAllocateDepthBuffer||!0===q.has("WEBGL_multisampled_render_to_texture")&&(console.warn("THREE.WebGLRenderer: Render-to-texture extension was disabled because an external texture was provided"),r.__useRenderToTexture=!1))},this.setRenderTargetFramebuffer=function(e,t){const i=J.get(e);i.__webglFramebuffer=t,i.__useDefaultFramebuffer=void 0===t},this.setRenderTarget=function(e,t=0,i=0){w=e,M=t,S=i;let r=!0;if(e){const t=J.get(e);void 0!==t.__useDefaultFramebuffer?(Y.bindFramebuffer(36160,null),r=!1):void 0===t.__webglFramebuffer?K.setupRenderTarget(e):t.__hasExternalTextures&&K.rebindTextures(e,J.get(e.texture).__webglTexture,J.get(e.depthTexture).__webglTexture)}let n=null,s=!1,a=!1;if(e){const i=e.texture;(i.isData3DTexture||i.isDataArrayTexture)&&(a=!0);const r=J.get(e).__webglFramebuffer;e.isWebGLCubeRenderTarget?(n=r[t],s=!0):n=X.isWebGL2&&e.samples>0&&!1===K.useMultisampledRTT(e)?J.get(e).__webglMultisampledFramebuffer:r,C.copy(e.viewport),E.copy(e.scissor),L=e.scissorTest}else C.copy(V).multiplyScalar(D).floor(),E.copy(N).multiplyScalar(D).floor(),L=O;if(Y.bindFramebuffer(36160,n)&&X.drawBuffers&&r&&Y.drawBuffers(e,n),Y.viewport(C),Y.scissor(E),Y.setScissorTest(L),s){const r=J.get(e.texture);ve.framebufferTexture2D(36160,36064,34069+t,r.__webglTexture,i)}else if(a){const r=J.get(e.texture),n=t||0;ve.framebufferTextureLayer(36160,36064,r.__webglTexture,i||0,n)}T=-1},this.readRenderTargetPixels=function(e,t,i,r,n,s,a){if(!e||!e.isWebGLRenderTarget)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");let o=J.get(e).__webglFramebuffer;if(e.isWebGLCubeRenderTarget&&void 0!==a&&(o=o[a]),o){Y.bindFramebuffer(36160,o);try{const a=e.texture,o=a.format,l=a.type;if(o!==Ne&&me.convert(o)!==ve.getParameter(35739))return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");const c=l===Pe&&(q.has("EXT_color_buffer_half_float")||X.isWebGL2&&q.has("EXT_color_buffer_float"));if(l!==Se&&me.convert(l)!==ve.getParameter(35738)&&(l!==Le||!(X.isWebGL2||q.has("OES_texture_float")||q.has("WEBGL_color_buffer_float")))&&!c)return void console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");t>=0&&t<=e.width-r&&i>=0&&i<=e.height-n&&ve.readPixels(t,i,r,n,me.convert(o),me.convert(l),s)}finally{const e=null!==w?J.get(w).__webglFramebuffer:null;Y.bindFramebuffer(36160,e)}}},this.copyFramebufferToTexture=function(e,t,i=0){const r=Math.pow(2,-i),n=Math.floor(t.image.width*r),s=Math.floor(t.image.height*r);K.setTexture2D(t,0),ve.copyTexSubImage2D(3553,i,0,0,e.x,e.y,n,s),Y.unbindTexture()},this.copyTextureToTexture=function(e,t,i,r=0){const n=t.image.width,s=t.image.height,a=me.convert(i.format),o=me.convert(i.type);K.setTexture2D(i,0),ve.pixelStorei(37440,i.flipY),ve.pixelStorei(37441,i.premultiplyAlpha),ve.pixelStorei(3317,i.unpackAlignment),t.isDataTexture?ve.texSubImage2D(3553,r,e.x,e.y,n,s,a,o,t.image.data):t.isCompressedTexture?ve.compressedTexSubImage2D(3553,r,e.x,e.y,t.mipmaps[0].width,t.mipmaps[0].height,a,t.mipmaps[0].data):ve.texSubImage2D(3553,r,e.x,e.y,a,o,t.image),0===r&&i.generateMipmaps&&ve.generateMipmap(3553),Y.unbindTexture()},this.copyTextureToTexture3D=function(e,t,i,r,n=0){if(_.isWebGL1Renderer)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");const s=e.max.x-e.min.x+1,a=e.max.y-e.min.y+1,o=e.max.z-e.min.z+1,l=me.convert(r.format),c=me.convert(r.type);let h;if(r.isData3DTexture)K.setTexture3D(r,0),h=32879;else{if(!r.isDataArrayTexture)return void console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");K.setTexture2DArray(r,0),h=35866}ve.pixelStorei(37440,r.flipY),ve.pixelStorei(37441,r.premultiplyAlpha),ve.pixelStorei(3317,r.unpackAlignment);const u=ve.getParameter(3314),d=ve.getParameter(32878),p=ve.getParameter(3316),m=ve.getParameter(3315),f=ve.getParameter(32877),g=i.isCompressedTexture?i.mipmaps[0]:i.image;ve.pixelStorei(3314,g.width),ve.pixelStorei(32878,g.height),ve.pixelStorei(3316,e.min.x),ve.pixelStorei(3315,e.min.y),ve.pixelStorei(32877,e.min.z),i.isDataTexture||i.isData3DTexture?ve.texSubImage3D(h,n,t.x,t.y,t.z,s,a,o,l,c,g.data):i.isCompressedTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),ve.compressedTexSubImage3D(h,n,t.x,t.y,t.z,s,a,o,l,g.data)):ve.texSubImage3D(h,n,t.x,t.y,t.z,s,a,o,l,c,g),ve.pixelStorei(3314,u),ve.pixelStorei(32878,d),ve.pixelStorei(3316,p),ve.pixelStorei(3315,m),ve.pixelStorei(32877,f),0===n&&r.generateMipmaps&&ve.generateMipmap(h),Y.unbindTexture()},this.initTexture=function(e){e.isCubeTexture?K.setTextureCube(e,0):e.isData3DTexture?K.setTexture3D(e,0):e.isDataArrayTexture?K.setTexture2DArray(e,0):K.setTexture2D(e,0),Y.unbindTexture()},this.resetState=function(){M=0,S=0,w=null,Y.reset(),fe.reset()},"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}class WebGL1Renderer extends WebGLRenderer{}WebGL1Renderer.prototype.isWebGL1Renderer=!0;class FogExp2{constructor(e,t=25e-5){this.isFogExp2=!0,this.name="",this.color=new Color(e),this.density=t}clone(){return new FogExp2(this.color,this.density)}toJSON(){return{type:"FogExp2",color:this.color.getHex(),density:this.density}}}class Fog{constructor(e,t=1,i=1e3){this.isFog=!0,this.name="",this.color=new Color(e),this.near=t,this.far=i}clone(){return new Fog(this.color,this.near,this.far)}toJSON(){return{type:"Fog",color:this.color.getHex(),near:this.near,far:this.far}}}class Scene extends Object3D{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0,"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(e,t){return super.copy(e,t),null!==e.background&&(this.background=e.background.clone()),null!==e.environment&&(this.environment=e.environment.clone()),null!==e.fog&&(this.fog=e.fog.clone()),null!==e.overrideMaterial&&(this.overrideMaterial=e.overrideMaterial.clone()),this.autoUpdate=e.autoUpdate,this.matrixAutoUpdate=e.matrixAutoUpdate,this}toJSON(e){const t=super.toJSON(e);return null!==this.fog&&(t.object.fog=this.fog.toJSON()),t}}class InterleavedBuffer{constructor(e,t){this.isInterleavedBuffer=!0,this.array=e,this.stride=t,this.count=void 0!==e?e.length/t:0,this.usage=ri,this.updateRange={offset:0,count:-1},this.version=0,this.uuid=generateUUID()}onUploadCallback(){}set needsUpdate(e){!0===e&&this.version++}setUsage(e){return this.usage=e,this}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,t,i){e*=this.stride,i*=t.stride;for(let r=0,n=this.stride;r<n;r++)this.array[e+r]=t.array[i+r];return this}set(e,t=0){return this.array.set(e,t),this}clone(e){void 0===e.arrayBuffers&&(e.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=generateUUID()),void 0===e.arrayBuffers[this.array.buffer._uuid]&&(e.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);const t=new this.array.constructor(e.arrayBuffers[this.array.buffer._uuid]),i=new this.constructor(t,this.stride);return i.setUsage(this.usage),i}onUpload(e){return this.onUploadCallback=e,this}toJSON(e){return void 0===e.arrayBuffers&&(e.arrayBuffers={}),void 0===this.array.buffer._uuid&&(this.array.buffer._uuid=generateUUID()),void 0===e.arrayBuffers[this.array.buffer._uuid]&&(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 jn=new Vector3;class InterleavedBufferAttribute{constructor(e,t,i,r=!1){this.isInterleavedBufferAttribute=!0,this.name="",this.data=e,this.itemSize=t,this.offset=i,this.normalized=!0===r}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(e){this.data.needsUpdate=e}applyMatrix4(e){for(let t=0,i=this.data.count;t<i;t++)jn.fromBufferAttribute(this,t),jn.applyMatrix4(e),this.setXYZ(t,jn.x,jn.y,jn.z);return this}applyNormalMatrix(e){for(let t=0,i=this.count;t<i;t++)jn.fromBufferAttribute(this,t),jn.applyNormalMatrix(e),this.setXYZ(t,jn.x,jn.y,jn.z);return this}transformDirection(e){for(let t=0,i=this.count;t<i;t++)jn.fromBufferAttribute(this,t),jn.transformDirection(e),this.setXYZ(t,jn.x,jn.y,jn.z);return this}setX(e,t){return this.data.array[e*this.data.stride+this.offset]=t,this}setY(e,t){return this.data.array[e*this.data.stride+this.offset+1]=t,this}setZ(e,t){return this.data.array[e*this.data.stride+this.offset+2]=t,this}setW(e,t){return this.data.array[e*this.data.stride+this.offset+3]=t,this}getX(e){return this.data.array[e*this.data.stride+this.offset]}getY(e){return this.data.array[e*this.data.stride+this.offset+1]}getZ(e){return this.data.array[e*this.data.stride+this.offset+2]}getW(e){return this.data.array[e*this.data.stride+this.offset+3]}setXY(e,t,i){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=i,this}setXYZ(e,t,i,r){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=i,this.data.array[e+2]=r,this}setXYZW(e,t,i,r,n){return e=e*this.data.stride+this.offset,this.data.array[e+0]=t,this.data.array[e+1]=i,this.data.array[e+2]=r,this.data.array[e+3]=n,this}clone(e){if(void 0===e){console.log("THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will deinterleave buffer data.");const e=[];for(let t=0;t<this.count;t++){const i=t*this.data.stride+this.offset;for(let t=0;t<this.itemSize;t++)e.push(this.data.array[i+t])}return new BufferAttribute(new this.array.constructor(e),this.itemSize,this.normalized)}return void 0===e.interleavedBuffers&&(e.interleavedBuffers={}),void 0===e.interleavedBuffers[this.data.uuid]&&(e.interleavedBuffers[this.data.uuid]=this.data.clone(e)),new InterleavedBufferAttribute(e.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(e){if(void 0===e){console.log("THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will deinterleave buffer data.");const e=[];for(let t=0;t<this.count;t++){const i=t*this.data.stride+this.offset;for(let t=0;t<this.itemSize;t++)e.push(this.data.array[i+t])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:e,normalized:this.normalized}}return void 0===e.interleavedBuffers&&(e.interleavedBuffers={}),void 0===e.interleavedBuffers[this.data.uuid]&&(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 SpriteMaterial extends Material{constructor(e){super(),this.isSpriteMaterial=!0,this.type="SpriteMaterial",this.color=new Color(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.rotation=e.rotation,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}}let qn;const Xn=new Vector3,Yn=new Vector3,Zn=new Vector3,Jn=new Vector2,Kn=new Vector2,Qn=new Matrix4,$n=new Vector3,es=new Vector3,ts=new Vector3,is=new Vector2,rs=new Vector2,ns=new Vector2;class Sprite extends Object3D{constructor(e){if(super(),this.isSprite=!0,this.type="Sprite",void 0===qn){qn=new BufferGeometry;const e=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),t=new InterleavedBuffer(e,5);qn.setIndex([0,1,2,0,2,3]),qn.setAttribute("position",new InterleavedBufferAttribute(t,3,0,!1)),qn.setAttribute("uv",new InterleavedBufferAttribute(t,2,3,!1))}this.geometry=qn,this.material=void 0!==e?e:new SpriteMaterial,this.center=new Vector2(.5,.5)}raycast(e,t){null===e.camera&&console.error('THREE.Sprite: "Raycaster.camera" needs to be set in order to raycast against sprites.'),Yn.setFromMatrixScale(this.matrixWorld),Qn.copy(e.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(e.camera.matrixWorldInverse,this.matrixWorld),Zn.setFromMatrixPosition(this.modelViewMatrix),e.camera.isPerspectiveCamera&&!1===this.material.sizeAttenuation&&Yn.multiplyScalar(-Zn.z);const i=this.material.rotation;let r,n;0!==i&&(n=Math.cos(i),r=Math.sin(i));const s=this.center;transformVertex($n.set(-.5,-.5,0),Zn,s,Yn,r,n),transformVertex(es.set(.5,-.5,0),Zn,s,Yn,r,n),transformVertex(ts.set(.5,.5,0),Zn,s,Yn,r,n),is.set(0,0),rs.set(1,0),ns.set(1,1);let a=e.ray.intersectTriangle($n,es,ts,!1,Xn);if(null===a&&(transformVertex(es.set(-.5,.5,0),Zn,s,Yn,r,n),rs.set(0,1),a=e.ray.intersectTriangle($n,ts,es,!1,Xn),null===a))return;const o=e.ray.origin.distanceTo(Xn);o<e.near||o>e.far||t.push({distance:o,point:Xn.clone(),uv:Triangle.getUV(Xn,$n,es,ts,is,rs,ns,new Vector2),face:null,object:this})}copy(e,t){return super.copy(e,t),void 0!==e.center&&this.center.copy(e.center),this.material=e.material,this}}function transformVertex(e,t,i,r,n,s){Jn.subVectors(e,i).addScalar(.5).multiply(r),void 0!==n?(Kn.x=s*Jn.x-n*Jn.y,Kn.y=n*Jn.x+s*Jn.y):Kn.copy(Jn),e.copy(t),e.x+=Kn.x,e.y+=Kn.y,e.applyMatrix4(Qn)}const ss=new Vector3,as=new Vector3;class LOD extends Object3D{constructor(){super(),this._currentLevel=0,this.type="LOD",Object.defineProperties(this,{levels:{enumerable:!0,value:[]},isLOD:{value:!0}}),this.autoUpdate=!0}copy(e){super.copy(e,!1);const t=e.levels;for(let i=0,r=t.length;i<r;i++){const e=t[i];this.addLevel(e.object.clone(),e.distance)}return this.autoUpdate=e.autoUpdate,this}addLevel(e,t=0){t=Math.abs(t);const i=this.levels;let r;for(r=0;r<i.length&&!(t<i[r].distance);r++);return i.splice(r,0,{distance:t,object:e}),this.add(e),this}getCurrentLevel(){return this._currentLevel}getObjectForDistance(e){const t=this.levels;if(t.length>0){let i,r;for(i=1,r=t.length;i<r&&!(e<t[i].distance);i++);return t[i-1].object}return null}raycast(e,t){if(this.levels.length>0){ss.setFromMatrixPosition(this.matrixWorld);const i=e.ray.origin.distanceTo(ss);this.getObjectForDistance(i).raycast(e,t)}}update(e){const t=this.levels;if(t.length>1){ss.setFromMatrixPosition(e.matrixWorld),as.setFromMatrixPosition(this.matrixWorld);const i=ss.distanceTo(as)/e.zoom;let r,n;for(t[0].object.visible=!0,r=1,n=t.length;r<n&&i>=t[r].distance;r++)t[r-1].object.visible=!1,t[r].object.visible=!0;for(this._currentLevel=r-1;r<n;r++)t[r].object.visible=!1}}toJSON(e){const t=super.toJSON(e);!1===this.autoUpdate&&(t.object.autoUpdate=!1),t.object.levels=[];const i=this.levels;for(let r=0,n=i.length;r<n;r++){const e=i[r];t.object.levels.push({object:e.object.uuid,distance:e.distance})}return t}}const os=new Vector3,ls=new Vector4,cs=new Vector4,hs=new Vector3,us=new Matrix4;class SkinnedMesh extends Mesh{constructor(e,t){super(e,t),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode="attached",this.bindMatrix=new Matrix4,this.bindMatrixInverse=new Matrix4}copy(e,t){return super.copy(e,t),this.bindMode=e.bindMode,this.bindMatrix.copy(e.bindMatrix),this.bindMatrixInverse.copy(e.bindMatrixInverse),this.skeleton=e.skeleton,this}bind(e,t){this.skeleton=e,void 0===t&&(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),t=this.matrixWorld),this.bindMatrix.copy(t),this.bindMatrixInverse.copy(t).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){const e=new Vector4,t=this.geometry.attributes.skinWeight;for(let i=0,r=t.count;i<r;i++){e.fromBufferAttribute(t,i);const r=1/e.manhattanLength();r!==1/0?e.multiplyScalar(r):e.set(1,0,0,0),t.setXYZW(i,e.x,e.y,e.z,e.w)}}updateMatrixWorld(e){super.updateMatrixWorld(e),"attached"===this.bindMode?this.bindMatrixInverse.copy(this.matrixWorld).invert():"detached"===this.bindMode?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn("THREE.SkinnedMesh: Unrecognized bindMode: "+this.bindMode)}boneTransform(e,t){const i=this.skeleton,r=this.geometry;ls.fromBufferAttribute(r.attributes.skinIndex,e),cs.fromBufferAttribute(r.attributes.skinWeight,e),os.copy(t).applyMatrix4(this.bindMatrix),t.set(0,0,0);for(let n=0;n<4;n++){const e=cs.getComponent(n);if(0!==e){const r=ls.getComponent(n);us.multiplyMatrices(i.bones[r].matrixWorld,i.boneInverses[r]),t.addScaledVector(hs.copy(os).applyMatrix4(us),e)}}return t.applyMatrix4(this.bindMatrixInverse)}}class Bone extends Object3D{constructor(){super(),this.isBone=!0,this.type="Bone"}}class DataTexture extends Texture{constructor(e=null,t=1,i=1,r,n,s,a,o,l=pe,c=pe,h,u){super(null,s,a,o,l,c,r,n,h,u),this.isDataTexture=!0,this.image={data:e,width:t,height:i},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}}const ds=new Matrix4,ps=new Matrix4;class Skeleton{constructor(e=[],t=[]){this.uuid=generateUUID(),this.bones=e.slice(0),this.boneInverses=t,this.boneMatrices=null,this.boneTexture=null,this.boneTextureSize=0,this.frame=-1,this.init()}init(){const e=this.bones,t=this.boneInverses;if(this.boneMatrices=new Float32Array(16*e.length),0===t.length)this.calculateInverses();else if(e.length!==t.length){console.warn("THREE.Skeleton: Number of inverse bone matrices does not match amount of bones."),this.boneInverses=[];for(let e=0,t=this.bones.length;e<t;e++)this.boneInverses.push(new Matrix4)}}calculateInverses(){this.boneInverses.length=0;for(let e=0,t=this.bones.length;e<t;e++){const t=new Matrix4;this.bones[e]&&t.copy(this.bones[e].matrixWorld).invert(),this.boneInverses.push(t)}}pose(){for(let e=0,t=this.bones.length;e<t;e++){const t=this.bones[e];t&&t.matrixWorld.copy(this.boneInverses[e]).invert()}for(let e=0,t=this.bones.length;e<t;e++){const t=this.bones[e];t&&(t.parent&&t.parent.isBone?(t.matrix.copy(t.parent.matrixWorld).invert(),t.matrix.multiply(t.matrixWorld)):t.matrix.copy(t.matrixWorld),t.matrix.decompose(t.position,t.quaternion,t.scale))}}update(){const e=this.bones,t=this.boneInverses,i=this.boneMatrices,r=this.boneTexture;for(let n=0,s=e.length;n<s;n++){const r=e[n]?e[n].matrixWorld:ps;ds.multiplyMatrices(r,t[n]),ds.toArray(i,16*n)}null!==r&&(r.needsUpdate=!0)}clone(){return new Skeleton(this.bones,this.boneInverses)}computeBoneTexture(){let e=Math.sqrt(4*this.bones.length);e=ceilPowerOfTwo(e),e=Math.max(e,4);const t=new Float32Array(e*e*4);t.set(this.boneMatrices);const i=new DataTexture(t,e,e,Ne,Le);return i.needsUpdate=!0,this.boneMatrices=t,this.boneTexture=i,this.boneTextureSize=e,this}getBoneByName(e){for(let t=0,i=this.bones.length;t<i;t++){const i=this.bones[t];if(i.name===e)return i}}dispose(){null!==this.boneTexture&&(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(e,t){this.uuid=e.uuid;for(let i=0,r=e.bones.length;i<r;i++){const r=e.bones[i];let n=t[r];void 0===n&&(console.warn("THREE.Skeleton: No bone found with UUID:",r),n=new Bone),this.bones.push(n),this.boneInverses.push((new Matrix4).fromArray(e.boneInverses[i]))}return this.init(),this}toJSON(){const e={metadata:{version:4.5,type:"Skeleton",generator:"Skeleton.toJSON"},bones:[],boneInverses:[]};e.uuid=this.uuid;const t=this.bones,i=this.boneInverses;for(let r=0,n=t.length;r<n;r++){const n=t[r];e.bones.push(n.uuid);const s=i[r];e.boneInverses.push(s.toArray())}return e}}class InstancedBufferAttribute extends BufferAttribute{constructor(e,t,i,r=1){"number"===typeof i&&(r=i,i=!1,console.error("THREE.InstancedBufferAttribute: The constructor now expects normalized as the third argument.")),super(e,t,i),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=r}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}toJSON(){const e=super.toJSON();return e.meshPerAttribute=this.meshPerAttribute,e.isInstancedBufferAttribute=!0,e}}const ms=new Matrix4,fs=new Matrix4,gs=[],vs=new Mesh;class InstancedMesh extends Mesh{constructor(e,t,i){super(e,t),this.isInstancedMesh=!0,this.instanceMatrix=new InstancedBufferAttribute(new Float32Array(16*i),16),this.instanceColor=null,this.count=i,this.frustumCulled=!1}copy(e,t){return super.copy(e,t),this.instanceMatrix.copy(e.instanceMatrix),null!==e.instanceColor&&(this.instanceColor=e.instanceColor.clone()),this.count=e.count,this}getColorAt(e,t){t.fromArray(this.instanceColor.array,3*e)}getMatrixAt(e,t){t.fromArray(this.instanceMatrix.array,16*e)}raycast(e,t){const i=this.matrixWorld,r=this.count;if(vs.geometry=this.geometry,vs.material=this.material,void 0!==vs.material)for(let n=0;n<r;n++){this.getMatrixAt(n,ms),fs.multiplyMatrices(i,ms),vs.matrixWorld=fs,vs.raycast(e,gs);for(let e=0,i=gs.length;e<i;e++){const i=gs[e];i.instanceId=n,i.object=this,t.push(i)}gs.length=0}}setColorAt(e,t){null===this.instanceColor&&(this.instanceColor=new InstancedBufferAttribute(new Float32Array(3*this.instanceMatrix.count),3)),t.toArray(this.instanceColor.array,3*e)}setMatrixAt(e,t){t.toArray(this.instanceMatrix.array,16*e)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:"dispose"})}}class LineBasicMaterial extends Material{constructor(e){super(),this.isLineBasicMaterial=!0,this.type="LineBasicMaterial",this.color=new Color(16777215),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.linewidth=e.linewidth,this.linecap=e.linecap,this.linejoin=e.linejoin,this.fog=e.fog,this}}const xs=new Vector3,ys=new Vector3,_s=new Matrix4,bs=new Ray,Ms=new Sphere;class Line extends Object3D{constructor(e=new BufferGeometry,t=new LineBasicMaterial){super(),this.isLine=!0,this.type="Line",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=e.material,this.geometry=e.geometry,this}computeLineDistances(){const e=this.geometry;if(null===e.index){const t=e.attributes.position,i=[0];for(let e=1,r=t.count;e<r;e++)xs.fromBufferAttribute(t,e-1),ys.fromBufferAttribute(t,e),i[e]=i[e-1],i[e]+=xs.distanceTo(ys);e.setAttribute("lineDistance",new Float32BufferAttribute(i,1))}else console.warn("THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}raycast(e,t){const i=this.geometry,r=this.matrixWorld,n=e.params.Line.threshold,s=i.drawRange;if(null===i.boundingSphere&&i.computeBoundingSphere(),Ms.copy(i.boundingSphere),Ms.applyMatrix4(r),Ms.radius+=n,!1===e.ray.intersectsSphere(Ms))return;_s.copy(r).invert(),bs.copy(e.ray).applyMatrix4(_s);const a=n/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a,l=new Vector3,c=new Vector3,h=new Vector3,u=new Vector3,d=this.isLineSegments?2:1,p=i.index,m=i.attributes.position;if(null!==p){for(let i=Math.max(0,s.start),r=Math.min(p.count,s.start+s.count)-1;i<r;i+=d){const r=p.getX(i),n=p.getX(i+1);l.fromBufferAttribute(m,r),c.fromBufferAttribute(m,n);if(bs.distanceSqToSegment(l,c,u,h)>o)continue;u.applyMatrix4(this.matrixWorld);const s=e.ray.origin.distanceTo(u);s<e.near||s>e.far||t.push({distance:s,point:h.clone().applyMatrix4(this.matrixWorld),index:i,face:null,faceIndex:null,object:this})}}else{for(let i=Math.max(0,s.start),r=Math.min(m.count,s.start+s.count)-1;i<r;i+=d){l.fromBufferAttribute(m,i),c.fromBufferAttribute(m,i+1);if(bs.distanceSqToSegment(l,c,u,h)>o)continue;u.applyMatrix4(this.matrixWorld);const r=e.ray.origin.distanceTo(u);r<e.near||r>e.far||t.push({distance:r,point:h.clone().applyMatrix4(this.matrixWorld),index:i,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){const i=e[t[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=i.length;e<t;e++){const t=i[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[t]=e}}}}}const Ss=new Vector3,ws=new Vector3;class LineSegments extends Line{constructor(e,t){super(e,t),this.isLineSegments=!0,this.type="LineSegments"}computeLineDistances(){const e=this.geometry;if(null===e.index){const t=e.attributes.position,i=[];for(let e=0,r=t.count;e<r;e+=2)Ss.fromBufferAttribute(t,e),ws.fromBufferAttribute(t,e+1),i[e]=0===e?0:i[e-1],i[e+1]=i[e]+Ss.distanceTo(ws);e.setAttribute("lineDistance",new Float32BufferAttribute(i,1))}else console.warn("THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.");return this}}class LineLoop extends Line{constructor(e,t){super(e,t),this.isLineLoop=!0,this.type="LineLoop"}}class PointsMaterial extends Material{constructor(e){super(),this.isPointsMaterial=!0,this.type="PointsMaterial",this.color=new Color(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.map=e.map,this.alphaMap=e.alphaMap,this.size=e.size,this.sizeAttenuation=e.sizeAttenuation,this.fog=e.fog,this}}const Ts=new Matrix4,As=new Ray,Cs=new Sphere,Es=new Vector3;class Points extends Object3D{constructor(e=new BufferGeometry,t=new PointsMaterial){super(),this.isPoints=!0,this.type="Points",this.geometry=e,this.material=t,this.updateMorphTargets()}copy(e,t){return super.copy(e,t),this.material=e.material,this.geometry=e.geometry,this}raycast(e,t){const i=this.geometry,r=this.matrixWorld,n=e.params.Points.threshold,s=i.drawRange;if(null===i.boundingSphere&&i.computeBoundingSphere(),Cs.copy(i.boundingSphere),Cs.applyMatrix4(r),Cs.radius+=n,!1===e.ray.intersectsSphere(Cs))return;Ts.copy(r).invert(),As.copy(e.ray).applyMatrix4(Ts);const a=n/((this.scale.x+this.scale.y+this.scale.z)/3),o=a*a,l=i.index,c=i.attributes.position;if(null!==l){for(let i=Math.max(0,s.start),n=Math.min(l.count,s.start+s.count);i<n;i++){const n=l.getX(i);Es.fromBufferAttribute(c,n),testPoint(Es,n,o,r,e,t,this)}}else{for(let i=Math.max(0,s.start),n=Math.min(c.count,s.start+s.count);i<n;i++)Es.fromBufferAttribute(c,i),testPoint(Es,i,o,r,e,t,this)}}updateMorphTargets(){const e=this.geometry.morphAttributes,t=Object.keys(e);if(t.length>0){const i=e[t[0]];if(void 0!==i){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let e=0,t=i.length;e<t;e++){const t=i[e].name||String(e);this.morphTargetInfluences.push(0),this.morphTargetDictionary[t]=e}}}}}function testPoint(e,t,i,r,n,s,a){const o=As.distanceSqToPoint(e);if(o<i){const i=new Vector3;As.closestPointToPoint(e,i),i.applyMatrix4(r);const l=n.ray.origin.distanceTo(i);if(l<n.near||l>n.far)return;s.push({distance:l,distanceToRay:Math.sqrt(o),point:i,index:t,face:null,object:a})}}class VideoTexture extends Texture{constructor(e,t,i,r,n,s,a,o,l){super(e,t,i,r,n,s,a,o,l),this.isVideoTexture=!0,this.minFilter=void 0!==s?s:xe,this.magFilter=void 0!==n?n:xe,this.generateMipmaps=!1;const c=this;"requestVideoFrameCallback"in e&&e.requestVideoFrameCallback((function updateVideo(){c.needsUpdate=!0,e.requestVideoFrameCallback(updateVideo)}))}clone(){return new this.constructor(this.image).copy(this)}update(){const e=this.image;!1==="requestVideoFrameCallback"in e&&e.readyState>=e.HAVE_CURRENT_DATA&&(this.needsUpdate=!0)}}class FramebufferTexture extends Texture{constructor(e,t,i){super({width:e,height:t}),this.isFramebufferTexture=!0,this.format=i,this.magFilter=pe,this.minFilter=pe,this.generateMipmaps=!1,this.needsUpdate=!0}}class CompressedTexture extends Texture{constructor(e,t,i,r,n,s,a,o,l,c,h,u){super(null,s,a,o,l,c,r,n,h,u),this.isCompressedTexture=!0,this.image={width:t,height:i},this.mipmaps=e,this.flipY=!1,this.generateMipmaps=!1}}class CanvasTexture extends Texture{constructor(e,t,i,r,n,s,a,o,l){super(e,t,i,r,n,s,a,o,l),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Curve{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(e,t){const i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){const t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){const e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const t=[];let i,r=this.getPoint(0),n=0;t.push(0);for(let s=1;s<=e;s++)i=this.getPoint(s/e),n+=i.distanceTo(r),t.push(n),r=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){const i=this.getLengths();let r=0;const n=i.length;let s;s=t||e*i[n-1];let a,o=0,l=n-1;for(;o<=l;)if(r=Math.floor(o+(l-o)/2),a=i[r]-s,a<0)o=r+1;else{if(!(a>0)){l=r;break}l=r-1}if(r=l,i[r]===s)return r/(n-1);const c=i[r];return(r+(s-c)/(i[r+1]-c))/(n-1)}getTangent(e,t){const i=1e-4;let r=e-i,n=e+i;r<0&&(r=0),n>1&&(n=1);const s=this.getPoint(r),a=this.getPoint(n),o=t||(s.isVector2?new Vector2:new Vector3);return o.copy(a).sub(s).normalize(),o}getTangentAt(e,t){const i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){const i=new Vector3,r=[],n=[],s=[],a=new Vector3,o=new Matrix4;for(let d=0;d<=e;d++){const t=d/e;r[d]=this.getTangentAt(t,new Vector3)}n[0]=new Vector3,s[0]=new Vector3;let l=Number.MAX_VALUE;const c=Math.abs(r[0].x),h=Math.abs(r[0].y),u=Math.abs(r[0].z);c<=l&&(l=c,i.set(1,0,0)),h<=l&&(l=h,i.set(0,1,0)),u<=l&&i.set(0,0,1),a.crossVectors(r[0],i).normalize(),n[0].crossVectors(r[0],a),s[0].crossVectors(r[0],n[0]);for(let d=1;d<=e;d++){if(n[d]=n[d-1].clone(),s[d]=s[d-1].clone(),a.crossVectors(r[d-1],r[d]),a.length()>Number.EPSILON){a.normalize();const e=Math.acos(clamp(r[d-1].dot(r[d]),-1,1));n[d].applyMatrix4(o.makeRotationAxis(a,e))}s[d].crossVectors(r[d],n[d])}if(!0===t){let t=Math.acos(clamp(n[0].dot(n[e]),-1,1));t/=e,r[0].dot(a.crossVectors(n[0],n[e]))>0&&(t=-t);for(let i=1;i<=e;i++)n[i].applyMatrix4(o.makeRotationAxis(r[i],t*i)),s[i].crossVectors(r[i],n[i])}return{tangents:r,normals:n,binormals:s}}clone(){return(new this.constructor).copy(this)}copy(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}toJSON(){const e={metadata:{version:4.5,type:"Curve",generator:"Curve.toJSON"}};return e.arcLengthDivisions=this.arcLengthDivisions,e.type=this.type,e}fromJSON(e){return this.arcLengthDivisions=e.arcLengthDivisions,this}}class EllipseCurve extends Curve{constructor(e=0,t=0,i=1,r=1,n=0,s=2*Math.PI,a=!1,o=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=e,this.aY=t,this.xRadius=i,this.yRadius=r,this.aStartAngle=n,this.aEndAngle=s,this.aClockwise=a,this.aRotation=o}getPoint(e,t){const i=t||new Vector2,r=2*Math.PI;let n=this.aEndAngle-this.aStartAngle;const s=Math.abs(n)<Number.EPSILON;for(;n<0;)n+=r;for(;n>r;)n-=r;n<Number.EPSILON&&(n=s?0:r),!0!==this.aClockwise||s||(n===r?n=-r:n-=r);const a=this.aStartAngle+e*n;let o=this.aX+this.xRadius*Math.cos(a),l=this.aY+this.yRadius*Math.sin(a);if(0!==this.aRotation){const e=Math.cos(this.aRotation),t=Math.sin(this.aRotation),i=o-this.aX,r=l-this.aY;o=i*e-r*t+this.aX,l=i*t+r*e+this.aY}return i.set(o,l)}copy(e){return super.copy(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this}toJSON(){const e=super.toJSON();return e.aX=this.aX,e.aY=this.aY,e.xRadius=this.xRadius,e.yRadius=this.yRadius,e.aStartAngle=this.aStartAngle,e.aEndAngle=this.aEndAngle,e.aClockwise=this.aClockwise,e.aRotation=this.aRotation,e}fromJSON(e){return super.fromJSON(e),this.aX=e.aX,this.aY=e.aY,this.xRadius=e.xRadius,this.yRadius=e.yRadius,this.aStartAngle=e.aStartAngle,this.aEndAngle=e.aEndAngle,this.aClockwise=e.aClockwise,this.aRotation=e.aRotation,this}}class ArcCurve extends EllipseCurve{constructor(e,t,i,r,n,s){super(e,t,i,i,r,n,s),this.isArcCurve=!0,this.type="ArcCurve"}}function CubicPoly(){let e=0,t=0,i=0,r=0;function init(n,s,a,o){e=n,t=a,i=-3*n+3*s-2*a-o,r=2*n-2*s+a+o}return{initCatmullRom:function(e,t,i,r,n){init(t,i,n*(i-e),n*(r-t))},initNonuniformCatmullRom:function(e,t,i,r,n,s,a){let o=(t-e)/n-(i-e)/(n+s)+(i-t)/s,l=(i-t)/s-(r-t)/(s+a)+(r-i)/a;o*=s,l*=s,init(t,i,o,l)},calc:function(n){const s=n*n;return e+t*n+i*s+r*(s*n)}}}const Ls=new Vector3,Ps=new CubicPoly,Rs=new CubicPoly,Ds=new CubicPoly;class CatmullRomCurve3 extends Curve{constructor(e=[],t=!1,i="centripetal",r=.5){super(),this.isCatmullRomCurve3=!0,this.type="CatmullRomCurve3",this.points=e,this.closed=t,this.curveType=i,this.tension=r}getPoint(e,t=new Vector3){const i=t,r=this.points,n=r.length,s=(n-(this.closed?0:1))*e;let a,o,l=Math.floor(s),c=s-l;this.closed?l+=l>0?0:(Math.floor(Math.abs(l)/n)+1)*n:0===c&&l===n-1&&(l=n-2,c=1),this.closed||l>0?a=r[(l-1)%n]:(Ls.subVectors(r[0],r[1]).add(r[0]),a=Ls);const h=r[l%n],u=r[(l+1)%n];if(this.closed||l+2<n?o=r[(l+2)%n]:(Ls.subVectors(r[n-1],r[n-2]).add(r[n-1]),o=Ls),"centripetal"===this.curveType||"chordal"===this.curveType){const e="chordal"===this.curveType?.5:.25;let t=Math.pow(a.distanceToSquared(h),e),i=Math.pow(h.distanceToSquared(u),e),r=Math.pow(u.distanceToSquared(o),e);i<1e-4&&(i=1),t<1e-4&&(t=i),r<1e-4&&(r=i),Ps.initNonuniformCatmullRom(a.x,h.x,u.x,o.x,t,i,r),Rs.initNonuniformCatmullRom(a.y,h.y,u.y,o.y,t,i,r),Ds.initNonuniformCatmullRom(a.z,h.z,u.z,o.z,t,i,r)}else"catmullrom"===this.curveType&&(Ps.initCatmullRom(a.x,h.x,u.x,o.x,this.tension),Rs.initCatmullRom(a.y,h.y,u.y,o.y,this.tension),Ds.initCatmullRom(a.z,h.z,u.z,o.z,this.tension));return i.set(Ps.calc(c),Rs.calc(c),Ds.calc(c)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t<i;t++){const i=e.points[t];this.points.push(i.clone())}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}toJSON(){const e=super.toJSON();e.points=[];for(let t=0,i=this.points.length;t<i;t++){const i=this.points[t];e.points.push(i.toArray())}return e.closed=this.closed,e.curveType=this.curveType,e.tension=this.tension,e}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,i=e.points.length;t<i;t++){const i=e.points[t];this.points.push((new Vector3).fromArray(i))}return this.closed=e.closed,this.curveType=e.curveType,this.tension=e.tension,this}}function CatmullRom(e,t,i,r,n){const s=.5*(r-t),a=.5*(n-i),o=e*e;return(2*i-2*r+s+a)*(e*o)+(-3*i+3*r-2*s-a)*o+s*e+i}function QuadraticBezier(e,t,i,r){return function QuadraticBezierP0(e,t){const i=1-e;return i*i*t}(e,t)+function QuadraticBezierP1(e,t){return 2*(1-e)*e*t}(e,i)+function QuadraticBezierP2(e,t){return e*e*t}(e,r)}function CubicBezier(e,t,i,r,n){return function CubicBezierP0(e,t){const i=1-e;return i*i*i*t}(e,t)+function CubicBezierP1(e,t){const i=1-e;return 3*i*i*e*t}(e,i)+function CubicBezierP2(e,t){return 3*(1-e)*e*e*t}(e,r)+function CubicBezierP3(e,t){return e*e*e*t}(e,n)}class CubicBezierCurve extends Curve{constructor(e=new Vector2,t=new Vector2,i=new Vector2,r=new Vector2){super(),this.isCubicBezierCurve=!0,this.type="CubicBezierCurve",this.v0=e,this.v1=t,this.v2=i,this.v3=r}getPoint(e,t=new Vector2){const i=t,r=this.v0,n=this.v1,s=this.v2,a=this.v3;return i.set(CubicBezier(e,r.x,n.x,s.x,a.x),CubicBezier(e,r.y,n.y,s.y,a.y)),i}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this}}class CubicBezierCurve3 extends Curve{constructor(e=new Vector3,t=new Vector3,i=new Vector3,r=new Vector3){super(),this.isCubicBezierCurve3=!0,this.type="CubicBezierCurve3",this.v0=e,this.v1=t,this.v2=i,this.v3=r}getPoint(e,t=new Vector3){const i=t,r=this.v0,n=this.v1,s=this.v2,a=this.v3;return i.set(CubicBezier(e,r.x,n.x,s.x,a.x),CubicBezier(e,r.y,n.y,s.y,a.y),CubicBezier(e,r.z,n.z,s.z,a.z)),i}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this.v3.copy(e.v3),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e.v3=this.v3.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this.v3.fromArray(e.v3),this}}class LineCurve extends Curve{constructor(e=new Vector2,t=new Vector2){super(),this.isLineCurve=!0,this.type="LineCurve",this.v1=e,this.v2=t}getPoint(e,t=new Vector2){const i=t;return 1===e?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(e).add(this.v1)),i}getPointAt(e,t){return this.getPoint(e,t)}getTangent(e,t){const i=t||new Vector2;return i.copy(this.v2).sub(this.v1).normalize(),i}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}class LineCurve3 extends Curve{constructor(e=new Vector3,t=new Vector3){super(),this.isLineCurve3=!0,this.type="LineCurve3",this.v1=e,this.v2=t}getPoint(e,t=new Vector3){const i=t;return 1===e?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(e).add(this.v1)),i}getPointAt(e,t){return this.getPoint(e,t)}copy(e){return super.copy(e),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}class QuadraticBezierCurve extends Curve{constructor(e=new Vector2,t=new Vector2,i=new Vector2){super(),this.isQuadraticBezierCurve=!0,this.type="QuadraticBezierCurve",this.v0=e,this.v1=t,this.v2=i}getPoint(e,t=new Vector2){const i=t,r=this.v0,n=this.v1,s=this.v2;return i.set(QuadraticBezier(e,r.x,n.x,s.x),QuadraticBezier(e,r.y,n.y,s.y)),i}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}class QuadraticBezierCurve3 extends Curve{constructor(e=new Vector3,t=new Vector3,i=new Vector3){super(),this.isQuadraticBezierCurve3=!0,this.type="QuadraticBezierCurve3",this.v0=e,this.v1=t,this.v2=i}getPoint(e,t=new Vector3){const i=t,r=this.v0,n=this.v1,s=this.v2;return i.set(QuadraticBezier(e,r.x,n.x,s.x),QuadraticBezier(e,r.y,n.y,s.y),QuadraticBezier(e,r.z,n.z,s.z)),i}copy(e){return super.copy(e),this.v0.copy(e.v0),this.v1.copy(e.v1),this.v2.copy(e.v2),this}toJSON(){const e=super.toJSON();return e.v0=this.v0.toArray(),e.v1=this.v1.toArray(),e.v2=this.v2.toArray(),e}fromJSON(e){return super.fromJSON(e),this.v0.fromArray(e.v0),this.v1.fromArray(e.v1),this.v2.fromArray(e.v2),this}}class SplineCurve extends Curve{constructor(e=[]){super(),this.isSplineCurve=!0,this.type="SplineCurve",this.points=e}getPoint(e,t=new Vector2){const i=t,r=this.points,n=(r.length-1)*e,s=Math.floor(n),a=n-s,o=r[0===s?s:s-1],l=r[s],c=r[s>r.length-2?r.length-1:s+1],h=r[s>r.length-3?r.length-1:s+2];return i.set(CatmullRom(a,o.x,l.x,c.x,h.x),CatmullRom(a,o.y,l.y,c.y,h.y)),i}copy(e){super.copy(e),this.points=[];for(let t=0,i=e.points.length;t<i;t++){const i=e.points[t];this.points.push(i.clone())}return this}toJSON(){const e=super.toJSON();e.points=[];for(let t=0,i=this.points.length;t<i;t++){const i=this.points[t];e.points.push(i.toArray())}return e}fromJSON(e){super.fromJSON(e),this.points=[];for(let t=0,i=e.points.length;t<i;t++){const i=e.points[t];this.points.push((new Vector2).fromArray(i))}return this}}var Is=Object.freeze({__proto__:null,ArcCurve:ArcCurve,CatmullRomCurve3:CatmullRomCurve3,CubicBezierCurve:CubicBezierCurve,CubicBezierCurve3:CubicBezierCurve3,EllipseCurve:EllipseCurve,LineCurve:LineCurve,LineCurve3:LineCurve3,QuadraticBezierCurve:QuadraticBezierCurve,QuadraticBezierCurve3:QuadraticBezierCurve3,SplineCurve:SplineCurve});class CurvePath extends Curve{constructor(){super(),this.type="CurvePath",this.curves=[],this.autoClose=!1}add(e){this.curves.push(e)}closePath(){const e=this.curves[0].getPoint(0),t=this.curves[this.curves.length-1].getPoint(1);e.equals(t)||this.curves.push(new LineCurve(t,e))}getPoint(e,t){const i=e*this.getLength(),r=this.getCurveLengths();let n=0;for(;n<r.length;){if(r[n]>=i){const e=r[n]-i,s=this.curves[n],a=s.getLength(),o=0===a?0:1-e/a;return s.getPointAt(o,t)}n++}return null}getLength(){const e=this.getCurveLengths();return e[e.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const e=[];let t=0;for(let i=0,r=this.curves.length;i<r;i++)t+=this.curves[i].getLength(),e.push(t);return this.cacheLengths=e,e}getSpacedPoints(e=40){const t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return this.autoClose&&t.push(t[0]),t}getPoints(e=12){const t=[];let i;for(let r=0,n=this.curves;r<n.length;r++){const s=n[r],a=s.isEllipseCurve?2*e:s.isLineCurve||s.isLineCurve3?1:s.isSplineCurve?e*s.points.length:e,o=s.getPoints(a);for(let e=0;e<o.length;e++){const r=o[e];i&&i.equals(r)||(t.push(r),i=r)}}return this.autoClose&&t.length>1&&!t[t.length-1].equals(t[0])&&t.push(t[0]),t}copy(e){super.copy(e),this.curves=[];for(let t=0,i=e.curves.length;t<i;t++){const i=e.curves[t];this.curves.push(i.clone())}return this.autoClose=e.autoClose,this}toJSON(){const e=super.toJSON();e.autoClose=this.autoClose,e.curves=[];for(let t=0,i=this.curves.length;t<i;t++){const i=this.curves[t];e.curves.push(i.toJSON())}return e}fromJSON(e){super.fromJSON(e),this.autoClose=e.autoClose,this.curves=[];for(let t=0,i=e.curves.length;t<i;t++){const i=e.curves[t];this.curves.push((new Is[i.type]).fromJSON(i))}return this}}class Path extends CurvePath{constructor(e){super(),this.type="Path",this.currentPoint=new Vector2,e&&this.setFromPoints(e)}setFromPoints(e){this.moveTo(e[0].x,e[0].y);for(let t=1,i=e.length;t<i;t++)this.lineTo(e[t].x,e[t].y);return this}moveTo(e,t){return this.currentPoint.set(e,t),this}lineTo(e,t){const i=new LineCurve(this.currentPoint.clone(),new Vector2(e,t));return this.curves.push(i),this.currentPoint.set(e,t),this}quadraticCurveTo(e,t,i,r){const n=new QuadraticBezierCurve(this.currentPoint.clone(),new Vector2(e,t),new Vector2(i,r));return this.curves.push(n),this.currentPoint.set(i,r),this}bezierCurveTo(e,t,i,r,n,s){const a=new CubicBezierCurve(this.currentPoint.clone(),new Vector2(e,t),new Vector2(i,r),new Vector2(n,s));return this.curves.push(a),this.currentPoint.set(n,s),this}splineThru(e){const t=[this.currentPoint.clone()].concat(e),i=new SplineCurve(t);return this.curves.push(i),this.currentPoint.copy(e[e.length-1]),this}arc(e,t,i,r,n,s){const a=this.currentPoint.x,o=this.currentPoint.y;return this.absarc(e+a,t+o,i,r,n,s),this}absarc(e,t,i,r,n,s){return this.absellipse(e,t,i,i,r,n,s),this}ellipse(e,t,i,r,n,s,a,o){const l=this.currentPoint.x,c=this.currentPoint.y;return this.absellipse(e+l,t+c,i,r,n,s,a,o),this}absellipse(e,t,i,r,n,s,a,o){const l=new EllipseCurve(e,t,i,r,n,s,a,o);if(this.curves.length>0){const e=l.getPoint(0);e.equals(this.currentPoint)||this.lineTo(e.x,e.y)}this.curves.push(l);const c=l.getPoint(1);return this.currentPoint.copy(c),this}copy(e){return super.copy(e),this.currentPoint.copy(e.currentPoint),this}toJSON(){const e=super.toJSON();return e.currentPoint=this.currentPoint.toArray(),e}fromJSON(e){return super.fromJSON(e),this.currentPoint.fromArray(e.currentPoint),this}}class LatheGeometry extends BufferGeometry{constructor(e=[new Vector2(0,-.5),new Vector2(.5,0),new Vector2(0,.5)],t=12,i=0,r=2*Math.PI){super(),this.type="LatheGeometry",this.parameters={points:e,segments:t,phiStart:i,phiLength:r},t=Math.floor(t),r=clamp(r,0,2*Math.PI);const n=[],s=[],a=[],o=[],l=[],c=1/t,h=new Vector3,u=new Vector2,d=new Vector3,p=new Vector3,m=new Vector3;let f=0,g=0;for(let x=0;x<=e.length-1;x++)switch(x){case 0:f=e[x+1].x-e[x].x,g=e[x+1].y-e[x].y,d.x=1*g,d.y=-f,d.z=0*g,m.copy(d),d.normalize(),o.push(d.x,d.y,d.z);break;case e.length-1:o.push(m.x,m.y,m.z);break;default:f=e[x+1].x-e[x].x,g=e[x+1].y-e[x].y,d.x=1*g,d.y=-f,d.z=0*g,p.copy(d),d.x+=m.x,d.y+=m.y,d.z+=m.z,d.normalize(),o.push(d.x,d.y,d.z),m.copy(p)}for(let x=0;x<=t;x++){const n=i+x*c*r,d=Math.sin(n),p=Math.cos(n);for(let i=0;i<=e.length-1;i++){h.x=e[i].x*d,h.y=e[i].y,h.z=e[i].x*p,s.push(h.x,h.y,h.z),u.x=x/t,u.y=i/(e.length-1),a.push(u.x,u.y);const r=o[3*i+0]*d,n=o[3*i+1],c=o[3*i+0]*p;l.push(r,n,c)}}for(let x=0;x<t;x++)for(let t=0;t<e.length-1;t++){const i=t+x*e.length,r=i,s=i+e.length,a=i+e.length+1,o=i+1;n.push(r,s,o),n.push(a,o,s)}this.setIndex(n),this.setAttribute("position",new Float32BufferAttribute(s,3)),this.setAttribute("uv",new Float32BufferAttribute(a,2)),this.setAttribute("normal",new Float32BufferAttribute(l,3))}static fromJSON(e){return new LatheGeometry(e.points,e.segments,e.phiStart,e.phiLength)}}class CapsuleGeometry extends LatheGeometry{constructor(e=1,t=1,i=4,r=8){const n=new Path;n.absarc(0,-t/2,e,1.5*Math.PI,0),n.absarc(0,t/2,e,0,.5*Math.PI),super(n.getPoints(i),r),this.type="CapsuleGeometry",this.parameters={radius:e,height:t,capSegments:i,radialSegments:r}}static fromJSON(e){return new CapsuleGeometry(e.radius,e.length,e.capSegments,e.radialSegments)}}class CircleGeometry extends BufferGeometry{constructor(e=1,t=8,i=0,r=2*Math.PI){super(),this.type="CircleGeometry",this.parameters={radius:e,segments:t,thetaStart:i,thetaLength:r},t=Math.max(3,t);const n=[],s=[],a=[],o=[],l=new Vector3,c=new Vector2;s.push(0,0,0),a.push(0,0,1),o.push(.5,.5);for(let h=0,u=3;h<=t;h++,u+=3){const n=i+h/t*r;l.x=e*Math.cos(n),l.y=e*Math.sin(n),s.push(l.x,l.y,l.z),a.push(0,0,1),c.x=(s[u]/e+1)/2,c.y=(s[u+1]/e+1)/2,o.push(c.x,c.y)}for(let h=1;h<=t;h++)n.push(h,h+1,0);this.setIndex(n),this.setAttribute("position",new Float32BufferAttribute(s,3)),this.setAttribute("normal",new Float32BufferAttribute(a,3)),this.setAttribute("uv",new Float32BufferAttribute(o,2))}static fromJSON(e){return new CircleGeometry(e.radius,e.segments,e.thetaStart,e.thetaLength)}}class CylinderGeometry extends BufferGeometry{constructor(e=1,t=1,i=1,r=8,n=1,s=!1,a=0,o=2*Math.PI){super(),this.type="CylinderGeometry",this.parameters={radiusTop:e,radiusBottom:t,height:i,radialSegments:r,heightSegments:n,openEnded:s,thetaStart:a,thetaLength:o};const l=this;r=Math.floor(r),n=Math.floor(n);const c=[],h=[],u=[],d=[];let p=0;const m=[],f=i/2;let g=0;function generateCap(i){const n=p,s=new Vector2,m=new Vector3;let x=0;const y=!0===i?e:t,_=!0===i?1:-1;for(let e=1;e<=r;e++)h.push(0,f*_,0),u.push(0,_,0),d.push(.5,.5),p++;const b=p;for(let e=0;e<=r;e++){const t=e/r*o+a,i=Math.cos(t),n=Math.sin(t);m.x=y*n,m.y=f*_,m.z=y*i,h.push(m.x,m.y,m.z),u.push(0,_,0),s.x=.5*i+.5,s.y=.5*n*_+.5,d.push(s.x,s.y),p++}for(let e=0;e<r;e++){const t=n+e,r=b+e;!0===i?c.push(r,r+1,t):c.push(r+1,r,t),x+=3}l.addGroup(g,x,!0===i?1:2),g+=x}!function generateTorso(){const s=new Vector3,x=new Vector3;let y=0;const _=(t-e)/i;for(let l=0;l<=n;l++){const c=[],g=l/n,y=g*(t-e)+e;for(let e=0;e<=r;e++){const t=e/r,n=t*o+a,l=Math.sin(n),m=Math.cos(n);x.x=y*l,x.y=-g*i+f,x.z=y*m,h.push(x.x,x.y,x.z),s.set(l,_,m).normalize(),u.push(s.x,s.y,s.z),d.push(t,1-g),c.push(p++)}m.push(c)}for(let e=0;e<r;e++)for(let t=0;t<n;t++){const i=m[t][e],r=m[t+1][e],n=m[t+1][e+1],s=m[t][e+1];c.push(i,r,s),c.push(r,n,s),y+=6}l.addGroup(g,y,0),g+=y}(),!1===s&&(e>0&&generateCap(!0),t>0&&generateCap(!1)),this.setIndex(c),this.setAttribute("position",new Float32BufferAttribute(h,3)),this.setAttribute("normal",new Float32BufferAttribute(u,3)),this.setAttribute("uv",new Float32BufferAttribute(d,2))}static fromJSON(e){return new CylinderGeometry(e.radiusTop,e.radiusBottom,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class ConeGeometry extends CylinderGeometry{constructor(e=1,t=1,i=8,r=1,n=!1,s=0,a=2*Math.PI){super(0,e,t,i,r,n,s,a),this.type="ConeGeometry",this.parameters={radius:e,height:t,radialSegments:i,heightSegments:r,openEnded:n,thetaStart:s,thetaLength:a}}static fromJSON(e){return new ConeGeometry(e.radius,e.height,e.radialSegments,e.heightSegments,e.openEnded,e.thetaStart,e.thetaLength)}}class PolyhedronGeometry extends BufferGeometry{constructor(e=[],t=[],i=1,r=0){super(),this.type="PolyhedronGeometry",this.parameters={vertices:e,indices:t,radius:i,detail:r};const n=[],s=[];function subdivideFace(e,t,i,r){const n=r+1,s=[];for(let a=0;a<=n;a++){s[a]=[];const r=e.clone().lerp(i,a/n),o=t.clone().lerp(i,a/n),l=n-a;for(let e=0;e<=l;e++)s[a][e]=0===e&&a===n?r:r.clone().lerp(o,e/l)}for(let a=0;a<n;a++)for(let e=0;e<2*(n-a)-1;e++){const t=Math.floor(e/2);e%2===0?(pushVertex(s[a][t+1]),pushVertex(s[a+1][t]),pushVertex(s[a][t])):(pushVertex(s[a][t+1]),pushVertex(s[a+1][t+1]),pushVertex(s[a+1][t]))}}function pushVertex(e){n.push(e.x,e.y,e.z)}function getVertexByIndex(t,i){const r=3*t;i.x=e[r+0],i.y=e[r+1],i.z=e[r+2]}function correctUV(e,t,i,r){r<0&&1===e.x&&(s[t]=e.x-1),0===i.x&&0===i.z&&(s[t]=r/2/Math.PI+.5)}function azimuth(e){return Math.atan2(e.z,-e.x)}!function subdivide(e){const i=new Vector3,r=new Vector3,n=new Vector3;for(let s=0;s<t.length;s+=3)getVertexByIndex(t[s+0],i),getVertexByIndex(t[s+1],r),getVertexByIndex(t[s+2],n),subdivideFace(i,r,n,e)}(r),function applyRadius(e){const t=new Vector3;for(let i=0;i<n.length;i+=3)t.x=n[i+0],t.y=n[i+1],t.z=n[i+2],t.normalize().multiplyScalar(e),n[i+0]=t.x,n[i+1]=t.y,n[i+2]=t.z}(i),function generateUVs(){const e=new Vector3;for(let i=0;i<n.length;i+=3){e.x=n[i+0],e.y=n[i+1],e.z=n[i+2];const r=azimuth(e)/2/Math.PI+.5,a=(t=e,Math.atan2(-t.y,Math.sqrt(t.x*t.x+t.z*t.z))/Math.PI+.5);s.push(r,1-a)}var t;(function correctUVs(){const e=new Vector3,t=new Vector3,i=new Vector3,r=new Vector3,a=new Vector2,o=new Vector2,l=new Vector2;for(let c=0,h=0;c<n.length;c+=9,h+=6){e.set(n[c+0],n[c+1],n[c+2]),t.set(n[c+3],n[c+4],n[c+5]),i.set(n[c+6],n[c+7],n[c+8]),a.set(s[h+0],s[h+1]),o.set(s[h+2],s[h+3]),l.set(s[h+4],s[h+5]),r.copy(e).add(t).add(i).divideScalar(3);const u=azimuth(r);correctUV(a,h+0,e,u),correctUV(o,h+2,t,u),correctUV(l,h+4,i,u)}})(),function correctSeam(){for(let e=0;e<s.length;e+=6){const t=s[e+0],i=s[e+2],r=s[e+4],n=Math.max(t,i,r),a=Math.min(t,i,r);n>.9&&a<.1&&(t<.2&&(s[e+0]+=1),i<.2&&(s[e+2]+=1),r<.2&&(s[e+4]+=1))}}()}(),this.setAttribute("position",new Float32BufferAttribute(n,3)),this.setAttribute("normal",new Float32BufferAttribute(n.slice(),3)),this.setAttribute("uv",new Float32BufferAttribute(s,2)),0===r?this.computeVertexNormals():this.normalizeNormals()}static fromJSON(e){return new PolyhedronGeometry(e.vertices,e.indices,e.radius,e.details)}}class DodecahedronGeometry extends PolyhedronGeometry{constructor(e=1,t=0){const i=(1+Math.sqrt(5))/2,r=1/i;super([-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-r,-i,0,-r,i,0,r,-i,0,r,i,-r,-i,0,-r,i,0,r,-i,0,r,i,0,-i,0,-r,i,0,-r,-i,0,r,i,0,r],[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],e,t),this.type="DodecahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new DodecahedronGeometry(e.radius,e.detail)}}const Bs=new Vector3,Vs=new Vector3,Ns=new Vector3,Os=new Triangle;class EdgesGeometry extends BufferGeometry{constructor(e=null,t=1){if(super(),this.type="EdgesGeometry",this.parameters={geometry:e,thresholdAngle:t},null!==e){const i=4,r=Math.pow(10,i),n=Math.cos(vi*t),s=e.getIndex(),a=e.getAttribute("position"),o=s?s.count:a.count,l=[0,0,0],c=["a","b","c"],h=new Array(3),u={},d=[];for(let e=0;e<o;e+=3){s?(l[0]=s.getX(e),l[1]=s.getX(e+1),l[2]=s.getX(e+2)):(l[0]=e,l[1]=e+1,l[2]=e+2);const{a:t,b:i,c:o}=Os;if(t.fromBufferAttribute(a,l[0]),i.fromBufferAttribute(a,l[1]),o.fromBufferAttribute(a,l[2]),Os.getNormal(Ns),h[0]=`${Math.round(t.x*r)},${Math.round(t.y*r)},${Math.round(t.z*r)}`,h[1]=`${Math.round(i.x*r)},${Math.round(i.y*r)},${Math.round(i.z*r)}`,h[2]=`${Math.round(o.x*r)},${Math.round(o.y*r)},${Math.round(o.z*r)}`,h[0]!==h[1]&&h[1]!==h[2]&&h[2]!==h[0])for(let e=0;e<3;e++){const t=(e+1)%3,i=h[e],r=h[t],s=Os[c[e]],a=Os[c[t]],o=`${i}_${r}`,p=`${r}_${i}`;p in u&&u[p]?(Ns.dot(u[p].normal)<=n&&(d.push(s.x,s.y,s.z),d.push(a.x,a.y,a.z)),u[p]=null):o in u||(u[o]={index0:l[e],index1:l[t],normal:Ns.clone()})}}for(const e in u)if(u[e]){const{index0:t,index1:i}=u[e];Bs.fromBufferAttribute(a,t),Vs.fromBufferAttribute(a,i),d.push(Bs.x,Bs.y,Bs.z),d.push(Vs.x,Vs.y,Vs.z)}this.setAttribute("position",new Float32BufferAttribute(d,3))}}}class Shape extends Path{constructor(e){super(e),this.uuid=generateUUID(),this.type="Shape",this.holes=[]}getPointsHoles(e){const t=[];for(let i=0,r=this.holes.length;i<r;i++)t[i]=this.holes[i].getPoints(e);return t}extractPoints(e){return{shape:this.getPoints(e),holes:this.getPointsHoles(e)}}copy(e){super.copy(e),this.holes=[];for(let t=0,i=e.holes.length;t<i;t++){const i=e.holes[t];this.holes.push(i.clone())}return this}toJSON(){const e=super.toJSON();e.uuid=this.uuid,e.holes=[];for(let t=0,i=this.holes.length;t<i;t++){const i=this.holes[t];e.holes.push(i.toJSON())}return e}fromJSON(e){super.fromJSON(e),this.uuid=e.uuid,this.holes=[];for(let t=0,i=e.holes.length;t<i;t++){const i=e.holes[t];this.holes.push((new Path).fromJSON(i))}return this}}const Earcut_triangulate=function(e,t,i=2){const r=t&&t.length,n=r?t[0]*i:e.length;let s=linkedList(e,0,n,i,!0);const a=[];if(!s||s.next===s.prev)return a;let o,l,c,h,u,d,p;if(r&&(s=function eliminateHoles(e,t,i,r){const n=[];let s,a,o,l,c;for(s=0,a=t.length;s<a;s++)o=t[s]*r,l=s<a-1?t[s+1]*r:e.length,c=linkedList(e,o,l,r,!1),c===c.next&&(c.steiner=!0),n.push(getLeftmost(c));for(n.sort(compareX),s=0;s<n.length;s++)eliminateHole(n[s],i),i=filterPoints(i,i.next);return i}(e,t,s,i)),e.length>80*i){o=c=e[0],l=h=e[1];for(let t=i;t<n;t+=i)u=e[t],d=e[t+1],u<o&&(o=u),d<l&&(l=d),u>c&&(c=u),d>h&&(h=d);p=Math.max(c-o,h-l),p=0!==p?1/p:0}return earcutLinked(s,a,i,o,l,p),a};function linkedList(e,t,i,r,n){let s,a;if(n===function signedArea(e,t,i,r){let n=0;for(let s=t,a=i-r;s<i;s+=r)n+=(e[a]-e[s])*(e[s+1]+e[a+1]),a=s;return n}(e,t,i,r)>0)for(s=t;s<i;s+=r)a=insertNode(s,e[s],e[s+1],a);else for(s=i-r;s>=t;s-=r)a=insertNode(s,e[s],e[s+1],a);return a&&equals(a,a.next)&&(removeNode(a),a=a.next),a}function filterPoints(e,t){if(!e)return e;t||(t=e);let i,r=e;do{if(i=!1,r.steiner||!equals(r,r.next)&&0!==area(r.prev,r,r.next))r=r.next;else{if(removeNode(r),r=t=r.prev,r===r.next)break;i=!0}}while(i||r!==t);return t}function earcutLinked(e,t,i,r,n,s,a){if(!e)return;!a&&s&&function indexCurve(e,t,i,r){let n=e;do{null===n.z&&(n.z=zOrder(n.x,n.y,t,i,r)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next}while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,function sortLinked(e){let t,i,r,n,s,a,o,l,c=1;do{for(i=e,e=null,s=null,a=0;i;){for(a++,r=i,o=0,t=0;t<c&&(o++,r=r.nextZ,r);t++);for(l=c;o>0||l>0&&r;)0!==o&&(0===l||!r||i.z<=r.z)?(n=i,i=i.nextZ,o--):(n=r,r=r.nextZ,l--),s?s.nextZ=n:e=n,n.prevZ=s,s=n;i=r}s.nextZ=null,c*=2}while(a>1);return e}(n)}(e,r,n,s);let o,l,c=e;for(;e.prev!==e.next;)if(o=e.prev,l=e.next,s?isEarHashed(e,r,n,s):isEar(e))t.push(o.i/i),t.push(e.i/i),t.push(l.i/i),removeNode(e),e=l.next,c=l.next;else if((e=l)===c){a?1===a?earcutLinked(e=cureLocalIntersections(filterPoints(e),t,i),t,i,r,n,s,2):2===a&&splitEarcut(e,t,i,r,n,s):earcutLinked(filterPoints(e),t,i,r,n,s,1);break}}function isEar(e){const t=e.prev,i=e,r=e.next;if(area(t,i,r)>=0)return!1;let n=e.next.next;for(;n!==e.prev;){if(pointInTriangle(t.x,t.y,i.x,i.y,r.x,r.y,n.x,n.y)&&area(n.prev,n,n.next)>=0)return!1;n=n.next}return!0}function isEarHashed(e,t,i,r){const n=e.prev,s=e,a=e.next;if(area(n,s,a)>=0)return!1;const o=n.x<s.x?n.x<a.x?n.x:a.x:s.x<a.x?s.x:a.x,l=n.y<s.y?n.y<a.y?n.y:a.y:s.y<a.y?s.y:a.y,c=n.x>s.x?n.x>a.x?n.x:a.x:s.x>a.x?s.x:a.x,h=n.y>s.y?n.y>a.y?n.y:a.y:s.y>a.y?s.y:a.y,u=zOrder(o,l,t,i,r),d=zOrder(c,h,t,i,r);let p=e.prevZ,m=e.nextZ;for(;p&&p.z>=u&&m&&m.z<=d;){if(p!==e.prev&&p!==e.next&&pointInTriangle(n.x,n.y,s.x,s.y,a.x,a.y,p.x,p.y)&&area(p.prev,p,p.next)>=0)return!1;if(p=p.prevZ,m!==e.prev&&m!==e.next&&pointInTriangle(n.x,n.y,s.x,s.y,a.x,a.y,m.x,m.y)&&area(m.prev,m,m.next)>=0)return!1;m=m.nextZ}for(;p&&p.z>=u;){if(p!==e.prev&&p!==e.next&&pointInTriangle(n.x,n.y,s.x,s.y,a.x,a.y,p.x,p.y)&&area(p.prev,p,p.next)>=0)return!1;p=p.prevZ}for(;m&&m.z<=d;){if(m!==e.prev&&m!==e.next&&pointInTriangle(n.x,n.y,s.x,s.y,a.x,a.y,m.x,m.y)&&area(m.prev,m,m.next)>=0)return!1;m=m.nextZ}return!0}function cureLocalIntersections(e,t,i){let r=e;do{const n=r.prev,s=r.next.next;!equals(n,s)&&intersects(n,r,r.next,s)&&locallyInside(n,s)&&locallyInside(s,n)&&(t.push(n.i/i),t.push(r.i/i),t.push(s.i/i),removeNode(r),removeNode(r.next),r=e=s),r=r.next}while(r!==e);return filterPoints(r)}function splitEarcut(e,t,i,r,n,s){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&isValidDiagonal(a,e)){let o=splitPolygon(a,e);return a=filterPoints(a,a.next),o=filterPoints(o,o.next),earcutLinked(a,t,i,r,n,s),void earcutLinked(o,t,i,r,n,s)}e=e.next}a=a.next}while(a!==e)}function compareX(e,t){return e.x-t.x}function eliminateHole(e,t){if(t=function findHoleBridge(e,t){let i=t;const r=e.x,n=e.y;let s,a=-1/0;do{if(n<=i.y&&n>=i.next.y&&i.next.y!==i.y){const e=i.x+(n-i.y)*(i.next.x-i.x)/(i.next.y-i.y);if(e<=r&&e>a){if(a=e,e===r){if(n===i.y)return i;if(n===i.next.y)return i.next}s=i.x<i.next.x?i:i.next}}i=i.next}while(i!==t);if(!s)return null;if(r===a)return s;const o=s,l=s.x,c=s.y;let h,u=1/0;i=s;do{r>=i.x&&i.x>=l&&r!==i.x&&pointInTriangle(n<c?r:a,n,l,c,n<c?a:r,n,i.x,i.y)&&(h=Math.abs(n-i.y)/(r-i.x),locallyInside(i,e)&&(h<u||h===u&&(i.x>s.x||i.x===s.x&&sectorContainsSector(s,i)))&&(s=i,u=h)),i=i.next}while(i!==o);return s}(e,t),t){const i=splitPolygon(t,e);filterPoints(t,t.next),filterPoints(i,i.next)}}function sectorContainsSector(e,t){return area(e.prev,e,t.prev)<0&&area(t.next,e,e.next)<0}function zOrder(e,t,i,r,n){return(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=32767*(e-i)*n)|e<<8))|e<<4))|e<<2))|e<<1))|(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=32767*(t-r)*n)|t<<8))|t<<4))|t<<2))|t<<1))<<1}function getLeftmost(e){let t=e,i=e;do{(t.x<i.x||t.x===i.x&&t.y<i.y)&&(i=t),t=t.next}while(t!==e);return i}function pointInTriangle(e,t,i,r,n,s,a,o){return(n-a)*(t-o)-(e-a)*(s-o)>=0&&(e-a)*(r-o)-(i-a)*(t-o)>=0&&(i-a)*(s-o)-(n-a)*(r-o)>=0}function isValidDiagonal(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!function intersectsPolygon(e,t){let i=e;do{if(i.i!==e.i&&i.next.i!==e.i&&i.i!==t.i&&i.next.i!==t.i&&intersects(i,i.next,e,t))return!0;i=i.next}while(i!==e);return!1}(e,t)&&(locallyInside(e,t)&&locallyInside(t,e)&&function middleInside(e,t){let i=e,r=!1;const n=(e.x+t.x)/2,s=(e.y+t.y)/2;do{i.y>s!==i.next.y>s&&i.next.y!==i.y&&n<(i.next.x-i.x)*(s-i.y)/(i.next.y-i.y)+i.x&&(r=!r),i=i.next}while(i!==e);return r}(e,t)&&(area(e.prev,e,t.prev)||area(e,t.prev,t))||equals(e,t)&&area(e.prev,e,e.next)>0&&area(t.prev,t,t.next)>0)}function area(e,t,i){return(t.y-e.y)*(i.x-t.x)-(t.x-e.x)*(i.y-t.y)}function equals(e,t){return e.x===t.x&&e.y===t.y}function intersects(e,t,i,r){const n=sign(area(e,t,i)),s=sign(area(e,t,r)),a=sign(area(i,r,e)),o=sign(area(i,r,t));return n!==s&&a!==o||(!(0!==n||!onSegment(e,i,t))||(!(0!==s||!onSegment(e,r,t))||(!(0!==a||!onSegment(i,e,r))||!(0!==o||!onSegment(i,t,r)))))}function onSegment(e,t,i){return t.x<=Math.max(e.x,i.x)&&t.x>=Math.min(e.x,i.x)&&t.y<=Math.max(e.y,i.y)&&t.y>=Math.min(e.y,i.y)}function sign(e){return e>0?1:e<0?-1:0}function locallyInside(e,t){return area(e.prev,e,e.next)<0?area(e,t,e.next)>=0&&area(e,e.prev,t)>=0:area(e,t,e.prev)<0||area(e,e.next,t)<0}function splitPolygon(e,t){const i=new Node(e.i,e.x,e.y),r=new Node(t.i,t.x,t.y),n=e.next,s=t.prev;return e.next=t,t.prev=e,i.next=n,n.prev=i,r.next=i,i.prev=r,s.next=r,r.prev=s,r}function insertNode(e,t,i,r){const n=new Node(e,t,i);return r?(n.next=r.next,n.prev=r,r.next.prev=n,r.next=n):(n.prev=n,n.next=n),n}function removeNode(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function Node(e,t,i){this.i=e,this.x=t,this.y=i,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}class ShapeUtils{static area(e){const t=e.length;let i=0;for(let r=t-1,n=0;n<t;r=n++)i+=e[r].x*e[n].y-e[n].x*e[r].y;return.5*i}static isClockWise(e){return ShapeUtils.area(e)<0}static triangulateShape(e,t){const i=[],r=[],n=[];removeDupEndPts(e),addContour(i,e);let s=e.length;t.forEach(removeDupEndPts);for(let o=0;o<t.length;o++)r.push(s),s+=t[o].length,addContour(i,t[o]);const a=Earcut_triangulate(i,r);for(let o=0;o<a.length;o+=3)n.push(a.slice(o,o+3));return n}}function removeDupEndPts(e){const t=e.length;t>2&&e[t-1].equals(e[0])&&e.pop()}function addContour(e,t){for(let i=0;i<t.length;i++)e.push(t[i].x),e.push(t[i].y)}class ExtrudeGeometry extends BufferGeometry{constructor(e=new Shape([new Vector2(.5,.5),new Vector2(-.5,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),t={}){super(),this.type="ExtrudeGeometry",this.parameters={shapes:e,options:t},e=Array.isArray(e)?e:[e];const i=this,r=[],n=[];for(let s=0,a=e.length;s<a;s++){addShape(e[s])}function addShape(e){const s=[],a=void 0!==t.curveSegments?t.curveSegments:12,o=void 0!==t.steps?t.steps:1,l=void 0!==t.depth?t.depth:1;let c=void 0===t.bevelEnabled||t.bevelEnabled,h=void 0!==t.bevelThickness?t.bevelThickness:.2,u=void 0!==t.bevelSize?t.bevelSize:h-.1,d=void 0!==t.bevelOffset?t.bevelOffset:0,p=void 0!==t.bevelSegments?t.bevelSegments:3;const m=t.extrudePath,f=void 0!==t.UVGenerator?t.UVGenerator:zs;let g,x,y,_,b,M=!1;m&&(g=m.getSpacedPoints(o),M=!0,c=!1,x=m.computeFrenetFrames(o,!1),y=new Vector3,_=new Vector3,b=new Vector3),c||(p=0,h=0,u=0,d=0);const S=e.extractPoints(a);let w=S.shape;const T=S.holes;if(!ShapeUtils.isClockWise(w)){w=w.reverse();for(let e=0,t=T.length;e<t;e++){const t=T[e];ShapeUtils.isClockWise(t)&&(T[e]=t.reverse())}}const A=ShapeUtils.triangulateShape(w,T),C=w;for(let t=0,i=T.length;t<i;t++){const e=T[t];w=w.concat(e)}function scalePt2(e,t,i){return t||console.error("THREE.ExtrudeGeometry: vec does not exist"),t.clone().multiplyScalar(i).add(e)}const E=w.length,L=A.length;function getBevelVec(e,t,i){let r,n,s;const a=e.x-t.x,o=e.y-t.y,l=i.x-e.x,c=i.y-e.y,h=a*a+o*o,u=a*c-o*l;if(Math.abs(u)>Number.EPSILON){const u=Math.sqrt(h),d=Math.sqrt(l*l+c*c),p=t.x-o/u,m=t.y+a/u,f=((i.x-c/d-p)*c-(i.y+l/d-m)*l)/(a*c-o*l);r=p+a*f-e.x,n=m+o*f-e.y;const g=r*r+n*n;if(g<=2)return new Vector2(r,n);s=Math.sqrt(g/2)}else{let e=!1;a>Number.EPSILON?l>Number.EPSILON&&(e=!0):a<-Number.EPSILON?l<-Number.EPSILON&&(e=!0):Math.sign(o)===Math.sign(c)&&(e=!0),e?(r=-o,n=a,s=Math.sqrt(h)):(r=a,n=o,s=Math.sqrt(h/2))}return new Vector2(r/s,n/s)}const P=[];for(let t=0,i=C.length,r=i-1,n=t+1;t<i;t++,r++,n++)r===i&&(r=0),n===i&&(n=0),P[t]=getBevelVec(C[t],C[r],C[n]);const R=[];let D,I=P.concat();for(let t=0,i=T.length;t<i;t++){const e=T[t];D=[];for(let t=0,i=e.length,r=i-1,n=t+1;t<i;t++,r++,n++)r===i&&(r=0),n===i&&(n=0),D[t]=getBevelVec(e[t],e[r],e[n]);R.push(D),I=I.concat(D)}for(let t=0;t<p;t++){const e=t/p,i=h*Math.cos(e*Math.PI/2),r=u*Math.sin(e*Math.PI/2)+d;for(let t=0,n=C.length;t<n;t++){const e=scalePt2(C[t],P[t],r);v(e.x,e.y,-i)}for(let t=0,n=T.length;t<n;t++){const e=T[t];D=R[t];for(let t=0,n=e.length;t<n;t++){const n=scalePt2(e[t],D[t],r);v(n.x,n.y,-i)}}}const B=u+d;for(let t=0;t<E;t++){const e=c?scalePt2(w[t],I[t],B):w[t];M?(_.copy(x.normals[0]).multiplyScalar(e.x),y.copy(x.binormals[0]).multiplyScalar(e.y),b.copy(g[0]).add(_).add(y),v(b.x,b.y,b.z)):v(e.x,e.y,0)}for(let t=1;t<=o;t++)for(let e=0;e<E;e++){const i=c?scalePt2(w[e],I[e],B):w[e];M?(_.copy(x.normals[t]).multiplyScalar(i.x),y.copy(x.binormals[t]).multiplyScalar(i.y),b.copy(g[t]).add(_).add(y),v(b.x,b.y,b.z)):v(i.x,i.y,l/o*t)}for(let t=p-1;t>=0;t--){const e=t/p,i=h*Math.cos(e*Math.PI/2),r=u*Math.sin(e*Math.PI/2)+d;for(let t=0,n=C.length;t<n;t++){const e=scalePt2(C[t],P[t],r);v(e.x,e.y,l+i)}for(let t=0,n=T.length;t<n;t++){const e=T[t];D=R[t];for(let t=0,n=e.length;t<n;t++){const n=scalePt2(e[t],D[t],r);M?v(n.x,n.y+g[o-1].y,g[o-1].x+i):v(n.x,n.y,l+i)}}}function sidewalls(e,t){let i=e.length;for(;--i>=0;){const r=i;let n=i-1;n<0&&(n=e.length-1);for(let e=0,i=o+2*p;e<i;e++){const i=E*e,s=E*(e+1);f4(t+r+i,t+n+i,t+n+s,t+r+s)}}}function v(e,t,i){s.push(e),s.push(t),s.push(i)}function f3(e,t,n){addVertex(e),addVertex(t),addVertex(n);const s=r.length/3,a=f.generateTopUV(i,r,s-3,s-2,s-1);addUV(a[0]),addUV(a[1]),addUV(a[2])}function f4(e,t,n,s){addVertex(e),addVertex(t),addVertex(s),addVertex(t),addVertex(n),addVertex(s);const a=r.length/3,o=f.generateSideWallUV(i,r,a-6,a-3,a-2,a-1);addUV(o[0]),addUV(o[1]),addUV(o[3]),addUV(o[1]),addUV(o[2]),addUV(o[3])}function addVertex(e){r.push(s[3*e+0]),r.push(s[3*e+1]),r.push(s[3*e+2])}function addUV(e){n.push(e.x),n.push(e.y)}!function buildLidFaces(){const e=r.length/3;if(c){let e=0,t=E*e;for(let i=0;i<L;i++){const e=A[i];f3(e[2]+t,e[1]+t,e[0]+t)}e=o+2*p,t=E*e;for(let i=0;i<L;i++){const e=A[i];f3(e[0]+t,e[1]+t,e[2]+t)}}else{for(let e=0;e<L;e++){const t=A[e];f3(t[2],t[1],t[0])}for(let e=0;e<L;e++){const t=A[e];f3(t[0]+E*o,t[1]+E*o,t[2]+E*o)}}i.addGroup(e,r.length/3-e,0)}(),function buildSideFaces(){const e=r.length/3;let t=0;sidewalls(C,t),t+=C.length;for(let i=0,r=T.length;i<r;i++){const e=T[i];sidewalls(e,t),t+=e.length}i.addGroup(e,r.length/3-e,1)}()}this.setAttribute("position",new Float32BufferAttribute(r,3)),this.setAttribute("uv",new Float32BufferAttribute(n,2)),this.computeVertexNormals()}toJSON(){const e=super.toJSON();return function toJSON$1(e,t,i){if(i.shapes=[],Array.isArray(e))for(let r=0,n=e.length;r<n;r++){const t=e[r];i.shapes.push(t.uuid)}else i.shapes.push(e.uuid);i.options=Object.assign({},t),void 0!==t.extrudePath&&(i.options.extrudePath=t.extrudePath.toJSON());return i}(this.parameters.shapes,this.parameters.options,e)}static fromJSON(e,t){const i=[];for(let n=0,s=e.shapes.length;n<s;n++){const r=t[e.shapes[n]];i.push(r)}const r=e.options.extrudePath;return void 0!==r&&(e.options.extrudePath=(new Is[r.type]).fromJSON(r)),new ExtrudeGeometry(i,e.options)}}const zs={generateTopUV:function(e,t,i,r,n){const s=t[3*i],a=t[3*i+1],o=t[3*r],l=t[3*r+1],c=t[3*n],h=t[3*n+1];return[new Vector2(s,a),new Vector2(o,l),new Vector2(c,h)]},generateSideWallUV:function(e,t,i,r,n,s){const a=t[3*i],o=t[3*i+1],l=t[3*i+2],c=t[3*r],h=t[3*r+1],u=t[3*r+2],d=t[3*n],p=t[3*n+1],m=t[3*n+2],f=t[3*s],g=t[3*s+1],x=t[3*s+2];return Math.abs(o-h)<Math.abs(a-c)?[new Vector2(a,1-l),new Vector2(c,1-u),new Vector2(d,1-m),new Vector2(f,1-x)]:[new Vector2(o,1-l),new Vector2(h,1-u),new Vector2(p,1-m),new Vector2(g,1-x)]}};class IcosahedronGeometry extends PolyhedronGeometry{constructor(e=1,t=0){const i=(1+Math.sqrt(5))/2;super([-1,i,0,1,i,0,-1,-i,0,1,-i,0,0,-1,i,0,1,i,0,-1,-i,0,1,-i,i,0,-1,i,0,1,-i,0,-1,-i,0,1],[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],e,t),this.type="IcosahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new IcosahedronGeometry(e.radius,e.detail)}}class OctahedronGeometry extends PolyhedronGeometry{constructor(e=1,t=0){super([1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2],e,t),this.type="OctahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new OctahedronGeometry(e.radius,e.detail)}}class RingGeometry extends BufferGeometry{constructor(e=.5,t=1,i=8,r=1,n=0,s=2*Math.PI){super(),this.type="RingGeometry",this.parameters={innerRadius:e,outerRadius:t,thetaSegments:i,phiSegments:r,thetaStart:n,thetaLength:s},i=Math.max(3,i);const a=[],o=[],l=[],c=[];let h=e;const u=(t-e)/(r=Math.max(1,r)),d=new Vector3,p=new Vector2;for(let m=0;m<=r;m++){for(let e=0;e<=i;e++){const r=n+e/i*s;d.x=h*Math.cos(r),d.y=h*Math.sin(r),o.push(d.x,d.y,d.z),l.push(0,0,1),p.x=(d.x/t+1)/2,p.y=(d.y/t+1)/2,c.push(p.x,p.y)}h+=u}for(let m=0;m<r;m++){const e=m*(i+1);for(let t=0;t<i;t++){const r=t+e,n=r,s=r+i+1,o=r+i+2,l=r+1;a.push(n,s,l),a.push(s,o,l)}}this.setIndex(a),this.setAttribute("position",new Float32BufferAttribute(o,3)),this.setAttribute("normal",new Float32BufferAttribute(l,3)),this.setAttribute("uv",new Float32BufferAttribute(c,2))}static fromJSON(e){return new RingGeometry(e.innerRadius,e.outerRadius,e.thetaSegments,e.phiSegments,e.thetaStart,e.thetaLength)}}class ShapeGeometry extends BufferGeometry{constructor(e=new Shape([new Vector2(0,.5),new Vector2(-.5,-.5),new Vector2(.5,-.5)]),t=12){super(),this.type="ShapeGeometry",this.parameters={shapes:e,curveSegments:t};const i=[],r=[],n=[],s=[];let a=0,o=0;if(!1===Array.isArray(e))addShape(e);else for(let l=0;l<e.length;l++)addShape(e[l]),this.addGroup(a,o,l),a+=o,o=0;function addShape(e){const a=r.length/3,l=e.extractPoints(t);let c=l.shape;const h=l.holes;!1===ShapeUtils.isClockWise(c)&&(c=c.reverse());for(let t=0,i=h.length;t<i;t++){const e=h[t];!0===ShapeUtils.isClockWise(e)&&(h[t]=e.reverse())}const u=ShapeUtils.triangulateShape(c,h);for(let t=0,i=h.length;t<i;t++){const e=h[t];c=c.concat(e)}for(let t=0,i=c.length;t<i;t++){const e=c[t];r.push(e.x,e.y,0),n.push(0,0,1),s.push(e.x,e.y)}for(let t=0,r=u.length;t<r;t++){const e=u[t],r=e[0]+a,n=e[1]+a,s=e[2]+a;i.push(r,n,s),o+=3}}this.setIndex(i),this.setAttribute("position",new Float32BufferAttribute(r,3)),this.setAttribute("normal",new Float32BufferAttribute(n,3)),this.setAttribute("uv",new Float32BufferAttribute(s,2))}toJSON(){const e=super.toJSON();return function toJSON(e,t){if(t.shapes=[],Array.isArray(e))for(let i=0,r=e.length;i<r;i++){const r=e[i];t.shapes.push(r.uuid)}else t.shapes.push(e.uuid);return t}(this.parameters.shapes,e)}static fromJSON(e,t){const i=[];for(let r=0,n=e.shapes.length;r<n;r++){const n=t[e.shapes[r]];i.push(n)}return new ShapeGeometry(i,e.curveSegments)}}class SphereGeometry extends BufferGeometry{constructor(e=1,t=32,i=16,r=0,n=2*Math.PI,s=0,a=Math.PI){super(),this.type="SphereGeometry",this.parameters={radius:e,widthSegments:t,heightSegments:i,phiStart:r,phiLength:n,thetaStart:s,thetaLength:a},t=Math.max(3,Math.floor(t)),i=Math.max(2,Math.floor(i));const o=Math.min(s+a,Math.PI);let l=0;const c=[],h=new Vector3,u=new Vector3,d=[],p=[],m=[],f=[];for(let g=0;g<=i;g++){const d=[],x=g/i;let y=0;0==g&&0==s?y=.5/t:g==i&&o==Math.PI&&(y=-.5/t);for(let i=0;i<=t;i++){const o=i/t;h.x=-e*Math.cos(r+o*n)*Math.sin(s+x*a),h.y=e*Math.cos(s+x*a),h.z=e*Math.sin(r+o*n)*Math.sin(s+x*a),p.push(h.x,h.y,h.z),u.copy(h).normalize(),m.push(u.x,u.y,u.z),f.push(o+y,1-x),d.push(l++)}c.push(d)}for(let g=0;g<i;g++)for(let e=0;e<t;e++){const t=c[g][e+1],r=c[g][e],n=c[g+1][e],a=c[g+1][e+1];(0!==g||s>0)&&d.push(t,r,a),(g!==i-1||o<Math.PI)&&d.push(r,n,a)}this.setIndex(d),this.setAttribute("position",new Float32BufferAttribute(p,3)),this.setAttribute("normal",new Float32BufferAttribute(m,3)),this.setAttribute("uv",new Float32BufferAttribute(f,2))}static fromJSON(e){return new SphereGeometry(e.radius,e.widthSegments,e.heightSegments,e.phiStart,e.phiLength,e.thetaStart,e.thetaLength)}}class TetrahedronGeometry extends PolyhedronGeometry{constructor(e=1,t=0){super([1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],[2,1,0,0,3,2,1,3,0,2,3,1],e,t),this.type="TetrahedronGeometry",this.parameters={radius:e,detail:t}}static fromJSON(e){return new TetrahedronGeometry(e.radius,e.detail)}}class TorusGeometry extends BufferGeometry{constructor(e=1,t=.4,i=8,r=6,n=2*Math.PI){super(),this.type="TorusGeometry",this.parameters={radius:e,tube:t,radialSegments:i,tubularSegments:r,arc:n},i=Math.floor(i),r=Math.floor(r);const s=[],a=[],o=[],l=[],c=new Vector3,h=new Vector3,u=new Vector3;for(let d=0;d<=i;d++)for(let s=0;s<=r;s++){const p=s/r*n,m=d/i*Math.PI*2;h.x=(e+t*Math.cos(m))*Math.cos(p),h.y=(e+t*Math.cos(m))*Math.sin(p),h.z=t*Math.sin(m),a.push(h.x,h.y,h.z),c.x=e*Math.cos(p),c.y=e*Math.sin(p),u.subVectors(h,c).normalize(),o.push(u.x,u.y,u.z),l.push(s/r),l.push(d/i)}for(let d=1;d<=i;d++)for(let e=1;e<=r;e++){const t=(r+1)*d+e-1,i=(r+1)*(d-1)+e-1,n=(r+1)*(d-1)+e,a=(r+1)*d+e;s.push(t,i,a),s.push(i,n,a)}this.setIndex(s),this.setAttribute("position",new Float32BufferAttribute(a,3)),this.setAttribute("normal",new Float32BufferAttribute(o,3)),this.setAttribute("uv",new Float32BufferAttribute(l,2))}static fromJSON(e){return new TorusGeometry(e.radius,e.tube,e.radialSegments,e.tubularSegments,e.arc)}}class TorusKnotGeometry extends BufferGeometry{constructor(e=1,t=.4,i=64,r=8,n=2,s=3){super(),this.type="TorusKnotGeometry",this.parameters={radius:e,tube:t,tubularSegments:i,radialSegments:r,p:n,q:s},i=Math.floor(i),r=Math.floor(r);const a=[],o=[],l=[],c=[],h=new Vector3,u=new Vector3,d=new Vector3,p=new Vector3,m=new Vector3,f=new Vector3,g=new Vector3;for(let x=0;x<=i;++x){const a=x/i*n*Math.PI*2;calculatePositionOnCurve(a,n,s,e,d),calculatePositionOnCurve(a+.01,n,s,e,p),f.subVectors(p,d),g.addVectors(p,d),m.crossVectors(f,g),g.crossVectors(m,f),m.normalize(),g.normalize();for(let e=0;e<=r;++e){const n=e/r*Math.PI*2,s=-t*Math.cos(n),a=t*Math.sin(n);h.x=d.x+(s*g.x+a*m.x),h.y=d.y+(s*g.y+a*m.y),h.z=d.z+(s*g.z+a*m.z),o.push(h.x,h.y,h.z),u.subVectors(h,d).normalize(),l.push(u.x,u.y,u.z),c.push(x/i),c.push(e/r)}}for(let x=1;x<=i;x++)for(let e=1;e<=r;e++){const t=(r+1)*(x-1)+(e-1),i=(r+1)*x+(e-1),n=(r+1)*x+e,s=(r+1)*(x-1)+e;a.push(t,i,s),a.push(i,n,s)}function calculatePositionOnCurve(e,t,i,r,n){const s=Math.cos(e),a=Math.sin(e),o=i/t*e,l=Math.cos(o);n.x=r*(2+l)*.5*s,n.y=r*(2+l)*a*.5,n.z=r*Math.sin(o)*.5}this.setIndex(a),this.setAttribute("position",new Float32BufferAttribute(o,3)),this.setAttribute("normal",new Float32BufferAttribute(l,3)),this.setAttribute("uv",new Float32BufferAttribute(c,2))}static fromJSON(e){return new TorusKnotGeometry(e.radius,e.tube,e.tubularSegments,e.radialSegments,e.p,e.q)}}class TubeGeometry extends BufferGeometry{constructor(e=new QuadraticBezierCurve3(new Vector3(-1,-1,0),new Vector3(-1,1,0),new Vector3(1,1,0)),t=64,i=1,r=8,n=!1){super(),this.type="TubeGeometry",this.parameters={path:e,tubularSegments:t,radius:i,radialSegments:r,closed:n};const s=e.computeFrenetFrames(t,n);this.tangents=s.tangents,this.normals=s.normals,this.binormals=s.binormals;const a=new Vector3,o=new Vector3,l=new Vector2;let c=new Vector3;const h=[],u=[],d=[],p=[];function generateSegment(n){c=e.getPointAt(n/t,c);const l=s.normals[n],d=s.binormals[n];for(let e=0;e<=r;e++){const t=e/r*Math.PI*2,n=Math.sin(t),s=-Math.cos(t);o.x=s*l.x+n*d.x,o.y=s*l.y+n*d.y,o.z=s*l.z+n*d.z,o.normalize(),u.push(o.x,o.y,o.z),a.x=c.x+i*o.x,a.y=c.y+i*o.y,a.z=c.z+i*o.z,h.push(a.x,a.y,a.z)}}!function generateBufferData(){for(let e=0;e<t;e++)generateSegment(e);generateSegment(!1===n?t:0),function generateUVs(){for(let e=0;e<=t;e++)for(let i=0;i<=r;i++)l.x=e/t,l.y=i/r,d.push(l.x,l.y)}(),function generateIndices(){for(let e=1;e<=t;e++)for(let t=1;t<=r;t++){const i=(r+1)*(e-1)+(t-1),n=(r+1)*e+(t-1),s=(r+1)*e+t,a=(r+1)*(e-1)+t;p.push(i,n,a),p.push(n,s,a)}}()}(),this.setIndex(p),this.setAttribute("position",new Float32BufferAttribute(h,3)),this.setAttribute("normal",new Float32BufferAttribute(u,3)),this.setAttribute("uv",new Float32BufferAttribute(d,2))}toJSON(){const e=super.toJSON();return e.path=this.parameters.path.toJSON(),e}static fromJSON(e){return new TubeGeometry((new Is[e.path.type]).fromJSON(e.path),e.tubularSegments,e.radius,e.radialSegments,e.closed)}}class WireframeGeometry extends BufferGeometry{constructor(e=null){if(super(),this.type="WireframeGeometry",this.parameters={geometry:e},null!==e){const t=[],i=new Set,r=new Vector3,n=new Vector3;if(null!==e.index){const s=e.attributes.position,a=e.index;let o=e.groups;0===o.length&&(o=[{start:0,count:a.count,materialIndex:0}]);for(let e=0,l=o.length;e<l;++e){const l=o[e],c=l.start;for(let e=c,o=c+l.count;e<o;e+=3)for(let l=0;l<3;l++){const o=a.getX(e+l),c=a.getX(e+(l+1)%3);r.fromBufferAttribute(s,o),n.fromBufferAttribute(s,c),!0===isUniqueEdge(r,n,i)&&(t.push(r.x,r.y,r.z),t.push(n.x,n.y,n.z))}}}else{const s=e.attributes.position;for(let e=0,a=s.count/3;e<a;e++)for(let o=0;o<3;o++){const a=3*e+o,l=3*e+(o+1)%3;r.fromBufferAttribute(s,a),n.fromBufferAttribute(s,l),!0===isUniqueEdge(r,n,i)&&(t.push(r.x,r.y,r.z),t.push(n.x,n.y,n.z))}}this.setAttribute("position",new Float32BufferAttribute(t,3))}}}function isUniqueEdge(e,t,i){const r=`${e.x},${e.y},${e.z}-${t.x},${t.y},${t.z}`,n=`${t.x},${t.y},${t.z}-${e.x},${e.y},${e.z}`;return!0!==i.has(r)&&!0!==i.has(n)&&(i.add(r),i.add(n),!0)}var Fs=Object.freeze({__proto__:null,BoxGeometry:BoxGeometry,BoxBufferGeometry:BoxGeometry,CapsuleGeometry:CapsuleGeometry,CapsuleBufferGeometry:CapsuleGeometry,CircleGeometry:CircleGeometry,CircleBufferGeometry:CircleGeometry,ConeGeometry:ConeGeometry,ConeBufferGeometry:ConeGeometry,CylinderGeometry:CylinderGeometry,CylinderBufferGeometry:CylinderGeometry,DodecahedronGeometry:DodecahedronGeometry,DodecahedronBufferGeometry:DodecahedronGeometry,EdgesGeometry:EdgesGeometry,ExtrudeGeometry:ExtrudeGeometry,ExtrudeBufferGeometry:ExtrudeGeometry,IcosahedronGeometry:IcosahedronGeometry,IcosahedronBufferGeometry:IcosahedronGeometry,LatheGeometry:LatheGeometry,LatheBufferGeometry:LatheGeometry,OctahedronGeometry:OctahedronGeometry,OctahedronBufferGeometry:OctahedronGeometry,PlaneGeometry:PlaneGeometry,PlaneBufferGeometry:PlaneGeometry,PolyhedronGeometry:PolyhedronGeometry,PolyhedronBufferGeometry:PolyhedronGeometry,RingGeometry:RingGeometry,RingBufferGeometry:RingGeometry,ShapeGeometry:ShapeGeometry,ShapeBufferGeometry:ShapeGeometry,SphereGeometry:SphereGeometry,SphereBufferGeometry:SphereGeometry,TetrahedronGeometry:TetrahedronGeometry,TetrahedronBufferGeometry:TetrahedronGeometry,TorusGeometry:TorusGeometry,TorusBufferGeometry:TorusGeometry,TorusKnotGeometry:TorusKnotGeometry,TorusKnotBufferGeometry:TorusKnotGeometry,TubeGeometry:TubeGeometry,TubeBufferGeometry:TubeGeometry,WireframeGeometry:WireframeGeometry});class ShadowMaterial extends Material{constructor(e){super(),this.isShadowMaterial=!0,this.type="ShadowMaterial",this.color=new Color(0),this.transparent=!0,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.color.copy(e.color),this.fog=e.fog,this}}class RawShaderMaterial extends ShaderMaterial{constructor(e){super(e),this.isRawShaderMaterial=!0,this.type="RawShaderMaterial"}}class MeshStandardMaterial extends Material{constructor(e){super(),this.isMeshStandardMaterial=!0,this.defines={STANDARD:""},this.type="MeshStandardMaterial",this.color=new Color(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapIntensity=1,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.defines={STANDARD:""},this.color.copy(e.color),this.roughness=e.roughness,this.metalness=e.metalness,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.roughnessMap=e.roughnessMap,this.metalnessMap=e.metalnessMap,this.alphaMap=e.alphaMap,this.envMap=e.envMap,this.envMapIntensity=e.envMapIntensity,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 MeshPhysicalMaterial extends MeshStandardMaterial{constructor(e){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:"",PHYSICAL:""},this.type="MeshPhysicalMaterial",this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new Vector2(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,"reflectivity",{get:function(){return clamp(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(e){this.ior=(1+.4*e)/(1-.4*e)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Color(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=0,this.attenuationColor=new Color(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Color(1,1,1),this.specularColorMap=null,this._sheen=0,this._clearcoat=0,this._iridescence=0,this._transmission=0,this.setValues(e)}get sheen(){return this._sheen}set sheen(e){this._sheen>0!==e>0&&this.version++,this._sheen=e}get clearcoat(){return this._clearcoat}set clearcoat(e){this._clearcoat>0!==e>0&&this.version++,this._clearcoat=e}get iridescence(){return this._iridescence}set iridescence(e){this._iridescence>0!==e>0&&this.version++,this._iridescence=e}get transmission(){return this._transmission}set transmission(e){this._transmission>0!==e>0&&this.version++,this._transmission=e}copy(e){return super.copy(e),this.defines={STANDARD:"",PHYSICAL:""},this.clearcoat=e.clearcoat,this.clearcoatMap=e.clearcoatMap,this.clearcoatRoughness=e.clearcoatRoughness,this.clearcoatRoughnessMap=e.clearcoatRoughnessMap,this.clearcoatNormalMap=e.clearcoatNormalMap,this.clearcoatNormalScale.copy(e.clearcoatNormalScale),this.ior=e.ior,this.iridescence=e.iridescence,this.iridescenceMap=e.iridescenceMap,this.iridescenceIOR=e.iridescenceIOR,this.iridescenceThicknessRange=[...e.iridescenceThicknessRange],this.iridescenceThicknessMap=e.iridescenceThicknessMap,this.sheen=e.sheen,this.sheenColor.copy(e.sheenColor),this.sheenColorMap=e.sheenColorMap,this.sheenRoughness=e.sheenRoughness,this.sheenRoughnessMap=e.sheenRoughnessMap,this.transmission=e.transmission,this.transmissionMap=e.transmissionMap,this.thickness=e.thickness,this.thicknessMap=e.thicknessMap,this.attenuationDistance=e.attenuationDistance,this.attenuationColor.copy(e.attenuationColor),this.specularIntensity=e.specularIntensity,this.specularIntensityMap=e.specularIntensityMap,this.specularColor.copy(e.specularColor),this.specularColorMap=e.specularColorMap,this}}class MeshPhongMaterial extends Material{constructor(e){super(),this.isMeshPhongMaterial=!0,this.type="MeshPhongMaterial",this.color=new Color(16777215),this.specular=new Color(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Z,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.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 MeshToonMaterial extends Material{constructor(e){super(),this.isMeshToonMaterial=!0,this.defines={TOON:""},this.type="MeshToonMaterial",this.color=new Color(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,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.gradientMap=e.gradientMap,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.alphaMap=e.alphaMap,this.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.wireframeLinecap=e.wireframeLinecap,this.wireframeLinejoin=e.wireframeLinejoin,this.fog=e.fog,this}}class MeshNormalMaterial extends Material{constructor(e){super(),this.isMeshNormalMaterial=!0,this.type="MeshNormalMaterial",this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(e)}copy(e){return super.copy(e),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.wireframe=e.wireframe,this.wireframeLinewidth=e.wireframeLinewidth,this.flatShading=e.flatShading,this}}class MeshLambertMaterial extends Material{constructor(e){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Color(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Color(0),this.emissiveIntensity=1,this.emissiveMap=null,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Z,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.emissive.copy(e.emissive),this.emissiveMap=e.emissiveMap,this.emissiveIntensity=e.emissiveIntensity,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}}class MeshMatcapMaterial extends Material{constructor(e){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:""},this.type="MeshMatcapMaterial",this.color=new Color(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=Nt,this.normalScale=new Vector2(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(e)}copy(e){return super.copy(e),this.defines={MATCAP:""},this.color.copy(e.color),this.matcap=e.matcap,this.map=e.map,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.alphaMap=e.alphaMap,this.flatShading=e.flatShading,this.fog=e.fog,this}}class LineDashedMaterial extends LineBasicMaterial{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}}function arraySlice(e,t,i){return isTypedArray(e)?new e.constructor(e.subarray(t,void 0!==i?i:e.length)):e.slice(t,i)}function convertArray(e,t,i){return!e||!i&&e.constructor===t?e:"number"===typeof t.BYTES_PER_ELEMENT?new t(e):Array.prototype.slice.call(e)}function isTypedArray(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function getKeyframeOrder(e){const t=e.length,i=new Array(t);for(let r=0;r!==t;++r)i[r]=r;return i.sort((function compareTime(t,i){return e[t]-e[i]})),i}function sortedArray(e,t,i){const r=e.length,n=new e.constructor(r);for(let s=0,a=0;a!==r;++s){const r=i[s]*t;for(let i=0;i!==t;++i)n[a++]=e[r+i]}return n}function flattenJSON(e,t,i,r){let n=1,s=e[0];for(;void 0!==s&&void 0===s[r];)s=e[n++];if(void 0===s)return;let a=s[r];if(void 0!==a)if(Array.isArray(a))do{a=s[r],void 0!==a&&(t.push(s.time),i.push.apply(i,a)),s=e[n++]}while(void 0!==s);else if(void 0!==a.toArray)do{a=s[r],void 0!==a&&(t.push(s.time),a.toArray(i,i.length)),s=e[n++]}while(void 0!==s);else do{a=s[r],void 0!==a&&(t.push(s.time),i.push(a)),s=e[n++]}while(void 0!==s)}var Gs=Object.freeze({__proto__:null,arraySlice:arraySlice,convertArray:convertArray,isTypedArray:isTypedArray,getKeyframeOrder:getKeyframeOrder,sortedArray:sortedArray,flattenJSON:flattenJSON,subclip:function subclip(e,t,i,r,n=30){const s=e.clone();s.name=t;const a=[];for(let l=0;l<s.tracks.length;++l){const e=s.tracks[l],t=e.getValueSize(),o=[],c=[];for(let s=0;s<e.times.length;++s){const a=e.times[s]*n;if(!(a<i||a>=r)){o.push(e.times[s]);for(let i=0;i<t;++i)c.push(e.values[s*t+i])}}0!==o.length&&(e.times=convertArray(o,e.times.constructor),e.values=convertArray(c,e.values.constructor),a.push(e))}s.tracks=a;let o=1/0;for(let l=0;l<s.tracks.length;++l)o>s.tracks[l].times[0]&&(o=s.tracks[l].times[0]);for(let l=0;l<s.tracks.length;++l)s.tracks[l].shift(-1*o);return s.resetDuration(),s},makeClipAdditive:function makeClipAdditive(e,t=0,i=e,r=30){r<=0&&(r=30);const n=i.tracks.length,s=t/r;for(let a=0;a<n;++a){const t=i.tracks[a],r=t.ValueTypeName;if("bool"===r||"string"===r)continue;const n=e.tracks.find((function(e){return e.name===t.name&&e.ValueTypeName===r}));if(void 0===n)continue;let o=0;const l=t.getValueSize();t.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(o=l/3);let c=0;const h=n.getValueSize();n.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&&(c=h/3);const u=t.times.length-1;let d;if(s<=t.times[0]){const e=o,i=l-o;d=arraySlice(t.values,e,i)}else if(s>=t.times[u]){const e=u*l+o,i=e+l-o;d=arraySlice(t.values,e,i)}else{const e=t.createInterpolant(),i=o,r=l-o;e.evaluate(s),d=arraySlice(e.resultBuffer,i,r)}if("quaternion"===r){(new Quaternion).fromArray(d).normalize().conjugate().toArray(d)}const p=n.times.length;for(let e=0;e<p;++e){const t=e*h+c;if("quaternion"===r)Quaternion.multiplyQuaternionsFlat(n.values,t,d,0,n.values,t);else{const e=h-2*c;for(let i=0;i<e;++i)n.values[t+i]-=d[i]}}}return e.blendMode=Et,e}});class Interpolant{constructor(e,t,i,r){this.parameterPositions=e,this._cachedIndex=0,this.resultBuffer=void 0!==r?r:new t.constructor(i),this.sampleValues=t,this.valueSize=i,this.settings=null,this.DefaultSettings_={}}evaluate(e){const t=this.parameterPositions;let i=this._cachedIndex,r=t[i],n=t[i-1];e:{t:{let s;i:{r:if(!(e<r)){for(let s=i+2;;){if(void 0===r){if(e<n)break r;return i=t.length,this._cachedIndex=i,this.copySampleValue_(i-1)}if(i===s)break;if(n=r,r=t[++i],e<r)break t}s=t.length;break i}if(e>=n)break e;{const a=t[1];e<a&&(i=2,n=a);for(let s=i-2;;){if(void 0===n)return this._cachedIndex=0,this.copySampleValue_(0);if(i===s)break;if(r=n,n=t[--i-1],e>=n)break t}s=i,i=0}}for(;i<s;){const r=i+s>>>1;e<t[r]?s=r:i=r+1}if(r=t[i],n=t[i-1],void 0===n)return this._cachedIndex=0,this.copySampleValue_(0);if(void 0===r)return i=t.length,this._cachedIndex=i,this.copySampleValue_(i-1)}this._cachedIndex=i,this.intervalChanged_(i,n,r)}return this.interpolate_(i,n,e,r)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(e){const t=this.resultBuffer,i=this.sampleValues,r=this.valueSize,n=e*r;for(let s=0;s!==r;++s)t[s]=i[n+s];return t}interpolate_(){throw new Error("call to abstract method")}intervalChanged_(){}}class CubicInterpolant extends Interpolant{constructor(e,t,i,r){super(e,t,i,r),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:wt,endingEnd:wt}}intervalChanged_(e,t,i){const r=this.parameterPositions;let n=e-2,s=e+1,a=r[n],o=r[s];if(void 0===a)switch(this.getSettings_().endingStart){case Tt:n=e,a=2*t-i;break;case At:n=r.length-2,a=t+r[n]-r[n+1];break;default:n=e,a=i}if(void 0===o)switch(this.getSettings_().endingEnd){case Tt:s=e,o=2*i-t;break;case At:s=1,o=i+r[1]-r[0];break;default:s=e-1,o=t}const l=.5*(i-t),c=this.valueSize;this._weightPrev=l/(t-a),this._weightNext=l/(o-i),this._offsetPrev=n*c,this._offsetNext=s*c}interpolate_(e,t,i,r){const n=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=e*a,l=o-a,c=this._offsetPrev,h=this._offsetNext,u=this._weightPrev,d=this._weightNext,p=(i-t)/(r-t),m=p*p,f=m*p,g=-u*f+2*u*m-u*p,x=(1+u)*f+(-1.5-2*u)*m+(-.5+u)*p+1,y=(-1-d)*f+(1.5+d)*m+.5*p,_=d*f-d*m;for(let b=0;b!==a;++b)n[b]=g*s[c+b]+x*s[l+b]+y*s[o+b]+_*s[h+b];return n}}class LinearInterpolant extends Interpolant{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const n=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=e*a,l=o-a,c=(i-t)/(r-t),h=1-c;for(let u=0;u!==a;++u)n[u]=s[l+u]*h+s[o+u]*c;return n}}class DiscreteInterpolant extends Interpolant{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e){return this.copySampleValue_(e-1)}}class KeyframeTrack{constructor(e,t,i,r){if(void 0===e)throw new Error("THREE.KeyframeTrack: track name is undefined");if(void 0===t||0===t.length)throw new Error("THREE.KeyframeTrack: no keyframes in track named "+e);this.name=e,this.times=convertArray(t,this.TimeBufferType),this.values=convertArray(i,this.ValueBufferType),this.setInterpolation(r||this.DefaultInterpolation)}static toJSON(e){const t=e.constructor;let i;if(t.toJSON!==this.toJSON)i=t.toJSON(e);else{i={name:e.name,times:convertArray(e.times,Array),values:convertArray(e.values,Array)};const t=e.getInterpolation();t!==e.DefaultInterpolation&&(i.interpolation=t)}return i.type=e.ValueTypeName,i}InterpolantFactoryMethodDiscrete(e){return new DiscreteInterpolant(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodLinear(e){return new LinearInterpolant(this.times,this.values,this.getValueSize(),e)}InterpolantFactoryMethodSmooth(e){return new CubicInterpolant(this.times,this.values,this.getValueSize(),e)}setInterpolation(e){let t;switch(e){case bt:t=this.InterpolantFactoryMethodDiscrete;break;case Mt:t=this.InterpolantFactoryMethodLinear;break;case St:t=this.InterpolantFactoryMethodSmooth}if(void 0===t){const t="unsupported interpolation for "+this.ValueTypeName+" keyframe track named "+this.name;if(void 0===this.createInterpolant){if(e===this.DefaultInterpolation)throw new Error(t);this.setInterpolation(this.DefaultInterpolation)}return console.warn("THREE.KeyframeTrack:",t),this}return this.createInterpolant=t,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return bt;case this.InterpolantFactoryMethodLinear:return Mt;case this.InterpolantFactoryMethodSmooth:return St}}getValueSize(){return this.values.length/this.times.length}shift(e){if(0!==e){const t=this.times;for(let i=0,r=t.length;i!==r;++i)t[i]+=e}return this}scale(e){if(1!==e){const t=this.times;for(let i=0,r=t.length;i!==r;++i)t[i]*=e}return this}trim(e,t){const i=this.times,r=i.length;let n=0,s=r-1;for(;n!==r&&i[n]<e;)++n;for(;-1!==s&&i[s]>t;)--s;if(++s,0!==n||s!==r){n>=s&&(s=Math.max(s,1),n=s-1);const e=this.getValueSize();this.times=arraySlice(i,n,s),this.values=arraySlice(this.values,n*e,s*e)}return this}validate(){let e=!0;const t=this.getValueSize();t-Math.floor(t)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),e=!1);const i=this.times,r=this.values,n=i.length;0===n&&(console.error("THREE.KeyframeTrack: Track is empty.",this),e=!1);let s=null;for(let a=0;a!==n;a++){const t=i[a];if("number"===typeof t&&isNaN(t)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,t),e=!1;break}if(null!==s&&s>t){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,t,s),e=!1;break}s=t}if(void 0!==r&&isTypedArray(r))for(let a=0,o=r.length;a!==o;++a){const t=r[a];if(isNaN(t)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,t),e=!1;break}}return e}optimize(){const e=arraySlice(this.times),t=arraySlice(this.values),i=this.getValueSize(),r=this.getInterpolation()===St,n=e.length-1;let s=1;for(let a=1;a<n;++a){let n=!1;const o=e[a];if(o!==e[a+1]&&(1!==a||o!==e[0]))if(r)n=!0;else{const e=a*i,r=e-i,s=e+i;for(let a=0;a!==i;++a){const i=t[e+a];if(i!==t[r+a]||i!==t[s+a]){n=!0;break}}}if(n){if(a!==s){e[s]=e[a];const r=a*i,n=s*i;for(let e=0;e!==i;++e)t[n+e]=t[r+e]}++s}}if(n>0){e[s]=e[n];for(let e=n*i,r=s*i,a=0;a!==i;++a)t[r+a]=t[e+a];++s}return s!==e.length?(this.times=arraySlice(e,0,s),this.values=arraySlice(t,0,s*i)):(this.times=e,this.values=t),this}clone(){const e=arraySlice(this.times,0),t=arraySlice(this.values,0),i=new(0,this.constructor)(this.name,e,t);return i.createInterpolant=this.createInterpolant,i}}KeyframeTrack.prototype.TimeBufferType=Float32Array,KeyframeTrack.prototype.ValueBufferType=Float32Array,KeyframeTrack.prototype.DefaultInterpolation=Mt;class BooleanKeyframeTrack extends KeyframeTrack{}BooleanKeyframeTrack.prototype.ValueTypeName="bool",BooleanKeyframeTrack.prototype.ValueBufferType=Array,BooleanKeyframeTrack.prototype.DefaultInterpolation=bt,BooleanKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0,BooleanKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class ColorKeyframeTrack extends KeyframeTrack{}ColorKeyframeTrack.prototype.ValueTypeName="color";class NumberKeyframeTrack extends KeyframeTrack{}NumberKeyframeTrack.prototype.ValueTypeName="number";class QuaternionLinearInterpolant extends Interpolant{constructor(e,t,i,r){super(e,t,i,r)}interpolate_(e,t,i,r){const n=this.resultBuffer,s=this.sampleValues,a=this.valueSize,o=(i-t)/(r-t);let l=e*a;for(let c=l+a;l!==c;l+=4)Quaternion.slerpFlat(n,0,s,l-a,s,l,o);return n}}class QuaternionKeyframeTrack extends KeyframeTrack{InterpolantFactoryMethodLinear(e){return new QuaternionLinearInterpolant(this.times,this.values,this.getValueSize(),e)}}QuaternionKeyframeTrack.prototype.ValueTypeName="quaternion",QuaternionKeyframeTrack.prototype.DefaultInterpolation=Mt,QuaternionKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class StringKeyframeTrack extends KeyframeTrack{}StringKeyframeTrack.prototype.ValueTypeName="string",StringKeyframeTrack.prototype.ValueBufferType=Array,StringKeyframeTrack.prototype.DefaultInterpolation=bt,StringKeyframeTrack.prototype.InterpolantFactoryMethodLinear=void 0,StringKeyframeTrack.prototype.InterpolantFactoryMethodSmooth=void 0;class VectorKeyframeTrack extends KeyframeTrack{}VectorKeyframeTrack.prototype.ValueTypeName="vector";class AnimationClip{constructor(e,t=-1,i,r=Ct){this.name=e,this.tracks=i,this.duration=t,this.blendMode=r,this.uuid=generateUUID(),this.duration<0&&this.resetDuration()}static parse(e){const t=[],i=e.tracks,r=1/(e.fps||1);for(let s=0,a=i.length;s!==a;++s)t.push(parseKeyframeTrack(i[s]).scale(r));const n=new this(e.name,e.duration,t,e.blendMode);return n.uuid=e.uuid,n}static toJSON(e){const t=[],i=e.tracks,r={name:e.name,duration:e.duration,tracks:t,uuid:e.uuid,blendMode:e.blendMode};for(let n=0,s=i.length;n!==s;++n)t.push(KeyframeTrack.toJSON(i[n]));return r}static CreateFromMorphTargetSequence(e,t,i,r){const n=t.length,s=[];for(let a=0;a<n;a++){let e=[],o=[];e.push((a+n-1)%n,a,(a+1)%n),o.push(0,1,0);const l=getKeyframeOrder(e);e=sortedArray(e,1,l),o=sortedArray(o,1,l),r||0!==e[0]||(e.push(n),o.push(o[0])),s.push(new NumberKeyframeTrack(".morphTargetInfluences["+t[a].name+"]",e,o).scale(1/i))}return new this(e,-1,s)}static findByName(e,t){let i=e;if(!Array.isArray(e)){const t=e;i=t.geometry&&t.geometry.animations||t.animations}for(let r=0;r<i.length;r++)if(i[r].name===t)return i[r];return null}static CreateClipsFromMorphTargetSequences(e,t,i){const r={},n=/^([\w-]*?)([\d]+)$/;for(let a=0,o=e.length;a<o;a++){const t=e[a],i=t.name.match(n);if(i&&i.length>1){const e=i[1];let n=r[e];n||(r[e]=n=[]),n.push(t)}}const s=[];for(const a in r)s.push(this.CreateFromMorphTargetSequence(a,r[a],t,i));return s}static parseAnimation(e,t){if(!e)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const addNonemptyTrack=function(e,t,i,r,n){if(0!==i.length){const s=[],a=[];flattenJSON(i,s,a,r),0!==s.length&&n.push(new e(t,s,a))}},i=[],r=e.name||"default",n=e.fps||30,s=e.blendMode;let a=e.length||-1;const o=e.hierarchy||[];for(let l=0;l<o.length;l++){const e=o[l].keys;if(e&&0!==e.length)if(e[0].morphTargets){const t={};let r;for(r=0;r<e.length;r++)if(e[r].morphTargets)for(let i=0;i<e[r].morphTargets.length;i++)t[e[r].morphTargets[i]]=-1;for(const n in t){const t=[],s=[];for(let i=0;i!==e[r].morphTargets.length;++i){const i=e[r];t.push(i.time),s.push(i.morphTarget===n?1:0)}i.push(new NumberKeyframeTrack(".morphTargetInfluence["+n+"]",t,s))}a=t.length*n}else{const r=".bones["+t[l].name+"]";addNonemptyTrack(VectorKeyframeTrack,r+".position",e,"pos",i),addNonemptyTrack(QuaternionKeyframeTrack,r+".quaternion",e,"rot",i),addNonemptyTrack(VectorKeyframeTrack,r+".scale",e,"scl",i)}}if(0===i.length)return null;return new this(r,a,i,s)}resetDuration(){let e=0;for(let t=0,i=this.tracks.length;t!==i;++t){const i=this.tracks[t];e=Math.max(e,i.times[i.times.length-1])}return this.duration=e,this}trim(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].trim(0,this.duration);return this}validate(){let e=!0;for(let t=0;t<this.tracks.length;t++)e=e&&this.tracks[t].validate();return e}optimize(){for(let e=0;e<this.tracks.length;e++)this.tracks[e].optimize();return this}clone(){const e=[];for(let t=0;t<this.tracks.length;t++)e.push(this.tracks[t].clone());return new this.constructor(this.name,this.duration,e,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}}function parseKeyframeTrack(e){if(void 0===e.type)throw new Error("THREE.KeyframeTrack: track type undefined, can not parse");const t=function getTrackTypeForValueTypeName(e){switch(e.toLowerCase()){case"scalar":case"double":case"float":case"number":case"integer":return NumberKeyframeTrack;case"vector":case"vector2":case"vector3":case"vector4":return VectorKeyframeTrack;case"color":return ColorKeyframeTrack;case"quaternion":return QuaternionKeyframeTrack;case"bool":case"boolean":return BooleanKeyframeTrack;case"string":return StringKeyframeTrack}throw new Error("THREE.KeyframeTrack: Unsupported typeName: "+e)}(e.type);if(void 0===e.times){const t=[],i=[];flattenJSON(e.keys,t,i,"value"),e.times=t,e.values=i}return void 0!==t.parse?t.parse(e):new t(e.name,e.times,e.values,e.interpolation)}const Us={enabled:!1,files:{},add:function(e,t){!1!==this.enabled&&(this.files[e]=t)},get:function(e){if(!1!==this.enabled)return this.files[e]},remove:function(e){delete this.files[e]},clear:function(){this.files={}}};class LoadingManager{constructor(e,t,i){const r=this;let n,s=!1,a=0,o=0;const l=[];this.onStart=void 0,this.onLoad=e,this.onProgress=t,this.onError=i,this.itemStart=function(e){o++,!1===s&&void 0!==r.onStart&&r.onStart(e,a,o),s=!0},this.itemEnd=function(e){a++,void 0!==r.onProgress&&r.onProgress(e,a,o),a===o&&(s=!1,void 0!==r.onLoad&&r.onLoad())},this.itemError=function(e){void 0!==r.onError&&r.onError(e)},this.resolveURL=function(e){return n?n(e):e},this.setURLModifier=function(e){return n=e,this},this.addHandler=function(e,t){return l.push(e,t),this},this.removeHandler=function(e){const t=l.indexOf(e);return-1!==t&&l.splice(t,2),this},this.getHandler=function(e){for(let t=0,i=l.length;t<i;t+=2){const i=l[t],r=l[t+1];if(i.global&&(i.lastIndex=0),i.test(e))return r}return null}}}const ks=new LoadingManager;class Loader{constructor(e){this.manager=void 0!==e?e:ks,this.crossOrigin="anonymous",this.withCredentials=!1,this.path="",this.resourcePath="",this.requestHeader={}}load(){}loadAsync(e,t){const i=this;return new Promise((function(r,n){i.load(e,r,t,n)}))}parse(){}setCrossOrigin(e){return this.crossOrigin=e,this}setWithCredentials(e){return this.withCredentials=e,this}setPath(e){return this.path=e,this}setResourcePath(e){return this.resourcePath=e,this}setRequestHeader(e){return this.requestHeader=e,this}}const Ws={};class HttpError extends Error{constructor(e,t){super(e),this.response=t}}class FileLoader extends Loader{constructor(e){super(e)}load(e,t,i,r){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const n=Us.get(e);if(void 0!==n)return this.manager.itemStart(e),setTimeout((()=>{t&&t(n),this.manager.itemEnd(e)}),0),n;if(void 0!==Ws[e])return void Ws[e].push({onLoad:t,onProgress:i,onError:r});Ws[e]=[],Ws[e].push({onLoad:t,onProgress:i,onError:r});const s=new Request(e,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,o=this.responseType;fetch(s).then((t=>{if(200===t.status||0===t.status){if(0===t.status&&console.warn("THREE.FileLoader: HTTP Status 0 received."),"undefined"===typeof ReadableStream||void 0===t.body||void 0===t.body.getReader)return t;const i=Ws[e],r=t.body.getReader(),n=t.headers.get("Content-Length"),s=n?parseInt(n):0,a=0!==s;let o=0;const l=new ReadableStream({start(e){!function readData(){r.read().then((({done:t,value:r})=>{if(t)e.close();else{o+=r.byteLength;const t=new ProgressEvent("progress",{lengthComputable:a,loaded:o,total:s});for(let e=0,r=i.length;e<r;e++){const r=i[e];r.onProgress&&r.onProgress(t)}e.enqueue(r),readData()}}))}()}});return new Response(l)}throw new HttpError(`fetch for "${t.url}" responded with ${t.status}: ${t.statusText}`,t)})).then((e=>{switch(o){case"arraybuffer":return e.arrayBuffer();case"blob":return e.blob();case"document":return e.text().then((e=>(new DOMParser).parseFromString(e,a)));case"json":return e.json();default:if(void 0===a)return e.text();{const t=/charset="?([^;"\s]*)"?/i.exec(a),i=t&&t[1]?t[1].toLowerCase():void 0,r=new TextDecoder(i);return e.arrayBuffer().then((e=>r.decode(e)))}}})).then((t=>{Us.add(e,t);const i=Ws[e];delete Ws[e];for(let e=0,r=i.length;e<r;e++){const r=i[e];r.onLoad&&r.onLoad(t)}})).catch((t=>{const i=Ws[e];if(void 0===i)throw this.manager.itemError(e),t;delete Ws[e];for(let e=0,r=i.length;e<r;e++){const r=i[e];r.onError&&r.onError(t)}this.manager.itemError(e)})).finally((()=>{this.manager.itemEnd(e)})),this.manager.itemStart(e)}setResponseType(e){return this.responseType=e,this}setMimeType(e){return this.mimeType=e,this}}class AnimationLoader extends Loader{constructor(e){super(e)}load(e,t,i,r){const n=this,s=new FileLoader(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,(function(i){try{t(n.parse(JSON.parse(i)))}catch(s){r?r(s):console.error(s),n.manager.itemError(e)}}),i,r)}parse(e){const t=[];for(let i=0;i<e.length;i++){const r=AnimationClip.parse(e[i]);t.push(r)}return t}}class CompressedTextureLoader extends Loader{constructor(e){super(e)}load(e,t,i,r){const n=this,s=[],a=new CompressedTexture,o=new FileLoader(this.manager);o.setPath(this.path),o.setResponseType("arraybuffer"),o.setRequestHeader(this.requestHeader),o.setWithCredentials(n.withCredentials);let l=0;function loadTexture(c){o.load(e[c],(function(e){const i=n.parse(e,!0);s[c]={width:i.width,height:i.height,format:i.format,mipmaps:i.mipmaps},l+=1,6===l&&(1===i.mipmapCount&&(a.minFilter=xe),a.image=s,a.format=i.format,a.needsUpdate=!0,t&&t(a))}),i,r)}if(Array.isArray(e))for(let c=0,h=e.length;c<h;++c)loadTexture(c);else o.load(e,(function(e){const i=n.parse(e,!0);if(i.isCubemap){const e=i.mipmaps.length/i.mipmapCount;for(let t=0;t<e;t++){s[t]={mipmaps:[]};for(let e=0;e<i.mipmapCount;e++)s[t].mipmaps.push(i.mipmaps[t*i.mipmapCount+e]),s[t].format=i.format,s[t].width=i.width,s[t].height=i.height}a.image=s}else a.image.width=i.width,a.image.height=i.height,a.mipmaps=i.mipmaps;1===i.mipmapCount&&(a.minFilter=xe),a.format=i.format,a.needsUpdate=!0,t&&t(a)}),i,r);return a}}class ImageLoader extends Loader{constructor(e){super(e)}load(e,t,i,r){void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const n=this,s=Us.get(e);if(void 0!==s)return n.manager.itemStart(e),setTimeout((function(){t&&t(s),n.manager.itemEnd(e)}),0),s;const a=createElementNS("img");function onImageLoad(){removeEventListeners(),Us.add(e,this),t&&t(this),n.manager.itemEnd(e)}function onImageError(t){removeEventListeners(),r&&r(t),n.manager.itemError(e),n.manager.itemEnd(e)}function removeEventListeners(){a.removeEventListener("load",onImageLoad,!1),a.removeEventListener("error",onImageError,!1)}return a.addEventListener("load",onImageLoad,!1),a.addEventListener("error",onImageError,!1),"data:"!==e.slice(0,5)&&void 0!==this.crossOrigin&&(a.crossOrigin=this.crossOrigin),n.manager.itemStart(e),a.src=e,a}}class CubeTextureLoader extends Loader{constructor(e){super(e)}load(e,t,i,r){const n=new CubeTexture,s=new ImageLoader(this.manager);s.setCrossOrigin(this.crossOrigin),s.setPath(this.path);let a=0;function loadTexture(i){s.load(e[i],(function(e){n.images[i]=e,a++,6===a&&(n.needsUpdate=!0,t&&t(n))}),void 0,r)}for(let o=0;o<e.length;++o)loadTexture(o);return n}}class DataTextureLoader extends Loader{constructor(e){super(e)}load(e,t,i,r){const n=this,s=new DataTexture,a=new FileLoader(this.manager);return a.setResponseType("arraybuffer"),a.setRequestHeader(this.requestHeader),a.setPath(this.path),a.setWithCredentials(n.withCredentials),a.load(e,(function(e){const i=n.parse(e);i&&(void 0!==i.image?s.image=i.image:void 0!==i.data&&(s.image.width=i.width,s.image.height=i.height,s.image.data=i.data),s.wrapS=void 0!==i.wrapS?i.wrapS:ue,s.wrapT=void 0!==i.wrapT?i.wrapT:ue,s.magFilter=void 0!==i.magFilter?i.magFilter:xe,s.minFilter=void 0!==i.minFilter?i.minFilter:xe,s.anisotropy=void 0!==i.anisotropy?i.anisotropy:1,void 0!==i.encoding&&(s.encoding=i.encoding),void 0!==i.flipY&&(s.flipY=i.flipY),void 0!==i.format&&(s.format=i.format),void 0!==i.type&&(s.type=i.type),void 0!==i.mipmaps&&(s.mipmaps=i.mipmaps,s.minFilter=be),1===i.mipmapCount&&(s.minFilter=xe),void 0!==i.generateMipmaps&&(s.generateMipmaps=i.generateMipmaps),s.needsUpdate=!0,t&&t(s,i))}),i,r),s}}class TextureLoader extends Loader{constructor(e){super(e)}load(e,t,i,r){const n=new Texture,s=new ImageLoader(this.manager);return s.setCrossOrigin(this.crossOrigin),s.setPath(this.path),s.load(e,(function(e){n.image=e,n.needsUpdate=!0,void 0!==t&&t(n)}),i,r),n}}class Light extends Object3D{constructor(e,t=1){super(),this.isLight=!0,this.type="Light",this.color=new Color(e),this.intensity=t}dispose(){}copy(e,t){return super.copy(e,t),this.color.copy(e.color),this.intensity=e.intensity,this}toJSON(e){const t=super.toJSON(e);return t.object.color=this.color.getHex(),t.object.intensity=this.intensity,void 0!==this.groundColor&&(t.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(t.object.distance=this.distance),void 0!==this.angle&&(t.object.angle=this.angle),void 0!==this.decay&&(t.object.decay=this.decay),void 0!==this.penumbra&&(t.object.penumbra=this.penumbra),void 0!==this.shadow&&(t.object.shadow=this.shadow.toJSON()),t}}class HemisphereLight extends Light{constructor(e,t,i){super(e,i),this.isHemisphereLight=!0,this.type="HemisphereLight",this.position.copy(Object3D.DefaultUp),this.updateMatrix(),this.groundColor=new Color(t)}copy(e,t){return super.copy(e,t),this.groundColor.copy(e.groundColor),this}}const Hs=new Matrix4,js=new Vector3,qs=new Vector3;class LightShadow{constructor(e){this.camera=e,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new Vector2(512,512),this.map=null,this.mapPass=null,this.matrix=new Matrix4,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Frustum,this._frameExtents=new Vector2(1,1),this._viewportCount=1,this._viewports=[new Vector4(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(e){const t=this.camera,i=this.matrix;js.setFromMatrixPosition(e.matrixWorld),t.position.copy(js),qs.setFromMatrixPosition(e.target.matrixWorld),t.lookAt(qs),t.updateMatrixWorld(),Hs.multiplyMatrices(t.projectionMatrix,t.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Hs),i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(t.projectionMatrix),i.multiply(t.matrixWorldInverse)}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 0!==this.bias&&(e.bias=this.bias),0!==this.normalBias&&(e.normalBias=this.normalBias),1!==this.radius&&(e.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(e.mapSize=this.mapSize.toArray()),e.camera=this.camera.toJSON(!1).object,delete e.camera.matrix,e}}class SpotLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(e){const t=this.camera,i=2*xi*e.angle*this.focus,r=this.mapSize.width/this.mapSize.height,n=e.distance||t.far;i===t.fov&&r===t.aspect&&n===t.far||(t.fov=i,t.aspect=r,t.far=n,t.updateProjectionMatrix()),super.updateMatrices(e)}copy(e){return super.copy(e),this.focus=e.focus,this}}class SpotLight extends Light{constructor(e,t,i=0,r=Math.PI/3,n=0,s=1){super(e,t),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(Object3D.DefaultUp),this.updateMatrix(),this.target=new Object3D,this.distance=i,this.angle=r,this.penumbra=n,this.decay=s,this.shadow=new SpotLightShadow}get power(){return this.intensity*Math.PI}set power(e){this.intensity=e/Math.PI}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.angle=e.angle,this.penumbra=e.penumbra,this.decay=e.decay,this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}const Xs=new Matrix4,Ys=new Vector3,Zs=new Vector3;class PointLightShadow extends LightShadow{constructor(){super(new PerspectiveCamera(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new Vector2(4,2),this._viewportCount=6,this._viewports=[new Vector4(2,1,1,1),new Vector4(0,1,1,1),new Vector4(3,1,1,1),new Vector4(1,1,1,1),new Vector4(3,0,1,1),new Vector4(1,0,1,1)],this._cubeDirections=[new Vector3(1,0,0),new Vector3(-1,0,0),new Vector3(0,0,1),new Vector3(0,0,-1),new Vector3(0,1,0),new Vector3(0,-1,0)],this._cubeUps=[new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,1,0),new Vector3(0,0,1),new Vector3(0,0,-1)]}updateMatrices(e,t=0){const i=this.camera,r=this.matrix,n=e.distance||i.far;n!==i.far&&(i.far=n,i.updateProjectionMatrix()),Ys.setFromMatrixPosition(e.matrixWorld),i.position.copy(Ys),Zs.copy(i.position),Zs.add(this._cubeDirections[t]),i.up.copy(this._cubeUps[t]),i.lookAt(Zs),i.updateMatrixWorld(),r.makeTranslation(-Ys.x,-Ys.y,-Ys.z),Xs.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Xs)}}class PointLight extends Light{constructor(e,t,i=0,r=1){super(e,t),this.isPointLight=!0,this.type="PointLight",this.distance=i,this.decay=r,this.shadow=new PointLightShadow}get power(){return 4*this.intensity*Math.PI}set power(e){this.intensity=e/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(e,t){return super.copy(e,t),this.distance=e.distance,this.decay=e.decay,this.shadow=e.shadow.clone(),this}}class DirectionalLightShadow extends LightShadow{constructor(){super(new OrthographicCamera(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class DirectionalLight extends Light{constructor(e,t){super(e,t),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(Object3D.DefaultUp),this.updateMatrix(),this.target=new Object3D,this.shadow=new DirectionalLightShadow}dispose(){this.shadow.dispose()}copy(e){return super.copy(e),this.target=e.target.clone(),this.shadow=e.shadow.clone(),this}}class AmbientLight extends Light{constructor(e,t){super(e,t),this.isAmbientLight=!0,this.type="AmbientLight"}}class RectAreaLight extends Light{constructor(e,t,i=10,r=10){super(e,t),this.isRectAreaLight=!0,this.type="RectAreaLight",this.width=i,this.height=r}get power(){return this.intensity*this.width*this.height*Math.PI}set power(e){this.intensity=e/(this.width*this.height*Math.PI)}copy(e){return super.copy(e),this.width=e.width,this.height=e.height,this}toJSON(e){const t=super.toJSON(e);return t.object.width=this.width,t.object.height=this.height,t}}class SphericalHarmonics3{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let e=0;e<9;e++)this.coefficients.push(new Vector3)}set(e){for(let t=0;t<9;t++)this.coefficients[t].copy(e[t]);return this}zero(){for(let e=0;e<9;e++)this.coefficients[e].set(0,0,0);return this}getAt(e,t){const i=e.x,r=e.y,n=e.z,s=this.coefficients;return t.copy(s[0]).multiplyScalar(.282095),t.addScaledVector(s[1],.488603*r),t.addScaledVector(s[2],.488603*n),t.addScaledVector(s[3],.488603*i),t.addScaledVector(s[4],i*r*1.092548),t.addScaledVector(s[5],r*n*1.092548),t.addScaledVector(s[6],.315392*(3*n*n-1)),t.addScaledVector(s[7],i*n*1.092548),t.addScaledVector(s[8],.546274*(i*i-r*r)),t}getIrradianceAt(e,t){const i=e.x,r=e.y,n=e.z,s=this.coefficients;return t.copy(s[0]).multiplyScalar(.886227),t.addScaledVector(s[1],1.023328*r),t.addScaledVector(s[2],1.023328*n),t.addScaledVector(s[3],1.023328*i),t.addScaledVector(s[4],.858086*i*r),t.addScaledVector(s[5],.858086*r*n),t.addScaledVector(s[6],.743125*n*n-.247708),t.addScaledVector(s[7],.858086*i*n),t.addScaledVector(s[8],.429043*(i*i-r*r)),t}add(e){for(let t=0;t<9;t++)this.coefficients[t].add(e.coefficients[t]);return this}addScaledSH(e,t){for(let i=0;i<9;i++)this.coefficients[i].addScaledVector(e.coefficients[i],t);return this}scale(e){for(let t=0;t<9;t++)this.coefficients[t].multiplyScalar(e);return this}lerp(e,t){for(let i=0;i<9;i++)this.coefficients[i].lerp(e.coefficients[i],t);return this}equals(e){for(let t=0;t<9;t++)if(!this.coefficients[t].equals(e.coefficients[t]))return!1;return!0}copy(e){return this.set(e.coefficients)}clone(){return(new this.constructor).copy(this)}fromArray(e,t=0){const i=this.coefficients;for(let r=0;r<9;r++)i[r].fromArray(e,t+3*r);return this}toArray(e=[],t=0){const i=this.coefficients;for(let r=0;r<9;r++)i[r].toArray(e,t+3*r);return e}static getBasisAt(e,t){const i=e.x,r=e.y,n=e.z;t[0]=.282095,t[1]=.488603*r,t[2]=.488603*n,t[3]=.488603*i,t[4]=1.092548*i*r,t[5]=1.092548*r*n,t[6]=.315392*(3*n*n-1),t[7]=1.092548*i*n,t[8]=.546274*(i*i-r*r)}}class LightProbe extends Light{constructor(e=new SphericalHarmonics3,t=1){super(void 0,t),this.isLightProbe=!0,this.sh=e}copy(e){return super.copy(e),this.sh.copy(e.sh),this}fromJSON(e){return this.intensity=e.intensity,this.sh.fromArray(e.sh),this}toJSON(e){const t=super.toJSON(e);return t.object.sh=this.sh.toArray(),t}}class MaterialLoader extends Loader{constructor(e){super(e),this.textures={}}load(e,t,i,r){const n=this,s=new FileLoader(n.manager);s.setPath(n.path),s.setRequestHeader(n.requestHeader),s.setWithCredentials(n.withCredentials),s.load(e,(function(i){try{t(n.parse(JSON.parse(i)))}catch(s){r?r(s):console.error(s),n.manager.itemError(e)}}),i,r)}parse(e){const t=this.textures;function getTexture(e){return void 0===t[e]&&console.warn("THREE.MaterialLoader: Undefined texture",e),t[e]}const i=MaterialLoader.createMaterialFromType(e.type);if(void 0!==e.uuid&&(i.uuid=e.uuid),void 0!==e.name&&(i.name=e.name),void 0!==e.color&&void 0!==i.color&&i.color.setHex(e.color),void 0!==e.roughness&&(i.roughness=e.roughness),void 0!==e.metalness&&(i.metalness=e.metalness),void 0!==e.sheen&&(i.sheen=e.sheen),void 0!==e.sheenColor&&(i.sheenColor=(new Color).setHex(e.sheenColor)),void 0!==e.sheenRoughness&&(i.sheenRoughness=e.sheenRoughness),void 0!==e.emissive&&void 0!==i.emissive&&i.emissive.setHex(e.emissive),void 0!==e.specular&&void 0!==i.specular&&i.specular.setHex(e.specular),void 0!==e.specularIntensity&&(i.specularIntensity=e.specularIntensity),void 0!==e.specularColor&&void 0!==i.specularColor&&i.specularColor.setHex(e.specularColor),void 0!==e.shininess&&(i.shininess=e.shininess),void 0!==e.clearcoat&&(i.clearcoat=e.clearcoat),void 0!==e.clearcoatRoughness&&(i.clearcoatRoughness=e.clearcoatRoughness),void 0!==e.iridescence&&(i.iridescence=e.iridescence),void 0!==e.iridescenceIOR&&(i.iridescenceIOR=e.iridescenceIOR),void 0!==e.iridescenceThicknessRange&&(i.iridescenceThicknessRange=e.iridescenceThicknessRange),void 0!==e.transmission&&(i.transmission=e.transmission),void 0!==e.thickness&&(i.thickness=e.thickness),void 0!==e.attenuationDistance&&(i.attenuationDistance=e.attenuationDistance),void 0!==e.attenuationColor&&void 0!==i.attenuationColor&&i.attenuationColor.setHex(e.attenuationColor),void 0!==e.fog&&(i.fog=e.fog),void 0!==e.flatShading&&(i.flatShading=e.flatShading),void 0!==e.blending&&(i.blending=e.blending),void 0!==e.combine&&(i.combine=e.combine),void 0!==e.side&&(i.side=e.side),void 0!==e.shadowSide&&(i.shadowSide=e.shadowSide),void 0!==e.opacity&&(i.opacity=e.opacity),void 0!==e.transparent&&(i.transparent=e.transparent),void 0!==e.alphaTest&&(i.alphaTest=e.alphaTest),void 0!==e.depthTest&&(i.depthTest=e.depthTest),void 0!==e.depthWrite&&(i.depthWrite=e.depthWrite),void 0!==e.colorWrite&&(i.colorWrite=e.colorWrite),void 0!==e.stencilWrite&&(i.stencilWrite=e.stencilWrite),void 0!==e.stencilWriteMask&&(i.stencilWriteMask=e.stencilWriteMask),void 0!==e.stencilFunc&&(i.stencilFunc=e.stencilFunc),void 0!==e.stencilRef&&(i.stencilRef=e.stencilRef),void 0!==e.stencilFuncMask&&(i.stencilFuncMask=e.stencilFuncMask),void 0!==e.stencilFail&&(i.stencilFail=e.stencilFail),void 0!==e.stencilZFail&&(i.stencilZFail=e.stencilZFail),void 0!==e.stencilZPass&&(i.stencilZPass=e.stencilZPass),void 0!==e.wireframe&&(i.wireframe=e.wireframe),void 0!==e.wireframeLinewidth&&(i.wireframeLinewidth=e.wireframeLinewidth),void 0!==e.wireframeLinecap&&(i.wireframeLinecap=e.wireframeLinecap),void 0!==e.wireframeLinejoin&&(i.wireframeLinejoin=e.wireframeLinejoin),void 0!==e.rotation&&(i.rotation=e.rotation),1!==e.linewidth&&(i.linewidth=e.linewidth),void 0!==e.dashSize&&(i.dashSize=e.dashSize),void 0!==e.gapSize&&(i.gapSize=e.gapSize),void 0!==e.scale&&(i.scale=e.scale),void 0!==e.polygonOffset&&(i.polygonOffset=e.polygonOffset),void 0!==e.polygonOffsetFactor&&(i.polygonOffsetFactor=e.polygonOffsetFactor),void 0!==e.polygonOffsetUnits&&(i.polygonOffsetUnits=e.polygonOffsetUnits),void 0!==e.dithering&&(i.dithering=e.dithering),void 0!==e.alphaToCoverage&&(i.alphaToCoverage=e.alphaToCoverage),void 0!==e.premultipliedAlpha&&(i.premultipliedAlpha=e.premultipliedAlpha),void 0!==e.visible&&(i.visible=e.visible),void 0!==e.toneMapped&&(i.toneMapped=e.toneMapped),void 0!==e.userData&&(i.userData=e.userData),void 0!==e.vertexColors&&("number"===typeof e.vertexColors?i.vertexColors=e.vertexColors>0:i.vertexColors=e.vertexColors),void 0!==e.uniforms)for(const r in e.uniforms){const t=e.uniforms[r];switch(i.uniforms[r]={},t.type){case"t":i.uniforms[r].value=getTexture(t.value);break;case"c":i.uniforms[r].value=(new Color).setHex(t.value);break;case"v2":i.uniforms[r].value=(new Vector2).fromArray(t.value);break;case"v3":i.uniforms[r].value=(new Vector3).fromArray(t.value);break;case"v4":i.uniforms[r].value=(new Vector4).fromArray(t.value);break;case"m3":i.uniforms[r].value=(new Matrix3).fromArray(t.value);break;case"m4":i.uniforms[r].value=(new Matrix4).fromArray(t.value);break;default:i.uniforms[r].value=t.value}}if(void 0!==e.defines&&(i.defines=e.defines),void 0!==e.vertexShader&&(i.vertexShader=e.vertexShader),void 0!==e.fragmentShader&&(i.fragmentShader=e.fragmentShader),void 0!==e.extensions)for(const r in e.extensions)i.extensions[r]=e.extensions[r];if(void 0!==e.shading&&(i.flatShading=1===e.shading),void 0!==e.size&&(i.size=e.size),void 0!==e.sizeAttenuation&&(i.sizeAttenuation=e.sizeAttenuation),void 0!==e.map&&(i.map=getTexture(e.map)),void 0!==e.matcap&&(i.matcap=getTexture(e.matcap)),void 0!==e.alphaMap&&(i.alphaMap=getTexture(e.alphaMap)),void 0!==e.bumpMap&&(i.bumpMap=getTexture(e.bumpMap)),void 0!==e.bumpScale&&(i.bumpScale=e.bumpScale),void 0!==e.normalMap&&(i.normalMap=getTexture(e.normalMap)),void 0!==e.normalMapType&&(i.normalMapType=e.normalMapType),void 0!==e.normalScale){let t=e.normalScale;!1===Array.isArray(t)&&(t=[t,t]),i.normalScale=(new Vector2).fromArray(t)}return void 0!==e.displacementMap&&(i.displacementMap=getTexture(e.displacementMap)),void 0!==e.displacementScale&&(i.displacementScale=e.displacementScale),void 0!==e.displacementBias&&(i.displacementBias=e.displacementBias),void 0!==e.roughnessMap&&(i.roughnessMap=getTexture(e.roughnessMap)),void 0!==e.metalnessMap&&(i.metalnessMap=getTexture(e.metalnessMap)),void 0!==e.emissiveMap&&(i.emissiveMap=getTexture(e.emissiveMap)),void 0!==e.emissiveIntensity&&(i.emissiveIntensity=e.emissiveIntensity),void 0!==e.specularMap&&(i.specularMap=getTexture(e.specularMap)),void 0!==e.specularIntensityMap&&(i.specularIntensityMap=getTexture(e.specularIntensityMap)),void 0!==e.specularColorMap&&(i.specularColorMap=getTexture(e.specularColorMap)),void 0!==e.envMap&&(i.envMap=getTexture(e.envMap)),void 0!==e.envMapIntensity&&(i.envMapIntensity=e.envMapIntensity),void 0!==e.reflectivity&&(i.reflectivity=e.reflectivity),void 0!==e.refractionRatio&&(i.refractionRatio=e.refractionRatio),void 0!==e.lightMap&&(i.lightMap=getTexture(e.lightMap)),void 0!==e.lightMapIntensity&&(i.lightMapIntensity=e.lightMapIntensity),void 0!==e.aoMap&&(i.aoMap=getTexture(e.aoMap)),void 0!==e.aoMapIntensity&&(i.aoMapIntensity=e.aoMapIntensity),void 0!==e.gradientMap&&(i.gradientMap=getTexture(e.gradientMap)),void 0!==e.clearcoatMap&&(i.clearcoatMap=getTexture(e.clearcoatMap)),void 0!==e.clearcoatRoughnessMap&&(i.clearcoatRoughnessMap=getTexture(e.clearcoatRoughnessMap)),void 0!==e.clearcoatNormalMap&&(i.clearcoatNormalMap=getTexture(e.clearcoatNormalMap)),void 0!==e.clearcoatNormalScale&&(i.clearcoatNormalScale=(new Vector2).fromArray(e.clearcoatNormalScale)),void 0!==e.iridescenceMap&&(i.iridescenceMap=getTexture(e.iridescenceMap)),void 0!==e.iridescenceThicknessMap&&(i.iridescenceThicknessMap=getTexture(e.iridescenceThicknessMap)),void 0!==e.transmissionMap&&(i.transmissionMap=getTexture(e.transmissionMap)),void 0!==e.thicknessMap&&(i.thicknessMap=getTexture(e.thicknessMap)),void 0!==e.sheenColorMap&&(i.sheenColorMap=getTexture(e.sheenColorMap)),void 0!==e.sheenRoughnessMap&&(i.sheenRoughnessMap=getTexture(e.sheenRoughnessMap)),i}setTextures(e){return this.textures=e,this}static createMaterialFromType(e){return new{ShadowMaterial:ShadowMaterial,SpriteMaterial:SpriteMaterial,RawShaderMaterial:RawShaderMaterial,ShaderMaterial:ShaderMaterial,PointsMaterial:PointsMaterial,MeshPhysicalMaterial:MeshPhysicalMaterial,MeshStandardMaterial:MeshStandardMaterial,MeshPhongMaterial:MeshPhongMaterial,MeshToonMaterial:MeshToonMaterial,MeshNormalMaterial:MeshNormalMaterial,MeshLambertMaterial:MeshLambertMaterial,MeshDepthMaterial:MeshDepthMaterial,MeshDistanceMaterial:MeshDistanceMaterial,MeshBasicMaterial:MeshBasicMaterial,MeshMatcapMaterial:MeshMatcapMaterial,LineDashedMaterial:LineDashedMaterial,LineBasicMaterial:LineBasicMaterial,Material:Material}[e]}}class LoaderUtils{static decodeText(e){if("undefined"!==typeof TextDecoder)return(new TextDecoder).decode(e);let t="";for(let r=0,n=e.length;r<n;r++)t+=String.fromCharCode(e[r]);try{return decodeURIComponent(escape(t))}catch(i){return t}}static extractUrlBase(e){const t=e.lastIndexOf("/");return-1===t?"./":e.slice(0,t+1)}static resolveURL(e,t){return"string"!==typeof e||""===e?"":(/^https?:\/\//i.test(t)&&/^\//.test(e)&&(t=t.replace(/(^https?:\/\/[^\/]+).*/i,"$1")),/^(https?:)?\/\//i.test(e)||/^data:.*,.*$/i.test(e)||/^blob:.*$/i.test(e)?e:t+e)}}class InstancedBufferGeometry extends BufferGeometry{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type="InstancedBufferGeometry",this.instanceCount=1/0}copy(e){return super.copy(e),this.instanceCount=e.instanceCount,this}clone(){return(new this.constructor).copy(this)}toJSON(){const e=super.toJSON(this);return e.instanceCount=this.instanceCount,e.isInstancedBufferGeometry=!0,e}}class BufferGeometryLoader extends Loader{constructor(e){super(e)}load(e,t,i,r){const n=this,s=new FileLoader(n.manager);s.setPath(n.path),s.setRequestHeader(n.requestHeader),s.setWithCredentials(n.withCredentials),s.load(e,(function(i){try{t(n.parse(JSON.parse(i)))}catch(s){r?r(s):console.error(s),n.manager.itemError(e)}}),i,r)}parse(e){const t={},i={};function getInterleavedBuffer(e,r){if(void 0!==t[r])return t[r];const n=e.interleavedBuffers[r],s=function getArrayBuffer(e,t){if(void 0!==i[t])return i[t];const r=e.arrayBuffers,n=r[t],s=new Uint32Array(n).buffer;return i[t]=s,s}(e,n.buffer),a=getTypedArray(n.type,s),o=new InterleavedBuffer(a,n.stride);return o.uuid=n.uuid,t[r]=o,o}const r=e.isInstancedBufferGeometry?new InstancedBufferGeometry:new BufferGeometry,n=e.data.index;if(void 0!==n){const e=getTypedArray(n.type,n.array);r.setIndex(new BufferAttribute(e,1))}const s=e.data.attributes;for(const c in s){const t=s[c];let i;if(t.isInterleavedBufferAttribute){const r=getInterleavedBuffer(e.data,t.data);i=new InterleavedBufferAttribute(r,t.itemSize,t.offset,t.normalized)}else{const e=getTypedArray(t.type,t.array);i=new(t.isInstancedBufferAttribute?InstancedBufferAttribute:BufferAttribute)(e,t.itemSize,t.normalized)}void 0!==t.name&&(i.name=t.name),void 0!==t.usage&&i.setUsage(t.usage),void 0!==t.updateRange&&(i.updateRange.offset=t.updateRange.offset,i.updateRange.count=t.updateRange.count),r.setAttribute(c,i)}const a=e.data.morphAttributes;if(a)for(const c in a){const t=a[c],i=[];for(let r=0,n=t.length;r<n;r++){const n=t[r];let s;if(n.isInterleavedBufferAttribute){const t=getInterleavedBuffer(e.data,n.data);s=new InterleavedBufferAttribute(t,n.itemSize,n.offset,n.normalized)}else{const e=getTypedArray(n.type,n.array);s=new BufferAttribute(e,n.itemSize,n.normalized)}void 0!==n.name&&(s.name=n.name),i.push(s)}r.morphAttributes[c]=i}e.data.morphTargetsRelative&&(r.morphTargetsRelative=!0);const o=e.data.groups||e.data.drawcalls||e.data.offsets;if(void 0!==o)for(let c=0,h=o.length;c!==h;++c){const e=o[c];r.addGroup(e.start,e.count,e.materialIndex)}const l=e.data.boundingSphere;if(void 0!==l){const e=new Vector3;void 0!==l.center&&e.fromArray(l.center),r.boundingSphere=new Sphere(e,l.radius)}return e.name&&(r.name=e.name),e.userData&&(r.userData=e.userData),r}}class ObjectLoader extends Loader{constructor(e){super(e)}load(e,t,i,r){const n=this,s=""===this.path?LoaderUtils.extractUrlBase(e):this.path;this.resourcePath=this.resourcePath||s;const a=new FileLoader(this.manager);a.setPath(this.path),a.setRequestHeader(this.requestHeader),a.setWithCredentials(this.withCredentials),a.load(e,(function(i){let s=null;try{s=JSON.parse(i)}catch(o){return void 0!==r&&r(o),void console.error("THREE:ObjectLoader: Can't parse "+e+".",o.message)}const a=s.metadata;void 0!==a&&void 0!==a.type&&"geometry"!==a.type.toLowerCase()?n.parse(s,t):console.error("THREE.ObjectLoader: Can't load "+e)}),i,r)}async loadAsync(e,t){const i=""===this.path?LoaderUtils.extractUrlBase(e):this.path;this.resourcePath=this.resourcePath||i;const r=new FileLoader(this.manager);r.setPath(this.path),r.setRequestHeader(this.requestHeader),r.setWithCredentials(this.withCredentials);const n=await r.loadAsync(e,t),s=JSON.parse(n),a=s.metadata;if(void 0===a||void 0===a.type||"geometry"===a.type.toLowerCase())throw new Error("THREE.ObjectLoader: Can't load "+e);return await this.parseAsync(s)}parse(e,t){const i=this.parseAnimations(e.animations),r=this.parseShapes(e.shapes),n=this.parseGeometries(e.geometries,r),s=this.parseImages(e.images,(function(){void 0!==t&&t(l)})),a=this.parseTextures(e.textures,s),o=this.parseMaterials(e.materials,a),l=this.parseObject(e.object,n,o,a,i),c=this.parseSkeletons(e.skeletons,l);if(this.bindSkeletons(l,c),void 0!==t){let e=!1;for(const t in s)if(s[t].data instanceof HTMLImageElement){e=!0;break}!1===e&&t(l)}return l}async parseAsync(e){const t=this.parseAnimations(e.animations),i=this.parseShapes(e.shapes),r=this.parseGeometries(e.geometries,i),n=await this.parseImagesAsync(e.images),s=this.parseTextures(e.textures,n),a=this.parseMaterials(e.materials,s),o=this.parseObject(e.object,r,a,s,t),l=this.parseSkeletons(e.skeletons,o);return this.bindSkeletons(o,l),o}parseShapes(e){const t={};if(void 0!==e)for(let i=0,r=e.length;i<r;i++){const r=(new Shape).fromJSON(e[i]);t[r.uuid]=r}return t}parseSkeletons(e,t){const i={},r={};if(t.traverse((function(e){e.isBone&&(r[e.uuid]=e)})),void 0!==e)for(let n=0,s=e.length;n<s;n++){const t=(new Skeleton).fromJSON(e[n],r);i[t.uuid]=t}return i}parseGeometries(e,t){const i={};if(void 0!==e){const r=new BufferGeometryLoader;for(let n=0,s=e.length;n<s;n++){let s;const a=e[n];switch(a.type){case"BufferGeometry":case"InstancedBufferGeometry":s=r.parse(a);break;case"Geometry":console.error("THREE.ObjectLoader: The legacy Geometry type is no longer supported.");break;default:a.type in Fs?s=Fs[a.type].fromJSON(a,t):console.warn(`THREE.ObjectLoader: Unsupported geometry type "${a.type}"`)}s.uuid=a.uuid,void 0!==a.name&&(s.name=a.name),!0===s.isBufferGeometry&&void 0!==a.userData&&(s.userData=a.userData),i[a.uuid]=s}}return i}parseMaterials(e,t){const i={},r={};if(void 0!==e){const n=new MaterialLoader;n.setTextures(t);for(let t=0,s=e.length;t<s;t++){const s=e[t];if("MultiMaterial"===s.type){const e=[];for(let t=0;t<s.materials.length;t++){const r=s.materials[t];void 0===i[r.uuid]&&(i[r.uuid]=n.parse(r)),e.push(i[r.uuid])}r[s.uuid]=e}else void 0===i[s.uuid]&&(i[s.uuid]=n.parse(s)),r[s.uuid]=i[s.uuid]}}return r}parseAnimations(e){const t={};if(void 0!==e)for(let i=0;i<e.length;i++){const r=e[i],n=AnimationClip.parse(r);t[n.uuid]=n}return t}parseImages(e,t){const i=this,r={};let n;function deserializeImage(e){if("string"===typeof e){const t=e;return function loadImage(e){return i.manager.itemStart(e),n.load(e,(function(){i.manager.itemEnd(e)}),void 0,(function(){i.manager.itemError(e),i.manager.itemEnd(e)}))}(/^(\/\/)|([a-z]+:(\/\/)?)/i.test(t)?t:i.resourcePath+t)}return e.data?{data:getTypedArray(e.type,e.data),width:e.width,height:e.height}:null}if(void 0!==e&&e.length>0){const i=new LoadingManager(t);n=new ImageLoader(i),n.setCrossOrigin(this.crossOrigin);for(let t=0,n=e.length;t<n;t++){const i=e[t],n=i.url;if(Array.isArray(n)){const e=[];for(let t=0,i=n.length;t<i;t++){const i=deserializeImage(n[t]);null!==i&&(i instanceof HTMLImageElement?e.push(i):e.push(new DataTexture(i.data,i.width,i.height)))}r[i.uuid]=new Source(e)}else{const e=deserializeImage(i.url);r[i.uuid]=new Source(e)}}}return r}async parseImagesAsync(e){const t=this,i={};let r;async function deserializeImage(e){if("string"===typeof e){const i=e,n=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(i)?i:t.resourcePath+i;return await r.loadAsync(n)}return e.data?{data:getTypedArray(e.type,e.data),width:e.width,height:e.height}:null}if(void 0!==e&&e.length>0){r=new ImageLoader(this.manager),r.setCrossOrigin(this.crossOrigin);for(let t=0,r=e.length;t<r;t++){const r=e[t],n=r.url;if(Array.isArray(n)){const e=[];for(let t=0,i=n.length;t<i;t++){const i=n[t],r=await deserializeImage(i);null!==r&&(r instanceof HTMLImageElement?e.push(r):e.push(new DataTexture(r.data,r.width,r.height)))}i[r.uuid]=new Source(e)}else{const e=await deserializeImage(r.url);i[r.uuid]=new Source(e)}}}return i}parseTextures(e,t){function parseConstant(e,t){return"number"===typeof e?e:(console.warn("THREE.ObjectLoader.parseTexture: Constant should be in numeric form.",e),t[e])}const i={};if(void 0!==e)for(let r=0,n=e.length;r<n;r++){const n=e[r];void 0===n.image&&console.warn('THREE.ObjectLoader: No "image" specified for',n.uuid),void 0===t[n.image]&&console.warn("THREE.ObjectLoader: Undefined image",n.image);const s=t[n.image],a=s.data;let o;Array.isArray(a)?(o=new CubeTexture,6===a.length&&(o.needsUpdate=!0)):(o=a&&a.data?new DataTexture:new Texture,a&&(o.needsUpdate=!0)),o.source=s,o.uuid=n.uuid,void 0!==n.name&&(o.name=n.name),void 0!==n.mapping&&(o.mapping=parseConstant(n.mapping,Js)),void 0!==n.offset&&o.offset.fromArray(n.offset),void 0!==n.repeat&&o.repeat.fromArray(n.repeat),void 0!==n.center&&o.center.fromArray(n.center),void 0!==n.rotation&&(o.rotation=n.rotation),void 0!==n.wrap&&(o.wrapS=parseConstant(n.wrap[0],Ks),o.wrapT=parseConstant(n.wrap[1],Ks)),void 0!==n.format&&(o.format=n.format),void 0!==n.type&&(o.type=n.type),void 0!==n.encoding&&(o.encoding=n.encoding),void 0!==n.minFilter&&(o.minFilter=parseConstant(n.minFilter,Qs)),void 0!==n.magFilter&&(o.magFilter=parseConstant(n.magFilter,Qs)),void 0!==n.anisotropy&&(o.anisotropy=n.anisotropy),void 0!==n.flipY&&(o.flipY=n.flipY),void 0!==n.premultiplyAlpha&&(o.premultiplyAlpha=n.premultiplyAlpha),void 0!==n.unpackAlignment&&(o.unpackAlignment=n.unpackAlignment),void 0!==n.userData&&(o.userData=n.userData),i[n.uuid]=o}return i}parseObject(e,t,i,r,n){let s,a,o;function getGeometry(e){return void 0===t[e]&&console.warn("THREE.ObjectLoader: Undefined geometry",e),t[e]}function getMaterial(e){if(void 0!==e){if(Array.isArray(e)){const t=[];for(let r=0,n=e.length;r<n;r++){const n=e[r];void 0===i[n]&&console.warn("THREE.ObjectLoader: Undefined material",n),t.push(i[n])}return t}return void 0===i[e]&&console.warn("THREE.ObjectLoader: Undefined material",e),i[e]}}function getTexture(e){return void 0===r[e]&&console.warn("THREE.ObjectLoader: Undefined texture",e),r[e]}switch(e.type){case"Scene":s=new Scene,void 0!==e.background&&(Number.isInteger(e.background)?s.background=new Color(e.background):s.background=getTexture(e.background)),void 0!==e.environment&&(s.environment=getTexture(e.environment)),void 0!==e.fog&&("Fog"===e.fog.type?s.fog=new Fog(e.fog.color,e.fog.near,e.fog.far):"FogExp2"===e.fog.type&&(s.fog=new FogExp2(e.fog.color,e.fog.density)));break;case"PerspectiveCamera":s=new PerspectiveCamera(e.fov,e.aspect,e.near,e.far),void 0!==e.focus&&(s.focus=e.focus),void 0!==e.zoom&&(s.zoom=e.zoom),void 0!==e.filmGauge&&(s.filmGauge=e.filmGauge),void 0!==e.filmOffset&&(s.filmOffset=e.filmOffset),void 0!==e.view&&(s.view=Object.assign({},e.view));break;case"OrthographicCamera":s=new OrthographicCamera(e.left,e.right,e.top,e.bottom,e.near,e.far),void 0!==e.zoom&&(s.zoom=e.zoom),void 0!==e.view&&(s.view=Object.assign({},e.view));break;case"AmbientLight":s=new AmbientLight(e.color,e.intensity);break;case"DirectionalLight":s=new DirectionalLight(e.color,e.intensity);break;case"PointLight":s=new PointLight(e.color,e.intensity,e.distance,e.decay);break;case"RectAreaLight":s=new RectAreaLight(e.color,e.intensity,e.width,e.height);break;case"SpotLight":s=new SpotLight(e.color,e.intensity,e.distance,e.angle,e.penumbra,e.decay);break;case"HemisphereLight":s=new HemisphereLight(e.color,e.groundColor,e.intensity);break;case"LightProbe":s=(new LightProbe).fromJSON(e);break;case"SkinnedMesh":a=getGeometry(e.geometry),o=getMaterial(e.material),s=new SkinnedMesh(a,o),void 0!==e.bindMode&&(s.bindMode=e.bindMode),void 0!==e.bindMatrix&&s.bindMatrix.fromArray(e.bindMatrix),void 0!==e.skeleton&&(s.skeleton=e.skeleton);break;case"Mesh":a=getGeometry(e.geometry),o=getMaterial(e.material),s=new Mesh(a,o);break;case"InstancedMesh":a=getGeometry(e.geometry),o=getMaterial(e.material);const t=e.count,i=e.instanceMatrix,r=e.instanceColor;s=new InstancedMesh(a,o,t),s.instanceMatrix=new InstancedBufferAttribute(new Float32Array(i.array),16),void 0!==r&&(s.instanceColor=new InstancedBufferAttribute(new Float32Array(r.array),r.itemSize));break;case"LOD":s=new LOD;break;case"Line":s=new Line(getGeometry(e.geometry),getMaterial(e.material));break;case"LineLoop":s=new LineLoop(getGeometry(e.geometry),getMaterial(e.material));break;case"LineSegments":s=new LineSegments(getGeometry(e.geometry),getMaterial(e.material));break;case"PointCloud":case"Points":s=new Points(getGeometry(e.geometry),getMaterial(e.material));break;case"Sprite":s=new Sprite(getMaterial(e.material));break;case"Group":s=new Group;break;case"Bone":s=new Bone;break;default:s=new Object3D}if(s.uuid=e.uuid,void 0!==e.name&&(s.name=e.name),void 0!==e.matrix?(s.matrix.fromArray(e.matrix),void 0!==e.matrixAutoUpdate&&(s.matrixAutoUpdate=e.matrixAutoUpdate),s.matrixAutoUpdate&&s.matrix.decompose(s.position,s.quaternion,s.scale)):(void 0!==e.position&&s.position.fromArray(e.position),void 0!==e.rotation&&s.rotation.fromArray(e.rotation),void 0!==e.quaternion&&s.quaternion.fromArray(e.quaternion),void 0!==e.scale&&s.scale.fromArray(e.scale)),void 0!==e.castShadow&&(s.castShadow=e.castShadow),void 0!==e.receiveShadow&&(s.receiveShadow=e.receiveShadow),e.shadow&&(void 0!==e.shadow.bias&&(s.shadow.bias=e.shadow.bias),void 0!==e.shadow.normalBias&&(s.shadow.normalBias=e.shadow.normalBias),void 0!==e.shadow.radius&&(s.shadow.radius=e.shadow.radius),void 0!==e.shadow.mapSize&&s.shadow.mapSize.fromArray(e.shadow.mapSize),void 0!==e.shadow.camera&&(s.shadow.camera=this.parseObject(e.shadow.camera))),void 0!==e.visible&&(s.visible=e.visible),void 0!==e.frustumCulled&&(s.frustumCulled=e.frustumCulled),void 0!==e.renderOrder&&(s.renderOrder=e.renderOrder),void 0!==e.userData&&(s.userData=e.userData),void 0!==e.layers&&(s.layers.mask=e.layers),void 0!==e.children){const a=e.children;for(let e=0;e<a.length;e++)s.add(this.parseObject(a[e],t,i,r,n))}if(void 0!==e.animations){const t=e.animations;for(let e=0;e<t.length;e++){const i=t[e];s.animations.push(n[i])}}if("LOD"===e.type){void 0!==e.autoUpdate&&(s.autoUpdate=e.autoUpdate);const t=e.levels;for(let e=0;e<t.length;e++){const i=t[e],r=s.getObjectByProperty("uuid",i.object);void 0!==r&&s.addLevel(r,i.distance)}}return s}bindSkeletons(e,t){0!==Object.keys(t).length&&e.traverse((function(e){if(!0===e.isSkinnedMesh&&void 0!==e.skeleton){const i=t[e.skeleton];void 0===i?console.warn("THREE.ObjectLoader: No skeleton found with UUID:",e.skeleton):e.bind(i,e.bindMatrix)}}))}}const Js={UVMapping:ne,CubeReflectionMapping:se,CubeRefractionMapping:ae,EquirectangularReflectionMapping:oe,EquirectangularRefractionMapping:le,CubeUVReflectionMapping:ce},Ks={RepeatWrapping:he,ClampToEdgeWrapping:ue,MirroredRepeatWrapping:de},Qs={NearestFilter:pe,NearestMipmapNearestFilter:me,NearestMipmapLinearFilter:ge,LinearFilter:xe,LinearMipmapNearestFilter:ye,LinearMipmapLinearFilter:be};class ImageBitmapLoader extends Loader{constructor(e){super(e),this.isImageBitmapLoader=!0,"undefined"===typeof createImageBitmap&&console.warn("THREE.ImageBitmapLoader: createImageBitmap() not supported."),"undefined"===typeof fetch&&console.warn("THREE.ImageBitmapLoader: fetch() not supported."),this.options={premultiplyAlpha:"none"}}setOptions(e){return this.options=e,this}load(e,t,i,r){void 0===e&&(e=""),void 0!==this.path&&(e=this.path+e),e=this.manager.resolveURL(e);const n=this,s=Us.get(e);if(void 0!==s)return n.manager.itemStart(e),setTimeout((function(){t&&t(s),n.manager.itemEnd(e)}),0),s;const a={};a.credentials="anonymous"===this.crossOrigin?"same-origin":"include",a.headers=this.requestHeader,fetch(e,a).then((function(e){return e.blob()})).then((function(e){return createImageBitmap(e,Object.assign(n.options,{colorSpaceConversion:"none"}))})).then((function(i){Us.add(e,i),t&&t(i),n.manager.itemEnd(e)})).catch((function(t){r&&r(t),n.manager.itemError(e),n.manager.itemEnd(e)})),n.manager.itemStart(e)}}let $s;const ea={getContext:function(){return void 0===$s&&($s=new(window.AudioContext||window.webkitAudioContext)),$s},setContext:function(e){$s=e}};class AudioLoader extends Loader{constructor(e){super(e)}load(e,t,i,r){const n=this,s=new FileLoader(this.manager);s.setResponseType("arraybuffer"),s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials),s.load(e,(function(i){try{const e=i.slice(0);ea.getContext().decodeAudioData(e,(function(e){t(e)}))}catch(s){r?r(s):console.error(s),n.manager.itemError(e)}}),i,r)}}class HemisphereLightProbe extends LightProbe{constructor(e,t,i=1){super(void 0,i),this.isHemisphereLightProbe=!0;const r=(new Color).set(e),n=(new Color).set(t),s=new Vector3(r.r,r.g,r.b),a=new Vector3(n.r,n.g,n.b),o=Math.sqrt(Math.PI),l=o*Math.sqrt(.75);this.sh.coefficients[0].copy(s).add(a).multiplyScalar(o),this.sh.coefficients[1].copy(s).sub(a).multiplyScalar(l)}}class AmbientLightProbe extends LightProbe{constructor(e,t=1){super(void 0,t),this.isAmbientLightProbe=!0;const i=(new Color).set(e);this.sh.coefficients[0].set(i.r,i.g,i.b).multiplyScalar(2*Math.sqrt(Math.PI))}}const ta=new Matrix4,ia=new Matrix4,ra=new Matrix4;class StereoCamera{constructor(){this.type="StereoCamera",this.aspect=1,this.eyeSep=.064,this.cameraL=new PerspectiveCamera,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new PerspectiveCamera,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(e){const t=this._cache;if(t.focus!==e.focus||t.fov!==e.fov||t.aspect!==e.aspect*this.aspect||t.near!==e.near||t.far!==e.far||t.zoom!==e.zoom||t.eyeSep!==this.eyeSep){t.focus=e.focus,t.fov=e.fov,t.aspect=e.aspect*this.aspect,t.near=e.near,t.far=e.far,t.zoom=e.zoom,t.eyeSep=this.eyeSep,ra.copy(e.projectionMatrix);const i=t.eyeSep/2,r=i*t.near/t.focus,n=t.near*Math.tan(vi*t.fov*.5)/t.zoom;let s,a;ia.elements[12]=-i,ta.elements[12]=i,s=-n*t.aspect+r,a=n*t.aspect+r,ra.elements[0]=2*t.near/(a-s),ra.elements[8]=(a+s)/(a-s),this.cameraL.projectionMatrix.copy(ra),s=-n*t.aspect-r,a=n*t.aspect-r,ra.elements[0]=2*t.near/(a-s),ra.elements[8]=(a+s)/(a-s),this.cameraR.projectionMatrix.copy(ra)}this.cameraL.matrixWorld.copy(e.matrixWorld).multiply(ia),this.cameraR.matrixWorld.copy(e.matrixWorld).multiply(ta)}}class Clock{constructor(e=!0){this.autoStart=e,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let e=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const t=now();e=(t-this.oldTime)/1e3,this.oldTime=t,this.elapsedTime+=e}return e}}function now(){return("undefined"===typeof performance?Date:performance).now()}const na=new Vector3,sa=new Quaternion,aa=new Vector3,oa=new Vector3;class AudioListener extends Object3D{constructor(){super(),this.type="AudioListener",this.context=ea.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Clock}getInput(){return this.gain}removeFilter(){return null!==this.filter&&(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(e){return null!==this.filter?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=e,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}updateMatrixWorld(e){super.updateMatrixWorld(e);const t=this.context.listener,i=this.up;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(na,sa,aa),oa.set(0,0,-1).applyQuaternion(sa),t.positionX){const e=this.context.currentTime+this.timeDelta;t.positionX.linearRampToValueAtTime(na.x,e),t.positionY.linearRampToValueAtTime(na.y,e),t.positionZ.linearRampToValueAtTime(na.z,e),t.forwardX.linearRampToValueAtTime(oa.x,e),t.forwardY.linearRampToValueAtTime(oa.y,e),t.forwardZ.linearRampToValueAtTime(oa.z,e),t.upX.linearRampToValueAtTime(i.x,e),t.upY.linearRampToValueAtTime(i.y,e),t.upZ.linearRampToValueAtTime(i.z,e)}else t.setPosition(na.x,na.y,na.z),t.setOrientation(oa.x,oa.y,oa.z,i.x,i.y,i.z)}}class Audio extends Object3D{constructor(e){super(),this.type="Audio",this.listener=e,this.context=e.context,this.gain=this.context.createGain(),this.gain.connect(e.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType="empty",this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(e){return this.hasPlaybackControl=!1,this.sourceType="audioNode",this.source=e,this.connect(),this}setMediaElementSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaNode",this.source=this.context.createMediaElementSource(e),this.connect(),this}setMediaStreamSource(e){return this.hasPlaybackControl=!1,this.sourceType="mediaStreamNode",this.source=this.context.createMediaStreamSource(e),this.connect(),this}setBuffer(e){return this.buffer=e,this.sourceType="buffer",this.autoplay&&this.play(),this}play(e=0){if(!0===this.isPlaying)return void console.warn("THREE.Audio: Audio is already playing.");if(!1===this.hasPlaybackControl)return void console.warn("THREE.Audio: this Audio has no playback control.");this._startedAt=this.context.currentTime+e;const t=this.context.createBufferSource();return t.buffer=this.buffer,t.loop=this.loop,t.loopStart=this.loopStart,t.loopEnd=this.loopEnd,t.onended=this.onEnded.bind(this),t.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=t,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(!1!==this.hasPlaybackControl)return!0===this.isPlaying&&(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,!0===this.loop&&(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this;console.warn("THREE.Audio: this Audio has no playback control.")}stop(){if(!1!==this.hasPlaybackControl)return this._progress=0,this.source.stop(),this.source.onended=null,this.isPlaying=!1,this;console.warn("THREE.Audio: this Audio has no playback control.")}connect(){if(this.filters.length>0){this.source.connect(this.filters[0]);for(let e=1,t=this.filters.length;e<t;e++)this.filters[e-1].connect(this.filters[e]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this.filters.length>0){this.source.disconnect(this.filters[0]);for(let e=1,t=this.filters.length;e<t;e++)this.filters[e-1].disconnect(this.filters[e]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}getFilters(){return this.filters}setFilters(e){return e||(e=[]),!0===this._connected?(this.disconnect(),this.filters=e.slice(),this.connect()):this.filters=e.slice(),this}setDetune(e){if(this.detune=e,void 0!==this.source.detune)return!0===this.isPlaying&&this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(e){return this.setFilters(e?[e]:[])}setPlaybackRate(e){if(!1!==this.hasPlaybackControl)return this.playbackRate=e,!0===this.isPlaying&&this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this;console.warn("THREE.Audio: this Audio has no playback control.")}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1}getLoop(){return!1===this.hasPlaybackControl?(console.warn("THREE.Audio: this Audio has no playback control."),!1):this.loop}setLoop(e){if(!1!==this.hasPlaybackControl)return this.loop=e,!0===this.isPlaying&&(this.source.loop=this.loop),this;console.warn("THREE.Audio: this Audio has no playback control.")}setLoopStart(e){return this.loopStart=e,this}setLoopEnd(e){return this.loopEnd=e,this}getVolume(){return this.gain.gain.value}setVolume(e){return this.gain.gain.setTargetAtTime(e,this.context.currentTime,.01),this}}const la=new Vector3,ca=new Quaternion,ha=new Vector3,ua=new Vector3;class PositionalAudio extends Audio{constructor(e){super(e),this.panner=this.context.createPanner(),this.panner.panningModel="HRTF",this.panner.connect(this.gain)}disconnect(){super.disconnect(),this.panner.disconnect(this.gain)}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(e){return this.panner.refDistance=e,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(e){return this.panner.rolloffFactor=e,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(e){return this.panner.distanceModel=e,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(e){return this.panner.maxDistance=e,this}setDirectionalCone(e,t,i){return this.panner.coneInnerAngle=e,this.panner.coneOuterAngle=t,this.panner.coneOuterGain=i,this}updateMatrixWorld(e){if(super.updateMatrixWorld(e),!0===this.hasPlaybackControl&&!1===this.isPlaying)return;this.matrixWorld.decompose(la,ca,ha),ua.set(0,0,1).applyQuaternion(ca);const t=this.panner;if(t.positionX){const e=this.context.currentTime+this.listener.timeDelta;t.positionX.linearRampToValueAtTime(la.x,e),t.positionY.linearRampToValueAtTime(la.y,e),t.positionZ.linearRampToValueAtTime(la.z,e),t.orientationX.linearRampToValueAtTime(ua.x,e),t.orientationY.linearRampToValueAtTime(ua.y,e),t.orientationZ.linearRampToValueAtTime(ua.z,e)}else t.setPosition(la.x,la.y,la.z),t.setOrientation(ua.x,ua.y,ua.z)}}class AudioAnalyser{constructor(e,t=2048){this.analyser=e.context.createAnalyser(),this.analyser.fftSize=t,this.data=new Uint8Array(this.analyser.frequencyBinCount),e.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let e=0;const t=this.getFrequencyData();for(let i=0;i<t.length;i++)e+=t[i];return e/t.length}}class PropertyMixer{constructor(e,t,i){let r,n,s;switch(this.binding=e,this.valueSize=i,t){case"quaternion":r=this._slerp,n=this._slerpAdditive,s=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(6*i),this._workIndex=5;break;case"string":case"bool":r=this._select,n=this._select,s=this._setAdditiveIdentityOther,this.buffer=new Array(5*i);break;default:r=this._lerp,n=this._lerpAdditive,s=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(5*i)}this._mixBufferRegion=r,this._mixBufferRegionAdditive=n,this._setIdentity=s,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(e,t){const i=this.buffer,r=this.valueSize,n=e*r+r;let s=this.cumulativeWeight;if(0===s){for(let e=0;e!==r;++e)i[n+e]=i[e];s=t}else{s+=t;const e=t/s;this._mixBufferRegion(i,n,0,e,r)}this.cumulativeWeight=s}accumulateAdditive(e){const t=this.buffer,i=this.valueSize,r=i*this._addIndex;0===this.cumulativeWeightAdditive&&this._setIdentity(),this._mixBufferRegionAdditive(t,r,0,e,i),this.cumulativeWeightAdditive+=e}apply(e){const t=this.valueSize,i=this.buffer,r=e*t+t,n=this.cumulativeWeight,s=this.cumulativeWeightAdditive,a=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,n<1){const e=t*this._origIndex;this._mixBufferRegion(i,r,e,1-n,t)}s>0&&this._mixBufferRegionAdditive(i,r,this._addIndex*t,1,t);for(let o=t,l=t+t;o!==l;++o)if(i[o]!==i[o+t]){a.setValue(i,r);break}}saveOriginalState(){const e=this.binding,t=this.buffer,i=this.valueSize,r=i*this._origIndex;e.getValue(t,r);for(let n=i,s=r;n!==s;++n)t[n]=t[r+n%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){const e=3*this.valueSize;this.binding.setValue(this.buffer,e)}_setAdditiveIdentityNumeric(){const e=this._addIndex*this.valueSize,t=e+this.valueSize;for(let i=e;i<t;i++)this.buffer[i]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){const e=this._origIndex*this.valueSize,t=this._addIndex*this.valueSize;for(let i=0;i<this.valueSize;i++)this.buffer[t+i]=this.buffer[e+i]}_select(e,t,i,r,n){if(r>=.5)for(let s=0;s!==n;++s)e[t+s]=e[i+s]}_slerp(e,t,i,r){Quaternion.slerpFlat(e,t,e,t,e,i,r)}_slerpAdditive(e,t,i,r,n){const s=this._workIndex*n;Quaternion.multiplyQuaternionsFlat(e,s,e,t,e,i),Quaternion.slerpFlat(e,t,e,t,e,s,r)}_lerp(e,t,i,r,n){const s=1-r;for(let a=0;a!==n;++a){const n=t+a;e[n]=e[n]*s+e[i+a]*r}}_lerpAdditive(e,t,i,r,n){for(let s=0;s!==n;++s){const n=t+s;e[n]=e[n]+e[i+s]*r}}}const da="\\[\\]\\.:\\/",pa=new RegExp("["+da+"]","g"),ma="[^"+da+"]",fa="[^"+da.replace("\\.","")+"]",ga=new RegExp("^"+/((?:WC+[\/:])*)/.source.replace("WC",ma)+/(WCOD+)?/.source.replace("WCOD",fa)+/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",ma)+/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",ma)+"$"),va=["material","materials","bones"];class PropertyBinding{constructor(e,t,i){this.path=t,this.parsedPath=i||PropertyBinding.parseTrackName(t),this.node=PropertyBinding.findNode(e,this.parsedPath.nodeName)||e,this.rootNode=e,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(e,t,i){return e&&e.isAnimationObjectGroup?new PropertyBinding.Composite(e,t,i):new PropertyBinding(e,t,i)}static sanitizeNodeName(e){return e.replace(/\s/g,"_").replace(pa,"")}static parseTrackName(e){const t=ga.exec(e);if(null===t)throw new Error("PropertyBinding: Cannot parse trackName: "+e);const i={nodeName:t[2],objectName:t[3],objectIndex:t[4],propertyName:t[5],propertyIndex:t[6]},r=i.nodeName&&i.nodeName.lastIndexOf(".");if(void 0!==r&&-1!==r){const e=i.nodeName.substring(r+1);-1!==va.indexOf(e)&&(i.nodeName=i.nodeName.substring(0,r),i.objectName=e)}if(null===i.propertyName||0===i.propertyName.length)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+e);return i}static findNode(e,t){if(void 0===t||""===t||"."===t||-1===t||t===e.name||t===e.uuid)return e;if(e.skeleton){const i=e.skeleton.getBoneByName(t);if(void 0!==i)return i}if(e.children){const searchNodeSubtree=function(e){for(let i=0;i<e.length;i++){const r=e[i];if(r.name===t||r.uuid===t)return r;const n=searchNodeSubtree(r.children);if(n)return n}return null},i=searchNodeSubtree(e.children);if(i)return i}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(e,t){e[t]=this.targetObject[this.propertyName]}_getValue_array(e,t){const i=this.resolvedProperty;for(let r=0,n=i.length;r!==n;++r)e[t++]=i[r]}_getValue_arrayElement(e,t){e[t]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(e,t){this.resolvedProperty.toArray(e,t)}_setValue_direct(e,t){this.targetObject[this.propertyName]=e[t]}_setValue_direct_setNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(e,t){this.targetObject[this.propertyName]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(e,t){const i=this.resolvedProperty;for(let r=0,n=i.length;r!==n;++r)i[r]=e[t++]}_setValue_array_setNeedsUpdate(e,t){const i=this.resolvedProperty;for(let r=0,n=i.length;r!==n;++r)i[r]=e[t++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(e,t){const i=this.resolvedProperty;for(let r=0,n=i.length;r!==n;++r)i[r]=e[t++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(e,t){this.resolvedProperty[this.propertyIndex]=e[t]}_setValue_arrayElement_setNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty[this.propertyIndex]=e[t],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(e,t){this.resolvedProperty.fromArray(e,t)}_setValue_fromArray_setNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(e,t){this.resolvedProperty.fromArray(e,t),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(e,t){this.bind(),this.getValue(e,t)}_setValue_unbound(e,t){this.bind(),this.setValue(e,t)}bind(){let e=this.node;const t=this.parsedPath,i=t.objectName,r=t.propertyName;let n=t.propertyIndex;if(e||(e=PropertyBinding.findNode(this.rootNode,t.nodeName)||this.rootNode,this.node=e),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!e)return void console.error("THREE.PropertyBinding: Trying to update node for track: "+this.path+" but it wasn't found.");if(i){let r=t.objectIndex;switch(i){case"materials":if(!e.material)return void console.error("THREE.PropertyBinding: Can not bind to material as node does not have a material.",this);if(!e.material.materials)return void console.error("THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.",this);e=e.material.materials;break;case"bones":if(!e.skeleton)return void console.error("THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.",this);e=e.skeleton.bones;for(let t=0;t<e.length;t++)if(e[t].name===r){r=t;break}break;default:if(void 0===e[i])return void console.error("THREE.PropertyBinding: Can not bind to objectName of node undefined.",this);e=e[i]}if(void 0!==r){if(void 0===e[r])return void console.error("THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.",this,e);e=e[r]}}const s=e[r];if(void 0===s){const i=t.nodeName;return void console.error("THREE.PropertyBinding: Trying to update property for track: "+i+"."+r+" but it wasn't found.",e)}let a=this.Versioning.None;this.targetObject=e,void 0!==e.needsUpdate?a=this.Versioning.NeedsUpdate:void 0!==e.matrixWorldNeedsUpdate&&(a=this.Versioning.MatrixWorldNeedsUpdate);let o=this.BindingType.Direct;if(void 0!==n){if("morphTargetInfluences"===r){if(!e.geometry)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.",this);if(!e.geometry.morphAttributes)return void console.error("THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.",this);void 0!==e.morphTargetDictionary[n]&&(n=e.morphTargetDictionary[n])}o=this.BindingType.ArrayElement,this.resolvedProperty=s,this.propertyIndex=n}else void 0!==s.fromArray&&void 0!==s.toArray?(o=this.BindingType.HasFromToArray,this.resolvedProperty=s):Array.isArray(s)?(o=this.BindingType.EntireArray,this.resolvedProperty=s):this.propertyName=r;this.getValue=this.GetterByBindingType[o],this.setValue=this.SetterByBindingTypeAndVersioning[o][a]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}}PropertyBinding.Composite=class Composite{constructor(e,t,i){const r=i||PropertyBinding.parseTrackName(t);this._targetGroup=e,this._bindings=e.subscribe_(t,r)}getValue(e,t){this.bind();const i=this._targetGroup.nCachedObjects_,r=this._bindings[i];void 0!==r&&r.getValue(e,t)}setValue(e,t){const i=this._bindings;for(let r=this._targetGroup.nCachedObjects_,n=i.length;r!==n;++r)i[r].setValue(e,t)}bind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].bind()}unbind(){const e=this._bindings;for(let t=this._targetGroup.nCachedObjects_,i=e.length;t!==i;++t)e[t].unbind()}},PropertyBinding.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3},PropertyBinding.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2},PropertyBinding.prototype.GetterByBindingType=[PropertyBinding.prototype._getValue_direct,PropertyBinding.prototype._getValue_array,PropertyBinding.prototype._getValue_arrayElement,PropertyBinding.prototype._getValue_toArray],PropertyBinding.prototype.SetterByBindingTypeAndVersioning=[[PropertyBinding.prototype._setValue_direct,PropertyBinding.prototype._setValue_direct_setNeedsUpdate,PropertyBinding.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_array,PropertyBinding.prototype._setValue_array_setNeedsUpdate,PropertyBinding.prototype._setValue_array_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_arrayElement,PropertyBinding.prototype._setValue_arrayElement_setNeedsUpdate,PropertyBinding.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[PropertyBinding.prototype._setValue_fromArray,PropertyBinding.prototype._setValue_fromArray_setNeedsUpdate,PropertyBinding.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];class AnimationObjectGroup{constructor(){this.isAnimationObjectGroup=!0,this.uuid=generateUUID(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;const e={};this._indicesByUUID=e;for(let i=0,r=arguments.length;i!==r;++i)e[arguments[i].uuid]=i;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};const t=this;this.stats={objects:{get total(){return t._objects.length},get inUse(){return this.total-t.nCachedObjects_}},get bindingsPerObject(){return t._bindings.length}}}add(){const e=this._objects,t=this._indicesByUUID,i=this._paths,r=this._parsedPaths,n=this._bindings,s=n.length;let a,o=e.length,l=this.nCachedObjects_;for(let c=0,h=arguments.length;c!==h;++c){const h=arguments[c],u=h.uuid;let d=t[u];if(void 0===d){d=o++,t[u]=d,e.push(h);for(let e=0,t=s;e!==t;++e)n[e].push(new PropertyBinding(h,i[e],r[e]))}else if(d<l){a=e[d];const o=--l,c=e[o];t[c.uuid]=d,e[d]=c,t[u]=o,e[o]=h;for(let e=0,t=s;e!==t;++e){const t=n[e],s=t[o];let a=t[d];t[d]=s,void 0===a&&(a=new PropertyBinding(h,i[e],r[e])),t[o]=a}}else e[d]!==a&&console.error("THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.")}this.nCachedObjects_=l}remove(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let n=this.nCachedObjects_;for(let s=0,a=arguments.length;s!==a;++s){const a=arguments[s],o=a.uuid,l=t[o];if(void 0!==l&&l>=n){const s=n++,c=e[s];t[c.uuid]=l,e[l]=c,t[o]=s,e[s]=a;for(let e=0,t=r;e!==t;++e){const t=i[e],r=t[s],n=t[l];t[l]=r,t[s]=n}}}this.nCachedObjects_=n}uncache(){const e=this._objects,t=this._indicesByUUID,i=this._bindings,r=i.length;let n=this.nCachedObjects_,s=e.length;for(let a=0,o=arguments.length;a!==o;++a){const o=arguments[a].uuid,l=t[o];if(void 0!==l)if(delete t[o],l<n){const a=--n,o=e[a],c=--s,h=e[c];t[o.uuid]=l,e[l]=o,t[h.uuid]=a,e[a]=h,e.pop();for(let e=0,t=r;e!==t;++e){const t=i[e],r=t[a],n=t[c];t[l]=r,t[a]=n,t.pop()}}else{const n=--s,a=e[n];n>0&&(t[a.uuid]=l),e[l]=a,e.pop();for(let e=0,t=r;e!==t;++e){const t=i[e];t[l]=t[n],t.pop()}}}this.nCachedObjects_=n}subscribe_(e,t){const i=this._bindingsIndicesByPath;let r=i[e];const n=this._bindings;if(void 0!==r)return n[r];const s=this._paths,a=this._parsedPaths,o=this._objects,l=o.length,c=this.nCachedObjects_,h=new Array(l);r=n.length,i[e]=r,s.push(e),a.push(t),n.push(h);for(let u=c,d=o.length;u!==d;++u){const i=o[u];h[u]=new PropertyBinding(i,e,t)}return h}unsubscribe_(e){const t=this._bindingsIndicesByPath,i=t[e];if(void 0!==i){const r=this._paths,n=this._parsedPaths,s=this._bindings,a=s.length-1,o=s[a];t[e[a]]=i,s[i]=o,s.pop(),n[i]=n[a],n.pop(),r[i]=r[a],r.pop()}}}class AnimationAction{constructor(e,t,i=null,r=t.blendMode){this._mixer=e,this._clip=t,this._localRoot=i,this.blendMode=r;const n=t.tracks,s=n.length,a=new Array(s),o={endingStart:wt,endingEnd:wt};for(let l=0;l!==s;++l){const e=n[l].createInterpolant(null);a[l]=e,e.settings=o}this._interpolantSettings=o,this._interpolants=a,this._propertyBindings=new Array(s),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=yt,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&&!this.paused&&0!==this.timeScale&&null===this._startTime&&this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(e){return this._startTime=e,this}setLoop(e,t){return this.loop=e,this.repetitions=t,this}setEffectiveWeight(e){return this.weight=e,this._effectiveWeight=this.enabled?e:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(e){return this._scheduleFading(e,0,1)}fadeOut(e){return this._scheduleFading(e,1,0)}crossFadeFrom(e,t,i){if(e.fadeOut(t),this.fadeIn(t),i){const i=this._clip.duration,r=e._clip.duration,n=r/i,s=i/r;e.warp(1,n,t),this.warp(s,1,t)}return this}crossFadeTo(e,t,i){return e.crossFadeFrom(this,t,i)}stopFading(){const e=this._weightInterpolant;return null!==e&&(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}setEffectiveTimeScale(e){return this.timeScale=e,this._effectiveTimeScale=this.paused?0:e,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(e){return this.timeScale=this._clip.duration/e,this.stopWarping()}syncWith(e){return this.time=e.time,this.timeScale=e.timeScale,this.stopWarping()}halt(e){return this.warp(this._effectiveTimeScale,0,e)}warp(e,t,i){const r=this._mixer,n=r.time,s=this.timeScale;let a=this._timeScaleInterpolant;null===a&&(a=r._lendControlInterpolant(),this._timeScaleInterpolant=a);const o=a.parameterPositions,l=a.sampleValues;return o[0]=n,o[1]=n+i,l[0]=e/s,l[1]=t/s,this}stopWarping(){const e=this._timeScaleInterpolant;return null!==e&&(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(e)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(e,t,i,r){if(!this.enabled)return void this._updateWeight(e);const n=this._startTime;if(null!==n){const r=(e-n)*i;if(r<0||0===i)return;this._startTime=null,t=i*r}t*=this._updateTimeScale(e);const s=this._updateTime(t),a=this._updateWeight(e);if(a>0){const e=this._interpolants,t=this._propertyBindings;if(this.blendMode===Et)for(let i=0,r=e.length;i!==r;++i)e[i].evaluate(s),t[i].accumulateAdditive(a);else for(let i=0,n=e.length;i!==n;++i)e[i].evaluate(s),t[i].accumulate(r,a)}}_updateWeight(e){let t=0;if(this.enabled){t=this.weight;const i=this._weightInterpolant;if(null!==i){const r=i.evaluate(e)[0];t*=r,e>i.parameterPositions[1]&&(this.stopFading(),0===r&&(this.enabled=!1))}}return this._effectiveWeight=t,t}_updateTimeScale(e){let t=0;if(!this.paused){t=this.timeScale;const i=this._timeScaleInterpolant;if(null!==i){t*=i.evaluate(e)[0],e>i.parameterPositions[1]&&(this.stopWarping(),0===t?this.paused=!0:this.timeScale=t)}}return this._effectiveTimeScale=t,t}_updateTime(e){const t=this._clip.duration,i=this.loop;let r=this.time+e,n=this._loopCount;const s=i===_t;if(0===e)return-1===n?r:s&&1===(1&n)?t-r:r;if(i===xt){-1===n&&(this._loopCount=0,this._setEndings(!0,!0,!1));e:{if(r>=t)r=t;else{if(!(r<0)){this.time=r;break e}r=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e<0?-1:1})}}else{if(-1===n&&(e>=0?(n=0,this._setEndings(!0,0===this.repetitions,s)):this._setEndings(0===this.repetitions,!0,s)),r>=t||r<0){const i=Math.floor(r/t);r-=t*i,n+=Math.abs(i);const a=this.repetitions-n;if(a<=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,r=e>0?t:0,this.time=r,this._mixer.dispatchEvent({type:"finished",action:this,direction:e>0?1:-1});else{if(1===a){const t=e<0;this._setEndings(t,!t,s)}else this._setEndings(!1,!1,s);this._loopCount=n,this.time=r,this._mixer.dispatchEvent({type:"loop",action:this,loopDelta:i})}}else this.time=r;if(s&&1===(1&n))return t-r}return r}_setEndings(e,t,i){const r=this._interpolantSettings;i?(r.endingStart=Tt,r.endingEnd=Tt):(r.endingStart=e?this.zeroSlopeAtStart?Tt:wt:At,r.endingEnd=t?this.zeroSlopeAtEnd?Tt:wt:At)}_scheduleFading(e,t,i){const r=this._mixer,n=r.time;let s=this._weightInterpolant;null===s&&(s=r._lendControlInterpolant(),this._weightInterpolant=s);const a=s.parameterPositions,o=s.sampleValues;return a[0]=n,o[0]=t,a[1]=n+e,o[1]=i,this}}const xa=new Float32Array(1);class AnimationMixer extends EventDispatcher{constructor(e){super(),this._root=e,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(e,t){const i=e._localRoot||this._root,r=e._clip.tracks,n=r.length,s=e._propertyBindings,a=e._interpolants,o=i.uuid,l=this._bindingsByRootAndName;let c=l[o];void 0===c&&(c={},l[o]=c);for(let h=0;h!==n;++h){const e=r[h],n=e.name;let l=c[n];if(void 0!==l)++l.referenceCount,s[h]=l;else{if(l=s[h],void 0!==l){null===l._cacheIndex&&(++l.referenceCount,this._addInactiveBinding(l,o,n));continue}const r=t&&t._propertyBindings[h].binding.parsedPath;l=new PropertyMixer(PropertyBinding.create(i,n,r),e.ValueTypeName,e.getValueSize()),++l.referenceCount,this._addInactiveBinding(l,o,n),s[h]=l}a[h].resultBuffer=l.buffer}}_activateAction(e){if(!this._isActiveAction(e)){if(null===e._cacheIndex){const t=(e._localRoot||this._root).uuid,i=e._clip.uuid,r=this._actionsByClip[i];this._bindAction(e,r&&r.knownActions[0]),this._addInactiveAction(e,i,t)}const t=e._propertyBindings;for(let e=0,i=t.length;e!==i;++e){const i=t[e];0===i.useCount++&&(this._lendBinding(i),i.saveOriginalState())}this._lendAction(e)}}_deactivateAction(e){if(this._isActiveAction(e)){const t=e._propertyBindings;for(let e=0,i=t.length;e!==i;++e){const i=t[e];0===--i.useCount&&(i.restoreOriginalState(),this._takeBackBinding(i))}this._takeBackAction(e)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;const e=this;this.stats={actions:{get total(){return e._actions.length},get inUse(){return e._nActiveActions}},bindings:{get total(){return e._bindings.length},get inUse(){return e._nActiveBindings}},controlInterpolants:{get total(){return e._controlInterpolants.length},get inUse(){return e._nActiveControlInterpolants}}}}_isActiveAction(e){const t=e._cacheIndex;return null!==t&&t<this._nActiveActions}_addInactiveAction(e,t,i){const r=this._actions,n=this._actionsByClip;let s=n[t];if(void 0===s)s={knownActions:[e],actionByRoot:{}},e._byClipCacheIndex=0,n[t]=s;else{const t=s.knownActions;e._byClipCacheIndex=t.length,t.push(e)}e._cacheIndex=r.length,r.push(e),s.actionByRoot[i]=e}_removeInactiveAction(e){const t=this._actions,i=t[t.length-1],r=e._cacheIndex;i._cacheIndex=r,t[r]=i,t.pop(),e._cacheIndex=null;const n=e._clip.uuid,s=this._actionsByClip,a=s[n],o=a.knownActions,l=o[o.length-1],c=e._byClipCacheIndex;l._byClipCacheIndex=c,o[c]=l,o.pop(),e._byClipCacheIndex=null;delete a.actionByRoot[(e._localRoot||this._root).uuid],0===o.length&&delete s[n],this._removeInactiveBindingsForAction(e)}_removeInactiveBindingsForAction(e){const t=e._propertyBindings;for(let i=0,r=t.length;i!==r;++i){const e=t[i];0===--e.referenceCount&&this._removeInactiveBinding(e)}}_lendAction(e){const t=this._actions,i=e._cacheIndex,r=this._nActiveActions++,n=t[r];e._cacheIndex=r,t[r]=e,n._cacheIndex=i,t[i]=n}_takeBackAction(e){const t=this._actions,i=e._cacheIndex,r=--this._nActiveActions,n=t[r];e._cacheIndex=r,t[r]=e,n._cacheIndex=i,t[i]=n}_addInactiveBinding(e,t,i){const r=this._bindingsByRootAndName,n=this._bindings;let s=r[t];void 0===s&&(s={},r[t]=s),s[i]=e,e._cacheIndex=n.length,n.push(e)}_removeInactiveBinding(e){const t=this._bindings,i=e.binding,r=i.rootNode.uuid,n=i.path,s=this._bindingsByRootAndName,a=s[r],o=t[t.length-1],l=e._cacheIndex;o._cacheIndex=l,t[l]=o,t.pop(),delete a[n],0===Object.keys(a).length&&delete s[r]}_lendBinding(e){const t=this._bindings,i=e._cacheIndex,r=this._nActiveBindings++,n=t[r];e._cacheIndex=r,t[r]=e,n._cacheIndex=i,t[i]=n}_takeBackBinding(e){const t=this._bindings,i=e._cacheIndex,r=--this._nActiveBindings,n=t[r];e._cacheIndex=r,t[r]=e,n._cacheIndex=i,t[i]=n}_lendControlInterpolant(){const e=this._controlInterpolants,t=this._nActiveControlInterpolants++;let i=e[t];return void 0===i&&(i=new LinearInterpolant(new Float32Array(2),new Float32Array(2),1,xa),i.__cacheIndex=t,e[t]=i),i}_takeBackControlInterpolant(e){const t=this._controlInterpolants,i=e.__cacheIndex,r=--this._nActiveControlInterpolants,n=t[r];e.__cacheIndex=r,t[r]=e,n.__cacheIndex=i,t[i]=n}clipAction(e,t,i){const r=t||this._root,n=r.uuid;let s="string"===typeof e?AnimationClip.findByName(r,e):e;const a=null!==s?s.uuid:e,o=this._actionsByClip[a];let l=null;if(void 0===i&&(i=null!==s?s.blendMode:Ct),void 0!==o){const e=o.actionByRoot[n];if(void 0!==e&&e.blendMode===i)return e;l=o.knownActions[0],null===s&&(s=l._clip)}if(null===s)return null;const c=new AnimationAction(this,s,t,i);return this._bindAction(c,l),this._addInactiveAction(c,a,n),c}existingAction(e,t){const i=t||this._root,r=i.uuid,n="string"===typeof e?AnimationClip.findByName(i,e):e,s=n?n.uuid:e,a=this._actionsByClip[s];return void 0!==a&&a.actionByRoot[r]||null}stopAllAction(){const e=this._actions;for(let t=this._nActiveActions-1;t>=0;--t)e[t].stop();return this}update(e){e*=this.timeScale;const t=this._actions,i=this._nActiveActions,r=this.time+=e,n=Math.sign(e),s=this._accuIndex^=1;for(let l=0;l!==i;++l){t[l]._update(r,e,n,s)}const a=this._bindings,o=this._nActiveBindings;for(let l=0;l!==o;++l)a[l].apply(s);return this}setTime(e){this.time=0;for(let t=0;t<this._actions.length;t++)this._actions[t].time=0;return this.update(e)}getRoot(){return this._root}uncacheClip(e){const t=this._actions,i=e.uuid,r=this._actionsByClip,n=r[i];if(void 0!==n){const e=n.knownActions;for(let i=0,r=e.length;i!==r;++i){const r=e[i];this._deactivateAction(r);const n=r._cacheIndex,s=t[t.length-1];r._cacheIndex=null,r._byClipCacheIndex=null,s._cacheIndex=n,t[n]=s,t.pop(),this._removeInactiveBindingsForAction(r)}delete r[i]}}uncacheRoot(e){const t=e.uuid,i=this._actionsByClip;for(const n in i){const e=i[n].actionByRoot[t];void 0!==e&&(this._deactivateAction(e),this._removeInactiveAction(e))}const r=this._bindingsByRootAndName[t];if(void 0!==r)for(const n in r){const e=r[n];e.restoreOriginalState(),this._removeInactiveBinding(e)}}uncacheAction(e,t){const i=this.existingAction(e,t);null!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}}class Uniform{constructor(e){"string"===typeof e&&(console.warn("THREE.Uniform: Type parameter is no longer needed."),e=arguments[1]),this.value=e}clone(){return new Uniform(void 0===this.value.clone?this.value:this.value.clone())}}let ya=0;class UniformsGroup extends EventDispatcher{constructor(){super(),this.isUniformsGroup=!0,Object.defineProperty(this,"id",{value:ya++}),this.name="",this.usage=ri,this.uniforms=[]}add(e){return this.uniforms.push(e),this}remove(e){const t=this.uniforms.indexOf(e);return-1!==t&&this.uniforms.splice(t,1),this}setName(e){return this.name=e,this}setUsage(e){return this.usage=e,this}dispose(){return this.dispatchEvent({type:"dispose"}),this}copy(e){this.name=e.name,this.usage=e.usage;const t=e.uniforms;this.uniforms.length=0;for(let i=0,r=t.length;i<r;i++)this.uniforms.push(t[i].clone());return this}clone(){return(new this.constructor).copy(this)}}class InstancedInterleavedBuffer extends InterleavedBuffer{constructor(e,t,i=1){super(e,t),this.isInstancedInterleavedBuffer=!0,this.meshPerAttribute=i}copy(e){return super.copy(e),this.meshPerAttribute=e.meshPerAttribute,this}clone(e){const t=super.clone(e);return t.meshPerAttribute=this.meshPerAttribute,t}toJSON(e){const t=super.toJSON(e);return t.isInstancedInterleavedBuffer=!0,t.meshPerAttribute=this.meshPerAttribute,t}}class GLBufferAttribute{constructor(e,t,i,r,n){this.isGLBufferAttribute=!0,this.buffer=e,this.type=t,this.itemSize=i,this.elementSize=r,this.count=n,this.version=0}set needsUpdate(e){!0===e&&this.version++}setBuffer(e){return this.buffer=e,this}setType(e,t){return this.type=e,this.elementSize=t,this}setItemSize(e){return this.itemSize=e,this}setCount(e){return this.count=e,this}}class Raycaster{constructor(e,t,i=0,r=1/0){this.ray=new Ray(e,t),this.near=i,this.far=r,this.camera=null,this.layers=new Layers,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(e,t){this.ray.set(e,t)}setFromCamera(e,t){t.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(t.matrixWorld),this.ray.direction.set(e.x,e.y,.5).unproject(t).sub(this.ray.origin).normalize(),this.camera=t):t.isOrthographicCamera?(this.ray.origin.set(e.x,e.y,(t.near+t.far)/(t.near-t.far)).unproject(t),this.ray.direction.set(0,0,-1).transformDirection(t.matrixWorld),this.camera=t):console.error("THREE.Raycaster: Unsupported camera type: "+t.type)}intersectObject(e,t=!0,i=[]){return intersectObject(e,this,i,t),i.sort(ascSort),i}intersectObjects(e,t=!0,i=[]){for(let r=0,n=e.length;r<n;r++)intersectObject(e[r],this,i,t);return i.sort(ascSort),i}}function ascSort(e,t){return e.distance-t.distance}function intersectObject(e,t,i,r){if(e.layers.test(t.layers)&&e.raycast(t,i),!0===r){const r=e.children;for(let e=0,n=r.length;e<n;e++)intersectObject(r[e],t,i,!0)}}class Spherical{constructor(e=1,t=0,i=0){return this.radius=e,this.phi=t,this.theta=i,this}set(e,t,i){return this.radius=e,this.phi=t,this.theta=i,this}copy(e){return this.radius=e.radius,this.phi=e.phi,this.theta=e.theta,this}makeSafe(){const e=1e-6;return this.phi=Math.max(e,Math.min(Math.PI-e,this.phi)),this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,i){return this.radius=Math.sqrt(e*e+t*t+i*i),0===this.radius?(this.theta=0,this.phi=0):(this.theta=Math.atan2(e,i),this.phi=Math.acos(clamp(t/this.radius,-1,1))),this}clone(){return(new this.constructor).copy(this)}}class Cylindrical{constructor(e=1,t=0,i=0){return this.radius=e,this.theta=t,this.y=i,this}set(e,t,i){return this.radius=e,this.theta=t,this.y=i,this}copy(e){return this.radius=e.radius,this.theta=e.theta,this.y=e.y,this}setFromVector3(e){return this.setFromCartesianCoords(e.x,e.y,e.z)}setFromCartesianCoords(e,t,i){return this.radius=Math.sqrt(e*e+i*i),this.theta=Math.atan2(e,i),this.y=t,this}clone(){return(new this.constructor).copy(this)}}const _a=new Vector2;class Box2{constructor(e=new Vector2(1/0,1/0),t=new Vector2(-1/0,-1/0)){this.isBox2=!0,this.min=e,this.max=t}set(e,t){return this.min.copy(e),this.max.copy(t),this}setFromPoints(e){this.makeEmpty();for(let t=0,i=e.length;t<i;t++)this.expandByPoint(e[t]);return this}setFromCenterAndSize(e,t){const i=_a.copy(t).multiplyScalar(.5);return this.min.copy(e).sub(i),this.max.copy(e).add(i),this}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=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x<this.min.x||this.max.y<this.min.y}getCenter(e){return this.isEmpty()?e.set(0,0):e.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(e){return this.isEmpty()?e.set(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}containsPoint(e){return!(e.x<this.min.x||e.x>this.max.x||e.y<this.min.y||e.y>this.max.y)}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}getParameter(e,t){return t.set((e.x-this.min.x)/(this.max.x-this.min.x),(e.y-this.min.y)/(this.max.y-this.min.y))}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)}clampPoint(e,t){return t.copy(e).clamp(this.min,this.max)}distanceToPoint(e){return _a.copy(e).clamp(this.min,this.max).sub(e).length()}intersect(e){return this.min.max(e.min),this.max.min(e.max),this}union(e){return this.min.min(e.min),this.max.max(e.max),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 ba=new Vector3,Ma=new Vector3;class Line3{constructor(e=new Vector3,t=new Vector3){this.start=e,this.end=t}set(e,t){return this.start.copy(e),this.end.copy(t),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,t){return this.delta(t).multiplyScalar(e).add(this.start)}closestPointToPointParameter(e,t){ba.subVectors(e,this.start),Ma.subVectors(this.end,this.start);const i=Ma.dot(Ma);let r=Ma.dot(ba)/i;return t&&(r=clamp(r,0,1)),r}closestPointToPoint(e,t,i){const r=this.closestPointToPointParameter(e,t);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)}}const Sa=new Vector3;class SpotLightHelper extends Object3D{constructor(e,t){super(),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=t;const i=new BufferGeometry,r=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let s=0,a=1,o=32;s<o;s++,a++){const e=s/o*Math.PI*2,t=a/o*Math.PI*2;r.push(Math.cos(e),Math.sin(e),1,Math.cos(t),Math.sin(t),1)}i.setAttribute("position",new Float32BufferAttribute(r,3));const n=new LineBasicMaterial({fog:!1,toneMapped:!1});this.cone=new LineSegments(i,n),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateMatrixWorld();const e=this.light.distance?this.light.distance:1e3,t=e*Math.tan(this.light.angle);this.cone.scale.set(t,t,e),Sa.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(Sa),void 0!==this.color?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}}const wa=new Vector3,Ta=new Matrix4,Aa=new Matrix4;class SkeletonHelper extends LineSegments{constructor(e){const t=getBoneList(e),i=new BufferGeometry,r=[],n=[],s=new Color(0,0,1),a=new Color(0,1,0);for(let o=0;o<t.length;o++){const e=t[o];e.parent&&e.parent.isBone&&(r.push(0,0,0),r.push(0,0,0),n.push(s.r,s.g,s.b),n.push(a.r,a.g,a.b))}i.setAttribute("position",new Float32BufferAttribute(r,3)),i.setAttribute("color",new Float32BufferAttribute(n,3));super(i,new LineBasicMaterial({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0})),this.isSkeletonHelper=!0,this.type="SkeletonHelper",this.root=e,this.bones=t,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}updateMatrixWorld(e){const t=this.bones,i=this.geometry,r=i.getAttribute("position");Aa.copy(this.root.matrixWorld).invert();for(let n=0,s=0;n<t.length;n++){const e=t[n];e.parent&&e.parent.isBone&&(Ta.multiplyMatrices(Aa,e.matrixWorld),wa.setFromMatrixPosition(Ta),r.setXYZ(s,wa.x,wa.y,wa.z),Ta.multiplyMatrices(Aa,e.parent.matrixWorld),wa.setFromMatrixPosition(Ta),r.setXYZ(s+1,wa.x,wa.y,wa.z),s+=2)}i.getAttribute("position").needsUpdate=!0,super.updateMatrixWorld(e)}}function getBoneList(e){const t=[];!0===e.isBone&&t.push(e);for(let i=0;i<e.children.length;i++)t.push.apply(t,getBoneList(e.children[i]));return t}class PointLightHelper extends Mesh{constructor(e,t,i){super(new SphereGeometry(t,4,2),new MeshBasicMaterial({wireframe:!0,fog:!1,toneMapped:!1})),this.light=e,this.light.updateMatrixWorld(),this.color=i,this.type="PointLightHelper",this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){void 0!==this.color?this.material.color.set(this.color):this.material.color.copy(this.light.color)}}const Ca=new Vector3,Ea=new Color,La=new Color;class HemisphereLightHelper extends Object3D{constructor(e,t,i){super(),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=i;const r=new OctahedronGeometry(t);r.rotateY(.5*Math.PI),this.material=new MeshBasicMaterial({wireframe:!0,fog:!1,toneMapped:!1}),void 0===this.color&&(this.material.vertexColors=!0);const n=r.getAttribute("position"),s=new Float32Array(3*n.count);r.setAttribute("color",new BufferAttribute(s,3)),this.add(new Mesh(r,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){const e=this.children[0];if(void 0!==this.color)this.material.color.set(this.color);else{const t=e.geometry.getAttribute("color");Ea.copy(this.light.color),La.copy(this.light.groundColor);for(let e=0,i=t.count;e<i;e++){const r=e<i/2?Ea:La;t.setXYZ(e,r.r,r.g,r.b)}t.needsUpdate=!0}e.lookAt(Ca.setFromMatrixPosition(this.light.matrixWorld).negate())}}class GridHelper extends LineSegments{constructor(e=10,t=10,i=4473924,r=8947848){i=new Color(i),r=new Color(r);const n=t/2,s=e/t,a=e/2,o=[],l=[];for(let h=0,u=0,d=-a;h<=t;h++,d+=s){o.push(-a,0,d,a,0,d),o.push(d,0,-a,d,0,a);const e=h===n?i:r;e.toArray(l,u),u+=3,e.toArray(l,u),u+=3,e.toArray(l,u),u+=3,e.toArray(l,u),u+=3}const c=new BufferGeometry;c.setAttribute("position",new Float32BufferAttribute(o,3)),c.setAttribute("color",new Float32BufferAttribute(l,3));super(c,new LineBasicMaterial({vertexColors:!0,toneMapped:!1})),this.type="GridHelper"}}class PolarGridHelper extends LineSegments{constructor(e=10,t=16,i=8,r=64,n=4473924,s=8947848){n=new Color(n),s=new Color(s);const a=[],o=[];for(let c=0;c<=t;c++){const i=c/t*(2*Math.PI),r=Math.sin(i)*e,l=Math.cos(i)*e;a.push(0,0,0),a.push(r,0,l);const h=1&c?n:s;o.push(h.r,h.g,h.b),o.push(h.r,h.g,h.b)}for(let c=0;c<=i;c++){const t=1&c?n:s,l=e-e/i*c;for(let e=0;e<r;e++){let i=e/r*(2*Math.PI),n=Math.sin(i)*l,s=Math.cos(i)*l;a.push(n,0,s),o.push(t.r,t.g,t.b),i=(e+1)/r*(2*Math.PI),n=Math.sin(i)*l,s=Math.cos(i)*l,a.push(n,0,s),o.push(t.r,t.g,t.b)}}const l=new BufferGeometry;l.setAttribute("position",new Float32BufferAttribute(a,3)),l.setAttribute("color",new Float32BufferAttribute(o,3));super(l,new LineBasicMaterial({vertexColors:!0,toneMapped:!1})),this.type="PolarGridHelper"}}const Pa=new Vector3,Ra=new Vector3,Da=new Vector3;class DirectionalLightHelper extends Object3D{constructor(e,t,i){super(),this.light=e,this.light.updateMatrixWorld(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.color=i,void 0===t&&(t=1);let r=new BufferGeometry;r.setAttribute("position",new Float32BufferAttribute([-t,t,0,t,t,0,t,-t,0,-t,-t,0,-t,t,0],3));const n=new LineBasicMaterial({fog:!1,toneMapped:!1});this.lightPlane=new Line(r,n),this.add(this.lightPlane),r=new BufferGeometry,r.setAttribute("position",new Float32BufferAttribute([0,0,0,0,0,1],3)),this.targetLine=new Line(r,n),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){Pa.setFromMatrixPosition(this.light.matrixWorld),Ra.setFromMatrixPosition(this.light.target.matrixWorld),Da.subVectors(Ra,Pa),this.lightPlane.lookAt(Ra),void 0!==this.color?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(Ra),this.targetLine.scale.z=Da.length()}}const Ia=new Vector3,Ba=new Camera;class CameraHelper extends LineSegments{constructor(e){const t=new BufferGeometry,i=new LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),r=[],n=[],s={};function addLine(e,t){addPoint(e),addPoint(t)}function addPoint(e){r.push(0,0,0),n.push(0,0,0),void 0===s[e]&&(s[e]=[]),s[e].push(r.length/3-1)}addLine("n1","n2"),addLine("n2","n4"),addLine("n4","n3"),addLine("n3","n1"),addLine("f1","f2"),addLine("f2","f4"),addLine("f4","f3"),addLine("f3","f1"),addLine("n1","f1"),addLine("n2","f2"),addLine("n3","f3"),addLine("n4","f4"),addLine("p","n1"),addLine("p","n2"),addLine("p","n3"),addLine("p","n4"),addLine("u1","u2"),addLine("u2","u3"),addLine("u3","u1"),addLine("c","t"),addLine("p","c"),addLine("cn1","cn2"),addLine("cn3","cn4"),addLine("cf1","cf2"),addLine("cf3","cf4"),t.setAttribute("position",new Float32BufferAttribute(r,3)),t.setAttribute("color",new Float32BufferAttribute(n,3)),super(t,i),this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=s,this.update();const a=new Color(16755200),o=new Color(16711680),l=new Color(43775),c=new Color(16777215),h=new Color(3355443);this.setColors(a,o,l,c,h)}setColors(e,t,i,r,n){const s=this.geometry.getAttribute("color");s.setXYZ(0,e.r,e.g,e.b),s.setXYZ(1,e.r,e.g,e.b),s.setXYZ(2,e.r,e.g,e.b),s.setXYZ(3,e.r,e.g,e.b),s.setXYZ(4,e.r,e.g,e.b),s.setXYZ(5,e.r,e.g,e.b),s.setXYZ(6,e.r,e.g,e.b),s.setXYZ(7,e.r,e.g,e.b),s.setXYZ(8,e.r,e.g,e.b),s.setXYZ(9,e.r,e.g,e.b),s.setXYZ(10,e.r,e.g,e.b),s.setXYZ(11,e.r,e.g,e.b),s.setXYZ(12,e.r,e.g,e.b),s.setXYZ(13,e.r,e.g,e.b),s.setXYZ(14,e.r,e.g,e.b),s.setXYZ(15,e.r,e.g,e.b),s.setXYZ(16,e.r,e.g,e.b),s.setXYZ(17,e.r,e.g,e.b),s.setXYZ(18,e.r,e.g,e.b),s.setXYZ(19,e.r,e.g,e.b),s.setXYZ(20,e.r,e.g,e.b),s.setXYZ(21,e.r,e.g,e.b),s.setXYZ(22,e.r,e.g,e.b),s.setXYZ(23,e.r,e.g,e.b),s.setXYZ(24,t.r,t.g,t.b),s.setXYZ(25,t.r,t.g,t.b),s.setXYZ(26,t.r,t.g,t.b),s.setXYZ(27,t.r,t.g,t.b),s.setXYZ(28,t.r,t.g,t.b),s.setXYZ(29,t.r,t.g,t.b),s.setXYZ(30,t.r,t.g,t.b),s.setXYZ(31,t.r,t.g,t.b),s.setXYZ(32,i.r,i.g,i.b),s.setXYZ(33,i.r,i.g,i.b),s.setXYZ(34,i.r,i.g,i.b),s.setXYZ(35,i.r,i.g,i.b),s.setXYZ(36,i.r,i.g,i.b),s.setXYZ(37,i.r,i.g,i.b),s.setXYZ(38,r.r,r.g,r.b),s.setXYZ(39,r.r,r.g,r.b),s.setXYZ(40,n.r,n.g,n.b),s.setXYZ(41,n.r,n.g,n.b),s.setXYZ(42,n.r,n.g,n.b),s.setXYZ(43,n.r,n.g,n.b),s.setXYZ(44,n.r,n.g,n.b),s.setXYZ(45,n.r,n.g,n.b),s.setXYZ(46,n.r,n.g,n.b),s.setXYZ(47,n.r,n.g,n.b),s.setXYZ(48,n.r,n.g,n.b),s.setXYZ(49,n.r,n.g,n.b),s.needsUpdate=!0}update(){const e=this.geometry,t=this.pointMap;Ba.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),setPoint("c",t,e,Ba,0,0,-1),setPoint("t",t,e,Ba,0,0,1),setPoint("n1",t,e,Ba,-1,-1,-1),setPoint("n2",t,e,Ba,1,-1,-1),setPoint("n3",t,e,Ba,-1,1,-1),setPoint("n4",t,e,Ba,1,1,-1),setPoint("f1",t,e,Ba,-1,-1,1),setPoint("f2",t,e,Ba,1,-1,1),setPoint("f3",t,e,Ba,-1,1,1),setPoint("f4",t,e,Ba,1,1,1),setPoint("u1",t,e,Ba,.7,1.1,-1),setPoint("u2",t,e,Ba,-.7,1.1,-1),setPoint("u3",t,e,Ba,0,2,-1),setPoint("cf1",t,e,Ba,-1,0,1),setPoint("cf2",t,e,Ba,1,0,1),setPoint("cf3",t,e,Ba,0,-1,1),setPoint("cf4",t,e,Ba,0,1,1),setPoint("cn1",t,e,Ba,-1,0,-1),setPoint("cn2",t,e,Ba,1,0,-1),setPoint("cn3",t,e,Ba,0,-1,-1),setPoint("cn4",t,e,Ba,0,1,-1),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}}function setPoint(e,t,i,r,n,s,a){Ia.set(n,s,a).unproject(r);const o=t[e];if(void 0!==o){const e=i.getAttribute("position");for(let t=0,i=o.length;t<i;t++)e.setXYZ(o[t],Ia.x,Ia.y,Ia.z)}}const Va=new Box3;class BoxHelper extends LineSegments{constructor(e,t=16776960){const i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=new Float32Array(24),n=new BufferGeometry;n.setIndex(new BufferAttribute(i,1)),n.setAttribute("position",new BufferAttribute(r,3)),super(n,new LineBasicMaterial({color:t,toneMapped:!1})),this.object=e,this.type="BoxHelper",this.matrixAutoUpdate=!1,this.update()}update(e){if(void 0!==e&&console.warn("THREE.BoxHelper: .update() has no longer arguments."),void 0!==this.object&&Va.setFromObject(this.object),Va.isEmpty())return;const t=Va.min,i=Va.max,r=this.geometry.attributes.position,n=r.array;n[0]=i.x,n[1]=i.y,n[2]=i.z,n[3]=t.x,n[4]=i.y,n[5]=i.z,n[6]=t.x,n[7]=t.y,n[8]=i.z,n[9]=i.x,n[10]=t.y,n[11]=i.z,n[12]=i.x,n[13]=i.y,n[14]=t.z,n[15]=t.x,n[16]=i.y,n[17]=t.z,n[18]=t.x,n[19]=t.y,n[20]=t.z,n[21]=i.x,n[22]=t.y,n[23]=t.z,r.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(e){return this.object=e,this.update(),this}copy(e,t){return super.copy(e,t),this.object=e.object,this}}class Box3Helper extends LineSegments{constructor(e,t=16776960){const i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),r=new BufferGeometry;r.setIndex(new BufferAttribute(i,1)),r.setAttribute("position",new Float32BufferAttribute([1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],3)),super(r,new LineBasicMaterial({color:t,toneMapped:!1})),this.box=e,this.type="Box3Helper",this.geometry.computeBoundingSphere()}updateMatrixWorld(e){const t=this.box;t.isEmpty()||(t.getCenter(this.position),t.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(e))}}class PlaneHelper extends Line{constructor(e,t=1,i=16776960){const r=i,n=new BufferGeometry;n.setAttribute("position",new Float32BufferAttribute([1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],3)),n.computeBoundingSphere(),super(n,new LineBasicMaterial({color:r,toneMapped:!1})),this.type="PlaneHelper",this.plane=e,this.size=t;const s=new BufferGeometry;s.setAttribute("position",new Float32BufferAttribute([1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],3)),s.computeBoundingSphere(),this.add(new Mesh(s,new MeshBasicMaterial({color:r,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(e){this.position.set(0,0,0),this.scale.set(.5*this.size,.5*this.size,1),this.lookAt(this.plane.normal),this.translateZ(-this.plane.constant),super.updateMatrixWorld(e)}}const Na=new Vector3;let Oa,za;class ArrowHelper extends Object3D{constructor(e=new Vector3(0,0,1),t=new Vector3(0,0,0),i=1,r=16776960,n=.2*i,s=.2*n){super(),this.type="ArrowHelper",void 0===Oa&&(Oa=new BufferGeometry,Oa.setAttribute("position",new Float32BufferAttribute([0,0,0,0,1,0],3)),za=new CylinderGeometry(0,.5,1,5,1),za.translate(0,-.5,0)),this.position.copy(t),this.line=new Line(Oa,new LineBasicMaterial({color:r,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new Mesh(za,new MeshBasicMaterial({color:r,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(e),this.setLength(i,n,s)}setDirection(e){if(e.y>.99999)this.quaternion.set(0,0,0,1);else if(e.y<-.99999)this.quaternion.set(1,0,0,0);else{Na.set(e.z,0,-e.x).normalize();const t=Math.acos(e.y);this.quaternion.setFromAxisAngle(Na,t)}}setLength(e,t=.2*e,i=.2*t){this.line.scale.set(1,Math.max(1e-4,e-t),1),this.line.updateMatrix(),this.cone.scale.set(i,t,i),this.cone.position.y=e,this.cone.updateMatrix()}setColor(e){this.line.material.color.set(e),this.cone.material.color.set(e)}copy(e){return super.copy(e,!1),this.line.copy(e.line),this.cone.copy(e.cone),this}}class AxesHelper extends LineSegments{constructor(e=1){const t=[0,0,0,e,0,0,0,0,0,0,e,0,0,0,0,0,0,e],i=new BufferGeometry;i.setAttribute("position",new Float32BufferAttribute(t,3)),i.setAttribute("color",new Float32BufferAttribute([1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],3));super(i,new LineBasicMaterial({vertexColors:!0,toneMapped:!1})),this.type="AxesHelper"}setColors(e,t,i){const r=new Color,n=this.geometry.attributes.color.array;return r.set(e),r.toArray(n,0),r.toArray(n,3),r.set(t),r.toArray(n,6),r.toArray(n,9),r.set(i),r.toArray(n,12),r.toArray(n,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}}class ShapePath{constructor(){this.type="ShapePath",this.color=new Color,this.subPaths=[],this.currentPath=null}moveTo(e,t){return this.currentPath=new Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,r){return this.currentPath.quadraticCurveTo(e,t,i,r),this}bezierCurveTo(e,t,i,r,n,s){return this.currentPath.bezierCurveTo(e,t,i,r,n,s),this}splineThru(e){return this.currentPath.splineThru(e),this}toShapes(e,t){function toShapesNoHoles(e){const t=[];for(let i=0,r=e.length;i<r;i++){const r=e[i],n=new Shape;n.curves=r.curves,t.push(n)}return t}function isPointInsidePolygon(e,t){const i=t.length;let r=!1;for(let n=i-1,s=0;s<i;n=s++){let i=t[n],a=t[s],o=a.x-i.x,l=a.y-i.y;if(Math.abs(l)>Number.EPSILON){if(l<0&&(i=t[s],o=-o,a=t[n],l=-l),e.y<i.y||e.y>a.y)continue;if(e.y===i.y){if(e.x===i.x)return!0}else{const t=l*(e.x-i.x)-o*(e.y-i.y);if(0===t)return!0;if(t<0)continue;r=!r}}else{if(e.y!==i.y)continue;if(a.x<=e.x&&e.x<=i.x||i.x<=e.x&&e.x<=a.x)return!0}}return r}const i=ShapeUtils.isClockWise,r=this.subPaths;if(0===r.length)return[];if(!0===t)return toShapesNoHoles(r);let n,s,a;const o=[];if(1===r.length)return s=r[0],a=new Shape,a.curves=s.curves,o.push(a),o;let l=!i(r[0].getPoints());l=e?!l:l;const c=[],h=[];let u,d,p=[],m=0;h[m]=void 0,p[m]=[];for(let f=0,g=r.length;f<g;f++)s=r[f],u=s.getPoints(),n=i(u),n=e?!n:n,n?(!l&&h[m]&&m++,h[m]={s:new Shape,p:u},h[m].s.curves=s.curves,l&&m++,p[m]=[]):p[m].push({h:s,p:u[0]});if(!h[0])return toShapesNoHoles(r);if(h.length>1){let e=!1,t=0;for(let i=0,r=h.length;i<r;i++)c[i]=[];for(let i=0,r=h.length;i<r;i++){const r=p[i];for(let n=0;n<r.length;n++){const s=r[n];let a=!0;for(let r=0;r<h.length;r++)isPointInsidePolygon(s.p,h[r].p)&&(i!==r&&t++,a?(a=!1,c[r].push(s)):e=!0);a&&c[i].push(s)}}t>0&&!1===e&&(p=c)}for(let f=0,g=h.length;f<g;f++){a=h[f].s,o.push(a),d=p[f];for(let e=0,t=d.length;e<t;e++)a.holes.push(d[e].h)}return o}}const Fa=_generateTables();function _generateTables(){const e=new ArrayBuffer(4),t=new Float32Array(e),i=new Uint32Array(e),r=new Uint32Array(512),n=new Uint32Array(512);for(let l=0;l<256;++l){const e=l-127;e<-27?(r[l]=0,r[256|l]=32768,n[l]=24,n[256|l]=24):e<-14?(r[l]=1024>>-e-14,r[256|l]=1024>>-e-14|32768,n[l]=-e-1,n[256|l]=-e-1):e<=15?(r[l]=e+15<<10,r[256|l]=e+15<<10|32768,n[l]=13,n[256|l]=13):e<128?(r[l]=31744,r[256|l]=64512,n[l]=24,n[256|l]=24):(r[l]=31744,r[256|l]=64512,n[l]=13,n[256|l]=13)}const s=new Uint32Array(2048),a=new Uint32Array(64),o=new Uint32Array(64);for(let l=1;l<1024;++l){let e=l<<13,t=0;for(;0===(8388608&e);)e<<=1,t-=8388608;e&=-8388609,t+=947912704,s[l]=e|t}for(let l=1024;l<2048;++l)s[l]=939524096+(l-1024<<13);for(let l=1;l<31;++l)a[l]=l<<23;a[31]=1199570944,a[32]=2147483648;for(let l=33;l<63;++l)a[l]=2147483648+(l-32<<23);a[63]=3347054592;for(let l=1;l<64;++l)32!==l&&(o[l]=1024);return{floatView:t,uint32View:i,baseTable:r,shiftTable:n,mantissaTable:s,exponentTable:a,offsetTable:o}}var Ga=Object.freeze({__proto__:null,toHalfFloat:function toHalfFloat(e){Math.abs(e)>65504&&console.warn("THREE.DataUtils.toHalfFloat(): Value out of range."),e=clamp(e,-65504,65504),Fa.floatView[0]=e;const t=Fa.uint32View[0],i=t>>23&511;return Fa.baseTable[i]+((8388607&t)>>Fa.shiftTable[i])},fromHalfFloat:function fromHalfFloat(e){const t=e>>10;return Fa.uint32View[0]=Fa.mantissaTable[Fa.offsetTable[t]+(1023&e)]+Fa.exponentTable[t],Fa.floatView[0]}});class ParametricGeometry extends BufferGeometry{constructor(){console.error("THREE.ParametricGeometry has been moved to /examples/jsm/geometries/ParametricGeometry.js"),super()}}class TextGeometry extends BufferGeometry{constructor(){console.error("THREE.TextGeometry has been moved to /examples/jsm/geometries/TextGeometry.js"),super()}}function FontLoader(){console.error("THREE.FontLoader has been moved to /examples/jsm/loaders/FontLoader.js")}function Font(){console.error("THREE.Font has been moved to /examples/jsm/loaders/FontLoader.js")}function ImmediateRenderObject(){console.error("THREE.ImmediateRenderObject has been removed.")}class WebGLMultisampleRenderTarget extends WebGLRenderTarget{constructor(e,t,i){console.error('THREE.WebGLMultisampleRenderTarget has been removed. Use a normal render target and set the "samples" property to greater 0 to enable multisampling.'),super(e,t,i),this.samples=4}}class DataTexture2DArray extends DataArrayTexture{constructor(e,t,i,r){console.warn("THREE.DataTexture2DArray has been renamed to DataArrayTexture."),super(e,t,i,r)}}class DataTexture3D extends Data3DTexture{constructor(e,t,i,r){console.warn("THREE.DataTexture3D has been renamed to Data3DTexture."),super(e,t,i,r)}}"undefined"!==typeof __THREE_DEVTOOLS__&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("register",{detail:{revision:i}})),"undefined"!==typeof window&&(window.__THREE__?console.warn("WARNING: Multiple instances of Three.js being imported."):window.__THREE__=i),window.three=t})();
  3. /*! For license information please see buffer.js.LICENSE.txt */
  4. (()=>{var t={9742:(t,e)=>{"use strict";e.byteLength=function byteLength(t){var e=getLens(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function toByteArray(t){var e,r,i=getLens(t),o=i[0],u=i[1],s=new f(function _byteLength(t,e,r){return 3*(e+r)/4-r}(0,o,u)),h=0,a=u>0?o-4:o;for(r=0;r<a;r+=4)e=n[t.charCodeAt(r)]<<18|n[t.charCodeAt(r+1)]<<12|n[t.charCodeAt(r+2)]<<6|n[t.charCodeAt(r+3)],s[h++]=e>>16&255,s[h++]=e>>8&255,s[h++]=255&e;2===u&&(e=n[t.charCodeAt(r)]<<2|n[t.charCodeAt(r+1)]>>4,s[h++]=255&e);1===u&&(e=n[t.charCodeAt(r)]<<10|n[t.charCodeAt(r+1)]<<4|n[t.charCodeAt(r+2)]>>2,s[h++]=e>>8&255,s[h++]=255&e);return s},e.fromByteArray=function fromByteArray(t){for(var e,n=t.length,f=n%3,i=[],o=16383,u=0,s=n-f;u<s;u+=o)i.push(encodeChunk(t,u,u+o>s?s:u+o));1===f?(e=t[n-1],i.push(r[e>>2]+r[e<<4&63]+"==")):2===f&&(e=(t[n-2]<<8)+t[n-1],i.push(r[e>>10]+r[e>>4&63]+r[e<<2&63]+"="));return i.join("")};for(var r=[],n=[],f="undefined"!==typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,u=i.length;o<u;++o)r[o]=i[o],n[i.charCodeAt(o)]=o;function getLens(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function encodeChunk(t,e,n){for(var f,i,o=[],u=e;u<n;u+=3)f=(t[u]<<16&16711680)+(t[u+1]<<8&65280)+(255&t[u+2]),o.push(r[(i=f)>>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return o.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},8764:(t,e,r)=>{"use strict";const n=r(9742),f=r(645),i="function"===typeof Symbol&&"function"===typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=Buffer,e.SlowBuffer=function SlowBuffer(t){+t!=t&&(t=0);return Buffer.alloc(+t)},e.INSPECT_MAX_BYTES=50;const o=2147483647;function createBuffer(t){if(t>o)throw new RangeError('The value "'+t+'" is invalid for option "size"');const e=new Uint8Array(t);return Object.setPrototypeOf(e,Buffer.prototype),e}function Buffer(t,e,r){if("number"===typeof t){if("string"===typeof e)throw new TypeError('The "string" argument must be of type string. Received type number');return allocUnsafe(t)}return from(t,e,r)}function from(t,e,r){if("string"===typeof t)return function fromString(t,e){"string"===typeof e&&""!==e||(e="utf8");if(!Buffer.isEncoding(e))throw new TypeError("Unknown encoding: "+e);const r=0|byteLength(t,e);let n=createBuffer(r);const f=n.write(t,e);f!==r&&(n=n.slice(0,f));return n}(t,e);if(ArrayBuffer.isView(t))return function fromArrayView(t){if(isInstance(t,Uint8Array)){const e=new Uint8Array(t);return fromArrayBuffer(e.buffer,e.byteOffset,e.byteLength)}return fromArrayLike(t)}(t);if(null==t)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t);if(isInstance(t,ArrayBuffer)||t&&isInstance(t.buffer,ArrayBuffer))return fromArrayBuffer(t,e,r);if("undefined"!==typeof SharedArrayBuffer&&(isInstance(t,SharedArrayBuffer)||t&&isInstance(t.buffer,SharedArrayBuffer)))return fromArrayBuffer(t,e,r);if("number"===typeof t)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return Buffer.from(n,e,r);const f=function fromObject(t){if(Buffer.isBuffer(t)){const e=0|checked(t.length),r=createBuffer(e);return 0===r.length||t.copy(r,0,0,e),r}if(void 0!==t.length)return"number"!==typeof t.length||numberIsNaN(t.length)?createBuffer(0):fromArrayLike(t);if("Buffer"===t.type&&Array.isArray(t.data))return fromArrayLike(t.data)}(t);if(f)return f;if("undefined"!==typeof Symbol&&null!=Symbol.toPrimitive&&"function"===typeof t[Symbol.toPrimitive])return Buffer.from(t[Symbol.toPrimitive]("string"),e,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof t)}function assertSize(t){if("number"!==typeof t)throw new TypeError('"size" argument must be of type number');if(t<0)throw new RangeError('The value "'+t+'" is invalid for option "size"')}function allocUnsafe(t){return assertSize(t),createBuffer(t<0?0:0|checked(t))}function fromArrayLike(t){const e=t.length<0?0:0|checked(t.length),r=createBuffer(e);for(let n=0;n<e;n+=1)r[n]=255&t[n];return r}function fromArrayBuffer(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('"offset" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('"length" is outside of buffer bounds');let n;return n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r),Object.setPrototypeOf(n,Buffer.prototype),n}function checked(t){if(t>=o)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o.toString(16)+" bytes");return 0|t}function byteLength(t,e){if(Buffer.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||isInstance(t,ArrayBuffer))return t.byteLength;if("string"!==typeof t)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);const r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let f=!1;for(;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return utf8ToBytes(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return base64ToBytes(t).length;default:if(f)return n?-1:utf8ToBytes(t).length;e=(""+e).toLowerCase(),f=!0}}function slowToString(t,e,r){let n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return hexSlice(this,e,r);case"utf8":case"utf-8":return utf8Slice(this,e,r);case"ascii":return asciiSlice(this,e,r);case"latin1":case"binary":return latin1Slice(this,e,r);case"base64":return base64Slice(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function swap(t,e,r){const n=t[e];t[e]=t[r],t[r]=n}function bidirectionalIndexOf(t,e,r,n,f){if(0===t.length)return-1;if("string"===typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),numberIsNaN(r=+r)&&(r=f?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(f)return-1;r=t.length-1}else if(r<0){if(!f)return-1;r=0}if("string"===typeof e&&(e=Buffer.from(e,n)),Buffer.isBuffer(e))return 0===e.length?-1:arrayIndexOf(t,e,r,n,f);if("number"===typeof e)return e&=255,"function"===typeof Uint8Array.prototype.indexOf?f?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):arrayIndexOf(t,[e],r,n,f);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(t,e,r,n,f){let i,o=1,u=t.length,s=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;o=2,u/=2,s/=2,r/=2}function read(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(f){let n=-1;for(i=r;i<u;i++)if(read(t,i)===read(e,-1===n?0:i-n)){if(-1===n&&(n=i),i-n+1===s)return n*o}else-1!==n&&(i-=i-n),n=-1}else for(r+s>u&&(r=u-s),i=r;i>=0;i--){let r=!0;for(let n=0;n<s;n++)if(read(t,i+n)!==read(e,n)){r=!1;break}if(r)return i}return-1}function hexWrite(t,e,r,n){r=Number(r)||0;const f=t.length-r;n?(n=Number(n))>f&&(n=f):n=f;const i=e.length;let o;for(n>i/2&&(n=i/2),o=0;o<n;++o){const n=parseInt(e.substr(2*o,2),16);if(numberIsNaN(n))return o;t[r+o]=n}return o}function utf8Write(t,e,r,n){return blitBuffer(utf8ToBytes(e,t.length-r),t,r,n)}function asciiWrite(t,e,r,n){return blitBuffer(function asciiToBytes(t){const e=[];for(let r=0;r<t.length;++r)e.push(255&t.charCodeAt(r));return e}(e),t,r,n)}function base64Write(t,e,r,n){return blitBuffer(base64ToBytes(e),t,r,n)}function ucs2Write(t,e,r,n){return blitBuffer(function utf16leToBytes(t,e){let r,n,f;const i=[];for(let o=0;o<t.length&&!((e-=2)<0);++o)r=t.charCodeAt(o),n=r>>8,f=r%256,i.push(f),i.push(n);return i}(e,t.length-r),t,r,n)}function base64Slice(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function utf8Slice(t,e,r){r=Math.min(t.length,r);const n=[];let f=e;for(;f<r;){const e=t[f];let i=null,o=e>239?4:e>223?3:e>191?2:1;if(f+o<=r){let r,n,u,s;switch(o){case 1:e<128&&(i=e);break;case 2:r=t[f+1],128===(192&r)&&(s=(31&e)<<6|63&r,s>127&&(i=s));break;case 3:r=t[f+1],n=t[f+2],128===(192&r)&&128===(192&n)&&(s=(15&e)<<12|(63&r)<<6|63&n,s>2047&&(s<55296||s>57343)&&(i=s));break;case 4:r=t[f+1],n=t[f+2],u=t[f+3],128===(192&r)&&128===(192&n)&&128===(192&u)&&(s=(15&e)<<18|(63&r)<<12|(63&n)<<6|63&u,s>65535&&s<1114112&&(i=s))}}null===i?(i=65533,o=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|1023&i),n.push(i),f+=o}return function decodeCodePointsArray(t){const e=t.length;if(e<=u)return String.fromCharCode.apply(String,t);let r="",n=0;for(;n<e;)r+=String.fromCharCode.apply(String,t.slice(n,n+=u));return r}(n)}e.kMaxLength=o,Buffer.TYPED_ARRAY_SUPPORT=function typedArraySupport(){try{const t=new Uint8Array(1),e={foo:function(){return 42}};return Object.setPrototypeOf(e,Uint8Array.prototype),Object.setPrototypeOf(t,e),42===t.foo()}catch(t){return!1}}(),Buffer.TYPED_ARRAY_SUPPORT||"undefined"===typeof console||"function"!==typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(Buffer.prototype,"parent",{enumerable:!0,get:function(){if(Buffer.isBuffer(this))return this.buffer}}),Object.defineProperty(Buffer.prototype,"offset",{enumerable:!0,get:function(){if(Buffer.isBuffer(this))return this.byteOffset}}),Buffer.poolSize=8192,Buffer.from=function(t,e,r){return from(t,e,r)},Object.setPrototypeOf(Buffer.prototype,Uint8Array.prototype),Object.setPrototypeOf(Buffer,Uint8Array),Buffer.alloc=function(t,e,r){return function alloc(t,e,r){return assertSize(t),t<=0?createBuffer(t):void 0!==e?"string"===typeof r?createBuffer(t).fill(e,r):createBuffer(t).fill(e):createBuffer(t)}(t,e,r)},Buffer.allocUnsafe=function(t){return allocUnsafe(t)},Buffer.allocUnsafeSlow=function(t){return allocUnsafe(t)},Buffer.isBuffer=function isBuffer(t){return null!=t&&!0===t._isBuffer&&t!==Buffer.prototype},Buffer.compare=function compare(t,e){if(isInstance(t,Uint8Array)&&(t=Buffer.from(t,t.offset,t.byteLength)),isInstance(e,Uint8Array)&&(e=Buffer.from(e,e.offset,e.byteLength)),!Buffer.isBuffer(t)||!Buffer.isBuffer(e))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===e)return 0;let r=t.length,n=e.length;for(let f=0,i=Math.min(r,n);f<i;++f)if(t[f]!==e[f]){r=t[f],n=e[f];break}return r<n?-1:n<r?1:0},Buffer.isEncoding=function isEncoding(t){switch(String(t).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer.concat=function concat(t,e){if(!Array.isArray(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return Buffer.alloc(0);let r;if(void 0===e)for(e=0,r=0;r<t.length;++r)e+=t[r].length;const n=Buffer.allocUnsafe(e);let f=0;for(r=0;r<t.length;++r){let e=t[r];if(isInstance(e,Uint8Array))f+e.length>n.length?(Buffer.isBuffer(e)||(e=Buffer.from(e)),e.copy(n,f)):Uint8Array.prototype.set.call(n,e,f);else{if(!Buffer.isBuffer(e))throw new TypeError('"list" argument must be an Array of Buffers');e.copy(n,f)}f+=e.length}return n},Buffer.byteLength=byteLength,Buffer.prototype._isBuffer=!0,Buffer.prototype.swap16=function swap16(){const t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let e=0;e<t;e+=2)swap(this,e,e+1);return this},Buffer.prototype.swap32=function swap32(){const t=this.length;if(t%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let e=0;e<t;e+=4)swap(this,e,e+3),swap(this,e+1,e+2);return this},Buffer.prototype.swap64=function swap64(){const t=this.length;if(t%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let e=0;e<t;e+=8)swap(this,e,e+7),swap(this,e+1,e+6),swap(this,e+2,e+5),swap(this,e+3,e+4);return this},Buffer.prototype.toString=function toString(){const t=this.length;return 0===t?"":0===arguments.length?utf8Slice(this,0,t):slowToString.apply(this,arguments)},Buffer.prototype.toLocaleString=Buffer.prototype.toString,Buffer.prototype.equals=function equals(t){if(!Buffer.isBuffer(t))throw new TypeError("Argument must be a Buffer");return this===t||0===Buffer.compare(this,t)},Buffer.prototype.inspect=function inspect(){let t="";const r=e.INSPECT_MAX_BYTES;return t=this.toString("hex",0,r).replace(/(.{2})/g,"$1 ").trim(),this.length>r&&(t+=" ... "),"<Buffer "+t+">"},i&&(Buffer.prototype[i]=Buffer.prototype.inspect),Buffer.prototype.compare=function compare(t,e,r,n,f){if(isInstance(t,Uint8Array)&&(t=Buffer.from(t,t.offset,t.byteLength)),!Buffer.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===f&&(f=this.length),e<0||r>t.length||n<0||f>this.length)throw new RangeError("out of range index");if(n>=f&&e>=r)return 0;if(n>=f)return-1;if(e>=r)return 1;if(this===t)return 0;let i=(f>>>=0)-(n>>>=0),o=(r>>>=0)-(e>>>=0);const u=Math.min(i,o),s=this.slice(n,f),h=t.slice(e,r);for(let a=0;a<u;++a)if(s[a]!==h[a]){i=s[a],o=h[a];break}return i<o?-1:o<i?1:0},Buffer.prototype.includes=function includes(t,e,r){return-1!==this.indexOf(t,e,r)},Buffer.prototype.indexOf=function indexOf(t,e,r){return bidirectionalIndexOf(this,t,e,r,!0)},Buffer.prototype.lastIndexOf=function lastIndexOf(t,e,r){return bidirectionalIndexOf(this,t,e,r,!1)},Buffer.prototype.write=function write(t,e,r,n){if(void 0===e)n="utf8",r=this.length,e=0;else if(void 0===r&&"string"===typeof e)n=e,r=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e>>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const f=this.length-e;if((void 0===r||r>f)&&(r=f),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let i=!1;for(;;)switch(n){case"hex":return hexWrite(this,t,e,r);case"utf8":case"utf-8":return utf8Write(this,t,e,r);case"ascii":case"latin1":case"binary":return asciiWrite(this,t,e,r);case"base64":return base64Write(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,t,e,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const u=4096;function asciiSlice(t,e,r){let n="";r=Math.min(t.length,r);for(let f=e;f<r;++f)n+=String.fromCharCode(127&t[f]);return n}function latin1Slice(t,e,r){let n="";r=Math.min(t.length,r);for(let f=e;f<r;++f)n+=String.fromCharCode(t[f]);return n}function hexSlice(t,e,r){const n=t.length;(!e||e<0)&&(e=0),(!r||r<0||r>n)&&(r=n);let f="";for(let i=e;i<r;++i)f+=a[t[i]];return f}function utf16leSlice(t,e,r){const n=t.slice(e,r);let f="";for(let i=0;i<n.length-1;i+=2)f+=String.fromCharCode(n[i]+256*n[i+1]);return f}function checkOffset(t,e,r){if(t%1!==0||t<0)throw new RangeError("offset is not uint");if(t+e>r)throw new RangeError("Trying to access beyond buffer length")}function checkInt(t,e,r,n,f,i){if(!Buffer.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>f||e<i)throw new RangeError('"value" argument is out of bounds');if(r+n>t.length)throw new RangeError("Index out of range")}function wrtBigUInt64LE(t,e,r,n,f){checkIntBI(e,n,f,t,r,7);let i=Number(e&BigInt(4294967295));t[r++]=i,i>>=8,t[r++]=i,i>>=8,t[r++]=i,i>>=8,t[r++]=i;let o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,o>>=8,t[r++]=o,r}function wrtBigUInt64BE(t,e,r,n,f){checkIntBI(e,n,f,t,r,7);let i=Number(e&BigInt(4294967295));t[r+7]=i,i>>=8,t[r+6]=i,i>>=8,t[r+5]=i,i>>=8,t[r+4]=i;let o=Number(e>>BigInt(32)&BigInt(4294967295));return t[r+3]=o,o>>=8,t[r+2]=o,o>>=8,t[r+1]=o,o>>=8,t[r]=o,r+8}function checkIEEE754(t,e,r,n,f,i){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function writeFloat(t,e,r,n,i){return e=+e,r>>>=0,i||checkIEEE754(t,0,r,4),f.write(t,e,r,n,23,4),r+4}function writeDouble(t,e,r,n,i){return e=+e,r>>>=0,i||checkIEEE754(t,0,r,8),f.write(t,e,r,n,52,8),r+8}Buffer.prototype.slice=function slice(t,e){const r=this.length;(t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t);const n=this.subarray(t,e);return Object.setPrototypeOf(n,Buffer.prototype),n},Buffer.prototype.readUintLE=Buffer.prototype.readUIntLE=function readUIntLE(t,e,r){t>>>=0,e>>>=0,r||checkOffset(t,e,this.length);let n=this[t],f=1,i=0;for(;++i<e&&(f*=256);)n+=this[t+i]*f;return n},Buffer.prototype.readUintBE=Buffer.prototype.readUIntBE=function readUIntBE(t,e,r){t>>>=0,e>>>=0,r||checkOffset(t,e,this.length);let n=this[t+--e],f=1;for(;e>0&&(f*=256);)n+=this[t+--e]*f;return n},Buffer.prototype.readUint8=Buffer.prototype.readUInt8=function readUInt8(t,e){return t>>>=0,e||checkOffset(t,1,this.length),this[t]},Buffer.prototype.readUint16LE=Buffer.prototype.readUInt16LE=function readUInt16LE(t,e){return t>>>=0,e||checkOffset(t,2,this.length),this[t]|this[t+1]<<8},Buffer.prototype.readUint16BE=Buffer.prototype.readUInt16BE=function readUInt16BE(t,e){return t>>>=0,e||checkOffset(t,2,this.length),this[t]<<8|this[t+1]},Buffer.prototype.readUint32LE=Buffer.prototype.readUInt32LE=function readUInt32LE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},Buffer.prototype.readUint32BE=Buffer.prototype.readUInt32BE=function readUInt32BE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},Buffer.prototype.readBigUInt64LE=defineBigIntMethod((function readBigUInt64LE(t){validateNumber(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||boundsError(t,this.length-8);const n=e+256*this[++t]+65536*this[++t]+this[++t]*2**24,f=this[++t]+256*this[++t]+65536*this[++t]+r*2**24;return BigInt(n)+(BigInt(f)<<BigInt(32))})),Buffer.prototype.readBigUInt64BE=defineBigIntMethod((function readBigUInt64BE(t){validateNumber(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||boundsError(t,this.length-8);const n=e*2**24+65536*this[++t]+256*this[++t]+this[++t],f=this[++t]*2**24+65536*this[++t]+256*this[++t]+r;return(BigInt(n)<<BigInt(32))+BigInt(f)})),Buffer.prototype.readIntLE=function readIntLE(t,e,r){t>>>=0,e>>>=0,r||checkOffset(t,e,this.length);let n=this[t],f=1,i=0;for(;++i<e&&(f*=256);)n+=this[t+i]*f;return f*=128,n>=f&&(n-=Math.pow(2,8*e)),n},Buffer.prototype.readIntBE=function readIntBE(t,e,r){t>>>=0,e>>>=0,r||checkOffset(t,e,this.length);let n=e,f=1,i=this[t+--n];for(;n>0&&(f*=256);)i+=this[t+--n]*f;return f*=128,i>=f&&(i-=Math.pow(2,8*e)),i},Buffer.prototype.readInt8=function readInt8(t,e){return t>>>=0,e||checkOffset(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},Buffer.prototype.readInt16LE=function readInt16LE(t,e){t>>>=0,e||checkOffset(t,2,this.length);const r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt16BE=function readInt16BE(t,e){t>>>=0,e||checkOffset(t,2,this.length);const r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},Buffer.prototype.readInt32LE=function readInt32LE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},Buffer.prototype.readInt32BE=function readInt32BE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},Buffer.prototype.readBigInt64LE=defineBigIntMethod((function readBigInt64LE(t){validateNumber(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||boundsError(t,this.length-8);const n=this[t+4]+256*this[t+5]+65536*this[t+6]+(r<<24);return(BigInt(n)<<BigInt(32))+BigInt(e+256*this[++t]+65536*this[++t]+this[++t]*2**24)})),Buffer.prototype.readBigInt64BE=defineBigIntMethod((function readBigInt64BE(t){validateNumber(t>>>=0,"offset");const e=this[t],r=this[t+7];void 0!==e&&void 0!==r||boundsError(t,this.length-8);const n=(e<<24)+65536*this[++t]+256*this[++t]+this[++t];return(BigInt(n)<<BigInt(32))+BigInt(this[++t]*2**24+65536*this[++t]+256*this[++t]+r)})),Buffer.prototype.readFloatLE=function readFloatLE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),f.read(this,t,!0,23,4)},Buffer.prototype.readFloatBE=function readFloatBE(t,e){return t>>>=0,e||checkOffset(t,4,this.length),f.read(this,t,!1,23,4)},Buffer.prototype.readDoubleLE=function readDoubleLE(t,e){return t>>>=0,e||checkOffset(t,8,this.length),f.read(this,t,!0,52,8)},Buffer.prototype.readDoubleBE=function readDoubleBE(t,e){return t>>>=0,e||checkOffset(t,8,this.length),f.read(this,t,!1,52,8)},Buffer.prototype.writeUintLE=Buffer.prototype.writeUIntLE=function writeUIntLE(t,e,r,n){if(t=+t,e>>>=0,r>>>=0,!n){checkInt(this,t,e,r,Math.pow(2,8*r)-1,0)}let f=1,i=0;for(this[e]=255&t;++i<r&&(f*=256);)this[e+i]=t/f&255;return e+r},Buffer.prototype.writeUintBE=Buffer.prototype.writeUIntBE=function writeUIntBE(t,e,r,n){if(t=+t,e>>>=0,r>>>=0,!n){checkInt(this,t,e,r,Math.pow(2,8*r)-1,0)}let f=r-1,i=1;for(this[e+f]=255&t;--f>=0&&(i*=256);)this[e+f]=t/i&255;return e+r},Buffer.prototype.writeUint8=Buffer.prototype.writeUInt8=function writeUInt8(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,1,255,0),this[e]=255&t,e+1},Buffer.prototype.writeUint16LE=Buffer.prototype.writeUInt16LE=function writeUInt16LE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,2,65535,0),this[e]=255&t,this[e+1]=t>>>8,e+2},Buffer.prototype.writeUint16BE=Buffer.prototype.writeUInt16BE=function writeUInt16BE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,2,65535,0),this[e]=t>>>8,this[e+1]=255&t,e+2},Buffer.prototype.writeUint32LE=Buffer.prototype.writeUInt32LE=function writeUInt32LE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,4,4294967295,0),this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t,e+4},Buffer.prototype.writeUint32BE=Buffer.prototype.writeUInt32BE=function writeUInt32BE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,4,4294967295,0),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},Buffer.prototype.writeBigUInt64LE=defineBigIntMethod((function writeBigUInt64LE(t,e=0){return wrtBigUInt64LE(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),Buffer.prototype.writeBigUInt64BE=defineBigIntMethod((function writeBigUInt64BE(t,e=0){return wrtBigUInt64BE(this,t,e,BigInt(0),BigInt("0xffffffffffffffff"))})),Buffer.prototype.writeIntLE=function writeIntLE(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);checkInt(this,t,e,r,n-1,-n)}let f=0,i=1,o=0;for(this[e]=255&t;++f<r&&(i*=256);)t<0&&0===o&&0!==this[e+f-1]&&(o=1),this[e+f]=(t/i>>0)-o&255;return e+r},Buffer.prototype.writeIntBE=function writeIntBE(t,e,r,n){if(t=+t,e>>>=0,!n){const n=Math.pow(2,8*r-1);checkInt(this,t,e,r,n-1,-n)}let f=r-1,i=1,o=0;for(this[e+f]=255&t;--f>=0&&(i*=256);)t<0&&0===o&&0!==this[e+f+1]&&(o=1),this[e+f]=(t/i>>0)-o&255;return e+r},Buffer.prototype.writeInt8=function writeInt8(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,1,127,-128),t<0&&(t=255+t+1),this[e]=255&t,e+1},Buffer.prototype.writeInt16LE=function writeInt16LE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,2,32767,-32768),this[e]=255&t,this[e+1]=t>>>8,e+2},Buffer.prototype.writeInt16BE=function writeInt16BE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,2,32767,-32768),this[e]=t>>>8,this[e+1]=255&t,e+2},Buffer.prototype.writeInt32LE=function writeInt32LE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,4,2147483647,-2147483648),this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24,e+4},Buffer.prototype.writeInt32BE=function writeInt32BE(t,e,r){return t=+t,e>>>=0,r||checkInt(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t,e+4},Buffer.prototype.writeBigInt64LE=defineBigIntMethod((function writeBigInt64LE(t,e=0){return wrtBigUInt64LE(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),Buffer.prototype.writeBigInt64BE=defineBigIntMethod((function writeBigInt64BE(t,e=0){return wrtBigUInt64BE(this,t,e,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),Buffer.prototype.writeFloatLE=function writeFloatLE(t,e,r){return writeFloat(this,t,e,!0,r)},Buffer.prototype.writeFloatBE=function writeFloatBE(t,e,r){return writeFloat(this,t,e,!1,r)},Buffer.prototype.writeDoubleLE=function writeDoubleLE(t,e,r){return writeDouble(this,t,e,!0,r)},Buffer.prototype.writeDoubleBE=function writeDoubleBE(t,e,r){return writeDouble(this,t,e,!1,r)},Buffer.prototype.copy=function copy(t,e,r,n){if(!Buffer.isBuffer(t))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n<r&&(n=r),n===r)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e<n-r&&(n=t.length-e+r);const f=n-r;return this===t&&"function"===typeof Uint8Array.prototype.copyWithin?this.copyWithin(e,r,n):Uint8Array.prototype.set.call(t,this.subarray(r,n),e),f},Buffer.prototype.fill=function fill(t,e,r,n){if("string"===typeof t){if("string"===typeof e?(n=e,e=0,r=this.length):"string"===typeof r&&(n=r,r=this.length),void 0!==n&&"string"!==typeof n)throw new TypeError("encoding must be a string");if("string"===typeof n&&!Buffer.isEncoding(n))throw new TypeError("Unknown encoding: "+n);if(1===t.length){const e=t.charCodeAt(0);("utf8"===n&&e<128||"latin1"===n)&&(t=e)}}else"number"===typeof t?t&=255:"boolean"===typeof t&&(t=Number(t));if(e<0||this.length<e||this.length<r)throw new RangeError("Out of range index");if(r<=e)return this;let f;if(e>>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"===typeof t)for(f=e;f<r;++f)this[f]=t;else{const i=Buffer.isBuffer(t)?t:Buffer.from(t,n),o=i.length;if(0===o)throw new TypeError('The value "'+t+'" is invalid for argument "value"');for(f=0;f<r-e;++f)this[f+e]=i[f%o]}return this};const s={};function E(t,e,r){s[t]=class NodeError extends r{constructor(){super(),Object.defineProperty(this,"message",{value:e.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${t}]`,this.stack,delete this.name}get code(){return t}set code(t){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:t,writable:!0})}toString(){return`${this.name} [${t}]: ${this.message}`}}}function addNumericalSeparator(t){let e="",r=t.length;const n="-"===t[0]?1:0;for(;r>=n+4;r-=3)e=`_${t.slice(r-3,r)}${e}`;return`${t.slice(0,r)}${e}`}function checkIntBI(t,e,r,n,f,i){if(t>r||t<e){const n="bigint"===typeof e?"n":"";let f;throw f=i>3?0===e||e===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(i+1)}${n}`:`>= -(2${n} ** ${8*(i+1)-1}${n}) and < 2 ** ${8*(i+1)-1}${n}`:`>= ${e}${n} and <= ${r}${n}`,new s.ERR_OUT_OF_RANGE("value",f,t)}!function checkBounds(t,e,r){validateNumber(e,"offset"),void 0!==t[e]&&void 0!==t[e+r]||boundsError(e,t.length-(r+1))}(n,f,i)}function validateNumber(t,e){if("number"!==typeof t)throw new s.ERR_INVALID_ARG_TYPE(e,"number",t)}function boundsError(t,e,r){if(Math.floor(t)!==t)throw validateNumber(t,r),new s.ERR_OUT_OF_RANGE(r||"offset","an integer",t);if(e<0)throw new s.ERR_BUFFER_OUT_OF_BOUNDS;throw new s.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${e}`,t)}E("ERR_BUFFER_OUT_OF_BOUNDS",(function(t){return t?`${t} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),E("ERR_INVALID_ARG_TYPE",(function(t,e){return`The "${t}" argument must be of type number. Received type ${typeof e}`}),TypeError),E("ERR_OUT_OF_RANGE",(function(t,e,r){let n=`The value of "${t}" is out of range.`,f=r;return Number.isInteger(r)&&Math.abs(r)>2**32?f=addNumericalSeparator(String(r)):"bigint"===typeof r&&(f=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(f=addNumericalSeparator(f)),f+="n"),n+=` It must be ${e}. Received ${f}`,n}),RangeError);const h=/[^+/0-9A-Za-z-_]/g;function utf8ToBytes(t,e){let r;e=e||1/0;const n=t.length;let f=null;const i=[];for(let o=0;o<n;++o){if(r=t.charCodeAt(o),r>55295&&r<57344){if(!f){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(o+1===n){(e-=3)>-1&&i.push(239,191,189);continue}f=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),f=r;continue}r=65536+(f-55296<<10|r-56320)}else f&&(e-=3)>-1&&i.push(239,191,189);if(f=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function base64ToBytes(t){return n.toByteArray(function base64clean(t){if((t=(t=t.split("=")[0]).trim().replace(h,"")).length<2)return"";for(;t.length%4!==0;)t+="=";return t}(t))}function blitBuffer(t,e,r,n){let f;for(f=0;f<n&&!(f+r>=e.length||f>=t.length);++f)e[f+r]=t[f];return f}function isInstance(t,e){return t instanceof e||null!=t&&null!=t.constructor&&null!=t.constructor.name&&t.constructor.name===e.name}function numberIsNaN(t){return t!==t}const a=function(){const t="0123456789abcdef",e=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let f=0;f<16;++f)e[n+f]=t[r]+t[f]}return e}();function defineBigIntMethod(t){return"undefined"===typeof BigInt?BufferBigIntNotDefined:t}function BufferBigIntNotDefined(){throw new Error("BigInt not supported")}},645:(t,e)=>{e.read=function(t,e,r,n,f){var i,o,u=8*f-n-1,s=(1<<u)-1,h=s>>1,a=-7,c=r?f-1:0,l=r?-1:1,p=t[e+c];for(c+=l,i=p&(1<<-a)-1,p>>=-a,a+=u;a>0;i=256*i+t[e+c],c+=l,a-=8);for(o=i&(1<<-a)-1,i>>=-a,a+=n;a>0;o=256*o+t[e+c],c+=l,a-=8);if(0===i)i=1-h;else{if(i===s)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,n),i-=h}return(p?-1:1)*o*Math.pow(2,i-n)},e.write=function(t,e,r,n,f,i){var o,u,s,h=8*i-f-1,a=(1<<h)-1,c=a>>1,l=23===f?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,B=n?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(u=isNaN(e)?1:0,o=a):(o=Math.floor(Math.log(e)/Math.LN2),e*(s=Math.pow(2,-o))<1&&(o--,s*=2),(e+=o+c>=1?l/s:l*Math.pow(2,1-c))*s>=2&&(o++,s/=2),o+c>=a?(u=0,o=a):o+c>=1?(u=(e*s-1)*Math.pow(2,f),o+=c):(u=e*Math.pow(2,c-1)*Math.pow(2,f),o=0));f>=8;t[r+p]=255&u,p+=B,u/=256,f-=8);for(o=o<<f|u,h+=f;h>0;t[r+p]=255&o,p+=B,o/=256,h-=8);t[r+p-B]|=128*g}}},e={};var r=function __webpack_require__(r){var n=e[r];if(void 0!==n)return n.exports;var f=e[r]={exports:{}};return t[r](f,f.exports,__webpack_require__),f.exports}(8764);window.buffer=r})();
  5. /*! For license information please see rogue-engine.js.LICENSE.txt */
  6. (()=>{var e={7187:e=>{"use strict";var t,i="object"===typeof Reflect?Reflect:null,n=i&&"function"===typeof i.apply?i.apply:function ReflectApply(e,t,i){return Function.prototype.apply.call(e,t,i)};t=i&&"function"===typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function ReflectOwnKeys(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function ReflectOwnKeys(e){return Object.getOwnPropertyNames(e)};var s=Number.isNaN||function NumberIsNaN(e){return e!==e};function EventEmitter(){EventEmitter.init.call(this)}e.exports=EventEmitter,e.exports.once=function once(e,t){return new Promise((function(i,n){function errorListener(i){e.removeListener(t,resolver),n(i)}function resolver(){"function"===typeof e.removeListener&&e.removeListener("error",errorListener),i([].slice.call(arguments))}eventTargetAgnosticAddListener(e,t,resolver,{once:!0}),"error"!==t&&function addErrorHandlerIfEventEmitter(e,t,i){"function"===typeof e.on&&eventTargetAgnosticAddListener(e,"error",t,i)}(e,errorListener,{once:!0})}))},EventEmitter.EventEmitter=EventEmitter,EventEmitter.prototype._events=void 0,EventEmitter.prototype._eventsCount=0,EventEmitter.prototype._maxListeners=void 0;var o=10;function checkListener(e){if("function"!==typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function _getMaxListeners(e){return void 0===e._maxListeners?EventEmitter.defaultMaxListeners:e._maxListeners}function _addListener(e,t,i,n){var s,o,r;if(checkListener(i),void 0===(o=e._events)?(o=e._events=Object.create(null),e._eventsCount=0):(void 0!==o.newListener&&(e.emit("newListener",t,i.listener?i.listener:i),o=e._events),r=o[t]),void 0===r)r=o[t]=i,++e._eventsCount;else if("function"===typeof r?r=o[t]=n?[i,r]:[r,i]:n?r.unshift(i):r.push(i),(s=_getMaxListeners(e))>0&&r.length>s&&!r.warned){r.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+r.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=e,a.type=t,a.count=r.length,function ProcessEmitWarning(e){console&&console.warn&&console.warn(e)}(a)}return e}function onceWrapper(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function _onceWrap(e,t,i){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:i},s=onceWrapper.bind(n);return s.listener=i,n.wrapFn=s,s}function _listeners(e,t,i){var n=e._events;if(void 0===n)return[];var s=n[t];return void 0===s?[]:"function"===typeof s?i?[s.listener||s]:[s]:i?function unwrapListeners(e){for(var t=new Array(e.length),i=0;i<t.length;++i)t[i]=e[i].listener||e[i];return t}(s):arrayClone(s,s.length)}function listenerCount(e){var t=this._events;if(void 0!==t){var i=t[e];if("function"===typeof i)return 1;if(void 0!==i)return i.length}return 0}function arrayClone(e,t){for(var i=new Array(t),n=0;n<t;++n)i[n]=e[n];return i}function eventTargetAgnosticAddListener(e,t,i,n){if("function"===typeof e.on)n.once?e.once(t,i):e.on(t,i);else{if("function"!==typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,(function wrapListener(s){n.once&&e.removeEventListener(t,wrapListener),i(s)}))}}Object.defineProperty(EventEmitter,"defaultMaxListeners",{enumerable:!0,get:function(){return o},set:function(e){if("number"!==typeof e||e<0||s(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o=e}}),EventEmitter.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},EventEmitter.prototype.setMaxListeners=function setMaxListeners(e){if("number"!==typeof e||e<0||s(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return _getMaxListeners(this)},EventEmitter.prototype.emit=function emit(e){for(var t=[],i=1;i<arguments.length;i++)t.push(arguments[i]);var s="error"===e,o=this._events;if(void 0!==o)s=s&&void 0===o.error;else if(!s)return!1;if(s){var r;if(t.length>0&&(r=t[0]),r instanceof Error)throw r;var a=new Error("Unhandled error."+(r?" ("+r.message+")":""));throw a.context=r,a}var u=o[e];if(void 0===u)return!1;if("function"===typeof u)n(u,this,t);else{var c=u.length,h=arrayClone(u,c);for(i=0;i<c;++i)n(h[i],this,t)}return!0},EventEmitter.prototype.addListener=function addListener(e,t){return _addListener(this,e,t,!1)},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.prependListener=function prependListener(e,t){return _addListener(this,e,t,!0)},EventEmitter.prototype.once=function once(e,t){return checkListener(t),this.on(e,_onceWrap(this,e,t)),this},EventEmitter.prototype.prependOnceListener=function prependOnceListener(e,t){return checkListener(t),this.prependListener(e,_onceWrap(this,e,t)),this},EventEmitter.prototype.removeListener=function removeListener(e,t){var i,n,s,o,r;if(checkListener(t),void 0===(n=this._events))return this;if(void 0===(i=n[e]))return this;if(i===t||i.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete n[e],n.removeListener&&this.emit("removeListener",e,i.listener||t));else if("function"!==typeof i){for(s=-1,o=i.length-1;o>=0;o--)if(i[o]===t||i[o].listener===t){r=i[o].listener,s=o;break}if(s<0)return this;0===s?i.shift():function spliceOne(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(i,s),1===i.length&&(n[e]=i[0]),void 0!==n.removeListener&&this.emit("removeListener",e,r||t)}return this},EventEmitter.prototype.off=EventEmitter.prototype.removeListener,EventEmitter.prototype.removeAllListeners=function removeAllListeners(e){var t,i,n;if(void 0===(i=this._events))return this;if(void 0===i.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==i[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete i[e]),this;if(0===arguments.length){var s,o=Object.keys(i);for(n=0;n<o.length;++n)"removeListener"!==(s=o[n])&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"===typeof(t=i[e]))this.removeListener(e,t);else if(void 0!==t)for(n=t.length-1;n>=0;n--)this.removeListener(e,t[n]);return this},EventEmitter.prototype.listeners=function listeners(e){return _listeners(this,e,!0)},EventEmitter.prototype.rawListeners=function rawListeners(e){return _listeners(this,e,!1)},EventEmitter.listenerCount=function(e,t){return"function"===typeof e.listenerCount?e.listenerCount(t):listenerCount.call(e,t)},EventEmitter.prototype.listenerCount=listenerCount,EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?t(this._events):[]}},2705:(e,t,i)=>{var n=i(5639).Symbol;e.exports=n},4239:(e,t,i)=>{var n=i(2705),s=i(9607),o=i(2333),r="[object Null]",a="[object Undefined]",u=n?n.toStringTag:void 0;e.exports=function baseGetTag(e){return null==e?void 0===e?a:r:u&&u in Object(e)?s(e):o(e)}},7561:(e,t,i)=>{var n=i(7990),s=/^\s+/;e.exports=function baseTrim(e){return e?e.slice(0,n(e)+1).replace(s,""):e}},1957:(e,t,i)=>{var n="object"==typeof i.g&&i.g&&i.g.Object===Object&&i.g;e.exports=n},9607:(e,t,i)=>{var n=i(2705),s=Object.prototype,o=s.hasOwnProperty,r=s.toString,a=n?n.toStringTag:void 0;e.exports=function getRawTag(e){var t=o.call(e,a),i=e[a];try{e[a]=void 0;var n=!0}catch(u){}var s=r.call(e);return n&&(t?e[a]=i:delete e[a]),s}},2333:e=>{var t=Object.prototype.toString;e.exports=function objectToString(e){return t.call(e)}},5639:(e,t,i)=>{var n=i(1957),s="object"==typeof self&&self&&self.Object===Object&&self,o=n||s||Function("return this")();e.exports=o},7990:e=>{var t=/\s/;e.exports=function trimmedEndIndex(e){for(var i=e.length;i--&&t.test(e.charAt(i)););return i}},3279:(e,t,i)=>{var n=i(3218),s=i(7771),o=i(4841),r="Expected a function",a=Math.max,u=Math.min;e.exports=function debounce(e,t,i){var c,h,d,l,p,f,m=0,g=!1,_=!1,b=!0;if("function"!=typeof e)throw new TypeError(r);function invokeFunc(t){var i=c,n=h;return c=h=void 0,m=t,l=e.apply(n,i)}function shouldInvoke(e){var i=e-f;return void 0===f||i>=t||i<0||_&&e-m>=d}function timerExpired(){var e=s();if(shouldInvoke(e))return trailingEdge(e);p=setTimeout(timerExpired,function remainingWait(e){var i=t-(e-f);return _?u(i,d-(e-m)):i}(e))}function trailingEdge(e){return p=void 0,b&&c?invokeFunc(e):(c=h=void 0,l)}function debounced(){var e=s(),i=shouldInvoke(e);if(c=arguments,h=this,f=e,i){if(void 0===p)return function leadingEdge(e){return m=e,p=setTimeout(timerExpired,t),g?invokeFunc(e):l}(f);if(_)return clearTimeout(p),p=setTimeout(timerExpired,t),invokeFunc(f)}return void 0===p&&(p=setTimeout(timerExpired,t)),l}return t=o(t)||0,n(i)&&(g=!!i.leading,d=(_="maxWait"in i)?a(o(i.maxWait)||0,t):d,b="trailing"in i?!!i.trailing:b),debounced.cancel=function cancel(){void 0!==p&&clearTimeout(p),m=0,c=f=h=p=void 0},debounced.flush=function flush(){return void 0===p?l:trailingEdge(s())},debounced}},3218:e=>{e.exports=function isObject(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function isObjectLike(e){return null!=e&&"object"==typeof e}},3448:(e,t,i)=>{var n=i(4239),s=i(7005),o="[object Symbol]";e.exports=function isSymbol(e){return"symbol"==typeof e||s(e)&&n(e)==o}},7771:(e,t,i)=>{var n=i(5639);e.exports=function(){return n.Date.now()}},3493:(e,t,i)=>{var n=i(3279),s=i(3218),o="Expected a function";e.exports=function throttle(e,t,i){var r=!0,a=!0;if("function"!=typeof e)throw new TypeError(o);return s(i)&&(r="leading"in i?!!i.leading:r,a="trailing"in i?!!i.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}},4841:(e,t,i)=>{var n=i(7561),s=i(3218),o=i(3448),r=NaN,a=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,c=/^0o[0-7]+$/i,h=parseInt;e.exports=function toNumber(e){if("number"==typeof e)return e;if(o(e))return r;if(s(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=s(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=n(e);var i=u.test(e);return i||c.test(e)?h(e.slice(2),i?2:8):a.test(e)?r:+e}},5327:e=>{for(var t=[],i=0;i<256;++i)t[i]=(i+256).toString(16).substr(1);e.exports=function bytesToUuid(e,i){var n=i||0,s=t;return[s[e[n++]],s[e[n++]],s[e[n++]],s[e[n++]],"-",s[e[n++]],s[e[n++]],"-",s[e[n++]],s[e[n++]],"-",s[e[n++]],s[e[n++]],"-",s[e[n++]],s[e[n++]],s[e[n++]],s[e[n++]],s[e[n++]],s[e[n++]]].join("")}},5217:e=>{var t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(t){var i=new Uint8Array(16);e.exports=function whatwgRNG(){return t(i),i}}else{var n=new Array(16);e.exports=function mathRNG(){for(var e,t=0;t<16;t++)0===(3&t)&&(e=4294967296*Math.random()),n[t]=e>>>((3&t)<<3)&255;return n}}},1171:(e,t,i)=>{var n=i(5217),s=i(5327);e.exports=function v4(e,t,i){var o=t&&i||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var r=(e=e||{}).random||(e.rng||n)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t)for(var a=0;a<16;++a)t[o+a]=r[a];return t||s(r)}}},t={};function __webpack_require__(i){var n=t[i];if(void 0!==n)return n.exports;var s=t[i]={exports:{}};return e[i](s,s.exports,__webpack_require__),s.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var i in t)__webpack_require__.o(t,i)&&!__webpack_require__.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},__webpack_require__.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{"use strict";__webpack_require__.r(i),__webpack_require__.d(i,{App:()=>App,AssetManager:()=>j,AudioAsset:()=>AudioAsset,Component:()=>Component,Debug:()=>Debug,Error:()=>Debug_Error,Input:()=>Input,Log:()=>Log,Prefab:()=>Prefab,Prop:()=>Prop,PropList:()=>PropList,Runtime:()=>m,RuntimeController:()=>RuntimeController,SceneController:()=>SceneController,Skybox:()=>g,Tags:()=>Tags,Warning:()=>Warning,addComponent:()=>addComponent,clearComponents:()=>clearComponents,components:()=>C,copyObjectComponents:()=>copyObjectComponents,dispose:()=>dispose,editorComponents:()=>w,getComponent:()=>getComponent,getComponentByName:()=>getComponentByName,getComponentPrototypes:()=>getComponentPrototypes,getComponents:()=>getComponents,getObjectComponents:()=>getObjectComponents,getStaticPath:()=>getStaticPath,initComponents:()=>initComponents,initEditorComponents:()=>initEditorComponents,isActive:()=>isActive,isDev:()=>isDev,isEnabled:()=>isEnabled,loadComponents:()=>loadComponents,onAfterUpdate:()=>onAfterUpdate,onBeforeUpdate:()=>onBeforeUpdate,onComponentAdded:()=>onComponentAdded,onComponentLoaded:()=>onComponentLoaded,onComponentRemoved:()=>onComponentRemoved,onNextFrame:()=>onNextFrame,onObjectAdded:()=>onObjectAdded,onObjectRemoved:()=>onObjectRemoved,onUpdate:()=>onUpdate,props:()=>I,registerComponent:()=>registerComponent,removeComponent:()=>removeComponent,removeComponents:()=>removeComponents,serializeComponents:()=>serializeComponents,setEnabled:()=>setEnabled,traverseComponents:()=>traverseComponents});const e=window.three;function __awaiter(e,t,i,n){return new(i||(i=Promise))((function(s,o){function fulfilled(e){try{step(n.next(e))}catch(t){o(t)}}function rejected(e){try{step(n.throw(e))}catch(t){o(t)}}function step(e){e.done?s(e.value):function adopt(e){return e instanceof i?e:new i((function(t){t(e)}))}(e.value).then(fulfilled,rejected)}step((n=n.apply(e,t||[])).next())}))}class Lifecycle{}class Debug{static clear(){this.logs.splice(0,this.logs.length),this.flushOnClearLogsCallbacks()}static log(e){let t=new Log(e);this.addLog(t),this.flushOnAddLogCallbacks(t),console.log(e)}static logError(e){let t=new Debug_Error(e);this.addLog(t),this.flushOnAddLogCallbacks(t),console.error(e)}static logWarning(e){let t=new Warning(e);this.addLog(t),this.flushOnAddLogCallbacks(t),console.warn(e)}static addLog(e){this.logs.length>=this.maxLogs&&this.logs.shift(),this.logs.push(e)}static onAddLog(e){return this._onAddLogCallbacks.push(e),{stop:()=>{this._onAddLogCallbacks.splice(this._onAddLogCallbacks.indexOf(e),1)}}}static onClearLogs(e){return this._onClearLogsCallbacks.push(e),{stop:()=>{this._onClearLogsCallbacks.splice(this._onClearLogsCallbacks.indexOf(e),1)}}}static flushOnAddLogCallbacks(e){for(let t in this._onAddLogCallbacks)this._onAddLogCallbacks[t](e)}static flushOnClearLogsCallbacks(){for(let e in this._onClearLogsCallbacks)this._onClearLogsCallbacks[e]()}}Debug.maxLogs=50,Debug.logs=[],Debug._onAddLogCallbacks=[],Debug._onClearLogsCallbacks=[];class Log{get type(){return this._type}constructor(e){this.message=e,this._type="Log"}}class Debug_Error extends Log{constructor(e){super(e),this._type="Error"}}class Warning extends Log{constructor(e){super(e),this._type="Warning"}}var t=__webpack_require__(3493),n=__webpack_require__.n(t),s=__webpack_require__(7187);let o=new(__webpack_require__.n(s)());const r=[],a=[],objectEvensHandler=(e,t,i)=>{if(0===i.length)return;const n=[];for(let s=0;s<i.length;s++)n.push(i[s]);for(let s=0;s<n.length;s++)n[s](e,t)};function onObjectAdded(e){return r.push(e),{stop:()=>{let t=r.indexOf(e);t<0||r.splice(t,1)}}}function onObjectRemoved(e){return a.push(e),{stop:()=>{let t=a.indexOf(e);t<0||a.splice(t,1)}}}function objectAdded(e,t){objectEvensHandler(e,t,r)}const u=[],c=[],h=[],componentEvensHandler=(e,t,i)=>{if(0===i.length)return;const n=[];for(let s=0;s<i.length;s++)n.push(i[s]);for(let s=0;s<n.length;s++)n[s](e,t)};function onComponentAdded(e){return u.push(e),{stop:()=>{let t=u.indexOf(e);t<0||u.splice(t,1)}}}function onComponentLoaded(e){return c.push(e),{stop:()=>{let t=c.indexOf(e);t<0||c.splice(t,1)}}}function onComponentRemoved(e){return h.push(e),{stop:()=>{let t=h.indexOf(e);t<0||h.splice(t,1)}}}function componentRemoved(e,t){componentEvensHandler(e,t,h)}const d=[],l=[],p=[],f=[],updateEvensHandler=(e,t)=>{if(0===t.length)return;const i=[];for(let n=0;n<t.length;n++)i.push(t[n]);for(let n=0;n<i.length;n++)i[n](e)};function onBeforeUpdate(e){return d.push(e),{stop:()=>{let t=d.indexOf(e);t<0||d.splice(t,1)}}}function onUpdate(e){return l.push(e),{stop:()=>{let t=l.indexOf(e);t<0||l.splice(t,1)}}}function onAfterUpdate(e){return p.push(e),{stop:()=>{let t=p.indexOf(e);t<0||p.splice(t,1)}}}function onNextFrame(e){const callbackWrapper=t=>{e(t);let i=f.indexOf(callbackWrapper);i<0||f.splice(i,1)};f.push(callbackWrapper)}function isDev(){return window.ROGUE_ISDEV||!1}function getStaticPath(e){if(isDev()){const t=window.ROGUE_INEDITOR?"localhost":App.lanIP||"localhost";return`${window.RE_Protocol||window.location.protocol}//${t}:3110/Static/${e}`}{const t=window.re_prefix;return t?t+"/Static/"+e:"./Static/"+e}}function loadComponentsRecursive(e){const t=e.userData&&e.userData.components;(()=>{__awaiter(this,void 0,void 0,(function*(){t&&loadComponents(e,t),e.userData&&delete e.userData.components}))})();for(let i in e.children)loadComponentsRecursive(e.children[i])}function disposeMaterial(t){if(t instanceof e.Material){const e=j.getAssetConfig(t.uuid);if(e&&e.keepLoaded)return;for(let i in t){disposeTexture(t[i])}t.dispose&&t.dispose()}else Array.isArray(t)&&t.forEach((e=>{disposeMaterial(e)}))}function disposeTexture(t){if(t instanceof e.Texture){const e=j.getAssetConfig(t.uuid);if(e&&e.keepLoaded)return;t.dispose&&t.dispose()}}function dispose(t){t&&t.traverse((t=>{var i,n;if(t instanceof e.Mesh&&(t.geometry.dispose&&t.geometry.dispose(),disposeMaterial(t.material)),t instanceof e.SkinnedMesh&&t.skeleton&&(t.skeleton.dispose&&t.skeleton.dispose(),(null===(i=t.skeleton.boneTexture)||void 0===i?void 0:i.dispose)&&(null===(n=t.skeleton.boneTexture)||void 0===n||n.dispose())),t.parent){const e=t.parent.children.indexOf(t);e>=0&&(t.parent.children[e]=null),t.parent=null}}))}function isEnabled(e){return!!e&&!1!==e.userData.rogueEnabled}function isActive(e){return!!e&&(!!isEnabled(e)&&!1!==e.userData.rogueParentsEnabled)}function setEnabled(e,t){e&&(t&&!isEnabled(e)?function enable(e){if(!e)return;e.userData.rogueEnabled=!0,awakeObjectComponents(e),activateChildren(e)}(e):!t&&isEnabled(e)&&function disable(e){if(!e)return;e.userData.rogueEnabled=!1,disableObjectComponents(e),e.traverse((t=>{t!==e&&(t.userData.rogueParentsEnabled=!1,disableObjectComponents(t))}))}(e))}function awakeObjectComponents(e){if(!m.isRunning)return;if(!e)return;getObjectComponents(e).forEach((e=>{e.awake(),e.__STARTED__=!1}))}function disableObjectComponents(e){if(!m.isRunning)return;if(!e)return;getObjectComponents(e).forEach((e=>{e.onDisabled()}))}function activateChildren(e){if(e)for(let t of e.children)t.userData.rogueParentsEnabled=!0,awakeObjectComponents(t),isEnabled(t)&&activateChildren(t)}class SceneController extends Lifecycle{constructor(){super(),this.renderFunc=()=>this.defaultRenderFunc(),this._clock=new e.Clock,this._onPlayCallbacks=[],this._onStopCallbacks=[],this._throttledAdjustCameraAndRenderer=n()((()=>this.adjustCameraAndRenderer()),1e3,{}),this._containerId="rogue-app",this._isOffscreen=!1,this._stop=()=>{},this._deltaTime=0,this._pageVisibilityHandler=()=>{this._clock.running&&this._clock.stop(),!this._clock.running&&this._clock.start()},this.doOnResize=e=>{this.adjustCameraAndRenderer(!0),this.onResize()},this.onResize=()=>{},this.resizeObserver=new window.ResizeObserver(this.doOnResize),document.removeEventListener("visibilitychange",this._pageVisibilityHandler),document.addEventListener("visibilitychange",this._pageVisibilityHandler)}get defaultRenderFunc(){return()=>this._renderer.render(this._scene,this._camera||new e.OrthographicCamera(0,0,0,0,0,0))}get deltaTime(){return this._deltaTime||0}get height(){return this._height}get width(){return this._width}get containerId(){return this._containerId}get camera(){return this._camera}set camera(e){this._camera=e}get scene(){return this._scene}get renderer(){return this._renderer}get isRunning(){return this._isRunning}get isPaused(){return this._isPaused}get rogueDOMContainer(){return this._rogueDOMContainer}get clock(){return this._clock}onPlay(e){return this._onPlayCallbacks.push(e),{stop:()=>{let t=this._onPlayCallbacks.indexOf(e);t<0||this._onPlayCallbacks.splice(t,1)}}}onStop(e){this._onStopCallbacks.push(e);return{stop:()=>{let t=this._onStopCallbacks.indexOf(e);t<0||this._onStopCallbacks.splice(t,1)}}}loadMaterials(){const t={};App.currentScene.traverse((i=>{if(i.material instanceof e.Material){if(!j.getAssetPath(i.material.uuid))return;const e=j.getAsset(i.material.uuid);if(e)return void(i.material=e);t[i.material.uuid]?t[i.material.uuid].push(i):t[i.material.uuid]=[i]}}));for(const e in t)j.loadAsset(e).then((i=>{for(const n of t[e])n.material=i||n.material}))}play(t,i,n){this.isPaused?this._isPaused=!1:(this.renderFunc=()=>this.defaultRenderFunc(),this._scene=t,this._isRunning=!0,this.updateEventsHandler(this._onPlayCallbacks),this.loadMaterials(),this.startRenderer(i),this.resizeObserver.observe(this._rogueDOMContainer),this._renderer.setAnimationLoop(this.beginUpdateCycle.bind(this)),App.currentScene.traverse((t=>{if(t instanceof e.Mesh&&t.material instanceof e.Material)for(let i in t.material)t.material[i]instanceof e.Texture&&this.renderer.initTexture(t.material[i])})),initComponents(App.currentScene,n),this.awake(),this.start(),this._clock.start())}stop(){this._isRunning&&(this._clock.stop(),this.updateEventsHandler(this._onStopCallbacks),this._isRunning=!1,this._stop(),this._renderer.setAnimationLoop(null),this.resizeObserver.unobserve(this._rogueDOMContainer))}updateEventsHandler(e){if(0===e.length)return;const t=[];for(let i=0;i<e.length;i++)t.push(e[i]);for(let i=0;i<t.length;i++)t[i]()}pause(){this.isRunning&&!this.isPaused&&(this._isPaused=!0,this._stop())}resume(){this.isRunning&&this.isPaused&&this.play(this._scene)}togglePause(){this.isRunning&&(this.isPaused?this.resume():this.pause())}traverseObject3d(e,t){for(let i in e.children){let n=e.children[i];t(n),this.traverseObject3d(n,t)}}awake(){this.traverseSceneComponents((e=>{try{isActive(e.object3d)&&e.awake()}catch(t){Debug.logError(`${t.name} in ${e.name}: ${t.stack}`)}}))}start(){this.traverseSceneComponents((e=>{try{e.isReady&&isActive(e.object3d)&&(e.start(),e.__STARTED__=!0)}catch(t){Debug.logError(`${t.name} in ${e.name}: ${t.stack}`)}}))}beforeUpdate(){this.traverseSceneComponents((e=>{if(this.isRunning&&isActive(e.object3d))try{e.isReady&&!e.__STARTED__&&(e.start(),e.__STARTED__=!0),e.isReady&&e.__STARTED__&&e.beforeUpdate()}catch(t){Debug.logError(`${t.name} in ${e.name}: ${t.stack}`)}})),function runBeforeUpdate(e){updateEvensHandler(e,d)}(this)}update(){this.traverseSceneComponents((e=>{if(isActive(e.object3d))try{this.isRunning&&e.isReady&&e.__STARTED__&&e.update()}catch(t){Debug.logError(`${t.name} in ${e.name}: ${t.stack}`)}})),function runUpdate(e){updateEvensHandler(e,l)}(this)}afterUpdate(){this.traverseSceneComponents((e=>{if(isActive(e.object3d))try{this.isRunning&&e.isReady&&e.__STARTED__&&e.afterUpdate()}catch(t){Debug.logError(`${t.name} in ${e.name}: ${t.stack}`)}})),function runAfterUpdate(e){updateEvensHandler(e,p)}(this)}startRenderer(t){this._rogueDOMContainer=document.getElementById("rogue-app");if(!document.getElementById("rogue-canvas")){const e=document.createElement("canvas");e.id="rogue-canvas",this._rogueDOMContainer.appendChild(e)}const i=document.getElementById("rogue-canvas");i.style.display="block",this._isOffscreen=!1,this._renderer||(this._renderer=new e.WebGLRenderer({canvas:i,powerPreference:"high-performance",antialias:!0,alpha:!0})),this._renderer.shadowMap.enabled=!0,this.renderer.setPixelRatio(window.devicePixelRatio),this.setSceneDimensions(this._rogueDOMContainer.clientWidth/window.devicePixelRatio,this._rogueDOMContainer.clientHeight/window.devicePixelRatio),this._width=0,this._height=0}setSceneDimensions(e,t){this._renderer.setSize(e,t),this.setCameraDimensions(e,t)}setCameraDimensions(t,i){if(this.camera instanceof e.PerspectiveCamera)this.camera.aspect=t/i,this.camera.updateProjectionMatrix();else if(this.camera instanceof e.OrthographicCamera){let e=i/t;this.camera.left=-5,this.camera.right=5,this.camera.top=10*e/2,this.camera.bottom=-10*e/2,this.camera.updateProjectionMatrix()}}adjustCameraAndRenderer(e){let{width:t,height:i}=this._rogueDOMContainer.getBoundingClientRect();t=this._isOffscreen?t/window.devicePixelRatio:t,i=this._isOffscreen?i/window.devicePixelRatio:i;(this.camera&&(t!==this._width||i!==this._height)||e)&&(this._width=t,this._height=i,this.renderer.setSize(this._width,this._height),this.setCameraDimensions(this._width,this._height))}beginUpdateCycle(){this.isRunning&&this._rogueDOMContainer&&(this._isPaused?this._deltaTime=this.clock.getDelta():(this._deltaTime=this.clock.getDelta(),function runNextFrame(e){updateEvensHandler(e,f)}(this),this.beforeUpdate(),this.update(),this.isRunning&&(this.renderFunc(),this.afterUpdate())))}}class RuntimeController extends SceneController{constructor(){super(...arguments),this.onPlayCbsFlaggedForRemoval=[],this.onStopCbsFlaggedForRemoval=[]}play(e,t,i){this.isPaused||(o.emit("play"),this.createUIContainer()),j.sceneController=this;let n=App.currentScene.getObjectByProperty("uuid",App.activeCamera);n||(n=App.currentScene.getObjectByProperty("type","PerspectiveCamera")),n||(n=App.currentScene.getObjectByProperty("type","OrthographicCamera")),n||Debug.logWarning("Couldn't find an active camera for this scene"),n&&(App.activeCamera=n.uuid,this.camera=n),super.play(e,t,i)}onPlay(e){const t=super.onPlay(e);return this.isRunning&&this.onPlayCbsFlaggedForRemoval.push(t),t}onStop(e){const t=super.onStop(e);return this.isRunning&&this.onStopCbsFlaggedForRemoval.push(t),t}stop(){this.traverseSceneComponents((t=>{for(let i in t.interface)t[i]instanceof e.Audio&&t[i].source&&t[i].stop()})),o.emit("stop"),this.isRunning&&this.removeUIContainer(),super.stop();const t=document.getElementById("rogue-canvas");t&&(t.style.display="none"),this.onPlayCbsFlaggedForRemoval.forEach((e=>{e.stop()})),this.onStopCbsFlaggedForRemoval.forEach((e=>{e.stop()})),this.onPlayCbsFlaggedForRemoval=[],this.onStopCbsFlaggedForRemoval=[]}createUIContainer(){if(!document.getElementById("rogue-ui")){const e=document.getElementById("rogue-app"),t=document.createElement("div");t.id="rogue-ui",t.style.position="absolute",t.style.width="100%",t.style.height="100%",t.style.overflow="hidden",e.insertBefore(t,e.firstChild),this.uiContainer=t}}removeUIContainer(){const e=document.getElementById("rogue-ui");e&&e.remove()}afterUpdate(){super.afterUpdate()}traverseSceneComponents(e){for(let t in C){const i=C[t];for(let t in i){const n=i[t];n.enabled&&e(n)}}}beginUpdateCycle(){this.isRunning&&this._rogueDOMContainer&&(this.camera&&App.activeCamera===this.camera.uuid||(this.camera=App.currentScene.getObjectByProperty("uuid",App.activeCamera),this.adjustCameraAndRenderer(!0)),super.beginUpdateCycle())}}const m=new RuntimeController;class Sky extends e.Mesh{constructor(){const t=Sky.SkyShader,i=new e.ShaderMaterial({name:"SkyShader",fragmentShader:t.fragmentShader,vertexShader:t.vertexShader,uniforms:e.UniformsUtils.clone(t.uniforms),side:e.BackSide,depthWrite:!1});super(new e.BoxGeometry(1,1,1),i),this.isSky=!0}}Sky.SkyShader={uniforms:{luminance:{value:1},turbidity:{value:2},rayleigh:{value:1},mieCoefficient:{value:.005},mieDirectionalG:{value:.8},sunPosition:{value:new e.Vector3},up:{value:new e.Vector3(0,1,0)}},vertexShader:["uniform vec3 sunPosition;","uniform float rayleigh;","uniform float turbidity;","uniform float mieCoefficient;","uniform vec3 up;","varying vec3 vWorldPosition;","varying vec3 vSunDirection;","varying float vSunfade;","varying vec3 vBetaR;","varying vec3 vBetaM;","varying float vSunE;","const float e = 2.71828182845904523536028747135266249775724709369995957;","const float pi = 3.141592653589793238462643383279502884197169;","const vec3 lambda = vec3( 680E-9, 550E-9, 450E-9 );","const vec3 totalRayleigh = vec3( 5.804542996261093E-6, 1.3562911419845635E-5, 3.0265902468824876E-5 );","const float v = 4.0;","const vec3 K = vec3( 0.686, 0.678, 0.666 );","const vec3 MieConst = vec3( 1.8399918514433978E14, 2.7798023919660528E14, 4.0790479543861094E14 );","const float cutoffAngle = 1.6110731556870734;","const float steepness = 1.5;","const float EE = 1000.0;","float sunIntensity( float zenithAngleCos ) {","\tzenithAngleCos = clamp( zenithAngleCos, -1.0, 1.0 );","\treturn EE * max( 0.0, 1.0 - pow( e, -( ( cutoffAngle - acos( zenithAngleCos ) ) / steepness ) ) );","}","vec3 totalMie( float T ) {","\tfloat c = ( 0.2 * T ) * 10E-18;","\treturn 0.434 * c * MieConst;","}","void main() {","\tvec4 worldPosition = vec4( position, 1.0 );","\tvWorldPosition = worldPosition.xyz;","\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );"," gl_Position.z = gl_Position.w;","\tvSunDirection = normalize( sunPosition );","\tvSunE = sunIntensity( dot( vSunDirection, up ) );","\tvSunfade = 1.0 - clamp( 1.0 - exp( ( sunPosition.y / 450000.0 ) ), 0.0, 1.0 );","\tfloat rayleighCoefficient = rayleigh - ( 1.0 * ( 1.0 - vSunfade ) );","\tvBetaR = totalRayleigh * rayleighCoefficient;","\tvBetaM = totalMie( turbidity ) * mieCoefficient;","}"].join("\n"),fragmentShader:["varying vec3 vWorldPosition;","varying vec3 vSunDirection;","varying float vSunfade;","varying vec3 vBetaR;","varying vec3 vBetaM;","varying float vSunE;","uniform float luminance;","uniform float mieDirectionalG;","uniform vec3 up;","const vec3 cameraPos = vec3( 0.0, 0.0, 0.0 );","const float pi = 3.141592653589793238462643383279502884197169;","const float n = 1.0003;","const float N = 2.545E25;","const float rayleighZenithLength = 8.4E3;","const float mieZenithLength = 1.25E3;","const float sunAngularDiameterCos = 0.999956676946448443553574619906976478926848692873900859324;","const float THREE_OVER_SIXTEENPI = 0.05968310365946075;","const float ONE_OVER_FOURPI = 0.07957747154594767;","float rayleighPhase( float cosTheta ) {","\treturn THREE_OVER_SIXTEENPI * ( 1.0 + pow( cosTheta, 2.0 ) );","}","float hgPhase( float cosTheta, float g ) {","\tfloat g2 = pow( g, 2.0 );","\tfloat inverse = 1.0 / pow( 1.0 - 2.0 * g * cosTheta + g2, 1.5 );","\treturn ONE_OVER_FOURPI * ( ( 1.0 - g2 ) * inverse );","}","const float A = 0.15;","const float B = 0.50;","const float C = 0.10;","const float D = 0.20;","const float E = 0.02;","const float F = 0.30;","const float whiteScale = 1.0748724675633854;","vec3 Uncharted2Tonemap( vec3 x ) {","\treturn ( ( x * ( A * x + C * B ) + D * E ) / ( x * ( A * x + B ) + D * F ) ) - E / F;","}","void main() {"," vec3 direction = normalize( vWorldPosition - cameraPos );","\tfloat zenithAngle = acos( max( 0.0, dot( up, direction ) ) );","\tfloat inverse = 1.0 / ( cos( zenithAngle ) + 0.15 * pow( 93.885 - ( ( zenithAngle * 180.0 ) / pi ), -1.253 ) );","\tfloat sR = rayleighZenithLength * inverse;","\tfloat sM = mieZenithLength * inverse;","\tvec3 Fex = exp( -( vBetaR * sR + vBetaM * sM ) );","\tfloat cosTheta = dot( direction, vSunDirection );","\tfloat rPhase = rayleighPhase( cosTheta * 0.5 + 0.5 );","\tvec3 betaRTheta = vBetaR * rPhase;","\tfloat mPhase = hgPhase( cosTheta, mieDirectionalG );","\tvec3 betaMTheta = vBetaM * mPhase;","\tvec3 Lin = pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * ( 1.0 - Fex ), vec3( 1.5 ) );","\tLin *= mix( vec3( 1.0 ), pow( vSunE * ( ( betaRTheta + betaMTheta ) / ( vBetaR + vBetaM ) ) * Fex, vec3( 1.0 / 2.0 ) ), clamp( pow( 1.0 - dot( up, vSunDirection ), 5.0 ), 0.0, 1.0 ) );","\tfloat theta = acos( direction.y ); // elevation --\x3e y-axis, [-pi/2, pi/2]","\tfloat phi = atan( direction.z, direction.x ); // azimuth --\x3e x-axis [-pi/2, pi/2]","\tvec2 uv = vec2( phi, theta ) / vec2( 2.0 * pi, pi ) + vec2( 0.5, 0.0 );","\tvec3 L0 = vec3( 0.1 ) * Fex;","\tfloat sundisk = smoothstep( sunAngularDiameterCos, sunAngularDiameterCos + 0.00002, cosTheta );","\tL0 += ( vSunE * 19000.0 * Fex ) * sundisk;","\tvec3 texColor = ( Lin + L0 ) * 0.04 + vec3( 0.0, 0.0003, 0.00075 );","\tvec3 curr = Uncharted2Tonemap( ( log2( 2.0 / pow( luminance, 4.0 ) ) ) * texColor );","\tvec3 color = curr * whiteScale;","\tvec3 retColor = pow( color, vec3( 1.0 / ( 1.2 + ( 1.2 * vSunfade ) ) ) );","\tgl_FragColor = vec4( retColor, 1.0 );","}"].join("\n")};let g=new class SkyboxClass{constructor(){this._enabled=!0,this._mode="procedural",this._showSun=!1,this._inclination=.464,this._azimuth=.25,this._layers=1,this.sunSpeed=0}get layers(){return this._layers}set layers(e){this._layers=e,this._sky&&(this._sky.layers.mask=e),this._cubemapSky&&(this._cubemapSky.layers.mask=e)}get sky(){return this._sky}get cubemapSky(){return this._cubemapSky}get enabled(){return this._enabled}set enabled(e){this._enabled=e,this.init(this.toJSON())}get mode(){return this._mode}set mode(e){this._mode=e,this.init(this.toJSON())}get cubemapTop(){return this._cubemapTop}set cubemapTop(e){this._cubemapTop=e,"cubemap"===this.mode&&this.init(this.toJSON())}get cubemapBottom(){return this._cubemapBottom}set cubemapBottom(e){this._cubemapBottom=e,"cubemap"===this.mode&&this.init(this.toJSON())}get cubemapFront(){return this._cubemapFront}set cubemapFront(e){this._cubemapFront=e,"cubemap"===this.mode&&this.init(this.toJSON())}get cubemapBack(){return this._cubemapBack}set cubemapBack(e){this._cubemapBack=e,"cubemap"===this.mode&&this.init(this.toJSON())}get cubemapRight(){return this._cubemapRight}set cubemapRight(e){this._cubemapRight=e,"cubemap"===this.mode&&this.init(this.toJSON())}get cubemapLeft(){return this._cubemapLeft}set cubemapLeft(e){this._cubemapLeft=e,"cubemap"===this.mode&&this.init(this.toJSON())}get mieDirectionalG(){return"procedural"===this.mode&&this._sky?this._sky.material.uniforms.mieDirectionalG.value:0}set mieDirectionalG(e){this._sky&&"procedural"===this.mode&&(this._sky.material.uniforms.mieDirectionalG.value=e)}get mieCoefficient(){return"procedural"===this.mode&&this._sky?this._sky.material.uniforms.mieCoefficient.value:0}set mieCoefficient(e){this._sky&&"procedural"===this.mode&&(this._sky.material.uniforms.mieCoefficient.value=e)}get turbidity(){return"procedural"===this.mode&&this._sky?this._sky.material.uniforms.turbidity.value:0}set turbidity(e){this._sky&&"procedural"===this.mode&&(this._sky.material.uniforms.turbidity.value=e)}get rayleigh(){return"procedural"===this.mode&&this._sky?this._sky.material.uniforms.rayleigh.value:0}set rayleigh(e){this._sky&&"procedural"===this.mode&&(this._sky.material.uniforms.rayleigh.value=e)}get luminance(){return"procedural"===this.mode&&this._sky?this._sky.material.uniforms.luminance.value:0}set luminance(e){this._sky&&"procedural"===this.mode&&(this._sky.material.uniforms.luminance.value=e)}get inclination(){return this._inclination}set inclination(e){this._inclination=e,"procedural"===this.mode&&this.setSunPosition()}get azimuth(){return this._azimuth}set azimuth(e){this._azimuth=e,"procedural"===this.mode&&this.setSunPosition()}get showSun(){return this._showSun}set showSun(e){this._showSun=e,"procedural"===this.mode&&this._sunSphere&&(this._sunSphere.visible=e)}init(e){if(this._onPlay&&this._onPlay.stop(),this._onStop&&this._onStop.stop(),this._onUpdate&&this._onUpdate.stop(),e&&(this._enabled=e._enabled),this._sky&&this._sky.parent&&this._sky.parent.remove(this._sky),this._cubemapSky&&this._cubemapSky.parent&&this._cubemapSky.parent.remove(this._cubemapSky),!this.enabled||e&&!e._enabled)return;let t=e&&Object.keys(e).length>=1?e._mode:this.mode;"procedural"===t&&this.initProceduralSkybox(e),"cubemap"===t&&this.initCubemapSkybox(e)}initProceduralSkybox(t){this._sky=new Sky,this._sky.name="ROGUE_INTERNAL_SKYBOX",this._sky.scale.setScalar(100),this._sky.renderOrder=-999,this._sky.userData.isEditorObject=!0,this._sunSphere=new e.Mesh(new e.SphereBufferGeometry(3,20,8),new e.MeshStandardMaterial({color:"#000",emissive:"#fff",depthTest:!1,depthWrite:!1})),this._sunSphere.renderOrder=-100,this._sunSphere.position.y=-100,this._sunSphere.visible=this.showSun,this._sunSphere.name="Sun",this._sky.add(this._sunSphere),t&&Object.keys(t).length>=1?this.fromJSON(t):this.fromJSON(this.getDefaultJSON()),App.currentScene.add(this._sky),window.ROGUE_ISDEV&&(this._onPlay=m.onPlay((()=>{this._directionalLight=void 0})),this._onStop=m.onStop((()=>{this._directionalLight=void 0}))),this._onUpdate=onBeforeUpdate((e=>{this._enabled&&(e.renderer.xr.enabled?e.renderer.xr.getCamera().getWorldPosition(this._sky.position):e.camera.getWorldPosition(this._sky.position),this._directionalLight||this.setSunPosition(),App.sceneController instanceof RuntimeController&&(this.inclination<=-1&&(this.inclination=1),this.inclination>1&&(this.inclination=-1),this.inclination-=this.sunSpeed))}))}initCubemapSkybox(t){t&&Object.keys(t).length>=1?this.fromJSON(t):this.fromJSON(this.getDefaultJSON());let i=new e.MeshLambertMaterial({emissive:this.cubemapRight?"#fff":"#000",color:"#000",emissiveMap:this.cubemapRight}),n=new e.MeshLambertMaterial({emissive:this.cubemapLeft?"#fff":"#000",color:"#000",emissiveMap:this.cubemapLeft}),s=new e.MeshLambertMaterial({emissive:this.cubemapTop?"#fff":"#000",color:"#000",emissiveMap:this.cubemapTop}),o=new e.MeshLambertMaterial({emissive:this.cubemapBottom?"#fff":"#000",color:"#000",emissiveMap:this.cubemapBottom}),r=new e.MeshLambertMaterial({emissive:this.cubemapFront?"#fff":"#000",color:"#000",emissiveMap:this.cubemapFront}),a=new e.MeshLambertMaterial({emissive:this.cubemapBack?"#fff":"#000",color:"#000",emissiveMap:this.cubemapBack});i.side=e.BackSide,i.depthWrite=!1,i.depthTest=!1,n.side=e.BackSide,n.depthWrite=!1,n.depthTest=!1,s.side=e.BackSide,s.depthWrite=!1,s.depthTest=!1,o.side=e.BackSide,o.depthWrite=!1,o.depthTest=!1,r.side=e.BackSide,r.depthWrite=!1,r.depthTest=!1,a.side=e.BackSide,a.depthWrite=!1,a.depthTest=!1,this._cubemapSky=new e.Mesh(new e.BoxBufferGeometry(100,100,100),[i,n,s,o,r,a]),this._cubemapSky.renderOrder=-999,this._cubemapSky.name="ROGUE_INTERNAL_SKYBOX",this._cubemapSky.userData.isEditorObject=!0,App.currentScene.add(this._cubemapSky),window.ROGUE_ISDEV&&(this._onPlay=m.onPlay((()=>{})),this._onStop=m.onStop((()=>{}))),this._onUpdate=onBeforeUpdate((e=>{this._enabled&&(e.renderer.xr.enabled?e.renderer.xr.getCamera().getWorldPosition(this._cubemapSky.position):e.camera.getWorldPosition(this._cubemapSky.position))}))}toJSON(){return{_enabled:this._enabled,_mode:this._mode,layers:this._layers,_showSun:this._showSun,inclination:this._inclination,azimuth:this._azimuth,mieDirectionalG:this.mieDirectionalG,mieCoefficient:this.mieCoefficient,turbidity:this.turbidity,rayleigh:this.rayleigh,luminance:this.luminance,_sunSpeed:this.sunSpeed,_cubemapTop:this.cubemapTop instanceof e.Texture&&this.cubemapTop.toJSON(),_cubemapBottom:this.cubemapBottom instanceof e.Texture&&this.cubemapBottom.toJSON(),_cubemapFront:this.cubemapFront instanceof e.Texture&&this.cubemapFront.toJSON(),_cubemapBack:this.cubemapBack instanceof e.Texture&&this.cubemapBack.toJSON(),_cubemapRight:this.cubemapRight instanceof e.Texture&&this.cubemapRight.toJSON(),_cubemapLeft:this.cubemapLeft instanceof e.Texture&&this.cubemapLeft.toJSON()}}fromJSON(e){void 0===e._enabled&&(e._enabled=!0);for(let t in e){let i=e[t];if("object"===typeof i){const n=j.getAsset(i.uuid);n?this[t]=n:j.loadAsset(i.uuid).then((i=>{this[t]=i,"cubemap"===this.mode&&this.init(e)}))}else this[t]=e[t]}}initWithDefaultValues(){this._mode="procedural",this.inclination=.464,this.azimuth=.25,this.mieDirectionalG=.998,this.mieCoefficient=.004,this.turbidity=10,this.rayleigh=1.423,this.luminance=1,this._showSun=!1}getDefaultJSON(){return{_enabled:!0,_mode:"procedural",layers:1,_showSun:!1,inclination:.464,azimuth:.25,mieDirectionalG:.998,mieCoefficient:.004,turbidity:10,rayleigh:1.423,luminance:1,_sunSpeed:0,_cubemapTop:void 0,_cubemapBottom:void 0,_cubemapFront:void 0,_cubemapBack:void 0,_cubemapRight:void 0,_cubemapLeft:void 0}}setSunPosition(){var e=Math.PI*(this.inclination-.5),t=2*Math.PI*(this.azimuth-.5);this._sunSphere&&(this._sunSphere.position.x=90*Math.cos(t),this._sunSphere.position.y=90*Math.sin(t)*Math.sin(e),this._sunSphere.position.z=90*Math.sin(t)*Math.cos(e),this._sky.material.uniforms.sunPosition.value.copy(this._sunSphere.position),this._directionalLight?this._directionalLight.position.set(this._sunSphere.position.x,this._sunSphere.position.y,this._sunSphere.position.z):(this._directionalLight=App.currentScene.getObjectByName("SUNLIGHT"),this._directionalLight&&this._directionalLight.position.set(this._sunSphere.position.x,this._sunSphere.position.y,this._sunSphere.position.z)))}};class GamepadController{get gamepad(){return this._gamepad}constructor(e){this._upButtons={},this._downButtons={},this._pressedButtons={},this.deadZone=.1,this._gamepad=e,this.update()}update(){onNextFrame((()=>{this._gamepad.buttons[0].pressed,this._gamepad.buttons.forEach(((e,t)=>{e.pressed&&!this._pressedButtons[t]&&(this._downButtons[t]=!0,this._pressedButtons[t]=!0,onNextFrame((()=>this._downButtons[t]=!1))),!e.pressed&&this._pressedButtons[t]&&(this._pressedButtons[t]=!1,this._upButtons[t]=!0,onNextFrame((()=>this._upButtons[t]=!1)))})),this.update()}))}getAxis(e){const t=this._gamepad.axes[e];if(this.deadZone>0&&Math.abs(t)>0){const i=this._gamepad.axes[e%2===0?e+1:e-1];return Math.abs(i)>this.deadZone||Math.abs(t)>this.deadZone?t:0}return t}getButton(e){var t;return(null===(t=this._gamepad.buttons[e])||void 0===t?void 0:t.value)||0}getButtonDown(e){return this._downButtons[e]||!1}getButtonUp(e){return this._upButtons[e]||!1}}window.addEventListener("gamepadconnected",(e=>{const t=new GamepadController(e.gamepad);Input.gamepads.push(t)})),window.addEventListener("gamepaddisconnected",(e=>{Input.gamepads.splice(e.gamepad.index,1)})),onUpdate((e=>{if(!(e instanceof RuntimeController))return;const t=navigator.getGamepads?navigator.getGamepads():[];if(t)for(let i=0;i<t.length;i++){const e=t[i];if(!e)return;const n=Input.gamepads[i];if(!n)return;n._gamepad=e}}));class Input{static get mouse(){return this._mouse}static get keyboard(){return this._keyboard}static get touch(){return this._touch}static get gamepads(){return this._gamepads}}Input._mouse=new class Mouse{constructor(){this._x=0,this._y=0,this._movementX=0,this._movementY=0,this._isMoving=!1,this._isLeftButtonDown=!1,this._isLeftButtonPressed=!1,this._isLeftButtonUp=!1,this._isRightButtonDown=!1,this._isRightButtonPressed=!1,this._isRightButtonUp=!1,this._isMidButtonDown=!1,this._isMidButtonPressed=!1,this._isMidButtonUp=!1,this._wheelY=0,this._wheelX=0,this._enabled=!0,this.unlockFunction=e=>{"Escape"===e.code&&this.unlock()}}get pointerLock(){return this._pointerLock}get x(){return this._x}get y(){return this._y}get movementX(){return this._movementX}get movementY(){return this._movementY}get isMoving(){return this._isMoving}get isLeftButtonDown(){return this._isLeftButtonDown}get isLeftButtonPressed(){return this._isLeftButtonPressed}get isLeftButtonUp(){return this._isLeftButtonUp}get isRightButtonDown(){return this._isRightButtonDown}get isRightButtonPressed(){return this._isRightButtonPressed}get isRightButtonUp(){return this._isRightButtonUp}get isMidButtonDown(){return this._isMidButtonDown}get isMidButtonPressed(){return this._isMidButtonPressed}get isMidButtonUp(){return this._isMidButtonUp}get buttonDown(){return this._buttonDown}get buttonPressed(){return this._buttonPressed}get buttonUp(){return this._buttonUp}get wheelY(){return this._wheelY}get wheelX(){return this._wheelX}get enabled(){return this._enabled}set enabled(e){this._enabled=e}init(){document.addEventListener("mousemove",this.onMouseMove.bind(this),!1);const e=document.getElementById("rogue-app");e&&(e.addEventListener("mousedown",this.onMouseDown.bind(this)),e.addEventListener("mouseup",this.onMouseUp.bind(this)),e.addEventListener("wheel",this.onWheelMove.bind(this)))}getButtonDown(e){return this._buttonDown===e}getButtonPressed(e){return this._buttonPressed===e}getButtonUp(e){return this._buttonUp===e}lock(){const e=document.getElementById("rogue-app");e&&(e&&e.requestPointerLock(),document.removeEventListener("keyup",this.unlockFunction),document.addEventListener("keyup",this.unlockFunction))}unlock(){document.exitPointerLock()}onMouseMove(e){onNextFrame(this.setMouseMovement.bind(this,e))}setMouseMovement(e){this._x=e.clientX,this._y=e.clientY,this._movementX=e.movementX,this._movementY=e.movementY,this._isMoving=!0,onNextFrame(this.resetMouseMovement.bind(this))}resetMouseMovement(){this._movementX=0,this._movementY=0,this._isMoving=!1}onMouseDown(e){!1!==this._enabled&&onNextFrame((()=>{0===e.button?(this._isLeftButtonDown=!0,this._isLeftButtonPressed=!0):2===e.button?(this._isRightButtonDown=!0,this._isRightButtonPressed=!0):1===e.button&&(this._isMidButtonDown=!0,this._isMidButtonPressed=!0),this._buttonDown=e.button,this._buttonPressed=e.button,onNextFrame((()=>{0===e.button?this._isLeftButtonDown=!1:2===e.button?this._isRightButtonDown=!1:1===e.button&&(this._isMidButtonDown=!1),this._buttonDown=void 0}))}))}onMouseUp(e){!1!==this._enabled&&onNextFrame((()=>{0===e.button?(this._isLeftButtonUp=!0,this._isLeftButtonPressed=!1):2===e.button?(this._isRightButtonUp=!0,this._isRightButtonPressed=!1):1===e.button&&(this._isMidButtonUp=!0,this._isMidButtonPressed=!1),this.getButtonPressed(e.button)&&(this._buttonUp=e.button,this._buttonPressed=void 0),onNextFrame((()=>{0===e.button?this._isLeftButtonUp=!1:2===e.button?this._isRightButtonUp=!1:1===e.button&&(this._isMidButtonUp=!1),this._buttonUp=void 0}).bind(this))}).bind(this))}onWheelMove(e){!1!==this._enabled&&(e.preventDefault(),clearTimeout(this._wheelTimeout),this._wheelY=e.deltaY,this._wheelX=e.deltaX,this._wheelTimeout=setTimeout((()=>{this._wheelY=0,this._wheelX=0}),250))}},Input._keyboard=new class Keyboard{constructor(){this._upKeys={},this._downKeys={},this._pressedKeys={}}init(){document.addEventListener("keydown",(e=>{this._pressedKeys[e.code]||onNextFrame((()=>{this._downKeys[e.code]=!0,this._pressedKeys[e.code]=!0,onNextFrame((()=>{this._downKeys[e.code]=!1}))}))})),document.addEventListener("keyup",(e=>{onNextFrame((()=>{this._upKeys[e.code]=!0,this._pressedKeys[e.code]=!1,onNextFrame((()=>{this._upKeys[e.code]=!1}))}))}))}getKeyDown(e){return this._downKeys[e]}getKeyPressed(e){return this._pressedKeys[e]}getKeyUp(e){return this._upKeys[e]}},Input._touch=new class TouchController{constructor(){this._startTouches=[],this._endTouches=[],this._touches=[],this._enabled=!0}get startTouches(){return this._startTouches}get endTouches(){return this._endTouches}get touches(){return this._touches}get enabled(){return this._enabled}set enabled(e){this._enabled=e}init(){this._touches.splice(0),this._endTouches.splice(0),this._startTouches.splice(0),this._enabled=!0;const e=document.getElementById("rogue-app");e&&(e.ontouchmove=this.onTouchMove.bind(this),e.ontouchstart=this.onTouchStart.bind(this),e.ontouchend=this.onTouchEnd.bind(this))}onTouchStart(e){e.preventDefault(),onNextFrame((()=>{for(let t=0;t<e.changedTouches.length;t++){const i=e.changedTouches[t],n=this.setTouchValues({},i);this._touches.push(Object.assign({},n)),this._startTouches.push(Object.assign({},n))}onNextFrame((()=>{for(let t=0;t<e.changedTouches.length;t++){const i=e.changedTouches[t],n=this.getCurrentTouchIndexById(i.identifier,this._startTouches);this._startTouches.splice(n,1)}}))}))}onTouchEnd(e){e.preventDefault(),onNextFrame((()=>{for(let t=0;t<e.changedTouches.length;t++){const i=e.changedTouches[t],n=this.getCurrentTouchIndexById(i.identifier,this._touches),s=this._touches[n];this._endTouches.push(Object.assign({},s)),this._touches.splice(n,1)}onNextFrame((()=>{for(let t=0;t<e.changedTouches.length;t++){const i=e.changedTouches[t],n=this.getCurrentTouchIndexById(i.identifier,this._endTouches);this._endTouches.splice(n,1)}}))}))}onTouchMove(e){e.preventDefault(),onNextFrame((()=>{for(let t=0;t<e.changedTouches.length;t++){const i=e.changedTouches[t],n=this.getCurrentTouchIndexById(i.identifier,this._touches);n>=0&&this.setTouchValues(this._touches[n],i)}onNextFrame((()=>{for(const e of this._touches)e.deltaX=0,e.deltaY=0}))}))}getCurrentTouchIndexById(e,t){for(let i=0;i<t.length;i++){if(t[i].id==e)return i}return-1}setTouchValues(e,t){const i=void 0!==e.x?e.x:0,n=void 0!==e.y?e.y:0;return e.id=void 0!==e.id?e.id:t.identifier,e.deltaX=void 0!==e.x?t.clientX-i:0,e.deltaY=void 0!==e.x?t.clientY-n:0,e.x=t.clientX,e.y=t.clientY,e.touch=t,e}},Input._gamepads=[];class App{constructor(){}static get activeCamera(){return this._activeCamera}static set activeCamera(e){this._activeCamera=e}static get settings(){return this._settings}static get title(){return this._title}static set title(e){this._title=e}static get currentScene(){return this._currentScene}static set currentScene(e){this._currentScene=e}static get scenes(){return this._scenes}static get sceneController(){return this._sceneController}static set sceneController(e){this._sceneController=e}static get lanIP(){return this._lanIP}static toJSON(e){return{title:this._title,scenes:this._scenes,lanIP:this.lanIP,assetPaths:Object.assign({},e)}}static fromJSON(e){this._title=e.title,this._scenes=e.scenes,e.lanIP&&(this._lanIP=e.lanIP)}static play(e){this._title=e.title,this._scenes=e.scenes,j.setAssetPaths(e.assetPaths),Input.mouse.init(),Input.keyboard.init(),Input.touch.init(),this.loadScene(this._scenes[0].name)}static loadScene(e){return m.stop(),dispose(this._currentScene),new Promise((t=>{this.loadSceneFunc(e).then((()=>{t()}))}))}static loadSceneFunc(t){return __awaiter(this,void 0,void 0,(function*(){let i;if("string"===typeof t?i=this._scenes.find((e=>e.name===t)):"number"===typeof t&&(i=this._scenes[t]),!i)return;let n=window.re_prefix;const s="AppData/"+i.uuid+".rogueScene",o=n?n+s:s;let r=yield fetch(window.ROGUE_ISDEV?j.getAssetPath(i.uuid):o),a=yield r.json();m.startRenderer(),App.sceneController=m,j.sceneController=m,App.activeCamera=a.initialCameraId,j.loadAssetConfigs(a.assetConfigs),yield j.preloadAssets(),this._currentScene=(new e.ObjectLoader).parse(a.scene),this.loadAudioListeners(this._currentScene),a.skybox&&g.init(a.skybox),m.play(this._currentScene,m.renderer,a.components)}))}static clone(t,i){if(!t)throw new Error("App.clone(...) => The object you are trying to clone does not seem to exist.");if(!(t instanceof e.Object3D))throw new Error("App.clone(...) => The object you are trying to clone is unavailable, try fetching the asset first. object.uuid: "+t.uuid);const n=t.animations;let s=t.clone();s.animations=n,i?(i.attach(s),s.position.set(0,0,0)):this.currentScene.add(s),this.loadAudioListeners(s),this.loadComponentsRecursive(s);let o=getObjectComponents(s);return m.isRunning&&o.forEach((e=>{e.awake()})),m.isRunning&&s.traverse((e=>{getObjectComponents(e).forEach((e=>{e.awake()}))})),s}static loadComponentsRecursive(e){const t=e.userData&&e.userData.components;(()=>{__awaiter(this,void 0,void 0,(function*(){t&&loadComponents(e,t),e.userData&&delete e.userData.components}))})();for(let i in e.children)this.loadComponentsRecursive(e.children[i])}static loadAudioListeners(t){const i=[];t.traverse((t=>{t instanceof e.AudioListener||!t.userData.__AUDIOLISTENER__||i.push(t)})),i.forEach((t=>{const i=new e.AudioListener;i.name=t.name,i.userData.__AUDIOLISTENER__=!0,i.position.copy(t.position),i.rotation.copy(t.rotation);const n=t.uuid;t.parent&&t.parent.add(i),t.parent&&t.parent.remove(t),i.uuid=n}))}}App._title="Project",App._scenes=[],App._sceneController=m,App._lanIP="localhost";window.buffer;var _=__webpack_require__(1171),b=__webpack_require__.n(_);class AudioAsset{constructor(t){this._uuid=t.uuid;const i=e.AudioContext.getContext().createBuffer(1,1,8e3);this._buffer=t.buffer||i,this.userData={__ASSET__:this._uuid}}get uuid(){return this._uuid}get path(){return j.getAssetPath(this._uuid)||""}get name(){return this.path.substring(this.path.lastIndexOf("/")+1,this.path.lastIndexOf("."))}getAudio(){const t=App.currentScene.getObjectByProperty("type","AudioListener")||new e.AudioListener,i=new e.Audio(t);return i.setBuffer(this._buffer),i.name=this.name,i.userData.__ASSET__=this.uuid,i}getPositionalAudio(){const t=App.currentScene.getObjectByProperty("type","AudioListener")||new e.AudioListener,i=new e.PositionalAudio(t);return i.setBuffer(this._buffer),i.name=this.name,i.userData.__ASSET__=this.uuid,i}static fromFile(t,i=(()=>{}),n=(()=>{})){return __awaiter(this,void 0,void 0,(function*(){let s=yield fetch(t+".meta"),o=yield s.json();return new Promise((s=>{let r=new e.AudioLoader;r.setCrossOrigin("anonymous"),r.load(t,(e=>{const t=new AudioAsset({uuid:o.uuid,buffer:e});s(t)}),i,n)}))}))}}class Prefab{constructor(e){this._uuid=e}get uuid(){return this._uuid}get path(){return j.getAssetPath(this._uuid)||""}get name(){return this.path.substring(this.path.lastIndexOf("/")+1,this.path.lastIndexOf("."))}instantiate(t){let i=j.getAsset(this._uuid).clone();t?(t.attach(i),i.position.set(0,0,0)):App.currentScene.attach(i),i.traverse((e=>{let t=e.userData.__NESTED__;onNextFrame((()=>{t&&t.forEach((t=>{t.uuid!==i.userData.__ASSET__&&onNextFrame((()=>__awaiter(this,void 0,void 0,(function*(){if(!(yield j.loadAsset(t.uuid)))return;const i=t.parent===e.userData.__REF__?e:e.getObjectByProperty("uuid",t.parent),n=new Prefab(t.uuid).instantiate(i);t.position&&n.position.fromArray(t.position),t.rotation&&n.rotation.fromArray(t.rotation),t.scale&&n.scale.fromArray(t.scale)}))))}))})),t&&(e.userData.__NESTED__=void 0)})),function loadAudioListeners(t){const i=[];t.traverse((t=>{t instanceof e.AudioListener||!t.userData.__AUDIOLISTENER__||i.push(t)})),i.forEach((t=>{const i=new e.AudioListener;i.name=t.name,i.userData.__AUDIOLISTENER__=!0,i.position.copy(t.position),i.rotation.copy(t.rotation);const n=t.uuid;t.parent&&t.parent.add(i),t.parent&&t.parent.remove(t),i.uuid=n}))}(i),loadComponentsRecursive(i);let n=getObjectComponents(i);return m.isRunning&&n.forEach((e=>{e.awake()})),m.isRunning&&i.traverse((e=>{getObjectComponents(e).forEach((e=>{e.awake()}))})),i}}function getParentPrefab(e){return e.userData.__ASSET__?e:e.parent?getParentPrefab(e.parent):void 0}const v=new e.AnimationClip("",0,[]);class Component extends Lifecycle{constructor(e,t){super(),this._name="component",this._isReady=!0,this._enabled=!0,this.interface={},this.uuid=b()(),this._object3d=t,this._name=e}get name(){return this._name}set name(e){this._name=e}get object3d(){return this._object3d}get isReady(){return this._isReady}get enabled(){return this._enabled}set enabled(e){this._enabled=e,e?(isActive(this.object3d)&&this.awake(),this.__STARTED__=!1):isActive(this.object3d)&&this.onDisabled()}toJSON(){return{uuid:this.uuid,name:this.name,componentPrototypeName:this.constructor.name,interface:this.constructor.interface||{},interfaceRefs:this.serializeInterfaceRefs(),enabled:this._enabled}}fromJSON(e){this._isReady=!1,this.uuid=e.uuid||this.uuid,this.name=e.name,this.interface=e.interface||{},this.loadInterfaceRefs(e.interfaceRefs),this._enabled="boolean"!==typeof e.enabled||e.enabled}serializePropRef(t,i,n,s){switch(s){case"Data":case"String":case"Number":case"Boolean":case"Select":case"Code":t[i]=n[i];break;case"Color":if(n[i]instanceof e.Color){const e=n[i];t[i]=e.getHex()}break;case"Vector2":if(n[i]instanceof e.Vector2){const e=n[i];t[i]=e.toArray()}break;case"Vector3":if(n[i]instanceof e.Vector3){const e=n[i];t[i]=e.toArray()}break;case"Texture":if(n[i]instanceof e.Texture){const e=n[i];t[i]=e.uuid}break;case"Material":if(n[i]instanceof e.Material){const e=n[i];t[i]=e.uuid}break;case"Object3D":if(n[i]instanceof e.Object3D){const e=n[i];t[i]=e.uuid}break;case"Prefab":if(n[i]instanceof Prefab){const e=n[i];t[i]=e.uuid}break;case"AnimationClip":if(n[i]instanceof e.AnimationClip){const e=n[i];t[i]=e.uuid}break;case"PositionalAudio":case"Audio":if(n[i]instanceof AudioAsset){const e=n[i].userData.__ASSET__;t[i]=e}}}serializeInterfaceRefs(){if(!this.constructor.interface)return{};let e={};for(let t in this.constructor.interface){let i=this.constructor.interface[t];if(Array.isArray(i)){const n=this[t];Array.isArray(n)||(this[t]=[]);const s=[],o=i[0];let r="string"===typeof o?o:o.type;if("Button"===r)continue;n.forEach(((e,t)=>{this.serializePropRef(s,t,n,r)})),e[t]=s}else{let n="string"===typeof i?i:i.type;if("Button"===n)continue;this.serializePropRef(e,t,this,n)}}return e}loadInterfaceRefs(e){if(!e||0===Object.keys(e).length)return void(this._isReady=!0);const t={},subscribeProp=i=>{const n=e[i];Array.isArray(n)?(t[i]=[],n.forEach(((e,n)=>{t[i][n]=!1}))):t[i]=!1};for(let i in this.interface)subscribeProp(i);0===Object.keys(this.interface).length&&(this._isReady=!0);for(let i in this.interface){const n=this.interface[i];if(Array.isArray(n)){this[i]=[];const s=n[0];let o="string"===typeof s?s:s.type;Array.isArray(e[i])||(e[i]=[]);const r=e[i];r.forEach(((e,n)=>{this.loadPropRef(r,n,this[i],t,o,i)})),0===r.length&&this.readyNotifier(t,i)}else{let s="string"===typeof n?n:n.type;this.loadPropRef(e,i,this,t,s)}}}readyNotifier(e,t,i){i?e[i][t]=!0:e[t]=!0;for(const n in e){const t=e[n];if(!1===t)return!1;if(Array.isArray(t))for(let e=0;e<t.length;e++)if(!1===t[e])return!1}return this._isReady=!0,!0}loadPropRef(t,i,n,s,o,r){switch(o){case"Button":this.readyNotifier(s,i,r);break;case"Data":case"String":case"Number":case"Boolean":case"Select":case"Code":n[i]=t[i],this.readyNotifier(s,i,r);break;case"Color":n[i]=new e.Color(t[i]),this.readyNotifier(s,i,r);break;case"Vector2":if(!t[i]){this.readyNotifier(s,i,r);break}n[i]=new e.Vector2(...t[i]),this.readyNotifier(s,i,r);break;case"Vector3":if(!t[i]){this.readyNotifier(s,i,r);break}n[i]=new e.Vector3(...t[i]),this.readyNotifier(s,i,r);break;case"Object3D":if(!t[i]){this.readyNotifier(s,i,r);break}const a=getParentPrefab(this.object3d);let u;a&&a.traverse((e=>{e.userData.__REF__===t[i]&&(u=e)})),u||(u=App.currentScene.getObjectByProperty("uuid",t[i])),n[i]=u,this.readyNotifier(s,i,r);break;case"Prefab":if(!t[i]){this.readyNotifier(s,i,r);break}let c="",h=!1;if(t[i]&&(c=t[i],n[i]=App.currentScene.getObjectByProperty("uuid",t[i])),t[i]&&!n[i]){c=t[i];let e=j.getAsset(c);n[i]=new Prefab(c),!e&&m.isRunning?(h=!0,j.loadAsset(c).then((e=>{this.readyNotifier(s,i,r)}))):this.readyNotifier(s,i,r)}n[i]||!t[i]||h||Debug.logError("Component => object reference could not be found for "+this.constructor.name+"."+i+" in Object3D with uuid: "+c);break;case"AnimationClip":if(!t[i]){this.readyNotifier(s,i,r);break}let d=!1;if(t[i]&&!n[i]){const e=t[i],o=j.getAsset(e);n[i]=v,o?(n[i]=o,this.readyNotifier(s,i,r)):(d=!0,j.loadAsset(e).then((e=>{n[i]=e,this.readyNotifier(s,i,r)})))}break;case"Audio":case"PositionalAudio":if(!t[i]){this.readyNotifier(s,i,r);break}let l="";const setAudio=e=>{const t="Audio"===o?e.getAudio():e.getPositionalAudio();n[i]=t,this.object3d.add(t)};if(t[i]&&!n[i]){l=t[i];let e=j.getAsset(l);if(!m.isRunning){n[i]=new AudioAsset({uuid:l});break}if(!e){j.loadAsset(l).then((e=>{setAudio(e),this.readyNotifier(s,i,r)}));break}e instanceof AudioAsset&&(setAudio(e),this.readyNotifier(s,i,r))}break;case"Texture":if(!t[i]){this.readyNotifier(s,i,r);break}let p=!1;if(t[i]&&!n[i]){const e=t[i],o=j.getAsset(e);o?(n[i]=o,this.readyNotifier(s,i,r)):(p=!0,j.loadAsset(e).then((e=>{n[i]=e,this.readyNotifier(s,i,r)})))}break;case"Material":if(!t[i]){this.readyNotifier(s,i,r);break}let f=!1;if(t[i]&&!n[i]){const e=t[i],o=j.getAsset(e);o?(n[i]=o,this.readyNotifier(s,i,r)):(f=!0,j.loadAsset(e).then((e=>{n[i]=e,this.readyNotifier(s,i,r)})))}}}awake(){}start(){}beforeUpdate(){}update(){}afterUpdate(){}onBeforeRemoved(){}onRemoved(){}onBeforeObjectRemoved(){}onObjectRemoved(){}onDisabled(){}}class Tags{static getTags(){return Object.keys(this.tagsMap)}static getObjects(e){return this.tagsMap[e]||[]}static getWithAll(...e){const t=[];for(let i in this.objectTagsMap){const n=this.objectTagsMap[i];let s,o=!0;for(let t of e){const e=void 0!==n[t];e&&!s&&(s=this.tagsMap[t].find((e=>e.uuid===i))),e||(o=!1)}o&&s&&t.push(s)}return t}static getWithAny(...e){const t=[];for(let i in this.objectTagsMap){const n=this.objectTagsMap[i];let s;for(let t of e){if(void 0!==n[t]&&!s){s=this.tagsMap[t].find((e=>e.uuid===i));break}}s&&t.push(s)}return t}static hasAny(e,...t){const i=this.objectTagsMap[e.uuid]||{};for(let n of t)if(void 0!==i[n])return!0;return!1}static hasAll(e,...t){const i=this.objectTagsMap[e.uuid]||{};for(let n of t)if(void 0===i[n])return!1;return!0}static hasNone(e,...t){const i=this.objectTagsMap[e.uuid]||{};for(let n of t)if(void 0!==i[n])return!1;return!0}static isMissingAll(e,...t){const i=this.objectTagsMap[e.uuid]||{};for(let n of t)if(void 0===i[n])return!0;return!1}static get(e){const t=this.objectTagsMap[e.uuid]||{};return Object.keys(t)}static set(e,...t){t.forEach((t=>{this.tagsMap[t]||this.create(t),this.tagsMap[t].indexOf(e)<0&&this.tagsMap[t].push(e),this.objectTagsMap[e.uuid]||(this.objectTagsMap[e.uuid]={}),this.objectTagsMap[e.uuid][t]=t,Array.isArray(e.userData.rogueTags)||(e.userData.rogueTags=[]),e.userData.rogueTags.indexOf(t)<0&&e.userData.rogueTags.push(t)}))}static remove(e,...t){t.forEach((t=>{const i=this.tagsMap[t],n=i.indexOf(e);if(n>=0&&i.splice(n,1),this.objectTagsMap[e.uuid]&&this.objectTagsMap[e.uuid][t]&&delete this.objectTagsMap[e.uuid][t],Array.isArray(e.userData.rogueTags)){const i=e.userData.rogueTags.indexOf(t);i>=0&&e.userData.rogueTags.splice(i,1)}}))}static create(...e){e.forEach((e=>{Array.isArray(this.tagsMap[e])||(this.tagsMap[e]=[])}))}static delete(...e){e.forEach((e=>{this.tagsMap[e].forEach((t=>{if(delete this.objectTagsMap[t.uuid][e],Array.isArray(t.userData.rogueTags)){const i=t.userData.rogueTags.indexOf(e);i>=0&&t.userData.rogueTags.splice(i,1)}})),delete this.tagsMap[e]}))}static clear(){const e=Object.keys(this.tagsMap);for(let i in e)delete this.tagsMap[i];const t=Object.keys(this.objectTagsMap);for(let i in t)delete this.objectTagsMap[i]}}Tags.tagsMap={},Tags.objectTagsMap={};let y={},A={},C={},w={},E={};class MissingComponent extends Component{constructor(e,t){super(e.name,t),this.missingComponentData=e}toJSON(){return this.missingComponentData}}function getComponentPrototypes(){return y}function clearComponents(){y={};for(let e in E)y[e]=E[e]}function registerComponent(e){if(e.prototype instanceof Component){const t=e.isInternalComponent,i=e.isEditorComponent;if(i||t||(y[e.name]=e),i){const i="Editor_"+e.name,n=getComponentByName(i);window["rogue-editor"].editorRuntime.editorObjectsContainer&&(n&&removeEditorComponent(n),t?(E[e.name]=e,y[e.name]=e):y[e.name]=e,addComponent(new e(i,window["rogue-editor"].editorRuntime.editorObjectsContainer)))}}else Debug.logWarning(e+" is not a Component")}MissingComponent.isMissingComponent=!0;const initComponents=(e,t)=>{C={},t&&(A=t);for(let i in A){const t=A[i];C[i]=[];let n=e.getObjectByProperty("uuid",i);t.forEach(((e,t)=>{e?y[e.componentPrototypeName]?(C[i][t]=new y[e.componentPrototypeName](e.name,n),C[i][t].fromJSON(e)):(C[i][t]=new MissingComponent(e,n),Debug.logError("Component "+e.componentPrototypeName+" does not exist")):Debug.logError("Component does not exist")}))}},initEditorComponents=e=>{if(!App.sceneController.editorObjectsContainer)return;const t={};for(let i in w){const e=w[i];t[i]=[],e.forEach(((e,n)=>{e&&e.onRemoved(),e&&t[i].push(e.toJSON())}))}for(let i in t){const e=t[i];w[i]=[];let n=App.sceneController.editorObjectsContainer.getObjectByProperty("uuid",i);e.forEach(((e,t)=>{e?y[e.componentPrototypeName]?(w[i][t]=new y[e.componentPrototypeName](e.name,n),w[i][t].fromJSON(e)):(w[i][t]=new MissingComponent(e,n),Debug.logError("Component "+e.componentPrototypeName+" does not exist")):Debug.logError("Component does not exist")}))}};function traverseComponents(e){for(let t in C){C[t].forEach(((i,n)=>{e(i,t,n)}))}}const loadComponents=(e,t)=>{let i=e.uuid;C[e.uuid]=[],t.forEach(((t,n)=>{t?y[t.componentPrototypeName]?(C[i][n]=new y[t.componentPrototypeName](t.name,e),C[i][n].fromJSON(t),function componentLoaded(e,t){componentEvensHandler(e,t,c)}(C[i][n],e)):(C[i][n]=new MissingComponent(t,e),Debug.logError("Component "+t.componentPrototypeName+" does not exist")):Debug.logError("Component does not exist")}))},serializeComponents=()=>{A={};for(let e in C){const t=C[e];A[e]=[],t.forEach(((t,i)=>{t&&A[e].push(t.toJSON())}))}return A},addComponent=e=>{var t,i;if(!e.object3d)return;if(e.constructor.isEditorComponent&&(null===(i=null===(t=window["rogue-editor"])||void 0===t?void 0:t.editorRuntime)||void 0===i?void 0:i.editorObjectsContainer)!==e.object3d)throw`Failed adding component ${e.constructor.name}. Editor Components cannot be added to scene objects`;const n=e.object3d;if(n.userData.isEditorObject||e.constructor.isEditorComponent)return w[n.uuid]||(w[n.uuid]=[]),void w[n.uuid].push(e);C[n.uuid]||(C[n.uuid]=[]),C[n.uuid].push(e),function componentAdded(e,t){componentEvensHandler(e,t,u)}(e,n),m.isRunning&&e.awake()};function copyObjectComponents(e,t){const i=getObjectComponents(e);let n=[];i.forEach((e=>{const t=e.toJSON();delete t.uuid,n.push(t)})),n.forEach((e=>{if(e)if(y[e.componentPrototypeName]){const i=new y[e.componentPrototypeName](e.name,t);i.fromJSON(e),addComponent(i)}else Debug.logError("Component "+e.componentPrototypeName+" does not exist");else Debug.logError("Component does not exist")}))}const removeEditorComponent=e=>{const t=e.object3d;return!!t&&(w[t.uuid]?(!m.isRunning&&e.onBeforeRemoved(),w[t.uuid].splice(w[t.uuid].indexOf(e),1),!m.isRunning&&e.onRemoved(),componentRemoved(e,t),!0):void 0)},removeComponent=e=>{const t=e.object3d;return!!t&&(C[t.uuid]?(m.isRunning&&e.onBeforeRemoved(),C[t.uuid].splice(C[t.uuid].indexOf(e),1),m.isRunning&&e.onRemoved(),componentRemoved(e,t),!0):void 0)},removeComponents=(e,t)=>{for(let i in C[e.uuid])removeComponent(C[e.uuid][i]);if(delete C[e.uuid],t)for(let i in e.children){let t=e.children[i];removeComponents(t,!0)}};function getObjectComponentByName(e,t){return C[t]?C[t].find(((t,i,n)=>t.name===e)):w[t]?w[t].find(((t,i,n)=>t.name===e)):void 0}function getComponentByName(e,t){if(t)return getObjectComponentByName(e,t.uuid);for(let i in C){const t=getObjectComponentByName(e,i);if(t)return t}for(let i in w){const t=getObjectComponentByName(e,i);if(t)return t}}const getComponent=(e,t)=>{if(t&&C[t.uuid])return C[t.uuid].find(((t,i,n)=>t instanceof e));if(t&&w[t.uuid])return w[t.uuid].find(((t,i,n)=>t instanceof e));if(!t)for(let i in C){const t=C[i];for(let i=0;i<t.length;i++)if(t[i]instanceof e)return t[i]}},getComponents=e=>{const t=[];for(let i in C){C[i].forEach((i=>{i instanceof e&&t.push(i)}))}return t},getObjectComponents=e=>C[e.uuid]||[],S=e.Object3D.prototype.add,x=e.Object3D.prototype.attach,O=e.Object3D.prototype.remove,k=e.Object3D.prototype.clone;let P=!1;function addObject(t){if(Array.isArray(t.userData.rogueTags)&&Tags.set(t,...t.userData.rogueTags),t.material instanceof e.Material){let i=j.getAsset(t.material.uuid);const n=t.userData.__MATERIAL__;!i&&n&&(i=j.getAsset(n),i instanceof e.Material?t.material=i:!i&&n&&j.loadAsset(n).then((e=>{e?t.material=e:Debug.logWarning(`Material not found. uuid: ${n}`)})))}Array.isArray(t.userData.__MATERIAL__)&&t.userData.__MATERIAL__.forEach(((i,n)=>{if(!i)return;let s=j.getAsset(i);s instanceof e.Material?t.material[n]=s:!s&&i&&j.loadAsset(i).then((e=>{e?t.material[n]=e:Debug.logWarning(`Material not found. uuid: ${i}`)}))}))}e.Object3D.prototype.clone=function(e){P=!0;const t=k.bind(this)(e);return P=!1,t},e.Object3D.prototype.add=function(...e){!this.userData.isEditorObject&&e.forEach((e=>{addObject(e),e.userData.__IS_ADDING__=!0}));const t=S.bind(this)(...e);return!this.userData.isEditorObject&&e.forEach((e=>{e.userData.__IS_ADDING__=!1,P||objectAdded(e,this)})),t},e.Object3D.prototype.attach=function(e){!this.userData.isEditorObject&&addObject(e),e.userData.__IS_ADDING__=!0;const t=x.bind(this)(e);return e.userData.__IS_ADDING__=!1,!this.userData.isEditorObject&&!P&&objectAdded(e,this),t};let removeObjectComponents=(e,t)=>{if(function objectRemoved(e,t){objectEvensHandler(e,t,a)}(e,t),C[e.uuid]){const t=C[e.uuid].slice(0);for(let e in t)removeComponent(t[e]);delete C[e.uuid]}for(let i in e.children){let t=e.children[i];removeObjectComponents(t,e)}};e.Object3D.prototype.remove=function(e){const t=this===e.parent,i=C[e.uuid];t&&!e.userData.__IS_ADDING__&&i&&m.isRunning&&!this.userData.isEditorObject&&i.forEach((e=>{e.onBeforeObjectRemoved()}));const n=O.bind(this)(e);return!t||e.userData.__IS_ADDING__||this.userData.isEditorObject||(m.isRunning&&i&&i.forEach((e=>{e.onObjectRemoved()})),removeObjectComponents(e,this)),n};const L=e.Object3D.prototype.toJSON;e.Object3D.prototype.toJSON=function(e){const t=this.children.filter((e=>e.userData.isEditorObject));t.forEach((e=>{this.remove(e)}));const i=L.bind(this)(e);if(t.forEach((e=>{this.attach(e)})),window.__IS_LOADING_MODEL__)return i;if(i.object.userData&&i.object.userData.__IS_MATERIAL__){i.images=[];for(let e in i.textures){const t=i.textures[e];i.textures[e]=t.uuid}}else{const e=[],t=[];i.textures&&i.textures.forEach((i=>{j.getAssetPath(i.uuid)&&(t.push(i),e.push(i.image))})),e.forEach((e=>{const t=i.images.find((t=>t.uuid===e));i.images.splice(i.images.indexOf(t),1)})),t.forEach((e=>{i.textures.splice(i.textures.indexOf(e),1)}));const n=[];i.materials&&i.materials.forEach((e=>{j.getAssetPath(e.uuid)&&n.push(e)})),n.forEach((e=>{i.materials.splice(i.materials.indexOf(e),1)}))}return i};const D=["Prefab","Material","Aduio","PositionalAudio","AnimationClip"],R=["png","PNG","jpg","JPG","jpeg","JPEG","gif","GIF","webp","WEBP","tga","TGA","tif","tiff","TIF","TIFF"],T=["mp3","MP3","ogg","OGG","mkv","MKV","wav","WAV"];let j=new class AssetManagerClass{constructor(){this._assets={},this._assetConfigs={},this._assetPaths={},this._loadingAssets={},this._objectLoader=new e.ObjectLoader,this.textureLoader=new e.TextureLoader}get assets(){return this._assets}get assetConfigs(){return this._assetConfigs}get assetPaths(){return this._assetPaths}get totalLoadingAssets(){return Object.keys(this._loadingAssets).length}onRegisterAsset(e){return o.on("onRegisterAsset",e),{stop:()=>{o.removeListener("onRegisterAsset",e)}}}onRemoveAsset(e){return o.on("onRemoveAsset",e),{stop:()=>{o.removeListener("onRemoveAsset",e)}}}onClearAssets(e){return o.on("onClearAssets",e),{stop:()=>{o.removeListener("onClearAssets",e)}}}onSetAssetConfig(e){return o.on("onSetAssetConfig",e),{stop:()=>{o.removeListener("onSetAssetConfig",e)}}}onRemoveAssetConfig(e){return o.on("onRemoveAssetConfig",e),{stop:()=>{o.removeListener("onRemoveAssetConfig",e)}}}onLoadAssetConfigs(e){return o.on("onLoadAssetConfigs",e),{stop:()=>{o.removeListener("onLoadAssetConfigs",e)}}}onSetAssetPath(e){return o.on("onSetAssetPath",e),{stop:()=>{o.removeListener("onSetAssetPath",e)}}}onSetAssetPaths(e){return o.on("onSetAssetPaths",e),{stop:()=>{o.removeListener("onSetAssetPaths",e)}}}onRemoveAssetPath(e){return o.on("onRemoveAssetPath",e),{stop:()=>{o.removeListener("onRemoveAssetPath",e)}}}setAssetConfig(e,t){this._assetConfigs[e]=t,t.preload||t.keepLoaded||t.override||delete this._assetConfigs[e],o.emit("onSetAssetConfig",e,t)}getAssetConfig(e){return this._assetConfigs[e]}removeAssetConfig(e){const t=this._assetConfigs[e];delete this._assetConfigs[e],o.emit("onRemoveAssetConfig",e,t)}setAssetPath(e,t){this._assetPaths[e]=t,o.emit("onSetAssetPath",e,t)}removeAssetPath(e){const t=this._assetPaths[e];delete this._assetPaths[e],o.emit("onRemoveAssetPath",e,t)}setAssetPaths(e){this._assetPaths=Object.assign({},e),o.emit("onSetAssetPaths",e)}getAssetPath(e){let t,i=window.re_prefix;return this._assetPaths[e]&&(t=this._assetPaths[e]),i?i+t:t}registerAsset(e){this._assets[e.uuid]=e,o.emit("onRegisterAsset",e)}loadAsset(e){return __awaiter(this,void 0,void 0,(function*(){const t=this.getAsset(e);if(t)return t;const i=this.getAssetPath(e);if(!i)return;const n=this.getExtension(i);return"roguePrefab"===n?yield this.loadObject(i):"rogueAnimation"===n?yield this.loadAnimation(i):T.indexOf(n)>=0?yield this.loadAudio(i):"rogueMaterial"===n?yield this.loadMaterial(i):R.indexOf(n)>=0?yield this.loadTexture(i):void 0}))}getExtension(e){return e.substr(e.lastIndexOf(".")+1)}getAsset(e){return this._assets[e]}loadObject(e){if(this._loadingAssets[e])return this._loadingAssets[e];const t=this.loadObjectFunction(e);return this.addLoadingAsset(e,t),t}loadObjectFunction(e){return __awaiter(this,void 0,void 0,(function*(){let t=yield fetch(e),i=yield t.json();const n=this._objectLoader.parse(i);return n.uuid=i.object.uuid,this.registerAsset(n),yield this.loadNestedPrefabs(n),this.removeLoadingAsset(e),n}))}loadNestedPrefabs(e){return __awaiter(this,void 0,void 0,(function*(){const t=e.userData.__NESTED__;if(t)for(let e=0;e<t.length;e++)yield this.loadAsset(t[e].uuid);for(let i=0;i<e.children.length;i++)yield this.loadNestedPrefabs(e.children[i])}))}loadAudio(e){if(this._loadingAssets[e])return this._loadingAssets[e];const t=this.loadAudioFunction(e);return this.addLoadingAsset(e,t),t}loadAudioFunction(e){return __awaiter(this,void 0,void 0,(function*(){const t=yield AudioAsset.fromFile(e);return this.registerAsset(t),this.removeLoadingAsset(e),t}))}loadAnimation(e){if(this._loadingAssets[e])return this._loadingAssets[e];const t=this.loadAnimationFunction(e);return this.addLoadingAsset(e,t),t}loadAnimationFunction(t){return __awaiter(this,void 0,void 0,(function*(){let i=yield fetch(t),n=yield i.json();const s=e.AnimationClip.parse(n);return this.registerAsset(s),this.removeLoadingAsset(t),s}))}loadMaterial(e){if(this._loadingAssets[e])return this._loadingAssets[e];const t=this.loadMaterialFunction(e);return this.addLoadingAsset(e,t),t}loadMaterialFunction(e){return __awaiter(this,void 0,void 0,(function*(){const t=yield fetch(e),i=yield t.json(),n=[];for(let e in i.textures){const t=i.textures[e],s="string"===typeof t?t:t.uuid,o=this.getAssetPath(s);!this.getAsset(s)&&o&&(yield this.loadTexture(o)),o&&n.push(s)}const s={};for(let e in i.materials[0]){const t=i.materials[0];n.forEach((i=>{i===t[e]&&(s[e]=i)}))}const o=i.textures;i.textures=[];const r=this._objectLoader.parse(i).material;i.textures=o;for(let e in s){const t=s[e];r[e]=this.getAsset(t)}return this.registerAsset(r),this.removeLoadingAsset(e),r}))}loadTexture(e){if(this._loadingAssets[e])return this._loadingAssets[e];const t=this.loadTextureFunction(e);return this.addLoadingAsset(e,t),t}loadTextureFunction(e){return __awaiter(this,void 0,void 0,(function*(){let t=yield fetch(e+".meta"),i=yield t.json();const n=yield this.loadTextureFile(e,i);return this.registerAsset(n),this.removeLoadingAsset(e),n}))}loadTextureFile(e,t){return new Promise((i=>{this.textureLoader.load(e,(e=>{Object.keys(t.object).forEach((i=>{"repeat"===i||"center"===i||"offset"===i?(e[i].x=t.object[i][0],e[i].y=t.object[i][1]):"wrap"===i?(e.wrapS=t.object[i][0],e.wrapT=t.object[i][1]):"image"===i||(e[i]=t.object[i])})),this.sceneController&&this.sceneController.renderer.initTexture(e),i(e)}))}))}addLoadingAsset(e,t){this._loadingAssets[e]=t}removeLoadingAsset(e){delete this._loadingAssets[e]}removeAsset(e){const t=this._assets[e];delete this._assets[e],o.emit("onRemoveAsset",e,t)}clear(){for(const e in this._assets)delete this._assets[e];o.emit("onClearAssets")}assetIsOrphan(t){const i=this.getAsset(t);if(!i)return!1;let n=!0;return traverseComponents((e=>{for(const t in e.interface)D.indexOf(t)>=0&&e[t]===i&&(n=!1)})),i instanceof e.Material&&App.currentScene.traverse((e=>{e&&e.material===i&&(n=!1)})),i instanceof e.Texture&&App.currentScene.traverse((t=>{if(t&&t.material instanceof e.Material)for(let s in t.material)t.material[s]instanceof e.Texture&&t.material[s]===i&&(n=!1)})),n}loadAssetConfigs(e={}){const t=this._assetConfigs,i=Object.keys(this._assets);for(const n in t){const i=e[n]&&e[n].override;t[n].override&&!i&&(e[n]=t[n])}i.forEach((i=>{const n=!!t[i]&&t[i].keepLoaded,s=!!e[i]&&e[i].preload;n||s||this.removeAsset(i)})),this._assetConfigs=e,o.emit("onLoadAssetConfigs")}preloadAssets(){return __awaiter(this,void 0,void 0,(function*(){for(let e in this._assetConfigs){!this._assets[e]&&this._assetConfigs[e].preload&&(yield this.loadAsset(e))}}))}};function Prop(e){return function(t,i){t.constructor.interface||(t.constructor.interface={}),t.constructor.interface[i]=e}}function PropList(e){return function(t,i){t.constructor.interface||(t.constructor.interface={}),t.constructor.interface[i]=[e]}}let M,B="",N=!1,F={};function decoratorFunc(e,t){if("button"===B&&"function"!==typeof e[t])return Decorators_reset();e.constructor.interface||(e.constructor.interface={}),e.constructor.interface=Object.assign({},e.constructor.interface);const i={type:B,group:M,options:F};e.constructor.interface[t]=N?[i]:i,Decorators_reset()}function Decorators_reset(){N=!1,M=void 0,F={}}class Decorators{num(e,t){return B="Number",F.min=e,F.max=t,decoratorFunc}checkbox(){return B="Boolean",decoratorFunc}text(e){return B="String",F.isTextArea=e,decoratorFunc}code(e){return B="Code","json"===e?F.lang="application/json":"html"===e?F.lang="text/html":"glsl"===e&&(F.lang=e),decoratorFunc}select(){return B="Select",decoratorFunc}vector2(){return B="Vector2",decoratorFunc}vector3(){return B="Vector3",decoratorFunc}prefab(){return B="Prefab",decoratorFunc}material(){return B="Material",decoratorFunc}texture(){return B="Texture",decoratorFunc}object3d(){return B="Object3D",decoratorFunc}audio(e){return B=e?"PositionalAudio":"Audio",decoratorFunc}color(){return B="Color",decoratorFunc}animation(){return B="AnimationClip",decoratorFunc}button(){return B="Button",decoratorFunc}}class ListProp extends Decorators{}const I=new class Props extends Decorators{constructor(){super(...arguments),this._list=new ListProp}get list(){return N=!0,this._list}data(){return B="Data",decoratorFunc}};function parallelTraverse(e,t,i){i(e,t);for(var n=0;n<e.children.length;n++)parallelTraverse(e.children[n],t.children[n],i)}function resetClonedSkinnedMeshes(e,t){const i=[],n={},s={};parallelTraverse(e,t,(function(e,t){e.isSkinnedMesh&&(n[t.uuid]=e,i.push(t)),e.isBone&&(s[e.uuid]=t)}));for(let o=0,r=i.length;o<r;o++){const e=i[o],t=n[e.uuid],r=t.skeleton.bones;e.skeleton=t.skeleton.clone(),e.bindMatrix.copy(t.bindMatrix),e.skeleton.bones=r.map((function(e){return s[e.uuid]})),e.bind(e.skeleton,e.bindMatrix)}}const U=e.Object3D.prototype.clone;e.Object3D.prototype.clone=function(e){const t=U.bind(this)(e);return resetClonedSkinnedMeshes(this,t),t}})(),window["rogue-engine"]=i})();
  7. (function webpackUniversalModuleDefinition(root, factory) {
  8. if(typeof exports === 'object' && typeof module === 'object')
  9. module.exports = factory(require("rogue-engine"), require("three"));
  10. else if(typeof define === 'function' && define.amd)
  11. define(["rogue-engine", "three"], factory);
  12. else if(typeof exports === 'object')
  13. exports["rogue-engine-user-scripts"] = factory(require("rogue-engine"), require("three"));
  14. else
  15. root["rogue-engine-user-scripts"] = factory(root["rogue-engine"], root["three"]);
  16. })(self, (__WEBPACK_EXTERNAL_MODULE_rogue_engine__, __WEBPACK_EXTERNAL_MODULE_three__) => {
  17. return /******/ (() => { // webpackBootstrap
  18. /******/ "use strict";
  19. /******/ var __webpack_modules__ = ({
  20. /***/ "./node_modules/@dimforge/rapier3d-compat/rapier.es.js":
  21. /*!*************************************************************!*\
  22. !*** ./node_modules/@dimforge/rapier3d-compat/rapier.es.js ***!
  23. \*************************************************************/
  24. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  25. __webpack_require__.r(__webpack_exports__);
  26. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  27. /* harmony export */ ActiveCollisionTypes: () => (/* binding */ kA),
  28. /* harmony export */ ActiveEvents: () => (/* binding */ KA),
  29. /* harmony export */ ActiveHooks: () => (/* binding */ UA),
  30. /* harmony export */ Ball: () => (/* binding */ _A),
  31. /* harmony export */ BroadPhase: () => (/* binding */ ZA),
  32. /* harmony export */ CCDSolver: () => (/* binding */ dA),
  33. /* harmony export */ Capsule: () => (/* binding */ II),
  34. /* harmony export */ CoefficientCombineRule: () => (/* binding */ GA),
  35. /* harmony export */ Collider: () => (/* binding */ KI),
  36. /* harmony export */ ColliderDesc: () => (/* binding */ UI),
  37. /* harmony export */ ColliderSet: () => (/* binding */ aI),
  38. /* harmony export */ Cone: () => (/* binding */ SI),
  39. /* harmony export */ ConvexPolyhedron: () => (/* binding */ iI),
  40. /* harmony export */ Cuboid: () => (/* binding */ $A),
  41. /* harmony export */ Cylinder: () => (/* binding */ GI),
  42. /* harmony export */ DebugRenderBuffers: () => (/* binding */ NI),
  43. /* harmony export */ DebugRenderPipeline: () => (/* binding */ MI),
  44. /* harmony export */ EventQueue: () => (/* binding */ qI),
  45. /* harmony export */ FeatureType: () => (/* binding */ wA),
  46. /* harmony export */ FixedImpulseJoint: () => (/* binding */ qA),
  47. /* harmony export */ FixedMultibodyJoint: () => (/* binding */ tA),
  48. /* harmony export */ Heightfield: () => (/* binding */ oI),
  49. /* harmony export */ ImpulseJoint: () => (/* binding */ FA),
  50. /* harmony export */ ImpulseJointSet: () => (/* binding */ HA),
  51. /* harmony export */ IntegrationParameters: () => (/* binding */ MA),
  52. /* harmony export */ IslandManager: () => (/* binding */ nA),
  53. /* harmony export */ JointData: () => (/* binding */ LA),
  54. /* harmony export */ JointType: () => (/* binding */ DA),
  55. /* harmony export */ MotorModel: () => (/* binding */ oA),
  56. /* harmony export */ MultibodyJoint: () => (/* binding */ lA),
  57. /* harmony export */ MultibodyJointSet: () => (/* binding */ eA),
  58. /* harmony export */ NarrowPhase: () => (/* binding */ WA),
  59. /* harmony export */ PhysicsPipeline: () => (/* binding */ JI),
  60. /* harmony export */ PointColliderProjection: () => (/* binding */ fA),
  61. /* harmony export */ PointProjection: () => (/* binding */ bA),
  62. /* harmony export */ Polyline: () => (/* binding */ QI),
  63. /* harmony export */ PrismaticImpulseJoint: () => (/* binding */ sA),
  64. /* harmony export */ PrismaticMultibodyJoint: () => (/* binding */ rA),
  65. /* harmony export */ Quaternion: () => (/* binding */ QA),
  66. /* harmony export */ Ray: () => (/* binding */ VA),
  67. /* harmony export */ RayColliderIntersection: () => (/* binding */ mA),
  68. /* harmony export */ RayColliderToi: () => (/* binding */ XA),
  69. /* harmony export */ RayIntersection: () => (/* binding */ PA),
  70. /* harmony export */ RevoluteImpulseJoint: () => (/* binding */ cA),
  71. /* harmony export */ RevoluteMultibodyJoint: () => (/* binding */ TA),
  72. /* harmony export */ RigidBody: () => (/* binding */ JA),
  73. /* harmony export */ RigidBodyDesc: () => (/* binding */ yA),
  74. /* harmony export */ RigidBodySet: () => (/* binding */ NA),
  75. /* harmony export */ RigidBodyType: () => (/* binding */ iA),
  76. /* harmony export */ RotationOps: () => (/* binding */ EA),
  77. /* harmony export */ RoundCone: () => (/* binding */ kI),
  78. /* harmony export */ RoundConvexPolyhedron: () => (/* binding */ DI),
  79. /* harmony export */ RoundCuboid: () => (/* binding */ AI),
  80. /* harmony export */ RoundCylinder: () => (/* binding */ wI),
  81. /* harmony export */ RoundTriangle: () => (/* binding */ BI),
  82. /* harmony export */ Segment: () => (/* binding */ gI),
  83. /* harmony export */ SerializationPipeline: () => (/* binding */ hI),
  84. /* harmony export */ Shape: () => (/* binding */ vA),
  85. /* harmony export */ ShapeColliderTOI: () => (/* binding */ uA),
  86. /* harmony export */ ShapeContact: () => (/* binding */ jA),
  87. /* harmony export */ ShapeTOI: () => (/* binding */ zA),
  88. /* harmony export */ ShapeType: () => (/* binding */ SA),
  89. /* harmony export */ SolverFlags: () => (/* binding */ aA),
  90. /* harmony export */ SphericalImpulseJoint: () => (/* binding */ YA),
  91. /* harmony export */ SphericalMultibodyJoint: () => (/* binding */ OA),
  92. /* harmony export */ TempContactManifold: () => (/* binding */ xA),
  93. /* harmony export */ TriMesh: () => (/* binding */ EI),
  94. /* harmony export */ Triangle: () => (/* binding */ CI),
  95. /* harmony export */ UnitImpulseJoint: () => (/* binding */ RA),
  96. /* harmony export */ UnitMultibodyJoint: () => (/* binding */ pA),
  97. /* harmony export */ Vector3: () => (/* binding */ CA),
  98. /* harmony export */ VectorOps: () => (/* binding */ BA),
  99. /* harmony export */ World: () => (/* binding */ FI),
  100. /* harmony export */ "default": () => (/* binding */ dI),
  101. /* harmony export */ init: () => (/* binding */ OI),
  102. /* harmony export */ version: () => (/* binding */ eI)
  103. /* harmony export */ });
  104. let A;const I=new Array(32).fill(void 0);function g(A){return I[A]}I.push(void 0,null,!0,!1);let C=I.length;function B(A){const B=g(A);return function(A){A<36||(I[A]=C,C=A)}(A),B}function Q(A){C===I.length&&I.push(I.length+1);const g=C;return C=I[g],I[g]=A,g}function E(A){return null==A}let i=null;function D(){return null!==i&&i.buffer===A.memory.buffer||(i=new Float64Array(A.memory.buffer)),i}let o=null;function G(){return null!==o&&o.buffer===A.memory.buffer||(o=new Int32Array(A.memory.buffer)),o}const w=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});w.decode();let S=null;function k(I,g){return w.decode((null!==S&&S.buffer===A.memory.buffer||(S=new Uint8Array(A.memory.buffer)),S).subarray(I,I+g))}function K(A,I){if(!(A instanceof I))throw new Error(`expected instance of ${I.name}`);return A.ptr}let U=32;function a(A){if(1==U)throw new Error("out of js stack");return I[--U]=A,U}let J=null;function y(){return null!==J&&J.buffer===A.memory.buffer||(J=new Float32Array(A.memory.buffer)),J}function h(A,I){return y().subarray(A/4,A/4+I)}let N=null;function M(){return null!==N&&N.buffer===A.memory.buffer||(N=new Uint32Array(A.memory.buffer)),N}let F=0;function R(A,I){const g=I(4*A.length);return y().set(A,g/4),F=A.length,g}function q(A,I){const g=I(4*A.length);return M().set(A,g/4),F=A.length,g}function s(I,g){try{return I.apply(this,g)}catch(I){A.__wbindgen_exn_store(Q(I))}}Object.freeze({Revolute:0,0:"Revolute",Fixed:1,1:"Fixed",Prismatic:2,2:"Prismatic",Spherical:3,3:"Spherical",Generic:4,4:"Generic"}),Object.freeze({AccelerationBased:0,0:"AccelerationBased",ForceBased:1,1:"ForceBased"});const c=Object.freeze({X:0,0:"X",Y:1,1:"Y",Z:2,2:"Z",AngX:3,3:"AngX",AngY:4,4:"AngY",AngZ:5,5:"AngZ"});Object.freeze({Dynamic:0,0:"Dynamic",Fixed:1,1:"Fixed",KinematicPositionBased:2,2:"KinematicPositionBased",KinematicVelocityBased:3,3:"KinematicVelocityBased"}),Object.freeze({Vertex:0,0:"Vertex",Edge:1,1:"Edge",Face:2,2:"Face",Unknown:3,3:"Unknown"}),Object.freeze({Ball:0,0:"Ball",Cuboid:1,1:"Cuboid",Capsule:2,2:"Capsule",Segment:3,3:"Segment",Polyline:4,4:"Polyline",Triangle:5,5:"Triangle",TriMesh:6,6:"TriMesh",HeightField:7,7:"HeightField",Compound:8,8:"Compound",ConvexPolyhedron:9,9:"ConvexPolyhedron",Cylinder:10,10:"Cylinder",Cone:11,11:"Cone",RoundCuboid:12,12:"RoundCuboid",RoundTriangle:13,13:"RoundTriangle",RoundCylinder:14,14:"RoundCylinder",RoundCone:15,15:"RoundCone",RoundConvexPolyhedron:16,16:"RoundConvexPolyhedron"});class Y{static __wrap(A){const I=Object.create(Y.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawbroadphase_free(I)}constructor(){const I=A.rawbroadphase_new();return Y.__wrap(I)}}class L{static __wrap(A){const I=Object.create(L.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawccdsolver_free(I)}constructor(){const I=A.rawccdsolver_new();return L.__wrap(I)}}class H{static __wrap(A){const I=Object.create(H.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawcolliderset_free(I)}coTranslation(I){const g=A.rawcolliderset_coTranslation(this.ptr,I);return IA.__wrap(g)}coRotation(I){const g=A.rawcolliderset_coRotation(this.ptr,I);return z.__wrap(g)}coSetTranslation(I,g,C,B){A.rawcolliderset_coSetTranslation(this.ptr,I,g,C,B)}coSetTranslationWrtParent(I,g,C,B){A.rawcolliderset_coSetTranslationWrtParent(this.ptr,I,g,C,B)}coSetRotation(I,g,C,B,Q){A.rawcolliderset_coSetRotation(this.ptr,I,g,C,B,Q)}coSetRotationWrtParent(I,g,C,B,Q){A.rawcolliderset_coSetRotationWrtParent(this.ptr,I,g,C,B,Q)}coIsSensor(I){return 0!==A.rawcolliderset_coIsSensor(this.ptr,I)}coShapeType(I){return A.rawcolliderset_coShapeType(this.ptr,I)>>>0}coHalfExtents(I){const g=A.rawcolliderset_coHalfExtents(this.ptr,I);return 0===g?void 0:IA.__wrap(g)}coRadius(I){try{const B=A.__wbindgen_add_to_stack_pointer(-16);A.rawcolliderset_coRadius(B,this.ptr,I);var g=G()[B/4+0],C=y()[B/4+1];return 0===g?void 0:C}finally{A.__wbindgen_add_to_stack_pointer(16)}}coHalfHeight(I){try{const B=A.__wbindgen_add_to_stack_pointer(-16);A.rawcolliderset_coHalfHeight(B,this.ptr,I);var g=G()[B/4+0],C=y()[B/4+1];return 0===g?void 0:C}finally{A.__wbindgen_add_to_stack_pointer(16)}}coRoundRadius(I){try{const B=A.__wbindgen_add_to_stack_pointer(-16);A.rawcolliderset_coRoundRadius(B,this.ptr,I);var g=G()[B/4+0],C=y()[B/4+1];return 0===g?void 0:C}finally{A.__wbindgen_add_to_stack_pointer(16)}}coVertices(I){try{const B=A.__wbindgen_add_to_stack_pointer(-16);A.rawcolliderset_coVertices(B,this.ptr,I);var g=G()[B/4+0],C=G()[B/4+1];let Q;return 0!==g&&(Q=h(g,C).slice(),A.__wbindgen_free(g,4*C)),Q}finally{A.__wbindgen_add_to_stack_pointer(16)}}coIndices(I){try{const B=A.__wbindgen_add_to_stack_pointer(-16);A.rawcolliderset_coIndices(B,this.ptr,I);var g=G()[B/4+0],C=G()[B/4+1];let Q;return 0!==g&&(Q=function(A,I){return M().subarray(A/4,A/4+I)}(g,C).slice(),A.__wbindgen_free(g,4*C)),Q}finally{A.__wbindgen_add_to_stack_pointer(16)}}coHeightfieldHeights(I){try{const B=A.__wbindgen_add_to_stack_pointer(-16);A.rawcolliderset_coHeightfieldHeights(B,this.ptr,I);var g=G()[B/4+0],C=G()[B/4+1];let Q;return 0!==g&&(Q=h(g,C).slice(),A.__wbindgen_free(g,4*C)),Q}finally{A.__wbindgen_add_to_stack_pointer(16)}}coHeightfieldScale(I){const g=A.rawcolliderset_coHeightfieldScale(this.ptr,I);return 0===g?void 0:IA.__wrap(g)}coHeightfieldNRows(I){try{const B=A.__wbindgen_add_to_stack_pointer(-16);A.rawcolliderset_coHeightfieldNRows(B,this.ptr,I);var g=G()[B/4+0],C=G()[B/4+1];return 0===g?void 0:C>>>0}finally{A.__wbindgen_add_to_stack_pointer(16)}}coHeightfieldNCols(I){try{const B=A.__wbindgen_add_to_stack_pointer(-16);A.rawcolliderset_coHeightfieldNCols(B,this.ptr,I);var g=G()[B/4+0],C=G()[B/4+1];return 0===g?void 0:C>>>0}finally{A.__wbindgen_add_to_stack_pointer(16)}}coParent(I){try{const B=A.__wbindgen_add_to_stack_pointer(-16);A.rawcolliderset_coParent(B,this.ptr,I);var g=G()[B/4+0],C=D()[B/8+1];return 0===g?void 0:C}finally{A.__wbindgen_add_to_stack_pointer(16)}}coFriction(I){return A.rawcolliderset_coFriction(this.ptr,I)}coRestitution(I){return A.rawcolliderset_coRestitution(this.ptr,I)}coDensity(I){try{const B=A.__wbindgen_add_to_stack_pointer(-16);A.rawcolliderset_coDensity(B,this.ptr,I);var g=G()[B/4+0],C=y()[B/4+1];return 0===g?void 0:C}finally{A.__wbindgen_add_to_stack_pointer(16)}}coCollisionGroups(I){return A.rawcolliderset_coCollisionGroups(this.ptr,I)>>>0}coSolverGroups(I){return A.rawcolliderset_coSolverGroups(this.ptr,I)>>>0}coActiveHooks(I){return A.rawcolliderset_coActiveHooks(this.ptr,I)>>>0}coActiveCollisionTypes(I){return A.rawcolliderset_coActiveCollisionTypes(this.ptr,I)}coActiveEvents(I){return A.rawcolliderset_coActiveEvents(this.ptr,I)>>>0}coContainsPoint(I,g){K(g,IA);return 0!==A.rawcolliderset_coContainsPoint(this.ptr,I,g.ptr)}coCastShape(I,g,C,B,Q,E,i){K(g,IA),K(C,v),K(B,IA),K(Q,z),K(E,IA);const D=A.rawcolliderset_coCastShape(this.ptr,I,g.ptr,C.ptr,B.ptr,Q.ptr,E.ptr,i);return 0===D?void 0:AA.__wrap(D)}coCastCollider(I,g,C,B,Q){K(g,IA),K(B,IA);const E=A.rawcolliderset_coCastCollider(this.ptr,I,g.ptr,C,B.ptr,Q);return 0===E?void 0:_.__wrap(E)}coIntersectsShape(I,g,C,B){K(g,v),K(C,IA),K(B,z);return 0!==A.rawcolliderset_coIntersectsShape(this.ptr,I,g.ptr,C.ptr,B.ptr)}coContactShape(I,g,C,B,Q){K(g,v),K(C,IA),K(B,z);const E=A.rawcolliderset_coContactShape(this.ptr,I,g.ptr,C.ptr,B.ptr,Q);return 0===E?void 0:$.__wrap(E)}coContactCollider(I,g,C){const B=A.rawcolliderset_coContactCollider(this.ptr,I,g,C);return 0===B?void 0:$.__wrap(B)}coProjectPoint(I,g,C){K(g,IA);const B=A.rawcolliderset_coProjectPoint(this.ptr,I,g.ptr,C);return b.__wrap(B)}coIntersectsRay(I,g,C,B){K(g,IA),K(C,IA);return 0!==A.rawcolliderset_coIntersectsRay(this.ptr,I,g.ptr,C.ptr,B)}coCastRay(I,g,C,B,Q){K(g,IA),K(C,IA);return A.rawcolliderset_coCastRay(this.ptr,I,g.ptr,C.ptr,B,Q)}coCastRayAndGetNormal(I,g,C,B,Q){K(g,IA),K(C,IA);const E=A.rawcolliderset_coCastRayAndGetNormal(this.ptr,I,g.ptr,C.ptr,B,Q);return 0===E?void 0:m.__wrap(E)}coSetSensor(I,g){A.rawcolliderset_coSetSensor(this.ptr,I,g)}coSetRestitution(I,g){A.rawcolliderset_coSetRestitution(this.ptr,I,g)}coSetFriction(I,g){A.rawcolliderset_coSetFriction(this.ptr,I,g)}coFrictionCombineRule(I){return A.rawcolliderset_coFrictionCombineRule(this.ptr,I)>>>0}coSetFrictionCombineRule(I,g){A.rawcolliderset_coSetFrictionCombineRule(this.ptr,I,g)}coRestitutionCombineRule(I){return A.rawcolliderset_coRestitutionCombineRule(this.ptr,I)>>>0}coSetRestitutionCombineRule(I,g){A.rawcolliderset_coSetRestitutionCombineRule(this.ptr,I,g)}coSetCollisionGroups(I,g){A.rawcolliderset_coSetCollisionGroups(this.ptr,I,g)}coSetSolverGroups(I,g){A.rawcolliderset_coSetSolverGroups(this.ptr,I,g)}coSetActiveHooks(I,g){A.rawcolliderset_coSetActiveHooks(this.ptr,I,g)}coSetActiveEvents(I,g){A.rawcolliderset_coSetActiveEvents(this.ptr,I,g)}coSetActiveCollisionTypes(I,g){A.rawcolliderset_coSetActiveCollisionTypes(this.ptr,I,g)}coSetShape(I,g){K(g,v),A.rawcolliderset_coSetShape(this.ptr,I,g.ptr)}constructor(){const I=A.rawcolliderset_new();return H.__wrap(I)}len(){return A.rawcolliderset_len(this.ptr)>>>0}contains(I){return 0!==A.rawcolliderset_contains(this.ptr,I)}createCollider(I,g,C,B,Q,E,i,o,w,S,k,U,a,J,y,h,N,M,F,R,q,s){try{const L=A.__wbindgen_add_to_stack_pointer(-16);K(I,v),K(g,IA),K(C,z),K(E,IA),K(i,IA),K(o,z),K(s,X),A.rawcolliderset_createCollider(L,this.ptr,I.ptr,g.ptr,C.ptr,B,Q,E.ptr,i.ptr,o.ptr,w,S,k,U,a,J,y,h,N,M,F,R,q,s.ptr);var c=G()[L/4+0],Y=D()[L/8+1];return 0===c?void 0:Y}finally{A.__wbindgen_add_to_stack_pointer(16)}}remove(I,g,C,B){K(g,n),K(C,X),A.rawcolliderset_remove(this.ptr,I,g.ptr,C.ptr,B)}isHandleValid(I){return 0!==A.rawcolliderset_contains(this.ptr,I)}forEachColliderHandle(g){try{A.rawcolliderset_forEachColliderHandle(this.ptr,a(g))}finally{I[U++]=void 0}}}class l{static __wrap(A){const I=Object.create(l.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawcontactmanifold_free(I)}normal(){const I=A.rawcontactmanifold_normal(this.ptr);return IA.__wrap(I)}local_n1(){const I=A.rawcontactmanifold_local_n1(this.ptr);return IA.__wrap(I)}local_n2(){const I=A.rawcontactmanifold_local_n2(this.ptr);return IA.__wrap(I)}subshape1(){return A.rawcontactmanifold_subshape1(this.ptr)>>>0}subshape2(){return A.rawcontactmanifold_subshape2(this.ptr)>>>0}num_contacts(){return A.rawcontactmanifold_num_contacts(this.ptr)>>>0}contact_local_p1(I){const g=A.rawcontactmanifold_contact_local_p1(this.ptr,I);return 0===g?void 0:IA.__wrap(g)}contact_local_p2(I){const g=A.rawcontactmanifold_contact_local_p2(this.ptr,I);return 0===g?void 0:IA.__wrap(g)}contact_dist(I){return A.rawcontactmanifold_contact_dist(this.ptr,I)}contact_fid1(I){return A.rawcontactmanifold_contact_fid1(this.ptr,I)>>>0}contact_fid2(I){return A.rawcontactmanifold_contact_fid2(this.ptr,I)>>>0}contact_impulse(I){return A.rawcontactmanifold_contact_impulse(this.ptr,I)}contact_tangent_impulse_x(I){return A.rawcontactmanifold_contact_tangent_impulse_x(this.ptr,I)}contact_tangent_impulse_y(I){return A.rawcontactmanifold_contact_tangent_impulse_y(this.ptr,I)}num_solver_contacts(){return A.rawcontactmanifold_num_solver_contacts(this.ptr)>>>0}solver_contact_point(I){const g=A.rawcontactmanifold_solver_contact_point(this.ptr,I);return 0===g?void 0:IA.__wrap(g)}solver_contact_dist(I){return A.rawcontactmanifold_solver_contact_dist(this.ptr,I)}solver_contact_friction(I){return A.rawcontactmanifold_solver_contact_friction(this.ptr,I)}solver_contact_restitution(I){return A.rawcontactmanifold_solver_contact_restitution(this.ptr,I)}solver_contact_tangent_velocity(I){const g=A.rawcontactmanifold_solver_contact_tangent_velocity(this.ptr,I);return IA.__wrap(g)}}class p{static __wrap(A){const I=Object.create(p.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawcontactpair_free(I)}collider1(){return A.rawcontactpair_collider1(this.ptr)}collider2(){return A.rawcontactpair_collider2(this.ptr)}numContactManifolds(){return A.rawcontactpair_numContactManifolds(this.ptr)>>>0}contactManifold(I){const g=A.rawcontactpair_contactManifold(this.ptr,I);return 0===g?void 0:l.__wrap(g)}}class t{static __wrap(A){const I=Object.create(t.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawdebugrenderpipeline_free(I)}constructor(){const I=A.rawdebugrenderpipeline_new();return t.__wrap(I)}vertices(){return B(A.rawdebugrenderpipeline_vertices(this.ptr))}colors(){return B(A.rawdebugrenderpipeline_colors(this.ptr))}render(I,g,C,B,Q){K(I,X),K(g,H),K(C,e),K(B,Z),K(Q,W),A.rawdebugrenderpipeline_render(this.ptr,I.ptr,g.ptr,C.ptr,B.ptr,Q.ptr)}}class r{static __wrap(A){const I=Object.create(r.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawdeserializedworld_free(I)}takeGravity(){const I=A.rawdeserializedworld_takeGravity(this.ptr);return 0===I?void 0:IA.__wrap(I)}takeIntegrationParameters(){const I=A.rawdeserializedworld_takeIntegrationParameters(this.ptr);return 0===I?void 0:d.__wrap(I)}takeIslandManager(){const I=A.rawdeserializedworld_takeIslandManager(this.ptr);return 0===I?void 0:n.__wrap(I)}takeBroadPhase(){const I=A.rawdeserializedworld_takeBroadPhase(this.ptr);return 0===I?void 0:Y.__wrap(I)}takeNarrowPhase(){const I=A.rawdeserializedworld_takeNarrowPhase(this.ptr);return 0===I?void 0:W.__wrap(I)}takeBodies(){const I=A.rawdeserializedworld_takeBodies(this.ptr);return 0===I?void 0:X.__wrap(I)}takeColliders(){const I=A.rawdeserializedworld_takeColliders(this.ptr);return 0===I?void 0:H.__wrap(I)}takeImpulseJoints(){const I=A.rawdeserializedworld_takeImpulseJoints(this.ptr);return 0===I?void 0:e.__wrap(I)}takeMultibodyJoints(){const I=A.rawdeserializedworld_takeMultibodyJoints(this.ptr);return 0===I?void 0:Z.__wrap(I)}}class T{static __wrap(A){const I=Object.create(T.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_raweventqueue_free(I)}constructor(I){const g=A.raweventqueue_new(I);return T.__wrap(g)}drainCollisionEvents(g){try{A.raweventqueue_drainCollisionEvents(this.ptr,a(g))}finally{I[U++]=void 0}}clear(){A.raweventqueue_clear(this.ptr)}}class O{static __wrap(A){const I=Object.create(O.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawgenericjoint_free(I)}static spherical(I,g){K(I,IA),K(g,IA);const C=A.rawgenericjoint_spherical(I.ptr,g.ptr);return O.__wrap(C)}static prismatic(I,g,C,B,Q,E){K(I,IA),K(g,IA),K(C,IA);const i=A.rawgenericjoint_prismatic(I.ptr,g.ptr,C.ptr,B,Q,E);return 0===i?void 0:O.__wrap(i)}static fixed(I,g,C,B){K(I,IA),K(g,z),K(C,IA),K(B,z);const Q=A.rawgenericjoint_fixed(I.ptr,g.ptr,C.ptr,B.ptr);return O.__wrap(Q)}static revolute(I,g,C){K(I,IA),K(g,IA),K(C,IA);const B=A.rawgenericjoint_revolute(I.ptr,g.ptr,C.ptr);return 0===B?void 0:O.__wrap(B)}}class e{static __wrap(A){const I=Object.create(e.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawimpulsejointset_free(I)}jointType(I){return A.rawimpulsejointset_jointType(this.ptr,I)>>>0}jointBodyHandle1(I){return A.rawimpulsejointset_jointBodyHandle1(this.ptr,I)}jointBodyHandle2(I){return A.rawimpulsejointset_jointBodyHandle2(this.ptr,I)}jointFrameX1(I){const g=A.rawimpulsejointset_jointFrameX1(this.ptr,I);return z.__wrap(g)}jointFrameX2(I){const g=A.rawimpulsejointset_jointFrameX2(this.ptr,I);return z.__wrap(g)}jointAnchor1(I){const g=A.rawimpulsejointset_jointAnchor1(this.ptr,I);return IA.__wrap(g)}jointAnchor2(I){const g=A.rawimpulsejointset_jointAnchor2(this.ptr,I);return IA.__wrap(g)}jointLimitsEnabled(I,g){return 0!==A.rawimpulsejointset_jointLimitsEnabled(this.ptr,I,g)}jointLimitsMin(I,g){return A.rawimpulsejointset_jointLimitsMin(this.ptr,I,g)}jointLimitsMax(I,g){return A.rawimpulsejointset_jointLimitsMax(this.ptr,I,g)}jointConfigureMotorModel(I,g,C){A.rawimpulsejointset_jointConfigureMotorModel(this.ptr,I,g,C)}jointConfigureMotorVelocity(I,g,C,B){A.rawimpulsejointset_jointConfigureMotorVelocity(this.ptr,I,g,C,B)}jointConfigureMotorPosition(I,g,C,B,Q){A.rawimpulsejointset_jointConfigureMotorPosition(this.ptr,I,g,C,B,Q)}jointConfigureMotor(I,g,C,B,Q,E){A.rawimpulsejointset_jointConfigureMotor(this.ptr,I,g,C,B,Q,E)}constructor(){const I=A.rawimpulsejointset_new();return e.__wrap(I)}createJoint(I,g,C,B){K(I,O);return A.rawimpulsejointset_createJoint(this.ptr,I.ptr,g,C,B)}remove(I,g){A.rawimpulsejointset_remove(this.ptr,I,g)}len(){return A.rawimpulsejointset_len(this.ptr)>>>0}contains(I){return 0!==A.rawimpulsejointset_contains(this.ptr,I)}forEachJointHandle(g){try{A.rawimpulsejointset_forEachJointHandle(this.ptr,a(g))}finally{I[U++]=void 0}}forEachJointAttachedToRigidBody(g,C){try{A.rawimpulsejointset_forEachJointAttachedToRigidBody(this.ptr,g,a(C))}finally{I[U++]=void 0}}}class d{static __wrap(A){const I=Object.create(d.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawintegrationparameters_free(I)}constructor(){const I=A.rawintegrationparameters_new();return d.__wrap(I)}get dt(){return A.rawintegrationparameters_dt(this.ptr)}get erp(){return A.rawintegrationparameters_erp(this.ptr)}get allowedLinearError(){return A.rawintegrationparameters_allowedLinearError(this.ptr)}get predictionDistance(){return A.rawintegrationparameters_predictionDistance(this.ptr)}get maxVelocityIterations(){return A.rawintegrationparameters_maxVelocityIterations(this.ptr)>>>0}get maxVelocityFrictionIterations(){return A.rawintegrationparameters_maxVelocityFrictionIterations(this.ptr)>>>0}get maxStabilizationIterations(){return A.rawintegrationparameters_maxStabilizationIterations(this.ptr)>>>0}get minIslandSize(){return A.rawintegrationparameters_minIslandSize(this.ptr)>>>0}get maxCcdSubsteps(){return A.rawintegrationparameters_maxCcdSubsteps(this.ptr)>>>0}set dt(I){A.rawintegrationparameters_set_dt(this.ptr,I)}set erp(I){A.rawintegrationparameters_set_erp(this.ptr,I)}set allowedLinearError(I){A.rawintegrationparameters_set_allowedLinearError(this.ptr,I)}set predictionDistance(I){A.rawintegrationparameters_set_predictionDistance(this.ptr,I)}set maxVelocityIterations(I){A.rawintegrationparameters_set_maxVelocityIterations(this.ptr,I)}set maxVelocityFrictionIterations(I){A.rawintegrationparameters_set_maxVelocityFrictionIterations(this.ptr,I)}set maxStabilizationIterations(I){A.rawintegrationparameters_set_maxStabilizationIterations(this.ptr,I)}set minIslandSize(I){A.rawintegrationparameters_set_minIslandSize(this.ptr,I)}set maxCcdSubsteps(I){A.rawintegrationparameters_set_maxCcdSubsteps(this.ptr,I)}}class n{static __wrap(A){const I=Object.create(n.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawislandmanager_free(I)}constructor(){const I=A.rawislandmanager_new();return n.__wrap(I)}forEachActiveRigidBodyHandle(g){try{A.rawislandmanager_forEachActiveRigidBodyHandle(this.ptr,a(g))}finally{I[U++]=void 0}}}class Z{static __wrap(A){const I=Object.create(Z.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawmultibodyjointset_free(I)}jointType(I){return A.rawmultibodyjointset_jointType(this.ptr,I)>>>0}jointFrameX1(I){const g=A.rawmultibodyjointset_jointFrameX1(this.ptr,I);return z.__wrap(g)}jointFrameX2(I){const g=A.rawmultibodyjointset_jointFrameX2(this.ptr,I);return z.__wrap(g)}jointAnchor1(I){const g=A.rawmultibodyjointset_jointAnchor1(this.ptr,I);return IA.__wrap(g)}jointAnchor2(I){const g=A.rawmultibodyjointset_jointAnchor2(this.ptr,I);return IA.__wrap(g)}jointLimitsEnabled(I,g){return 0!==A.rawmultibodyjointset_jointLimitsEnabled(this.ptr,I,g)}jointLimitsMin(I,g){return A.rawmultibodyjointset_jointLimitsMin(this.ptr,I,g)}jointLimitsMax(I,g){return A.rawmultibodyjointset_jointLimitsMax(this.ptr,I,g)}constructor(){const I=A.rawmultibodyjointset_new();return Z.__wrap(I)}createJoint(I,g,C,B){K(I,O);return A.rawmultibodyjointset_createJoint(this.ptr,I.ptr,g,C,B)}remove(I,g){A.rawmultibodyjointset_remove(this.ptr,I,g)}contains(I){return 0!==A.rawmultibodyjointset_contains(this.ptr,I)}forEachJointHandle(g){try{A.rawmultibodyjointset_forEachJointHandle(this.ptr,a(g))}finally{I[U++]=void 0}}forEachJointAttachedToRigidBody(g,C){try{A.rawmultibodyjointset_forEachJointAttachedToRigidBody(this.ptr,g,a(C))}finally{I[U++]=void 0}}}class W{static __wrap(A){const I=Object.create(W.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawnarrowphase_free(I)}constructor(){const I=A.rawnarrowphase_new();return W.__wrap(I)}contacts_with(I,g){A.rawnarrowphase_contacts_with(this.ptr,I,Q(g))}contact_pair(I,g){const C=A.rawnarrowphase_contact_pair(this.ptr,I,g);return 0===C?void 0:p.__wrap(C)}intersections_with(I,g){A.rawnarrowphase_intersections_with(this.ptr,I,Q(g))}intersection_pair(I,g){return 0!==A.rawnarrowphase_intersection_pair(this.ptr,I,g)}}class x{static __wrap(A){const I=Object.create(x.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawphysicspipeline_free(I)}constructor(){const I=A.rawphysicspipeline_new();return x.__wrap(I)}step(I,g,C,B,Q,E,i,D,o,G){K(I,IA),K(g,d),K(C,n),K(B,Y),K(Q,W),K(E,X),K(i,H),K(D,e),K(o,Z),K(G,L),A.rawphysicspipeline_step(this.ptr,I.ptr,g.ptr,C.ptr,B.ptr,Q.ptr,E.ptr,i.ptr,D.ptr,o.ptr,G.ptr)}stepWithEvents(I,g,C,B,E,i,D,o,G,w,S,k,U,a){K(I,IA),K(g,d),K(C,n),K(B,Y),K(E,W),K(i,X),K(D,H),K(o,e),K(G,Z),K(w,L),K(S,T),A.rawphysicspipeline_stepWithEvents(this.ptr,I.ptr,g.ptr,C.ptr,B.ptr,E.ptr,i.ptr,D.ptr,o.ptr,G.ptr,w.ptr,S.ptr,Q(k),Q(U),Q(a))}}class j{static __wrap(A){const I=Object.create(j.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawpointcolliderprojection_free(I)}colliderHandle(){return A.rawpointcolliderprojection_colliderHandle(this.ptr)}point(){const I=A.rawpointcolliderprojection_point(this.ptr);return IA.__wrap(I)}isInside(){return 0!==A.rawpointcolliderprojection_isInside(this.ptr)}featureType(){return A.rawpointcolliderprojection_featureType(this.ptr)>>>0}featureId(){try{const C=A.__wbindgen_add_to_stack_pointer(-16);A.rawpointcolliderprojection_featureId(C,this.ptr);var I=G()[C/4+0],g=G()[C/4+1];return 0===I?void 0:g>>>0}finally{A.__wbindgen_add_to_stack_pointer(16)}}}class b{static __wrap(A){const I=Object.create(b.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawpointprojection_free(I)}point(){const I=A.rawpointprojection_point(this.ptr);return IA.__wrap(I)}isInside(){return 0!==A.rawpointprojection_isInside(this.ptr)}}class f{static __wrap(A){const I=Object.create(f.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawquerypipeline_free(I)}constructor(){const I=A.rawquerypipeline_new();return f.__wrap(I)}update(I,g,C){K(I,n),K(g,X),K(C,H),A.rawquerypipeline_update(this.ptr,I.ptr,g.ptr,C.ptr)}castRay(g,C,B,Q,E,i,D){try{K(g,H),K(C,IA),K(B,IA);const o=A.rawquerypipeline_castRay(this.ptr,g.ptr,C.ptr,B.ptr,Q,E,i,a(D));return 0===o?void 0:P.__wrap(o)}finally{I[U++]=void 0}}castRayAndGetNormal(g,C,B,Q,E,i,D){try{K(g,H),K(C,IA),K(B,IA);const o=A.rawquerypipeline_castRayAndGetNormal(this.ptr,g.ptr,C.ptr,B.ptr,Q,E,i,a(D));return 0===o?void 0:V.__wrap(o)}finally{I[U++]=void 0}}intersectionsWithRay(g,C,B,Q,E,i,D,o){try{K(g,H),K(C,IA),K(B,IA),A.rawquerypipeline_intersectionsWithRay(this.ptr,g.ptr,C.ptr,B.ptr,Q,E,i,a(D),a(o))}finally{I[U++]=void 0,I[U++]=void 0}}intersectionWithShape(g,C,B,Q,E,i){try{const S=A.__wbindgen_add_to_stack_pointer(-16);K(g,H),K(C,IA),K(B,z),K(Q,v),A.rawquerypipeline_intersectionWithShape(S,this.ptr,g.ptr,C.ptr,B.ptr,Q.ptr,E,a(i));var o=G()[S/4+0],w=D()[S/8+1];return 0===o?void 0:w}finally{A.__wbindgen_add_to_stack_pointer(16),I[U++]=void 0}}projectPoint(g,C,B,Q,E){try{K(g,H),K(C,IA);const i=A.rawquerypipeline_projectPoint(this.ptr,g.ptr,C.ptr,B,Q,a(E));return 0===i?void 0:j.__wrap(i)}finally{I[U++]=void 0}}projectPointAndGetFeature(I,g,C){K(I,H),K(g,IA);const B=A.rawquerypipeline_projectPointAndGetFeature(this.ptr,I.ptr,g.ptr,C);return 0===B?void 0:j.__wrap(B)}intersectionsWithPoint(g,C,B,Q,E){try{K(g,H),K(C,IA),A.rawquerypipeline_intersectionsWithPoint(this.ptr,g.ptr,C.ptr,B,a(Q),a(E))}finally{I[U++]=void 0,I[U++]=void 0}}castShape(g,C,B,Q,E,i,D,o){try{K(g,H),K(C,IA),K(B,z),K(Q,IA),K(E,v);const G=A.rawquerypipeline_castShape(this.ptr,g.ptr,C.ptr,B.ptr,Q.ptr,E.ptr,i,D,a(o));return 0===G?void 0:_.__wrap(G)}finally{I[U++]=void 0}}intersectionsWithShape(g,C,B,Q,E,i,D){try{K(g,H),K(C,IA),K(B,z),K(Q,v),A.rawquerypipeline_intersectionsWithShape(this.ptr,g.ptr,C.ptr,B.ptr,Q.ptr,E,a(i),a(D))}finally{I[U++]=void 0,I[U++]=void 0}}collidersWithAabbIntersectingAabb(g,C,B){try{K(g,IA),K(C,IA),A.rawquerypipeline_collidersWithAabbIntersectingAabb(this.ptr,g.ptr,C.ptr,a(B))}finally{I[U++]=void 0}}}class V{static __wrap(A){const I=Object.create(V.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawraycolliderintersection_free(I)}colliderHandle(){return A.rawpointcolliderprojection_colliderHandle(this.ptr)}normal(){const I=A.rawraycolliderintersection_normal(this.ptr);return IA.__wrap(I)}toi(){return A.rawraycolliderintersection_toi(this.ptr)}featureType(){return A.rawpointcolliderprojection_featureType(this.ptr)>>>0}featureId(){try{const C=A.__wbindgen_add_to_stack_pointer(-16);A.rawpointcolliderprojection_featureId(C,this.ptr);var I=G()[C/4+0],g=G()[C/4+1];return 0===I?void 0:g>>>0}finally{A.__wbindgen_add_to_stack_pointer(16)}}}class P{static __wrap(A){const I=Object.create(P.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawraycollidertoi_free(I)}colliderHandle(){return A.rawpointcolliderprojection_colliderHandle(this.ptr)}toi(){return A.rawraycolliderintersection_toi(this.ptr)}}class m{static __wrap(A){const I=Object.create(m.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawrayintersection_free(I)}normal(){const I=A.rawrayintersection_normal(this.ptr);return IA.__wrap(I)}toi(){return A.rawintegrationparameters_dt(this.ptr)}featureType(){return A.rawrayintersection_featureType(this.ptr)>>>0}featureId(){try{const C=A.__wbindgen_add_to_stack_pointer(-16);A.rawrayintersection_featureId(C,this.ptr);var I=G()[C/4+0],g=G()[C/4+1];return 0===I?void 0:g>>>0}finally{A.__wbindgen_add_to_stack_pointer(16)}}}class X{static __wrap(A){const I=Object.create(X.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawrigidbodyset_free(I)}rbTranslation(I){const g=A.rawrigidbodyset_rbTranslation(this.ptr,I);return IA.__wrap(g)}rbRotation(I){const g=A.rawrigidbodyset_rbRotation(this.ptr,I);return z.__wrap(g)}rbSleep(I){A.rawrigidbodyset_rbSleep(this.ptr,I)}rbIsSleeping(I){return 0!==A.rawrigidbodyset_rbIsSleeping(this.ptr,I)}rbIsMoving(I){return 0!==A.rawrigidbodyset_rbIsMoving(this.ptr,I)}rbNextTranslation(I){const g=A.rawrigidbodyset_rbNextTranslation(this.ptr,I);return IA.__wrap(g)}rbNextRotation(I){const g=A.rawrigidbodyset_rbNextRotation(this.ptr,I);return z.__wrap(g)}rbSetTranslation(I,g,C,B,Q){A.rawrigidbodyset_rbSetTranslation(this.ptr,I,g,C,B,Q)}rbSetRotation(I,g,C,B,Q,E){A.rawrigidbodyset_rbSetRotation(this.ptr,I,g,C,B,Q,E)}rbSetLinvel(I,g,C){K(g,IA),A.rawrigidbodyset_rbSetLinvel(this.ptr,I,g.ptr,C)}rbSetAngvel(I,g,C){K(g,IA),A.rawrigidbodyset_rbSetAngvel(this.ptr,I,g.ptr,C)}rbSetNextKinematicTranslation(I,g,C,B){A.rawrigidbodyset_rbSetNextKinematicTranslation(this.ptr,I,g,C,B)}rbSetNextKinematicRotation(I,g,C,B,Q){A.rawrigidbodyset_rbSetNextKinematicRotation(this.ptr,I,g,C,B,Q)}rbLinvel(I){const g=A.rawrigidbodyset_rbLinvel(this.ptr,I);return IA.__wrap(g)}rbAngvel(I){const g=A.rawrigidbodyset_rbAngvel(this.ptr,I);return IA.__wrap(g)}rbLockTranslations(I,g,C){A.rawrigidbodyset_rbLockTranslations(this.ptr,I,g,C)}rbRestrictTranslations(I,g,C,B,Q){A.rawrigidbodyset_rbRestrictTranslations(this.ptr,I,g,C,B,Q)}rbLockRotations(I,g,C){A.rawrigidbodyset_rbLockRotations(this.ptr,I,g,C)}rbRestrictRotations(I,g,C,B,Q){A.rawrigidbodyset_rbRestrictRotations(this.ptr,I,g,C,B,Q)}rbDominanceGroup(I){return A.rawrigidbodyset_rbDominanceGroup(this.ptr,I)}rbSetDominanceGroup(I,g){A.rawrigidbodyset_rbSetDominanceGroup(this.ptr,I,g)}rbEnableCcd(I,g){A.rawrigidbodyset_rbEnableCcd(this.ptr,I,g)}rbMass(I){return A.rawrigidbodyset_rbMass(this.ptr,I)}rbWakeUp(I){A.rawrigidbodyset_rbWakeUp(this.ptr,I)}rbIsCcdEnabled(I){return 0!==A.rawrigidbodyset_rbIsCcdEnabled(this.ptr,I)}rbNumColliders(I){return A.rawrigidbodyset_rbNumColliders(this.ptr,I)>>>0}rbCollider(I,g){return A.rawrigidbodyset_rbCollider(this.ptr,I,g)}rbBodyType(I){return A.rawrigidbodyset_rbBodyType(this.ptr,I)>>>0}rbSetBodyType(I,g){A.rawrigidbodyset_rbSetBodyType(this.ptr,I,g)}rbIsFixed(I){return 0!==A.rawrigidbodyset_rbIsFixed(this.ptr,I)}rbIsKinematic(I){return 0!==A.rawrigidbodyset_rbIsKinematic(this.ptr,I)}rbIsDynamic(I){return 0!==A.rawrigidbodyset_rbIsDynamic(this.ptr,I)}rbLinearDamping(I){return A.rawrigidbodyset_rbLinearDamping(this.ptr,I)}rbAngularDamping(I){return A.rawrigidbodyset_rbAngularDamping(this.ptr,I)}rbSetLinearDamping(I,g){A.rawrigidbodyset_rbSetLinearDamping(this.ptr,I,g)}rbSetAngularDamping(I,g){A.rawrigidbodyset_rbSetAngularDamping(this.ptr,I,g)}rbGravityScale(I){return A.rawrigidbodyset_rbGravityScale(this.ptr,I)}rbSetGravityScale(I,g,C){A.rawrigidbodyset_rbSetGravityScale(this.ptr,I,g,C)}rbResetForces(I,g){A.rawrigidbodyset_rbResetForces(this.ptr,I,g)}rbResetTorques(I,g){A.rawrigidbodyset_rbResetTorques(this.ptr,I,g)}rbAddForce(I,g,C){K(g,IA),A.rawrigidbodyset_rbAddForce(this.ptr,I,g.ptr,C)}rbApplyImpulse(I,g,C){K(g,IA),A.rawrigidbodyset_rbApplyImpulse(this.ptr,I,g.ptr,C)}rbAddTorque(I,g,C){K(g,IA),A.rawrigidbodyset_rbAddTorque(this.ptr,I,g.ptr,C)}rbApplyTorqueImpulse(I,g,C){K(g,IA),A.rawrigidbodyset_rbApplyTorqueImpulse(this.ptr,I,g.ptr,C)}rbAddForceAtPoint(I,g,C,B){K(g,IA),K(C,IA),A.rawrigidbodyset_rbAddForceAtPoint(this.ptr,I,g.ptr,C.ptr,B)}rbApplyImpulseAtPoint(I,g,C,B){K(g,IA),K(C,IA),A.rawrigidbodyset_rbApplyImpulseAtPoint(this.ptr,I,g.ptr,C.ptr,B)}rbUserData(I){return A.rawrigidbodyset_rbUserData(this.ptr,I)>>>0}rbSetUserData(I,g){A.rawrigidbodyset_rbSetUserData(this.ptr,I,g)}constructor(){const I=A.rawrigidbodyset_new();return X.__wrap(I)}createRigidBody(I,g,C,B,Q,E,i,D,o,G,w,S,k,U,a,J,y,h,N,M,F,R){K(I,IA),K(g,z),K(Q,IA),K(E,IA),K(i,IA),K(D,IA),K(o,z);return A.rawrigidbodyset_createRigidBody(this.ptr,I.ptr,g.ptr,C,B,Q.ptr,E.ptr,i.ptr,D.ptr,o.ptr,G,w,S,k,U,a,J,y,h,N,M,F,R)}remove(I,g,C,B,Q){K(g,n),K(C,H),K(B,e),K(Q,Z),A.rawrigidbodyset_remove(this.ptr,I,g.ptr,C.ptr,B.ptr,Q.ptr)}len(){return A.rawrigidbodyset_len(this.ptr)>>>0}contains(I){return 0!==A.rawrigidbodyset_contains(this.ptr,I)}forEachRigidBodyHandle(g){try{A.rawrigidbodyset_forEachRigidBodyHandle(this.ptr,a(g))}finally{I[U++]=void 0}}}class z{static __wrap(A){const I=Object.create(z.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawrotation_free(I)}constructor(I,g,C,B){const Q=A.rawrotation_new(I,g,C,B);return z.__wrap(Q)}static identity(){const I=A.rawrotation_identity();return z.__wrap(I)}get x(){return A.rawintegrationparameters_dt(this.ptr)}get y(){return A.rawrotation_y(this.ptr)}get z(){return A.rawintegrationparameters_erp(this.ptr)}get w(){return A.rawrotation_w(this.ptr)}}class u{static __wrap(A){const I=Object.create(u.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawserializationpipeline_free(I)}constructor(){const I=A.rawserializationpipeline_new();return u.__wrap(I)}serializeAll(I,g,C,Q,E,i,D,o,G){K(I,IA),K(g,d),K(C,n),K(Q,Y),K(E,W),K(i,X),K(D,H),K(o,e),K(G,Z);return B(A.rawserializationpipeline_serializeAll(this.ptr,I.ptr,g.ptr,C.ptr,Q.ptr,E.ptr,i.ptr,D.ptr,o.ptr,G.ptr))}deserializeAll(I){const g=A.rawserializationpipeline_deserializeAll(this.ptr,Q(I));return 0===g?void 0:r.__wrap(g)}}class v{static __wrap(A){const I=Object.create(v.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawshape_free(I)}static cuboid(I,g,C){const B=A.rawshape_cuboid(I,g,C);return v.__wrap(B)}static roundCuboid(I,g,C,B){const Q=A.rawshape_roundCuboid(I,g,C,B);return v.__wrap(Q)}static ball(I){const g=A.rawshape_ball(I);return v.__wrap(g)}static capsule(I,g){const C=A.rawshape_capsule(I,g);return v.__wrap(C)}static cylinder(I,g){const C=A.rawshape_cylinder(I,g);return v.__wrap(C)}static roundCylinder(I,g,C){const B=A.rawshape_roundCylinder(I,g,C);return v.__wrap(B)}static cone(I,g){const C=A.rawshape_cone(I,g);return v.__wrap(C)}static roundCone(I,g,C){const B=A.rawshape_roundCone(I,g,C);return v.__wrap(B)}static polyline(I,g){const C=R(I,A.__wbindgen_malloc),B=F,Q=q(g,A.__wbindgen_malloc),E=F,i=A.rawshape_polyline(C,B,Q,E);return v.__wrap(i)}static trimesh(I,g){const C=R(I,A.__wbindgen_malloc),B=F,Q=q(g,A.__wbindgen_malloc),E=F,i=A.rawshape_trimesh(C,B,Q,E);return v.__wrap(i)}static heightfield(I,g,C,B){const Q=R(C,A.__wbindgen_malloc),E=F;K(B,IA);const i=A.rawshape_heightfield(I,g,Q,E,B.ptr);return v.__wrap(i)}static segment(I,g){K(I,IA),K(g,IA);const C=A.rawshape_segment(I.ptr,g.ptr);return v.__wrap(C)}static triangle(I,g,C){K(I,IA),K(g,IA),K(C,IA);const B=A.rawshape_triangle(I.ptr,g.ptr,C.ptr);return v.__wrap(B)}static roundTriangle(I,g,C,B){K(I,IA),K(g,IA),K(C,IA);const Q=A.rawshape_roundTriangle(I.ptr,g.ptr,C.ptr,B);return v.__wrap(Q)}static convexHull(I){const g=R(I,A.__wbindgen_malloc),C=F,B=A.rawshape_convexHull(g,C);return 0===B?void 0:v.__wrap(B)}static roundConvexHull(I,g){const C=R(I,A.__wbindgen_malloc),B=F,Q=A.rawshape_roundConvexHull(C,B,g);return 0===Q?void 0:v.__wrap(Q)}static convexMesh(I,g){const C=R(I,A.__wbindgen_malloc),B=F,Q=q(g,A.__wbindgen_malloc),E=F,i=A.rawshape_convexMesh(C,B,Q,E);return 0===i?void 0:v.__wrap(i)}static roundConvexMesh(I,g,C){const B=R(I,A.__wbindgen_malloc),Q=F,E=q(g,A.__wbindgen_malloc),i=F,D=A.rawshape_roundConvexMesh(B,Q,E,i,C);return 0===D?void 0:v.__wrap(D)}castShape(I,g,C,B,Q,E,i,D){K(I,IA),K(g,z),K(C,IA),K(B,v),K(Q,IA),K(E,z),K(i,IA);const o=A.rawshape_castShape(this.ptr,I.ptr,g.ptr,C.ptr,B.ptr,Q.ptr,E.ptr,i.ptr,D);return 0===o?void 0:AA.__wrap(o)}intersectsShape(I,g,C,B,Q){K(I,IA),K(g,z),K(C,v),K(B,IA),K(Q,z);return 0!==A.rawshape_intersectsShape(this.ptr,I.ptr,g.ptr,C.ptr,B.ptr,Q.ptr)}contactShape(I,g,C,B,Q,E){K(I,IA),K(g,z),K(C,v),K(B,IA),K(Q,z);const i=A.rawshape_contactShape(this.ptr,I.ptr,g.ptr,C.ptr,B.ptr,Q.ptr,E);return 0===i?void 0:$.__wrap(i)}containsPoint(I,g,C){K(I,IA),K(g,z),K(C,IA);return 0!==A.rawshape_containsPoint(this.ptr,I.ptr,g.ptr,C.ptr)}projectPoint(I,g,C,B){K(I,IA),K(g,z),K(C,IA);const Q=A.rawshape_projectPoint(this.ptr,I.ptr,g.ptr,C.ptr,B);return b.__wrap(Q)}intersectsRay(I,g,C,B,Q){K(I,IA),K(g,z),K(C,IA),K(B,IA);return 0!==A.rawshape_intersectsRay(this.ptr,I.ptr,g.ptr,C.ptr,B.ptr,Q)}castRay(I,g,C,B,Q,E){K(I,IA),K(g,z),K(C,IA),K(B,IA);return A.rawshape_castRay(this.ptr,I.ptr,g.ptr,C.ptr,B.ptr,Q,E)}castRayAndGetNormal(I,g,C,B,Q,E){K(I,IA),K(g,z),K(C,IA),K(B,IA);const i=A.rawshape_castRayAndGetNormal(this.ptr,I.ptr,g.ptr,C.ptr,B.ptr,Q,E);return 0===i?void 0:m.__wrap(i)}}class _{static __wrap(A){const I=Object.create(_.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawshapecollidertoi_free(I)}colliderHandle(){return A.rawpointcolliderprojection_colliderHandle(this.ptr)}toi(){return A.rawraycolliderintersection_toi(this.ptr)}witness1(){const I=A.rawraycolliderintersection_normal(this.ptr);return IA.__wrap(I)}witness2(){const I=A.rawshapecollidertoi_witness2(this.ptr);return IA.__wrap(I)}normal1(){const I=A.rawshapecollidertoi_normal1(this.ptr);return IA.__wrap(I)}normal2(){const I=A.rawshapecollidertoi_normal2(this.ptr);return IA.__wrap(I)}}class ${static __wrap(A){const I=Object.create($.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawshapecontact_free(I)}distance(){return A.rawshapecontact_distance(this.ptr)}point1(){const I=A.rawpointprojection_point(this.ptr);return IA.__wrap(I)}point2(){const I=A.rawshapecontact_point2(this.ptr);return IA.__wrap(I)}normal1(){const I=A.rawshapecontact_normal1(this.ptr);return IA.__wrap(I)}normal2(){const I=A.rawshapecontact_normal2(this.ptr);return IA.__wrap(I)}}class AA{static __wrap(A){const I=Object.create(AA.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawshapetoi_free(I)}toi(){return A.rawintegrationparameters_dt(this.ptr)}witness1(){const I=A.rawrayintersection_normal(this.ptr);return IA.__wrap(I)}witness2(){const I=A.rawshapetoi_witness2(this.ptr);return IA.__wrap(I)}normal1(){const I=A.rawshapetoi_normal1(this.ptr);return IA.__wrap(I)}normal2(){const I=A.rawshapetoi_normal2(this.ptr);return IA.__wrap(I)}}class IA{static __wrap(A){const I=Object.create(IA.prototype);return I.ptr=A,I}__destroy_into_raw(){const A=this.ptr;return this.ptr=0,A}free(){const I=this.__destroy_into_raw();A.__wbg_rawvector_free(I)}static zero(){const I=A.rawvector_zero();return IA.__wrap(I)}constructor(I,g,C){const B=A.rawvector_new(I,g,C);return IA.__wrap(B)}get x(){return A.rawintegrationparameters_dt(this.ptr)}set x(I){A.rawintegrationparameters_set_dt(this.ptr,I)}get y(){return A.rawrotation_y(this.ptr)}set y(I){A.rawvector_set_y(this.ptr,I)}get z(){return A.rawintegrationparameters_erp(this.ptr)}set z(I){A.rawintegrationparameters_set_erp(this.ptr,I)}xyz(){const I=A.rawvector_xyz(this.ptr);return IA.__wrap(I)}yxz(){const I=A.rawvector_yxz(this.ptr);return IA.__wrap(I)}zxy(){const I=A.rawvector_zxy(this.ptr);return IA.__wrap(I)}xzy(){const I=A.rawvector_xzy(this.ptr);return IA.__wrap(I)}yzx(){const I=A.rawvector_yzx(this.ptr);return IA.__wrap(I)}zyx(){const I=A.rawvector_zyx(this.ptr);return IA.__wrap(I)}}async function gA(I){void 0===I&&(I=new URL("rapier_wasm3d_bg.wasm","<deleted>"));const C={wbg:{}};C.wbg.__wbindgen_object_drop_ref=function(A){B(A)},C.wbg.__wbindgen_number_new=function(A){return Q(A)},C.wbg.__wbindgen_number_get=function(A,I){const C=g(I),B="number"==typeof C?C:void 0;D()[A/8+1]=E(B)?0:B,G()[A/4+0]=!E(B)},C.wbg.__wbindgen_boolean_get=function(A){const I=g(A);return"boolean"==typeof I?I?1:0:2},C.wbg.__wbg_rawraycolliderintersection_new=function(A){return Q(V.__wrap(A))},C.wbg.__wbindgen_is_function=function(A){return"function"==typeof g(A)},C.wbg.__wbg_call_3ed288a247f13ea5=function(){return s((function(A,I,C){return Q(g(A).call(g(I),g(C)))}),arguments)},C.wbg.__wbg_call_a19d3173f3e1d3c5=function(){return s((function(A,I,C,B){return Q(g(A).call(g(I),g(C),g(B)))}),arguments)},C.wbg.__wbg_call_6ed7121cfb42cfed=function(){return s((function(A,I,C,B,E){return Q(g(A).call(g(I),g(C),g(B),g(E)))}),arguments)},C.wbg.__wbg_bind_c09a1641c1580c07=function(A,I,C,B){return Q(g(A).bind(g(I),g(C),g(B)))},C.wbg.__wbg_buffer_7af23f65f6c64548=function(A){return Q(g(A).buffer)},C.wbg.__wbg_newwithbyteoffsetandlength_ce1e75f0ce5f7974=function(A,I,C){return Q(new Uint8Array(g(A),I>>>0,C>>>0))},C.wbg.__wbg_new_cc9018bd6f283b6f=function(A){return Q(new Uint8Array(g(A)))},C.wbg.__wbg_set_f25e869e4565d2a2=function(A,I,C){g(A).set(g(I),C>>>0)},C.wbg.__wbg_length_0acb1cf9bbaf8519=function(A){return g(A).length},C.wbg.__wbg_newwithbyteoffsetandlength_3f554978d8793b14=function(A,I,C){return Q(new Float32Array(g(A),I>>>0,C>>>0))},C.wbg.__wbg_set_9a9604c6888f6468=function(A,I,C){g(A).set(g(I),C>>>0)},C.wbg.__wbg_length_371cc1c92aa8feae=function(A){return g(A).length},C.wbg.__wbg_newwithlength_e538258cb2a6bad0=function(A){return Q(new Float32Array(A>>>0))},C.wbg.__wbindgen_throw=function(A,I){throw new Error(k(A,I))},C.wbg.__wbindgen_memory=function(){return Q(A.memory)},("string"==typeof I||"function"==typeof Request&&I instanceof Request||"function"==typeof URL&&I instanceof URL)&&(I=fetch(I));const{instance:i,module:o}=await async function(A,I){if("function"==typeof Response&&A instanceof Response){if("function"==typeof WebAssembly.instantiateStreaming)try{return await WebAssembly.instantiateStreaming(A,I)}catch(I){if("application/wasm"==A.headers.get("Content-Type"))throw I;console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",I)}const g=await A.arrayBuffer();return await WebAssembly.instantiate(g,I)}{const g=await WebAssembly.instantiate(A,I);return g instanceof WebAssembly.Instance?{instance:g,module:A}:g}}(await I,C);return A=i.exports,gA.__wbindgen_wasm_module=o,A}class CA{constructor(A,I,g){this.x=A,this.y=I,this.z=g}}class BA{static new(A,I,g){return new CA(A,I,g)}static intoRaw(A){return new IA(A.x,A.y,A.z)}static zeros(){return BA.new(0,0,0)}static fromRaw(A){if(!A)return null;let I=BA.new(A.x,A.y,A.z);return A.free(),I}}class QA{constructor(A,I,g,C){this.x=A,this.y=I,this.z=g,this.w=C}}class EA{static identity(){return new QA(0,0,0,1)}static fromRaw(A){if(!A)return null;let I=new QA(A.x,A.y,A.z,A.w);return A.free(),I}static intoRaw(A){return new z(A.x,A.y,A.z,A.w)}}var iA,DA,oA,GA,wA,SA,kA,KA,UA,aA;!function(A){A[A.Dynamic=0]="Dynamic",A[A.Fixed=1]="Fixed",A[A.KinematicPositionBased=2]="KinematicPositionBased",A[A.KinematicVelocityBased=3]="KinematicVelocityBased"}(iA||(iA={}));class JA{constructor(A,I,g){this.rawSet=A,this.colliderSet=I,this.handle=g}finalizeDeserialization(A){this.colliderSet=A}isValid(){return this.rawSet.contains(this.handle)}lockTranslations(A,I){return this.rawSet.rbLockTranslations(this.handle,A,I)}lockRotations(A,I){return this.rawSet.rbLockRotations(this.handle,A,I)}restrictTranslations(A,I,g,C){return this.rawSet.rbRestrictTranslations(this.handle,A,I,g,C)}restrictRotations(A,I,g,C){return this.rawSet.rbRestrictRotations(this.handle,A,I,g,C)}dominanceGroup(){return this.rawSet.rbDominanceGroup(this.handle)}setDominanceGroup(A){this.rawSet.rbSetDominanceGroup(this.handle,A)}enableCcd(A){this.rawSet.rbEnableCcd(this.handle,A)}translation(){let A=this.rawSet.rbTranslation(this.handle);return BA.fromRaw(A)}rotation(){let A=this.rawSet.rbRotation(this.handle);return EA.fromRaw(A)}nextTranslation(){let A=this.rawSet.rbNextTranslation(this.handle);return BA.fromRaw(A)}nextRotation(){let A=this.rawSet.rbNextRotation(this.handle);return EA.fromRaw(A)}setTranslation(A,I){this.rawSet.rbSetTranslation(this.handle,A.x,A.y,A.z,I)}setLinvel(A,I){let g=BA.intoRaw(A);this.rawSet.rbSetLinvel(this.handle,g,I),g.free()}gravityScale(){return this.rawSet.rbGravityScale(this.handle)}setGravityScale(A,I){this.rawSet.rbSetGravityScale(this.handle,A,I)}setRotation(A,I){this.rawSet.rbSetRotation(this.handle,A.x,A.y,A.z,A.w,I)}setAngvel(A,I){let g=BA.intoRaw(A);this.rawSet.rbSetAngvel(this.handle,g,I),g.free()}setNextKinematicTranslation(A){this.rawSet.rbSetNextKinematicTranslation(this.handle,A.x,A.y,A.z)}setNextKinematicRotation(A){this.rawSet.rbSetNextKinematicRotation(this.handle,A.x,A.y,A.z,A.w)}linvel(){return BA.fromRaw(this.rawSet.rbLinvel(this.handle))}angvel(){return BA.fromRaw(this.rawSet.rbAngvel(this.handle))}mass(){return this.rawSet.rbMass(this.handle)}sleep(){this.rawSet.rbSleep(this.handle)}wakeUp(){this.rawSet.rbWakeUp(this.handle)}isCcdEnabled(){this.rawSet.rbIsCcdEnabled(this.handle)}numColliders(){return this.rawSet.rbNumColliders(this.handle)}collider(A){return this.colliderSet.get(this.rawSet.rbCollider(this.handle,A))}bodyType(){return this.rawSet.rbBodyType(this.handle)}setBodyType(A){return this.rawSet.rbSetBodyType(this.handle,A)}isSleeping(){return this.rawSet.rbIsSleeping(this.handle)}isMoving(){return this.rawSet.rbIsMoving(this.handle)}isFixed(){return this.rawSet.rbIsFixed(this.handle)}isKinematic(){return this.rawSet.rbIsKinematic(this.handle)}isDynamic(){return this.rawSet.rbIsDynamic(this.handle)}linearDamping(){return this.rawSet.rbLinearDamping(this.handle)}angularDamping(){return this.rawSet.rbAngularDamping(this.handle)}setLinearDamping(A){this.rawSet.rbSetLinearDamping(this.handle,A)}setAngularDamping(A){this.rawSet.rbSetAngularDamping(this.handle,A)}resetForces(A){this.rawSet.rbResetForces(this.handle,A)}resetTorques(A){this.rawSet.rbResetTorques(this.handle,A)}addForce(A,I){const g=BA.intoRaw(A);this.rawSet.rbAddForce(this.handle,g,I),g.free()}applyImpulse(A,I){const g=BA.intoRaw(A);this.rawSet.rbApplyImpulse(this.handle,g,I),g.free()}addTorque(A,I){const g=BA.intoRaw(A);this.rawSet.rbAddTorque(this.handle,g,I),g.free()}applyTorqueImpulse(A,I){const g=BA.intoRaw(A);this.rawSet.rbApplyTorqueImpulse(this.handle,g,I),g.free()}addForceAtPoint(A,I,g){const C=BA.intoRaw(A),B=BA.intoRaw(I);this.rawSet.rbAddForceAtPoint(this.handle,C,B,g),C.free(),B.free()}applyImpulseAtPoint(A,I,g){const C=BA.intoRaw(A),B=BA.intoRaw(I);this.rawSet.rbApplyImpulseAtPoint(this.handle,C,B,g),C.free(),B.free()}}class yA{constructor(A){this.status=A,this.translation=BA.zeros(),this.rotation=EA.identity(),this.gravityScale=1,this.linvel=BA.zeros(),this.mass=0,this.centerOfMass=BA.zeros(),this.translationsEnabledX=!0,this.translationsEnabledY=!0,this.angvel=BA.zeros(),this.principalAngularInertia=BA.zeros(),this.angularInertiaLocalFrame=EA.identity(),this.translationsEnabledZ=!0,this.rotationsEnabledX=!0,this.rotationsEnabledY=!0,this.rotationsEnabledZ=!0,this.linearDamping=0,this.angularDamping=0,this.canSleep=!0,this.sleeping=!1,this.ccdEnabled=!1,this.dominanceGroup=0}static dynamic(){return new yA(iA.Dynamic)}static kinematicPositionBased(){return new yA(iA.KinematicPositionBased)}static kinematicVelocityBased(){return new yA(iA.KinematicVelocityBased)}static fixed(){return new yA(iA.Fixed)}static newDynamic(){return new yA(iA.Dynamic)}static newKinematicPositionBased(){return new yA(iA.KinematicPositionBased)}static newKinematicVelocityBased(){return new yA(iA.KinematicVelocityBased)}static newStatic(){return new yA(iA.Fixed)}setDominanceGroup(A){return this.dominanceGroup=A,this}setTranslation(A,I,g){if("number"!=typeof A||"number"!=typeof I||"number"!=typeof g)throw TypeError("The translation components must be numbers.");return this.translation={x:A,y:I,z:g},this}setRotation(A){return this.rotation=A,this}setGravityScale(A){return this.gravityScale=A,this}setAdditionalMass(A){return this.mass=A,this}setLinvel(A,I,g){if("number"!=typeof A||"number"!=typeof I||"number"!=typeof g)throw TypeError("The linvel components must be numbers.");return this.linvel={x:A,y:I,z:g},this}setAngvel(A){return this.angvel=A,this}setAdditionalMassProperties(A,I,g,C){return this.mass=A,this.centerOfMass=I,this.principalAngularInertia=g,this.angularInertiaLocalFrame=C,this}setAdditionalPrincipalAngularInertia(A){return this.principalAngularInertia=A,this}restrictTranslations(A,I,g){return this.translationsEnabledX=A,this.translationsEnabledY=I,this.translationsEnabledZ=g,this}lockTranslations(){return this.restrictTranslations(!1,!1,!1)}restrictRotations(A,I,g){return this.rotationsEnabledX=A,this.rotationsEnabledY=I,this.rotationsEnabledZ=g,this}lockRotations(){return this.restrictRotations(!1,!1,!1)}setLinearDamping(A){return this.linearDamping=A,this}setAngularDamping(A){return this.angularDamping=A,this}setCanSleep(A){return this.canSleep=A,this}setSleeping(A){return this.sleeping=A,this}setCcdEnabled(A){return this.ccdEnabled=A,this}setUserData(A){return this.userData=A,this}}class hA{constructor(){this.fconv=new Float64Array(1),this.uconv=new Uint32Array(this.fconv.buffer),this.data=new Array,this.size=0}set(A,I){let g=this.index(A);for(;this.data.length<=g;)this.data.push(null);null==this.data[g]&&(this.size+=1),this.data[g]=I}len(){return this.size}delete(A){let I=this.index(A);I<this.data.length&&(null!=this.data[I]&&(this.size-=1),this.data[I]=null)}clear(){this.data=new Array}get(A){let I=this.index(A);return I<this.data.length?this.data[I]:null}forEach(A){for(const I of this.data)null!=I&&A(I)}getAll(){return this.data.filter((A=>null!=A))}index(A){return this.fconv[0]=A,this.uconv[0]}}class NA{constructor(A){this.raw=A||new X,this.map=new hA,A&&A.forEachRigidBodyHandle((I=>{this.map.set(I,new JA(A,null,I))}))}free(){this.raw.free(),this.raw=void 0,this.map.clear(),this.map=void 0}finalizeDeserialization(A){this.map.forEach((I=>I.finalizeDeserialization(A)))}createRigidBody(A,I){let g=BA.intoRaw(I.translation),C=EA.intoRaw(I.rotation),B=BA.intoRaw(I.linvel),Q=BA.intoRaw(I.centerOfMass),E=BA.intoRaw(I.angvel),i=BA.intoRaw(I.principalAngularInertia),D=EA.intoRaw(I.angularInertiaLocalFrame),o=this.raw.createRigidBody(g,C,I.gravityScale,I.mass,Q,B,E,i,D,I.translationsEnabledX,I.translationsEnabledY,I.translationsEnabledZ,I.rotationsEnabledX,I.rotationsEnabledY,I.rotationsEnabledZ,I.linearDamping,I.angularDamping,I.status,I.canSleep,I.sleeping,I.ccdEnabled,I.dominanceGroup);g.free(),C.free(),B.free(),Q.free(),E.free(),i.free(),D.free();const G=new JA(this.raw,A,o);return G.userData=I.userData,this.map.set(o,G),G}remove(A,I,g,C,B){for(let I=0;I<this.raw.rbNumColliders(A);I+=1)g.unmap(this.raw.rbCollider(A,I));C.forEachJointHandleAttachedToRigidBody(A,(A=>C.unmap(A))),B.forEachJointHandleAttachedToRigidBody(A,(A=>B.unmap(A))),this.raw.remove(A,I.raw,g.raw,C.raw,B.raw),this.map.delete(A)}len(){return this.map.len()}contains(A){return null!=this.get(A)}get(A){return this.map.get(A)}forEach(A){this.map.forEach(A)}forEachActiveRigidBody(A,I){A.forEachActiveRigidBodyHandle((A=>{I(this.get(A))}))}getAll(){return this.map.getAll()}}class MA{constructor(A){this.raw=A||new d}free(){this.raw.free(),this.raw=void 0}get dt(){return this.raw.dt}get erp(){return this.raw.erp}get allowedLinearError(){return this.raw.allowedLinearError}get predictionDistance(){return this.raw.predictionDistance}get maxVelocityIterations(){return this.raw.maxVelocityIterations}get maxVelocityFrictionIterations(){return this.raw.maxVelocityFrictionIterations}get maxStabilizationIterations(){return this.raw.maxStabilizationIterations}get minIslandSize(){return this.raw.minIslandSize}get maxCcdSubsteps(){return this.raw.maxCcdSubsteps}set dt(A){this.raw.dt=A}set erp(A){this.raw.erp=A}set allowedLinearError(A){this.raw.allowedLinearError=A}set predictionDistance(A){this.raw.predictionDistance=A}set maxVelocityIterations(A){this.raw.maxVelocityIterations=A}set maxVelocityFrictionIterations(A){this.raw.maxVelocityFrictionIterations=A}set maxStabilizationIterations(A){this.raw.maxStabilizationIterations=A}set minIslandSize(A){this.raw.minIslandSize=A}set maxCcdSubsteps(A){this.raw.maxCcdSubsteps=A}}!function(A){A[A.Revolute=0]="Revolute",A[A.Fixed=1]="Fixed",A[A.Prismatic=2]="Prismatic",A[A.Spherical=3]="Spherical"}(DA||(DA={})),function(A){A[A.AccelerationBased=0]="AccelerationBased",A[A.ForceBased=1]="ForceBased"}(oA||(oA={}));class FA{constructor(A,I,g){this.rawSet=A,this.bodySet=I,this.handle=g}static newTyped(A,I,g){switch(A.jointType(g)){case DA.Revolute:return new cA(A,I,g);case DA.Prismatic:return new sA(A,I,g);case DA.Fixed:return new qA(A,I,g);case DA.Spherical:return new YA(A,I,g);default:return new FA(A,I,g)}}finalizeDeserialization(A){this.bodySet=A}isValid(){return this.rawSet.contains(this.handle)}body1(){return this.bodySet.get(this.rawSet.jointBodyHandle1(this.handle))}body2(){return this.bodySet.get(this.rawSet.jointBodyHandle2(this.handle))}type(){return this.rawSet.jointType(this.handle)}frameX1(){return EA.fromRaw(this.rawSet.jointFrameX1(this.handle))}frameX2(){return EA.fromRaw(this.rawSet.jointFrameX2(this.handle))}anchor1(){return BA.fromRaw(this.rawSet.jointAnchor1(this.handle))}anchor2(){return BA.fromRaw(this.rawSet.jointAnchor2(this.handle))}}class RA extends FA{limitsEnabled(){return this.rawSet.jointLimitsEnabled(this.handle,this.rawAxis())}limitsMin(){return this.rawSet.jointLimitsMin(this.handle,this.rawAxis())}limitsMax(){return this.rawSet.jointLimitsMax(this.handle,this.rawAxis())}configureMotorModel(A){this.rawSet.jointConfigureMotorModel(this.handle,this.rawAxis(),A)}configureMotorVelocity(A,I){this.rawSet.jointConfigureMotorVelocity(this.handle,this.rawAxis(),A,I)}configureMotorPosition(A,I,g){this.rawSet.jointConfigureMotorPosition(this.handle,this.rawAxis(),A,I,g)}configureMotor(A,I,g,C){this.rawSet.jointConfigureMotor(this.handle,this.rawAxis(),A,I,g,C)}}class qA extends FA{}class sA extends RA{rawAxis(){return c.X}}class cA extends RA{rawAxis(){return c.AngX}}class YA extends FA{}class LA{constructor(){}static fixed(A,I,g,C){let B=new LA;return B.anchor1=A,B.anchor2=g,B.frame1=I,B.frame2=C,B.jointType=DA.Fixed,B}static spherical(A,I){let g=new LA;return g.anchor1=A,g.anchor2=I,g.jointType=DA.Spherical,g}static prismatic(A,I,g){let C=new LA;return C.anchor1=A,C.anchor2=I,C.axis=g,C.jointType=DA.Prismatic,C}static revolute(A,I,g){let C=new LA;return C.anchor1=A,C.anchor2=I,C.axis=g,C.jointType=DA.Revolute,C}intoRaw(){let A,I,g=BA.intoRaw(this.anchor1),C=BA.intoRaw(this.anchor2),B=!1,Q=0,E=0;switch(this.jointType){case DA.Fixed:let i=EA.intoRaw(this.frame1),D=EA.intoRaw(this.frame2);I=O.fixed(g,i,C,D),i.free(),D.free();break;case DA.Prismatic:A=BA.intoRaw(this.axis),this.limitsEnabled&&(B=!0,Q=this.limits[0],E=this.limits[1]),I=O.prismatic(g,C,A,B,Q,E),A.free();break;case DA.Spherical:I=O.spherical(g,C);break;case DA.Revolute:A=BA.intoRaw(this.axis),I=O.revolute(g,C,A),A.free()}return g.free(),C.free(),I}}class HA{constructor(A){this.raw=A||new e,this.map=new hA,A&&A.forEachJointHandle((I=>{this.map.set(I,FA.newTyped(A,null,I))}))}free(){this.raw.free(),this.raw=void 0,this.map.clear(),this.map=void 0}finalizeDeserialization(A){this.map.forEach((I=>I.finalizeDeserialization(A)))}createJoint(A,I,g,C,B){const Q=I.intoRaw(),E=this.raw.createJoint(Q,g,C,B);Q.free();let i=FA.newTyped(this.raw,A,E);return this.map.set(E,i),i}remove(A,I){this.raw.remove(A,I),this.unmap(A)}forEachJointHandleAttachedToRigidBody(A,I){this.raw.forEachJointAttachedToRigidBody(A,I)}unmap(A){this.map.delete(A)}len(){return this.map.len()}contains(A){return null!=this.get(A)}get(A){return this.map.get(A)}forEach(A){this.map.forEach(A)}getAll(){return this.map.getAll()}}class lA{constructor(A,I){this.rawSet=A,this.handle=I}static newTyped(A,I){switch(A.jointType(I)){case DA.Revolute:return new TA(A,I);case DA.Prismatic:return new rA(A,I);case DA.Fixed:return new tA(A,I);case DA.Spherical:return new OA(A,I);default:return new lA(A,I)}}isValid(){return this.rawSet.contains(this.handle)}}class pA extends lA{}class tA extends lA{}class rA extends pA{rawAxis(){return c.X}}class TA extends pA{rawAxis(){return c.AngX}}class OA extends lA{}class eA{constructor(A){this.raw=A||new Z,this.map=new hA,A&&A.forEachJointHandle((A=>{this.map.set(A,lA.newTyped(this.raw,A))}))}free(){this.raw.free(),this.raw=void 0,this.map.clear(),this.map=void 0}createJoint(A,I,g,C){const B=A.intoRaw(),Q=this.raw.createJoint(B,I,g,C);B.free();let E=lA.newTyped(this.raw,Q);return this.map.set(Q,E),E}remove(A,I){this.raw.remove(A,I),this.map.delete(A)}unmap(A){this.map.delete(A)}len(){return this.map.len()}contains(A){return null!=this.get(A)}get(A){return this.map.get(A)}forEach(A){this.map.forEach(A)}forEachJointHandleAttachedToRigidBody(A,I){this.raw.forEachJointAttachedToRigidBody(A,I)}getAll(){return this.map.getAll()}}!function(A){A[A.Average=0]="Average",A[A.Min=1]="Min",A[A.Multiply=2]="Multiply",A[A.Max=3]="Max"}(GA||(GA={}));class dA{constructor(A){this.raw=A||new L}free(){this.raw.free(),this.raw=void 0}}class nA{constructor(A){this.raw=A||new n}free(){this.raw.free(),this.raw=void 0}forEachActiveRigidBodyHandle(A){this.raw.forEachActiveRigidBodyHandle(A)}}class ZA{constructor(A){this.raw=A||new Y}free(){this.raw.free(),this.raw=void 0}}class WA{constructor(A){this.raw=A||new W,this.tempManifold=new xA(null)}free(){this.raw.free(),this.raw=void 0}contactsWith(A,I){this.raw.contacts_with(A,I)}intersectionsWith(A,I){this.raw.intersections_with(A,I)}contactPair(A,I,g){const C=this.raw.contact_pair(A,I);if(C){const I=C.collider1()!=A;let B;for(B=0;B<C.numContactManifolds();++B)this.tempManifold.raw=C.contactManifold(B),this.tempManifold.raw&&g(this.tempManifold,I),this.tempManifold.free();C.free()}}intersectionPair(A,I){return this.raw.intersection_pair(A,I)}}class xA{constructor(A){this.raw=A}free(){this.raw.free(),this.raw=void 0}normal(){return BA.fromRaw(this.raw.normal())}localNormal1(){return BA.fromRaw(this.raw.local_n1())}localNormal2(){return BA.fromRaw(this.raw.local_n2())}subshape1(){return this.raw.subshape1()}subshape2(){return this.raw.subshape2()}numContacts(){return this.raw.num_contacts()}localContactPoint1(A){return BA.fromRaw(this.raw.contact_local_p1(A))}localContactPoint2(A){return BA.fromRaw(this.raw.contact_local_p2(A))}contactDist(A){return this.raw.contact_dist(A)}contactFid1(A){return this.raw.contact_fid1(A)}contactFid2(A){return this.raw.contact_fid2(A)}contactImpulse(A){return this.raw.contact_impulse(A)}contactTangentImpulseX(A){return this.raw.contact_tangent_impulse_x(A)}contactTangentImpulseY(A){return this.raw.contact_tangent_impulse_y(A)}numSolverContacts(){return this.raw.num_solver_contacts()}solverContactPoint(A){return BA.fromRaw(this.raw.solver_contact_point(A))}solverContactDist(A){return this.raw.solver_contact_dist(A)}solverContactFriction(A){return this.raw.solver_contact_friction(A)}solverContactRestitution(A){return this.raw.solver_contact_restitution(A)}solverContactTangentVelocity(A){return BA.fromRaw(this.raw.solver_contact_tangent_velocity(A))}}class jA{constructor(A,I,g,C,B){this.distance=A,this.point1=I,this.point2=g,this.normal1=C,this.normal2=B}static fromRaw(A){if(!A)return null;const I=new jA(A.distance(),BA.fromRaw(A.point1()),BA.fromRaw(A.point2()),BA.fromRaw(A.normal1()),BA.fromRaw(A.normal2()));return A.free(),I}}!function(A){A[A.Vertex=0]="Vertex",A[A.Edge=1]="Edge",A[A.Face=2]="Face",A[A.Unknown=3]="Unknown"}(wA||(wA={}));class bA{constructor(A,I){this.point=A,this.isInside=I}static fromRaw(A){if(!A)return null;const I=new bA(BA.fromRaw(A.point()),A.isInside());return A.free(),I}}class fA{constructor(A,I,g,C,B){this.featureType=wA.Unknown,this.featureId=void 0,this.collider=A,this.point=I,this.isInside=g,void 0!==B&&(this.featureId=B),void 0!==C&&(this.featureType=C)}static fromRaw(A,I){if(!I)return null;const g=new fA(A.get(I.colliderHandle()),BA.fromRaw(I.point()),I.isInside(),I.featureType(),I.featureId());return I.free(),g}}class VA{constructor(A,I){this.origin=A,this.dir=I}pointAt(A){return{x:this.origin.x+this.dir.x*A,y:this.origin.y+this.dir.y*A,z:this.origin.z+this.dir.z*A}}}class PA{constructor(A,I,g,C){this.featureType=wA.Unknown,this.featureId=void 0,this.toi=A,this.normal=I,void 0!==C&&(this.featureId=C),void 0!==g&&(this.featureType=g)}static fromRaw(A){if(!A)return null;const I=new PA(A.toi(),BA.fromRaw(A.normal()),A.featureType(),A.featureId());return A.free(),I}}class mA{constructor(A,I,g,C,B){this.featureType=wA.Unknown,this.featureId=void 0,this.collider=A,this.toi=I,this.normal=g,void 0!==B&&(this.featureId=B),void 0!==C&&(this.featureType=C)}static fromRaw(A,I){if(!I)return null;const g=new mA(A.get(I.colliderHandle()),I.toi(),BA.fromRaw(I.normal()),I.featureType(),I.featureId());return I.free(),g}}class XA{constructor(A,I){this.collider=A,this.toi=I}static fromRaw(A,I){if(!I)return null;const g=new XA(A.get(I.colliderHandle()),I.toi());return I.free(),g}}class zA{constructor(A,I,g,C,B){this.toi=A,this.witness1=I,this.witness2=g,this.normal1=C,this.normal2=B}static fromRaw(A,I){if(!I)return null;const g=new zA(I.toi(),BA.fromRaw(I.witness1()),BA.fromRaw(I.witness2()),BA.fromRaw(I.normal1()),BA.fromRaw(I.normal2()));return I.free(),g}}class uA extends zA{constructor(A,I,g,C,B,Q){super(I,g,C,B,Q),this.collider=A}static fromRaw(A,I){if(!I)return null;const g=new uA(A.get(I.colliderHandle()),I.toi(),BA.fromRaw(I.witness1()),BA.fromRaw(I.witness2()),BA.fromRaw(I.normal1()),BA.fromRaw(I.normal2()));return I.free(),g}}class vA{static fromRaw(A,I){const g=A.coShapeType(I);let C,B,Q,E,i,D;switch(g){case SA.Ball:return new _A(A.coRadius(I));case SA.Cuboid:return C=A.coHalfExtents(I),new $A(C.x,C.y,C.z);case SA.RoundCuboid:return C=A.coHalfExtents(I),B=A.coRoundRadius(I),new AI(C.x,C.y,C.z,B);case SA.Capsule:return i=A.coHalfHeight(I),D=A.coRadius(I),new II(i,D);case SA.Segment:return Q=A.coVertices(I),new gI(BA.new(Q[0],Q[1],Q[2]),BA.new(Q[3],Q[4],Q[5]));case SA.Polyline:return Q=A.coVertices(I),E=A.coIndices(I),new QI(Q,E);case SA.Triangle:return Q=A.coVertices(I),new CI(BA.new(Q[0],Q[1],Q[2]),BA.new(Q[3],Q[4],Q[5]),BA.new(Q[6],Q[7],Q[8]));case SA.RoundTriangle:return Q=A.coVertices(I),B=A.coRoundRadius(I),new BI(BA.new(Q[0],Q[1],Q[2]),BA.new(Q[3],Q[4],Q[5]),BA.new(Q[6],Q[7],Q[8]),B);case SA.TriMesh:return Q=A.coVertices(I),E=A.coIndices(I),new EI(Q,E);case SA.HeightField:const o=A.coHeightfieldScale(I),G=A.coHeightfieldHeights(I),w=A.coHeightfieldNRows(I),S=A.coHeightfieldNCols(I);return new oI(w,S,G,o);case SA.ConvexPolyhedron:return Q=A.coVertices(I),E=A.coIndices(I),new iI(Q,E);case SA.RoundConvexPolyhedron:return Q=A.coVertices(I),E=A.coIndices(I),B=A.coRoundRadius(I),new DI(Q,E,B);case SA.Cylinder:return i=A.coHalfHeight(I),D=A.coRadius(I),new GI(i,D);case SA.RoundCylinder:return i=A.coHalfHeight(I),D=A.coRadius(I),B=A.coRoundRadius(I),new wI(i,D,B);case SA.Cone:return i=A.coHalfHeight(I),D=A.coRadius(I),new SI(i,D);case SA.RoundCone:return i=A.coHalfHeight(I),D=A.coRadius(I),B=A.coRoundRadius(I),new kI(i,D,B);default:throw new Error("unknown shape type: "+g)}}castShape(A,I,g,C,B,Q,E,i){let D=BA.intoRaw(A),o=EA.intoRaw(I),G=BA.intoRaw(g),w=BA.intoRaw(B),S=EA.intoRaw(Q),k=BA.intoRaw(E),K=this.intoRaw(),U=C.intoRaw(),a=zA.fromRaw(null,K.castShape(D,o,G,U,w,S,k,i));return D.free(),o.free(),G.free(),w.free(),S.free(),k.free(),K.free(),U.free(),a}intersectsShape(A,I,g,C,B){let Q=BA.intoRaw(A),E=EA.intoRaw(I),i=BA.intoRaw(C),D=EA.intoRaw(B),o=this.intoRaw(),G=g.intoRaw(),w=o.intersectsShape(Q,E,G,i,D);return Q.free(),E.free(),i.free(),D.free(),o.free(),G.free(),w}contactShape(A,I,g,C,B,Q){let E=BA.intoRaw(A),i=EA.intoRaw(I),D=BA.intoRaw(C),o=EA.intoRaw(B),G=this.intoRaw(),w=g.intoRaw(),S=jA.fromRaw(G.contactShape(E,i,w,D,o,Q));return E.free(),i.free(),D.free(),o.free(),G.free(),w.free(),S}containsPoint(A,I,g){let C=BA.intoRaw(A),B=EA.intoRaw(I),Q=BA.intoRaw(g),E=this.intoRaw(),i=E.containsPoint(C,B,Q);return C.free(),B.free(),Q.free(),E.free(),i}projectPoint(A,I,g,C){let B=BA.intoRaw(A),Q=EA.intoRaw(I),E=BA.intoRaw(g),i=this.intoRaw(),D=bA.fromRaw(i.projectPoint(B,Q,E,C));return B.free(),Q.free(),E.free(),i.free(),D}intersectsRay(A,I,g,C){let B=BA.intoRaw(I),Q=EA.intoRaw(g),E=BA.intoRaw(A.origin),i=BA.intoRaw(A.dir),D=this.intoRaw(),o=D.intersectsRay(B,Q,E,i,C);return B.free(),Q.free(),E.free(),i.free(),D.free(),o}castRay(A,I,g,C,B){let Q=BA.intoRaw(I),E=EA.intoRaw(g),i=BA.intoRaw(A.origin),D=BA.intoRaw(A.dir),o=this.intoRaw(),G=o.castRay(Q,E,i,D,C,B);return Q.free(),E.free(),i.free(),D.free(),o.free(),G}castRayAndGetNormal(A,I,g,C,B){let Q=BA.intoRaw(I),E=EA.intoRaw(g),i=BA.intoRaw(A.origin),D=BA.intoRaw(A.dir),o=this.intoRaw(),G=PA.fromRaw(o.castRayAndGetNormal(Q,E,i,D,C,B));return Q.free(),E.free(),i.free(),D.free(),o.free(),G}}!function(A){A[A.Ball=0]="Ball",A[A.Cuboid=1]="Cuboid",A[A.Capsule=2]="Capsule",A[A.Segment=3]="Segment",A[A.Polyline=4]="Polyline",A[A.Triangle=5]="Triangle",A[A.TriMesh=6]="TriMesh",A[A.HeightField=7]="HeightField",A[A.ConvexPolyhedron=9]="ConvexPolyhedron",A[A.Cylinder=10]="Cylinder",A[A.Cone=11]="Cone",A[A.RoundCuboid=12]="RoundCuboid",A[A.RoundTriangle=13]="RoundTriangle",A[A.RoundCylinder=14]="RoundCylinder",A[A.RoundCone=15]="RoundCone",A[A.RoundConvexPolyhedron=16]="RoundConvexPolyhedron"}(SA||(SA={}));class _A extends vA{constructor(A){super(),this.type=SA.Ball,this.radius=A}intoRaw(){return v.ball(this.radius)}}class $A extends vA{constructor(A,I,g){super(),this.type=SA.Cuboid,this.halfExtents=BA.new(A,I,g)}intoRaw(){return v.cuboid(this.halfExtents.x,this.halfExtents.y,this.halfExtents.z)}}class AI extends vA{constructor(A,I,g,C){super(),this.type=SA.RoundCuboid,this.halfExtents=BA.new(A,I,g),this.borderRadius=C}intoRaw(){return v.roundCuboid(this.halfExtents.x,this.halfExtents.y,this.halfExtents.z,this.borderRadius)}}class II extends vA{constructor(A,I){super(),this.type=SA.Capsule,this.halfHeight=A,this.radius=I}intoRaw(){return v.capsule(this.halfHeight,this.radius)}}class gI extends vA{constructor(A,I){super(),this.type=SA.Segment,this.a=A,this.b=I}intoRaw(){let A=BA.intoRaw(this.a),I=BA.intoRaw(this.b),g=v.segment(A,I);return A.free(),I.free(),g}}class CI extends vA{constructor(A,I,g){super(),this.type=SA.Triangle,this.a=A,this.b=I,this.c=g}intoRaw(){let A=BA.intoRaw(this.a),I=BA.intoRaw(this.b),g=BA.intoRaw(this.c),C=v.triangle(A,I,g);return A.free(),I.free(),g.free(),C}}class BI extends vA{constructor(A,I,g,C){super(),this.type=SA.RoundTriangle,this.a=A,this.b=I,this.c=g,this.borderRadius=C}intoRaw(){let A=BA.intoRaw(this.a),I=BA.intoRaw(this.b),g=BA.intoRaw(this.c),C=v.roundTriangle(A,I,g,this.borderRadius);return A.free(),I.free(),g.free(),C}}class QI extends vA{constructor(A,I){super(),this.type=SA.Polyline,this.vertices=A,this.indices=null!=I?I:new Uint32Array(0)}intoRaw(){return v.polyline(this.vertices,this.indices)}}class EI extends vA{constructor(A,I){super(),this.type=SA.TriMesh,this.vertices=A,this.indices=I}intoRaw(){return v.trimesh(this.vertices,this.indices)}}class iI extends vA{constructor(A,I){super(),this.type=SA.ConvexPolyhedron,this.vertices=A,this.indices=I}intoRaw(){return this.indices?v.convexMesh(this.vertices,this.indices):v.convexHull(this.vertices)}}class DI extends vA{constructor(A,I,g){super(),this.type=SA.RoundConvexPolyhedron,this.vertices=A,this.indices=I,this.borderRadius=g}intoRaw(){return this.indices?v.roundConvexMesh(this.vertices,this.indices,this.borderRadius):v.roundConvexHull(this.vertices,this.borderRadius)}}class oI extends vA{constructor(A,I,g,C){super(),this.type=SA.HeightField,this.nrows=A,this.ncols=I,this.heights=g,this.scale=C}intoRaw(){let A=BA.intoRaw(this.scale),I=v.heightfield(this.nrows,this.ncols,this.heights,A);return A.free(),I}}class GI extends vA{constructor(A,I){super(),this.type=SA.Cylinder,this.halfHeight=A,this.radius=I}intoRaw(){return v.cylinder(this.halfHeight,this.radius)}}class wI extends vA{constructor(A,I,g){super(),this.type=SA.RoundCylinder,this.borderRadius=g,this.halfHeight=A,this.radius=I}intoRaw(){return v.roundCylinder(this.halfHeight,this.radius,this.borderRadius)}}class SI extends vA{constructor(A,I){super(),this.type=SA.Cone,this.halfHeight=A,this.radius=I}intoRaw(){return v.cone(this.halfHeight,this.radius)}}class kI extends vA{constructor(A,I,g){super(),this.type=SA.RoundCone,this.halfHeight=A,this.radius=I,this.borderRadius=g}intoRaw(){return v.roundCone(this.halfHeight,this.radius,this.borderRadius)}}!function(A){A[A.DYNAMIC_DYNAMIC=1]="DYNAMIC_DYNAMIC",A[A.DYNAMIC_KINEMATIC=12]="DYNAMIC_KINEMATIC",A[A.DYNAMIC_FIXED=2]="DYNAMIC_FIXED",A[A.KINEMATIC_KINEMATIC=52224]="KINEMATIC_KINEMATIC",A[A.KINEMATIC_FIXED=8704]="KINEMATIC_FIXED",A[A.FIXED_FIXED=32]="FIXED_FIXED",A[A.DEFAULT=15]="DEFAULT",A[A.ALL=60943]="ALL"}(kA||(kA={}));class KI{constructor(A,I,g,C){this.colliderSet=A,this.handle=I,this._parent=g,this._shape=C}finalizeDeserialization(A){null!=this.handle&&(this._parent=A.get(this.colliderSet.raw.coParent(this.handle)))}ensureShapeIsCached(){this._shape||(this._shape=vA.fromRaw(this.colliderSet.raw,this.handle))}get shape(){return this.ensureShapeIsCached(),this._shape}isValid(){return this.colliderSet.raw.contains(this.handle)}translation(){return BA.fromRaw(this.colliderSet.raw.coTranslation(this.handle))}rotation(){return EA.fromRaw(this.colliderSet.raw.coRotation(this.handle))}isSensor(){return this.colliderSet.raw.coIsSensor(this.handle)}setSensor(A){this.colliderSet.raw.coSetSensor(this.handle,A)}setShape(A){let I=A.intoRaw();this.colliderSet.raw.coSetShape(this.handle,I),I.free(),this._shape=A}setRestitution(A){this.colliderSet.raw.coSetRestitution(this.handle,A)}setFriction(A){this.colliderSet.raw.coSetFriction(this.handle,A)}frictionCombineRule(){return this.colliderSet.raw.coFrictionCombineRule(this.handle)}setFrictionCombineRule(A){this.colliderSet.raw.coSetFrictionCombineRule(this.handle,A)}restitutionCombineRule(){return this.colliderSet.raw.coRestitutionCombineRule(this.handle)}setRestitutionCombineRule(A){this.colliderSet.raw.coSetRestitutionCombineRule(this.handle,A)}setCollisionGroups(A){this.colliderSet.raw.coSetCollisionGroups(this.handle,A)}setSolverGroups(A){this.colliderSet.raw.coSetSolverGroups(this.handle,A)}activeHooks(){return this.colliderSet.raw.coActiveHooks(this.handle)}setActiveHooks(A){this.colliderSet.raw.coSetActiveHooks(this.handle,A)}activeEvents(){return this.colliderSet.raw.coActiveEvents(this.handle)}setActiveEvents(A){this.colliderSet.raw.coSetActiveEvents(this.handle,A)}activeCollisionTypes(){return this.colliderSet.raw.coActiveCollisionTypes(this.handle)}setActiveCollisionTypes(A){this.colliderSet.raw.coSetActiveCollisionTypes(this.handle,A)}setTranslation(A){this.colliderSet.raw.coSetTranslation(this.handle,A.x,A.y,A.z)}setTranslationWrtParent(A){this.colliderSet.raw.coSetTranslationWrtParent(this.handle,A.x,A.y,A.z)}setRotation(A){this.colliderSet.raw.coSetRotation(this.handle,A.x,A.y,A.z,A.w)}setRotationWrtParent(A){this.colliderSet.raw.coSetRotationWrtParent(this.handle,A.x,A.y,A.z,A.w)}shapeType(){return this.colliderSet.raw.coShapeType(this.handle)}halfExtents(){return BA.fromRaw(this.colliderSet.raw.coHalfExtents(this.handle))}radius(){return this.colliderSet.raw.coRadius(this.handle)}roundRadius(){return this.colliderSet.raw.coRoundRadius(this.handle)}halfHeight(){return this.colliderSet.raw.coHalfHeight(this.handle)}vertices(){return this.colliderSet.raw.coVertices(this.handle)}indices(){return this.colliderSet.raw.coIndices(this.handle)}heightfieldHeights(){return this.colliderSet.raw.coHeightfieldHeights(this.handle)}heightfieldScale(){let A=this.colliderSet.raw.coHeightfieldScale(this.handle);return BA.fromRaw(A)}heightfieldNRows(){return this.colliderSet.raw.coHeightfieldNRows(this.handle)}heightfieldNCols(){return this.colliderSet.raw.coHeightfieldNCols(this.handle)}parent(){return this._parent}friction(){return this.colliderSet.raw.coFriction(this.handle)}restitution(){return this.colliderSet.raw.coRestitution(this.handle)}density(){return this.colliderSet.raw.coDensity(this.handle)}collisionGroups(){return this.colliderSet.raw.coCollisionGroups(this.handle)}solverGroups(){return this.colliderSet.raw.coSolverGroups(this.handle)}containsPoint(A){let I=BA.intoRaw(A),g=this.colliderSet.raw.coContainsPoint(this.handle,I);return I.free(),g}projectPoint(A,I){let g=BA.intoRaw(A),C=bA.fromRaw(this.colliderSet.raw.coProjectPoint(this.handle,g,I));return g.free(),C}intersectsRay(A,I){let g=BA.intoRaw(A.origin),C=BA.intoRaw(A.dir),B=this.colliderSet.raw.coIntersectsRay(this.handle,g,C,I);return g.free(),C.free(),B}castShape(A,I,g,C,B,Q){let E=BA.intoRaw(A),i=BA.intoRaw(g),D=EA.intoRaw(C),o=BA.intoRaw(B),G=I.intoRaw(),w=zA.fromRaw(this.colliderSet,this.colliderSet.raw.coCastShape(this.handle,E,G,i,D,o,Q));return E.free(),i.free(),D.free(),o.free(),G.free(),w}castCollider(A,I,g,C){let B=BA.intoRaw(A),Q=BA.intoRaw(g),E=uA.fromRaw(this.colliderSet,this.colliderSet.raw.coCastCollider(this.handle,B,I.handle,Q,C));return B.free(),Q.free(),E}intersectsShape(A,I,g){let C=BA.intoRaw(I),B=EA.intoRaw(g),Q=A.intoRaw(),E=this.colliderSet.raw.coIntersectsShape(this.handle,Q,C,B);return C.free(),B.free(),Q.free(),E}contactShape(A,I,g,C){let B=BA.intoRaw(I),Q=EA.intoRaw(g),E=A.intoRaw(),i=jA.fromRaw(this.colliderSet.raw.coContactShape(this.handle,E,B,Q,C));return B.free(),Q.free(),E.free(),i}contactCollider(A,I){return jA.fromRaw(this.colliderSet.raw.coContactCollider(this.handle,A.handle,I))}castRay(A,I,g){let C=BA.intoRaw(A.origin),B=BA.intoRaw(A.dir),Q=this.colliderSet.raw.coCastRay(this.handle,C,B,I,g);return C.free(),B.free(),Q}castRayAndGetNormal(A,I,g){let C=BA.intoRaw(A.origin),B=BA.intoRaw(A.dir),Q=PA.fromRaw(this.colliderSet.raw.coCastRayAndGetNormal(this.handle,C,B,I,g));return C.free(),B.free(),Q}}class UI{constructor(A){this.shape=A,this.useMassProps=!1,this.density=1,this.friction=.5,this.restitution=0,this.rotation=EA.identity(),this.translation=BA.zeros(),this.isSensor=!1,this.collisionGroups=4294967295,this.solverGroups=4294967295,this.frictionCombineRule=GA.Average,this.restitutionCombineRule=GA.Average,this.activeCollisionTypes=kA.DEFAULT,this.activeEvents=0,this.activeHooks=0,this.mass=0,this.centerOfMass=BA.zeros(),this.principalAngularInertia=BA.zeros(),this.angularInertiaLocalFrame=EA.identity()}static ball(A){const I=new _A(A);return new UI(I)}static capsule(A,I){const g=new II(A,I);return new UI(g)}static segment(A,I){const g=new gI(A,I);return new UI(g)}static triangle(A,I,g){const C=new CI(A,I,g);return new UI(C)}static roundTriangle(A,I,g,C){const B=new BI(A,I,g,C);return new UI(B)}static polyline(A,I){const g=new QI(A,I);return new UI(g)}static trimesh(A,I){const g=new EI(A,I);return new UI(g)}static cuboid(A,I,g){const C=new $A(A,I,g);return new UI(C)}static roundCuboid(A,I,g,C){const B=new AI(A,I,g,C);return new UI(B)}static heightfield(A,I,g,C){const B=new oI(A,I,g,C);return new UI(B)}static cylinder(A,I){const g=new GI(A,I);return new UI(g)}static roundCylinder(A,I,g){const C=new wI(A,I,g);return new UI(C)}static cone(A,I){const g=new SI(A,I);return new UI(g)}static roundCone(A,I,g){const C=new kI(A,I,g);return new UI(C)}static convexHull(A){const I=new iI(A,null);return new UI(I)}static convexMesh(A,I){const g=new iI(A,I);return new UI(g)}static roundConvexHull(A,I){const g=new DI(A,null,I);return new UI(g)}static roundConvexMesh(A,I,g){const C=new DI(A,I,g);return new UI(C)}setTranslation(A,I,g){if("number"!=typeof A||"number"!=typeof I||"number"!=typeof g)throw TypeError("The translation components must be numbers.");return this.translation={x:A,y:I,z:g},this}setRotation(A){return this.rotation=A,this}setSensor(A){return this.isSensor=A,this}setDensity(A){return this.useMassProps=!1,this.density=A,this}setMassProperties(A,I,g,C){return this.useMassProps=!0,this.mass=A,this.centerOfMass=I,this.principalAngularInertia=g,this.angularInertiaLocalFrame=C,this}setRestitution(A){return this.restitution=A,this}setFriction(A){return this.friction=A,this}setFrictionCombineRule(A){return this.frictionCombineRule=A,this}setRestitutionCombineRule(A){return this.restitutionCombineRule=A,this}setCollisionGroups(A){return this.collisionGroups=A,this}setSolverGroups(A){return this.solverGroups=A,this}setActiveHooks(A){return this.activeHooks=A,this}setActiveEvents(A){return this.activeEvents=A,this}setActiveCollisionTypes(A){return this.activeCollisionTypes=A,this}}class aI{constructor(A){this.raw=A||new H,this.map=new hA,A&&A.forEachColliderHandle((A=>{this.map.set(A,new KI(this,A,null))}))}free(){this.raw.free(),this.raw=void 0,this.map.clear(),this.map=void 0}finalizeDeserialization(A){this.map.forEach((I=>I.finalizeDeserialization(A)))}createCollider(A,I,g){let C=null!=g&&null!=g;if(C&&isNaN(g))throw Error("Cannot create a collider with a parent rigid-body handle that is not a number.");let B=I.shape.intoRaw(),Q=BA.intoRaw(I.translation),E=EA.intoRaw(I.rotation),i=BA.intoRaw(I.centerOfMass),D=BA.intoRaw(I.principalAngularInertia),o=EA.intoRaw(I.angularInertiaLocalFrame),G=this.raw.createCollider(B,Q,E,I.useMassProps,I.mass,i,D,o,I.density,I.friction,I.restitution,I.frictionCombineRule,I.restitutionCombineRule,I.isSensor,I.collisionGroups,I.solverGroups,I.activeCollisionTypes,I.activeHooks,I.activeEvents,C,C?g:0,A.raw);B.free(),Q.free(),E.free(),i.free(),D.free(),o.free();let w=C?A.get(g):null,S=new KI(this,G,w,I.shape);return this.map.set(G,S),S}remove(A,I,g,C){this.raw.remove(A,I.raw,g.raw,C),this.unmap(A)}unmap(A){this.map.delete(A)}get(A){return this.map.get(A)}len(){return this.map.len()}contains(A){return null!=this.get(A)}forEach(A){this.map.forEach(A)}getAll(){return this.map.getAll()}}class JI{constructor(A){this.raw=A||new x}free(){this.raw.free(),this.raw=void 0}step(A,I,g,C,B,Q,E,i,D,o,G,w){let S=BA.intoRaw(A);G?this.raw.stepWithEvents(S,I.raw,g.raw,C.raw,B.raw,Q.raw,E.raw,i.raw,D.raw,o.raw,G.raw,w,w?w.filterContactPair:null,w?w.filterIntersectionPair:null):this.raw.step(S,I.raw,g.raw,C.raw,B.raw,Q.raw,E.raw,i.raw,D.raw,o.raw),S.free()}}class yI{constructor(A){this.raw=A||new f}free(){this.raw.free(),this.raw=void 0}update(A,I,g){this.raw.update(A.raw,I.raw,g.raw)}castRay(A,I,g,C,B,Q){let E=BA.intoRaw(I.origin),i=BA.intoRaw(I.dir),D=XA.fromRaw(A,this.raw.castRay(A.raw,E,i,g,C,B,Q));return E.free(),i.free(),D}castRayAndGetNormal(A,I,g,C,B,Q){let E=BA.intoRaw(I.origin),i=BA.intoRaw(I.dir),D=mA.fromRaw(A,this.raw.castRayAndGetNormal(A.raw,E,i,g,C,B,Q));return E.free(),i.free(),D}intersectionsWithRay(A,I,g,C,B,Q,E){let i=BA.intoRaw(I.origin),D=BA.intoRaw(I.dir);this.raw.intersectionsWithRay(A.raw,i,D,g,C,B,(I=>Q(mA.fromRaw(A,I))),E),i.free(),D.free()}intersectionWithShape(A,I,g,C,B,Q){let E=BA.intoRaw(I),i=EA.intoRaw(g),D=C.intoRaw(),o=this.raw.intersectionWithShape(A.raw,E,i,D,B,Q);return E.free(),i.free(),D.free(),o}projectPoint(A,I,g,C,B){let Q=BA.intoRaw(I),E=fA.fromRaw(A,this.raw.projectPoint(A.raw,Q,g,C,B));return Q.free(),E}projectPointAndGetFeature(A,I,g){let C=BA.intoRaw(I),B=fA.fromRaw(A,this.raw.projectPointAndGetFeature(A.raw,C,g));return C.free(),B}intersectionsWithPoint(A,I,g,C,B){let Q=BA.intoRaw(I);this.raw.intersectionsWithPoint(A.raw,Q,g,C,B),Q.free()}castShape(A,I,g,C,B,Q,E,i){let D=BA.intoRaw(I),o=EA.intoRaw(g),G=BA.intoRaw(C),w=B.intoRaw(),S=uA.fromRaw(A,this.raw.castShape(A.raw,D,o,G,w,Q,E,i));return D.free(),o.free(),G.free(),w.free(),S}intersectionsWithShape(A,I,g,C,B,Q,E){let i=BA.intoRaw(I),D=EA.intoRaw(g),o=C.intoRaw();this.raw.intersectionsWithShape(A.raw,i,D,o,B,Q,E),i.free(),D.free(),o.free()}collidersWithAabbIntersectingAabb(A,I,g){let C=BA.intoRaw(A),B=BA.intoRaw(I);this.raw.collidersWithAabbIntersectingAabb(C,B,g),C.free(),B.free()}}class hI{constructor(A){this.raw=A||new u}free(){this.raw.free(),this.raw=void 0}serializeAll(A,I,g,C,B,Q,E,i,D){let o=BA.intoRaw(A);const G=this.raw.serializeAll(o,I.raw,g.raw,C.raw,B.raw,Q.raw,E.raw,i.raw,D.raw);return o.free(),G}deserializeAll(A){return FI.fromRaw(this.raw.deserializeAll(A))}}class NI{constructor(A,I){this.vertices=A,this.colors=I}}class MI{constructor(A){this.raw=A||new t}free(){this.raw.free(),this.raw=void 0,this.vertices=void 0,this.colors=void 0}render(A,I,g,C,B){this.raw.render(A.raw,I.raw,g.raw,C.raw,B.raw),this.vertices=this.raw.vertices(),this.colors=this.raw.colors()}}class FI{constructor(A,I,g,C,B,Q,E,i,D,o,G,w,S,k){this.gravity=A,this.integrationParameters=new MA(I),this.islands=new nA(g),this.broadPhase=new ZA(C),this.narrowPhase=new WA(B),this.bodies=new NA(Q),this.colliders=new aI(E),this.impulseJoints=new HA(i),this.multibodyJoints=new eA(D),this.ccdSolver=new dA(o),this.queryPipeline=new yI(G),this.physicsPipeline=new JI(w),this.serializationPipeline=new hI(S),this.debugRenderPipeline=new MI(k),this.impulseJoints.finalizeDeserialization(this.bodies),this.bodies.finalizeDeserialization(this.colliders),this.colliders.finalizeDeserialization(this.bodies)}free(){this.integrationParameters.free(),this.islands.free(),this.broadPhase.free(),this.narrowPhase.free(),this.bodies.free(),this.colliders.free(),this.impulseJoints.free(),this.multibodyJoints.free(),this.ccdSolver.free(),this.queryPipeline.free(),this.physicsPipeline.free(),this.serializationPipeline.free(),this.debugRenderPipeline.free(),this.integrationParameters=void 0,this.islands=void 0,this.broadPhase=void 0,this.narrowPhase=void 0,this.bodies=void 0,this.colliders=void 0,this.ccdSolver=void 0,this.impulseJoints=void 0,this.multibodyJoints=void 0,this.queryPipeline=void 0,this.physicsPipeline=void 0,this.serializationPipeline=void 0,this.debugRenderPipeline=void 0}static fromRaw(A){return A?new FI(BA.fromRaw(A.takeGravity()),A.takeIntegrationParameters(),A.takeIslandManager(),A.takeBroadPhase(),A.takeNarrowPhase(),A.takeBodies(),A.takeColliders(),A.takeImpulseJoints(),A.takeMultibodyJoints()):null}takeSnapshot(){return this.serializationPipeline.serializeAll(this.gravity,this.integrationParameters,this.islands,this.broadPhase,this.narrowPhase,this.bodies,this.colliders,this.impulseJoints,this.multibodyJoints)}static restoreSnapshot(A){return(new hI).deserializeAll(A)}debugRender(){return this.debugRenderPipeline.render(this.bodies,this.colliders,this.impulseJoints,this.multibodyJoints,this.narrowPhase),new NI(this.debugRenderPipeline.vertices,this.debugRenderPipeline.colors)}step(A,I){this.physicsPipeline.step(this.gravity,this.integrationParameters,this.islands,this.broadPhase,this.narrowPhase,this.bodies,this.colliders,this.impulseJoints,this.multibodyJoints,this.ccdSolver,A,I),this.queryPipeline.update(this.islands,this.bodies,this.colliders)}get timestep(){return this.integrationParameters.dt}set timestep(A){this.integrationParameters.dt=A}get maxVelocityIterations(){return this.integrationParameters.maxVelocityIterations}set maxVelocityIterations(A){this.integrationParameters.maxVelocityIterations=A}get maxVelocityFrictionIterations(){return this.integrationParameters.maxVelocityFrictionIterations}set maxVelocityFrictionIterations(A){this.integrationParameters.maxVelocityFrictionIterations=A}get maxStabilizationIterations(){return this.integrationParameters.maxStabilizationIterations}set maxStabilizationIterations(A){this.integrationParameters.maxStabilizationIterations=A}createRigidBody(A){return this.bodies.createRigidBody(this.colliders,A)}createCollider(A,I){let g=I?I.handle:void 0;return this.colliders.createCollider(this.bodies,A,g)}createImpulseJoint(A,I,g,C){return this.impulseJoints.createJoint(this.bodies,A,I.handle,g.handle,C)}createMultibodyJoint(A,I,g,C){return this.multibodyJoints.createJoint(A,I.handle,g.handle,C)}getRigidBody(A){return this.bodies.get(A)}getCollider(A){return this.colliders.get(A)}getImpulseJoint(A){return this.impulseJoints.get(A)}getMultibodyJoint(A){return this.multibodyJoints.get(A)}removeRigidBody(A){this.bodies&&this.bodies.remove(A.handle,this.islands,this.colliders,this.impulseJoints,this.multibodyJoints)}removeCollider(A,I){this.colliders&&this.colliders.remove(A.handle,this.islands,this.bodies,I)}removeImpulseJoint(A,I){this.impulseJoints&&this.impulseJoints.remove(A.handle,I)}removeMultibodyJoint(A,I){this.impulseJoints&&this.multibodyJoints.remove(A.handle,I)}forEachCollider(A){this.colliders.forEach(A)}forEachRigidBody(A){this.bodies.forEach(A)}forEachActiveRigidBody(A){this.bodies.forEachActiveRigidBody(this.islands,A)}castRay(A,I,g,C,B){return this.queryPipeline.castRay(this.colliders,A,I,g,C,RI(this.colliders,B))}castRayAndGetNormal(A,I,g,C,B){return this.queryPipeline.castRayAndGetNormal(this.colliders,A,I,g,C,RI(this.colliders,B))}intersectionsWithRay(A,I,g,C,B,Q){this.queryPipeline.intersectionsWithRay(this.colliders,A,I,g,C,B,RI(this.colliders,Q))}intersectionWithShape(A,I,g,C,B){let Q=this.queryPipeline.intersectionWithShape(this.colliders,A,I,g,C,RI(this.colliders,B));return null!=Q?this.colliders.get(Q):null}projectPoint(A,I,g,C){return this.queryPipeline.projectPoint(this.colliders,A,I,g,RI(this.colliders,C))}projectPointAndGetFeature(A,I){return this.queryPipeline.projectPointAndGetFeature(this.colliders,A,I)}intersectionsWithPoint(A,I,g,C){this.queryPipeline.intersectionsWithPoint(this.colliders,A,I,RI(this.colliders,g),RI(this.colliders,C))}castShape(A,I,g,C,B,Q,E){return this.queryPipeline.castShape(this.colliders,A,I,g,C,B,Q,RI(this.colliders,E))}intersectionsWithShape(A,I,g,C,B,Q){this.queryPipeline.intersectionsWithShape(this.colliders,A,I,g,C,RI(this.colliders,B),RI(this.colliders,Q))}collidersWithAabbIntersectingAabb(A,I,g){this.queryPipeline.collidersWithAabbIntersectingAabb(A,I,RI(this.colliders,g))}contactsWith(A,I){this.narrowPhase.contactsWith(A.handle,RI(this.colliders,I))}intersectionsWith(A,I){this.narrowPhase.intersectionsWith(A.handle,RI(this.colliders,I))}contactPair(A,I,g){this.narrowPhase.contactPair(A.handle,I.handle,g)}intersectionPair(A,I){return this.narrowPhase.intersectionPair(A.handle,I.handle)}}function RI(A,I){return g=>I?I(A.get(g)):void 0}!function(A){A[A.COLLISION_EVENTS=1]="COLLISION_EVENTS"}(KA||(KA={}));class qI{constructor(A,I){this.raw=I||new T(A)}free(){this.raw.free(),this.raw=void 0}drainCollisionEvents(A){this.raw.drainCollisionEvents(A)}clear(){this.raw.clear()}}
  105. /*! *****************************************************************************
  106. Copyright (c) Microsoft Corporation.
  107. Permission to use, copy, modify, and/or distribute this software for any
  108. purpose with or without fee is hereby granted.
  109. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
  110. REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  111. AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
  112. INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
  113. LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  114. OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  115. PERFORMANCE OF THIS SOFTWARE.
  116. ***************************************************************************** */
  117. function sI(A,I,g,C){return new(g||(g=Promise))((function(B,Q){function E(A){try{D(C.next(A))}catch(A){Q(A)}}function i(A){try{D(C.throw(A))}catch(A){Q(A)}}function D(A){var I;A.done?B(A.value):(I=A.value,I instanceof g?I:new g((function(A){A(I)}))).then(E,i)}D((C=C.apply(A,I||[])).next())}))}!function(A){A[A.FILTER_CONTACT_PAIRS=1]="FILTER_CONTACT_PAIRS",A[A.FILTER_INTERSECTION_PAIRS=2]="FILTER_INTERSECTION_PAIRS"}(UA||(UA={})),function(A){A[A.EMPTY=0]="EMPTY",A[A.COMPUTE_IMPULSE=1]="COMPUTE_IMPULSE"}(aA||(aA={}));for(var cI={byteLength:function(A){var I=rI(A),g=I[0],C=I[1];return 3*(g+C)/4-C},toByteArray:function(A){var I,g,C=rI(A),B=C[0],Q=C[1],E=new HI(function(A,I,g){return 3*(I+g)/4-g}(0,B,Q)),i=0,D=Q>0?B-4:B;for(g=0;g<D;g+=4)I=LI[A.charCodeAt(g)]<<18|LI[A.charCodeAt(g+1)]<<12|LI[A.charCodeAt(g+2)]<<6|LI[A.charCodeAt(g+3)],E[i++]=I>>16&255,E[i++]=I>>8&255,E[i++]=255&I;2===Q&&(I=LI[A.charCodeAt(g)]<<2|LI[A.charCodeAt(g+1)]>>4,E[i++]=255&I);1===Q&&(I=LI[A.charCodeAt(g)]<<10|LI[A.charCodeAt(g+1)]<<4|LI[A.charCodeAt(g+2)]>>2,E[i++]=I>>8&255,E[i++]=255&I);return E},fromByteArray:function(A){for(var I,g=A.length,C=g%3,B=[],Q=16383,E=0,i=g-C;E<i;E+=Q)B.push(TI(A,E,E+Q>i?i:E+Q));1===C?(I=A[g-1],B.push(YI[I>>2]+YI[I<<4&63]+"==")):2===C&&(I=(A[g-2]<<8)+A[g-1],B.push(YI[I>>10]+YI[I>>4&63]+YI[I<<2&63]+"="));return B.join("")}},YI=[],LI=[],HI="undefined"!=typeof Uint8Array?Uint8Array:Array,lI="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",pI=0,tI=lI.length;pI<tI;++pI)YI[pI]=lI[pI],LI[lI.charCodeAt(pI)]=pI;function rI(A){var I=A.length;if(I%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var g=A.indexOf("=");return-1===g&&(g=I),[g,g===I?0:4-g%4]}function TI(A,I,g){for(var C,B,Q=[],E=I;E<g;E+=3)C=(A[E]<<16&16711680)+(A[E+1]<<8&65280)+(255&A[E+2]),Q.push(YI[(B=C)>>18&63]+YI[B>>12&63]+YI[B>>6&63]+YI[63&B]);return Q.join("")}function OI(){return sI(this,void 0,void 0,(function*(){yield gA(cI.toByteArray("AGFzbQEAAAABvAmAAWACf38AYAR/f39/AGADf39/AGACf38Bf2ADf39/AX9gAX8Bf2ABfwF+YAF/AGAFf39/f38AYAZ/f39/fX8AYAJ/fAF/YAV/f399fwBgAX8BfWAFf39/f30AYAZ/f39/f30AYAR/f399AX9gA398fwBgAAF/YAN/f38BfWAEf39/fwF9YAN/f30Bf2AEf39/fwF/YAN/f30AYAZ/f39/f38Bf2AGf39/f39/AGADf398AGAEf3x/fwBgCH9/f39/f31/AX9gCH9/f39/f39/AGABfQF9YAJ/fwF9YAd/f39/f39/AGACf30AYAV/f39/fwF/YAJ/fAF9YAAAYAh/f39/f39/fQBgCX9/f39/f39/fQBgA398fwF9YAN/fH0AYAN9fX0Bf2APf39/f39/f39/f39/f39/AGALf39/f39/f399fX8AYAl/f39/f399f38Bf2AFf399f38AYAZ/fH9/f38AYAV/fH9/fwBgA398fwF/YAV/fH19fQBgAn19AX9gAX8BfGAGf3x9fX19AGAHf39/f31/fwBgCX9/f39/fX9/fwBgCn9/f39/f31/f38AYAd/fX19f399AGAGf319f399AGALf39/f39/f39/f38AYAR/fX9/AX9gA35+fwF+YAh/f39/fX9/fwF/YAJ9fQF9YAN/fHwBf2ACf3wBfGACf3wAYAV/f3x8fwF8YAR9fX19AX9gAXwBf2AJf319fX9/fX9/AGAPf39/f39/f39/f39/fX1/AGALf39/fX9/fX99fX8AYBJ/f39/f39/f39/f399f319fX0AYAZ/f39/f38BfWAIf39/f319f38AYAt/f39/fX9/f39/fwBgCX9/f39/f31/fwBgCn9/f399f39/f38AYAl/f39/f39/f30Bf2AMf31/f399fX19fX1/AGAMf31/f39/f399fX1/AGAHf39/f39/fQF/YAZ/fX9/f38AYAR/f399AGALf399fX1/f39/f38AYAR/f35/AGAHf39/f39/fQBgCn99f31/fX19fX8AYAR/f31/AGADf35/AX9gCn9/f39/f39/f30AYAl/f39/f39/f38AYAd/f39/f31/AX9gDX9/f39/f399fX19fX0AYAp/f39/f39/f39/AX9gCH98f39/f399AX9gBX9/f39/AX1gB399fX19fX0AYBd/f399fX9/f39/f39/f39/fX1/f39/fwF8YAl/f39/f39+fn4AYAN/fX0AYAd/f39/f31/AX1gGH9/f39/f31/f399fX1/f39/f39/f398fwBgBn9/f39/fQF/YAZ/fH9/f30Bf2AGf3x/fH99AX9gB39/f39/f38Bf2ADfn9/AX9gBH98f38Bf2AGf3x/f31/AX9gBn9/f399fQF/YAR/fHx9AX9gCX9/f399f39/fwBgAn9+AGAFf3x/f38Bf2AQf31/f39/f39/f39/f39/fwBgBn98f319fQBgB398f319fX0AYAV/fH99fQBgBn98f399fwF9YAV/fH9/fQF/YAV/f39/fQF/YAR/fH1/AGABfQF/YAN/fH8BfGAHf3x9fX19fwBgBn98fX19fwBgBH99f38AYAV/f3x/fwAC4AUVA3diZxpfX3diaW5kZ2VuX29iamVjdF9kcm9wX3JlZgAHA3diZxVfX3diaW5kZ2VuX251bWJlcl9uZXcAQwN3YmcVX193YmluZGdlbl9udW1iZXJfZ2V0AAADd2JnFl9fd2JpbmRnZW5fYm9vbGVhbl9nZXQABQN3YmckX193YmdfcmF3cmF5Y29sbGlkZXJpbnRlcnNlY3Rpb25fbmV3AAUDd2JnFl9fd2JpbmRnZW5faXNfZnVuY3Rpb24ABQN3YmcbX193YmdfY2FsbF8zZWQyODhhMjQ3ZjEzZWE1AAQDd2JnG19fd2JnX2NhbGxfYTE5ZDMxNzNmM2UxZDNjNQAVA3diZxtfX3diZ19jYWxsXzZlZDcxMjFjZmI0MmNmZWQAIQN3YmcbX193YmdfYmluZF9jMDlhMTY0MWMxNTgwYzA3ABUDd2JnHV9fd2JnX2J1ZmZlcl83YWYyM2Y2NWY2YzY0NTQ4AAUDd2JnMV9fd2JnX25ld3dpdGhieXRlb2Zmc2V0YW5kbGVuZ3RoX2NlMWU3NWYwY2U1Zjc5NzQABAN3YmcaX193YmdfbmV3X2NjOTAxOGJkNmYyODNiNmYABQN3YmcaX193Ymdfc2V0X2YyNWU4NjllNDU2NWQyYTIAAgN3YmcdX193YmdfbGVuZ3RoXzBhY2IxY2Y5YmJhZjg1MTkABQN3YmcxX193YmdfbmV3d2l0aGJ5dGVvZmZzZXRhbmRsZW5ndGhfM2Y1NTQ5NzhkODc5M2Ix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dmVyX25ldwCYCRxyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRUeXBlAMgGI3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEJvZHlIYW5kbGUxAPoGI3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEJvZHlIYW5kbGUyAPAGH3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEZyYW1lWDEAmgYfcmF3aW1wdWxzZWpvaW50c2V0X2pvaW50RnJhbWVYMgCbBh9yYXdpbXB1bHNlam9pbnRzZXRfam9pbnRBbmNob3IxAJwGH3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludEFuY2hvcjIAnQYlcmF3aW1wdWxzZWpvaW50c2V0X2pvaW50TGltaXRzRW5hYmxlZACvBiFyYXdpbXB1bHNlam9pbnRzZXRfam9pbnRMaW1pdHNNaW4A3AYhcmF3aW1wdWxzZWpvaW50c2V0X2pvaW50TGltaXRzTWF4AN0GK3Jhd2ltcHVsc2Vqb2ludHNldF9qb2ludENvbmZpZ3VyZU1vdG9yTW9kZWwA0QYucmF3aW1wdWxzZWpvaW50c2V0X2pvaW50Q29uZmlndXJlTW90b3JWZWxvY2l0eQDVBi5yYXdpbXB1bHNlam9pbnRzZXRfam9pbnRDb25maWd1cmVNb3RvclBvc2l0aW9uAM4GJnJhd2ltcHVsc2Vqb2ludHNldF9qb2ludENvbmZpZ3VyZU1vdG9yAM8GHV9fd2JnX3Jhd2ltcHVsc2Vqb2ludHNldF9mcmVlALsIFnJhd2ltcHVsc2Vqb2ludHNldF9uZXcAmQkecmF3aW1wdWxzZWpvaW50c2V0X2NyZWF0ZUpvaW50AJYIGXJhd2ltcHVsc2Vqb2ludHNldF9yZW1vdmUAiwgWcmF3aW1wdWxzZWpvaW50c2V0X2xlbgCRCRtyYXdpbXB1bHNlam9pbnRzZXRfY29udGFpbnMA8gclcmF3aW1wdWxzZWpvaW50c2V0X2ZvckVhY2hKb2ludEhhbmRsZQDKCDJyYXdpbXB1bHNlam9pbnRzZXRfZm9yRWFjaEpvaW50QXR0YWNoZWRUb1JpZ2lkQm9keQC8CCNfX3diZ19yYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfZnJlZQCOChxyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfbmV3ANgGG3Jhd2ludGVncmF0aW9ucGFyYW1ldGVyc19kdACzChxyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfZXJwAJcKK3Jhd2ludGVncmF0aW9ucGFyYW1ldGVyc19hbGxvd2VkTGluZWFyRXJyb3IAmAorcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3ByZWRpY3Rpb25EaXN0YW5jZQCZCi5yYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfbWF4VmVsb2NpdHlJdGVyYXRpb25zAJoKNnJhd2ludGVncmF0aW9ucGFyYW1ldGVyc19tYXhWZWxvY2l0eUZyaWN0aW9uSXRlcmF0aW9ucwCbCjNyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfbWF4U3RhYmlsaXphdGlvbkl0ZXJhdGlvbnMAnAomcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX21pbklzbGFuZFNpemUAnQoncmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX21heENjZFN1YnN0ZXBzAJ4KH3Jhd2ludGVncmF0aW9ucGFyYW1ldGVyc19zZXRfZHQAnwogcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9lcnAAgwovcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9hbGxvd2VkTGluZWFyRXJyb3IAhAovcmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9wcmVkaWN0aW9uRGlzdGFuY2UAhQoycmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9tYXhWZWxvY2l0eUl0ZXJhdGlvbnMAhgo6cmF3aW50ZWdyYXRpb25wYXJhbWV0ZXJzX3NldF9tYXhWZWxvY2l0eUZyaWN0aW9uSXRlcmF0aW9ucwCHCjdyYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfc2V0X21heFN0YWJpbGl6YXRpb25JdGVyYXRpb25zAIgKKnJhd2ludGVncmF0aW9ucGFyYW1ldGVyc19zZXRfbWluSXNsYW5kU2l6ZQCJCityYXdpbnRlZ3JhdGlvbnBhcmFtZXRlcnNfc2V0X21heENjZFN1YnN0ZXBzAIoKG19fd2JnX3Jhd2lzbGFuZG1hbmFnZXJfZnJlZQCxBhRyYXdpc2xhbmRtYW5hZ2VyX25ldwDZBi1yYXdpc2xhbmRtYW5hZ2VyX2ZvckVhY2hBY3RpdmVSaWdpZEJvZHlIYW5kbGUAywgaX193YmdfcmF3Z2VuZXJpY2pvaW50X2ZyZWUAjgoZcmF3Z2VuZXJpY2pvaW50X3NwaGVyaWNhbACeBRlyYXdnZW5lcmljam9pbnRfcHJpc21hdGljAIwFFXJhd2dlbmVyaWNqb2ludF9maXhlZADWAhhyYXdnZW5lcmljam9pbnRfcmV2b2x1dGUAoQUecmF3bXVsdGlib2R5am9pbnRzZXRfam9pbnRUeXBlAPwIIXJhd211bHRpYm9keWpvaW50c2V0X2pvaW50RnJhbWVYMQCiBSFyYXdtdWx0aWJvZHlqb2ludHNldF9qb2ludEZyYW1lWDIAqQUhcmF3bXVsdGlib2R5am9pbnRzZXRfam9pbnRBbmNob3IxAKoFIXJhd211bHRpYm9keWpvaW50c2V0X2pvaW50QW5jaG9yMgCjBSdyYXdtdWx0aWJvZHlqb2ludHNldF9qb2ludExpbWl0c0VuYWJsZWQA2QgjcmF3bXVsdGlib2R5am9pbnRzZXRfam9pbnRMaW1pdHNNaW4AlgYjcmF3bXVsdGlib2R5am9pbnRzZXRfam9pbnRMaW1pdHNNYXgAlwYfX193YmdfcmF3bXVsdGlib2R5am9pbnRzZXRfZnJlZQC9CBhyYXdtdWx0aWJvZHlqb2ludHNldF9uZXcAmgkgcmF3bXVsdGlib2R5am9pbnRzZXRfY3JlYXRlSm9pbnQAlwgbcmF3bXVsdGlib2R5am9pbnRzZXRfcmVtb3ZlAKEIHXJhd211bHRpYm9keWpvaW50c2V0X2NvbnRhaW5zANMHJ3Jhd211bHRpYm9keWpvaW50c2V0X2ZvckVhY2hKb2ludEhhbmRsZQDMCDRyYXdtdWx0aWJvZHlqb2ludHNldF9mb3JFYWNoSm9pbnRBdHRhY2hlZFRvUmlnaWRCb2R5AL4IHXJhd3JpZ2lkYm9keXNldF9yYlRyYW5zbGF0aW9uAJ4GGnJhd3JpZ2lkYm9keXNldF9yYlJvdGF0aW9uAJ8GF3Jhd3JpZ2lkYm9keXNldF9yYlNsZWVwAP8HHHJhd3JpZ2lkYm9keXNldF9yYklzU2xlZXBpbmcAowcacmF3cmlnaWRib2R5c2V0X3JiSXNNb3ZpbmcApAchcmF3cmlnaWRib2R5c2V0X3JiTmV4dFRyYW5zbGF0aW9uAIQGHnJhd3JpZ2lkYm9keXNldF9yYk5leHRSb3RhdGlvbgD1BSByYXdyaWdpZGJvZHlzZXRfcmJTZXRUcmFuc2xhdGlvbgCkCR1yYXdyaWdpZGJvZHlzZXRfcmJTZXRSb3RhdGlvbgCdCRtyYXdyaWdpZGJvZHlzZXRfcmJTZXRMaW52ZWwAuwYbcmF3cmlnaWRib2R5c2V0X3JiU2V0QW5ndmVsALwGLXJhd3JpZ2lkYm9keXNldF9yYlNldE5leHRLaW5lbWF0aWNUcmFuc2xhdGlvbgCSBypyYXdyaWdpZGJvZHlzZXRfcmJTZXROZXh0S2luZW1hdGljUm90YXRpb24AyAkYcmF3cmlnaWRib2R5c2V0X3JiTGludmVsAPYFGHJhd3JpZ2lkYm9keXNldF9yYkFuZ3ZlbAD3BSJyYXdyaWdpZGJvZHlzZXRfcmJMb2NrVHJhbnNsYXRpb25zAKUJJnJhd3JpZ2lkYm9keXNldF9yYlJlc3RyaWN0VHJhbnNsYXRpb25zAP0IH3Jhd3JpZ2lkYm9keXNldF9yYkxvY2tSb3RhdGlvbnMApgkjcmF3cmlnaWRib2R5c2V0X3JiUmVzdHJpY3RSb3RhdGlvbnMA/gggcmF3cmlnaWRib2R5c2V0X3JiRG9taW5hbmNlR3JvdXAAigcjcmF3cmlnaWRib2R5c2V0X3JiU2V0RG9taW5hbmNlR3JvdXAA8wcbcmF3cmlnaWRib2R5c2V0X3JiRW5hYmxlQ2NkANoHFnJhd3JpZ2lkYm9keXNldF9yYk1hc3MApQcYcmF3cmlnaWRib2R5c2V0X3JiV2FrZVVwAPQHHnJhd3JpZ2lkYm9keXNldF9yYklzQ2NkRW5hYmxlZACmBx5yYXdyaWdpZGJvZHlzZXRfcmJOdW1Db2xsaWRlcnMAjQcacmF3cmlnaWRib2R5c2V0X3JiQ29sbGlkZXIAiQkacmF3cmlnaWRib2R5c2V0X3JiQm9keVR5cGUA9gYdcmF3cmlnaWRib2R5c2V0X3JiU2V0Qm9keVR5cGUA+wYZcmF3cmlnaWRib2R5c2V0X3JiSXNGaXhlZACnBx1yYXdyaWdpZGJvZHlzZXRfcmJJc0tpbmVtYXRpYwCoBxtyYXdyaWdpZGJvZHlzZXRfcmJJc0R5bmFtaWMAqQcfcmF3cmlnaWRib2R5c2V0X3JiTGluZWFyRGFtcGluZwCTByByYXdyaWdpZGJvZHlzZXRfcmJBbmd1bGFyRGFtcGluZwCUByJyYXdyaWdpZGJvZHlzZXRfcmJTZXRMaW5lYXJEYW1waW5nAPUHI3Jhd3JpZ2lkYm9keXNldF9yYlNldEFuZ3VsYXJEYW1waW5nAPYHHnJhd3JpZ2lkYm9keXNldF9yYkdyYXZpdHlTY2FsZQCqByFyYXdyaWdpZGJvZHlzZXRfcmJTZXRHcmF2aXR5U2NhbGUA1AcdcmF3cmlnaWRib2R5c2V0X3JiUmVzZXRGb3JjZXMA2wcecmF3cmlnaWRib2R5c2V0X3JiUmVzZXRUb3JxdWVzANwHGnJhd3JpZ2lkYm9keXNldF9yYkFkZEZvcmNlAL0GHnJhd3JpZ2lkYm9keXNldF9yYkFwcGx5SW1wdWxzZQC+BhtyYXdyaWdpZGJvZHlzZXRfcmJBZGRUb3JxdWUAvwYkcmF3cmlnaWRib2R5c2V0X3JiQXBwbHlUb3JxdWVJbXB1bHNlAMAGIXJhd3JpZ2lkYm9keXNldF9yYkFkZEZvcmNlQXRQb2ludACJBSVyYXdyaWdpZGJvZHlzZXRfcmJBcHBseUltcHVsc2VBdFBvaW50AIoFGnJhd3JpZ2lkYm9keXNldF9yYlVzZXJEYXRhAKsHHXJhd3JpZ2lkYm9keXNldF9yYlNldFVzZXJEYXRhAMcHGl9fd2JnX3Jhd3JpZ2lkYm9keXNldF9mcmVlAJ8FE3Jhd3JpZ2lkYm9keXNldF9uZXcA1QcfcmF3cmlnaWRib2R5c2V0X2NyZWF0ZVJpZ2lkQm9keQC+AxZyYXdyaWdpZGJvZHlzZXRfcmVtb3ZlAPAEE3Jhd3JpZ2lkYm9keXNldF9sZW4AkgkYcmF3cmlnaWRib2R5c2V0X2NvbnRhaW5zAPcHJnJhd3JpZ2lkYm9keXNldF9mb3JFYWNoUmlnaWRCb2R5SGFuZGxlAM0IGF9fd2JnX3Jhd2Jyb2FkcGhhc2VfZnJlZQC/CBFyYXdicm9hZHBoYXNlX25ldwD/CBxyYXdjb2xsaWRlcnNldF9jb1RyYW5zbGF0aW9uAIUGGXJhd2NvbGxpZGVyc2V0X2NvUm90YXRpb24A+AUfcmF3Y29sbGlkZXJzZXRfY29TZXRUcmFuc2xhdGlvbgCVByhyYXdjb2xsaWRlcnNldF9jb1NldFRyYW5zbGF0aW9uV3J0UGFyZW50AJYHHHJhd2NvbGxpZGVyc2V0X2NvU2V0Um90YXRpb24AyQklcmF3Y29sbGlkZXJzZXRfY29TZXRSb3RhdGlvbldydFBhcmVudADKCRlyYXdjb2xsaWRlcnNldF9jb0lzU2Vuc29yAKwHGnJhd2NvbGxpZGVyc2V0X2NvU2hhcGVUeXBlAIAJHHJhd2NvbGxpZGVyc2V0X2NvSGFsZkV4dGVudHMA6QYXcmF3Y29sbGlkZXJzZXRfY29SYWRpdXMA4QcbcmF3Y29sbGlkZXJzZXRfY29IYWxmSGVpZ2h0AOIHHHJhd2NvbGxpZGVyc2V0X2NvUm91bmRSYWRpdXMA4wcZcmF3Y29sbGlkZXJzZXRfY29WZXJ0aWNlcwCgBhhyYXdjb2xsaWRlcnNldF9jb0luZGljZXMAoQYjcmF3Y29sbGlkZXJzZXRfY29IZWlnaHRmaWVsZEhlaWdodHMAogYhcmF3Y29sbGlkZXJzZXRfY29IZWlnaHRmaWVsZFNjYWxlAOoGIXJhd2NvbGxpZGVyc2V0X2NvSGVpZ2h0ZmllbGROUm93cwDkByFyYXdjb2xsaWRlcnNldF9jb0hlaWdodGZpZWxkTkNvbHMA5QcXcmF3Y29sbGlkZXJzZXRfY29QYXJlbnQAtwYZcmF3Y29sbGlkZXJzZXRfY29GcmljdGlvbgCcBxxyYXdjb2xsaWRlcnNldF9jb1Jlc3RpdHV0aW9uAJ0HGHJhd2NvbGxpZGVyc2V0X2NvRGVuc2l0eQDaBiByYXdjb2xsaWRlcnNldF9jb0NvbGxpc2lvbkdyb3VwcwDxBh1yYXdjb2xsaWRlcnNldF9jb1NvbHZlckdyb3VwcwDyBhxyYXdjb2xsaWRlcnNldF9jb0FjdGl2ZUhvb2tzAK0HJXJhd2NvbGxpZGVyc2V0X2NvQWN0aXZlQ29sbGlzaW9uVHlwZXMAlwcdcmF3Y29sbGlkZXJzZXRfY29BY3RpdmVFdmVudHMArgcecmF3Y29sbGlkZXJzZXRfY29Db250YWluc1BvaW50AMgFGnJhd2NvbGxpZGVyc2V0X2NvQ2FzdFNoYXBlAPMCHXJhd2NvbGxpZGVyc2V0X2NvQ2FzdENvbGxpZGVyAJkEIHJhd2NvbGxpZGVyc2V0X2NvSW50ZXJzZWN0c1NoYXBlAKkGHXJhd2NvbGxpZGVyc2V0X2NvQ29udGFjdFNoYXBlAJUEIHJhd2NvbGxpZGVyc2V0X2NvQ29udGFjdENvbGxpZGVyAK8FHXJhd2NvbGxpZGVyc2V0X2NvUHJvamVjdFBvaW50AOcEHnJhd2NvbGxpZGVyc2V0X2NvSW50ZXJzZWN0c1JheQDlBhhyYXdjb2xsaWRlcnNldF9jb0Nhc3RSYXkA3gYkcmF3Y29sbGlkZXJzZXRfY29DYXN0UmF5QW5kR2V0Tm9ybWFsAP4EGnJhd2NvbGxpZGVyc2V0X2NvU2V0U2Vuc29yAN0HH3Jhd2NvbGxpZGVyc2V0X2NvU2V0UmVzdGl0dXRpb24A+AcccmF3Y29sbGlkZXJzZXRfY29TZXRGcmljdGlvbgD5ByRyYXdjb2xsaWRlcnNldF9jb0ZyaWN0aW9uQ29tYmluZVJ1bGUAmAcncmF3Y29sbGlkZXJzZXRfY29TZXRGcmljdGlvbkNvbWJpbmVSdWxlAMEHJ3Jhd2NvbGxpZGVyc2V0X2NvUmVzdGl0dXRpb25Db21iaW5lUnVsZQCZBypyYXdjb2xsaWRlcnNldF9jb1NldFJlc3RpdHV0aW9uQ29tYmluZVJ1bGUAwgcjcmF3Y29sbGlkZXJzZXRfY29TZXRDb2xsaXNpb25Hcm91cHMAggcgcmF3Y29sbGlkZXJzZXRfY29TZXRTb2x2ZXJHcm91cHMAgwcfcmF3Y29sbGlkZXJzZXRfY29TZXRBY3RpdmVIb29rcwDDByByYXdjb2xsaWRlcnNldF9jb1NldEFjdGl2ZUV2ZW50cwDEByhyYXdjb2xsaWRlcnNldF9jb1NldEFjdGl2ZUNvbGxpc2lvblR5cGVzAMUHGXJhd2NvbGxpZGVyc2V0X2NvU2V0U2hhcGUAswYZX193YmdfcmF3Y29sbGlkZXJzZXRfZnJlZQDtBBJyYXdjb2xsaWRlcnNldF9uZXcA8wYScmF3Y29sbGlkZXJzZXRfbGVuAJIJF3Jhd2NvbGxpZGVyc2V0X2NvbnRhaW5zAPoHHXJhd2NvbGxpZGVyc2V0X2NyZWF0ZUNvbGxpZGVyAO4DFXJhd2NvbGxpZGVyc2V0X3JlbW92ZQDMBSRyYXdjb2xsaWRlcnNldF9mb3JFYWNoQ29sbGlkZXJIYW5kbGUAzggaX193YmdfcmF3c2hhcGVjb250YWN0X2ZyZWUAjgoYcmF3c2hhcGVjb250YWN0X2Rpc3RhbmNlAKAKFnJhd3NoYXBlY29udGFjdF9wb2ludDIAyAcXcmF3c2hhcGVjb250YWN0X25vcm1hbDEAyQcXcmF3c2hhcGVjb250YWN0X25vcm1hbDIAygcZX193YmdfcmF3bmFycm93cGhhc2VfZnJlZQDACBJyYXduYXJyb3dwaGFzZV9uZXcAgQkccmF3bmFycm93cGhhc2VfY29udGFjdHNfd2l0aACTCRtyYXduYXJyb3dwaGFzZV9jb250YWN0X3BhaXIAsgYhcmF3bmFycm93cGhhc2VfaW50ZXJzZWN0aW9uc193aXRoAJQJIHJhd25hcnJvd3BoYXNlX2ludGVyc2VjdGlvbl9wYWlyAPcGHV9fd2JnX3Jhd2NvbnRhY3RtYW5pZm9sZF9mcmVlAI4KGHJhd2NvbnRhY3RwYWlyX2NvbGxpZGVyMQCnCBhyYXdjb250YWN0cGFpcl9jb2xsaWRlcjIAmggicmF3Y29udGFjdHBhaXJfbnVtQ29udGFjdE1hbmlmb2xkcwCeCR5yYXdjb250YWN0cGFpcl9jb250YWN0TWFuaWZvbGQAswcZcmF3Y29udGFjdG1hbmlmb2xkX25vcm1hbAD0BhtyYXdjb250YWN0bWFuaWZvbGRfbG9jYWxfbjEA/AYbcmF3Y29udGFjdG1hbmlmb2xkX2xvY2FsX24yAP0GHHJhd2NvbnRhY3RtYW5pZm9sZF9zdWJzaGFwZTEAuQkccmF3Y29udGFjdG1hbmlmb2xkX3N1YnNoYXBlMgC6CR9yYXdjb250YWN0bWFuaWZvbGRfbnVtX2NvbnRhY3RzAJ8JI3Jhd2NvbnRhY3RtYW5pZm9sZF9jb250YWN0X2xvY2FsX3AxAMQGI3Jhd2NvbnRhY3RtYW5pZm9sZF9jb250YWN0X2xvY2FsX3AyAMUGH3Jhd2NvbnRhY3RtYW5pZm9sZF9jb250YWN0X2Rpc3QA0ggfcmF3Y29udGFjdG1hbmlmb2xkX2NvbnRhY3RfZmlkMQDTCB9yYXdjb250YWN0bWFuaWZvbGRfY29udGFjdF9maWQyANQIInJhd2NvbnRhY3RtYW5pZm9sZF9jb250YWN0X2ltcHVsc2UA1QgscmF3Y29udGFjdG1hbmlmb2xkX2NvbnRhY3RfdGFuZ2VudF9pbXB1bHNlX3gA1ggscmF3Y29udGFjdG1hbmlmb2xkX2NvbnRhY3RfdGFuZ2VudF9pbXB1bHNlX3kA1wgmcmF3Y29udGFjdG1hbmlmb2xkX251bV9zb2x2ZXJfY29udGFjdHMAoAkncmF3Y29udGFjdG1hbmlmb2xkX3NvbHZlcl9jb250YWN0X3BvaW50ALgGJnJhd2NvbnRhY3RtYW5pZm9sZF9zb2x2ZXJfY29udGFjdF9kaXN0AKsIKnJhd2NvbnRhY3RtYW5pZm9sZF9zb2x2ZXJfY29udGFjdF9mcmljdGlvbgCiCC1yYXdjb250YWN0bWFuaWZvbGRfc29sdmVyX2NvbnRhY3RfcmVzdGl0dXRpb24AowgycmF3Y29udGFjdG1hbmlmb2xkX3NvbHZlcl9jb250YWN0X3RhbmdlbnRfdmVsb2NpdHkAwQYdX193YmdfcmF3cG9pbnRwcm9qZWN0aW9uX2ZyZWUAjgoYcmF3cG9pbnRwcm9qZWN0aW9uX3BvaW50AN4HG3Jhd3BvaW50cHJvamVjdGlvbl9pc0luc2lkZQChCiVfX3diZ19yYXdwb2ludGNvbGxpZGVycHJvamVjdGlvbl9mcmVlAI4KKXJhd3BvaW50Y29sbGlkZXJwcm9qZWN0aW9uX2NvbGxpZGVySGFuZGxlAKgIIHJhd3BvaW50Y29sbGlkZXJwcm9qZWN0aW9uX3BvaW50AMsHI3Jhd3BvaW50Y29sbGlkZXJwcm9qZWN0aW9uX2lzSW5zaWRlAKIKJnJhd3BvaW50Y29sbGlkZXJwcm9qZWN0aW9uX2ZlYXR1cmVUeXBlAKMKJHJhd3BvaW50Y29sbGlkZXJwcm9qZWN0aW9uX2ZlYXR1cmVJZACKCR1fX3diZ19yYXdyYXlpbnRlcnNlY3Rpb25fZnJlZQCOChlyYXdyYXlpbnRlcnNlY3Rpb25fbm9ybWFsAMwHHnJhd3JheWludGVyc2VjdGlvbl9mZWF0dXJlVHlwZQCkChxyYXdyYXlpbnRlcnNlY3Rpb25fZmVhdHVyZUlkAIsJIXJhd3JheWNvbGxpZGVyaW50ZXJzZWN0aW9uX25vcm1hbADIBx5yYXdyYXljb2xsaWRlcmludGVyc2VjdGlvbl90b2kAlwocX193YmdfcmF3cmF5Y29sbGlkZXJ0b2lfZnJlZQCOChNfX3diZ19yYXdzaGFwZV9mcmVlAOEID3Jhd3NoYXBlX2N1Ym9pZADlCBRyYXdzaGFwZV9yb3VuZEN1Ym9pZADiCA1yYXdzaGFwZV9iYWxsAO8IEHJhd3NoYXBlX2NhcHN1bGUAngcRcmF3c2hhcGVfY3lsaW5kZXIA6ggWcmF3c2hhcGVfcm91bmRDeWxpbmRlcgDmCA1yYXdzaGFwZV9jb25lAOsIEnJhd3NoYXBlX3JvdW5kQ29uZQDnCBFyYXdzaGFwZV9wb2x5bGluZQDWBxByYXdzaGFwZV90cmltZXNoANcHFHJhd3NoYXBlX2hlaWdodGZpZWxkAM0FEHJhd3NoYXBlX3NlZ21lbnQAugURcmF3c2hhcGVfdHJpYW5nbGUA0QQWcmF3c2hhcGVfcm91bmRUcmlhbmdsZQDOBBNyYXdzaGFwZV9jb252ZXhIdWxsAIAIGHJhd3NoYXBlX3JvdW5kQ29udmV4SHVsbAD7BxNyYXdzaGFwZV9jb252ZXhNZXNoAJoHGHJhd3NoYXBlX3JvdW5kQ29udmV4TWVzaACOBxJyYXdzaGFwZV9jYXN0U2hhcGUApgEYcmF3c2hhcGVfaW50ZXJzZWN0c1NoYXBlAJ0DFXJhd3NoYXBlX2NvbnRhY3RTaGFwZQDOARZyYXdzaGFwZV9jb250YWluc1BvaW50AOMEFXJhd3NoYXBlX3Byb2plY3RQb2ludACTBBZyYXdzaGFwZV9pbnRlcnNlY3RzUmF5AIIEEHJhd3NoYXBlX2Nhc3RSYXkA6QMccmF3c2hhcGVfY2FzdFJheUFuZEdldE5vcm1hbADSAhZfX3diZ19yYXdzaGFwZXRvaV9mcmVlAI4KFHJhd3NoYXBldG9pX3dpdG5lc3MyAM0HE3Jhd3NoYXBldG9pX25vcm1hbDEAzgcTcmF3c2hhcGV0b2lfbm9ybWFsMgDPBx5fX3diZ19yYXdzaGFwZWNvbGxpZGVydG9pX2ZyZWUAjgoccmF3c2hhcGVjb2xsaWRlcnRvaV93aXRuZXNzMgDJBxtyYXdzaGFwZWNvbGxpZGVydG9pX25vcm1hbDEAygcbcmF3c2hhcGVjb2xsaWRlcnRvaV9ub3JtYWwyANAHD3Jhd3JvdGF0aW9uX25ldwDWCRRyYXdyb3RhdGlvbl9pZGVudGl0eQD3CQ1yYXdyb3RhdGlvbl95AKUKDXJhd3JvdGF0aW9uX3cApgoOcmF3dmVjdG9yX3plcm8ApwoNcmF3dmVjdG9yX25ldwDnCQ9yYXd2ZWN0b3Jfc2V0X3kAiwoNcmF3dmVjdG9yX3h5egCMCA1yYXd2ZWN0b3JfeXh6AI0IDXJhd3ZlY3Rvcl96eHkAjggNcmF3dmVjdG9yX3h6eQCPCA1yYXd2ZWN0b3JfeXp4AJAIDXJhd3ZlY3Rvcl96eXgAkQghX193YmdfcmF3ZGVidWdyZW5kZXJwaXBlbGluZV9mcmVlAOwDGnJhd2RlYnVncmVuZGVycGlwZWxpbmVfbmV3APwHH3Jhd2RlYnVncmVuZGVycGlwZWxpbmVfdmVydGljZXMAhAgdcmF3ZGVidWdyZW5kZXJwaXBlbGluZV9jb2xvcnMAhQgdcmF3ZGVidWdyZW5kZXJwaXBlbGluZV9yZW5kZXIAgAUYX193YmdfcmF3ZXZlbnRxdWV1ZV9mcmVlAKIBEXJhd2V2ZW50cXVldWVfbmV3AMYGInJhd2V2ZW50cXVldWVfZHJhaW5Db2xsaXNpb25FdmVudHMA9wgTcmF3ZXZlbnRxdWV1ZV9jbGVhcgCSCB1fX3diZ19yYXdwaHlzaWNzcGlwZWxpbmVfZnJlZQCXARZyYXdwaHlzaWNzcGlwZWxpbmVfbmV3AMEIF3Jhd3BoeXNpY3NwaXBlbGluZV9zdGVwAJYEIXJhd3BoeXNpY3NwaXBlbGluZV9zdGVwV2l0aEV2ZW50cwD9AxtfX3diZ19yYXdxdWVyeXBpcGVsaW5lX2ZyZWUAoAgUcmF3cXVlcnlwaXBlbGluZV9uZXcAmwkXcmF3cXVlcnlwaXBlbGluZV91cGRhdGUAyQYYcmF3cXVlcnlwaXBlbGluZV9jYXN0UmF5AIsDJHJhd3F1ZXJ5cGlwZWxpbmVfY2FzdFJheUFuZEdldE5vcm1hbACxBCVyYXdxdWVyeXBpcGVsaW5lX2ludGVyc2VjdGlvbnNXaXRoUmF5ALAFJnJhd3F1ZXJ5cGlwZWxpbmVfaW50ZXJzZWN0aW9uV2l0aFNoYXBlAN0EHXJhd3F1ZXJ5cGlwZWxpbmVfcHJvamVjdFBvaW50AO8DKnJhd3F1ZXJ5cGlwZWxpbmVfcHJvamVjdFBvaW50QW5kR2V0RmVhdHVyZQCUBCdyYXdxdWVyeXBpcGVsaW5lX2ludGVyc2VjdGlvbnNXaXRoUG9pbnQAtAYacmF3cXVlcnlwaXBlbGluZV9jYXN0U2hhcGUA2gEncmF3cXVlcnlwaXBlbGluZV9pbnRlcnNlY3Rpb25zV2l0aFNoYXBlAPMEMnJhd3F1ZXJ5cGlwZWxpbmVfY29sbGlkZXJzV2l0aEFhYmJJbnRlcnNlY3RpbmdBYWJiAMoGH19fd2JnX3Jhd2Rlc2VyaWFsaXplZHdvcmxkX2ZyZWUAvQUgcmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZUdyYXZpdHkA/wYucmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZUludGVncmF0aW9uUGFyYW1ldGVycwCXBCZyYXdkZXNlcmlhbGl6ZWR3b3JsZF90YWtlSXNsYW5kTWFuYWdlcgCrBCNyYXdkZXNlcmlhbGl6ZWR3b3JsZF90YWtlQnJvYWRQaGFzZQCPByRyYXdkZXNlcmlhbGl6ZWR3b3JsZF90YWtlTmFycm93UGhhc2UArAQfcmF3ZGVzZXJpYWxpemVkd29ybGRfdGFrZUJvZGllcwCNBSJyYXdkZXNlcmlhbGl6ZWR3b3JsZF90YWtlQ29sbGlkZXJzAO4EJnJhd2Rlc2VyaWFsaXplZHdvcmxkX3Rha2VJbXB1bHNlSm9pbnRzAOoDKHJhd2Rlc2VyaWFsaXplZHdvcmxkX3Rha2VNdWx0aWJvZHlKb2ludHMAgAQlcmF3c2VyaWFsaXphdGlvbnBpcGVsaW5lX3NlcmlhbGl6ZUFsbADtAidyYXdzZXJpYWxpemF0aW9ucGlwZWxpbmVfZGVzZXJpYWxpemVBbGwA6wYZX193YmdfcmF3Y29udGFjdHBhaXJfZnJlZQCOCiVfX3diZ19yYXdyYXljb2xsaWRlcmludGVyc2VjdGlvbl9mcmVlAI4KFl9fd2JnX3Jhd3JvdGF0aW9uX2ZyZWUAjgoUX193YmdfcmF3dmVjdG9yX2ZyZWUAjgoccmF3c2VyaWFsaXphdGlvbnBpcGVsaW5lX25ldwC8CiZyYXdyYXljb2xsaWRlcmludGVyc2VjdGlvbl9mZWF0dXJlVHlwZQCjChZyYXdyYXlpbnRlcnNlY3Rpb25fdG9pALMKD3Jhd3NoYXBldG9pX3RvaQCzCg1yYXdyb3RhdGlvbl94ALMKDXJhd3JvdGF0aW9uX3oAlwoLcmF3dmVjdG9yX3gAswoLcmF3dmVjdG9yX3kApQoLcmF3dmVjdG9yX3oAlwoccmF3Y29sbGlkZXJzZXRfaXNIYW5kbGVWYWxpZAD6Bw9yYXd2ZWN0b3Jfc2V0X3gAnwoPcmF3dmVjdG9yX3NldF96AIMKI19fd2JnX3Jhd3NlcmlhbGl6YXRpb25waXBlbGluZV9mcmVlAI4KFnJhd3NoYXBlY29udGFjdF9wb2ludDEA3gcUcmF3c2hhcGV0b2lfd2l0bmVzczEAzAcVcmF3cmF5Y29sbGlkZXJ0b2lfdG9pAJcKF3Jhd3NoYXBlY29sbGlkZXJ0b2lfdG9pAJcKHHJhd3NoYXBlY29sbGlkZXJ0b2lfd2l0bmVzczEAyAckcmF3cmF5Y29sbGlkZXJpbnRlcnNlY3Rpb25fZmVhdHVyZUlkAIoJKXJhd3JheWNvbGxpZGVyaW50ZXJzZWN0aW9uX2NvbGxpZGVySGFuZGxlAKgIIHJhd3JheWNvbGxpZGVydG9pX2NvbGxpZGVySGFuZGxlAKgIInJhd3NoYXBlY29sbGlkZXJ0b2lfY29sbGlkZXJIYW5kbGUAqAgfX193YmluZGdlbl9hZGRfdG9fc3RhY2tfcG9pbnRlcgDHCw9fX3diaW5kZ2VuX2ZyZWUA3goRX193YmluZGdlbl9tYWxsb2MA4QkUX193YmluZGdlbl9leG5fc3RvcmUA8AoJzA4BAEEBC7MHwgvqCroBnAzIC90L3AuvC8kL8QjFCukL5wvCCvsIuATJCPYI7Qq6CNsK/gaLBKMJogfSB/YJ6AS0BKIEiAXsCuwK7ArsCuAI4gb4CPoChAKJA4UH5QScCMcGpgXNCYgMiguODIYMhQyRC94L0gqZBoIG9QTZBNQG6QGcA58I9AOrBf0E7ATrCusK6wrrCuAHrAaDCNMC4gHVAqEJnAnMCbAEpwX5BYUMjAv9CY8L3gvRCrwLgwboC8oLywvfC+sLnQyeDNIJxAKIBJ0MkgJGggq5BsYL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IAIqAgAhJyAGIAEqAhAiJSAllCABQRRqKgIAIiYgJpSSIAFBGGoqAgAiKCAolJJDAAAAAJIQfSIGICeTICSTIipeRQ0VICQgASoCDCIrIAZDAAAAAFsEfUMAAIA/BSAoIAaVISMgJSAGlSEiICYgBpULIgYgASoCACIllCAiIAFBBGoqAgAiJpSTIiggKJIiKZQgJiAjICaUIAYgAUEIaioCACIolJMiLCAskiIslCAlICIgKJQgIyAllJMiLSAtkiItlJOSICOTIjCUIS4gJCArIC2UICUgKZQgKCAslJOSIAaTIi+UISUgJCArICyUICggLZQgJiAplJOSICKTIiuUISQgJyAjlCEmICcgBpQhKCAnICKUIScCQCAHQQhqKAIARQRAQQAhAiAHQQRqKAIARQRAIAdBABDZBSAHQQhqKAIAIQILIAdBCGogAkEBajYCACAHKAIAIAJBMGxqIgFCADcCHCABICo4AhggASAkOAIMIAEgJjgCCCABICg4AgQgASAnOAIAIAFBFGogLjgCACABQRBqICU4AgAgAUEkakIANwIAIAFBLGpBADYCAAwBCyAHKAIAIgFCADcCHCABICQ4AgwgASAmOAIIIAEgKDgCBCABICc4AgAgASAqOAIYIAFBFGogLjgCACABQRBqICU4AgALIAcgKzgCGCAHICI4AgwgB0EgaiAwOAIAIAdBHGogLzgCACAHQRRqICM4AgAgB0EQaiAGOAIADBcLIAANAQsgAiADEKkJIgkEQCAIQQhqIgBBCGoiAiABQQhqKQIANwMAIABBGGoiAyABQRhqKAIANgIAIAIgAioCACIijDgCACAIIAEpAhA3AxggCCABKQIANwMIICIgCCoCGCImlCAIKgIIIiMgAyoCACIolJMiJCAkkiEnICMgCEEcaiIBKgIAIiqUIAgqAgwiJCAmlJMiJSAlkiElIAEgCCoCFCIrICeUICMgJZQgIiAkICiUICIgKpSTIikgKZIiKZSTkiAqkzgCACADICsgJZQgJCAplCAjICeUk5IgKJM4AgAgCCAjjDgCCCAIICSMOAIMIAggKyAplCAiICeUICQgJZSTkiAmkzgCGCAAIAQgBSAJIAYgB0EBEOcBQQAhAAwWCyAEIAUQqQkiBEUEQEEAIQAMFgtBACEAIAEgAiADIAQgBiAHQQAQ5wEMFQsCQAJA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AgAiA0EEajYCACADKAAAIgcOEwMEBQYHCBgXFhUUExIREA8ODQwBCyACQoHKADcDwAIgAkHAAmoQjwoMAQsgAkEBOgDAAiACIAetNwPIAiACQcACakGEisAAQZyEwAAQnggLIQEgAEEBNgIAIAAgATYCBAwiCyAFQQRPBEAgASAEQQhrNgIEIAEgA0EIajYCACAAQQhqIAMoAAQ2AgAgAEEANgIEIABBADYCAAwiCyACQoHKADcDwAIgACACQcACahCPCjYCBCAAQQE2AgAMIQsgAkHAAmogARCYBCACKALEAiEBIAIoAsACRQRAIABBDGogAkHIAmopAwA3AgAgAEEIaiABNgIAIABBATYCBCAAQQA2AgAMIQsgACABNgIEIABBATYCAAwgCyACQcACaiABEJgEIAACfyACKALEAiIEIAIoAsACDQAaIAJByAJqIgYpAwAhIiACQcACaiABEJgEIAIoAsQCIgMgAigCwAINABogASgCBCIFQQNLDQYgAkKBygA3A8ACIAJBwAJqEI8KCzYCBCAAQQE2AgAMHwsgAkHAAmogARCYBCACKALEAiEEIAAhAyACKALAAgRAIAQhAAUgAkHAAmoiAEEIaiIGKQMAISIgACABEJgEIAIoAsQCIQAgAigCwAJFDQQLIAMgADYCBCADQQE2AgAMHgsgAkHAAmogARCYBCAAIQMgAigCxAIiBCEAAkAgAigCwAINACACQcgCaiIGKQMAISIgAkHAAmogARCYBCACKALEAiIFIQAgAigCwAINACAGKQMAISMgAkHAAmogARCYBCACKALEAiEAIAIoAsACRQ0CCyADIAA2AgQgA0EBNgIADB0LIAJBBzYCNCACIAE2AjAgAkHAAmogAkEwahBIIAIoAsACDRAgAkHcAmooAgAiAUUEQEEAQcyEwABBnITAABCBCCEBDBwLIAJBgAFqIAJB1AJqKQIANwMAIAJB+ABqIAJBzAJqKQIANwMAIAJBjAFqIAJB4AJqKQMANwIAIAJBlAFqIAJB6AJqKQMANwIAIAJBnAFqIAJB8AJqKQMANwIAIAJBpAFqIAJB+AJqKQMANwIAIAJBrAFqIAJBgANqKAIANgIAIAIgAikCxAI3A3AgAiABNgKIASACQcACaiACQTBqELMDIAIoAsACRQRAIAIoAsQCIhlFBEBBAUHMhMAAQZyE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IAIoAkBFBEAgAiADNgLUAiACIAIoAkQ2AtACDAILIAJByABqKAIAIgBFDQQgAigCRCAAQdzmwwAoAgAiAEGPByAAGxEAAAALIBAgCUG0n8AAEK8IAAsgAyAFRgRAIB4gAxDXBSACKALYAiEFCyACKALQAiIEIAVBGGxqIgMgATYCDCADICc3AgQgAyAWNgIAIANBEGogIjcCACACIAVBAWoiCTYC2AILAkAgEQRAIAwoAgQiBkEESQ0dIAwgBkEEayIDNgIEIAwgDCgCACIBQQRqNgIAIANBBE8NAQwcCyACKALEAiIPBEAgAigC2AIhDSACKALUAiEGIAIoAtACIRAgAikDyAIhJyACKALAAiEDDCALQQFBkInAAEGchMAAEIEIIQEMHgsgASgAACEDIAwgBkEIazYCBCAMIAFBCGo2AgAgASgABCEFIAJB2ABqIAwQmAQgAigCXCEBIAIoAlhFDQALDBsLEN8JAAsgAyABQdzmwwAoAgAiAEGPByAAGxEAAAALDCALDCALDB4LIAIoAsQCIQEMGgsgA0EkaiACQcgCaikDADcCACADQSBqIAA2AgAgA0EYaiAjNwIAIANBFGogBTYCACADQQxqICI3AgAgA0EIaiAENgIAIANBBDYCBCADQQA2AgAMGwsgA0EYaiAGKQMANwIAIANBFGogADYCACADQQxqICI3AgAgA0EIaiAENgIAIANBAzYCBCADQQA2AgAMGgsgBikDACEjIAEgBUEEazYCBCABIAEoAgAiAUEEajYCACAAQSBqIAEqAAA4AgAgAEEYaiAjNwIAIABBFGogAzYCACAAQQxqICI3AgAgAEEIaiAENgIAIABBAjYCBCAAQQA2AgAMGQsgBUEETwRAIAEgBEEIazYCBCABIANBCGo2AgAgAEEIaiADKAAENgIAIABBEjYCBCAAQQA2AgAMGQsgAkKBygA3A8ACIAAgAkHAAmoQjwo2AgQgAEEBNgIADBgLIAJBwAJqIAEQViAAIQMgAigCxAIiBCEAAkACQCACKALAAg0AIARFBEBBAEG8jcAAQZyEwAAQgQghAAwBCyACQZwDaigCACEGIAJBmANqKAIAIQogAkGQA2ooAgAhBSACQYwDaigCACEMIAJBhANqKAIAIQkgAkGAA2ooAgAhESACQfgCaigCACENIAJB9AJqKAIAIQ8gAkHsAmooAgAhByACQegCaigCACEQIAJB4AJqKAIAIQggAkHcAmooAgAhFCACQdQCaigCACELIAJB0AJqKAIAIRIgAkHIAmooAgAhDiABKAIEIgBBA0sNASACQoHKADcDwAIgAkHAAmoQjwohAAJAIA5FDQAgDq1CDH6nRQ0AIAQQrAELAkAgC0UNACALQQN0RQ0AIBIQrAELAkAgCEUNACAIrUIUfqdFDQAgFBCsAQsCQCAHRQ0AIAdBBXRFDQAgEBCsAQsCQCANRQ0AIA1BAnRFDQAgDxCsAQsCQCAJRQ0AIAlBAnRFDQAgERCsAQsCQCAFRQ0AIAVBAnRFDQAgDBCsAQsCQCAGRQ0AIAZBAnRFDQAgChCsAQsLIAMgADYCBCADQQE2AgAMGAsgAkGgA2ooAgAhEyACQZQDaigCACEWIAJBiANqKAIAIRUgAkH8AmooAgAhGSACQfACaigCACEaIAJB5AJqKAIAIRsgAkHYAmooAgAhHCACQcwCaigCACEXIAEgAEEEazYCBCABIAEoAgAiAEEEajYCACADQegAaiAAKgAAOAIAIANB5ABqIBM2AgAgA0HgAGogBjYCACADQdwAaiAKNgIAIANB2ABqIBY2AgAgA0HUAGogBTYCACADQdAAaiAMNgIAIANBzABqIBU2AgAgA0HIAGogCTYCACADQcQAaiARNgIAIANBQGsgGTYCACADQTxqIA02AgAgA0E4aiAPNgIAIANBNGogGjYCACADQTBqIAc2AgAgA0EsaiAQNgIAIANBKGogGzYCACADQSRqIAg2AgAgA0EgaiAUNgIAIANBHGogHDYCACADQRhqIAs2AgAgA0EUaiASNgIAIANBEGogFzYCACADQQxqIA42AgAgA0EIaiAENgIAIANBETYCBCADQQA2AgAMFwsCQCAAAn8gBUEDTQRAIAJCgcoANwPAAiACQcACahCPCgwBCyABIARBCGsiBjYCBCABIANBCGo2AgAgBkEDTQRAIAJCgcoANwPAAiACQcACahCPCgwBCyADKAAEIQYgASAEQQxrIgU2AgQgASADQQxqNgIAIAVBA0sNASACQoHKADcDwAIgAkHAAmoQjwoLNgIEIABBATYCAAwXCyADKgAIISwgASAEQRBrNgIEIAEgA0EQajYCACAAQRBqIAMqAAw4AgAgAEEMaiAsOAIAIABBCGogBjYCACAAQRA2AgQgAEEANgIADBYLAkAgAAJ/IAVBA00EQCACQoHKADcDwAIgAkHAAmoQjwoMAQsgASAEQQhrIgY2AgQgASADQQhqNgIAIAZBA00EQCACQoHKADcDwAIgAkHAAmoQjwoMAQsgAygABCEGIAEgBEEMayIFNgIEIAEgA0EMajYCACAFQQNLDQEgAkKBygA3A8ACIAJBwAJqEI8KCzYCBCAAQQE2AgAMFgsgAyoACCEsIAEgBEEQazYCBCABIANBEGo2AgAgAEEQaiADKgAMOAIAIABBDGogLDgCACAAQQhqIAY2AgAgAEEPNgIEIABBADYCAAwVCyACQcACaiABEJgEAkAgAAJ/IAIoAsQCIgQgAigCwAINABogAkHIAmoiBikDACEiIAJBwAJqIAEQmAQgAigCxAIiBSACKALAAg0AGiAGKQMAISMgAkHAAmogARCYBCACKALEAiIDIAIoAsACDQAaIAEoAgQiBkEDSw0BIAJCgcoANwPAAiACQcACahCPCgs2AgQgAEEBNgIADBULIAJByAJqKQMAISQgASAGQQRrNgIEIAEgASgCACIBQQRqNgIAIABBLGogASoAADgCACAAQSRqICQ3AgAgAEEgaiADNgIAIABBGGogIzcCACAAQRRqIAU2AgAgAEEMaiAiNwIAIABBCGogBDYCACAAQQ42AgQgAEEANgIADBQLIAJBwAJqIAEQmAQgAigCxAIhAwJAIAAgAigCwAIEfyADBSABKAIEIgRBA0sNASACQoHKADcDwAIgAkHAAmoQjwoLNgIEIABBATYCAAwUCyACQcgCaikDACEiIAEgBEEEazYCBCABIAEoAgAiAUEEajYCACAAQRRqIAEqAAA4AgAgAEEMaiAiNwIAIABBCGogAzYCACAAQQ02AgQgAEEANgIADBMLAkAgAAJ/IAVBA00EQCACQoHKADcDwAIgAkHAAmoQjwoMAQsgASAEQQhrIgY2AgQgASADQQhqNgIAIAZBA0sNASACQoHKADcDwAIgAkHAAmoQjwoLNgIEIABBATYCAAwTCyADKgAEISwgASAEQQxrNgIEIAEgA0EMajYCACAAQQxqIAMqAAg4AgAgAEEIaiAsOAIAIABBDDYCBCAAQQA2AgAMEgsCQCAAAn8gBUEDTQRAIAJCgcoANwPAAiACQcACahCPCgwBCyABIARBCGsiBjYCBCABIANBCGo2AgAgBkEDSw0BIAJCgcoANwPAAiACQcACahCPCgs2AgQgAEEBNgIADBILIAMqAAQhLCABIARBDGs2AgQgASADQQxqNgIAIABBDGogAyoACDgCACAAQQhqICw4AgAgAEELNgIEIABBADYCAAwRCyACQcACaiABEFYgAigCwAJFBEAgAEEKNgIEIABBCGogAkHAAmpBBHJB4AAQ2QsaIABBADYCAAwRCyAAIAIoAsQCNgIEIABBATYCAAwQCyACIAE2AhggAkEDNgIcAkAgBUEHTQRAIAJCgcoANwPAAiACQcACahCPCiEDDAELIAEgBEEMazYCBCABIANBDGo2AgAgAkHwAGogAykABBDwBSACKAJwBEAgAigCdCEDDAELAkACQAJAAkAgAigCdCIOQYAgIA5BgCBJGyIDRQRAQQQhEAwBCyADQSRsIgRBBBDuCiIQRQ0BCyACQQA2AjggAiADNgI0IAIgEDYCMCAORQ0CIAJB8ABqQQRyIQUgAkHIAmohBANAAkAgAkHAAmogARCHBSACKALEAiIJIQMgAigCwAINACACQdgAaiIDQRBqIg0gBEEQaikCADcDACADQQhqIgcgBEEIaikCADcDACACIAQpAgA3A1ggAkHAAmogARAXIAIoAsQCIQMgAigCwAJFBEAgBSAEQcwBENkLGiACIAM2AnAgAkEQaiACQfAAahCZASACKAIUIQggAigCECEGIAIQ4QYiAzYCwAIgBkUNASAOQQFrIQ4gAkHAAmoiAxCRByACQUBrIgpBEGogDSkDACIiNwMAIApBCGogBykDACIjNwMAIAIgAikDWCIkNwNAIANBEGoiDSAiNwMAIAQgIzcDACACICQ3A8ACIAIoAjQgC0YEQCACQTBqIAsQ2AUgAigCMCEQIAIoAjghCwsgECALQSRsaiIDIAk2AgAgAyACKQPAAjcCBCADQQxqIAQpAwA3AgAgA0EUaiANKQMANwIAIANBIGogCDYCACADIAY2AhwgAiALQQFqIgs2AjggDkUNBAwCCwsLIAIoAjAhASALBEAgC0EkbCEHIAFBIGohAQNAIAFBBGsiBigCACIFKAIAIQQgBSAEQQFrNgIAIARBAUYEQCAGKAIAIAEoAgAQiggLIAFBJGohASAHQSRrIgcNAAsgAigCMCEBCyACKAI0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AigCwAJFBEAgAigCxAIiEUUEQEEBQeiKwABBnITAABCBCCEBDAILIAJByAJqKQMAISggAkHAAmogAkHYAGoQ9gICfyACKALAAkUEQCACKALEAiIMDQZBAkHoisAAQZyEwAAQgQgMAQsgAigCxAILIQEgKKciBEUNASAEQQJ0RQ0BIBEQrAEMAQsgAigCxAIhAQsgJqciBEUNByAEQQJ0RQ0HIAgQrAEMBwsgAigCxAIhAQwGC0EFQcyEwABBnITAABCBCCEBDAULIAJByAJqKQMAISsLIARBAUcEQCABKAIEIgQNAiACQoHKADcDwAIgAkHAAmoQjwohAQwDC0EGQcyEwABBnITAABCBCCEBDAILIAJCgcoANwPAAiACQcACahCPCiEBDAILIAEgBEEBazYCBCABIAEoAgAiAUEBajYCACABLQAAIQQgAEE8aiACQfAAaiIBQTRqKQIANwIAIABBNGogAUEsaikCADcCACAAQSxqIAFBJGopAgA3AgAgAEEkaiABQRxqKQIANwIAIABBHGogAUEUaikCADcCACAAQRRqIAFBDGopAgA3AgAgAEEMaiACKQJ0NwIAIABBxABqIAFBPGooAgA2AgAgAigCcCEBIABB0AFqIAQ6AAAgAEHIAWogKzcCACAAQcQBaiAMNgIAIABBvAFqICg3AgAgAEG4AWogETYCACAAQbABaiAmNwIAIABBrAFqIAg2AgAgAEGkAWogKjcCACAAQaABaiAUNgIAIABBmAFqICM3AgAgAEGUAWogCTYCACAAQYwBaiAiNwIAIABBiAFqIAo2AgAgAEGEAWogDTYCACAAQYABaiAGNgIAIABB/ABqIBA2AgAgAEH0AGogJzcCACAAQfAAaiAPNgIAIABB7ABqIAM2AgAgAEHoAGogJEIgiD4CACAAQeQAaiASNgIAIABB4ABqIAs2AgAgAEHYAGogJTcCACAAQdQAaiAONgIAIABBzABqICk3AgAgAEHIAGogGTYCACAAQQhqIAE2AgAgAEEFNgIEIABB0wFqIAJBImotAAA6AAAgACACLwAgOwDRASAAQQA2AgAMCQsgCEUNACAopyEEAkAgJqciBUUNACAFQQJ0RQ0AIAgQrAELAkAgBEUNACAEQQJ0RQ0AIBEQrAELICunIgRFDQAgBEECdEUNACAMEKwBCyAKRQ0CICOnIQQC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wAFqIgEgCSADIAoQygEgASAJIAYgCxDKASABIAkgCCANEMoBIAQoAuABIgFFDQogK4whHCAEKALYASIGIAFBA3RqIQ0gBCgC1AEiCiEFA0AgBigCACIBIAVPBEAgASAFQdCbwgAQrwgACwJAIAQoAswBIAFBNGxqIggtADANACAIIAYoAgQiA0ECakEDcEECdGooAgAhCyAIIANBAWpBA3BBAnRqKAIAIQMgBCgCwAEhECAEKALIASEPIAQgCTYCkAIgBCADNgKMAiAEIAs2AogCIAQgBUEBazYCyAIgBCAFQQFqNgLEAiAEIAE2AsACIARB+ANqIgEgECAPIARBiAJqIARBwAJqEPkCIARBwANqIgNBCGoiCyABQQhqKQMANwMAIANBEGoiECABQRBqKQMANwMAIANBGGoiDyABQRhqKQMANwMAIANBIGoiEiABQSBqKQMANwMAIANBKGoiFiABQShqKQMANwMAIANBMGoiFyABQTBqKAIANgIAIAQgBCkD+AM3A8ADIAQtAKwEIAggBigCBEEBakEDcEECdGpBDGogBTYCACAEKALUASIDIAQoAtABRgRAIBUgAxDqBSAEKALUASEDCyAEKALMASIZIANBNGxqIgEgBCkDwAM3AgAgAUEoaiAWKQMANwIAIAFBIGogEikDADcCACABQRhqIA8pAwA3AgAgAUEQaiAQKQMANwIAIAFBCGogCykDADcCACABQTBqIBcoAgA2AgAgBCADQQFqIgE2AtQBQQFxRQRAIAEhBQwBCwJAIAEgBUsEQCAEKALIASIIIBkgBUE0bGoiASgCACIDTQ0BIANBJGwgBCgCwAEiA2oiCyoCACABQRhqKgIAlCALKgIEIAFBHGoqAgCUkiALKgIIIAFBIGoqAgCUkiIaIBxdRQRAIBpDAACgtV0NECAajCEaIAQoAuwBIgEhAyAEKALoASABRgRAIA4gARCJBiAEKALsASEDCyAEKALkASIIIANBA3RqIgsgGjgCBCALIAU2AgAgBCADQQFqNgLsASAIIAFBA3RqIgMqAgQhGiADKAIAIQMCQCABRQRAQQAhBQwBCwNAQQBBfyAIIAFBAWsiC0EBdiIFQQN0aiIQQQRqKgIAIh8gGl8iDxtBAUECIA8bIBogH18bQQNrQX5JBEAgASEFDAILIAggAUEDdGogECkCADcCACAF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KAIsa3FrQQFGBEAgGRDaBCANKAIAQQFrIQ4gEygCACEHCyATIAdBAWogDnE2AgAgCigCACAHQQJ0aiALNgIACyABQQhqIQEgD0EIayIPDQALDAELCyAAKAIsIgEgAEEwaiIRKAIAIgdGDQYgACoCSCEnIABBNGoiDCgCACEIIABBOGoiCigCACEJIAMoAgghECADKAIAIRUDQCAAIAFBAWogCUEBa3EiAjYCLAJAIAggAUECdGooAgAiASAAKAIoIhRPBEAgAiEBDAELIAAoAiAiFiABQQd0aiINQQAgASAUSRsiEigCYCEBIAAoAjwhDiAAKAJEIRMgBgJ9AkACQAJ9AkACQAJAIBItAHgEQCABIBNPDQEgDiABQQR0aiIBKAIIIgMgEE8NBSAVIANBoAFsakEAIAMgEEkbIgsoAgBBAUcNBSALKAIEIAFBDGooAgBHDQUgBkHgAGoiBCALQRhqIgNBBGooAgAiATYCBCAEIAMoAgAgASgCCEEHakF4cWo2AgAgBkGQA2ogBigCYCALQdQAaiAGKAJkKAKIARECAAwDCyABIBRJDQELQ///f38hKEP//3//ISlD//9//yEqQ///f38hK0P//39/ISxD//9//wwCCyAGQZADaiAWIAFBB3RqEJEDCyAGKgKkAyEpIAYqAqADISogBioCmAMhKCAGKgKUAyErIAYqApADISwgBioCnAMLIR4gEigCZCEBAn0CQAJAIBItAHgEQCABIBNPDQIgDiABQQR0aiIBKAIIIgMgEE8NBCAVIANBoAFsakEAIAMgEEkbIgsoAgBBAUcNBCALKAIEIAFBDGooAgBHDQQgBkHYAGoiBCALQRhqIgNBBGooAgAiATYCBCAEIAMoAgAgASgCCEEHakF4cWo2AgAgBkGQA2ogBigCWCALQdQAaiAGKAJcKAKIARECAAwBCyABIBRPDQEgBkGQA2ogFiABQQd0ahCRAwsgBioCoAMhLSAGKgKcAyEuIAYqApgDIS8gBioClAMhMCAGKgKQAyExIAYqAqQDDAELQ///f38hL0P//3//IS1D//9//yEuQ///f38hMEP//39/ITFD//9//wshHCASKAJoIQECfQJAAkAgEi0AeARAIAEgE08NAiAOIAFBBHRqIgEoAggiAyAQTw0EIBUgA0GgAWxqQQAgAyAQSRsiCygCAEEBRw0EIAsoAgQgAUEMaigCAEcNBCAGQdAAaiIEIAtBGGoiA0EEaigCACIBNgIEIAQgAygCACABKAIIQQdqQXhxajYCACAGQZADaiAGKAJQIAtB1ABqIAYoAlQoAogBEQIADAELIAEgFE8NASAGQZADaiAWIAFBB3RqEJEDCyAGKgKgAyEyIAYqApwDITUgBioCmAMhJSAGKgKUAyEmIAYqApADISMgBioCpAMMAQtD//9/fyElQ///f/8hMkP//3//ITVD//9/fyEmQ///f38hI0P//3//CyEFIBIoAmwhAQJAIBItAHgEQCABIBNPDQMgDiABQQR0aiIBKAIIIgMgEE8NAiAVIANBoAFsakEAIAMgEEkbIgsoAgBBAUcNAiALKAIEIAFBDGooAgBHDQIgBkHIAGoiBCALQRhqIgNBBGooAgAiATYCBCAEIAMoAgAgASgCCEEHakF4cWo2AgAgBkGQA2ogBigCSCALQdQAaiAGKAJMKAKIARECAAwBCyABIBRPDQIgBkGQA2ogFiABQQd0ahCRAwsgBioCoAMhJCAGKgKcAyEdIAYqApgDIR8gBioClAMhICAGKgKQAyEhIAYqAqQDDAILQZiJwQBBE0Hk6MEAEMMLAAtD//9/fyEfQ///f/8hJEP//3//IR1D//9/fyEgQ///f38hIUP//3//CzgC7AMgBiAkOALoAyAGIB04AuQDIAYgHzgC4AMgBiAgOALcAyAGICE4AtgDIAYgBTgC1AMgBiAyOALQAyAGIDU4AswDIAYgJTgCyAMgBiAmOALEAyAGICM4AsADIAYgHDgCvAMgBiAtOAK4AyAGIC44ArQDIAYgLzgCsAMgBiAwOAKsAyAGIDE4AqgDIAYgKTgCpAMgBiAqOAKgAyAGIB44ApwDIAYgKDgCmAMgBiArOAKUAyAGICw4ApADIAZBsAJqIgMgBkGQA2oiARD2AyABIA0gAxDKAgJAIAYtAJADRQ0AIAYtAJEDRQ0AIAYtAJIDRQ0AIAYtAJMDRQ0AIAIhASANQQA6AHkMAQsgDSAGQbACakHgABDbCyEEIAYgJzgCnAMgBiAnOAKYAyAGICc4ApQDIAYgJzgCkAMgBCAGQZADahDvASAEKAJwIQMgCSAJQQFrIgEgByACa3FrQQFGBEAgGRDaBCAMKAIAIQggESgCACEHIAooAgAiCUEBayEBCyAIIAdBAnRqIAM2AgAgESAHQQFqIAFxIgc2AgAgACgCLCEBIARBADoAeQsgASAHRw0ACwwGCyALIAdB8NnAABCvCAALIAsgB0Hg2cAAEK8IAAtBmInBAEETQbTowQAQwwsACyAAKAIsIgEgAEEwaiIaKAIAIgdGDQIgACoCSCEzIABBOGohGyAAQTRqIRgDQCAAIBsoAgBBAWsgAUEBanEiBDYCLCAYKAIAIAFBAnRqKAIAIgEgACgCKCIQTwR/IAQFIAAoAiAhEiAGQv////v///+/fzcDiAIgBkL////79///v383A4ACIAZC////+/f//7//ADcD+AEgBkL////7////v383A/ABIAZC////+/f//79/NwPoASAGQv////v3//+//wA3A+ABIAZC////+////79/NwPYASAGQv////v3//+/fzcD0AEgBkL////79///v/8ANwPIASAGQv////v///+/fzcDwAEgBkL////79///v383A7gBIAZC////+/f//7//ADcDsAEgEiABQQd0aiIXQQAgASAQSRsiDkHgAGohEyACKAIIIRQgAigCACENIAMoAgghFSADKAIAIQsgACgCPCERIAAoAkQhDCAGQbABaiEHQQAhDwJAAkADQAJAIA8gE2ooAgAhCAJAIA4tAHhFBEAgCCAQTw0BIAZBkANqIgEgEiAIQQd0ahCRAyAHQRBqIAFBEGopAwA3AgAgB0EIaiABQQhqKQMANwIAIAcgBikDkAM3AgAMAQsgCCAMTw0AIBEgCEEEdGoiASgCCCIIIBVPDQEgCyAIQaABbGpBACAIIBVJGyIIKAIAQQFHDQEgCCgCBCABQQxqKAIARw0BIAhBCGohFgJAIAhBLGooAgBBAUYEQCAIKAIwIgEgFE8NBSANIAFB4AJsakEAIAEgFEkbIgEoAgBBAUcNBSABKAIEIAgoAjRHDQUgCCoCUCEtIAgqAkwhLiAIKgJIIS8gCCoCRCE0IAgqAkAhJyAIKgI8ISggCCoCOCEpIAFB3AFqKgIAISMgAUGsAWoqAgAhNSABQZwBaioCACEqIAFB/AFqKgIAITAgAUGkAWoqAgAhJSABQcwBaioCACEkIAFBjAFqKgIAIR0gAUHsAWoqAgAhHyABQZABaioCACEgIAEqAtgBISEgASoC4AEhIiABKgKgASErIAEqApgBISYgASoCgAIhMSABKgKoASEsIAEqAvgBITIgASoC0AEhHiABKgLwASEcIAYgAUH0AWoqAgAgAUGUAWoqAgCUIAWUIAFB1AFqKgIAkjgCmAMgBiAeIBwgIJQgBZSSOAKUAyAGICQgHyAdlCAFlJI4ApADIAYgIiA1ICsgMpQgLCAwlJIgNSAxlJIiIpQgKyAmIDKUICogMJSSICsgMZSSIh6UICwgKiAylCAlIDCUkiAsIDGUkiIclJKSIAWUkjgCpAMgBiAjICwgIpQgKiAelCAlIByUkpIgBZSSOAKgAyAGICEgKyAilCAmIB6UICogHJSSkiAFlJI4ApwDIAZBsAJqIAZBkANqIgogBSABQRhqIAFB0ABqEMIBIAYgNCAGKgK8AiIhlCApIAYqArACIh2UkyAoIAYqArQCIh+UkyAnIAYqArgCIiCUkzgCnAMgBiA0ICCUICggHZQgJyAhlJIgKSAflJOSOAKYAyAGICkgIJQgNCAflCAoICGUICcgHZSTkpI4ApQDIAYgJyAflCA0IB2UICkgIZSSkiAoICCUkzgCkAMgBiAGKgLIAiAtICEgLiAdlCAvIB+UkyIcIBySIiKUIB0gLyAglCAtIB2UkyIcIBySIh6UIB8gLSAflCAuICCUkyIcIBySIhyUk5KSkjgCqAMgBiAGKgLEAiAuICEgHpQgICAclCAdICKUk5KSkjgCpAMgBiAGKgLAAiAvICEgHJQgHyAilCAgIB6Uk5KSkjgCoAMgBkH4AGoiCSAIQRhqIghBBGooAgAiATYCBCAJIAgoAgAgASgCCEEHakF4cWo2AgAgBkGYAmogBigCeCAWQcwAaiAKIAYoAnwoArgBEQEADAELIAZBgAFqIgkgCEEYaiIIQQRqKAIAIgE2AgQgCSAIKAIAIAEoAghBB2pBeHFqNgIAIAZBmAJqIAYoAoABIBZBzABqIAYoAoQBKAKIARECAAsgByAGKQOYAjcCACAHQRBqIAZBmAJqIgFBEGopAwA3AgAgB0EIaiABQQhqKQMANwIACyAHQRhqIQcgD0EEaiIPQRBHDQEMAwsLQZiJwQBBE0GU6cEAEMMLAAtBmInBAEETQaTpwQAQwwsACyAGQZADaiIIIAZBsAFqQeAAENkLGiAGQbACaiIBIAgQ9gMgCCAXIAEQygICQAJAIAYtAJADRQ0AIAYtAJEDRQ0AIAYtAJIDRQ0AIAYtAJMDRQ0AIBooAgAhBwwBCyAXIAZBsAJqQeAAENsLIQEgBiAzOAKcAyAGIDM4ApgDIAYgMzgClAMgBiAzOAKQAyABIAZBkANqEO8BIAEoAnAhCCAbKAIAIgFBAWshByABIAcgGigCACIBIARrcWtBAUYEQCAZENoEIBsoAgBBAWshByAaKAIAIQELIBogAUEBaiAHcSIHNgIAIBgoAgAgAUECdGogCDYCAAsgF0EAOgB5IBkoAgALIgEgB0cNAAsMAgsgACgCLCIBIABBMGoiGCgCACIHRg0BIAAqAkghHyADKAIIIRUgAygCACELIABBOGohECAAQTRqIRYDQCAAIBAoAgBBAWsgAUEBanEiAjYCLCAWKAIAIAFBAnRqKAIAIgEgACgCKCIOTwR/IAIFIAAoAiAhEyAGQv////v///+/fzcDiAIgBkL////79///v383A4ACIAZC////+/f//7//ADcD+AEgBkL////7////v383A/ABIAZC////+/f//79/NwPoASAGQv////v3//+//wA3A+ABIAZC////+////79/NwPYASAGQv////v3//+/fzcD0AEgBkL////79///v/8ANwPIASAGQv////v///+/fzcDwAEgBkL////79///v383A7gBIAZC////+/f//7//ADcDsAEgEyABQQd0aiISQQAgASAOSRsiEUHgAGohDCAAKAI8IQogACgCRCEJIAZBsAFqIQFBACEHAkACQANAAkAgByAMaigCACEEAkAgES0AeEUEQCAEIA5PDQEgBkGQA2oiAyATIARBB3RqEJEDIAFBEGogA0EQaikDADcCACABQQhqIANBCGopAwA3AgAgASAGKQOQAzcCAAwBCyAEIAlPDQAgCiAEQQR0aiIDKAIIIgQgFU8NASALIARBoAFsakEAIAQgFUkbIgQoAgBBAUcNASAEKAIEIANBDGooAgBHDQEgBEEIaiENAkAgBEEsaigCAEEBRgRAIAQoAjAiAyAXTw0FIBQgA0HgAmxqQQAgAyAXSRsiAygCAEEBRw0FIAMoAgQgBCgCNEcNBSAGIAQqAkQiIiADQUBrKgIAIh2UIAQqAjgiHiADQTRqKgIAIiaUkyAEKgI8IhwgA0E4aioCACIjlJMgBCoCQCIFIANBPGoqAgAiJJSTOAKcAyAGICIgJJQgHCAmlCAFIB2UkiAeICOUk5I4ApgDIAYgHiAklCAiICOUIBwgHZQgBSAmlJOSkjgClAMgBiAFICOUICIgJpQgHiAdlJKSIBwgJJSTOAKQAyAmIAQqAkwiIpQgIyAEKgJIIh6UkyIFIAWSISAgHiAklCAEKgJQIhwgJpSTIgUgBZIhISAGIANBzABqKgIAIBwgHSAglCAmICGUICMgHCAjlCAiICSUkyIFIAWSIgWUk5KSkjgCqAMgBiADQcgAaioCACAiIB0gIZQgJCAFlCAmICCUk5KSkjgCpAMgBiADQcQAaioCACAeIB0gBZQgIyAglCAkICGUk5KSkjgCoAMgBkHoAGoiCCAEQRhqIgRBBGooAgAiAzYCBCAIIAQoAgAgAygCCEEHakF4cWo2AgAgBkGwAmogBigCaCANQcwAaiAGQZADaiAGKAJsKAK4AREBAAwBCyAGQfAAaiIIIARBGGoiBEEEaigCACIDNgIEIAggBCgCACADKAIIQQdqQXhxajYCACAGQbACaiAGKAJwIA1BzABqIAYoAnQoAogBEQIACyABIAYpA7ACNwIAIAFBEGogBkGwAmoiA0EQaikDADcCACABQQhqIANBCGopAwA3AgALIAFBGGohASAHQQRqIgdBEEcNAQwDCwtBmInBAEETQfTowQAQwwsAC0GYicEAQRNBhOnBABDDCwALIAZBkANqIgMgBkGwAWpB4AAQ2QsaIAZBsAJqIgEgAxD2AyADIBIgARDKAgJAAkAgBi0AkANFDQAgBi0AkQNFDQAgBi0AkgNFDQAgBi0AkwNFDQAgGCgCACEHDAELIBIgBkGwAmpB4AAQ2wshASAGIB84ApwDIAYgHzgCmAMgBiAfOAKUAyAGIB84ApADIAEgBkGQA2oQ7wEgASgCcCEDIBAoAgAiAUEBayEHIAEgByAYKAIAIgEgAmtxa0EBRgRAIBkQ2gQgECgCAEEBayEHIBgoAgAhAQsgGCABQQFqIAdxIgc2AgAgFigCACABQQJ0aiADNgIACyASQQA6AHkgGSgCAAsiASAHRw0ACwwBCyAAKgJIISYgAEHEAGpBADYCACAAQShqQQA2AgAgBkEBOgCPAQJAAkAgA0EYaigCACIKBEAgCkH/////A3EiASAKRw0EIApBAnQiB0EASA0EIAEgCkZBAnQhCCAHBH8gByAIEO4KBSAICyIBDQEMCQsgBkEANgKYASAGQgQ3A5ABIAYgCjYCqAEgBkIENwOgASAGQThqIgFBADoABCABQX82AgBBBCEIDAELIAZBADYCmAEgBiABNgKQASAGIAo2ApQBIAqtQhh+IjZCIIinIgENAiA2pyIHQQBIDQIgAUVBAnQhCCAHBH8gByAIEO4KBSAICyIBRQ0HIAYgATYCoAEgBiAKNgKkAQJAIApBAkkNACAKQQFrIghBA3EhByAKQQJrQQNPBEAgCEF8cSEPA0AgAUL////79///v/8ANwIAIAFB2ABqQv////v///+/fzcCACABQdAAakL////79///v383AgAgAUHIAGpC////+/f//7//ADcCACABQUBrQv////v///+/fzcCACABQThqQv////v3//+/fzcCACABQTBqQv////v3//+//wA3AgAgAUEoakL////7////v383AgAgAUEgakL////79///v383AgAgAUEYakL////79///v/8ANwIAIAFBEGpC////+////79/NwIAIAFBCGpC////+/f//79/NwIAIAFB4ABqIQEgD0EEayIPDQALCyAHRQ0AA0AgAUL////79///v/8ANwIAIAFBEGpC////+////79/NwIAIAFBCGpC////+/f//79/NwIAIAFBGGohASAHQQFrIgcNAAsLIAFC////+/f//79/NwIIIAFC////+/f//7//ADcCACABQRBqQv////v///+/fzcCACAGIAo2AqgBIANBGGooAgAhCSAGQUBrIgFBADoABCABQX82AgAgCUUEQEEEIQhBACEJDAELIAlB/////wBxIgEgCUcNAiAJQQR0IgdBAEgNAiAGLQBEIQwgBigCQCEKIAEgCUZBAnQhASAHBH8gByABEO4KBSABCyIIRQ0DAkAgCUECSQRAQQEhCSAIIQEMAQsgCUEBayIBQQNxIQcCQCAJQQJrQQNJBEAgCCEBDAELIAFBfHEhDiAIIQEDQCABIAo2AgAgAUE4akJ/NwIAIAFBNGogDDoAACABQTBqIAo2AgAgAUEoakJ/NwIAIAFBJGogDDoAACABQSBqIAo2AgAgAUEYakJ/NwIAIAFBFGogDDoAACABQRBqIAo2AgAgAUEIakJ/NwIAIAFBBGogDDoAACABQUBrIQEgDkEEayIODQALCyAHRQ0AA0Ag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OALIAiAGIAJByABqKgIAICAgHSAclCAkIAWUICUgHpSTkpKSOALEAiAGIAJBxABqKgIAICEgHSAFlCAjIB6UICQgHJSTkpKSOALAAiAGQRhqIgQgAUE8ayIDQQRqKAIAIgI2AgQgBCADKAIAIAIoAghBB2pBeHFqNgIAIA0gBigCGCABIAZBsAJqIAYoAhwoArgBEQEABSAGQSBqIgQgAUE8ayIDQQRqKAIAIgI2AgQgBCADKAIAIAIoAghBB2pBeHFqNgIAIA0gBigCICABIAYoAiQoAogBEQIACyAGIAw2ApQDIAYgETYCkAMgBkGYAmogESAMIA0QrwEMAAsACyADKAIAIgEgAygCCEGgAWxqIQggBkGYA2ohCkEAIQcDQCABIAhGDQEgB0EBaiEHIAEoAgAgAUGgAWohAUUNACABQZwBaygCACEJIAZBEGoiBCABQYgBayIDQQRqKAIAIgI2AgQgBCADKAIAIAIoAghBB2pBeHFqNgIAIAogBigCECABQcwAayAGKAIUKAKIARECACAGIAk2ApQDIAYgB0EBayICNgKQAyAGQZgCaiACIAkgChCvAQwACwALIABBIGohAyAAQQhqIQggBkGwAWoQqQggBkEIaiIBQQA6AAQgAUF/NgIAIAYtAAwhAiAGKAIIIQEgACgCKCIPIABBJGooAgBGBEAgAyAPEP4FIAAoAighDwsgACgCICAPQQd0aiAGQbABakHgABDZCyIEQQA7AXggBEH0AGogAjoAACAEIAE2AnAgBEHoAGpCfzcDACAEQoGAgIBwNwNgIAAgD0EBajYCKCAGQQA6AAQgBkEANgIAIAZBkANqIgIgCCAGQY8BaiAGKAKQASAGKAKYASAGQaABaiAGKAIAIAYtAAQgJhA6IAZBmAJqIgFBEGogBkGkA2opAgAiNzcDACABQQhqIAZBnANqKQIAIjg3AwAgBiAGKQKUAyI2NwOYAiAIQRBqIDc3AgAgCEEIaiA4NwIAIAggNjcCACACQRBqIDc3AwAgAkEIaiA4NwMAIAZB6ANqQv////v///+/fzcDACAGQeADakL////79///v383AwAgBkHQA2pC////+////79/NwMAIAZByANqQv////v3//+/fzcDACAGQbgDakL////7////v383AwAgBkGwA2pC////+/f//79/NwMAIAYgNjcDkAMgBkL////79///v/8ANwPYAyAGQv////v3//+//wA3A8ADIAZC////+/f//7//ADcDqAMgBkGwAmogAhD2AyAAKAIoRQ0FIAMoAgAgBkGwAmpB4AAQ2QsaAkAgBigCpAEiAEUNACAArUIYfqdFDQAgBigCoAEQrAELIAYoApQBIgBFDQAgAEECdEUNACAGKAKQARCsAQsgBkHwA2okAA8LEN8JAAsgByABQdzmwwAoAgAiAEGPByAAGxEAAAALQZiJwQBBE0HE6MEAEMMLAAtBmInBAEETQdTowQAQwwsAC0EAQQBBwNjAABCvCAALIAcgCEHc5sMAKAIAIgBBjwcgABsRAAAAC4eQBQM7f0J9A34jAEHgAmsiIiQAIAZBJGoiDygCACEZIA9BADYCACAGQSBqKAIAIUYgBigCHCFHIAZCBDcCHCAiQRBqIAdBJGoiDygCADYCACAHKQIcIYwBIAdCBDcCHCAHKAIoIUQgD0KAgICAwAA3AgAgB0EsaiIPKAIAIUggB0EwaigCACEwIA9CADcCACAiIIwBNwMIIAAtAMgDBEAgAEIANwMwIABCADcDGCAAQgA3AwAgAEIANwPgASAAQgA3A6gBIABB2AFqQQA2AgAgAEGQAWpCADcDACAAQfgAakIANwMAIABB4ABqQgA3AwAgAEHIAGpCADcDACAAQcADakEANgIAIABBwAJqQgA3AwAgAEGoAmpCADcDACAAQZACakIANwMAIABB+AFqQgA3AwAgAEHAAWpCADcDACAAQagDakIANwMAIABBkANqQgA3AwAgAEH4AmpCADcDACAAQeACakIANwMAIABB2AJqQgA3AwALICIoAgghGCAiKAIQIQ8jAEHQAGsiESQAIBFBKGpBADYCACARQgQ3AyAgEUIANwMYIBFBkJLDADYCFCARQQA2AhACQAJAAkAgD0UNACAYIA9BA3RqISkgEUEgaiEsIAYoAgghHCAGKAIAISsgBygCCCEvIAcoAgAhPQNAAkAgGCgCACIPIC9JIhBFDQAgPSAPQaABbGpBACAQGyIPKAIAQQFHDQAgDygCBCAYKAIERw0AAkAgDygCKCITQQJxRQ0AIA8oAixBAUcNAAJAIA8oAjAiECAcTw0AICsgEEHgAmxqQQAgECAcSRsiECgCAEEBRw0AIBAoAgQgDygCNEcNACAPQcwA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ACATQcwBaiAQQQhqKQMANwIAIBMgIikDqAI3AsQBDAELICJBiAJqIgIgE0HEAWogSiABQRhqIAFB0ABqEMIBICJBqAJqIhBBGGoiEyACQRhqKAIAIhQ2AgAgPSAiKQOIAiKMATcCACA9QQhqIAJBCGopAwAijQE3AgAgPUEQaiACQRBqKQMAIo4BNwIAID1BGGogFDYCACABIIwBNwIYIAFBIGogjQE3AgAgAUEoaiCOATcCACABQTBqIBMpAwA3AgAgAUE4aiAQQSBqKQMANwIAIAFBQGsgEEEoaikDADcCACABQcgAaiAQQTBqKQMANwIACyASIA9BCGoiD0cNAAsLQQAhAkEAIRVBACEdQQAhG0EAIR4jAEHwA2siHCQAICJBGGoiFioCACFKAkACQAJAAkACQAJAAkACQAJAAkAgFigCMCI6BEAgA0E8aiIQQQA2AgAgA0EwaiITQQA2AgAgAyADKAIkQQFqNgIkIANBCGoiDygCACEBIA9BADYCACADQShqIRIgA0E0aiEZIAMoAgAhDyABBEAgD0EIayEbIAFBA3QhDyAGKAIIIQIgBigCACEdIANBLGohFCADQThqIRcgA0E8aiEgA0AgDyAbaikCACKMAachESCMAUIgiKchFSACIBFNDQsgHSARQeACbGpBACACIBFLGyIBKAIAQQFHDQsgFSABKAIERw0LAn8CQAJAAkAgAUHMAWoqAgAiSyBLlCABQdABaioCACJLIEuUkiABQdQBaioCACJLIEuUkkMAAAAAkiABKgLIAiJLIEuLlF0EQCABKgLYASJLIEuUIAEqAtwBIksgS5SSIAEqAuABIksgS5SSIAEqAswCIksgS4uUXQ0BCyABQQA2AtACDAELIAEgSiABKgLQApIiSzgC0AIgS0MAAABAYA0BCyAgKAIAIgEgFygCAEYEQCAZIAEQ+gUgECgCACEBCyAZKAIAIAFBA3RqIhggETYCACAQIR4gGEEEagwBCyABQQE6ANQCIAMoAjAiASAUKAIARgRAIBIgARD6BSATKAIAIQELIBIoAgAgAUEDdGoiGCARNgIAIBMhHiAYQQRqCyAVNgIAIB4gAUEBajYCACAPQQhrIg8NAAsLIAMoAgwiICADQRRqKAIAIgFBA3RqISEgAQRAIAVBCGohGiAHKAIIISUgBygCACEfIAYoAgghIyAG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IB0gFSARQYwCaiBKIBQgFyAaICYgICAhEIoBCyAUQRBqJAAgFUHQA2ohFSASQdADayISDQALCyA0IAJBCGoiAkcNAAsgLigCACEXIDIoAgAhAiAYQdABaiIgQQA2AgAgAiAXSw0BIBhBxAFqKAIAIScgGEHgAGooAgAhHSAYKAJYIRAgGCgCvAELIQEgFyAvTQRAICAgFyACayIUBH8gGUHYAGpCADcDACAZQdAAakIANwMAIBlCADcDSEEAIRogFCAYQcwBaigCAEsEQCAYQcgBakEAIBQQ5gUgGCgC0AEhGgsgGCgCyAEgGkEYbGohEiAUQQJPBEAgFyACQX9zaiIhQQFxIBlB1ABqIREgGUGEBWohFSACIBdBAmtHBEAgIUF+cSEXA0AgGUH4BGoiIUEIaiICQQA2AgAgFSARKQIANwIAIBVBCGoiIyARQQhqIikoAgA2AgAgEkIANwIAIBJBCGogAikDADcCACASQRBqICFBEGoiISkDADcCACACQQA2AgAgFSARKQIANwIAICMgKSgCADYCACASQRhqQgA3AgAgEkEgaiACKQMANwIAIBJBKGogISkDADcCACASQTBqIRIgF0ECayIXDQALCyAUIBpqQQFrIRoEfyAZQfgEaiICQQhqIhRBADYCACAVIBEpAgA3AgAgFUEIaiARQQhqKAIANgIAIBJCADcCACASQQhqIBQpAwA3AgAgEkEQaiACQRBqKQMANwIAIBJBGGoFIBILIRILIBJCADcCACASQRBqQgA3AgAgEkEIakIANwIAIBpBAWoFQQALIhU2AgAgCSgCACIhIAkoAggiLEGYAmxqIQJBACEgICEhEgNAIAIgEkcEQCASKAIAIBJBmAJqIRJFDQEgEkHQAGsoAgAgIGohIAwBCwsCQAJAICBFBEBBBCECDAELICBB/////wNxIgIgIEcNGCAgQQJ0IhJBAEgNGCACICBGQQJ0IREgEgR/IBIgERDuCgUgEQsiAkUNASACQQAgIEECdBDaCxoLIBhB1AFqISkCQCAYQdgBaiIRKAIAIhJFDQAgEkECdEUNACApKAIAEKwBCyAYQeABaiAgNgIAIBhB3AFqICA2AgAgESAgNgIAICkgAjYCACAuKAIAIhEgMigCACISTwRAIBEgL00EQCARIBJGDRggJCARQQN0aiE0ICQgEkEDdGohFyAJ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CGpCADcAACAlQgA3AAAgGkIANwAAIBpBCGpCADcAACAtQgA3AAAgLUEIakIANwAAIBhCADcAACAYQQhqQgA3AAAgHUIANwAAIB1BCGpCADcAACAiQbgBaiIQQQ9qIhkgIkGoAmoiFUEPaigAADYAACAQQQhqIiYgFUEIaiIQKQAANwMAICIgIikAqAI3A7gBICJBoAFqIhVBD2oiJyAiQYgCaiIoQQ9qKAAANgAAIBVBCGoiKiAoQQhqKQAANwMAICIgIikAiAI3A6ABICJBiAFqIhVBD2oiKCAiQfUBaiIpQQ9qKAAANgAAIBVBCGoiLCApQQhqKQAANwMAICIgIikA9QE3A4gBICJB8ABqIhVBD2oiKSAiQeIBaiIrQQ9qKAAANgAAIBVBCGoiLyArQQhqKQAANwMAICIgIikA4gE3A3AgIkHYAGoiFUEPaiIrICJBzwFqIj1BD2ooAAA2AAAgFUEIaiJBID1BCGopAAA3AwAgIiAiKQDPATcDWCAhQgA3AgAgIUEIakEANgIAICJBIGoiFSASQTBqKAIANgIAICIgEikCKDcDGCAbIBcpAwA3AwAgECAVKQMANwMAICIgIikDGDcDqAIgD0EcaiCNATcCACAPIIwBNwIUIA9BjAFqQf////sHNgIAIA9BhAFqQoCAgIDw//+/fzcCACAPQfwAakL////7////v/8ANwIAIA9B9ABqQv////sHNwIAIA9B7ABqQoCAgIDw//+/fzcCACAPQeQAakL////7////v/8ANwIAIA9B3ABqQv////sHNwIAIA9B1ABqQoCAgIDw//+/fzcCACAPQcwAakL////7////v/8ANwIAIA9BxABqQgA3AgAgD0E8akKAgID8AzcCACAPQbwCaiI9LQAAITUgD0EkaiAiKQOoAjcCACAPQSxqIBApAwA3AgAgD0E0aiAbKQMANwIAIA9BoAFqQQA2AgAgD0GYAWpCADcCACAPQZABakIANwIAIA9BpAFqQv////sHNwIAIA9BrAFqQQA6AAAgD0HAAWpC////+wc3AgAgD0HIAWpBADoAACAPQa0BaiAiKQO4ATcAACAPQbUBaiAmKQMANwAAIA9BvAFqIBkoAAA2AAAgD0HJAWogIikDoAE3AAAgD0HRAWogKikDADcAACAPQdgBaiAnKAAANgAAIA9B5AFqQQA6AAAg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NwIAIA9BNGpCADcCACAPQYwBakH////7BzYCACAPQYQBakKAgICA8P//v383AgAgD0H8AGpC////+////7//ADcCACAPQfQAakL////7BzcCACAPQewAakKAgICA8P//v383AgAgD0HkAGpC////+////7//ADcCACAPQdwAakL////7BzcCACAPQdQAakKAgICA8P//v383AgAgD0HMAGpC////+////7//ADcCACAPQcQAakIANwIAIA9BPGpCgICA/AM3AgAgIiCMATcDqAIgD0GgAWpBADYCACAPQZgBakIANwIAIA9BkAFqQgA3AgAgD0GkAWpC////+wc3AgAgD0GsAWpBADoAACAPQcABakL////7BzcCACAPQcgBakEAOgAAIA9BrQFqICIpA7gBNwAAIA9BtQFqIBkpAwA3AAAgD0G8AWogFCgAADYAACAPQckBaiAiKQOgATcAACAPQdEBaiAjKQMANwAAIA9B2AFqICQoAAA2AAAgD0HkAWpBADoAACAPQdwBakL////7BzcCACAPQYACakEAOgAAIA9B+AFqQv////sHNwIAIA9BnAJqQQA6AAAgD0GUAmpC////+wc3AgAgD0H0AWogJygAADYAACAPQe0BaiAmKQMANwAAIA9B5QFqICIpA4gBNwAAIA9BkAJqICooAAA2AAAgD0GJAmogKCkDADcAACAPQYECaiAiKQNwNwAAIA9BrAJqICwoAAA2AAAgD0GlAmogKSkDADcAACAPQZ0CaiAiKQNYNwAAIA9BuAJqQQA6AAAgD0GwAmpC////+wc3AgAgD0HQAmogFikAADcAACAPQckCaiAXKQAANwAAIA9BwQJqICJBIGopAAA3AAAgD0G5AmogIikAGDcAACAPQeACaiAVKQMANwIAIA9B2AJqICIpA6gCNwIAAkACQCARKAIQBEAgESgCCEEANgIEIBEgESgCyAFBBmo2AsgBIBEoAhQhGQJAIBEoAhwiFEUEQEEEIRAMAQsgFEH/////A3EiDyAURw0CIBRBAnQiFUEASA0CIA8gFEZBAnQhDyAVBH8gFSAPEO4KBSAPCyIQRQ0KCyAQIBkgFEECdBDZCyEPICIgESgCICIQNgK0AiAiIBQ2ArACICIgFDYCrAIgIiAPNgKoAiAiQYgCaiAQQQZqIhUgIkGoAmoQ3gQgIigCiAIh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AgAhbiABQeAAaioCACFvIAFB3ABqKgIAIXAgAUHYAGoqAgAhcSABQdQAaioCACFyIAFB0ABqKgIAIXMgAUHMAGoqAgAhdCABQcgAaioCACF1IAFBxABqKgIAIXYgAUFAayoCACF3IAFBPGoqAgAheCABQSBqKgIAIXkgAUEcaioCACF6IAFBGGoqAgAheyABQRRqKgIAIXwgAUEMaikCACFgIAFBCGooAgAhDCABQfQCaioAACF9IAFB8AJqKgAAIX4gAUHsAmoqAAAhfyABQegCaioAACGAASABQeQCaioAACGBASABQbwCai0AACEKIAFBuAJqLQAAIQkgAUG0AmoqAAAhggEgAUGwAmoqAAAhgwEgAUGcAmotAAAhJiABQZgCaioAACGEASABQZQCaioAACGFASABQYACai0AACEcIAFB/AFqKgAAIYYBIAFB+AFqKgAAIYcBIAFB5AFqLQAAIRYgAUHgAWoqAAAhiAEgAUHcAWoqAAAhiQEgAUHIAWotAAAhHSABQcQBaioAACGKASABQcABaioAACGLASABQb0Cai8AACFaIAFBvwJqLQAAIVsgBEGABmoiBkEIaiIeIAFBLGopAgA3AwAgBkEQaiI6IAFBNGopAgA3AwAgBEHoBWoiBkEIaiI7IAFBmAFqKQIANwMAIAZBEGoiPCABQaABaigCADYCACAEIAFBJGopAgA3A4AGIAQgAUGQAWopAgA3A+gFIARB0AVqIgZBD2oiPSABQbwBaigAADYAACAGQQhqIj4gAUG1AWopAAA3AwAgBCABQa0BaikAADcD0AUgBEG4BWoiBkEPaiI/IAFB2AFqKAAANgAAIAZBCGoiQCABQdEBaikAADcDACAEIAFByQFqKQAANwO4BSAEQaAFaiIGQQ9qIkEgAUH0AWooAAA2AAAgBkEIaiJCIAFB7QFqKQAANwMAIAQgAUHlAWopAAA3A6AFIARBiAVqIgZBD2oiQyABQZACaigAADYAACAGQQhqIkQgAUGJAmopAAA3AwAgBCABQYECaikAADcDiAUgBEHwBGoiBkEPaiJFIAFBrAJqKAAANgAAIAZBCGoiRiABQaUCaikAADcDACAEIAFBnQJqKQAANwPwBCAEQe4EaiJcIAFBuwJqLQAAOgAAIAQgAUG5AmovAAA7AewEIARByARqIgZBIGoiRyABQeACaigAADYCACAGQRhqIkggAUHYAmopAAA3AwAgBkEQaiJJIAFB0AJqKQAANwMAIAZBCGoiSiABQcgCaikAADcDACAEIAFBwAJqKQAANwPIBCAEQcAEaiJLIAFBgANqKAAANgIAIAQgAUH4AmopAAA3A7gEIARBkAdqIAFBhANqQcwAENkLGgJAAkACQAJAAkACQAJAIAdFIAIgEkZyIl1FBEAgDCAOTw0CIAIgDk8NAyAHIAhqIAggDEECdGooAgA2AgAMAQsgAiAOTw0DIAcgCGogBCgCoAIiCzYCACAkQgA3AgAgJEEIakIANwIAIARBBDYCmAYgBEGoAmogBEGYBmoiARBcICNCADcCACAjQQhqQgA3AgAgBEEENgLABiABIARBwAZqEFwgBCgCnAIgC0YEQCAEQZgCaiEQIwBBIGsiASQAAkACQCALIAtBAWoiC0sNAEEEIQYgEEEEaigCACJMQQF0IicgCyALICdJGyILQQQgC0EESxsiC61CkAJ+ImFCIIhQQQJ0IScgYachXgJAIExFBEBBACEGDAELIAEgECgCADYCECABIEytQpACfj4CFAsgASAGNgIYIAEgXiAnIAFBEGoQ+QYgASgCAARAIAFBCGooAgAiAEUNASABKAIEIABB3ObDACgCACIAQY8HIAAbEQAAAAsgASgCBCEGIBBBBGogCzYCACAQIAY2AgAgAUEgaiQADAELEN8JAAsgBCgCoAIhCwsgBCgCmAIgC0GQAmxqIgFBBDYCSCABQoCAgIDAADcCCCABQgQ3AgAgASAEKQOoAjcCXCABQUBrQgA3AgAgAUE4akKAgICAwAA3AgAgAUEwakIANwIAIAFBKGpCgICAgMAANwIAIAFBIGpCADcCACABQRhqQoCAgIDAADcCACABQRBqQgA3AgAgAUHUAGpCADcCACABQcwAakIANwIAIAFB5ABqIARBqAJqIgZBCGopAwA3AgAgAUHsAGogBkEQaikDADcCACABQfQAaiAGQRhqKQMANwIAIAFB/ABqIAZBIGopAwA3AgAgAUGQAWpCADcCACABQQQ2AoQBIAFBiAFqQgA3AgAgAUH4AWpCgICAgMAANwIAIAFCBDcC8AEgAUHoAWpCADcCACABQeABakKAgICAwAA3AgAgAUHYAWpCADcCACABQdABakKAgICAwAA3AgAgAUIENwLIASABQgA3AsABIAFBuAFqIARBmAZqIgZBIGopAwA3AgAgAUGwAWogBkEYaikDADcCACABQagBaiAGQRBqKQMANwIAIAFBoAFqIAZBCGopAwA3AgAgASAEKQOYBjcCmAEgAUGFAmpCADcAACABQYACakIANwIAIAQgC0EBajYCoAILIAIgDkYNAyAEKAKgAiIGIAcgCGooAgAiAU0NBCAFIAdqIAQoApgCIAFBkAJsaiIBQQhqIgYoAgA2AgAgXUUEQCBaIFtBEHRyIRAMBgsgIkEIakIANwAAICJCADcAACAhQgA3AAAgIUEIakIANwAAIBlCADcAACAZQQhqQgA3AAAgGkIANwAAIBpBCGpCADcAACAVQgA3AAAgFUEIakIANwAAID4gBEGYBmoiCUEIaikAADcDACA9IAlBD2ooAAA2AAAgBCAEKQCYBjcD0AUgPyAEQcAGaiIJQQ9qKAAANgAAIEAgCUEIaikAADcDACAEIAQpAMAGNwO4BSBBIARB/QZqIglBD2ooAAA2AAAgQiAJQQhqKQAANwMAIAQgBCkA/QY3A6AFIEMgBEHqBmoiCUEPaigAADYAACBEIAlBCGopAAA3AwAgBCAEKQDqBjcDiAUgRSAEQdcGaiIJQQ9qKAAANgAAIEYgCUEIaikAADcDACAEIAQpANcGNwPwBCATQgA3AgBBACEQIBNBCGpBADYCACAEQagCaiIJQQhqIgogSygCADYCACAEIAQpA7gENwOoAiA6IAlBEGopAwA3AwAgHiAKKQMANwMAIAQgBCkDqAI3A4AGIDxBADYCACA7QgA3AwAgBEIANwPoBSBHQQA2AgAgSEIANwMAIElCADcDACBKQgA3AwAgBEIANwPIBEE/IQpD//9//yF0QwAAAAAhigFD//9/fyGLAUMAAIA/IYEBQQAhHUP//39/IYkBQwAAAAAhiAFBACEWQ///f38hhwFDAAAAACGGAUEAIRxD//9/fyGFAUMAAAAAIYQBQQAhJkP//39/IYMBQwAAAAAhggFBACEJIIABIXwgfyF7IH4heiB9IXlDAACAPyF4QwAAAAAhd0MAAAAAIXZDAAAAACF1Q///f38hc0MAAAAAIXJD//9//yFxQ///f38hcEMAAAAAIW9D//9//yFuQ///f38hbUMAAAAAIWxD//9//yFrQ///f38hakMAAAAAIWlD//9//yFoQ///f38hZ0MAAAAAIWZD//9//yFlQ///f38hZEP//39/IWNDAAAAACFiQQAhJQwFCyAMIA5B8JnBABCvCAALIAIgDkGAmsEAEK8IAAsgAiAOQeCZwQAQrwgACyAOIA5BkJrBABCvCAALIAEgBkGgmsEAEK8IAAsgASABKALAASAKQf8BcWlrQQZqNgLAASAGKAIAIgsgAUEEaigCAEYEQCABIAsQ3wUgBigCACELCyABKAIAIAtB0ANsaiIBIHw4AhQgASBgNwIMIAEgDDYCCCABIF83AgAgAUEgaiB5OAIAIAFBHGogejgCACABQRhqIHs4AgAgAUEkaiAEKQOABjcCACABQSxqIB4pAwA3AgAgAUE0aiA6KQMANwIAIAFBjAFqIGQ4AgAgAUGIAWogZTgCACABQYQBaiBmOAIAIAFBgAFqIGc4AgAgAUH8AGogaDgCACABQfgAaiBpOAIAIAFB9ABqIGo4AgAgAUHwAGogazgCACABQewAaiBsOAIAIAFB6ABqIG04AgAgAUHkAGogbjgCACABQeAAaiBvOAIAIAFB3ABqIHA4AgAgAUHYAGogcTgCACABQdQAaiByOAIAIAFB0ABqIHM4AgAgAUHMAGogdDgCACABQcgAaiB1OAIAIAFBxABqIHY4AgAgAUFAayB3OAIAIAFBPGogeDgCACABQaQBaiBjOAIAIAFBqAFqIGI4AgAgAUGsAWogJToAACABQcABaiCLATgCACABQcQBaiCKATgCACABQcgBaiAdOgAAIAFBoAFqIDwoAgA2AgAgAUGYAWogOykDADcCACABQZABaiAEKQPoBTcCACABQa0BaiAEKQPQBTcAACABQbUBaiA+KQMANwAAIAFBvAFqID0oAAA2AAAgAUHkAWogFjoAACABQeABaiCIATgCACABQdwBaiCJATgCACABQYACaiAcOgAAIAFB/AFqIIYBOAIAIAFB+AFqIIcBOAIAIAFB2AFqID8oAAA2AAAgAUHRAWogQCkDADcAACABQckBaiAEKQO4BTcAACABQeUBaiAEKQOgBTcAACABQe0BaiBCKQMANwAAIAFB9AFqIEEoAAA2AAAgAUGQAmogQygAADYAACABQYkCaiBEKQMANwAAIAFBgQJqIAQpA4gFNwAAIAFBnAJqICY6AAAgAUGYAmoghAE4AgAgAUGUAmoghQE4AgAgAUGsAmogRSgAADYAACABQaUCaiBGKQMANwAAIAFBnQJqIAQpA/AENwAAIAFBuAJqIAk6AAAgAUG0AmogggE4AgAgAUGwAmoggwE4AgAgAUG7AmogXC0AADoAACABQbkCaiAELwHsBDsAACABQb8CaiAQQRB2OgAAIAFBvQJqIBA7AAAgAUG8AmogCjoAACABQeACaiBHKAIANgIAIAFB2AJqIEgpAwA3AgAgAUHQAmogSSkDADcCACABQcgCaiBKKQMANwIAIAFBwAJqIAQpA8gENwIAIAFB9AJqIH04AgAgAUHwAmogfjgCACABQewCaiB/OAIAIAEggAE4AugCIAFB5AJqIIEBOAIAIAFBgANqIEsoAgA2AAAgAUH4AmogBCkDuAQ3AAAgAUGEA2ogBEGQB2pBzAAQ2QsaIAYgC0EBajYCACACQQFqIQIgB0EEaiEHIFkgA0HQA2oiA0cNAAsMAgsQ3wkACyADIAJB3ObDACgCACIAQY8HIAAbEQAAAAsCQCAXRQ0AIBetQtADfqdFDQAgGxCsAQsgBCgCmAIhDCAEKAKgAiIbBEAgDCAbQZACbGohISAMIQMDQCADQQhqIgYoAgAhCSADQQxqIiIgA0EYaiIjKAIAIAMoAsABaiIBEPsBIANBHGoiJCABEPsBIANBLGoiJSABEPsBAkACQCAJIANBQGsoAgAgA0HEAGoiCygCACIKa0sEQCADQTxqIAogCRCGBiALKAIAIQoMAQsgCUUNAQsgCUEDcSEHIAMoAjwgCkEEdGohASAJQQFrQQNPBEAgCUF8cSECA0AgAUIENwIAIAFBOGpCADcCACABQTBqQgQ3AgAgAUEoakIANwIAIAFBIGpCBDcCACABQRhqQgA3AgAgAUEQakIENwIAIAFBCGpCADcCACABQUBrIQEgAkEEayICDQALCyAHBEADQCABQgQ3AgAgAUEIakIANwIAIAFBEGohASAHQQFrIgcNAAsLIAkgCmohCgsgCyAKNgIAIANByAFqIAYoAgAgAygCwAEQgwICQCAGKAIAIgFFDQAgAygCACIGIAFB0ANsaiEmQQAhCUEAIRYCQANAQQYgBi0AvAJpIhJrIhAgCWoiAiAjKAIATQRAIAYoAgQiFSAQaiBNSw0IIAlBAnQhFwJAIBJBBkYiGg0AICIoAgAhGSAQQQNxIQtBACEKIBJBA2tBA08EQCAXIBlqIRwgGCAVQQJ0aiEdIBBBfHEhHkEAIQEDQCABIBxqIgcgASAdaiITKgIAOAIAIAdBBGogE0EEaioCADgCACAHQQhqIBNBCGoqAgA4AgAgB0EMaiATQQxqKgIAOAIAIAFBEGohASAeIApBBGoiCkcNAAsLIAtFDQAgGCAKIBVqQQJ0aiEBIBkgCSAKakECdGohBwNAIAcgASoCADgCACABQQRqIQEgB0EEaiEHIAtBAWsiCw0ACwsgAiADQShqKAIASw0IIAYoAgQiFSAQaiBOSw0IAkAgGg0AICQoAgAhGSAQQQNxIQtBACEKIBJBA2tBA08EQCAXIBlqIRwgHyAVQQJ0aiEdIBBBfHEhHkEAIQEDQCABIBxqIgcgASAdaiITKgIAOAIAIAdBBGogE0EEaioCADgCACAHQQhqIBNBCGoqAgA4AgAgB0EMaiATQQxqKgIAOAIAIAFBEGohASAeIApBBGoiCkcNAAsLIAtFDQAgHyAKIBVqQQJ0aiEBIBkgCSAKakECdGohBwNAIAcgASoCADgCACABQQRqIQEgB0EEaiEHIAtBAWsiCw0ACwsgAiADQThqKAIASw0IIAYoAgQiEyAQaiBPSw0IAkAgGg0AICUoAgAhFSAQQQNxIQtBACEKIBJBA2tBA08EQCAVIBdqIRIgICATQQJ0aiEXIBBBfHEhGkEAIQEDQCABIBJqIgcgASAXaiIQKgIAOAIAIAdBBGogEEEEaioCADgCACAHQQhqIBBBCGoqAgA4AgAgB0EMaiAQQQxqKgIAOAIAIAFBEGohASAaIApBBGoiCkcNAAsLIAtFDQAgICAKIBNqQQJ0aiEBIBUgCSAKakECdGohBwNAIAcgASoCADgCACABQQRqIQEgB0EEaiEHIAtBAWsiCw0ACwsgBiAJNgIEIAYgFjYCACAGKAIIIgEgDk8NAiAWQQFqIRYgBiAFIAFBAnRqKAIANgIIIAIhCSAmIAZB0ANqIgZHDQEMAwsLDAYLIAEgDkGwmsEAEK8IAAsgISADQZACaiIDRw0ACwsCQCAORQ0AIA5BAnRFDQAgBRCsASAIEKwBCwJAIChFDQAgKEECdEUNACAYEKwBCwJAIClFDQAgKUECdEUNACAfEKwBCwJAICpFDQAgKkECdEUNACAgEKwBCyAsBEAgDSAsQQR0aiECIA0hAQNAAkAgAUEEaigCACIDRQ0AIANBAnRFDQAgASgCABCsAQsgAiABQRBqIgFHDQALCwJAICtFDQAgK0EEdEUNACANEKwBCwJAIC1FDQAgLUECdEUNACBTEKwBCwJAIC5FDQAgLkECdEUNACBUEKwBCwJAIC9FDQAgL0EDdEUNACBQEKwBCwJAIDBFDQAgMEECdEUNACBVEKwBCwJAIDFFDQAgMUECdEUNACBWEKwBCwJAIDJFDQAgMkEDdEUNACBREKwBCwJAIDNFDQAgM61CGH6nRQ0AIFcQrAELAkAgNEUNACA0QQJ0RQ0AIFIQrAELIDYEQCAPIDZBBHRqIQIgDyEBA0ACQCABQQRqKAIAIgNFDQAgA0ECdEUNACABKAIAEKwBCyACIAFBEGoiAUcNAAsLAkAgNUUNACA1QQR0RQ0AIA8QrAELIDgEQCARIDhBBHRqIQIgESEBA0ACQCABQQRqKAIAIgNFDQAgA0ECdEUNACABKAIAEKwBCyACIAFBEGoiAUcNAAsLAkAgN0UNACA3QQR0RQ0AIBEQrAELAkAgOUUNACA5QQJ0RQ0AIFgQrAELIAwgG0GQAmxqIQkgBCgCnAIhEAJAIBtFBEAgDCECDAELIABBKGohDiAEQZgHaiEfIARBsAJqIRYgBEG1BGohEiAMIQIDQCACIgFBkAJqIQIgAS0AjAIiA0ECRg0BIARBqAJqIAFBjAIQ2QsaIBIgAS8AjQI7AAAgEkECaiABQY8Cai0AADoAACAEIAM6ALQEAkACQAJAAkACQAJAAkAgBCgCsAJBAUYEQCAEQZAHaiEBIA4oAgAiESAUQQR0aiEHAkAgFCAOKAIIIgZPDQAgDigCDCEPIAcoAggiDUF/RwRAIAdBCGohGCAOKAIUIQgDQAJAIAggDU0NAAJAIA8gDUEEdGoiCkEAIAggDUsbIgMpAggiYKciBSAGTw0AIAMpAgAhXyBgQiCIpyELAkACQCANIBEgBUEEdGoiAygCCCIFRgRAIANBCGohAwwBCwNAIAUgCE8NAiANIA8gBUEEdGoiAygCACIFRw0ACwsgAyBfPgIACyAGIAtNDQACfyANIBEgC0EEdGoiAygCDCIFRgRAIANBDGoMAQsDQCAFIAhPDQIgDSAPIAVBBHRqIgMoAgQiBUcNAAsgA0EEagsgX0IgiD4CAAsgDiAIQQFrIgg2AhQgDyAIQQR0aiIDKQIAIV8gCkEIaiADQQhqKQIANwIAIAogXzcCACAIIA1NDQAgCikCCCJfpyIDIAZPDQAgX0IgiKchCgJAAkAgCCARIANBBHRqIgMoAggiBUYEQCADQQhqIQMMAQsDQCAFIAhPDQIgCCAPIAVBBHRqIgMoAgAiBUcNAAsLIAMgDTYCAAsgBiAKTQ0AAn8gCCARIApBBHRqIgMoAgwiBUYEQCADQQxqDAELA0AgBSAITw0CIAggDyAFQQR0aiIDKAIEIgVHDQALIANBBGoLIA02AgALIBgoAgAiDUF/Rw0ACwsgESAUQQR0aiILQQxqIiAoAgAiDUF/RwRAIA4oAhQhCANAAkAgCCANTQ0AAkAgDyANQQR0aiIKQQAgCCANSxsiAykCCCJgpyIFIAZPDQAgAykCACFfIGBCIIinIRgCQAJAIA0gESAFQQR0aiIDKAIIIgVGBEAgA0EIaiEDDAELA0AgBSAITw0CIA0gDyAFQQR0aiIDKAIAIgVHDQALCyADIF8+AgALIAYgGE0NAAJ/IA0gESAYQQR0aiIDKAIMIgVGBEAgA0EMagwBCwNAIAUgCE8NAiANIA8gBUEEdGoiAygCBCIFRw0ACyADQQRqCyBfQiCIPgIACyAOIAhBAWsiCDYCFCAPIAhBBHRqIgMpAgAhXyAKQQhqIANBCGopAgA3AgAgCiBfNwIAIAggDU0NACAKKQIIIl+nIgMgBk8NACBfQiCIpyEKAkACQCAIIBEgA0EEdGoiAygCCCIFRgRAIANBCGohAwwBCwNAIAUgCE8NAiAIIA8gBUEEdGoiAygCACIFRw0ACwsgAyANNgIACyAGIApNDQACfyAIIBEgCkEEdGoiAygCDCIFRgRAIANBDGoMAQsDQCAFIAhPDQIgCCAPIAVBBHRqIgMoAgQiBUcNAAsgA0EEagsgDTYCAAsgICgCACINQX9HDQALCyAOIAZBAWsiBjYCCCARIAZBBHRqIgMpAgAhXyALQQhqIANBCGopAgA3AgAgCyBfNwIAIAYgFE0NACAHKQIIIl9CIIinIQggX6ciBSAOKAIUIgNJBEADQCAPIAVBBHRqIgUgFDYCCCADIAUoAgAiBUsNAAsLIAMgCE0NAANAIA8gCEEEdGoiBUEMaiAUNgIAIAMgBSgCBCIISw0ACwsgASAGIBRLBH8gASAHQQAgBiAUSxspAgA3AgRBAQVBAAs2AgAgBCgCkAdBAUcNAiAAKAIkIgMgBCgClAciAUsEQCAAKAIcIAFBFGxqQQAgASADSRsiASgCACAEKAKYB0YNAgtBxNHAAEErQdCkwQAQogkACyAEKAKsAiEFIAQoAqgCIQgCQCAAKAIQBEAgAEEIaigCACIHIAAoAhQiCk0NBCAAKAIAIgMgCkGYAmxqIgEoAgANBSABQQE2AgAgACAAKAIYQQFqNgIYIAAgASkCBDcCECABQQxqIAU2AgAgAUEIaiAINgIAIAEgACgCDCIGNgIEIAFBEGogFkGIAhDZCxoMAQsgBCAFNgKUByAEIAg2ApAHIB8gFkGIAhDZCxojAEGQAmsiASQAIAAgAEEIaiIFKAIAEP4BIARBkAdqIgNBCGohCCADKAIEIQ0gAygCACEPAkACQAJAIAAoAhAEQCAFKAIAIgMgAEEUaigCACIFTQ0CIAAoAgAgBUGYAmxqIgMoAgBFDQEgAUEUakEANgIAIAFBpMPAADYCECABQgE3AgQgAUGwiMEANgIAIAFBuIjBABDgCQALIAEgDTYCBCABIA82AgAgAUEIaiAIQYgCENkLGiABEMcBQciIwQBBPiABQfDRwABBiInBABCICAALIANBATYCACAAIAAoAhhBAWo2AhggACADKQIENwIQIANBDGogDTYCACADQQhqIA82AgAgAyAAKAIMIg02AgQgA0EQaiAIQYgCENkLGiAEIA02AgQgBCAFNgIAIAFBkAJqJAAMAQsgBSADQYyIwQAQrwgACyAEKAIEIQYgBCgCACEKIABBCGooAgAhByAAKAIAIQMLIAcgCk0NBCADIApBmAJsakEAIAcgCksbIgEoAgBBAUcNBCABKAIEIAZHDQQgASgCECIDRQ0GIAEoAgghASADQdADbCELIAAoAiQhBSAAKAIcIQgDQCABQQxqKAIAIgMgBU8NBiAIIANBFGxqQQAgAyAFSRsiAygCACABQRBqKAIARw0GIAMgBjYCDCADIAo2AgggAyABKAIANgIQIAFB0ANqIQEgC0HQA2siCw0ACwwGCyABIBQ2AgQLIARBqAJqEMcBDAQLIAogB0GMiMEAEK8IAAsgBEGkB2pBADYCACAEQaTDwAA2AqAHIARCATcClAcgBEGwiMEANgKQByAEQZAHakG4iMEAEOAJAAtBmInBAEETQbCkwQAQwwsAC0HE0cAAQStBwKTBABCiCQALIAIgCUcNAAsgCSECCyAJIAJrIgBBkAJtIQEgAARAIAFBkAJsIQEDQCACEMcBIAJBkAJqIQIgAUGQAmsiAQ0ACwsgEEUNACAQrUKQAn6nRQ0AIAwQrAELIARBoAlqJAAPCyABQQRB3ObDACgCACIAQY8HIAAbEQAAAAtBvPTAAEEdQcT1wAAQtAoAC99CAyd9E38EfiMAQcABayIwJAACQAJAAkACQCAEKAJUQQJGIAUoAlQiOUECRnFFBEAgMEEIaiIxQRxqIAEgApRDAACAvyADvEGAgICAeHFBgICA/ANyviINIAOSlSIKlCIJIARBJGoqAgAiDJQgDSACIAKUIAqUkiILIARBKGoqAgAiDpSSIARBLGoqAgAiDyAClJM4AgAgMUEUaiAJIARBGGoqAgAiEJQgCyAEQRxqKgIAIhGUkiAEQSBqKgIAIhMgApSTOAIAIDFBDGogCSAEQQxqKgIAIhSUIAsgBEEQaioCACISlJIgBEEUaioCACIVIAKUkzgCACAwIAwgCiANIAGUIAGUlEMAAIA/kiIKlCAOIA0gCZQiDJSSIA8gDYwgAZQiDZSSOAIgIDAgCiAQlCAMIBGUkiANIBOUkjgCGCAwIAogFJQgDCASlJIgDSAVlJI4AhAgMCAEKgIAIg4gCZQgBEEEaioCACIPIAuUkiAEQQhqKgIAIhAgApSTIig4AgwgMCANIBCUIA4gCpQgDyAMlJKSIik4AgggAEEQaioCACEZIAVBFGoqAgAhDiAFQRBqKgIAIQ8gBUEgaioCACEQIAVBHGoqAgAhESAAQRRqKgIAIR4gBSoCACEXIAUqAgghGiAFKgIEIRggBSoCDCEWIAUqAhghGyAAKgIAIhMgBUEoaioCACIclCAAQQRqKgIAIhQgBSoCJCIilJMiEiASkiEfIABBCGoqAgAiEiAilCATIAVBLGoqAgAiIJSTIhUgFZIhHSAwQfgAaiIxQSxqIABBGGoqAgAiIyAgIABBDGoqAgAiFSAflCATIB2UIBQgFCAglCASIByUkyIgICCSIiCUk5KSkiInOAIAIDFBKGogHiAcIBUgHZQgEiAglCATIB+Uk5KSkiIqOAIAIDFBIGogIyAQIBUgEyARlCAUIBuUkyIcIBySIiGUIBMgEiAblCATIBCUkyIcIBySIiSUIBQgFCAQlCASIBGUkyIQIBCSIhCUk5KSkiIcOAIAIDFBHGogHiARIBUgJJQgEiAQlCATICGUk5KSkiIROAIAIDFBFGogIyAOIBUgEyAPlCAUIBaUkyIlICWSIiWUIBMgEiAWlCATIA6UkyImICaSIiaUIBQgFCAOlCASIA+UkyIOIA6SIiuUk5KSkiIOOAIAIDFBEGogHiAPIBUgJpQgEiArlCATICWUk5KSkiIPOAIAIDAgGSAbIBUgEJQgFCAhlCASICSUk5KSkiIbOAKQASAwIBkgFiAVICuUIBQgJZQgEiAmlJOSkpIiEDgChAEgMCAjIBogFSAYIBOUIBcgFJSTIhYgFpIiFpQgEyAXIBKUIBogE5STIiEgIZIiIZQgFCAaIBSUIBggEpSTIhogGpIiJJSTkpKSIho4AoABIDAgHiAYIBUgIZQgEiAklCATIBaUk5KSkiIYOAJ8IDAgGSAXIBUgJJQgFCAWlCASICGUk5KSkiIXOAJ4IDAgGSAiIBUgIJQgFCAflCASIB2Uk5KSkiIWOAKcASAwQShqIgBBFGogCSAblCALIBGUkiAcIAKUkzgCACAAQQxqIAkgEJQgCyAPlJIgDiAClJM4AgAgAEEcaiAJIBaUIAsgKpSSICcgApSTOAIAIDAgDSAclCAKIBuUIAwgEZSSkjgCOCAwIA0gDpQgCiAQlCAMIA+UkpI4AjAgMCAJIBeUIAsgGJSSIBogApSTIh84AiwgMCANIBqUIAogF5QgDCAYlJKSIh04AiggMCANICeUIAogFpQgDCAqlJKSOAJAIDlBAk0NAiAYIA+TIgkgGyAQkyILlCAXIBCTIgogESAPkyIMlJMiIiADlCAaIA6TIg0gDJQgCSAcIA6TIgmUkyIgIAGUIAogCZQgDSALlJMiJyAClJKSIhdDAAAAAFsNAgJAIBdDAACAf1sNACAXQwAAgP9bDQAgF4siCUMAAAA0Xw0DIAkgCUMAAAA0lF8NAwsgBCgCVCI2RQ0DIDlBAWsiOEEDSw0BIAUoAlAhMiAwKQNAIkNCIIinviAwKQM4IkVCIIinviIYkyEqIBggMCkDMCJGQiCIp74iFpMhISAwKQMoIkRCIIinviAwQShqIDhBA3RqIgAqAgQiJJMhJSBDp74gRae+IhuTISYgGyBGp74iHJMhKyAcIB2TISwgFiAfkyEtIESnviAAKgIAIi6TIS8gMEEIaiE1IDhBAkYhOkEwIQADQAJAAkAgAEHAAEcEQCAsIDUpAwAiQ0IgiKe+IgogH5OUIC0gQ6e+IgwgHZOUkyELAkAgLyAKICSTlCAlIAwgLpOUkyIJQwAAAABbBEAgCyEJDAELIAkgC5RDAAAAAF0NAwsgKyAKIBaTlCAhIAwgHJOUkyELAkAgCUMAAAAAWwRAIAshCQwBCyALIAmUQwAAAABdDQMLIDoNASAJQwAAAABcBEAgJiAKIBiTlCAqIAwgG5OUkyAJlEMAAAAAXQ0DCyA4QQNGDQFBBEEEQbTuwAAQrwgAC0EEQQRBlO7AABCvCAALICAgMCoCeCAEIDdqIjEqAgAiDJOUICcgMCoCfCAxQQRqKgIAIg2TlJIgIiAwKgKAASAxQQhqKgIAIg6TlJIgF5UiGiAGX0UNACAUIAwgGiABlJIgGZMiEJQgEyANIBogApSSIB6TIgmUkyILIAuSIQogEiAJlCAUIA4gGiADlJIgI5MiC5STIg8gD5IhDyALIBUgCpQgFCAPlCATIBMgC5QgEiAQlJMiCyALkiIRlJOSkiELIAkgFSARlCATIAqUIBIgD5STkpIhCSAQIBUgD5QgEiARlCAUIAqUk5KSIQogACAEaigCACExAkAgCARAIDIhNCAKIRAgCSERIAshDyAMIQogDSEJIA4hCwwBCyAxITQgMiExIAwhECANIREgDiEPCyAHKAIIIjMgB0EEaigCAEYEQCAHIDMQ2QUgBygCCCEzCyAHIDNBAWo2AgggBygCACAzQTBsaiIzQgA3AiQgMyAxNgIgIDMgNDYCHCAzIBo4AhggMyAKOAIMIDMgDzgCCCAzIBE4AgQgMyAQOAIAIDNBLGpBADYCACAzQRRqIAs4AgAgM0EQaiAJOAIACyA1QQhqITUgN0EMaiE3IABBBGohACA2QQFrIjYNAAsMAgsgAEEEaioCACITIAVBFGoqAgAiDpQgAEEIaioCACIUIAVBEGoqAgAiD5STIgkgCZIhCiAAKgIAIhIgD5QgEyAFKgIMIg2UkyIJIAmSIQwgASAClEMAAIC/IAO8QYCAgIB4cUGAgID8A3K+IgkgA5KVIhCUIgsgAEEQaioCACIjIA0gAEEMaioCACIVIAqUIBMgDJQgFCAUIA2UIBIgDpSTIg0gDZIiEZSTkpKSIhmUIAkgAiAClCAQlJIiDSAAQRRqKgIAIhcgDyAVIBGUIBQgCpQgEiAMlJOSkpIiHpSSIABBGGoqAgAiGiAOIBUgDJQgEiARlCATIAqUk5KSkiIYIAKUkyEdIAmMIAGUIgogGJQgECAJIAGUIAGUlEMAAIA/kiIMIBmUIAkgC5QiCSAelJKSISogBSoCCCIQIBOUIAUqAgQiESAUlJMiDiAOkiEOIBEgEpQgBSoCACIWIBOUkyIPIA+SIQ8gCyAjIBYgFSAOlCATIA+UIBQgFiAUlCAQIBKUkyIWIBaSIh+Uk5KSkiIWlCANIBcgESAVIB+UIBQgDpQgEiAPlJOSkpIiG5SSIBogECAVIA+UIBIgH5QgEyAOlJOSkpIiHyAClJMhECAKIB+UIAwgFpQgCSAblJKSIREgBEEMaioCACIcIAyUIAkgBEEQaioCACIolJIgCiAEQRRqKgIAIimUkiAKIARBCGoqAgAiIpQgBCoCACIgIAyUIARBBGoqAgAiJyAJlJKSIiGTIgogCpQgCyAclCANICiUkiApIAKUkyAgIAuUICcgDZSSICIgApSTIiSTIg0gDZSSQwAAAACSIgwQfSIJQwAAADRfRQRAIA0gCZUhJiAKIAmVISULAkAgKiARkyIOIA6UIB0gEJMiDyAPlJJDAAAAAJIiCxB9Ih1DAAAANF8NACAJQwAAADRfDQAgJSAOIB2VlCAmIA8gHZWUkkNeg2w/YA0AQQAhAAJ/AkAgDEMAAAA0XyIyIAtDAAAANF9xDQAgISARkyIJIA6UICQgEJMiECAPlJIhHQJAAkACQAJAAkAgMkUEQCAKIAmUIA0gEJSSIRAgC0MAAAA0Xw0BAn1DAAAAACAMIAuUIhEgCiAOlCANIA+UkiINIA2UIgqTIg5DAAAANF5FDQAaQwAAAAAgDotDAAAANF8NABpDAADAf0MAAIA/IBGYIBEgEVwbQwAAwH9DAACAPyAKmCAKIApcG1sEQEMAAAAAIBG8IjIgCrwiNGtBBEsgNCAya0EESyAyIDRLG0EBRw0BGgsgDSAdlCAQIAuUkyAOlSIJQwAAgD8gCUMAAIA/XRtDAAAAACAJQwAAAABeGwshCSAdIA0gCZSSIAuVIgpDAAAAAF0NAiAKQwAAgD9eRQ0EIA0gEJMgDJUiCUMAAAAAXkUNAyAJQwAAgD8gCUMAAIA/XRshCUMAAIA/IQoMBAtBACAdIAuVIglDAAAAAF5FDQYaIAlDAACAPyAJQwAAgD9dGyEKDAQLQwAAAAAhCiAQjCAMlSIJQwAAAABeRQ0EIAlDAACAPyAJQwAAgD9dGyEJDAILQwAAAAAhCiAQjCAMlSIJQwAAAABeRQ0DIAlDAACAPyAJQwAAgD9dGyEJDAELQQEMAwsgCUMAAAAAWw0AIAlDAACAP1sEQEEBITYMAQtDAACAPyAJk7whNiAJvCExQQEhMwtBACAKQwAAAABbDQEaQQEgCkMAAIA/Ww0BGiAKvCE3QQEhAEMAAIA/IAqTvAwBC0EACyEyIDBBKGoiNEEIaiAxNgIAIDAgNjYCLCAwIDM2AiggMEH4AGoiMUEIaiA3NgIAIDAgMjYCfCAwIAA2AnggMEHoAGogNBD1CCAwQQhqIDEQ9QggBiAfIDAqAggiCZQgGCAwKgIMIguUkiINICIgMCoCaCIKlCApIDAqAmwiDJSSIgaTIAOUIBYgCZQgGSALlJIiDiAgIAqUIBwgDJSSIgOTIAGUIBsgCZQgHiALlJIiCSAnIAqUICggDJSSIgGTIAKUkpIiD2BFDQQgEyAOICOTIguUIBIgCSAXkyIKlJMiAiACkiECIBQgCpQgEyANIBqTIgyUkyIJIAmSIQkgDCAVIAKUIBMgCZQgEiASIAyUIBQgC5STIgwgDJIiDZSTkpIhDiAKIBUgDZQgEiAClCAUIAmUk5KSIQwgCyAVIAmUIBQgDZQgEyAClJOSkiEJIAUoAkAhMyAEKAJAIQACQCAIBEAgMyE1IAAhMyAJIQ0gDCELIA4hCiADIQkgASEMIAYhDgwBCyAAITUgAyENIAEhCyAGIQoLIAcoAggiACAHQQRqKAIARgRAIAcgABDZBSAHKAIIIQALIAcgAEEBajYCCCAHKAIAIABBMGxqIgBCADcCJCAAIDM2AiAgACA1NgIcIAAgDzgCGCAAIAk4AgwgACAKOAIIIAAgCzgCBCAAIA04AgAgAEEsakEANgIAIABBFGogDjgCACAAQRBqIAw4AgAMBAsgMEEIaiIAQQhqIARBCGooAgA2AgAgAEEUaiIFIARBFGooAgA2AgAgMCAEKQIANwMIIDAgBCkCDDcCFCAwQShqIgRBFGogGDgCACAEQRBqIB44AgAgMCAZOAI0IDAgHzgCMCAwIBs4AiwgMCAWOAIoIDBB+ABqITEgACoCDCIfIAAqAgAiCpMiECAQlCAAQRBqKgIAIh0gACoCBCIMkyIRIBGUkiAFKgIAIhwgACoCCCINkyIZIBmUkkMAAAAAkiEeQQIhMkEAIQUCfyAEIgBBFGohBCAQIAAqAgwgCpOUIBEgAEEQaioCACAMk5SSIBkgBCoCACANk5SSIgYgECAAKgIAIAqTlCARIAAqAgQgDJOUkiAZIAAqAgggDZOUkiILXUUEQCAGIQkgCyEGQQAMAQsgACkCDCFDIAAgACkCADcCDCAAIEM3AgAgBCgCACEyIAQgAEEIaiIEKAIANgIAIAQgMjYCAEEAITIgCyEJQQILIQQCQCAGIB5eDQAgCUMAAAAAXQ0AIAkgBpMhKAJ/IAZDAAAAAF5FBEAgACoCCCIYQwAAAAAgBpMgKJUiCyAAKgIUIBiTlJIhKSAAKgIEIhYgCyAAKgIQIBaTlJIhIiAAKgIAIhsgCyAAKgIMIBuTlJIhIEEBIQQgCiELIAwhDiANIQ9BAAwBCyAZIAYgHpUiC5QgDZIhDyARIAuUIAySIQ4gECALlCAKkiELIAAqAgAiGyEgIAAqAgQiFiEiIAAqAggiGCEpQQELIQUCfyAJIB5dRQRAIBggHiAGkyAolSIJIAAqAhQgGJOUkiEGIBYgCSAAKgIQIBaTlJIhCiAbIAkgACoCDCAbk5SSIQlBASEyQQIMAQsgGSAJIB6VIgaUIA2SIRwgESAGlCAMkiEdIBAgBpQgCpIhHyAAKgIUIQYgACoCECEKIAAqAgwhCUEBCyEAIDEgCzgCBCAxQUBrIDI2AgAgMUE8aiAANgIAIDFBOGogBjgCACAxQTRqIAo4AgAgMUEwaiAJOAIAIDFBLGogHDgCACAxQShqIB04AgAgMUEkaiAfOAIAIDFBIGogBDYCACAxQRxqIAU2AgAgMUEYaiApOAIAIDFBFGogIjgCACAxQRBqICA4AgAgMUEMaiAPOAIAIDFBCGogDjgCAEEBIQULIDEgBTYCACAwKAJ4QQFHDQMgEyAwQfgAaiIAQRBqKgIAIg8gI5MiCpQgEiAAQRRqKgIAIhAgF5MiDJSTIgYgBpIhBiAUIAyUIBMgMEGQAWoqAgAiESAakyIJlJMiCyALkiELIAkgFSAGlCATIAuUIBIgEiAJlCAUIAqUkyIJIAmSIg2Uk5KSIQkgDCAVIA2UIBIgBpQgFCALlJOSkiEOIAogFSALlCAUIA2UIBMgBpSTkpIhDSAPIDAqAnwiCpMgAZQgECAAQQhqKgIAIg+TIAKUkiARIDBBhAFqKgIAIhCTIAOUIDBBsAFqIQAgMEGsAWohBCAwQagBaiEFIDBBpAFqITEgMEGgAWohMiAwQZwBaiE0AkAgCARAIA0hDCAOIQYgCSELIAohDSAPIQ4gECEJDAELIAohDCAPIQYgECELC5IhGCAAKgIAIQogBCoCACEZIAUqAgAhHiAxKgIAIQ8gMioCACEQIDQqAgAhESAHKAIIIgAgB0EEaigCAEYEQCAHIAAQ2QUgBygCCCEACyAHIABBAWoiMzYCCCAHKAIAIjUgAEEwbGoiAEIANwIcIAAgGDgCGCAAIA04AgwgACALOAIIIAAgBjgCBCAAIAw4AgAgAEEUaiAJOAIAIABBEGogDjgCACAAQSRqQgA3AgAgAEEsakEANgIAIBMgHiAjkyINlCASIBkgF5MiDJSTIgYgBpIhBiAUIAyUIBMgCiAakyILlJMiCSAJkiEJIAsgFSAGlCATIAmUIBIgEiALlCAUIA2UkyILIAuSIg6Uk5KSIQsgDCAVIA6UIBIgBpQgFCAJlJOSkiEMIA0gFSAJlCAUIA6UIBMgBpSTkpIhCSAeIBGTIAGUIBkgEJMgApSSIAogD5MgA5QCQCAIBEAgCSENIAwhAiALIQogESEJIBAhDCAPIQsMAQsgESENIBAhAiAPIQoLkiEBIAdBBGooAgAgM0YEQCAHIDMQ2QUgBygCACE1IAcoAgghMwsgByAzQQFqNgIIIDUgM0EwbGoiAEIANwIcIAAgATgCGCAAIAk4AgwgACAKOAIIIAAgAjgCBCAAIA04AgAgAEEUaiALOAIAIABBEGogDDgCACAAQSRqQgA3AgAgAEEsakEANgIADAMLIDhBBEGk7sAAEK8IAAsCQCAEKAJUIgBBAk0NACAEKgIYIAQqAgwiCZMiCyAEQQRqKgIAIARBEGoqAgAiCpMiDJQgBEEcaioCACAKkyIKIAQqAgAgCZMiCZSTIhwgA5QgCiAEQQhqKgIAIARBFGoqAgAiCpMiDZQgBEEgaioCACAKkyIKIAyUkyIiIAGUIAogCZQgCyANlJMiICAClJKSIglDAAAAAFsNACAJjCEaAkAgCUMAAID/Ww0AIAlDAACAf1sNACAaiyIJQwAAADRfDQEgCSAJQwAAADSUXw0BCyA5RQ0CIABBAWsiNEEDTQRAIDApAyAiQ0IgiKe+IDApAxgiRUIgiKe+IhiTIScgGCAwKQMQIkZCIIinviIWkyEqIDApAwgiREIgiKe+IDBBCGogNEEDdGoiACoCBCIhkyEkIAVBMGohNyBDp74gRae+IhuTISUgGyBGp74iH5MhJiAfICmTISsgFiAokyEsIESnviAAKgIAIi2TIS4gMEEoaiE1IDRBAkYhOCA5ITZBACEzA0ACQAJAIDNBMEcEQCArIDUpAwAiQ0IgiKe+IgogKJOUICwgQ6e+IgwgKZOUkyELAkAgLiAKICGTlCAkIAwgLZOUkyIJQwAAAABbBEAgCyEJDAELIAkgC5RDAAAAAF0NAwsgJiAKIBaTlCAqIAwgH5OUkyELAkAgCUMAAAAAWwRAIAshCQwBCyALIAmUQwAAAABdDQMLIDgNASAJQwAAAABcBEAgJSAKIBiTlCAnIAwgG5OUkyAJlEMAAAAAXQ0DCyA0QQNGDQFBBEEEQeTuwAAQrwgAC0EEQQRBxO7AABCvCAALIDBB+ABqIDNqIgBBCGoqAgAiCyAiIAQqAgAgACoCACIJk5QgICAEQQRqKgIAIABBBGoqAgAiCpOUkiAcIARBCGoqAgAgC5OUkiAalSIXIAOUkyEPIAogFyAClJMhECAJIBcgAZSTIREgFCAJIBmTIgyUIBMgCiAekyINlJMiCSAJkiEJIBIgDZQgFCALICOTIguUkyIKIAqSIQogCyAVIAmUIBQgCpQgEyATIAuUIBIgDJSTIgsgC5IiHZSTkpIhDiANIBUgHZQgEyAJlCASIAqUk5KSIQsgDCAVIAqUIBIgHZQgFCAJlJOSkiENIDcoAgAhMSAEKAJQIQACQCAIBEAgMSEyIAAhMSANIQwgCyEKIA4hCSARIQ0gECELIA8hDgwBCyAAITIgESEMIBAhCiAPIQkLIAcoAggiACAHQQRqKAIARgRAIAcgABDZBSAHKAIIIQALIAcgAEEBajYCCCAHKAIAIABBMGxqIgBCADcCJCAAIDE2AiAgACAyNgIcIAAgFzgCGCAAIA04AgwgACAJOAIIIAAgCjgCBCAAIAw4AgAgAEEsakEANgIAIABBFGogDjgCACAAQRBqIAs4AgALIDVBCGohNSAzQQxqITMgN0EEaiE3IDZBAWsiNg0ACwwBCyA0QQRB1O7AABCvCAALIDlFDQELQQAhOANAAkAgOCIAQQRHBEAgOSAAQQFqIjhGITpBACA4IDobIjFBA00EQCAEKAJUIj1FDQIgMEEoaiIyIABBA3RqKQMAIUUgMiAxQQN0aikDACFGQcAAITcgBSAAQQJ0akFAayE+IDFBDGwgMEH4AGoiMWoiO0EIaiE/IDtBBGohQCAxIABBDGxqIjxBCGohQSA8QQRqIUJBACEAIDBBCGohNUEAITMDQAJAAkACQAJAAkAgAEEwRwRAIAQoAlQiMUUNASAzQQFqIjMgMXAiMUEETw0CIDUpAwAhQyAwIDBBCGogMUEDdGopAwA3A2AgMCBDNwNYIDAgRjcDcCAwIEU3A2ggMEHIAGohMUMAAAAAIQsgMEHYAGoiMikCACFDAkACQAJAIDBB6ABqIjQpAggiRKe+IDQqAgAiD5MiCiAKlCBEQiCIp74gNCoCBCIRkyIMIAyUkkMAAAAAkiIJQwAAADRfIDIpAggiRKe+IDIqAgCTIg0gDZQgREIgiKe+IDIqAgSTIg4gDpSSQwAAAACSIhBDAAAANF8iMnENACAKIEOnviAPkyIXlCAMIENCIIinviARkyIRlJIhDwJAIDJFBEAgDSAXlCAOIBGUkiERIAlDAAAANF8NAUEAITIgECAJlCILIA0gCpQgDiAMlJIiDCAMlCIKkyINQwAAADRfDQQgDYtDAAAANF8NBAJAQwAAwH9DAACAPyALmCALIAtcG0MAAMB/QwAAgD8gCpggCiAKXBtcDQAgCrwiNCALvCI2TwRAIDQgNmtBBUkNBgwBCyA2IDRrQQVJDQULIA8gDCAMIA+UIAkgEZSTIA2VIgqUkiAJlSELDAMLIA8gCZUhCwwBCyARjCAQlSEKDAELQwAAAAAhCgsgMSAKOAIEIDFBCGogCzgCAEEBITILIDEgMjYCACAwKAJIQQFHDQUgMCoCTCILQwAAAABeRQ0FIAtDAACAP11FDQUgMCoCUCIKQwAAAABeRQ0FIApDAACAP11FDQUgBCgCVCIxRQ0DIDMgMXAiMkEETw0EQwAAgD8gCpMiDCA8KgIAlCAKIDsqAgCUkiIOQwAAgD8gC5MiDSAAIARqIjEqAgCUIAsgBCAyQQxsaiIyKgIAlJIiCZMgAZQgDCBCKgIAlCAKIEAqAgCUkiIPIA0gMUEEaioCAJQgCyAyKgIElJIiEJMgApSSIAwgQSoCAJQgCiA/KgIAlJIiDCANIDFBCGoqAgCUIAsgMioCCJSSIhGTIAOUkiIXIAZfRQ0FIBQgDiAZkyIOlCATIA8gHpMiCpSTIgsgC5IhCyASIAqUIBQgDCAjkyIMlJMiDSANkiENIAwgFSALlCAUIA2UIBMgEyAMlCASIA6UkyIMIAySIg+Uk5KSIQwgCiAVIA+UIBMgC5QgEiANlJOSkiEKIA4gFSANlCASIA+UIBQgC5STkpIhDSAEIDdqKAIAITEgPigCACEyAkAgCARAIDIhNCAxITIgDSELIAohDiAMIQ8gCSENIBAhCiARIQwMAQsgMSE0IAkhCyAQIQ4gESEPCyAHKAIIIjYgB0EEaigCAEYEQCAHIDYQ2QUgBygCCCE2CyAHIDZBAWo2AgggBygCACA2QTBsaiIxQgA3AiQgMSAyNgIgIDEgNDYCHCAxIBc4AhggMSANOAIMIDEgDzgCCCAxIA44AgQgMSALOAIAIDFBLGpBADYCACAxQRRqIAw4AgAgMUEQaiAKOAIADAULQQRBBEGU78AAEK8IAAtB4NDAAEE5QaTvwAAQogkAC0EEQQRBtO/AABCvCAALQeDQwABBOUHE78AAEKIJAAtBBEEEQdTvwAAQrwgACyA1QQhqITUgAEEMaiEAIDdBBGohNyAzID1HDQALDAILQQRBBEGE78AAEK8IAAtBBEEEQfTuwAAQrwgACyA6RQ0ACwsgMEHAAWokAAu2NgMJfwJ9AX4jAEEQayIJJAAgCSAAIAEoAghBB2pBeHFqIAEoApgBEQAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgCSgCAEEBaw4SAQIDBAUGBwgJCgsMDQ4PEBESAAsgCSgCBEEAIQEgAigCACIFQQRqIgIoAgAgBUEIaiIDKAIAIgBrQQNNBEAgBSAAQQQQwwYgAygCACEACyAFKAIAIABqQQA2AAAgAyAAQQRqIgA2AgAqAgAhDCACKAIAIABrQQNNBEAgBSAAQQQQwwYgBUEIaigCACEACyAFQQhqIABBBGo2AgAgBSgCACAAaiAMOAAADBQLIAkoAgQgAigCACIDQQhqIgQoAgAhASADQQRqKAIAIAFrQQNNBEAgAyABQQQQwwYgBCgCACEBCyAEIAFBBGo2AgAgAygCACABakEBNgAAIAIQ/AQhAQwTCyAJKAIEIQQgAigCACIDQQhqIgAoAgAhASADQQRqKAIAIAFrQQNNBEAgAyABQQQQwwYgACgCACEBCyAAIAFBBGo2AgAgAygCACABakECNgAAIAQgAhD8BCIBDRIgBEEMaiACEPwEIgENEiAEKgIYIQwgA0EEaigCACADQQhqIgAoAgAiAmtBA00EQCADIAJBBBDDBiAAKAIAIQILIAAgAkEEajYCACADKAIAIAJqIAw4AAAMEQsgCSgCBCEEIAIoAgAiA0EIaiIAKAIAIQEgA0EEaigCACABa0EDTQRAIAMgAUEEEMMGIAAoAgAhAQsgACABQQRqNgIAIAMoAgAgAWpBAzYAACAEIAIQ/AQiAQ0RIARBDGogAhD8BCEBDBELIAkoAgQhAyACKAIAIgRBCGoiACgCACEBIARBBGooAgAgAWtBA00EQCAEIAFBBBDDBiAAKAIAIQELIAAgAUEEajYCACAEKAIAIAFqQQQ2AAAgAyACEPwEIgENECADQQxqIAIQ/AQiAQ0QIANBGGogAhD8BCEBDBALIAkoAgQhCyACKAIAIgRBCGoiACgCACEBIARBBGooAgAgAWtBA00EQCAEIAFBBBDDBiAAKAIAIQELIAAgAUEEajYCACAEKAIAIAFqQQU2AAAgCSACNgIMIAlBDGogCxBsIgENDyALQcgAaigCACEEIAsoAkAhAyACKAIAIgVBCGoiACgCACEBIAVBBGooAgAgAWtBB00EQCAFIAFBCBDDBiAAKAIAIQELIAAgAUEIajYCACAFKAIAIAFqIAStNwAAIARBDGwhAANAIAAEQCAAQQxrIQAgAyACEPwEIQEgA0EMaiEDIAFFDQEMEQsLIAtB1ABqKAIAIQQgCygCTCEBIAIoAgAiBkEIaiIAKAIAIQUgBkEEaigCACAFa0EHTQRAIAYgBUEIEMMGIAAoAgAhBQsgACAFQQhqIgA2AgAgBigCACAFaiAErTcAACAEBEAgASAEQQxsaiEFIAZBBGohCCAGQQhqIQcDQCABKAIAIQQgCCgCACAAa0EDTQRAIAYgAEEEEMMGIAcoAgAhAAsgBigCACAAaiAENgAAIAcgAEEEaiIANgIAIAFBBGooAgAhBCAIKAIAIABrQQNNBEAgBiAAQQQQwwYgBygCACEACyAGKAIAIABqIAQ2AAAgByAAQQRqIgM2AgAgAUEIaigCACEEIAgoAgAgA2tBA00EQCAGIANBBBDDBiAHKAIAIQMLIAcgA0EEaiIANgIAIAYoAgAgA2ogBDYAACAFIAFBDGoiAUcNAAsLIAsoAlgiAEUEQCACKAIAIgRBCGoiACgCACIBIARBBGooAgBGBEAgBCABQQEQwwYgACgCACEBCyAAIAFBAWo2AgAgBCgCACABakEAOgAADA4LIAIoAgAiCkEEaiEDIApBCGoiBCgCACIBIAMoAgBGBEAgCiABQQEQwwYgBCgCACEBCyAKKAIAIAFqQQE6AAAgBCABQQFqIgE2AgAgC0HgAGooAgAhBCADKAIAIAFrQQdNBEAgCiABQQgQwwYgCkEIaigCACEBCyAKQQhqIAFBCGo2AgAgCigCACABaiAErTcAACAEQQxsIQMDQCADBEAgA0EMayEDIAAgAhD8BCEBIABBDGohACABRQ0BDBELCyALQfwAaigCACEEIAtB9ABqKAIAIQAgCkEEaiIHKAIAIApBCGoiBigCACIBa0EHTQRAIAogAUEIEMMGIAYoAgAhAQsgBiABQQhqNgIAIAooAgAgAWogBK03AAAgBEEYbCEEA0AgBEUNDiAAQQhqKAIAIQggACgCBCEFIABBDGogBygCACAGKAIAIgFrQQNNBEAgCiABQQQQwwYgBigCACEBCyAKKAIAIAFqIAU2AAAgBiABQQRqIgE2AgAgAEEYaiEAIAcoAgAgAWtBA00EQCAKIAFBBBDDBiAGKAIAIQELIAYgAUEEajYCACAKKAIAIAFqIAg2AAAgBEEYayEEIAIQ/AQiAUUNAAsMDwsgCSgCBCEIIAIoAgAiBEEIaiIAKAIAIQEgBEEEaigCACABa0EDTQRAIAQgAUEEEMMGIAAoAgAhAQsgACABQQRqNgIAIAQoAgAgAWpBBjYAACAJIAI2AgwgCUEMaiAIEGwiAQ0OIAhByABqKAIAIQQgCCgCQCEDIAIoAgAiBUEIaiIAKAIAIQEgBUEEaigCACABa0EHTQRAIAUgAUEIEMMGIAAoAgAhAQsgACABQQhqNgIAIAUoAgAgAWogBK03AAAgBEEMbCEAA0AgAARAIABBDGshACADIAIQ/AQhASADQQxqIQMgAUUNAQwQCwsgCEHUAGooAgAhAyAIKAJMIQAgAigCACIHQQhqIgEoAgAhBCAHQQRqKAIAIARrQQdNBEAgByAEQQgQwwYgASgCACEECyABIARBCGoiAjYCACAHKAIAIARqIAOtNwAAIANFDQ0gACADQQN0aiEDIAdBBGohBSAHQQhqIQgDQCAAKAIAIQEgBSgCACACa0EDTQRAIAcgAkEEEMMGIAgoAgAhAgsgBygCACACaiABNgAAIAggAkEEaiIBNgIAIABBBGooAgAhBCAFKAIAIAFrQQNNBEAgByABQQQQwwYgCCgCACEBCyAIIAFBBGoiAjYCACAHKAIAIAFqIAQ2AAAgAyAAQQhqIgBHDQALDA0LIAkoAgQgAigCACIDQQhqIgQoAgAhASADQQRqKAIAIAFrQQNNBEAgAyABQQQQwwYgBCgCACEBCyAEIAFBBGo2AgAgAygCACABakEHNgAAIAIQ/AQhAQwNCyAJKAIEIQYgAigCACIEQQhqIgAoAgAhASAEQQRqKAIAIAFrQQNNBEAgBCABQQQQwwYgACgCACEBCyAAIAFBBGo2AgAgBCgCACABakEINgAAIAkgAjYCDCAJQQxqIAYQxAQiAQ0MIAZBHGooAgAhBCAGQRRqKAIAIQAgAigCACIKQQhqIgEoAgAhAyAKQQRqKAIAIANrQQdNBEAgCiADQQgQwwYgASgCACEDCyABIANBCGoiATYCACAKKAIAIANqIAStNwAAIAQEQCAKQQRqIQggCkEIaiEHA0AgAC0AACEFIABBAWohACAHIAEgCCgCAEcEfyABBSAKIAFBARDDBiAHKAIACyIDQQFqIgE2AgAgCigCACADaiAFOgAAIARBAWsiBA0ACwsgBjUCICEOIApBBGoiACgCACABa0EHTQRAIAogAUEIEMMGIApBCGooAgAhAQsgCigCACABaiAONwAAIApBCGoiBCABQQhqIgE2AgAgBjUCJCEOIAAoAgAgAWtBB00EQCAKIAFBCBDDBiAEKAIAIQELIAQgAUEIajYCACAKKAIAIAFqIA43AAAgBkEoaiACEPwEIgENDCAGQTRqIAIQ/AQiAQ0MIAZBQGsgAhD8BCIBDQwgBjUCTCEOIAIoAgAiAUEIaiIAKAIAIQIgAUEEaigCACACa0EHTQRAIAEgAkEIEMMGIAAoAgAhAgsgACACQQhqNgIAIAEoAgAgAmogDjcAAAwLCyACKAIAIgRBCGoiACgCACEBIARBBGooAgAgAWtBA00EQCAEIAFBBBDDBiAAKAIAIQELIAAgAUEEajYCACAEKAIAIAFqQQk2AAAgCSgCBCEIIAkgAjYCCCAIKAIIIQEgCCgCACEAIAIoAgAiBEEIaigCACEDIARBBGooAgAgA2tBB00EQCAEIANBCBDDBiAEQQhqKAIAIQMLIARBCGogA0EIajYCACAEKAIAIANqIAGtNwAAIAFBJGwhAwNAIAMEQCAJIAI2AgwgCUEMaiAAELMEIgENDSAAQRBqIAIQ/AQiAQ0NIANBJGshAyAAQSBqIQQgACgCHCAAQSRqIQAgBCgCACACECMiAUUNAQwNCwsgCUEIaiAIQQxqEGwiAQ0LIAhB1ABqKAIAIQMgCCgCTCEAIAIoAgAiBUEIaiIEKAIAIQEgBUEEaigCACABa0EHTQRAIAUgAUEIEMMGIAQoAgAhAQsgBCABQQhqNgIAIAUoAgAgAWogA603AAAgA0EYbCEDA0AgAwRAIAAgAhD8BCIBDQ0gA0EYayEDIABBDGogAEEYaiEAIAIQ/AQiAUUNAQwNCwsgCEHYAGogAhD8BCIBDQsgCEHkAGogAhD8BCIBRQ0KDAsLIAkoAgQgAigCACIDQQhqIgQoAgAhASADQQRqKAIAIAFrQQNNBEAgAyABQQQQwwYgBCgCACEBCyAEIAFBBGo2AgAgAygCACABakEKNgAAIAIQiAEhAQwKCyAJKAIEIQQgAigCACIDQQRqIgAoAgAgA0EIaiICKAIAIgFrQQNNBEAgAyABQQQQwwYgAigCACEBCyADKAIAIAFqQQs2AAAgAiABQQRqIgE2AgAgBCoCACEMIAAoAgAgAWtBA00EQCADIAFBBBDDBiADQQhqKAIAIQELIAMoAgAgAWogDDgAACADQQhqIgAgAUEEaiIBNgIAIAQqAgQhDCADQQRqKAIAIAFrQQNNBEAgAyABQQQQwwYgACgCACEBCyAAIAFBBGo2AgAgAygCACABaiAMOAAADAgLIAkoAgQhBCACKAIAIgNBBGoiACgCACADQQhqIgIoAgAiAWtBA00EQCADIAFBBBDDBiACKAIAIQELIAMoAgAgAWpBDDYAACACIAFBBGoiATYCACAEKgIAIQwgACgCACABa0EDTQRAIAMgAUEEEMMGIANBCGooAgAhAQsgAygCACABaiAMOAAAIANBCGoiACABQQRqIgE2AgAgBCoCBCEMIANBBGooAgAgAWtBA00EQCADIAFBBBDDBiAAKAIAIQELIAAgAUEEajYCACADKAIAIAFqIAw4AAAMBwsgCSgCBCEEIAIoAgAiA0EIaiIAKAIAIQEgA0EEaigCACABa0EDTQRAIAMgAUEEEMMGIAAoAgAhAQsgACABQQRqNgIAIAMoAgAgAWpBDTYAACAEIAIQ/AQiAQ0HIAQqAgwhDCADQQRqKAIAIANBCGoiACgCACICa0EDTQRAIAMgAkEEEMMGIAAoAgAhAgsgACACQQRqNgIAIAMoAgAgAmogDDgAAAwGCyAJKAIEIQQgAigCACIDQQhqIgAoAgAhASADQQRqKAIAIAFrQQNNBEAgAyABQQQQwwYgACgCACEBCyAAIAFBBGo2AgAgAygCACABakEONgAAIAQgAhD8BCIBDQYgBEEMaiACEPwEIgENBiAEQRhqIAIQ/AQiAQ0GIAQqAiQhDCADQQRqKAIAIANBCGoiACgCACICa0EDTQRAIAMgAkEEEMMGIAAoAgAhAgsgACACQQRqNgIAIAMoAgAgAmogDDgAAAwFCyAJKAIEIQQgAigCACIDQQRqIgAoAgAgA0EIaiICKAIAIgFrQQNNBEAgAyABQQQQwwYgAigCACEBCyADKAIAIAFqQQ82AAAgAiABQQRqIgE2AgAgBEEEaioCACENIAQqAgAhDCAAKAIAIAFrQQNNBEAgAyABQQQQwwYgA0EIaigCACEBCyADKAIAIAFqIAw4AAAgA0EIaiICIAFBBGoiATYCACADQQRqIgAoAgAgAWtBA00EQCADIAFBBBDDBiACKAIAIQELIAMoAgAgAWogDTgAACACIAFBBGoiATYCACAEKgIIIQwgACgCACABa0EDTQRAIAMgAUEEEMMGIANBCGooAgAhAQsgA0EIaiABQQRqNgIAIAMoAgAgAWogDDgAAAwECyAJKAIEIQQgAigCACIDQQRqIgAoAgAgA0EIaiICKAIAIgFrQQNNBEAgAyABQQQQwwYgAigCACEBCyADKAIAIAFqQRA2AAAgAiABQQRqIgE2AgAgBEEEaioCACENIAQqAgAhDCAAKAIAIAFrQQNNBEAgAyABQQQQwwYgA0EIaigCACEBCyADKAIAIAFqIAw4AAAgA0EIaiICIAFBBGoiATYCACADQQRqIgAoAgAgAWtBA00EQCADIAFBBBDDBiACKAIAIQELIAMoAgAgAWogDTgAACACIAFBBGoiATYCACAEKgIIIQwgACgCACABa0EDTQRAIAMgAUEEEMMGIANBCGooAgAhAQsgA0EIaiABQQRqNgIAIAMoAgAgAWogDDgAAAwDCyAJKAIEIQQgAigCACIDQQhqIgAoAgAhASADQQRqKAIAIAFrQQNNBEAgAyABQQQQwwYgACgCACEBCyAAIAFBBGo2AgAgAygCACABakERNgAAIAQgAhCIASIBDQMgBCoCYCEMIAIoAgAiAUEIaiIAKAIAIQIgAUEEaigCACACa0EDTQRAIAEgAkEEEMMGIAAoAgAhAgsgACACQQRqNgIAIAEoAgAgAmogDDgAAAwCCyAJKAIEIQQgAigCACIDQQRqIgAoAgAgA0EIaiICKAIAIgFrQQNNBEAgAyABQQQQwwYgAigCACEBCyADKAIAIAFqQRI2AAAgAiABQQRqIgE2AgAgACgCACABa0EDTQRAIAMgAUEEEMMGIANBCGooAgAhAQsgA0EIaiABQQRqNgIAIAMoAgAgAWogBDYAAAwBCwJAIAsoAoABIgNFBEAgAigCACIEQQhqIgAoAgAiASAEQQRqKAIARgRAIAQgAUEBEMMGIAAoAgAhAQsgACABQQFqNgIAIAQoAgAgAWpBADoAAAwBCyACKAIAIgZBBGohBSAGQQhqIgEoAgAiACAFKAIARgRAIAYgAEEBEMMGIAEoAgAhAAsgBigCACAAakEBOgAAIAEgAEEBaiIENgIAIAtBiAFqKAIAIQEgBSgCACAEa0EHTQRAIAYgBEEIEMMGIAZBCGooAgAhBAsgBkEIaiIIIARBCGoiADYCACAGKAIAIARqIAGtNwAAIAEEQCABQQJ0IQUDQCADKAIAIQEgA0EEaiEDIAggBkEEaigCACAAa0EDSwR/IAAFIAYgAEEEEMMGIAgoAgALIgRBBGoiADYCACAGKAIAIARqIAE2AAAgBUEEayIFDQALCyALQZQBaigCACEBIAtBjAFqKAIAIQMgBkEEaigCACAAa0EHTQRAIAYgAEEIEMMGIAZBCGooAgAhAAsgBkEIaiIIIABBCGoiBTYCACAGKAIAIABqIAGtNwAAIAEEQCABQQJ0IQQDQCADKAIAIQEgA0EEaiEDIAggBkEEaigCACAFa0EDSwR/IAUFIAYgBUEEEMMGIAgoAgALIgBBBGoiBTYCACAGKAIAIABqIAE2AAAgBEEEayIEDQALCyALQaABaigCACEBIAtBmAFqKAIAIQAgBkEEaigCACAFa0EHTQRAIAYgBUEIEMMGIAZBCGooAgAhBQsgBkEIaiIHIAVBCGoiBDYCACAGKAIAIAVqIAGtNwAAIAFFDQAgACABQQR0aiEDIAZBBGohCANAIAAoAgAhASAIKAIAIARrQQNNBEAgBiAEQQQQwwYgBygCACEECyAGKAIAIARqIAE2AAAgByAEQQRqIgQ2AgAgAEEEaigCACEBIAgoAgAgBGtBA00EQCAGIARBBBDDBiAHKAIAIQQLIAYoAgAgBGogATYAACAHIARBBGoiBDYCACAAQQhqKAIAIQEgCCgCACAEa0EDTQRAIAYgBEEEEMMGIAcoAgAhBAsgBigCACAEaiABNgAAIAcgBEEEaiIFNgIAIABBDGooAgAhASAIKAIAIAVrQQNNBEAgBiAFQQQQwwYgBygCACEFCyAHIAVBBGoiBDYCACAGKAIAIAVqIAE2AAAgAyAAQRBqIgBHDQALCwJAIAsoAqQBIgNFBEAgAigCACIEQQhqIgAoAgAiASAEQQRqKAIARgRAIAQgAUEBEMMGIAAoAgAhAQsgACABQQFqNgIAIAQoAgAgAWpBADoAAAwBCyACKAIAIgdBBGohBSAHQQhqIgEoAgAiACAFKAIARgRAIAcgAEEBEMMGIAEoAgAhAAsgBygCACAAakEBOgAAIAEgAEEBaiIENgIAIAtBrAFqKAIAIQEgBSgCACAEa0EHTQRAIAcgBEEIEMMGIAdBCGooAgAhBAsgB0EIaiIIIARBCGoiADYCACAHKAIAIARqIAGtNwAAIAEEQCABQQJ0IQUDQCADKAIAIQEgA0EEaiEDIAggB0EEaigCACAAa0EDSwR/IAAFIAcgAEEEEMMGIAgoAgALIgRBBGoiADYCACAHKAIAIARqIAE2AAAgBUEEayIFDQALCyALQbgBaigCACEBIAtBsAFqKAIAIQQgB0EEaigCACAAa0EHTQRAIAcgAEEIEMMGIAdBCGooAgAhAAsgB0EIaiIIIABBCGoiAzYCACAHKAIAIABqIAGtNwAAIAEEQCABQQJ0IQUDQCAEKAIAIQEgBEEEaiEEIAggB0EEaigCACADa0EDSwR/IAMFIAcgA0EEEMMGIAgoAgALIgBBBGoiAzYCACAHKAIAIABqIAE2AAAgBUEEayIFDQALCyALQcQBaigCACEFIAtBvAFqKAIAIQAgB0EEaigCACADa0EHTQRAIAcgA0EIEMMGIAdBCGooAgAhAwsgB0EIaiIBIANBCGoiBDYCACAHKAIAIANqIAWtNwAAIAVFDQAgBUECdCEFA0AgADUCACEOIABBBGohACABIAdBBGooAgAgBGtBB0sEfyAEBSAHIARBCBDDBiABKAIACyIDQQhqIgQ2AgAgBygCACADaiAONwAAIAVBBGsiBQ0ACwsgCy0AyAEhACACKAIAIgRBCGoiASgCACICIARBBGooAgBGBEAgBCACQQEQwwYgASgCACECCyABIAJBAWo2AgAgBCgCACACaiAAOgAAC0EAIQELIAlBEGokACABC9EtAiZ/BH4jAEHACmsiBSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEpAwAiKVBFBEAgASkDCCIqUA0BIAEpAxAiK1ANAiApICt8IiwgKVQNAyApICp9IClWDQQgASwAGiETIAEvARghASAFICk+AgQgBUEIakEAIClCIIinIClCgICAgBBUIgQbNgIAIAVBAUECIAQbNgIAIAVBDGpBAEGYARDaCxogBSAqPgKsASAFQagBaiIEQQhqQQAgKkIgiKcgKkKAgICAEFQiCRs2AgAgBUEBQQIgCRs2AqgBIARBDGpBAEGYARDaCxogBSArPgLUAiAFQdACaiIEQQhqQQAgK0IgiKcgK0KAgICAEFQiCRs2AgAgBUEBQQIgCRs2AtACIARBDGpBAEGYARDaCxogBUGABGpBAEGcARDaCxogBUKBgICAEDcD+AMgAa1CMIZCMIcgLEIBfXl9QsKawegEfkKAoc2gtAJ8QiCIpyIEQRB0QRB1IRICQCABQRB0QRB1IglBAE4EQCAFIAEQmAEaIAVBqAFqIAEQmAEaIAVB0AJqIAEQmAEaDAELIAVB+ANqQQAgCWtBEHRBEHUQmAEaCwJAIBJBAEgEQCAFQQAgEmtBEHRBEHUiARA+IAVBqAFqIAEQPiAFQdACaiABED4MAQsgBUH4A2ogBEH//wNxED4LIAUoAgAhCCAFQZgJakEEciAFQQRyIhtBoAEQ2QsaIAUgCDYCmAkCQAJAAkAgCCAFKALQAiIJIAggCUsbIgZBKE0EQCAGRQRAQQAhBgwECyAGQQFxIRQgBkEBRw0BDAILDBULIAZBfnEhFSAFQdgCaiEEIAVBoAlqIQEDQCADIAFBBGsiESgCACIOIARBBGsoAgBqIgNqIQcgESAHNgIAIAEgASgCACIXIAQoAgBqIhEgAyAOSSADIAdLcmoiAzYCACARIBdJIAMgEUlyIQMgBEEIaiEEIAFBCGohASAVIAtBAmoiC0cNAAsLIBQEQCALQQJ0IgQgBWpBnAlqIgcoAgAhASAHIAMgASAEIAVqQdQCaigCAGoiA2oiBDYCACABIANLIAMgBEtyIQMLIANFDQAgBkEnSw0GIAZBAnQgBWpBnAlqQQE2AgAgBkEBaiEGCyAFIAY2ApgJIAUoAvgDIg4gBiAGIA5JGyIBQSlPDRMgBUHQAmpBBHIhESAFQagBakEEciEUIAVBBHIhFSABQQJ0IQEDQAJAIAFFBEBBf0EAIAEbIQQMAQsgBUGYCWogAWohAyAFQfgDaiABaiEEIAFBBGshAUF/IAQoAgAiBCADKAIAIgNHIAMgBEsbIgRFDQELCyAEIBNOBEAgCEEpTw0HIAhFBEBBACEIDAoLIAhBAWtB/////wNxIgFBAWoiA0EDcSEEIAFBA0kEQEIAISkgFSEBDAkLIANB/P///wdxIQNCACEpIBUhAQNAIAEgATUCAEIKfiApfCIpPgIAIAFBBGoiBzUCAEIKfiApQiCIfCEpIAcgKT4CACABQQhqIgc1AgBCCn4gKUIgiHwhKSAHICk+AgAgAUEMaiIHNQIAQgp+IClCIIh8ISkgByApPgIAIClCIIghKSABQRBqIQEgA0EEayIDDQALDAgLIBJBAWohEgwPC0GHq8MAQRxBpKvDABCiCQALQbSrwwBBHUHUq8MAEKIJAAtB5KvDAEEcQYCswwAQogkAC0GQrMMAQTZByKzDABCiCQALQdiswwBBN0GQrcMAEKIJAAsgBkEoQdTVwwAQrwgACyAIQSgQ1gsACyAEBEADQCABIAE1AgBCCn4gKXwiKT4CACABQQRqIQEgKUIgiCEpIARBAWsiBA0ACwsgKaciAUUNACAIQSdLDQEgBSAIQQJ0akEEaiABNgIAIAhBAWohCAsgBSAINgIAIAUoAqgBIgdBKU8NCyAHRQRAQQAhBwwDCyAHQQFrQf////8DcSIBQQFqIgNBA3EhBCABQQNJBEBCACEpIBQhAQwCCyADQfz///8HcSEDQgAhKSAUIQEDQCABIAE1AgBCCn4gKXwiKT4CACABQQRqIgY1AgBCCn4gKUIgiHwhKSAGICk+AgAgAUEIaiIGNQIAQgp+IClCIIh8ISkgBiApPgIAIAFBDGoiBjUCAEIKfiApQiCIfCEpIAYgKT4CACApQiCIISkgAUEQaiEBIANBBGsiAw0ACwwBCyAIQShB1NXDABCvCAALIAQEQANAIAEgATUCAEIKfiApfCIpPgIAIAFBBGohASApQiCIISkgBEEBayIEDQALCyAppyIBRQ0AIAdBJ0sNASAHQQJ0IAVqQawBaiABNgIAIAdBAWohBwsgBSAHNgKoASAJQSlPDQEgCUUEQCAFQQA2AtACDAQLIAlBAWtB/////wNxIgFBAWoiA0EDcSEEIAFBA0kEQEIAISkgESEBDAMLIANB/P///wdxIQNCACEpIBEhAQNAIAEgATUCAEIKfiApfCIpPgIAIAFBBGoiBzUCAEIKfiApQiCIfCEpIAcgKT4CACABQQhqIgc1AgBCCn4gKUIgiHwhKSAHICk+AgAgAUEMaiIHNQIAQgp+IClCIIh8ISkgByApPgIAIClCIIghKSABQRBqIQEgA0EEayIDDQALDAILIAdBKEHU1cMAEK8IAAsgCUEoENYLAAsgBARAA0AgASABNQIAQgp+ICl8Iik+AgAgAUEEaiEBIClCIIghKSAEQQFrIgQNAAsLICmnIgEEQCAJQSdLDQIgCUECdCAFakHUAmogATYCACAJQQFqIQkLIAUgCTYC0AILIAVBoAVqIgNBBHIgBUH4A2pBBHIiAUGgARDZCxogBSAONgKgBSADQQEQmAEhHCAFKAL4AyEDIAVByAZqIgRBBHIgAUGgARDZCxogBSADNgLIBiAEQQIQmAEhHSAFKAL4AyEDIAVB8AdqIgRBBHIgAUGgARDZCxogBSADNgLwByAEQQMQmAEhHgJAAkACQAJAAkACQAJAAkACQAJAIAUoAgAiByAFKALwByIYIAcgGEsbIgZBKE0EQCAFQdgCaiEXIAVBmAlqIgFBCGohHyAFQYAEaiEgIAVBqAVqISEgBUHQBmohIiAFQfgHaiEjIAVBCGohCSABQQRyISQgBSgC+AMhFiAFKAKgBSEZIAUoAsgGIRpBACEIA0AgCCEOIAZBAnQhAQNAAkAgAUUEQEF/QQAgARshBAwBCyAFQfAHaiABaiEDIAEgBWohBCABQQRrIQFBfyAEKAIAIgQgAygCACIDRyADIARLGyIERQ0BCwtBACEKAkAgBEECTw0AAkAgBgRAQQEhAyAGQQFxQQAhCyAGQQFHBEAgBkF+cSEMICMhBCAJIQEDQCADIAFBBGsiCCgCACINIARBBGsoAgBBf3NqIgNqIQcgCCAHNgIAIAEgASgCACIPIAQoAgBBf3NqIgggAyANSSADIAdLcmoiAzYCACADIAhJIAggD0lyIQMgBEEIaiEEIAFBCGohASAMIAtBAmoiC0cNAAsLBEAgC0ECdCIEIAVqQQRqIgcoAgAhASAHIAMgASAEIB5qQQRqKAIAQX9zaiIDaiIENgIAIAEgA0sgAyAES3IhAwsgA0UNAQsgBSAGNgIAQQghCiAGIQcMAQsMEgsCQCAHIBogByAaSxsiBkEpSQRAIAZBAnQhAQNAAkAgAUUEQEF/QQAgARshBAwBCyAFQcgGaiABaiEDIAEgBWohBCABQQRrIQFBfyAEKAIAIgQgAygCACIDRyADIARLGyIERQ0BCwsgBEECTwRAIAchBgwCCyAGBEBBASEDIAZBAXFBACELIAZBAUcEQCAGQX5xIQ0gIiEEIAkhAQNAIAMgAUEEayIIKAIAIg8gBEEEaygCAEF/c2oiA2ohByAIIAc2AgAgASABKAIAIhAgBCgCAEF/c2oiCCADIA9JIAMgB0tyaiIDNgIAIAMgCEkgCCAQSXIhAyAEQQhqIQQgAUEIaiEBIA0gC0ECaiILRw0ACwsEQCALQQJ0IgQgBWpBBGoiBygCACEBIAcgAyABIAQgHWpBBGooAgBBf3NqIgNqIgQ2AgAgASADSyADIARLciEDCyADRQ0UCyAFIAY2AgAgCkEEciEKDAELDA8LAkAgBiAZIAYgGUsbIghBKUkEQCAIQQJ0IQEDQAJAIAFFBEBBf0EAIAEbIQQMAQsgBUGgBWogAWohAyABIAVqIQQgAUEEayEBQX8gBCgCACIEIAMoAgAiA0cgAyAESxsiBEUNAQsLIARBAk8EQCAGIQgMAgsgCARAQQEhAyAIQQFxQQAhCyAIQQFHBEAgCEF+cSENICEhBCAJIQEDQCADIAFBBGsiBigCACIPIARBBGsoAgBBf3NqIgNqIQcgBiAHNgIAIAEgASgCACIQIAQoAgBBf3NqIgYgAyAPSSADIAdLcmoiAzYCACADIAZJIAYgEElyIQMgBEEIaiEEIAFBCGohASANIAtBAmoiC0cNAAsLBEAgC0ECdCIEIAVqQQRqIgcoAgAhASAHIAMgASAEIBxqQQRqKAIAQX9zaiIDaiIENgIAIAEgA0sgAyAES3IhAwsgA0UNFAsgBSAINgIAIApBAmohCgwBCyAIQSgQ1gsACyAIIBYgCCAWSxsiB0EpTw0QIAdBAnQhAQNAAkAgAUUEQEF/QQAgARshBAwBCyAFQfgDaiABaiEDIAEgBWohBCABQQRrIQFBfyAEKAIAIgQgAygCACIDRyADIARLGyIERQ0BCwsCQCAEQQJPBEAgCCEHDAELIAcEQEEBIQMgB0EBcUEAIQsgB0EBRwRAIAdBfnEhDSAgIQQgCSEBA0AgAyABQQRrIggoAgAiDyAEQQRrKAIAQX9zaiIDaiEGIAggBjYCACABIAEoAgAiECAEKAIAQX9zaiIIIAMgD0kgAyAGS3JqIgM2AgAgAyAISSAIIBBJciEDIARBCGohBCABQQhqIQEgDSALQQJqIgtHDQALCwRAIAtBAnQgBWoiBEEEaiIGKAIAIQEgBiADIAEgBEH8A2ooAgBBf3NqIgNqIgQ2AgAgASADSyADIARLciEDCyADRQ0TCyAFIAc2AgAgCkEBaiEKCyAOQRFGDQUgAiAOaiAKQTBqOgAAIAcgBSgCqAEiDCAHIAxLGyIBQSlPDQ8gDkEBaiEIIAFBAnQhAQNAAkAgAUUEQEF/QQAgARshBgwBCyAFQagBaiABaiEDIAEgBWohBCABQQRrIQFBfyAEKAIAIgQgAygCACIDRyADIARLGyIGRQ0BCwsgJCAbQaABENkLGiAFIAc2ApgJIAcgBSgC0AIiDSAHIA1LGyIKQShLDQMCQCAKRQRAQQAhCgwBCyAKQQFxQQAhA0EAIQsgCkEBRwRAIApBfnEhJiAXIQQgHyEBA0AgAyABQQRrIhAoAgAiJyAEQQRrKAIAaiIDaiEPIBAgDzYCACABIAEoAgAiKCAEKAIAaiIQIAMgJ0kgAyAPS3JqIgM2AgAgECAoSSADIBBJciEDIARBCGohBCABQQhqIQEgJiALQQJqIgtHDQALCwRAIAtBAnQiBCAFakGcCWoiCygCACEBIAsgAyABIAQgBWpB1AJqKAIAaiIDaiIENgIAIAEgA0sgAyAES3IhAwsgA0UNACAKQSdLDQUgCkECdCAFakGcCWpBATYCACAKQQFqIQoLIAUgCjYCmAkgFiAKIAogFkkbIgFBKU8NDyABQQJ0IQEDQAJAIAFFBEBBf0EAIAEbIQQMAQsgBUGYCWogAWohAyAFQfgDaiABaiEEIAFBBGshAUF/IAQoAgAiBCADKAIAIgNHIAMgBEsbIgRFDQELCyAGIBNIDQIgBCATSA0CIAdBKU8NEAJAIAdFBEBBACEHDAELIAdBAWtB/////wNxIgNBAWoiBkEDcSEEQgAhKSAVIQEgA0EDTwRAIAZB/P///wdxIQMDQCABIAE1AgBCCn4gKXwiKT4CACABQQRqIgY1AgBCCn4gKUIgiHwhKSAGICk+AgAgAUEIaiIGNQIAQgp+IClCIIh8ISkgBiApPgIAIAFBDGoiBjUCAEIKfiApQiCIfCEpIAYgKT4CACApQiCIISkgAUEQaiEBIANBBGsiAw0ACwsgBARAA0AgASABNQIAQgp+ICl8Iik+AgAgAUEEaiEBIClCIIghKSAEQQFrIgQNAAsLICmnIgFFDQAgB0EnSw0HIAUgB0ECdGpBBGogATYCACAHQQFqIQcLIAUgBzYCACAMQSlPDQcCQCAMRQRAQQAhDAwBCyAMQQFrQf////8DcSIDQQFqIgZBA3EhBEIAISkgFCEBIANBA08EQCAGQfz///8HcSEDA0AgASABNQIAQgp+ICl8Iik+AgAgAUEEaiIGNQIAQgp+IClCIIh8ISkgBiApPgIAIAFBCGoiBjUCAEIKfiApQiCIfCEpIAYgKT4CACABQQxqIgY1AgBCCn4gKUIgiHwhKSAGICk+AgAgKUIgiCEpIAFBEGohASADQQRrIgMNAAsLIAQEQANAIAEgATUCAEIKfiApfCIpPgIAIAFBBGohASApQiCIISkgBEEBayIEDQALCyAppyIBRQ0AIAxBJ0sNCSAMQQJ0IAVqQawBaiABNgIAIAxBAWohDAsgBSAMNgKoASANQSlPDQkCQCANRQRAQQAhDQwBCyANQQFrQf////8DcSIDQQFqIgZBA3EhBEIAISkgESEBIANBA08EQCAGQfz///8HcSEDA0AgASABNQIAQgp+ICl8Iik+AgAgAUEEaiIGNQIAQgp+IClCIIh8ISkgBiApPgIAIAFBCGoiBjUCAEIKfiApQiCIfCEpIAYgKT4CACABQQxqIgY1AgBCCn4gKUIgiHwhKSAGICk+AgAgKUIgiCEpIAFBEGohASADQQRrIgMNAAsLIAQEQANAIAEgATUCAEIKfiApfCIpPgIAIAFBBGohASApQiCIISkgBEEBayIEDQALCyAppyIBRQ0AIA1BJ0sNCyANQQJ0IAVqQdQCaiABNgIAIA1BAWohDQsgBSANNgLQAiAHIBggByAYSxsiBkEoTQ0ACwsMDAsgBCATTg0KIAYgE0gEQCAFQQEQmAEaIAUoAgAiASAFKAL4AyIDIAEgA0sbIgFBKU8NDSABQQJ0IQEDQAJAIAFFBEBBf0EAIAEbIQQMAQsgBUH4A2ogAWohAyABIAVqIQQgAUEEayEBQX8gBCgCACIEIAMoAgAiA0cgAyAESxsiBEUNAQsLIARBAk8NCwsgDkERTw0IIAIgCGohA0F/IQQgDiEBAkADQCABQX9GDQEgBEEBaiEEIAEgAmogAUEBayEBLQAAQTlGDQALIAEgAmoiA0EBaiIJIAktAABBAWo6AAAgDiABQQJqSQ0LIANBAmpBMCAEENoLGgwLCyACQTE6AAAgDgRAIAJBAWpBMCAOENoLGgsgCEERSQRAIANBMDoAACASQQFqIRIgDkECaiEIDAsLIAhBEUHwrcMAEK8IAAsgCkEoENYLAAsgCkEoQdTVwwAQrwgAC0ERQRFB4K3DABCvCAALIAdBKEHU1cMAEK8IAAsgDEEoENYLAAsgDEEoQdTVwwAQrwgACyANQSgQ1gsACyANQShB1NXDABCvCAALIAhBERDWCwALIAlBKEHU1cMAEK8IAAsgCEERTQRAIAAgEjsBCCAAIAg2AgQgACACNgIAIAVBwApqJAAPCyAIQREQ1gsACyAGQSgQ1gsACyABQSgQ1gsACyAHQSgQ1gsAC0Hk1cMAQRpB1NXDABCiCQALri0DHn8zfQN+IwBB0AlrIgkkACAJQbAFaiIMIAYgAiAHKAKIARECACAJQdwAaiAMQRRqKgIAIiggCSoCuAUiKZNDAAAAP5QiJzgCACAJQdgAaiAnOAIAIAlB1ABqICc4AgAgCUHQAGogJzgCACAJQcwAaiAJQcAFaioCACIqIAkqArQFIiuTQwAAAD+UIic4AgAgCUHIAGogJzgCACAJQcQAaiAnOAIAIAlBQGsgJzgCACAJQTxqIAkqArwFIiwgCSoCsAUiLZNDAAAAP5QiJzgCACAJQThqICc4AgAgCUE0aiAnOAIAIAlBLGogKSAokkMAAAC/lCIoOAIAIAlBKGogKDgCACAJQSRqICg4AgAgCUEcaiArICqSQwAAAL+UIik4AgAgCUEYaiApOAIAIAlBFGogKTgCACAJICc4AjAgCSAoOAIgIAkgKTgCECAJIC0gLJJDAAAAv5QiJzgCDCAJICc4AgggCSAnOAIEIAkgJzgCACADKgIIIScgAyoCBCEoIAMqAgAhKSAJQYgBakIANwMAIAlBgAFqQgA3AwAgCUH4AGpCADcDACAJQfAAakIANwMAIAlB6ABqQgA3AwAgCUGQAWogKTgCACAJQZQBaiApOAIAIAlBmAFqICk4AgAgCUGcAWogKTgCACAJQaABaiAoOAIAIAlBpAFqICg4AgAgCUGoAWogKDgCACAJQawBaiAoOAIAIAlBsAFqICc4AgAgCUG0AWogJzgCACAJQbgBaiAnOAIAIAlBvAFqICc4AgAgCUHQAWogBTYCACAJQdgBaiAHNgIAIAlCADcDYCAJIAE2AsABIAkgAjYCxAEgCSADNgLIASAJIAQ2AswBIAkgBjYC1AEgCSAIOALcAQJAAkAgBCAFKAIQEQUAIhNBIGooAgAEQCAJQQA2AugBIAlCBDcD4AEgCUHgAWoiAUEAEIkGIAkoAuABIAkoAugBIgJBA3RqQoCAgIDw////fjcCACAJIAJBAWo2AugBIAlBsAJqIAEQ6wJBBCEBAkAgCSgCsAJBAUcNACAJQdwBaiEUIAlBxAFqIRUgCUGgB2oiAUEDaiEOIAlBnQdqIRggCUHsBmohDyAJQeEGaiEZIAlBsAVqIgJBgAFqIRAgCUGlBmohGiAJQfQFaiERIAlB6QVqIRsgAkEIaiESIAlB1QdqIQ0gAUEEciEMIAlBoAlqQQRyIRwgCUHgAGohJkP//39/IScgE0EgaiEdQQQhAQNAICcgCSoCuAKMXw0BAkACQCAdKAIAIgMgCSgCtAIiAksEQCAJQcACaiATKAIYIAJBB3RqQYABENkLGiAJLQC4AyIFBEAgCSgCrAMiAyATKAI8IgJJIQQgA0EMbCATKAI0IgNqQQAgBBtBCGpBACAEGyEeIAkoAqgDIgYgAkkhBCADIAZBDGxqQQAgBBtBCGpBACAEGyEfIAkoAqQDIgYgAkkhBCADIAZBDGxqQQAgBBtBCGpBACAEGyEgIAkoAqADIgQgAkkhAiADIARBDGxqQQAgAhtBCGpBACACGyEXCyAJKgLAAiE9IAkqAsQCIT4gCSoCyAIhPyAJKgLMAiFAIAkqAtACIUEgCSoC1AIhQiAJKgLYAiFDIAkqAtwCIUQgCSoC4AIhRSAJKgLkAiFGIAkqAugCIUcgCSoC7AIhSCAJKgIwIQggCSoCACEoIAkqAvACIUkgCSoCNCEpIAkqAgQhKiAJKgL0AiFKIAkqAjghKyAJKgIIISwgCSoC+AIhSyAJKgI8IS0gCSoCDCEuIAkqAvwCIUwgCSoCQCEvIAkqAhAhMCAJKgKAAyFNIAkqAkQhMSAJKgIUITIgCSoChAMhTiAJKgJIITMgCSoCGCE0IAkqAogDIU8gCSoCTCE1IAkqAhwhNiAJKgKMAyFQIAkqAlAhNyAJKgIgITggCSoCkAMhUSAJKgJUITkgCSoCJCE6IAkqApQDIVIgCSoCWCE7IAkqAighPCAJKgKYAyFTIAkgCSoCXCJUIAkqAiwiVSAJKgKcA5KSOAKMBiAJIDsgPCBTkpI4AogGIAkgOSA6IFKSkjgChAYgCSA3IDggUZKSOAKABiAJIDUgNiBQkpI4AvwFIAkgMyA0IE+SkjgC+AUgCSAxIDIgTpKSOAL0BSAJIC8gMCBNkpI4AvAFIAkgLSAuIEySkjgC7AUgCSArICwgS5KSOALoBSAJICkgKiBKkpI4AuQFIAkgCCAoIEmSkjgC4AUgCSBIIFWSIFSTOALcBSAJIEcgPJIgO5M4AtgFIAkgRiA6kiA5kzgC1AUgCSBFIDiSIDeTOALQBSAJIEQgNpIgNZM4AswFIAkgQyA0kiAzkzgCyAUgCSBCIDKSIDGTOALEBSAJIEEgMJIgL5M4AsAFIAkgQCAukiAtkzgCvAUgCSA/ICySICuTOAK4BSAJID4gKpIgKZM4ArQFIAkgPSAokiAIkzgCsAUgCSAJKgLcASIIOAKsCSAJIAg4AqgJIAkgCDgCpAkgCSAIOAKgCSAJQaAHaiAJQbAFaiAmIAlBoAlqEMwBIAlB6AdqIgIgDEEIaiIKKAIANgIAIAkgDCkCADcD4AcgCSgCoAchAyAJKgKwByEoIAkqArQHIQggCSoCuAchKSAJKgK8ByEqIAVFBEBBBCEGQQQhBEEEIQJBBCEFDAMLIBwgCSkD4Ac3AgAgHEEIaiACKAIANgIAIAkgAzYCoAkgCSAnICpeOgCjByAJICcgKV46AKIHIAkgCCAnXToAoQcgCSAnICheOgCgByAJQeAIaiAJQaAJaiAJQaAHahDfCCAJLQDgCCAJLQDhCEEBdHIgCS0A4ghBAnRyIAktAOMIQQN0cq0iW0L/AYMhWkEEIQJBACEWQwAAAAAhCEMAAAAAIShBACEDQQQhBSBbQgGDUA0BIBdFDQEgFygCACEhIAlBBDoA1AcgCSgCzAEgCSgC0AEhBCAJIBQ2AogIIAkgCSkC1AE3A4AIIAkgCSgCyAE2AvwHIAkgFTYC+AcgCSAJKALAATYC9AcgCSAJQaAHajYC8AcgISAJQfAHakG4rcIAIAQoAgwRAQAgCS0A1AciBUEERgRAQQAhAwwCCyAJQaAJaiIDQQhqIAopAgA3AwAgA0EQaiAMQRBqKQIANwMAIANBGGogDEEYaikCADcDACADQSBqIAxBIGopAgA3AwAgA0EoaiAMQShqKQIANwMAIAlBnglqIA1BAmotAAA6AAAgCSAMKQIANwOgCSAJIA0vAAA7AZwJIAkqAqAHIiggJ10hAyAoIVYMAQsgAiADQfyEwgAQrwgACwJAIFpCAoNQDQAgIEUNACAgKAIAISIgCUEEOgDUByAJKALMASAJKALQASEEIAkgFDYCiAggCSAJKQLUATcDgAggCSAJKALIATYC/AcgCSAVNgL4ByAJIAkoAsABNgL0ByAJIAlBoAdqNgLwByAiIAlB8AdqQbitwgAgBCgCDBEBACAJLQDUByICQQRGDQAgCUHgCGoiBEEIaiAKKQIANwMAIARBEGogDEEQaikCADcDACAEQRhqIAxBGGopAgA3AwAgBEEgaiAMQSBqKQIANwMAIARBKGogDEEoaikCADcDACAJQd4IaiANQQJqLQAAOgAAIAkgDCkCADcD4AggCSANLwAAOwHcCCAnIAkqAqAHIgheIRYgCCFXC0EEIQZBACEjQwAAAAAhKkMAAAAAISlBACEHQQQhBAJAIFpCBINQDQAgH0UNACAfKAIAISQgCUEEOgDUByAJKALMASAJKALQASEHIAkgFDYCiAggCSAJKQLUATcDgAggCSAJKALIATYC/AcgCSAVNgL4ByAJIAkoAsABNgL0ByAJIAlBoAdqNgLwByAkIAlB8AdqQbitwgAgBygCDBEBACAJLQDUByIEQQRGBEBBACEHDAELIAlBqAhqIgdBCGogCikCADcDACAHQRBqIAxBEGopAgA3AwAgB0EYaiAMQRhqKQIANwMAIAdBIGogDEEgaikCADcDACAHQShqIAxBKGopAgA3AwAgCUGmCGogDUECai0AADoAACAJIAwpAgA3A6gIIAkgDS8AADsBpAggCSoCoAciKSAnXSEHICkhWAsCQCBaQgiDUA0AIB5FDQAgHigCACElIAlBBDoA1AcgCSgCzAEgCSgC0AEhCyAJIBQ2AogIIAkgCSkC1AE3A4AIIAkgCSgCyAE2AvwHIAkgFTYC+AcgCSAJKALAATYC9AcgCSAJQaAHajYC8AcgJSAJQfAHakG4rcIAIAsoAgwRAQAgCS0A1AciBkEERg0AIAlB8AdqIgtBCGogCikCADcDACALQRBqIAxBEGopAgA3AwAgC0EYaiAMQRhqKQIANwMAIAtBIGogDEEgaikCADcDACALQShqIAxBKGopAgA3AwAgCUHuB2ogDUECai0AADoAACAJIAwpAgA3A/AHIAkgDS8AADsB7AcgCSoCoAciKiAnXSEjICohWQsgCUGABWoiCkEoaiAJQaAJaiILQShqKQMANwMAIApBIGogC0EgaikDADcDACAKQRhqIAtBGGopAwA3AwAgCkEQaiALQRBqKQMANwMAIApBCGogC0EIaikDADcDACAJQcgEaiIKQQhqIAlB4AhqIgtBCGopAwA3AwAgCkEQaiALQRBqKQMANwMAIApBGGogC0EYaikDADcDACAKQSBqIAtBIGopAwA3AwAgCkEoaiALQShqKQMANwMAIAkgCSkDoAk3A4AFIAkgCSkD4Ag3A8gEIAlBkARqIgpBKGogCUGoCGoiC0EoaikDADcDACAKQSBqIAtBIGopAwA3AwAgCkEYaiALQRhqKQMANwMAIApBEGogC0EQaikDADcDACAKQQhqIAtBCGopAwA3AwAg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IAgpAwA3AwAgCUEQaiIQIARBEGoiESkDADcDACAJQRhqIhUgCikDADcDACAJQSBqIgkgBEEgaiITKAIANgIAIAcgDykCADcDKCATIAkoAgA2AgAgCiAVKQMANwMAIBEgECkDADcDACAIIAspAwA3AwAgByAHKQMoNwOIASAHQbgCaiIJQRBqIAFBEGooAgA2AgAgCUEIaiABQQhqKQIANwMAIAcgASkCADcDuAIgB0HoAWoiCEEIaiAGQQhqKQIANwMAIAcgBikCADcD6AEgACAJIAIgBEG0rsAAIAUgCBAnIA4gA0EMaiIDRg0HDAELCyAJIARBxJ7AABCvCAALIANBBEHc5sMAKAIAIgBBjwcgABsRAAAACyAPIARBpJ7AABCvCAALIAggBEG0nsAAEK8IAAtBAAshBANAIAQEQCAHQegBaiIEQSBqIApBIGooAgAiCTYCACAEQRhqIApBGGopAgAiKzcDACAEQRBqIApBEGopAgAiLTcDACAEQQhqIApBCGopAgAiLDcDACAHIAopAgAiLjcD6AEgDSAJNgIAIA8gKzcDACAOIC03AwAgECAsNwMAIAcgLjcDuAIgB0GQAmoiBEEQaiABQRBqKAIANgIAIARBCGogAUEIaikCADcDACAHIAEpAgA3A5ACIAdBqAJqIglBCGogBkEIaikCADcDACAHIAYpAgA3A6gCIAAgBCACIAdBuAJqQbSuwAAgBSAJECcgDSAMQSBqKAIANgIAIA8gDEEYaikCADcDACAOIAxBEGopAgA3AwAgECAMQQhqKQIANwMAIAdBADYClAEgByAMKQIANwO4AkEAIQQMAQUgBygCiAEiBEEMaiERAn8DQCAHKAK8ASEJIAdBADYCvAEgCyAJQQFGDQEaIAcgBygCjAFBAWoiCTYCjAEgBygCkAEhCiARKAIAQQFrIAlNBEAgCiAEQRBqKAIAQQJrTw0FIAdBADYCjAEgByAKQQFqIgo2ApABQQAhCQsgCCAEIAkgChD1ASAQIAxBCGopAgA3AwAgDiAMQRBqKQIANwMAIA8gDEEYaikCADcDACANIAxBIGooAgA2AgAgBygClAEgB0EANgKUASAHIAwpAgA3A7gCQQFHDQALIAMLIQpBASEEDAELAAsACyAHQeACaiQAC5I0Axh/B30DfiMAQbACayIEJABDAAAANBB9ISEg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QEEAIQIMAQsDQEEAQX8gBCADQQFrIg1BAXYiAkEDdGoiDkEEaioCACIzIAlfIg8bQQFBAiAPGyAJIDNfG0EDa0F+SQRAIAMhAgwCCyAEIANBA3RqIA4pAgA3AgAgAiEDIA1BAUsNAAsLIAQgAkEDdGoiAiAJOAIEIAIgDDYCAAsgTUIEUg0ACyALQZABaiALQUBrEOsCIAsoApABQQFGDQEMBAsLIAIgA0H8hMIAEK8IAAsgA0EEQZimwgAQrwgACyADQQRBqKbCABCvCAALIAtBwAJqIgJBCGogC0HQAGoiA0EIaikDADcDACACQRBqIANBEGopAwA3AwAgAkEYaiADQRhqKQMANwMAIAJBIGogA0EgaikDADcDACACQShqIANBKGopAwA3AwAgAkEwaiADQTBqKQMANwMAIAJBN2ogA0E3aigAADYAACALQaIBaiALQc4Aai0AADoAACALIAspA1A3A8ACIAsgCy8BTDsBoAECQCALKAJEIgJFDQAgAkEDdEUNACALKAJAEKwBCyABQf8BcUEERw0BCyAAQQQ6ADQMAQsgACALLwGgATsANSALQZAEaiICQTdqIgQgC0HAAmoiA0E3aigAADYAACACQTBqIANBMGopAwA3AwAgAkEoaiADQShqKQMANwMAIAJBIGogA0EgaikDADcDACACQRhqIANBGGopAwA3AwAgAkEQaiADQRBqKQMANwMAIAJBCGogA0EIaikDADcDACAAQTdqIAtBogFqLQAAOgAAIAsgCykDwAI3A5AEIAAgAToANCAAQTBqIAQoAAA2AAAgAEEoaiALQb8EaikAADcAACAAQSBqIAtBtwRqKQAANwAAIABBGGogC0GvBGopAAA3AAAgAEEQaiALQacEaikAADcAACAAQQhqIAtBnwRqKQAANwAAIAAgCykAlwQ3AAALIAtBgAhqJAAL7C4DDH8KfQN+IwBB0ARrIgkkACAJQRhqIAIgAygCrAERAAAgCSgCHCENIAkoAhghCyAJQRBqIAQgBSgCrAERAAAgCSgCFCEPAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAtBACAJKAIQIgobRQRAIAIgAygClAERBQAgBCAFKAKUAREFACEOQf8BcSIMQQVHBEAgDkH/AXEiDkEFRw0DCyACIAMQrgkiCkUNAUEAIQwgACABIAogBCAF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IBBBCGooAgA2AgAgACAQKQIANwJQIAAgDykCADcCXCAAQeQAaiAPQQhqKAIANgIAIAFBAWohAQsgASADSQ0HIAFBDEsNCCAEIANB8ABsaiABIANrEN4BIAZB0AJqJAAMCgsgA0EMENYLAAsgAUEMQeS8wQAQrwgACyABQQxBhL3BABCvCAALQbz0wABBHUHU9cAAELQKAAsgBkEANgLYAUEAIAZBzAJqQZiHwQAgBkHYAWpB0MHBABC0CAALIAFBDEGkvcEAEK8IAAsgAUEMQbS9wQAQrwgACyADIAEQ1wsACyABQQwQ1gsACyABQQxBlL3BABCvCAALDAQLIAtBwAFqKAIAIQNBBiENQQAMAgsgC0HAAWooAgALIQMgDSgCECEEIAhByAFqKAIAIQ0gCEEIagshCiADIA1qIgNFDQcgBSgCACADQQxsaiIDIAZBDGooAgBLDQUMBgsgCUGoDGogCUHoAWpBwAoQ2QsaIAlB7BZqQQw2AgAgAUUNBiAJQagMaiEAIAdBBGohBUF/IQpBACECA0AgCSABIApqNgLwFiACQQtLDQcgCSACQQFqIgI2AugWIABB6ABqKAIAIgZBA0YNByAAQewAaigCACELIAcoAggiAyAFKAIARgRAIAcgAxDkBSAHKAIIIQMLIAcoAgAgA0H0AGxqIgRBADYCACAEQQRqIABB6AAQ2QsaIARB8ABqIAs2AgAgBEHsAGogBjYCACAHIANBAWo2AgggCkEBayEKIABB8ABqIQAgASACRw0ACwwGC0GYicEAQRNB9LPBABDDCwALQZiJwQBBE0GEtMEAEMMLAAtBmInBAEETQbS0wQAQwwsAC0GYicEAQRNBxLTBABDDCwALIAYgAxD7AQsgCUGAAmpCADcDACAJQfgBakIANwMAIAlB8AFqQgA3AwAgCUGYAmpCADcDACAJQaACakIANwMAIAlBpgJqQgA3AQAgCUG4AmpCADcDACAJQcACakIANwMAIAlByAJqQgA3AwAgCUHYAmpCADcDACAJQdACakL////7////v/8ANwMAIAlB4AJqQgA3AwAgCUHoAmpCADcDACAJQe4CakIANwEAIAlCADcD6AEgCUIANwOQAiAJQv////v///+//wA3A4gCIAlCADcDsAIgCUGQA2pCADcDACAJQYgDakIANwMAIAlBgANqQgA3AwAgCUGYA2pC////+////7//ADcDACAJQaADakIANwMAIAlBqANqQgA3AwAgCUGwA2pCADcDACAJQbYDakIANwEAIAlByANqQgA3AwAgCUHQA2pCADcDACAJQdgDakIANwMAIAlB4ANqQv////v///+//wA3AwAgCUHoA2pCADcDACAJQfADakIANwMAIAlB+ANqQgA3AwAgCUH+A2pCADcBACAJQgA3A/gCIAlCADcDwAMgCUGgBGpCADcDACAJQZgEakIANwMAIAlBkARqQgA3AwAgCUHGBGpCADcBACAJQagEakL////7////v/8ANwMAIAlBwARqQgA3AwAgCUG4BGpCADcDACAJQbAEakIANwMAIAlB6ARqQgA3AwAgCUHgBGpCADcDACAJQdgEakIANwMAIAlBjgVqQgA3AQAgCUHwBGpC////+////7//ADcDACAJQYgFakIANwMAIAlBgAVqQgA3AwAgCUH4BGpCADcDACAJQgA3A4gEIAlCADcD0AQgCUGwBWpCADcDACAJQagFakIANwMAIAlBoAVqQgA3AwAgCUIANwOYBSAJQbgFakL////7////v/8ANwMAIAlB1gVqQgA3AQAgCUHQBWpCADcDACAJQcgFakIANwMAIAlBwAVqQgA3AwAgCUH4BWpCADcDACAJQfAFakIANwMAIAlB6AVqQgA3AwAgCUIANwPgBSAJQYAGakL////7////v/8ANwMAIAlBngZqQgA3AQAgCUGYBmpCADcDACAJQZAGakIANwMAIAlBiAZqQgA3AwAgCUHABmpCADcDACAJQbgGakIANwMAIAlBsAZqQgA3AwAgCUIANwOoBiAJQcgGakL////7////v/8ANwMAIAlB5gZqQgA3AQAgCUHgBmpCADcDACAJQdgGakIANwMAIAlB0AZqQgA3AwAgCUGIB2pCADcDACAJQYAHakIANwMAIAlB+AZqQgA3AwAgCUIANwPwBiAJQZAHakL////7////v/8ANwMAIAlBrgdqQgA3AQAgCUGoB2pCADcDACAJQaAHakIANwMAIAlBmAdqQgA3AwAgCUHQB2pCADcDACAJQcgHakIANwMAIAlBwAdqQgA3AwAgCUIANwO4ByAJQdgHakL////7////v/8ANwMAIAlB9gdqQgA3AQAgCUHwB2pCADcDACAJQegHakIANwMA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AWpBAkkNACAQIANBDGxqIQpBACEJA0AgA0EMbCECIANBAWshA0EAQX8gAiAQaiIHKgIAIiEgB0EMayIIKgIAIiBgIgIbQQFBAiACGyAgICFgG0F/RgRAIBAgA0EMbGopAgQhIiAIQQhqIAdBCGooAgA2AgAgCCAHKQIANwIAAkAgDiADa0EDSQ0AIAkhBiAKIQJBAEF/IAgqAhgiISAgYCIIG0EBQQIgCBsgICAhYBtBf0cNAANAIAJBCGogAkEUaigCADYCACACIAJBDGoiBykCADcCACAGQQFrIgZFDQEgAkEYaiEIIAchAkEAQX8gCCoCACIhICBgIggbQQFBAiAIGyAgICFgG0F/Rg0ACwsgByAiNwIEIAcgIDgCAAsgCUEBaiEJIApBDGshCiADDQALCyAAQRxqKAIAIgkgAEEQaiILKAIAIgpqIQgCQCAIIApNBEAgCCEGDAELIAkgAEEMaigCACAKIgZrSwRAIABBCGogCiAJEIEGIABBEGooAgAhBgsgACgCCCAGQQN0aiEDIAlBAk8EQCAJQQFrIgdBB3EhAiAJQQJrQQdPBEAgB0F4cSEHA0AgA0L////79/////8ANwIAIANBOGpC////+/f/////ADcCACADQTBqQv////v3/////wA3AgAgA0EoakL////79/////8ANwIAIANBIGpC////+/f/////ADcCACADQRhqQv////v3/////wA3AgAgA0EQakL////79/////8ANwIAIANBCGpC////+/f/////ADcCACADQUBrIQMgB0EIayIHDQALCyACBEADQCADQv////v3/////wA3AgAgA0EIaiEDIAJBAWsiAg0ACwsgBiAJakEBayEGCyAJBEAgA0L////79/////8ANwIAIAZBAWohBgsgAEEcaigCACEJCyALIAY2AgAgCQRAAkACQAJAAkAgCkECayIKIAZPDQAgCEECayEDIAAoAhQiDiAJQQxsaiELIABBEGohCQNAIANBA3QhByAKQQN0IQIgC0EMayEIA0AgACgCCCIMIAJqIhQqAgAiICAIKgIAIiFfRQRAIAMgBk8NBCAHIAxqIgZBBGogFEEEaigCADYCACAGICA4AgAgB0EIayEHIAJBCGshAiADQQFrIQMgCSgCACIGIApBAWsiCksNAQwDCwsgAyAGTw0DIAcgDGoi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AWsQlgIgLkHwAWokAAwPCyABQQxBxL7BABCvCAALIAFBDBDWCwALQaiowQBBE0HUvsEAEKIJAAsgAEEMQYS/wQAQrwgACyAAQQxBlL/BABCvCAALIABBDEGkv8EAEK8IAAtBvPTAAEEdQdT1wAAQtAoACyAuQQA2AtgBQQAgLkHUAWpBmIfBACAuQdgBakHgwcEAELQIAAsgAEEMQbS/wQAQrwgACyAAQQxBxL/BABCvCAALIAEgABDXCwALIABBDBDWCwALIAFBDEG0vsEAEK8IAAsgACEBCyABQQxB9L7BABCvCAALIC1B0AlqIANB8AcQ2QsaIC1BxBFqQQw2AgAgACIBRQ0GQQAhAiAtQdAJaiEAIAdBBGohBkF/IQMDQCAtIAEgA2o2AsgRIAJBC0sNByAtIAJBAWoiAjYCwBEgAEHMAGooAgAiBUEDRg0HIABB0ABqKAIAIQQgBygCCCIwIAYoAgBGBEAgByAwEOQFIAcoAgghMAsgBygCACAwQfQAbGoiMUEBNgIAIDFBBGogAEHMABDZCxogMUHUAGogBDYCACAxQdAAaiAFNgIAIAcgMEEBajYCCCADQQFrIQMgAEHUAGohACABIAJHDQALDAYLIAYgAxD7AQwEC0GYicEAQRNB1LTBABDDCwALQZiJwQBBE0HktMEAEMMLAAtBmInBAEETQfS0wQAQwwsAC0GYicEAQRNBpLXBABDDCwALIC1B+AFqQf////sHNgIAIC1BhAJqQgA3AgAgLUGMAmpCADcCACAtQZQCakEANgIAIC1BtAJqQgA3AgAgLUGwAmpB////+wc2AgAgLUGoAmpCgICAgPD//79/NwMAIC1BoAJqQv////8PNwMAIC1BvAJqQgA3AgAgLUHEAmpCADcCACAtQcwCakEANgIAIC1B2AJqQv////8PNwMAIC1B6AJqQf////sHNgIAIC1B4AJqQoCAgIDw//+/fzcDACAtQgA3AvwBIC1CgICAgPD//79/NwPwASAtQv////8PNwPoASAtQv////8PNwPgASAtQv////8PNwOYAiAtQv////8PNwPQAiAtQYQDakEANgIAIC1B/AJqQgA3AgAgLUH0AmpCADcCACAtQewCakIANwIAIC1BmANqQoCAgIDw//+/fzcDACAtQaADakH////7BzYCACAtQZADakL/////DzcDACAtQaQDakIANwIAIC1BrANqQgA3AgAgLUG0A2pCADcCACAtQbwDakEANgIAIC1B0ANqQoCAgIDw//+/fzcDACAtQdgDakH////7BzYCACAtQcgDakL/////DzcDACAtQdwDakIANwIAIC1B5ANqQgA3AgAgLUHsA2pCADcCACAtQfQDakEANgIAIC1C/////w83A4gDIC1C/////w83A8ADIC1BkARqQf////sHNgIAIC1BiARqQoCAgIDw//+/fzcDACAtQYAEakL/////DzcDACAtQawEakEANgIAIC1BpARqQgA3AgAgLUGcBGpCADcCACAtQZQEakIANwIAIC1BuARqQv////8PNwMAIC1ByARqQf////sHNgIAIC1BwARqQoCAgIDw//+/fzcDACAtQeQEakEANgIAIC1B3ARqQgA3AgAgLUHUBGpCADcCACAtQcwEakIANwIAIC1B8ARqQv////8PNwMAIC1BgAVqQf////sHNgIAIC1B+ARqQoCAgIDw//+/fzcDACAtQv////8PNwP4AyAtQv////8PNwOwBCAtQv////8PNwPoBCAtQZwFakEANgIAIC1BlAVqQgA3AgAgLUGMBWpCADcCACAtQYQFakIANwIAIC1BuAVqQf////sHNgIAIC1BsAVqQoCAgIDw//+/fzcDACAtQagFakL/////DzcDACAtQv////8PNwOgBSAtQdQFakEANgIAIC1BzAVqQgA3AgAgLUHEBWpCADcCACAtQbwFakIANwIAIC1B8AVqQf////sHNgIAIC1B6AVqQoCAgIDw//+/fzcDACAtQeAFakL/////DzcDACAtQv////8PNwPYBSAtQYwGakEANgIAIC1BhAZqQgA3AgAgLUH8BWpCADcCACAtQfQFakIANwIAIC1BqAZqQf////sHNgIAIC1BoAZqQoCAgIDw//+/fzcDACAtQZgGakL/////DzcDACAtQv////8PNwOQBiAtQcQGakEANgIAIC1BvAZqQgA3AgAgLUG0BmpCADcCACAtQawGakIANwIAIC1B4AZqQf////sHNgIAIC1B2AZqQoCAgIDw//+/fzcDACAtQdAGakL/////DzcDACAtQv////8PNwPIBiAtQfwGakEANgIAIC1B9AZqQgA3AgAgLUHsBmpCADcCACAtQeQGakIANwIAIAEh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NwIAIAogA0EYaiIKKQIANwIAIAIgA0EgaiICKAIANgIAIAQgWDcDQCADIAQpA0A3AgAgAiAGKAIANgIAIAogCCkDADcCACAJIAspAwA3AgAgByAFKQMANwIAIAFBCGohAwwQCyABKQIgIVggASAIKQIANwIgIARBQGsiA0EgaiIFIAFBQGsiBigCADYCACADQRhqIgIgAUE4aiIKKQIANwMAIANBEGoiCyABQTBqIgkpAgA3AwAgA0EIaiIDIAFBKGoiBykCADcDACAHIAhBCGoiBykCADcCACAJIAhBEGoiCSkCADcCACAKIAhBGGoiCikCADcCACAGIAhBIGoiBigCADYCACAEIFg3A0AgCCAEKQNANwIAIAYgBSgCADYCACAKIAIpAwA3AgAgCSALKQMANwIAIAcgAykDADcCACABQQxqIQMMDwsgASkCICFYIAEgAykCADcCICAEQUBrIgZBIGoiAiABQUBrIgkoAgA2AgAgBkEYaiIKIAFBOGoiBykCADcDACAGQRBqIgsgAUEwaiINKQIANwMAIAZBCGoiBiABQShqIg4pAgA3AwAgDiADQQhqIg4pAgA3AgAgDSADQRBqIg0pAgA3AgAgByADQRhqIgcpAgA3AgAgCSADQSBqIgkoAgA2AgAgBCBYNwNAIAMgBCkDQDcCACAJIAIoAgA2AgAgByAKKQMANwIAIA0gCykDADcCACAOIAYpAwA3AgAgASgCCCEDIAEgASgCADYCCCABIAM2AgAgAiAFQSBqIgMoAgA2AgAgCiAFQRhqIgkpAgA3AwAgCyAFQRBqIgcpAgA3AwAgBiAFQQhqIg0pAgA3AwAgBSkCACFYIAUgCCkCADcCACANIAhBCGoiBSkCADcCACAHIAhBEGoiBykCADcCACAJIAhBGGoiCSkCADcCACADIAhBIGoiAygCADYCACAEIFg3A0AgCCAEKQNANwIAIAMgAigCADYCACAJIAopAwA3AgAgByALKQMANwIAIAUgBikDADcCACABQQRqIQUgAUEMagshAyATIRQMDgsgBkEETw0IIARBQGsiA0EgaiIFIAFBQGsiAigCADYCACADQRhqIgogAUE4aiILKQIANwMAIANBEGoiDCABQTBqIgkpAgA3AwAgA0EIaiIHIAFBKGoiDSkCADcDACABQSBqIAZBJGxqIgNBIGoiDigC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IBYgDCAJQRhsaiIJQQhqKgIAIAlBFGoqAgCSQwAAAD+UlJIhGCAZIBYgCUEEaioCACAJQRBqKgIAkkMAAAA/lJSSIRkgGiAWIAkqAgAgCUEMaioCAJJDAAAAP5SUkiEaIA0gC0EEaiILRw0ACyAEQQJ0IQ1DAACAPyAEQQFrs5UhFSAFKAIAIQwgBSgCCCEIQQAhC0MAAAAAIRYCQANAIAMgC2ooAgAiCSAITw0BIBsgFSAMIAlBGGxqIglBCGoqAgAgCUEUaioCAJJDAAAAP5QgGJMiGyAblJSSIRsgFiAVIAlBBGoqAgAgCUEQaioCAJJDAAAAP5QgGZMiFiAWlJSSIRYgFyAVIAkqAgAgCUEMaioCAJJDAAAAP5QgGpMiFyAXlJSSIRcgDSALQQRqIgtHDQALQQIgFiAXXSIJIBYgFyAJGyAbXhsiCUECakEDcCEMIAlBAWpBA3AhDyABQRhqIQ4gAUEgaiINKAIAIgshCSABQRxqKAIAIAtGBEAgDiALEIwGIA0oAgAhCQsgASgCGCAJQQd0aiIIQgA3A2AgCEHoAGpCADcDACAIIAY2AnAgCEL////7////v383AzAgCEL////79///v/8ANwMgIAhC////+/f//7//ADcDECAIQv////v3//+//wA3AwggCEL////79///v/8ANwMAIAhBADsBeCAIQdgAakL////7////v383AwAgCEHQAGpC////+////79/NwMAIAhByABqQv////v///+/fzcDACAIQUBrQv////v///+/fzcDACAIQThqQv////v///+/fzcDACAIQShqQv////v3//+//wA3AwAgCEEYakL////79///v/8ANwMAIAhB9ABqIAc6AAAgDSAJQQFqNgIAIAItAAAhCCAKIBg4AkggCiAZOAJEIAogGjgCQCAKQeAAaiIGIAMgBCAFKAIAIgcgBSgCCCIJIApBQGsiAyAPIAhBAEciCBD4AyAGQQxqIgQoAgAhDyAKKAJoIRAgBiAKKAJgIAooAmQgByAJIAMgDCAIEPgDIAQoAgAhESAKKAJoIRIgCigCZCETIAooAmAhFCAGIBAgDyAHIAkgAyAMIAgQ+AMgBCgCACEHIAooAmghCSAKKAJkIQggCigCYCEMIAogASACIBQgEyAFIAtBABA5IApBIGogASACIBIgESAFIAtBARA5IAMgASACIAwgCCAFIAtBAhA5IAYgASACIAkgByAFIAtBAxA5AkACQCALIA0oAgAiAkkEQCAKQeAAaiICQRhqKgIAIRggAkEUaioCACEZIAJBEGoqAgAhGiAEKgIAIRYgAkEIaioCACEXIApBQGsiAkEYaioCACEVIAJBFGoqAgAhGyACQRBqKgIAIRwgAkEMaioCACEdIAJBCGoqAgAhHyAKQSBqIgJBGGoqAgAhHiACQRRqKgIAISQgAkEQaioCACEgIAJBDGoqAgAhISACQQhqKgIAISIgCkEYaioCACEjIApBFGoqAgAhJSAKQRBqKgIAISYgCkEMaioCACEpIApBCGoqAgAhJyAKKgJkISggCigCYCEDIAoqAkQhKiAKKAJAIQQgCioCJCErIAooAiAhBSAKKgIEISwgASgCGCALQQd0aiICIAooAgA2AmAgAkHsAGogAzYCACACQegAaiAENgIAIAJB5ABqIAU2AgAgAUEgaiICKAIAIgMgC00NASALQQd0IgMgASgCGGoiASAmOAIwIAEgKTgCICABICc4AhAgASAoOAIMIAEgKjgCCCABICs4AgQgASAsOAIAIAFB3ABqIBg4AgAgAUHYAGogFTgCACABQdQAaiAeOAIAIAFB0ABqICM4AgAgAUHMAGogGTgCACABQcgAaiAbOAIAIAFBxABqICQ4AgAgAUFAayAlOAIAIAFBPGogGjgCACABQThqIBw4AgAgAUE0aiAgOAIAIAFBLGogFjgCACABQShqIB04AgAgAUEkaiAhOAIAIAFBHGogFzgCACABQRhqIB84AgAgAUEUaiAiOAIAIAIoAgAiASALTQ0CIA4oAgAgCkIANwNoIApCADcDYCADaiAKQeAAahDvASAjIB4gHiAjXxsiHiAVIBUgHl8bIhUgGCAVIBhgGyEYICUgJCAkICVfGyIVIBsgFSAbYBsiFSAZIBUgGWAbIRkgJiAgICAgJl8bIhUgHCAVIBxgGyIVIBogFSAaYBshGiApICEgISApYBsiFSAdIBUgHV8bIhUgFiAVIBZfGyEVICcgIiAiICdgGyIWIB8gFiAfXxsiFiAXIBYgF18bIRYgLCArICsgLGAbIhcgKiAXICpfGyIXICggFyAoXxshFwwFCyALIAJByIPCABCvCAALIAsgA0HYg8IAEK8IAAsgCyABQeiDwgAQrwgACyAJIAhBuIPCABCvCAALIAFBIGoiDigCACELQX8hAgJAIARFBEBD//9/fyEkQ///f/8hIEF/IQlBfyENQX8hCEP//3//IRxD//9//yEdQ///f38hH0P//39/IR5D//9//yEhQ///f/8hIkP//3//ISND//9/fyElQ///f38hJkP//39/ISlD//9//yEbQ///f/8hJ0P//3//IShD//9/fyEqQ///f38hK0P//39/ISxD//9//yEtQ///f/8hLkP//3//IS9D//9/fyEwQ///f38hMUP//39/ITJD//9//yEYQ///f/8hGUP//3//IRpD//9/fyEVQ///f38hFkP//39/IRcMAQsCQCADKAIAIgkgBSgCCCIMTw0AAkAgASgCPCIMIAlNDQBD//9/fyEkIAUoAgAgCUEYbGoiCCoCACIyQ///f3+WIRdD//9//yEgIAhBFGoqAgAiLUP//3//lyEYIAhBEGoqAgAiLkP//3//lyEZIAhBDGoqAgAiL0P//3//lyEaIAhBCGoqAgAiMEP//39/liEVIAhBBGoqAgAiMUP//39/liEWIAEoAjQgCUEMbGoiCEEAOgAEIAggCzYCACAEQQFGBEBBfyENQX8hCEP//3//IRxD//9//yEdQ///f38hH0P//39/IR5D//9//yEhQ///f/8hIkP//3//ISND//9/fyElQ///f38hJkP//39/ISlD//9//yEbQ///f/8hJ0P//3//IShD//9/fyEqQ///f38hK0P//39/ISwMAwsgAygCBCINIAUoAggiDE8EQCANIQkMAgsgDSABKAI8IgxPBEAgDSEJDAELIBcgBSgCACANQRhsaiIIKgIAIiwgFyAsXxshFyAYIAhBFGoqAgAiGyAYIBtgGyEYIBkgCEEQaioCACInIBkgJ2AbIRkgGiAIQQxqKgIAIiggGiAoYBshGiAVIAhBCGoqAgAiKiAVICpfGyEVIBYgCEEEaioCACIrIBYgK18bIRYgASgCNCANQQxsaiIIQQE6AAQgCCALNgIAIARBAkYEQEF/IQhD//9//yEcQ///f/8hHUP//39/IR9D//9/fyEeQ///f/8hIUP//3//ISJD//9//yEjQ///f38hJUP//39/ISZD//9/fyEpDAMLIAMoAggiCCAFKAIIIgxPBEAgCCEJDAILIAggASgCPCIM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IAlB6ABqICc4AgAgCUHkAGogKDgCACACQSBqICk4AgAgCUHcAGogKjgCACAFICs4AgAgBiAsOAIAIAkgMDgCiAEgCSAxOAJwIAkgMjgCWCAJIC04AkwgCSAuOAJIIAkgLzgCRCAJIDM4AkAgAyACEPYDIAFBIGoiAigCACIDIApNDQEgASgCGCAKQQd0IgFqIAlBgANqQeAAENkLGiACKAIAIgIgCk0NAiANKAIAIQIgCSAIOAJMIAkgCDgCSCAJIAg4AkQgCSAIOAJAIAEgAmogCUFAaxDvASAAIAo2AgAgAEEYaiArICYgJiArXxsiCCAhIAggIWAbIgggHCAIIBxgGzgCACAAQRRqICwgJyAnICxfGyIIICIgCCAiYBsiCCAeIAggHmAbOAIAIABBEGogLSAoICggLV8bIgggIyAIICNgGyIIIB8gCCAfYBs4AgAgAEEMaiAuICkgKSAuYBsiCCAkIAggJF8bIgggICAIICBfGzgCACAAQQhqIC8gKiAqIC9gGyIIICUgCCAlXxsiCCAdIAggHV8bOAIAIAAgMyAyIDIgM2AbIgggMSAIIDFfGyIIIDAgCCAwXxs4AgQMBQsgCiACQZDYwAAQrwgACyAKIANBoNjAABCvCAALIAogAkGw2MAAEK8IAAsgCiAOQYDYwAAQrwgACyABQSBqIhAoAgAhD0F/IQ4CQCAERQRAQ///f38hLUP//3//IS5BfyECQX8hC0F/IQpD//9//yEiQ///f/8hI0P//39/ISRD//9/fyElQ///f/8hJ0P//3//IShD//9//yEpQ///f38hKkP//39/IStD//9/fyEsQ///f/8hL0P//3//ITBD//9//yExQ///f38hMkP//39/ITND//9/fyE0Q///f/8hJkP//3//ITVD//9//yE2Q///f38hN0P//39/IThD//9/fyE5Q///f/8hHkP//3//IR9D//9//yEgQ///f38hIUP//39/IRxD//9/fyEdDAELAkAgAygCACICIAUoAggiDU8NACAFKAIAIAJBGGxqIgtBBGoqAgAhOCALQQhqKgIAITcgC0EMaioCACE2IAtBEGoqAgAhNSALQRRqKgIAISYgCyoCACE5IAlBGGoiC0EAOgAEIAsgDzYCAAJAIAEoAjwiDSACTQ0AQ///f38hLSA5Q///f3+WIR1D//9//yEuICZD//9//5chHiA1Q///f/+XIR8gNkP//3//lyEgIDdD//9/f5YhISA4Q///f3+WIRwgCSgCGCELIAEoAjQgAkEEdGoiCiAJLQAcOgAEIAogCzYCACAEQQFGBEBBfyELQX8hCkP//3//ISJD//9//yEjQ///f38hJEP//39/ISVD//9//yEnQ///f/8hKEP//3//ISlD//9/fyEqQ///f38hK0P//39/ISxD//9//yEvQ///f/8hMEP//3//ITFD//9/fyEyQ///f38hM0P//39/ITQMAwsgAygCBCILIAUoAggiDU8EQCALIQIMAgsgBSgCACALQRhsaiIKQQRqKgIAITMgCkEIaioCACEyIApBDGoqAgAhMSAKQRBqKgIAITAgCkEUaioCACEvIAoqAgAhNCAJQRBqIgpBAToABCAKIA82AgAgASgCPCINIAMoAgQiCk0EQCAKIQIMAQsgHSA0IB0gNF8bIR0gHiAvIB4gL2AbIR4gHyAwIB8gMGAbIR8gICAxICAgMWAbISAgISAyICEgMl8bISEgHCAzIBwgM18bIRwgCSgCECEMIAEoAjQgCkEEdGoiCiAJLQAUOgAEIAogDDYCACAEQQJGBEBBfyEKQ///f/8hIkP//3//ISND//9/fyEkQ///f38hJUP//3//ISdD//9//yEoQ///f/8hKUP//39/ISpD//9/fyErQ///f38hLAwDCyADKAIIIgogBSgCCCINTwRAIAohAgwCCyAFKAIAIApBGGxqIgxBBGoqAgAhKyAMQQhqKgIAISogDEEMaioCACEpIAxBEGoqAgAhKCAMQRRqKgIAIScgDCoCACEsIAlBCGoiDEECOgAEIAwgDzYCACABKAI8Ig0gAygCCCIMTQRAIAwhAgwBCyAdICwgHSAsXxshHSAeICcgHiAnYBshHiAfICggHyAoYBshHyAgICkgICApYBshICAhICogISAqXxshISAcICsgHCArXxshHCAJKAIIIQ0gASgCNCAMQQR0aiIMIAktAAw6AAQgDCANNgIAIARBA0YEQEP//3//ISJD//9//yEjQ///f38hJEP//39/ISUMAwsgBSgCCCINIAMoAgwiDk0EQCAOIQIMAgsgBSgCACAOQRhsaiIEKgIAISUgBEEUaioCACEuIARBEGoqAgAhIiAEQQxqKgIAISMgBEEIaioC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HzgCACACQRRrIB44AgAgAkEYayAgOAIAIAQgHDgCACACIAZBACAOQQNJIgYbNgIAIAJBBGsgDkECIAYbNgIAIAJBCGsgBTYCACACQQtrIgYgAy8BmAQ7AAAgBkECaiAILQAAOgAAIAMtADhFDQAgEUUNACADQbgCaiACQRhrIgFBCGopAgAiIzcDACADIAEpAgAiIjcDsAIgA0GDA2ogIzcAACADICI3APsCIANBmARqIgJBCGogA0H4AmoiAUEIaikAADcDACACQQ9qIAFBD2ooAAA2AAAgAyADKQD4AjcDmAQCQCADKAJMIgFFDQAgAUEDdEUNACADKAJIEKwBCyAFIQsMCQsgDUEEaiENIARBBGohBCACQRxqIQIgIkIBfCIiQgRSDQALIANBuAJqIgggA0GAA2oiDSkDADcDACADQagCaiIRIBRBCGopAgA3AwAgA0GYAmoiByATQQhqKQIANwMAIAMgAykD+AI3A7ACIAMgFCkCADcDoAIgAyATKQIANwOQAiADKgL0AiEfIAMqAvACISAgAyoC7AIhHiADKgLoAiEcIAMoAogDIQQgAygCjAMhBiADKAKkAyECIAMoAqgDIQUgA0GIAmoiCiASQQhqKQIANwMAIAMgEikCADcDgAIgASgCPCEOAkAgI0IBg1ANACAcIB1dRQ0AIAZBBEYNACADKALgASAOTw0AIAwgAykDsAI3AAAgDEEIaiAIKQMANwAAIANBmARqIglBD2oiCCADQYcDaigAADYAACAJQQhqIgsgDSkAADcDACADQdgAaiIJQQhqIAspAwA3AwAgCUEPaiAIKAAANgAAIAMgAykA+AI3A1ggBCELIAYhCSAcIR0LAkAgI0ICg1ANACAdIB5eRQ0AIAVBBEYNACADKALkASAOTw0AIAwgAykDoAI3AAAgDEEIaiARKQMANwAAIANBmARqIgRBD2oiCyADQYcDaigAADYAACAEQQhqIgkgDSkAADcDACADQdgAaiIEQQhqIAkpAwA3AwAgBEEPaiALKAAANgAAIAMgAykA+AI3A1ggAiELIAUhCSAeIR0LAkAgI0IEg1ANACAdICBeRQ0AIAMoAsQDIgJBBEYNACADKALoASAOTw0AIAMoAsADIQsgDCADKQOQAjcAACAMQQhqIAcpAwA3AAAgA0GYBGoiBEEPaiIFIANBhwNqKAAA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IAApAAAQ8AUgAigC0AIEQCACKALUAiEBDAELAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAtQCIgZBgCAgBkGAIEkbIgBFBEBBECENDAELIABBB3QiA0EQEO4KIg1FDQELIAJBADYCECACIAA2AgwgAiANNgIIAkAgBkUNACACQaACaiIAQRxqIQ4gAEEMaiEXIAJB8AFqIgBBHGohGCAAQQxqIRkgAkGMA2ohCANAIAJBAjYC7AEgAiAENgLoASACQYADaiACQegBahC4ASACKAKEAyEAIAIoAoADDQMgAkHQAmoiA0EIaiIFIAhBCGoiECkCADcDACADQRBqIgkgCEEQaiIRKQIANwMAIANBGGoiCyAIQRhqIhIpAgA3AwAgA0EgaiIKIAhBIGoiEykCADcDACADQShqIgMgCEEoaiIUKAIANgIAIAIgCCkCADcD0AIgAEUNBCACKAKIAyEaIAJB8AFqIgBBKGogAygCADYCACAAQSBqIAopAwA3AwAgAEEYaiALKQMANwMAIABBEGogCSkDADcDACAAQQhqIhUgBSkDADcDACACIAIpA9ACNwPwASACQYADaiACQegBahC4ASACKAKEAyEAIAIoAoADDQUgBSAQKQIANwMAIAkgESkCADcDACALIBIpAgA3AwAgCiATKQIANwMAIAMgFCgCADYCACACIAgpAgA3A9ACIABFBEBBASACQbgDakGMgsAAEIEIIQEMEAsgAigCiAMhECACQaACaiIAQShqIAMoAgA2AgAgAEEgaiAKKQMANwMAIABBGGogCykDADcDACAAQRBqIAkpAwA3AwAgAEEIaiIAIAUpAwA3AwAgAkHgAWoiCSAVKAIANgIAIAIgAikD0AI3A6ACIAIgAikD8AE3A9gBIAIgGUEIaikCADcDyAEgAiAZKQIANwPAASACIBhBCGopAgA3A7gBIAIgGCkCADcDsAEgAkGoAWoiCyAAKAIANgIAIAIgAikDoAI3A6ABIAIgF0EIaikCADcDmAEgAiAXKQIANwOQASACIA5BCGopAgA3A4gBIAIgDikCADcDgAEgBCgCBCIFQQNNBEAgAkKBygA3A4ADIAJBgANqEI8KIQEMEAsgBCAFQQRrIgM2AgQgBCAEKAIAIgBBBGo2AgAgA0EDTQRAIAJCgcoANwOAAyACQYADahCP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NwIAIABBPGogETYCACAAQSBqIAY2AgAgACABNgIEIABBiAFqIAIpA7ABNwIAIABBkAFqIBspAwA3AgAgAEGYAWogHCgCADYCACAAQZwBaiASOgAAIABBtAFqIA4oAAA2AAAgAEGtAWogEykDADcAACAAQaUBaiADKQMANwAAIAAgAikDkAE3AJ0BIABBuAFqIBY6AAAgAEG7AWogHS0AADoAACAAIAIvAYwBOwC5ASAAQcwBaiAfKQMANwIAIABBxAFqICApAwA3AgAgAEG8AWogAikDcDcCACAAQdQBaiAXOgAAIABB1wFqICEtAAA6AAAgACACLwFsOwDVASAAQegBaiAiKQMANwIAIABB4AFqIBQpAwA3AgAgAEHYAWogAikDUDcCACAAQfABaiAYOgAAIABB8wFqICMtAAA6AAAgACACLwFMOwDxASAAQYQCaiAkKQMANwIAIABB/AFqIAUpAwA3AgAgAEH0AWogAikDMDcCACAAQYwCaiAZOgAAIABBjwJqICUtAAA6AAAgACACLwEsOwCNAiAAQaACaiAmKQMANwIAIABBmAJqIBUpAwA3AgAgAEGQAmogAikDEDcCACAAQagCaiAaOgAAIABBqwJqICctAAA6AAAgACACLwEMOwCpAiAAIBA6AK8CIAAgDzoArgIgACANOgCtAiAAQawCaiAMOgAAIABBADYCAAwHCyACKAK8AgwFCyACKALcAgwECyACKAL8AgwDCyACKAKcAwwCCyACKAK8AwwBCyACKALcAwshASAAQQE2AgAgACABNgIECyACQYAEaiQAC7kZAgp/A34jAEHwAGsiBiQAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIAQQFrDgUFBAMCAQALIAEoAgQiBCgCACEBAkADQAJAIAQoAoABIgkgBCgCkAFBAWsgAXEiAkEcbGoiCigCACIHIAFBAWpHBEAgASAHRg0BIAUgBUEBaiAFQQpLIAVBB09xGyEFIAQoAgAhAQwCCyAEKAIAIgMgAUYhCCAEIAcgBCgCjAEiByABQQAgB2txaiAEKAKIASACQQFqSxsgAyAIGzYCACAIDQIgBUEGIAVBBkkbIQJBACEBA0AgASACdiABQQFqIQFFDQALIAUgBUEHSWohBSADIQEMAQsgASAEKAJAIgIgBCgCkAEiA0F/c3FHBEAgBUEGIAVBBkkbIQNBACEBA0AgASADdiABQQFqIQFFDQALIAUgBUEHSWohBSAEKAIAIQEMAQsLIAIgA3ENCSAAQQE7AQAMCgsgCiAEKAKMASABajYCACAGQdgAaiIDQQhqIgogCSACQRxsaiIBQRBqKQIANwMAIANBEGoiCSABQRhqKAIANgIAIAYgAUEIaikCADcDWCABKAIEIQcgBEGwAWotAAANByAEQawBaiIBLQAAIAFBAToAAARAQQAhAQNAIAEgAUEBaiABQQpLIAFBB09xGyEBIAQtAKwBIARBAToArAENAAsLIAQtALABDQYgBkEwaiAEQZQBahCOBAJAIAYoAjgiAUUNACABIAEoAgAiAUEBazYCACABQQFHDQAgBkE4ahDpCAsgBEGoAWoiASgCACECIAFBADYCACAEQaABaigCACIBIAJBDGwiBWohAyACRQ0FIAZBOGohCwNAIAFBCGooAgAiAkUEQCABQQxqIQEMBwsgAiACKAIQIgggASkCACIMpyAIGzYCECAGIAI2AjggBiAMNwMwAkAgCARAIAYoAjghAgwBCyAGKAI4IgIoAhhBGGoQ9wQLIAIgAigCACICQQFrNgIAIAJBAUYEQCALEOkICyABQQxqIQEgBUEMayIFDQALIAMhAQwFCyAAQQE7AQAMCAsgASgCBCIHQQhqIglB4QBwQQN0IgFB1ODDAGohBSABQdDgwwBqIQggB0EQaiEKA0AQ3gkgBigCKCEBIAYpAyAhDAJAIAUoAgAiA0EBRwRAIAkoAgghBCAJKQMAIQ0gCCgCABogBSgCACADRg0BCyAFKAIAIQMgBUEBNgIAIANBAUYEQEEAIQIDQCACIAJBAWogAkEKSyACQQdPcRshAiAFKAIAIQMgBUEBNgIAIANBAUYNAAsLIAooAgAhBCAHKQMIIQ0gCCADNgIECwJAQX8gDCANUiAMIA1UGyIDQX8gASAERyABIARJGyADG0F/RgR/QQEFIAZBEGohAyAHKAIgIQICQAJAIAwgDCAHKQMYfCIMVg0AAkAgASACaiIBQYCU69wDSQRAIAwhDgwBCyAMIAxCAXwiDlYNASABQYCU69wDayEBCyADIAE2AgggAyAONwMADAELQc+bwwBBKEGQnMMAEMMLAAsgBSgCACEDIAYoAhghASAGKQMQIQwgBUEBNgIAIANBAUYEQEEAIQIDQCACIAJBAWogAkEKSyACQQdPcRshAiAFKAIAIQMgBUEBNgIAIANBAUYNAAsLIAcpAwggDVINASAKKAIAIARHDQEgByAMNwMIIAdBEGogATYCACADQQJqIgFFBEAgCCAIKAIAQQFqNgIACyAIIAE2AgRBAAshASAAQQA6AAEgACABOgAAIABBAmogBigBWDYBACAAQRBqIAQ2AgAgAEEIaiANNwIAIABBBmogBkHcAGovAQA7AQAMCQsgCCADNgIEDAALAAtBASECAkAgASgCBCIBLQAYDQAQ3glBfyAGKQMAIg0gASkDCCIMUiAMIA1WGyIDQX8gBigCCCIEIAFBEGooAgAiBUcgBCAFSRsgAxtBf0YNACABLQAYIQMgAUEBOgAYIAMNACABQRBqKAIAIQMgASkDCCENQQAhAgsgAEEAOgABIAAgAjoAACAAQQJqIAYoAVg2AQAgAEEQaiADNgIAIABBCGogDTcCACAAQQZqIAZB3ABqLwEAOwEADAYLIAEoAgQiA0E8aiIBLQAAIAFBAToAACADQQhqIQQEQEEAIQEDQCABIAFBAWogAUEKSyABQQdPcRshASADLQA8IANBAToAPA0ACwsgBkFAayAEEI4EAkACQCAGKAJIBEAgA0EAOgA8IAZB4ABqIAZByABqKAIANgIAIAYgBikDQDcDWCAAAn8gBigCXCIBBEACQCABLQAYRQRAIAEtABlFBEBBACECA0AgAiACQQFqIAJBCksgAkEHT3EbIQIgAS0AGUUNAAsLIAEoAgAhAiABQQI2AgAgAkECRg0FIAEoAgQhAyABKAIIIQcgASgCDCEFIAEoAhAhBCABKAIUIQggARCsAQwBCyABKAIAIQIgAUECNgIAIAJBAkYNBSABQQE6ABkgASgCBCEDIAEoAgghByABKAIMIQUgASgCECEEIAEoAhQhCAsgAEEYaiAINgIAIABBFGogBDYCACAAQRBqIAU2AgAgAEEMaiAHNgIAIABBCGogAzYCACAAQQRqIAI2AgBBAAwBCyAAQQE6AAFBAQs6AAAgBigCYCIBKAIAIQAgASAAQQFrNgIAIABBAUcNCCAGQeAAahDpCAwICyAAQQE6AAAgA0EAOgA8IAAgA0E4ai0AADoAASAGKAJIIgBFDQcgACAAKAIAIgBBAWs2AgAgAEEBRw0HIAZByABqEOkIDAcLQZeawABBK0G8h8AAEKIJAAtBl5rAAEErQayHwAAQogkACyABKAIEIgUoAgQhBCAFKAIAIQEDQAJAAkACQAJAAkACQAJAAkACQCABQQF2IglBH3EiCEEfRwRAIAFBAmohAiABQQFxRQRAIAkgBSgCQCIDQQF2Rg0EIAIgASADc0E/S3IhAgsgBEUNASAFKAIAIgMgAUYhASAFIAIgAyABGzYCACABRQ0CIAhBHkYEQCAEKAIAIgNFBEBBACEBA0AgASABQQFqIAFBCksgAUEHT3EbIQEgBCgCACIDRQ0ACwsgAygCACEBIAUgAzYCBCAFIAJBAmpBfnEgAUEAR3I2AgALIAQgCEEcbGoiA0EcaiICLQAAQQFxRQRAQQAhAQNAIAEgAUEBaiABQQpLIAFBB09xGyEBIAItAABBAXFFDQALCyAGQdgAaiIBQQhqIANBEGopAgA3AwAgAUEQaiADQRhqKAIANgIAIAYgA0EIaikCADcDWCADQQRqKAIAIQMgCEEBaiIBQR9HDQRBACEBA0AgASAEaiIFQRxqIgItAABBAnFFBEAgAiACKAIAIgJBBHI2AgAgAkECcUUNCAsgBUE4aiICLQAAQQJxRQRAIAIgAigCACICQQRyNgIAIAJBAnFFDQgLIAFBOGoiAUHIBkcNAAsMBQsgB0EHSQ0HIAdBCksNCAwHCyAHQQdJDQYgB0EKTQ0GDAcLIAdBBiAHQQZJGyECIAUoAgQhBEEAIQEDQCABIAJ2IAFBAWohAUUNAAsgByAHQQdJaiEHIAMhAQwHCyADQQFxDQMgAEEBOwEADAsLIAIgAigCACICQQJyNgIAIAJBBHFFDQEgCEEcSw0AIARBOGohBSABQRxsQRxrIQEDQCABIAVqIgItAABBAnFFBEAgAiACKAIAIgJBBHI2AgAgAkECcUUNAwsgAUEcaiIBQawGRw0ACwsgBBCsAQsgBkFAayIBQRBqIgIgBkHYAGoiBEEQaigCADYCACABQQhqIgEgBEEIaikDADcDACAGIAYpA1g3A0AgA0ECRg0AIABBBGogAzYCACAAQQhqIAYpA0A3AgAgAEEQaiABKQMANwIAIABBGGogAigCADYCACAAQQA6AAAMCAsgAEEBOgABIABBAToAAAwHCyAHQQFqIQcLIAUoAgQhBCAFKAIAIQEMAAsACyADIAFrIgMEQCADQQxuQQxsIQIgASAEKAKgASIBa0EMbUEMbCABakEIaiEBA0AgASgCACIFKAIAIQMgBSADQQFrNgIAIANBAUYEQCABEOkICyABQQxqIQEgAkEMayICDQALCyAEIARBnAFqKAIAIARBqAFqKAIAckU6ALABCyAEQQA6AKwBCyAGQUBrIgFBEGogCSgCADYCACABQQhqIAopAwA3AwAgBiAGKQNYNwNAIAdBAkYNACAAQQRqIAc2AgAgAEEIaiAGKQNANwIAIABBEGogBkFAayIBQQhqKQMANwIAIABBGGogAUEQaigCADYCACAAQQA6AAAMAQsgAEEBOgABIABBAToAAAsgBkHwAGokAAuIIQIQfw19IwBB0AFrIgQkACABKAIAQf////8Hcb4iEiABQQRqIgMoAgBB/////wdxviITIBIgE2AbIhIgAUEIaiIJKAIAQf////8Hcb4iEyASIBNgGyISIAEoAgxB/////wdxviITIBIgE2AbIhIgAUEQaiIIKAIAQf////8Hcb4iEyASIBNgGyISIAFBFGoiAigCAEH/////B3G+IhMgEiATYBsiEiABKAIYQf////8Hcb4iEyASIBNgGyISIAFBHGoiBigCAEH/////B3G+IhMgEiATYBsiEiABQSBqIgUoAgBB/////wdxviITIBIgE2AbIhhDAAAAAFwEQCABIAEqAgAgGJU4AgAgASABKgIMIBiVOAIMIAEgASoCGCAYlTgCGCADIAMqAgAgGJU4AgAgCSAJKgIAIBiVOAIAIAggCCoCACAYlTgCACACIAIqAgAgGJU4AgAgBiAGKgIAIBiVOAIAIAUgBSoCACAYlTgCAAsgBEGQAWoiCUEgaiIOIAFBIGooAgA2AgAgCUEYaiIQIAFBGGopAgA3AwAgCUEQaiIPIAFBEGopAgA3AwAgCUEIaiABQQhqKQIANwMAIAQgASkCADcDkAEgBEHYAGohCkEAIQEjAEEgayIGJAAgBkIANwMIIAlBJGohEUEBIQMDQCADIQIgBkECIAEiCGs2AhwgBiABQQJ0IgEgCWogCEEMbGoiA0EEaiIHNgIYIAZBGGoiBSAFEMQBQwAAAACSIhUQfSIUIBSMIAcqAgAiEkMAAAAAYCIFGyETIAcgEiATkjgCAAJAIBUgFCASIBKMIAUblJIiEiASkiISQwAAAABbBEAgASAGaiATOAIADAELIANBEGohBSASEH0hEiAHIAcqAgAgEpU4AgAgCEEBcSILRQRAIAdBBGoiAyADKgIAIBKVOAIACyABIAZqIBOMOAIAIAZBCGogAWoiASAHKgIAIhIgEpIiEiAFKgIAlDgCACALRQRAIAEgEiAFKgIElDgCBAsgBiAIQQFzIgM2AhQgBiAFQQRqNgIQIAYgAzYCHCAGIAdBBGoiDDYCGCAGQRBqIAZBGGoQxAEhEiABIAEqAgAgEiASkpI4AgAgAkEBcSINBEAgBiADNgIUIAYgBUEQajYCECAGIAM2AhwgBiAMNgIYIAFBBGoiAyAGQRBqIAZBGGoQxAEiEiASkiADKgIAkjgCAAsgByoCACABKgIAlEMAAAAAkiESIAtFBEAgEiAMKgIAIAFBBGoqAgCUkiESCyAFIAUqAgAgByoCACITIAEqAgCUkzgCAAJAIAsNACAFIAUqAgQgEyABQQRqKgIAIhOUkzgCBCAFQRBqIgMgAyoCACATIAwqAgAiE5STOAIAIA0NACAFQRRqIgMgAyoCACATIAFBCGoqAgCUkzgCAAsgBSAFKgIAIAEqAgAiEyAHKgIAlJM4AgACQCALDQAgBSAFKgIEIBMgDCoCACITlJM4AgQgBUEQaiIDIAMqAgAgEyABQQRqKgIAIhOUkzgCACANDQAgBUEUaiIBIAEqAgAgEyAHQQhqKgIAlJM4AgALIAUgEiASkiITIAcqAgAiFJQiEiAUlCAFKgIAkjgCACALDQBBASEDIAJBAXFFBEAgECAIQQR0aiEBA0AgAUEEayINIBIgAUEQayoCAJQgDSoCAJI4AgAgASASIAFBDGsqAgCUIAEqAgCSOAIAIAFBCGohASADQQJqIgNBAUcNAAsLIAsNACADQQJ0IgEgBWoiAyASIAEgB2oqAgCUIAMqAgCSOAIAIAVBEGoiASATIAwqAgAiE5QiEiATlCABKgIAkjgCAEEAIQNBASEBIAJBAXENAUEAIAhrIgFBfnEhAyABQQFxIBEgCEEEdGohAQNAIAEgEiABQRhrKgIAlCABKgIAkjgCACABQQRqIgggEiABQRRrKgIAlCAIKgIAkjgCACABQQhqIQEgA0ECayIDDQALRQ0AIAEgEiABQRhrKgIAlCABKgIAkjgCAAtBASEBQQAhAyACQQFxDQALIAogBikDADcCJCAKIAkpAgA3AgAgCkEIaiAJQQhqKQIANwIAIApBEGogCUEQaikCADcCACAKQRhqIAlBGGopAgA3AgAgCkEgaiAJQSBqKAIANgIAIAZBIGokACAEKgJYIRUgBCoCaCEWIAQqAnghFyAEQZwBakIANwIAIAlBFGoiAUIANwIAIARBrAFqQoCAgICAgIDAPzcCACAEQgA3ApQBIARBgICA/AM2ApABIARBgICA/AM2AqABIARCATcCvAEgBCAKQRRqNgK4ASAEQYABaioCACESIARBATYCzAEgBCABNgLIAUMAAMB/QwAAgD8gEpggEiASXBsiEkMAAADAlCITIARBuAFqIARByAFqEMQBlCEUIAlBBHIhASAEIgICfSASQwAAAABbBEAgAiAUIAIqAmyUOAKkASACQQE2AswBIAIgDjYCyAEgEyACQbgBaiACQcgBahDEAZQgAioCbJQMAQsgAiAUIAIqAmyUIBIgAioCpAGUkjgCpAEgAkEBNgLMASACIA42AsgBIBMgAkG4AWogAkHIAWoQxAGUIAIqAmyUIBIgAioCsAGUkgs4ArABIAJCAjcCvAEgAiACQdgAakEEcjYCuAEgAioCfCESIAJBAjYCzAEgAiABNgLIAUMAAMB/QwAAgD8gEpggEiASXBsiEkMAAADAlCITIAJBuAFqIAJByAFqEMQBlCEUIAJBsAFqIgECfSASQwAAAABcBEAgAiAUIAIqAlyUIBIgAioClAGUkjgClAEgAiAUIAIqAmCUIBIgAioCmAGUkjgCmAEgAkECNgLMASACIA82AsgBIAIgEyACQbgBaiACQcgBahDEAZQiFCACKgJclCASIAIqAqABlJI4AqABIAIgFCACKgJglCASIAIqAqQBlJI4AqQBIAJBAjYCzAEgAiACQawBajYCyAEgAiATIAJBuAFqIAJByAFqEMQBlCITIAIqAlyUIBIgAioCrAGUkjgCrAEgEyACKgJglCASIAIqArABlJIMAQsgAiAUIAIqAlyUOAKUASACIBQgAioCYJQ4ApgBIAJBAjYCzAEgAiAPNgLIASACIBMgAkG4AWogAkHIAWoQxAGUIhIgAioCXJQ4AqABIAIgEiACKgJglDgCpAEgAkECNgLMASACIAJBrAFqNgLIASACIBMgAkG4AWogAkHIAWoQxAGUIhIgAioCXJQ4AqwBIBIg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AwAgEUEsaiAMKAIANgIAIAkgDSkDADcC1AEgBCARQShqKQMANwMAIAwgAikDADcDACANIAEpAwA3AwAgBiARQRBqKQMANwMAIAUgAykDADcDACAJIAkpA7ABNwPgAUEBBUEACzYCACAAIAkpA+ABNwIEIABBNGogLTgCACAAQQxqIAlB6AFqKQMANwIAIABBFGogCUHwAWopAwA3AgAgAEEcaiAJQfgBaikDADcCACAAQSRqIAlBgAJqKQMANwIAIABBLGogCUGIAmopAwA3AgAMBAsgCUGQAWoiBEEIaiIBIAJBCGopAgA3AwAgBEEYaiIDIAJBGGooAgA2AgAgASABKgIAIi2MOAIAIAkgAikCEDcDoAEgCSACKQIANwOQASAtIAkqAqABIiWUIAkqApABIicgAyoCACIilJMiISAhkiEoICcgBEEUaiIBKgIAIiOUIAkqApQBIikgJZSTIiEgIZIhJCABIAkqApwBIiYgKJQgJyAklCAtICkgIpQgLSAjlJMiISAhkiIhlJOSICOTOAIAIAMgJiAklCApICGUICcgKJSTkiAikzgCACAJICeMOAKQASAJICmMOAKUASAJICYgIZQgLSAolCApICSUk5IgJZM4AqABIAlB2ABqIAQgBSAGIBUgBxDxASAAIAkoAlgEfyAJQYwBaioCACEtIAlB4AFqIgpBEGoiBiAJQdgAaiICQRRqKQIANwMAIApBCGoiBSAJQeQAaiIBKQIANwMAIApBKGoiBCACQSxqKQIANwMAIApBIGoiDCAJQfwAaikCADcDACAKQRhqIg0gCUH0AGopAgA3AwAgCUGwAWoiEUEIaiIDIApBFGooAgA2AgAgCSAJKQJcNwPgASAJIAkpAuwBNwOwASARQRRqIAEoAgA2AgAgCSAJKQJcNwK8ASARQSBqIgIgCkEsaigCADYCACARQRhqIgEgCSkChAI3AwAgEUEsaiAMKAIANgIAIAkgDSkDADcC1AEgBCARQShqKQMANwMAIAwgAikDADcDACANIAEpAwA3AwAgBiARQRBqKQMANwMAIAUgAykDADcDACAJIAkpA7ABNwPgAUEBBUEACzYCACAAIAkpA+ABNwIEIABBNGogLTgCACAAQQxqIAlB4AFqIgFBCGopAwA3AgAgAEEUaiAJQfABaikDADcCACAAQRxqIAFBGGopAwA3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AUEgaioCACEsIAEqAhghKyAIQawEaioCACEpIAhBqARqKgIAISIgAUEcaioCAAshByAIKgKkBCEoIAgqAqAEIScgCCoCnAQhJSAIKgKYBCEkDAMLIBogAUHgmsIAEK8IAAtBh/DBAEErQdCawgAQogkACwJAIAgoAvwBIgFFDQAgAa1CJH6nRQ0AIAsQrAELAkAgCCgCiAIiAUUNACABrUI0fqdFDQAgCCgChAIQrAELAkAgCCgClAIiAUUNACABQQN0RQ0AIAgoApACEKwBCwJAIAgoAqACIgFFDQAgAUEDdEUNACAIKAKcAhCsAQtBACECDAILAkAgCCgC/AEiAUUNACABrUIkfqdFDQAgCCgC+AEQrAELAkAgCCgCiAIiAUUNACABrUI0fqdFDQAgCCgChAIQrAELAkAgCCgClAIiAUUNACABQQN0RQ0AIAgoApACEKwBCyAIKAKgAiIBRQ0AIAFBA3RFDQAgCCgCnAIQrAELIBMgJDgCBCATQSRqICw4AgAgE0EgaiAHOAIAIBNBHGogKzgCACATQQxqICc4AgAgE0EIaiAlOAIAIBNBNGogLCApICeTlCArICggJJOUIAcgIiAlk5SSkjgCACATQTBqIAMqAgwiJCAHIAMqAgAiLpQgKyADQQRqKgIAIiqUkyIhICGSIiOUICogLCAqlCAHIANBCGoqAgAiJ5STIiEgIZIiJpQgLiArICeUICwgLpSTIiEgIZIiIZSTkiAskzgCACATQSxqICQgIZQgLiAjlCAnICaUk5IgB5M4AgAgE0EoaiAkICaUICcgIZQgKiAjlJOSICuTOAIAICogKCADKgIQkyIjlCAuICIgA0EUaioCAJMiJpSTIgcgB5IhJSAmICeUICkgA0EYaioCAJMiISAqlJMiByAHkiEiIBNBGGogISAkICWUICogIpQgLiAhIC6UICMgJ5STIgcgB5IiB5STkpI4AgAgE0EUaiAmICQgB5QgLiAllCAnICKUk5KSOAIAIBNBEGogIyAkICKUICcgB5QgKiAllJOSkjgCAEEBIQILIBMgAjYCACAIQdAEaiQAIABBMGogE0EwaikDADcCACAAQShqIBNBKGopAwA3AgAgAEEgaiATQSBqKQMANwIAIABBGGogE0EYaikDADcCACAAQRBqIBNBEGopAwA3AgAgAEEIaiATQQhqKQMANwIAIAAgCSkDWDcCAAwBCyAJQQhqIAUgBigCrAERAAAgCSgCCCIGBEAgCSgCDCEFIwBBwAFrIgokACAKQUBrIhFBCGoiDCACQQhqKQIANwMAIBFBGGoiDSACQRhqKAIANgIAIAwgDCoCACIqjDgCACAKIAIpAhA3A1AgCiACKQIANwNAICogCioCUCIllCAKKgJAIicgDSoCACIilJMiISAhkiEoICcgEUEUaiICKgIAIiOUIAoqAkQiKSAllJMiISAhkiEkIAIgCioCTCImICiUICcgJJQgKiApICKUICogI5STIiEgIZIiIZSTkiAjkzgCACANICYgJJQgKSAhlCAnICiUk5IgIpM4AgAgCiAnjDgCQCAKICmMOAJEIAogJiAhlCAqICiUICkgJJSTkiAlkzgCUCAKQQhqIAEgESAGIAUgAyAEIAcQdSAJQdgAaiIGIAooAggEfyAKQQhqIgJBNGoqAgAhByAKQZABaiIMQRBqIAJBFGopAgA3AwAgDEEIaiACQQxqIgEpAgA3AwAgDEEoaiACQSxqKQIANwMAIAxBIGoiBSACQSRqKQIANwMAIAxBGGoiBCACQRxqKQIANwMAIApB4ABqIg1BCGoiAyAMQRRqKAIANgIAIAogCikCDDcDkAEgCiAKKQKcATcDYCANQRRqIAEoAgA2AgAgCiAKKQIMNwJsIA1BIGoiAiAMQSxqKAIANgIAIA1BGGoiASAKKQK0ATcDACANQSxqIAUoAgA2AgAgCiAEKQMANwKEASAGQTRqIAc4AgAgBkEsaiANQShqKQMANwIAIAZBJGogAikDADcCACAGQRxqIAEpAwA3AgAgBkEUaiANQRBqKQMANwIAIAZBDGogAykDADcCACAGIAopA2A3AgRBAQVBAAs2AgAgCkHAAWokACAAQTBqIAZBMGopAwA3AgAgAEEoaiAGQShqKQMANwIAIABBIGogBkEgaikDADcCACAAQRhqIAZBGGopAwA3AgAgAEEQaiAGQRBqKQMANwIAIABBCGogBkEIaikDADcCACAAIAkpA1g3AgAMAQsgAEECNgIACyAJQZACaiQADwsgCEEANgKYBCABQQhqIAhB4ANqIAhBmARqQbCYwgAQtggAC/cVAxF/Cn0CfiMAQZADayIFJAAgBSACNgJkIAVBPGogAioCDCIYOAIAIAVBOGogGDgC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IQMgBkECa0EDTwRAIApBfHEhBQNAIAFC////+/f//7//ADcCACABQdgAakL////7////v383AgAgAUHQAGpC////+/f//79/NwIAIAFByABqQv////v3//+//wA3AgAgAUFAa0L////7////v383AgAgAUE4akL////79///v383AgAgAUEwakL////79///v/8ANwIAIAFBKGpC////+////79/NwIAIAFBIGpC////+/f//79/NwIAIAFBGGpC////+/f//7//ADcCACABQRBqQv////v///+/fzcCACABQQhqQv////v3//+/fzcCACABQeAAaiEBIAVBBGsiBQ0ACwsgA0UNAANAIAFC////+/f//7//ADcCACABQRBqQv////v///+/fzcCACABQQhqQv////v3//+/fzcCACABQRhqIQEgA0EBayIDDQALCyABQv////v3//+/fzcCCCABQv////v3//+//wA3AgAgAUEQakL////7////v383AgAgBCAGNgIoIAZBAEgNASACQQQQ7goiCUUNAyAJIQECQCACQQ1JDQAgBkEBayICQQNxIQMgBkECa0EDTwRAIAJBfHEhBQNAIAFBfzYCACABQSxqQX82AgAgAUEoakEAOgAAIAFBIGpCfzcCACABQRxqQQA6AAAgAUEUakJ/NwIAIAFBEGpBADoAACABQQhqQn83AgAgAUEEakEAOgAAIAFBMGohASAFQQRrIgUNAAsLIANFDQADQCABQX82AgAgAUEIakF/NgIAIAFBBGpBADoAACABQQxqIQEgA0EBayIDDQALCyABQX82AgggAUEAOgAEIAFBfzYCAAsCQCAAQThqIgIoAgAiAUUNACABrUIMfqdFDQAgAEE0aigCABCsAQsgACAGNgI8IAAgCTYCNCACIAY2AgACQAJAAkAgBgR/IAZBAWtB/////wNxIQ4gAEE4aiEPIABBNGohEEEAIQMDQAJAAkACQCAAKAJIIgIgCygCACIBSwRAIAsoAgQiByACTw0BIAsoAggiBSACTw0CIANBAWohCiAAKAJAIgIgAUEMbGoiASoCBCETIAIgB0EMbGoiByoCBCEVIAIgBUEMbGoiAioCACEWIAcqAggiFCABKgIIIhdeIQUgAioCCCISIBIgFCAUIBcgBRsgFyAXXBsiGCASIBheGyAYIBhcGyEYIBcgFyAUIAUbIBQgFFwbIhQgFCASIBIgFF4bIBIgElwbIRcgAioCBCISIBIgFSAVIBMgEyAVXSICGyATIBNcGyIUIBIgFF4bIBQgFFwbIRQgEyATIBUgAhsgFSAVXBsiEyATIBIgEiATXhsgEiASXBshGSAHKgIAIhMgASoCACIVXiECIBYgFiATIBMgFSACGyAVIBVcGyISIBIgFl0bIBIgElwbIRIgFSAVIBMgAhsgEyATXBsiEyATIBYgEyAWXRsgFiAWXBshFiADIAZJDQMgDygCACAGIgJrIAogAmsiB0kEQCAQIAYgBxDnBSAAKAI0IQkgACgCPCECCyAJIAJBDGxqIQEgB0ECTwRAIAMgBmsiBUEDcSADIAZBf3NqQQNPBEAgBUF8cSEFA0AgAUF/NgIAIAFBLGpBfzYCACABQShqQQA6AAAgAUEgakJ/NwIAIAFBHGpBADoAACABQRRqQn83AgAgAUEQakEAOgAAIAFBCGpCfzcCACABQQRqQQA6AAAgAUEwaiEBIAVBBGsiBQ0ACwsEQCANIAZrQQNxIQUDQCABQX82AgAgAUEIakF/NgIAIAFBBGpBADoAACABQQxqIQEgBUEBayIFDQALCyACIAdqQQFrIQILIAcEQCABQX82AgggAUEAOgAEIAFBfzYCACACQQFqIQILIAAgAiIGNgI8IAQCfyAKIAQoAigiByADSw0AGiAKIAciAmshCCAIIAQoAiQgAmtLBEAgBEEgaiAHIAgQ7QUgBCgCKCECCyAEKAIgIAJBGGxqIQEgCEECTwRAIAMgB2siBUEDcSADIAdBf3NqQQNPBEAgBUF8cSEFA0AgAUL////79///v/8ANwIAIAFB2ABqQv////v///+/fzcCACABQdAAakL////79///v383AgAgAUHIAGpC////+/f//7//ADcCACABQUBrQv////v///+/fzcCACABQThqQv////v3//+/fzcCACABQTBqQv////v3//+//wA3AgAgAUEoakL////7////v383AgAgAUEgakL////79///v383AgAgAUEYakL////79///v/8ANwIAIAFBEGpC////+////79/NwIAIAFBCGpC////+/f//79/NwIAIAFB4ABqIQEgBUEEayIFDQALCwRAIA0gB2tBA3EhBQNAIAFC////+/f//7//ADcCACABQRBqQv////v///+/fzcCACABQQhqQv////v3//+/fzcCACABQRhqIQEgBUEBayIFDQALCyACIAhqQQFrIQILIAIgCEUNABogAUL////79///v383AgggAUL////79///v/8ANwIAIAFBEGpC////+////79/NwIAIAJBAWoLNgIoDAMLIAEgAkGs4cIAEK8IAAsgByACQbzhwgAQrwgACyAFIAJBzOHCABCvCAALIAMgBk8NAiAJIANBDGxqIAM2AgggBCgCKCICIANNDQMgBCgCICADQRhsaiICIBI4AgwgAiAXOAIIIAIgGTgCBCACIBY4AgAgAkEUaiAYOAIAIAJBEGogFDgCACALQQxqIQsgBCgCGCIBIAQoAhRGBEAgBEEQaiABEIsGIAQoAhAhDCAEKAIYIQELIAwgAUECdGogAzYCACAEIAFBAWo2AhggDUEBaiENIAMgDkcgCiEDDQALIAAoAiAFQQALIQMgAEEYaiEBIABBHGooAgAgA0YEQCABIAMQjAYgACgCICEDCyAAKAIYIANBB3RqIgJBATYCYCACQv////v///+/fzcDMCACQv////v3//+//wA3AyAgAkL////79///v/8ANwMQIAJC////+/f//7//ADcDCCACQv////v3//+//wA3AwAgAkEAOwF4IAJB2ABqQv////v///+/fzcDACACQdAAakL////7////v383AwAgAkHIAGpC////+////79/NwMAIAJBQGtC////+////79/NwMAIAJBOGpC////+////79/NwMAIAJBKGpC////+/f//7//ADcDACACQRhqQv////v3//+//wA3AwAgAkHsAGpCfzcCACACQeQAakJ/NwIAIAJB9ABqQQA6AAAgACADQQFqNgIgIARBMGoiAiAAIARBD2ogBCgCECIDIAQoAhggBEEgakEAQQAQOSAEQThqKgIAIRYgBEE8aioCACETIAJBEGoqAgAhFSACQRRqKgIAIRIgBCoCNCEUIABBFGogAkEYaioCACIXOAIAIABBEGogEjgCACAAIBU4AgwgACATOAIIIAAgFjgCBCAAIBQ4AgAgACgCIEUNAiABKAIAIgAgFTgCMCAAIBM4AiAgACAWOAIQIABB////+wc2AgwgAEL////79///v/8ANwIEIAAgFDgCACAAQdwAakH///97NgIAIABB1ABqQv////v///+/fzcCACAAQdAAaiAXOAIAIABBzABqQf///3s2AgAgAEHEAGpC////+////79/NwIAIABBQGsgEjgCACAAQTxqQf///3s2AgAgAEE0akL////7////v383AgAgAEEsakH////7BzYCACAAQSRqQv////v3//+//wA3AgAgAEEcakH////7BzYCACAAQRRqQv////v3//+//wA3AgACQCAEKAIkIgBFDQAgAK1CGH6nRQ0AIAQoAiAQrAELAkAgBCgCFCIARQ0AIABBAnRFDQAgAxCsAQsgBEHQAGokAA8LIAMgBkHogsIAEK8IAAsgAyACQfiCwgAQrwgAC0EAQQBB2ILCABCvCAALEN8JAAsgAyACQdzmwwAoAgAiAEGPByAAGxEAAAALIAJBBEHc5sMAKAIAIgBBjwcgABsRAAAAC90XAhF/B34jAEEwayICJAAgAkEINgIEIAIgATYCACACQSBqIAIQswMCQAJAAkACfyACKAIgRQRAIAIoAiQiDQ0CQQBBkI3AAEGchMAAEIEIDAELIAIoAiQLIQEgAEEBNgIAIAAgATYCBAwBCyACQShqKQMAIRYCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIoAgQiAQRAIAIgAUEBazYCBCACKAIAIgMoAgQiAUEHTQRAIAJCgcoANwMgIAJBIGoQjwohAQwOCyADIAFBCGsiBjYCBCADIAMoAgAiAUEIajYCACACQQhqIAEpAAAQ8AUgAigCCARAIAIoAgwhAQwOCwJAIAIoAgwiBEGAICAEQYAgSRsiBUUEQEEEIQoMAQsgBUEDdCIBQQQQ7goiCkUNEQtBACEBIAJBADYCKCACIAU2AiQgAiAKNgIgIAQEQANAAkACfyAGQQNNBEAgAkKBygA3AwggAkEIahCPCgwBCyADIAZBBGsiBjYCBCADIAMoAgAiBUEEajYCACAGQQNLDQEgAkKBygA3AwggAkEIahCPCgshASACKAIkIgZFDRAgBkEDdEUNECACKAIgEKwBDBALIARBAWshBCAFKAAAIQkgAyAGQQRrIgY2AgQgAyAFQQhqNgIAIAUoAAQhBSACKAIkIAFGBEAgAkEgaiABEPoFIAIoAiAhCiACKAIoIQELIAogAUEDdGoiByAFNgIEIAcgCTYCACACIAFBAWoi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ArgBIScgCioCwAEFQwAAAAALIBuUISEgHSAblCEdICcgG5QhGyAckyIcIByUICUgIpMiHCAclCAmICOTIhwgHJSSkkMAAAAAkhB9IB8gH5QgICAglCAaIBqUkpJDAAAAAJIQfSAJBH0gCUGcAmoqAgAFQwAAAAALlJIgGyAblCAdIB2UkiAhICGUkkMAAAAAkhB9IAoEQCAKQZwCaioCACEeC0MAAAAAQwAAAAAgESARQwAAAABdGyARIBFcGyAHQRBqIhQoAgAgB0EUaigCACITKAIIQQdqQXhxaiATKAKcAREMACAIQRBqIhgoAgAgCEEUaigCACITKAIIQQdqQXhxaiATKAKcAREMAJKSIREgHpSSIRpBASEVIActAJQBIAgtAJQBckUEQCAIQYABaigCACAHQfwAaigCAHFFIAhB/ABqKAIAIAdBgAFqKAIAcUVyIRULIBAgD5MgGpQgEV0NBiASQRhqIhNCADcCECATQoCAgICAgIDAPzcCCCATQgA3AgAgE0EYakIANwIAIBNBIGpCADcCACATQShqQgA3AgAgE0EwakIANwIAIBNBOGpCADcCACAJRQ0BIAktAKACDQIgEkHwAWogCUHEAGooAgA2AgAgEkHoAWogCUE8aikCADcDACASQeABaiAJQTRqKQIANwMAIBIgCUEsaikCADcD2AEgEkHQAmogEkHYAWoQpQgMAwsgAEECNgIMDAYLIBJB2ABqIglBOGogEkEYaiITQThqKQMANwMAIAlBMGogE0EwaikDADcDACAJQShqIBNBKGopAwA3AwAgCUEgaiATQSBqKQMANwMAIAlBGGogE0EYaikDADcDACAJQRBqIBNBEGopAwA3AwAgCUEIaiATQQhqKQMANwMAIBIgEikDGDcDWAwCCyASQdgBaiITQRhqIAlBKGooAgA2AgAgEkHoAWogCUEgaikCADcDACATQQhqIAlBGGopAgA3AwAgEiAJKQIQNwPYASASQaADaiIWQQhqIAlB0ABqKAIANgIAIBIgCSkCSDcDoAMgEkGYAmoiF0EIaiAJQbQBaigCADYCACASIAkpAqwBNwOYAiASQZgBaiIZQQhqIAlBwAFqKAIANgIAIBIgCSkCuAE3A5gBIBJB0AJqIBMgFiAXIBkQ0QcLIBJB2ABqIglBOGogEkHQAmoiE0E4aikDADcDACAJQTBqIBNBMGopAwA3AwAgCUEoaiATQShqKQMANwMAIAlBIGogE0EgaikDADcDACAJQRhqIBNBGGopAwA3AwAgCUEQaiATQRBqKQMANwMAIAlBCGogE0EIaikDADcDACASIBIpA9ACNwNYCwJAAkACQCAKBEAgCi0AoAINASASQfABaiAKQcQAaigCADYCACASQegBaiAKQTxqKQIANwMAIBJB4AFqIApBNGopAgA3AwAgEiAKQSxqKQIANwPYASASQdACaiASQdgBahClCAwCCyASQZgBaiIJQThqIBJBGGoiCkE4aikDADcDACAJQTBqIApBMGopAwA3AwAgCUEoaiAKQShqKQMANwMAIAlBIGogCkEgaikDADcDACAJQRhqIApBGGopAwA3AwAgCUEQaiAKQRBqKQMANwMAIAlBCGogCkEIaikDADcDACASIBIpAxg3A5gBDAILIBJB2AFqIglBGGogCkEoaigCADYCACASQegBaiAKQSBqKQIANwMAIAlBCGogCkEYaikCADcDACASIAopAhA3A9gBIBJBkANqIhNBCGogCkHQAGooAgA2AgAgEiAKKQJINwOQAyASQaADaiIWQQhqIApBtAFqKAIANgIAIBIgCikCrAE3A6ADIBJBmAJqIhdBCGogCkHAAWooAgA2AgAgEiAKKQK4ATcDmAIgEkHQAmogCSATIBYgFxDRBwsgEkGYAWoiCUE4aiASQdACaiIKQThqKQMANwMAIAlBMGogCkEwaikDADcDACAJQShqIApBKGopAwA3AwAgCUEgaiAKQSBqKQMANwMAIAlBGGogCkEYaikDADcDACAJQRBqIApBEGopAwA3AwAgCUEIaiAKQQhqKQMANwMAIBIgEikD0AI3A5gBCyALQQFGBEAgEkHYAGogDBCTCAsgDUEBRgRAIBJBmAFqIA4QkwgLAkAgBygCJEUEQCASQegCaiAHQeQAaigCADYCACASQeACaiAHQdwAaikCADcDACASQdgCaiAHQdQAaikCADcDACASIAcpAkw3A9ACDAELIBJB2AJqIAdBOGopAwA3AwAgEkHgAmogB0FAaykDADcDACASQegCaiAHQcgAaigCADYCACASIAdBMGopAwA3A9ACCyASQdgBaiASQdgAaiASQdACahDcAQJAIAgoAiRFBEAgEkGwAmogCEHkAGooAgA2AgAgEkGoAmogCEHcAGopAgA3AwAgEkGgAmogCEHUAGopAgA3AwAgEiAIKQJMNwOYAgwBCyASQaACaiAIQThqKQMANwMAIBJBqAJqIAhBQGspAwA3AwAgEkGwAmogCEHIAGooAgA2AgAgEiAIQTBqKQMANwOYAgsgEkHQAmoiCSASQZgBaiASQZgCaiIKENwBIBJBEGoiCyAUQQRqKAIAIg02AgQgCyAUKAIAIA0oAghBB2pBeHFqNgIAIBIoAhQhCyASKAIQIQ0gEkEIaiITIBhBBGooAgAiFDYCBCATIBgoAgAgFCgCCEEHakF4cWo2AgAgCiABIBJB2AFqIA0gCyAJIBIoAgggEigCDCAPIBAgFSACKAIkESoAIBItAMwCIgFBBUcgAUEER3FFBEAgAEECNgIMDAMLIBIqApgCIQwgACAENgIIIAAgAzYCBCAAIAw4AgAgAEEwaiAVOgAAIABBLGpBADYCACAAQRxqIAY2AgAgAEEYaiAFNgIAIABBJGogCEEoaikDADcCACAAQSBqIAgoAiRBAEc2AgAgACAHQShqKQMANwIQIAAgBygCJEEARzYCDAwCC0Gck8EAQShBtJTBABCiCQALIABBAjYCDAsgEkGABGokAAuqEwELfyMAQSBrIggkACABKAIAIQUgAigCBCELAn9BACACKAIAIgQgASgCCCIBTw0AGkEAIAUgBEGgAWxqQQAgASAESxsiAygCAEEBRw0AGiADQQhqQQAgAygCBCALRhsLIQkCQAJAAkAgASACKAIIIgNNDQAgBSADQaABbGpBACABIANLGyIKKAIAQQFHDQAgCUUNACACQQxqKAIAIgwgCigCBEcNAAJAIApBLGooAgBFDQAgCSgCJCIBRQ0AIAkoAiggCigCMEcNACAJQSxqKAIAIAooAjRHDQAgAUEBRg0BCyAIIAQ2AgAgCCADNgIEAkACQAJAAkACQAJ/AkACQCADIARHBEAgAEFAaygCACEBAkAgAyAETwRAIAEgA00NASAAKAI4IQUgASEEDAQLIAEgBEsEQCABIQMMAwsCQCABIARBAWoiA08NACADIAFrIgYgAEE8aigCACABIgNrSwRAIABBOGogASAGEOIFIABBQGsoAgAhAwsgACgCOCIHIANBDGxqIQUCQCAGQQJPBEAgBUH/ASABQXRsIARBDGxqENoLGiAHIAMgBGogAWtBDGxqIQUgAyAGakEBayEDDAELIAZFDQELIAVCfzcCACAFQQhqQX82AgAgA0EBaiEDCyAAQUBrIAM2AgAgCCgCACEEDAILIAMgASIEa0EBaiIHIABBPGooAgAgAWtLBEAgAEE4aiABIAcQ4gUgAEFAaygCACEECyAAKAI4IgUgBEEMbGohBgJAAkAgB0ECTwRAIAZB/wEgAUF0bCADQQxsahDaCxogBSADIARqIAFrQQxsaiEGIAQgB2pBAWshBAwBCyAHRQ0BCyAGQn83AgAgBkEIakF/NgIAIARBAWohBAsgAEFAayAENgIAIAgoAgQhAwwCCyAIQRxqQQA2AgAgCEEYakGkw8AANgIAIAhCATcCDCAIQcSKwQA2AghBASAIIAhBBGogCEEIakHMisEAELQIAAsgAyAETwRAAkAgAyAERwRAIAgoAgQiASAETw0BIAAoAjgiAyAEQQxsaiEHIAMgAUEMbGoMBAtBAEEAQeyKwQAQrwgACyABIARB/IrBABCvCAALQZrRwABBI0HcisEAEKIJAAsgAyAESw0EIAgoAgAiASADTw0BIAMgBEYNAiAFIAFBDGxqIQcgBSADQQxsagshBiAHKAIAIAtHDQIMBAsgASADQZyLwQAQrwgAC0EAQQBBrIvBABCvCAALIAdCfzcCBCAHIAs2AgAMAQtBmtHAAEEjQYyLwQAQogkACyAMIAYoAgBHBEAgBkJ/NwIEIAYgDDYCAAsCQAJAAkACQAJAIAktAJQBDQAgCi0AnAENACAHKAIEIgVBf0YNAQwDCyAHKAIIIgRBf0cNASAAQShqKAIAIgRBf0YNBSACKAIEIQMgAigCACEFIAQiASAAQSRqKAIARgRAIABBIGogBBD8BSAAQShqKAIAIQELIABBKGogAUEBajYCACAAKAIgIAFBBHRqIgFCfzcCCCABIAM2AgQgASAFNgIAIAcgBDYCCAwBCyAAQRBqKAIAIgVBf0YNBCACKAIEIQMgAigCACEEIAUiASAAQQxqKAIARgRAIABBCGogBRD8BSAAQRBqKAIAIQELIABBEGogAUEBajYCACAAKAIIIAFBBHRqIgFCfzcCCCABIAM2AgQgASAENgIAIAcgBTYCBAwBCwJAIAYoAggiA0F/Rw0AIABBKGooAgAiA0F/RwRAIAIoAgwhBCACKAIIIQUgAyECIABBJGooAgAgA0YEQCAAQSBqIAMQ/AUgAEEoaigCACECCyAAQShqIAJBAWo2AgAgACgCICACQQR0aiIBQn83AgggASAENgIEIAEgBTYCACAGIAM2AgggBygCCCEEDAELDAQLAkAgAEEoaigCACIFIARLIglFBEAgAEE0aigCACEBDAELIABBLGooAgAhBiAAQTRqKAIAIgEgACgCICAEQQR0aiIHKAIIIgJLBEADQCAGIAJBFGxqIgIoAgwgA0YNBSACKAIAIgIgAUkNAAsLIAcoAgwiAiABTw0AA0AgBiACQRRsaiICKAIIIANGDQQgAigCBCICIAFJDQALCyABQX9HBEACQCAFIAQgAyADIARJG0sEQCAAKAIgIQIgAyAERw0BIAkNASADIAVBoIzBABCvCAALDAYLIABBNGohCSAAQSxqIQUgAiAEQQR0aiIGKAIIIQcgBiABNgIIIAIgA0EEdGpBDGoiAigCACEGIAIgATYCACAAQTBqKAIAIAFGBEAgBSABENwFIAkoAgAhAQsgBSgCACABQRRsaiIAQQA7ARAgACAGNgIEIAAgBzYCACAAIAStIAOtQiCGhDcCCAwCC0H8jMEAQTpBuI3BABCiCQALAkAgBigCBCIDQX9HDQAgAEEQaigCACIDQX9HBEAgAigCDCEEIAIoAgghBSADIgEgAEEMaigCAEYEQCAAQQhqIAMQ/AUgAEEQaigCACEBCyAAQRBqIAFBAWo2AgAgACgCCCABQQR0aiIBQn83AgggASAENgIEIAEgBTYCACAGIAM2AgQgBygCBCEFDAELDAMLAkAgAEEQaigCACIGIAVLIgdFBEAgAEEcaigCACEBDAELIABBFGooAgAhCSAAQRxqKAIAIgEgACgCCCAFQQR0aiIKKAIIIgRLBEADQCAJIARBOGxqIgQoAjQgA0YNBCAEKAIoIgQgAUkNAAsLIAooAgwiBCABTw0AA0AgCSAEQThsaiIEKAIwIANGDQMgBCgCLCIEIAFJDQALCyABQX9HBEACQCAGIAUgAyADIAVJG0sEQCACKAIMIQogAigCCCELIAIoAgQhDCACKAIAIQ0gACgCCCECIAMgBUcNASAHDQEgAyAGQaCMwQAQrwgACwwFCyAAQRxqIQkgAEEUaiEEIAIgBUEEdGoiBigCCCEHIAYgATYCCCACIANBBHRqQQxqIgIoAgAhBiACIAE2AgAgAEEYaigCACABRgRAIAQgARDeBSAJKAIAIQELIAQoAgAgAUE4bGoiACAHNgIoIABBADsBJCAAQgQ3AhAgACALNgIIIAAgDDYCBCAAIA02AgAgACAFrSADrUIghoQ3AjAgAEEsaiAGNgIAIABBGGpCADcCACAAQQxqIAo2AgAMAQtB/IzBAEE6QbiNwQAQogkACyAJIAFBAWo2AgALIAhBIGokAA8LQbCMwQBBOkHsjMEAEKIJAAsgCEEcakEANgIAIAhBpMPAADYCGCAIQgE3AgwgCEH0jcEANgIIIAhBCGpB/I3BABDgCQAL1RMDFX8jfQN+IwBBsAJrIgYkACAGQSBqIAQgASAFKAKIARECACAGQTRqKgIAIRwgBioCKCEbIAZBMGoqAgAhHSAGKgIkIR4gBioCICEgIAYqAiwhHwJAIAIgAygCEBEFACIPQSBqKAIABEAgBkEANgIIIAZCBDcDACAGQQAQiQYgBigCACAGKAIIIgdBA3RqQoCAgIDw////fjcCACAGIAdBAWo2AgggBkEQaiAGEOsCAkAgBigCEEEBRw0AIBwgG5NDAAAAP5QhISAdIB6TQwAAAD+UISIgHyAgk0MAAAA/lCEjIBsgHJJDAAAAv5QhJCAeIB2SQwAAAL+UISUgICAfkkMAAAC/lCEfQ///f38hHCAPQSBqIREDQCAcIAYqAhiMXw0BAkACfwJ/AkAgESgCACIIIAYoAhQiB0sEQCAGQSBqIA8oAhggB0EHdGpBgAEQ2QsaIAYtAJgBIg4EQCAGKAKMASIIIA8oAjwiB0khCSAIQQxsIA8oAjQiCGpBACAJG0EIakEAIAkbIRIgBigCiAEiCiAHSSEJIAggCkEMbGpBACAJG0EIakEAIAkbIRMgBigChAEiCiAHSSEJIAggCkEMbGpBACAJG0EIakEAIAkbIRQgBigCgAEiCSAHSSEHIAggCUEMbGpBACAHG0EIakEAIAcbIRALIAYqAiAhGyAGKgIkIR0gBioCKCEeIAYqAiwhICAGKgIwIScgBioCNCEoIAYqAjghKSAGKgI8ISogBioCQCErIAYqAkQhLCAGKgJIIS0gBioCTCEuIAYqAlAhLyAGKgJUITAgBioCWCExIAYqAlwhMiAGKgJgITMgBioCZCE0IAYqAmghNSAGKgJsITYgBioCcCE3IAYqAnQhOCAGKgJ4ITkgBiAhICQgBioCfJKSOAL8ASAGICEgJCA5kpI4AvgBIAYgISAkIDiSkjgC9AEgBiAhICQgN5KSOALwASAGICIgJSA2kpI4AuwBIAYgIiAlIDWSkjgC6AEgBiAiICUgNJKSOALkASAGICIgJSAzkpI4AuABIAYgIyAfIDKSkjgC3AEgBiAjIB8gMZKSOALYASAGICMgHyAwkpI4AtQBIAYgIyAfIC+SkjgC0AEgBiAkIC6SICGTOALMASAGICQgLZIgIZM4AsgBIAYgJCAskiAhkzgCxAEgBiAkICuSICGTOALAASAGICUgKpIgIpM4ArwBIAYgJSApkiAikzgCuAEgBiAlICiSICKTOAK0ASAGICUgJ5IgIpM4ArABIAYgHyAgkiAjkzgCrAEgBiAfIB6SICOTOAKoASAGIB8gHZIgI5M4AqQBIAYgHyAbkiAjkzgCoAEgBkGAAmogBkGgAWoQhgIgBioCgAIiICAcXSEHIAYqAowCIRsgBioCiAIhHSAGKgKEAiEeAkAgDgRAIBwgHl5BAXQgB3IhCEEAIQpDAAAAACEeQwAAAAAhIEEAIQ1BACAIIBwgHV5BAnRyIBsgHF1BA3RyrSI+QgGDUA0EGkEAIBBFDQQaIBAoAgAhFSAGQgA3A5ACIAYgBTYCqAIgBiAENgKkAiAGIAE2AqACIAYgADYCnAIgBiAGQZACajYCmAIgAiAVIAZBmAJqQfyswgAgAygCDBEBACAGKAKQAkUNAUEADAQLIBwgHV4hCiAbIBxdIQtBACEJQQAhCEEAIQ5BACENIBwgHl4MBAsgBioClAIiIEMAAAAAXA0BDAQLIAcgCEH8hMIAEK8IAAtBASENICAhOiAcICBeCyEHAn9BACA+QgKDUA0AGkEAIBRFDQAaIBQoAgAhFiAGQgA3A5ACIAYgBTYCqAIgBiAENgKkAiAGIAE2AqACIAYgADYCnAIgBiAGQZACajYCmAIgAiAWIAZBmAJqQfyswgAgAygCDBEBAEEAIAYoApACDQAaIAYqApQCIh5DAAAAAFsNAiAcIB5eIQogHiE7QQELIQ5BACEMQwAAAAAhG0MAAAAAIR1BACELAn9BACA+QgSDUA0AGkEAIBNFDQAaIBMoAgAhFyAGQgA3A5ACIAYgBTYCqAIgBiAENgKkAiAGIAE2AqACIAYgADYCnAIgBiAGQZACajYCmAIgAiAXIAZBmAJqQfyswgAgAygCDBEBAEEAIAYoApACDQAaIAYqApQCIh1DAAAAAFsNAiAcIB1eIQsgHSE8QQELIQgCf0EAID5CCINQDQAaQQAgEkUNABogEigCACEYIAZCADcDkAIgBiAFNgKoAiAGIAQ2AqQCIAYgATYCoAIgBiAANgKcAiAGIAZBkAJqNgKYAiACIBggBkGYAmpB/KzCACADKAIMEQEAQQAgBigCkAINABogBioClAIiG0MAAAAAWw0CIBsgHF0hDCAbIT1BAQshCSAMQRh0IAtBEHRyIApBCHRyIAdyIgxBGHYhCyAMQRB2IQogDEEIdgshDCAGID04AswBIAYgGDYCyAEgBiAJNgLEASAGIDw4AsABIAYgFzYCvAEgBiAINgK4ASAGIDs4ArQBIAYgFjYCsAEgBiAONgKsASAGIDo4AqgBIAYgFTYCpAEgBiANNgKgASAGIBs4AqQCIAYgHTgCoAIgBiAeOAKcAiAGICA4ApgCIAcgC0EDdHIgCkECdHIgDEEBdHKtQv8BgyFAIBEoAgAhDiAPKAI8IQpCACE+A0AgPiI/QgF8IT4CQCBAID+IQgGDUA0AID+nIQcgBi0AmAEEQCAHQQJ0IgggBkGYAmpqKgIAIhsgHF1FDQEgBkGgAWogB0EMbGoiBygCAEEBRw0BIAYgCGpBgAFqKAIAIApPDQEgB0EIaioCACEmQQEhGSAbIRwMAQsgB0ECdCIHIAZqQYABaigCACILIA5PDQAgBkGYAmogB2oqAgCMIRsgBigCCCIHIQggBigCBCAHRgRAIAYgBxCJBiAGKAIIIQgLIAYoAgAiCSAIQQN0aiINIBs4AgQgDSALNgIAIAYgCEEBajYCCCAJIAdBA3RqIggqAgQhGyAIKAIAIQsCQCAHRQRAQQAhCAwBCwNAQQBBfyAJIAdBAWsiDUEBdiIIQQN0aiIMQQRqKgIAIh0gG18iGhtBAUECIBobIBsgHV8bQQNrQX5JBEAgByEIDAILIAkgB0EDdGogDCkCADcCACAIIQcgDUEBSw0ACwsgCSAIQQN0aiIHIBs4AgQgByALNgIACyA+QgRSDQALIAZBEGogBhDrAiAGKAIQQQFGDQEMAgsLAkAgBigCBCIARQ0AIABBA3RFDQAgBigCABCsAQtDAAAAACEmDAILAkAgBigCBCIARQ0AIABBA3RFDQAgBigCABCsAQsgGQ0BC0GoicIAQSZBlJXCABDDCwALIAZBsAJqJAAgJgurFAMJfwZ9AX4jAEHgAGsiBSQAIAVBOGoiBkEIaiABQQhqKAIANgIAIAUgASkCADcDOCAFQRBqIABBBGogBhDUAwJAAkACQAJAAkACQAJAAkACQAJAAkAgBSgCEEUEQCAFKAIUIgFBGGooAgAiAiAFQRhqKAIAQQRrKAIAIgBNDQEgASgCECAAQRRsaigCECEGDAkLIAVBMGogBUEkaigCADYCACAFIAVBHGopAgA3AyggACoCACINIAEoAgiylCEOIA0gDpIhDyANIA0gASgCBLKUIhCSIREgDSANIAEoAgCylCINkiESIAVBGGooAgAhCiAFKAIUIQcgAygCCCIBRQRAIAVBADYCUAwDCyADIAFBAWsiATYCCCAFIAMoAgAgAUECdGooAgAiATYCUCABRQ0CIAFBEGpBADYCACABQRxqQQA2AgAgAUEIaiEIIAFBDGoiAygCACIGRQRAIAhBABD6BSADKAIAIQYgASgCECEECyABIARBAWoiAzYCECAEQQN0IAEoAggiBGpC////ezcCACADIAZGBEAgCCAGEPoFIAEoAgghBCABKAIQIQMLIAQgA0EDdGpC////+/f/////ADcCACABIANBAWo2AhBBACEEIAFBMGpBADYCACABIA04AgAgASASOAIEIAFBPGpBADYCACABQShqIQggAUEsaiIDKAIAIgZFBEAgCEEAEPoFIAMoAgAhBiABKAIwIQQLIAEgBEEBaiIDNgIwIARBA3QgASgCKCIEakL///97NwIAIAMgBkYEQCAIIAYQ+gUgASgCKCEEIAEoAjAhAwsgBCADQQN0akL////79/////8ANwIAIAEgA0EBajYCMEEAIQQgAUHQAGpBADYCACABIBA4AiAgAUEkaiAROAIAIAFB3ABqQQA2AgAgAUHIAGohCCABQcwAaiIDKAIAIgZFBEAgCEEAEPoFIAMoAgAhBiABKAJQIQQLIAEgBEEBaiIDNgJQIARBA3QgASgCSCIEakL///97NwIAIAMgBkYEQCAIIAYQ+gUgASgCSCEEIAEoAlAhAwsgBCADQQN0akL////79/////8ANwIAIAEgA0EBajYCUCABIA44AkAgAUHEAGogDzgCACABQQA6AJABAkAgAUHkAGooAgAiA0UNACADQQJ0RQ0AIAFB4ABqKAIAEKwBCyABQgQ3AmAgAUEAOgCRASABQegAakIANwIAIAFBhAFqQoCAgIBwNwIAIAEoAowBDQEgAUH4AGooAgBFDQNB5N3BAEEqQZDewQAQogkACyAAIAJBmPPAABCvCAALIAVBADYCOCABQYwBakHA0cAAIAVBOGpB1N3BABCzCAALAkAgDSASXwRAQRBBBBDuCiIDDQEMCAsMCAsgA0L////79/////8ANwIIIANC////ezcCAAJAIBAgEV8EQEEQQQQQ7goiBA0BDAgLDAgLIARC////+/f/////ADcCCCAEQv///3s3AgACQCAOIA9fBEBBEEEEEO4KIgYNAQwICwwICyAGQv////v3/////wA3AgggBkL///97NwIAQZQBQQQQ7goiAUUNASABQQA7AZABIAFBADYCjAEgAUKAgICAcDcChAEgAUIENwJ8IAFCADcCdCABQoCAgIDAADcCbCABQgA3AmQgAUKAgICAwAA3AlwgAUIENwJUIAFCgoCAgCA3AkwgASAGNgJIIAEgDzgCRCABIA44AkAgAUEANgI8IAFCBDcCNCABQoKAgIAgNwIsIAEgBDYCKCABIBE4AiQgASAQOAIgIAFBADYCHCABQgQ3AhQgAUKCgICAIDcCDCABIAM2AgggASASOAIEIAEgDTgCACAFKAJQRQ0AIAVB0ABqEIUECyAALQA4IQMgAC0AOSEEAkAgAigCDCIGQX9GBEAgAigCCCIGIAJBBGooAgBGBEAgAiAGEN0FIAIoAgghBgsgAiAGQQFqNgIIIAIoAgAgBkEsbGoiAiADOgApIAIgBDoAKCACQX82AiQgAiANOAIMIAIgATYCBCACQQE2AgAMAQsgAigCCCIIIAZNDQIgAiACKAIAIAZBLGxqIgIoAiQ2AgwgAkEkagJAIAIoAgBFDQAgAigCBEUNACACQQRqEIUECyACQQE2AgBBfzYCACACIA04AgwgAiABNgIEIAIgAzoAKSACIAQ6ACgLIAJBIGogDzgCACACQRxqIBE4AgAgAkEYaiASOAIAIAJBFGogDjgCACACQRBqIBA4AgAgAEE0aigCACIBIABBMGooAgBGBEAgAEEsaiABEPsFIAAoAjQhAQsgACABQQFqNgI0IAAoAiwgAUECdGogBjYCACAKIAcoAgAiAnEiACAHQQRqKAIAIgNqKAAAQYCBgoR4cSIERQRAQQQhAQNAIAAgAWohACABQQRqIQEgAyAAIAJxIgBqKAAAQYCBgoR4cSIERQ0ACwsgB0EYaiADIARoQQN2IABqIAJxIgFqLAAAIgRBAE4EQCADIAMoAgBBgIGChHhxaEEDdiIBai0AACEECyAHQRBqIQgoAgAhACAEQQFxIQkCQCAHQQhqIgsoAgANACAJRQ0AIAVBCGogByAIKAIAIAAQhgEgB0EEaigCACIDIAogBygCACICcSIEaigAAEGAgYKEeHEiDEUEQEEEIQEDQCABIARqIQQgAUEEaiEBIAIgBHEiBCADaigAAEGAgYKEeHEiDEUNAAsLIAMgDGhBA3YgBGogAnEiAWosAABBAEgNACADKAIAQYCBgoR4cWhBA3YhAQsgASADaiAKQRl2IgQ6AAAgAUEEayACcSADakEEaiAEOgAAIAsgCygCACAJayIENgIAIAdBDGoiCSgCAEEBaiECIAkgAjYCACADIAFBAnRrQQRrIAA2AgAgACAHQRRqKAIAIgNHBEAgB0EYaigCACEBDAQLIAIgBGogB0EYaigCACIBayECIAIgACABa00EQCAAIQMMBAsgASACaiIDIAFJDQIgA61CFH4iE0IgiFBBAnQhBCATpyEJIAUgAAR/IAUgCCgCADYCOCAFIACtQhR+PgI8QQQFQQALNgJAIAVB0ABqIAkgBCAFQThqEPkGIAUoAlBFBEAgBSgCVCECIAdBFGogAzYCACAHIAI2AhAMBAsgBUHYAGooAgAiAEUNAiAFKAJUIABB3ObDACgCACIAQY8HIAAbEQAAAAtBlAFBBEHc5sMAKAIAIgBBjwcgABsRAAAACyAGIAhBsNzBABCvCAALEN8JAAsgASADRgRAIAggAxDcBSAHQRhqKAIAIQELIAcoAhAgAUEUbGoiAiAFKQMoNwIEIAJBDGogBUEwaigCADYCACACIAo2AgAgAiAGNgIQIAdBGGogAUEBaiIBNgIAIAAgAUkNACAAIAFB9PHAABCvCAALIAVB4ABqJAAgBg8LQRBBBEHc5sMAKAIAIgBBjwcgABsRAAAAC0Hc0MEAQShBhNLBABCiCQAL/RECIX8CfQJAIAFBEGoiAigCACIVIAFBDGooAgAiCSAJIBVLGyIKBEACQCAKQf////8BcSICIApHDQAgCkEDdCIEQQBIDQAgAiAKRkECdCEDIAQEfyAEIAMQ7goFIAMLIgJFBEAgBCADQdzmwwAoAgAiAEGPByAAGxEAAAALIAJBACAKQQN0ENoLIRsgCUEBaiEaIAlBA3QhHSAJQQFrIRwgFUEBayEeIBVBAmshHyAJQQJrISAgCUECdCIZQQRqISEDQCAQIAogCiAQSRshEiAQQQFrIQwgECAcaiEIIB4gEGshAiAcIBBrIQMgCSAQayETIBAgGmwiF0EBaiEUQQAhDgJAAkACQANAIA4hCyADIREgAiEHIBAiBCASRgRAIAAgGDYCFCAAIAEpAgA3AgAgAEEYaiAbNgIAIABBEGogAUEQaigCADYCACAAQQhqIAFBCGopAgA3AgAMCAsgCSAEayINRQ0CQQAhBSABKAIAIgYgBCAEIAlsIiJqQQJ0aiIPKAIAQf////8Hcb4hIyANQQFHBEAgBiAUQQJ0aiALaiECQQEhAwNAIAMgBSACKAIAQf////8Hcb4iJCAjXiIQGyEFICQgIyAQGyEjIAJBBGohAiATIANBAWoiA0cNAAsLIAQgBWoiFiAJTw0BIAQgFU8NASAEQQFqIRAgDEEBaiEMIAhBAWohCCAHQQFrIQIgEUEBayEDIBNBAWshEyALICFqIQ4gBiAWICJqQQJ0aioCACIjQwAAAABbDQALIAVFBEAgBEF/cyICIBVqIQ4gAiAJaiIFBEBDAACAPyAjlSEjIAVBA3FBACECICAgBGsiDEEDTwRAQQAhA0EAIBFBfHFrIQQgBiAUQQJ0aiALaiECA0AgAiAjIAIqAgCUOAIAIAJBBGoiDSAjIA0qAgCUOAIAIAJBCGoiDSAjIA0qAgCUOAIAIAJBDGoiDSAjIA0qAgCUOAIAIAJBEGohAiAEIANBBGsiA0cNAAtBACADayECCwRAIAYgAkECdGogFEECdGogC2ohAiARQQNxIQMDQCACICMgAioCAJQ4AgAgAkEEaiECIANBAWsiAw0ACwsgDkUNBSAPQQRqIQ0gDyAZaiIPQQRqIQggBUEBcSETQQAhB0EAIBFBfnFrIRYgBiAUQQJ0aiALaiERIAYgFyAaakECdGogC2ohBANAIAcgCWxBAnQiCyAPaioCACEjQQAhAiAMBEBBACEFIBEhAyAEIQIDQCACIAIqAgAgIyADKgIAlJM4AgAgAkEEaiIGIAYqAgAgIyADQQRqKgIAlJM4AgAgA0EIaiEDIAJBCGohAiAWIAVBAmsiBUcNAAtBACAFayECCyATBEAgAkECdCICIAggC2pqIgMgAyoCACAjIAIgDWoqAgCUkzgCAAsgBCAZaiEEIA4gB0EBaiIHRw0ACwwFCyAORQ0EIA5BB3EhA0EAIQIgHyAEa0EHSQ0DIAdBeHEhBANAIAQgAkEIaiICRw0ACwwDCwJAIAogGEsEQEEAQQAgGCAKQQFGIgIbIgMgCkkgAiAYQQBHcRsNAUGs+cAAQRtB+ITBABC0CgALQcyDwQBBKEHohMEAELQKAAsgGyADQQN0aiICIAQ2AgAgAkEEaiAWNgIAIAQgFU0EQCAEIAlJBEACQCAERQ0AIARBAXFBACEDIARBAUcEQCAMQX5xIQ4gBiAMQQJ0aiEUIAYgCEECdGohEyAGIAUgDGpBAnRqIQwgBiAFIAhqQQJ0aiEIQQAhAgNAIAIgFGoiEioCACEkIBIgAiAMaiISKAIANgIAIBIgJDgCACACIBNqIhIqAgAhJCASIAIgCGoiEigCADYCACASICQ4AgAgAiAdaiECIA4gA0ECaiIDRw0ACwtFDQAgBiADIAlsIgIgBGpBAnRqIgMqAgAhJCADIAYgAiAWakECdGoiAigCADYCACACICQ4AgALIAUgDUkEQCAVIARBf3NqIQ4gDyoCACEkIA8gDyAFQQJ0aiICKAIANgIAIAIgJDgCAAJAIA1BAWsiBEUNAEMAAIA/ICOVISMgBEEDcUEAIQIgDUECa0EDTwRAQQAhA0EAIBFBfHFrIQwgF0ECdCAGaiALakEEaiECA0AgAiAjIAIqAgCUOAIAIAJBBGoiCCAjIAgqAgCUOAIAIAJBCGoiCCAjIAgqAgCUOAIAIAJBDGoiCCAjIAgqAgCUOAIAIAJBEGohAiAMIANBBGsiA0cNAAtBACADayECC0UNACAGIAJBAnRqIBdBAnRqIAtqQQRqIQIgEUEDcSEDA0AgAiAjIAIqAgCUOAIAIAJBBGohAiADQQFrIgMNAAsLIBhBAWohGCAORQ0GIAVBAWsiDCAESQRAIA9BBGohCCAPIBlqIhRBBGohDyAEQQFxIRNBACEHQQAgEUF+cWshFiAXQQJ0IAZqIAtqQQRqIREgBiAXIBpqQQJ0aiALaiEEA0AgByAJbCIDQQJ0IgsgFGoiAioCACEjIAIgDyADIAxqQQJ0aiIDKgIAOAIAIAMgIzgCACACKgIAISNBACECIA1BAkcEQEEAIQUgESEDIAQhAgNAIAIgAioCACAjIAMqAgCUkzgCACACQQRqIgYgBioCACAjIANBBGoqAgCUkzgCACADQQhqIQMgAkEIaiECIBYgBUECayIFRw0AC0EAIAVrIQILIBMEQCACQQJ0IgIgCyAPamoiAyADKgIAICMgAiAIaioCAJSTOAIACyAEIBlqIQQgDiAHQQFqIgdHDQALDAcLQaz5wABBG0HshcEAELQKAAtB9/7AAEEpQaD/wAAQtAoAC0HYgMEAQT5BmIHBABCiCQALQbz0wABBHUHU9cAAELQKAAtBrPnAAEEbQfiGwQAQtAoAC0GogcEAQSNBsILBABC0CgALIANFDQAgB0EHcSEDA0AgAkEBaiECIANBAWsiAw0ACwwACwALEN8JAAsgAEKAgICAwAA3AhQgACABKQIANwIAIABBEGogAigCADYCACAAQQhqIAFBCGopAgA3AgBBACEKCyAAQSRqIAo2AgAgAEEgaiAKNgIAIABBHGogCjYCAAvxEQEVfyMAQUBqIgMkAAJAIABBGGooAgAiEiABQf8BcSITSwRAAkACQAJAAkACQCAAKAIQIhQgE0EGdGoiFS0APEUNACAVQT1qLQAAIgggEk8NBCAUIAhBBnRqIghBHGooAgAiDkUNACAIQRRqKAIAIg8gDkEUbGohFiADQQhqIghBCGohDiAIQQRqIQggACgCACELIAAoAgghCQNAAkACQAJAAkACQAJAAkACQCAJIA8oAhAiAksEQCALIAJBLGxqIgIoAgBBAUcNASACKAIEIQYgAkEANgIEIAZFDQFBACECIANBEGpBADYCACADQgA3AwggBkHsAGohDUEAIQUgBkEQaiIQKAIAIgdFDQIgBigCCEEEaiECQQAhBANAAkAgAigCACIMQf////8HcSIFIAlPDQAgCyAFQSxsaigCAEEBRw0AIAMgBTYCFCANKAIAIAVNDRIgBUEFdiICIAZB6ABqKAIAIgpPDQYgBigCYCACQQJ0aiICIAIoAgBBfiAMd3E2AgBBASEFIAMgAygCCEEBajYCCCAEQQFqIQIMBAsgAkEI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EMMGIABBCGooAgAhAgsgACgCACACaiAJOAAAIABBCGoiAyACQQRqIgI2AgAgAEEEaiIFKAIAIAJrQQNNBEAgACACQQQQwwYgAygCACECCyAAKAIAIAJqIAg4AAAgAyACQQRqIgI2AgAgAUHMAGoqAgAhCCABQcgAaioCACEJIAFBxABqKgIAIQogBSgCACACa0EDTQRAIAAgAkEEEMMGIABBCGooAgAhAgsgACgCACACaiAKOAAAIABBCGoiAyACQQRqIgI2AgAgAEEEaiIFKAIAIAJrQQNNBEAgACACQQQQwwYgAygCACECCyAAKAIAIAJqIAk4AAAgAyACQQRqIgI2AgAgBSgCACACa0EDTQRAIAAgAkEEEMMGIABBCGooAgAhAgsgACgCACACaiAIOAAAIABBCGoiAyACQQRqIgI2AgAgAUHYAGoqAgAhCCABQdQAaioCACEJIAFB0ABqKgIAIQogAEEEaiIFKAIAIAJrQQNNBEAgACACQQQQwwYgAygCACECCyAAKAIAIAJqIAo4AAAgAyACQQRqIgI2AgAgBSgCACACa0EDTQRAIAAgAkEEEMMGIABBCGooAgAhAgsgACgCACACaiAJOAAAIABBCGoiAyACQQRqIgI2AgAgAEEEaiIFKAIAIAJrQQNNBEAgACACQQQQwwYgAygCACECCyAAKAIAIAJqIAg4AAAgAyACQQRqIgI2AgAgAUHkAGoqAgAhCCABQeAAaioCACEJIAFB3ABqKgIAIQogBSgCACACa0EDTQRAIAAgAkEEEMMGIABBCGooAgAhAgsgACgCACACaiAKOAAAIABBCGoiAyACQQRqIgI2AgAgAEEEaiIFKAIAIAJrQQNNBEAgACACQQQQwwYgAygCACECCyAAKAIAIAJqIAk4AAAgAyACQQRqIgI2AgAgBSgCACACa0EDTQRAIAAgAkEEEMMGIABBCGooAgAhAgsgACgCACACaiAIOAAAIABBCGoiAyACQQRqIgI2AgAgAUHwAGoqAgAhCCABQewAaioCACEJIAFB6ABqKgIAIQogAEEEaiIFKAIAIAJrQQNNBEAgACACQQQQwwYgAygCACECCyAAKAIAIAJqIAo4AAAgAyACQQRqIgI2AgAgBSgCACACa0EDTQRAIAAgAkEEEMMGIABBCGooAgAhAgsgACgCACACaiAJOAAAIABBCGoiAyACQQRqIgI2AgAgAEEEaiIFKAIAIAJrQQNNBEAgACACQQQQwwYgAygCACECCyAAKAIAIAJqIAg4AAAgAyACQQRqIgI2AgAgAUH8AGoqAgAhCCABQfgAaioCACEJIAFB9ABqKgIAIQogBSgCACACa0EDTQRAIAAgAkEEEMMGIABBCGooAgAhAgsgACgCACACaiAKOAAAIABBCGoiAyACQQRqIgI2AgAgAEEEaiIFKAIAIAJrQQNNBEAgACACQQQQwwYgAygCACECCyAAKAIAIAJqIAk4AAAgAyACQQRqIgI2AgAgBSgCACACa0EDTQRAIAAgAkEEEMMGIABBCGooAgAhAgsgAEEIaiACQQRqNgIAIAAoAgAgAmogCDgAACABQYABaiEAIAFBqAJqIQUgBCgCACIEQQhqIgMoAgAhAQNAIAAqAgAhCCAEQQRqIgIoAgAgAWtBA00EQCAEIAFBBBDDBiADKAIAIQELIAQoAgAgAWogCDgAACADIAFBBGoiATYCACAAQQRqKgIAIQggAigCACABa0EDTQRAIAQgAUEEEMMGIAMoAgAhAQsgBCgCACABaiAIOAAAIAMgAUEEaiIBNgIAIABBCGoqAgAhCCACKAIAIAFrQQNNBEAgBCABQQQQwwYgAygCACEBCyAEKAIAIAFqIAg4AAAgAyABQQRqIgE2AgAgAEEMaioCACEIIAIoAgAgAWtBA00EQCAEIAFBBBDDBiADKAIAIQELIAQoAgAgAWogCDgAACADIAFBBGoiATYCACAAQRBqKgIAIQggAigCACABa0EDTQRAIAQgAUEEEMMGIAMoAgAhAQsgBCgCACABaiAIOAAAIAMgAUEEaiIBNgIAIABBFGoqAgAhCCACKAIAIAFrQQNNBEAgBCABQQQQwwYgAygCACEBCyAEKAIAIAFqIAg4AAAgAyABQQRqIgE2AgAgAEEYai0AAEEARyEHIAIoAgAgAWtBA00EQCAEIAFBBBDDBiADKAIAIQELIAQoAgAgAWogBzYAACADIAFBBGoiATYCAEEAIQIgBSAAQRxqIgBHDQALCyAGQRBqJAAgAgu1EAMWfwx9AX4jAEHgAWsiAiQAIAJBADYCCCACQgQ3AwACf0EAIABBLGooAgAiC0UNABogAkEAEIsGIAIoAgAiByACKAIIIghBAnRqQQA2AgBBACAIIAhBAWoiBEsNABogAEHIAGooAgAhCCAAQUBrKAIAIQwgACgCJCEVIAFBCGohFiABQQRqIRcDQAJAIAIgBEEBayIENgIIAkACQAJAAkACQCAHIARBAnRqKAIAIgMgC0kEQCACQRBqIBUgA0EHdGpBgAEQ2QsaIAItAIgBIg4EQCACKAJ8IgYgCEkhAyAMIAZBDGxqQQAgAxtBCGpBACADGyEPIAIoAngiBiAISSEDIAwgBkEMbGpBACADG0EIakEAIAMbIRAgAigCdCIGIAhJIQMgDCAGQQxsakEAIAMbQQhqQQAgAxshESACKAJwIgYgCEkhAyAMIAZBDGxqQQAgAxtBCGpBACADGyENCyACIAEqAgAiHzgCnAEgAiAfOAKYASACIB84ApQBIAIgHzgCkAEgAiAWKgIAIh44ArwBIAIgHjgCuAEgAiAeOAK0ASACIB44ArABIAIgFyoCACIgOAKsASACICA4AqgBIAIgIDgCpAEgAiAgOAKgASACQcABaiACQRBqIAJBkAFqEOkCIAItAMMBIRIgAi0AwgEhEyACLQDBASEUIAItAMABIQYgDkUNAiAUQQF0IAZyIBNBAnRyIBJBA3RyrSIkQgGDUA0BIA1FDQEgACgCCCIFIA0oAgAiA00NASAAKAIAIANBJGxqQQAgAyAFSRsiA0EgaigCACIFKAIIIQkgAygCHCAfIAMqAhCTIiEgA0EEaioCACIblCAgIANBFGoqAgCTIiIgAyoCACIclJMiGiAakiEaICIgA0EIaioCACIdlCAeIANBGGoqAgCTIhkgG5STIhggGJIhGCACIBkgAyoCDCIjIBqUIBsgGJQgHCAZIByUICEgHZSTIhkgGZIiGZSTkpI4AtgBIAIgIiAjIBmUIBwgGpQgHSAYlJOSkjgC1AEgAiAhICMgGJQgHSAZlCAbIBqUk5KSOALQASAJQQdqQXhxaiACQdABaiAFKAI4EQMARQ0BDAMLIAMgC0HshMIAEK8IAAsCQCAkQv8BgyIkQgKDUA0AIBFFDQAgACgCCCIFIBEoAgAiA00NACAAKAIAIANBJGxqQQAgAyAFSRsiA0EgaigCACIFKAIIIQkgAygCHCAfIAMqAhCTIiEgA0EEaioCACIblCAgIANBFGoqAgCTIiIgAyoCACIclJMiGiAakiEaICIgA0EIaioCACIdlCAeIANBGGoqAgCTIhkgG5STIhggGJIhGCACIBkgAyoCDCIjIBqUIBsgGJQgHCAZIByUICEgHZSTIhkgGZIiGZSTkpI4AtgBIAIgIiAjIBmUIBwgGpQgHSAYlJOSkjgC1AEgAiAhICMgGJQgHSAZlCAbIBqUk5KSOALQASAJQQdqQXhxaiACQdABaiAFKAI4EQMADQILAkAgJEIEg1ANACAQRQ0AIAAoAggiBSAQKAIAIgNNDQAgACgCACADQSRsakEAIAMgBUkbIgNBIGooAgAiBSgCCCEJIAMoAhwgHyADKgIQkyIhIANBBGoqAgAiG5QgICADQRRqKgIAkyIiIAMqAgAiHJSTIhogGpIhGiAiIANBCGoqAgAiHZQgHiADQRhqKgIAkyIZIBuUkyIYIBiSIRggAiAZIAMqAgwiIyAalCAbIBiUIBwgGSAclCAhIB2UkyIZIBmSIhmUk5KSOALYASACICIgIyAZlCAcIBqUIB0gGJSTkpI4AtQBIAIgISAjIBiUIB0gGZQgGyAalJOSkjgC0AEgCUEHakF4cWogAkHQAWogBSgCOBEDAA0CCyAkQgiDUA0AIA9FDQAgACgCCCIFIA8oAgAiA00NACAAKAIAIANBJGxqQQAgAyAFSRsiA0EgaigCACIFKAIIIQkgAygCHCAfIAMqAhCTIhogA0EEaioCACIflCAgIANBFGoqAgCTIh0gAyoCACIglJMiGyAbkiEbIB0gA0EIaioCACIclCAeIANBGGoqAgCTIhggH5STIh4gHpIhHiACIBggAyoCDCIhIBuUIB8gHpQgICAYICCUIBogHJSTIhggGJIiGJSTkpI4AtgBIAIgHSAhIBiUICAgG5QgHCAelJOSkjgC1AEgAiAaICEgHpQgHCAYlCAfIBuUk5KSOALQASAJQQdqQXhxaiACQdABaiAFKAI4EQMADQELIAZBAkYNAyAODQICQCAUQQF0IAZyIBNBAnRyIBJBA3RyrUL/AYMiJEIBg1ANACACKAJwIgMgC0sNACACKAIEIARGBEAgAiAEEIsGIAIoAgAhByACKAIIIQQLIAcgBEECdGogAzYCACACIARBAWoiBDYCCAsCQCAkQgKDUA0AIAIoAnQiAyALSw0AIAIoAgQgBEYEQCACIAQQiwYgAigCACEHIAIoAgghBAsgByAEQQJ0aiADNgIAIAIgBEEBaiIENgIICwJAICRCBINQDQAgAigCeCIDIAtLDQAgAigCBCAERgRAIAIgBBCLBiACKAIAIQcgAigCCCEECyAHIARBAnRqIAM2AgAgAiAEQQFqIgQ2AggLICRCCINQRQ0BDAILQQEMBAsgAigCfCIDIAtLDQAgAigCBCAERgRAIAIgBBCLBiACKAIAIQcgAigCCCEECyAHIARBAnRqIAM2AgAgAiAEQQFqIgQ2AggLIAQNAQsLQQALAkAgAigCBCIARQ0AIABBAnRFDQAgAigCABCsAQsgAkHgAWokAAurEQERfyMAQaACayIHJAAgACgCACIKQQRqKAIAIQggCCAAKAIEKAIAIgtBufPd8XlsIhAgCigCACIMcSIEaigAACIGIBBBGXYiE0GBgoQIbCIRcyINQYGChAhrIA1Bf3NxQYCBgoR4cSEJIAhBBGshFCAKQRhqKAIAIQ4gCkEQaiISKAIAIQ8CQAJAAkACQAJAAkACQAJAA0AgCUUEQANAIAYgBkEBdHFBgIGChHhxDQMgBCAFaiEEIAVBBGohBSARIAggBEEEaiAMcSIEaigAACIGcyINQYGChAhrIA1Bf3NxQYCBgoR4cSIJRQ0ACwsgFCAJaEEDdiAEaiAMcUECdGsoAgAiDSAOTw0CIAlBAWsgCXEhCSAPIA1BBHRqKAIEIAtHDQALIAAoAggiBigCCCIIIA8gDUEEdGoiBCgCCCILTQ0CIAdBEGogBigCACALQagBbGoQ4QEgBEEIaiIGIAAoAgwiC0EIaiIIKAIANgIAIARBDGogACgCEC0AADoAACAIKAIAIgQgC0EEaigCAEYEQCALIAQQ2wUgCygCCCEECyALKAIAIARBqAFsaiAHQRBqQagBENkLGiALIARBAWo2AggMBQsgACgCDCIOQQhqKAIAIQ0gACgCEC0AACERIAdBwAFqQgA3AwAgB0HIAWpCADcDACAHIAcpAhA3A7gBAn8gACgCFC0AAEUEQEEAIQlBACEMIAEEQCAHQRBqIgRBGGogAUEYaigCADYCACAEQRBqIAFBEGopAgA3AwAgBEEIaiABQQhqKQIANwMAIAcgASkCADcDEEEBIQwLIAdB8AFqIgRBGGogB0EQaiIGQRhqKAIANgIAIARBEGogBkEQaikDADcDACAEQQhqIAZBCGopAwA3AwAgByAHKQMQNwPwASALIQhBAAwBC0EAIQhBACEJIAEEQCAHQRBqIgRBGGogAUEYaigCADYCACAEQRBqIAFBEGopAgA3AwAgBEEIaiABQQhqKQIANwMAIAcgASkCADcDEEEBIQkLIAdB0AFqIgRBGGogB0EQaiIGQRhqKAIANgIAIARBEGogBkEQaikDADcDACAEQQhqIAZBCGopAwA3AwAgByAHKQMQNwPQAUEAIQwgCwshBiANIgQgDkEEaigCAEYEQCAOIA0Q2wUgDkEIaigCACEECyAOKAIAIARBqAFsaiIFQgA3AgQgBUEENgIAIAUgDDYCLCAFIAY2AiggBSAINgIkIAUgCTYCTCAFQQxqQgA3AgAgBUEUakIANwIAIAVBHGpCADcCACAFQTBqIAcpA/ABNwIAIAVBOGogB0HwAWoiBkEIaikDADcCACAFQUBrIAZBEGopAwA3AgAgBUHIAGogBkEYaigCADYCACAFQQA2AmwgBUH4AGpBADYCACAFQZQBakEENgIAIAVB0ABqIAcpA9ABNwIAIAVB2ABqIAdB0AFqIgZBCGopAwA3AgAgBUHgAGogBkEQaikDADcCACAFQegAaiAGQRhqKAIANgIAIAVB/ABqIAcpA7gBNwIAIAVBhAFqIAdBuAFqIgZBCGopAwA3AgAgBUGMAWogBkEQaikDADcCACAFQZ4BakIANwEAIAVBmAFqQgA3AgAgDkEIaiAEQQFqNgIAIApBBGooAgAiBCAQIAooAgAiCXEiBWooAABBgIGChHhxIgxFBEBBBCEGA0AgBSAGaiAGQQRqIQYgCXEiBSAEaigAAEGAgYKEeHEiDEUNAAsLIApBGGooAgAhBiAMaEEDdiAFaiAJcSIFIARqLAAAIghBAE4EQCAEKAIAQYCBgoR4cWhBA3YiBSAEai0AACEICyAIQQFxIQwCQCAKQQhqIg4oAgANACAMRQ0AIAdBCGogCiAKKAIQIAYQhQEgCkEEaigCACIEIBAgCigCACIJcSIIaigAAEGAgYKEeHEiD0UEQEEEIQUDQCAFIAhqIAVBBGohBSAJcSIIIARqKAAAQYCBgoR4cSIPRQ0ACwsgD2hBA3YgCGogCXEiBSAEaiwAAEEASA0AIAQoAgBBgIGChHhxaEEDdiEFCyAEIAVqIBM6AAAgBUEEayAJcSAEakEEaiATOgAAIA4gDigCACAMayIJNgIAIApBDGoiDCgCAEEBaiEIIAwgCDYCACAEIAVBAnRrQQRrIAY2AgAgBiAKQRRqKAIAIgRHBEAgCkEYaigCACEFDAQLIAggCWogCkEYaigCACIFayEEIAQgBiAFa00EQCAGIQQMBAsgBSAEIAVqIgRLDQJBBCEJIARBBHQhCCAEQf////8AcSAERkECdCEMAkAgBkUEQEEAIQkMAQsgByAGQQR0NgIUIAcgEigCADYCEAsgByAJNgIYIAdBkAJqIAggDCAHQRBqEPkGIAcoApACRQRAIAcoApQCIQggCkEUaiAENgIAIAogCDYCEAwECyAHQZgCaigCACIARQ0CIAcoApQCIABB3ObDACgCACIAQY8HIAAbEQAAAAsgDSAOQcTxwAAQrwgACyALIAhB/OPAABCvCAALEN8JAAsgBCAFRgRAIBIgBBD8BSAKQRhqKAIAIQULIApBGGogBUEBaiIINgIAIAooAhAgBUEEdGoiBCANNgIIIAQgCzYCBCAEIBA2AgAgBEEMaiAROgAAIAYgCE8NASASKAIAIAZBBHRqQQhqIQYLIAAoAgwiCygCCCIIIAYoAgAiBE0NASALKAIAIARBqAFsaiEEIABBHGooAgAhCyAAKAIYIQYCQCAAKAIULQAARQRAIAdBEGoiCCABIAAoAjAQ0wMgBiAIIAIgAyAAKAIkIABBKGooAgAgACgCLCoCACAEIAsoAiwRGwAaDAELIAdBEGoiCCABIAAoAiAQwAMgBiAIIAAoAiQgAEEoaigCACACIAMgACgCLCoCACAEIAsoAiwRGwAaCyAHQaACaiQADwsgBiAIQfTxwAAQrwgACyAEIAhBjOTAABCvCAALlRACMn0BfyMAQTBrIjgkACABQRRqKgIAIREgAUEYaioCACEWIAEqAhAhHCA4QSRqIAEqAgQiDiABKgIIIg+UIgYgBpIiBiABKgIAIgogASoCDCIMlCIJIAmSIgmTIgg4AgAgOEEcaiAGIAmSIgc4AgAgOEEoaiAPIA+UIgYgDCAMlCIXIAogCpQiEpMiDSAOIA6UIgmTkiILOAIAIDhBGGogCSANkiAGkyINOAIAIDggCiAPlCIQIBCSIhMgDiAMlCIQIBCSIhiSIhA4AiAgOCAKIA6UIhQgFJIiGSAPIAyUIhQgFJIiHZMiFDgCFCA4IBMgGJMiEzgCECA4IBkgHZIiGDgCDCA4IBIgF5IgCZMgBpMiGTgCCCACQRhqKgIAIhcgFpMhFSACQRRqKgIAIhYgEZMhGiACKgIQIhIgHJMhGyASIQYgFiEJIBchESAFQQFxBEAgFyAbIBmUIBogGJSSIBUgE5SSIgYgE5STIREgFiAGIBiUkyEJIBIgGSAGlJMhBgsgBUECcQRAIBEgGyAUlCAaIA2UkiAVIAeUkiITIAeUkyERIAkgEyANlJMhCSAGIBQgE5STIQYLIAVBBHEEQCARIBsgEJQgGiAIlJIgFSALlJIiByALlJMhESAJIAcgCJSTIQkgBiAQIAeUkyEGCyADKgIIISogAyoCACErIAMqAgQhLCAEKgIIIS0gBCoCACEuIAQqAgQhLyAKIAIqAgAiB5QiJCAPIAJBCGoqAgAiC5QiHpIgDiACQQRqKgIAIg2UIiMgDCACQQxqKgIAIhCUIiKSIjCSvEGAgICAeHFBgICA/ANyviEIIABBIGogOEEIaiIBQSBqIgIoAgA2AgAgAEEYaiABQRhqIgMpAwA3AgAgAEEQaiABQRBqIgQpAwA3AgAgAEEIaiABQQhqIgEpAwA3AgAgACA4KQMINwIAIAEqAgAhFCAEKgIAIRMgAioCACEYIAMqAgAhGSA4KgIMIRwgOCoCCCEdIDgqAhwhHyA4KgIUISAgOCoCJCEhIABBzAFqIAggHiAjICQgIpIiMZKSlDgCACAAQcgBaiAIIA4gB5QiJSAMIAuUIjIgCiANlCImk5IgDyAQlCIzk5Q4AgAgAEHEAWogCCAMIA2UIjQgCiALlCInkiAOIBCUIjWTIA8gB5QiKJOUOAIAIAAgCCAPIA2UIikgDCAHlCI2IAogEJQiN5MgDiALlCIMk5KUOALAASAAQbwBaiAVOAIAIABBuAFqIBo4AgAgACAbOAK0ASAAQbABaiAIIAogB4yUICOTQwAAAACSIB4gIpKSQwAAAD+UlDgCACAAQawBaiAIIAdDAAAAAJQiFSAKQwAAAACUIgogDJKSIClDAAAAAJIgNiA3kiIak5JDAAAAP5SUOAIAIABBqAFqIAggJyAOQwAAAACUIg6TIA1DAAAAAJQiG5MgKEMAAAAAkiA0IDWSIiKSkkMAAAA/lJQ4AgAgAEGkAWogCCApIBWTIAqTIAxDAAAAAJIgGpKSQwAAAD+UlDgCACAAQaABaiAIIDBDAAAAACAekyIKICSTkkMAAAA/lJQ4AgAgAEGcAWogCCAmIA9DAAAAAJQgC0MAAAAAlCIMkpIgJUMAAAAAkiAyIDOSIhWTkkMAAAA/lJQ4AgAgAEGYAWogCCAOICggG5KSICdDAAAAAJIgIpOSQwAAAD+UlDgCACAAQZQBaiAIICUgD0MAAACAlCAMk5IgJkMAAAAAkiAVkpJDAAAAP5SUOAIAIAAgCCAxIAogI5OSQwAAAD+UlDgCkAEgAEHEAGogCyALlCIIIBAgEJQiCiAHIAeUIg6TIgwgDSANlCIPk5I4AgAgAEFAayANIAuUIhUgFZIiFSAHIBCUIhogGpIiGpM4AgAgAEE8aiAHIAuUIhsgG5IiGyANIBCUIh4gHpIiHpI4AgAgAEE4aiAVIBqSOAIAIABBNGogDyAMkiAIkzgCACAAQTBqIAcgDZQiByAHkiIHIAsgEJQiCyALkiILkzgCACAAQSxqIBsgHpM4AgAgAEEoaiAHIAuSOAIAIAAgDiAKkiAPkyAIkzgCJCAAQYwBaiAhIBIgLpMiEpQgGSAWIC+TIhaUkyAYQwAAAACUIgiSOAIAIABBiAFqIBkgFyAtkyIXlCAhQwAAAACUIg+SIBIgGJSTOAIAIABBhAFqIBlDAAAAAJQiCiAXICGUkyAYIBaUkjgCACAAQYABaiATIBKUIBYgIJSTIB9DAAAAAJQiB5I4AgAgAEH8AGogFyAglCATQwAAAACUIg6SIBIgH5STOAIAIABB+ABqICBDAAAAAJQiCyAXIBOUkyAfIBaUkjgCACAAQfQAaiAcIBKUIBYgHZSTIBRDAAAAAJQiDZI4AgAgAEHwAGogFyAdlCAcQwAAAACUIgySIBIgFJSTOAIAIAAgHUMAAAAAlCISIBcgHJSTIBQgFpSSOAJsIABB6ABqICEgBiArkyIGlCAZIAkgLJMiCZSTIAiSOAIAIABB5ABqIBkgESAqkyIRlCAPkiAGIBiUkzgCACAAQeAAaiAKIBEgIZSTIBggCZSSOAIAIABB3ABqIBMgBpQgCSAglJMgB5I4AgAgAEHYAGogESAglCAOkiAGIB+UkzgCACAAQdQAaiALIBEgE5STIB8gCZSSOAIAIABB0ABqIBwgBpQgCSAdlJMgDZI4AgAgAEHMAGogESAdlCAMkiAGIBSUkzgCACAAIBIgESAclJMgFCAJlJI4AkggOEEwaiQAC50RAhZ+CH8jAEEwayIbJAACQAJAAkACQAJAIAEpAwAiBFBFBEAgASkDCCIFUEUEQCABKQMQIgNQRQRAIAMgBHwiAyAEWgRAIAQgBX0iBSAEWARAAkACQCADQv//////////H1gEQCAbIAEvARgiATsBCCAbIAU3AwAgAUEgayABIANCgICAgBBUIhobIhlBEGsgGSADQiCGIAMgGhsiA0KAgICAgIDAAFQiGhsiGUEIayAZIANCEIYgAyAaGyIDQoCAgICAgICAAVQiGhsiGUEEayAZIANCCIYgAyAaGyIDQoCAgICAgICAEFQiGRshGiADQgSGIAMgGRsiA0KAgICAgICAgMAAVCEZIAEgA0IChiADIBkbIgdCP4enQX9zIBpBAmsgGiAZG2oiGmtBEHRBEHUiGUEASA0CIBtCfyAZrSIGiCIDIAWDNwMQIAMgBVQNDCAbIAE7AQggGyAENwMAIBsgAyAEgzcDECADIARUDQxBoH8gGmtBEHRBEHVB0ABsQbCnBWpBzhBtIgFB0QBPDQEgBCAGQj+DIgOGIghCIIgiEiABQQR0IgFB8K7DAGopAwAiBkL/////D4MiBH4iCkIgiCETIAZCIIgiBiAIQv////8PgyIIfiIJQiCIIRQgFCATIAYgEn58fCAKQv////8PgyAEIAh+QiCIfCAJQv////8Pg3xCgICAgAh8QiCIIRVCAUEAIBogAUH4rsMAai8BAGprQT9xrSIJhiIIQgF9IQwgBSADhiIFQiCIIgogBH4hAyAFQv////8PgyILIAZ+IQUgA0L/////D4MgBCALfkIgiHwgBUL/////D4N8QoCAgIAIfEIgiCEQIAYgCn4hCiAFQiCIIQUgA0IgiCERIAFB+q7DAGovAQAhAQJ/IAYgByAHQn+FQj+IhiIDQiCIIhZ+IRcgA0L/////D4MiAyAGfiIHQiCIIQ0gBCAWfiILQiCIIQ4CQAJAIAtC/////w+DIAMgBH5CIIh8IAdC/////w+DfEKAgICACHxCIIgiGCANIA4gF3x8fEIBfCILIAmIpyIZQZDOAE8EQCAZQcCEPUkNASAZQYDC1y9JDQJBCEEJIBlBgJTr3ANJIhobIRxBgMLXL0GAlOvcAyAaGwwDCyAZQeQATwRAQQJBAyAZQegHSSIaGyEcQeQAQegHIBobDAMLIBlBCUshHEEBQQogGUEKSRsMAgtBBEEFIBlBoI0GSSIaGyEcQZDOAEGgjQYgGhsMAQtBBkEHIBlBgK3iBEkiGhshHEHAhD1BgK3iBCAaGwshGiAVfCEPIAsgDIMhAyAcIAFrQQFqIR4gCyAKIBF8IAV8IBB8IhF9QgF8IhAgDIMhBUEAIQEDQCAZIBpuIR0CQAJAAkAgAUERRwRAIAEgAmoiICAdQTBqIh86AAAgECAZIBogHWxrIhmtIAmGIgogA3wiBFYNDSABIBxHDQMgAUEBaiIBQREgAUERSxshGUIBIQQDQCAEIQcgBSEGIAEgGUYNAiAHQgp+IQQgASACaiADQgp+IgMgCYinQTBqIho6AAAgAUEBaiEBIAMgDIMiAyAGQgp+IgVaDQALIAFBAWtBEU8NAiAFIAN9IgwgCFohGSAEIAsgD31+IgkgBHwhCiAJIAR9IgkgA1gNDiAIIAxWDQ4gASACakEBayEcIAZCCn4gAyAIfH0hCyAIIAl9IQwgCSADfSENQgAhBgNAAkAgCSADIAh8IgRWDQAgBiANfCADIAx8Wg0AQQEhGQwQCyAcIBpBAWsiGjoAACAGIAt8Ig4gCFohGSAEIAlaDRAgBiAIfSEGIAQhAyAIIA5YDQALDA8LQRFBEUGMu8MAEK8IAAsgGUERQZy7wwAQrwgACyABQREQ1gsACyABQQFqIQEgGkEKSSAaQQpuIRpFDQALQfC6wwBBGUHgusMAEKIJAAtBoLrDAEEtQdC6wwAQogkACyABQdEAQbC5wwAQrwgAC0HQp8MAQR1BkKjDABCiCQALQdiswwBBN0GAusMAEKIJAAtBkKzDAEE2QfC5wwAQogkAC0Hkq8MAQRxB4LnDABCiCQALQbSrwwBBHUHQucMAEKIJAAtBh6vDAEEcQcC5wwAQogkACyABQQFqIRkCQCABQRFJBEAgECAEfSIFIBqtIAmGIgdaIQEgCyAPfSIJQgF8IQggCUIBfSIJIARYDQEgBSAHVA0BIBMgAyAHfCIEfCAUfCAVfCAGIBIgFn1+fCAOfSANfSAYfSEGIA0gDnwgGHwgF3whBUIAIA8gAyAKfHx9IQxCAiARIAQgCnx8fSENA0ACQCAEIAp8Ig4gCVQNACAFIAx8IAYgCnxaDQAgAyAKfCEEQQEhAQwDCyAgIB9BAWsiHzoAACADIAd8IQMgBSANfCELIAkgDlYEQCAEIAd8IQQgBiAHfCEGIAUgB30hBSAHIAtYDQELCyAHIAtYIQEgAyAKfCEEDAELIBlBERDWCwALAkACQAJAIAQgCFoNACABRQ0AIAQgB3wiAyAIVA0BIAggBH0gAyAIfVoNAQsgBCAQQgR9WCAEQgJacQ0BIABBADYCAAwECyAAQQA2AgAMAwsgACAZNgIEIAAgAjYCACAAQQhqIB47AQAMAgsgAyEECwJAAkACQCAEIApaDQAgGUUNACAEIAh8IgMgClQNASAKIAR9IAMgCn1aDQELIAQgB0JYfiAFfFggBCAHQhR+WnENASAAQQA2AgAMAgsgAEEANgIADAELIAAgATYCBCAAIAI2AgAgAEEIaiAeOwEACyAbQTBqJAAPCyAbQQA2AhgjAEEgayIAJAAgACAbNgIEIAAgG0EQajYCACAAQQhqIgFBEGogG0EYaiICQRBqKQIANwMAIAFBCGogAkEIaikCADcDACAAIAIpAgA3AwhBACAAQfTAwwAgAEEEakH0wMMAIAFBoKjDABCeBAALwxEDFn8efQN+IwBBgANrIgYkACAGQSBqIAQgASAFKAKIARECACAGQTRqKgIAIR0gBioCKCEeIAZBMGoqAgAhHyAGKgIkISAgBioCICEcIAYqAiwhJAJ/AkAgAiADKAIQEQUAIgxBIGooAgAiCUUNACAGQQA2AgggBkIENwMAIAZBABCJBiAGKAIAIAYoAggiB0EDdGpCgICAgPD///9+NwIAIAYgB0EBajYCCCAGQRBqIAYQ6wJBAiENAkAgBigCEEEBRw0AIB0gHpNDAAAAP5QhISAfICCTQwAAAD+UISIgJCAck0MAAAA/lCEjIB4gHZJDAAAAv5QhHSAgIB+SQwAAAL+UIR4gHCAkkkMAAAC/lCEfIAZB9QFqIREgBkHtAWohEiAGQeABakEFciETQ///f38hICAGQbsBaiIUQQhqIRUgDEEgaiEZA0AgICAGKgIYjF8NAQJAAkACQCAGKAIUIgcgCUkEQCAGQSBqIAwoAhggB0EHdGpBgAEQ2QsaIAYtAJgBIgoEQCAGKAKMASIIIAwoAjwiB0khCSAIQQxsIAwoAjQiCGpBACAJG0EIakEAIAkbIRYgBigCiAEiCyAHSSEJIAggC0EMbGpBACAJG0EIakEAIAkbIRcgBigChAEiCyAHSSEJIAggC0EMbGpBACAJG0EIakEAIAkbIRggBigCgAEiCSAHSSEHIAggCUEMbGpBACAHG0EIakEAIAcbIQ4LIAYqAiAhHCAGKgIkISQgBioCKCElIAYqAiwhJiAGKgIwIScgBioCNCEoIAYqAjghKSAGKgI8ISogBioCQCErIAYqAkQhLCAGKgJIIS0gBioCTCEuIAYqAlAhLyAGKgJUITAgBioCWCExIAYqAlwhMiAGKgJgITMgBioCZCE0IAYqAmghNSAGKgJsITYgBioCcCE3IAYqAnQhOCAGKgJ4ITkgBiAhIB0gBioCfJKSOAK8AiAGICEgHSA5kpI4ArgCIAYgISAdIDiSkjgCtAIgBiAhIB0gN5KSOAKwAiAGICIgHiA2kpI4AqwCIAYgIiAeIDWSkjgCqAIgBiAiIB4gNJKSOAKkAiAGICIgHiAzkpI4AqACIAYgIyAfIDKSkjgCnAIgBiAjIB8gMZKSOAKYAiAGICMgHyAwkpI4ApQCIAYgIyAfIC+SkjgCkAIgBiAdIC6SICGTOAKMAiAGIB0gLZIgIZM4AogCIAYgHSAskiAhkzgChAIgBiAdICuSICGTOAKAAiAGIB4gKpIgIpM4AvwBIAYgHiApkiAikzgC+AEgBiAeICiSICKTOAL0ASAGIB4gJ5IgIpM4AvABIAYgHyAmkiAjkzgC7AEgBiAfICWSICOTOALoASAGIB8gJJIgI5M4AuQBIAYgHyAckiAjkzgC4AEgBkHAAmogBkHgAWoQhgIgBioCxAIgIF0hByAGKgLAAiAgXSEIIAYqAsgCICBdIQkgBioCzAIgIF0hCyAKRQ0CIAZBADoA3wIgCEUNASAORQ0BIA4oAgAhCiAGIAU2AvACIAYgBDYC7AIgBiABNgLoAiAGIAA2AuQCIAYgBkHfAmo2AuACIAIgCiAGQeACakGQrcIAIAMoAgwRAQAgBi0A3wJFDQEMAwsgByAJQfyEwgAQrwgACwJAIAdFDQAgGEUNACAYKAIAIQogBiAFNgLwAiAGIAQ2AuwCIAYgATYC6AIgBiAANgLkAiAGIAZB3wJqNgLgAiACIAogBkHgAmpBkK3CACADKAIMEQEAIAYtAN8CDQILAkAgCUUNACAXRQ0AIBcoAgAhCiAGIAU2AvACIAYgBDYC7AIgBiABNgLoAiAGIAA2AuQCIAYgBkHfAmo2AuACIAIgCiAGQeACakGQrcIAIAMoAgwRAQAgBi0A3wINAgsgC0UNACAWRQ0AIBYoAgAhCiAGIAU2AvACIAYgBDYC7AIgBiABNgLoAiAGIAA2AuQCIAYgBkHfAmo2AuACIAIgCiAGQeACakGQrcIAIAMoAgwRAQAgBi0A3wINAQsgCK0gB61CAYaEIAmtQgKGhCALrUIDhoQhPCAUIAYpA8ACNwAAIBUgBikDyAI3AAAgEyAGKADZATYAACATQQNqIAZB3AFqKAAANgAAIBIgBigA0gE2AAAgEkEDaiAGQdUBaigAADYAACAGQQI6AOQBIAZBAjoA7AEgBkECOgD0ASARIAYoAMsBNgAAIBFBA2ogBkHOAWooAAA2AAAgBkECOgD8ASAGIBUpAAA3A+gCIAYgFCkAADcD4AIgGSgCACEJIAwoAjwhCkIAIToDQCA6IjtCAXwhOgJAIDwgO4hCAYNQDQAgO6chByAGLQCYAQRAIAdBAnQiCCAGQeACamoqAgAiHCAgXUUNASAGQeABaiAHQQN0ai0ABCIHQQJGDQEgB0EBcSANIAYgCGpBgAFqKAIAIApJIgcbIQ0gHCAgIAcbISAMAQsgB0ECdCIHIAZqQYABaigCACIPIAlPDQAgBkHgAmogB2oqAgCMIRwgBigCCCIHIQggBigCBCAHRgRAIAYgBxCJBiAGKAIIIQgLIAYoAgAiCyAIQQN0aiIQIBw4AgQgECAPNgIAIAYgCEEBajYCCCALIAdBA3RqIggqAgQhHCAIKAIAIQ8CQCAHRQRAQQAhCAwBCwNAQQBBfyALIAdBAWsiEEEBdiIIQQN0aiIaQQRqKgIAIiQgHF8iGxtBAUECIBsbIBwgJF8bQQNrQX5JBEAgByEIDAILIAsgB0EDdGogGikCADcCACAIIQcgEEEBSw0ACwsgCyAIQQN0aiIHIBw4AgQgByAPNgIACyA6QgRSDQALIAZBEGogBhDrAiAGKAIQQQFGDQEMAgsLAkAgBigCBCIARQ0AIABBA3RFDQAgBigCABCsAQtBAQwCCwJAIAYoAgQiAEUNACAAQQN0RQ0AIAYoAgAQrAELIA1B/wFxIgBBAkYNACAAQQBHDAELQQILIQAgBkGAA2okACAAQQJHIABxC50QAh5/AX4jAEHQAWsiBCQAIARB4ABqIAEQnwEgASgCQCENQQQhA0EEIQUCQAJAAkACQAJAAkACQAJAAkACQCABQcgAaigCACIPBEAgD61CDH4iIEIgiKciBg0GICCnIgdBAEgNBiAGRUECdCEGIAcEfyAHIAYQ7goFIAYLIgVFDQELIAUgDSAHENkLIRcgASgCTCEHIAFB1ABqKAIAIhAEQCAQrUIMfiIgQiCIpyICDQYgIKciCEEASA0GIAJFQQJ0IQUgCAR/IAggBRDuCgUgBQsiA0UNAgsgAyAHIAgQ2QshGEEAIQ0gASgCWCIFBEBBBCEHAkAgAUHgAGooAgAiEUUEQEEAIQhBBCESDAELIBGtQgx+IiBCIIinIgINByAgpyIIQQBIDQcgAkVBAnQhAyAIBH8gCCADEO4KBSADCyISRQ0ECyASIAUgCBDZCxogBCABQeQAahCvBCAEKAIMIAQoAghqIgUEQCAFrUIYfiIgQiCIpyICDQcgIKciCUEASA0HIAJFQQJ0IQMgCQR/IAkgAxDuCgUgAwsiB0UNBQtBACEDIARBADYCyAEgBCAHNgLAASABQfwAaigCACECIAQgBTYCxAEgAUH0AGooAgAhCSACIAVLBEAgBEHAAWpBACACEO0FIAQoAsgBIQMgBCgCwAEhBwsgByADQRhsaiAJIAJBGGwQ2QsaIARByAFqIAIgA2oiBzYCACAEQTBqIAQpA8ABIiA3AwAgBEGgAWoiAkEYaiAHNgIAIAJBCGogBEEIaikDADcDACACQRBqICA3AwAgBCAEKQMANwOgAQsgASgCgAEiCARAQQQhE0EEIQ0gAUGIAWooAgAiBwRAIAdB/////wNxIgIgB0cNByAHQQJ0IgVBAEgNByACIAdGQQJ0IQMgBQR/IAUgAxDuCgUgAwsiDUUNCgsgDSAIIAdBAnQQ2QsaIAEoAowBIQkgAUGUAWooAgAiCARAIAhB/////wNxIgIgCEcNByAIQQJ0IgVBAEgNByACIAhGQQJ0IQMgBQR/IAUgAxDuCgUgAwsiE0UNCgsgEyAJIAhBAnQQ2QsaIAEoApgBIQNBBCEUIAFBoAFqKAIAIgUEQCAFQf////8AcSIGIAVHDQcgBUEEdCIJQQBIDQcgBSAGRkECdCEGIAkEfyAJIAYQ7goFIAYLIhRFDQYLIBQgAyAFQQR0ENkLGgsCQCABKAKkASIMRQRAQQAhCQwBC0EEIRVBBCEJIAFBrAFqKAIAIgMEQCADQf////8DcSIGIANHDQcgA0ECdCILQQBIDQcgAyAGRkECdCECIAsEfyALIAIQ7goFIAILIglFDQsLIAkgDCADQQJ0ENkLGiABKAKwASEKIAFBuAFqKAIAIgwEQCAMQf////8DcSIGIAxHDQcgDEECdCILQQBIDQcgBiAMRkECdCECIAsEfyALIAIQ7goFIAILIhVFDQsLIBUgCiAMQQJ0ENkLGiABKAK8ASEWAkAgAUHEAWooAgAiBkUEQEEEIQsMAQsgBkH/////A3EiAiAGRw0HIAZBAnQiDkEASA0HIAIgBkZBAnQhCiAOBH8gDiAKEO4KBSAKCyILRQ0ICyALIBYgBkECdBDZCxoLIARBIGoiAkEIaiIOIARB4ABqIgpBCGopAwA3AwAgAkEQaiIWIApBEGopAwA3AwAgAkEYaiIZIApBGGopAwA3AwAgAkEgaiIaIApBIGopAwA3AwAgAkEoaiIbIApBKGopAwA3AwAgAkEwaiIcIApBMGopAwA3AwAgAkE4aiIdIApBOGopAwA3AwAgBEEIaiIKIARBoAFqIgJBCGopAwA3AwAgBEEQaiIeIAJBEGopAwA3AwAgBEEYaiIfIAJBGGooAgA2AgAgBCAEKQNgNwMgIAQgBCkDoAE3AwAgAS0AyAEhAkHMAUEEEO4KIgFFDQcgASAEKQMgNwIAIAEgETYCYCABIBE2AlwgASASNgJYIAEgEDYCVCABIBA2AlAgASAYNgJMIAEgDzYCSCABIA82AkQgASAXNgJAIAFBOGogHSkDADcCACABQTBqIBwpAwA3AgAgAUEoaiAbKQMANwIAIAFBIGogGikDADcCACABQRhqIBkpAwA3AgAgAUEQaiAWKQMANwIAIAFBCGogDikDADcCACABIAI6AMgBIAEgBjYCxAEgASAGNgLAASABIAs2ArwBIAEgDDYCuAEgASAMNgK0ASABIBU2ArABIAEgAzYCrAEgASADNgKoASABIAk2AqQBIAEgBTYCoAEgASAFNgKcASABIBQ2ApgBIAEgCDYClAEgASAINgKQASABIBM2AowBIAEgBzYCiAEgASAHNgKEASABIA02AoABIAFB/ABqIB8oAgA2AgAgAUH0AGogHikDADcCACABQewAaiAKKQMANwIAIAEgBCkDADcCZCAAQYzEwgA2AgQgACABNgIAIARB0AFqJAAPCyAHIAZB3ObDACgCACIAQY8HIAAbEQAAAAsgCCAFQdzmwwAoAgAiAEGPByAAGxEAAAALIAggA0Hc5sMAKAIAIgBBjwcgABsRAAAACyAJIANB3ObDACgCACIAQY8HIAAbEQAAAAsgCSAGQdzmwwAoAgAiAEGPByAAGxEAAAALEN8JAAsgDiAKQdzmwwAoAgAiAEGPByAAGxEAAAALQcwBQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgBSADQdzmwwAoAgAiAEGPByAAGxEAAAALIAsgAkHc5sMAKAIAIgBBjwcgABsRAAAAC9cRAhF/B30jAEHABGsiAyQAIANBgAFqIgRBDGpCADcCACADQgA3AoQBIANBBDYCgAEgA0HYA2oiBSAEEFwgA0GABGoiBkEMakIANwIAIANCADcChAQgA0EENgKABCAEIAYQXCAAQQQ2AkggAEFAayIKQgA3AgAgAEE4akKAgICAwAA3AgAgAEEwakIANwIAIABBKGpCgICAgMAANwIAIABBIGpCADcCACAAQRhqIg1CgICAgMAANwIAIABBEGpCADcCACAAQoCAgIDAADcCCCAAQgQ3AgAgAEHUAGpCADcCACAAQcwAakIANwIAIAAgAykD2AM3AlwgAEHkAGogBUEIaiILKQMANwIAIABB7ABqIAVBEGopAwA3AgAgAEH0AGogBUEYaikDADcCACAAQfwAaiAFQSBqKQMANwIAIABBiAFqQgA3AgAgAEEENgKEASAAQZABakIANwIAIABBiAJqQQA2AgAgAEIANwLAASAAQgQ3AsgBIABB0AFqQoCAgIDAADcCACAAQdgBakIANwIAIABB4AFqQoCAgIDAADcCACAAQegBakIANwIAIABCBDcC8AEgAEH4AWpCgICAgMAANwIAIABBgAJqQgA3AgAgACADKQOAATcCmAEgAEGgAWogBEEIaiIIKQMANwIAIABBqAFqIARBEGopAwA3AgAgAEGwAWogBEEYaiIOKQMANwIAIABBuAFqIARBIGoiDykDADcCACAAQQE6AIwCIARBC2pCADcAACAFQQtqQgA3AAAgBkELakIANwAAIANBrQRqIgdBC2pCADcAACADQZoEaiIJQQtqQgA3AAAgA0IANwCDASADQgA3ANsDIANCADcAgwQgA0IANwCwBCADQgA3AJ0EIANB6ABqIgxBD2oiECAEQQ9qKAAANgAAIAxBCGoiDCAIKQAANwMAIAMgAykAgAE3A2ggA0HQAGoiCEEIaiIRIAspAAA3AwAgCEEPaiILIAVBD2ooAAA2AAAgAyADKQDYAzcDUCADQThqIgVBD2oiCCAGQQ9qKAAANgAAIAVBCGoiBSAGQQhqKQAANwMAIAMgAykAgAQ3AzggA0EgaiIGQQ9qIhIgB0EPaigAADYAACAGQQhqIgYgB0EIaikAADcDACADIAMpAK0ENwMgIANBCGoiB0EPaiITIAlBD2ooAAA2AAAgB0EIaiIHIAlBCGopAAA3AwAgAyADKQCaBDcDCCAOQgA3AwAgD0IANwMAIANB+AFqQf////sHNgIAIANB8AFqQoCAgIDw//+/fzcDACADQegBakL////7////v/8ANwMAIANB4AFqQv////sHNwMAIANB2AFqQoCAgIDw//+/fzcDACADQdABakL////7////v/8ANwMAIANByAFqQv////sHNwMAIARBQGtCgICAgPD//79/NwMAIARBMGpCADcDACAEQShqQoCAgPwDNwMAIANBjAJqQQA2AgAgA0GEAmpCADcCACAEQfwAakIANwIAIANCADcDkAEgA0KAgICAgICAwD83A4gBIANCADcDgAEgA0L////7////v/8ANwO4ASADQZgCakEAOgAAIARBkAFqQv////sHNwMAIANBrAJqQv////sHNwIAIANBtAJqQQA6AAAgBEHQAWpBADoAACADQcgCakL////7BzcDACADQZkCaiADKQNoNwAAIANBoQJqIAwpAwA3AAAgBEGoAWogECgAADYAACADQbUCaiADKQNQNwAAIANBvQJqIBEpAwA3AAAgA0HEAmogCygAADYAACADQewCakEAOgAAIANB5AJqQv////sHNwIAIARBiAJqQQA6AAAgBEGAAmpC////+wc3AwAgBEHgAWogCCgAADYAACADQdkCaiAFKQMANwAAIANB0QJqIAMpAzg3AAAgA0H8AmogEigAADYAACADQfUCaiAGKQMANwAAIANB7QJqIAMpAyA3AAAgA0GYA2ogEygAADYAACADQZEDaiAHKQMANwAAIANBiQNqIAMpAwg3AAAgA0GkA2pBADoAACADQZwDakL////7BzcCACADQcgDakIANwMAIANBwANqQgA3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NgIAIANBCGogAUEQaikCACINNwMAIAMgASkCCCIONwMAKAIAIQkgA0EkaiANNwIAIANBLGogCDYCACADIA43AhwgAyAFNgIYIANBATsBMCACKAIAIgUoAgAhASAFIAFBAWo2AgAgAUEATgRAIAYoAggiASAGQQRqKAIARgRAIAYgARDWBSAGKAIIIQELIAYoAgAgAUEMbGoiBCAFNgIIIAQgCTYCACAGIAFBAWo2AgggBCADQRhqNgIEIAZBLGoiASgCACEEIAFBADYCACAGKAIkIgEgBEEMbCIIaiEFIARFDQIgA0FAayEMA0AgAUEIaigCACIERQRAIAFBDGohAQwECyAEIAQoAhAiCyABKQIAIg2nIAsbNgIQIAMgBDYCQCADIA03AzgCQCALBEAgAygCQCEEDAELIAMoAkAiBCgCGEEYahD3BAsgBCAEKAIAIgRBAWs2AgAgBEEBRgRAIAwQ6QgLIAFBDGohASAIQQxrIggNAAsgBSEBDAILAAtBxNHAAEErQeDJwAAQogkACyAFIAFrIgUEQCAFQQxuQQxsIQQgBigCJCIFIAEgBWtBDG1BDGxqQQhqIQEDQCABKAIAIggoAgAhBSAIIAVBAWs2AgAgBUEBRgRAIAEQ6QgLIAFBDGohASAEQQxrIgQNAAsLIAZBADoANCADQThqIgFBEGogB0EQaikDADcDACABQQhqIAdBCGopAwA3AwAgAyAHKQMANwM4AkACQAJAAkACQAJAAkACQAJAAkACQCACIAEQpQRBAWsOAwECAwALQdjHwABBKEGozMAAEKIJAAsgCigCACICLQA0IAJBAToANARAQQAhAQNAIAEgAUEBaiABQQpLIAFBB09xGyEBIAItADQgAkEBOgA0DQALCyACKAIIIgZBDGwhBSACKAIAQQxrIQQgBkH/////A3EhB0EAIQEDQCABIAdGDQUgBUEMayEFIAFBAWohASAEQQxqIgQoAgAgCUcNAAsgAUEBayIBIAZPDQMgBEEIaigCACEBIAQpAgAhDSAEIARBDGogBRDbCxogAiAGQQFrNgIIIAFFDQQgASABKAIAIgVBAWs2AgAgAyABNgJAIAMgDTcDOCAFQQFGBEAgA0FAaxDpCAsgAkEAOgA0IAMoAhghASADQQI2AhggAUECRg0FIAAgATYCBCAAQQA2AgAgAEEYaiADKAIs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DBELIAIgAikDAEIwfDcDAAwQCyACIAIpAwBCLHw3AwAMDwsgAiACKQMAQkB9NwMADA4LIAIgAikDAEIEfDcDACAEKAIEIQEgBCACNgIMIARBDGogARDiBCIADQ4gAikDACEDIAFByABqKAIAIgAEfiADIABBDGxBDGtBDG6tQhR+fEIcfAUgA0IIfAshAyABQdQAaigCACIABH4gAyAAQQFrQf////8Dca1CDH58QhR8BSADQgh8CyEDAn4gA0IBfCABQdgAaigCAEUNABogAUH8AGooAgAhACABQeAAaigCACIFBH4gAyAFQQxsQQxrQQxurUIUfnxCHXwFIANCCXwLIQMgA0IIfCAARQ0AGiAAQQFrQf////8Bca1CHH4gA3xCJHwLIQMCfiADQgF8IAEoAoABRQ0AGiABQYgBaigCACIABH4gAyAAQQJ0QQRrrXxCDXwFIANCCXwLIQMgAUGUAWooAgAiAAR+IAMgAEECdEEEa618Qgx8BSADQgh8CyEDIANCCHwgAUGgAWooAgAiAEUNABogAyAAQQR0QRBrrXxCGHwLIQMgAgJ+IANCAXwgASgCpAFFDQAaIAFBrAFqKAIAIgAEfiADIABBAnRBBGutfEINfAUgA0IJfAshAyABQbgBaigCACIABH4gAyAAQQJ0QQRrrXxCDHwFIANCCHwLIQMgA0IIfCABQcQBaigCACIARQ0AGiADIABBAWtB/////wNxrUIDhnxCEHwLQgF8NwMADA0LIAIgAikDAEIEfDcDACAEKAIEIQEgBCACNgIMIARBDGogARDiBCIADQ0gAikDACEDIAFByABqKAIAIgAEfiADIABBDGxBDGtBDG6tQhR+fEIcfAUgA0IIfAshAyABQdQAaigCACIARQRAIAIgA0IIfDcDAAwNCyACIAMgAEEDdEEIa618QhB8NwMADAwLIAIgAikDAEIYfDcDAAwLCyACKQMAIQMgBCgCBCIAQQhqKAIAIgEEfiADIAFBAnRBBGutfEIQfAUgA0IMfAshAyACIAMgAEEcaigCACIAQQFrrUIZfEIYIAAbfELUAHw3AwAMCgsgAiACKQMAIgNCBHw3AwAgBCgCBCIFKAIAIQEgBSgCCCACIANCDHw3AwAgBCACNgIMQSRsIQYDQCAGBEAgAiACKQMAQix8NwMAIAZBJGshBiABQSBqIQAg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IAooAgQiAiAJKAIIIgBPDQogCkEEaiELIAkoAgAgAkH0AGxqIgAgATYCBCAAQQM2AgAgAEE0akEBNgIAIABBMGogHDgCACAAQSxqIBo4AgAgAEEoaiAEOAIAIABBJGogBDgCACAAQSBqIB44AgAgAEEcaiAfOAIAIABBGGogIjgCACAAQRBqQv////8PNwIAIABBDGogCDYCACAAQQhqIAw2AgAgAEE4agwBCyAJKAIIIgIgCUEEaigCAEYEQCAJIAIQ5AUgCSgCCCECCyAJQQhqIQsgCSgCACACQfQAbGoiACABNgIEIABBAzYCACAAQTRqQQE2AgAgAEEwaiAcOAIAIABBLGogGjgCACAAQShqIAQ4AgAgAEEkaiAEOAIAIABBIGogHjgCACAAQRxqIB84AgAgAEEYaiAiOAIAIABBEGpC/////w83AgAgAEEMaiAINgIAIABBCGogDDYCACAAQThqCyAGNgIAIAsgAkEBajYCACAHIAggEGo2AgAgDUEQaiQADwsgDyACENcLAAsgAiALENYLAAtBvPTAAEEdQcT1wAAQtAoAC0Gs+cAAQRtByKvBABC0CgALQaz5wABBG0HYq8EAELQKAAtBvPTAAEEdQcT1wAAQtAoAC0HOz8AAQRxBuNDAABCiCQALQaz5wABBG0Hoq8EAELQKAAsgAiAAQfirwQAQrwgAC9UKAh59BH8jAEFAaiIjJABDAACgNRB9IR0CQAJAAkACQAJAIANBDGoqAgAiBSAFlCADQRBqKgIAIgYgBpSSIANBFGoqAgAiCCAIlJJDAAAAAJIQfSIMQwAAAABbDQACQCAMQwAAgH9bDQAgDEMAAID/Ww0AIAyLIglDAAAANF8NASAJIAlDAAAANJRfDQELIAJBADYCvAEgAkEANgIcIAJBQGtBADYCACACQThqQgA3AgAgAUEMaiImKgIAIRogAkE0aiABICYgAUEEaioCACIeIAYgDJUiG4wiCpQgBSAMlSIQIAEqAgAiH5STIAggDJUiESABQQhqKgIAIiCUkyABQRBqKgIAIiEgCpQgECAalJMgESABQRRqKgIAIiKUk14bIiQqAggiBTgCACACQTBqICQqAgQiBjgCACACQSxqICQqAgAiCDgCACACQShqIAUgAyoCCCISkzgCACACQSRqIAYgAyoCBCITkzgCACACIAggAyoC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AgACQCAKKAIARQRAIAtB4ABqIAsoAgggCioCBCALKAIMKAKQAREWAAwBCyALQeAAaiICQQhqIAooAgQiAUEIaikCADcDACACQRBqIAFBEGopAgA3AwAgAkEYaiABQRhqKQIANwMAIAJBIGogAUEgaikCADcDACACQShqIAFBKGooAgA2AgAgCyABKQIANwNgCyALQTBqIAtB4ABqIAcQtAMgACgCCCIIIABBBGooAgBGBEAgACAIEPoFIAAoAgghCAsgACAIQQFqNgIIIAAoAgAgCEEDdGoiACAGNgIEIAAgBTYCACALQeAAaiIAQShqIAtBMGoiAUEoaigCADYCACAAQSBqIAFBIGopAwA3AwAgAEEYaiABQRhqKQMANwMAIABBEGoiBSABQRBqKQMANwMAIABBCGoiAiABQQhqKQMANwMAIAsgCykDMDcDYCADIAAQ0QUgACADIAQQ8QUgA0E4aiACKAIANgIAIAMgCykDYDcCMCADQcQAaiADKgIMIg04AgAgA0FAayANOAIAIAMgDTgCPCAAIAMgBBCUAiADQdgAaiAFKQMANwIAIANB0ABqIAIpAwA3AgAgAyALKQNgNwJIIAMtAGAiAEEBcQRAIANBADYCPAsgAEECcQRAIANBADYCQAsgAEEEcQRAIANBADYCRAsgAEEIcQRAIANCADcCSCADQdAAakEANgIACyAAQRBxBEAgA0HMAGpBADYCACADQdQAakIANwIACyAAQSBxBEAgA0HQAGpBADYCACADQdgAakIANwIACyALQZABaiQAC7EJAhJ/AX4gASgCACEJQQQhBQJAAkACQAJAAkACQAJAAkACQCABKAIIIgtFBEBBBCECDAELIAutQgx+IhRCIIinIgINBiAUpyIEQQBIDQYgAkVBAnQhAyAEBH8gBCADEO4KBSADCyICRQ0ICyACIAkgBBDZCyEOIAEoAgwhBiABQRRqKAIAIgkEQCAJQf////8BcSICIAlHDQYgCUEDdCIEQQBIDQYgAiAJRkECdCEDIAQEfyAEIAMQ7goFIAMLIgVFDQgLIAUgBiAJQQN0ENkLIQ8gASgCGCEGQQQhAgJAIAFBIGooAgAiDEUEQEEAIQVBBCEDDAELIAytQhR+IhRCIIinIgMNBiAUpyIFQQBIDQYgA0VBAnQhBCAFBH8gBSAEEO4KBSAECyIDRQ0B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NwIAIABBJGogCUGoAWopAwA3AgAgAEEsaiAJQbABaikDADcCACAAQTRqIAlBuAFqKAIANgIAIABBO2ogCUEOai0AADoAAAsgCUHAAWokACAADwsQzQsACxDOCwALQTxBBEHc5sMAKAIAIgBBjwcgABsRAAAAC5sIAhB/AX0jAEEgayIIJAAgCCAAQQxqKAIAIgM2AgAgCCABQQRqKAIAIgI2AgQCQCACIANGBEAgAyAAQRBqKAIARw0BIABBFGooAgAiAiAAQSRqKAIAIgtNBEACQAJAIAJFBEAgASgCACEKDAELIABBGGooAgAiBCACQQN0aiEFIAEoAgAhCiAEIQEDQCALQQN0Ig0gBGoiDiABIAEgBUYiCRsiBygCACIGIANPDQIgBygCBCIMIANPDQIgASANaiACQQFHQQN0IQ0gAkEBayECIAYgDEcEQCAKIAZBAnRqIgYqAgAhEiAGIAogDEECdGoiBigCADYCACAGIBI4AgALIAUgCRshBSAOIAQgCRshBCAHIA1qIQEgAg0ACwsgACgCACELAkACQCADQQFrIgUEQCALQQhqIQYgCkEIaiEMIANBAmshDSADQQJ0QQRqIQ5BACEHIAUhCQNAIAMgB0YNAwJAIAciAEEBaiIHIANGDQAgCiAAQQJ0aioCACESIAUgAGtBAXFBACEEIAAgDUcEQCAJQX5xIRAgBiEBIAwhAgNAIAIgAioCACASIAEqAgCUkzgCACACQQRrIhEgESoCACASIAFBBGsqAgCUkzgCACABQQhqIQEgAkEIaiECIBAgBEECaiIERw0ACwtFDQAgBEECdCIBIAogB0ECdGpqIgIgAioCACASIAsgACADbCAHakECdGogAWoqAgCUkzgCAAsgCUEBayEJIAYgDmohBiAMQQRqIQwgBSAHRw0ACyADRQ0BCyALIAUgAyAFbCIGakECdGoqAgAiEkMAAAAAWw0AIANBAmshDEEAIQdBACADQQJ0ayENIAsgBkECdGohCSADIQADQCAAIQEgCiAFIgBBAnRqIgIqAgAgEpUhEiACIBI4AgACQCABIANNBEAgAEUNAyAAQQFxIQVBACEEIAcgDEYNASAAQX5xIQ4gCSEBIAohAgNAIAIgAioCACASIAEqAgCUkzgCACACQQRqIg8gDyoCACASIAFBBGoqAgCUkzgCACABQQhqIQEg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IQcgBiAFayIMIAhBBGooAgAgBWtLBEAgCCAFIAwQhgYgCEEIaigCACEHCyAIKAIAIAdBBHRqIQQgDEECTwRAIAEgBWsiDkEDcSENIAVBf3MgAWpBA08EQCAOQXxxIQUDQCAEIAo2AgAgBEE4akJ/NwIAIARBNGogCToAACAEQTBqIAo2AgAgBEEoakJ/NwIAIARBJGogCToAACAEQSBqIAo2AgAgBEEYakJ/NwIAIARBFGogCToAACAEQRBqIAo2AgAgBEEIakJ/NwIAIARBBGogCToAACAEQUBrIQQgBUEEayIFDQALCyANBEADQCAEIAo2AgAgBEEIakJ/NwIAIARBBGogCToAACAEQRBqIQQgDUEBayINDQALCyAHIAxqQQFrIQcLIAxFDQAgBEJ/NwIIIAQgCToABCAEIAo2AgAgB0EBaiEHCyAIQQhqIAc2AgACQCAAKAIEIgVBCGoiCSgCACIHIAZPDQAgBiAHayEIIAggBUEEaigCACAHIgZrSwRAIAUgByAIEOYFIAVBCGooAgAhBgsgBSgCACAGQRhsaiEEIAhBAk8EQCABIAdrIgpBA3EhBSAHQX9zIAFqQQNPBEAgCkF8cSEHA0AgBEL////79///v/8ANwIAIARB2ABqQv////v///+/fzcCACAEQdAAakL////79///v383AgAgBEHIAGpC////+/f//7//ADcCACAEQUBrQv////v///+/fzcCACAEQThqQv////v3//+/fzcCACAEQTBqQv////v3//+//wA3AgAgBEEoakL////7////v383AgAgBEEgakL////79///v383AgAgBEEYakL////79///v/8ANwIAIARBEGpC////+////79/NwIAIARBCGpC////+/f//79/NwIAIARB4ABqIQQgB0EEayIHDQALCyAFBEADQCAEQv////v3//+//wA3AgAgBEEQakL////7////v383AgAgBEEIakL////79///v383AgAgBEEYaiEEIAVBAWsiBQ0ACwsgBiAIakEBayEGCyAIRQ0AIARC////+/f//79/NwIIIARC////+/f//7//ADcCACAEQRBqQv////v///+/fzcCACAGQQFqIQYLIAkgBjYCACAAKAIAIggoAgghBAsCQCABIARJBEAgCCgCACABQQR0aiIGIAE2AgggBkEM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w8AANgIAIAZCATcCDCAGQcTPwQA2AggjAEEgayIAJAAgAEGI1cAANgIEIAAgBkEHajYCACAAQQhqIgFBEGogBkEIaiIDQRBqKQIANwMAIAFBCGogA0EIaikCADcDACAAIAMpAgA3AwhBASAAQcjQwAAgAEEEakHI0MAAIAFBzM/BABCeBAALIABBFGooAgBBACEDIAFBGHRBGHUQpggiC0P//39+IAtD//9/fl0bIQtFBEAgCEEAEP8FIABBGGooAgAhAgsgAEEYaiACQQFqNgIAIAAoAhAgAkEGdGoiAEEAOgA8IABBADsAOSAAIAE6ADggAEIENwIsIABBADYCBCAAIAs4AgAgAEE0akEANgIAIABBJGpCADcCACAAQRxqQoCAgIDAADcCACAAQRRqQgQ3AgAgAEEMakIANwIAIABBCGpBkJLDADYCAAwFCyACQf8BcSABQf8BcUYEQCAEIQMMBQsgByAEQQZ0aiICLQA6IQogAkEBOgA6IAJBO2oiAi0AACEFIAIgAzoAAAJAIAoEQCADIAVNDQQgByAFQQZ0aiICQQE6ADwgAkE9aiADOgAADAELIAkgAzoAAAsgAEEUaigCACABQRh0QRh1EKYIIgtD//9/fiALQ///f35dGyELIAMiAkYEQCAIIAMQ/wUgACgCECEHIABBGGooAgAhAgsgAEEYaiACQQFqNgIAIAcgAkEGdGoiAkEBOgA8IAIgCjoAOiACIAM6ADkgAiABOgA4IAJCBDcCLCACQQA2AgQgAiALOAIAIAJBPWogBDoAACACQTtqIAU6AAAgAkE0akEANgIAIAJBJGpCADcCACACQRxqQoCAgIDAADcCACACQRRqQgQ3AgAgAkEMakIANwIAIAJBCGpBkJLDADYCACAAIAMQXQwECyAALQBhIgQgA08NAiAHIARBBnRqIgJBAToAPCACQT1qIAM6AAAgAEEUaigCACABQRh0QRh1EKYIIgtD//9/fiALQ///f35dGyELIAMiAkYEQCAIIAMQ/wUgACgCECEHIABBGGooAgAhAgsgACADOgBhIABBGGogAkEBajYCACAHIAJBBnRqIgJBADoAPCACQQE6ADogAiADOgA5IAIgAToAOCACQgQ3AiwgAkEANgIEIAIgCzgCACACQTtqIAQ6AAAgAkE0akEANgIAIAJBJGpCADcCACACQRxq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AiggAiACQQhqNgIQIAEgAkEYahCxCAwRCyACIABBCGopAwA3AwggAkEsakEBNgIAIAJCAjcCHCACQdyXwwA2AhggAkHrADYCFCACIAJBEGo2AiggAiACQQhqNgIQIAEgAkEYahCxCAwQCyACIABBCGopAwA3AwggAkEsakEBNgIAIAJCAjcCHCACQdyXwwA2AhggAkGLBzYCFCACIAJBEGo2AiggAiACQQhqNgIQIAEgAkEYahCxCAwPCyACIABBCGorAwA5AwggAkEsakEBNgIAIAJCAjcCHCACQcCXwwA2AhggAkGMBzYCFCACIAJBEGo2AiggAiACQQhqNgIQIAEgAkEYahCxCAwOCyACIABBBGooAgA2AgggAkEsakEBNgIAIAJCAjcCHCACQaCXwwA2AhggAkGNBzYCFCACIAJBEGo2AiggAiACQQhqNgIQIAEgAkEYahCxCAwNCyACIABBBGopAgA3AwggAkEsakEBNgIAIAJCATcCHCACQYyXwwA2AhggAkGOBzYCFCACIAJBEGo2AiggAiACQQhqNgIQIAEgAkEYahCxCAwMCyACQSxqQQA2AgAgAkGwlcMANgIoIAJCATcCHCACQfyWwwA2AhggASACQRhqELEIDAsLIAJBLGpBADYCACACQbCVwwA2AiggAkIBNwIcIAJB9JbDADYCGCABIAJBGGoQsQgMCgsgAkEsakEANgIAIAJBsJXDADYCKCACQgE3AhwgAkHglsMANgIYIAEgAkEYahCxCAwJCyACQSxqQQA2AgAgAkGwlcMANgIoIAJCATcCHCACQcyWwwA2AhggASACQRhqELEIDAgLIAJBLGpBADYCACACQbCVwwA2AiggAkIBNwIcIAJBtJbDADYCGCABIAJBGGoQsQgMBwsgAkEsakEANgIAIAJBsJXDADYCKCACQgE3AhwgAkGklsMANgIYIAEgAkEYahCxCAwGCyACQSxqQQA2AgAgAkGwlcMANgIoIAJCATcCHCACQZiWwwA2AhggASACQRhqELEIDAULIAJBLGpBADYCACACQbCVwwA2AiggAkIBNwIcIAJBjJbDADYCGCABIAJBGGoQsQgMBAsgAkEsakEANgIAIAJBsJXDADYCKCACQgE3AhwgAkH4lcMANgIYIAEgAkEYahCxCAwDCyACQSxqQQA2AgAgAkGwlcMANgIo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CyAAIAg4AgAgACALKQMgNwIEIAAgCykDeDcCECAAIAspA2g3AhwgACALKQNYNwIoIAAgAToANCAAQQxqIAtBKGooAgA2AgAgAEEYaiALQYABaigCADYCACAAQSRqIAtB8ABqKAIANgIAIABBMGogC0HgAGooAgA2AgAMAwsgAEEFOgA0DAILIAMgBCgCnAERDAAgBiAHKAKcAREMAJIhESADIAQoAqABEQwAIRAgBiAHKAKgAREMACISIBIgECAQIBJdGyAQIBBcGyEQQQELIQogC0HoAGogAyAEKAKAAREAACALQfgAaiAGIAcoAoABEQAAAkAgCyoCdCALKgKEAWBFBEAgC0EoaiAQOAIAIAsgETgCJCALIAo2AiAgC0GIAWogASAFIA4gDyAGIAcgAiAMIA0gAyAEIAggCSALQSBqED0gCy0AvAEiA0EERwRAIAtBIGoiAUEYaiALQYgBaiICQQxqKAIANgIAIAFBDGogAkEYaigCADYCACABQTBqIAJBJGooAgA2AgAgAUEkaiACQTBqKAIANgIAIAsgCykCjAE3AzAgCyALKQOYATcCJCALIAspAqQBNwNIIAsgCykDsAE3AjwgCyALKgKIATgCIAsgCyADOgBUDAELIAtBkAFqIBA4AgAgCyAROAKMASALIAo2AogBIAtBIGogASACIAwgDSADIAQgBSAOIA8gBiAHIAggCSALQYgBahA9CyAAIAspAyA3AgAgAEEwaiALQSBqIgFBMGopAwA3AgAgAEEoaiABQShqKQMANwIAIABBIGogAUEgaikDADcCACAAQRhqIAFBGGopAwA3AgAgAEEQaiABQRBqKQMANwIAIABBCGogAUEIaikDADcCAAsgC0HAAWokAAv2BgIbfQJ/IAACfSADQQhqKgIAIgRDAAAAAJQiBUMAAIA/IANBGGoqAgAiF5giDiADKgIAIgaUkyIHIAeSIQwgBiACKAIEQf////8HcSIfIAMqAgwiCiAMlCAGIAZDAAAAAJQiCCADQQRqKgIAIgdDAAAAAJQiC5MiCSAJkiIJlCAEIA4gB5QgBZMiDSANkiINlJOSvEGAgICAeHFyviIYlCAHIAIoAgBB/////wdxIiAgCiANlCAEIAyUIAcgCZSTkrxBgICAgHhxcr4iD5STIRIgBCAPlCAGIAIoAghB/////wdxIgIgCiAJ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ACAAKAIAIghBf0YNASAAIAhBAWo2AgAgAUUNACABKAIAIghBf0YNASABIAhBAWo2AgAgAkUNACACKAIAIghBf0YNASACIAhBAWo2AgAgA0UNACADKAIAIghBf0YNASADIAhBAWo2AgAgBEUNACAEKAIAIghBf0YNASAEIAhBAWo2AgAgBUUNACAFKAIAIghBf0YNAUEBIQsgBSAIQQFqNgIAIAdBEGoiCEEYaiABQQRqIglBCGooAgA2AgAgByAJKQIANwMgIAhBCGogAkEEaiIJQQhqKQIANwMAIAcgCSkCADcDECAHQTBqIglBGGogBEEEaiIKQQhqKAIANgIAIAcgCikCADcDQCAJQQhqIAVBDGopAgA3AwAgByAFKQIENwMwIAdBCGoiCiADQQRqIgxBBGooAgAiDTYCBCAKIAwoAgAgDSgCCEEHakF4cWo2AgAgB0GIAWogCCAAQQRqKAIAIABBCGooAgAiCCgCCEEHakF4cWogCCAJIAcoAgggBygCDCAGEJwBAkAgBygCiAEiCUECRg0AIAdB0ABqIghBMGoiCiAHQbwBaigCADYCACAIQShqIgwgB0G0AWopAgA3AwAgCEEgaiINIAdBrAFqKQIANwMAIAhBGGogB0GkAWopAgA3AwAgCEEQaiIOIAdBnAFqKQIANwMAIAhBCGogB0GUAWopAgA3AwAgByAHKQKMATcDUCAJRQ0AIAdBiAFqIghBMGogCigCADYCACAIQShqIAwpAwA3AwAgCEEgaiANKQMANwMAIAhBGGogB0HQAGoiC0EYaikDADcDACAIQRBqIA4pAwA3AwAgCEEIaiALQQhqKQMANwMAIAcgBykDUDcDiAFBACELCyAFIAUoAgBBAWs2AgAgBCAEKAIAQQFrNgIAIAMgAygCAEEBazYCACACIAIoAgBBAWs2AgAgASABKAIAQQFrNgIAIAAgACgCAEEBazYCAEEAIQAgC0UEQEE4QQQQ7goiAEUNAyAAQQA2AgAgACAHKQOIATcCBCAAQQxqIAdBkAFqKQMANwIAIABBFGogB0GYAWopAwA3AgAgAEEcaiAHQaABaikDADcCACAAQSRqIAdBqAFqKQMANwIAIABBLGogB0GwAWopAwA3AgAgAEE0aiAHQbgBaigCADYCAAsgB0HAAWokACAADwsQzQsACxDOCwALQThBBEHc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CpQiDTgCBCAGQQhqIAsgCpQiEDgCACAGQQxqIAwgCpQiDzgCACANIANBCGoqAgAiCpQgDyADKgIAIguUkyIMIAySIRMgCyADKgIMIhUgE5QgCyAQIAuUIA0gA0EEaioCACIMlJMiESARkiISlCAKIA8gDJQgECAKlJMiESARkiIUlJOSIBCTvEGAgICAeHEgAigCBEH/////B3FyviIZlCAMIBUgFJQgCiATlCAMIBKUk5IgDZO8QYCAgIB4cSACKAIAQf////8HcXK+IhqUkyIRIBGSIREgBiAPIB0gFSARlCALIAogGpQgCyAVIBKUIAwgFJQgCyATlJOSIA+TvEGAgICAeHEgAigCCEH/////B3FyviITlJMiEiASkiISlCAMIAwgE5QgCiAZlJMiFCAUkiIUlJOSIBOSkiABKAIIQf////8HcSAPvEGAgICAeHFyvpOUIA0gGyAVIBSUIAwgEZQgCiASlJOSIBqSkiABKAIAQf////8HcSANvEGAgICAeHFyvpOUIBAgHCAVIBKUIAogFJQgCyARlJOSIBmSkiABKAIEQf////8HcSAQvEGAgICAeHFyvpOUkpI4AgAgBCoCcCIKIA5eRQ0AIAQqAnwhGCAEKgJ4IRcgBCoCdCEWIAohDgsgCCAFQQxqIgVHDQALIAAgFjgCBCAAIA44AgAgAEEMaiAYOAIAIABBCGogFzgCACAEQZABaiQAC/YGAQh/IwBBMGsiAiQAIAIgADYCCAJAAkACQAJAAkACQCAAQQJJBEACQAJAIAEgAEHIAGxqKAIMIgVBAk8NACABIAVByABsai0AREUNAyABIABByABsakEQaigCACIGQQJPBEAgBiEFDAELIAEgBkHIAGxqLQBERQ0DIAEgAEHIAGxqQRRqKAIAIgdBAkkNASAHIQULIAVBAkGwgcMAEK8IAAsgASAHQcgAbGotAERFDQEgAkEANgIMIAEgAEHIAGxqKAIYIgNBAksNBSABIAVByABsaiADQQJ0akEMaiIEKAIAIABHDQIgASAFQcgAbGogA0ECdGoiCEEYaiIEKAIADQMgAiAIQSRqKAIAIgg2AhAgAiABIABByABsakEoaigCACIENgIUIAQgCEcNBCACIAEgBUHIAGxqIANBAWpB/wFxQQNwQQJ0akEkaigCACIFNgIQIAIgASAAQcgAbGoiAygC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QAJAAkAgDg4DAwECAAtBoIvCAEEoQZyfwgAQogkAC0ECIQ5BACAAQcQAaioCACAAKgIgIgKTIgYgASoCBCAAQSRqKgIAIgSTIgOUIABByABqKgIAIASTIgQgASoCACACkyIClJMiBSAFlCAEIAEqAgggAEEoaioCACIEkyIFlCAAQcwAaioCACAEkyIEIAOUkyIDIAOUIAQgApQgBiAFlJMiAiAClJKSQwAAAACSQwAAoDVdDQQaDAILIAEqAgQhCCABKgIAIQlBACABKgIIIABBKGoqAgAiApMgAEHEAGoqAgAgACoCICIGkyIFIABB7ABqKgIAIABBJGoqAgAiBJMiCpQgAEHIAGoqAgAgBJMiByAAQegAaioCACAGkyILlJMiAyADIAOUIAcgAEHwAGoqAgAgApMiA5QgAEHMAGoqAgAgApMiByAKlJMiAiAClCAHIAuUIAUgA5STIgMgA5SSkkMAAAAAkhB9IgWVlCAJIAaTIAIgBZWUIAggBJMgAyAFlZSSkotDAACgNV0NAxogACAAKAK8AUEBaiIONgK8ASAMQQhqIg1BIGogAUEgaigCADYCACANQRhqIAFBGGopAgA3AwAgDUEQaiABQRBqKQIANwMAIA1BCGogAUEIaikCADcDACAMIAEpAgA3AwggDkEESQ0CIA5BBEGsn8IAEK8IAAtBASEOQQAgACoCICABKgIAkyICIAKUIABBJGoqAgAgASoCBJMiAiAClJIgAEEoaioCACABKgIIkyICIAKUkkMAAAAAkkMAAKA1XQ0CGgsgACAONgK8ASAMQQhqIg1BIGogAUEgaigCADYCACANQRhqIAFBGGopAgA3AwAgDUEQaiABQRBqKQIANwMAIA1BCGogAUEIaikCADcDACAMIAEpAgA3AwgLIAAgDkEkbGoiAEFAayAMQShqKAIANgIAIABBOGogDEEgaikDADcCACAAQTBqIAxBGGopAwA3AgAgAEEoaiAMQRBqKQMANwIAIABBIGogDCkDCDcCAEEBCyAMQTBqJAALrQcCA38MfSMAQcACayIFJAAgBUEgakEANgIAIAVBwAFqQQA2AgAgBUIANwMYIAVCADcDuAEgBUKCgICAMDcDECAFQoCAgIAQNwMIIAVBzABqQQBB7AAQ2gsaIAVBkAJqIgdBCGoiBiACQRRqKAIANgIAIAYgBioC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QQhqKQMANwMAIAdBEGogCkEQaikDADcDACAHQRhqIApBGGopAwA3AwAgB0EgaiAKQSBqKQMANwMAIAdBKGogCkEoaikDADcDACAHQTBqIApBMGopAwA3AwAgB0E4aiAKQThqKAIANgIAIAkgCSkDkAc3A7AFIAkoAowHIQcgCSoChAchOSAJKgKAByE3IAkqAvwGITYgCSoC+AYhNSAJQfAEaiIKQQhqIBBBCGopAAA3AwAgCkEQaiAQQRBqKQAANwMAIApBGGogEEEYaikAADcDACAKQSBqIBBBIGopAAA3AwAgCkEoaiAQQShqKQAANwMAIApBMGogEEEwaikAADcDACAKQTdqIBBBN2opAAA3AAAgCUGwBGoiCkEIaiASQQhqKQAANwMAIApBEGogEkEQaikAADcDACAKQRhqIBJBGGopAAA3AwAgCkEgaiASQSBqKQAANwMAIApBKGogEkEoaikAADcDACAKQTBqIBJBMGopAAA3AwAgCkE3aiASQTdqKQAANwAAIAkgECkAADcD8AQgCSASKQAANwOwBCAJLQDMByEOIAktAIwIIRYgCS0AzAghCiAJQfADaiINQTdqIBFBN2opAAA3AAAgDUEwaiARQTBqKQAANwMAIA1BKGogEUEoaikAADcDACANQSBqIBFBIGopAAA3AwAgDUEYaiARQRhqKQAANwMAIA1BEGogEUEQaikAADcDACANQQhqIBFBCGopAAA3AwAgCSARKQAANwPwAyAJLQCMCSENIAlB4gNqICFBAmotAAA6AAAgCSAhLwAAOwHgAwsgCUGQB2oiC0E4aiAJQbAFaiIMQThqKAIANgIAIAtBMGogDEEwaikDADcDACALQShqIAxBKGopAwA3AwAgC0EgaiAMQSBqKQMANwMAIAtBGGogDEEYaikDADcDACALQRBqIAxBEGopAwA3AwAgC0EIaiAMQQhqKQMANwMAIAkgCSkDsAU3A5AHIAkgDjoAzAcgECAJKQPwBDcAACAQQQhqIAlB8ARqIgtBCGopAwA3AAAgEEEQaiALQRBqKQMANwAAIBBBGGogC0EYaikDADcAACAQQSBqIAtBIGopAwA3AAAgEEEoaiALQShqKQMANwAAIBBBMGogC0EwaikDADcAACAQQTdqIAtBN2opAAA3AAAgCSAWOgCMCCASIAkpA7AENwAAIBJBCGogCUGwBGoiC0EIaikDADcAACASQRBqIAtBEGopAwA3AAAgEkEYaiALQRhqKQMANwAAIBJBIGogC0EgaikDADcAACASQShqIAtBKGopAwA3AAAgEkEwaiALQTBqKQMANwAAIBJBN2ogC0E3aikAADcAACAJIAo6AMwIIBFBN2ogCUHwA2oiCkE3aikAADcAACARQTBqIApBMGopAwA3AAAgEUEoaiAKQShqKQMANwAAIBFBIGogCkEgaikDADcAACARQRhqIApBGGopAwA3AAAgEUEQaiAKQRBqKQMANwAAIBFBCGogCkEIaikDADcAACARIAkpA/ADNwAAIAkgDToAjAkgIUECaiAJQeIDai0AADoAACAhIAkvAeADOwAAIAkgOTgChAcgCSA3OAKAByAJIDY4AvwGIAkgNTgC+AYgB0EVdkH4AXEgB0EOdkH8AXEgB0EHdkH+AXEgB0H/AXFycnKtIWYgJygCACELIBkoAkQhDEIAIWQDQCBkImVCAXwhZAJAIGYgZYhCAYNQDQAgZachByAJLQDYAwRAIAdBAnQiDSAJQfgGamoqAgAiNSAGXUUNASAJQZAHaiAHQQZ0aiIKQTxqLQAAIgdBBEYNASAJIA1qQcADaigCACAMTw0BIBUgCikAADcAACAVQThqIApBOGooAAA2AAAgFUEwaiAKQTBqKQAANwAAIBVBKGogCkEoaikAADcAACAVQSBqIApBIGopAAA3AAAgFUEYaiAKQRhqKQAANwAAIBVBEGogCkEQaikAADcAACAVQQhqIApBCGopAAA3AAAgCUGOAmogCkE/ai0AADoAACAJIAovAD07AYwCIAlBkAJqIgpBN2ogCUHwBWoiDUE3aikAADcAACAKQTBqIA1BMGopAAA3AwAgCkEoaiANQShqKQAANwMAIApBIGogDUEgaikAADcDACAKQRhqIA1BGGopAAA3AwAgCkEQaiANQRBqKQAANwMAIApBCGogDUEIaikAADcDACAJIAkpAPAFNwOQAiAHIRwgNSEGDAELIAdBAnQiByAJakHAA2ooAgAiDiALTw0AIAlB+AZqIAdqKgIAjCE1IAkoAogCIgchCiAJKAKEAiAHRgRAIAlBgAJqIAcQ+gUgCSgCiAIhCgsgCSgCgAIiDSAKQQN0aiIWIDU4AgQgFiAONgIAIAkgCkEBajYCiAIg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F5MiBZSTIgMgA5IiA5QgESAQIAWUIBEgDpSTIgQgBJIiBJQgDCAMIA6UIBAgBpSTIgkgCZIiCZSTkpI4AgAgGSAFIBMgCZQgDCADlCAQIASUk5KSOAIAIAAgBiATIASUIBAgCZQgESADlJOSkjgCHAv6BgINfwF+IwBBgAFrIgMkAEEEIQlBBCEIAkACQAJAAkACQAJAIAEoAggiCkUNACAKrUIkfiIPQiCIpyIIDQMgD6ciBUEASA0DIAEoAgAhBCAIRUECdCECIAUEfyAFIAIQ7goFIAILIghFDQEgA0HQAGohBiAIIQIgCiEFA0AgBUUNASADQcgAaiIMIARBCGopAgA3AwAgBiAEQRBqKQIANwIAIAZBCGogBEEYaigCADYCACAEKQIAIQ8gBEEcaigCACIHKAIAIQsgByALQQFqNgIAIAMgDzcDQCALQQBIDQMgAiADKQNANwIAIAJBHGogBzYCACACQQhqIAwpAwA3AgAgAkEQaiAGKQMANwIAIAJBGGogA0HYAGooAgA2AgAgAkEgaiAEQSBqKAIANgIAIARBJGohBCACQSRqIQIgBUEBayIFDQALCyADQUBrIAFBDGoQnwEgASgCTCEHAkAgAUHUAGooAgAiBkUEQEEAIQQMAQsgBq1CGH4iD0IgiKciAg0DIA+nIgRBAEgNAyACRUECdCEFIAQEfyAEIAUQ7goFIAULIglFDQQLIAkgByAEENkLIQUgA0E4aiIJIANBQGsiAkE4aikDADcDACADQTBqIgQgAkEwaikDADcDACADQShqIgcgAkEoaikDADcDACADQSBqIgsgAkEgaikDADcDACADQRhqIgwgAkEYaikDADcDACADQRBqIg0gAkEQaikDADcDACADQQhqIg4gAkEIaikDADcDACADIAMpA0A3AwBB8ABBBBDuCiICRQ0EIAIgCjYCCCACIAo2AgQgAiAINgIAIAIgAykDADcCDCACQRRqIA4pAwA3AgAgAkEcaiANKQMANwIAIAJBJGogDCkDADcCACACQSxqIAspAwA3AgAgAkE0aiAHKQMANwIAIAJBPGogBCkDADcCACACQcQAaiAJKQMANwIAIAIgBjYCVCACIAY2AlAgAiAFNgJMIAIgASkCWDcCWCACQeAAaiABQeAAaikCADcCACACQegAaiABQegAaikCADcCACAAQdS+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QQhqIgcgAUEIaiIDKAIANgIAIANBADYCACACIBs3AwAgAkEYaiIIIAFBFGooAgA2AgAgAiABKQIMNwMQIAJBKGoiCSABQSBqKAIANgIAIAIgASkCGDcDICABKAIkIQogASgCKCELIAJBMGoiA0EYaiIMIAFBxABqKQIANwMAIANBEGoiDSABQTxqKQIANwMAIANBCGoiDiABQTRqKQIANwMAIAIgASkCLDcDMCACQdAAaiIDQRhqIg8gAUHkAGopAgA3AwAgA0EQaiIQIAFB3ABqKQIANwMAIANBCGoiESABQdQAaikCADcDACACIAEpAkw3A1AgAUHsAGooAgAhEiABQfAAaigCACETIAFB9ABqKAIAIRQgAUH4AGooAgAhFSABQfwAaigCACEWIAFBgAFqKAIAIRcgAUGEAWooAgAhGCACQfgAaiIZIAFBkAFqKAIANgIAIAIgAUGIAWopAgA3A3AgAUGUAWooAgAhGgJAAkACQCABQZwBaigCACIGRQRAQQQhAwwBCyAGrUIofiIbQiCIpyIDDQEgG6ciBUEASA0BIANFQQJ0IQQgBQR/IAUgBBDuCgUgBAsiA0UNAgsgAyAaIAUQ2QshAyAAQYgBaiACKQNwNwIAIABBkAFqIBkoAgA2AgAgAUGgAWooAgAhBCABQaQBai8BACEBIABBCGogBygCADYCACAAIAIpAwA3AgAgACACKQMQNwIMIABBFGogCCgCADYCACAAIAIpAyA3AhggAEEgaiAJKAIANgIAIAAgCzYCKCAAIAo2AiQgACACKQMwNwIsIABBNGogDikDADcCACAAQTxqIA0pAwA3AgAgAEHEAGogDCkDADcCACAAQeQAaiAPKQMANwIAIABB3ABqIBApAwA3AgAgAEHUAGogESkDADcCACAAIAIpA1A3AkwgAEGkAWogATsBACAAQaABaiAENgIAIABBnAFqIAY2AgAgAEGYAWogBjYCACAAQZQBaiADNgIAIABBhAFqIBg2AgAgAEGAAWogFzYCACAAQfwAaiAWNgIAIABB+ABqIBU2AgAgAEH0AGogFDYCACAAQfAAaiATNgIAIAAgEjYCbCACQYABaiQADwsQ3wkACyAFIARB3ObDACgCACIAQY8HIAAbEQAAAAviBQIJfQh/IwBB0ABrIg8kAEEEIRAgAyoCACACQRBqKgIAkyIO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KAIAIgRBf0YNASAAIARBAWo2AgAgAUUNACABKAIAIgRBf0YNASABIARBAWo2AgAgAkUNACACKAIAIgRBf0YNASACIARBAWo2AgAgA0UNACADKAIAIgRBf0YNASADIARBAWo2AgAgBkEYaiIMIABBBGoiBEEIaigCADYCACAGQRBqIg0gBCkCADcDACAGQQhqIg4gAUEEaiIEQQhqKQIANwMAIAYgBCkCADcDACAGQSBqIgRBGGoiDyACQQRqIgVBCGooAgA2AgAgBEEQaiIQIAUpAgA3AwAgBEEIaiIRIANBDGopAgA3AwAgBiADKQIENwMgIwBB4ABrIgVBzQBqIgdBC2pCADcAACAFQTpqIghBC2pCADcAACAFQSdqIglBC2pCADcAACAFQRRqIgpBC2pCADcAACAFQQFqIgtBC2pCADcAACAFQgA3AFAgBkHwAmoiBEGZAWogBSkATTcAACAEQaEBaiAHQQhqKQAANwAAIARBqAFqIAdBD2ooAAA2AAAgBUIANwA9IARBvQFqIAhBCGopAAA3AAAgBUIANwAqIAVCADcAFyAFQgA3AAQgBEHEAWogCEEPaigAADYAACAEQbUBaiAFKQA6NwAAIARB4AFqIAlBD2ooAAA2AAAgBEHZAWogCUEIaikAADcAACAEQdEBaiAFKQAnNwAAIARB/AFqIApBD2ooAAA2AAAgBEH1AWogCkEIaikAADcAACAEQe0BaiAFKQAUNwAAIARBmAJqIAtBD2ooAAA2AAAgBEGRAmogC0EIaikAADcAACAEQYkCaiAFKQABNwAAIARBIGpCADcCACAEQRhqIgVCADcCACAEQgA3AhAgBEH8AGpCADcCACAEQYQBakIANwIAIARBjAFqQQA2AgAgBEE/NgKoAiAEQaQCakEAOgAAIARBnAJqQv////sHNwIAIARBiAJqQQA6AAAgBEGAAmpC////+wc3AgAgBEHsAWpBADoAACAEQeQBakL////7BzcCACAEQdABakEAOgAAIARByAFqQv////sHNwIAIARBtAFqQQA6AAAgBEGsAWpC////+wc3AgAgBEGYAWpBADoAACAEQZABakL////7BzcCACAEQfgAakH////7BzYCACAEQfAAakKAgICA8P//v383AgAgBEHoAGpC////+////7//ADcCACAEQeAAakL////7BzcCACAEQdgAakKAgICA8P//v383AgAgBEHQAGpC////+////7//ADcCACAEQcgAakL////7BzcCACAEQUBrQoCAgIDw//+/fzcCACAEQv////v///+//wA3AjggBEEwakIANwIAIARBKGpCgICA/AM3AgAgBEKAgICAgICAwD83AgggBEIANwIAIAZBoAVqIgdBGGoiCSAMKAIANgIAIAdBEGoiCCANKQMANwMAIAdBCGoiCiAOKQMANwMAIAYgBikDADcDoAUgBCAHKQIANwIAIAUgCSgCADYCACAEQRBqIAgpAgA3AgAgBEEIaiAKKQIANwIAIAZBQGsiBSAEQawCENkLGiAJIA8oAgA2AgAgCCAQKQMANwMAIAogESkDADcDACAGIAYpAyA3A6AFIAUgBykCADcCHCAFQTRqIAkoAgA2AgAgBUEsaiAIKQIANwIAIAVBJGogCikCADcCACAEIAVBrAIQ2QsaIAUgBBC3CyADIAMoAgBBAWs2AgAgAiACKAIAQQFrNgIAIAEgASgCAEEBazYCACAAIAAoAgBBAWs2AgBBsAJBBBDuCiIARQ0CIABBADYCACAAQQRqIAZBQGtBrAIQ2QsaIAZBwAVqJAAgAA8LEM0LAAsQzgsAC0GwAkEEQdzmwwAoAgAiAEGPByAAGxEAAAALlQQCB38DfSMAQSBrIgUkAAJAAkACQAJAIAJBDGooAgAiByAAQQRqKAIAIgMgACgCACIGak8EQCABKAIIIQQgASgCACEJIAUgBzYCCCAFIAM2AgQgBSACKAIAIAZBAnRqIgE2AgAgAEEIaigCACICIARLDQEgA0EBaiIHIANqIQggCCAEIAJrIAdqSw0CIAUgAzYCGCAFIAM2AhQgBSAJIAJBAnRqNgIQIAVBEGogBRDDASEKIAAgACoCECILIAAqAhwgCiAAKgIgkiALIAAqAiyUk5SSIgogAEEYaioCACIMIAogDF0bIAAqAhQiDCAKIAxeGyIKOAIQIAIgA2oiBiAESw0DIAQgB2ogBmsgCEkNBAJAIANFDQAgCiALkyELIANBAXFBACEAIANBAUcEQCAJIAZBAnRqIQRBACECQQAgA0F+cWshAyABIQADQCAAIAAqAgAgCyAEKgIAlJM4AgAgAEEEaiIIIAgqAgAgCyAEQQRqKgIAlJM4AgAgBEEIaiEEIABBCGohACAD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CiABIARBGGsiBTYCBCABIAJBGGo2AgAgBUEETwRAIAIqABQhCyABIARBHGs2AgQgASACQRxqNgIAQQAhAUEAIQQCQAJAAkAgAigAGCICDgICAQALIANBAToAACADIAKtNwMIIANBlIjAAEGchMAAEJ4IDAQLQQEhBAsgACAGNgIEIABBHGogBDoAACAAQRhqIAs4AgAgAEEUaiAKOAIAIABBEGogCTgCACAAQQxqIAg4AgAgAEEIaiAHOAIADAMLCyADQoHKADcDACADEI8KCzYCBEEBIQELIAAgATYCACADQRBqJAALjQQCA38MfSMAQTBrIgMkACADIAIqAgwiBiABKgIMYDoAEyADIAIqAggiByABKgIIYDoAEiADIAIqAgQiCCABKgIEYDoAESADIAIqAgAiCSABKgIAYDoAECADIAJBHGoqAgAiCiABQRxqKgIAYDoAIyADIAJBGGoqAgAiCyABQRhqKgIAYDoAIiADIAJBFGoqAgAiDCABQRRqKgIAYDoAISADIAIqAhAiDSABKgIQYDoAICADIANBEGoiBCADQSBqIgUQ3wggAyACQSxqKgIAIg4gAUEsaioCAGA6ACMgAyACQShqKgIAIg8gAUEoaioCAGA6ACIgAyACQSRqKgIAIhAgAUEkaioCAGA6ACEgAyACKgIgIhEgASoCIGA6ACAgBCADIAUQ3wggAyABQTxqKgIAIAZgOgAjIAMgAUE4aioCACAHYDoAIiADIAFBNGoqAgAgCGA6ACEgAyABKgIwIAlgOgAgIAMgBCAFEN8IIAMgAUHMAGoqAgAgCmA6ACMgAyABQcgAaioCACALYDoAIiADIAFBxABqKgIAIAxgOgAhIAMgAUFAayoCACANYDoAICAEIAMgBRDfCCADIAFB3ABqKgIAIA5gOgAjIAMgAUHYAGoqAgAgD2A6ACIgAyABQdQAaioCACAQYDoAISADIAFB0ABqKgIAIBFgOgAgIAAgBCAFEN8IIANBMGokAAvlAwELfSAAAn8CQCACQQRqKgIAIg0gASoCACIRlCABQQRqKgIAIg4gAioCACIPlJMiEyARIARBBGoqAgAiFZQgDiAEKgIAIhaUk5QgDiACQQhqKgIAIhKUIAFBCGoqAgAiECANlJMiFCAOIARBCGoqAgAiF5QgECAVlJOUIBAgD5QgEiARlJMiDiAQIBaU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DigCACAQa0EDTQRAIAogEEEEEMMGIA8oAgAhEAsgCigCACAQaiAVNgAAIA8gEEEEaiIQNgIAIA4oAgAgEGtBA00EQCAKIBBBBBDDBiAPKAIAIRALIAooAgAgEGogDTYAACAPIBBBBGoiEDYCACALQYgBaigCACENIAtBhAFqKAIAIRUgDigCACAQa0EDTQRAIAogEEEEEMMGIA8oAgAhEAsgCigCACAQaiAVNgAAIA8gEEEEaiIQNgIAIA4oAgAgEGtBA00EQCAKIBBBBBDDBiAPKAIAIRALIAooAgAgEGogDTYAACAPIBBBBGoiEDYCACALQYwBaigCACENIA4oAgAgEGtBA00EQCAKIBBBBBDDBiAPKAIAIRALIAooAgAgEGogDTYAACAPIBBBBGoiEDYCACALQZABaigCACENIA4oAgAgEGtBA00EQCAKIBBBBBDDBiAPKAIAIRALIA8gEEEEajYCACAKKAIAIBBqIA02AAAgC0GYAWooAgAhDiASKAIAIgpBCGoiDygCACENIApBBGooAgAgDWtBA00EQCAKIA1BBBDDBiAPKAIAIQ0LIA8gDUEEajYCACAKKAIAIA1qIA42AAAgC0EQaikDACEgIAtBCGopAwAhISASKAIAIgpBCGoiDygCACELIApBBGooAgAgC2tBD00EQCAKIAtBEBDDBiAPKAIAIQsLIA8gC0EQajYCACAKKAIAIAtqIgsgIDcACCALICE3AAAMAQsgC0EIaigCACEOIBIoAgAiC0EEaiEPIAtBCGoiCigCACINIA8oAgBGBEAgCyANQQEQwwYgCigCACENCyALKAIAIA1qQQE6AAAgCiANQQFqIg02AgAgDygCACANa0EDTQRAIAsgDUEEEMMGIAooAgAhDQsgCiANQQRqNgIAIAsoAgAgDWogDjYAAAsgFCAMQaABaiIMRw0ACwsgESgCDCEKIBIoAgAiC0EIaigCACENIAtBBGooAgAgDWtBA00EQCALIA1BBBDDBiALQQhqKAIAIQ0LIAtBCGogDUEEajYCACALKAIAIA1qIAo2AAACQCARQRBqKAIARQRAIBIoAgAiC0EIaigCACENIA0gC0EEaigCAEYEQCALIA1BARDDBiALQQhqKAIAIQ0LIAtBCGogDUEBajYCACALKAIAIA1qQQA6AAAMAQsgEUEUaigCACEPIBIoAgAiC0EEaiEKIAtBCGooAgAiDSAKKAIARgRAIAsgDUEBEMMGIAtBCGooAgAhDQsgCygCACANakEBOgAAIAtBCGoiDCANQQFqIg02AgAgCigCACANa0EDTQRAIAsgDUEEEMMGIAwoAgAhDQsgDCANQQRqNgIAIAsoAgAgDWogDzYAAAsgETUCGCEgIBIoAgAiCkEIaiIMKAIAIQsgCkEEaigCACALa0EHTQRAIAogC0EIEMMGIAwoAgAhCwsgDCALQQhqNgIAIAooAgAgC2ogIDcAACARQSRqKAIAIQ4gESgCHCEKIBIoAgAiDEEIaigCACEQIAxBBGooAgAgEGtBB00EQCAMIBBBCBDDBiAMQQhqKAIAIRALIAxBCGoiDyAQQQhqIgs2AgAgDCgCACAQaiAOrTcAACAOBEAgCiAOQQN0aiEOA0AgCkEEaigCACEQIAooAgAhDSAMQQRqIhMoAgAgC2tBA00EQCAMIAtBBBDDBiAPKAIAIQsLIAwoAgAgC2ogDTYAACAPIAtBBGoiDTYCACATKAIAIA1rQQNNBEAgDCANQQQQwwYgDygCACENCyAPIA1BBGoiCzYCACAMKAIAIA1qIBA2AAAgDiAKQQhqIgpHDQALCyARQTBqKAIAIQ4gESgCKCEKIBIoAgAiDEEIaigCACEQIAxBBGooAgAgEGtBB00EQCAMIBBBCBDDBiAMQQhqKAIAIRALIAxBCGoiDyAQQQhqIgs2AgAgDCgCACAQaiAOrTcAACAOBEAgCiAOQQN0aiEOA0AgCkEEaigCACEQIAooAgAhDSAMQQRqIhEoAgAgC2tBA00EQCAMIAtBBBDDBiAPKAIAIQsLIAwoAgAgC2ogDTYAACAPIAtBBGoiDTYCACARKAIAIA1rQQNNBEAgDCANQQQQwwYgDygCACENCyAPIA1BBGoiCzYCACAMKAIAIA1qIBA2AAAgDiAKQQhqIgpHDQALCyAaKAIcIg8oAgghDSAPKAIAIQogEigCACIMQQhqKAIAIRAgDEEEaigCACAQa0EHTQRAIAwgEEEIEMMGIAxBCGooAgAhEAsgDEEIaiIOIBBBCGoiCzYCACAMKAIAIBBqIA2tNwAAIA0EQCAKIA1BA3RqIREgDEEEaiEQA0AgCigCACENIBAoAgAgC2tBA00EQCAMIAtBBBDDBiAOKAIAIQsLIAwoAgAgC2ogDTYAACAOIAtBBGoiDTYCACAKQQRqKAIAIRMgECgCACANa0EDTQRAIAwgDUEEEMMGIA4oAgAhDQsgDiANQQRqIgs2AgAgDCgCACANaiATNgAAIBEgCkEIaiIKRw0ACwsgD0EUaigCACEOIA8oAgwhDSASKAIAIgpBCGooAgAhECAKQQRqKAIAIBBrQQdNBEAgCiAQQQgQwwYgCkEIaigCACEQCyAKQQhqIgwgEEEIaiILNgIAIAooAgAgEGogDq03AAAgDgRAIA5BDGwhECAKQQRqIREDQAJ/AkAgDSgCAEUEQCARKAIAIAtrQQNNBEAgCiALQQQQwwYgDCgCACELCyAMIAtBBGoiDjYCACAKKAIAIAtqQQA2AAAgDUEEaigCAA0BIA4gESgCAEYEQCAKIA5BARDDBiAMKAIAIQ4LIAooAgAgDmpBADoAACAOQQFqDAILIBEoAgAgC2tBA00EQCAKIAtBBBDDBiAMKAIAIQsLIAooAgAgC2pBATYAACAMIAtBBGoiCzYCACANQQRqKAIAIQ4gESgCACALa0EDTQRAIAogC0EEEMMGIAwoAgAhCwsgCigCACALaiAONgAAIAwgC0EEaiILNgIAIA1BCGooAgAhDiARKAIAIAtrQQNNBEAgCiALQQQQwwYgDCgCACELCyAKKAIAIAtqIA42AAAgC0EEagwBCyANQQhqKAIAIRMgDiARKAIARgRAIAogDkEBEMMGIAwoAgAhDgsgCigCACAOakEBOgAAIAwgDkEBaiILNgIAIBEoAgAgC2tBA00EQCAKIAtBBBDDBiAMKAIAIQsLIAooAgAgC2ogEzYAACALQQRqCyELIA1BDGohDSAMIAs2AgAgEEEMayIQDQALCyAPQRhqKAIAIQwgCkEEaigCACALa0EDTQRAIAogC0EEEMMGIApBCGooAgAhCwsgCkEIaiALQQRqIg02AgAgCigCACALaiAMNgAAAn8gD0EcaigCAEUEQCANIApBBGooAgBGBEAgCiANQQEQwwYgCkEIaigCACENCyAKKAIAIA1qQQA6AAAgDUEBagwBCyAPQSBqKAIAIQwgDSAKQQRqIg4oAgBGBEAgCiANQQEQwwYgCkEIaigCACENCyAKKAIAIA1qQQE6AAAgCkEIaiIQIA1BAWoiCzYCACAOKAIAIAtrQQNNBEAgCiALQQQQwwYgECgCACELCyAKKAIAIAtqIAw2AAAgC0EEagshCyAKQQhqIgwgCzYCACAPQSRqNQIAISAgCkEEaigCACALa0EHTQRAIAogC0EIEMMGIAwoAgAhCwsgDCALQQhqNgIAIAooAgAgC2ogIDcAACASIBI2AgQgEkEEaiAPQShqEJIEIgoNACAPQTxqKAIAIQ4gD0E0aigCACELIBIoAgAiDUEIaiIKKAIAIQwgDUEEaigCACAMa0EHTQRAIA0gDEEIEMMGIAooAgAhDAsgCiAMQQhqIgo2AgAgDSgCACAMaiAOrTcAAAJAIA5FDQAgCyAOQewCbGohEANAIA1BBGoiDigCACALQQRqKAIAIREgEiASNgIIIAsoAgAhEyAKa0EDTQRAIA0gCkEEEMMGIA1BCGooAgAhCgsgDSgCACAKaiATNgAAIA1BCGoiDCAKQQRqIgo2AgAgDigCACAKa0EDTQRAIA0gCkEEEMMGIAwoAgAhCgsgDCAKQQRqNgIAIA0oAgAgCmogETYAACALQQxqKAIAIQ0gC0EIaigCACERIBIoAgAiDEEEaiITKAIAIAxBCGoiDigCACIKa0EDTQRAIAwgCkEEEMMGIA4oAgAhCgsgDCgCACAKaiARNgAAIA4gCkEEaiIKNgIAIBMoAgAgCmtBA00EQCAMIApBBBDDBiAOKAIAIQoLIA4gCkEEajYCACAMKAIAIApqIA02AAAgEkEIaiALQRBqIgsQYSIKDQIgEkEIaiALQawCaiILEI0DIgoNAiALQRxqKAIAIQ0gC0EYaigCACERIBIoAgAiDEEEaiITKAIAIAxBCGoiDigCACIKa0EDTQRAIAwgCkEEEMMGIA4oAgAhCgsgDCgCACAKaiARNgAAIA4gCkEEaiIKNgIAIBMoAgAgCmtBA00EQCAMIApBBBDDBiAOKAIAIQoLIA4gCkEEajYCACAMKAIAIApqIA02AAAgC0EkaigCACENIAtBIGooAgAhESASKAIAIgxBBGoiEygCACAMQQhqIg4oAgAiCmtBA00EQCAMIApBBBDDBiAOKAIAIQoLIAwoAgAgCmogETYAACAOIApBBGoiCjYCACATKAIAIAprQQNNBEAgDCAKQQQQwwYgDigCACEKCyAOIApBBGo2AgAgDCgCACAKaiANNgAAIAtBLGooAgAhDSALQShqKAIAIREgEigCACIMQQRqIhMoAgAgDEEIaiIOKAIAIgprQQNNBEAgDCAKQQQQwwYgDigCACEKCyAMKAIAIApqIBE2AAAgDiAKQQRqIgo2AgAgEygCACAKa0EDTQRAIAwgCkEEEMMGIA4oAgAhCgsgDiAKQQRqNgIAIAwoAgAgCmogDTYAACAQIAtBMGoiC0YNASASKAIAIg1BCGooAgAhCgwACwALIA9ByABqKAIAIQ4gDygCQCEKIBIoAgAiD0EIaiILKAIAIQwgD0EEaigCACAMa0EHTQRAIA8gDEEIEMMGIAsoAgAhDAsgCyAMQQhqIgs2AgAgDygCACAMaiAOrTcAACAOBEAgCiAOQQN0aiEOIA9BCGohDANAIApBBGooAgAhECAKKAIAIQ0gD0EEaiIRKAIAIAtrQQNNBEAgDyALQQQQwwYgDCgCACELCyAPKAIAIAtqIA02AAAgDCALQQRqIg02AgAgESgCACANa0EDTQRAIA8gDUEEEMMGIAwoAgAhDQsgDCANQQRqIgs2AgAgDygCACANaiAQNgAAIA4gCkEIaiIKRw0ACwsgGigCICIPKAIIIQsgDygCACEQIBIoAgAiCkEIaiIMKAIAIQ0gCkEEaigCACANa0EHTQRAIAogDUEIEMMGIAwoAgAhDQsgDCANQQhqNgIAIAooAgAgDWogC603AAAgCwRAIBAgC0GYAmxqIRQDQAJAAkAgECgCAEUEQCASKAIAIgpBCGoiDCgCACELIApBBGooAgAgC2tBA00EQCAKIAtBBBDDBiAMKAIAIQsLIAwgC0EEajYCACAKKAIAIAtqQQA2AAAgEEEEaigCAA0BIBIoAgAiCkEIaiIMKAIAIQsgCyAKQQRqKAIARgRAIAogC0EBEMMGIAwoAgAhCwsgDCALQQFqNgIAIAooAgAgC2pBADoAAAwCCyASKAIAIgpBCGoiDCgCACELIApBBGooAgAgC2tBA00EQCAKIAtBBBDDBiAMKAIAIQsLIAwgC0EEajYCACAKKAIAIAtqQQE2AAAgECgCBCEOIBIoAgAiCkEIaiIMKAIAIQsgCkEEaigCACALa0EDTQRAIAogC0EEEMMGIAwoAgAhCwsgDCALQQRqNgIAIAooAgAgC2ogDjYAACASKAIAIgpBCGoiDCgCACENIApBBGooAgAgEEEQaigCACEOIBIgEjYCBCAQKAIIIQsgDWtBB00EQCAKIA1BCBDDBiAMKAIAIQ0LIAwgDUEIajYCACAKKAIAIA1qIA6tNwAAIA5B0ANsIQ4DQCAOBEAgCzUCACEgIBIoAgAiCkEEaiIRKAIAIApBCGoiDSgCACIMa0EHTQRAIAogDEEIEMMGIA0oAgAhDAsgCigCACAMaiAgNwAAIA0gDEEIaiIMNgIAIAs1AgQhICARKAIAIAxrQQdNBEAgCiAMQQgQwwYgDSgCACEMCyAKKAIAIAxqICA3AAAgDSAMQQhqIgw2AgAgCzUCCCEgIBEoAgAgDGtBB00EQCAKIAxBCBDDBiANKAIAIQwLIAooAgAgDGogIDcAACANIAxBCGoiDDYCACALQRBqKAIAIRMgC0EMaigCACEVIBEoAgAgDGtBA00EQCAKIAxBBBDDBiANKAIAIQwLIAooAgAgDGogFTYAACANIAxBBGoiDDYCACARKAIAIAxrQQNNBEAgCiAMQQQQwwYgDSgCACEMCyANIAxBBGo2AgAgCigCACAMaiATNgAAIBIgEjYCCCASQQhqIAtBFGoQYSIKDQYgEkEIaiALQcACahCNAyIKDQYgEkEIaiALQdgCahCzBCIKDQYgEiASNgIIIBJBCGogC0HoAmoQswQiCg0GIAtB+AJqIBIQ/AQiCg0GIBIgEjYCCCASQQhqIAtBhANqELMEIgoNBiALQZQDaiASEPwEIgoNBiALQaADaiASEPwEIgoNBiALQawDaiASEPwEIgoNBiALQbgDaiASEPwEIgoNBiAOQdADayEOIAtBxANqIAtB0ANqIQsgEhD8BCIKRQ0BDAYLCyAQQRxqKAIAIQwgEEEUaigCACENIBIoAgAiEUEEaiITKAIAIBFBCGoiCigCACIOa0EHTQRAIBEgDkEIEMMGIAooAgAhDgsgCiAOQQhqIgs2AgAgESgCACAOaiAMrTcAACAMBEAgDEECdCEOA0AgDSoCACEiIA1BBGohDSAKIBMoAgAgC2tBA0sEfyALBSARIAtBBBDDBiAKKAIACyIMQQRqIgs2AgAgESgCACAMaiAiOAAAIA5BBGsiDg0ACwsgEDUCICEgIBMoAgAgC2tBB00EQCARIAtBCBDDBiAKKAIAIQsLIAogC0EIajYCACARKAIAIAtqICA3AAAgEEEsaigCACEMIBBBJGooAgAhDSASKAIAIhFBBGoiEygCACARQQhqIgooAgAiDmtBB00EQCARIA5BCBDDBiAKKAIAIQ4LIAogDkEIaiILNgIAIBEoAgAgDmogDK03AAAgDARAIAxBAnQhDgNAIA0qAgAhIiANQQRqIQ0gCiATKAIAIAtrQQNLBH8gCwUgESALQQQQwwYgCigCAAsiDEEEaiILNgIAIBEoAgAgDGogIjgAACAOQQRrIg4NAAsLIBA1AjAhICATKAIAIAtrQQdNBEAgESALQQgQwwYgCigCACELCyAKIAtBCGo2AgAgESgCACALaiAgNwAAIBBBPGooAgAhDCAQQTRqKAIAIQ0gEigCACIRQQRqIhMoAgAgEUEIaiIKKAIAIg5rQQdNBEAgESAOQQgQwwYgCigCACEOCyAKIA5BCGoiCzYCACARKAIAIA5qIAytNwAAIAwEQCAMQQJ0IQ4DQCANKgIAISIgDUEEaiENIAogEygCACALa0EDSwR/IAsFIBEgC0EEEMMGIAooAgALIgxBBGoiCzYCACARKAIAIAxqICI4AAAgDkEEayIODQALCyAQNQJAISAgEygCACALa0EHTQRAIBEgC0EIEMMGIAooAgAhCwsgCiALQQhqNgIAIBEoAgAgC2ogIDcAACAQQcwAaigCACEMIBBBxABqKAIAIQ0gEigCACIKQQhqIg4oAgAhCyAKQQRqKAIAIAtrQQdNBEAgCiALQQgQwwYgDigCACELCyAOIAtBCGo2AgAgCigCACALaiAMrTcAACAMQQR0IQsDQCALBEAgC0EQayELIA0gEhCEBSEKIA1BEGohDSAKRQ0BDAYLCyASQQRqIBBB0ABqEMQEIgoNBCASQQRqIBBB5ABqEL8DIgoNBCASQQRqIBBBjAFqEMQEIgoNBCASQQRqIBBBoAFqEL8DIgoNBCAQQcgBajUCACEgIBIoAgAiCkEIaiIMKAIAIQsgCkEEaigCACALa0EHTQRAIAogC0EIEMMGIAwoAgAhCwsgDCALQQhqNgIAIAooAgAgC2ogIDcAACAQQZQCai0AACEOIBIoAgAiCkEIaiIMKAIAIQsgCyAKQQRqKAIARgRAIAogC0EBEMMGIAwoAgAhCwsgDCALQQFqNgIAIAooAgAgC2ogDkEARzoAACAQQcwBajUCACEgIBIoAgAiCkEIaiIMKAIAIQsgCkEEaigCACALa0EHTQRAIAogC0EIEMMGIAwoAgAhCwsgDCALQQhqNgIAIAooAgAgC2ogIDcAACAQQdgBaigCACEKIBBB0AFqKAIAIQsgEigCACIRQQRqIhMoAgAgEUEIaiIMKAIAIg1rQQdNBEAgESANQQgQwwYgDCgCACENCyAMIA1BCGo2AgAgESgCACANaiAKrTcAACAKQRhsIQ0DQCANBEAgCyASEPwEIgoNBiANQRhrIQ0gC0EMaiALQRhqIQsgEhD8BCIKRQ0BDAYLCyAQQeQBaigCACEKIBBB3AFqKAIAIQ0gEygCACAMKAIAIg5rQQdNBEAgESAOQQgQwwYgDCgCACEOCyAMIA5BCGoiCzYCACARKAIAIA5qIAqtNwAAIAoEQCAKQQJ0IQ4DQCANKgIAISIgDUEEaiENIAwgEygCACALa0EDSwR/IAsFIBEgC0EEEMMGIAwoAgALIgpBBGoiCzYCACARKAIAIApqICI4AAAgDkEEayIODQALCyAQNQLoASEgIBMoAgAgC2tBB00EQCARIAtBCBDDBiAMKAIAIQsLIAwgC0EIajYCACARKAIAIAtqICA3AAAgEkEEaiAQQewBahCaBCIKDQQgEkEEaiAQQfgBahCaBCIKDQQgEEGEAmogEhCEBSIKRQ0BDAQLIBBBCGooAgAhDiASKAIAIgtBBGohDCALQQhqIgooAgAiDSAMKAIARgRAIAsgDUEBEMMGIAooAgAhDQsgCygCACANakEBOgAAIAogDUEBaiINNgIAIAwoAgAgDWtBA00EQCALIA1BBBDDBiAKKAIAIQ0LIAogDUEEajYCACALKAIAIA1qIA42AAALIBQgEEGYAmoiEEcNAAsLIA8oAgwhDiASKAIAIgpBCGoiDCgCACELIApBBGooAgAgC2tBA00EQCAKIAtBBBDDBiAMKAIAIQsLIAwgC0EEajYCACAKKAIAIAtqIA42AAACQCAPQRBqKAIARQRAIBIoAgAiCkEIaiIMKAIAIQsgCyAKQQRqKAIARgRAIAogC0EBEMMGIAwoAgAhCwsgDCALQQFqNgIAIAooAgAgC2pBADoAAAwBCyAPQRRqKAIAIQ4gEigCACILQQRqIQogC0EIaiIMKAIAIg0gCigCAEYEQCALIA1BARDDBiAMKAIAIQ0LIAsoAgAgDWpBAToAACAMIA1BAWoiDTYCACAKKAIAIA1rQQNNBEAgCyANQQQQwwYgC0EIaigCACENCyALQQhqIA1BBGo2AgAgCygCACANaiAONgAACyAPNQIYISAgEigCACIKQQhqIgwoAgAhCyAKQQRqKAIAIAtrQQdNBEAgCiALQQgQwwYgDCgCACELCyAMIAtBCGo2AgAgCigCACALaiAgNwAAIA9BJGooAgAhDSAPKAIcIQsgEigCACIKQQhqKAIAIRAgCkEEaigCACAQa0EHTQRAIAogEEEIEMMGIApBCGooAgAhEAsgCkEIaiIOIBBBCGoiDDYCACAKKAIAIBBqIA2tNwAAIA0EQCALIA1BFGxqIREgCkEEaiENA0AgCygCACEQIA0oAgAgDGtBA00EQCAKIAxBBBDDBiAOKAIAIQwLIAooAgAgDGogEDYAACAOIAxBBGoiDDYCACALQQRqKAIAIRAgDSgCACAMa0EDTQRAIAogDEEEEMMGIA4oAgAhDAsgCigCACAMaiAQNgAAIA4gDEEEaiIMNgIAIAtBDGooAgAhECALQQhqKAIAIRMgDSgCACAMa0EDTQRAIAogDEEEEMMGIA4oAgAhDAsgCigCACAMaiATNgAAIA4gDEEEaiIMNgIAIA0oAgAgDGtBA00EQCAKIAxBBBDDBiAOKAIAIQwLIAooAgAgDGogEDYAACAOIAxBBGoiEDYCACALQRBqNQIAISAgDSgCACAQa0EHTQRAIAogEEEIEMMGIA4oAgAhEAsgDiAQQQhqIgw2AgAgCigCACAQaiAgNwAAIBEgC0EUaiILRw0ACwsgEiASNgIIIBJBCGogD0EoahCSBCIKDQAgD0E8aigCACENIA9BNGooAgAhCyASKAIAIgpBCGoiDigCACEMIApBBGooAgAgDGtBB00EQCAKIAxBCBDDBiAOKAIAIQwLIA4gDEEIaiIONgIAIAooAgAgDGogDa03AAAgDQRAIAsgDUEEdGohESAKQQhqIQ0DQCALQQRqKAIAIQwgCygCACETIApBBGoiECgCACAOa0EDTQRAIAogDkEEEMMGIA0oAgAhDgsgCigCACAOaiATNgAAIA0gDkEEaiIONgIAIBAoAgAgDmtBA00EQCAKIA5BBBDDBiANKAIAIQ4LIAooAgAgDmogDDYAACANIA5BBGoiDjYCACALQQxqKAIAIRMgC0EIaigCACEMIBAoAgAgDmtBA00EQCAKIA5BBBDDBiANKAIAIQ4LIAooAgAgDmogDDYAACANIA5BBGoiDDYCACAQKAIAIAxrQQNNBEAgCiAMQQQQwwYgDSgCACEMCyANIAxBBGoiDjYCACAKKAIAIAxqIBM2AAAgESALQRBqIgtHDQALCyAPQcgAaigCACENIA8oAkAhDiASKAIAIgxBCGoiCygCACEKIAxBBGooAgAgCmtBB00EQCAMIApBCBDDBiALKAIAIQoLIAsgCkEIaiILNgIAIAwoAgAgCmogDa03AABBACEKIA1FDQAgDiANQQN0aiEQIAxBCGohDwNAIA5BBGooAgAhESAOKAIAIQ0gDEEEaiITKAIAIAtrQQNNBEAgDCALQQQQwwYgDygCACELCyAMKAIAIAtqIA02AAAgDyALQQRqIg02AgAgEygCACANa0EDTQRAIAwgDUEEEMMGIA8oAgAhDQsgDyANQQRqIgs2AgAgDCgCACANaiARNgAAIBAgDkEIaiIORw0ACwsgEkEQaiQAIAoiC0UNASAWKAI0RQ0AIBYoAjAQrAELIBYgCzYCQCAWQUBrEJEHDAMLIBYoAjAiC0UNAiAWKQI0ISAQFCIKEAoiDCALICBCIIinEAshDyAKQSRPBEAgChAACyAMQSRPBEAgDBAACyAWIA82AkAgFkFAaygCABAMIRcgIKcgFigCQCIMQSRPBEAgDBAACwRAIAsQrAELQQEMAwsQ3wkACyALQQFB3ObDACgCACIAQY8HIAAbEQAAAAtBAAshCyAcIBc2AgQgHCALNgIAIBZB4ABqJAAgGygCDCAbKAIIIQogCSAJKAIAQQFrNgIAIAggCCgCAEEBazYCACAHIAcoAgBBAWs2AgAgBiAGKAIAQQFrNgIAIAUgBSgCAEEBazYCACAEIAQoAgBBAWs2AgAgAyADKAIAQQFrNgIAIAIgAigCAEEBazYCACABIAEoAgBBAWs2AgAgACAAKAIAQQFrNgIAIBtBEGokAEEAIAobDwsQzQsACxDOCwALxgMBEn0gASoCBCIKIAIqAgAiA5QgASoCACIRIAJBBGoqAgAiBJSTIgYgBpIhCSARIAJBCGoqAgAiBpQgASoCCCIHIAOUkyIFIAWSIQ4gAyABQRBqKgIAIgyUIAQgASoCDCISlJMiBSAFkiEPIAYgEpQgAyABQRRqKgIAIgiUkyIFIAWSIRAgAEEUaiABKgIYIgUgAkEYaioCACINIAcgAkEMaioCACILIAmUIAMgDpQgBCAHIASUIAogBpSTIgcgB5IiE5STkpKSIgcgDSAIIAsgD5QgAyAQlCAEIAQgCJQgBiAMlJMiCCAIkiINlJOSkpIiCCAHIAhgG5I4AgAgAEEQaiAFIAJBFGoqAgAiFCAKIAsgDpQgBiATlCADIAmUk5KSkiIKIBQgDCALIBCUIAYgDZQgAyAPlJOSkpIiAyADIApfG5I4AgAgACAFIAJBEGoqAgAiDCARIAsgE5QgBCAJlCAGIA6Uk5KSkiIJIAwgEiALIA2UIAQgD5QgBiAQlJOSkpIiBCAEIAlfG5I4AgwgACAHIAggByAIXxsgBZM4AgggACAKIAMgAyAKYBsgBZM4AgQgACAJIAQgBCAJYBsgBZM4AgALngQBCH8jAEEgayICJAACfyABKAIEIgNFBEAgAEEANgIEQQAMAQsgASADQQFrNgIEAkAgASgCACIBKAIEIgNBB00EQCACQoHKADcDCCACQQhqEI8KIQEMAQsgASADQQhrIgY2AgQgASABKAIAIgNBCGo2AgAgAkEYaiADKQAAEPAFIAIoAhgEQCACKAIcIQEMAQsCQAJAIAIoAhwiB0GAICAHQYAgSRsiBEUEQEEEIQMMAQsgBEEDdCIFQQQQ7goiA0UNAQtBACEFIAJBADYCECACIAQ2AgwgAiADNgIIIAcEQANAAkACfyAGQQNNBEAgAkKBygA3AxggAkEYahCPCgwBCyABIAZBBGsiBjYCBCABIAEoAgAiBEEEajYCACAGQQNLDQEgAkKBygA3AxggAkEYahCPCgshASACKAIMIgNFDQQgA0EDdEUNBCACKAIIEKwBDAQLIAdBAWshByAEKAAAIQggASAGQQRrIgY2AgQgASAEQQhqNgIAIAQoAAQhBCACKAIMIAVGBEAgAkEIaiAFEPoFIAIoAhAhBSACKAIIIQMLIAMgBUEDdGoiCSAENgIEIAkgCDYCACACIAVBAWoiBTYCECAHDQALIAIoAgghAwsgAEEIaiACKQIMNwIAIAAgAzYCBEEADAILIAVBBEHc5sMAKAIAIgBBjwcgABsRAAAACyAAIAE2AgRBAQshASAAIAE2AgAgAkEgaiQAC78DARB9IAJBEGoqAgAhDiACQRRqKgIAIQ8gAyoCACIGIAJBBGoqAgAiCpQgA0EEaioCACIFIAIqAgAiC5STIgcgB5IhCCAFIAJBCGoqAgAiB5QgA0EIaioCACIEIAqUkyIMIAySIQkgAUEIaioCACIQIAQgAioCDCIMIAiUIAogCZQgCyAEIAuUIAYgB5STIgQgBJIiBJSTkpIiDZQgASoCACIRIAYgDCAJlCAHIASUIAogCJSTkpIiBpQgAUEEaioCACISIAUgDCAElCALIAiUIAcgCZSTkpIiCJSSkiABQRRqKgIAIgUgDZQgAUEMaioCACIEIAaUIAFBEGoqAgAiEyAIlJKSXiEDIAAgAkEYaioCACANIAEqAhgiCZQgECAFIAMbkiIFIAwgCyAIIAmUIBIgEyADG5IiCJQgCiAGIAmUIBEgBCADG5IiCZSTIgYgBpIiBpQgCyAHIAmUIAsgBZSTIgQgBJIiBJQgCiAKIAWUIAcgCJSTIgUgBZIiBZSTkpKSOAIIIAAgDyAIIAwgBJQgByAFlCALIAaUk5KSkjgCBCAAIA4gCSAMIAWUIAogBpQgByAElJOSkpI4AgALsQYCFX0FfyMAQTBrIhkkACAZQQhqIhogASACELoCIBpBFGohGyABKgIkIgZDAAAAAGBFBEAgG0EANgIAIBlBwOzBADYCGCAZQgE3AgwgGUHI/MEANgIIIBlBCGpB0PzBABDgCQALIBlBKGoiHCoCACEIIBlBJGoiHSoCACEJIBsqAgAhDiAZQQhqIhpBEGoiAioCACEPIBkqAiAhCiAZKgIUIRAgGSoCECEEIBkqAgwhESAZKgIIIRIgGiABIAMQugIgHSoCACELIAIqAgAhEyAZKgIgIQwgGSoCFCEUIBkqAgghFSAZKgIMIRYgAEEUaiAIIAggDiAOIAQiDSAEIA5dIhobIAQgBFwbIgQgBCAIXRsgBCAEXBsgBpIiGCAGIBwqAgAiFyAXIBsqAgAiByAHIBkqAhAiBCAEIAddIhwbIAQgBFwbIgUgBSAXXRsgBSAFXBuSIgUgBSAYXxs4AgAgAEEQaiAJIAkgDyAPIBEgDyARXiIdGyARIBFcGyIFIAUgCV0bIAUgBVwbIAaSIhggBiALIAsgEyATIBYgEyAWXiIDGyAWIBZcGyIFIAUgC10bIAUgBVwbkiIFIAUgGF8bOAIAIAAgCiAKIBAgECASIBAgEl4iAhsgEiASXBsiBSAFIApdGyAFIAVcGyAGkiIYIAYgDCAMIBQgFCAVIBQgFV4iARsgFSAVXBsiBSAFIAxdGyAFIAVcG5IiBSAFIBhfGzgCDCAAIA0gDSAOIBobIA4gDlwbIg0gDSAIIAggDV4bIAggCFwbIAaTIg0gBCAEIAcgHBsgByAHXBsiBCAEIBcgBCAXXRsgFyAXXBsgBpMiBCAEIA1gGzgCCCAAIBEgESAPIB0bIA8gD1wbIgQgBCAJIAQgCV0bIAkgCVwbIAaTIgcgFiAWIBMgAxsgEyATXBsiBCAEIAsgBCALXRsgCyALXBsgBpMiBCAEIAdgGzgCBCAAIBIgEiAQIAIbIBAgEFwbIgQgBCAKIAQgCl0bIAogClwbIAaTIgcgFSAVIBQgARsgFCAUXBsiBCAEIAwgBCAMXRsgDCAMXBsgBpMiBCAEIAdgGzgCACAZQTBqJAALgQQCDX8BfiMAQRBrIgMkACADQQA2AgggA0IENwMAIAFBIGooAgAiAgRAIAEoAhgiBiACQRRsaiEMIAFB3ABqKAIAIQkgAUHUAGooAgAhCkEEIQsDQCAGKAIAIgIgCU8EQCACIAlByInDABCvCAALIAJBAWohBwJAAkAgBigCBCACaiIEIAJLBEAgBCAJSw0BIAZBFGohBiAEIAdrIgVBAkkNAiAKIAJBAnRqKAIAIQ0gCiAHQQJ0aiECA0AgBUEBayEFIAJBBGoiBCgCACEHIAIoAgAhDiADKAIEIAhGBEAgAyAIEOgFIAMoAgAhCyADKAIIIQgLIAsgCEEMbGoiAiAHNgIIIAIgDjYCBCACIA02AgAgAyAIQQFqIgg2AgggBCECIAVBAk8NAAsMAgsgByAEENcLAAsgBCAJENYLAAsgBiAMRw0ACwsgASgCACEGAkACQAJAIAEoAggiBEUEQEEEIQJBACEFDAELIAStQgx+Ig9CIIinIgENASAPpyIFQQBIDQEgAUVBAnQhASAFBH8gBSABEO4KBSABCyICRQ0CCyACIAYgBRDZCyEBIAAgBDYCCCAAIAQ2AgQgACABNgIAIABBFGogA0EIaigCADYCACAAIAMpAwA3AgwgA0EQaiQADwsQ3wkACyAFIAFB3ObDACgCACIAQY8HIAAbEQAAAAuECQIMfwF+IwBBQGoiCyQAAkACQAJAIABFDQAgACgCACIIQX9GDQEgACAIQQFqNgIAIAJFDQAgAigCACIIQX9GDQEgAiAIQQFqNgIAIANFDQAgAygCACIIQX9GDQEgAyAIQQFqNgIAIARFDQAgBCgCACIIQX9GDQEgBCAIQQFqNgIAIAVFDQAgBSgCACIIQX9GDQEgBSAIQQFqNgIAIAZFDQAgBigCACIIQX9GDQEgBiAIQQFqNgIAIAtBCGohDCACQQRqIQkgA0EEaiEKIAZBBGohDiMAQcABayIIJAAgCEEoaiAEQQRqIg1BCGooAgA2AgAgCEEYaiAFQQRqIg9BCGopAgA3AwAgCCANKQIANwMgIAggDykCADcDECAIQQhqIg0gAb0iFEIgiD4CBCANIBQ+AgACQCAAQQRqIAgoAgggCCgCDBCDCSINBEAgCEEwaiIPQQhqIAlBCGooAgA2AgAgCCAJKQIANwMwIAggCkEEaigCACIJNgIEIAggCigCACAJKAIIQQdqQXhxajYCACAIKAIEIQogCCgCACEQIAhBQGsiEUEIaiAOQQhqKAIANgIAIAggDikCADcDQCANQRBqIg5BBGooAgAhCSAIQYgBaiANQcwAaiAPIA4oAgAgCSgCCEEHakF4cWogCSAIQRBqIBEgECAKIAcQsgICQAJAIAgtALwBIg5BBUcEQCAIQdAAaiIKQTBqIg0gCEGIAWoiCUEwaigCADYCACAKQShqIg8gCUEoaikDADcDACAKQSBqIhAgCUEgaikDADcDACAKQRhqIhEgCUEYaikDADcDACAKQRBqIhIgCUEQaikDADcDACAKQQhqIgogCUEIaikDADcDACAIQc4AaiITIAlBN2otAAA6AAAgCCAIKQOIATcDUCAIIAgvAL0BOwFMIA5BBEcNAQsgDEEEOgA0DAELIAwgCCkDUDcCACAMIA46ADQgDCAILwFMOwA1IAxBMGogDSgCADYCACAMQShqIA8pAwA3AgAgDEEgaiAQKQMANwIAIAxBGGogESkDADcCACAMQRBqIBIpAwA3AgAgDEEIaiAKKQMANwIAIAxBN2ogEy0AADoAAAsgCEHAAWokAAwBC0GYusAAQcwAQYy7wAAQwwsACyAGIAYoAgBBAWs2AgAgBSAFKAIAQQFrNgIAIAQgBCgCAEEBazYCACADIAMoAgBBAWs2AgAgAiACKAIAQQFrNgIAIAAgACgCAEEBazYCAEEAIQAgCy0APCICQQRHBEBBPEEEEO4KIgBFDQMgAEEANgIAIAAgCykDCDcCBCAAIAI6ADggACALQT1qIgIvAAA7ADkgAEEMaiALQRBqKQMANwIAIABBFGogC0EYaikDADcCACAAQRxqIAtBIGopAwA3AgAgAEEkaiALQShqKQMANwIAIABBLGogC0EwaikDADcCACAAQTRqIAtBOGooAgA2AgAgAEE7aiACQQJqLQAAOgAACyALQUBrJAAgAA8LEM0LAAsQzgsAC0E8QQRB3ObDACgCACIAQY8HIAAbEQAAAAvJAwIMfQF/IwBBQGoiECQAIAMqAgAgAkEQaioCACINkyIMIAJBBGoqAgAiB5QgA0EEaioCACACQRRqKgIAIg6TIgggAioCACIJlJMiBiAGkiEKIAggAkEIaioCACIGlCADQQhqKgIAIAJBGGoqAgAiD5MiBCAHlJMiCyALkiEFIBAgBCACKgIMIgsgCpQgByAFlCAJIAQgCZQgDCAGlJMiBCAEkiIElJOSkjgCECAQIAggCyAElCAJIAqUIAYgBZSTkpI4AgwgECAMIAsgBZQgBiAElCAHIAqUk5KSOAIIIBBBGGoiAiABIBBBCGpBARBBIBAqAhghCiAQKgIgIQUgECoCHCEMIBAtACQhASAAQRRqIAJBFGooAgBBACAQKAIoIgJBA0kiAxs2AgAgACACQQIgAxs2AhAgACABOgAMIAAgDyAFIAsgCSAMlCAHIAqUkyIIIAiSIgiUIAkgBiAKlCAJIAWUkyIEIASSIgSUIAcgByAFlCAGIAyUkyIFIAWSIgWUk5KSkjgCCCAAIA4gDCALIASUIAYgBZQgCSAIlJOSkpI4AgQgACANIAogCyAFlCAHIAiUIAYgBJSTkpKSOAIAIBBBQGskAAu+AwEMfSADQQhqKgIAIAJBGGoqAgCTIg4gAioCACIKlCADKgIAIAJBEGoqAgCTIgggAkEIaioCACILlJMiCSAJkiEHIAggAkEEaioCACIJlCADQQRqKgIAIAJBFGoqAgCTIgYgCpSTIgwgDJIhDSABQQRqKgIAIg8gBiACKgIMIgwgB5QgCiANlCALIAYgC5QgDiAJlJMiBiAGkiIGlJOSkoyUIAEqAgAiECAIIAwgBpQgCyAHlCAJIA2Uk5KSlJMgAUEIaioCACIRIA4gDCANlCAJIAaUIAogB5STkpKUkyEGIANBFGoqAgAhByADQRBqKgIAIQ0gA0EMaioCACEOAkACQCAFBEBDAAAAACEIIAZDAAAAAF4NAQtBACECIAYgESAHIAwgCSAOlCAKIA2UkyIIIAiSIgiUIAkgCyANlCAJIAeUkyIGIAaSIgaUIAogCiAHlCALIA6UkyIHIAeSIgeUk5KSlCAQIA4gDCAGlCALIAeUIAkgCJSTkpKUIA8gDSAMIAeUIAogCJQgCyAGlJOSkpSSkpUiCEMAAAAAYEUNASAEIAhgRQ0BC0EBIQILIAAgCDgCBCAAIAI2AgALmAQCBn8BfiMAQTBrIgIkAAJ/IAEoAgQiA0UEQCAAQQA2AgRBAAwBCyABIANBAWs2AgQCQCABKAIAIgMoAgQiBEEHTQRAIAJCgcoANwMYIAJBGGoQjwohAQwBCyADIARBCGs2AgQgAyADKAIAIgFBCGo2AgAgAkEIaiABKQAAEPAFIAIoAggEQCACKAIMIQEMAQsCfwJAAkACQCACKAIMIgdBgCAgB0GAIEkbIgZFBEBBBCEFDAELIAZBAnQiAUEEEO4KIgVFDQELQQAhASACQQA2AhAgAiAGNgIMIAIgBTYCCCAHBEAgBEEQayEEA0AgBEEIakEISQ0DIAMgBDYCBCADIAMoAgAiBkEIajYCACAGKQAAIghCgICAgBBaBEAgAkEBOgAYIAIgCDcDICACQRhqIAJBKGpB/IHAABCeCAwFCyAHQQFrIQcgCKchBiACKAIMIAFGBEAgAkEIaiABEPsFIAIoAgghBSACKAIQIQELIAUgAUECdGogBjYCACACIAFBAWoiATYCECAEQQhrIQQgBw0ACyACKAIIIQULIABBCGogAikCDDcCACAAIAU2AgRBAAwECyABQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgAkKBygA3AxggAkEYahCPCgshASACKAIMIgNFDQAgA0ECdEUNACACKAIIEKwBCyAAIAE2AgRBAQshASAAIAE2AgAgAkEwaiQAC7ARAgd/GH0jAEHwAGsiBSQAAkACQCAAQbwCaigCACIGRQ0AIAZBAWtB/////wFxQQFqIQcgACgCtAIiCCEEA0ACQCABIAQoAgBGBEAgBEEEaigCACACRg0BCyAEQQhqIQQgByAJQQFqIglHDQEMAgsLIAAgACgC0AJBCHI2AtACIAAgBkEBayIBNgK8AiAEIAggAUEDdGopAgA3AgACQCADKAIYRQRAIAVBCGoiASADQRBqIgJBBGooAgAiBDYCBCABIAIoAgAgBCgCCEEHakF4cWo2AgAgBUFAayAFKAIIIAMqAhwgBSgCDCgCkAERFgAMAQsgBUFAayICQQhqIAMoAhwiAUEIaikCADcDACACQRBqIAFBEGopAgA3AwAgAkEYaiABQRhqKQIANwMAIAJBIGogAUEgaikCADcDACACQShqIAFBKGooAgA2AgAgBSABKQIANwNACyADKAIkRQ0BIAVBEGoiASAFQUBrIgQgA0EwahC0AyAEQShqIgYgAUEoaigCADYCACAEQSBqIgcgAUEgaikDADcDACAEQRhqIgggAUEYaikDADcDACAEQRBqIgkgAUEQaikDADcDACAEQQhqIgogAUEIaikDADcDACAFIAUpAxA3A0AjAEHgAGsiASQAIAFBKGogAEHIAGoiA0EoaigCADYCACABQSBqIANBIGopAgA3AwAgAUEYaiADQRhqKQIANwMAIAFBEGogA0EQaikCADcDACABQQhqIANBCGopAgA3AwAgASADKQIANwMAIAFBMGoiAkEoaiAGKAIANgIAIAJBIGogBykCADcDACACQRhqIAgpAgA3AwAgAkEQaiAJKQIANwMAIAJBCGogCikCADcDACABIAQpAgA3AzAjAEFAaiIEJAACQAJAAkAgASoCACINQwAAAABcDQAgAUEEaioCAEMAAAAAXA0AIAFBCGoqAgBDAAAAAFwNACABKgIMQwAAAABcDQAgASoCEEMAAAAAXA0AIAFBFGoqAgBDAAAAAFwNACABQRhqKgIAQwAAAABcDQAgASoCHEMAAAAAXA0AIAFBIGoqAgBDAAAAAFwNACABQSRqKgIAIgxDAAAAAFsEQCABQShqKgIAQwAAgD9bDQIgAUEkaioCACEMCyAMQwAAAABcDQAgAUEoaioCAEMAAIC/Ww0BCwJAIAIqAgAiE0MAAAAAXARAIAJBBGoqAgAhEQwBCyACQQRqKgIAIhFDAAAAAFwNACACQQhqKgIAQwAAAABcDQAgAioCDEMAAAAAXA0AIAIqAhBDAAAAAFwNACACQRRqKgIAQwAAAABcDQAgAkEYaioCAEMAAAAAXA0AIAIqAhxDAAAAAFwNACACQSBqKgIAQwAAAABcDQAgAkEkaioCACIMQwAAAABbBEAgAkEoaioCAEMAAIA/Ww0C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AyAFDAELIAVBPGohAiADQfj///8DcSEIQQAhAwNAIAIoAgAgAkEIaygCACACQRBrKAIAIAJBGGsoAgAgAkEgaygCACACQShrKAIAIAJBMGsoAgAgAkE4aygCACADampqampqamohAyACQUBrIQIgCEEIayIIDQALIAJBPGsLIAZFDQBBBGohAgNAIAIoAgAgA2ohAyACQQhqIQIgBkEBayIGDQALCwJAAkACQCAJRQRAIAMhAgwBCwJAIAdFDQAgBSgCBA0AIANBEEkNAgsgAyADIANqIgJLDQELIAJFDQACQCACQQBOBEAgAkEBEO4KIgNFDQEMAwsQ3wkACyACQQFB3ObDACgCACIAQY8HIAAbEQAAAAtBASEDQQAhAgsgAEEANgIIIAAgAjYCBCAAIAM2AgAgBCAANgIEIARBCGoiAEEQaiABQRBqKQIANwMAIABBCGogAUEIaikCADcDACAEIAEpAgA3AwggBEEEakHkpMMAIAAQtQJFBEAgBEEgaiQADwtB1KXDAEEzIARBCGpB/KTDAEGgpsMAEIgIAAvaAgEEfwJAAkAgALwiA0EXdkH/AXEiAkH/AUcEQCADQQF0IgFBgICAgHhNDQECfyACRQRAQQAhAiADQQl0IgFBAE4EQANAIAJBAWshAiABQQF0IgFBAE4NAAsLIANBASACa3QMAQsgA0H///8DcUGAgIAEcgshAQwCCyAAIACSIgAgAJUPCyAAQwAAAACUIAAgAUGAgICAeEYbDwsCQCACQYABSgRAA0AgAUGAgIAEayIEQQBOBEAgBCIBRQ0DCyABQQF0IQEgAkEBayICQYABSg0AC0GAASECCwJAAkACQCABQYCAgARrIgRBAE4EQCAEIgFFDQELIAFB////A00NAQwCCyAAQwAAAACUDwsDQCACQQFrIQIgAUGAgIACSSABQQF0IQENAAsLIANBgICAgHhxIAFBASACa3YgAUGAgIAEayACQRd0ciACQQBMG3K+DwsgAEMAAAAAlAu7AwELfSADQQhqKgIAIgQgAioCACILlCADKgIAIgcgAkEIaioCACIMlJMiCSAJkiEIIAcgAkEEaioCACIJlCADQQRqKgIAIgogC5STIg0gDZIhBSAKIAIqAgwiDSAIlCALIAWUIAwgCiAMlCAEIAmUkyIKIAqSIgqUk5KSIQ4CQAJAAkAgBCANIAWUIAkgCpQgCyAIlJOSkiIEIASUIAcgDSAKlCAMIAiUIAkgBZSTkpIiBSAFlEMAAAAAkpJDAAAAAJIQfSIHQwAAAABcBEAgDiABKgIAIgiUIgogBCAEIAeVIAEqAgQiBJQiBpQgBSAFIAeVIASUIgWUIAqTkl4NASAIjCEIDAMLIAEqAgAgDpghCAwBC0MAAAAAIQYLQwAAAAAhBQsgACACQRhqKgIAIAYgDSALIAiUIAkgBZSTIgQgBJIiBJQgCyAMIAWUIAsgBpSTIgcgB5IiB5QgCSAJIAaUIAwgCJSTIgYgBpIiBpSTkpKSOAIIIAAgAkEUaioCACAIIA0gB5QgDCAGlCALIASUk5KSkjgCBCAAIAJBEGoqAgAgBSANIAaUIAkgBJQgDCAHlJOSkpI4AgALsQMBEH0gAyoCACACQRBqKgIAIg+TIgkgAkEEaioCACIKlCADQQRqKgIAIAJBFGoqAgAiEJMiCyACKgIAIgyUkyIHIAeSIQggCyACQQhqKgIAIgeUIANBCGoqAgAgAkEYaioCACIRkyIFIAqUkyINIA2SIQYCQAJAIAFBCGoqAgAiEiAFIAIqAgwiDSAIlCAKIAaUIAwgBSAMlCAJIAeUkyIFIAWSIg6Uk5KSIgWUIAEqAgAiEyAJIA0gBpQgByAOlCAKIAiUk5KSIgmUIAFBBGoqAgAiFCALIA0gDpQgDCAIlCAHIAaUk5KSIgiUkpIiBkMAAAAAXyICRQ0AIARFDQBBASECDAELIAUgEiAGlJMhBSAIIBQgBpSTIQggCSATIAaUkyEJCyAAIAI6AAwgACARIAUgDSAMIAiUIAogCZSTIgYgBpIiBpQgDCAHIAmUIAwgBZSTIgsgC5IiC5QgCiAKIAWUIAcgCJSTIgUgBZIiBZSTkpKSOAIIIAAgECAIIA0gC5QgByAFlCAMIAaUk5KSkjgCBCAAIA8gCSANIAWUIAogBpQgByALlJOSkpI4AgALvgMCDH0BfyMAQTBrIhAkACADKgIAIAJBEGoqAgAiDZMiDCACQQRqKgIAIgeUIANBBGoqAgAgAkEUaioCACIOkyIIIAIqAgAiCZSTIgYgBpIhCiAIIAJBCGoqAgAiBpQgA0EIaioCACACQRhqKgIAIg+TIgQgB5STIgsgC5IhBSAQIAQgAioCDCILIAqUIAcgBZQgCSAEIAmUIAwgBpSTIgQgBJIiBJSTkpI4AgggECAIIAsgBJQgCSAKlCAGIAWUk5KSOAIEIBAgDCALIAWUIAYgBJQgByAKlJOSkjgCACAQQRBqIgIgASAQELgCIBAqAhAhCiAQKgIYIQUgECoCFCEMIBAtABwhASAAQRRqQQAgAkEUaigCACAQKAIgIgIbNgIAIAAgAkEARzYCECAAIAE6AAwgACAPIAUgCyAJIAyUIAcgCpSTIgggCJIiCJQgCSAGIAqUIAkgBZSTIgQgBJIiBJQgByAHIAWUIAYgDJSTIgUgBZIiBZSTkpKSOAIIIAAgDiAMIAsgBJQgBiAFlCAJIAiUk5KSkjgCBCAAIA0gCiALIAWUIAcgCJQgBiAElJOSkpI4AgAgEEEwaiQAC7AEAgR9AX8CQAJAAkAgAkEMaioCACIHQwAAAABcBEBDAACAPyAHlSIGIAFBDGoqAgAgAioCACIFk5QiByAGIAEqAgAgBZOUIgVdIQkgAyADIAUgByAJGyIGIAMgBl0bIAYgBlwbIgNDAAAAAEMAAAAAIAcgBSAJGyIGIAZDAAAAAF0bIAYgBlwbIgZdRQ0BDAILIAIqAgAiBSABKgIAXQ0CIAUgAUEMaioCAF4NAgsCQCACQRBqKgIAIgdDAAAAAFwEQEMAAIA/IAeVIgUgAUEQaioCACACQQRqKgIAIgiTlCIHIAUgAUEEaioCACAIk5QiCF0hCSADIAMgCCAHIAkbIgUgAyAFXRsgBSAFXBsiAyAHIAggCRsiBSAFIAYgBSAGXhsgBiAGXBsiBl0NAgwBC0EAIQkgAkEEaioCACIFIAFBBGoqAgBdDQIgBSABQRBqKgIAXg0CCwJAIAJBFGoqAgAiB0MAAAAAXARAQwAAgD8gB5UiBSABQRRqKgIAIAJBCGoqAgAiCJOUIgcgBSABQQhqKgIAIAiTlCIIXSEBIAMgAyAIIAcgARsiBSADIAVdGyAFIAVcGyIDIAcgCCABGyIFIAUgBiAFIAZeGyAGIAZcGyIGXQ0CDAELQQAhCSACQQhqKgIAIgUgAUEIaioCAF0NAiAFIAFBFGoqAgBeDQILIAYgBiADIAQbIAZDAAAAAFwbIQdBASEJDAELQQAhCQsgACAHOAIEIAAgCTYCAAu8AwEJfSMAQUBqIgUkACACQQRqKgIAIgcgA0EMaioCACINlCACKgIAIgsgA0EQaioCACIOlJMiCCAIkiEJIAJBCGoqAgAiCCAOlCAHIANBFGoqAgAiBpSTIgwgDJIhCiAFQRRqIAYgAioCDCIMIAmUIAcgCpQgCyALIAaUIAggDZSTIgYgBpIiBpSTkpI4AgAgBUEQaiAOIAwgBpQgCyAJlCAIIAqUk5KSOAIAIAUgDSAMIAqUIAggBpQgByAJlJOSkjgCDCAHIAMqAgAgAkEQaioCAJMiDZQgCyADQQRqKgIAIAJBFGoqAgCTIg6UkyIJIAmSIQkgDiAIlCADQQhqKgIAIAJBGGoqAgCTIgYgB5STIgogCpIhCiAFIAYgDCAJlCAHIAqUIAsgBiALlCANIAiUkyIGIAaSIgaUk5KSOAIIIAUgDiAMIAaUIAsgCZQgCCAKlJOSkjgCBCAFIA0gDCAKlCAIIAaUIAcgCZSTkpI4AgAgBUEYaiABIAFBDGogAUEYaiAFEOwBAn8gBSgCKEEERwRAIAUqAhgiByAEXwwBC0EACyECIAAgBzgCBCAAIAI2AgAgBUFAayQAC9UDAgd/AX4jAEEQayIFJAAgAC0AHEUEQCAALQAYIABBAToAGARAA0AgAiACQQFqIAJBCksgAkEHT3EbIQIgAC0AGCAAQQE6ABgNAAsLIAAtABxFBEAgBSAAEI8EAkAgBSgCCCIBRQ0AIAEgASgCACIBQQFrNgIAIAFBAUcNACAFQQhqEOkICyAAQRRqIgEoAgAhAyABQQA2AgAgAEEMaigCACICIANBDGwiBmohAQJAIANFDQAgBUEIaiEHA0AgAkEIaigCACIERQRAIAJBDGohAgwCCyAEIAQoAhAiAyACKQIAIginIAMbNgIQIAUgBDYCCCAFIAg3AwACQCADBEAgBSgCCCEEDAELIAUoAggiBCgCGEEYahD3BAsgBCAEKAIAIgNBAWs2AgAgA0EBRgRAIAcQ6QgLIAJBDGohAiAGQQxrIgYNAAsgASECCyABIAJrIgEEQCABQQxuQQxsIQQgACgCDCIBIAIgAWtBDG1BDGxqQQhqIQIDQCACKAIAIgEoAgAhAyABIANBAWs2AgAgA0EBRgRAIAIQ6QgLIAJBDGohAiAEQQxrIgQNAAsLIAAgAEEIaigCACAAQRRqKAIAckU6ABwLIABBADoAGAsgBUEQaiQAC8YDAgR/DH0gBEEMaigCACIIIAMoAgAiBUEDaiIGTwRAAkAgBCgCACIEIAVBAnRqIgcgASkCADcCACAHQQhqIAFBCGooAgA2AgAgBUEGaiIHIAhLDQAgBCAGQQJ0aiIGIAIpAgA3AgAgBkEIaiACQQhqKAIANgIAIAVBDGoiBSAISw0AIAQgB0ECdGoiBCAAKgIYIAEqAgAiD5Q4AgAgBCAAQSBqKgIAIAFBCGoqAgAiEJQ4AgggBCAAQRxqKgIAIAFBBGoqAgAiEZQ4AgQgAEEsaioCACEMIABBOGoqAgAhEiAAQShqKgIAIQ0gAEEwaioCACETIAJBBGoqAgAhCSAAQTRqKgIAIQ4gAkEIaioCACEKIAAqAiQhFCACKgIAIQsgAyAFNgIAIARBEGogDSALlCAJIBOUkiAKIA6UkjgCACAEQRRqIAwgC5QgCSAOlJIgCiASlJI4AgAgBEEMaiAUIAuUIAkgDZSSIAogDJSSOAIAIA8gACoCAJQgESAAQQRqKgIAlJIgECAAQQhqKgIAlJIgCyAAKgIMlCAJIABBEGoqAgCUkiAKIABBFGoqAgCUkpIPCwtBvPTAAEEdQcT1wAAQtAoAC+wDAgd/A30jAEEQayIDJAAgAAJ/IAEoAgQiAkUEQCAAQQA2AgRBAAwBCyABIAJBAWs2AgQgAAJ/IAEoAgAiASgCBCIFQQdNBEAgA0KBygA3AwggA0EIahCPCgwBCyABIAVBCGsiBDYCBCABIAEoAgAiAkEIajYCACADIAIpAAAQ8AUgAygCAARAIAMoAgQMAQsCQAJAIAMoAgQiBkUEQEEAIQQMAQsgBEEDTQ0BIAEgBUEMayIHNgIEIAEgAkEMajYCAEEBIQQgBkEBRg0AIAdBBEkNASACKAAIIQcgASAFQRBrIgg2AgQgASACQRBqNgIAQQIhBCAGQQJGDQAgCEEESQ0BIAIqAAwhCSABIAVBFGsiCDYCBCABIAJBFGo2AgBBAyEEIAZBA0YNACAIQQRJDQEgAioAECEKIAEgBUEYayIENgIEIAEgAkEYajYCACAGQQRHBEAgBEEESQ0CIAEgBUEcazYCBCABIAJBHGo2AgBBBCADQZCAwAAQgQgMAwsgAioAFCELIABBATYCBCAAQRRqIAs4AgAgAEEQaiAKOAIAIABBDGogCTgCACAAQQhqIAc2AgBBAAwDCyAEIANBkIDAABCBCAwBCyADQoHKADcDCCADQQhqEI8KCzYCBEEBCzYCACADQRBqJAALtgMCCX0BfyMAQdAAayINJAAgAioCACABQRBqKgIAkyILIAFBBGoqAgAiCJQgAkEEaioCACABQRRqKgIAkyIMIAEqAgAiCZSTIgUgBZIhBiAMIAFBCGoqAgAiBZQgAkEIaioCACABQRhqKgIAkyIEIAiUkyIKIAqSIQcgDSAEIAEqAgwiCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIgIA0gDCAKIASUIAkgBpQgBSAHlJOSkjgCHCANIAsgCiAHlCAFIASUIAggBpSTkpI4AhggCCACQQxqKgIAIguUIAkgAkEQaioCACIMlJMiBiAGkiEGIAUgDJQgCCACQRRqKgIAIgSUkyIHIAeSIQcgDSAEIAogBpQgCCAHlCAJIAkgBJQgBSALlJMiBCAEkiIElJOSkjgCMCANIAwgCiAElCAJIAaUIAUgB5STkpI4AiwgDSALIAogB5QgBSAElCAIIAaUk5KSOAIoIA0gDUEYaiANQShqIgEQ5AkgASAAIABBDGogAEEYaiANEOwBAn8gDSgCOEEERwRAIA0qAiggA18MAQtBAAsgDUHQAGokAAuHBAEIfyMAQSBrIgIkAAJAAkACQAJ/IAEoAgQiA0EHTQRAIAJCgcoANwMIIAJBCGoQjwoMAQsgASADQQhrIgU2AgQgASABKAIAIgNBCGo2AgAgAkEYaiADKQAAEPAFIAIoAhhFDQEgAigCHAshASAAQQE2AgAgACABNgIEDAELAkAgAigCHCIGQYAgIAZBgCBJGyIERQRAQQQhBwwBCyAEQQN0IgNBBBDuCiIHRQ0CC0EAIQMgAkEANgIQIAIgBDYCDCACIAc2AgggBgRAA0ACQAJ/IAVBA00EQCACQoHKADcDGCACQRhqEI8KDAELIAEgBUEEayIFNgIEIAEgASgCACIEQQRqNgIAIAVBA0sNASACQoHKADcDGCACQRhqEI8KCyEBIABBATYCACAAIAE2AgQgAigCDCIARQ0DIABBA3RFDQMgAigCCBCsAQwDCyAGQQFrIQYgBCgAACEIIAEgBUEEayIFNgIEIAEgBEEIajYCACAEKAAEIQQgAigCDCADRgRAIAJBCGogAxD6BSACKAIIIQcgAigCECEDCyAHIANBA3RqIgkgBDYCBCAJIAg2AgAgAiADQQFqIgM2AhAgBg0ACwsgACACKQMINwIEIABBADYCACAAQQxqIAJBEGooAgA2AgALIAJBIGokAA8LIANBBEHc5sMAKAIAIgBBjwcgABsRAAAAC9UaAx5/CX0DfiMAQdAAayINJAACQAJAAkAgAEUNACAAKAIAIglBf0YNASAAIAlBAWo2AgAgAUUNACABKAIAIglBf0YNASABIAlBAWo2AgAgAkUNACACKAIAIglBf0YNASACIAlBAWo2AgAgA0UNACADKAIAIglBf0YNASADIAlBAWo2AgAgDSAHNgIUIA1BMGoiEEEIaiACQQRqIglBCGooAgA2AgAgDSAJKQIANwMwIA1BQGsiCUEIaiIVIANBDGooAgA2AgAgDSADKQIENwNAIA1BGGoiESAQIAkQ5AkgDSANQRRqQQAgBxAFQQFGIgcbNgIwIA1BCGoiEyAGQf//A3E2AgQgEyAGQRB2NgIAIA0oAgghBiANKAIMIQtBACETIwBB8ANrIggkACAIQdwAakHUv8AANgIAIAhB1ABqIAs2AgAgCCAQQQAgBxs2AlggCCAGNgJQIAggAUEEajYCTCAIIABBBGoiEDYCSCAIQYACaiIGQRBqIBFBEGopAgA3AwAgBkEIaiARQQhqKQIANwMAIAggESkCADcDgAIgCEHgAGogBhC+BSAIIAVBAEc6AMwBIAggBDgCyAEgCCARNgLEASAIIAhByABqNgLAASAJIhECf0EAIBBBKGooAgAiFkUNABogCEEANgLYASAIQgQ3A9ABIAhB0AFqIgVBABD6BSAIKALQASAIKALYASIGQQN0akKAgICA8P///343AgAgCCAGQQFqNgLYASAIQfABaiAFEOsCAkAgCCgC8AFBAUcNACAIQdMDaiEbIAhB4ANqQQRyIRwgCEGAA2pBBHIhHUP//39/IScDQCAnIAgqAvgBjF8NAQJAAn0CQCAIKAL0ASIFIBZJBEAgCEGAAmogECgCICAFQQd0akGAARDZCxogCC0A+AIiCwRAIAgoAuwCIg4gECgCRCIFSSEJIBAoAjwiBiAOQQR0akEAIAkbQQhqQQAgCRshFyAIKALoAiIOIAVJIQkgBiAOQQR0akEAIAkbQQhqQQAgCRshGCAIKALkAiIOIAVJIQkgBiAOQQR0akEAIAkbQQhqQQAgCRshGSAIKALgAiIJIAVJIQUgBiAJQQR0akEAIAUbQQhqQQAgBRshFAsgCCAIKgLIASImOALsAyAIICY4AugDIAggJjgC5AMgCCAmOALgAyAIQYADaiAIQYACaiAIQeAAaiAIQeADahDMASAIQcgDaiIGIB1BCGooAgA2AgAgCCAdKQIANwPAAyAIKAKAAyEFIAgqApADISggCCoClAMhKSAIKgKYAyEmIAgqApwDISogC0UEQEEAIQ9BACELQQAhBkEAIQ4MBAsgHCAIKQPAAzcCACAcQQhqIAYoAgA2AgAgCCAFNgLgAyAIICcgKl46AIMDIAggJiAnXToAggMgCCAnICleOgCBAyAIICcgKF46AIADIAhB0ANqIAhB4ANqIAhBgANqEN8IIAgtANADIAgtANEDQQF0ciAILQDSA0ECdHIgCC0A0wNBA3RyrSIwQv8BgyEvQwAAAAAhKUEAIQYgMEIBg0IAIBQbUARAQQAhDgwCC0EAIQ4gCCgCwAEiCigCBCIJKAIIIgsgFCgCACIFTQ0BIAkoAgAgBUGgAWxqQQAgBSALSRsiCygCAEEBRw0BIBQoAgQiCSALKAIERw0BIApBDGooAgAgC0H8AGooAgBxRQ0BIAooAgggCygCgAFxRQ0BIAooAhAiDwRAIA8gBSAJIApBFGooAgAoAhQRBABFDQILIAhBQGsiCiALQRhqIg9BBGooAgAiDDYCBCAKIA8oAgAgDCgCCEEHakF4cWo2AgAgCEE4aiAIKAJAIAtB1ABqIAgoAsQBIAgqAsgBIAgtAMwBIAgoAkQoAhgRCQBDAAAAACAIKAI4QQFHDQIaQQEhDiAJIRMgBSEeIAgqAjwiKwwCCyAFIBZBhNvAABCvCAALQwAAAAALISgCQCAvQgKDUA0AIBlFDQAgCCgCwAEiCigCBCIJKAIIIgsgGSgCACIFTQ0AIAkoAgAgBUGgAWxqQQAgBSALSRsiCygCAEEBRw0AIBkoAgQiCSALKAIERw0AIApBDGooAgAgC0H8AGooAgBxRQ0AIAooAgggCygCgAFxRQ0AIAooAhAiDwRAIA8gBSAJIApBFGooAgAoAhQRBABFDQELIAhBMGoiCiALQRhqIg9BBGooAgAiDDYCBCAKIA8oAgAgDCgCCEEHakF4cWo2AgAgCEEoaiAIKAIwIAtB1ABqIAgoAsQBIAgqAsgBIAgtAMwBIAgoAjQoAhgRCQAgCCgCKEEBRw0AQQEhBiAJIR8gBSEgIAgqAiwiLCEpC0MAAAAAISpBACEPAn0CQCAvQgSDUA0AIBhFDQBBACELQwAAAAAgCCgCwAEiDCgCBCIJKAIIIgogGCgCACIFTQ0BGkMAAAAAIAkoAgAgBUGgAWxqQQAgBSAKSRsiCigCAEEBRw0BGkMAAAAAIBgoAgQiCSAKKAIERw0BGkMAAAAAIAxBDGooAgAgCkH8AGooAgBxRQ0BGkMAAAAAIAwoAgggCigCgAFxRQ0BGgJAIAwoAhAiEkUNACASIAUgCSAMQRRqKAIAKAIUEQQADQBDAAAAAAwCCyAIQSBqIgwgCkEYaiISQQRqKAIAIho2AgQgDCASKAIAIBooAghBB2pBeHFqNgIAIAhBGGogCCgCICAKQdQAaiAIKALEASAIKgLIASAILQDMASAIKAIkKAIYEQkAQwAAAAAgCCgCGEEBRw0BGkEBIQsgCSEhIAUhIiAIKgIcIi0MAQtBACELQwAAAAALISYCQCAvQgiDUA0AIBdFDQAgCCgCwAEiDCgCBCIJKAIIIgogFygCACIFTQ0AIAkoAgAgBUGgAWxqQQAgBSAKSRsiCigCAEEBRw0AIBcoAgQiCSAKKAIERw0AIAxBDGooAgAgCkH8AGooAgBxRQ0AIAwoAgggCigCgAFxRQ0AIAwoAhAiEgRAIBIgBSAJIAxBFGooAgAoAhQRBABFDQELIAhBEGoiDCAKQRhqIhJBBGooAgAiGjYCBCAMIBIoAgAgGigCCEEHakF4cWo2AgAgCEEIaiAIKAIQIApB1ABqIAgoAsQBIAgqAsgBIAgtAMwBIAgoAhQoAhgRCQAgCCgCCEEBRw0AQQEhDyAJISMgBSEkIAgqAgwiLiEqCyAPQRh0IAtBEHRyIAZBCHRyIA5yIQULIAggLjgCvAMgCCAjNgK4AyAIICQ2ArQDIAggDzYCsAMgCCAtOAKsAyAIICE2AqgDIAggIjYCpAMgCCALNgKgAyAIICw4ApwDIAggHzYCmAMgCCAgNgKUAyAIIAY2ApADIAggKzgCjAMgCCATNgKIAyAIIB42AoQDIAggDjYCgAMgCCAqOALsAyAIICY4AugDIAggKTgC5AMgCCAoOALgAyAFQRV2QfgBcSAFQQ52QfwBcSAFQQd2Qf4BcSAFQf8BcXJycq0hMSAQKAJEIQtCACEvA0AgLyIwQgF8IS8CQCAxIDCIQgGDUA0AIDCnIQUgCC0A+AIEQCAFQQJ0IgYgCEHgA2pqKgIAIiYgJ11FDQEgCEGAA2ogBUEEdGoiBSgCAEEBRw0BIAYgCGpB4AJqKAIAIAtPDQEgGyAFKQAENwAAIBtBCGogBUEMaigAADYAACAIIAgpANADNwPgASAIIAhB1wNqKQAANwDnAUEBISUgJiEnDAELIAVBAnQiBSAIakHgAmooAgAiDiAWTw0AIAhB4ANqIAVqKgIAjCEmIAgoAtgBIgUhBiAIKALUASAFRgRAIAhB0AFqIAUQ+gUgCCgC2AEhBgsgCCgC0AEiCSAGQQN0aiIKICY4AgQgCiAONgIAIAggBkEBajYC2AEgCSAFQQN0aiIGKgIEISYgBigCACEOAkAgBUUEQEEAIQYMAQsDQEEAQX8gCSAFQQFrIgpBAXYiBkEDdGoiD0EEaioCACIoICZfIgwbQQFBAiAMGyAmIChfG0EDa0F+SQRAIAUhBgwCCyAJIAVBA3RqIA8pAgA3AgAgBiEFIApBAUsNAAsLIAkgBkEDdGoiBSAmOAIEIAUgDjYCAAsgL0IEUg0ACyAIQfABaiAIQdABahDrAiAIKALwAUEBRg0ACwsgCCAIKQPgATcDgAMgCCAIKQDnATcAhwMCQCAIKALUASIFRQ0AIAVBA3RFDQAgCCgC0AEQrAELQQAgJUUNABogCCAIKQCHAzcAhwIgCCAIKQOAAzcDgAIgESAIKQCDAjcABCARQQxqIAhBiwJqKAAANgAAQQELNgIAIAhB8ANqJAAgDSgCQCIFBEAgFSgCACEHIA0oAkQhFSANQcwAaioCACEECyADIAMoAgBBAWs2AgAgAiACKAIAQQFrNgIAIAEgASgCAEEBazYCACAAIAAoAgBBAWs2AgACQCAFRQRAQQAhAwwBC0EQQQQQ7goiA0UNAyADIAQ4AgwgAyAHNgIIIAMgFTYCBCADQQA2AgALIA1B0ABqJAAgAw8LEM0LAAsQzgsAC0EQQQRB3ObDACgCACIAQY8HIAAbEQAAAAvMAwIBfwh9IwBBMGsiBiQAIAVDAAAAAGAEQCAGIAJBCGoqAgAiCow4AhAgBiACQQRqKgIAIgiMOAIMIAYgAioCACILjDgCCCAGQSBqIAMgASAGQQhqIAQoAhQRAQAgAAJ/QQIgBYwgCCAGKgIkIgmMlCALIAYqAiAiDJSTIAogBioCKCIHlJMiBV9FDQAaQQAgBUMAAAAAYA0AGiAAQQxqIAogBZQgB5I4AgAgAEEIaiAIIAWUIAmSOAIAIAAgCyAFlCAMkjgCBCAMIAFBEGoqAgCTIgwgAUEEaioCACIFlCAJIAFBFGoqAgCTIg0gASoCACIKlJMiCCAIkiEIIA0gAUEIaioCACILlCAHIAFBGGoqAgCTIgcgBZSTIgkgCZIhCSAAQRhqIAcgASoCDCIOIAiUIAUgCZQgCiAHIAqUIAwgC5STIgcgB5IiB5STkpI4AgAgAEEUaiANIA4gB5QgCiAIlCALIAmUk5KSOAIAIABBEGogDCAOIAmUIAsgB5QgBSAIlJOSkjgCAEEBCzYCACAGQTBqJAAPCyAGQRxqQQA2AgAgBkHA7MEANgIYIAZCATcCDCAGQYyIwgA2AgggBkEIakGMj8IAEOAJAAvtAwIDfwF9IAAoAgAoAgAiAkEEaiIEKAIAIAJBCGoiAygCACIAa0EHTQRAIAIgAEEIEMMGIAMoAgAhAAsgAigCACAAakIGNwAAIAMgAEEIaiIANgIAIAEqAgAhBSAEKAIAIABrQQNNBEAgAiAAQQQQwwYgAkEIaigCACEACyACKAIAIABqIAU4AAAgAkEIaiIDIABBBGoiADYCACABKgIEIQUgAkEEaiIEKAIAIABrQQNNBEAgAiAAQQQQwwYgAygCACEACyACKAIAIABqIAU4AAAgAyAAQQRqIgA2AgAgASoCCCEFIAQoAgAgAGtBA00EQCACIABBBBDDBiACQQhqKAIAIQALIAIoAgAgAGogBTgAACACQQhqIgMgAEEEaiIANgIAIAEqAgwhBSACQQRqIgQoAgAgAGtBA00EQCACIABBBBDDBiADKAIAIQALIAIoAgAgAGogBTgAACADIABBBGoiADYCACABKgIQIQUgBCgCACAAa0EDTQRAIAIgAEEEEMMGIAJBCGooAgAhAAsgAigCACAAaiAFOAAAIAJBCGoiAyAAQQRqIgA2AgAgASoCFCEFIAJBBGooAgAgAGtBA00EQCACIABBBBDDBiADKAIAIQALIAMgAEEEajYCACACKAIAIABqIAU4AABBAAulAwEOfSADKgIAIAJBEGoqAgAiEJMiCCACQQRqKgIAIgqUIANBBGoqAgAgAkEUaioCACIRkyILIAIqAgAiDJSTIgkgCZIhByALIAJBCGoqAgAiCZQgA0EIaioCACACQRhqKgIAIhKTIgUgCpSTIg0gDZIhBgJAAkAgBSACKgIMIg0gB5QgCiAGlCAMIAUgDJQgCCAJlJMiBSAFkiIPlJOSkiIFIAWUIAggDSAGlCAJIA+UIAogB5STkpIiCCAIlCALIA0gD5QgDCAHlCAJIAaUk5KSIgcgB5SSkkMAAAAAkiIGIAEqAgAiDiAOlF8iAkUNACAERQ0AQQEhAgwBCyAFIA4gBhB9lSIGlCEFIAcgBpQhByAIIAaUIQgLIAAgAjoADCAAIBIgBSANIAwgB5QgCiAIlJMiBiAGkiIGlCAMIAkgCJQgDCAFlJMiCyALkiILlCAKIAogBZQgCSAHlJMiBSAFkiIFlJOSkpI4AgggACARIAcgDSALlCAJIAWUIAwgBpSTkpKSOAIEIAAgECAIIA0gBZQgCiAGlCAJIAuUk5KSkjgCAAusAwIJfQF/IwBBQGoiDSQAIAFBBGoqAgAiCCACQQxqKgIAIguUIAEqAgAiCSACQRBqKgIAIgyUkyIFIAWSIQYgAUEIaioCACIFIAyUIAggAkEUaioCACIElJMiCiAKkiEHIA1BFGogBCABKgIMIgogBpQgCCAHlCAJIAkgBJQgBSALlJMiBCAEkiIElJOSkjgCACANQRBqIAwgCiAElCAJIAaUIAUgB5STkpI4AgAgDSALIAogB5QgBSAElCAIIAaUk5KSOAIMIAggAioCACABQRBqKgIAkyILlCAJIAJBBGoqAgAgAUEUaioCAJMiDJSTIgYgBpIhBiAMIAWUIAJBCGoqAgAgAUEYaioCAJMiBCAIlJMiByAHkiEHIA0gBCAKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AgggDSAMIAogBJQgCSAGlCAFIAeUk5KSOAIEIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCACANQRhqIAAgAEEMaiAAQRhqIA0Q7AECfyANKAIoQQRHBEAgDSoCGCADXwwBC0EACyANQUBrJAALxQMCCH0CfyMAQRBrIg8kACABIAGUIAIgApSSIAMgA5SSQwAAAACSIgdDAAAAAF4EQCADIAcQfSIDlSEKIAEgA5UhCyACIAOVIQgLQwAAgD8hAwJAAkACQCAEIASUIAUgBZSSIAYgBpSSQwAAAACSIgFDAAAAAF5FDQAgARB9IQEgB0MAAAAAXkUNACALIAUgAZUiBZQgCCAEIAGVIgSUkyIMIAyUIAggBiABlSIGlCAKIAWUkyINIA2UIAogBJQgCyAGlJMiDiAOlJKSQwAAAACSIgFDAACAKF4EQCABEH0hByAKIAaUIAsgBJQgCCAFlJKSIgRDAACAv18NA0MAAAAAIQFDAAAAACECIARDAACAP2ANAiAPQQhqIAQQ4ARDAAAAP5QQdyAMIAeVIA8qAggiA5QhAiAOIAeVIAOUIQEgDSAHlSADlCEJIA8qAgwhAwwCC0MAAAAAIQFDAAAAACECIAogBpQgCyAElCAIIAWUkpJDAAAAAF1FDQEMAgtDAAAAACEBQwAAAAAhAgsgACAJOAIEIABBEGogAzgCACAAQQxqIAI4AgAgAEEIaiABOAIAQQEhEAsgACAQNgIAIA9BEGokAAvIAwEWfSABQQxqKgIAIQ4gAUEIaioCACEEIAFBBGoqAgAhBSABQRxqKgIAIQ8gAUEYaioCACEGIAFBFGoqAgAhByABQRBqKgIAIRAgAUEsaioCACERIAFBKGoqAgAhCCABQSRqKgIAIQkgAUEgaioCACESIAFBPGoqAgAhEyABQThqKgIAIQogAUE0aioCACELIAFBMGoqAgAhFCABQcwAaioCACEVIAFByABqKgIAIQwgAUHEAGoqAgAhDSABQUBrKgIAIRYgASoCACEXIABBFGogAUHQAGoqAgAiAiABQdQAaioCACIDIAIgA2AbIgIgAUHYAGoqAgAiAyACIANgGyICIAFB3ABqKgIAIgMgAiADYBs4AgAgAEEQaiAWIA0gDSAWXxsiDSAMIAwgDV8bIgwgFSAMIBVgGzgCACAAIBQgCyALIBRfGyILIAogCiALXxsiCiATIAogE2AbOAIMIAAgEiAJIAkgEmAbIgkgCCAIIAlgGyIIIBEgCCARXxs4AgggACAQIAcgByAQYBsiByAGIAYgB2AbIgYgDyAGIA9fGzgCBCAAIBcgBSAFIBdgGyIFIAQgBCAFYBsiBCAOIAQgDl8bOAIAC7ADAgx9AX8jAEEwayIQJAAgAyoCACACQRBqKgIAIg2TIgsgAkEEaioCACIIlCADQQRqKgIAIAJBFGoqAgAiDpMiDCACKgIAIgmUkyIFIAWSIQYgDCACQQhqKgIAIgWUIANBCGoqAgAgAkEYaioCACIPkyIEIAiUkyIKIAqSIQcgECAEIAIqAgwiCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIoIBAgDCAKIASUIAkgBpQgBSAHlJOSkjgCJCAQIAsgCiAHlCAFIASUIAggBpSTkpI4AiAgEEEIaiICIAEgEEEgakEAEI0CIABBFGogAkEUaigCADYCACAAQQM2AhAgACAQLQAUOgAMIAkgECoCDCILlCAIIBAqAggiDJSTIgYgBpIhBiAFIAyUIAkgECoCECIElJMiByAHkiEHIAAgDyAEIAogBpQgCSAHlCAIIAggBJQgBSALlJMiBCAEkiIElJOSkpI4AgggACAOIAsgCiAHlCAFIASUIAkgBpSTkpKSOAIEIAAgDSAMIAogBJQgCCAGlCAFIAeUk5KSkjgCACAQQTBqJAALrwMCDH0BfyMAQTBrIhAkACADKgIAIAJBEGoqAgAiDZMiCyACQQRqKgIAIgiUIANBBGoqAgAgAkEUaioCACIOkyIMIAIqAgAiCZSTIgUgBZIhBiAMIAJBCGoqAgAiBZQgA0EIaioCACACQRhqKgIAIg+TIgQgCJSTIgogCpIhByAQIAQgAioCDCIKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AiggECAMIAogBJQgCSAGlCAFIAeUk5KSOAIkIBAgCyAKIAeUIAUgBJQgCCAGlJOSkjgCICAQQQhqIgIgASAQQSBqQQAQHiAAQRRqIAJBFGooAgA2AgAgAEEDNgIQIAAgEC0AFDoADCAJIBAqAgwiC5QgCCAQKgIIIgyUkyIGIAaSIQYgBSAMlCAJIBAqAhAiBJSTIgcgB5IhByAAIA8gBCAKIAaUIAkgB5QgCCAIIASUIAUgC5STIgQgBJIiBJSTkpKSOAIIIAAgDiALIAogB5QgBSAElCAJIAaUk5KSkjgCBCAAIA0gDCAKIASUIAggBpQgBSAHlJOSkpI4AgAgEEEwaiQAC68DAgx9AX8jAEEwayIQJAAgAyoCACACQRBqKgIAIg2TIgsgAkEEaioCACIIlCADQQRqKgIAIAJBFGoqAgAiDpMiDCACKgIAIgmUkyIFIAWSIQYgDCACQQhqKgIAIgWUIANBCGoqAgAgAkEYaioCACIPkyIEIAiUkyIKIAqSIQcgECAEIAIqAgwiCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIoIBAgDCAKIASUIAkgBpQgBSAHlJOSkjgCJCAQIAsgCiAHlCAFIASUIAggBpSTkpI4AiAgEEEIaiICIAEgEEEgakEAEBsgAEEUaiACQRRqKAIANgIAIABBAzYCECAAIBAtABQ6AAwgCSAQKgIMIguUIAggECoCCCIMlJMiBiAGkiEGIAUgDJQgCSAQKgIQIgSUkyIHIAeSIQcgACAPIAQgCiAGlCAJIAeUIAggCCAElCAFIAuUkyIEIASSIgSUk5KSkjgCCCAAIA4gCyAKIAeUIAUgBJQgCSAGlJOSkpI4AgQgACANIAwgCiAElCAIIAaUIAUgB5STkpKSOAIAIBBBMGokAAuvAwIMfQF/IwBBMGsiECQAIAMqAgAgAkEQaioCACINkyILIAJBBGoqAgAiCJQgA0EEaioCACACQRRqKgIAIg6TIgwgAioCACIJlJMiBSAFkiEGIAwgAkEIaioCACIFlCADQQhqKgIAIAJBGGoqAgAiD5MiBCAIlJMiCiAKkiEHIBAgBCACKgIMIgogBpQgCCAHlCAJIAQgCZQgCyAFlJMiBCAEkiIElJOSkjgCKCAQIAwgCiAElCAJIAaUIAUgB5STkpI4AiQgECALIAogB5QgBSAElCAIIAaUk5KSOAIgIBBBCGoiAiABIBBBIGpBABA0IABBFGogAkEUaigCADYCACAAQQM2AhAgACAQLQAUOgAMIAkgECoCDCILlCAIIBAqAggiDJSTIgYgBpIhBiAFIAyUIAkgECoCECIElJMiByAHkiEHIAAgDyAEIAogBpQgCSAHlCAIIAggBJQgBSALlJMiBCAEkiIElJOSkpI4AgggACAOIAsgCiAHlCAFIASUIAkgBpSTkpKSOAIEIAAgDSAMIAogBJQgCCAGlCAFIAeUk5KSkjgCACAQQTBqJAALrwMCDH0BfyMAQTBrIhAkACADKgIAIAJBEGoqAgAiDZMiCyACQQRqKgIAIgiUIANBBGoqAgAgAkEUaioCACIOkyIMIAIqAgAiCZSTIgUgBZIhBiAMIAJBCGoqAgAiBZQgA0EIaioCACACQRhqKgIAIg+TIgQgCJSTIgogCpIhByAQIAQgAioCDCIKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AiggECAMIAogBJQgCSAGlCAFIAeUk5KSOAIkIBAgCyAKIAeUIAUgBJQgCCAGlJOSkjgCICAQQQhqIgIgASAQQSBqQQAQHCAAQRRqIAJBFGooAgA2AgAgAEEDNgIQIAAgEC0AFDoADCAJIBAqAgwiC5QgCCAQKgIIIgyUkyIGIAaSIQYgBSAMlCAJIBAqAhAiBJSTIgcgB5IhByAAIA8gBCAKIAaUIAkgB5QgCCAIIASUIAUgC5STIgQgBJIiBJSTkpKSOAIIIAAgDiALIAogB5QgBSAElCAJIAaUk5KSkjgCBCAAIA0gDCAKIASUIAggBpQgBSAHlJOSkpI4AgAgEEEwaiQAC7ADAgx9AX8jAEEwayIQJAAgAyoCACACQRBqKgIAIg2TIgsgAkEEaioCACIIlCADQQRqKgIAIAJBFGoqAgAiDpMiDCACKgIAIgmUkyIFIAWSIQYgDCACQQhqKgIAIgWUIANBCGoqAgAgAkEYaioCACIPkyIEIAiUkyIKIAqSIQcgECAEIAIqAgwiCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIoIBAgDCAKIASUIAkgBpQgBSAHlJOSkjgCJCAQIAsgCiAHlCAFIASUIAggBpSTkpI4AiAgEEEIaiICIAEgEEEgakEAEO0BIABBFGogAkEUaigCADYCACAAQQM2AhAgACAQLQAUOgAMIAkgECoCDCILlCAIIBAqAggiDJSTIgYgBpIhBiAFIAyUIAkgECoCECIElJMiByAHkiEHIAAgDyAEIAogBpQgCSAHlCAIIAggBJQgBSALlJMiBCAEkiIElJOSkpI4AgggACAOIAsgCiAHlCAFIASUIAkgBpSTkpKSOAIEIAAgDSAMIAogBJQgCCAGlCAFIAeUk5KSkjgCACAQQTBqJAALrwMCDH0BfyMAQTBrIhAkACADKgIAIAJBEGoqAgAiDZMiCyACQQRqKgIAIgiUIANBBGoqAgAgAkEUaioCACIOkyIMIAIqAgAiCZSTIgUgBZIhBiAMIAJBCGoqAgAiBZQgA0EIaioCACACQRhqKgIAIg+TIgQgCJSTIgogCpIhByAQIAQgAioCDCIKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AiggECAMIAogBJQgCSAGlCAFIAeUk5KSOAIkIBAgCyAKIAeUIAUgBJQgCCAGlJOSkjgCICAQQQhqIgIgASAQQSBqQQAQGiAAQRRqIAJBFGooAgA2AgAgAEEDNgIQIAAgEC0AFDoADCAJIBAqAgwiC5QgCCAQKgIIIgyUkyIGIAaSIQYgBSAMlCAJIBAqAhAiBJSTIgcgB5IhByAAIA8gBCAKIAaUIAkgB5QgCCAIIASUIAUgC5STIgQgBJIiBJSTkpKSOAIIIAAgDiALIAogB5QgBSAElCAJIAaUk5KSkjgCBCAAIA0gDCAKIASUIAggBpQgBSAHlJOSkpI4AgAgEEEwaiQAC68DAgx9AX8jAEEwayIQJAAgAyoCACACQRBqKgIAIg2TIgsgAkEEaioCACIIlCADQQRqKgIAIAJBFGoqAgAiDpMiDCACKgIAIgmUkyIFIAWSIQYgDCACQQhqKgIAIgWUIANBCGoqAgAgAkEYaioCACIPkyIEIAiUkyIKIAqSIQcgECAEIAIqAgwiCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIoIBAgDCAKIASUIAkgBpQgBSAHlJOSkjgCJCAQIAsgCiAHlCAFIASUIAggBpSTkpI4AiAgEEEIaiICIAEgEEEgakEAEBkgAEEUaiACQRRqKAIANgIAIABBAzYCECAAIBAtABQ6AAwgCSAQKgIMIguUIAggECoCCCIMlJMiBiAGkiEGIAUgDJQgCSAQKgIQIgSUkyIHIAeSIQcgACAPIAQgCiAGlCAJIAeUIAggCCAElCAFIAuUkyIEIASSIgSUk5KSkjgCCCAAIA4gCyAKIAeUIAUgBJQgCSAGlJOSkpI4AgQgACANIAwgCiAElCAIIAaUIAUgB5STkpKSOAIAIBBBMGokAAuhAwENfSACQQhqKgIAIAFBGGoqAgCTIgsgASoCACIFlCACKgIAIAFBEGoqAgCTIgwgAUEIaioCACIJlJMiBiAGkiEHIAwgAUEEaioCACIGlCACQQRqKgIAIAFBFGoqAgCTIgQgBZSTIgogCpIhCAJAIABBBGoqAgAiDSAEIAEqAgwiCiAHlCAFIAiUIAkgBCAJlCALIAaUkyIEIASSIgSUk5KSjJQgACoCACIOIAwgCiAElCAJIAeUIAYgCJSTkpKUkyAAQQhqKgIAIg8gCyAKIAiUIAYgBJQgBSAHlJOSkpSTIhBDAAAAAF5FBEBBACEBIAYgAkEMaioCACILlCAFIAJBEGoqAgAiDJSTIgcgB5IhByAJIAyUIAYgAkEUaioCACIElJMiCCAIkiEIIBAgDyAEIAogB5QgBiAIlCAFIAUgBJQgCSALlJMiBCAEkiIElJOSkpQgDiALIAogCJQgCSAElCAGIAeUk5KSlCANIAwgCiAElCAFIAeUIAkgCJSTkpKUkpKVIgVDAAAAAGBFDQEgAyAFYEUNAQtBASEBCyABC5sDAQx9IANBCGoqAgAiBCACKgIAIgmUIAMqAgAiByACQQhqKgIAIgqUkyIIIAiSIQYgByACQQRqKgIAIgiUIANBBGoqAgAiCyAJlJMiDCAMkiEFIAsgAioCDCIMIAaUIAkgBZQgCiALIAqUIAQgCJSTIgsgC5IiC5STkpIhDyAEIAwgBZQgCCALlCAJIAaUk5KSIgQgBJQgByAMIAuUIAogBpQgCCAFlJOSkiIGIAaUQwAAAACSkkMAAAAAkhB9IgVDAAAAAFwEQCAEIAWVIAEqAgQiB5QhDSAGIAWVIAeUIQ4LIAAgAkEYaioCACANIAQgASoCCCIFlJIiBCAMIAkgASoCACAPmCAPIAWUkiINlCAIIA4gBiAFlJIiBpSTIgUgBZIiBZQgCSAKIAaUIAkgBJSTIgcgB5IiB5QgCCAIIASUIAogDZSTIgQgBJIiBJSTkpKSOAIIIAAgAkEUaioCACANIAwgB5QgCiAElCAJIAWUk5KSkjgCBCAAIAJBEGoqAgAgBiAMIASUIAggBZQgCiAHlJOSkpI4AgAL8gMDBH0FfwF+IwBB4ABrIgckACAAQQhqIggqAgAhAyAAKgIAIQQgACoCBCEGIAdBHGoiCSAIKAIANgIAIAcgACkCADcCFCAHIAOMIgM4AhAgAyABQQhqKgIAIgOTIgUgAyAJKgIAkyIDIAMgBV8bIgNDAAAAACADQwAAAABgGyEDIAFBBGoqAgAhBSAHIAaMIgY4AgwgBiAFkyIGIAUgB0EYaioCAJMiBSAFIAZfGyIFQwAAAAAgBUMAAAAAYBshBSAHIASMIgQ4AgggBCABKgIAIgSTIgYgBCAHKgIUkyIEIAQgBl8bIgRDAAAAACAEQwAAAABgGyEEAn0CQCACDQAgBEMAAAAAXA0AIAVDAAAAAFwNACADQwAAAABcDQAgB0EwaiIAIAdBCGogAUEAEJACIActADwhAiAHQShqIABBCGoiCCgCACIJNgIAIAcgBykDMCIMNwMgIAdB0ABqIgpBCGoiCyAJNgIAIAcgDDcDUCAAIAI6AAwgACAKKQIANwIAIAggCygCADYCACAHKgIwIAEqAgCTIgMgA5QgByoCNCABQQRqKgIAkyIDIAOUkiAHKgI4IAFBCGoqAgCTIgMgA5SSQwAAAACSEH2MDAELIAQgBJQgBSAFlJIgAyADlJJDAAAAAJIQfQsgB0HgAGokAAvxAwEGfyMAQdAAayIHJAACQAJAIABFDQAgACgCACIGQX9GDQEgACAGQQFqNgIAIAFFDQAgASgCACIGQX9GDQEgASAGQQFqNgIAIAJFDQAgAigCACIGQX9GDQEgAiAGQQFqNgIAIANFDQAgAygCACIGQX9GDQEgAyAGQQFqNgIAIARFDQAgBCgCACIGQX9GDQEgBCAGQQFqNgIAIAVFDQAgBSgCACIGQX9GDQEgBSAGQQFqNgIAIAdBEGoiBkEYaiABQQxqKAIANgIAIAcgASkCBDcDICAGQQhqIAJBDGopAgA3AwAgByACKQIENwMQIAdBMGoiCEEYaiAEQQxqKAIANgIAIAcgBCkCBDcDQCAIQQhqIAVBDGopAgA3AwAgByAFKQIENwMwIAdBCGoiCSADQQRqIgpBBGooAgAiCzYCBCAJIAooAgAgCygCCEEHakF4cWo2AgAgBiAAQQRqKAIAIABBCGooAgAiBigCCEEHakF4cWogBiAIIAcoAgggBygCDBDyAyAFIAUoAgBBAWs2AgAgBCAEKAIAQQFrNgIAIAMgAygCAEEBazYCACACIAIoAgBBAWs2AgAgASABKAIAQQFrNgIAIAAgACgCAEEBazYCACAHQdAAaiQAQf8BcSIAQQJHIABxDwsQzQsACxDOCwAL/QMBCX8jAEEwayIEJAAgASgCACEIQQQhB0EEIQICQAJAAkACQCABQQhqKAIAIgUEQCAFQf////8DcSICIAVHDQIgBUECdCIGQQBIDQIgAiAFRkECdCEDIAYEfyAGIAMQ7goFIAMLIgJFDQELIAIgCCAFQQJ0ENkLIQggBEEYaiIDQRBqIgkgAUEMaiICQRBqKQIANwMAIANBCGogAkEIaikCADcDACAEIAIpAgA3AxggAUEkaigCACEKIAFBLGooAgAiAwRAIANB/////wNxIgEgA0cNAiADQQJ0IgZBAEgNAiABIANGQQJ0IQIgBgR/IAYgAhDuCgUgAgsiB0UNAwsgByAKIANBAnQQ2QshAiAEQRBqIAkpAwA3AwAgBEEIaiIHIARBIGopAwA3AwAgBCAEKQMYNwMAQTBBBBDuCiIBRQ0DIAEgBTYCCCABIAU2AgQgASAINgIAIAEgBCkDADcCDCABIAM2AiwgASADNgIoIAEgAjYCJCABQRRqIAcpAwA3AgAgAUEcaiAEQRBqKQMANwIAIABB3JPCADYCBCAAIAE2AgAgBEEwaiQADwsgBiADQdzmwwAoAgAiAEGPByAAGxEAAAALEN8JAAsgBiACQdzmwwAoAgAiAEGPByAAGxEAAAALQTBBBEHc5sMAKAIAIgBBjwcgABsRAAAAC54DARB9IABCAjcCECADKgIAIAJBEGoqAgAiDZMiCCACQQRqKgIAIgmUIANBBGoqAgAgAkEUaioCACIOkyIMIAIqAgAiCpSTIgcgB5IhBSAMIAJBCGoqAgAiB5QgA0EIaioCACACQRhqKgIAIg+TIgQgCZSTIgsgC5IhBiAAIAFBCGoqAgAiECAEIAIqAgwiCyAFlCAJIAaUIAogBCAKlCAIIAeUkyIEIASSIgSUk5KSIhGUIAEqAgAiEiAIIAsgBpQgByAElCAJIAWUk5KSIhOUIAFBBGoqAgAiCCAMIAsgBJQgCiAFlCAHIAaUk5KSIgaUkpIiBUMAAAAAXzoADCAKIAYgCCAFlJMiCJQgCSATIBIgBZSTIgyUkyIGIAaSIQYgByAMlCAKIBEgECAFlJMiBJSTIgUgBZIhBSAAIA8gBCALIAaUIAogBZQgCSAJIASUIAcgCJSTIgQgBJIiBJSTkpKSOAIIIAAgDiAIIAsgBZQgByAElCAKIAaUk5KSkjgCBCAAIA0gDCALIASUIAkgBpQgByAFlJOSkpI4AgALpQMCCX0CfyMAQSBrIg8kACACQQRqKgIAIgogA0EMaioCACINlCACKgIAIgsgA0EQaioCACIOlJMiByAHkiEIIAJBCGoqAgAiByAOlCAKIANBFGoqAgAiBpSTIgwgDJIhCSAPQQhqIhBBFGogBiACKgIMIgwgCJQgCiAJlCALIAsgBpQgByANlJMiBiAGkiIGlJOSkjgCACAQQRBqIA4gDCAGlCALIAiUIAcgCZSTkpI4AgAgDyANIAwgCZQgByAGlCAKIAiUk5KSOAIUIAogAyoCACACQRBqKgIAkyINlCALIANBBGoqAgAgAkEUaioCAJMiDpSTIgggCJIhCCAOIAeUIANBCGoqAgAgAkEYaioCAJMiBiAKlJMiCSAJkiEJIA8gBiAMIAiUIAogCZQgCyAGIAuUIA0gB5STIgYgBpIiBpSTkpI4AhAgDyAOIAwgBpQgCyAIlCAHIAmUk5KSOAIMIA8gDSAMIAmUIAcgBpQgCiAIlJOSkjgCCCAPIAEgECAEIAUQSSAPKAIAIQEgACAPKgIEOAIEIAAgATYCACAPQSBqJAALpQMCCX0CfyMAQSBrIg8kACACQQRqKgIAIgogA0EMaioCACINlCACKgIAIgsgA0EQaioCACIOlJMiByAHkiEIIAJBCGoqAgAiByAOlCAKIANBFGoqAgAiBpSTIgwgDJIhCSAPQQhqIhBBFGogBiACKgIMIgwgCJQgCiAJlCALIAsgBpQgByANlJMiBiAGkiIGlJOSkjgCACAQQRBqIA4gDCAGlCALIAiUIAcgCZSTkpI4AgAgDyANIAwgCZQgByAGlCAKIAiUk5KSOAIUIAogAyoCACACQRBqKgIAkyINlCALIANBBGoqAgAgAkEUaioCAJMiDpSTIgggCJIhCCAOIAeUIANBCGoqAgAgAkEYaioCAJMiBiAKlJMiCSAJkiEJIA8gBiAMIAiUIAogCZQgCyAGIAuUIA0gB5STIgYgBpIiBpSTkpI4AhAgDyAOIAwgBpQgCyAIlCAHIAmUk5KSOAIMIA8gDSAMIAmUIAcgBpQgCiAIlJOSkjgCCCAPIAEgECAEIAUQTiAPKAIAIQEgACAPKgIEOAIEIAAgATYCACAPQSBqJAALpQMCCX0CfyMAQSBrIg8kACACQQRqKgIAIgogA0EMaioCACINlCACKgIAIgsgA0EQaioCACIOlJMiByAHkiEIIAJBCGoqAgAiByAOlCAKIANBFGoqAgAiBpSTIgwgDJIhCSAPQQhqIhBBFGogBiACKgIMIgwgCJQgCiAJlCALIAsgBpQgByANlJMiBiAGkiIGlJOSkjgCACAQQRBqIA4gDCAGlCALIAiUIAcgCZSTkpI4AgAgDyANIAwgCZQgByAGlCAKIAiUk5KSOAIUIAogAyoCACACQRBqKgIAkyINlCALIANBBGoqAgAgAkEUaioCAJMiDpSTIgggCJIhCCAOIAeUIANBCGoqAgAgAkEYaioCAJMiBiAKlJMiCSAJkiEJIA8gBiAMIAiUIAogCZQgCyAGIAuUIA0gB5STIgYgBpIiBpSTkpI4AhAgDyAOIAwgBpQgCyAIlCAHIAmUk5KSOAIMIA8gDSAMIAmUIAcgBpQgCiAIlJOSkjgCCCAPIAEgECAEIAUQUSAPKAIAIQEgACAPKgIEOAIEIAAgATYCACAPQSBqJAALmwMBDH0gAkEQaioCACENIAJBFGoqAgAhDiADKgIAIgcgAkEEaioCACIIlCADQQRqKgIAIgkgAioCACIKlJMiBiAGkiEEIAkgAkEIaioCACIGlCADQQhqKgIAIgUgCJSTIgsgC5IhDCAAIAJBGGoqAgAgASABQQxqIgMgAUEIaioCACAFIAIqAgwiCyAElCAIIAyUIAogBSAKlCAHIAaUkyIFIAWSIgWUk5KSIg+UIAEqAgAgByALIAyUIAYgBZQgCCAElJOSkiIHlCABQQRqKgIAIAkgCyAFlCAKIASUIAYgDJSTkpIiBJSSkiADKgIAIAeUIAQgAUEQaioCAJSSIA8gAUEUaioCAJSSXhsiASoCCCIEIAsgCiABKgIEIgyUIAggASoCACIHlJMiCSAJkiIJlCAKIAYgB5QgCiAElJMiBSAFkiIFlCAIIAggBJQgBiAMlJMiBCAEkiIElJOSkpI4AgggACAOIAwgCyAFlCAGIASUIAogCZSTkpKSOAIEIAAgDSAHIAsgBJQgCCAJlCAGIAWUk5KSkjgCAAubAwEMfSACQRBqKgIAIQ0gAkEUaioCACEOIAMqAgAiByACQQRqKgIAIgiUIANBBGoqAgAiCSACKgIAIgqUkyIGIAaSIQQgCSACQQhqKgIAIgaUIANBCGoqAgAiBSAIlJMiCyALkiEMIAAgAkEYaioCACABIAFBDGoiAyABQQhqKgIAIAUgAioCDCILIASUIAggDJQgCiAFIAqUIAcgBpSTIgUgBZIiBZSTkpIiD5QgASoCACAHIAsgDJQgBiAFlCAIIASUk5KSIgeUIAFBBGoqAgAgCSALIAWUIAogBJQgBiAMlJOSkiIElJKSIA8gAUEUaioCAJQgAyoCACAHlCABQRBqKgIAIASUkpJeGyIBKgIIIgQgCyAKIAEqAgQiDJQgCCABKgIAIgeUkyIJIAmSIgmUIAogBiAHlCAKIASUkyIFIAWSIgWUIAggCCAElCAGIAyUkyIEIASSIgSUk5KSkjgCCCAAIA4gDCALIAWUIAYgBJQgCiAJlJOSkpI4AgQgACANIAcgCyAElCAIIAmUIAYgBZSTkpKSOAIAC88DAgR+BX8jAEHQAGsiByQAIAdBQGsiCEIANwMAIAcgATcDECAHQTBqIgkgAULzytHLp4zZsvQAhTcDACAHQShqIgogAULt3pHzlszct+QAhTcDACAHIAA3AwggB0EgaiILIABC4eSV89bs2bzsAIU3AwAgB0IANwM4IAcgAEL1ys2D16zbt/MAhTcDGCAHIAIpAwA3A0ggB0EIaiAHQcgAakEIEIkCIAg1AgAhASAHKQM4IAkpAwAhAyALKQMAIQUgCikDACEAIAcpAxghBiAHQdAAaiQAIAFCOIaEIgQgA4UiASAFfCIDIAFCEImFIgUgACAGfCIGQiCJfCEBIAMgAEINiSAGhSIDfCEAIAAgA0IRiYUiAyABIASFfCEEIAQgA0INiYUiAyAFQhWJIAGFIgEgAEIgiUL/AYV8IgV8IQAgACADQhGJhSIDIAFCEIkgBYUiASAEQiCJfCIEfCIFIANCDYmFIgMgAEIgiSABQhWJIASFIgB8IgF8IgQgA0IRiYUiAyAAQhCJIAGFIgAgBUIgiXwiAXwgA0INiYUiAyAAQhWJIAGFIgEgBEIgiXwiBHwhACAAIAFCEIkgBIVCFYmFIANCEYmFIABCIImFC4oEAwZ/An0BfiMAQTBrIgMkACABKgIEIQkgASoCACEKQRhBBBDuCiIBBEAgAUKAgID4AzcCECABQoCAgICAgICAv383AgggAUKAgID4i4CAgL9/NwIAIANCgoCAgCA3AhQgAyABNgIQIANBIGoiAUEIaiIGQQA2AgAgA0IENwMgQQBBwIbDAEEBIAIgA0EQaiABEHAgA0EIaiAGKAIAIgE2AgAgAyADKQMgIgs3AwAgAygCFCEIIAMoAhAhAiADKAIYIQcgBiABNgIAIAMgCzcDIAJAIAdBDGwiBUUNACAKIAqSIQogCSAJkiEJIAIhASAFQQxrIgRBDG5BAXFFBEAgAiAJIAIqAgCUOAIAIAJBBGoiASAKIAEqAgCUOAIAIAJBCGoiASAJIAEqAgCUOAIAIAJBDGohAQsgBEEMSQ0AIAIgBWohBQNAIAEgCSABKgIAlDgCACABQQRqIgQgCiAEKgIAlDgCACABQQhqIgQgCSAEKgIAlDgCACABQQxqIgQgCSAEKgIAlDgCACABQRBqIgQgCiAEKgIAlDgCACABQRRqIgQgCSAEKgIAlDgCACAFIAFBGGoiAUcNAAsLIAAgAykDIDcCDCAAIAc2AgggACAINgIEIAAgAjYCACAAQRRqIAYoAgA2AgAgA0EwaiQADwtBGEEEQdzmwwAoAgAiAEGPByAAGxEAAAALxQMCDH8BfSMAQRBrIgMkAAJAIAEoAgQiBgRAIAZBBCAGQQRLGyIEQf////8DcSECAkAgAiAERw0AIARBAnQiB0EASA0AIAIgBEZBAnQhBSABKAIAIgIgASgCCCIMQQJ0aiIIIAIgAiAGQQJ0aiIJIAJGIgobIgsqAgAhDiAHBH8gByAFEO4KBSAFCyICBEAgAiAOOAIAIANBATYCCCADIAQ2AgQgAyACNgIAIAZBAWsiAUUNAyAIIAkgChshByALIAFBAEdBAnRqIQggBkECayEBQQQhCUECIQUDQCALIAxBAnRqIg0gCCAHIAhGIgobIggqAgAhDiAEIAVBAWtGBEAgAyAEIAFBAWoQgAYgAygCACECCyACIAlqIA44AgAgAyAFNgIIIAEEQCANIAsgChshCyAIIAFBAEdBAnRqIQggByAMQQAgChtBAnRqIQcgAUEBayEBIAlBBGohCSAFQQFqIQUgAygCBCEEDAELCyADKAIEIQQgAygCACECDAMLIAcgBUHc5sMAKAIAIgBBjwcgABsRAAAACxDfCQALQQQhAgsgACAGNgIMIAAgBjYCCCAAIAQ2AgQgACACNgIAIANBEGokAAunAwIJfQF/IwBBMGsiDyQAIAJBBGoqAgAiCiADQQxqKgIAIg2UIAIqAgAiCyADQRBqKgIAIg6UkyIHIAeSIQggAkEIaioCACIHIA6UIAogA0EUaioCACIGlJMiDCAMkiEJIA9BFGogBiACKgIMIgwgCJQgCiAJlCALIAsgBpQgByANlJMiBiAGkiIGlJOSkjgCACAPQRBqIA4gDCAGlCALIAiUIAcgCZSTkpI4AgAgDyANIAwgCZQgByAGlCAKIAiUk5KSOAIMIAogAyoCACACQRBqKgIAkyINlCALIANBBGoqAgAgAkEUaioCAJMiDpSTIgggCJIhCCAOIAeUIANBCGoqAgAgAkEYaioCAJMiBiAKlJMiCSAJkiEJIA8gBiAMIAiUIAogCZQgCyAGIAuUIA0gB5STIgYgBpIiBpSTkpI4AgggDyAOIAwgBpQgCyAIlCAHIAmUk5KSOAIEIA8gDSAMIAmUIAcgBpQgCiAIlJOSkjgCACAPQRhqIAEgDyAEIAUQoAEgDygCKCEBIAAgDyoCGDgCBCAAIAFBBEc2AgAgD0EwaiQAC6cDAgl9AX8jAEEwayIPJAAgAkEEaioCACIKIANBDGoqAgAiDZQgAioCACILIANBEGoqAgAiDpSTIgcgB5IhCCACQQhqKgIAIgcgDpQgCiADQRRqKgIAIgaUkyIMIAySIQkgD0EUaiAGIAIqAgwiDCAIlCAKIAmUIAsgCyAGlCAHIA2UkyIGIAaSIgaUk5KSOAIAIA9BEGogDiAMIAaUIAsgCJQgByAJlJOSkjgCACAPIA0gDCAJlCAHIAaUIAogCJSTkpI4AgwgCiADKgIAIAJBEGoqAgCTIg2UIAsgA0EEaioCACACQRRqKgIAkyIOlJMiCCAIkiEIIA4gB5QgA0EIaioCACACQRhqKgIAkyIGIAqUkyIJIAmSIQkgDyAGIAwgCJQgCiAJlCALIAYgC5QgDSAHlJMiBiAGkiIGlJOSkjgCCCAPIA4gDCAGlCALIAiUIAcgCZSTkpI4AgQgDyANIAwgCZQgByAGlCAKIAiUk5KSOAIAIA9BGGogASAPIAQgBRDNASAPKAIoIQEgACAPKgIYOAIEIAAgAUEERzYCACAPQTBqJAALpwMCCX0BfyMAQTBrIg8kACACQQRqKgIAIgogA0EMaioCACINlCACKgIAIgsgA0EQaioCACIOlJMiByAHkiEIIAJBCGoqAgAiByAOlCAKIANBFGoqAgAiBpSTIgwgDJIhCSAPQRRqIAYgAioCDCIMIAiUIAogCZQgCyALIAaUIAcgDZSTIgYgBpIiBpSTkpI4AgAgD0EQaiAOIAwgBpQgCyAIlCAHIAmUk5KSOAIAIA8gDSAMIAmUIAcgBpQgCiAIlJOSkjgCDCAKIAMqAgAgAkEQaioCAJMiDZQgCyADQQRqKgIAIAJBFGoqAgCTIg6UkyIIIAiSIQggDiAHlCADQQhqKgIAIAJBGGoqAgCTIgYgCpSTIgkgCZIhCSAPIAYgDCAIlCAKIAmUIAsgBiALlCANIAeUkyIGIAaSIgaUk5KSOAIIIA8gDiAMIAaUIAsgCJQgByAJlJOSkjgCBCAPIA0gDCAJlCAHIAaUIAogCJSTkpI4AgAgD0EYaiABIA8gBCAFENABIA8oAighASAAIA8qAhg4AgQgACABQQRHNgIAIA9BMGokAAunAwIJfQF/IwBBMGsiDyQAIAJBBGoqAgAiCiADQQxqKgIAIg2UIAIqAgAiCyADQRBqKgIAIg6UkyIHIAeSIQggAkEIaioCACIHIA6UIAogA0EUaioCACIGlJMiDCAMkiEJIA9BFGogBiACKgIMIgwgCJQgCiAJlCALIAsgBpQgByANlJMiBiAGkiIGlJOSkjgCACAPQRBqIA4gDCAGlCALIAiUIAcgCZSTkpI4AgAgDyANIAwgCZQgByAGlCAKIAiUk5KSOAIMIAogAyoCACACQRBqKgIAkyINlCALIANBBGoqAgAgAkEUaioCAJMiDpSTIgggCJIhCCAOIAeUIANBCGoqAgAgAkEYaioCAJMiBiAKlJMiCSAJkiEJIA8gBiAMIAiUIAogCZQgCyAGIAuUIA0gB5STIgYgBpIiBpSTkpI4AgggDyAOIAwgBpQgCyAIlCAHIAmUk5KSOAIEIA8gDSAMIAmUIAcgBpQgCiAIlJOSkjgCACAPQRhqIAEgDyAEIAUQlQEgDygCKCEBIAAgDyoCGDgCBCAAIAFBBEc2AgAgD0EwaiQAC6cDAgl9AX8jAEEwayIPJAAgAkEEaioCACIKIANBDGoqAgAiDZQgAioCACILIANBEGoqAgAiDpSTIgcgB5IhCCACQQhqKgIAIgcgDpQgCiADQRRqKgIAIgaUkyIMIAySIQkgD0EUaiAGIAIqAgwiDCAIlCAKIAmUIAsgCyAGlCAHIA2UkyIGIAaSIgaUk5KSOAIAIA9BEGogDiAMIAaUIAsgCJQgByAJlJOSkjgCACAPIA0gDCAJlCAHIAaUIAogCJSTkpI4AgwgCiADKgIAIAJBEGoqAgCTIg2UIAsgA0EEaioCACACQRRqKgIAkyIOlJMiCCAIkiEIIA4gB5QgA0EIaioCACACQRhqKgIAkyIGIAqUkyIJIAmSIQkgDyAGIAwgCJQgCiAJlCALIAYgC5QgDSAHlJMiBiAGkiIGlJOSkjgCCCAPIA4gDCAGlCALIAiUIAcgCZSTkpI4AgQgDyANIAwgCZQgByAGlCAKIAiUk5KSOAIAIA9BGGogASAPIAQgBRDAASAPKAIoIQEgACAPKgIYOAIEIAAgAUEERzYCACAPQTBqJAALpgMCCX0BfyMAQTBrIg8kACACQQRqKgIAIgogA0EMaioCACINlCACKgIAIgsgA0EQaioCACIOlJMiByAHkiEIIAJBCGoqAgAiByAOlCAKIANBFGoqAgAiBpSTIgwgDJIhCSAPQRRqIAYgAioCDCIMIAiUIAogCZQgCyALIAaUIAcgDZSTIgYgBpIiBpSTkpI4AgAgD0EQaiAOIAwgBpQgCyAIlCAHIAmUk5KSOAIAIA8gDSAMIAmUIAcgBpQgCiAIlJOSkjgCDCAKIAMqAgAgAkEQaioCAJMiDZQgCyADQQRqKgIAIAJBFGoqAgCTIg6UkyIIIAiSIQggDiAHlCADQQhqKgIAIAJBGGoqAgCTIgYgCpSTIgkgCZIhCSAPIAYgDCAIlCAKIAmUIAsgBiALlCANIAeUkyIGIAaSIgaUk5KSOAIIIA8gDiAMIAaUIAsgCJQgByAJlJOSkjgCBCAPIA0gDCAJlCAHIAaUIAogCJSTkpI4AgAgD0EYaiABIA8gBCAFEHMgDygCKCEBIAAgDyoCGDgCBCAAIAFBBEc2AgAgD0EwaiQAC6cDAgl9AX8jAEEwayIPJAAgAkEEaioCACIKIANBDGoqAgAiDZQgAioCACILIANBEGoqAgAiDpSTIgcgB5IhCCACQQhqKgIAIgcgDpQgCiADQRRqKgIAIgaUkyIMIAySIQkgD0EUaiAGIAIqAgwiDCAIlCAKIAmUIAsgCyAGlCAHIA2UkyIGIAaSIgaUk5KSOAIAIA9BEGogDiAMIAaUIAsgCJQgByAJlJOSkjgCACAPIA0gDCAJlCAHIAaUIAogCJSTkpI4AgwgCiADKgIAIAJBEGoqAgCTIg2UIAsgA0EEaioCACACQRRqKgIAkyIOlJMiCCAIkiEIIA4gB5QgA0EIaioCACACQRhqKgIAkyIGIAqUkyIJIAmSIQkgDyAGIAwgCJQgCiAJlCALIAYgC5QgDSAHlJMiBiAGkiIGlJOSkjgCCCAPIA4gDCAGlCALIAiUIAcgCZSTkpI4AgQgDyANIAwgCZQgByAGlCAKIAiUk5KSOAIAIA9BGGogASAPIAQgBRCuASAPKAIoIQEgACAPKgIYOAIEIAAgAUEERzYCACAPQTBqJAALpwMCCX0BfyMAQTBrIg8kACACQQRqKgIAIgogA0EMaioCACINlCACKgIAIgsgA0EQaioCACIOlJMiByAHkiEIIAJBCGoqAgAiByAOlCAKIANBFGoqAgAiBpSTIgwgDJIhCSAPQRRqIAYgAioCDCIMIAiUIAogCZQgCyALIAaUIAcgDZSTIgYgBpIiBpSTkpI4AgAgD0EQaiAOIAwgBpQgCyAIlCAHIAmUk5KSOAIAIA8gDSAMIAmUIAcgBpQgCiAIlJOSkjgCDCAKIAMqAgAgAkEQaioCAJMiDZQgCyADQQRqKgIAIAJBFGoqAgCTIg6UkyIIIAiSIQggDiAHlCADQQhqKgIAIAJBGGoqAgCTIgYgCpSTIgkgCZIhCSAPIAYgDCAIlCAKIAmUIAsgBiALlCANIAeUkyIGIAaSIgaUk5KSOAIIIA8gDiAMIAaUIAsgCJQgByAJlJOSkjgCBCAPIA0gDCAJlCAHIAaUIAogCJSTkpI4AgAgD0EYaiABIA8gBCAFEKMBIA8oAighASAAIA8qAhg4AgQgACABQQRHNgIAIA9BMGokAAunAwIJfQF/IwBBMGsiDyQAIAJBBGoqAgAiCiADQQxqKgIAIg2UIAIqAgAiCyADQRBqKgIAIg6UkyIHIAeSIQggAkEIaioCACIHIA6UIAogA0EUaioCACIGlJMiDCAMkiEJIA9BFGogBiACKgIMIgwgCJQgCiAJlCALIAsgBpQgByANlJMiBiAGkiIGlJOSkjgCACAPQRBqIA4gDCAGlCALIAiUIAcgCZSTkpI4AgAgDyANIAwgCZQgByAGlCAKIAiUk5KSOAIMIAogAyoCACACQRBqKgIAkyINlCALIANBBGoqAgAgAkEUaioCAJMiDpSTIgggCJIhCCAOIAeUIANBCGoqAgAgAkEYaioCAJMiBiAKlJMiCSAJkiEJIA8gBiAMIAiUIAogCZQgCyAGIAuUIA0gB5STIgYgBpIiBpSTkpI4AgggDyAOIAwgBpQgCyAIlCAHIAmUk5KSOAIEIA8gDSAMIAmUIAcgBpQgCiAIlJOSkjgCACAPQRhqIAEgDyAEIAUQtAEgDygCKCEBIAAgDyoCGDgCBCAAIAFBBEc2AgAgD0EwaiQAC6cDAgl9AX8jAEEwayIPJAAgAkEEaioCACIKIANBDGoqAgAiDZQgAioCACILIANBEGoqAgAiDpSTIgcgB5IhCCACQQhqKgIAIgcgDpQgCiADQRRqKgIAIgaUkyIMIAySIQkgD0EUaiAGIAIqAgwiDCAIlCAKIAmUIAsgCyAGlCAHIA2UkyIGIAaSIgaUk5KSOAIAIA9BEGogDiAMIAaUIAsgCJQgByAJlJOSkjgCACAPIA0gDCAJlCAHIAaUIAogCJSTkpI4AgwgCiADKgIAIAJBEGoqAgCTIg2UIAsgA0EEaioCACACQRRqKgIAkyIOlJMiCCAIkiEIIA4gB5QgA0EIaioCACACQRhqKgIAkyIGIAqUkyIJIAmSIQkgDyAGIAwgCJQgCiAJlCALIAYgC5QgDSAHlJMiBiAGkiIGlJOSkjgCCCAPIA4gDCAGlCALIAiUIAcgCZSTkpI4AgQgDyANIAwgCZQgByAGlCAKIAiUk5KSOAIAIA9BGGogASAPIAQgBRChASAPKAIoIQEgACAPKgIYOAIEIAAgAUEERzYCACAPQTBqJAALpwMCCX0BfyMAQTBrIg8kACACQQRqKgIAIgogA0EMaioCACINlCACKgIAIgsgA0EQaioCACIOlJMiByAHkiEIIAJBCGoqAgAiByAOlCAKIANBFGoqAgAiBpSTIgwgDJIhCSAPQRRqIAYgAioCDCIMIAiUIAogCZQgCyALIAaUIAcgDZSTIgYgBpIiBpSTkpI4AgAgD0EQaiAOIAwgBpQgCyAIlCAHIAmUk5KSOAIAIA8gDSAMIAmUIAcgBpQgCiAIlJOSkjgCDCAKIAMqAgAgAkEQaioCAJMiDZQgCyADQQRqKgIAIAJBFGoqAgCTIg6UkyIIIAiSIQggDiAHlCADQQhqKgIAIAJBGGoqAgCTIgYgCpSTIgkgCZIhCSAPIAYgDCAIlCAKIAmUIAsgBiALlCANIAeUkyIGIAaSIgaUk5KSOAIIIA8gDiAMIAaUIAsgCJQgByAJlJOSkjgCBCAPIA0gDCAJlCAHIAaUIAogCJSTkpI4AgAgD0EYaiABIA8gBCAFENgBIA8oAighASAAIA8qAhg4AgQgACABQQRHNgIAIA9BMGokAAvnAwIHfwF+IwBBIGsiAiQAAkAgASgCBCIDRQRAIABBADYCBAwBCyABIANBAWs2AgQCQCABKAIAIgYoAgQiAUEHTQRAIAJCgcoANwMQIAJBEGoQjwohBQwBCyAGIAFBCGs2AgQgBiAGKAIAIgFBCGo2AgAgAiABKQAAEPAFIAIoAgAEQCACKAIEIQUMAQsCQAJAIAIoAgQiBEGAICAEQYAgSRsiAUUEQEEEIQMMAQsgAUEMbCIFQQQQ7goiA0UNAQsgAkEANgIIIAIgATYCBCACIAM2AgAgBARAIAJBEGogBhCYBCACKAIUIQUCQCACKAIQRQRAIARBAWshB0EAIQQDQCACKQMYIQkgASAERgRAIAIgARDWBSACKAIIIQQgAigCACEDCyADIARBDGxqIgEgCTcCBCABIAU2AgAgAiAEQQFqIgQ2AgggB0UNAiACQRBqIAYQmAQgAigCFCEFIAIoAhBFBEAgB0EBayEHIAIoAgQhAQwBCwsgAigCBCEBCyABRQ0DIAGtQgx+p0UNAyADEKwBDAMLIAIoAgAhAwsgAEEIaiACKQIENwIAIAAgAzYCBAwCCyAFQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgACAFNgIEQQEhCAsgACAINgIAIAJBIGokAAuiAwEOfSAAIAEpAhA3AhAgAEEYaiABQRhqKAIANgIAIAJBEGoqAgAhDiACQRRqKgIAIQ8gAkEYaioCACEQIAJBCGoqAgAhBiABQSRqKgIAIQMgAkEMaioCACEJIAFBKGoqAgAhBCACQQRqKgIAIQcgAUEgaioCACEFIAEqAgAhCyABKgIIIQwgASoCBCENIAIqAgAhCCABKgIcIQogACABKgIMOAIMIABBKGogCSAElCAIIAqUkyAHIAWUkyAGIAOUkzgCACAAQSRqIAYgBJQgCCAFlCAJIAOUkiAHIAqUk5I4AgAgAEEgaiAGIAqUIAcgBJQgCSAFlCAIIAOUk5KSOAIAIAAgByADlCAJIAqUIAggBJSSkiAGIAWUkzgCHCAAIBAgDCAJIA0gCJQgCyAHlJMiAyADkiIDlCAIIAsgBpQgDCAIlJMiBCAEkiIElCAHIAwgB5QgDSAGlJMiBSAFkiIFlJOSkpI4AgggACAPIA0gCSAElCAGIAWUIAggA5STkpKSOAIEIAAgDiALIAkgBZQgByADlCAGIASUk5KSkjgCAAujAwIBfwx9IwBBIGsiBiQAIAMqAgAgAkEQaioCACIQkyIPIAJBBGoqAgAiCpQgA0EEaioCACACQRRqKgIAIhGTIgcgAioCACILlJMiCCAIkiEJIAcgAkEIaioCACIIlCADQQhqKgIAIAJBGGoqAgAiEpMiDCAKlJMiDSANkiEOIAYgDCACQQxqKgIAIg0gCZQgCiAOlCALIAwgC5QgDyAIlJMiDCAMkiIMlJOSkjgCGCAGIAcgDSAMlCALIAmUIAggDpSTkpI4AhQgBiAPIA0gDpQgCCAMlCAKIAmUk5KSOAIQIAYgASAGQRBqIAQgBRDzAyAGLQAMIgFBAkcEQCAGKgIEIg4gC5QgBioCACIPIAqUkyIFIAWSIQUgDyAIlCAGKgIIIgcgC5STIgkgCZIhCSAAIBIgByANIAWUIAsgCZQgCiAHIAqUIA4gCJSTIgcgB5IiB5STkpKSOAIIIAAgESAOIA0gCZQgCCAHlCALIAWUk5KSkjgCBCAAIBAgDyANIAeUIAogBZQgCCAJlJOSkpI4AgALIAAgAToADCAGQSBqJAALogMCAX8MfSMAQSBrIgYkACADKgIAIAJBEGoqAgAiEJMiDyACQQRqKgIAIgqUIANBBGoqAgAgAkEUaioCACIRkyIHIAIqAgAiC5STIgggCJIhCSAHIAJBCGoqAgAiCJQgA0EIaioCACACQRhqKgIAIhKTIgwgCpSTIg0gDZIhDiAGIAwgAkEMaioCACINIAmUIAogDpQgCyAMIAuUIA8gCJSTIgwgDJIiDJSTkpI4AhggBiAHIA0gDJQgCyAJlCAIIA6Uk5KSOAIUIAYgDyANIA6UIAggDJQgCiAJlJOSkjgCECAGIAEgBkEQaiAEIAUQciAGLQAMIgFBAkcEQCAGKgIEIg4gC5QgBioCACIPIAqUkyIFIAWSIQUgDyAIlCAGKgIIIgcgC5STIgkgCZIhCSAAIBIgByANIAWUIAsgCZQgCiAHIAqUIA4gCJSTIgcgB5IiB5STkpKSOAIIIAAgESAOIA0gCZQgCCAHlCALIAWUk5KSkjgCBCAAIBAgDyANIAeUIAogBZQgCCAJlJOSkpI4AgALIAAgAToADCAGQSBqJAALlAMBDn0gASoCACEGIAMqAgAgAkEQaioCACIPkyIFIAJBBGoqAgAiCpQgA0EEaioCACACQRRqKgIAIhCTIgcgAioCACILlJMiCCAIkiEJIAcgAkEIaioCACIIlCADQQhqKgIAIAJBGGoqAgAiEZMiDCAKlJMiDSANkiEEIAwgAioCDCINIAmUIAogBJQgCyAMIAuUIAUgCJSTIgwgDJIiDJSTkpIiDiAOlCAFIA0gBJQgCCAMlCAKIAmUk5KSIgUgBZQgByANIAyUIAsgCZQgCCAElJOSkiIJIAmUkpJDAAAAAJIiBBB9IQcgAEICNwIQIAAgBCAGIAaUXzoADCAAIBEgBiAHlSIGIA6UIgQgDSALIAYgCZQiCZQgCiAGIAWUIgaUkyIFIAWSIgWUIAsgCCAGlCALIASUkyIHIAeSIgeUIAogCiAElCAIIAmUkyIEIASSIgSUk5KSkjgCCCAAIBAgCSANIAeUIAggBJQgCyAFlJOSkpI4AgQgACAPIAYgDSAElCAKIAWUIAggB5STkpKSOAIAC5UDAgl9An8jAEEgayINJAAgAUEEaioCACIIIAJBDGoqAgAiC5QgASoCACIJIAJBEGoqAgAiDJSTIgUgBZIhBiABQQhqKgIAIgUgDJQgCCACQRRqKgIAIgSUkyIKIAqSIQcgDUEIaiIOQRRqIAQgASoCDCIKIAaUIAggB5QgCSAJIASUIAUgC5STIgQgBJIiBJSTkpI4AgAgDkEQaiAMIAogBJQgCSAGlCAFIAeUk5KSOAIAIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCFCAIIAIqAgAgAUEQaioCAJMiC5QgCSACQQRqKgIAIAFBFGoqAgCTIgyUkyIGIAaSIQYgDCAFlCACQQhqKgIAIAFBGGoqAgCTIgQgCJSTIgcgB5IhByANIAQgCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIQIA0gDCAKIASUIAkgBpQgBSAHlJOSkjgCDCANIAsgCiAHlCAFIASUIAggBpSTkpI4AgggDSAAIA4gA0EBEFEgDSgCACANQSBqJABBAUYLlQMCCX0CfyMAQSBrIg0kACABQQRqKgIAIgggAkEMaioCACILlCABKgIAIgkgAkEQaioCACIMlJMiBSAFkiEGIAFBCGoqAgAiBSAMlCAIIAJBFGoqAgAiBJSTIgogCpIhByANQQhqIg5BFGogBCABKgIMIgogBpQgCCAHlCAJIAkgBJQgBSALlJMiBCAEkiIElJOSkjgCACAOQRBqIAwgCiAElCAJIAaUIAUgB5STkpI4AgAgDSALIAogB5QgBSAElCAIIAaUk5KSOAIUIAggAioCACABQRBqKgIAkyILlCAJIAJBBGoqAgAgAUEUaioCAJMiDJSTIgYgBpIhBiAMIAWUIAJBCGoqAgAgAUEYaioCAJMiBCAIlJMiByAHkiEHIA0gBCAKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AhAgDSAMIAogBJQgCSAGlCAFIAeUk5KSOAIMIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCCCANIAAgDiADQQEQSSANKAIAIA1BIGokAEEBRguVAwIJfQJ/IwBBIGsiDSQAIAFBBGoqAgAiCCACQQxqKgIAIguUIAEqAgAiCSACQRBqKgIAIgyUkyIFIAWSIQYgAUEIaioCACIFIAyUIAggAkEUaioCACIElJMiCiAKkiEHIA1BCGoiDkEUaiAEIAEqAgwiCiAGlCAIIAeUIAkgCSAElCAFIAuUkyIEIASSIgSUk5KSOAIAIA5BEGogDCAKIASUIAkgBpQgBSAHlJOSkjgCACANIAsgCiAHlCAFIASUIAggBpSTkpI4AhQgCCACKgIAIAFBEGoqAgCTIguUIAkgAkEEaioCACABQRRqKgIAkyIMlJMiBiAGkiEGIAwgBZQgAkEIaioCACABQRhqKgIAkyIEIAiUkyIHIAeSIQcgDSAEIAogBpQgCCAHlCAJIAQgCZQgCyAFlJMiBCAEkiIElJOSkjgCECANIAwgCiAElCAJIAaUIAUgB5STkpI4AgwgDSALIAogB5QgBSAElCAIIAaUk5KSOAIIIA0gACAOIANBARBOIA0oAgAgDUEgaiQAQQFGC+IDAQZ/IwBBIGsiAiQAAn8gASgCBCIDRQRAIABBADYCBEEADAELIAEgA0EBazYCBAJAIAEoAgAiAygCBCIEQQdNBEAgAkKBygA3AwggAkEIahCPCiEBDAELIAMgBEEIazYCBCADIAMoAgAiAUEIajYCACACQRhqIAEpAAAQ8AUgAigCGARAIAIoAhwhAQwBCwJAAkAgAigCHCIHQYAgIAdBgCBJGyIGRQRAQQQhBQwBCyAGQQJ0IgFBBBDuCiIFRQ0BC0EAIQEgAkEANgIQIAIgBjYCDCACIAU2AgggBwRAIARBDGshBANAIARBBGpBA00EQCACQoHKADcDGCACQRhqEI8KIQEgAigCDCIDRQ0EIANBAnRFDQQgAigCCBCsAQwECyAHQQFrIQcgAyAENgIEIAMgAygCACIGQQRqNgIAIAYoAAAhBiACKAIMIAFGBEAgAkEIaiABEPsFIAIoAgghBSACKAIQIQELIAUgAUECdGogBjYCACACIAFBAWoiATYCECAEQQRrIQQgBw0ACyACKAIIIQULIABBCGogAikCDDcCACAAIAU2AgRBAAwCCyABQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgACABNgIEQQELIQEgACABNgIAIAJBIGokAAvkAwIGfwF9IwBBIGsiAiQAAn8gASgCBCIDRQRAIABBADYCBEEADAELIAEgA0EBazYCBAJAIAEoAgAiAygCBCIEQQdNBEAgAkKBygA3AwggAkEIahCPCiEBDAELIAMgBEEIazYCBCADIAMoAgAiAUEIajYCACACQRhqIAEpAAAQ8AUgAigCGARAIAIoAhwhAQwBCwJAAkAgAigCHCIGQYAgIAZBgCBJGyIHRQRAQQQhBQwBCyAHQQJ0IgFBBBDuCiIFRQ0BC0EAIQEgAkEANgIQIAIgBzYCDCACIAU2AgggBgRAIARBDGshBANAIARBBGpBA00EQCACQoHKADcDGCACQRhqEI8KIQEgAigCDCIDRQ0EIANBAnRFDQQgAigCCBCsAQwECyAGQQFrIQYgAyAENgIEIAMgAygCACIHQQRqNgIAIAcqAAAhCCACKAIMIAFGBEAgAkEIaiABEPsFIAIoAgghBSACKAIQIQELIAUgAUECdGogCDgCACACIAFBAWoiATYCECAEQQRrIQQgBg0ACyACKAIIIQULIABBCGogAikCDDcCACAAIAU2AgRBAAwCCyABQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgACABNgIEQQELIQEgACABNgIAIAJBIGokAAukAwIVfQF/IwBBIGsiGCQAIAEqAgwiBkMAAAAAYEUEQCAYQQhqIgBBFGpBADYCACAYQcDswQA2AhggGEIBNwIMIBhByPzBADYCCCAAQdD8wQAQ4AkACyACQRRqKgIAIQogAioCECELIABBFGogBiACQRhqKgIAIg8gASoCACIMIAIqAgAiAyACKgIIIgSUIgUgBZIiECACKgIEIgUgAioCDCIIlCIJIAmSIhGTi5QgASoCBCIJIAUgBJQiByAHkiISIAMgCJQiByAHkiITkouUkiABKgIIIgcgBCAElCINIAggCJQiFCADIAOUIhWTIhYgBSAFlCIOk5KLlJIiF5KSOAIAIABBEGogBiAKIAcgEiATk4uUIAwgAyAFlCIDIAOSIgMgBCAIlCIEIASSIgSSi5QgCSAOIBaSIA2Ti5SSkiIFkpI4AgAgACAGIAsgByAQIBGSi5QgCSADIASTi5QgDCAVIBSSIA6TIA2Ti5SSkiIDkpI4AgwgACAPIBeTIAaTOAIIIAAgCiAFkyAGkzgCBCAAIAsgA5MgBpM4AgAgGEEgaiQAC+MkBBV/A34CfQF8AkACQAJAIABFDQAgACgCAA0BIABBfzYCACABRQ0AIAEoAgAiHEF/Rg0BIAEgHEEBajYCACACRQ0AIAIoAgAiHEF/Rg0BIAIgHEEBajYCACAFRQ0AIAUoAgAiHEF/Rg0BIAUgHEEBajYCACAGRQ0AIAYoAgAiHEF/Rg0BIAYgHEEBajYCACAHRQ0AIAcoAgAiHEF/Rg0BIAcgHEEBajYCACAIRQ0AIAgoAgAiHEF/Rg0BIAggHEEBajYCACAJRQ0AIAkoAgAiHEF/Rg0BIAkgHEEBajYCACASQQRPDQIgAEEEaiEbIwBB0AxrIhkkACAZQRhqIiBBEGoiJyABQQRqIhwpAgA3AwAgIEEYaiIkIBxBCGooAgA2AgAgIEEIaiIoIAJBBGoiHEEIaikCADcDACAZIBwpAgA3AxggGUHwAWoiF0EIaiIhIAVBBGoiHEEIaigCADYCACAZIBwpAgA3A/ABIBlByARqIhpBCGogCEEEaiImQQhqIikoAgA2AgAgGSAmKQIANwPIBCAZQfgJaiIYQQhqIAlBBGoiHEEIaikCADcDACAZIBwpAgA3A/gJIBlBOGoiJSAXIAQgGiAYEN8GIwBBMGsiHiQAIB4QywkgGEEgaiIqQgA3AwAgGEEYaiIrQoCAgICAgIDAPzcDACAYQgA3AxAgGEEoaiIdQgA3AwAgGEEwakIANwMAIBhBOGpCADcDACAYQUBrIh9BADYCACAYQQA6AH0gGCASOgB8IBhBADYCTCAYQoCAgPwDNwJEIBggHikDADcCUCAYQdgAaiIiIB5BCGopAwA3AgAgGEHgAGoiIyAeQRBqKQMANwIAIBhB6ABqIiAgHkEYaikDADcCACAYQfAAaiIcIB5BIGopAwA3AgAgGEH4AGoiEiAeQShqKAIANgIAIBhCADcDACAYQQE2AX4gGEIANwMIIB5BMGokACAXQRhqIh4gJCgCADYCACAXQRBqIiQgJykDADcDACAhICgpAwA3AwAgGSAZKQMYNwPwASAYIBcpAgA3AhAgHSAeKAIANgIAICogJCkCADcCACArICEpAgA3AgAgGiAYQYgBENkLGiAaIAM4AkQgGCAaQYgBENkLGiAYQdAAakMAAAAAQwAAgD8gBJUgBEMAAAAAWxs4AgwgGiAYQYgBENkLGiAhICkoAgA2AgAgGSAmKQIANwPwAUMAAAAAQwAAAAAgFyoCACIDIANDAAAAAF0bIAMgA1wbEH0hL0MAAAAAQwAAAAAgF0EEaioCACIDIANDAAAAAF0bIAMgA1wbEH0hMEMAAAAAQwAAAAAgISoCACIDIANDAAAAAF0bIAMgA1wbEH0hBCAaQeQAakMAAAAAQwAAgD8gMJUiAyAwQwjlPB5fGyADIDBDCOU8nmAbOAIAIBpB4ABqQwAAAABDAACAPyAvlSIDIC9DCOU8Hl8bIAMgL0MI5TyeYBs4AgAgGkHoAGpDAAAAAEMAAIA/IASVIgMgBEMI5TweXxsgAyAEQwjlPJ5gGzgCACAYIBpBiAEQ2QsaIBggGC0AfUH4AXEgCkVBAEECIAsbckEAQQQgDBtycjoAfSAaIBhBiAEQ2QsaIBogGi0AfUHHAXFBAEEQIA4bQQBBCCANG3JBAEEgIA8bcnI6AH0gGCAaQYgBENkLGiAXQShqIgwgJUEoaigCADYCACAXQSBqIgsgJUEgaikDADcDACAeICVBGGopAwA3AwAgJCAlQRBqKQMANwMAICEgJUEIaikDADcDACAZIBkpAzg3A/ABIBggFykCADcCUCASIAwoAgA2AgAgHCALKQIANwIAICAgHikCADcCACAjICQpAgA3AgAgIiAhKQIANwIAIBogGEGIARDZCxogISAGQQRqIgpBCGooAgA2AgAgGSAKKQIANwPwASAaIBcpAgA3AiwgGkE0aiAhKAIANgIAIBggGkGIARDZCxogISAHQQRqIgpBCGooAgA2AgAgGSAKKQIANwPwASAYIBcpAgA3AjggHyAhKAIANgIAIBogGEGIARDZCxogGiAQOAJIIBggGkGIARDZCxogGCAROAJMIBogGEGIARDZCxogGiATQQBHOgB+IBggGkGIARDZCxogGCAUQQBHOgB/IBogGEGIARDZCxogGiAVQQBHOgCAASAYIBpBiAEQ2QsaIBggFjoAgQEgGUHoAGoiFSAYQYgBENkLGiMAQfAAayISJAAgEkEIaiIKEMsJIBJB4QBqQgA3AAAgCkHUAGpCADcCACASQdQAakIANwIAIApBxABqQgA3AgAgCkE8akIANwIAIApBNGpCADcCACAXQgA3AqQCIBdBrAJqQgA3AgAgF0IANwKsASAXQbQBakIANwIAIBdBvAFqQgA3AgAgEkIANwI0IBdByABqIApB5AAQ2QsaIBdB9AFqQgA3AgAgF0HsAWpCADcCACAXQeQBakIANwIAIBdCADcC3AEgF0GAAmpCADcDACAXQfwBakGAgID8AzYCACAXQYgCakIANwMAIBdBkAJqQgA3AwAgF0EAOgDVAiAXQT82AtACIBdBzAJqQQA6AAAgF0HEAmpCgICA+AM3AgAgF0G8AmpCgICAgNCZs+Y+NwIAIBdCBDcCtAIgF0GgAmpBADsBACAXQv////sHNwOYAiAXQcQAaiAVQShqKAIAIgo2AgAgF0E8aiAVQSBqKQMAIi03AgAgF0E0aiAVQRhqKQMAIi43AgAgF0EsaiAVKQMQIiw3AgAgFyAsNwMQIB4gLjcDACALIC03AwAgDCAKNgIAIBcgFSkCLDcCxAEgF0HMAWogFUE0aigCADYCACAXQdgBaiAVQUBrKAIANgIAIBdB0AFqIBUpAzg3AwAgFyAVLQB8OgDUAiAXIBUpAwA3AwAgFyAVQQhqKQMANwMIAkACQCAVKgJQQwAAAABcDQAgFUHUAGoqAgBDAAAAAFwNACAVQdgAaioCAEMAAAAAXA0AIBVB3ABqKgIAQwAAAABcDQAgFUHgAGoqAgBDAAAAAFwNACAVQeQAaioCAEMAAAAAXA0AIBVB6ABqKgIAQwAAAABcDQACQCAVQewAaioCACIDQwAAAABcDQAgFUHwAGoqAgBDAAAAAFwNACAVQfQAaioCAEMAAAAAXA0AIBVB+ABqKgIAQwAAgD9bDQILIANDAAAAAFwNACAVQfAAaioCAEMAAAAAXA0AIBVB9ABqKgIAQwAAAABcDQAgFUH4AGoqAgBDAACAv1sNAQtBLEEEEO4KIhQEQCAUIBVB0ABqIhMpAgA3AgAgFEEoaiATQShqIg8oAgA2AgAgFEEgaiATQSBqIg4pAgA3AgAgFEEYaiATQRhqIg0pAgA3AgAgFEEQaiATQRBqIgwpAgA3AgAgFEEIaiATQQhqIgspAgA3AgAgF0H0AGooAgAiCgRAIAoQrAELIBcgFDYCdCAXIBMpAwA3A0ggF0HQAGogCykDADcDACAXQdgAaiAMKQMANwMAIBdB4ABqIA0pAwA3AwAgF0HoAGogDikDADcDACAXQfAAaiAPKAIANgIADAELQSxBBEHc5sMAKAIAIgBBjwcgABsRAAAACyAXQagBaiAVLQB9OgAAIBcgFSkDSDcC3AEgFyAVKgJEOAL8ASAXIBUtAIEBOgDVAiAXIBUtAIABOgChAgJAIBUtAH4iCkUNACAVLQB/RQ0AIBdBgICAgAQ2AsgCIBdBAToAzAIgF0HEAWoiC0IANwIAIAtBCGpCADcCACALQRBqQgA3AgALIApFBEAgF0KAgID8i4CAwL9/NwPAAgsgEkHwAGokACAaIBdB2AIQ2QsaAkAgGkG4AmooAgAiCkUNACAKQQN0RQ0AIBpBtAJqKAIAEKwBCyAaQgQ3ArQCIBpCADcCpAIgGkG8AmpBADYCACAaQawCakIANwIAIBkgGSgCmAdBP3I2ApgHIBkoAsgEIQsgGUGkB2ogGkEEciIKQdQCENkLGgJAAkACQAJAIBsoAhAEQCAbQRRqKAIAIgwgGygCCCIKTw0CIBsoAgAgDEHgAmxqIgooAgANAyAKQQE2AgAgGyAbKAIYQQFqNgIYIBsgCikCBDcCECAKQQhqIAs2AgAgCiAbKAIMIgs2AgQgCkEMaiAZQaQHakHUAhDZCxoMAQsgGSALNgL4CSAZQfgJaiIfQQRyIApB1AIQ2QsaIBlBEGohFSMAQTBrIg8kACAbQQhqIg0oAgAiC0EBdCEiIBtBFGooAgAhIyAbKAIQISACQAJAAkACQCANAn8CfwJAAkAgG0EEaigCACIOIAtrIgogC0kEQCALIAtqIAtJDQUgIq1C4AJ+IixCIIhQQQN0IQwgLKchCiAPIA4EfyAPIBsoAgA2AhggDyAOrULgAn4+AhxBCAVBAAs2AiAgD0EIaiAKIAwgD0EYahD5BiAPKAIIDQEgDygCDCEKIBtBBGogIjYCACAbIAo2AgAgCyEKCyAKQQAgIiALayIMIAwgIksbIgxJBH8jAEEgayIKJAACQAJAIAsgDGoiDiALSQ0AIBtBBGooAgAiE0EBdCIMIA4gDCAOSxsiDEEEIAxBBEsbIhKtQuACfiIsQiCIUEEDdCEOICynIQwgCiATBH8gCiAbKAIANgIQIAogE61C4AJ+PgIUQQgFQQALNgIYIAogDCAOIApBEGoQ+QYgCigCAARAIApBCGooAgAiAEUNASAKKAIEIABB3ObDACgCACIAQY8HIAAbEQAAAAsgCigCBCEMIBtBBGogEjYCACAbIAw2AgAgCkEgaiQADAELEN8JAAsgG0EIaigCAAUgCwsiDiALICJPDQMaIAtBAWshEyAbKAIAIA5B4AJsaiEdIAtBA3EiEg0BIAsMAgsgD0EQaigCACIARQ0DIA8oAgwgAEHc5sMAKAIAIgBBjwcgABsRAAAAC0EAIQoDQCAdQQA2AgAgHUEEaiAgQQEgCiATRiIMGzYCACAdQQhqICMgCiALakEBaiAMGzYCACAdQeACaiEdIBIgCkEBaiIKRw0ACyAKIAtqCyEKIBNBA08EQCAiQQFrIRYgCiAia0EBaiEcA0AgHUEANgIAIB1BoAhqQQA2AgAgHUHABWpBADYCACAdQeACakEANgIAIB1BBGpBASAgIBwbNgIAIB1BCGogCkEBaiIUICMgHBs2AgAgHUGoCGogIyAKQQRqIgwgCkEDaiITIBZGIhIbNgIAIB1BpAhqICBBASASGzYCACAdQcgFaiAjIBMgCkECaiISIBZGIgobNgIAIB1BxAVqICBBASAKGzYCACAdQegCaiAjIBIgFCAWRiIKGzYCACAdQeQCaiAgQQEgChs2AgAgHUGAC2ohHSAcQQRqIRwgIiAMIgpHDQALCyALIA5qCyIKNgIAIAogC00NASAbKAIAIAtB4AJsaiISKAIADQIgH0G4AmooAgAhDiAfQfQAaigCACENIB8oArQCIQwgHygCACEKIBJBATYCACAbIBsoAhhBAWo2AhggGyASKQIENwIQIBJBCGogCjYCACASIBsoAgwiCjYCBCASQQxqIB9BBGpB8AAQ2QsaIBJB/ABqIA02AgAgEkGAAWogH0H4AGpBvAEQ2QsaIBJBwAJqIA42AgAgEkG8AmogDDYCACASQcQCaiAfQbwCaikCADcCACASQcwCaiAfQcQCaikCADcCACASQdQCaiAfQcwCaikCADcCACASQdwCaiAfQdQCaigCADYCACAVIAo2AgQgFSALNgIAIA9BMGokAAwDCxDfCQALIAsgCkGYosAAEK8IAAsgD0EsakEANgIAIA9ByIHAADYCKCAPQgE3AhwgD0G8osAANgIYIA9BGGpBxKLAABDgCQALIBkoAhQhCyAZKAIQIQwLIBtBJGooAgAiCiAbQSBqKAIARgRAIBtBHGogChD6BSAbKAIkIQoLIBsgCkEBajYCJCAbKAIcIApBA3RqIgogCzYCBCAKIAw2AgAgGUEIaiIKIAs2AgQgCiAMNgIAIBkrAwghMSAZQdAMaiQADAILIAwgCkGYosAAEK8IAAsgGUGMCmpBADYCACAZQciBwAA2AogKIBlCATcC/AkgGUG8osAANgL4CSAZQfgJakHEosAAEOAJAAsgCSAJKAIAQQFrNgIAIAggCCgCAEEBazYCACAHIAcoAgBBAWs2AgAgBiAGKAIAQQFrNgIAIAUgBSgCAEEBazYCACACIAIoAgBBAWs2AgAgASABKAIAQQFrNgIAIABBADYCACAxDwsQzQsACxDOCwALQbG7wABBGRDMCwALxwMCB38BfiMAQRBrIgckACAHIAAoAgAiAjYCDCAHQQxqIAEQxAQiAEUEQCABNQIUIQkgAigCACICQQRqIgQoAgAgAkEIaiIDKAIAIgBrQQdNBEAgAiAAQQgQwwYgAygCACEACyACKAIAIABqIAk3AAAgAyAAQQhqIgM2AgAgAUEgaigCACEFIAFBGGooAgAhBiAEKAIAIANrQQdNBEAgAiADQQgQwwYgAkEIaigCACEDCyACQQhqIgQgA0EIaiIANgIAIAIoAgAgA2ogBa03AAAgBQRAIAYgBUEDdGohCCACQQRqIQUDQCAGNQIAIQkgBSgCACAAa0EHTQRAIAIgAEEIEMMGIAQoAgAhAAsgAigCACAAaiAJNwAAIAQgAEEIaiIDNgIAIAZBBGo1AgAhCSAFKAIAIANrQQdNBEAgAiADQQgQwwYgBCgCACEDCyAEIANBCGoiADYCACACKAIAIANqIAk3AAAgCCAGQQhqIgZHDQALCyABNQIkIQkgAkEEaigCACAAa0EHTQRAIAIgAEEIEMMGIAJBCGooAgAhAAsgAkEIaiAAQQhqNgIAIAIoAgAgAGogCTcAAEEAIQALIAdBEGokACAAC5oDAQl9IAEEQCAAIAJBDGoqAgAiCSABKgIMIgOUIAIqAgAiBSABKgIAIgSUkyACQQRqKgIAIgYgASoCBCIKlJMgAkEIaioCACIHIAEqAggiC5STOAIMIAAgByADlCAFIAqUIAkgC5SSIAYgBJSTkjgCCCAAIAcgBJQgBiADlCAJIAqUIAUgC5STkpI4AgQgACAGIAuUIAkgBJQgBSADlJKSIAcgCpSTOAIAIAUgAUEUaioCACIKlCAGIAEqAhAiC5STIgMgA5IhAyALIAeUIAFBGGoqAgAiCCAFlJMiBCAEkiEEIABBGGogAkEYaioCACAIIAkgA5QgBSAElCAGIAggBpQgCiAHlJMiCCAIkiIIlJOSkpI4AgAgAEEUaiACQRRqKgIAIAogCSAElCAHIAiUIAUgA5STkpKSOAIAIAAgAkEQaioCACALIAkgCJQgBiADlCAHIASUk5KSkjgCEA8LIAAgAikCADcCACAAQRhqIAJBGGooAgA2AgAgAEEQaiACQRBqKQIANwIAIABBCGogAkEIaikCADcCAAuYAwIMfQF/IwBBQGoiESQAIAMqAgAgAkEQaioCACIOkyINIAJBBGoqAgAiCJQgA0EEaioCACACQRRqKgIAIg+TIgkgAioCACIKlJMiByAHkiELIAkgAkEIaioCACIHlCADQQhqKgIAIAJBGGoqAgAiEJMiBSAIlJMiDCAMkiEGIBEgBSACKgIMIgwgC5QgCCAGlCAKIAUgCpQgDSAHlJMiBSAFkiIFlJOSkjgCECARIAkgDCAFlCAKIAuUIAcgBpSTkpI4AgwgESANIAwgBpQgByAFlCAIIAuUk5KSOAIIIBFBGGogASARQQhqIAQQQSARKgIYIQsgESoCICEGIBEqAhwhDSAAIBEtACQ6AAwgACAQIAYgDCAKIA2UIAggC5STIgkgCZIiCZQgCiAHIAuUIAogBpSTIgUgBZIiBZQgCCAIIAaUIAcgDZSTIgYgBpIiBpSTkpKSOAIIIAAgDyANIAwgBZQgByAGlCAKIAmUk5KSkjgCBCAAIA4gCyAMIAaUIAggCZQgByAFlJOSkpI4AgAgEUFAayQAC5gDAgx9AX8jAEFAaiIRJAAgAyoCACACQRBqKgIAIg6TIg0gAkEEaioCACIIlCADQQRqKgIAIAJBFGoqAgAiD5MiCSACKgIAIgqUkyIHIAeSIQsgCSACQQhqKgIAIgeUIANBCGoqAgAgAkEYaioCACIQkyIFIAiUkyIMIAySIQYgESAFIAIqAgwiDCALlCAIIAaUIAogBSAKlCANIAeUkyIFIAWSIgWUk5KSOAIQIBEgCSAMIAWUIAogC5QgByAGlJOSkjgCDCARIA0gDCAGlCAHIAWUIAggC5STkpI4AgggEUEYaiABIBFBCGogBBAsIBEqAhghCyARKgIgIQYgESoCHCENIAAgES0AJDoADCAAIBAgBiAMIAogDZQgCCALlJMiCSAJkiIJlCAKIAcgC5QgCiAGlJMiBSAFkiIFlCAIIAggBpQgByANlJMiBiAGkiIGlJOSkpI4AgggACAPIA0gDCAFlCAHIAaUIAogCZSTkpKSOAIEIAAgDiALIAwgBpQgCCAJlCAHIAWUk5KSkjgCACARQUBrJAALngMCDH0BfyMAQTBrIhAkACADKgIAIAJBEGoqAgAiDZMiCyACQQRqKgIAIgiUIANBBGoqAgAgAkEUaioCACIOkyIMIAIqAgAiCZSTIgUgBZIhBiAMIAJBCGoqAgAiBZQgA0EIaioCACACQRhqKgIAIg+TIgQgCJSTIgogCpIhByAQIAQgAioCDCIKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AiggECAMIAogBJQgCSAGlCAFIAeUk5KSOAIkIBAgCyAKIAeUIAUgBJQgCCAGlJOSkjgCICAQQQhqIAEgEEEgakEAEMwCIABCAjcCECAAIBAtABQ6AAwgCSAQKgIMIguUIAggECoCCCIMlJMiBiAGkiEGIAUgDJQgCSAQKgIQIgSUkyIHIAeSIQcgACAPIAQgCiAGlCAJIAeUIAggCCAElCAFIAuUkyIEIASSIgSUk5KSkjgCCCAAIA4gCyAKIAeUIAUgBJQgCSAGlJOSkpI4AgQgACANIAwgCiAElCAIIAaUIAUgB5STkpKSOAIAIBBBMGokAAueAwIMfQF/IwBBMGsiECQAIAMqAgAgAkEQaioCACINkyILIAJBBGoqAgAiCJQgA0EEaioCACACQRRqKgIAIg6TIgwgAioCACIJlJMiBSAFkiEGIAwgAkEIaioCACIFlCADQQhqKgIAIAJBGGoqAgAiD5MiBCAIlJMiCiAKkiEHIBAgBCACKgIMIgogBpQgCCAHlCAJIAQgCZQgCyAFlJMiBCAEkiIElJOSkjgCKCAQIAwgCiAElCAJIAaUIAUgB5STkpI4AiQgECALIAogB5QgBSAElCAIIAaUk5KSOAIgIBBBCGogASAQQSBqEEMgACAQKQMYNwIQIAAgEC0AFDoADCAJIBAqAgwiC5QgCCAQKgIIIgyUkyIGIAaSIQYgBSAMlCAJIBAqAhAiBJSTIgcgB5IhByAAIA8gBCAKIAaUIAkgB5QgCCAIIASUIAUgC5STIgQgBJIiBJSTkpKSOAIIIAAgDiALIAogB5QgBSAElCAJIAaUk5KSkjgCBCAAIA0gDCAKIASUIAggBpQgBSAHlJOSkpI4AgAgEEEwaiQAC54DAgx9AX8jAEEwayIQJAAgAyoCACACQRBqKgIAIg2TIgsgAkEEaioCACIIlCADQQRqKgIAIAJBFGoqAgAiDpMiDCACKgIAIgmUkyIFIAWSIQYgDCACQQhqKgIAIgWUIANBCGoqAgAgAkEYaioCACIPkyIEIAiUkyIKIAqSIQcgECAEIAIqAgwiCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIoIBAgDCAKIASUIAkgBpQgBSAHlJOSkjgCJCAQIAsgCiAHlCAFIASUIAggBpSTkpI4AiAgEEEIaiABIBBBIGoQPyAAIBApAxg3AhAgACAQLQAUOgAMIAkgECoCDCILlCAIIBAqAggiDJSTIgYgBpIhBiAFIAyUIAkgECoCECIElJMiByAHkiEHIAAgDyAEIAogBpQgCSAHlCAIIAggBJQgBSALlJMiBCAEkiIElJOSkpI4AgggACAOIAsgCiAHlCAFIASUIAkgBpSTkpKSOAIEIAAgDSAMIAogBJQgCCAGlCAFIAeUk5KSkjgCACAQQTBqJAALnwMCDH0BfyMAQTBrIhAkACADKgIAIAJBEGoqAgAiDZMiCyACQQRqKgIAIgiUIANBBGoqAgAgAkEUaioCACIOkyIMIAIqAgAiCZSTIgUgBZIhBiAMIAJBCGoqAgAiBZQgA0EIaioCACACQRhqKgIAIg+TIgQgCJSTIgogCpIhByAQIAQgAioCDCIKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AiggECAMIAogBJQgCSAGlCAFIAeUk5KSOAIkIBAgCyAKIAeUIAUgBJQgCCAGlJOSkjgCICAQQQhqIAEgEEEgahDyASAAIBApAxg3AhAgACAQLQAUOgAMIAkgECoCDCILlCAIIBAqAggiDJSTIgYgBpIhBiAFIAyUIAkgECoCECIElJMiByAHkiEHIAAgDyAEIAogBpQgCSAHlCAIIAggBJQgBSALlJMiBCAEkiIElJOSkpI4AgggACAOIAsgCiAHlCAFIASUIAkgBpSTkpKSOAIEIAAgDSAMIAogBJQgCCAGlCAFIAeUk5KSkjgCACAQQTBqJAAL4gIBA38CQAJAAkACQAJAAkAgByAIVgRAIAcgCH0gCFgNBSAGIAcgBn1UIAcgBkIBhn0gCEIBhlpxDQEgBiAIVgRAIAYgCH0iBiAHIAZ9Wg0DCwwFCwwECyACIANJDQIMBAsgAiADSQ0BIAEhCgJAA0AgAyAJRg0BIAlBAWohCSADIApqIApBAWshCkEBay0AAEE5Rg0ACyADIApqIgUgBS0AAEEBajoAACADIAlrQQFqIANPDQEgBUEBakEwIAlBAWsQ2gsaDAELAn9BMSADRQ0AGiABQTE6AABBMCADQQFGDQAaIAFBAWpBMCADQQFrENoLGkEwCyEJIARBEHRBgIAEakEQdSIEIAVBEHRBEHVMDQAgAiADTQ0AIAEgA2ogCToAACADQQFqIQMMAAsgAiADTwRADAMLCyADIAIQ1gsACyAAQQA2AgAPCyAAIAM2AgQgACABNgIAIABBCGogBDsBAAuUAwIJfQF/IwBBMGsiDSQAIAFBBGoqAgAiCCACQQxqKgIAIguUIAEqAgAiCSACQRBqKgIAIgyUkyIFIAWSIQYgAUEIaioCACIFIAyUIAggAkEUaioCACIElJMiCiAKkiEHIA1BFGogBCABKgIMIgogBpQgCCAHlCAJIAkgBJQgBSALlJMiBCAEkiIElJOSkjgCACANQRBqIAwgCiAElCAJIAaUIAUgB5STkpI4AgAgDSALIAogB5QgBSAElCAIIAaUk5KSOAIMIAggAioCACABQRBqKgIAkyILlCAJIAJBBGoqAgAgAUEUaioCAJMiDJSTIgYgBpIhBiAMIAWUIAJBCGoqAgAgAUEYaioCAJMiBCAIlJMiByAHkiEHIA0gBCAKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AgggDSAMIAogBJQgCSAGlCAFIAeUk5KSOAIEIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCACANQRhqIAAgDSADQQEQlQEgDSgCKCANQTBqJABBBEcLlAMCCX0BfyMAQTBrIg0kACABQQRqKgIAIgggAkEMaioCACILlCABKgIAIgkgAkEQaioCACIMlJMiBSAFkiEGIAFBCGoqAgAiBSAMlCAIIAJBFGoqAgAiBJSTIgogCpIhByANQRRqIAQgASoCDCIKIAaUIAggB5QgCSAJIASUIAUgC5STIgQgBJIiBJSTkpI4AgAgDUEQaiAMIAogBJQgCSAGlCAFIAeUk5KSOAIAIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCDCAIIAIqAgAgAUEQaioCAJMiC5QgCSACQQRqKgIAIAFBFGoqAgCTIgyUkyIGIAaSIQYgDCAFlCACQQhqKgIAIAFBGGoqAgCTIgQgCJSTIgcgB5IhByANIAQgCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIIIA0gDCAKIASUIAkgBpQgBSAHlJOSkjgCBCANIAsgCiAHlCAFIASUIAggBpSTkpI4AgAgDUEYaiAAIA0gA0EBEKMBIA0oAiggDUEwaiQAQQRHC5QDAgl9AX8jAEEwayINJAAgAUEEaioCACIIIAJBDGoqAgAiC5QgASoCACIJIAJBEGoqAgAiDJSTIgUgBZIhBiABQQhqKgIAIgUgDJQgCCACQRRqKgIAIgSUkyIKIAqSIQcgDUEUaiAEIAEqAgwiCiAGlCAIIAeUIAkgCSAElCAFIAuUkyIEIASSIgSUk5KSOAIAIA1BEGogDCAKIASUIAkgBpQgBSAHlJOSkjgCACANIAsgCiAHlCAFIASUIAggBpSTkpI4AgwgCCACKgIAIAFBEGoqAgCTIguUIAkgAkEEaioCACABQRRqKgIAkyIMlJMiBiAGkiEGIAwgBZQgAkEIaioCACABQRhqKgIAkyIEIAiUkyIHIAeSIQcgDSAEIAogBpQgCCAHlCAJIAQgCZQgCyAFlJMiBCAEkiIElJOSkjgCCCANIAwgCiAElCAJIAaUIAUgB5STkpI4AgQgDSALIAogB5QgBSAElCAIIAaUk5KSOAIAIA1BGGogACANIANBARCuASANKAIoIA1BMGokAEEERwuUAwIJfQF/IwBBMGsiDSQAIAFBBGoqAgAiCCACQQxqKgIAIguUIAEqAgAiCSACQRBqKgIAIgyUkyIFIAWSIQYgAUEIaioCACIFIAyUIAggAkEUaioCACIElJMiCiAKkiEHIA1BFGogBCABKgIMIgogBpQgCCAHlCAJIAkgBJQgBSALlJMiBCAEkiIElJOSkjgCACANQRBqIAwgCiAElCAJIAaUIAUgB5STkpI4AgAgDSALIAogB5QgBSAElCAIIAaUk5KSOAIMIAggAioCACABQRBqKgIAkyILlCAJIAJBBGoqAgAgAUEUaioCAJMiDJSTIgYgBpIhBiAMIAWUIAJBCGoqAgAgAUEYaioCAJMiBCAIlJMiByAHkiEHIA0gBCAKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AgggDSAMIAogBJQgCSAGlCAFIAeUk5KSOAIEIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCACANQRhqIAAgDSADQQEQzQEgDSgCKCANQTBqJABBBEcLlAMCCX0BfyMAQTBrIg0kACABQQRqKgIAIgggAkEMaioCACILlCABKgIAIgkgAkEQaioCACIMlJMiBSAFkiEGIAFBCGoqAgAiBSAMlCAIIAJBFGoqAgAiBJSTIgogCpIhByANQRRqIAQgASoCDCIKIAaUIAggB5QgCSAJIASUIAUgC5STIgQgBJIiBJSTkpI4AgAgDUEQaiAMIAogBJQgCSAGlCAFIAeUk5KSOAIAIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCDCAIIAIqAgAgAUEQaioCAJMiC5QgCSACQQRqKgIAIAFBFGoqAgCTIgyUkyIGIAaSIQYgDCAFlCACQQhqKgIAIAFBGGoqAgCTIgQgCJSTIgcgB5IhByANIAQgCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIIIA0gDCAKIASUIAkgBpQgBSAHlJOSkjgCBCANIAsgCiAHlCAFIASUIAggBpSTkpI4AgAgDUEYaiAAIA0gA0EBEKABIA0oAiggDUEwaiQAQQRHC5QDAgl9AX8jAEEwayINJAAgAUEEaioCACIIIAJBDGoqAgAiC5QgASoCACIJIAJBEGoqAgAiDJSTIgUgBZIhBiABQQhqKgIAIgUgDJQgCCACQRRqKgIAIgSUkyIKIAqSIQcgDUEUaiAEIAEqAgwiCiAGlCAIIAeUIAkgCSAElCAFIAuUkyIEIASSIgSUk5KSOAIAIA1BEGogDCAKIASUIAkgBpQgBSAHlJOSkjgCACANIAsgCiAHlCAFIASUIAggBpSTkpI4AgwgCCACKgIAIAFBEGoqAgCTIguUIAkgAkEEaioCACABQRRqKgIAkyIMlJMiBiAGkiEGIAwgBZQgAkEIaioCACABQRhqKgIAkyIEIAiUkyIHIAeSIQcgDSAEIAogBpQgCCAHlCAJIAQgCZQgCyAFlJMiBCAEkiIElJOSkjgCCCANIAwgCiAElCAJIAaUIAUgB5STkpI4AgQgDSALIAogB5QgBSAElCAIIAaUk5KSOAIAIA1BGGogACANIANBARC0ASANKAIoIA1BMGokAEEERwuUAwIJfQF/IwBBMGsiDSQAIAFBBGoqAgAiCCACQQxqKgIAIguUIAEqAgAiCSACQRBqKgIAIgyUkyIFIAWSIQYgAUEIaioCACIFIAyUIAggAkEUaioCACIElJMiCiAKkiEHIA1BFGogBCABKgIMIgogBpQgCCAHlCAJIAkgBJQgBSALlJMiBCAEkiIElJOSkjgCACANQRBqIAwgCiAElCAJIAaUIAUgB5STkpI4AgAgDSALIAogB5QgBSAElCAIIAaUk5KSOAIMIAggAioCACABQRBqKgIAkyILlCAJIAJBBGoqAgAgAUEUaioCAJMiDJSTIgYgBpIhBiAMIAWUIAJBCGoqAgAgAUEYaioCAJMiBCAIlJMiByAHkiEHIA0gBCAKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AgggDSAMIAogBJQgCSAGlCAFIAeUk5KSOAIEIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCACANQRhqIAAgDSADQQEQ0AEgDSgCKCANQTBqJABBBEcLkwMCCX0BfyMAQTBrIg0kACABQQRqKgIAIgggAkEMaioCACILlCABKgIAIgkgAkEQaioCACIMlJMiBSAFkiEGIAFBCGoqAgAiBSAMlCAIIAJBFGoqAgAiBJSTIgogCpIhByANQRRqIAQgASoCDCIKIAaUIAggB5QgCSAJIASUIAUgC5STIgQgBJIiBJSTkpI4AgAgDUEQaiAMIAogBJQgCSAGlCAFIAeUk5KSOAIAIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCDCAIIAIqAgAgAUEQaioCAJMiC5QgCSACQQRqKgIAIAFBFGoqAgCTIgyUkyIGIAaSIQYgDCAFlCACQQhqKgIAIAFBGGoqAgCTIgQgCJSTIgcgB5IhByANIAQgCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIIIA0gDCAKIASUIAkgBpQgBSAHlJOSkjgCBCANIAsgCiAHlCAFIASUIAggBpSTkpI4AgAgDUEYaiAAIA0gA0EBEHMgDSgCKCANQTBqJABBBEcLlAMCCX0BfyMAQTBrIg0kACABQQRqKgIAIgggAkEMaioCACILlCABKgIAIgkgAkEQaioCACIMlJMiBSAFkiEGIAFBCGoqAgAiBSAMlCAIIAJBFGoqAgAiBJSTIgogCpIhByANQRRqIAQgASoCDCIKIAaUIAggB5QgCSAJIASUIAUgC5STIgQgBJIiBJSTkpI4AgAgDUEQaiAMIAogBJQgCSAGlCAFIAeUk5KSOAIAIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCDCAIIAIqAgAgAUEQaioCAJMiC5QgCSACQQRqKgIAIAFBFGoqAgCTIgyUkyIGIAaSIQYgDCAFlCACQQhqKgIAIAFBGGoqAgCTIgQgCJSTIgcgB5IhByANIAQgCiAGlCAIIAeUIAkgBCAJlCALIAWUkyIEIASSIgSUk5KSOAIIIA0gDCAKIASUIAkgBpQgBSAHlJOSkjgCBCANIAsgCiAHlCAFIASUIAggBpSTkpI4AgAgDUEYaiAAIA0gA0EBENgBIA0oAiggDUEwaiQAQQRHC5QDAgl9AX8jAEEwayINJAAgAUEEaioCACIIIAJBDGoqAgAiC5QgASoCACIJIAJBEGoqAgAiDJSTIgUgBZIhBiABQQhqKgIAIgUgDJQgCCACQRRqKgIAIgSUkyIKIAqSIQcgDUEUaiAEIAEqAgwiCiAGlCAIIAeUIAkgCSAElCAFIAuUkyIEIASSIgSUk5KSOAIAIA1BEGogDCAKIASUIAkgBpQgBSAHlJOSkjgCACANIAsgCiAHlCAFIASUIAggBpSTkpI4AgwgCCACKgIAIAFBEGoqAgCTIguUIAkgAkEEaioCACABQRRqKgIAkyIMlJMiBiAGkiEGIAwgBZQgAkEIaioCACABQRhqKgIAkyIEIAiUkyIHIAeSIQcgDSAEIAogBpQgCCAHlCAJIAQgCZQgCyAFlJMiBCAEkiIElJOSkjgCCCANIAwgCiAElCAJIAaUIAUgB5STkpI4AgQgDSALIAogB5QgBSAElCAIIAaUk5KSOAIAIA1BGGogACANIANBARDAASANKAIoIA1BMGokAEEERwuUAwIJfQF/IwBBMGsiDSQAIAFBBGoqAgAiCCACQQxqKgIAIguUIAEqAgAiCSACQRBqKgIAIgyUkyIFIAWSIQYgAUEIaioCACIFIAyUIAggAkEUaioCACIElJMiCiAKkiEHIA1BFGogBCABKgIMIgogBpQgCCAHlCAJIAkgBJQgBSALlJMiBCAEkiIElJOSkjgCACANQRBqIAwgCiAElCAJIAaUIAUgB5STkpI4AgAgDSALIAogB5QgBSAElCAIIAaUk5KSOAIMIAggAioCACABQRBqKgIAkyILlCAJIAJBBGoqAgAgAUEUaioCAJMiDJSTIgYgBpIhBiAMIAWUIAJBCGoqAgAgAUEYaioCAJMiBCAIlJMiByAHkiEHIA0gBCAKIAaUIAggB5QgCSAEIAmUIAsgBZSTIgQgBJIiBJSTkpI4AgggDSAMIAogBJQgCSAGlCAFIAeUk5KSOAIEIA0gCyAKIAeUIAUgBJQgCCAGlJOSkjgCACANQRhqIAAgDSADQQEQoQEgDSgCKCANQTBqJABBBEcLlwMBCX0gAQRAIAAgAUEIaioCACIFIAIqAggiA5QgAUEEaioCACIGIAIqAgQiBJQgASoCACIHIAIqAgAiCZQgASoCDCIKIAIqAgwiC5SSkpI4AgwgACAGIAmUIAogA5QgByAElJOSIAUgC5STOAIIIAAgCiAElCAHIAOUkiAGIAuUkyAFIAmUkzgCBCAAIAUgBJQgCiAJlCAHIAuUkyAGIAOUk5I4AgAgBiACQRBqKgIAIAEqAhCTIgmUIAcgAkEUaioCACABQRRqKgIAkyILlJMiAyADkiEDIAUgC5QgBiACQRhqKgIAIAFBGGoqAgCTIgiUkyIEIASSIQQgAEEYaiAIIAogA5QgBiAElCAHIAcgCJQgBSAJlJMiCCAIkiIIlJOSkjgCACAAQRRqIAsgCiAIlCAHIAOUIAUgBJSTkpI4AgAgACAJIAogBJQgBSAIlCAGIAOUk5KSOAIQDwsgACACKQIANwIAIABBGGogAkEYaigCADYCACAAQRBqIAJBEGopAgA3AgAgAEEIaiACQQhqKQIANwIAC8kDAQ5/IAFBBGooAgAiCiABKAIAIgsgAkEIaigCACIFIAJBBGooAgAiBiACKAIAIgdBysqfiXpzQbnz3fF5bEEFd3NBufPd8XlsQQV3c0G5893xeWwiDHEiCGooAAAiAiAMQRl2QYGChAhsIg5zIgNBgYKECGsgA0F/c3FBgIGChHhxIQMgAUEYaigCACENIAEoAhAhDwJAAkADQCADRQRAA0AgAiACQQF0cUGAgYKEeHENBCAIIAlqIQIgCUEEaiEJIA4gAkEEaiALcSIIIApqKAAAIgJzIgNBgYKECGsgA0F/c3FBgIGChHhxIgNFDQALCyAKIANoQQN2IAhqIAtxQQJ0ayIQQQRrKAIAIgQgDU8NASADQQFrIANxIQMgByAPIARBFGxqIgRBBGooAgBHDQAgBiAEQQhqKAIARw0AIAUgBEEMaigCAEcNAAsgACABNgIEIABBFGogBTYCACAAQRBqIAY2AgAgAEEMaiAHNgIAIABBCGogEDYCACAAQQA2AgAPCyAEIA1BxPHAABCvCAALIAAgATYCBCAAQRRqIAU2AgAgAEEQaiAGNgIAIABBDGogBzYCACAAQQhqIAw2AgAgAEEBNgIAC+YDAQh9AkBDAACAPxB9IgRDAAAAAFsNACABQwAAAACUIgVDAAAAACAElSAClEMAAAAAlEMAAIA/IASVIAKUIgcgBZOSXkUNAEMAAAAAIQcLAkBDAACAPxB9IgRDAAAAAFsNACABQwAAAACUIgVDAAAAACAElSAClEMAAAAAlEMAAIC/IASVIAKUIgaMIAWTkl5FDQBDAAAAACEGCyABjCEEAn1DAAAAABB9IgNDAAAAAFwEQCAEQwAAAAAgA5UgApRDAAAAAJQiAyADIAGTkiABXUUNARogAQwBCyABiwshBQJAQwAAAAAQfSIDQwAAAABcBEBDAAAAACADlSAClEMAAAAAlCIDIAMgAZKSIARdRQ0BIAEhBAwBCyABi4whBAsCQEMAAIA/EH0iCkMAAAAAWw0AIAFDAAAAAJQiA0MAAIA/IAqVIAKUIglDAAAAACAKlSAClEMAAAAAlCADk5JeRQ0AQwAAAAAhCQsCQEMAAIA/EH0iA0MAAAAAWw0AIAFDAAAAAJQiAUMAAAAAIAOVIAKUQwAAAACUIAGTQwAAgL8gA5UgApQiCJNeRQ0AQwAAAAAhCAsgACAHOAIMIAAgCDgCCCAAIAQ4AgQgACAGOAIAIABBFGogCTgCACAAQRBqIAU4AgALlQMCDH0BfyMAQTBrIhEkACADKgIAIAJBEGoqAgAiDpMiDSACQQRqKgIAIgiUIANBBGoqAgAgAkEUaioCACIPkyIJIAIqAgAiCpSTIgcgB5IhCyAJIAJBCGoqAgAiB5QgA0EIaioCACACQRhqKgIAIhCTIgUgCJSTIgwgDJIhBiARIAUgAioCDCIMIAuUIAggBpQgCiAFIAqUIA0gB5STIgUgBZIiBZSTkpI4AgggESAJIAwgBZQgCiALlCAHIAaUk5KSOAIEIBEgDSAMIAaUIAcgBZQgCCALlJOSkjgCACARQRBqIAEgESAEEDYgESoCECELIBEqAhghBiARKgIUIQ0gACARLQAcOgAMIAAgECAGIAwgCiANlCAIIAuUkyIJIAmSIgmUIAogByALlCAKIAaUkyIFIAWSIgWUIAggCCAGlCAHIA2UkyIGIAaSIgaUk5KSkjgCCCAAIA8gDSAMIAWUIAcgBpQgCiAJlJOSkpI4AgQgACAOIAsgDCAGlCAIIAmUIAcgBZSTkpKSOAIAIBFBMGokAAuYAwELfSADKgIAIgggAkEEaioCACIJlCADQQRqKgIAIgogAioCACILlJMiBSAFkiEGIAogAkEIaioCACIFlCADQQhqKgIAIgQgCZSTIgwgDJIhByAAIAJBGGoqAgAgASoCDCIOIAQgAioCDCIMIAaUIAkgB5QgCyAEIAuUIAggBZSTIgQgBJIiBJSTkpIiDZQgDbxBgICAgHhxIAEoAghB/////wdxcr6SIg0gDCALIA4gCiAMIASUIAsgBpQgBSAHlJOSkiIKlCAKvEGAgICAeHEgASgCBEH/////B3FyvpIiCpQgCSAOIAggDCAHlCAFIASUIAkgBpSTkpIiBpQgBrxBgICAgHhxIAEoAgBB/////wdxcr6SIgaUkyIHIAeSIgeUIAsgBSAGlCALIA2UkyIIIAiSIgiUIAkgCSANlCAFIAqUkyIEIASSIgSUk5KSkjgCCCAAIAJBFGoqAgAgCiAMIAiUIAUgBJQgCyAHlJOSkpI4AgQgACACQRBqKgIAIAYgDCAElCAJIAeUIAUgCJSTkpKSOAIAC/oDAgd9An9DAACAPyEGIAEqAgAiBCAElCABKgIIIgUgBZSSQwAAAACSEH0iB0MAAAA0X0UEQCAEIAeVIQYgBSAHlSEDCwJ/AkAgASoCBCIHi0MAAAA/XUUEQCACQSxqIAAqAgQiBCAGjJQiCDgCACACQShqIAAqAgAgB5giBTgCACACIAMgBJQiCTgCJCACQSBqIAQgA4yUIgM4AgAgAkEcaiAFOAIAIAIgCDgCGCACQRRqIAYgBJQiBjgCACACQRBqIAU4AgAgAiADOAIMIAIgCTgCCCACIAU4AgQgAiAGOAIAIAdDAAAAAF0NASACQpOAgIDAADcCUCACQoyAgIDgATcCQCACQcgAakKQgICAoAI3AgBBESEBQQ0hCkELIQtBDwwCCyACQgA3AkAgAkEQaiAAKgIAIgQ4AgAgAkHIAGpCADcCACACQdAAakKAgICAIDcCACACQRRqIAMgACoCBCIDlCIFOAIAIAIgBiADlCIDOAIMIAIgBTgCCCACIASMOAIEIAIgAzgCAEELIQpBASELQQshAUELDAELIAJCiYCAgMAANwJQIAJCgoCAgMAANwJAIAJByABqQoaAgICAATcCAEEHIQFBAyEKQQEhC0EFCyEAIAIgCzYCMCACQTxqIAE2AgAgAkE4aiAANgIAIAJBNGogCjYCAAuSAwEMfSMAQTBrIgQkACADKgIAIAJBEGoqAgAiDpMiDSACQQRqKgIAIgiUIANBBGoqAgAgAkEUaioCACIPkyIJIAIqAgAiCpSTIgcgB5IhCyAJIAJBCGoqAgAiB5QgA0EIaioCACACQRhqKgIAIhCTIgUgCJSTIgwgDJIhBiAEIAUgAioCDCIMIAuUIAggBpQgCiAFIAqUIA0gB5STIgUgBZIiBZSTkpI4AgggBCAJIAwgBZQgCiALlCAHIAaUk5KSOAIEIAQgDSAMIAaUIAcgBZQgCCALlJOSkjgCACAEQRBqIAEgBBC4AiAEKgIQIQsgBCoCGCEGIAQqAhQhDSAAIAQtABw6AAwgACAQIAYgDCAKIA2UIAggC5STIgkgCZIiCZQgCiAHIAuUIAogBpSTIgUgBZIiBZQgCCAIIAaUIAcgDZSTIgYgBpIiBpSTkpKSOAIIIAAgDyANIAwgBZQgByAGlCAKIAmUk5KSkjgCBCAAIA4gCyAMIAaUIAggCZQgByAFlJOSkpI4AgAgBEEwaiQAC/UDAgJ/DH0jAEEgayIEJAAgBEEANgIIIARCgICA/AM3AwAgBEEQaiIFIAEgAiAEEOsDIARBgICA/Hs2AgAgBCoCECEGIAUgASACIAQQ6wMgBEKAgICAgICAwD83AwAgBCoCECEHIAUgASACIAQQ6wMgBEGAgID8ezYCBCAEKgIUIQggBSABIAIgBBDrAyAEQoCAgICAgIDAPzcCBCAEKgIUIQkgBSABIAIgBBDrAyAEQYCAgPx7NgIIIAQqAhghCiAFIAEgAiAEEOsDIAQqAhghCyAEQQA2AgggBEKAgID8AzcDACAFIAEgAyAEEOsDIARBgICA/Hs2AgAgBCoCECEMIAUgASADIAQQ6wMgBEKAgICAgICAwD83AwAgBCoCECENIAUgASADIAQQ6wMgBEGAgID8ezYCBCAEKgIUIQ4gBSABIAMgBBDrAyAEQoCAgICAgIDAPzcCBCAEKgIUIQ8gBSABIAMgBBDrAyAEQYCAgPx7NgIIIAQqAhghECAFIAEgAyAEEOsDIAQqAhghESAAQRRqIAogECAKIBBgGzgCACAAQRBqIAggDiAIIA5gGzgCACAAIAYgDCAGIAxgGzgCDCAAIAsgESALIBFfGzgCCCAAIAkgDyAJIA9fGzgCBCAAIAcgDSAHIA1fGzgCACAEQSBqJAAL9QMCAn8MfSMAQSBrIgQkACAEQQA2AgggBEKAgID8AzcDACAEQRBqIgUgASACIAQQgQMgBEGAgID8ezYCACAEKgIQIQYgBSABIAIgBBCBAyAEQoCAgICAgIDAPzcDACAEKgIQIQcgBSABIAIgBBCBAyAEQYCAgPx7NgIEIAQqAhQhCCAFIAEgAiAEEIEDIARCgICAgICAgMA/NwIEIAQqAhQhCSAFIAEgAiAEEIEDIARBgICA/Hs2AgggBCoCGCEKIAUgASACIAQQgQMgBCoCGCELIARBADYCCCAEQoCAgPwDNwMAIAUgASADIAQQgQMgBEGAgID8ezYCACAEKgIQIQwgBSABIAMgBBCBAyAEQoCAgICAgIDAPzcDACAEKgIQIQ0gBSABIAMgBBCBAyAEQYCAgPx7NgIEIAQqAhQhDiAFIAEgAyAEEIEDIARCgICAgICAgMA/NwIEIAQqAhQhDyAFIAEgAyAEEIEDIARBgICA/Hs2AgggBCoCGCEQIAUgASADIAQQgQMgBCoCGCERIABBFGogCiAQIAogEGAbOAIAIABBEGogCCAOIAggDmAbOAIAIAAgBiAMIAYgDGAbOAIMIAAgCyARIAsgEV8bOAIIIAAgCSAPIAkgD18bOAIEIAAgByANIAcgDV8bOAIAIARBIGokAAusAwEJfSABKgIIIgW8QYCAgIB4cUGAgID8A3K+IQMgASoCBCIEIASUQwAAgL8gBSADkpUiCJQgA5IhByABKgIAIgIgAiADlJQgCJRDAACAP5IhCSACIAOMlCEKAkACQCACIAIgBJQgCJQiCCADlCIDkiAEkyIGQwAAAABeRQRAIASMIQYgAiADXiACIAZecQ0BIAMgBl5FBEAgByAKkkMAAIA/IASTIAKTIAOTEH0iAiACkiIHlSECIAQgCZMgB5UhAyAIIAWSIAeVIQQgB0MAAIA+lCEGDAMLIAcgCpIgA0MAAIA/kiACkyAEkhB9IgIgApIiApUhBiAIIAWTIAKVIQMgCSAEkiAClSEEIAJDAACAPpQhAgwCCyAEIAmTIAZDAACAP5IQfSIEIASSIgOVIQYgCiAHkyADlSEEIAggBZMgA5UhAiADQwAAgD6UIQMMAQsgCCAFkiACQwAAgD+SIAOTIASSEH0iAiACkiIFlSEGIAogB5MgBZUhAyAJIASSIAWVIQIgBUMAAIA+lCEECyAAIAM4AgwgACAGOAIIIAAgAjgCBCAAIAQ4AgALkwMCDH0BfyMAQSBrIhEkACADKgIAIAJBEGoqAgAiDpMiDCACQQRqKgIAIgmUIANBBGoqAgAgAkEUaioCACIPkyINIAIqAgAiCpSTIgYgBpIhByANIAJBCGoqAgAiBpQgA0EIaioCACACQRhqKgIAIhCTIgUgCZSTIgsgC5IhCCARIAUgAioCDCILIAeUIAkgCJQgCiAFIAqUIAwgBpSTIgUgBZIiBZSTkpI4AhggESANIAsgBZQgCiAHlCAGIAiUk5KSOAIUIBEgDCALIAiUIAYgBZQgCSAHlJOSkjgCECARIAEgEUEQaiAEEBwgACARLQAMOgAMIAogESoCBCIMlCAJIBEqAgAiDZSTIgcgB5IhByAGIA2UIAogESoCCCIFlJMiCCAIkiEIIAAgECAFIAsgB5QgCiAIlCAJIAkgBZQgBiAMlJMiBSAFkiIFlJOSkpI4AgggACAPIAwgCyAIlCAGIAWUIAogB5STkpKSOAIEIAAgDiANIAsgBZQgCSAHlCAGIAiUk5KSkjgCACARQSBqJAALlAMCDH0BfyMAQSBrIhEkACADKgIAIAJBEGoqAgAiDpMiDCACQQRqKgIAIgmUIANBBGoqAgAgAkEUaioCACIPkyINIAIqAgAiCpSTIgYgBpIhByANIAJBCGoqAgAiBpQgA0EIaioCACACQRhqKgIAIhCTIgUgCZSTIgsgC5IhCCARIAUgAioCDCILIAeUIAkgCJQgCiAFIAqUIAwgBpSTIgUgBZIiBZSTkpI4AhggESANIAsgBZQgCiAHlCAGIAiUk5KSOAIUIBEgDCALIAiUIAYgBZQgCSAHlJOSkjgCECARIAEgEUEQaiAEEMwCIAAgES0ADDoADCAKIBEqAgQiDJQgCSARKgIAIg2UkyIHIAeSIQcgBiANlCAKIBEqAggiBZSTIgggCJIhCCAAIBAgBSALIAeUIAogCJQgCSAJIAWUIAYgDJSTIgUgBZIiBZSTkpKSOAIIIAAgDyAMIAsgCJQgBiAFlCAKIAeUk5KSkjgCBCAAIA4gDSALIAWUIAkgB5QgBiAIlJOSkpI4AgAgEUEgaiQAC5MDAgx9AX8jAEEgayIRJAAgAyoCACACQRBqKgIAIg6TIgwgAkEEaioCACIJlCADQQRqKgIAIAJBFGoqAgAiD5MiDSACKgIAIgqUkyIGIAaSIQcgDSACQQhqKgIAIgaUIANBCGoqAgAgAkEYaioCACIQkyIFIAmUkyILIAuSIQggESAFIAIqAgwiCyAHlCAJIAiUIAogBSAKlCAMIAaUkyIFIAWSIgWUk5KSOAIYIBEgDSALIAWUIAogB5QgBiAIlJOSkjgCFCARIAwgCyAIlCAGIAWUIAkgB5STkpI4AhAgESABIBFBEGogBBAdIAAgES0ADDoADCAKIBEqAgQiDJQgCSARKgIAIg2UkyIHIAeSIQcgBiANlCAKIBEqAggiBZSTIgggCJIhCCAAIBAgBSALIAeUIAogCJQgCSAJIAWUIAYgDJSTIgUgBZIiBZSTkpKSOAIIIAAgDyAMIAsgCJQgBiAFlCAKIAeUk5KSkjgCBCAAIA4gDSALIAWUIAkgB5QgBiAIlJOSkpI4AgAgEUEgaiQAC5QDAgx9AX8jAEEgayIRJAAgAyoCACACQRBqKgIAIg6TIgwgAkEEaioCACIJlCADQQRqKgIAIAJBFGoqAgAiD5MiDSACKgIAIgqUkyIGIAaSIQcgDSACQQhqKgIAIgaUIANBCGoqAgAgAkEYaioCACIQkyIFIAmUkyILIAuSIQggESAFIAIqAgwiCyAHlCAJIAiUIAogBSAKlCAMIAaUkyIFIAWSIgWUk5KSOAIYIBEgDSALIAWUIAogB5QgBiAIlJOSkjgCFCARIAwgCyAIlCAGIAWUIAkgB5STkpI4AhAgESABIBFBEGogBBDtASAAIBEtAAw6AAwgCiARKgIEIgyUIAkgESoCACINlJMiByAHkiEHIAYgDZQgCiARKgIIIgWUkyIIIAiSIQggACAQIAUgCyAHlCAKIAiUIAkgCSAFlCAGIAyUkyIFIAWSIgWUk5KSkjgCCCAAIA8gDCALIAiUIAYgBZQgCiAHlJOSkpI4AgQgACAOIA0gCyAFlCAJIAeUIAYgCJSTkpKSOAIAIBFBIGokAAuUAwIMfQF/IwBBIGsiESQAIAMqAgAgAkEQaioCACIOkyIMIAJBBGoqAgAiCZQgA0EEaioCACACQRRqKgIAIg+TIg0gAioCACIKlJMiBiAGkiEHIA0gAkEIaioCACIGlCADQQhqKgIAIAJBGGoqAgAiEJMiBSAJlJMiCyALkiEIIBEgBSACKgIMIgsgB5QgCSAIlCAKIAUgCpQgDCAGlJMiBSAFkiIFlJOSkjgCGCARIA0gCyAFlCAKIAeUIAYgCJSTkpI4AhQgESAMIAsgCJQgBiAFlCAJIAeUk5KSOAIQIBEgASARQRBqIAQQjQIgACARLQAMOgAMIAogESoCBCIMlCAJIBEqAgAiDZSTIgcgB5IhByAGIA2UIAogESoCCCIFlJMiCCAIkiEIIAAgECAFIAsgB5QgCiAIlCAJIAkgBZQgBiAMlJMiBSAFkiIFlJOSkpI4AgggACAPIAwgCyAIlCAGIAWUIAogB5STkpKSOAIEIAAgDiANIAsgBZQgCSAHlCAGIAiUk5KSkjgCACARQSBqJAALkwMCDH0BfyMAQSBrIhEkACADKgIAIAJBEGoqAgAiDpMiDCACQQRqKgIAIgmUIANBBGoqAgAgAkEUaioCACIPkyINIAIqAgAiCpSTIgYgBpIhByANIAJBCGoqAgAiBpQgA0EIaioCACACQRhqKgIAIhCTIgUgCZSTIgsgC5IhCCARIAUgAioCDCILIAeUIAkgCJQgCiAFIAqUIAwgBpSTIgUgBZIiBZSTkpI4AhggESANIAsgBZQgCiAHlCAGIAiUk5KSOAIUIBEgDCALIAiUIAYgBZQgCSAHlJOSkjgCECARIAEgEUEQaiAEEBogACARLQAMOgAMIAogESoCBCIMlCAJIBEqAgAiDZSTIgcgB5IhByAGIA2UIAogESoCCCIFlJMiCCAIkiEIIAAgECAFIAsgB5QgCiAIlCAJIAkgBZQgBiAMlJMiBSAFkiIFlJOSkpI4AgggACAPIAwgCyAIlCAGIAWUIAogB5STkpKSOAIEIAAgDiANIAsgBZQgCSAHlCAGIAiUk5KSkjgCACARQSBqJAALkwMCDH0BfyMAQSBrIhEkACADKgIAIAJBEGoqAgAiDpMiDCACQQRqKgIAIgmUIANBBGoqAgAgAkEUaioCACIPkyINIAIqAgAiCpSTIgYgBpIhByANIAJBCGoqAgAiBpQgA0EIaioCACACQRhqKgIAIhCTIgUgCZSTIgsgC5IhCCARIAUgAioCDCILIAeUIAkgCJQgCiAFIAqUIAwgBpSTIgUgBZIiBZSTkpI4AhggESANIAsgBZQgCiAHlCAGIAiUk5KSOAIUIBEgDCALIAiUIAYgBZQgCSAHlJOSkjgCECARIAEgEUEQaiAEEBkgACARLQAMOgAMIAogESoCBCIMlCAJIBEqAgAiDZSTIgcgB5IhByAGIA2UIAogESoCCCIFlJMiCCAIkiEIIAAgECAFIAsgB5QgCiAIlCAJIAkgBZQgBiAMlJMiBSAFkiIFlJOSkpI4AgggACAPIAwgCyAIlCAGIAWUIAogB5STkpKSOAIEIAAgDiANIAsgBZQgCSAHlCAGIAiUk5KSkjgCACARQSBqJAALkwMCDH0BfyMAQSBrIhEkACADKgIAIAJBEGoqAgAiDpMiDCACQQRqKgIAIgmUIANBBGoqAgAgAkEUaioCACIPkyINIAIqAgAiCpSTIgYgBpIhByANIAJBCGoqAgAiBpQgA0EIaioCACACQRhqKgIAIhCTIgUgCZSTIgsgC5IhCCARIAUgAioCDCILIAeUIAkgCJQgCiAFIAqUIAwgBpSTIgUgBZIiBZSTkpI4AhggESANIAsgBZQgCiAHlCAGIAiUk5KSOAIUIBEgDCALIAiUIAYgBZQgCSAHlJOSkjgCECARIAEgEUEQaiAEEDQgACARLQAMOgAMIAogESoCBCIMlCAJIBEqAgAiDZSTIgcgB5IhByAGIA2UIAogESoCCCIFlJMiCCAIkiEIIAAgECAFIAsgB5QgCiAIlCAJIAkgBZQgBiAMlJMiBSAFkiIFlJOSkpI4AgggACAPIAwgCyAIlCAGIAWUIAogB5STkpKSOAIEIAAgDiANIAsgBZQgCSAHlCAGIAiUk5KSkjgCACARQSBqJAALkwMCDH0BfyMAQSBrIhEkACADKgIAIAJBEGoqAgAiDpMiDCACQQRqKgIAIgmUIANBBGoqAgAgAkEUaioCACIPkyINIAIqAgAiCpSTIgYgBpIhByANIAJBCGoqAgAiBpQgA0EIaioCACACQRhqKgIAIhCTIgUgCZSTIgsgC5IhCCARIAUgAioCDCILIAeUIAkgCJQgCiAFIAqUIAwgBpSTIgUgBZIiBZSTkpI4AhggESANIAsgBZQgCiAHlCAGIAiUk5KSOAIUIBEgDCALIAiUIAYgBZQgCSAHlJOSkjgCECARIAEgEUEQaiAEEB4gACARLQAMOgAMIAogESoCBCIMlCAJIBEqAgAiDZSTIgcgB5IhByAGIA2UIAogESoCCCIFlJMiCCAIkiEIIAAgECAFIAsgB5QgCiAIlCAJIAkgBZQgBiAMlJMiBSAFkiIFlJOSkpI4AgggACAPIAwgCyAIlCAGIAWUIAogB5STkpKSOAIEIAAgDiANIAsgBZQgCSAHlCAGIAiUk5KSkjgCACARQSBqJAALkwMCDH0BfyMAQSBrIhEkACADKgIAIAJBEGoqAgAiDpMiDCACQQRqKgIAIgmUIANBBGoqAgAgAkEUaioCACIPkyINIAIqAgAiCpSTIgYgBpIhByANIAJBCGoqAgAiBpQgA0EIaioCACACQRhqKgIAIhCTIgUgCZSTIgsgC5IhCCARIAUgAioCDCILIAeUIAkgCJQgCiAFIAqUIAwgBpSTIgUgBZIiBZSTkpI4AhggESANIAsgBZQgCiAHlCAGIAiUk5KSOAIUIBEgDCALIAiUIAYgBZQgCSAHlJOSkjgCECARIAEgEUEQaiAEEBsgACARLQAMOgAMIAogESoCBCIMlCAJIBEqAgAiDZSTIgcgB5IhByAGIA2UIAogESoCCCIFlJMiCCAIkiEIIAAgECAFIAsgB5QgCiAIlCAJIAkgBZQgBiAMlJMiBSAFkiIFlJOSkpI4AgggACAPIAwgCyAIlCAGIAWUIAogB5STkpKSOAIEIAAgDiANIAsgBZQgCSAHlCAGIAiUk5KSkjgCACARQSBqJAALxAMCBn8CfiMAQZABayIBJAAgAUE4aiIDQSBqIgUgAEEgaigCADYCACADQRhqIgYgAEEYaikCADcDACADQRBqIABBEGopAgA3AwAgA0EIaiAAQQhqIgcpAgA3AwAgASAAKQIANwM4IAFB4ABqIgRBFGogA0EUaigCADYCACAEQQhqIgMgBygCADYCACABIAEpAkQ3AmwgASAAKQIAIgk3A2AgBEEYaiAGKQMAIgo3AwAgBEEgaiIHIAUoAgA2AgAgAUGMAWogBSgCADYCACABIAYpAwA3AoQBIAFBCGoiAEEYaiIFIAo3AwAgAEEQaiIGIARBEGopAwA3AwAgAEEIaiIIIAMpAwA3AwAgAEEoaiIDIARBKGopAwA3AwAgAEEgaiIAIAcpAwA3AwAgASAJNwMIIAJCgICAgDA3AlAgAkHIAGpChYCAgNAANwIAIAJCgYCAgDA3AkAgAkE4akKEgICAwAA3AgAgAkKAgICAIDcCMCACQShqIAMpAwA3AgAgAkEgaiAAKQMANwIAIAJBGGogBSkDADcCACACQRBqIAYpAwA3AgAgAkEIaiAIKQMANwIAIAIgASkDCDcCACABQZABaiQAC9kDAgF/An0gAEIANwIAIABBCGpCADcCACAAQRBqQgA3AgACQCABLQCoAiIBQQFxRQRAIANFBEAMAgsgAEEANgIIIAAgAioCAEMAAAAAkiIFOAIAQQEhBAsgAUECcUUEQCADIARNDQEgAEEANgIIIAAgBUMAAAAAkiIFOAIAIAAgAiAEQQJ0aioCAEMAAAAAkiIGOAIEIARBAWohBAsgAUEEcUUEQCADIARNDQEgACAGOAIEIAAgBUMAAAAAkjgCACAAIAIgBEECdGoqAgBDAAAAAJI4AgggBEEBaiEECwJAAkACQAJAAkACQAJAQQMgAUEDdiIBaWsOBAMEAQIAC0HYx8AAQShBnKnBABCiCQALQaiowQBBE0G8qcEAEKIJAAsgBEEDaiIBIANLDQIgAEEUaiACIARBAnRqIgEqAghDAAAAAJI4AgAgAEEQaiABKgIEQwAAAACSOAIAIAAgASoCAEMAAAAAkjgCDAsPCyADIARLDQEgBCADQcypwQAQrwgACyABIAMQ1gsACyABQX9zaCIBQQNJBEAgACABQQJ0akEMaiIAIAIgBEECdGoqAgAgACoCAJI4AgAPC0Gs+cAAQRtB3KnBABC0CgALIAQgA0GMqcEAEK8IAAvfAwEHfyMAQfAAayIHJAACQAJAIABFDQAgACgCACIIQX9GDQEgACAIQQFqNgIAIAFFDQAgASgCACIIQX9GDQEgASAIQQFqNgIAIAJFDQAgAigCACIIQX9GDQEgAiAIQQFqNgIAIANFDQAgAygCACIIQX9GDQEgAyAIQQFqNgIAIARFDQAgBCgCACIIQX9GDQEgBCAIQQFqNgIAIAdBMGogAUEMaigCADYCACAHIAEpAgQ3AyggB0EYaiIIQQhqIAJBDGopAgA3AwAgByACKQIENwMYIAdBEGoiCSAAQQRqIgpBBGooAgAiCzYCBCAJIAooAgAgCygCCEEHakF4cWo2AgAgBygCECEJIAcoAhQhCiAHQdAAaiILQQhqIANBDGooAgA2AgAgByADKQIENwNQIAdB4ABqIgxBCGogBEEMaigCADYCACAHIAQpAgQ3A2AgB0E4aiINIAsgDBDkCSAHQQhqIAkgCCANIAUgBkEARyAKKAIYEQkAIAcqAgwgBygCCCEGIAQgBCgCAEEBazYCACADIAMoAgBBAWs2AgAgAiACKAIAQQFrNgIAIAEgASgCAEEBazYCACAAIAAoAgBBAWs2AgAgB0HwAGokAEMAAIC/IAYbDwsQzQsACxDOCwALzgMBBH8jAEHQAGsiASQAAkACQCAABEAgACgCAA0BIABBADYCACAAQbADaiIDKAIAIQQgA0ECNgIAIAFBMGoiA0EIaiAAQZwDaikCADcDACADQRBqIABBpANqKQIANwMAIANBGGogAEGsA2ooAgA2AgAgAUEIaiAAQbwDaikCADcDACABQRBqIABBxANqKQIANwMAIAFBGGogAEHMA2opAgA3AwAgAUEgaiAAQdQDaikCADcDACABQShqIABB3ANqKAIANgIAIAEgAEGUA2opAgA3AzAgASAAQbQDaikCADcDACAEQQJHBEBB0ABBBBDuCiICRQ0DIAJBADYCACACIAEpAzA3AgQgAiAENgIgIAIgASkDADcCJCACQQxqIAFBMGoiAEEIaikDADcCACACQRRq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AgAhESABKgIAIRIgASoCGCETIAEqAjAhFCABKgJIIRUgASoCBCEWIAEqAgghFyABKgIMIRggAEHcAGogAUHcAGoqAgA4AgAgAEHYAGogETgCACAAQdQAaiAQOAIAIABB0ABqIA84AgAgAEHMAGogDjgCACAAQcgAaiANOAIAIABBxABqIAw4AgAgAEFAayALOAIAIABBPGogCjgCACAAQThqIAk4AgAgAEE0aiAIOAIAIAAgGDgCMCAAQSxqIAc4AgAgAEEoaiAGOAIAIABBJGogBTgCACAAIBc4AiAgAEEcaiAEOAIAIABBGGogAzgCACAAQRRqIAI4AgAgACAWOAIQIAAgFTgCDCAAIBQ4AgggACATOAIEIAAgEjgCAAu3AwEIfyMAQRBrIgckACAHQQhqIgUgAjYCBCAFIAE2AgAgBygCDCEJIABBCGooAgAiBCAHKAIIIgZNBEAgAEEIagJAIAZBAWoiAiAETQ0AIAQhBSACIARrIgggAEEEaigCACAEa0sEQCAAIAQgCBCBBiAAQQhqKAIAIQULIAAoAgAgBUEDdGohASAIQQJPBH8gBiAEayILQQdxIQIgBiAEQX9zakEHTwRAIAtBeHEhBANAIAFC/////w83AgAgAUE4akL/////DzcCACABQTBqQv////8PNwIAIAFBKGpC/////w83AgAgAUEgakL/////DzcCACABQRhqQv////8PNwIAIAFBEGpC/////w83AgAgAUEIakL/////DzcCACABQUBrIQEgBEEIayIEDQALCyACBEADQCABQv////8PNwIAIAFBCGohASACQQFrIgINAAsLIAUgCGpBAWsFIAULIQIgCEUNACABQv////8PNwIAIAJBAWohAgsgAiIENgIACyAEIAZLBEAgACgCACAGQQN0aiIAIAM2AgQgACAJNgIAIAdBEGokAA8LIAYgBEGYpsAAEK8IAAutAwEHfyMAQRBrIgkkAAJAAkACQAJAAkAgAkUEQEEAIQUMAQsgBkECSw0DIAUgBkECdCIFaiEMIAUgCWohDUEAIQUgAiIGIQoDQCACIAVNDQIgASAFQQJ0aiIOKAIAIgsgBE8NBSAJIAMgC0EYbGoiCEEIaioCACAIQRRqKgIAkkMAAAA/lDgCCCAJIAhBBGoqAgAgCEEQaioCAJJDAAAAP5Q4AgQgCSAIKgIA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aigCADYCACAAQSxqIANBCGooAgA2AgAgAEEUaiAFQQhqKAIANgIADwsgECACQaCXwgAQrwgACyAPIAJBsJfCABCvCAALIBEgAkHAl8IAEK8IAAvKAgIBfgF/IAEpAwAhAiAAQQhqKAIAIgMEfiACIANBDGxBDGtBDG6tQhR+fEIcfAUgAkIIfAshAiAAQRRqKAIAIgMEfiACIANBA3RBCGutfEIQfAUgAkIIfAshAiAAQSBqKAIAIgMEfiACIANBAWtB/////wNxrUIcfnxCJHwFIAJCCHwLIQIgAEEsaigCACIDBH4gAiADQQFrQf///z9xrUI1fnxCPXwFIAJCCHwLIQIgAEE4aigCACIDBH4gAiADQQJ0QQRrrXxCDHwFIAJCCHwLIQIgAEHEAGooAgAiAwR+IAIgA0ECdEEEa618Qgx8BSACQgh8CyECIAEgAEHQAGooAgAiAwR+IAIgA0ECdEEEa618Qgx8BSACQgh8CyICQgh8NwMAIABB3ABqKAIAIgAEQCABIAIgAEECdEEEa618Qgx8NwMAC0EAC6kDAQR/IwBB0ABrIgEkAAJAAkAgAARAIAAoAgANASAAQQA2AgAgAEHwA2oiBCgCACEDIARBAjYCACABQcgAaiAAQegDaikCADcDACABQRBqIABB/ANqKQIANwMAIAFBGGogAEGEBGopAgA3AwAgAUEgaiAAQYwEaikCADcDACABQShqIABBlARqKQIANwMAIAFBMGogAEGcBGopAgA3AwAgAUE4aiAAQaQEaikCADcDACABIABB4ANqKQIANwNAIAEgAEH0A2opAgA3AwggA0ECRwRAQdAAQQQQ7goiAkUNAyACQQA2AgAgAiABKQNANwIEIAIgAzYCFCACIAEpAwg3AhggAkEMaiABQcgAaikDADcCACACQSBqIAFBCGoiAEEIaikDADcCACACQShqIAFBGGopAwA3AgAgAkEwaiABQSBqKQMANwIAIAJBOGogAEEgaikDADcCACACQUBrIABBKGopAwA3AgAgAkHIAGogAEEwaikDADcCAAsgAUHQAGokACACDwsQzQsACxDOCwALQdAAQQRB3ObDACgCACIAQY8HIAAbEQAAAAvFBQIUfQV/IwBBMGsiGCQAIBhBCGoiGSABIAIQugIgGEEkaiIaKgIAIQcgGUEQaiIbKgIAIQ0gGEEo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IAggBkEQaiAGKAIAIAYoAgQgBRCcASAHAn9BACAGKAJoIglBAkYNABogBkHgAGoiCiAGQegAaiIIQTRqKAIANgIAIAZB2ABqIgwgCEEsaikCADcDACAGQdAAaiINIAhBJGopAgA3AwAgBkHIAGoiDiAIQRxqKQIANwMAIAZBQGsiDyAIQRRqKQIANwMAIAZBOGoiECAIQQxqKQIANwMAIAYgBikCbDcDMEEAIAlFDQAaIAcgBikDMDcCBCAHQTRqIAooAgA2AgAgB0EsaiAMKQMANwIAIAdBJGogDSkDADcCACAHQRxqIA4pAwA3AgAgB0EUaiAPKQMANwIAIAdBDGogECkDADcCAEEBCzYCACAGQaABaiQADAELQZi6wABBzABBjLvAABDDCwALIAQgBCgCAEEBazYCACADIAMoAgBBAWs2AgAgAiACKAIAQQFrNgIAIAAgACgCAEEBazYCAAJAIAsoAghFBEBBACEADAELQThBBBDuCiIARQ0DIABBADYCACAAIAtBCGpBBHIiAikCADcCBCAAQQxqIAJBCGopAgA3AgAgAEEUaiACQRBqKQIANwIAIABBHGogAkEYaikCADcCACAAQSRqIAJBIGopAgA3AgAgAEEsaiACQShqKQIANwIAIABBNGogAkEwaigCADYCAAsgC0FAayQAIAAPCxDNCwALEM4LAAtBOEEEQdzmwwAoAgAiAEGPByAAGxEAAAALmgMBAX8CQAJAIABFDQAgACgCAA0BIABBfzYCACABRQ0AIAEoAgAiC0F/Rg0BIAEgC0EBajYCACACRQ0AIAIoAgAiC0F/Rg0BIAIgC0EBajYCACADRQ0AIAMoAgANASADQX82AgAgBEUNACAEKAIADQEgBEF/NgIAIAVFDQAgBSgCAA0BIAVBfzYCACAGRQ0AIAYoAgANASAGQX82AgAgB0UNACAHKAIADQEgB0F/NgIAIAhFDQAgCCgCAA0BIAhBfzYCACAJRQ0AIAkoAgANASAJQX82AgAgCkUNACAKKAIADQEgCkF/NgIAIABBCGogAUEEaiACQQRqIANBBGogBEEEaiAFQQRqIAZBBGogB0EEaiAIQQRqIAlBBGogCkEEakHIgcAAQeS+wABByIHAAEGIv8AAECAgCkEANgIAIAlBADYCACAIQQA2AgAgB0EANgIAIAZBADYCACAFQQA2AgAgBEEANgIAIANBADYCACACIAIoAgBBAWs2AgAgASABKAIAQQFrNgIAIABBADYCAA8LEM0LAAsQzgsAC5kDAQR/IwBBQGoiASQAAkACQCAABEAgACgCAA0BIABBADYCACAAQcwAaiIELQAAIQMgBEECOgAAIAFBEGogAEEcaikCADcDACABQRhqIABBJGopAgA3AwAgAUEgaiAAQSxqKQIANwMAIAFBKGogAEE0aikCADcDACABQTBqIABBPGopAgA3AwAgAUE4aiAAQcQAaikCADcDACABQQZqIABBzwBqLQAAOgAAIAEgAEEUaikCADcDCCABIABBzQBqLwAAOwEEIANBAkcEQEHAAEEEEO4KIgJFDQMgAkEANgIAIAIgASkDCDcCBCACIAM6ADwgAiABLwEEOwA9IAJBDGogAUEQaikDADcCACACQRRqIAFBGGopAwA3AgAgAkEcaiABQSBqKQMANwIAIAJBJGogAUEoaikDADcCACACQSxqIAFBMGopAwA3AgAgAkE0aiABQThqKQMANwIAIAJBP2ogAUEGai0AADoAAAsgAUFAayQAIAIPCxDNCwALEM4LAAtBwABBBEHc5sMAKAIAIgBBjwcgABsRAAAAC4QDAgd/An0jAEEQayICJAAgAAJ/IAACfyABKAIEIgVBB00EQCACQoHKADcDCCACQQhqEI8KDAELIAEgBUEIayIENgIEIAEgASgCACIDQQhqNgIAIAIgAykAABDwBSACKAIABEAgAigCBAwBCwJAAkAgAigCBCIGRQRAQQAhBAwBCyAEQQNNDQEgASAFQQxrIgc2AgQgASADQQxqNgIAQQEhBCAGQQFGDQAgB0EESQ0BIAMoAAghByABIAVBEGsiCDYCBCABIANBEGo2AgBBAiEEIAZBAkYNACAIQQRJDQEgAyoADCEJIAEgBUEUayIENgIEIAEgA0EUajYCACAGQQNHBEAgBEEESQ0CIAEgBUEYazYCBCABIANBGGo2AgBBAyACQZCAwAAQgQgMAwsgAyoAECEKIAAgBzYCBCAAQQxqIAo4AgAgAEEIaiAJOAIAQQAMAwsgBCACQZCAwAAQgQgMAQsgAkKBygA3AwggAkEIahCPCgs2AgRBAQs2AgAgAkEQaiQAC8gIAgx/AX4jAEFAaiIHJAACQAJAAkAgAEUNACAAKAIAIgZBf0YN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aiABQRBqKQMANwIAIAJBIGogAUEYaikDADcCACACQShqIAFBIGopAwA3AgAgAkEwaiABQShqKQMANwIAIAJBOGogAUEwaikDADcCACACQUBrIAFBOGooAgA2AgALIAFBQGskACACDwsQzQsACxDOCwALQcQAQQRB3ObDACgCACIAQY8HIAAbEQAAAAuEAwEEfyMAQUBqIgEkAAJAAkAgAARAIAAoAgANASAAQQA2AgAgAEH0AWoiBCgCACEDIARBADYCACABQThqIABBsAJqKQIANwMAIAFBMGogAEGoAmopAgA3AwAgAUEoaiAAQaACaikCADcDACABQSBqIABBmAJqKQIANwMAIAFBGGogAEGQAmopAgA3AwAgAUEQaiAAQYgCaikCADcDACABQQhqIABBgAJqKQIANwMAIAEgAEH4AWopAgA3AwAgAwRAQcgAQQQQ7goiAkUNAyACIAM2AgQgAkEANgIAIAIgASkDADcCCCACQRBqIAFBCGopAwA3AgAgAkEYaiABQRBqKQMANwIAIAJBIGogAUEYaikDADcCACACQShqIAFBIGopAwA3AgAgAkEwaiABQShqKQMANwIAIAJBOGogAUEwaikDADcCACACQUBrIAFBOGopAwA3AgALIAFBQGskACACDwsQzQsACxDOCwALQcgAQQRB3ObDACgCACIAQY8HIAAbEQAAAAvpAgIBfw19IwBBMGsiBCQAIAQgASACEK4CIAEqAmAiBUMAAAAAYEUEQCAEQSxqQQA2AgAgBEHA7MEANgIoIARCATcCHCAEQcj8wQA2AhggBEEYakHQ/MEAEOAJAAsgBEEQaioCACEGIARBFGoqAgAhByAEKgIAIQggBCoCBCEJIAQqAgghCiAEKgIMIQsgBEEYaiICIAEgAxCuAiACQRBqKgIAIQwgBCoCGCENIAQqAhwhDiAEKgIgIQ8gBCoCJCEQIABBFGogBSAHkiIHIAUgAkEUaioCAJIiESAHIBFgGzgCACAAQRBqIAUgBpIiBiAFIAySIgcgBiAHYBs4AgAgACAFIAuSIgYgBSAQkiIHIAYgB2AbOAIMIAAgCiAFkyIGIA8gBZMiByAGIAdfGzgCCCAAIAkgBZMiBiAOIAWTIgcgBiAHXxs4AgQgACAIIAWTIgYgDSAFkyIFIAUgBmAbOAIAIARBMGokAAuCAwMDfwJ+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BzcAAEEAC+wCAQJ/AkACQCACIAAoAkAiA0sEQCAALQCYBCIERQ0CAkAgASADQQJ0aigCACIDKAIIIgEgAC0AlAQiAk0NACADKAIAIAJBMGxqIgEgAEHkAGoqAgA4AiQgAUEoaiAAQaQBaikCADcCACAEQQFGDQMgAygCCCIBIABBlQRqLQAAIgJNDQAgAygCACACQTBsaiIBIABB2AFqKgIAOAIkIAFBKGogAEGYAmopAgA3AgAgBEECRg0DIAMoAggiASAAQZYEai0AACICTQ0AIAMoAgAgAkEwbGoiASAAQcwCaioCADgCJCABQShqIABBjANqKQIANwIAIARBA0YNAyADKAIIIgEgAEGXBGotAAAiAksNAgsgAiABQfzGwQAQrwgACyADIAJB3MbBABCvCAALIAMoAgAgAkEwbGoiASAAQcADaioCADgCJCABQShqIABBgARqKQIANwIAIARBBEYNAEEEQQRB7MbBABCvCAALC+0CAQJ/AkACQCACIAAoAvACIgNLBEAgAC0A+AIiBEUNAgJAIAEgA0ECdGooAgAiAygCCCIBIAAtAPQCIgJNDQAgAygCACACQTBsaiIBIABBxABqKgIAOAIkIAFBKGogAEHsAGopAgA3AgAgBEEBRg0DIAMoAggiASAAQfUCai0AACICTQ0AIAMoAgAgAkEwbGoiASAAQZQBaioCADgCJCABQShqIABBvAFqKQIANwIAIARBAkYNAyADKAIIIgEgAEH2AmotAAAiAk0NACADKAIAIAJBMGxqIgEgAEHkAWoqAgA4AiQgAUEoaiAAQYwCaikCADcCACAEQQNGDQMgAygCCCIBIABB9wJqLQAAIgJLDQILIAIgAUGgycEAEK8IAAsgAyACQYDJwQAQrwgACyADKAIAIAJBMGxqIgEgAEG0AmoqAgA4AiQgAUEoaiAAQdwCaikCADcCACAEQQRGDQBBBEEEQZDJwQAQrwgACwuhAgEBfwJAIABBBGooAgAiAUUNACABrUIMfqdFDQAgACgCABCsAQsCQCAAQRBqKAIAIgFFDQAgAUEDdEUNACAAQQxqKAIAEKwBCwJAIABBHGooAgAiAUUNACABrUIUfqdFDQAgAEEYaigCABCsAQsCQCAAQShqKAIAIgFFDQAgAUEFdEUNACAAQSRqKAIAEKwBCwJAIABBNGooAgAiAUUN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DCAGlCADIAeUIAUgBCAFlCAKIAiUkyIEIASSIgSUk5KSIg0gACoCACIJjF0NACAJIA1dDQAgCiAMIAeUIAggBJQgAyAGlJOSkiIDIAAqAgQiCYxdDQAgAyAJXg0AIAsgDCAElCAFIAaUIAggB5STkpIiAyAAKgIIIgVeRSADIAWMXUF/c3EhDgsgDgueAgECfyMAQfAAayIBJAACQCAABEAgACgCAA0BIABBADYCACABQThqIgJBEGogAEEQaikCADcDACACQQhqIABBCGopAgA3AwAgAkEYaiAAQRhqKQIANwMAIAJBIGogAEEgaikCADcDACACQShqIABBKGopAgA3AwAgAkEwaiAAQTBqKQIANwMAIAFBCGogAUHEAGopAgA3AwAgAUEQaiABQcwAaikCADcDACABQRhqIAFB1ABqKQIANwMAIAFBIGogAUHcAGopAgA3AwAgAUEoaiABQeQAaikCADcDACABQTBqIAFB7ABqKAIANgIAIAEgACkCADcDOCABIAEpAjw3AwAgABCsASABEKAFIAFB8ABqJAAPCxDNCwALEM4LAAu6AgEEfyMAQTBrIgEkAAJAAkAgAARAIAAoAgANASAAQQA2AgAgAEHwAmoiBCgCACEDIARBAjYCACABQShqIABB6AJqKQIANwMAIAFBCGogAEH8AmopAgA3AwAgAUEQaiAAQYQDaikCADcDACABQRhqIABBjANqKQIANwMAIAEgAEHgAmopAgA3AyAgASAAQfQCaikCADcDACADQQJHBEBBOEEEEO4KIgJFDQMgAkEANgIAIAIgASkDIDcCBCACIAM2AhQgAiABKQMANwIYIAJBDGogAUEoaikDADcCACACQSBqIAFBCGopAwA3AgAgAkEoaiABQRBqKQMANwIAIAJBMGogAUEYaikDADcCAAsgAUEwaiQAIAIPCxDNCwALEM4LAAtBOEEEQdzmwwAoAgAiAEGPByAAGxEAAAALxAICB30BfyMAQSBrIgkkACABQQRqKgIAIQIgASoCACEIQwAAgD8QfSIDQwAAAABcBEAgAkMAAIA/IAOVlCEGC0MAAIA/EH0iA0MAAAAAXARAIAJDAACAvyADlZQhBQtDAAAAACEDQwAAAAAQfRpDAAAAABB9GkMAAIA/EH0iB0MAAAAAXARAIAJDAACAPyAHlZQhBAtDAACAPxB9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EN8JAAsgBigCTCAOQdzmwwAoAgAiAEGPByAAGxEAAAALIAUgBSgCAEEBazYCACAEIAQoAgBBAWs2AgAgAyADKAIAQQFrNgIAIAIgAigCAEEBazYCACABIAEoAgBBAWs2AgAgAEEANgIADwsQzQsACxDOCwALvQIBAn8jAEEgayICJAAgAkEcaiIDQQA2AgAgAkHA7MEANgIYIAJCATcCDCACQcDxwQA2AggCf0EBIAEgAkEIahCxCA0AGiADQQE2AgAgAkIBNwIMIAJBtPDBADYCCCACQfsANgIEIAIgADYCACACIAI2AhhBASABIAJBCGoQsQgNABogAkEcakEBNgIAIAJCATcCDCACQcjxwQA2AgggAkH7ADYCBCACIABBBGo2AgAgAiACNgIYAkAgASACQQhqELEIDQAgAkEBNgIcIAJCATcCDCACQcjxwQA2AgggAkH7ADYCBCACIABBCGo2AgAgAiACNgIYIAEgAkEIahCxCA0AIAJBHGpBADYCACACQcDswQA2AhggAkIBNwIMIAJB1PHBADYCCCABIAJBCGoQsQgMAQtBAQsgAkEgaiQAC5ACAgJ/BH0jAEEwayIDJAAgA0EQaiABIAJBABAdAkAgAioCACADKgIQkyIGjCAGIAMtABwiBBsiBiAGlCACKgIEIAMqAhSTIgeMIAcgBBsiByAHlJIgAioCCCADKgIYkyIFjCAFIAQbIgUgBZSSQwAAAACSIghDAACAKF4EQCADIAUgCBB9IgWVOAIoIAMgByAFlTgCJCADIAYgBZU4AiAgA0EIaiABIANBIGoQiwIgAygCCCECIAMoAgwhASAAQQhqIANBGGopAwA3AgAgACADKQMQNwIAIABBFGogATYCAAwBCyAAIAMpAxA3AgAgAEEIaiADQRhqKQMANwIAQQMhAgsgACACNgIQIANBMGokAAubAgECfyAAKAIAIQAgAUUEQCAAKAIAIgBBCGoiAigCACIBIABBBGooAgBGBEAgACABQQEQwwYgAigCACEBCyACIAFBAWo2AgAgACgCACABakEAOgAAQQAPCyAAKAIAIgFBBGohBCABQQhqIgUoAgAiACAEKAIARgRAIAEgAEEBEMMGIAUoAgAhAAsgASgCACAAakEBOgAAIAUgAEEBaiIANgIAIAQoAgAgAGtBA00EQCABIABBBBDDBiABQQhq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KQAINwAAIANB9QNqIAhBCGopAAA3AAAgA0H8A2ogCEEPaigAADYAACADQe0DaiADKQCdBTcAACADQZgEaiAQQQ9qKAAANgAAIANBkQRqIBBBCGopAAA3AAAgA0GJBGogAykAigU3AAAgA0G0BGogEUEPaigAADYAACADQa0EaiARQQhqKQAANwAAIANBpQRqIAMpAPcENwAAIANB0ARqIBJBD2ooAAA2AAAgA0HJBGogEkEIaikAADcAACADQcEEaiADKQDkBDcAACADQdwEakEAOgAAIANB1ARqQv////sHNwIAIANBwARqQQA6AAAgA0G4BGpC////+wc3AwAgA0GkBGpBADoAACADQZwEakL////7BzcCACADQYgEakEAOgAAIANBgARqQv////sHNwMAIANB7ANqQQA6AAAgA0HkA2pC////+wc3AgAgA0HQA2pBADoAACADQcgDakL////7BzcDACADQbADakH////7BzYCACADQagDakKAgICA8P//v383AwAgA0GgA2pC////+////7//ADcDACADQZgDakL////7BzcDACADQZADakKAgICA8P//v383AwAgA0GIA2pC////+////7//ADcDACADQYADakL////7BzcDACADQfgCakKAgICA8P//v383AwAgA0HoAmpCADcDACADQeACakKAgID8AzcDACADQT42AuAEIANC////+////7//ADcD8AIgA0KAgICAgICAwD83A8ACIANCADcDuAIgFCAPKAIANgIAIAMgCSkCADcDCCADQbgCaiIIIAcQ3AMgByAIQawCENkLGiAIQQhqIA8oAgA2AgAgAyAJKQIANwO4AiADQSRqIAgQ3AMgCCAHQawCENkLGiAGQeAEaiIHIAhBrAIQ2QsaIANBsAVqJAAgCUEQaiQAIAZBCGogDUEIaigCADYCACAGIA0pAgA3AwAgDCAHIAYQtQogB0EIaiAOQQhqKAIANgIAIAYgDikCADcD4AQgBiAMIAcQqQogEw0BDAILIApBAjoAmAEMAgsgBkHgBGoiAyAGQawCENkLGiAGIAU4ArQCIAYgBDgCsAIgAyAGQbACaikCADcCOCADIAMtAKkCQQFyOgCpAiAGIANBrAIQ2QsaCyAGQeAEaiIDIAZBrAIQ2QsaIAZBsAJqIgkgAxC3CyAKIAlBrAIQ2QsaCyAGQZAHaiQAIAIgAigCAEEBazYCACABIAEoAgBBAWs2AgAgACAAKAIAQQFrNgIAIAotAJgBIgBBAkcEQEGwAkEEEO4KIgtFDQMgC0EANgIAIAtBBGogCkGYARDZCxogCyAAOgCcASALQZ0BaiAKQZkBakGTARDZCxoLIApBsAJqJAAgCw8LEM0LAAsQzgsAC0GwAkEEQdzmwwAoAgAiAEGPByAAGxEAAAALmQIBBH8jAEEwayIBJAACQAJAIAAEQCAAKAIADQEgAEEANgIAIABByAJqIgQoAgAhAyAEQQI2AgAgAUEoaiAAQcACaikCADcDACABQRBqIABB1AJqKQIANwMAIAFBGGogAEHcAmooAgA2AgAgASAAQbgCaikCADcDICABIABBzAJqKQIANwMIIANBAkcEQEEsQQQQ7goiAkUNAyACQQA2AgAgAiABKQMgNwIEIAIgAzYCFCACIAEpAwg3AhggAkEMaiABQShqKQMANwIAIAJBIGogAUEQaikDADcCACACQShqIAFBGGooAgA2AgALIAFBMGokACACDwsQzQsACxDOCwALQSxBBEHc5sMAKAIAIgBBjwcgABsRAAAAC4ACAQN/IAAgACgCQCIBIAAoApABIgJyNgJAIAEgAnFFBEAgAEGsAWoiAS0AACABQQE6AAAEQEEAIQEDQCABIAFBAWogAUEKSyABQQdPcRshASAALQCsASAAQQE6AKwBDQALCyAAQZQBahD8A0EAIQEgAEEAOgCsASAAQcwBaiICLQAAIAJBAToAACAAQbABaiAAQZwBaigCACAAQagBaigCAHJFOgAABEADQCABIAFBAWogAUEKSyABQQdPcRshASAALQDMASAAQQE6AMwBDQALCyAAQbQBahD8AyAAQQA6AMwBIABB0AFqIABBvAFqKAIAIABByAFqKAIAckU6AAALC/0BAQR/IAAoAgAhASAAKAIIIgIEQCACQQxsIQIgAUEIaiEBA0AgASgCACIEKAIAIQMgBCADQQFrNgIAIANBAUYEQCABEOkICyABQQxqIQEgAkEMayICDQALIAAoAgAhAQsCQCAAQQRqKAIAIgJFDQAgAq1CDH6nRQ0AIAEQrAELIAAoAgwhASAAQRRqKAIAIgIEQCACQQxsIQIgAUEIaiEBA0AgASgCACIEKAIAIQMgBCADQQFrNgIAIANB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AEHgAGsiA0HNAGoiBUELakIANwAAIANBOmoiBkELakIANwAAIANBJ2oiB0ELakIANwAAIANBFGoiCEELakIANwAAIANBAWoiCUELakIANwAAIANCADcAUCAEQbACaiICQZkBaiADKQBNNwAAIAJBoQFqIAVBCGopAAA3AAAgAkGoAWogBUEPaigAADYAACADQgA3AD0gAkG9AWogBkEIaikAADcAACADQgA3ACogA0IANwAXIANCADcABCACQcQBaiAGQQ9qKAAANgAAIAJBtQFqIAMpADo3AAAgAkHgAWogB0EPaigAADYAACACQdkBaiAHQQhqKQAANwAAIAJB0QFqIAMpACc3AAAgAkH8AWogCEEPaigAADYAACACQfUBaiAIQQhqKQAANwAAIAJB7QFqIAMpABQ3AAAgAkGYAmogCUEPaigAADYAACACQZECaiAJQQhqKQAANwAAIAJBiQJqIAMpAAE3AAAgAkEgakIANwIAIAJBGGpCADcCACACQgA3AhAgAkH8AGpCADcCACACQYQBakIANwIAIAJBjAFqQQA2AgAgAkEHNgKoAiACQaQCakEAOgAAIAJBnAJqQv////sHNwIAIAJBiAJqQQA6AAAgAkGAAmpC////+wc3AgAgAkHsAWpBADoAACACQeQBakL////7BzcCACACQdABakEAOgAAIAJByAFqQv////sHNwIAIAJBtAFqQQA6AAAgAkGsAWpC////+wc3AgAgAkGYAWpBADoAACACQZABakL////7BzcCACACQfgAakH////7BzYCACACQfAAakKAgICA8P//v383AgAgAkHoAGpC////+////7//ADcCACACQeAAakL////7BzcCACACQdgAakKAgICA8P//v383AgAgAkHQAGpC////+////7//ADcCACACQcgAakL////7BzcCACACQUBrQoCAgIDw//+/fzcCACACQv////v///+//wA3AjggAkEwakIANwIAIAJBKGpCgICA/AM3AgAgAkKAgICAgICAwD83AgggAkIANwIAIARB4ARqIgNBCGoiBSAAQQRqIgZBCGooAgA2AgAgBCAGKQIANwPgBCAEIAIgAxC1CiAFIAFBDGooAgA2AgAgBCABKQIENwPgBCACIAQgAxCpCiAEIAIQtwsgASABKAIAQQFrNgIAIAAgACgCAEEBazYCAEGwAkEEEO4KIgBFDQIgAEEANgIAIABBBGogBEGsAhDZCxogBEHwBGokACAADwsQzQsACxDOCwALQbACQQRB3ObDACgCACIAQY8HIAAbEQAAAAvwAQECfyMAQeAAayIBJAACQCAABEAgACgCAA0BIABBADYCACABQTBqIgJBEGogAEEQaikCADcDACACQQhqIABBCGopAgA3AwAgAkEYaiAAQRhqKQIANwMAIAJBIGogAEEgaikCADcDACACQShqIABBKGooAgA2AgAgAUEIaiICQQhqIAFBPGopAgA3AwAgAkEQaiABQcQAaikCADcDACACQRhqIAFBzABqKQIANwMAIAJBIGogAUHUAGopAgA3AwAgASAAKQIANwMwIAEgASkCNDcDCCAAEKwBIAIQpgYgAUHgAGokAA8LEM0LAAsQzgsAC/MBAQV/IAAoAgAhASAAKAIIIgIEQCACQaABbCECA0ACQCABKAIARQ0AIAFBGGoiBCgCACIFKAIAIQMgBSADQQFrNgIAIANBAUYEQCAEKAIAIAFBHGooAgAQiggLIAFBIGooAgBFDQAgAUEkaigCABCsAQsgAUGgAWohASACQaABayICDQALIAAoAgAhAQsCQCAAQQRqKAIAIgJFDQAgAq1CoAF+p0UNACABEKwBCwJAIABBIGooAgAiAUUNACABQQN0RQ0AIABBHGooAgAQrAELAkAgAEEsaigCACIBRQ0AIAFBA3RFDQAgAEEoaigCABCsAQsLuAsCDX8EfSMAQbACayIIJAACQAJAAkAgAEUNACAAKAIAIgNBf0YNASAAIANBAWo2AgAgAUUNACABKAIAIgNBf0YNASABIANBAWo2AgAgAkUNACACKAIAIgNBf0YNASACIANBAWo2AgAgAEEEaiEJIAFBBGohCiMAQfAEayIEJAACQCACQQRqIgMqAgAiESARlCADKgIEIhIgEpSSIAMqAggiECAQlJJDAAAAAJIiE0MAAAAAXgRAIAQgECATEH0iEJU4AgggBCASIBCVOAIEIAQgESAQlTgCACMAQRBrIgckACAHQQhqIgsgBEEIaigCADYCACAHIAQpAgA3AwAjAEGwBWsiAyQAIANB0AJqQgA3AwAgA0HYAmpCADcDACADQbQDakIANwIAIANBvANqQgA3AgAgA0HEA2pBADYCACADQQhqIgVBC2pCADcAACADQZ0FaiIGQQtqQgA3AAAgA0GKBWoiDEELakIANwAAIANB9wRqIg1BC2pCADcAACADQgA3A8gCIANCADcACyADQgA3AKAFIANCADcAjQUgA0IANwD6BCADQeQEaiIOQQtqQgA3AAAgA0IANwDnBCADQdkDaiAFQQhqIg8pAAA3AAAgA0HgA2ogBUEPaigAADYAACADQdEDaiADKQAINwAAIANB9QNqIAZBCGopAAA3AAAgA0H8A2ogBkEPaigAADYAACADQe0DaiADKQCdBTcAACADQZgEaiAMQQ9qKAAANgAAIANBkQRqIAxBCGopAAA3AAAgA0GJBGogAykAigU3AAAgA0G0BGogDUEPaigAADYAACADQa0EaiANQQhqKQAANwAAIANBpQRqIAMpAPcENwAAIANB0ARqIA5BD2ooAAA2AAAgA0HJBGogDkEIaikAADcAACADQcEEaiADKQDkBDcAACADQdwEakEAOgAAIANB1ARqQv////sHNwIAIANBwARqQQA6AAAgA0G4BGpC////+wc3AwAgA0GkBGpBADoAACADQZwEakL////7BzcCACADQYgEakEAOgAAIANBgARqQv////sHNwMAIANB7ANqQQA6AAAgA0HkA2pC////+wc3AgAgA0HQA2pBADoAACADQcgDakL////7BzcDACADQbADakH////7BzYCACADQagDakKAgICA8P//v383AwAgA0GgA2pC////+////7//ADcDACADQZgDakL////7BzcDACADQZADakKAgICA8P//v383AwAgA0GIA2pC////+////7//ADcDACADQYADakL////7BzcDACADQfgCakKAgICA8P//v383AwAgA0HoAmpCADcDACADQeACakKAgID8AzcDACADQTc2AuAEIANC////+////7//ADcD8AIgA0KAgICAgICAwD83A8ACIANCADcDuAIgDyALKAIANgIAIAMgBykCADcDCCADQbgCaiIGIAUQ3AMgBSAGQawCENkLGiAGQQhqIAsoAgA2AgAgAyAHKQIANwO4AiADQSRqIAYQ3AMgBiAFQawCENkLGiAEQbACaiIFIAZBrAIQ2QsaIANBsAVqJAAgB0EQaiQAIARB4ARqIgNBCGoiByAJQQhqKAIANgIAIAQgCSkCADcD4AQgBCAFIAMQ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QYABcjoADSACIAFBBnZBwAFyOgAMQQIMAQsgAiABQT9xQYABcjoADyACIAFBEnZB8AFyOgAMIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADUEECxDzASACQRBqJAAL8AEBA38CQCABKAIIIgQgAk0NACABKAIAIAJB4AJsakEAIAIgBEkbIgQoAgBBAUcNACAEKAIEIANHDQAgBEHcAmotAAANACAEQdQCakEAOgAAIARBADYC0AIgACgCACEGAkAgAEEIaigCACIBIAQoArACIgVNDQAgBiAFQQN0akEAIAEgBUsbIgUoAgAgAkcNACAFQQRqKAIAIANGDQELIAQgATYCsAIgAEEEaigCACABRgRAIAAgARD6BSAAKAIAIQYgAEEIaigCACEBCyAAQQhqIAFBAWo2AgAgBiABQQN0aiIAIAM2AgQgACACNgIACwuRAgICfQR/IAAoAggiBEEkbCIFRQRAQ///f38PCyAAKAIAIQMgBEEBa0H/////A3ECfyAEQQFxRQRAQ///f38hASADDAELIANBHGooAgAgA0EgaigCACIAKAIIQQdqQXhxaiAAKAKcAREMACIBQ///f38gAUP//39/XRshASADQSRqCyEABEAgAyAFaiEDA0AgASABIABBHGooAgAgAEEgaigCACIEKAIIQQdqQXhxaiAEKAKcAREMACICIAEgAl0bIAIgAlwbIgIgAiAAQUBrKAIAIABBxABqKAIAIgQoAghBB2pBeHFqIAQoApwBEQwAIgEgASACXhsgASABXBshASADIABByABqIgBHDQALCyABC54CAgN9BH8gACgCCCIGQSRsIgdFBEBD//9/fw8LIAAoAgAhBCAGQQFrQf////8DcQJ/IAZBAXFFBEBD//9/fyECIAQMAQtD//9/f0P//39/IARBHGooAgAgBEEgaigCACIAKAIIQQdqQXhxaiAAKAKgAREMACIBIAFD//9/f10bIAEgAVwbIQIgBEEkagshAARAIAQgB2ohBQNAIABBHGooAgAgAEEgaigCACIEKAIIQQdqQXhxaiAEKAKgAREMACEBIABBQGsoAgAgAEHEAGooAgAiBCgCCEEHakF4cWogBCgCoAERDAAiAyADIAEgASACIAEgAl4bIAIgAlwbIgEgASADXRsgASABXBshAiAFIABByABqIgBH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aioCACIIlCIJIAMgAyAElSABKgIEIgqUIgeUIAUgBSAElSAKlCIElCAJk5JeDQEgBowhBgwDCyABKgIAIAJBBGoqAgAiCJghBgwBC0MAAAAAIQcLQwAAAAAhBAsgACAHIAMgASoCCCIDlJI4AgggACAGIAggA5SSOAIEIAAgBCAFIAOUkjgCAAvVAQICfwF+IwBBEGsiBCQAAkACQAJAIAAEQCAAKAIAIgNBf0YNASAAIANBAWo2AgAgAkEGTw0CIARBCGoiAyABvSIFQiCIPgIEIAMgBT4CACAAQQRqIAQoAgggBCgCDBCbCCIDRQ0DIANBuQJqLQAAIQMgACAAKAIAQQFrNgIAIARBEGokAEEBQoSKgICAoICBAyACQQRzrUIHg0IDhoindCIAIANxIABB/wFxRg8LEM0LAAsQzgsAC0Gxu8AAQRkQzAsAC0HItsAAQdAAQci3wAAQwwsAC6q1AQMofxJ9Bn4gAEHwA2pBADYCACAAQfwDakEANgIAIAMhESAGISkgByEWIAghNCAAQfQDaiEyIwBB8ABrIhAkACAJIh0gCiIjQQN0aiE3AkACQAJAAkACQAJAAkAgCkUNACARQShqKAIABEAgEUEcaiEbIBFBGGooAgAhKyARQSxqKAIAISAgEUE0aigCACE1IBEoAhAhISARKAIAITYgESgCCCEwIB0hHgNAIBBBGGogGyAeQQRqKAIAIB4oAgBBufPd8XlsQQV3c0G5893xeWwgHhDWBAJAIBAoAhhBAUcNACAQKAIcIgMgNUkEQCAgIANBBHRqKAIMIgNBf0YNASADIDBJBEAgNiADQSxsaiIILQAoIgYgK0kEQCAIQRxqIgMqAgAhPiAIQSBqKgIAITwgA0L////39/////4ANwIAIAhBFGoiAyoCACE5IAhBGGoqAgAhPyADQv////f3/////gA3AgAgCEEQaioCACE6IAhBDGoiAyoCACADQv////f3/////gA3AgACfyA/ICEgBkEGdGoiFCoCACI7lY4iP4tDAAAAT10EQCA/qAwBC0GAgICAeAshBiA7lY4iOEMAAADPYCEDIAZBgICAgHggP0MAAADPYBshGSA/Q////05eIQgCfyA4i0MAAABPXQRAIDioDAELQYCAgIB4C0GAgICAeCADGyEGIDhD////Tl4hAwJ/IDwgO5WOIj2LQwAAAE9dBEAgPagMAQtBgICAgHgLIQpB/////wcgGSAIGyEZID8gP1whCEH/////ByAGIAMbIQYgOCA4XCEDAn8gPiA7lY4iPItDAAAAT10EQCA8qAwBC0GAgICAeAshE0EAIBkgCBshJEEAIAYgAxshFQJ/IDkgO5WOIj+LQwAAAE9dBEAgP6gMAQtBgICAgHgLIQMgFSAkSgJ/IDogO5WOIjiLQwAAAE9dBEAgOKgMAQtBgICAgHgLIQgNA0EAQf////8HIAhBgICAgHggOEMAAADPYBsgOEP///9OXhsgOCA4XBsiBkEAQf////8HIBNBgICAgHggPEMAAADPYBsgPEP///9OXhsgPCA8XBsiJ0oEQANAIBUgJE4NBSAkIBUgFSAkSGoiFU4NAAwFCwALQQBB/////wcgA0GAgICAeCA/QwAAAM9gGyA/Q////05eGyA/ID9cGyIIQQBB/////wcgCkGAgICAeCA9QwAAAM9gGyA9Q////05eGyA9ID1cGyIsSgRAA0AgBiEDA0AgAyAnSARAICcgAyADICdIaiIDTg0BCwsgFSAkTg0FICQgFSAVICRIaiIVTg0ADAULAAsCQCAUQRBqKAIABEAgFEEIaigCACIaQQRrISYgFEEEaigCACEzIBRBHGooAgAhEiAUQRRqKAIAIS0MAQsDQCAGIRcDQCAIIQMDQCADICxIBEAgLCADIAMgLEhqIgNODQELCyAXICdIBEAgJyAXIBcgJ0hqIhdODQELCyAVICRODQUgJCAVIBUgJEhqIhVODQALDAQLA0AgJCAVIh9MIBUgFSAkSGohFSAfQcrKn4l6c0G5893xeWxBBXchKCAGIRkDQCAnIBkiGEwgGCAYICdIaiEZIBggKHNBufPd8XlsQQV3IS4gCCETAkACQANAIC4gEyIUc0G5893xeWwiA0EZdkGBgoQIbCEcIBwgGiADIDNxIgpqKAAAIgNzIhNBgYKECGsgE0F/c3FBgIGChHhxITEgFCAsTiEvIBQgFCAsSGohE0EAIRcCQAJAA0AgMUUEQANAIAMgA0EBdHFBgIGChHhxDQMgCiAXaiEDIBdBBGohFyAcIBogA0EEaiAzcSIKaigAACIDcyIiQYGChAhrICJBf3NxQYCBgoR4cSIxRQ0ACwsgJiAxaEEDdiAKaiAzcUECdGsoAgAiIiASTw0CIDFBAWsgMXEhMSAtICJBFGxqIiJBBGooAgAgH0cNACAiQQhqKAIAIBhHDQAgIkEMaigCACAURw0ACyAiKAIQIgMgME8NAwJAIDYgA0EsbGoiAygCAEEBRgRAIAMoAgQiAw0BDBALDBALIAMgAy0AkAEiA0EBIANBAUsbOgCQAQsgLyATICxKcg0DDAELCyAiIBJBxPHAABCvCAALIAMgMEHU2cEAEK8IAAsgGSAnSnJFDQALIBUgJEpyRQ0ACwwDCyAGICtB0M7BABCvCAALIAMgMEHAzsEAEK8IAAsgAyA1QdTwwAAQrwgACyA3IB5BCGoiHkcNAAsMAQsgI0EBa0H/////AXECQCAjQQdxIgZFBEAgHSEDDAELIB0hAwNAIANBCGohAyAGQQFrIgYNAAsLQQdJDQADQCA3IANBQGsiA0cNAAsLIBFBLGohISARQRxqISogEUE4aiE2IAFDAAAAP5QhQSAWIDRBA3RqIS8gKSgCCCEiICkoAgAhFSARQTBqIShBACEZA0AgFkEIayEDAkACQAJAA0AgA0EIaiITIC9GDQEgEygCACIeICJJIgZFDQMgFSAeQaABbGpBACAGGyIbKAIAQQFHDQMgA0EMaigCACIfIBsoAgRHDQMgEyEDIBstAChBFnFFDQALIBsoApgBIQMgEEEQaiIKIBtBGGoiCEEEaigCACIGNgIEIAogCCgCACAGKAIIQQdqQXhxajYCACAQQThqIBAoAhAgG0HUAGogECgCFCgCiAERAgAgQUMAAAAAYARAIBAgQSAQKgJMkiI4Q///f34gOEP//39+XRtD//9//iA4Q///f/5eGyI/OAI0IBAgQSAQKgJIkiI4Q///f34gOEP//39+XRtD//9//iA4Q///f/5eGyI6OAIwIBAgQSAQKgJEkiI4Q///f34gOEP//39+XRtD//9//iA4Q///f/5eGyI4OAIsIBAgECoCQCBBkyI5Q///f34gOUP//39+XRtD//9//iA5Q///f/5eGyI+OAIoIBAgECoCPCBBkyI5Q///f34gOUP//39+XRtD//9//iA5Q///f/5eGyI8OAIkIBAgECoCOCBBkyI5Q///f34gOUP//39+XRtD//9//iA5Q///f/5eGyI5OAIgAkACfwJAIBFBCGoiICgCACImIANLBEAgESgCACIeIANBLGwiJWpBACADICZJ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CgJAAkAgBkEQaiIYKAIAIghFDQAgHygCACEDAkAgKwRAQaTswQAtAAAhFEGl7MEALQAAIRMgA0EEaiEDQQAhBgNAAkAgAygCACIZQf////8HcSIKQf////8HRg0AIAogKk8NAyAKQQV2IgogG08NAyAUIBMgKyAKQQJ0aigCACAZdkEBcRtB/wFxDQBBASEKIAZBAWohAwwECyADQQhqIQMgCCAGQQFqIgZHDQALQQAhCgwDCyADQQRqIQMgCCEGA0AgAygCAEH/////B3FB/////wdHDQEgA0EIaiEDIAZBAWsiBg0ACwwCC0Hk78AAQRNBqNXBABDDCwALIAMgCEYNACAfKAIAIRkgKwRAIAggA2shBiAZIANBA3RqIQMDQAJAAkAgA0EEaigCACITQf////8HcSIZQf////8HRg0AIBkgKk8NCiAZQQV2IhkgG08NCkGk7MEAQaXswQAgKyAZQQJ0aigCACATdkEBcRstAAANACAKQQFqIQoMAQsgAyAKQQN0ayADKQIANwIACyADQQhqIQMgBkEBayIGDQALDAELIAggA2shBiAZIANBA3RqIQNBACAKQQN0ayEZA0AgA0EEaigCAEH/////B3FB/////wdHDQcgAyAZaiADKQIANwIAIANBCGohAyAGQQFrIgYNAAsLIBggCCAKazYCACAXQQFqIhdBA0cNAAsMAgtB5O/AAEETQYjVwQAQwwsACyADICxB5NnBABCvCAALICQtAJABITULICQgNUEBazoAkAEMAQtB5O/AAEETQajVwQAQwwsACyAkQfgAaiIGKAIAIgMEQCAkQSBqQQEgJCgCcCADIBFBABAxICRBQGtBAiAkKAJwIAYoAgAgEUEAEDEgJEEAICQoAnAgBigCACARIBIQMSAkQQE6AJABIAZBADYCAAsCQAJAICRBhAFqKAIAIgYEQCAkQfwAaigCACEDIAZBAnQhFwNAIAMoAgAiBiAsTw0CAkAgMCAGQSxsaiIGKAIAQQFGBEAgBigCBCIGDQEMEwsMEwsgA0EEaiEDIAYgBi0AkAEiBkEBIAZBAUsbOgCQASAXQQRrIhcNAAsLICRBjAFqKAIADQEgEEHgAGoiBiAaQQRqIgNBCGooAgA2AgAgECADKQIANwNYICAoAgAiAyAiKAIARgRAICYgAxDWBSAgKAIAIQMLICAgA0EB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IABC76SM2MMANwIgIABC76SM1PP//7//ADcCGCAAQoCAgPyDgIDAPzcCECAAQs2Zs/qDgIDAPjcCCCAAQomRouTz57CXOTcCACAAQoCBgIAQNwIwQcAAQQQQ7goiAUUEQEHAAEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAFBADYCACABIAApAwA3AgQgAUEMaiAAQQhqKQMANwIAIAFBFGogAEEQaikDADcCACABQRxqIABBGGopAwA3AgAgAUEkaiAAQSBqKQMANwIAIAFBLGogAEEoaikDADcCACABQTRqIABBMGopAwA3AgAgAUE8aiAAQThqKAIANgIAIABBQGskACABC4wCAQJ/IwBBQGoiACQAIABCBDcCKCAAQgQ3AhggAEKAgICAwAA3AgggAEIENwIAIABBOGpCADcCACAAQTBqQoCAgIDAADcCACAAQSBqQgA3AgAgAEEQakIANwIAQcQAQQQQ7goiAUUEQEHEAEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAFBADYCACABIAApAwA3AgQgAUEMaiAAQQhqKQMANwIAIAFBFGogAEEQaikDADcCACABQRxqIABBGGopAwA3AgAgAUEkaiAAQSBqKQMANwIAIAFBLGogAEEoaikDADcCACABQTRqIABBMGopAwA3AgAgAUE8aiAAQThqKQMANwIAIABBQGskACABC9EBAwJ/AX4BfSMAQRBrIgQkAAJAAkAgAQRAIAEoAgAiA0F/Rg0BIAEgA0EBajYCACAEQQhqIgMgAr0iBUIgiD4CBCADIAU+AgAgAUEEaiAEKAIIIAQoAgwQgwkiA0UNAiAEIANBHGoqAgA4AgQgBCADKAIYQQFzNgIAIAQqAgQhBiAEKAIAIQMgASABKAIAQQFrNgIAIAAgBkMAAAAAIAMbOAIEIAAgA0EARzYCACAEQRBqJAAPCxDNCwALEM4LAAtBmLrAAEHMAEGMu8AAEMMLAAuxAQEEfyMAQTBrIgIkACABQQRqIQQgASgCBEUEQCABKAIAIQEgAkEIaiIDQQhqIgVBADYCACACQgE3AwggAiADNgIUIAJBGGoiA0EQaiABQRBqKQIANwMAIANBCGogAUEIaikCADcDACACIAEpAgA3AxggAkEUakGQmMMAIAMQtQIaIARBCGogBSgCADYCACAEIAIpAwg3AgALIABB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RQRAQQVB3I/AAEGchMAAEIEIIQUMHgsgAygC4AMhDiADQdgBaiIFQRBqIAEoAgAiATYCACAFQQhqIAQpAwAiTDcDACADQcgCaiIEQQhqIEw3AwAgBEEQaiABNgIAIAMgAykDgAMiTDcD2AEgAyBMNwPIAiADKAKoAiECCyAfQQFrIR8gAygCpAIgAkYEQCADQaACaiACEP8FIAMoAqgCIQILIAMoAqACIgEgAkEGdGoiBCAONgIEIAQgNzYCACAEIC46ADwgBCAgOgA6IAQgLToAOSAEICk6ADggBEIENwIgIARBCGogBzYCACAEQQxqIAMpA8gCNwIAIARBFGogA0HIAmoiBUEIaikDADcCACAEQRxqIAVBEGooAgA2AgAgBEE9aiAwOgAAIARBO2ogMzoAACAEQTBqQgA3AgAgBEEoakKAgICAwAA3AgAgAyACQQFqIgI2AqgCIB8NAAsLIAMpAqQCIUwgCigCBCIFRQRAIANCgcoANwPgAyADQeADahCPCiEFDBULIAogBUEBayICNgIEIAogCigCACIEQQFqNgIAIAJFBEAgA0KBygA3A+ADIANB4ANqEI8KIQUMFQsgBC0AACEvIAogBUECayICNgIEIAogBEECajYCACACQQdNBEAgA0KBygA3A+ADIANB4ANqEI8KIQUMFQsgBC0AASE0IAogBUEKayIINgIEIAogBEEKajYCACADQYADaiAEKQACEPAFIAMoAoADBEAgAygChAMhBQwVCyADKAKEAyIMRQRAQZCSwwAhDkEAIQ1BBCESQQAhB0EAIQIMFAsgA0GAA2ogDBCRBSAMQf////8AcSIEIAxHDTMgDEEEdCIFQQBIDTMgBCAMRkECdCEEIAUEfyAFIAQQ7goFIAQLIgkEQCADQegDaiADQYgDaikDADcDAEEAIRAgA0H4A2pBADYCACADQfQDaiAMNgIAIAMgAykDgAM3A+ADIAMgCTYC8AMgA0HwA2ohIANAAkACfyAIQQNNBEAgA0KBygA3A4ADIANBgANqEI8KDAELIAogCEEEayIFNgIEIAogCigCACIEQQRqNgIAIAVBA00EQCADQoHKADcDgAMgA0GAA2oQjwoMAQsgBCgAACEUIAogCEEIayIFNgIEIAogBEEIajYCACAFQQNLDQEgA0KBygA3A4ADIANBgANqEI8KCyEFIAMoAuADIgQEQCADKALkAyAEQQJ0QQRqaxCsAQsgAygC9AMiBEUNFyAEQQR0RQ0XIAMoAvADEKwBDBcLIAxBAWshDCAEKAAEIQ8gCiAIQQxrIgg2AgQgCiAEQQxqNgIAIAMoAuADIg0gDyAUQbnz3fF5bEEFd3NBufPd8XlsIhFxIgYgAygC5AMiEmooAAAiCyARQRl2IiFBgYKECGwiG3MiBUGBgoQIayAFQX9zcUGAgYKEeHEhDiASQQRrIRMgBCgACCEfQQAhAiAGIQcgCyEFAkACQAJAAkADQCAORQRAA0AgBSAFQQF0cUGAgYKEeHENAyACIAdqIQQgAkEEaiECIBsgEiAEQQRqIA1xIgdqKAAAIgVzIgRBgYKECGsgBEF/c3FBgIGChHhxIg5FDQALCyATIA5oQQN2IAdqIA1xQQJ0aygCACIEIBBPDQIgDkEBayAOcSEOIAkgBEEEdGoiBEEEaigCACAURw0AIARBCGooAgAgD0cNAAsgBCAfNgIMDAMLIAtBgIGChHhxIgJFBEBBBCEFA0AgBSAGaiEEIAVBBGohBSASIAQgDXEiBmooAABBgIGChHhxIgJFDQALCyASIAJoQQN2IAZqIA1xIgVqLAAAIgRBAE4EQCASIBIoAgBBgIGChHhxaEEDdiIFai0AACEECyAEQQFxIQQCQCADKALoAw0AIARFDQAgA0EQaiADQeADaiAJIBAQggEgESADKALgAyINcSIHIAMoAuQDIhJqKAAAQYCBgoR4cSIORQRAQQQhBQNAIAUgB2ohAiAFQQRqIQUgEiACIA1xIgdqKAAAQYCBgoR4cSIORQ0ACwsgEiAOaEEDdiAHaiANcSIFaiwAAEEASA0AIBIoAgBBgIGChHhxaEEDdiEFCyAFIBJqICE6AAAgBUEEayANcSASakEEaiAhOgAAIBIgBUECdGtBBGsgEDYCACADIAMoAugDIARrIgQ2AugDIAMgAygC7ANBAWoiBTYC7AMgECADKAL0AyICRwRAIAMoAvgDIQUMAgsgBCAFaiADKAL4AyIFayEEIAQgECAFa00EQCAQIQIMAgsgBSAEIAVqIgJLDTggAkEEdCEHIAJB/////wBxIAJGQQJ0IQkgAyAQBH8gAyADKALwAzYCgAMgAyAQQQR0NgKEA0EEBUEACzYCiAMgA0HYAWogByAJIANBgANqEPkGIAMoAtgBRQRAIAMgAjYC9AMgAyADKALcATYC8AMMAgsgA0HgAWooAgAiAEUNOCADKALcASAAQdzmwwAoAgAiAEGPByAAGxEAAAALIAQgEEG0n8AAEK8IAAsgAiAFRgRAICAgAhD8BSADKAL4AyEFCyADKALwAyIJIAVBBHRqIgQgHzYCDCAEIBQ2AgQgBCARNgIAIARBCGogDzYCACADIAVBAWoiEDYC+AMLIAwNAAsgAygC5AMiDgRAIAMoAvgDIQ0gAygC9AMhByADKALwAyESIAMpA+gDIUogAygC4AMhAgwVC0EEQYiRwABBnITAABCBCCEFDBULIAUgBEHc5sMAKAIAIgBBjwcgABsRAAAACyAEIAFB3ObDACgCACIAQY8HIAAbEQAAAAsgA0KBygA3A+ADIANB4ANqEI8KIQUMGQsgA0KBygA3A+ADIANB4ANqEI8KIQUMGAsMJwsgBUEEQdzmwwAoAgAiAEGPByAAGxEAAAALQZQBQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgA0KBygA3A9gBIANB2AFqEI8KIQUMFgsgA0KBygA3A9gBIANB2AFqEI8KIQUMGAsMIgsMIgsgAygCdCEEDBwLIAMoAnQhBAwcCyADQoHKADcDcCADQfAAahCPCiEEDBwLIANCgcoANwNwIANB8ABqEI8KIQQMGwsMHAsgA0KBygA3A3AgA0HwAGoQjwohBAwZCyADQoHKADcDcCADQfAAahCPCiEEDBgLIANCgcoANwNwIANB8ABqEI8KIQQMFwtBAEGIkMAAQZyEwAAQgQghBQwQCwJAAkACQCAKKAIEIgRBCE8EQCAKIARBCGs2AgQgCiAKKAIAIgRBCGo2AgAgBCgAACIIRQRAQQAhBkEEIQVBkJLDACEUQQAhEEEAIQQMBgsgA0HgA2ogCBCRBSAIQf////8AcSIEIAhHDSMgCEEEdCIGQQBIDSMgBCAIRkECdCEEIAYEfyAGIAQQ7goFIAQLIgVFDQIgAygC5AMiFEUNASADKALsAyEGIAMoAugDIRAgAygC4AMhBAwFCyADQoHKADcD4AMgA0HgA2oQjwohBQwCC0EFQYiRwABBnITAABCBCCEFDAELIAYgBEHc5sMAKAIAIgBBjwcgABsRAAAACyACBEAgDiACQQJ0QQRqaxCsAQsgB0UNACAHQQR0RQ0AIBIQrAELIExCIIinIgQEQCAEQQZ0IQsgASEEA0AgBBDNBiAEQUBrIQQgC0FAaiILDQALCyBMpyIERQ0HIARBBnRFDQcgARCsAQwHCyADQcwBakEANgIAIANByAFqIAg2AgAgA0HEAWogBTYCACADQcABaiAGNgIAIANBvAFqIBA2AgAgA0G4AWogFDYCACADQbABakEANgIAIANBpAFqIA02AgAgA0GgAWogBzYCACADQZwBaiASNgIAIANBlAFqIEo3AgAgA0GQAWogDjYCACADQYQBaiBMNwIAIAMgNDoA0QEgAyAvOgDQASADIAQ2ArQBIANCBDcDqAEgAyACNgKMASADIAE2AoABIAMgKzYCfCADIBc2AnggAyAaNgJ0IAMgFjYCcAJAIAMoAiQiAUUEQEEEQZjAwABBnITAABCBCCEBIBVBATYCACAVIAE2AgQMAQsgAyABQQFrNgIkIAMoAiAhIiADQQhqIQFBCEEEEO4KIgRFBEBBCEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIARCgYCAgBA3AgAgASAENgIAIAFB4MXAADYCBCADKAIMITwgAygCCCEqIANBAjYCpAIgAyAiNgKgAiADQeADaiADQaACahCpAgJAAkACQCADKALgA0UEQCADKALkAyIERQRAQQBBjIvAAEGchMAAEIEIIQIMBAsgA0HoA2opAwAhTCADKAKkAiIBBEAgAyABQQFrNgKkAiADKAKgAiISKAIEIgFBB00EQCADQoHKADcD4AMgA0HgA2oQjwohAgwECyASIAFBCGs2AgQgEiASKAIAIgFBCGo2AgAgA0GAA2ogASkAABDwBSADKAKAAwRAIAMoAoQDIQIMBAtBBCEQIAMoAoQDIhZBgCAgFkGAIEkbIgUEQCAFQThsIgFBBBDuCiIQRQ0dC0EAIRQgA0EANgLoBCADIAU2AuQEIAMgEDYC4AQgFgRAIANBpQNqITUgA0GAA2pBBHIhIyADQYkEaiE9IANB6ANqISwDQCADQeADaiEcQQAhDEIAIUpCACFOIwBBoAJrIgIkAAJAAkACQAJAAkACfyASIgUoAgQiB0EDTQRAIAJCgcoANwPIASACQcgBahCPCgwBCyAFIAdBBGsiCTYCBCAFIAUoAgAiAUEEajYCACAJQQNLDQEgAkKBygA3A8gBIAJByAFqEI8KCyEBIBxBATYCACAcIAE2AgQMAQsgASgAACE+IAUgB0EIayIJNgIEIAUgAUEIajYCAAJAAn8gCUEDTQRAIAJCgcoANwPIASACQcgBahCPCgwBCyABKAAEITogBSAHQQxrIgk2AgQgBSABQQxqNgIAIAlBA0sNASACQoHKADcDyAEgAkHIAWoQjwoLIQEgHEEBNgIAIBwgATYCBAwBCyABKAAIIUEgBSAHQRBrIgk2AgQgBSABQRBqNgIAAkAgCUEHTQRAIAJCgcoANwPIASACQcgBahCPCiEBDAELIAEoAAwhRiAFIAdBGGs2AgQgBSABQRhqNgIAIAJBgAJqIAEpABAQ8AUgAigCgAIEQCACKAKEAiEBDAELQQQhBwJAAn8gAigChAIiBkGAICAGQYAgSRsiCQRAIAlBqAFsIgFBBBDuCiIHRQ0mCyACQQA2AjggAiAJNgI0IAIgBzYCMAJAAkACQAJAAkACQCAGBEAgAkHIAWpBBHIhGwNAIAUoAgQiAUEHTQRAIAJCgcoANwPIASACQcgBahCPCiEBDAoLIAUgAUEIazYCBCAFIAUoAgAiAUEIajYCACACQYACaiABKQAAEPAFIAIoAoACBEAgAigChAIhAQwKCwJAIAIoAoQCIh1BgCAgHUGAIEkbIgdFBEBBBCEMDAELIAdBMGwiAUEEEO4KIgxFDS4LIAJBADYCiAIgAiAHNgKEAiACIAw2AoACIB0EQEEAIRoDQCACQcgBaiAFEJgEIAIoAswBIgggAigCyAENChogAikD0AEhSiACQcgBaiAFEJgEIAIoAswBIg8gAigCyAENChogBSgCBCIHQQNNBEAgAkKBygA3A8gBIAJByAFqEI8KDAsLIAIpA9ABIUsgBSAHQQRrIgk2AgQgBSAFKAIAIgFBBGo2AgAgCUEDTQRAIAJCgcoANwPIASACQcgBahCPCgwLCyABKgAAIWAgBSAHQQhrIgk2AgQgBSABQQhqNgIAIAlBA00EQCACQoHKADcDyAEgAkHIAWoQjwoMCwsgASgABCERIAUgB0EMayIJNgIEIAUgAUEMajYCACAJQQNNBEAgAkKBygA3A8gBIAJByAFqEI8KDAsLIAEoAAghDiAFIAdBEGsiCTYCBCAFIAFBEGo2AgAgCUEHTQRAIAJCgcoANwPIASACQcgBahCPCgwLCyABKAAMIQogBSAHQRhrIg02AgQgBSABQRhqNgIAIAJBoAFqIAEpABAQ8AUgAigCoAEEQCACKAKkAQwLCwJAAkAgAigCpAEiCUUEQEEAIRcMAQsgDUEDTQ0LIAUgB0EcayINNgIEIAUgAUEcajYCAEEBIRcgCUEBRw0BCyAXIAJBgAFqQZCAwAAQgQgMCwsgDUEESQ0JIAE1ABghTSAFIAdBIGsiDTYCBCAFIAFBIGo2AgAgCUECRwRAIA1BBEkNCiAFIAdBJGs2AgQgBSABQSRqNgIAQQIgAkGAAWpBkIDAABCBCAwLCyAdQQFrIR0gATUAHEIghiBNhCFNIAIoAoQCIBpGBEAgAkGAAmogGhDZBSACKAKIAiEaIAIoAoACIQwLIAwgGkEwbGoiASAKNgIkIAEgDjYCICABIBE2AhwgASBgOAIYIAEgDzYCDCABIEo3AgQgASAINgIAIAFBKGogTTcCACABQRBqIEs3AgAgAiAaQQFqIho2AogCIB0NAAsgAigCgAIhDAsgDEUEQEEAQYCWwABBnITAABCBCCEBDAoLIAIpAoQCIUogAkHIAWogBRCYBCACKALMASEBIAIoAsgBDQYgAikD0AEhTSACQcgBaiAFEJgEIAIoAswBIQcgAigCyAEEQCAHIQEMBwsgBSgCBCIIQQNNBEAgAkKBygA3A8gBIAJByAFqEI8KIQEMBwsgAikD0AEhTyAFIAhBBGsiDzYCBCAFIAUoAgAiCUEEajYCACAPQQNNBEAgAkKBygA3A8gBIAJByAFqEI8KIQEMBwsgCSgAACEkIAUgCEEIayIPNgIEIAUgCUEIajYCAAJAAkACQCAPBEAgCSgABCElIAUgCEEJayIONgIEIAUgCUEJajYCAEEAIRcgCS0ACCIJDgIDAgELIAJCgcoANwPIASACQcgBahCPCiEBDAkLQRBBBBDuCiIBRQ0uIAEgCTYCBCABQQQ6AAAMCAsgAkHIAWogBRCHBSACKALIAQ0DIAJBgAJqIglBGGogG0EYaigCADYCACAJQRBqIBtBEGopAgA3AwAgCUEIaiAbQQhqKQIANwMAIAIgGykCADcDgAIgBSgCBCEOQQEhFwsgAkGAAWoiCUEYaiImIAJBgAJqIghBGGoiESgCADYCACAJQRBqIicgCEEQaiIKKQMANwMAIAlBCGoiKCAIQQhqIgkpAwA3AwAgAiACKQOAAjcDgAECQAJAAkAgDgRAIAUgDkEBazYCBCAFIAUoAgAiCEEBajYCAEEAIQ8gCC0AACIIDgIDAgELIAJCgcoANwPIASACQcgBahCPCiEBDAkLQRBBBBDuCiIBRQ0uIAEgCDYCBCABQQQ6AAAMCAsgAkHIAWogBRCHBSACKALIAQ0EIBEgG0EYaigCADYCACAKIBtBEGopAgA3AwAgCSAbQQhqKQIANwMAIAIgGykCADcDgAJBASEPCyACQaABaiIIQRhqIjEgESgCADYCACAIQRBqIjIgCikDADcDACAIQQhqIjsgCSkDADcDACACIAIpA4ACNwOgASACQQc2AsQBIAIgBTYCwAEgAkHIAWogAkHAAWoQ0AQgAigCyAENAyACKALMASJHQQJGBEBBAEHwjcAAQZyEwAAQgQghAQwHCyACKQPQASFOIAJByAFqIAJBwAFqENAEIAIoAsgBDQMgAigCzAEiSEECRgRAQQFB8I3AAEGchMAAEIEIIQEMBwsCQCACKALEASIJBEAgAigCwAEiEygCBCIIQQNLDQEgAkKBygA3A8gBIAJByAFqEI8KIQEMCAtBAkHwjcAAQZyEwAAQgQghAQwHCyACKQPQASFQIBMgCEEEazYCBCATIBMoAgAiCEEEajYCAAJAIAlBAUcEQCAIKAAAIUkgAkHIAWogExCYBCACKALMASEIIAIoAsgBRQ0BIAghAQwIC0EDQfCNwABBnITAABCBCCEBDAcLAkAgCUECRwRAIAIpA9ABIVIgAiAJQQNrNgLEASATKAIEIglBB00EQCACQoHKADcDyAEgAkHIAWoQjwohAQwJCyATIAlBCGsiHTYCBCATIBMoAgAiCUEIajYCACACQYACaiAJKQAAEPAFIAIoAoACBEAgAigChAIhAQwJCwJAIAIoAoQCIglBgCAgCUGAIEkbIhFFBEBBBCEKDAELIBFBKGwiDkEEEO4KIgpFDQcLIAJBADYCiAIgAiARNgKEAiACIAo2AoACIAkEQEEAIRoDQAJAAkACQCAdRQRAIAJCgcoANwPIASACQcgBahCPCiEBDAELIBMgHUEBazYCBCATIBMoAgAiEUEBajYCACARLQAAIUIgAkHIAWogExCYBCACKALMASERIAIoAsgBBEAgESEBDAELIBMoAgQiDUEDTQRAIAJCgcoANwPIASACQcgBahCPCiEBDAELIAIpA9ABIUsgEyANQQRrIh02AgQgEyATKAIAIg5BBGo2AgAgHUEDTQRAIAJCgcoANwPIASACQcgBahCPCiEBDAELIA4qAAAhYCATIA1BCGsiHTYCBCATIA5BCGo2AgAgHUEDTQRAIAJCgcoANwPIASACQcgBahCPCiEBDAELIA4qAAQhaSATIA1BDGs2AgQgEyAOQQxqNgIAIA4qAAghaiACQcgBaiATEJgEIAIoAswBIQ0gAigCyAEEQCANIQEMAQsgEygCBCIOBEAgAikD0AEhUyATIA5BAWsiHTYCBCATIBMoAgAiDkEBajYCAAJAIA4tAAAiDg4CAwQAC0EQQQQQ7goiAUUNNCABIA46AAEgAUECOgAADAELIAJCgcoANwPIASACQcgBahCPCiEBCyACKAKEAiIFRQ0MIAWtQih+p0UNDCACKAKAAhCsAQwMC0EAIQ4LIAlBAWshCSACKAKEAiAaRgRAIAJBgAJqIBoQ2gUgAigCiAIhGiACKAKAAiEKCyAKIBpBKGxqIhkgDjoAJSAZIEI6ACQgGSANNgIYIBkgajgCFCAZIGk4AhAgGSBgOAIMIBkgSzcCBCAZIBE2AgAgGUEcaiBTNwIAIAIgGkEBaiIaNgKIAiAJDQALIAIoAoACIQoLIAoNAQtBBEHwjcAAQZyEwAAQgQghAQwHCyACKQKEAiFLAkACfwJAIAIoAsQBIg0EQCACKALAASIJKAIEIg5BAUsNASACQoHKADcDyAEgAkHIAWoQjwoMAgtBBUHwjcAAQZyEwAAQgQgMAQsgCSAOQQJrIhM2AgQgCSAJKAIAIhFBAmo2AgAgDUEBRwRAIBNBA0sNAiACQoHKADcDyAEgAkHIAWoQjwoMAQtBBkHwjcAAQZyEwAAQgQgLIQEgS6ciBUUNByAFrUIofqdFDQcgChCsAQwHCyAGQQFrIQYgES8AACENIAkgDkEGazYCBCAJIBFBBmo2AgAgAkHgAGoiCUEIaiITICgpAwA3AwAgCUEQaiIdICcpAwA3AwAgCUEYaiIZICYoAgA2AgAgAkFAayIJQQhqIiYgOykDADcDACAJQRBqIicgMikDADcDACAJQRhqIiggMSgCADYCACACIAIpA4ABNwNgIAIgAikDoAE3A0AgESgAAiERIEtCIIinITEgSkIgiKchMiBLpyE7IEqnIUIgAigCOCIaIAIoAjRGBEAgAkEwaiAaENsFIAIoAjghGgsgAigCMCIOIBpBqAFsaiIJIBc2AiwgCSAlNgIoIAkgJDYCJCAJIAc2AhggCSABNgIMIAkgMjYCCCAJIEI2AgQgCSAMNgIAIAlBHGogTzcCACAJQRBqIE03AgAgCUEwaiACKQNgNwIAIAlBOGogEykDADcCACAJQUBrIB0pAwA3AgAgCUHIAGogGSgCADYCACAJIA82AkwgCSBHNgJsIAlB8ABqIE43AgAgCUH4AGogSDYCACAJQfwAaiBQNwIAIAlBhAFqIEk2AgAgCUGIAWogCDYCACAJQYwBaiBSNwIAIAlBlAFqIAo2AgAgCUGYAWogOzYCACAJQZwBaiAxNgIAIAlBoAFqIBE2AgAgCUGkAWogDTsBACAJQdAAaiACKQNANwIAIAlB2ABqICYpAwA3AgAgCUHgAGogJykDADcCACAJQegAaiAoKAIANgIAIAIgGkEBajYCOCAGDQALDAQLIAIoAjAiDg0DQQJB5IvAAEGchMAAEIEIIQEgHEEBNgIAIBwgATYCBAwJCyACKALMASEBDAMLIAIoAswBIQEMAgsgDkEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAIpAjQhTwJAAkACQAJ+An8CQAJAAkACQAJAAkAgBSgCBCIBBEAgBSABQQFrIgk2AgQgBSAFKAIAIgdBAWo2AgACQAJAAkACQCAHLQAAIh0OAgECAAtBEEEEEO4KIgVFDQIgBSAdOgABIAVBAjoAAAwOC0EAIR0LAkACQAJAAkAgCQRAIAUgAUECayIJNgIEIAUgB0ECajYCACAHLQABIhoOAgIDAQsgAkKBygA3A8gBIAJByAFqEI8KIQUMEAtBEEEEEO4KIgVFDQIgBSAaOgABIAVBAjoAAAwPC0EAIRoLAkACQAJAIAkEQCAFIAFBA2siCTYCBCAFIAdBA2o2AgBBACEGIActAAIiCA4CDwIBCyACQoHKADcDyAEgAkHIAWoQjwohBQwQC0EQQQQQ7goiBUUNASAFIAg2AgQgBUEEOgAADA8LAkACQAJAAkAgCUEETwRAIAUgAUEHayIGNgIEIAUgB0EHajYCACAHKAADIgwOBgIDDQwLCgELIAJCgcoANwOAAiACQYACahCPCiEFDBILIAJBAToAgAIgAiAMrTcDiAIgAkGAAmpBzJPAAEGchMAAEJ4IIQUMEQsgAkEDNgKkASACIAU2AqABIAJBgAJqIAJBoAFqELsDIAIoAoACRQRAIAIoAoQCIgdFBEBBAEGQlMAAQZyEwAAQgQghBQwSCyACQYgCaiIBKQMAIU0CQCACKAKkASIFBEAgAkGMAmooAgAhBiABKAIAIQEgAiAFQQFrNgKkASACQYACaiACKAKgASIJEJgEIAIoAoQCIQUgAigCgAINEiACQYgCaiIIKQMAIUogAkGAAmogCRCYBCACKAKEAiEMIAIoAoACRQ0BIAwhBQwSC0EBQZCUwABBnITAABCBCCEFDBELIAgpAwAhSyACQYACaiACQaABahC7AyACKAKAAg0CIAIoAoQCIgkNB0ECQZCUwABBnITAABCBCCEFDBALIAIoAoQCIQUMEAsCQAJAAkACQCAGBEAgBSABQQhrIgY2AgQgBSAHQQhqNgIAQgEhSyAHLQAHIggOAgIDAQsgAkKBygA3A4ACIAJBgAJqEI8KIQUMEwtBEEEEEO4KIgVFDQIgBSAIOgABIAVBAjoAAAwSC0IAIUsLIAZBB00EQCACQoHKADcDgAIgAkGAAmoQjwohBQwRCyAFIAFBEGsiFzYCBCAFIAdBEGo2AgAgAkGgAWogBykACBDwBSACKAKgAQRAIAIoAqQBIQUMEQsgAigCpAEiE0UEQEGQksMAIQFBACEGQgQhSkEAIQVBACEMQQAhBwwMCyACQaABaiATEJEFIBNB/////wBxIgEgE0cNPyATQQR0IgdBAEgNPyABIBNGQQJ0IQEgBwR/IAcgARDuCgUgAQsiDwRAIAJBiAJqIAJBqAFqKQMANwMAQQAhCCACQZgCakEANgIAIAJBlAJqIBM2AgAgAiACKQOgATcDgAIgAiAPNgKQAiACQZACaiEoA0ACQAJAAkACQCAXQQNNBEAgAkKBygA3A6ABIAJBoAFqEI8KIQUMAQsgBSAXQQRrIgc2AgQgBSAFKAIAIgFBBGo2AgAgB0EITwRAIAEoAAAhJCAFIBdBDGsiBzYCBCAFIAFBDGo2AgAgASkABCJKQoCAgIAQWgRAIAJBAToAoAEgAiBKNwOoASACQaABaiACQYABakH8gcAAEJ4IIQUMAgsCQCAHBEAgBSAXQQ1rIhc2AgQgBSABQQ1qNgIAQQEhGyABLQAMIgEOAgQFAQsgAkKBygA3A6ABIAJBoAFqEI8KIQUMAgtBEEEEEO4KIgVFDT4gBSABOgABIAVBAjoAAAwBCyACQoHKADcDoAEgAkGgAWoQjwohBQsgAigCgAIiAQRAIAIoAoQCIAFBAnRBBGprEKwBCyACKAKUAiIBRQ0VIAFBBHRFDRUgAigCkAIQrAEMFQtBACEbCyATQQFrIRMgSqchJiACKAKEAiIJIAIoAoACIgogJEG5893xeWwiJXEiEWooAAAiDSAlQRl2IidBgYKECGwiMXMiAUGBgoQIayABQX9zcUGAgYKEeHEhDCAJQQRrITJBACEBIBEhBiANIQcCQANAIAxFBEADQCAHIAdBAXRxQYCBgoR4cQ0DIAEgBmohByABQQRqIQEgMSAHQQRqIApxIgYgCWooAAAiB3MiDEGBgoQIayAMQX9zcUGAgYKEeHEiDEUNAAsLIDIgDGhBA3YgBmogCnFBAnRrKAIAIhkgCE8NPiAMQQFrIAxxIQwgDyAZQQR0aiIZKAIEICRHDQALIBkgJjYCCCAZQQxqIBs6AAAgEw0CDAELIA1BgIGChHhxIgFFBEBBBCEHA0AgByARaiAHQQRqIQcgCnEiESAJaigAAEGAgYKEeHEiAUUNAAsLIAkgAWhBA3YgEWogCnEiB2osAAAiAUEATgRAIAkgCSgCAEGAgYKEeHFoQQN2IgdqLQAAIQELIAFBAXEhAQJAIAIoAogCDQAgAUUNACACQRBqIAJBgAJqIA8gCBCCASACKAKEAiIJICUgAigCgAIiCnEiBmooAABBgIGChHhxIgxFBEBBBCEHA0AgBiAHaiAHQQRqIQcgCnEiBiAJaigAAEGAgYKEeHEiDEUNAAsLIAkgDGhBA3YgBmogCnEiB2osAABBAEgNACAJKAIAQYCBgoR4cWhBA3YhBwsgByAJaiAnOgAAIAdBBGsgCnEgCWpBBGogJzoAACAJIAdBAnRrQQRrIAg2AgAgAiACKAKIAiABayIHNgKIAiACIAIoAowCQQFqIgY2AowCAkAgCCACKAKUAiIBRwRAIAIoApgCIQcMAQsgBiAHaiACKAKYAiIHayEBIAEgCCAHa00EQCAIIQEMAQsgByABIAdqIgFLDUMgAUEEdCEGIAFB/////wBxIAFGQQJ0IQ8gAiAIBH8gAiACKAKQAjYCoAEgAiAIQQR0NgKkAUEEBUEACyIJNgKoASACQYABaiAGIA8gAkGgAWoQ+QYgAigCgAFFBEAgAiABNgKUAiACIAIoAoQBNgKQAgwBCwwbCyABIAdGBEAgKCABEPwFIAIoApgCIQcLIAIoApACIg8gB0EEdGoiASAmNgIIIAEgJDYCBCABICU2AgAgAUEMaiAbOgAAIAIgB0EBaiIINgKYAiATDQELCyACKAKEAiIBBEAgAigCmAIhDCACKQOQAiFKIAIoAowCIQUgAigCiAIhBiACKAKAAiEHDA0LQQFB2JTAAEGchMAAEIEIIQUMEQsMGAsMNgsgAigChAIhBQwNCww0CwwzCwwyCyACQoHKADcDyAEgAkHIAWoQjwohBQwKCyACQYgCaikDACFOQQAhCiBLQoD+//8PgyFQIEtCgICAgHCDDAYLIAZBBE8EQCAFIAFBC2s2AgQgBSAHQQtqNgIAIAcoAAchB0EFIQpCACFLQgAhUEIADAYLIAJCgcoANwOAAiACQYACahCPCiEFDAgLAkACQAJAAkAgBgRAIAUgAUEIayIGNgIEIAUgB0EIajYCAEIBIUsgBy0AByIIDgICAwELIAJCgcoANwOAAiACQYACahCPCiEFDAsLQRBBBBDuCiIFRQ0CIAUgCDoAASAFQQI6AAAMCgtCACFLCyAGQQdNBEAgAkKBygA3A4ACIAJBgAJqEI8KIQUMCQsgBSABQRBrIhc2AgQgBSAHQRBqNgIAIAJBoAFqIAcpAAgQ8AUgAigCoAEEQCACKAKkASEFDAkLIAIoAqQBIhNFBEBBkJLDACEBQQAhBkIEIUpBACEFQQAhDEEAIQdBBAwFCyACQaABaiATEJEFIBNB/////wBxIgEgE0cNNyATQQR0IgdBAEgNNyABIBNGQQJ0IQEgBwR/IAcgARDuCgUgAQsiDwRAIAJBiAJqIAJBqAFqKQMANwMAQQAhCCACQZgCakEANgIAIAJBlAJqIBM2AgAgAiACKQOgATcDgAIgAiAPNgKQAiACQZACaiEoA0ACQAJAAkACQCAXQQNNBEAgAkKBygA3A6ABIAJBoAFqEI8KIQUMAQsgBSAXQQRrIgc2AgQgBSAFKAIAIgFBBGo2AgAgB0EITwRAIAEoAAAhJCAFIBdBDGsiBzYCBCAFIAFBDGo2AgAgASkABCJKQoCAgIAQWgRAIAJBAToAoAEgAiBKNwOoASACQaABaiACQYABakH8gcAAEJ4IIQUMAgsCQCAHBEAgBSAXQQ1rIhc2AgQgBSABQQ1qNgIAQQEhGyABLQAMIgEOAgQFAQsgAkKBygA3A6ABIAJBoAFqEI8KIQUMAgtBEEEEEO4KIgVFDTYgBSABOgABIAVBAjoAAAwBCyACQoHKADcDoAEgAkGgAWoQjwohBQsgAigCgAIiAQRAIAIoAoQCIAFBAnRBBGprEKwBCyACKAKUAiIBRQ0NIAFBBHRFDQ0gAigCkAIQrAEMDQtBACEbCyATQQFrIRMgSqchJiACKAKEAiIJIAIoAoACIgogJEG5893xeWwiJXEiEWooAAAiDSAlQRl2IidBgYKECGwiMXMiAUGBgoQIayABQX9zcUGAgYKEeHEhDCAJQQRrITJBACEBIBEhBiANIQcCQANAIAxFBEADQCAHIAdBAXRxQYCBgoR4cQ0DIAEgBmohByABQQRqIQEgMSAHQQRqIApxIgYgCWooAAAiB3MiDEGBgoQIayAMQX9zcUGAgYKEeHEiDEUNAAsLIDIgDGhBA3YgBmogCnFBAnRrKAIAIhkgCE8NNiAMQQFrIAxxIQwgDyAZQQR0aiIZKAIEICRHDQALIBkgJjYCCCAZQQxqIBs6AAAgEw0CDAELIA1BgIGChHhxIgFFBEBBBCEHA0AgByARaiAHQQRqIQcgCnEiESAJaigAAEGAgYKEeHEiAUUNAAsLIAkgAWhBA3YgEWogCnEiB2osAAAiAUEATgRAIAkgCSgCAEGAgYKEeHFoQQN2IgdqLQAAIQELIAFBAXEhAQJAIAIoAogCDQAgAUUNACACQShqIAJBgAJqIA8gCBCCASACKAKEAiIJICUgAigCgAIiCnEiBmooAABBgIGChHhxIgxFBEBBBCEHA0AgBiAHaiAHQQRqIQcgCnEiBiAJaigAAEGAgYKEeHEiDEUNAAsLIAkgDGhBA3YgBmogCnEiB2osAABBAEgNACAJKAIAQYCBgoR4cWhBA3YhBwsgByAJaiAnOgAAIAdBBGsgCnEgCWpBBGogJzoAACAJIAdBAnRrQQRrIAg2AgAgAiACKAKIAiABayIHNgKIAiACIAIoAowCQQFqIgY2AowCAkAgCCACKAKUAiIBRwRAIAIoApgCIQcMAQsgBiAHaiACKAKYAiIHayEBIAEgCCAHa00EQCAIIQEMAQsgByABIAdqIgFLDTsgAUEEdCEGIAFB/////wBxIAFGQQJ0IQ8gAiAIBH8gAiACKAKQAjYCoAEgAiAIQQR0NgKkAUEEBUEACyIJNgKoASACQYABaiAGIA8gAkGgAWoQ+QYgAigCgAFFBEAgAiABNgKUAiACIAIoAoQBNgKQAgwBCwwTCyABIAdGBEAgKCABEPwFIAIoApgCIQcLIAIoApACIg8gB0EEdGoiASAmNgIIIAEgJDYCBCABICU2AgAgAUEMaiAbOgAAIAIgB0EBaiIINgKYAiATDQELCyACKAKEAiIBBEAgAigCmAIhDCACKQOQAiFKIAIoAowCIQUgAigCiAIhBiACKAKAAiEHQQQMBgtBAUHMlsAAQZyEwAAQgQghBQwJCwwQCwwuCwJAAkACQAJAIAYEQCAFIAFBCGsiBjYCBCAFIAdBCGo2AgBCASFLIActAAciCA4CAgMBCyACQoHKADcDgAIgAkGAAmoQjwohBQwKC0EQQQQQ7goiBUUNAiAFIAg6AAEgBUECOgAADAkLQgAhSwsgBkEHTQRAIAJCgcoANwOAAiACQYACahCPCiEFDAgLIAUgAUEQayIXNgIEIAUgB0EQajYCACACQaABaiAHKQAIEPAFIAIoAqABBEAgAigCpAEhBQwICyACKAKkASITRQRAQZCSwwAhAUEAIQZCBCFKQQAhBUEAIQxBACEHQQMMBAsgAkGgAWogExCRBSATrUIUfiJKQiCIpyIBDTYgSqciB0EASA02IAFFQQJ0IQEgBwR/IAcgARDuCgUgAQsiDwRAIAJBgAJqIgFBCGogAkGoAWopAwA3AwBBACEIIAJBmAJqQQA2AgAgAUEUaiATNgIAIAIgAikDoAE3A4ACIAIgDzYCkAIgAUEQaiExA0ACQAJAAkACQCAXQQNNBEAgAkKBygA3A6ABIAJBoAFqEI8KIQUMAQsgBSAXQQRrIgc2AgQgBSAFKAIAIgFBBGo2AgAgB0EDTQRAIAJCgcoANwOgASACQaABahCPCiEFDAELIAEoAAAhJCAFIBdBCGsiBzYCBCAFIAFBCGo2AgAgB0EITwRAIAEoAAQhJSAFIBdBEGsiBzYCBCAFIAFBEGo2AgAgASkACCJKQoCAgIAQWgRAIAJBAToAoAEgAiBKNwOoASACQaABaiACQYABakH8gcAAEJ4IIQUMAgsCQCAHBEAgBSAXQRFrIhc2AgQgBSABQRFqNgIAQQEhGyABLQAQIgEOAgQFAQsgAkKBygA3A6ABIAJBoAFqEI8KIQUMAgtBEEEEEO4KIgVFDTUgBSABOgABIAVBAjoAAAwBCyACQoHKADcDoAEgAkGgAWoQjwohBQsgAigCgAIiAQRAIAIoAoQCIAFBAnRBBGprEKwBCyACKAKUAiIBRQ0MIAGtQhR+p0UNDCACKAKQAhCsAQwMC0EAIRsLIBNBAWshEyBKpyEnIAIoAoQCIgkgAigCgAIiCiAlICRBufPd8XlsQQV3c0G5893xeWwiJnEiEWooAAAiDSAmQRl2IihBgYKECGwiMnMiAUGBgoQIayABQX9zcUGAgYKEeHEhDCAJQQRrITtBACEBIBEhBiANIQcCQANAIAxFBEADQCAHIAdBAXRxQYCBgoR4cQ0DIAEgBmohByABQQRqIQEgMiAHQQRqIApxIgYgCWooAAAiB3MiDEGBgoQIayAMQX9zcUGAgYKEeHEiDEUNAAsLIDsgDGhBA3YgBmogCnFBAnRrKAIAIhkgCE8NNSAMQQFrIAxxIQwgDyAZQRRsaiIZQQRqKAIAICRHDQAgGUEIaigCACAlRw0ACyAZICc2AgwgGUEQaiAbOgAAIBMNAgwBCyANQYCBgoR4cSIBRQRAQQQhBwNAIAcgEWogB0EEaiEHIApxIhEgCWooAABBgIGChHhxIgFFDQALCyAJIAFoQQN2IBFqIApxIgdqLAAAIgFBAE4EQCAJIAkoAgBBgIGChHhxaEEDdiIHai0AACEBCyABQQFxIQECQCACKAKIAg0AIAFFDQAgAkEgaiACQYACaiAPIAgQgwEgAigChAIiCSAmIAIoAoACIgpxIgZqKAAAQYCBgoR4cSIMRQRAQQQhBwNAIAYgB2ogB0EEaiEHIApxIgYgCWooAABBgIGChHhxIgxFDQALCyAJIAxoQQN2IAZqIApxIgdqLAAAQQBIDQAgCSgCAEGAgYKEeHFoQQN2IQcLIAcgCWogKDoAACAHQQRrIApxIAlqQQRqICg6AAAgCSAHQQJ0a0EEayAINgIAIAIgAigCiAIgAWsiBzYCiAIgAiACKAKMAkEBaiIGNgKMAgJAIAggAigClAIiAUcEQCACKAKYAiEHDAELIAYgB2ogAigCmAIiB2shASABIAggB2tNBEAgCCEBDAELIAcgASAHaiIBSw06IAGtQhR+IkpCIIhQQQJ0IQYgSqchDyACIAgEfyACIAIoApACNgKgASACIAitQhR+PgKkAUEEBUEACyIJNgKoASACQYABaiAPIAYgAkGgAWoQ+QYgAigCgAFFBEAgAiABNgKUAiACIAIoAoQBNgKQAgwBCwwSCyABIAdGBEAgMSABENwFIAIoApgCIQcLIAIoApACIg8gB0EUbGoiASAnNgIMIAEgJDYCBCABICY2AgAgAUEQaiAbOgAAIAFBCGogJTYCACACIAdBAWoiCDYCmAIgEw0BCwsgAigChAIiAQRAIAIoApgCIQwgAikDkAIhSiACKAKMAiEFIAIoAogCIQYgAigCgAIhB0EDDAULQQFB9JfAAEGchMAAEIEIIQUMCAsMDwsMLQsCQAJAAkAgBgRAIAUgAUEIayIGNgIEIAUgB0EIajYCAEIBIUsgBy0AByIIDgICAwELIAJCgcoANwOAAiACQYACahCPCiEFDAgLQRBBBBDuCiIFRQ0uIAUgCDoAASAFQQI6AAAMBwtCACFLCyAGQQdNBEAgAkKBygA3A4ACIAJBgAJqEI8KIQUMBgsgBSABQRBrIhc2AgQgBSAHQRBqNgIAIAJBoAFqIAcpAAgQ8AUgAigCoAEEQCACKAKkASEFDAYLIAIoAqQBIhNFBEBBkJLDACEBQQAhBkIEIUpBACEFQQAhDEEAIQdBAgwCCyACQaABaiATEJEFIBOtQhR+IkpCIIinIgENNCBKpyIHQQBIDTQgAUVBAnQhASAHBH8gByABEO4KBSABCyIPRQ0NIAJBgAJqIgFBCGogAkGoAWopAwA3AwBBACEIIAJBmAJqQQA2AgAgAUEUaiATNgIAIAIgAikDoAE3A4ACIAIgDzYCkAIgAUEQaiExA0ACQAJAAkACQCAXQQNNBEAgAkKBygA3A6ABIAJBoAFqEI8KIQUMAQsgBSAXQQRrIgc2AgQgBSAFKAIAIgFBBGo2AgAgB0EDTQRAIAJCgcoANwOgASACQaABahCPCiEFDAELIAEoAAAhJCAFIBdBCGsiBzYCBCAFIAFBCGo2AgAgB0EITwRAIAEoAAQhJSAFIBdBEGsiBzYCBCAFIAFBEGo2AgAgASkACCJKQoCAgIAQWgRAIAJBAToAoAEgAiBKNwOoASACQaABaiACQYABakH8gcAAEJ4IIQUMAgsCQCAHBEAgBSAXQRFrIhc2AgQgBSABQRFqNgIAQQEhGyABLQAQIgEOAgQFAQsgAkKBygA3A6ABIAJBoAFqEI8KIQUMAgtBEEEEEO4KIgVFDTIgBSABOgABIAVBAjoAAAwBCyACQoHKADcDoAEgAkGgAWoQjwohBQsgAigCgAIiAQRAIAIoAoQCIAFBAnRBBGprEKwBCyACKAKUAiIBRQ0JIAGtQhR+p0UNCSACKAKQAhCsAQwJC0EAIRsLIBNBAWshEyBKpyEnIAIoAoQCIgkgAigCgAIiCiAlICRBufPd8XlsQQV3c0G5893xeWwiJnEiEWooAAAiDSAmQRl2IihBgYKECGwiMnMiAUGBgoQIayABQX9zcUGAgYKEeHEhDCAJQQRrITtBACEBIBEhBiANIQcCQANAIAxFBEADQCAHIAdBAXRxQYCBgoR4cQ0DIAEgBmohByABQQRqIQEgMiAHQQRqIApxIgYgCWooAAAiB3MiDEGBgoQIayAMQX9zcUGAgYKEeHEiDEUNAAsLIDsgDGhBA3YgBmogCnFBAnRrKAIAIhkgCE8NMiAMQQFrIAxxIQwgDyAZQRRsaiIZQQRqKAIAICRHDQAgGUEIaigCACAlRw0ACyAZICc2AgwgGUEQaiAbOgAAIBMNAgwBCyANQYCBgoR4cSIBRQRAQQQhBwNAIAcgEWogB0EEaiEHIApxIhEgCWooAABBgIGChHhxIgFFDQALCyAJIAFoQQN2IBFqIApxIgdqLAAAIgFBAE4EQCAJIAkoAgBBgIGChHhxaEEDdiIHai0AACEBCyABQQFxIQECQCACKAKIAg0AIAFFDQAgAkEYaiACQYACaiAPIAgQgwEgAigChAIiCSAmIAIoAoACIgpxIgZqKAAAQYCBgoR4cSIMRQRAQQQhBwNAIAYgB2ogB0EEaiEHIApxIgYgCWooAABBgIGChHhxIgxFDQALCyAJIAxoQQN2IAZqIApxIgdqLAAAQQBIDQAgCSgCAEGAgYKEeHFoQQN2IQcLIAcgCWogKDoAACAHQQRrIApxIAlqQQRqICg6AAAgCSAHQQJ0a0EEayAINgIAIAIgAigCiAIgAWsiBzYCiAIgAiACKAKMAkEBaiIGNgKMAgJAIAggAigClAIiAUcEQCACKAKYAiEHDAELIAYgB2ogAigCmAIiB2shASABIAggB2tNBEAgCCEBDAELIAcgASAHaiIBSw03IAGtQhR+IkpCIIhQQQJ0IQYgSqchDyACIAgEfyACIAIoApACNgKgASACIAitQhR+PgKkAUEEBUEACyIJNgKoASACQYABaiAPIAYgAkGgAWoQ+QYgAigCgAFFBEAgAiABNgKUAiACIAIoAoQBNgKQAgwBCwwPCyABIAdGBEAgMSABENwFIAIoApgCIQcLIAIoApACIg8gB0EUbGoiASAnNgIMIAEgJDYCBCABICY2AgAgAUEQaiAbOgAAIAFBCGogJTYCACACIAdBAWoiCDYCmAIgEw0BCwsgAigChAIiAQRAIAIoApgCIQwgAikDkAIhSiACKAKMAiEFIAIoAogCIQYgAigCgAIhB0ECDAILQQFBoJfAAEGchMAAEIEIIQUMBQtBAQshCkIAIVBCAAshTSACQfQBaiBONwIAIAJB8AFqIAk2AgAgAkHkAWogDDYCACACQdwBaiBKNwIAIAJB2AFqIAU2AgAgAkHUAWogBjYCACACQdABaiABNgIAIAJB6AFqIEtC/wGDIE0gUISENwMAIAIgBzYCzAEgAiAKNgLIASACQQhqIQlBACEHQQAhBQJAAkACQAJAAkACQAJAAkACQCACQcgBaiIBKAIAQQFrDgUBAgMEBQALQTBBBBDuCiIHRQ0FIAcgASkCBDcCACAHQShqIAFBLGopAgA3AgAgB0EgaiABQSRqKQIANwIAIAdBGGogAUEcaikCADcCACAHQRBqIAFBFGopAgA3AgAgB0EIaiABQQxqKQIANwIAQdyTwgAhBQwEC0EgQQQQ7goiB0UNBSAHIAEpAgQ3AgAgB0EYaiABQRxqKQIANwIAIAdBEGogAUEUaikCADcCACAHQQhqIAFBDGopAgA3AgBBnJPCACEFDAMLQSBBBBDuCiIHRQ0EIAcgASkCBDcCACAHQRhqIAFBHGopAgA3AgAgB0EQaiABQRRqKQIANwIAIAdBCGogAUEMaikCADcCAEHcksIAIQUMAgtBIEEEEO4KIgdFDQMgByABKQIENwIAIAdBGGogAUEcaikCADcCACAHQRBqIAFBFGopAgA3AgAgB0EIaiABQQxqKQIANwIAQeiRwgAhBQwBC0EgQQQQ7goiB0UNAiAHIAEpAgQ3AgAgB0EYaiABQRxqKQIANwIAIAdBEGogAUEUaikCADcCACAHQQhqIAFBDGopAgA3AgBBnJLCACEFCyAJIAU2AgQgCSAHNgIADAILQTBBBEHc5sMAKAIAIgBBjwcgABsRAAAAC0EgQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgAigCDCEMIAIoAgghBiACEOEGIgU2AsgBIAZFDQIgAkHIAWoQkQcLIBwgPjYCBCAcQQA2AgAgHEEpaiAaOgAAIBxBKGogHToAACAcQSRqIAw2AgAgHEEgaiAGNgIAIBxBGGogTzcCACAcQRRqIA42AgAgHEEQaiBGNgIAIBxBDGogQTYCACAcQQhqIDo2AgAMBwsgTaciAUUNACABQQJ0RQ0AIAcQrAELIBxBATYCACAcIAU2AgQgT0IgiKciAQRAIA4gAUGoAWxqIQEgDiEFA0ACQCAFQQRqKAIAIgdFDQAgB61CMH6nRQ0AIAUoAgAQrAELAkAgBUGYAWooAgAiB0UNACAHrUIofqdFDQAgBUGUAWooAgAQrAELIAEgBUGoAWoiBUcNAAsLIE+nIgFFDQUgAa1CqAF+p0UNBSAOEKwBDAULIEqnIgVFDQIgBa1CMH6nRQ0CIAwQrAEMAgsgAkKBygA3A8gBIAJByAFqEI8KCyEBIAIoAoQCIgVFDQAgBa1CMH6nRQ0AIAIoAoACEKwBCyACKAIwIQcgAigCOCIFBEAgByAFQagBbGohCSAHIQUDQAJAIAVBBGooAgAiBkUNACAGrUIwfqdFDQAgBSgCABCsAQsCQCAFQZgBaigCACIGRQ0AIAatQih+p0UNACAFQZQBaigCABCsAQsgCSAFQagBaiIFRw0ACwsgAigCNCIFRQ0AIAWtQqgBfqdFDQAgBxCsAQsgHEEBNgIAIBwgATYCBAsgAkGgAmokAAwCCyACQYgBaigCACIARQ0nIAIoAoQBIABB3ObDACgCACIAQY8HIAAbEQAAAAsgByABQdzmwwAoAgAiAEGPByAAGxEAAAALIAMoAuQDIQICQAJAIAMoAuADDQAgA0HIAmoiAUEYaiIFICxBGGopAgA3AwAgAUEQaiIJICxBEGopAgA3AwAgAUEIaiIBICxBCGopAgA3AwAgA0GyBmoiBiA9QQJqLQAAOgAAIAMgLCkCADcDyAIgAyA9LwAAOwGwBiADLQCIBCIHQQJGBEBBAEG4iMAAQZyEwAAQgQghAgwBCyAjIAMpA8gCNwIAIDUgAy8BsAY7AAAgI0EYaiIPIAUpAwA3AgAgI0EQaiITIAkpAwA3AgAgI0EIaiIMIAEpAwA3AgAgNUECaiIRIAYtAAA6AAAgAyAHOgCkAyADIAI2AoADAn8gEigCBCIFQQNNBEAgA0KBygA3A+ADIANB4ANqEI8KDAELIBIgBUEEayIJNgIEIBIgEigCACIBQQRqNgIAIAlBA00EQCADQoHKADcD4AMgA0HgA2oQjwoMAQsgATUAACFKIBIgBUEIayIJNgIEIBIgAUEIajYCACAJQQNNBEAgA0KBygA3A+ADIANB4ANqEI8KDAELIAE1AAQhSyASIAVBDGsiCTYCBCASIAFBDGo2AgAgCUEDSw0CIANCgcoANwPgAyADQeADahCPCgshAiADQYADahDFBQsgFARAIBRBOGwhBSAQIQsDQCALEMUFIAtBOGohCyAFQThrIgUNAAsLIAMoAuQEIgFFDQYgAa1COH6nRQ0GIBAQrAEMBgsgFkEBayEWIEtCIIYgSoQhSiABNQAIIBIgBUEQazYCBCASIAFBEGo2AgAgA0HABWoiBUEIaiIGIAwpAgA3AwAgBUEQaiIIIBMpAgA3AwAgBUEYaiIJIA8pAgA3AwAgAyAjKQIANwPABSADIDUvAAA7AZgGIAMgES0AADoAmgYgATUADEIghoQhSyADKALkBCAURgRAIANB4ARqIBQQ3gUgAygC6AQhFCADKALgBCEQCyAQIBRBOGxqIgEgAjYCACABIAMpA8AFNwIEIAkpAwAhTSAIKQMAIU4gBikDACFPIAEgBzoAJCADLQCaBiEFIAMvAZgGIQIgASBKNwIoIAEgSzcCMCABIAI7ACUgAUEnaiAFOgAAIAFBDGogTzcCACABQRRqIE43AgAgAUEcaiBNNwIAIAMgFEEBaiIUNgLoBCAWDQALIAMoAuAEIRALIBANAgtBAUGMi8AAQZyEwAAQgQghAgwCCyADKALkAyECDAILIAMpAuQEIUogA0ECNgLMAiADICI2AsgCIEpCIIinIQogSqchEiBMpyEUIANB4ANqIANByAJqEKkCAkAgAygC4AMEQCADKALkAyECDAELAkACQCADKALkAyINBEAgA0HoA2opAwAhSiADKALMAiIBBEAgAyABQQFrNgLMAiADKALIAiICKAIEIgFBB00EQCADQoHKADcD4AMgA0HgA2oQjwohAgwECyACIAFBCGsiBjYCBCACIAIoAgAiAUEIajYCACADQYADaiABKQAAEPAFIAMoAoADBEAgAygChAMhAgwECwJAIAMoAoQDIhZBgCAgFkGAIEkbIgVFBEBBBCEIDAELIAVBFGwiAUEEEO4KIghFDR8LQQAhASADQQA2AugDIAMgBTYC5AMgAyAINgLgAyAWBEADQAJAAkACQAJAAkAgBgRAIAIgBkEBayIJNgIEIAIgAigCACIHQQFqNgIAIActAAAiBQ4CAgMBCyADQoHKADcDgAMgA0GAA2oQjwohAgwDC0EQQQQQ7goiAkUNIyACIAU6AAEgAkECOgAADAILQQAhBQsCQAJAAkAgCQRAIAIgCUEBayIJNgIEIAIgB0ECajYCACAHLQABIg4OAgIDAQsgA0KBygA3A4ADIANBgANqEI8KIQIMAwtBEEEEEO4KIgJFDSMgAiAOOgABIAJBAjoAAAwCC0EAIQ4LIAlBA00EQCADQoHKADcDgAMgA0GAA2oQjwohAgwBCyACIAlBBGsiBjYCBCACIAdBBmo2AgAgBkEDTQRAIANCgcoANwOAAyADQYADahCPCiECDAELIAcoAAIhCSACIAZBBGsiBjYCBCACIAdBCmo2AgAgBkEDTQRAIANCgcoANwOAAyADQYADahCPCiECDAELIAcoAAYhDyACIAZBBGsiBjYCBCACIAdBDmo2AgAgBkEDSw0BIANCgcoANwOAAyADQYADahCPCiECCyADKALkAyIBRQ0GIAGtQhR+p0UNBiADKALgAxCsAQwGCyAWQQFrIRYgBzUACiACIAZBBGsiBjYCBCACIAdBEmo2AgAgBzUADkIghoQhSyADKALkAyABRgRAIANB4ANqIAEQ3AUgAygC4AMhCCADKALoAyEBCyAIIAFBFGxqIgcgBToAECAHIEs3AgggByAPNgIEIAcgCTYCACAHQRFqIA46AAAgAyABQQFqIgE2AugDIBYNAAsgAygC4AMhCAsgCA0CC0EBQYyLwABBnITAABCBCCECDAILQQBBjIvAAEGchMAAEIEIIQIMAgsgAykC5AMiTachBSBKpyEWAkAgIigCBCIBQQhPBEAgIiABQQhrIgE2AgQgIiAiKAIAIgJBCGo2AgAgA0GAA2ogAikAABDwBSADKAKAAwRAIAMoAoQDIQIMAgsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMoAoQDIgZBgCAgBkGAIEkbIgdFBEBBBCEODAELIAdBDGwiAkEEEO4KIg5FDQELQQAhAiADQQA2AugDIAMgBzYC5AMgAyAONgLgAyAGBEADQAJAAn8gAUEDTQRAIANCgcoANwOAAyADQYADahCPCgwBCyAiIAFBBGsiATYCBCAiICIoAgAiB0EEajYCACABQQNNBEAgA0KBygA3A4ADIANBgANqEI8KDAELIAcoAAAhCSAiIAFBBGsiATYCBCAiIAdBCGo2AgAgAUEDSw0BIANCgcoANwOAAyADQYADahCPCgshAiADKALkAyIBRQ0UIAGtQgx+p0UNFCADKALgAxCsAQwUCyAGQQFrIQYgBzUABCAiIAFBBGsiATYCBCAiIAdBDGo2AgAgBzUACEIghoQhSyADKALkAyACRgRAIANB4ANqIAIQ1gUgAygC4AMhDiADKALoAyECCyAOIAJBDGxqIgcgSzcCBCAHIAk2AgAgAyACQQFqIgI2AugDIAYNAAsgAygC4AMhDgsgDkUEQEEAQayKwABBnITAABCBCCECDBILIANBlAJqIAMpAuQDNwIAIANBjAJqIE1CIIg+AgAgA0GIAmogBTYCACADQYQCaiAINgIAIANBgAJqIEpCIIg+AgAgA0H8AWogFjYCACADQfQBaiAKNgIAIANB8AFqIBI2AgAgA0HsAWogEDYCACADQegBaiBMQiCIPgIAIANB5AFqIBQ2AgAgAyAONgKQAiADIA02AvgBIAMgBDYC4AEgAyA8NgLcASADICo2AtgBAkAgAygCJCICBEAgAyACQQFrNgIkIAMoAiAhCiADQQE2AsQEIAMgCjYCwAQgCigCBCICQQdNBEAgA0KBygA3A+ADIANB4ANqEI8KIQIMEQsgCiACQQhrNgIEQQghAiAKIAooAgAiB0EIajYCACADQYADaiAHKQAAEPAFIAMoAoADBEAgAygChAMhAgwRCyADKAKEAyIHQYAgIAdBgCBJGyIIBEAgCEHgAmwiEkEIEO4KIgJFDQQLIANBADYC0AQgAyAINgLMBCADIAI2AsgEIAcEQCADQeADaiICQQRyIRogAkEIaiEXA0ACQAJAIAooAgQiDUEETwRAIAogDUEEayICNgIEIAogCigCACIIQQRqNgIAAkACQAJAIAgoAAAiEg4CAQIACyADQQE6AOADIAMgEq03A+gDIANB4ANqQZSIwABBnITAABCeCCECDBYLAkACQCACBEAgCiANQQVrIh02AgQgCiAIQQVqNgIAQQAhHEEAIRsgCC0ABCIZDgIGAgELIANCgcoANwPgAyADQeADahCPCiECDBcLQRBBBBDuCiICRQ01IAIgGTYCBCACQQQ6AAAMFgsgHUEETwRAIAogDUEJazYCBCAKIAhBCWo2AgAgCCgABSEpQQEhGwwECyADQoHKADcD4AMgA0HgA2oQjwohAgwVCyACQQNNBEAgA0KBygA3A+ADIANB4ANqEI8KIQIMFQsgCiANQQhrNgIEIAogCEEIajYCACAIKAAEIRsgA0HgA2ogChCHBSADKALkAyECIAMoAuADDRQgA0GAA2oiBEEQaiILIBdBEGoiASkCADcDACAEQQhqIgggF0EIaiIEKQIANwMAIAMgFykCADcDgAMgA0HgA2ogChCHBSADKALkAyEWIAMoAuADBEAgFiECDBULIANBmAZqIgVBEGoiHCABKQIANwMAIAVBCGoiHSAEKQIANwMAIANBsAZqIgVBCGoiGSAIKQMANwMAIAVBEGoiKSALKQMANwMAIAMgFykCADcDmAYgAyADKQOAAzcDsAYgCigCBCIFRQRAIANCgcoANwPgAyADQeADahCPCiECDBULIAogBUEBazYCBCAKIAooAgAiBUEBajYCACAFLQAAIRAgA0HgA2ogChCuBCADKALkAyEFIAMoAuADBEAgBSECDBULIANBgANqIglBIGoiDyAXQSBqKQIANwMAIAlBGGoiESAXQRhqKQIANwMAIAsgASkCADcDACAIIAQpAgA3AwAgAyAXKQIANwOAAwJAAkACQCAKKAIEIgEEQCAKIAFBAWs2AgQgCiAKKAIAIgFBAWo2AgBBACESIAEtAAAiAQ4CAwIBCyADQoHKADcD4AMgA0HgA2oQjwohAgwXC0EQQQQQ7goiAkUNNSACIAE2AgQgAkEEOgAADBYLIANB4ANqIAoQrgQgAygC4AMNCkEsQQQQ7goiEkUNPiASIBopAgA3AgAgEkEoaiAaQShqKAIANgIAIBJBIGogGkEgaikCADcCACASQRhqIBpBGGopAgA3AgAgEkEQaiAaQRBqKQIANwIAIBJB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QeADahCPCiEBDBMLIAogDUEEayIUNgIEIAogCigCACIIQQRqNgIAIBRBA00EQCADQoHKADcD4AMgA0HgA2oQjwohAQwTCyAIKAAAIS4gCiANQQhrIhQ2AgQgCiAIQQhqNgIAIBRBA00EQCADQoHKADcD4AMgA0HgA2oQjwohAQwTCyAIKgAEIXMgCiANQQxrIhQ2AgQgCiAIQQxqNgIAAkACQAJAIBQEQCAIKgAIIXQgCiANQQ1rIhQ2AgQgCiAIQQ1qNgIAIAgtAAwiLw4CAgMBCyADQoHKADcD4AMgA0HgA2oQjwohAQwVC0EQQQQQ7goiAUUNNSABIC86AAEgAUECOgAADBQLQQAhLwsgFEEDTQRAIANCgcoANwPgAyADQeADahCPCiEBDBMLIAogDUERayIUNgIEIAogCEERajYCACAUQQRJDQ4gCCgADSE2IAogDUEVayIUNgIEIAogCEEVajYCACAIKAARIjBBBE8EQCADQQE6AOADIAMgMK03A+gDIANB4ANqQYyPwABBnITAABCeCCEBDBMLIBRFBEAgA0KBygA3A+ADIANB4ANqEI8KIQEMEwsgCiANQRZrIhQ2AgQgCiAIQRZqNgIAIBRBD0sNASADQoHKADcD4AMgA0HgA2oQjwohAQwSCyADQoHKADcD4AMgA0HgA2oQjwohAgwTCyBKpyEUIFGnITggUKchOSBSpyE3IAgtABUhLSAKIA1BJms2AgQgCiAIQSZqNgIAIANBgAZqIg1BCGogGSkDADcDACANQRBqICkpAwA3AwAgA0HoBWoiDUEIaiAdKQMANwMAIA1BEGogHCkDADcDACADQcAFaiINQQhqICIpAwA3AwAgDUEQaiAjKQMANwMAIA1BGGogKikDADcDACANQSBqICwpAwA3AwAgAyADKQOwBjcDgAYgAyADKQOYBjcD6AUgAyADKQPIAjcDwAUgCEEeaikAACJRQiCGIAgpABYiUEIgiIQhSiBRQiCIIVEgUKchKUEBIRwLIAdBAWshByADQaAFaiIIQRBqIiIgA0GABmoiDUEQaikDADcDACAIQQhqIiMgDUEIaikDADcDACADQYgFaiIIQQhqIiogA0HoBWoiDUEIaikDADcDACAIQRBqIiwgDUEQaikDADcDACADQeAEaiIIQQhqIjUgA0HABWoiDUEIaikDADcDACAI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ACACQeALaiQAAkACQAJ/IAMoAuADRQRAICEoAgAiAUECRw0CQQdBmMDAAEGchMAAEIEIDAELIAMoAuQDCyEBIBVBATYCACAVIAE2AgQMAQsgA0GYA2ogA0HgA2oiB0EcaigCADYCACADQZADaiADQfQDaiIkKQIANwMAIANBiANqIANB7ANqKQIANwMAIANBoANqIANBhARqKQIANwMAIANBqANqIANBjARqKQIANwMAIANBsANqIANBlARqKQIANwMAIANBuANqIANBnARqKQIANwMAIANBwANqIANBpARqKQIANwMAIANByANqIANBrARqKAIANgIAIAMgAykC5AM3A4ADIANBnANqIAE2AgBBACELQQAhAkEAIRBBACEJQQAhBUEAIRZCACFKQgAhS0IAIUxBACEOQQAhIUEAIQ1BACEcQQAhE0EAIRdBACEUQQAhGkEAISJBACEbQgAhT0EAIR1BACEgQQAhKUEAIS5BACEvQQAhOEEAITBBACE5QgAhTUIAIVBCACFRQgAhVUIAIVZCACFUQQAhK0EAITZBACEtQQAhM0EAITcjAEHwDWsiBiQAIAcCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgA0EgaiIBKAIEIgRFBEAgB0EUakECNgIADAELIAEgBEEBazYCBCABKAIAIQggBkEDNgIEIAYgCDYCACAIKAIEIgFBB00EQCAGQoHKADcDqAsgBkGoC2oQjwohBAwmCyAIIAFBCGs2AgQgCCAIKAIAIgFBCGo2AgAgBkGwB2ogASkAABDwBSAGKAKwBwRAIAYoArQHIQQMJgsCQCAGKAK0ByIKQYAgIApBgCBJGyIPRQRAQQQhBAwBCyAPQZgCbCIBQQQQ7goiBEUNWAsgBkEANgIQIAYgDzYCDCAGIAQ2AggCQAJAIAoEQCAGQagLaiIBQQhqIR8gAUEMaiESIAZBwwhqISogBkHbCGohLCAGQcUMaiElA0AgCCgCBCIEQQRJDQIgCCAEQQRrIg82AgQgCCAIKAIAIgFBBGo2AgACQAJAAkACQCABKAAAIhEOAgECAAsgBkEBOgCoCyAGIBGtNwOwCyAGQagLakGUiMAAQZyEwAAQngghBAwrCwJA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Qf////8BcSECAkACQAJAIApBA3QiCwRAIAtBAXYiAUEEEO4KIhENASABQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgA0EANgJYIAMgAjYCVEEEIREgA0EENgJQIANBADYCaCADQgQ3A2BBBCEHDAELIANBADYCWCADIBE2AlAgAyACNgJUIAKtIhdCGH4iGEIgiKciAQ0CIBinIgZBAEgNAiABRUECdCEHIAYEfyAGIAcQ7goFIAcLIgFFDQMgAyACNgJkIAMgATYCYAJAIAtBCUkNACACQQFrIgdBA3EhBCACQQJrQQNPBEAgB0F8cSEFA0AgAUL////79///v/8ANwIAIAFB2ABqQv////v///+/fzcCACABQdAAakL////79///v383AgAgAUHIAGpC////+/f//7//ADcCACABQUBrQv////v///+/fzcCACABQThqQv////v3//+/fzcCACABQTBqQv////v3//+//wA3AgAgAUEoakL////7////v383AgAgAUEgakL////79///v383AgAgAUEYakL////79///v/8ANwIAIAFBEGpC////+////79/NwIAIAFBCGpC////+/f//79/NwIAIAFB4ABqIQEgBUEEayIFDQALCyAERQ0AA0AgAUL////79///v/8ANwIAIAFBEGpC////+////79/NwIAIAFBCGpC////+/f//79/NwIAIAFBGGohASAEQQFrIgQNAAsLIAFC////+/f//79/NwIIIAFC////+/f//7//ADcCACABQRBqQv////v///+/fzcCACADIAI2AmggF0IMfiIXQiCIpyIBDQIgF6ciBkEASA0CIAFFQQJ0IQEgBgR/IAYgARDuCgUgAQsiB0UNASAHIQECQCALQQlJDQAgAkEBayIBQQNxIQQCQCACQQJrQQNJBEAgByEBDAELIAFBfHEhBSAHIQEDQCABQX82AgAgAUEsakF/NgIAIAFBKGpBADoAACABQSBqQn83AgAgAUEcakEAOgAAIAFBFGpCfzcCACABQRBqQQA6AAAgAUEIakJ/NwIAIAFBBGpBADoAACABQTBqIQEgBUEEayIFDQALCyAERQ0AA0AgAUF/NgIAIAFBCGpBfzYCACABQQRqQQA6AAAgAUEMaiEBIARBAWsiBA0ACwsgAUF/NgIIIAFBADoABCABQX82AgAgAiEGCyADIAY2AkQgAyACNgJAIAMgBzYCPAJAAkACQAJAAkAgCyAMaiIUIAxGBEBBACEBDAELIANBPGohFUEAIQQgDCEQA0ACQAJAIA8oAggiASAQKAIAIgJLBEAgECgCBCIIIAFPDQEgBEEBaiELIAJBDGwgDygCACICaiIBKgIIIRsgASoCBCEcIAEqAgAhHSACIAhBDGxqIgEqAgQhHiABKgIAIR8gASoCCCEgIAQgBkkNAiALIAYiAmshCCAIIAMoAkAgAmtLBEAgFSAGIAgQ5wUgAygCPCEHIAMoAkQhAgsgByACQQxsaiEBIAhBAk8EQCAEIAZrIgVBA3EgBCAGQX9zakEDTwRAIAVBfHEhBQNAIAFBfzYCACABQSxqQX82AgAgAUEoakEAOgAAIAFBIGpCfzcCACABQRxqQQA6AAAgAUEUakJ/NwIAIAFBEGpBADoAACABQQhqQn83AgAgAUEEakEAOgAAIAFBMGohASAFQQRrIgUNAAsLBEAgEiAGa0EDcSEFA0AgAUF/NgIAIAFBCGpBfzYCACABQQRqQQA6AAAgAUEMaiEBIAVBAWsiBQ0ACwsgAiAIakEBayECCyADIAgEfyABQX82AgggAUEAOgAEIAFBfzYCACACQQFqBSACCyIGNgJEIAMCfyALIAMoAmgiCCAESw0AGiALIAgiAmshDiAOIAMoAmQgAmtLBEAgA0HgAGogCCAOEO0FIAMoAmghAgsgAygCYCACQRhsaiEBIA5BAk8EQCAEIAhrIgVBA3EgBCAIQX9zakEDTwRAIAVBfHEhBQNAIAFC////+/f//7//ADcCACABQdgAakL////7////v383AgAgAUHQAGpC////+/f//79/NwIAIAFByABqQv////v3//+//wA3AgAgAUFAa0L////7////v383AgAgAUE4akL////79///v383AgAgAUEwakL////79///v/8ANwIAIAFBKGpC////+////79/NwIAIAFBIGpC////+/f//79/NwIAIAFBGGpC////+/f//7//ADcCACABQRBqQv////v///+/fzcCACABQQhqQv////v3//+/fzcCACABQeAAaiEBIAVBBGsiBQ0ACwsEQCASIAhrQQNxIQUDQCABQv////v3//+//wA3AgAgAUEQakL////7////v383AgAgAUEIakL////79///v383AgAgAUEYaiEBIAVBAWsiBQ0ACwsgAiAOakEBayECCyACIA5FDQAaIAFC////+/f//79/NwIIIAFC////+/f//7//ADcCACABQRBqQv////v///+/fzcCACACQQFqCzYCaAwCCyACIAFB5K/CABCvCAALIAggAUH0r8IAEK8IAAsgBCAGTw0DIAcgBEEMbGogBDYCCCADKAJoIgEgBE0NBCAQQQhqIRAgAygCYCAEQRhsaiIBIB0gHyAdIBxDAAAAAJQiI5IgG0MAAAAAlCIhkiAfIB5DAAAAAJQiJJIgIEMAAAAAlCIikl4bOAIMIAEgGyAgIB1DAAAAAJQiJSAjkiInIBuTIB9DAAAAAJQiJiAkkiIoICCTXhs4AgggASAcIB4gJSAckyAhkiAmIB6TICKSXhs4AgQgASAdIB8gIyAdkyAhkiAkIB+TICKSXhs4AgAgAUEUaiAbICAgGyAnkiAgICiSXhs4AgAgAUEQaiAcIB4gJSAckiAhkiAmIB6SICKSXhs4AgAgAygCWCIBIAMoAlRGBEAgA0HQAGogARCLBiADKAJQIREgAygCWCEBCyARIAFBAnRqIAQ2AgAgAyABQQFqNgJYIBJBAWohEiALIQQgECAURw0ACyADKAIkIgEgAygCKCIERw0BCyADQSBqIAEQjAYgAygCKCEECyADKAIgIARBB3RqIgFBATYCYCABQv////v///+/fzcDMCABQv////v3//+//wA3AyAgAUL////79///v/8ANwMQIAFC////+/f//7//ADcDCCABQv////v3//+//wA3AwAgAUEAOwF4IAFB2ABqQv////v///+/fzcDACABQdAAakL////7////v383AwAgAUHIAGpC////+////79/NwMAIAFBQGtC////+////79/NwMAIAFBOGpC////+////79/NwMAIAFBKGpC////+/f//7//ADcDACABQRhqQv////v3//+//wA3AwAgAUHsAGpCfzcCACABQeQAakJ/NwIAIAFB9ABqQQA6AAAgAyAEQQFqNgIoIANB8ABqIgEgA0EIaiADQc8AaiADKAJQIgIgAygCWCADQeAAakEAQQAQOSADIAFBGGoqAgAiGzgCHCADIAFBFGoqAgAiHDgCGCADIANBgAFqKgIAIh04AhQgAyADQfwAaioCACIeOAIQIAMgA0H4AGoqAgAiHzgCDCADIAMqAnQiIDgCCCADKAIoRQ0CIAMoAiAiASAdOAIwIAEgHjgCICABIB84AhAgAUH////7BzYCDCABQv////v3//+//wA3AgQgASAgOAIAIAFB3ABqQf///3s2AgAgAUHUAGpC////+////79/NwIAIAFB0ABqIBs4AgAgAUHMAGpB////ezYCACABQcQAakL////7////v383AgAgAUFAayAcOAIAIAFBPGpB////ezYCACABQTRqQv////v///+/fzcCACABQSxqQf////sHNgIAIAFBJGpC////+/f//7//ADcCACABQRxqQf////sHNgIAIAFBFGpC////+/f//7//ADcCAAJAIAMoAmQiAUUNACABrUIYfqdFDQAgAygCYBCsAQsCQCADKAJUIgFFDQAgAUECdEUNACACEKwBCyAJIAMpAwg3AgAgCUE4aiADQQhqIgFBOGopAwA3AgAgCUEwaiABQTBqKQMANwIAIAlBKGogAUEoaikDADcCACAJQSBqIAFBIGopAwA3AgAgCUEYaiABQRhqKQMANwIAIAlBEGogAUEQaikDADcCACAJQQhqIAFBCGopAwA3AgAgCSAPKQIANwJAIAlByABqIA9BCGooAgA2AgAgCUHUAGogCjYCACAJQdAAaiATNgIAIAkgDDYCTCADQZABaiQADAcLIAQgBkHogsIAEK8IAAsgBCABQfiCwgAQrwgAC0EAQQBB2ILCABCvCAALIAYgAUHc5sMAKAIAIgBBjwcgABsRAAAACxDfCQALIAYgB0Hc5sMAKAIAIgBBjwcgABsRAAAAC0EgQQRB3ObDACgCACIAQY8HIAAbEQAAAAtB4ABBBBDuCiIBRQRAQeAAQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgAUEIaiANQQhqQdgAENkLGiABQoGAgIAQNwIAIABBsMHCADYCBCAAIAE2AgAgDUGAAWokAAucAQIBfwR9IwBBIGsiBSQAIAUgASACIAMQNiAFKAIMIQECQCACKgIAIAUqAgAiCJMiBiAGlCACQQRqKgIAIAUqAgQiBpMiByAHlJIgAkEIaioCACAFKgIIIgeTIgkgCZSSQwAAAACSEH0gBF5FBEAgACABNgIMIAAgBzgCCCAAIAY4AgQgACAIOAIADAELIABBAjoA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AgAhCiARQQhqKAIAIgQEQCAEQQNuIgEgBCABQQNsR2oiCwRAIAutQgx+IhtCIIinIgANBCAbpyIDQQBIDQQgAEVBAnQhASADBH8gAyABEO4KBSABCyIARQ0FCyAAIQEgCiEDA0AgBEEDIARBA0kbIgZBAUYNBiAGQQJNDQcgASADKAIANgIAIAFBBGogAykCBDcCACABQQxqIQEgDEEBaiEMIAMgBkECdGohAyAEIAZrIgQNAAsLIAggCTYCGCAIIAU2AhQgCCACNgIQIAggDDYCKCAIIAs2AiQgCCAANgIgIAhBCGohFSMAQfABayIDJAAgA0HQAWoiAEEIaiAIQRBqIgFBCGooAgA2AgAgAyABKQIANwPQASADQeABaiIBQQhqIgIgCEEgaiIEQQhqKAIANgIAIAMgBCkCADcD4AEjAEEgayIJJAACQCACKAIABEBBIEEEEO4KIgIEQCADQQA6AMgBIANBADYCpAEgA0EANgKAASADQQA2AlggA0EQNgIYIANC////+/f//79/NwIIIANC////+/f//7//ADcCACADQSRqQgA3AgAgA0EcakIANwIAIAMgACkCADcCQCADIAEpAgA3AkwgA0E4akIANwIAIANBMGpCiICAgMAANwIAIANBLGogAjYCACADQRBqQv////v///+/fzcCACADQcgAaiAAQQhqKAIANgIAIANB1ABqIgAgAUEIaigCADYCACMAQaABayIEJAAgCUEIaiIYQQI2AgAgACgCACEZAkAgAygCgAEiAEUNAAJAIANBhAFqKAIAIgFFDQAgAUECdEUNACAAEKwBCwJAIANBkAFqKAIAIgBFDQAgAEECdEUNACADQYwBaigCABCsAQsgA0GcAWooAgAiAEUNACAAQQR0RQ0AIANBmAFqKAIAEKwBCyADQQA2AoABAkAgAygCWCIARQ0AAkAgA0HcAGooAgAiAUUNACABrUIMfqdFDQAgABCsAQsgA0HkAGooAgAiAARAIANB6ABqKAIAIABBAnRBBGprEKwBCyADQfgAaigCACIARQ0AIACtQhh+p0UNACADQfQAaigCABCsAQsgA0EANgJYAkAgAygCpAEiAEUNAAJAIANBqAFqKAIAIgFFDQAgAUECdEUNACAAEKwBCwJAIANBtAFqKAIAIgBFDQAgAEECdEUNACADQbABaigCABCsAQsgA0HAAWooAgAiAEUNACAAQQJ0RQ0AIANBvAFqKAIAEKwBCyADQQA2AqQBAkAgAy0AyAFBf3NBAHEiFkHwAHFFDQAgBEEwakEANgIAIARCBDcDKCAEQgA3AyAgBEGQksMANgIcIARBADYCGEEEIQFBBCEAAkACQAJAAkAgA0HIAGooAgAiBgRAIAatQgx+IhtCIIinIgANASAbpyIFQQBIDQEgAEVBAnQhAiAFBH8gBSACEO4KBSACCyIARQ0CCyAEQQA2AkAgBCAGNgI8IAQgADYCOAJAIANB1ABqKAIAIgUEQCAFrUIMfiIbQiCIpyIADQIgG6ciAkEASA0CIABFQQJ0IQAgAgR/IAIgABDuCgUgAAsiAUUNAQsgA0HMAGohCyAEIAU2AkwgBCABNgJIIARBADYCUAJ+QfDmwwApAwBQRQRAQYDnwwApAwAhHEH45sMAKQMADAELIARBCGoiAEICNwMIIABCATcDAEHw5sMAQgE3AwBBgOfDACAEKQMQIhw3AwAgBCkDCAshGyADQUBrIQwgBEHwAGpCADcDACAEQewAakGw+8EANgIAIAQgGzcDWEH45sMAIBtCAXw3AwAgBEEANgJoIAQgHDcDYCALKAIAIQIgBUUNBCACIAVBDGxqIRogDCgCACENDAMLIAIgAEHc5sMAKAIAIgBBjwcgABsRAAAACxDfCQALIAUgAkHc5sMAKAIAIgBBjwcgABsRAAAAC0EAIQUgAiEAAkACQAJAA0AgACgCACIOIAZPDQMgDSAOQQxsaiAEQRhqIARBOGoQkgEhDiAAQQRqKAIAIg8gBk8NAiANIA9BDGxqIARBGGogBEE4ahCSASEPIABBCGooAgAiECAGTw0BIA0gEEEMbGogBEEYaiAEQThqEJIBIRACQCAOIA9GDQAgDiAQRg0ACyAEKAJMIAVGBEAgBEHIAGogBRDoBSAEKAJQIQUgBCgCSCEBCyABIAVBDGxqIhcgEDYCCCAXIA82AgQgFyAONgIAIAQgBUEBaiIFNgJQIBogAEEMaiIARw0ACwwDCyAQIAZB/OHCABCvCAALIA8gBkHs4cIAEK8IAAsgDiAGQdzhwgAQrwgACwJAAkAgBCgCPCIBIAQoAkAiAEsEQCABrUIMfqchASAEKAI4IQYCQCAArUIMfqciDUUEQEEEIQUgAUUNASAGEKwBDAELIAYgAUEEIA0Q3QoiBUUNAgsgBCAANgI8IAQgBTYCOAsCQCADQcQAaigCACIARQ0AIACtQgx+p0UNACADQUBrKAIAEKwBCyAMIAQpAzg3AgAgDEEIaiAEQUBrKAIANgIAAkAgA0HQAGooAgAiAEUNACAArUIMfqdFDQAgAhCsAQsgCyAEKQNINwIAIAtBCGogBEHQAGooAgA2AgAgAygCWEUNASADEDUMAQsgDUEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAMoAoABBEAgBEH4AGogAyADKAKkAUEARxAzCwJAIAQoAmgiAEUNACAAIABBAWqtQgx+p0EHakF4cSIAakF3Rg0AIAQoAmwgAGsQrAELIAQoAhgiAARAIAQoAhwgAEECdEEEamsQrAELIAQoAiwiAEUNACAArUIUfqdFDQAgBCgCKBCsAQsgFgRAIBggA0EAEDMLIBZBCHEEQCADEDULIANB1ABqKAIAIBlHBEAgAxBVCyADQQA6AMgBIARBoAFqJAAgA0EgaigCAEUEQCADEFULIAlBIGokAAwCC0EgQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgCUEcakEANgIAIAlBwOzBADYCGCAJQgE3AgwgCUHU4MIANgIIIAlBCGpB3ODCABDgCQALQdQBQQQQ7goiAEUEQEHUAUEEQdzmwwAoAgAiAEGPByAAGxEAAAALIABBCGogA0HMARDZCxogAEKBgICAEDcCACAVQYzEwgA2AgQgFSAANgIAIANB8AFqJAAgCCgCDCEAIAgoAgghAQJAIBFBBGooAgAiAkUNACACQQJ0RQ0AIAoQrAELAkAgE0EEaigCACICRQ0AIAJBAnRFDQAgFBCsAQsgEiABNgIAIBIgADYCBCAIQTBqJAAMBgsgCiADQdzmwwAoAgAiAEGPByAAGxEAAAALQdSfwABBywBBiKHAABCyCgALEN8JAAsgAyABQdzmwwAoAgAiAEGPByAAGxEAAAALQQFBAUGEvsAAEK8IAAtBAkECQZS+wAAQrwgACyAHKAIMIQEgBygCCCECQQxBBBDuCiIARQRAQQxBBEHc5sMAKAIAIgBBjwcgABsRAAAACyAAIAI2AgQgAEEANgIAIAAgATYCCCAHQTBqJAAgAAt8AgF9AX8jAEEwayIEJAAgBEEIaiAAIAEgAhAsIAQtABQhACAEKgIIIAEqAgCTIgMgA5QgBCoCDCABQQRqKgIAkyIDIAOUkiAEKgIQIAFBCGoqAgCTIgMgA5SSQwAAAACSEH0hAyAEQTBqJAAgAyADIAOMIABBAUcbIAIbC3wCAX0BfyMAQTBrIgQkACAEQQhqIAAgASACEEEgBC0AFCEAIAQqAgggASoCAJMiAyADlCAEKgIMIAFBBGoqAgCTIgMgA5SSIAQqAhAgAUEIaioCAJMiAyADlJJDAAAAAJIQfSEDIARBMGokACADIAMgA4wgAEEBRxsgAhsLjgECAn8BfiMAQRBrIgMkAAJAAkAgAARAIAAoAgANASAAQX82AgAgA0EIaiIEIAG9IgVCIIg+AgQgBCAFPgIAIABBBGogAygCCCADKAIMEO0GIgRFDQIgBEGhAmogAkEARzoAACAAQQA2AgAgA0EQaiQADwsQzQsACxDOCwALQYC5wABBzQBBiLrAABDDCwALhgICAn8BfiMAQRBrIgQkAAJAAkAgAARAIAAoAgANASAAQX82AgAgBEEIaiIDIAG9IgVCIIg+AgQgAyAFPgIAIABBBGogBCgCCCAEKAIMEO0GIgNFDQIgAkEARyECAkACQCADQYACaioCAEMAAAAAXA0AIANBhAJqKgIAQwAAAABcDQAgA0GIAmoqAgBDAAAAAFsNAQsgA0IANwOAAiADQYgCakEANgIAIAJFDQAgA0HMAmotAAAEQCADIAMoAtACQQRyNgLQAgsgA0EAOgDMAiADQcgCakEANgIACyAAQQA2AgAgBEEQaiQADwsQzQsACxDOCwALQYC5wABBzQBBiLrAABDDCwALhgICAn8BfiMAQRBrIgQkAAJAAkAgAARAIAAoAgANASAAQX82AgAgBEEIaiIDIAG9IgVCIIg+AgQgAyAFPgIAIABBBGogBCgCCCAEKAIMEO0GIgNFDQIgAkEARyECAkACQCADQYwCaioCAEMAAAAAXA0AIANBkAJqKgIAQwAAAABcDQAgA0GUAmoqAgBDAAAAAFsNAQsgA0IANwKMAiADQZQCakEANgIAIAJFDQAgA0HMAmotAAAEQCADIAMoAtACQQRyNgLQAgsgA0EAOgDMAiADQcgCakEANgIACyAAQQA2AgAgBEEQaiQADwsQzQsACxDOCwALQYC5wABBzQBBiLrAABDDCwALqQECAn8BfiMAQRBrIgQkAAJAAkAgAARAIAAoAgANASAAQX82AgAgBEEIaiIDIAG9IgVCIIg+AgQgAyAFPgIAIABBBGogBCgCCCAEKAIMEO4GIgNFDQIgAkEARyICIAMtAJQBQQBHcwRAIAMgAjoAlAEgAyADKAIgQSByNgIgCyAAQQA2AgAgBEEQaiQADwsQzQsACxDOCwALQZi6wABBzABBnLvAABDDCwALkgEBAn8jAEEQayIBJAACQAJAIAAEQCAAKAIAQX9GDQEgAUEIaiICIABBDGooAgA2AgAgASAAKQIENwMAQRBBBBDuCiIARQ0CIABBADYCACAAIAEpAwA3AgQgAEEMaiACKAIANgIAIAFBEGokACAADwsQzQsACxDOCwALQRBBBEHc5sMAKAIAIgBBjwcgABsRAAAAC44BAgF/An0jAEEgayICJAAgASoCACIDIAOUIAFBBGoqAgAiAyADlJIQfSEDIAEqAggiBEMAAAAAYEUEQCACQRxqQQA2AgAgAkHA7MEANgIYIAJCATcCDCACQcj8wQA2AgggAkEIakG8/8EAEOAJAAsgAEEANgIIIABCADcCACAAIAMgBJI4AgwgAkEgaiQAC4cBAgJ/A30jAEEgayIFJAAgAUEIaiIGKgIAIQcgASoCACEIIAEqAgQhCSAFQRxqIAYoAgA2AgAgBSAHjDgCECAFIAmMOAIMIAUgCIw4AgggBSABKQIANwIUIAUgBUEIaiACIAMgBBCEAyAFKAIAIQEgACAFKgIEOAIEIAAgATYCACAFQSBqJAAL3wMDBX8BfQF+IwBBEGsiBSQAAkAgAQRAIAEoAgAiA0F/Rg0BIAEgA0EBajYCACAFQQhqIQYjAEFAaiIDJAAgA0E4aiIEIAK9IglCIIg+AgQgBCAJPgIAAkAgAUEEaiADKAI4IAMoAjwQgwkiBARAIANBMGogBBDXCQJAAkACQAJAAkACQAJAIAMoAjAgAygCNCgClAERBQBB/wFxDhAABgEGBgYGBgYGBgIDBgYEBgsgA0EIaiAEENcJIAMoAgggAygCDBCpCSIEDQQMBQsgA0EQaiAEENcJIAMoAhAgAygCFBCsCSIERQ0EIARBGGohBAwDCyADQRhqIAQQ1wkgAygCGCADKAIcELMJIgRFDQMgBEEEaiEEDAILIANBIGogBBDXCSADKAIgIAMoAiQQtAkiBEUNAiAEQQRqIQQMAQsgA0EoaiAEENcJIAMoAiggAygCLBC1CSIERQ0BIARBBGohBAsgBCoCACEIQQEhBwsgBiAIOAIEIAYgBzYCACADQUBrJAAMAQtBmLrAAEHMAEGMu8AAEMMLAAsgBSoCDCEIIAUoAgghAyABIAEoAgBBAWs2AgAgACAIQwAAAAAgAxs4AgQgACADQQBHNgIAIAVBEGokAA8LEM0LAAsQzgsAC/cDAwV/AX0BfiMAQRBrIgUkAAJAIAEEQCABKAIAIgNBf0YNASABIANBAWo2AgAgBUEIaiEHIwBBMGsiAyQAIANBKGoiBCACvSIJQiCIPgIEIAQgCT4CAAJAIAFBBGogAygCKCADKAIsEIMJIgQEQCADQSBqIAQQ1wkCQAJ9AkACQAJAAkAgAygCICADKAIkKAKUAREFAEH/AXFBAmsODgAFBQUFBQUFBQECBQUDBQsgAyAEENcJIAMoAgAgAygCBBCsCSIERQ0EQQEhBiAEKgIMIAQqAgCTIgggCJQgBEEQaioCACAEKgIEkyIIIAiUkiAEQRRqKgIAIAQqAgiTIgggCJSSQwAAAACSEH1DAAAAP5QhCAwECyADQQhqIAQQ1wkgAygCCCADKAIMELMJIgRFDQMgBCoCAAwCCyADQRBqIAQQ1wkgAygCECADKAIUELQJIgRFDQIgBCoCAAwBCyADQRhqIAQQ1wkgAygCGCADKAIcELUJIgRFDQEgBCoCAAshCEEBIQYLIAcgCDgCBCAHIAY2AgAgA0EwaiQADAELQZi6wABBzABBjLvAABDDCwALIAUqAgwhCCAFKAIIIQMgASABKAIAQQFrNgIAIAAgCEMAAAAAIAMbOAIEIAAgA0EARzYCACAFQRBqJAAPCxDNCwALEM4LAAubBAMHfwF9AX4jAEEQayIFJAACQCABBEAgASgCACIDQX9GDQEgASADQQFqNgIAIAVBCGohByMAQUBqIgMkACADQThqIgQgAr0iC0IgiD4CBCAEIAs+AgACQCABQQRqIAMoAjggAygCPBCDCSIEBEAgA0EwaiAEENcJAkACfwJAAkACQAJAAkAgAygCMCADKAI0KAKUAREFAEH/AXFBDWsOBQABAgMEBgsgA0EIaiAEENcJIAMoAgggAygCDBCwCSIERQ0FIARBDGoMBAsgA0EQaiAEENcJIAMoAhAgAygCFBCxCSIERQ0EIARBJGoMAwsgA0EYaiAEENcJIAMoAhggAygCHBC1CSIERQ0DIARBCGoMAgsgA0EgaiAEENcJIAMoAiAhBiADKAIkIQkjAEEQayIEJAAgBEEIaiAGIAkoAmARAAAgBCgCCCIGIAQoAgwoAgwRBgAhCyAEQRBqJAAgBkEAIAtCp4n7sY7sjonpAFEbIgRFDQIgBEEIagwBCyADQShqIAQQ1wkgAygCKCADKAIsELYJIgRFDQEgBEHgAGoLKgIAIQpBASEICyAHIAo4AgQgByAINgIAIANBQGskAAwBC0GYusAAQcwAQYy7wAAQwwsACyAFKgIMIQogBSgCCCEDIAEgASgCAEEBazYCACAAIApDAAAAACADGzgCBCAAIANBAEc2AgAgBUEQaiQADwsQzQsACxDOCwALrQICBX8BfiMAQRBrIgUkAAJAIAEEQCABKAIAIgNBf0YNASABIANBAWo2AgAgBUEIaiEGIwBBIGsiAyQAIANBGGoiBCACvSIIQiCIPgIEIAQgCD4CAAJAIAFBBGogAygCGCADKAIcEIMJIgQEQCADQRBqIAQQ1wkCQCADKAIQIAMoAhQoApQBEQUAQf8BcUEIRw0AIANBCGogBBDXCSADKAIIIAMoAgwQrwkiBEUNACAEQQxqKAIAQQFrIQRBASEHCyAGIAQ2AgQgBiAHNgIAIANBIGokAAwBC0GYusAAQcwAQYy7wAAQwwsACyAFKAIMIQQgBSgCCCEDIAEgASgCAEEBazYCACAAIARBACADGzYCBCAAIANBAEc2AgAgBUEQaiQADwsQzQsACxDOCwALrQICBX8BfiMAQRBrIgUkAAJAIAEEQCABKAIAIgNBf0YNASABIANBAWo2AgAgBUEIaiEGIwBBIGsiAyQAIANBGGoiBCACvSIIQiCIPgIEIAQgCD4CAAJAIAFBBGogAygCGCADKAIcEIMJIgQEQCADQRBqIAQQ1wkCQCADKAIQIAMoAhQoApQBEQUAQf8BcUEIRw0AIANBCGogBBDXCSADKAIIIAMoAgwQrwkiBEUNACAEQRBqKAIAQQFrIQRBASEHCyAGIAQ2AgQgBiAHNgIAIANBIGokAAwBC0GYusAAQcwAQYy7wAAQwwsACyAFKAIMIQQgBSgCCCEDIAEgASgCAEEBazYCACAAIARBACADGzYCBCAAIANBAEc2AgAgBUEQaiQADwsQzQsACxDOCwALnQECBH8BfiMAQRBrIgAkABDAByECIAAQwAc2AgwgAEEMaigCACkDCCEEQSBBCBDuCiIBBEAgASACNgIYIAFCADcDECABIAQ3AwggAUKBgICAEDcDACAAKAIMIgMoAgAhAiADIAJBAWs2AgAgAkEBRgRAIAAoAgwQlQgLIABBEGokACABDwtBIEEIQdzmwwAoAgAiAEGPByAAGxEAAAALeQIBfQF/IwBBEGsiBCQAIAQgACABIAIQGyAEKgIAIAEqAgCTIgMgA5QgBCoCBCABQQRqKgIAkyIDIAOUkiAEKgIIIAFBCGoqAgCTIgMgA5SSQwAAAACSEH0hAyAELQAMIQAgBEEQaiQAIAMgAyADjCAAQQFHGyACGwt5AgF9AX8jAEEQayIEJAAgBCAAIAEgAhAdIAQqAgAgASoCAJMiAyADlCAEKgIEIAFBBGoqAgCTIgMgA5SSIAQqAgggAUEIaioCAJMiAyADlJJDAAAAAJIQfSEDIAQtAAwhACAEQRBqJAAgAyADIAOMIABBAUcbIAIbC3oCAX0BfyMAQRBrIgQkACAEIAAgASACEMwCIAQqAgAgASoCAJMiAyADlCAEKgIEIAFBBGoqAgCTIgMgA5SSIAQqAgggAUEIaioCAJMiAyADlJJDAAAAAJIQfSEDIAQtAAwhACAEQRBqJAAgAyADIAOMIABBAUcbIAIbC3kCAX0BfyMAQRBrIgQkACAEIAAgASACEB4gBCoCACABKgIAkyIDIAOUIAQqAgQgAUEEaioCAJMiAyADlJIgBCoCCCABQQhqKgIAkyIDIAOUkkMAAAAAkhB9IQMgBC0ADCEAIARBEGokACADIAMgA4wgAEEBRxsgAhsLeQIBfQF/IwBBEGsiBCQAIAQgACABIAIQHCAEKgIAIAEqAgCTIgMgA5QgBCoCBCABQQRqKgIAkyIDIAOUkiAEKgIIIAFBCGoqAgCTIgMgA5SSQwAAAACSEH0hAyAELQAMIQAgBEEQaiQAIAMgAyADjCAAQQFHGyACGwt5AgF9AX8jAEEQayIEJAAgBCAAIAEgAhA0IAQqAgAgASoCAJMiAyADlCAEKgIEIAFBBGoqAgCTIgMgA5SSIAQqAgggAUEIaioCAJMiAyADlJJDAAAAAJIQfSEDIAQtAAwhACAEQRBqJAAgAyADIAOMIABBAUcbIAIbC3oCAX0BfyMAQRBrIgQkACAEIAAgASACEI0CIAQqAgAgASoCAJMiAyADlCAEKgIEIAFBBGoqAgCTIgMgA5SSIAQqAgggAUEIaioCAJMiAyADlJJDAAAAAJIQfSEDIAQtAAwhACAEQRBqJAAgAyADIAOMIABBAUcbIAIbC3kCAX0BfyMAQRBrIgQkACAEIAAgASACEBogBCoCACABKgIAkyIDIAOUIAQqAgQgAUEEaioCAJMiAyADlJIgBCoCCCABQQhqKgIAkyIDIAOUkkMAAAAAkhB9IQMgBC0ADCEAIARBEGokACADIAMgA4wgAEEBRxsgAhsLeQIBfQF/IwBBEGsiBCQAIAQgACABIAIQGSAEKgIAIAEqAgCTIgMgA5QgBCoCBCABQQRqKgIAkyIDIAOUkiAEKgIIIAFBCGoqAgCTIgMgA5SSQwAAAACSEH0hAyAELQAMIQAgBEEQaiQAIAMgAyADjCAAQQFHGyACGwt5AgF9AX8jAEEgayIEJAAgBCAAIAEgAhA2IAQtAAwhACAEKgIAIAEqAgCTIgMgA5QgBCoCBCABQQRqKgIAkyIDIAOUkiAEKgIIIAFBCGoqAgCTIgMgA5SSQwAAAACSEH0hAyAEQSBqJAAgAyADIAOMIABBAUcbIAIbC3oCAX0BfyMAQRBrIgQkACAEIAAgASACEO0BIAQqAgAgASoCAJMiAyADlCAEKgIEIAFBBGoqAgCTIgMgA5SSIAQqAgggAUEIaioCAJMiAyADlJJDAAAAAJIQfSEDIAQtAAwhACAEQRBqJAAgAyADIAOMIABBAUcbIAIbC3gCAn8BfiMAQRBrIgMkAAJAIAAEQCAAKAIAIgJBf0YNASAAIAJBAWo2AgAgA0EIaiICIAG9IgRCIIg+AgQgAiAEPgIAIABBBGogAygCCCADKAIMEJsIIAAgACgCAEEBazYCACADQRBqJABBAEcPCxDNCwALEM4LAAunAQICfwF+IwBBEGsiBCQAAkACQCAABEAgACgCAA0BIABBfzYCACAEQQhqIgMgAb0iBUIgiD4CBCADIAU+AgAgAEEEaiAEKAIIIAQoAgwQ7QYiA0UNAiADLQDVAiACQf8BcUcEQCADIAI6ANUCIAMgAygC0AJBIHI2AtACCyAAQQA2AgAgBEEQaiQADwsQzQsACxDOCwALQYC5wABBzQBBiLrAABDDCwALrgECAn8BfiMAQRBrIgMkAAJAAkAgAARAIAAoAgANASAAQX82AgAgA0EIaiICIAG9IgRCIIg+AgQgAiAEPgIAIABBBGogAygCCCADKAIMEO0GIgJFDQIgAkHMAmotAAAEQCACIAIoAtACQQRyNgLQAgsgAkEAOgDMAiACQcgCakEANgIAIABBADYCACADQRBqJAAPCxDNCwALEM4LAAtBgLnAAEHNAEGIusAAEMMLAAuIAQICfwF+IwBBEGsiAyQAAkACQCAABEAgACgCAA0BIABBfzYCACADQQhqIgQgAb0iBUIgiD4CBCAEIAU+AgAgAEEEaiADKAIIIAMoAgwQ7QYiBEUNAiAEIAI4AtwBIABBADYCACADQRBqJAAPCxDNCwALEM4LAAtBgLnAAEHNAEGIusAAEMMLAAuIAQICfwF+IwBBEGsiAyQAAkACQCAABEAgACgCAA0BIABBfzYCACADQQhqIgQgAb0iBUIgiD4CBCAEIAU+AgAgAEEEaiADKAIIIAMoAgwQ7QYiBEUNAiAEIAI4AuABIABBADYCACADQRBqJAAPCxDNCwALEM4LAAtBgLnAAEHNAEGIusAAEMMLAAt4AgJ/AX4jAEEQayIDJAACQCAABEAgACgCACICQX9GDQEgACACQQFqNgIAIANBCGoiAiABvSIEQiCIPgIEIAIgBD4CACAAQQRqIAMoAgggAygCDBCCCSAAIAAoAgBBAWs2AgAgA0EQaiQAQQBHDwsQzQsACxDOCwALiwECAn8BfiMAQRBrIgMkAAJAAkAgAARAIAAoAgANASAAQX82AgAgA0EIaiIEIAG9IgVCIIg+AgQgBCAFPgIAIABBBGogAygCCCADKAIMEO4GIgRFDQIgBEHsAGogAjgCACAAQQA2AgAgA0EQaiQADwsQzQsACxDOCwALQZi6wABBzABBnLvAABDDCwALhwECAn8BfiMAQRBrIgMkAAJAAkAgAARAIAAoAgANASAAQX82AgAgA0EIaiIEIAG9IgVCIIg+AgQgBCAFPgIAIABBBGogAygCCCADKAIMEO4GIgRFDQIgBCACOAJoIABBADYCACADQRBqJAAPCxDNCwALEM4LAAtBmLrAAEHMAEGcu8AAEMMLAAt4AgJ/AX4jAEEQayIDJAACQCAABEAgACgCACICQX9GDQEgACACQQFqNgIAIANBCGoiAiABvSIEQiCIPgIEIAIgBD4CACAAQQRqIAMoAgggAygCDBCDCSAAIAAoAgBBAWs2AgAgA0EQaiQAQQBHDwsQzQsACxDOCwAL5QUCDH8BfiMAQSBrIgQkACAEIAE2AhggBCABNgIUIAQgADYCECAEQQhqIQojAEEQayIHJAAgBEEQaiILKAIAIQwCQAJAAkACQAJAIAsoAggiA0UEQEEEIQAMAQsCQCADQQNuIgAgAyAAQQNsR2oiCUUEQEEEIQAMAQsgCa1CDH4iD0IgiKciAA0CIA+nIgVBAEgNAiAARUECdCEBIAUEfyAFIAEQ7goFIAELIgBFDQMLA0AgA0ECTQ0EIAAgBmoiASAGIAxqIgUpAgA3AgAgAUEIaiAFQQhqKgIAOAIAIAZBDGohBiAIQQFqIQggA0EDayIDDQALCyAHQQhqIQUjAEGAAWsiASQAIAEgACAIEBYgAUHoAGogAUEIaigCACIINgIAIAEgASkDACIPNwNgIAFBEGooAgAhAyABQRRqKAIAIQ0gASgCDCEGIAFB8ABqIg5BCGogCDYCACABIA83A3AgASAOIAYgDRAoAkAgA0UNACADrUIMfqdFDQAgBhCsAQsCQAJAAkAgASgCAEUEQEEAIQMMAQtB7ABBBBDuCiIDRQ0BIANBCGogAUHgABDZCxogA0KBgICAEDcCACADIAI4AmgLIAVBvO/CADYCBCAFIAM2AgAgAUGAAWokAAwBC0HsAEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAcoAgwhASAHKAIIIQMCQCAJRQ0AIAmtQgx+p0UNACAAEKwBCwJAIAtBBGooAgAiAEUNACAAQQJ0RQ0AIAwQrAELIAogAzYCACAKIAE2AgQgB0EQaiQADAMLEN8JAAsgBSABQdzmwwAoAgAiAEGPByAAGxEAAAALQdSfwABBywBBiKHAABCyCgALAkACQCAEKAIIIgBFBEBBACEBDAELIAQoAgwhA0EMQQQQ7goiAUUNASABIAM2AgggASAANgIEIAFBADYCAAsgBEEgaiQAIAEPC0EMQQRB3ObDACgCACIAQY8HIAAbEQAAAAuFKgMPfwp9BX4jAEGwBGsiDCQAIwBB0AFrIgckACAHQcgBakLNmbP2g4CAwD83AwAgB0G4AWpCgICA/KOz5sw+NwMAIAdBsAFqQoCAgPyDgIDAPzcDACAHQagBakKAgID8AzcDACAHQaABakKAgID805mz5j43AwAgB0GQAWpCzZmz8oOAgMA/NwMAIAdBgAFqQs2Zs/aDgIDAPzcDACAHQfAAakLNmbP2g4CAwD83AwAgB0HgAGpCzZmz9oOAgMA/NwMAIAdB0ABqQs2Zs/aDgIDAPzcDACAHQUBrQs2Zs/aDgIDAPzcDACAHQTBqQpqz5vSDgIDAPzcDACAHQSBqQs2Zs/aDgIDAPzcDACAHQRBqQpqz5vSDgIDAPzcDACAHQoCA4JeEgIDAPzcDwAEgB0KAgID4g4CA+MIANwOYASAHQoCAgPyDgIDAPzcDiAEgB0KAgICAgICAwD83A3ggB0KAgNichICAwD83A2ggB0KAgICAgICAgD83A1ggB0KAgMCbhICAgD83A0ggB0KAgMCPhICAwD83AzggB0KAgICNhICAwD83AyggB0KAgMCPhICAwD83AxggB0KAgKidhICAwD83AwggB0KUgICA0AA3AwAgDEEIaiENIwBBgAFrIgQkACAHKAIAIQkCfkHw5sMAKQMAUEUEQEGA58MAKQMAIRtB+ObDACkDAAwBCyAEQRBqIgBCAjcDCCAAQgE3AwBB8ObDAEIBNwMAQYDnwwAgBCkDGCIbNwMAIAQpAxALIRogBEE4akIANwMAIARBNGpBoIfBADYCACAEIBo3AyBB+ObDACAaQgF8NwMAIARBADYCMCAEIBs3AyggBEGAgID4AzYCSCAEQoCAgPiDgICAPzcDQCAEQegAaiEBIARBQGshAwJAAkBB4ABBBBDuCiIABEAgAEKAgID4g4CAgD83AlggAEKAgID4g4CAgL9/NwJQIABCgICA+IOAgIA/NwJIIABCgICA+IuAgIA/NwJAIABCgICA+IOAgIA/NwI4IABCgICA+IuAgIC/fzcCMCAAQoCAgPiDgICAv383AiggAEKAgID4i4CAgL9/NwIgIABCgICA+IOAgIA/NwIYIABCgICA+IuAgIC/fzcCECAAQoCAgPiLgICAPzcCCCAAQoCAgPiLgICAv383AgBB4ABBBBDuCiIFRQ0CIAVCg4CAgPAANwJYIAVCgoCAgOAANwJQIAVCgYCAgNAANwJIIAVCgICAgMAANwJAIAVCh4CAgMAANwI4IAVChoCAgPAANwIwIAVChYCAgOAANwIoIAVChICAgNAANwIgIAVCAzcCGCAFQoKAgIAwNwIQIAVCgYCAgCA3AgggBUKAgICAEDcCACAAIAMqAgAiDyAPkiIPQwAAAL+UOAIAIABBBGogAyoCBCIQIBCSIhFDAAAAv5QiEjgCACAAQQhqIAMqAggiECAQkiIQQwAAAL+UOAIAIAAgD0MAAAA/lDgCDCAAQRBqIBI4AgAgAEEUaiIDIBAgAyoCAJQ4AgAgACAPIAAqAhiUOAIYIABBHGoiAyARIAMqAgCUOAIAIABBIGoiAyAQIAMqAgCUOAIAIAAgDyAAKgIklDgCJCAAQShqIgMgESADKgIAlDgCACAAQSxqIgMgECADKgIAlDgCACAAIA8gACoCMJQ4AjAgAEE0aiIDIBEgAyoCAJQ4AgAgAEE4aiIDIBAgAyoCAJQ4AgAgACAPIAAqAjyUOAI8IABBQGsiAyARIAMqAgCUOAIAIABBxABqIgMgECADKgIAlDgCACAAIA8gACoCSJQ4AkggAEHMAGoiAyARIAMqAgCUOAIAIABB0ABqIgMgECADKgIAlDgCACAAIA8gACoCVJQ4AlQgAEHYAGoiAyARIAMqAgCUOAIAIABB3ABqIgMgECADKgIAlDgCACABQRBqQoyAgIDAATcCACABIAU2AgwgAUKIgICAgAE3AgQgASAANgIADAELDAELIARB0ABqIARBIGpCubOiyqSW/7VPIAEQ6gECQCAEKAJQIgBFDQACQCAEKAJUIgVFDQAgBa1CDH6nRQ0AIAAQrAELIARB4ABqKAIAIgBFDQAgAEEDdEUNACAEQdwAaigCABCsAQsgBEGAgID4AzYCQCAEQegAaiELQwAAAAAhDyMAQTBrIgEkACAEQUBrKgIAIRhBACEAIAFBADYCGCABQgQ3AxAgAUEANgIoIAFCBDcDICAJBH9D2w/JQCAJs5UhECAJQQFrIQNBBCEFA0AgDxCrAUMAAAA/lCERIA8QqgFDAAAAP5QhEiAAIAJGBEAgAUEQaiACEOgFIAEoAhAhBSABKAIYIQALIAUgAEEMbGoiAiASOAIIIAJBADYCBCACIBE4AgAgASAAQQFqIgA2AhggAwRAIANBAWshAyAQIA+SIQ8gASgCFCECDAELC0MAAAAAIQ8gCSEFA0AgDxCrAUMAAAA/lCERIA8QqgFDAAAAP5QhEiABKAIUIABGBEAgAUEQaiAAEOgFIAEoAhghAAsgASgCECIDIABBDGxqIgIgEjgCCCACQQA2AgQgAiAROAIAIAEgAEEBaiIANgIYIBAgD5IhDyAFQQFrIgUNAAtDAAAAACEPIAkhBQNAIA8QqwFDAAAAP5QhESAPEKoBQwAAAD+UIRIgASgCFCAARgRAIAFBEGogABDoBSABKAIQIQMgASgCGCEACyADIABBDGxqIgIgEjgCCCACQQA2AgQgAiAROAIAIAEgAEEBaiIANgIYIBAgD5IhDyAFQQFrIgUNAAsgASgCEAVBBAshBQJAAkACQAJAIAlBAXQiAyAJTwRAIAAgA0kNASMAQRBrIgJDAAAAfzgCDCACKgIMGkPn6R0/EH0iDxCqASEQIA8QqwEhESAJBEAgCUEMbCIIIAVqIgIgCGohCCARQwAAgD+UIREgEEMAAIA/lCAPlSIQQwAAAACUIQ8gEEPbD0k/lCEQA0AgECACQQRqIgoqAgAiFpQgDyACKgIAIhWUIhOTIhIgEpIhEiATIBAgAkEIaiIGKgIAIhSUkyITIBOSIRMgBiAUIBEgEpQgECATlCAPIA8gFJQgDyAWlJMiFCAUkiIUlCIXk5KSQwAAAACSOAIAIAogFiARIBOUIBcgECASlJOSkkMAAAAAkjgCACACIBUgESAUlCAPIBKUIA8gE5STkpJDAAAAAJI4AgAgCCACQQxqIgJHDQALCyAJQQNsIgogA0kNAiAAIApJDQMjAEEQayIAQwAAAH84AgwgACoCDBpD5+kdPxB9Ig8QqgEhECAPEKsBIREgCQRAIAUgA0EMbGoiACAJQQxsaiECIBFDAACAP5QhESAQQwAAgD+UIA+VIg9D2w9JP5QhECAPQwAAAACUIQ8DQCAPIABBBGoiCCoCACITlCAPIAAqAgAiFpSTIhIgEpIhFCAQIBaUIA8gAEEIaiIGKgIAIhWUIheTIhIgEpIhEiAGIBUgESAUlCAPIBKUIA8gFyAQIBOUkyIVIBWSIhWUk5KSQwAAAACSOAIAIAggEyARIBKUIBAgFZQgDyAUlCITk5KSQwAAAACSOAIAIAAgFiARIBWUIBMgECASlJOSkkMAAAAAkjgCACACIABBDGoiAEcNAAsLAkACQCAJQQFrIgggASgCJCIAIAEoAigiAmtLBEAgAUEgaiACIAgQiAYgASgCKCECDAELIAhFDQELIAitIhpCA4MhGyABKAIgIAJBA3RqIQAgGkIBfUIDWgRAIBpC/P///w+DIRxCgICAgCAhGgNAIABBGGogGkKAgICAIHwgGUIDfIQ3AgAgAEEQaiAaQoCAgIAQfCAZQgJ8hDcCACAAQQhqIBogGUIBfIQ3AgAgACAaQoCAgIAQfSAZhDcCACAAQSBqIQAgGkKAgICAQH0hGiAcIBlCBHwiGVINAAsLIBtQRQRAIBlCIIZCgICAgBB8IRoDQCAAIBkgGoQ3AgAgGkKAgICAEHwhGiAAQQhqIQAgGUIBfCEZIBtCAX0iG0IAUg0ACwsgAiAIaiECIAEoAiQhAAsgASACNgIoIAAgAkYEQCABQSBqIAAQiQYgASgCKCECIAEoAiQhAAsgASgCICACQQN0aiAIrTcCACABIAJBAWoiAjYCKEEAIANBAWsiCCAJayIGIAYgCEsbIg4gACACa0sEQCABQSBqIAIgDhCIBiABKAIoIQILIAggCUsEQCABKAIgIAJBA3RqIQAgCK0iHCAJrSIZQn+FfCAcIBl9QgODIhtQRQRAIBlCIIZCgICAgBB8IRoDQCAAIBkgGoQ3AgAgGkKAgICAEHwhGiAAQQhqIQAgGUIBfCEZIBtCAX0iG0IAUg0ACwtCA1oEQCAZQiCGQoCAgIBAfSEaA0AgAEEYaiAaIBlCA3yENwIAIABBEGogGkKAgICAEH0gGUICfIQ3AgAgAEEIaiAaQoCAgIAgfSAZQgF8hDcCACAAIBpCgICAgDB9IBmENwIAIABBIGohACAaQoCAgIBAfSEaIBwgGUIEfCIZUg0ACwsgAiAGaiECCyABIAI2AiggAiABKAIkIgBGBEAgAUEgaiACEIkGIAEoAighAiABKAIkIQALIAEoAiAgAkEDdGogCK0gCa1CIIaENwIAIAEgAkEBaiICNgIoQQAgCkEBayIIIANrIgogCCAKSRsiBiAAIAJrSwRAIAFBIGogAiAGEIgGIAEoAighAgsgAyAISQRAIAEoAiAgAkEDdGohACAIrSIcIAOtIhlCf4V8IBwgGX1CA4MiG1BFBEAgGUIghkKAgICAEHwhGgNAIAAgGSAahDcCACAaQoCAgIAQfCEaIABBCGohACAZQgF8IRkgG0IBfSIbQgBSDQALC0IDWgRAIBlCIIZCgICAgEB9IRoDQCAAQRhqIBogGUIDfIQ3AgAgAEEQaiAaQoCAgIAQfSAZQgJ8hDcCACAAQQhqIBpCgICAgCB9IBlCAXyENwIAIAAgGkKAgICAMH0gGYQ3AgAgAEEgaiEAIBpCgICAgEB9IRogHCAZQgR8IhlSDQALCyACIApqIQILIAEgAjYCKCABKAIkIAJGBEAgAUEgaiACEIkGIAEoAighAgsgASgCICACQQN0aiAIrSADrUIghoQ3AgAgAUEIaiACQQFqIgA2AgAgASABKQMgIhk3AwAgASgCFCEIIAEoAhghAiABQShqIgogADYCACABIBk3AyACQCACQQxsIgNFDQAgGCAYkiEPIAUhACADQQxrIgZBDG5BAXFFBEAgBSAPIAUqAgCUOAIAIAVBBGoiACAPIAAqAgCUOAIAIAVBCGoiACAPIAAqAgCUOAIAIAVBDGohAAsgBkEMSQ0AIAMgBWohAwNAIAAgDyAAKgIAlDgCACAAQQRqIgYgDyAGKgIAlDgCACAAQQhqIgYgDyAGKgIAlDgCACAAQQxqIgYgDyAGKgIAlDgCACAAQRBqIgYgDyAGKgIAlDgCACAAQRRqIgYgDyAGKgIAlDgCACADIABBGGoiAEcNAAsLIAsgASkDIDcCDCALIAI2AgggCyAINgIEIAsgBTYCACALQRRqIAooAgA2AgAgAUEwaiQADAQLIAkgAxDXCwALIAMgABDWCwALIAMgChDXCwALIAogABDWCwALIARB0ABqIARBIGpC+eGls/3phs4XIAsQ6gECQCAEKAJQIgBFDQACQCAEKAJUIgVFDQAgBa1CDH6nRQ0AIAAQrAELIARB4ABqKAIAIgBFDQAgAEEDdEUNACAEQdwAaigCABCsAQsgBEEIaiIAQwAAAD84AgQgAEMAAAA/OAIAIAQgBCkDCDcDQCAEQegAaiECIwBBMGsiASQAIARBQGsiACoCBCEPIAAqAgAhEAJAQRhBBBDuCiIABEAgAEKAgID4AzcCECAAQgA3AgggAEKAgID4i4CAgL9/NwIAIAFCgoCAgCA3AhQgASAANgIQIAFBIGoiAEEIaiIDQQA2AgAgAUIENwMgQQFBuIbDAEEBIAkgAUEQaiAAEHAgAUEIaiADKAIAIgA2AgAgASABKQMgIhk3AwAgASgCFCEKIAEoAhAhBSABKAIYIQsgAyAANgIAIAEgGTcDIAJAIAtBDGwiCEUNACAQIBCSIRAgDyAPkiEPIAUhACAIQQxrIgZBDG5BAXFFBEAgBSAPIAUqAgCUOAIAIAVBBGoiACAQIAAqAgCUOAIAIAVBCGoiACAPIAAqAgCUOAIAIAVBDGohAAsgBkEMSQ0AIAUgCGohCANAIAAgDyAAKgIAlDgCACAAQQRqIgYgECAGKgIAlDgCACAAQQhqIgYgDyAGKgIAlDgCACAAQQxqIgYgDyAGKgIAlDgCACAAQRBqIgYgECAGKgIAlDgCACAAQRRqIgYgDyAGKgIAlDgCACAIIABBGGoiAEcNAAsLIAIgASkDIDcCDCACIAs2AgggAiAKNgIEIAIgBTYCACACQRRqIAMoAgA2AgAgAUEwaiQADAELQRhBBEHc5sMAKAIAIgBBjwcgABsRAAAACyAEQdAAaiAEQSBqQsn35qX9096NTiACEOoBAkAgBCgCUCIARQ0AAkAgBCgCVCIFRQ0AIAWtQgx+p0UNACAAEKwBCyAEQeAAaigCACIARQ0AIABBA3RFDQAgBEHcAGooAgAQrAELIARDAAAAPzgCBCAEQwAAAD84AgAgBCAEKQMANwNAIARB6ABqIgAgBEFAayAJEKYDIARB0ABqIARBIGpC2sDFiNb1nolJIAAQ6gECQCAEKAJQIgBFDQACQCAEKAJUIglFDQAgCa1CDH6nRQ0AIAAQrAELIARB4ABqKAIAIgBFDQAgAEEDdEUNACAEQdwAaigCABCsAQsgDUEgaiAHQdABENkLGiANQQ82AvABIA1BGGogBEEgaiIAQRhqKQMANwMAIA1BEGogAEEQaikDADcDACANQQhqIABBCGopAwA3AwAgDSAEKQMgNwMAIARBgAFqJAAgB0HQAWokACAMQZACakIANwMAIAxBiAJqQoCAgIDAADcDACAMQgQ3A4ACIAxBoAJqIA1BkAIQ2QsaQZgCQQgQ7goiAEUEQEGYAkEIQdzmwwAoAgAiAEGPByAAGxEAAAALIABBADYCACAAQQRqIAxBnAJqQZQCENkLGiAMQbAEaiQAIAAPC0HgAEEEQdzmwwAoAgAiAEGPByAAGxEAAAALegEHfSAAQgI3AhAgACABKgIAIgQgAioCACIFlCABQQRqKgIAIgYgAkEEaioCACIHlJIgAUEIaioCACIIIAJBCGoqAgAiCZSSIgNDAAAAAF86AAwgACAJIAggA5STOAIIIAAgByAGIAOUkzgCBCAAIAUgBCADlJM4AgALeAIBfQF/IwBBIGsiBCQAIAQgACABELgCIAQtAAwhACAEKgIAIAEqAgCTIgMgA5QgBCoCBCABQQRqKgIAkyIDIAOUkiAEKgIIIAFBCGoqAgCTIgMgA5SSQwAAAACSEH0hAyAEQSBqJAAgAyADIAOMIABBAUcbIAIbC7gBAgJ/AX4jAEEQayIDJAACQAJAIAAEQCAAKAIADQEgAEF/NgIAIANBCGoiAiABvSIEQiCIPgIEIAIgBD4CACAAQQRqIAMoAgggAygCDBDtBiICRQ0CIAJCADcCxAEgAkHIAmpBgICAgAQ2AgAgAkHMAmpBAToAACACQcwBakIANwIAIAJB1AFqQgA3AgAgAEEANgIAIANBEGokAA8LEM0LAAsQzgsAC0GAucAAQc0AQYi6wAAQwwsAC94FAgx/AX4jAEEgayIDJAAgAyABNgIYIAMgATYCFCADIAA2AhAgA0EIaiEJIwBBEGsiBiQAIANBEGoiCigCACELAkACQAJAAkACQCAKKAIIIgJFBEBBBCEADAELAkAgAkEDbiIAIAIgAEEDbEdqIghFBEBBBCEADAELIAitQgx+Ig5CIIinIgANAiAOpyIEQQBIDQIgAEVBAnQhASAEBH8gBCABEO4KBSABCyIARQ0DCwNAIAJBAk0NBCAAIAVqIgEgBSALaiIEKQIANwIAIAFBCGogBEEIaioCADgCACAFQQxqIQUgB0EBaiEHIAJBA2siAg0ACwsgBkEIaiEEIwBBgAFrIgEkACABIAAgBxAWIAFB6ABqIAFBCGooAgAiBzYCACABIAEpAwAiDjcDYCABQRBqKAIAIQIgAUEUaigCACEMIAEoAgwhBSABQfAAaiINQQhqIAc2AgAgASAONwNwIAEgDSAFIAwQKAJAIAJFDQAgAq1CDH6nRQ0AIAUQrAELAkACQAJAIAEoAgBFBEBBACECDAELQegAQQQQ7goiAkUNASACQQhqIAFB4AAQ2QsaIAJCgYCAgBA3AgALIARBsMnCADYCBCAEIAI2AgAgAUGAAWokAAwBC0HoAEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAYoAgwhASAGKAIIIQICQCAIRQ0AIAitQgx+p0UNACAAEKwBCwJAIApBBGooAgAiAEUNACAAQQJ0RQ0AIAsQrAELIAkgAjYCACAJIAE2AgQgBkEQaiQADAMLEN8JAAsgBCABQdzmwwAoAgAiAEGPByAAGxEAAAALQdSfwABBywBBiKHAABCyCgALAkACQCADKAIIIgBFBEBBACEBDAELIAMoAgwhAkEMQQQQ7goiAUUNASABIAI2AgggASAANgIEIAFBADYCAAsgA0EgaiQAIAEPC0EMQQRB3ObDACgCACIAQY8HIAAbEQAAAAt7AQF/IwBBQGoiAyQAIAMgAjYCFCADIAE2AhAgAyAANgIMIANBLGpBAjYCACADQTxqQQI2AgAgA0ICNwIcIANBrJzAADYCGCADQQE2AjQgAyADQTBqNgIoIAMgA0EQajYCOCADIANBDGo2AjAgA0EYahDkBiADQUBrJAALlAECAX8BfSABKgIkIQNBKEEEEO4KIgJFBEBBKEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAIgAzgCJCACIAEpAgA3AgAgAkEgaiABQSBqKAIANgIAIAJBGGogAUEYaikCADcCACACQRBqIAFBEGopAgA3AgAgAkEIaiABQQhqKQIANwIAIABB9OzCADYCBCAAIAI2AgALdwICfwN9IwBBIGsiAyQAIABBCGoiBCoCACEFIAAqAgAhBiAAKgIEIQcgA0EcaiAEKAIANgIAIAMgBYw4AhAgAyAHjDgCDCADIAaMOAIIIAMgACkCADcCFCADIANBCGogASACQQEQhAMgAygCACADQSBqJABBAUYLcgECfyMAQRBrIgIkAAJAIAAEQCAAKAIAIgFBf0YNASAAIAFBAWo2AgAgAiAAQYgCaigCACIBEBI2AgwgAkEMaiAAQYACaigCACABEJ8HIAIoAgwgACAAKAIAQQFrNgIAIAJBEGokAA8LEM0LAAsQzgsAC3IBAn8jAEEQayICJAACQCAABEAgACgCACIBQX9GDQEgACABQQFqNgIAIAIgAEGUAmooAgAiARASNgIMIAJBDGogAEGMAmooAgAgARCfByACKAIMIAAgACgCAEEBazYCACACQRBqJAAPCxDNCwALEM4LAAt0AQZ9IAEqAgAhAyACKgIAIgQgBJQgAkEEaioCACIFIAWUkiACQQhqKgIAIgYgBpSSQwAAAACSIgcQfSEIIABCAjcCECAAIAcgAyADlF86AAwgACAGIAMgCJUiA5Q4AgggACAFIAOU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QQQQ7goiAkUEQEEkQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgAiABKQIANwIAIAJBIGogAUEgaigCADYCACACQRhqIAFBGGopAgA3AgAgAkEQaiABQRBqKQIANwIAIAJBCGogAUEIaikCADcCACAAQbS7wgA2AgQgACACNgIAC3IBBH8jAEEgayICJABBASEDAkAgACABENwEDQAgAUEcaigCACEEIAEoAhggAkEcakEANgIAIAJB0KfDADYCGCACQgE3AgwgAkHYv8MANgIIIAQgAkEIahC1Ag0AIABBBGogARDcBCEDCyACQSBqJAAgAwtuAQF/IwBBMGsiAyQAIAMgAjYCBCADIAE2AgAgA0EcakECNgIAIANBLGpBAjYCACADQgI3AgwgA0GMnMAANgIIIANBAzYCJCADIAA2AiAgAyADQSBqNgIYIAMgAzYCKCADQQhqEOQGIANBMGokAAtfAgJ9AX8CQCABKgIAIgMgACoCACICjF0NACACIANdDQAgAUEEaioCACIDIAAqAgQiAoxdDQAgAiADXQ0AIAFBCGoqAgAiAiAAKgIIIgNeRSACIAOMXUF/c3EhBAsgBAvEAgEFfyMAQbABayIEJAACQCAABEAgACgCAA0BIABBADYCACAEQdgAaiICIABB1AAQ2QsaIARBCGoiASACQQRyQdAAENkLGiAAEKwBIAEoAgAiACgCACECIAAgAkEBazYCACACQQFGBEAgASgCACABQQRqKAIAEIoICwJAIAFBJGooAgAiAEUNACAAQQd0RQ0AIAFBIGooAgAQrAELIAFBOGooAgAhAyABQTRqKAIAIQICQAJAAkAgAUEsaigCACIAIAFBMGooAgAiBUsEQCAAIANNDQFB9JnAAEEjQcS1wAAQogkACyADIAVJDQELAkAgA0UNACADQQJ0RQ0AIAIQrAELAkAgAUFAaygCACIARQ0AIABBBHRFDQAgAUE8aigCABCsAQsMAQsgBSADENYLAAsgBEGwAWokAA8LEM0LAAsQzgsAC2sCAn8BfiMAQRBrIgMkAAJAIAAEQCAAKAIADQEgAEF/NgIAIANBCGoiBCABvSIFQiCIPgIEIAQgBT4CACAAQQRqIAMoAgggAygCDCACQQBHECEgAEEANgIAIANBEGokAA8LEM0LAAsQzgsAC2sCA38BfQJAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACAAKAIEIgNBnAFqKAIAIgQgAU0NAiADQZQBaigCACABQShsaioCECAAIAI2AgAPCxDNCwALEM4LAAsgASAEQZC9wAAQrwgAC2sCA38BfQJAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACAAKAIEIgNBnAFqKAIAIgQgAU0NAiADQZQBaigCACABQShsaioCFCAAIAI2AgAPCxDNCwALEM4LAAsgASAEQaC9wAAQrwgAC2ABAn8jAEEgayICJAAgACgCACEDIAJBCGoiACABQaTDwAAQgQogAiADNgIYIAIgA0EEajYCHCAAIAJBGGpBkNLAABDhBCAAIAJBHGpBkNLAABDhBCAAELIHIAJBIGokAAtrACAAQgA3AhwgACABKQIANwIAIABBJGpCADcCACAAQSxqQgA3AgAgAEE0akIANwIAIABBPGpBADYCACAAQRhqIAFBGGooAgA2AgAgAEEQaiABQRBqKQIANwIAIABBCGogAUEIaikCADcCAAtsAgJ/An1DAACgQCEEQwAAoEBDAACAPyAAQR91IgEgAGogAXMiAUEBcRshAyABQQJPBEADQCADIAQgBJQiBEMAAIA/IAFBAnEblCEDIAFBA0sgAUEBdiEBDQALC0MAAIA/IAOVIAMgAEEASBsLcQIEfwF8IwBBEGsiASQAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACAAKAIEIgIoAgAhAyABQQhqIgQgAigCBDYCBCAEIAM2AgAgASsDCCAAIAAoAgBBAWs2AgAgAUEQaiQADwsQzQsACxDOCwALbwIDfwF8IwBBEGsiASQAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACAAKAIEIQIgAUEIaiIDIABBCGooAgA2AgQgAyACNgIAIAErAwggACAAKAIAQQFrNgIAIAFBEGokAA8LEM0LAAsQzgsAC9QBACAAQv////v///+/fzcDMCAAQv////v3//+//wA3AyAgAEL////79///v/8ANwMQIABC////+/f//7//ADcDCCAAQv////v3//+//wA3AwAgAEHYAGpC////+////79/NwMAIABB0ABqQv////v///+/fzcDACAAQcgAakL////7////v383AwAgAEFAa0L////7////v383AwAgAEE4akL////7////v383AwAgAEEoakL////79///v/8ANwMAIABBGGpC////+/f//7//ADcDAAtpAQJ/IwBBIGsiAiQAIAIgATYCBEEBIQMCQCAAKAIAIAFGDQBBAiEDIAAoAgQgAUYNAEEAIQMgACgCCCABRg0AIAJBADYCCCAAQQhqIAJBBGogAkEIakGwmMIAELYIAAsgAkEgaiQAIAMLYQIBfQJ/AkAgAARAIAAoAgAiA0F/Rg0BIAAgA0EBajYCACABIAAoAgQiBEGcAWooAgBJBEAgBEGUAWooAgAgAUEobGpBDGoqAgAhAgsgACADNgIAIAIPCxDNCwALEM4LAAtpACAAQgA3AgAgAEIANwIwIABCADcCQCAAQShqQgA3AgAgAEEgakIANwIAIABBGGpCADcCACAAQRBqQgA3AgAgAEEIakIANwIAIABBOGpCADcCACAAQcgAakIANwIAIABB0ABqQgA3AgALcAEBfyMAQTBrIgIkACACIAE2AgQgAiAANgIAIAJBHGpBAjYCACACQSxqQQE2AgAgAkIDNwIMIAJB4KbDADYCCCACQQE2AiQgAiACQSBqNgIYIAIgAkEEajYCKCACIAI2AiAgAkEIakGUp8MAEOAJAAttAQF/IwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBATYCACADQgM3AgwgA0G4p8MANgIIIANBATYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIAIQ4AkAC20BAX8jAEEwayIDJAAgAyABNgIEIAMgADYCACADQRxqQQI2AgAgA0EsakEBNgIAIANCAjcCDCADQaDAwwA2AgggA0EBNgIkIAMgA0EgajYCGCADIAM2AiggAyADQQRqNgIgIANBCGogAhDgCQALWQEDfyMAQSBrIgIkACABQRxqKAIAIQMgASgCGCACQQhqIgFBEGogAEEQaikCADcDACABQQhqIABBCGopAgA3AwAgAiAAKQIANwMIIAMgARC1AiACQSBqJAALWQEDfyMAQSBrIgIkACAAQRxqKAIAIQMgACgCGCACQQhqIgBBEGogAUEQaikCADcDACAAQQhqIAFBCGopAgA3AwAgAiABKQIANwMIIAMgABC1AiACQSBqJAALZQEBfyMAQSBrIgQkACAEIAE2AgQgBCAANgIAIARBCGoiAEEQaiACQRBqKQIANwMAIABBCGogAkEIaikCADcDACAEIAIpAgA3AwhBACAEQYDSwAAgBEEEakGA0sAAIAAgAxCeBAALZQEBfyMAQSBrIgQkACAEIAE2AgQgBCAANgIAIARBCGoiAEEQaiACQRBqKQIANwMAIABBCGogAkEIaikCADcDACAEIAIpAgA3AwhBACAEQZDSwAAgBEEEakGQ0sAAIAAgAxCeBAALZQEBfyMAQSBrIgUkACAFIAI2AgQgBSABNgIAIAVBCGoiAUEQaiADQRBqKQIANwMAIAFBCGogA0EIaikCADcDACAFIAMpAgA3AwggACAFQaDSwAAgBUEEakGg0sAAIAEgBBCeBAALWQECfyMAQSBrIgIkACACQQhqIgMgAUGkw8AAEIEKIAIgADYCGCACIABBBGo2AhwgAyACQRhqQZDSwAAQ4QQgAyACQRxqQZDSwAAQ4QQgAxCyByACQSBqJAALZQEBfyMAQSBrIgQkACAEIAE2AgQgBCAANgIAIARBCGoiAEEQaiACQRBqKQIANwMAIABBCGogAkEIaikCADcDACAEIAIpAgA3AwhBACAEQcTvwQAgBEEEakHE78EAIAAgAxCeBAALWQECfyMAQSBrIgIkACACQQhqIgMgAUHA7MEAEIEKIAIgADYCGCACIABBBGo2AhwgAyACQRhqQcTvwQAQ4QQgAyACQRxqQcTvwQAQ4QQgAxCyByACQSBqJAALawEBfyMAQSBrIgIkACACQbybwwA2AgQgAiAANgIAIAJBCGoiAEEQaiABQRBqKQIANwMAIABBCGogAUEIaikCADcDACACIAEpAgA3AwhBACACQcCZwwAgAkEEakHAmcMAIABBiKHDABCeBAALaAEBfyMAQSBrIgMkACADQcCbwwA2AgQgAyAANgIAIANBCGoiAEEQaiABQRBqKQIANwMAIABBCGogAUEIaikCADcDACADIAEpAgA3AwhBACADQbCZwwAgA0EEakGwmcMAIAAgAhCeBAALXAEBfyMAQSBrIgIkACACIAAoAgA2AgQgAkEIaiIAQRBqIAFBEGopAgA3AwAgAEEIaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQdyZwAAgABC1AiACQSBqJAALXwECfyMAQaABayIBJAACQCAABEAgACgCAA0BIABB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akIANwMAIAVBIGpCADcDACAAQgA3A4gBIABCADcDoAEgAEHgAmoiAUEIakIANwMAIAFBIGpCADcDACABQThqQgA3AwAgAUHQAGpCADcDACABQegAakIANwMAIABCADcD4AIgAEIANwP4AiAAQgA3A5ADIABCADcDqAMgAEIANwPAAyAAQdgDaiICQQhqIgZCADcDACAAQfADaiIHQgA3AwAgAkEgaiIIQgA3AwAgAEIANwPYAyAAQYgEaiICQSBqQgA3AwAgAkEIakIANwMAIAJBOGpCADcDACACQdAAakIANwMAIAJB6ABqQgA3AwAgAEIANwOgBCAAQgA3A4gEIABCADcDuAQgAEIANwPQBCAAQgA3A+gEIABBgAVqIgRBCGpCADcDACAEQSBqQgA3AwAgBEE4akIANwMAIARB0ABqQgA3AwAgAEIANwOABSAAQgA3A5gFIABCADcDsAUgAEIANwPIBSAAQbgBaiABQfgAENkLGiAAQdgCaiAAQYAEaikDADcDACAAQdACaiAIKQMANwMAIABByAJqIAcpAwA3AwAgAEHAAmogAEHoA2opAwA3AwAgAEG4AmogBikDADcDACAAIAApA9gDNwOwAiAAQRBqIAJB+AAQ2QsaIANBCGoiAkHgAmogBEHgABDZCxogAiAFQdgBENkLIgFB2AFqQQA2AgAgAUHcAWogAEEMakH8ABDZCxogAUGIBGpBADYCACABQgQ3A4AEIAFB+ANqQgA3AwAgAUHwA2pCgICAgMAANwMAIAFCBDcD6AMgAUHgA2pCADcDACABQdgDakKAgICAwAA3AwAgAUIENwPQAyABQQE6AMgDIAFBwANqQQA2AgAgAUHYAmpCADcDACAAQeAFaiQAIANBoARqIAJBkAQQ2QsaQZgEQQgQ7goiAEUEQEGYBEEIQdzmwwAoAgAiAEGPByAAGxEAAAALIABBADYCACAAQQRqIANBnARqQZQEENkLGiADQbAIaiQAIAALZQEDfyMAQTBrIgQkACAAKAIEIQUgBEEQaiIGIAEgACgCCBDTAyAEQQhqIAUgBiACIAMgACgCDCAAQRBqKAIAECsgBCgCCCEBIAAoAgAiACAEKgIMOAIEIAAgATYCACAEQTBqJAALbAECfyAAIAEpAgA3AgwgACACKQIANwIYIABBFGogAUEIaiIDKAIANgIAIABBIGogAkEIaiIEKAIANgIAIAAgASoCBCACKgIEkzgCBCAAIAEqAgAgAioCAJM4AgAgACADKgIAIAQqAgCTOAIIC1wBAX8jAEEgayICJAAgAiAAKAIANgIEIAJBCGoiAEEQaiABQRBqKQIANwMAIABBCGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakGQmMMAIAAQtQIgAkEgaiQAC2gAIwBBMGsiASQAQZjgwwAtAAAEQCABQRxqQQE2AgAgAUICNwIMIAFBgJ3DADYCCCABQQE2AiQgASAANgIsIAEgAUEgajYCGCABIAFBLGo2AiAgAUEIakGoncMAEOAJAAsgAUEwaiQAC1wBAX8jAEEgayICJAAgAiAAKAIANgIEIAJBCGoiAEEQaiABQRBqKQIANwMAIABBCGogAUEIaikCADcDACACIAEpAgA3AwggAkEEakHkpMMAIAAQtQIgAkEgaiQAC3gBAn8gASgCACEDAkACQAJAIAFBCGooAgAiAUUEQEEBIQIMAQsgAUEASA0BIAFBARDuCiICRQ0CCyACIAMgARDZCyECIAAgATYCCCAAIAE2AgQgACACNgIADwsQ3wkACyABQQFB3ObDACgCACIAQY8HIAAbEQAAAAtcAQF/IwBBIGsiAiQAIAIgACgCADYCBCACQQhqIgBBEGogAUEQaikCADcDACAAQQhqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpBsMTDACAAELUCIAJBIGokAAtZAQF/IwBBIGsiAiQAIAIgADYCBCACQQhqIgBBEGogAUEQaikCADcDACAAQQhqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBBGpB3JnAACAAELUCIAJBIGokAAu0AgEGfyMAQRBrIgQkAAJAIAAEQCAAKAIAIgJBf0YNASAAIAJBAWo2AgAgBCABNgIMIARBDGohBiMAQSBrIgEkACABQSE2AhggAUEQaiICIABBBGoiBUE0aigCACIDNgIAIAIgAyAFQTxqKAIAQewCbGo2AgQCQCABKAIQIgIgASgCFCIFRg0AA0AgAkHUAmooAgAhAyABQQhqIgcgAkHYAmooAgA2AgQgByADNgIAIAEgASsDCBABNgIcIAEgBiABQRhqIAFBHGoQ+QggASgCBCIDQSNLBEAgAxAACyACQewCaiECIAEoAhwiA0EkTwRAIAMQAAsgAiAFRw0ACyABKAIYIgJBJEkNACACEAALIAFBIGokACAAIAAoAgBBAWs2AgAgBEEQaiQADwsQzQsACxDOCwALpQIBBn8jAEEQayIEJAACQCAABEAgACgCACICQX9GDQEgACACQQFqNgIAIAQgATYCDCAEQQxqIQYjAEEgayIBJAAgAUEhNgIYIAFBEGoiAiAAQQRqIgUoAgg2AgQgAiAFKAIANgIAAkAgASgCFCICRQ0AIAJBA3QgASgCECICaiEFA0AgAigCACEDIAFBCGoiByACQQRqKAIANgIEIAcgAzYCACABIAErAwgQATYCHCABIAYgAUEYaiABQRxqEPkIIAEoAgQiA0EjSwRAIAMQAAsgASgCHCIDQSRPBEAgAxAACyAFIAJBCGoiAkcNAAsgASgCGCICQSRJDQAgAhAACyABQSBqJAAgACAAKAIAQQFrNgIAIARBEGokAA8LEM0LAAsQzgsAC9UDAQp/IwBBEGsiBSQAAkAgAARAIAAoAgAiBEF/Rg0BIAAgBEEBajYCACAFIAE2AgwgBUEMaiEKIwBBMGsiAiQAIAJBITYCHCACQSBqIABBBGoQjAoCQCACKAIgIgEgAigCJCIIRg0AIAIoAiwhCSACKAIoIQYDQCABQRRqIQQCQAJAIAEoAgAiA0F/RwRAIAJBEGoiByADNgIEIAcgBjYCACABQRBqKAIAIgcNAQsgBCAIRg0DDAELAkAgCSgCCCILIAFBCGooAgAiA00NACAJKAIAIANBmAJsakEAIAMgC0kbIgMoAgBBAUcNACADKAIEIAFBDGooAgBHDQAgByADKAIQTwRAQZeawABBK0HcqMAAEKIJAAsgAigCECEBIAJBCGoiAyACKAIUNgIEIAMgATYCACACIAIrAwgQATYCICACIAogAkEcaiACQSBqEPkIIAIoAgQiAUEkTwRAIAEQAAsgAigCICIBQSRPBEAgARAACyAEIAhHDQEMAwtByIHAAEETQcyowAAQwwsACyAGQQFqIQYgBCEBDAALAAsgAigCHCIBQSRPBEAgARAACyACQTBqJAAgACAAKAIAQQFrNgIAIAVBEGokAA8LEM0LAAsQzgsAC7ACAQZ/IwBBEGsiBCQAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACAEIAE2AgwgBEEMaiEGIwBBMGsiASQAIAFBITYCHCABQSBqIABBBGoQ4gkgAUEsaigCACEFIAFBKGooAgAhByABKAIkIQIDQAJAAkACQCACIAdHBEAgAigCAA0BDAILIAEoAhwiAkEkTwRAIAIQAAsgAUEwaiQADAILIAFBEGoiAyACQQRqKAIANgIEIAMgBTYCACABIAErAxAQATYCICABQQhqIAYgAUEcaiABQSBqEPkIIAEoAgwiA0EkTwRAIAMQAAsgASgCICIDQSRJDQAgAxAACyACQeACaiECIAVBAWohBQwBCwsgACAAKAIAQQFrNgIAIARBEGokAA8LEM0LAAsQzgsAC7ACAQZ/IwBBEGsiBCQAAkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACAEIAE2AgwgBEEMaiEGIwBBMGsiASQAIAFBITYCHCABQSBqIABBBGoQ4wkgAUEsaigCACEFIAFBKGooAgAhByABKAIkIQIDQAJAAkACQCACIAdHBEAgAigCAA0BDAILIAEoAhwiAkEkTwRAIAIQAAsgAUEwaiQADAILIAFBEGoiAyACQQRqKAIANgIEIAMgBTYCACABIAErAxAQATYCICABQQhqIAYgAUEcaiABQSBqEPkIIAEoAgwiA0EkTwRAIAMQAAsgASgCICIDQSRJDQAgAxAACyACQaABaiECIAVBAWohBQwBCwsgACAAKAIAQQFrNgIAIARBEGokAA8LEM0LAAsQzgsAC1QBAX8gABCtBgJAIABBxABqKAIAIgFFDQAgAa1CDH6nRQ0AIABBQGsoAgAQrAELAkAgAEHQAGooAgAiAUUNACABQQN0RQ0AIABBzABqKAIAEKwBCwtgAQN9IAAgASoCACIDIAIqAhAiBJI4AgwgACAEIAOTOAIAIABBFGogAyACQRhqKgIAIgSSOAIAIABBEGogAyACQRRqKgIAIgWSOAIAIAAgBCADkzgCCCAAIAUgA5M4AgQLWQEBfyMAQSBrIgIkACACIAA2AgQgAkEIaiIAQRBqIAFBEGopAgA3AwAgAEEIaiABQQhqKQIANwMAIAIgASkCADcDCCACQQRqQbDEwwAgABC1AiACQSBqJAALWQIBfQJ/AkAgAARAIAAoAgAiA0F/Rg0BIAAgA0EBajYCACABIAAoAgQiBCgCCEkEQCAEKAIAIAFBMGxqQRhqKgIAIQILIAAgAzYCACACDwsQzQsACxDOCwALVwEDfwJAIAAEQCAAKAIAIgNBf0YNASAAIANBAWo2AgAgASAAKAIEIgQoAghJBEAgBCgCACABQTBsakEcaigCACECCyAAIAM2AgAgAg8LEM0LAAsQzgsAC1cBA38CQCAABEAgACgCACIDQX9GDQEgACADQQFqNgIAIAEgACgCBCIEKAIISQRAIAQoAgAgAUEwbGpBIGooAgAhAgsgACADNgIAIAIPCxDNCwALEM4LAAtZAgF9An8CQCAABEAgACgCACIDQX9GDQEgACADQQFqNgIAIAEgACgCBCIEKAIISQRAIAQoAgAgAUEwbGpBJGoqAgAhAgsgACADNgIAIAIPCxDNCwALEM4LAAtZAgF9An8CQCAABEAgACgCACIDQX9GDQEgACADQQFqNgIAIAEgACgCBCIEKAIISQRAIAQoAgAgAUEwbGpBKGoqAgAhAgsgACADNgIAIAIPCxDNCwALEM4LAAtZAgF9An8CQCAABEAgACgCACIDQX9GDQEgACADQQFqNgIAIAEgACgCBCIEKAIISQRAIAQoAgAgAUEwbGpBLGoqAgAhAgsgACADNgIAIAIPCxDNCwALEM4LAAtEAQF/IAAoAgAiAQRAIAAoAgQgAUECdEEEamsQrAELAkAgAEEUaigCACIBRQ0AIAGtQhR+p0UNACAAQRBqKAIAEKwBCwv4AQIDfwF+AkACQCAABEAgACgCACIDQX9GDQEgACADQQFqNgIAIAJBBk8NAiMAQRBrIgMkACADQQhqIgQgAb0iBkIgiD4CBCAEIAY+AgAgAyAAQQRqIAMoAgggAygCDBD4BgJAAkAgAygCACIEBEAgAygCBCIFIAQoAghPDQEgBCgCACAFQdADbGpBvQJqLQAAIQQgA0EQaiQAQQEgAnQiAiAEcSACQf8BcUYhAgwCC0Hot8AAQckAQeC4wAAQwwsAC0GXmsAAQStB8LjAABCiCQALIAAgACgCAEEBazYCACACDwsQzQsACxDOCwALQbG7wABBGRDMCwALVgEDfSABKgIAIgIgApQgAUEIaioCACICIAKUkkMAAAAAkhB9IQICfwJAIAEqAgQiBCAAKgIAIgOMYEUNACADIARgRQ0AQQEgAiAAKgIEXw0BGgtBAAsLWgEEfSACKgIAIgUgBZQgAioCBCIGIAaUkiACKgIIIgMgA5SSQwAAAACSEH0hBCAAIAMgBJUgASoCACIDlDgCCCAAIAMgBiAElZQ4AgQgACADIAUgBJWUOAIAC3QBAX9BHEEEEO4KIgJFBEBBHEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAIgASkCADcCACACQRhqIAFBGGooAgA2AgAgAkEQaiABQRBqKQIANwIAIAJBCGogAUEIaikCADcCACAAQbC4wgA2AgQgACACNgIAC/oEAg19Bn8jAEEgayIQJAAgEEEIaiITIAFBCGooAgA2AgAgECABKQIANwMAIBBBEGoiEUEIaiABQRRqKAIANgIAIBAgASkCDDcDECABKgIYIQQjAEFAaiISJAAgESoCACIKIBAqAgAiC5MiAyADlCARKgIEIgwgECoCBCINkyIDIAOUkiARQQhqIhUqAgAiDiATKgIAIg+TIgMgA5SSQwAAAACSEH0gEkEoaiIUQQhqIgEgEygCADYCACAUQRRqIBUoAgA2AgAgEiARKQIANwI0IBJBCGoiEUEIaiABKQMANwMAIBFBEGogFEEQaikDADcDACASIBApAgA3AwggEiAEOAIgIABBHGogERDxA0MAAAA/lCIFIASUIASUQ9sPSUCUIgMgA5IhByAEIASUIgggCJJDAACgQJUgBEPbD0lAlCAElCAElEMAAIBAlEMAAEBAlSIJlCIGIAhDAABAQJQgBSAFlEMAAIBAlJJDAABAQZUgB5SSIAKUIAkgBSAFkiIDIAOUQwAAgD6UIAMgBJRDAABAQJRDAAAAPpSSlCAClJIiAxB9IQUgBiAIQwAAAD+UIAeUkiAClBB9IQYgAxB9IQMgAEMAAAAAQwAAgD8gBZUgBUMAAAAAWxs4AhAgAEMAAAAAQwAAgD8gCSAHkiAClCIClSACQwAAAABbGzgCDCAAIA4gD5JDAAAAP5Q4AgggACAMIA2SQwAAAD+UOAIEIAAgCiALkkMAAAA/lDgCACAAQRRqQwAAAABDAACAPyAGlSAGQwAAAABbGzgCACAAQRhqQwAAAABDAACAPyADlSADQwAAAABbGzgCACASQUBrJAAgEEEgaiQAC8gBAQF/IwBBEGsiAiQAIAIgAUHsj8MAQQQQlgogAiAANgIMIAJB8I/DACACQQxqIgEQpgQgAiAAQQxqNgIMIAJB9I/DACABEKYEIAIhACACLQAEIQEgAi0ABQRAIAACf0EBIAFB/wFxDQAaIAAoAgAiAS0AAEEEcUUEQCABKAIYQdvCwwBBAiABQRxqKAIAKAIMEQQADAELIAEoAhhBzcLDAEEBIAFBHGooAgAoAgwRBAALIgE6AAQLIAJBEGokACABQf8BcUEARwtaACAAIAEtAANBAEcgAi0AA0EAR3E6AAMgACABLQACQQBHIAItAAJBAEdxOgACIAAgAS0AAUEARyACLQABQQBHcToAASAAIAEtAABBAEcgAi0AAEEAR3E6AAALVgEBfSMAQTBrIgQkACAEQQhqIAEgAUEMaiABQRhqIAIQ7AECfyAEKAIYQQRHBEAgBCoCCCIFIANfDAELQQALIQEgACAFOAIEIAAgATYCACAEQTBqJAALVwECfwJAIAAEQCAAKAIADQEgAEEANgIAIABBCGooAgAhAiAAKAIEIQEgABCsASABIAEoAgAiAEEBazYCACAAQQFGBEAgASACEIoICw8LEM0LAAsQzgsAC8IBAQR/IwBBEGsiBSQAIAVBCGohBkEYQQQQ7goiBEUEQEEYQQRB3ObDACgCACIEQY8HIAQbEQAAAAsgBCADOAIUIAQgAjgCECAEIAE4AgwgBCAAOAIIIARCgYCAgBA3AgAgBiAENgIAIAZBqOXCADYCBCAFKAIMIQYgBSgCCCEHQQxBBBDuCiIERQRAQQxBBEHc5sMAKAIAIgRBjwcgBBsRAAAACyAEIAY2AgggBCAHNgIEIARBADYCACAFQRBqJAAgBAtCAQF/IAAoAgAiAQRAIAAoAgQgAUECdEEEamsQrAELAkAgAEEUaigCACIBRQ0AIAFBBHRFDQAgAEEQaigCABCsAQsLWwEBfyMAQSBrIgMkACADIAEgAhC4AiAAQQhqIANBCGopAwA3AgAgACADKQMANwIAIABBFGpBACADQRRqKAIAIAMoAhAiARs2AgAgACABQQBHNgIQIANBIGokAAu7AQEEfyMAQRBrIgQkACAEQQhqIQVBFEEEEO4KIgNFBEBBFEEEQdzmwwAoAgAiA0GPByADGxEAAAALIAMgAjgCECADIAE4AgwgAyAAOAIIIANCgYCAgBA3AgAgBSADNgIAIAVBrLXCADYCBCAEKAIMIQUgBCgCCCEGQQxBBBDuCiIDRQRAQQxBBEHc5sMAKAIAIgNBjwcgAxsRAAAACyADIAU2AgggAyAGNgIEIANBADYCACAEQRBqJAAgAwvmAQEEfyMAQRBrIgQkACAEQQhqIQUCQAJAAkAgALxBAEgNACABvEEASA0AQRRBBBDuCiIDRQ0BIAMgAjgCECADIAE4AgwgAyAAOAIIIANCgYCAgBA3AgAgBSADNgIAIAVBrOrCADYCBAwCC0Gs28IAQc0AQeDcwgAQogkAC0EUQQRB3ObDACgCACIDQY8HIAMbEQAAAAsgBCgCDCEFIAQoAgghBkEMQQQQ7goiA0UEQEEMQQRB3ObDACgCACIDQY8HIAMbEQAAAAsgAyAFNgIIIAMgBjYCBCADQQA2AgAgBEEQaiQAIAMLuwEBBH8jAEEQayIEJAAgBEEIaiEFQRRBBBDuCiIDRQRAQRRBBEHc5sMAKAIAIgNBjwcgAxsRAAAACyADIAI4AhAgAyABOAIMIAMgADgCCCADQoGAgIAQNwIAIAUgAzYCACAFQeTnwgA2AgQgBCgCDCEFIAQoAgghBkEMQQQQ7goiA0UEQEEMQQRB3ObDACgCACIDQY8HIAMbEQAAAAsgAyAFNgIIIAMgBjYCBCADQQA2AgAgBEEQaiQAIAMLXQIBfwF9IwBBEGsiAyQAIAMgASACELsFIAAgAioCCCABKgJgIgSUIAMqAgiSOAIIIAAgBCACKgIElCADKgIEkjgCBCAAIAQgAioCAJQgAyoCAJI4AgAgA0EQaiQAC1kBA38gACgCACICKAIYIgMoAgAhASADIAFBAWs2AgAgAUEBRgRAIAIoAhgQlQgLAkAgACgCACIAQX9GDQAgACAAKAIEIgFBAWs2AgQgAUEBRw0AIAAQrAELC98BAQR/IwBBEGsiAyQAIANBCGohBAJAAkACQCAAvEEASA0AIAG8QQBIDQBBEEEEEO4KIgJFDQEgAiABOAIMIAIgADgCCCACQoGAgIAQNwIAIARBqMzCADYCBCAEIAI2AgAMAgtBrNvCAEHNAEHg3MIAEKIJAAtBEEEEQdzmwwAoAgAiA0GPByADGxEAAAALIAMoAgwhBCADKAIIIQVBDEEEEO4KIgJFBEBBDEEEQdzmwwAoAgAiA0GPByADGxEAAAALIAIgBDYCCCACIAU2AgQgAkEANgIAIANBEGokACACC7QBAQR/IwBBEGsiAyQAIANBCGohBEEQQQQQ7goiAkUEQEEQQQRB3ObDACgCACIDQY8HIAMbEQAAAAsgAiABOAIMIAIgADgCCCACQoGAgIAQNwIAIARBrM/CADYCBCAEIAI2AgAgAygCDCEEIAMoAgghBUEMQQQQ7goiAkUEQEEMQQRB3ObDACgCACIDQY8HIAMbEQAAAAsgAiAENgIIIAIgBTYCBCACQQA2AgAgA0EQaiQAIAILjgEBAX8jAEEQayIGJAAgASgCACACKAIAIAMoAgAgBCgCACAFKAIAEAghAUGc4MMALQAAIQJBnODDAEEAOgAAQaDgwwAoAgAhA0Gg4MMAQQA2AgAgBkEIaiIEIAM2AgQgBCACNgIAIAYoAgwhAiAAIAYoAggiA0EARzYCACAAIAIgASADGzYCBCAGQRBqJAALcQEBfyMAQfAAayICJAAgAkEIaiABEJ4BIAIgASoCYDgCaEHkAEEEEO4KIgFFBEBB5ABBBEHc5sMAKAIAIgBBjwcgABsRAAAACyABIAJBCGpB5AAQ2QshASAAQbzvwgA2AgQgACABNgIAIAJB8ABqJAALUAEBfwJAIAAoAhAiAUUNACABQQA6AAAgAEEUaigCAEUNACAAKAIQEKwBCwJAIABBf0YNACAAIAAoAgQiAUEBazYCBCABQQFHDQAgABCsAQsLnQEBBH8jAEEQayIBJAAgAUEIaiEDAkBBDEEEEO4KIgJFBEAMAQsgAiAAOAIIIAJCgYCAgBA3AgAgA0HcpMIANgIEIAMgAjYCACABKAIMIQMgASgCCCEEQQxBBBDuCiICRQRADAELIAIgAzYCCCACIAQ2AgQgAkEANgIAIAFBEGokACACDwtBDEEEQdzmwwAoAgAiAUGPByABGxEAAAALRwEBfwJAIABBBGooAgAiAUUNACABQQJ0RQ0AIAAoAgAQrAELAkAgAEEoaigCACIBRQ0AIAFBAnRFDQAgAEEkaigCABCsAQsLZgECfyABKAIAIQIgAUEANgIAAkAgAgRAIAEoAgQhA0EIQQQQ7goiAUUNASABIAM2AgQgASACNgIAIABBvLTAADYCBCAAIAE2AgAPCwALQQhBBEHc5sMAKAIAIgBBjwcgABsRAAAAC4kBAQF/IwBBEGsiBSQAIAEoAgAgAigCACADKAIAIAQoAgAQByEBQZzgwwAtAAAhAkGc4MMAQQA6AABBoODDACgCACEDQaDgwwBBADYCACAFQQhqIgQgAzYCBCAEIAI2AgAgBSgCDCECIAAgBSgCCCIDQQBHNgIAIAAgAiABIAMbNgIEIAVBEGokAAtmAQJ/IAEoAgAhAiABQQA2AgACQCACBEAgASgCBCEDQQhBBBDuCiIBRQ0BIAEgAzYCBCABIAI2AgAgAEGIh8EANgIEIAAgATYCAA8LAAtBCEEEQdzmwwAoAgAiAEGPByAAGxEAAAALZgECfyABKAIAIQIgAUEANgIAAkAgAgRAIAEoAgQhA0EIQQQQ7goiAUUNASABIAM2AgQgASACNgIAIABBiPrBADYCBCAAIAE2AgAPCwALQQhBBEHc5sMAKAIAIgBBjwcgABsRAAAAC1wBAX0gAEIANwIAAkAgASgCAEUEQEMAAIA/IQIgASgCBCIBQQJJDQEgAUECQeCzwgAQrwgACyAAIAEqAgQ4AgAgAUEIaioCACECQQEhAQsgACABQQJ0aiACOAIAC1IBAn8gACgCACIDQQhqIgQoAgAhACACIANBBGooAgAgAGtLBEAgAyAAIAIQwwYgBCgCACEACyADKAIAIABqIAEgAhDZCxogBCAAIAJqNgIAQQAL9AMCCH8CfCMAQRBrIgQkAAJAIAAEQCAAKAIADQEgAEF/NgIAIAQgATYCDCAEQQxqIQMjAEHQAGsiASQAIAFBITYCJCABQShqIABBDGoiBhBLAkAgAS0AKA0AA0AgASgCLCECIAEoAjwhByABKAI4IQggASgCMCEFIAFBGGoiCSABKAI0NgIEIAkgBTYCACABKwMYIQogAUEQaiIFIAc2AgQgBSAINgIAIAErAxAhCwJAIAJFBEAgASAKEAE2AkQgASALEAE2AkggAUEiNgJMIAEgAyABQSRqIAFBxABqIAFByABqIAFBzABqEOwIIAEoAgQiAkEkTwRAIAIQAAsgASgCTCICQSRPBEAgAhAACyABKAJIIgJBJE8EQCACEAALIAEoAkQiAkEkSQ0BIAIQAAwBCyABIAoQATYCRCABIAsQATYCSCABQSM2AkwgAUEIaiADIAFBJGogAUHEAGogAUHIAGogAUHMAGoQ7AggASgCDCICQSRPBEAgAhAACyABKAJMIgJBJE8EQCACEAALIAEoAkgiAkEkTwRAIAIQAAsgASgCRCICQSRJDQAgAhAACyABQShqIAYQSyABLQAoRQ0ACyABKAIkIgNBJEkNACADEAALIAFB0ABqJAAgAEEANgIAIARBEGokAA8LEM0LAAsQzgsAC0QBAX8jAEEwayIDJAAgA0EIaiAAIABBDGogAEEYaiABEOwBAn8gAygCGEEERwRAIAMqAgggAl8MAQtBAAsgA0EwaiQAC4QBAQJ/IwBBEGsiBCQAIAEoAgAgAigCACADKAIAEAYhAUGc4MMALQAAIQJBnODDAEEAOgAAQaDgwwAoAgAhA0Gg4MMAQQA2AgAgBEEIaiIFIAM2AgQgBSACNgIAIAQoAgwhAiAAIAQoAggiA0EARzYCACAAIAIgASADGzYCBCAEQRBqJAALTQEBfyABIAAoAggiBEkEQCAAKAIAIAFBJGxqQQAgASAESRsiAEEgaigCACEBIAIgACAAKAIcIAEoAghBB2pBeHFqIAEgAygCEBEBAAsLSwECfyACIABBBGooAgAgAEEIaiIEKAIAIgNrSwRAIAAgAyACEMMGIAQoAgAhAwsgACgCACADaiABIAIQ2QsaIAQgAiADajYCAEEAC4oCAgR/AX4CQCAABEAgACgCACICQX9GDQEgACACQQFqNgIAIwBBEGsiAyQAIANBCGoiAiABvSIGQiCIPgIEIAIgBj4CACADIABBBGogAygCCCADKAIMEPgGAkACQCADKAIAIgQEQCADKAIEIgUgBCgCCE8NAUEAIQICQAJAAkACQCAEKAIAIAVB0ANsakG8AmotAAAiBEE3aw4IAwECAgICAgACC0ECIQIMAgtBAyECDAELQQFBBCAEQT9GGyECCyADQRBqJAAMAgtB6LfAAEHJAEHguMAAEMMLAAtBl5rAAEErQfC4wAAQogkACyAAIAAoAgBBAWs2AgAgAkH/AXEPCxDNCwALEM4LAAu4AgIDfwF+AkAgAARAIAAoAgANASAAQX82AgAgAkEARyEGIANBAEchByAEQQBHIQQgBUEARyEIIwBBEGsiAyQAIANBCGoiAiABvSIJQiCIPgIEIAIgCT4CAAJAAkACQCAAQQRqIAMoAgggAygCDBDtBiICBEACQCACLQCoASIFQQFxIAZGDQAgBUECcUEBdiAHRg0AIAVBBHFBAnYgBEcNBAsgBkUhBSACLQDUAg0CIAgNAQwCC0GAucAAQc0AQYi6wAAQwwsACyACQcwCai0AAARAIAIgAigC0AJBBHI2AtACCyACQQA6AMwCIAJByAJqQQA2AgALIAIgAi0AqAFB+AFxQQBBAiAHGyAFckEAQQQgBBtycjoAqAEgAhDbBAsgA0EQaiQAIABBADYCAA8LEM0LAAsQzgsAC7UCAgN/AX4CQCAABEAgACgCAA0BIABBfzYCACACQQBHIQYgA0EARyEHIARBAEchBCAFQQBHIQgjAEEQayIDJAAgA0EIaiICIAG9IglCIIg+AgQgAiAJPgIAAkACQAJAIABBBGogAygCCCADKAIMEO0GIgIEQAJAIAItAKgBIgVBCHFFIAZzDQAgBUEQcUUgB3MNACAFQSBxRSAERg0ECyACLQDUAg0CIAgNAQwCC0GAucAAQc0AQYi6wAAQwwsACyACQcwCai0AAARAIAIgAigC0AJBBHI2AtACCyACQQA6AMwCIAJByAJqQQA2AgALIAIgAi0AqAFBxwFxQQBBECAHG0EAQQggBhtyQQBBICAEG3JyOgCoASACENsECyADQRBqJAAgAEEANgIADwsQzQsACxDOCwAL9gEBAn8jAEHwAGsiASQAIAFBCGoiAEEAOwFgIABCBDcCECAAQoCAgIBwNwIIIABCBDcCACAAQdwAakEANgIAIABB1ABqQgQ3AgAgAEHMAGpCADcCACAAQcgAakGQksMANgIAIABBADYCRCAAQTxqQgA3AgAgAEE0akKAgICAwAA3AgAgAEEsakIENwIAIABBJGpCADcCACAAQSBqQZCSwwA2AgAgAEEYakIANwIAQegAQQQQ7goiAEUEQEHoAEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIABBADYCACAAQQRqIAFBCGpB5AAQ2QsaIAFB8ABqJAAgAAvyAgICfwF+AkAgAARAIAAoAgAiAkF/Rg0BIAAgAkEBajYCACMAQRBrIgMkACADQQhqIgIgAb0iBEIgiD4CBCACIAQ+AgACQCAAQQRqIAMoAgggAygCDBCDCSICBEAgAyACENcJQQAhAgJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIAIAMoAgQoApQBEQUAQf8BcUEBaw4SAAECAwQFBgcICQoLDA0ODxAGEQtBASECDBALQQIhAgwPC0EDIQIMDgtBBSECDA0LQQYhAgwMC0EEIQIMCwtBgLzAAEEUQbi8wAAQsgoAC0EHIQIMCQtBCCECDAgLQQkhAgwHC0EKIQIMBgtBCyECDAULQQwhAgwEC0ENIQIMAwtBDiECDAILQQ8hAgwBC0EQIQILIANBEGokAAwBC0GYusAAQcwAQYy7wAAQwwsACyAAIAAoAgBBAWs2AgAgAkH/AXEPCxDNCwALEM4LAAuHAwEHfyMAQdAAayIBJAAgAUEIaiEAAkACQAJAAkBBCEEEEO4KIgIEQCACQoGAgIAQNwIAQaABQQQQ7goiA0UNBEGwBEEEEO4KIgRFDQFBoAFBBBDuCiIFRQ0EQcgBQQQQ7goiBkUNAiAAQgQ3AjggACAFNgIgIAAgAzYCCCAAQeDFwAA2AgQgACACNgIAIABBQGtBADYCACAAQTBqQgo3AgAgAEEsaiAGNgIAIABBJGpCCjcCACAAQRhqQgo3AgAgAEEUaiAENgIAIABBDGpCCjcCAAwDC0EIQQRB3ObDACgCACIAQY8HIAAbEQAAAAtBsARBBEHc5sMAKAIAIgBBjwcgABsRAAAAC0HIAUEEQdzmwwAoAgAiAEGPByAAGxEAAAALQcgAQQQQ7goiAEUEQEHIAEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIABBADYCACAAQQRqIAFBCGpBxAAQ2QsaIAFB0ABqJAAgAA8LQaABQQRB3ObDACgCACIAQY8HIAAbEQAAAAtFAQJ/AkAgACgCCCIEIAFNDQAgACgCACABQeACbGpBACABIARJGyIAKAIAQQFHDQAgAEEIakEAIAAoAgQgAkYbIQMLIAMLRQECfwJAIAAoAggiBCABTQ0AIAAoAgAgAUGgAWxqQQAgASAESRsiACgCAEEBRw0AIABBCGpBACAAKAIEIAJGGyEDCyADC00BAX1DAAAAACABKgIAIgMgA5QgAUEEaioCACIDIAOUkiABQQhqKgIAIgMgA5SSQwAAAACSEH0gACoCAJMiAyADQwAAAABdGyADIAIbC2QBAX9BGEEEEO4KIgJFBEBBGEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAIgASkCADcCACACQRBqIAFBEGopAgA3AgAgAkEIaiABQQhqKQIANwIAIABBwLHCADYCBCAAIAI2AgALZwEDfSABQQRqKgIAIQIgASoCCCEDIAEqAgAhBEEMQQQQ7goiAUUEQEEMQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgASADOAIIIAEgAjgCBCABIAQ4AgAgAEGs6sIANgIEIAAgATYCAAtnAQN9IAFBBGoqAgAhAiABKgIIIQMgASoCACEEQQxBBBDuCiIBRQRAQQxBBEHc5sMAKAIAIgBBjwcgABsRAAAACyABIAM4AgggASACOAIEIAEgBDgCACAAQeTnwgA2AgQgACABNgIAC0ABAX8jAEEgayIAJAAgAEEcakEANgIAIABB4KPDADYCGCAAQgE3AgwgAEH8o8MANgIIIABBCGpB1KTDABDgCQAL+wECA38BfgJAIAAEQCAAKAIAIgNBf0YNASAAIANBAWo2AgAjAEEgayIDJAAgA0EYaiIEIAG9IgZCIIg+AgQgBCAGPgIAAkACQCAAQQRqIAMoAhggAygCHBCCCSIEBEAgA0EQaiIFIARBvAJqKAIANgIEIAUgBCgCtAI2AgAgAygCFCIEIAJNDQEgAygCECACQQN0aiICKAIAIQQgA0EIaiIFIAIoAgQ2AgQgBSAENgIAIAMrAwghASADQSBqJAAMAgtBgLnAAEHNAEH4ucAAEMMLAAsgAiAEQfC7wAAQrwgACyAAIAAoAgBBAWs2AgAgAQ8LEM0LAAsQzgsAC0YBAX8CQCABBEAgASgCAEF/Rg0BIAAgAUEcaigCACICQQNHNgIAIABBACABQSBqKAIAIAJBA0YbNgIEDwsQzQsACxDOCwALRgEBfwJAIAEEQCABKAIAQX9GDQEgACABQRRqKAIAIgJBA0c2AgAgAEEAIAFBGGooAgAgAkEDRhs2AgQPCxDNCwALEM4LAAtKAQJ/IwBBIGsiBCQAIAAoAgQgBCABIAAoAggQ0wMgBCACIAMgACgCDCAAQRBqKAIAEGshASAAKAIAIAFB/QFxOgAAIARBIGokAAtLAAJAAn8gAUGAgMQARwRAQQEgACgCGCABIABBHGooAgAoAhARAwANARoLIAINAUEACw8LIAAoAhggAiADIABBHGooAgAoAgwRBAALOgEBfwJAIABBBGooAgAiAUUNACABQQJ0RQ0AIAAoAgAQrAELIABBGGooAgAEQCAAQRRqKAIAEKwBCwtIAQF9QwAAAAAgACoCACABKgIAlCAAQQRqKgIAIAFBBGoqAgCUkiAAQQhqKgIAIAFBCGoqAgCUkiIDIAIbIAMgA0MAAAAAXRsLZAIBfwF9IAEqAgwhA0EQQQQQ7goiAkUEQEEQQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgAiADOAIMIAIgASkCADcCACACQQhqIAFBCGooAgA2AgAgAEGo5cIANgIEIAAgAjYCAAtAAQF/AkAgAARAIAAoAgAiAUF/Rg0BIAAgAUEBajYCACAAQUBrKAIAIAAgACgCAEEBazYCAA8LEM0LAAsQzgsAC0ABAX8CQCAABEAgACgCACIBQX9GDQEgACABQQFqNgIAIABBHGooAgAgACAAKAIAQQFrNgIADwsQzQsACxDOCwAL4gkCGX8BfgJAIAAEQCAAKAIAIgRBf0YNASAAIARBAWo2AgBBACEEIwBB8ABrIgMkACADIAI2AiAgA0EhNgIkIANBGGoiAiABvSIcQiCIPgIEIAIgHD4CACADQShqIQIgAygCHCIXIQgCQCADKAIYIhgiBSAAQQRqIglBQGsoAgAiC08NACAJKAI4IAVBDGxqQQAgBSALSRsiBSgCACAIRw0AIAUoAgQhBkEBIQQLIAIgBjYCBCACIAQ2AgAgAkE8akECOgAAIAJBIGpBAjoAACACQQhqIgQgCTYCACAEKAIAIgxBCGohCyADQegAaigCACENIANB5ABqLQAAIRkgAkE4aigCACETIAJBNGooAgAhBCACQTBqKAIAIQ4gA0HUAGooAgAhFCACQSRqKAIAIQkgA0HIAGotAAAhDyADQcQAaigCACEIIANBQGsoAgAhBiACQRRqKAIAIRAgA0E4aigCACERIAMoAlAhGiADKAI0IRUgAykDKCIcpyESIBxCIIinIhZBBHQhGwNAAkAgD0ECRiECA0ACQCACRQRAIBEgBkE4bGohBwJAAkACQAJAAkACQCAGIBBJBEAgBygCKCECDAELA0AgESAIIgVBOGxqIgdBACAFIBBJIggbIQIgCEUEQCAFIQgMAwsgAigCLCEIIAIoAjAgFUYNAAsgBiECIAUhBgsgCSgCDCAGQThsakEAIAlBFGooAgAgBksiBhshBSAGRQ0CIAVBNGooAgAhCiAJKAIIIgYgBUEwaigCACIFTQ0DIAYgCk0NBCACIQYgBw0BC0EBIQIMBgsgBCECDAQLQZeawABBK0HMq8AAEKIJAAsgBSAGQdyrwAAQrwgACyAKIAZB7KvAABCvCAALAkACQAJAAkAgEg4DAQACAAtBACEPIAwoAgggG2pBACAMKAIQIBZLIgYbIQIgDCgCHCEQIAwoAhQhEUF/IQgCfyAGRQRAIAshCUF/DAELIAIoAgwhCCALIQkgAigCCAshBiAWIRVBACESDAILQQAhEgsCQAJAAkAgGUECRg0AIBQgBEE4bGohBwJAIAQgDkkEQCAHKAIoIQIMAQsDQCAUIBMiBUE4bGohByAFIA5PDQIgB0EAIAUgDkkbIgIoAiwhEyACKAIwIBpGDQALIAQhAiAFIQQLIA0oAgwgBEE4bGpBACANKAIUIARLIgQbIQUgBEUNASAFQTRqKAIAIQogDSgCCCIEIAVBMGooAgAiBU0NAkECIQ8gBCAKSw0EIAogBEHsq8AAEK8IAAsgAygCJCICQSRPBEAgAhAACyADKAIgIgJBJE8EQCACEAALIANB8ABqJAAMBQtBl5rAAEErQcyrwAAQogkACyAFIARB3KvAABCvCAALQQAhAgwBCwsCfyAHKAIAIgQgGEYgB0EEaigCACIFIBdGcUUEQCADQRBqIgcgBTYCBCAHIAQ2AgAgAygCECEHIAMoAhQMAQsgBygCCCEEIANBCGoiBSAHKAIMNgIEIAUgBDYCACADKAIIIQcgAygCDAshBCADIAetIAStQiCGhL8QATYCKCADIANBIGogA0EkaiADQShqEPkIIAMoAgQiBEEkTwRAIAQQAAsgAygCKCIEQSRPBEAgBBAACyACIQQMAQsLIAAgACgCAEEBazYCAA8LEM0LAAsQzgsAC8IKAht/AX4CQCAABEAgACgCACIEQX9GDQEgACAEQQFqNgIAQQAhBCMAQfAAayIDJAAgAyACNgIgIANBITYCJCADQRhqIgIgAb0iHkIgiD4CBCACIB4+AgAgA0EoaiECIAMoAhwiGSEMAkAgAygCGCIaIgggAEEEaiILQUBrKAIAIgVPDQAgCygCOCAIQQxsakEAIAUgCEsbIggoAgAgDEcNACAIQQhqKAIAIQRBASEHCyACIAQ2AgQgAiAHNgIAIAJBPGpBAjoAACACQSBqIgRBAjoAACACQQhqIgcgCzYCACAHKAIAIg5BIGohFyADKQMoIh5CIIinIQsgA0HoAGooAgAhDyADQeQAai0AACEbIANB4ABqKAIAIRggA0HcAGooAgAhByADQdgAaigCACEUIANB1ABqKAIAIRUgAkEkaigCACEIIAQtAAAhCiADQcQAaigCACEQIANBQGsoAgAhBCACQRRqKAIAIRYgAkEQaigCACERIAMoAlAhHCADKAI0IQwgHqchEgNAAkAgCkECRiEFA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAFRQRAIAQgFk8NASARIARBFGxqKAIAIQIMAgsCQCASDgMEAAUACyAOKAIgIAtBBHRqQQAgDigCKCALSyIEGyECIA4oAjQhFiAOKAIsIREgBA0CQQAhCkF/IQQgCyEMQX8hECAXIQhBACESCwNAIBAiBSAWSSECIBEgBUEUbGpBACACGyEGIAJFBEBBASEFDA4LIAYoAgQhECAGKAIIIAxGDQALIAQhAiAFIQQLIARBFGwiBSAIKAIMakEAIAhBFGooAgAgBEsiBBshCSAFIBFqQRBqIQUgBEUNBSAJQQxqKAIAIQQgCCgCCCIGIAlBCGooAgAiCU0NBiAIKAIAIQ0gBCAGSQ0DIAQgBkHsq8AAEK8IAAsgAigCDCEQIAIoAgghBEEAIRIgFyEIQQAhCiALIQwMCQtBACESCwJAIBtBAkYNAAJAIAcgFEkEQCAVIAdBFGxqKAIAIQIMAQsDQCAYIgUgFE8NAiAVIAVBFGxqQQAgBSAUSRsiAigCBCEYIAIoAgggHEYNAAsgByECIAUhBwsgB0EUbCIFIA8oAgxqQQAgDygCFCAHSyIHGyEKIAUgFWpBEGohBSAHRQ0FIApBDGooAgAhByAPKAIIIgYgCkEIaigCACIKTQ0GIA8oAgAhCSAGIAdNDQcgCSAHQQR0aiIGQQRqIRMgCSAKQQR0aiIJQQRqIQ1BAiEKIAIhBwwCCyADKAIkIgJBJE8EQCACEAALIAMoAiAiAkEkTwRAIAIQAAsgA0HwAGokAAwJCyANIARBBHRqIgZBBGohEyANIAlBBHRqIglBBGohDSACIQQLIBMoAgAhEyAGKAIAIR0gDSgCACECIAkoAgAhBiAFLQAARQ0IAn8gBiAaRiACIBlGcUUEQCADQRBqIgUgAjYCBCAFIAY2AgAgAygCECEGIAMoAhQMAQsgA0EIaiICIBM2AgQgAiAdNgIAIAMoAgghBiADKAIMCyECIAMgBq0gAq1CIIaEvxABNgIoIAMgA0EgaiADQSRqIANBKGoQ+QggAygCBCICQSRPBEAgAhAACyADKAIoIgJBJEkNCCACEAAMCAtBl5rAAEErQcyrwAAQogkACyAJIAZB3KvAABCvCAALQZeawABBK0HMq8AAEKIJAAsgCiAGQdyrwAAQrwgACyAHIAZB7KvAABCvCAALQQAhBQwACwALCyAAIAAoAgBBAWs2AgAPCxDNCwALEM4LAAtIAQF9IAAgAkEYaioCACADKgIIIAEqAgAiBJSSOAIIIAAgAkEUaioCACAEIAMqAgSUkjgCBCAAIAIqAhAgBCADKgIAlJI4AgALXAAgACABKAIIQf////8HcSACKAIIQYCAgIB4cXI2AgggACABKAIEQf////8HcSACKAIEQYCAgIB4cXI2AgQgACABKAIAQf////8HcSACKAIAQYCAgIB4cXI2AgALYQEBfyMAQeAAayICJAAgAiABEJ4BQeAAQQQQ7goiAUUEQEHgAEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAEgAkHgABDZCyEBIABBsMnCADYCBCAAIAE2AgAgAkHgAGokAAvHAgEDfyMAQdAAayIAJAACQAJAQQhBBBDuCiIBBEAgAUKBgICAEDcCAEEgQQQQ7goiAkUNASAAQQA6AEwgAEGKro/hAzYCSCAAQv////v3//+//wA3AgggAEGUzcEANgIEIAAgATYCACAAQSxqQgA3AgAgAEEkakIANwIAIABBQGtCADcCACAAQThqQoiAgIDAADcCACAAQTRqIAI2AgAgAEEgakEQNgIAIABBGGpC////+////79/NwIAIABBEGpC////+/f//79/NwIADAILQQhBBEHc5sMAKAIAIgBBjwcgABsRAAAAC0EgQQRB3ObDACgCACIAQY8HIAAbEQAAAAtB1ABBBBDuCiIBRQRAQdQAQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgAUEANgIAIAFBBGogAEHQABDZCxogAEHQAGokACABC7UDAQV/IwBB0ABrIgAkACMAQSBrIgEkACABQQA2AhggAUEwQQQgAUEQahD5BgJAAkACQAJAIAEoAgAEQCABQQhqKAIAIgBFDQEgASgCBCAAQdzmwwAoAgAiAEGPByAAGxEAAAALIAEoAgQiAkIANwIoIAJCAzcCICACQoCAgIAQNwIYIAJCgYCAgCA3AhAgAkIBNwIIIAJCgICAgBA3AgBBoAFBBBDuCiIDRQ0BQbgcQQQQ7goiBEUNAiAAQgQ3AkAgACADNgIoIAAgAjYCDCAAQQA2AgggAEIENwIAIABByABqQQA2AgAgAEE4akIKNwIAIABBNGogBDYCACAAQSxqQgo3AgAgAEEgakIANwIAIABBGGpCgICAgBA3AgAgAEEQakKEgICAwAA3AgAgAUEgaiQADAMLEN8JAAtBoAFBBEHc5sMAKAIAIgBBjwcgABsRAAAAC0G4HEEEQdzmwwAoAgAiAEGPByAAGxEAAAALQdAAQQQQ7goiAUUEQEHQAEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAFBADYCACABQQRqIABBzAAQ2QsaIABB0ABqJAAgAQvKAgEEfyMAQdAAayIAJAAjAEEgayIBJAAgAUEMakIANwIAIAFBADYCGCABQQQ2AgAgAUIANwIEIAFBBBD+AQJAAkBBoAFBBBDuCiICBEBBoAFBBBDuCiIDRQ0CIAAgASkDADcCACAAQgQ3AkAgACACNgIoIABCBDcCHCAAQcgAakEANgIAIABBOGpCCjcCACAAQTRqIAM2AgAgAEEsakIKNwIAIABBJGpBADYCACAAQRhqIAFBGGooAgA2AgAgAEEQaiABQRBqKQMANwIAIABBCGogAUEIaikDADcCACABQSBqJAAMAQsMAQtB0ABBBBDuCiIBRQRAQdAAQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgAUEANgIAIAFBBGogAEHMABDZCxogAEHQAGokACABDwtBoAFBBEHc5sMAKAIAIgBBjwcgABsRAAAAC8cCAQN/IwBB0ABrIgAkAAJAAkBBCEEEEO4KIgEEQCABQoGAgIAQNwIAQSBBBBDuCiICRQ0BIABBADoATCAAQv////v3//+//wA3AgggAEGUzcEANgIEIAAgATYCACAAQYquj+EDNgJIIABBLGpCADcCACAAQSRqQgA3AgAgAEFAa0IANwIAIABBOGpCiICAgMAANwIAIABBNGogAjYCACAAQSBqQRA2AgAgAEEYakL////7////v383AgAgAEEQakL////79///v383AgAMAgtBCEEEQdzmwwAoAgAiAEGPByAAGxEAAAALQSBBBEHc5sMAKAIAIgBBjwcgABsRAAAAC0HUAEEEEO4KIgFFBEBB1ABBBEHc5sMAKAIAIgBBjwcgABsRAAAACyABQQA2AgAgAUEEaiAAQdAAENkLGiAAQdAAaiQAIAELRQEBfSAAIAEqAgAiAiAClCAB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AgtBgLnAAEHNAEGIusAAEMMLAAsgAkHMAmotAAAEQCACIAIoAtACQQRyNgLQAgsgAkEAOgDMAiACQcgCakEANgIACyACIAItAKgBQfgBcUEHQQAgBBtyOgCoASACENsECyADQRBqJAAgAEEANgIADwsQzQsACxDOCwAL+wECAn8BfgJAIAAEQCAAKAIADQEgAEF/NgIAIAJBAEchBCADQQBHIQUjAEEQayIDJAAgA0EIaiICIAG9IgZCIIg+AgQgAiAGPgIAAkACQAJAIABBBGogAygCCCADKAIMEO0GIgIEQCACLQCoAUE4cUE4Rg0DIAItANQCDQIgBQ0BDAILQYC5wABBzQBBiLrAABDDCwALIAJBzAJqLQAABEAgAiACKALQAkEEcjYC0AILIAJBADoAzAIgAkHIAmpBADYCAAsgAiACLQCoAUHHAXFBOEEAIAQbcjoAqAEgAhDbBAsgA0EQaiQAIABBADYCAA8LEM0LAAsQzgsACz0BAn8jAEEwayIEJAAgBEEIaiIFIAEgAiADECwgAEEIaiAFQQhqKQMANwIAIAAgBCkDCDcCACAEQTBqJAALPQECfyMAQTBrIgQkACAEQQhqIgUgASACIAMQQSAAQQhqIAVBCGopAwA3AgAgACAEKQMINwIAIARBMGokAAtLAgF/AX4jAEEQayICJAAgAkEIaiAAIAEoAmARAAAgAigCCCIAIAIoAgwoAgwRBgAhAyACQRBqJAAgAEEAIANC+eGls/3phs4XURsLSwIBfwF+IwBBEGsiAiQAIAJBCGogACABKAJgEQAAIAIoAggiACACKAIMKAIMEQYAIQMgAkEQaiQAIABBACADQrmzosqklv+1T1EbC0wCAX8BfiMAQRBrIgIkACACQQhqIAAgASgCYBEAACACKAIIIgAgAigCDCgCDBEGACEDIAJBEGokACAAQQAgA0Lnq6yH2PSbv4h/URsLSwIBfwF+IwBBEGsiAiQAIAJBCGogACABKAJgEQAAIAIoAggiACACKAIMKAIMEQYAIQMgAkEQaiQAIABBACADQryN4+ahs9byK1EbC0wCAX8BfiMAQRBrIgIkACACQQhqIAAgASgCYBEAACACKAIIIgAgAigCDCgCDBEGACEDIAJBEGokACAAQQAgA0K0ra3hmcyIydsAURsLSwIBfwF+IwBBEGsiAiQAIAJBCGogACABKAJgEQAAIAIoAggiACACKAIMKAIMEQYAIQMgAkEQaiQAIABBACADQuj5rcq8m9C/cVEbC0sCAX8BfiMAQRBrIgIkACACQQhqIAAgASgCYBEAACACKAIIIgAgAigCDCgCDBEGACEDIAJBEGokACAAQQAgA0K89rPRhYriiUpRGwtLAgF/AX4jAEEQayICJAAgAkEIaiAAIAEoAmARAAAgAigCCCIAIAIoAgwoAgwRBgAhAyACQRBqJAAgAEEAIANCvbrG86mTmP9aURsLSwIBfwF+IwBBEGsiAiQAIAJBCGogACABKAJgEQAAIAIoAggiACACKAIMKAIMEQYAIQMgAkEQaiQAIABBACADQtnModKE2cCNVFEbC0sCAX8BfiMAQRBrIgIkACACQQhqIAAgASgCYBEAACACKAIIIgAgAigCDCgCDBEGACEDIAJBEGokACAAQQAgA0Lby8uunKaXu2lRGwtLAgF/AX4jAEEQayICJAAgAkEIaiAAIAEoAmARAAAgAigCCCIAIAIoAgwoAgwRBgAhAyACQRBqJAAgAEEAIANC2sDFiNb1nolJURsLSwIBfwF+IwBBEGsiAiQAIAJBCGogACABKAJgEQAAIAIoAggiACACKAIMKAIMEQYAIQMgAkEQaiQAIABBACADQsn35qX9096NTlEbC0wCAX8BfiMAQRBrIgIkACACQQhqIAAgASgCYBEAACACKAIIIgAgAigCDCgCDBEGACEDIAJBEGokACAAQQAgA0Kd8qHcsI+gp/gAURsLSwIBfwF+IwBBEGsiAiQAIAJBCGogACABKAJgEQAAIAIoAggiACACKAIMKAIMEQYAIQMgAkEQaiQAIABBACADQoKknvXY4IqNblEbC1kBAn0gAUEEaioCACECIAEqAgAhA0EIQQQQ7goiAUUEQEEIQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgASACOAIEIAEgAzgCACAAQajMwgA2AgQgACABNgIAC1kBAn0gAUEEaioCACECIAEqAgAhA0EIQQQQ7goiAUUEQEEIQQRB3ObDACgCACIAQY8HIAAbEQAAAAsgASACOAIEIAEgAzgCACAAQazPwgA2AgQgACABNgIACzoBAn8CQCAABEAgACgCACIBQX9GDQEgACABQQFqNgIAIAAoAgQoAiQgACABNgIADwsQzQsA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QQMgA0EDSRtB/wFxQQFrDgMBAwIACyACQQM2ApgIIAJBlr/DADYClAggAkECOwGQCCACIAA2AsQIIAIgBTYCwAggAiACQZAIajYCyAhBASEDDAULIAJBAzYCmAggAkGTv8MANgKUCCACQQI7AZAIIAIgADYCxAggAiAFNgLACCACIAJBkAhqNgLICEEBIQMMBAtBdEEFIAZBEHRBEHUiA0EASBsgA2wiA0G//QBLDQEgAkGQCGogAkHQCGogAkEQaiADQQR2QRVqIgZBACAEa0GAgH4gBEGAgAJJGyIDEK0BIANBEHRBEHUhAwJAIAIoApAIRQRAIAJBwAhqIAJB0AhqIAJBEGogBiADECYMAQsgAkHICGogAkGYCGooAgA2AgAgAiACKQOQCDcDwAgLIAMgAi4ByAgiA0gEQCACQQhqIAIoAsAIIAIoAsQIIAMgBCACQZAIahCKBCACIAA2AsQIIAIgBTYCwAggAiACKAIINgLICCACKAIMIQMMBAtBAiEDIAJBAjsBkAggBEUEQEEBIQMgAkEBNgKYCCACQZK/wwA2ApQIIAIgADYCxAggAiAFNgLACCACIAJBkAhqNgLICAwECyACQaAIaiAENgIAIAJBADsBnAggAkECNgKYCCACQfC9wwA2ApQIIAIgADYCxAggAiAFNgLACCACIAJBkAhqNgLICAwDC0ECIQMgAkECOwGQCCAERQ0BIAJBoAhqIAQ2AgAgAkEAOwGcCCACQQI2ApgIIAJB8L3DADYClAggAiAANgLECCACIAU2AsAIIAIgAkGQCGo2AsgIDAILQZ+/wwBBJUHEv8MAEKIJAAtBASEDIAJBATYCmAggAkGSv8MANgKUCCACIAA2AsQIIAIgBTYCwAggAiACQZAIajYCyAgLIAJBzAhqIAM2AgAgASACQcAIahDBAiACQfAIaiQADwsjAEGAAWsiAiQAIA69IQgCQCAOIA5iBEBBAiEEDAELIAhC/////////weDIgxCgICAgICAgAiEIAhCAYZC/v///////w+DIAhCNIinQf8PcSIAGyIJQgGDIQtBAyEEAkACQAJAQQFBAkEEIAhCgICAgICAgPj/AIMiDVAiBhsgDUKAgICAgICA+P8AURtBA0EEIAYbIAxQG0ECaw4DAAECAwtBBCEEDAILIABBswhrIQMgC1AhBEIBIQoMAQtCgICAgICAgCAgCUIBhiAJQoCAgICAgIAIUSIDGyEJQgJCASADGyEKIAtQIQRBy3dBzHcgAxsgAGohAwsgAiADOwF4IAIgCjcDcCACQgE3A2ggAiAJNwNgIAIgBDoAegJ/IARBAkYEQEHQp8MAIQNBAAwBCyAFRQRAQZC/wwBB0KfDACAIQgBTGyEDIAhCP4inDAELQZC/wwBBkb/DACAIQgBTGyEDQQELIQAgAkHcAGoCfwJAAkACQAJAIARBAmsiBEEDIARBA0kbQf8BcUEBaw4DAQMCAAsgAkEDNgIoIAJBlr/DADYCJCACQQI7ASAgAiAANgJUIAIgAzYCUCACIAJBIGo2AlhBAQwDCyACQQM2AiggAkGTv8MANgIkIAJBAjsBICACIAA2AlQgAiADNgJQIAIgAkEgajYCWEEBDAILIAJBIGogAkHgAGogAkEPahBlAkAgAigCIEUEQCACQdAAaiACQeAAaiACQQ9qECQMAQsgAkHYAGogAkEoaigCADYCACACIAIpAyA3A1ALIAIgAigCUCACKAJUIAIvAVhBACACQSBqEIoEIAIgADYCVCACIAM2AlAgAiACKAIANgJYIAIoAgQMAQsgAkECOwEgIAJBATYCKCACQZK/wwA2AiQgAiAANgJUIAIgAzYCUCACIAJBIGo2AlhBAQs2AgAgASACQdAAahDBAiACQYABaiQACzcBAX8gACgCACIBQSRPBEAgARAACyAAKAIEIgFBJE8EQCABEAALIAAoAggiAEEkTwRAIAAQAAsLigEAAkACQAJAAkAgACgCAC0AAEEBaw4DAQIDAAsgASgCGEGd7MEAQQcgAUEcaigCACgCDBEEAA8LIAEoAhhBmOzBAEEFIAFBHGooAgAoAgwRBAAPCyABKAIYQYLswQBBFiABQRxqKAIAKAIMEQQADwsgASgCGEHs68EAQRYgAUEcaigCACgCDBEEAAs3ACAAKgIAIAEqAgCUIABBBGoqAgAgAUEEaioCAJSSIABBCGoqAgAgAUEIaioCAJSSQwAAAABfC1QBAX9BBUEBEO4KIgFFBEBBBUEBQdzmwwAoAgAiAEGPByAAGxEAAAALIAFBBGpBsLvAAC0AADoAACABQay7wAAoAAA2AAAgAEEFNgIEIAAgATYCAAtOAQF/QRRBBBDuCiIERQRAQRRBBEHc5sMAKAIAIgRBjwcgBBsRAAAACyAEIAM4AhAgBCACOAIMIAQgATgCCCAEIAA4AgQgBEEANgIAIAQLWwEDfyMAQRBrIgIkACACQQhqIgMgAUEQaiIBQQRqKAIAIgQ2AgQgAyABKAIAIAQoAghBB2pBeHFqNgIAIAIoAgwhASAAIAIoAgg2AgAgACABNgIEIAJBEGokAAs4AQF/IwBBIGsiBCQAIAQgASACIAMQNiAAQQhqIARBCGopAwA3AgAgACAEKQMANwIAIARBIGokAAs8AQF9IABBFGogASoCACICOAIAIABBEGogAjgCACAAIAI4AgwgACACjCICOAIIIAAgAjgCBCAAIAI4AgALNQAjAEEgayIDJAAgAyABIAIQuAIgAEEIaiADQQhqKQMANwIAIAAgAykDADcCACADQSBqJAALNwEBfyMAQRBrIgMkACADQQhqIAJBCGooAgA2AgAgAyACKQIANwMAIAAgASADEKQBIANBEGokAAs3AQF/IwBBEGsiAyQAIANBCGogAUEIaigCADYCACADIAEpAgA3AwAgAiAAIAMQpAEgA0EQaiQACzMBAn0gACoCDCAAKgIAIgEgAEEEaioCACICIAEgAl8bIgEgAEEIaioCACICIAEgAl8bkgtAAQF/IwBBIGsiACQAIABBHGpBADYCACAAQaiYwwA2AhggAEIBNwIMIABB5J7DADYCCCAAQQhqQZyfwwAQ4AkAC0ABAX8jAEEgayIAJAAgAEEcakEANgIAIABB/KTDADYCGCAAQgE3AgwgAEG8pcMANgIIIABBCGpBxKXDABDgCQALwAIBA38jAEEgayICJAAgAkEBOgAYIAIgATYCFCACIAA2AhAgAkHcwMMANgIMIAJB0KfDADYCCCMAQRBrIgAkACACQQhqIgEoAgwiAkUEQEG4mMMAQStB1J3DABCiCQALIAEoAggiBEUEQEG4mMMAQStB5J3DABCiCQALIAAgAjYCCCAAIAE2AgQgACAENgIAIAAoAgAhASAAKAIEIQIgACgCCCEEIwBBEGsiACQAIAFBFGooAgAhAwJAAn8CQAJAIAFBBGooAgAOAgABAwsgAw0CQQAhAUGomMMADAELIAMNASABKAIAIgMoAgQhASADKAIACyEDIAAgATYCBCAAIAM2AgAgAEGonsMAIAIoAgggBCACLQAQEJUGAAsgAEEANgIEIAAg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akEAIABrEMUBIANBgAFqJAAPCyMAQYABayIDJAAgAC0AACECQQAhAANAIAAgA2pB/wBqQTBB1wAgAkEPcSIEQQpJGyAEajoAACAAQQFrIQAgAkH/AXEiBEEEdiECIARBD0sNAAsgAEGAAWoiAkGBAU8EQCACQYABENULAAsgAUEBQeTCwwBBAiAAIANqQYABakEAIABrEMUBIANBgAFqJAALKQEBfyMAQTBrIgIkACACQQhqIAAgAUEBEEEgAi0AFCACQTBqJABBAEcLSAEBfyABKAIAIQJBBEEEEO4KIgFFBEBBBEEEQdzmwwAoAgAiAEGPByAAGxEAAAALIAEgAjYCACAAQdykwgA2AgQgACABNgIACy0BAn0gACoCACIBIABBBGoqAgAiAiABIAJfGyIBIABBCGoqAgAiAiABIAJfGwsxAQF9IAAgASoCACICIAKUIAFBBGoqAgAiAiAClJIQfTgCDCAAQQA2AgggAEIANwIAC0wBAn0gACoCBCAAKgIAEOILIgFDAAAAAGBFBEBB6NDCAEEoQfTRwgAQogkAC0PbD8k/IAGTIgIgAiABIAGSIgEgASACXhsgASABXBsL5wEBAn8jAEEQayIAJAAgAEEIaiIDIAFBxJvDAEELEJYKIwBBEGsiAiQAIAMCf0EBIAMtAAQNABogAygCACEBIAMtAAVFBEAgASgCGEHUwsMAQQcgAUEcaigCACgCDBEEAAwBCyABLQAAQQRxRQRAIAEoAhhBzsLDAEEGIAFBHGooAgAoAgwRBAAMAQsgAkEBOgAPIAJBCGogAkEPajYCACACIAEpAhg3AwBBASACQcrCwwBBAxDzAQ0AGiABKAIYQc3CwwBBASABKAIcKAIMEQQACyIBOgAEIAJBEGokACAAQRBqJAAgAQszACAAIAEoAhggAkEAIAFBHGooAgAoAgwRBAA6AAggACABNgIAIABBAToACSAAQQA2AgQLKgEBfyMAQRBrIgMkACADIAAoAgA2AgwgA0EMaiABIAIQuQYgA0EQaiQACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEMaiABOAIADwsQzQsACxDOCwALKwACQCAABEAgACgCAA0BIABBADYCACAAQRxqIAE4AgAPCxDNCwALEM4LAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBJGogATgCAA8LEM0LAAsQzgsACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEEoaiABNgIADwsQzQsACxDOCwALKwACQCAABEAgACgCAA0BIABBADYCACAAQSxqIAE2AgAPCxDNCwALEM4LAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBMGogATYCAA8LEM0LAAsQzgsACysAAkAgAARAIAAoAgANASAAQQA2AgAgAEE0aiABNgIADwsQzQsACxDOCwALKwACQCAABEAgACgCAA0BIABBADYCACAAQThqIAE2AgAPCxDNCwALEM4LAAsrAAJAIAAEQCAAKAIADQEgAEEANgIAIABBCGogATgCAA8LEM0LAAsQzgsACzEBAX8gACABNgIMIABBADYCCCAAIAEoAhwiAjYCACAAIAIgAUEkaigCAEEUbGo2AgQLZgEBfyAAKAIAIQECQCAALQAEDQBB7ObDACgCAEH/////B3FFDQACf0HU6sMALQAABEBB2OrDACgCAEUMAQtB1OrDAEEBOgAAQdjqwwBBADYCAEEBCw0AIAFBAToAAQsgAUEAOgAACyYAAkAgAARAIAAoAgANASAAQQA2AgAgABCsAQ8LEM0LAAsQzgsAC0ABAX4gACkCACEBQRBBBBDuCiIARQRAQRBBBEHc5sMAKAIAIgBBjwcgABsRAAAACyAAIAE3AgQgAEEAOgAAIAALMAEBfSAAIAIqAgggASoCACIDlDgCCCAAIAMgAioCBJQ4AgQgACADIAIqAgCUOAIACy4AIAAgASkCWDcCACAAQRBqIAFB6ABqKQIANwIAIABBCGogAUHgAGopAgA3AgALLAAgACABKQIANwIAIABBEGogAUEQaikCADcCACAAQQhqIAFBCGopAgA3AgALLQAgACABKQI0NwIAIABBEGogAUHEAGopAgA3AgAgAEEIaiABQTxqKQIANwIAC/IJAQV/IwBBEGsiBCQAIAQgAzYCDCAEIAI2AgggBCABNgIEIAQgADYCACAEKAIEIQIgBCgCCCEBIAQoAgwhAyAEKAIAIQUjAEHwAGsiACQAIAAgAzYCDCAAIAE2AggCQAJAAkACQAJAIAAiBAJ/AkAgAkGBAk8EQAJ/QYACIAUsAIACQb9/Sg0AGkH/ASAFLAD/AUG/f0oNABpB/gEgBSwA/gFBv39KDQAaQf0BCyIAIAJJDQEg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AAs8AQF/QRBBBBDuCiIARQRAQRBBBEHc5sMAKAIAIgBBjwcgABsRAAAACyAAQgA3AgAgAEEIakIANwIAIAALOAACQCABLQAAQRBxQQR2RQRAIAEtAABBIHFBBXYNASAAIAEQwgsPCyAAIAEQiAcPCyAAIAEQiQcLKgAgAUEsaiACKQIANwIAIAFBNGogAkEIaigCADYCACAAIAFBrAIQ2QsaCyUBAX8jAEEgayICJAAgAiAAIAEQuAIgAi0ADCACQSBqJABBAEcLIwEBfyMAQRBrIgIkACACIAAgAUEBEBsgAi0ADCACQRBqJAALIwEBfyMAQRBrIgIkACACIAAgAUEBEBkgAi0ADCACQRBqJAALIwEBfyMAQRBrIgIkACACIAAgAUEBEBwgAi0ADCACQRBqJAALJAEBfyMAQRBrIgIkACACIAAgAUEBEI0CIAItAAwgAkEQaiQACyMBAX8jAEEQayICJAAgAiAAIAFBARAaIAItAAwgAkEQaiQACyMBAX8jAEEQayICJAAgAiAAIAFBARAeIAItAAwgAkEQaiQACyMBAX8jAEEQayICJAAgAiAAIAFBARAdIAItAAwgAkEQaiQAC2IBAX8jAEEQayIDJAAgAyACNgIIIAMgATYCBCADIAA2AgAgAygCACEBIAMoAgQhAiADKAIIIQMjAEEQayIAJAAgACACNgIMIAAgATYCCCAAQQhqQfyXwABBACADQQEQlQYACyIAAkAgAARAIAAoAgBBf0YNASAAKgIEDwsQzQsACxDOCwALYgEBfyMAQRBrIgMkACADIAI2AgggAyABNgIEIAMgADYCACADKAIAIQEgAygCBCECIAMoAgghAyMAQRBrIgAkACAAIAI2AgwgACABNgIIIABBCGpBqM/AAEEAIANBARCVBgALJwAgASACKQIANwIQIAFBGGogAkEIaigCADYCACAAIAFBrAIQ2QsaC2UBA38jAEEQayIBJAAgASAANgIIIAFBGzYCBCABQdz0wQA2AgAgASgCACECIAEoAgQhAyABKAIIIQEjAEEQayIAJAAgACADNgIMIAAgAjYCCCAAQQhqQcDswQBBACABQQEQlQYACyEBAX8CQCAAKAIEIgFFDQAgAEEIaigCAEUNACABEKwBCwslACAARQRAQfzAwABBMBDMCwALIAAgAiADIAQgBSABKAIQESEACx8AIAFBA08EQEGs+cAAQRsgAhC0CgALIAAgAUECdGoLJQAgACACIAEoAkAgAUHIAGooAgAgASgCTCABQdQAaigCABDUAQsgAQJ+IAApAwAiAkI/hyIDIAIgA3yFIAJCAFkgARDSBAsyAQF/QQRBBBDuCiIARQRAQQRBBEHc5sMAKAIAIgBBjwcgABsRAAAACyAAQQA2AgAgAAsjACAARQRAQfzAwABBMBDMCwALIAAgAiADIAQgASgCEBEBAAsjACAARQRAQfzAwABBMBDMCwALIAAgAiADIAQgASgCEBF+AAsjACAARQRAQfzAwABBMBDMCwALIAAgAiADIAQgASgCEBEVAAsjACAARQRAQfzAwABBMBDMCwALIAAgAiADIAQgASgCEBEaAAsaACAAIAFB3ObDACgCACIAQY8HIAAbEQAAAAsVACAAQQRqKAIABEAgACgCABCsAQsLIQAgAEUEQEH8wMAAQTAQzAsACyAAIAIgAyABKAIQEQIACyQAIAAtAABFBEAgAUGMxcMAQQUQwQEPCyABQYjFwwBBBBDBAQsdACABKAIARQRAAAsgAEG8tMAANgIEIAAgATYCAAsfACAARQRAQfzAwABBMBDMCwALIAAgAiABKAIQEQMACx0AIAEoAgBFBEAACyAAQYiHwQA2AgQgACABNgIACx0AIAEoAgBFBEAACyAAQYj6wQA2AgQgACABNgIACyAAIABBiLrCADYCBCAAIAE2AgAgAEEIaiABKgIYOAIACyAAIABBhLfCADYCBCAAIAE2AgAgAEEIaiABKgIMOAIACyAAIABBjL3CADYCBCAAIAE2AgAgAEEIaiABKgIkOAIACyAAIABBgM7CADYCBCAAIAE2AgAgAEEIaiABKgIIOAIACyAAIABBoNLCADYCBCAAIAE2AgAgAEEIaiABKgIIOAIACyAAIABBiMvCADYCBCAAIAE2AgAgAEEIaiABKgJgOAIACxIAQYSRwwBBHEGAksMAEKIJAAs0ACAAQv////f//////gA3AgggAEL////3/////343AgAgAEEQakL////39/////4ANwIACx0AIABBhLfCADYCBCAAIAE2AgAgAEEIakEANgIACx0AIABBjL3CADYCBCAAIAE2AgAgAEEIakEANgIACx0AIABBiLrCADYCBCAAIAE2AgAgAEEIakEANgIACx0AIABBiMvCADYCBCAAIAE2AgAgAEEIakEANgIACx0AIABBgM7CADYCBCAAIAE2AgAgAEEIakEANgIACx0AIABBoNLCADYCBCAAIAE2AgAgAEEIakEANgIACzQAIABC////9//////+ADcCCCAAQv////f/////fjcCACAAQRBqQv////f3/////gA3AgALNAAgAEL////3//////4ANwIIIABC////9/////9+NwIAIABBEGpC////9/f////+ADcCAAsaACAAQQA2AgggAEIANwIAIAAgASoCADgCDAscACABKAIYQeC/wwBBDiABQRxqKAIAKAIMEQQACxwAIAEoAhhBttbDAEEFIAFBHGooAgAoAgwRBAALGAAgACgCACABKAIAIAIoAgAgAygCABAJC5kHAQd/IAAhCAJAAkACQCACQQlPBEAgAyACEIcEIgANAUEAIQAMAwtBACEAIANBzf97Tw0CQRAgA0EEaiADQQtJG0EHakF4cSEFIAhBCGsiBCgCBEF4cSEBIAEgBGohBwJAAkACQAJAAkACQAJAIAQtAARBA3EEQCABIAVPDQEgB0Gk6sMAKAIARg0CIAdBoOrDACgCAEYNAyAHLQAEQQJxQQF2DQcgBygCBEF4cSIGIAFqIgogBUkNByAKIAVrIQkgBkGAAkkNBCAHEOsEDAULIAQoAgRBeHEhASAFQYACSQ0GIAEgBWtBgYAISSAFQQRqIAFNcQ0FIAQoAgAaDAYLIAEgBWsiAkEQSQ0EIAQgBCgCBEEBcSAFckECcjYCBCAEIAVqIgYgBigCBEEBcjYCBCAGIAYoAgRBAXEgAnJBAnI2AgQgAiAGaiIBIAEoAgRBAXI2AgQgBiACENQCDAQLQZzqwwAoAgAgAWoiASAFTQ0EIAQgBCgCBEEBcSAFckECcjYCBCAEIAVqIgIgAigCBEEBcjYCBCACIAEgBWsiAUEBcjYCBEGc6sMAIAE2AgBBpOrDACACNgIADAMLQZjqwwAoAgAgAWoiASAFSQ0DAkAgASAFayIGQRBJBEAgBCAEKAIEQQFxIAFyQQJyNgIEIAEgBGoiASABKAIEQQFyNgIEQQAhBkEAIQIMAQsgBCAEKAIEQQFxIAVyQQJyNgIEIAQgBWoiAiACKAIEQQFyNgIEIAIgBkEBcjYCBCACIAZqIgEgBjYCACABIAEoAgRB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kiEWICEgEZMiESAQlEMAAAAAkiAClCIaIAMqAmCSIR4gFyADKgJckiEXIBEgD5RDAAAAAJIgApQiGyADKgJUkiEfIBogAyoCUJIhGiAbIAMqAkySIRsgECAQlCIQIBEgEZQiIiAPIA+UIhGSkkMAAAAAkiEPIAIgECAPkpQgAyoCaJIhECACIBEgD5KUIAMqAliSIREgAiAiIA+SlCADKgJIkgshAiABQSxqIQEgGSAQkiEZIBggFpIhGCAVIB6SIRUgIyAXkiEjIBQgEZIhFCATIB+SIRMgEiAakiESICQgG5IhJCAlIAKSISUgBEEsayIEDQALCyAIRQ0AIAitQix+p0UNACAFEKwBCyADIBw4AlAgAyAgOAJMIAMgITgCSCADQThqIBk4AgAgA0E0aiAYOAIAIANBLGogIzgCACADQShqIBQ4AgAgAyAVOAIwIAMgEzgCJCADIBI4AiAgAyAkOAIcIAMgJTgCGCAAIANByABqIB0gA0EYahD/ASADQfAAaiQACxQAIAAoAgAgASAAKAIEKAIMEQMACxMAIABBkJjAADYCBCAAIAE2AgALEwAgAEGgmMAANgIEIAAgATYCAAsPACAAKAIAIAEQuAQaQQALCQAgACABEIcECysAAkAgACABEIcEIgFFDQAgAUEIay0ABEEDcUUNACABQQAgABDaCxoLIAELFgBBoODDACAANgIAQZzgwwBBAToAAAsTACAAQbzPwAA2AgQgACABNgIACxMAIABB1OzBADYCBCAAIAE2AgALEwAgAEHk7MEANgIEIAAgATYCAAsTACAAQfTswQA2AgQgACABNgIACxMAIABBhO3BADYCBCAAIAE2AgALEwAgAEGU7cEANgIEIAAgATYCAAsTACAAQaTtwQA2AgQgACABNgIACxMAIABBtO3BADYCBCAAIAE2AgALEwAgAEHE7cEANgIEIAAgATYCAAsTACAAQdTtwQA2AgQgACABNgIACxMAIABB5O3BADYCBCAAIAE2AgALEwAgAEH07cEANgIEIAAgATYCAAsTACAAQYTuwQA2AgQgACABNgIACxMAIABBlO7BADYCBCAAIAE2AgALEwAgAEGk7sEANgIEIAAgATYCAAsTACAAQbTuwQA2AgQgACABNgIACxMAIABBxO7BADYCBCAAIAE2AgALEwAgAEHU7sEANgIEIAAgATYCAAsTACAAQeTuwQA2AgQgACABNgIACxMAIABB9O7BADYCBCAAIAE2AgALEwAgAEGE78EANgIEIAAgATYCAAsTACAAQZTvwQA2AgQgACABNgIACxMAIABBpO/BADYCBCAAIAE2AgALEwAgAEG078EANgIEIAAgATYCAAsQACAAQQM2AgAgACABNgIECxAAIABBBDYCACAAIAE2AgQLEAAgAEECNgIAIAAgATYCBAsQACAAQQE2AgAgACABNgIECxAAIABBADYCACAAIAE2AgQLEwAgAEGQtMIANgIEIAAgATYCAAsTACAAQei2wgA2AgQgACABNgIACxMAIABB7LnCADYCBCAAIAE2AgALEwAgAEHwvMIANgIEIAAgATYCAAsTACAAQay9wgA2AgQgACABNgIACw8AIAAgAUHYAGogAhC5AgsQACAAQQk2AgAgACABNgIECxMAIABBkMDCADYCBCAAIAE2AgALEAAgAEEGNgIAIAAgATYCBAsTACAAQezCwgA2AgQgACABNgIACxAAIABBBTYCACAAIAE2AgQLEwAgAEHIxcIANgIEIAAgATYCAAsOACAAIAFBNGogAhC5AgsQACAAQQg2AgAgACABNgIECxAAIABBCjYCACAAIAE2AgQLEwAgAEHsysIANgIEIAAgATYCAAsQACAAQQs2AgAgACABNgIECxMAIABB5M3CADYCBCAAIAE2AgALEAAgAEEMNgIAIAAgATYCBAsTACAAQYTSwgA2AgQgACABNgIACxkAIABCgICAgPD//7//ADcCCCAAQgA3AgALEAAgAEEHNgIAIAAgATYCBAsQACAAQQ02AgAgACABNgIECxMAIABB+I/DADYCBCAAIAE2AgALEAAgAEEONgIAIAAgATYCBAsTACAAQZSQwwA2AgQgACABNgIACxAAIABBDzYCACAAIAE2AgQLEwAgAEGwkMMANgIEIAAgATYCAAsQACAAQRA2AgAgACABNgIECxMAIABBzJDDADYCBCAAIAE2AgALEAAgAEERNgIAIAAgATYCBAsTACAAQeiQwwA2AgQgACABNgIAC9EHARB/IAAoAgAhCCAAKAIEIQMjAEEQayIJJABBASEPAkACQAJAIAEoAhgiDEEiIAFBHGooAgAiECgCECINEQMADQACQCADRQ0AIAMgCGohESAIIQACQAJAA0AC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AB0AAAAEAAAACAAAAAQAAAAIAAAAc3RydWN0IFRyaU1lc2ggd2l0aCA3IGVsZW1lbnRzAAAsAhAAHgAAAGEgdHVwbGUgb2Ygc2l6ZSAzAAAABAAAAAAAAAABAAAACQAAAHN0cnVjdCBDb21wb3VuZCB3aXRoIDQgZWxlbWVudHMAeAIQAB8AAABzdHJ1Y3QgUG9seWxpbmUgd2l0aCAzIGVsZW1lbnRzAKACEAAfAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuNC9zcmMvd2FrZXIucnMAAADIAhAAZQAAAGgAAAArAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuNC9zcmMvZmxhdm9ycy96ZXJvLnJzQAMQAGwAAAC5AAAANgAAAEADEABsAAAAwAAAADYAAABzdHJ1Y3QgVHJpTWVzaFRvcG9sb2d5IHdpdGggMyBlbGVtZW50cwAAzAMQACYAAAB2YXJpYW50IGluZGV4IDAgPD0gaSA8IDL8AxAAGAAAAHN0cnVjdCBFZGdlIHdpdGggMyBlbGVtZW50cwAcBBAAGwAAAHN0cnVjdCBBcmVuYSB3aXRoIDQgZWxlbWVudHNABBAAHAAAAHN0cnVjdCBUcmlNZXNoUHNldWRvTm9ybWFscyB3aXRoIDIgZWxlbWVudHMAZAQQACsAAABzdHJ1Y3QgUmlnaWRCb2R5IHdpdGggMTQgZWxlbWVudHMAAACYBBAAIQAAAHN0cnVjdCBFZGdlIHdpdGggNCBlbGVtZW50cwDEBBAAGwAAAHZhcmlhbnQgaW5kZXggMCA8PSBpIDwgMTkAAADoBBAAGQAAAHN0cnVjdCBDb2FyZW5hIHdpdGggMSBlbGVtZW50AAAADAUQAB0AAABzdHJ1Y3QgVHJpTWVzaENvbm5lY3RlZENvbXBvbmVudHMgd2l0aCAzIGVsZW1lbnRzAAAANAUQADEAAABzdHJ1Y3QgR3JhcGggd2l0aCAyIGVsZW1lbnRzcAUQABwAAABzdHJ1Y3QgQ29sbGlkZXJTZXQgd2l0aCAzIGVsZW1lbnRzAACUBRAAIgAAAHN0cnVjdCBDb250YWN0UGFpciB3aXRoIDYgZWxlbWVudHMAAMAFEAAiAAAAc3RydWN0IExVIHdpdGggMiBlbGVtZW50cwAAAOwFEAAZAAAAc3RydWN0IFJpZ2lkQm9keVNldCB3aXRoIDIgZWxlbWVudHMAEAYQACMAAABzdHJ1Y3QgSXNsYW5kTWFuYWdlciB3aXRoIDQgZWxlbWVudHM8BhAAJAAAAHN0cnVjdCBDb252ZXhQb2x5aGVkcm9uIHdpdGggOCBlbGVtZW50cwBoBhAAJwAAAHN0cnVjdCBSb3VuZFNoYXBlIHdpdGggMiBlbGVtZW50cwAAAJgGEAAhAAAAc3RydWN0IENvbnRhY3RNYW5pZm9sZERhdGEgd2l0aCA3IGVsZW1lbnRzAADEBhAAKgAAAHN0cnVjdCBRQlZIIHdpdGggNCBlbGVtZW50cwD4BhAAGwAAAHN0cnVjdCBNYXNzUHJvcGVydGllcyB3aXRoIDQgZWxlbWVudHMAAAAcBxAAJQAAAHN0cnVjdCBJc29tZXRyeSB3aXRoIDIgZWxlbWVudHMATAcQAB8AAAB2YXJpYW50IGluZGV4IDAgPD0gaSA8IDR0BxAAGAAAAHN0cnVjdCBTQVBBeGlzIHdpdGggMyBlbGVtZW50cwAAlAcQAB4AAABzdHJ1Y3QgU0FQTGF5ZXIgd2l0aCA2IGVsZW1lbnRzALwHEAAfAAAAc3RydWN0IFNBUFByb3hpZXMgd2l0aCAyIGVsZW1lbnRzAAAA5AcQACEAAABzdHJ1Y3QgTXVsdGlib2R5IHdpdGggMTYgZWxlbWVudHMAAAAQCBAAIQAAAHN0cnVjdCBTQVBSZWdpb24gd2l0aCA3IGVsZW1lbnRzPAgQACAAAABzdHJ1Y3QgQnJvYWRQaGFzZSB3aXRoIDYgZWxlbWVudHMAAABkCBAAIQAAAHN0cnVjdCBHZW5lcmljSGVpZ2h0RmllbGQgd2l0aCA1IGVsZW1lbnRzAAAAkAgQACkAAABzdHJ1Y3QgSW1wdWxzZUpvaW50IHdpdGggNSBlbGVtZW50cwDECBAAIwAAAHN0cnVjdCBNdWx0aWJvZHlKb2ludCB3aXRoIDMgZWxlbWVudHMAAADwCBAAJQAAAHN0cnVjdCBJbXB1bHNlSm9pbnRTZXQgd2l0aCA0IGVsZW1lbnRzAAAgCRAAJgAAAHN0cnVjdCBNdWx0aWJvZHlKb2ludFNldCB3aXRoIDQgZWxlbWVudHNQCRAAKAAAAHN0cnVjdCBNdWx0aWJvZHlXb3Jrc3BhY2Ugd2l0aCAyIGVsZW1lbnRzAAAAgAkQACkAAAB2YXJpYW50IGluZGV4IDAgPD0gaSA8IDa0CRAAGAAAAHN0cnVjdCBUcmlNZXNoU2hhcGVDb250YWN0TWFuaWZvbGRzV29ya3NwYWNlIHdpdGggMyBlbGVtZW50c9QJEAA8AAAAc3RydWN0IEhlaWdodEZpZWxkU2hhcGVDb250YWN0TWFuaWZvbGRzV29ya3NwYWNlIHdpdGggMiBlbGVtZW50cxgKEABAAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy9zaGFwZS9oZWlnaHRmaWVsZDMucnNgChAAaAAAAD0AAAAJAAAAc3RydWN0IENvbnRhY3RNYW5pZm9sZCB3aXRoIDggZWxlbWVudHMAANgKEAAmAAAAc3RydWN0IENvbXBvc2l0ZVNoYXBlU2hhcGVDb250YWN0TWFuaWZvbGRzV29ya3NwYWNlIHdpdGggMiBlbGVtZW50cwAICxAAQwAAAHN0cnVjdCBIZWlnaHRGaWVsZENvbXBvc2l0ZVNoYXBlQ29udGFjdE1hbmlmb2xkc1dvcmtzcGFjZSB3aXRoIDIgZWxlbWVudHMAAABUCxAASQAAAHN0cnVjdCBDb21wb3NpdGVTaGFwZUNvbXBvc2l0ZVNoYXBlQ29udGFjdE1hbmlmb2xkc1dvcmtzcGFjZSB3aXRoIDIgZWxlbWVudHOoCxAATAAAAAQAAAAIAAAABAAAAAoAAAALAAAABAAAAAwAAAAEAAAADAAAAAQAAAAkAAAABAAAAA0AAAAOAAAADAAAAAQAAAAPAAAAEAAAABEAAABhIERpc3BsYXkgaW1wbGVtZW50YXRpb24gcmV0dXJuZWQgYW4gZXJyb3IgdW5leHBlY3RlZGx5L3J1c3RjLzc3NjUyYjllZjNmYzk4ZTJkZjBlMjYwZWZlZGI4MGFhNjhjMDhjMDYvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAAB/DBAASwAAALEJAAAOAAAABAAAAAQAAAAEAAAAEgAAABMAAAAUAAAAYXNzZXJ0aW9uIGZhaWxlZDogbWlkIDw9IHNlbGYubGVuKCljYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlAAAEAAAAAAAAAAEAAAAVAAAAL3J1c3RjLzc3NjUyYjllZjNmYzk4ZTJkZjBlMjYwZWZlZGI4MGFhNjhjMDhjMDYvbGlicmFyeS9hbGxvYy9zcmMvY29sbGVjdGlvbnMvdmVjX2RlcXVlL21vZC5yc2Fzc2VydGlvbiBmYWlsZWQ6IHNlbGYuY2FwKCkgPT0gb2xkX2NhcCAqIDIAAABUDRAAXgAAAM8IAAAJAAAAaW52YWxpZCB2YWx1ZTogLCBleHBlY3RlZCAAAPANEAAPAAAA/w0QAAsAAABpbnZhbGlkIGxlbmd0aCAAHA4QAA8AAAD/DRAACwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcGFydGl0aW9uaW5nL3FidmgvdHJhdmVyc2FsLnJzAAAAPA4QAHEAAAAiAAAAGAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvc2hhcGUvdHJpbWVzaC5ycwDADhAAYwAAAJ8BAAARAAAAwA4QAGMAAACgAQAAEQAAAMAOEABjAAAAoQEAABEAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2luZGV4bWFwLTEuOC4yL3NyYy9tYXAvY29yZS5ycwBUDxAAXwAAACoAAAAjAAAAVA8QAF8AAAAiAAAADwAAAE1hdHJpeCBpbml0LiBlcnJvcjogdGhlIHNsaWNlIGRpZCBub3QgY29udGFpbiB0aGUgcmlnaHQgbnVtYmVyIG9mIGVsZW1lbnRzLi9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvbmFsZ2VicmEtMC4zMS4wL3NyYy9iYXNlL2NvbnN0cnVjdGlvbi5ycx8QEABpAAAAYAAAAAkAAABNYXRyaXggaW5kZXggb3V0IG9mIGJvdW5kcy4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3JhcGllcjNkLTAuMTMuMC9zcmMvZGF0YS9hcmVuYS5ycwAAALMQEABiAAAACgEAAB4AAABjb3JydXB0IGZyZWUgbGlzdAAAACgREAARAAAAsxAQAGIAAAALAQAAKwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcmFwaWVyM2QtMC4xMy4wL3NyYy9kYXRhL2dyYXBoLnJzAABUERAAYgAAAJIAAAAYAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5lZGdlcy5sZW4oKSAhPSBjcmF0ZTo6SU5WQUxJRF9VU0laRQAAVBEQAGIAAADcAAAACQAAAEdyYXBoOjphZGRfZWRnZTogbm9kZSBpbmRpY2VzIG91dCBvZiBib3VuZHMAFBIQACsAAABUERAAYgAAAOQAAAAbAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5ub2Rlcy5sZW4oKSAhPSBjcmF0ZTo6SU5WQUxJRF9VU0laRQAAVBEQAGIAAACzAAAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcmFwaWVyM2QtMC4xMy4wL3NyYy9kYXRhL2NvYXJlbmEucnOkEhAAZAAAAF0AAAAZAAAApBIQAGQAAABOAAAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcmFwaWVyM2QtMC4xMy4wL3NyYy9keW5hbWljcy9qb2ludC9pbXB1bHNlX2pvaW50L2ltcHVsc2Vfam9pbnRfc2V0LnJzAAAoExAAhgAAAOEAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9yYXBpZXIzZC0wLjEzLjAvc3JjL2R5bmFtaWNzL2pvaW50L211bHRpYm9keV9qb2ludC9tdWx0aWJvZHlfam9pbnRfc2V0LnJzAADAExAAigAAAGkAAAAbAAAAwBMQAIoAAABqAAAAQAAAAMATEACKAAAAlAAAAD4AAADAExAAigAAAJUAAAAfAAAAwBMQAIoAAACYAAAAQgAAAFBhcmVudCByaWdpZCBib2R5IG5vdCBmb3VuZC4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3JhcGllcjNkLTAuMTMuMC9zcmMvZ2VvbWV0cnkvY29sbGlkZXJfc2V0LnJzAAAAuBQQAG0AAABrAAAADgAAALgUEABtAAAAbwAAADUAAAC4FBAAbQAAAHIAAAAiAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9yYXBpZXIzZC0wLjEzLjAvc3JjL2dlb21ldHJ5L2ludGVyYWN0aW9uX2dyYXBoLnJzAABYFRAAcgAAAIIAAAA/AAAAWBUQAHIAAACDAAAADgAAAFgVEAByAAAAgwAAACcAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3JhcGllcjNkLTAuMTMuMC9zcmMvcGlwZWxpbmUvZGVidWdfcmVuZGVyX3BpcGVsaW5lL2RlYnVnX3JlbmRlcl9iYWNrZW5kLnJzAPwVEACLAAAANQAAADgAAAD8FRAAiwAAADYAAAA4AAAABAAAACQAAAAEAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAQAAAAkAAAABAAAAA0AAAAgAAAAIQAAACIAAAAjAAAABAAAACQAAAAEAAAABAAAACQAAAAEAAAADQAAACAAAAAhAAAAIgAAACMAAAD8FhAA/BYQACEAAAAEAAAAJAAAAAQAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAqBYQAA0AAAAgDBAAIAAAACEAAAAiAAAAIwAAANwWEAD8FhAA/BYQACEAAAAIFxAAKgAAACsAAAAsAAAALQAAAC4AAAAvAAAAMAAAADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcmFwaWVyM2QtMC4xMy4wL3NyYy9waXBlbGluZS9kZWJ1Z19yZW5kZXJfcGlwZWxpbmUvZGVidWdfcmVuZGVyX3BpcGVsaW5lLnJz8BcQAIwAAAAHAgAAIwAAAPAXEACMAAAA/AEAACMAAAAAAAAAAQAAAAIAAAADAAAAAAAAAAEAAADwFxAAjAAAAK8BAAAjAAAA8BcQAIwAAACkAQAAIwAAAPAXEACMAAAA0AAAAD4AAADwFxAAjAAAANAAAABIAAAABAAAAAwAAAAEAAAAOgAAADsAAAA8AAAAPQAAAD4AAAA/AAAAQAAAAEEAAABCAAAAQwAAAAQAAAAMAAAABAAAAAwAAABEAAAARQAAAEYAAABHAAAABAAAAAwAAAAEAAAABAAAAAwAAAAEAAAADAAAAEQAAABFAAAARgAAAEcAAABIGRAASBkQAEUAAAAEAAAADAAAAAQAAABIAAAASQAAAEoAAABLAAAATAAAAE0AAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAA9BgQAAwAAAAQDBAARAAAAEUAAABGAAAARwAAACgZEABIGRAASBkQAEUAAABUGRAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAMwAAADQAAABXAAAAWAAAAFkAAABaAAAAWwAAAAQAAAAIAAAABAAAAFwAAAAvcnVzdGMvNzc2NTJiOWVmM2ZjOThlMmRmMGUyNjBlZmVkYjgwYWE2OGMwOGMwNi9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy92ZWNfZGVxdWUvcmluZ19zbGljZXMucnMAAEwaEABmAAAAIAAAAA4AAABMGhAAZgAAACMAAAARAAAARXhwZWN0ZWQgIGNvbXBvbmVudHMsIGZvdW5kINQaEAAJAAAA3RoQABMAAABhbiBhcnJheSBvZiBsZW5ndGggMwQAAAAAAAAAAQAAAF0AAABhbiBhcnJheSBvZiBsZW5ndGggNgQAAAAAAAAAAQAAAF4AAABJbnZhbGlkIEltcHVsc2VKb2ludCByZWZlcmVuY2UuIEl0IG1heSBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwaHlzaWNzIFdvcmxkLnJhcGllcjNkLy4uL3NyYy9keW5hbWljcy9pbXB1bHNlX2pvaW50X3NldC5ycwAAAJgbEAAtAAAACwAAAEQAAACYGxAALQAAABYAAABIAAAASW52YWxpZCBKb2ludCByZWZlcmVuY2UuIEl0IG1heSBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwaHlzaWNzIFdvcmxkLnJhcGllcjNkLy4uL3NyYy9keW5hbWljcy9tdWx0aWJvZHlfam9pbnRfc2V0LnJzMRwQAC8AAAAOAAAADgAAADEcEAAvAAAADwAAAB4AAABJbnZhbGlkIFJpZ2lkQm9keSByZWZlcmVuY2UuIEl0IG1heSBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwaHlzaWNzIFdvcmxkLnJhcGllcjNkLy4uL3NyYy9keW5hbWljcy9yaWdpZF9ib2R5X3NldC5ycwDNHBAAKgAAACsAAAA7AAAAzRwQACoAAAA2AAAAPwAAAEludmFsaWQgQ29sbGlkZXIgcmVmZXJlbmNlLiBJdCBtYXkgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcGh5c2ljcyBXb3JsZC5yYXBpZXIzZC8uLi9zcmMvZ2VvbWV0cnkvY29sbGlkZXJfc2V0LnJzZB0QACgAAAAQAAAADgAAAGQdEAAoAAAAHAAAAA4AAAAwLjguMWludmFsaWQgZW51bSB2YWx1ZSBwYXNzZWRyYXBpZXIzZC8uLi9zcmMvZHluYW1pY3MvcmlnaWRfYm9keS5yc8odEAAmAAAATwEAADIAAABOb3QgeWV0IGltcGxlbWVudGVkLnJhcGllcjNkLy4uL3NyYy9nZW9tZXRyeS9jb2xsaWRlci5ycxQeEAAkAAAAkQAAADkAAAAUHhAAJAAAAKQBAAAOAAAAFB4QACQAAADiAQAADgAAAHJhcGllcjNkLy4uL3NyYy9nZW9tZXRyeS9uYXJyb3dfcGhhc2UucnNoHhAAKAAAANYAAAASAAAAaB4QACgAAADaAAAAEgAAAGgeEAAoAAAA3gAAABIAAAByYXBpZXIzZC8uLi9zcmMvZ2VvbWV0cnkvc2hhcGUucnMAAADAHhAAIQAAAAwBAAA6AAAAwB4QACEAAAAMAQAAQAAAAMAeEAAhAAAAFgEAADgAAADAHhAAIQAAABYBAAA+AAAAwB4QACEAAABVAQAAQAAAAMAeEAAhAAAAVQEAAEYAAADAHhAAIQAAAGABAABAAAAAwB4QACEAAABgAQAARgAAAAQAAAAAAAAAAQAAAF8AAABgAAAAYQAAAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAHwfEABiAAAAYwAAAAwAAAAEAAAAZAAAAGUAAABmAAAAZwAAAAgAAAAEAAAAZwAAAAgAAAAEAAAAtB8QAGgAAAAEAAAABAAAAAQAAABpAAAAagAAAGoAAABzdHJ1Y3QgRGVzZXJpYWxpemFibGVXb3JsZCB3aXRoIDkgZWxlbWVudHMAAOwfEAAqAAAAAgAAAAMAAAAAAAAAAQAAAEludmFsaWQgc2l6ZSA6IHNpemVzIG11c3QgZml0IGluIGEgdXNpemUgKDAgdG8gKTAgEAANAAAAPSAQACIAAABfIBAAAQAAAP////9jbG9zdXJlIGludm9rZWQgcmVjdXJzaXZlbHkgb3IgZGVzdHJveWVkIGFscmVhZHl3AAAABAAAAAQAAAB4AAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9qcy1zeXMtMC4zLjU3L3NyYy9saWIucnMAAAC8IBAAWQAAALAWAAABAAAAbnVsbCBwb2ludGVyIHBhc3NlZCB0byBydXN0cmVjdXJzaXZlIHVzZSBvZiBhbiBvYmplY3QgZGV0ZWN0ZWQgd2hpY2ggd291bGQgbGVhZCB0byB1bnNhZmUgYWxpYXNpbmcgaW4gcnVzdGNhcGFjaXR5IG92ZXJmbG93AFRoZSBsb29zZW5pbmcgbWFyZ2luIG11c3QgYmUgcG9zaXRpdmUuAACkIRAAJgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvYm91bmRpbmdfdm9sdW1lL2FhYmIucnMAANQhEABqAAAAGwIAAAkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3F1ZXJ5L2RlZmF1bHRfcXVlcnlfZGlzcGF0Y2hlci5yc1AiEAB0AAAA9gEAAB4AAAB9AAAAAAAAAAEAAAB9AAAAAAAAAAEAAADUIhAAfgAAAH8AAACAAAAAgQAAAIIAAACDAAAAhAAAAIUAAABQIhAAdAAAAM8BAAAxAAAAUCIQAHQAAAC8AQAAMQAAAFAiEAB0AAAAJgIAAC8AAABQIhAAdAAAADUCAAAvAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuNC9zcmMvd2FrZXIucnMAAABQIxAAZQAAAGgAAAArAAAAUCMQAGUAAABGAAAAKAAAAGludGVybmFsIGVycm9yOiBlbnRlcmVkIHVucmVhY2hhYmxlIGNvZGUvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2Nyb3NzYmVhbS1jaGFubmVsLTAuNS40L3NyYy9jaGFubmVsLnJzAAAkEABnAAAAsQEAAC0AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2Nyb3NzYmVhbS1jaGFubmVsLTAuNS40L3NyYy9jb250ZXh0LnJzAHgkEABnAAAAMwAAAB4AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2Nyb3NzYmVhbS1jaGFubmVsLTAuNS40L3NyYy9mbGF2b3JzL2xpc3QucnPwJBAAbAAAAAMBAABDAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuNC9zcmMvZmxhdm9ycy96ZXJvLnJzbCUQAGwAAADoAAAALQAAAGwlEABsAAAABgEAAEAAAABsJRAAbAAAAAcBAABHAAAAbCUQAGwAAAABAQAAQAAAAGwlEABsAAAAAgEAAEcAAABsJRAAbAAAAP8AAAAmAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9jcm9zc2JlYW0tY2hhbm5lbC0wLjUuNC9zcmMvZmxhdm9ycy9hcnJheS5ycwAAADgmEABtAAAAeAEAADcAAAA4JhAAbQAAAHYBAAAqAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9uYWxnZWJyYS0wLjMxLjAvc3JjL2Jhc2UvdmVjX3N0b3JhZ2UucnMvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3NoYXBlL2hlaWdodGZpZWxkMy5yczAnEABoAAAAPQAAAAkAAAB9AAAACAAAAAQAAACGAAAAhwAAAH0AAAAkAAAABAAAAIgAAAAoKWFzc2VydGlvbiBmYWlsZWQ6IG1pbiA8PSBtYXgvcnVzdGMvNzc2NTJiOWVmM2ZjOThlMmRmMGUyNjBlZmVkYjgwYWE2OGMwOGMwNi9saWJyYXJ5L2NvcmUvc3JjL251bS9mMzIucnMAAADqJxAASwAAAPUEAAAJAAAAfQAAAAQAAAAEAAAAiQBB4NDAAAu22AJhdHRlbXB0IHRvIGNhbGN1bGF0ZSB0aGUgcmVtYWluZGVyIHdpdGggYSBkaXZpc29yIG9mIHplcm8AYXNzZXJ0aW9uIGZhaWxlZDogbWlkIDw9IHNlbGYubGVuKCkAAAAAAAAAY2FsbGVkIGBPcHRpb246OnVud3JhcCgpYCBvbiBhIGBOb25lYCB2YWx1ZQB9AAAAAAAAAAEAAACKAAAAfQAAAAQAAAAEAAAAiwAAAH0AAAAEAAAABAAAAIwAAAB9AAAABAAAAAQAAACNAAAAfQAAAAQAAAAEAAAAjgAAAH0AAAAEAAAABAAAAI8AAAAvcnVzdGMvNzc2NTJiOWVmM2ZjOThlMmRmMGUyNjBlZmVkYjgwYWE2OGMwOGMwNi9saWJyYXJ5L2FsbG9jL3NyYy9jb2xsZWN0aW9ucy92ZWNfZGVxdWUvbW9kLnJzYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5jYXAoKSA9PSBvbGRfY2FwICogMgAAAFApEABeAAAAzwgAAAkAAAAvcnVzdGMvNzc2NTJiOWVmM2ZjOThlMmRmMGUyNjBlZmVkYjgwYWE2OGMwOGMwNi9saWJyYXJ5L2FsbG9jL3NyYy9zbGljZS5ycwAA7CkQAEoAAABnBAAAFQAAAOwpEABKAAAAdQQAAB4AAADsKRAASgAAAH4EAAAYAAAA7CkQAEoAAAB/BAAAGQAAAOwpEABKAAAAggQAABoAAAD/L1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9iaXQtdmVjLTAuNi4zL3NyYy9saWIucnMAAIkqEABZAAAAwAEAABgAAABpbmRleCBvdXQgb2YgYm91bmRzOiAgPj0gAAAA9CoQABUAAAAJKxAABAAAAIkqEABZAAAAGwIAAAkAAACJKhAAWQAAAB8CAAAaAAAAiSoQAFkAAAAgAgAAGgAAAIkqEABZAAAA+QQAADMAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3BhcnRpdGlvbmluZy9xYnZoL2J1aWxkLnJzAAAAYCsQAG0AAABXAQAAIAAAAGArEABtAAAAWgEAABEAAABgKxAAbQAAAHUBAAAaAAAAYCsQAG0AAAB9AQAAJQAAAGArEABtAAAAsAEAAAkAAABgKxAAbQAAALIBAAAJAAAAYCsQAG0AAAC0AQAACQAAAGArEABtAAAAPwEAAAkAAABgKxAAbQAAACYBAAANAAAAYCsQAG0AAAAnAQAADQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcGFydGl0aW9uaW5nL3FidmgvdXBkYXRlLnJzAABwLBAAbgAAAKYAAAAXAAAAcCwQAG4AAACnAAAAGQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcGFydGl0aW9uaW5nL3FidmgvdHJhdmVyc2FsLnJzAAAAAC0QAHEAAACcAAAAGAAAAAAtEABxAAAAXAAAABgAAAAALRAAcQAAACIAAAAYAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy9xdWVyeS9jb250YWN0X21hbmlmb2xkcy9jb250YWN0X21hbmlmb2xkc19oYWxmc3BhY2VfcGZtLnJzAAAApC0QAI0AAABAAAAAFAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvY29udGFjdF9tYW5pZm9sZHMvY29udGFjdF9tYW5pZm9sZHNfdHJpbWVzaF9zaGFwZS5ycwAAAEQuEACNAAAAWgAAABwAAABELhAAjQAAAFoAAAA2AAAARC4QAI0AAACpAAAAKQAAAEQuEACNAAAArwAAAB0AAAB9AAAAJAAAAAQAAACQAAAAkQAAAJIAAACTAAAAlAAAAJUAAACWAAAAlwAAAJgAAACZAAAAfQAAACQAAAAEAAAAiAAAAJoAAACbAAAAnAAAAJ0AAAB9AAAAJAAAAAQAAAB9AAAAJAAAAAQAAACIAAAAmgAAAJsAAACcAAAAnQAAAGgvEABoLxAAmwAAAH0AAAAkAAAABAAAAJ4AAACfAAAAoAAAAKEAAACiAAAAowAAAJAAAACRAAAAkgAAAJMAAACUAAAAlQAAAJYAAACXAAAAmAAAAJkAAAAULxAAiAAAALwnEACaAAAAmwAAAJwAAACdAAAASC8QAGgvEABoLxAAmwAAAHQvEAAqAAAAKwAAACwAAAAtAAAApAAAAC8AAAAwAAAAMQAAADIAAAAzAAAANAAAADUAAAClAAAANwAAADgAAACmAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy9xdWVyeS9jb250YWN0X21hbmlmb2xkcy9jb250YWN0X21hbmlmb2xkc19oZWlnaHRmaWVsZF9zaGFwZS5ycwAAAFwwEACRAAAAawAAABwAAABcMBAAkQAAAGsAAAA2AAAAXDAQAJEAAAB/AAAAIAAAAFwwEACRAAAAlgAAAB0AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3F1ZXJ5L2NvbnRhY3RfbWFuaWZvbGRzL2NvbnRhY3RfbWFuaWZvbGRzX2NvbXBvc2l0ZV9zaGFwZV9zaGFwZS5ycwAAADAxEACVAAAARQAAABwAAAAwMRAAlQAAAEUAAAA2AAAAfQAAADQAAAAEAAAApwAAAKgAAAAwMRAAlQAAAFkAAAAkAAAAMDEQAJUAAAB2AAAAIQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvY29udGFjdF9tYW5pZm9sZHMvY29udGFjdF9tYW5pZm9sZHNfaGVpZ2h0ZmllbGRfY29tcG9zaXRlX3NoYXBlLnJzABwyEACbAAAASAAAABwAAAAcMhAAmwAAAEgAAAA2AAAAfQAAADQAAAAEAAAAqQAAAKoAAAAcMhAAmwAAAGAAAAAoAAAAHDIQAJsAAAB9AAAAJQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvY29udGFjdF9tYW5pZm9sZHMvY29udGFjdF9tYW5pZm9sZHNfY29tcG9zaXRlX3NoYXBlX2NvbXBvc2l0ZV9zaGFwZS5ycwAMMxAAnwAAAEQAAAAcAAAADDMQAJ8AAABEAAAANgAAAH0AAAA4AAAABAAAAKsAAACsAAAAfQAAADgAAAAEAAAArQAAAK4AAAAMMxAAnwAAAHIAAAAsAAAADDMQAJ8AAACRAAAAKQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvZXBhL2VwYTMucnMUNBAAZAAAACEBAAAbAAAAFDQQAGQAAADwAAAAFwAAABQ0EABkAAAA8QAAABcAAAAUNBAAZAAAAPIAAAAXAAAAFDQQAGQAAAANAQAAHQAAABQ0EABkAAAADQEAADcAAAAUNBAAZAAAABIBAAAdAAAAFDQQAGQAAAASAQAANwAAABQ0EABkAAAAFwEAAB0AAAAUNBAAZAAAABcBAAA3AAAAFDQQAGQAAAAcAQAAHQAAABQ0EABkAAAAHAEAADcAAAAUNBAAZAAAAD0BAAAyAAAAFDQQAGQAAACjAQAAGgAAABQ0EABkAAAARAEAABgAAAAUNBAAZAAAAFgBAAAiAAAAFDQQAGQAAABdAQAADQAAABQ0EABkAAAAXwEAACIAAAAUNBAAZAAAAGABAAAiAAAAFDQQAGQAAABhAQAAIgAAABQ0EABkAAAAbwEAABUAAAAUNBAAZAAAAIMBAAAwAAAAFDQQAGQAAACDAQAAIgAAABQ0EABkAAAAlwEAAA0AAAAUNBAAZAAAAJgBAAAjAAAAYXNzZXJ0aW9uIGZhaWxlZDogbWluX2JvdW5kID09IG1pbl9ib3VuZC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvZ2prL2dqay5ycwAwNhAAYwAAAIwAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy9zaGFwZS9wb2x5Z29uYWxfZmVhdHVyZTNkLnJzAKQ2EABvAAAAGgEAAB4AAACkNhAAbwAAABwBAAA6AAAApDYQAG8AAAAfAQAAKQAAAKQ2EABvAAAARgEAAB4AAACkNhAAbwAAAEgBAAA6AAAApDYQAG8AAABLAQAAKQAAAKQ2EABvAAAAbwEAABEAAACkNhAAbwAAAHABAAARAAAApDYQAG8AAAB1AQAAFQAAAKQ2EABvAAAAdgEAACUAAACkNhAAbwAAAHYBAAAVAAAApDYQAG8AAAB9AQAALAAAAKQ2EABvAAAAfQEAAB0AAABpbmRleCBvdXQgb2YgYm91bmRzL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9pbmRleG1hcC0xLjguMi9zcmMvbWFwLnJzAAAA9zcQAFoAAACXAQAAGgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvaW5kZXhtYXAtMS44LjIvc3JjL21hcC9jb3JlLnJzAGQ4EABfAAAAKgAAACMAAABpbmRleCBub3QgZm91bmQAZDgQAF8AAAA2AAAACgAAAGQ4EABfAAAAhAIAAA4AAABkOBAAXwAAAPsAAAAuAAAAZDgQAF8AAACfAQAAIgAAAGQ4EABfAAAApQEAAB4AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2luZGV4bWFwLTEuOC4yL3NyYy9tYXAvY29yZS9yYXcucnMANDkQAGMAAAB2AAAACgAAAGQ4EABfAAAAIgAAAA8AAABnZW1tOiBkaW1lbnNpb25zIG1pc21hdGNoIGZvciBhZGRpdGlvbi4AuDkQACcAAABHZW12OiBkaW1lbnNpb25zIG1pc21hdGNoLkRhdGEgc3RvcmFnZSBidWZmZXIgZGltZW5zaW9uIG1pc21hdGNoLgAAAMgmEABoAAAAVAAAAAkAAABNYXRyaXggc2xpY2luZyBvdXQgb2YgYm91bmRzLi9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvbmFsZ2VicmEtMC4zMS4wL3NyYy9iYXNlL21hdHJpeF9zbGljZS5ycwAAWToQAGkAAAAJAQAACQAAAFk6EABpAAAADQEAAAkAAABSb3dzIHJhbmdlIHBhaXI6IHRoZSBzbGljZSByYW5nZXMgbXVzdCBub3Qgb3ZlcmxhcC4AWToQAGkAAACzAgAABQAAAFJvd3MgcmFuZ2UgcGFpcjogaW5kZXggb3V0IG9mIHJhbmdlLkNvbXBvbmVudHdpc2UgbXVsL2RpdjogbWlzbWF0Y2hlZCBtYXRyaXggZGltZW5zaW9ucy5MOxAANAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvbmFsZ2VicmEtMC4zMS4wL3NyYy9iYXNlL2NvbXBvbmVudHdpc2UucnMAAIg7EABqAAAAlgAAAAUAAABNYXRyaXggc2xpY2U6IGlucHV0IGRhdGEgYnVmZmVyIHRvIHNtYWxsLi9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvbmFsZ2VicmEtMC4zMS4wL3NyYy9iYXNlL2NvbnN0cnVjdGlvbl9zbGljZS5ycy08EABvAAAAMAAAAAkAAABNYXRyaXggaW5kZXggb3V0IG9mIGJvdW5kcy5NYXRyaXggYWRkaXRpb24vc3VidHJhY3Rpb24gZGltZW5zaW9ucyBtaXNtYXRjaC4AxzwQADAAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL25hbGdlYnJhLTAuMzEuMC9zcmMvYmFzZS9vcHMucnMAPRAAYAAAAGgBAAABAAAAIGFuZCA6IGxlZnQgcm93cyAhPSByaWdodCByb3dzLk1hdHJpeCBtdWx0aXBsaWNhdGlvbiBvdXRwdXQgZGltZW5zaW9ucyBtaXNtYXRjaCA6IGxlZnQgY29scyAhPSByaWdodCByb3dzLgAAjz0QADEAAABwPRAABQAAAMA9EAAaAAAAAD0QAGAAAADVAgAACQAAAEF4cHk6IG1pc21hdGNoZWQgdmVjdG9yIHNoYXBlcy4ABD4QAB8AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL25hbGdlYnJhLTAuMzEuMC9zcmMvYmFzZS9ibGFzLnJzAAAALD4QAGEAAABCAQAACQAAACw+EABhAAAACAIAAAkAAABEb3QgcHJvZHVjdCBkaW1lbnNpb25zIG1pc21hdGNoIGZvciBzaGFwZXMgALA+EAArAAAAcD0QAAUAAAB1PRAAGgAAACw+EABhAAAAIAAAAAkAAAAsPhAAYQAAABgDAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9uYWxnZWJyYS0wLjMxLjAvc3JjL2Jhc2UvbWF0cml4LnJzTWF0cml4IGVsZW1lbnRzIHN3YXAgaW5kZXggb3V0IG9mIGJvdW5kcy4UPxAAYwAAAJkEAAAJAAAAVW5hYmxlIHRvIGNvcHkgZnJvbSBhIG1hdHJpeCB3aXRoIGEgZGlmZmVyZW50IHNoYXBlLhQ/EABjAAAAwgQAAAkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL25hbGdlYnJhLTAuMzEuMC9zcmMvYmFzZS9lZGl0aW9uLnJzYXNzZXJ0aW9uIGZhaWxlZDogaXJvdzEgPCBzZWxmLm5yb3dzKCkgJiYgaXJvdzIgPCBzZWxmLm5yb3dzKCkAAPQ/EABkAAAAOAEAAAkAAABUaGUgaW5wdXQgdmVjdG9yIG11c3Qgbm90IGJlIGVtcHR5Li9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvbmFsZ2VicmEtMC4zMS4wL3NyYy9iYXNlL21pbl9tYXgucnMAy0AQAGQAAADhAAAACQAAAEluZGV4IG91dCBvZiBib3VuZHMuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9uYWxnZWJyYS0wLjMxLjAvc3JjL2Jhc2UvaW5kZXhpbmcucnMAAABUQRAAZQAAAFgBAAAaAAAATWF4aW11bSBudW1iZXIgb2YgcGVybXV0YXRpb25zIGV4Y2VlZGVkLi9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvbmFsZ2VicmEtMC4zMS4wL3NyYy9saW5hbGcvcGVybXV0YXRpb25fc2VxdWVuY2UucnMA9EEQAHMAAABVAAAADQAAAPRBEABzAAAAWQAAAA0AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL25hbGdlYnJhLTAuMzEuMC9zcmMvbGluYWxnL2x1LnJzAAAAiEIQAGEAAACAAQAAKwAAAExVIHNvbHZlIG1hdHJpeCBkaW1lbnNpb24gbWlzbWF0Y2guAPxCEAAjAAAAiEIQAGEAAAD2AAAACQAAAExVIHNvbHZlOiB1bmFibGUgdG8gc29sdmUgYSBub24tc3F1YXJlIHN5c3RlbS4AAIhCEABhAAAA+wAAAAkAAACIQhAAYQAAAGgAAAAYAAAAfQAAAAgAAAAEAAAArwAAAAIAAAAAAAAA//////////8vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3JhcGllcjNkLTAuMTMuMC9zcmMvZGF0YS9hcmVuYS5ycwAAqEMQAGIAAAAKAQAAHgAAAGNvcnJ1cHQgZnJlZSBsaXN0AAAAHEQQABEAAACoQxAAYgAAAAsBAAArAAAAaW5zZXJ0aW5nIHdpbGwgYWx3YXlzIHN1Y2NlZWQgYWZ0ZXIgcmVzZXJ2aW5nIGFkZGl0aW9uYWwgc3BhY2UAAKhDEABiAAAATAEAAA4AAABObyBlbGVtZW50IGF0IGluZGV4L1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlk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GQAAAEludGVybmFsIGVycm9yOiBjaXJjdWxhciByaWdpZCBib2R5IGRlcGVuZGVuY3kuAPhSEAAvAAAAYFIQAIUAAABzAAAACQAAAEludmFsaWQgcGFyZW50IGluZGV4LgAAAEBTEAAVAAAAYFIQAIUAAAB3AAAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcmFwaWVyM2QtMC4xMy4wL3NyYy9keW5hbWljcy9qb2ludC9tdWx0aWJvZHlfam9pbnQvbXVsdGlib2R5X2pvaW50LnJzAABwUxAAhgAAAFYAAAAjAAAAcFMQAIYAAAB3AAAAEgAAAHBTEACGAAAAcwAAADcAAABub3QgeWV0IGltcGxlbWVudGVkAHBTEACGAAAAbwAAABEAAABwUxAAhgAAAGEAAAAuAAAAcFMQAIYAAABhAAAAEQAAAHBTEACGAAAAqQAAABIAAABwUxAAhgAAAKEAAAARAAAAcFMQAIYAAAC2AAAAMQAAAHBTEACGAAAA0gAAABIAAABwUxAAhgAAAM8AAAA3AAAAcFMQAIYAAADLAAAAEQAAAHBTEACGAAAAxwAAAC4AAABwUxAAhgAAAMcAAAAVAAAAcFMQAIYAAADgAAAAEQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcmFwaWVyM2QtMC4xMy4wL3NyYy9keW5hbWljcy9qb2ludC9tdWx0aWJvZHlfam9pbnQvdW5pdF9tdWx0aWJvZHlfam9pbnQucnMA/FQQAIsAAAAhAAAAFwAAAPxUEACLAAAAJQAAAAUAAAD8VBAAiwAAACYAAAAFAAAA/FQQAIsAAABBAAAACQAAAPxUEACLAAAAYgAAAAUAAAD8VBAAiwAAAGMAAAAFAAAA/FQQAIsAAAB4AAAAEAAAAPxUEACLAAAAiwAAAAkAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3JhcGllcjNkLTAuMTMuMC9zcmMvZHluYW1pY3MvcmlnaWRfYm9keV9jb21wb25lbnRzLnJzAAAIVhAAdgAAAIQDAAA7AAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9yYXBpZXIzZC0wLjEzLjAvc3JjL2R5bmFtaWNzL3NvbHZlci9jYXRlZ29yaXphdGlvbi5ycwAAkFYQAHYAAAAPAAAAGQAAAJBWEAB2AAAANAAAABYAAACQVhAAdgAAADUAAAAUAAAAkFYQAHYAAAA2AAAAFAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcmFwaWVyM2QtMC4xMy4wL3NyYy9keW5hbWljcy9zb2x2ZXIvZ2VuZXJpY192ZWxvY2l0eV9jb25zdHJhaW50LnJzAEhXEACDAAAAKQAAADEAAABIVxAAgwAAACoAAAAxAAAASFcQAIMAAAAsAAAAFAAAAEhXEACDAAAALQAAABQAAABIVxAAgwAAADUAAAAYAAAASFcQAIMAAAA4AAAAGAAAAEhXEACDAAAASQEAACIAAABIVxAAgwAAAE8BAAAiAAAASFcQAIMAAABUAQAAHQAAAEhXEACDAAAAawEAAA0AAABIVxAAgwAAAG8BAAANAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9yYXBpZXIzZC0wLjEzLjAvc3JjL2R5bmFtaWNzL3NvbHZlci9nZW5lcmljX3ZlbG9jaXR5X2dyb3VuZF9jb25zdHJhaW50LnJzAAB8WBAAigAAADMAAAAYAAAAfFgQAIoAAAA5AAAAIwAAAHxYEACKAAAAOQAAABQAAAB8WBAAigAAAD8AAAAOAAAAfFgQAIoAAAA+AAAAGAAAAHxYEACKAAAA2QAAAB0AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3JhcGllcjNkLTAuMTMuMC9zcmMvZHluYW1pY3Mvc29sdmVyL2pvaW50X2NvbnN0cmFpbnQvam9pbnRfY29uc3RyYWludC5ycwAAAGhZEACJAAAA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AAEAAB0AAACMYxAAggAAAAMBAAAeAAAAjGMQAIIAAAAEAQAAJwAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcmFwaWVyM2QtMC4xMy4wL3NyYy9keW5hbWljcy9zb2x2ZXIvdmVsb2NpdHlfc29sdmVyLnJzALBkEAB3AAAAOwAAABsAAACwZBAAdwAAADwAAAAhAAAAsGQQAHcAAAAyAAAAFgAAALBkEAB3AAAAlgAAABwAAACwZBAAdwAAAIcAAAAWAAAAsGQQAHcAAADgAAAAHAAAALBkEAB3AAAA1gAAABYAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3JhcGllcjNkLTAuMTMuMC9zcmMvZHluYW1pY3MvcmlnaWRfYm9keS5ycwCYZRAAawAAALYBAAA6AAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9yYXBpZXIzZC0wLjEzLjAvc3JjL2R5bmFtaWNzL3JpZ2lkX2JvZHlfc2V0LnJzABRmEABvAAAAswAAAA4AAAB9AAAAAAAAAAEAAADUIhAAfgAAAH8AAACAAAAAgQAAAIIAAACDAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9yYXBpZXIzZC0wLjEzLjAvc3JjL2dlb21ldHJ5L2Jyb2FkX3BoYXNlX211bHRpX3NhcC9icm9hZF9waGFzZS5ycwAAvGYQAIIAAAClAAAAGgAAALxmEACCAAAApgAAABoAAAC8ZhAAggAAAMIAAAAjAAAAvGYQAIIAAADuAAAAJQAAALxmEACCAAAA7wAAAA0AAAC8ZhAAggAAABsBAAAQAAAAvGYQAIIAAABDAQAAGQAAAE5vdCB5ZXQgaW1wbGVtZW50ZWQusGcQABQAAAC8ZhAAggAAACcBAAARAAAAvGYQAIIAAAApAQAAEQAAALxmEACCAAAAcwEAABUAAAC8ZhAAggAAAHgBAAAVAAAA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ZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcmFwaWVyM2QtMC4xMy4wL3NyYy9nZW9tZXRyeS9jb2xsaWRlcl9zZXQucnMAAACQchAAbQAAAJ4AAAA2AAAAkHIQAG0AAAAJAQAADgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcmFwaWVyM2QtMC4xMy4wL3NyYy9waXBlbGluZS9waHlzaWNzX3BpcGVsaW5lLnJzAAAAIHMQAHEAAADXAAAAEQAAACBzEABxAAAA3gAAABYAAAAgcxAAcQAAAOAAAAAWAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9yYXBpZXIzZC0wLjEzLjAvc3JjL3BpcGVsaW5lL3F1ZXJ5X3BpcGVsaW5lLnJzAMRzEABvAAAA3wAAABcAAADEcxAAbwAAAMEAAAArAAAAxHMQAG8AAAC2AAAANAAAAMRzEABvAAAA6QAAACMAAADEcxAAbwAAAPIAAAAjAAAAxHMQAG8AAAD0AAAAMAAAAMRzEABvAAAAAQEAACMAAADEcxAAbwAAAAMBAAAnAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9yYXBpZXIzZC0wLjEzLjAvc3JjL3BpcGVsaW5lL3VzZXJfY2hhbmdlcy5ycwAAALR0EABtAAAAFgAAACYAAABVbmFibGUgdG8gaW5kZXggdGhlIHNhbWUgZWxlbWVudCB0d2ljZS4ANHUQACcAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3JhcGllcjNkLTAuMTMuMC9zcmMvdXRpbHMucnMAAABkdRAAXQAAAA8DAAAJAAAAQEEQABQAAABkdRAAXQAAABADAAAJAAAAS2luZW1hdGljVmVsb2NpdHlCYXNlZEtpbmVtYXRpY1Bvc2l0aW9uQmFzZWRGaXhlZER5bmFtaWMBAGNhcGFjaXR5IG92ZXJmbG93ACZ2EAARAAAAsgAAAAgAAAAEAAAAswAAALQAAACyAAAABAAAAAQAAAC1AAAAsgAAAAgAAAAEAAAAtgAAALcAAADMAAAABAAAALgAAAC5AAAAIAAAAAQAAAC6AAAAsgAAABwAAAAEAAAAuwAAALwAAABQAAAABAAAAL0AAAC+AAAAWAAAAAQAAAC/AAAAwAAAACAAAAAEAAAAwQAAAMIAAABkAAAABAAAAMMAAACyAAAAJAAAAAQAAADEAAAAxQAAAGAAAAAEAAAAxgAAALIAAAAoAAAABAAAAMcAAACyAAAACAAAAAQAAADIAAAAuQAAACAAAAAEAAAAyQAAAMoAAAAwAAAABAAAAMsAAACyAAAAEAAAAAQAAADMAAAAsgAAAAwAAAAEAAAAzQAAAM4AAABwAAAABAAAAM8AAACyAAAAGAAAAAQAAADQAAAAsgAAAAwAAAAEAAAA0QAAALIAAAAMAAAABAAAANIAAACyAAAADAAAAAQAAADTAAAAwAAAACAAAAAEAAAA1AAAALIAAAAEAAAABAAAANUAAACyAAAABAAAAAQAAADWAAAAYXNzZXJ0aW9uIGZhaWxlZDogbWlkIDw9IHNlbGYubGVuKCljYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlAABAdhAAAAAAAC9ydXN0Yy83NzY1MmI5ZWYzZmM5OGUyZGYwZTI2MGVmZWRiODBhYTY4YzA4YzA2L2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL3ZlY19kZXF1ZS9tb2QucnMAADx4EABeAAAAMgIAAAkAAAA8eBAAXgAAANICAAAOAAAALCB7AL54EAABAAAAvHgQAAIAAAB9AAAA0HgQAAEAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2luZGV4bWFwLTEuOC4yL3NyYy9tYXAucnMAANx4EABaAAAAlwEAABoAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2luZGV4bWFwLTEuOC4yL3NyYy9tYXAvY29yZS5ycwBIeRAAXwAAACoAAAAjAAAASHkQAF8AAACEAgAADgAAAEh5EABfAAAA+wAAAC4AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2luZGV4bWFwLTEuOC4yL3NyYy9tYXAvY29yZS9yYXcucnMA2HkQAGMAAACUAAAADgAAAEh5EABfAAAAIgAAAA8AAABNYXRyaXggaW5kZXggb3V0IG9mIGJvdW5kcy4vVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL25hbGdlYnJhLTAuMzEuMC9zcmMvYmFzZS9ibGFzLnJzRG90IHByb2R1Y3QgZGltZW5zaW9ucyBtaXNtYXRjaCBmb3Igc2hhcGVzICBhbmQgOiBsZWZ0IHJvd3MgIT0gcmlnaHQgcm93cy4AANh6EAArAAAAA3sQAAUAAAAIexAAGgAAAHd6EABhAAAAIAAAAAkAAABJbmRleCBvdXQgb2YgYm91bmRzLi9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvbmFsZ2VicmEtMC4zMS4wL3NyYy9iYXNlL2luZGV4aW5nLnJzAAAAYHsQAGUAAABYAQAAGgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvbmFsZ2VicmEtMC4zMS4wL3NyYy9saW5hbGcvc3ltbWV0cmljX2VpZ2VuLnJzAADYexAAbgAAAI4AAAAVAAAA2HsQAG4AAACQAAAAHQAAANh7EABuAAAAkQAAAB0AAADYexAAbgAAAJQAAAAVAAAA2HsQAG4AAAChAAAAIwAAANh7EABuAAAAsAAAADAAAADYexAAbgAAAMQAAAAVAAAA2HsQAG4AAADFAAAAFQAAANh7EABuAAAAyQAAAC8AAADYexAAbgAAAP4AAAAQAAAA2HsQAG4AAABAAAAAPgAAANh7EABuAAAAVAAAACAAAACyAAAACAAAAAQAAADXAAAAsgAAAAQAAAAEAAAA2AAAAC9ydXN0Yy83NzY1MmI5ZWYzZmM5OGUyZGYwZTI2MGVmZWRiODBhYTY4YzA4YzA2L2xpYnJhcnkvYWxsb2Mvc3JjL2NvbGxlY3Rpb25zL3ZlY19kZXF1ZS9yaW5nX3NsaWNlcy5ycwAAKH0QAGYAAAAgAAAADgAAACh9EABmAAAAIwAAABEAAAD//////////y9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvYm91bmRpbmdfdm9sdW1lL2FhYmIucnNUaGUgbG9vc2VuaW5nIG1hcmdpbiBtdXN0IGJlIHBvc2l0aXZlLiJ+EAAmAAAAuH0QAGoAAAAbAgAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvYm91bmRpbmdfdm9sdW1lL2FhYmJfdXRpbHMucnNQb2ludCBjbG91ZCBBQUJCIGNvbnN0cnVjdGlvbjogdGhlIGlucHV0IGl0ZXJhdG9yIHNob3VsZCB5aWVsZCBhdCBsZWFzdCBvbmUgcG9pbnQuAABgfhAAcAAAAEAAAAAYAAAAYH4QAHAAAABXAAAAGAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvYm91bmRpbmdfdm9sdW1lL2JvdW5kaW5nX3NwaGVyZS5ycwAAAER/EAB1AAAAcwAAAAkAAAB0d28gYXJyYXlzIGNvbnRhaW5pbmcgYXQgbGVhc3QgIGZsb2F0cwAAzH8QAB8AAADrfxAABwAAABgAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL21hc3NfcHJvcGVydGllcy9tYXNzX3Byb3BlcnRpZXNfdHJpbWVzaDNkLnJzAAiAEAB/AAAAFgAAABcAAAAIgBAAfwAAABcAAAAXAAAACIAQAH8AAAAYAAAAFwAAAAiAEAB/AAAApQAAABIAAAAIgBAAfwAAAKYAAAASAAAACIAQAH8AAACnAAAAEgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcGFydGl0aW9uaW5nL3FidmgvYnVpbGQucnMAAADogBAAbQAAAD8BAAAJAAAA6IAQAG0AAAAmAQAADQAAAOiAEABtAAAAJwEAAA0AAADogBAAbQAAAFcBAAAgAAAA6IAQAG0AAABaAQAAEQAAAOiAEABtAAAAdQEAABoAAADogBAAbQAAAH0BAAAlAAAA6IAQAG0AAACwAQAACQAAAOiAEABtAAAAsgEAAAkAAADogBAAbQAAALQBAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy9wYXJ0aXRpb25pbmcvcWJ2aC90cmF2ZXJzYWwucnMAAAD4gRAAcQAAACIAAAAYAAAA+IEQAHEAAABcAAAAGAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcGFydGl0aW9uaW5nL3FidmgvdXRpbHMucnMAAACMghAAbQAAABIAAAARAAAAjIIQAG0AAAATAAAAFgAAAIyCEABtAAAAFQAAAAwAAACMghAAbQAAABcAAAAVAAAAjIIQAG0AAAAlAAAAEQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvY2xpcC9jbGlwX2FhYmJfbGluZS5ycwBMgxAAbwAAAI0AAAANAAAATIMQAG8AAACbAAAADQAAAFRoZSBwcm94aW1pdHkgbWFyZ2luIG11c3QgYmUgcG9zaXRpdmUgb3IgbnVsbC4AANyDEAAuAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy9xdWVyeS9jbG9zZXN0X3BvaW50cy9jbG9zZXN0X3BvaW50c19iYWxsX2JhbGwucnMAFIQQAIMAAAAPAAAABQAAAFRoZSBjb21wb3NpdGUgc2hhcGUgbXVzdCBub3QgYmUgZW1wdHkuL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy9xdWVyeS9jbG9zZXN0X3BvaW50cy9jbG9zZXN0X3BvaW50c19jb21wb3NpdGVfc2hhcGVfc2hhcGUucnMAAADOhBAAjwAAABsAAAAKAAAAzoQQAI8AAACBAAAAIQAAAM6EEACPAAAAggAAACEAAADOhBAAjwAAAIMAAAAhAAAAaW50ZXJuYWwgZXJyb3I6IGVudGVyZWQgdW5yZWFjaGFibGUgY29kZS9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvY2xvc2VzdF9wb2ludHMvY2xvc2VzdF9wb2ludHNfY3Vib2lkX2N1Ym9pZC5ycwDIhRAAhwAAAFIAAAAFAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy9xdWVyeS9jbG9zZXN0X3BvaW50cy9jbG9zZXN0X3BvaW50c19jdWJvaWRfdHJpYW5nbGUucnMAAABghhAAiQAAAE0AAAAFAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy9xdWVyeS9jbG9zZXN0X3BvaW50cy9jbG9zZXN0X3BvaW50c19oYWxmc3BhY2Vfc3VwcG9ydF9tYXAucnMA/IYQAI8AAAANAAAABQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvY2xvc2VzdF9wb2ludHMvY2xvc2VzdF9wb2ludHNfc3VwcG9ydF9tYXBfc3VwcG9ydF9tYXAucnMAAACchxAAkQAAACAAAAAkAAAAsgAAABgAAAAEAAAA2QAAANoAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3F1ZXJ5L2NvbnRhY3QvY29udGFjdF9zdXBwb3J0X21hcF9zdXBwb3J0X21hcC5ycwBUiBAAgwAAAB4AAAAkAAAAuQAAACAAAAAEAAAAugAAANsAAADcAAAA3QAAAN4AAABQiRAAUIkQANwAAADfAAAA4AAAAMAAAAAgAAAABAAAANQAAADhAAAA4gAAAOMAAADkAAAAkIkQAJCJEADiAAAA5QAAAOYAAAC5AAAAIAAAAAQAAAC5AAAAIAAAAAQAAADJAAAA5wAAAOgAAADpAAAA6gAAAFCJEABQiRAA6AAAAOsAAADsAAAAwAAAACAAAAAEAAAAwAAAACAAAAAEAAAAwQAAAO0AAADuAAAA7wAAAPAAAACQiRAAkIkQAO4AAADxAAAA8gAAAMoAAAAwAAAABAAAAMoAAAAwAAAABAAAAMsAAADzAAAA9AAAAPUAAAD2AAAA0IkQANCJEAD0AAAA9wAAAPgAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3F1ZXJ5L2Rpc3RhbmNlL2Rpc3RhbmNlX2NvbXBvc2l0ZV9zaGFwZV9zaGFwZS5ycwAQihAAgwAAABcAAAAKAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy9xdWVyeS9kaXN0YW5jZS9kaXN0YW5jZV9zdXBwb3J0X21hcF9zdXBwb3J0X21hcC5ycwAAAKSKEACFAAAANAAAACQAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3F1ZXJ5L2VwYS9lcGEzLnJzPIsQAGQAAABGAAAADgAAADyLEABkAAAARwAAAA4AAAA8ixAAZAAAAEgAAAAOAAAAPIsQAGQAAABeAAAADQAAADyLEABkAAAAXwAAAA0AAAA8ixAAZAAAAGAAAAANAAAAPIsQAGQAAABuAAAADQAAADyLEABkAAAAbwAAABMAAAA8ixAAZAAAAHAAAAATAAAAPIsQAGQAAACBAAAADQAAADyLEABkAAAAhwAAABwAAAA8ixAAZAAAAIcAAAATAAAAPIsQAGQAAACIAAAAEwAAADyLEABkAAAAiQAAABMAAAA8ixAAZAAAAIoAAAATAAAAPIsQAGQAAAAhAQAAGwAAADyLEABkAAAA8AAAABcAAAA8ixAAZAAAAPEAAAAXAAAAPIsQAGQAAADyAAAAFwAAADyLEABkAAAADQEAAB0AAAA8ixAAZAAAAA0BAAA3AAAAPIsQAGQAAAASAQAAHQAAADyLEABkAAAAEgEAADcAAAA8ixAAZAAAABcBAAAdAAAAPIsQAGQAAAAXAQAANwAAADyLEABkAAAAHAEAAB0AAAA8ixAAZAAAABwBAAA3AAAAPIsQAGQAAAA9AQAAMgAAADyLEABkAAAAowEAABoAAAA8ixAAZAAAAEQBAAAYAAAAPIsQAGQAAABYAQAAIgAAADyLEABkAAAAXQEAAA0AAAA8ixAAZAAAAF8BAAAiAAAAPIsQAGQAAABgAQAAIgAAADyLEABkAAAAYQEAACIAAAA8ixAAZAAAAG8BAAAVAAAAPIsQAGQAAACDAQAAMAAAADyLEABkAAAAgwEAACIAAAA8ixAAZAAAAJcBAAANAAAAPIsQAGQAAACYAQAAIwAAADyLEABkAAAAqQEAAA0AAAA8ixAAZAAAALIBAAAcAAAAPIsQAGQAAAC2AQAAFQAAADyLEABkAAAAuAEAABUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3F1ZXJ5L2dqay9namsucnMAYI4QAGMAAABDAAAADgAAAGFzc2VydGlvbiBmYWlsZWQ6IG1pbl9ib3VuZCA9PSBtaW5fYm91bmRgjhAAYwAAAIwAAAAJAAAAYI4QAGMAAABPAQAACQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvZ2prL3Zvcm9ub2lfc2ltcGxleDMucnMcjxAAcAAAACcAAAAXAAAAHI8QAHAAAABQAAAAEgAAAByPEABwAAAAVAAAAAkAAABMexAAFAAAAByPEABwAAAAWwAAAAkAAAAcjxAAcAAAAGAAAAAJAAAAHI8QAHAAAABhAAAACgAAAByPEABwAAAAZwAAAAkAAAAcjxAAcAAAAG0AAAAKAAAAYXNzZXJ0aW9uIGZhaWxlZDogc2VsZi5kaW0gPT0gMwAcjxAAcAAAALwAAAANAAAAHI8QAHAAAAARAQAAHgAAAByPEABwAAAA6AAAAB4AAAAcjxAAcAAAAI4AAAAWAAAAHI8QAHAAAABfAQAAFAAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvaW50ZXJzZWN0aW9uX3Rlc3QvaW50ZXJzZWN0aW9uX3Rlc3Rfc3VwcG9ydF9tYXBfc3VwcG9ydF9tYXAucnMAhJAQAJcAAAA5AAAAKQAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvcXVlcnkvbm9ubGluZWFyX3RpbWVfb2ZfaW1wYWN0L25vbmxpbmVhcl90aW1lX29mX2ltcGFjdF9jb21wb3NpdGVfc2hhcGVfc2hhcGUucnMAsgAAAAQAAAAEAAAA+QAAAPoAAAD7AAAA/AAAAP0AAAD+AAAA/wAAAAABAAABAQAAAgEAALIAAAAEAAAABAAAALUAAAADAQAABAEAAAUBAAAGAQAAsgAAAAQAAAAEAAAAsgAAAAQAAAAEAAAA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EgAAALi+EACAAAAAWQAAABIAAAC4vhAAgAAAAHAAAAAWAAAAuL4QAIAAAABxAAAAFgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvdHJhbnNmb3JtYXRpb24vY29udmV4X2h1bGwzL3ZhbGlkYXRpb24ucnMkwBAAfAAAAAYAAAASAAAAJMAQAHwAAAAJAAAAEQAAAGFzc2VydGlvbiBmYWlsZWQ6IGZhY2V0c1tmYWNldC5hZGpbaV1dLnZhbGlkJMAQAHwAAAAJAAAACQAAACTAEAB8AAAADwAAABQAAAAkwBAAfAAAAA8AAAAJAAAAJMAQAHwAAAAQAAAACQAAACTAEAB8AAAAEQAAAAkAAAAkwBAAfAAAABUAAAAJAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy90cmFuc2Zvcm1hdGlvbi9jb252ZXhfaHVsbF91dGlscy5ycwAATMEQAHYAAAApAAAAIgAAAEzBEAB2AAAAQgAAACIAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3RyYW5zZm9ybWF0aW9uL3RvX291dGxpbmUvYmFsbF90b19vdXRsaW5lLnJzAOTBEAB/AAAAHgAAAA4AAADkwRAAfwAAACIAAAAOAAAA5MEQAH8AAAA8AAAADgAAAOTBEAB/AAAAQAAAAA4AAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3RyYW5zZm9ybWF0aW9uL3RvX291dGxpbmUvY2Fwc3VsZV90b19vdXRsaW5lLnJzAACkwhAAggAAABwAAAAFAAAAAAAAAAEAAAAAAAAAAgAAAC9Vc2Vycy9zZWJjcm96ZXQvLmNhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvcGFycnkzZC0wLjkuMC9zcmMvdHJhbnNmb3JtYXRpb24vdG9fb3V0bGluZS9yb3VuZF9jb252ZXhfcG9seWhlZHJvbl90b19vdXRsaW5lLnJzAABIwxAAkgAAAA8AAAAaAAAASMMQAJIAAAASAAAAHgAAAEjDEACSAAAAFQAAABwAAABIwxAAkgAAACIAAAAZAAAASMMQAJIAAAAjAAAAHgAAAEjDEACSAAAAMAAAABoAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3RyYW5zZm9ybWF0aW9uL3RvX3RyaW1lc2gvY29udmV4X3BvbHloZWRyb25fdG9fdHJpbWVzaC5yczzEEACMAAAADQAAABwAAAA8xBAAjAAAAA8AAAAYAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy90cmFuc2Zvcm1hdGlvbi91dGlscy5ycwAA6MQQAGoAAADEAAAACQAAAOjEEABqAAAAxQAAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBuc3ViZGl2cyA+IDAAAOjEEABqAAAA1gAAAAUAAADoxBAAagAAADMBAAAgAAAA6MQQAGoAAABEAQAAFgAAAENhbm5vdCBjb21wdXRlIHRoZSBjZW50ZXIgb2YgbGVzcyB0aGFuIDEgcG9pbnQuAMTFEAAvAAAAL1VzZXJzL3NlYmNyb3pldC8uY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wYXJyeTNkLTAuOS4wL3NyYy91dGlscy9jZW50ZXIucnMAAPzFEABiAAAABwAAAAUAAAAvVXNlcnMvc2ViY3JvemV0Ly5jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL3BhcnJ5M2QtMC45LjAvc3JjL3V0aWxzL2NsZWFudXAucnMAcMYQAGMAAAAMAAAACQAAAHDGEABjAAAADQAAAAkAAABwxhAA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dGQvc3JjL3RpbWUucnMAAPfNEAAXAAAAmAEAACEAAABsaWJyYXJ5L3N0ZC9zcmMvc3lzX2NvbW1vbi90aHJlYWRfaW5mby5ycwAAACDOEAApAAAAFgAAADMAAABtZW1vcnkgYWxsb2NhdGlvbiBvZiAgYnl0ZXMgZmFpbGVkCgBczhAAFQAAAHHOEAAOAAAAbGlicmFyeS9zdGQvc3JjL2FsbG9jLnJzkM4QABgAAABGAQAACQAAAGxpYnJhcnkvc3RkL3NyYy9wYW5pY2tpbmcucnO4zhAAHAAAAEYCAAAfAAAAuM4QABwAAABHAgAAHgAAAJkDAAAMAAAABAAAAJoDAACQAwAACAAAAAQAAACbAwAAnAMAABAAAAAEAAAAnQMAAJ4DAACQAwAACAAAAAQAAACfAwAAoAMAAHRpbWUgbm90IGltcGxlbWVudGVkIG9uIHRoaXMgcGxhdGZvcm0AAAA8zxAAJQAAAGxpYnJhcnkvc3RkL3NyYy9zeXMvd2FzbS8uLi91bnN1cHBvcnRlZC90aW1lLnJzAGzPEAAvAAAADQAAAAkAAABjb25kdmFyIHdhaXQgbm90IHN1cHBvcnRlZAAArM8QABoAAABsaWJyYXJ5L3N0ZC9zcmMvc3lzL3dhc20vLi4vdW5zdXBwb3J0ZWQvbG9ja3MvY29uZHZhci5yc9DPEAA4AAAAFwAAAAkAAADQzxAAOAAAABsAAAAJAAAAY2Fubm90IHJlY3Vyc2l2ZWx5IGFjcXVpcmUgbXV0ZXgo0BAAIAAAAGxpYnJhcnkvc3RkL3NyYy9zeXMvd2FzbS8uLi91bnN1cHBvcnRlZC9sb2Nrcy9tdXRleC5ycwAAUNAQADYAAAAXAAAACQAAAGxpYnJhcnkvc3RkL3NyYy9zeXNfY29tbW9uL3RocmVhZF9wYXJrZXIvZ2VuZXJpYy5ycwCY0BAAMwAAACcAAAAmAAAAaW5jb25zaXN0ZW50IHBhcmsgc3RhdGUA3NAQABcAAACY0BAAMwAAADUAAAAXAAAAcGFyayBzdGF0ZSBjaGFuZ2VkIHVuZXhwZWN0ZWRseQAM0RAAHwAAAJjQEAAzAAAAMgAAABEAAACY0BAAMwAAAEgAAAAiAAAAaW5jb25zaXN0ZW50IHBhcmtfdGltZW91dCBzdGF0ZQBU0RAAHwAAAJjQEAAzAAAA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").buffer)}))}function eI(){return function(){try{const C=A.__wbindgen_add_to_stack_pointer(-16);A.version(C);var I=G()[C/4+0],g=G()[C/4+1];return k(I,g)}finally{A.__wbindgen_add_to_stack_pointer(16),A.__wbindgen_free(I,g)}}()}LI["-".charCodeAt(0)]=62,LI["_".charCodeAt(0)]=63;var dI=Object.freeze({__proto__:null,version:eI,Vector3:CA,VectorOps:BA,Quaternion:QA,RotationOps:EA,get RigidBodyType(){return iA},RigidBody:JA,RigidBodyDesc:yA,RigidBodySet:NA,IntegrationParameters:MA,get JointType(){return DA},get MotorModel(){return oA},ImpulseJoint:FA,UnitImpulseJoint:RA,FixedImpulseJoint:qA,PrismaticImpulseJoint:sA,RevoluteImpulseJoint:cA,SphericalImpulseJoint:YA,JointData:LA,ImpulseJointSet:HA,MultibodyJoint:lA,UnitMultibodyJoint:pA,FixedMultibodyJoint:tA,PrismaticMultibodyJoint:rA,RevoluteMultibodyJoint:TA,SphericalMultibodyJoint:OA,MultibodyJointSet:eA,get CoefficientCombineRule(){return GA},CCDSolver:dA,IslandManager:nA,BroadPhase:ZA,NarrowPhase:WA,TempContactManifold:xA,Shape:vA,get ShapeType(){return SA},Ball:_A,Cuboid:$A,RoundCuboid:AI,Capsule:II,Segment:gI,Triangle:CI,RoundTriangle:BI,Polyline:QI,TriMesh:EI,ConvexPolyhedron:iI,RoundConvexPolyhedron:DI,Heightfield:oI,Cylinder:GI,RoundCylinder:wI,Cone:SI,RoundCone:kI,get ActiveCollisionTypes(){return kA},Collider:KI,ColliderDesc:UI,ColliderSet:aI,get FeatureType(){return wA},Ray:VA,RayIntersection:PA,RayColliderIntersection:mA,RayColliderToi:XA,PointProjection:bA,PointColliderProjection:fA,ShapeTOI:zA,ShapeColliderTOI:uA,ShapeContact:jA,World:FI,PhysicsPipeline:JI,SerializationPipeline:hI,get ActiveEvents(){return KA},EventQueue:qI,get ActiveHooks(){return UA},get SolverFlags(){return aA},DebugRenderBuffers:NI,DebugRenderPipeline:MI,init:OI});
  118. //# sourceMappingURL=rapier.es.js.map
  119. /***/ }),
  120. /***/ "./node_modules/cannon-es/dist/cannon-es.js":
  121. /*!**************************************************!*\
  122. !*** ./node_modules/cannon-es/dist/cannon-es.js ***!
  123. \**************************************************/
  124. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  125. __webpack_require__.r(__webpack_exports__);
  126. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  127. /* harmony export */ AABB: () => (/* binding */ AABB),
  128. /* harmony export */ ArrayCollisionMatrix: () => (/* binding */ ArrayCollisionMatrix),
  129. /* harmony export */ BODY_SLEEP_STATES: () => (/* binding */ BODY_SLEEP_STATES),
  130. /* harmony export */ BODY_TYPES: () => (/* binding */ BODY_TYPES),
  131. /* harmony export */ Body: () => (/* binding */ Body),
  132. /* harmony export */ Box: () => (/* binding */ Box),
  133. /* harmony export */ Broadphase: () => (/* binding */ Broadphase),
  134. /* harmony export */ COLLISION_TYPES: () => (/* binding */ COLLISION_TYPES),
  135. /* harmony export */ ConeTwistConstraint: () => (/* binding */ ConeTwistConstraint),
  136. /* harmony export */ Constraint: () => (/* binding */ Constraint),
  137. /* harmony export */ ContactEquation: () => (/* binding */ ContactEquation),
  138. /* harmony export */ ContactMaterial: () => (/* binding */ ContactMaterial),
  139. /* harmony export */ ConvexPolyhedron: () => (/* binding */ ConvexPolyhedron),
  140. /* harmony export */ Cylinder: () => (/* binding */ Cylinder),
  141. /* harmony export */ DistanceConstraint: () => (/* binding */ DistanceConstraint),
  142. /* harmony export */ Equation: () => (/* binding */ Equation),
  143. /* harmony export */ EventTarget: () => (/* binding */ EventTarget),
  144. /* harmony export */ FrictionEquation: () => (/* binding */ FrictionEquation),
  145. /* harmony export */ GSSolver: () => (/* binding */ GSSolver),
  146. /* harmony export */ GridBroadphase: () => (/* binding */ GridBroadphase),
  147. /* harmony export */ Heightfield: () => (/* binding */ Heightfield),
  148. /* harmony export */ HingeConstraint: () => (/* binding */ HingeConstraint),
  149. /* harmony export */ JacobianElement: () => (/* binding */ JacobianElement),
  150. /* harmony export */ LockConstraint: () => (/* binding */ LockConstraint),
  151. /* harmony export */ Mat3: () => (/* binding */ Mat3),
  152. /* harmony export */ Material: () => (/* binding */ Material),
  153. /* harmony export */ NaiveBroadphase: () => (/* binding */ NaiveBroadphase),
  154. /* harmony export */ Narrowphase: () => (/* binding */ Narrowphase),
  155. /* harmony export */ ObjectCollisionMatrix: () => (/* binding */ ObjectCollisionMatrix),
  156. /* harmony export */ Particle: () => (/* binding */ Particle),
  157. /* harmony export */ Plane: () => (/* binding */ Plane),
  158. /* harmony export */ PointToPointConstraint: () => (/* binding */ PointToPointConstraint),
  159. /* harmony export */ Pool: () => (/* binding */ Pool),
  160. /* harmony export */ Quaternion: () => (/* binding */ Quaternion),
  161. /* harmony export */ RAY_MODES: () => (/* binding */ RAY_MODES),
  162. /* harmony export */ Ray: () => (/* binding */ Ray),
  163. /* harmony export */ RaycastResult: () => (/* binding */ RaycastResult),
  164. /* harmony export */ RaycastVehicle: () => (/* binding */ RaycastVehicle),
  165. /* harmony export */ RigidVehicle: () => (/* binding */ RigidVehicle),
  166. /* harmony export */ RotationalEquation: () => (/* binding */ RotationalEquation),
  167. /* harmony export */ RotationalMotorEquation: () => (/* binding */ RotationalMotorEquation),
  168. /* harmony export */ SAPBroadphase: () => (/* binding */ SAPBroadphase),
  169. /* harmony export */ SHAPE_TYPES: () => (/* binding */ SHAPE_TYPES),
  170. /* harmony export */ SPHSystem: () => (/* binding */ SPHSystem),
  171. /* harmony export */ Shape: () => (/* binding */ Shape),
  172. /* harmony export */ Solver: () => (/* binding */ Solver),
  173. /* harmony export */ Sphere: () => (/* binding */ Sphere),
  174. /* harmony export */ SplitSolver: () => (/* binding */ SplitSolver),
  175. /* harmony export */ Spring: () => (/* binding */ Spring),
  176. /* harmony export */ Transform: () => (/* binding */ Transform),
  177. /* harmony export */ Trimesh: () => (/* binding */ Trimesh),
  178. /* harmony export */ Vec3: () => (/* binding */ Vec3),
  179. /* harmony export */ Vec3Pool: () => (/* binding */ Vec3Pool),
  180. /* harmony export */ WheelInfo: () => (/* binding */ WheelInfo),
  181. /* harmony export */ World: () => (/* binding */ World)
  182. /* harmony export */ });
  183. /**
  184. * Records what objects are colliding with each other
  185. */
  186. class ObjectCollisionMatrix {
  187. /**
  188. * The matrix storage.
  189. */
  190. /**
  191. * @todo Remove useless constructor
  192. */
  193. constructor() {
  194. this.matrix = void 0;
  195. this.matrix = {};
  196. }
  197. /**
  198. * get
  199. */
  200. get(bi, bj) {
  201. let {
  202. id: i
  203. } = bi;
  204. let {
  205. id: j
  206. } = bj;
  207. if (j > i) {
  208. const temp = j;
  209. j = i;
  210. i = temp;
  211. }
  212. return i + "-" + j in this.matrix;
  213. }
  214. /**
  215. * set
  216. */
  217. set(bi, bj, value) {
  218. let {
  219. id: i
  220. } = bi;
  221. let {
  222. id: j
  223. } = bj;
  224. if (j > i) {
  225. const temp = j;
  226. j = i;
  227. i = temp;
  228. }
  229. if (value) {
  230. this.matrix[i + "-" + j] = true;
  231. } else {
  232. delete this.matrix[i + "-" + j];
  233. }
  234. }
  235. /**
  236. * Empty the matrix
  237. */
  238. reset() {
  239. this.matrix = {};
  240. }
  241. /**
  242. * Set max number of objects
  243. */
  244. setNumObjects(n) {}
  245. }
  246. /**
  247. * A 3x3 matrix.
  248. * Authored by {@link http://github.com/schteppe/ schteppe}
  249. */
  250. class Mat3 {
  251. /**
  252. * A vector of length 9, containing all matrix elements.
  253. */
  254. /**
  255. * @param elements A vector of length 9, containing all matrix elements.
  256. */
  257. constructor(elements = [0, 0, 0, 0, 0, 0, 0, 0, 0]) {
  258. this.elements = void 0;
  259. this.elements = elements;
  260. }
  261. /**
  262. * Sets the matrix to identity
  263. * @todo Should perhaps be renamed to `setIdentity()` to be more clear.
  264. * @todo Create another function that immediately creates an identity matrix eg. `eye()`
  265. */
  266. identity() {
  267. const e = this.elements;
  268. e[0] = 1;
  269. e[1] = 0;
  270. e[2] = 0;
  271. e[3] = 0;
  272. e[4] = 1;
  273. e[5] = 0;
  274. e[6] = 0;
  275. e[7] = 0;
  276. e[8] = 1;
  277. }
  278. /**
  279. * Set all elements to zero
  280. */
  281. setZero() {
  282. const e = this.elements;
  283. e[0] = 0;
  284. e[1] = 0;
  285. e[2] = 0;
  286. e[3] = 0;
  287. e[4] = 0;
  288. e[5] = 0;
  289. e[6] = 0;
  290. e[7] = 0;
  291. e[8] = 0;
  292. }
  293. /**
  294. * Sets the matrix diagonal elements from a Vec3
  295. */
  296. setTrace(vector) {
  297. const e = this.elements;
  298. e[0] = vector.x;
  299. e[4] = vector.y;
  300. e[8] = vector.z;
  301. }
  302. /**
  303. * Gets the matrix diagonal elements
  304. */
  305. getTrace(target = new Vec3()) {
  306. const e = this.elements;
  307. target.x = e[0];
  308. target.y = e[4];
  309. target.z = e[8];
  310. return target;
  311. }
  312. /**
  313. * Matrix-Vector multiplication
  314. * @param v The vector to multiply with
  315. * @param target Optional, target to save the result in.
  316. */
  317. vmult(v, target = new Vec3()) {
  318. const e = this.elements;
  319. const x = v.x;
  320. const y = v.y;
  321. const z = v.z;
  322. target.x = e[0] * x + e[1] * y + e[2] * z;
  323. target.y = e[3] * x + e[4] * y + e[5] * z;
  324. target.z = e[6] * x + e[7] * y + e[8] * z;
  325. return target;
  326. }
  327. /**
  328. * Matrix-scalar multiplication
  329. */
  330. smult(s) {
  331. for (let i = 0; i < this.elements.length; i++) {
  332. this.elements[i] *= s;
  333. }
  334. }
  335. /**
  336. * Matrix multiplication
  337. * @param matrix Matrix to multiply with from left side.
  338. */
  339. mmult(matrix, target = new Mat3()) {
  340. const A = this.elements;
  341. const B = matrix.elements;
  342. const T = target.elements;
  343. const a11 = A[0],
  344. a12 = A[1],
  345. a13 = A[2],
  346. a21 = A[3],
  347. a22 = A[4],
  348. a23 = A[5],
  349. a31 = A[6],
  350. a32 = A[7],
  351. a33 = A[8];
  352. const b11 = B[0],
  353. b12 = B[1],
  354. b13 = B[2],
  355. b21 = B[3],
  356. b22 = B[4],
  357. b23 = B[5],
  358. b31 = B[6],
  359. b32 = B[7],
  360. b33 = B[8];
  361. T[0] = a11 * b11 + a12 * b21 + a13 * b31;
  362. T[1] = a11 * b12 + a12 * b22 + a13 * b32;
  363. T[2] = a11 * b13 + a12 * b23 + a13 * b33;
  364. T[3] = a21 * b11 + a22 * b21 + a23 * b31;
  365. T[4] = a21 * b12 + a22 * b22 + a23 * b32;
  366. T[5] = a21 * b13 + a22 * b23 + a23 * b33;
  367. T[6] = a31 * b11 + a32 * b21 + a33 * b31;
  368. T[7] = a31 * b12 + a32 * b22 + a33 * b32;
  369. T[8] = a31 * b13 + a32 * b23 + a33 * b33;
  370. return target;
  371. }
  372. /**
  373. * Scale each column of the matrix
  374. */
  375. scale(vector, target = new Mat3()) {
  376. const e = this.elements;
  377. const t = target.elements;
  378. for (let i = 0; i !== 3; i++) {
  379. t[3 * i + 0] = vector.x * e[3 * i + 0];
  380. t[3 * i + 1] = vector.y * e[3 * i + 1];
  381. t[3 * i + 2] = vector.z * e[3 * i + 2];
  382. }
  383. return target;
  384. }
  385. /**
  386. * Solve Ax=b
  387. * @param b The right hand side
  388. * @param target Optional. Target vector to save in.
  389. * @return The solution x
  390. * @todo should reuse arrays
  391. */
  392. solve(b, target = new Vec3()) {
  393. // Construct equations
  394. const nr = 3; // num rows
  395. const nc = 4; // num cols
  396. const eqns = [];
  397. let i;
  398. let j;
  399. for (i = 0; i < nr * nc; i++) {
  400. eqns.push(0);
  401. }
  402. for (i = 0; i < 3; i++) {
  403. for (j = 0; j < 3; j++) {
  404. eqns[i + nc * j] = this.elements[i + 3 * j];
  405. }
  406. }
  407. eqns[3 + 4 * 0] = b.x;
  408. eqns[3 + 4 * 1] = b.y;
  409. eqns[3 + 4 * 2] = b.z; // Compute right upper triangular version of the matrix - Gauss elimination
  410. let n = 3;
  411. const k = n;
  412. let np;
  413. const kp = 4; // num rows
  414. let p;
  415. do {
  416. i = k - n;
  417. if (eqns[i + nc * i] === 0) {
  418. // the pivot is null, swap lines
  419. for (j = i + 1; j < k; j++) {
  420. if (eqns[i + nc * j] !== 0) {
  421. np = kp;
  422. do {
  423. // do ligne( i ) = ligne( i ) + ligne( k )
  424. p = kp - np;
  425. eqns[p + nc * i] += eqns[p + nc * j];
  426. } while (--np);
  427. break;
  428. }
  429. }
  430. }
  431. if (eqns[i + nc * i] !== 0) {
  432. for (j = i + 1; j < k; j++) {
  433. const multiplier = eqns[i + nc * j] / eqns[i + nc * i];
  434. np = kp;
  435. do {
  436. // do ligne( k ) = ligne( k ) - multiplier * ligne( i )
  437. p = kp - np;
  438. eqns[p + nc * j] = p <= i ? 0 : eqns[p + nc * j] - eqns[p + nc * i] * multiplier;
  439. } while (--np);
  440. }
  441. }
  442. } while (--n); // Get the solution
  443. target.z = eqns[2 * nc + 3] / eqns[2 * nc + 2];
  444. target.y = (eqns[1 * nc + 3] - eqns[1 * nc + 2] * target.z) / eqns[1 * nc + 1];
  445. target.x = (eqns[0 * nc + 3] - eqns[0 * nc + 2] * target.z - eqns[0 * nc + 1] * target.y) / eqns[0 * nc + 0];
  446. if (isNaN(target.x) || isNaN(target.y) || isNaN(target.z) || target.x === Infinity || target.y === Infinity || target.z === Infinity) {
  447. throw "Could not solve equation! Got x=[" + target.toString() + "], b=[" + b.toString() + "], A=[" + this.toString() + "]";
  448. }
  449. return target;
  450. }
  451. /**
  452. * Get an element in the matrix by index. Index starts at 0, not 1!!!
  453. * @param value If provided, the matrix element will be set to this value.
  454. */
  455. e(row, column, value) {
  456. if (value === undefined) {
  457. return this.elements[column + 3 * row];
  458. } else {
  459. // Set value
  460. this.elements[column + 3 * row] = value;
  461. }
  462. }
  463. /**
  464. * Copy another matrix into this matrix object.
  465. */
  466. copy(matrix) {
  467. for (let i = 0; i < matrix.elements.length; i++) {
  468. this.elements[i] = matrix.elements[i];
  469. }
  470. return this;
  471. }
  472. /**
  473. * Returns a string representation of the matrix.
  474. */
  475. toString() {
  476. let r = '';
  477. const sep = ',';
  478. for (let i = 0; i < 9; i++) {
  479. r += this.elements[i] + sep;
  480. }
  481. return r;
  482. }
  483. /**
  484. * reverse the matrix
  485. * @param target Target matrix to save in.
  486. * @return The solution x
  487. */
  488. reverse(target = new Mat3()) {
  489. // Construct equations
  490. const nr = 3; // num rows
  491. const nc = 6; // num cols
  492. const eqns = reverse_eqns;
  493. let i;
  494. let j;
  495. for (i = 0; i < 3; i++) {
  496. for (j = 0; j < 3; j++) {
  497. eqns[i + nc * j] = this.elements[i + 3 * j];
  498. }
  499. }
  500. eqns[3 + 6 * 0] = 1;
  501. eqns[3 + 6 * 1] = 0;
  502. eqns[3 + 6 * 2] = 0;
  503. eqns[4 + 6 * 0] = 0;
  504. eqns[4 + 6 * 1] = 1;
  505. eqns[4 + 6 * 2] = 0;
  506. eqns[5 + 6 * 0] = 0;
  507. eqns[5 + 6 * 1] = 0;
  508. eqns[5 + 6 * 2] = 1; // Compute right upper triangular version of the matrix - Gauss elimination
  509. let n = 3;
  510. const k = n;
  511. let np;
  512. const kp = nc; // num rows
  513. let p;
  514. do {
  515. i = k - n;
  516. if (eqns[i + nc * i] === 0) {
  517. // the pivot is null, swap lines
  518. for (j = i + 1; j < k; j++) {
  519. if (eqns[i + nc * j] !== 0) {
  520. np = kp;
  521. do {
  522. // do line( i ) = line( i ) + line( k )
  523. p = kp - np;
  524. eqns[p + nc * i] += eqns[p + nc * j];
  525. } while (--np);
  526. break;
  527. }
  528. }
  529. }
  530. if (eqns[i + nc * i] !== 0) {
  531. for (j = i + 1; j < k; j++) {
  532. const multiplier = eqns[i + nc * j] / eqns[i + nc * i];
  533. np = kp;
  534. do {
  535. // do line( k ) = line( k ) - multiplier * line( i )
  536. p = kp - np;
  537. eqns[p + nc * j] = p <= i ? 0 : eqns[p + nc * j] - eqns[p + nc * i] * multiplier;
  538. } while (--np);
  539. }
  540. }
  541. } while (--n); // eliminate the upper left triangle of the matrix
  542. i = 2;
  543. do {
  544. j = i - 1;
  545. do {
  546. const multiplier = eqns[i + nc * j] / eqns[i + nc * i];
  547. np = nc;
  548. do {
  549. p = nc - np;
  550. eqns[p + nc * j] = eqns[p + nc * j] - eqns[p + nc * i] * multiplier;
  551. } while (--np);
  552. } while (j--);
  553. } while (--i); // operations on the diagonal
  554. i = 2;
  555. do {
  556. const multiplier = 1 / eqns[i + nc * i];
  557. np = nc;
  558. do {
  559. p = nc - np;
  560. eqns[p + nc * i] = eqns[p + nc * i] * multiplier;
  561. } while (--np);
  562. } while (i--);
  563. i = 2;
  564. do {
  565. j = 2;
  566. do {
  567. p = eqns[nr + j + nc * i];
  568. if (isNaN(p) || p === Infinity) {
  569. throw "Could not reverse! A=[" + this.toString() + "]";
  570. }
  571. target.e(i, j, p);
  572. } while (j--);
  573. } while (i--);
  574. return target;
  575. }
  576. /**
  577. * Set the matrix from a quaterion
  578. */
  579. setRotationFromQuaternion(q) {
  580. const x = q.x;
  581. const y = q.y;
  582. const z = q.z;
  583. const w = q.w;
  584. const x2 = x + x;
  585. const y2 = y + y;
  586. const z2 = z + z;
  587. const xx = x * x2;
  588. const xy = x * y2;
  589. const xz = x * z2;
  590. const yy = y * y2;
  591. const yz = y * z2;
  592. const zz = z * z2;
  593. const wx = w * x2;
  594. const wy = w * y2;
  595. const wz = w * z2;
  596. const e = this.elements;
  597. e[3 * 0 + 0] = 1 - (yy + zz);
  598. e[3 * 0 + 1] = xy - wz;
  599. e[3 * 0 + 2] = xz + wy;
  600. e[3 * 1 + 0] = xy + wz;
  601. e[3 * 1 + 1] = 1 - (xx + zz);
  602. e[3 * 1 + 2] = yz - wx;
  603. e[3 * 2 + 0] = xz - wy;
  604. e[3 * 2 + 1] = yz + wx;
  605. e[3 * 2 + 2] = 1 - (xx + yy);
  606. return this;
  607. }
  608. /**
  609. * Transpose the matrix
  610. * @param target Optional. Where to store the result.
  611. * @return The target Mat3, or a new Mat3 if target was omitted.
  612. */
  613. transpose(target = new Mat3()) {
  614. const M = this.elements;
  615. const T = target.elements;
  616. let tmp; //Set diagonals
  617. T[0] = M[0];
  618. T[4] = M[4];
  619. T[8] = M[8];
  620. tmp = M[1];
  621. T[1] = M[3];
  622. T[3] = tmp;
  623. tmp = M[2];
  624. T[2] = M[6];
  625. T[6] = tmp;
  626. tmp = M[5];
  627. T[5] = M[7];
  628. T[7] = tmp;
  629. return target;
  630. }
  631. }
  632. const reverse_eqns = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
  633. /**
  634. * 3-dimensional vector
  635. * @example
  636. * const v = new Vec3(1, 2, 3)
  637. * console.log('x=' + v.x) // x=1
  638. */
  639. class Vec3 {
  640. constructor(x = 0.0, y = 0.0, z = 0.0) {
  641. this.x = void 0;
  642. this.y = void 0;
  643. this.z = void 0;
  644. this.x = x;
  645. this.y = y;
  646. this.z = z;
  647. }
  648. /**
  649. * Vector cross product
  650. * @param target Optional target to save in.
  651. */
  652. cross(vector, target = new Vec3()) {
  653. const vx = vector.x;
  654. const vy = vector.y;
  655. const vz = vector.z;
  656. const x = this.x;
  657. const y = this.y;
  658. const z = this.z;
  659. target.x = y * vz - z * vy;
  660. target.y = z * vx - x * vz;
  661. target.z = x * vy - y * vx;
  662. return target;
  663. }
  664. /**
  665. * Set the vectors' 3 elements
  666. */
  667. set(x, y, z) {
  668. this.x = x;
  669. this.y = y;
  670. this.z = z;
  671. return this;
  672. }
  673. /**
  674. * Set all components of the vector to zero.
  675. */
  676. setZero() {
  677. this.x = this.y = this.z = 0;
  678. }
  679. /**
  680. * Vector addition
  681. */
  682. vadd(vector, target) {
  683. if (target) {
  684. target.x = vector.x + this.x;
  685. target.y = vector.y + this.y;
  686. target.z = vector.z + this.z;
  687. } else {
  688. return new Vec3(this.x + vector.x, this.y + vector.y, this.z + vector.z);
  689. }
  690. }
  691. /**
  692. * Vector subtraction
  693. * @param target Optional target to save in.
  694. */
  695. vsub(vector, target) {
  696. if (target) {
  697. target.x = this.x - vector.x;
  698. target.y = this.y - vector.y;
  699. target.z = this.z - vector.z;
  700. } else {
  701. return new Vec3(this.x - vector.x, this.y - vector.y, this.z - vector.z);
  702. }
  703. }
  704. /**
  705. * Get the cross product matrix a_cross from a vector, such that a x b = a_cross * b = c
  706. *
  707. * See {@link https://www8.cs.umu.se/kurser/TDBD24/VT06/lectures/Lecture6.pdf Umeå University Lecture}
  708. */
  709. crossmat() {
  710. return new Mat3([0, -this.z, this.y, this.z, 0, -this.x, -this.y, this.x, 0]);
  711. }
  712. /**
  713. * Normalize the vector. Note that this changes the values in the vector.
  714. * @return Returns the norm of the vector
  715. */
  716. normalize() {
  717. const x = this.x;
  718. const y = this.y;
  719. const z = this.z;
  720. const n = Math.sqrt(x * x + y * y + z * z);
  721. if (n > 0.0) {
  722. const invN = 1 / n;
  723. this.x *= invN;
  724. this.y *= invN;
  725. this.z *= invN;
  726. } else {
  727. // Make something up
  728. this.x = 0;
  729. this.y = 0;
  730. this.z = 0;
  731. }
  732. return n;
  733. }
  734. /**
  735. * Get the version of this vector that is of length 1.
  736. * @param target Optional target to save in
  737. * @return Returns the unit vector
  738. */
  739. unit(target = new Vec3()) {
  740. const x = this.x;
  741. const y = this.y;
  742. const z = this.z;
  743. let ninv = Math.sqrt(x * x + y * y + z * z);
  744. if (ninv > 0.0) {
  745. ninv = 1.0 / ninv;
  746. target.x = x * ninv;
  747. target.y = y * ninv;
  748. target.z = z * ninv;
  749. } else {
  750. target.x = 1;
  751. target.y = 0;
  752. target.z = 0;
  753. }
  754. return target;
  755. }
  756. /**
  757. * Get the length of the vector
  758. */
  759. length() {
  760. const x = this.x;
  761. const y = this.y;
  762. const z = this.z;
  763. return Math.sqrt(x * x + y * y + z * z);
  764. }
  765. /**
  766. * Get the squared length of the vector.
  767. */
  768. lengthSquared() {
  769. return this.dot(this);
  770. }
  771. /**
  772. * Get distance from this point to another point
  773. */
  774. distanceTo(p) {
  775. const x = this.x;
  776. const y = this.y;
  777. const z = this.z;
  778. const px = p.x;
  779. const py = p.y;
  780. const pz = p.z;
  781. return Math.sqrt((px - x) * (px - x) + (py - y) * (py - y) + (pz - z) * (pz - z));
  782. }
  783. /**
  784. * Get squared distance from this point to another point
  785. */
  786. distanceSquared(p) {
  787. const x = this.x;
  788. const y = this.y;
  789. const z = this.z;
  790. const px = p.x;
  791. const py = p.y;
  792. const pz = p.z;
  793. return (px - x) * (px - x) + (py - y) * (py - y) + (pz - z) * (pz - z);
  794. }
  795. /**
  796. * Multiply all the components of the vector with a scalar.
  797. * @param target The vector to save the result in.
  798. */
  799. scale(scalar, target = new Vec3()) {
  800. const x = this.x;
  801. const y = this.y;
  802. const z = this.z;
  803. target.x = scalar * x;
  804. target.y = scalar * y;
  805. target.z = scalar * z;
  806. return target;
  807. }
  808. /**
  809. * Multiply the vector with an other vector, component-wise.
  810. * @param target The vector to save the result in.
  811. */
  812. vmul(vector, target = new Vec3()) {
  813. target.x = vector.x * this.x;
  814. target.y = vector.y * this.y;
  815. target.z = vector.z * this.z;
  816. return target;
  817. }
  818. /**
  819. * Scale a vector and add it to this vector. Save the result in "target". (target = this + vector * scalar)
  820. * @param target The vector to save the result in.
  821. */
  822. addScaledVector(scalar, vector, target = new Vec3()) {
  823. target.x = this.x + scalar * vector.x;
  824. target.y = this.y + scalar * vector.y;
  825. target.z = this.z + scalar * vector.z;
  826. return target;
  827. }
  828. /**
  829. * Calculate dot product
  830. * @param vector
  831. */
  832. dot(vector) {
  833. return this.x * vector.x + this.y * vector.y + this.z * vector.z;
  834. }
  835. isZero() {
  836. return this.x === 0 && this.y === 0 && this.z === 0;
  837. }
  838. /**
  839. * Make the vector point in the opposite direction.
  840. * @param target Optional target to save in
  841. */
  842. negate(target = new Vec3()) {
  843. target.x = -this.x;
  844. target.y = -this.y;
  845. target.z = -this.z;
  846. return target;
  847. }
  848. /**
  849. * Compute two artificial tangents to the vector
  850. * @param t1 Vector object to save the first tangent in
  851. * @param t2 Vector object to save the second tangent in
  852. */
  853. tangents(t1, t2) {
  854. const norm = this.length();
  855. if (norm > 0.0) {
  856. const n = Vec3_tangents_n;
  857. const inorm = 1 / norm;
  858. n.set(this.x * inorm, this.y * inorm, this.z * inorm);
  859. const randVec = Vec3_tangents_randVec;
  860. if (Math.abs(n.x) < 0.9) {
  861. randVec.set(1, 0, 0);
  862. n.cross(randVec, t1);
  863. } else {
  864. randVec.set(0, 1, 0);
  865. n.cross(randVec, t1);
  866. }
  867. n.cross(t1, t2);
  868. } else {
  869. // The normal length is zero, make something up
  870. t1.set(1, 0, 0);
  871. t2.set(0, 1, 0);
  872. }
  873. }
  874. /**
  875. * Converts to a more readable format
  876. */
  877. toString() {
  878. return this.x + "," + this.y + "," + this.z;
  879. }
  880. /**
  881. * Converts to an array
  882. */
  883. toArray() {
  884. return [this.x, this.y, this.z];
  885. }
  886. /**
  887. * Copies value of source to this vector.
  888. */
  889. copy(vector) {
  890. this.x = vector.x;
  891. this.y = vector.y;
  892. this.z = vector.z;
  893. return this;
  894. }
  895. /**
  896. * Do a linear interpolation between two vectors
  897. * @param t A number between 0 and 1. 0 will make this function return u, and 1 will make it return v. Numbers in between will generate a vector in between them.
  898. */
  899. lerp(vector, t, target) {
  900. const x = this.x;
  901. const y = this.y;
  902. const z = this.z;
  903. target.x = x + (vector.x - x) * t;
  904. target.y = y + (vector.y - y) * t;
  905. target.z = z + (vector.z - z) * t;
  906. }
  907. /**
  908. * Check if a vector equals is almost equal to another one.
  909. */
  910. almostEquals(vector, precision = 1e-6) {
  911. if (Math.abs(this.x - vector.x) > precision || Math.abs(this.y - vector.y) > precision || Math.abs(this.z - vector.z) > precision) {
  912. return false;
  913. }
  914. return true;
  915. }
  916. /**
  917. * Check if a vector is almost zero
  918. */
  919. almostZero(precision = 1e-6) {
  920. if (Math.abs(this.x) > precision || Math.abs(this.y) > precision || Math.abs(this.z) > precision) {
  921. return false;
  922. }
  923. return true;
  924. }
  925. /**
  926. * Check if the vector is anti-parallel to another vector.
  927. * @param precision Set to zero for exact comparisons
  928. */
  929. isAntiparallelTo(vector, precision) {
  930. this.negate(antip_neg);
  931. return antip_neg.almostEquals(vector, precision);
  932. }
  933. /**
  934. * Clone the vector
  935. */
  936. clone() {
  937. return new Vec3(this.x, this.y, this.z);
  938. }
  939. }
  940. Vec3.ZERO = void 0;
  941. Vec3.UNIT_X = void 0;
  942. Vec3.UNIT_Y = void 0;
  943. Vec3.UNIT_Z = void 0;
  944. Vec3.ZERO = new Vec3(0, 0, 0);
  945. Vec3.UNIT_X = new Vec3(1, 0, 0);
  946. Vec3.UNIT_Y = new Vec3(0, 1, 0);
  947. Vec3.UNIT_Z = new Vec3(0, 0, 1);
  948. const Vec3_tangents_n = new Vec3();
  949. const Vec3_tangents_randVec = new Vec3();
  950. const antip_neg = new Vec3();
  951. /**
  952. * Axis aligned bounding box class.
  953. */
  954. class AABB {
  955. /**
  956. * The lower bound of the bounding box
  957. */
  958. /**
  959. * The upper bound of the bounding box
  960. */
  961. constructor(options = {}) {
  962. this.lowerBound = void 0;
  963. this.upperBound = void 0;
  964. this.lowerBound = new Vec3();
  965. this.upperBound = new Vec3();
  966. if (options.lowerBound) {
  967. this.lowerBound.copy(options.lowerBound);
  968. }
  969. if (options.upperBound) {
  970. this.upperBound.copy(options.upperBound);
  971. }
  972. }
  973. /**
  974. * Set the AABB bounds from a set of points.
  975. * @param points An array of Vec3's.
  976. * @return The self object
  977. */
  978. setFromPoints(points, position, quaternion, skinSize) {
  979. const l = this.lowerBound;
  980. const u = this.upperBound;
  981. const q = quaternion; // Set to the first point
  982. l.copy(points[0]);
  983. if (q) {
  984. q.vmult(l, l);
  985. }
  986. u.copy(l);
  987. for (let i = 1; i < points.length; i++) {
  988. let p = points[i];
  989. if (q) {
  990. q.vmult(p, tmp$1);
  991. p = tmp$1;
  992. }
  993. if (p.x > u.x) {
  994. u.x = p.x;
  995. }
  996. if (p.x < l.x) {
  997. l.x = p.x;
  998. }
  999. if (p.y > u.y) {
  1000. u.y = p.y;
  1001. }
  1002. if (p.y < l.y) {
  1003. l.y = p.y;
  1004. }
  1005. if (p.z > u.z) {
  1006. u.z = p.z;
  1007. }
  1008. if (p.z < l.z) {
  1009. l.z = p.z;
  1010. }
  1011. } // Add offset
  1012. if (position) {
  1013. position.vadd(l, l);
  1014. position.vadd(u, u);
  1015. }
  1016. if (skinSize) {
  1017. l.x -= skinSize;
  1018. l.y -= skinSize;
  1019. l.z -= skinSize;
  1020. u.x += skinSize;
  1021. u.y += skinSize;
  1022. u.z += skinSize;
  1023. }
  1024. return this;
  1025. }
  1026. /**
  1027. * Copy bounds from an AABB to this AABB
  1028. * @param aabb Source to copy from
  1029. * @return The this object, for chainability
  1030. */
  1031. copy(aabb) {
  1032. this.lowerBound.copy(aabb.lowerBound);
  1033. this.upperBound.copy(aabb.upperBound);
  1034. return this;
  1035. }
  1036. /**
  1037. * Clone an AABB
  1038. */
  1039. clone() {
  1040. return new AABB().copy(this);
  1041. }
  1042. /**
  1043. * Extend this AABB so that it covers the given AABB too.
  1044. */
  1045. extend(aabb) {
  1046. this.lowerBound.x = Math.min(this.lowerBound.x, aabb.lowerBound.x);
  1047. this.upperBound.x = Math.max(this.upperBound.x, aabb.upperBound.x);
  1048. this.lowerBound.y = Math.min(this.lowerBound.y, aabb.lowerBound.y);
  1049. this.upperBound.y = Math.max(this.upperBound.y, aabb.upperBound.y);
  1050. this.lowerBound.z = Math.min(this.lowerBound.z, aabb.lowerBound.z);
  1051. this.upperBound.z = Math.max(this.upperBound.z, aabb.upperBound.z);
  1052. }
  1053. /**
  1054. * Returns true if the given AABB overlaps this AABB.
  1055. */
  1056. overlaps(aabb) {
  1057. const l1 = this.lowerBound;
  1058. const u1 = this.upperBound;
  1059. const l2 = aabb.lowerBound;
  1060. const u2 = aabb.upperBound; // l2 u2
  1061. // |---------|
  1062. // |--------|
  1063. // l1 u1
  1064. const overlapsX = l2.x <= u1.x && u1.x <= u2.x || l1.x <= u2.x && u2.x <= u1.x;
  1065. const overlapsY = l2.y <= u1.y && u1.y <= u2.y || l1.y <= u2.y && u2.y <= u1.y;
  1066. const overlapsZ = l2.z <= u1.z && u1.z <= u2.z || l1.z <= u2.z && u2.z <= u1.z;
  1067. return overlapsX && overlapsY && overlapsZ;
  1068. } // Mostly for debugging
  1069. volume() {
  1070. const l = this.lowerBound;
  1071. const u = this.upperBound;
  1072. return (u.x - l.x) * (u.y - l.y) * (u.z - l.z);
  1073. }
  1074. /**
  1075. * Returns true if the given AABB is fully contained in this AABB.
  1076. */
  1077. contains(aabb) {
  1078. const l1 = this.lowerBound;
  1079. const u1 = this.upperBound;
  1080. const l2 = aabb.lowerBound;
  1081. const u2 = aabb.upperBound; // l2 u2
  1082. // |---------|
  1083. // |---------------|
  1084. // l1 u1
  1085. return l1.x <= l2.x && u1.x >= u2.x && l1.y <= l2.y && u1.y >= u2.y && l1.z <= l2.z && u1.z >= u2.z;
  1086. }
  1087. getCorners(a, b, c, d, e, f, g, h) {
  1088. const l = this.lowerBound;
  1089. const u = this.upperBound;
  1090. a.copy(l);
  1091. b.set(u.x, l.y, l.z);
  1092. c.set(u.x, u.y, l.z);
  1093. d.set(l.x, u.y, u.z);
  1094. e.set(u.x, l.y, u.z);
  1095. f.set(l.x, u.y, l.z);
  1096. g.set(l.x, l.y, u.z);
  1097. h.copy(u);
  1098. }
  1099. /**
  1100. * Get the representation of an AABB in another frame.
  1101. * @return The "target" AABB object.
  1102. */
  1103. toLocalFrame(frame, target) {
  1104. const corners = transformIntoFrame_corners;
  1105. const a = corners[0];
  1106. const b = corners[1];
  1107. const c = corners[2];
  1108. const d = corners[3];
  1109. const e = corners[4];
  1110. const f = corners[5];
  1111. const g = corners[6];
  1112. const h = corners[7]; // Get corners in current frame
  1113. this.getCorners(a, b, c, d, e, f, g, h); // Transform them to new local frame
  1114. for (let i = 0; i !== 8; i++) {
  1115. const corner = corners[i];
  1116. frame.pointToLocal(corner, corner);
  1117. }
  1118. return target.setFromPoints(corners);
  1119. }
  1120. /**
  1121. * Get the representation of an AABB in the global frame.
  1122. * @return The "target" AABB object.
  1123. */
  1124. toWorldFrame(frame, target) {
  1125. const corners = transformIntoFrame_corners;
  1126. const a = corners[0];
  1127. const b = corners[1];
  1128. const c = corners[2];
  1129. const d = corners[3];
  1130. const e = corners[4];
  1131. const f = corners[5];
  1132. const g = corners[6];
  1133. const h = corners[7]; // Get corners in current frame
  1134. this.getCorners(a, b, c, d, e, f, g, h); // Transform them to new local frame
  1135. for (let i = 0; i !== 8; i++) {
  1136. const corner = corners[i];
  1137. frame.pointToWorld(corner, corner);
  1138. }
  1139. return target.setFromPoints(corners);
  1140. }
  1141. /**
  1142. * Check if the AABB is hit by a ray.
  1143. */
  1144. overlapsRay(ray) {
  1145. const {
  1146. direction,
  1147. from
  1148. } = ray; // const t = 0
  1149. // ray.direction is unit direction vector of ray
  1150. const dirFracX = 1 / direction.x;
  1151. const dirFracY = 1 / direction.y;
  1152. const dirFracZ = 1 / direction.z; // this.lowerBound is the corner of AABB with minimal coordinates - left bottom, rt is maximal corner
  1153. const t1 = (this.lowerBound.x - from.x) * dirFracX;
  1154. const t2 = (this.upperBound.x - from.x) * dirFracX;
  1155. const t3 = (this.lowerBound.y - from.y) * dirFracY;
  1156. const t4 = (this.upperBound.y - from.y) * dirFracY;
  1157. const t5 = (this.lowerBound.z - from.z) * dirFracZ;
  1158. const t6 = (this.upperBound.z - from.z) * dirFracZ; // const tmin = Math.max(Math.max(Math.min(t1, t2), Math.min(t3, t4)));
  1159. // const tmax = Math.min(Math.min(Math.max(t1, t2), Math.max(t3, t4)));
  1160. const tmin = Math.max(Math.max(Math.min(t1, t2), Math.min(t3, t4)), Math.min(t5, t6));
  1161. const tmax = Math.min(Math.min(Math.max(t1, t2), Math.max(t3, t4)), Math.max(t5, t6)); // if tmax < 0, ray (line) is intersecting AABB, but whole AABB is behing us
  1162. if (tmax < 0) {
  1163. //t = tmax;
  1164. return false;
  1165. } // if tmin > tmax, ray doesn't intersect AABB
  1166. if (tmin > tmax) {
  1167. //t = tmax;
  1168. return false;
  1169. }
  1170. return true;
  1171. }
  1172. }
  1173. const tmp$1 = new Vec3();
  1174. const transformIntoFrame_corners = [new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3()];
  1175. /**
  1176. * Collision "matrix".
  1177. * It's actually a triangular-shaped array of whether two bodies are touching this step, for reference next step
  1178. */
  1179. class ArrayCollisionMatrix {
  1180. /**
  1181. * The matrix storage.
  1182. */
  1183. constructor() {
  1184. this.matrix = void 0;
  1185. this.matrix = [];
  1186. }
  1187. /**
  1188. * Get an element
  1189. */
  1190. get(bi, bj) {
  1191. let {
  1192. index: i
  1193. } = bi;
  1194. let {
  1195. index: j
  1196. } = bj;
  1197. if (j > i) {
  1198. const temp = j;
  1199. j = i;
  1200. i = temp;
  1201. }
  1202. return this.matrix[(i * (i + 1) >> 1) + j - 1];
  1203. }
  1204. /**
  1205. * Set an element
  1206. */
  1207. set(bi, bj, value) {
  1208. let {
  1209. index: i
  1210. } = bi;
  1211. let {
  1212. index: j
  1213. } = bj;
  1214. if (j > i) {
  1215. const temp = j;
  1216. j = i;
  1217. i = temp;
  1218. }
  1219. this.matrix[(i * (i + 1) >> 1) + j - 1] = value ? 1 : 0;
  1220. }
  1221. /**
  1222. * Sets all elements to zero
  1223. */
  1224. reset() {
  1225. for (let i = 0, l = this.matrix.length; i !== l; i++) {
  1226. this.matrix[i] = 0;
  1227. }
  1228. }
  1229. /**
  1230. * Sets the max number of objects
  1231. */
  1232. setNumObjects(n) {
  1233. this.matrix.length = n * (n - 1) >> 1;
  1234. }
  1235. }
  1236. /**
  1237. * Base class for objects that dispatches events.
  1238. */
  1239. class EventTarget {
  1240. constructor() {
  1241. this._listeners = void 0;
  1242. }
  1243. /**
  1244. * Add an event listener
  1245. * @return The self object, for chainability.
  1246. */
  1247. addEventListener(type, listener) {
  1248. if (this._listeners === undefined) {
  1249. this._listeners = {};
  1250. }
  1251. const listeners = this._listeners;
  1252. if (listeners[type] === undefined) {
  1253. listeners[type] = [];
  1254. }
  1255. if (!listeners[type].includes(listener)) {
  1256. listeners[type].push(listener);
  1257. }
  1258. return this;
  1259. }
  1260. /**
  1261. * Check if an event listener is added
  1262. */
  1263. hasEventListener(type, listener) {
  1264. if (this._listeners === undefined) {
  1265. return false;
  1266. }
  1267. const listeners = this._listeners;
  1268. if (listeners[type] !== undefined && listeners[type].includes(listener)) {
  1269. return true;
  1270. }
  1271. return false;
  1272. }
  1273. /**
  1274. * Check if any event listener of the given type is added
  1275. */
  1276. hasAnyEventListener(type) {
  1277. if (this._listeners === undefined) {
  1278. return false;
  1279. }
  1280. const listeners = this._listeners;
  1281. return listeners[type] !== undefined;
  1282. }
  1283. /**
  1284. * Remove an event listener
  1285. * @return The self object, for chainability.
  1286. */
  1287. removeEventListener(type, listener) {
  1288. if (this._listeners === undefined) {
  1289. return this;
  1290. }
  1291. const listeners = this._listeners;
  1292. if (listeners[type] === undefined) {
  1293. return this;
  1294. }
  1295. const index = listeners[type].indexOf(listener);
  1296. if (index !== -1) {
  1297. listeners[type].splice(index, 1);
  1298. }
  1299. return this;
  1300. }
  1301. /**
  1302. * Emit an event.
  1303. * @return The self object, for chainability.
  1304. */
  1305. dispatchEvent(event) {
  1306. if (this._listeners === undefined) {
  1307. return this;
  1308. }
  1309. const listeners = this._listeners;
  1310. const listenerArray = listeners[event.type];
  1311. if (listenerArray !== undefined) {
  1312. event.target = this;
  1313. for (let i = 0, l = listenerArray.length; i < l; i++) {
  1314. listenerArray[i].call(this, event);
  1315. }
  1316. }
  1317. return this;
  1318. }
  1319. }
  1320. /**
  1321. * A Quaternion describes a rotation in 3D space. The Quaternion is mathematically defined as Q = x*i + y*j + z*k + w, where (i,j,k) are imaginary basis vectors. (x,y,z) can be seen as a vector related to the axis of rotation, while the real multiplier, w, is related to the amount of rotation.
  1322. * @param x Multiplier of the imaginary basis vector i.
  1323. * @param y Multiplier of the imaginary basis vector j.
  1324. * @param z Multiplier of the imaginary basis vector k.
  1325. * @param w Multiplier of the real part.
  1326. * @see http://en.wikipedia.org/wiki/Quaternion
  1327. */
  1328. class Quaternion {
  1329. constructor(x = 0, y = 0, z = 0, w = 1) {
  1330. this.x = void 0;
  1331. this.y = void 0;
  1332. this.z = void 0;
  1333. this.w = void 0;
  1334. this.x = x;
  1335. this.y = y;
  1336. this.z = z;
  1337. this.w = w;
  1338. }
  1339. /**
  1340. * Set the value of the quaternion.
  1341. */
  1342. set(x, y, z, w) {
  1343. this.x = x;
  1344. this.y = y;
  1345. this.z = z;
  1346. this.w = w;
  1347. return this;
  1348. }
  1349. /**
  1350. * Convert to a readable format
  1351. * @return "x,y,z,w"
  1352. */
  1353. toString() {
  1354. return this.x + "," + this.y + "," + this.z + "," + this.w;
  1355. }
  1356. /**
  1357. * Convert to an Array
  1358. * @return [x, y, z, w]
  1359. */
  1360. toArray() {
  1361. return [this.x, this.y, this.z, this.w];
  1362. }
  1363. /**
  1364. * Set the quaternion components given an axis and an angle in radians.
  1365. */
  1366. setFromAxisAngle(vector, angle) {
  1367. const s = Math.sin(angle * 0.5);
  1368. this.x = vector.x * s;
  1369. this.y = vector.y * s;
  1370. this.z = vector.z * s;
  1371. this.w = Math.cos(angle * 0.5);
  1372. return this;
  1373. }
  1374. /**
  1375. * Converts the quaternion to [ axis, angle ] representation.
  1376. * @param targetAxis A vector object to reuse for storing the axis.
  1377. * @return An array, first element is the axis and the second is the angle in radians.
  1378. */
  1379. toAxisAngle(targetAxis = new Vec3()) {
  1380. this.normalize(); // if w>1 acos and sqrt will produce errors, this cant happen if quaternion is normalised
  1381. const angle = 2 * Math.acos(this.w);
  1382. const s = Math.sqrt(1 - this.w * this.w); // assuming quaternion normalised then w is less than 1, so term always positive.
  1383. if (s < 0.001) {
  1384. // test to avoid divide by zero, s is always positive due to sqrt
  1385. // if s close to zero then direction of axis not important
  1386. targetAxis.x = this.x; // if it is important that axis is normalised then replace with x=1; y=z=0;
  1387. targetAxis.y = this.y;
  1388. targetAxis.z = this.z;
  1389. } else {
  1390. targetAxis.x = this.x / s; // normalise axis
  1391. targetAxis.y = this.y / s;
  1392. targetAxis.z = this.z / s;
  1393. }
  1394. return [targetAxis, angle];
  1395. }
  1396. /**
  1397. * Set the quaternion value given two vectors. The resulting rotation will be the needed rotation to rotate u to v.
  1398. */
  1399. setFromVectors(u, v) {
  1400. if (u.isAntiparallelTo(v)) {
  1401. const t1 = sfv_t1;
  1402. const t2 = sfv_t2;
  1403. u.tangents(t1, t2);
  1404. this.setFromAxisAngle(t1, Math.PI);
  1405. } else {
  1406. const a = u.cross(v);
  1407. this.x = a.x;
  1408. this.y = a.y;
  1409. this.z = a.z;
  1410. this.w = Math.sqrt(u.length() ** 2 * v.length() ** 2) + u.dot(v);
  1411. this.normalize();
  1412. }
  1413. return this;
  1414. }
  1415. /**
  1416. * Multiply the quaternion with an other quaternion.
  1417. */
  1418. mult(quat, target = new Quaternion()) {
  1419. const ax = this.x;
  1420. const ay = this.y;
  1421. const az = this.z;
  1422. const aw = this.w;
  1423. const bx = quat.x;
  1424. const by = quat.y;
  1425. const bz = quat.z;
  1426. const bw = quat.w;
  1427. target.x = ax * bw + aw * bx + ay * bz - az * by;
  1428. target.y = ay * bw + aw * by + az * bx - ax * bz;
  1429. target.z = az * bw + aw * bz + ax * by - ay * bx;
  1430. target.w = aw * bw - ax * bx - ay * by - az * bz;
  1431. return target;
  1432. }
  1433. /**
  1434. * Get the inverse quaternion rotation.
  1435. */
  1436. inverse(target = new Quaternion()) {
  1437. const x = this.x;
  1438. const y = this.y;
  1439. const z = this.z;
  1440. const w = this.w;
  1441. this.conjugate(target);
  1442. const inorm2 = 1 / (x * x + y * y + z * z + w * w);
  1443. target.x *= inorm2;
  1444. target.y *= inorm2;
  1445. target.z *= inorm2;
  1446. target.w *= inorm2;
  1447. return target;
  1448. }
  1449. /**
  1450. * Get the quaternion conjugate
  1451. */
  1452. conjugate(target = new Quaternion()) {
  1453. target.x = -this.x;
  1454. target.y = -this.y;
  1455. target.z = -this.z;
  1456. target.w = this.w;
  1457. return target;
  1458. }
  1459. /**
  1460. * Normalize the quaternion. Note that this changes the values of the quaternion.
  1461. */
  1462. normalize() {
  1463. let l = Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w);
  1464. if (l === 0) {
  1465. this.x = 0;
  1466. this.y = 0;
  1467. this.z = 0;
  1468. this.w = 0;
  1469. } else {
  1470. l = 1 / l;
  1471. this.x *= l;
  1472. this.y *= l;
  1473. this.z *= l;
  1474. this.w *= l;
  1475. }
  1476. return this;
  1477. }
  1478. /**
  1479. * Approximation of quaternion normalization. Works best when quat is already almost-normalized.
  1480. * @author unphased, https://github.com/unphased
  1481. */
  1482. normalizeFast() {
  1483. const f = (3.0 - (this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w)) / 2.0;
  1484. if (f === 0) {
  1485. this.x = 0;
  1486. this.y = 0;
  1487. this.z = 0;
  1488. this.w = 0;
  1489. } else {
  1490. this.x *= f;
  1491. this.y *= f;
  1492. this.z *= f;
  1493. this.w *= f;
  1494. }
  1495. return this;
  1496. }
  1497. /**
  1498. * Multiply the quaternion by a vector
  1499. */
  1500. vmult(v, target = new Vec3()) {
  1501. const x = v.x;
  1502. const y = v.y;
  1503. const z = v.z;
  1504. const qx = this.x;
  1505. const qy = this.y;
  1506. const qz = this.z;
  1507. const qw = this.w; // q*v
  1508. const ix = qw * x + qy * z - qz * y;
  1509. const iy = qw * y + qz * x - qx * z;
  1510. const iz = qw * z + qx * y - qy * x;
  1511. const iw = -qx * x - qy * y - qz * z;
  1512. target.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;
  1513. target.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;
  1514. target.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;
  1515. return target;
  1516. }
  1517. /**
  1518. * Copies value of source to this quaternion.
  1519. * @return this
  1520. */
  1521. copy(quat) {
  1522. this.x = quat.x;
  1523. this.y = quat.y;
  1524. this.z = quat.z;
  1525. this.w = quat.w;
  1526. return this;
  1527. }
  1528. /**
  1529. * Convert the quaternion to euler angle representation. Order: YZX, as this page describes: https://www.euclideanspace.com/maths/standards/index.htm
  1530. * @param order Three-character string, defaults to "YZX"
  1531. */
  1532. toEuler(target, order = 'YZX') {
  1533. let heading;
  1534. let attitude;
  1535. let bank;
  1536. const x = this.x;
  1537. const y = this.y;
  1538. const z = this.z;
  1539. const w = this.w;
  1540. switch (order) {
  1541. case 'YZX':
  1542. const test = x * y + z * w;
  1543. if (test > 0.499) {
  1544. // singularity at north pole
  1545. heading = 2 * Math.atan2(x, w);
  1546. attitude = Math.PI / 2;
  1547. bank = 0;
  1548. }
  1549. if (test < -0.499) {
  1550. // singularity at south pole
  1551. heading = -2 * Math.atan2(x, w);
  1552. attitude = -Math.PI / 2;
  1553. bank = 0;
  1554. }
  1555. if (heading === undefined) {
  1556. const sqx = x * x;
  1557. const sqy = y * y;
  1558. const sqz = z * z;
  1559. heading = Math.atan2(2 * y * w - 2 * x * z, 1 - 2 * sqy - 2 * sqz); // Heading
  1560. attitude = Math.asin(2 * test); // attitude
  1561. bank = Math.atan2(2 * x * w - 2 * y * z, 1 - 2 * sqx - 2 * sqz); // bank
  1562. }
  1563. break;
  1564. default:
  1565. throw new Error("Euler order " + order + " not supported yet.");
  1566. }
  1567. target.y = heading;
  1568. target.z = attitude;
  1569. target.x = bank;
  1570. }
  1571. /**
  1572. * @param order The order to apply angles: 'XYZ' or 'YXZ' or any other combination.
  1573. *
  1574. * See {@link https://www.mathworks.com/matlabcentral/fileexchange/20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors MathWorks} reference
  1575. */
  1576. setFromEuler(x, y, z, order = 'XYZ') {
  1577. const c1 = Math.cos(x / 2);
  1578. const c2 = Math.cos(y / 2);
  1579. const c3 = Math.cos(z / 2);
  1580. const s1 = Math.sin(x / 2);
  1581. const s2 = Math.sin(y / 2);
  1582. const s3 = Math.sin(z / 2);
  1583. if (order === 'XYZ') {
  1584. this.x = s1 * c2 * c3 + c1 * s2 * s3;
  1585. this.y = c1 * s2 * c3 - s1 * c2 * s3;
  1586. this.z = c1 * c2 * s3 + s1 * s2 * c3;
  1587. this.w = c1 * c2 * c3 - s1 * s2 * s3;
  1588. } else if (order === 'YXZ') {
  1589. this.x = s1 * c2 * c3 + c1 * s2 * s3;
  1590. this.y = c1 * s2 * c3 - s1 * c2 * s3;
  1591. this.z = c1 * c2 * s3 - s1 * s2 * c3;
  1592. this.w = c1 * c2 * c3 + s1 * s2 * s3;
  1593. } else if (order === 'ZXY') {
  1594. this.x = s1 * c2 * c3 - c1 * s2 * s3;
  1595. this.y = c1 * s2 * c3 + s1 * c2 * s3;
  1596. this.z = c1 * c2 * s3 + s1 * s2 * c3;
  1597. this.w = c1 * c2 * c3 - s1 * s2 * s3;
  1598. } else if (order === 'ZYX') {
  1599. this.x = s1 * c2 * c3 - c1 * s2 * s3;
  1600. this.y = c1 * s2 * c3 + s1 * c2 * s3;
  1601. this.z = c1 * c2 * s3 - s1 * s2 * c3;
  1602. this.w = c1 * c2 * c3 + s1 * s2 * s3;
  1603. } else if (order === 'YZX') {
  1604. this.x = s1 * c2 * c3 + c1 * s2 * s3;
  1605. this.y = c1 * s2 * c3 + s1 * c2 * s3;
  1606. this.z = c1 * c2 * s3 - s1 * s2 * c3;
  1607. this.w = c1 * c2 * c3 - s1 * s2 * s3;
  1608. } else if (order === 'XZY') {
  1609. this.x = s1 * c2 * c3 - c1 * s2 * s3;
  1610. this.y = c1 * s2 * c3 - s1 * c2 * s3;
  1611. this.z = c1 * c2 * s3 + s1 * s2 * c3;
  1612. this.w = c1 * c2 * c3 + s1 * s2 * s3;
  1613. }
  1614. return this;
  1615. }
  1616. clone() {
  1617. return new Quaternion(this.x, this.y, this.z, this.w);
  1618. }
  1619. /**
  1620. * Performs a spherical linear interpolation between two quat
  1621. *
  1622. * @param toQuat second operand
  1623. * @param t interpolation amount between the self quaternion and toQuat
  1624. * @param target A quaternion to store the result in. If not provided, a new one will be created.
  1625. * @returns {Quaternion} The "target" object
  1626. */
  1627. slerp(toQuat, t, target = new Quaternion()) {
  1628. const ax = this.x;
  1629. const ay = this.y;
  1630. const az = this.z;
  1631. const aw = this.w;
  1632. let bx = toQuat.x;
  1633. let by = toQuat.y;
  1634. let bz = toQuat.z;
  1635. let bw = toQuat.w;
  1636. let omega;
  1637. let cosom;
  1638. let sinom;
  1639. let scale0;
  1640. let scale1; // calc cosine
  1641. cosom = ax * bx + ay * by + az * bz + aw * bw; // adjust signs (if necessary)
  1642. if (cosom < 0.0) {
  1643. cosom = -cosom;
  1644. bx = -bx;
  1645. by = -by;
  1646. bz = -bz;
  1647. bw = -bw;
  1648. } // calculate coefficients
  1649. if (1.0 - cosom > 0.000001) {
  1650. // standard case (slerp)
  1651. omega = Math.acos(cosom);
  1652. sinom = Math.sin(omega);
  1653. scale0 = Math.sin((1.0 - t) * omega) / sinom;
  1654. scale1 = Math.sin(t * omega) / sinom;
  1655. } else {
  1656. // "from" and "to" quaternions are very close
  1657. // ... so we can do a linear interpolation
  1658. scale0 = 1.0 - t;
  1659. scale1 = t;
  1660. } // calculate final values
  1661. target.x = scale0 * ax + scale1 * bx;
  1662. target.y = scale0 * ay + scale1 * by;
  1663. target.z = scale0 * az + scale1 * bz;
  1664. target.w = scale0 * aw + scale1 * bw;
  1665. return target;
  1666. }
  1667. /**
  1668. * Rotate an absolute orientation quaternion given an angular velocity and a time step.
  1669. */
  1670. integrate(angularVelocity, dt, angularFactor, target = new Quaternion()) {
  1671. const ax = angularVelocity.x * angularFactor.x,
  1672. ay = angularVelocity.y * angularFactor.y,
  1673. az = angularVelocity.z * angularFactor.z,
  1674. bx = this.x,
  1675. by = this.y,
  1676. bz = this.z,
  1677. bw = this.w;
  1678. const half_dt = dt * 0.5;
  1679. target.x += half_dt * (ax * bw + ay * bz - az * by);
  1680. target.y += half_dt * (ay * bw + az * bx - ax * bz);
  1681. target.z += half_dt * (az * bw + ax * by - ay * bx);
  1682. target.w += half_dt * (-ax * bx - ay * by - az * bz);
  1683. return target;
  1684. }
  1685. }
  1686. const sfv_t1 = new Vec3();
  1687. const sfv_t2 = new Vec3();
  1688. /**
  1689. * The available shape types.
  1690. */
  1691. const SHAPE_TYPES = {
  1692. /** SPHERE */
  1693. SPHERE: 1,
  1694. /** PLANE */
  1695. PLANE: 2,
  1696. /** BOX */
  1697. BOX: 4,
  1698. /** COMPOUND */
  1699. COMPOUND: 8,
  1700. /** CONVEXPOLYHEDRON */
  1701. CONVEXPOLYHEDRON: 16,
  1702. /** HEIGHTFIELD */
  1703. HEIGHTFIELD: 32,
  1704. /** PARTICLE */
  1705. PARTICLE: 64,
  1706. /** CYLINDER */
  1707. CYLINDER: 128,
  1708. /** TRIMESH */
  1709. TRIMESH: 256
  1710. };
  1711. /**
  1712. * ShapeType
  1713. */
  1714. /**
  1715. * Base class for shapes
  1716. */
  1717. class Shape {
  1718. /**
  1719. * Identifier of the Shape.
  1720. */
  1721. /**
  1722. * The type of this shape. Must be set to an int > 0 by subclasses.
  1723. */
  1724. /**
  1725. * The local bounding sphere radius of this shape.
  1726. */
  1727. /**
  1728. * Whether to produce contact forces when in contact with other bodies. Note that contacts will be generated, but they will be disabled.
  1729. * @default true
  1730. */
  1731. /**
  1732. * @default 1
  1733. */
  1734. /**
  1735. * @default -1
  1736. */
  1737. /**
  1738. * Optional material of the shape that regulates contact properties.
  1739. */
  1740. /**
  1741. * The body to which the shape is added to.
  1742. */
  1743. /**
  1744. * All the Shape types.
  1745. */
  1746. constructor(options = {}) {
  1747. this.id = void 0;
  1748. this.type = void 0;
  1749. this.boundingSphereRadius = void 0;
  1750. this.collisionResponse = void 0;
  1751. this.collisionFilterGroup = void 0;
  1752. this.collisionFilterMask = void 0;
  1753. this.material = void 0;
  1754. this.body = void 0;
  1755. this.id = Shape.idCounter++;
  1756. this.type = options.type || 0;
  1757. this.boundingSphereRadius = 0;
  1758. this.collisionResponse = options.collisionResponse ? options.collisionResponse : true;
  1759. this.collisionFilterGroup = options.collisionFilterGroup !== undefined ? options.collisionFilterGroup : 1;
  1760. this.collisionFilterMask = options.collisionFilterMask !== undefined ? options.collisionFilterMask : -1;
  1761. this.material = options.material ? options.material : null;
  1762. this.body = null;
  1763. }
  1764. /**
  1765. * Computes the bounding sphere radius.
  1766. * The result is stored in the property `.boundingSphereRadius`
  1767. */
  1768. updateBoundingSphereRadius() {
  1769. throw "computeBoundingSphereRadius() not implemented for shape type " + this.type;
  1770. }
  1771. /**
  1772. * Get the volume of this shape
  1773. */
  1774. volume() {
  1775. throw "volume() not implemented for shape type " + this.type;
  1776. }
  1777. /**
  1778. * Calculates the inertia in the local frame for this shape.
  1779. * @see http://en.wikipedia.org/wiki/List_of_moments_of_inertia
  1780. */
  1781. calculateLocalInertia(mass, target) {
  1782. throw "calculateLocalInertia() not implemented for shape type " + this.type;
  1783. }
  1784. /**
  1785. * @todo use abstract for these kind of methods
  1786. */
  1787. calculateWorldAABB(pos, quat, min, max) {
  1788. throw "calculateWorldAABB() not implemented for shape type " + this.type;
  1789. }
  1790. }
  1791. Shape.idCounter = 0;
  1792. Shape.types = SHAPE_TYPES;
  1793. /**
  1794. * Transformation utilities.
  1795. */
  1796. class Transform {
  1797. /**
  1798. * position
  1799. */
  1800. /**
  1801. * quaternion
  1802. */
  1803. constructor(options = {}) {
  1804. this.position = void 0;
  1805. this.quaternion = void 0;
  1806. this.position = new Vec3();
  1807. this.quaternion = new Quaternion();
  1808. if (options.position) {
  1809. this.position.copy(options.position);
  1810. }
  1811. if (options.quaternion) {
  1812. this.quaternion.copy(options.quaternion);
  1813. }
  1814. }
  1815. /**
  1816. * Get a global point in local transform coordinates.
  1817. */
  1818. pointToLocal(worldPoint, result) {
  1819. return Transform.pointToLocalFrame(this.position, this.quaternion, worldPoint, result);
  1820. }
  1821. /**
  1822. * Get a local point in global transform coordinates.
  1823. */
  1824. pointToWorld(localPoint, result) {
  1825. return Transform.pointToWorldFrame(this.position, this.quaternion, localPoint, result);
  1826. }
  1827. /**
  1828. * vectorToWorldFrame
  1829. */
  1830. vectorToWorldFrame(localVector, result = new Vec3()) {
  1831. this.quaternion.vmult(localVector, result);
  1832. return result;
  1833. }
  1834. /**
  1835. * pointToLocalFrame
  1836. */
  1837. static pointToLocalFrame(position, quaternion, worldPoint, result = new Vec3()) {
  1838. worldPoint.vsub(position, result);
  1839. quaternion.conjugate(tmpQuat$1);
  1840. tmpQuat$1.vmult(result, result);
  1841. return result;
  1842. }
  1843. /**
  1844. * pointToWorldFrame
  1845. */
  1846. static pointToWorldFrame(position, quaternion, localPoint, result = new Vec3()) {
  1847. quaternion.vmult(localPoint, result);
  1848. result.vadd(position, result);
  1849. return result;
  1850. }
  1851. /**
  1852. * vectorToWorldFrame
  1853. */
  1854. static vectorToWorldFrame(quaternion, localVector, result = new Vec3()) {
  1855. quaternion.vmult(localVector, result);
  1856. return result;
  1857. }
  1858. /**
  1859. * vectorToLocalFrame
  1860. */
  1861. static vectorToLocalFrame(position, quaternion, worldVector, result = new Vec3()) {
  1862. quaternion.w *= -1;
  1863. quaternion.vmult(worldVector, result);
  1864. quaternion.w *= -1;
  1865. return result;
  1866. }
  1867. }
  1868. const tmpQuat$1 = new Quaternion();
  1869. /**
  1870. * A set of polygons describing a convex shape.
  1871. *
  1872. * The shape MUST be convex for the code to work properly. No polygons may be coplanar (contained
  1873. * in the same 3D plane), instead these should be merged into one polygon.
  1874. *
  1875. * @author qiao / https://github.com/qiao (original author, see https://github.com/qiao/three.js/commit/85026f0c769e4000148a67d45a9e9b9c5108836f)
  1876. * @author schteppe / https://github.com/schteppe
  1877. * @see https://www.altdevblogaday.com/2011/05/13/contact-generation-between-3d-convex-meshes/
  1878. *
  1879. * @todo Move the clipping functions to ContactGenerator?
  1880. * @todo Automatically merge coplanar polygons in constructor.
  1881. * @example
  1882. * const convexShape = new CANNON.ConvexPolyhedron({ vertices, faces })
  1883. * const convexBody = new CANNON.Body({ mass: 1, shape: convexShape })
  1884. * world.addBody(convexBody)
  1885. */
  1886. class ConvexPolyhedron extends Shape {
  1887. /** vertices */
  1888. /**
  1889. * Array of integer arrays, indicating which vertices each face consists of
  1890. */
  1891. /** faceNormals */
  1892. /** worldVertices */
  1893. /** worldVerticesNeedsUpdate */
  1894. /** worldFaceNormals */
  1895. /** worldFaceNormalsNeedsUpdate */
  1896. /**
  1897. * If given, these locally defined, normalized axes are the only ones being checked when doing separating axis check.
  1898. */
  1899. /** uniqueEdges */
  1900. /**
  1901. * @param vertices An array of Vec3's
  1902. * @param faces Array of integer arrays, describing which vertices that is included in each face.
  1903. */
  1904. constructor(props = {}) {
  1905. const {
  1906. vertices = [],
  1907. faces = [],
  1908. normals = [],
  1909. axes,
  1910. boundingSphereRadius
  1911. } = props;
  1912. super({
  1913. type: Shape.types.CONVEXPOLYHEDRON
  1914. });
  1915. this.vertices = void 0;
  1916. this.faces = void 0;
  1917. this.faceNormals = void 0;
  1918. this.worldVertices = void 0;
  1919. this.worldVerticesNeedsUpdate = void 0;
  1920. this.worldFaceNormals = void 0;
  1921. this.worldFaceNormalsNeedsUpdate = void 0;
  1922. this.uniqueAxes = void 0;
  1923. this.uniqueEdges = void 0;
  1924. this.vertices = vertices;
  1925. this.faces = faces;
  1926. this.faceNormals = normals;
  1927. if (this.faceNormals.length === 0) {
  1928. this.computeNormals();
  1929. }
  1930. if (!boundingSphereRadius) {
  1931. this.updateBoundingSphereRadius();
  1932. } else {
  1933. this.boundingSphereRadius = boundingSphereRadius;
  1934. }
  1935. this.worldVertices = []; // World transformed version of .vertices
  1936. this.worldVerticesNeedsUpdate = true;
  1937. this.worldFaceNormals = []; // World transformed version of .faceNormals
  1938. this.worldFaceNormalsNeedsUpdate = true;
  1939. this.uniqueAxes = axes ? axes.slice() : null;
  1940. this.uniqueEdges = [];
  1941. this.computeEdges();
  1942. }
  1943. /**
  1944. * Computes uniqueEdges
  1945. */
  1946. computeEdges() {
  1947. const faces = this.faces;
  1948. const vertices = this.vertices;
  1949. const edges = this.uniqueEdges;
  1950. edges.length = 0;
  1951. const edge = new Vec3();
  1952. for (let i = 0; i !== faces.length; i++) {
  1953. const face = faces[i];
  1954. const numVertices = face.length;
  1955. for (let j = 0; j !== numVertices; j++) {
  1956. const k = (j + 1) % numVertices;
  1957. vertices[face[j]].vsub(vertices[face[k]], edge);
  1958. edge.normalize();
  1959. let found = false;
  1960. for (let p = 0; p !== edges.length; p++) {
  1961. if (edges[p].almostEquals(edge) || edges[p].almostEquals(edge)) {
  1962. found = true;
  1963. break;
  1964. }
  1965. }
  1966. if (!found) {
  1967. edges.push(edge.clone());
  1968. }
  1969. }
  1970. }
  1971. }
  1972. /**
  1973. * Compute the normals of the faces.
  1974. * Will reuse existing Vec3 objects in the `faceNormals` array if they exist.
  1975. */
  1976. computeNormals() {
  1977. this.faceNormals.length = this.faces.length; // Generate normals
  1978. for (let i = 0; i < this.faces.length; i++) {
  1979. // Check so all vertices exists for this face
  1980. for (let j = 0; j < this.faces[i].length; j++) {
  1981. if (!this.vertices[this.faces[i][j]]) {
  1982. throw new Error("Vertex " + this.faces[i][j] + " not found!");
  1983. }
  1984. }
  1985. const n = this.faceNormals[i] || new Vec3();
  1986. this.getFaceNormal(i, n);
  1987. n.negate(n);
  1988. this.faceNormals[i] = n;
  1989. const vertex = this.vertices[this.faces[i][0]];
  1990. if (n.dot(vertex) < 0) {
  1991. console.error(".faceNormals[" + i + "] = Vec3(" + n.toString() + ") looks like it points into the shape? The vertices follow. Make sure they are ordered CCW around the normal, using the right hand rule.");
  1992. for (let j = 0; j < this.faces[i].length; j++) {
  1993. console.warn(".vertices[" + this.faces[i][j] + "] = Vec3(" + this.vertices[this.faces[i][j]].toString() + ")");
  1994. }
  1995. }
  1996. }
  1997. }
  1998. /**
  1999. * Compute the normal of a face from its vertices
  2000. */
  2001. getFaceNormal(i, target) {
  2002. const f = this.faces[i];
  2003. const va = this.vertices[f[0]];
  2004. const vb = this.vertices[f[1]];
  2005. const vc = this.vertices[f[2]];
  2006. ConvexPolyhedron.computeNormal(va, vb, vc, target);
  2007. }
  2008. /**
  2009. * Get face normal given 3 vertices
  2010. */
  2011. static computeNormal(va, vb, vc, target) {
  2012. const cb = new Vec3();
  2013. const ab = new Vec3();
  2014. vb.vsub(va, ab);
  2015. vc.vsub(vb, cb);
  2016. cb.cross(ab, target);
  2017. if (!target.isZero()) {
  2018. target.normalize();
  2019. }
  2020. }
  2021. /**
  2022. * @param minDist Clamp distance
  2023. * @param result The an array of contact point objects, see clipFaceAgainstHull
  2024. */
  2025. clipAgainstHull(posA, quatA, hullB, posB, quatB, separatingNormal, minDist, maxDist, result) {
  2026. const WorldNormal = new Vec3();
  2027. let closestFaceB = -1;
  2028. let dmax = -Number.MAX_VALUE;
  2029. for (let face = 0; face < hullB.faces.length; face++) {
  2030. WorldNormal.copy(hullB.faceNormals[face]);
  2031. quatB.vmult(WorldNormal, WorldNormal);
  2032. const d = WorldNormal.dot(separatingNormal);
  2033. if (d > dmax) {
  2034. dmax = d;
  2035. closestFaceB = face;
  2036. }
  2037. }
  2038. const worldVertsB1 = [];
  2039. for (let i = 0; i < hullB.faces[closestFaceB].length; i++) {
  2040. const b = hullB.vertices[hullB.faces[closestFaceB][i]];
  2041. const worldb = new Vec3();
  2042. worldb.copy(b);
  2043. quatB.vmult(worldb, worldb);
  2044. posB.vadd(worldb, worldb);
  2045. worldVertsB1.push(worldb);
  2046. }
  2047. if (closestFaceB >= 0) {
  2048. this.clipFaceAgainstHull(separatingNormal, posA, quatA, worldVertsB1, minDist, maxDist, result);
  2049. }
  2050. }
  2051. /**
  2052. * Find the separating axis between this hull and another
  2053. * @param target The target vector to save the axis in
  2054. * @return Returns false if a separation is found, else true
  2055. */
  2056. findSeparatingAxis(hullB, posA, quatA, posB, quatB, target, faceListA, faceListB) {
  2057. const faceANormalWS3 = new Vec3();
  2058. const Worldnormal1 = new Vec3();
  2059. const deltaC = new Vec3();
  2060. const worldEdge0 = new Vec3();
  2061. const worldEdge1 = new Vec3();
  2062. const Cross = new Vec3();
  2063. let dmin = Number.MAX_VALUE;
  2064. const hullA = this;
  2065. if (!hullA.uniqueAxes) {
  2066. const numFacesA = faceListA ? faceListA.length : hullA.faces.length; // Test face normals from hullA
  2067. for (let i = 0; i < numFacesA; i++) {
  2068. const fi = faceListA ? faceListA[i] : i; // Get world face normal
  2069. faceANormalWS3.copy(hullA.faceNormals[fi]);
  2070. quatA.vmult(faceANormalWS3, faceANormalWS3);
  2071. const d = hullA.testSepAxis(faceANormalWS3, hullB, posA, quatA, posB, quatB);
  2072. if (d === false) {
  2073. return false;
  2074. }
  2075. if (d < dmin) {
  2076. dmin = d;
  2077. target.copy(faceANormalWS3);
  2078. }
  2079. }
  2080. } else {
  2081. // Test unique axes
  2082. for (let i = 0; i !== hullA.uniqueAxes.length; i++) {
  2083. // Get world axis
  2084. quatA.vmult(hullA.uniqueAxes[i], faceANormalWS3);
  2085. const d = hullA.testSepAxis(faceANormalWS3, hullB, posA, quatA, posB, quatB);
  2086. if (d === false) {
  2087. return false;
  2088. }
  2089. if (d < dmin) {
  2090. dmin = d;
  2091. target.copy(faceANormalWS3);
  2092. }
  2093. }
  2094. }
  2095. if (!hullB.uniqueAxes) {
  2096. // Test face normals from hullB
  2097. const numFacesB = faceListB ? faceListB.length : hullB.faces.length;
  2098. for (let i = 0; i < numFacesB; i++) {
  2099. const fi = faceListB ? faceListB[i] : i;
  2100. Worldnormal1.copy(hullB.faceNormals[fi]);
  2101. quatB.vmult(Worldnormal1, Worldnormal1);
  2102. const d = hullA.testSepAxis(Worldnormal1, hullB, posA, quatA, posB, quatB);
  2103. if (d === false) {
  2104. return false;
  2105. }
  2106. if (d < dmin) {
  2107. dmin = d;
  2108. target.copy(Worldnormal1);
  2109. }
  2110. }
  2111. } else {
  2112. // Test unique axes in B
  2113. for (let i = 0; i !== hullB.uniqueAxes.length; i++) {
  2114. quatB.vmult(hullB.uniqueAxes[i], Worldnormal1);
  2115. const d = hullA.testSepAxis(Worldnormal1, hullB, posA, quatA, posB, quatB);
  2116. if (d === false) {
  2117. return false;
  2118. }
  2119. if (d < dmin) {
  2120. dmin = d;
  2121. target.copy(Worldnormal1);
  2122. }
  2123. }
  2124. } // Test edges
  2125. for (let e0 = 0; e0 !== hullA.uniqueEdges.length; e0++) {
  2126. // Get world edge
  2127. quatA.vmult(hullA.uniqueEdges[e0], worldEdge0);
  2128. for (let e1 = 0; e1 !== hullB.uniqueEdges.length; e1++) {
  2129. // Get world edge 2
  2130. quatB.vmult(hullB.uniqueEdges[e1], worldEdge1);
  2131. worldEdge0.cross(worldEdge1, Cross);
  2132. if (!Cross.almostZero()) {
  2133. Cross.normalize();
  2134. const dist = hullA.testSepAxis(Cross, hullB, posA, quatA, posB, quatB);
  2135. if (dist === false) {
  2136. return false;
  2137. }
  2138. if (dist < dmin) {
  2139. dmin = dist;
  2140. target.copy(Cross);
  2141. }
  2142. }
  2143. }
  2144. }
  2145. posB.vsub(posA, deltaC);
  2146. if (deltaC.dot(target) > 0.0) {
  2147. target.negate(target);
  2148. }
  2149. return true;
  2150. }
  2151. /**
  2152. * Test separating axis against two hulls. Both hulls are projected onto the axis and the overlap size is returned if there is one.
  2153. * @return The overlap depth, or FALSE if no penetration.
  2154. */
  2155. testSepAxis(axis, hullB, posA, quatA, posB, quatB) {
  2156. const hullA = this;
  2157. ConvexPolyhedron.project(hullA, axis, posA, quatA, maxminA);
  2158. ConvexPolyhedron.project(hullB, axis, posB, quatB, maxminB);
  2159. const maxA = maxminA[0];
  2160. const minA = maxminA[1];
  2161. const maxB = maxminB[0];
  2162. const minB = maxminB[1];
  2163. if (maxA < minB || maxB < minA) {
  2164. return false; // Separated
  2165. }
  2166. const d0 = maxA - minB;
  2167. const d1 = maxB - minA;
  2168. const depth = d0 < d1 ? d0 : d1;
  2169. return depth;
  2170. }
  2171. /**
  2172. * calculateLocalInertia
  2173. */
  2174. calculateLocalInertia(mass, target) {
  2175. // Approximate with box inertia
  2176. // Exact inertia calculation is overkill, but see http://geometrictools.com/Documentation/PolyhedralMassProperties.pdf for the correct way to do it
  2177. const aabbmax = new Vec3();
  2178. const aabbmin = new Vec3();
  2179. this.computeLocalAABB(aabbmin, aabbmax);
  2180. const x = aabbmax.x - aabbmin.x;
  2181. const y = aabbmax.y - aabbmin.y;
  2182. const z = aabbmax.z - aabbmin.z;
  2183. target.x = 1.0 / 12.0 * mass * (2 * y * 2 * y + 2 * z * 2 * z);
  2184. target.y = 1.0 / 12.0 * mass * (2 * x * 2 * x + 2 * z * 2 * z);
  2185. target.z = 1.0 / 12.0 * mass * (2 * y * 2 * y + 2 * x * 2 * x);
  2186. }
  2187. /**
  2188. * @param face_i Index of the face
  2189. */
  2190. getPlaneConstantOfFace(face_i) {
  2191. const f = this.faces[face_i];
  2192. const n = this.faceNormals[face_i];
  2193. const v = this.vertices[f[0]];
  2194. const c = -n.dot(v);
  2195. return c;
  2196. }
  2197. /**
  2198. * Clip a face against a hull.
  2199. * @param worldVertsB1 An array of Vec3 with vertices in the world frame.
  2200. * @param minDist Distance clamping
  2201. * @param Array result Array to store resulting contact points in. Will be objects with properties: point, depth, normal. These are represented in world coordinates.
  2202. */
  2203. clipFaceAgainstHull(separatingNormal, posA, quatA, worldVertsB1, minDist, maxDist, result) {
  2204. const faceANormalWS = new Vec3();
  2205. const edge0 = new Vec3();
  2206. const WorldEdge0 = new Vec3();
  2207. const worldPlaneAnormal1 = new Vec3();
  2208. const planeNormalWS1 = new Vec3();
  2209. const worldA1 = new Vec3();
  2210. const localPlaneNormal = new Vec3();
  2211. const planeNormalWS = new Vec3();
  2212. const hullA = this;
  2213. const worldVertsB2 = [];
  2214. const pVtxIn = worldVertsB1;
  2215. const pVtxOut = worldVertsB2;
  2216. let closestFaceA = -1;
  2217. let dmin = Number.MAX_VALUE; // Find the face with normal closest to the separating axis
  2218. for (let face = 0; face < hullA.faces.length; face++) {
  2219. faceANormalWS.copy(hullA.faceNormals[face]);
  2220. quatA.vmult(faceANormalWS, faceANormalWS);
  2221. const d = faceANormalWS.dot(separatingNormal);
  2222. if (d < dmin) {
  2223. dmin = d;
  2224. closestFaceA = face;
  2225. }
  2226. }
  2227. if (closestFaceA < 0) {
  2228. return;
  2229. } // Get the face and construct connected faces
  2230. const polyA = hullA.faces[closestFaceA];
  2231. polyA.connectedFaces = [];
  2232. for (let i = 0; i < hullA.faces.length; i++) {
  2233. for (let j = 0; j < hullA.faces[i].length; j++) {
  2234. if (
  2235. /* Sharing a vertex*/
  2236. polyA.indexOf(hullA.faces[i][j]) !== -1 &&
  2237. /* Not the one we are looking for connections from */
  2238. i !== closestFaceA &&
  2239. /* Not already added */
  2240. polyA.connectedFaces.indexOf(i) === -1) {
  2241. polyA.connectedFaces.push(i);
  2242. }
  2243. }
  2244. } // Clip the polygon to the back of the planes of all faces of hull A,
  2245. // that are adjacent to the witness face
  2246. const numVerticesA = polyA.length;
  2247. for (let i = 0; i < numVerticesA; i++) {
  2248. const a = hullA.vertices[polyA[i]];
  2249. const b = hullA.vertices[polyA[(i + 1) % numVerticesA]];
  2250. a.vsub(b, edge0);
  2251. WorldEdge0.copy(edge0);
  2252. quatA.vmult(WorldEdge0, WorldEdge0);
  2253. posA.vadd(WorldEdge0, WorldEdge0);
  2254. worldPlaneAnormal1.copy(this.faceNormals[closestFaceA]);
  2255. quatA.vmult(worldPlaneAnormal1, worldPlaneAnormal1);
  2256. posA.vadd(worldPlaneAnormal1, worldPlaneAnormal1);
  2257. WorldEdge0.cross(worldPlaneAnormal1, planeNormalWS1);
  2258. planeNormalWS1.negate(planeNormalWS1);
  2259. worldA1.copy(a);
  2260. quatA.vmult(worldA1, worldA1);
  2261. posA.vadd(worldA1, worldA1);
  2262. const otherFace = polyA.connectedFaces[i];
  2263. localPlaneNormal.copy(this.faceNormals[otherFace]);
  2264. const localPlaneEq = this.getPlaneConstantOfFace(otherFace);
  2265. planeNormalWS.copy(localPlaneNormal);
  2266. quatA.vmult(planeNormalWS, planeNormalWS);
  2267. const planeEqWS = localPlaneEq - planeNormalWS.dot(posA); // Clip face against our constructed plane
  2268. this.clipFaceAgainstPlane(pVtxIn, pVtxOut, planeNormalWS, planeEqWS); // Throw away all clipped points, but save the remaining until next clip
  2269. while (pVtxIn.length) {
  2270. pVtxIn.shift();
  2271. }
  2272. while (pVtxOut.length) {
  2273. pVtxIn.push(pVtxOut.shift());
  2274. }
  2275. } // only keep contact points that are behind the witness face
  2276. localPlaneNormal.copy(this.faceNormals[closestFaceA]);
  2277. const localPlaneEq = this.getPlaneConstantOfFace(closestFaceA);
  2278. planeNormalWS.copy(localPlaneNormal);
  2279. quatA.vmult(planeNormalWS, planeNormalWS);
  2280. const planeEqWS = localPlaneEq - planeNormalWS.dot(posA);
  2281. for (let i = 0; i < pVtxIn.length; i++) {
  2282. let depth = planeNormalWS.dot(pVtxIn[i]) + planeEqWS; // ???
  2283. if (depth <= minDist) {
  2284. console.log("clamped: depth=" + depth + " to minDist=" + minDist);
  2285. depth = minDist;
  2286. }
  2287. if (depth <= maxDist) {
  2288. const point = pVtxIn[i];
  2289. if (depth <= 1e-6) {
  2290. const p = {
  2291. point,
  2292. normal: planeNormalWS,
  2293. depth
  2294. };
  2295. result.push(p);
  2296. }
  2297. }
  2298. }
  2299. }
  2300. /**
  2301. * Clip a face in a hull against the back of a plane.
  2302. * @param planeConstant The constant in the mathematical plane equation
  2303. */
  2304. clipFaceAgainstPlane(inVertices, outVertices, planeNormal, planeConstant) {
  2305. let n_dot_first;
  2306. let n_dot_last;
  2307. const numVerts = inVertices.length;
  2308. if (numVerts < 2) {
  2309. return outVertices;
  2310. }
  2311. let firstVertex = inVertices[inVertices.length - 1];
  2312. let lastVertex = inVertices[0];
  2313. n_dot_first = planeNormal.dot(firstVertex) + planeConstant;
  2314. for (let vi = 0; vi < numVerts; vi++) {
  2315. lastVertex = inVertices[vi];
  2316. n_dot_last = planeNormal.dot(lastVertex) + planeConstant;
  2317. if (n_dot_first < 0) {
  2318. if (n_dot_last < 0) {
  2319. // Start < 0, end < 0, so output lastVertex
  2320. const newv = new Vec3();
  2321. newv.copy(lastVertex);
  2322. outVertices.push(newv);
  2323. } else {
  2324. // Start < 0, end >= 0, so output intersection
  2325. const newv = new Vec3();
  2326. firstVertex.lerp(lastVertex, n_dot_first / (n_dot_first - n_dot_last), newv);
  2327. outVertices.push(newv);
  2328. }
  2329. } else {
  2330. if (n_dot_last < 0) {
  2331. // Start >= 0, end < 0 so output intersection and end
  2332. const newv = new Vec3();
  2333. firstVertex.lerp(lastVertex, n_dot_first / (n_dot_first - n_dot_last), newv);
  2334. outVertices.push(newv);
  2335. outVertices.push(lastVertex);
  2336. }
  2337. }
  2338. firstVertex = lastVertex;
  2339. n_dot_first = n_dot_last;
  2340. }
  2341. return outVertices;
  2342. }
  2343. /**
  2344. * Updates `.worldVertices` and sets `.worldVerticesNeedsUpdate` to false.
  2345. */
  2346. computeWorldVertices(position, quat) {
  2347. while (this.worldVertices.length < this.vertices.length) {
  2348. this.worldVertices.push(new Vec3());
  2349. }
  2350. const verts = this.vertices;
  2351. const worldVerts = this.worldVertices;
  2352. for (let i = 0; i !== this.vertices.length; i++) {
  2353. quat.vmult(verts[i], worldVerts[i]);
  2354. position.vadd(worldVerts[i], worldVerts[i]);
  2355. }
  2356. this.worldVerticesNeedsUpdate = false;
  2357. }
  2358. computeLocalAABB(aabbmin, aabbmax) {
  2359. const vertices = this.vertices;
  2360. aabbmin.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
  2361. aabbmax.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
  2362. for (let i = 0; i < this.vertices.length; i++) {
  2363. const v = vertices[i];
  2364. if (v.x < aabbmin.x) {
  2365. aabbmin.x = v.x;
  2366. } else if (v.x > aabbmax.x) {
  2367. aabbmax.x = v.x;
  2368. }
  2369. if (v.y < aabbmin.y) {
  2370. aabbmin.y = v.y;
  2371. } else if (v.y > aabbmax.y) {
  2372. aabbmax.y = v.y;
  2373. }
  2374. if (v.z < aabbmin.z) {
  2375. aabbmin.z = v.z;
  2376. } else if (v.z > aabbmax.z) {
  2377. aabbmax.z = v.z;
  2378. }
  2379. }
  2380. }
  2381. /**
  2382. * Updates `worldVertices` and sets `worldVerticesNeedsUpdate` to false.
  2383. */
  2384. computeWorldFaceNormals(quat) {
  2385. const N = this.faceNormals.length;
  2386. while (this.worldFaceNormals.length < N) {
  2387. this.worldFaceNormals.push(new Vec3());
  2388. }
  2389. const normals = this.faceNormals;
  2390. const worldNormals = this.worldFaceNormals;
  2391. for (let i = 0; i !== N; i++) {
  2392. quat.vmult(normals[i], worldNormals[i]);
  2393. }
  2394. this.worldFaceNormalsNeedsUpdate = false;
  2395. }
  2396. /**
  2397. * updateBoundingSphereRadius
  2398. */
  2399. updateBoundingSphereRadius() {
  2400. // Assume points are distributed with local (0,0,0) as center
  2401. let max2 = 0;
  2402. const verts = this.vertices;
  2403. for (let i = 0; i !== verts.length; i++) {
  2404. const norm2 = verts[i].lengthSquared();
  2405. if (norm2 > max2) {
  2406. max2 = norm2;
  2407. }
  2408. }
  2409. this.boundingSphereRadius = Math.sqrt(max2);
  2410. }
  2411. /**
  2412. * calculateWorldAABB
  2413. */
  2414. calculateWorldAABB(pos, quat, min, max) {
  2415. const verts = this.vertices;
  2416. let minx;
  2417. let miny;
  2418. let minz;
  2419. let maxx;
  2420. let maxy;
  2421. let maxz;
  2422. let tempWorldVertex = new Vec3();
  2423. for (let i = 0; i < verts.length; i++) {
  2424. tempWorldVertex.copy(verts[i]);
  2425. quat.vmult(tempWorldVertex, tempWorldVertex);
  2426. pos.vadd(tempWorldVertex, tempWorldVertex);
  2427. const v = tempWorldVertex;
  2428. if (minx === undefined || v.x < minx) {
  2429. minx = v.x;
  2430. }
  2431. if (maxx === undefined || v.x > maxx) {
  2432. maxx = v.x;
  2433. }
  2434. if (miny === undefined || v.y < miny) {
  2435. miny = v.y;
  2436. }
  2437. if (maxy === undefined || v.y > maxy) {
  2438. maxy = v.y;
  2439. }
  2440. if (minz === undefined || v.z < minz) {
  2441. minz = v.z;
  2442. }
  2443. if (maxz === undefined || v.z > maxz) {
  2444. maxz = v.z;
  2445. }
  2446. }
  2447. min.set(minx, miny, minz);
  2448. max.set(maxx, maxy, maxz);
  2449. }
  2450. /**
  2451. * Get approximate convex volume
  2452. */
  2453. volume() {
  2454. return 4.0 * Math.PI * this.boundingSphereRadius / 3.0;
  2455. }
  2456. /**
  2457. * Get an average of all the vertices positions
  2458. */
  2459. getAveragePointLocal(target = new Vec3()) {
  2460. const verts = this.vertices;
  2461. for (let i = 0; i < verts.length; i++) {
  2462. target.vadd(verts[i], target);
  2463. }
  2464. target.scale(1 / verts.length, target);
  2465. return target;
  2466. }
  2467. /**
  2468. * Transform all local points. Will change the .vertices
  2469. */
  2470. transformAllPoints(offset, quat) {
  2471. const n = this.vertices.length;
  2472. const verts = this.vertices; // Apply rotation
  2473. if (quat) {
  2474. // Rotate vertices
  2475. for (let i = 0; i < n; i++) {
  2476. const v = verts[i];
  2477. quat.vmult(v, v);
  2478. } // Rotate face normals
  2479. for (let i = 0; i < this.faceNormals.length; i++) {
  2480. const v = this.faceNormals[i];
  2481. quat.vmult(v, v);
  2482. }
  2483. /*
  2484. // Rotate edges
  2485. for(let i=0; i<this.uniqueEdges.length; i++){
  2486. const v = this.uniqueEdges[i];
  2487. quat.vmult(v,v);
  2488. }*/
  2489. } // Apply offset
  2490. if (offset) {
  2491. for (let i = 0; i < n; i++) {
  2492. const v = verts[i];
  2493. v.vadd(offset, v);
  2494. }
  2495. }
  2496. }
  2497. /**
  2498. * Checks whether p is inside the polyhedra. Must be in local coords.
  2499. * The point lies outside of the convex hull of the other points if and only if the direction
  2500. * of all the vectors from it to those other points are on less than one half of a sphere around it.
  2501. * @param p A point given in local coordinates
  2502. */
  2503. pointIsInside(p) {
  2504. const verts = this.vertices;
  2505. const faces = this.faces;
  2506. const normals = this.faceNormals;
  2507. const pointInside = new Vec3();
  2508. this.getAveragePointLocal(pointInside);
  2509. for (let i = 0; i < this.faces.length; i++) {
  2510. let n = normals[i];
  2511. const v = verts[faces[i][0]]; // We only need one point in the face
  2512. // This dot product determines which side of the edge the point is
  2513. const vToP = new Vec3();
  2514. p.vsub(v, vToP);
  2515. const r1 = n.dot(vToP);
  2516. const vToPointInside = new Vec3();
  2517. pointInside.vsub(v, vToPointInside);
  2518. const r2 = n.dot(vToPointInside);
  2519. if (r1 < 0 && r2 > 0 || r1 > 0 && r2 < 0) {
  2520. return false; // Encountered some other sign. Exit.
  2521. }
  2522. } // If we got here, all dot products were of the same sign.
  2523. return -1;
  2524. }
  2525. /**
  2526. * Get max and min dot product of a convex hull at position (pos,quat) projected onto an axis.
  2527. * Results are saved in the array maxmin.
  2528. * @param result result[0] and result[1] will be set to maximum and minimum, respectively.
  2529. */
  2530. static project(shape, axis, pos, quat, result) {
  2531. const n = shape.vertices.length;
  2532. const localAxis = project_localAxis;
  2533. let max = 0;
  2534. let min = 0;
  2535. const localOrigin = project_localOrigin;
  2536. const vs = shape.vertices;
  2537. localOrigin.setZero(); // Transform the axis to local
  2538. Transform.vectorToLocalFrame(pos, quat, axis, localAxis);
  2539. Transform.pointToLocalFrame(pos, quat, localOrigin, localOrigin);
  2540. const add = localOrigin.dot(localAxis);
  2541. min = max = vs[0].dot(localAxis);
  2542. for (let i = 1; i < n; i++) {
  2543. const val = vs[i].dot(localAxis);
  2544. if (val > max) {
  2545. max = val;
  2546. }
  2547. if (val < min) {
  2548. min = val;
  2549. }
  2550. }
  2551. min -= add;
  2552. max -= add;
  2553. if (min > max) {
  2554. // Inconsistent - swap
  2555. const temp = min;
  2556. min = max;
  2557. max = temp;
  2558. } // Output
  2559. result[0] = max;
  2560. result[1] = min;
  2561. }
  2562. }
  2563. const maxminA = [];
  2564. const maxminB = [];
  2565. const project_localAxis = new Vec3();
  2566. const project_localOrigin = new Vec3();
  2567. /**
  2568. * A 3d box shape.
  2569. * @example
  2570. * const size = 1
  2571. * const halfExtents = new CANNON.Vec3(size, size, size)
  2572. * const boxShape = new CANNON.Box(halfExtents)
  2573. * const boxBody = new CANNON.Body({ mass: 1, shape: boxShape })
  2574. * world.addBody(boxBody)
  2575. */
  2576. class Box extends Shape {
  2577. /**
  2578. * The half extents of the box.
  2579. */
  2580. /**
  2581. * Used by the contact generator to make contacts with other convex polyhedra for example.
  2582. */
  2583. constructor(halfExtents) {
  2584. super({
  2585. type: Shape.types.BOX
  2586. });
  2587. this.halfExtents = void 0;
  2588. this.convexPolyhedronRepresentation = void 0;
  2589. this.halfExtents = halfExtents;
  2590. this.convexPolyhedronRepresentation = null;
  2591. this.updateConvexPolyhedronRepresentation();
  2592. this.updateBoundingSphereRadius();
  2593. }
  2594. /**
  2595. * Updates the local convex polyhedron representation used for some collisions.
  2596. */
  2597. updateConvexPolyhedronRepresentation() {
  2598. const sx = this.halfExtents.x;
  2599. const sy = this.halfExtents.y;
  2600. const sz = this.halfExtents.z;
  2601. const V = Vec3;
  2602. const vertices = [new V(-sx, -sy, -sz), new V(sx, -sy, -sz), new V(sx, sy, -sz), new V(-sx, sy, -sz), new V(-sx, -sy, sz), new V(sx, -sy, sz), new V(sx, sy, sz), new V(-sx, sy, sz)];
  2603. const faces = [[3, 2, 1, 0], // -z
  2604. [4, 5, 6, 7], // +z
  2605. [5, 4, 0, 1], // -y
  2606. [2, 3, 7, 6], // +y
  2607. [0, 4, 7, 3], // -x
  2608. [1, 2, 6, 5] // +x
  2609. ];
  2610. const axes = [new V(0, 0, 1), new V(0, 1, 0), new V(1, 0, 0)];
  2611. const h = new ConvexPolyhedron({
  2612. vertices,
  2613. faces,
  2614. axes
  2615. });
  2616. this.convexPolyhedronRepresentation = h;
  2617. h.material = this.material;
  2618. }
  2619. /**
  2620. * Calculate the inertia of the box.
  2621. */
  2622. calculateLocalInertia(mass, target = new Vec3()) {
  2623. Box.calculateInertia(this.halfExtents, mass, target);
  2624. return target;
  2625. }
  2626. static calculateInertia(halfExtents, mass, target) {
  2627. const e = halfExtents;
  2628. target.x = 1.0 / 12.0 * mass * (2 * e.y * 2 * e.y + 2 * e.z * 2 * e.z);
  2629. target.y = 1.0 / 12.0 * mass * (2 * e.x * 2 * e.x + 2 * e.z * 2 * e.z);
  2630. target.z = 1.0 / 12.0 * mass * (2 * e.y * 2 * e.y + 2 * e.x * 2 * e.x);
  2631. }
  2632. /**
  2633. * Get the box 6 side normals
  2634. * @param sixTargetVectors An array of 6 vectors, to store the resulting side normals in.
  2635. * @param quat Orientation to apply to the normal vectors. If not provided, the vectors will be in respect to the local frame.
  2636. */
  2637. getSideNormals(sixTargetVectors, quat) {
  2638. const sides = sixTargetVectors;
  2639. const ex = this.halfExtents;
  2640. sides[0].set(ex.x, 0, 0);
  2641. sides[1].set(0, ex.y, 0);
  2642. sides[2].set(0, 0, ex.z);
  2643. sides[3].set(-ex.x, 0, 0);
  2644. sides[4].set(0, -ex.y, 0);
  2645. sides[5].set(0, 0, -ex.z);
  2646. if (quat !== undefined) {
  2647. for (let i = 0; i !== sides.length; i++) {
  2648. quat.vmult(sides[i], sides[i]);
  2649. }
  2650. }
  2651. return sides;
  2652. }
  2653. /**
  2654. * Returns the volume of the box.
  2655. */
  2656. volume() {
  2657. return 8.0 * this.halfExtents.x * this.halfExtents.y * this.halfExtents.z;
  2658. }
  2659. /**
  2660. * updateBoundingSphereRadius
  2661. */
  2662. updateBoundingSphereRadius() {
  2663. this.boundingSphereRadius = this.halfExtents.length();
  2664. }
  2665. /**
  2666. * forEachWorldCorner
  2667. */
  2668. forEachWorldCorner(pos, quat, callback) {
  2669. const e = this.halfExtents;
  2670. const corners = [[e.x, e.y, e.z], [-e.x, e.y, e.z], [-e.x, -e.y, e.z], [-e.x, -e.y, -e.z], [e.x, -e.y, -e.z], [e.x, e.y, -e.z], [-e.x, e.y, -e.z], [e.x, -e.y, e.z]];
  2671. for (let i = 0; i < corners.length; i++) {
  2672. worldCornerTempPos.set(corners[i][0], corners[i][1], corners[i][2]);
  2673. quat.vmult(worldCornerTempPos, worldCornerTempPos);
  2674. pos.vadd(worldCornerTempPos, worldCornerTempPos);
  2675. callback(worldCornerTempPos.x, worldCornerTempPos.y, worldCornerTempPos.z);
  2676. }
  2677. }
  2678. /**
  2679. * calculateWorldAABB
  2680. */
  2681. calculateWorldAABB(pos, quat, min, max) {
  2682. const e = this.halfExtents;
  2683. worldCornersTemp[0].set(e.x, e.y, e.z);
  2684. worldCornersTemp[1].set(-e.x, e.y, e.z);
  2685. worldCornersTemp[2].set(-e.x, -e.y, e.z);
  2686. worldCornersTemp[3].set(-e.x, -e.y, -e.z);
  2687. worldCornersTemp[4].set(e.x, -e.y, -e.z);
  2688. worldCornersTemp[5].set(e.x, e.y, -e.z);
  2689. worldCornersTemp[6].set(-e.x, e.y, -e.z);
  2690. worldCornersTemp[7].set(e.x, -e.y, e.z);
  2691. const wc = worldCornersTemp[0];
  2692. quat.vmult(wc, wc);
  2693. pos.vadd(wc, wc);
  2694. max.copy(wc);
  2695. min.copy(wc);
  2696. for (let i = 1; i < 8; i++) {
  2697. const wc = worldCornersTemp[i];
  2698. quat.vmult(wc, wc);
  2699. pos.vadd(wc, wc);
  2700. const x = wc.x;
  2701. const y = wc.y;
  2702. const z = wc.z;
  2703. if (x > max.x) {
  2704. max.x = x;
  2705. }
  2706. if (y > max.y) {
  2707. max.y = y;
  2708. }
  2709. if (z > max.z) {
  2710. max.z = z;
  2711. }
  2712. if (x < min.x) {
  2713. min.x = x;
  2714. }
  2715. if (y < min.y) {
  2716. min.y = y;
  2717. }
  2718. if (z < min.z) {
  2719. min.z = z;
  2720. }
  2721. } // Get each axis max
  2722. // min.set(Infinity,Infinity,Infinity);
  2723. // max.set(-Infinity,-Infinity,-Infinity);
  2724. // this.forEachWorldCorner(pos,quat,function(x,y,z){
  2725. // if(x > max.x){
  2726. // max.x = x;
  2727. // }
  2728. // if(y > max.y){
  2729. // max.y = y;
  2730. // }
  2731. // if(z > max.z){
  2732. // max.z = z;
  2733. // }
  2734. // if(x < min.x){
  2735. // min.x = x;
  2736. // }
  2737. // if(y < min.y){
  2738. // min.y = y;
  2739. // }
  2740. // if(z < min.z){
  2741. // min.z = z;
  2742. // }
  2743. // });
  2744. }
  2745. }
  2746. const worldCornerTempPos = new Vec3();
  2747. const worldCornersTemp = [new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3()];
  2748. /**
  2749. * BODY_TYPES
  2750. */
  2751. const BODY_TYPES = {
  2752. /** DYNAMIC */
  2753. DYNAMIC: 1,
  2754. /** STATIC */
  2755. STATIC: 2,
  2756. /** KINEMATIC */
  2757. KINEMATIC: 4
  2758. };
  2759. /**
  2760. * BodyType
  2761. */
  2762. /**
  2763. * BODY_SLEEP_STATES
  2764. */
  2765. const BODY_SLEEP_STATES = {
  2766. /** AWAKE */
  2767. AWAKE: 0,
  2768. /** SLEEPY */
  2769. SLEEPY: 1,
  2770. /** SLEEPING */
  2771. SLEEPING: 2
  2772. };
  2773. /**
  2774. * BodySleepState
  2775. */
  2776. /**
  2777. * Base class for all body types.
  2778. * @example
  2779. * const shape = new CANNON.Sphere(1)
  2780. * const body = new CANNON.Body({
  2781. * mass: 1,
  2782. * shape,
  2783. * })
  2784. * world.addBody(body)
  2785. */
  2786. class Body extends EventTarget {
  2787. /**
  2788. * Dispatched after two bodies collide. This event is dispatched on each
  2789. * of the two bodies involved in the collision.
  2790. * @event collide
  2791. * @param body The body that was involved in the collision.
  2792. * @param contact The details of the collision.
  2793. */
  2794. /**
  2795. * A dynamic body is fully simulated. Can be moved manually by the user, but normally they move according to forces. A dynamic body can collide with all body types. A dynamic body always has finite, non-zero mass.
  2796. */
  2797. /**
  2798. * A static body does not move during simulation and behaves as if it has infinite mass. Static bodies can be moved manually by setting the position of the body. The velocity of a static body is always zero. Static bodies do not collide with other static or kinematic bodies.
  2799. */
  2800. /**
  2801. * A kinematic body moves under simulation according to its velocity. They do not respond to forces. They can be moved manually, but normally a kinematic body is moved by setting its velocity. A kinematic body behaves as if it has infinite mass. Kinematic bodies do not collide with other static or kinematic bodies.
  2802. */
  2803. /**
  2804. * AWAKE
  2805. */
  2806. /**
  2807. * SLEEPY
  2808. */
  2809. /**
  2810. * SLEEPING
  2811. */
  2812. /**
  2813. * Dispatched after a sleeping body has woken up.
  2814. * @event wakeup
  2815. */
  2816. /**
  2817. * Dispatched after a body has gone in to the sleepy state.
  2818. * @event sleepy
  2819. */
  2820. /**
  2821. * Dispatched after a body has fallen asleep.
  2822. * @event sleep
  2823. */
  2824. /**
  2825. * Identifier of the body.
  2826. */
  2827. /**
  2828. * Position of body in World.bodies. Updated by World and used in ArrayCollisionMatrix.
  2829. */
  2830. /**
  2831. * Reference to the world the body is living in.
  2832. */
  2833. /**
  2834. * Callback function that is used BEFORE stepping the system. Use it to apply forces, for example. Inside the function, "this" will refer to this Body object. Deprecated - use World events instead.
  2835. * @deprecated Use World events instead
  2836. */
  2837. /**
  2838. * Callback function that is used AFTER stepping the system. Inside the function, "this" will refer to this Body object. Deprecated - use World events instead.
  2839. * @deprecated Use World events instead
  2840. */
  2841. /**
  2842. * The collision group the body belongs to.
  2843. * @default 1
  2844. */
  2845. /**
  2846. * The collision group the body can collide with.
  2847. * @default -1
  2848. */
  2849. /**
  2850. * Whether to produce contact forces when in contact with other bodies. Note that contacts will be generated, but they will be disabled - i.e. "collide" events will be raised, but forces will not be altered.
  2851. */
  2852. /**
  2853. * World space position of the body.
  2854. */
  2855. /**
  2856. * Interpolated position of the body.
  2857. */
  2858. /**
  2859. * Initial position of the body.
  2860. */
  2861. /**
  2862. * World space velocity of the body.
  2863. */
  2864. /**
  2865. * Initial velocity of the body.
  2866. */
  2867. /**
  2868. * Linear force on the body in world space.
  2869. */
  2870. /**
  2871. * The mass of the body.
  2872. * @default 0
  2873. */
  2874. /**
  2875. * The physics material of the body. It defines the body interaction with other bodies.
  2876. */
  2877. /**
  2878. * How much to damp the body velocity each step. It can go from 0 to 1.
  2879. * @default 0.01
  2880. */
  2881. /**
  2882. * One of: `Body.DYNAMIC`, `Body.STATIC` and `Body.KINEMATIC`.
  2883. */
  2884. /**
  2885. * If true, the body will automatically fall to sleep.
  2886. * @default true
  2887. */
  2888. /**
  2889. * Current sleep state.
  2890. */
  2891. /**
  2892. * If the speed (the norm of the velocity) is smaller than this value, the body is considered sleepy.
  2893. * @default 0.1
  2894. */
  2895. /**
  2896. * If the body has been sleepy for this sleepTimeLimit seconds, it is considered sleeping.
  2897. * @default 1
  2898. */
  2899. /**
  2900. * World space rotational force on the body, around center of mass.
  2901. */
  2902. /**
  2903. * World space orientation of the body.
  2904. */
  2905. /**
  2906. * Initial quaternion of the body.
  2907. */
  2908. /**
  2909. * Interpolated orientation of the body.
  2910. */
  2911. /**
  2912. * Angular velocity of the body, in world space. Think of the angular velocity as a vector, which the body rotates around. The length of this vector determines how fast (in radians per second) the body rotates.
  2913. */
  2914. /**
  2915. * Initial angular velocity of the body.
  2916. */
  2917. /**
  2918. * List of Shapes that have been added to the body.
  2919. */
  2920. /**
  2921. * Position of each Shape in the body, given in local Body space.
  2922. */
  2923. /**
  2924. * Orientation of each Shape, given in local Body space.
  2925. */
  2926. /**
  2927. * The inertia of the body.
  2928. */
  2929. /**
  2930. * Set to true if you don't want the body to rotate. Make sure to run .updateMassProperties() if you change this after the body creation.
  2931. * @default false
  2932. */
  2933. /**
  2934. * How much to damp the body angular velocity each step. It can go from 0 to 1.
  2935. * @default 0.01
  2936. */
  2937. /**
  2938. * Use this property to limit the motion along any world axis. (1,1,1) will allow motion along all axes while (0,0,0) allows none.
  2939. */
  2940. /**
  2941. * Use this property to limit the rotational motion along any world axis. (1,1,1) will allow rotation along all axes while (0,0,0) allows none.
  2942. */
  2943. /**
  2944. * World space bounding box of the body and its shapes.
  2945. */
  2946. /**
  2947. * Indicates if the AABB needs to be updated before use.
  2948. */
  2949. /**
  2950. * Total bounding radius of the Body including its shapes, relative to body.position.
  2951. */
  2952. /**
  2953. * When true the body behaves like a trigger. It does not collide
  2954. * with other bodies but collision events are still triggered.
  2955. * @default false
  2956. */
  2957. constructor(options = {}) {
  2958. super();
  2959. this.id = void 0;
  2960. this.index = void 0;
  2961. this.world = void 0;
  2962. this.preStep = void 0;
  2963. this.postStep = void 0;
  2964. this.vlambda = void 0;
  2965. this.collisionFilterGroup = void 0;
  2966. this.collisionFilterMask = void 0;
  2967. this.collisionResponse = void 0;
  2968. this.position = void 0;
  2969. this.previousPosition = void 0;
  2970. this.interpolatedPosition = void 0;
  2971. this.initPosition = void 0;
  2972. this.velocity = void 0;
  2973. this.initVelocity = void 0;
  2974. this.force = void 0;
  2975. this.mass = void 0;
  2976. this.invMass = void 0;
  2977. this.material = void 0;
  2978. this.linearDamping = void 0;
  2979. this.type = void 0;
  2980. this.allowSleep = void 0;
  2981. this.sleepState = void 0;
  2982. this.sleepSpeedLimit = void 0;
  2983. this.sleepTimeLimit = void 0;
  2984. this.timeLastSleepy = void 0;
  2985. this.wakeUpAfterNarrowphase = void 0;
  2986. this.torque = void 0;
  2987. this.quaternion = void 0;
  2988. this.initQuaternion = void 0;
  2989. this.previousQuaternion = void 0;
  2990. this.interpolatedQuaternion = void 0;
  2991. this.angularVelocity = void 0;
  2992. this.initAngularVelocity = void 0;
  2993. this.shapes = void 0;
  2994. this.shapeOffsets = void 0;
  2995. this.shapeOrientations = void 0;
  2996. this.inertia = void 0;
  2997. this.invInertia = void 0;
  2998. this.invInertiaWorld = void 0;
  2999. this.invMassSolve = void 0;
  3000. this.invInertiaSolve = void 0;
  3001. this.invInertiaWorldSolve = void 0;
  3002. this.fixedRotation = void 0;
  3003. this.angularDamping = void 0;
  3004. this.linearFactor = void 0;
  3005. this.angularFactor = void 0;
  3006. this.aabb = void 0;
  3007. this.aabbNeedsUpdate = void 0;
  3008. this.boundingRadius = void 0;
  3009. this.wlambda = void 0;
  3010. this.isTrigger = void 0;
  3011. this.id = Body.idCounter++;
  3012. this.index = -1;
  3013. this.world = null;
  3014. this.preStep = null;
  3015. this.postStep = null;
  3016. this.vlambda = new Vec3();
  3017. this.collisionFilterGroup = typeof options.collisionFilterGroup === 'number' ? options.collisionFilterGroup : 1;
  3018. this.collisionFilterMask = typeof options.collisionFilterMask === 'number' ? options.collisionFilterMask : -1;
  3019. this.collisionResponse = typeof options.collisionResponse === 'boolean' ? options.collisionResponse : true;
  3020. this.position = new Vec3();
  3021. this.previousPosition = new Vec3();
  3022. this.interpolatedPosition = new Vec3();
  3023. this.initPosition = new Vec3();
  3024. if (options.position) {
  3025. this.position.copy(options.position);
  3026. this.previousPosition.copy(options.position);
  3027. this.interpolatedPosition.copy(options.position);
  3028. this.initPosition.copy(options.position);
  3029. }
  3030. this.velocity = new Vec3();
  3031. if (options.velocity) {
  3032. this.velocity.copy(options.velocity);
  3033. }
  3034. this.initVelocity = new Vec3();
  3035. this.force = new Vec3();
  3036. const mass = typeof options.mass === 'number' ? options.mass : 0;
  3037. this.mass = mass;
  3038. this.invMass = mass > 0 ? 1.0 / mass : 0;
  3039. this.material = options.material || null;
  3040. this.linearDamping = typeof options.linearDamping === 'number' ? options.linearDamping : 0.01;
  3041. this.type = mass <= 0.0 ? Body.STATIC : Body.DYNAMIC;
  3042. if (typeof options.type === typeof Body.STATIC) {
  3043. this.type = options.type;
  3044. }
  3045. this.allowSleep = typeof options.allowSleep !== 'undefined' ? options.allowSleep : true;
  3046. this.sleepState = Body.AWAKE;
  3047. this.sleepSpeedLimit = typeof options.sleepSpeedLimit !== 'undefined' ? options.sleepSpeedLimit : 0.1;
  3048. this.sleepTimeLimit = typeof options.sleepTimeLimit !== 'undefined' ? options.sleepTimeLimit : 1;
  3049. this.timeLastSleepy = 0;
  3050. this.wakeUpAfterNarrowphase = false;
  3051. this.torque = new Vec3();
  3052. this.quaternion = new Quaternion();
  3053. this.initQuaternion = new Quaternion();
  3054. this.previousQuaternion = new Quaternion();
  3055. this.interpolatedQuaternion = new Quaternion();
  3056. if (options.quaternion) {
  3057. this.quaternion.copy(options.quaternion);
  3058. this.initQuaternion.copy(options.quaternion);
  3059. this.previousQuaternion.copy(options.quaternion);
  3060. this.interpolatedQuaternion.copy(options.quaternion);
  3061. }
  3062. this.angularVelocity = new Vec3();
  3063. if (options.angularVelocity) {
  3064. this.angularVelocity.copy(options.angularVelocity);
  3065. }
  3066. this.initAngularVelocity = new Vec3();
  3067. this.shapes = [];
  3068. this.shapeOffsets = [];
  3069. this.shapeOrientations = [];
  3070. this.inertia = new Vec3();
  3071. this.invInertia = new Vec3();
  3072. this.invInertiaWorld = new Mat3();
  3073. this.invMassSolve = 0;
  3074. this.invInertiaSolve = new Vec3();
  3075. this.invInertiaWorldSolve = new Mat3();
  3076. this.fixedRotation = typeof options.fixedRotation !== 'undefined' ? options.fixedRotation : false;
  3077. this.angularDamping = typeof options.angularDamping !== 'undefined' ? options.angularDamping : 0.01;
  3078. this.linearFactor = new Vec3(1, 1, 1);
  3079. if (options.linearFactor) {
  3080. this.linearFactor.copy(options.linearFactor);
  3081. }
  3082. this.angularFactor = new Vec3(1, 1, 1);
  3083. if (options.angularFactor) {
  3084. this.angularFactor.copy(options.angularFactor);
  3085. }
  3086. this.aabb = new AABB();
  3087. this.aabbNeedsUpdate = true;
  3088. this.boundingRadius = 0;
  3089. this.wlambda = new Vec3();
  3090. this.isTrigger = Boolean(options.isTrigger);
  3091. if (options.shape) {
  3092. this.addShape(options.shape);
  3093. }
  3094. this.updateMassProperties();
  3095. }
  3096. /**
  3097. * Wake the body up.
  3098. */
  3099. wakeUp() {
  3100. const prevState = this.sleepState;
  3101. this.sleepState = Body.AWAKE;
  3102. this.wakeUpAfterNarrowphase = false;
  3103. if (prevState === Body.SLEEPING) {
  3104. this.dispatchEvent(Body.wakeupEvent);
  3105. }
  3106. }
  3107. /**
  3108. * Force body sleep
  3109. */
  3110. sleep() {
  3111. this.sleepState = Body.SLEEPING;
  3112. this.velocity.set(0, 0, 0);
  3113. this.angularVelocity.set(0, 0, 0);
  3114. this.wakeUpAfterNarrowphase = false;
  3115. }
  3116. /**
  3117. * Called every timestep to update internal sleep timer and change sleep state if needed.
  3118. * @param time The world time in seconds
  3119. */
  3120. sleepTick(time) {
  3121. if (this.allowSleep) {
  3122. const sleepState = this.sleepState;
  3123. const speedSquared = this.velocity.lengthSquared() + this.angularVelocity.lengthSquared();
  3124. const speedLimitSquared = this.sleepSpeedLimit ** 2;
  3125. if (sleepState === Body.AWAKE && speedSquared < speedLimitSquared) {
  3126. this.sleepState = Body.SLEEPY; // Sleepy
  3127. this.timeLastSleepy = time;
  3128. this.dispatchEvent(Body.sleepyEvent);
  3129. } else if (sleepState === Body.SLEEPY && speedSquared > speedLimitSquared) {
  3130. this.wakeUp(); // Wake up
  3131. } else if (sleepState === Body.SLEEPY && time - this.timeLastSleepy > this.sleepTimeLimit) {
  3132. this.sleep(); // Sleeping
  3133. this.dispatchEvent(Body.sleepEvent);
  3134. }
  3135. }
  3136. }
  3137. /**
  3138. * If the body is sleeping, it should be immovable / have infinite mass during solve. We solve it by having a separate "solve mass".
  3139. */
  3140. updateSolveMassProperties() {
  3141. if (this.sleepState === Body.SLEEPING || this.type === Body.KINEMATIC) {
  3142. this.invMassSolve = 0;
  3143. this.invInertiaSolve.setZero();
  3144. this.invInertiaWorldSolve.setZero();
  3145. } else {
  3146. this.invMassSolve = this.invMass;
  3147. this.invInertiaSolve.copy(this.invInertia);
  3148. this.invInertiaWorldSolve.copy(this.invInertiaWorld);
  3149. }
  3150. }
  3151. /**
  3152. * Convert a world point to local body frame.
  3153. */
  3154. pointToLocalFrame(worldPoint, result = new Vec3()) {
  3155. worldPoint.vsub(this.position, result);
  3156. this.quaternion.conjugate().vmult(result, result);
  3157. return result;
  3158. }
  3159. /**
  3160. * Convert a world vector to local body frame.
  3161. */
  3162. vectorToLocalFrame(worldVector, result = new Vec3()) {
  3163. this.quaternion.conjugate().vmult(worldVector, result);
  3164. return result;
  3165. }
  3166. /**
  3167. * Convert a local body point to world frame.
  3168. */
  3169. pointToWorldFrame(localPoint, result = new Vec3()) {
  3170. this.quaternion.vmult(localPoint, result);
  3171. result.vadd(this.position, result);
  3172. return result;
  3173. }
  3174. /**
  3175. * Convert a local body point to world frame.
  3176. */
  3177. vectorToWorldFrame(localVector, result = new Vec3()) {
  3178. this.quaternion.vmult(localVector, result);
  3179. return result;
  3180. }
  3181. /**
  3182. * Add a shape to the body with a local offset and orientation.
  3183. * @return The body object, for chainability.
  3184. */
  3185. addShape(shape, _offset, _orientation) {
  3186. const offset = new Vec3();
  3187. const orientation = new Quaternion();
  3188. if (_offset) {
  3189. offset.copy(_offset);
  3190. }
  3191. if (_orientation) {
  3192. orientation.copy(_orientation);
  3193. }
  3194. this.shapes.push(shape);
  3195. this.shapeOffsets.push(offset);
  3196. this.shapeOrientations.push(orientation);
  3197. this.updateMassProperties();
  3198. this.updateBoundingRadius();
  3199. this.aabbNeedsUpdate = true;
  3200. shape.body = this;
  3201. return this;
  3202. }
  3203. /**
  3204. * Remove a shape from the body.
  3205. * @return The body object, for chainability.
  3206. */
  3207. removeShape(shape) {
  3208. const index = this.shapes.indexOf(shape);
  3209. if (index === -1) {
  3210. console.warn('Shape does not belong to the body');
  3211. return this;
  3212. }
  3213. this.shapes.splice(index, 1);
  3214. this.shapeOffsets.splice(index, 1);
  3215. this.shapeOrientations.splice(index, 1);
  3216. this.updateMassProperties();
  3217. this.updateBoundingRadius();
  3218. this.aabbNeedsUpdate = true;
  3219. shape.body = null;
  3220. return this;
  3221. }
  3222. /**
  3223. * Update the bounding radius of the body. Should be done if any of the shapes are changed.
  3224. */
  3225. updateBoundingRadius() {
  3226. const shapes = this.shapes;
  3227. const shapeOffsets = this.shapeOffsets;
  3228. const N = shapes.length;
  3229. let radius = 0;
  3230. for (let i = 0; i !== N; i++) {
  3231. const shape = shapes[i];
  3232. shape.updateBoundingSphereRadius();
  3233. const offset = shapeOffsets[i].length();
  3234. const r = shape.boundingSphereRadius;
  3235. if (offset + r > radius) {
  3236. radius = offset + r;
  3237. }
  3238. }
  3239. this.boundingRadius = radius;
  3240. }
  3241. /**
  3242. * Updates the .aabb
  3243. */
  3244. updateAABB() {
  3245. const shapes = this.shapes;
  3246. const shapeOffsets = this.shapeOffsets;
  3247. const shapeOrientations = this.shapeOrientations;
  3248. const N = shapes.length;
  3249. const offset = tmpVec;
  3250. const orientation = tmpQuat;
  3251. const bodyQuat = this.quaternion;
  3252. const aabb = this.aabb;
  3253. const shapeAABB = updateAABB_shapeAABB;
  3254. for (let i = 0; i !== N; i++) {
  3255. const shape = shapes[i]; // Get shape world position
  3256. bodyQuat.vmult(shapeOffsets[i], offset);
  3257. offset.vadd(this.position, offset); // Get shape world quaternion
  3258. bodyQuat.mult(shapeOrientations[i], orientation); // Get shape AABB
  3259. shape.calculateWorldAABB(offset, orientation, shapeAABB.lowerBound, shapeAABB.upperBound);
  3260. if (i === 0) {
  3261. aabb.copy(shapeAABB);
  3262. } else {
  3263. aabb.extend(shapeAABB);
  3264. }
  3265. }
  3266. this.aabbNeedsUpdate = false;
  3267. }
  3268. /**
  3269. * Update `.inertiaWorld` and `.invInertiaWorld`
  3270. */
  3271. updateInertiaWorld(force) {
  3272. const I = this.invInertia;
  3273. if (I.x === I.y && I.y === I.z && !force) ; else {
  3274. const m1 = uiw_m1;
  3275. const m2 = uiw_m2;
  3276. m1.setRotationFromQuaternion(this.quaternion);
  3277. m1.transpose(m2);
  3278. m1.scale(I, m1);
  3279. m1.mmult(m2, this.invInertiaWorld);
  3280. }
  3281. }
  3282. /**
  3283. * Apply force to a point of the body. This could for example be a point on the Body surface.
  3284. * Applying force this way will add to Body.force and Body.torque.
  3285. * @param force The amount of force to add.
  3286. * @param relativePoint A point relative to the center of mass to apply the force on.
  3287. */
  3288. applyForce(force, relativePoint = new Vec3()) {
  3289. // Needed?
  3290. if (this.type !== Body.DYNAMIC) {
  3291. return;
  3292. }
  3293. if (this.sleepState === Body.SLEEPING) {
  3294. this.wakeUp();
  3295. } // Compute produced rotational force
  3296. const rotForce = Body_applyForce_rotForce;
  3297. relativePoint.cross(force, rotForce); // Add linear force
  3298. this.force.vadd(force, this.force); // Add rotational force
  3299. this.torque.vadd(rotForce, this.torque);
  3300. }
  3301. /**
  3302. * Apply force to a local point in the body.
  3303. * @param force The force vector to apply, defined locally in the body frame.
  3304. * @param localPoint A local point in the body to apply the force on.
  3305. */
  3306. applyLocalForce(localForce, localPoint = new Vec3()) {
  3307. if (this.type !== Body.DYNAMIC) {
  3308. return;
  3309. }
  3310. const worldForce = Body_applyLocalForce_worldForce;
  3311. const relativePointWorld = Body_applyLocalForce_relativePointWorld; // Transform the force vector to world space
  3312. this.vectorToWorldFrame(localForce, worldForce);
  3313. this.vectorToWorldFrame(localPoint, relativePointWorld);
  3314. this.applyForce(worldForce, relativePointWorld);
  3315. }
  3316. /**
  3317. * Apply torque to the body.
  3318. * @param torque The amount of torque to add.
  3319. */
  3320. applyTorque(torque) {
  3321. if (this.type !== Body.DYNAMIC) {
  3322. return;
  3323. }
  3324. if (this.sleepState === Body.SLEEPING) {
  3325. this.wakeUp();
  3326. } // Add rotational force
  3327. this.torque.vadd(torque, this.torque);
  3328. }
  3329. /**
  3330. * Apply impulse to a point of the body. This could for example be a point on the Body surface.
  3331. * An impulse is a force added to a body during a short period of time (impulse = force * time).
  3332. * Impulses will be added to Body.velocity and Body.angularVelocity.
  3333. * @param impulse The amount of impulse to add.
  3334. * @param relativePoint A point relative to the center of mass to apply the force on.
  3335. */
  3336. applyImpulse(impulse, relativePoint = new Vec3()) {
  3337. if (this.type !== Body.DYNAMIC) {
  3338. return;
  3339. }
  3340. if (this.sleepState === Body.SLEEPING) {
  3341. this.wakeUp();
  3342. } // Compute point position relative to the body center
  3343. const r = relativePoint; // Compute produced central impulse velocity
  3344. const velo = Body_applyImpulse_velo;
  3345. velo.copy(impulse);
  3346. velo.scale(this.invMass, velo); // Add linear impulse
  3347. this.velocity.vadd(velo, this.velocity); // Compute produced rotational impulse velocity
  3348. const rotVelo = Body_applyImpulse_rotVelo;
  3349. r.cross(impulse, rotVelo);
  3350. /*
  3351. rotVelo.x *= this.invInertia.x;
  3352. rotVelo.y *= this.invInertia.y;
  3353. rotVelo.z *= this.invInertia.z;
  3354. */
  3355. this.invInertiaWorld.vmult(rotVelo, rotVelo); // Add rotational Impulse
  3356. this.angularVelocity.vadd(rotVelo, this.angularVelocity);
  3357. }
  3358. /**
  3359. * Apply locally-defined impulse to a local point in the body.
  3360. * @param force The force vector to apply, defined locally in the body frame.
  3361. * @param localPoint A local point in the body to apply the force on.
  3362. */
  3363. applyLocalImpulse(localImpulse, localPoint = new Vec3()) {
  3364. if (this.type !== Body.DYNAMIC) {
  3365. return;
  3366. }
  3367. const worldImpulse = Body_applyLocalImpulse_worldImpulse;
  3368. const relativePointWorld = Body_applyLocalImpulse_relativePoint; // Transform the force vector to world space
  3369. this.vectorToWorldFrame(localImpulse, worldImpulse);
  3370. this.vectorToWorldFrame(localPoint, relativePointWorld);
  3371. this.applyImpulse(worldImpulse, relativePointWorld);
  3372. }
  3373. /**
  3374. * Should be called whenever you change the body shape or mass.
  3375. */
  3376. updateMassProperties() {
  3377. const halfExtents = Body_updateMassProperties_halfExtents;
  3378. this.invMass = this.mass > 0 ? 1.0 / this.mass : 0;
  3379. const I = this.inertia;
  3380. const fixed = this.fixedRotation; // Approximate with AABB box
  3381. this.updateAABB();
  3382. halfExtents.set((this.aabb.upperBound.x - this.aabb.lowerBound.x) / 2, (this.aabb.upperBound.y - this.aabb.lowerBound.y) / 2, (this.aabb.upperBound.z - this.aabb.lowerBound.z) / 2);
  3383. Box.calculateInertia(halfExtents, this.mass, I);
  3384. this.invInertia.set(I.x > 0 && !fixed ? 1.0 / I.x : 0, I.y > 0 && !fixed ? 1.0 / I.y : 0, I.z > 0 && !fixed ? 1.0 / I.z : 0);
  3385. this.updateInertiaWorld(true);
  3386. }
  3387. /**
  3388. * Get world velocity of a point in the body.
  3389. * @param worldPoint
  3390. * @param result
  3391. * @return The result vector.
  3392. */
  3393. getVelocityAtWorldPoint(worldPoint, result) {
  3394. const r = new Vec3();
  3395. worldPoint.vsub(this.position, r);
  3396. this.angularVelocity.cross(r, result);
  3397. this.velocity.vadd(result, result);
  3398. return result;
  3399. }
  3400. /**
  3401. * Move the body forward in time.
  3402. * @param dt Time step
  3403. * @param quatNormalize Set to true to normalize the body quaternion
  3404. * @param quatNormalizeFast If the quaternion should be normalized using "fast" quaternion normalization
  3405. */
  3406. integrate(dt, quatNormalize, quatNormalizeFast) {
  3407. // Save previous position
  3408. this.previousPosition.copy(this.position);
  3409. this.previousQuaternion.copy(this.quaternion);
  3410. if (!(this.type === Body.DYNAMIC || this.type === Body.KINEMATIC) || this.sleepState === Body.SLEEPING) {
  3411. // Only for dynamic
  3412. return;
  3413. }
  3414. const velo = this.velocity;
  3415. const angularVelo = this.angularVelocity;
  3416. const pos = this.position;
  3417. const force = this.force;
  3418. const torque = this.torque;
  3419. const quat = this.quaternion;
  3420. const invMass = this.invMass;
  3421. const invInertia = this.invInertiaWorld;
  3422. const linearFactor = this.linearFactor;
  3423. const iMdt = invMass * dt;
  3424. velo.x += force.x * iMdt * linearFactor.x;
  3425. velo.y += force.y * iMdt * linearFactor.y;
  3426. velo.z += force.z * iMdt * linearFactor.z;
  3427. const e = invInertia.elements;
  3428. const angularFactor = this.angularFactor;
  3429. const tx = torque.x * angularFactor.x;
  3430. const ty = torque.y * angularFactor.y;
  3431. const tz = torque.z * angularFactor.z;
  3432. angularVelo.x += dt * (e[0] * tx + e[1] * ty + e[2] * tz);
  3433. angularVelo.y += dt * (e[3] * tx + e[4] * ty + e[5] * tz);
  3434. angularVelo.z += dt * (e[6] * tx + e[7] * ty + e[8] * tz); // Use new velocity - leap frog
  3435. pos.x += velo.x * dt;
  3436. pos.y += velo.y * dt;
  3437. pos.z += velo.z * dt;
  3438. quat.integrate(this.angularVelocity, dt, this.angularFactor, quat);
  3439. if (quatNormalize) {
  3440. if (quatNormalizeFast) {
  3441. quat.normalizeFast();
  3442. } else {
  3443. quat.normalize();
  3444. }
  3445. }
  3446. this.aabbNeedsUpdate = true; // Update world inertia
  3447. this.updateInertiaWorld();
  3448. }
  3449. }
  3450. Body.idCounter = 0;
  3451. Body.COLLIDE_EVENT_NAME = 'collide';
  3452. Body.DYNAMIC = BODY_TYPES.DYNAMIC;
  3453. Body.STATIC = BODY_TYPES.STATIC;
  3454. Body.KINEMATIC = BODY_TYPES.KINEMATIC;
  3455. Body.AWAKE = BODY_SLEEP_STATES.AWAKE;
  3456. Body.SLEEPY = BODY_SLEEP_STATES.SLEEPY;
  3457. Body.SLEEPING = BODY_SLEEP_STATES.SLEEPING;
  3458. Body.wakeupEvent = {
  3459. type: 'wakeup'
  3460. };
  3461. Body.sleepyEvent = {
  3462. type: 'sleepy'
  3463. };
  3464. Body.sleepEvent = {
  3465. type: 'sleep'
  3466. };
  3467. const tmpVec = new Vec3();
  3468. const tmpQuat = new Quaternion();
  3469. const updateAABB_shapeAABB = new AABB();
  3470. const uiw_m1 = new Mat3();
  3471. const uiw_m2 = new Mat3();
  3472. const Body_applyForce_rotForce = new Vec3();
  3473. const Body_applyLocalForce_worldForce = new Vec3();
  3474. const Body_applyLocalForce_relativePointWorld = new Vec3();
  3475. const Body_applyImpulse_velo = new Vec3();
  3476. const Body_applyImpulse_rotVelo = new Vec3();
  3477. const Body_applyLocalImpulse_worldImpulse = new Vec3();
  3478. const Body_applyLocalImpulse_relativePoint = new Vec3();
  3479. const Body_updateMassProperties_halfExtents = new Vec3();
  3480. /**
  3481. * Base class for broadphase implementations
  3482. * @author schteppe
  3483. */
  3484. class Broadphase {
  3485. /**
  3486. * The world to search for collisions in.
  3487. */
  3488. /**
  3489. * If set to true, the broadphase uses bounding boxes for intersection tests, else it uses bounding spheres.
  3490. */
  3491. /**
  3492. * Set to true if the objects in the world moved.
  3493. */
  3494. constructor() {
  3495. this.world = void 0;
  3496. this.useBoundingBoxes = void 0;
  3497. this.dirty = void 0;
  3498. this.world = null;
  3499. this.useBoundingBoxes = false;
  3500. this.dirty = true;
  3501. }
  3502. /**
  3503. * Get the collision pairs from the world
  3504. * @param world The world to search in
  3505. * @param p1 Empty array to be filled with body objects
  3506. * @param p2 Empty array to be filled with body objects
  3507. */
  3508. collisionPairs(world, p1, p2) {
  3509. throw new Error('collisionPairs not implemented for this BroadPhase class!');
  3510. }
  3511. /**
  3512. * Check if a body pair needs to be intersection tested at all.
  3513. */
  3514. needBroadphaseCollision(bodyA, bodyB) {
  3515. // Check collision filter masks
  3516. if ((bodyA.collisionFilterGroup & bodyB.collisionFilterMask) === 0 || (bodyB.collisionFilterGroup & bodyA.collisionFilterMask) === 0) {
  3517. return false;
  3518. } // Check types
  3519. if (((bodyA.type & Body.STATIC) !== 0 || bodyA.sleepState === Body.SLEEPING) && ((bodyB.type & Body.STATIC) !== 0 || bodyB.sleepState === Body.SLEEPING)) {
  3520. // Both bodies are static or sleeping. Skip.
  3521. return false;
  3522. }
  3523. return true;
  3524. }
  3525. /**
  3526. * Check if the bounding volumes of two bodies intersect.
  3527. */
  3528. intersectionTest(bodyA, bodyB, pairs1, pairs2) {
  3529. if (this.useBoundingBoxes) {
  3530. this.doBoundingBoxBroadphase(bodyA, bodyB, pairs1, pairs2);
  3531. } else {
  3532. this.doBoundingSphereBroadphase(bodyA, bodyB, pairs1, pairs2);
  3533. }
  3534. }
  3535. /**
  3536. * Check if the bounding spheres of two bodies are intersecting.
  3537. * @param pairs1 bodyA is appended to this array if intersection
  3538. * @param pairs2 bodyB is appended to this array if intersection
  3539. */
  3540. doBoundingSphereBroadphase(bodyA, bodyB, pairs1, pairs2) {
  3541. const r = Broadphase_collisionPairs_r;
  3542. bodyB.position.vsub(bodyA.position, r);
  3543. const boundingRadiusSum2 = (bodyA.boundingRadius + bodyB.boundingRadius) ** 2;
  3544. const norm2 = r.lengthSquared();
  3545. if (norm2 < boundingRadiusSum2) {
  3546. pairs1.push(bodyA);
  3547. pairs2.push(bodyB);
  3548. }
  3549. }
  3550. /**
  3551. * Check if the bounding boxes of two bodies are intersecting.
  3552. */
  3553. doBoundingBoxBroadphase(bodyA, bodyB, pairs1, pairs2) {
  3554. if (bodyA.aabbNeedsUpdate) {
  3555. bodyA.updateAABB();
  3556. }
  3557. if (bodyB.aabbNeedsUpdate) {
  3558. bodyB.updateAABB();
  3559. } // Check AABB / AABB
  3560. if (bodyA.aabb.overlaps(bodyB.aabb)) {
  3561. pairs1.push(bodyA);
  3562. pairs2.push(bodyB);
  3563. }
  3564. }
  3565. /**
  3566. * Removes duplicate pairs from the pair arrays.
  3567. */
  3568. makePairsUnique(pairs1, pairs2) {
  3569. const t = Broadphase_makePairsUnique_temp;
  3570. const p1 = Broadphase_makePairsUnique_p1;
  3571. const p2 = Broadphase_makePairsUnique_p2;
  3572. const N = pairs1.length;
  3573. for (let i = 0; i !== N; i++) {
  3574. p1[i] = pairs1[i];
  3575. p2[i] = pairs2[i];
  3576. }
  3577. pairs1.length = 0;
  3578. pairs2.length = 0;
  3579. for (let i = 0; i !== N; i++) {
  3580. const id1 = p1[i].id;
  3581. const id2 = p2[i].id;
  3582. const key = id1 < id2 ? id1 + "," + id2 : id2 + "," + id1;
  3583. t[key] = i;
  3584. t.keys.push(key);
  3585. }
  3586. for (let i = 0; i !== t.keys.length; i++) {
  3587. const key = t.keys.pop();
  3588. const pairIndex = t[key];
  3589. pairs1.push(p1[pairIndex]);
  3590. pairs2.push(p2[pairIndex]);
  3591. delete t[key];
  3592. }
  3593. }
  3594. /**
  3595. * To be implemented by subcasses
  3596. */
  3597. setWorld(world) {}
  3598. /**
  3599. * Check if the bounding spheres of two bodies overlap.
  3600. */
  3601. static boundingSphereCheck(bodyA, bodyB) {
  3602. const dist = new Vec3(); // bsc_dist;
  3603. bodyA.position.vsub(bodyB.position, dist);
  3604. const sa = bodyA.shapes[0];
  3605. const sb = bodyB.shapes[0];
  3606. return Math.pow(sa.boundingSphereRadius + sb.boundingSphereRadius, 2) > dist.lengthSquared();
  3607. }
  3608. /**
  3609. * Returns all the bodies within the AABB.
  3610. */
  3611. aabbQuery(world, aabb, result) {
  3612. console.warn('.aabbQuery is not implemented in this Broadphase subclass.');
  3613. return [];
  3614. }
  3615. } // Temp objects
  3616. const Broadphase_collisionPairs_r = new Vec3();
  3617. const Broadphase_makePairsUnique_temp = {
  3618. keys: []
  3619. };
  3620. const Broadphase_makePairsUnique_p1 = [];
  3621. const Broadphase_makePairsUnique_p2 = [];
  3622. /**
  3623. * Axis aligned uniform grid broadphase.
  3624. * @todo Needs support for more than just planes and spheres.
  3625. */
  3626. class GridBroadphase extends Broadphase {
  3627. /**
  3628. * Number of boxes along x
  3629. */
  3630. /**
  3631. * Number of boxes along y
  3632. */
  3633. /**
  3634. * Number of boxes along z
  3635. */
  3636. /**
  3637. * aabbMin
  3638. */
  3639. /**
  3640. * aabbMax
  3641. */
  3642. /**
  3643. * bins
  3644. */
  3645. /**
  3646. * binLengths
  3647. */
  3648. /**
  3649. * @param nx Number of boxes along x.
  3650. * @param ny Number of boxes along y.
  3651. * @param nz Number of boxes along z.
  3652. */
  3653. constructor(aabbMin = new Vec3(100, 100, 100), aabbMax = new Vec3(-100, -100, -100), nx = 10, ny = 10, nz = 10) {
  3654. super();
  3655. this.nx = void 0;
  3656. this.ny = void 0;
  3657. this.nz = void 0;
  3658. this.aabbMin = void 0;
  3659. this.aabbMax = void 0;
  3660. this.bins = void 0;
  3661. this.binLengths = void 0;
  3662. this.nx = nx;
  3663. this.ny = ny;
  3664. this.nz = nz;
  3665. this.aabbMin = aabbMin;
  3666. this.aabbMax = aabbMax;
  3667. const nbins = this.nx * this.ny * this.nz;
  3668. if (nbins <= 0) {
  3669. throw "GridBroadphase: Each dimension's n must be >0";
  3670. }
  3671. this.bins = [];
  3672. this.binLengths = []; // Rather than continually resizing arrays (thrashing the memory), just record length and allow them to grow
  3673. this.bins.length = nbins;
  3674. this.binLengths.length = nbins;
  3675. for (let i = 0; i < nbins; i++) {
  3676. this.bins[i] = [];
  3677. this.binLengths[i] = 0;
  3678. }
  3679. }
  3680. /**
  3681. * Get all the collision pairs in the physics world
  3682. */
  3683. collisionPairs(world, pairs1, pairs2) {
  3684. const N = world.numObjects();
  3685. const bodies = world.bodies;
  3686. const max = this.aabbMax;
  3687. const min = this.aabbMin;
  3688. const nx = this.nx;
  3689. const ny = this.ny;
  3690. const nz = this.nz;
  3691. const xstep = ny * nz;
  3692. const ystep = nz;
  3693. const zstep = 1;
  3694. const xmax = max.x;
  3695. const ymax = max.y;
  3696. const zmax = max.z;
  3697. const xmin = min.x;
  3698. const ymin = min.y;
  3699. const zmin = min.z;
  3700. const xmult = nx / (xmax - xmin);
  3701. const ymult = ny / (ymax - ymin);
  3702. const zmult = nz / (zmax - zmin);
  3703. const binsizeX = (xmax - xmin) / nx;
  3704. const binsizeY = (ymax - ymin) / ny;
  3705. const binsizeZ = (zmax - zmin) / nz;
  3706. const binRadius = Math.sqrt(binsizeX * binsizeX + binsizeY * binsizeY + binsizeZ * binsizeZ) * 0.5;
  3707. const types = Shape.types;
  3708. const SPHERE = types.SPHERE;
  3709. const PLANE = types.PLANE;
  3710. types.BOX;
  3711. types.COMPOUND;
  3712. types.CONVEXPOLYHEDRON;
  3713. const bins = this.bins;
  3714. const binLengths = this.binLengths;
  3715. const Nbins = this.bins.length; // Reset bins
  3716. for (let i = 0; i !== Nbins; i++) {
  3717. binLengths[i] = 0;
  3718. }
  3719. const ceil = Math.ceil;
  3720. function addBoxToBins(x0, y0, z0, x1, y1, z1, bi) {
  3721. let xoff0 = (x0 - xmin) * xmult | 0;
  3722. let yoff0 = (y0 - ymin) * ymult | 0;
  3723. let zoff0 = (z0 - zmin) * zmult | 0;
  3724. let xoff1 = ceil((x1 - xmin) * xmult);
  3725. let yoff1 = ceil((y1 - ymin) * ymult);
  3726. let zoff1 = ceil((z1 - zmin) * zmult);
  3727. if (xoff0 < 0) {
  3728. xoff0 = 0;
  3729. } else if (xoff0 >= nx) {
  3730. xoff0 = nx - 1;
  3731. }
  3732. if (yoff0 < 0) {
  3733. yoff0 = 0;
  3734. } else if (yoff0 >= ny) {
  3735. yoff0 = ny - 1;
  3736. }
  3737. if (zoff0 < 0) {
  3738. zoff0 = 0;
  3739. } else if (zoff0 >= nz) {
  3740. zoff0 = nz - 1;
  3741. }
  3742. if (xoff1 < 0) {
  3743. xoff1 = 0;
  3744. } else if (xoff1 >= nx) {
  3745. xoff1 = nx - 1;
  3746. }
  3747. if (yoff1 < 0) {
  3748. yoff1 = 0;
  3749. } else if (yoff1 >= ny) {
  3750. yoff1 = ny - 1;
  3751. }
  3752. if (zoff1 < 0) {
  3753. zoff1 = 0;
  3754. } else if (zoff1 >= nz) {
  3755. zoff1 = nz - 1;
  3756. }
  3757. xoff0 *= xstep;
  3758. yoff0 *= ystep;
  3759. zoff0 *= zstep;
  3760. xoff1 *= xstep;
  3761. yoff1 *= ystep;
  3762. zoff1 *= zstep;
  3763. for (let xoff = xoff0; xoff <= xoff1; xoff += xstep) {
  3764. for (let yoff = yoff0; yoff <= yoff1; yoff += ystep) {
  3765. for (let zoff = zoff0; zoff <= zoff1; zoff += zstep) {
  3766. const idx = xoff + yoff + zoff;
  3767. bins[idx][binLengths[idx]++] = bi;
  3768. }
  3769. }
  3770. }
  3771. } // Put all bodies into the bins
  3772. for (let i = 0; i !== N; i++) {
  3773. const bi = bodies[i];
  3774. const si = bi.shapes[0];
  3775. switch (si.type) {
  3776. case SPHERE:
  3777. {
  3778. const shape = si; // Put in bin
  3779. // check if overlap with other bins
  3780. const x = bi.position.x;
  3781. const y = bi.position.y;
  3782. const z = bi.position.z;
  3783. const r = shape.radius;
  3784. addBoxToBins(x - r, y - r, z - r, x + r, y + r, z + r, bi);
  3785. break;
  3786. }
  3787. case PLANE:
  3788. {
  3789. const shape = si;
  3790. if (shape.worldNormalNeedsUpdate) {
  3791. shape.computeWorldNormal(bi.quaternion);
  3792. }
  3793. const planeNormal = shape.worldNormal; //Relative position from origin of plane object to the first bin
  3794. //Incremented as we iterate through the bins
  3795. const xreset = xmin + binsizeX * 0.5 - bi.position.x;
  3796. const yreset = ymin + binsizeY * 0.5 - bi.position.y;
  3797. const zreset = zmin + binsizeZ * 0.5 - bi.position.z;
  3798. const d = GridBroadphase_collisionPairs_d;
  3799. d.set(xreset, yreset, zreset);
  3800. for (let xi = 0, xoff = 0; xi !== nx; xi++, xoff += xstep, d.y = yreset, d.x += binsizeX) {
  3801. for (let yi = 0, yoff = 0; yi !== ny; yi++, yoff += ystep, d.z = zreset, d.y += binsizeY) {
  3802. for (let zi = 0, zoff = 0; zi !== nz; zi++, zoff += zstep, d.z += binsizeZ) {
  3803. if (d.dot(planeNormal) < binRadius) {
  3804. const idx = xoff + yoff + zoff;
  3805. bins[idx][binLengths[idx]++] = bi;
  3806. }
  3807. }
  3808. }
  3809. }
  3810. break;
  3811. }
  3812. default:
  3813. {
  3814. if (bi.aabbNeedsUpdate) {
  3815. bi.updateAABB();
  3816. }
  3817. addBoxToBins(bi.aabb.lowerBound.x, bi.aabb.lowerBound.y, bi.aabb.lowerBound.z, bi.aabb.upperBound.x, bi.aabb.upperBound.y, bi.aabb.upperBound.z, bi);
  3818. break;
  3819. }
  3820. }
  3821. } // Check each bin
  3822. for (let i = 0; i !== Nbins; i++) {
  3823. const binLength = binLengths[i]; //Skip bins with no potential collisions
  3824. if (binLength > 1) {
  3825. const bin = bins[i]; // Do N^2 broadphase inside
  3826. for (let xi = 0; xi !== binLength; xi++) {
  3827. const bi = bin[xi];
  3828. for (let yi = 0; yi !== xi; yi++) {
  3829. const bj = bin[yi];
  3830. if (this.needBroadphaseCollision(bi, bj)) {
  3831. this.intersectionTest(bi, bj, pairs1, pairs2);
  3832. }
  3833. }
  3834. }
  3835. }
  3836. } // for (let zi = 0, zoff=0; zi < nz; zi++, zoff+= zstep) {
  3837. // console.log("layer "+zi);
  3838. // for (let yi = 0, yoff=0; yi < ny; yi++, yoff += ystep) {
  3839. // const row = '';
  3840. // for (let xi = 0, xoff=0; xi < nx; xi++, xoff += xstep) {
  3841. // const idx = xoff + yoff + zoff;
  3842. // row += ' ' + binLengths[idx];
  3843. // }
  3844. // console.log(row);
  3845. // }
  3846. // }
  3847. this.makePairsUnique(pairs1, pairs2);
  3848. }
  3849. }
  3850. const GridBroadphase_collisionPairs_d = new Vec3();
  3851. /**
  3852. * Naive broadphase implementation, used in lack of better ones.
  3853. *
  3854. * The naive broadphase looks at all possible pairs without restriction, therefore it has complexity N^2 _(which is bad)_
  3855. */
  3856. class NaiveBroadphase extends Broadphase {
  3857. /**
  3858. * @todo Remove useless constructor
  3859. */
  3860. constructor() {
  3861. super();
  3862. }
  3863. /**
  3864. * Get all the collision pairs in the physics world
  3865. */
  3866. collisionPairs(world, pairs1, pairs2) {
  3867. const bodies = world.bodies;
  3868. const n = bodies.length;
  3869. let bi;
  3870. let bj; // Naive N^2 ftw!
  3871. for (let i = 0; i !== n; i++) {
  3872. for (let j = 0; j !== i; j++) {
  3873. bi = bodies[i];
  3874. bj = bodies[j];
  3875. if (!this.needBroadphaseCollision(bi, bj)) {
  3876. continue;
  3877. }
  3878. this.intersectionTest(bi, bj, pairs1, pairs2);
  3879. }
  3880. }
  3881. }
  3882. /**
  3883. * Returns all the bodies within an AABB.
  3884. * @param result An array to store resulting bodies in.
  3885. */
  3886. aabbQuery(world, aabb, result = []) {
  3887. for (let i = 0; i < world.bodies.length; i++) {
  3888. const b = world.bodies[i];
  3889. if (b.aabbNeedsUpdate) {
  3890. b.updateAABB();
  3891. } // Ugly hack until Body gets aabb
  3892. if (b.aabb.overlaps(aabb)) {
  3893. result.push(b);
  3894. }
  3895. }
  3896. return result;
  3897. }
  3898. }
  3899. /**
  3900. * Storage for Ray casting data
  3901. */
  3902. class RaycastResult {
  3903. /**
  3904. * rayFromWorld
  3905. */
  3906. /**
  3907. * rayToWorld
  3908. */
  3909. /**
  3910. * hitNormalWorld
  3911. */
  3912. /**
  3913. * hitPointWorld
  3914. */
  3915. /**
  3916. * hasHit
  3917. */
  3918. /**
  3919. * shape
  3920. */
  3921. /**
  3922. * body
  3923. */
  3924. /**
  3925. * The index of the hit triangle, if the hit shape was a trimesh
  3926. */
  3927. /**
  3928. * Distance to the hit. Will be set to -1 if there was no hit
  3929. */
  3930. /**
  3931. * If the ray should stop traversing the bodies
  3932. */
  3933. constructor() {
  3934. this.rayFromWorld = void 0;
  3935. this.rayToWorld = void 0;
  3936. this.hitNormalWorld = void 0;
  3937. this.hitPointWorld = void 0;
  3938. this.hasHit = void 0;
  3939. this.shape = void 0;
  3940. this.body = void 0;
  3941. this.hitFaceIndex = void 0;
  3942. this.distance = void 0;
  3943. this.shouldStop = void 0;
  3944. this.rayFromWorld = new Vec3();
  3945. this.rayToWorld = new Vec3();
  3946. this.hitNormalWorld = new Vec3();
  3947. this.hitPointWorld = new Vec3();
  3948. this.hasHit = false;
  3949. this.shape = null;
  3950. this.body = null;
  3951. this.hitFaceIndex = -1;
  3952. this.distance = -1;
  3953. this.shouldStop = false;
  3954. }
  3955. /**
  3956. * Reset all result data.
  3957. */
  3958. reset() {
  3959. this.rayFromWorld.setZero();
  3960. this.rayToWorld.setZero();
  3961. this.hitNormalWorld.setZero();
  3962. this.hitPointWorld.setZero();
  3963. this.hasHit = false;
  3964. this.shape = null;
  3965. this.body = null;
  3966. this.hitFaceIndex = -1;
  3967. this.distance = -1;
  3968. this.shouldStop = false;
  3969. }
  3970. /**
  3971. * abort
  3972. */
  3973. abort() {
  3974. this.shouldStop = true;
  3975. }
  3976. /**
  3977. * Set result data.
  3978. */
  3979. set(rayFromWorld, rayToWorld, hitNormalWorld, hitPointWorld, shape, body, distance) {
  3980. this.rayFromWorld.copy(rayFromWorld);
  3981. this.rayToWorld.copy(rayToWorld);
  3982. this.hitNormalWorld.copy(hitNormalWorld);
  3983. this.hitPointWorld.copy(hitPointWorld);
  3984. this.shape = shape;
  3985. this.body = body;
  3986. this.distance = distance;
  3987. }
  3988. }
  3989. let _Shape$types$SPHERE, _Shape$types$PLANE, _Shape$types$BOX, _Shape$types$CYLINDER, _Shape$types$CONVEXPO, _Shape$types$HEIGHTFI, _Shape$types$TRIMESH;
  3990. /**
  3991. * RAY_MODES
  3992. */
  3993. const RAY_MODES = {
  3994. /** CLOSEST */
  3995. CLOSEST: 1,
  3996. /** ANY */
  3997. ANY: 2,
  3998. /** ALL */
  3999. ALL: 4
  4000. };
  4001. /**
  4002. * RayMode
  4003. */
  4004. _Shape$types$SPHERE = Shape.types.SPHERE;
  4005. _Shape$types$PLANE = Shape.types.PLANE;
  4006. _Shape$types$BOX = Shape.types.BOX;
  4007. _Shape$types$CYLINDER = Shape.types.CYLINDER;
  4008. _Shape$types$CONVEXPO = Shape.types.CONVEXPOLYHEDRON;
  4009. _Shape$types$HEIGHTFI = Shape.types.HEIGHTFIELD;
  4010. _Shape$types$TRIMESH = Shape.types.TRIMESH;
  4011. /**
  4012. * A line in 3D space that intersects bodies and return points.
  4013. */
  4014. class Ray {
  4015. /**
  4016. * from
  4017. */
  4018. /**
  4019. * to
  4020. */
  4021. /**
  4022. * direction
  4023. */
  4024. /**
  4025. * The precision of the ray. Used when checking parallelity etc.
  4026. * @default 0.0001
  4027. */
  4028. /**
  4029. * Set to `false` if you don't want the Ray to take `collisionResponse` flags into account on bodies and shapes.
  4030. * @default true
  4031. */
  4032. /**
  4033. * If set to `true`, the ray skips any hits with normal.dot(rayDirection) < 0.
  4034. * @default false
  4035. */
  4036. /**
  4037. * collisionFilterMask
  4038. * @default -1
  4039. */
  4040. /**
  4041. * collisionFilterGroup
  4042. * @default -1
  4043. */
  4044. /**
  4045. * The intersection mode. Should be Ray.ANY, Ray.ALL or Ray.CLOSEST.
  4046. * @default RAY.ANY
  4047. */
  4048. /**
  4049. * Current result object.
  4050. */
  4051. /**
  4052. * Will be set to `true` during intersectWorld() if the ray hit anything.
  4053. */
  4054. /**
  4055. * User-provided result callback. Will be used if mode is Ray.ALL.
  4056. */
  4057. /**
  4058. * CLOSEST
  4059. */
  4060. /**
  4061. * ANY
  4062. */
  4063. /**
  4064. * ALL
  4065. */
  4066. get [_Shape$types$SPHERE]() {
  4067. return this._intersectSphere;
  4068. }
  4069. get [_Shape$types$PLANE]() {
  4070. return this._intersectPlane;
  4071. }
  4072. get [_Shape$types$BOX]() {
  4073. return this._intersectBox;
  4074. }
  4075. get [_Shape$types$CYLINDER]() {
  4076. return this._intersectConvex;
  4077. }
  4078. get [_Shape$types$CONVEXPO]() {
  4079. return this._intersectConvex;
  4080. }
  4081. get [_Shape$types$HEIGHTFI]() {
  4082. return this._intersectHeightfield;
  4083. }
  4084. get [_Shape$types$TRIMESH]() {
  4085. return this._intersectTrimesh;
  4086. }
  4087. constructor(from = new Vec3(), to = new Vec3()) {
  4088. this.from = void 0;
  4089. this.to = void 0;
  4090. this.direction = void 0;
  4091. this.precision = void 0;
  4092. this.checkCollisionResponse = void 0;
  4093. this.skipBackfaces = void 0;
  4094. this.collisionFilterMask = void 0;
  4095. this.collisionFilterGroup = void 0;
  4096. this.mode = void 0;
  4097. this.result = void 0;
  4098. this.hasHit = void 0;
  4099. this.callback = void 0;
  4100. this.from = from.clone();
  4101. this.to = to.clone();
  4102. this.direction = new Vec3();
  4103. this.precision = 0.0001;
  4104. this.checkCollisionResponse = true;
  4105. this.skipBackfaces = false;
  4106. this.collisionFilterMask = -1;
  4107. this.collisionFilterGroup = -1;
  4108. this.mode = Ray.ANY;
  4109. this.result = new RaycastResult();
  4110. this.hasHit = false;
  4111. this.callback = result => {};
  4112. }
  4113. /**
  4114. * Do itersection against all bodies in the given World.
  4115. * @return True if the ray hit anything, otherwise false.
  4116. */
  4117. intersectWorld(world, options) {
  4118. this.mode = options.mode || Ray.ANY;
  4119. this.result = options.result || new RaycastResult();
  4120. this.skipBackfaces = !!options.skipBackfaces;
  4121. this.collisionFilterMask = typeof options.collisionFilterMask !== 'undefined' ? options.collisionFilterMask : -1;
  4122. this.collisionFilterGroup = typeof options.collisionFilterGroup !== 'undefined' ? options.collisionFilterGroup : -1;
  4123. this.checkCollisionResponse = typeof options.checkCollisionResponse !== 'undefined' ? options.checkCollisionResponse : true;
  4124. if (options.from) {
  4125. this.from.copy(options.from);
  4126. }
  4127. if (options.to) {
  4128. this.to.copy(options.to);
  4129. }
  4130. this.callback = options.callback || (() => {});
  4131. this.hasHit = false;
  4132. this.result.reset();
  4133. this.updateDirection();
  4134. this.getAABB(tmpAABB$1);
  4135. tmpArray.length = 0;
  4136. world.broadphase.aabbQuery(world, tmpAABB$1, tmpArray);
  4137. this.intersectBodies(tmpArray);
  4138. return this.hasHit;
  4139. }
  4140. /**
  4141. * Shoot a ray at a body, get back information about the hit.
  4142. * @deprecated @param result set the result property of the Ray instead.
  4143. */
  4144. intersectBody(body, result) {
  4145. if (result) {
  4146. this.result = result;
  4147. this.updateDirection();
  4148. }
  4149. const checkCollisionResponse = this.checkCollisionResponse;
  4150. if (checkCollisionResponse && !body.collisionResponse) {
  4151. return;
  4152. }
  4153. if ((this.collisionFilterGroup & body.collisionFilterMask) === 0 || (body.collisionFilterGroup & this.collisionFilterMask) === 0) {
  4154. return;
  4155. }
  4156. const xi = intersectBody_xi;
  4157. const qi = intersectBody_qi;
  4158. for (let i = 0, N = body.shapes.length; i < N; i++) {
  4159. const shape = body.shapes[i];
  4160. if (checkCollisionResponse && !shape.collisionResponse) {
  4161. continue; // Skip
  4162. }
  4163. body.quaternion.mult(body.shapeOrientations[i], qi);
  4164. body.quaternion.vmult(body.shapeOffsets[i], xi);
  4165. xi.vadd(body.position, xi);
  4166. this.intersectShape(shape, qi, xi, body);
  4167. if (this.result.shouldStop) {
  4168. break;
  4169. }
  4170. }
  4171. }
  4172. /**
  4173. * Shoot a ray at an array bodies, get back information about the hit.
  4174. * @param bodies An array of Body objects.
  4175. * @deprecated @param result set the result property of the Ray instead.
  4176. *
  4177. */
  4178. intersectBodies(bodies, result) {
  4179. if (result) {
  4180. this.result = result;
  4181. this.updateDirection();
  4182. }
  4183. for (let i = 0, l = bodies.length; !this.result.shouldStop && i < l; i++) {
  4184. this.intersectBody(bodies[i]);
  4185. }
  4186. }
  4187. /**
  4188. * Updates the direction vector.
  4189. */
  4190. updateDirection() {
  4191. this.to.vsub(this.from, this.direction);
  4192. this.direction.normalize();
  4193. }
  4194. intersectShape(shape, quat, position, body) {
  4195. const from = this.from; // Checking boundingSphere
  4196. const distance = distanceFromIntersection(from, this.direction, position);
  4197. if (distance > shape.boundingSphereRadius) {
  4198. return;
  4199. }
  4200. const intersectMethod = this[shape.type];
  4201. if (intersectMethod) {
  4202. intersectMethod.call(this, shape, quat, position, body, shape);
  4203. }
  4204. }
  4205. _intersectBox(box, quat, position, body, reportedShape) {
  4206. return this._intersectConvex(box.convexPolyhedronRepresentation, quat, position, body, reportedShape);
  4207. }
  4208. _intersectPlane(shape, quat, position, body, reportedShape) {
  4209. const from = this.from;
  4210. const to = this.to;
  4211. const direction = this.direction; // Get plane normal
  4212. const worldNormal = new Vec3(0, 0, 1);
  4213. quat.vmult(worldNormal, worldNormal);
  4214. const len = new Vec3();
  4215. from.vsub(position, len);
  4216. const planeToFrom = len.dot(worldNormal);
  4217. to.vsub(position, len);
  4218. const planeToTo = len.dot(worldNormal);
  4219. if (planeToFrom * planeToTo > 0) {
  4220. // "from" and "to" are on the same side of the plane... bail out
  4221. return;
  4222. }
  4223. if (from.distanceTo(to) < planeToFrom) {
  4224. return;
  4225. }
  4226. const n_dot_dir = worldNormal.dot(direction);
  4227. if (Math.abs(n_dot_dir) < this.precision) {
  4228. // No intersection
  4229. return;
  4230. }
  4231. const planePointToFrom = new Vec3();
  4232. const dir_scaled_with_t = new Vec3();
  4233. const hitPointWorld = new Vec3();
  4234. from.vsub(position, planePointToFrom);
  4235. const t = -worldNormal.dot(planePointToFrom) / n_dot_dir;
  4236. direction.scale(t, dir_scaled_with_t);
  4237. from.vadd(dir_scaled_with_t, hitPointWorld);
  4238. this.reportIntersection(worldNormal, hitPointWorld, reportedShape, body, -1);
  4239. }
  4240. /**
  4241. * Get the world AABB of the ray.
  4242. */
  4243. getAABB(aabb) {
  4244. const {
  4245. lowerBound,
  4246. upperBound
  4247. } = aabb;
  4248. const to = this.to;
  4249. const from = this.from;
  4250. lowerBound.x = Math.min(to.x, from.x);
  4251. lowerBound.y = Math.min(to.y, from.y);
  4252. lowerBound.z = Math.min(to.z, from.z);
  4253. upperBound.x = Math.max(to.x, from.x);
  4254. upperBound.y = Math.max(to.y, from.y);
  4255. upperBound.z = Math.max(to.z, from.z);
  4256. }
  4257. _intersectHeightfield(shape, quat, position, body, reportedShape) {
  4258. shape.data;
  4259. shape.elementSize; // Convert the ray to local heightfield coordinates
  4260. const localRay = intersectHeightfield_localRay; //new Ray(this.from, this.to);
  4261. localRay.from.copy(this.from);
  4262. localRay.to.copy(this.to);
  4263. Transform.pointToLocalFrame(position, quat, localRay.from, localRay.from);
  4264. Transform.pointToLocalFrame(position, quat, localRay.to, localRay.to);
  4265. localRay.updateDirection(); // Get the index of the data points to test against
  4266. const index = intersectHeightfield_index;
  4267. let iMinX;
  4268. let iMinY;
  4269. let iMaxX;
  4270. let iMaxY; // Set to max
  4271. iMinX = iMinY = 0;
  4272. iMaxX = iMaxY = shape.data.length - 1;
  4273. const aabb = new AABB();
  4274. localRay.getAABB(aabb);
  4275. shape.getIndexOfPosition(aabb.lowerBound.x, aabb.lowerBound.y, index, true);
  4276. iMinX = Math.max(iMinX, index[0]);
  4277. iMinY = Math.max(iMinY, index[1]);
  4278. shape.getIndexOfPosition(aabb.upperBound.x, aabb.upperBound.y, index, true);
  4279. iMaxX = Math.min(iMaxX, index[0] + 1);
  4280. iMaxY = Math.min(iMaxY, index[1] + 1);
  4281. for (let i = iMinX; i < iMaxX; i++) {
  4282. for (let j = iMinY; j < iMaxY; j++) {
  4283. if (this.result.shouldStop) {
  4284. return;
  4285. }
  4286. shape.getAabbAtIndex(i, j, aabb);
  4287. if (!aabb.overlapsRay(localRay)) {
  4288. continue;
  4289. } // Lower triangle
  4290. shape.getConvexTrianglePillar(i, j, false);
  4291. Transform.pointToWorldFrame(position, quat, shape.pillarOffset, worldPillarOffset);
  4292. this._intersectConvex(shape.pillarConvex, quat, worldPillarOffset, body, reportedShape, intersectConvexOptions);
  4293. if (this.result.shouldStop) {
  4294. return;
  4295. } // Upper triangle
  4296. shape.getConvexTrianglePillar(i, j, true);
  4297. Transform.pointToWorldFrame(position, quat, shape.pillarOffset, worldPillarOffset);
  4298. this._intersectConvex(shape.pillarConvex, quat, worldPillarOffset, body, reportedShape, intersectConvexOptions);
  4299. }
  4300. }
  4301. }
  4302. _intersectSphere(sphere, quat, position, body, reportedShape) {
  4303. const from = this.from;
  4304. const to = this.to;
  4305. const r = sphere.radius;
  4306. const a = (to.x - from.x) ** 2 + (to.y - from.y) ** 2 + (to.z - from.z) ** 2;
  4307. const b = 2 * ((to.x - from.x) * (from.x - position.x) + (to.y - from.y) * (from.y - position.y) + (to.z - from.z) * (from.z - position.z));
  4308. const c = (from.x - position.x) ** 2 + (from.y - position.y) ** 2 + (from.z - position.z) ** 2 - r ** 2;
  4309. const delta = b ** 2 - 4 * a * c;
  4310. const intersectionPoint = Ray_intersectSphere_intersectionPoint;
  4311. const normal = Ray_intersectSphere_normal;
  4312. if (delta < 0) {
  4313. // No intersection
  4314. return;
  4315. } else if (delta === 0) {
  4316. // single intersection point
  4317. from.lerp(to, delta, intersectionPoint);
  4318. intersectionPoint.vsub(position, normal);
  4319. normal.normalize();
  4320. this.reportIntersection(normal, intersectionPoint, reportedShape, body, -1);
  4321. } else {
  4322. const d1 = (-b - Math.sqrt(delta)) / (2 * a);
  4323. const d2 = (-b + Math.sqrt(delta)) / (2 * a);
  4324. if (d1 >= 0 && d1 <= 1) {
  4325. from.lerp(to, d1, intersectionPoint);
  4326. intersectionPoint.vsub(position, normal);
  4327. normal.normalize();
  4328. this.reportIntersection(normal, intersectionPoint, reportedShape, body, -1);
  4329. }
  4330. if (this.result.shouldStop) {
  4331. return;
  4332. }
  4333. if (d2 >= 0 && d2 <= 1) {
  4334. from.lerp(to, d2, intersectionPoint);
  4335. intersectionPoint.vsub(position, normal);
  4336. normal.normalize();
  4337. this.reportIntersection(normal, intersectionPoint, reportedShape, body, -1);
  4338. }
  4339. }
  4340. }
  4341. _intersectConvex(shape, quat, position, body, reportedShape, options) {
  4342. const normal = intersectConvex_normal;
  4343. const vector = intersectConvex_vector;
  4344. const faceList = options && options.faceList || null; // Checking faces
  4345. const faces = shape.faces;
  4346. const vertices = shape.vertices;
  4347. const normals = shape.faceNormals;
  4348. const direction = this.direction;
  4349. const from = this.from;
  4350. const to = this.to;
  4351. const fromToDistance = from.distanceTo(to);
  4352. const Nfaces = faceList ? faceList.length : faces.length;
  4353. const result = this.result;
  4354. for (let j = 0; !result.shouldStop && j < Nfaces; j++) {
  4355. const fi = faceList ? faceList[j] : j;
  4356. const face = faces[fi];
  4357. const faceNormal = normals[fi];
  4358. const q = quat;
  4359. const x = position; // determine if ray intersects the plane of the face
  4360. // note: this works regardless of the direction of the face normal
  4361. // Get plane point in world coordinates...
  4362. vector.copy(vertices[face[0]]);
  4363. q.vmult(vector, vector);
  4364. vector.vadd(x, vector); // ...but make it relative to the ray from. We'll fix this later.
  4365. vector.vsub(from, vector); // Get plane normal
  4366. q.vmult(faceNormal, normal); // If this dot product is negative, we have something interesting
  4367. const dot = direction.dot(normal); // Bail out if ray and plane are parallel
  4368. if (Math.abs(dot) < this.precision) {
  4369. continue;
  4370. } // calc distance to plane
  4371. const scalar = normal.dot(vector) / dot; // if negative distance, then plane is behind ray
  4372. if (scalar < 0) {
  4373. continue;
  4374. } // if (dot < 0) {
  4375. // Intersection point is from + direction * scalar
  4376. direction.scale(scalar, intersectPoint);
  4377. intersectPoint.vadd(from, intersectPoint); // a is the point we compare points b and c with.
  4378. a.copy(vertices[face[0]]);
  4379. q.vmult(a, a);
  4380. x.vadd(a, a);
  4381. for (let i = 1; !result.shouldStop && i < face.length - 1; i++) {
  4382. // Transform 3 vertices to world coords
  4383. b.copy(vertices[face[i]]);
  4384. c.copy(vertices[face[i + 1]]);
  4385. q.vmult(b, b);
  4386. q.vmult(c, c);
  4387. x.vadd(b, b);
  4388. x.vadd(c, c);
  4389. const distance = intersectPoint.distanceTo(from);
  4390. if (!(Ray.pointInTriangle(intersectPoint, a, b, c) || Ray.pointInTriangle(intersectPoint, b, a, c)) || distance > fromToDistance) {
  4391. continue;
  4392. }
  4393. this.reportIntersection(normal, intersectPoint, reportedShape, body, fi);
  4394. } // }
  4395. }
  4396. }
  4397. /**
  4398. * @todo Optimize by transforming the world to local space first.
  4399. * @todo Use Octree lookup
  4400. */
  4401. _intersectTrimesh(mesh, quat, position, body, reportedShape, options) {
  4402. const normal = intersectTrimesh_normal;
  4403. const triangles = intersectTrimesh_triangles;
  4404. const treeTransform = intersectTrimesh_treeTransform;
  4405. const vector = intersectConvex_vector;
  4406. const localDirection = intersectTrimesh_localDirection;
  4407. const localFrom = intersectTrimesh_localFrom;
  4408. const localTo = intersectTrimesh_localTo;
  4409. const worldIntersectPoint = intersectTrimesh_worldIntersectPoint;
  4410. const worldNormal = intersectTrimesh_worldNormal; // Checking faces
  4411. const indices = mesh.indices;
  4412. mesh.vertices; // const normals = mesh.faceNormals
  4413. const from = this.from;
  4414. const to = this.to;
  4415. const direction = this.direction;
  4416. treeTransform.position.copy(position);
  4417. treeTransform.quaternion.copy(quat); // Transform ray to local space!
  4418. Transform.vectorToLocalFrame(position, quat, direction, localDirection);
  4419. Transform.pointToLocalFrame(position, quat, from, localFrom);
  4420. Transform.pointToLocalFrame(position, quat, to, localTo);
  4421. localTo.x *= mesh.scale.x;
  4422. localTo.y *= mesh.scale.y;
  4423. localTo.z *= mesh.scale.z;
  4424. localFrom.x *= mesh.scale.x;
  4425. localFrom.y *= mesh.scale.y;
  4426. localFrom.z *= mesh.scale.z;
  4427. localTo.vsub(localFrom, localDirection);
  4428. localDirection.normalize();
  4429. const fromToDistanceSquared = localFrom.distanceSquared(localTo);
  4430. mesh.tree.rayQuery(this, treeTransform, triangles);
  4431. for (let i = 0, N = triangles.length; !this.result.shouldStop && i !== N; i++) {
  4432. const trianglesIndex = triangles[i];
  4433. mesh.getNormal(trianglesIndex, normal); // determine if ray intersects the plane of the face
  4434. // note: this works regardless of the direction of the face normal
  4435. // Get plane point in world coordinates...
  4436. mesh.getVertex(indices[trianglesIndex * 3], a); // ...but make it relative to the ray from. We'll fix this later.
  4437. a.vsub(localFrom, vector); // If this dot product is negative, we have something interesting
  4438. const dot = localDirection.dot(normal); // Bail out if ray and plane are parallel
  4439. // if (Math.abs( dot ) < this.precision){
  4440. // continue;
  4441. // }
  4442. // calc distance to plane
  4443. const scalar = normal.dot(vector) / dot; // if negative distance, then plane is behind ray
  4444. if (scalar < 0) {
  4445. continue;
  4446. } // Intersection point is from + direction * scalar
  4447. localDirection.scale(scalar, intersectPoint);
  4448. intersectPoint.vadd(localFrom, intersectPoint); // Get triangle vertices
  4449. mesh.getVertex(indices[trianglesIndex * 3 + 1], b);
  4450. mesh.getVertex(indices[trianglesIndex * 3 + 2], c);
  4451. const squaredDistance = intersectPoint.distanceSquared(localFrom);
  4452. if (!(Ray.pointInTriangle(intersectPoint, b, a, c) || Ray.pointInTriangle(intersectPoint, a, b, c)) || squaredDistance > fromToDistanceSquared) {
  4453. continue;
  4454. } // transform intersectpoint and normal to world
  4455. Transform.vectorToWorldFrame(quat, normal, worldNormal);
  4456. Transform.pointToWorldFrame(position, quat, intersectPoint, worldIntersectPoint);
  4457. this.reportIntersection(worldNormal, worldIntersectPoint, reportedShape, body, trianglesIndex);
  4458. }
  4459. triangles.length = 0;
  4460. }
  4461. /**
  4462. * @return True if the intersections should continue
  4463. */
  4464. reportIntersection(normal, hitPointWorld, shape, body, hitFaceIndex) {
  4465. const from = this.from;
  4466. const to = this.to;
  4467. const distance = from.distanceTo(hitPointWorld);
  4468. const result = this.result; // Skip back faces?
  4469. if (this.skipBackfaces && normal.dot(this.direction) > 0) {
  4470. return;
  4471. }
  4472. result.hitFaceIndex = typeof hitFaceIndex !== 'undefined' ? hitFaceIndex : -1;
  4473. switch (this.mode) {
  4474. case Ray.ALL:
  4475. this.hasHit = true;
  4476. result.set(from, to, normal, hitPointWorld, shape, body, distance);
  4477. result.hasHit = true;
  4478. this.callback(result);
  4479. break;
  4480. case Ray.CLOSEST:
  4481. // Store if closer than current closest
  4482. if (distance < result.distance || !result.hasHit) {
  4483. this.hasHit = true;
  4484. result.hasHit = true;
  4485. result.set(from, to, normal, hitPointWorld, shape, body, distance);
  4486. }
  4487. break;
  4488. case Ray.ANY:
  4489. // Report and stop.
  4490. this.hasHit = true;
  4491. result.hasHit = true;
  4492. result.set(from, to, normal, hitPointWorld, shape, body, distance);
  4493. result.shouldStop = true;
  4494. break;
  4495. }
  4496. }
  4497. /**
  4498. * As per "Barycentric Technique" as named
  4499. * {@link https://www.blackpawn.com/texts/pointinpoly/default.html here} but without the division
  4500. */
  4501. static pointInTriangle(p, a, b, c) {
  4502. c.vsub(a, v0);
  4503. b.vsub(a, v1);
  4504. p.vsub(a, v2);
  4505. const dot00 = v0.dot(v0);
  4506. const dot01 = v0.dot(v1);
  4507. const dot02 = v0.dot(v2);
  4508. const dot11 = v1.dot(v1);
  4509. const dot12 = v1.dot(v2);
  4510. let u;
  4511. let v;
  4512. return (u = dot11 * dot02 - dot01 * dot12) >= 0 && (v = dot00 * dot12 - dot01 * dot02) >= 0 && u + v < dot00 * dot11 - dot01 * dot01;
  4513. }
  4514. }
  4515. Ray.CLOSEST = RAY_MODES.CLOSEST;
  4516. Ray.ANY = RAY_MODES.ANY;
  4517. Ray.ALL = RAY_MODES.ALL;
  4518. const tmpAABB$1 = new AABB();
  4519. const tmpArray = [];
  4520. const v1 = new Vec3();
  4521. const v2 = new Vec3();
  4522. const intersectBody_xi = new Vec3();
  4523. const intersectBody_qi = new Quaternion();
  4524. const intersectPoint = new Vec3();
  4525. const a = new Vec3();
  4526. const b = new Vec3();
  4527. const c = new Vec3();
  4528. const intersectConvexOptions = {
  4529. faceList: [0]
  4530. };
  4531. const worldPillarOffset = new Vec3();
  4532. const intersectHeightfield_localRay = new Ray();
  4533. const intersectHeightfield_index = [];
  4534. const Ray_intersectSphere_intersectionPoint = new Vec3();
  4535. const Ray_intersectSphere_normal = new Vec3();
  4536. const intersectConvex_normal = new Vec3();
  4537. const intersectConvex_vector = new Vec3();
  4538. const intersectTrimesh_normal = new Vec3();
  4539. const intersectTrimesh_localDirection = new Vec3();
  4540. const intersectTrimesh_localFrom = new Vec3();
  4541. const intersectTrimesh_localTo = new Vec3();
  4542. const intersectTrimesh_worldNormal = new Vec3();
  4543. const intersectTrimesh_worldIntersectPoint = new Vec3();
  4544. new AABB();
  4545. const intersectTrimesh_triangles = [];
  4546. const intersectTrimesh_treeTransform = new Transform();
  4547. const v0 = new Vec3();
  4548. const intersect = new Vec3();
  4549. function distanceFromIntersection(from, direction, position) {
  4550. // v0 is vector from from to position
  4551. position.vsub(from, v0);
  4552. const dot = v0.dot(direction); // intersect = direction*dot + from
  4553. direction.scale(dot, intersect);
  4554. intersect.vadd(from, intersect);
  4555. const distance = position.distanceTo(intersect);
  4556. return distance;
  4557. }
  4558. /**
  4559. * Sweep and prune broadphase along one axis.
  4560. */
  4561. class SAPBroadphase extends Broadphase {
  4562. /**
  4563. * List of bodies currently in the broadphase.
  4564. */
  4565. /**
  4566. * The world to search in.
  4567. */
  4568. /**
  4569. * Axis to sort the bodies along.
  4570. * Set to 0 for x axis, and 1 for y axis.
  4571. * For best performance, pick the axis where bodies are most distributed.
  4572. */
  4573. /**
  4574. * Check if the bounds of two bodies overlap, along the given SAP axis.
  4575. */
  4576. static checkBounds(bi, bj, axisIndex) {
  4577. let biPos;
  4578. let bjPos;
  4579. if (axisIndex === 0) {
  4580. biPos = bi.position.x;
  4581. bjPos = bj.position.x;
  4582. } else if (axisIndex === 1) {
  4583. biPos = bi.position.y;
  4584. bjPos = bj.position.y;
  4585. } else if (axisIndex === 2) {
  4586. biPos = bi.position.z;
  4587. bjPos = bj.position.z;
  4588. }
  4589. const ri = bi.boundingRadius,
  4590. rj = bj.boundingRadius,
  4591. boundA2 = biPos + ri,
  4592. boundB1 = bjPos - rj;
  4593. return boundB1 < boundA2;
  4594. } // Note: these are identical, save for x/y/z lowerbound
  4595. /**
  4596. * insertionSortX
  4597. */
  4598. static insertionSortX(a) {
  4599. for (let i = 1, l = a.length; i < l; i++) {
  4600. const v = a[i];
  4601. let j;
  4602. for (j = i - 1; j >= 0; j--) {
  4603. if (a[j].aabb.lowerBound.x <= v.aabb.lowerBound.x) {
  4604. break;
  4605. }
  4606. a[j + 1] = a[j];
  4607. }
  4608. a[j + 1] = v;
  4609. }
  4610. return a;
  4611. }
  4612. /**
  4613. * insertionSortY
  4614. */
  4615. static insertionSortY(a) {
  4616. for (let i = 1, l = a.length; i < l; i++) {
  4617. const v = a[i];
  4618. let j;
  4619. for (j = i - 1; j >= 0; j--) {
  4620. if (a[j].aabb.lowerBound.y <= v.aabb.lowerBound.y) {
  4621. break;
  4622. }
  4623. a[j + 1] = a[j];
  4624. }
  4625. a[j + 1] = v;
  4626. }
  4627. return a;
  4628. }
  4629. /**
  4630. * insertionSortZ
  4631. */
  4632. static insertionSortZ(a) {
  4633. for (let i = 1, l = a.length; i < l; i++) {
  4634. const v = a[i];
  4635. let j;
  4636. for (j = i - 1; j >= 0; j--) {
  4637. if (a[j].aabb.lowerBound.z <= v.aabb.lowerBound.z) {
  4638. break;
  4639. }
  4640. a[j + 1] = a[j];
  4641. }
  4642. a[j + 1] = v;
  4643. }
  4644. return a;
  4645. }
  4646. constructor(world) {
  4647. super();
  4648. this.axisList = void 0;
  4649. this.world = void 0;
  4650. this.axisIndex = void 0;
  4651. this._addBodyHandler = void 0;
  4652. this._removeBodyHandler = void 0;
  4653. this.axisList = [];
  4654. this.world = null;
  4655. this.axisIndex = 0;
  4656. const axisList = this.axisList;
  4657. this._addBodyHandler = event => {
  4658. axisList.push(event.body);
  4659. };
  4660. this._removeBodyHandler = event => {
  4661. const idx = axisList.indexOf(event.body);
  4662. if (idx !== -1) {
  4663. axisList.splice(idx, 1);
  4664. }
  4665. };
  4666. if (world) {
  4667. this.setWorld(world);
  4668. }
  4669. }
  4670. /**
  4671. * Change the world
  4672. */
  4673. setWorld(world) {
  4674. // Clear the old axis array
  4675. this.axisList.length = 0; // Add all bodies from the new world
  4676. for (let i = 0; i < world.bodies.length; i++) {
  4677. this.axisList.push(world.bodies[i]);
  4678. } // Remove old handlers, if any
  4679. world.removeEventListener('addBody', this._addBodyHandler);
  4680. world.removeEventListener('removeBody', this._removeBodyHandler); // Add handlers to update the list of bodies.
  4681. world.addEventListener('addBody', this._addBodyHandler);
  4682. world.addEventListener('removeBody', this._removeBodyHandler);
  4683. this.world = world;
  4684. this.dirty = true;
  4685. }
  4686. /**
  4687. * Collect all collision pairs
  4688. */
  4689. collisionPairs(world, p1, p2) {
  4690. const bodies = this.axisList;
  4691. const N = bodies.length;
  4692. const axisIndex = this.axisIndex;
  4693. let i;
  4694. let j;
  4695. if (this.dirty) {
  4696. this.sortList();
  4697. this.dirty = false;
  4698. } // Look through the list
  4699. for (i = 0; i !== N; i++) {
  4700. const bi = bodies[i];
  4701. for (j = i + 1; j < N; j++) {
  4702. const bj = bodies[j];
  4703. if (!this.needBroadphaseCollision(bi, bj)) {
  4704. continue;
  4705. }
  4706. if (!SAPBroadphase.checkBounds(bi, bj, axisIndex)) {
  4707. break;
  4708. }
  4709. this.intersectionTest(bi, bj, p1, p2);
  4710. }
  4711. }
  4712. }
  4713. sortList() {
  4714. const axisList = this.axisList;
  4715. const axisIndex = this.axisIndex;
  4716. const N = axisList.length; // Update AABBs
  4717. for (let i = 0; i !== N; i++) {
  4718. const bi = axisList[i];
  4719. if (bi.aabbNeedsUpdate) {
  4720. bi.updateAABB();
  4721. }
  4722. } // Sort the list
  4723. if (axisIndex === 0) {
  4724. SAPBroadphase.insertionSortX(axisList);
  4725. } else if (axisIndex === 1) {
  4726. SAPBroadphase.insertionSortY(axisList);
  4727. } else if (axisIndex === 2) {
  4728. SAPBroadphase.insertionSortZ(axisList);
  4729. }
  4730. }
  4731. /**
  4732. * Computes the variance of the body positions and estimates the best axis to use.
  4733. * Will automatically set property `axisIndex`.
  4734. */
  4735. autoDetectAxis() {
  4736. let sumX = 0;
  4737. let sumX2 = 0;
  4738. let sumY = 0;
  4739. let sumY2 = 0;
  4740. let sumZ = 0;
  4741. let sumZ2 = 0;
  4742. const bodies = this.axisList;
  4743. const N = bodies.length;
  4744. const invN = 1 / N;
  4745. for (let i = 0; i !== N; i++) {
  4746. const b = bodies[i];
  4747. const centerX = b.position.x;
  4748. sumX += centerX;
  4749. sumX2 += centerX * centerX;
  4750. const centerY = b.position.y;
  4751. sumY += centerY;
  4752. sumY2 += centerY * centerY;
  4753. const centerZ = b.position.z;
  4754. sumZ += centerZ;
  4755. sumZ2 += centerZ * centerZ;
  4756. }
  4757. const varianceX = sumX2 - sumX * sumX * invN;
  4758. const varianceY = sumY2 - sumY * sumY * invN;
  4759. const varianceZ = sumZ2 - sumZ * sumZ * invN;
  4760. if (varianceX > varianceY) {
  4761. if (varianceX > varianceZ) {
  4762. this.axisIndex = 0;
  4763. } else {
  4764. this.axisIndex = 2;
  4765. }
  4766. } else if (varianceY > varianceZ) {
  4767. this.axisIndex = 1;
  4768. } else {
  4769. this.axisIndex = 2;
  4770. }
  4771. }
  4772. /**
  4773. * Returns all the bodies within an AABB.
  4774. * @param result An array to store resulting bodies in.
  4775. */
  4776. aabbQuery(world, aabb, result = []) {
  4777. if (this.dirty) {
  4778. this.sortList();
  4779. this.dirty = false;
  4780. }
  4781. const axisIndex = this.axisIndex;
  4782. let axis = 'x';
  4783. if (axisIndex === 1) {
  4784. axis = 'y';
  4785. }
  4786. if (axisIndex === 2) {
  4787. axis = 'z';
  4788. }
  4789. const axisList = this.axisList;
  4790. aabb.lowerBound[axis];
  4791. aabb.upperBound[axis];
  4792. for (let i = 0; i < axisList.length; i++) {
  4793. const b = axisList[i];
  4794. if (b.aabbNeedsUpdate) {
  4795. b.updateAABB();
  4796. }
  4797. if (b.aabb.overlaps(aabb)) {
  4798. result.push(b);
  4799. }
  4800. }
  4801. return result;
  4802. }
  4803. }
  4804. class Utils {
  4805. /**
  4806. * Extend an options object with default values.
  4807. * @param options The options object. May be falsy: in this case, a new object is created and returned.
  4808. * @param defaults An object containing default values.
  4809. * @return The modified options object.
  4810. */
  4811. static defaults(options = {}, defaults) {
  4812. for (let key in defaults) {
  4813. if (!(key in options)) {
  4814. options[key] = defaults[key];
  4815. }
  4816. }
  4817. return options;
  4818. }
  4819. }
  4820. /**
  4821. * Constraint base class
  4822. */
  4823. class Constraint {
  4824. /**
  4825. * Equations to be solved in this constraint.
  4826. */
  4827. /**
  4828. * Body A.
  4829. */
  4830. /**
  4831. * Body B.
  4832. */
  4833. /**
  4834. * Set to false if you don't want the bodies to collide when they are connected.
  4835. */
  4836. constructor(bodyA, bodyB, options = {}) {
  4837. this.equations = void 0;
  4838. this.bodyA = void 0;
  4839. this.bodyB = void 0;
  4840. this.id = void 0;
  4841. this.collideConnected = void 0;
  4842. options = Utils.defaults(options, {
  4843. collideConnected: true,
  4844. wakeUpBodies: true
  4845. });
  4846. this.equations = [];
  4847. this.bodyA = bodyA;
  4848. this.bodyB = bodyB;
  4849. this.id = Constraint.idCounter++;
  4850. this.collideConnected = options.collideConnected;
  4851. if (options.wakeUpBodies) {
  4852. if (bodyA) {
  4853. bodyA.wakeUp();
  4854. }
  4855. if (bodyB) {
  4856. bodyB.wakeUp();
  4857. }
  4858. }
  4859. }
  4860. /**
  4861. * Update all the equations with data.
  4862. */
  4863. update() {
  4864. throw new Error('method update() not implmemented in this Constraint subclass!');
  4865. }
  4866. /**
  4867. * Enables all equations in the constraint.
  4868. */
  4869. enable() {
  4870. const eqs = this.equations;
  4871. for (let i = 0; i < eqs.length; i++) {
  4872. eqs[i].enabled = true;
  4873. }
  4874. }
  4875. /**
  4876. * Disables all equations in the constraint.
  4877. */
  4878. disable() {
  4879. const eqs = this.equations;
  4880. for (let i = 0; i < eqs.length; i++) {
  4881. eqs[i].enabled = false;
  4882. }
  4883. }
  4884. }
  4885. Constraint.idCounter = 0;
  4886. /**
  4887. * An element containing 6 entries, 3 spatial and 3 rotational degrees of freedom.
  4888. */
  4889. class JacobianElement {
  4890. /**
  4891. * spatial
  4892. */
  4893. /**
  4894. * rotational
  4895. */
  4896. constructor() {
  4897. this.spatial = void 0;
  4898. this.rotational = void 0;
  4899. this.spatial = new Vec3();
  4900. this.rotational = new Vec3();
  4901. }
  4902. /**
  4903. * Multiply with other JacobianElement
  4904. */
  4905. multiplyElement(element) {
  4906. return element.spatial.dot(this.spatial) + element.rotational.dot(this.rotational);
  4907. }
  4908. /**
  4909. * Multiply with two vectors
  4910. */
  4911. multiplyVectors(spatial, rotational) {
  4912. return spatial.dot(this.spatial) + rotational.dot(this.rotational);
  4913. }
  4914. }
  4915. /**
  4916. * Equation base class.
  4917. *
  4918. * `a`, `b` and `eps` are {@link https://www8.cs.umu.se/kurser/5DV058/VT15/lectures/SPOOKlabnotes.pdf SPOOK} parameters that default to `0.0`. See {@link https://github.com/schteppe/cannon.js/issues/238#issuecomment-147172327 this exchange} for more details on Cannon's physics implementation.
  4919. */
  4920. class Equation {
  4921. /**
  4922. * Minimum (read: negative max) force to be applied by the constraint.
  4923. */
  4924. /**
  4925. * Maximum (read: positive max) force to be applied by the constraint.
  4926. */
  4927. /**
  4928. * SPOOK parameter
  4929. */
  4930. /**
  4931. * SPOOK parameter
  4932. */
  4933. /**
  4934. * SPOOK parameter
  4935. */
  4936. /**
  4937. * A number, proportional to the force added to the bodies.
  4938. */
  4939. constructor(bi, bj, minForce = -1e6, maxForce = 1e6) {
  4940. this.id = void 0;
  4941. this.minForce = void 0;
  4942. this.maxForce = void 0;
  4943. this.bi = void 0;
  4944. this.bj = void 0;
  4945. this.si = void 0;
  4946. this.sj = void 0;
  4947. this.a = void 0;
  4948. this.b = void 0;
  4949. this.eps = void 0;
  4950. this.jacobianElementA = void 0;
  4951. this.jacobianElementB = void 0;
  4952. this.enabled = void 0;
  4953. this.multiplier = void 0;
  4954. this.id = Equation.idCounter++;
  4955. this.minForce = minForce;
  4956. this.maxForce = maxForce;
  4957. this.bi = bi;
  4958. this.bj = bj;
  4959. this.a = 0.0; // SPOOK parameter
  4960. this.b = 0.0; // SPOOK parameter
  4961. this.eps = 0.0; // SPOOK parameter
  4962. this.jacobianElementA = new JacobianElement();
  4963. this.jacobianElementB = new JacobianElement();
  4964. this.enabled = true;
  4965. this.multiplier = 0;
  4966. this.setSpookParams(1e7, 4, 1 / 60); // Set typical spook params
  4967. }
  4968. /**
  4969. * Recalculates a, b, and eps.
  4970. *
  4971. * The Equation constructor sets typical SPOOK parameters as such:
  4972. * * `stiffness` = 1e7
  4973. * * `relaxation` = 4
  4974. * * `timeStep`= 1 / 60, _note the hardcoded refresh rate._
  4975. */
  4976. setSpookParams(stiffness, relaxation, timeStep) {
  4977. const d = relaxation;
  4978. const k = stiffness;
  4979. const h = timeStep;
  4980. this.a = 4.0 / (h * (1 + 4 * d));
  4981. this.b = 4.0 * d / (1 + 4 * d);
  4982. this.eps = 4.0 / (h * h * k * (1 + 4 * d));
  4983. }
  4984. /**
  4985. * Computes the right hand side of the SPOOK equation
  4986. */
  4987. computeB(a, b, h) {
  4988. const GW = this.computeGW();
  4989. const Gq = this.computeGq();
  4990. const GiMf = this.computeGiMf();
  4991. return -Gq * a - GW * b - GiMf * h;
  4992. }
  4993. /**
  4994. * Computes G*q, where q are the generalized body coordinates
  4995. */
  4996. computeGq() {
  4997. const GA = this.jacobianElementA;
  4998. const GB = this.jacobianElementB;
  4999. const bi = this.bi;
  5000. const bj = this.bj;
  5001. const xi = bi.position;
  5002. const xj = bj.position;
  5003. return GA.spatial.dot(xi) + GB.spatial.dot(xj);
  5004. }
  5005. /**
  5006. * Computes G*W, where W are the body velocities
  5007. */
  5008. computeGW() {
  5009. const GA = this.jacobianElementA;
  5010. const GB = this.jacobianElementB;
  5011. const bi = this.bi;
  5012. const bj = this.bj;
  5013. const vi = bi.velocity;
  5014. const vj = bj.velocity;
  5015. const wi = bi.angularVelocity;
  5016. const wj = bj.angularVelocity;
  5017. return GA.multiplyVectors(vi, wi) + GB.multiplyVectors(vj, wj);
  5018. }
  5019. /**
  5020. * Computes G*Wlambda, where W are the body velocities
  5021. */
  5022. computeGWlambda() {
  5023. const GA = this.jacobianElementA;
  5024. const GB = this.jacobianElementB;
  5025. const bi = this.bi;
  5026. const bj = this.bj;
  5027. const vi = bi.vlambda;
  5028. const vj = bj.vlambda;
  5029. const wi = bi.wlambda;
  5030. const wj = bj.wlambda;
  5031. return GA.multiplyVectors(vi, wi) + GB.multiplyVectors(vj, wj);
  5032. }
  5033. /**
  5034. * Computes G*inv(M)*f, where M is the mass matrix with diagonal blocks for each body, and f are the forces on the bodies.
  5035. */
  5036. computeGiMf() {
  5037. const GA = this.jacobianElementA;
  5038. const GB = this.jacobianElementB;
  5039. const bi = this.bi;
  5040. const bj = this.bj;
  5041. const fi = bi.force;
  5042. const ti = bi.torque;
  5043. const fj = bj.force;
  5044. const tj = bj.torque;
  5045. const invMassi = bi.invMassSolve;
  5046. const invMassj = bj.invMassSolve;
  5047. fi.scale(invMassi, iMfi);
  5048. fj.scale(invMassj, iMfj);
  5049. bi.invInertiaWorldSolve.vmult(ti, invIi_vmult_taui);
  5050. bj.invInertiaWorldSolve.vmult(tj, invIj_vmult_tauj);
  5051. return GA.multiplyVectors(iMfi, invIi_vmult_taui) + GB.multiplyVectors(iMfj, invIj_vmult_tauj);
  5052. }
  5053. /**
  5054. * Computes G*inv(M)*G'
  5055. */
  5056. computeGiMGt() {
  5057. const GA = this.jacobianElementA;
  5058. const GB = this.jacobianElementB;
  5059. const bi = this.bi;
  5060. const bj = this.bj;
  5061. const invMassi = bi.invMassSolve;
  5062. const invMassj = bj.invMassSolve;
  5063. const invIi = bi.invInertiaWorldSolve;
  5064. const invIj = bj.invInertiaWorldSolve;
  5065. let result = invMassi + invMassj;
  5066. invIi.vmult(GA.rotational, tmp);
  5067. result += tmp.dot(GA.rotational);
  5068. invIj.vmult(GB.rotational, tmp);
  5069. result += tmp.dot(GB.rotational);
  5070. return result;
  5071. }
  5072. /**
  5073. * Add constraint velocity to the bodies.
  5074. */
  5075. addToWlambda(deltalambda) {
  5076. const GA = this.jacobianElementA;
  5077. const GB = this.jacobianElementB;
  5078. const bi = this.bi;
  5079. const bj = this.bj;
  5080. const temp = addToWlambda_temp; // Add to linear velocity
  5081. // v_lambda += inv(M) * delta_lamba * G
  5082. bi.vlambda.addScaledVector(bi.invMassSolve * deltalambda, GA.spatial, bi.vlambda);
  5083. bj.vlambda.addScaledVector(bj.invMassSolve * deltalambda, GB.spatial, bj.vlambda); // Add to angular velocity
  5084. bi.invInertiaWorldSolve.vmult(GA.rotational, temp);
  5085. bi.wlambda.addScaledVector(deltalambda, temp, bi.wlambda);
  5086. bj.invInertiaWorldSolve.vmult(GB.rotational, temp);
  5087. bj.wlambda.addScaledVector(deltalambda, temp, bj.wlambda);
  5088. }
  5089. /**
  5090. * Compute the denominator part of the SPOOK equation: C = G*inv(M)*G' + eps
  5091. */
  5092. computeC() {
  5093. return this.computeGiMGt() + this.eps;
  5094. }
  5095. }
  5096. Equation.idCounter = 0;
  5097. const iMfi = new Vec3();
  5098. const iMfj = new Vec3();
  5099. const invIi_vmult_taui = new Vec3();
  5100. const invIj_vmult_tauj = new Vec3();
  5101. const tmp = new Vec3();
  5102. const addToWlambda_temp = new Vec3();
  5103. /**
  5104. * Contact/non-penetration constraint equation
  5105. */
  5106. class ContactEquation extends Equation {
  5107. /**
  5108. * "bounciness": u1 = -e*u0
  5109. */
  5110. /**
  5111. * World-oriented vector that goes from the center of bi to the contact point.
  5112. */
  5113. /**
  5114. * World-oriented vector that starts in body j position and goes to the contact point.
  5115. */
  5116. /**
  5117. * Contact normal, pointing out of body i.
  5118. */
  5119. constructor(bodyA, bodyB, maxForce = 1e6) {
  5120. super(bodyA, bodyB, 0, maxForce);
  5121. this.restitution = void 0;
  5122. this.ri = void 0;
  5123. this.rj = void 0;
  5124. this.ni = void 0;
  5125. this.restitution = 0.0;
  5126. this.ri = new Vec3();
  5127. this.rj = new Vec3();
  5128. this.ni = new Vec3();
  5129. }
  5130. computeB(h) {
  5131. const a = this.a;
  5132. const b = this.b;
  5133. const bi = this.bi;
  5134. const bj = this.bj;
  5135. const ri = this.ri;
  5136. const rj = this.rj;
  5137. const rixn = ContactEquation_computeB_temp1;
  5138. const rjxn = ContactEquation_computeB_temp2;
  5139. const vi = bi.velocity;
  5140. const wi = bi.angularVelocity;
  5141. bi.force;
  5142. bi.torque;
  5143. const vj = bj.velocity;
  5144. const wj = bj.angularVelocity;
  5145. bj.force;
  5146. bj.torque;
  5147. const penetrationVec = ContactEquation_computeB_temp3;
  5148. const GA = this.jacobianElementA;
  5149. const GB = this.jacobianElementB;
  5150. const n = this.ni; // Caluclate cross products
  5151. ri.cross(n, rixn);
  5152. rj.cross(n, rjxn); // g = xj+rj -(xi+ri)
  5153. // G = [ -ni -rixn ni rjxn ]
  5154. n.negate(GA.spatial);
  5155. rixn.negate(GA.rotational);
  5156. GB.spatial.copy(n);
  5157. GB.rotational.copy(rjxn); // Calculate the penetration vector
  5158. penetrationVec.copy(bj.position);
  5159. penetrationVec.vadd(rj, penetrationVec);
  5160. penetrationVec.vsub(bi.position, penetrationVec);
  5161. penetrationVec.vsub(ri, penetrationVec);
  5162. const g = n.dot(penetrationVec); // Compute iteration
  5163. const ePlusOne = this.restitution + 1;
  5164. const GW = ePlusOne * vj.dot(n) - ePlusOne * vi.dot(n) + wj.dot(rjxn) - wi.dot(rixn);
  5165. const GiMf = this.computeGiMf();
  5166. const B = -g * a - GW * b - h * GiMf;
  5167. return B;
  5168. }
  5169. /**
  5170. * Get the current relative velocity in the contact point.
  5171. */
  5172. getImpactVelocityAlongNormal() {
  5173. const vi = ContactEquation_getImpactVelocityAlongNormal_vi;
  5174. const vj = ContactEquation_getImpactVelocityAlongNormal_vj;
  5175. const xi = ContactEquation_getImpactVelocityAlongNormal_xi;
  5176. const xj = ContactEquation_getImpactVelocityAlongNormal_xj;
  5177. const relVel = ContactEquation_getImpactVelocityAlongNormal_relVel;
  5178. this.bi.position.vadd(this.ri, xi);
  5179. this.bj.position.vadd(this.rj, xj);
  5180. this.bi.getVelocityAtWorldPoint(xi, vi);
  5181. this.bj.getVelocityAtWorldPoint(xj, vj);
  5182. vi.vsub(vj, relVel);
  5183. return this.ni.dot(relVel);
  5184. }
  5185. }
  5186. const ContactEquation_computeB_temp1 = new Vec3(); // Temp vectors
  5187. const ContactEquation_computeB_temp2 = new Vec3();
  5188. const ContactEquation_computeB_temp3 = new Vec3();
  5189. const ContactEquation_getImpactVelocityAlongNormal_vi = new Vec3();
  5190. const ContactEquation_getImpactVelocityAlongNormal_vj = new Vec3();
  5191. const ContactEquation_getImpactVelocityAlongNormal_xi = new Vec3();
  5192. const ContactEquation_getImpactVelocityAlongNormal_xj = new Vec3();
  5193. const ContactEquation_getImpactVelocityAlongNormal_relVel = new Vec3();
  5194. /**
  5195. * Connects two bodies at given offset points.
  5196. * @example
  5197. * const bodyA = new Body({ mass: 1 })
  5198. * const bodyB = new Body({ mass: 1 })
  5199. * bodyA.position.set(-1, 0, 0)
  5200. * bodyB.position.set(1, 0, 0)
  5201. * bodyA.addShape(shapeA)
  5202. * bodyB.addShape(shapeB)
  5203. * world.addBody(bodyA)
  5204. * world.addBody(bodyB)
  5205. * const localPivotA = new Vec3(1, 0, 0)
  5206. * const localPivotB = new Vec3(-1, 0, 0)
  5207. * const constraint = new PointToPointConstraint(bodyA, localPivotA, bodyB, localPivotB)
  5208. * world.addConstraint(constraint)
  5209. */
  5210. class PointToPointConstraint extends Constraint {
  5211. /**
  5212. * Pivot, defined locally in bodyA.
  5213. */
  5214. /**
  5215. * Pivot, defined locally in bodyB.
  5216. */
  5217. /**
  5218. * @param pivotA The point relative to the center of mass of bodyA which bodyA is constrained to.
  5219. * @param bodyB Body that will be constrained in a similar way to the same point as bodyA. We will therefore get a link between bodyA and bodyB. If not specified, bodyA will be constrained to a static point.
  5220. * @param pivotB The point relative to the center of mass of bodyB which bodyB is constrained to.
  5221. * @param maxForce The maximum force that should be applied to constrain the bodies.
  5222. */
  5223. constructor(bodyA, pivotA = new Vec3(), bodyB, pivotB = new Vec3(), maxForce = 1e6) {
  5224. super(bodyA, bodyB);
  5225. this.pivotA = void 0;
  5226. this.pivotB = void 0;
  5227. this.equationX = void 0;
  5228. this.equationY = void 0;
  5229. this.equationZ = void 0;
  5230. this.pivotA = pivotA.clone();
  5231. this.pivotB = pivotB.clone();
  5232. const x = this.equationX = new ContactEquation(bodyA, bodyB);
  5233. const y = this.equationY = new ContactEquation(bodyA, bodyB);
  5234. const z = this.equationZ = new ContactEquation(bodyA, bodyB); // Equations to be fed to the solver
  5235. this.equations.push(x, y, z); // Make the equations bidirectional
  5236. x.minForce = y.minForce = z.minForce = -maxForce;
  5237. x.maxForce = y.maxForce = z.maxForce = maxForce;
  5238. x.ni.set(1, 0, 0);
  5239. y.ni.set(0, 1, 0);
  5240. z.ni.set(0, 0, 1);
  5241. }
  5242. update() {
  5243. const bodyA = this.bodyA;
  5244. const bodyB = this.bodyB;
  5245. const x = this.equationX;
  5246. const y = this.equationY;
  5247. const z = this.equationZ; // Rotate the pivots to world space
  5248. bodyA.quaternion.vmult(this.pivotA, x.ri);
  5249. bodyB.quaternion.vmult(this.pivotB, x.rj);
  5250. y.ri.copy(x.ri);
  5251. y.rj.copy(x.rj);
  5252. z.ri.copy(x.ri);
  5253. z.rj.copy(x.rj);
  5254. }
  5255. }
  5256. /**
  5257. * Cone equation. Works to keep the given body world vectors aligned, or tilted within a given angle from each other.
  5258. */
  5259. class ConeEquation extends Equation {
  5260. /**
  5261. * Local axis in A
  5262. */
  5263. /**
  5264. * Local axis in B
  5265. */
  5266. /**
  5267. * The "cone angle" to keep
  5268. */
  5269. constructor(bodyA, bodyB, options = {}) {
  5270. const maxForce = typeof options.maxForce !== 'undefined' ? options.maxForce : 1e6;
  5271. super(bodyA, bodyB, -maxForce, maxForce);
  5272. this.axisA = void 0;
  5273. this.axisB = void 0;
  5274. this.angle = void 0;
  5275. this.axisA = options.axisA ? options.axisA.clone() : new Vec3(1, 0, 0);
  5276. this.axisB = options.axisB ? options.axisB.clone() : new Vec3(0, 1, 0);
  5277. this.angle = typeof options.angle !== 'undefined' ? options.angle : 0;
  5278. }
  5279. computeB(h) {
  5280. const a = this.a;
  5281. const b = this.b;
  5282. const ni = this.axisA;
  5283. const nj = this.axisB;
  5284. const nixnj = tmpVec1$2;
  5285. const njxni = tmpVec2$2;
  5286. const GA = this.jacobianElementA;
  5287. const GB = this.jacobianElementB; // Caluclate cross products
  5288. ni.cross(nj, nixnj);
  5289. nj.cross(ni, njxni); // The angle between two vector is:
  5290. // cos(theta) = a * b / (length(a) * length(b) = { len(a) = len(b) = 1 } = a * b
  5291. // g = a * b
  5292. // gdot = (b x a) * wi + (a x b) * wj
  5293. // G = [0 bxa 0 axb]
  5294. // W = [vi wi vj wj]
  5295. GA.rotational.copy(njxni);
  5296. GB.rotational.copy(nixnj);
  5297. const g = Math.cos(this.angle) - ni.dot(nj);
  5298. const GW = this.computeGW();
  5299. const GiMf = this.computeGiMf();
  5300. const B = -g * a - GW * b - h * GiMf;
  5301. return B;
  5302. }
  5303. }
  5304. const tmpVec1$2 = new Vec3();
  5305. const tmpVec2$2 = new Vec3();
  5306. /**
  5307. * Rotational constraint. Works to keep the local vectors orthogonal to each other in world space.
  5308. */
  5309. class RotationalEquation extends Equation {
  5310. /**
  5311. * World oriented rotational axis.
  5312. */
  5313. /**
  5314. * World oriented rotational axis.
  5315. */
  5316. /**
  5317. * maxAngle
  5318. */
  5319. constructor(bodyA, bodyB, options = {}) {
  5320. const maxForce = typeof options.maxForce !== 'undefined' ? options.maxForce : 1e6;
  5321. super(bodyA, bodyB, -maxForce, maxForce);
  5322. this.axisA = void 0;
  5323. this.axisB = void 0;
  5324. this.maxAngle = void 0;
  5325. this.axisA = options.axisA ? options.axisA.clone() : new Vec3(1, 0, 0);
  5326. this.axisB = options.axisB ? options.axisB.clone() : new Vec3(0, 1, 0);
  5327. this.maxAngle = Math.PI / 2;
  5328. }
  5329. computeB(h) {
  5330. const a = this.a;
  5331. const b = this.b;
  5332. const ni = this.axisA;
  5333. const nj = this.axisB;
  5334. const nixnj = tmpVec1$1;
  5335. const njxni = tmpVec2$1;
  5336. const GA = this.jacobianElementA;
  5337. const GB = this.jacobianElementB; // Caluclate cross products
  5338. ni.cross(nj, nixnj);
  5339. nj.cross(ni, njxni); // g = ni * nj
  5340. // gdot = (nj x ni) * wi + (ni x nj) * wj
  5341. // G = [0 njxni 0 nixnj]
  5342. // W = [vi wi vj wj]
  5343. GA.rotational.copy(njxni);
  5344. GB.rotational.copy(nixnj);
  5345. const g = Math.cos(this.maxAngle) - ni.dot(nj);
  5346. const GW = this.computeGW();
  5347. const GiMf = this.computeGiMf();
  5348. const B = -g * a - GW * b - h * GiMf;
  5349. return B;
  5350. }
  5351. }
  5352. const tmpVec1$1 = new Vec3();
  5353. const tmpVec2$1 = new Vec3();
  5354. /**
  5355. * A Cone Twist constraint, useful for ragdolls.
  5356. */
  5357. class ConeTwistConstraint extends PointToPointConstraint {
  5358. /**
  5359. * The axis direction for the constraint of the body A.
  5360. */
  5361. /**
  5362. * The axis direction for the constraint of the body B.
  5363. */
  5364. /**
  5365. * The aperture angle of the cone.
  5366. */
  5367. /**
  5368. * The twist angle of the joint.
  5369. */
  5370. constructor(bodyA, bodyB, options = {}) {
  5371. const maxForce = typeof options.maxForce !== 'undefined' ? options.maxForce : 1e6; // Set pivot point in between
  5372. const pivotA = options.pivotA ? options.pivotA.clone() : new Vec3();
  5373. const pivotB = options.pivotB ? options.pivotB.clone() : new Vec3();
  5374. super(bodyA, pivotA, bodyB, pivotB, maxForce);
  5375. this.axisA = void 0;
  5376. this.axisB = void 0;
  5377. this.angle = void 0;
  5378. this.twistAngle = void 0;
  5379. this.coneEquation = void 0;
  5380. this.twistEquation = void 0;
  5381. this.axisA = options.axisA ? options.axisA.clone() : new Vec3();
  5382. this.axisB = options.axisB ? options.axisB.clone() : new Vec3();
  5383. this.collideConnected = !!options.collideConnected;
  5384. this.angle = typeof options.angle !== 'undefined' ? options.angle : 0;
  5385. const c = this.coneEquation = new ConeEquation(bodyA, bodyB, options);
  5386. const t = this.twistEquation = new RotationalEquation(bodyA, bodyB, options);
  5387. this.twistAngle = typeof options.twistAngle !== 'undefined' ? options.twistAngle : 0; // Make the cone equation push the bodies toward the cone axis, not outward
  5388. c.maxForce = 0;
  5389. c.minForce = -maxForce; // Make the twist equation add torque toward the initial position
  5390. t.maxForce = 0;
  5391. t.minForce = -maxForce;
  5392. this.equations.push(c, t);
  5393. }
  5394. update() {
  5395. const bodyA = this.bodyA;
  5396. const bodyB = this.bodyB;
  5397. const cone = this.coneEquation;
  5398. const twist = this.twistEquation;
  5399. super.update(); // Update the axes to the cone constraint
  5400. bodyA.vectorToWorldFrame(this.axisA, cone.axisA);
  5401. bodyB.vectorToWorldFrame(this.axisB, cone.axisB); // Update the world axes in the twist constraint
  5402. this.axisA.tangents(twist.axisA, twist.axisA);
  5403. bodyA.vectorToWorldFrame(twist.axisA, twist.axisA);
  5404. this.axisB.tangents(twist.axisB, twist.axisB);
  5405. bodyB.vectorToWorldFrame(twist.axisB, twist.axisB);
  5406. cone.angle = this.angle;
  5407. twist.maxAngle = this.twistAngle;
  5408. }
  5409. }
  5410. /**
  5411. * Constrains two bodies to be at a constant distance from each others center of mass.
  5412. */
  5413. class DistanceConstraint extends Constraint {
  5414. /**
  5415. * The distance to keep. If undefined, it will be set to the current distance between bodyA and bodyB
  5416. */
  5417. /**
  5418. * @param distance The distance to keep. If undefined, it will be set to the current distance between bodyA and bodyB.
  5419. * @param maxForce The maximum force that should be applied to constrain the bodies.
  5420. */
  5421. constructor(bodyA, bodyB, distance, maxForce = 1e6) {
  5422. super(bodyA, bodyB);
  5423. this.distance = void 0;
  5424. this.distanceEquation = void 0;
  5425. if (typeof distance === 'undefined') {
  5426. distance = bodyA.position.distanceTo(bodyB.position);
  5427. }
  5428. this.distance = distance;
  5429. const eq = this.distanceEquation = new ContactEquation(bodyA, bodyB);
  5430. this.equations.push(eq); // Make it bidirectional
  5431. eq.minForce = -maxForce;
  5432. eq.maxForce = maxForce;
  5433. }
  5434. /**
  5435. * update
  5436. */
  5437. update() {
  5438. const bodyA = this.bodyA;
  5439. const bodyB = this.bodyB;
  5440. const eq = this.distanceEquation;
  5441. const halfDist = this.distance * 0.5;
  5442. const normal = eq.ni;
  5443. bodyB.position.vsub(bodyA.position, normal);
  5444. normal.normalize();
  5445. normal.scale(halfDist, eq.ri);
  5446. normal.scale(-halfDist, eq.rj);
  5447. }
  5448. }
  5449. /**
  5450. * Lock constraint. Will remove all degrees of freedom between the bodies.
  5451. */
  5452. class LockConstraint extends PointToPointConstraint {
  5453. constructor(bodyA, bodyB, options = {}) {
  5454. const maxForce = typeof options.maxForce !== 'undefined' ? options.maxForce : 1e6; // Set pivot point in between
  5455. const pivotA = new Vec3();
  5456. const pivotB = new Vec3();
  5457. const halfWay = new Vec3();
  5458. bodyA.position.vadd(bodyB.position, halfWay);
  5459. halfWay.scale(0.5, halfWay);
  5460. bodyB.pointToLocalFrame(halfWay, pivotB);
  5461. bodyA.pointToLocalFrame(halfWay, pivotA); // The point-to-point constraint will keep a point shared between the bodies
  5462. super(bodyA, pivotA, bodyB, pivotB, maxForce); // Store initial rotation of the bodies as unit vectors in the local body spaces
  5463. this.xA = void 0;
  5464. this.xB = void 0;
  5465. this.yA = void 0;
  5466. this.yB = void 0;
  5467. this.zA = void 0;
  5468. this.zB = void 0;
  5469. this.rotationalEquation1 = void 0;
  5470. this.rotationalEquation2 = void 0;
  5471. this.rotationalEquation3 = void 0;
  5472. this.motorEquation = void 0;
  5473. this.xA = bodyA.vectorToLocalFrame(Vec3.UNIT_X);
  5474. this.xB = bodyB.vectorToLocalFrame(Vec3.UNIT_X);
  5475. this.yA = bodyA.vectorToLocalFrame(Vec3.UNIT_Y);
  5476. this.yB = bodyB.vectorToLocalFrame(Vec3.UNIT_Y);
  5477. this.zA = bodyA.vectorToLocalFrame(Vec3.UNIT_Z);
  5478. this.zB = bodyB.vectorToLocalFrame(Vec3.UNIT_Z); // ...and the following rotational equations will keep all rotational DOF's in place
  5479. const r1 = this.rotationalEquation1 = new RotationalEquation(bodyA, bodyB, options);
  5480. const r2 = this.rotationalEquation2 = new RotationalEquation(bodyA, bodyB, options);
  5481. const r3 = this.rotationalEquation3 = new RotationalEquation(bodyA, bodyB, options);
  5482. this.equations.push(r1, r2, r3);
  5483. }
  5484. /**
  5485. * update
  5486. */
  5487. update() {
  5488. const bodyA = this.bodyA;
  5489. const bodyB = this.bodyB;
  5490. this.motorEquation;
  5491. const r1 = this.rotationalEquation1;
  5492. const r2 = this.rotationalEquation2;
  5493. const r3 = this.rotationalEquation3;
  5494. super.update(); // These vector pairs must be orthogonal
  5495. bodyA.vectorToWorldFrame(this.xA, r1.axisA);
  5496. bodyB.vectorToWorldFrame(this.yB, r1.axisB);
  5497. bodyA.vectorToWorldFrame(this.yA, r2.axisA);
  5498. bodyB.vectorToWorldFrame(this.zB, r2.axisB);
  5499. bodyA.vectorToWorldFrame(this.zA, r3.axisA);
  5500. bodyB.vectorToWorldFrame(this.xB, r3.axisB);
  5501. }
  5502. }
  5503. /**
  5504. * Rotational motor constraint. Tries to keep the relative angular velocity of the bodies to a given value.
  5505. */
  5506. class RotationalMotorEquation extends Equation {
  5507. /**
  5508. * World oriented rotational axis.
  5509. */
  5510. /**
  5511. * World oriented rotational axis.
  5512. */
  5513. /**
  5514. * Motor velocity.
  5515. */
  5516. constructor(bodyA, bodyB, maxForce = 1e6) {
  5517. super(bodyA, bodyB, -maxForce, maxForce);
  5518. this.axisA = void 0;
  5519. this.axisB = void 0;
  5520. this.targetVelocity = void 0;
  5521. this.axisA = new Vec3();
  5522. this.axisB = new Vec3();
  5523. this.targetVelocity = 0;
  5524. }
  5525. computeB(h) {
  5526. this.a;
  5527. const b = this.b;
  5528. this.bi;
  5529. this.bj;
  5530. const axisA = this.axisA;
  5531. const axisB = this.axisB;
  5532. const GA = this.jacobianElementA;
  5533. const GB = this.jacobianElementB; // g = 0
  5534. // gdot = axisA * wi - axisB * wj
  5535. // gdot = G * W = G * [vi wi vj wj]
  5536. // =>
  5537. // G = [0 axisA 0 -axisB]
  5538. GA.rotational.copy(axisA);
  5539. axisB.negate(GB.rotational);
  5540. const GW = this.computeGW() - this.targetVelocity;
  5541. const GiMf = this.computeGiMf();
  5542. const B = -GW * b - h * GiMf;
  5543. return B;
  5544. }
  5545. }
  5546. /**
  5547. * Hinge constraint. Think of it as a door hinge. It tries to keep the door in the correct place and with the correct orientation.
  5548. */
  5549. class HingeConstraint extends PointToPointConstraint {
  5550. /**
  5551. * Rotation axis, defined locally in bodyA.
  5552. */
  5553. /**
  5554. * Rotation axis, defined locally in bodyB.
  5555. */
  5556. constructor(bodyA, bodyB, options = {}) {
  5557. const maxForce = typeof options.maxForce !== 'undefined' ? options.maxForce : 1e6;
  5558. const pivotA = options.pivotA ? options.pivotA.clone() : new Vec3();
  5559. const pivotB = options.pivotB ? options.pivotB.clone() : new Vec3();
  5560. super(bodyA, pivotA, bodyB, pivotB, maxForce);
  5561. this.axisA = void 0;
  5562. this.axisB = void 0;
  5563. this.rotationalEquation1 = void 0;
  5564. this.rotationalEquation2 = void 0;
  5565. this.motorEquation = void 0;
  5566. const axisA = this.axisA = options.axisA ? options.axisA.clone() : new Vec3(1, 0, 0);
  5567. axisA.normalize();
  5568. const axisB = this.axisB = options.axisB ? options.axisB.clone() : new Vec3(1, 0, 0);
  5569. axisB.normalize();
  5570. this.collideConnected = !!options.collideConnected;
  5571. const rotational1 = this.rotationalEquation1 = new RotationalEquation(bodyA, bodyB, options);
  5572. const rotational2 = this.rotationalEquation2 = new RotationalEquation(bodyA, bodyB, options);
  5573. const motor = this.motorEquation = new RotationalMotorEquation(bodyA, bodyB, maxForce);
  5574. motor.enabled = false; // Not enabled by default
  5575. // Equations to be fed to the solver
  5576. this.equations.push(rotational1, rotational2, motor);
  5577. }
  5578. /**
  5579. * enableMotor
  5580. */
  5581. enableMotor() {
  5582. this.motorEquation.enabled = true;
  5583. }
  5584. /**
  5585. * disableMotor
  5586. */
  5587. disableMotor() {
  5588. this.motorEquation.enabled = false;
  5589. }
  5590. /**
  5591. * setMotorSpeed
  5592. */
  5593. setMotorSpeed(speed) {
  5594. this.motorEquation.targetVelocity = speed;
  5595. }
  5596. /**
  5597. * setMotorMaxForce
  5598. */
  5599. setMotorMaxForce(maxForce) {
  5600. this.motorEquation.maxForce = maxForce;
  5601. this.motorEquation.minForce = -maxForce;
  5602. }
  5603. /**
  5604. * update
  5605. */
  5606. update() {
  5607. const bodyA = this.bodyA;
  5608. const bodyB = this.bodyB;
  5609. const motor = this.motorEquation;
  5610. const r1 = this.rotationalEquation1;
  5611. const r2 = this.rotationalEquation2;
  5612. const worldAxisA = HingeConstraint_update_tmpVec1;
  5613. const worldAxisB = HingeConstraint_update_tmpVec2;
  5614. const axisA = this.axisA;
  5615. const axisB = this.axisB;
  5616. super.update(); // Get world axes
  5617. bodyA.quaternion.vmult(axisA, worldAxisA);
  5618. bodyB.quaternion.vmult(axisB, worldAxisB);
  5619. worldAxisA.tangents(r1.axisA, r2.axisA);
  5620. r1.axisB.copy(worldAxisB);
  5621. r2.axisB.copy(worldAxisB);
  5622. if (this.motorEquation.enabled) {
  5623. bodyA.quaternion.vmult(this.axisA, motor.axisA);
  5624. bodyB.quaternion.vmult(this.axisB, motor.axisB);
  5625. }
  5626. }
  5627. }
  5628. const HingeConstraint_update_tmpVec1 = new Vec3();
  5629. const HingeConstraint_update_tmpVec2 = new Vec3();
  5630. /**
  5631. * Constrains the slipping in a contact along a tangent
  5632. */
  5633. class FrictionEquation extends Equation {
  5634. // Tangent
  5635. /**
  5636. * @param slipForce should be +-F_friction = +-mu * F_normal = +-mu * m * g
  5637. */
  5638. constructor(bodyA, bodyB, slipForce) {
  5639. super(bodyA, bodyB, -slipForce, slipForce);
  5640. this.ri = void 0;
  5641. this.rj = void 0;
  5642. this.t = void 0;
  5643. this.ri = new Vec3();
  5644. this.rj = new Vec3();
  5645. this.t = new Vec3();
  5646. }
  5647. computeB(h) {
  5648. this.a;
  5649. const b = this.b;
  5650. this.bi;
  5651. this.bj;
  5652. const ri = this.ri;
  5653. const rj = this.rj;
  5654. const rixt = FrictionEquation_computeB_temp1;
  5655. const rjxt = FrictionEquation_computeB_temp2;
  5656. const t = this.t; // Caluclate cross products
  5657. ri.cross(t, rixt);
  5658. rj.cross(t, rjxt); // G = [-t -rixt t rjxt]
  5659. // And remember, this is a pure velocity constraint, g is always zero!
  5660. const GA = this.jacobianElementA;
  5661. const GB = this.jacobianElementB;
  5662. t.negate(GA.spatial);
  5663. rixt.negate(GA.rotational);
  5664. GB.spatial.copy(t);
  5665. GB.rotational.copy(rjxt);
  5666. const GW = this.computeGW();
  5667. const GiMf = this.computeGiMf();
  5668. const B = -GW * b - h * GiMf;
  5669. return B;
  5670. }
  5671. }
  5672. const FrictionEquation_computeB_temp1 = new Vec3();
  5673. const FrictionEquation_computeB_temp2 = new Vec3();
  5674. /**
  5675. * Defines what happens when two materials meet.
  5676. * @todo Refactor materials to materialA and materialB
  5677. */
  5678. class ContactMaterial {
  5679. /**
  5680. * Identifier of this material.
  5681. */
  5682. /**
  5683. * Participating materials.
  5684. */
  5685. /**
  5686. * Friction coefficient.
  5687. * @default 0.3
  5688. */
  5689. /**
  5690. * Restitution coefficient.
  5691. * @default 0.3
  5692. */
  5693. /**
  5694. * Stiffness of the produced contact equations.
  5695. * @default 1e7
  5696. */
  5697. /**
  5698. * Relaxation time of the produced contact equations.
  5699. * @default 3
  5700. */
  5701. /**
  5702. * Stiffness of the produced friction equations.
  5703. * @default 1e7
  5704. */
  5705. /**
  5706. * Relaxation time of the produced friction equations
  5707. * @default 3
  5708. */
  5709. constructor(m1, m2, options) {
  5710. this.id = void 0;
  5711. this.materials = void 0;
  5712. this.friction = void 0;
  5713. this.restitution = void 0;
  5714. this.contactEquationStiffness = void 0;
  5715. this.contactEquationRelaxation = void 0;
  5716. this.frictionEquationStiffness = void 0;
  5717. this.frictionEquationRelaxation = void 0;
  5718. options = Utils.defaults(options, {
  5719. friction: 0.3,
  5720. restitution: 0.3,
  5721. contactEquationStiffness: 1e7,
  5722. contactEquationRelaxation: 3,
  5723. frictionEquationStiffness: 1e7,
  5724. frictionEquationRelaxation: 3
  5725. });
  5726. this.id = ContactMaterial.idCounter++;
  5727. this.materials = [m1, m2];
  5728. this.friction = options.friction;
  5729. this.restitution = options.restitution;
  5730. this.contactEquationStiffness = options.contactEquationStiffness;
  5731. this.contactEquationRelaxation = options.contactEquationRelaxation;
  5732. this.frictionEquationStiffness = options.frictionEquationStiffness;
  5733. this.frictionEquationRelaxation = options.frictionEquationRelaxation;
  5734. }
  5735. }
  5736. ContactMaterial.idCounter = 0;
  5737. /**
  5738. * Defines a physics material.
  5739. */
  5740. class Material {
  5741. /**
  5742. * Material name.
  5743. * If options is a string, name will be set to that string.
  5744. * @todo Deprecate this
  5745. */
  5746. /** Material id. */
  5747. /**
  5748. * Friction for this material.
  5749. * If non-negative, it will be used instead of the friction given by ContactMaterials. If there's no matching ContactMaterial, the value from `defaultContactMaterial` in the World will be used.
  5750. */
  5751. /**
  5752. * Restitution for this material.
  5753. * If non-negative, it will be used instead of the restitution given by ContactMaterials. If there's no matching ContactMaterial, the value from `defaultContactMaterial` in the World will be used.
  5754. */
  5755. constructor(options = {}) {
  5756. this.name = void 0;
  5757. this.id = void 0;
  5758. this.friction = void 0;
  5759. this.restitution = void 0;
  5760. let name = ''; // Backwards compatibility fix
  5761. if (typeof options === 'string') {
  5762. //console.warn(`Passing a string to MaterialOptions is deprecated, and has no effect`)
  5763. name = options;
  5764. options = {};
  5765. }
  5766. this.name = name;
  5767. this.id = Material.idCounter++;
  5768. this.friction = typeof options.friction !== 'undefined' ? options.friction : -1;
  5769. this.restitution = typeof options.restitution !== 'undefined' ? options.restitution : -1;
  5770. }
  5771. }
  5772. Material.idCounter = 0;
  5773. /**
  5774. * A spring, connecting two bodies.
  5775. * @example
  5776. * const spring = new Spring(boxBody, sphereBody, {
  5777. * restLength: 0,
  5778. * stiffness: 50,
  5779. * damping: 1,
  5780. * })
  5781. *
  5782. * // Compute the force after each step
  5783. * world.addEventListener('postStep', (event) => {
  5784. * spring.applyForce()
  5785. * })
  5786. */
  5787. class Spring {
  5788. /**
  5789. * Rest length of the spring. A number > 0.
  5790. * @default 1
  5791. */
  5792. /**
  5793. * Stiffness of the spring. A number >= 0.
  5794. * @default 100
  5795. */
  5796. /**
  5797. * Damping of the spring. A number >= 0.
  5798. * @default 1
  5799. */
  5800. /**
  5801. * First connected body.
  5802. */
  5803. /**
  5804. * Second connected body.
  5805. */
  5806. /**
  5807. * Anchor for bodyA in local bodyA coordinates.
  5808. * Where to hook the spring to body A, in local body coordinates.
  5809. * @default new Vec3()
  5810. */
  5811. /**
  5812. * Anchor for bodyB in local bodyB coordinates.
  5813. * Where to hook the spring to body B, in local body coordinates.
  5814. * @default new Vec3()
  5815. */
  5816. constructor(bodyA, bodyB, options = {}) {
  5817. this.restLength = void 0;
  5818. this.stiffness = void 0;
  5819. this.damping = void 0;
  5820. this.bodyA = void 0;
  5821. this.bodyB = void 0;
  5822. this.localAnchorA = void 0;
  5823. this.localAnchorB = void 0;
  5824. this.restLength = typeof options.restLength === 'number' ? options.restLength : 1;
  5825. this.stiffness = options.stiffness || 100;
  5826. this.damping = options.damping || 1;
  5827. this.bodyA = bodyA;
  5828. this.bodyB = bodyB;
  5829. this.localAnchorA = new Vec3();
  5830. this.localAnchorB = new Vec3();
  5831. if (options.localAnchorA) {
  5832. this.localAnchorA.copy(options.localAnchorA);
  5833. }
  5834. if (options.localAnchorB) {
  5835. this.localAnchorB.copy(options.localAnchorB);
  5836. }
  5837. if (options.worldAnchorA) {
  5838. this.setWorldAnchorA(options.worldAnchorA);
  5839. }
  5840. if (options.worldAnchorB) {
  5841. this.setWorldAnchorB(options.worldAnchorB);
  5842. }
  5843. }
  5844. /**
  5845. * Set the anchor point on body A, using world coordinates.
  5846. */
  5847. setWorldAnchorA(worldAnchorA) {
  5848. this.bodyA.pointToLocalFrame(worldAnchorA, this.localAnchorA);
  5849. }
  5850. /**
  5851. * Set the anchor point on body B, using world coordinates.
  5852. */
  5853. setWorldAnchorB(worldAnchorB) {
  5854. this.bodyB.pointToLocalFrame(worldAnchorB, this.localAnchorB);
  5855. }
  5856. /**
  5857. * Get the anchor point on body A, in world coordinates.
  5858. * @param result The vector to store the result in.
  5859. */
  5860. getWorldAnchorA(result) {
  5861. this.bodyA.pointToWorldFrame(this.localAnchorA, result);
  5862. }
  5863. /**
  5864. * Get the anchor point on body B, in world coordinates.
  5865. * @param result The vector to store the result in.
  5866. */
  5867. getWorldAnchorB(result) {
  5868. this.bodyB.pointToWorldFrame(this.localAnchorB, result);
  5869. }
  5870. /**
  5871. * Apply the spring force to the connected bodies.
  5872. */
  5873. applyForce() {
  5874. const k = this.stiffness;
  5875. const d = this.damping;
  5876. const l = this.restLength;
  5877. const bodyA = this.bodyA;
  5878. const bodyB = this.bodyB;
  5879. const r = applyForce_r;
  5880. const r_unit = applyForce_r_unit;
  5881. const u = applyForce_u;
  5882. const f = applyForce_f;
  5883. const tmp = applyForce_tmp;
  5884. const worldAnchorA = applyForce_worldAnchorA;
  5885. const worldAnchorB = applyForce_worldAnchorB;
  5886. const ri = applyForce_ri;
  5887. const rj = applyForce_rj;
  5888. const ri_x_f = applyForce_ri_x_f;
  5889. const rj_x_f = applyForce_rj_x_f; // Get world anchors
  5890. this.getWorldAnchorA(worldAnchorA);
  5891. this.getWorldAnchorB(worldAnchorB); // Get offset points
  5892. worldAnchorA.vsub(bodyA.position, ri);
  5893. worldAnchorB.vsub(bodyB.position, rj); // Compute distance vector between world anchor points
  5894. worldAnchorB.vsub(worldAnchorA, r);
  5895. const rlen = r.length();
  5896. r_unit.copy(r);
  5897. r_unit.normalize(); // Compute relative velocity of the anchor points, u
  5898. bodyB.velocity.vsub(bodyA.velocity, u); // Add rotational velocity
  5899. bodyB.angularVelocity.cross(rj, tmp);
  5900. u.vadd(tmp, u);
  5901. bodyA.angularVelocity.cross(ri, tmp);
  5902. u.vsub(tmp, u); // F = - k * ( x - L ) - D * ( u )
  5903. r_unit.scale(-k * (rlen - l) - d * u.dot(r_unit), f); // Add forces to bodies
  5904. bodyA.force.vsub(f, bodyA.force);
  5905. bodyB.force.vadd(f, bodyB.force); // Angular force
  5906. ri.cross(f, ri_x_f);
  5907. rj.cross(f, rj_x_f);
  5908. bodyA.torque.vsub(ri_x_f, bodyA.torque);
  5909. bodyB.torque.vadd(rj_x_f, bodyB.torque);
  5910. }
  5911. }
  5912. const applyForce_r = new Vec3();
  5913. const applyForce_r_unit = new Vec3();
  5914. const applyForce_u = new Vec3();
  5915. const applyForce_f = new Vec3();
  5916. const applyForce_worldAnchorA = new Vec3();
  5917. const applyForce_worldAnchorB = new Vec3();
  5918. const applyForce_ri = new Vec3();
  5919. const applyForce_rj = new Vec3();
  5920. const applyForce_ri_x_f = new Vec3();
  5921. const applyForce_rj_x_f = new Vec3();
  5922. const applyForce_tmp = new Vec3();
  5923. /**
  5924. * WheelInfo
  5925. */
  5926. class WheelInfo {
  5927. /**
  5928. * Max travel distance of the suspension, in meters.
  5929. * @default 1
  5930. */
  5931. /**
  5932. * Speed to apply to the wheel rotation when the wheel is sliding.
  5933. * @default -0.1
  5934. */
  5935. /**
  5936. * If the customSlidingRotationalSpeed should be used.
  5937. * @default false
  5938. */
  5939. /**
  5940. * sliding
  5941. */
  5942. /**
  5943. * Connection point, defined locally in the chassis body frame.
  5944. */
  5945. /**
  5946. * chassisConnectionPointWorld
  5947. */
  5948. /**
  5949. * directionLocal
  5950. */
  5951. /**
  5952. * directionWorld
  5953. */
  5954. /**
  5955. * axleLocal
  5956. */
  5957. /**
  5958. * axleWorld
  5959. */
  5960. /**
  5961. * suspensionRestLength
  5962. * @default 1
  5963. */
  5964. /**
  5965. * suspensionMaxLength
  5966. * @default 2
  5967. */
  5968. /**
  5969. * radius
  5970. * @default 1
  5971. */
  5972. /**
  5973. * suspensionStiffness
  5974. * @default 100
  5975. */
  5976. /**
  5977. * dampingCompression
  5978. * @default 10
  5979. */
  5980. /**
  5981. * dampingRelaxation
  5982. * @default 10
  5983. */
  5984. /**
  5985. * frictionSlip
  5986. * @default 10.5
  5987. */
  5988. /** forwardAcceleration */
  5989. /** sideAcceleration */
  5990. /**
  5991. * steering
  5992. * @default 0
  5993. */
  5994. /**
  5995. * Rotation value, in radians.
  5996. * @default 0
  5997. */
  5998. /**
  5999. * deltaRotation
  6000. * @default 0
  6001. */
  6002. /**
  6003. * rollInfluence
  6004. * @default 0.01
  6005. */
  6006. /**
  6007. * maxSuspensionForce
  6008. */
  6009. /**
  6010. * engineForce
  6011. */
  6012. /**
  6013. * brake
  6014. */
  6015. /**
  6016. * isFrontWheel
  6017. * @default true
  6018. */
  6019. /**
  6020. * clippedInvContactDotSuspension
  6021. * @default 1
  6022. */
  6023. /**
  6024. * suspensionRelativeVelocity
  6025. * @default 0
  6026. */
  6027. /**
  6028. * suspensionForce
  6029. * @default 0
  6030. */
  6031. /**
  6032. * slipInfo
  6033. */
  6034. /**
  6035. * skidInfo
  6036. * @default 0
  6037. */
  6038. /**
  6039. * suspensionLength
  6040. * @default 0
  6041. */
  6042. /**
  6043. * sideImpulse
  6044. */
  6045. /**
  6046. * forwardImpulse
  6047. */
  6048. /**
  6049. * The result from raycasting.
  6050. */
  6051. /**
  6052. * Wheel world transform.
  6053. */
  6054. /**
  6055. * isInContact
  6056. */
  6057. constructor(options = {}) {
  6058. this.maxSuspensionTravel = void 0;
  6059. this.customSlidingRotationalSpeed = void 0;
  6060. this.useCustomSlidingRotationalSpeed = void 0;
  6061. this.sliding = void 0;
  6062. this.chassisConnectionPointLocal = void 0;
  6063. this.chassisConnectionPointWorld = void 0;
  6064. this.directionLocal = void 0;
  6065. this.directionWorld = void 0;
  6066. this.axleLocal = void 0;
  6067. this.axleWorld = void 0;
  6068. this.suspensionRestLength = void 0;
  6069. this.suspensionMaxLength = void 0;
  6070. this.radius = void 0;
  6071. this.suspensionStiffness = void 0;
  6072. this.dampingCompression = void 0;
  6073. this.dampingRelaxation = void 0;
  6074. this.frictionSlip = void 0;
  6075. this.forwardAcceleration = void 0;
  6076. this.sideAcceleration = void 0;
  6077. this.steering = void 0;
  6078. this.rotation = void 0;
  6079. this.deltaRotation = void 0;
  6080. this.rollInfluence = void 0;
  6081. this.maxSuspensionForce = void 0;
  6082. this.engineForce = void 0;
  6083. this.brake = void 0;
  6084. this.isFrontWheel = void 0;
  6085. this.clippedInvContactDotSuspension = void 0;
  6086. this.suspensionRelativeVelocity = void 0;
  6087. this.suspensionForce = void 0;
  6088. this.slipInfo = void 0;
  6089. this.skidInfo = void 0;
  6090. this.suspensionLength = void 0;
  6091. this.sideImpulse = void 0;
  6092. this.forwardImpulse = void 0;
  6093. this.raycastResult = void 0;
  6094. this.worldTransform = void 0;
  6095. this.isInContact = void 0;
  6096. options = Utils.defaults(options, {
  6097. chassisConnectionPointLocal: new Vec3(),
  6098. chassisConnectionPointWorld: new Vec3(),
  6099. directionLocal: new Vec3(),
  6100. directionWorld: new Vec3(),
  6101. axleLocal: new Vec3(),
  6102. axleWorld: new Vec3(),
  6103. suspensionRestLength: 1,
  6104. suspensionMaxLength: 2,
  6105. radius: 1,
  6106. suspensionStiffness: 100,
  6107. dampingCompression: 10,
  6108. dampingRelaxation: 10,
  6109. frictionSlip: 10.5,
  6110. forwardAcceleration: 1,
  6111. sideAcceleration: 1,
  6112. steering: 0,
  6113. rotation: 0,
  6114. deltaRotation: 0,
  6115. rollInfluence: 0.01,
  6116. maxSuspensionForce: Number.MAX_VALUE,
  6117. isFrontWheel: true,
  6118. clippedInvContactDotSuspension: 1,
  6119. suspensionRelativeVelocity: 0,
  6120. suspensionForce: 0,
  6121. slipInfo: 0,
  6122. skidInfo: 0,
  6123. suspensionLength: 0,
  6124. maxSuspensionTravel: 1,
  6125. useCustomSlidingRotationalSpeed: false,
  6126. customSlidingRotationalSpeed: -0.1
  6127. });
  6128. this.maxSuspensionTravel = options.maxSuspensionTravel;
  6129. this.customSlidingRotationalSpeed = options.customSlidingRotationalSpeed;
  6130. this.useCustomSlidingRotationalSpeed = options.useCustomSlidingRotationalSpeed;
  6131. this.sliding = false;
  6132. this.chassisConnectionPointLocal = options.chassisConnectionPointLocal.clone();
  6133. this.chassisConnectionPointWorld = options.chassisConnectionPointWorld.clone();
  6134. this.directionLocal = options.directionLocal.clone();
  6135. this.directionWorld = options.directionWorld.clone();
  6136. this.axleLocal = options.axleLocal.clone();
  6137. this.axleWorld = options.axleWorld.clone();
  6138. this.suspensionRestLength = options.suspensionRestLength;
  6139. this.suspensionMaxLength = options.suspensionMaxLength;
  6140. this.radius = options.radius;
  6141. this.suspensionStiffness = options.suspensionStiffness;
  6142. this.dampingCompression = options.dampingCompression;
  6143. this.dampingRelaxation = options.dampingRelaxation;
  6144. this.frictionSlip = options.frictionSlip;
  6145. this.forwardAcceleration = options.forwardAcceleration;
  6146. this.sideAcceleration = options.sideAcceleration;
  6147. this.steering = 0;
  6148. this.rotation = 0;
  6149. this.deltaRotation = 0;
  6150. this.rollInfluence = options.rollInfluence;
  6151. this.maxSuspensionForce = options.maxSuspensionForce;
  6152. this.engineForce = 0;
  6153. this.brake = 0;
  6154. this.isFrontWheel = options.isFrontWheel;
  6155. this.clippedInvContactDotSuspension = 1;
  6156. this.suspensionRelativeVelocity = 0;
  6157. this.suspensionForce = 0;
  6158. this.slipInfo = 0;
  6159. this.skidInfo = 0;
  6160. this.suspensionLength = 0;
  6161. this.sideImpulse = 0;
  6162. this.forwardImpulse = 0;
  6163. this.raycastResult = new RaycastResult();
  6164. this.worldTransform = new Transform();
  6165. this.isInContact = false;
  6166. }
  6167. updateWheel(chassis) {
  6168. const raycastResult = this.raycastResult;
  6169. if (this.isInContact) {
  6170. const project = raycastResult.hitNormalWorld.dot(raycastResult.directionWorld);
  6171. raycastResult.hitPointWorld.vsub(chassis.position, relpos);
  6172. chassis.getVelocityAtWorldPoint(relpos, chassis_velocity_at_contactPoint);
  6173. const projVel = raycastResult.hitNormalWorld.dot(chassis_velocity_at_contactPoint);
  6174. if (project >= -0.1) {
  6175. this.suspensionRelativeVelocity = 0.0;
  6176. this.clippedInvContactDotSuspension = 1.0 / 0.1;
  6177. } else {
  6178. const inv = -1 / project;
  6179. this.suspensionRelativeVelocity = projVel * inv;
  6180. this.clippedInvContactDotSuspension = inv;
  6181. }
  6182. } else {
  6183. // Not in contact : position wheel in a nice (rest length) position
  6184. raycastResult.suspensionLength = this.suspensionRestLength;
  6185. this.suspensionRelativeVelocity = 0.0;
  6186. raycastResult.directionWorld.scale(-1, raycastResult.hitNormalWorld);
  6187. this.clippedInvContactDotSuspension = 1.0;
  6188. }
  6189. }
  6190. }
  6191. const chassis_velocity_at_contactPoint = new Vec3();
  6192. const relpos = new Vec3();
  6193. /**
  6194. * Vehicle helper class that casts rays from the wheel positions towards the ground and applies forces.
  6195. */
  6196. class RaycastVehicle {
  6197. /** The car chassis body. */
  6198. /** The wheels. */
  6199. /** Will be set to true if the car is sliding. */
  6200. /** Index of the right axis. x=0, y=1, z=2 */
  6201. /** Index of the forward axis. x=0, y=1, z=2 */
  6202. /** Index of the up axis. x=0, y=1, z=2 */
  6203. /** The constraints. */
  6204. /** Optional pre-step callback. */
  6205. /** Number of wheels on the ground. */
  6206. constructor(options) {
  6207. this.chassisBody = void 0;
  6208. this.wheelInfos = void 0;
  6209. this.sliding = void 0;
  6210. this.world = void 0;
  6211. this.indexRightAxis = void 0;
  6212. this.indexForwardAxis = void 0;
  6213. this.indexUpAxis = void 0;
  6214. this.constraints = void 0;
  6215. this.preStepCallback = void 0;
  6216. this.currentVehicleSpeedKmHour = void 0;
  6217. this.numWheelsOnGround = void 0;
  6218. this.chassisBody = options.chassisBody;
  6219. this.wheelInfos = [];
  6220. this.sliding = false;
  6221. this.world = null;
  6222. this.indexRightAxis = typeof options.indexRightAxis !== 'undefined' ? options.indexRightAxis : 2;
  6223. this.indexForwardAxis = typeof options.indexForwardAxis !== 'undefined' ? options.indexForwardAxis : 0;
  6224. this.indexUpAxis = typeof options.indexUpAxis !== 'undefined' ? options.indexUpAxis : 1;
  6225. this.constraints = [];
  6226. this.preStepCallback = () => {};
  6227. this.currentVehicleSpeedKmHour = 0;
  6228. this.numWheelsOnGround = 0;
  6229. }
  6230. /**
  6231. * Add a wheel. For information about the options, see `WheelInfo`.
  6232. */
  6233. addWheel(options = {}) {
  6234. const info = new WheelInfo(options);
  6235. const index = this.wheelInfos.length;
  6236. this.wheelInfos.push(info);
  6237. return index;
  6238. }
  6239. /**
  6240. * Set the steering value of a wheel.
  6241. */
  6242. setSteeringValue(value, wheelIndex) {
  6243. const wheel = this.wheelInfos[wheelIndex];
  6244. wheel.steering = value;
  6245. }
  6246. /**
  6247. * Set the wheel force to apply on one of the wheels each time step
  6248. */
  6249. applyEngineForce(value, wheelIndex) {
  6250. this.wheelInfos[wheelIndex].engineForce = value;
  6251. }
  6252. /**
  6253. * Set the braking force of a wheel
  6254. */
  6255. setBrake(brake, wheelIndex) {
  6256. this.wheelInfos[wheelIndex].brake = brake;
  6257. }
  6258. /**
  6259. * Add the vehicle including its constraints to the world.
  6260. */
  6261. addToWorld(world) {
  6262. world.addBody(this.chassisBody);
  6263. const that = this;
  6264. this.preStepCallback = () => {
  6265. that.updateVehicle(world.dt);
  6266. };
  6267. world.addEventListener('preStep', this.preStepCallback);
  6268. this.world = world;
  6269. }
  6270. /**
  6271. * Get one of the wheel axles, world-oriented.
  6272. */
  6273. getVehicleAxisWorld(axisIndex, result) {
  6274. result.set(axisIndex === 0 ? 1 : 0, axisIndex === 1 ? 1 : 0, axisIndex === 2 ? 1 : 0);
  6275. this.chassisBody.vectorToWorldFrame(result, result);
  6276. }
  6277. updateVehicle(timeStep) {
  6278. const wheelInfos = this.wheelInfos;
  6279. const numWheels = wheelInfos.length;
  6280. const chassisBody = this.chassisBody;
  6281. for (let i = 0; i < numWheels; i++) {
  6282. this.updateWheelTransform(i);
  6283. }
  6284. this.currentVehicleSpeedKmHour = 3.6 * chassisBody.velocity.length();
  6285. const forwardWorld = new Vec3();
  6286. this.getVehicleAxisWorld(this.indexForwardAxis, forwardWorld);
  6287. if (forwardWorld.dot(chassisBody.velocity) < 0) {
  6288. this.currentVehicleSpeedKmHour *= -1;
  6289. } // simulate suspension
  6290. for (let i = 0; i < numWheels; i++) {
  6291. this.castRay(wheelInfos[i]);
  6292. }
  6293. this.updateSuspension(timeStep);
  6294. const impulse = new Vec3();
  6295. const relpos = new Vec3();
  6296. for (let i = 0; i < numWheels; i++) {
  6297. //apply suspension force
  6298. const wheel = wheelInfos[i];
  6299. let suspensionForce = wheel.suspensionForce;
  6300. if (suspensionForce > wheel.maxSuspensionForce) {
  6301. suspensionForce = wheel.maxSuspensionForce;
  6302. }
  6303. wheel.raycastResult.hitNormalWorld.scale(suspensionForce * timeStep, impulse);
  6304. wheel.raycastResult.hitPointWorld.vsub(chassisBody.position, relpos);
  6305. chassisBody.applyImpulse(impulse, relpos);
  6306. }
  6307. this.updateFriction(timeStep);
  6308. const hitNormalWorldScaledWithProj = new Vec3();
  6309. const fwd = new Vec3();
  6310. const vel = new Vec3();
  6311. for (let i = 0; i < numWheels; i++) {
  6312. const wheel = wheelInfos[i]; //const relpos = new Vec3();
  6313. //wheel.chassisConnectionPointWorld.vsub(chassisBody.position, relpos);
  6314. chassisBody.getVelocityAtWorldPoint(wheel.chassisConnectionPointWorld, vel); // Hack to get the rotation in the correct direction
  6315. let m = 1;
  6316. switch (this.indexUpAxis) {
  6317. case 1:
  6318. m = -1;
  6319. break;
  6320. }
  6321. if (wheel.isInContact) {
  6322. this.getVehicleAxisWorld(this.indexForwardAxis, fwd);
  6323. const proj = fwd.dot(wheel.raycastResult.hitNormalWorld);
  6324. wheel.raycastResult.hitNormalWorld.scale(proj, hitNormalWorldScaledWithProj);
  6325. fwd.vsub(hitNormalWorldScaledWithProj, fwd);
  6326. const proj2 = fwd.dot(vel);
  6327. wheel.deltaRotation = m * proj2 * timeStep / wheel.radius;
  6328. }
  6329. if ((wheel.sliding || !wheel.isInContact) && wheel.engineForce !== 0 && wheel.useCustomSlidingRotationalSpeed) {
  6330. // Apply custom rotation when accelerating and sliding
  6331. wheel.deltaRotation = (wheel.engineForce > 0 ? 1 : -1) * wheel.customSlidingRotationalSpeed * timeStep;
  6332. } // Lock wheels
  6333. if (Math.abs(wheel.brake) > Math.abs(wheel.engineForce)) {
  6334. wheel.deltaRotation = 0;
  6335. }
  6336. wheel.rotation += wheel.deltaRotation; // Use the old value
  6337. wheel.deltaRotation *= 0.99; // damping of rotation when not in contact
  6338. }
  6339. }
  6340. updateSuspension(deltaTime) {
  6341. const chassisBody = this.chassisBody;
  6342. const chassisMass = chassisBody.mass;
  6343. const wheelInfos = this.wheelInfos;
  6344. const numWheels = wheelInfos.length;
  6345. for (let w_it = 0; w_it < numWheels; w_it++) {
  6346. const wheel = wheelInfos[w_it];
  6347. if (wheel.isInContact) {
  6348. let force; // Spring
  6349. const susp_length = wheel.suspensionRestLength;
  6350. const current_length = wheel.suspensionLength;
  6351. const length_diff = susp_length - current_length;
  6352. force = wheel.suspensionStiffness * length_diff * wheel.clippedInvContactDotSuspension; // Damper
  6353. const projected_rel_vel = wheel.suspensionRelativeVelocity;
  6354. let susp_damping;
  6355. if (projected_rel_vel < 0) {
  6356. susp_damping = wheel.dampingCompression;
  6357. } else {
  6358. susp_damping = wheel.dampingRelaxation;
  6359. }
  6360. force -= susp_damping * projected_rel_vel;
  6361. wheel.suspensionForce = force * chassisMass;
  6362. if (wheel.suspensionForce < 0) {
  6363. wheel.suspensionForce = 0;
  6364. }
  6365. } else {
  6366. wheel.suspensionForce = 0;
  6367. }
  6368. }
  6369. }
  6370. /**
  6371. * Remove the vehicle including its constraints from the world.
  6372. */
  6373. removeFromWorld(world) {
  6374. this.constraints;
  6375. world.removeBody(this.chassisBody);
  6376. world.removeEventListener('preStep', this.preStepCallback);
  6377. this.world = null;
  6378. }
  6379. castRay(wheel) {
  6380. const rayvector = castRay_rayvector;
  6381. const target = castRay_target;
  6382. this.updateWheelTransformWorld(wheel);
  6383. const chassisBody = this.chassisBody;
  6384. let depth = -1;
  6385. const raylen = wheel.suspensionRestLength + wheel.radius;
  6386. wheel.directionWorld.scale(raylen, rayvector);
  6387. const source = wheel.chassisConnectionPointWorld;
  6388. source.vadd(rayvector, target);
  6389. const raycastResult = wheel.raycastResult;
  6390. raycastResult.reset(); // Turn off ray collision with the chassis temporarily
  6391. const oldState = chassisBody.collisionResponse;
  6392. chassisBody.collisionResponse = false; // Cast ray against world
  6393. this.world.rayTest(source, target, raycastResult);
  6394. chassisBody.collisionResponse = oldState;
  6395. const object = raycastResult.body;
  6396. wheel.raycastResult.groundObject = 0;
  6397. if (object) {
  6398. depth = raycastResult.distance;
  6399. wheel.raycastResult.hitNormalWorld = raycastResult.hitNormalWorld;
  6400. wheel.isInContact = true;
  6401. const hitDistance = raycastResult.distance;
  6402. wheel.suspensionLength = hitDistance - wheel.radius; // clamp on max suspension travel
  6403. const minSuspensionLength = wheel.suspensionRestLength - wheel.maxSuspensionTravel;
  6404. const maxSuspensionLength = wheel.suspensionRestLength + wheel.maxSuspensionTravel;
  6405. if (wheel.suspensionLength < minSuspensionLength) {
  6406. wheel.suspensionLength = minSuspensionLength;
  6407. }
  6408. if (wheel.suspensionLength > maxSuspensionLength) {
  6409. wheel.suspensionLength = maxSuspensionLength;
  6410. wheel.raycastResult.reset();
  6411. }
  6412. const denominator = wheel.raycastResult.hitNormalWorld.dot(wheel.directionWorld);
  6413. const chassis_velocity_at_contactPoint = new Vec3();
  6414. chassisBody.getVelocityAtWorldPoint(wheel.raycastResult.hitPointWorld, chassis_velocity_at_contactPoint);
  6415. const projVel = wheel.raycastResult.hitNormalWorld.dot(chassis_velocity_at_contactPoint);
  6416. if (denominator >= -0.1) {
  6417. wheel.suspensionRelativeVelocity = 0;
  6418. wheel.clippedInvContactDotSuspension = 1 / 0.1;
  6419. } else {
  6420. const inv = -1 / denominator;
  6421. wheel.suspensionRelativeVelocity = projVel * inv;
  6422. wheel.clippedInvContactDotSuspension = inv;
  6423. }
  6424. } else {
  6425. //put wheel info as in rest position
  6426. wheel.suspensionLength = wheel.suspensionRestLength + 0 * wheel.maxSuspensionTravel;
  6427. wheel.suspensionRelativeVelocity = 0.0;
  6428. wheel.directionWorld.scale(-1, wheel.raycastResult.hitNormalWorld);
  6429. wheel.clippedInvContactDotSuspension = 1.0;
  6430. }
  6431. return depth;
  6432. }
  6433. updateWheelTransformWorld(wheel) {
  6434. wheel.isInContact = false;
  6435. const chassisBody = this.chassisBody;
  6436. chassisBody.pointToWorldFrame(wheel.chassisConnectionPointLocal, wheel.chassisConnectionPointWorld);
  6437. chassisBody.vectorToWorldFrame(wheel.directionLocal, wheel.directionWorld);
  6438. chassisBody.vectorToWorldFrame(wheel.axleLocal, wheel.axleWorld);
  6439. }
  6440. /**
  6441. * Update one of the wheel transform.
  6442. * Note when rendering wheels: during each step, wheel transforms are updated BEFORE the chassis; ie. their position becomes invalid after the step. Thus when you render wheels, you must update wheel transforms before rendering them. See raycastVehicle demo for an example.
  6443. * @param wheelIndex The wheel index to update.
  6444. */
  6445. updateWheelTransform(wheelIndex) {
  6446. const up = tmpVec4;
  6447. const right = tmpVec5;
  6448. const fwd = tmpVec6;
  6449. const wheel = this.wheelInfos[wheelIndex];
  6450. this.updateWheelTransformWorld(wheel);
  6451. wheel.directionLocal.scale(-1, up);
  6452. right.copy(wheel.axleLocal);
  6453. up.cross(right, fwd);
  6454. fwd.normalize();
  6455. right.normalize(); // Rotate around steering over the wheelAxle
  6456. const steering = wheel.steering;
  6457. const steeringOrn = new Quaternion();
  6458. steeringOrn.setFromAxisAngle(up, steering);
  6459. const rotatingOrn = new Quaternion();
  6460. rotatingOrn.setFromAxisAngle(right, wheel.rotation); // World rotation of the wheel
  6461. const q = wheel.worldTransform.quaternion;
  6462. this.chassisBody.quaternion.mult(steeringOrn, q);
  6463. q.mult(rotatingOrn, q);
  6464. q.normalize(); // world position of the wheel
  6465. const p = wheel.worldTransform.position;
  6466. p.copy(wheel.directionWorld);
  6467. p.scale(wheel.suspensionLength, p);
  6468. p.vadd(wheel.chassisConnectionPointWorld, p);
  6469. }
  6470. /**
  6471. * Get the world transform of one of the wheels
  6472. */
  6473. getWheelTransformWorld(wheelIndex) {
  6474. return this.wheelInfos[wheelIndex].worldTransform;
  6475. }
  6476. updateFriction(timeStep) {
  6477. const surfNormalWS_scaled_proj = updateFriction_surfNormalWS_scaled_proj; //calculate the impulse, so that the wheels don't move sidewards
  6478. const wheelInfos = this.wheelInfos;
  6479. const numWheels = wheelInfos.length;
  6480. const chassisBody = this.chassisBody;
  6481. const forwardWS = updateFriction_forwardWS;
  6482. const axle = updateFriction_axle;
  6483. this.numWheelsOnGround = 0;
  6484. for (let i = 0; i < numWheels; i++) {
  6485. const wheel = wheelInfos[i];
  6486. const groundObject = wheel.raycastResult.body;
  6487. if (groundObject) {
  6488. this.numWheelsOnGround++;
  6489. }
  6490. wheel.sideImpulse = 0;
  6491. wheel.forwardImpulse = 0;
  6492. if (!forwardWS[i]) {
  6493. forwardWS[i] = new Vec3();
  6494. }
  6495. if (!axle[i]) {
  6496. axle[i] = new Vec3();
  6497. }
  6498. }
  6499. for (let i = 0; i < numWheels; i++) {
  6500. const wheel = wheelInfos[i];
  6501. const groundObject = wheel.raycastResult.body;
  6502. if (groundObject) {
  6503. const axlei = axle[i];
  6504. const wheelTrans = this.getWheelTransformWorld(i); // Get world axle
  6505. wheelTrans.vectorToWorldFrame(directions[this.indexRightAxis], axlei);
  6506. const surfNormalWS = wheel.raycastResult.hitNormalWorld;
  6507. const proj = axlei.dot(surfNormalWS);
  6508. surfNormalWS.scale(proj, surfNormalWS_scaled_proj);
  6509. axlei.vsub(surfNormalWS_scaled_proj, axlei);
  6510. axlei.normalize();
  6511. surfNormalWS.cross(axlei, forwardWS[i]);
  6512. forwardWS[i].normalize();
  6513. wheel.sideImpulse = resolveSingleBilateral(chassisBody, wheel.raycastResult.hitPointWorld, groundObject, wheel.raycastResult.hitPointWorld, axlei);
  6514. wheel.sideImpulse *= sideFrictionStiffness2;
  6515. }
  6516. }
  6517. const sideFactor = 1;
  6518. const fwdFactor = 0.5;
  6519. this.sliding = false;
  6520. for (let i = 0; i < numWheels; i++) {
  6521. const wheel = wheelInfos[i];
  6522. const groundObject = wheel.raycastResult.body;
  6523. let rollingFriction = 0;
  6524. wheel.slipInfo = 1;
  6525. if (groundObject) {
  6526. const defaultRollingFrictionImpulse = 0;
  6527. const maxImpulse = wheel.brake ? wheel.brake : defaultRollingFrictionImpulse; // btWheelContactPoint contactPt(chassisBody,groundObject,wheelInfraycastInfo.hitPointWorld,forwardWS[wheel],maxImpulse);
  6528. // rollingFriction = calcRollingFriction(contactPt);
  6529. rollingFriction = calcRollingFriction(chassisBody, groundObject, wheel.raycastResult.hitPointWorld, forwardWS[i], maxImpulse);
  6530. rollingFriction += wheel.engineForce * timeStep; // rollingFriction = 0;
  6531. const factor = maxImpulse / rollingFriction;
  6532. wheel.slipInfo *= factor;
  6533. } //switch between active rolling (throttle), braking and non-active rolling friction (nthrottle/break)
  6534. wheel.forwardImpulse = 0;
  6535. wheel.skidInfo = 1;
  6536. if (groundObject) {
  6537. wheel.skidInfo = 1;
  6538. const maximp = wheel.suspensionForce * timeStep * wheel.frictionSlip;
  6539. const maximpSide = maximp;
  6540. const maximpSquared = maximp * maximpSide;
  6541. wheel.forwardImpulse = rollingFriction; //wheelInfo.engineForce* timeStep;
  6542. const x = wheel.forwardImpulse * fwdFactor / wheel.forwardAcceleration;
  6543. const y = wheel.sideImpulse * sideFactor / wheel.sideAcceleration;
  6544. const impulseSquared = x * x + y * y;
  6545. wheel.sliding = false;
  6546. if (impulseSquared > maximpSquared) {
  6547. this.sliding = true;
  6548. wheel.sliding = true;
  6549. const factor = maximp / Math.sqrt(impulseSquared);
  6550. wheel.skidInfo *= factor;
  6551. }
  6552. }
  6553. }
  6554. if (this.sliding) {
  6555. for (let i = 0; i < numWheels; i++) {
  6556. const wheel = wheelInfos[i];
  6557. if (wheel.sideImpulse !== 0) {
  6558. if (wheel.skidInfo < 1) {
  6559. wheel.forwardImpulse *= wheel.skidInfo;
  6560. wheel.sideImpulse *= wheel.skidInfo;
  6561. }
  6562. }
  6563. }
  6564. } // apply the impulses
  6565. for (let i = 0; i < numWheels; i++) {
  6566. const wheel = wheelInfos[i];
  6567. const rel_pos = new Vec3();
  6568. wheel.raycastResult.hitPointWorld.vsub(chassisBody.position, rel_pos); // cannons applyimpulse is using world coord for the position
  6569. //rel_pos.copy(wheel.raycastResult.hitPointWorld);
  6570. if (wheel.forwardImpulse !== 0) {
  6571. const impulse = new Vec3();
  6572. forwardWS[i].scale(wheel.forwardImpulse, impulse);
  6573. chassisBody.applyImpulse(impulse, rel_pos);
  6574. }
  6575. if (wheel.sideImpulse !== 0) {
  6576. const groundObject = wheel.raycastResult.body;
  6577. const rel_pos2 = new Vec3();
  6578. wheel.raycastResult.hitPointWorld.vsub(groundObject.position, rel_pos2); //rel_pos2.copy(wheel.raycastResult.hitPointWorld);
  6579. const sideImp = new Vec3();
  6580. axle[i].scale(wheel.sideImpulse, sideImp); // Scale the relative position in the up direction with rollInfluence.
  6581. // If rollInfluence is 1, the impulse will be applied on the hitPoint (easy to roll over), if it is zero it will be applied in the same plane as the center of mass (not easy to roll over).
  6582. chassisBody.vectorToLocalFrame(rel_pos, rel_pos);
  6583. rel_pos['xyz'[this.indexUpAxis]] *= wheel.rollInfluence;
  6584. chassisBody.vectorToWorldFrame(rel_pos, rel_pos);
  6585. chassisBody.applyImpulse(sideImp, rel_pos); //apply friction impulse on the ground
  6586. sideImp.scale(-1, sideImp);
  6587. groundObject.applyImpulse(sideImp, rel_pos2);
  6588. }
  6589. }
  6590. }
  6591. }
  6592. const tmpVec4 = new Vec3();
  6593. const tmpVec5 = new Vec3();
  6594. const tmpVec6 = new Vec3();
  6595. new Ray();
  6596. const castRay_rayvector = new Vec3();
  6597. const castRay_target = new Vec3();
  6598. const directions = [new Vec3(1, 0, 0), new Vec3(0, 1, 0), new Vec3(0, 0, 1)];
  6599. const updateFriction_surfNormalWS_scaled_proj = new Vec3();
  6600. const updateFriction_axle = [];
  6601. const updateFriction_forwardWS = [];
  6602. const sideFrictionStiffness2 = 1;
  6603. const calcRollingFriction_vel1 = new Vec3();
  6604. const calcRollingFriction_vel2 = new Vec3();
  6605. const calcRollingFriction_vel = new Vec3();
  6606. function calcRollingFriction(body0, body1, frictionPosWorld, frictionDirectionWorld, maxImpulse) {
  6607. let j1 = 0;
  6608. const contactPosWorld = frictionPosWorld; // const rel_pos1 = new Vec3();
  6609. // const rel_pos2 = new Vec3();
  6610. const vel1 = calcRollingFriction_vel1;
  6611. const vel2 = calcRollingFriction_vel2;
  6612. const vel = calcRollingFriction_vel; // contactPosWorld.vsub(body0.position, rel_pos1);
  6613. // contactPosWorld.vsub(body1.position, rel_pos2);
  6614. body0.getVelocityAtWorldPoint(contactPosWorld, vel1);
  6615. body1.getVelocityAtWorldPoint(contactPosWorld, vel2);
  6616. vel1.vsub(vel2, vel);
  6617. const vrel = frictionDirectionWorld.dot(vel);
  6618. const denom0 = computeImpulseDenominator(body0, frictionPosWorld, frictionDirectionWorld);
  6619. const denom1 = computeImpulseDenominator(body1, frictionPosWorld, frictionDirectionWorld);
  6620. const relaxation = 1;
  6621. const jacDiagABInv = relaxation / (denom0 + denom1); // calculate j that moves us to zero relative velocity
  6622. j1 = -vrel * jacDiagABInv;
  6623. if (maxImpulse < j1) {
  6624. j1 = maxImpulse;
  6625. }
  6626. if (j1 < -maxImpulse) {
  6627. j1 = -maxImpulse;
  6628. }
  6629. return j1;
  6630. }
  6631. const computeImpulseDenominator_r0 = new Vec3();
  6632. const computeImpulseDenominator_c0 = new Vec3();
  6633. const computeImpulseDenominator_vec = new Vec3();
  6634. const computeImpulseDenominator_m = new Vec3();
  6635. function computeImpulseDenominator(body, pos, normal) {
  6636. const r0 = computeImpulseDenominator_r0;
  6637. const c0 = computeImpulseDenominator_c0;
  6638. const vec = computeImpulseDenominator_vec;
  6639. const m = computeImpulseDenominator_m;
  6640. pos.vsub(body.position, r0);
  6641. r0.cross(normal, c0);
  6642. body.invInertiaWorld.vmult(c0, m);
  6643. m.cross(r0, vec);
  6644. return body.invMass + normal.dot(vec);
  6645. }
  6646. const resolveSingleBilateral_vel1 = new Vec3();
  6647. const resolveSingleBilateral_vel2 = new Vec3();
  6648. const resolveSingleBilateral_vel = new Vec3(); // bilateral constraint between two dynamic objects
  6649. function resolveSingleBilateral(body1, pos1, body2, pos2, normal) {
  6650. const normalLenSqr = normal.lengthSquared();
  6651. if (normalLenSqr > 1.1) {
  6652. return 0; // no impulse
  6653. } // const rel_pos1 = new Vec3();
  6654. // const rel_pos2 = new Vec3();
  6655. // pos1.vsub(body1.position, rel_pos1);
  6656. // pos2.vsub(body2.position, rel_pos2);
  6657. const vel1 = resolveSingleBilateral_vel1;
  6658. const vel2 = resolveSingleBilateral_vel2;
  6659. const vel = resolveSingleBilateral_vel;
  6660. body1.getVelocityAtWorldPoint(pos1, vel1);
  6661. body2.getVelocityAtWorldPoint(pos2, vel2);
  6662. vel1.vsub(vel2, vel);
  6663. const rel_vel = normal.dot(vel);
  6664. const contactDamping = 0.2;
  6665. const massTerm = 1 / (body1.invMass + body2.invMass);
  6666. const impulse = -contactDamping * rel_vel * massTerm;
  6667. return impulse;
  6668. }
  6669. /**
  6670. * Spherical shape
  6671. * @example
  6672. * const radius = 1
  6673. * const sphereShape = new CANNON.Sphere(radius)
  6674. * const sphereBody = new CANNON.Body({ mass: 1, shape: sphereShape })
  6675. * world.addBody(sphereBody)
  6676. */
  6677. class Sphere extends Shape {
  6678. /**
  6679. * The radius of the sphere.
  6680. */
  6681. /**
  6682. *
  6683. * @param radius The radius of the sphere, a non-negative number.
  6684. */
  6685. constructor(radius) {
  6686. super({
  6687. type: Shape.types.SPHERE
  6688. });
  6689. this.radius = void 0;
  6690. this.radius = radius !== undefined ? radius : 1.0;
  6691. if (this.radius < 0) {
  6692. throw new Error('The sphere radius cannot be negative.');
  6693. }
  6694. this.updateBoundingSphereRadius();
  6695. }
  6696. /** calculateLocalInertia */
  6697. calculateLocalInertia(mass, target = new Vec3()) {
  6698. const I = 2.0 * mass * this.radius * this.radius / 5.0;
  6699. target.x = I;
  6700. target.y = I;
  6701. target.z = I;
  6702. return target;
  6703. }
  6704. /** volume */
  6705. volume() {
  6706. return 4.0 * Math.PI * Math.pow(this.radius, 3) / 3.0;
  6707. }
  6708. updateBoundingSphereRadius() {
  6709. this.boundingSphereRadius = this.radius;
  6710. }
  6711. calculateWorldAABB(pos, quat, min, max) {
  6712. const r = this.radius;
  6713. const axes = ['x', 'y', 'z'];
  6714. for (let i = 0; i < axes.length; i++) {
  6715. const ax = axes[i];
  6716. min[ax] = pos[ax] - r;
  6717. max[ax] = pos[ax] + r;
  6718. }
  6719. }
  6720. }
  6721. /**
  6722. * Simple vehicle helper class with spherical rigid body wheels.
  6723. */
  6724. class RigidVehicle {
  6725. /**
  6726. * The bodies of the wheels.
  6727. */
  6728. /**
  6729. * The chassis body.
  6730. */
  6731. /**
  6732. * The constraints.
  6733. */
  6734. /**
  6735. * The wheel axes.
  6736. */
  6737. /**
  6738. * The wheel forces.
  6739. */
  6740. constructor(options = {}) {
  6741. this.wheelBodies = void 0;
  6742. this.coordinateSystem = void 0;
  6743. this.chassisBody = void 0;
  6744. this.constraints = void 0;
  6745. this.wheelAxes = void 0;
  6746. this.wheelForces = void 0;
  6747. this.wheelBodies = [];
  6748. this.coordinateSystem = typeof options.coordinateSystem !== 'undefined' ? options.coordinateSystem.clone() : new Vec3(1, 2, 3);
  6749. if (options.chassisBody) {
  6750. this.chassisBody = options.chassisBody;
  6751. } else {
  6752. // No chassis body given. Create it!
  6753. this.chassisBody = new Body({
  6754. mass: 1,
  6755. shape: new Box(new Vec3(5, 0.5, 2))
  6756. });
  6757. }
  6758. this.constraints = [];
  6759. this.wheelAxes = [];
  6760. this.wheelForces = [];
  6761. }
  6762. /**
  6763. * Add a wheel
  6764. */
  6765. addWheel(options = {}) {
  6766. let wheelBody;
  6767. if (options.body) {
  6768. wheelBody = options.body;
  6769. } else {
  6770. // No wheel body given. Create it!
  6771. wheelBody = new Body({
  6772. mass: 1,
  6773. shape: new Sphere(1.2)
  6774. });
  6775. }
  6776. this.wheelBodies.push(wheelBody);
  6777. this.wheelForces.push(0); // Position constrain wheels
  6778. const position = typeof options.position !== 'undefined' ? options.position.clone() : new Vec3(); // Set position locally to the chassis
  6779. const worldPosition = new Vec3();
  6780. this.chassisBody.pointToWorldFrame(position, worldPosition);
  6781. wheelBody.position.set(worldPosition.x, worldPosition.y, worldPosition.z); // Constrain wheel
  6782. const axis = typeof options.axis !== 'undefined' ? options.axis.clone() : new Vec3(0, 0, 1);
  6783. this.wheelAxes.push(axis);
  6784. const hingeConstraint = new HingeConstraint(this.chassisBody, wheelBody, {
  6785. pivotA: position,
  6786. axisA: axis,
  6787. pivotB: Vec3.ZERO,
  6788. axisB: axis,
  6789. collideConnected: false
  6790. });
  6791. this.constraints.push(hingeConstraint);
  6792. return this.wheelBodies.length - 1;
  6793. }
  6794. /**
  6795. * Set the steering value of a wheel.
  6796. * @todo check coordinateSystem
  6797. */
  6798. setSteeringValue(value, wheelIndex) {
  6799. // Set angle of the hinge axis
  6800. const axis = this.wheelAxes[wheelIndex];
  6801. const c = Math.cos(value);
  6802. const s = Math.sin(value);
  6803. const x = axis.x;
  6804. const z = axis.z;
  6805. this.constraints[wheelIndex].axisA.set(-c * x + s * z, 0, s * x + c * z);
  6806. }
  6807. /**
  6808. * Set the target rotational speed of the hinge constraint.
  6809. */
  6810. setMotorSpeed(value, wheelIndex) {
  6811. const hingeConstraint = this.constraints[wheelIndex];
  6812. hingeConstraint.enableMotor();
  6813. hingeConstraint.motorTargetVelocity = value;
  6814. }
  6815. /**
  6816. * Set the target rotational speed of the hinge constraint.
  6817. */
  6818. disableMotor(wheelIndex) {
  6819. const hingeConstraint = this.constraints[wheelIndex];
  6820. hingeConstraint.disableMotor();
  6821. }
  6822. /**
  6823. * Set the wheel force to apply on one of the wheels each time step
  6824. */
  6825. setWheelForce(value, wheelIndex) {
  6826. this.wheelForces[wheelIndex] = value;
  6827. }
  6828. /**
  6829. * Apply a torque on one of the wheels.
  6830. */
  6831. applyWheelForce(value, wheelIndex) {
  6832. const axis = this.wheelAxes[wheelIndex];
  6833. const wheelBody = this.wheelBodies[wheelIndex];
  6834. const bodyTorque = wheelBody.torque;
  6835. axis.scale(value, torque);
  6836. wheelBody.vectorToWorldFrame(torque, torque);
  6837. bodyTorque.vadd(torque, bodyTorque);
  6838. }
  6839. /**
  6840. * Add the vehicle including its constraints to the world.
  6841. */
  6842. addToWorld(world) {
  6843. const constraints = this.constraints;
  6844. const bodies = this.wheelBodies.concat([this.chassisBody]);
  6845. for (let i = 0; i < bodies.length; i++) {
  6846. world.addBody(bodies[i]);
  6847. }
  6848. for (let i = 0; i < constraints.length; i++) {
  6849. world.addConstraint(constraints[i]);
  6850. }
  6851. world.addEventListener('preStep', this._update.bind(this));
  6852. }
  6853. _update() {
  6854. const wheelForces = this.wheelForces;
  6855. for (let i = 0; i < wheelForces.length; i++) {
  6856. this.applyWheelForce(wheelForces[i], i);
  6857. }
  6858. }
  6859. /**
  6860. * Remove the vehicle including its constraints from the world.
  6861. */
  6862. removeFromWorld(world) {
  6863. const constraints = this.constraints;
  6864. const bodies = this.wheelBodies.concat([this.chassisBody]);
  6865. for (let i = 0; i < bodies.length; i++) {
  6866. world.removeBody(bodies[i]);
  6867. }
  6868. for (let i = 0; i < constraints.length; i++) {
  6869. world.removeConstraint(constraints[i]);
  6870. }
  6871. }
  6872. /**
  6873. * Get current rotational velocity of a wheel
  6874. */
  6875. getWheelSpeed(wheelIndex) {
  6876. const axis = this.wheelAxes[wheelIndex];
  6877. const wheelBody = this.wheelBodies[wheelIndex];
  6878. const w = wheelBody.angularVelocity;
  6879. this.chassisBody.vectorToWorldFrame(axis, worldAxis);
  6880. return w.dot(worldAxis);
  6881. }
  6882. }
  6883. const torque = new Vec3();
  6884. const worldAxis = new Vec3();
  6885. /**
  6886. * Smoothed-particle hydrodynamics system
  6887. * @todo Make parameters customizable in the constructor
  6888. */
  6889. class SPHSystem {
  6890. /**
  6891. * The particles array.
  6892. */
  6893. /**
  6894. * Density of the system (kg/m3).
  6895. * @default 1
  6896. */
  6897. /**
  6898. * Distance below which two particles are considered to be neighbors.
  6899. * It should be adjusted so there are about 15-20 neighbor particles within this radius.
  6900. * @default 1
  6901. */
  6902. /**
  6903. * @default 1
  6904. */
  6905. /**
  6906. * Viscosity of the system.
  6907. * @default 0.01
  6908. */
  6909. /**
  6910. * @default 0.000001
  6911. */
  6912. constructor() {
  6913. this.particles = void 0;
  6914. this.density = void 0;
  6915. this.smoothingRadius = void 0;
  6916. this.speedOfSound = void 0;
  6917. this.viscosity = void 0;
  6918. this.eps = void 0;
  6919. this.pressures = void 0;
  6920. this.densities = void 0;
  6921. this.neighbors = void 0;
  6922. this.particles = [];
  6923. this.density = 1;
  6924. this.smoothingRadius = 1;
  6925. this.speedOfSound = 1;
  6926. this.viscosity = 0.01;
  6927. this.eps = 0.000001; // Stuff Computed per particle
  6928. this.pressures = [];
  6929. this.densities = [];
  6930. this.neighbors = [];
  6931. }
  6932. /**
  6933. * Add a particle to the system.
  6934. */
  6935. add(particle) {
  6936. this.particles.push(particle);
  6937. if (this.neighbors.length < this.particles.length) {
  6938. this.neighbors.push([]);
  6939. }
  6940. }
  6941. /**
  6942. * Remove a particle from the system.
  6943. */
  6944. remove(particle) {
  6945. const idx = this.particles.indexOf(particle);
  6946. if (idx !== -1) {
  6947. this.particles.splice(idx, 1);
  6948. if (this.neighbors.length > this.particles.length) {
  6949. this.neighbors.pop();
  6950. }
  6951. }
  6952. }
  6953. /**
  6954. * Get neighbors within smoothing volume, save in the array neighbors
  6955. */
  6956. getNeighbors(particle, neighbors) {
  6957. const N = this.particles.length;
  6958. const id = particle.id;
  6959. const R2 = this.smoothingRadius * this.smoothingRadius;
  6960. const dist = SPHSystem_getNeighbors_dist;
  6961. for (let i = 0; i !== N; i++) {
  6962. const p = this.particles[i];
  6963. p.position.vsub(particle.position, dist);
  6964. if (id !== p.id && dist.lengthSquared() < R2) {
  6965. neighbors.push(p);
  6966. }
  6967. }
  6968. }
  6969. update() {
  6970. const N = this.particles.length;
  6971. const dist = SPHSystem_update_dist;
  6972. const cs = this.speedOfSound;
  6973. const eps = this.eps;
  6974. for (let i = 0; i !== N; i++) {
  6975. const p = this.particles[i]; // Current particle
  6976. const neighbors = this.neighbors[i]; // Get neighbors
  6977. neighbors.length = 0;
  6978. this.getNeighbors(p, neighbors);
  6979. neighbors.push(this.particles[i]); // Add current too
  6980. const numNeighbors = neighbors.length; // Accumulate density for the particle
  6981. let sum = 0.0;
  6982. for (let j = 0; j !== numNeighbors; j++) {
  6983. //printf("Current particle has position %f %f %f\n",objects[id].pos.x(),objects[id].pos.y(),objects[id].pos.z());
  6984. p.position.vsub(neighbors[j].position, dist);
  6985. const len = dist.length();
  6986. const weight = this.w(len);
  6987. sum += neighbors[j].mass * weight;
  6988. } // Save
  6989. this.densities[i] = sum;
  6990. this.pressures[i] = cs * cs * (this.densities[i] - this.density);
  6991. } // Add forces
  6992. // Sum to these accelerations
  6993. const a_pressure = SPHSystem_update_a_pressure;
  6994. const a_visc = SPHSystem_update_a_visc;
  6995. const gradW = SPHSystem_update_gradW;
  6996. const r_vec = SPHSystem_update_r_vec;
  6997. const u = SPHSystem_update_u;
  6998. for (let i = 0; i !== N; i++) {
  6999. const particle = this.particles[i];
  7000. a_pressure.set(0, 0, 0);
  7001. a_visc.set(0, 0, 0); // Init vars
  7002. let Pij;
  7003. let nabla;
  7004. const neighbors = this.neighbors[i];
  7005. const numNeighbors = neighbors.length; //printf("Neighbors: ");
  7006. for (let j = 0; j !== numNeighbors; j++) {
  7007. const neighbor = neighbors[j]; //printf("%d ",nj);
  7008. // Get r once for all..
  7009. particle.position.vsub(neighbor.position, r_vec);
  7010. const r = r_vec.length(); // Pressure contribution
  7011. Pij = -neighbor.mass * (this.pressures[i] / (this.densities[i] * this.densities[i] + eps) + this.pressures[j] / (this.densities[j] * this.densities[j] + eps));
  7012. this.gradw(r_vec, gradW); // Add to pressure acceleration
  7013. gradW.scale(Pij, gradW);
  7014. a_pressure.vadd(gradW, a_pressure); // Viscosity contribution
  7015. neighbor.velocity.vsub(particle.velocity, u);
  7016. u.scale(1.0 / (0.0001 + this.densities[i] * this.densities[j]) * this.viscosity * neighbor.mass, u);
  7017. nabla = this.nablaw(r);
  7018. u.scale(nabla, u); // Add to viscosity acceleration
  7019. a_visc.vadd(u, a_visc);
  7020. } // Calculate force
  7021. a_visc.scale(particle.mass, a_visc);
  7022. a_pressure.scale(particle.mass, a_pressure); // Add force to particles
  7023. particle.force.vadd(a_visc, particle.force);
  7024. particle.force.vadd(a_pressure, particle.force);
  7025. }
  7026. } // Calculate the weight using the W(r) weightfunction
  7027. w(r) {
  7028. // 315
  7029. const h = this.smoothingRadius;
  7030. return 315.0 / (64.0 * Math.PI * h ** 9) * (h * h - r * r) ** 3;
  7031. } // calculate gradient of the weight function
  7032. gradw(rVec, resultVec) {
  7033. const r = rVec.length();
  7034. const h = this.smoothingRadius;
  7035. rVec.scale(945.0 / (32.0 * Math.PI * h ** 9) * (h * h - r * r) ** 2, resultVec);
  7036. } // Calculate nabla(W)
  7037. nablaw(r) {
  7038. const h = this.smoothingRadius;
  7039. const nabla = 945.0 / (32.0 * Math.PI * h ** 9) * (h * h - r * r) * (7 * r * r - 3 * h * h);
  7040. return nabla;
  7041. }
  7042. }
  7043. const SPHSystem_getNeighbors_dist = new Vec3(); // Temp vectors for calculation
  7044. const SPHSystem_update_dist = new Vec3(); // Relative velocity
  7045. const SPHSystem_update_a_pressure = new Vec3();
  7046. const SPHSystem_update_a_visc = new Vec3();
  7047. const SPHSystem_update_gradW = new Vec3();
  7048. const SPHSystem_update_r_vec = new Vec3();
  7049. const SPHSystem_update_u = new Vec3();
  7050. /**
  7051. * Cylinder class.
  7052. * @example
  7053. * const radiusTop = 0.5
  7054. * const radiusBottom = 0.5
  7055. * const height = 2
  7056. * const numSegments = 12
  7057. * const cylinderShape = new CANNON.Cylinder(radiusTop, radiusBottom, height, numSegments)
  7058. * const cylinderBody = new CANNON.Body({ mass: 1, shape: cylinderShape })
  7059. * world.addBody(cylinderBody)
  7060. */
  7061. class Cylinder extends ConvexPolyhedron {
  7062. /** The radius of the top of the Cylinder. */
  7063. /** The radius of the bottom of the Cylinder. */
  7064. /** The height of the Cylinder. */
  7065. /** The number of segments to build the cylinder out of. */
  7066. /**
  7067. * @param radiusTop The radius of the top of the Cylinder.
  7068. * @param radiusBottom The radius of the bottom of the Cylinder.
  7069. * @param height The height of the Cylinder.
  7070. * @param numSegments The number of segments to build the cylinder out of.
  7071. */
  7072. constructor(radiusTop = 1, radiusBottom = 1, height = 1, numSegments = 8) {
  7073. if (radiusTop < 0) {
  7074. throw new Error('The cylinder radiusTop cannot be negative.');
  7075. }
  7076. if (radiusBottom < 0) {
  7077. throw new Error('The cylinder radiusBottom cannot be negative.');
  7078. }
  7079. const N = numSegments;
  7080. const vertices = [];
  7081. const axes = [];
  7082. const faces = [];
  7083. const bottomface = [];
  7084. const topface = [];
  7085. const cos = Math.cos;
  7086. const sin = Math.sin; // First bottom point
  7087. vertices.push(new Vec3(-radiusBottom * sin(0), -height * 0.5, radiusBottom * cos(0)));
  7088. bottomface.push(0); // First top point
  7089. vertices.push(new Vec3(-radiusTop * sin(0), height * 0.5, radiusTop * cos(0)));
  7090. topface.push(1);
  7091. for (let i = 0; i < N; i++) {
  7092. const theta = 2 * Math.PI / N * (i + 1);
  7093. const thetaN = 2 * Math.PI / N * (i + 0.5);
  7094. if (i < N - 1) {
  7095. // Bottom
  7096. vertices.push(new Vec3(-radiusBottom * sin(theta), -height * 0.5, radiusBottom * cos(theta)));
  7097. bottomface.push(2 * i + 2); // Top
  7098. vertices.push(new Vec3(-radiusTop * sin(theta), height * 0.5, radiusTop * cos(theta)));
  7099. topface.push(2 * i + 3); // Face
  7100. faces.push([2 * i, 2 * i + 1, 2 * i + 3, 2 * i + 2]);
  7101. } else {
  7102. faces.push([2 * i, 2 * i + 1, 1, 0]); // Connect
  7103. } // Axis: we can cut off half of them if we have even number of segments
  7104. if (N % 2 === 1 || i < N / 2) {
  7105. axes.push(new Vec3(-sin(thetaN), 0, cos(thetaN)));
  7106. }
  7107. }
  7108. faces.push(bottomface);
  7109. axes.push(new Vec3(0, 1, 0)); // Reorder top face
  7110. const temp = [];
  7111. for (let i = 0; i < topface.length; i++) {
  7112. temp.push(topface[topface.length - i - 1]);
  7113. }
  7114. faces.push(temp);
  7115. super({
  7116. vertices,
  7117. faces,
  7118. axes
  7119. });
  7120. this.radiusTop = void 0;
  7121. this.radiusBottom = void 0;
  7122. this.height = void 0;
  7123. this.numSegments = void 0;
  7124. this.type = Shape.types.CYLINDER;
  7125. this.radiusTop = radiusTop;
  7126. this.radiusBottom = radiusBottom;
  7127. this.height = height;
  7128. this.numSegments = numSegments;
  7129. }
  7130. }
  7131. /**
  7132. * Particle shape.
  7133. * @example
  7134. * const particleShape = new CANNON.Particle()
  7135. * const particleBody = new CANNON.Body({ mass: 1, shape: particleShape })
  7136. * world.addBody(particleBody)
  7137. */
  7138. class Particle extends Shape {
  7139. constructor() {
  7140. super({
  7141. type: Shape.types.PARTICLE
  7142. });
  7143. }
  7144. /**
  7145. * calculateLocalInertia
  7146. */
  7147. calculateLocalInertia(mass, target = new Vec3()) {
  7148. target.set(0, 0, 0);
  7149. return target;
  7150. }
  7151. volume() {
  7152. return 0;
  7153. }
  7154. updateBoundingSphereRadius() {
  7155. this.boundingSphereRadius = 0;
  7156. }
  7157. calculateWorldAABB(pos, quat, min, max) {
  7158. // Get each axis max
  7159. min.copy(pos);
  7160. max.copy(pos);
  7161. }
  7162. }
  7163. /**
  7164. * A plane, facing in the Z direction. The plane has its surface at z=0 and everything below z=0 is assumed to be solid plane. To make the plane face in some other direction than z, you must put it inside a Body and rotate that body. See the demos.
  7165. * @example
  7166. * const planeShape = new CANNON.Plane()
  7167. * const planeBody = new CANNON.Body({ mass: 0, shape: planeShape })
  7168. * planeBody.quaternion.setFromEuler(-Math.PI / 2, 0, 0) // make it face up
  7169. * world.addBody(planeBody)
  7170. */
  7171. class Plane extends Shape {
  7172. /** worldNormal */
  7173. /** worldNormalNeedsUpdate */
  7174. constructor() {
  7175. super({
  7176. type: Shape.types.PLANE
  7177. }); // World oriented normal
  7178. this.worldNormal = void 0;
  7179. this.worldNormalNeedsUpdate = void 0;
  7180. this.boundingSphereRadius = void 0;
  7181. this.worldNormal = new Vec3();
  7182. this.worldNormalNeedsUpdate = true;
  7183. this.boundingSphereRadius = Number.MAX_VALUE;
  7184. }
  7185. /** computeWorldNormal */
  7186. computeWorldNormal(quat) {
  7187. const n = this.worldNormal;
  7188. n.set(0, 0, 1);
  7189. quat.vmult(n, n);
  7190. this.worldNormalNeedsUpdate = false;
  7191. }
  7192. calculateLocalInertia(mass, target = new Vec3()) {
  7193. return target;
  7194. }
  7195. volume() {
  7196. return (// The plane is infinite...
  7197. Number.MAX_VALUE
  7198. );
  7199. }
  7200. calculateWorldAABB(pos, quat, min, max) {
  7201. // The plane AABB is infinite, except if the normal is pointing along any axis
  7202. tempNormal.set(0, 0, 1); // Default plane normal is z
  7203. quat.vmult(tempNormal, tempNormal);
  7204. const maxVal = Number.MAX_VALUE;
  7205. min.set(-maxVal, -maxVal, -maxVal);
  7206. max.set(maxVal, maxVal, maxVal);
  7207. if (tempNormal.x === 1) {
  7208. max.x = pos.x;
  7209. } else if (tempNormal.x === -1) {
  7210. min.x = pos.x;
  7211. }
  7212. if (tempNormal.y === 1) {
  7213. max.y = pos.y;
  7214. } else if (tempNormal.y === -1) {
  7215. min.y = pos.y;
  7216. }
  7217. if (tempNormal.z === 1) {
  7218. max.z = pos.z;
  7219. } else if (tempNormal.z === -1) {
  7220. min.z = pos.z;
  7221. }
  7222. }
  7223. updateBoundingSphereRadius() {
  7224. this.boundingSphereRadius = Number.MAX_VALUE;
  7225. }
  7226. }
  7227. const tempNormal = new Vec3();
  7228. /**
  7229. * Heightfield shape class. Height data is given as an array. These data points are spread out evenly with a given distance.
  7230. * @todo Should be possible to use along all axes, not just y
  7231. * @todo should be possible to scale along all axes
  7232. * @todo Refactor elementSize to elementSizeX and elementSizeY
  7233. *
  7234. * @example
  7235. * // Generate some height data (y-values).
  7236. * const data = []
  7237. * for (let i = 0; i < 1000; i++) {
  7238. * const y = 0.5 * Math.cos(0.2 * i)
  7239. * data.push(y)
  7240. * }
  7241. *
  7242. * // Create the heightfield shape
  7243. * const heightfieldShape = new CANNON.Heightfield(data, {
  7244. * elementSize: 1 // Distance between the data points in X and Y directions
  7245. * })
  7246. * const heightfieldBody = new CANNON.Body({ shape: heightfieldShape })
  7247. * world.addBody(heightfieldBody)
  7248. */
  7249. class Heightfield extends Shape {
  7250. /**
  7251. * An array of numbers, or height values, that are spread out along the x axis.
  7252. */
  7253. /**
  7254. * Max value of the data points in the data array.
  7255. */
  7256. /**
  7257. * Minimum value of the data points in the data array.
  7258. */
  7259. /**
  7260. * World spacing between the data points in X and Y direction.
  7261. * @todo elementSizeX and Y
  7262. * @default 1
  7263. */
  7264. /**
  7265. * @default true
  7266. */
  7267. /**
  7268. * @param data An array of numbers, or height values, that are spread out along the x axis.
  7269. */
  7270. constructor(data, options = {}) {
  7271. options = Utils.defaults(options, {
  7272. maxValue: null,
  7273. minValue: null,
  7274. elementSize: 1
  7275. });
  7276. super({
  7277. type: Shape.types.HEIGHTFIELD
  7278. });
  7279. this.data = void 0;
  7280. this.maxValue = void 0;
  7281. this.minValue = void 0;
  7282. this.elementSize = void 0;
  7283. this.cacheEnabled = void 0;
  7284. this.pillarConvex = void 0;
  7285. this.pillarOffset = void 0;
  7286. this._cachedPillars = void 0;
  7287. this.data = data;
  7288. this.maxValue = options.maxValue;
  7289. this.minValue = options.minValue;
  7290. this.elementSize = options.elementSize;
  7291. if (options.minValue === null) {
  7292. this.updateMinValue();
  7293. }
  7294. if (options.maxValue === null) {
  7295. this.updateMaxValue();
  7296. }
  7297. this.cacheEnabled = true;
  7298. this.pillarConvex = new ConvexPolyhedron();
  7299. this.pillarOffset = new Vec3();
  7300. this.updateBoundingSphereRadius(); // "i_j_isUpper" => { convex: ..., offset: ... }
  7301. // for example:
  7302. // _cachedPillars["0_2_1"]
  7303. this._cachedPillars = {};
  7304. }
  7305. /**
  7306. * Call whenever you change the data array.
  7307. */
  7308. update() {
  7309. this._cachedPillars = {};
  7310. }
  7311. /**
  7312. * Update the `minValue` property
  7313. */
  7314. updateMinValue() {
  7315. const data = this.data;
  7316. let minValue = data[0][0];
  7317. for (let i = 0; i !== data.length; i++) {
  7318. for (let j = 0; j !== data[i].length; j++) {
  7319. const v = data[i][j];
  7320. if (v < minValue) {
  7321. minValue = v;
  7322. }
  7323. }
  7324. }
  7325. this.minValue = minValue;
  7326. }
  7327. /**
  7328. * Update the `maxValue` property
  7329. */
  7330. updateMaxValue() {
  7331. const data = this.data;
  7332. let maxValue = data[0][0];
  7333. for (let i = 0; i !== data.length; i++) {
  7334. for (let j = 0; j !== data[i].length; j++) {
  7335. const v = data[i][j];
  7336. if (v > maxValue) {
  7337. maxValue = v;
  7338. }
  7339. }
  7340. }
  7341. this.maxValue = maxValue;
  7342. }
  7343. /**
  7344. * Set the height value at an index. Don't forget to update maxValue and minValue after you're done.
  7345. */
  7346. setHeightValueAtIndex(xi, yi, value) {
  7347. const data = this.data;
  7348. data[xi][yi] = value; // Invalidate cache
  7349. this.clearCachedConvexTrianglePillar(xi, yi, false);
  7350. if (xi > 0) {
  7351. this.clearCachedConvexTrianglePillar(xi - 1, yi, true);
  7352. this.clearCachedConvexTrianglePillar(xi - 1, yi, false);
  7353. }
  7354. if (yi > 0) {
  7355. this.clearCachedConvexTrianglePillar(xi, yi - 1, true);
  7356. this.clearCachedConvexTrianglePillar(xi, yi - 1, false);
  7357. }
  7358. if (yi > 0 && xi > 0) {
  7359. this.clearCachedConvexTrianglePillar(xi - 1, yi - 1, true);
  7360. }
  7361. }
  7362. /**
  7363. * Get max/min in a rectangle in the matrix data
  7364. * @param result An array to store the results in.
  7365. * @return The result array, if it was passed in. Minimum will be at position 0 and max at 1.
  7366. */
  7367. getRectMinMax(iMinX, iMinY, iMaxX, iMaxY, result = []) {
  7368. // Get max and min of the data
  7369. const data = this.data; // Set first value
  7370. let max = this.minValue;
  7371. for (let i = iMinX; i <= iMaxX; i++) {
  7372. for (let j = iMinY; j <= iMaxY; j++) {
  7373. const height = data[i][j];
  7374. if (height > max) {
  7375. max = height;
  7376. }
  7377. }
  7378. }
  7379. result[0] = this.minValue;
  7380. result[1] = max;
  7381. }
  7382. /**
  7383. * Get the index of a local position on the heightfield. The indexes indicate the rectangles, so if your terrain is made of N x N height data points, you will have rectangle indexes ranging from 0 to N-1.
  7384. * @param result Two-element array
  7385. * @param clamp If the position should be clamped to the heightfield edge.
  7386. */
  7387. getIndexOfPosition(x, y, result, clamp) {
  7388. // Get the index of the data points to test against
  7389. const w = this.elementSize;
  7390. const data = this.data;
  7391. let xi = Math.floor(x / w);
  7392. let yi = Math.floor(y / w);
  7393. result[0] = xi;
  7394. result[1] = yi;
  7395. if (clamp) {
  7396. // Clamp index to edges
  7397. if (xi < 0) {
  7398. xi = 0;
  7399. }
  7400. if (yi < 0) {
  7401. yi = 0;
  7402. }
  7403. if (xi >= data.length - 1) {
  7404. xi = data.length - 1;
  7405. }
  7406. if (yi >= data[0].length - 1) {
  7407. yi = data[0].length - 1;
  7408. }
  7409. } // Bail out if we are out of the terrain
  7410. if (xi < 0 || yi < 0 || xi >= data.length - 1 || yi >= data[0].length - 1) {
  7411. return false;
  7412. }
  7413. return true;
  7414. }
  7415. getTriangleAt(x, y, edgeClamp, a, b, c) {
  7416. const idx = getHeightAt_idx;
  7417. this.getIndexOfPosition(x, y, idx, edgeClamp);
  7418. let xi = idx[0];
  7419. let yi = idx[1];
  7420. const data = this.data;
  7421. if (edgeClamp) {
  7422. xi = Math.min(data.length - 2, Math.max(0, xi));
  7423. yi = Math.min(data[0].length - 2, Math.max(0, yi));
  7424. }
  7425. const elementSize = this.elementSize;
  7426. const lowerDist2 = (x / elementSize - xi) ** 2 + (y / elementSize - yi) ** 2;
  7427. const upperDist2 = (x / elementSize - (xi + 1)) ** 2 + (y / elementSize - (yi + 1)) ** 2;
  7428. const upper = lowerDist2 > upperDist2;
  7429. this.getTriangle(xi, yi, upper, a, b, c);
  7430. return upper;
  7431. }
  7432. getNormalAt(x, y, edgeClamp, result) {
  7433. const a = getNormalAt_a;
  7434. const b = getNormalAt_b;
  7435. const c = getNormalAt_c;
  7436. const e0 = getNormalAt_e0;
  7437. const e1 = getNormalAt_e1;
  7438. this.getTriangleAt(x, y, edgeClamp, a, b, c);
  7439. b.vsub(a, e0);
  7440. c.vsub(a, e1);
  7441. e0.cross(e1, result);
  7442. result.normalize();
  7443. }
  7444. /**
  7445. * Get an AABB of a square in the heightfield
  7446. * @param xi
  7447. * @param yi
  7448. * @param result
  7449. */
  7450. getAabbAtIndex(xi, yi, {
  7451. lowerBound,
  7452. upperBound
  7453. }) {
  7454. const data = this.data;
  7455. const elementSize = this.elementSize;
  7456. lowerBound.set(xi * elementSize, yi * elementSize, data[xi][yi]);
  7457. upperBound.set((xi + 1) * elementSize, (yi + 1) * elementSize, data[xi + 1][yi + 1]);
  7458. }
  7459. /**
  7460. * Get the height in the heightfield at a given position
  7461. */
  7462. getHeightAt(x, y, edgeClamp) {
  7463. const data = this.data;
  7464. const a = getHeightAt_a;
  7465. const b = getHeightAt_b;
  7466. const c = getHeightAt_c;
  7467. const idx = getHeightAt_idx;
  7468. this.getIndexOfPosition(x, y, idx, edgeClamp);
  7469. let xi = idx[0];
  7470. let yi = idx[1];
  7471. if (edgeClamp) {
  7472. xi = Math.min(data.length - 2, Math.max(0, xi));
  7473. yi = Math.min(data[0].length - 2, Math.max(0, yi));
  7474. }
  7475. const upper = this.getTriangleAt(x, y, edgeClamp, a, b, c);
  7476. barycentricWeights(x, y, a.x, a.y, b.x, b.y, c.x, c.y, getHeightAt_weights);
  7477. const w = getHeightAt_weights;
  7478. if (upper) {
  7479. // Top triangle verts
  7480. return data[xi + 1][yi + 1] * w.x + data[xi][yi + 1] * w.y + data[xi + 1][yi] * w.z;
  7481. } else {
  7482. // Top triangle verts
  7483. return data[xi][yi] * w.x + data[xi + 1][yi] * w.y + data[xi][yi + 1] * w.z;
  7484. }
  7485. }
  7486. getCacheConvexTrianglePillarKey(xi, yi, getUpperTriangle) {
  7487. return xi + "_" + yi + "_" + (getUpperTriangle ? 1 : 0);
  7488. }
  7489. getCachedConvexTrianglePillar(xi, yi, getUpperTriangle) {
  7490. return this._cachedPillars[this.getCacheConvexTrianglePillarKey(xi, yi, getUpperTriangle)];
  7491. }
  7492. setCachedConvexTrianglePillar(xi, yi, getUpperTriangle, convex, offset) {
  7493. this._cachedPillars[this.getCacheConvexTrianglePillarKey(xi, yi, getUpperTriangle)] = {
  7494. convex,
  7495. offset
  7496. };
  7497. }
  7498. clearCachedConvexTrianglePillar(xi, yi, getUpperTriangle) {
  7499. delete this._cachedPillars[this.getCacheConvexTrianglePillarKey(xi, yi, getUpperTriangle)];
  7500. }
  7501. /**
  7502. * Get a triangle from the heightfield
  7503. */
  7504. getTriangle(xi, yi, upper, a, b, c) {
  7505. const data = this.data;
  7506. const elementSize = this.elementSize;
  7507. if (upper) {
  7508. // Top triangle verts
  7509. a.set((xi + 1) * elementSize, (yi + 1) * elementSize, data[xi + 1][yi + 1]);
  7510. b.set(xi * elementSize, (yi + 1) * elementSize, data[xi][yi + 1]);
  7511. c.set((xi + 1) * elementSize, yi * elementSize, data[xi + 1][yi]);
  7512. } else {
  7513. // Top triangle verts
  7514. a.set(xi * elementSize, yi * elementSize, data[xi][yi]);
  7515. b.set((xi + 1) * elementSize, yi * elementSize, data[xi + 1][yi]);
  7516. c.set(xi * elementSize, (yi + 1) * elementSize, data[xi][yi + 1]);
  7517. }
  7518. }
  7519. /**
  7520. * Get a triangle in the terrain in the form of a triangular convex shape.
  7521. */
  7522. getConvexTrianglePillar(xi, yi, getUpperTriangle) {
  7523. let result = this.pillarConvex;
  7524. let offsetResult = this.pillarOffset;
  7525. if (this.cacheEnabled) {
  7526. const data = this.getCachedConvexTrianglePillar(xi, yi, getUpperTriangle);
  7527. if (data) {
  7528. this.pillarConvex = data.convex;
  7529. this.pillarOffset = data.offset;
  7530. return;
  7531. }
  7532. result = new ConvexPolyhedron();
  7533. offsetResult = new Vec3();
  7534. this.pillarConvex = result;
  7535. this.pillarOffset = offsetResult;
  7536. }
  7537. const data = this.data;
  7538. const elementSize = this.elementSize;
  7539. const faces = result.faces; // Reuse verts if possible
  7540. result.vertices.length = 6;
  7541. for (let i = 0; i < 6; i++) {
  7542. if (!result.vertices[i]) {
  7543. result.vertices[i] = new Vec3();
  7544. }
  7545. } // Reuse faces if possible
  7546. faces.length = 5;
  7547. for (let i = 0; i < 5; i++) {
  7548. if (!faces[i]) {
  7549. faces[i] = [];
  7550. }
  7551. }
  7552. const verts = result.vertices;
  7553. const h = (Math.min(data[xi][yi], data[xi + 1][yi], data[xi][yi + 1], data[xi + 1][yi + 1]) - this.minValue) / 2 + this.minValue;
  7554. if (!getUpperTriangle) {
  7555. // Center of the triangle pillar - all polygons are given relative to this one
  7556. offsetResult.set((xi + 0.25) * elementSize, // sort of center of a triangle
  7557. (yi + 0.25) * elementSize, h // vertical center
  7558. ); // Top triangle verts
  7559. verts[0].set(-0.25 * elementSize, -0.25 * elementSize, data[xi][yi] - h);
  7560. verts[1].set(0.75 * elementSize, -0.25 * elementSize, data[xi + 1][yi] - h);
  7561. verts[2].set(-0.25 * elementSize, 0.75 * elementSize, data[xi][yi + 1] - h); // bottom triangle verts
  7562. verts[3].set(-0.25 * elementSize, -0.25 * elementSize, -Math.abs(h) - 1);
  7563. verts[4].set(0.75 * elementSize, -0.25 * elementSize, -Math.abs(h) - 1);
  7564. verts[5].set(-0.25 * elementSize, 0.75 * elementSize, -Math.abs(h) - 1); // top triangle
  7565. faces[0][0] = 0;
  7566. faces[0][1] = 1;
  7567. faces[0][2] = 2; // bottom triangle
  7568. faces[1][0] = 5;
  7569. faces[1][1] = 4;
  7570. faces[1][2] = 3; // -x facing quad
  7571. faces[2][0] = 0;
  7572. faces[2][1] = 2;
  7573. faces[2][2] = 5;
  7574. faces[2][3] = 3; // -y facing quad
  7575. faces[3][0] = 1;
  7576. faces[3][1] = 0;
  7577. faces[3][2] = 3;
  7578. faces[3][3] = 4; // +xy facing quad
  7579. faces[4][0] = 4;
  7580. faces[4][1] = 5;
  7581. faces[4][2] = 2;
  7582. faces[4][3] = 1;
  7583. } else {
  7584. // Center of the triangle pillar - all polygons are given relative to this one
  7585. offsetResult.set((xi + 0.75) * elementSize, // sort of center of a triangle
  7586. (yi + 0.75) * elementSize, h // vertical center
  7587. ); // Top triangle verts
  7588. verts[0].set(0.25 * elementSize, 0.25 * elementSize, data[xi + 1][yi + 1] - h);
  7589. verts[1].set(-0.75 * elementSize, 0.25 * elementSize, data[xi][yi + 1] - h);
  7590. verts[2].set(0.25 * elementSize, -0.75 * elementSize, data[xi + 1][yi] - h); // bottom triangle verts
  7591. verts[3].set(0.25 * elementSize, 0.25 * elementSize, -Math.abs(h) - 1);
  7592. verts[4].set(-0.75 * elementSize, 0.25 * elementSize, -Math.abs(h) - 1);
  7593. verts[5].set(0.25 * elementSize, -0.75 * elementSize, -Math.abs(h) - 1); // Top triangle
  7594. faces[0][0] = 0;
  7595. faces[0][1] = 1;
  7596. faces[0][2] = 2; // bottom triangle
  7597. faces[1][0] = 5;
  7598. faces[1][1] = 4;
  7599. faces[1][2] = 3; // +x facing quad
  7600. faces[2][0] = 2;
  7601. faces[2][1] = 5;
  7602. faces[2][2] = 3;
  7603. faces[2][3] = 0; // +y facing quad
  7604. faces[3][0] = 3;
  7605. faces[3][1] = 4;
  7606. faces[3][2] = 1;
  7607. faces[3][3] = 0; // -xy facing quad
  7608. faces[4][0] = 1;
  7609. faces[4][1] = 4;
  7610. faces[4][2] = 5;
  7611. faces[4][3] = 2;
  7612. }
  7613. result.computeNormals();
  7614. result.computeEdges();
  7615. result.updateBoundingSphereRadius();
  7616. this.setCachedConvexTrianglePillar(xi, yi, getUpperTriangle, result, offsetResult);
  7617. }
  7618. calculateLocalInertia(mass, target = new Vec3()) {
  7619. target.set(0, 0, 0);
  7620. return target;
  7621. }
  7622. volume() {
  7623. return (// The terrain is infinite
  7624. Number.MAX_VALUE
  7625. );
  7626. }
  7627. calculateWorldAABB(pos, quat, min, max) {
  7628. /** @TODO do it properly */
  7629. min.set(-Number.MAX_VALUE, -Number.MAX_VALUE, -Number.MAX_VALUE);
  7630. max.set(Number.MAX_VALUE, Number.MAX_VALUE, Number.MAX_VALUE);
  7631. }
  7632. updateBoundingSphereRadius() {
  7633. // Use the bounding box of the min/max values
  7634. const data = this.data;
  7635. const s = this.elementSize;
  7636. this.boundingSphereRadius = new Vec3(data.length * s, data[0].length * s, Math.max(Math.abs(this.maxValue), Math.abs(this.minValue))).length();
  7637. }
  7638. /**
  7639. * Sets the height values from an image. Currently only supported in browser.
  7640. */
  7641. setHeightsFromImage(image, scale) {
  7642. const {
  7643. x,
  7644. z,
  7645. y
  7646. } = scale;
  7647. const canvas = document.createElement('canvas');
  7648. canvas.width = image.width;
  7649. canvas.height = image.height;
  7650. const context = canvas.getContext('2d');
  7651. context.drawImage(image, 0, 0);
  7652. const imageData = context.getImageData(0, 0, image.width, image.height);
  7653. const matrix = this.data;
  7654. matrix.length = 0;
  7655. this.elementSize = Math.abs(x) / imageData.width;
  7656. for (let i = 0; i < imageData.height; i++) {
  7657. const row = [];
  7658. for (let j = 0; j < imageData.width; j++) {
  7659. const a = imageData.data[(i * imageData.height + j) * 4];
  7660. const b = imageData.data[(i * imageData.height + j) * 4 + 1];
  7661. const c = imageData.data[(i * imageData.height + j) * 4 + 2];
  7662. const height = (a + b + c) / 4 / 255 * z;
  7663. if (x < 0) {
  7664. row.push(height);
  7665. } else {
  7666. row.unshift(height);
  7667. }
  7668. }
  7669. if (y < 0) {
  7670. matrix.unshift(row);
  7671. } else {
  7672. matrix.push(row);
  7673. }
  7674. }
  7675. this.updateMaxValue();
  7676. this.updateMinValue();
  7677. this.update();
  7678. }
  7679. }
  7680. const getHeightAt_idx = [];
  7681. const getHeightAt_weights = new Vec3();
  7682. const getHeightAt_a = new Vec3();
  7683. const getHeightAt_b = new Vec3();
  7684. const getHeightAt_c = new Vec3();
  7685. const getNormalAt_a = new Vec3();
  7686. const getNormalAt_b = new Vec3();
  7687. const getNormalAt_c = new Vec3();
  7688. const getNormalAt_e0 = new Vec3();
  7689. const getNormalAt_e1 = new Vec3(); // from https://en.wikipedia.org/wiki/Barycentric_coordinate_system
  7690. function barycentricWeights(x, y, ax, ay, bx, by, cx, cy, result) {
  7691. result.x = ((by - cy) * (x - cx) + (cx - bx) * (y - cy)) / ((by - cy) * (ax - cx) + (cx - bx) * (ay - cy));
  7692. result.y = ((cy - ay) * (x - cx) + (ax - cx) * (y - cy)) / ((by - cy) * (ax - cx) + (cx - bx) * (ay - cy));
  7693. result.z = 1 - result.x - result.y;
  7694. }
  7695. /**
  7696. * OctreeNode
  7697. */
  7698. class OctreeNode {
  7699. /** The root node */
  7700. /** Boundary of this node */
  7701. /** Contained data at the current node level */
  7702. /** Children to this node */
  7703. constructor(options = {}) {
  7704. this.root = void 0;
  7705. this.aabb = void 0;
  7706. this.data = void 0;
  7707. this.children = void 0;
  7708. this.root = options.root || null;
  7709. this.aabb = options.aabb ? options.aabb.clone() : new AABB();
  7710. this.data = [];
  7711. this.children = [];
  7712. }
  7713. /**
  7714. * reset
  7715. */
  7716. reset() {
  7717. this.children.length = this.data.length = 0;
  7718. }
  7719. /**
  7720. * Insert data into this node
  7721. * @return True if successful, otherwise false
  7722. */
  7723. insert(aabb, elementData, level = 0) {
  7724. const nodeData = this.data; // Ignore objects that do not belong in this node
  7725. if (!this.aabb.contains(aabb)) {
  7726. return false; // object cannot be added
  7727. }
  7728. const children = this.children;
  7729. const maxDepth = this.maxDepth || this.root.maxDepth;
  7730. if (level < maxDepth) {
  7731. // Subdivide if there are no children yet
  7732. let subdivided = false;
  7733. if (!children.length) {
  7734. this.subdivide();
  7735. subdivided = true;
  7736. } // add to whichever node will accept it
  7737. for (let i = 0; i !== 8; i++) {
  7738. if (children[i].insert(aabb, elementData, level + 1)) {
  7739. return true;
  7740. }
  7741. }
  7742. if (subdivided) {
  7743. // No children accepted! Might as well just remove em since they contain none
  7744. children.length = 0;
  7745. }
  7746. } // Too deep, or children didnt want it. add it in current node
  7747. nodeData.push(elementData);
  7748. return true;
  7749. }
  7750. /**
  7751. * Create 8 equally sized children nodes and put them in the `children` array.
  7752. */
  7753. subdivide() {
  7754. const aabb = this.aabb;
  7755. const l = aabb.lowerBound;
  7756. const u = aabb.upperBound;
  7757. const children = this.children;
  7758. children.push(new OctreeNode({
  7759. aabb: new AABB({
  7760. lowerBound: new Vec3(0, 0, 0)
  7761. })
  7762. }), new OctreeNode({
  7763. aabb: new AABB({
  7764. lowerBound: new Vec3(1, 0, 0)
  7765. })
  7766. }), new OctreeNode({
  7767. aabb: new AABB({
  7768. lowerBound: new Vec3(1, 1, 0)
  7769. })
  7770. }), new OctreeNode({
  7771. aabb: new AABB({
  7772. lowerBound: new Vec3(1, 1, 1)
  7773. })
  7774. }), new OctreeNode({
  7775. aabb: new AABB({
  7776. lowerBound: new Vec3(0, 1, 1)
  7777. })
  7778. }), new OctreeNode({
  7779. aabb: new AABB({
  7780. lowerBound: new Vec3(0, 0, 1)
  7781. })
  7782. }), new OctreeNode({
  7783. aabb: new AABB({
  7784. lowerBound: new Vec3(1, 0, 1)
  7785. })
  7786. }), new OctreeNode({
  7787. aabb: new AABB({
  7788. lowerBound: new Vec3(0, 1, 0)
  7789. })
  7790. }));
  7791. u.vsub(l, halfDiagonal);
  7792. halfDiagonal.scale(0.5, halfDiagonal);
  7793. const root = this.root || this;
  7794. for (let i = 0; i !== 8; i++) {
  7795. const child = children[i]; // Set current node as root
  7796. child.root = root; // Compute bounds
  7797. const lowerBound = child.aabb.lowerBound;
  7798. lowerBound.x *= halfDiagonal.x;
  7799. lowerBound.y *= halfDiagonal.y;
  7800. lowerBound.z *= halfDiagonal.z;
  7801. lowerBound.vadd(l, lowerBound); // Upper bound is always lower bound + halfDiagonal
  7802. lowerBound.vadd(halfDiagonal, child.aabb.upperBound);
  7803. }
  7804. }
  7805. /**
  7806. * Get all data, potentially within an AABB
  7807. * @return The "result" object
  7808. */
  7809. aabbQuery(aabb, result) {
  7810. this.data; // abort if the range does not intersect this node
  7811. // if (!this.aabb.overlaps(aabb)){
  7812. // return result;
  7813. // }
  7814. // Add objects at this level
  7815. // Array.prototype.push.apply(result, nodeData);
  7816. // Add child data
  7817. // @todo unwrap recursion into a queue / loop, that's faster in JS
  7818. this.children; // for (let i = 0, N = this.children.length; i !== N; i++) {
  7819. // children[i].aabbQuery(aabb, result);
  7820. // }
  7821. const queue = [this];
  7822. while (queue.length) {
  7823. const node = queue.pop();
  7824. if (node.aabb.overlaps(aabb)) {
  7825. Array.prototype.push.apply(result, node.data);
  7826. }
  7827. Array.prototype.push.apply(queue, node.children);
  7828. }
  7829. return result;
  7830. }
  7831. /**
  7832. * Get all data, potentially intersected by a ray.
  7833. * @return The "result" object
  7834. */
  7835. rayQuery(ray, treeTransform, result) {
  7836. // Use aabb query for now.
  7837. /** @todo implement real ray query which needs less lookups */
  7838. ray.getAABB(tmpAABB);
  7839. tmpAABB.toLocalFrame(treeTransform, tmpAABB);
  7840. this.aabbQuery(tmpAABB, result);
  7841. return result;
  7842. }
  7843. /**
  7844. * removeEmptyNodes
  7845. */
  7846. removeEmptyNodes() {
  7847. for (let i = this.children.length - 1; i >= 0; i--) {
  7848. this.children[i].removeEmptyNodes();
  7849. if (!this.children[i].children.length && !this.children[i].data.length) {
  7850. this.children.splice(i, 1);
  7851. }
  7852. }
  7853. }
  7854. }
  7855. /**
  7856. * Octree
  7857. */
  7858. class Octree extends OctreeNode {
  7859. /**
  7860. * Maximum subdivision depth
  7861. * @default 8
  7862. */
  7863. /**
  7864. * @param aabb The total AABB of the tree
  7865. */
  7866. constructor(aabb, options = {}) {
  7867. super({
  7868. root: null,
  7869. aabb
  7870. });
  7871. this.maxDepth = void 0;
  7872. this.maxDepth = typeof options.maxDepth !== 'undefined' ? options.maxDepth : 8;
  7873. }
  7874. }
  7875. const halfDiagonal = new Vec3();
  7876. const tmpAABB = new AABB();
  7877. /**
  7878. * Trimesh.
  7879. * @example
  7880. * // How to make a mesh with a single triangle
  7881. * const vertices = [
  7882. * 0, 0, 0, // vertex 0
  7883. * 1, 0, 0, // vertex 1
  7884. * 0, 1, 0 // vertex 2
  7885. * ]
  7886. * const indices = [
  7887. * 0, 1, 2 // triangle 0
  7888. * ]
  7889. * const trimeshShape = new CANNON.Trimesh(vertices, indices)
  7890. */
  7891. class Trimesh extends Shape {
  7892. /**
  7893. * vertices
  7894. */
  7895. /**
  7896. * Array of integers, indicating which vertices each triangle consists of. The length of this array is thus 3 times the number of triangles.
  7897. */
  7898. /**
  7899. * The normals data.
  7900. */
  7901. /**
  7902. * The local AABB of the mesh.
  7903. */
  7904. /**
  7905. * References to vertex pairs, making up all unique edges in the trimesh.
  7906. */
  7907. /**
  7908. * Local scaling of the mesh. Use .setScale() to set it.
  7909. */
  7910. /**
  7911. * The indexed triangles. Use .updateTree() to update it.
  7912. */
  7913. constructor(vertices, indices) {
  7914. super({
  7915. type: Shape.types.TRIMESH
  7916. });
  7917. this.vertices = void 0;
  7918. this.indices = void 0;
  7919. this.normals = void 0;
  7920. this.aabb = void 0;
  7921. this.edges = void 0;
  7922. this.scale = void 0;
  7923. this.tree = void 0;
  7924. this.vertices = new Float32Array(vertices);
  7925. this.indices = new Int16Array(indices);
  7926. this.normals = new Float32Array(indices.length);
  7927. this.aabb = new AABB();
  7928. this.edges = null;
  7929. this.scale = new Vec3(1, 1, 1);
  7930. this.tree = new Octree();
  7931. this.updateEdges();
  7932. this.updateNormals();
  7933. this.updateAABB();
  7934. this.updateBoundingSphereRadius();
  7935. this.updateTree();
  7936. }
  7937. /**
  7938. * updateTree
  7939. */
  7940. updateTree() {
  7941. const tree = this.tree;
  7942. tree.reset();
  7943. tree.aabb.copy(this.aabb);
  7944. const scale = this.scale; // The local mesh AABB is scaled, but the octree AABB should be unscaled
  7945. tree.aabb.lowerBound.x *= 1 / scale.x;
  7946. tree.aabb.lowerBound.y *= 1 / scale.y;
  7947. tree.aabb.lowerBound.z *= 1 / scale.z;
  7948. tree.aabb.upperBound.x *= 1 / scale.x;
  7949. tree.aabb.upperBound.y *= 1 / scale.y;
  7950. tree.aabb.upperBound.z *= 1 / scale.z; // Insert all triangles
  7951. const triangleAABB = new AABB();
  7952. const a = new Vec3();
  7953. const b = new Vec3();
  7954. const c = new Vec3();
  7955. const points = [a, b, c];
  7956. for (let i = 0; i < this.indices.length / 3; i++) {
  7957. //this.getTriangleVertices(i, a, b, c);
  7958. // Get unscaled triangle verts
  7959. const i3 = i * 3;
  7960. this._getUnscaledVertex(this.indices[i3], a);
  7961. this._getUnscaledVertex(this.indices[i3 + 1], b);
  7962. this._getUnscaledVertex(this.indices[i3 + 2], c);
  7963. triangleAABB.setFromPoints(points);
  7964. tree.insert(triangleAABB, i);
  7965. }
  7966. tree.removeEmptyNodes();
  7967. }
  7968. /**
  7969. * Get triangles in a local AABB from the trimesh.
  7970. * @param result An array of integers, referencing the queried triangles.
  7971. */
  7972. getTrianglesInAABB(aabb, result) {
  7973. unscaledAABB.copy(aabb); // Scale it to local
  7974. const scale = this.scale;
  7975. const isx = scale.x;
  7976. const isy = scale.y;
  7977. const isz = scale.z;
  7978. const l = unscaledAABB.lowerBound;
  7979. const u = unscaledAABB.upperBound;
  7980. l.x /= isx;
  7981. l.y /= isy;
  7982. l.z /= isz;
  7983. u.x /= isx;
  7984. u.y /= isy;
  7985. u.z /= isz;
  7986. return this.tree.aabbQuery(unscaledAABB, result);
  7987. }
  7988. /**
  7989. * setScale
  7990. */
  7991. setScale(scale) {
  7992. const wasUniform = this.scale.x === this.scale.y && this.scale.y === this.scale.z;
  7993. const isUniform = scale.x === scale.y && scale.y === scale.z;
  7994. if (!(wasUniform && isUniform)) {
  7995. // Non-uniform scaling. Need to update normals.
  7996. this.updateNormals();
  7997. }
  7998. this.scale.copy(scale);
  7999. this.updateAABB();
  8000. this.updateBoundingSphereRadius();
  8001. }
  8002. /**
  8003. * Compute the normals of the faces. Will save in the `.normals` array.
  8004. */
  8005. updateNormals() {
  8006. const n = computeNormals_n; // Generate normals
  8007. const normals = this.normals;
  8008. for (let i = 0; i < this.indices.length / 3; i++) {
  8009. const i3 = i * 3;
  8010. const a = this.indices[i3];
  8011. const b = this.indices[i3 + 1];
  8012. const c = this.indices[i3 + 2];
  8013. this.getVertex(a, va);
  8014. this.getVertex(b, vb);
  8015. this.getVertex(c, vc);
  8016. Trimesh.computeNormal(vb, va, vc, n);
  8017. normals[i3] = n.x;
  8018. normals[i3 + 1] = n.y;
  8019. normals[i3 + 2] = n.z;
  8020. }
  8021. }
  8022. /**
  8023. * Update the `.edges` property
  8024. */
  8025. updateEdges() {
  8026. const edges = {};
  8027. const add = (a, b) => {
  8028. const key = a < b ? a + "_" + b : b + "_" + a;
  8029. edges[key] = true;
  8030. };
  8031. for (let i = 0; i < this.indices.length / 3; i++) {
  8032. const i3 = i * 3;
  8033. const a = this.indices[i3];
  8034. const b = this.indices[i3 + 1];
  8035. const c = this.indices[i3 + 2];
  8036. add(a, b);
  8037. add(b, c);
  8038. add(c, a);
  8039. }
  8040. const keys = Object.keys(edges);
  8041. this.edges = new Int16Array(keys.length * 2);
  8042. for (let i = 0; i < keys.length; i++) {
  8043. const indices = keys[i].split('_');
  8044. this.edges[2 * i] = parseInt(indices[0], 10);
  8045. this.edges[2 * i + 1] = parseInt(indices[1], 10);
  8046. }
  8047. }
  8048. /**
  8049. * Get an edge vertex
  8050. * @param firstOrSecond 0 or 1, depending on which one of the vertices you need.
  8051. * @param vertexStore Where to store the result
  8052. */
  8053. getEdgeVertex(edgeIndex, firstOrSecond, vertexStore) {
  8054. const vertexIndex = this.edges[edgeIndex * 2 + (firstOrSecond ? 1 : 0)];
  8055. this.getVertex(vertexIndex, vertexStore);
  8056. }
  8057. /**
  8058. * Get a vector along an edge.
  8059. */
  8060. getEdgeVector(edgeIndex, vectorStore) {
  8061. const va = getEdgeVector_va;
  8062. const vb = getEdgeVector_vb;
  8063. this.getEdgeVertex(edgeIndex, 0, va);
  8064. this.getEdgeVertex(edgeIndex, 1, vb);
  8065. vb.vsub(va, vectorStore);
  8066. }
  8067. /**
  8068. * Get face normal given 3 vertices
  8069. */
  8070. static computeNormal(va, vb, vc, target) {
  8071. vb.vsub(va, ab);
  8072. vc.vsub(vb, cb);
  8073. cb.cross(ab, target);
  8074. if (!target.isZero()) {
  8075. target.normalize();
  8076. }
  8077. }
  8078. /**
  8079. * Get vertex i.
  8080. * @return The "out" vector object
  8081. */
  8082. getVertex(i, out) {
  8083. const scale = this.scale;
  8084. this._getUnscaledVertex(i, out);
  8085. out.x *= scale.x;
  8086. out.y *= scale.y;
  8087. out.z *= scale.z;
  8088. return out;
  8089. }
  8090. /**
  8091. * Get raw vertex i
  8092. * @return The "out" vector object
  8093. */
  8094. _getUnscaledVertex(i, out) {
  8095. const i3 = i * 3;
  8096. const vertices = this.vertices;
  8097. return out.set(vertices[i3], vertices[i3 + 1], vertices[i3 + 2]);
  8098. }
  8099. /**
  8100. * Get a vertex from the trimesh,transformed by the given position and quaternion.
  8101. * @return The "out" vector object
  8102. */
  8103. getWorldVertex(i, pos, quat, out) {
  8104. this.getVertex(i, out);
  8105. Transform.pointToWorldFrame(pos, quat, out, out);
  8106. return out;
  8107. }
  8108. /**
  8109. * Get the three vertices for triangle i.
  8110. */
  8111. getTriangleVertices(i, a, b, c) {
  8112. const i3 = i * 3;
  8113. this.getVertex(this.indices[i3], a);
  8114. this.getVertex(this.indices[i3 + 1], b);
  8115. this.getVertex(this.indices[i3 + 2], c);
  8116. }
  8117. /**
  8118. * Compute the normal of triangle i.
  8119. * @return The "target" vector object
  8120. */
  8121. getNormal(i, target) {
  8122. const i3 = i * 3;
  8123. return target.set(this.normals[i3], this.normals[i3 + 1], this.normals[i3 + 2]);
  8124. }
  8125. /**
  8126. * @return The "target" vector object
  8127. */
  8128. calculateLocalInertia(mass, target) {
  8129. // Approximate with box inertia
  8130. // Exact inertia calculation is overkill, but see http://geometrictools.com/Documentation/PolyhedralMassProperties.pdf for the correct way to do it
  8131. this.computeLocalAABB(cli_aabb);
  8132. const x = cli_aabb.upperBound.x - cli_aabb.lowerBound.x;
  8133. const y = cli_aabb.upperBound.y - cli_aabb.lowerBound.y;
  8134. const z = cli_aabb.upperBound.z - cli_aabb.lowerBound.z;
  8135. return target.set(1.0 / 12.0 * mass * (2 * y * 2 * y + 2 * z * 2 * z), 1.0 / 12.0 * mass * (2 * x * 2 * x + 2 * z * 2 * z), 1.0 / 12.0 * mass * (2 * y * 2 * y + 2 * x * 2 * x));
  8136. }
  8137. /**
  8138. * Compute the local AABB for the trimesh
  8139. */
  8140. computeLocalAABB(aabb) {
  8141. const l = aabb.lowerBound;
  8142. const u = aabb.upperBound;
  8143. const n = this.vertices.length;
  8144. this.vertices;
  8145. const v = computeLocalAABB_worldVert;
  8146. this.getVertex(0, v);
  8147. l.copy(v);
  8148. u.copy(v);
  8149. for (let i = 0; i !== n; i++) {
  8150. this.getVertex(i, v);
  8151. if (v.x < l.x) {
  8152. l.x = v.x;
  8153. } else if (v.x > u.x) {
  8154. u.x = v.x;
  8155. }
  8156. if (v.y < l.y) {
  8157. l.y = v.y;
  8158. } else if (v.y > u.y) {
  8159. u.y = v.y;
  8160. }
  8161. if (v.z < l.z) {
  8162. l.z = v.z;
  8163. } else if (v.z > u.z) {
  8164. u.z = v.z;
  8165. }
  8166. }
  8167. }
  8168. /**
  8169. * Update the `.aabb` property
  8170. */
  8171. updateAABB() {
  8172. this.computeLocalAABB(this.aabb);
  8173. }
  8174. /**
  8175. * Will update the `.boundingSphereRadius` property
  8176. */
  8177. updateBoundingSphereRadius() {
  8178. // Assume points are distributed with local (0,0,0) as center
  8179. let max2 = 0;
  8180. const vertices = this.vertices;
  8181. const v = new Vec3();
  8182. for (let i = 0, N = vertices.length / 3; i !== N; i++) {
  8183. this.getVertex(i, v);
  8184. const norm2 = v.lengthSquared();
  8185. if (norm2 > max2) {
  8186. max2 = norm2;
  8187. }
  8188. }
  8189. this.boundingSphereRadius = Math.sqrt(max2);
  8190. }
  8191. /**
  8192. * calculateWorldAABB
  8193. */
  8194. calculateWorldAABB(pos, quat, min, max) {
  8195. /*
  8196. const n = this.vertices.length / 3,
  8197. verts = this.vertices;
  8198. const minx,miny,minz,maxx,maxy,maxz;
  8199. const v = tempWorldVertex;
  8200. for(let i=0; i<n; i++){
  8201. this.getVertex(i, v);
  8202. quat.vmult(v, v);
  8203. pos.vadd(v, v);
  8204. if (v.x < minx || minx===undefined){
  8205. minx = v.x;
  8206. } else if(v.x > maxx || maxx===undefined){
  8207. maxx = v.x;
  8208. }
  8209. if (v.y < miny || miny===undefined){
  8210. miny = v.y;
  8211. } else if(v.y > maxy || maxy===undefined){
  8212. maxy = v.y;
  8213. }
  8214. if (v.z < minz || minz===undefined){
  8215. minz = v.z;
  8216. } else if(v.z > maxz || maxz===undefined){
  8217. maxz = v.z;
  8218. }
  8219. }
  8220. min.set(minx,miny,minz);
  8221. max.set(maxx,maxy,maxz);
  8222. */
  8223. // Faster approximation using local AABB
  8224. const frame = calculateWorldAABB_frame;
  8225. const result = calculateWorldAABB_aabb;
  8226. frame.position = pos;
  8227. frame.quaternion = quat;
  8228. this.aabb.toWorldFrame(frame, result);
  8229. min.copy(result.lowerBound);
  8230. max.copy(result.upperBound);
  8231. }
  8232. /**
  8233. * Get approximate volume
  8234. */
  8235. volume() {
  8236. return 4.0 * Math.PI * this.boundingSphereRadius / 3.0;
  8237. }
  8238. /**
  8239. * Create a Trimesh instance, shaped as a torus.
  8240. */
  8241. static createTorus(radius = 1, tube = 0.5, radialSegments = 8, tubularSegments = 6, arc = Math.PI * 2) {
  8242. const vertices = [];
  8243. const indices = [];
  8244. for (let j = 0; j <= radialSegments; j++) {
  8245. for (let i = 0; i <= tubularSegments; i++) {
  8246. const u = i / tubularSegments * arc;
  8247. const v = j / radialSegments * Math.PI * 2;
  8248. const x = (radius + tube * Math.cos(v)) * Math.cos(u);
  8249. const y = (radius + tube * Math.cos(v)) * Math.sin(u);
  8250. const z = tube * Math.sin(v);
  8251. vertices.push(x, y, z);
  8252. }
  8253. }
  8254. for (let j = 1; j <= radialSegments; j++) {
  8255. for (let i = 1; i <= tubularSegments; i++) {
  8256. const a = (tubularSegments + 1) * j + i - 1;
  8257. const b = (tubularSegments + 1) * (j - 1) + i - 1;
  8258. const c = (tubularSegments + 1) * (j - 1) + i;
  8259. const d = (tubularSegments + 1) * j + i;
  8260. indices.push(a, b, d);
  8261. indices.push(b, c, d);
  8262. }
  8263. }
  8264. return new Trimesh(vertices, indices);
  8265. }
  8266. }
  8267. const computeNormals_n = new Vec3();
  8268. const unscaledAABB = new AABB();
  8269. const getEdgeVector_va = new Vec3();
  8270. const getEdgeVector_vb = new Vec3();
  8271. const cb = new Vec3();
  8272. const ab = new Vec3();
  8273. const va = new Vec3();
  8274. const vb = new Vec3();
  8275. const vc = new Vec3();
  8276. const cli_aabb = new AABB();
  8277. const computeLocalAABB_worldVert = new Vec3();
  8278. const calculateWorldAABB_frame = new Transform();
  8279. const calculateWorldAABB_aabb = new AABB();
  8280. /**
  8281. * Constraint equation solver base class.
  8282. */
  8283. class Solver {
  8284. /**
  8285. * All equations to be solved
  8286. */
  8287. /**
  8288. * @todo remove useless constructor
  8289. */
  8290. constructor() {
  8291. this.equations = void 0;
  8292. this.equations = [];
  8293. }
  8294. /**
  8295. * Should be implemented in subclasses!
  8296. * @todo use abstract
  8297. * @return number of iterations performed
  8298. */
  8299. solve(dt, world) {
  8300. return (// Should return the number of iterations done!
  8301. 0
  8302. );
  8303. }
  8304. /**
  8305. * Add an equation
  8306. */
  8307. addEquation(eq) {
  8308. if (eq.enabled && !eq.bi.isTrigger && !eq.bj.isTrigger) {
  8309. this.equations.push(eq);
  8310. }
  8311. }
  8312. /**
  8313. * Remove an equation
  8314. */
  8315. removeEquation(eq) {
  8316. const eqs = this.equations;
  8317. const i = eqs.indexOf(eq);
  8318. if (i !== -1) {
  8319. eqs.splice(i, 1);
  8320. }
  8321. }
  8322. /**
  8323. * Add all equations
  8324. */
  8325. removeAllEquations() {
  8326. this.equations.length = 0;
  8327. }
  8328. }
  8329. /**
  8330. * Constraint equation Gauss-Seidel solver.
  8331. * @todo The spook parameters should be specified for each constraint, not globally.
  8332. * @see https://www8.cs.umu.se/kurser/5DV058/VT09/lectures/spooknotes.pdf
  8333. */
  8334. class GSSolver extends Solver {
  8335. /**
  8336. * The number of solver iterations determines quality of the constraints in the world.
  8337. * The more iterations, the more correct simulation. More iterations need more computations though. If you have a large gravity force in your world, you will need more iterations.
  8338. */
  8339. /**
  8340. * When tolerance is reached, the system is assumed to be converged.
  8341. */
  8342. /**
  8343. * @todo remove useless constructor
  8344. */
  8345. constructor() {
  8346. super();
  8347. this.iterations = void 0;
  8348. this.tolerance = void 0;
  8349. this.iterations = 10;
  8350. this.tolerance = 1e-7;
  8351. }
  8352. /**
  8353. * Solve
  8354. * @return number of iterations performed
  8355. */
  8356. solve(dt, world) {
  8357. let iter = 0;
  8358. const maxIter = this.iterations;
  8359. const tolSquared = this.tolerance * this.tolerance;
  8360. const equations = this.equations;
  8361. const Neq = equations.length;
  8362. const bodies = world.bodies;
  8363. const Nbodies = bodies.length;
  8364. const h = dt;
  8365. let B;
  8366. let invC;
  8367. let deltalambda;
  8368. let deltalambdaTot;
  8369. let GWlambda;
  8370. let lambdaj; // Update solve mass
  8371. if (Neq !== 0) {
  8372. for (let i = 0; i !== Nbodies; i++) {
  8373. bodies[i].updateSolveMassProperties();
  8374. }
  8375. } // Things that do not change during iteration can be computed once
  8376. const invCs = GSSolver_solve_invCs;
  8377. const Bs = GSSolver_solve_Bs;
  8378. const lambda = GSSolver_solve_lambda;
  8379. invCs.length = Neq;
  8380. Bs.length = Neq;
  8381. lambda.length = Neq;
  8382. for (let i = 0; i !== Neq; i++) {
  8383. const c = equations[i];
  8384. lambda[i] = 0.0;
  8385. Bs[i] = c.computeB(h);
  8386. invCs[i] = 1.0 / c.computeC();
  8387. }
  8388. if (Neq !== 0) {
  8389. // Reset vlambda
  8390. for (let i = 0; i !== Nbodies; i++) {
  8391. const b = bodies[i];
  8392. const vlambda = b.vlambda;
  8393. const wlambda = b.wlambda;
  8394. vlambda.set(0, 0, 0);
  8395. wlambda.set(0, 0, 0);
  8396. } // Iterate over equations
  8397. for (iter = 0; iter !== maxIter; iter++) {
  8398. // Accumulate the total error for each iteration.
  8399. deltalambdaTot = 0.0;
  8400. for (let j = 0; j !== Neq; j++) {
  8401. const c = equations[j]; // Compute iteration
  8402. B = Bs[j];
  8403. invC = invCs[j];
  8404. lambdaj = lambda[j];
  8405. GWlambda = c.computeGWlambda();
  8406. deltalambda = invC * (B - GWlambda - c.eps * lambdaj); // Clamp if we are not within the min/max interval
  8407. if (lambdaj + deltalambda < c.minForce) {
  8408. deltalambda = c.minForce - lambdaj;
  8409. } else if (lambdaj + deltalambda > c.maxForce) {
  8410. deltalambda = c.maxForce - lambdaj;
  8411. }
  8412. lambda[j] += deltalambda;
  8413. deltalambdaTot += deltalambda > 0.0 ? deltalambda : -deltalambda; // abs(deltalambda)
  8414. c.addToWlambda(deltalambda);
  8415. } // If the total error is small enough - stop iterate
  8416. if (deltalambdaTot * deltalambdaTot < tolSquared) {
  8417. break;
  8418. }
  8419. } // Add result to velocity
  8420. for (let i = 0; i !== Nbodies; i++) {
  8421. const b = bodies[i];
  8422. const v = b.velocity;
  8423. const w = b.angularVelocity;
  8424. b.vlambda.vmul(b.linearFactor, b.vlambda);
  8425. v.vadd(b.vlambda, v);
  8426. b.wlambda.vmul(b.angularFactor, b.wlambda);
  8427. w.vadd(b.wlambda, w);
  8428. } // Set the `.multiplier` property of each equation
  8429. let l = equations.length;
  8430. const invDt = 1 / h;
  8431. while (l--) {
  8432. equations[l].multiplier = lambda[l] * invDt;
  8433. }
  8434. }
  8435. return iter;
  8436. }
  8437. } // Just temporary number holders that we want to reuse each iteration.
  8438. const GSSolver_solve_lambda = [];
  8439. const GSSolver_solve_invCs = [];
  8440. const GSSolver_solve_Bs = [];
  8441. /**
  8442. * Splits the equations into islands and solves them independently. Can improve performance.
  8443. */
  8444. class SplitSolver extends Solver {
  8445. /**
  8446. * The number of solver iterations determines quality of the constraints in the world. The more iterations, the more correct simulation. More iterations need more computations though. If you have a large gravity force in your world, you will need more iterations.
  8447. */
  8448. /**
  8449. * When tolerance is reached, the system is assumed to be converged.
  8450. */
  8451. /** subsolver */
  8452. constructor(subsolver) {
  8453. super();
  8454. this.iterations = void 0;
  8455. this.tolerance = void 0;
  8456. this.subsolver = void 0;
  8457. this.nodes = void 0;
  8458. this.nodePool = void 0;
  8459. this.iterations = 10;
  8460. this.tolerance = 1e-7;
  8461. this.subsolver = subsolver;
  8462. this.nodes = [];
  8463. this.nodePool = []; // Create needed nodes, reuse if possible
  8464. while (this.nodePool.length < 128) {
  8465. this.nodePool.push(this.createNode());
  8466. }
  8467. }
  8468. /**
  8469. * createNode
  8470. */
  8471. createNode() {
  8472. return {
  8473. body: null,
  8474. children: [],
  8475. eqs: [],
  8476. visited: false
  8477. };
  8478. }
  8479. /**
  8480. * Solve the subsystems
  8481. * @return number of iterations performed
  8482. */
  8483. solve(dt, world) {
  8484. const nodes = SplitSolver_solve_nodes;
  8485. const nodePool = this.nodePool;
  8486. const bodies = world.bodies;
  8487. const equations = this.equations;
  8488. const Neq = equations.length;
  8489. const Nbodies = bodies.length;
  8490. const subsolver = this.subsolver; // Create needed nodes, reuse if possible
  8491. while (nodePool.length < Nbodies) {
  8492. nodePool.push(this.createNode());
  8493. }
  8494. nodes.length = Nbodies;
  8495. for (let i = 0; i < Nbodies; i++) {
  8496. nodes[i] = nodePool[i];
  8497. } // Reset node values
  8498. for (let i = 0; i !== Nbodies; i++) {
  8499. const node = nodes[i];
  8500. node.body = bodies[i];
  8501. node.children.length = 0;
  8502. node.eqs.length = 0;
  8503. node.visited = false;
  8504. }
  8505. for (let k = 0; k !== Neq; k++) {
  8506. const eq = equations[k];
  8507. const i = bodies.indexOf(eq.bi);
  8508. const j = bodies.indexOf(eq.bj);
  8509. const ni = nodes[i];
  8510. const nj = nodes[j];
  8511. ni.children.push(nj);
  8512. ni.eqs.push(eq);
  8513. nj.children.push(ni);
  8514. nj.eqs.push(eq);
  8515. }
  8516. let child;
  8517. let n = 0;
  8518. let eqs = SplitSolver_solve_eqs;
  8519. subsolver.tolerance = this.tolerance;
  8520. subsolver.iterations = this.iterations;
  8521. const dummyWorld = SplitSolver_solve_dummyWorld;
  8522. while (child = getUnvisitedNode(nodes)) {
  8523. eqs.length = 0;
  8524. dummyWorld.bodies.length = 0;
  8525. bfs(child, visitFunc, dummyWorld.bodies, eqs);
  8526. const Neqs = eqs.length;
  8527. eqs = eqs.sort(sortById);
  8528. for (let i = 0; i !== Neqs; i++) {
  8529. subsolver.addEquation(eqs[i]);
  8530. }
  8531. subsolver.solve(dt, dummyWorld);
  8532. subsolver.removeAllEquations();
  8533. n++;
  8534. }
  8535. return n;
  8536. }
  8537. } // Returns the number of subsystems
  8538. const SplitSolver_solve_nodes = []; // All allocated node objects
  8539. const SplitSolver_solve_eqs = []; // Temp array
  8540. const SplitSolver_solve_dummyWorld = {
  8541. bodies: []
  8542. }; // Temp object
  8543. const STATIC = Body.STATIC;
  8544. function getUnvisitedNode(nodes) {
  8545. const Nnodes = nodes.length;
  8546. for (let i = 0; i !== Nnodes; i++) {
  8547. const node = nodes[i];
  8548. if (!node.visited && !(node.body.type & STATIC)) {
  8549. return node;
  8550. }
  8551. }
  8552. return false;
  8553. }
  8554. const queue = [];
  8555. function bfs(root, visitFunc, bds, eqs) {
  8556. queue.push(root);
  8557. root.visited = true;
  8558. visitFunc(root, bds, eqs);
  8559. while (queue.length) {
  8560. const node = queue.pop(); // Loop over unvisited child nodes
  8561. let child;
  8562. while (child = getUnvisitedNode(node.children)) {
  8563. child.visited = true;
  8564. visitFunc(child, bds, eqs);
  8565. queue.push(child);
  8566. }
  8567. }
  8568. }
  8569. function visitFunc(node, bds, eqs) {
  8570. bds.push(node.body);
  8571. const Neqs = node.eqs.length;
  8572. for (let i = 0; i !== Neqs; i++) {
  8573. const eq = node.eqs[i];
  8574. if (!eqs.includes(eq)) {
  8575. eqs.push(eq);
  8576. }
  8577. }
  8578. }
  8579. function sortById(a, b) {
  8580. return b.id - a.id;
  8581. }
  8582. /**
  8583. * For pooling objects that can be reused.
  8584. */
  8585. class Pool {
  8586. constructor() {
  8587. this.objects = [];
  8588. this.type = Object;
  8589. }
  8590. /**
  8591. * Release an object after use
  8592. */
  8593. release(...args) {
  8594. const Nargs = args.length;
  8595. for (let i = 0; i !== Nargs; i++) {
  8596. this.objects.push(args[i]);
  8597. }
  8598. return this;
  8599. }
  8600. /**
  8601. * Get an object
  8602. */
  8603. get() {
  8604. if (this.objects.length === 0) {
  8605. return this.constructObject();
  8606. } else {
  8607. return this.objects.pop();
  8608. }
  8609. }
  8610. /**
  8611. * Construct an object. Should be implemented in each subclass.
  8612. */
  8613. constructObject() {
  8614. throw new Error('constructObject() not implemented in this Pool subclass yet!');
  8615. }
  8616. /**
  8617. * @return Self, for chaining
  8618. */
  8619. resize(size) {
  8620. const objects = this.objects;
  8621. while (objects.length > size) {
  8622. objects.pop();
  8623. }
  8624. while (objects.length < size) {
  8625. objects.push(this.constructObject());
  8626. }
  8627. return this;
  8628. }
  8629. }
  8630. /**
  8631. * Vec3Pool
  8632. */
  8633. class Vec3Pool extends Pool {
  8634. constructor(...args) {
  8635. super(...args);
  8636. this.type = Vec3;
  8637. }
  8638. /**
  8639. * Construct a vector
  8640. */
  8641. constructObject() {
  8642. return new Vec3();
  8643. }
  8644. }
  8645. let _COLLISION_TYPES$sphe, _COLLISION_TYPES$sphe2, _COLLISION_TYPES$boxB, _COLLISION_TYPES$sphe3, _COLLISION_TYPES$plan, _COLLISION_TYPES$conv, _COLLISION_TYPES$sphe4, _COLLISION_TYPES$plan2, _COLLISION_TYPES$boxC, _COLLISION_TYPES$sphe5, _COLLISION_TYPES$boxH, _COLLISION_TYPES$conv2, _COLLISION_TYPES$sphe6, _COLLISION_TYPES$plan3, _COLLISION_TYPES$boxP, _COLLISION_TYPES$conv3, _COLLISION_TYPES$cyli, _COLLISION_TYPES$sphe7, _COLLISION_TYPES$plan4, _COLLISION_TYPES$boxC2, _COLLISION_TYPES$conv4, _COLLISION_TYPES$heig, _COLLISION_TYPES$part, _COLLISION_TYPES$sphe8, _COLLISION_TYPES$plan5;
  8646. // Naming rule: based of the order in SHAPE_TYPES,
  8647. // the first part of the method is formed by the
  8648. // shape type that comes before, in the second part
  8649. // there is the shape type that comes after in the SHAPE_TYPES list
  8650. const COLLISION_TYPES = {
  8651. sphereSphere: Shape.types.SPHERE,
  8652. spherePlane: Shape.types.SPHERE | Shape.types.PLANE,
  8653. boxBox: Shape.types.BOX | Shape.types.BOX,
  8654. sphereBox: Shape.types.SPHERE | Shape.types.BOX,
  8655. planeBox: Shape.types.PLANE | Shape.types.BOX,
  8656. convexConvex: Shape.types.CONVEXPOLYHEDRON,
  8657. sphereConvex: Shape.types.SPHERE | Shape.types.CONVEXPOLYHEDRON,
  8658. planeConvex: Shape.types.PLANE | Shape.types.CONVEXPOLYHEDRON,
  8659. boxConvex: Shape.types.BOX | Shape.types.CONVEXPOLYHEDRON,
  8660. sphereHeightfield: Shape.types.SPHERE | Shape.types.HEIGHTFIELD,
  8661. boxHeightfield: Shape.types.BOX | Shape.types.HEIGHTFIELD,
  8662. convexHeightfield: Shape.types.CONVEXPOLYHEDRON | Shape.types.HEIGHTFIELD,
  8663. sphereParticle: Shape.types.PARTICLE | Shape.types.SPHERE,
  8664. planeParticle: Shape.types.PLANE | Shape.types.PARTICLE,
  8665. boxParticle: Shape.types.BOX | Shape.types.PARTICLE,
  8666. convexParticle: Shape.types.PARTICLE | Shape.types.CONVEXPOLYHEDRON,
  8667. cylinderCylinder: Shape.types.CYLINDER,
  8668. sphereCylinder: Shape.types.SPHERE | Shape.types.CYLINDER,
  8669. planeCylinder: Shape.types.PLANE | Shape.types.CYLINDER,
  8670. boxCylinder: Shape.types.BOX | Shape.types.CYLINDER,
  8671. convexCylinder: Shape.types.CONVEXPOLYHEDRON | Shape.types.CYLINDER,
  8672. heightfieldCylinder: Shape.types.HEIGHTFIELD | Shape.types.CYLINDER,
  8673. particleCylinder: Shape.types.PARTICLE | Shape.types.CYLINDER,
  8674. sphereTrimesh: Shape.types.SPHERE | Shape.types.TRIMESH,
  8675. planeTrimesh: Shape.types.PLANE | Shape.types.TRIMESH
  8676. };
  8677. _COLLISION_TYPES$sphe = COLLISION_TYPES.sphereSphere;
  8678. _COLLISION_TYPES$sphe2 = COLLISION_TYPES.spherePlane;
  8679. _COLLISION_TYPES$boxB = COLLISION_TYPES.boxBox;
  8680. _COLLISION_TYPES$sphe3 = COLLISION_TYPES.sphereBox;
  8681. _COLLISION_TYPES$plan = COLLISION_TYPES.planeBox;
  8682. _COLLISION_TYPES$conv = COLLISION_TYPES.convexConvex;
  8683. _COLLISION_TYPES$sphe4 = COLLISION_TYPES.sphereConvex;
  8684. _COLLISION_TYPES$plan2 = COLLISION_TYPES.planeConvex;
  8685. _COLLISION_TYPES$boxC = COLLISION_TYPES.boxConvex;
  8686. _COLLISION_TYPES$sphe5 = COLLISION_TYPES.sphereHeightfield;
  8687. _COLLISION_TYPES$boxH = COLLISION_TYPES.boxHeightfield;
  8688. _COLLISION_TYPES$conv2 = COLLISION_TYPES.convexHeightfield;
  8689. _COLLISION_TYPES$sphe6 = COLLISION_TYPES.sphereParticle;
  8690. _COLLISION_TYPES$plan3 = COLLISION_TYPES.planeParticle;
  8691. _COLLISION_TYPES$boxP = COLLISION_TYPES.boxParticle;
  8692. _COLLISION_TYPES$conv3 = COLLISION_TYPES.convexParticle;
  8693. _COLLISION_TYPES$cyli = COLLISION_TYPES.cylinderCylinder;
  8694. _COLLISION_TYPES$sphe7 = COLLISION_TYPES.sphereCylinder;
  8695. _COLLISION_TYPES$plan4 = COLLISION_TYPES.planeCylinder;
  8696. _COLLISION_TYPES$boxC2 = COLLISION_TYPES.boxCylinder;
  8697. _COLLISION_TYPES$conv4 = COLLISION_TYPES.convexCylinder;
  8698. _COLLISION_TYPES$heig = COLLISION_TYPES.heightfieldCylinder;
  8699. _COLLISION_TYPES$part = COLLISION_TYPES.particleCylinder;
  8700. _COLLISION_TYPES$sphe8 = COLLISION_TYPES.sphereTrimesh;
  8701. _COLLISION_TYPES$plan5 = COLLISION_TYPES.planeTrimesh;
  8702. /**
  8703. * Helper class for the World. Generates ContactEquations.
  8704. * @todo Sphere-ConvexPolyhedron contacts
  8705. * @todo Contact reduction
  8706. * @todo should move methods to prototype
  8707. */
  8708. class Narrowphase {
  8709. /**
  8710. * Internal storage of pooled contact points.
  8711. */
  8712. /**
  8713. * Pooled vectors.
  8714. */
  8715. get [_COLLISION_TYPES$sphe]() {
  8716. return this.sphereSphere;
  8717. }
  8718. get [_COLLISION_TYPES$sphe2]() {
  8719. return this.spherePlane;
  8720. }
  8721. get [_COLLISION_TYPES$boxB]() {
  8722. return this.boxBox;
  8723. }
  8724. get [_COLLISION_TYPES$sphe3]() {
  8725. return this.sphereBox;
  8726. }
  8727. get [_COLLISION_TYPES$plan]() {
  8728. return this.planeBox;
  8729. }
  8730. get [_COLLISION_TYPES$conv]() {
  8731. return this.convexConvex;
  8732. }
  8733. get [_COLLISION_TYPES$sphe4]() {
  8734. return this.sphereConvex;
  8735. }
  8736. get [_COLLISION_TYPES$plan2]() {
  8737. return this.planeConvex;
  8738. }
  8739. get [_COLLISION_TYPES$boxC]() {
  8740. return this.boxConvex;
  8741. }
  8742. get [_COLLISION_TYPES$sphe5]() {
  8743. return this.sphereHeightfield;
  8744. }
  8745. get [_COLLISION_TYPES$boxH]() {
  8746. return this.boxHeightfield;
  8747. }
  8748. get [_COLLISION_TYPES$conv2]() {
  8749. return this.convexHeightfield;
  8750. }
  8751. get [_COLLISION_TYPES$sphe6]() {
  8752. return this.sphereParticle;
  8753. }
  8754. get [_COLLISION_TYPES$plan3]() {
  8755. return this.planeParticle;
  8756. }
  8757. get [_COLLISION_TYPES$boxP]() {
  8758. return this.boxParticle;
  8759. }
  8760. get [_COLLISION_TYPES$conv3]() {
  8761. return this.convexParticle;
  8762. }
  8763. get [_COLLISION_TYPES$cyli]() {
  8764. return this.convexConvex;
  8765. }
  8766. get [_COLLISION_TYPES$sphe7]() {
  8767. return this.sphereConvex;
  8768. }
  8769. get [_COLLISION_TYPES$plan4]() {
  8770. return this.planeConvex;
  8771. }
  8772. get [_COLLISION_TYPES$boxC2]() {
  8773. return this.boxConvex;
  8774. }
  8775. get [_COLLISION_TYPES$conv4]() {
  8776. return this.convexConvex;
  8777. }
  8778. get [_COLLISION_TYPES$heig]() {
  8779. return this.heightfieldCylinder;
  8780. }
  8781. get [_COLLISION_TYPES$part]() {
  8782. return this.particleCylinder;
  8783. }
  8784. get [_COLLISION_TYPES$sphe8]() {
  8785. return this.sphereTrimesh;
  8786. }
  8787. get [_COLLISION_TYPES$plan5]() {
  8788. return this.planeTrimesh;
  8789. } // get [COLLISION_TYPES.convexTrimesh]() {
  8790. // return this.convexTrimesh
  8791. // }
  8792. constructor(world) {
  8793. this.contactPointPool = void 0;
  8794. this.frictionEquationPool = void 0;
  8795. this.result = void 0;
  8796. this.frictionResult = void 0;
  8797. this.v3pool = void 0;
  8798. this.world = void 0;
  8799. this.currentContactMaterial = void 0;
  8800. this.enableFrictionReduction = void 0;
  8801. this.contactPointPool = [];
  8802. this.frictionEquationPool = [];
  8803. this.result = [];
  8804. this.frictionResult = [];
  8805. this.v3pool = new Vec3Pool();
  8806. this.world = world;
  8807. this.currentContactMaterial = world.defaultContactMaterial;
  8808. this.enableFrictionReduction = false;
  8809. }
  8810. /**
  8811. * Make a contact object, by using the internal pool or creating a new one.
  8812. */
  8813. createContactEquation(bi, bj, si, sj, overrideShapeA, overrideShapeB) {
  8814. let c;
  8815. if (this.contactPointPool.length) {
  8816. c = this.contactPointPool.pop();
  8817. c.bi = bi;
  8818. c.bj = bj;
  8819. } else {
  8820. c = new ContactEquation(bi, bj);
  8821. }
  8822. c.enabled = bi.collisionResponse && bj.collisionResponse && si.collisionResponse && sj.collisionResponse;
  8823. const cm = this.currentContactMaterial;
  8824. c.restitution = cm.restitution;
  8825. c.setSpookParams(cm.contactEquationStiffness, cm.contactEquationRelaxation, this.world.dt);
  8826. const matA = si.material || bi.material;
  8827. const matB = sj.material || bj.material;
  8828. if (matA && matB && matA.restitution >= 0 && matB.restitution >= 0) {
  8829. c.restitution = matA.restitution * matB.restitution;
  8830. }
  8831. c.si = overrideShapeA || si;
  8832. c.sj = overrideShapeB || sj;
  8833. return c;
  8834. }
  8835. createFrictionEquationsFromContact(contactEquation, outArray) {
  8836. const bodyA = contactEquation.bi;
  8837. const bodyB = contactEquation.bj;
  8838. const shapeA = contactEquation.si;
  8839. const shapeB = contactEquation.sj;
  8840. const world = this.world;
  8841. const cm = this.currentContactMaterial; // If friction or restitution were specified in the material, use them
  8842. let friction = cm.friction;
  8843. const matA = shapeA.material || bodyA.material;
  8844. const matB = shapeB.material || bodyB.material;
  8845. if (matA && matB && matA.friction >= 0 && matB.friction >= 0) {
  8846. friction = matA.friction * matB.friction;
  8847. }
  8848. if (friction > 0) {
  8849. // Create 2 tangent equations
  8850. const mug = friction * world.gravity.length();
  8851. let reducedMass = bodyA.invMass + bodyB.invMass;
  8852. if (reducedMass > 0) {
  8853. reducedMass = 1 / reducedMass;
  8854. }
  8855. const pool = this.frictionEquationPool;
  8856. const c1 = pool.length ? pool.pop() : new FrictionEquation(bodyA, bodyB, mug * reducedMass);
  8857. const c2 = pool.length ? pool.pop() : new FrictionEquation(bodyA, bodyB, mug * reducedMass);
  8858. c1.bi = c2.bi = bodyA;
  8859. c1.bj = c2.bj = bodyB;
  8860. c1.minForce = c2.minForce = -mug * reducedMass;
  8861. c1.maxForce = c2.maxForce = mug * reducedMass; // Copy over the relative vectors
  8862. c1.ri.copy(contactEquation.ri);
  8863. c1.rj.copy(contactEquation.rj);
  8864. c2.ri.copy(contactEquation.ri);
  8865. c2.rj.copy(contactEquation.rj); // Construct tangents
  8866. contactEquation.ni.tangents(c1.t, c2.t); // Set spook params
  8867. c1.setSpookParams(cm.frictionEquationStiffness, cm.frictionEquationRelaxation, world.dt);
  8868. c2.setSpookParams(cm.frictionEquationStiffness, cm.frictionEquationRelaxation, world.dt);
  8869. c1.enabled = c2.enabled = contactEquation.enabled;
  8870. outArray.push(c1, c2);
  8871. return true;
  8872. }
  8873. return false;
  8874. }
  8875. /**
  8876. * Take the average N latest contact point on the plane.
  8877. */
  8878. createFrictionFromAverage(numContacts) {
  8879. // The last contactEquation
  8880. let c = this.result[this.result.length - 1]; // Create the result: two "average" friction equations
  8881. if (!this.createFrictionEquationsFromContact(c, this.frictionResult) || numContacts === 1) {
  8882. return;
  8883. }
  8884. const f1 = this.frictionResult[this.frictionResult.length - 2];
  8885. const f2 = this.frictionResult[this.frictionResult.length - 1];
  8886. averageNormal.setZero();
  8887. averageContactPointA.setZero();
  8888. averageContactPointB.setZero();
  8889. const bodyA = c.bi;
  8890. c.bj;
  8891. for (let i = 0; i !== numContacts; i++) {
  8892. c = this.result[this.result.length - 1 - i];
  8893. if (c.bi !== bodyA) {
  8894. averageNormal.vadd(c.ni, averageNormal);
  8895. averageContactPointA.vadd(c.ri, averageContactPointA);
  8896. averageContactPointB.vadd(c.rj, averageContactPointB);
  8897. } else {
  8898. averageNormal.vsub(c.ni, averageNormal);
  8899. averageContactPointA.vadd(c.rj, averageContactPointA);
  8900. averageContactPointB.vadd(c.ri, averageContactPointB);
  8901. }
  8902. }
  8903. const invNumContacts = 1 / numContacts;
  8904. averageContactPointA.scale(invNumContacts, f1.ri);
  8905. averageContactPointB.scale(invNumContacts, f1.rj);
  8906. f2.ri.copy(f1.ri); // Should be the same
  8907. f2.rj.copy(f1.rj);
  8908. averageNormal.normalize();
  8909. averageNormal.tangents(f1.t, f2.t); // return eq;
  8910. }
  8911. /**
  8912. * Generate all contacts between a list of body pairs
  8913. * @param p1 Array of body indices
  8914. * @param p2 Array of body indices
  8915. * @param result Array to store generated contacts
  8916. * @param oldcontacts Optional. Array of reusable contact objects
  8917. */
  8918. getContacts(p1, p2, world, result, oldcontacts, frictionResult, frictionPool) {
  8919. // Save old contact objects
  8920. this.contactPointPool = oldcontacts;
  8921. this.frictionEquationPool = frictionPool;
  8922. this.result = result;
  8923. this.frictionResult = frictionResult;
  8924. const qi = tmpQuat1;
  8925. const qj = tmpQuat2;
  8926. const xi = tmpVec1;
  8927. const xj = tmpVec2;
  8928. for (let k = 0, N = p1.length; k !== N; k++) {
  8929. // Get current collision bodies
  8930. const bi = p1[k];
  8931. const bj = p2[k]; // Get contact material
  8932. let bodyContactMaterial = null;
  8933. if (bi.material && bj.material) {
  8934. bodyContactMaterial = world.getContactMaterial(bi.material, bj.material) || null;
  8935. }
  8936. const justTest = bi.type & Body.KINEMATIC && bj.type & Body.STATIC || bi.type & Body.STATIC && bj.type & Body.KINEMATIC || bi.type & Body.KINEMATIC && bj.type & Body.KINEMATIC;
  8937. for (let i = 0; i < bi.shapes.length; i++) {
  8938. bi.quaternion.mult(bi.shapeOrientations[i], qi);
  8939. bi.quaternion.vmult(bi.shapeOffsets[i], xi);
  8940. xi.vadd(bi.position, xi);
  8941. const si = bi.shapes[i];
  8942. for (let j = 0; j < bj.shapes.length; j++) {
  8943. // Compute world transform of shapes
  8944. bj.quaternion.mult(bj.shapeOrientations[j], qj);
  8945. bj.quaternion.vmult(bj.shapeOffsets[j], xj);
  8946. xj.vadd(bj.position, xj);
  8947. const sj = bj.shapes[j];
  8948. if (!(si.collisionFilterMask & sj.collisionFilterGroup && sj.collisionFilterMask & si.collisionFilterGroup)) {
  8949. continue;
  8950. }
  8951. if (xi.distanceTo(xj) > si.boundingSphereRadius + sj.boundingSphereRadius) {
  8952. continue;
  8953. } // Get collision material
  8954. let shapeContactMaterial = null;
  8955. if (si.material && sj.material) {
  8956. shapeContactMaterial = world.getContactMaterial(si.material, sj.material) || null;
  8957. }
  8958. this.currentContactMaterial = shapeContactMaterial || bodyContactMaterial || world.defaultContactMaterial; // Get contacts
  8959. const resolverIndex = si.type | sj.type;
  8960. const resolver = this[resolverIndex];
  8961. if (resolver) {
  8962. let retval = false; // TO DO: investigate why sphereParticle and convexParticle
  8963. // resolvers expect si and sj shapes to be in reverse order
  8964. // (i.e. larger integer value type first instead of smaller first)
  8965. if (si.type < sj.type) {
  8966. retval = resolver.call(this, si, sj, xi, xj, qi, qj, bi, bj, si, sj, justTest);
  8967. } else {
  8968. retval = resolver.call(this, sj, si, xj, xi, qj, qi, bj, bi, si, sj, justTest);
  8969. }
  8970. if (retval && justTest) {
  8971. // Register overlap
  8972. world.shapeOverlapKeeper.set(si.id, sj.id);
  8973. world.bodyOverlapKeeper.set(bi.id, bj.id);
  8974. }
  8975. }
  8976. }
  8977. }
  8978. }
  8979. }
  8980. sphereSphere(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest) {
  8981. if (justTest) {
  8982. return xi.distanceSquared(xj) < (si.radius + sj.radius) ** 2;
  8983. } // We will have only one contact in this case
  8984. const contactEq = this.createContactEquation(bi, bj, si, sj, rsi, rsj); // Contact normal
  8985. xj.vsub(xi, contactEq.ni);
  8986. contactEq.ni.normalize(); // Contact point locations
  8987. contactEq.ri.copy(contactEq.ni);
  8988. contactEq.rj.copy(contactEq.ni);
  8989. contactEq.ri.scale(si.radius, contactEq.ri);
  8990. contactEq.rj.scale(-sj.radius, contactEq.rj);
  8991. contactEq.ri.vadd(xi, contactEq.ri);
  8992. contactEq.ri.vsub(bi.position, contactEq.ri);
  8993. contactEq.rj.vadd(xj, contactEq.rj);
  8994. contactEq.rj.vsub(bj.position, contactEq.rj);
  8995. this.result.push(contactEq);
  8996. this.createFrictionEquationsFromContact(contactEq, this.frictionResult);
  8997. }
  8998. spherePlane(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest) {
  8999. // We will have one contact in this case
  9000. const r = this.createContactEquation(bi, bj, si, sj, rsi, rsj); // Contact normal
  9001. r.ni.set(0, 0, 1);
  9002. qj.vmult(r.ni, r.ni);
  9003. r.ni.negate(r.ni); // body i is the sphere, flip normal
  9004. r.ni.normalize(); // Needed?
  9005. // Vector from sphere center to contact point
  9006. r.ni.scale(si.radius, r.ri); // Project down sphere on plane
  9007. xi.vsub(xj, point_on_plane_to_sphere);
  9008. r.ni.scale(r.ni.dot(point_on_plane_to_sphere), plane_to_sphere_ortho);
  9009. point_on_plane_to_sphere.vsub(plane_to_sphere_ortho, r.rj); // The sphere position projected to plane
  9010. if (-point_on_plane_to_sphere.dot(r.ni) <= si.radius) {
  9011. if (justTest) {
  9012. return true;
  9013. } // Make it relative to the body
  9014. const ri = r.ri;
  9015. const rj = r.rj;
  9016. ri.vadd(xi, ri);
  9017. ri.vsub(bi.position, ri);
  9018. rj.vadd(xj, rj);
  9019. rj.vsub(bj.position, rj);
  9020. this.result.push(r);
  9021. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9022. }
  9023. }
  9024. boxBox(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest) {
  9025. si.convexPolyhedronRepresentation.material = si.material;
  9026. sj.convexPolyhedronRepresentation.material = sj.material;
  9027. si.convexPolyhedronRepresentation.collisionResponse = si.collisionResponse;
  9028. sj.convexPolyhedronRepresentation.collisionResponse = sj.collisionResponse;
  9029. return this.convexConvex(si.convexPolyhedronRepresentation, sj.convexPolyhedronRepresentation, xi, xj, qi, qj, bi, bj, si, sj, justTest);
  9030. }
  9031. sphereBox(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest) {
  9032. const v3pool = this.v3pool; // we refer to the box as body j
  9033. const sides = sphereBox_sides;
  9034. xi.vsub(xj, box_to_sphere);
  9035. sj.getSideNormals(sides, qj);
  9036. const R = si.radius;
  9037. let found = false; // Store the resulting side penetration info
  9038. const side_ns = sphereBox_side_ns;
  9039. const side_ns1 = sphereBox_side_ns1;
  9040. const side_ns2 = sphereBox_side_ns2;
  9041. let side_h = null;
  9042. let side_penetrations = 0;
  9043. let side_dot1 = 0;
  9044. let side_dot2 = 0;
  9045. let side_distance = null;
  9046. for (let idx = 0, nsides = sides.length; idx !== nsides && found === false; idx++) {
  9047. // Get the plane side normal (ns)
  9048. const ns = sphereBox_ns;
  9049. ns.copy(sides[idx]);
  9050. const h = ns.length();
  9051. ns.normalize(); // The normal/distance dot product tells which side of the plane we are
  9052. const dot = box_to_sphere.dot(ns);
  9053. if (dot < h + R && dot > 0) {
  9054. // Intersects plane. Now check the other two dimensions
  9055. const ns1 = sphereBox_ns1;
  9056. const ns2 = sphereBox_ns2;
  9057. ns1.copy(sides[(idx + 1) % 3]);
  9058. ns2.copy(sides[(idx + 2) % 3]);
  9059. const h1 = ns1.length();
  9060. const h2 = ns2.length();
  9061. ns1.normalize();
  9062. ns2.normalize();
  9063. const dot1 = box_to_sphere.dot(ns1);
  9064. const dot2 = box_to_sphere.dot(ns2);
  9065. if (dot1 < h1 && dot1 > -h1 && dot2 < h2 && dot2 > -h2) {
  9066. const dist = Math.abs(dot - h - R);
  9067. if (side_distance === null || dist < side_distance) {
  9068. side_distance = dist;
  9069. side_dot1 = dot1;
  9070. side_dot2 = dot2;
  9071. side_h = h;
  9072. side_ns.copy(ns);
  9073. side_ns1.copy(ns1);
  9074. side_ns2.copy(ns2);
  9075. side_penetrations++;
  9076. if (justTest) {
  9077. return true;
  9078. }
  9079. }
  9080. }
  9081. }
  9082. }
  9083. if (side_penetrations) {
  9084. found = true;
  9085. const r = this.createContactEquation(bi, bj, si, sj, rsi, rsj);
  9086. side_ns.scale(-R, r.ri); // Sphere r
  9087. r.ni.copy(side_ns);
  9088. r.ni.negate(r.ni); // Normal should be out of sphere
  9089. side_ns.scale(side_h, side_ns);
  9090. side_ns1.scale(side_dot1, side_ns1);
  9091. side_ns.vadd(side_ns1, side_ns);
  9092. side_ns2.scale(side_dot2, side_ns2);
  9093. side_ns.vadd(side_ns2, r.rj); // Make relative to bodies
  9094. r.ri.vadd(xi, r.ri);
  9095. r.ri.vsub(bi.position, r.ri);
  9096. r.rj.vadd(xj, r.rj);
  9097. r.rj.vsub(bj.position, r.rj);
  9098. this.result.push(r);
  9099. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9100. } // Check corners
  9101. let rj = v3pool.get();
  9102. const sphere_to_corner = sphereBox_sphere_to_corner;
  9103. for (let j = 0; j !== 2 && !found; j++) {
  9104. for (let k = 0; k !== 2 && !found; k++) {
  9105. for (let l = 0; l !== 2 && !found; l++) {
  9106. rj.set(0, 0, 0);
  9107. if (j) {
  9108. rj.vadd(sides[0], rj);
  9109. } else {
  9110. rj.vsub(sides[0], rj);
  9111. }
  9112. if (k) {
  9113. rj.vadd(sides[1], rj);
  9114. } else {
  9115. rj.vsub(sides[1], rj);
  9116. }
  9117. if (l) {
  9118. rj.vadd(sides[2], rj);
  9119. } else {
  9120. rj.vsub(sides[2], rj);
  9121. } // World position of corner
  9122. xj.vadd(rj, sphere_to_corner);
  9123. sphere_to_corner.vsub(xi, sphere_to_corner);
  9124. if (sphere_to_corner.lengthSquared() < R * R) {
  9125. if (justTest) {
  9126. return true;
  9127. }
  9128. found = true;
  9129. const r = this.createContactEquation(bi, bj, si, sj, rsi, rsj);
  9130. r.ri.copy(sphere_to_corner);
  9131. r.ri.normalize();
  9132. r.ni.copy(r.ri);
  9133. r.ri.scale(R, r.ri);
  9134. r.rj.copy(rj); // Make relative to bodies
  9135. r.ri.vadd(xi, r.ri);
  9136. r.ri.vsub(bi.position, r.ri);
  9137. r.rj.vadd(xj, r.rj);
  9138. r.rj.vsub(bj.position, r.rj);
  9139. this.result.push(r);
  9140. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9141. }
  9142. }
  9143. }
  9144. }
  9145. v3pool.release(rj);
  9146. rj = null; // Check edges
  9147. const edgeTangent = v3pool.get();
  9148. const edgeCenter = v3pool.get();
  9149. const r = v3pool.get(); // r = edge center to sphere center
  9150. const orthogonal = v3pool.get();
  9151. const dist = v3pool.get();
  9152. const Nsides = sides.length;
  9153. for (let j = 0; j !== Nsides && !found; j++) {
  9154. for (let k = 0; k !== Nsides && !found; k++) {
  9155. if (j % 3 !== k % 3) {
  9156. // Get edge tangent
  9157. sides[k].cross(sides[j], edgeTangent);
  9158. edgeTangent.normalize();
  9159. sides[j].vadd(sides[k], edgeCenter);
  9160. r.copy(xi);
  9161. r.vsub(edgeCenter, r);
  9162. r.vsub(xj, r);
  9163. const orthonorm = r.dot(edgeTangent); // distance from edge center to sphere center in the tangent direction
  9164. edgeTangent.scale(orthonorm, orthogonal); // Vector from edge center to sphere center in the tangent direction
  9165. // Find the third side orthogonal to this one
  9166. let l = 0;
  9167. while (l === j % 3 || l === k % 3) {
  9168. l++;
  9169. } // vec from edge center to sphere projected to the plane orthogonal to the edge tangent
  9170. dist.copy(xi);
  9171. dist.vsub(orthogonal, dist);
  9172. dist.vsub(edgeCenter, dist);
  9173. dist.vsub(xj, dist); // Distances in tangent direction and distance in the plane orthogonal to it
  9174. const tdist = Math.abs(orthonorm);
  9175. const ndist = dist.length();
  9176. if (tdist < sides[l].length() && ndist < R) {
  9177. if (justTest) {
  9178. return true;
  9179. }
  9180. found = true;
  9181. const res = this.createContactEquation(bi, bj, si, sj, rsi, rsj);
  9182. edgeCenter.vadd(orthogonal, res.rj); // box rj
  9183. res.rj.copy(res.rj);
  9184. dist.negate(res.ni);
  9185. res.ni.normalize();
  9186. res.ri.copy(res.rj);
  9187. res.ri.vadd(xj, res.ri);
  9188. res.ri.vsub(xi, res.ri);
  9189. res.ri.normalize();
  9190. res.ri.scale(R, res.ri); // Make relative to bodies
  9191. res.ri.vadd(xi, res.ri);
  9192. res.ri.vsub(bi.position, res.ri);
  9193. res.rj.vadd(xj, res.rj);
  9194. res.rj.vsub(bj.position, res.rj);
  9195. this.result.push(res);
  9196. this.createFrictionEquationsFromContact(res, this.frictionResult);
  9197. }
  9198. }
  9199. }
  9200. }
  9201. v3pool.release(edgeTangent, edgeCenter, r, orthogonal, dist);
  9202. }
  9203. planeBox(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest) {
  9204. sj.convexPolyhedronRepresentation.material = sj.material;
  9205. sj.convexPolyhedronRepresentation.collisionResponse = sj.collisionResponse;
  9206. sj.convexPolyhedronRepresentation.id = sj.id;
  9207. return this.planeConvex(si, sj.convexPolyhedronRepresentation, xi, xj, qi, qj, bi, bj, si, sj, justTest);
  9208. }
  9209. convexConvex(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest, faceListA, faceListB) {
  9210. const sepAxis = convexConvex_sepAxis;
  9211. if (xi.distanceTo(xj) > si.boundingSphereRadius + sj.boundingSphereRadius) {
  9212. return;
  9213. }
  9214. if (si.findSeparatingAxis(sj, xi, qi, xj, qj, sepAxis, faceListA, faceListB)) {
  9215. const res = [];
  9216. const q = convexConvex_q;
  9217. si.clipAgainstHull(xi, qi, sj, xj, qj, sepAxis, -100, 100, res);
  9218. let numContacts = 0;
  9219. for (let j = 0; j !== res.length; j++) {
  9220. if (justTest) {
  9221. return true;
  9222. }
  9223. const r = this.createContactEquation(bi, bj, si, sj, rsi, rsj);
  9224. const ri = r.ri;
  9225. const rj = r.rj;
  9226. sepAxis.negate(r.ni);
  9227. res[j].normal.negate(q);
  9228. q.scale(res[j].depth, q);
  9229. res[j].point.vadd(q, ri);
  9230. rj.copy(res[j].point); // Contact points are in world coordinates. Transform back to relative
  9231. ri.vsub(xi, ri);
  9232. rj.vsub(xj, rj); // Make relative to bodies
  9233. ri.vadd(xi, ri);
  9234. ri.vsub(bi.position, ri);
  9235. rj.vadd(xj, rj);
  9236. rj.vsub(bj.position, rj);
  9237. this.result.push(r);
  9238. numContacts++;
  9239. if (!this.enableFrictionReduction) {
  9240. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9241. }
  9242. }
  9243. if (this.enableFrictionReduction && numContacts) {
  9244. this.createFrictionFromAverage(numContacts);
  9245. }
  9246. }
  9247. }
  9248. sphereConvex(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest) {
  9249. const v3pool = this.v3pool;
  9250. xi.vsub(xj, convex_to_sphere);
  9251. const normals = sj.faceNormals;
  9252. const faces = sj.faces;
  9253. const verts = sj.vertices;
  9254. const R = si.radius;
  9255. // return;
  9256. // }
  9257. let found = false; // Check corners
  9258. for (let i = 0; i !== verts.length; i++) {
  9259. const v = verts[i]; // World position of corner
  9260. const worldCorner = sphereConvex_worldCorner;
  9261. qj.vmult(v, worldCorner);
  9262. xj.vadd(worldCorner, worldCorner);
  9263. const sphere_to_corner = sphereConvex_sphereToCorner;
  9264. worldCorner.vsub(xi, sphere_to_corner);
  9265. if (sphere_to_corner.lengthSquared() < R * R) {
  9266. if (justTest) {
  9267. return true;
  9268. }
  9269. found = true;
  9270. const r = this.createContactEquation(bi, bj, si, sj, rsi, rsj);
  9271. r.ri.copy(sphere_to_corner);
  9272. r.ri.normalize();
  9273. r.ni.copy(r.ri);
  9274. r.ri.scale(R, r.ri);
  9275. worldCorner.vsub(xj, r.rj); // Should be relative to the body.
  9276. r.ri.vadd(xi, r.ri);
  9277. r.ri.vsub(bi.position, r.ri); // Should be relative to the body.
  9278. r.rj.vadd(xj, r.rj);
  9279. r.rj.vsub(bj.position, r.rj);
  9280. this.result.push(r);
  9281. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9282. return;
  9283. }
  9284. } // Check side (plane) intersections
  9285. for (let i = 0, nfaces = faces.length; i !== nfaces && found === false; i++) {
  9286. const normal = normals[i];
  9287. const face = faces[i]; // Get world-transformed normal of the face
  9288. const worldNormal = sphereConvex_worldNormal;
  9289. qj.vmult(normal, worldNormal); // Get a world vertex from the face
  9290. const worldPoint = sphereConvex_worldPoint;
  9291. qj.vmult(verts[face[0]], worldPoint);
  9292. worldPoint.vadd(xj, worldPoint); // Get a point on the sphere, closest to the face normal
  9293. const worldSpherePointClosestToPlane = sphereConvex_worldSpherePointClosestToPlane;
  9294. worldNormal.scale(-R, worldSpherePointClosestToPlane);
  9295. xi.vadd(worldSpherePointClosestToPlane, worldSpherePointClosestToPlane); // Vector from a face point to the closest point on the sphere
  9296. const penetrationVec = sphereConvex_penetrationVec;
  9297. worldSpherePointClosestToPlane.vsub(worldPoint, penetrationVec); // The penetration. Negative value means overlap.
  9298. const penetration = penetrationVec.dot(worldNormal);
  9299. const worldPointToSphere = sphereConvex_sphereToWorldPoint;
  9300. xi.vsub(worldPoint, worldPointToSphere);
  9301. if (penetration < 0 && worldPointToSphere.dot(worldNormal) > 0) {
  9302. // Intersects plane. Now check if the sphere is inside the face polygon
  9303. const faceVerts = []; // Face vertices, in world coords
  9304. for (let j = 0, Nverts = face.length; j !== Nverts; j++) {
  9305. const worldVertex = v3pool.get();
  9306. qj.vmult(verts[face[j]], worldVertex);
  9307. xj.vadd(worldVertex, worldVertex);
  9308. faceVerts.push(worldVertex);
  9309. }
  9310. if (pointInPolygon(faceVerts, worldNormal, xi)) {
  9311. // Is the sphere center in the face polygon?
  9312. if (justTest) {
  9313. return true;
  9314. }
  9315. found = true;
  9316. const r = this.createContactEquation(bi, bj, si, sj, rsi, rsj);
  9317. worldNormal.scale(-R, r.ri); // Contact offset, from sphere center to contact
  9318. worldNormal.negate(r.ni); // Normal pointing out of sphere
  9319. const penetrationVec2 = v3pool.get();
  9320. worldNormal.scale(-penetration, penetrationVec2);
  9321. const penetrationSpherePoint = v3pool.get();
  9322. worldNormal.scale(-R, penetrationSpherePoint); //xi.vsub(xj).vadd(penetrationSpherePoint).vadd(penetrationVec2 , r.rj);
  9323. xi.vsub(xj, r.rj);
  9324. r.rj.vadd(penetrationSpherePoint, r.rj);
  9325. r.rj.vadd(penetrationVec2, r.rj); // Should be relative to the body.
  9326. r.rj.vadd(xj, r.rj);
  9327. r.rj.vsub(bj.position, r.rj); // Should be relative to the body.
  9328. r.ri.vadd(xi, r.ri);
  9329. r.ri.vsub(bi.position, r.ri);
  9330. v3pool.release(penetrationVec2);
  9331. v3pool.release(penetrationSpherePoint);
  9332. this.result.push(r);
  9333. this.createFrictionEquationsFromContact(r, this.frictionResult); // Release world vertices
  9334. for (let j = 0, Nfaceverts = faceVerts.length; j !== Nfaceverts; j++) {
  9335. v3pool.release(faceVerts[j]);
  9336. }
  9337. return; // We only expect *one* face contact
  9338. } else {
  9339. // Edge?
  9340. for (let j = 0; j !== face.length; j++) {
  9341. // Get two world transformed vertices
  9342. const v1 = v3pool.get();
  9343. const v2 = v3pool.get();
  9344. qj.vmult(verts[face[(j + 1) % face.length]], v1);
  9345. qj.vmult(verts[face[(j + 2) % face.length]], v2);
  9346. xj.vadd(v1, v1);
  9347. xj.vadd(v2, v2); // Construct edge vector
  9348. const edge = sphereConvex_edge;
  9349. v2.vsub(v1, edge); // Construct the same vector, but normalized
  9350. const edgeUnit = sphereConvex_edgeUnit;
  9351. edge.unit(edgeUnit); // p is xi projected onto the edge
  9352. const p = v3pool.get();
  9353. const v1_to_xi = v3pool.get();
  9354. xi.vsub(v1, v1_to_xi);
  9355. const dot = v1_to_xi.dot(edgeUnit);
  9356. edgeUnit.scale(dot, p);
  9357. p.vadd(v1, p); // Compute a vector from p to the center of the sphere
  9358. const xi_to_p = v3pool.get();
  9359. p.vsub(xi, xi_to_p); // Collision if the edge-sphere distance is less than the radius
  9360. // AND if p is in between v1 and v2
  9361. if (dot > 0 && dot * dot < edge.lengthSquared() && xi_to_p.lengthSquared() < R * R) {
  9362. // Collision if the edge-sphere distance is less than the radius
  9363. // Edge contact!
  9364. if (justTest) {
  9365. return true;
  9366. }
  9367. const r = this.createContactEquation(bi, bj, si, sj, rsi, rsj);
  9368. p.vsub(xj, r.rj);
  9369. p.vsub(xi, r.ni);
  9370. r.ni.normalize();
  9371. r.ni.scale(R, r.ri); // Should be relative to the body.
  9372. r.rj.vadd(xj, r.rj);
  9373. r.rj.vsub(bj.position, r.rj); // Should be relative to the body.
  9374. r.ri.vadd(xi, r.ri);
  9375. r.ri.vsub(bi.position, r.ri);
  9376. this.result.push(r);
  9377. this.createFrictionEquationsFromContact(r, this.frictionResult); // Release world vertices
  9378. for (let j = 0, Nfaceverts = faceVerts.length; j !== Nfaceverts; j++) {
  9379. v3pool.release(faceVerts[j]);
  9380. }
  9381. v3pool.release(v1);
  9382. v3pool.release(v2);
  9383. v3pool.release(p);
  9384. v3pool.release(xi_to_p);
  9385. v3pool.release(v1_to_xi);
  9386. return;
  9387. }
  9388. v3pool.release(v1);
  9389. v3pool.release(v2);
  9390. v3pool.release(p);
  9391. v3pool.release(xi_to_p);
  9392. v3pool.release(v1_to_xi);
  9393. }
  9394. } // Release world vertices
  9395. for (let j = 0, Nfaceverts = faceVerts.length; j !== Nfaceverts; j++) {
  9396. v3pool.release(faceVerts[j]);
  9397. }
  9398. }
  9399. }
  9400. }
  9401. planeConvex(planeShape, convexShape, planePosition, convexPosition, planeQuat, convexQuat, planeBody, convexBody, si, sj, justTest) {
  9402. // Simply return the points behind the plane.
  9403. const worldVertex = planeConvex_v;
  9404. const worldNormal = planeConvex_normal;
  9405. worldNormal.set(0, 0, 1);
  9406. planeQuat.vmult(worldNormal, worldNormal); // Turn normal according to plane orientation
  9407. let numContacts = 0;
  9408. const relpos = planeConvex_relpos;
  9409. for (let i = 0; i !== convexShape.vertices.length; i++) {
  9410. // Get world convex vertex
  9411. worldVertex.copy(convexShape.vertices[i]);
  9412. convexQuat.vmult(worldVertex, worldVertex);
  9413. convexPosition.vadd(worldVertex, worldVertex);
  9414. worldVertex.vsub(planePosition, relpos);
  9415. const dot = worldNormal.dot(relpos);
  9416. if (dot <= 0.0) {
  9417. if (justTest) {
  9418. return true;
  9419. }
  9420. const r = this.createContactEquation(planeBody, convexBody, planeShape, convexShape, si, sj); // Get vertex position projected on plane
  9421. const projected = planeConvex_projected;
  9422. worldNormal.scale(worldNormal.dot(relpos), projected);
  9423. worldVertex.vsub(projected, projected);
  9424. projected.vsub(planePosition, r.ri); // From plane to vertex projected on plane
  9425. r.ni.copy(worldNormal); // Contact normal is the plane normal out from plane
  9426. // rj is now just the vector from the convex center to the vertex
  9427. worldVertex.vsub(convexPosition, r.rj); // Make it relative to the body
  9428. r.ri.vadd(planePosition, r.ri);
  9429. r.ri.vsub(planeBody.position, r.ri);
  9430. r.rj.vadd(convexPosition, r.rj);
  9431. r.rj.vsub(convexBody.position, r.rj);
  9432. this.result.push(r);
  9433. numContacts++;
  9434. if (!this.enableFrictionReduction) {
  9435. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9436. }
  9437. }
  9438. }
  9439. if (this.enableFrictionReduction && numContacts) {
  9440. this.createFrictionFromAverage(numContacts);
  9441. }
  9442. }
  9443. boxConvex(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest) {
  9444. si.convexPolyhedronRepresentation.material = si.material;
  9445. si.convexPolyhedronRepresentation.collisionResponse = si.collisionResponse;
  9446. return this.convexConvex(si.convexPolyhedronRepresentation, sj, xi, xj, qi, qj, bi, bj, si, sj, justTest);
  9447. }
  9448. sphereHeightfield(sphereShape, hfShape, spherePos, hfPos, sphereQuat, hfQuat, sphereBody, hfBody, rsi, rsj, justTest) {
  9449. const data = hfShape.data;
  9450. const radius = sphereShape.radius;
  9451. const w = hfShape.elementSize;
  9452. const worldPillarOffset = sphereHeightfield_tmp2; // Get sphere position to heightfield local!
  9453. const localSpherePos = sphereHeightfield_tmp1;
  9454. Transform.pointToLocalFrame(hfPos, hfQuat, spherePos, localSpherePos); // Get the index of the data points to test against
  9455. let iMinX = Math.floor((localSpherePos.x - radius) / w) - 1;
  9456. let iMaxX = Math.ceil((localSpherePos.x + radius) / w) + 1;
  9457. let iMinY = Math.floor((localSpherePos.y - radius) / w) - 1;
  9458. let iMaxY = Math.ceil((localSpherePos.y + radius) / w) + 1; // Bail out if we are out of the terrain
  9459. if (iMaxX < 0 || iMaxY < 0 || iMinX > data.length || iMinY > data[0].length) {
  9460. return;
  9461. } // Clamp index to edges
  9462. if (iMinX < 0) {
  9463. iMinX = 0;
  9464. }
  9465. if (iMaxX < 0) {
  9466. iMaxX = 0;
  9467. }
  9468. if (iMinY < 0) {
  9469. iMinY = 0;
  9470. }
  9471. if (iMaxY < 0) {
  9472. iMaxY = 0;
  9473. }
  9474. if (iMinX >= data.length) {
  9475. iMinX = data.length - 1;
  9476. }
  9477. if (iMaxX >= data.length) {
  9478. iMaxX = data.length - 1;
  9479. }
  9480. if (iMaxY >= data[0].length) {
  9481. iMaxY = data[0].length - 1;
  9482. }
  9483. if (iMinY >= data[0].length) {
  9484. iMinY = data[0].length - 1;
  9485. }
  9486. const minMax = [];
  9487. hfShape.getRectMinMax(iMinX, iMinY, iMaxX, iMaxY, minMax);
  9488. const min = minMax[0];
  9489. const max = minMax[1]; // Bail out if we can't touch the bounding height box
  9490. if (localSpherePos.z - radius > max || localSpherePos.z + radius < min) {
  9491. return;
  9492. }
  9493. const result = this.result;
  9494. for (let i = iMinX; i < iMaxX; i++) {
  9495. for (let j = iMinY; j < iMaxY; j++) {
  9496. const numContactsBefore = result.length;
  9497. let intersecting = false; // Lower triangle
  9498. hfShape.getConvexTrianglePillar(i, j, false);
  9499. Transform.pointToWorldFrame(hfPos, hfQuat, hfShape.pillarOffset, worldPillarOffset);
  9500. if (spherePos.distanceTo(worldPillarOffset) < hfShape.pillarConvex.boundingSphereRadius + sphereShape.boundingSphereRadius) {
  9501. intersecting = this.sphereConvex(sphereShape, hfShape.pillarConvex, spherePos, worldPillarOffset, sphereQuat, hfQuat, sphereBody, hfBody, sphereShape, hfShape, justTest);
  9502. }
  9503. if (justTest && intersecting) {
  9504. return true;
  9505. } // Upper triangle
  9506. hfShape.getConvexTrianglePillar(i, j, true);
  9507. Transform.pointToWorldFrame(hfPos, hfQuat, hfShape.pillarOffset, worldPillarOffset);
  9508. if (spherePos.distanceTo(worldPillarOffset) < hfShape.pillarConvex.boundingSphereRadius + sphereShape.boundingSphereRadius) {
  9509. intersecting = this.sphereConvex(sphereShape, hfShape.pillarConvex, spherePos, worldPillarOffset, sphereQuat, hfQuat, sphereBody, hfBody, sphereShape, hfShape, justTest);
  9510. }
  9511. if (justTest && intersecting) {
  9512. return true;
  9513. }
  9514. const numContacts = result.length - numContactsBefore;
  9515. if (numContacts > 2) {
  9516. return;
  9517. }
  9518. /*
  9519. // Skip all but 1
  9520. for (let k = 0; k < numContacts - 1; k++) {
  9521. result.pop();
  9522. }
  9523. */
  9524. }
  9525. }
  9526. }
  9527. boxHeightfield(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest) {
  9528. si.convexPolyhedronRepresentation.material = si.material;
  9529. si.convexPolyhedronRepresentation.collisionResponse = si.collisionResponse;
  9530. return this.convexHeightfield(si.convexPolyhedronRepresentation, sj, xi, xj, qi, qj, bi, bj, si, sj, justTest);
  9531. }
  9532. convexHeightfield(convexShape, hfShape, convexPos, hfPos, convexQuat, hfQuat, convexBody, hfBody, rsi, rsj, justTest) {
  9533. const data = hfShape.data;
  9534. const w = hfShape.elementSize;
  9535. const radius = convexShape.boundingSphereRadius;
  9536. const worldPillarOffset = convexHeightfield_tmp2;
  9537. const faceList = convexHeightfield_faceList; // Get sphere position to heightfield local!
  9538. const localConvexPos = convexHeightfield_tmp1;
  9539. Transform.pointToLocalFrame(hfPos, hfQuat, convexPos, localConvexPos); // Get the index of the data points to test against
  9540. let iMinX = Math.floor((localConvexPos.x - radius) / w) - 1;
  9541. let iMaxX = Math.ceil((localConvexPos.x + radius) / w) + 1;
  9542. let iMinY = Math.floor((localConvexPos.y - radius) / w) - 1;
  9543. let iMaxY = Math.ceil((localConvexPos.y + radius) / w) + 1; // Bail out if we are out of the terrain
  9544. if (iMaxX < 0 || iMaxY < 0 || iMinX > data.length || iMinY > data[0].length) {
  9545. return;
  9546. } // Clamp index to edges
  9547. if (iMinX < 0) {
  9548. iMinX = 0;
  9549. }
  9550. if (iMaxX < 0) {
  9551. iMaxX = 0;
  9552. }
  9553. if (iMinY < 0) {
  9554. iMinY = 0;
  9555. }
  9556. if (iMaxY < 0) {
  9557. iMaxY = 0;
  9558. }
  9559. if (iMinX >= data.length) {
  9560. iMinX = data.length - 1;
  9561. }
  9562. if (iMaxX >= data.length) {
  9563. iMaxX = data.length - 1;
  9564. }
  9565. if (iMaxY >= data[0].length) {
  9566. iMaxY = data[0].length - 1;
  9567. }
  9568. if (iMinY >= data[0].length) {
  9569. iMinY = data[0].length - 1;
  9570. }
  9571. const minMax = [];
  9572. hfShape.getRectMinMax(iMinX, iMinY, iMaxX, iMaxY, minMax);
  9573. const min = minMax[0];
  9574. const max = minMax[1]; // Bail out if we're cant touch the bounding height box
  9575. if (localConvexPos.z - radius > max || localConvexPos.z + radius < min) {
  9576. return;
  9577. }
  9578. for (let i = iMinX; i < iMaxX; i++) {
  9579. for (let j = iMinY; j < iMaxY; j++) {
  9580. let intersecting = false; // Lower triangle
  9581. hfShape.getConvexTrianglePillar(i, j, false);
  9582. Transform.pointToWorldFrame(hfPos, hfQuat, hfShape.pillarOffset, worldPillarOffset);
  9583. if (convexPos.distanceTo(worldPillarOffset) < hfShape.pillarConvex.boundingSphereRadius + convexShape.boundingSphereRadius) {
  9584. intersecting = this.convexConvex(convexShape, hfShape.pillarConvex, convexPos, worldPillarOffset, convexQuat, hfQuat, convexBody, hfBody, null, null, justTest, faceList, null);
  9585. }
  9586. if (justTest && intersecting) {
  9587. return true;
  9588. } // Upper triangle
  9589. hfShape.getConvexTrianglePillar(i, j, true);
  9590. Transform.pointToWorldFrame(hfPos, hfQuat, hfShape.pillarOffset, worldPillarOffset);
  9591. if (convexPos.distanceTo(worldPillarOffset) < hfShape.pillarConvex.boundingSphereRadius + convexShape.boundingSphereRadius) {
  9592. intersecting = this.convexConvex(convexShape, hfShape.pillarConvex, convexPos, worldPillarOffset, convexQuat, hfQuat, convexBody, hfBody, null, null, justTest, faceList, null);
  9593. }
  9594. if (justTest && intersecting) {
  9595. return true;
  9596. }
  9597. }
  9598. }
  9599. }
  9600. sphereParticle(sj, si, xj, xi, qj, qi, bj, bi, rsi, rsj, justTest) {
  9601. // The normal is the unit vector from sphere center to particle center
  9602. const normal = particleSphere_normal;
  9603. normal.set(0, 0, 1);
  9604. xi.vsub(xj, normal);
  9605. const lengthSquared = normal.lengthSquared();
  9606. if (lengthSquared <= sj.radius * sj.radius) {
  9607. if (justTest) {
  9608. return true;
  9609. }
  9610. const r = this.createContactEquation(bi, bj, si, sj, rsi, rsj);
  9611. normal.normalize();
  9612. r.rj.copy(normal);
  9613. r.rj.scale(sj.radius, r.rj);
  9614. r.ni.copy(normal); // Contact normal
  9615. r.ni.negate(r.ni);
  9616. r.ri.set(0, 0, 0); // Center of particle
  9617. this.result.push(r);
  9618. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9619. }
  9620. }
  9621. planeParticle(sj, si, xj, xi, qj, qi, bj, bi, rsi, rsj, justTest) {
  9622. const normal = particlePlane_normal;
  9623. normal.set(0, 0, 1);
  9624. bj.quaternion.vmult(normal, normal); // Turn normal according to plane orientation
  9625. const relpos = particlePlane_relpos;
  9626. xi.vsub(bj.position, relpos);
  9627. const dot = normal.dot(relpos);
  9628. if (dot <= 0.0) {
  9629. if (justTest) {
  9630. return true;
  9631. }
  9632. const r = this.createContactEquation(bi, bj, si, sj, rsi, rsj);
  9633. r.ni.copy(normal); // Contact normal is the plane normal
  9634. r.ni.negate(r.ni);
  9635. r.ri.set(0, 0, 0); // Center of particle
  9636. // Get particle position projected on plane
  9637. const projected = particlePlane_projected;
  9638. normal.scale(normal.dot(xi), projected);
  9639. xi.vsub(projected, projected); //projected.vadd(bj.position,projected);
  9640. // rj is now the projected world position minus plane position
  9641. r.rj.copy(projected);
  9642. this.result.push(r);
  9643. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9644. }
  9645. }
  9646. boxParticle(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest) {
  9647. si.convexPolyhedronRepresentation.material = si.material;
  9648. si.convexPolyhedronRepresentation.collisionResponse = si.collisionResponse;
  9649. return this.convexParticle(si.convexPolyhedronRepresentation, sj, xi, xj, qi, qj, bi, bj, si, sj, justTest);
  9650. }
  9651. convexParticle(sj, si, xj, xi, qj, qi, bj, bi, rsi, rsj, justTest) {
  9652. let penetratedFaceIndex = -1;
  9653. const penetratedFaceNormal = convexParticle_penetratedFaceNormal;
  9654. const worldPenetrationVec = convexParticle_worldPenetrationVec;
  9655. let minPenetration = null;
  9656. const local = convexParticle_local;
  9657. local.copy(xi);
  9658. local.vsub(xj, local); // Convert position to relative the convex origin
  9659. qj.conjugate(cqj);
  9660. cqj.vmult(local, local);
  9661. if (sj.pointIsInside(local)) {
  9662. if (sj.worldVerticesNeedsUpdate) {
  9663. sj.computeWorldVertices(xj, qj);
  9664. }
  9665. if (sj.worldFaceNormalsNeedsUpdate) {
  9666. sj.computeWorldFaceNormals(qj);
  9667. } // For each world polygon in the polyhedra
  9668. for (let i = 0, nfaces = sj.faces.length; i !== nfaces; i++) {
  9669. // Construct world face vertices
  9670. const verts = [sj.worldVertices[sj.faces[i][0]]];
  9671. const normal = sj.worldFaceNormals[i]; // Check how much the particle penetrates the polygon plane.
  9672. xi.vsub(verts[0], convexParticle_vertexToParticle);
  9673. const penetration = -normal.dot(convexParticle_vertexToParticle);
  9674. if (minPenetration === null || Math.abs(penetration) < Math.abs(minPenetration)) {
  9675. if (justTest) {
  9676. return true;
  9677. }
  9678. minPenetration = penetration;
  9679. penetratedFaceIndex = i;
  9680. penetratedFaceNormal.copy(normal);
  9681. }
  9682. }
  9683. if (penetratedFaceIndex !== -1) {
  9684. // Setup contact
  9685. const r = this.createContactEquation(bi, bj, si, sj, rsi, rsj);
  9686. penetratedFaceNormal.scale(minPenetration, worldPenetrationVec); // rj is the particle position projected to the face
  9687. worldPenetrationVec.vadd(xi, worldPenetrationVec);
  9688. worldPenetrationVec.vsub(xj, worldPenetrationVec);
  9689. r.rj.copy(worldPenetrationVec); //const projectedToFace = xi.vsub(xj).vadd(worldPenetrationVec);
  9690. //projectedToFace.copy(r.rj);
  9691. //qj.vmult(r.rj,r.rj);
  9692. penetratedFaceNormal.negate(r.ni); // Contact normal
  9693. r.ri.set(0, 0, 0); // Center of particle
  9694. const ri = r.ri;
  9695. const rj = r.rj; // Make relative to bodies
  9696. ri.vadd(xi, ri);
  9697. ri.vsub(bi.position, ri);
  9698. rj.vadd(xj, rj);
  9699. rj.vsub(bj.position, rj);
  9700. this.result.push(r);
  9701. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9702. } else {
  9703. console.warn('Point found inside convex, but did not find penetrating face!');
  9704. }
  9705. }
  9706. }
  9707. heightfieldCylinder(hfShape, convexShape, hfPos, convexPos, hfQuat, convexQuat, hfBody, convexBody, rsi, rsj, justTest) {
  9708. return this.convexHeightfield(convexShape, hfShape, convexPos, hfPos, convexQuat, hfQuat, convexBody, hfBody, rsi, rsj, justTest);
  9709. }
  9710. particleCylinder(si, sj, xi, xj, qi, qj, bi, bj, rsi, rsj, justTest) {
  9711. return this.convexParticle(sj, si, xj, xi, qj, qi, bj, bi, rsi, rsj, justTest);
  9712. }
  9713. sphereTrimesh(sphereShape, trimeshShape, spherePos, trimeshPos, sphereQuat, trimeshQuat, sphereBody, trimeshBody, rsi, rsj, justTest) {
  9714. const edgeVertexA = sphereTrimesh_edgeVertexA;
  9715. const edgeVertexB = sphereTrimesh_edgeVertexB;
  9716. const edgeVector = sphereTrimesh_edgeVector;
  9717. const edgeVectorUnit = sphereTrimesh_edgeVectorUnit;
  9718. const localSpherePos = sphereTrimesh_localSpherePos;
  9719. const tmp = sphereTrimesh_tmp;
  9720. const localSphereAABB = sphereTrimesh_localSphereAABB;
  9721. const v2 = sphereTrimesh_v2;
  9722. const relpos = sphereTrimesh_relpos;
  9723. const triangles = sphereTrimesh_triangles; // Convert sphere position to local in the trimesh
  9724. Transform.pointToLocalFrame(trimeshPos, trimeshQuat, spherePos, localSpherePos); // Get the aabb of the sphere locally in the trimesh
  9725. const sphereRadius = sphereShape.radius;
  9726. localSphereAABB.lowerBound.set(localSpherePos.x - sphereRadius, localSpherePos.y - sphereRadius, localSpherePos.z - sphereRadius);
  9727. localSphereAABB.upperBound.set(localSpherePos.x + sphereRadius, localSpherePos.y + sphereRadius, localSpherePos.z + sphereRadius);
  9728. trimeshShape.getTrianglesInAABB(localSphereAABB, triangles); //for (let i = 0; i < trimeshShape.indices.length / 3; i++) triangles.push(i); // All
  9729. // Vertices
  9730. const v = sphereTrimesh_v;
  9731. const radiusSquared = sphereShape.radius * sphereShape.radius;
  9732. for (let i = 0; i < triangles.length; i++) {
  9733. for (let j = 0; j < 3; j++) {
  9734. trimeshShape.getVertex(trimeshShape.indices[triangles[i] * 3 + j], v); // Check vertex overlap in sphere
  9735. v.vsub(localSpherePos, relpos);
  9736. if (relpos.lengthSquared() <= radiusSquared) {
  9737. // Safe up
  9738. v2.copy(v);
  9739. Transform.pointToWorldFrame(trimeshPos, trimeshQuat, v2, v);
  9740. v.vsub(spherePos, relpos);
  9741. if (justTest) {
  9742. return true;
  9743. }
  9744. let r = this.createContactEquation(sphereBody, trimeshBody, sphereShape, trimeshShape, rsi, rsj);
  9745. r.ni.copy(relpos);
  9746. r.ni.normalize(); // ri is the vector from sphere center to the sphere surface
  9747. r.ri.copy(r.ni);
  9748. r.ri.scale(sphereShape.radius, r.ri);
  9749. r.ri.vadd(spherePos, r.ri);
  9750. r.ri.vsub(sphereBody.position, r.ri);
  9751. r.rj.copy(v);
  9752. r.rj.vsub(trimeshBody.position, r.rj); // Store result
  9753. this.result.push(r);
  9754. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9755. }
  9756. }
  9757. } // Check all edges
  9758. for (let i = 0; i < triangles.length; i++) {
  9759. for (let j = 0; j < 3; j++) {
  9760. trimeshShape.getVertex(trimeshShape.indices[triangles[i] * 3 + j], edgeVertexA);
  9761. trimeshShape.getVertex(trimeshShape.indices[triangles[i] * 3 + (j + 1) % 3], edgeVertexB);
  9762. edgeVertexB.vsub(edgeVertexA, edgeVector); // Project sphere position to the edge
  9763. localSpherePos.vsub(edgeVertexB, tmp);
  9764. const positionAlongEdgeB = tmp.dot(edgeVector);
  9765. localSpherePos.vsub(edgeVertexA, tmp);
  9766. let positionAlongEdgeA = tmp.dot(edgeVector);
  9767. if (positionAlongEdgeA > 0 && positionAlongEdgeB < 0) {
  9768. // Now check the orthogonal distance from edge to sphere center
  9769. localSpherePos.vsub(edgeVertexA, tmp);
  9770. edgeVectorUnit.copy(edgeVector);
  9771. edgeVectorUnit.normalize();
  9772. positionAlongEdgeA = tmp.dot(edgeVectorUnit);
  9773. edgeVectorUnit.scale(positionAlongEdgeA, tmp);
  9774. tmp.vadd(edgeVertexA, tmp); // tmp is now the sphere center position projected to the edge, defined locally in the trimesh frame
  9775. const dist = tmp.distanceTo(localSpherePos);
  9776. if (dist < sphereShape.radius) {
  9777. if (justTest) {
  9778. return true;
  9779. }
  9780. const r = this.createContactEquation(sphereBody, trimeshBody, sphereShape, trimeshShape, rsi, rsj);
  9781. tmp.vsub(localSpherePos, r.ni);
  9782. r.ni.normalize();
  9783. r.ni.scale(sphereShape.radius, r.ri);
  9784. r.ri.vadd(spherePos, r.ri);
  9785. r.ri.vsub(sphereBody.position, r.ri);
  9786. Transform.pointToWorldFrame(trimeshPos, trimeshQuat, tmp, tmp);
  9787. tmp.vsub(trimeshBody.position, r.rj);
  9788. Transform.vectorToWorldFrame(trimeshQuat, r.ni, r.ni);
  9789. Transform.vectorToWorldFrame(trimeshQuat, r.ri, r.ri);
  9790. this.result.push(r);
  9791. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9792. }
  9793. }
  9794. }
  9795. } // Triangle faces
  9796. const va = sphereTrimesh_va;
  9797. const vb = sphereTrimesh_vb;
  9798. const vc = sphereTrimesh_vc;
  9799. const normal = sphereTrimesh_normal;
  9800. for (let i = 0, N = triangles.length; i !== N; i++) {
  9801. trimeshShape.getTriangleVertices(triangles[i], va, vb, vc);
  9802. trimeshShape.getNormal(triangles[i], normal);
  9803. localSpherePos.vsub(va, tmp);
  9804. let dist = tmp.dot(normal);
  9805. normal.scale(dist, tmp);
  9806. localSpherePos.vsub(tmp, tmp); // tmp is now the sphere position projected to the triangle plane
  9807. dist = tmp.distanceTo(localSpherePos);
  9808. if (Ray.pointInTriangle(tmp, va, vb, vc) && dist < sphereShape.radius) {
  9809. if (justTest) {
  9810. return true;
  9811. }
  9812. let r = this.createContactEquation(sphereBody, trimeshBody, sphereShape, trimeshShape, rsi, rsj);
  9813. tmp.vsub(localSpherePos, r.ni);
  9814. r.ni.normalize();
  9815. r.ni.scale(sphereShape.radius, r.ri);
  9816. r.ri.vadd(spherePos, r.ri);
  9817. r.ri.vsub(sphereBody.position, r.ri);
  9818. Transform.pointToWorldFrame(trimeshPos, trimeshQuat, tmp, tmp);
  9819. tmp.vsub(trimeshBody.position, r.rj);
  9820. Transform.vectorToWorldFrame(trimeshQuat, r.ni, r.ni);
  9821. Transform.vectorToWorldFrame(trimeshQuat, r.ri, r.ri);
  9822. this.result.push(r);
  9823. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9824. }
  9825. }
  9826. triangles.length = 0;
  9827. }
  9828. planeTrimesh(planeShape, trimeshShape, planePos, trimeshPos, planeQuat, trimeshQuat, planeBody, trimeshBody, rsi, rsj, justTest) {
  9829. // Make contacts!
  9830. const v = new Vec3();
  9831. const normal = planeTrimesh_normal;
  9832. normal.set(0, 0, 1);
  9833. planeQuat.vmult(normal, normal); // Turn normal according to plane
  9834. for (let i = 0; i < trimeshShape.vertices.length / 3; i++) {
  9835. // Get world vertex from trimesh
  9836. trimeshShape.getVertex(i, v); // Safe up
  9837. const v2 = new Vec3();
  9838. v2.copy(v);
  9839. Transform.pointToWorldFrame(trimeshPos, trimeshQuat, v2, v); // Check plane side
  9840. const relpos = planeTrimesh_relpos;
  9841. v.vsub(planePos, relpos);
  9842. const dot = normal.dot(relpos);
  9843. if (dot <= 0.0) {
  9844. if (justTest) {
  9845. return true;
  9846. }
  9847. const r = this.createContactEquation(planeBody, trimeshBody, planeShape, trimeshShape, rsi, rsj);
  9848. r.ni.copy(normal); // Contact normal is the plane normal
  9849. // Get vertex position projected on plane
  9850. const projected = planeTrimesh_projected;
  9851. normal.scale(relpos.dot(normal), projected);
  9852. v.vsub(projected, projected); // ri is the projected world position minus plane position
  9853. r.ri.copy(projected);
  9854. r.ri.vsub(planeBody.position, r.ri);
  9855. r.rj.copy(v);
  9856. r.rj.vsub(trimeshBody.position, r.rj); // Store result
  9857. this.result.push(r);
  9858. this.createFrictionEquationsFromContact(r, this.frictionResult);
  9859. }
  9860. }
  9861. } // convexTrimesh(
  9862. // si: ConvexPolyhedron, sj: Trimesh, xi: Vec3, xj: Vec3, qi: Quaternion, qj: Quaternion,
  9863. // bi: Body, bj: Body, rsi?: Shape | null, rsj?: Shape | null,
  9864. // faceListA?: number[] | null, faceListB?: number[] | null,
  9865. // ) {
  9866. // const sepAxis = convexConvex_sepAxis;
  9867. // if(xi.distanceTo(xj) > si.boundingSphereRadius + sj.boundingSphereRadius){
  9868. // return;
  9869. // }
  9870. // // Construct a temp hull for each triangle
  9871. // const hullB = new ConvexPolyhedron();
  9872. // hullB.faces = [[0,1,2]];
  9873. // const va = new Vec3();
  9874. // const vb = new Vec3();
  9875. // const vc = new Vec3();
  9876. // hullB.vertices = [
  9877. // va,
  9878. // vb,
  9879. // vc
  9880. // ];
  9881. // for (let i = 0; i < sj.indices.length / 3; i++) {
  9882. // const triangleNormal = new Vec3();
  9883. // sj.getNormal(i, triangleNormal);
  9884. // hullB.faceNormals = [triangleNormal];
  9885. // sj.getTriangleVertices(i, va, vb, vc);
  9886. // let d = si.testSepAxis(triangleNormal, hullB, xi, qi, xj, qj);
  9887. // if(!d){
  9888. // triangleNormal.scale(-1, triangleNormal);
  9889. // d = si.testSepAxis(triangleNormal, hullB, xi, qi, xj, qj);
  9890. // if(!d){
  9891. // continue;
  9892. // }
  9893. // }
  9894. // const res: ConvexPolyhedronContactPoint[] = [];
  9895. // const q = convexConvex_q;
  9896. // si.clipAgainstHull(xi,qi,hullB,xj,qj,triangleNormal,-100,100,res);
  9897. // for(let j = 0; j !== res.length; j++){
  9898. // const r = this.createContactEquation(bi,bj,si,sj,rsi,rsj),
  9899. // ri = r.ri,
  9900. // rj = r.rj;
  9901. // r.ni.copy(triangleNormal);
  9902. // r.ni.negate(r.ni);
  9903. // res[j].normal.negate(q);
  9904. // q.mult(res[j].depth, q);
  9905. // res[j].point.vadd(q, ri);
  9906. // rj.copy(res[j].point);
  9907. // // Contact points are in world coordinates. Transform back to relative
  9908. // ri.vsub(xi,ri);
  9909. // rj.vsub(xj,rj);
  9910. // // Make relative to bodies
  9911. // ri.vadd(xi, ri);
  9912. // ri.vsub(bi.position, ri);
  9913. // rj.vadd(xj, rj);
  9914. // rj.vsub(bj.position, rj);
  9915. // result.push(r);
  9916. // }
  9917. // }
  9918. // }
  9919. }
  9920. const averageNormal = new Vec3();
  9921. const averageContactPointA = new Vec3();
  9922. const averageContactPointB = new Vec3();
  9923. const tmpVec1 = new Vec3();
  9924. const tmpVec2 = new Vec3();
  9925. const tmpQuat1 = new Quaternion();
  9926. const tmpQuat2 = new Quaternion();
  9927. const planeTrimesh_normal = new Vec3();
  9928. const planeTrimesh_relpos = new Vec3();
  9929. const planeTrimesh_projected = new Vec3();
  9930. const sphereTrimesh_normal = new Vec3();
  9931. const sphereTrimesh_relpos = new Vec3();
  9932. const sphereTrimesh_v = new Vec3();
  9933. const sphereTrimesh_v2 = new Vec3();
  9934. const sphereTrimesh_edgeVertexA = new Vec3();
  9935. const sphereTrimesh_edgeVertexB = new Vec3();
  9936. const sphereTrimesh_edgeVector = new Vec3();
  9937. const sphereTrimesh_edgeVectorUnit = new Vec3();
  9938. const sphereTrimesh_localSpherePos = new Vec3();
  9939. const sphereTrimesh_tmp = new Vec3();
  9940. const sphereTrimesh_va = new Vec3();
  9941. const sphereTrimesh_vb = new Vec3();
  9942. const sphereTrimesh_vc = new Vec3();
  9943. const sphereTrimesh_localSphereAABB = new AABB();
  9944. const sphereTrimesh_triangles = [];
  9945. const point_on_plane_to_sphere = new Vec3();
  9946. const plane_to_sphere_ortho = new Vec3(); // See http://bulletphysics.com/Bullet/BulletFull/SphereTriangleDetector_8cpp_source.html
  9947. const pointInPolygon_edge = new Vec3();
  9948. const pointInPolygon_edge_x_normal = new Vec3();
  9949. const pointInPolygon_vtp = new Vec3();
  9950. function pointInPolygon(verts, normal, p) {
  9951. let positiveResult = null;
  9952. const N = verts.length;
  9953. for (let i = 0; i !== N; i++) {
  9954. const v = verts[i]; // Get edge to the next vertex
  9955. const edge = pointInPolygon_edge;
  9956. verts[(i + 1) % N].vsub(v, edge); // Get cross product between polygon normal and the edge
  9957. const edge_x_normal = pointInPolygon_edge_x_normal; //const edge_x_normal = new Vec3();
  9958. edge.cross(normal, edge_x_normal); // Get vector between point and current vertex
  9959. const vertex_to_p = pointInPolygon_vtp;
  9960. p.vsub(v, vertex_to_p); // This dot product determines which side of the edge the point is
  9961. const r = edge_x_normal.dot(vertex_to_p); // If all such dot products have same sign, we are inside the polygon.
  9962. if (positiveResult === null || r > 0 && positiveResult === true || r <= 0 && positiveResult === false) {
  9963. if (positiveResult === null) {
  9964. positiveResult = r > 0;
  9965. }
  9966. continue;
  9967. } else {
  9968. return false; // Encountered some other sign. Exit.
  9969. }
  9970. } // If we got here, all dot products were of the same sign.
  9971. return true;
  9972. }
  9973. const box_to_sphere = new Vec3();
  9974. const sphereBox_ns = new Vec3();
  9975. const sphereBox_ns1 = new Vec3();
  9976. const sphereBox_ns2 = new Vec3();
  9977. const sphereBox_sides = [new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3(), new Vec3()];
  9978. const sphereBox_sphere_to_corner = new Vec3();
  9979. const sphereBox_side_ns = new Vec3();
  9980. const sphereBox_side_ns1 = new Vec3();
  9981. const sphereBox_side_ns2 = new Vec3();
  9982. const convex_to_sphere = new Vec3();
  9983. const sphereConvex_edge = new Vec3();
  9984. const sphereConvex_edgeUnit = new Vec3();
  9985. const sphereConvex_sphereToCorner = new Vec3();
  9986. const sphereConvex_worldCorner = new Vec3();
  9987. const sphereConvex_worldNormal = new Vec3();
  9988. const sphereConvex_worldPoint = new Vec3();
  9989. const sphereConvex_worldSpherePointClosestToPlane = new Vec3();
  9990. const sphereConvex_penetrationVec = new Vec3();
  9991. const sphereConvex_sphereToWorldPoint = new Vec3();
  9992. const planeConvex_v = new Vec3();
  9993. const planeConvex_normal = new Vec3();
  9994. const planeConvex_relpos = new Vec3();
  9995. const planeConvex_projected = new Vec3();
  9996. const convexConvex_sepAxis = new Vec3();
  9997. const convexConvex_q = new Vec3();
  9998. const particlePlane_normal = new Vec3();
  9999. const particlePlane_relpos = new Vec3();
  10000. const particlePlane_projected = new Vec3();
  10001. const particleSphere_normal = new Vec3(); // WIP
  10002. const cqj = new Quaternion();
  10003. const convexParticle_local = new Vec3();
  10004. const convexParticle_penetratedFaceNormal = new Vec3();
  10005. const convexParticle_vertexToParticle = new Vec3();
  10006. const convexParticle_worldPenetrationVec = new Vec3();
  10007. const convexHeightfield_tmp1 = new Vec3();
  10008. const convexHeightfield_tmp2 = new Vec3();
  10009. const convexHeightfield_faceList = [0];
  10010. const sphereHeightfield_tmp1 = new Vec3();
  10011. const sphereHeightfield_tmp2 = new Vec3();
  10012. class OverlapKeeper {
  10013. /**
  10014. * @todo Remove useless constructor
  10015. */
  10016. constructor() {
  10017. this.current = void 0;
  10018. this.previous = void 0;
  10019. this.current = [];
  10020. this.previous = [];
  10021. }
  10022. /**
  10023. * getKey
  10024. */
  10025. getKey(i, j) {
  10026. if (j < i) {
  10027. const temp = j;
  10028. j = i;
  10029. i = temp;
  10030. }
  10031. return i << 16 | j;
  10032. }
  10033. /**
  10034. * set
  10035. */
  10036. set(i, j) {
  10037. // Insertion sort. This way the diff will have linear complexity.
  10038. const key = this.getKey(i, j);
  10039. const current = this.current;
  10040. let index = 0;
  10041. while (key > current[index]) {
  10042. index++;
  10043. }
  10044. if (key === current[index]) {
  10045. return; // Pair was already added
  10046. }
  10047. for (let j = current.length - 1; j >= index; j--) {
  10048. current[j + 1] = current[j];
  10049. }
  10050. current[index] = key;
  10051. }
  10052. /**
  10053. * tick
  10054. */
  10055. tick() {
  10056. const tmp = this.current;
  10057. this.current = this.previous;
  10058. this.previous = tmp;
  10059. this.current.length = 0;
  10060. }
  10061. /**
  10062. * getDiff
  10063. */
  10064. getDiff(additions, removals) {
  10065. const a = this.current;
  10066. const b = this.previous;
  10067. const al = a.length;
  10068. const bl = b.length;
  10069. let j = 0;
  10070. for (let i = 0; i < al; i++) {
  10071. let found = false;
  10072. const keyA = a[i];
  10073. while (keyA > b[j]) {
  10074. j++;
  10075. }
  10076. found = keyA === b[j];
  10077. if (!found) {
  10078. unpackAndPush(additions, keyA);
  10079. }
  10080. }
  10081. j = 0;
  10082. for (let i = 0; i < bl; i++) {
  10083. let found = false;
  10084. const keyB = b[i];
  10085. while (keyB > a[j]) {
  10086. j++;
  10087. }
  10088. found = a[j] === keyB;
  10089. if (!found) {
  10090. unpackAndPush(removals, keyB);
  10091. }
  10092. }
  10093. }
  10094. }
  10095. function unpackAndPush(array, key) {
  10096. array.push((key & 0xffff0000) >> 16, key & 0x0000ffff);
  10097. }
  10098. /**
  10099. * TupleDictionary
  10100. */
  10101. class TupleDictionary {
  10102. constructor() {
  10103. this.data = {
  10104. keys: []
  10105. };
  10106. }
  10107. /** get */
  10108. get(i, j) {
  10109. if (i > j) {
  10110. // swap
  10111. const temp = j;
  10112. j = i;
  10113. i = temp;
  10114. }
  10115. return this.data[i + "-" + j];
  10116. }
  10117. /** set */
  10118. set(i, j, value) {
  10119. if (i > j) {
  10120. const temp = j;
  10121. j = i;
  10122. i = temp;
  10123. }
  10124. const key = i + "-" + j; // Check if key already exists
  10125. if (!this.get(i, j)) {
  10126. this.data.keys.push(key);
  10127. }
  10128. this.data[key] = value;
  10129. }
  10130. /** reset */
  10131. reset() {
  10132. const data = this.data;
  10133. const keys = data.keys;
  10134. while (keys.length > 0) {
  10135. const key = keys.pop();
  10136. delete data[key];
  10137. }
  10138. }
  10139. }
  10140. /**
  10141. * The physics world
  10142. */
  10143. class World extends EventTarget {
  10144. /**
  10145. * Currently / last used timestep. Is set to -1 if not available. This value is updated before each internal step, which means that it is "fresh" inside event callbacks.
  10146. */
  10147. /**
  10148. * Makes bodies go to sleep when they've been inactive.
  10149. * @default false
  10150. */
  10151. /**
  10152. * All the current contacts (instances of ContactEquation) in the world.
  10153. */
  10154. /**
  10155. * How often to normalize quaternions. Set to 0 for every step, 1 for every second etc.. A larger value increases performance. If bodies tend to explode, set to a smaller value (zero to be sure nothing can go wrong).
  10156. * @default 0
  10157. */
  10158. /**
  10159. * Set to true to use fast quaternion normalization. It is often enough accurate to use.
  10160. * If bodies tend to explode, set to false.
  10161. * @default false
  10162. */
  10163. /**
  10164. * The wall-clock time since simulation start.
  10165. */
  10166. /**
  10167. * Number of timesteps taken since start.
  10168. */
  10169. /**
  10170. * Default and last timestep sizes.
  10171. */
  10172. /**
  10173. * The gravity of the world.
  10174. */
  10175. /**
  10176. * The broadphase algorithm to use.
  10177. * @default NaiveBroadphase
  10178. */
  10179. /**
  10180. * All bodies in this world
  10181. */
  10182. /**
  10183. * True if any bodies are not sleeping, false if every body is sleeping.
  10184. */
  10185. /**
  10186. * The solver algorithm to use.
  10187. * @default GSSolver
  10188. */
  10189. /**
  10190. * collisionMatrix
  10191. */
  10192. /**
  10193. * CollisionMatrix from the previous step.
  10194. */
  10195. /**
  10196. * All added materials.
  10197. * @deprecated
  10198. * @todo Remove
  10199. */
  10200. /**
  10201. * All added contactmaterials.
  10202. */
  10203. /**
  10204. * Used to look up a ContactMaterial given two instances of Material.
  10205. */
  10206. /**
  10207. * The default material of the bodies.
  10208. */
  10209. /**
  10210. * This contact material is used if no suitable contactmaterial is found for a contact.
  10211. */
  10212. /**
  10213. * Time accumulator for interpolation.
  10214. * @see https://gafferongames.com/game-physics/fix-your-timestep/
  10215. */
  10216. /**
  10217. * Dispatched after a body has been added to the world.
  10218. */
  10219. /**
  10220. * Dispatched after a body has been removed from the world.
  10221. */
  10222. constructor(options = {}) {
  10223. super();
  10224. this.dt = void 0;
  10225. this.allowSleep = void 0;
  10226. this.contacts = void 0;
  10227. this.frictionEquations = void 0;
  10228. this.quatNormalizeSkip = void 0;
  10229. this.quatNormalizeFast = void 0;
  10230. this.time = void 0;
  10231. this.stepnumber = void 0;
  10232. this.default_dt = void 0;
  10233. this.nextId = void 0;
  10234. this.gravity = void 0;
  10235. this.broadphase = void 0;
  10236. this.bodies = void 0;
  10237. this.hasActiveBodies = void 0;
  10238. this.solver = void 0;
  10239. this.constraints = void 0;
  10240. this.narrowphase = void 0;
  10241. this.collisionMatrix = void 0;
  10242. this.collisionMatrixPrevious = void 0;
  10243. this.bodyOverlapKeeper = void 0;
  10244. this.shapeOverlapKeeper = void 0;
  10245. this.materials = void 0;
  10246. this.contactmaterials = void 0;
  10247. this.contactMaterialTable = void 0;
  10248. this.defaultMaterial = void 0;
  10249. this.defaultContactMaterial = void 0;
  10250. this.doProfiling = void 0;
  10251. this.profile = void 0;
  10252. this.accumulator = void 0;
  10253. this.subsystems = void 0;
  10254. this.addBodyEvent = void 0;
  10255. this.removeBodyEvent = void 0;
  10256. this.idToBodyMap = void 0;
  10257. this.dt = -1;
  10258. this.allowSleep = !!options.allowSleep;
  10259. this.contacts = [];
  10260. this.frictionEquations = [];
  10261. this.quatNormalizeSkip = options.quatNormalizeSkip !== undefined ? options.quatNormalizeSkip : 0;
  10262. this.quatNormalizeFast = options.quatNormalizeFast !== undefined ? options.quatNormalizeFast : false;
  10263. this.time = 0.0;
  10264. this.stepnumber = 0;
  10265. this.default_dt = 1 / 60;
  10266. this.nextId = 0;
  10267. this.gravity = new Vec3();
  10268. if (options.gravity) {
  10269. this.gravity.copy(options.gravity);
  10270. }
  10271. this.broadphase = options.broadphase !== undefined ? options.broadphase : new NaiveBroadphase();
  10272. this.bodies = [];
  10273. this.hasActiveBodies = false;
  10274. this.solver = options.solver !== undefined ? options.solver : new GSSolver();
  10275. this.constraints = [];
  10276. this.narrowphase = new Narrowphase(this);
  10277. this.collisionMatrix = new ArrayCollisionMatrix();
  10278. this.collisionMatrixPrevious = new ArrayCollisionMatrix();
  10279. this.bodyOverlapKeeper = new OverlapKeeper();
  10280. this.shapeOverlapKeeper = new OverlapKeeper();
  10281. this.materials = [];
  10282. this.contactmaterials = [];
  10283. this.contactMaterialTable = new TupleDictionary();
  10284. this.defaultMaterial = new Material('default');
  10285. this.defaultContactMaterial = new ContactMaterial(this.defaultMaterial, this.defaultMaterial, {
  10286. friction: 0.3,
  10287. restitution: 0.0
  10288. });
  10289. this.doProfiling = false;
  10290. this.profile = {
  10291. solve: 0,
  10292. makeContactConstraints: 0,
  10293. broadphase: 0,
  10294. integrate: 0,
  10295. narrowphase: 0
  10296. };
  10297. this.accumulator = 0;
  10298. this.subsystems = [];
  10299. this.addBodyEvent = {
  10300. type: 'addBody',
  10301. body: null
  10302. };
  10303. this.removeBodyEvent = {
  10304. type: 'removeBody',
  10305. body: null
  10306. };
  10307. this.idToBodyMap = {};
  10308. this.broadphase.setWorld(this);
  10309. }
  10310. /**
  10311. * Get the contact material between materials m1 and m2
  10312. * @return The contact material if it was found.
  10313. */
  10314. getContactMaterial(m1, m2) {
  10315. return this.contactMaterialTable.get(m1.id, m2.id);
  10316. }
  10317. /**
  10318. * Get number of objects in the world.
  10319. * @deprecated
  10320. */
  10321. numObjects() {
  10322. return this.bodies.length;
  10323. }
  10324. /**
  10325. * Store old collision state info
  10326. */
  10327. collisionMatrixTick() {
  10328. const temp = this.collisionMatrixPrevious;
  10329. this.collisionMatrixPrevious = this.collisionMatrix;
  10330. this.collisionMatrix = temp;
  10331. this.collisionMatrix.reset();
  10332. this.bodyOverlapKeeper.tick();
  10333. this.shapeOverlapKeeper.tick();
  10334. }
  10335. /**
  10336. * Add a constraint to the simulation.
  10337. */
  10338. addConstraint(c) {
  10339. this.constraints.push(c);
  10340. }
  10341. /**
  10342. * Removes a constraint
  10343. */
  10344. removeConstraint(c) {
  10345. const idx = this.constraints.indexOf(c);
  10346. if (idx !== -1) {
  10347. this.constraints.splice(idx, 1);
  10348. }
  10349. }
  10350. /**
  10351. * Raycast test
  10352. * @deprecated Use .raycastAll, .raycastClosest or .raycastAny instead.
  10353. */
  10354. rayTest(from, to, result) {
  10355. if (result instanceof RaycastResult) {
  10356. // Do raycastClosest
  10357. this.raycastClosest(from, to, {
  10358. skipBackfaces: true
  10359. }, result);
  10360. } else {
  10361. // Do raycastAll
  10362. this.raycastAll(from, to, {
  10363. skipBackfaces: true
  10364. }, result);
  10365. }
  10366. }
  10367. /**
  10368. * Ray cast against all bodies. The provided callback will be executed for each hit with a RaycastResult as single argument.
  10369. * @return True if any body was hit.
  10370. */
  10371. raycastAll(from, to, options = {}, callback) {
  10372. options.mode = Ray.ALL;
  10373. options.from = from;
  10374. options.to = to;
  10375. options.callback = callback;
  10376. return tmpRay.intersectWorld(this, options);
  10377. }
  10378. /**
  10379. * Ray cast, and stop at the first result. Note that the order is random - but the method is fast.
  10380. * @return True if any body was hit.
  10381. */
  10382. raycastAny(from, to, options = {}, result) {
  10383. options.mode = Ray.ANY;
  10384. options.from = from;
  10385. options.to = to;
  10386. options.result = result;
  10387. return tmpRay.intersectWorld(this, options);
  10388. }
  10389. /**
  10390. * Ray cast, and return information of the closest hit.
  10391. * @return True if any body was hit.
  10392. */
  10393. raycastClosest(from, to, options = {}, result) {
  10394. options.mode = Ray.CLOSEST;
  10395. options.from = from;
  10396. options.to = to;
  10397. options.result = result;
  10398. return tmpRay.intersectWorld(this, options);
  10399. }
  10400. /**
  10401. * Add a rigid body to the simulation.
  10402. * @todo If the simulation has not yet started, why recrete and copy arrays for each body? Accumulate in dynamic arrays in this case.
  10403. * @todo Adding an array of bodies should be possible. This would save some loops too
  10404. */
  10405. addBody(body) {
  10406. if (this.bodies.includes(body)) {
  10407. return;
  10408. }
  10409. body.index = this.bodies.length;
  10410. this.bodies.push(body);
  10411. body.world = this;
  10412. body.initPosition.copy(body.position);
  10413. body.initVelocity.copy(body.velocity);
  10414. body.timeLastSleepy = this.time;
  10415. if (body instanceof Body) {
  10416. body.initAngularVelocity.copy(body.angularVelocity);
  10417. body.initQuaternion.copy(body.quaternion);
  10418. }
  10419. this.collisionMatrix.setNumObjects(this.bodies.length);
  10420. this.addBodyEvent.body = body;
  10421. this.idToBodyMap[body.id] = body;
  10422. this.dispatchEvent(this.addBodyEvent);
  10423. }
  10424. /**
  10425. * Remove a rigid body from the simulation.
  10426. */
  10427. removeBody(body) {
  10428. body.world = null;
  10429. const n = this.bodies.length - 1;
  10430. const bodies = this.bodies;
  10431. const idx = bodies.indexOf(body);
  10432. if (idx !== -1) {
  10433. bodies.splice(idx, 1); // Todo: should use a garbage free method
  10434. // Recompute index
  10435. for (let i = 0; i !== bodies.length; i++) {
  10436. bodies[i].index = i;
  10437. }
  10438. this.collisionMatrix.setNumObjects(n);
  10439. this.removeBodyEvent.body = body;
  10440. delete this.idToBodyMap[body.id];
  10441. this.dispatchEvent(this.removeBodyEvent);
  10442. }
  10443. }
  10444. getBodyById(id) {
  10445. return this.idToBodyMap[id];
  10446. }
  10447. /**
  10448. * @todo Make a faster map
  10449. */
  10450. getShapeById(id) {
  10451. const bodies = this.bodies;
  10452. for (let i = 0; i < bodies.length; i++) {
  10453. const shapes = bodies[i].shapes;
  10454. for (let j = 0; j < shapes.length; j++) {
  10455. const shape = shapes[j];
  10456. if (shape.id === id) {
  10457. return shape;
  10458. }
  10459. }
  10460. }
  10461. return null;
  10462. }
  10463. /**
  10464. * Adds a material to the World.
  10465. * @deprecated
  10466. * @todo Remove
  10467. */
  10468. addMaterial(m) {
  10469. this.materials.push(m);
  10470. }
  10471. /**
  10472. * Adds a contact material to the World
  10473. */
  10474. addContactMaterial(cmat) {
  10475. // Add contact material
  10476. this.contactmaterials.push(cmat); // Add current contact material to the material table
  10477. this.contactMaterialTable.set(cmat.materials[0].id, cmat.materials[1].id, cmat);
  10478. }
  10479. /**
  10480. * Step the physics world forward in time.
  10481. *
  10482. * There are two modes. The simple mode is fixed timestepping without interpolation. In this case you only use the first argument. The second case uses interpolation. In that you also provide the time since the function was last used, as well as the maximum fixed timesteps to take.
  10483. *
  10484. * @param dt The fixed time step size to use.
  10485. * @param timeSinceLastCalled The time elapsed since the function was last called.
  10486. * @param maxSubSteps Maximum number of fixed steps to take per function call.
  10487. * @see https://web.archive.org/web/20180426154531/http://bulletphysics.org/mediawiki-1.5.8/index.php/Stepping_The_World#What_do_the_parameters_to_btDynamicsWorld::stepSimulation_mean.3F
  10488. * @example
  10489. * // fixed timestepping without interpolation
  10490. * world.step(1 / 60)
  10491. */
  10492. step(dt, timeSinceLastCalled, maxSubSteps = 10) {
  10493. if (timeSinceLastCalled === undefined) {
  10494. // Fixed, simple stepping
  10495. this.internalStep(dt); // Increment time
  10496. this.time += dt;
  10497. } else {
  10498. this.accumulator += timeSinceLastCalled;
  10499. const t0 = performance.now();
  10500. let substeps = 0;
  10501. while (this.accumulator >= dt && substeps < maxSubSteps) {
  10502. // Do fixed steps to catch up
  10503. this.internalStep(dt);
  10504. this.accumulator -= dt;
  10505. substeps++;
  10506. if (performance.now() - t0 > dt * 1000) {
  10507. // The framerate is not interactive anymore.
  10508. // We are below the target framerate.
  10509. // Better bail out.
  10510. break;
  10511. }
  10512. } // Remove the excess accumulator, since we may not
  10513. // have had enough substeps available to catch up
  10514. this.accumulator = this.accumulator % dt;
  10515. const t = this.accumulator / dt;
  10516. for (let j = 0; j !== this.bodies.length; j++) {
  10517. const b = this.bodies[j];
  10518. b.previousPosition.lerp(b.position, t, b.interpolatedPosition);
  10519. b.previousQuaternion.slerp(b.quaternion, t, b.interpolatedQuaternion);
  10520. b.previousQuaternion.normalize();
  10521. }
  10522. this.time += timeSinceLastCalled;
  10523. }
  10524. }
  10525. internalStep(dt) {
  10526. this.dt = dt;
  10527. const contacts = this.contacts;
  10528. const p1 = World_step_p1;
  10529. const p2 = World_step_p2;
  10530. const N = this.numObjects();
  10531. const bodies = this.bodies;
  10532. const solver = this.solver;
  10533. const gravity = this.gravity;
  10534. const doProfiling = this.doProfiling;
  10535. const profile = this.profile;
  10536. const DYNAMIC = Body.DYNAMIC;
  10537. let profilingStart = -Infinity;
  10538. const constraints = this.constraints;
  10539. const frictionEquationPool = World_step_frictionEquationPool;
  10540. gravity.length();
  10541. const gx = gravity.x;
  10542. const gy = gravity.y;
  10543. const gz = gravity.z;
  10544. let i = 0;
  10545. if (doProfiling) {
  10546. profilingStart = performance.now();
  10547. } // Add gravity to all objects
  10548. for (i = 0; i !== N; i++) {
  10549. const bi = bodies[i];
  10550. if (bi.type === DYNAMIC) {
  10551. // Only for dynamic bodies
  10552. const f = bi.force;
  10553. const m = bi.mass;
  10554. f.x += m * gx;
  10555. f.y += m * gy;
  10556. f.z += m * gz;
  10557. }
  10558. } // Update subsystems
  10559. for (let i = 0, Nsubsystems = this.subsystems.length; i !== Nsubsystems; i++) {
  10560. this.subsystems[i].update();
  10561. } // Collision detection
  10562. if (doProfiling) {
  10563. profilingStart = performance.now();
  10564. }
  10565. p1.length = 0; // Clean up pair arrays from last step
  10566. p2.length = 0;
  10567. this.broadphase.collisionPairs(this, p1, p2);
  10568. if (doProfiling) {
  10569. profile.broadphase = performance.now() - profilingStart;
  10570. } // Remove constrained pairs with collideConnected == false
  10571. let Nconstraints = constraints.length;
  10572. for (i = 0; i !== Nconstraints; i++) {
  10573. const c = constraints[i];
  10574. if (!c.collideConnected) {
  10575. for (let j = p1.length - 1; j >= 0; j -= 1) {
  10576. if (c.bodyA === p1[j] && c.bodyB === p2[j] || c.bodyB === p1[j] && c.bodyA === p2[j]) {
  10577. p1.splice(j, 1);
  10578. p2.splice(j, 1);
  10579. }
  10580. }
  10581. }
  10582. }
  10583. this.collisionMatrixTick(); // Generate contacts
  10584. if (doProfiling) {
  10585. profilingStart = performance.now();
  10586. }
  10587. const oldcontacts = World_step_oldContacts;
  10588. const NoldContacts = contacts.length;
  10589. for (i = 0; i !== NoldContacts; i++) {
  10590. oldcontacts.push(contacts[i]);
  10591. }
  10592. contacts.length = 0; // Transfer FrictionEquation from current list to the pool for reuse
  10593. const NoldFrictionEquations = this.frictionEquations.length;
  10594. for (i = 0; i !== NoldFrictionEquations; i++) {
  10595. frictionEquationPool.push(this.frictionEquations[i]);
  10596. }
  10597. this.frictionEquations.length = 0;
  10598. this.narrowphase.getContacts(p1, p2, this, contacts, oldcontacts, // To be reused
  10599. this.frictionEquations, frictionEquationPool);
  10600. if (doProfiling) {
  10601. profile.narrowphase = performance.now() - profilingStart;
  10602. } // Loop over all collisions
  10603. if (doProfiling) {
  10604. profilingStart = performance.now();
  10605. } // Add all friction eqs
  10606. for (i = 0; i < this.frictionEquations.length; i++) {
  10607. solver.addEquation(this.frictionEquations[i]);
  10608. }
  10609. const ncontacts = contacts.length;
  10610. for (let k = 0; k !== ncontacts; k++) {
  10611. // Current contact
  10612. const c = contacts[k]; // Get current collision indeces
  10613. const bi = c.bi;
  10614. const bj = c.bj;
  10615. const si = c.si;
  10616. const sj = c.sj; // Get collision properties
  10617. let cm;
  10618. if (bi.material && bj.material) {
  10619. cm = this.getContactMaterial(bi.material, bj.material) || this.defaultContactMaterial;
  10620. } else {
  10621. cm = this.defaultContactMaterial;
  10622. } // c.enabled = bi.collisionResponse && bj.collisionResponse && si.collisionResponse && sj.collisionResponse;
  10623. cm.friction; // c.restitution = cm.restitution;
  10624. // If friction or restitution were specified in the material, use them
  10625. if (bi.material && bj.material) {
  10626. if (bi.material.friction >= 0 && bj.material.friction >= 0) {
  10627. bi.material.friction * bj.material.friction;
  10628. }
  10629. if (bi.material.restitution >= 0 && bj.material.restitution >= 0) {
  10630. c.restitution = bi.material.restitution * bj.material.restitution;
  10631. }
  10632. } // c.setSpookParams(
  10633. // cm.contactEquationStiffness,
  10634. // cm.contactEquationRelaxation,
  10635. // dt
  10636. // );
  10637. solver.addEquation(c); // // Add friction constraint equation
  10638. // if(mu > 0){
  10639. // // Create 2 tangent equations
  10640. // const mug = mu * gnorm;
  10641. // const reducedMass = (bi.invMass + bj.invMass);
  10642. // if(reducedMass > 0){
  10643. // reducedMass = 1/reducedMass;
  10644. // }
  10645. // const pool = frictionEquationPool;
  10646. // const c1 = pool.length ? pool.pop() : new FrictionEquation(bi,bj,mug*reducedMass);
  10647. // const c2 = pool.length ? pool.pop() : new FrictionEquation(bi,bj,mug*reducedMass);
  10648. // this.frictionEquations.push(c1, c2);
  10649. // c1.bi = c2.bi = bi;
  10650. // c1.bj = c2.bj = bj;
  10651. // c1.minForce = c2.minForce = -mug*reducedMass;
  10652. // c1.maxForce = c2.maxForce = mug*reducedMass;
  10653. // // Copy over the relative vectors
  10654. // c1.ri.copy(c.ri);
  10655. // c1.rj.copy(c.rj);
  10656. // c2.ri.copy(c.ri);
  10657. // c2.rj.copy(c.rj);
  10658. // // Construct tangents
  10659. // c.ni.tangents(c1.t, c2.t);
  10660. // // Set spook params
  10661. // c1.setSpookParams(cm.frictionEquationStiffness, cm.frictionEquationRelaxation, dt);
  10662. // c2.setSpookParams(cm.frictionEquationStiffness, cm.frictionEquationRelaxation, dt);
  10663. // c1.enabled = c2.enabled = c.enabled;
  10664. // // Add equations to solver
  10665. // solver.addEquation(c1);
  10666. // solver.addEquation(c2);
  10667. // }
  10668. if (bi.allowSleep && bi.type === Body.DYNAMIC && bi.sleepState === Body.SLEEPING && bj.sleepState === Body.AWAKE && bj.type !== Body.STATIC) {
  10669. const speedSquaredB = bj.velocity.lengthSquared() + bj.angularVelocity.lengthSquared();
  10670. const speedLimitSquaredB = bj.sleepSpeedLimit ** 2;
  10671. if (speedSquaredB >= speedLimitSquaredB * 2) {
  10672. bi.wakeUpAfterNarrowphase = true;
  10673. }
  10674. }
  10675. if (bj.allowSleep && bj.type === Body.DYNAMIC && bj.sleepState === Body.SLEEPING && bi.sleepState === Body.AWAKE && bi.type !== Body.STATIC) {
  10676. const speedSquaredA = bi.velocity.lengthSquared() + bi.angularVelocity.lengthSquared();
  10677. const speedLimitSquaredA = bi.sleepSpeedLimit ** 2;
  10678. if (speedSquaredA >= speedLimitSquaredA * 2) {
  10679. bj.wakeUpAfterNarrowphase = true;
  10680. }
  10681. } // Now we know that i and j are in contact. Set collision matrix state
  10682. this.collisionMatrix.set(bi, bj, true);
  10683. if (!this.collisionMatrixPrevious.get(bi, bj)) {
  10684. // First contact!
  10685. // We reuse the collideEvent object, otherwise we will end up creating new objects for each new contact, even if there's no event listener attached.
  10686. World_step_collideEvent.body = bj;
  10687. World_step_collideEvent.contact = c;
  10688. bi.dispatchEvent(World_step_collideEvent);
  10689. World_step_collideEvent.body = bi;
  10690. bj.dispatchEvent(World_step_collideEvent);
  10691. }
  10692. this.bodyOverlapKeeper.set(bi.id, bj.id);
  10693. this.shapeOverlapKeeper.set(si.id, sj.id);
  10694. }
  10695. this.emitContactEvents();
  10696. if (doProfiling) {
  10697. profile.makeContactConstraints = performance.now() - profilingStart;
  10698. profilingStart = performance.now();
  10699. } // Wake up bodies
  10700. for (i = 0; i !== N; i++) {
  10701. const bi = bodies[i];
  10702. if (bi.wakeUpAfterNarrowphase) {
  10703. bi.wakeUp();
  10704. bi.wakeUpAfterNarrowphase = false;
  10705. }
  10706. } // Add user-added constraints
  10707. Nconstraints = constraints.length;
  10708. for (i = 0; i !== Nconstraints; i++) {
  10709. const c = constraints[i];
  10710. c.update();
  10711. for (let j = 0, Neq = c.equations.length; j !== Neq; j++) {
  10712. const eq = c.equations[j];
  10713. solver.addEquation(eq);
  10714. }
  10715. } // Solve the constrained system
  10716. solver.solve(dt, this);
  10717. if (doProfiling) {
  10718. profile.solve = performance.now() - profilingStart;
  10719. } // Remove all contacts from solver
  10720. solver.removeAllEquations(); // Apply damping, see http://code.google.com/p/bullet/issues/detail?id=74 for details
  10721. const pow = Math.pow;
  10722. for (i = 0; i !== N; i++) {
  10723. const bi = bodies[i];
  10724. if (bi.type & DYNAMIC) {
  10725. // Only for dynamic bodies
  10726. const ld = pow(1.0 - bi.linearDamping, dt);
  10727. const v = bi.velocity;
  10728. v.scale(ld, v);
  10729. const av = bi.angularVelocity;
  10730. if (av) {
  10731. const ad = pow(1.0 - bi.angularDamping, dt);
  10732. av.scale(ad, av);
  10733. }
  10734. }
  10735. }
  10736. this.dispatchEvent(World_step_preStepEvent); // Invoke pre-step callbacks
  10737. for (i = 0; i !== N; i++) {
  10738. const bi = bodies[i];
  10739. if (bi.preStep) {
  10740. bi.preStep.call(bi);
  10741. }
  10742. } // Leap frog
  10743. // vnew = v + h*f/m
  10744. // xnew = x + h*vnew
  10745. if (doProfiling) {
  10746. profilingStart = performance.now();
  10747. }
  10748. const stepnumber = this.stepnumber;
  10749. const quatNormalize = stepnumber % (this.quatNormalizeSkip + 1) === 0;
  10750. const quatNormalizeFast = this.quatNormalizeFast;
  10751. for (i = 0; i !== N; i++) {
  10752. bodies[i].integrate(dt, quatNormalize, quatNormalizeFast);
  10753. }
  10754. this.clearForces();
  10755. this.broadphase.dirty = true;
  10756. if (doProfiling) {
  10757. profile.integrate = performance.now() - profilingStart;
  10758. } // Update step number
  10759. this.stepnumber += 1;
  10760. this.dispatchEvent(World_step_postStepEvent); // Invoke post-step callbacks
  10761. for (i = 0; i !== N; i++) {
  10762. const bi = bodies[i];
  10763. const postStep = bi.postStep;
  10764. if (postStep) {
  10765. postStep.call(bi);
  10766. }
  10767. } // Sleeping update
  10768. let hasActiveBodies = true;
  10769. if (this.allowSleep) {
  10770. hasActiveBodies = false;
  10771. for (i = 0; i !== N; i++) {
  10772. const bi = bodies[i];
  10773. bi.sleepTick(this.time);
  10774. if (bi.sleepState !== Body.SLEEPING) {
  10775. hasActiveBodies = true;
  10776. }
  10777. }
  10778. }
  10779. this.hasActiveBodies = hasActiveBodies;
  10780. }
  10781. emitContactEvents() {
  10782. const hasBeginContact = this.hasAnyEventListener('beginContact');
  10783. const hasEndContact = this.hasAnyEventListener('endContact');
  10784. if (hasBeginContact || hasEndContact) {
  10785. this.bodyOverlapKeeper.getDiff(additions, removals);
  10786. }
  10787. if (hasBeginContact) {
  10788. for (let i = 0, l = additions.length; i < l; i += 2) {
  10789. beginContactEvent.bodyA = this.getBodyById(additions[i]);
  10790. beginContactEvent.bodyB = this.getBodyById(additions[i + 1]);
  10791. this.dispatchEvent(beginContactEvent);
  10792. }
  10793. beginContactEvent.bodyA = beginContactEvent.bodyB = null;
  10794. }
  10795. if (hasEndContact) {
  10796. for (let i = 0, l = removals.length; i < l; i += 2) {
  10797. endContactEvent.bodyA = this.getBodyById(removals[i]);
  10798. endContactEvent.bodyB = this.getBodyById(removals[i + 1]);
  10799. this.dispatchEvent(endContactEvent);
  10800. }
  10801. endContactEvent.bodyA = endContactEvent.bodyB = null;
  10802. }
  10803. additions.length = removals.length = 0;
  10804. const hasBeginShapeContact = this.hasAnyEventListener('beginShapeContact');
  10805. const hasEndShapeContact = this.hasAnyEventListener('endShapeContact');
  10806. if (hasBeginShapeContact || hasEndShapeContact) {
  10807. this.shapeOverlapKeeper.getDiff(additions, removals);
  10808. }
  10809. if (hasBeginShapeContact) {
  10810. for (let i = 0, l = additions.length; i < l; i += 2) {
  10811. const shapeA = this.getShapeById(additions[i]);
  10812. const shapeB = this.getShapeById(additions[i + 1]);
  10813. beginShapeContactEvent.shapeA = shapeA;
  10814. beginShapeContactEvent.shapeB = shapeB;
  10815. if (shapeA) beginShapeContactEvent.bodyA = shapeA.body;
  10816. if (shapeB) beginShapeContactEvent.bodyB = shapeB.body;
  10817. this.dispatchEvent(beginShapeContactEvent);
  10818. }
  10819. beginShapeContactEvent.bodyA = beginShapeContactEvent.bodyB = beginShapeContactEvent.shapeA = beginShapeContactEvent.shapeB = null;
  10820. }
  10821. if (hasEndShapeContact) {
  10822. for (let i = 0, l = removals.length; i < l; i += 2) {
  10823. const shapeA = this.getShapeById(removals[i]);
  10824. const shapeB = this.getShapeById(removals[i + 1]);
  10825. endShapeContactEvent.shapeA = shapeA;
  10826. endShapeContactEvent.shapeB = shapeB;
  10827. if (shapeA) endShapeContactEvent.bodyA = shapeA.body;
  10828. if (shapeB) endShapeContactEvent.bodyB = shapeB.body;
  10829. this.dispatchEvent(endShapeContactEvent);
  10830. }
  10831. endShapeContactEvent.bodyA = endShapeContactEvent.bodyB = endShapeContactEvent.shapeA = endShapeContactEvent.shapeB = null;
  10832. }
  10833. }
  10834. /**
  10835. * Sets all body forces in the world to zero.
  10836. */
  10837. clearForces() {
  10838. const bodies = this.bodies;
  10839. const N = bodies.length;
  10840. for (let i = 0; i !== N; i++) {
  10841. const b = bodies[i];
  10842. b.force;
  10843. b.torque;
  10844. b.force.set(0, 0, 0);
  10845. b.torque.set(0, 0, 0);
  10846. }
  10847. }
  10848. } // Temp stuff
  10849. new AABB();
  10850. const tmpRay = new Ray(); // performance.now() fallback on Date.now()
  10851. const performance = globalThis.performance || {};
  10852. if (!performance.now) {
  10853. let nowOffset = Date.now();
  10854. if (performance.timing && performance.timing.navigationStart) {
  10855. nowOffset = performance.timing.navigationStart;
  10856. }
  10857. performance.now = () => Date.now() - nowOffset;
  10858. }
  10859. // Reusable event objects to save memory.
  10860. const World_step_postStepEvent = {
  10861. type: 'postStep'
  10862. }; // Dispatched before the world steps forward in time.
  10863. const World_step_preStepEvent = {
  10864. type: 'preStep'
  10865. };
  10866. const World_step_collideEvent = {
  10867. type: Body.COLLIDE_EVENT_NAME,
  10868. body: null,
  10869. contact: null
  10870. }; // Pools for unused objects
  10871. const World_step_oldContacts = [];
  10872. const World_step_frictionEquationPool = []; // Reusable arrays for collision pairs
  10873. const World_step_p1 = [];
  10874. const World_step_p2 = []; // Stuff for emitContactEvents
  10875. const additions = [];
  10876. const removals = [];
  10877. const beginContactEvent = {
  10878. type: 'beginContact',
  10879. bodyA: null,
  10880. bodyB: null
  10881. };
  10882. const endContactEvent = {
  10883. type: 'endContact',
  10884. bodyA: null,
  10885. bodyB: null
  10886. };
  10887. const beginShapeContactEvent = {
  10888. type: 'beginShapeContact',
  10889. bodyA: null,
  10890. bodyB: null,
  10891. shapeA: null,
  10892. shapeB: null
  10893. };
  10894. const endShapeContactEvent = {
  10895. type: 'endShapeContact',
  10896. bodyA: null,
  10897. bodyB: null,
  10898. shapeA: null,
  10899. shapeB: null
  10900. };
  10901. /***/ }),
  10902. /***/ "./Assets/Components/BallRaycastReceiver.re.ts":
  10903. /*!*****************************************************!*\
  10904. !*** ./Assets/Components/BallRaycastReceiver.re.ts ***!
  10905. \*****************************************************/
  10906. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  10907. __webpack_require__.r(__webpack_exports__);
  10908. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  10909. /* harmony export */ "default": () => (/* binding */ BallRaycastReceiver)
  10910. /* harmony export */ });
  10911. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  10912. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  10913. /* harmony import */ var _RaycastReceiver_re__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RaycastReceiver.re */ "./Assets/Components/RaycastReceiver.re.ts");
  10914. var __defProp = Object.defineProperty;
  10915. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  10916. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  10917. var __decorateClass = (decorators, target, key, kind) => {
  10918. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  10919. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  10920. if (decorator = decorators[i])
  10921. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  10922. if (kind && result)
  10923. __defProp(target, key, result);
  10924. return result;
  10925. };
  10926. class BallRaycastReceiver extends _RaycastReceiver_re__WEBPACK_IMPORTED_MODULE_1__["default"] {
  10927. awake() {
  10928. }
  10929. start() {
  10930. if (!this.highlightMaterial) {
  10931. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Debug.logError("BallRaycastReceiver has no highlight material set");
  10932. }
  10933. }
  10934. update() {
  10935. }
  10936. onMouseOver(intersect) {
  10937. var currentObj = intersect.object;
  10938. this.originalMaterial = currentObj.material;
  10939. if (this.highlightMaterial) {
  10940. currentObj.material = this.highlightMaterial;
  10941. }
  10942. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.rogueDOMContainer.style.cursor = "pointer";
  10943. return true;
  10944. }
  10945. onMouseOut() {
  10946. this.object3d.material = this.originalMaterial;
  10947. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.rogueDOMContainer.style.cursor = "default";
  10948. return true;
  10949. }
  10950. }
  10951. __name(BallRaycastReceiver, "BallRaycastReceiver");
  10952. __decorateClass([
  10953. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.material()
  10954. ], BallRaycastReceiver.prototype, "highlightMaterial", 2);
  10955. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(BallRaycastReceiver);
  10956. /***/ }),
  10957. /***/ "./Assets/Components/CannonMovementController.re.ts":
  10958. /*!**********************************************************!*\
  10959. !*** ./Assets/Components/CannonMovementController.re.ts ***!
  10960. \**********************************************************/
  10961. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  10962. __webpack_require__.r(__webpack_exports__);
  10963. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  10964. /* harmony export */ "default": () => (/* binding */ CannonMovementController)
  10965. /* harmony export */ });
  10966. /* harmony import */ var _RE_BeardScript_rogue_cannon_Components_CannonBody_re__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @RE/BeardScript/rogue-cannon/Components/CannonBody.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts");
  10967. /* harmony import */ var Assets_Library_GetForwardVector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Assets/Library/GetForwardVector */ "./Assets/Library/GetForwardVector.ts");
  10968. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  10969. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  10970. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_2__);
  10971. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! three */ "three");
  10972. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_3__);
  10973. /* harmony import */ var _FloorCheckComponent_re__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FloorCheckComponent.re */ "./Assets/Components/FloorCheckComponent.re.ts");
  10974. var __defProp = Object.defineProperty;
  10975. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  10976. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  10977. var __decorateClass = (decorators, target, key, kind) => {
  10978. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  10979. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  10980. if (decorator = decorators[i])
  10981. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  10982. if (kind && result)
  10983. __defProp(target, key, result);
  10984. return result;
  10985. };
  10986. class CannonMovementController extends rogue_engine__WEBPACK_IMPORTED_MODULE_2__.Component {
  10987. constructor() {
  10988. super(...arguments);
  10989. this.speed = 1;
  10990. this.jumpStrength = 3;
  10991. }
  10992. awake() {
  10993. this.bodyComponent = rogue_engine__WEBPACK_IMPORTED_MODULE_2__.getComponent(_RE_BeardScript_rogue_cannon_Components_CannonBody_re__WEBPACK_IMPORTED_MODULE_0__["default"], this.object3d);
  10994. }
  10995. start() {
  10996. this.vectorCalculator = new Assets_Library_GetForwardVector__WEBPACK_IMPORTED_MODULE_1__["default"](rogue_engine__WEBPACK_IMPORTED_MODULE_2__.Runtime.camera);
  10997. }
  10998. update() {
  10999. let direction = { x: 0, y: 0, z: 0 };
  11000. if (rogue_engine__WEBPACK_IMPORTED_MODULE_2__.Input.keyboard.getKeyPressed("KeyW")) {
  11001. direction.x += 1;
  11002. }
  11003. if (rogue_engine__WEBPACK_IMPORTED_MODULE_2__.Input.keyboard.getKeyPressed("KeyA")) {
  11004. direction.y += -1;
  11005. }
  11006. if (rogue_engine__WEBPACK_IMPORTED_MODULE_2__.Input.keyboard.getKeyPressed("KeyS")) {
  11007. direction.x += -1;
  11008. }
  11009. if (rogue_engine__WEBPACK_IMPORTED_MODULE_2__.Input.keyboard.getKeyPressed("KeyD")) {
  11010. direction.y += 1;
  11011. }
  11012. if (rogue_engine__WEBPACK_IMPORTED_MODULE_2__.Input.keyboard.getKeyPressed("Space")) {
  11013. direction.z = 1;
  11014. }
  11015. if (direction.x != 0) {
  11016. this.moveForward(direction.x * this.speed);
  11017. }
  11018. if (direction.y != 0) {
  11019. this.moveRight(direction.y * this.speed);
  11020. }
  11021. if (direction.z != 0) {
  11022. const floorCheckComponent = rogue_engine__WEBPACK_IMPORTED_MODULE_2__.getComponent(_FloorCheckComponent_re__WEBPACK_IMPORTED_MODULE_4__["default"], this.object3d);
  11023. if (floorCheckComponent) {
  11024. if (floorCheckComponent.isOnFloor) {
  11025. this.bodyComponent.body.applyImpulse(new cannon_es__WEBPACK_IMPORTED_MODULE_5__.Vec3(0, this.jumpStrength, 0), new cannon_es__WEBPACK_IMPORTED_MODULE_5__.Vec3(this.object3d.position.x, this.object3d.position.y, this.object3d.position.z));
  11026. }
  11027. }
  11028. }
  11029. }
  11030. moveForward(distance) {
  11031. let scaledVelocity = new three__WEBPACK_IMPORTED_MODULE_3__.Vector3();
  11032. scaledVelocity.addScaledVector(this.vectorCalculator.getForward(), distance);
  11033. this.bodyComponent.body.applyForce(new cannon_es__WEBPACK_IMPORTED_MODULE_5__.Vec3(scaledVelocity.x, scaledVelocity.y, scaledVelocity.z));
  11034. }
  11035. moveRight(distance) {
  11036. let scaledVelocity = new three__WEBPACK_IMPORTED_MODULE_3__.Vector3();
  11037. scaledVelocity.addScaledVector(this.vectorCalculator.getRight(), distance);
  11038. this.bodyComponent.body.applyForce(new cannon_es__WEBPACK_IMPORTED_MODULE_5__.Vec3(scaledVelocity.x, scaledVelocity.y, scaledVelocity.z));
  11039. }
  11040. }
  11041. __name(CannonMovementController, "CannonMovementController");
  11042. __decorateClass([
  11043. rogue_engine__WEBPACK_IMPORTED_MODULE_2__.props.num()
  11044. ], CannonMovementController.prototype, "speed", 2);
  11045. __decorateClass([
  11046. rogue_engine__WEBPACK_IMPORTED_MODULE_2__.props.num()
  11047. ], CannonMovementController.prototype, "jumpStrength", 2);
  11048. rogue_engine__WEBPACK_IMPORTED_MODULE_2__.registerComponent(CannonMovementController);
  11049. /***/ }),
  11050. /***/ "./Assets/Components/FloorCheckComponent.re.ts":
  11051. /*!*****************************************************!*\
  11052. !*** ./Assets/Components/FloorCheckComponent.re.ts ***!
  11053. \*****************************************************/
  11054. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11055. __webpack_require__.r(__webpack_exports__);
  11056. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11057. /* harmony export */ "default": () => (/* binding */ FloorCheckComponent)
  11058. /* harmony export */ });
  11059. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11060. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  11061. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  11062. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  11063. var __defProp = Object.defineProperty;
  11064. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  11065. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11066. var __decorateClass = (decorators, target, key, kind) => {
  11067. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  11068. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  11069. if (decorator = decorators[i])
  11070. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  11071. if (kind && result)
  11072. __defProp(target, key, result);
  11073. return result;
  11074. };
  11075. class FloorCheckComponent extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  11076. constructor() {
  11077. super(...arguments);
  11078. this.down = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0, -1, 0);
  11079. this.near = 0;
  11080. this.far = Infinity;
  11081. this.isOnFloor = false;
  11082. this.touchingFloorDistance = 1;
  11083. }
  11084. awake() {
  11085. this.raycaster = new three__WEBPACK_IMPORTED_MODULE_1__.Raycaster(this.object3d.position, this.down, this.near, this.far);
  11086. }
  11087. start() {
  11088. }
  11089. update() {
  11090. const wasOnFloor = this.isOnFloor;
  11091. this.raycaster.set(this.object3d.position, this.down);
  11092. let intersects = this.raycaster.intersectObjects(rogue_engine__WEBPACK_IMPORTED_MODULE_0__.App.currentScene.children);
  11093. intersects.forEach((intersect) => {
  11094. this.isOnFloor = intersect.distance <= this.touchingFloorDistance;
  11095. });
  11096. }
  11097. }
  11098. __name(FloorCheckComponent, "FloorCheckComponent");
  11099. __decorateClass([
  11100. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  11101. ], FloorCheckComponent.prototype, "near", 2);
  11102. __decorateClass([
  11103. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  11104. ], FloorCheckComponent.prototype, "far", 2);
  11105. __decorateClass([
  11106. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  11107. ], FloorCheckComponent.prototype, "touchingFloorDistance", 2);
  11108. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(FloorCheckComponent);
  11109. /***/ }),
  11110. /***/ "./Assets/Components/FloorRaycastReceiver.re.ts":
  11111. /*!******************************************************!*\
  11112. !*** ./Assets/Components/FloorRaycastReceiver.re.ts ***!
  11113. \******************************************************/
  11114. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11115. __webpack_require__.r(__webpack_exports__);
  11116. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11117. /* harmony export */ "default": () => (/* binding */ FloorRaycastReceiver)
  11118. /* harmony export */ });
  11119. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11120. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  11121. /* harmony import */ var _RaycastReceiver_re__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RaycastReceiver.re */ "./Assets/Components/RaycastReceiver.re.ts");
  11122. var __defProp = Object.defineProperty;
  11123. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11124. class FloorRaycastReceiver extends _RaycastReceiver_re__WEBPACK_IMPORTED_MODULE_1__["default"] {
  11125. awake() {
  11126. }
  11127. start() {
  11128. }
  11129. update() {
  11130. }
  11131. onMouseOver(intersect) {
  11132. let positionOnObject = { x: (intersect.uv.x - 0.5) * intersect.object.geometry.parameters.width, z: -(intersect.uv.y - 0.5) * intersect.object.geometry.parameters.depth };
  11133. const targetSelector = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.App.currentScene.getObjectByName("GridTarget");
  11134. if (!targetSelector) {
  11135. return true;
  11136. }
  11137. targetSelector.position.setX(Math.floor(positionOnObject.x) + 0.5);
  11138. targetSelector.position.setY(0);
  11139. targetSelector.position.setZ(Math.floor(positionOnObject.z) + 0.5);
  11140. return true;
  11141. }
  11142. onMouseOut() {
  11143. return true;
  11144. }
  11145. }
  11146. __name(FloorRaycastReceiver, "FloorRaycastReceiver");
  11147. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(FloorRaycastReceiver);
  11148. /***/ }),
  11149. /***/ "./Assets/Components/GameLogic.re.ts":
  11150. /*!*******************************************!*\
  11151. !*** ./Assets/Components/GameLogic.re.ts ***!
  11152. \*******************************************/
  11153. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11154. __webpack_require__.r(__webpack_exports__);
  11155. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11156. /* harmony export */ "default": () => (/* binding */ GameLogic)
  11157. /* harmony export */ });
  11158. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11159. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  11160. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  11161. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  11162. var __defProp = Object.defineProperty;
  11163. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  11164. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11165. var __decorateClass = (decorators, target, key, kind) => {
  11166. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  11167. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  11168. if (decorator = decorators[i])
  11169. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  11170. if (kind && result)
  11171. __defProp(target, key, result);
  11172. return result;
  11173. };
  11174. class GameLogic extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  11175. constructor() {
  11176. super(...arguments);
  11177. this.placementMode = 3;
  11178. }
  11179. awake() {
  11180. }
  11181. start() {
  11182. for (let i = 0; i < 100; i++) {
  11183. const newBuilding = this.buildings[Math.floor(3 * Math.random())].instantiate();
  11184. const randomPosition = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(Math.floor(100 * Math.random()) - 50, 0.1, Math.floor(100 * Math.random()) - 50);
  11185. newBuilding.position.copy(randomPosition);
  11186. }
  11187. this.focusPoint = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.App.currentScene.getObjectByName("FocusPoint");
  11188. }
  11189. update() {
  11190. }
  11191. }
  11192. __name(GameLogic, "GameLogic");
  11193. __decorateClass([
  11194. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.list.prefab()
  11195. ], GameLogic.prototype, "buildings", 2);
  11196. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(GameLogic);
  11197. /***/ }),
  11198. /***/ "./Assets/Components/MovementController.re.ts":
  11199. /*!****************************************************!*\
  11200. !*** ./Assets/Components/MovementController.re.ts ***!
  11201. \****************************************************/
  11202. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11203. __webpack_require__.r(__webpack_exports__);
  11204. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11205. /* harmony export */ "default": () => (/* binding */ MovementController)
  11206. /* harmony export */ });
  11207. /* harmony import */ var Assets_Library_GetForwardVector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! Assets/Library/GetForwardVector */ "./Assets/Library/GetForwardVector.ts");
  11208. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11209. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_1__);
  11210. var __defProp = Object.defineProperty;
  11211. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  11212. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11213. var __decorateClass = (decorators, target, key, kind) => {
  11214. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  11215. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  11216. if (decorator = decorators[i])
  11217. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  11218. if (kind && result)
  11219. __defProp(target, key, result);
  11220. return result;
  11221. };
  11222. class MovementController extends rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Component {
  11223. constructor() {
  11224. super(...arguments);
  11225. this.speed = 1;
  11226. }
  11227. awake() {
  11228. }
  11229. start() {
  11230. this.vectorCalculator = new Assets_Library_GetForwardVector__WEBPACK_IMPORTED_MODULE_0__["default"](rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Runtime.camera);
  11231. }
  11232. update() {
  11233. if (rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Input.keyboard.getKeyPressed("KeyW")) {
  11234. this.moveForward(1 * this.speed);
  11235. }
  11236. if (rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Input.keyboard.getKeyPressed("KeyA")) {
  11237. this.moveRight(-1 * this.speed);
  11238. }
  11239. if (rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Input.keyboard.getKeyPressed("KeyS")) {
  11240. this.moveForward(-1 * this.speed);
  11241. }
  11242. if (rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Input.keyboard.getKeyPressed("KeyD")) {
  11243. this.moveRight(1 * this.speed);
  11244. }
  11245. }
  11246. moveForward(distance) {
  11247. this.object3d.position.addScaledVector(this.vectorCalculator.getForward(), distance);
  11248. }
  11249. moveRight(distance) {
  11250. this.object3d.position.addScaledVector(this.vectorCalculator.getRight(), distance);
  11251. }
  11252. }
  11253. __name(MovementController, "MovementController");
  11254. __decorateClass([
  11255. rogue_engine__WEBPACK_IMPORTED_MODULE_1__.props.num()
  11256. ], MovementController.prototype, "speed", 2);
  11257. rogue_engine__WEBPACK_IMPORTED_MODULE_1__.registerComponent(MovementController);
  11258. /***/ }),
  11259. /***/ "./Assets/Components/RapierMovementController.re.ts":
  11260. /*!**********************************************************!*\
  11261. !*** ./Assets/Components/RapierMovementController.re.ts ***!
  11262. \**********************************************************/
  11263. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11264. __webpack_require__.r(__webpack_exports__);
  11265. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11266. /* harmony export */ "default": () => (/* binding */ RapierMovementController)
  11267. /* harmony export */ });
  11268. /* harmony import */ var Assets_Library_GetForwardVector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! Assets/Library/GetForwardVector */ "./Assets/Library/GetForwardVector.ts");
  11269. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11270. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_1__);
  11271. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! three */ "three");
  11272. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_2__);
  11273. /* harmony import */ var _FloorCheckComponent_re__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FloorCheckComponent.re */ "./Assets/Components/FloorCheckComponent.re.ts");
  11274. /* harmony import */ var _RE_BeardScript_rogue_rapier_experimental_Components_RapierBody_re__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @RE/BeardScript/rogue-rapier-experimental/Components/RapierBody.re */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/RapierBody.re.ts");
  11275. /* harmony import */ var _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @dimforge/rapier3d-compat */ "./node_modules/@dimforge/rapier3d-compat/rapier.es.js");
  11276. var __defProp = Object.defineProperty;
  11277. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  11278. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11279. var __decorateClass = (decorators, target, key, kind) => {
  11280. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  11281. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  11282. if (decorator = decorators[i])
  11283. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  11284. if (kind && result)
  11285. __defProp(target, key, result);
  11286. return result;
  11287. };
  11288. class RapierMovementController extends rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Component {
  11289. constructor() {
  11290. super(...arguments);
  11291. this.speed = 1;
  11292. this.jumpStrength = 10;
  11293. }
  11294. awake() {
  11295. this.bodyComponent = rogue_engine__WEBPACK_IMPORTED_MODULE_1__.getComponent(_RE_BeardScript_rogue_rapier_experimental_Components_RapierBody_re__WEBPACK_IMPORTED_MODULE_4__["default"], this.object3d);
  11296. }
  11297. start() {
  11298. this.vectorCalculator = new Assets_Library_GetForwardVector__WEBPACK_IMPORTED_MODULE_0__["default"](rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Runtime.camera);
  11299. }
  11300. update() {
  11301. let direction = { x: 0, y: 0, z: 0 };
  11302. if (rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Input.keyboard.getKeyPressed("KeyW")) {
  11303. direction.x += 1;
  11304. }
  11305. if (rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Input.keyboard.getKeyPressed("KeyA")) {
  11306. direction.y += -1;
  11307. }
  11308. if (rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Input.keyboard.getKeyPressed("KeyS")) {
  11309. direction.x += -1;
  11310. }
  11311. if (rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Input.keyboard.getKeyPressed("KeyD")) {
  11312. direction.y += 1;
  11313. }
  11314. if (rogue_engine__WEBPACK_IMPORTED_MODULE_1__.Input.keyboard.getKeyPressed("Space")) {
  11315. direction.z = 1;
  11316. }
  11317. if (direction.x != 0) {
  11318. this.moveForward(direction.x * this.speed);
  11319. }
  11320. if (direction.y != 0) {
  11321. this.moveRight(direction.y * this.speed);
  11322. }
  11323. if (direction.z != 0) {
  11324. const floorCheckComponent = rogue_engine__WEBPACK_IMPORTED_MODULE_1__.getComponent(_FloorCheckComponent_re__WEBPACK_IMPORTED_MODULE_3__["default"], this.object3d);
  11325. if (floorCheckComponent) {
  11326. if (floorCheckComponent.isOnFloor) {
  11327. this.bodyComponent.body.applyImpulse(new _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_5__["default"].Vector3(0, this.jumpStrength, 0), true);
  11328. }
  11329. }
  11330. }
  11331. }
  11332. moveForward(distance) {
  11333. let scaledVelocity = new three__WEBPACK_IMPORTED_MODULE_2__.Vector3();
  11334. scaledVelocity.addScaledVector(this.vectorCalculator.getForward(), distance);
  11335. this.bodyComponent.body.applyImpulse(new _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_5__["default"].Vector3(scaledVelocity.x, scaledVelocity.y, scaledVelocity.z), true);
  11336. }
  11337. moveRight(distance) {
  11338. let scaledVelocity = new three__WEBPACK_IMPORTED_MODULE_2__.Vector3();
  11339. scaledVelocity.addScaledVector(this.vectorCalculator.getRight(), distance);
  11340. this.bodyComponent.body.applyImpulse(new _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_5__["default"].Vector3(scaledVelocity.x, scaledVelocity.y, scaledVelocity.z), true);
  11341. }
  11342. }
  11343. __name(RapierMovementController, "RapierMovementController");
  11344. __decorateClass([
  11345. rogue_engine__WEBPACK_IMPORTED_MODULE_1__.props.num()
  11346. ], RapierMovementController.prototype, "speed", 2);
  11347. __decorateClass([
  11348. rogue_engine__WEBPACK_IMPORTED_MODULE_1__.props.num()
  11349. ], RapierMovementController.prototype, "jumpStrength", 2);
  11350. rogue_engine__WEBPACK_IMPORTED_MODULE_1__.registerComponent(RapierMovementController);
  11351. /***/ }),
  11352. /***/ "./Assets/Components/RaycastReceiver.re.ts":
  11353. /*!*************************************************!*\
  11354. !*** ./Assets/Components/RaycastReceiver.re.ts ***!
  11355. \*************************************************/
  11356. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11357. __webpack_require__.r(__webpack_exports__);
  11358. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11359. /* harmony export */ "default": () => (/* binding */ RaycastReceiver)
  11360. /* harmony export */ });
  11361. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11362. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  11363. var __defProp = Object.defineProperty;
  11364. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11365. class RaycastReceiver extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  11366. onMouseOver(intersect) {
  11367. throw new Error("Abstract class: Please inherit from this class to use it's behavior");
  11368. }
  11369. onMouseOut() {
  11370. throw new Error("Abstract class: Please inherit from this class to use it's behavior");
  11371. }
  11372. }
  11373. __name(RaycastReceiver, "RaycastReceiver");
  11374. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(RaycastReceiver);
  11375. /***/ }),
  11376. /***/ "./Assets/Components/RaycastReporter.re.ts":
  11377. /*!*************************************************!*\
  11378. !*** ./Assets/Components/RaycastReporter.re.ts ***!
  11379. \*************************************************/
  11380. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11381. __webpack_require__.r(__webpack_exports__);
  11382. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11383. /* harmony export */ "default": () => (/* binding */ RaycastReporter)
  11384. /* harmony export */ });
  11385. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11386. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  11387. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  11388. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  11389. /* harmony import */ var _RaycastReceiver_re__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RaycastReceiver.re */ "./Assets/Components/RaycastReceiver.re.ts");
  11390. var __defProp = Object.defineProperty;
  11391. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  11392. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11393. var __decorateClass = (decorators, target, key, kind) => {
  11394. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  11395. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  11396. if (decorator = decorators[i])
  11397. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  11398. if (kind && result)
  11399. __defProp(target, key, result);
  11400. return result;
  11401. };
  11402. class RaycastReporter extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  11403. constructor() {
  11404. super(...arguments);
  11405. this.receiverClass = ["RaycastReceiver"];
  11406. this.allHovered = [];
  11407. }
  11408. awake() {
  11409. }
  11410. start() {
  11411. this.mouse = new three__WEBPACK_IMPORTED_MODULE_1__.Vector2(0, 0);
  11412. this.raycaster = new three__WEBPACK_IMPORTED_MODULE_1__.Raycaster();
  11413. this.updated = false;
  11414. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.touch.enabled = true;
  11415. }
  11416. normalizeScreenInput(browserVector, gameVector) {
  11417. const bounds = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.rogueDOMContainer.getBoundingClientRect();
  11418. gameVector.x = (browserVector.x - bounds.left) / bounds.width * 2 - 1;
  11419. gameVector.y = -((browserVector.y - bounds.top) / bounds.height) * 2 + 1;
  11420. }
  11421. getMouseInput() {
  11422. if (!rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse.isMoving) {
  11423. return;
  11424. }
  11425. this.normalizeScreenInput(rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse, this.mouse);
  11426. this.updated = true;
  11427. }
  11428. getTouchInput() {
  11429. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.touch.touches.length == 0) {
  11430. return;
  11431. }
  11432. this.normalizeScreenInput(rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.touch.touches[0], this.mouse);
  11433. this.updated = true;
  11434. }
  11435. update() {
  11436. this.updated = false;
  11437. this.getMouseInput();
  11438. this.getTouchInput();
  11439. if (!this.updated) {
  11440. return;
  11441. }
  11442. this.raycaster.setFromCamera(this.mouse, this.object3d);
  11443. let intersects = this.raycaster.intersectObjects(rogue_engine__WEBPACK_IMPORTED_MODULE_0__.App.currentScene.children);
  11444. let listeningComponents = [];
  11445. intersects.forEach((intersect) => {
  11446. let object3d = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.App.currentScene.getObjectByProperty("uuid", intersect.object.uuid);
  11447. if (object3d == null) {
  11448. console.error("Could not find object in current scene");
  11449. return;
  11450. }
  11451. let component = this.crawlSceneToFindReceiver(object3d);
  11452. if (component == null) {
  11453. return;
  11454. }
  11455. listeningComponents = listeningComponents.filter((dataThing) => {
  11456. if (component == null) {
  11457. return;
  11458. }
  11459. dataThing.component.object3d.uuid != component.object3d.uuid;
  11460. });
  11461. listeningComponents.push(new DataThing(component, intersect));
  11462. });
  11463. for (let i = 0; i < this.allHovered.length; i++) {
  11464. let dataThing = this.allHovered[i];
  11465. if (!listeningComponents.includes(dataThing)) {
  11466. dataThing.component.onMouseOut();
  11467. }
  11468. }
  11469. this.allHovered = [];
  11470. for (let i = 0; i < listeningComponents.length; i++) {
  11471. let dataThing = listeningComponents[i];
  11472. this.allHovered.push(dataThing);
  11473. if (dataThing.component && dataThing.component.onMouseOver(dataThing.intersect) === false) {
  11474. break;
  11475. }
  11476. }
  11477. }
  11478. crawlSceneToFindReceiver(object3d) {
  11479. const component = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_RaycastReceiver_re__WEBPACK_IMPORTED_MODULE_2__["default"], object3d);
  11480. if (component != null) {
  11481. return component;
  11482. }
  11483. if (object3d.parent == null) {
  11484. return null;
  11485. }
  11486. return this.crawlSceneToFindReceiver(object3d.parent);
  11487. }
  11488. }
  11489. __name(RaycastReporter, "RaycastReporter");
  11490. __decorateClass([
  11491. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.PropList("String")
  11492. ], RaycastReporter.prototype, "receiverClass", 2);
  11493. class DataThing {
  11494. constructor(component, intersect) {
  11495. this.component = component;
  11496. this.intersect = intersect;
  11497. }
  11498. }
  11499. __name(DataThing, "DataThing");
  11500. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(RaycastReporter);
  11501. /***/ }),
  11502. /***/ "./Assets/Library/GetForwardVector.ts":
  11503. /*!********************************************!*\
  11504. !*** ./Assets/Library/GetForwardVector.ts ***!
  11505. \********************************************/
  11506. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11507. __webpack_require__.r(__webpack_exports__);
  11508. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11509. /* harmony export */ "default": () => (/* binding */ GetForwardVector)
  11510. /* harmony export */ });
  11511. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11512. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  11513. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  11514. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  11515. var __defProp = Object.defineProperty;
  11516. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11517. class GetForwardVector {
  11518. constructor(object3d) {
  11519. this.vector = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  11520. this.object3d = object3d;
  11521. }
  11522. getForward() {
  11523. if (!this.object3d) {
  11524. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Debug.logError("No Object3D provided to get forward vector from.");
  11525. return new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  11526. }
  11527. this.vector.setFromMatrixColumn(this.object3d.matrix, 0);
  11528. this.vector.crossVectors(this.object3d.up, this.vector);
  11529. return this.vector.normalize();
  11530. }
  11531. getRight() {
  11532. if (!this.object3d) {
  11533. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Debug.logError("No Object3D provided to get right vector from.");
  11534. return new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  11535. }
  11536. this.vector.setFromMatrixColumn(this.object3d.matrix, 0);
  11537. return this.vector.normalize();
  11538. }
  11539. }
  11540. __name(GetForwardVector, "GetForwardVector");
  11541. /***/ }),
  11542. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts":
  11543. /*!************************************************************************************!*\
  11544. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts ***!
  11545. \************************************************************************************/
  11546. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11547. __webpack_require__.r(__webpack_exports__);
  11548. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11549. /* harmony export */ "default": () => (/* binding */ CannonBody)
  11550. /* harmony export */ });
  11551. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11552. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  11553. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  11554. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  11555. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  11556. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  11557. var __defProp = Object.defineProperty;
  11558. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  11559. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11560. var __decorateClass = (decorators, target, key, kind) => {
  11561. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  11562. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  11563. if (decorator = decorators[i])
  11564. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  11565. if (kind && result)
  11566. __defProp(target, key, result);
  11567. return result;
  11568. };
  11569. const _CannonBody = class extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  11570. constructor() {
  11571. super(...arguments);
  11572. this._isTrigger = false;
  11573. this._angularDamping = 0;
  11574. this._linearDamping = 0;
  11575. this._angularFactor = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(1, 1, 1);
  11576. this._linearFactor = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(1, 1, 1);
  11577. this._mass = 1;
  11578. this._useDefaultMass = true;
  11579. this._type = 0;
  11580. this.typeOptions = [
  11581. "Dynamic",
  11582. "Static",
  11583. "Kinematic"
  11584. ];
  11585. this.worldPos = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  11586. this.worldRot = new three__WEBPACK_IMPORTED_MODULE_1__.Quaternion();
  11587. this.newBodyPos = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3();
  11588. this.newBodyRot = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Quaternion();
  11589. this.newPos = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  11590. this.newRot = new three__WEBPACK_IMPORTED_MODULE_1__.Quaternion();
  11591. this.matrixA = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  11592. this.matrixB = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  11593. this.matrixC = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  11594. this.onCollisionEnterListeners = [];
  11595. this.onCollisionStayListeners = [];
  11596. this.onCollisionExitListeners = [];
  11597. this.handleOnCollide = /* @__PURE__ */ __name((event) => {
  11598. const bj = event.contact.bj;
  11599. const bi = event.contact.bi;
  11600. const collision = {
  11601. other: bj !== this.body ? bj : bi,
  11602. contact: event.contact
  11603. };
  11604. this.triggerCollision = collision;
  11605. }, "handleOnCollide");
  11606. }
  11607. get type() {
  11608. return this._type;
  11609. }
  11610. set type(value) {
  11611. this._type = value;
  11612. let type = 1;
  11613. if (value === 0)
  11614. type = 1;
  11615. if (value === 1)
  11616. type = 2;
  11617. if (value === 2)
  11618. type = 4;
  11619. this.body && (this.body.type = type);
  11620. }
  11621. get angularDamping() {
  11622. return this._angularDamping;
  11623. }
  11624. set angularDamping(value) {
  11625. this._angularDamping = value;
  11626. this.body && (this.body.angularDamping = value);
  11627. }
  11628. get linearDamping() {
  11629. return this._linearDamping;
  11630. }
  11631. set linearDamping(value) {
  11632. this._linearDamping = value;
  11633. this.body && (this.body.linearDamping = value);
  11634. }
  11635. get mass() {
  11636. return this._mass;
  11637. }
  11638. set mass(value) {
  11639. this._mass = value;
  11640. this.body && (this.body.mass = value);
  11641. this.body && this.body.updateMassProperties();
  11642. }
  11643. get linearFactor() {
  11644. return this._linearFactor;
  11645. }
  11646. set linearFactor(value) {
  11647. this._linearFactor = value;
  11648. this.body && this.body.linearFactor.set(value.x, value.y, value.z);
  11649. }
  11650. get angularFactor() {
  11651. return this._angularFactor;
  11652. }
  11653. set angularFactor(value) {
  11654. this._angularFactor = value;
  11655. this.body && this.body.angularFactor.set(value.x, value.y, value.z);
  11656. }
  11657. get isTrigger() {
  11658. return this._isTrigger;
  11659. }
  11660. set isTrigger(value) {
  11661. this._isTrigger = value;
  11662. this.body && (this.body.isTrigger = value);
  11663. }
  11664. static findByBody(body) {
  11665. let bodyComponent;
  11666. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.traverseComponents((component) => {
  11667. if (bodyComponent)
  11668. return;
  11669. if (component instanceof _CannonBody && component.body === body) {
  11670. bodyComponent = component;
  11671. }
  11672. });
  11673. return bodyComponent;
  11674. }
  11675. awake() {
  11676. if (!this.body) {
  11677. this.createBody();
  11678. }
  11679. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.onStop(() => {
  11680. this.handleOnCollide && this.body.removeEventListener("collide", this.handleOnCollide);
  11681. });
  11682. }
  11683. start() {
  11684. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().addBody(this.body);
  11685. this.copyObjectTransform();
  11686. }
  11687. onDisabled() {
  11688. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().removeBody(this.body);
  11689. }
  11690. beforeUpdate() {
  11691. if (this.body.mass !== this._mass) {
  11692. this.mass = this._mass;
  11693. }
  11694. this.body && (this.body.type = this.getBodyType());
  11695. this.body.type !== cannon_es__WEBPACK_IMPORTED_MODULE_3__.BODY_TYPES.STATIC && this.updatePhysics();
  11696. if (this.triggerCollision !== void 0 && this.onCollideCB) {
  11697. this.onCollideCB(this.triggerCollision);
  11698. this.triggerCollision = void 0;
  11699. }
  11700. }
  11701. onBeforeRemoved() {
  11702. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().removeBody(this.body);
  11703. }
  11704. onCollisionEnter(cb) {
  11705. this.onCollisionEnterListeners.push(cb);
  11706. }
  11707. onCollisionStay(cb) {
  11708. this.onCollisionStayListeners.push(cb);
  11709. }
  11710. onCollisionExit(cb) {
  11711. this.onCollisionExitListeners.push(cb);
  11712. }
  11713. onCollide(callback) {
  11714. this.onCollideCB = callback;
  11715. this.body.removeEventListener("collide", this.handleOnCollide);
  11716. this.body.addEventListener("collide", this.handleOnCollide);
  11717. }
  11718. setQuaternion(quaternion) {
  11719. const q = quaternion;
  11720. this.body.quaternion.set(q.x, q.y, q.z, q.w);
  11721. }
  11722. setPosition(position) {
  11723. const pos = position;
  11724. this.body.position.set(pos.x, pos.y, pos.z);
  11725. }
  11726. getBodyType() {
  11727. let type = 1;
  11728. if (this._type === 0)
  11729. type = 1;
  11730. if (this._type === 1)
  11731. type = 2;
  11732. if (this._type === 2)
  11733. type = 4;
  11734. return type;
  11735. }
  11736. createBody() {
  11737. this.body = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Body({
  11738. type: this.getBodyType(),
  11739. angularDamping: this.angularDamping,
  11740. linearDamping: this.linearDamping,
  11741. linearFactor: new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3(this.linearFactor.x, this.linearFactor.y, this.linearFactor.z),
  11742. angularFactor: new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3(this.angularFactor.x, this.angularFactor.y, this.angularFactor.z),
  11743. isTrigger: this.isTrigger,
  11744. mass: this._mass
  11745. });
  11746. this.copyObjectTransform();
  11747. }
  11748. createShape() {
  11749. }
  11750. copyObjectTransform() {
  11751. this.object3d.parent?.updateMatrixWorld(true);
  11752. this.object3d.getWorldPosition(this.worldPos);
  11753. this.object3d.getWorldQuaternion(this.worldRot);
  11754. this.newBodyPos.set(this.worldPos.x, this.worldPos.y, this.worldPos.z);
  11755. this.newBodyRot.set(this.worldRot.x, this.worldRot.y, this.worldRot.z, this.worldRot.w);
  11756. this.body.quaternion.copy(this.newBodyRot);
  11757. this.body.position.copy(this.newBodyPos);
  11758. }
  11759. copyBodyTransform() {
  11760. this.copyBodyPosition();
  11761. this.copyBodyRotation();
  11762. }
  11763. copyBodyPosition() {
  11764. this.newPos.set(this.body.interpolatedPosition.x, this.body.interpolatedPosition.y, this.body.interpolatedPosition.z);
  11765. if (!this.object3d.parent)
  11766. return;
  11767. this.object3d.parent?.worldToLocal(this.newPos);
  11768. this.object3d.position.copy(this.newPos);
  11769. }
  11770. copyBodyRotation() {
  11771. this.newRot.set(this.body.quaternion.x, this.body.quaternion.y, this.body.quaternion.z, this.body.quaternion.w);
  11772. this.matrixA.makeRotationFromQuaternion(this.newRot);
  11773. this.object3d.updateMatrixWorld();
  11774. this.matrixB.copy(this.object3d.parent.matrixWorld).invert();
  11775. this.matrixC.extractRotation(this.matrixB);
  11776. this.matrixA.premultiply(this.matrixC);
  11777. this.object3d.quaternion.setFromRotationMatrix(this.matrixA);
  11778. }
  11779. updatePhysics() {
  11780. this.copyBodyTransform();
  11781. }
  11782. };
  11783. let CannonBody = _CannonBody;
  11784. __name(CannonBody, "CannonBody");
  11785. __decorateClass([
  11786. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.select()
  11787. ], CannonBody.prototype, "type", 1);
  11788. __decorateClass([
  11789. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  11790. ], CannonBody.prototype, "angularDamping", 1);
  11791. __decorateClass([
  11792. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  11793. ], CannonBody.prototype, "linearDamping", 1);
  11794. __decorateClass([
  11795. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  11796. ], CannonBody.prototype, "mass", 1);
  11797. __decorateClass([
  11798. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  11799. ], CannonBody.prototype, "linearFactor", 1);
  11800. __decorateClass([
  11801. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  11802. ], CannonBody.prototype, "angularFactor", 1);
  11803. __decorateClass([
  11804. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  11805. ], CannonBody.prototype, "isTrigger", 1);
  11806. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonBody);
  11807. /***/ }),
  11808. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonConfig.re.ts":
  11809. /*!**************************************************************************************!*\
  11810. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonConfig.re.ts ***!
  11811. \**************************************************************************************/
  11812. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11813. __webpack_require__.r(__webpack_exports__);
  11814. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11815. /* harmony export */ "default": () => (/* binding */ CannonConfig)
  11816. /* harmony export */ });
  11817. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11818. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  11819. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  11820. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  11821. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  11822. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  11823. /* harmony import */ var _CannonBody_re__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CannonBody.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts");
  11824. var __defProp = Object.defineProperty;
  11825. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  11826. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11827. var __decorateClass = (decorators, target, key, kind) => {
  11828. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  11829. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  11830. if (decorator = decorators[i])
  11831. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  11832. if (kind && result)
  11833. __defProp(target, key, result);
  11834. return result;
  11835. };
  11836. class CannonConfig extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  11837. constructor() {
  11838. super(...arguments);
  11839. this._defaultFriction = 0.01;
  11840. this._defaultRestitution = 0;
  11841. this.maxSubSteps = 1;
  11842. this.gravity = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0, -9.82, 0);
  11843. this.contacts = [];
  11844. this.activeCollisions = {};
  11845. }
  11846. get defaultFriction() {
  11847. return this._defaultFriction;
  11848. }
  11849. set defaultFriction(value) {
  11850. this._defaultFriction = value;
  11851. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().defaultContactMaterial.friction = value;
  11852. }
  11853. get defaultRestitution() {
  11854. return this._defaultRestitution;
  11855. }
  11856. set defaultRestitution(value) {
  11857. this._defaultRestitution = value;
  11858. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().defaultContactMaterial.restitution = value;
  11859. }
  11860. start() {
  11861. this.contacts = [];
  11862. this.activeCollisions = {};
  11863. cannon_es__WEBPACK_IMPORTED_MODULE_4__.Body.idCounter = 0;
  11864. cannon_es__WEBPACK_IMPORTED_MODULE_4__.ContactEquation.idCounter = 0;
  11865. cannon_es__WEBPACK_IMPORTED_MODULE_4__.Shape.idCounter = 0;
  11866. cannon_es__WEBPACK_IMPORTED_MODULE_4__.Equation.idCounter = 0;
  11867. const world = new cannon_es__WEBPACK_IMPORTED_MODULE_4__.World();
  11868. world.nextId = 0;
  11869. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.setWorld(world);
  11870. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().gravity.set(this.gravity.x, this.gravity.y, this.gravity.z);
  11871. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().broadphase = new cannon_es__WEBPACK_IMPORTED_MODULE_4__.NaiveBroadphase();
  11872. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().defaultContactMaterial.friction = this.defaultFriction;
  11873. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().defaultContactMaterial.restitution = this.defaultRestitution;
  11874. }
  11875. beforeUpdate() {
  11876. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().step(rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.deltaTime, rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.deltaTime, this.maxSubSteps || 1);
  11877. }
  11878. afterUpdate() {
  11879. this.checkCollisions();
  11880. }
  11881. checkCollisions() {
  11882. const contacts = _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().contacts;
  11883. const newContacts = [];
  11884. contacts.forEach((contact) => {
  11885. newContacts[contact.id] = contact;
  11886. const key1 = contact.bi.id + "_" + contact.bj.id;
  11887. const key2 = contact.bj.id + "_" + contact.bi.id;
  11888. const key1Collision = this.activeCollisions[key1];
  11889. const key2Collision = this.activeCollisions[key2];
  11890. if (!this.contacts[contact.id] && !key1Collision && !key2Collision) {
  11891. this.activeCollisions[key1] = true;
  11892. this.activeCollisions[key2] = true;
  11893. this.sendNewCollisionEvents(contact);
  11894. }
  11895. });
  11896. this.contacts.forEach((contact) => {
  11897. const key1 = contact.bi.id + "_" + contact.bj.id;
  11898. const key2 = contact.bj.id + "_" + contact.bi.id;
  11899. const foundActiveCollision = this.findActiveCollision(newContacts, contact);
  11900. const newContact = newContacts[contact.id];
  11901. if (newContact && newContact.enabled || foundActiveCollision) {
  11902. this.sendOnCollisionStayEvents(contact);
  11903. }
  11904. if ((!newContact || newContact && !newContact.enabled) && !foundActiveCollision) {
  11905. this.activeCollisions[key1] = false;
  11906. this.activeCollisions[key2] = false;
  11907. this.sendOnCollisionExitEvents(contact);
  11908. }
  11909. });
  11910. this.contacts = newContacts;
  11911. }
  11912. findActiveCollision(contactList, sample) {
  11913. return contactList.find((contact) => {
  11914. if (!contact || !contact.enabled)
  11915. return false;
  11916. if (contact.bi === sample.bi && contact.bj === sample.bj)
  11917. return true;
  11918. if (contact.bi === sample.bj && contact.bj === sample.bi)
  11919. return true;
  11920. return false;
  11921. });
  11922. }
  11923. sendOnCollisionStayEvents(contact) {
  11924. const bodyA = _CannonBody_re__WEBPACK_IMPORTED_MODULE_3__["default"].findByBody(contact.bi);
  11925. const bodyB = _CannonBody_re__WEBPACK_IMPORTED_MODULE_3__["default"].findByBody(contact.bj);
  11926. if (!bodyB || !bodyA)
  11927. return;
  11928. bodyA.onCollisionStayListeners.forEach((cb) => {
  11929. cb({ other: bodyB, contact });
  11930. });
  11931. bodyB.onCollisionStayListeners.forEach((cb) => {
  11932. cb({ other: bodyA, contact });
  11933. });
  11934. }
  11935. sendOnCollisionExitEvents(contact) {
  11936. const bodyA = _CannonBody_re__WEBPACK_IMPORTED_MODULE_3__["default"].findByBody(contact.bi);
  11937. const bodyB = _CannonBody_re__WEBPACK_IMPORTED_MODULE_3__["default"].findByBody(contact.bj);
  11938. if (!bodyB || !bodyA)
  11939. return;
  11940. bodyA.onCollisionExitListeners.forEach((cb) => {
  11941. cb({ other: bodyB, contact });
  11942. });
  11943. bodyB.onCollisionExitListeners.forEach((cb) => {
  11944. cb({ other: bodyA, contact });
  11945. });
  11946. }
  11947. sendNewCollisionEvents(contact) {
  11948. const bodyA = _CannonBody_re__WEBPACK_IMPORTED_MODULE_3__["default"].findByBody(contact.bi);
  11949. const bodyB = _CannonBody_re__WEBPACK_IMPORTED_MODULE_3__["default"].findByBody(contact.bj);
  11950. if (!bodyB || !bodyA)
  11951. return;
  11952. bodyA.onCollisionEnterListeners.forEach((cb) => {
  11953. cb({ other: bodyB, contact });
  11954. });
  11955. bodyB.onCollisionEnterListeners.forEach((cb) => {
  11956. cb({ other: bodyA, contact });
  11957. });
  11958. }
  11959. }
  11960. __name(CannonConfig, "CannonConfig");
  11961. __decorateClass([
  11962. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  11963. ], CannonConfig.prototype, "maxSubSteps", 2);
  11964. __decorateClass([
  11965. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  11966. ], CannonConfig.prototype, "defaultFriction", 1);
  11967. __decorateClass([
  11968. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  11969. ], CannonConfig.prototype, "defaultRestitution", 1);
  11970. __decorateClass([
  11971. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  11972. ], CannonConfig.prototype, "gravity", 2);
  11973. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonConfig);
  11974. /***/ }),
  11975. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonConstraint.ts":
  11976. /*!***************************************************************************************************!*\
  11977. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonConstraint.ts ***!
  11978. \***************************************************************************************************/
  11979. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  11980. __webpack_require__.r(__webpack_exports__);
  11981. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  11982. /* harmony export */ "default": () => (/* binding */ CannonConstraint)
  11983. /* harmony export */ });
  11984. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  11985. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  11986. /* harmony import */ var _CannonBody_re__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../CannonBody.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts");
  11987. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  11988. var __defProp = Object.defineProperty;
  11989. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  11990. class CannonConstraint extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  11991. start() {
  11992. this.createConstraint();
  11993. }
  11994. getCannonBodyComponent(object3d) {
  11995. const cannonBody = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_CannonBody_re__WEBPACK_IMPORTED_MODULE_1__["default"], object3d);
  11996. if (!cannonBody) {
  11997. throw "CannonHinge targets must have a Cannon Body Component";
  11998. }
  11999. return cannonBody;
  12000. }
  12001. createConstraint() {
  12002. }
  12003. onRemoved() {
  12004. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().removeConstraint(this.constraint);
  12005. }
  12006. }
  12007. __name(CannonConstraint, "CannonConstraint");
  12008. /***/ }),
  12009. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonDistanceConstraint.re.ts":
  12010. /*!**************************************************************************************************************!*\
  12011. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonDistanceConstraint.re.ts ***!
  12012. \**************************************************************************************************************/
  12013. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12014. __webpack_require__.r(__webpack_exports__);
  12015. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12016. /* harmony export */ "default": () => (/* binding */ CannonDistanceConstraint)
  12017. /* harmony export */ });
  12018. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12019. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12020. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12021. /* harmony import */ var _CannonConstraint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CannonConstraint */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonConstraint.ts");
  12022. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  12023. var __defProp = Object.defineProperty;
  12024. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12025. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12026. var __decorateClass = (decorators, target, key, kind) => {
  12027. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12028. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12029. if (decorator = decorators[i])
  12030. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12031. if (kind && result)
  12032. __defProp(target, key, result);
  12033. return result;
  12034. };
  12035. class CannonDistanceConstraint extends _CannonConstraint__WEBPACK_IMPORTED_MODULE_1__["default"] {
  12036. constructor() {
  12037. super(...arguments);
  12038. this.distance = 1;
  12039. this.maxForce = 1e6;
  12040. }
  12041. createConstraint() {
  12042. if (!this.target)
  12043. throw "CannonHinge requires a target";
  12044. const bodyA = this.getCannonBodyComponent(this.object3d).body;
  12045. const bodyB = this.getCannonBodyComponent(this.target).body;
  12046. this.constraint = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.DistanceConstraint(bodyA, bodyB, this.distance, this.maxForce);
  12047. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().addConstraint(this.constraint);
  12048. }
  12049. }
  12050. __name(CannonDistanceConstraint, "CannonDistanceConstraint");
  12051. __decorateClass([
  12052. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.object3d()
  12053. ], CannonDistanceConstraint.prototype, "target", 2);
  12054. __decorateClass([
  12055. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12056. ], CannonDistanceConstraint.prototype, "distance", 2);
  12057. __decorateClass([
  12058. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12059. ], CannonDistanceConstraint.prototype, "maxForce", 2);
  12060. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonDistanceConstraint);
  12061. /***/ }),
  12062. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonHingeConstraint.re.ts":
  12063. /*!***********************************************************************************************************!*\
  12064. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonHingeConstraint.re.ts ***!
  12065. \***********************************************************************************************************/
  12066. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12067. __webpack_require__.r(__webpack_exports__);
  12068. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12069. /* harmony export */ "default": () => (/* binding */ CannonHingeConstraint)
  12070. /* harmony export */ });
  12071. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12072. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12073. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  12074. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  12075. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12076. /* harmony import */ var _CannonConstraint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CannonConstraint */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonConstraint.ts");
  12077. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  12078. var __defProp = Object.defineProperty;
  12079. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12080. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12081. var __decorateClass = (decorators, target, key, kind) => {
  12082. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12083. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12084. if (decorator = decorators[i])
  12085. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12086. if (kind && result)
  12087. __defProp(target, key, result);
  12088. return result;
  12089. };
  12090. class CannonHingeConstraint extends _CannonConstraint__WEBPACK_IMPORTED_MODULE_2__["default"] {
  12091. constructor() {
  12092. super(...arguments);
  12093. this.pivotA = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0.1, 0, 0);
  12094. this.axisA = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0, 1, 0);
  12095. this.pivotB = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(-1, 0, 0);
  12096. this.axisB = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0, 1, 0);
  12097. this.maxForce = 1e6;
  12098. }
  12099. createConstraint() {
  12100. if (!this.target)
  12101. throw "CannonHinge requires a target";
  12102. const bodyA = this.getCannonBodyComponent(this.object3d).body;
  12103. const bodyB = this.getCannonBodyComponent(this.target).body;
  12104. this.constraint = new cannon_es__WEBPACK_IMPORTED_MODULE_4__.HingeConstraint(bodyA, bodyB, {
  12105. pivotA: new cannon_es__WEBPACK_IMPORTED_MODULE_4__.Vec3(this.pivotA.x, this.pivotA.y, this.pivotA.z),
  12106. axisA: new cannon_es__WEBPACK_IMPORTED_MODULE_4__.Vec3(this.axisA.x, this.axisA.y, this.axisA.z),
  12107. pivotB: new cannon_es__WEBPACK_IMPORTED_MODULE_4__.Vec3(this.pivotB.x, this.pivotB.y, this.pivotB.z),
  12108. axisB: new cannon_es__WEBPACK_IMPORTED_MODULE_4__.Vec3(this.axisB.x, this.axisB.y, this.axisB.z),
  12109. collideConnected: this.collideConnected,
  12110. maxForce: this.maxForce
  12111. });
  12112. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_3__.getWorld().addConstraint(this.constraint);
  12113. }
  12114. }
  12115. __name(CannonHingeConstraint, "CannonHingeConstraint");
  12116. __decorateClass([
  12117. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.object3d()
  12118. ], CannonHingeConstraint.prototype, "target", 2);
  12119. __decorateClass([
  12120. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  12121. ], CannonHingeConstraint.prototype, "pivotA", 2);
  12122. __decorateClass([
  12123. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  12124. ], CannonHingeConstraint.prototype, "axisA", 2);
  12125. __decorateClass([
  12126. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  12127. ], CannonHingeConstraint.prototype, "pivotB", 2);
  12128. __decorateClass([
  12129. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  12130. ], CannonHingeConstraint.prototype, "axisB", 2);
  12131. __decorateClass([
  12132. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  12133. ], CannonHingeConstraint.prototype, "collideConnected", 2);
  12134. __decorateClass([
  12135. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12136. ], CannonHingeConstraint.prototype, "maxForce", 2);
  12137. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonHingeConstraint);
  12138. /***/ }),
  12139. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonLockConstraint.re.ts":
  12140. /*!**********************************************************************************************************!*\
  12141. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonLockConstraint.re.ts ***!
  12142. \**********************************************************************************************************/
  12143. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12144. __webpack_require__.r(__webpack_exports__);
  12145. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12146. /* harmony export */ "default": () => (/* binding */ CannonLockConstraint)
  12147. /* harmony export */ });
  12148. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12149. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12150. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12151. /* harmony import */ var _CannonConstraint__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CannonConstraint */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonConstraint.ts");
  12152. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  12153. var __defProp = Object.defineProperty;
  12154. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12155. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12156. var __decorateClass = (decorators, target, key, kind) => {
  12157. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12158. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12159. if (decorator = decorators[i])
  12160. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12161. if (kind && result)
  12162. __defProp(target, key, result);
  12163. return result;
  12164. };
  12165. class CannonLockConstraint extends _CannonConstraint__WEBPACK_IMPORTED_MODULE_1__["default"] {
  12166. constructor() {
  12167. super(...arguments);
  12168. this.maxForce = 1e6;
  12169. }
  12170. createConstraint() {
  12171. if (!this.target)
  12172. throw "CannonHinge requires a target";
  12173. const bodyA = this.getCannonBodyComponent(this.object3d).body;
  12174. const bodyB = this.getCannonBodyComponent(this.target).body;
  12175. this.constraint = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.LockConstraint(bodyA, bodyB, {
  12176. maxForce: this.maxForce
  12177. });
  12178. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().addConstraint(this.constraint);
  12179. }
  12180. }
  12181. __name(CannonLockConstraint, "CannonLockConstraint");
  12182. __decorateClass([
  12183. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.object3d()
  12184. ], CannonLockConstraint.prototype, "target", 2);
  12185. __decorateClass([
  12186. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12187. ], CannonLockConstraint.prototype, "maxForce", 2);
  12188. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonLockConstraint);
  12189. /***/ }),
  12190. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonPointToPointConstraint.re.ts":
  12191. /*!******************************************************************************************************************!*\
  12192. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonPointToPointConstraint.re.ts ***!
  12193. \******************************************************************************************************************/
  12194. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12195. __webpack_require__.r(__webpack_exports__);
  12196. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12197. /* harmony export */ "default": () => (/* binding */ CannonPointToPointConstraint)
  12198. /* harmony export */ });
  12199. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12200. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12201. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  12202. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  12203. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12204. /* harmony import */ var _CannonConstraint__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CannonConstraint */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonConstraint.ts");
  12205. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  12206. var __defProp = Object.defineProperty;
  12207. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12208. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12209. var __decorateClass = (decorators, target, key, kind) => {
  12210. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12211. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12212. if (decorator = decorators[i])
  12213. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12214. if (kind && result)
  12215. __defProp(target, key, result);
  12216. return result;
  12217. };
  12218. class CannonPointToPointConstraint extends _CannonConstraint__WEBPACK_IMPORTED_MODULE_2__["default"] {
  12219. constructor() {
  12220. super(...arguments);
  12221. this.privotA = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  12222. this.privotB = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  12223. this.maxForce = 1e6;
  12224. }
  12225. createConstraint() {
  12226. if (!this.target)
  12227. throw "CannonHinge requires a target";
  12228. const bodyA = this.getCannonBodyComponent(this.object3d).body;
  12229. const bodyB = this.getCannonBodyComponent(this.target).body;
  12230. this.constraint = new cannon_es__WEBPACK_IMPORTED_MODULE_4__.PointToPointConstraint(bodyA, new cannon_es__WEBPACK_IMPORTED_MODULE_4__.Vec3(this.privotA.x, this.privotA.y, this.privotA.z), bodyB, new cannon_es__WEBPACK_IMPORTED_MODULE_4__.Vec3(this.privotB.x, this.privotB.y, this.privotB.z), this.maxForce);
  12231. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_3__.getWorld().addConstraint(this.constraint);
  12232. }
  12233. }
  12234. __name(CannonPointToPointConstraint, "CannonPointToPointConstraint");
  12235. __decorateClass([
  12236. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.object3d()
  12237. ], CannonPointToPointConstraint.prototype, "target", 2);
  12238. __decorateClass([
  12239. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  12240. ], CannonPointToPointConstraint.prototype, "privotA", 2);
  12241. __decorateClass([
  12242. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  12243. ], CannonPointToPointConstraint.prototype, "privotB", 2);
  12244. __decorateClass([
  12245. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12246. ], CannonPointToPointConstraint.prototype, "maxForce", 2);
  12247. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonPointToPointConstraint);
  12248. /***/ }),
  12249. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Controllers/CannonSimpleCharacterController.re.ts":
  12250. /*!*********************************************************************************************************************!*\
  12251. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Controllers/CannonSimpleCharacterController.re.ts ***!
  12252. \*********************************************************************************************************************/
  12253. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12254. __webpack_require__.r(__webpack_exports__);
  12255. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12256. /* harmony export */ "default": () => (/* binding */ CannonSimpleCharacterController)
  12257. /* harmony export */ });
  12258. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12259. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12260. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12261. /* harmony import */ var _CannonBody_re__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../CannonBody.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts");
  12262. var __defProp = Object.defineProperty;
  12263. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12264. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12265. var __decorateClass = (decorators, target, key, kind) => {
  12266. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12267. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12268. if (decorator = decorators[i])
  12269. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12270. if (kind && result)
  12271. __defProp(target, key, result);
  12272. return result;
  12273. };
  12274. class CannonSimpleCharacterController extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  12275. constructor() {
  12276. super(...arguments);
  12277. this.fwdSpeed = 3;
  12278. this.jumpSpeed = 5;
  12279. this.canJump = false;
  12280. this.contactNormal = new cannon_es__WEBPACK_IMPORTED_MODULE_2__.Vec3();
  12281. this.upAxis = new cannon_es__WEBPACK_IMPORTED_MODULE_2__.Vec3(0, 1, 0);
  12282. this.inputAngularVelocity = new cannon_es__WEBPACK_IMPORTED_MODULE_2__.Vec3();
  12283. this.inputVelocity = new cannon_es__WEBPACK_IMPORTED_MODULE_2__.Vec3();
  12284. }
  12285. awake() {
  12286. this.rigidbody = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_CannonBody_re__WEBPACK_IMPORTED_MODULE_1__["default"], this.object3d);
  12287. this.rigidbody?.onCollide((event) => {
  12288. event.contact.ni.negate(this.contactNormal);
  12289. if (this.contactNormal.dot(this.upAxis) > 0.5) {
  12290. this.canJump = true;
  12291. }
  12292. });
  12293. if (!this.rigidbody)
  12294. return;
  12295. this.rigidbody.body.type = cannon_es__WEBPACK_IMPORTED_MODULE_2__.Body.DYNAMIC;
  12296. }
  12297. update() {
  12298. if (!this.rigidbody)
  12299. return;
  12300. this.inputVelocity.setZero();
  12301. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyPressed("KeyW")) {
  12302. this.inputVelocity.z = -1;
  12303. } else if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyPressed("KeyS")) {
  12304. this.inputVelocity.z = 1;
  12305. } else {
  12306. this.inputVelocity.z = 0;
  12307. }
  12308. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyPressed("KeyA")) {
  12309. this.inputVelocity.x = -1;
  12310. } else if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyPressed("KeyD")) {
  12311. this.inputVelocity.x = 1;
  12312. } else {
  12313. this.inputVelocity.x = 0;
  12314. }
  12315. this.inputVelocity.normalize();
  12316. this.inputVelocity.scale(this.fwdSpeed, this.inputVelocity);
  12317. if (this.canJump && rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyDown("Space")) {
  12318. this.rigidbody.body.velocity.y = this.jumpSpeed;
  12319. this.canJump = false;
  12320. }
  12321. this.rigidbody.body.angularVelocity.y = this.inputAngularVelocity.y;
  12322. this.rigidbody.body.vectorToWorldFrame(this.inputVelocity, this.inputVelocity);
  12323. if (!this.canJump)
  12324. return;
  12325. this.rigidbody.body.velocity.x = this.inputVelocity.x;
  12326. this.rigidbody.body.velocity.z = this.inputVelocity.z;
  12327. }
  12328. }
  12329. __name(CannonSimpleCharacterController, "CannonSimpleCharacterController");
  12330. __decorateClass([
  12331. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12332. ], CannonSimpleCharacterController.prototype, "fwdSpeed", 2);
  12333. __decorateClass([
  12334. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12335. ], CannonSimpleCharacterController.prototype, "jumpSpeed", 2);
  12336. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonSimpleCharacterController);
  12337. /***/ }),
  12338. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Controllers/CannonVehicleController.re.ts":
  12339. /*!*************************************************************************************************************!*\
  12340. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Controllers/CannonVehicleController.re.ts ***!
  12341. \*************************************************************************************************************/
  12342. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12343. __webpack_require__.r(__webpack_exports__);
  12344. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12345. /* harmony export */ "default": () => (/* binding */ CannonVehicleController)
  12346. /* harmony export */ });
  12347. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12348. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12349. /* harmony import */ var _Objects_CannonRaycastVehicle_re__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Objects/CannonRaycastVehicle.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonRaycastVehicle.re.ts");
  12350. var __defProp = Object.defineProperty;
  12351. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12352. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12353. var __decorateClass = (decorators, target, key, kind) => {
  12354. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12355. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12356. if (decorator = decorators[i])
  12357. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12358. if (kind && result)
  12359. __defProp(target, key, result);
  12360. return result;
  12361. };
  12362. class CannonVehicleController extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  12363. constructor() {
  12364. super(...arguments);
  12365. this.maxForce = 200;
  12366. this.reverseForce = 50;
  12367. this.breakForce = 250;
  12368. this.maxSteering = 0.5;
  12369. }
  12370. start() {
  12371. this.raycastVehicle = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponentByName("CannonRaycastVehicle", this.object3d);
  12372. }
  12373. update() {
  12374. if (!(this.raycastVehicle instanceof _Objects_CannonRaycastVehicle_re__WEBPACK_IMPORTED_MODULE_1__["default"]))
  12375. return;
  12376. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyPressed("KeyW")) {
  12377. this.releaseBreaks();
  12378. this.raycastVehicle.vehicle.applyEngineForce(this.maxForce, 2);
  12379. this.raycastVehicle.vehicle.applyEngineForce(this.maxForce, 3);
  12380. }
  12381. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyPressed("KeyS")) {
  12382. const speed = -this.raycastVehicle.vehicle.currentVehicleSpeedKmHour;
  12383. if (speed <= 0) {
  12384. this.releaseBreaks();
  12385. this.raycastVehicle.vehicle.applyEngineForce(-this.reverseForce, 2);
  12386. this.raycastVehicle.vehicle.applyEngineForce(-this.reverseForce, 3);
  12387. } else if (speed > 0.05) {
  12388. this.raycastVehicle.vehicle.applyEngineForce(-this.maxForce, 2);
  12389. this.raycastVehicle.vehicle.applyEngineForce(-this.maxForce, 3);
  12390. }
  12391. }
  12392. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyUp("KeyW")) {
  12393. this.raycastVehicle.vehicle.applyEngineForce(0, 2);
  12394. this.raycastVehicle.vehicle.applyEngineForce(0, 3);
  12395. }
  12396. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyUp("KeyS")) {
  12397. const speed = Math.abs(this.raycastVehicle.vehicle.currentVehicleSpeedKmHour);
  12398. this.raycastVehicle.vehicle.applyEngineForce(0, 2);
  12399. this.raycastVehicle.vehicle.applyEngineForce(0, 3);
  12400. if (speed < 1) {
  12401. this.break();
  12402. } else {
  12403. this.releaseBreaks();
  12404. }
  12405. }
  12406. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyPressed("KeyA")) {
  12407. this.raycastVehicle.vehicle.setSteeringValue(this.maxSteering, 0);
  12408. this.raycastVehicle.vehicle.setSteeringValue(this.maxSteering, 1);
  12409. }
  12410. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyPressed("KeyD")) {
  12411. this.raycastVehicle.vehicle.setSteeringValue(-this.maxSteering, 0);
  12412. this.raycastVehicle.vehicle.setSteeringValue(-this.maxSteering, 1);
  12413. }
  12414. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyUp("KeyA")) {
  12415. this.raycastVehicle.vehicle.setSteeringValue(0, 0);
  12416. this.raycastVehicle.vehicle.setSteeringValue(0, 1);
  12417. }
  12418. if (rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyUp("KeyD")) {
  12419. this.raycastVehicle.vehicle.setSteeringValue(0, 0);
  12420. this.raycastVehicle.vehicle.setSteeringValue(0, 1);
  12421. }
  12422. }
  12423. break() {
  12424. this.raycastVehicle.vehicle.setBrake(this.breakForce, 0);
  12425. this.raycastVehicle.vehicle.setBrake(this.breakForce, 1);
  12426. this.raycastVehicle.vehicle.setBrake(this.breakForce, 2);
  12427. this.raycastVehicle.vehicle.setBrake(this.breakForce, 3);
  12428. }
  12429. releaseBreaks() {
  12430. this.raycastVehicle.vehicle.setBrake(0, 0);
  12431. this.raycastVehicle.vehicle.setBrake(0, 1);
  12432. this.raycastVehicle.vehicle.setBrake(0, 2);
  12433. this.raycastVehicle.vehicle.setBrake(0, 3);
  12434. }
  12435. }
  12436. __name(CannonVehicleController, "CannonVehicleController");
  12437. __decorateClass([
  12438. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12439. ], CannonVehicleController.prototype, "maxForce", 2);
  12440. __decorateClass([
  12441. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12442. ], CannonVehicleController.prototype, "reverseForce", 2);
  12443. __decorateClass([
  12444. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12445. ], CannonVehicleController.prototype, "breakForce", 2);
  12446. __decorateClass([
  12447. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12448. ], CannonVehicleController.prototype, "maxSteering", 2);
  12449. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonVehicleController);
  12450. /***/ }),
  12451. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Material/CannonContactMaterial.re.ts":
  12452. /*!********************************************************************************************************!*\
  12453. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Material/CannonContactMaterial.re.ts ***!
  12454. \********************************************************************************************************/
  12455. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12456. __webpack_require__.r(__webpack_exports__);
  12457. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12458. /* harmony export */ "default": () => (/* binding */ CannonContactMaterial)
  12459. /* harmony export */ });
  12460. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12461. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12462. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12463. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  12464. var __defProp = Object.defineProperty;
  12465. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12466. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12467. var __decorateClass = (decorators, target, key, kind) => {
  12468. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12469. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12470. if (decorator = decorators[i])
  12471. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12472. if (kind && result)
  12473. __defProp(target, key, result);
  12474. return result;
  12475. };
  12476. class CannonContactMaterial extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  12477. start() {
  12478. this.createContactMaterial();
  12479. }
  12480. getMaterial(materialName) {
  12481. return _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_1__.getWorld().materials.find((material) => material.name === materialName);
  12482. }
  12483. createContactMaterial() {
  12484. const cannonMaterialA = this.getMaterial(this.materialA);
  12485. const cannonMaterialB = this.getMaterial(this.materialB);
  12486. if (!cannonMaterialA || !cannonMaterialB)
  12487. return;
  12488. this.contactMaterial = new cannon_es__WEBPACK_IMPORTED_MODULE_2__.ContactMaterial(cannonMaterialA, cannonMaterialB, {
  12489. friction: this.friction,
  12490. restitution: this.restitution
  12491. });
  12492. this.contactMaterial.friction = this.friction;
  12493. this.contactMaterial.restitution = this.restitution;
  12494. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_1__.getWorld().addContactMaterial(this.contactMaterial);
  12495. }
  12496. }
  12497. __name(CannonContactMaterial, "CannonContactMaterial");
  12498. __decorateClass([
  12499. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.text()
  12500. ], CannonContactMaterial.prototype, "materialA", 2);
  12501. __decorateClass([
  12502. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.text()
  12503. ], CannonContactMaterial.prototype, "materialB", 2);
  12504. __decorateClass([
  12505. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12506. ], CannonContactMaterial.prototype, "friction", 2);
  12507. __decorateClass([
  12508. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12509. ], CannonContactMaterial.prototype, "restitution", 2);
  12510. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonContactMaterial);
  12511. /***/ }),
  12512. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Material/CannonMaterial.re.ts":
  12513. /*!*************************************************************************************************!*\
  12514. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Material/CannonMaterial.re.ts ***!
  12515. \*************************************************************************************************/
  12516. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12517. __webpack_require__.r(__webpack_exports__);
  12518. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12519. /* harmony export */ "default": () => (/* binding */ CannonMaterial)
  12520. /* harmony export */ });
  12521. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12522. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12523. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12524. /* harmony import */ var _CannonBody_re__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../CannonBody.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts");
  12525. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  12526. var __defProp = Object.defineProperty;
  12527. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12528. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12529. var __decorateClass = (decorators, target, key, kind) => {
  12530. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12531. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12532. if (decorator = decorators[i])
  12533. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12534. if (kind && result)
  12535. __defProp(target, key, result);
  12536. return result;
  12537. };
  12538. class CannonMaterial extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  12539. awake() {
  12540. this.createMaterial();
  12541. }
  12542. start() {
  12543. this.setMaterial();
  12544. }
  12545. createMaterial() {
  12546. this.material = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Material(this.name);
  12547. this.material.friction = this.friction;
  12548. this.material.restitution = this.restitution;
  12549. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().addMaterial(this.material);
  12550. }
  12551. setMaterial() {
  12552. const cannonBody = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_CannonBody_re__WEBPACK_IMPORTED_MODULE_1__["default"], this.object3d);
  12553. if (cannonBody) {
  12554. cannonBody.body.shapes.forEach((shape) => shape.material = this.material);
  12555. }
  12556. }
  12557. }
  12558. __name(CannonMaterial, "CannonMaterial");
  12559. __decorateClass([
  12560. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12561. ], CannonMaterial.prototype, "friction", 2);
  12562. __decorateClass([
  12563. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12564. ], CannonMaterial.prototype, "restitution", 2);
  12565. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonMaterial);
  12566. /***/ }),
  12567. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Material/SetCannonMaterial.re.ts":
  12568. /*!****************************************************************************************************!*\
  12569. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Material/SetCannonMaterial.re.ts ***!
  12570. \****************************************************************************************************/
  12571. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12572. __webpack_require__.r(__webpack_exports__);
  12573. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12574. /* harmony export */ "default": () => (/* binding */ SetCannonMaterial)
  12575. /* harmony export */ });
  12576. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12577. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12578. /* harmony import */ var _CannonBody_re__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../CannonBody.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts");
  12579. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  12580. var __defProp = Object.defineProperty;
  12581. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12582. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12583. var __decorateClass = (decorators, target, key, kind) => {
  12584. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12585. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12586. if (decorator = decorators[i])
  12587. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12588. if (kind && result)
  12589. __defProp(target, key, result);
  12590. return result;
  12591. };
  12592. class SetCannonMaterial extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  12593. start() {
  12594. this.setMaterial();
  12595. }
  12596. getMaterial() {
  12597. return _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld().materials.find((material) => material.name === this.materialName);
  12598. }
  12599. setMaterial() {
  12600. const material = this.getMaterial();
  12601. if (!material)
  12602. return;
  12603. this.material = material;
  12604. const cannonBody = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_CannonBody_re__WEBPACK_IMPORTED_MODULE_1__["default"], this.object3d);
  12605. if (cannonBody) {
  12606. cannonBody.body.shapes.forEach((shape) => shape.material = this.material);
  12607. }
  12608. }
  12609. }
  12610. __name(SetCannonMaterial, "SetCannonMaterial");
  12611. __decorateClass([
  12612. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.text()
  12613. ], SetCannonMaterial.prototype, "materialName", 2);
  12614. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(SetCannonMaterial);
  12615. /***/ }),
  12616. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonRaycastVehicle.re.ts":
  12617. /*!******************************************************************************************************!*\
  12618. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonRaycastVehicle.re.ts ***!
  12619. \******************************************************************************************************/
  12620. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12621. __webpack_require__.r(__webpack_exports__);
  12622. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12623. /* harmony export */ "default": () => (/* binding */ CannonRaycastVehicle)
  12624. /* harmony export */ });
  12625. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12626. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12627. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12628. /* harmony import */ var _CannonBody_re__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../CannonBody.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts");
  12629. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  12630. var __defProp = Object.defineProperty;
  12631. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12632. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12633. var __decorateClass = (decorators, target, key, kind) => {
  12634. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12635. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12636. if (decorator = decorators[i])
  12637. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12638. if (kind && result)
  12639. __defProp(target, key, result);
  12640. return result;
  12641. };
  12642. class CannonRaycastVehicle extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  12643. constructor() {
  12644. super(...arguments);
  12645. this.mass = 500;
  12646. this.suspensionStiffness = 30;
  12647. this.suspensionRestLength = 0.1;
  12648. this.frictionSlip = 0.7;
  12649. this.maxSuspensionTravel = 0.2;
  12650. this.customSlidingRotationalSpeed = -30;
  12651. this.useCustomSlidingRotationalSpeed = true;
  12652. }
  12653. start() {
  12654. if (!_Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld())
  12655. return;
  12656. let body = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_CannonBody_re__WEBPACK_IMPORTED_MODULE_1__["default"], this.object3d);
  12657. if (!body) {
  12658. body = new _CannonBody_re__WEBPACK_IMPORTED_MODULE_1__["default"]("CarBody", this.object3d);
  12659. body.mass = this.mass;
  12660. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.addComponent(body);
  12661. }
  12662. if (!this.chasis)
  12663. return;
  12664. const chassisBody = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_CannonBody_re__WEBPACK_IMPORTED_MODULE_1__["default"], this.chasis);
  12665. if (!(chassisBody instanceof _CannonBody_re__WEBPACK_IMPORTED_MODULE_1__["default"]))
  12666. return;
  12667. this.vehicle = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.RaycastVehicle({
  12668. chassisBody: body.body,
  12669. indexForwardAxis: 2,
  12670. indexUpAxis: 1,
  12671. indexRightAxis: 0
  12672. });
  12673. this.vehicle.addToWorld(_Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_2__.getWorld());
  12674. }
  12675. }
  12676. __name(CannonRaycastVehicle, "CannonRaycastVehicle");
  12677. __decorateClass([
  12678. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.object3d()
  12679. ], CannonRaycastVehicle.prototype, "chasis", 2);
  12680. __decorateClass([
  12681. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12682. ], CannonRaycastVehicle.prototype, "mass", 2);
  12683. __decorateClass([
  12684. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12685. ], CannonRaycastVehicle.prototype, "suspensionStiffness", 2);
  12686. __decorateClass([
  12687. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12688. ], CannonRaycastVehicle.prototype, "suspensionRestLength", 2);
  12689. __decorateClass([
  12690. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12691. ], CannonRaycastVehicle.prototype, "frictionSlip", 2);
  12692. __decorateClass([
  12693. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12694. ], CannonRaycastVehicle.prototype, "dampingRelaxation", 2);
  12695. __decorateClass([
  12696. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12697. ], CannonRaycastVehicle.prototype, "dampingCompression", 2);
  12698. __decorateClass([
  12699. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12700. ], CannonRaycastVehicle.prototype, "maxSuspensionForce", 2);
  12701. __decorateClass([
  12702. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12703. ], CannonRaycastVehicle.prototype, "rollInfluence", 2);
  12704. __decorateClass([
  12705. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12706. ], CannonRaycastVehicle.prototype, "maxSuspensionTravel", 2);
  12707. __decorateClass([
  12708. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12709. ], CannonRaycastVehicle.prototype, "customSlidingRotationalSpeed", 2);
  12710. __decorateClass([
  12711. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  12712. ], CannonRaycastVehicle.prototype, "useCustomSlidingRotationalSpeed", 2);
  12713. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonRaycastVehicle);
  12714. /***/ }),
  12715. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonSpring.re.ts":
  12716. /*!**********************************************************************************************!*\
  12717. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonSpring.re.ts ***!
  12718. \**********************************************************************************************/
  12719. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12720. __webpack_require__.r(__webpack_exports__);
  12721. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12722. /* harmony export */ "default": () => (/* binding */ CannonSpring)
  12723. /* harmony export */ });
  12724. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12725. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12726. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  12727. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  12728. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12729. /* harmony import */ var _CannonBody_re__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../CannonBody.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts");
  12730. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  12731. var __defProp = Object.defineProperty;
  12732. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12733. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12734. var __decorateClass = (decorators, target, key, kind) => {
  12735. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12736. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12737. if (decorator = decorators[i])
  12738. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12739. if (kind && result)
  12740. __defProp(target, key, result);
  12741. return result;
  12742. };
  12743. class CannonSpring extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  12744. constructor() {
  12745. super(...arguments);
  12746. this.anchorA = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  12747. this.anchorB = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  12748. this.restLength = 0;
  12749. this.stiffness = 50;
  12750. this.damping = 1;
  12751. this.applyForce = /* @__PURE__ */ __name(() => {
  12752. this.spring.applyForce();
  12753. }, "applyForce");
  12754. }
  12755. start() {
  12756. this.createSpring();
  12757. }
  12758. getCannonBodyComponent(object3d) {
  12759. const cannonBody = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_CannonBody_re__WEBPACK_IMPORTED_MODULE_2__["default"], object3d);
  12760. if (!cannonBody) {
  12761. throw "CannonSpring targets must have a Cannon Body Component";
  12762. }
  12763. return cannonBody;
  12764. }
  12765. createSpring() {
  12766. if (!this.target)
  12767. throw "CannonSpring requires a target";
  12768. const bodyA = this.getCannonBodyComponent(this.object3d).body;
  12769. const bodyB = this.getCannonBodyComponent(this.target).body;
  12770. this.spring = new cannon_es__WEBPACK_IMPORTED_MODULE_4__.Spring(bodyA, bodyB, {
  12771. localAnchorA: new cannon_es__WEBPACK_IMPORTED_MODULE_4__.Vec3(this.anchorA.x, this.anchorA.y, this.anchorA.z),
  12772. localAnchorB: new cannon_es__WEBPACK_IMPORTED_MODULE_4__.Vec3(this.anchorB.x, this.anchorB.y, this.anchorB.z),
  12773. restLength: this.restLength,
  12774. stiffness: this.stiffness,
  12775. damping: this.damping
  12776. });
  12777. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_3__.getWorld().addEventListener("postStep", this.applyForce);
  12778. }
  12779. onBeforeRemoved() {
  12780. _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_3__.getWorld().removeEventListener("postStep", this.applyForce);
  12781. }
  12782. }
  12783. __name(CannonSpring, "CannonSpring");
  12784. __decorateClass([
  12785. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.object3d()
  12786. ], CannonSpring.prototype, "target", 2);
  12787. __decorateClass([
  12788. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  12789. ], CannonSpring.prototype, "anchorA", 2);
  12790. __decorateClass([
  12791. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  12792. ], CannonSpring.prototype, "anchorB", 2);
  12793. __decorateClass([
  12794. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12795. ], CannonSpring.prototype, "restLength", 2);
  12796. __decorateClass([
  12797. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12798. ], CannonSpring.prototype, "stiffness", 2);
  12799. __decorateClass([
  12800. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12801. ], CannonSpring.prototype, "damping", 2);
  12802. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonSpring);
  12803. /***/ }),
  12804. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonWheel.re.ts":
  12805. /*!*********************************************************************************************!*\
  12806. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonWheel.re.ts ***!
  12807. \*********************************************************************************************/
  12808. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12809. __webpack_require__.r(__webpack_exports__);
  12810. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12811. /* harmony export */ "default": () => (/* binding */ CannonWheel)
  12812. /* harmony export */ });
  12813. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12814. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12815. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  12816. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  12817. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12818. /* harmony import */ var _CannonRaycastVehicle_re__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CannonRaycastVehicle.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonRaycastVehicle.re.ts");
  12819. var __defProp = Object.defineProperty;
  12820. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12821. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12822. var __decorateClass = (decorators, target, key, kind) => {
  12823. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12824. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12825. if (decorator = decorators[i])
  12826. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12827. if (kind && result)
  12828. __defProp(target, key, result);
  12829. return result;
  12830. };
  12831. class CannonWheel extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  12832. constructor() {
  12833. super(...arguments);
  12834. this.radiusOffset = 0;
  12835. this.connectionPoint = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0, 0, 0);
  12836. this.matrixA = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  12837. this.matrixB = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  12838. this.matrixC = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  12839. }
  12840. start() {
  12841. this.raycastVehicle = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_CannonRaycastVehicle_re__WEBPACK_IMPORTED_MODULE_2__["default"], this.object3d);
  12842. if (!(this.raycastVehicle instanceof _CannonRaycastVehicle_re__WEBPACK_IMPORTED_MODULE_2__["default"]))
  12843. return;
  12844. let radius = 0.3;
  12845. if (this.wheel) {
  12846. this.connectionPoint.copy(this.wheel.position);
  12847. const bbox = new three__WEBPACK_IMPORTED_MODULE_1__.Box3().setFromObject(this.wheel);
  12848. radius = bbox.max.x - bbox.min.x;
  12849. }
  12850. this.wheelInfo = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.WheelInfo({
  12851. radius: radius + this.radiusOffset,
  12852. directionLocal: new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3(0, -1, 0),
  12853. suspensionStiffness: this.raycastVehicle.suspensionStiffness,
  12854. suspensionRestLength: this.raycastVehicle.suspensionRestLength,
  12855. frictionSlip: this.raycastVehicle.frictionSlip,
  12856. dampingRelaxation: this.raycastVehicle.dampingRelaxation,
  12857. dampingCompression: this.raycastVehicle.dampingCompression,
  12858. maxSuspensionForce: this.raycastVehicle.maxSuspensionForce,
  12859. rollInfluence: this.raycastVehicle.rollInfluence,
  12860. axleLocal: new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3(-1, 0, 0),
  12861. chassisConnectionPointLocal: new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3(this.connectionPoint.x, this.connectionPoint.y, this.connectionPoint.z),
  12862. maxSuspensionTravel: this.raycastVehicle.maxSuspensionTravel,
  12863. customSlidingRotationalSpeed: this.raycastVehicle.customSlidingRotationalSpeed,
  12864. useCustomSlidingRotationalSpeed: this.raycastVehicle.useCustomSlidingRotationalSpeed
  12865. });
  12866. this.raycastVehicle.vehicle.wheelInfos.push(this.wheelInfo);
  12867. }
  12868. afterUpdate() {
  12869. if (!this.wheel)
  12870. return;
  12871. const wheel = this.wheelInfo;
  12872. if (!wheel)
  12873. return;
  12874. const pos = wheel.worldTransform.position;
  12875. const rot = wheel.worldTransform.quaternion;
  12876. this.wheel.position.set(pos.x, pos.y, pos.z);
  12877. this.wheel.parent?.worldToLocal(this.wheel.position);
  12878. this.wheel.quaternion.set(rot.x, rot.y, rot.z, rot.w);
  12879. this.matrixA.makeRotationFromQuaternion(this.wheel.quaternion);
  12880. this.wheel.updateMatrixWorld();
  12881. this.matrixB.copy(this.wheel.parent.matrixWorld).invert();
  12882. this.matrixC.extractRotation(this.matrixB);
  12883. this.matrixA.premultiply(this.matrixC);
  12884. this.wheel.quaternion.setFromRotationMatrix(this.matrixA);
  12885. }
  12886. }
  12887. __name(CannonWheel, "CannonWheel");
  12888. __decorateClass([
  12889. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.object3d()
  12890. ], CannonWheel.prototype, "wheel", 2);
  12891. __decorateClass([
  12892. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  12893. ], CannonWheel.prototype, "radiusOffset", 2);
  12894. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonWheel);
  12895. /***/ }),
  12896. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonBox.re.ts":
  12897. /*!******************************************************************************************!*\
  12898. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonBox.re.ts ***!
  12899. \******************************************************************************************/
  12900. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12901. __webpack_require__.r(__webpack_exports__);
  12902. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12903. /* harmony export */ "default": () => (/* binding */ CannonBox)
  12904. /* harmony export */ });
  12905. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12906. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12907. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  12908. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  12909. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12910. /* harmony import */ var _CannonShape__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CannonShape */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonShape.ts");
  12911. var __defProp = Object.defineProperty;
  12912. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12913. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12914. var __decorateClass = (decorators, target, key, kind) => {
  12915. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12916. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12917. if (decorator = decorators[i])
  12918. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12919. if (kind && result)
  12920. __defProp(target, key, result);
  12921. return result;
  12922. };
  12923. class CannonBox extends _CannonShape__WEBPACK_IMPORTED_MODULE_2__["default"] {
  12924. constructor() {
  12925. super(...arguments);
  12926. this.sizeOffset = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(1, 1, 1);
  12927. this._collisionResponse = true;
  12928. this.worldScale = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  12929. }
  12930. get collisionResponse() {
  12931. return this._collisionResponse;
  12932. }
  12933. set collisionResponse(value) {
  12934. this._collisionResponse = value;
  12935. if (!this.shape)
  12936. return;
  12937. this.shape.collisionResponse = value;
  12938. }
  12939. createShape() {
  12940. this.object3d.getWorldScale(this.worldScale);
  12941. this.shape = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Box(new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3(this.sizeOffset.x * (this.worldScale.x / 2), this.sizeOffset.y * (this.worldScale.y / 2), this.sizeOffset.z * (this.worldScale.z / 2)));
  12942. this.shape.collisionResponse = this._collisionResponse;
  12943. }
  12944. }
  12945. __name(CannonBox, "CannonBox");
  12946. __decorateClass([
  12947. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  12948. ], CannonBox.prototype, "sizeOffset", 2);
  12949. __decorateClass([
  12950. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  12951. ], CannonBox.prototype, "collisionResponse", 1);
  12952. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonBox);
  12953. /***/ }),
  12954. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonCylinder.re.ts":
  12955. /*!***********************************************************************************************!*\
  12956. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonCylinder.re.ts ***!
  12957. \***********************************************************************************************/
  12958. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  12959. __webpack_require__.r(__webpack_exports__);
  12960. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  12961. /* harmony export */ "default": () => (/* binding */ CannonCylinder)
  12962. /* harmony export */ });
  12963. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  12964. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  12965. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  12966. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  12967. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  12968. /* harmony import */ var _CannonShape__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CannonShape */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonShape.ts");
  12969. var __defProp = Object.defineProperty;
  12970. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12971. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  12972. var __decorateClass = (decorators, target, key, kind) => {
  12973. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  12974. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  12975. if (decorator = decorators[i])
  12976. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  12977. if (kind && result)
  12978. __defProp(target, key, result);
  12979. return result;
  12980. };
  12981. class CannonCylinder extends _CannonShape__WEBPACK_IMPORTED_MODULE_2__["default"] {
  12982. constructor() {
  12983. super(...arguments);
  12984. this.radiusTopOffset = 1;
  12985. this.radiusBottomOffset = 1;
  12986. this.heightOffset = 1;
  12987. this.segments = 100;
  12988. this._collisionResponse = true;
  12989. this.worldScale = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  12990. }
  12991. get collisionResponse() {
  12992. return this._collisionResponse;
  12993. }
  12994. set collisionResponse(value) {
  12995. this._collisionResponse = value;
  12996. if (!this.shape)
  12997. return;
  12998. this.shape.collisionResponse = value;
  12999. }
  13000. createShape() {
  13001. this.object3d.getWorldScale(this.worldScale);
  13002. this.shape = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Cylinder(this.radiusTopOffset * this.worldScale.x, this.radiusBottomOffset * this.worldScale.x, this.heightOffset * this.worldScale.y, this.segments);
  13003. this.shape.collisionResponse = this._collisionResponse;
  13004. }
  13005. }
  13006. __name(CannonCylinder, "CannonCylinder");
  13007. __decorateClass([
  13008. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13009. ], CannonCylinder.prototype, "radiusTopOffset", 2);
  13010. __decorateClass([
  13011. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13012. ], CannonCylinder.prototype, "radiusBottomOffset", 2);
  13013. __decorateClass([
  13014. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13015. ], CannonCylinder.prototype, "heightOffset", 2);
  13016. __decorateClass([
  13017. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13018. ], CannonCylinder.prototype, "segments", 2);
  13019. __decorateClass([
  13020. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  13021. ], CannonCylinder.prototype, "collisionResponse", 1);
  13022. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonCylinder);
  13023. /***/ }),
  13024. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonShape.ts":
  13025. /*!*****************************************************************************************!*\
  13026. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonShape.ts ***!
  13027. \*****************************************************************************************/
  13028. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13029. __webpack_require__.r(__webpack_exports__);
  13030. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13031. /* harmony export */ "default": () => (/* binding */ CannonShape)
  13032. /* harmony export */ });
  13033. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13034. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13035. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  13036. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13037. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13038. /* harmony import */ var _CannonBody_re__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../CannonBody.re */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts");
  13039. var __defProp = Object.defineProperty;
  13040. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13041. class CannonShape extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  13042. constructor() {
  13043. super(...arguments);
  13044. this.localPos = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13045. this.worldPos = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13046. this.oldPos = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13047. this.localRot = new three__WEBPACK_IMPORTED_MODULE_1__.Quaternion();
  13048. this.worldQuaternion = new three__WEBPACK_IMPORTED_MODULE_1__.Quaternion();
  13049. this.matrixA = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  13050. this.matrixB = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  13051. this.matrixC = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  13052. }
  13053. static findByShape(shape) {
  13054. let shapeComponent;
  13055. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.traverseComponents((component) => {
  13056. if (shapeComponent)
  13057. return;
  13058. if (component instanceof CannonShape && component.shape === shape) {
  13059. shapeComponent = component;
  13060. }
  13061. });
  13062. return shapeComponent;
  13063. }
  13064. awake() {
  13065. this.createShape();
  13066. }
  13067. start() {
  13068. if (!this.shape)
  13069. return;
  13070. this.bodyComponent = this.getBodyComponent(this.object3d);
  13071. if (!this.bodyComponent)
  13072. return;
  13073. if (!this.bodyComponent.body)
  13074. return;
  13075. this.body = this.bodyComponent.body;
  13076. const bodyIsShape = this.object3d === this.bodyComponent.object3d;
  13077. this.object3d.getWorldPosition(this.worldPos);
  13078. this.localPos.copy(this.worldPos);
  13079. this.bodyComponent.object3d.updateWorldMatrix(true, true);
  13080. this.bodyComponent.object3d.worldToLocal(this.localPos);
  13081. let position = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3(this.localPos.x, this.localPos.y, this.localPos.z);
  13082. this.object3d.updateWorldMatrix(true, true);
  13083. this.object3d.getWorldQuaternion(this.worldQuaternion);
  13084. this.matrixA.makeRotationFromQuaternion(this.worldQuaternion);
  13085. this.object3d.updateWorldMatrix(true, true);
  13086. this.matrixB.copy(this.bodyComponent.object3d.matrixWorld).invert();
  13087. this.matrixC.extractRotation(this.matrixB);
  13088. this.matrixA.premultiply(this.matrixC);
  13089. this.localRot.setFromRotationMatrix(this.matrixA);
  13090. let rotation = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Quaternion(this.localRot.x, this.localRot.y, this.localRot.z, this.localRot.w);
  13091. if (bodyIsShape) {
  13092. this.body.addShape(this.shape);
  13093. } else {
  13094. this.body.addShape(this.shape, position, rotation);
  13095. }
  13096. }
  13097. update() {
  13098. if (!this.shape)
  13099. return;
  13100. if (!this.shape.body)
  13101. return;
  13102. if (this.shape.body.type === cannon_es__WEBPACK_IMPORTED_MODULE_3__.BODY_TYPES.STATIC || this.shape.body.mass === 0)
  13103. return;
  13104. const shapeIndex = this.shape.body?.shapes.indexOf(this.shape);
  13105. if (shapeIndex === void 0)
  13106. return;
  13107. this.oldPos.copy(this.worldPos);
  13108. this.object3d.getWorldPosition(this.worldPos);
  13109. if (this.oldPos.equals(this.worldPos))
  13110. return;
  13111. this.localPos.copy(this.worldPos);
  13112. this.bodyComponent?.object3d.updateWorldMatrix(true, true);
  13113. this.bodyComponent?.object3d.worldToLocal(this.localPos);
  13114. this.shape.body?.shapeOffsets[shapeIndex].set(this.localPos.x, this.localPos.y, this.localPos.z);
  13115. this.shape.updateBoundingSphereRadius();
  13116. this.shape.body?.updateAABB();
  13117. }
  13118. onDisabled() {
  13119. this.body?.removeShape(this.shape);
  13120. }
  13121. onBeforeObjectRemoved() {
  13122. this.body?.removeShape(this.shape);
  13123. }
  13124. getBodyComponent(object3d) {
  13125. const bodyComponent = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_CannonBody_re__WEBPACK_IMPORTED_MODULE_2__["default"], object3d);
  13126. if (bodyComponent) {
  13127. return bodyComponent;
  13128. }
  13129. if (!object3d.parent)
  13130. return;
  13131. return this.getBodyComponent(object3d.parent);
  13132. }
  13133. createShape() {
  13134. }
  13135. }
  13136. __name(CannonShape, "CannonShape");
  13137. /***/ }),
  13138. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonSphere.re.ts":
  13139. /*!*********************************************************************************************!*\
  13140. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonSphere.re.ts ***!
  13141. \*********************************************************************************************/
  13142. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13143. __webpack_require__.r(__webpack_exports__);
  13144. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13145. /* harmony export */ "default": () => (/* binding */ CannonSphere)
  13146. /* harmony export */ });
  13147. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13148. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13149. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  13150. /* harmony import */ var _CannonShape__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CannonShape */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonShape.ts");
  13151. var __defProp = Object.defineProperty;
  13152. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  13153. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13154. var __decorateClass = (decorators, target, key, kind) => {
  13155. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  13156. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  13157. if (decorator = decorators[i])
  13158. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  13159. if (kind && result)
  13160. __defProp(target, key, result);
  13161. return result;
  13162. };
  13163. class CannonSphere extends _CannonShape__WEBPACK_IMPORTED_MODULE_1__["default"] {
  13164. constructor() {
  13165. super(...arguments);
  13166. this.radiusOffset = 1;
  13167. this._collisionResponse = true;
  13168. }
  13169. get collisionResponse() {
  13170. return this._collisionResponse;
  13171. }
  13172. set collisionResponse(value) {
  13173. this._collisionResponse = value;
  13174. if (!this.shape)
  13175. return;
  13176. this.shape.collisionResponse = value;
  13177. }
  13178. createShape() {
  13179. const scale = this.object3d.scale;
  13180. const maxSide = Math.max(scale.x, scale.y, scale.z);
  13181. this.shape = new cannon_es__WEBPACK_IMPORTED_MODULE_2__.Sphere(this.radiusOffset * maxSide);
  13182. this.shape.collisionResponse = this._collisionResponse;
  13183. }
  13184. }
  13185. __name(CannonSphere, "CannonSphere");
  13186. __decorateClass([
  13187. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13188. ], CannonSphere.prototype, "radiusOffset", 2);
  13189. __decorateClass([
  13190. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  13191. ], CannonSphere.prototype, "collisionResponse", 1);
  13192. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonSphere);
  13193. /***/ }),
  13194. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonTrimesh.re.ts":
  13195. /*!**********************************************************************************************!*\
  13196. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonTrimesh.re.ts ***!
  13197. \**********************************************************************************************/
  13198. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13199. __webpack_require__.r(__webpack_exports__);
  13200. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13201. /* harmony export */ "default": () => (/* binding */ CannonTrimesh)
  13202. /* harmony export */ });
  13203. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13204. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13205. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13206. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13207. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  13208. /* harmony import */ var _CannonShape__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CannonShape */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonShape.ts");
  13209. var __defProp = Object.defineProperty;
  13210. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  13211. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13212. var __decorateClass = (decorators, target, key, kind) => {
  13213. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  13214. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  13215. if (decorator = decorators[i])
  13216. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  13217. if (kind && result)
  13218. __defProp(target, key, result);
  13219. return result;
  13220. };
  13221. class CannonTrimesh extends _CannonShape__WEBPACK_IMPORTED_MODULE_2__["default"] {
  13222. constructor() {
  13223. super(...arguments);
  13224. this.sizeOffset = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(1, 1, 1);
  13225. this._collisionResponse = true;
  13226. this.worldScale = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13227. this.worldPos = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13228. this.tmpVec0 = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3();
  13229. this.tmpVec1 = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3();
  13230. this.tmpVec2 = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3();
  13231. this.tmpQuat0 = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Vec3();
  13232. }
  13233. get collisionResponse() {
  13234. return this._collisionResponse;
  13235. }
  13236. set collisionResponse(value) {
  13237. this._collisionResponse = value;
  13238. if (!this.shape)
  13239. return;
  13240. this.shape.collisionResponse = value;
  13241. }
  13242. createShape() {
  13243. if (!(this.object3d instanceof three__WEBPACK_IMPORTED_MODULE_1__.Mesh))
  13244. return;
  13245. this.object3d.updateWorldMatrix(true, true);
  13246. this.object3d.getWorldScale(this.worldScale);
  13247. this.object3d.getWorldPosition(this.worldPos);
  13248. this.object3d.getWorldQuaternion(this.worldQuaternion);
  13249. const mesh = this.object3d;
  13250. let geometry = mesh.geometry;
  13251. geometry.computeBoundingSphere();
  13252. geometry.normalizeNormals();
  13253. if (geometry.index !== null) {
  13254. const nonIndexedGeo = geometry.toNonIndexed();
  13255. geometry.copy(nonIndexedGeo);
  13256. }
  13257. const vertices = this.getVertices(geometry);
  13258. if (!vertices.length)
  13259. return;
  13260. const indices = Object.keys(vertices).map(Number);
  13261. this.shape = new cannon_es__WEBPACK_IMPORTED_MODULE_3__.Trimesh(vertices, indices);
  13262. this.shape.collisionResponse = this._collisionResponse;
  13263. }
  13264. getVertices(geometry) {
  13265. const position = geometry.attributes.position;
  13266. const vertices = new Float32Array(position.count * 3);
  13267. for (let i = 0; i < position.count; i++) {
  13268. vertices[i * 3] = position.getX(i) * this.worldScale.x;
  13269. vertices[i * 3 + 1] = position.getY(i) * this.worldScale.y;
  13270. vertices[i * 3 + 2] = position.getZ(i) * this.worldScale.z;
  13271. }
  13272. return vertices;
  13273. }
  13274. }
  13275. __name(CannonTrimesh, "CannonTrimesh");
  13276. __decorateClass([
  13277. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  13278. ], CannonTrimesh.prototype, "sizeOffset", 2);
  13279. __decorateClass([
  13280. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  13281. ], CannonTrimesh.prototype, "collisionResponse", 1);
  13282. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(CannonTrimesh);
  13283. /***/ }),
  13284. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts":
  13285. /*!***************************************************************************!*\
  13286. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts ***!
  13287. \***************************************************************************/
  13288. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13289. __webpack_require__.r(__webpack_exports__);
  13290. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13291. /* harmony export */ copyCannonQuaternion: () => (/* binding */ copyCannonQuaternion),
  13292. /* harmony export */ copyCannonV3: () => (/* binding */ copyCannonV3),
  13293. /* harmony export */ copyThreeQuaternion: () => (/* binding */ copyThreeQuaternion),
  13294. /* harmony export */ copyThreeV3: () => (/* binding */ copyThreeV3),
  13295. /* harmony export */ getWorld: () => (/* binding */ getWorld),
  13296. /* harmony export */ setWorld: () => (/* binding */ setWorld)
  13297. /* harmony export */ });
  13298. /* harmony import */ var cannon_es__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! cannon-es */ "./node_modules/cannon-es/dist/cannon-es.js");
  13299. var __defProp = Object.defineProperty;
  13300. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13301. let RogueCannon = { world: new cannon_es__WEBPACK_IMPORTED_MODULE_0__.World() };
  13302. function getWorld() {
  13303. return RogueCannon.world;
  13304. }
  13305. __name(getWorld, "getWorld");
  13306. function setWorld(newWorld) {
  13307. RogueCannon.world = newWorld;
  13308. }
  13309. __name(setWorld, "setWorld");
  13310. function copyThreeV3(vector3, target) {
  13311. target.set(vector3.x, vector3.y, vector3.z);
  13312. }
  13313. __name(copyThreeV3, "copyThreeV3");
  13314. function copyThreeQuaternion(quaternion, target) {
  13315. const q = quaternion;
  13316. target.set(q.x, q.y, q.z, q.w);
  13317. }
  13318. __name(copyThreeQuaternion, "copyThreeQuaternion");
  13319. function copyCannonV3(vector3, target) {
  13320. target.set(vector3.x, vector3.y, vector3.z);
  13321. }
  13322. __name(copyCannonV3, "copyCannonV3");
  13323. function copyCannonQuaternion(quaternion, target) {
  13324. const q = quaternion;
  13325. target.set(q.x, q.y, q.z, q.w);
  13326. }
  13327. __name(copyCannonQuaternion, "copyCannonQuaternion");
  13328. /***/ }),
  13329. /***/ "./Assets/rogue_packages/BeardScript/rogue-cannon/index.ts":
  13330. /*!*****************************************************************!*\
  13331. !*** ./Assets/rogue_packages/BeardScript/rogue-cannon/index.ts ***!
  13332. \*****************************************************************/
  13333. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13334. __webpack_require__.r(__webpack_exports__);
  13335. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13336. /* harmony export */ RogueCannon: () => (/* reexport module object */ _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_0__)
  13337. /* harmony export */ });
  13338. /* harmony import */ var _Lib_RogueCannon__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Lib/RogueCannon */ "./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  13339. /***/ }),
  13340. /***/ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierBall.re.ts":
  13341. /*!***********************************************************************************************************!*\
  13342. !*** ./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierBall.re.ts ***!
  13343. \***********************************************************************************************************/
  13344. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13345. __webpack_require__.r(__webpack_exports__);
  13346. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13347. /* harmony export */ "default": () => (/* binding */ RapierBall)
  13348. /* harmony export */ });
  13349. /* harmony import */ var _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dimforge/rapier3d-compat */ "./node_modules/@dimforge/rapier3d-compat/rapier.es.js");
  13350. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13351. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13352. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13353. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13354. /* harmony import */ var _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueRapier */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts");
  13355. /* harmony import */ var _RapierCollider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RapierCollider */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCollider.ts");
  13356. var __defProp = Object.defineProperty;
  13357. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  13358. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13359. var __decorateClass = (decorators, target, key, kind) => {
  13360. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  13361. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  13362. if (decorator = decorators[i])
  13363. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  13364. if (kind && result)
  13365. __defProp(target, key, result);
  13366. return result;
  13367. };
  13368. class RapierBall extends _RapierCollider__WEBPACK_IMPORTED_MODULE_3__["default"] {
  13369. constructor() {
  13370. super(...arguments);
  13371. this.radiusOffset = 0;
  13372. this.worldScale = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13373. }
  13374. createShape() {
  13375. this.object3d.getWorldScale(this.worldScale);
  13376. const maxSide = Math.max(this.worldScale.x, this.worldScale.y, this.worldScale.z);
  13377. let colliderDesc = _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_4__["default"].ColliderDesc.ball(this.radiusOffset + maxSide);
  13378. this.collider = _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].world.createCollider(colliderDesc, this.body);
  13379. }
  13380. }
  13381. __name(RapierBall, "RapierBall");
  13382. __decorateClass([
  13383. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13384. ], RapierBall.prototype, "radiusOffset", 2);
  13385. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(RapierBall);
  13386. /***/ }),
  13387. /***/ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCapsule.re.ts":
  13388. /*!**************************************************************************************************************!*\
  13389. !*** ./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCapsule.re.ts ***!
  13390. \**************************************************************************************************************/
  13391. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13392. __webpack_require__.r(__webpack_exports__);
  13393. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13394. /* harmony export */ "default": () => (/* binding */ RapierCapsule)
  13395. /* harmony export */ });
  13396. /* harmony import */ var _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dimforge/rapier3d-compat */ "./node_modules/@dimforge/rapier3d-compat/rapier.es.js");
  13397. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13398. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13399. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13400. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13401. /* harmony import */ var _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueRapier */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts");
  13402. /* harmony import */ var _RapierCollider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RapierCollider */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCollider.ts");
  13403. var __defProp = Object.defineProperty;
  13404. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  13405. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13406. var __decorateClass = (decorators, target, key, kind) => {
  13407. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  13408. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  13409. if (decorator = decorators[i])
  13410. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  13411. if (kind && result)
  13412. __defProp(target, key, result);
  13413. return result;
  13414. };
  13415. class RapierCapsule extends _RapierCollider__WEBPACK_IMPORTED_MODULE_3__["default"] {
  13416. constructor() {
  13417. super(...arguments);
  13418. this.halfHeight = 0.5;
  13419. this.radius = 0.5;
  13420. this.worldScale = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13421. }
  13422. createShape() {
  13423. this.object3d.getWorldScale(this.worldScale);
  13424. const maxSide = Math.max(this.worldScale.x, this.worldScale.z);
  13425. let colliderDesc = _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_4__["default"].ColliderDesc.capsule(this.halfHeight * this.worldScale.y, this.radius * maxSide);
  13426. this.collider = _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].world.createCollider(colliderDesc, this.body);
  13427. }
  13428. }
  13429. __name(RapierCapsule, "RapierCapsule");
  13430. __decorateClass([
  13431. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13432. ], RapierCapsule.prototype, "halfHeight", 2);
  13433. __decorateClass([
  13434. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13435. ], RapierCapsule.prototype, "radius", 2);
  13436. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(RapierCapsule);
  13437. /***/ }),
  13438. /***/ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCollider.ts":
  13439. /*!************************************************************************************************************!*\
  13440. !*** ./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCollider.ts ***!
  13441. \************************************************************************************************************/
  13442. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13443. __webpack_require__.r(__webpack_exports__);
  13444. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13445. /* harmony export */ "default": () => (/* binding */ RapierCollider)
  13446. /* harmony export */ });
  13447. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13448. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13449. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13450. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13451. /* harmony import */ var _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueRapier */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts");
  13452. /* harmony import */ var _RapierBody_re__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../RapierBody.re */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/RapierBody.re.ts");
  13453. var __defProp = Object.defineProperty;
  13454. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13455. class RapierCollider extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  13456. constructor() {
  13457. super(...arguments);
  13458. this.initialized = false;
  13459. this.localPos = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13460. this.worldPos = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13461. this.localRot = new three__WEBPACK_IMPORTED_MODULE_1__.Quaternion();
  13462. this.worldQuaternion = new three__WEBPACK_IMPORTED_MODULE_1__.Quaternion();
  13463. this.matrixA = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  13464. this.matrixB = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  13465. this.matrixC = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  13466. }
  13467. static findByShape(shape) {
  13468. let shapeComponent;
  13469. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.traverseComponents((component) => {
  13470. if (shapeComponent)
  13471. return;
  13472. if (component instanceof RapierCollider && component.collider === shape) {
  13473. shapeComponent = component;
  13474. }
  13475. });
  13476. return shapeComponent;
  13477. }
  13478. init() {
  13479. this.bodyComponent = this.getBodyComponent(this.object3d);
  13480. if (!this.bodyComponent)
  13481. return;
  13482. if (!this.bodyComponent.body)
  13483. return;
  13484. this.body = this.bodyComponent.body;
  13485. this.createShape();
  13486. this.setColliderPos();
  13487. this.setColliderRot();
  13488. this.initialized = true;
  13489. }
  13490. setColliderPos() {
  13491. this.object3d.updateWorldMatrix(true, true);
  13492. this.object3d.getWorldPosition(this.worldPos);
  13493. this.localPos.copy(this.worldPos);
  13494. this.bodyComponent.object3d.updateWorldMatrix(true, true);
  13495. this.bodyComponent.object3d.worldToLocal(this.localPos);
  13496. this.collider.setTranslationWrtParent(this.localPos);
  13497. }
  13498. setColliderRot() {
  13499. this.object3d.updateWorldMatrix(true, true);
  13500. this.object3d.getWorldQuaternion(this.worldQuaternion);
  13501. this.matrixA.makeRotationFromQuaternion(this.worldQuaternion);
  13502. this.object3d.updateWorldMatrix(true, true);
  13503. this.matrixB.copy(this.bodyComponent.object3d.matrixWorld).invert();
  13504. this.matrixC.extractRotation(this.matrixB);
  13505. this.matrixA.premultiply(this.matrixC);
  13506. this.localRot.setFromRotationMatrix(this.matrixA);
  13507. this.collider.setRotationWrtParent(this.localRot);
  13508. }
  13509. beforeUpdate() {
  13510. if (!_Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].initialized)
  13511. return;
  13512. if (!this.initialized)
  13513. this.init();
  13514. }
  13515. onDisabled() {
  13516. _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].world.removeCollider(this.collider, false);
  13517. }
  13518. onBeforeObjectRemoved() {
  13519. _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].world.removeCollider(this.collider, false);
  13520. }
  13521. getBodyComponent(object3d) {
  13522. const bodyComponent = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_RapierBody_re__WEBPACK_IMPORTED_MODULE_3__["default"], object3d);
  13523. if (bodyComponent) {
  13524. return bodyComponent;
  13525. }
  13526. if (!object3d.parent)
  13527. return;
  13528. return this.getBodyComponent(object3d.parent);
  13529. }
  13530. createShape() {
  13531. }
  13532. }
  13533. __name(RapierCollider, "RapierCollider");
  13534. /***/ }),
  13535. /***/ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCone.re.ts":
  13536. /*!***********************************************************************************************************!*\
  13537. !*** ./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCone.re.ts ***!
  13538. \***********************************************************************************************************/
  13539. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13540. __webpack_require__.r(__webpack_exports__);
  13541. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13542. /* harmony export */ "default": () => (/* binding */ RapierCone)
  13543. /* harmony export */ });
  13544. /* harmony import */ var _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dimforge/rapier3d-compat */ "./node_modules/@dimforge/rapier3d-compat/rapier.es.js");
  13545. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13546. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13547. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13548. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13549. /* harmony import */ var _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueRapier */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts");
  13550. /* harmony import */ var _RapierCollider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RapierCollider */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCollider.ts");
  13551. var __defProp = Object.defineProperty;
  13552. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  13553. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13554. var __decorateClass = (decorators, target, key, kind) => {
  13555. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  13556. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  13557. if (decorator = decorators[i])
  13558. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  13559. if (kind && result)
  13560. __defProp(target, key, result);
  13561. return result;
  13562. };
  13563. class RapierCone extends _RapierCollider__WEBPACK_IMPORTED_MODULE_3__["default"] {
  13564. constructor() {
  13565. super(...arguments);
  13566. this.halfHeight = 0.5;
  13567. this.radius = 0.5;
  13568. this.worldScale = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13569. }
  13570. createShape() {
  13571. this.object3d.getWorldScale(this.worldScale);
  13572. const maxSide = Math.max(this.worldScale.x, this.worldScale.z);
  13573. let colliderDesc = _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_4__["default"].ColliderDesc.cone(this.halfHeight * this.worldScale.y, this.radius * maxSide);
  13574. this.collider = _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].world.createCollider(colliderDesc, this.body);
  13575. }
  13576. }
  13577. __name(RapierCone, "RapierCone");
  13578. __decorateClass([
  13579. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13580. ], RapierCone.prototype, "halfHeight", 2);
  13581. __decorateClass([
  13582. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13583. ], RapierCone.prototype, "radius", 2);
  13584. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(RapierCone);
  13585. /***/ }),
  13586. /***/ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCuboid.re.ts":
  13587. /*!*************************************************************************************************************!*\
  13588. !*** ./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCuboid.re.ts ***!
  13589. \*************************************************************************************************************/
  13590. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13591. __webpack_require__.r(__webpack_exports__);
  13592. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13593. /* harmony export */ "default": () => (/* binding */ RapierCuboid)
  13594. /* harmony export */ });
  13595. /* harmony import */ var _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dimforge/rapier3d-compat */ "./node_modules/@dimforge/rapier3d-compat/rapier.es.js");
  13596. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13597. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13598. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13599. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13600. /* harmony import */ var _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueRapier */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts");
  13601. /* harmony import */ var _RapierCollider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RapierCollider */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCollider.ts");
  13602. var __defProp = Object.defineProperty;
  13603. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  13604. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13605. var __decorateClass = (decorators, target, key, kind) => {
  13606. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  13607. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  13608. if (decorator = decorators[i])
  13609. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  13610. if (kind && result)
  13611. __defProp(target, key, result);
  13612. return result;
  13613. };
  13614. class RapierCuboid extends _RapierCollider__WEBPACK_IMPORTED_MODULE_3__["default"] {
  13615. constructor() {
  13616. super(...arguments);
  13617. this.sizeOffset = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(1, 1, 1);
  13618. this.worldScale = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13619. }
  13620. createShape() {
  13621. this.object3d.getWorldScale(this.worldScale);
  13622. let colliderDesc = _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_4__["default"].ColliderDesc.cuboid(this.sizeOffset.x * (this.worldScale.x / 2), this.sizeOffset.y * (this.worldScale.y / 2), this.sizeOffset.z * (this.worldScale.z / 2));
  13623. this.collider = _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].world.createCollider(colliderDesc, this.body);
  13624. }
  13625. }
  13626. __name(RapierCuboid, "RapierCuboid");
  13627. __decorateClass([
  13628. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  13629. ], RapierCuboid.prototype, "sizeOffset", 2);
  13630. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(RapierCuboid);
  13631. /***/ }),
  13632. /***/ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCylinder.re.ts":
  13633. /*!***************************************************************************************************************!*\
  13634. !*** ./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCylinder.re.ts ***!
  13635. \***************************************************************************************************************/
  13636. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13637. __webpack_require__.r(__webpack_exports__);
  13638. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13639. /* harmony export */ "default": () => (/* binding */ RapierCylinder)
  13640. /* harmony export */ });
  13641. /* harmony import */ var _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @dimforge/rapier3d-compat */ "./node_modules/@dimforge/rapier3d-compat/rapier.es.js");
  13642. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13643. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13644. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13645. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13646. /* harmony import */ var _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Lib/RogueRapier */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts");
  13647. /* harmony import */ var _RapierCollider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RapierCollider */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCollider.ts");
  13648. var __defProp = Object.defineProperty;
  13649. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  13650. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13651. var __decorateClass = (decorators, target, key, kind) => {
  13652. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  13653. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  13654. if (decorator = decorators[i])
  13655. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  13656. if (kind && result)
  13657. __defProp(target, key, result);
  13658. return result;
  13659. };
  13660. class RapierCylinder extends _RapierCollider__WEBPACK_IMPORTED_MODULE_3__["default"] {
  13661. constructor() {
  13662. super(...arguments);
  13663. this.halfHeight = 0.5;
  13664. this.radius = 1;
  13665. this.worldScale = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13666. }
  13667. createShape() {
  13668. this.object3d.getWorldScale(this.worldScale);
  13669. const maxSide = Math.max(this.worldScale.x, this.worldScale.z);
  13670. let colliderDesc = _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_4__["default"].ColliderDesc.cylinder(this.halfHeight * this.worldScale.y, this.radius * maxSide);
  13671. this.collider = _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].world.createCollider(colliderDesc, this.body);
  13672. }
  13673. }
  13674. __name(RapierCylinder, "RapierCylinder");
  13675. __decorateClass([
  13676. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13677. ], RapierCylinder.prototype, "halfHeight", 2);
  13678. __decorateClass([
  13679. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13680. ], RapierCylinder.prototype, "radius", 2);
  13681. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(RapierCylinder);
  13682. /***/ }),
  13683. /***/ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Jump.re.ts":
  13684. /*!*******************************************************************************************!*\
  13685. !*** ./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Jump.re.ts ***!
  13686. \*******************************************************************************************/
  13687. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13688. __webpack_require__.r(__webpack_exports__);
  13689. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13690. /* harmony export */ "default": () => (/* binding */ Jump)
  13691. /* harmony export */ });
  13692. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13693. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13694. /* harmony import */ var _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Lib/RogueRapier */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts");
  13695. /* harmony import */ var _RapierBody_re__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RapierBody.re */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/RapierBody.re.ts");
  13696. var __defProp = Object.defineProperty;
  13697. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13698. class Jump extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  13699. update() {
  13700. if (!_Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_1__["default"].initialized)
  13701. return;
  13702. if (!rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyDown("Space"))
  13703. return;
  13704. const bodyComponent = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.getComponent(_RapierBody_re__WEBPACK_IMPORTED_MODULE_2__["default"], this.object3d);
  13705. if (!bodyComponent || bodyComponent && !bodyComponent.initialized)
  13706. return;
  13707. bodyComponent.body.applyImpulse({ x: 0, y: 20, z: 0 }, true);
  13708. }
  13709. }
  13710. __name(Jump, "Jump");
  13711. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(Jump);
  13712. /***/ }),
  13713. /***/ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/RapierBody.re.ts":
  13714. /*!*************************************************************************************************!*\
  13715. !*** ./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/RapierBody.re.ts ***!
  13716. \*************************************************************************************************/
  13717. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13718. __webpack_require__.r(__webpack_exports__);
  13719. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13720. /* harmony export */ "default": () => (/* binding */ RapierBody)
  13721. /* harmony export */ });
  13722. /* harmony import */ var _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @dimforge/rapier3d-compat */ "./node_modules/@dimforge/rapier3d-compat/rapier.es.js");
  13723. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13724. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13725. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13726. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13727. /* harmony import */ var _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Lib/RogueRapier */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts");
  13728. var __defProp = Object.defineProperty;
  13729. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  13730. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13731. var __decorateClass = (decorators, target, key, kind) => {
  13732. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  13733. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  13734. if (decorator = decorators[i])
  13735. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  13736. if (kind && result)
  13737. __defProp(target, key, result);
  13738. return result;
  13739. };
  13740. class RapierBody extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  13741. constructor() {
  13742. super(...arguments);
  13743. this.type = 0;
  13744. this.typeOptions = ["Dynamic", "Fixed", "KinematicPositionBased", "KinematicVelocityBased"];
  13745. this.mass = 1;
  13746. this._gravityScale = 1;
  13747. this._angularDamping = 0;
  13748. this._linearDamping = 0;
  13749. this._xTranslation = true;
  13750. this._yTranslation = true;
  13751. this._zTranslation = true;
  13752. this._xRotation = true;
  13753. this._yRotation = true;
  13754. this._zRotation = true;
  13755. this.initialized = false;
  13756. this.newPos = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  13757. this.newRot = new three__WEBPACK_IMPORTED_MODULE_1__.Quaternion();
  13758. this.matrixA = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  13759. this.matrixB = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  13760. this.matrixC = new three__WEBPACK_IMPORTED_MODULE_1__.Matrix4();
  13761. }
  13762. get gravityScale() {
  13763. return this._gravityScale;
  13764. }
  13765. set gravityScale(value) {
  13766. this._gravityScale = value;
  13767. this.body && this.body.setGravityScale(value, true);
  13768. }
  13769. get angularDamping() {
  13770. return this._angularDamping;
  13771. }
  13772. set angularDamping(value) {
  13773. this._angularDamping = value;
  13774. this.body && this.body.setAngularDamping(value);
  13775. }
  13776. get linearDamping() {
  13777. this.body;
  13778. return this._linearDamping;
  13779. }
  13780. set linearDamping(value) {
  13781. this._linearDamping = value;
  13782. this.body && this.body.setLinearDamping(value);
  13783. }
  13784. get xTranslation() {
  13785. return this._xTranslation;
  13786. }
  13787. set xTranslation(value) {
  13788. this._xTranslation = value;
  13789. this.body && this.body.restrictTranslations(value, this._yTranslation, this._zTranslation, true);
  13790. }
  13791. get yTranslation() {
  13792. return this._yTranslation;
  13793. }
  13794. set yTranslation(value) {
  13795. this._yTranslation = value;
  13796. this.body && this.body.restrictTranslations(this._xTranslation, value, this._zTranslation, true);
  13797. }
  13798. get zTranslation() {
  13799. return this._zTranslation;
  13800. }
  13801. set zTranslation(value) {
  13802. this._zTranslation = value;
  13803. this.body && this.body.restrictTranslations(this._xTranslation, this._yTranslation, value, true);
  13804. }
  13805. get xRotation() {
  13806. return this._xRotation;
  13807. }
  13808. set xRotation(value) {
  13809. this._xRotation = value;
  13810. this.body && this.body.restrictRotations(value, this._yRotation, this._zRotation, true);
  13811. }
  13812. get yRotation() {
  13813. return this._yRotation;
  13814. }
  13815. set yRotation(value) {
  13816. this._yRotation = value;
  13817. this.body && this.body.restrictRotations(this._xRotation, value, this._zRotation, true);
  13818. }
  13819. get zRotation() {
  13820. return this._zRotation;
  13821. }
  13822. set zRotation(value) {
  13823. this._zRotation = value;
  13824. this.body && this.body.restrictTranslations(this._xRotation, this._yRotation, value, true);
  13825. }
  13826. init() {
  13827. let rigidBodyDesc = this.getType();
  13828. const pos = this.object3d.position;
  13829. const rot = this.object3d.quaternion;
  13830. rigidBodyDesc.setGravityScale(this._gravityScale).setTranslation(pos.x, pos.y, pos.z).setRotation(rot).setAngularDamping(this._angularDamping).setLinearDamping(this._linearDamping).restrictRotations(this._xRotation, this._yRotation, this._zRotation).restrictTranslations(this._xTranslation, this._yTranslation, this._zTranslation);
  13831. rigidBodyDesc.mass = this.mass;
  13832. this.body = _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].world.createRigidBody(rigidBodyDesc);
  13833. this.initialized = true;
  13834. }
  13835. getType() {
  13836. if (Number(this.type) === 1)
  13837. return _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_3__["default"].RigidBodyDesc.fixed();
  13838. else if (Number(this.type) === 2)
  13839. return _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_3__["default"].RigidBodyDesc.kinematicPositionBased();
  13840. else if (Number(this.type) === 3)
  13841. return _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_3__["default"].RigidBodyDesc.kinematicVelocityBased();
  13842. else
  13843. return _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_3__["default"].RigidBodyDesc.dynamic();
  13844. }
  13845. beforeUpdate() {
  13846. if (!_Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].initialized)
  13847. return;
  13848. !this.initialized && this.init();
  13849. this.type !== _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_3__["default"].RigidBodyType.Fixed && this.updatePhysics();
  13850. }
  13851. updatePhysics() {
  13852. this.copyBodyPosition();
  13853. this.copyBodyRotation();
  13854. }
  13855. copyBodyPosition() {
  13856. const pos = this.body.translation();
  13857. this.newPos.set(pos.x, pos.y, pos.z);
  13858. this.object3d.parent?.worldToLocal(this.newPos);
  13859. this.object3d.position.copy(this.newPos);
  13860. }
  13861. copyBodyRotation() {
  13862. const rot = this.body.rotation();
  13863. this.newRot.set(rot.x, rot.y, rot.z, rot.w);
  13864. this.matrixA.makeRotationFromQuaternion(this.newRot);
  13865. this.object3d.updateMatrixWorld();
  13866. this.matrixB.copy(this.object3d.parent.matrixWorld).invert();
  13867. this.matrixC.extractRotation(this.matrixB);
  13868. this.matrixA.premultiply(this.matrixC);
  13869. this.object3d.quaternion.setFromRotationMatrix(this.matrixA);
  13870. }
  13871. }
  13872. __name(RapierBody, "RapierBody");
  13873. __decorateClass([
  13874. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.select()
  13875. ], RapierBody.prototype, "type", 2);
  13876. __decorateClass([
  13877. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13878. ], RapierBody.prototype, "mass", 2);
  13879. __decorateClass([
  13880. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13881. ], RapierBody.prototype, "gravityScale", 1);
  13882. __decorateClass([
  13883. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13884. ], RapierBody.prototype, "angularDamping", 1);
  13885. __decorateClass([
  13886. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  13887. ], RapierBody.prototype, "linearDamping", 1);
  13888. __decorateClass([
  13889. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  13890. ], RapierBody.prototype, "xTranslation", 1);
  13891. __decorateClass([
  13892. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  13893. ], RapierBody.prototype, "yTranslation", 1);
  13894. __decorateClass([
  13895. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  13896. ], RapierBody.prototype, "zTranslation", 1);
  13897. __decorateClass([
  13898. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  13899. ], RapierBody.prototype, "xRotation", 1);
  13900. __decorateClass([
  13901. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  13902. ], RapierBody.prototype, "yRotation", 1);
  13903. __decorateClass([
  13904. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  13905. ], RapierBody.prototype, "zRotation", 1);
  13906. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(RapierBody);
  13907. /***/ }),
  13908. /***/ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/RapierConfig.re.ts":
  13909. /*!***************************************************************************************************!*\
  13910. !*** ./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/RapierConfig.re.ts ***!
  13911. \***************************************************************************************************/
  13912. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13913. __webpack_require__.r(__webpack_exports__);
  13914. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13915. /* harmony export */ "default": () => (/* binding */ RapierConfig)
  13916. /* harmony export */ });
  13917. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13918. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13919. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13920. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13921. /* harmony import */ var _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Lib/RogueRapier */ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts");
  13922. var __defProp = Object.defineProperty;
  13923. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  13924. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13925. var __decorateClass = (decorators, target, key, kind) => {
  13926. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  13927. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  13928. if (decorator = decorators[i])
  13929. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  13930. if (kind && result)
  13931. __defProp(target, key, result);
  13932. return result;
  13933. };
  13934. class RapierConfig extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  13935. constructor() {
  13936. super(...arguments);
  13937. this.gravity = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0, -9.81, 0);
  13938. }
  13939. awake() {
  13940. _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].init().then(() => {
  13941. _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].world.gravity = this.gravity;
  13942. });
  13943. }
  13944. update() {
  13945. if (!_Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].initialized)
  13946. return;
  13947. _Lib_RogueRapier__WEBPACK_IMPORTED_MODULE_2__["default"].world.step();
  13948. }
  13949. }
  13950. __name(RapierConfig, "RapierConfig");
  13951. __decorateClass([
  13952. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  13953. ], RapierConfig.prototype, "gravity", 2);
  13954. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(RapierConfig);
  13955. /***/ }),
  13956. /***/ "./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts":
  13957. /*!****************************************************************************************!*\
  13958. !*** ./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts ***!
  13959. \****************************************************************************************/
  13960. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13961. __webpack_require__.r(__webpack_exports__);
  13962. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13963. /* harmony export */ "default": () => (/* binding */ RogueRapier)
  13964. /* harmony export */ });
  13965. /* harmony import */ var _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @dimforge/rapier3d-compat */ "./node_modules/@dimforge/rapier3d-compat/rapier.es.js");
  13966. var __defProp = Object.defineProperty;
  13967. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13968. class RogueRapier {
  13969. static async init() {
  13970. await _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_0__["default"].init();
  13971. this.world = new _dimforge_rapier3d_compat__WEBPACK_IMPORTED_MODULE_0__["default"].World({ x: 0, y: -9.81, z: 0 });
  13972. this.initialized = true;
  13973. }
  13974. }
  13975. __name(RogueRapier, "RogueRapier");
  13976. RogueRapier.initialized = false;
  13977. /***/ }),
  13978. /***/ "./Assets/rogue_packages/EyeOfMidas/targeted-orbit-camera/TargetedOrbitCamera.re.ts":
  13979. /*!******************************************************************************************!*\
  13980. !*** ./Assets/rogue_packages/EyeOfMidas/targeted-orbit-camera/TargetedOrbitCamera.re.ts ***!
  13981. \******************************************************************************************/
  13982. /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
  13983. __webpack_require__.r(__webpack_exports__);
  13984. /* harmony export */ __webpack_require__.d(__webpack_exports__, {
  13985. /* harmony export */ "default": () => (/* binding */ TargetedOrbitCamera)
  13986. /* harmony export */ });
  13987. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! rogue-engine */ "rogue-engine");
  13988. /* harmony import */ var rogue_engine__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(rogue_engine__WEBPACK_IMPORTED_MODULE_0__);
  13989. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! three */ "three");
  13990. /* harmony import */ var three__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(three__WEBPACK_IMPORTED_MODULE_1__);
  13991. var __defProp = Object.defineProperty;
  13992. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  13993. var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
  13994. var __decorateClass = (decorators, target, key, kind) => {
  13995. var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
  13996. for (var i = decorators.length - 1, decorator; i >= 0; i--)
  13997. if (decorator = decorators[i])
  13998. result = (kind ? decorator(target, key, result) : decorator(result)) || result;
  13999. if (kind && result)
  14000. __defProp(target, key, result);
  14001. return result;
  14002. };
  14003. class TargetedOrbitCamera extends rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Component {
  14004. constructor() {
  14005. super(...arguments);
  14006. this.enableRotate = true;
  14007. this.rotateSpeed = 1;
  14008. this.minAzimuthAngle = -6.28;
  14009. this.maxAzimuthAngle = 6.28;
  14010. this.minPolarAngle = 0;
  14011. this.maxPolarAngle = 1.56;
  14012. this.enableDolly = true;
  14013. this.dollySpeed = 1;
  14014. this.minDistance = 1;
  14015. this.maxDistance = 50;
  14016. this.offset = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  14017. this.rotateMouseButton = 2;
  14018. this.useCameraLock = false;
  14019. this.rotateStart = new three__WEBPACK_IMPORTED_MODULE_1__.Vector2();
  14020. this.rotateEnd = new three__WEBPACK_IMPORTED_MODULE_1__.Vector2();
  14021. this.rotateDelta = new three__WEBPACK_IMPORTED_MODULE_1__.Vector2();
  14022. this.scale = 1;
  14023. this.EPS = 1e-6;
  14024. this.twoPI = 2 * Math.PI;
  14025. this.spherical = new three__WEBPACK_IMPORTED_MODULE_1__.Spherical();
  14026. this.sphericalDelta = new three__WEBPACK_IMPORTED_MODULE_1__.Spherical();
  14027. this.quat = new three__WEBPACK_IMPORTED_MODULE_1__.Quaternion().setFromUnitVectors(new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0, 1, 0), new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0, 1, 0));
  14028. this.quatInverse = this.quat.clone().invert();
  14029. this.lastPosition = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  14030. this.lastQuaternion = new three__WEBPACK_IMPORTED_MODULE_1__.Quaternion();
  14031. this.initialOffset = new three__WEBPACK_IMPORTED_MODULE_1__.Vector3();
  14032. }
  14033. awake() {
  14034. if (this.useCameraLock) {
  14035. const container = document.getElementById(rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.containerId);
  14036. if (container) {
  14037. container.onmousedown = this.lock.bind(this);
  14038. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.onStop(this.dispose);
  14039. }
  14040. }
  14041. }
  14042. start() {
  14043. if (!this.target) {
  14044. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Debug.logError("Orbit controls not set to an Object3D Target.");
  14045. return;
  14046. }
  14047. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.rogueDOMContainer.addEventListener("contextmenu", (event) => {
  14048. event.preventDefault();
  14049. });
  14050. this.quat = new three__WEBPACK_IMPORTED_MODULE_1__.Quaternion().setFromUnitVectors(this.object3d.up, new three__WEBPACK_IMPORTED_MODULE_1__.Vector3(0, 1, 0));
  14051. this.quatInverse = this.quat.clone().invert();
  14052. this.initialOffset.copy(this.object3d.position).sub(this.target.position);
  14053. this.offset.copy(this.initialOffset);
  14054. }
  14055. update() {
  14056. if (!this.target) {
  14057. return;
  14058. }
  14059. if (this.useCameraLock && !!document.pointerLockElement) {
  14060. if (this.enableRotate && rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse.isMoving) {
  14061. let normalizedScreenMovement = new three__WEBPACK_IMPORTED_MODULE_1__.Vector2(0, 0);
  14062. this.normalizeScreenMovement({ x: rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse.movementX, y: rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse.movementY }, normalizedScreenMovement);
  14063. this.rotateLeft(this.twoPI * normalizedScreenMovement.x);
  14064. this.rotateUp(this.twoPI * -normalizedScreenMovement.y);
  14065. }
  14066. } else {
  14067. let normalizedScreenPosition = new three__WEBPACK_IMPORTED_MODULE_1__.Vector2(0, 0);
  14068. this.normalizeScreenInput(rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse, normalizedScreenPosition);
  14069. if (this.enableRotate && rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse.getButtonDown(this.rotateMouseButton)) {
  14070. this.rotateStart.set(normalizedScreenPosition.x, normalizedScreenPosition.y);
  14071. }
  14072. if (this.enableRotate && rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse.getButtonPressed(this.rotateMouseButton)) {
  14073. this.rotateEnd.set(normalizedScreenPosition.x, normalizedScreenPosition.y);
  14074. this.rotateDelta.subVectors(this.rotateEnd, this.rotateStart).multiplyScalar(this.rotateSpeed);
  14075. this.rotateLeft(this.twoPI * this.rotateDelta.x);
  14076. this.rotateUp(this.twoPI * -this.rotateDelta.y);
  14077. this.rotateStart.copy(this.rotateEnd);
  14078. }
  14079. }
  14080. if (this.enableDolly && rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse.wheelY > 0) {
  14081. this.dollyOut();
  14082. }
  14083. if (this.enableDolly && rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse.wheelY < 0) {
  14084. this.dollyIn();
  14085. }
  14086. this.updateCamera();
  14087. if (this.useCameraLock && rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.keyboard.getKeyPressed("Escape")) {
  14088. this.unlock();
  14089. }
  14090. }
  14091. dispose() {
  14092. const container = document.getElementById(rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.containerId);
  14093. if (container) {
  14094. container.onmousedown = null;
  14095. }
  14096. }
  14097. rotateLeft(angle) {
  14098. this.sphericalDelta.theta -= angle;
  14099. }
  14100. rotateUp(angle) {
  14101. this.sphericalDelta.phi -= angle;
  14102. }
  14103. updateCamera() {
  14104. this.offset.applyQuaternion(this.quat);
  14105. this.spherical.setFromVector3(this.offset);
  14106. this.spherical.theta += this.sphericalDelta.theta;
  14107. this.spherical.phi += this.sphericalDelta.phi;
  14108. let min = this.minAzimuthAngle;
  14109. let max = this.maxAzimuthAngle;
  14110. if (isFinite(min) && isFinite(max)) {
  14111. if (min < -Math.PI) {
  14112. min += this.twoPI;
  14113. } else if (min > Math.PI) {
  14114. min -= this.twoPI;
  14115. }
  14116. if (max < -Math.PI) {
  14117. max += this.twoPI;
  14118. } else if (max > Math.PI) {
  14119. max -= this.twoPI;
  14120. }
  14121. if (min <= max) {
  14122. this.spherical.theta = Math.max(min, Math.min(max, this.spherical.theta));
  14123. } else {
  14124. this.spherical.theta = this.spherical.theta > (min + max) / 2 ? Math.max(min, this.spherical.theta) : Math.min(max, this.spherical.theta);
  14125. }
  14126. }
  14127. this.spherical.phi = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, this.spherical.phi));
  14128. this.spherical.makeSafe();
  14129. this.spherical.radius *= this.scale;
  14130. this.spherical.radius = Math.max(this.minDistance, Math.min(this.maxDistance, this.spherical.radius));
  14131. this.offset.setFromSpherical(this.spherical);
  14132. this.offset.applyQuaternion(this.quatInverse);
  14133. this.object3d.position.copy(this.target.position).add(this.offset);
  14134. this.object3d.lookAt(this.target.position);
  14135. this.sphericalDelta.set(0, 0, 0);
  14136. this.scale = 1;
  14137. if (this.lastPosition.distanceToSquared(this.object3d.position) > this.EPS || 8 * (1 - this.lastQuaternion.dot(this.object3d.quaternion)) > this.EPS) {
  14138. this.lastPosition.copy(this.object3d.position);
  14139. this.lastQuaternion.copy(this.object3d.quaternion);
  14140. }
  14141. }
  14142. dollyOut() {
  14143. this.scale /= Math.pow(0.95, this.dollySpeed);
  14144. }
  14145. dollyIn() {
  14146. this.scale *= Math.pow(0.95, this.dollySpeed);
  14147. }
  14148. normalizeScreenInput(browserVector, gameVector) {
  14149. const bounds = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.rogueDOMContainer.getBoundingClientRect();
  14150. gameVector.x = (browserVector.x - bounds.left) / bounds.width * 2 - 1;
  14151. gameVector.y = -((browserVector.y - bounds.top) / bounds.height) * 2 + 1;
  14152. }
  14153. normalizeScreenMovement(browserVector, gameVector) {
  14154. const bounds = rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Runtime.rogueDOMContainer.getBoundingClientRect();
  14155. gameVector.x = browserVector.x / bounds.width;
  14156. gameVector.y = -(browserVector.y / bounds.height);
  14157. }
  14158. lock() {
  14159. if (!this.useCameraLock) {
  14160. return;
  14161. }
  14162. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse.lock();
  14163. }
  14164. unlock() {
  14165. if (!this.useCameraLock) {
  14166. return;
  14167. }
  14168. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.Input.mouse.unlock();
  14169. }
  14170. }
  14171. __name(TargetedOrbitCamera, "TargetedOrbitCamera");
  14172. __decorateClass([
  14173. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.object3d()
  14174. ], TargetedOrbitCamera.prototype, "target", 2);
  14175. __decorateClass([
  14176. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  14177. ], TargetedOrbitCamera.prototype, "enableRotate", 2);
  14178. __decorateClass([
  14179. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  14180. ], TargetedOrbitCamera.prototype, "rotateSpeed", 2);
  14181. __decorateClass([
  14182. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  14183. ], TargetedOrbitCamera.prototype, "minAzimuthAngle", 2);
  14184. __decorateClass([
  14185. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  14186. ], TargetedOrbitCamera.prototype, "maxAzimuthAngle", 2);
  14187. __decorateClass([
  14188. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  14189. ], TargetedOrbitCamera.prototype, "minPolarAngle", 2);
  14190. __decorateClass([
  14191. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  14192. ], TargetedOrbitCamera.prototype, "maxPolarAngle", 2);
  14193. __decorateClass([
  14194. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  14195. ], TargetedOrbitCamera.prototype, "enableDolly", 2);
  14196. __decorateClass([
  14197. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  14198. ], TargetedOrbitCamera.prototype, "dollySpeed", 2);
  14199. __decorateClass([
  14200. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  14201. ], TargetedOrbitCamera.prototype, "minDistance", 2);
  14202. __decorateClass([
  14203. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  14204. ], TargetedOrbitCamera.prototype, "maxDistance", 2);
  14205. __decorateClass([
  14206. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.vector3()
  14207. ], TargetedOrbitCamera.prototype, "offset", 2);
  14208. __decorateClass([
  14209. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.num()
  14210. ], TargetedOrbitCamera.prototype, "rotateMouseButton", 2);
  14211. __decorateClass([
  14212. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.props.checkbox()
  14213. ], TargetedOrbitCamera.prototype, "useCameraLock", 2);
  14214. rogue_engine__WEBPACK_IMPORTED_MODULE_0__.registerComponent(TargetedOrbitCamera);
  14215. /***/ }),
  14216. /***/ "rogue-engine":
  14217. /*!******************************************************************************************************************!*\
  14218. !*** external {"commonjs":"rogue-engine","commonjs2":"rogue-engine","amd":"rogue-engine","root":"rogue-engine"} ***!
  14219. \******************************************************************************************************************/
  14220. /***/ ((module) => {
  14221. module.exports = __WEBPACK_EXTERNAL_MODULE_rogue_engine__;
  14222. /***/ }),
  14223. /***/ "three":
  14224. /*!**************************************************************************************!*\
  14225. !*** external {"commonjs":"three","commonjs2":"three","amd":"three","root":"three"} ***!
  14226. \**************************************************************************************/
  14227. /***/ ((module) => {
  14228. module.exports = __WEBPACK_EXTERNAL_MODULE_three__;
  14229. /***/ })
  14230. /******/ });
  14231. /************************************************************************/
  14232. /******/ // The module cache
  14233. /******/ var __webpack_module_cache__ = {};
  14234. /******/
  14235. /******/ // The require function
  14236. /******/ function __webpack_require__(moduleId) {
  14237. /******/ // Check if module is in cache
  14238. /******/ var cachedModule = __webpack_module_cache__[moduleId];
  14239. /******/ if (cachedModule !== undefined) {
  14240. /******/ return cachedModule.exports;
  14241. /******/ }
  14242. /******/ // Create a new module (and put it into the cache)
  14243. /******/ var module = __webpack_module_cache__[moduleId] = {
  14244. /******/ // no module.id needed
  14245. /******/ // no module.loaded needed
  14246. /******/ exports: {}
  14247. /******/ };
  14248. /******/
  14249. /******/ // Execute the module function
  14250. /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
  14251. /******/
  14252. /******/ // Return the exports of the module
  14253. /******/ return module.exports;
  14254. /******/ }
  14255. /******/
  14256. /******/ // expose the modules object (__webpack_modules__)
  14257. /******/ __webpack_require__.m = __webpack_modules__;
  14258. /******/
  14259. /************************************************************************/
  14260. /******/ /* webpack/runtime/chunk loaded */
  14261. /******/ (() => {
  14262. /******/ var deferred = [];
  14263. /******/ __webpack_require__.O = (result, chunkIds, fn, priority) => {
  14264. /******/ if(chunkIds) {
  14265. /******/ priority = priority || 0;
  14266. /******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
  14267. /******/ deferred[i] = [chunkIds, fn, priority];
  14268. /******/ return;
  14269. /******/ }
  14270. /******/ var notFulfilled = Infinity;
  14271. /******/ for (var i = 0; i < deferred.length; i++) {
  14272. /******/ var [chunkIds, fn, priority] = deferred[i];
  14273. /******/ var fulfilled = true;
  14274. /******/ for (var j = 0; j < chunkIds.length; j++) {
  14275. /******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {
  14276. /******/ chunkIds.splice(j--, 1);
  14277. /******/ } else {
  14278. /******/ fulfilled = false;
  14279. /******/ if(priority < notFulfilled) notFulfilled = priority;
  14280. /******/ }
  14281. /******/ }
  14282. /******/ if(fulfilled) {
  14283. /******/ deferred.splice(i--, 1)
  14284. /******/ var r = fn();
  14285. /******/ if (r !== undefined) result = r;
  14286. /******/ }
  14287. /******/ }
  14288. /******/ return result;
  14289. /******/ };
  14290. /******/ })();
  14291. /******/
  14292. /******/ /* webpack/runtime/compat get default export */
  14293. /******/ (() => {
  14294. /******/ // getDefaultExport function for compatibility with non-harmony modules
  14295. /******/ __webpack_require__.n = (module) => {
  14296. /******/ var getter = module && module.__esModule ?
  14297. /******/ () => (module['default']) :
  14298. /******/ () => (module);
  14299. /******/ __webpack_require__.d(getter, { a: getter });
  14300. /******/ return getter;
  14301. /******/ };
  14302. /******/ })();
  14303. /******/
  14304. /******/ /* webpack/runtime/define property getters */
  14305. /******/ (() => {
  14306. /******/ // define getter functions for harmony exports
  14307. /******/ __webpack_require__.d = (exports, definition) => {
  14308. /******/ for(var key in definition) {
  14309. /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
  14310. /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
  14311. /******/ }
  14312. /******/ }
  14313. /******/ };
  14314. /******/ })();
  14315. /******/
  14316. /******/ /* webpack/runtime/hasOwnProperty shorthand */
  14317. /******/ (() => {
  14318. /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
  14319. /******/ })();
  14320. /******/
  14321. /******/ /* webpack/runtime/make namespace object */
  14322. /******/ (() => {
  14323. /******/ // define __esModule on exports
  14324. /******/ __webpack_require__.r = (exports) => {
  14325. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  14326. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  14327. /******/ }
  14328. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  14329. /******/ };
  14330. /******/ })();
  14331. /******/
  14332. /******/ /* webpack/runtime/jsonp chunk loading */
  14333. /******/ (() => {
  14334. /******/ // no baseURI
  14335. /******/
  14336. /******/ // object to store loaded and loading chunks
  14337. /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
  14338. /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
  14339. /******/ var installedChunks = {
  14340. /******/ "rogue-engine-user-scripts": 0
  14341. /******/ };
  14342. /******/
  14343. /******/ // no chunk on demand loading
  14344. /******/
  14345. /******/ // no prefetching
  14346. /******/
  14347. /******/ // no preloaded
  14348. /******/
  14349. /******/ // no HMR
  14350. /******/
  14351. /******/ // no HMR manifest
  14352. /******/
  14353. /******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);
  14354. /******/
  14355. /******/ // install a JSONP callback for chunk loading
  14356. /******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => {
  14357. /******/ var [chunkIds, moreModules, runtime] = data;
  14358. /******/ // add "moreModules" to the modules object,
  14359. /******/ // then flag all "chunkIds" as loaded and fire callback
  14360. /******/ var moduleId, chunkId, i = 0;
  14361. /******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) {
  14362. /******/ for(moduleId in moreModules) {
  14363. /******/ if(__webpack_require__.o(moreModules, moduleId)) {
  14364. /******/ __webpack_require__.m[moduleId] = moreModules[moduleId];
  14365. /******/ }
  14366. /******/ }
  14367. /******/ if(runtime) var result = runtime(__webpack_require__);
  14368. /******/ }
  14369. /******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
  14370. /******/ for(;i < chunkIds.length; i++) {
  14371. /******/ chunkId = chunkIds[i];
  14372. /******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
  14373. /******/ installedChunks[chunkId][0]();
  14374. /******/ }
  14375. /******/ installedChunks[chunkId] = 0;
  14376. /******/ }
  14377. /******/ return __webpack_require__.O(result);
  14378. /******/ }
  14379. /******/
  14380. /******/ var chunkLoadingGlobal = self["webpackChunkroguetemplateproject"] = self["webpackChunkroguetemplateproject"] || [];
  14381. /******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
  14382. /******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
  14383. /******/ })();
  14384. /******/
  14385. /************************************************************************/
  14386. /******/
  14387. /******/ // startup
  14388. /******/ // Load entry module and return exports
  14389. /******/ __webpack_require__("./Assets/Components/BallRaycastReceiver.re.ts");
  14390. /******/ __webpack_require__("./Assets/Components/CannonMovementController.re.ts");
  14391. /******/ // This entry module is referenced by other modules so it can't be inlined
  14392. /******/ __webpack_require__("./Assets/Components/FloorCheckComponent.re.ts");
  14393. /******/ __webpack_require__("./Assets/Components/FloorRaycastReceiver.re.ts");
  14394. /******/ __webpack_require__("./Assets/Components/GameLogic.re.ts");
  14395. /******/ __webpack_require__("./Assets/Components/MovementController.re.ts");
  14396. /******/ __webpack_require__("./Assets/Components/RapierMovementController.re.ts");
  14397. /******/ __webpack_require__("./Assets/Components/RaycastReceiver.re.ts");
  14398. /******/ __webpack_require__("./Assets/Components/RaycastReporter.re.ts");
  14399. /******/ __webpack_require__("./Assets/Library/GetForwardVector.ts");
  14400. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonBody.re.ts");
  14401. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/CannonConfig.re.ts");
  14402. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonConstraint.ts");
  14403. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonDistanceConstraint.re.ts");
  14404. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonHingeConstraint.re.ts");
  14405. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonLockConstraint.re.ts");
  14406. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Constraints/CannonPointToPointConstraint.re.ts");
  14407. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Controllers/CannonSimpleCharacterController.re.ts");
  14408. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Controllers/CannonVehicleController.re.ts");
  14409. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Material/CannonContactMaterial.re.ts");
  14410. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Material/CannonMaterial.re.ts");
  14411. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Material/SetCannonMaterial.re.ts");
  14412. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonRaycastVehicle.re.ts");
  14413. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonSpring.re.ts");
  14414. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Objects/CannonWheel.re.ts");
  14415. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonBox.re.ts");
  14416. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonCylinder.re.ts");
  14417. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonShape.ts");
  14418. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonSphere.re.ts");
  14419. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Components/Shapes/CannonTrimesh.re.ts");
  14420. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/index.ts");
  14421. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-cannon/Lib/RogueCannon.ts");
  14422. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierBall.re.ts");
  14423. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCapsule.re.ts");
  14424. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCollider.ts");
  14425. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCone.re.ts");
  14426. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCuboid.re.ts");
  14427. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Colliders/RapierCylinder.re.ts");
  14428. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/Jump.re.ts");
  14429. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/RapierBody.re.ts");
  14430. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Components/RapierConfig.re.ts");
  14431. /******/ __webpack_require__("./Assets/rogue_packages/BeardScript/rogue-rapier-experimental/Lib/RogueRapier.ts");
  14432. /******/ var __webpack_exports__ = __webpack_require__("./Assets/rogue_packages/EyeOfMidas/targeted-orbit-camera/TargetedOrbitCamera.re.ts");
  14433. /******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__);
  14434. /******/
  14435. /******/ return __webpack_exports__;
  14436. /******/ })()
  14437. ;
  14438. });
  14439. //# sourceMappingURL=rogue-engine-user-scripts.js.map
  14440. window['rogue-engine'].App.play({"title":"Project","scenes":[{"name":"Main","uuid":"7d5ce7cf-489d-4adc-bb46-21e2a1ad8280"}],"assetPaths":{"7ec342ac-8d41-4037-8f79-495c8e90b22c":"AppData/7ec342ac-8d41-4037-8f79-495c8e90b22c.roguePrefab","8e52161b-d0da-49fa-ad3d-0c57c5afe04e":"AppData/8e52161b-d0da-49fa-ad3d-0c57c5afe04e.roguePrefab","1376d483-2fc1-4e94-b0ab-bcaf540c0911":"AppData/1376d483-2fc1-4e94-b0ab-bcaf540c0911.roguePrefab","3e04cf79-63a1-40a2-9ed6-8fd41b1578f8":"AppData/3e04cf79-63a1-40a2-9ed6-8fd41b1578f8.rogueMaterial","d25c1e03-a5bd-4246-a971-0cf0e3da5ac4":"AppData/d25c1e03-a5bd-4246-a971-0cf0e3da5ac4.roguePrefab","bc558e2e-d5f9-41ae-a419-683238b9b900":"AppData/bc558e2e-d5f9-41ae-a419-683238b9b900.rogueMaterial","a2ad3f1e-9572-437a-9cb0-192add812abf":"AppData/a2ad3f1e-9572-437a-9cb0-192add812abf.rogueMaterial","7d5ce7cf-489d-4adc-bb46-21e2a1ad8280":"AppData/7d5ce7cf-489d-4adc-bb46-21e2a1ad8280.rogueScene"}});