hytopia 0.7.3-dev1 → 0.7.3-dev2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bun-server.mjs +2 -2
- package/node-server.mjs +2 -2
- package/package.json +1 -1
package/node-server.mjs
CHANGED
|
@@ -412,7 +412,7 @@ Instead, \`yield\` should either be called with a value, or not be called at all
|
|
|
412
412
|
if (condition) { yield value; }`)};import{Buffer as WF1}from"node:buffer";import{StringDecoder as GF1}from"node:string_decoder";var FL=(Z,J,X)=>{if(X)return;if(Z)return{transform:HF1.bind(void 0,new TextEncoder)};let Y=new GF1(J);return{transform:VF1.bind(void 0,Y),final:zF1.bind(void 0,Y)}},HF1=function*(Z,J){if(WF1.isBuffer(J))yield HZ(J);else if(typeof J==="string")yield Z.encode(J);else yield J},VF1=function*(Z,J){yield b8(J)?Z.write(J):J},zF1=function*(Z){let J=Z.end();if(J!=="")yield J};import{callbackify as Dd}from"node:util";var ND=Dd(async(Z,J,X,Y)=>{J.currentIterable=Z(...X);try{for await(let $ of J.currentIterable)Y.push($)}finally{delete J.currentIterable}}),qL=async function*(Z,J,X){if(X===J.length){yield Z;return}let{transform:Y=qF1}=J[X];for await(let $ of Y(Z))yield*qL($,J,X+1)},Pd=async function*(Z){for(let[J,{final:X}]of Object.entries(Z))yield*FF1(X,Number(J),Z)},FF1=async function*(Z,J,X){if(Z===void 0)return;for await(let Y of Z())yield*qL(Y,X,J+1)},Cd=Dd(async({currentIterable:Z},J)=>{if(Z!==void 0){await(J?Z.throw(J):Z.return());return}if(J)throw J}),qF1=function*(Z){yield Z};var RD=(Z,J,X,Y)=>{try{for(let $ of Z(...J))X.push($);Y()}catch($){Y($)}},Td=(Z,J)=>[...J.flatMap((X)=>[...FY(X,Z,0)]),...v3(Z)],FY=function*(Z,J,X){if(X===J.length){yield Z;return}let{transform:Y=LF1}=J[X];for(let $ of Y(Z))yield*FY($,J,X+1)},v3=function*(Z){for(let[J,{final:X}]of Object.entries(Z))yield*UF1(X,Number(J),Z)},UF1=function*(Z,J,X){if(Z===void 0)return;for(let Y of Z())yield*FY(Y,X,J+1)},LF1=function*(Z){yield Z};var MD=({value:Z,value:{transform:J,final:X,writableObjectMode:Y,readableObjectMode:$},optionName:Q},{encoding:K})=>{let W={},G=Id(Z,K,Q),H=zY(J),V=zY(X),F=H?ND.bind(void 0,qL,W):RD.bind(void 0,FY),z=H||V?ND.bind(void 0,Pd,W):RD.bind(void 0,v3),q=H||V?Cd.bind(void 0,W):void 0;return{stream:new BF1({writableObjectMode:Y,writableHighWaterMark:Ed(Y),readableObjectMode:$,readableHighWaterMark:Ed($),transform(L,B,w){F([L,G,0],this,w)},flush(L){z([G],this,L)},destroy:q})}},UL=(Z,J,X,Y)=>{let $=J.filter(({type:K})=>K==="generator"),Q=Y?$.reverse():$;for(let{value:K,optionName:W}of Q){let G=Id(K,X,W);Z=Td(G,Z)}return Z},Id=({transform:Z,final:J,binary:X,writableObjectMode:Y,readableObjectMode:$,preserveNewlines:Q},K,W)=>{let G={};return[{transform:Rd(Y,W)},FL(X,K,Y),zL(X,Q,Y,G),{transform:Z,final:J},{transform:Md($,W)},Nd({binary:X,preserveNewlines:Q,readableObjectMode:$,state:G})].filter(Boolean)};var kd=(Z,J)=>{for(let X of wF1(Z))OF1(Z,X,J)},wF1=(Z)=>new Set(Object.entries(Z).filter(([,{direction:J}])=>J==="input").map(([J])=>Number(J))),OF1=(Z,J,X)=>{let{stdioItems:Y}=Z[J],$=Y.filter(({contents:W})=>W!==void 0);if($.length===0)return;if(J!==0){let[{type:W,optionName:G}]=$;throw new TypeError(`Only the \`stdin\` option, not \`${G}\`, can be ${DJ[W]} with synchronous methods.`)}let K=$.map(({contents:W})=>W).map((W)=>NF1(W,Y));X.input=j3(K)},NF1=(Z,J)=>{let X=UL(Z,J,"utf8",!0);return RF1(X),j3(X)},RF1=(Z)=>{let J=Z.find((X)=>typeof X!=="string"&&!b8(X));if(J!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${J}.`)};import{writeFileSync as PF1,appendFileSync as CF1}from"node:fs";var LL=({stdioItems:Z,encoding:J,verboseInfo:X,fdNumber:Y})=>Y!=="all"&&uQ(X,Y)&&!l5.has(J)&&MF1(Y)&&(Z.some(({type:$,value:Q})=>$==="native"&&jF1.has(Q))||Z.every(({type:$})=>D9.has($))),MF1=(Z)=>Z===1||Z===2,jF1=new Set(["pipe","overlapped"]),vd=async(Z,J,X,Y)=>{for await(let $ of Z)if(!DF1(J))Sd($,X,Y)},_d=(Z,J,X)=>{for(let Y of Z)Sd(Y,J,X)},DF1=(Z)=>Z._readableState.pipes.length>0,Sd=(Z,J,X)=>{let Y=TU(Z);J7({type:"output",verboseMessage:Y,fdNumber:J,verboseInfo:X})};var Ad=({fileDescriptors:Z,syncResult:{output:J},options:X,isMaxBuffer:Y,verboseInfo:$})=>{if(J===null)return{output:Array.from({length:3})};let Q={},K=new Set([]);return{output:J.map((G,H)=>TF1({result:G,fileDescriptors:Z,fdNumber:H,state:Q,outputFiles:K,isMaxBuffer:Y,verboseInfo:$},X)),...Q}},TF1=({result:Z,fileDescriptors:J,fdNumber:X,state:Y,outputFiles:$,isMaxBuffer:Q,verboseInfo:K},{buffer:W,encoding:G,lines:H,stripFinalNewline:V,maxBuffer:F})=>{if(Z===null)return;let z=xu(Z,Q,F),q=HZ(z),{stdioItems:U,objectMode:L}=J[X],B=EF1([q],U,G,Y),{serializedResult:w,finalResult:N=w}=IF1({chunks:B,objectMode:L,encoding:G,lines:H,stripFinalNewline:V,fdNumber:X});kF1({serializedResult:w,fdNumber:X,state:Y,verboseInfo:K,encoding:G,stdioItems:U,objectMode:L});let R=W[X]?N:void 0;try{if(Y.error===void 0)vF1(w,U,$);return R}catch(M){return Y.error=M,R}},EF1=(Z,J,X,Y)=>{try{return UL(Z,J,X,!1)}catch($){return Y.error=$,Z}},IF1=({chunks:Z,objectMode:J,encoding:X,lines:Y,stripFinalNewline:$,fdNumber:Q})=>{if(J)return{serializedResult:Z};if(X==="buffer")return{serializedResult:j3(Z)};let K=ab(Z,X);if(Y[Q])return{serializedResult:K,finalResult:OD(K,!$[Q],J)};return{serializedResult:K}},kF1=({serializedResult:Z,fdNumber:J,state:X,verboseInfo:Y,encoding:$,stdioItems:Q,objectMode:K})=>{if(!LL({stdioItems:Q,encoding:$,verboseInfo:Y,fdNumber:J}))return;let W=OD(Z,!1,K);try{_d(W,J,Y)}catch(G){X.error??=G}},vF1=(Z,J,X)=>{for(let{path:Y,append:$}of J.filter(({type:Q})=>HL.has(Q))){let Q=typeof Y==="string"?Y:Y.toString();if($||X.has(Q))CF1(Y,Z);else X.add(Q),PF1(Y,Z)}};var xd=([,Z,J],X)=>{if(!X.all)return;if(Z===void 0)return J;if(J===void 0)return Z;if(Array.isArray(Z))return Array.isArray(J)?[...Z,...J]:[...Z,qZ(J,X,"all")];if(Array.isArray(J))return[qZ(Z,X,"all"),...J];if(b8(Z)&&b8(J))return Ej([Z,J]);return`${Z}${J}`};import{once as jD}from"node:events";var hd=async(Z,J)=>{let[X,Y]=await _F1(Z);return J.isForcefullyTerminated??=!1,[X,Y]},_F1=async(Z)=>{let[J,X]=await Promise.allSettled([jD(Z,"spawn"),jD(Z,"exit")]);if(J.status==="rejected")return[];return X.status==="rejected"?fd(Z):X.value},fd=async(Z)=>{try{return await jD(Z,"exit")}catch{return fd(Z)}},yd=async(Z)=>{let[J,X]=await Z;if(!SF1(J,X)&&DD(J,X))throw new X7;return[J,X]},SF1=(Z,J)=>Z===void 0&&J===void 0,DD=(Z,J)=>Z!==0||J!==null;var bd=({error:Z,status:J,signal:X,output:Y},{maxBuffer:$})=>{let Q=AF1(Z,J,X),K=Q?.code==="ETIMEDOUT",W=Au(Q,Y,$);return{resultError:Q,exitCode:J,signal:X,timedOut:K,isMaxBuffer:W}},AF1=(Z,J,X)=>{if(Z!==void 0)return Z;return DD(J,X)?new X7:void 0};var gd=(Z,J,X)=>{let{file:Y,commandArguments:$,command:Q,escapedCommand:K,startTime:W,verboseInfo:G,options:H,fileDescriptors:V}=hF1(Z,J,X),F=bF1({file:Y,commandArguments:$,options:H,command:Q,escapedCommand:K,verboseInfo:G,fileDescriptors:V,startTime:W});return oQ(F,G,H)},hF1=(Z,J,X)=>{let{command:Y,escapedCommand:$,startTime:Q,verboseInfo:K}=IU(Z,J,X),W=fF1(X),{file:G,commandArguments:H,options:V}=rU(Z,J,W);yF1(V);let F=Ld(V,K);return{file:G,commandArguments:H,command:Y,escapedCommand:$,startTime:Q,verboseInfo:K,options:V,fileDescriptors:F}},fF1=(Z)=>Z.node&&!Z.ipc?{...Z,ipc:!1}:Z,yF1=({ipc:Z,ipcInput:J,detached:X,cancelSignal:Y})=>{if(J)BL("ipcInput");if(Z)BL("ipc: true");if(X)BL("detached: true");if(Y)BL("cancelSignal")},BL=(Z)=>{throw new TypeError(`The "${Z}" option cannot be used with synchronous methods.`)},bF1=({file:Z,commandArguments:J,options:X,command:Y,escapedCommand:$,verboseInfo:Q,fileDescriptors:K,startTime:W})=>{let G=gF1({file:Z,commandArguments:J,options:X,command:Y,escapedCommand:$,fileDescriptors:K,startTime:W});if(G.failed)return G;let{resultError:H,exitCode:V,signal:F,timedOut:z,isMaxBuffer:q}=bd(G,X),{output:U,error:L=H}=Ad({fileDescriptors:K,syncResult:G,options:X,isMaxBuffer:q,verboseInfo:Q}),B=U.map((N,R)=>qZ(N,X,R)),w=qZ(xd(U,X),X,"all");return uF1({error:L,exitCode:V,signal:F,timedOut:z,isMaxBuffer:q,stdio:B,all:w,options:X,command:Y,escapedCommand:$,startTime:W})},gF1=({file:Z,commandArguments:J,options:X,command:Y,escapedCommand:$,fileDescriptors:Q,startTime:K})=>{try{kd(Q,X);let W=mF1(X);return xF1(Z,J,W)}catch(W){return sQ({error:W,command:Y,escapedCommand:$,fileDescriptors:Q,options:X,startTime:K,isSync:!0})}},mF1=({encoding:Z,maxBuffer:J,...X})=>({...X,encoding:"buffer",maxBuffer:QL(J)}),uF1=({error:Z,exitCode:J,signal:X,timedOut:Y,isMaxBuffer:$,stdio:Q,all:K,options:W,command:G,escapedCommand:H,startTime:V})=>Z===void 0?KL({command:G,escapedCommand:H,stdio:Q,all:K,ipcOutput:[],options:W,startTime:V}):k3({error:Z,command:G,escapedCommand:H,timedOut:Y,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:$,isForcefullyTerminated:!1,exitCode:J,signal:X,stdio:Q,all:K,ipcOutput:[],options:W,startTime:V,isSync:!0});import{setMaxListeners as IU1}from"node:events";import{spawn as kU1}from"node:child_process";import ld from"node:process";import{once as PD,on as dF1}from"node:events";var md=({anyProcess:Z,channel:J,isSubprocess:X,ipc:Y},{reference:$=!0,filter:Q}={})=>{return lQ({methodName:"getOneMessage",isSubprocess:X,ipc:Y,isConnected:pU(Z)}),cF1({anyProcess:Z,channel:J,isSubprocess:X,filter:Q,reference:$})},cF1=async({anyProcess:Z,channel:J,isSubprocess:X,filter:Y,reference:$})=>{uU(J,$);let Q=jJ(Z,J,X),K=new AbortController;try{return await Promise.race([lF1(Q,Y,K),pF1(Q,X,K),iF1(Q,X,K)])}catch(W){throw pQ(Z),W}finally{K.abort(),dU(J,$)}},lF1=async(Z,J,{signal:X})=>{if(J===void 0){let[Y]=await PD(Z,"message",{signal:X});return Y}for await(let[Y]of dF1(Z,"message",{signal:X}))if(J(Y))return Y},pF1=async(Z,J,{signal:X})=>{await PD(Z,"disconnect",{signal:X}),Cm(J)},iF1=async(Z,J,{signal:X})=>{let[Y]=await PD(Z,"strict:error",{signal:X});throw bU(Y,J)};import{once as dd,on as nF1}from"node:events";var cd=({anyProcess:Z,channel:J,isSubprocess:X,ipc:Y},{reference:$=!0}={})=>CD({anyProcess:Z,channel:J,isSubprocess:X,ipc:Y,shouldAwait:!X,reference:$}),CD=({anyProcess:Z,channel:J,isSubprocess:X,ipc:Y,shouldAwait:$,reference:Q})=>{lQ({methodName:"getEachMessage",isSubprocess:X,ipc:Y,isConnected:pU(Z)}),uU(J,Q);let K=jJ(Z,J,X),W=new AbortController,G={};return aF1(Z,K,W),sF1({ipcEmitter:K,isSubprocess:X,controller:W,state:G}),oF1({anyProcess:Z,channel:J,ipcEmitter:K,isSubprocess:X,shouldAwait:$,controller:W,state:G,reference:Q})},aF1=async(Z,J,X)=>{try{await dd(J,"disconnect",{signal:X.signal}),X.abort()}catch{}},sF1=async({ipcEmitter:Z,isSubprocess:J,controller:X,state:Y})=>{try{let[$]=await dd(Z,"strict:error",{signal:X.signal});Y.error=bU($,J),X.abort()}catch{}},oF1=async function*({anyProcess:Z,channel:J,ipcEmitter:X,isSubprocess:Y,shouldAwait:$,controller:Q,state:K,reference:W}){try{for await(let[G]of nF1(X,"message",{signal:Q.signal}))ud(K),yield G}catch{ud(K)}finally{if(Q.abort(),dU(J,W),!Y)pQ(Z);if($)await Z}},ud=({error:Z})=>{if(Z)throw Z};var pd=(Z,{ipc:J})=>{Object.assign(Z,nd(Z,!1,J))},id=()=>{let Z=ld,J=!0,X=ld.channel!==void 0;return{...nd(Z,!0,X),getCancelSignal:tm.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:!0,ipc:X})}},nd=(Z,J,X)=>({sendMessage:sU.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:J,ipc:X}),getOneMessage:md.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:J,ipc:X}),getEachMessage:cd.bind(void 0,{anyProcess:Z,channel:Z.channel,isSubprocess:J,ipc:X})});import{ChildProcess as rF1}from"node:child_process";import{PassThrough as tF1,Readable as eF1,Writable as Zq1,Duplex as Jq1}from"node:stream";var ad=({error:Z,command:J,escapedCommand:X,fileDescriptors:Y,options:$,startTime:Q,verboseInfo:K})=>{LD(Y);let W=new rF1;Xq1(W,Y),Object.assign(W,{readable:Yq1,writable:$q1,duplex:Qq1});let G=sQ({error:Z,command:J,escapedCommand:X,fileDescriptors:Y,options:$,startTime:Q,isSync:!1}),H=Kq1(G,K,$);return{subprocess:W,promise:H}},Xq1=(Z,J)=>{let X=_3(),Y=_3(),$=_3(),Q=Array.from({length:J.length-3},_3),K=_3(),W=[X,Y,$,...Q];Object.assign(Z,{stdin:X,stdout:Y,stderr:$,all:K,stdio:W})},_3=()=>{let Z=new tF1;return Z.end(),Z},Yq1=()=>new eF1({read(){}}),$q1=()=>new Zq1({write(){}}),Qq1=()=>new Jq1({read(){},write(){}}),Kq1=async(Z,J,X)=>oQ(Z,J,X);import{createReadStream as sd,createWriteStream as od}from"node:fs";import{Buffer as Wq1}from"node:buffer";import{Readable as S3,Writable as Gq1,Duplex as Hq1}from"node:stream";var td=(Z,J)=>VL(Vq1,Z,J,!1),A3=({type:Z,optionName:J})=>{throw new TypeError(`The \`${J}\` option cannot be ${DJ[Z]}.`)},rd={fileNumber:A3,generator:MD,asyncGenerator:MD,nodeStream:({value:Z})=>({stream:Z}),webTransform({value:{transform:Z,writableObjectMode:J,readableObjectMode:X}}){let Y=J||X;return{stream:Hq1.fromWeb(Z,{objectMode:Y})}},duplex:({value:{transform:Z}})=>({stream:Z}),native(){}},Vq1={input:{...rd,fileUrl:({value:Z})=>({stream:sd(Z)}),filePath:({value:{file:Z}})=>({stream:sd(Z)}),webStream:({value:Z})=>({stream:S3.fromWeb(Z)}),iterable:({value:Z})=>({stream:S3.from(Z)}),asyncIterable:({value:Z})=>({stream:S3.from(Z)}),string:({value:Z})=>({stream:S3.from(Z)}),uint8Array:({value:Z})=>({stream:S3.from(Wq1.from(Z))})},output:{...rd,fileUrl:({value:Z})=>({stream:od(Z)}),filePath:({value:{file:Z,append:J}})=>({stream:od(Z,J?{flags:"a"}:{})}),webStream:({value:Z})=>({stream:Gq1.fromWeb(Z)}),iterable:A3,asyncIterable:A3,string:A3,uint8Array:A3}};import{on as zq1,once as ed}from"node:events";import{PassThrough as Fq1,getDefaultHighWaterMark as qq1}from"node:stream";import{finished as Xc}from"node:stream/promises";function qY(Z){if(!Array.isArray(Z))throw new TypeError(`Expected an array, got \`${typeof Z}\`.`);for(let $ of Z)TD($);let J=Z.some(({readableObjectMode:$})=>$),X=Uq1(Z,J),Y=new Yc({objectMode:J,writableHighWaterMark:X,readableHighWaterMark:X});for(let $ of Z)Y.add($);return Y}var Uq1=(Z,J)=>{if(Z.length===0)return qq1(J);let X=Z.filter(({readableObjectMode:Y})=>Y===J).map(({readableHighWaterMark:Y})=>Y);return Math.max(...X)};class Yc extends Fq1{#Z=new Set([]);#J=new Set([]);#Y=new Set([]);#X;#$=Symbol("unpipe");#V=new WeakMap;add(Z){if(TD(Z),this.#Z.has(Z))return;this.#Z.add(Z),this.#X??=Lq1(this,this.#Z,this.#$);let J=Oq1({passThroughStream:this,stream:Z,streams:this.#Z,ended:this.#J,aborted:this.#Y,onFinished:this.#X,unpipeEvent:this.#$});this.#V.set(Z,J),Z.pipe(this,{end:!1})}async remove(Z){if(TD(Z),!this.#Z.has(Z))return!1;let J=this.#V.get(Z);if(J===void 0)return!1;return this.#V.delete(Z),Z.unpipe(this),await J,!0}}var Lq1=async(Z,J,X)=>{wL(Z,Zc);let Y=new AbortController;try{await Promise.race([Bq1(Z,Y),wq1(Z,J,X,Y)])}finally{Y.abort(),wL(Z,-Zc)}},Bq1=async(Z,{signal:J})=>{try{await Xc(Z,{signal:J,cleanup:!0})}catch(X){throw $c(Z,X),X}},wq1=async(Z,J,X,{signal:Y})=>{for await(let[$]of zq1(Z,"unpipe",{signal:Y}))if(J.has($))$.emit(X)},TD=(Z)=>{if(typeof Z?.pipe!=="function")throw new TypeError(`Expected a readable stream, got: \`${typeof Z}\`.`)},Oq1=async({passThroughStream:Z,stream:J,streams:X,ended:Y,aborted:$,onFinished:Q,unpipeEvent:K})=>{wL(Z,Jc);let W=new AbortController;try{await Promise.race([Nq1(Q,J,W),Rq1({passThroughStream:Z,stream:J,streams:X,ended:Y,aborted:$,controller:W}),Mq1({stream:J,streams:X,ended:Y,aborted:$,unpipeEvent:K,controller:W})])}finally{W.abort(),wL(Z,-Jc)}if(X.size>0&&X.size===Y.size+$.size)if(Y.size===0&&$.size>0)ED(Z);else jq1(Z)},Nq1=async(Z,J,{signal:X})=>{try{if(await Z,!X.aborted)ED(J)}catch(Y){if(!X.aborted)$c(J,Y)}},Rq1=async({passThroughStream:Z,stream:J,streams:X,ended:Y,aborted:$,controller:{signal:Q}})=>{try{if(await Xc(J,{signal:Q,cleanup:!0,readable:!0,writable:!1}),X.has(J))Y.add(J)}catch(K){if(Q.aborted||!X.has(J))return;if(Qc(K))$.add(J);else Kc(Z,K)}},Mq1=async({stream:Z,streams:J,ended:X,aborted:Y,unpipeEvent:$,controller:{signal:Q}})=>{if(await ed(Z,$,{signal:Q}),!Z.readable)return ed(Q,"abort",{signal:Q});J.delete(Z),X.delete(Z),Y.delete(Z)},jq1=(Z)=>{if(Z.writable)Z.end()},$c=(Z,J)=>{if(Qc(J))ED(Z);else Kc(Z,J)},Qc=(Z)=>Z?.code==="ERR_STREAM_PREMATURE_CLOSE",ED=(Z)=>{if(Z.readable||Z.writable)Z.destroy()},Kc=(Z,J)=>{if(!Z.destroyed)Z.once("error",Dq1),Z.destroy(J)},Dq1=()=>{},wL=(Z,J)=>{let X=Z.getMaxListeners();if(X!==0&&X!==Number.POSITIVE_INFINITY)Z.setMaxListeners(X+J)},Zc=2,Jc=1;import{finished as Wc}from"node:stream/promises";var tQ=(Z,J)=>{Z.pipe(J),Pq1(Z,J),Cq1(Z,J)},Pq1=async(Z,J)=>{if(q4(Z)||q4(J))return;try{await Wc(Z,{cleanup:!0,readable:!0,writable:!1})}catch{}ID(J)},ID=(Z)=>{if(Z.writable)Z.end()},Cq1=async(Z,J)=>{if(q4(Z)||q4(J))return;try{await Wc(J,{cleanup:!0,readable:!1,writable:!0})}catch{}kD(Z)},kD=(Z)=>{if(Z.readable)Z.destroy()};var Gc=(Z,J,X)=>{let Y=new Map;for(let[$,{stdioItems:Q,direction:K}]of Object.entries(J)){for(let{stream:W}of Q.filter(({type:G})=>D9.has(G)))Tq1(Z,W,K,$);for(let{stream:W}of Q.filter(({type:G})=>!D9.has(G)))Iq1({subprocess:Z,stream:W,direction:K,fdNumber:$,pipeGroups:Y,controller:X})}for(let[$,Q]of Y.entries()){let K=Q.length===1?Q[0]:qY(Q);tQ(K,$)}},Tq1=(Z,J,X,Y)=>{if(X==="output")tQ(Z.stdio[Y],J);else tQ(J,Z.stdio[Y]);let $=Eq1[Y];if($!==void 0)Z[$]=J;Z.stdio[Y]=J},Eq1=["stdin","stdout","stderr"],Iq1=({subprocess:Z,stream:J,direction:X,fdNumber:Y,pipeGroups:$,controller:Q})=>{if(J===void 0)return;kq1(J,Q);let[K,W]=X==="output"?[J,Z.stdio[Y]]:[Z.stdio[Y],J],G=$.get(K)??[];$.set(K,[...G,W])},kq1=(Z,{signal:J})=>{if(q4(Z))HY(Z,vq1,J)},vq1=2;import{addAbortListener as Aq1}from"node:events";var UY=[];UY.push("SIGHUP","SIGINT","SIGTERM");if(process.platform!=="win32")UY.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");if(process.platform==="linux")UY.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var OL=(Z)=>!!Z&&typeof Z==="object"&&typeof Z.removeListener==="function"&&typeof Z.emit==="function"&&typeof Z.reallyExit==="function"&&typeof Z.listeners==="function"&&typeof Z.kill==="function"&&typeof Z.pid==="number"&&typeof Z.on==="function",vD=Symbol.for("signal-exit emitter"),_D=globalThis,_q1=Object.defineProperty.bind(Object);class Hc{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(_D[vD])return _D[vD];_q1(_D,vD,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(Z,J){this.listeners[Z].push(J)}removeListener(Z,J){let X=this.listeners[Z],Y=X.indexOf(J);if(Y===-1)return;if(Y===0&&X.length===1)X.length=0;else X.splice(Y,1)}emit(Z,J,X){if(this.emitted[Z])return!1;this.emitted[Z]=!0;let Y=!1;for(let $ of this.listeners[Z])Y=$(J,X)===!0||Y;if(Z==="exit")Y=this.emit("afterExit",J,X)||Y;return Y}}class AD{}var Sq1=(Z)=>{return{onExit(J,X){return Z.onExit(J,X)},load(){return Z.load()},unload(){return Z.unload()}}};class Vc extends AD{onExit(){return()=>{}}load(){}unload(){}}class zc extends AD{#Z=SD.platform==="win32"?"SIGINT":"SIGHUP";#J=new Hc;#Y;#X;#$;#V={};#F=!1;constructor(Z){super();this.#Y=Z,this.#V={};for(let J of UY)this.#V[J]=()=>{let X=this.#Y.listeners(J),{count:Y}=this.#J,$=Z;if(typeof $.__signal_exit_emitter__==="object"&&typeof $.__signal_exit_emitter__.count==="number")Y+=$.__signal_exit_emitter__.count;if(X.length===Y){this.unload();let Q=this.#J.emit("exit",null,J),K=J==="SIGHUP"?this.#Z:J;if(!Q)Z.kill(Z.pid,K)}};this.#$=Z.reallyExit,this.#X=Z.emit}onExit(Z,J){if(!OL(this.#Y))return()=>{};if(this.#F===!1)this.load();let X=J?.alwaysLast?"afterExit":"exit";return this.#J.on(X,Z),()=>{if(this.#J.removeListener(X,Z),this.#J.listeners.exit.length===0&&this.#J.listeners.afterExit.length===0)this.unload()}}load(){if(this.#F)return;this.#F=!0,this.#J.count+=1;for(let Z of UY)try{let J=this.#V[Z];if(J)this.#Y.on(Z,J)}catch(J){}this.#Y.emit=(Z,...J)=>{return this.#G(Z,...J)},this.#Y.reallyExit=(Z)=>{return this.#W(Z)}}unload(){if(!this.#F)return;this.#F=!1,UY.forEach((Z)=>{let J=this.#V[Z];if(!J)throw new Error("Listener not defined for signal: "+Z);try{this.#Y.removeListener(Z,J)}catch(X){}}),this.#Y.emit=this.#X,this.#Y.reallyExit=this.#$,this.#J.count-=1}#W(Z){if(!OL(this.#Y))return 0;return this.#Y.exitCode=Z||0,this.#J.emit("exit",this.#Y.exitCode,null),this.#$.call(this.#Y,this.#Y.exitCode)}#G(Z,...J){let X=this.#X;if(Z==="exit"&&OL(this.#Y)){if(typeof J[0]==="number")this.#Y.exitCode=J[0];let Y=X.call(this.#Y,Z,...J);return this.#J.emit("exit",this.#Y.exitCode,null),Y}else return X.call(this.#Y,Z,...J)}}var SD=globalThis.process,{onExit:Fc,load:RM6,unload:MM6}=Sq1(OL(SD)?new zc(SD):new Vc);var qc=(Z,{cleanup:J,detached:X},{signal:Y})=>{if(!J||X)return;let $=Fc(()=>{Z.kill()});Aq1(Y,()=>{$()})};var Lc=({source:Z,sourcePromise:J,boundOptions:X,createNested:Y},...$)=>{let Q=EU(),{destination:K,destinationStream:W,destinationError:G,from:H,unpipeSignal:V}=xq1(X,Y,$),{sourceStream:F,sourceError:z}=fq1(Z,H),{options:q,fileDescriptors:U}=$7.get(Z);return{sourcePromise:J,sourceStream:F,sourceOptions:q,sourceError:z,destination:K,destinationStream:W,destinationError:G,unpipeSignal:V,fileDescriptors:U,startTime:Q}},xq1=(Z,J,X)=>{try{let{destination:Y,pipeOptions:{from:$,to:Q,unpipeSignal:K}={}}=hq1(Z,J,...X),W=mU(Y,Q);return{destination:Y,destinationStream:W,from:$,unpipeSignal:K}}catch(Y){return{destinationError:Y}}},hq1=(Z,J,X,...Y)=>{if(Array.isArray(X))return{destination:J(Uc,Z)(X,...Y),pipeOptions:Z};if(typeof X==="string"||X instanceof URL||Cj(X)){if(Object.keys(Z).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[$,Q,K]=wU(X,...Y);return{destination:J(Uc)($,Q,K),pipeOptions:K}}if($7.has(X)){if(Object.keys(Z).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:X,pipeOptions:Y[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${X}`)},Uc=({options:Z})=>({options:{...Z,stdin:"pipe",piped:!0}}),fq1=(Z,J)=>{try{return{sourceStream:iQ(Z,J)}}catch(X){return{sourceError:X}}};var wc=({sourceStream:Z,sourceError:J,destinationStream:X,destinationError:Y,fileDescriptors:$,sourceOptions:Q,startTime:K})=>{let W=yq1({sourceStream:Z,sourceError:J,destinationStream:X,destinationError:Y});if(W!==void 0)throw xD({error:W,fileDescriptors:$,sourceOptions:Q,startTime:K})},yq1=({sourceStream:Z,sourceError:J,destinationStream:X,destinationError:Y})=>{if(J!==void 0&&Y!==void 0)return Y;if(Y!==void 0)return kD(Z),Y;if(J!==void 0)return ID(X),J},xD=({error:Z,fileDescriptors:J,sourceOptions:X,startTime:Y})=>sQ({error:Z,command:Bc,escapedCommand:Bc,fileDescriptors:J,options:X,startTime:Y,isSync:!1}),Bc="source.pipe(destination)";var Oc=async(Z)=>{let[{status:J,reason:X,value:Y=X},{status:$,reason:Q,value:K=Q}]=await Z;if(!K.pipedFrom.includes(Y))K.pipedFrom.push(Y);if($==="rejected")throw K;if(J==="rejected")throw Y;return K};import{finished as bq1}from"node:stream/promises";var Nc=(Z,J,X)=>{let Y=NL.has(J)?mq1(Z,J):gq1(Z,J);return HY(Z,dq1,X.signal),HY(J,cq1,X.signal),uq1(J),Y},gq1=(Z,J)=>{let X=qY([Z]);return tQ(X,J),NL.set(J,X),X},mq1=(Z,J)=>{let X=NL.get(J);return X.add(Z),X},uq1=async(Z)=>{try{await bq1(Z,{cleanup:!0,readable:!1,writable:!0})}catch{}NL.delete(Z)},NL=new WeakMap,dq1=2,cq1=1;import{aborted as lq1}from"node:util";var Rc=(Z,J)=>Z===void 0?[]:[pq1(Z,J)],pq1=async(Z,{sourceStream:J,mergedStream:X,fileDescriptors:Y,sourceOptions:$,startTime:Q})=>{await lq1(Z,J),await X.remove(J);let K=new Error("Pipe canceled by `unpipeSignal` option.");throw xD({error:K,fileDescriptors:Y,sourceOptions:$,startTime:Q})};var RL=(Z,...J)=>{if(B8(J[0]))return RL.bind(void 0,{...Z,boundOptions:{...Z.boundOptions,...J[0]}});let{destination:X,...Y}=Lc(Z,...J),$=iq1({...Y,destination:X});return $.pipe=RL.bind(void 0,{...Z,source:X,sourcePromise:$,boundOptions:{}}),$},iq1=async({sourcePromise:Z,sourceStream:J,sourceOptions:X,sourceError:Y,destination:$,destinationStream:Q,destinationError:K,unpipeSignal:W,fileDescriptors:G,startTime:H})=>{let V=nq1(Z,$);wc({sourceStream:J,sourceError:Y,destinationStream:Q,destinationError:K,fileDescriptors:G,sourceOptions:X,startTime:H});let F=new AbortController;try{let z=Nc(J,Q,F);return await Promise.race([Oc(V),...Rc(W,{sourceStream:J,mergedStream:z,sourceOptions:X,fileDescriptors:G,startTime:H})])}finally{F.abort()}},nq1=(Z,J)=>Promise.allSettled([Z,J]);import{setImmediate as ZU1}from"node:timers/promises";import{on as aq1}from"node:events";import{getDefaultHighWaterMark as sq1}from"node:stream";var ML=({subprocessStdout:Z,subprocess:J,binary:X,shouldEncode:Y,encoding:$,preserveNewlines:Q})=>{let K=new AbortController;return oq1(J,K),jc({stream:Z,controller:K,binary:X,shouldEncode:!Z.readableObjectMode&&Y,encoding:$,shouldSplit:!Z.readableObjectMode,preserveNewlines:Q})},oq1=async(Z,J)=>{try{await Z}catch{}finally{J.abort()}},hD=({stream:Z,onStreamEnd:J,lines:X,encoding:Y,stripFinalNewline:$,allMixed:Q})=>{let K=new AbortController;rq1(J,K,Z);let W=Z.readableObjectMode&&!Q;return jc({stream:Z,controller:K,binary:Y==="buffer",shouldEncode:!W,encoding:Y,shouldSplit:!W&&X,preserveNewlines:!$})},rq1=async(Z,J,X)=>{try{await Z}catch{X.destroy()}finally{J.abort()}},jc=({stream:Z,controller:J,binary:X,shouldEncode:Y,encoding:$,shouldSplit:Q,preserveNewlines:K})=>{let W=aq1(Z,"data",{signal:J.signal,highWaterMark:Mc,highWatermark:Mc});return tq1({onStdoutChunk:W,controller:J,binary:X,shouldEncode:Y,encoding:$,shouldSplit:Q,preserveNewlines:K})},fD=sq1(!0),Mc=fD,tq1=async function*({onStdoutChunk:Z,controller:J,binary:X,shouldEncode:Y,encoding:$,shouldSplit:Q,preserveNewlines:K}){let W=eq1({binary:X,shouldEncode:Y,encoding:$,shouldSplit:Q,preserveNewlines:K});try{for await(let[G]of Z)yield*FY(G,W,0)}catch(G){if(!J.signal.aborted)throw G}finally{yield*v3(W)}},eq1=({binary:Z,shouldEncode:J,encoding:X,shouldSplit:Y,preserveNewlines:$})=>[FL(Z,X,!J),zL(Z,$,!Y,{})].filter(Boolean);var Dc=async({stream:Z,onStreamEnd:J,fdNumber:X,encoding:Y,buffer:$,maxBuffer:Q,lines:K,allMixed:W,stripFinalNewline:G,verboseInfo:H,streamInfo:V})=>{let F=JU1({stream:Z,onStreamEnd:J,fdNumber:X,encoding:Y,allMixed:W,verboseInfo:H,streamInfo:V});if(!$){await Promise.all([XU1(Z),F]);return}let z=BD(G,X),q=hD({stream:Z,onStreamEnd:J,lines:K,encoding:Y,stripFinalNewline:z,allMixed:W}),[U]=await Promise.all([YU1({stream:Z,iterable:q,fdNumber:X,encoding:Y,maxBuffer:Q,lines:K}),F]);return U},JU1=async({stream:Z,onStreamEnd:J,fdNumber:X,encoding:Y,allMixed:$,verboseInfo:Q,streamInfo:{fileDescriptors:K}})=>{if(!LL({stdioItems:K[X]?.stdioItems,encoding:Y,verboseInfo:Q,fdNumber:X}))return;let W=hD({stream:Z,onStreamEnd:J,lines:!0,encoding:Y,stripFinalNewline:!0,allMixed:$});await vd(W,Z,X,Q)},XU1=async(Z)=>{if(await ZU1(),Z.readableFlowing===null)Z.resume()},YU1=async({stream:Z,stream:{readableObjectMode:J},iterable:X,fdNumber:Y,encoding:$,maxBuffer:Q,lines:K})=>{try{if(J||K)return await JL(X,{maxBuffer:Q});if($==="buffer")return new Uint8Array(await XL(X,{maxBuffer:Q}));return await $L(X,{maxBuffer:Q})}catch(W){return Pc(vu({error:W,stream:Z,readableObjectMode:J,lines:K,encoding:$,fdNumber:Y}))}},yD=async(Z)=>{try{return await Z}catch(J){return Pc(J)}},Pc=({bufferedData:Z})=>ib(Z)?new Uint8Array(Z):Z;import{finished as $U1}from"node:stream/promises";var x3=async(Z,J,X,{isSameDirection:Y,stopOnExit:$=!1}={})=>{let Q=QU1(Z,X),K=new AbortController;try{await Promise.race([...$?[X.exitPromise]:[],$U1(Z,{cleanup:!0,signal:K.signal})])}catch(W){if(!Q.stdinCleanedUp)GU1(W,J,X,Y)}finally{K.abort()}},QU1=(Z,{originalStreams:[J],subprocess:X})=>{let Y={stdinCleanedUp:!1};if(Z===J)KU1(Z,X,Y);return Y},KU1=(Z,J,X)=>{let{_destroy:Y}=Z;Z._destroy=(...$)=>{WU1(J,X),Y.call(Z,...$)}},WU1=({exitCode:Z,signalCode:J},X)=>{if(Z!==null||J!==null)X.stdinCleanedUp=!0},GU1=(Z,J,X,Y)=>{if(!HU1(Z,J,X,Y))throw Z},HU1=(Z,J,X,Y=!0)=>{if(X.propagating)return Cc(Z)||jL(Z);return X.propagating=!0,bD(X,J)===Y?Cc(Z):jL(Z)},bD=({fileDescriptors:Z},J)=>J!=="all"&&Z[J].direction==="input",jL=(Z)=>Z?.code==="ERR_STREAM_PREMATURE_CLOSE",Cc=(Z)=>Z?.code==="EPIPE";var Tc=({subprocess:Z,encoding:J,buffer:X,maxBuffer:Y,lines:$,stripFinalNewline:Q,verboseInfo:K,streamInfo:W})=>Z.stdio.map((G,H)=>gD({stream:G,fdNumber:H,encoding:J,buffer:X[H],maxBuffer:Y[H],lines:$[H],allMixed:!1,stripFinalNewline:Q,verboseInfo:K,streamInfo:W})),gD=async({stream:Z,fdNumber:J,encoding:X,buffer:Y,maxBuffer:$,lines:Q,allMixed:K,stripFinalNewline:W,verboseInfo:G,streamInfo:H})=>{if(!Z)return;let V=x3(Z,J,H);if(bD(H,J)){await V;return}let[F]=await Promise.all([Dc({stream:Z,onStreamEnd:V,fdNumber:J,encoding:X,buffer:Y,maxBuffer:$,lines:Q,allMixed:K,stripFinalNewline:W,verboseInfo:G,streamInfo:H}),V]);return F};var Ec=({stdout:Z,stderr:J},{all:X})=>X&&(Z||J)?qY([Z,J].filter(Boolean)):void 0,Ic=({subprocess:Z,encoding:J,buffer:X,maxBuffer:Y,lines:$,stripFinalNewline:Q,verboseInfo:K,streamInfo:W})=>gD({...VU1(Z,X),fdNumber:"all",encoding:J,maxBuffer:Y[1]+Y[2],lines:$[1]||$[2],allMixed:zU1(Z),stripFinalNewline:Q,verboseInfo:K,streamInfo:W}),VU1=({stdout:Z,stderr:J,all:X},[,Y,$])=>{let Q=Y||$;if(!Q)return{stream:X,buffer:Q};if(!Y)return{stream:J,buffer:Q};if(!$)return{stream:Z,buffer:Q};return{stream:X,buffer:Q}},zU1=({all:Z,stdout:J,stderr:X})=>Z&&J&&X&&J.readableObjectMode!==X.readableObjectMode;import{once as FU1}from"node:events";var kc=(Z)=>uQ(Z,"ipc"),vc=(Z,J)=>{let X=TU(Z);J7({type:"ipc",verboseMessage:X,fdNumber:"ipc",verboseInfo:J})};var _c=async({subprocess:Z,buffer:J,maxBuffer:X,ipc:Y,ipcOutput:$,verboseInfo:Q})=>{if(!Y)return $;let K=kc(Q),W=VZ(J,"ipc"),G=VZ(X,"ipc");for await(let H of CD({anyProcess:Z,channel:Z.channel,isSubprocess:!1,ipc:Y,shouldAwait:!1,reference:!0})){if(W)_u(Z,$,G),$.push(H);if(K)vc(H,Q)}return $},Sc=async(Z,J)=>{return await Promise.allSettled([Z]),J};var Ac=async({subprocess:Z,options:{encoding:J,buffer:X,maxBuffer:Y,lines:$,timeoutDuration:Q,cancelSignal:K,gracefulCancel:W,forceKillAfterDelay:G,stripFinalNewline:H,ipc:V,ipcInput:F},context:z,verboseInfo:q,fileDescriptors:U,originalStreams:L,onInternalError:B,controller:w})=>{let N=hd(Z,z),R={originalStreams:L,fileDescriptors:U,subprocess:Z,exitPromise:N,propagating:!1},M=Tc({subprocess:Z,encoding:J,buffer:X,maxBuffer:Y,lines:$,stripFinalNewline:H,verboseInfo:q,streamInfo:R}),P=Ic({subprocess:Z,encoding:J,buffer:X,maxBuffer:Y,lines:$,stripFinalNewline:H,verboseInfo:q,streamInfo:R}),j=[],C=_c({subprocess:Z,buffer:X,maxBuffer:Y,ipc:V,ipcOutput:j,verboseInfo:q}),T=qU1(L,Z,R),E=UU1(U,R);try{return await Promise.race([Promise.all([{},yd(N),Promise.all(M),P,C,Gu(Z,F),...T,...E]),B,LU1(Z,w),...Yu(Z,Q,z,w),...Pm({subprocess:Z,cancelSignal:K,gracefulCancel:W,context:z,controller:w}),...Ju({subprocess:Z,cancelSignal:K,gracefulCancel:W,forceKillAfterDelay:G,context:z,controller:w})])}catch(x){return z.terminationReason??="other",Promise.all([{error:x},N,Promise.all(M.map((_)=>yD(_))),yD(P),Sc(C,j),Promise.allSettled(T),Promise.allSettled(E)])}},qU1=(Z,J,X)=>Z.map((Y,$)=>Y===J.stdio[$]?void 0:x3(Y,$,X)),UU1=(Z,J)=>Z.flatMap(({stdioItems:X},Y)=>X.filter(({value:$,stream:Q=$})=>L4(Q,{checkOpen:!1})&&!q4(Q)).map(({type:$,value:Q,stream:K=Q})=>x3(K,Y,J,{isSameDirection:D9.has($),stopOnExit:$==="native"}))),LU1=async(Z,{signal:J})=>{let[X]=await FU1(Z,"error",{signal:J});throw X};var xc=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),h3=(Z,J,X)=>{let Y=Z[X];if(!Y.has(J))Y.set(J,[]);let $=Y.get(J),Q=Y7();return $.push(Q),{resolve:Q.resolve.bind(Q),promises:$}},eQ=async({resolve:Z,promises:J},X)=>{Z();let[Y]=await Promise.race([Promise.allSettled([!0,X]),Promise.all([!1,...J])]);return!Y};import{Readable as BU1}from"node:stream";import{callbackify as wU1}from"node:util";import{finished as hc}from"node:stream/promises";var mD=async(Z)=>{if(Z===void 0)return;try{await uD(Z)}catch{}},fc=async(Z)=>{if(Z===void 0)return;try{await dD(Z)}catch{}},uD=async(Z)=>{await hc(Z,{cleanup:!0,readable:!1,writable:!0})},dD=async(Z)=>{await hc(Z,{cleanup:!0,readable:!0,writable:!1})},DL=async(Z,J)=>{if(await Z,J)throw J},PL=(Z,J,X)=>{if(X&&!jL(X))Z.destroy(X);else if(J)Z.destroy()};var yc=({subprocess:Z,concurrentStreams:J,encoding:X},{from:Y,binary:$=!0,preserveNewlines:Q=!0}={})=>{let K=$||l5.has(X),{subprocessStdout:W,waitReadableDestroy:G}=cD(Z,Y,J),{readableEncoding:H,readableObjectMode:V,readableHighWaterMark:F}=lD(W,K),{read:z,onStdoutDataDone:q}=pD({subprocessStdout:W,subprocess:Z,binary:K,encoding:X,preserveNewlines:Q}),U=new BU1({read:z,destroy:wU1(nD.bind(void 0,{subprocessStdout:W,subprocess:Z,waitReadableDestroy:G})),highWaterMark:F,objectMode:V,encoding:H});return iD({subprocessStdout:W,onStdoutDataDone:q,readable:U,subprocess:Z}),U},cD=(Z,J,X)=>{let Y=iQ(Z,J),$=h3(X,Y,"readableDestroy");return{subprocessStdout:Y,waitReadableDestroy:$}},lD=({readableEncoding:Z,readableObjectMode:J,readableHighWaterMark:X},Y)=>Y?{readableEncoding:Z,readableObjectMode:J,readableHighWaterMark:X}:{readableEncoding:Z,readableObjectMode:!0,readableHighWaterMark:fD},pD=({subprocessStdout:Z,subprocess:J,binary:X,encoding:Y,preserveNewlines:$})=>{let Q=Y7(),K=ML({subprocessStdout:Z,subprocess:J,binary:X,shouldEncode:!X,encoding:Y,preserveNewlines:$});return{read(){OU1(this,K,Q)},onStdoutDataDone:Q}},OU1=async(Z,J,X)=>{try{let{value:Y,done:$}=await J.next();if($)X.resolve();else Z.push(Y)}catch{}},iD=async({subprocessStdout:Z,onStdoutDataDone:J,readable:X,subprocess:Y,subprocessStdin:$})=>{try{if(await dD(Z),await Y,await mD($),await J,X.readable)X.push(null)}catch(Q){await mD($),bc(X,Q)}},nD=async({subprocessStdout:Z,subprocess:J,waitReadableDestroy:X},Y)=>{if(await eQ(X,J))bc(Z,Y),await DL(J,Y)},bc=(Z,J)=>{PL(Z,Z.readable,J)};import{Writable as NU1}from"node:stream";import{callbackify as gc}from"node:util";var mc=({subprocess:Z,concurrentStreams:J},{to:X}={})=>{let{subprocessStdin:Y,waitWritableFinal:$,waitWritableDestroy:Q}=aD(Z,X,J),K=new NU1({...sD(Y,Z,$),destroy:gc(rD.bind(void 0,{subprocessStdin:Y,subprocess:Z,waitWritableFinal:$,waitWritableDestroy:Q})),highWaterMark:Y.writableHighWaterMark,objectMode:Y.writableObjectMode});return oD(Y,K),K},aD=(Z,J,X)=>{let Y=mU(Z,J),$=h3(X,Y,"writableFinal"),Q=h3(X,Y,"writableDestroy");return{subprocessStdin:Y,waitWritableFinal:$,waitWritableDestroy:Q}},sD=(Z,J,X)=>({write:RU1.bind(void 0,Z),final:gc(MU1.bind(void 0,Z,J,X))}),RU1=(Z,J,X,Y)=>{if(Z.write(J,X))Y();else Z.once("drain",Y)},MU1=async(Z,J,X)=>{if(await eQ(X,J)){if(Z.writable)Z.end();await J}},oD=async(Z,J,X)=>{try{if(await uD(Z),J.writable)J.end()}catch(Y){await fc(X),uc(J,Y)}},rD=async({subprocessStdin:Z,subprocess:J,waitWritableFinal:X,waitWritableDestroy:Y},$)=>{if(await eQ(X,J),await eQ(Y,J))uc(Z,$),await DL(J,$)},uc=(Z,J)=>{PL(Z,Z.writable,J)};import{Duplex as jU1}from"node:stream";import{callbackify as DU1}from"node:util";var dc=({subprocess:Z,concurrentStreams:J,encoding:X},{from:Y,to:$,binary:Q=!0,preserveNewlines:K=!0}={})=>{let W=Q||l5.has(X),{subprocessStdout:G,waitReadableDestroy:H}=cD(Z,Y,J),{subprocessStdin:V,waitWritableFinal:F,waitWritableDestroy:z}=aD(Z,$,J),{readableEncoding:q,readableObjectMode:U,readableHighWaterMark:L}=lD(G,W),{read:B,onStdoutDataDone:w}=pD({subprocessStdout:G,subprocess:Z,binary:W,encoding:X,preserveNewlines:K}),N=new jU1({read:B,...sD(V,Z,F),destroy:DU1(PU1.bind(void 0,{subprocessStdout:G,subprocessStdin:V,subprocess:Z,waitReadableDestroy:H,waitWritableFinal:F,waitWritableDestroy:z})),readableHighWaterMark:L,writableHighWaterMark:V.writableHighWaterMark,readableObjectMode:U,writableObjectMode:V.writableObjectMode,encoding:q});return iD({subprocessStdout:G,onStdoutDataDone:w,readable:N,subprocess:Z,subprocessStdin:V}),oD(V,N,G),N},PU1=async({subprocessStdout:Z,subprocessStdin:J,subprocess:X,waitReadableDestroy:Y,waitWritableFinal:$,waitWritableDestroy:Q},K)=>{await Promise.all([nD({subprocessStdout:Z,subprocess:X,waitReadableDestroy:Y},K),rD({subprocessStdin:J,subprocess:X,waitWritableFinal:$,waitWritableDestroy:Q},K)])};var tD=(Z,J,{from:X,binary:Y=!1,preserveNewlines:$=!1}={})=>{let Q=Y||l5.has(J),K=iQ(Z,X),W=ML({subprocessStdout:K,subprocess:Z,binary:Q,shouldEncode:!0,encoding:J,preserveNewlines:$});return CU1(W,K,Z)},CU1=async function*(Z,J,X){try{yield*Z}finally{if(J.readable)J.destroy();await X}};var cc=(Z,{encoding:J})=>{let X=xc();Z.readable=yc.bind(void 0,{subprocess:Z,concurrentStreams:X,encoding:J}),Z.writable=mc.bind(void 0,{subprocess:Z,concurrentStreams:X}),Z.duplex=dc.bind(void 0,{subprocess:Z,concurrentStreams:X,encoding:J}),Z.iterable=tD.bind(void 0,Z,J),Z[Symbol.asyncIterator]=tD.bind(void 0,Z,J,{})};var lc=(Z,J)=>{for(let[X,Y]of EU1){let $=Y.value.bind(J);Reflect.defineProperty(Z,X,{...Y,value:$})}},TU1=(async()=>{})().constructor.prototype,EU1=["then","catch","finally"].map((Z)=>[Z,Reflect.getOwnPropertyDescriptor(TU1,Z)]);var pc=(Z,J,X,Y)=>{let{file:$,commandArguments:Q,command:K,escapedCommand:W,startTime:G,verboseInfo:H,options:V,fileDescriptors:F}=vU1(Z,J,X),{subprocess:z,promise:q}=SU1({file:$,commandArguments:Q,options:V,startTime:G,verboseInfo:H,command:K,escapedCommand:W,fileDescriptors:F});return z.pipe=RL.bind(void 0,{source:z,sourcePromise:q,boundOptions:{},createNested:Y}),lc(z,q),$7.set(z,{options:V,fileDescriptors:F}),z},vU1=(Z,J,X)=>{let{command:Y,escapedCommand:$,startTime:Q,verboseInfo:K}=IU(Z,J,X),{file:W,commandArguments:G,options:H}=rU(Z,J,X),V=_U1(H),F=td(V,K);return{file:W,commandArguments:G,command:Y,escapedCommand:$,startTime:Q,verboseInfo:K,options:V,fileDescriptors:F}},_U1=({timeout:Z,signal:J,...X})=>{if(J!==void 0)throw new TypeError('The "signal" option has been renamed to "cancelSignal" instead.');return{...X,timeoutDuration:Z}},SU1=({file:Z,commandArguments:J,options:X,startTime:Y,verboseInfo:$,command:Q,escapedCommand:K,fileDescriptors:W})=>{let G;try{G=kU1(Z,J,X)}catch(U){return ad({error:U,command:Q,escapedCommand:K,fileDescriptors:W,options:X,startTime:Y,verboseInfo:$})}let H=new AbortController;IU1(Number.POSITIVE_INFINITY,H.signal);let V=[...G.stdio];Gc(G,W,H),qc(G,X,H);let F={},z=Y7();G.kill=jm.bind(void 0,{kill:G.kill.bind(G),options:X,onInternalError:z,context:F,controller:H}),G.all=Ec(G,X),cc(G,X),pd(G,X);let q=AU1({subprocess:G,options:X,startTime:Y,verboseInfo:$,fileDescriptors:W,originalStreams:V,command:Q,escapedCommand:K,context:F,onInternalError:z,controller:H});return{subprocess:G,promise:q}},AU1=async({subprocess:Z,options:J,startTime:X,verboseInfo:Y,fileDescriptors:$,originalStreams:Q,command:K,escapedCommand:W,context:G,onInternalError:H,controller:V})=>{let[F,[z,q],U,L,B]=await Ac({subprocess:Z,options:J,context:G,verboseInfo:Y,fileDescriptors:$,originalStreams:Q,onInternalError:H,controller:V});V.abort(),H.resolve();let w=U.map((M,P)=>qZ(M,J,P)),N=qZ(L,J,"all"),R=xU1({errorInfo:F,exitCode:z,signal:q,stdio:w,all:N,ipcOutput:B,context:G,options:J,command:K,escapedCommand:W,startTime:X});return oQ(R,Y,J)},xU1=({errorInfo:Z,exitCode:J,signal:X,stdio:Y,all:$,ipcOutput:Q,context:K,options:W,command:G,escapedCommand:H,startTime:V})=>("error"in Z)?k3({error:Z.error,command:G,escapedCommand:H,timedOut:K.terminationReason==="timeout",isCanceled:K.terminationReason==="cancel"||K.terminationReason==="gracefulCancel",isGracefullyCanceled:K.terminationReason==="gracefulCancel",isMaxBuffer:Z.error instanceof zZ,isForcefullyTerminated:K.isForcefullyTerminated,exitCode:J,signal:X,stdio:Y,all:$,ipcOutput:Q,options:W,startTime:V,isSync:!1}):KL({command:G,escapedCommand:H,stdio:Y,all:$,ipcOutput:Q,options:W,startTime:V});var CL=(Z,J)=>{let X=Object.fromEntries(Object.entries(J).map(([Y,$])=>[Y,hU1(Y,Z[Y],$)]));return{...Z,...X}},hU1=(Z,J,X)=>{if(fU1.has(Z)&&B8(J)&&B8(X))return{...J,...X};return X},fU1=new Set(["env",..._j]);var PJ=(Z,J,X,Y)=>{let $=(K,W,G)=>PJ(K,W,X,G),Q=(...K)=>yU1({mapArguments:Z,deepOptions:X,boundOptions:J,setBoundExeca:Y,createNested:$},...K);if(Y!==void 0)Y(Q,$,J);return Q},yU1=({mapArguments:Z,deepOptions:J={},boundOptions:X={},setBoundExeca:Y,createNested:$},Q,...K)=>{if(B8(Q))return $(Z,CL(X,Q),Y);let{file:W,commandArguments:G,options:H,isSync:V}=bU1({mapArguments:Z,firstArgument:Q,nextArguments:K,deepOptions:J,boundOptions:X});return V?gd(W,G,H):pc(W,G,H,$)},bU1=({mapArguments:Z,firstArgument:J,nextArguments:X,deepOptions:Y,boundOptions:$})=>{let Q=tb(J)?eb(J,X):[J,...X],[K,W,G]=wU(...Q),H=CL(CL(Y,$),G),{file:V=K,commandArguments:F=W,options:z=H,isSync:q=!1}=Z({file:K,commandArguments:W,options:H});return{file:V,commandArguments:F,options:z,isSync:q}};var ic=({file:Z,commandArguments:J})=>ac(Z,J),nc=({file:Z,commandArguments:J})=>({...ac(Z,J),isSync:!0}),ac=(Z,J)=>{if(J.length>0)throw new TypeError(`The command and its arguments must be passed as a single string: ${Z} ${J}.`);let[X,...Y]=gU1(Z);return{file:X,commandArguments:Y}},gU1=(Z)=>{if(typeof Z!=="string")throw new TypeError(`The command must be a string: ${String(Z)}.`);let J=Z.trim();if(J==="")return[];let X=[];for(let Y of J.split(mU1)){let $=X.at(-1);if($&&$.endsWith("\\"))X[X.length-1]=`${$.slice(0,-1)} ${Y}`;else X.push(Y)}return X},mU1=/ +/g;var sc=(Z,J,X)=>{Z.sync=J(uU1,X),Z.s=Z.sync},oc=({options:Z})=>rc(Z),uU1=({options:Z})=>({...rc(Z),isSync:!0}),rc=(Z)=>({options:{...dU1(Z),...Z}}),dU1=({input:Z,inputFile:J,stdio:X})=>Z===void 0&&J===void 0&&X===void 0?{stdin:"inherit"}:{},tc={preferLocal:!0};var ec=PJ(()=>({})),HP6=PJ(()=>({isSync:!0})),VP6=PJ(ic),zP6=PJ(nc),FP6=PJ(Qu),qP6=PJ(oc,{},tc,sc),{sendMessage:UP6,getOneMessage:LP6,getEachMessage:BP6,getCancelSignal:wP6}=id();var Nl=r(zl(),1);var y3=(Z)=>{if(typeof Z!=="string")throw new TypeError("invalid pattern");if(Z.length>65536)throw new TypeError("pattern is too long")};var oU1={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},b3=(Z)=>Z.replace(/[[\]\\-]/g,"\\$&"),rU1=(Z)=>Z.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Fl=(Z)=>Z.join(""),ql=(Z,J)=>{let X=J;if(Z.charAt(X)!=="[")throw new Error("not in a brace expression");let Y=[],$=[],Q=X+1,K=!1,W=!1,G=!1,H=!1,V=X,F="";Z:while(Q<Z.length){let L=Z.charAt(Q);if((L==="!"||L==="^")&&Q===X+1){H=!0,Q++;continue}if(L==="]"&&K&&!G){V=Q+1;break}if(K=!0,L==="\\"){if(!G){G=!0,Q++;continue}}if(L==="["&&!G){for(let[B,[w,N,R]]of Object.entries(oU1))if(Z.startsWith(B,Q)){if(F)return["$.",!1,Z.length-X,!0];if(Q+=B.length,R)$.push(w);else Y.push(w);W=W||N;continue Z}}if(G=!1,F){if(L>F)Y.push(b3(F)+"-"+b3(L));else if(L===F)Y.push(b3(L));F="",Q++;continue}if(Z.startsWith("-]",Q+1)){Y.push(b3(L+"-")),Q+=2;continue}if(Z.startsWith("-",Q+1)){F=L,Q+=2;continue}Y.push(b3(L)),Q++}if(V<Q)return["",!1,0,!1];if(!Y.length&&!$.length)return["$.",!1,Z.length-X,!0];if($.length===0&&Y.length===1&&/^\\?.$/.test(Y[0])&&!H){let L=Y[0].length===2?Y[0].slice(-1):Y[0];return[rU1(L),!1,V-X,!1]}let z="["+(H?"^":"")+Fl(Y)+"]",q="["+(H?"":"^")+Fl($)+"]";return[Y.length&&$.length?"("+z+"|"+q+")":Y.length?z:q,W,V-X,!0]};var B4=(Z,{windowsPathsNoEscape:J=!1}={})=>{return J?Z.replace(/\[([^\/\\])\]/g,"$1"):Z.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")};var tU1=new Set(["!","?","+","*","@"]),Ul=(Z)=>tU1.has(Z),eU1="(?!(?:^|/)\\.\\.?(?:$|/))",TL="(?!\\.)",ZL1=new Set(["[","."]),JL1=new Set(["..","."]),XL1=new Set("().*{}+?[]^$\\!"),YL1=(Z)=>Z.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),XP="[^/]",Ll=XP+"*?",Bl=XP+"+?";class U6{type;#Z;#J;#Y=!1;#X=[];#$;#V;#F;#W=!1;#G;#H;#z=!1;constructor(Z,J,X={}){if(this.type=Z,Z)this.#J=!0;if(this.#$=J,this.#Z=this.#$?this.#$.#Z:this,this.#G=this.#Z===this?X:this.#Z.#G,this.#F=this.#Z===this?[]:this.#Z.#F,Z==="!"&&!this.#Z.#W)this.#F.push(this);this.#V=this.#$?this.#$.#X.length:0}get hasMagic(){if(this.#J!==void 0)return this.#J;for(let Z of this.#X){if(typeof Z==="string")continue;if(Z.type||Z.hasMagic)return this.#J=!0}return this.#J}toString(){if(this.#H!==void 0)return this.#H;if(!this.type)return this.#H=this.#X.map((Z)=>String(Z)).join("");else return this.#H=this.type+"("+this.#X.map((Z)=>String(Z)).join("|")+")"}#Q(){if(this!==this.#Z)throw new Error("should only call on root");if(this.#W)return this;this.toString(),this.#W=!0;let Z;while(Z=this.#F.pop()){if(Z.type!=="!")continue;let J=Z,X=J.#$;while(X){for(let Y=J.#V+1;!X.type&&Y<X.#X.length;Y++)for(let $ of Z.#X){if(typeof $==="string")throw new Error("string part in extglob AST??");$.copyIn(X.#X[Y])}J=X,X=J.#$}}return this}push(...Z){for(let J of Z){if(J==="")continue;if(typeof J!=="string"&&!(J instanceof U6&&J.#$===this))throw new Error("invalid part: "+J);this.#X.push(J)}}toJSON(){let Z=this.type===null?this.#X.slice().map((J)=>typeof J==="string"?J:J.toJSON()):[this.type,...this.#X.map((J)=>J.toJSON())];if(this.isStart()&&!this.type)Z.unshift([]);if(this.isEnd()&&(this===this.#Z||this.#Z.#W&&this.#$?.type==="!"))Z.push({});return Z}isStart(){if(this.#Z===this)return!0;if(!this.#$?.isStart())return!1;if(this.#V===0)return!0;let Z=this.#$;for(let J=0;J<this.#V;J++){let X=Z.#X[J];if(!(X instanceof U6&&X.type==="!"))return!1}return!0}isEnd(){if(this.#Z===this)return!0;if(this.#$?.type==="!")return!0;if(!this.#$?.isEnd())return!1;if(!this.type)return this.#$?.isEnd();let Z=this.#$?this.#$.#X.length:0;return this.#V===Z-1}copyIn(Z){if(typeof Z==="string")this.push(Z);else this.push(Z.clone(this))}clone(Z){let J=new U6(this.type,Z);for(let X of this.#X)J.copyIn(X);return J}static#U(Z,J,X,Y){let $=!1,Q=!1,K=-1,W=!1;if(J.type===null){let z=X,q="";while(z<Z.length){let U=Z.charAt(z++);if($||U==="\\"){$=!$,q+=U;continue}if(Q){if(z===K+1){if(U==="^"||U==="!")W=!0}else if(U==="]"&&!(z===K+2&&W))Q=!1;q+=U;continue}else if(U==="["){Q=!0,K=z,W=!1,q+=U;continue}if(!Y.noext&&Ul(U)&&Z.charAt(z)==="("){J.push(q),q="";let L=new U6(U,J);z=U6.#U(Z,L,z,Y),J.push(L);continue}q+=U}return J.push(q),z}let G=X+1,H=new U6(null,J),V=[],F="";while(G<Z.length){let z=Z.charAt(G++);if($||z==="\\"){$=!$,F+=z;continue}if(Q){if(G===K+1){if(z==="^"||z==="!")W=!0}else if(z==="]"&&!(G===K+2&&W))Q=!1;F+=z;continue}else if(z==="["){Q=!0,K=G,W=!1,F+=z;continue}if(Ul(z)&&Z.charAt(G)==="("){H.push(F),F="";let q=new U6(z,H);H.push(q),G=U6.#U(Z,q,G,Y);continue}if(z==="|"){H.push(F),F="",V.push(H),H=new U6(null,J);continue}if(z===")"){if(F===""&&J.#X.length===0)J.#z=!0;return H.push(F),F="",J.push(...V,H),G}F+=z}return J.type=null,J.#J=void 0,J.#X=[Z.substring(X-1)],G}static fromGlob(Z,J={}){let X=new U6(null,void 0,J);return U6.#U(Z,X,0,J),X}toMMPattern(){if(this!==this.#Z)return this.#Z.toMMPattern();let Z=this.toString(),[J,X,Y,$]=this.toRegExpSource();if(!(Y||this.#J||this.#G.nocase&&!this.#G.nocaseMagicOnly&&Z.toUpperCase()!==Z.toLowerCase()))return X;let K=(this.#G.nocase?"i":"")+($?"u":"");return Object.assign(new RegExp(`^${J}$`,K),{_src:J,_glob:Z})}get options(){return this.#G}toRegExpSource(Z){let J=Z??!!this.#G.dot;if(this.#Z===this)this.#Q();if(!this.type){let W=this.isStart()&&this.isEnd(),G=this.#X.map((z)=>{let[q,U,L,B]=typeof z==="string"?U6.#L(z,this.#J,W):z.toRegExpSource(Z);return this.#J=this.#J||L,this.#Y=this.#Y||B,q}).join(""),H="";if(this.isStart()){if(typeof this.#X[0]==="string"){if(!(this.#X.length===1&&JL1.has(this.#X[0]))){let q=ZL1,U=J&&q.has(G.charAt(0))||G.startsWith("\\.")&&q.has(G.charAt(2))||G.startsWith("\\.\\.")&&q.has(G.charAt(4)),L=!J&&!Z&&q.has(G.charAt(0));H=U?eU1:L?TL:""}}}let V="";if(this.isEnd()&&this.#Z.#W&&this.#$?.type==="!")V="(?:$|\\/)";return[H+G+V,B4(G),this.#J=!!this.#J,this.#Y]}let X=this.type==="*"||this.type==="+",Y=this.type==="!"?"(?:(?!(?:":"(?:",$=this.#B(J);if(this.isStart()&&this.isEnd()&&!$&&this.type!=="!"){let W=this.toString();return this.#X=[W],this.type=null,this.#J=void 0,[W,B4(this.toString()),!1,!1]}let Q=!X||Z||J||!TL?"":this.#B(!0);if(Q===$)Q="";if(Q)$=`(?:${$})(?:${Q})*?`;let K="";if(this.type==="!"&&this.#z)K=(this.isStart()&&!J?TL:"")+Bl;else{let W=this.type==="!"?"))"+(this.isStart()&&!J&&!Z?TL:"")+Ll+")":this.type==="@"?")":this.type==="?"?")?":this.type==="+"&&Q?")":this.type==="*"&&Q?")?":`)${this.type}`;K=Y+$+W}return[K,B4($),this.#J=!!this.#J,this.#Y]}#B(Z){return this.#X.map((J)=>{if(typeof J==="string")throw new Error("string type in extglob ast??");let[X,Y,$,Q]=J.toRegExpSource(Z);return this.#Y=this.#Y||Q,X}).filter((J)=>!(this.isStart()&&this.isEnd())||!!J).join("|")}static#L(Z,J,X=!1){let Y=!1,$="",Q=!1;for(let K=0;K<Z.length;K++){let W=Z.charAt(K);if(Y){Y=!1,$+=(XL1.has(W)?"\\":"")+W;continue}if(W==="\\"){if(K===Z.length-1)$+="\\\\";else Y=!0;continue}if(W==="["){let[G,H,V,F]=ql(Z,K);if(V){$+=G,Q=Q||H,K+=V-1,J=J||F;continue}}if(W==="*"){if(X&&Z==="*")$+=Bl;else $+=Ll;J=!0;continue}if(W==="?"){$+=XP,J=!0;continue}$+=YL1(W)}return[$,B4(Z),!!J,Q]}}var ZK=(Z,{windowsPathsNoEscape:J=!1}={})=>{return J?Z.replace(/[?*()[\]]/g,"[$&]"):Z.replace(/[?*()[\]\\]/g,"\\$&")};var l6=(Z,J,X={})=>{if(y3(J),!X.nocomment&&J.charAt(0)==="#")return!1;return new C9(J,X).match(Z)},$L1=/^\*+([^+@!?\*\[\(]*)$/,QL1=(Z)=>(J)=>!J.startsWith(".")&&J.endsWith(Z),KL1=(Z)=>(J)=>J.endsWith(Z),WL1=(Z)=>{return Z=Z.toLowerCase(),(J)=>!J.startsWith(".")&&J.toLowerCase().endsWith(Z)},GL1=(Z)=>{return Z=Z.toLowerCase(),(J)=>J.toLowerCase().endsWith(Z)},HL1=/^\*+\.\*+$/,VL1=(Z)=>!Z.startsWith(".")&&Z.includes("."),zL1=(Z)=>Z!=="."&&Z!==".."&&Z.includes("."),FL1=/^\.\*+$/,qL1=(Z)=>Z!=="."&&Z!==".."&&Z.startsWith("."),UL1=/^\*+$/,LL1=(Z)=>Z.length!==0&&!Z.startsWith("."),BL1=(Z)=>Z.length!==0&&Z!=="."&&Z!=="..",wL1=/^\?+([^+@!?\*\[\(]*)?$/,OL1=([Z,J=""])=>{let X=Rl([Z]);if(!J)return X;return J=J.toLowerCase(),(Y)=>X(Y)&&Y.toLowerCase().endsWith(J)},NL1=([Z,J=""])=>{let X=Ml([Z]);if(!J)return X;return J=J.toLowerCase(),(Y)=>X(Y)&&Y.toLowerCase().endsWith(J)},RL1=([Z,J=""])=>{let X=Ml([Z]);return!J?X:(Y)=>X(Y)&&Y.endsWith(J)},ML1=([Z,J=""])=>{let X=Rl([Z]);return!J?X:(Y)=>X(Y)&&Y.endsWith(J)},Rl=([Z])=>{let J=Z.length;return(X)=>X.length===J&&!X.startsWith(".")},Ml=([Z])=>{let J=Z.length;return(X)=>X.length===J&&X!=="."&&X!==".."},jl=typeof process==="object"&&process?typeof process.env==="object"&&process.env&&process.env.__MINIMATCH_TESTING_PLATFORM__||process.platform:"posix",wl={win32:{sep:"\\"},posix:{sep:"/"}},jL1=jl==="win32"?wl.win32.sep:wl.posix.sep;l6.sep=jL1;var L6=Symbol("globstar **");l6.GLOBSTAR=L6;var DL1="[^/]",PL1=DL1+"*?",CL1="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",TL1="(?:(?!(?:\\/|^)\\.).)*?",EL1=(Z,J={})=>(X)=>l6(X,Z,J);l6.filter=EL1;var P9=(Z,J={})=>Object.assign({},Z,J),IL1=(Z)=>{if(!Z||typeof Z!=="object"||!Object.keys(Z).length)return l6;let J=l6;return Object.assign((Y,$,Q={})=>J(Y,$,P9(Z,Q)),{Minimatch:class Y extends J.Minimatch{constructor($,Q={}){super($,P9(Z,Q))}static defaults($){return J.defaults(P9(Z,$)).Minimatch}},AST:class Y extends J.AST{constructor($,Q,K={}){super($,Q,P9(Z,K))}static fromGlob($,Q={}){return J.AST.fromGlob($,P9(Z,Q))}},unescape:(Y,$={})=>J.unescape(Y,P9(Z,$)),escape:(Y,$={})=>J.escape(Y,P9(Z,$)),filter:(Y,$={})=>J.filter(Y,P9(Z,$)),defaults:(Y)=>J.defaults(P9(Z,Y)),makeRe:(Y,$={})=>J.makeRe(Y,P9(Z,$)),braceExpand:(Y,$={})=>J.braceExpand(Y,P9(Z,$)),match:(Y,$,Q={})=>J.match(Y,$,P9(Z,Q)),sep:J.sep,GLOBSTAR:L6})};l6.defaults=IL1;var Dl=(Z,J={})=>{if(y3(Z),J.nobrace||!/\{(?:(?!\{).)*\}/.test(Z))return[Z];return Nl.default(Z)};l6.braceExpand=Dl;var kL1=(Z,J={})=>new C9(Z,J).makeRe();l6.makeRe=kL1;var vL1=(Z,J,X={})=>{let Y=new C9(J,X);if(Z=Z.filter(($)=>Y.match($)),Y.options.nonull&&!Z.length)Z.push(J);return Z};l6.match=vL1;var Ol=/[?*]|[+@!]\(.*?\)|\[|\]/,_L1=(Z)=>Z.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");class C9{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(Z,J={}){if(y3(Z),J=J||{},this.options=J,this.pattern=Z,this.platform=J.platform||jl,this.isWindows=this.platform==="win32",this.windowsPathsNoEscape=!!J.windowsPathsNoEscape||J.allowWindowsEscape===!1,this.windowsPathsNoEscape)this.pattern=this.pattern.replace(/\\/g,"/");this.preserveMultipleSlashes=!!J.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!J.nonegate,this.comment=!1,this.empty=!1,this.partial=!!J.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=J.windowsNoMagicRoot!==void 0?J.windowsNoMagicRoot:!!(this.isWindows&&this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(let Z of this.set)for(let J of Z)if(typeof J!=="string")return!0;return!1}debug(...Z){}make(){let Z=this.pattern,J=this.options;if(!J.nocomment&&Z.charAt(0)==="#"){this.comment=!0;return}if(!Z){this.empty=!0;return}if(this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],J.debug)this.debug=(...$)=>console.error(...$);this.debug(this.pattern,this.globSet);let X=this.globSet.map(($)=>this.slashSplit($));this.globParts=this.preprocess(X),this.debug(this.pattern,this.globParts);let Y=this.globParts.map(($,Q,K)=>{if(this.isWindows&&this.windowsNoMagicRoot){let W=$[0]===""&&$[1]===""&&($[2]==="?"||!Ol.test($[2]))&&!Ol.test($[3]),G=/^[a-z]:/i.test($[0]);if(W)return[...$.slice(0,4),...$.slice(4).map((H)=>this.parse(H))];else if(G)return[$[0],...$.slice(1).map((H)=>this.parse(H))]}return $.map((W)=>this.parse(W))});if(this.debug(this.pattern,Y),this.set=Y.filter(($)=>$.indexOf(!1)===-1),this.isWindows)for(let $=0;$<this.set.length;$++){let Q=this.set[$];if(Q[0]===""&&Q[1]===""&&this.globParts[$][2]==="?"&&typeof Q[3]==="string"&&/^[a-z]:$/i.test(Q[3]))Q[2]="?"}this.debug(this.pattern,this.set)}preprocess(Z){if(this.options.noglobstar){for(let X=0;X<Z.length;X++)for(let Y=0;Y<Z[X].length;Y++)if(Z[X][Y]==="**")Z[X][Y]="*"}let{optimizationLevel:J=1}=this.options;if(J>=2)Z=this.firstPhasePreProcess(Z),Z=this.secondPhasePreProcess(Z);else if(J>=1)Z=this.levelOneOptimize(Z);else Z=this.adjascentGlobstarOptimize(Z);return Z}adjascentGlobstarOptimize(Z){return Z.map((J)=>{let X=-1;while((X=J.indexOf("**",X+1))!==-1){let Y=X;while(J[Y+1]==="**")Y++;if(Y!==X)J.splice(X,Y-X)}return J})}levelOneOptimize(Z){return Z.map((J)=>{return J=J.reduce((X,Y)=>{let $=X[X.length-1];if(Y==="**"&&$==="**")return X;if(Y===".."){if($&&$!==".."&&$!=="."&&$!=="**")return X.pop(),X}return X.push(Y),X},[]),J.length===0?[""]:J})}levelTwoFileOptimize(Z){if(!Array.isArray(Z))Z=this.slashSplit(Z);let J=!1;do{if(J=!1,!this.preserveMultipleSlashes){for(let Y=1;Y<Z.length-1;Y++){let $=Z[Y];if(Y===1&&$===""&&Z[0]==="")continue;if($==="."||$==="")J=!0,Z.splice(Y,1),Y--}if(Z[0]==="."&&Z.length===2&&(Z[1]==="."||Z[1]===""))J=!0,Z.pop()}let X=0;while((X=Z.indexOf("..",X+1))!==-1){let Y=Z[X-1];if(Y&&Y!=="."&&Y!==".."&&Y!=="**")J=!0,Z.splice(X-1,2),X-=2}}while(J);return Z.length===0?[""]:Z}firstPhasePreProcess(Z){let J=!1;do{J=!1;for(let X of Z){let Y=-1;while((Y=X.indexOf("**",Y+1))!==-1){let Q=Y;while(X[Q+1]==="**")Q++;if(Q>Y)X.splice(Y+1,Q-Y);let K=X[Y+1],W=X[Y+2],G=X[Y+3];if(K!=="..")continue;if(!W||W==="."||W===".."||!G||G==="."||G==="..")continue;J=!0,X.splice(Y,1);let H=X.slice(0);H[Y]="**",Z.push(H),Y--}if(!this.preserveMultipleSlashes){for(let Q=1;Q<X.length-1;Q++){let K=X[Q];if(Q===1&&K===""&&X[0]==="")continue;if(K==="."||K==="")J=!0,X.splice(Q,1),Q--}if(X[0]==="."&&X.length===2&&(X[1]==="."||X[1]===""))J=!0,X.pop()}let $=0;while(($=X.indexOf("..",$+1))!==-1){let Q=X[$-1];if(Q&&Q!=="."&&Q!==".."&&Q!=="**"){J=!0;let W=$===1&&X[$+1]==="**"?["."]:[];if(X.splice($-1,2,...W),X.length===0)X.push("");$-=2}}}}while(J);return Z}secondPhasePreProcess(Z){for(let J=0;J<Z.length-1;J++)for(let X=J+1;X<Z.length;X++){let Y=this.partsMatch(Z[J],Z[X],!this.preserveMultipleSlashes);if(Y){Z[J]=[],Z[X]=Y;break}}return Z.filter((J)=>J.length)}partsMatch(Z,J,X=!1){let Y=0,$=0,Q=[],K="";while(Y<Z.length&&$<J.length)if(Z[Y]===J[$])Q.push(K==="b"?J[$]:Z[Y]),Y++,$++;else if(X&&Z[Y]==="**"&&J[$]===Z[Y+1])Q.push(Z[Y]),Y++;else if(X&&J[$]==="**"&&Z[Y]===J[$+1])Q.push(J[$]),$++;else if(Z[Y]==="*"&&J[$]&&(this.options.dot||!J[$].startsWith("."))&&J[$]!=="**"){if(K==="b")return!1;K="a",Q.push(Z[Y]),Y++,$++}else if(J[$]==="*"&&Z[Y]&&(this.options.dot||!Z[Y].startsWith("."))&&Z[Y]!=="**"){if(K==="a")return!1;K="b",Q.push(J[$]),Y++,$++}else return!1;return Z.length===J.length&&Q}parseNegate(){if(this.nonegate)return;let Z=this.pattern,J=!1,X=0;for(let Y=0;Y<Z.length&&Z.charAt(Y)==="!";Y++)J=!J,X++;if(X)this.pattern=Z.slice(X);this.negate=J}matchOne(Z,J,X=!1){let Y=this.options;if(this.isWindows){let U=typeof Z[0]==="string"&&/^[a-z]:$/i.test(Z[0]),L=!U&&Z[0]===""&&Z[1]===""&&Z[2]==="?"&&/^[a-z]:$/i.test(Z[3]),B=typeof J[0]==="string"&&/^[a-z]:$/i.test(J[0]),w=!B&&J[0]===""&&J[1]===""&&J[2]==="?"&&typeof J[3]==="string"&&/^[a-z]:$/i.test(J[3]),N=L?3:U?0:void 0,R=w?3:B?0:void 0;if(typeof N==="number"&&typeof R==="number"){let[M,P]=[Z[N],J[R]];if(M.toLowerCase()===P.toLowerCase()){if(J[R]=M,R>N)J=J.slice(R);else if(N>R)Z=Z.slice(N)}}}let{optimizationLevel:$=1}=this.options;if($>=2)Z=this.levelTwoFileOptimize(Z);this.debug("matchOne",this,{file:Z,pattern:J}),this.debug("matchOne",Z.length,J.length);for(var Q=0,K=0,W=Z.length,G=J.length;Q<W&&K<G;Q++,K++){this.debug("matchOne loop");var H=J[K],V=Z[Q];if(this.debug(J,H,V),H===!1)return!1;if(H===L6){this.debug("GLOBSTAR",[J,H,V]);var F=Q,z=K+1;if(z===G){this.debug("** at the end");for(;Q<W;Q++)if(Z[Q]==="."||Z[Q]===".."||!Y.dot&&Z[Q].charAt(0)===".")return!1;return!0}while(F<W){var q=Z[F];if(this.debug(`
|
|
413
413
|
globstar while`,Z,F,J,z,q),this.matchOne(Z.slice(F),J.slice(z),X))return this.debug("globstar found match!",F,W,q),!0;else{if(q==="."||q===".."||!Y.dot&&q.charAt(0)==="."){this.debug("dot detected!",Z,F,J,z);break}this.debug("globstar swallow a segment, and continue"),F++}}if(X){if(this.debug(`
|
|
414
414
|
>>> no match, partial?`,Z,F,J,z),F===W)return!0}return!1}let U;if(typeof H==="string")U=V===H,this.debug("string match",H,V,U);else U=H.test(V),this.debug("pattern match",H,V,U);if(!U)return!1}if(Q===W&&K===G)return!0;else if(Q===W)return X;else if(K===G)return Q===W-1&&Z[Q]==="";else throw new Error("wtf?")}braceExpand(){return Dl(this.pattern,this.options)}parse(Z){y3(Z);let J=this.options;if(Z==="**")return L6;if(Z==="")return"";let X,Y=null;if(X=Z.match(UL1))Y=J.dot?BL1:LL1;else if(X=Z.match($L1))Y=(J.nocase?J.dot?GL1:WL1:J.dot?KL1:QL1)(X[1]);else if(X=Z.match(wL1))Y=(J.nocase?J.dot?NL1:OL1:J.dot?RL1:ML1)(X);else if(X=Z.match(HL1))Y=J.dot?zL1:VL1;else if(X=Z.match(FL1))Y=qL1;let $=U6.fromGlob(Z,this.options).toMMPattern();if(Y&&typeof $==="object")Reflect.defineProperty($,"test",{value:Y});return $}makeRe(){if(this.regexp||this.regexp===!1)return this.regexp;let Z=this.set;if(!Z.length)return this.regexp=!1,this.regexp;let J=this.options,X=J.noglobstar?PL1:J.dot?CL1:TL1,Y=new Set(J.nocase?["i"]:[]),$=Z.map((W)=>{let G=W.map((H)=>{if(H instanceof RegExp)for(let V of H.flags.split(""))Y.add(V);return typeof H==="string"?_L1(H):H===L6?L6:H._src});return G.forEach((H,V)=>{let F=G[V+1],z=G[V-1];if(H!==L6||z===L6)return;if(z===void 0)if(F!==void 0&&F!==L6)G[V+1]="(?:\\/|"+X+"\\/)?"+F;else G[V]=X;else if(F===void 0)G[V-1]=z+"(?:\\/|"+X+")?";else if(F!==L6)G[V-1]=z+"(?:\\/|\\/"+X+"\\/)"+F,G[V+1]=L6}),G.filter((H)=>H!==L6).join("/")}).join("|"),[Q,K]=Z.length>1?["(?:",")"]:["",""];if($="^"+Q+$+K+"$",this.negate)$="^(?!"+$+").+$";try{this.regexp=new RegExp($,[...Y].join(""))}catch(W){this.regexp=!1}return this.regexp}slashSplit(Z){if(this.preserveMultipleSlashes)return Z.split("/");else if(this.isWindows&&/^\/\/[^\/]+/.test(Z))return["",...Z.split(/\/+/)];else return Z.split(/\/+/)}match(Z,J=this.partial){if(this.debug("match",Z,this.pattern),this.comment)return!1;if(this.empty)return Z==="";if(Z==="/"&&J)return!0;let X=this.options;if(this.isWindows)Z=Z.split("\\").join("/");let Y=this.slashSplit(Z);this.debug(this.pattern,"split",Y);let $=this.set;this.debug(this.pattern,"set",$);let Q=Y[Y.length-1];if(!Q)for(let K=Y.length-2;!Q&&K>=0;K--)Q=Y[K];for(let K=0;K<$.length;K++){let W=$[K],G=Y;if(X.matchBase&&W.length===1)G=[Q];if(this.matchOne(G,W,J)){if(X.flipNegate)return!0;return!this.negate}}if(X.flipNegate)return!1;return this.negate}static defaults(Z){return l6.defaults(Z).Minimatch}}l6.AST=U6;l6.Minimatch=C9;l6.escape=ZK;l6.unescape=B4;import{fileURLToPath as HB1}from"node:url";var JK=typeof performance==="object"&&performance&&typeof performance.now==="function"?performance:Date,Cl=new Set,YP=typeof process==="object"&&!!process?process:{},Tl=(Z,J,X,Y)=>{typeof YP.emitWarning==="function"?YP.emitWarning(Z,J,X,Y):console.error(`[${X}] ${J}: ${Z}`)},EL=globalThis.AbortController,Pl=globalThis.AbortSignal;if(typeof EL==="undefined"){Pl=class X{onabort;_onabort=[];reason;aborted=!1;addEventListener(Y,$){this._onabort.push($)}},EL=class X{constructor(){J()}signal=new Pl;abort(Y){if(this.signal.aborted)return;this.signal.reason=Y,this.signal.aborted=!0;for(let $ of this.signal._onabort)$(Y);this.signal.onabort?.(Y)}};let Z=YP.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",J=()=>{if(!Z)return;Z=!1,Tl("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",J)}}var SL1=(Z)=>!Cl.has(Z),fP6=Symbol("type"),CJ=(Z)=>Z&&Z===Math.floor(Z)&&Z>0&&isFinite(Z),El=(Z)=>!CJ(Z)?null:Z<=Math.pow(2,8)?Uint8Array:Z<=Math.pow(2,16)?Uint16Array:Z<=Math.pow(2,32)?Uint32Array:Z<=Number.MAX_SAFE_INTEGER?g3:null;class g3 extends Array{constructor(Z){super(Z);this.fill(0)}}class XK{heap;length;static#Z=!1;static create(Z){let J=El(Z);if(!J)return[];XK.#Z=!0;let X=new XK(Z,J);return XK.#Z=!1,X}constructor(Z,J){if(!XK.#Z)throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new J(Z),this.length=0}push(Z){this.heap[this.length++]=Z}pop(){return this.heap[--this.length]}}class m3{#Z;#J;#Y;#X;#$;#V;#F;ttl;ttlResolution;ttlAutopurge;updateAgeOnGet;updateAgeOnHas;allowStale;noDisposeOnSet;noUpdateTTL;maxEntrySize;sizeCalculation;noDeleteOnFetchRejection;noDeleteOnStaleGet;allowStaleOnFetchAbort;allowStaleOnFetchRejection;ignoreFetchAbort;#W;#G;#H;#z;#Q;#U;#B;#L;#O;#E;#N;#I;#j;#M;#R;#C;#w;#v;static unsafeExposeInternals(Z){return{starts:Z.#j,ttls:Z.#M,sizes:Z.#I,keyMap:Z.#H,keyList:Z.#z,valList:Z.#Q,next:Z.#U,prev:Z.#B,get head(){return Z.#L},get tail(){return Z.#O},free:Z.#E,isBackgroundFetch:(J)=>Z.#q(J),backgroundFetch:(J,X,Y,$)=>Z.#h(J,X,Y,$),moveToTail:(J)=>Z.#b(J),indexes:(J)=>Z.#T(J),rindexes:(J)=>Z.#k(J),isStale:(J)=>Z.#P(J)}}get max(){return this.#Z}get maxSize(){return this.#J}get calculatedSize(){return this.#G}get size(){return this.#W}get fetchMethod(){return this.#V}get memoMethod(){return this.#F}get dispose(){return this.#Y}get onInsert(){return this.#X}get disposeAfter(){return this.#$}constructor(Z){let{max:J=0,ttl:X,ttlResolution:Y=1,ttlAutopurge:$,updateAgeOnGet:Q,updateAgeOnHas:K,allowStale:W,dispose:G,onInsert:H,disposeAfter:V,noDisposeOnSet:F,noUpdateTTL:z,maxSize:q=0,maxEntrySize:U=0,sizeCalculation:L,fetchMethod:B,memoMethod:w,noDeleteOnFetchRejection:N,noDeleteOnStaleGet:R,allowStaleOnFetchRejection:M,allowStaleOnFetchAbort:P,ignoreFetchAbort:j}=Z;if(J!==0&&!CJ(J))throw new TypeError("max option must be a nonnegative integer");let C=J?El(J):Array;if(!C)throw new Error("invalid max value: "+J);if(this.#Z=J,this.#J=q,this.maxEntrySize=U||this.#J,this.sizeCalculation=L,this.sizeCalculation){if(!this.#J&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!=="function")throw new TypeError("sizeCalculation set to non-function")}if(w!==void 0&&typeof w!=="function")throw new TypeError("memoMethod must be a function if defined");if(this.#F=w,B!==void 0&&typeof B!=="function")throw new TypeError("fetchMethod must be a function if specified");if(this.#V=B,this.#C=!!B,this.#H=new Map,this.#z=new Array(J).fill(void 0),this.#Q=new Array(J).fill(void 0),this.#U=new C(J),this.#B=new C(J),this.#L=0,this.#O=0,this.#E=XK.create(J),this.#W=0,this.#G=0,typeof G==="function")this.#Y=G;if(typeof H==="function")this.#X=H;if(typeof V==="function")this.#$=V,this.#N=[];else this.#$=void 0,this.#N=void 0;if(this.#R=!!this.#Y,this.#v=!!this.#X,this.#w=!!this.#$,this.noDisposeOnSet=!!F,this.noUpdateTTL=!!z,this.noDeleteOnFetchRejection=!!N,this.allowStaleOnFetchRejection=!!M,this.allowStaleOnFetchAbort=!!P,this.ignoreFetchAbort=!!j,this.maxEntrySize!==0){if(this.#J!==0){if(!CJ(this.#J))throw new TypeError("maxSize must be a positive integer if specified")}if(!CJ(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");this.#m()}if(this.allowStale=!!W,this.noDeleteOnStaleGet=!!R,this.updateAgeOnGet=!!Q,this.updateAgeOnHas=!!K,this.ttlResolution=CJ(Y)||Y===0?Y:1,this.ttlAutopurge=!!$,this.ttl=X||0,this.ttl){if(!CJ(this.ttl))throw new TypeError("ttl must be a positive integer if specified");this.#K()}if(this.#Z===0&&this.ttl===0&&this.#J===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!this.#Z&&!this.#J){if(SL1("LRU_CACHE_UNBOUNDED"))Cl.add("LRU_CACHE_UNBOUNDED"),Tl("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning","LRU_CACHE_UNBOUNDED",m3)}}getRemainingTTL(Z){return this.#H.has(Z)?1/0:0}#K(){let Z=new g3(this.#Z),J=new g3(this.#Z);this.#M=Z,this.#j=J,this.#_=($,Q,K=JK.now())=>{if(J[$]=Q!==0?K:0,Z[$]=Q,Q!==0&&this.ttlAutopurge){let W=setTimeout(()=>{if(this.#P($))this.#S(this.#z[$],"expire")},Q+1);if(W.unref)W.unref()}},this.#A=($)=>{J[$]=Z[$]!==0?JK.now():0},this.#D=($,Q)=>{if(Z[Q]){let K=Z[Q],W=J[Q];if(!K||!W)return;$.ttl=K,$.start=W,$.now=X||Y();let G=$.now-W;$.remainingTTL=K-G}};let X=0,Y=()=>{let $=JK.now();if(this.ttlResolution>0){X=$;let Q=setTimeout(()=>X=0,this.ttlResolution);if(Q.unref)Q.unref()}return $};this.getRemainingTTL=($)=>{let Q=this.#H.get($);if(Q===void 0)return 0;let K=Z[Q],W=J[Q];if(!K||!W)return 1/0;let G=(X||Y())-W;return K-G},this.#P=($)=>{let Q=J[$],K=Z[$];return!!K&&!!Q&&(X||Y())-Q>K}}#A=()=>{};#D=()=>{};#_=()=>{};#P=()=>!1;#m(){let Z=new g3(this.#Z);this.#G=0,this.#I=Z,this.#x=(J)=>{this.#G-=Z[J],Z[J]=0},this.#u=(J,X,Y,$)=>{if(this.#q(X))return 0;if(!CJ(Y))if($){if(typeof $!=="function")throw new TypeError("sizeCalculation must be a function");if(Y=$(X,J),!CJ(Y))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return Y},this.#f=(J,X,Y)=>{if(Z[J]=X,this.#J){let $=this.#J-Z[J];while(this.#G>$)this.#y(!0)}if(this.#G+=Z[J],Y)Y.entrySize=X,Y.totalCalculatedSize=this.#G}}#x=(Z)=>{};#f=(Z,J,X)=>{};#u=(Z,J,X,Y)=>{if(X||Y)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0};*#T({allowStale:Z=this.allowStale}={}){if(this.#W)for(let J=this.#O;;){if(!this.#d(J))break;if(Z||!this.#P(J))yield J;if(J===this.#L)break;else J=this.#B[J]}}*#k({allowStale:Z=this.allowStale}={}){if(this.#W)for(let J=this.#L;;){if(!this.#d(J))break;if(Z||!this.#P(J))yield J;if(J===this.#O)break;else J=this.#U[J]}}#d(Z){return Z!==void 0&&this.#H.get(this.#z[Z])===Z}*entries(){for(let Z of this.#T())if(this.#Q[Z]!==void 0&&this.#z[Z]!==void 0&&!this.#q(this.#Q[Z]))yield[this.#z[Z],this.#Q[Z]]}*rentries(){for(let Z of this.#k())if(this.#Q[Z]!==void 0&&this.#z[Z]!==void 0&&!this.#q(this.#Q[Z]))yield[this.#z[Z],this.#Q[Z]]}*keys(){for(let Z of this.#T()){let J=this.#z[Z];if(J!==void 0&&!this.#q(this.#Q[Z]))yield J}}*rkeys(){for(let Z of this.#k()){let J=this.#z[Z];if(J!==void 0&&!this.#q(this.#Q[Z]))yield J}}*values(){for(let Z of this.#T())if(this.#Q[Z]!==void 0&&!this.#q(this.#Q[Z]))yield this.#Q[Z]}*rvalues(){for(let Z of this.#k())if(this.#Q[Z]!==void 0&&!this.#q(this.#Q[Z]))yield this.#Q[Z]}[Symbol.iterator](){return this.entries()}[Symbol.toStringTag]="LRUCache";find(Z,J={}){for(let X of this.#T()){let Y=this.#Q[X],$=this.#q(Y)?Y.__staleWhileFetching:Y;if($===void 0)continue;if(Z($,this.#z[X],this))return this.get(this.#z[X],J)}}forEach(Z,J=this){for(let X of this.#T()){let Y=this.#Q[X],$=this.#q(Y)?Y.__staleWhileFetching:Y;if($===void 0)continue;Z.call(J,$,this.#z[X],this)}}rforEach(Z,J=this){for(let X of this.#k()){let Y=this.#Q[X],$=this.#q(Y)?Y.__staleWhileFetching:Y;if($===void 0)continue;Z.call(J,$,this.#z[X],this)}}purgeStale(){let Z=!1;for(let J of this.#k({allowStale:!0}))if(this.#P(J))this.#S(this.#z[J],"expire"),Z=!0;return Z}info(Z){let J=this.#H.get(Z);if(J===void 0)return;let X=this.#Q[J],Y=this.#q(X)?X.__staleWhileFetching:X;if(Y===void 0)return;let $={value:Y};if(this.#M&&this.#j){let Q=this.#M[J],K=this.#j[J];if(Q&&K){let W=Q-(JK.now()-K);$.ttl=W,$.start=Date.now()}}if(this.#I)$.size=this.#I[J];return $}dump(){let Z=[];for(let J of this.#T({allowStale:!0})){let X=this.#z[J],Y=this.#Q[J],$=this.#q(Y)?Y.__staleWhileFetching:Y;if($===void 0||X===void 0)continue;let Q={value:$};if(this.#M&&this.#j){Q.ttl=this.#M[J];let K=JK.now()-this.#j[J];Q.start=Math.floor(Date.now()-K)}if(this.#I)Q.size=this.#I[J];Z.unshift([X,Q])}return Z}load(Z){this.clear();for(let[J,X]of Z){if(X.start){let Y=Date.now()-X.start;X.start=JK.now()-Y}this.set(J,X.value,X)}}set(Z,J,X={}){if(J===void 0)return this.delete(Z),this;let{ttl:Y=this.ttl,start:$,noDisposeOnSet:Q=this.noDisposeOnSet,sizeCalculation:K=this.sizeCalculation,status:W}=X,{noUpdateTTL:G=this.noUpdateTTL}=X,H=this.#u(Z,J,X.size||0,K);if(this.maxEntrySize&&H>this.maxEntrySize){if(W)W.set="miss",W.maxEntrySizeExceeded=!0;return this.#S(Z,"set"),this}let V=this.#W===0?void 0:this.#H.get(Z);if(V===void 0){if(V=this.#W===0?this.#O:this.#E.length!==0?this.#E.pop():this.#W===this.#Z?this.#y(!1):this.#W,this.#z[V]=Z,this.#Q[V]=J,this.#H.set(Z,V),this.#U[this.#O]=V,this.#B[V]=this.#O,this.#O=V,this.#W++,this.#f(V,H,W),W)W.set="add";if(G=!1,this.#v)this.#X?.(J,Z,"add")}else{this.#b(V);let F=this.#Q[V];if(J!==F){if(this.#C&&this.#q(F)){F.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:z}=F;if(z!==void 0&&!Q){if(this.#R)this.#Y?.(z,Z,"set");if(this.#w)this.#N?.push([z,Z,"set"])}}else if(!Q){if(this.#R)this.#Y?.(F,Z,"set");if(this.#w)this.#N?.push([F,Z,"set"])}if(this.#x(V),this.#f(V,H,W),this.#Q[V]=J,W){W.set="replace";let z=F&&this.#q(F)?F.__staleWhileFetching:F;if(z!==void 0)W.oldValue=z}}else if(W)W.set="update";if(this.#v)this.onInsert?.(J,Z,J===F?"update":"replace")}if(Y!==0&&!this.#M)this.#K();if(this.#M){if(!G)this.#_(V,Y,$);if(W)this.#D(W,V)}if(!Q&&this.#w&&this.#N){let F=this.#N,z;while(z=F?.shift())this.#$?.(...z)}return this}pop(){try{while(this.#W){let Z=this.#Q[this.#L];if(this.#y(!0),this.#q(Z)){if(Z.__staleWhileFetching)return Z.__staleWhileFetching}else if(Z!==void 0)return Z}}finally{if(this.#w&&this.#N){let Z=this.#N,J;while(J=Z?.shift())this.#$?.(...J)}}}#y(Z){let J=this.#L,X=this.#z[J],Y=this.#Q[J];if(this.#C&&this.#q(Y))Y.__abortController.abort(new Error("evicted"));else if(this.#R||this.#w){if(this.#R)this.#Y?.(Y,X,"evict");if(this.#w)this.#N?.push([Y,X,"evict"])}if(this.#x(J),Z)this.#z[J]=void 0,this.#Q[J]=void 0,this.#E.push(J);if(this.#W===1)this.#L=this.#O=0,this.#E.length=0;else this.#L=this.#U[J];return this.#H.delete(X),this.#W--,J}has(Z,J={}){let{updateAgeOnHas:X=this.updateAgeOnHas,status:Y}=J,$=this.#H.get(Z);if($!==void 0){let Q=this.#Q[$];if(this.#q(Q)&&Q.__staleWhileFetching===void 0)return!1;if(!this.#P($)){if(X)this.#A($);if(Y)Y.has="hit",this.#D(Y,$);return!0}else if(Y)Y.has="stale",this.#D(Y,$)}else if(Y)Y.has="miss";return!1}peek(Z,J={}){let{allowStale:X=this.allowStale}=J,Y=this.#H.get(Z);if(Y===void 0||!X&&this.#P(Y))return;let $=this.#Q[Y];return this.#q($)?$.__staleWhileFetching:$}#h(Z,J,X,Y){let $=J===void 0?void 0:this.#Q[J];if(this.#q($))return $;let Q=new EL,{signal:K}=X;K?.addEventListener("abort",()=>Q.abort(K.reason),{signal:Q.signal});let W={signal:Q.signal,options:X,context:Y},G=(U,L=!1)=>{let{aborted:B}=Q.signal,w=X.ignoreFetchAbort&&U!==void 0;if(X.status)if(B&&!L){if(X.status.fetchAborted=!0,X.status.fetchError=Q.signal.reason,w)X.status.fetchAbortIgnored=!0}else X.status.fetchResolved=!0;if(B&&!w&&!L)return V(Q.signal.reason);let N=z;if(this.#Q[J]===z)if(U===void 0)if(N.__staleWhileFetching)this.#Q[J]=N.__staleWhileFetching;else this.#S(Z,"fetch");else{if(X.status)X.status.fetchUpdated=!0;this.set(Z,U,W.options)}return U},H=(U)=>{if(X.status)X.status.fetchRejected=!0,X.status.fetchError=U;return V(U)},V=(U)=>{let{aborted:L}=Q.signal,B=L&&X.allowStaleOnFetchAbort,w=B||X.allowStaleOnFetchRejection,N=w||X.noDeleteOnFetchRejection,R=z;if(this.#Q[J]===z){if(!N||R.__staleWhileFetching===void 0)this.#S(Z,"fetch");else if(!B)this.#Q[J]=R.__staleWhileFetching}if(w){if(X.status&&R.__staleWhileFetching!==void 0)X.status.returnedStale=!0;return R.__staleWhileFetching}else if(R.__returned===R)throw U},F=(U,L)=>{let B=this.#V?.(Z,$,W);if(B&&B instanceof Promise)B.then((w)=>U(w===void 0?void 0:w),L);Q.signal.addEventListener("abort",()=>{if(!X.ignoreFetchAbort||X.allowStaleOnFetchAbort){if(U(void 0),X.allowStaleOnFetchAbort)U=(w)=>G(w,!0)}})};if(X.status)X.status.fetchDispatched=!0;let z=new Promise(F).then(G,H),q=Object.assign(z,{__abortController:Q,__staleWhileFetching:$,__returned:void 0});if(J===void 0)this.set(Z,q,{...W.options,status:void 0}),J=this.#H.get(Z);else this.#Q[J]=q;return q}#q(Z){if(!this.#C)return!1;let J=Z;return!!J&&J instanceof Promise&&J.hasOwnProperty("__staleWhileFetching")&&J.__abortController instanceof EL}async fetch(Z,J={}){let{allowStale:X=this.allowStale,updateAgeOnGet:Y=this.updateAgeOnGet,noDeleteOnStaleGet:$=this.noDeleteOnStaleGet,ttl:Q=this.ttl,noDisposeOnSet:K=this.noDisposeOnSet,size:W=0,sizeCalculation:G=this.sizeCalculation,noUpdateTTL:H=this.noUpdateTTL,noDeleteOnFetchRejection:V=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:F=this.allowStaleOnFetchRejection,ignoreFetchAbort:z=this.ignoreFetchAbort,allowStaleOnFetchAbort:q=this.allowStaleOnFetchAbort,context:U,forceRefresh:L=!1,status:B,signal:w}=J;if(!this.#C){if(B)B.fetch="get";return this.get(Z,{allowStale:X,updateAgeOnGet:Y,noDeleteOnStaleGet:$,status:B})}let N={allowStale:X,updateAgeOnGet:Y,noDeleteOnStaleGet:$,ttl:Q,noDisposeOnSet:K,size:W,sizeCalculation:G,noUpdateTTL:H,noDeleteOnFetchRejection:V,allowStaleOnFetchRejection:F,allowStaleOnFetchAbort:q,ignoreFetchAbort:z,status:B,signal:w},R=this.#H.get(Z);if(R===void 0){if(B)B.fetch="miss";let M=this.#h(Z,R,N,U);return M.__returned=M}else{let M=this.#Q[R];if(this.#q(M)){let E=X&&M.__staleWhileFetching!==void 0;if(B){if(B.fetch="inflight",E)B.returnedStale=!0}return E?M.__staleWhileFetching:M.__returned=M}let P=this.#P(R);if(!L&&!P){if(B)B.fetch="hit";if(this.#b(R),Y)this.#A(R);if(B)this.#D(B,R);return M}let j=this.#h(Z,R,N,U),T=j.__staleWhileFetching!==void 0&&X;if(B){if(B.fetch=P?"stale":"refresh",T&&P)B.returnedStale=!0}return T?j.__staleWhileFetching:j.__returned=j}}async forceFetch(Z,J={}){let X=await this.fetch(Z,J);if(X===void 0)throw new Error("fetch() returned undefined");return X}memo(Z,J={}){let X=this.#F;if(!X)throw new Error("no memoMethod provided to constructor");let{context:Y,forceRefresh:$,...Q}=J,K=this.get(Z,Q);if(!$&&K!==void 0)return K;let W=X(Z,K,{options:Q,context:Y});return this.set(Z,W,Q),W}get(Z,J={}){let{allowStale:X=this.allowStale,updateAgeOnGet:Y=this.updateAgeOnGet,noDeleteOnStaleGet:$=this.noDeleteOnStaleGet,status:Q}=J,K=this.#H.get(Z);if(K!==void 0){let W=this.#Q[K],G=this.#q(W);if(Q)this.#D(Q,K);if(this.#P(K)){if(Q)Q.get="stale";if(!G){if(!$)this.#S(Z,"expire");if(Q&&X)Q.returnedStale=!0;return X?W:void 0}else{if(Q&&X&&W.__staleWhileFetching!==void 0)Q.returnedStale=!0;return X?W.__staleWhileFetching:void 0}}else{if(Q)Q.get="hit";if(G)return W.__staleWhileFetching;if(this.#b(K),Y)this.#A(K);return W}}else if(Q)Q.get="miss"}#c(Z,J){this.#B[J]=Z,this.#U[Z]=J}#b(Z){if(Z!==this.#O){if(Z===this.#L)this.#L=this.#U[Z];else this.#c(this.#B[Z],this.#U[Z]);this.#c(this.#O,Z),this.#O=Z}}delete(Z){return this.#S(Z,"delete")}#S(Z,J){let X=!1;if(this.#W!==0){let Y=this.#H.get(Z);if(Y!==void 0)if(X=!0,this.#W===1)this.#g(J);else{this.#x(Y);let $=this.#Q[Y];if(this.#q($))$.__abortController.abort(new Error("deleted"));else if(this.#R||this.#w){if(this.#R)this.#Y?.($,Z,J);if(this.#w)this.#N?.push([$,Z,J])}if(this.#H.delete(Z),this.#z[Y]=void 0,this.#Q[Y]=void 0,Y===this.#O)this.#O=this.#B[Y];else if(Y===this.#L)this.#L=this.#U[Y];else{let Q=this.#B[Y];this.#U[Q]=this.#U[Y];let K=this.#U[Y];this.#B[K]=this.#B[Y]}this.#W--,this.#E.push(Y)}}if(this.#w&&this.#N?.length){let Y=this.#N,$;while($=Y?.shift())this.#$?.(...$)}return X}clear(){return this.#g("delete")}#g(Z){for(let J of this.#k({allowStale:!0})){let X=this.#Q[J];if(this.#q(X))X.__abortController.abort(new Error("deleted"));else{let Y=this.#z[J];if(this.#R)this.#Y?.(X,Y,Z);if(this.#w)this.#N?.push([X,Y,Z])}}if(this.#H.clear(),this.#Q.fill(void 0),this.#z.fill(void 0),this.#M&&this.#j)this.#M.fill(0),this.#j.fill(0);if(this.#I)this.#I.fill(0);if(this.#L=0,this.#O=0,this.#E.length=0,this.#G=0,this.#W=0,this.#w&&this.#N){let J=this.#N,X;while(X=J?.shift())this.#$?.(...X)}}}import{posix as cL1,win32 as qP}from"node:path";import{fileURLToPath as lL1}from"node:url";import{lstatSync as pL1,readdir as iL1,readdirSync as nL1,readlinkSync as aL1,realpathSync as sL1}from"fs";import*as oL1 from"node:fs";import{lstat as tL1,readdir as eL1,readlink as ZB1,realpath as JB1}from"node:fs/promises";import{EventEmitter as HP}from"node:events";import Sl from"node:stream";import{StringDecoder as AL1}from"node:string_decoder";var Il=typeof process==="object"&&process?process:{stdout:null,stderr:null},xL1=(Z)=>!!Z&&typeof Z==="object"&&(Z instanceof BY||Z instanceof Sl||hL1(Z)||fL1(Z)),hL1=(Z)=>!!Z&&typeof Z==="object"&&Z instanceof HP&&typeof Z.pipe==="function"&&Z.pipe!==Sl.Writable.prototype.pipe,fL1=(Z)=>!!Z&&typeof Z==="object"&&Z instanceof HP&&typeof Z.write==="function"&&typeof Z.end==="function",UZ=Symbol("EOF"),LZ=Symbol("maybeEmitEnd"),TJ=Symbol("emittedEnd"),IL=Symbol("emittingEnd"),u3=Symbol("emittedError"),kL=Symbol("closed"),kl=Symbol("read"),vL=Symbol("flush"),vl=Symbol("flushChunk"),w4=Symbol("encoding"),YK=Symbol("decoder"),o8=Symbol("flowing"),d3=Symbol("paused"),$K=Symbol("resume"),r8=Symbol("buffer"),p6=Symbol("pipes"),t8=Symbol("bufferLength"),$P=Symbol("bufferPush"),_L=Symbol("bufferShift"),T6=Symbol("objectMode"),w8=Symbol("destroyed"),QP=Symbol("error"),KP=Symbol("emitData"),_l=Symbol("emitEnd"),WP=Symbol("emitEnd2"),K7=Symbol("async"),GP=Symbol("abort"),SL=Symbol("aborted"),c3=Symbol("signal"),LY=Symbol("dataListeners"),p5=Symbol("discarded"),l3=(Z)=>Promise.resolve().then(Z),yL1=(Z)=>Z(),bL1=(Z)=>Z==="end"||Z==="finish"||Z==="prefinish",gL1=(Z)=>Z instanceof ArrayBuffer||!!Z&&typeof Z==="object"&&Z.constructor&&Z.constructor.name==="ArrayBuffer"&&Z.byteLength>=0,mL1=(Z)=>!Buffer.isBuffer(Z)&&ArrayBuffer.isView(Z);class VP{src;dest;opts;ondrain;constructor(Z,J,X){this.src=Z,this.dest=J,this.opts=X,this.ondrain=()=>Z[$K](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(Z){}end(){if(this.unpipe(),this.opts.end)this.dest.end()}}class Al extends VP{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(Z,J,X){super(Z,J,X);this.proxyErrors=(Y)=>J.emit("error",Y),Z.on("error",this.proxyErrors)}}var uL1=(Z)=>!!Z.objectMode,dL1=(Z)=>!Z.objectMode&&!!Z.encoding&&Z.encoding!=="buffer";class BY extends HP{[o8]=!1;[d3]=!1;[p6]=[];[r8]=[];[T6];[w4];[K7];[YK];[UZ]=!1;[TJ]=!1;[IL]=!1;[kL]=!1;[u3]=null;[t8]=0;[w8]=!1;[c3];[SL]=!1;[LY]=0;[p5]=!1;writable=!0;readable=!0;constructor(...Z){let J=Z[0]||{};super();if(J.objectMode&&typeof J.encoding==="string")throw new TypeError("Encoding and objectMode may not be used together");if(uL1(J))this[T6]=!0,this[w4]=null;else if(dL1(J))this[w4]=J.encoding,this[T6]=!1;else this[T6]=!1,this[w4]=null;if(this[K7]=!!J.async,this[YK]=this[w4]?new AL1(this[w4]):null,J&&J.debugExposeBuffer===!0)Object.defineProperty(this,"buffer",{get:()=>this[r8]});if(J&&J.debugExposePipes===!0)Object.defineProperty(this,"pipes",{get:()=>this[p6]});let{signal:X}=J;if(X)if(this[c3]=X,X.aborted)this[GP]();else X.addEventListener("abort",()=>this[GP]())}get bufferLength(){return this[t8]}get encoding(){return this[w4]}set encoding(Z){throw new Error("Encoding must be set at instantiation time")}setEncoding(Z){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[T6]}set objectMode(Z){throw new Error("objectMode must be set at instantiation time")}get["async"](){return this[K7]}set["async"](Z){this[K7]=this[K7]||!!Z}[GP](){this[SL]=!0,this.emit("abort",this[c3]?.reason),this.destroy(this[c3]?.reason)}get aborted(){return this[SL]}set aborted(Z){}write(Z,J,X){if(this[SL])return!1;if(this[UZ])throw new Error("write after end");if(this[w8])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof J==="function")X=J,J="utf8";if(!J)J="utf8";let Y=this[K7]?l3:yL1;if(!this[T6]&&!Buffer.isBuffer(Z)){if(mL1(Z))Z=Buffer.from(Z.buffer,Z.byteOffset,Z.byteLength);else if(gL1(Z))Z=Buffer.from(Z);else if(typeof Z!=="string")throw new Error("Non-contiguous data written to non-objectMode stream")}if(this[T6]){if(this[o8]&&this[t8]!==0)this[vL](!0);if(this[o8])this.emit("data",Z);else this[$P](Z);if(this[t8]!==0)this.emit("readable");if(X)Y(X);return this[o8]}if(!Z.length){if(this[t8]!==0)this.emit("readable");if(X)Y(X);return this[o8]}if(typeof Z==="string"&&!(J===this[w4]&&!this[YK]?.lastNeed))Z=Buffer.from(Z,J);if(Buffer.isBuffer(Z)&&this[w4])Z=this[YK].write(Z);if(this[o8]&&this[t8]!==0)this[vL](!0);if(this[o8])this.emit("data",Z);else this[$P](Z);if(this[t8]!==0)this.emit("readable");if(X)Y(X);return this[o8]}read(Z){if(this[w8])return null;if(this[p5]=!1,this[t8]===0||Z===0||Z&&Z>this[t8])return this[LZ](),null;if(this[T6])Z=null;if(this[r8].length>1&&!this[T6])this[r8]=[this[w4]?this[r8].join(""):Buffer.concat(this[r8],this[t8])];let J=this[kl](Z||null,this[r8][0]);return this[LZ](),J}[kl](Z,J){if(this[T6])this[_L]();else{let X=J;if(Z===X.length||Z===null)this[_L]();else if(typeof X==="string")this[r8][0]=X.slice(Z),J=X.slice(0,Z),this[t8]-=Z;else this[r8][0]=X.subarray(Z),J=X.subarray(0,Z),this[t8]-=Z}if(this.emit("data",J),!this[r8].length&&!this[UZ])this.emit("drain");return J}end(Z,J,X){if(typeof Z==="function")X=Z,Z=void 0;if(typeof J==="function")X=J,J="utf8";if(Z!==void 0)this.write(Z,J);if(X)this.once("end",X);if(this[UZ]=!0,this.writable=!1,this[o8]||!this[d3])this[LZ]();return this}[$K](){if(this[w8])return;if(!this[LY]&&!this[p6].length)this[p5]=!0;if(this[d3]=!1,this[o8]=!0,this.emit("resume"),this[r8].length)this[vL]();else if(this[UZ])this[LZ]();else this.emit("drain")}resume(){return this[$K]()}pause(){this[o8]=!1,this[d3]=!0,this[p5]=!1}get destroyed(){return this[w8]}get flowing(){return this[o8]}get paused(){return this[d3]}[$P](Z){if(this[T6])this[t8]+=1;else this[t8]+=Z.length;this[r8].push(Z)}[_L](){if(this[T6])this[t8]-=1;else this[t8]-=this[r8][0].length;return this[r8].shift()}[vL](Z=!1){do;while(this[vl](this[_L]())&&this[r8].length);if(!Z&&!this[r8].length&&!this[UZ])this.emit("drain")}[vl](Z){return this.emit("data",Z),this[o8]}pipe(Z,J){if(this[w8])return Z;this[p5]=!1;let X=this[TJ];if(J=J||{},Z===Il.stdout||Z===Il.stderr)J.end=!1;else J.end=J.end!==!1;if(J.proxyErrors=!!J.proxyErrors,X){if(J.end)Z.end()}else if(this[p6].push(!J.proxyErrors?new VP(this,Z,J):new Al(this,Z,J)),this[K7])l3(()=>this[$K]());else this[$K]();return Z}unpipe(Z){let J=this[p6].find((X)=>X.dest===Z);if(J){if(this[p6].length===1){if(this[o8]&&this[LY]===0)this[o8]=!1;this[p6]=[]}else this[p6].splice(this[p6].indexOf(J),1);J.unpipe()}}addListener(Z,J){return this.on(Z,J)}on(Z,J){let X=super.on(Z,J);if(Z==="data"){if(this[p5]=!1,this[LY]++,!this[p6].length&&!this[o8])this[$K]()}else if(Z==="readable"&&this[t8]!==0)super.emit("readable");else if(bL1(Z)&&this[TJ])super.emit(Z),this.removeAllListeners(Z);else if(Z==="error"&&this[u3]){let Y=J;if(this[K7])l3(()=>Y.call(this,this[u3]));else Y.call(this,this[u3])}return X}removeListener(Z,J){return this.off(Z,J)}off(Z,J){let X=super.off(Z,J);if(Z==="data"){if(this[LY]=this.listeners("data").length,this[LY]===0&&!this[p5]&&!this[p6].length)this[o8]=!1}return X}removeAllListeners(Z){let J=super.removeAllListeners(Z);if(Z==="data"||Z===void 0){if(this[LY]=0,!this[p5]&&!this[p6].length)this[o8]=!1}return J}get emittedEnd(){return this[TJ]}[LZ](){if(!this[IL]&&!this[TJ]&&!this[w8]&&this[r8].length===0&&this[UZ]){if(this[IL]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[kL])this.emit("close");this[IL]=!1}}emit(Z,...J){let X=J[0];if(Z!=="error"&&Z!=="close"&&Z!==w8&&this[w8])return!1;else if(Z==="data")return!this[T6]&&!X?!1:this[K7]?(l3(()=>this[KP](X)),!0):this[KP](X);else if(Z==="end")return this[_l]();else if(Z==="close"){if(this[kL]=!0,!this[TJ]&&!this[w8])return!1;let $=super.emit("close");return this.removeAllListeners("close"),$}else if(Z==="error"){this[u3]=X,super.emit(QP,X);let $=!this[c3]||this.listeners("error").length?super.emit("error",X):!1;return this[LZ](),$}else if(Z==="resume"){let $=super.emit("resume");return this[LZ](),$}else if(Z==="finish"||Z==="prefinish"){let $=super.emit(Z);return this.removeAllListeners(Z),$}let Y=super.emit(Z,...J);return this[LZ](),Y}[KP](Z){for(let X of this[p6])if(X.dest.write(Z)===!1)this.pause();let J=this[p5]?!1:super.emit("data",Z);return this[LZ](),J}[_l](){if(this[TJ])return!1;return this[TJ]=!0,this.readable=!1,this[K7]?(l3(()=>this[WP]()),!0):this[WP]()}[WP](){if(this[YK]){let J=this[YK].end();if(J){for(let X of this[p6])X.dest.write(J);if(!this[p5])super.emit("data",J)}}for(let J of this[p6])J.end();let Z=super.emit("end");return this.removeAllListeners("end"),Z}async collect(){let Z=Object.assign([],{dataLength:0});if(!this[T6])Z.dataLength=0;let J=this.promise();return this.on("data",(X)=>{if(Z.push(X),!this[T6])Z.dataLength+=X.length}),await J,Z}async concat(){if(this[T6])throw new Error("cannot concat in objectMode");let Z=await this.collect();return this[w4]?Z.join(""):Buffer.concat(Z,Z.dataLength)}async promise(){return new Promise((Z,J)=>{this.on(w8,()=>J(new Error("stream destroyed"))),this.on("error",(X)=>J(X)),this.on("end",()=>Z())})}[Symbol.asyncIterator](){this[p5]=!1;let Z=!1,J=async()=>{return this.pause(),Z=!0,{value:void 0,done:!0}};return{next:()=>{if(Z)return J();let Y=this.read();if(Y!==null)return Promise.resolve({done:!1,value:Y});if(this[UZ])return J();let $,Q,K=(V)=>{this.off("data",W),this.off("end",G),this.off(w8,H),J(),Q(V)},W=(V)=>{this.off("error",K),this.off("end",G),this.off(w8,H),this.pause(),$({value:V,done:!!this[UZ]})},G=()=>{this.off("error",K),this.off("data",W),this.off(w8,H),J(),$({done:!0,value:void 0})},H=()=>K(new Error("stream destroyed"));return new Promise((V,F)=>{Q=F,$=V,this.once(w8,H),this.once("error",K),this.once("end",G),this.once("data",W)})},throw:J,return:J,[Symbol.asyncIterator](){return this}}}[Symbol.iterator](){this[p5]=!1;let Z=!1,J=()=>{return this.pause(),this.off(QP,J),this.off(w8,J),this.off("end",J),Z=!0,{done:!0,value:void 0}},X=()=>{if(Z)return J();let Y=this.read();return Y===null?J():{done:!1,value:Y}};return this.once("end",J),this.once(QP,J),this.once(w8,J),{next:X,throw:J,return:J,[Symbol.iterator](){return this}}}destroy(Z){if(this[w8]){if(Z)this.emit("error",Z);else this.emit(w8);return this}this[w8]=!0,this[p5]=!0,this[r8].length=0,this[t8]=0;let J=this;if(typeof J.close==="function"&&!this[kL])J.close();if(Z)this.emit("error",Z);else this.emit(w8);return this}static get isStream(){return xL1}}var rL1=sL1.native,i3={lstatSync:pL1,readdir:iL1,readdirSync:nL1,readlinkSync:aL1,realpathSync:rL1,promises:{lstat:tL1,readdir:eL1,readlink:ZB1,realpath:JB1}},bl=(Z)=>!Z||Z===i3||Z===oL1?i3:{...i3,...Z,promises:{...i3.promises,...Z.promises||{}}},gl=/^\\\\\?\\([a-z]:)\\?$/i,XB1=(Z)=>Z.replace(/\//g,"\\").replace(gl,"$1\\"),YB1=/[\\\/]/,E9=0,ml=1,ul=2,W7=4,dl=6,cl=8,wY=10,ll=12,T9=15,p3=~T9,zP=16,xl=32,n3=64,O4=128,AL=256,hL=512,hl=n3|O4|hL,$B1=1023,FP=(Z)=>Z.isFile()?cl:Z.isDirectory()?W7:Z.isSymbolicLink()?wY:Z.isCharacterDevice()?ul:Z.isBlockDevice()?dl:Z.isSocket()?ll:Z.isFIFO()?ml:E9,fl=new Map,a3=(Z)=>{let J=fl.get(Z);if(J)return J;let X=Z.normalize("NFKD");return fl.set(Z,X),X},yl=new Map,xL=(Z)=>{let J=yl.get(Z);if(J)return J;let X=a3(Z.toLowerCase());return yl.set(Z,X),X};class UP extends m3{constructor(){super({max:256})}}class pl extends m3{constructor(Z=16384){super({maxSize:Z,sizeCalculation:(J)=>J.length+1})}}var il=Symbol("PathScurry setAsCwd");class i6{name;root;roots;parent;nocase;isCWD=!1;#Z;#J;get dev(){return this.#J}#Y;get mode(){return this.#Y}#X;get nlink(){return this.#X}#$;get uid(){return this.#$}#V;get gid(){return this.#V}#F;get rdev(){return this.#F}#W;get blksize(){return this.#W}#G;get ino(){return this.#G}#H;get size(){return this.#H}#z;get blocks(){return this.#z}#Q;get atimeMs(){return this.#Q}#U;get mtimeMs(){return this.#U}#B;get ctimeMs(){return this.#B}#L;get birthtimeMs(){return this.#L}#O;get atime(){return this.#O}#E;get mtime(){return this.#E}#N;get ctime(){return this.#N}#I;get birthtime(){return this.#I}#j;#M;#R;#C;#w;#v;#K;#A;#D;#_;get parentPath(){return(this.parent||this).fullpath()}get path(){return this.parentPath}constructor(Z,J=E9,X,Y,$,Q,K){if(this.name=Z,this.#j=$?xL(Z):a3(Z),this.#K=J&$B1,this.nocase=$,this.roots=Y,this.root=X||this,this.#A=Q,this.#R=K.fullpath,this.#w=K.relative,this.#v=K.relativePosix,this.parent=K.parent,this.parent)this.#Z=this.parent.#Z;else this.#Z=bl(K.fs)}depth(){if(this.#M!==void 0)return this.#M;if(!this.parent)return this.#M=0;return this.#M=this.parent.depth()+1}childrenCache(){return this.#A}resolve(Z){if(!Z)return this;let J=this.getRootString(Z),Y=Z.substring(J.length).split(this.splitSep);return J?this.getRoot(J).#P(Y):this.#P(Y)}#P(Z){let J=this;for(let X of Z)J=J.child(X);return J}children(){let Z=this.#A.get(this);if(Z)return Z;let J=Object.assign([],{provisional:0});return this.#A.set(this,J),this.#K&=~zP,J}child(Z,J){if(Z===""||Z===".")return this;if(Z==="..")return this.parent||this;let X=this.children(),Y=this.nocase?xL(Z):a3(Z);for(let W of X)if(W.#j===Y)return W;let $=this.parent?this.sep:"",Q=this.#R?this.#R+$+Z:void 0,K=this.newChild(Z,E9,{...J,parent:this,fullpath:Q});if(!this.canReaddir())K.#K|=O4;return X.push(K),K}relative(){if(this.isCWD)return"";if(this.#w!==void 0)return this.#w;let Z=this.name,J=this.parent;if(!J)return this.#w=this.name;let X=J.relative();return X+(!X||!J.parent?"":this.sep)+Z}relativePosix(){if(this.sep==="/")return this.relative();if(this.isCWD)return"";if(this.#v!==void 0)return this.#v;let Z=this.name,J=this.parent;if(!J)return this.#v=this.fullpathPosix();let X=J.relativePosix();return X+(!X||!J.parent?"":"/")+Z}fullpath(){if(this.#R!==void 0)return this.#R;let Z=this.name,J=this.parent;if(!J)return this.#R=this.name;let Y=J.fullpath()+(!J.parent?"":this.sep)+Z;return this.#R=Y}fullpathPosix(){if(this.#C!==void 0)return this.#C;if(this.sep==="/")return this.#C=this.fullpath();if(!this.parent){let Y=this.fullpath().replace(/\\/g,"/");if(/^[a-z]:\//i.test(Y))return this.#C=`//?/${Y}`;else return this.#C=Y}let Z=this.parent,J=Z.fullpathPosix(),X=J+(!J||!Z.parent?"":"/")+this.name;return this.#C=X}isUnknown(){return(this.#K&T9)===E9}isType(Z){return this[`is${Z}`]()}getType(){return this.isUnknown()?"Unknown":this.isDirectory()?"Directory":this.isFile()?"File":this.isSymbolicLink()?"SymbolicLink":this.isFIFO()?"FIFO":this.isCharacterDevice()?"CharacterDevice":this.isBlockDevice()?"BlockDevice":this.isSocket()?"Socket":"Unknown"}isFile(){return(this.#K&T9)===cl}isDirectory(){return(this.#K&T9)===W7}isCharacterDevice(){return(this.#K&T9)===ul}isBlockDevice(){return(this.#K&T9)===dl}isFIFO(){return(this.#K&T9)===ml}isSocket(){return(this.#K&T9)===ll}isSymbolicLink(){return(this.#K&wY)===wY}lstatCached(){return this.#K&xl?this:void 0}readlinkCached(){return this.#D}realpathCached(){return this.#_}readdirCached(){let Z=this.children();return Z.slice(0,Z.provisional)}canReadlink(){if(this.#D)return!0;if(!this.parent)return!1;let Z=this.#K&T9;return!(Z!==E9&&Z!==wY||this.#K&AL||this.#K&O4)}calledReaddir(){return!!(this.#K&zP)}isENOENT(){return!!(this.#K&O4)}isNamed(Z){return!this.nocase?this.#j===a3(Z):this.#j===xL(Z)}async readlink(){let Z=this.#D;if(Z)return Z;if(!this.canReadlink())return;if(!this.parent)return;try{let J=await this.#Z.promises.readlink(this.fullpath()),X=(await this.parent.realpath())?.resolve(J);if(X)return this.#D=X}catch(J){this.#y(J.code);return}}readlinkSync(){let Z=this.#D;if(Z)return Z;if(!this.canReadlink())return;if(!this.parent)return;try{let J=this.#Z.readlinkSync(this.fullpath()),X=this.parent.realpathSync()?.resolve(J);if(X)return this.#D=X}catch(J){this.#y(J.code);return}}#m(Z){this.#K|=zP;for(let J=Z.provisional;J<Z.length;J++){let X=Z[J];if(X)X.#x()}}#x(){if(this.#K&O4)return;this.#K=(this.#K|O4)&p3,this.#f()}#f(){let Z=this.children();Z.provisional=0;for(let J of Z)J.#x()}#u(){this.#K|=hL,this.#T()}#T(){if(this.#K&n3)return;let Z=this.#K;if((Z&T9)===W7)Z&=p3;this.#K=Z|n3,this.#f()}#k(Z=""){if(Z==="ENOTDIR"||Z==="EPERM")this.#T();else if(Z==="ENOENT")this.#x();else this.children().provisional=0}#d(Z=""){if(Z==="ENOTDIR")this.parent.#T();else if(Z==="ENOENT")this.#x()}#y(Z=""){let J=this.#K;if(J|=AL,Z==="ENOENT")J|=O4;if(Z==="EINVAL"||Z==="UNKNOWN")J&=p3;if(this.#K=J,Z==="ENOTDIR"&&this.parent)this.parent.#T()}#h(Z,J){return this.#c(Z,J)||this.#q(Z,J)}#q(Z,J){let X=FP(Z),Y=this.newChild(Z.name,X,{parent:this}),$=Y.#K&T9;if($!==W7&&$!==wY&&$!==E9)Y.#K|=n3;return J.unshift(Y),J.provisional++,Y}#c(Z,J){for(let X=J.provisional;X<J.length;X++){let Y=J[X];if((this.nocase?xL(Z.name):a3(Z.name))!==Y.#j)continue;return this.#b(Z,Y,X,J)}}#b(Z,J,X,Y){let $=J.name;if(J.#K=J.#K&p3|FP(Z),$!==Z.name)J.name=Z.name;if(X!==Y.provisional){if(X===Y.length-1)Y.pop();else Y.splice(X,1);Y.unshift(J)}return Y.provisional++,J}async lstat(){if((this.#K&O4)===0)try{return this.#S(await this.#Z.promises.lstat(this.fullpath())),this}catch(Z){this.#d(Z.code)}}lstatSync(){if((this.#K&O4)===0)try{return this.#S(this.#Z.lstatSync(this.fullpath())),this}catch(Z){this.#d(Z.code)}}#S(Z){let{atime:J,atimeMs:X,birthtime:Y,birthtimeMs:$,blksize:Q,blocks:K,ctime:W,ctimeMs:G,dev:H,gid:V,ino:F,mode:z,mtime:q,mtimeMs:U,nlink:L,rdev:B,size:w,uid:N}=Z;this.#O=J,this.#Q=X,this.#I=Y,this.#L=$,this.#W=Q,this.#z=K,this.#N=W,this.#B=G,this.#J=H,this.#V=V,this.#G=F,this.#Y=z,this.#E=q,this.#U=U,this.#X=L,this.#F=B,this.#H=w,this.#$=N;let R=FP(Z);if(this.#K=this.#K&p3|R|xl,R!==E9&&R!==W7&&R!==wY)this.#K|=n3}#g=[];#p=!1;#i(Z){this.#p=!1;let J=this.#g.slice();this.#g.length=0,J.forEach((X)=>X(null,Z))}readdirCB(Z,J=!1){if(!this.canReaddir()){if(J)Z(null,[]);else queueMicrotask(()=>Z(null,[]));return}let X=this.children();if(this.calledReaddir()){let $=X.slice(0,X.provisional);if(J)Z(null,$);else queueMicrotask(()=>Z(null,$));return}if(this.#g.push(Z),this.#p)return;this.#p=!0;let Y=this.fullpath();this.#Z.readdir(Y,{withFileTypes:!0},($,Q)=>{if($)this.#k($.code),X.provisional=0;else{for(let K of Q)this.#h(K,X);this.#m(X)}this.#i(X.slice(0,X.provisional));return})}#l;async readdir(){if(!this.canReaddir())return[];let Z=this.children();if(this.calledReaddir())return Z.slice(0,Z.provisional);let J=this.fullpath();if(this.#l)await this.#l;else{let X=()=>{};this.#l=new Promise((Y)=>X=Y);try{for(let Y of await this.#Z.promises.readdir(J,{withFileTypes:!0}))this.#h(Y,Z);this.#m(Z)}catch(Y){this.#k(Y.code),Z.provisional=0}this.#l=void 0,X()}return Z.slice(0,Z.provisional)}readdirSync(){if(!this.canReaddir())return[];let Z=this.children();if(this.calledReaddir())return Z.slice(0,Z.provisional);let J=this.fullpath();try{for(let X of this.#Z.readdirSync(J,{withFileTypes:!0}))this.#h(X,Z);this.#m(Z)}catch(X){this.#k(X.code),Z.provisional=0}return Z.slice(0,Z.provisional)}canReaddir(){if(this.#K&hl)return!1;let Z=T9&this.#K;if(!(Z===E9||Z===W7||Z===wY))return!1;return!0}shouldWalk(Z,J){return(this.#K&W7)===W7&&!(this.#K&hl)&&!Z.has(this)&&(!J||J(this))}async realpath(){if(this.#_)return this.#_;if((hL|AL|O4)&this.#K)return;try{let Z=await this.#Z.promises.realpath(this.fullpath());return this.#_=this.resolve(Z)}catch(Z){this.#u()}}realpathSync(){if(this.#_)return this.#_;if((hL|AL|O4)&this.#K)return;try{let Z=this.#Z.realpathSync(this.fullpath());return this.#_=this.resolve(Z)}catch(Z){this.#u()}}[il](Z){if(Z===this)return;Z.isCWD=!1,this.isCWD=!0;let J=new Set([]),X=[],Y=this;while(Y&&Y.parent)J.add(Y),Y.#w=X.join(this.sep),Y.#v=X.join("/"),Y=Y.parent,X.push("..");Y=Z;while(Y&&Y.parent&&!J.has(Y))Y.#w=void 0,Y.#v=void 0,Y=Y.parent}}class fL extends i6{sep="\\";splitSep=YB1;constructor(Z,J=E9,X,Y,$,Q,K){super(Z,J,X,Y,$,Q,K)}newChild(Z,J=E9,X={}){return new fL(Z,J,this.root,this.roots,this.nocase,this.childrenCache(),X)}getRootString(Z){return qP.parse(Z).root}getRoot(Z){if(Z=XB1(Z.toUpperCase()),Z===this.root.name)return this.root;for(let[J,X]of Object.entries(this.roots))if(this.sameRoot(Z,J))return this.roots[Z]=X;return this.roots[Z]=new s3(Z,this).root}sameRoot(Z,J=this.root.name){return Z=Z.toUpperCase().replace(/\//g,"\\").replace(gl,"$1\\"),Z===J}}class yL extends i6{splitSep="/";sep="/";constructor(Z,J=E9,X,Y,$,Q,K){super(Z,J,X,Y,$,Q,K)}getRootString(Z){return Z.startsWith("/")?"/":""}getRoot(Z){return this.root}newChild(Z,J=E9,X={}){return new yL(Z,J,this.root,this.roots,this.nocase,this.childrenCache(),X)}}class LP{root;rootPath;roots;cwd;#Z;#J;#Y;nocase;#X;constructor(Z=process.cwd(),J,X,{nocase:Y,childrenCacheSize:$=16384,fs:Q=i3}={}){if(this.#X=bl(Q),Z instanceof URL||Z.startsWith("file://"))Z=lL1(Z);let K=J.resolve(Z);this.roots=Object.create(null),this.rootPath=this.parseRootPath(K),this.#Z=new UP,this.#J=new UP,this.#Y=new pl($);let W=K.substring(this.rootPath.length).split(X);if(W.length===1&&!W[0])W.pop();if(Y===void 0)throw new TypeError("must provide nocase setting to PathScurryBase ctor");this.nocase=Y,this.root=this.newRoot(this.#X),this.roots[this.rootPath]=this.root;let G=this.root,H=W.length-1,V=J.sep,F=this.rootPath,z=!1;for(let q of W){let U=H--;G=G.child(q,{relative:new Array(U).fill("..").join(V),relativePosix:new Array(U).fill("..").join("/"),fullpath:F+=(z?"":V)+q}),z=!0}this.cwd=G}depth(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.depth()}childrenCache(){return this.#Y}resolve(...Z){let J="";for(let $=Z.length-1;$>=0;$--){let Q=Z[$];if(!Q||Q===".")continue;if(J=J?`${Q}/${J}`:Q,this.isAbsolute(Q))break}let X=this.#Z.get(J);if(X!==void 0)return X;let Y=this.cwd.resolve(J).fullpath();return this.#Z.set(J,Y),Y}resolvePosix(...Z){let J="";for(let $=Z.length-1;$>=0;$--){let Q=Z[$];if(!Q||Q===".")continue;if(J=J?`${Q}/${J}`:Q,this.isAbsolute(Q))break}let X=this.#J.get(J);if(X!==void 0)return X;let Y=this.cwd.resolve(J).fullpathPosix();return this.#J.set(J,Y),Y}relative(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.relative()}relativePosix(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.relativePosix()}basename(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.name}dirname(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return(Z.parent||Z).fullpath()}async readdir(Z=this.cwd,J={withFileTypes:!0}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z,Z=this.cwd;let{withFileTypes:X}=J;if(!Z.canReaddir())return[];else{let Y=await Z.readdir();return X?Y:Y.map(($)=>$.name)}}readdirSync(Z=this.cwd,J={withFileTypes:!0}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z,Z=this.cwd;let{withFileTypes:X=!0}=J;if(!Z.canReaddir())return[];else if(X)return Z.readdirSync();else return Z.readdirSync().map((Y)=>Y.name)}async lstat(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.lstat()}lstatSync(Z=this.cwd){if(typeof Z==="string")Z=this.cwd.resolve(Z);return Z.lstatSync()}async readlink(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z.withFileTypes,Z=this.cwd;let X=await Z.readlink();return J?X:X?.fullpath()}readlinkSync(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z.withFileTypes,Z=this.cwd;let X=Z.readlinkSync();return J?X:X?.fullpath()}async realpath(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z.withFileTypes,Z=this.cwd;let X=await Z.realpath();return J?X:X?.fullpath()}realpathSync(Z=this.cwd,{withFileTypes:J}={withFileTypes:!1}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z.withFileTypes,Z=this.cwd;let X=Z.realpathSync();return J?X:X?.fullpath()}async walk(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=[];if(!$||$(Z))K.push(X?Z:Z.fullpath());let W=new Set,G=(V,F)=>{W.add(V),V.readdirCB((z,q)=>{if(z)return F(z);let U=q.length;if(!U)return F();let L=()=>{if(--U===0)F()};for(let B of q){if(!$||$(B))K.push(X?B:B.fullpath());if(Y&&B.isSymbolicLink())B.realpath().then((w)=>w?.isUnknown()?w.lstat():w).then((w)=>w?.shouldWalk(W,Q)?G(w,L):L());else if(B.shouldWalk(W,Q))G(B,L);else L()}},!0)},H=Z;return new Promise((V,F)=>{G(H,(z)=>{if(z)return F(z);V(K)})})}walkSync(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=[];if(!$||$(Z))K.push(X?Z:Z.fullpath());let W=new Set([Z]);for(let G of W){let H=G.readdirSync();for(let V of H){if(!$||$(V))K.push(X?V:V.fullpath());let F=V;if(V.isSymbolicLink()){if(!(Y&&(F=V.realpathSync())))continue;if(F.isUnknown())F.lstatSync()}if(F.shouldWalk(W,Q))W.add(F)}}return K}[Symbol.asyncIterator](){return this.iterate()}iterate(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z,Z=this.cwd;return this.stream(Z,J)[Symbol.asyncIterator]()}[Symbol.iterator](){return this.iterateSync()}*iterateSync(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J;if(!$||$(Z))yield X?Z:Z.fullpath();let K=new Set([Z]);for(let W of K){let G=W.readdirSync();for(let H of G){if(!$||$(H))yield X?H:H.fullpath();let V=H;if(H.isSymbolicLink()){if(!(Y&&(V=H.realpathSync())))continue;if(V.isUnknown())V.lstatSync()}if(V.shouldWalk(K,Q))K.add(V)}}}stream(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=new BY({objectMode:!0});if(!$||$(Z))K.write(X?Z:Z.fullpath());let W=new Set,G=[Z],H=0,V=()=>{let F=!1;while(!F){let z=G.shift();if(!z){if(H===0)K.end();return}H++,W.add(z);let q=(L,B,w=!1)=>{if(L)return K.emit("error",L);if(Y&&!w){let N=[];for(let R of B)if(R.isSymbolicLink())N.push(R.realpath().then((M)=>M?.isUnknown()?M.lstat():M));if(N.length){Promise.all(N).then(()=>q(null,B,!0));return}}for(let N of B)if(N&&(!$||$(N))){if(!K.write(X?N:N.fullpath()))F=!0}H--;for(let N of B){let R=N.realpathCached()||N;if(R.shouldWalk(W,Q))G.push(R)}if(F&&!K.flowing)K.once("drain",V);else if(!U)V()},U=!0;z.readdirCB(q,!0),U=!1}};return V(),K}streamSync(Z=this.cwd,J={}){if(typeof Z==="string")Z=this.cwd.resolve(Z);else if(!(Z instanceof i6))J=Z,Z=this.cwd;let{withFileTypes:X=!0,follow:Y=!1,filter:$,walkFilter:Q}=J,K=new BY({objectMode:!0}),W=new Set;if(!$||$(Z))K.write(X?Z:Z.fullpath());let G=[Z],H=0,V=()=>{let F=!1;while(!F){let z=G.shift();if(!z){if(H===0)K.end();return}H++,W.add(z);let q=z.readdirSync();for(let U of q)if(!$||$(U)){if(!K.write(X?U:U.fullpath()))F=!0}H--;for(let U of q){let L=U;if(U.isSymbolicLink()){if(!(Y&&(L=U.realpathSync())))continue;if(L.isUnknown())L.lstatSync()}if(L.shouldWalk(W,Q))G.push(L)}}if(F&&!K.flowing)K.once("drain",V)};return V(),K}chdir(Z=this.cwd){let J=this.cwd;this.cwd=typeof Z==="string"?this.cwd.resolve(Z):Z,this.cwd[il](J)}}class s3 extends LP{sep="\\";constructor(Z=process.cwd(),J={}){let{nocase:X=!0}=J;super(Z,qP,"\\",{...J,nocase:X});this.nocase=X;for(let Y=this.cwd;Y;Y=Y.parent)Y.nocase=this.nocase}parseRootPath(Z){return qP.parse(Z).root.toUpperCase()}newRoot(Z){return new fL(this.rootPath,W7,void 0,this.roots,this.nocase,this.childrenCache(),{fs:Z})}isAbsolute(Z){return Z.startsWith("/")||Z.startsWith("\\")||/^[a-z]:(\/|\\)/i.test(Z)}}class o3 extends LP{sep="/";constructor(Z=process.cwd(),J={}){let{nocase:X=!1}=J;super(Z,cL1,"/",{...J,nocase:X});this.nocase=X}parseRootPath(Z){return"/"}newRoot(Z){return new yL(this.rootPath,W7,void 0,this.roots,this.nocase,this.childrenCache(),{fs:Z})}isAbsolute(Z){return Z.startsWith("/")}}class bL extends o3{constructor(Z=process.cwd(),J={}){let{nocase:X=!0}=J;super(Z,{...J,nocase:X})}}var aP6=process.platform==="win32"?fL:yL,nl=process.platform==="win32"?s3:process.platform==="darwin"?bL:o3;var QB1=(Z)=>Z.length>=1,KB1=(Z)=>Z.length>=1;class QK{#Z;#J;#Y;length;#X;#$;#V;#F;#W;#G;#H=!0;constructor(Z,J,X,Y){if(!QB1(Z))throw new TypeError("empty pattern list");if(!KB1(J))throw new TypeError("empty glob list");if(J.length!==Z.length)throw new TypeError("mismatched pattern list and glob list lengths");if(this.length=Z.length,X<0||X>=this.length)throw new TypeError("index out of range");if(this.#Z=Z,this.#J=J,this.#Y=X,this.#X=Y,this.#Y===0){if(this.isUNC()){let[$,Q,K,W,...G]=this.#Z,[H,V,F,z,...q]=this.#J;if(G[0]==="")G.shift(),q.shift();let U=[$,Q,K,W,""].join("/"),L=[H,V,F,z,""].join("/");this.#Z=[U,...G],this.#J=[L,...q],this.length=this.#Z.length}else if(this.isDrive()||this.isAbsolute()){let[$,...Q]=this.#Z,[K,...W]=this.#J;if(Q[0]==="")Q.shift(),W.shift();let G=$+"/",H=K+"/";this.#Z=[G,...Q],this.#J=[H,...W],this.length=this.#Z.length}}}pattern(){return this.#Z[this.#Y]}isString(){return typeof this.#Z[this.#Y]==="string"}isGlobstar(){return this.#Z[this.#Y]===L6}isRegExp(){return this.#Z[this.#Y]instanceof RegExp}globString(){return this.#V=this.#V||(this.#Y===0?this.isAbsolute()?this.#J[0]+this.#J.slice(1).join("/"):this.#J.join("/"):this.#J.slice(this.#Y).join("/"))}hasMore(){return this.length>this.#Y+1}rest(){if(this.#$!==void 0)return this.#$;if(!this.hasMore())return this.#$=null;return this.#$=new QK(this.#Z,this.#J,this.#Y+1,this.#X),this.#$.#G=this.#G,this.#$.#W=this.#W,this.#$.#F=this.#F,this.#$}isUNC(){let Z=this.#Z;return this.#W!==void 0?this.#W:this.#W=this.#X==="win32"&&this.#Y===0&&Z[0]===""&&Z[1]===""&&typeof Z[2]==="string"&&!!Z[2]&&typeof Z[3]==="string"&&!!Z[3]}isDrive(){let Z=this.#Z;return this.#F!==void 0?this.#F:this.#F=this.#X==="win32"&&this.#Y===0&&this.length>1&&typeof Z[0]==="string"&&/^[a-z]:$/i.test(Z[0])}isAbsolute(){let Z=this.#Z;return this.#G!==void 0?this.#G:this.#G=Z[0]===""&&Z.length>1||this.isDrive()||this.isUNC()}root(){let Z=this.#Z[0];return typeof Z==="string"&&this.isAbsolute()&&this.#Y===0?Z:""}checkFollowGlobstar(){return!(this.#Y===0||!this.isGlobstar()||!this.#H)}markFollowGlobstar(){if(this.#Y===0||!this.isGlobstar()||!this.#H)return!1;return this.#H=!1,!0}}var WB1=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class r3{relative;relativeChildren;absolute;absoluteChildren;platform;mmopts;constructor(Z,{nobrace:J,nocase:X,noext:Y,noglobstar:$,platform:Q=WB1}){this.relative=[],this.absolute=[],this.relativeChildren=[],this.absoluteChildren=[],this.platform=Q,this.mmopts={dot:!0,nobrace:J,nocase:X,noext:Y,noglobstar:$,optimizationLevel:2,platform:Q,nocomment:!0,nonegate:!0};for(let K of Z)this.add(K)}add(Z){let J=new C9(Z,this.mmopts);for(let X=0;X<J.set.length;X++){let Y=J.set[X],$=J.globParts[X];if(!Y||!$)throw new Error("invalid pattern object");while(Y[0]==="."&&$[0]===".")Y.shift(),$.shift();let Q=new QK(Y,$,0,this.platform),K=new C9(Q.globString(),this.mmopts),W=$[$.length-1]==="**",G=Q.isAbsolute();if(G)this.absolute.push(K);else this.relative.push(K);if(W)if(G)this.absoluteChildren.push(K);else this.relativeChildren.push(K)}}ignored(Z){let J=Z.fullpath(),X=`${J}/`,Y=Z.relative()||".",$=`${Y}/`;for(let Q of this.relative)if(Q.match(Y)||Q.match($))return!0;for(let Q of this.absolute)if(Q.match(J)||Q.match(X))return!0;return!1}childrenIgnored(Z){let J=Z.fullpath()+"/",X=(Z.relative()||".")+"/";for(let Y of this.relativeChildren)if(Y.match(X))return!0;for(let Y of this.absoluteChildren)if(Y.match(J))return!0;return!1}}class BP{store;constructor(Z=new Map){this.store=Z}copy(){return new BP(new Map(this.store))}hasWalked(Z,J){return this.store.get(Z.fullpath())?.has(J.globString())}storeWalked(Z,J){let X=Z.fullpath(),Y=this.store.get(X);if(Y)Y.add(J.globString());else this.store.set(X,new Set([J.globString()]))}}class al{store=new Map;add(Z,J,X){let Y=(J?2:0)|(X?1:0),$=this.store.get(Z);this.store.set(Z,$===void 0?Y:Y&$)}entries(){return[...this.store.entries()].map(([Z,J])=>[Z,!!(J&2),!!(J&1)])}}class sl{store=new Map;add(Z,J){if(!Z.canReaddir())return;let X=this.store.get(Z);if(X){if(!X.find((Y)=>Y.globString()===J.globString()))X.push(J)}else this.store.set(Z,[J])}get(Z){let J=this.store.get(Z);if(!J)throw new Error("attempting to walk unknown path");return J}entries(){return this.keys().map((Z)=>[Z,this.store.get(Z)])}keys(){return[...this.store.keys()].filter((Z)=>Z.canReaddir())}}class t3{hasWalkedCache;matches=new al;subwalks=new sl;patterns;follow;dot;opts;constructor(Z,J){this.opts=Z,this.follow=!!Z.follow,this.dot=!!Z.dot,this.hasWalkedCache=J?J.copy():new BP}processPatterns(Z,J){this.patterns=J;let X=J.map((Y)=>[Z,Y]);for(let[Y,$]of X){this.hasWalkedCache.storeWalked(Y,$);let Q=$.root(),K=$.isAbsolute()&&this.opts.absolute!==!1;if(Q){Y=Y.resolve(Q==="/"&&this.opts.root!==void 0?this.opts.root:Q);let V=$.rest();if(!V){this.matches.add(Y,!0,!1);continue}else $=V}if(Y.isENOENT())continue;let W,G,H=!1;while(typeof(W=$.pattern())==="string"&&(G=$.rest()))Y=Y.resolve(W),$=G,H=!0;if(W=$.pattern(),G=$.rest(),H){if(this.hasWalkedCache.hasWalked(Y,$))continue;this.hasWalkedCache.storeWalked(Y,$)}if(typeof W==="string"){let V=W===".."||W===""||W===".";this.matches.add(Y.resolve(W),K,V);continue}else if(W===L6){if(!Y.isSymbolicLink()||this.follow||$.checkFollowGlobstar())this.subwalks.add(Y,$);let V=G?.pattern(),F=G?.rest();if(!G||(V===""||V===".")&&!F)this.matches.add(Y,K,V===""||V===".");else if(V===".."){let z=Y.parent||Y;if(!F)this.matches.add(z,K,!0);else if(!this.hasWalkedCache.hasWalked(z,F))this.subwalks.add(z,F)}}else if(W instanceof RegExp)this.subwalks.add(Y,$)}return this}subwalkTargets(){return this.subwalks.keys()}child(){return new t3(this.opts,this.hasWalkedCache)}filterEntries(Z,J){let X=this.subwalks.get(Z),Y=this.child();for(let $ of J)for(let Q of X){let K=Q.isAbsolute(),W=Q.pattern(),G=Q.rest();if(W===L6)Y.testGlobstar($,Q,G,K);else if(W instanceof RegExp)Y.testRegExp($,W,G,K);else Y.testString($,W,G,K)}return Y}testGlobstar(Z,J,X,Y){if(this.dot||!Z.name.startsWith(".")){if(!J.hasMore())this.matches.add(Z,Y,!1);if(Z.canReaddir()){if(this.follow||!Z.isSymbolicLink())this.subwalks.add(Z,J);else if(Z.isSymbolicLink()){if(X&&J.checkFollowGlobstar())this.subwalks.add(Z,X);else if(J.markFollowGlobstar())this.subwalks.add(Z,J)}}}if(X){let $=X.pattern();if(typeof $==="string"&&$!==".."&&$!==""&&$!==".")this.testString(Z,$,X.rest(),Y);else if($===".."){let Q=Z.parent||Z;this.subwalks.add(Q,X)}else if($ instanceof RegExp)this.testRegExp(Z,$,X.rest(),Y)}}testRegExp(Z,J,X,Y){if(!J.test(Z.name))return;if(!X)this.matches.add(Z,Y,!1);else this.subwalks.add(Z,X)}testString(Z,J,X,Y){if(!Z.isNamed(J))return;if(!X)this.matches.add(Z,Y,!1);else this.subwalks.add(Z,X)}}var GB1=(Z,J)=>typeof Z==="string"?new r3([Z],J):Array.isArray(Z)?new r3(Z,J):Z;class wP{path;patterns;opts;seen=new Set;paused=!1;aborted=!1;#Z=[];#J;#Y;signal;maxDepth;includeChildMatches;constructor(Z,J,X){if(this.patterns=Z,this.path=J,this.opts=X,this.#Y=!X.posix&&X.platform==="win32"?"\\":"/",this.includeChildMatches=X.includeChildMatches!==!1,X.ignore||!this.includeChildMatches){if(this.#J=GB1(X.ignore??[],X),!this.includeChildMatches&&typeof this.#J.add!=="function")throw new Error("cannot ignore child matches, ignore lacks add() method.")}if(this.maxDepth=X.maxDepth||1/0,X.signal)this.signal=X.signal,this.signal.addEventListener("abort",()=>{this.#Z.length=0})}#X(Z){return this.seen.has(Z)||!!this.#J?.ignored?.(Z)}#$(Z){return!!this.#J?.childrenIgnored?.(Z)}pause(){this.paused=!0}resume(){if(this.signal?.aborted)return;this.paused=!1;let Z=void 0;while(!this.paused&&(Z=this.#Z.shift()))Z()}onResume(Z){if(this.signal?.aborted)return;if(!this.paused)Z();else this.#Z.push(Z)}async matchCheck(Z,J){if(J&&this.opts.nodir)return;let X;if(this.opts.realpath){if(X=Z.realpathCached()||await Z.realpath(),!X)return;Z=X}let $=Z.isUnknown()||this.opts.stat?await Z.lstat():Z;if(this.opts.follow&&this.opts.nodir&&$?.isSymbolicLink()){let Q=await $.realpath();if(Q&&(Q.isUnknown()||this.opts.stat))await Q.lstat()}return this.matchCheckTest($,J)}matchCheckTest(Z,J){return Z&&(this.maxDepth===1/0||Z.depth()<=this.maxDepth)&&(!J||Z.canReaddir())&&(!this.opts.nodir||!Z.isDirectory())&&(!this.opts.nodir||!this.opts.follow||!Z.isSymbolicLink()||!Z.realpathCached()?.isDirectory())&&!this.#X(Z)?Z:void 0}matchCheckSync(Z,J){if(J&&this.opts.nodir)return;let X;if(this.opts.realpath){if(X=Z.realpathCached()||Z.realpathSync(),!X)return;Z=X}let $=Z.isUnknown()||this.opts.stat?Z.lstatSync():Z;if(this.opts.follow&&this.opts.nodir&&$?.isSymbolicLink()){let Q=$.realpathSync();if(Q&&(Q?.isUnknown()||this.opts.stat))Q.lstatSync()}return this.matchCheckTest($,J)}matchFinish(Z,J){if(this.#X(Z))return;if(!this.includeChildMatches&&this.#J?.add){let $=`${Z.relativePosix()}/**`;this.#J.add($)}let X=this.opts.absolute===void 0?J:this.opts.absolute;this.seen.add(Z);let Y=this.opts.mark&&Z.isDirectory()?this.#Y:"";if(this.opts.withFileTypes)this.matchEmit(Z);else if(X){let $=this.opts.posix?Z.fullpathPosix():Z.fullpath();this.matchEmit($+Y)}else{let $=this.opts.posix?Z.relativePosix():Z.relative(),Q=this.opts.dotRelative&&!$.startsWith(".."+this.#Y)?"."+this.#Y:"";this.matchEmit(!$?"."+Y:Q+$+Y)}}async match(Z,J,X){let Y=await this.matchCheck(Z,X);if(Y)this.matchFinish(Y,J)}matchSync(Z,J,X){let Y=this.matchCheckSync(Z,X);if(Y)this.matchFinish(Y,J)}walkCB(Z,J,X){if(this.signal?.aborted)X();this.walkCB2(Z,J,new t3(this.opts),X)}walkCB2(Z,J,X,Y){if(this.#$(Z))return Y();if(this.signal?.aborted)Y();if(this.paused){this.onResume(()=>this.walkCB2(Z,J,X,Y));return}X.processPatterns(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;$++,this.match(K,W,G).then(()=>Q())}for(let K of X.subwalkTargets()){if(this.maxDepth!==1/0&&K.depth()>=this.maxDepth)continue;$++;let W=K.readdirCached();if(K.calledReaddir())this.walkCB3(K,W,X,Q);else K.readdirCB((G,H)=>this.walkCB3(K,H,X,Q),!0)}Q()}walkCB3(Z,J,X,Y){X=X.filterEntries(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;$++,this.match(K,W,G).then(()=>Q())}for(let[K,W]of X.subwalks.entries())$++,this.walkCB2(K,W,X.child(),Q);Q()}walkCBSync(Z,J,X){if(this.signal?.aborted)X();this.walkCB2Sync(Z,J,new t3(this.opts),X)}walkCB2Sync(Z,J,X,Y){if(this.#$(Z))return Y();if(this.signal?.aborted)Y();if(this.paused){this.onResume(()=>this.walkCB2Sync(Z,J,X,Y));return}X.processPatterns(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;this.matchSync(K,W,G)}for(let K of X.subwalkTargets()){if(this.maxDepth!==1/0&&K.depth()>=this.maxDepth)continue;$++;let W=K.readdirSync();this.walkCB3Sync(K,W,X,Q)}Q()}walkCB3Sync(Z,J,X,Y){X=X.filterEntries(Z,J);let $=1,Q=()=>{if(--$===0)Y()};for(let[K,W,G]of X.matches.entries()){if(this.#X(K))continue;this.matchSync(K,W,G)}for(let[K,W]of X.subwalks.entries())$++,this.walkCB2Sync(K,W,X.child(),Q);Q()}}class gL extends wP{matches=new Set;constructor(Z,J,X){super(Z,J,X)}matchEmit(Z){this.matches.add(Z)}async walk(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())await this.path.lstat();return await new Promise((Z,J)=>{this.walkCB(this.path,this.patterns,()=>{if(this.signal?.aborted)J(this.signal.reason);else Z(this.matches)})}),this.matches}walkSync(){if(this.signal?.aborted)throw this.signal.reason;if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>{if(this.signal?.aborted)throw this.signal.reason}),this.matches}}class mL extends wP{results;constructor(Z,J,X){super(Z,J,X);this.results=new BY({signal:this.signal,objectMode:!0}),this.results.on("drain",()=>this.resume()),this.results.on("resume",()=>this.resume())}matchEmit(Z){if(this.results.write(Z),!this.results.flowing)this.pause()}stream(){let Z=this.path;if(Z.isUnknown())Z.lstat().then(()=>{this.walkCB(Z,this.patterns,()=>this.results.end())});else this.walkCB(Z,this.patterns,()=>this.results.end());return this.results}streamSync(){if(this.path.isUnknown())this.path.lstatSync();return this.walkCBSync(this.path,this.patterns,()=>this.results.end()),this.results}}var VB1=typeof process==="object"&&process&&typeof process.platform==="string"?process.platform:"linux";class G7{absolute;cwd;root;dot;dotRelative;follow;ignore;magicalBraces;mark;matchBase;maxDepth;nobrace;nocase;nodir;noext;noglobstar;pattern;platform;realpath;scurry;stat;signal;windowsPathsNoEscape;withFileTypes;includeChildMatches;opts;patterns;constructor(Z,J){if(!J)throw new TypeError("glob options required");if(this.withFileTypes=!!J.withFileTypes,this.signal=J.signal,this.follow=!!J.follow,this.dot=!!J.dot,this.dotRelative=!!J.dotRelative,this.nodir=!!J.nodir,this.mark=!!J.mark,!J.cwd)this.cwd="";else if(J.cwd instanceof URL||J.cwd.startsWith("file://"))J.cwd=HB1(J.cwd);if(this.cwd=J.cwd||"",this.root=J.root,this.magicalBraces=!!J.magicalBraces,this.nobrace=!!J.nobrace,this.noext=!!J.noext,this.realpath=!!J.realpath,this.absolute=J.absolute,this.includeChildMatches=J.includeChildMatches!==!1,this.noglobstar=!!J.noglobstar,this.matchBase=!!J.matchBase,this.maxDepth=typeof J.maxDepth==="number"?J.maxDepth:1/0,this.stat=!!J.stat,this.ignore=J.ignore,this.withFileTypes&&this.absolute!==void 0)throw new Error("cannot set absolute and withFileTypes:true");if(typeof Z==="string")Z=[Z];if(this.windowsPathsNoEscape=!!J.windowsPathsNoEscape||J.allowWindowsEscape===!1,this.windowsPathsNoEscape)Z=Z.map((W)=>W.replace(/\\/g,"/"));if(this.matchBase){if(J.noglobstar)throw new TypeError("base matching requires globstar");Z=Z.map((W)=>W.includes("/")?W:`./**/${W}`)}if(this.pattern=Z,this.platform=J.platform||VB1,this.opts={...J,platform:this.platform},J.scurry){if(this.scurry=J.scurry,J.nocase!==void 0&&J.nocase!==J.scurry.nocase)throw new Error("nocase option contradicts provided scurry option")}else{let W=J.platform==="win32"?s3:J.platform==="darwin"?bL:J.platform?o3:nl;this.scurry=new W(this.cwd,{nocase:J.nocase,fs:J.fs})}this.nocase=this.scurry.nocase;let X=this.platform==="darwin"||this.platform==="win32",Y={...J,dot:this.dot,matchBase:this.matchBase,nobrace:this.nobrace,nocase:this.nocase,nocaseMagicOnly:X,nocomment:!0,noext:this.noext,nonegate:!0,optimizationLevel:2,platform:this.platform,windowsPathsNoEscape:this.windowsPathsNoEscape,debug:!!this.opts.debug},$=this.pattern.map((W)=>new C9(W,Y)),[Q,K]=$.reduce((W,G)=>{return W[0].push(...G.set),W[1].push(...G.globParts),W},[[],[]]);this.patterns=Q.map((W,G)=>{let H=K[G];if(!H)throw new Error("invalid pattern object");return new QK(W,H,0,this.platform)})}async walk(){return[...await new gL(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walk()]}walkSync(){return[...new gL(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).walkSync()]}stream(){return new mL(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).stream()}streamSync(){return new mL(this.patterns,this.scurry.cwd,{...this.opts,maxDepth:this.maxDepth!==1/0?this.maxDepth+this.scurry.cwd.depth():1/0,platform:this.platform,nocase:this.nocase,includeChildMatches:this.includeChildMatches}).streamSync()}iterateSync(){return this.streamSync()[Symbol.iterator]()}[Symbol.iterator](){return this.iterateSync()}iterate(){return this.stream()[Symbol.asyncIterator]()}[Symbol.asyncIterator](){return this.iterate()}}var OP=(Z,J={})=>{if(!Array.isArray(Z))Z=[Z];for(let X of Z)if(new C9(X,J).hasMagic())return!0;return!1};function dL(Z,J={}){return new G7(Z,J).streamSync()}function rl(Z,J={}){return new G7(Z,J).stream()}function tl(Z,J={}){return new G7(Z,J).walkSync()}async function ol(Z,J={}){return new G7(Z,J).walk()}function cL(Z,J={}){return new G7(Z,J).iterateSync()}function el(Z,J={}){return new G7(Z,J).iterate()}var zB1=dL,FB1=Object.assign(rl,{sync:dL}),qB1=cL,UB1=Object.assign(el,{sync:cL}),LB1=Object.assign(tl,{stream:dL,iterate:cL}),uL=Object.assign(ol,{glob:ol,globSync:tl,sync:LB1,globStream:rl,stream:FB1,globStreamSync:dL,streamSync:zB1,globIterate:el,iterate:UB1,globIterateSync:cL,iterateSync:qB1,Glob:G7,hasMagic:OP,escape:ZK,unescape:B4});uL.glob=uL;class NP{constructor(){this._listeners={}}addEventListener(Z,J){let X=this._listeners;if(X[Z]===void 0)X[Z]=[];if(X[Z].indexOf(J)===-1)X[Z].push(J);return this}removeEventListener(Z,J){let Y=this._listeners[Z];if(Y!==void 0){let $=Y.indexOf(J);if($!==-1)Y.splice($,1)}return this}dispatchEvent(Z){let X=this._listeners[Z.type];if(X!==void 0){let Y=X.slice(0);for(let $=0,Q=Y.length;$<Q;$++)Y[$].call(this,Z)}return this}dispose(){for(let Z in this._listeners)delete this._listeners[Z]}}class M5{constructor(Z,J,X,Y={}){if(this._name=void 0,this._parent=void 0,this._child=void 0,this._attributes=void 0,this._disposed=!1,this._name=Z,this._parent=J,this._child=X,this._attributes=Y,!J.isOnGraph(X))throw new Error("Cannot connect disconnected graphs.")}getName(){return this._name}getParent(){return this._parent}getChild(){return this._child}setChild(Z){return this._child=Z,this}getAttributes(){return this._attributes}dispose(){if(this._disposed)return;this._parent._destroyRef(this),this._disposed=!0}isDisposed(){return this._disposed}}class KK extends NP{constructor(...Z){super(...Z);this._emptySet=new Set,this._edges=new Set,this._parentEdges=new Map,this._childEdges=new Map}listEdges(){return Array.from(this._edges)}listParentEdges(Z){return Array.from(this._childEdges.get(Z)||this._emptySet)}listParents(Z){let J=new Set;for(let X of this.listParentEdges(Z))J.add(X.getParent());return Array.from(J)}listChildEdges(Z){return Array.from(this._parentEdges.get(Z)||this._emptySet)}listChildren(Z){let J=new Set;for(let X of this.listChildEdges(Z))J.add(X.getChild());return Array.from(J)}disconnectParents(Z,J){for(let X of this.listParentEdges(Z))if(!J||J(X.getParent()))X.dispose();return this}_createEdge(Z,J,X,Y){let $=new M5(Z,J,X,Y);this._edges.add($);let Q=$.getParent();if(!this._parentEdges.has(Q))this._parentEdges.set(Q,new Set);this._parentEdges.get(Q).add($);let K=$.getChild();if(!this._childEdges.has(K))this._childEdges.set(K,new Set);return this._childEdges.get(K).add($),$}_destroyEdge(Z){return this._edges.delete(Z),this._parentEdges.get(Z.getParent()).delete(Z),this._childEdges.get(Z.getChild()).delete(Z),this}}function e3(){return e3=Object.assign||function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)if(Object.prototype.hasOwnProperty.call(X,Y))Z[Y]=X[Y]}return Z},e3.apply(this,arguments)}class E6{constructor(Z){if(this.list=[],Z)for(let J of Z)this.list.push(J)}add(Z){this.list.push(Z)}remove(Z){let J=this.list.indexOf(Z);if(J>=0)this.list.splice(J,1)}removeChild(Z){let J=[];for(let X of this.list)if(X.getChild()===Z)J.push(X);for(let X of J)this.remove(X);return J}listRefsByChild(Z){let J=[];for(let X of this.list)if(X.getChild()===Z)J.push(X);return J}values(){return this.list}}class P0{constructor(Z){if(this.set=new Set,this.map=new Map,Z)for(let J of Z)this.add(J)}add(Z){let J=Z.getChild();this.removeChild(J),this.set.add(Z),this.map.set(J,Z)}remove(Z){this.set.delete(Z),this.map.delete(Z.getChild())}removeChild(Z){let J=this.map.get(Z)||null;if(J)this.remove(J);return J}getRefByChild(Z){return this.map.get(Z)||null}values(){return Array.from(this.set)}}class s1{constructor(Z){if(this.map={},Z)Object.assign(this.map,Z)}set(Z,J){this.map[Z]=J}delete(Z){delete this.map[Z]}get(Z){return this.map[Z]||null}keys(){return Object.keys(this.map)}values(){return Object.values(this.map)}}var h0=Symbol("attributes"),N4=Symbol("immutableKeys");class WK extends NP{constructor(Z){super();this._disposed=!1,this.graph=void 0,this[h0]=void 0,this[N4]=void 0,this.graph=Z,this[N4]=new Set,this[h0]=this._createAttributes()}getDefaults(){return{}}_createAttributes(){let Z=this.getDefaults(),J={};for(let X in Z){let Y=Z[X];if(Y instanceof WK){let $=this.graph._createEdge(X,this,Y);this[N4].add(X),J[X]=$}else J[X]=Y}return J}isOnGraph(Z){return this.graph===Z.graph}isDisposed(){return this._disposed}dispose(){if(this._disposed)return;this.graph.listChildEdges(this).forEach((Z)=>Z.dispose()),this.graph.disconnectParents(this),this._disposed=!0,this.dispatchEvent({type:"dispose"})}detach(){return this.graph.disconnectParents(this),this}swap(Z,J){for(let X in this[h0]){let Y=this[h0][X];if(Y instanceof M5){let $=Y;if($.getChild()===Z)this.setRef(X,J,$.getAttributes())}else if(Y instanceof E6)for(let $ of Y.listRefsByChild(Z)){let Q=$.getAttributes();this.removeRef(X,Z),this.addRef(X,J,Q)}else if(Y instanceof P0){let $=Y.getRefByChild(Z);if($){let Q=$.getAttributes();this.removeRef(X,Z),this.addRef(X,J,Q)}}else if(Y instanceof s1)for(let $ of Y.keys()){let Q=Y.get($);if(Q.getChild()===Z)this.setRefMap(X,$,J,Q.getAttributes())}}return this}get(Z){return this[h0][Z]}set(Z,J){return this[h0][Z]=J,this.dispatchEvent({type:"change",attribute:Z})}getRef(Z){let J=this[h0][Z];return J?J.getChild():null}setRef(Z,J,X){if(this[N4].has(Z))throw new Error(`Cannot overwrite immutable attribute, "${Z}".`);let Y=this[h0][Z];if(Y)Y.dispose();if(!J)return this;let $=this.graph._createEdge(Z,this,J,X);return this[h0][Z]=$,this.dispatchEvent({type:"change",attribute:Z})}listRefs(Z){return this.assertRefList(Z).values().map((X)=>X.getChild())}addRef(Z,J,X){let Y=this.graph._createEdge(Z,this,J,X);return this.assertRefList(Z).add(Y),this.dispatchEvent({type:"change",attribute:Z})}removeRef(Z,J){let X=this.assertRefList(Z);if(X instanceof E6)for(let Y of X.listRefsByChild(J))Y.dispose();else{let Y=X.getRefByChild(J);if(Y)Y.dispose()}return this}assertRefList(Z){let J=this[h0][Z];if(J instanceof E6||J instanceof P0)return J;throw new Error(`Expected RefList or RefSet for attribute "${Z}"`)}listRefMapKeys(Z){return this.assertRefMap(Z).keys()}listRefMapValues(Z){return this.assertRefMap(Z).values().map((J)=>J.getChild())}getRefMap(Z,J){let Y=this.assertRefMap(Z).get(J);return Y?Y.getChild():null}setRefMap(Z,J,X,Y){let $=this.assertRefMap(Z),Q=$.get(J);if(Q)Q.dispose();if(!X)return this;Y=Object.assign(Y||{},{key:J});let K=this.graph._createEdge(Z,this,X,e3({},Y,{key:J}));return $.set(J,K),this.dispatchEvent({type:"change",attribute:Z,key:J})}assertRefMap(Z){let J=this[h0][Z];if(J instanceof s1)return J;throw new Error(`Expected RefMap for attribute "${Z}"`)}dispatchEvent(Z){return super.dispatchEvent(e3({},Z,{target:this})),this.graph.dispatchEvent(e3({},Z,{target:this,type:`node:${Z.type}`})),this}_destroyRef(Z){let J=Z.getName();if(this[h0][J]===Z){if(this[h0][J]=null,this[N4].has(J))Z.getChild().dispose()}else if(this[h0][J]instanceof E6)this[h0][J].remove(Z);else if(this[h0][J]instanceof P0)this[h0][J].remove(Z);else if(this[h0][J]instanceof s1){let X=this[h0][J];for(let Y of X.keys())if(X.get(Y)===Z)X.delete(Y)}else return;this.graph._destroyEdge(Z),this.dispatchEvent({type:"change",attribute:J})}}var Kp="v4.1.1",sL="@glb.bin",a;(function(Z){Z.ACCESSOR="Accessor",Z.ANIMATION="Animation",Z.ANIMATION_CHANNEL="AnimationChannel",Z.ANIMATION_SAMPLER="AnimationSampler",Z.BUFFER="Buffer",Z.CAMERA="Camera",Z.MATERIAL="Material",Z.MESH="Mesh",Z.PRIMITIVE="Primitive",Z.PRIMITIVE_TARGET="PrimitiveTarget",Z.NODE="Node",Z.ROOT="Root",Z.SCENE="Scene",Z.SKIN="Skin",Z.TEXTURE="Texture",Z.TEXTURE_INFO="TextureInfo"})(a||(a={}));var oL;(function(Z){Z.INTERLEAVED="interleaved",Z.SEPARATE="separate"})(oL||(oL={}));var i5;(function(Z){Z.ARRAY_BUFFER="ARRAY_BUFFER",Z.ELEMENT_ARRAY_BUFFER="ELEMENT_ARRAY_BUFFER",Z.INVERSE_BIND_MATRICES="INVERSE_BIND_MATRICES",Z.OTHER="OTHER",Z.SPARSE="SPARSE"})(i5||(i5={}));var rL;(function(Z){Z[Z.R=4096]="R",Z[Z.G=256]="G",Z[Z.B=16]="B",Z[Z.A=1]="A"})(rL||(rL={}));var BZ;(function(Z){Z.GLTF="GLTF",Z.GLB="GLB"})(BZ||(BZ={}));var kJ={"5120":Int8Array,"5121":Uint8Array,"5122":Int16Array,"5123":Uint16Array,"5125":Uint32Array,"5126":Float32Array},MP=typeof Float32Array!=="undefined"?Float32Array:Array;if(!Math.hypot)Math.hypot=function(){var Z=0,J=arguments.length;while(J--)Z+=arguments[J]*arguments[J];return Math.sqrt(Z)};function BB1(){var Z=new MP(3);if(MP!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0;return Z}function RP(Z){var J=Z[0],X=Z[1],Y=Z[2];return Math.hypot(J,X,Y)}function wB1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=X[3]*Y+X[7]*$+X[11]*Q+X[15];return K=K||1,Z[0]=(X[0]*Y+X[4]*$+X[8]*Q+X[12])/K,Z[1]=(X[1]*Y+X[5]*$+X[9]*Q+X[13])/K,Z[2]=(X[2]*Y+X[6]*$+X[10]*Q+X[14])/K,Z}(function(){var Z=BB1();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=3;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2];return J}})();function CP(Z){let J=Wp(),X=Z.propertyType===a.NODE?[Z]:Z.listChildren();for(let Y of X)Y.traverse(($)=>{let Q=$.getMesh();if(!Q)return;let K=OB1(Q,$.getWorldMatrix());if(K.min.every(isFinite)&&K.max.every(isFinite))jP(K.min,J),jP(K.max,J)});return J}function OB1(Z,J){let X=Wp();for(let Y of Z.listPrimitives()){let $=Y.getAttribute("POSITION"),Q=Y.getIndices();if(!$)continue;let K=[0,0,0],W=[0,0,0];for(let G=0,H=Q?Q.getCount():$.getCount();G<H;G++){let V=Q?Q.getScalar(G):G;K=$.getElement(V,K),W=wB1(W,K,J),jP(W,X)}}return X}function jP(Z,J){for(let X=0;X<3;X++)J.min[X]=Math.min(Z[X],J.min[X]),J.max[X]=Math.max(Z[X],J.max[X])}function Wp(){return{min:[1/0,1/0,1/0],max:[-1/0,-1/0,-1/0]}}class n0{static createBufferFromDataURI(Z){if(typeof Buffer==="undefined"){let J=atob(Z.split(",")[1]),X=new Uint8Array(J.length);for(let Y=0;Y<J.length;Y++)X[Y]=J.charCodeAt(Y);return X}else{let J=Z.split(",")[1],X=Z.indexOf("base64")>=0;return Buffer.from(J,X?"base64":"utf8")}}static encodeText(Z){return new TextEncoder().encode(Z)}static decodeText(Z){return new TextDecoder().decode(Z)}static concat(Z){let J=0;for(let $ of Z)J+=$.byteLength;let X=new Uint8Array(J),Y=0;for(let $ of Z)X.set($,Y),Y+=$.byteLength;return X}static pad(Z,J=0){let X=this.padNumber(Z.byteLength);if(X===Z.byteLength)return Z;let Y=new Uint8Array(X);if(Y.set(Z),J!==0)for(let $=Z.byteLength;$<X;$++)Y[$]=J;return Y}static padNumber(Z){return Math.ceil(Z/4)*4}static equals(Z,J){if(Z===J)return!0;if(Z.byteLength!==J.byteLength)return!1;let X=Z.byteLength;while(X--)if(Z[X]!==J[X])return!1;return!0}static toView(Z,J=0,X=1/0){return new Uint8Array(Z.buffer,Z.byteOffset+J,Math.min(Z.byteLength,X))}static assertView(Z){if(Z&&!ArrayBuffer.isView(Z))throw new Error(`Method requires Uint8Array parameter; received "${typeof Z}".`);return Z}}class TP{static hexToFactor(Z,J){Z=Math.floor(Z);let X=J;return X[0]=(Z>>16&255)/255,X[1]=(Z>>8&255)/255,X[2]=(Z&255)/255,this.convertSRGBToLinear(J,J)}static factorToHex(Z){let J=[...Z],[X,Y,$]=this.convertLinearToSRGB(Z,J);return X*255<<16^Y*255<<8^$*255<<0}static convertSRGBToLinear(Z,J){let X=Z,Y=J;for(let $=0;$<3;$++)Y[$]=X[$]<0.04045?X[$]*0.0773993808:Math.pow(X[$]*0.9478672986+0.0521327014,2.4);return J}static convertLinearToSRGB(Z,J){let X=Z,Y=J;for(let $=0;$<3;$++)Y[$]=X[$]<0.0031308?X[$]*12.92:1.055*Math.pow(X[$],0.41666)-0.055;return J}}class Gp{match(Z){return Z.length>=3&&Z[0]===255&&Z[1]===216&&Z[2]===255}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset+4),X,Y;while(J.byteLength){if(X=J.getUint16(0,!1),NB1(J,X),Y=J.getUint8(X+1),Y===192||Y===193||Y===194)return[J.getUint16(X+7,!1),J.getUint16(X+5,!1)];J=new DataView(Z.buffer,J.byteOffset+X+2)}throw new TypeError("Invalid JPG, no size found")}getChannels(Z){return 3}}class ZB{match(Z){return Z.length>=8&&Z[0]===137&&Z[1]===80&&Z[2]===78&&Z[3]===71&&Z[4]===13&&Z[5]===10&&Z[6]===26&&Z[7]===10}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset);if(n0.decodeText(Z.slice(12,16))===ZB.PNG_FRIED_CHUNK_NAME)return[J.getUint32(32,!1),J.getUint32(36,!1)];return[J.getUint32(16,!1),J.getUint32(20,!1)]}getChannels(Z){return 4}}ZB.PNG_FRIED_CHUNK_NAME="CgBI";class wZ{static registerFormat(Z,J){this.impls[Z]=J}static getMimeType(Z){for(let J in this.impls)if(this.impls[J].match(Z))return J;return null}static getSize(Z,J){if(!this.impls[J])return null;return this.impls[J].getSize(Z)}static getChannels(Z,J){if(!this.impls[J])return null;return this.impls[J].getChannels(Z)}static getVRAMByteLength(Z,J){if(!this.impls[J])return null;if(this.impls[J].getVRAMByteLength)return this.impls[J].getVRAMByteLength(Z);let X=0,Y=4,$=this.getSize(Z,J);if(!$)return null;while($[0]>1||$[1]>1)X+=$[0]*$[1]*Y,$[0]=Math.max(Math.floor($[0]/2),1),$[1]=Math.max(Math.floor($[1]/2),1);return X+=1*Y,X}static mimeTypeToExtension(Z){if(Z==="image/jpeg")return"jpg";return Z.split("/").pop()}static extensionToMimeType(Z){if(Z==="jpg")return"image/jpeg";if(!Z)return"";return`image/${Z}`}}wZ.impls={"image/jpeg":new Gp,"image/png":new ZB};function NB1(Z,J){if(J>Z.byteLength)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(Z.getUint8(J)!==255)throw new TypeError("Invalid JPG, marker table corrupted");return Z}class OZ{static basename(Z){let J=Z.split(/[\\/]/).pop();return J.substring(0,J.lastIndexOf("."))}static extension(Z){if(Z.startsWith("data:image/")){let J=Z.match(/data:(image\/\w+)/)[1];return wZ.mimeTypeToExtension(J)}else if(Z.startsWith("data:model/gltf+json"))return"gltf";else if(Z.startsWith("data:model/gltf-binary"))return"glb";else if(Z.startsWith("data:application/"))return"bin";return Z.split(/[\\/]/).pop().split(/[.]/).pop()}}function Zp(Z){return Object.prototype.toString.call(Z)==="[object Object]"}function OY(Z){if(Zp(Z)===!1)return!1;let J=Z.constructor;if(J===void 0)return!0;let X=J.prototype;if(Zp(X)===!1)return!1;if(Object.prototype.hasOwnProperty.call(X,"isPrototypeOf")===!1)return!1;return!0}var DP,ZH;(function(Z){Z[Z.SILENT=4]="SILENT",Z[Z.ERROR=3]="ERROR",Z[Z.WARN=2]="WARN",Z[Z.INFO=1]="INFO",Z[Z.DEBUG=0]="DEBUG"})(ZH||(ZH={}));class D5{constructor(Z){this.verbosity=void 0,this.verbosity=Z}debug(Z){if(this.verbosity<=D5.Verbosity.DEBUG)console.debug(Z)}info(Z){if(this.verbosity<=D5.Verbosity.INFO)console.info(Z)}warn(Z){if(this.verbosity<=D5.Verbosity.WARN)console.warn(Z)}error(Z){if(this.verbosity<=D5.Verbosity.ERROR)console.error(Z)}}DP=D5;D5.Verbosity=ZH;D5.DEFAULT_INSTANCE=new DP(DP.Verbosity.INFO);function RB1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3],Q=Z[4],K=Z[5],W=Z[6],G=Z[7],H=Z[8],V=Z[9],F=Z[10],z=Z[11],q=Z[12],U=Z[13],L=Z[14],B=Z[15],w=J*K-X*Q,N=J*W-Y*Q,R=J*G-$*Q,M=X*W-Y*K,P=X*G-$*K,j=Y*G-$*W,C=H*U-V*q,T=H*L-F*q,E=H*B-z*q,x=V*L-F*U,_=V*B-z*U,h=F*B-z*L;return w*h-N*_+R*x+M*E-P*T+j*C}function MB1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=J[3],W=J[4],G=J[5],H=J[6],V=J[7],F=J[8],z=J[9],q=J[10],U=J[11],L=J[12],B=J[13],w=J[14],N=J[15],R=X[0],M=X[1],P=X[2],j=X[3];return Z[0]=R*Y+M*W+P*F+j*L,Z[1]=R*$+M*G+P*z+j*B,Z[2]=R*Q+M*H+P*q+j*w,Z[3]=R*K+M*V+P*U+j*N,R=X[4],M=X[5],P=X[6],j=X[7],Z[4]=R*Y+M*W+P*F+j*L,Z[5]=R*$+M*G+P*z+j*B,Z[6]=R*Q+M*H+P*q+j*w,Z[7]=R*K+M*V+P*U+j*N,R=X[8],M=X[9],P=X[10],j=X[11],Z[8]=R*Y+M*W+P*F+j*L,Z[9]=R*$+M*G+P*z+j*B,Z[10]=R*Q+M*H+P*q+j*w,Z[11]=R*K+M*V+P*U+j*N,R=X[12],M=X[13],P=X[14],j=X[15],Z[12]=R*Y+M*W+P*F+j*L,Z[13]=R*$+M*G+P*z+j*B,Z[14]=R*Q+M*H+P*q+j*w,Z[15]=R*K+M*V+P*U+j*N,Z}function jB1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[4],K=J[5],W=J[6],G=J[8],H=J[9],V=J[10];return Z[0]=Math.hypot(X,Y,$),Z[1]=Math.hypot(Q,K,W),Z[2]=Math.hypot(G,H,V),Z}function DB1(Z,J){var X=new MP(3);jB1(X,J);var Y=1/X[0],$=1/X[1],Q=1/X[2],K=J[0]*Y,W=J[1]*$,G=J[2]*Q,H=J[4]*Y,V=J[5]*$,F=J[6]*Q,z=J[8]*Y,q=J[9]*$,U=J[10]*Q,L=K+V+U,B=0;if(L>0)B=Math.sqrt(L+1)*2,Z[3]=0.25*B,Z[0]=(F-q)/B,Z[1]=(z-G)/B,Z[2]=(W-H)/B;else if(K>V&&K>U)B=Math.sqrt(1+K-V-U)*2,Z[3]=(F-q)/B,Z[0]=0.25*B,Z[1]=(W+H)/B,Z[2]=(z+G)/B;else if(V>U)B=Math.sqrt(1+V-K-U)*2,Z[3]=(z-G)/B,Z[0]=(W+H)/B,Z[1]=0.25*B,Z[2]=(F+q)/B;else B=Math.sqrt(1+U-K-V)*2,Z[3]=(W-H)/B,Z[0]=(z+G)/B,Z[1]=(F+q)/B,Z[2]=0.25*B;return Z}class c0{static identity(Z){return Z}static eq(Z,J,X=0.00001){if(Z.length!==J.length)return!1;for(let Y=0;Y<Z.length;Y++)if(Math.abs(Z[Y]-J[Y])>X)return!1;return!0}static clamp(Z,J,X){if(Z<J)return J;if(Z>X)return X;return Z}static decodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Z/65535;case 5121:return Z/255;case 5122:return Math.max(Z/32767,-1);case 5120:return Math.max(Z/127,-1);default:throw new Error("Invalid component type.")}}static encodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Math.round(c0.clamp(Z,0,1)*65535);case 5121:return Math.round(c0.clamp(Z,0,1)*255);case 5122:return Math.round(c0.clamp(Z,-1,1)*32767);case 5120:return Math.round(c0.clamp(Z,-1,1)*127);default:throw new Error("Invalid component type.")}}static decompose(Z,J,X,Y){let $=RP([Z[0],Z[1],Z[2]]),Q=RP([Z[4],Z[5],Z[6]]),K=RP([Z[8],Z[9],Z[10]]);if(RB1(Z)<0)$=-$;J[0]=Z[12],J[1]=Z[13],J[2]=Z[14];let G=Z.slice(),H=1/$,V=1/Q,F=1/K;G[0]*=H,G[1]*=H,G[2]*=H,G[4]*=V,G[5]*=V,G[6]*=V,G[8]*=F,G[9]*=F,G[10]*=F,DB1(X,G),Y[0]=$,Y[1]=Q,Y[2]=K}static compose(Z,J,X,Y){let $=Y,Q=J[0],K=J[1],W=J[2],G=J[3],H=Q+Q,V=K+K,F=W+W,z=Q*H,q=Q*V,U=Q*F,L=K*V,B=K*F,w=W*F,N=G*H,R=G*V,M=G*F,P=X[0],j=X[1],C=X[2];return $[0]=(1-(L+w))*P,$[1]=(q+M)*P,$[2]=(U-R)*P,$[3]=0,$[4]=(q-M)*j,$[5]=(1-(z+w))*j,$[6]=(B+N)*j,$[7]=0,$[8]=(U+R)*C,$[9]=(B-N)*C,$[10]=(1-(z+L))*C,$[11]=0,$[12]=Z[0],$[13]=Z[1],$[14]=Z[2],$[15]=1,$}}function PB1(Z,J){if(!!Z!==!!J)return!1;let X=Z.getChild(),Y=J.getChild();return X===Y||X.equals(Y)}function CB1(Z,J){if(!!Z!==!!J)return!1;let X=Z.values(),Y=J.values();if(X.length!==Y.length)return!1;for(let $=0;$<X.length;$++){let Q=X[$],K=Y[$];if(Q.getChild()===K.getChild())continue;if(!Q.getChild().equals(K.getChild()))return!1}return!0}function TB1(Z,J){if(!!Z!==!!J)return!1;let X=Z.keys(),Y=J.keys();if(X.length!==Y.length)return!1;for(let $ of X){let Q=Z.get($),K=J.get($);if(!!Q!==!!K)return!1;let W=Q.getChild(),G=K.getChild();if(W===G)continue;if(!W.equals(G))return!1}return!0}function Hp(Z,J){if(Z===J)return!0;if(!!Z!==!!J||!Z||!J)return!1;if(Z.length!==J.length)return!1;for(let X=0;X<Z.length;X++)if(Z[X]!==J[X])return!1;return!0}function Vp(Z,J){if(Z===J)return!0;if(!!Z!==!!J)return!1;if(!OY(Z)||!OY(J))return Z===J;let X=Z,Y=J,$=0,Q=0,K;for(K in X)$++;for(K in Y)Q++;if($!==Q)return!1;for(K in X){let W=X[K],G=Y[K];if(tL(W)&&tL(G)){if(!Hp(W,G))return!1}else if(OY(W)&&OY(G)){if(!Vp(W,G))return!1}else if(W!==G)return!1}return!0}function tL(Z){return Array.isArray(Z)||ArrayBuffer.isView(Z)}var Jp="23456789abdegjkmnpqrvwxyzABDEGJKMNPQRVWXYZ",EB1=999,IB1=6,Xp=new Set,kB1=function Z(){let J="";for(let X=0;X<IB1;X++)J+=Jp.charAt(Math.floor(Math.random()*Jp.length));return J},zp=function Z(){for(let J=0;J<EB1;J++){let X=kB1();if(!Xp.has(X))return Xp.add(X),X}return""},Yp="https://null.example";class I9{static dirname(Z){let J=Z.lastIndexOf("/");if(J===-1)return"./";return Z.substring(0,J+1)}static basename(Z){return OZ.basename(new URL(Z,Yp).pathname)}static extension(Z){return OZ.extension(new URL(Z,Yp).pathname)}static resolve(Z,J){if(!this.isRelativePath(J))return J;let X=Z.split("/"),Y=J.split("/");X.pop();for(let $=0;$<Y.length;$++){if(Y[$]===".")continue;if(Y[$]==="..")X.pop();else X.push(Y[$])}return X.join("/")}static isAbsoluteURL(Z){return this.PROTOCOL_REGEXP.test(Z)}static isRelativePath(Z){return!/^(?:[a-zA-Z]+:)?\//.test(Z)}}I9.DEFAULT_INIT={};I9.PROTOCOL_REGEXP=/^[a-zA-Z]+:\/\//;var IJ=(Z)=>Z,vB1=new Set;class JB extends WK{constructor(Z,J=""){super(Z);this[h0].name=J,this.init(),this.dispatchEvent({type:"create"})}getGraph(){return this.graph}getDefaults(){return Object.assign(super.getDefaults(),{name:"",extras:{}})}set(Z,J){if(Array.isArray(J))J=J.slice();return super.set(Z,J)}getName(){return this.get("name")}setName(Z){return this.set("name",Z)}getExtras(){return this.get("extras")}setExtras(Z){return this.set("extras",Z)}clone(){return new this.constructor(this.graph).copy(this,IJ)}copy(Z,J=IJ){for(let X in this[h0]){let Y=this[h0][X];if(Y instanceof M5){if(!this[N4].has(X))Y.dispose()}else if(Y instanceof E6||Y instanceof P0)for(let $ of Y.values())$.dispose();else if(Y instanceof s1)for(let $ of Y.values())$.dispose()}for(let X in Z[h0]){let Y=this[h0][X],$=Z[h0][X];if($ instanceof M5)if(this[N4].has(X))Y.getChild().copy(J($.getChild()),J);else this.setRef(X,J($.getChild()),$.getAttributes());else if($ instanceof P0||$ instanceof E6)for(let Q of $.values())this.addRef(X,J(Q.getChild()),Q.getAttributes());else if($ instanceof s1)for(let Q of $.keys()){let K=$.get(Q);this.setRefMap(X,Q,J(K.getChild()),K.getAttributes())}else if(OY($))this[h0][X]=JSON.parse(JSON.stringify($));else if(Array.isArray($)||$ instanceof ArrayBuffer||ArrayBuffer.isView($))this[h0][X]=$.slice();else this[h0][X]=$}return this}equals(Z,J=vB1){if(this===Z)return!0;if(this.propertyType!==Z.propertyType)return!1;for(let X in this[h0]){if(J.has(X))continue;let Y=this[h0][X],$=Z[h0][X];if(Y instanceof M5||$ instanceof M5){if(!PB1(Y,$))return!1}else if(Y instanceof P0||$ instanceof P0||Y instanceof E6||$ instanceof E6){if(!CB1(Y,$))return!1}else if(Y instanceof s1||$ instanceof s1){if(!TB1(Y,$))return!1}else if(OY(Y)||OY($)){if(!Vp(Y,$))return!1}else if(tL(Y)||tL($)){if(!Hp(Y,$))return!1}else if(Y!==$)return!1}return!0}detach(){return this.graph.disconnectParents(this,(Z)=>Z.propertyType!=="Root"),this}listParents(){return this.graph.listParents(this)}}class k6 extends JB{getDefaults(){return Object.assign(super.getDefaults(),{extensions:new s1})}getExtension(Z){return this.getRefMap("extensions",Z)}setExtension(Z,J){if(J)J._validateParent(this);return this.setRefMap("extensions",Z,J)}listExtensions(){return this.listRefMapValues("extensions")}}class k0 extends k6{init(){this.propertyType=a.ACCESSOR}getDefaults(){return Object.assign(super.getDefaults(),{array:null,type:k0.Type.SCALAR,componentType:k0.ComponentType.FLOAT,normalized:!1,sparse:!1,buffer:null})}static getElementSize(Z){switch(Z){case k0.Type.SCALAR:return 1;case k0.Type.VEC2:return 2;case k0.Type.VEC3:return 3;case k0.Type.VEC4:return 4;case k0.Type.MAT2:return 4;case k0.Type.MAT3:return 9;case k0.Type.MAT4:return 16;default:throw new Error("Unexpected type: "+Z)}}static getComponentSize(Z){switch(Z){case k0.ComponentType.BYTE:return 1;case k0.ComponentType.UNSIGNED_BYTE:return 1;case k0.ComponentType.SHORT:return 2;case k0.ComponentType.UNSIGNED_SHORT:return 2;case k0.ComponentType.UNSIGNED_INT:return 4;case k0.ComponentType.FLOAT:return 4;default:throw new Error("Unexpected component type: "+Z)}}getMinNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMin(Z),J)for(let $=0;$<X;$++)Z[$]=c0.decodeNormalizedInt(Z[$],Y);return Z}getMin(Z){let J=this.getArray(),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.min(Z[Q],K)}return Z}getMaxNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMax(Z),J)for(let $=0;$<X;$++)Z[$]=c0.decodeNormalizedInt(Z[$],Y);return Z}getMax(Z){let J=this.get("array"),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=-1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.max(Z[Q],K)}return Z}getCount(){let Z=this.get("array");return Z?Z.length/this.getElementSize():0}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getElementSize(){return k0.getElementSize(this.get("type"))}getComponentSize(){return this.get("array").BYTES_PER_ELEMENT}getComponentType(){return this.get("componentType")}getNormalized(){return this.get("normalized")}setNormalized(Z){return this.set("normalized",Z)}getScalar(Z){let J=this.getElementSize(),X=this.getComponentType(),Y=this.getArray();if(this.getNormalized())return c0.decodeNormalizedInt(Y[Z*J],X);return Y[Z*J]}setScalar(Z,J){let X=this.getElementSize(),Y=this.getComponentType(),$=this.getArray();if(this.getNormalized())$[Z*X]=c0.encodeNormalizedInt(J,Y);else $[Z*X]=J;return this}getElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)J[K]=c0.decodeNormalizedInt(Q[Z*Y+K],$);else J[K]=Q[Z*Y+K];return J}setElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)Q[Z*Y+K]=c0.encodeNormalizedInt(J[K],$);else Q[Z*Y+K]=J[K];return this}getSparse(){return this.get("sparse")}setSparse(Z){return this.set("sparse",Z)}getBuffer(){return this.getRef("buffer")}setBuffer(Z){return this.setRef("buffer",Z)}getArray(){return this.get("array")}setArray(Z){return this.set("componentType",Z?_B1(Z):k0.ComponentType.FLOAT),this.set("array",Z),this}getByteLength(){let Z=this.get("array");return Z?Z.byteLength:0}}k0.Type={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};k0.ComponentType={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126};function _B1(Z){switch(Z.constructor){case Float32Array:return k0.ComponentType.FLOAT;case Uint32Array:return k0.ComponentType.UNSIGNED_INT;case Uint16Array:return k0.ComponentType.UNSIGNED_SHORT;case Uint8Array:return k0.ComponentType.UNSIGNED_BYTE;case Int16Array:return k0.ComponentType.SHORT;case Int8Array:return k0.ComponentType.BYTE;default:throw new Error("Unknown accessor componentType.")}}class EP extends k6{init(){this.propertyType=a.ANIMATION}getDefaults(){return Object.assign(super.getDefaults(),{channels:new P0,samplers:new P0})}addChannel(Z){return this.addRef("channels",Z)}removeChannel(Z){return this.removeRef("channels",Z)}listChannels(){return this.listRefs("channels")}addSampler(Z){return this.addRef("samplers",Z)}removeSampler(Z){return this.removeRef("samplers",Z)}listSamplers(){return this.listRefs("samplers")}}class NY extends k6{init(){this.propertyType=a.ANIMATION_CHANNEL}getDefaults(){return Object.assign(super.getDefaults(),{targetPath:null,targetNode:null,sampler:null})}getTargetPath(){return this.get("targetPath")}setTargetPath(Z){return this.set("targetPath",Z)}getTargetNode(){return this.getRef("targetNode")}setTargetNode(Z){return this.setRef("targetNode",Z)}getSampler(){return this.getRef("sampler")}setSampler(Z){return this.setRef("sampler",Z)}}NY.TargetPath={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};class GK extends k6{init(){this.propertyType=a.ANIMATION_SAMPLER}getDefaultAttributes(){return Object.assign(super.getDefaults(),{interpolation:GK.Interpolation.LINEAR,input:null,output:null})}getInterpolation(){return this.get("interpolation")}setInterpolation(Z){return this.set("interpolation",Z)}getInput(){return this.getRef("input")}setInput(Z){return this.setRef("input",Z,{usage:i5.OTHER})}getOutput(){return this.getRef("output")}setOutput(Z){return this.setRef("output",Z,{usage:i5.OTHER})}}GK.Interpolation={LINEAR:"LINEAR",STEP:"STEP",CUBICSPLINE:"CUBICSPLINE"};class IP extends k6{init(){this.propertyType=a.BUFFER}getDefaults(){return Object.assign(super.getDefaults(),{uri:""})}getURI(){return this.get("uri")}setURI(Z){return this.set("uri",Z)}}class RY extends k6{init(){this.propertyType=a.CAMERA}getDefaults(){return Object.assign(super.getDefaults(),{type:RY.Type.PERSPECTIVE,znear:0.1,zfar:100,aspectRatio:null,yfov:Math.PI*2*50/360,xmag:1,ymag:1})}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getZNear(){return this.get("znear")}setZNear(Z){return this.set("znear",Z)}getZFar(){return this.get("zfar")}setZFar(Z){return this.set("zfar",Z)}getAspectRatio(){return this.get("aspectRatio")}setAspectRatio(Z){return this.set("aspectRatio",Z)}getYFov(){return this.get("yfov")}setYFov(Z){return this.set("yfov",Z)}getXMag(){return this.get("xmag")}setXMag(Z){return this.set("xmag",Z)}getYMag(){return this.get("ymag")}setYMag(Z){return this.set("ymag",Z)}}RY.Type={PERSPECTIVE:"perspective",ORTHOGRAPHIC:"orthographic"};class HK extends JB{_validateParent(Z){if(!this.parentTypes.includes(Z.propertyType))throw new Error(`Parent "${Z.propertyType}" invalid for child "${this.propertyType}".`)}}HK.EXTENSION_NAME=void 0;class j5 extends k6{init(){this.propertyType=a.TEXTURE_INFO}getDefaults(){return Object.assign(super.getDefaults(),{texCoord:0,magFilter:null,minFilter:null,wrapS:j5.WrapMode.REPEAT,wrapT:j5.WrapMode.REPEAT})}getTexCoord(){return this.get("texCoord")}setTexCoord(Z){return this.set("texCoord",Z)}getMagFilter(){return this.get("magFilter")}setMagFilter(Z){return this.set("magFilter",Z)}getMinFilter(){return this.get("minFilter")}setMinFilter(Z){return this.set("minFilter",Z)}getWrapS(){return this.get("wrapS")}setWrapS(Z){return this.set("wrapS",Z)}getWrapT(){return this.get("wrapT")}setWrapT(Z){return this.set("wrapT",Z)}}j5.WrapMode={CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497};j5.MagFilter={NEAREST:9728,LINEAR:9729};j5.MinFilter={NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987};var{R:lL,G:pL,B:iL,A:SB1}=rL;class H7 extends k6{init(){this.propertyType=a.MATERIAL}getDefaults(){return Object.assign(super.getDefaults(),{alphaMode:H7.AlphaMode.OPAQUE,alphaCutoff:0.5,doubleSided:!1,baseColorFactor:[1,1,1,1],baseColorTexture:null,baseColorTextureInfo:new j5(this.graph,"baseColorTextureInfo"),emissiveFactor:[0,0,0],emissiveTexture:null,emissiveTextureInfo:new j5(this.graph,"emissiveTextureInfo"),normalScale:1,normalTexture:null,normalTextureInfo:new j5(this.graph,"normalTextureInfo"),occlusionStrength:1,occlusionTexture:null,occlusionTextureInfo:new j5(this.graph,"occlusionTextureInfo"),roughnessFactor:1,metallicFactor:1,metallicRoughnessTexture:null,metallicRoughnessTextureInfo:new j5(this.graph,"metallicRoughnessTextureInfo")})}getDoubleSided(){return this.get("doubleSided")}setDoubleSided(Z){return this.set("doubleSided",Z)}getAlpha(){return this.get("baseColorFactor")[3]}setAlpha(Z){let J=this.get("baseColorFactor").slice();return J[3]=Z,this.set("baseColorFactor",J)}getAlphaMode(){return this.get("alphaMode")}setAlphaMode(Z){return this.set("alphaMode",Z)}getAlphaCutoff(){return this.get("alphaCutoff")}setAlphaCutoff(Z){return this.set("alphaCutoff",Z)}getBaseColorFactor(){return this.get("baseColorFactor")}setBaseColorFactor(Z){return this.set("baseColorFactor",Z)}getBaseColorTexture(){return this.getRef("baseColorTexture")}getBaseColorTextureInfo(){return this.getRef("baseColorTexture")?this.getRef("baseColorTextureInfo"):null}setBaseColorTexture(Z){return this.setRef("baseColorTexture",Z,{channels:lL|pL|iL|SB1,isColor:!0})}getEmissiveFactor(){return this.get("emissiveFactor")}setEmissiveFactor(Z){return this.set("emissiveFactor",Z)}getEmissiveTexture(){return this.getRef("emissiveTexture")}getEmissiveTextureInfo(){return this.getRef("emissiveTexture")?this.getRef("emissiveTextureInfo"):null}setEmissiveTexture(Z){return this.setRef("emissiveTexture",Z,{channels:lL|pL|iL,isColor:!0})}getNormalScale(){return this.get("normalScale")}setNormalScale(Z){return this.set("normalScale",Z)}getNormalTexture(){return this.getRef("normalTexture")}getNormalTextureInfo(){return this.getRef("normalTexture")?this.getRef("normalTextureInfo"):null}setNormalTexture(Z){return this.setRef("normalTexture",Z,{channels:lL|pL|iL})}getOcclusionStrength(){return this.get("occlusionStrength")}setOcclusionStrength(Z){return this.set("occlusionStrength",Z)}getOcclusionTexture(){return this.getRef("occlusionTexture")}getOcclusionTextureInfo(){return this.getRef("occlusionTexture")?this.getRef("occlusionTextureInfo"):null}setOcclusionTexture(Z){return this.setRef("occlusionTexture",Z,{channels:lL})}getRoughnessFactor(){return this.get("roughnessFactor")}setRoughnessFactor(Z){return this.set("roughnessFactor",Z)}getMetallicFactor(){return this.get("metallicFactor")}setMetallicFactor(Z){return this.set("metallicFactor",Z)}getMetallicRoughnessTexture(){return this.getRef("metallicRoughnessTexture")}getMetallicRoughnessTextureInfo(){return this.getRef("metallicRoughnessTexture")?this.getRef("metallicRoughnessTextureInfo"):null}setMetallicRoughnessTexture(Z){return this.setRef("metallicRoughnessTexture",Z,{channels:pL|iL})}}H7.AlphaMode={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};class XH extends k6{init(){this.propertyType=a.MESH}getDefaults(){return Object.assign(super.getDefaults(),{weights:[],primitives:new P0})}addPrimitive(Z){return this.addRef("primitives",Z)}removePrimitive(Z){return this.removeRef("primitives",Z)}listPrimitives(){return this.listRefs("primitives")}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}}class XB extends k6{init(){this.propertyType=a.NODE}getDefaults(){return Object.assign(super.getDefaults(),{translation:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1],weights:[],camera:null,mesh:null,skin:null,children:new P0})}copy(Z,J=IJ){if(J===IJ)throw new Error("Node cannot be copied.");return super.copy(Z,J)}getTranslation(){return this.get("translation")}getRotation(){return this.get("rotation")}getScale(){return this.get("scale")}setTranslation(Z){return this.set("translation",Z)}setRotation(Z){return this.set("rotation",Z)}setScale(Z){return this.set("scale",Z)}getMatrix(){return c0.compose(this.get("translation"),this.get("rotation"),this.get("scale"),[])}setMatrix(Z){let J=this.get("translation").slice(),X=this.get("rotation").slice(),Y=this.get("scale").slice();return c0.decompose(Z,J,X,Y),this.set("translation",J).set("rotation",X).set("scale",Y)}getWorldTranslation(){let Z=[0,0,0];return c0.decompose(this.getWorldMatrix(),Z,[0,0,0,1],[1,1,1]),Z}getWorldRotation(){let Z=[0,0,0,1];return c0.decompose(this.getWorldMatrix(),[0,0,0],Z,[1,1,1]),Z}getWorldScale(){let Z=[1,1,1];return c0.decompose(this.getWorldMatrix(),[0,0,0],[0,0,0,1],Z),Z}getWorldMatrix(){let Z=[];for(let Y=this;Y!=null;Y=Y.getParentNode())Z.push(Y);let J,X=Z.pop().getMatrix();while(J=Z.pop())MB1(X,X,J.getMatrix());return X}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);for(let X of Z.listParents())if(X.propertyType===a.SCENE)X.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}getParentNode(){for(let Z of this.listParents())if(Z.propertyType===a.NODE)return Z;return null}getMesh(){return this.getRef("mesh")}setMesh(Z){return this.setRef("mesh",Z)}getCamera(){return this.getRef("camera")}setCamera(Z){return this.setRef("camera",Z)}getSkin(){return this.getRef("skin")}setSkin(Z){return this.setRef("skin",Z)}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}traverse(Z){Z(this);for(let J of this.listChildren())J.traverse(Z);return this}}class O8 extends k6{init(){this.propertyType=a.PRIMITIVE}getDefaults(){return Object.assign(super.getDefaults(),{mode:O8.Mode.TRIANGLES,material:null,indices:null,attributes:new s1,targets:new P0})}getIndices(){return this.getRef("indices")}setIndices(Z){return this.setRef("indices",Z,{usage:i5.ELEMENT_ARRAY_BUFFER})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:i5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}getMaterial(){return this.getRef("material")}setMaterial(Z){return this.setRef("material",Z)}getMode(){return this.get("mode")}setMode(Z){return this.set("mode",Z)}listTargets(){return this.listRefs("targets")}addTarget(Z){return this.addRef("targets",Z)}removeTarget(Z){return this.removeRef("targets",Z)}}O8.Mode={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class kP extends JB{init(){this.propertyType=a.PRIMITIVE_TARGET}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new s1})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:i5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}}function n6(){return n6=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},n6.apply(null,arguments)}class VK extends k6{init(){this.propertyType=a.SCENE}getDefaults(){return Object.assign(super.getDefaults(),{children:new P0})}copy(Z,J=IJ){if(J===IJ)throw new Error("Scene cannot be copied.");return super.copy(Z,J)}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}traverse(Z){for(let J of this.listChildren())J.traverse(Z);return this}}class vP extends k6{init(){this.propertyType=a.SKIN}getDefaults(){return Object.assign(super.getDefaults(),{skeleton:null,inverseBindMatrices:null,joints:new P0})}getSkeleton(){return this.getRef("skeleton")}setSkeleton(Z){return this.setRef("skeleton",Z)}getInverseBindMatrices(){return this.getRef("inverseBindMatrices")}setInverseBindMatrices(Z){return this.setRef("inverseBindMatrices",Z,{usage:i5.INVERSE_BIND_MATRICES})}addJoint(Z){return this.addRef("joints",Z)}removeJoint(Z){return this.removeRef("joints",Z)}listJoints(){return this.listRefs("joints")}}class MY extends k6{init(){this.propertyType=a.TEXTURE}getDefaults(){return Object.assign(super.getDefaults(),{image:null,mimeType:"",uri:""})}getMimeType(){return this.get("mimeType")||wZ.extensionToMimeType(OZ.extension(this.get("uri")))}setMimeType(Z){return this.set("mimeType",Z)}getURI(){return this.get("uri")}setURI(Z){this.set("uri",Z);let J=wZ.extensionToMimeType(OZ.extension(Z));if(J)this.set("mimeType",J);return this}getImage(){return this.get("image")}setImage(Z){return this.set("image",n0.assertView(Z))}getSize(){let Z=this.get("image");if(!Z)return null;return wZ.getSize(Z,this.getMimeType())}}class jY extends k6{init(){this.propertyType=a.ROOT}getDefaults(){return Object.assign(super.getDefaults(),{asset:{generator:`glTF-Transform ${Kp}`,version:"2.0"},defaultScene:null,accessors:new P0,animations:new P0,buffers:new P0,cameras:new P0,materials:new P0,meshes:new P0,nodes:new P0,scenes:new P0,skins:new P0,textures:new P0})}constructor(Z){super(Z);this._extensions=new Set,Z.addEventListener("node:create",(J)=>{this._addChildOfRoot(J.target)})}clone(){throw new Error("Root cannot be cloned.")}copy(Z,J=IJ){if(J===IJ)throw new Error("Root cannot be copied.");this.set("asset",n6({},Z.get("asset"))),this.setName(Z.getName()),this.setExtras(n6({},Z.getExtras())),this.setDefaultScene(Z.getDefaultScene()?J(Z.getDefaultScene()):null);for(let X of Z.listRefMapKeys("extensions")){let Y=Z.getExtension(X);this.setExtension(X,J(Y))}return this}_addChildOfRoot(Z){if(Z instanceof VK)this.addRef("scenes",Z);else if(Z instanceof XB)this.addRef("nodes",Z);else if(Z instanceof RY)this.addRef("cameras",Z);else if(Z instanceof vP)this.addRef("skins",Z);else if(Z instanceof XH)this.addRef("meshes",Z);else if(Z instanceof H7)this.addRef("materials",Z);else if(Z instanceof MY)this.addRef("textures",Z);else if(Z instanceof EP)this.addRef("animations",Z);else if(Z instanceof k0)this.addRef("accessors",Z);else if(Z instanceof IP)this.addRef("buffers",Z);return this}getAsset(){return this.get("asset")}listExtensionsUsed(){return Array.from(this._extensions)}listExtensionsRequired(){return this.listExtensionsUsed().filter((Z)=>Z.isRequired())}_enableExtension(Z){return this._extensions.add(Z),this}_disableExtension(Z){return this._extensions.delete(Z),this}listScenes(){return this.listRefs("scenes")}setDefaultScene(Z){return this.setRef("defaultScene",Z)}getDefaultScene(){return this.getRef("defaultScene")}listNodes(){return this.listRefs("nodes")}listCameras(){return this.listRefs("cameras")}listSkins(){return this.listRefs("skins")}listMeshes(){return this.listRefs("meshes")}listMaterials(){return this.listRefs("materials")}listTextures(){return this.listRefs("textures")}listAnimations(){return this.listRefs("animations")}listAccessors(){return this.listRefs("accessors")}listBuffers(){return this.listRefs("buffers")}}class I6{static fromGraph(Z){return I6._GRAPH_DOCUMENTS.get(Z)||null}constructor(){this._graph=new KK,this._root=new jY(this._graph),this._logger=D5.DEFAULT_INSTANCE,I6._GRAPH_DOCUMENTS.set(this._graph,this)}getRoot(){return this._root}getGraph(){return this._graph}getLogger(){return this._logger}setLogger(Z){return this._logger=Z,this}clone(){throw new Error("Use 'cloneDocument(source)' from '@gltf-transform/functions'.")}merge(Z){throw new Error("Use 'mergeDocuments(target, source)' from '@gltf-transform/functions'.")}async transform(...Z){let J=Z.map((X)=>X.name);for(let X of Z)await X(this,{stack:J});return this}createExtension(Z){let J=Z.EXTENSION_NAME;return this.getRoot().listExtensionsUsed().find((Y)=>Y.extensionName===J)||new Z(this)}createScene(Z=""){return new VK(this._graph,Z)}createNode(Z=""){return new XB(this._graph,Z)}createCamera(Z=""){return new RY(this._graph,Z)}createSkin(Z=""){return new vP(this._graph,Z)}createMesh(Z=""){return new XH(this._graph,Z)}createPrimitive(){return new O8(this._graph)}createPrimitiveTarget(Z=""){return new kP(this._graph,Z)}createMaterial(Z=""){return new H7(this._graph,Z)}createTexture(Z=""){return new MY(this._graph,Z)}createAnimation(Z=""){return new EP(this._graph,Z)}createAnimationChannel(Z=""){return new NY(this._graph,Z)}createAnimationSampler(Z=""){return new GK(this._graph,Z)}createAccessor(Z="",J=null){if(!J)J=this.getRoot().listBuffers()[0];return new k0(this._graph,Z).setBuffer(J)}createBuffer(Z=""){return new IP(this._graph,Z)}}I6._GRAPH_DOCUMENTS=new WeakMap;class Fp{constructor(Z){this.extensionName="",this.prereadTypes=[],this.prewriteTypes=[],this.readDependencies=[],this.writeDependencies=[],this.document=void 0,this.required=!1,this.properties=new Set,this._listener=void 0,this.document=Z,Z.getRoot()._enableExtension(this),this._listener=(X)=>{let Y=X,$=Y.target;if($ instanceof HK&&$.extensionName===this.extensionName){if(Y.type==="node:create")this._addExtensionProperty($);if(Y.type==="node:dispose")this._removeExtensionProperty($)}};let J=Z.getGraph();J.addEventListener("node:create",this._listener),J.addEventListener("node:dispose",this._listener)}dispose(){this.document.getRoot()._disableExtension(this);let Z=this.document.getGraph();Z.removeEventListener("node:create",this._listener),Z.removeEventListener("node:dispose",this._listener);for(let J of this.properties)J.dispose()}static register(){}isRequired(){return this.required}setRequired(Z){return this.required=Z,this}listProperties(){return Array.from(this.properties)}_addExtensionProperty(Z){return this.properties.add(Z),this}_removeExtensionProperty(Z){return this.properties.delete(Z),this}install(Z,J){return this}preread(Z,J){return this}prewrite(Z,J){return this}}Fp.EXTENSION_NAME=void 0;class qp{constructor(Z){this.jsonDoc=void 0,this.buffers=[],this.bufferViews=[],this.bufferViewBuffers=[],this.accessors=[],this.textures=[],this.textureInfos=new Map,this.materials=[],this.meshes=[],this.cameras=[],this.nodes=[],this.skins=[],this.animations=[],this.scenes=[],this.jsonDoc=Z}setTextureInfo(Z,J){if(this.textureInfos.set(Z,J),J.texCoord!==void 0)Z.setTexCoord(J.texCoord);if(J.extras!==void 0)Z.setExtras(J.extras);let X=this.jsonDoc.json.textures[J.index];if(X.sampler===void 0)return;let Y=this.jsonDoc.json.samplers[X.sampler];if(Y.magFilter!==void 0)Z.setMagFilter(Y.magFilter);if(Y.minFilter!==void 0)Z.setMinFilter(Y.minFilter);if(Y.wrapS!==void 0)Z.setWrapS(Y.wrapS);if(Y.wrapT!==void 0)Z.setWrapT(Y.wrapT)}}var $p={logger:D5.DEFAULT_INSTANCE,extensions:[],dependencies:{}},AB1=new Set([a.BUFFER,a.TEXTURE,a.MATERIAL,a.MESH,a.PRIMITIVE,a.NODE,a.SCENE]);class Up{static read(Z,J=$p){let X=n6({},$p,J),{json:Y}=Z,$=new I6().setLogger(X.logger);this.validate(Z,X);let Q=new qp(Z),K=Y.asset,W=$.getRoot().getAsset();if(K.copyright)W.copyright=K.copyright;if(K.extras)W.extras=K.extras;if(Y.extras!==void 0)$.getRoot().setExtras(n6({},Y.extras));let G=Y.extensionsUsed||[],H=Y.extensionsRequired||[];X.extensions.sort((j,C)=>j.EXTENSION_NAME>C.EXTENSION_NAME?1:-1);for(let j of X.extensions)if(G.includes(j.EXTENSION_NAME)){let C=$.createExtension(j).setRequired(H.includes(j.EXTENSION_NAME)),T=C.prereadTypes.filter((E)=>!AB1.has(E));if(T.length)X.logger.warn(`Preread hooks for some types (${T.join()}), requested by extension ${C.extensionName}, are unsupported. Please file an issue or a PR.`);for(let E of C.readDependencies)C.install(E,X.dependencies[E])}let V=Y.buffers||[];$.getRoot().listExtensionsUsed().filter((j)=>j.prereadTypes.includes(a.BUFFER)).forEach((j)=>j.preread(Q,a.BUFFER)),Q.buffers=V.map((j)=>{let C=$.createBuffer(j.name);if(j.extras)C.setExtras(j.extras);if(j.uri&&j.uri.indexOf("__")!==0)C.setURI(j.uri);return C});let F=Y.bufferViews||[];Q.bufferViewBuffers=F.map((j,C)=>{if(!Q.bufferViews[C]){let T=Z.json.buffers[j.buffer],E=T.uri?Z.resources[T.uri]:Z.resources[sL],x=j.byteOffset||0;Q.bufferViews[C]=n0.toView(E,x,j.byteLength)}return Q.buffers[j.buffer]});let z=Y.accessors||[];Q.accessors=z.map((j)=>{let C=Q.bufferViewBuffers[j.bufferView],T=$.createAccessor(j.name,C).setType(j.type);if(j.extras)T.setExtras(j.extras);if(j.normalized!==void 0)T.setNormalized(j.normalized);if(j.bufferView===void 0)return T;return T.setArray(aL(j,Q)),T});let q=Y.images||[],U=Y.textures||[];$.getRoot().listExtensionsUsed().filter((j)=>j.prereadTypes.includes(a.TEXTURE)).forEach((j)=>j.preread(Q,a.TEXTURE)),Q.textures=q.map((j)=>{let C=$.createTexture(j.name);if(j.extras)C.setExtras(j.extras);if(j.bufferView!==void 0){let T=Y.bufferViews[j.bufferView],E=Z.json.buffers[T.buffer],x=E.uri?Z.resources[E.uri]:Z.resources[sL],_=T.byteOffset||0,h=T.byteLength,k=x.slice(_,_+h);C.setImage(k)}else if(j.uri!==void 0){if(C.setImage(Z.resources[j.uri]),j.uri.indexOf("__")!==0)C.setURI(j.uri)}if(j.mimeType!==void 0)C.setMimeType(j.mimeType);else if(j.uri){let T=OZ.extension(j.uri);C.setMimeType(wZ.extensionToMimeType(T))}return C}),$.getRoot().listExtensionsUsed().filter((j)=>j.prereadTypes.includes(a.MATERIAL)).forEach((j)=>j.preread(Q,a.MATERIAL));let L=Y.materials||[];Q.materials=L.map((j)=>{let C=$.createMaterial(j.name);if(j.extras)C.setExtras(j.extras);if(j.alphaMode!==void 0)C.setAlphaMode(j.alphaMode);if(j.alphaCutoff!==void 0)C.setAlphaCutoff(j.alphaCutoff);if(j.doubleSided!==void 0)C.setDoubleSided(j.doubleSided);let T=j.pbrMetallicRoughness||{};if(T.baseColorFactor!==void 0)C.setBaseColorFactor(T.baseColorFactor);if(j.emissiveFactor!==void 0)C.setEmissiveFactor(j.emissiveFactor);if(T.metallicFactor!==void 0)C.setMetallicFactor(T.metallicFactor);if(T.roughnessFactor!==void 0)C.setRoughnessFactor(T.roughnessFactor);if(T.baseColorTexture!==void 0){let E=T.baseColorTexture,x=Q.textures[U[E.index].source];C.setBaseColorTexture(x),Q.setTextureInfo(C.getBaseColorTextureInfo(),E)}if(j.emissiveTexture!==void 0){let E=j.emissiveTexture,x=Q.textures[U[E.index].source];C.setEmissiveTexture(x),Q.setTextureInfo(C.getEmissiveTextureInfo(),E)}if(j.normalTexture!==void 0){let E=j.normalTexture,x=Q.textures[U[E.index].source];if(C.setNormalTexture(x),Q.setTextureInfo(C.getNormalTextureInfo(),E),j.normalTexture.scale!==void 0)C.setNormalScale(j.normalTexture.scale)}if(j.occlusionTexture!==void 0){let E=j.occlusionTexture,x=Q.textures[U[E.index].source];if(C.setOcclusionTexture(x),Q.setTextureInfo(C.getOcclusionTextureInfo(),E),j.occlusionTexture.strength!==void 0)C.setOcclusionStrength(j.occlusionTexture.strength)}if(T.metallicRoughnessTexture!==void 0){let E=T.metallicRoughnessTexture,x=Q.textures[U[E.index].source];C.setMetallicRoughnessTexture(x),Q.setTextureInfo(C.getMetallicRoughnessTextureInfo(),E)}return C}),$.getRoot().listExtensionsUsed().filter((j)=>j.prereadTypes.includes(a.MESH)).forEach((j)=>j.preread(Q,a.MESH));let B=Y.meshes||[];$.getRoot().listExtensionsUsed().filter((j)=>j.prereadTypes.includes(a.PRIMITIVE)).forEach((j)=>j.preread(Q,a.PRIMITIVE)),Q.meshes=B.map((j)=>{let C=$.createMesh(j.name);if(j.extras)C.setExtras(j.extras);if(j.weights!==void 0)C.setWeights(j.weights);return(j.primitives||[]).forEach((E)=>{let x=$.createPrimitive();if(E.extras)x.setExtras(E.extras);if(E.material!==void 0)x.setMaterial(Q.materials[E.material]);if(E.mode!==void 0)x.setMode(E.mode);for(let[k,v]of Object.entries(E.attributes||{}))x.setAttribute(k,Q.accessors[v]);if(E.indices!==void 0)x.setIndices(Q.accessors[E.indices]);let _=j.extras&&j.extras.targetNames||[];(E.targets||[]).forEach((k,v)=>{let A=_[v]||v.toString(),p=$.createPrimitiveTarget(A);for(let[n,o]of Object.entries(k))p.setAttribute(n,Q.accessors[o]);x.addTarget(p)}),C.addPrimitive(x)}),C});let w=Y.cameras||[];Q.cameras=w.map((j)=>{let C=$.createCamera(j.name).setType(j.type);if(j.extras)C.setExtras(j.extras);if(j.type===RY.Type.PERSPECTIVE){let T=j.perspective;if(C.setYFov(T.yfov),C.setZNear(T.znear),T.zfar!==void 0)C.setZFar(T.zfar);if(T.aspectRatio!==void 0)C.setAspectRatio(T.aspectRatio)}else{let T=j.orthographic;C.setZNear(T.znear).setZFar(T.zfar).setXMag(T.xmag).setYMag(T.ymag)}return C});let N=Y.nodes||[];$.getRoot().listExtensionsUsed().filter((j)=>j.prereadTypes.includes(a.NODE)).forEach((j)=>j.preread(Q,a.NODE)),Q.nodes=N.map((j)=>{let C=$.createNode(j.name);if(j.extras)C.setExtras(j.extras);if(j.translation!==void 0)C.setTranslation(j.translation);if(j.rotation!==void 0)C.setRotation(j.rotation);if(j.scale!==void 0)C.setScale(j.scale);if(j.matrix!==void 0){let T=[0,0,0],E=[0,0,0,1],x=[1,1,1];c0.decompose(j.matrix,T,E,x),C.setTranslation(T),C.setRotation(E),C.setScale(x)}if(j.weights!==void 0)C.setWeights(j.weights);return C});let R=Y.skins||[];Q.skins=R.map((j)=>{let C=$.createSkin(j.name);if(j.extras)C.setExtras(j.extras);if(j.inverseBindMatrices!==void 0)C.setInverseBindMatrices(Q.accessors[j.inverseBindMatrices]);if(j.skeleton!==void 0)C.setSkeleton(Q.nodes[j.skeleton]);for(let T of j.joints)C.addJoint(Q.nodes[T]);return C}),N.map((j,C)=>{let T=Q.nodes[C];if((j.children||[]).forEach((x)=>T.addChild(Q.nodes[x])),j.mesh!==void 0)T.setMesh(Q.meshes[j.mesh]);if(j.camera!==void 0)T.setCamera(Q.cameras[j.camera]);if(j.skin!==void 0)T.setSkin(Q.skins[j.skin])});let M=Y.animations||[];Q.animations=M.map((j)=>{let C=$.createAnimation(j.name);if(j.extras)C.setExtras(j.extras);let E=(j.samplers||[]).map((_)=>{let h=$.createAnimationSampler().setInput(Q.accessors[_.input]).setOutput(Q.accessors[_.output]).setInterpolation(_.interpolation||GK.Interpolation.LINEAR);if(_.extras)h.setExtras(_.extras);return C.addSampler(h),h});return(j.channels||[]).forEach((_)=>{let h=$.createAnimationChannel().setSampler(E[_.sampler]).setTargetPath(_.target.path);if(_.target.node!==void 0)h.setTargetNode(Q.nodes[_.target.node]);if(_.extras)h.setExtras(_.extras);C.addChannel(h)}),C});let P=Y.scenes||[];if($.getRoot().listExtensionsUsed().filter((j)=>j.prereadTypes.includes(a.SCENE)).forEach((j)=>j.preread(Q,a.SCENE)),Q.scenes=P.map((j)=>{let C=$.createScene(j.name);if(j.extras)C.setExtras(j.extras);return(j.nodes||[]).map((E)=>Q.nodes[E]).forEach((E)=>C.addChild(E)),C}),Y.scene!==void 0)$.getRoot().setDefaultScene(Q.scenes[Y.scene]);return $.getRoot().listExtensionsUsed().forEach((j)=>j.read(Q)),z.forEach((j,C)=>{let T=Q.accessors[C],E=!!j.sparse,x=!j.bufferView&&!T.getArray();if(E||x)T.setSparse(!0).setArray(hB1(j,Q))}),$}static validate(Z,J){let X=Z.json;if(X.asset.version!=="2.0")throw new Error(`Unsupported glTF version, "${X.asset.version}".`);if(X.extensionsRequired){for(let Y of X.extensionsRequired)if(!J.extensions.find(($)=>$.EXTENSION_NAME===Y))throw new Error(`Missing required extension, "${Y}".`)}if(X.extensionsUsed){for(let Y of X.extensionsUsed)if(!J.extensions.find(($)=>$.EXTENSION_NAME===Y))J.logger.warn(`Missing optional extension, "${Y}".`)}}}function xB1(Z,J){let X=J.jsonDoc,Y=J.bufferViews[Z.bufferView],$=X.json.bufferViews[Z.bufferView],Q=kJ[Z.componentType],K=k0.getElementSize(Z.type),W=Q.BYTES_PER_ELEMENT,G=Z.byteOffset||0,H=new Q(Z.count*K),V=new DataView(Y.buffer,Y.byteOffset,Y.byteLength),F=$.byteStride;for(let z=0;z<Z.count;z++)for(let q=0;q<K;q++){let U=G+z*F+q*W,L;switch(Z.componentType){case k0.ComponentType.FLOAT:L=V.getFloat32(U,!0);break;case k0.ComponentType.UNSIGNED_INT:L=V.getUint32(U,!0);break;case k0.ComponentType.UNSIGNED_SHORT:L=V.getUint16(U,!0);break;case k0.ComponentType.UNSIGNED_BYTE:L=V.getUint8(U);break;case k0.ComponentType.SHORT:L=V.getInt16(U,!0);break;case k0.ComponentType.BYTE:L=V.getInt8(U);break;default:throw new Error(`Unexpected componentType "${Z.componentType}".`)}H[z*K+q]=L}return H}function aL(Z,J){let X=J.jsonDoc,Y=J.bufferViews[Z.bufferView],$=X.json.bufferViews[Z.bufferView],Q=kJ[Z.componentType],K=k0.getElementSize(Z.type),W=Q.BYTES_PER_ELEMENT,G=K*W;if($.byteStride!==void 0&&$.byteStride!==G)return xB1(Z,J);let H=Y.byteOffset+(Z.byteOffset||0),V=Z.count*K*W;return new Q(Y.buffer.slice(H,H+V))}function hB1(Z,J){let X=kJ[Z.componentType],Y=k0.getElementSize(Z.type),$;if(Z.bufferView!==void 0)$=aL(Z,J);else $=new X(Z.count*Y);let Q=Z.sparse;if(!Q)return $;let K=Q.count,W=n6({},Z,Q.indices,{count:K,type:"SCALAR"}),G=n6({},Z,Q.values,{count:K}),H=aL(W,J),V=aL(G,J);for(let F=0;F<W.count;F++)for(let z=0;z<Y;z++)$[H[F]*Y+z]=V[F*Y+z];return $}var JH;(function(Z){Z[Z.ARRAY_BUFFER=34962]="ARRAY_BUFFER",Z[Z.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER"})(JH||(JH={}));class EJ{constructor(Z,J,X){this._doc=void 0,this.jsonDoc=void 0,this.options=void 0,this.accessorIndexMap=new Map,this.animationIndexMap=new Map,this.bufferIndexMap=new Map,this.cameraIndexMap=new Map,this.skinIndexMap=new Map,this.materialIndexMap=new Map,this.meshIndexMap=new Map,this.nodeIndexMap=new Map,this.imageIndexMap=new Map,this.textureDefIndexMap=new Map,this.textureInfoDefMap=new Map,this.samplerDefIndexMap=new Map,this.sceneIndexMap=new Map,this.imageBufferViews=[],this.otherBufferViews=new Map,this.otherBufferViewsIndexMap=new Map,this.extensionData={},this.bufferURIGenerator=void 0,this.imageURIGenerator=void 0,this.logger=void 0,this._accessorUsageMap=new Map,this.accessorUsageGroupedByParent=new Set(["ARRAY_BUFFER"]),this.accessorParents=new Map,this._doc=Z,this.jsonDoc=J,this.options=X;let Y=Z.getRoot(),$=Y.listBuffers().length,Q=Y.listTextures().length;this.bufferURIGenerator=new PP($>1,()=>X.basename||"buffer"),this.imageURIGenerator=new PP(Q>1,(K)=>fB1(Z,K)||X.basename||"texture"),this.logger=Z.getLogger()}createTextureInfoDef(Z,J){let X={magFilter:J.getMagFilter()||void 0,minFilter:J.getMinFilter()||void 0,wrapS:J.getWrapS(),wrapT:J.getWrapT()},Y=JSON.stringify(X);if(!this.samplerDefIndexMap.has(Y))this.samplerDefIndexMap.set(Y,this.jsonDoc.json.samplers.length),this.jsonDoc.json.samplers.push(X);let $={source:this.imageIndexMap.get(Z),sampler:this.samplerDefIndexMap.get(Y)},Q=JSON.stringify($);if(!this.textureDefIndexMap.has(Q))this.textureDefIndexMap.set(Q,this.jsonDoc.json.textures.length),this.jsonDoc.json.textures.push($);let K={index:this.textureDefIndexMap.get(Q)};if(J.getTexCoord()!==0)K.texCoord=J.getTexCoord();if(Object.keys(J.getExtras()).length>0)K.extras=J.getExtras();return this.textureInfoDefMap.set(J,K),K}createPropertyDef(Z){let J={};if(Z.getName())J.name=Z.getName();if(Object.keys(Z.getExtras()).length>0)J.extras=Z.getExtras();return J}createAccessorDef(Z){let J=this.createPropertyDef(Z);if(J.type=Z.getType(),J.componentType=Z.getComponentType(),J.count=Z.getCount(),this._doc.getGraph().listParentEdges(Z).some((Y)=>Y.getName()==="attributes"&&Y.getAttributes().key==="POSITION"||Y.getName()==="input"))J.max=Z.getMax([]).map(Math.fround),J.min=Z.getMin([]).map(Math.fround);if(Z.getNormalized())J.normalized=Z.getNormalized();return J}createImageData(Z,J,X){if(this.options.format===BZ.GLB)this.imageBufferViews.push(J),Z.bufferView=this.jsonDoc.json.bufferViews.length,this.jsonDoc.json.bufferViews.push({buffer:0,byteOffset:-1,byteLength:J.byteLength});else{let Y=wZ.mimeTypeToExtension(X.getMimeType());Z.uri=this.imageURIGenerator.createURI(X,Y),this.assignResourceURI(Z.uri,J,!1)}}assignResourceURI(Z,J,X){let Y=this.jsonDoc.resources;if(!(Z in Y)){Y[Z]=J;return}if(J===Y[Z]){this.logger.warn(`Duplicate resource URI, "${Z}".`);return}let $=`Resource URI "${Z}" already assigned to different data.`;if(!X){this.logger.warn($);return}throw new Error($)}getAccessorUsage(Z){let J=this._accessorUsageMap.get(Z);if(J)return J;if(Z.getSparse())return i5.SPARSE;for(let X of this._doc.getGraph().listParentEdges(Z)){let{usage:Y}=X.getAttributes();if(Y)return Y;if(X.getParent().propertyType!==a.ROOT)this.logger.warn(`Missing attribute ".usage" on edge, "${X.getName()}".`)}return i5.OTHER}addAccessorToUsageGroup(Z,J){let X=this._accessorUsageMap.get(Z);if(X&&X!==J)throw new Error(`Accessor with usage "${X}" cannot be reused as "${J}".`);return this._accessorUsageMap.set(Z,J),this}}EJ.BufferViewTarget=JH;EJ.BufferViewUsage=i5;EJ.USAGE_TO_TARGET={[i5.ARRAY_BUFFER]:JH.ARRAY_BUFFER,[i5.ELEMENT_ARRAY_BUFFER]:JH.ELEMENT_ARRAY_BUFFER};class PP{constructor(Z,J){this.multiple=void 0,this.basename=void 0,this.counter={},this.multiple=Z,this.basename=J}createURI(Z,J){if(Z.getURI())return Z.getURI();else if(!this.multiple)return`${this.basename(Z)}.${J}`;else{let X=this.basename(Z);return this.counter[X]=this.counter[X]||1,`${X}_${this.counter[X]++}.${J}`}}}function fB1(Z,J){let X=Z.getGraph().listParentEdges(J).find((Y)=>Y.getParent()!==Z.getRoot());return X?X.getName().replace(/texture$/i,""):""}var{BufferViewUsage:nL}=EJ,{UNSIGNED_INT:yB1,UNSIGNED_SHORT:bB1,UNSIGNED_BYTE:gB1}=k0.ComponentType,mB1=new Set([a.ACCESSOR,a.BUFFER,a.MATERIAL,a.MESH]);class Lp{static write(Z,J){let X=Z.getGraph(),Y=Z.getRoot(),$={asset:n6({generator:`glTF-Transform ${Kp}`},Y.getAsset()),extras:n6({},Y.getExtras())},Q={json:$,resources:{}},K=new EJ(Z,Q,J),W=J.logger||D5.DEFAULT_INSTANCE,G=new Set(J.extensions.map((B)=>B.EXTENSION_NAME)),H=Z.getRoot().listExtensionsUsed().filter((B)=>G.has(B.extensionName)).sort((B,w)=>B.extensionName>w.extensionName?1:-1),V=Z.getRoot().listExtensionsRequired().filter((B)=>G.has(B.extensionName)).sort((B,w)=>B.extensionName>w.extensionName?1:-1);if(H.length<Z.getRoot().listExtensionsUsed().length)W.warn("Some extensions were not registered for I/O, and will not be written.");for(let B of H){let w=B.prewriteTypes.filter((N)=>!mB1.has(N));if(w.length)W.warn(`Prewrite hooks for some types (${w.join()}), requested by extension ${B.extensionName}, are unsupported. Please file an issue or a PR.`);for(let N of B.writeDependencies)B.install(N,J.dependencies[N])}function F(B,w,N,R){let M=[],P=0;for(let T of B){let E=K.createAccessorDef(T);E.bufferView=$.bufferViews.length;let x=T.getArray(),_=n0.pad(n0.toView(x));E.byteOffset=P,P+=_.byteLength,M.push(_),K.accessorIndexMap.set(T,$.accessors.length),$.accessors.push(E)}let j=n0.concat(M),C={buffer:w,byteOffset:N,byteLength:j.byteLength};if(R)C.target=R;return $.bufferViews.push(C),{buffers:M,byteLength:P}}function z(B,w,N){let R=B[0].getCount(),M=0;for(let E of B){let x=K.createAccessorDef(E);x.bufferView=$.bufferViews.length,x.byteOffset=M;let _=E.getElementSize(),h=E.getComponentSize();M+=n0.padNumber(_*h),K.accessorIndexMap.set(E,$.accessors.length),$.accessors.push(x)}let P=R*M,j=new ArrayBuffer(P),C=new DataView(j);for(let E=0;E<R;E++){let x=0;for(let _ of B){let h=_.getElementSize(),k=_.getComponentSize(),v=_.getComponentType(),A=_.getArray();for(let p=0;p<h;p++){let n=E*M+x+p*k,o=A[E*h+p];switch(v){case k0.ComponentType.FLOAT:C.setFloat32(n,o,!0);break;case k0.ComponentType.BYTE:C.setInt8(n,o);break;case k0.ComponentType.SHORT:C.setInt16(n,o,!0);break;case k0.ComponentType.UNSIGNED_BYTE:C.setUint8(n,o);break;case k0.ComponentType.UNSIGNED_SHORT:C.setUint16(n,o,!0);break;case k0.ComponentType.UNSIGNED_INT:C.setUint32(n,o,!0);break;default:throw new Error("Unexpected component type: "+v)}}x+=n0.padNumber(h*k)}}let T={buffer:w,byteOffset:N,byteLength:P,byteStride:M,target:EJ.BufferViewTarget.ARRAY_BUFFER};return $.bufferViews.push(T),{byteLength:P,buffers:[new Uint8Array(j)]}}function q(B,w,N){let R=[],M=0,P=new Map,j=-1/0,C=!1;for(let v of B){let A=K.createAccessorDef(v);$.accessors.push(A),K.accessorIndexMap.set(v,$.accessors.length-1);let p=[],n=[],o=[],X0=new Array(v.getElementSize()).fill(0);for(let a0=0,E8=v.getCount();a0<E8;a0++){if(v.getElement(a0,o),c0.eq(o,X0,0))continue;j=Math.max(a0,j),p.push(a0);for(let n1=0;n1<o.length;n1++)n.push(o[n1])}let Q0=p.length,E0={accessorDef:A,count:Q0};if(P.set(v,E0),Q0===0)continue;if(Q0>v.getCount()/2)C=!0;let I0=kJ[v.getComponentType()];E0.indices=p,E0.values=new I0(n)}if(!Number.isFinite(j))return{buffers:R,byteLength:M};if(C)W.warn("Some sparse accessors have >50% non-zero elements, which may increase file size.");let T=j<255?Uint8Array:j<65535?Uint16Array:Uint32Array,E=j<255?gB1:j<65535?bB1:yB1,x={buffer:w,byteOffset:N+M,byteLength:0};for(let v of B){let A=P.get(v);if(A.count===0)continue;A.indicesByteOffset=x.byteLength;let p=n0.pad(n0.toView(new T(A.indices)));R.push(p),M+=p.byteLength,x.byteLength+=p.byteLength}$.bufferViews.push(x);let _=$.bufferViews.length-1,h={buffer:w,byteOffset:N+M,byteLength:0};for(let v of B){let A=P.get(v);if(A.count===0)continue;A.valuesByteOffset=h.byteLength;let p=n0.pad(n0.toView(A.values));R.push(p),M+=p.byteLength,h.byteLength+=p.byteLength}$.bufferViews.push(h);let k=$.bufferViews.length-1;for(let v of B){let A=P.get(v);if(A.count===0)continue;A.accessorDef.sparse={count:A.count,indices:{bufferView:_,byteOffset:A.indicesByteOffset,componentType:E},values:{bufferView:k,byteOffset:A.valuesByteOffset}}}return{buffers:R,byteLength:M}}if($.accessors=[],$.bufferViews=[],$.samplers=[],$.textures=[],$.images=Y.listTextures().map((B,w)=>{let N=K.createPropertyDef(B);if(B.getMimeType())N.mimeType=B.getMimeType();let R=B.getImage();if(R)K.createImageData(N,R,B);return K.imageIndexMap.set(B,w),N}),H.filter((B)=>B.prewriteTypes.includes(a.ACCESSOR)).forEach((B)=>B.prewrite(K,a.ACCESSOR)),Y.listAccessors().forEach((B)=>{let{accessorUsageGroupedByParent:w,accessorParents:N}=K;if(K.accessorIndexMap.has(B))return;let R=K.getAccessorUsage(B);if(K.addAccessorToUsageGroup(B,R),w.has(R)){let M=X.listParents(B).find((P)=>P.propertyType!==a.ROOT);N.set(B,M)}}),H.filter((B)=>B.prewriteTypes.includes(a.BUFFER)).forEach((B)=>B.prewrite(K,a.BUFFER)),(Y.listAccessors().length>0||K.otherBufferViews.size>0||Y.listTextures().length>0&&J.format===BZ.GLB)&&Y.listBuffers().length===0)throw new Error("Buffer required for Document resources, but none was found.");if($.buffers=[],Y.listBuffers().forEach((B,w)=>{let N=K.createPropertyDef(B),R=K.accessorUsageGroupedByParent,M=B.listParents().filter((h)=>h instanceof k0),P=new Set(M.map((h)=>K.accessorParents.get(h))),j=new Map(Array.from(P).map((h,k)=>[h,k])),C={};for(let h of M){var T;if(K.accessorIndexMap.has(h))continue;let k=K.getAccessorUsage(h),v=k;if(R.has(k)){let A=K.accessorParents.get(h);v+=`:${j.get(A)}`}C[T=v]||(C[T]={usage:k,accessors:[]}),C[v].accessors.push(h)}let E=[],x=$.buffers.length,_=0;for(let{usage:h,accessors:k}of Object.values(C))if(h===nL.ARRAY_BUFFER&&J.vertexLayout===oL.INTERLEAVED){let v=z(k,x,_);_+=v.byteLength;for(let A of v.buffers)E.push(A)}else if(h===nL.ARRAY_BUFFER)for(let v of k){let A=z([v],x,_);_+=A.byteLength;for(let p of A.buffers)E.push(p)}else if(h===nL.SPARSE){let v=q(k,x,_);_+=v.byteLength;for(let A of v.buffers)E.push(A)}else if(h===nL.ELEMENT_ARRAY_BUFFER){let v=EJ.BufferViewTarget.ELEMENT_ARRAY_BUFFER,A=F(k,x,_,v);_+=A.byteLength;for(let p of A.buffers)E.push(p)}else{let v=F(k,x,_);_+=v.byteLength;for(let A of v.buffers)E.push(A)}if(K.imageBufferViews.length&&w===0){for(let h=0;h<K.imageBufferViews.length;h++)if($.bufferViews[$.images[h].bufferView].byteOffset=_,_+=K.imageBufferViews[h].byteLength,E.push(K.imageBufferViews[h]),_%8){let k=8-_%8;_+=k,E.push(new Uint8Array(k))}}if(K.otherBufferViews.has(B))for(let h of K.otherBufferViews.get(B))$.bufferViews.push({buffer:x,byteOffset:_,byteLength:h.byteLength}),K.otherBufferViewsIndexMap.set(h,$.bufferViews.length-1),_+=h.byteLength,E.push(h);if(_){let h;if(J.format===BZ.GLB)h=sL;else h=K.bufferURIGenerator.createURI(B,"bin"),N.uri=h;N.byteLength=_,K.assignResourceURI(h,n0.concat(E),!0)}$.buffers.push(N),K.bufferIndexMap.set(B,w)}),Y.listAccessors().find((B)=>!B.getBuffer()))W.warn("Skipped writing one or more Accessors: no Buffer assigned.");H.filter((B)=>B.prewriteTypes.includes(a.MATERIAL)).forEach((B)=>B.prewrite(K,a.MATERIAL)),$.materials=Y.listMaterials().map((B,w)=>{let N=K.createPropertyDef(B);if(B.getAlphaMode()!==H7.AlphaMode.OPAQUE)N.alphaMode=B.getAlphaMode();if(B.getAlphaMode()===H7.AlphaMode.MASK)N.alphaCutoff=B.getAlphaCutoff();if(B.getDoubleSided())N.doubleSided=!0;if(N.pbrMetallicRoughness={},!c0.eq(B.getBaseColorFactor(),[1,1,1,1]))N.pbrMetallicRoughness.baseColorFactor=B.getBaseColorFactor();if(!c0.eq(B.getEmissiveFactor(),[0,0,0]))N.emissiveFactor=B.getEmissiveFactor();if(B.getRoughnessFactor()!==1)N.pbrMetallicRoughness.roughnessFactor=B.getRoughnessFactor();if(B.getMetallicFactor()!==1)N.pbrMetallicRoughness.metallicFactor=B.getMetallicFactor();if(B.getBaseColorTexture()){let R=B.getBaseColorTexture(),M=B.getBaseColorTextureInfo();N.pbrMetallicRoughness.baseColorTexture=K.createTextureInfoDef(R,M)}if(B.getEmissiveTexture()){let R=B.getEmissiveTexture(),M=B.getEmissiveTextureInfo();N.emissiveTexture=K.createTextureInfoDef(R,M)}if(B.getNormalTexture()){let R=B.getNormalTexture(),M=B.getNormalTextureInfo(),P=K.createTextureInfoDef(R,M);if(B.getNormalScale()!==1)P.scale=B.getNormalScale();N.normalTexture=P}if(B.getOcclusionTexture()){let R=B.getOcclusionTexture(),M=B.getOcclusionTextureInfo(),P=K.createTextureInfoDef(R,M);if(B.getOcclusionStrength()!==1)P.strength=B.getOcclusionStrength();N.occlusionTexture=P}if(B.getMetallicRoughnessTexture()){let R=B.getMetallicRoughnessTexture(),M=B.getMetallicRoughnessTextureInfo();N.pbrMetallicRoughness.metallicRoughnessTexture=K.createTextureInfoDef(R,M)}return K.materialIndexMap.set(B,w),N}),H.filter((B)=>B.prewriteTypes.includes(a.MESH)).forEach((B)=>B.prewrite(K,a.MESH)),$.meshes=Y.listMeshes().map((B,w)=>{let N=K.createPropertyDef(B),R=null;if(N.primitives=B.listPrimitives().map((M)=>{let P={attributes:{}};P.mode=M.getMode();let j=M.getMaterial();if(j)P.material=K.materialIndexMap.get(j);if(Object.keys(M.getExtras()).length)P.extras=M.getExtras();let C=M.getIndices();if(C)P.indices=K.accessorIndexMap.get(C);for(let T of M.listSemantics())P.attributes[T]=K.accessorIndexMap.get(M.getAttribute(T));for(let T of M.listTargets()){let E={};for(let x of T.listSemantics())E[x]=K.accessorIndexMap.get(T.getAttribute(x));P.targets=P.targets||[],P.targets.push(E)}if(M.listTargets().length&&!R)R=M.listTargets().map((T)=>T.getName());return P}),B.getWeights().length)N.weights=B.getWeights();if(R)N.extras=N.extras||{},N.extras.targetNames=R;return K.meshIndexMap.set(B,w),N}),$.cameras=Y.listCameras().map((B,w)=>{let N=K.createPropertyDef(B);if(N.type=B.getType(),N.type===RY.Type.PERSPECTIVE){N.perspective={znear:B.getZNear(),zfar:B.getZFar(),yfov:B.getYFov()};let R=B.getAspectRatio();if(R!==null)N.perspective.aspectRatio=R}else N.orthographic={znear:B.getZNear(),zfar:B.getZFar(),xmag:B.getXMag(),ymag:B.getYMag()};return K.cameraIndexMap.set(B,w),N}),$.nodes=Y.listNodes().map((B,w)=>{let N=K.createPropertyDef(B);if(!c0.eq(B.getTranslation(),[0,0,0]))N.translation=B.getTranslation();if(!c0.eq(B.getRotation(),[0,0,0,1]))N.rotation=B.getRotation();if(!c0.eq(B.getScale(),[1,1,1]))N.scale=B.getScale();if(B.getWeights().length)N.weights=B.getWeights();return K.nodeIndexMap.set(B,w),N}),$.skins=Y.listSkins().map((B,w)=>{let N=K.createPropertyDef(B),R=B.getInverseBindMatrices();if(R)N.inverseBindMatrices=K.accessorIndexMap.get(R);let M=B.getSkeleton();if(M)N.skeleton=K.nodeIndexMap.get(M);return N.joints=B.listJoints().map((P)=>K.nodeIndexMap.get(P)),K.skinIndexMap.set(B,w),N}),Y.listNodes().forEach((B,w)=>{let N=$.nodes[w],R=B.getMesh();if(R)N.mesh=K.meshIndexMap.get(R);let M=B.getCamera();if(M)N.camera=K.cameraIndexMap.get(M);let P=B.getSkin();if(P)N.skin=K.skinIndexMap.get(P);if(B.listChildren().length>0)N.children=B.listChildren().map((j)=>K.nodeIndexMap.get(j))}),$.animations=Y.listAnimations().map((B,w)=>{let N=K.createPropertyDef(B),R=new Map;return N.samplers=B.listSamplers().map((M,P)=>{let j=K.createPropertyDef(M);return j.input=K.accessorIndexMap.get(M.getInput()),j.output=K.accessorIndexMap.get(M.getOutput()),j.interpolation=M.getInterpolation(),R.set(M,P),j}),N.channels=B.listChannels().map((M)=>{let P=K.createPropertyDef(M);return P.sampler=R.get(M.getSampler()),P.target={node:K.nodeIndexMap.get(M.getTargetNode()),path:M.getTargetPath()},P}),K.animationIndexMap.set(B,w),N}),$.scenes=Y.listScenes().map((B,w)=>{let N=K.createPropertyDef(B);return N.nodes=B.listChildren().map((R)=>K.nodeIndexMap.get(R)),K.sceneIndexMap.set(B,w),N});let L=Y.getDefaultScene();if(L)$.scene=Y.listScenes().indexOf(L);return $.extensionsUsed=H.map((B)=>B.extensionName),$.extensionsRequired=V.map((B)=>B.extensionName),H.forEach((B)=>B.write(K)),uB1($),Q}}function uB1(Z){let J=[];for(let X in Z){let Y=Z[X];if(Array.isArray(Y)&&Y.length===0)J.push(X);else if(Y===null||Y==="")J.push(X);else if(Y&&typeof Y==="object"&&Object.keys(Y).length===0)J.push(X)}for(let X of J)delete Z[X]}var eL;(function(Z){Z[Z.JSON=1313821514]="JSON",Z[Z.BIN=5130562]="BIN"})(eL||(eL={}));class Bp{constructor(){this._logger=D5.DEFAULT_INSTANCE,this._extensions=new Set,this._dependencies={},this._vertexLayout=oL.INTERLEAVED,this.lastReadBytes=0,this.lastWriteBytes=0}setLogger(Z){return this._logger=Z,this}registerExtensions(Z){for(let J of Z)this._extensions.add(J),J.register();return this}registerDependencies(Z){return Object.assign(this._dependencies,Z),this}setVertexLayout(Z){return this._vertexLayout=Z,this}async read(Z){return await this.readJSON(await this.readAsJSON(Z))}async readAsJSON(Z){let J=await this.readURI(Z,"view");this.lastReadBytes=J.byteLength;let X=Qp(J)?this._binaryToJSON(J):{json:JSON.parse(n0.decodeText(J)),resources:{}};return await this._readResourcesExternal(X,this.dirname(Z)),this._readResourcesInternal(X),X}async readJSON(Z){return Z=this._copyJSON(Z),this._readResourcesInternal(Z),Up.read(Z,{extensions:Array.from(this._extensions),dependencies:this._dependencies,logger:this._logger})}async binaryToJSON(Z){let J=this._binaryToJSON(n0.assertView(Z));this._readResourcesInternal(J);let X=J.json;if(X.buffers&&X.buffers.some((Y)=>dB1(J,Y)))throw new Error("Cannot resolve external buffers with binaryToJSON().");else if(X.images&&X.images.some((Y)=>cB1(J,Y)))throw new Error("Cannot resolve external images with binaryToJSON().");return J}async readBinary(Z){return this.readJSON(await this.binaryToJSON(n0.assertView(Z)))}async writeJSON(Z,J={}){if(J.format===BZ.GLB&&Z.getRoot().listBuffers().length>1)throw new Error("GLB must have 0–1 buffers.");return Lp.write(Z,{format:J.format||BZ.GLTF,basename:J.basename||"",logger:this._logger,vertexLayout:this._vertexLayout,dependencies:n6({},this._dependencies),extensions:Array.from(this._extensions)})}async writeBinary(Z){let{json:J,resources:X}=await this.writeJSON(Z,{format:BZ.GLB}),Y=new Uint32Array([1179937895,2,12]),$=JSON.stringify(J),Q=n0.pad(n0.encodeText($),32),K=n0.toView(new Uint32Array([Q.byteLength,1313821514])),W=n0.concat([K,Q]);Y[Y.length-1]+=W.byteLength;let G=Object.values(X)[0];if(!G||!G.byteLength)return n0.concat([n0.toView(Y),W]);let H=n0.pad(G,0),V=n0.toView(new Uint32Array([H.byteLength,5130562])),F=n0.concat([V,H]);return Y[Y.length-1]+=F.byteLength,n0.concat([n0.toView(Y),W,F])}async _readResourcesExternal(Z,J){var X=this;let Y=Z.json.images||[],$=Z.json.buffers||[],Q=[...Y,...$].map(async function(K){let W=K.uri;if(!W||W.match(/data:/))return Promise.resolve();Z.resources[W]=await X.readURI(X.resolve(J,W),"view"),X.lastReadBytes+=Z.resources[W].byteLength});await Promise.all(Q)}_readResourcesInternal(Z){function J($){if(!$.uri)return;if($.uri in Z.resources){n0.assertView(Z.resources[$.uri]);return}if($.uri.match(/data:/)){let Q=`__${zp()}.${OZ.extension($.uri)}`;Z.resources[Q]=n0.createBufferFromDataURI($.uri),$.uri=Q}}(Z.json.images||[]).forEach(($)=>{if($.bufferView===void 0&&$.uri===void 0)throw new Error("Missing resource URI or buffer view.");J($)}),(Z.json.buffers||[]).forEach(J)}_copyJSON(Z){let{images:J,buffers:X}=Z.json;if(Z={json:n6({},Z.json),resources:n6({},Z.resources)},J)Z.json.images=J.map((Y)=>n6({},Y));if(X)Z.json.buffers=X.map((Y)=>n6({},Y));return Z}_binaryToJSON(Z){if(!Qp(Z))throw new Error("Invalid glTF 2.0 binary.");let J=new Uint32Array(Z.buffer,Z.byteOffset+12,2);if(J[1]!==eL.JSON)throw new Error("Missing required GLB JSON chunk.");let X=20,Y=J[0],$=n0.decodeText(n0.toView(Z,X,Y)),Q=JSON.parse($),K=X+Y;if(Z.byteLength<=K)return{json:Q,resources:{}};let W=new Uint32Array(Z.buffer,Z.byteOffset+K,2);if(W[1]!==eL.BIN)return{json:Q,resources:{}};let G=W[0],H=n0.toView(Z,K+8,G);return{json:Q,resources:{[sL]:H}}}}function dB1(Z,J){return J.uri!==void 0&&!(J.uri in Z.resources)}function cB1(Z,J){return J.uri!==void 0&&!(J.uri in Z.resources)&&J.bufferView===void 0}function Qp(Z){if(Z.byteLength<3*Uint32Array.BYTES_PER_ELEMENT)return!1;let J=new Uint32Array(Z.buffer,Z.byteOffset,3);return J[0]===1179937895&&J[1]===2}class _P extends Bp{constructor(Z=null,J=I9.DEFAULT_INIT){super();this._fetch=void 0,this._fetchConfig=void 0,this._init=void 0,this._fetchEnabled=!1,this._fetch=Z,this._fetchConfig=J,this._init=this.init()}async init(){if(this._init)return this._init;return Promise.all([import("fs"),import("path")]).then(([Z,J])=>{this._fs=Z.promises,this._path=J})}setAllowNetwork(Z){if(Z&&!this._fetch)throw new Error("NodeIO requires a Fetch API implementation for HTTP requests.");return this._fetchEnabled=Z,this}async readURI(Z,J){if(await this.init(),I9.isAbsoluteURL(Z)){if(!this._fetchEnabled||!this._fetch)throw new Error("Network request blocked. Allow HTTP requests explicitly, if needed.");let X=await this._fetch(Z,this._fetchConfig);switch(J){case"view":return new Uint8Array(await X.arrayBuffer());case"text":return X.text()}}else switch(J){case"view":return this._fs.readFile(Z);case"text":return this._fs.readFile(Z,"utf8")}}resolve(Z,J){if(I9.isAbsoluteURL(Z)||I9.isAbsoluteURL(J))return I9.resolve(Z,J);return this._path.resolve(Z,decodeURIComponent(J))}dirname(Z){if(I9.isAbsoluteURL(Z))return I9.dirname(Z);return this._path.dirname(Z)}async write(Z,J){await this.init(),await(!!Z.match(/\.glb$/)?this._writeGLB(Z,J):this._writeGLTF(Z,J))}async _writeGLTF(Z,J){var X=this;this.lastWriteBytes=0;let{json:Y,resources:$}=await this.writeJSON(J,{format:BZ.GLTF,basename:OZ.basename(Z)}),{_fs:Q,_path:K}=this,W=K.dirname(Z),G=JSON.stringify(Y,null,2);await Q.writeFile(Z,G),this.lastWriteBytes+=G.length;for(let H of lB1(Object.keys($),10))await Promise.all(H.map(async function(V){if(I9.isAbsoluteURL(V)){if(I9.extension(V)==="bin")throw new Error(`Cannot write buffer to path "${V}".`);return}let F=K.join(W,decodeURIComponent(V));await Q.mkdir(K.dirname(F),{recursive:!0}),await Q.writeFile(F,$[V]),X.lastWriteBytes+=$[V].byteLength}))}async _writeGLB(Z,J){let X=await this.writeBinary(J);await this._fs.writeFile(Z,X),this.lastWriteBytes=X.byteLength}}function lB1(Z,J){let X=[];for(let Y=0,$=Z.length;Y<$;Y+=J){let Q=[];for(let K=0;K<J&&Y+K<$;K++)Q.push(Z[Y+K]);X.push(Q)}return X}var qa=r(SP(),1),Ua=r(on(),1),hR1=r(Fa(),1);async function fR1(Z,J){if(!(Z instanceof Uint8Array))throw new Error("[ndarray-pixels] Input must be Uint8Array or Buffer.");let{data:X,info:Y}=await Ua.default(Z).ensureAlpha().raw().toBuffer({resolveWithObject:!0});return qa.default(new Uint8Array(X),[Y.width,Y.height,4],[4,4*Y.width|0,1],0)}async function La(Z,J){return fR1(Z)}var yR1="v4.1.3",VC="@glb.bin",s;(function(Z){Z.ACCESSOR="Accessor",Z.ANIMATION="Animation",Z.ANIMATION_CHANNEL="AnimationChannel",Z.ANIMATION_SAMPLER="AnimationSampler",Z.BUFFER="Buffer",Z.CAMERA="Camera",Z.MATERIAL="Material",Z.MESH="Mesh",Z.PRIMITIVE="Primitive",Z.PRIMITIVE_TARGET="PrimitiveTarget",Z.NODE="Node",Z.ROOT="Root",Z.SCENE="Scene",Z.SKIN="Skin",Z.TEXTURE="Texture",Z.TEXTURE_INFO="TextureInfo"})(s||(s={}));var Ba;(function(Z){Z.INTERLEAVED="interleaved",Z.SEPARATE="separate"})(Ba||(Ba={}));var s5;(function(Z){Z.ARRAY_BUFFER="ARRAY_BUFFER",Z.ELEMENT_ARRAY_BUFFER="ELEMENT_ARRAY_BUFFER",Z.INVERSE_BIND_MATRICES="INVERSE_BIND_MATRICES",Z.OTHER="OTHER",Z.SPARSE="SPARSE"})(s5||(s5={}));var o5;(function(Z){Z[Z.R=4096]="R",Z[Z.G=256]="G",Z[Z.B=16]="B",Z[Z.A=1]="A"})(o5||(o5={}));var $C;(function(Z){Z.GLTF="GLTF",Z.GLB="GLB"})($C||($C={}));var QC=typeof Float32Array!=="undefined"?Float32Array:Array;if(!Math.hypot)Math.hypot=function(){var Z=0,J=arguments.length;while(J--)Z+=arguments[J]*arguments[J];return Math.sqrt(Z)};function bR1(){var Z=new QC(3);if(QC!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0;return Z}function YC(Z){var J=Z[0],X=Z[1],Y=Z[2];return Math.hypot(J,X,Y)}function gR1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=X[3]*Y+X[7]*$+X[11]*Q+X[15];return K=K||1,Z[0]=(X[0]*Y+X[4]*$+X[8]*Q+X[12])/K,Z[1]=(X[1]*Y+X[5]*$+X[9]*Q+X[13])/K,Z[2]=(X[2]*Y+X[6]*$+X[10]*Q+X[14])/K,Z}(function(){var Z=bR1();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=3;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2];return J}})();function Ra(Z){let J=Ma(),X=Z.propertyType===s.NODE?[Z]:Z.listChildren();for(let Y of X)Y.traverse(($)=>{let Q=$.getMesh();if(!Q)return;let K=mR1(Q,$.getWorldMatrix());if(K.min.every(isFinite)&&K.max.every(isFinite))KC(K.min,J),KC(K.max,J)});return J}function mR1(Z,J){let X=Ma();for(let Y of Z.listPrimitives()){let $=Y.getAttribute("POSITION"),Q=Y.getIndices();if(!$)continue;let K=[0,0,0],W=[0,0,0];for(let G=0,H=Q?Q.getCount():$.getCount();G<H;G++){let V=Q?Q.getScalar(G):G;K=$.getElement(V,K),W=gR1(W,K,J),KC(W,X)}}return X}function KC(Z,J){for(let X=0;X<3;X++)J.min[X]=Math.min(Z[X],J.min[X]),J.max[X]=Math.max(Z[X],J.max[X])}function Ma(){return{min:[1/0,1/0,1/0],max:[-1/0,-1/0,-1/0]}}class v6{static createBufferFromDataURI(Z){if(typeof Buffer==="undefined"){let J=atob(Z.split(",")[1]),X=new Uint8Array(J.length);for(let Y=0;Y<J.length;Y++)X[Y]=J.charCodeAt(Y);return X}else{let J=Z.split(",")[1],X=Z.indexOf("base64")>=0;return Buffer.from(J,X?"base64":"utf8")}}static encodeText(Z){return new TextEncoder().encode(Z)}static decodeText(Z){return new TextDecoder().decode(Z)}static concat(Z){let J=0;for(let $ of Z)J+=$.byteLength;let X=new Uint8Array(J),Y=0;for(let $ of Z)X.set($,Y),Y+=$.byteLength;return X}static pad(Z,J=0){let X=this.padNumber(Z.byteLength);if(X===Z.byteLength)return Z;let Y=new Uint8Array(X);if(Y.set(Z),J!==0)for(let $=Z.byteLength;$<X;$++)Y[$]=J;return Y}static padNumber(Z){return Math.ceil(Z/4)*4}static equals(Z,J){if(Z===J)return!0;if(Z.byteLength!==J.byteLength)return!1;let X=Z.byteLength;while(X--)if(Z[X]!==J[X])return!1;return!0}static toView(Z,J=0,X=1/0){return new Uint8Array(Z.buffer,Z.byteOffset+J,Math.min(Z.byteLength,X))}static assertView(Z){if(Z&&!ArrayBuffer.isView(Z))throw new Error(`Method requires Uint8Array parameter; received "${typeof Z}".`);return Z}}class ja{match(Z){return Z.length>=3&&Z[0]===255&&Z[1]===216&&Z[2]===255}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset+4),X,Y;while(J.byteLength){if(X=J.getUint16(0,!1),uR1(J,X),Y=J.getUint8(X+1),Y===192||Y===193||Y===194)return[J.getUint16(X+7,!1),J.getUint16(X+5,!1)];J=new DataView(Z.buffer,J.byteOffset+X+2)}throw new TypeError("Invalid JPG, no size found")}getChannels(Z){return 3}}class _B{match(Z){return Z.length>=8&&Z[0]===137&&Z[1]===80&&Z[2]===78&&Z[3]===71&&Z[4]===13&&Z[5]===10&&Z[6]===26&&Z[7]===10}getSize(Z){let J=new DataView(Z.buffer,Z.byteOffset);if(v6.decodeText(Z.slice(12,16))===_B.PNG_FRIED_CHUNK_NAME)return[J.getUint32(32,!1),J.getUint32(36,!1)];return[J.getUint32(16,!1),J.getUint32(20,!1)]}getChannels(Z){return 4}}_B.PNG_FRIED_CHUNK_NAME="CgBI";class M4{static registerFormat(Z,J){this.impls[Z]=J}static getMimeType(Z){for(let J in this.impls)if(this.impls[J].match(Z))return J;return null}static getSize(Z,J){if(!this.impls[J])return null;return this.impls[J].getSize(Z)}static getChannels(Z,J){if(!this.impls[J])return null;return this.impls[J].getChannels(Z)}static getVRAMByteLength(Z,J){if(!this.impls[J])return null;if(this.impls[J].getVRAMByteLength)return this.impls[J].getVRAMByteLength(Z);let X=0,Y=4,$=this.getSize(Z,J);if(!$)return null;while($[0]>1||$[1]>1)X+=$[0]*$[1]*Y,$[0]=Math.max(Math.floor($[0]/2),1),$[1]=Math.max(Math.floor($[1]/2),1);return X+=1*Y,X}static mimeTypeToExtension(Z){if(Z==="image/jpeg")return"jpg";return Z.split("/").pop()}static extensionToMimeType(Z){if(Z==="jpg")return"image/jpeg";if(!Z)return"";return`image/${Z}`}}M4.impls={"image/jpeg":new ja,"image/png":new _B};function uR1(Z,J){if(J>Z.byteLength)throw new TypeError("Corrupt JPG, exceeded buffer limits");if(Z.getUint8(J)!==255)throw new TypeError("Invalid JPG, marker table corrupted");return Z}class FH{static basename(Z){let J=Z.split(/[\\/]/).pop();return J.substring(0,J.lastIndexOf("."))}static extension(Z){if(Z.startsWith("data:image/")){let J=Z.match(/data:(image\/\w+)/)[1];return M4.mimeTypeToExtension(J)}else if(Z.startsWith("data:model/gltf+json"))return"gltf";else if(Z.startsWith("data:model/gltf-binary"))return"glb";else if(Z.startsWith("data:application/"))return"bin";return Z.split(/[\\/]/).pop().split(/[.]/).pop()}}function wa(Z){return Object.prototype.toString.call(Z)==="[object Object]"}function TY(Z){if(wa(Z)===!1)return!1;let J=Z.constructor;if(J===void 0)return!0;let X=J.prototype;if(wa(X)===!1)return!1;if(Object.prototype.hasOwnProperty.call(X,"isPrototypeOf")===!1)return!1;return!0}var WC,GC;(function(Z){Z[Z.SILENT=4]="SILENT",Z[Z.ERROR=3]="ERROR",Z[Z.WARN=2]="WARN",Z[Z.INFO=1]="INFO",Z[Z.DEBUG=0]="DEBUG"})(GC||(GC={}));class L7{constructor(Z){this.verbosity=void 0,this.verbosity=Z}debug(Z){if(this.verbosity<=L7.Verbosity.DEBUG)console.debug(Z)}info(Z){if(this.verbosity<=L7.Verbosity.INFO)console.info(Z)}warn(Z){if(this.verbosity<=L7.Verbosity.WARN)console.warn(Z)}error(Z){if(this.verbosity<=L7.Verbosity.ERROR)console.error(Z)}}WC=L7;L7.Verbosity=GC;L7.DEFAULT_INSTANCE=new WC(WC.Verbosity.INFO);function dR1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3],Q=Z[4],K=Z[5],W=Z[6],G=Z[7],H=Z[8],V=Z[9],F=Z[10],z=Z[11],q=Z[12],U=Z[13],L=Z[14],B=Z[15],w=J*K-X*Q,N=J*W-Y*Q,R=J*G-$*Q,M=X*W-Y*K,P=X*G-$*K,j=Y*G-$*W,C=H*U-V*q,T=H*L-F*q,E=H*B-z*q,x=V*L-F*U,_=V*B-z*U,h=F*B-z*L;return w*h-N*_+R*x+M*E-P*T+j*C}function cR1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=J[3],W=J[4],G=J[5],H=J[6],V=J[7],F=J[8],z=J[9],q=J[10],U=J[11],L=J[12],B=J[13],w=J[14],N=J[15],R=X[0],M=X[1],P=X[2],j=X[3];return Z[0]=R*Y+M*W+P*F+j*L,Z[1]=R*$+M*G+P*z+j*B,Z[2]=R*Q+M*H+P*q+j*w,Z[3]=R*K+M*V+P*U+j*N,R=X[4],M=X[5],P=X[6],j=X[7],Z[4]=R*Y+M*W+P*F+j*L,Z[5]=R*$+M*G+P*z+j*B,Z[6]=R*Q+M*H+P*q+j*w,Z[7]=R*K+M*V+P*U+j*N,R=X[8],M=X[9],P=X[10],j=X[11],Z[8]=R*Y+M*W+P*F+j*L,Z[9]=R*$+M*G+P*z+j*B,Z[10]=R*Q+M*H+P*q+j*w,Z[11]=R*K+M*V+P*U+j*N,R=X[12],M=X[13],P=X[14],j=X[15],Z[12]=R*Y+M*W+P*F+j*L,Z[13]=R*$+M*G+P*z+j*B,Z[14]=R*Q+M*H+P*q+j*w,Z[15]=R*K+M*V+P*U+j*N,Z}function lR1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[4],K=J[5],W=J[6],G=J[8],H=J[9],V=J[10];return Z[0]=Math.hypot(X,Y,$),Z[1]=Math.hypot(Q,K,W),Z[2]=Math.hypot(G,H,V),Z}function pR1(Z,J){var X=new QC(3);lR1(X,J);var Y=1/X[0],$=1/X[1],Q=1/X[2],K=J[0]*Y,W=J[1]*$,G=J[2]*Q,H=J[4]*Y,V=J[5]*$,F=J[6]*Q,z=J[8]*Y,q=J[9]*$,U=J[10]*Q,L=K+V+U,B=0;if(L>0)B=Math.sqrt(L+1)*2,Z[3]=0.25*B,Z[0]=(F-q)/B,Z[1]=(z-G)/B,Z[2]=(W-H)/B;else if(K>V&&K>U)B=Math.sqrt(1+K-V-U)*2,Z[3]=(F-q)/B,Z[0]=0.25*B,Z[1]=(W+H)/B,Z[2]=(z+G)/B;else if(V>U)B=Math.sqrt(1+V-K-U)*2,Z[3]=(z-G)/B,Z[0]=(W+H)/B,Z[1]=0.25*B,Z[2]=(F+q)/B;else B=Math.sqrt(1+U-K-V)*2,Z[3]=(W-H)/B,Z[0]=(z+G)/B,Z[1]=(F+q)/B,Z[2]=0.25*B;return Z}class K8{static identity(Z){return Z}static eq(Z,J,X=0.00001){if(Z.length!==J.length)return!1;for(let Y=0;Y<Z.length;Y++)if(Math.abs(Z[Y]-J[Y])>X)return!1;return!0}static clamp(Z,J,X){if(Z<J)return J;if(Z>X)return X;return Z}static decodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Z/65535;case 5121:return Z/255;case 5122:return Math.max(Z/32767,-1);case 5120:return Math.max(Z/127,-1);default:throw new Error("Invalid component type.")}}static encodeNormalizedInt(Z,J){switch(J){case 5126:return Z;case 5123:return Math.round(K8.clamp(Z,0,1)*65535);case 5121:return Math.round(K8.clamp(Z,0,1)*255);case 5122:return Math.round(K8.clamp(Z,-1,1)*32767);case 5120:return Math.round(K8.clamp(Z,-1,1)*127);default:throw new Error("Invalid component type.")}}static decompose(Z,J,X,Y){let $=YC([Z[0],Z[1],Z[2]]),Q=YC([Z[4],Z[5],Z[6]]),K=YC([Z[8],Z[9],Z[10]]);if(dR1(Z)<0)$=-$;J[0]=Z[12],J[1]=Z[13],J[2]=Z[14];let G=Z.slice(),H=1/$,V=1/Q,F=1/K;G[0]*=H,G[1]*=H,G[2]*=H,G[4]*=V,G[5]*=V,G[6]*=V,G[8]*=F,G[9]*=F,G[10]*=F,pR1(X,G),Y[0]=$,Y[1]=Q,Y[2]=K}static compose(Z,J,X,Y){let $=Y,Q=J[0],K=J[1],W=J[2],G=J[3],H=Q+Q,V=K+K,F=W+W,z=Q*H,q=Q*V,U=Q*F,L=K*V,B=K*F,w=W*F,N=G*H,R=G*V,M=G*F,P=X[0],j=X[1],C=X[2];return $[0]=(1-(L+w))*P,$[1]=(q+M)*P,$[2]=(U-R)*P,$[3]=0,$[4]=(q-M)*j,$[5]=(1-(z+w))*j,$[6]=(B+N)*j,$[7]=0,$[8]=(U+R)*C,$[9]=(B-N)*C,$[10]=(1-(z+L))*C,$[11]=0,$[12]=Z[0],$[13]=Z[1],$[14]=Z[2],$[15]=1,$}}function iR1(Z,J){if(!!Z!==!!J)return!1;let X=Z.getChild(),Y=J.getChild();return X===Y||X.equals(Y)}function nR1(Z,J){if(!!Z!==!!J)return!1;let X=Z.values(),Y=J.values();if(X.length!==Y.length)return!1;for(let $=0;$<X.length;$++){let Q=X[$],K=Y[$];if(Q.getChild()===K.getChild())continue;if(!Q.getChild().equals(K.getChild()))return!1}return!0}function aR1(Z,J){if(!!Z!==!!J)return!1;let X=Z.keys(),Y=J.keys();if(X.length!==Y.length)return!1;for(let $ of X){let Q=Z.get($),K=J.get($);if(!!Q!==!!K)return!1;let W=Q.getChild(),G=K.getChild();if(W===G)continue;if(!W.equals(G))return!1}return!0}function Da(Z,J){if(Z===J)return!0;if(!!Z!==!!J||!Z||!J)return!1;if(Z.length!==J.length)return!1;for(let X=0;X<Z.length;X++)if(Z[X]!==J[X])return!1;return!0}function Pa(Z,J){if(Z===J)return!0;if(!!Z!==!!J)return!1;if(!TY(Z)||!TY(J))return Z===J;let X=Z,Y=J,$=0,Q=0,K;for(K in X)$++;for(K in Y)Q++;if($!==Q)return!1;for(K in X){let W=X[K],G=Y[K];if(IB(W)&&IB(G)){if(!Da(W,G))return!1}else if(TY(W)&&TY(G)){if(!Pa(W,G))return!1}else if(W!==G)return!1}return!0}function IB(Z){return Array.isArray(Z)||ArrayBuffer.isView(Z)}var Oa="https://null.example";class zC{static dirname(Z){let J=Z.lastIndexOf("/");if(J===-1)return"./";return Z.substring(0,J+1)}static basename(Z){return FH.basename(new URL(Z,Oa).pathname)}static extension(Z){return FH.extension(new URL(Z,Oa).pathname)}static resolve(Z,J){if(!this.isRelativePath(J))return J;let X=Z.split("/"),Y=J.split("/");X.pop();for(let $=0;$<Y.length;$++){if(Y[$]===".")continue;if(Y[$]==="..")X.pop();else X.push(Y[$])}return X.join("/")}static isAbsoluteURL(Z){return this.PROTOCOL_REGEXP.test(Z)}static isRelativePath(Z){return!/^(?:[a-zA-Z]+:)?\//.test(Z)}}zC.DEFAULT_INIT={};zC.PROTOCOL_REGEXP=/^[a-zA-Z]+:\/\//;var hJ=(Z)=>Z,sR1=new Set;class SB extends WK{constructor(Z,J=""){super(Z);this[h0].name=J,this.init(),this.dispatchEvent({type:"create"})}getGraph(){return this.graph}getDefaults(){return Object.assign(super.getDefaults(),{name:"",extras:{}})}set(Z,J){if(Array.isArray(J))J=J.slice();return super.set(Z,J)}getName(){return this.get("name")}setName(Z){return this.set("name",Z)}getExtras(){return this.get("extras")}setExtras(Z){return this.set("extras",Z)}clone(){return new this.constructor(this.graph).copy(this,hJ)}copy(Z,J=hJ){for(let X in this[h0]){let Y=this[h0][X];if(Y instanceof M5){if(!this[N4].has(X))Y.dispose()}else if(Y instanceof E6||Y instanceof P0)for(let $ of Y.values())$.dispose();else if(Y instanceof s1)for(let $ of Y.values())$.dispose()}for(let X in Z[h0]){let Y=this[h0][X],$=Z[h0][X];if($ instanceof M5)if(this[N4].has(X))Y.getChild().copy(J($.getChild()),J);else this.setRef(X,J($.getChild()),$.getAttributes());else if($ instanceof P0||$ instanceof E6)for(let Q of $.values())this.addRef(X,J(Q.getChild()),Q.getAttributes());else if($ instanceof s1)for(let Q of $.keys()){let K=$.get(Q);this.setRefMap(X,Q,J(K.getChild()),K.getAttributes())}else if(TY($))this[h0][X]=JSON.parse(JSON.stringify($));else if(Array.isArray($)||$ instanceof ArrayBuffer||ArrayBuffer.isView($))this[h0][X]=$.slice();else this[h0][X]=$}return this}equals(Z,J=sR1){if(this===Z)return!0;if(this.propertyType!==Z.propertyType)return!1;for(let X in this[h0]){if(J.has(X))continue;let Y=this[h0][X],$=Z[h0][X];if(Y instanceof M5||$ instanceof M5){if(!iR1(Y,$))return!1}else if(Y instanceof P0||$ instanceof P0||Y instanceof E6||$ instanceof E6){if(!nR1(Y,$))return!1}else if(Y instanceof s1||$ instanceof s1){if(!aR1(Y,$))return!1}else if(TY(Y)||TY($)){if(!Pa(Y,$))return!1}else if(IB(Y)||IB($)){if(!Da(Y,$))return!1}else if(Y!==$)return!1}return!0}detach(){return this.graph.disconnectParents(this,(Z)=>Z.propertyType!=="Root"),this}listParents(){return this.graph.listParents(this)}}class _6 extends SB{getDefaults(){return Object.assign(super.getDefaults(),{extensions:new s1})}getExtension(Z){return this.getRefMap("extensions",Z)}setExtension(Z,J){if(J)J._validateParent(this);return this.setRefMap("extensions",Z,J)}listExtensions(){return this.listRefMapValues("extensions")}}class M0 extends _6{init(){this.propertyType=s.ACCESSOR}getDefaults(){return Object.assign(super.getDefaults(),{array:null,type:M0.Type.SCALAR,componentType:M0.ComponentType.FLOAT,normalized:!1,sparse:!1,buffer:null})}static getElementSize(Z){switch(Z){case M0.Type.SCALAR:return 1;case M0.Type.VEC2:return 2;case M0.Type.VEC3:return 3;case M0.Type.VEC4:return 4;case M0.Type.MAT2:return 4;case M0.Type.MAT3:return 9;case M0.Type.MAT4:return 16;default:throw new Error("Unexpected type: "+Z)}}static getComponentSize(Z){switch(Z){case M0.ComponentType.BYTE:return 1;case M0.ComponentType.UNSIGNED_BYTE:return 1;case M0.ComponentType.SHORT:return 2;case M0.ComponentType.UNSIGNED_SHORT:return 2;case M0.ComponentType.UNSIGNED_INT:return 4;case M0.ComponentType.FLOAT:return 4;default:throw new Error("Unexpected component type: "+Z)}}getMinNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMin(Z),J)for(let $=0;$<X;$++)Z[$]=K8.decodeNormalizedInt(Z[$],Y);return Z}getMin(Z){let J=this.getArray(),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.min(Z[Q],K)}return Z}getMaxNormalized(Z){let J=this.getNormalized(),X=this.getElementSize(),Y=this.getComponentType();if(this.getMax(Z),J)for(let $=0;$<X;$++)Z[$]=K8.decodeNormalizedInt(Z[$],Y);return Z}getMax(Z){let J=this.get("array"),X=this.getCount(),Y=this.getElementSize();for(let $=0;$<Y;$++)Z[$]=-1/0;for(let $=0;$<X*Y;$+=Y)for(let Q=0;Q<Y;Q++){let K=J[$+Q];if(Number.isFinite(K))Z[Q]=Math.max(Z[Q],K)}return Z}getCount(){let Z=this.get("array");return Z?Z.length/this.getElementSize():0}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getElementSize(){return M0.getElementSize(this.get("type"))}getComponentSize(){return this.get("array").BYTES_PER_ELEMENT}getComponentType(){return this.get("componentType")}getNormalized(){return this.get("normalized")}setNormalized(Z){return this.set("normalized",Z)}getScalar(Z){let J=this.getElementSize(),X=this.getComponentType(),Y=this.getArray();if(this.getNormalized())return K8.decodeNormalizedInt(Y[Z*J],X);return Y[Z*J]}setScalar(Z,J){let X=this.getElementSize(),Y=this.getComponentType(),$=this.getArray();if(this.getNormalized())$[Z*X]=K8.encodeNormalizedInt(J,Y);else $[Z*X]=J;return this}getElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)J[K]=K8.decodeNormalizedInt(Q[Z*Y+K],$);else J[K]=Q[Z*Y+K];return J}setElement(Z,J){let X=this.getNormalized(),Y=this.getElementSize(),$=this.getComponentType(),Q=this.getArray();for(let K=0;K<Y;K++)if(X)Q[Z*Y+K]=K8.encodeNormalizedInt(J[K],$);else Q[Z*Y+K]=J[K];return this}getSparse(){return this.get("sparse")}setSparse(Z){return this.set("sparse",Z)}getBuffer(){return this.getRef("buffer")}setBuffer(Z){return this.setRef("buffer",Z)}getArray(){return this.get("array")}setArray(Z){return this.set("componentType",Z?oR1(Z):M0.ComponentType.FLOAT),this.set("array",Z),this}getByteLength(){let Z=this.get("array");return Z?Z.byteLength:0}}M0.Type={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};M0.ComponentType={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,UNSIGNED_INT:5125,FLOAT:5126};function oR1(Z){switch(Z.constructor){case Float32Array:return M0.ComponentType.FLOAT;case Uint32Array:return M0.ComponentType.UNSIGNED_INT;case Uint16Array:return M0.ComponentType.UNSIGNED_SHORT;case Uint8Array:return M0.ComponentType.UNSIGNED_BYTE;case Int16Array:return M0.ComponentType.SHORT;case Int8Array:return M0.ComponentType.BYTE;default:throw new Error("Unknown accessor componentType.")}}class FC extends _6{init(){this.propertyType=s.ANIMATION}getDefaults(){return Object.assign(super.getDefaults(),{channels:new P0,samplers:new P0})}addChannel(Z){return this.addRef("channels",Z)}removeChannel(Z){return this.removeRef("channels",Z)}listChannels(){return this.listRefs("channels")}addSampler(Z){return this.addRef("samplers",Z)}removeSampler(Z){return this.removeRef("samplers",Z)}listSamplers(){return this.listRefs("samplers")}}class UH extends _6{init(){this.propertyType=s.ANIMATION_CHANNEL}getDefaults(){return Object.assign(super.getDefaults(),{targetPath:null,targetNode:null,sampler:null})}getTargetPath(){return this.get("targetPath")}setTargetPath(Z){return this.set("targetPath",Z)}getTargetNode(){return this.getRef("targetNode")}setTargetNode(Z){return this.setRef("targetNode",Z)}getSampler(){return this.getRef("sampler")}setSampler(Z){return this.setRef("sampler",Z)}}UH.TargetPath={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};class RK extends _6{init(){this.propertyType=s.ANIMATION_SAMPLER}getDefaultAttributes(){return Object.assign(super.getDefaults(),{interpolation:RK.Interpolation.LINEAR,input:null,output:null})}getInterpolation(){return this.get("interpolation")}setInterpolation(Z){return this.set("interpolation",Z)}getInput(){return this.getRef("input")}setInput(Z){return this.setRef("input",Z,{usage:s5.OTHER})}getOutput(){return this.getRef("output")}setOutput(Z){return this.setRef("output",Z,{usage:s5.OTHER})}}RK.Interpolation={LINEAR:"LINEAR",STEP:"STEP",CUBICSPLINE:"CUBICSPLINE"};class qC extends _6{init(){this.propertyType=s.BUFFER}getDefaults(){return Object.assign(super.getDefaults(),{uri:""})}getURI(){return this.get("uri")}setURI(Z){return this.set("uri",Z)}}class LH extends _6{init(){this.propertyType=s.CAMERA}getDefaults(){return Object.assign(super.getDefaults(),{type:LH.Type.PERSPECTIVE,znear:0.1,zfar:100,aspectRatio:null,yfov:Math.PI*2*50/360,xmag:1,ymag:1})}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getZNear(){return this.get("znear")}setZNear(Z){return this.set("znear",Z)}getZFar(){return this.get("zfar")}setZFar(Z){return this.set("zfar",Z)}getAspectRatio(){return this.get("aspectRatio")}setAspectRatio(Z){return this.set("aspectRatio",Z)}getYFov(){return this.get("yfov")}setYFov(Z){return this.set("yfov",Z)}getXMag(){return this.get("xmag")}setXMag(Z){return this.set("xmag",Z)}getYMag(){return this.get("ymag")}setYMag(Z){return this.set("ymag",Z)}}LH.Type={PERSPECTIVE:"perspective",ORTHOGRAPHIC:"orthographic"};class i1 extends SB{_validateParent(Z){if(!this.parentTypes.includes(Z.propertyType))throw new Error(`Parent "${Z.propertyType}" invalid for child "${this.propertyType}".`)}}i1.EXTENSION_NAME=void 0;class P1 extends _6{init(){this.propertyType=s.TEXTURE_INFO}getDefaults(){return Object.assign(super.getDefaults(),{texCoord:0,magFilter:null,minFilter:null,wrapS:P1.WrapMode.REPEAT,wrapT:P1.WrapMode.REPEAT})}getTexCoord(){return this.get("texCoord")}setTexCoord(Z){return this.set("texCoord",Z)}getMagFilter(){return this.get("magFilter")}setMagFilter(Z){return this.set("magFilter",Z)}getMinFilter(){return this.get("minFilter")}setMinFilter(Z){return this.set("minFilter",Z)}getWrapS(){return this.get("wrapS")}setWrapS(Z){return this.set("wrapS",Z)}getWrapT(){return this.get("wrapT")}setWrapT(Z){return this.set("wrapT",Z)}}P1.WrapMode={CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,REPEAT:10497};P1.MagFilter={NEAREST:9728,LINEAR:9729};P1.MinFilter={NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987};var{R:CB,G:TB,B:EB,A:rR1}=o5;class BH extends _6{init(){this.propertyType=s.MATERIAL}getDefaults(){return Object.assign(super.getDefaults(),{alphaMode:BH.AlphaMode.OPAQUE,alphaCutoff:0.5,doubleSided:!1,baseColorFactor:[1,1,1,1],baseColorTexture:null,baseColorTextureInfo:new P1(this.graph,"baseColorTextureInfo"),emissiveFactor:[0,0,0],emissiveTexture:null,emissiveTextureInfo:new P1(this.graph,"emissiveTextureInfo"),normalScale:1,normalTexture:null,normalTextureInfo:new P1(this.graph,"normalTextureInfo"),occlusionStrength:1,occlusionTexture:null,occlusionTextureInfo:new P1(this.graph,"occlusionTextureInfo"),roughnessFactor:1,metallicFactor:1,metallicRoughnessTexture:null,metallicRoughnessTextureInfo:new P1(this.graph,"metallicRoughnessTextureInfo")})}getDoubleSided(){return this.get("doubleSided")}setDoubleSided(Z){return this.set("doubleSided",Z)}getAlpha(){return this.get("baseColorFactor")[3]}setAlpha(Z){let J=this.get("baseColorFactor").slice();return J[3]=Z,this.set("baseColorFactor",J)}getAlphaMode(){return this.get("alphaMode")}setAlphaMode(Z){return this.set("alphaMode",Z)}getAlphaCutoff(){return this.get("alphaCutoff")}setAlphaCutoff(Z){return this.set("alphaCutoff",Z)}getBaseColorFactor(){return this.get("baseColorFactor")}setBaseColorFactor(Z){return this.set("baseColorFactor",Z)}getBaseColorTexture(){return this.getRef("baseColorTexture")}getBaseColorTextureInfo(){return this.getRef("baseColorTexture")?this.getRef("baseColorTextureInfo"):null}setBaseColorTexture(Z){return this.setRef("baseColorTexture",Z,{channels:CB|TB|EB|rR1,isColor:!0})}getEmissiveFactor(){return this.get("emissiveFactor")}setEmissiveFactor(Z){return this.set("emissiveFactor",Z)}getEmissiveTexture(){return this.getRef("emissiveTexture")}getEmissiveTextureInfo(){return this.getRef("emissiveTexture")?this.getRef("emissiveTextureInfo"):null}setEmissiveTexture(Z){return this.setRef("emissiveTexture",Z,{channels:CB|TB|EB,isColor:!0})}getNormalScale(){return this.get("normalScale")}setNormalScale(Z){return this.set("normalScale",Z)}getNormalTexture(){return this.getRef("normalTexture")}getNormalTextureInfo(){return this.getRef("normalTexture")?this.getRef("normalTextureInfo"):null}setNormalTexture(Z){return this.setRef("normalTexture",Z,{channels:CB|TB|EB})}getOcclusionStrength(){return this.get("occlusionStrength")}setOcclusionStrength(Z){return this.set("occlusionStrength",Z)}getOcclusionTexture(){return this.getRef("occlusionTexture")}getOcclusionTextureInfo(){return this.getRef("occlusionTexture")?this.getRef("occlusionTextureInfo"):null}setOcclusionTexture(Z){return this.setRef("occlusionTexture",Z,{channels:CB})}getRoughnessFactor(){return this.get("roughnessFactor")}setRoughnessFactor(Z){return this.set("roughnessFactor",Z)}getMetallicFactor(){return this.get("metallicFactor")}setMetallicFactor(Z){return this.set("metallicFactor",Z)}getMetallicRoughnessTexture(){return this.getRef("metallicRoughnessTexture")}getMetallicRoughnessTextureInfo(){return this.getRef("metallicRoughnessTexture")?this.getRef("metallicRoughnessTextureInfo"):null}setMetallicRoughnessTexture(Z){return this.setRef("metallicRoughnessTexture",Z,{channels:TB|EB})}}BH.AlphaMode={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"};class UC extends _6{init(){this.propertyType=s.MESH}getDefaults(){return Object.assign(super.getDefaults(),{weights:[],primitives:new P0})}addPrimitive(Z){return this.addRef("primitives",Z)}removePrimitive(Z){return this.removeRef("primitives",Z)}listPrimitives(){return this.listRefs("primitives")}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}}class LC extends _6{init(){this.propertyType=s.NODE}getDefaults(){return Object.assign(super.getDefaults(),{translation:[0,0,0],rotation:[0,0,0,1],scale:[1,1,1],weights:[],camera:null,mesh:null,skin:null,children:new P0})}copy(Z,J=hJ){if(J===hJ)throw new Error("Node cannot be copied.");return super.copy(Z,J)}getTranslation(){return this.get("translation")}getRotation(){return this.get("rotation")}getScale(){return this.get("scale")}setTranslation(Z){return this.set("translation",Z)}setRotation(Z){return this.set("rotation",Z)}setScale(Z){return this.set("scale",Z)}getMatrix(){return K8.compose(this.get("translation"),this.get("rotation"),this.get("scale"),[])}setMatrix(Z){let J=this.get("translation").slice(),X=this.get("rotation").slice(),Y=this.get("scale").slice();return K8.decompose(Z,J,X,Y),this.set("translation",J).set("rotation",X).set("scale",Y)}getWorldTranslation(){let Z=[0,0,0];return K8.decompose(this.getWorldMatrix(),Z,[0,0,0,1],[1,1,1]),Z}getWorldRotation(){let Z=[0,0,0,1];return K8.decompose(this.getWorldMatrix(),[0,0,0],Z,[1,1,1]),Z}getWorldScale(){let Z=[1,1,1];return K8.decompose(this.getWorldMatrix(),[0,0,0],[0,0,0,1],Z),Z}getWorldMatrix(){let Z=[];for(let Y=this;Y!=null;Y=Y.getParentNode())Z.push(Y);let J,X=Z.pop().getMatrix();while(J=Z.pop())cR1(X,X,J.getMatrix());return X}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);for(let X of Z.listParents())if(X.propertyType===s.SCENE)X.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}getParentNode(){for(let Z of this.listParents())if(Z.propertyType===s.NODE)return Z;return null}getMesh(){return this.getRef("mesh")}setMesh(Z){return this.setRef("mesh",Z)}getCamera(){return this.getRef("camera")}setCamera(Z){return this.setRef("camera",Z)}getSkin(){return this.getRef("skin")}setSkin(Z){return this.setRef("skin",Z)}getWeights(){return this.get("weights")}setWeights(Z){return this.set("weights",Z)}traverse(Z){Z(this);for(let J of this.listChildren())J.traverse(Z);return this}}class fJ extends _6{init(){this.propertyType=s.PRIMITIVE}getDefaults(){return Object.assign(super.getDefaults(),{mode:fJ.Mode.TRIANGLES,material:null,indices:null,attributes:new s1,targets:new P0})}getIndices(){return this.getRef("indices")}setIndices(Z){return this.setRef("indices",Z,{usage:s5.ELEMENT_ARRAY_BUFFER})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:s5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}getMaterial(){return this.getRef("material")}setMaterial(Z){return this.setRef("material",Z)}getMode(){return this.get("mode")}setMode(Z){return this.set("mode",Z)}listTargets(){return this.listRefs("targets")}addTarget(Z){return this.addRef("targets",Z)}removeTarget(Z){return this.removeRef("targets",Z)}}fJ.Mode={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};class Ca extends SB{init(){this.propertyType=s.PRIMITIVE_TARGET}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new s1})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:s5.ARRAY_BUFFER})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}}function kB(){return kB=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},kB.apply(null,arguments)}class BC extends _6{init(){this.propertyType=s.SCENE}getDefaults(){return Object.assign(super.getDefaults(),{children:new P0})}copy(Z,J=hJ){if(J===hJ)throw new Error("Scene cannot be copied.");return super.copy(Z,J)}addChild(Z){let J=Z.getParentNode();if(J)J.removeChild(Z);return this.addRef("children",Z)}removeChild(Z){return this.removeRef("children",Z)}listChildren(){return this.listRefs("children")}traverse(Z){for(let J of this.listChildren())J.traverse(Z);return this}}class wC extends _6{init(){this.propertyType=s.SKIN}getDefaults(){return Object.assign(super.getDefaults(),{skeleton:null,inverseBindMatrices:null,joints:new P0})}getSkeleton(){return this.getRef("skeleton")}setSkeleton(Z){return this.setRef("skeleton",Z)}getInverseBindMatrices(){return this.getRef("inverseBindMatrices")}setInverseBindMatrices(Z){return this.setRef("inverseBindMatrices",Z,{usage:s5.INVERSE_BIND_MATRICES})}addJoint(Z){return this.addRef("joints",Z)}removeJoint(Z){return this.removeRef("joints",Z)}listJoints(){return this.listRefs("joints")}}class OC extends _6{init(){this.propertyType=s.TEXTURE}getDefaults(){return Object.assign(super.getDefaults(),{image:null,mimeType:"",uri:""})}getMimeType(){return this.get("mimeType")||M4.extensionToMimeType(FH.extension(this.get("uri")))}setMimeType(Z){return this.set("mimeType",Z)}getURI(){return this.get("uri")}setURI(Z){this.set("uri",Z);let J=M4.extensionToMimeType(FH.extension(Z));if(J)this.set("mimeType",J);return this}getImage(){return this.get("image")}setImage(Z){return this.set("image",v6.assertView(Z))}getSize(){let Z=this.get("image");if(!Z)return null;return M4.getSize(Z,this.getMimeType())}}class AB extends _6{init(){this.propertyType=s.ROOT}getDefaults(){return Object.assign(super.getDefaults(),{asset:{generator:`glTF-Transform ${yR1}`,version:"2.0"},defaultScene:null,accessors:new P0,animations:new P0,buffers:new P0,cameras:new P0,materials:new P0,meshes:new P0,nodes:new P0,scenes:new P0,skins:new P0,textures:new P0})}constructor(Z){super(Z);this._extensions=new Set,Z.addEventListener("node:create",(J)=>{this._addChildOfRoot(J.target)})}clone(){throw new Error("Root cannot be cloned.")}copy(Z,J=hJ){if(J===hJ)throw new Error("Root cannot be copied.");this.set("asset",kB({},Z.get("asset"))),this.setName(Z.getName()),this.setExtras(kB({},Z.getExtras())),this.setDefaultScene(Z.getDefaultScene()?J(Z.getDefaultScene()):null);for(let X of Z.listRefMapKeys("extensions")){let Y=Z.getExtension(X);this.setExtension(X,J(Y))}return this}_addChildOfRoot(Z){if(Z instanceof BC)this.addRef("scenes",Z);else if(Z instanceof LC)this.addRef("nodes",Z);else if(Z instanceof LH)this.addRef("cameras",Z);else if(Z instanceof wC)this.addRef("skins",Z);else if(Z instanceof UC)this.addRef("meshes",Z);else if(Z instanceof BH)this.addRef("materials",Z);else if(Z instanceof OC)this.addRef("textures",Z);else if(Z instanceof FC)this.addRef("animations",Z);else if(Z instanceof M0)this.addRef("accessors",Z);else if(Z instanceof qC)this.addRef("buffers",Z);return this}getAsset(){return this.get("asset")}listExtensionsUsed(){return Array.from(this._extensions)}listExtensionsRequired(){return this.listExtensionsUsed().filter((Z)=>Z.isRequired())}_enableExtension(Z){return this._extensions.add(Z),this}_disableExtension(Z){return this._extensions.delete(Z),this}listScenes(){return this.listRefs("scenes")}setDefaultScene(Z){return this.setRef("defaultScene",Z)}getDefaultScene(){return this.getRef("defaultScene")}listNodes(){return this.listRefs("nodes")}listCameras(){return this.listRefs("cameras")}listSkins(){return this.listRefs("skins")}listMeshes(){return this.listRefs("meshes")}listMaterials(){return this.listRefs("materials")}listTextures(){return this.listRefs("textures")}listAnimations(){return this.listRefs("animations")}listAccessors(){return this.listRefs("accessors")}listBuffers(){return this.listRefs("buffers")}}class vB{static fromGraph(Z){return vB._GRAPH_DOCUMENTS.get(Z)||null}constructor(){this._graph=new KK,this._root=new AB(this._graph),this._logger=L7.DEFAULT_INSTANCE,vB._GRAPH_DOCUMENTS.set(this._graph,this)}getRoot(){return this._root}getGraph(){return this._graph}getLogger(){return this._logger}setLogger(Z){return this._logger=Z,this}clone(){throw new Error("Use 'cloneDocument(source)' from '@gltf-transform/functions'.")}merge(Z){throw new Error("Use 'mergeDocuments(target, source)' from '@gltf-transform/functions'.")}async transform(...Z){let J=Z.map((X)=>X.name);for(let X of Z)await X(this,{stack:J});return this}createExtension(Z){let J=Z.EXTENSION_NAME;return this.getRoot().listExtensionsUsed().find((Y)=>Y.extensionName===J)||new Z(this)}createScene(Z=""){return new BC(this._graph,Z)}createNode(Z=""){return new LC(this._graph,Z)}createCamera(Z=""){return new LH(this._graph,Z)}createSkin(Z=""){return new wC(this._graph,Z)}createMesh(Z=""){return new UC(this._graph,Z)}createPrimitive(){return new fJ(this._graph)}createPrimitiveTarget(Z=""){return new Ca(this._graph,Z)}createMaterial(Z=""){return new BH(this._graph,Z)}createTexture(Z=""){return new OC(this._graph,Z)}createAnimation(Z=""){return new FC(this._graph,Z)}createAnimationChannel(Z=""){return new UH(this._graph,Z)}createAnimationSampler(Z=""){return new RK(this._graph,Z)}createAccessor(Z="",J=null){if(!J)J=this.getRoot().listBuffers()[0];return new M0(this._graph,Z).setBuffer(J)}createBuffer(Z=""){return new qC(this._graph,Z)}}vB._GRAPH_DOCUMENTS=new WeakMap;class E1{constructor(Z){this.extensionName="",this.prereadTypes=[],this.prewriteTypes=[],this.readDependencies=[],this.writeDependencies=[],this.document=void 0,this.required=!1,this.properties=new Set,this._listener=void 0,this.document=Z,Z.getRoot()._enableExtension(this),this._listener=(X)=>{let Y=X,$=Y.target;if($ instanceof i1&&$.extensionName===this.extensionName){if(Y.type==="node:create")this._addExtensionProperty($);if(Y.type==="node:dispose")this._removeExtensionProperty($)}};let J=Z.getGraph();J.addEventListener("node:create",this._listener),J.addEventListener("node:dispose",this._listener)}dispose(){this.document.getRoot()._disableExtension(this);let Z=this.document.getGraph();Z.removeEventListener("node:create",this._listener),Z.removeEventListener("node:dispose",this._listener);for(let J of this.properties)J.dispose()}static register(){}isRequired(){return this.required}setRequired(Z){return this.required=Z,this}listProperties(){return Array.from(this.properties)}_addExtensionProperty(Z){return this.properties.add(Z),this}_removeExtensionProperty(Z){return this.properties.delete(Z),this}install(Z,J){return this}preread(Z,J){return this}prewrite(Z,J){return this}}E1.EXTENSION_NAME=void 0;var kT6={logger:L7.DEFAULT_INSTANCE,extensions:[],dependencies:{}},vT6=new Set([s.BUFFER,s.TEXTURE,s.MATERIAL,s.MESH,s.PRIMITIVE,s.NODE,s.SCENE]);var qH;(function(Z){Z[Z.ARRAY_BUFFER=34962]="ARRAY_BUFFER",Z[Z.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER"})(qH||(qH={}));class yJ{constructor(Z,J,X){this._doc=void 0,this.jsonDoc=void 0,this.options=void 0,this.accessorIndexMap=new Map,this.animationIndexMap=new Map,this.bufferIndexMap=new Map,this.cameraIndexMap=new Map,this.skinIndexMap=new Map,this.materialIndexMap=new Map,this.meshIndexMap=new Map,this.nodeIndexMap=new Map,this.imageIndexMap=new Map,this.textureDefIndexMap=new Map,this.textureInfoDefMap=new Map,this.samplerDefIndexMap=new Map,this.sceneIndexMap=new Map,this.imageBufferViews=[],this.otherBufferViews=new Map,this.otherBufferViewsIndexMap=new Map,this.extensionData={},this.bufferURIGenerator=void 0,this.imageURIGenerator=void 0,this.logger=void 0,this._accessorUsageMap=new Map,this.accessorUsageGroupedByParent=new Set(["ARRAY_BUFFER"]),this.accessorParents=new Map,this._doc=Z,this.jsonDoc=J,this.options=X;let Y=Z.getRoot(),$=Y.listBuffers().length,Q=Y.listTextures().length;this.bufferURIGenerator=new HC($>1,()=>X.basename||"buffer"),this.imageURIGenerator=new HC(Q>1,(K)=>tR1(Z,K)||X.basename||"texture"),this.logger=Z.getLogger()}createTextureInfoDef(Z,J){let X={magFilter:J.getMagFilter()||void 0,minFilter:J.getMinFilter()||void 0,wrapS:J.getWrapS(),wrapT:J.getWrapT()},Y=JSON.stringify(X);if(!this.samplerDefIndexMap.has(Y))this.samplerDefIndexMap.set(Y,this.jsonDoc.json.samplers.length),this.jsonDoc.json.samplers.push(X);let $={source:this.imageIndexMap.get(Z),sampler:this.samplerDefIndexMap.get(Y)},Q=JSON.stringify($);if(!this.textureDefIndexMap.has(Q))this.textureDefIndexMap.set(Q,this.jsonDoc.json.textures.length),this.jsonDoc.json.textures.push($);let K={index:this.textureDefIndexMap.get(Q)};if(J.getTexCoord()!==0)K.texCoord=J.getTexCoord();if(Object.keys(J.getExtras()).length>0)K.extras=J.getExtras();return this.textureInfoDefMap.set(J,K),K}createPropertyDef(Z){let J={};if(Z.getName())J.name=Z.getName();if(Object.keys(Z.getExtras()).length>0)J.extras=Z.getExtras();return J}createAccessorDef(Z){let J=this.createPropertyDef(Z);if(J.type=Z.getType(),J.componentType=Z.getComponentType(),J.count=Z.getCount(),this._doc.getGraph().listParentEdges(Z).some((Y)=>Y.getName()==="attributes"&&Y.getAttributes().key==="POSITION"||Y.getName()==="input"))J.max=Z.getMax([]).map(Math.fround),J.min=Z.getMin([]).map(Math.fround);if(Z.getNormalized())J.normalized=Z.getNormalized();return J}createImageData(Z,J,X){if(this.options.format===$C.GLB)this.imageBufferViews.push(J),Z.bufferView=this.jsonDoc.json.bufferViews.length,this.jsonDoc.json.bufferViews.push({buffer:0,byteOffset:-1,byteLength:J.byteLength});else{let Y=M4.mimeTypeToExtension(X.getMimeType());Z.uri=this.imageURIGenerator.createURI(X,Y),this.assignResourceURI(Z.uri,J,!1)}}assignResourceURI(Z,J,X){let Y=this.jsonDoc.resources;if(!(Z in Y)){Y[Z]=J;return}if(J===Y[Z]){this.logger.warn(`Duplicate resource URI, "${Z}".`);return}let $=`Resource URI "${Z}" already assigned to different data.`;if(!X){this.logger.warn($);return}throw new Error($)}getAccessorUsage(Z){let J=this._accessorUsageMap.get(Z);if(J)return J;if(Z.getSparse())return s5.SPARSE;for(let X of this._doc.getGraph().listParentEdges(Z)){let{usage:Y}=X.getAttributes();if(Y)return Y;if(X.getParent().propertyType!==s.ROOT)this.logger.warn(`Missing attribute ".usage" on edge, "${X.getName()}".`)}return s5.OTHER}addAccessorToUsageGroup(Z,J){let X=this._accessorUsageMap.get(Z);if(X&&X!==J)throw new Error(`Accessor with usage "${X}" cannot be reused as "${J}".`);return this._accessorUsageMap.set(Z,J),this}}yJ.BufferViewTarget=qH;yJ.BufferViewUsage=s5;yJ.USAGE_TO_TARGET={[s5.ARRAY_BUFFER]:qH.ARRAY_BUFFER,[s5.ELEMENT_ARRAY_BUFFER]:qH.ELEMENT_ARRAY_BUFFER};class HC{constructor(Z,J){this.multiple=void 0,this.basename=void 0,this.counter={},this.multiple=Z,this.basename=J}createURI(Z,J){if(Z.getURI())return Z.getURI();else if(!this.multiple)return`${this.basename(Z)}.${J}`;else{let X=this.basename(Z);return this.counter[X]=this.counter[X]||1,`${X}_${this.counter[X]++}.${J}`}}}function tR1(Z,J){let X=Z.getGraph().listParentEdges(J).find((Y)=>Y.getParent()!==Z.getRoot());return X?X.getName().replace(/texture$/i,""):""}var{UNSIGNED_INT:_T6,UNSIGNED_SHORT:ST6,UNSIGNED_BYTE:AT6}=M0.ComponentType,xT6=new Set([s.ACCESSOR,s.BUFFER,s.MATERIAL,s.MESH]);var Na;(function(Z){Z[Z.JSON=1313821514]="JSON",Z[Z.BIN=5130562]="BIN"})(Na||(Na={}));var Ea=163,Ia=166;function eR1(){return{vkFormat:0,typeSize:1,pixelWidth:0,pixelHeight:0,pixelDepth:0,layerCount:0,faceCount:1,supercompressionScheme:0,levels:[],dataFormatDescriptor:[{vendorId:0,descriptorType:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],keyValue:{},globalData:null}}class MK{constructor(Z,J,X,Y){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(Z.buffer,Z.byteOffset+J,X),this._littleEndian=Y,this._offset=0}_nextUint8(){let Z=this._dataView.getUint8(this._offset);return this._offset+=1,Z}_nextUint16(){let Z=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,Z}_nextUint32(){let Z=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,Z}_nextUint64(){let Z=this._dataView.getUint32(this._offset,this._littleEndian),J=this._dataView.getUint32(this._offset+4,this._littleEndian),X=Z+4294967296*J;return this._offset+=8,X}_nextInt32(){let Z=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,Z}_nextUint8Array(Z){let J=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,Z);return this._offset+=Z,J}_skip(Z){return this._offset+=Z,this}_scan(Z,J=0){let X=this._offset,Y=0;while(this._dataView.getUint8(this._offset)!==J&&Y<Z)Y++,this._offset++;if(Y<Z)this._offset++;return new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+X,Y)}}var yT6=new Uint8Array([0]),r6=[171,75,84,88,32,50,48,187,13,10,26,10];function Ta(Z){return new TextDecoder().decode(Z)}function xB(Z){let J=new Uint8Array(Z.buffer,Z.byteOffset,r6.length);if(J[0]!==r6[0]||J[1]!==r6[1]||J[2]!==r6[2]||J[3]!==r6[3]||J[4]!==r6[4]||J[5]!==r6[5]||J[6]!==r6[6]||J[7]!==r6[7]||J[8]!==r6[8]||J[9]!==r6[9]||J[10]!==r6[10]||J[11]!==r6[11])throw new Error("Missing KTX 2.0 identifier.");let X=eR1(),Y=17*Uint32Array.BYTES_PER_ELEMENT,$=new MK(Z,r6.length,Y,!0);X.vkFormat=$._nextUint32(),X.typeSize=$._nextUint32(),X.pixelWidth=$._nextUint32(),X.pixelHeight=$._nextUint32(),X.pixelDepth=$._nextUint32(),X.layerCount=$._nextUint32(),X.faceCount=$._nextUint32();let Q=$._nextUint32();X.supercompressionScheme=$._nextUint32();let K=$._nextUint32(),W=$._nextUint32(),G=$._nextUint32(),H=$._nextUint32(),V=$._nextUint64(),F=$._nextUint64(),z=Q*3*8,q=new MK(Z,r6.length+Y,z,!0);for(let F6=0;F6<Q;F6++)X.levels.push({levelData:new Uint8Array(Z.buffer,Z.byteOffset+q._nextUint64(),q._nextUint64()),uncompressedByteLength:q._nextUint64()});let U=new MK(Z,K,W,!0);U._skip(4);let L=U._nextUint16(),B=U._nextUint16(),w=U._nextUint16(),N=U._nextUint16(),R=U._nextUint8(),M=U._nextUint8(),P=U._nextUint8(),j=U._nextUint8(),C=[U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8()],T=[U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8()],x={vendorId:L,descriptorType:B,versionNumber:w,colorModel:R,colorPrimaries:M,transferFunction:P,flags:j,texelBlockDimension:C,bytesPlane:T,samples:[]},_=6,h=4,k=(N/4-_)/h;for(let F6=0;F6<k;F6++){let YZ={bitOffset:U._nextUint16(),bitLength:U._nextUint8(),channelType:U._nextUint8(),samplePosition:[U._nextUint8(),U._nextUint8(),U._nextUint8(),U._nextUint8()],sampleLower:Number.NEGATIVE_INFINITY,sampleUpper:Number.POSITIVE_INFINITY};if(YZ.channelType&64)YZ.sampleLower=U._nextInt32(),YZ.sampleUpper=U._nextInt32();else YZ.sampleLower=U._nextUint32(),YZ.sampleUpper=U._nextUint32();x.samples[F6]=YZ}X.dataFormatDescriptor.length=0,X.dataFormatDescriptor.push(x);let v=new MK(Z,G,H,!0);while(v._offset<H){let F6=v._nextUint32(),YZ=v._scan(F6),jq=Ta(YZ);if(X.keyValue[jq]=v._nextUint8Array(F6-YZ.byteLength-1),jq.match(/^ktx/i)){let oy=Ta(X.keyValue[jq]);X.keyValue[jq]=oy.substring(0,oy.lastIndexOf("\x00"))}let YG1=F6%4?4-F6%4:0;v._skip(YG1)}if(F<=0)return X;let A=new MK(Z,V,F,!0),p=A._nextUint16(),n=A._nextUint16(),o=A._nextUint32(),X0=A._nextUint32(),Q0=A._nextUint32(),E0=A._nextUint32(),I0=[];for(let F6=0;F6<Q;F6++)I0.push({imageFlags:A._nextUint32(),rgbSliceByteOffset:A._nextUint32(),rgbSliceByteLength:A._nextUint32(),alphaSliceByteOffset:A._nextUint32(),alphaSliceByteLength:A._nextUint32()});let a0=V+A._offset,E8=a0+o,n1=E8+X0,e4=n1+Q0,G4=new Uint8Array(Z.buffer,Z.byteOffset+a0,o),CQ=new Uint8Array(Z.buffer,Z.byteOffset+E8,X0),TQ=new Uint8Array(Z.buffer,Z.byteOffset+n1,Q0),JY=new Uint8Array(Z.buffer,Z.byteOffset+e4,E0);return X.globalData={endpointCount:p,selectorCount:n,imageDescs:I0,endpointsData:G4,selectorsData:CQ,tablesData:TQ,extendedData:JY},X}var DC="EXT_mesh_gpu_instancing",RC="EXT_meshopt_compression",ZM1="EXT_texture_webp",JM1="EXT_texture_avif",da="KHR_draco_mesh_compression",PC="KHR_lights_punctual",CC="KHR_materials_anisotropy",TC="KHR_materials_clearcoat",EC="KHR_materials_diffuse_transmission",IC="KHR_materials_dispersion",kC="KHR_materials_emissive_strength",vC="KHR_materials_ior",_C="KHR_materials_iridescence",SC="KHR_materials_pbrSpecularGlossiness",AC="KHR_materials_sheen",xC="KHR_materials_specular",hC="KHR_materials_transmission",fC="KHR_materials_unlit",yC="KHR_materials_volume",uY="KHR_materials_variants",XM1="KHR_mesh_quantization",YM1="KHR_texture_basisu",bC="KHR_texture_transform",hB="KHR_xmp_json_ld",MC="INSTANCE_ATTRIBUTE";class gC extends i1{init(){this.extensionName=DC,this.propertyType="InstancedMesh",this.parentTypes=[s.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{attributes:new s1})}getAttribute(Z){return this.getRefMap("attributes",Z)}setAttribute(Z,J){return this.setRefMap("attributes",Z,J,{usage:MC})}listAttributes(){return this.listRefMapValues("attributes")}listSemantics(){return this.listRefMapKeys("attributes")}}gC.EXTENSION_NAME=DC;var EY=DC;class bB extends E1{constructor(...Z){super(...Z);this.extensionName=EY,this.provideTypes=[s.NODE],this.prewriteTypes=[s.ACCESSOR]}createInstancedMesh(){return new gC(this.document.getGraph())}read(Z){return(Z.jsonDoc.json.nodes||[]).forEach((Y,$)=>{if(!Y.extensions||!Y.extensions[EY])return;let Q=Y.extensions[EY],K=this.createInstancedMesh();for(let W in Q.attributes)K.setAttribute(W,Z.accessors[Q.attributes[W]]);Z.nodes[$].setExtension(EY,K)}),this}prewrite(Z){Z.accessorUsageGroupedByParent.add(MC);for(let J of this.properties)for(let X of J.listAttributes())Z.addAccessorToUsageGroup(X,MC);return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listNodes().forEach((X)=>{let Y=X.getExtension(EY);if(Y){let $=Z.nodeIndexMap.get(X),Q=J.json.nodes[$],K={attributes:{}};Y.listSemantics().forEach((W)=>{let G=Y.getAttribute(W);K.attributes[W]=Z.accessorIndexMap.get(G)}),Q.extensions=Q.extensions||{},Q.extensions[EY]=K}}),this}}bB.EXTENSION_NAME=EY;function jZ(){return jZ=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},jZ.apply(null,arguments)}var RH;(function(Z){Z.QUANTIZE="quantize",Z.FILTER="filter"})(RH||(RH={}));var DK;(function(Z){Z.ATTRIBUTES="ATTRIBUTES",Z.TRIANGLES="TRIANGLES",Z.INDICES="INDICES"})(DK||(DK={}));var W8;(function(Z){Z.NONE="NONE",Z.OCTAHEDRAL="OCTAHEDRAL",Z.QUATERNION="QUATERNION",Z.EXPONENTIAL="EXPONENTIAL"})(W8||(W8={}));var{BYTE:$M1,SHORT:ka,FLOAT:QM1}=M0.ComponentType,{encodeNormalizedInt:va,decodeNormalizedInt:jC}=K8;function KM1(Z,J,X,Y){let{filter:$,bits:Q}=Y,K={array:Z.getArray(),byteStride:Z.getElementSize()*Z.getComponentSize(),componentType:Z.getComponentType(),normalized:Z.getNormalized()};if(X!==DK.ATTRIBUTES)return K;if($!==W8.NONE){let W=Z.getNormalized()?WM1(Z):new Float32Array(K.array);switch($){case W8.EXPONENTIAL:K.byteStride=Z.getElementSize()*4,K.componentType=QM1,K.normalized=!1,K.array=J.encodeFilterExp(W,Z.getCount(),K.byteStride,Q);break;case W8.OCTAHEDRAL:K.byteStride=Q>8?8:4,K.componentType=Q>8?ka:$M1,K.normalized=!0,W=Z.getElementSize()===3?HM1(W):W,K.array=J.encodeFilterOct(W,Z.getCount(),K.byteStride,Q);break;case W8.QUATERNION:K.byteStride=8,K.componentType=ka,K.normalized=!0,K.array=J.encodeFilterQuat(W,Z.getCount(),K.byteStride,Q);break;default:throw new Error("Invalid filter.")}if(K.min=Z.getMin([]),K.max=Z.getMax([]),Z.getNormalized())K.min=K.min.map((G)=>jC(G,Z.getComponentType())),K.max=K.max.map((G)=>jC(G,Z.getComponentType()));if(K.normalized)K.min=K.min.map((G)=>va(G,K.componentType)),K.max=K.max.map((G)=>va(G,K.componentType))}else if(K.byteStride%4)K.array=GM1(K.array,Z.getElementSize()),K.byteStride=K.array.byteLength/Z.getCount();return K}function WM1(Z){let J=Z.getComponentType(),X=Z.getArray(),Y=new Float32Array(X.length);for(let $=0;$<X.length;$++)Y[$]=jC(X[$],J);return Y}function GM1(Z,J){let Y=v6.padNumber(Z.BYTES_PER_ELEMENT*J)/Z.BYTES_PER_ELEMENT,$=Z.length/J,Q=new Z.constructor($*Y);for(let K=0;K*J<Z.length;K++)for(let W=0;W<J;W++)Q[K*Y+W]=Z[K*J+W];return Q}function HM1(Z){let J=new Float32Array(Z.length*4/3);for(let X=0,Y=Z.length/3;X<Y;X++)J[X*4]=Z[X*3],J[X*4+1]=Z[X*3+1],J[X*4+2]=Z[X*3+2];return J}function VM1(Z,J){if(J===yJ.BufferViewUsage.ELEMENT_ARRAY_BUFFER)return Z.listParents().some((Y)=>{return Y instanceof fJ&&Y.getMode()===fJ.Mode.TRIANGLES})?DK.TRIANGLES:DK.INDICES;return DK.ATTRIBUTES}function zM1(Z,J){let X=J.getGraph().listParentEdges(Z).filter((Y)=>!(Y.getParent()instanceof AB));for(let Y of X){let $=Y.getName(),Q=Y.getAttributes().key||"",K=Y.getParent().propertyType===s.PRIMITIVE_TARGET;if($==="indices")return{filter:W8.NONE};if($==="attributes"){if(Q==="POSITION")return{filter:W8.NONE};if(Q==="TEXCOORD_0")return{filter:W8.NONE};if(Q.startsWith("JOINTS_"))return{filter:W8.NONE};if(Q.startsWith("WEIGHTS_"))return{filter:W8.NONE};if(Q==="NORMAL"||Q==="TANGENT")return K?{filter:W8.NONE}:{filter:W8.OCTAHEDRAL,bits:8}}if($==="output"){let W=ca(Z);if(W==="rotation")return{filter:W8.QUATERNION,bits:16};if(W==="translation")return{filter:W8.EXPONENTIAL,bits:12};if(W==="scale")return{filter:W8.EXPONENTIAL,bits:12};return{filter:W8.NONE}}if($==="input")return{filter:W8.NONE};if($==="inverseBindMatrices")return{filter:W8.NONE}}return{filter:W8.NONE}}function ca(Z){for(let J of Z.listParents()){if(!(J instanceof RK))continue;for(let X of J.listParents()){if(!(X instanceof UH))continue;return X.getTargetPath()}}return null}function FM1(Z){if(!Z.extensions||!Z.extensions[RC])return!1;return!!Z.extensions[RC].fallback}var t6=RC,_a={method:RH.QUANTIZE};class jH extends E1{constructor(...Z){super(...Z);this.extensionName=t6,this.prereadTypes=[s.BUFFER,s.PRIMITIVE],this.prewriteTypes=[s.BUFFER,s.ACCESSOR],this.readDependencies=["meshopt.decoder"],this.writeDependencies=["meshopt.encoder"],this._decoder=null,this._decoderFallbackBufferMap=new Map,this._encoder=null,this._encoderOptions=_a,this._encoderFallbackBuffer=null,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={}}install(Z,J){if(Z==="meshopt.decoder")this._decoder=J;if(Z==="meshopt.encoder")this._encoder=J;return this}setEncoderOptions(Z){return this._encoderOptions=jZ({},_a,Z),this}preread(Z,J){if(!this._decoder){if(!this.isRequired())return this;throw new Error(`[${t6}] Please install extension dependency, "meshopt.decoder".`)}if(!this._decoder.supported){if(!this.isRequired())return this;throw new Error(`[${t6}]: Missing WASM support.`)}if(J===s.BUFFER)this._prereadBuffers(Z);else if(J===s.PRIMITIVE)this._prereadPrimitives(Z);return this}_prereadBuffers(Z){let J=Z.jsonDoc;(J.json.bufferViews||[]).forEach((Y,$)=>{if(!Y.extensions||!Y.extensions[t6])return;let Q=Y.extensions[t6],K=Q.byteOffset||0,W=Q.byteLength||0,G=Q.count,H=Q.byteStride,V=new Uint8Array(G*H),F=J.json.buffers[Q.buffer],z=F.uri?J.resources[F.uri]:J.resources[VC],q=v6.toView(z,K,W);this._decoder.decodeGltfBuffer(V,G,H,q,Q.mode,Q.filter),Z.bufferViews[$]=V})}_prereadPrimitives(Z){let J=Z.jsonDoc;(J.json.bufferViews||[]).forEach((Y)=>{if(!Y.extensions||!Y.extensions[t6])return;let $=Y.extensions[t6],Q=Z.buffers[$.buffer],K=Z.buffers[Y.buffer],W=J.json.buffers[Y.buffer];if(FM1(W))this._decoderFallbackBufferMap.set(K,Q)})}read(Z){if(!this.isRequired())return this;for(let[J,X]of this._decoderFallbackBufferMap){for(let Y of J.listParents())if(Y instanceof M0)Y.swap(J,X);J.dispose()}return this}prewrite(Z,J){if(J===s.ACCESSOR)this._prewriteAccessors(Z);else if(J===s.BUFFER)this._prewriteBuffers(Z);return this}_prewriteAccessors(Z){let J=Z.jsonDoc.json,X=this._encoder,Y=this._encoderOptions,$=this.document.getGraph(),Q=this.document.createBuffer(),K=this.document.getRoot().listBuffers().indexOf(Q),W=1,G=new Map,H=(V)=>{for(let F of $.listParents(V)){if(F.propertyType===s.ROOT)continue;let z=G.get(V);if(z===void 0)G.set(V,z=W++);return z}return-1};this._encoderFallbackBuffer=Q,this._encoderBufferViews={},this._encoderBufferViewData={},this._encoderBufferViewAccessors={};for(let V of this.document.getRoot().listAccessors()){if(ca(V)==="weights")continue;if(V.getSparse())continue;let F=Z.getAccessorUsage(V),z=Z.accessorUsageGroupedByParent.has(F)?H(V):null,q=VM1(V,F),U=Y.method===RH.FILTER?zM1(V,this.document):{filter:W8.NONE},L=KM1(V,X,q,U),{array:B,byteStride:w}=L,N=V.getBuffer();if(!N)throw new Error(`${t6}: Missing buffer for accessor.`);let R=this.document.getRoot().listBuffers().indexOf(N),M=[F,z,q,U.filter,w,R].join(":"),P=this._encoderBufferViews[M],j=this._encoderBufferViewData[M],C=this._encoderBufferViewAccessors[M];if(!P||!j)C=this._encoderBufferViewAccessors[M]=[],j=this._encoderBufferViewData[M]=[],P=this._encoderBufferViews[M]={buffer:K,target:yJ.USAGE_TO_TARGET[F],byteOffset:0,byteLength:0,byteStride:F===yJ.BufferViewUsage.ARRAY_BUFFER?w:void 0,extensions:{[t6]:{buffer:R,byteOffset:0,byteLength:0,mode:q,filter:U.filter!==W8.NONE?U.filter:void 0,byteStride:w,count:0}}};let T=Z.createAccessorDef(V);if(T.componentType=L.componentType,T.normalized=L.normalized,T.byteOffset=P.byteLength,T.min&&L.min)T.min=L.min;if(T.max&&L.max)T.max=L.max;Z.accessorIndexMap.set(V,J.accessors.length),J.accessors.push(T),C.push(T),j.push(new Uint8Array(B.buffer,B.byteOffset,B.byteLength)),P.byteLength+=B.byteLength,P.extensions.EXT_meshopt_compression.count+=V.getCount()}}_prewriteBuffers(Z){let J=this._encoder;for(let X in this._encoderBufferViews){let Y=this._encoderBufferViews[X],$=this._encoderBufferViewData[X],Q=this.document.getRoot().listBuffers()[Y.extensions[t6].buffer],K=Z.otherBufferViews.get(Q)||[],{count:W,byteStride:G,mode:H}=Y.extensions[t6],V=v6.concat($),F=J.encodeGltfBuffer(V,W,G,H),z=v6.pad(F);Y.extensions[t6].byteLength=F.byteLength,$.length=0,$.push(z),K.push(z),Z.otherBufferViews.set(Q,K)}}write(Z){let J=0;for(let Q in this._encoderBufferViews){let K=this._encoderBufferViews[Q],W=this._encoderBufferViewData[Q][0],G=Z.otherBufferViewsIndexMap.get(W),H=this._encoderBufferViewAccessors[Q];for(let q of H)q.bufferView=G;let V=Z.jsonDoc.json.bufferViews[G],F=V.byteOffset||0;Object.assign(V,K),V.byteOffset=J;let z=V.extensions[t6];z.byteOffset=F,J+=v6.padNumber(K.byteLength)}let X=this._encoderFallbackBuffer,Y=Z.bufferIndexMap.get(X),$=Z.jsonDoc.json.buffers[Y];return $.byteLength=J,$.extensions={[t6]:{fallback:!0}},X.dispose(),this}}jH.EXTENSION_NAME=t6;jH.EncoderMethod=RH;var wH=JM1;class la{match(Z){return Z.length>=12&&v6.decodeText(Z.slice(4,12))==="ftypavif"}getSize(Z){if(!this.match(Z))return null;let J=new DataView(Z.buffer,Z.byteOffset,Z.byteLength),X=Sa(J,0);if(!X)return null;let Y=X.end;while(X=Sa(J,Y))if(X.type==="meta")Y=X.start+4;else if(X.type==="iprp"||X.type==="ipco")Y=X.start;else if(X.type==="ispe")return[J.getUint32(X.start+4),J.getUint32(X.start+8)];else if(X.type==="mdat")break;else Y=X.end;return null}getChannels(Z){return 4}}class gB extends E1{constructor(...Z){super(...Z);this.extensionName=wH,this.prereadTypes=[s.TEXTURE]}static register(){M4.registerFormat("image/avif",new la)}preread(Z){return(Z.jsonDoc.json.textures||[]).forEach((X)=>{if(X.extensions&&X.extensions[wH])X.source=X.extensions[wH].source}),this}read(Z){return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listTextures().forEach((X)=>{if(X.getMimeType()==="image/avif"){let Y=Z.imageIndexMap.get(X);(J.json.textures||[]).forEach((Q)=>{if(Q.source===Y)Q.extensions=Q.extensions||{},Q.extensions[wH]={source:Q.source},delete Q.source})}}),this}}gB.EXTENSION_NAME=wH;function Sa(Z,J){if(Z.byteLength<4+J)return null;let X=Z.getUint32(J);if(Z.byteLength<X+J||X<8)return null;return{type:v6.decodeText(new Uint8Array(Z.buffer,Z.byteOffset+J+4,4)),start:J+8,end:J+X}}var OH=ZM1;class pa{match(Z){return Z.length>=12&&Z[8]===87&&Z[9]===69&&Z[10]===66&&Z[11]===80}getSize(Z){let J=v6.decodeText(Z.slice(0,4)),X=v6.decodeText(Z.slice(8,12));if(J!=="RIFF"||X!=="WEBP")return null;let Y=new DataView(Z.buffer,Z.byteOffset),$=12;while($<Y.byteLength){let Q=v6.decodeText(new Uint8Array([Y.getUint8($),Y.getUint8($+1),Y.getUint8($+2),Y.getUint8($+3)])),K=Y.getUint32($+4,!0);if(Q==="VP8 "){let W=Y.getInt16($+14,!0)&16383,G=Y.getInt16($+16,!0)&16383;return[W,G]}else if(Q==="VP8L"){let W=Y.getUint8($+9),G=Y.getUint8($+10),H=Y.getUint8($+11),V=Y.getUint8($+12),F=1+((G&63)<<8|W),z=1+((V&15)<<10|H<<2|(G&192)>>6);return[F,z]}$+=8+K+K%2}return null}getChannels(Z){return 4}}class mB extends E1{constructor(...Z){super(...Z);this.extensionName=OH,this.prereadTypes=[s.TEXTURE]}static register(){M4.registerFormat("image/webp",new pa)}preread(Z){return(Z.jsonDoc.json.textures||[]).forEach((X)=>{if(X.extensions&&X.extensions[OH])X.source=X.extensions[OH].source}),this}read(Z){return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listTextures().forEach((X)=>{if(X.getMimeType()==="image/webp"){let Y=Z.imageIndexMap.get(X);(J.json.textures||[]).forEach((Q)=>{if(Q.source===Y)Q.extensions=Q.extensions||{},Q.extensions[OH]={source:Q.source},delete Q.source})}}),this}}mB.EXTENSION_NAME=OH;var Aa=da,m8,ia,na;function qM1(Z,J){let X=new m8.DecoderBuffer;try{if(X.Init(J,J.length),Z.GetEncodedGeometryType(X)!==m8.TRIANGULAR_MESH)throw new Error(`[${Aa}] Unknown geometry type.`);let $=new m8.Mesh;if(!Z.DecodeBufferToMesh(X,$).ok()||$.ptr===0)throw new Error(`[${Aa}] Decoding failure.`);return $}finally{m8.destroy(X)}}function UM1(Z,J){let Y=J.num_faces()*3,$,Q;if(J.num_points()<=65534){let K=Y*Uint16Array.BYTES_PER_ELEMENT;$=m8._malloc(K),Z.GetTrianglesUInt16Array(J,K,$),Q=new Uint16Array(m8.HEAPU16.buffer,$,Y).slice()}else{let K=Y*Uint32Array.BYTES_PER_ELEMENT;$=m8._malloc(K),Z.GetTrianglesUInt32Array(J,K,$),Q=new Uint32Array(m8.HEAPU32.buffer,$,Y).slice()}return m8._free($),Q}function LM1(Z,J,X,Y){let $=na[Y.componentType],Q=ia[Y.componentType],K=X.num_components(),G=J.num_points()*K,H=G*Q.BYTES_PER_ELEMENT,V=m8._malloc(H);Z.GetAttributeDataArrayForAllPoints(J,X,$,H,V);let F=new Q(m8.HEAPF32.buffer,V,G).slice();return m8._free(V),F}function BM1(Z){m8=Z,ia={[M0.ComponentType.FLOAT]:Float32Array,[M0.ComponentType.UNSIGNED_INT]:Uint32Array,[M0.ComponentType.UNSIGNED_SHORT]:Uint16Array,[M0.ComponentType.UNSIGNED_BYTE]:Uint8Array,[M0.ComponentType.SHORT]:Int16Array,[M0.ComponentType.BYTE]:Int8Array},na={[M0.ComponentType.FLOAT]:m8.DT_FLOAT32,[M0.ComponentType.UNSIGNED_INT]:m8.DT_UINT32,[M0.ComponentType.UNSIGNED_SHORT]:m8.DT_UINT16,[M0.ComponentType.UNSIGNED_BYTE]:m8.DT_UINT8,[M0.ComponentType.SHORT]:m8.DT_INT16,[M0.ComponentType.BYTE]:m8.DT_INT8}}var v9,MH;(function(Z){Z[Z.EDGEBREAKER=1]="EDGEBREAKER",Z[Z.SEQUENTIAL=0]="SEQUENTIAL"})(MH||(MH={}));var _9;(function(Z){Z.POSITION="POSITION",Z.NORMAL="NORMAL",Z.COLOR="COLOR",Z.TEX_COORD="TEX_COORD",Z.GENERIC="GENERIC"})(_9||(_9={}));var aa={[_9.POSITION]:14,[_9.NORMAL]:10,[_9.COLOR]:8,[_9.TEX_COORD]:12,[_9.GENERIC]:12},xa={decodeSpeed:5,encodeSpeed:5,method:MH.EDGEBREAKER,quantizationBits:aa,quantizationVolume:"mesh"};function wM1(Z){v9=Z}function OM1(Z,J=xa){let X=jZ({},xa,J);X.quantizationBits=jZ({},aa,J.quantizationBits);let Y=new v9.MeshBuilder,$=new v9.Mesh,Q=new v9.ExpertEncoder($),K={},W=new v9.DracoInt8Array,G=Z.listTargets().length>0,H=!1;for(let L of Z.listSemantics()){let B=Z.getAttribute(L);if(B.getSparse()){H=!0;continue}let w=NM1(L),N=RM1(Y,B.getComponentType(),$,v9[w],B.getCount(),B.getElementSize(),B.getArray());if(N===-1)throw new Error(`Error compressing "${L}" attribute.`);if(K[L]=N,X.quantizationVolume==="mesh"||L!=="POSITION")Q.SetAttributeQuantization(N,X.quantizationBits[w]);else if(typeof X.quantizationVolume==="object"){let{quantizationVolume:R}=X,M=Math.max(R.max[0]-R.min[0],R.max[1]-R.min[1],R.max[2]-R.min[2]);Q.SetAttributeExplicitQuantization(N,X.quantizationBits[w],B.getElementSize(),R.min,M)}else throw new Error("Invalid quantization volume state.")}let V=Z.getIndices();if(!V)throw new fB("Primitive must have indices.");if(Y.AddFacesToMesh($,V.getCount()/3,V.getArray()),Q.SetSpeedOptions(X.encodeSpeed,X.decodeSpeed),Q.SetTrackEncodedProperties(!0),X.method===MH.SEQUENTIAL||G||H)Q.SetEncodingMethod(v9.MESH_SEQUENTIAL_ENCODING);else Q.SetEncodingMethod(v9.MESH_EDGEBREAKER_ENCODING);let F=Q.EncodeToDracoBuffer(!(G||H),W);if(F<=0)throw new fB("Error applying Draco compression.");let z=new Uint8Array(F);for(let L=0;L<F;++L)z[L]=W.GetValue(L);let q=Q.GetNumberOfEncodedPoints(),U=Q.GetNumberOfEncodedFaces()*3;return v9.destroy(W),v9.destroy($),v9.destroy(Y),v9.destroy(Q),{numVertices:q,numIndices:U,data:z,attributeIDs:K}}function NM1(Z){if(Z==="POSITION")return _9.POSITION;else if(Z==="NORMAL")return _9.NORMAL;else if(Z.startsWith("COLOR_"))return _9.COLOR;else if(Z.startsWith("TEXCOORD_"))return _9.TEX_COORD;return _9.GENERIC}function RM1(Z,J,X,Y,$,Q,K){switch(J){case M0.ComponentType.UNSIGNED_BYTE:return Z.AddUInt8Attribute(X,Y,$,Q,K);case M0.ComponentType.BYTE:return Z.AddInt8Attribute(X,Y,$,Q,K);case M0.ComponentType.UNSIGNED_SHORT:return Z.AddUInt16Attribute(X,Y,$,Q,K);case M0.ComponentType.SHORT:return Z.AddInt16Attribute(X,Y,$,Q,K);case M0.ComponentType.UNSIGNED_INT:return Z.AddUInt32Attribute(X,Y,$,Q,K);case M0.ComponentType.FLOAT:return Z.AddFloatAttribute(X,Y,$,Q,K);default:throw new Error(`Unexpected component type, "${J}".`)}}class fB extends Error{}var R8=da;class DH extends E1{constructor(...Z){super(...Z);this.extensionName=R8,this.prereadTypes=[s.PRIMITIVE],this.prewriteTypes=[s.ACCESSOR],this.readDependencies=["draco3d.decoder"],this.writeDependencies=["draco3d.encoder"],this._decoderModule=null,this._encoderModule=null,this._encoderOptions={}}install(Z,J){if(Z==="draco3d.decoder")this._decoderModule=J,BM1(this._decoderModule);if(Z==="draco3d.encoder")this._encoderModule=J,wM1(this._encoderModule);return this}setEncoderOptions(Z){return this._encoderOptions=Z,this}preread(Z){if(!this._decoderModule)throw new Error(`[${R8}] Please install extension dependency, "draco3d.decoder".`);let J=this.document.getLogger(),X=Z.jsonDoc,Y=new Map;try{let $=X.json.meshes||[];for(let Q of $)for(let K of Q.primitives){if(!K.extensions||!K.extensions[R8])continue;let W=K.extensions[R8],[G,H]=Y.get(W.bufferView)||[];if(!H||!G){let V=X.json.bufferViews[W.bufferView],F=X.json.buffers[V.buffer],z=F.uri?X.resources[F.uri]:X.resources[VC],q=V.byteOffset||0,U=V.byteLength,L=v6.toView(z,q,U);G=new this._decoderModule.Decoder,H=qM1(G,L),Y.set(W.bufferView,[G,H]),J.debug(`[${R8}] Decompressed ${L.byteLength} bytes.`)}for(let V in W.attributes){let F=Z.jsonDoc.json.accessors[K.attributes[V]],z=G.GetAttributeByUniqueId(H,W.attributes[V]),q=LM1(G,H,z,F);Z.accessors[K.attributes[V]].setArray(q)}if(K.indices!==void 0)Z.accessors[K.indices].setArray(UM1(G,H))}}finally{for(let[$,Q]of Array.from(Y.values()))this._decoderModule.destroy($),this._decoderModule.destroy(Q)}return this}read(Z){return this}prewrite(Z,J){if(!this._encoderModule)throw new Error(`[${R8}] Please install extension dependency, "draco3d.encoder".`);let X=this.document.getLogger();X.debug(`[${R8}] Compression options: ${JSON.stringify(this._encoderOptions)}`);let Y=MM1(this.document),$=new Map,Q="mesh";if(this._encoderOptions.quantizationVolume==="scene")if(this.document.getRoot().listScenes().length!==1)X.warn(`[${R8}]: quantizationVolume=scene requires exactly 1 scene.`);else Q=Ra(this.document.getRoot().listScenes().pop());for(let K of Array.from(Y.keys())){let W=Y.get(K);if(!W)throw new Error("Unexpected primitive.");if($.has(W)){$.set(W,$.get(W));continue}let G=K.getIndices(),H=Z.jsonDoc.json.accessors,V;try{V=OM1(K,jZ({},this._encoderOptions,{quantizationVolume:Q}))}catch(q){if(q instanceof fB){X.warn(`[${R8}]: ${q.message} Skipping primitive compression.`);continue}throw q}$.set(W,V);let F=Z.createAccessorDef(G);if(F.count=V.numIndices,Z.accessorIndexMap.set(G,H.length),H.push(F),V.numVertices>65534&&M0.getComponentSize(F.componentType)<=2)F.componentType=M0.ComponentType.UNSIGNED_INT;else if(V.numVertices>254&&M0.getComponentSize(F.componentType)<=1)F.componentType=M0.ComponentType.UNSIGNED_SHORT;for(let q of K.listSemantics()){let U=K.getAttribute(q);if(V.attributeIDs[q]===void 0)continue;let L=Z.createAccessorDef(U);L.count=V.numVertices,Z.accessorIndexMap.set(U,H.length),H.push(L)}let z=K.getAttribute("POSITION").getBuffer()||this.document.getRoot().listBuffers()[0];if(!Z.otherBufferViews.has(z))Z.otherBufferViews.set(z,[]);Z.otherBufferViews.get(z).push(V.data)}return X.debug(`[${R8}] Compressed ${Y.size} primitives.`),Z.extensionData[R8]={primitiveHashMap:Y,primitiveEncodingMap:$},this}write(Z){let J=Z.extensionData[R8];for(let X of this.document.getRoot().listMeshes()){let Y=Z.jsonDoc.json.meshes[Z.meshIndexMap.get(X)];for(let $=0;$<X.listPrimitives().length;$++){let Q=X.listPrimitives()[$],K=Y.primitives[$],W=J.primitiveHashMap.get(Q);if(!W)continue;let G=J.primitiveEncodingMap.get(W);if(!G)continue;K.extensions=K.extensions||{},K.extensions[R8]={bufferView:Z.otherBufferViewsIndexMap.get(G.data),attributes:G.attributeIDs}}}if(!J.primitiveHashMap.size){let X=Z.jsonDoc.json;X.extensionsUsed=(X.extensionsUsed||[]).filter((Y)=>Y!==R8),X.extensionsRequired=(X.extensionsRequired||[]).filter((Y)=>Y!==R8)}return this}}DH.EXTENSION_NAME=R8;DH.EncoderMethod=MH;function MM1(Z){let J=Z.getLogger(),X=new Set,Y=new Set,$=0,Q=0;for(let F of Z.getRoot().listMeshes())for(let z of F.listPrimitives())if(!z.getIndices())Y.add(z),$++;else if(z.getMode()!==fJ.Mode.TRIANGLES)Y.add(z),Q++;else X.add(z);if($>0)J.warn(`[${R8}] Skipping Draco compression of ${$} non-indexed primitives.`);if(Q>0)J.warn(`[${R8}] Skipping Draco compression of ${Q} non-TRIANGLES primitives.`);let K=Z.getRoot().listAccessors(),W=new Map;for(let F=0;F<K.length;F++)W.set(K[F],F);let G=new Map,H=new Set,V=new Map;for(let F of Array.from(X)){let z=ha(F,W);if(H.has(z)){V.set(F,z);continue}if(G.has(F.getIndices())){let q=F.getIndices(),U=q.clone();W.set(U,Z.getRoot().listAccessors().length-1),F.swap(q,U)}for(let q of F.listAttributes())if(G.has(q)){let U=q.clone();W.set(U,Z.getRoot().listAccessors().length-1),F.swap(q,U)}z=ha(F,W),H.add(z),V.set(F,z),G.set(F.getIndices(),z);for(let q of F.listAttributes())G.set(q,z)}for(let F of Array.from(G.keys())){let z=new Set(F.listParents().map((q)=>q.propertyType));if(z.size!==2||!z.has(s.PRIMITIVE)||!z.has(s.ROOT))throw new Error(`[${R8}] Compressed accessors must only be used as indices or vertex attributes.`)}for(let F of Array.from(X)){let z=V.get(F),q=F.getIndices();if(G.get(q)!==z||F.listAttributes().some((U)=>G.get(U)!==z))throw new Error(`[${R8}] Draco primitives must share all, or no, accessors.`)}for(let F of Array.from(Y)){let z=F.getIndices();if(G.has(z)||F.listAttributes().some((q)=>G.has(q)))throw new Error(`[${R8}] Accessor cannot be shared by compressed and uncompressed primitives.`)}return V}function ha(Z,J){let X=[],Y=Z.getIndices();X.push(J.get(Y));for(let $ of Z.listAttributes())X.push(J.get($));return X.sort().join("|")}class PK extends i1{init(){this.extensionName=PC,this.propertyType="Light",this.parentTypes=[s.NODE]}getDefaults(){return Object.assign(super.getDefaults(),{color:[1,1,1],intensity:1,type:PK.Type.POINT,range:null,innerConeAngle:0,outerConeAngle:Math.PI/4})}getColor(){return this.get("color")}setColor(Z){return this.set("color",Z)}getIntensity(){return this.get("intensity")}setIntensity(Z){return this.set("intensity",Z)}getType(){return this.get("type")}setType(Z){return this.set("type",Z)}getRange(){return this.get("range")}setRange(Z){return this.set("range",Z)}getInnerConeAngle(){return this.get("innerConeAngle")}setInnerConeAngle(Z){return this.set("innerConeAngle",Z)}getOuterConeAngle(){return this.get("outerConeAngle")}setOuterConeAngle(Z){return this.set("outerConeAngle",Z)}}PK.EXTENSION_NAME=PC;PK.Type={POINT:"point",SPOT:"spot",DIRECTIONAL:"directional"};var B7=PC;class mC extends E1{constructor(...Z){super(...Z);this.extensionName=B7}createLight(Z=""){return new PK(this.document.getGraph(),Z)}read(Z){let J=Z.jsonDoc;if(!J.json.extensions||!J.json.extensions[B7])return this;let $=(J.json.extensions[B7].lights||[]).map((Q)=>{var K,W;let G=this.createLight().setName(Q.name||"").setType(Q.type);if(Q.color!==void 0)G.setColor(Q.color);if(Q.intensity!==void 0)G.setIntensity(Q.intensity);if(Q.range!==void 0)G.setRange(Q.range);if(((K=Q.spot)==null?void 0:K.innerConeAngle)!==void 0)G.setInnerConeAngle(Q.spot.innerConeAngle);if(((W=Q.spot)==null?void 0:W.outerConeAngle)!==void 0)G.setOuterConeAngle(Q.spot.outerConeAngle);return G});return J.json.nodes.forEach((Q,K)=>{if(!Q.extensions||!Q.extensions[B7])return;let W=Q.extensions[B7];Z.nodes[K].setExtension(B7,$[W.light])}),this}write(Z){let J=Z.jsonDoc;if(this.properties.size===0)return this;let X=[],Y=new Map;for(let $ of this.properties){let Q=$,K={type:Q.getType()};if(!K8.eq(Q.getColor(),[1,1,1]))K.color=Q.getColor();if(Q.getIntensity()!==1)K.intensity=Q.getIntensity();if(Q.getRange()!=null)K.range=Q.getRange();if(Q.getName())K.name=Q.getName();if(Q.getType()===PK.Type.SPOT)K.spot={innerConeAngle:Q.getInnerConeAngle(),outerConeAngle:Q.getOuterConeAngle()};X.push(K),Y.set(Q,X.length-1)}return this.document.getRoot().listNodes().forEach(($)=>{let Q=$.getExtension(B7);if(Q){let K=Z.nodeIndexMap.get($),W=J.json.nodes[K];W.extensions=W.extensions||{},W.extensions[B7]={light:Y.get(Q)}}}),J.json.extensions=J.json.extensions||{},J.json.extensions[B7]={lights:X},this}}mC.EXTENSION_NAME=B7;var{R:jM1,G:DM1,B:PM1}=o5;class uC extends i1{init(){this.extensionName=CC,this.propertyType="Anisotropy",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{anisotropyStrength:0,anisotropyRotation:0,anisotropyTexture:null,anisotropyTextureInfo:new P1(this.graph,"anisotropyTextureInfo")})}getAnisotropyStrength(){return this.get("anisotropyStrength")}setAnisotropyStrength(Z){return this.set("anisotropyStrength",Z)}getAnisotropyRotation(){return this.get("anisotropyRotation")}setAnisotropyRotation(Z){return this.set("anisotropyRotation",Z)}getAnisotropyTexture(){return this.getRef("anisotropyTexture")}getAnisotropyTextureInfo(){return this.getRef("anisotropyTexture")?this.getRef("anisotropyTextureInfo"):null}setAnisotropyTexture(Z){return this.setRef("anisotropyTexture",Z,{channels:jM1|DM1|PM1})}}uC.EXTENSION_NAME=CC;var IY=CC;class dC extends E1{constructor(...Z){super(...Z);this.extensionName=IY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createAnisotropy(){return new uC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[IY]){let K=this.createAnisotropy();Z.materials[Q].setExtension(IY,K);let W=$.extensions[IY];if(W.anisotropyStrength!==void 0)K.setAnisotropyStrength(W.anisotropyStrength);if(W.anisotropyRotation!==void 0)K.setAnisotropyRotation(W.anisotropyRotation);if(W.anisotropyTexture!==void 0){let G=W.anisotropyTexture,H=Z.textures[Y[G.index].source];K.setAnisotropyTexture(H),Z.setTextureInfo(K.getAnisotropyTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(IY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[IY]={};if(Y.getAnisotropyStrength()>0)K.anisotropyStrength=Y.getAnisotropyStrength();if(Y.getAnisotropyRotation()!==0)K.anisotropyRotation=Y.getAnisotropyRotation();if(Y.getAnisotropyTexture()){let W=Y.getAnisotropyTexture(),G=Y.getAnisotropyTextureInfo();K.anisotropyTexture=Z.createTextureInfoDef(W,G)}}}),this}}dC.EXTENSION_NAME=IY;var{R:fa,G:ya,B:CM1}=o5;class cC extends i1{init(){this.extensionName=TC,this.propertyType="Clearcoat",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{clearcoatFactor:0,clearcoatTexture:null,clearcoatTextureInfo:new P1(this.graph,"clearcoatTextureInfo"),clearcoatRoughnessFactor:0,clearcoatRoughnessTexture:null,clearcoatRoughnessTextureInfo:new P1(this.graph,"clearcoatRoughnessTextureInfo"),clearcoatNormalScale:1,clearcoatNormalTexture:null,clearcoatNormalTextureInfo:new P1(this.graph,"clearcoatNormalTextureInfo")})}getClearcoatFactor(){return this.get("clearcoatFactor")}setClearcoatFactor(Z){return this.set("clearcoatFactor",Z)}getClearcoatTexture(){return this.getRef("clearcoatTexture")}getClearcoatTextureInfo(){return this.getRef("clearcoatTexture")?this.getRef("clearcoatTextureInfo"):null}setClearcoatTexture(Z){return this.setRef("clearcoatTexture",Z,{channels:fa})}getClearcoatRoughnessFactor(){return this.get("clearcoatRoughnessFactor")}setClearcoatRoughnessFactor(Z){return this.set("clearcoatRoughnessFactor",Z)}getClearcoatRoughnessTexture(){return this.getRef("clearcoatRoughnessTexture")}getClearcoatRoughnessTextureInfo(){return this.getRef("clearcoatRoughnessTexture")?this.getRef("clearcoatRoughnessTextureInfo"):null}setClearcoatRoughnessTexture(Z){return this.setRef("clearcoatRoughnessTexture",Z,{channels:ya})}getClearcoatNormalScale(){return this.get("clearcoatNormalScale")}setClearcoatNormalScale(Z){return this.set("clearcoatNormalScale",Z)}getClearcoatNormalTexture(){return this.getRef("clearcoatNormalTexture")}getClearcoatNormalTextureInfo(){return this.getRef("clearcoatNormalTexture")?this.getRef("clearcoatNormalTextureInfo"):null}setClearcoatNormalTexture(Z){return this.setRef("clearcoatNormalTexture",Z,{channels:fa|ya|CM1})}}cC.EXTENSION_NAME=TC;var kY=TC;class lC extends E1{constructor(...Z){super(...Z);this.extensionName=kY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createClearcoat(){return new cC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[kY]){let K=this.createClearcoat();Z.materials[Q].setExtension(kY,K);let W=$.extensions[kY];if(W.clearcoatFactor!==void 0)K.setClearcoatFactor(W.clearcoatFactor);if(W.clearcoatRoughnessFactor!==void 0)K.setClearcoatRoughnessFactor(W.clearcoatRoughnessFactor);if(W.clearcoatTexture!==void 0){let G=W.clearcoatTexture,H=Z.textures[Y[G.index].source];K.setClearcoatTexture(H),Z.setTextureInfo(K.getClearcoatTextureInfo(),G)}if(W.clearcoatRoughnessTexture!==void 0){let G=W.clearcoatRoughnessTexture,H=Z.textures[Y[G.index].source];K.setClearcoatRoughnessTexture(H),Z.setTextureInfo(K.getClearcoatRoughnessTextureInfo(),G)}if(W.clearcoatNormalTexture!==void 0){let G=W.clearcoatNormalTexture,H=Z.textures[Y[G.index].source];if(K.setClearcoatNormalTexture(H),Z.setTextureInfo(K.getClearcoatNormalTextureInfo(),G),G.scale!==void 0)K.setClearcoatNormalScale(G.scale)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(kY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[kY]={clearcoatFactor:Y.getClearcoatFactor(),clearcoatRoughnessFactor:Y.getClearcoatRoughnessFactor()};if(Y.getClearcoatTexture()){let W=Y.getClearcoatTexture(),G=Y.getClearcoatTextureInfo();K.clearcoatTexture=Z.createTextureInfoDef(W,G)}if(Y.getClearcoatRoughnessTexture()){let W=Y.getClearcoatRoughnessTexture(),G=Y.getClearcoatRoughnessTextureInfo();K.clearcoatRoughnessTexture=Z.createTextureInfoDef(W,G)}if(Y.getClearcoatNormalTexture()){let W=Y.getClearcoatNormalTexture(),G=Y.getClearcoatNormalTextureInfo();if(K.clearcoatNormalTexture=Z.createTextureInfoDef(W,G),Y.getClearcoatNormalScale()!==1)K.clearcoatNormalTexture.scale=Y.getClearcoatNormalScale()}}}),this}}lC.EXTENSION_NAME=kY;var{R:TM1,G:EM1,B:IM1,A:kM1}=o5;class pC extends i1{init(){this.extensionName=EC,this.propertyType="DiffuseTransmission",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{diffuseTransmissionFactor:0,diffuseTransmissionTexture:null,diffuseTransmissionTextureInfo:new P1(this.graph,"diffuseTransmissionTextureInfo"),diffuseTransmissionColorFactor:[1,1,1],diffuseTransmissionColorTexture:null,diffuseTransmissionColorTextureInfo:new P1(this.graph,"diffuseTransmissionColorTextureInfo")})}getDiffuseTransmissionFactor(){return this.get("diffuseTransmissionFactor")}setDiffuseTransmissionFactor(Z){return this.set("diffuseTransmissionFactor",Z)}getDiffuseTransmissionTexture(){return this.getRef("diffuseTransmissionTexture")}getDiffuseTransmissionTextureInfo(){return this.getRef("diffuseTransmissionTexture")?this.getRef("diffuseTransmissionTextureInfo"):null}setDiffuseTransmissionTexture(Z){return this.setRef("diffuseTransmissionTexture",Z,{channels:kM1})}getDiffuseTransmissionColorFactor(){return this.get("diffuseTransmissionColorFactor")}setDiffuseTransmissionColorFactor(Z){return this.set("diffuseTransmissionColorFactor",Z)}getDiffuseTransmissionColorTexture(){return this.getRef("diffuseTransmissionColorTexture")}getDiffuseTransmissionColorTextureInfo(){return this.getRef("diffuseTransmissionColorTexture")?this.getRef("diffuseTransmissionColorTextureInfo"):null}setDiffuseTransmissionColorTexture(Z){return this.setRef("diffuseTransmissionColorTexture",Z,{channels:TM1|EM1|IM1})}}pC.EXTENSION_NAME=EC;var vY=EC;class iC extends E1{constructor(...Z){super(...Z);this.extensionName=vY}createDiffuseTransmission(){return new pC(this.document.getGraph())}read(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[vY]){let K=this.createDiffuseTransmission();Z.materials[Q].setExtension(vY,K);let W=$.extensions[vY];if(W.diffuseTransmissionFactor!==void 0)K.setDiffuseTransmissionFactor(W.diffuseTransmissionFactor);if(W.diffuseTransmissionColorFactor!==void 0)K.setDiffuseTransmissionColorFactor(W.diffuseTransmissionColorFactor);if(W.diffuseTransmissionTexture!==void 0){let G=W.diffuseTransmissionTexture,H=Z.textures[Y[G.index].source];K.setDiffuseTransmissionTexture(H),Z.setTextureInfo(K.getDiffuseTransmissionTextureInfo(),G)}if(W.diffuseTransmissionColorTexture!==void 0){let G=W.diffuseTransmissionColorTexture,H=Z.textures[Y[G.index].source];K.setDiffuseTransmissionColorTexture(H),Z.setTextureInfo(K.getDiffuseTransmissionColorTextureInfo(),G)}}}),this}write(Z){let J=Z.jsonDoc;for(let X of this.document.getRoot().listMaterials()){let Y=X.getExtension(vY);if(!Y)continue;let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[vY]={diffuseTransmissionFactor:Y.getDiffuseTransmissionFactor(),diffuseTransmissionColorFactor:Y.getDiffuseTransmissionColorFactor()};if(Y.getDiffuseTransmissionTexture()){let W=Y.getDiffuseTransmissionTexture(),G=Y.getDiffuseTransmissionTextureInfo();K.diffuseTransmissionTexture=Z.createTextureInfoDef(W,G)}if(Y.getDiffuseTransmissionColorTexture()){let W=Y.getDiffuseTransmissionColorTexture(),G=Y.getDiffuseTransmissionColorTextureInfo();K.diffuseTransmissionColorTexture=Z.createTextureInfoDef(W,G)}}return this}}iC.EXTENSION_NAME=vY;class nC extends i1{init(){this.extensionName=IC,this.propertyType="Dispersion",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{dispersion:0})}getDispersion(){return this.get("dispersion")}setDispersion(Z){return this.set("dispersion",Z)}}nC.EXTENSION_NAME=IC;var _Y=IC;class aC extends E1{constructor(...Z){super(...Z);this.extensionName=_Y,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createDispersion(){return new nC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((Y,$)=>{if(Y.extensions&&Y.extensions[_Y]){let Q=this.createDispersion();Z.materials[$].setExtension(_Y,Q);let K=Y.extensions[_Y];if(K.dispersion!==void 0)Q.setDispersion(K.dispersion)}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(_Y);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{},Q.extensions[_Y]={dispersion:Y.getDispersion()}}}),this}}aC.EXTENSION_NAME=_Y;class sC extends i1{init(){this.extensionName=kC,this.propertyType="EmissiveStrength",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{emissiveStrength:1})}getEmissiveStrength(){return this.get("emissiveStrength")}setEmissiveStrength(Z){return this.set("emissiveStrength",Z)}}sC.EXTENSION_NAME=kC;var SY=kC;class oC extends E1{constructor(...Z){super(...Z);this.extensionName=SY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createEmissiveStrength(){return new sC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((Y,$)=>{if(Y.extensions&&Y.extensions[SY]){let Q=this.createEmissiveStrength();Z.materials[$].setExtension(SY,Q);let K=Y.extensions[SY];if(K.emissiveStrength!==void 0)Q.setEmissiveStrength(K.emissiveStrength)}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(SY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{},Q.extensions[SY]={emissiveStrength:Y.getEmissiveStrength()}}}),this}}oC.EXTENSION_NAME=SY;class rC extends i1{init(){this.extensionName=vC,this.propertyType="IOR",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{ior:1.5})}getIOR(){return this.get("ior")}setIOR(Z){return this.set("ior",Z)}}rC.EXTENSION_NAME=vC;var AY=vC;class uB extends E1{constructor(...Z){super(...Z);this.extensionName=AY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createIOR(){return new rC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((Y,$)=>{if(Y.extensions&&Y.extensions[AY]){let Q=this.createIOR();Z.materials[$].setExtension(AY,Q);let K=Y.extensions[AY];if(K.ior!==void 0)Q.setIOR(K.ior)}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(AY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{},Q.extensions[AY]={ior:Y.getIOR()}}}),this}}uB.EXTENSION_NAME=AY;var{R:vM1,G:_M1}=o5;class tC extends i1{init(){this.extensionName=_C,this.propertyType="Iridescence",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{iridescenceFactor:0,iridescenceTexture:null,iridescenceTextureInfo:new P1(this.graph,"iridescenceTextureInfo"),iridescenceIOR:1.3,iridescenceThicknessMinimum:100,iridescenceThicknessMaximum:400,iridescenceThicknessTexture:null,iridescenceThicknessTextureInfo:new P1(this.graph,"iridescenceThicknessTextureInfo")})}getIridescenceFactor(){return this.get("iridescenceFactor")}setIridescenceFactor(Z){return this.set("iridescenceFactor",Z)}getIridescenceTexture(){return this.getRef("iridescenceTexture")}getIridescenceTextureInfo(){return this.getRef("iridescenceTexture")?this.getRef("iridescenceTextureInfo"):null}setIridescenceTexture(Z){return this.setRef("iridescenceTexture",Z,{channels:vM1})}getIridescenceIOR(){return this.get("iridescenceIOR")}setIridescenceIOR(Z){return this.set("iridescenceIOR",Z)}getIridescenceThicknessMinimum(){return this.get("iridescenceThicknessMinimum")}setIridescenceThicknessMinimum(Z){return this.set("iridescenceThicknessMinimum",Z)}getIridescenceThicknessMaximum(){return this.get("iridescenceThicknessMaximum")}setIridescenceThicknessMaximum(Z){return this.set("iridescenceThicknessMaximum",Z)}getIridescenceThicknessTexture(){return this.getRef("iridescenceThicknessTexture")}getIridescenceThicknessTextureInfo(){return this.getRef("iridescenceThicknessTexture")?this.getRef("iridescenceThicknessTextureInfo"):null}setIridescenceThicknessTexture(Z){return this.setRef("iridescenceThicknessTexture",Z,{channels:_M1})}}tC.EXTENSION_NAME=_C;var xY=_C;class eC extends E1{constructor(...Z){super(...Z);this.extensionName=xY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createIridescence(){return new tC(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[xY]){let K=this.createIridescence();Z.materials[Q].setExtension(xY,K);let W=$.extensions[xY];if(W.iridescenceFactor!==void 0)K.setIridescenceFactor(W.iridescenceFactor);if(W.iridescenceIor!==void 0)K.setIridescenceIOR(W.iridescenceIor);if(W.iridescenceThicknessMinimum!==void 0)K.setIridescenceThicknessMinimum(W.iridescenceThicknessMinimum);if(W.iridescenceThicknessMaximum!==void 0)K.setIridescenceThicknessMaximum(W.iridescenceThicknessMaximum);if(W.iridescenceTexture!==void 0){let G=W.iridescenceTexture,H=Z.textures[Y[G.index].source];K.setIridescenceTexture(H),Z.setTextureInfo(K.getIridescenceTextureInfo(),G)}if(W.iridescenceThicknessTexture!==void 0){let G=W.iridescenceThicknessTexture,H=Z.textures[Y[G.index].source];K.setIridescenceThicknessTexture(H),Z.setTextureInfo(K.getIridescenceThicknessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(xY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[xY]={};if(Y.getIridescenceFactor()>0)K.iridescenceFactor=Y.getIridescenceFactor();if(Y.getIridescenceIOR()!==1.3)K.iridescenceIor=Y.getIridescenceIOR();if(Y.getIridescenceThicknessMinimum()!==100)K.iridescenceThicknessMinimum=Y.getIridescenceThicknessMinimum();if(Y.getIridescenceThicknessMaximum()!==400)K.iridescenceThicknessMaximum=Y.getIridescenceThicknessMaximum();if(Y.getIridescenceTexture()){let W=Y.getIridescenceTexture(),G=Y.getIridescenceTextureInfo();K.iridescenceTexture=Z.createTextureInfoDef(W,G)}if(Y.getIridescenceThicknessTexture()){let W=Y.getIridescenceThicknessTexture(),G=Y.getIridescenceThicknessTextureInfo();K.iridescenceThicknessTexture=Z.createTextureInfoDef(W,G)}}}),this}}eC.EXTENSION_NAME=xY;var{R:ba,G:ga,B:ma,A:ua}=o5;class ZT extends i1{init(){this.extensionName=SC,this.propertyType="PBRSpecularGlossiness",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{diffuseFactor:[1,1,1,1],diffuseTexture:null,diffuseTextureInfo:new P1(this.graph,"diffuseTextureInfo"),specularFactor:[1,1,1],glossinessFactor:1,specularGlossinessTexture:null,specularGlossinessTextureInfo:new P1(this.graph,"specularGlossinessTextureInfo")})}getDiffuseFactor(){return this.get("diffuseFactor")}setDiffuseFactor(Z){return this.set("diffuseFactor",Z)}getDiffuseTexture(){return this.getRef("diffuseTexture")}getDiffuseTextureInfo(){return this.getRef("diffuseTexture")?this.getRef("diffuseTextureInfo"):null}setDiffuseTexture(Z){return this.setRef("diffuseTexture",Z,{channels:ba|ga|ma|ua,isColor:!0})}getSpecularFactor(){return this.get("specularFactor")}setSpecularFactor(Z){return this.set("specularFactor",Z)}getGlossinessFactor(){return this.get("glossinessFactor")}setGlossinessFactor(Z){return this.set("glossinessFactor",Z)}getSpecularGlossinessTexture(){return this.getRef("specularGlossinessTexture")}getSpecularGlossinessTextureInfo(){return this.getRef("specularGlossinessTexture")?this.getRef("specularGlossinessTextureInfo"):null}setSpecularGlossinessTexture(Z){return this.setRef("specularGlossinessTexture",Z,{channels:ba|ga|ma|ua})}}ZT.EXTENSION_NAME=SC;var hY=SC;class dB extends E1{constructor(...Z){super(...Z);this.extensionName=hY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createPBRSpecularGlossiness(){return new ZT(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[hY]){let K=this.createPBRSpecularGlossiness();Z.materials[Q].setExtension(hY,K);let W=$.extensions[hY];if(W.diffuseFactor!==void 0)K.setDiffuseFactor(W.diffuseFactor);if(W.specularFactor!==void 0)K.setSpecularFactor(W.specularFactor);if(W.glossinessFactor!==void 0)K.setGlossinessFactor(W.glossinessFactor);if(W.diffuseTexture!==void 0){let G=W.diffuseTexture,H=Z.textures[Y[G.index].source];K.setDiffuseTexture(H),Z.setTextureInfo(K.getDiffuseTextureInfo(),G)}if(W.specularGlossinessTexture!==void 0){let G=W.specularGlossinessTexture,H=Z.textures[Y[G.index].source];K.setSpecularGlossinessTexture(H),Z.setTextureInfo(K.getSpecularGlossinessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(hY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[hY]={diffuseFactor:Y.getDiffuseFactor(),specularFactor:Y.getSpecularFactor(),glossinessFactor:Y.getGlossinessFactor()};if(Y.getDiffuseTexture()){let W=Y.getDiffuseTexture(),G=Y.getDiffuseTextureInfo();K.diffuseTexture=Z.createTextureInfoDef(W,G)}if(Y.getSpecularGlossinessTexture()){let W=Y.getSpecularGlossinessTexture(),G=Y.getSpecularGlossinessTextureInfo();K.specularGlossinessTexture=Z.createTextureInfoDef(W,G)}}}),this}}dB.EXTENSION_NAME=hY;var{R:SM1,G:AM1,B:xM1,A:hM1}=o5;class JT extends i1{init(){this.extensionName=AC,this.propertyType="Sheen",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{sheenColorFactor:[0,0,0],sheenColorTexture:null,sheenColorTextureInfo:new P1(this.graph,"sheenColorTextureInfo"),sheenRoughnessFactor:0,sheenRoughnessTexture:null,sheenRoughnessTextureInfo:new P1(this.graph,"sheenRoughnessTextureInfo")})}getSheenColorFactor(){return this.get("sheenColorFactor")}setSheenColorFactor(Z){return this.set("sheenColorFactor",Z)}getSheenColorTexture(){return this.getRef("sheenColorTexture")}getSheenColorTextureInfo(){return this.getRef("sheenColorTexture")?this.getRef("sheenColorTextureInfo"):null}setSheenColorTexture(Z){return this.setRef("sheenColorTexture",Z,{channels:SM1|AM1|xM1,isColor:!0})}getSheenRoughnessFactor(){return this.get("sheenRoughnessFactor")}setSheenRoughnessFactor(Z){return this.set("sheenRoughnessFactor",Z)}getSheenRoughnessTexture(){return this.getRef("sheenRoughnessTexture")}getSheenRoughnessTextureInfo(){return this.getRef("sheenRoughnessTexture")?this.getRef("sheenRoughnessTextureInfo"):null}setSheenRoughnessTexture(Z){return this.setRef("sheenRoughnessTexture",Z,{channels:hM1})}}JT.EXTENSION_NAME=AC;var fY=AC;class XT extends E1{constructor(...Z){super(...Z);this.extensionName=fY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createSheen(){return new JT(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[fY]){let K=this.createSheen();Z.materials[Q].setExtension(fY,K);let W=$.extensions[fY];if(W.sheenColorFactor!==void 0)K.setSheenColorFactor(W.sheenColorFactor);if(W.sheenRoughnessFactor!==void 0)K.setSheenRoughnessFactor(W.sheenRoughnessFactor);if(W.sheenColorTexture!==void 0){let G=W.sheenColorTexture,H=Z.textures[Y[G.index].source];K.setSheenColorTexture(H),Z.setTextureInfo(K.getSheenColorTextureInfo(),G)}if(W.sheenRoughnessTexture!==void 0){let G=W.sheenRoughnessTexture,H=Z.textures[Y[G.index].source];K.setSheenRoughnessTexture(H),Z.setTextureInfo(K.getSheenRoughnessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(fY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[fY]={sheenColorFactor:Y.getSheenColorFactor(),sheenRoughnessFactor:Y.getSheenRoughnessFactor()};if(Y.getSheenColorTexture()){let W=Y.getSheenColorTexture(),G=Y.getSheenColorTextureInfo();K.sheenColorTexture=Z.createTextureInfoDef(W,G)}if(Y.getSheenRoughnessTexture()){let W=Y.getSheenRoughnessTexture(),G=Y.getSheenRoughnessTextureInfo();K.sheenRoughnessTexture=Z.createTextureInfoDef(W,G)}}}),this}}XT.EXTENSION_NAME=fY;var{R:fM1,G:yM1,B:bM1,A:gM1}=o5;class YT extends i1{init(){this.extensionName=xC,this.propertyType="Specular",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{specularFactor:1,specularTexture:null,specularTextureInfo:new P1(this.graph,"specularTextureInfo"),specularColorFactor:[1,1,1],specularColorTexture:null,specularColorTextureInfo:new P1(this.graph,"specularColorTextureInfo")})}getSpecularFactor(){return this.get("specularFactor")}setSpecularFactor(Z){return this.set("specularFactor",Z)}getSpecularColorFactor(){return this.get("specularColorFactor")}setSpecularColorFactor(Z){return this.set("specularColorFactor",Z)}getSpecularTexture(){return this.getRef("specularTexture")}getSpecularTextureInfo(){return this.getRef("specularTexture")?this.getRef("specularTextureInfo"):null}setSpecularTexture(Z){return this.setRef("specularTexture",Z,{channels:gM1})}getSpecularColorTexture(){return this.getRef("specularColorTexture")}getSpecularColorTextureInfo(){return this.getRef("specularColorTexture")?this.getRef("specularColorTextureInfo"):null}setSpecularColorTexture(Z){return this.setRef("specularColorTexture",Z,{channels:fM1|yM1|bM1,isColor:!0})}}YT.EXTENSION_NAME=xC;var yY=xC;class cB extends E1{constructor(...Z){super(...Z);this.extensionName=yY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createSpecular(){return new YT(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[yY]){let K=this.createSpecular();Z.materials[Q].setExtension(yY,K);let W=$.extensions[yY];if(W.specularFactor!==void 0)K.setSpecularFactor(W.specularFactor);if(W.specularColorFactor!==void 0)K.setSpecularColorFactor(W.specularColorFactor);if(W.specularTexture!==void 0){let G=W.specularTexture,H=Z.textures[Y[G.index].source];K.setSpecularTexture(H),Z.setTextureInfo(K.getSpecularTextureInfo(),G)}if(W.specularColorTexture!==void 0){let G=W.specularColorTexture,H=Z.textures[Y[G.index].source];K.setSpecularColorTexture(H),Z.setTextureInfo(K.getSpecularColorTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(yY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[yY]={};if(Y.getSpecularFactor()!==1)K.specularFactor=Y.getSpecularFactor();if(!K8.eq(Y.getSpecularColorFactor(),[1,1,1]))K.specularColorFactor=Y.getSpecularColorFactor();if(Y.getSpecularTexture()){let W=Y.getSpecularTexture(),G=Y.getSpecularTextureInfo();K.specularTexture=Z.createTextureInfoDef(W,G)}if(Y.getSpecularColorTexture()){let W=Y.getSpecularColorTexture(),G=Y.getSpecularColorTextureInfo();K.specularColorTexture=Z.createTextureInfoDef(W,G)}}}),this}}cB.EXTENSION_NAME=yY;var{R:mM1}=o5;class $T extends i1{init(){this.extensionName=hC,this.propertyType="Transmission",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{transmissionFactor:0,transmissionTexture:null,transmissionTextureInfo:new P1(this.graph,"transmissionTextureInfo")})}getTransmissionFactor(){return this.get("transmissionFactor")}setTransmissionFactor(Z){return this.set("transmissionFactor",Z)}getTransmissionTexture(){return this.getRef("transmissionTexture")}getTransmissionTextureInfo(){return this.getRef("transmissionTexture")?this.getRef("transmissionTextureInfo"):null}setTransmissionTexture(Z){return this.setRef("transmissionTexture",Z,{channels:mM1})}}$T.EXTENSION_NAME=hC;var bY=hC;class QT extends E1{constructor(...Z){super(...Z);this.extensionName=bY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createTransmission(){return new $T(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[bY]){let K=this.createTransmission();Z.materials[Q].setExtension(bY,K);let W=$.extensions[bY];if(W.transmissionFactor!==void 0)K.setTransmissionFactor(W.transmissionFactor);if(W.transmissionTexture!==void 0){let G=W.transmissionTexture,H=Z.textures[Y[G.index].source];K.setTransmissionTexture(H),Z.setTextureInfo(K.getTransmissionTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(bY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[bY]={transmissionFactor:Y.getTransmissionFactor()};if(Y.getTransmissionTexture()){let W=Y.getTransmissionTexture(),G=Y.getTransmissionTextureInfo();K.transmissionTexture=Z.createTextureInfoDef(W,G)}}}),this}}QT.EXTENSION_NAME=bY;class KT extends i1{init(){this.extensionName=fC,this.propertyType="Unlit",this.parentTypes=[s.MATERIAL]}}KT.EXTENSION_NAME=fC;var jK=fC;class lB extends E1{constructor(...Z){super(...Z);this.extensionName=jK,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createUnlit(){return new KT(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){return(Z.jsonDoc.json.materials||[]).forEach((X,Y)=>{if(X.extensions&&X.extensions[jK])Z.materials[Y].setExtension(jK,this.createUnlit())}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{if(X.getExtension(jK)){let Y=Z.materialIndexMap.get(X),$=J.json.materials[Y];$.extensions=$.extensions||{},$.extensions[jK]={}}}),this}}lB.EXTENSION_NAME=jK;class WT extends i1{init(){this.extensionName=uY,this.propertyType="Mapping",this.parentTypes=["MappingList"]}getDefaults(){return Object.assign(super.getDefaults(),{material:null,variants:new P0})}getMaterial(){return this.getRef("material")}setMaterial(Z){return this.setRef("material",Z)}addVariant(Z){return this.addRef("variants",Z)}removeVariant(Z){return this.removeRef("variants",Z)}listVariants(){return this.listRefs("variants")}}WT.EXTENSION_NAME=uY;class GT extends i1{init(){this.extensionName=uY,this.propertyType="MappingList",this.parentTypes=[s.PRIMITIVE]}getDefaults(){return Object.assign(super.getDefaults(),{mappings:new P0})}addMapping(Z){return this.addRef("mappings",Z)}removeMapping(Z){return this.removeRef("mappings",Z)}listMappings(){return this.listRefs("mappings")}}GT.EXTENSION_NAME=uY;class yB extends i1{init(){this.extensionName=uY,this.propertyType="Variant",this.parentTypes=["MappingList"]}}yB.EXTENSION_NAME=uY;var w7=uY;class HT extends E1{constructor(...Z){super(...Z);this.extensionName=w7}createMappingList(){return new GT(this.document.getGraph())}createVariant(Z=""){return new yB(this.document.getGraph(),Z)}createMapping(){return new WT(this.document.getGraph())}listVariants(){return Array.from(this.properties).filter((Z)=>Z instanceof yB)}read(Z){let J=Z.jsonDoc;if(!J.json.extensions||!J.json.extensions[w7])return this;let $=(J.json.extensions[w7].variants||[]).map((K)=>this.createVariant().setName(K.name||""));return(J.json.meshes||[]).forEach((K,W)=>{let G=Z.meshes[W];(K.primitives||[]).forEach((V,F)=>{if(!V.extensions||!V.extensions[w7])return;let z=this.createMappingList(),q=V.extensions[w7];for(let U of q.mappings){let L=this.createMapping();if(U.material!==void 0)L.setMaterial(Z.materials[U.material]);for(let B of U.variants||[])L.addVariant($[B]);z.addMapping(L)}G.listPrimitives()[F].setExtension(w7,z)})}),this}write(Z){let J=Z.jsonDoc,X=this.listVariants();if(!X.length)return this;let Y=[],$=new Map;for(let Q of X)$.set(Q,Y.length),Y.push(Z.createPropertyDef(Q));for(let Q of this.document.getRoot().listMeshes()){let K=Z.meshIndexMap.get(Q);Q.listPrimitives().forEach((W,G)=>{let H=W.getExtension(w7);if(!H)return;let V=Z.jsonDoc.json.meshes[K].primitives[G],F=H.listMappings().map((z)=>{let q=Z.createPropertyDef(z),U=z.getMaterial();if(U)q.material=Z.materialIndexMap.get(U);return q.variants=z.listVariants().map((L)=>$.get(L)),q});V.extensions=V.extensions||{},V.extensions[w7]={mappings:F}})}return J.json.extensions=J.json.extensions||{},J.json.extensions[w7]={variants:Y},this}}HT.EXTENSION_NAME=w7;var{G:uM1}=o5;class VT extends i1{init(){this.extensionName=yC,this.propertyType="Volume",this.parentTypes=[s.MATERIAL]}getDefaults(){return Object.assign(super.getDefaults(),{thicknessFactor:0,thicknessTexture:null,thicknessTextureInfo:new P1(this.graph,"thicknessTexture"),attenuationDistance:1/0,attenuationColor:[1,1,1]})}getThicknessFactor(){return this.get("thicknessFactor")}setThicknessFactor(Z){return this.set("thicknessFactor",Z)}getThicknessTexture(){return this.getRef("thicknessTexture")}getThicknessTextureInfo(){return this.getRef("thicknessTexture")?this.getRef("thicknessTextureInfo"):null}setThicknessTexture(Z){return this.setRef("thicknessTexture",Z,{channels:uM1})}getAttenuationDistance(){return this.get("attenuationDistance")}setAttenuationDistance(Z){return this.set("attenuationDistance",Z)}getAttenuationColor(){return this.get("attenuationColor")}setAttenuationColor(Z){return this.set("attenuationColor",Z)}}VT.EXTENSION_NAME=yC;var gY=yC;class zT extends E1{constructor(...Z){super(...Z);this.extensionName=gY,this.prereadTypes=[s.MESH],this.prewriteTypes=[s.MESH]}createVolume(){return new VT(this.document.getGraph())}read(Z){return this}write(Z){return this}preread(Z){let J=Z.jsonDoc,X=J.json.materials||[],Y=J.json.textures||[];return X.forEach(($,Q)=>{if($.extensions&&$.extensions[gY]){let K=this.createVolume();Z.materials[Q].setExtension(gY,K);let W=$.extensions[gY];if(W.thicknessFactor!==void 0)K.setThicknessFactor(W.thicknessFactor);if(W.attenuationDistance!==void 0)K.setAttenuationDistance(W.attenuationDistance);if(W.attenuationColor!==void 0)K.setAttenuationColor(W.attenuationColor);if(W.thicknessTexture!==void 0){let G=W.thicknessTexture,H=Z.textures[Y[G.index].source];K.setThicknessTexture(H),Z.setTextureInfo(K.getThicknessTextureInfo(),G)}}}),this}prewrite(Z){let J=Z.jsonDoc;return this.document.getRoot().listMaterials().forEach((X)=>{let Y=X.getExtension(gY);if(Y){let $=Z.materialIndexMap.get(X),Q=J.json.materials[$];Q.extensions=Q.extensions||{};let K=Q.extensions[gY]={};if(Y.getThicknessFactor()>0)K.thicknessFactor=Y.getThicknessFactor();if(Number.isFinite(Y.getAttenuationDistance()))K.attenuationDistance=Y.getAttenuationDistance();if(!K8.eq(Y.getAttenuationColor(),[1,1,1]))K.attenuationColor=Y.getAttenuationColor();if(Y.getThicknessTexture()){let W=Y.getThicknessTexture(),G=Y.getThicknessTextureInfo();K.thicknessTexture=Z.createTextureInfoDef(W,G)}}}),this}}zT.EXTENSION_NAME=gY;var sa=XM1;class PH extends E1{constructor(...Z){super(...Z);this.extensionName=sa}read(Z){return this}write(Z){return this}}PH.EXTENSION_NAME=sa;var NH=YM1;class oa{match(Z){return Z[0]===171&&Z[1]===75&&Z[2]===84&&Z[3]===88&&Z[4]===32&&Z[5]===50&&Z[6]===48&&Z[7]===187&&Z[8]===13&&Z[9]===10&&Z[10]===26&&Z[11]===10}getSize(Z){let J=xB(Z);return[J.pixelWidth,J.pixelHeight]}getChannels(Z){let X=xB(Z).dataFormatDescriptor[0];if(X.colorModel===Ea)return X.samples.length===2&&(X.samples[1].channelType&15)===15?4:3;else if(X.colorModel===Ia)return(X.samples[0].channelType&15)===3?4:3;throw new Error(`Unexpected KTX2 colorModel, "${X.colorModel}".`)}getVRAMByteLength(Z){let J=xB(Z),X=this.getChannels(Z)>3,Y=0;for(let $=0;$<J.levels.length;$++){let Q=J.levels[$];if(Q.uncompressedByteLength)Y+=Q.uncompressedByteLength;else{let K=Math.max(1,Math.floor(J.pixelWidth/Math.pow(2,$))),W=Math.max(1,Math.floor(J.pixelHeight/Math.pow(2,$))),G=X?16:8;Y+=K/4*(W/4)*G}}return Y}}class FT extends E1{constructor(...Z){super(...Z);this.extensionName=NH,this.prereadTypes=[s.TEXTURE]}static register(){M4.registerFormat("image/ktx2",new oa)}preread(Z){return Z.jsonDoc.json.textures.forEach((J)=>{if(J.extensions&&J.extensions[NH]){let X=J.extensions[NH];J.source=X.source}}),this}read(Z){return this}write(Z){let J=Z.jsonDoc;return this.document.getRoot().listTextures().forEach((X)=>{if(X.getMimeType()==="image/ktx2"){let Y=Z.imageIndexMap.get(X);J.json.textures.forEach(($)=>{if($.source===Y)$.extensions=$.extensions||{},$.extensions[NH]={source:$.source},delete $.source})}}),this}}FT.EXTENSION_NAME=NH;class qT extends i1{init(){this.extensionName=bC,this.propertyType="Transform",this.parentTypes=[s.TEXTURE_INFO]}getDefaults(){return Object.assign(super.getDefaults(),{offset:[0,0],rotation:0,scale:[1,1],texCoord:null})}getOffset(){return this.get("offset")}setOffset(Z){return this.set("offset",Z)}getRotation(){return this.get("rotation")}setRotation(Z){return this.set("rotation",Z)}getScale(){return this.get("scale")}setScale(Z){return this.set("scale",Z)}getTexCoord(){return this.get("texCoord")}setTexCoord(Z){return this.set("texCoord",Z)}}qT.EXTENSION_NAME=bC;var mY=bC;class UT extends E1{constructor(...Z){super(...Z);this.extensionName=mY}createTransform(){return new qT(this.document.getGraph())}read(Z){for(let[J,X]of Array.from(Z.textureInfos.entries())){if(!X.extensions||!X.extensions[mY])continue;let Y=this.createTransform(),$=X.extensions[mY];if($.offset!==void 0)Y.setOffset($.offset);if($.rotation!==void 0)Y.setRotation($.rotation);if($.scale!==void 0)Y.setScale($.scale);if($.texCoord!==void 0)Y.setTexCoord($.texCoord);J.setExtension(mY,Y)}return this}write(Z){let J=Array.from(Z.textureInfoDefMap.entries());for(let[X,Y]of J){let $=X.getExtension(mY);if(!$)continue;Y.extensions=Y.extensions||{};let Q={},K=K8.eq;if(!K($.getOffset(),[0,0]))Q.offset=$.getOffset();if($.getRotation()!==0)Q.rotation=$.getRotation();if(!K($.getScale(),[1,1]))Q.scale=$.getScale();if($.getTexCoord()!=null)Q.texCoord=$.getTexCoord();Y.extensions[mY]=Q}return this}}UT.EXTENSION_NAME=mY;var dM1=[s.ROOT,s.SCENE,s.NODE,s.MESH,s.MATERIAL,s.TEXTURE,s.ANIMATION];class LT extends i1{init(){this.extensionName=hB,this.propertyType="Packet",this.parentTypes=dM1}getDefaults(){return Object.assign(super.getDefaults(),{context:{},properties:{}})}getContext(){return this.get("context")}setContext(Z){return this.set("context",jZ({},Z))}listProperties(){return Object.keys(this.get("properties"))}getProperty(Z){let J=this.get("properties");return Z in J?J[Z]:null}setProperty(Z,J){this._assertContext(Z);let X=jZ({},this.get("properties"));if(J)X[Z]=J;else delete X[Z];return this.set("properties",X)}toJSONLD(){let Z=NC(this.get("context")),J=NC(this.get("properties"));return jZ({"@context":Z},J)}fromJSONLD(Z){Z=NC(Z);let J=Z["@context"];if(J)this.set("context",J);return delete Z["@context"],this.set("properties",Z)}_assertContext(Z){if(!(Z.split(":")[0]in this.get("context")))throw new Error(`${hB}: Missing context for term, "${Z}".`)}}LT.EXTENSION_NAME=hB;function NC(Z){return JSON.parse(JSON.stringify(Z))}var MZ=hB;class BT extends E1{constructor(...Z){super(...Z);this.extensionName=MZ}createPacket(){return new LT(this.document.getGraph())}listPackets(){return Array.from(this.properties)}read(Z){var J;let X=(J=Z.jsonDoc.json.extensions)==null?void 0:J[MZ];if(!X||!X.packets)return this;let Y=Z.jsonDoc.json,$=this.document.getRoot(),Q=X.packets.map((G)=>this.createPacket().fromJSONLD(G)),K=[[Y.asset],Y.scenes,Y.nodes,Y.meshes,Y.materials,Y.images,Y.animations],W=[[$],$.listScenes(),$.listNodes(),$.listMeshes(),$.listMaterials(),$.listTextures(),$.listAnimations()];for(let G=0;G<K.length;G++){let H=K[G]||[];for(let V=0;V<H.length;V++){let F=H[V];if(F.extensions&&F.extensions[MZ]){let z=F.extensions[MZ];W[G][V].setExtension(MZ,Q[z.packet])}}}return this}write(Z){let{json:J}=Z.jsonDoc,X=[];for(let Y of this.properties){X.push(Y.toJSONLD());for(let $ of Y.listParents()){let Q;switch($.propertyType){case s.ROOT:Q=J.asset;break;case s.SCENE:Q=J.scenes[Z.sceneIndexMap.get($)];break;case s.NODE:Q=J.nodes[Z.nodeIndexMap.get($)];break;case s.MESH:Q=J.meshes[Z.meshIndexMap.get($)];break;case s.MATERIAL:Q=J.materials[Z.materialIndexMap.get($)];break;case s.TEXTURE:Q=J.images[Z.imageIndexMap.get($)];break;case s.ANIMATION:Q=J.animations[Z.animationIndexMap.get($)];break;default:Q=null,this.document.getLogger().warn(`[${MZ}]: Unsupported parent property, "${$.propertyType}"`);break}if(!Q)continue;Q.extensions=Q.extensions||{},Q.extensions[MZ]={packet:X.length-1}}}if(X.length>0)J.extensions=J.extensions||{},J.extensions[MZ]={packets:X};return this}}BT.EXTENSION_NAME=MZ;var cM1=[DH,mC,dC,lC,iC,aC,oC,uB,eC,dB,cB,XT,QT,lB,HT,zT,PH,FT,UT,BT],uT6=[bB,jH,gB,mB,...cM1];var lM1=r(SP(),1);function EK(){return EK=Object.assign?Object.assign.bind():function(Z){for(var J=1;J<arguments.length;J++){var X=arguments[J];for(var Y in X)({}).hasOwnProperty.call(X,Y)&&(Z[Y]=X[Y])}return Z},EK.apply(null,arguments)}var{POINTS:ra,LINES:pB,LINE_STRIP:pM1,LINE_LOOP:iM1,TRIANGLES:iB,TRIANGLE_STRIP:nM1,TRIANGLE_FAN:aM1}=O8.Mode;function uJ(Z,J){return Object.defineProperty(J,"name",{value:Z}),J}function O7(Z,J){let X=EK({},Z);for(let Y in J)if(J[Y]!==void 0)X[Y]=J[Y];return X}function ws(Z){let J=Z.getIndices(),X=Z.getAttribute("POSITION");switch(Z.getMode()){case O8.Mode.POINTS:return J?J.getCount():X.getCount();case O8.Mode.LINES:return J?J.getCount()/2:X.getCount()/2;case O8.Mode.LINE_LOOP:return J?J.getCount():X.getCount();case O8.Mode.LINE_STRIP:return J?J.getCount()-1:X.getCount()-1;case O8.Mode.TRIANGLES:return J?J.getCount()/3:X.getCount()/3;case O8.Mode.TRIANGLE_STRIP:case O8.Mode.TRIANGLE_FAN:return J?J.getCount()-2:X.getCount()-2;default:throw new Error("Unexpected mode: "+Z.getMode())}}var sM1=new Intl.NumberFormat(void 0,{maximumFractionDigits:0});function RT(Z){return sM1.format(Z)}function oM1(Z,J,X=2){let Y=Z>J?"–":"+",$="%";return Y+(Math.abs(Z-J)/Z*100).toFixed(X)+"%"}function rB(Z,J){return`${RT(Z)} → ${RT(J)} (${oM1(Z,J)})`}function ET(Z){let J=[];for(let X of Z.listAttributes())J.push(X);for(let X of Z.listTargets())for(let Y of X.listAttributes())J.push(Y);return Array.from(new Set(J))}function rM1(Z,J,X){Z.swap(J,X);for(let Y of Z.listTargets())Y.swap(J,X)}function tM1(Z,J){if(Z==null&&J==null)return!0;if(Z==null||J==null)return!1;if(Z.length!==J.length)return!1;for(let X=0;X<Z.length;X++)if(Z[X]!==J[X])return!1;return!0}function DZ(Z,J){return Z.createAccessor(J.getName()).setArray(J.getArray()).setType(J.getType()).setBuffer(J.getBuffer()).setNormalized(J.getNormalized()).setSparse(J.getSparse())}function eM1(Z,J=Z){let X=IT(Z,J);for(let Y=0;Y<X.length;Y++)X[Y]=Y;return X}function IT(Z,J=Z){return J<=65534?new Uint16Array(Z):new Uint32Array(Z)}function Zj1(Z){return Z.listParents().some((J)=>J.propertyType!==a.ROOT)}function Os(Z){for(let J in Z)return!1;return!0}function Ns(Z){let J=I6.fromGraph(Z.getGraph()),X=Z.getMaterial(),Y=J.getRoot().listMaterials().indexOf(X),$=Xj1[Z.getMode()],Q=!!Z.getIndices(),K=Z.listSemantics().sort().map((G)=>{let H=Z.getAttribute(G),V=H.getElementSize(),F=H.getComponentType();return`${G}:${V}:${F}`}).join("+"),W=Z.listTargets().map((G)=>{return G.listSemantics().sort().map((H)=>{let V=Z.getAttribute(H),F=V.getElementSize(),z=V.getComponentType();return`${H}:${F}:${z}`}).join("+")}).join("~");return`${Y}|${$}|${Q}|${K}|${W}`}function Jj1(Z){return Math.pow(2,Math.ceil(Math.log(Z)/Math.LN2))}var Xj1={[ra]:ra,[pB]:pB,[pM1]:pB,[iM1]:pB,[iB]:iB,[nM1]:iB,[aM1]:iB},CK="center",ta={pivot:"center"};function Rs(Z=ta){let J=O7(ta,Z);return uJ(CK,(X)=>{let Y=X.getLogger(),$=X.getRoot(),Q=$.listAnimations().length>0||$.listSkins().length>0;X.getRoot().listScenes().forEach((K,W)=>{Y.debug(`${CK}: Scene ${W+1} / ${$.listScenes().length}.`);let G;if(typeof J.pivot==="string"){let V=CP(K);if(G=[(V.max[0]-V.min[0])/2+V.min[0],(V.max[1]-V.min[1])/2+V.min[1],(V.max[2]-V.min[2])/2+V.min[2]],J.pivot==="above")G[1]=V.max[1];if(J.pivot==="below")G[1]=V.min[1]}else G=J.pivot;Y.debug(`${CK}: Pivot "${G.join(", ")}".`);let H=[-1*G[0],-1*G[1],-1*G[2]];if(Q){Y.debug(`${CK}: Model contains animation or skin. Adding a wrapper node.`);let V=X.createNode("Pivot").setTranslation(H);K.listChildren().forEach((F)=>V.addChild(F)),K.addChild(V)}else Y.debug(`${CK}: Skipping wrapper, offsetting all root nodes.`),K.listChildren().forEach((V)=>{let F=V.getTranslation();V.setTranslation([F[0]+H[0],F[1]+H[1],F[2]+H[2]])})}),Y.debug(`${CK}: Complete.`)})}function Yj1(Z){let J=new Set,X=Z,Y;while(Y=X.getParentNode()){if(J.has(Y))throw new Error("Circular dependency in scene graph.");J.add(Y),X=Y}return X.listParents().filter(($)=>$ instanceof VK)}function $j1(Z){let J=Yj1(Z),X=Z.getParentNode();if(!X)return Z;Z.setMatrix(Z.getWorldMatrix()),X.removeChild(Z);for(let Y of J)Y.addChild(Z);return Z}var IK=typeof Float32Array!=="undefined"?Float32Array:Array;if(!Math.hypot)Math.hypot=function(){var Z=0,J=arguments.length;while(J--)Z+=arguments[J]*arguments[J];return Math.sqrt(Z)};function Qj1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[3],K=J[4],W=J[5],G=J[6],H=J[7],V=J[8],F=J[9],z=J[10],q=J[11],U=J[12],L=J[13],B=J[14],w=J[15],N=X*W-Y*K,R=X*G-$*K,M=X*H-Q*K,P=Y*G-$*W,j=Y*H-Q*W,C=$*H-Q*G,T=V*L-F*U,E=V*B-z*U,x=V*w-q*U,_=F*B-z*L,h=F*w-q*L,k=z*w-q*B,v=N*k-R*h+M*_+P*x-j*E+C*T;if(!v)return null;return v=1/v,Z[0]=(W*k-G*h+H*_)*v,Z[1]=($*h-Y*k-Q*_)*v,Z[2]=(L*C-B*j+w*P)*v,Z[3]=(z*j-F*C-q*P)*v,Z[4]=(G*x-K*k-H*E)*v,Z[5]=(X*k-$*x+Q*E)*v,Z[6]=(B*M-U*C-w*R)*v,Z[7]=(V*C-z*M+q*R)*v,Z[8]=(K*h-W*x+H*T)*v,Z[9]=(Y*x-X*h-Q*T)*v,Z[10]=(U*j-L*M+w*N)*v,Z[11]=(F*M-V*j-q*N)*v,Z[12]=(W*E-K*_-G*T)*v,Z[13]=(X*_-Y*E+$*T)*v,Z[14]=(L*R-U*P-B*N)*v,Z[15]=(V*P-F*R+z*N)*v,Z}function Kj1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3],Q=Z[4],K=Z[5],W=Z[6],G=Z[7],H=Z[8],V=Z[9],F=Z[10],z=Z[11],q=Z[12],U=Z[13],L=Z[14],B=Z[15],w=J*K-X*Q,N=J*W-Y*Q,R=J*G-$*Q,M=X*W-Y*K,P=X*G-$*K,j=Y*G-$*W,C=H*U-V*q,T=H*L-F*q,E=H*B-z*q,x=V*L-F*U,_=V*B-z*U,h=F*B-z*L;return w*h-N*_+R*x+M*E-P*T+j*C}function Ms(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=J[3],W=J[4],G=J[5],H=J[6],V=J[7],F=J[8],z=J[9],q=J[10],U=J[11],L=J[12],B=J[13],w=J[14],N=J[15],R=X[0],M=X[1],P=X[2],j=X[3];return Z[0]=R*Y+M*W+P*F+j*L,Z[1]=R*$+M*G+P*z+j*B,Z[2]=R*Q+M*H+P*q+j*w,Z[3]=R*K+M*V+P*U+j*N,R=X[4],M=X[5],P=X[6],j=X[7],Z[4]=R*Y+M*W+P*F+j*L,Z[5]=R*$+M*G+P*z+j*B,Z[6]=R*Q+M*H+P*q+j*w,Z[7]=R*K+M*V+P*U+j*N,R=X[8],M=X[9],P=X[10],j=X[11],Z[8]=R*Y+M*W+P*F+j*L,Z[9]=R*$+M*G+P*z+j*B,Z[10]=R*Q+M*H+P*q+j*w,Z[11]=R*K+M*V+P*U+j*N,R=X[12],M=X[13],P=X[14],j=X[15],Z[12]=R*Y+M*W+P*F+j*L,Z[13]=R*$+M*G+P*z+j*B,Z[14]=R*Q+M*H+P*q+j*w,Z[15]=R*K+M*V+P*U+j*N,Z}function Wj1(){var Z=new IK(9);if(IK!=Float32Array)Z[1]=0,Z[2]=0,Z[3]=0,Z[5]=0,Z[6]=0,Z[7]=0;return Z[0]=1,Z[4]=1,Z[8]=1,Z}function Gj1(Z,J){return Z[0]=J[0],Z[1]=J[1],Z[2]=J[2],Z[3]=J[4],Z[4]=J[5],Z[5]=J[6],Z[6]=J[8],Z[7]=J[9],Z[8]=J[10],Z}function Hj1(Z,J){if(Z===J){var X=J[1],Y=J[2],$=J[5];Z[1]=J[3],Z[2]=J[6],Z[3]=X,Z[5]=J[7],Z[6]=Y,Z[7]=$}else Z[0]=J[0],Z[1]=J[3],Z[2]=J[6],Z[3]=J[1],Z[4]=J[4],Z[5]=J[7],Z[6]=J[2],Z[7]=J[5],Z[8]=J[8];return Z}function Vj1(Z,J){var X=J[0],Y=J[1],$=J[2],Q=J[3],K=J[4],W=J[5],G=J[6],H=J[7],V=J[8],F=V*K-W*H,z=-V*Q+W*G,q=H*Q-K*G,U=X*F+Y*z+$*q;if(!U)return null;return U=1/U,Z[0]=F*U,Z[1]=(-V*Y+$*H)*U,Z[2]=(W*Y-$*K)*U,Z[3]=z*U,Z[4]=(V*X-$*G)*U,Z[5]=(-W*X+$*Q)*U,Z[6]=q*U,Z[7]=(-H*X+Y*G)*U,Z[8]=(K*X-Y*Q)*U,Z}function tB(){var Z=new IK(3);if(IK!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0;return Z}function zj1(Z,J,X){return Z[0]=J[0]*X[0],Z[1]=J[1]*X[1],Z[2]=J[2]*X[2],Z}function js(Z,J){var X=J[0],Y=J[1],$=J[2],Q=X*X+Y*Y+$*$;if(Q>0)Q=1/Math.sqrt(Q);return Z[0]=J[0]*Q,Z[1]=J[1]*Q,Z[2]=J[2]*Q,Z}function Fj1(Z,J,X){var Y=J[0],$=J[1],Q=J[2],K=X[3]*Y+X[7]*$+X[11]*Q+X[15];return K=K||1,Z[0]=(X[0]*Y+X[4]*$+X[8]*Q+X[12])/K,Z[1]=(X[1]*Y+X[5]*$+X[9]*Q+X[13])/K,Z[2]=(X[2]*Y+X[6]*$+X[10]*Q+X[14])/K,Z}function qj1(Z,J,X){var Y=J[0],$=J[1],Q=J[2];return Z[0]=Y*X[0]+$*X[3]+Q*X[6],Z[1]=Y*X[1]+$*X[4]+Q*X[7],Z[2]=Y*X[2]+$*X[5]+Q*X[8],Z}var Uj1=zj1;(function(){var Z=tB();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=3;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2];return J}})();var gJ="dedup",wT={keepUniqueNames:!1,propertyTypes:[a.ACCESSOR,a.MESH,a.TEXTURE,a.MATERIAL,a.SKIN]};function Ds(Z=wT){let J=O7(wT,Z),X=new Set(J.propertyTypes);for(let Y of J.propertyTypes)if(!wT.propertyTypes.includes(Y))throw new Error(`${gJ}: Unsupported deduplication on type "${Y}".`);return uJ(gJ,(Y)=>{let $=Y.getLogger();if(X.has(a.ACCESSOR))Lj1(Y);if(X.has(a.TEXTURE))wj1(Y,J);if(X.has(a.MATERIAL))Oj1(Y,J);if(X.has(a.MESH))Bj1(Y,J);if(X.has(a.SKIN))Nj1(Y,J);$.debug(`${gJ}: Complete.`)})}function Lj1(Z){let J=Z.getLogger(),X=new Map,Y=new Map,$=new Map,Q=new Map,K=Z.getRoot().listMeshes();K.forEach((F)=>{F.listPrimitives().forEach((z)=>{z.listAttributes().forEach((q)=>W(q,Y)),W(z.getIndices(),X)})});for(let F of Z.getRoot().listAnimations())for(let z of F.listSamplers())W(z.getInput(),$),W(z.getOutput(),Q);function W(F,z){if(!F)return;let q=[F.getCount(),F.getType(),F.getComponentType(),F.getNormalized(),F.getSparse()].join(":"),U=z.get(q);if(!U)z.set(q,U=new Set);U.add(F)}function G(F,z){for(let q=0;q<F.length;q++){let U=F[q],L=n0.toView(U.getArray());if(z.has(U))continue;for(let B=q+1;B<F.length;B++){let w=F[B];if(z.has(w))continue;if(n0.equals(L,n0.toView(w.getArray())))z.set(w,U)}}}let H=0,V=new Map;for(let F of[Y,X,$,Q])for(let z of F.values())H+=z.size,G(Array.from(z),V);J.debug(`${gJ}: Merged ${V.size} of ${H} accessors.`),K.forEach((F)=>{F.listPrimitives().forEach((z)=>{z.listAttributes().forEach((U)=>{if(V.has(U))z.swap(U,V.get(U))});let q=z.getIndices();if(q&&V.has(q))z.swap(q,V.get(q))})});for(let F of Z.getRoot().listAnimations())for(let z of F.listSamplers()){let q=z.getInput(),U=z.getOutput();if(q&&V.has(q))z.swap(q,V.get(q));if(U&&V.has(U))z.swap(U,V.get(U))}Array.from(V.keys()).forEach((F)=>F.dispose())}function Bj1(Z,J){let X=Z.getLogger(),Y=Z.getRoot(),$=new Map;Y.listAccessors().forEach((W,G)=>$.set(W,G)),Y.listMaterials().forEach((W,G)=>$.set(W,G));let Q=Y.listMeshes().length,K=new Map;for(let W of Y.listMeshes()){let G=[];for(let V of W.listPrimitives())G.push(Ps(V,$));let H="";if(J.keepUniqueNames)H+=W.getName()+";";if(H+=G.join(";"),K.has(H)){let V=K.get(H);W.listParents().forEach((F)=>{if(F.propertyType!==a.ROOT)F.swap(W,V)}),W.dispose()}else K.set(H,W)}X.debug(`${gJ}: Merged ${Q-K.size} of ${Q} meshes.`)}function wj1(Z,J){let X=Z.getLogger(),Y=Z.getRoot(),$=Y.listTextures(),Q=new Map;for(let K=0;K<$.length;K++){let W=$[K],G=W.getImage();if(Q.has(W))continue;for(let H=K+1;H<$.length;H++){let V=$[H],F=V.getImage();if(Q.has(V))continue;if(W.getMimeType()!==V.getMimeType())continue;if(J.keepUniqueNames&&W.getName()!==V.getName())continue;let z=W.getSize(),q=V.getSize();if(!z||!q)continue;if(z[0]!==q[0])continue;if(z[1]!==q[1])continue;if(!G||!F)continue;if(n0.equals(G,F))Q.set(V,W)}}X.debug(`${gJ}: Merged ${Q.size} of ${Y.listTextures().length} textures.`),Array.from(Q.entries()).forEach(([K,W])=>{K.listParents().forEach((G)=>{if(!(G instanceof jY))G.swap(K,W)}),K.dispose()})}function Oj1(Z,J){let X=Z.getLogger(),$=Z.getRoot().listMaterials(),Q=new Map,K=new Map,W=new Set;if(!J.keepUniqueNames)W.add("name");for(let G=0;G<$.length;G++){let H=$[G];if(Q.has(H))continue;if(ea(H,K))continue;for(let V=G+1;V<$.length;V++){let F=$[V];if(Q.has(F))continue;if(ea(F,K))continue;if(H.equals(F,W))Q.set(F,H)}}X.debug(`${gJ}: Merged ${Q.size} of ${$.length} materials.`),Array.from(Q.entries()).forEach(([G,H])=>{G.listParents().forEach((V)=>{if(!(V instanceof jY))V.swap(G,H)}),G.dispose()})}function Nj1(Z,J){let X=Z.getLogger(),$=Z.getRoot().listSkins(),Q=new Map,K=new Set(["joints"]);if(!J.keepUniqueNames)K.add("name");for(let W=0;W<$.length;W++){let G=$[W];if(Q.has(G))continue;for(let H=W+1;H<$.length;H++){let V=$[H];if(Q.has(V))continue;if(G.equals(V,K)&&tM1(G.listJoints(),V.listJoints()))Q.set(V,G)}}X.debug(`${gJ}: Merged ${Q.size} of ${$.length} skins.`),Array.from(Q.entries()).forEach(([W,G])=>{W.listParents().forEach((H)=>{if(!(H instanceof jY))H.swap(W,G)}),W.dispose()})}function Ps(Z,J){let X=[];for(let Y of Z.listSemantics()){let $=Z.getAttribute(Y);X.push(Y+":"+J.get($))}if(Z instanceof O8){let Y=Z.getIndices();if(Y)X.push("indices:"+J.get(Y));let $=Z.getMaterial();if($)X.push("material:"+J.get($));X.push("mode:"+Z.getMode());for(let Q of Z.listTargets())X.push("target:"+Ps(Q,J))}return X.join(",")}function ea(Z,J){if(J.has(Z))return J.get(Z);let X=Z.getGraph(),Y=new Set,$=X.listParentEdges(Z);while($.length>0){let Q=$.pop();if(Q.getAttributes().modifyChild===!0)return J.set(Z,!0),!0;let K=Q.getChild();if(Y.has(K))continue;for(let W of X.listChildEdges(K))$.push(W)}return J.set(Z,!1),!1}function Cs(){var Z=new IK(4);if(IK!=Float32Array)Z[0]=0,Z[1]=0,Z[2]=0,Z[3]=0;return Z}function Rj1(Z,J,X){return Z[0]=J[0]+X[0],Z[1]=J[1]+X[1],Z[2]=J[2]+X[2],Z[3]=J[3]+X[3],Z}function Mj1(Z,J,X){return Z[0]=J[0]-X[0],Z[1]=J[1]-X[1],Z[2]=J[2]-X[2],Z[3]=J[3]-X[3],Z}function jj1(Z,J,X){return Z[0]=J[0]*X[0],Z[1]=J[1]*X[1],Z[2]=J[2]*X[2],Z[3]=J[3]*X[3],Z}function Dj1(Z,J,X){return Z[0]=J[0]*X,Z[1]=J[1]*X,Z[2]=J[2]*X,Z[3]=J[3]*X,Z}function Pj1(Z){var J=Z[0],X=Z[1],Y=Z[2],$=Z[3];return Math.hypot(J,X,Y,$)}var Ts=Mj1,Cj1=jj1,Es=Pj1;(function(){var Z=Cs();return function(J,X,Y,$,Q,K){var W,G;if(!X)X=4;if(!Y)Y=0;if($)G=Math.min($*X+Y,J.length);else G=J.length;for(W=Y;W<G;W+=X)Z[0]=J[W],Z[1]=J[W+1],Z[2]=J[W+2],Z[3]=J[W+3],Q(Z,Z,K),J[W]=Z[0],J[W+1]=Z[1],J[W+2]=Z[2],J[W+3]=Z[3];return J}})();var Tj1=/color|emissive|diffuse/i;function Ej1(Z){return Z.getGraph().listParentEdges(Z).some(($)=>{return $.getAttributes().isColor||Tj1.test($.getName())})?"srgb":null}function Ij1(Z){let J=Z.getGraph(),X=new Set,Y=new Set;function $(Q){let K=new Set;for(let W of J.listChildEdges(Q))if(W.getChild()instanceof MY)K.add(W.getName()+"Info");for(let W of J.listChildEdges(Q)){let G=W.getChild();if(X.has(G))continue;if(X.add(G),G instanceof j5&&K.has(W.getName()))Y.add(G);else if(G instanceof HK)$(G)}}return $(Z),Array.from(Y)}function kj1(Z){let X=I6.fromGraph(Z.getGraph()).getRoot(),Y=Z.getGraph().listParentEdges(Z).filter(($)=>$.getParent()!==X).map(($)=>$.getName());return Array.from(new Set(Y))}var TK="prune",MT=0.011764705882352941,Zs={propertyTypes:[a.NODE,a.SKIN,a.MESH,a.CAMERA,a.PRIMITIVE,a.PRIMITIVE_TARGET,a.ANIMATION,a.MATERIAL,a.TEXTURE,a.ACCESSOR,a.BUFFER],keepLeaves:!1,keepAttributes:!1,keepIndices:!1,keepSolidTextures:!1,keepExtras:!1};function eB(Z=Zs){let J=O7(Zs,Z),X=new Set(J.propertyTypes),Y=J.keepExtras;return uJ(TK,async($)=>{let Q=$.getLogger(),K=$.getRoot(),W=$.getGraph(),G=new Is,H=(V)=>G.dispose(V.target);if(W.addEventListener("node:dispose",H),X.has(a.MESH))for(let V of K.listMeshes()){if(V.listPrimitives().length>0)continue;V.dispose()}if(X.has(a.NODE)){if(!J.keepLeaves)for(let V of K.listScenes())ks(W,V,Y);for(let V of K.listNodes())S9(V,Y)}if(X.has(a.SKIN))for(let V of K.listSkins())S9(V,Y);if(X.has(a.MESH))for(let V of K.listMeshes())S9(V,Y);if(X.has(a.CAMERA))for(let V of K.listCameras())S9(V,Y);if(X.has(a.PRIMITIVE))Js(W,a.PRIMITIVE,Y);if(X.has(a.PRIMITIVE_TARGET))Js(W,a.PRIMITIVE_TARGET,Y);if(!J.keepAttributes&&X.has(a.ACCESSOR)){let V=new Map;for(let F of K.listMeshes())for(let z of F.listPrimitives()){let q=z.getMaterial();if(!q)continue;let U=vs($,z,q),L=_j1(z,U);Xs(z,L),z.listTargets().forEach((B)=>Xs(B,L)),V.has(q)?V.get(q).add(z):V.set(q,new Set([z]))}for(let[F,z]of V)Sj1(F,Array.from(z))}if(!J.keepIndices&&X.has(a.ACCESSOR))for(let V of K.listMeshes())for(let F of V.listPrimitives())vj1(F);if(X.has(a.ANIMATION))for(let V of K.listAnimations()){for(let F of V.listChannels())if(!F.getTargetNode())F.dispose();if(!V.listChannels().length){let F=V.listSamplers();S9(V,Y),F.forEach((z)=>S9(z,Y))}else V.listSamplers().forEach((F)=>S9(F,Y))}if(X.has(a.MATERIAL))K.listMaterials().forEach((V)=>S9(V,Y));if(X.has(a.TEXTURE)){if(K.listTextures().forEach((V)=>S9(V,Y)),!J.keepSolidTextures)await Aj1($)}if(X.has(a.ACCESSOR))K.listAccessors().forEach((V)=>S9(V,Y));if(X.has(a.BUFFER))K.listBuffers().forEach((V)=>S9(V,Y));if(W.removeEventListener("node:dispose",H),!G.empty()){let V=G.entries().map(([F,z])=>`${F} (${z})`).join(", ");Q.info(`${TK}: Removed types... ${V}`)}else Q.debug(`${TK}: No unused properties found.`);Q.debug(`${TK}: Complete.`)})}class Is{constructor(){this.disposed={}}empty(){for(let Z in this.disposed)return!1;return!0}entries(){return Object.entries(this.disposed)}dispose(Z){this.disposed[Z.propertyType]=this.disposed[Z.propertyType]||0,this.disposed[Z.propertyType]++}}function S9(Z,J){let X=Z.listParents().filter(($)=>!($ instanceof jY||$ instanceof NY)),Y=J&&!Os(Z.getExtras());if(!X.length&&!Y)Z.dispose()}function Js(Z,J,X){for(let Y of Z.listEdges()){let $=Y.getParent();if($.propertyType===J)S9($,X)}}function ks(Z,J,X){if(J.listChildren().forEach((K)=>ks(Z,K,X)),J instanceof VK)return;let Y=Z.listParentEdges(J).some((K)=>{let W=K.getParent().propertyType;return W!==a.ROOT&&W!==a.SCENE&&W!==a.NODE}),$=Z.listChildren(J).length===0,Q=X&&!Os(J.getExtras());if($&&!Y&&!Q)J.dispose()}function Xs(Z,J){for(let X of J)Z.setAttribute(X,null)}function vj1(Z){let J=Z.getIndices(),X=J&&J.getArray(),Y=Z.listAttributes()[0];if(!X||!Y)return;if(J.getCount()!==Y.getCount())return;for(let $=0,Q=X.length;$<Q;$++)if($!==X[$])return;Z.setIndices(null)}function _j1(Z,J){let X=[];for(let Y of Z.listSemantics())if(Y==="NORMAL"&&!J.has(Y))X.push(Y);else if(Y==="TANGENT"&&!J.has(Y))X.push(Y);else if(Y.startsWith("TEXCOORD_")&&!J.has(Y))X.push(Y);else if(Y.startsWith("COLOR_")&&Y!=="COLOR_0")X.push(Y);return X}function vs(Z,J,X,Y=new Set){let Q=Z.getGraph().listChildEdges(X),K=new Set;for(let H of Q)if(H.getChild()instanceof MY)K.add(H.getName());for(let H of Q){let V=H.getName(),F=H.getChild();if(F instanceof j5){if(K.has(V.replace(/Info$/,"")))Y.add(`TEXCOORD_${F.getTexCoord()}`)}if(F instanceof MY&&V.match(/normalTexture/i))Y.add("TANGENT");if(F instanceof HK)vs(Z,J,F,Y)}let W=X instanceof H7&&!X.getExtension("KHR_materials_unlit"),G=J.getMode()===O8.Mode.POINTS;if(W&&!G)Y.add("NORMAL");return Y}function Sj1(Z,J){let X=Ij1(Z),Y=new Set(X.map((G)=>G.getTexCoord())),$=Array.from(Y).sort(),Q=new Map($.map((G,H)=>[G,H])),K=new Map($.map((G,H)=>[`TEXCOORD_${G}`,`TEXCOORD_${H}`]));for(let G of X){let H=G.getTexCoord();G.setTexCoord(Q.get(H))}for(let G of J){let H=G.listSemantics().filter((V)=>V.startsWith("TEXCOORD_")).sort();W(G,H),G.listTargets().forEach((V)=>W(V,H))}function W(G,H){for(let V of H){let F=G.getAttribute(V);if(!F)continue;let z=K.get(V);if(z===V)continue;G.setAttribute(z,F),G.setAttribute(V,null)}}}async function Aj1(Z){let J=Z.getRoot(),X=Z.getGraph(),Y=Z.getLogger(),Q=J.listTextures().map(async(K)=>{var W;let G=await hj1(K);if(!G)return;if(Ej1(K)==="srgb")TP.convertSRGBToLinear(G,G);let H=K.getName()||K.getURI(),V=(W=K.getSize())==null?void 0:W.join("x"),F=kj1(K);for(let z of X.listParentEdges(K)){let q=z.getParent();if(q!==J&&xj1(q,G,z.getName(),Y))z.dispose()}if(K.listParents().length===1)K.dispose(),Y.debug(`${TK}: Removed solid-color texture "${H}" (${V}px ${F.join(", ")})`)});await Promise.all(Q)}function xj1(Z,J,X,Y){if(Z instanceof H7)switch(X){case"baseColorTexture":return Z.setBaseColorFactor(Cj1(J,J,Z.getBaseColorFactor())),!0;case"emissiveTexture":return Z.setEmissiveFactor(Uj1([0,0,0],J.slice(0,3),Z.getEmissiveFactor())),!0;case"occlusionTexture":return Math.abs(J[0]-1)<=MT;case"metallicRoughnessTexture":return Z.setRoughnessFactor(J[1]*Z.getRoughnessFactor()),Z.setMetallicFactor(J[2]*Z.getMetallicFactor()),!0;case"normalTexture":return Es(Ts(Cs(),J,[0.5,0.5,1,1]))<=MT}return Y.warn(`${TK}: Detected single-color ${X} texture. Pruning ${X} not yet supported.`),!1}async function hj1(Z){let J=await fj1(Z);if(!J)return null;let X=[1/0,1/0,1/0,1/0],Y=[-1/0,-1/0,-1/0,-1/0],$=[0,0,0,0],[Q,K]=J.shape;for(let W=0;W<Q;W++){for(let G=0;G<K;G++)for(let H=0;H<4;H++)X[H]=Math.min(X[H],J.get(W,G,H)),Y[H]=Math.max(Y[H],J.get(W,G,H));if(Es(Ts($,Y,X))/255>MT)return null}return Dj1($,Rj1($,Y,X),0.00196078431372549)}async function fj1(Z){try{return await La(Z.getImage(),Z.getMimeType())}catch(J){return null}}var bJ=4294967295;class _s{constructor(Z){this.attributes=[],this.u8=void 0,this.u32=void 0;let J=0;for(let X of ET(Z))J+=this._initAttribute(X);this.u8=new Uint8Array(J),this.u32=new Uint32Array(this.u8.buffer)}_initAttribute(Z){let J=Z.getArray(),X=new Uint8Array(J.buffer,J.byteOffset,J.byteLength),Y=Z.getElementSize()*Z.getComponentSize(),$=n0.padNumber(Y);return this.attributes.push({u8:X,byteStride:Y,paddedByteStride:$}),$}hash(Z){let J=0;for(let{u8:X,byteStride:Y,paddedByteStride:$}of this.attributes){for(let Q=0;Q<$;Q++)if(Q<Y)this.u8[J+Q]=X[Z*Y+Q];else this.u8[J+Q]=0;J+=$}return yj1(0,this.u32)}equal(Z,J){for(let{u8:X,byteStride:Y}of this.attributes)for(let $=0;$<Y;$++)if(X[Z*Y+$]!==X[J*Y+$])return!1;return!0}}function yj1(Z,J){for(let $=0,Q=J.length;$<Q;$++){let K=J[$];K=Math.imul(K,1540483477)>>>0,K=(K^K>>24)>>>0,K=Math.imul(K,1540483477)>>>0,Z=Math.imul(Z,1540483477)>>>0,Z=(Z^K)>>>0}return Z}function bj1(Z,J,X,Y,$=bJ){let Q=J-1,W=X.hash(Y)&Q;for(let G=0;G<=Q;G++){let H=Z[W];if(H===$||X.equal(H,Y))return W;W=W+G+1&Q}throw new Error("Hash table full.")}var B6;(function(Z){Z.RENDER="render",Z.RENDER_CACHED="render-cached",Z.UPLOAD="upload",Z.UPLOAD_NAIVE="upload-naive",Z.DISTINCT="distinct",Z.DISTINCT_POSITION="distinct-position",Z.UNUSED="unused"})(B6||(B6={}));function mJ(Z,J){let X=Z.getAttribute("POSITION"),Y=Z.getIndices();switch(J){case B6.RENDER:return Y?Y.getCount():X.getCount();case B6.RENDER_CACHED:return Y?new Set(Y.getArray()).size:X.getCount();case B6.UPLOAD_NAIVE:case B6.UPLOAD:return X.getCount();case B6.DISTINCT:case B6.DISTINCT_POSITION:return gj1(J);case B6.UNUSED:return Y?X.getCount()-new Set(Y.getArray()).size:0;default:return mj1(J)}}function gj1(Z){throw new Error(`Not implemented: ${Z}`)}function mj1(Z){throw new Error(`Unexpected value: ${Z}`)}function TH(Z,J,X){let Y=I6.fromGraph(Z.getGraph());if(!J||!X)[J,X]=uj1(Z);let $=Z.getIndices(),Q=$?$.getArray():null,K=mJ(Z,B6.RENDER),W=Y.createAccessor(),G=K,H=IT(G,X);for(let F=0;F<G;F++)H[F]=J[Q?Q[F]:F];Z.setIndices(W.setArray(H));let V=ET(Z);for(let F of Z.listAttributes()){let z=DZ(Y,F);jT(F,$,J,z,X),Z.swap(F,z)}for(let F of Z.listTargets())for(let z of F.listAttributes()){let q=DZ(Y,z);jT(z,$,J,q,X),F.swap(z,q)}if($&&$.listParents().length===1)$.dispose();for(let F of V)if(F.listParents().length===1)F.dispose();return Z}function jT(Z,J,X,Y,$){let Q=Z.getElementSize(),K=Z.getArray(),W=J?J.getArray():null,G=J?J.getCount():Z.getCount(),H=new K.constructor($*Q),V=new Uint8Array($);for(let F=0;F<G;F++){let z=W?W[F]:F,q=X[z];if(V[q])continue;for(let U=0;U<Q;U++)H[q*Q+U]=K[z*Q+U];V[q]=1}return Y.setArray(H)}function uj1(Z){let J=mJ(Z,B6.UPLOAD),X=Z.getIndices(),Y=X?X.getArray():null;if(!X||!Y)return[eM1(J,1e6),J];let $=new Uint32Array(J).fill(bJ),Q=0;for(let K=0;K<Y.length;K++){let W=Y[K];if($[W]===bJ)$[W]=Q++}return[$,Q]}var DT="weld",aB={overwrite:!0,cleanup:!0};function kT(Z=aB){let J=O7(aB,Z);return uJ(DT,async(X)=>{let Y=X.getLogger();for(let $ of X.getRoot().listMeshes()){for(let Q of $.listPrimitives())if(Z2(Q,J),mJ(Q,B6.RENDER)===0)Q.dispose();if($.listPrimitives().length===0)$.dispose()}if(J.cleanup)await X.transform(eB({propertyTypes:[a.ACCESSOR,a.NODE],keepAttributes:!0,keepIndices:!0,keepLeaves:!1}),Ds({propertyTypes:[a.ACCESSOR]}));Y.debug(`${DT}: Complete.`)})}function Z2(Z,J=aB){let X=Z.getGraph(),$=I6.fromGraph(X).getLogger(),Q=EK({},aB,J);if(Z.getIndices()&&!Q.overwrite)return;if(Z.getMode()===O8.Mode.POINTS)return;let K=Z.getAttribute("POSITION").getCount(),W=Z.getIndices(),G=W==null?void 0:W.getArray(),H=W?W.getCount():K,V=new _s(Z),F=Jj1(K+K/4),z=new Uint32Array(F).fill(bJ),q=new Uint32Array(K).fill(bJ),U=0;for(let L=0;L<H;L++){let B=G?G[L]:L;if(q[B]!==bJ)continue;let w=bj1(z,F,V,B,bJ),N=z[w];if(N===bJ)z[w]=B,q[B]=U++;else q[B]=q[N]}$.debug(`${DT}: ${rB(K,U)} vertices.`),TH(Z,q,U)}var{FLOAT:dj1}=k0.ComponentType;function Ss(Z,J){let X=Z.getAttribute("POSITION");if(X)Ys(J,X);let Y=Z.getAttribute("NORMAL");if(Y)$s(J,Y);let $=Z.getAttribute("TANGENT");if($)Qs(J,$);for(let Q of Z.listTargets()){let K=Q.getAttribute("POSITION");if(K)Ys(J,K);let W=Q.getAttribute("NORMAL");if(W)$s(J,W);let G=Q.getAttribute("TANGENT");if(G)Qs(J,G)}if(Kj1(J)<0)cj1(Z)}function Ys(Z,J){let X=J.getComponentType(),Y=J.getNormalized(),$=J.getArray(),Q=X===dj1?$:new Float32Array($.length),K=tB();for(let W=0,G=J.getCount();W<G;W++){if(Y)K[0]=c0.decodeNormalizedInt($[W*3],X),K[1]=c0.decodeNormalizedInt($[W*3+1],X),K[2]=c0.decodeNormalizedInt($[W*3+2],X);else K[0]=$[W*3],K[1]=$[W*3+1],K[2]=$[W*3+2];Fj1(K,K,Z),Q[W*3]=K[0],Q[W*3+1]=K[1],Q[W*3+2]=K[2]}J.setArray(Q).setNormalized(!1)}function $s(Z,J){let X=J.getArray(),Y=J.getNormalized(),$=J.getComponentType(),Q=Wj1();Gj1(Q,Z),Vj1(Q,Q),Hj1(Q,Q);let K=tB();for(let W=0,G=J.getCount();W<G;W++){if(Y)K[0]=c0.decodeNormalizedInt(X[W*3],$),K[1]=c0.decodeNormalizedInt(X[W*3+1],$),K[2]=c0.decodeNormalizedInt(X[W*3+2],$);else K[0]=X[W*3],K[1]=X[W*3+1],K[2]=X[W*3+2];if(qj1(K,K,Q),js(K,K),Y)X[W*3]=c0.decodeNormalizedInt(K[0],$),X[W*3+1]=c0.decodeNormalizedInt(K[1],$),X[W*3+2]=c0.decodeNormalizedInt(K[2],$);else X[W*3]=K[0],X[W*3+1]=K[1],X[W*3+2]=K[2]}}function Qs(Z,J){let X=J.getArray(),Y=J.getNormalized(),$=J.getComponentType(),Q=tB();for(let K=0,W=J.getCount();K<W;K++){if(Y)Q[0]=c0.decodeNormalizedInt(X[K*4],$),Q[1]=c0.decodeNormalizedInt(X[K*4+1],$),Q[2]=c0.decodeNormalizedInt(X[K*4+2],$);else Q[0]=X[K*4],Q[1]=X[K*4+1],Q[2]=X[K*4+2];if(Q[0]=Z[0]*Q[0]+Z[4]*Q[1]+Z[8]*Q[2],Q[1]=Z[1]*Q[0]+Z[5]*Q[1]+Z[9]*Q[2],Q[2]=Z[2]*Q[0]+Z[6]*Q[1]+Z[10]*Q[2],js(Q,Q),Y)X[K*4]=c0.decodeNormalizedInt(Q[0],$),X[K*4+1]=c0.decodeNormalizedInt(Q[1],$),X[K*4+2]=c0.decodeNormalizedInt(Q[2],$);else X[K*4]=Q[0],X[K*4+1]=Q[1],X[K*4+2]=Q[2]}}function cj1(Z){if(Z.getMode()!==O8.Mode.TRIANGLES)return;if(!Z.getIndices())Z2(Z);let J=Z.getIndices();for(let X=0,Y=J.getCount();X<Y;X+=3){let $=J.getScalar(X),Q=J.getScalar(X+2);J.setScalar(X,Q),J.setScalar(X+2,$)}}function lj1(Z,J){for(let X of Z.listPrimitives()){let Y=pj1(X,Z);if(X!==Y)Z.removePrimitive(X).addPrimitive(Y)}for(let X of Z.listPrimitives())TH(X),Ss(X,J)}function pj1(Z,J){if(Z.listParents().some((Y)=>Y instanceof XH&&Y!==J))Z=Z.clone();for(let Y of Z.listTargets())if(Y.listParents().some((Q)=>Q instanceof O8&&Q!==Z))Z.removeTarget(Y).addTarget(Y.clone());return Z}var Ks=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function As(Z){let J=Z.getMesh(),X=Z.getMatrix();if(J&&!c0.eq(X,Ks))lj1(J,X);for(let Y of Z.listChildren()){let $=Y.getMatrix();Ms($,$,X),Y.setMatrix($)}return Z.setMatrix(Ks)}var{LINES:ij1,LINE_STRIP:nj1,LINE_LOOP:aj1,TRIANGLES:sj1,TRIANGLE_STRIP:oj1,TRIANGLE_FAN:rj1}=O8.Mode;function tj1(Z){let J=Z.getGraph(),X=I6.fromGraph(J);if(!Z.getIndices())Z2(Z);let Y=Z.getIndices(),$=Y.getArray(),Q=ws(Z),W=new kJ[Y.getComponentType()](Q*2),G=Z.getMode();if(G===nj1)for(let V=0;V<Q;V++)W[V*2]=$[V],W[V*2+1]=$[V+1];else if(G===aj1)for(let V=0;V<Q;V++)if(V<Q-1)W[V*2]=$[V],W[V*2+1]=$[V+1];else W[V*2]=$[V],W[V*2+1]=$[0];else throw new Error("Only LINE_STRIP and LINE_LOOP may be converted to LINES.");Z.setMode(ij1);let H=X.getRoot();if(Y.listParents().some((V)=>V!==H&&V!==Z))Z.setIndices(DZ(X,Y).setArray(W));else Y.setArray(W)}function xs(Z){let J=Z.getGraph(),X=I6.fromGraph(J);if(!Z.getIndices())Z2(Z);let Y=Z.getIndices(),$=Y.getArray(),Q=ws(Z),W=new kJ[Y.getComponentType()](Q*3),G=Z.getMode();if(G===oj1)for(let V=0,F=$.length;V<F-2;V++)if(V%2)W[V*3]=$[V+1],W[V*3+1]=$[V],W[V*3+2]=$[V+2];else W[V*3]=$[V],W[V*3+1]=$[V+1],W[V*3+2]=$[V+2];else if(G===rj1)for(let V=0;V<Q;V++)W[V*3]=$[0],W[V*3+1]=$[V+1],W[V*3+2]=$[V+2];else throw new Error("Only TRIANGLE_STRIP and TRIANGLE_FAN may be converted to TRIANGLES.");Z.setMode(sj1);let H=X.getRoot();if(Y.listParents().some((V)=>V!==H&&V!==Z))Z.setIndices(DZ(X,Y).setArray(W));else Y.setArray(W)}var Ws="dequantize",sB={pattern:/^((?!JOINTS_).)*$/};function hs(Z=sB){let J=O7(sB,Z);return uJ(Ws,(X)=>{let Y=X.getLogger();for(let $ of X.getRoot().listMeshes())for(let Q of $.listPrimitives())ej1(Q,J);X.createExtension(PH).dispose(),Y.debug(`${Ws}: Complete.`)})}function ej1(Z,J=sB){let X=O7(sB,J);for(let Y of Z.listSemantics())if(X.pattern.test(Y))PT(Z.getAttribute(Y));for(let Y of Z.listTargets())for(let $ of Y.listSemantics())if(X.pattern.test($))PT(Y.getAttribute($))}function PT(Z){let J=Z.getArray();if(!J)return;let X=oB(J,Z.getComponentType(),Z.getNormalized());Z.setArray(X).setNormalized(!1)}function oB(Z,J,X){let Y=new Float32Array(Z.length);for(let $=0,Q=Z.length;$<Q;$++)if(X)Y[$]=c0.decodeNormalizedInt(Z[$],J);else Y[$]=Z[$];return Y}var{TEXTURE_INFO:fs,ROOT:nT6}=a;function ys(Z){let J=new I6().setLogger(Z.getLogger()),X=vT(J,Z);return ZD1(J,Z,X),J.getRoot().copy(Z.getRoot(),X),J}function ZD1(Z,J,X){X||(X=vT(Z,J));for(let Y of J.getRoot().listExtensionsUsed()){let $=Z.createExtension(Y.constructor);if(Y.isRequired())$.setRequired(!0)}return JD1(Z,J,XD1(J),X)}function JD1(Z,J,X,Y){Y||(Y=vT(Z,J));let $=new Map;for(let Q of X)if(!$.has(Q)&&Q.propertyType!==fs)$.set(Q,Y(Q));for(let[Q,K]of $.entries())K.copy(Q,Y);return $}function vT(Z,J){let X=new Map([[J.getRoot(),Z.getRoot()]]);return(Y)=>{if(Y.propertyType===fs)return Y;let $=X.get(Y);if(!$)$=new Y.constructor(Z.getGraph()),X.set(Y,$);return $}}function XD1(Z){let J=new Set;for(let X of Z.getGraph().listEdges())J.add(X.getChild());return Array.from(J)}var OT="flatten",Gs={cleanup:!0};function bs(Z=Gs){let J=O7(Gs,Z);return uJ(OT,async(X)=>{let Y=X.getRoot(),$=X.getLogger(),Q=new Set;for(let H of Y.listSkins())for(let V of H.listJoints())Q.add(V);let K=new Set;for(let H of Y.listAnimations())for(let V of H.listChannels()){let F=V.getTargetNode();if(F&&V.getTargetPath()!=="weights")K.add(F)}let W=new Set,G=new Set;for(let H of Y.listScenes())H.traverse((V)=>{let F=V.getParentNode();if(!F)return;if(Q.has(F)||W.has(F))W.add(V);if(K.has(F)||G.has(F))G.add(V)});for(let H of Y.listScenes())H.traverse((V)=>{if(K.has(V))return;if(W.has(V))return;if(G.has(V))return;$j1(V)});if(K.size)$.debug(`${OT}: Flattening node hierarchies with TRS animation not yet supported.`);if(J.cleanup)await X.transform(eB({propertyTypes:[a.NODE],keepLeaves:!1}));$.debug(`${OT}: Complete.`)})}function gs(Z){return CP(Z)}var YD1={skipValidation:!1},Hs=4294967295,{LINE_STRIP:$D1,LINE_LOOP:QD1,TRIANGLE_STRIP:KD1,TRIANGLE_FAN:WD1}=O8.Mode;function GD1(Z,J={}){let X=O7(YD1,J),Y=Z[0],$=I6.fromGraph(Y.getGraph());if(!X.skipValidation&&new Set(Z.map(Ns)).size>1)throw new Error("Requires >=2 Primitives, sharing the same Material and Mode, with compatible vertex attributes and indices.");for(let q of Z)switch(q.getMode()){case $D1:case QD1:tj1(q);break;case KD1:case WD1:xs(q);break}let Q=[],K=new Uint32Array(Z.length),W=0,G=0;for(let q=0;q<Z.length;q++){let U=Z[q],L=U.getIndices(),B=U.getAttribute("POSITION").getCount(),w=L?L.getArray():null,N=L?L.getCount():B,R=new Uint32Array(B).fill(Hs);for(let M=0;M<N;M++){let P=w?w[M]:M;if(R[P]===Hs)R[P]=W++,K[q]++}Q.push(R),G+=N}let H=$.createPrimitive().setMode(Y.getMode()).setMaterial(Y.getMaterial());for(let q of Y.listSemantics()){let U=Y.getAttribute(q),L=kJ[U.getComponentType()],B=DZ($,U).setArray(new L(W*U.getElementSize()));H.setAttribute(q,B)}let V=Y.getIndices(),F=V?DZ($,V).setArray(IT(G,W)):null;H.setIndices(F);let z=0;for(let q=0;q<Q.length;q++){let U=Z[q],L=U.getIndices(),B=L?L.getCount():-1,w=Q[q];if(L&&F)VD1(L,w,F,z),z+=B;for(let N of H.listSemantics()){let R=U.getAttribute(N),M=H.getAttribute(N);HD1(R,L,w,M)}}return H}function HD1(Z,J,X,Y){let $=Z.getElementSize(),Q=J?J.getArray():null,K=Z.getCount(),W=Z.getArray(),G=Y.getArray(),H=new Uint8Array(Z.getCount());for(let V=0,F=J?J.getCount():K;V<F;V++){let z=Q?Q[V]:V,q=X[z];if(H[q])continue;for(let U=0;U<$;U++)G[q*$+U]=W[z*$+U];H[q]=1}}function VD1(Z,J,X,Y){let $=Z.getCount(),Q=Z.getArray(),K=X.getArray();for(let W=0;W<$;W++){let G=Q[W],H=J[G];K[Y+W]=H}}var CT="join",{ROOT:zD1,NODE:FD1,MESH:qD1,PRIMITIVE:UD1,ACCESSOR:LD1}=a,NT=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],Vs={keepMeshes:!1,keepNamed:!1,cleanup:!0};function ms(Z=Vs){let J=O7(Vs,Z);return uJ(CT,async(X)=>{let Y=X.getRoot(),$=X.getLogger();for(let Q of Y.listScenes())zs(X,Q,J),Q.traverse((K)=>zs(X,K,J));if(J.cleanup)await X.transform(eB({propertyTypes:[FD1,qD1,UD1,LD1],keepAttributes:!0,keepIndices:!0,keepLeaves:!1}));$.debug(`${CT}: Complete.`)})}function zs(Z,J,X){let Y=Z.getLogger(),$={},Q=J.listChildren();for(let G=0;G<Q.length;G++){let H=Q[G];if(H.listParents().some((z)=>z instanceof NY))continue;let F=H.getMesh();if(!F)continue;if(H.getExtension("EXT_mesh_gpu_instancing"))continue;if(H.getSkin())continue;for(let z of F.listPrimitives()){if(z.listTargets().length>0)continue;let q=z.getMaterial();if(q&&q.getExtension("KHR_materials_volume"))continue;TH(z),wD1(z);let U=Ns(z),L=F.getName()||H.getName();if(X.keepMeshes||X.keepNamed&&L)U+=`|${G}`;if(!(U in $))$[U]={prims:[],primMeshes:[],primNodes:[],dstNode:H,dstMesh:void 0};let B=$[U];B.prims.push(z),B.primNodes.push(H)}}let K=Object.values($).filter(({prims:G})=>G.length>1),W=new Set(K.flatMap((G)=>G.primNodes));for(let G of W){let H=G.getMesh();if(H.listParents().some((F)=>{return F.propertyType!==zD1&&G!==F}))G.setMesh(H.clone())}for(let G of K){let{dstNode:H,primNodes:V}=G;G.dstMesh=H.getMesh(),G.primMeshes=V.map((F)=>F.getMesh())}for(let G of K){let{prims:H,primNodes:V,primMeshes:F,dstNode:z,dstMesh:q}=G,U=z.getMatrix();for(let w=0;w<H.length;w++){let N=V[w],R=F[w],M=H[w];if(R.removePrimitive(M),Zj1(M))M=H[w]=BD1(H[w]);if(N!==z)Ms(NT,Qj1(NT,U),N.getMatrix()),Ss(M,NT)}let L=GD1(H),B=L.listAttributes()[0].getCount();q.addPrimitive(L),Y.debug(`${CT}: Joined Primitives (${H.length}) containing ${RT(B)} vertices under Node "${z.getName()}".`)}}function BD1(Z){let J=Z.clone();for(let Y of J.listSemantics())J.setAttribute(Y,J.getAttribute(Y).clone());let X=J.getIndices();if(X)J.setIndices(X.clone());return J}function wD1(Z){for(let J of["POSITION","NORMAL","TANGENT"]){let X=Z.getAttribute(J);if(X)PT(X)}}var{TRANSLATION:aT6,ROTATION:sT6,SCALE:oT6,WEIGHTS:rT6}=NY.TargetPath;var OD1={pattern:/.*/,quantizationVolume:"mesh",quantizePosition:14,quantizeNormal:10,quantizeTexcoord:12,quantizeColor:8,quantizeWeight:8,quantizeGeneric:12,normalizeWeights:!0,cleanup:!0};var tT6=EK({level:"high"},OD1);var ND1="unweld";function RD1(Z,J=new Map){let X=Z.getIndices();if(!X)return;let Y=Z.getGraph(),$=I6.fromGraph(Y),Q=$.getLogger(),K=Z.getAttribute("POSITION").getCount();for(let G of Z.listAttributes())if(Z.swap(G,Fs($,G,X,J)),G.listParents().length===1)G.dispose();for(let G of Z.listTargets())for(let H of G.listAttributes())if(G.swap(H,Fs($,H,X,J)),H.listParents().length===1)H.dispose();let W=Z.getAttribute("POSITION").getCount();if(Q.debug(`${ND1}: ${rB(K,W)} vertices.`),Z.setIndices(null),X.listParents().length===1)X.dispose()}function Fs(Z,J,X,Y){if(Y.has(J)&&Y.get(J).has(X))return Y.get(J).get(X);let $=J.getArray(),K=new $.constructor(X.getCount()*J.getElementSize()),W=X.getArray(),G=J.getElementSize();for(let V=0,F=X.getCount();V<F;V++)for(let z=0;z<G;z++)K[V*G+z]=$[W[V]*G+z];if(!Y.has(J))Y.set(J,new Map);let H=DZ(Z,J).setArray(K);return Y.get(J).set(X,H),H}var qs;(function(Z){Z[Z.STEP=0]="STEP",Z[Z.LERP=1]="LERP",Z[Z.SLERP=2]="SLERP"})(qs||(qs={}));var MD1=0.000001;function jD1(Z,J,X,Y=0.0001){let $=J.length/Z.length,Q=new Array($).fill(0),K=new Array($).fill(0),W=new Array($).fill(0),G=new Array($).fill(0),H=Z.length-1,V=1;for(let F=1;F<H;++F){let z=Z[V-1],q=Z[F],U=Z[F+1],L=(q-z)/(U-z),B=!1;if(q!==U&&(F!==1||q!==Z[0])){if(CH(J,V-1,G),CH(J,F,K),CH(J,F+1,W),X==="slerp"){let w=CD1(Q,G,W,L),N=Ls(G,K)+Ls(K,W);B=!nB(K,w,Y)||N+Number.EPSILON>=Math.PI}else if(X==="lerp"){let w=PD1(Q,G,W,L);B=!nB(K,w,Y)}else if(X==="step")B=!nB(K,G)||!nB(K,W)}if(B){if(F!==V)Z[V]=Z[F],Us(J,V,CH(J,F,Q));V++}}if(H>0)Z[V]=Z[H],Us(J,V,CH(J,H,Q)),V++;return V}function CH(Z,J,X){for(let Y=0,$=X.length;Y<$;Y++)X[Y]=Z[J*$+Y];return X}function Us(Z,J,X){for(let Y=0,$=X.length;Y<$;Y++)Z[J*$+Y]=X[Y]}function nB(Z,J,X=0){if(Z.length!==J.length)return!1;for(let Y=0;Y<Z.length;Y++)if(Math.abs(Z[Y]-J[Y])>X)return!1;return!0}function DD1(Z,J,X){return Z*(1-X)+J*X}function PD1(Z,J,X,Y){for(let $=0;$<J.length;$++)Z[$]=DD1(J[$],X[$],Y);return Z}function CD1(Z,J,X,Y){let $=J[0],Q=J[1],K=J[2],W=J[3],G=X[0],H=X[1],V=X[2],F=X[3],z,q,U,L,B;if(q=$*G+Q*H+K*V+W*F,q<0)q=-q,G=-G,H=-H,V=-V,F=-F;if(1-q>MD1)z=Math.acos(q),U=Math.sin(z),L=Math.sin((1-Y)*z)/U,B=Math.sin(Y*z)/U;else L=1-Y,B=Y;return Z[0]=L*$+B*G,Z[1]=L*Q+B*H,Z[2]=L*K+B*V,Z[3]=L*W+B*F,Z}function Ls(Z,J){let X=TD1(Z,J);return Math.acos(2*X*X-1)}function TD1(Z,J){return Z[0]*J[0]+Z[1]*J[1]+Z[2]*J[2]+Z[3]*J[3]}var eT6=new Float32Array(0),ZE6={ready:Promise.resolve(),resample:jD1,tolerance:0.0001,cleanup:!0};var dY="simplify",{POINTS:us,LINES:ED1,LINE_STRIP:ID1,LINE_LOOP:kD1,TRIANGLES:vD1,TRIANGLE_STRIP:ds,TRIANGLE_FAN:cs}=O8.Mode,ls={ratio:0,error:0.0001,lockBorder:!1,cleanup:!0};function ps(Z){let J=O7(ls,Z),X=J.simplifier;if(!X)throw new Error(`${dY}: simplifier dependency required — install "meshoptimizer".`);return uJ(dY,async(Y)=>{let $=Y.getLogger();await X.ready,await Y.transform(kT({overwrite:!1,cleanup:J.cleanup}));let Q=0;for(let K of Y.getRoot().listMeshes()){for(let W of K.listPrimitives()){let G=W.getMode();if(G===vD1||G===ds||G===cs){if(Bs(W,J),mJ(W,B6.RENDER)===0)W.dispose()}else if(W.getMode()===us&&!!X.simplifyPoints){if(Bs(W,J),mJ(W,B6.RENDER)===0)W.dispose()}else Q++}if(K.listPrimitives().length===0)K.dispose()}if(Q>0)$.warn(`${dY}: Skipping simplification of ${Q} primitives: Unsupported draw mode.`);if(J.cleanup)await Y.transform(eB({propertyTypes:[a.ACCESSOR,a.NODE],keepAttributes:!0,keepIndices:!0,keepLeaves:!1}),Ds({propertyTypes:[a.ACCESSOR]}));$.debug(`${dY}: Complete.`)})}function Bs(Z,J){let X=EK({},ls,J),Y=X.simplifier,$=Z.getGraph(),Q=I6.fromGraph($),K=Q.getLogger();switch(Z.getMode()){case us:return _D1(Q,Z,X);case ED1:case ID1:case kD1:return K.warn(`${dY}: Skipping primitive simplification: Unsupported draw mode.`),Z;case ds:case cs:xs(Z);break}let W=mJ(Z,B6.UPLOAD),G=mJ(Z,B6.RENDER);if(G<W/2)TH(Z);let H=Z.getAttribute("POSITION"),V=Z.getIndices(),F=H.getArray(),z=V.getArray();if(!(F instanceof Float32Array))F=oB(F,H.getComponentType(),H.getNormalized());if(!(z instanceof Uint32Array))z=new Uint32Array(z);let q=Math.floor(X.ratio*G/3)*3,U=X.lockBorder?["LockBorder"]:[],[L,B]=Y.simplify(z,F,3,q,X.error,U);if(Z.setIndices(DZ(Q,V).setArray(L)),V.listParents().length===1)V.dispose();TH(Z);let w=mJ(Z,B6.UPLOAD);if(w<=65534)Z.getIndices().setArray(new Uint16Array(Z.getIndices().getArray()));return K.debug(`${dY}: ${rB(W,w)} vertices, error: ${B.toFixed(4)}.`),Z}function _D1(Z,J,X){let Y=X.simplifier,$=Z.getLogger();if(J.getIndices())RD1(J);let K=J.getAttribute("POSITION"),W=J.getAttribute("COLOR_0"),G=K.getCount(),H=K.getArray(),V=W?W.getArray():void 0,F=W?W.getComponentSize():void 0;if(!(H instanceof Float32Array))H=oB(H,K.getComponentType(),K.getNormalized());if(V&&!(V instanceof Float32Array))V=oB(V,K.getComponentType(),K.getNormalized());Y.useExperimentalFeatures=!0;let z=Math.floor(X.ratio*G),q=Y.simplifyPoints(H,3,z,V,F);Y.useExperimentalFeatures=!1;let[U,L]=Y.compactMesh(q);$.debug(`${dY}: ${rB(K.getCount(),L)} vertices.`);for(let B of ET(J)){let w=DZ(Z,B);if(jT(B,null,U,w,L),rM1(J,B,w),B.listParents().length===1)B.dispose()}return J}var TT;(function(Z){Z.LANCZOS3="lanczos3",Z.LANCZOS2="lanczos2"})(TT||(TT={}));var JE6={resizeFilter:TT.LANCZOS3,pattern:void 0,formats:void 0,slots:void 0,quality:void 0,effort:void 0,lossless:!1,nearLossless:!1,limitInputPixels:!0};var ts=r(rs(),1);var kK={OPTIMIZED_DIR:".optimized",CHECKSUM_EXT:".md5",DIRECTORIES:[(()=>{try{return r5.dirname(g.resolve("@hytopia.com/assets"))}catch{return null}})(),r5.resolve(process.cwd(),"assets")].filter(Boolean),OPTIMIZER_RUNS:[{suffix:"",options:["--compress","false","--instance","false","--simplify","false"]},{suffix:"-named-nodes",options:["--compress","false","--instance","false","--simplify","false","--join","true","--join-named","false"]}]};class T5{static instance=new T5;optimize=!0;optimizeEveryStart=!1;_modelUriDocuments=new Map;_modelUriBoundingBoxes=new Map;_modelUriNodeNames=new Map;_modelUriTrimeshes=new Map;constructor(){}async preloadModels(){let Z=await this._getAbsoluteModelPaths();console.log(`ModelRegistry.preloadModels(): Preloading ${Z.length} models...`);for(let J of Z){if(this.optimize)await this._resolveOptimizedModelPath(J);await this._loadModelData(J)}console.log(`ModelRegistry.preloadModels(): Preloaded ${Z.length} models!`)}getAnimationNames(Z){let J=this._modelUriDocuments.get(Z);if(!J)u.fatalError(`ModelRegistry.getAnimationNames(): Model ${Z} not found!`);return J.getRoot().listAnimations().map((Y)=>Y.getName())}getBoundingBox(Z){let J=this._modelUriBoundingBoxes.get(Z);if(!J)u.fatalError(`ModelRegistry.getBoundingBox(): Model ${Z} not found!`);return J}getDepth(Z){let J=this.getBoundingBox(Z);return J.max.z-J.min.z}getHeight(Z){let J=this.getBoundingBox(Z);return J.max.y-J.min.y}getNodeNames(Z){let J=this._modelUriNodeNames.get(Z);if(!J)u.fatalError(`ModelRegistry.getNodeNames(): Model ${Z} not found!`);return J}getTrimesh(Z,J=1){let X=this._modelUriTrimeshes.get(Z);if(!X){u.error(`ModelRegistry.getTrimesh(): Model ${Z} not found!`);return}let Y=X.vertices;if(J!==1){Y=new Float32Array(Y.length);for(let $=0;$<Y.length;$++)Y[$]=X.vertices[$]*J}return{vertices:Y,indices:X.indices}}getWidth(Z){let J=this.getBoundingBox(Z);return J.max.x-J.min.x}modelHasNode(Z,J){let X=this._modelUriNodeNames.get(Z);if(!X)u.fatalError(`ModelRegistry.modelHasNode(): Model ${Z} not found!`);return X.includes(J)}_absoluteModelPathToModelUri(Z){let J=r5.normalize(Z);for(let X of kK.DIRECTORIES){let Y=r5.normalize(X);if(J.startsWith(Y))return r5.relative(Y,J).replace(/\\/g,"/")}return r5.basename(J)}async _getAbsoluteModelPaths(){let Z=[];for(let J of kK.DIRECTORIES){let X=r5.resolve(process.cwd(),J);if(!dJ.existsSync(X))continue;let Y=await uL("**/*.{gltf,glb}",{cwd:X,follow:!0});for(let $ of Y)Z.push(r5.join(X,$))}return Z}async _loadModelData(Z){let J=await new _P().read(Z),X=gs(J.getRoot().listScenes()[0]),Y=J.getRoot().listNodes().map((Q)=>Q.getName()),$=this._absoluteModelPathToModelUri(Z);this._modelUriDocuments.set($,J),this._modelUriBoundingBoxes.set($,{min:{x:X.min[0],y:X.min[1],z:X.min[2]},max:{x:X.max[0],y:X.max[1],z:X.max[2]}}),this._modelUriNodeNames.set($,Y),this._modelUriTrimeshes.set($,await this._buildTrimesh($))}async _resolveOptimizedModelPath(Z){let J=this._buildOptimizedModelPath(Z);if(!this.optimizeEveryStart&&this._isOptimizedVersionValid(Z))return J;return await this._optimizeModel(Z,J)}_isOptimizedVersionValid(Z){let J=`${this._buildOptimizedModelPath(Z)}${kK.CHECKSUM_EXT}`;if(!dJ.existsSync(J))return!1;let X=this._calculateChecksum(Z),Y=dJ.readFileSync(J,"utf8");return X===Y}_calculateChecksum(Z){if(!dJ.existsSync(Z))return"";let J=dJ.readFileSync(Z);return fD1.createHash("sha256").update(J.toString("base64")).digest("hex")}_buildOptimizedModelPath(Z){let J=r5.basename(Z),X=J.replace(/\.[^/.]+$/,""),Y=r5.dirname(Z),$=r5.join(Y,kK.OPTIMIZED_DIR,X);return r5.join($,J)}async _buildTrimesh(Z,J=1,X=0.001){let Y=this._modelUriDocuments.get(Z);if(!Y)u.fatalError(`ModelRegistry._buildTrimesh(): Model ${Z} not found!`);let $=ys(Y);$.setLogger(new D5(ZH.WARN)),await $.transform(Rs({pivot:"center"}),bs(),ms(),kT(),ps({simplifier:ts.MeshoptSimplifier,ratio:J,error:X}),hs());for(let H of $.getRoot().listScenes())for(let V of H.listChildren())As(V);let Q=$.getRoot().listMeshes()[0];if(!Q){u.error(`ModelRegistry._buildTrimesh(): Model ${Z} has no root mesh!`);return}let K=Q.listPrimitives()[0];if(!K){u.error(`ModelRegistry._buildTrimesh(): Model ${Z} has no root primitive!`);return}let W=K.getAttribute("POSITION"),G=K.getIndices();if(!W||!G){u.error(`ModelRegistry._buildTrimesh(): Model ${Z} missing required geometry data!`);return}return{vertices:W.getArray(),indices:G.getArray()}}async _optimizeModel(Z,J){let X=r5.dirname(J);dJ.rmSync(X,{recursive:!0,force:!0}),dJ.mkdirSync(X,{recursive:!0}),console.log(`ModelRegistry: Optimizing model ${this._absoluteModelPathToModelUri(Z)}...`);for(let Y of kK.OPTIMIZER_RUNS){let $=J.replace(/(\.[^/.]+)$/,`${Y.suffix}$1`),{stderr:Q}=await ec("npx",["gltf-transform","optimize",Z,$,...Y.options]);if(Q)return u.warning(`ModelRegistry._optimizeModel(): Error optimizing model ${this._absoluteModelPathToModelUri(Z)}, defaulting to unoptimized model. Error: ${Q}`),Z}return dJ.writeFileSync(`${J}${kK.CHECKSUM_EXT}`,this._calculateChecksum(Z)),J}}var PZ=r(M3(),1);var _H;(($)=>{$.DYNAMIC="dynamic";$.FIXED="fixed";$.KINEMATIC_POSITION="kinematic_position";$.KINEMATIC_VELOCITY="kinematic_velocity"})(_H||={});var hT=0.001,es="dynamic";class cY extends B0{_additionalMass=0;_colliders=new Set;_explicitSleep=!1;_enabledPositions={x:!0,y:!0,z:!0};_enabledRotations={x:!0,y:!0,z:!0};_rigidBody;_rigidBodyDesc;_rigidBodyType;_simulation;constructor(Z){super();Z.type??=es,this._rigidBodyDesc=this._createRigidBodyDesc(Z),this._rigidBodyType=Z.type,this._applyRigidBodyOptions(Z),this._autoAddToSimulation(Z)}get additionalMass(){if(!this._requireNotRemoved("additionalMass"))return 0;return this._additionalMass}get additionalSolverIterations(){if(!this._requireNotRemoved("additionalSolverIterations"))return 0;return this._rigidBody?this._rigidBody.additionalSolverIterations():this._rigidBodyDesc.additionalSolverIterations}get angularDamping(){if(!this._requireNotRemoved("angularDamping"))return 0;return this._rigidBody?this._rigidBody.angularDamping():this._rigidBodyDesc.angularDamping}get angularVelocity(){if(!this._requireNotRemoved("angularVelocity"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.angvel():this._rigidBodyDesc.angvel}get colliders(){return this._colliders}get dominanceGroup(){if(!this._requireNotRemoved("dominanceGroup"))return 0;return this._rigidBody?this._rigidBody.dominanceGroup():this._rigidBodyDesc.dominanceGroup}get directionFromRotation(){let{x:Z,y:J,z:X,w:Y}=this.rotation;return{x:-2*(Z*X+Y*J),y:-2*(J*X-Y*Z),z:-(1-2*(Z*Z+J*J))}}get effectiveAngularInertia(){if(!this._requireNotRemoved("effectiveAngularInertia"))return;return this._rigidBody?this._rigidBody.effectiveAngularInertia():void 0}get effectiveInverseMass(){if(!this._requireNotRemoved("effectiveInverseMass"))return;return this._rigidBody?this._rigidBody.effectiveInvMass():void 0}get effectiveWorldInversePrincipalAngularInertiaSqrt(){if(!this._requireNotRemoved("effectiveWorldInversePrincipalAngularInertiaSqrt"))return;return this._rigidBody?this._rigidBody.effectiveWorldInvInertiaSqrt():void 0}get enabledRotations(){if(!this._requireNotRemoved("enabledRotations"))return{x:!0,y:!0,z:!0};return this._enabledRotations}get enabledPositions(){if(!this._requireNotRemoved("enabledPositions"))return{x:!0,y:!0,z:!0};return this._enabledPositions}get gravityScale(){if(!this._requireNotRemoved("gravityScale"))return 0;return this._rigidBody?this._rigidBody.gravityScale():this._rigidBodyDesc.gravityScale}get inverseMass(){if(!this._requireNotRemoved("inverseMass"))return;return this._rigidBody?this._rigidBody.invMass():void 0}get inversePrincipalAngularInertiaSqrt(){if(!this._requireNotRemoved("inversePrincipalAngularInertiaSqrt"))return;return this._rigidBody?this._rigidBody.invPrincipalInertiaSqrt():void 0}get isCcdEnabled(){if(!this._requireNotRemoved("isCcdEnabled"))return!1;return this._rigidBody?this._rigidBody.isCcdEnabled():this._rigidBodyDesc.ccdEnabled}get isDynamic(){if(!this._requireNotRemoved("isDynamic"))return!1;return this._rigidBodyType==="dynamic"}get isEnabled(){if(!this._requireNotRemoved("isEnabled"))return!1;return this._rigidBody?this._rigidBody.isEnabled():this._rigidBodyDesc.enabled}get isFixed(){if(!this._requireNotRemoved("isFixed"))return!1;return this._rigidBodyType==="fixed"}get isKinematic(){if(!this._requireNotRemoved("isKinematic"))return!1;return["kinematic_position","kinematic_velocity"].includes(this._rigidBodyType)}get isKinematicPositionBased(){if(!this._requireNotRemoved("isKinematicPositionBased"))return!1;return this._rigidBodyType==="kinematic_position"}get isKinematicVelocityBased(){if(!this._requireNotRemoved("isKinematicVelocityBased"))return!1;return this._rigidBodyType==="kinematic_velocity"}get isMoving(){if(!this._requireNotRemoved("isMoving"))return!1;return this._rigidBody?this._rigidBody.isMoving():!1}get isRemoved(){return!this._rigidBody&&!this._rigidBodyDesc}get isSimulated(){if(!this._requireNotRemoved("isSimulated"))return!1;return this._rigidBody?!0:!1}get isSleeping(){if(!this._requireNotRemoved("isSleeping"))return!1;return this._rigidBody?this._rigidBody.isSleeping():this._rigidBodyDesc.sleeping}get linearDamping(){if(!this._requireNotRemoved("linearDamping"))return 0;return this._rigidBody?this._rigidBody.linearDamping():this._rigidBodyDesc.linearDamping}get linearVelocity(){if(!this._requireNotRemoved("linearVelocity"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.linvel():this._rigidBodyDesc.linvel}get localCenterOfMass(){if(!this._requireNotRemoved("localCenterOfMass"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.localCom():this._rigidBodyDesc.centerOfMass}get mass(){if(!this._requireNotRemoved("mass"))return 0;return this._rigidBody?this._rigidBody.mass():this._rigidBodyDesc.mass}get nextKinematicRotation(){if(!this._requireNotRemoved("nextKinematicRotation"))return{x:0,y:0,z:0,w:1};return this._rigidBody?this._rigidBody.nextRotation():this._rigidBodyDesc.rotation}get nextKinematicPosition(){if(!this._requireNotRemoved("nextKinematicPosition"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.nextTranslation():this._rigidBodyDesc.translation}get numColliders(){return this._colliders.size}get principalAngularInertia(){if(!this._requireNotRemoved("principalAngularInertia"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.principalInertia():this._rigidBodyDesc.principalAngularInertia}get principalAngularInertiaLocalFrame(){if(!this._requireNotRemoved("principalAngularInertiaLocalFrame"))return;return this._rigidBody?this._rigidBody.principalInertiaLocalFrame():void 0}get position(){if(!this._requireNotRemoved("position"))return{x:0,y:0,z:0};return this._rigidBody?this._rigidBody.translation():this._rigidBodyDesc.translation}get rawRigidBody(){if(!this._requireNotRemoved("rawRigidBody"))return;return this._rigidBody}get rotation(){if(!this._requireNotRemoved("rotation"))return{x:0,y:0,z:0,w:1};return this._rigidBody?this._rigidBody.rotation():this._rigidBodyDesc.rotation}get softCcdPrediction(){if(!this._requireNotRemoved("softCcdPrediction"))return 0;return this._rigidBody?this._rigidBody.softCcdPrediction():this._rigidBodyDesc.softCcdPrediction}get type(){if(!this._requireNotRemoved("type"))return"dynamic";return this._rigidBodyType}get worldCenterOfMass(){if(!this._requireNotRemoved("worldCenterOfMass"))return;return this._rigidBody?this._rigidBody.worldCom():void 0}setAdditionalMass(Z){if(!this._requireDynamic("setAdditionalMass"))return;if(!this._requireNotRemoved("setAdditionalMass"))return;this._rigidBody?this._rigidBody.setAdditionalMass(Z,!this._explicitSleep):this._rigidBodyDesc.setAdditionalMass(Z)}setAdditionalMassProperties(Z){if(!this._requireDynamic("setAdditionalMassProperties"))return;if(!this._requireNotRemoved("setAdditionalMassProperties"))return;let{additionalMass:J,centerOfMass:X,principalAngularInertia:Y,principalAngularInertiaLocalFrame:$}=Z;this._rigidBody?this._rigidBody.setAdditionalMassProperties(J,X,Y,$,!this._explicitSleep):this._rigidBodyDesc.setAdditionalMassProperties(J,X,Y,$)}setAdditionalSolverIterations(Z){if(!this._requireDynamic("setAdditionalSolverIterations"))return;if(!this._requireNotRemoved("setAdditionalSolverIterations"))return;this._rigidBody?this._rigidBody.setAdditionalSolverIterations(Z):this._rigidBodyDesc.setAdditionalSolverIterations(Z)}setAngularDamping(Z){if(!this._requireDynamic("setAngularDamping"))return;if(!this._requireNotRemoved("setAngularDamping"))return;this._rigidBody?this._rigidBody.setAngularDamping(Z):this._rigidBodyDesc.setAngularDamping(Z)}setAngularVelocity(Z){if(!this._requireNotKinematicPositionBased("setAngularVelocity"))return;if(!this._requireNotRemoved("setAngularVelocity"))return;this._rigidBody?this._rigidBody.setAngvel(Z,!this._explicitSleep):this._rigidBodyDesc.setAngvel(Z)}setCcdEnabled(Z){if(!this._requireDynamic("setCcdEnabled"))return;if(!this._requireNotRemoved("setCcdEnabled"))return;this._rigidBody?this._rigidBody.enableCcd(Z):this._rigidBodyDesc.setCcdEnabled(Z)}setDominanceGroup(Z){if(!this._requireDynamic("setDominanceGroup"))return;if(!this._requireNotRemoved("setDominanceGroup"))return;this._rigidBody?this._rigidBody.setDominanceGroup(Z):this._rigidBodyDesc.setDominanceGroup(Z)}setEnabled(Z){if(!this._requireNotRemoved("setEnabled"))return;this._rigidBody?this._rigidBody.setEnabled(Z):this._rigidBodyDesc.setEnabled(Z)}setEnabledPositions(Z){if(!this._requireDynamic("setEnabledPositions"))return;if(!this._requireNotRemoved("setEnabledPositions"))return;this._rigidBody?this._rigidBody.setEnabledTranslations(Z.x,Z.y,Z.z,!this._explicitSleep):this._rigidBodyDesc.enabledTranslations(Z.x,Z.y,Z.z),this._enabledPositions=Z}setEnabledRotations(Z){if(!this._requireDynamic("setEnabledRotations"))return;if(!this._requireNotRemoved("setEnabledRotations"))return;this._rigidBody?this._rigidBody.setEnabledRotations(Z.x,Z.y,Z.z,!this._explicitSleep):this._rigidBodyDesc.enabledRotations(Z.x,Z.y,Z.z),this._enabledRotations=Z}setGravityScale(Z){if(!this._requireDynamic("setGravityScale"))return;if(!this._requireNotRemoved("setGravityScale"))return;this._rigidBody?this._rigidBody.setGravityScale(Z,!this._explicitSleep):this._rigidBodyDesc.setGravityScale(Z)}setLinearDamping(Z){if(!this._requireDynamic("setLinearDamping"))return;if(!this._requireNotRemoved("setLinearDamping"))return;this._rigidBody?this._rigidBody.setLinearDamping(Z):this._rigidBodyDesc.setLinearDamping(Z)}setLinearVelocity(Z){if(!this._requireNotKinematicPositionBased("setLinearVelocity"))return;if(!this._requireNotRemoved("setLinearVelocity"))return;this._rigidBody?this._rigidBody.setLinvel(Z,!this._explicitSleep):this._rigidBodyDesc.setLinvel(Z.x,Z.y,Z.z)}setNextKinematicRotation(Z){if(!this._requireKinematic("setNextKinematicRotation"))return;if(!this._requireNotRemoved("setNextKinematicRotation"))return;this._rigidBody?this._rigidBody.setNextKinematicRotation(Z):this._rigidBodyDesc.setRotation(Z)}setNextKinematicPosition(Z){if(!this._requireKinematic("setNextKinematicPosition"))return;if(!this._requireNotRemoved("setNextKinematicPosition"))return;this._rigidBody?this._rigidBody.setNextKinematicTranslation(Z):this._rigidBodyDesc.setTranslation(Z.x,Z.y,Z.z)}setPosition(Z){if(!this._requireNotRemoved("setPosition"))return;this._rigidBody?this._rigidBody.setTranslation(Z,!this._explicitSleep):this._rigidBodyDesc.setTranslation(Z.x,Z.y,Z.z)}setRotation(Z){if(!this._requireNotRemoved("setRotation"))return;this._rigidBody?this._rigidBody.setRotation(Z,!this._explicitSleep):this._rigidBodyDesc.setRotation(Z)}setSleeping(Z){if(!this._requireDynamic("setSleeping"))return;if(!this._requireNotRemoved("setSleeping"))return;this._rigidBody?Z?this._rigidBody.sleep():this._rigidBody.wakeUp():this._rigidBodyDesc.sleeping=Z,this._explicitSleep=Z}setSoftCcdPrediction(Z){if(!this._requireDynamic("setSoftCcdPrediction"))return;if(!this._requireNotRemoved("setSoftCcdPrediction"))return;this._rigidBody?this._rigidBody.setSoftCcdPrediction(Z):this._rigidBodyDesc.setSoftCcdPrediction(Z)}setCollisionGroupsForSolidColliders(Z){if(!this._requireNotRemoved("setCollisionGroupsForSolidColliders"))return;this._colliders.forEach((J)=>{if(J.isSensor)return;J.setCollisionGroups(Z)})}setCollisionGroupsForSensorColliders(Z){if(!this._requireNotRemoved("setCollisionGroupsForSensorColliders"))return;this._colliders.forEach((J)=>{if(!J.isSensor)return;J.setCollisionGroups(Z)})}setType(Z){if(!this._requireNotRemoved("setType"))return;let X={["dynamic"]:PZ.default.RigidBodyType.Dynamic,["fixed"]:PZ.default.RigidBodyType.Fixed,["kinematic_position"]:PZ.default.RigidBodyType.KinematicPositionBased,["kinematic_velocity"]:PZ.default.RigidBodyType.KinematicVelocityBased}[Z];if(X===void 0)return u.error(`Invalid RigidBodyType: ${Z}`);this._rigidBody?this._rigidBody.setBodyType(X,!this._explicitSleep):this._rigidBodyDesc.status=X,this._rigidBodyType=Z}addForce(Z){if(!this._requireNotRemoved("addForce"))return;if(!this._requireCreated("addForce"))return;if(!this._requireDynamic("addForce"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.addForce(Z,!this._explicitSleep)}addTorque(Z){if(!this._requireNotRemoved("addTorque"))return;if(!this._requireCreated("addTorque"))return;if(!this._requireDynamic("addTorque"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.addTorque(Z,!this._explicitSleep)}addChildColliderToSimulation(Z){if(!this._requireNotRemoved("addChildColliderToSimulation"))return;if(!this._requireCreated("addChildColliderToSimulation"))return;Z.addToSimulation(this._simulation,this)}addToSimulation(Z){if(!this._requireNotRemoved("addToSimulation"))return;if(this._rigidBody)return u.error("RigidBody.addToSimulation(): Rigid body already exists in the simulation!");this._simulation=Z,this._rigidBody=this._simulation.createRawRigidBody(this._rigidBodyDesc),this._colliders.forEach((J)=>{if(!J.isSimulated)J.addToSimulation(Z,this)})}applyImpulse(Z){if(!this._requireNotRemoved("applyImpulse"))return;if(!this._requireCreated("applyImpulse"))return;if(!this._requireDynamic("applyImpulse"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.applyImpulse(Z,!this._explicitSleep)}applyImpulseAtPoint(Z,J){if(!this._requireNotRemoved("applyImpulseAtPoint"))return;if(!this._requireCreated("applyImpulseAtPoint"))return;if(!this._requireDynamic("applyImpulseAtPoint"))return;if(this._isNegligibleVector(Z))return;this._rigidBody.applyImpulseAtPoint(Z,J,!this._explicitSleep)}applyTorqueImpulse(Z){if(!this._requireNotRemoved("applyTorqueImpulse"))return;if(!this._requireCreated("applyTorqueImpulse"))return;if(!this._requireDynamic("applyTorqueImpulse"))return;this._rigidBody.applyTorqueImpulse(Z,!this._explicitSleep)}createAndAddChildCollider(Z){if(!this._requireNotRemoved("createAndAddChildCollider"))return null;return this._simulation?new t5({...Z,parentRigidBody:this,simulation:this._simulation}):this._createAndAddPendingChildCollider(Z)}createAndAddChildColliders(Z){let J=[];return Z.forEach((X)=>{let Y=this.createAndAddChildCollider(X);if(Y)J.push(Y)}),J}getCollidersByTag(Z){let J=[];for(let X of this._colliders)if(X.tag===Z)J.push(X);return J}linkCollider(Z){if(!this._requireNotRemoved("linkCollider"))return;if(Z.parentRigidBody!==this)return u.error("RigidBody.linkCollider(): Collider cannot be linked because it is not a child of this rigid body!");this._colliders.add(Z)}lockAllRotations(){if(!this._requireNotRemoved("lockAllRotations"))return;this.setEnabledRotations({x:!1,y:!1,z:!1})}lockAllPositions(){if(!this._requireNotRemoved("lockAllPositions"))return;this.setEnabledPositions({x:!1,y:!1,z:!1})}removeFromSimulation(){if(!this._requireNotRemoved("removeFromSimulation"))return;if(!this._rigidBody)return u.error("RigidBody.removeFromSimulation(): Rigid body does not exist in the simulation!");this._colliders.forEach((Z)=>{Z.removeFromSimulation()}),this._simulation.removeRawRigidBody(this._rigidBody),this._simulation=void 0,this._rigidBody=void 0}unlinkCollider(Z){if(!this._requireNotRemoved("unlinkCollider"))return;if(!Z.isRemoved)return u.error("RigidBody.unlinkCollider(): Collider is still simulated and therefore cannot be unlinked from this rigid body!");this._colliders.delete(Z)}resetAngularVelocity(){if(!this._requireNotRemoved("resetAngularVelocity"))return;if(!this._requireCreated("resetAngularVelocity"))return;this.setAngularVelocity({x:0,y:0,z:0})}resetForces(){if(!this._requireNotRemoved("resetForces"))return;if(!this._requireCreated("resetForces"))return;this._rigidBody.resetForces(!this._explicitSleep)}resetLinearVelocity(){if(!this._requireNotRemoved("resetLinearVelocity"))return;if(!this._requireCreated("resetLinearVelocity"))return;this.setLinearVelocity({x:0,y:0,z:0})}resetTorques(){if(!this._requireNotRemoved("resetTorques"))return;if(!this._requireCreated("resetTorques"))return;this._rigidBody.resetTorques(!this._explicitSleep)}sleep(){if(!this._requireNotRemoved("sleep"))return;this.setSleeping(!0)}wakeUp(){if(!this._requireNotRemoved("wakeUp"))return;this.setSleeping(!1)}_applyRigidBodyOptions(Z){[["additionalMass",this.setAdditionalMass.bind(this)],["additionalMassProperties",this.setAdditionalMassProperties.bind(this)],["additionalSolverIterations",this.setAdditionalSolverIterations.bind(this)],["angularDamping",this.setAngularDamping.bind(this)],["angularVelocity",this.setAngularVelocity.bind(this)],["dominanceGroup",this.setDominanceGroup.bind(this)],["ccdEnabled",this.setCcdEnabled.bind(this)],["enabled",this.setEnabled.bind(this)],["enabledPositions",this.setEnabledPositions.bind(this)],["enabledRotations",this.setEnabledRotations.bind(this)],["gravityScale",this.setGravityScale.bind(this)],["linearDamping",this.setLinearDamping.bind(this)],["linearVelocity",this.setLinearVelocity.bind(this)],["position",this.setPosition.bind(this)],["rotation",this.setRotation.bind(this)],["sleeping",this.setSleeping.bind(this)],["softCcdPrediction",this.setSoftCcdPrediction.bind(this)]].forEach(([X,Y])=>{if(X in Z)Y(Z[X])})}_autoAddToSimulation(Z){if(Z.colliders)this._createAndAddPendingChildColliders(Z.colliders);if(Z.simulation)this.addToSimulation(Z.simulation)}_createAndAddPendingChildCollider(Z){if(!this._requireNotRemoved("createAndAddPendingChildCollider"))return null;if(!this._requireNotSimulated("createAndAddPendingChildCollider"))return null;let J=new t5(Z);return this._colliders.add(J),J}_createAndAddPendingChildColliders(Z){let J=[];return Z.forEach((X)=>{let Y=this._createAndAddPendingChildCollider(X);if(Y)J.push(Y)}),J}_createRigidBodyDesc(Z){let J=Z.type??es;return{["dynamic"]:()=>PZ.default.RigidBodyDesc.dynamic(),["fixed"]:()=>PZ.default.RigidBodyDesc.fixed(),["kinematic_position"]:()=>PZ.default.RigidBodyDesc.kinematicPositionBased(),["kinematic_velocity"]:()=>PZ.default.RigidBodyDesc.kinematicVelocityBased()}[J]()}_requireCreated(Z){if(!this._rigidBody||!this._simulation)u.error(`RigidBody._requireCreated(): Rigid body has not been created and therefore does not support the invoked method: ${Z}()`);return!!this._rigidBody&&!!this._simulation}_requireDynamic(Z){if(!this.isDynamic)u.error(`RigidBody._requireDynamic(): Rigid body is not dynamic and therefore does not support the invoked method: ${Z}()`);return this.isDynamic}_requireKinematic(Z){if(!this.isKinematic)u.error(`RigidBody._requireKinematic(): Rigid body is not kinematic and therefore does not support the invoked method: ${Z}()`);return this.isKinematic}_requireNotKinematicPositionBased(Z){if(this.isKinematicPositionBased)u.error(`RigidBody._requireNotKinematicPositionBased(): Rigid body is kinematic position based and therefore does not support the invoked method: ${Z}()`);return!this.isKinematicPositionBased}_requireNotRemoved(Z){if(!this._rigidBody&&!this._rigidBodyDesc)u.error(`RigidBody._requireNotRemoved(): Rigid body has been removed and therefore does not support the invoked method: ${Z}()`);return!!this._rigidBody||!!this._rigidBodyDesc}_requireNotSimulated(Z){if(this.isSimulated)u.error(`RigidBody._requireNotSimulated(): Rigid body is simulated and therefore does not support the invoked method: ${Z}()`);return!this.isSimulated}_isNegligibleVector(Z){return Math.abs(Z.x)<hT&&Math.abs(Z.y)<hT&&Math.abs(Z.z)<hT}}var fT;(($)=>{$[$.Average=0]="Average";$[$.Min=1]="Min";$[$.Multiply=2]="Multiply";$[$.Max=3]="Max"})(fT||={});var SH;((V)=>{V.NONE="none";V.BALL="ball";V.BLOCK="block";V.CAPSULE="capsule";V.CONE="cone";V.CYLINDER="cylinder";V.ROUND_CYLINDER="round-cylinder";V.TRIMESH="trimesh";V.VOXELS="voxels";V.WEDGE="wedge"})(SH||={});class t5 extends B0{_collider;_colliderDesc;_onCollision;_parentRigidBody;_relativePosition={x:0,y:0,z:0};_relativeRotation={x:0,y:0,z:0,w:1};_shape;_simulation;_tag;constructor(Z){super();this._colliderDesc=this._createColliderDesc(Z),this._shape=Z.shape,this._applyColliderOptions(Z),this._autoAddToSimulation(Z)}static optionsFromBlockHalfExtents(Z){return{shape:"block",halfExtents:Z}}static optionsFromModelUri(Z,J=1,X){let Y=T5.instance.getBoundingBox(Z),$=Y.max.x-Y.min.x,Q=Y.max.y-Y.min.y,K=Y.max.z-Y.min.z,W=Math.max($,K),G=Math.min($,K),H=W/G,V=W/Q,F=W*J/2,z=(N)=>Math.max(0.01,N),q=()=>({shape:"block",halfExtents:{x:z($*J/2),y:z(Q*J/2),z:z(K*J/2)}}),U=()=>({shape:"round-cylinder",radius:z(F),halfHeight:z(Q*J/2),borderRadius:z(F*0.1)}),L=()=>{let N=T5.instance.getTrimesh(Z,J);if(!N)return;return{shape:"trimesh",vertices:N.vertices,indices:N.indices}},B=()=>({shape:"wedge",extents:{x:$*J,y:Q*J,z:K*J}}),w=()=>({shape:"capsule",radius:z(F),halfHeight:z(Q*J/2-F)});if(X)switch(X){case"block":return q();case"capsule":return w();case"round-cylinder":return U();case"trimesh":{let N=L();if(!N){u.error(`Collider.optionsFromModelUri(): Failed to create trimesh options for model ${Z}, falling back to generic shape!`);break}return N}case"wedge":return B();default:u.warning(`Collider.optionsFromModelUri(): Preferred shape ${X} is not yet supported with Collider.optionsFromModelUri(), defaulting to generic shape!`)}if(H>2)return q();if(V>1.5)return U();return w()}get bounciness(){if(!this._requireNotRemoved("bounciness"))return 0;return this._collider?this._collider.restitution():this._colliderDesc.restitution}get bouncinessCombineRule(){if(!this._requireNotRemoved("bouncinessCombineRule"))return 0;return this._collider?this._collider.restitutionCombineRule():this._colliderDesc.restitutionCombineRule}get collisionGroups(){if(!this._requireNotRemoved("collisionGroups"))return{belongsTo:[],collidesWith:[]};return this._collider?F4.decodeRawCollisionGroups(this._collider.collisionGroups()):F4.decodeRawCollisionGroups(this._colliderDesc.collisionGroups)}get friction(){if(!this._requireNotRemoved("friction"))return 0;return this._collider?this._collider.friction():this._colliderDesc.friction}get frictionCombineRule(){if(!this._requireNotRemoved("frictionCombineRule"))return 0;return this._collider?this._collider.frictionCombineRule():this._colliderDesc.frictionCombineRule}get isEnabled(){if(!this._requireNotRemoved("isEnabled"))return!1;return this._collider?this._collider.isEnabled():this._colliderDesc.enabled}get isRemoved(){return!this._collider&&!this._colliderDesc}get isSensor(){if(!this._requireNotRemoved("isSensor"))return!1;return this._collider?this._collider.isSensor():this._colliderDesc.isSensor}get isSimulated(){if(!this._requireNotRemoved("isSimulated"))return!1;return!!this._collider}get parentRigidBody(){if(!this._requireNotRemoved("parentRigidBody"))return;return this._parentRigidBody}get rawCollider(){if(!this._requireNotRemoved("rawCollider"))return;return this._collider}get rawShape(){if(!this._requireNotRemoved("rawShape"))return;return this._collider?this._collider.shape:this._colliderDesc.shape}get relativePosition(){if(!this._requireNotRemoved("relativePosition"))return{x:0,y:0,z:0};return this._relativePosition}get relativeRotation(){if(!this._requireNotRemoved("relativeRotation"))return{x:0,y:0,z:0,w:1};return this._relativeRotation}get shape(){if(!this._requireNotRemoved("shape"))return"none";return this._shape}get tag(){if(!this._requireNotRemoved("tag"))return;return this._tag}setBounciness(Z){if(!this._requireNotRemoved("setBounciness"))return;this._collider?this._collider.setRestitution(Z):this._colliderDesc.setRestitution(Z)}setBouncinessCombineRule(Z){if(!this._requireNotRemoved("setBouncinessCombineRule"))return;this._collider?this._collider.setRestitutionCombineRule(Z):this._colliderDesc.setRestitutionCombineRule(Z)}setCollisionGroups(Z){if(!this._requireNotRemoved("setCollisionGroups"))return;let J=F4.buildRawCollisionGroups(Z);this._collider?this._collider.setCollisionGroups(J):this._colliderDesc.setCollisionGroups(J)}setEnabled(Z){if(!this._requireNotRemoved("setEnabled"))return;this._collider?this._collider.setEnabled(Z):this._colliderDesc.setEnabled(Z)}setFriction(Z){if(!this._requireNotRemoved("setFriction"))return;this._collider?this._collider.setFriction(Z):this._colliderDesc.setFriction(Z)}setFrictionCombineRule(Z){if(!this._requireNotRemoved("setFrictionCombineRule"))return;this._collider?this._collider.setFrictionCombineRule(Z):this._colliderDesc.setFrictionCombineRule(Z)}setMass(Z){if(!this._requireNotRemoved("setMass"))return;this._collider?this._collider.setMass(Z):this._colliderDesc.setMass(Z)}setOnCollision(Z){if(!this._requireNotRemoved("setOnCollision"))return;if(this._onCollision=Z,this.isSimulated)if(this.enableCollisionEvents(!!Z),Z)this._simulation.colliderMap.setColliderCollisionCallback(this,Z);else this._simulation.colliderMap.removeColliderCollisionCallback(this)}setRelativeRotation(Z){if(!this._requireNotRemoved("setRelativeRotation"))return;this._relativeRotation=Z,this._collider?this._collider.parent()?this._collider.setRotationWrtParent(Z):this._collider.setRotation(Z):this._colliderDesc.setRotation(Z)}setRelativePosition(Z){if(!this._requireNotRemoved("setRelativePosition"))return;this._relativePosition=Z,this._collider?this._collider.parent()?this._collider.setTranslationWrtParent(Z):this._collider.setTranslation(Z):this._colliderDesc.setTranslation(Z.x,Z.y,Z.z)}setSensor(Z){if(!this._requireNotRemoved("setSensor"))return;this._collider?this._collider.setSensor(Z):this._colliderDesc.setSensor(Z)}setTag(Z){if(!this._requireNotRemoved("setTag"))return;this._tag=Z}setVoxel(Z,J){if(!this._requireNotRemoved("setVoxel"))return;if(!this._requireSimulated("setVoxel"))return;if(this.shape!=="voxels")return u.error("Collider.setVoxel(): Collider is not a voxels collider!");this._collider.setVoxel(Z.x,Z.y,Z.z,J)}addToSimulation(Z,J){if(!this._requireNotRemoved("addToSimulation"))return;if(!this._requireUnsimulated("addToSimulation"))return;if(J){if(!J.isSimulated)return u.error("Collider.addToSimulation(): Rigid body must be simulated before adding a collider to it!");if(J.type==="dynamic"&&this.shape==="trimesh")u.warning("Collider.addToSimulation(): Trimesh colliders are strongly discouraged to be used with dynamic rigid bodies, they will not contribute any mass!")}if(this._simulation=Z,this._parentRigidBody=J,this._collider=this._simulation.createRawCollider(this._colliderDesc,J?.rawRigidBody),this._colliderDesc=void 0,J)J.linkCollider(this);if(this._onCollision)this.setOnCollision(this._onCollision)}combineVoxelStates(Z){if(!this._requireNotRemoved("combineVoxelStates"))return;if(!this._requireSimulated("combineVoxelStates"))return;if(!Z.isSimulated)return u.error("Collider.combineVoxelStates(): Other collider is not simulated!");if(this.shape!=="voxels")return u.error("Collider.combineVoxelStates(): Collider is not a voxels collider!");if(Z.shape!=="voxels")return u.error("Collider.combineVoxelStates(): Other collider is not a voxels collider!");this._collider.combineVoxelStates(Z.rawCollider,0,0,0)}enableCollisionEvents(Z){if(!this._requireNotRemoved("enableCollisionEvents"))return;let J=this._collider?this._collider.activeEvents():this._colliderDesc.activeEvents,X=Z?J|u8.default.ActiveEvents.COLLISION_EVENTS:J&~u8.default.ActiveEvents.COLLISION_EVENTS;(this._collider??this._colliderDesc).setActiveEvents(X),this._setActiveCollisionTypes()}enableContactForceEvents(Z){if(!this._requireNotRemoved("enableContactForceEvents"))return;let J=this._collider?this._collider.activeEvents():this._colliderDesc.activeEvents,X=Z?J|u8.default.ActiveEvents.CONTACT_FORCE_EVENTS:J&~u8.default.ActiveEvents.CONTACT_FORCE_EVENTS;(this._collider??this._colliderDesc).setActiveEvents(X),this._setActiveCollisionTypes()}propagateVoxelChange(Z,J){if(!this._requireNotRemoved("propagateVoxelChange"))return;if(!this._requireSimulated("propagateVoxelChange"))return;if(!Z.isSimulated)return u.error("Collider.propagateVoxelChange(): Other collider is not simulated!");if(this.shape!=="voxels")return u.error("Collider.propagateVoxelChange(): Collider is not a voxels collider!");if(Z.shape!=="voxels")return u.error("Collider.propagateVoxelChange(): Other collider is not a voxels collider!");this._collider.propagateVoxelChange(Z.rawCollider,J.x,J.y,J.z,0,0,0)}removeFromSimulation(){if(!this._requireNotRemoved("removeFromSimulation"))return;if(!this._requireSimulated("removeFromSimulation"))return;if(this._simulation.removeRawCollider(this._collider),this._simulation=void 0,this._collider=void 0,this._parentRigidBody)this._parentRigidBody.unlinkCollider(this);this._parentRigidBody=void 0}scale(Z){if(!this._requireNotRemoved("scale"))return;switch(this.setRelativePosition({x:this.relativePosition.x*Z,y:this.relativePosition.y*Z,z:this.relativePosition.z*Z}),this._shape){case"ball":{if(this._collider)this._collider.setRadius(this._collider.radius()*Z);else this._colliderDesc.shape.radius*=Z;return}case"block":{if(this._collider){let J=this._collider.halfExtents();this._collider.setHalfExtents({x:J.x*Z,y:J.y*Z,z:J.z*Z})}else this._colliderDesc.shape.halfExtents.x*=Z,this._colliderDesc.shape.halfExtents.y*=Z,this._colliderDesc.shape.halfExtents.z*=Z;return}case"capsule":{if(this._collider)this._collider.setHalfHeight(this._collider.halfHeight()*Z),this._collider.setRadius(this._collider.radius()*Z);else this._colliderDesc.shape.halfHeight*=Z,this._colliderDesc.shape.radius*=Z;return}case"cone":{if(this._collider)this._collider.setHalfHeight(this._collider.halfHeight()*Z),this._collider.setRadius(this._collider.radius()*Z);else this._colliderDesc.shape.halfHeight*=Z,this._colliderDesc.shape.radius*=Z;return}case"cylinder":{if(this._collider)this._collider.setHalfHeight(this._collider.halfHeight()*Z),this._collider.setRadius(this._collider.radius()*Z);else this._colliderDesc.shape.halfHeight*=Z,this._colliderDesc.shape.radius*=Z;return}case"round-cylinder":{if(this._collider)this._collider.setHalfHeight(this._collider.halfHeight()*Z),this._collider.setRoundRadius(this._collider.roundRadius()*Z),this._collider.setRadius(this._collider.radius()*Z);else this._colliderDesc.shape.halfHeight=this._colliderDesc.shape.halfHeight*Z,this._colliderDesc.shape.borderRadius=this._colliderDesc.shape.borderRadius*Z,this._colliderDesc.shape.radius=this._colliderDesc.shape.radius*Z;return}case"trimesh":{u.error("Collider.setScale(): Trimesh colliders cannot be scaled!");return}case"voxels":{u.error("Collider.setScale(): Voxels colliders cannot be scaled!");return}case"wedge":{u.error("Collider.setScale(): Wedge colliders cannot be scaled!");return}default:u.fatalError(`Collider.setScale(): ${this._shape} is not a valid collider shape!`)}}_applyColliderOptions(Z){[["bounciness",this.setBounciness.bind(this)],["bouncinessCombineRule",this.setBouncinessCombineRule.bind(this)],["collisionGroups",this.setCollisionGroups.bind(this)],["enabled",this.setEnabled.bind(this)],["friction",this.setFriction.bind(this)],["frictionCombineRule",this.setFrictionCombineRule.bind(this)],["isSensor",this.setSensor.bind(this)],["mass",this.setMass.bind(this)],["onCollision",this.setOnCollision.bind(this)],["relativePosition",this.setRelativePosition.bind(this)],["relativeRotation",this.setRelativeRotation.bind(this)],["tag",this.setTag.bind(this)]].forEach(([X,Y])=>{if(Z[X]!==void 0)Y.call(this,Z[X])})}_autoAddToSimulation(Z){if(Z.simulation)this.addToSimulation(Z.simulation,Z.parentRigidBody)}_buildWedgeConvexHullVertices(Z){let{x:J,y:X,z:Y}=Z,$=J/2,Q=Y/2,K=X/2;return new Float32Array([-$,0-K,-Q,$,0-K,-Q,$,0-K,Q,-$,0-K,Q,-$,X-K,-Q,$,X-K,-Q])}_createColliderDesc(Z){let{shape:J,flags:X}=Z;switch(J){case"ball":{if(!Z.radius)u.fatalError("Ball collider must have a radius!");return u8.default.ColliderDesc.ball(Z.radius)}case"block":{if(!Z.halfExtents)u.fatalError("Block collider must have halfExtents!");return u8.default.ColliderDesc.cuboid(Z.halfExtents.x,Z.halfExtents.y,Z.halfExtents.z)}case"capsule":{if(!Z.halfHeight||!Z.radius)u.fatalError("Capsule collider must have halfHeight and radius!");return u8.default.ColliderDesc.capsule(Z.halfHeight,Z.radius)}case"cone":{if(!Z.radius||!Z.halfHeight)u.fatalError("Cone collider must have radius and halfHeight!");return u8.default.ColliderDesc.cone(Z.halfHeight,Z.radius)}case"cylinder":{if(!Z.radius||!Z.halfHeight)u.fatalError("Cylinder collider must have radius and halfHeight!");return u8.default.ColliderDesc.cylinder(Z.halfHeight,Z.radius)}case"round-cylinder":{if(!Z.radius||!Z.halfHeight||!Z.borderRadius)u.fatalError("Round cylinder collider must have radius, halfHeight, and borderRadius!");return u8.default.ColliderDesc.roundCylinder(Z.halfHeight,Z.radius,Z.borderRadius)}case"trimesh":{if(!Z.indices||!Z.vertices)u.fatalError("Trimesh collider must have vertices and indices!");return u8.default.ColliderDesc.trimesh(Z.vertices,Z.indices,X)}case"voxels":{if(!Z.coordinates||!Z.size)u.fatalError("Voxels collider must have coordinates and size!");return u8.default.ColliderDesc.voxels(this._coordinatesToInt32Array(Z.coordinates),Z.size)}case"wedge":{if(!Z.extents)u.fatalError("Wedge collider must have extents!");let Y=this._buildWedgeConvexHullVertices(Z.extents),$=u8.default.ColliderDesc.convexHull(Y);if(!$)throw u.fatalError("Failed to create convex hull for wedge collider!"),new Error("Convex hull creation failed");return $}default:u.fatalError(`Collider._createColliderDesc(): ${J} is not a valid collider shape!`)}}_requireSimulated(Z){if(!this.isSimulated)u.error(`Collider._requireSimulated(): Collider is not simulated, invoked method: ${Z}()`);return this.isSimulated}_requireUnsimulated(Z){if(this.isSimulated)u.error(`Collider._requireUnsimulated(): Collider is already simulated, invoked method: ${Z}()`);return!this.isSimulated}_requireNotRemoved(Z){if(this.isRemoved)u.error(`Collider._requireNotRemoved(): Collider is removed, invoked method: ${Z}()`);return!this.isRemoved}_setActiveCollisionTypes(){(this._collider??this._colliderDesc).setActiveCollisionTypes(u8.default.ActiveCollisionTypes.DYNAMIC_DYNAMIC|u8.default.ActiveCollisionTypes.DYNAMIC_KINEMATIC|u8.default.ActiveCollisionTypes.DYNAMIC_FIXED|u8.default.ActiveCollisionTypes.KINEMATIC_KINEMATIC|u8.default.ActiveCollisionTypes.KINEMATIC_FIXED)}_coordinatesToInt32Array(Z){let J=new Int32Array(Z.length*3);for(let X=0;X<Z.length;X++){let Y=Z[X],$=X*3;J[$]=Math.floor(Y.x),J[$+1]=Math.floor(Y.y),J[$+2]=Math.floor(Y.z)}return J}}var yD1={shape:"voxels"},yT;((X)=>{X.ENTITY_COLLISION="BLOCK_TYPE.ENTITY_COLLISION";X.ENTITY_CONTACT_FORCE="BLOCK_TYPE.ENTITY_CONTACT_FORCE"})(yT||={});class e5 extends B0{_id;_blockTypeRegistry;_customColliderOptions;_halfExtents;_isLiquid;_name;_textureUri;constructor(Z,J={id:-1,textureUri:"textures/missing.png",name:"Unknown"}){if(J.id<0)u.fatalError("BlockType.constructor(): BlockType id not set.");super();this._id=J.id,this._blockTypeRegistry=Z,this._customColliderOptions=J.customColliderOptions,this._halfExtents=J.halfExtents??{x:0.5,y:0.5,z:0.5},this._isLiquid=J.isLiquid??!1,this._name=J.name,this._textureUri=J.textureUri}get id(){return this._id}get blockTypeRegistry(){return this._blockTypeRegistry}get colliderOptions(){return{...this._customColliderOptions,...yD1}}get halfExtents(){return this._halfExtents}get isLiquid(){return this._isLiquid}get isMeshable(){return!this._customColliderOptions}get name(){return this._name}get size(){return{x:this._halfExtents.x*2,y:this._halfExtents.y*2,z:this._halfExtents.z*2}}get textureUri(){return this._textureUri}createCollider(Z){let J=new t5({...this.colliderOptions,coordinates:Z,size:this.size});if(this.isLiquid)J.setSensor(!0);if(this.hasListeners("BLOCK_TYPE.ENTITY_COLLISION")||this.isLiquid)J.enableCollisionEvents(!0);if(this.hasListeners("BLOCK_TYPE.ENTITY_CONTACT_FORCE"))J.enableContactForceEvents(!0);if(F4.isDefaultCollisionGroups(J.collisionGroups))J.setCollisionGroups({belongsTo:[1],collidesWith:[65535&~1]});return J}serialize(){return N0.serializeBlockType(this,this._blockTypeRegistry.world.tickAllocator)}}var bT;((J)=>J.REGISTER_BLOCK_TYPE="BLOCK_TYPE_REGISTRY.REGISTER_BLOCK_TYPE")(bT||={});class AH extends B0{_blockTypes=new Map;_world;constructor(Z){super();this._world=Z}get world(){return this._world}getAllBlockTypes(Z=!1){return Z?this._world.tickAllocator.getArray(this._blockTypes.values()):Array.from(this._blockTypes.values())}getBlockType(Z){let J=this._blockTypes.get(Z);if(!J)u.fatalError(`BlockTypeRegistry.getBlockType(): BlockType with id ${Z} not found.`);return J}registerGenericBlockType(Z){let X=new class extends e5{constructor(Y,$){super(Y,$)}}(this,Z);return this.registerBlockType(X),X}registerBlockType(Z){this._blockTypes.set(Z.id,Z),this.emitWithWorld(this._world,"BLOCK_TYPE_REGISTRY.REGISTER_BLOCK_TYPE",{blockTypeRegistry:this,id:Z.id,blockType:Z})}serialize(){return N0.serializeBlockTypeRegistry(this,this._world.tickAllocator)}}var LI={};Dq(LI,{worldSchema:()=>UI,worldPacketDefinition:()=>n00,vectorSchema:()=>$1,vectorBooleanSchema:()=>h_1,uiSchema:()=>FI,uiPacketDefinition:()=>p00,uiDatasSchema:()=>qI,uiDatasPacketDefinition:()=>i00,uiDataSendPacketDefinition:()=>v00,uiDataSchema:()=>YV,syncResponseSchema:()=>zI,syncResponsePacketDefinition:()=>l00,syncRequestSchema:()=>gE,syncRequestPacketDefinition:()=>k00,stateRequestSchema:()=>bE,stateRequestPacketDefinition:()=>I00,sceneUIsSchema:()=>VI,sceneUIsPacketDefinition:()=>c00,sceneUISchema:()=>HI,rgbColorSchema:()=>A6,registeredPackets:()=>l2,quaternionSchema:()=>rE,playersSchema:()=>GI,playersPacketDefinition:()=>d00,playerSchema:()=>WI,physicsDebugRenderSchema:()=>KI,physicsDebugRenderPacketDefinition:()=>m00,physicsDebugRaycastsSchema:()=>QI,physicsDebugRaycastsPacketDefinition:()=>u00,physicsDebugRaycastSchema:()=>$I,particleEmittersSchema:()=>YI,particleEmittersPacketDefinition:()=>g00,particleEmitterSchema:()=>XI,outboundPackets:()=>c2,modelNodeOverrideSchema:()=>oE,lightsSchema:()=>JI,lightsPacketDefinition:()=>b00,lightSchema:()=>ZI,isValidPacket:()=>y_1,inputSchema:()=>yE,inputPacketDefinition:()=>E00,inboundPackets:()=>d2,hexColorSchema:()=>hE,heartbeatSchema:()=>xE,heartbeatPacketDefinition:()=>P00,entitySchema:()=>tE,entitiesSchema:()=>eE,entitiesPacketDefinition:()=>y00,definePacket:()=>C0,debugConfigSchema:()=>fE,debugConfigPacketDefinition:()=>T00,createPacket:()=>C_1,connectionSchema:()=>AE,connectionPacketDefinition:()=>D00,chunksSchema:()=>sE,chunksPacketDefinition:()=>f00,chunkSchema:()=>aE,chatMessagesSchema:()=>nE,chatMessagesPacketDefinition:()=>h00,chatMessageSendPacketDefinition:()=>C00,chatMessageSchema:()=>XV,cameraSchema:()=>iE,cameraPacketDefinition:()=>x00,blocksSchema:()=>cE,blocksPacketDefinition:()=>S00,blockTypesSchema:()=>pE,blockTypesPacketDefinition:()=>A00,blockTypeSchema:()=>lE,blockSchema:()=>dE,bidirectionalPackets:()=>u2,audiosSchema:()=>uE,audiosPacketDefinition:()=>_00,audioSchema:()=>mE,PacketId:()=>k1});var u2={};Dq(u2,{heartbeatPacketDefinition:()=>P00,connectionPacketDefinition:()=>D00});var _E=r(M00(),1);class SE extends _E.default{static instance=new _E.default}var k1;((E)=>{E[E.SYNC_REQUEST=0]="SYNC_REQUEST";E[E.INPUT=1]="INPUT";E[E.STATE_REQUEST=2]="STATE_REQUEST";E[E.CHAT_MESSAGE_SEND=3]="CHAT_MESSAGE_SEND";E[E.UI_DATA_SEND=4]="UI_DATA_SEND";E[E.SYNC_RESPONSE=32]="SYNC_RESPONSE";E[E.AUDIOS=33]="AUDIOS";E[E.BLOCKS=34]="BLOCKS";E[E.BLOCK_TYPES=35]="BLOCK_TYPES";E[E.CHAT_MESSAGES=36]="CHAT_MESSAGES";E[E.CHUNKS=37]="CHUNKS";E[E.ENTITIES=38]="ENTITIES";E[E.WORLD=39]="WORLD";E[E.CAMERA=40]="CAMERA";E[E.UI=41]="UI";E[E.UI_DATAS=42]="UI_DATAS";E[E.SCENE_UIS=43]="SCENE_UIS";E[E.LIGHTS=44]="LIGHTS";E[E.PLAYERS=45]="PLAYERS";E[E.PARTICLE_EMITTERS=46]="PARTICLE_EMITTERS";E[E.CONNECTION=116]="CONNECTION";E[E.HEARTBEAT=117]="HEARTBEAT";E[E.DEBUG_CONFIG=128]="DEBUG_CONFIG";E[E.PHYSICS_DEBUG_RENDER=192]="PHYSICS_DEBUG_RENDER";E[E.PHYSICS_DEBUG_RAYCASTS=193]="PHYSICS_DEBUG_RAYCASTS"})(k1||={});function C_1(Z,J,X,Y){if(!Z.validate(J))throw new Error(`Invalid payload for packet with id ${Z.id}. Error: ${SE.instance.errorsText(Z.validate.errors)}`);let $=Y??[];if($[0]=Z.id,$[1]=J,typeof X==="number")$.push(X);return $}function C0(Z,J){return{id:Z,schema:J,validate:SE.instance.compile(J)}}var T_1={type:"object",properties:{i:{type:"string"}},required:["i"],additionalProperties:!1},j00={type:"object",properties:{role:{type:"string",enum:["auto","client","server"],nullable:!0},fingerprints:{type:"array",items:{type:"object",properties:{algorithm:{type:"string",enum:["sha-1","sha-224","sha-256","sha-384","sha-512"]},value:{type:"string"}},required:["algorithm","value"]}}},required:["fingerprints"],additionalProperties:!1},E_1={type:"object",properties:{foundation:{type:"string"},priority:{type:"number"},ip:{type:"string"},address:{type:"string"},protocol:{type:"string",enum:["udp","tcp"]},port:{type:"number"},type:{type:"string",enum:["host"]},tcpType:{type:"string",enum:["passive"],nullable:!0}},required:["foundation","priority","ip","address","protocol","port","type"],additionalProperties:!1},I_1={type:"object",properties:{usernameFragment:{type:"string"},password:{type:"string"},iceLite:{type:"boolean",nullable:!0}},required:["usernameFragment","password"],additionalProperties:!1},k_1={type:"object",properties:{i:{type:"string"},l:{type:"string"}},required:["i","l"],additionalProperties:!1},v_1={type:"object",properties:{port:{type:"number"},OS:{type:"number"},MIS:{type:"number"},maxMessageSize:{type:"number"}},required:["port","OS","MIS","maxMessageSize"],additionalProperties:!0},__1={type:"object",properties:{streamId:{type:"number"},ordered:{type:"boolean",nullable:!0},maxPacketLifeTime:{type:"number",nullable:!0},maxRetransmits:{type:"number",nullable:!0}},required:["streamId"],additionalProperties:!1},S_1={type:"object",properties:{i:{type:"string"},f:{type:"string",enum:["cs","sc"]},ip:I_1,ic:{type:"array",items:E_1},d:j00,s:v_1},required:["i","f","ip","ic","d","s"],additionalProperties:!1},A_1={type:"object",properties:{i:{type:"string"},d:j00},required:["i","d"],additionalProperties:!1},x_1={type:"object",properties:{i:{type:"string",nullable:!0},pi:{type:"string",nullable:!0},l:{type:"string"},s:__1},required:["l","s"],additionalProperties:!1},AE={type:"object",properties:{i:{type:"string",nullable:!0},k:{type:"boolean",nullable:!0},c:{...A_1,nullable:!0},ca:{...T_1,nullable:!0},d:{type:"array",items:{...x_1},nullable:!0},pa:{...k_1,nullable:!0},t:{type:"array",items:{...S_1},nullable:!0}},additionalProperties:!1};var D00=C0(116,AE);var xE={type:"null",nullable:!0};var P00=C0(117,xE);var d2={};Dq(d2,{uiDataSendPacketDefinition:()=>v00,syncRequestPacketDefinition:()=>k00,stateRequestPacketDefinition:()=>I00,inputPacketDefinition:()=>E00,debugConfigPacketDefinition:()=>T00,chatMessageSendPacketDefinition:()=>C00});var hE={type:"string",pattern:"^[0-9A-Fa-f]{6}$"};var XV={type:"object",properties:{m:{type:"string"},c:{...hE,nullable:!0},p:{type:"string",nullable:!0}},required:["m"],additionalProperties:!1};var C00=C0(3,XV);var fE={type:"object",properties:{pdr:{type:"boolean",nullable:!0}},additionalProperties:!1};var T00=C0(128,fE);var yE={type:"object",properties:{"1":{type:"boolean",nullable:!0},"2":{type:"boolean",nullable:!0},"3":{type:"boolean",nullable:!0},"4":{type:"boolean",nullable:!0},"5":{type:"boolean",nullable:!0},"6":{type:"boolean",nullable:!0},"7":{type:"boolean",nullable:!0},"8":{type:"boolean",nullable:!0},"9":{type:"boolean",nullable:!0},"0":{type:"boolean",nullable:!0},w:{type:"boolean",nullable:!0},a:{type:"boolean",nullable:!0},s:{type:"boolean",nullable:!0},d:{type:"boolean",nullable:!0},q:{type:"boolean",nullable:!0},e:{type:"boolean",nullable:!0},r:{type:"boolean",nullable:!0},f:{type:"boolean",nullable:!0},z:{type:"boolean",nullable:!0},x:{type:"boolean",nullable:!0},c:{type:"boolean",nullable:!0},v:{type:"boolean",nullable:!0},u:{type:"boolean",nullable:!0},i:{type:"boolean",nullable:!0},o:{type:"boolean",nullable:!0},j:{type:"boolean",nullable:!0},k:{type:"boolean",nullable:!0},l:{type:"boolean",nullable:!0},n:{type:"boolean",nullable:!0},m:{type:"boolean",nullable:!0},sp:{type:"boolean",nullable:!0},sh:{type:"boolean",nullable:!0},tb:{type:"boolean",nullable:!0},ml:{type:"boolean",nullable:!0},mr:{type:"boolean",nullable:!0},cp:{type:"number",nullable:!0},cy:{type:"number",nullable:!0},sq:{type:"number",nullable:!0}},additionalProperties:!1};var E00=C0(1,yE);var bE={type:"object",properties:{},additionalProperties:!1};var I00=C0(2,bE);var gE={type:"null",nullable:!0};var k00=C0(0,gE);var YV={type:"object",properties:{},additionalProperties:!0};var v00=C0(4,YV);var c2={};Dq(c2,{worldPacketDefinition:()=>n00,uiPacketDefinition:()=>p00,uiDatasPacketDefinition:()=>i00,syncResponsePacketDefinition:()=>l00,sceneUIsPacketDefinition:()=>c00,playersPacketDefinition:()=>d00,physicsDebugRenderPacketDefinition:()=>m00,physicsDebugRaycastsPacketDefinition:()=>u00,particleEmittersPacketDefinition:()=>g00,lightsPacketDefinition:()=>b00,entitiesPacketDefinition:()=>y00,chunksPacketDefinition:()=>f00,chatMessagesPacketDefinition:()=>h00,cameraPacketDefinition:()=>x00,blocksPacketDefinition:()=>S00,blockTypesPacketDefinition:()=>A00,audiosPacketDefinition:()=>_00});var $1={type:"array",items:[{type:"number"},{type:"number"},{type:"number"}],minItems:3,maxItems:3};var mE={type:"object",properties:{i:{type:"number"},a:{type:"string",nullable:!0},cd:{type:"number",nullable:!0},d:{type:"number",nullable:!0},de:{type:"number",nullable:!0},di:{type:"number",minimum:0,nullable:!0},e:{type:"number",nullable:!0},l:{type:"boolean",nullable:!0},o:{type:"number",nullable:!0},p:{...$1,nullable:!0},pa:{type:"boolean",nullable:!0},pl:{type:"boolean",nullable:!0},pr:{type:"number",minimum:0,nullable:!0},r:{type:"boolean",nullable:!0},rd:{type:"number",nullable:!0},s:{type:"number",nullable:!0},v:{type:"number",minimum:0,maximum:1,nullable:!0}},required:["i"],additionalProperties:!1};var uE={type:"array",items:{...mE}};var _00=C0(33,uE);var dE={type:"object",properties:{i:{type:"number"},c:$1},required:["i","c"],additionalProperties:!1};var cE={type:"array",items:{...dE}};var S00=C0(34,cE);var lE={type:"object",properties:{i:{type:"number"},l:{type:"boolean",nullable:!0},n:{type:"string",nullable:!0},t:{type:"string",nullable:!0}},required:["i"],additionalProperties:!1};var pE={type:"array",items:{...lE}};var A00=C0(35,pE);var iE={type:"object",properties:{m:{type:"number",nullable:!0},e:{type:"number",nullable:!0},et:{type:"number",nullable:!0},fo:{type:"number",nullable:!0},ffo:{type:"number",nullable:!0},fv:{type:"number",nullable:!0},h:{type:"array",items:{type:"string"},nullable:!0},o:{...$1,nullable:!0},p:{...$1,nullable:!0},pt:{...$1,nullable:!0},pl:{...$1,nullable:!0},s:{type:"array",items:{type:"string"},nullable:!0},sa:{type:"number",nullable:!0},z:{type:"number",nullable:!0}},additionalProperties:!1};var nE={type:"array",items:{...XV}};var aE={type:"object",properties:{c:$1,b:{type:"array",items:{type:"number",minimum:0,maximum:255},minItems:4096,maxItems:4096,nullable:!0},rm:{type:"boolean",nullable:!0}},required:["c"],additionalProperties:!1};var sE={type:"array",items:{...aE}};var A6={type:"array",items:[{type:"number",minimum:0,maximum:255},{type:"number",minimum:0,maximum:255},{type:"number",minimum:0,maximum:255}],minItems:3,maxItems:3};var oE={type:"object",properties:{n:{type:"string"},h:{type:"boolean",nullable:!0},o:{type:"number",minimum:0,maximum:1,nullable:!0},r:{type:"boolean",nullable:!0},s:{type:"number",nullable:!0},t:{...A6,nullable:!0}},required:["n"],additionalProperties:!1};var rE={type:"array",items:[{type:"number"},{type:"number"},{type:"number"},{type:"number"}],minItems:4,maxItems:4};var tE={type:"object",properties:{i:{type:"number"},al:{type:"array",items:{type:"string"},nullable:!0},ao:{type:"array",items:{type:"string"},nullable:!0},ap:{type:"number",nullable:!0},as:{type:"array",items:{type:"string"},nullable:!0},bh:{...$1,nullable:!0},bt:{type:"string",nullable:!0},h:{type:"array",items:{type:"string"},nullable:!0},m:{type:"string",nullable:!0},mo:{type:"array",items:{...oE},nullable:!0},mt:{type:"string",nullable:!0},n:{type:"string",nullable:!0},o:{type:"number",nullable:!0},p:{...$1,nullable:!0},pe:{type:"number",nullable:!0},pn:{type:"string",nullable:!0},r:{...rE,nullable:!0},rm:{type:"boolean",nullable:!0},s:{type:"number",nullable:!0},sn:{type:"array",items:{type:"string"},nullable:!0},t:{...A6,nullable:!0}},required:["i"],additionalProperties:!1};var eE={type:"array",items:{...tE}};var ZI={type:"object",properties:{i:{type:"number"},a:{type:"number",nullable:!0},e:{type:"number",nullable:!0},c:{...A6,nullable:!0},d:{type:"number",nullable:!0},n:{type:"number",nullable:!0},o:{...$1,nullable:!0},p:{...$1,nullable:!0},pe:{type:"number",minimum:0,maximum:1,nullable:!0},rm:{type:"boolean",nullable:!0},t:{type:"number",nullable:!0},te:{type:"number",nullable:!0},tp:{...$1,nullable:!0}},required:["i"],additionalProperties:!1};var JI={type:"array",items:{...ZI}};var XI={type:"object",properties:{i:{type:"number"},at:{type:"number",nullable:!0},ce:{...A6,nullable:!0},cev:{...A6,nullable:!0},cs:{...A6,nullable:!0},csv:{...A6,nullable:!0},e:{type:"number",nullable:!0},en:{type:"string",nullable:!0},g:{...$1,nullable:!0},l:{type:"number",nullable:!0},lv:{type:"number",nullable:!0},mp:{type:"number",nullable:!0},o:{...$1,nullable:!0},oe:{type:"number",nullable:!0},oev:{type:"number",nullable:!0},os:{type:"number",nullable:!0},osv:{type:"number",nullable:!0},p:{...$1,nullable:!0},pa:{type:"boolean",nullable:!0},pv:{...$1,nullable:!0},r:{type:"number",nullable:!0},rv:{type:"number",nullable:!0},rm:{type:"boolean",nullable:!0},se:{type:"number",nullable:!0},sev:{type:"number",nullable:!0},ss:{type:"number",nullable:!0},ssv:{type:"number",nullable:!0},t:{type:"boolean",nullable:!0},tu:{type:"string",nullable:!0},v:{...$1,nullable:!0},vv:{...$1,nullable:!0}},required:["i"],additionalProperties:!1};var YI={type:"array",items:{...XI}};var $I={type:"object",properties:{o:{...$1},d:{...$1},l:{type:"number"},h:{type:"boolean"}},required:["o","d","l","h"],additionalProperties:!1};var QI={type:"array",items:{...$I}};var KI={type:"object",properties:{v:{type:"array",items:{type:"number"}},c:{type:"array",items:{type:"number"}}},required:["v","c"],additionalProperties:!1};var WI={type:"object",properties:{i:{type:"string"},p:{type:"string",nullable:!0},rm:{type:"boolean",nullable:!0},u:{type:"string",nullable:!0}},required:["i"],additionalProperties:!1};var GI={type:"array",items:{...WI}};var HI={type:"object",properties:{i:{type:"number"},e:{type:"number",nullable:!0},o:{...$1,nullable:!0},p:{...$1,nullable:!0},rm:{type:"boolean",nullable:!0},s:{type:"object",nullable:!0},t:{type:"string",nullable:!0},v:{type:"number",nullable:!0}},required:["i"],additionalProperties:!1};var VI={type:"array",items:{...HI}};var zI={type:"object",properties:{r:{type:"number"},s:{type:"number"},p:{type:"number"},n:{type:"number"}},required:["r","s","p","n"],additionalProperties:!1};var FI={type:"object",properties:{p:{type:"boolean",nullable:!0},u:{type:"string",nullable:!0}},additionalProperties:!1};var qI={type:"array",items:{...YV}};var h_1={type:"array",items:[{type:"boolean"},{type:"boolean"},{type:"boolean"}],minItems:3,maxItems:3};var UI={type:"object",properties:{i:{type:"number"},ac:{...A6,nullable:!0},ai:{type:"number",nullable:!0},dc:{...A6,nullable:!0},di:{type:"number",nullable:!0},dp:{...$1,nullable:!0},fc:{...A6,nullable:!0},ff:{type:"number",nullable:!0},fn:{type:"number",nullable:!0},n:{type:"string",nullable:!0},s:{type:"string",nullable:!0},si:{type:"number",nullable:!0},t:{type:"number",nullable:!0}},required:["i"],additionalProperties:!1};var x00=C0(40,iE);var h00=C0(36,nE);var f00=C0(37,sE);var y00=C0(38,eE);var b00=C0(44,JI);var g00=C0(46,YI);var m00=C0(192,KI);var u00=C0(193,QI);var d00=C0(45,GI);var c00=C0(43,VI);var l00=C0(32,zI);var p00=C0(41,FI);var i00=C0(42,qI);var n00=C0(39,UI);var l2=new Map,f_1={...u2,...d2,...c2};for(let Z of Object.values(f_1))if("id"in Z&&"schema"in Z){let J=Z;if(l2.has(J.id))throw new Error(`Packet with id ${J.id} is already registered.`);l2.set(J.id,J)}function y_1(Z){if(typeof Z!=="object"||Z===null||typeof Z[0]!=="number"||Z[0]<0||Z[1]===void 0||Z[2]!==void 0&&(typeof Z[2]!=="number"||Z[2]<0))return!1;let J=l2.get(Z[0]);return!!J&&J.validate(Z[1])}var Z0=LI;var O10=r(B10(),1);import oY from"fs";import w10 from"path";var QV="./dev/persistence";class M7{static instance=new M7;gameId=process.env.HYTOPIA_GAME_ID;lobbyId=process.env.HYTOPIA_LOBBY_ID;_creativeGateway;constructor(){try{this._creativeGateway=new O10.CreativeGateway}catch{console.warn(["━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━","\uD83D\uDEA8 HYTOPIA PLATFORM GATEWAY IS NOT INITIALIZED \uD83D\uDEA8","","\uD83D\uDD27 Local development is still possible, but these features will be disabled:"," • \uD83D\uDC64 Player Accounts"," • \uD83C\uDFAD Player Cosmetics"," • \uD83D\uDC1B Crash Analytics & Debug Logs","","\uD83D\uDCA1 These features will be enabled but modified:"," • \uD83D\uDCBE Player & Global Persisted Data - Data will be persisted"," locally in the ./dev/persistence directory of your project."," Player ids for data persistence will begin at 1 for the first "," player to join your local server, and increments for each"," additional player. This means that if you restart your"," server, the first player id will be 1 again. This is to ensure"," that data persistence across server restarts can be easily"," tested and debugged in local development.","","To enable the HYTOPIA Platform Gateway locally:"," 1. Set these environment variables:"," HYTOPIA_API_KEY, HYTOPIA_GAME_ID, HYTOPIA_LOBBY_ID"," 2. You can find these values at: https://create.hytopia.com","","Note: In production, these environment variables will be auto-populated ","& the HYTOPIA Platform Gateway will automatically be initialized \uD83D\uDE80","━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",""].join(`
|
|
415
|
-
`))}}get isGatewayAvailable(){return!!this._creativeGateway}async getData(Z){if(!this._creativeGateway&&process.env.NODE_ENV==="production")return u.warning("PlatformGateway.getData(): You are running in production mode, but the Platform Gateway is not initialized! No data will be returned.");return this._creativeGateway?await this._creativeGateway.kv.get(Z):this._readDevDataLocally(Z)}async getPlayerLoadout(Z){if(!this._creativeGateway)return;return await this._creativeGateway.getLoadout(Z)}async getPlayerSession(Z){if(!this._creativeGateway)return;return await this._creativeGateway.getSession(Z)}async setData(Z,J){if(J.error)return u.warning("PlatformGateway.setData(): Cannot set data with an error property.");if(!this._creativeGateway&&process.env.NODE_ENV==="production")return u.warning("PlatformGateway.setData(): You are running in production mode, but the Platform Gateway is not initialized! No data will be set.");return this._creativeGateway?await this._creativeGateway.kv.set(Z,J):this._writeDevDataLocally(Z,J)}_readDevDataLocally(Z){try{if(!oY.existsSync(QV))return;let J=w10.join(QV,`${Z}.json`);return JSON.parse(oY.readFileSync(J,"utf8"))}catch(J){u.warning(`PlatformGateway._readDevDataLocally(): Failed to read data for key "${Z}": ${J}`)}}_writeDevDataLocally(Z,J){try{if(!oY.existsSync(QV))oY.mkdirSync(QV,{recursive:!0});let X=w10.join(QV,`${Z}.json`),Y={};if(oY.existsSync(X))Y=JSON.parse(oY.readFileSync(X,"utf8"));let $={...Y,...J};oY.writeFileSync(X,JSON.stringify($,null,2),"utf8")}catch(X){u.warning(`PlatformGateway._writeDevDataLocally(): Failed to write data for key "${Z}": ${X}`)}}}class rY{static instance=new rY;constructor(){}async getGlobalData(Z){let J=await M7.instance.getData(Z);if(!J||J.error){if(J?.error)u.warning(`PersistenceManager.getGlobalData(): ${J.error.message}`);return}return J}async getPlayerData(Z){let J=await M7.instance.getData(this._getPlayerKey(Z));if(!J||J.error){if(J?.error)u.warning(`PersistenceManager.getPlayerData(): ${J.error.message}`);return}return J}async setGlobalData(Z,J){let X=await M7.instance.setData(Z,J);if(!X||X.error){if(X?.error)u.warning(`PersistenceManager.setGlobalData(): ${X.error.message}`);return}return X}async setPlayerData(Z,J){let X=await M7.instance.setData(this._getPlayerKey(Z),J);if(!X||X.error){if(X?.error)u.warning(`PersistenceManager.setPlayerData(): ${X.error.message}`);return}return X}_getPlayerKey(Z){return`player-${Z.id}`}}var N10;((Y)=>{Y[Y.FIRST_PERSON=0]="FIRST_PERSON";Y[Y.THIRD_PERSON=1]="THIRD_PERSON";Y[Y.SPECTATOR=2]="SPECTATOR"})(N10||={});var wI;((L)=>{L.LOOK_AT_ENTITY="PLAYER_CAMERA.LOOK_AT_ENTITY";L.LOOK_AT_POSITION="PLAYER_CAMERA.LOOK_AT_POSITION";L.SET_ATTACHED_TO_ENTITY="PLAYER_CAMERA.SET_ATTACHED_TO_ENTITY";L.SET_ATTACHED_TO_POSITION="PLAYER_CAMERA.SET_ATTACHED_TO_POSITION";L.SET_FILM_OFFSET="PLAYER_CAMERA.SET_FILM_OFFSET";L.SET_FORWARD_OFFSET="PLAYER_CAMERA.SET_FORWARD_OFFSET";L.SET_FOV="PLAYER_CAMERA.SET_FOV";L.SET_MODEL_HIDDEN_NODES="PLAYER_CAMERA.SET_MODEL_HIDDEN_NODES";L.SET_MODEL_SHOWN_NODES="PLAYER_CAMERA.SET_MODEL_SHOWN_NODES";L.SET_MODE="PLAYER_CAMERA.SET_MODE";L.SET_OFFSET="PLAYER_CAMERA.SET_OFFSET";L.SET_SHOULDER_ANGLE="PLAYER_CAMERA.SET_SHOULDER_ANGLE";L.SET_TRACKED_ENTITY="PLAYER_CAMERA.SET_TRACKED_ENTITY";L.SET_TRACKED_POSITION="PLAYER_CAMERA.SET_TRACKED_POSITION";L.SET_ZOOM="PLAYER_CAMERA.SET_ZOOM"})(wI||={});class KV extends B0{player;_attachedToEntity;_attachedToPosition;_filmOffset=0;_forwardOffset=0;_fov=75;_modelHiddenNodes=new Set;_modelShownNodes=new Set;_mode=1;_offset={x:0,y:0,z:0};_orientation={pitch:0,yaw:0};_shoulderAngle=0;_trackedEntity;_trackedPosition;_zoom=1;constructor(Z){super();this.player=Z}get attachedToEntity(){return this._attachedToEntity}get attachedToPosition(){return this._attachedToPosition}get facingDirection(){return{x:-Math.sin(this._orientation.yaw)*Math.cos(this._orientation.pitch),y:Math.sin(this._orientation.pitch),z:-Math.cos(this._orientation.yaw)*Math.cos(this._orientation.pitch)}}get facingQuaternion(){let Z=this._orientation.pitch*0.5,J=this._orientation.yaw*0.5,X=Math.cos(Z),Y=Math.sin(Z),$=Math.cos(J),Q=Math.sin(J);return{x:Y*$,y:X*Q,z:-Y*Q,w:X*$}}get filmOffset(){return this._filmOffset}get forwardOffset(){return this._forwardOffset}get fov(){return this._fov}get modelHiddenNodes(){return this._modelHiddenNodes}get modelShownNodes(){return this._modelShownNodes}get mode(){return this._mode}get offset(){return this._offset}get orientation(){return this._orientation}get shoulderAngle(){return this._shoulderAngle}get trackedEntity(){return this._trackedEntity}get trackedPosition(){return this._trackedPosition}get zoom(){return this._zoom}lookAtEntity(Z){if(!this._requirePlayerWorld("lookAtEntity"))return;this.emitWithWorld(this.player.world,"PLAYER_CAMERA.LOOK_AT_ENTITY",{playerCamera:this,entity:Z})}lookAtPosition(Z){if(!this._requirePlayerWorld("lookAtPosition"))return;this.emitWithWorld(this.player.world,"PLAYER_CAMERA.LOOK_AT_POSITION",{playerCamera:this,position:Z})}reset(){this._attachedToEntity=void 0,this._attachedToPosition=void 0,this._orientation={pitch:0,yaw:0},this._trackedEntity=void 0,this._trackedPosition=void 0}setAttachedToEntity(Z){if(!this._requirePlayerWorld("setAttachedToEntity"))return;if(!Z.isSpawned)return u.error(`PlayerCamera.setAttachedToEntity(): Entity ${Z.id} is not spawned!`);this._attachedToEntity=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_ATTACHED_TO_ENTITY",{playerCamera:this,entity:Z})}setAttachedToPosition(Z){if(!this._requirePlayerWorld("setAttachedToPosition"))return;this._attachedToPosition=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_ATTACHED_TO_POSITION",{playerCamera:this,position:Z})}setFilmOffset(Z){if(!this._requirePlayerWorld("setFilmOffset"))return;this._filmOffset=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_FILM_OFFSET",{playerCamera:this,filmOffset:Z})}setForwardOffset(Z){if(!this._requirePlayerWorld("setForwardOffset"))return;this._forwardOffset=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_FORWARD_OFFSET",{playerCamera:this,forwardOffset:Z})}setFov(Z){if(!this._requirePlayerWorld("setFov"))return;this._fov=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_FOV",{playerCamera:this,fov:Z})}setModelHiddenNodes(Z){if(!this._requirePlayerWorld("setModelHiddenNodes"))return;this._modelHiddenNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_MODEL_HIDDEN_NODES",{playerCamera:this,modelHiddenNodes:this._modelHiddenNodes})}setModelShownNodes(Z){if(!this._requirePlayerWorld("setModelShownNodes"))return;this._modelShownNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_MODEL_SHOWN_NODES",{playerCamera:this,modelShownNodes:this._modelShownNodes})}setMode(Z){if(!this._requirePlayerWorld("setMode"))return;this._mode=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_MODE",{playerCamera:this,mode:Z})}setOffset(Z){if(!this._requirePlayerWorld("setOffset"))return;this._offset=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_OFFSET",{playerCamera:this,offset:Z})}setOrientationPitch(Z){this._orientation.pitch=Z}setOrientationYaw(Z){this._orientation.yaw=Z}setShoulderAngle(Z){if(!this._requirePlayerWorld("setShoulderAngle"))return;this._shoulderAngle=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_SHOULDER_ANGLE",{playerCamera:this,shoulderAngle:Z})}setTrackedEntity(Z){if(!this._requirePlayerWorld("setTrackedEntity"))return;this._trackedEntity=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_TRACKED_ENTITY",{playerCamera:this,entity:Z})}setTrackedPosition(Z){if(!this._requirePlayerWorld("setTrackedPosition"))return;this._trackedPosition=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_TRACKED_POSITION",{playerCamera:this,position:Z})}setZoom(Z){if(!this._requirePlayerWorld("setZoom"))return;this._zoom=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_ZOOM",{playerCamera:this,zoom:Z})}serialize(){if(!this.player.world)u.fatalError("PlayerCamera.serialize(): PlayerCamera player is not in a world and cannot be serialized!");return N0.serializePlayerCamera(this,this.player.world.tickAllocator)}_requirePlayerWorld(Z){if(!this.player.world)u.error(`PlayerCamera._requirePlayerWorld(): Player ${this.player.id} is not in a world, invoked method: ${Z}()`);return!!this.player.world}}var i2;(($)=>{$.DATA="PLAYER_UI.DATA";$.LOAD="PLAYER_UI.LOAD";$.LOCK_POINTER="PLAYER_UI.LOCK_POINTER";$.SEND_DATA="PLAYER_UI.SEND_DATA"})(i2||={});class WV extends B0{player;constructor(Z){super();this.player=Z}load(Z){if(!this.player.world)return;this.emitWithWorld(this.player.world,"PLAYER_UI.LOAD",{playerUI:this,htmlUri:Z})}lockPointer(Z){if(!this.player.world)return;this.emitWithWorld(this.player.world,"PLAYER_UI.LOCK_POINTER",{playerUI:this,lock:Z})}sendData(Z){if(!this.player.world)return;this.emitWithWorld(this.player.world,"PLAYER_UI.SEND_DATA",{playerUI:this,data:Z})}}var R10=["w","a","s","d","sp","sh","tb","ml","mr","q","e","r","f","z","x","c","v","u","i","o","j","k","l","n","m","1","2","3","4","5","6","7","8","9","0"],GV;((Q)=>{Q.CHAT_MESSAGE_SEND="PLAYER.CHAT_MESSAGE_SEND";Q.JOINED_WORLD="PLAYER.JOINED_WORLD";Q.LEFT_WORLD="PLAYER.LEFT_WORLD";Q.RECONNECTED_WORLD="PLAYER.RECONNECTED_WORLD";Q.REQUEST_SYNC="PLAYER.REQUEST_SYNC"})(GV||={});class mK extends B0{static _devNextPlayerId=1;id;username;profilePictureUrl;camera;connection;ui;_input={};_lastUnreliableInputSequenceNumber=0;_persistedData;_world;_worldSwitched=!1;constructor(Z,J){super();this.id=J?.user.id??`player-${mK._devNextPlayerId++}`,this.username=J?.user.username??this.id,this.profilePictureUrl=J?.user.profilePictureURL??void 0,this.camera=new KV(this),this.connection=Z,this.ui=new WV(this),Z.onPacket(Z0.PacketId.CHAT_MESSAGE_SEND,this._onChatMessageSendPacket),Z.onPacket(Z0.PacketId.DEBUG_CONFIG,this._onDebugConfigPacket),Z.onPacket(Z0.PacketId.INPUT,this._onInputPacket),Z.onPacket(Z0.PacketId.SYNC_REQUEST,this._onSyncRequestPacket),Z.onPacket(Z0.PacketId.UI_DATA_SEND,this._onUIDataSendPacket)}get input(){return this._input}get world(){return this._world}disconnect(){this._leaveWorld(),this.connection.disconnect()}getPersistedData(){return this._persistedData}joinWorld(Z){if(this._world===Z)return;if(!this._world)this._world=Z,this.emitWithWorld(this._world,"PLAYER.JOINED_WORLD",{player:this,world:this._world});else{for(let J of this._world.entityManager.getPlayerEntitiesByPlayer(this))if(J.isSpawned)J.despawn();this.disconnect(),this._world=Z,this._worldSwitched=!0}}async loadInitialPersistedData(){if(this._persistedData)return;this._persistedData=await rY.instance.getPlayerData(this)??void 0}reconnected(){if(!this._world)return;if(this._lastUnreliableInputSequenceNumber=0,!this._worldSwitched)this.emitWithWorld(this._world,"PLAYER.RECONNECTED_WORLD",{player:this,world:this._world});else this._worldSwitched=!1,this.emitWithWorld(this._world,"PLAYER.JOINED_WORLD",{player:this,world:this._world})}resetInputs(){this._input={}}setPersistedData(Z){return this._persistedData={...this._persistedData,...Z},rY.instance.setPlayerData(this,Z).catch((J)=>{}),this._persistedData}serialize(){if(!this._world)u.fatalError("Player.serialize(): Player is not in a world and cannot be serialized!");return N0.serializePlayer(this,this._world.tickAllocator)}_leaveWorld(){if(!this._world)return;this.emitWithWorld(this._world,"PLAYER.LEFT_WORLD",{player:this,world:this._world}),this._world=void 0}_onChatMessageSendPacket=(Z)=>{if(this._world)this.emitWithWorld(this._world,"PLAYER.CHAT_MESSAGE_SEND",{player:this,message:Z[1].m})};_onDebugConfigPacket=(Z)=>{console.log(Z)};_onInputPacket=(Z)=>{let J=Z[1];if(J.sq!==void 0){if(J.sq<this._lastUnreliableInputSequenceNumber)return;this._lastUnreliableInputSequenceNumber=J.sq}if(R10.forEach((X)=>{let Y=X;if(J[Y]!==void 0)this._input[Y]=Boolean(J[Y])}),J.cp!==void 0)this.camera.setOrientationPitch(J.cp);if(J.cy!==void 0)this.camera.setOrientationYaw(J.cy)};_onSyncRequestPacket=()=>{if(this._world)this.emitWithWorld(this._world,"PLAYER.REQUEST_SYNC",{player:this,receivedAt:Date.now(),receivedAtMs:performance.now()})};_onUIDataSendPacket=(Z)=>{this.ui.emit("PLAYER_UI.DATA",{playerUI:this.ui,data:Z[1]})}}var OI;((X)=>{X.BROADCAST_MESSAGE="CHAT.BROADCAST_MESSAGE";X.PLAYER_MESSAGE="CHAT.PLAYER_MESSAGE"})(OI||={});class HV extends B0{_commandCallbacks={};_world;constructor(Z){super();this._world=Z,this._subscribeToPlayerEvents()}registerCommand(Z,J){this._commandCallbacks[Z]=J}unregisterCommand(Z){delete this._commandCallbacks[Z]}sendBroadcastMessage(Z,J){this._sendBroadcastMessage(void 0,Z,J)}sendPlayerMessage(Z,J,X){this.emitWithWorld(this._world,"CHAT.PLAYER_MESSAGE",{player:Z,message:J,color:X})}_subscribeToPlayerEvents(){this._world.on("PLAYER.CHAT_MESSAGE_SEND",(Z)=>{let{player:J,message:X}=Z,[Y,...$]=X.split(" "),Q=this._commandCallbacks[Y];if(Q){Q(J,$,X);return}this._sendBroadcastMessage(J,X)})}_sendBroadcastMessage(Z,J,X){this.emitWithWorld(this._world,"CHAT.BROADCAST_MESSAGE",{player:Z,message:J,color:X})}}var Z9=16,NI=Z9-1,GS1=Z9**3;class J9{_blocks;_chunkLattice;_originCoordinate;constructor(Z,J){this._blocks=new Uint8Array(GS1),this._chunkLattice=Z,this._originCoordinate=J}get blocks(){return this._blocks}get chunkLattice(){return this._chunkLattice}get originCoordinate(){return this._originCoordinate}static blockIndexToLocalCoordinate(Z){return{x:Z%Z9,y:(Z/Z9|0)%Z9,z:Z/(Z9*Z9)|0}}static globalCoordinateToLocalCoordinate(Z){return{x:Z.x&Z9-1,y:Z.y&Z9-1,z:Z.z&Z9-1}}static globalCoordinateToOriginCoordinate(Z){return{x:Z.x&~(Z9-1),y:Z.y&~(Z9-1),z:Z.z&~(Z9-1)}}getBlockId(Z){return this._blocks[this._getIndex(Z)]}hasBlock(Z){return this._blocks[this._getIndex(Z)]!==0}setBlock(Z,J){if(!this._isValidLocalCoordinate(Z))return u.error("Chunk.setBlock(): Block local coordinate is out of bounds");let X=this._getIndex(Z);this._blocks[X]=J}serialize(){return N0.serializeChunk(this,this._chunkLattice.world.tickAllocator)}_getIndex(Z){return Z.x+(Z.y<<4)+(Z.z<<8)}_isValidLocalCoordinate(Z){return Z.x>=0&&Z.x<=NI&&Z.y>=0&&Z.y<=NI&&Z.z>=0&&Z.z<=NI}}var RI;((X)=>{X.REMOVE_CHUNK="CHUNK_LATTICE.REMOVE_CHUNK";X.SET_BLOCK="CHUNK_LATTICE.SET_BLOCK"})(RI||={});class VV extends B0{_blockTypeColliders=new Map;_blockTypeCounts=new Map;_chunks=new Map;_rigidBody;_world;constructor(Z){super();this._world=Z}get chunkCount(){return this._chunks.size}get world(){return this._world}clear(){for(let Z of this._blockTypeColliders.values())this._world.simulation.colliderMap.removeColliderBlockType(Z),Z.removeFromSimulation();this._chunks.forEach((Z)=>{this.emitWithWorld(this._world,"CHUNK_LATTICE.REMOVE_CHUNK",{chunkLattice:this,chunk:Z})}),this._blockTypeColliders.clear(),this._blockTypeCounts.clear(),this._chunks.clear()}getBlockId(Z){let J=this.getChunk(J9.globalCoordinateToOriginCoordinate(Z));if(!J)return 0;return J.getBlockId(J9.globalCoordinateToLocalCoordinate(Z))}getBlockTypeCollider(Z){return this._blockTypeColliders.get(Z)}getBlockType(Z){let J=this.getBlockId(Z);return J?this._world.blockTypeRegistry.getBlockType(J):null}getBlockTypeCount(Z){return this._blockTypeCounts.get(Z)??0}getChunk(Z){return this._chunks.get(this._getChunkKey(J9.globalCoordinateToOriginCoordinate(Z)))}getOrCreateBlockTypeCollider(Z,J){let X=this._blockTypeColliders.get(Z);if(X)return X;let $=this._world.blockTypeRegistry.getBlockType(Z).createCollider(J);return this._blockTypeColliders.set(Z,$),$}getOrCreateChunk(Z){let J=J9.globalCoordinateToOriginCoordinate(Z),X=this._chunks.get(this._getChunkKey(J));if(X)return X;return X=new J9(this,J),this._chunks.set(this._getChunkKey(J),X),X}getAllChunks(Z=!1){return Z?this._world.tickAllocator.getArray(this._chunks.values()):Array.from(this._chunks.values())}hasBlock(Z){let J=this.getChunk(J9.globalCoordinateToOriginCoordinate(Z));if(!J)return!1;return J.hasBlock(J9.globalCoordinateToLocalCoordinate(Z))}hasChunk(Z){let J=J9.globalCoordinateToOriginCoordinate(Z);return this._chunks.has(this._getChunkKey(J))}setBlock(Z,J){let X=J9.globalCoordinateToLocalCoordinate(Z),Y=this.getOrCreateChunk(Z),$=Y.getBlockId(X);if($===J)return;if(Y.setBlock(X,J),!this._rigidBody)this._rigidBody=new cY({type:"fixed"}),this._rigidBody.addToSimulation(this._world.simulation);if($!==0){let Q=Math.max(0,(this._blockTypeCounts.get($)??0)-1),K=this.getBlockTypeCollider($);if(K)if(Q===0)this._world.simulation.colliderMap.removeColliderBlockType(K),K.removeFromSimulation(),this._blockTypeColliders.delete($);else K.setVoxel(Z,!1),this._propagateVoxelChange(K,Z);this._blockTypeCounts.set($,Q)}if(J!==0){let Q=(this._blockTypeCounts.get(J)??0)+1,K=this.getOrCreateBlockTypeCollider(J,[Z]);if(Q===1){let W=this._world.blockTypeRegistry.getBlockType(J);K.addToSimulation(this._world.simulation,this._rigidBody),this._world.simulation.colliderMap.setColliderBlockType(K,W),this._combineVoxelStates(K)}else K.setVoxel(Z,!0),this._propagateVoxelChange(K,Z);this._blockTypeCounts.set(J,Q)}this.emitWithWorld(this._world,"CHUNK_LATTICE.SET_BLOCK",{chunkLattice:this,chunk:Y,globalCoordinate:Z,localCoordinate:X,blockTypeId:J})}_combineVoxelStates(Z){if(Z.isSensor)return;for(let J of this._blockTypeColliders.values()){if(J===Z||J.isSensor)continue;Z.combineVoxelStates(J)}}_getChunkKey(Z){return`${Z.x},${Z.y},${Z.z}`}_propagateVoxelChange(Z,J){if(Z.isSensor)return;for(let X of this._blockTypeColliders.values()){if(X===Z||X.isSensor)continue;Z.propagateVoxelChange(X,J)}}}class zV{_colliderHandleBlockTypeMap=new Map;_colliderHandleCollisionCallbackMap=new Map;_colliderHandleEntityMap=new Map;_cleanupBlockTypeColliderHandles=new Set;_pendingCleanupBlockTypeColliderHandles=new Set;_cleanupCollisionCallbackColliderHandles=new Set;_pendingCleanupCollisionCallbackColliderHandles=new Set;_cleanupEntityColliderHandles=new Set;_pendingCleanupEntityColliderHandles=new Set;getColliderBlockType(Z){if(!this._requireSimulatedCollider(Z))return;return this._colliderHandleBlockTypeMap.get(Z.rawCollider.handle)}getColliderCollisionCallback(Z){if(!this._requireSimulatedCollider(Z))return;return this._colliderHandleCollisionCallbackMap.get(Z.rawCollider.handle)}getColliderEntity(Z){if(!this._requireSimulatedCollider(Z))return;return this._colliderHandleEntityMap.get(Z.rawCollider.handle)}getColliderHandleBlockType(Z){return this._colliderHandleBlockTypeMap.get(Z)}getColliderHandleCollisionCallback(Z){return this._colliderHandleCollisionCallbackMap.get(Z)}getColliderHandleEntity(Z){return this._colliderHandleEntityMap.get(Z)}removeColliderBlockType(Z){if(!this._requireSimulatedCollider(Z))return;this.removeColliderHandleBlockType(Z.rawCollider.handle)}removeColliderCollisionCallback(Z){if(!this._requireSimulatedCollider(Z))return;this.removeColliderHandleCollisionCallback(Z.rawCollider.handle)}removeColliderEntity(Z){if(!this._requireSimulatedCollider(Z))return;this.removeColliderHandleEntity(Z.rawCollider.handle)}removeColliderHandleBlockType(Z){this._colliderHandleBlockTypeMap.delete(Z)}removeColliderHandleCollisionCallback(Z){this._colliderHandleCollisionCallbackMap.delete(Z)}removeColliderHandleEntity(Z){this._colliderHandleEntityMap.delete(Z)}setColliderBlockType(Z,J){if(!this._requireSimulatedCollider(Z))return;this.setColliderHandleBlockType(Z.rawCollider.handle,J)}setColliderCollisionCallback(Z,J){if(!this._requireSimulatedCollider(Z))return;this.setColliderHandleCollisionCallback(Z.rawCollider.handle,J)}setColliderEntity(Z,J){if(!this._requireSimulatedCollider(Z))return;this.setColliderHandleEntity(Z.rawCollider.handle,J)}setColliderHandleBlockType(Z,J){this._colliderHandleBlockTypeMap.set(Z,J),this._cleanupBlockTypeColliderHandles.delete(Z),this._pendingCleanupBlockTypeColliderHandles.delete(Z)}setColliderHandleCollisionCallback(Z,J){this._colliderHandleCollisionCallbackMap.set(Z,J),this._cleanupCollisionCallbackColliderHandles.delete(Z),this._pendingCleanupCollisionCallbackColliderHandles.delete(Z)}setColliderHandleEntity(Z,J){this._colliderHandleEntityMap.set(Z,J),this._cleanupEntityColliderHandles.delete(Z),this._pendingCleanupEntityColliderHandles.delete(Z)}queueColliderHandleForCleanup(Z){if(this._colliderHandleBlockTypeMap.has(Z))this._pendingCleanupBlockTypeColliderHandles.add(Z);if(this._colliderHandleCollisionCallbackMap.has(Z))this._pendingCleanupCollisionCallbackColliderHandles.add(Z);if(this._colliderHandleEntityMap.has(Z))this._pendingCleanupEntityColliderHandles.add(Z)}cleanup(){for(let Z of this._cleanupBlockTypeColliderHandles)this._colliderHandleBlockTypeMap.delete(Z);if(this._cleanupBlockTypeColliderHandles.size>0)this._cleanupBlockTypeColliderHandles.clear();for(let Z of this._cleanupCollisionCallbackColliderHandles)this._colliderHandleCollisionCallbackMap.delete(Z);if(this._cleanupCollisionCallbackColliderHandles.size>0)this._cleanupCollisionCallbackColliderHandles.clear();for(let Z of this._cleanupEntityColliderHandles)this._colliderHandleEntityMap.delete(Z);if(this._cleanupEntityColliderHandles.size>0)this._cleanupEntityColliderHandles.clear();for(let Z of this._pendingCleanupBlockTypeColliderHandles)this._cleanupBlockTypeColliderHandles.add(Z);if(this._pendingCleanupBlockTypeColliderHandles.size>0)this._pendingCleanupBlockTypeColliderHandles.clear();for(let Z of this._pendingCleanupCollisionCallbackColliderHandles)this._cleanupCollisionCallbackColliderHandles.add(Z);if(this._pendingCleanupCollisionCallbackColliderHandles.size>0)this._pendingCleanupCollisionCallbackColliderHandles.clear();for(let Z of this._pendingCleanupEntityColliderHandles)this._cleanupEntityColliderHandles.add(Z);if(this._pendingCleanupEntityColliderHandles.size>0)this._pendingCleanupEntityColliderHandles.clear()}_requireSimulatedCollider(Z){if(!Z.rawCollider)u.error("ColliderMap._requireSimulatedCollider(): Collider is not in the simulation.");return!!Z.rawCollider}}var M10={type:"dynamic",softCcdPrediction:1},j10=0.015625,D10=Math.cos(0.026),FV;((M)=>{M.BLOCK_COLLISION="ENTITY.BLOCK_COLLISION";M.BLOCK_CONTACT_FORCE="ENTITY.BLOCK_CONTACT_FORCE";M.DESPAWN="ENTITY.DESPAWN";M.ENTITY_COLLISION="ENTITY.ENTITY_COLLISION";M.ENTITY_CONTACT_FORCE="ENTITY.ENTITY_CONTACT_FORCE";M.SET_MODEL_ANIMATIONS_PLAYBACK_RATE="ENTITY.SET_MODEL_ANIMATIONS_PLAYBACK_RATE";M.SET_MODEL_HIDDEN_NODES="ENTITY.SET_MODEL_HIDDEN_NODES";M.SET_MODEL_SCALE="ENTITY.SET_MODEL_SCALE";M.SET_MODEL_SHOWN_NODES="ENTITY.SET_MODEL_SHOWN_NODES";M.SET_MODEL_TEXTURE_URI="ENTITY.SET_MODEL_TEXTURE_URI";M.SET_OPACITY="ENTITY.SET_OPACITY";M.SET_PARENT="ENTITY.SET_PARENT";M.SET_TINT_COLOR="ENTITY.SET_TINT_COLOR";M.SPAWN="ENTITY.SPAWN";M.START_MODEL_LOOPED_ANIMATIONS="ENTITY.START_MODEL_LOOPED_ANIMATIONS";M.START_MODEL_ONESHOT_ANIMATIONS="ENTITY.START_MODEL_ONESHOT_ANIMATIONS";M.STOP_MODEL_ANIMATIONS="ENTITY.STOP_MODEL_ANIMATIONS";M.TICK="ENTITY.TICK";M.UPDATE_POSITION="ENTITY.UPDATE_POSITION";M.UPDATE_ROTATION="ENTITY.UPDATE_ROTATION"})(FV||={});class d8 extends cY{_id;_blockHalfExtents;_blockTextureUri;_controller;_isEnvironmental=!1;_modelAnimationsPlaybackRate=1;_modelHiddenNodes=new Set;_modelLoopedAnimations=new Set;_modelOneshotAnimations=new Set;_modelPreferredShape;_modelScale=1;_modelShownNodes=new Set;_modelTextureUri;_modelUri;_name;_opacity;_parent;_parentNodeName;_tag;_tintColor;_lastUpdatedPosition={x:0,y:0,z:0};_lastUpdatedRotation={x:0,y:0,z:0,w:1};_lastParentlessType="dynamic";_world;_positionUpdateThresholdSq;_rotationUpdateThreshold;constructor(Z){let J="blockTextureUri"in Z,X="modelUri"in Z;if(!J===!X)u.fatalError("Entity.constructor(): Entity data must include a blockTextureUri or modelUri, but not both.");if(J&&!Z.blockHalfExtents)u.fatalError("Entity.constructor(): Block entity must have blockHalfExtents!");if(Z.parent&&!Z.parent.isSpawned)u.fatalError("Entity.constructor(): Parent entity must be spawned before child entity!");if(Z.parent?.modelUri&&Z.parentNodeName&&!T5.instance.modelHasNode(Z.parent.modelUri,Z.parentNodeName))u.fatalError(`Entity.constructor(): Parent node name ${Z.parentNodeName} not found in parent model ${Z.parent.modelUri}!`);super(Z.rigidBodyOptions??M10);if(J)this._blockHalfExtents=Z.blockHalfExtents,this._blockTextureUri=Z.blockTextureUri;if(X)this._modelAnimationsPlaybackRate=Z.modelAnimationsPlaybackRate??1,this._modelPreferredShape=Z.modelPreferredShape,this._modelScale=Z.modelScale??1,this._modelTextureUri=Z.modelTextureUri,this._modelUri=Z.modelUri,Z.modelHiddenNodes?.forEach((Y)=>this._modelHiddenNodes.add(Y.toLowerCase())),Z.modelLoopedAnimations?.forEach((Y)=>this._modelLoopedAnimations.add(Y)),Z.modelShownNodes?.forEach((Y)=>this._modelShownNodes.add(Y.toLowerCase()));if(this._isEnvironmental=Z.isEnvironmental??!1,this._name=Z.name??"Nameless",this._opacity=Z.opacity??1,this._parent=Z.parent,this._parentNodeName=Z.parentNodeName,this._tag=Z.tag,this._tintColor=Z.tintColor,this._positionUpdateThresholdSq=j10,this._rotationUpdateThreshold=D10,Z.controller)this.setController(Z.controller)}get id(){return this._id}get blockHalfExtents(){return this._blockHalfExtents}get blockTextureUri(){return this._blockTextureUri}get controller(){return this._controller}get depth(){return this.isModelEntity?T5.instance.getDepth(this._modelUri)*(this._modelScale??1):this._blockHalfExtents.z*2}get height(){return this.isModelEntity?T5.instance.getHeight(this._modelUri)*(this._modelScale??1):this._blockHalfExtents.y*2}get modelAnimationsPlaybackRate(){return this._modelAnimationsPlaybackRate}get modelHiddenNodes(){return this._modelHiddenNodes}get modelLoopedAnimations(){return this._modelLoopedAnimations}get modelPreferredShape(){return this._modelPreferredShape}get modelScale(){return this._modelScale}get modelShownNodes(){return this._modelShownNodes}get modelTextureUri(){return this._modelTextureUri}get modelUri(){return this._modelUri}get name(){return this._name}get opacity(){return this._opacity}get parent(){return this._parent}get parentNodeName(){return this._parentNodeName}get tag(){return this._tag}get tintColor(){return this._tintColor}get isBlockEntity(){return!!this._blockTextureUri}get isEnvironmental(){return this._isEnvironmental}get isModelEntity(){return!!this._modelUri}get isSpawned(){return!!this._world}get width(){return this.isModelEntity?T5.instance.getWidth(this._modelUri)*(this._modelScale??1):this._blockHalfExtents.x*2}get world(){return this._world}spawn(Z,J,X){if(this.isSpawned)return u.error(`Entity.spawn(): Entity ${this._name} is already spawned with id ${this._id}!`);if(!this.isSimulated)this.addToSimulation(Z.simulation);if(this._blockTextureUri&&this._blockHalfExtents&&this.numColliders===0)this.addChildColliderToSimulation(new t5(t5.optionsFromBlockHalfExtents(this._blockHalfExtents)));if(this._modelUri&&this.numColliders===0&&this._modelPreferredShape!=="none")this.addChildColliderToSimulation(new t5(t5.optionsFromModelUri(this._modelUri,this._modelScale,this._modelPreferredShape)));if(this.colliders.forEach((Y)=>{if(this.hasListeners("ENTITY.BLOCK_COLLISION")||this.hasListeners("ENTITY.ENTITY_COLLISION"))Y.enableCollisionEvents(!0);if(this.hasListeners("ENTITY.BLOCK_CONTACT_FORCE")||this.hasListeners("ENTITY.ENTITY_CONTACT_FORCE"))Y.enableContactForceEvents(!0);if(F4.isDefaultCollisionGroups(Y.collisionGroups))Y.setCollisionGroups({belongsTo:[Y.isSensor?4:2],collidesWith:[65535]})}),this.setPosition(J),X)this.setRotation(X);if(this._id=Z.entityManager.registerEntity(this),this._world=Z,this._controller)this._controller.spawn(this);if(this._parent)this.setParent(this._parent,this._parentNodeName,J,X);this.colliders.forEach((Y)=>{Z.simulation.colliderMap.setColliderEntity(Y,this)}),this.emitWithWorld(Z,"ENTITY.SPAWN",{entity:this})}despawn(){if(!this._requireSpawned("despawn"))return;if(this._world.entityManager.getEntityChildren(this).forEach((Z)=>{Z.despawn()}),this._controller)this._controller.detach(this),this._controller.despawn(this);if(this.emitWithWorld(this._world,"ENTITY.DESPAWN",{entity:this}),this.isSimulated)this.removeFromSimulation();this._world.entityManager.unregisterEntity(this),this._world.audioManager.unregisterEntityAttachedAudios(this),this._world.lightManager.despawnEntityAttachedLights(this),this._world.particleEmitterManager.despawnEntityAttachedParticleEmitters(this),this._world.sceneUIManager.unloadEntityAttachedSceneUIs(this),this._id=void 0,this._world=void 0}setController(Z){if(this._controller===Z)return;if(this._controller)this._controller.detach(this);if(this._controller=Z,this._controller)this._controller.attach(this)}setModelAnimationsPlaybackRate(Z){if(!this._requireSpawned("setModelAnimationsPlaybackRate"))return;if(!this.isModelEntity||this._modelAnimationsPlaybackRate===Z)return;this._modelAnimationsPlaybackRate=Z,this.emitWithWorld(this._world,"ENTITY.SET_MODEL_ANIMATIONS_PLAYBACK_RATE",{entity:this,playbackRate:Z})}setModelHiddenNodes(Z){if(!this._requireSpawned("setModelHiddenNodes"))return;if(!this.isModelEntity)return;this._modelHiddenNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this._world,"ENTITY.SET_MODEL_HIDDEN_NODES",{entity:this,modelHiddenNodes:this._modelHiddenNodes})}setModelScale(Z){if(!this._requireSpawned("setModelScale"))return;if(!this.isModelEntity||this._modelScale===Z)return;let J=Z/this._modelScale;this._modelScale=Z,this.colliders.forEach((X)=>X.scale(J)),this.emitWithWorld(this._world,"ENTITY.SET_MODEL_SCALE",{entity:this,modelScale:Z})}setModelShownNodes(Z){if(!this._requireSpawned("setModelShownNodes"))return;if(!this.isModelEntity)return;this._modelShownNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this._world,"ENTITY.SET_MODEL_SHOWN_NODES",{entity:this,modelShownNodes:this._modelShownNodes})}setModelTextureUri(Z){if(!this._requireSpawned("setModelTextureUri"))return;if(!this.isModelEntity||this._modelTextureUri===Z)return;this._modelTextureUri=Z,this.emitWithWorld(this._world,"ENTITY.SET_MODEL_TEXTURE_URI",{entity:this,modelTextureUri:Z})}setOpacity(Z){if(!this._requireSpawned("setOpacity"))return;if(this._opacity===Z)return;this._opacity=Z,this.emitWithWorld(this._world,"ENTITY.SET_OPACITY",{entity:this,opacity:Z})}setParent(Z,J,X,Y){if(!this._requireSpawned("setParent"))return;if(Z&&!Z.isSpawned)return u.error("Entity.setParent(): Parent entity is not spawned, cannot set parent!");if(!this._parent&&Z)this._lastParentlessType=this.type;if(this._parent=Z,this._parentNodeName=J,this.colliders.forEach(($)=>$.setEnabled(!Z)),this.setType(!Z?this._lastParentlessType:"kinematic_velocity"),this.setPosition(X??{x:0,y:0,z:0}),this.setRotation(Y??{x:0,y:0,z:0,w:1}),!this.isKinematicPositionBased)this.resetAngularVelocity(),this.resetForces(),this.resetLinearVelocity(),this.resetTorques();this.emitWithWorld(this._world,"ENTITY.SET_PARENT",{entity:this,parent:Z,parentNodeName:J})}setTintColor(Z){if(!this._requireSpawned("setTintColor"))return;if(!Z&&!this._tintColor||Z&&this._tintColor&&Z.r===this._tintColor.r&&Z.g===this._tintColor.g&&Z.b===this._tintColor.b)return;this._tintColor=Z,this.emitWithWorld(this._world,"ENTITY.SET_TINT_COLOR",{entity:this,tintColor:Z})}startModelLoopedAnimations(Z){if(!this._requireSpawned("startModelLoopedAnimations"))return;if(!this.isModelEntity||!Z.length)return;if(!Z.some((J)=>!this._modelLoopedAnimations.has(J)))return;Z.forEach((J)=>{this._modelLoopedAnimations.add(J)}),this.emitWithWorld(this._world,"ENTITY.START_MODEL_LOOPED_ANIMATIONS",{entity:this,animations:new Set(Z)})}startModelOneshotAnimations(Z){if(!this._requireSpawned("startModelOneshotAnimations"))return;if(!this.isModelEntity||!Z.length)return;Z.forEach((J)=>{this._modelOneshotAnimations.add(J)}),this.emitWithWorld(this._world,"ENTITY.START_MODEL_ONESHOT_ANIMATIONS",{entity:this,animations:new Set(Z)})}stopAllModelAnimations(Z=[]){if(!this._requireSpawned("stopAllModelAnimations"))return;this._stopAnimationsFromSets([this._modelLoopedAnimations,this._modelOneshotAnimations],Z)}stopAllModelLoopedAnimations(Z=[]){if(!this._requireSpawned("stopAllModelLoopedAnimations"))return;this._stopAnimationsFromSets([this._modelLoopedAnimations],Z)}stopAllModelOneshotAnimations(Z=[]){if(!this._requireSpawned("stopAllModelOneshotAnimations"))return;this._stopAnimationsFromSets([this._modelOneshotAnimations],Z)}stopModelAnimations(Z){if(!this._requireSpawned("stopModelAnimations"))return;if(!this.isModelEntity||!Z.length)return;if(!Z.some((J)=>this._modelLoopedAnimations.has(J))&&!Z.some((J)=>this._modelOneshotAnimations.has(J)))return;Z.forEach((J)=>{this._modelLoopedAnimations.delete(J),this._modelOneshotAnimations.delete(J)}),this.emitWithWorld(this._world,"ENTITY.STOP_MODEL_ANIMATIONS",{entity:this,animations:new Set(Z)})}serialize(){if(!this._world)u.fatalError("Entity.serialize(): Entity is not in a world and cannot be serialized!");return N0.serializeEntity(this,this._world.tickAllocator)}tick(Z){if(this.emit("ENTITY.TICK",{entity:this,tickDeltaMs:Z}),this._controller)this._controller.tick(this,Z)}checkAndEmitUpdates(){if(!this._requireSpawned("checkAndEmitUpdates"))return;let Z=this.position,J=this.rotation;if(this._rotationExceedsThreshold(J,this._lastUpdatedRotation)){this._lastUpdatedRotation=J;let X=this._world.tickAllocator.getObject();X.entity=this,X.rotation=J,this.emitWithWorld(this._world,"ENTITY.UPDATE_ROTATION",X)}if(this._positionExceedsThreshold(Z,this._lastUpdatedPosition)){this._lastUpdatedPosition=Z;let X=this._world.tickAllocator.getObject();X.entity=this,X.position=Z,this.emitWithWorld(this._world,"ENTITY.UPDATE_POSITION",X)}}_positionExceedsThreshold(Z,J){let X=Z.x-J.x,Y=Z.y-J.y,$=Z.z-J.z;return X*X+Y*Y+$*$>this._positionUpdateThresholdSq}_requireSpawned(Z){if(!this.isSpawned)u.error(`Entity._requireSpawned(): Entity ${this._name} is not spawned, cannot invoke ${Z}()!`);return this.isSpawned}_rotationExceedsThreshold(Z,J){return Math.abs(Z.x*J.x+Z.y*J.y+Z.z*J.z+Z.w*J.w)<this._rotationUpdateThreshold}_stopAnimationsFromSets(Z,J=[]){if(!this.isModelEntity)return;let X=new Set(J),Y=[];for(let $ of Z)for(let Q of $)if(!X.has(Q))Y.push(Q);if(Y.length>0)this.stopModelAnimations(Y)}}class f1 extends XY{static BASE_ENTITY_HEIGHT=1.5;static GROUND_SENSOR_HEIGHT_SCALE=0.125;static GROUND_SENSOR_RADIUS_SCALE=0.23;static JUMP_LAND_HEAVY_VELOCITY_THRESHOLD=-12;static WALL_COLLIDER_HEIGHT_SCALE=0.33;static WALL_COLLIDER_RADIUS_SCALE=0.4;static MOVEMENT_ROTATIONS={wa:Math.PI/4,wd:-Math.PI/4,sa:Math.PI-Math.PI/4,sd:Math.PI+Math.PI/4,s:Math.PI,asd:Math.PI,a:Math.PI/2,d:-Math.PI/2};static EXTERNAL_IMPULSE_DECAY_RATE=0.253;static SWIM_UPWARD_COOLDOWN_MS=600;static SWIMMING_DRAG_FACTOR=0.05;static WATER_ENTRY_SINKING_FACTOR=0.8;static WATER_ENTRY_SINKING_MS=250;applyDirectionalMovementRotations=!0;autoCancelMouseLeftClick=!0;canJump=()=>!0;canRun=()=>!0;canSwim=()=>!0;canWalk=()=>!0;faceForwardOnStop=!0;idleLoopedAnimations=["idle-upper","idle-lower"];interactOneshotAnimations=["simple-interact"];jumpLandHeavyOneshotAnimations=["jump-post-heavy"];jumpLandLightOneshotAnimations=["jump-post-light"];jumpOneshotAnimations=["jump-loop"];jumpVelocity=10;runLoopedAnimations=["run-upper","run-lower"];runVelocity=8;sticksToPlatforms=!0;swimFastVelocity=5;swimGravity=0;swimIdleLoopedAnimations=["swim-idle"];swimLoopedAnimations=["swim-forward"];swimMaxGravityVelocity=-1;swimSlowVelocity=3;swimUpwardVelocity=2;walkLoopedAnimations=["walk-upper","walk-lower"];walkVelocity=4;_externalVelocity={x:0,y:0,z:0};_magnitudeYTracker=0;_groundContactCount=0;_internalApplyImpulse=()=>{};_isActivelyMoving=!1;_isFullySubmerged=!1;_justSubmergedUntil=0;_liquidContactCount=0;_platform;_reusableImpulse={x:0,y:0,z:0};_reusablePlatformVelocity={x:0,y:0,z:0};_reusableTargetVelocities={x:0,y:0,z:0};_reusableVelocityClamp={x:0,y:0,z:0};_stepAudio;_swimUpwardCooldownAt=0;constructor(Z={}){super();this.applyDirectionalMovementRotations=Z.applyDirectionalMovementRotations??this.applyDirectionalMovementRotations,this.autoCancelMouseLeftClick=Z.autoCancelMouseLeftClick??this.autoCancelMouseLeftClick,this.faceForwardOnStop=Z.faceForwardOnStop??this.faceForwardOnStop,this.sticksToPlatforms=Z.sticksToPlatforms??this.sticksToPlatforms,this.canJump=Z.canJump??this.canJump,this.canRun=Z.canRun??this.canRun,this.canSwim=Z.canSwim??this.canSwim,this.canWalk=Z.canWalk??this.canWalk,this.jumpVelocity=Z.jumpVelocity??this.jumpVelocity,this.runVelocity=Z.runVelocity??this.runVelocity,this.walkVelocity=Z.walkVelocity??this.walkVelocity,this.swimFastVelocity=Z.swimFastVelocity??this.swimFastVelocity,this.swimSlowVelocity=Z.swimSlowVelocity??this.swimSlowVelocity,this.swimUpwardVelocity=Z.swimUpwardVelocity??this.swimUpwardVelocity,this.swimGravity=Z.swimGravity??this.swimGravity,this.swimMaxGravityVelocity=Z.swimMaxGravityVelocity??this.swimMaxGravityVelocity,this.idleLoopedAnimations=Z.idleLoopedAnimations??this.idleLoopedAnimations,this.interactOneshotAnimations=Z.interactOneshotAnimations??this.interactOneshotAnimations,this.jumpOneshotAnimations=Z.jumpOneshotAnimations??this.jumpOneshotAnimations,this.jumpLandHeavyOneshotAnimations=Z.jumpLandHeavyOneshotAnimations??this.jumpLandHeavyOneshotAnimations,this.jumpLandLightOneshotAnimations=Z.jumpLandLightOneshotAnimations??this.jumpLandLightOneshotAnimations,this.runLoopedAnimations=Z.runLoopedAnimations??this.runLoopedAnimations,this.swimLoopedAnimations=Z.swimLoopedAnimations??this.swimLoopedAnimations,this.swimIdleLoopedAnimations=Z.swimIdleLoopedAnimations??this.swimIdleLoopedAnimations,this.walkLoopedAnimations=Z.walkLoopedAnimations??this.walkLoopedAnimations}get isActivelyMoving(){return this._isActivelyMoving}get isGrounded(){return this._groundContactCount>0}get isOnPlatform(){return!!this._platform}get isSwimming(){return this._liquidContactCount>0}get platform(){return this._platform}attach(Z){super.attach(Z),this._internalApplyImpulse=Z.applyImpulse.bind(Z),Z.applyImpulse=(J)=>{let X=Z.mass||1;this._externalVelocity.x+=J.x/X,this._externalVelocity.y+=J.y/X,this._externalVelocity.z+=J.z/X},this._stepAudio=new bG({uri:"audio/sfx/step/stone/stone-step-04.mp3",loop:!0,volume:0.1,referenceDistance:2,cutoffDistance:15,attachedToEntity:Z}),Z.setCcdEnabled(!0),Z.lockAllRotations(),Z.on("ENTITY.BLOCK_COLLISION",({blockType:J,started:X})=>{if(!J.isLiquid||!this.canSwim(this))return;if(this._liquidContactCount<=0&&X){let Y=Z.linearVelocity;Z.setLinearVelocity({x:Y.x*this.swimGravity,y:Y.y*this.swimGravity,z:Y.z*this.swimGravity})}if(this._liquidContactCount+=X?1:-1,this._liquidContactCount>0)Z.setGravityScale(this.swimGravity),Z.stopAllModelLoopedAnimations(this.swimLoopedAnimations),this._swimUpwardCooldownAt=performance.now()+f1.SWIM_UPWARD_COOLDOWN_MS;else Z.setGravityScale(1),Z.stopModelAnimations(this.swimLoopedAnimations)})}spawn(Z){if(!Z.isSpawned)return u.error("DefaultPlayerEntityController.spawn(): Entity is not spawned!");Z.createAndAddChildCollider({shape:"cylinder",radius:f1.GROUND_SENSOR_RADIUS_SCALE*(Z.height/f1.BASE_ENTITY_HEIGHT),halfHeight:f1.GROUND_SENSOR_HEIGHT_SCALE*(Z.height/f1.BASE_ENTITY_HEIGHT),collisionGroups:{belongsTo:[4],collidesWith:[1,2]},isSensor:!0,relativePosition:{x:0,y:-Z.height/2,z:0},tag:"groundSensor",onCollision:(J,X)=>{if(!Z.isSpawned)return;if(!(J instanceof e5)||!J.isLiquid){if(X&&this._groundContactCount===0&&Z.linearVelocity.y<-1)if(Z.linearVelocity.y<f1.JUMP_LAND_HEAVY_VELOCITY_THRESHOLD)Z.startModelOneshotAnimations(this.jumpLandHeavyOneshotAnimations);else Z.startModelOneshotAnimations(this.jumpLandLightOneshotAnimations);this._groundContactCount+=X?1:-1}if(!this._groundContactCount&&!this.isSwimming)Z.startModelOneshotAnimations(this.jumpOneshotAnimations);else Z.stopModelAnimations(this.jumpOneshotAnimations);if(!(J instanceof d8))return;if(X&&this.sticksToPlatforms)this._platform=J;else if(J===this._platform&&!X)this._platform=void 0}}),Z.createAndAddChildCollider({shape:"capsule",halfHeight:f1.WALL_COLLIDER_HEIGHT_SCALE*(Z.height/f1.BASE_ENTITY_HEIGHT),radius:f1.WALL_COLLIDER_RADIUS_SCALE*(Z.height/f1.BASE_ENTITY_HEIGHT),collisionGroups:{belongsTo:[4],collidesWith:[1,2]},friction:0,frictionCombineRule:1,tag:"wallCollider"})}tickWithPlayerInput(Z,J,X,Y){if(!Z.isSpawned||!Z.world)return;if(super.tickWithPlayerInput(Z,J,X,Y),Z.parent)return;let{w:$,a:Q,s:K,d:W,c:G,sp:H,sh:V,ml:F}=J,{yaw:z}=X,q=Z.linearVelocity;this._reusableTargetVelocities.x=0,this._reusableTargetVelocities.y=0,this._reusableTargetVelocities.z=0,this._isActivelyMoving=!!($||Q||K||W);let U=V,L=Q&&W&&!$&&!K||$&&K&&!Q&&!W,B=U&&this.canRun(this)||!U&&this.canWalk(this);if(this.isSwimming&&!this._isFullySubmerged)this._isFullySubmerged=!0,this._justSubmergedUntil=performance.now()+f1.WATER_ENTRY_SINKING_MS;else if(!this.isSwimming)this._isFullySubmerged=!1,this._justSubmergedUntil=0;if(this.isGrounded&&!this.isSwimming&&this._isActivelyMoving&&!L&&B){let j=U?this.runLoopedAnimations:this.walkLoopedAnimations;Z.stopAllModelLoopedAnimations(j),Z.startModelLoopedAnimations(j),this._stepAudio?.setPlaybackRate(U?0.75:0.51),this._stepAudio?.play(Z.world,!this._stepAudio?.isPlaying)}else if(this._isFullySubmerged&&this.canSwim(this))if(this._stepAudio?.pause(),this._isActivelyMoving)Z.stopAllModelLoopedAnimations(this.swimLoopedAnimations),Z.startModelLoopedAnimations(this.swimLoopedAnimations);else Z.stopAllModelLoopedAnimations(this.swimIdleLoopedAnimations),Z.startModelLoopedAnimations(this.swimIdleLoopedAnimations);else this._stepAudio?.pause(),Z.stopAllModelLoopedAnimations(this.idleLoopedAnimations),Z.startModelLoopedAnimations(this.idleLoopedAnimations);let w;if(this.applyDirectionalMovementRotations&&B){if($&&Q&&!W&&!K)w=f1.MOVEMENT_ROTATIONS.wa;else if($&&W&&!Q&&!K)w=f1.MOVEMENT_ROTATIONS.wd;else if(K&&Q&&!$&&!W)w=f1.MOVEMENT_ROTATIONS.sa;else if(K&&W&&!$&&!Q)w=f1.MOVEMENT_ROTATIONS.sd;else if(K&&!$&&!Q&&!W||Q&&K&&W&&!$)w=f1.MOVEMENT_ROTATIONS.s;else if(Q&&!$&&!K&&!W)w=f1.MOVEMENT_ROTATIONS.a;else if(W&&!$&&!Q&&!K)w=f1.MOVEMENT_ROTATIONS.d}if(F)Z.startModelOneshotAnimations(this.interactOneshotAnimations),J.ml=!this.autoCancelMouseLeftClick;if(B){let j=!this.isSwimming?U?this.runVelocity:this.walkVelocity:U?this.swimFastVelocity:this.swimSlowVelocity,C=Math.sin(z),T=Math.cos(z);if($)this._reusableTargetVelocities.x-=j*C,this._reusableTargetVelocities.z-=j*T;if(K)this._reusableTargetVelocities.x+=j*C,this._reusableTargetVelocities.z+=j*T;if(Q)this._reusableTargetVelocities.x-=j*T,this._reusableTargetVelocities.z+=j*C;if(W)this._reusableTargetVelocities.x+=j*T,this._reusableTargetVelocities.z-=j*C;let E=Math.sqrt(this._reusableTargetVelocities.x*this._reusableTargetVelocities.x+this._reusableTargetVelocities.z*this._reusableTargetVelocities.z);if(E>j){let x=j/E;this._reusableTargetVelocities.x*=x,this._reusableTargetVelocities.z*=x}}if(this.isSwimming){if(q.y<this.swimMaxGravityVelocity)this._reusableVelocityClamp.x=q.x,this._reusableVelocityClamp.y=this.swimMaxGravityVelocity,this._reusableVelocityClamp.z=q.z,Z.setLinearVelocity(this._reusableVelocityClamp);if(q.y>this.swimUpwardVelocity*2)this._reusableVelocityClamp.x=q.x,this._reusableVelocityClamp.y=this.swimUpwardVelocity*2,this._reusableVelocityClamp.z=q.z,Z.setLinearVelocity(this._reusableVelocityClamp);if(G)this._reusableTargetVelocities.y=-this.swimUpwardVelocity;else if(performance.now()<this._justSubmergedUntil)this._reusableTargetVelocities.y=-this.swimUpwardVelocity*f1.WATER_ENTRY_SINKING_FACTOR;else if(!H)this._reusableTargetVelocities.y=-q.y*f1.SWIMMING_DRAG_FACTOR}if(H&&this.canJump(this)){if(this.isGrounded&&!this.isSwimming&&q.y>-0.001&&q.y<=3)this._reusableTargetVelocities.y=this.jumpVelocity;else if(this.isSwimming&&performance.now()>this._swimUpwardCooldownAt)this._reusableTargetVelocities.y=this.swimUpwardVelocity}let N=this._platform?.linearVelocity??this._reusablePlatformVelocity;if(this._externalVelocity.y!==0)this._magnitudeYTracker+=this._externalVelocity.y;if(this._externalVelocity.x!==0||this._externalVelocity.y!==0||this._externalVelocity.z!==0){if(this.isGrounded){let j=Math.sqrt(this._externalVelocity.x*this._externalVelocity.x+this._magnitudeYTracker*this._magnitudeYTracker+this._externalVelocity.z*this._externalVelocity.z);if(j>0.01){let T=Math.max(0,j-f1.EXTERNAL_IMPULSE_DECAY_RATE)/j;this._externalVelocity.x*=T,this._magnitudeYTracker*=T,this._externalVelocity.z*=T}else this._externalVelocity.x=0,this._externalVelocity.y=0,this._magnitudeYTracker=0,this._externalVelocity.z=0}}let R=this._reusableTargetVelocities.x+this._externalVelocity.x-q.x+N.x,M=this._reusableTargetVelocities.y+this._externalVelocity.y+N.y,P=this._reusableTargetVelocities.z+this._externalVelocity.z-q.z+N.z;if(this._externalVelocity.y=0,R!==0||M!==0||P!==0){let j=Z.mass;this._reusableImpulse.x=R*j,this._reusableImpulse.y=M*j,this._reusableImpulse.z=P*j,this._internalApplyImpulse(this._reusableImpulse)}if(z!==void 0&&(this.faceForwardOnStop||this.isActivelyMoving)){let C=(w!==void 0?z+w:z)*0.5;Z.setRotation({x:0,y:Math.sin(C),z:0,w:Math.cos(C)})}}}var MI;((W)=>{W.LOAD="SCENE_UI.LOAD";W.SET_ATTACHED_TO_ENTITY="SCENE_UI.SET_ATTACHED_TO_ENTITY";W.SET_OFFSET="SCENE_UI.SET_OFFSET";W.SET_POSITION="SCENE_UI.SET_POSITION";W.SET_STATE="SCENE_UI.SET_STATE";W.SET_VIEW_DISTANCE="SCENE_UI.SET_VIEW_DISTANCE";W.UNLOAD="SCENE_UI.UNLOAD"})(MI||={});class qV extends B0{_id;_attachedToEntity;_offset;_position;_state={};_templateId;_viewDistance;_world;constructor(Z){if(!!Z.attachedToEntity===!!Z.position)u.fatalError("Either attachedToEntity or position must be set, but not both");super();this._attachedToEntity=Z.attachedToEntity,this._offset=Z.offset,this._position=Z.position,this._state=Z.state??{},this._templateId=Z.templateId,this._viewDistance=Z.viewDistance}get id(){return this._id}get attachedToEntity(){return this._attachedToEntity}get isLoaded(){return this._id!==void 0}get offset(){return this._offset}get position(){return this._position}get state(){return this._state}get templateId(){return this._templateId}get viewDistance(){return this._viewDistance}get world(){return this._world}load(Z){if(this.isLoaded)return;if(this._attachedToEntity&&!this._attachedToEntity.isSpawned)return u.error(`SceneUI.load(): Attached entity ${this._attachedToEntity.id} must be spawned before loading SceneUI!`);this._id=Z.sceneUIManager.registerSceneUI(this),this._world=Z,this.emitWithWorld(Z,"SCENE_UI.LOAD",{sceneUI:this})}setAttachedToEntity(Z){if(!Z.isSpawned)return u.error(`SceneUI.setAttachedToEntity(): Entity ${Z.id} is not spawned!`);if(this._attachedToEntity===Z)return;if(this._attachedToEntity=Z,this._position=void 0,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_ATTACHED_TO_ENTITY",{sceneUI:this,entity:Z})}setOffset(Z){if(this._offset===Z)return;if(this._offset=Z,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_OFFSET",{sceneUI:this,offset:Z})}setPosition(Z){if(this._position===Z)return;if(this._attachedToEntity=void 0,this._position=Z,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_POSITION",{sceneUI:this,position:Z})}setState(Z){if(this._state={...this._state,...Z},this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_STATE",{sceneUI:this,state:this._state})}setViewDistance(Z){if(this._viewDistance=Z,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_VIEW_DISTANCE",{sceneUI:this,viewDistance:Z})}unload(){if(!this.isLoaded||!this._world)return;this._world.sceneUIManager.unregisterSceneUI(this),this.emitWithWorld(this._world,"SCENE_UI.UNLOAD",{sceneUI:this}),this._id=void 0,this._world=void 0}serialize(){if(!this._world)u.fatalError("SceneUI.serialize(): SceneUI is not in a world and cannot be serialized!");return N0.serializeSceneUI(this,this._world.tickAllocator)}}var P10=0.010000000000000002,C10=Math.cos(0.026);class j7 extends d8{player;nametagSceneUI;constructor(Z){super(Z);this._positionUpdateThresholdSq=P10,this._rotationUpdateThreshold=C10,this.player=Z.player,this.nametagSceneUI=new qV({templateId:"hytopia:nametag",attachedToEntity:this,offset:{x:0,y:1,z:0},viewDistance:15,state:{username:this.player.username,profilePictureUrl:this.player.profilePictureUrl}})}spawn(Z,J,X){super.spawn(Z,J,X),this.nametagSceneUI.load(Z),this.player.on("PLAYER.CHAT_MESSAGE_SEND",({message:Y})=>{this.nametagSceneUI.setState({chat:Y})})}tick(Z){if(!this.isSpawned||!this.world)return;if(!this.controller)return u.error(`PlayerEntity.tick(): PlayerEntity "${this.name}" must have a controller.`);let{input:J,camera:X}=this.player;this.controller.tickWithPlayerInput(this,J,X.orientation,Z),super.tick(Z)}}class jI extends j7{constructor(Z){super({modelUri:"models/players/player.gltf",modelLoopedAnimations:["idle_lower","idle_upper"],modelHiddenNodes:["hair-"],modelShownNodes:["hair-0003"],...Z});if(!Z.controller)this.setController(new f1)}}class UV{_activeEntities=new Set;_entities=new Map;_nextEntityId=1;_world;constructor(Z){this._world=Z}get entityCount(){return this._entities.size}get world(){return this._world}registerEntity(Z){if(Z.id!==void 0)u.fatalError(`EntityManager.registerEntity(): Entity ${Z.name} is already assigned the id ${Z.id}!`);let J=this._nextEntityId;if(this._entities.set(J,Z),this._nextEntityId++,!Z.isEnvironmental)this._activeEntities.add(Z);return J}unregisterEntity(Z){if(Z.id===void 0)return u.error(`EntityManager.unregisterEntity(): Entity ${Z.name} is not assigned an id!`);if(this._entities.delete(Z.id),!Z.isEnvironmental)this._activeEntities.delete(Z)}getAllEntities(Z=!1){return Z?this._world.tickAllocator.getArray(this._entities.values()):Array.from(this._entities.values())}getAllPlayerEntities(){let Z=[];return this._entities.forEach((J)=>{if(J instanceof j7)Z.push(J)}),Z}getPlayerEntitiesByPlayer(Z){let J=[];return this._entities.forEach((X)=>{if(X instanceof j7&&X.player===Z)J.push(X)}),J}getEntity(Z){return this._entities.get(Z)}getEntitiesByTag(Z){let J=[];return this._entities.forEach((X)=>{if(X.tag===Z)J.push(X)}),J}getEntitiesByTagSubstring(Z){let J=[];return this._entities.forEach((X)=>{if(X.tag?.includes(Z))J.push(X)}),J}getEntityChildren(Z){let J=[];return this._entities.forEach((X)=>{if(X.parent===Z)J.push(X)}),J}tickEntities(Z){for(let J of this._activeEntities)J.tick(Z)}checkAndEmitUpdates(){for(let Z of this._activeEntities)Z.checkAndEmitUpdates()}}var qK1=r(M3(),1);var TA1=r(R80(),1),EA1=r(II(),1),IA1=r(vI(),1),yI=r(Yw(),1),bI=r(E80(),1);var J5=r(_60(),1),Zf6=J5.default.v1,Jf6=J5.default.v1ToV6,Xf6=J5.default.v3,S60=J5.default.v4,Yf6=J5.default.v5,$f6=J5.default.v6,Qf6=J5.default.v6ToV1,Kf6=J5.default.v7,Wf6=J5.default.NIL,Gf6=J5.default.MAX,Hf6=J5.default.version,Vf6=J5.default.validate,zf6=J5.default.stringify,Ff6=J5.default.parse;var iI;try{iI=new TextDecoder}catch(Z){}var e,$9,b=0;var oI=[],Y$=oI,CV=0,v1={},X1,xZ,Y9=0,f9=0,c8,hZ,S5=[],t0,A60={useRecords:!1,mapsAsObjects:!0};class Fw{}var rI=new Fw;rI.name="MessagePack 0xC1";var eJ=!1,u60=2,nI,aI,sI;try{new Function("")}catch(Z){u60=1/0}class fZ{constructor(Z){if(Z){if(Z.useRecords===!1&&Z.mapsAsObjects===void 0)Z.mapsAsObjects=!0;if(Z.sequential&&Z.trusted!==!1){if(Z.trusted=!0,!Z.structures&&Z.useRecords!=!1){if(Z.structures=[],!Z.maxSharedStructures)Z.maxSharedStructures=0}}if(Z.structures)Z.structures.sharedLength=Z.structures.length;else if(Z.getStructures)(Z.structures=[]).uninitialized=!0,Z.structures.sharedLength=0;if(Z.int64AsNumber)Z.int64AsType="number"}Object.assign(this,Z)}unpack(Z,J){if(e)return t60(()=>{return zw(),this?this.unpack(Z,J):fZ.prototype.unpack.call(A60,Z,J)});if(!Z.buffer&&Z.constructor===ArrayBuffer)Z=typeof Buffer!=="undefined"?Buffer.from(Z):new Uint8Array(Z);if(typeof J==="object")$9=J.end||Z.length,b=J.start||0;else b=0,$9=J>-1?J:Z.length;CV=0,f9=0,xZ=null,Y$=oI,c8=null,e=Z;try{t0=Z.dataView||(Z.dataView=new DataView(Z.buffer,Z.byteOffset,Z.byteLength))}catch(X){if(e=null,Z instanceof Uint8Array)throw X;throw new Error("Source must be a Uint8Array or Buffer but was a "+(Z&&typeof Z=="object"?Z.constructor.name:typeof Z))}if(this instanceof fZ){if(v1=this,this.structures)return X1=this.structures,Hw(J);else if(!X1||X1.length>0)X1=[]}else if(v1=A60,!X1||X1.length>0)X1=[];return Hw(J)}unpackMultiple(Z,J){let X,Y=0;try{eJ=!0;let $=Z.length,Q=this?this.unpack(Z,$):qw.unpack(Z,$);if(J){if(J(Q,Y,b)===!1)return;while(b<$)if(Y=b,J(Hw(),Y,b)===!1)return}else{X=[Q];while(b<$)Y=b,X.push(Hw());return X}}catch($){throw $.lastPosition=Y,$.values=X,$}finally{eJ=!1,zw()}}_mergeStructures(Z,J){if(aI)Z=aI.call(this,Z);if(Z=Z||[],Object.isFrozen(Z))Z=Z.map((X)=>X.slice(0));for(let X=0,Y=Z.length;X<Y;X++){let $=Z[X];if($){if($.isShared=!0,X>=32)$.highByte=X-32>>5}}Z.sharedLength=Z.length;for(let X in J||[])if(X>=0){let Y=Z[X],$=J[X];if($){if(Y)(Z.restoreStructures||(Z.restoreStructures=[]))[X]=Y;Z[X]=$}}return this.structures=Z}decode(Z,J){return this.unpack(Z,J)}}function Hw(Z){try{if(!v1.trusted&&!eJ){let X=X1.sharedLength||0;if(X<X1.length)X1.length=X}let J;if(v1.randomAccessStructure&&e[b]<64&&e[b]>=32&&nI){if(J=nI(e,b,$9,v1),e=null,!(Z&&Z.lazy)&&J)J=J.toJSON();b=$9}else J=j8();if(c8)b=c8.postBundlePosition,c8=null;if(eJ)X1.restoreStructures=null;if(b==$9){if(X1&&X1.restoreStructures)x60();if(X1=null,e=null,hZ)hZ=null}else if(b>$9)throw new Error("Unexpected end of MessagePack data");else if(!eJ){let X;try{X=JSON.stringify(J,(Y,$)=>typeof $==="bigint"?`${$}n`:$).slice(0,100)}catch(Y){X="(JSON view not available "+Y+")"}throw new Error("Data read, but end of buffer not reached "+X)}return J}catch(J){if(X1&&X1.restoreStructures)x60();if(zw(),J instanceof RangeError||J.message.startsWith("Unexpected end of buffer")||b>$9)J.incomplete=!0;throw J}}function x60(){for(let Z in X1.restoreStructures)X1[Z]=X1.restoreStructures[Z];X1.restoreStructures=null}function j8(){let Z=e[b++];if(Z<160)if(Z<128)if(Z<64)return Z;else{let J=X1[Z&63]||v1.getStructures&&d60()[Z&63];if(J){if(!J.read)J.read=tI(J,Z&63);return J.read()}else return Z}else if(Z<144)if(Z-=128,v1.mapsAsObjects){let J={};for(let X=0;X<Z;X++){let Y=o60();if(Y==="__proto__")Y="__proto_";J[Y]=j8()}return J}else{let J=new Map;for(let X=0;X<Z;X++)J.set(j8(),j8());return J}else{Z-=144;let J=new Array(Z);for(let X=0;X<Z;X++)J[X]=j8();if(v1.freezeData)return Object.freeze(J);return J}else if(Z<192){let J=Z-160;if(f9>=b)return xZ.slice(b-Y9,(b+=J)-Y9);if(f9==0&&$9<140){let X=J<16?eI(J):s60(J);if(X!=null)return X}return Vw(J)}else{let J;switch(Z){case 192:return null;case 193:if(c8)if(J=j8(),J>0)return c8[1].slice(c8.position1,c8.position1+=J);else return c8[0].slice(c8.position0,c8.position0-=J);return rI;case 194:return!1;case 195:return!0;case 196:if(J=e[b++],J===void 0)throw new Error("Unexpected end of buffer");return pI(J);case 197:return J=t0.getUint16(b),b+=2,pI(J);case 198:return J=t0.getUint32(b),b+=4,pI(J);case 199:return X$(e[b++]);case 200:return J=t0.getUint16(b),b+=2,X$(J);case 201:return J=t0.getUint32(b),b+=4,X$(J);case 202:if(J=t0.getFloat32(b),v1.useFloat32>2){let X=Q$[(e[b]&127)<<1|e[b+1]>>7];return b+=4,(X*J+(J>0?0.5:-0.5)>>0)/X}return b+=4,J;case 203:return J=t0.getFloat64(b),b+=8,J;case 204:return e[b++];case 205:return J=t0.getUint16(b),b+=2,J;case 206:return J=t0.getUint32(b),b+=4,J;case 207:if(v1.int64AsType==="number")J=t0.getUint32(b)*4294967296,J+=t0.getUint32(b+4);else if(v1.int64AsType==="string")J=t0.getBigUint64(b).toString();else if(v1.int64AsType==="auto"){if(J=t0.getBigUint64(b),J<=BigInt(2)<<BigInt(52))J=Number(J)}else J=t0.getBigUint64(b);return b+=8,J;case 208:return t0.getInt8(b++);case 209:return J=t0.getInt16(b),b+=2,J;case 210:return J=t0.getInt32(b),b+=4,J;case 211:if(v1.int64AsType==="number")J=t0.getInt32(b)*4294967296,J+=t0.getUint32(b+4);else if(v1.int64AsType==="string")J=t0.getBigInt64(b).toString();else if(v1.int64AsType==="auto"){if(J=t0.getBigInt64(b),J>=BigInt(-2)<<BigInt(52)&&J<=BigInt(2)<<BigInt(52))J=Number(J)}else J=t0.getBigInt64(b);return b+=8,J;case 212:if(J=e[b++],J==114)return m60(e[b++]&63);else{let X=S5[J];if(X)if(X.read)return b++,X.read(j8());else if(X.noBuffer)return b++,X();else return X(e.subarray(b,++b));else throw new Error("Unknown extension "+J)}case 213:if(J=e[b],J==114)return b++,m60(e[b++]&63,e[b++]);else return X$(2);case 214:return X$(4);case 215:return X$(8);case 216:return X$(16);case 217:if(J=e[b++],f9>=b)return xZ.slice(b-Y9,(b+=J)-Y9);return c60(J);case 218:if(J=t0.getUint16(b),b+=2,f9>=b)return xZ.slice(b-Y9,(b+=J)-Y9);return l60(J);case 219:if(J=t0.getUint32(b),b+=4,f9>=b)return xZ.slice(b-Y9,(b+=J)-Y9);return p60(J);case 220:return J=t0.getUint16(b),b+=2,f60(J);case 221:return J=t0.getUint32(b),b+=4,f60(J);case 222:return J=t0.getUint16(b),b+=2,y60(J);case 223:return J=t0.getUint32(b),b+=4,y60(J);default:if(Z>=224)return Z-256;if(Z===void 0){let X=new Error("Unexpected end of MessagePack data");throw X.incomplete=!0,X}throw new Error("Unknown MessagePack token "+Z)}}}var Yh1=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function tI(Z,J){function X(){if(X.count++>u60){let $=Z.read=new Function("r","return function(){return "+(v1.freezeData?"Object.freeze":"")+"({"+Z.map((Q)=>Q==="__proto__"?"__proto_:r()":Yh1.test(Q)?Q+":r()":"["+JSON.stringify(Q)+"]:r()").join(",")+"})}")(j8);if(Z.highByte===0)Z.read=h60(J,Z.read);return $()}let Y={};for(let $=0,Q=Z.length;$<Q;$++){let K=Z[$];if(K==="__proto__")K="__proto_";Y[K]=j8()}if(v1.freezeData)return Object.freeze(Y);return Y}if(X.count=0,Z.highByte===0)return h60(J,X);return X}var h60=(Z,J)=>{return function(){let X=e[b++];if(X===0)return J();let Y=Z<32?-(Z+(X<<5)):Z+(X<<5),$=X1[Y]||d60()[Y];if(!$)throw new Error("Record id is not defined for "+Y);if(!$.read)$.read=tI($,Z);return $.read()}};function d60(){let Z=t60(()=>{return e=null,v1.getStructures()});return X1=v1._mergeStructures(Z,X1)}var Vw=$$,c60=$$,l60=$$,p60=$$,i60=!1;function n60(Z){i60=!0,Vw=J(1),c60=J(2),l60=J(3),p60=J(5);function J(X){return function Y($){let Q=Y$[CV++];if(Q==null){if(c8)return $$($);let W=e.byteOffset,G=Z(b-X+W,$9+W,e.buffer);if(typeof G=="string")Q=G,Y$=oI;else if(Y$=G,CV=1,f9=1,Q=Y$[0],Q===void 0)throw new Error("Unexpected end of buffer")}let K=Q.length;if(K<=$)return b+=$,Q;return xZ=Q,Y9=b,f9=b+K,b+=$,Q.slice(0,$)}}}function $$(Z){let J;if(Z<16){if(J=eI(Z))return J}if(Z>64&&iI)return iI.decode(e.subarray(b,b+=Z));let X=b+Z,Y=[];J="";while(b<X){let $=e[b++];if(($&128)===0)Y.push($);else if(($&224)===192){let Q=e[b++]&63;Y.push(($&31)<<6|Q)}else if(($&240)===224){let Q=e[b++]&63,K=e[b++]&63;Y.push(($&31)<<12|Q<<6|K)}else if(($&248)===240){let Q=e[b++]&63,K=e[b++]&63,W=e[b++]&63,G=($&7)<<18|Q<<12|K<<6|W;if(G>65535)G-=65536,Y.push(G>>>10&1023|55296),G=56320|G&1023;Y.push(G)}else Y.push($);if(Y.length>=4096)J+=J6.apply(String,Y),Y.length=0}if(Y.length>0)J+=J6.apply(String,Y);return J}function a60(Z,J,X){let Y=e;e=Z,b=J;try{return $$(X)}finally{e=Y}}function f60(Z){let J=new Array(Z);for(let X=0;X<Z;X++)J[X]=j8();if(v1.freezeData)return Object.freeze(J);return J}function y60(Z){if(v1.mapsAsObjects){let J={};for(let X=0;X<Z;X++){let Y=o60();if(Y==="__proto__")Y="__proto_";J[Y]=j8()}return J}else{let J=new Map;for(let X=0;X<Z;X++)J.set(j8(),j8());return J}}var J6=String.fromCharCode;function s60(Z){let J=b,X=new Array(Z);for(let Y=0;Y<Z;Y++){let $=e[b++];if(($&128)>0){b=J;return}X[Y]=$}return J6.apply(String,X)}function eI(Z){if(Z<4)if(Z<2)if(Z===0)return"";else{let J=e[b++];if((J&128)>1){b-=1;return}return J6(J)}else{let J=e[b++],X=e[b++];if((J&128)>0||(X&128)>0){b-=2;return}if(Z<3)return J6(J,X);let Y=e[b++];if((Y&128)>0){b-=3;return}return J6(J,X,Y)}else{let J=e[b++],X=e[b++],Y=e[b++],$=e[b++];if((J&128)>0||(X&128)>0||(Y&128)>0||($&128)>0){b-=4;return}if(Z<6)if(Z===4)return J6(J,X,Y,$);else{let Q=e[b++];if((Q&128)>0){b-=5;return}return J6(J,X,Y,$,Q)}else if(Z<8){let Q=e[b++],K=e[b++];if((Q&128)>0||(K&128)>0){b-=6;return}if(Z<7)return J6(J,X,Y,$,Q,K);let W=e[b++];if((W&128)>0){b-=7;return}return J6(J,X,Y,$,Q,K,W)}else{let Q=e[b++],K=e[b++],W=e[b++],G=e[b++];if((Q&128)>0||(K&128)>0||(W&128)>0||(G&128)>0){b-=8;return}if(Z<10)if(Z===8)return J6(J,X,Y,$,Q,K,W,G);else{let H=e[b++];if((H&128)>0){b-=9;return}return J6(J,X,Y,$,Q,K,W,G,H)}else if(Z<12){let H=e[b++],V=e[b++];if((H&128)>0||(V&128)>0){b-=10;return}if(Z<11)return J6(J,X,Y,$,Q,K,W,G,H,V);let F=e[b++];if((F&128)>0){b-=11;return}return J6(J,X,Y,$,Q,K,W,G,H,V,F)}else{let H=e[b++],V=e[b++],F=e[b++],z=e[b++];if((H&128)>0||(V&128)>0||(F&128)>0||(z&128)>0){b-=12;return}if(Z<14)if(Z===12)return J6(J,X,Y,$,Q,K,W,G,H,V,F,z);else{let q=e[b++];if((q&128)>0){b-=13;return}return J6(J,X,Y,$,Q,K,W,G,H,V,F,z,q)}else{let q=e[b++],U=e[b++];if((q&128)>0||(U&128)>0){b-=14;return}if(Z<15)return J6(J,X,Y,$,Q,K,W,G,H,V,F,z,q,U);let L=e[b++];if((L&128)>0){b-=15;return}return J6(J,X,Y,$,Q,K,W,G,H,V,F,z,q,U,L)}}}}}function b60(){let Z=e[b++],J;if(Z<192)J=Z-160;else switch(Z){case 217:J=e[b++];break;case 218:J=t0.getUint16(b),b+=2;break;case 219:J=t0.getUint32(b),b+=4;break;default:throw new Error("Expected string")}return $$(J)}function pI(Z){return v1.copyBuffers?Uint8Array.prototype.slice.call(e,b,b+=Z):e.subarray(b,b+=Z)}function X$(Z){let J=e[b++];if(S5[J]){let X;return S5[J](e.subarray(b,X=b+=Z),(Y)=>{b=Y;try{return j8()}finally{b=X}})}else throw new Error("Unknown extension type "+J)}var g60=new Array(4096);function o60(){let Z=e[b++];if(Z>=160&&Z<192){if(Z=Z-160,f9>=b)return xZ.slice(b-Y9,(b+=Z)-Y9);else if(!(f9==0&&$9<180))return Vw(Z)}else return b--,r60(j8());let J=(Z<<5^(Z>1?t0.getUint16(b):Z>0?e[b]:0))&4095,X=g60[J],Y=b,$=b+Z-3,Q,K=0;if(X&&X.bytes==Z){while(Y<$){if(Q=t0.getUint32(Y),Q!=X[K++]){Y=1879048192;break}Y+=4}$+=3;while(Y<$)if(Q=e[Y++],Q!=X[K++]){Y=1879048192;break}if(Y===$)return b=Y,X.string;$-=3,Y=b}X=[],g60[J]=X,X.bytes=Z;while(Y<$)Q=t0.getUint32(Y),X.push(Q),Y+=4;$+=3;while(Y<$)Q=e[Y++],X.push(Q);let W=Z<16?eI(Z):s60(Z);if(W!=null)return X.string=W;return X.string=Vw(Z)}function r60(Z){if(typeof Z==="string")return Z;if(typeof Z==="number"||typeof Z==="boolean"||typeof Z==="bigint")return Z.toString();if(Z==null)return Z+"";if(v1.allowArraysInMapKeys&&Array.isArray(Z)&&Z.flat().every((J)=>["string","number","boolean","bigint"].includes(typeof J)))return Z.flat().toString();throw new Error(`Invalid property type for record: ${typeof Z}`)}var m60=(Z,J)=>{let X=j8().map(r60),Y=Z;if(J!==void 0)Z=Z<32?-((J<<5)+Z):(J<<5)+Z,X.highByte=J;let $=X1[Z];if($&&($.isShared||eJ))(X1.restoreStructures||(X1.restoreStructures=[]))[Z]=$;return X1[Z]=X,X.read=tI(X,Y),X.read()};S5[0]=()=>{};S5[0].noBuffer=!0;S5[66]=(Z)=>{let J=Z.length,X=BigInt(Z[0]&128?Z[0]-256:Z[0]);for(let Y=1;Y<J;Y++)X<<=BigInt(8),X+=BigInt(Z[Y]);return X};var $h1={Error,TypeError,ReferenceError};S5[101]=()=>{let Z=j8();return($h1[Z[0]]||Error)(Z[1],{cause:Z[2]})};S5[105]=(Z)=>{if(v1.structuredClone===!1)throw new Error("Structured clone extension is disabled");let J=t0.getUint32(b-4);if(!hZ)hZ=new Map;let X=e[b],Y;if(X>=144&&X<160||X==220||X==221)Y=[];else if(X>=128&&X<144||X==222||X==223)Y=new Map;else if((X>=199&&X<=201||X>=212&&X<=216)&&e[b+1]===115)Y=new Set;else Y={};let $={target:Y};hZ.set(J,$);let Q=j8();if(!$.used)return $.target=Q;else Object.assign(Y,Q);if(Y instanceof Map)for(let[K,W]of Q.entries())Y.set(K,W);if(Y instanceof Set)for(let K of Array.from(Q))Y.add(K);return Y};S5[112]=(Z)=>{if(v1.structuredClone===!1)throw new Error("Structured clone extension is disabled");let J=t0.getUint32(b-4),X=hZ.get(J);return X.used=!0,X.target};S5[115]=()=>new Set(j8());var Zk=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map((Z)=>Z+"Array"),Qh1=typeof globalThis==="object"?globalThis:window;S5[116]=(Z)=>{let J=Z[0],X=Uint8Array.prototype.slice.call(Z,1).buffer,Y=Zk[J];if(!Y){if(J===16)return X;if(J===17)return new DataView(X);throw new Error("Could not find typed array for code "+J)}return new Qh1[Y](X)};S5[120]=()=>{let Z=j8();return new RegExp(Z[0],Z[1])};var Kh1=[];S5[98]=(Z)=>{let J=(Z[0]<<24)+(Z[1]<<16)+(Z[2]<<8)+Z[3],X=b;return b+=J-Z.length,c8=Kh1,c8=[b60(),b60()],c8.position0=0,c8.position1=0,c8.postBundlePosition=b,b=X,j8()};S5[255]=(Z)=>{if(Z.length==4)return new Date((Z[0]*16777216+(Z[1]<<16)+(Z[2]<<8)+Z[3])*1000);else if(Z.length==8)return new Date(((Z[0]<<22)+(Z[1]<<14)+(Z[2]<<6)+(Z[3]>>2))/1e6+((Z[3]&3)*4294967296+Z[4]*16777216+(Z[5]<<16)+(Z[6]<<8)+Z[7])*1000);else if(Z.length==12)return new Date(((Z[0]<<24)+(Z[1]<<16)+(Z[2]<<8)+Z[3])/1e6+((Z[4]&128?-281474976710656:0)+Z[6]*1099511627776+Z[7]*4294967296+Z[8]*16777216+(Z[9]<<16)+(Z[10]<<8)+Z[11])*1000);else return new Date("invalid")};function t60(Z){if(sI)sI();let J=$9,X=b,Y=CV,$=Y9,Q=f9,K=xZ,W=Y$,G=hZ,H=c8,V=new Uint8Array(e.slice(0,$9)),F=X1,z=X1.slice(0,X1.length),q=v1,U=eJ,L=Z();return $9=J,b=X,CV=Y,Y9=$,f9=Q,xZ=K,Y$=W,hZ=G,c8=H,e=V,eJ=U,X1=F,X1.splice(0,X1.length,...z),v1=q,t0=new DataView(e.buffer,e.byteOffset,e.byteLength),L}function zw(){e=null,hZ=null,X1=null}var Q$=new Array(147);for(let Z=0;Z<256;Z++)Q$[Z]=+("1e"+Math.floor(45.15-Z*0.30103));var qw=new fZ({useRecords:!1}),Wh1=qw.unpack,Gh1=qw.unpackMultiple,Hh1=qw.unpack;var Vh1=new Float32Array(1),Uf6=new Uint8Array(Vh1.buffer,0,4);function e60(Z,J,X){nI=Z,aI=J,sI=X}var Lw;try{Lw=new TextEncoder}catch(Z){}var Yk,Y50,EV=typeof Buffer!=="undefined",Uw=EV?function(Z){return Buffer.allocUnsafeSlow(Z)}:Uint8Array,$50=EV?Buffer:Uint8Array,Z50=EV?4294967296:2144337920,c,TV,y1,m=0,X5,r1=null,Q50,zh1=21760,Fh1=/[\u0080-\uFFFF]/,P7=Symbol("record-id");class K$ extends fZ{constructor(Z){super(Z);this.offset=0;let J,X,Y,$,Q,K=$50.prototype.utf8Write?function(k,v){return c.utf8Write(k,v,c.byteLength-v)}:Lw&&Lw.encodeInto?function(k,v){return Lw.encodeInto(k,c.subarray(v)).written}:!1,W=this;if(!Z)Z={};let G=Z&&Z.sequential,H=Z.structures||Z.saveStructures,V=Z.maxSharedStructures;if(V==null)V=H?32:0;if(V>8160)throw new Error("Maximum maxSharedStructure is 8160");if(Z.structuredClone&&Z.moreTypes==null)this.moreTypes=!0;let F=Z.maxOwnStructures;if(F==null)F=H?32:64;if(!this.structures&&Z.useRecords!=!1)this.structures=[];let z=V>32||F+V>64,q=V+64,U=V+F+64;if(U>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let L=[],B=0,w=0;this.pack=this.encode=function(k,v){if(!c)c=new Uw(8192),y1=c.dataView||(c.dataView=new DataView(c.buffer,0,8192)),m=0;if(X5=c.length-10,X5-m<2048)c=new Uw(c.length),y1=c.dataView||(c.dataView=new DataView(c.buffer,0,c.length)),X5=c.length-10,m=0;else m=m+7&2147483640;if(X=m,v&Nh1)m+=v&255;if(Q=W.structuredClone?new Map:null,W.bundleStrings&&typeof k!=="string")r1=[],r1.size=1/0;else r1=null;if($=W.structures,$){if($.uninitialized)$=W._mergeStructures(W.getStructures());let p=$.sharedLength||0;if(p>V)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+$.sharedLength);if(!$.transitions){$.transitions=Object.create(null);for(let n=0;n<p;n++){let o=$[n];if(!o)continue;let X0,Q0=$.transitions;for(let E0=0,I0=o.length;E0<I0;E0++){let a0=o[E0];if(X0=Q0[a0],!X0)X0=Q0[a0]=Object.create(null);Q0=X0}Q0[P7]=n+64}this.lastNamedStructuresLength=p}if(!G)$.nextId=p+64}if(Y)Y=!1;let A;try{if(W.randomAccessStructure&&k&&k.constructor&&k.constructor===Object)h(k);else M(k);let p=r1;if(r1)J50(X,M,0);if(Q&&Q.idsToInsert){let n=Q.idsToInsert.sort((E0,I0)=>E0.offset>I0.offset?1:-1),o=n.length,X0=-1;while(p&&o>0){let E0=n[--o].offset+X;if(E0<p.stringsPosition+X&&X0===-1)X0=0;if(E0>p.position+X){if(X0>=0)X0+=6}else{if(X0>=0)y1.setUint32(p.position+X,y1.getUint32(p.position+X)+X0),X0=-1;p=p.previous,o++}}if(X0>=0&&p)y1.setUint32(p.position+X,y1.getUint32(p.position+X)+X0);if(m+=n.length*6,m>X5)E(m);W.offset=m;let Q0=Uh1(c.subarray(X,m),n);return Q=null,Q0}if(W.offset=m,v&wh1)return c.start=X,c.end=m,c;return c.subarray(X,m)}catch(p){throw A=p,p}finally{if($){if(N(),Y&&W.saveStructures){let p=$.sharedLength||0,n=c.subarray(X,m),o=K50($,W);if(!A){if(W.saveStructures(o,o.isCompatible)===!1)return W.pack(k,v);if(W.lastNamedStructuresLength=p,c.length>1073741824)c=null;return n}}}if(c.length>1073741824)c=null;if(v&Oh1)m=X}};let N=()=>{if(w<10)w++;let k=$.sharedLength||0;if($.length>k&&!G)$.length=k;if(B>1e4){if($.transitions=null,w=0,B=0,L.length>0)L=[]}else if(L.length>0&&!G){for(let v=0,A=L.length;v<A;v++)L[v][P7]=0;L=[]}},R=(k)=>{var v=k.length;if(v<16)c[m++]=144|v;else if(v<65536)c[m++]=220,c[m++]=v>>8,c[m++]=v&255;else c[m++]=221,y1.setUint32(m,v),m+=4;for(let A=0;A<v;A++)M(k[A])},M=(k)=>{if(m>X5)c=E(m);var v=typeof k,A;if(v==="string"){let p=k.length;if(r1&&p>=4&&p<4096){if((r1.size+=p)>zh1){let Q0,E0=(r1[0]?r1[0].length*3+r1[1].length:0)+10;if(m+E0>X5)c=E(m+E0);let I0;if(r1.position)I0=r1,c[m]=200,m+=3,c[m++]=98,Q0=m-X,m+=4,J50(X,M,0),y1.setUint16(Q0+X-3,m-X-Q0);else c[m++]=214,c[m++]=98,Q0=m-X,m+=4;r1=["",""],r1.previous=I0,r1.size=0,r1.position=Q0}let X0=Fh1.test(k);r1[X0?0:1]+=k,c[m++]=193,M(X0?-p:p);return}let n;if(p<32)n=1;else if(p<256)n=2;else if(p<65536)n=3;else n=5;let o=p*3;if(m+o>X5)c=E(m+o);if(p<64||!K){let X0,Q0,E0,I0=m+n;for(X0=0;X0<p;X0++)if(Q0=k.charCodeAt(X0),Q0<128)c[I0++]=Q0;else if(Q0<2048)c[I0++]=Q0>>6|192,c[I0++]=Q0&63|128;else if((Q0&64512)===55296&&((E0=k.charCodeAt(X0+1))&64512)===56320)Q0=65536+((Q0&1023)<<10)+(E0&1023),X0++,c[I0++]=Q0>>18|240,c[I0++]=Q0>>12&63|128,c[I0++]=Q0>>6&63|128,c[I0++]=Q0&63|128;else c[I0++]=Q0>>12|224,c[I0++]=Q0>>6&63|128,c[I0++]=Q0&63|128;A=I0-m-n}else A=K(k,m+n);if(A<32)c[m++]=160|A;else if(A<256){if(n<2)c.copyWithin(m+2,m+1,m+1+A);c[m++]=217,c[m++]=A}else if(A<65536){if(n<3)c.copyWithin(m+3,m+2,m+2+A);c[m++]=218,c[m++]=A>>8,c[m++]=A&255}else{if(n<5)c.copyWithin(m+5,m+3,m+3+A);c[m++]=219,y1.setUint32(m,A),m+=4}m+=A}else if(v==="number")if(k>>>0===k)if(k<32||k<128&&this.useRecords===!1||k<64&&!this.randomAccessStructure)c[m++]=k;else if(k<256)c[m++]=204,c[m++]=k;else if(k<65536)c[m++]=205,c[m++]=k>>8,c[m++]=k&255;else c[m++]=206,y1.setUint32(m,k),m+=4;else if(k>>0===k)if(k>=-32)c[m++]=256+k;else if(k>=-128)c[m++]=208,c[m++]=k+256;else if(k>=-32768)c[m++]=209,y1.setInt16(m,k),m+=2;else c[m++]=210,y1.setInt32(m,k),m+=4;else{let p;if((p=this.useFloat32)>0&&k<4294967296&&k>=-2147483648){c[m++]=202,y1.setFloat32(m,k);let n;if(p<4||(n=k*Q$[(c[m]&127)<<1|c[m+1]>>7])>>0===n){m+=4;return}else m--}c[m++]=203,y1.setFloat64(m,k),m+=8}else if(v==="object"||v==="function")if(!k)c[m++]=192;else{if(Q){let n=Q.get(k);if(n){if(!n.id){let o=Q.idsToInsert||(Q.idsToInsert=[]);n.id=o.push(n)}c[m++]=214,c[m++]=112,y1.setUint32(m,n.id),m+=4;return}else Q.set(k,{offset:m-X})}let p=k.constructor;if(p===Object)T(k);else if(p===Array)R(k);else if(p===Map)if(this.mapAsEmptyObject)c[m++]=128;else{if(A=k.size,A<16)c[m++]=128|A;else if(A<65536)c[m++]=222,c[m++]=A>>8,c[m++]=A&255;else c[m++]=223,y1.setUint32(m,A),m+=4;for(let[n,o]of k)M(n),M(o)}else{for(let n=0,o=Yk.length;n<o;n++){let X0=Y50[n];if(k instanceof X0){let Q0=Yk[n];if(Q0.write){if(Q0.type)c[m++]=212,c[m++]=Q0.type,c[m++]=0;let n1=Q0.write.call(this,k);if(n1===k)if(Array.isArray(k))R(k);else T(k);else M(n1);return}let E0=c,I0=y1,a0=m;c=null;let E8;try{E8=Q0.pack.call(this,k,(n1)=>{if(c=E0,E0=null,m+=n1,m>X5)E(m);return{target:c,targetView:y1,position:m-n1}},M)}finally{if(E0)c=E0,y1=I0,m=a0,X5=c.length-10}if(E8){if(E8.length+m>X5)E(E8.length+m);m=qh1(E8,c,m,Q0.type)}return}}if(Array.isArray(k))R(k);else{if(k.toJSON){let n=k.toJSON();if(n!==k)return M(n)}if(v==="function")return M(this.writeFunction&&this.writeFunction(k));T(k)}}}else if(v==="boolean")c[m++]=k?195:194;else if(v==="bigint"){if(k<9223372036854776000&&k>=-9223372036854776000)c[m++]=211,y1.setBigInt64(m,k);else if(k<18446744073709552000&&k>0)c[m++]=207,y1.setBigUint64(m,k);else if(this.largeBigIntToFloat)c[m++]=203,y1.setFloat64(m,Number(k));else if(this.largeBigIntToString)return M(k.toString());else if((this.useBigIntExtension||this.moreTypes)&&k<BigInt(2)**BigInt(1023)&&k>-(BigInt(2)**BigInt(1023))){c[m++]=199,m++,c[m++]=66;let p=[],n;do{let o=k&BigInt(255);n=(o&BigInt(128))===(k<BigInt(0)?BigInt(128):BigInt(0)),p.push(o),k>>=BigInt(8)}while(!((k===BigInt(0)||k===BigInt(-1))&&n));c[m-2]=p.length;for(let o=p.length;o>0;)c[m++]=Number(p[--o]);return}else throw new RangeError(k+" was too large to fit in MessagePack 64-bit integer format, use useBigIntExtension, or set largeBigIntToFloat to convert to float-64, or set largeBigIntToString to convert to string");m+=8}else if(v==="undefined")if(this.encodeUndefinedAsNil)c[m++]=192;else c[m++]=212,c[m++]=0,c[m++]=0;else throw new Error("Unknown type: "+v)},P=this.variableMapSize||this.coercibleKeyAsNumber||this.skipValues?(k)=>{let v;if(this.skipValues){v=[];for(let n in k)if((typeof k.hasOwnProperty!=="function"||k.hasOwnProperty(n))&&!this.skipValues.includes(k[n]))v.push(n)}else v=Object.keys(k);let A=v.length;if(A<16)c[m++]=128|A;else if(A<65536)c[m++]=222,c[m++]=A>>8,c[m++]=A&255;else c[m++]=223,y1.setUint32(m,A),m+=4;let p;if(this.coercibleKeyAsNumber)for(let n=0;n<A;n++){p=v[n];let o=Number(p);M(isNaN(o)?p:o),M(k[p])}else for(let n=0;n<A;n++)M(p=v[n]),M(k[p])}:(k)=>{c[m++]=222;let v=m-X;m+=2;let A=0;for(let p in k)if(typeof k.hasOwnProperty!=="function"||k.hasOwnProperty(p))M(p),M(k[p]),A++;if(A>65535)throw new Error('Object is too large to serialize with fast 16-bit map size, use the "variableMapSize" option to serialize this object');c[v+++X]=A>>8,c[v+X]=A&255},j=this.useRecords===!1?P:Z.progressiveRecords&&!z?(k)=>{let v,A=$.transitions||($.transitions=Object.create(null)),p=m++-X,n;for(let o in k)if(typeof k.hasOwnProperty!=="function"||k.hasOwnProperty(o)){if(v=A[o],v)A=v;else{let X0=Object.keys(k),Q0=A;A=$.transitions;let E0=0;for(let I0=0,a0=X0.length;I0<a0;I0++){let E8=X0[I0];if(v=A[E8],!v)v=A[E8]=Object.create(null),E0++;A=v}if(p+X+1==m)m--,x(A,X0,E0);else _(A,X0,p,E0);n=!0,A=Q0[o]}M(k[o])}if(!n){let o=A[P7];if(o)c[p+X]=o;else _(A,Object.keys(k),p,0)}}:(k)=>{let v,A=$.transitions||($.transitions=Object.create(null)),p=0;for(let o in k)if(typeof k.hasOwnProperty!=="function"||k.hasOwnProperty(o)){if(v=A[o],!v)v=A[o]=Object.create(null),p++;A=v}let n=A[P7];if(n)if(n>=96&&z)c[m++]=((n-=96)&31)+96,c[m++]=n>>5;else c[m++]=n;else x(A,A.__keys__||Object.keys(k),p);for(let o in k)if(typeof k.hasOwnProperty!=="function"||k.hasOwnProperty(o))M(k[o])},C=typeof this.useRecords=="function"&&this.useRecords,T=C?(k)=>{C(k)?j(k):P(k)}:j,E=(k)=>{let v;if(k>16777216){if(k-X>Z50)throw new Error("Packed buffer would be larger than maximum buffer size");v=Math.min(Z50,Math.round(Math.max((k-X)*(k>67108864?1.25:2),4194304)/4096)*4096)}else v=(Math.max(k-X<<2,c.length-1)>>12)+1<<12;let A=new Uw(v);if(y1=A.dataView||(A.dataView=new DataView(A.buffer,0,v)),k=Math.min(k,c.length),c.copy)c.copy(A,0,X,k);else A.set(c.slice(X,k));return m-=X,X=0,X5=A.length-10,c=A},x=(k,v,A)=>{let p=$.nextId;if(!p)p=64;if(p<q&&this.shouldShareStructure&&!this.shouldShareStructure(v)){if(p=$.nextOwnId,!(p<U))p=q;$.nextOwnId=p+1}else{if(p>=U)p=q;$.nextId=p+1}let n=v.highByte=p>=96&&z?p-96>>5:-1;if(k[P7]=p,k.__keys__=v,$[p-64]=v,p<q)if(v.isShared=!0,$.sharedLength=p-63,Y=!0,n>=0)c[m++]=(p&31)+96,c[m++]=n;else c[m++]=p;else{if(n>=0)c[m++]=213,c[m++]=114,c[m++]=(p&31)+96,c[m++]=n;else c[m++]=212,c[m++]=114,c[m++]=p;if(A)B+=w*A;if(L.length>=F)L.shift()[P7]=0;L.push(k),M(v)}},_=(k,v,A,p)=>{let n=c,o=m,X0=X5,Q0=X;if(c=TV,m=0,X=0,!c)TV=c=new Uw(8192);X5=c.length-10,x(k,v,p),TV=c;let E0=m;if(c=n,m=o,X5=X0,X=Q0,E0>1){let I0=m+E0-1;if(I0>X5)E(I0);let a0=A+X;c.copyWithin(a0+E0,a0+1,m),c.set(TV.slice(0,E0),a0),m=I0}else c[A+X]=TV[0]},h=(k)=>{let v=Q50(k,c,X,m,$,E,(A,p,n)=>{if(n)return Y=!0;m=p;let o=c;if(M(A),N(),o!==c)return{position:m,targetView:y1,target:c};return m},this);if(v===0)return T(k);m=v}}useBuffer(Z){c=Z,c.dataView||(c.dataView=new DataView(c.buffer,c.byteOffset,c.byteLength)),m=0}set position(Z){m=Z}get position(){return m}clearSharedData(){if(this.structures)this.structures=[];if(this.typedStructs)this.typedStructs=[]}}Y50=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,DataView,Fw];Yk=[{pack(Z,J,X){let Y=Z.getTime()/1000;if((this.useTimestamp32||Z.getMilliseconds()===0)&&Y>=0&&Y<4294967296){let{target:$,targetView:Q,position:K}=J(6);$[K++]=214,$[K++]=255,Q.setUint32(K,Y)}else if(Y>0&&Y<4294967296){let{target:$,targetView:Q,position:K}=J(10);$[K++]=215,$[K++]=255,Q.setUint32(K,Z.getMilliseconds()*4000000+(Y/1000/4294967296>>0)),Q.setUint32(K+4,Y)}else if(isNaN(Y)){if(this.onInvalidDate)return J(0),X(this.onInvalidDate());let{target:$,targetView:Q,position:K}=J(3);$[K++]=212,$[K++]=255,$[K++]=255}else{let{target:$,targetView:Q,position:K}=J(15);$[K++]=199,$[K++]=12,$[K++]=255,Q.setUint32(K,Z.getMilliseconds()*1e6),Q.setBigInt64(K+4,BigInt(Math.floor(Y)))}}},{pack(Z,J,X){if(this.setAsEmptyObject)return J(0),X({});let Y=Array.from(Z),{target:$,position:Q}=J(this.moreTypes?3:0);if(this.moreTypes)$[Q++]=212,$[Q++]=115,$[Q++]=0;X(Y)}},{pack(Z,J,X){let{target:Y,position:$}=J(this.moreTypes?3:0);if(this.moreTypes)Y[$++]=212,Y[$++]=101,Y[$++]=0;X([Z.name,Z.message,Z.cause])}},{pack(Z,J,X){let{target:Y,position:$}=J(this.moreTypes?3:0);if(this.moreTypes)Y[$++]=212,Y[$++]=120,Y[$++]=0;X([Z.source,Z.flags])}},{pack(Z,J){if(this.moreTypes)Jk(Z,16,J);else Xk(EV?Buffer.from(Z):new Uint8Array(Z),J)}},{pack(Z,J){let X=Z.constructor;if(X!==$50&&this.moreTypes)Jk(Z,Zk.indexOf(X.name),J);else Xk(Z,J)}},{pack(Z,J){if(this.moreTypes)Jk(Z,17,J);else Xk(EV?Buffer.from(Z):new Uint8Array(Z),J)}},{pack(Z,J){let{target:X,position:Y}=J(1);X[Y]=193}}];function Jk(Z,J,X,Y){let $=Z.byteLength;if($+1<256){var{target:Q,position:K}=X(4+$);Q[K++]=199,Q[K++]=$+1}else if($+1<65536){var{target:Q,position:K}=X(5+$);Q[K++]=200,Q[K++]=$+1>>8,Q[K++]=$+1&255}else{var{target:Q,position:K,targetView:W}=X(7+$);Q[K++]=201,W.setUint32(K,$+1),K+=4}if(Q[K++]=116,Q[K++]=J,!Z.buffer)Z=new Uint8Array(Z);Q.set(new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength),K)}function Xk(Z,J){let X=Z.byteLength;var Y,$;if(X<256){var{target:Y,position:$}=J(X+2);Y[$++]=196,Y[$++]=X}else if(X<65536){var{target:Y,position:$}=J(X+3);Y[$++]=197,Y[$++]=X>>8,Y[$++]=X&255}else{var{target:Y,position:$,targetView:Q}=J(X+5);Y[$++]=198,Q.setUint32($,X),$+=4}Y.set(Z,$)}function qh1(Z,J,X,Y){let $=Z.length;switch($){case 1:J[X++]=212;break;case 2:J[X++]=213;break;case 4:J[X++]=214;break;case 8:J[X++]=215;break;case 16:J[X++]=216;break;default:if($<256)J[X++]=199,J[X++]=$;else if($<65536)J[X++]=200,J[X++]=$>>8,J[X++]=$&255;else J[X++]=201,J[X++]=$>>24,J[X++]=$>>16&255,J[X++]=$>>8&255,J[X++]=$&255}return J[X++]=Y,J.set(Z,X),X+=$,X}function Uh1(Z,J){let X,Y=J.length*6,$=Z.length-Y;while(X=J.pop()){let{offset:Q,id:K}=X;Z.copyWithin(Q+Y,Q,$),Y-=6;let W=Q+Y;Z[W++]=214,Z[W++]=105,Z[W++]=K>>24,Z[W++]=K>>16&255,Z[W++]=K>>8&255,Z[W++]=K&255,$=Q}return Z}function J50(Z,J,X){if(r1.length>0){y1.setUint32(r1.position+Z,m+X-r1.position-Z),r1.stringsPosition=m-Z;let Y=r1;r1=null,J(Y[0]),J(Y[1])}}function K50(Z,J){return Z.isCompatible=(X)=>{let Y=!X||(J.lastNamedStructuresLength||0)===X.length;if(!Y)J._mergeStructures(X);return Y},Z}function W50(Z,J){Q50=Z,K50=J}var G50=new K$({useRecords:!1}),Lh1=G50.pack,Bh1=G50.pack;var wh1=512,Oh1=1024,Nh1=2048;var $k=3,sK=0,IV=2,Bw=1,Kk=16,V50=["num","object","string","ascii"];V50[Kk]="date";var Mh1=[!1,!0,!0,!1,!1,!0,!0,!1],z50;try{new Function(""),z50=!0}catch(Z){}var W$,jh1=typeof Buffer!=="undefined",ww,C7;try{ww=new TextEncoder}catch(Z){}var Dh1=jh1?function(Z,J,X){return Z.utf8Write(J,X,Z.byteLength-X)}:ww&&ww.encodeInto?function(Z,J,X){return ww.encodeInto(J,Z.subarray(X)).written}:!1,Df6=Symbol("type"),Pf6=Symbol("parent");W50(F50,Ih1);function F50(Z,J,X,Y,$,Q,K,W){let G=W.typedStructs||(W.typedStructs=[]),H=J.dataView,V=(G.lastStringStart||100)+Y,F=J.length-10,z=Y;if(Y>F)J=Q(Y),H=J.dataView,Y-=X,z-=X,V-=X,X=0,F=J.length-10;let q,U=V,L=G.transitions||(G.transitions=Object.create(null)),B=G.nextId||G.length,w=B<15?1:B<240?2:B<61440?3:B<15728640?4:0;if(w===0)return 0;Y+=w;let N=[],R,M=0;for(let j in Z){let C=Z[j],T=L[j];if(!T)L[j]=T={key:j,parent:L,enumerationOffset:0,ascii0:null,ascii8:null,num8:null,string16:null,object16:null,num32:null,float64:null,date64:null};if(Y>F)J=Q(Y),H=J.dataView,Y-=X,z-=X,V-=X,U-=X,X=0,F=J.length-10;switch(typeof C){case"number":let E=C;if(B<200||!T.num64){if(E>>0===E&&E<536870912&&E>-520093696){if(E<246&&E>=0&&(T.num8&&!(B>200&&T.num32)||E<32&&!T.num32))L=T.num8||A5(T,sK,1),J[Y++]=E;else L=T.num32||A5(T,sK,4),H.setUint32(Y,E,!0),Y+=4;break}else if(E<4294967296&&E>=-2147483648){if(H.setFloat32(Y,E,!0),Mh1[J[Y+3]>>>5]){let k;if((k=E*Q$[(J[Y+3]&127)<<1|J[Y+2]>>7])>>0===k){L=T.num32||A5(T,sK,4),Y+=4;break}}}}L=T.num64||A5(T,sK,8),H.setFloat64(Y,E,!0),Y+=8;break;case"string":let x=C.length;if(q=U-V,(x<<2)+U>F)J=Q((x<<2)+U),H=J.dataView,Y-=X,z-=X,V-=X,U-=X,X=0,F=J.length-10;if(x>65280+q>>2){N.push(j,C,Y-z);break}let _,h=U;if(x<64){let k,v,A;for(k=0;k<x;k++)if(v=C.charCodeAt(k),v<128)J[U++]=v;else if(v<2048)_=!0,J[U++]=v>>6|192,J[U++]=v&63|128;else if((v&64512)===55296&&((A=C.charCodeAt(k+1))&64512)===56320)_=!0,v=65536+((v&1023)<<10)+(A&1023),k++,J[U++]=v>>18|240,J[U++]=v>>12&63|128,J[U++]=v>>6&63|128,J[U++]=v&63|128;else _=!0,J[U++]=v>>12|224,J[U++]=v>>6&63|128,J[U++]=v&63|128}else U+=Dh1(J,C,U),_=U-h>x;if(q<160||q<246&&(T.ascii8||T.string8)){if(_){if(!(L=T.string8))if(G.length>10&&(L=T.ascii8))L.__type=IV,T.ascii8=null,T.string8=L,K(null,0,!0);else L=A5(T,IV,1)}else if(q===0&&!R){R=!0,L=T.ascii0||A5(T,$k,0);break}else if(!(L=T.ascii8)&&!(G.length>10&&(L=T.string8)))L=A5(T,$k,1);J[Y++]=q}else L=T.string16||A5(T,IV,2),H.setUint16(Y,q,!0),Y+=2;break;case"object":if(C){if(C.constructor===Date)L=T.date64||A5(T,Kk,8),H.setFloat64(Y,C.getTime(),!0),Y+=8;else N.push(j,C,M);break}else if(T=H50(T,Y,H,-10),T)L=T,Y=W$;else N.push(j,C,M);break;case"boolean":L=T.num8||T.ascii8||A5(T,sK,1),J[Y++]=C?249:248;break;case"undefined":if(T=H50(T,Y,H,-9),T)L=T,Y=W$;else N.push(j,C,M);break;default:N.push(j,C,M)}M++}for(let j=0,C=N.length;j<C;){let T=N[j++],E=N[j++],x=N[j++],_=L[T];if(!_)L[T]=_={key:T,parent:L,enumerationOffset:x-M,ascii0:null,ascii8:null,num8:null,string16:null,object16:null,num32:null,float64:null};let h;if(E){let k;if(q=U-V,q<65280)if(L=_.object16,L)k=2;else if(L=_.object32)k=4;else L=A5(_,Bw,2),k=2;else L=_.object32||A5(_,Bw,4),k=4;if(h=K(E,U),typeof h==="object")U=h.position,H=h.targetView,J=h.target,V-=X,Y-=X,z-=X,X=0;else U=h;if(k===2)H.setUint16(Y,q,!0),Y+=2;else H.setUint32(Y,q,!0),Y+=4}else L=_.object16||A5(_,Bw,2),H.setInt16(Y,E===null?-10:-9,!0),Y+=2;M++}let P=L[P7];if(P==null){P=W.typedStructs.length;let j=[],C=L,T,E;while((E=C.__type)!==void 0){let x=C.__size;C=C.__parent,T=C.key;let _=[E,x,T];if(C.enumerationOffset)_.push(C.enumerationOffset);j.push(_),C=C.parent}j.reverse(),L[P7]=P,W.typedStructs[P]=j,K(null,0,!0)}switch(w){case 1:if(P>=16)return 0;J[z]=P+32;break;case 2:if(P>=256)return 0;J[z]=56,J[z+1]=P;break;case 3:if(P>=65536)return 0;J[z]=57,H.setUint16(z+1,P,!0);break;case 4:if(P>=16777216)return 0;H.setUint32(z,(P<<8)+58,!0);break}if(Y<V){if(V===U)return Y;J.copyWithin(Y,V,U),U+=Y-V,G.lastStringStart=Y-z}else if(Y>V){if(V===U)return Y;return G.lastStringStart=Y-z,F50(Z,J,X,z,$,Q,K,W)}return U}function H50(Z,J,X,Y){let $;if($=Z.ascii8||Z.num8)return X.setInt8(J,Y,!0),W$=J+1,$;if($=Z.string16||Z.object16)return X.setInt16(J,Y,!0),W$=J+2,$;if($=Z.num32)return X.setUint32(J,3758096640+Y,!0),W$=J+4,$;if($=Z.num64)return X.setFloat64(J,NaN,!0),X.setInt8(J,Y),W$=J+8,$;W$=J;return}function A5(Z,J,X){let Y=V50[J]+(X<<3),$=Z[Y]||(Z[Y]=Object.create(null));return $.__type=J,$.__size=X,$.__parent=Z,$}function Ph1(Z){if(!(Z instanceof Map))return Z;let J=Z.get("typed")||[];if(Object.isFrozen(J))J=J.map(($)=>$.slice(0));let X=Z.get("named"),Y=Object.create(null);for(let $=0,Q=J.length;$<Q;$++){let K=J[$],W=Y;for(let[G,H,V]of K){let F=W[V];if(!F)W[V]=F={key:V,parent:W,enumerationOffset:0,ascii0:null,ascii8:null,num8:null,string16:null,object16:null,num32:null,float64:null,date64:null};W=A5(F,G,H)}W[P7]=$}return J.transitions=Y,this.typedStructs=J,this.lastTypedStructuresLength=J.length,X}var Qk=Symbol.for("source");function Ch1(Z,J,X,Y){let $=Z[J++]-32;if($>=24)switch($){case 24:$=Z[J++];break;case 25:$=Z[J++]+(Z[J++]<<8);break;case 26:$=Z[J++]+(Z[J++]<<8)+(Z[J++]<<16);break;case 27:$=Z[J++]+(Z[J++]<<8)+(Z[J++]<<16)+(Z[J++]<<24);break}let Q=Y.typedStructs&&Y.typedStructs[$];if(!Q){if(Z=Uint8Array.prototype.slice.call(Z,J,X),X-=J,J=0,!Y.getStructures)throw new Error(`Reference to shared structure ${$} without getStructures method`);if(Y._mergeStructures(Y.getStructures()),!Y.typedStructs)throw new Error("Could not find any shared typed structures");if(Y.lastTypedStructuresLength=Y.typedStructs.length,Q=Y.typedStructs[$],!Q)throw new Error("Could not find typed structure "+$)}var{construct:K,fullConstruct:W}=Q;if(!K){K=Q.construct=function q(){},W=Q.fullConstruct=function q(){},W.prototype=Y.structPrototype??{};var G=K.prototype=Y.structPrototype?Object.create(Y.structPrototype):{};let V=[],F=0,z;for(let q=0,U=Q.length;q<U;q++){let L=Q[q],[B,w,N,R]=L;if(N==="__proto__")N="__proto_";let M={key:N,offset:F};if(R)V.splice(q+R,0,M);else V.push(M);let P;switch(w){case 0:P=()=>0;break;case 1:P=(C,T)=>{let E=C.bytes[T+M.offset];return E>=246?aK(E):E};break;case 2:P=(C,T)=>{let E=C.bytes,_=(E.dataView||(E.dataView=new DataView(E.buffer,E.byteOffset,E.byteLength))).getUint16(T+M.offset,!0);return _>=65280?aK(_&255):_};break;case 4:P=(C,T)=>{let E=C.bytes,_=(E.dataView||(E.dataView=new DataView(E.buffer,E.byteOffset,E.byteLength))).getUint32(T+M.offset,!0);return _>=4294967040?aK(_&255):_};break}M.getRef=P,F+=w;let j;switch(B){case $k:if(z&&!z.next)z.next=M;z=M,M.multiGetCount=0,j=function(C){let{bytes:T,position:E}=C,x=F+E,_=P(C,E);if(typeof _!=="number")return _;let h,k=M.next;while(k){if(h=k.getRef(C,E),typeof h==="number")break;else h=null;k=k.next}if(h==null)h=C.bytesEnd-x;if(C.srcString)return C.srcString.slice(_,h);return a60(T,_+x,h-_)};break;case IV:case Bw:if(z&&!z.next)z.next=M;z=M,j=function(C){let T=C.position,E=F+T,x=P(C,T);if(typeof x!=="number")return x;let _=C.bytes,h,k=M.next;while(k){if(h=k.getRef(C,T),typeof h==="number")break;else h=null;k=k.next}if(h==null)h=C.bytesEnd-E;if(B===IV)return _.toString("utf8",x+E,h+E);else{C7=C;try{return Y.unpack(_,{start:x+E,end:h+E})}finally{C7=null}}};break;case sK:switch(w){case 4:j=function(C){let T=C.bytes,E=T.dataView||(T.dataView=new DataView(T.buffer,T.byteOffset,T.byteLength)),x=C.position+M.offset,_=E.getInt32(x,!0);if(_<536870912){if(_>-520093696)return _;if(_>-536870912)return aK(_&255)}let h=E.getFloat32(x,!0),k=Q$[(T[x+3]&127)<<1|T[x+2]>>7];return(k*h+(h>0?0.5:-0.5)>>0)/k};break;case 8:j=function(C){let T=C.bytes,x=(T.dataView||(T.dataView=new DataView(T.buffer,T.byteOffset,T.byteLength))).getFloat64(C.position+M.offset,!0);if(isNaN(x)){let _=T[C.position+M.offset];if(_>=246)return aK(_)}return x};break;case 1:j=function(C){let E=C.bytes[C.position+M.offset];return E<246?E:aK(E)};break}break;case Kk:j=function(C){let T=C.bytes,E=T.dataView||(T.dataView=new DataView(T.buffer,T.byteOffset,T.byteLength));return new Date(E.getFloat64(C.position+M.offset,!0))};break}M.get=j}if(z50){let q=[],U=[],L=0,B;for(let N of V){if(Y.alwaysLazyProperty&&Y.alwaysLazyProperty(N.key)){B=!0;continue}Object.defineProperty(G,N.key,{get:Th1(N.get),enumerable:!0});let R="v"+L++;U.push(R),q.push("o["+JSON.stringify(N.key)+"]="+R+"(s)")}if(B)q.push("__proto__:this");let w=new Function(...U,"var c=this;return function(s){var o=new c();"+q.join(";")+";return o;}").apply(W,V.map((N)=>N.get));Object.defineProperty(G,"toJSON",{value(N){return w.call(this,this[Qk])}})}else Object.defineProperty(G,"toJSON",{value(q){let U={};for(let L=0,B=V.length;L<B;L++){let w=V[L].key;U[w]=this[w]}return U}})}var H=new K;return H[Qk]={bytes:Z,position:J,srcString:"",bytesEnd:X},H}function aK(Z){switch(Z){case 246:return null;case 247:return;case 248:return!1;case 249:return!0}throw new Error("Unknown constant")}function Th1(Z){return function(){return Z(this[Qk])}}function Eh1(){if(C7)C7.bytes=Uint8Array.prototype.slice.call(C7.bytes,C7.position,C7.bytesEnd),C7.position=0,C7.bytesEnd=C7.bytes.length}function Ih1(Z,J){if(J.typedStructs){let Y=new Map;Y.set("named",Z),Y.set("typed",J.typedStructs),Z=Y}let X=J.lastTypedStructuresLength||0;return Z.isCompatible=(Y)=>{let $=!0;if(Y instanceof Map){if((Y.get("named")||[]).length!==(J.lastNamedStructuresLength||0))$=!1;if((Y.get("typed")||[]).length!==X)$=!1}else if(Y instanceof Array||Array.isArray(Y)){if(Y.length!==(J.lastNamedStructuresLength||0))$=!1}if(!$)J._mergeStructures(Y);return $},J.lastTypedStructuresLength=J.typedStructs&&J.typedStructs.length,Z}e60(Ch1,Ph1,Eh1);var _h1=process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED!==void 0&&process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED.toLowerCase()==="true";if(!_h1){let Z;try{if(Z=g("msgpackr-extract"),Z)n60(Z.extractStrings)}catch(J){}}import In1 from"mediasoup";var PO=r(iY0(),1);import Pn1 from"http";import Cn1 from"https";import DO from"fs";import Tn1 from"path";import En1 from"url";var nY0=`-----BEGIN CERTIFICATE-----
|
|
415
|
+
`))}}get isGatewayAvailable(){return!!this._creativeGateway}async getData(Z){if(!this._creativeGateway&&process.env.NODE_ENV==="production")return u.warning("PlatformGateway.getData(): You are running in production mode, but the Platform Gateway is not initialized! No data will be returned.");return this._creativeGateway?await this._creativeGateway.kv.get(Z):this._readDevDataLocally(Z)}async getPlayerLoadout(Z){if(!this._creativeGateway)return;return await this._creativeGateway.getLoadout(Z)}async getPlayerSession(Z){if(!this._creativeGateway)return;return await this._creativeGateway.getSession(Z)}async setData(Z,J){if(J.error)return u.warning("PlatformGateway.setData(): Cannot set data with an error property.");if(!this._creativeGateway&&process.env.NODE_ENV==="production")return u.warning("PlatformGateway.setData(): You are running in production mode, but the Platform Gateway is not initialized! No data will be set.");return this._creativeGateway?await this._creativeGateway.kv.set(Z,J):this._writeDevDataLocally(Z,J)}_readDevDataLocally(Z){try{if(!oY.existsSync(QV))return;let J=w10.join(QV,`${Z}.json`);return JSON.parse(oY.readFileSync(J,"utf8"))}catch(J){u.warning(`PlatformGateway._readDevDataLocally(): Failed to read data for key "${Z}": ${J}`)}}_writeDevDataLocally(Z,J){try{if(!oY.existsSync(QV))oY.mkdirSync(QV,{recursive:!0});let X=w10.join(QV,`${Z}.json`),Y={};if(oY.existsSync(X))Y=JSON.parse(oY.readFileSync(X,"utf8"));let $={...Y,...J};oY.writeFileSync(X,JSON.stringify($,null,2),"utf8")}catch(X){u.warning(`PlatformGateway._writeDevDataLocally(): Failed to write data for key "${Z}": ${X}`)}}}class rY{static instance=new rY;constructor(){}async getGlobalData(Z){let J=await M7.instance.getData(Z);if(!J||J.error){if(J?.error)u.warning(`PersistenceManager.getGlobalData(): ${J.error.message}`);return}return J}async getPlayerData(Z){let J=await M7.instance.getData(this._getPlayerKey(Z));if(!J||J.error){if(J?.error)u.warning(`PersistenceManager.getPlayerData(): ${J.error.message}`);return}return J}async setGlobalData(Z,J){let X=await M7.instance.setData(Z,J);if(!X||X.error){if(X?.error)u.warning(`PersistenceManager.setGlobalData(): ${X.error.message}`);return}return X}async setPlayerData(Z,J){let X=await M7.instance.setData(this._getPlayerKey(Z),J);if(!X||X.error){if(X?.error)u.warning(`PersistenceManager.setPlayerData(): ${X.error.message}`);return}return X}_getPlayerKey(Z){return`player-${Z.id}`}}var N10;((Y)=>{Y[Y.FIRST_PERSON=0]="FIRST_PERSON";Y[Y.THIRD_PERSON=1]="THIRD_PERSON";Y[Y.SPECTATOR=2]="SPECTATOR"})(N10||={});var wI;((L)=>{L.LOOK_AT_ENTITY="PLAYER_CAMERA.LOOK_AT_ENTITY";L.LOOK_AT_POSITION="PLAYER_CAMERA.LOOK_AT_POSITION";L.SET_ATTACHED_TO_ENTITY="PLAYER_CAMERA.SET_ATTACHED_TO_ENTITY";L.SET_ATTACHED_TO_POSITION="PLAYER_CAMERA.SET_ATTACHED_TO_POSITION";L.SET_FILM_OFFSET="PLAYER_CAMERA.SET_FILM_OFFSET";L.SET_FORWARD_OFFSET="PLAYER_CAMERA.SET_FORWARD_OFFSET";L.SET_FOV="PLAYER_CAMERA.SET_FOV";L.SET_MODEL_HIDDEN_NODES="PLAYER_CAMERA.SET_MODEL_HIDDEN_NODES";L.SET_MODEL_SHOWN_NODES="PLAYER_CAMERA.SET_MODEL_SHOWN_NODES";L.SET_MODE="PLAYER_CAMERA.SET_MODE";L.SET_OFFSET="PLAYER_CAMERA.SET_OFFSET";L.SET_SHOULDER_ANGLE="PLAYER_CAMERA.SET_SHOULDER_ANGLE";L.SET_TRACKED_ENTITY="PLAYER_CAMERA.SET_TRACKED_ENTITY";L.SET_TRACKED_POSITION="PLAYER_CAMERA.SET_TRACKED_POSITION";L.SET_ZOOM="PLAYER_CAMERA.SET_ZOOM"})(wI||={});class KV extends B0{player;_attachedToEntity;_attachedToPosition;_filmOffset=0;_forwardOffset=0;_fov=75;_modelHiddenNodes=new Set;_modelShownNodes=new Set;_mode=1;_offset={x:0,y:0,z:0};_orientation={pitch:0,yaw:0};_shoulderAngle=0;_trackedEntity;_trackedPosition;_zoom=1;constructor(Z){super();this.player=Z}get attachedToEntity(){return this._attachedToEntity}get attachedToPosition(){return this._attachedToPosition}get facingDirection(){return{x:-Math.sin(this._orientation.yaw)*Math.cos(this._orientation.pitch),y:Math.sin(this._orientation.pitch),z:-Math.cos(this._orientation.yaw)*Math.cos(this._orientation.pitch)}}get facingQuaternion(){let Z=this._orientation.pitch*0.5,J=this._orientation.yaw*0.5,X=Math.cos(Z),Y=Math.sin(Z),$=Math.cos(J),Q=Math.sin(J);return{x:Y*$,y:X*Q,z:-Y*Q,w:X*$}}get filmOffset(){return this._filmOffset}get forwardOffset(){return this._forwardOffset}get fov(){return this._fov}get modelHiddenNodes(){return this._modelHiddenNodes}get modelShownNodes(){return this._modelShownNodes}get mode(){return this._mode}get offset(){return this._offset}get orientation(){return this._orientation}get shoulderAngle(){return this._shoulderAngle}get trackedEntity(){return this._trackedEntity}get trackedPosition(){return this._trackedPosition}get zoom(){return this._zoom}lookAtEntity(Z){if(!this._requirePlayerWorld("lookAtEntity"))return;this.emitWithWorld(this.player.world,"PLAYER_CAMERA.LOOK_AT_ENTITY",{playerCamera:this,entity:Z})}lookAtPosition(Z){if(!this._requirePlayerWorld("lookAtPosition"))return;this.emitWithWorld(this.player.world,"PLAYER_CAMERA.LOOK_AT_POSITION",{playerCamera:this,position:Z})}reset(){this._attachedToEntity=void 0,this._attachedToPosition=void 0,this._orientation={pitch:0,yaw:0},this._trackedEntity=void 0,this._trackedPosition=void 0}setAttachedToEntity(Z){if(!this._requirePlayerWorld("setAttachedToEntity"))return;if(!Z.isSpawned)return u.error(`PlayerCamera.setAttachedToEntity(): Entity ${Z.id} is not spawned!`);this._attachedToEntity=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_ATTACHED_TO_ENTITY",{playerCamera:this,entity:Z})}setAttachedToPosition(Z){if(!this._requirePlayerWorld("setAttachedToPosition"))return;this._attachedToPosition=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_ATTACHED_TO_POSITION",{playerCamera:this,position:Z})}setFilmOffset(Z){if(!this._requirePlayerWorld("setFilmOffset"))return;this._filmOffset=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_FILM_OFFSET",{playerCamera:this,filmOffset:Z})}setForwardOffset(Z){if(!this._requirePlayerWorld("setForwardOffset"))return;this._forwardOffset=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_FORWARD_OFFSET",{playerCamera:this,forwardOffset:Z})}setFov(Z){if(!this._requirePlayerWorld("setFov"))return;this._fov=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_FOV",{playerCamera:this,fov:Z})}setModelHiddenNodes(Z){if(!this._requirePlayerWorld("setModelHiddenNodes"))return;this._modelHiddenNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_MODEL_HIDDEN_NODES",{playerCamera:this,modelHiddenNodes:this._modelHiddenNodes})}setModelShownNodes(Z){if(!this._requirePlayerWorld("setModelShownNodes"))return;this._modelShownNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_MODEL_SHOWN_NODES",{playerCamera:this,modelShownNodes:this._modelShownNodes})}setMode(Z){if(!this._requirePlayerWorld("setMode"))return;this._mode=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_MODE",{playerCamera:this,mode:Z})}setOffset(Z){if(!this._requirePlayerWorld("setOffset"))return;this._offset=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_OFFSET",{playerCamera:this,offset:Z})}setOrientationPitch(Z){this._orientation.pitch=Z}setOrientationYaw(Z){this._orientation.yaw=Z}setShoulderAngle(Z){if(!this._requirePlayerWorld("setShoulderAngle"))return;this._shoulderAngle=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_SHOULDER_ANGLE",{playerCamera:this,shoulderAngle:Z})}setTrackedEntity(Z){if(!this._requirePlayerWorld("setTrackedEntity"))return;this._trackedEntity=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_TRACKED_ENTITY",{playerCamera:this,entity:Z})}setTrackedPosition(Z){if(!this._requirePlayerWorld("setTrackedPosition"))return;this._trackedPosition=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_TRACKED_POSITION",{playerCamera:this,position:Z})}setZoom(Z){if(!this._requirePlayerWorld("setZoom"))return;this._zoom=Z,this.emitWithWorld(this.player.world,"PLAYER_CAMERA.SET_ZOOM",{playerCamera:this,zoom:Z})}serialize(){if(!this.player.world)u.fatalError("PlayerCamera.serialize(): PlayerCamera player is not in a world and cannot be serialized!");return N0.serializePlayerCamera(this,this.player.world.tickAllocator)}_requirePlayerWorld(Z){if(!this.player.world)u.error(`PlayerCamera._requirePlayerWorld(): Player ${this.player.id} is not in a world, invoked method: ${Z}()`);return!!this.player.world}}var i2;(($)=>{$.DATA="PLAYER_UI.DATA";$.LOAD="PLAYER_UI.LOAD";$.LOCK_POINTER="PLAYER_UI.LOCK_POINTER";$.SEND_DATA="PLAYER_UI.SEND_DATA"})(i2||={});class WV extends B0{player;constructor(Z){super();this.player=Z}load(Z){if(!this.player.world)return;this.emitWithWorld(this.player.world,"PLAYER_UI.LOAD",{playerUI:this,htmlUri:Z})}lockPointer(Z){if(!this.player.world)return;this.emitWithWorld(this.player.world,"PLAYER_UI.LOCK_POINTER",{playerUI:this,lock:Z})}sendData(Z){if(!this.player.world)return;this.emitWithWorld(this.player.world,"PLAYER_UI.SEND_DATA",{playerUI:this,data:Z})}}var R10=["w","a","s","d","sp","sh","tb","ml","mr","q","e","r","f","z","x","c","v","u","i","o","j","k","l","n","m","1","2","3","4","5","6","7","8","9","0"],GV;((Q)=>{Q.CHAT_MESSAGE_SEND="PLAYER.CHAT_MESSAGE_SEND";Q.JOINED_WORLD="PLAYER.JOINED_WORLD";Q.LEFT_WORLD="PLAYER.LEFT_WORLD";Q.RECONNECTED_WORLD="PLAYER.RECONNECTED_WORLD";Q.REQUEST_SYNC="PLAYER.REQUEST_SYNC"})(GV||={});class mK extends B0{static _devNextPlayerId=1;id;username;profilePictureUrl;camera;connection;ui;_input={};_lastUnreliableInputSequenceNumber=0;_persistedData;_world;_worldSwitched=!1;constructor(Z,J){super();this.id=J?.user.id??`player-${mK._devNextPlayerId++}`,this.username=J?.user.username??this.id,this.profilePictureUrl=J?.user.profilePictureURL??void 0,this.camera=new KV(this),this.connection=Z,this.ui=new WV(this),Z.onPacket(Z0.PacketId.CHAT_MESSAGE_SEND,this._onChatMessageSendPacket),Z.onPacket(Z0.PacketId.DEBUG_CONFIG,this._onDebugConfigPacket),Z.onPacket(Z0.PacketId.INPUT,this._onInputPacket),Z.onPacket(Z0.PacketId.SYNC_REQUEST,this._onSyncRequestPacket),Z.onPacket(Z0.PacketId.UI_DATA_SEND,this._onUIDataSendPacket)}get input(){return this._input}get world(){return this._world}disconnect(){this._leaveWorld(),this.connection.disconnect()}getPersistedData(){return this._persistedData}joinWorld(Z){if(this._world===Z)return;if(!this._world)this._world=Z,this.emitWithWorld(this._world,"PLAYER.JOINED_WORLD",{player:this,world:this._world});else{for(let J of this._world.entityManager.getPlayerEntitiesByPlayer(this))if(J.isSpawned)J.despawn();this.disconnect(),this._world=Z,this._worldSwitched=!0}}async loadInitialPersistedData(){if(this._persistedData)return;this._persistedData=await rY.instance.getPlayerData(this)??void 0}reconnected(){if(!this._world)return;if(this._lastUnreliableInputSequenceNumber=0,!this._worldSwitched)this.emitWithWorld(this._world,"PLAYER.RECONNECTED_WORLD",{player:this,world:this._world});else this._worldSwitched=!1,this.emitWithWorld(this._world,"PLAYER.JOINED_WORLD",{player:this,world:this._world})}resetInputs(){this._input={}}setPersistedData(Z){return this._persistedData={...this._persistedData,...Z},rY.instance.setPlayerData(this,Z).catch((J)=>{}),this._persistedData}serialize(){if(!this._world)u.fatalError("Player.serialize(): Player is not in a world and cannot be serialized!");return N0.serializePlayer(this,this._world.tickAllocator)}_leaveWorld(){if(!this._world)return;this.emitWithWorld(this._world,"PLAYER.LEFT_WORLD",{player:this,world:this._world}),this._world=void 0}_onChatMessageSendPacket=(Z)=>{if(this._world)this.emitWithWorld(this._world,"PLAYER.CHAT_MESSAGE_SEND",{player:this,message:Z[1].m})};_onDebugConfigPacket=(Z)=>{console.log(Z)};_onInputPacket=(Z)=>{let J=Z[1];if(J.sq!==void 0){if(J.sq<this._lastUnreliableInputSequenceNumber)return;this._lastUnreliableInputSequenceNumber=J.sq}if(R10.forEach((X)=>{let Y=X;if(J[Y]!==void 0)this._input[Y]=Boolean(J[Y])}),J.cp!==void 0)this.camera.setOrientationPitch(J.cp);if(J.cy!==void 0)this.camera.setOrientationYaw(J.cy)};_onSyncRequestPacket=()=>{if(this._world)this.emitWithWorld(this._world,"PLAYER.REQUEST_SYNC",{player:this,receivedAt:Date.now(),receivedAtMs:performance.now()})};_onUIDataSendPacket=(Z)=>{this.ui.emit("PLAYER_UI.DATA",{playerUI:this.ui,data:Z[1]})}}var OI;((X)=>{X.BROADCAST_MESSAGE="CHAT.BROADCAST_MESSAGE";X.PLAYER_MESSAGE="CHAT.PLAYER_MESSAGE"})(OI||={});class HV extends B0{_commandCallbacks={};_world;constructor(Z){super();this._world=Z,this._subscribeToPlayerEvents()}registerCommand(Z,J){this._commandCallbacks[Z]=J}unregisterCommand(Z){delete this._commandCallbacks[Z]}sendBroadcastMessage(Z,J){this._sendBroadcastMessage(void 0,Z,J)}sendPlayerMessage(Z,J,X){this.emitWithWorld(this._world,"CHAT.PLAYER_MESSAGE",{player:Z,message:J,color:X})}_subscribeToPlayerEvents(){this._world.on("PLAYER.CHAT_MESSAGE_SEND",(Z)=>{let{player:J,message:X}=Z,[Y,...$]=X.split(" "),Q=this._commandCallbacks[Y];if(Q){Q(J,$,X);return}this._sendBroadcastMessage(J,X)})}_sendBroadcastMessage(Z,J,X){this.emitWithWorld(this._world,"CHAT.BROADCAST_MESSAGE",{player:Z,message:J,color:X})}}var Z9=16,NI=Z9-1,GS1=Z9**3;class J9{_blocks;_chunkLattice;_originCoordinate;constructor(Z,J){this._blocks=new Uint8Array(GS1),this._chunkLattice=Z,this._originCoordinate=J}get blocks(){return this._blocks}get chunkLattice(){return this._chunkLattice}get originCoordinate(){return this._originCoordinate}static blockIndexToLocalCoordinate(Z){return{x:Z%Z9,y:(Z/Z9|0)%Z9,z:Z/(Z9*Z9)|0}}static globalCoordinateToLocalCoordinate(Z){return{x:Z.x&Z9-1,y:Z.y&Z9-1,z:Z.z&Z9-1}}static globalCoordinateToOriginCoordinate(Z){return{x:Z.x&~(Z9-1),y:Z.y&~(Z9-1),z:Z.z&~(Z9-1)}}getBlockId(Z){return this._blocks[this._getIndex(Z)]}hasBlock(Z){return this._blocks[this._getIndex(Z)]!==0}setBlock(Z,J){if(!this._isValidLocalCoordinate(Z))return u.error("Chunk.setBlock(): Block local coordinate is out of bounds");let X=this._getIndex(Z);this._blocks[X]=J}serialize(){return N0.serializeChunk(this,this._chunkLattice.world.tickAllocator)}_getIndex(Z){return Z.x+(Z.y<<4)+(Z.z<<8)}_isValidLocalCoordinate(Z){return Z.x>=0&&Z.x<=NI&&Z.y>=0&&Z.y<=NI&&Z.z>=0&&Z.z<=NI}}var RI;((X)=>{X.REMOVE_CHUNK="CHUNK_LATTICE.REMOVE_CHUNK";X.SET_BLOCK="CHUNK_LATTICE.SET_BLOCK"})(RI||={});class VV extends B0{_blockTypeColliders=new Map;_blockTypeCounts=new Map;_chunks=new Map;_rigidBody;_world;constructor(Z){super();this._world=Z}get chunkCount(){return this._chunks.size}get world(){return this._world}clear(){for(let Z of this._blockTypeColliders.values())this._world.simulation.colliderMap.removeColliderBlockType(Z),Z.removeFromSimulation();this._chunks.forEach((Z)=>{this.emitWithWorld(this._world,"CHUNK_LATTICE.REMOVE_CHUNK",{chunkLattice:this,chunk:Z})}),this._blockTypeColliders.clear(),this._blockTypeCounts.clear(),this._chunks.clear()}getBlockId(Z){let J=this.getChunk(J9.globalCoordinateToOriginCoordinate(Z));if(!J)return 0;return J.getBlockId(J9.globalCoordinateToLocalCoordinate(Z))}getBlockTypeCollider(Z){return this._blockTypeColliders.get(Z)}getBlockType(Z){let J=this.getBlockId(Z);return J?this._world.blockTypeRegistry.getBlockType(J):null}getBlockTypeCount(Z){return this._blockTypeCounts.get(Z)??0}getChunk(Z){return this._chunks.get(this._getChunkKey(J9.globalCoordinateToOriginCoordinate(Z)))}getOrCreateBlockTypeCollider(Z,J){let X=this._blockTypeColliders.get(Z);if(X)return X;let $=this._world.blockTypeRegistry.getBlockType(Z).createCollider(J);return this._blockTypeColliders.set(Z,$),$}getOrCreateChunk(Z){let J=J9.globalCoordinateToOriginCoordinate(Z),X=this._chunks.get(this._getChunkKey(J));if(X)return X;return X=new J9(this,J),this._chunks.set(this._getChunkKey(J),X),X}getAllChunks(Z=!1){return Z?this._world.tickAllocator.getArray(this._chunks.values()):Array.from(this._chunks.values())}hasBlock(Z){let J=this.getChunk(J9.globalCoordinateToOriginCoordinate(Z));if(!J)return!1;return J.hasBlock(J9.globalCoordinateToLocalCoordinate(Z))}hasChunk(Z){let J=J9.globalCoordinateToOriginCoordinate(Z);return this._chunks.has(this._getChunkKey(J))}setBlock(Z,J){let X=J9.globalCoordinateToLocalCoordinate(Z),Y=this.getOrCreateChunk(Z),$=Y.getBlockId(X);if($===J)return;if(Y.setBlock(X,J),!this._rigidBody)this._rigidBody=new cY({type:"fixed"}),this._rigidBody.addToSimulation(this._world.simulation);if($!==0){let Q=Math.max(0,(this._blockTypeCounts.get($)??0)-1),K=this.getBlockTypeCollider($);if(K)if(Q===0)this._world.simulation.colliderMap.removeColliderBlockType(K),K.removeFromSimulation(),this._blockTypeColliders.delete($);else K.setVoxel(Z,!1),this._propagateVoxelChange(K,Z);this._blockTypeCounts.set($,Q)}if(J!==0){let Q=(this._blockTypeCounts.get(J)??0)+1,K=this.getOrCreateBlockTypeCollider(J,[Z]);if(Q===1){let W=this._world.blockTypeRegistry.getBlockType(J);K.addToSimulation(this._world.simulation,this._rigidBody),this._world.simulation.colliderMap.setColliderBlockType(K,W),this._combineVoxelStates(K)}else K.setVoxel(Z,!0),this._propagateVoxelChange(K,Z);this._blockTypeCounts.set(J,Q)}this.emitWithWorld(this._world,"CHUNK_LATTICE.SET_BLOCK",{chunkLattice:this,chunk:Y,globalCoordinate:Z,localCoordinate:X,blockTypeId:J})}_combineVoxelStates(Z){if(Z.isSensor)return;for(let J of this._blockTypeColliders.values()){if(J===Z||J.isSensor)continue;Z.combineVoxelStates(J)}}_getChunkKey(Z){return`${Z.x},${Z.y},${Z.z}`}_propagateVoxelChange(Z,J){if(Z.isSensor)return;for(let X of this._blockTypeColliders.values()){if(X===Z||X.isSensor)continue;Z.propagateVoxelChange(X,J)}}}class zV{_colliderHandleBlockTypeMap=new Map;_colliderHandleCollisionCallbackMap=new Map;_colliderHandleEntityMap=new Map;_cleanupBlockTypeColliderHandles=new Set;_pendingCleanupBlockTypeColliderHandles=new Set;_cleanupCollisionCallbackColliderHandles=new Set;_pendingCleanupCollisionCallbackColliderHandles=new Set;_cleanupEntityColliderHandles=new Set;_pendingCleanupEntityColliderHandles=new Set;getColliderBlockType(Z){if(!this._requireSimulatedCollider(Z))return;return this._colliderHandleBlockTypeMap.get(Z.rawCollider.handle)}getColliderCollisionCallback(Z){if(!this._requireSimulatedCollider(Z))return;return this._colliderHandleCollisionCallbackMap.get(Z.rawCollider.handle)}getColliderEntity(Z){if(!this._requireSimulatedCollider(Z))return;return this._colliderHandleEntityMap.get(Z.rawCollider.handle)}getColliderHandleBlockType(Z){return this._colliderHandleBlockTypeMap.get(Z)}getColliderHandleCollisionCallback(Z){return this._colliderHandleCollisionCallbackMap.get(Z)}getColliderHandleEntity(Z){return this._colliderHandleEntityMap.get(Z)}removeColliderBlockType(Z){if(!this._requireSimulatedCollider(Z))return;this.removeColliderHandleBlockType(Z.rawCollider.handle)}removeColliderCollisionCallback(Z){if(!this._requireSimulatedCollider(Z))return;this.removeColliderHandleCollisionCallback(Z.rawCollider.handle)}removeColliderEntity(Z){if(!this._requireSimulatedCollider(Z))return;this.removeColliderHandleEntity(Z.rawCollider.handle)}removeColliderHandleBlockType(Z){this._colliderHandleBlockTypeMap.delete(Z)}removeColliderHandleCollisionCallback(Z){this._colliderHandleCollisionCallbackMap.delete(Z)}removeColliderHandleEntity(Z){this._colliderHandleEntityMap.delete(Z)}setColliderBlockType(Z,J){if(!this._requireSimulatedCollider(Z))return;this.setColliderHandleBlockType(Z.rawCollider.handle,J)}setColliderCollisionCallback(Z,J){if(!this._requireSimulatedCollider(Z))return;this.setColliderHandleCollisionCallback(Z.rawCollider.handle,J)}setColliderEntity(Z,J){if(!this._requireSimulatedCollider(Z))return;this.setColliderHandleEntity(Z.rawCollider.handle,J)}setColliderHandleBlockType(Z,J){this._colliderHandleBlockTypeMap.set(Z,J),this._cleanupBlockTypeColliderHandles.delete(Z),this._pendingCleanupBlockTypeColliderHandles.delete(Z)}setColliderHandleCollisionCallback(Z,J){this._colliderHandleCollisionCallbackMap.set(Z,J),this._cleanupCollisionCallbackColliderHandles.delete(Z),this._pendingCleanupCollisionCallbackColliderHandles.delete(Z)}setColliderHandleEntity(Z,J){this._colliderHandleEntityMap.set(Z,J),this._cleanupEntityColliderHandles.delete(Z),this._pendingCleanupEntityColliderHandles.delete(Z)}queueColliderHandleForCleanup(Z){if(this._colliderHandleBlockTypeMap.has(Z))this._pendingCleanupBlockTypeColliderHandles.add(Z);if(this._colliderHandleCollisionCallbackMap.has(Z))this._pendingCleanupCollisionCallbackColliderHandles.add(Z);if(this._colliderHandleEntityMap.has(Z))this._pendingCleanupEntityColliderHandles.add(Z)}cleanup(){for(let Z of this._cleanupBlockTypeColliderHandles)this._colliderHandleBlockTypeMap.delete(Z);if(this._cleanupBlockTypeColliderHandles.size>0)this._cleanupBlockTypeColliderHandles.clear();for(let Z of this._cleanupCollisionCallbackColliderHandles)this._colliderHandleCollisionCallbackMap.delete(Z);if(this._cleanupCollisionCallbackColliderHandles.size>0)this._cleanupCollisionCallbackColliderHandles.clear();for(let Z of this._cleanupEntityColliderHandles)this._colliderHandleEntityMap.delete(Z);if(this._cleanupEntityColliderHandles.size>0)this._cleanupEntityColliderHandles.clear();for(let Z of this._pendingCleanupBlockTypeColliderHandles)this._cleanupBlockTypeColliderHandles.add(Z);if(this._pendingCleanupBlockTypeColliderHandles.size>0)this._pendingCleanupBlockTypeColliderHandles.clear();for(let Z of this._pendingCleanupCollisionCallbackColliderHandles)this._cleanupCollisionCallbackColliderHandles.add(Z);if(this._pendingCleanupCollisionCallbackColliderHandles.size>0)this._pendingCleanupCollisionCallbackColliderHandles.clear();for(let Z of this._pendingCleanupEntityColliderHandles)this._cleanupEntityColliderHandles.add(Z);if(this._pendingCleanupEntityColliderHandles.size>0)this._pendingCleanupEntityColliderHandles.clear()}_requireSimulatedCollider(Z){if(!Z.rawCollider)u.error("ColliderMap._requireSimulatedCollider(): Collider is not in the simulation.");return!!Z.rawCollider}}var M10={type:"dynamic",softCcdPrediction:1},j10=0.015625,D10=Math.cos(0.026),FV;((M)=>{M.BLOCK_COLLISION="ENTITY.BLOCK_COLLISION";M.BLOCK_CONTACT_FORCE="ENTITY.BLOCK_CONTACT_FORCE";M.DESPAWN="ENTITY.DESPAWN";M.ENTITY_COLLISION="ENTITY.ENTITY_COLLISION";M.ENTITY_CONTACT_FORCE="ENTITY.ENTITY_CONTACT_FORCE";M.SET_MODEL_ANIMATIONS_PLAYBACK_RATE="ENTITY.SET_MODEL_ANIMATIONS_PLAYBACK_RATE";M.SET_MODEL_HIDDEN_NODES="ENTITY.SET_MODEL_HIDDEN_NODES";M.SET_MODEL_SCALE="ENTITY.SET_MODEL_SCALE";M.SET_MODEL_SHOWN_NODES="ENTITY.SET_MODEL_SHOWN_NODES";M.SET_MODEL_TEXTURE_URI="ENTITY.SET_MODEL_TEXTURE_URI";M.SET_OPACITY="ENTITY.SET_OPACITY";M.SET_PARENT="ENTITY.SET_PARENT";M.SET_TINT_COLOR="ENTITY.SET_TINT_COLOR";M.SPAWN="ENTITY.SPAWN";M.START_MODEL_LOOPED_ANIMATIONS="ENTITY.START_MODEL_LOOPED_ANIMATIONS";M.START_MODEL_ONESHOT_ANIMATIONS="ENTITY.START_MODEL_ONESHOT_ANIMATIONS";M.STOP_MODEL_ANIMATIONS="ENTITY.STOP_MODEL_ANIMATIONS";M.TICK="ENTITY.TICK";M.UPDATE_POSITION="ENTITY.UPDATE_POSITION";M.UPDATE_ROTATION="ENTITY.UPDATE_ROTATION"})(FV||={});class d8 extends cY{_id;_blockHalfExtents;_blockTextureUri;_controller;_isEnvironmental=!1;_modelAnimationsPlaybackRate=1;_modelHiddenNodes=new Set;_modelLoopedAnimations=new Set;_modelOneshotAnimations=new Set;_modelPreferredShape;_modelScale=1;_modelShownNodes=new Set;_modelTextureUri;_modelUri;_name;_opacity;_parent;_parentNodeName;_tag;_tintColor;_lastUpdatedPosition={x:0,y:0,z:0};_lastUpdatedRotation={x:0,y:0,z:0,w:1};_lastParentlessType="dynamic";_world;_positionUpdateThresholdSq;_rotationUpdateThreshold;constructor(Z){let J="blockTextureUri"in Z,X="modelUri"in Z;if(!J===!X)u.fatalError("Entity.constructor(): Entity data must include a blockTextureUri or modelUri, but not both.");if(J&&!Z.blockHalfExtents)u.fatalError("Entity.constructor(): Block entity must have blockHalfExtents!");if(Z.parent&&!Z.parent.isSpawned)u.fatalError("Entity.constructor(): Parent entity must be spawned before child entity!");if(Z.parent?.modelUri&&Z.parentNodeName&&!T5.instance.modelHasNode(Z.parent.modelUri,Z.parentNodeName))u.fatalError(`Entity.constructor(): Parent node name ${Z.parentNodeName} not found in parent model ${Z.parent.modelUri}!`);super(Z.rigidBodyOptions??M10);if(J)this._blockHalfExtents=Z.blockHalfExtents,this._blockTextureUri=Z.blockTextureUri;if(X)this._modelAnimationsPlaybackRate=Z.modelAnimationsPlaybackRate??1,this._modelPreferredShape=Z.modelPreferredShape,this._modelScale=Z.modelScale??1,this._modelTextureUri=Z.modelTextureUri,this._modelUri=Z.modelUri,Z.modelHiddenNodes?.forEach((Y)=>this._modelHiddenNodes.add(Y.toLowerCase())),Z.modelLoopedAnimations?.forEach((Y)=>this._modelLoopedAnimations.add(Y)),Z.modelShownNodes?.forEach((Y)=>this._modelShownNodes.add(Y.toLowerCase()));if(this._isEnvironmental=Z.isEnvironmental??!1,this._name=Z.name??"Nameless",this._opacity=Z.opacity??1,this._parent=Z.parent,this._parentNodeName=Z.parentNodeName,this._tag=Z.tag,this._tintColor=Z.tintColor,this._positionUpdateThresholdSq=j10,this._rotationUpdateThreshold=D10,Z.controller)this.setController(Z.controller)}get id(){return this._id}get blockHalfExtents(){return this._blockHalfExtents}get blockTextureUri(){return this._blockTextureUri}get controller(){return this._controller}get depth(){return this.isModelEntity?T5.instance.getDepth(this._modelUri)*(this._modelScale??1):this._blockHalfExtents.z*2}get height(){return this.isModelEntity?T5.instance.getHeight(this._modelUri)*(this._modelScale??1):this._blockHalfExtents.y*2}get modelAnimationsPlaybackRate(){return this._modelAnimationsPlaybackRate}get modelHiddenNodes(){return this._modelHiddenNodes}get modelLoopedAnimations(){return this._modelLoopedAnimations}get modelPreferredShape(){return this._modelPreferredShape}get modelScale(){return this._modelScale}get modelShownNodes(){return this._modelShownNodes}get modelTextureUri(){return this._modelTextureUri}get modelUri(){return this._modelUri}get name(){return this._name}get opacity(){return this._opacity}get parent(){return this._parent}get parentNodeName(){return this._parentNodeName}get tag(){return this._tag}get tintColor(){return this._tintColor}get isBlockEntity(){return!!this._blockTextureUri}get isEnvironmental(){return this._isEnvironmental}get isModelEntity(){return!!this._modelUri}get isSpawned(){return!!this._world}get width(){return this.isModelEntity?T5.instance.getWidth(this._modelUri)*(this._modelScale??1):this._blockHalfExtents.x*2}get world(){return this._world}spawn(Z,J,X){if(this.isSpawned)return u.error(`Entity.spawn(): Entity ${this._name} is already spawned with id ${this._id}!`);if(this.isEnvironmental)this.setType("fixed");if(!this.isSimulated)this.addToSimulation(Z.simulation);if(this._blockTextureUri&&this._blockHalfExtents&&this.numColliders===0)this.addChildColliderToSimulation(new t5(t5.optionsFromBlockHalfExtents(this._blockHalfExtents)));if(this._modelUri&&this.numColliders===0&&this._modelPreferredShape!=="none")this.addChildColliderToSimulation(new t5(t5.optionsFromModelUri(this._modelUri,this._modelScale,this._modelPreferredShape)));if(this.colliders.forEach((Y)=>{if(this.hasListeners("ENTITY.BLOCK_COLLISION")||this.hasListeners("ENTITY.ENTITY_COLLISION"))Y.enableCollisionEvents(!0);if(this.hasListeners("ENTITY.BLOCK_CONTACT_FORCE")||this.hasListeners("ENTITY.ENTITY_CONTACT_FORCE"))Y.enableContactForceEvents(!0);if(F4.isDefaultCollisionGroups(Y.collisionGroups))Y.setCollisionGroups({belongsTo:[Y.isSensor?4:2],collidesWith:[65535]})}),this.setPosition(J),X)this.setRotation(X);if(this._id=Z.entityManager.registerEntity(this),this._world=Z,this._controller)this._controller.spawn(this);if(this._parent)this.setParent(this._parent,this._parentNodeName,J,X);this.colliders.forEach((Y)=>{Z.simulation.colliderMap.setColliderEntity(Y,this)}),this.emitWithWorld(Z,"ENTITY.SPAWN",{entity:this})}despawn(){if(!this._requireSpawned("despawn"))return;if(this._world.entityManager.getEntityChildren(this).forEach((Z)=>{Z.despawn()}),this._controller)this._controller.detach(this),this._controller.despawn(this);if(this.emitWithWorld(this._world,"ENTITY.DESPAWN",{entity:this}),this.isSimulated)this.removeFromSimulation();this._world.entityManager.unregisterEntity(this),this._world.audioManager.unregisterEntityAttachedAudios(this),this._world.lightManager.despawnEntityAttachedLights(this),this._world.particleEmitterManager.despawnEntityAttachedParticleEmitters(this),this._world.sceneUIManager.unloadEntityAttachedSceneUIs(this),this._id=void 0,this._world=void 0}setController(Z){if(this._controller===Z)return;if(this._controller)this._controller.detach(this);if(this._controller=Z,this._controller)this._controller.attach(this)}setModelAnimationsPlaybackRate(Z){if(!this._requireSpawned("setModelAnimationsPlaybackRate"))return;if(!this.isModelEntity||this._modelAnimationsPlaybackRate===Z)return;this._modelAnimationsPlaybackRate=Z,this.emitWithWorld(this._world,"ENTITY.SET_MODEL_ANIMATIONS_PLAYBACK_RATE",{entity:this,playbackRate:Z})}setModelHiddenNodes(Z){if(!this._requireSpawned("setModelHiddenNodes"))return;if(!this.isModelEntity)return;this._modelHiddenNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this._world,"ENTITY.SET_MODEL_HIDDEN_NODES",{entity:this,modelHiddenNodes:this._modelHiddenNodes})}setModelScale(Z){if(!this._requireSpawned("setModelScale"))return;if(!this.isModelEntity||this._modelScale===Z)return;let J=Z/this._modelScale;this._modelScale=Z,this.colliders.forEach((X)=>X.scale(J)),this.emitWithWorld(this._world,"ENTITY.SET_MODEL_SCALE",{entity:this,modelScale:Z})}setModelShownNodes(Z){if(!this._requireSpawned("setModelShownNodes"))return;if(!this.isModelEntity)return;this._modelShownNodes=new Set(Z.map((J)=>J.toLowerCase())),this.emitWithWorld(this._world,"ENTITY.SET_MODEL_SHOWN_NODES",{entity:this,modelShownNodes:this._modelShownNodes})}setModelTextureUri(Z){if(!this._requireSpawned("setModelTextureUri"))return;if(!this.isModelEntity||this._modelTextureUri===Z)return;this._modelTextureUri=Z,this.emitWithWorld(this._world,"ENTITY.SET_MODEL_TEXTURE_URI",{entity:this,modelTextureUri:Z})}setOpacity(Z){if(!this._requireSpawned("setOpacity"))return;if(this._opacity===Z)return;this._opacity=Z,this.emitWithWorld(this._world,"ENTITY.SET_OPACITY",{entity:this,opacity:Z})}setParent(Z,J,X,Y){if(!this._requireSpawned("setParent"))return;if(Z&&!Z.isSpawned)return u.error("Entity.setParent(): Parent entity is not spawned, cannot set parent!");if(!this._parent&&Z)this._lastParentlessType=this.type;if(this._parent=Z,this._parentNodeName=J,this.colliders.forEach(($)=>$.setEnabled(!Z)),this.setType(!Z?this._lastParentlessType:"kinematic_velocity"),this.setPosition(X??{x:0,y:0,z:0}),this.setRotation(Y??{x:0,y:0,z:0,w:1}),!this.isKinematicPositionBased)this.resetAngularVelocity(),this.resetForces(),this.resetLinearVelocity(),this.resetTorques();this.emitWithWorld(this._world,"ENTITY.SET_PARENT",{entity:this,parent:Z,parentNodeName:J})}setTintColor(Z){if(!this._requireSpawned("setTintColor"))return;if(!Z&&!this._tintColor||Z&&this._tintColor&&Z.r===this._tintColor.r&&Z.g===this._tintColor.g&&Z.b===this._tintColor.b)return;this._tintColor=Z,this.emitWithWorld(this._world,"ENTITY.SET_TINT_COLOR",{entity:this,tintColor:Z})}startModelLoopedAnimations(Z){if(!this._requireSpawned("startModelLoopedAnimations"))return;if(!this.isModelEntity||!Z.length)return;if(!Z.some((J)=>!this._modelLoopedAnimations.has(J)))return;Z.forEach((J)=>{this._modelLoopedAnimations.add(J)}),this.emitWithWorld(this._world,"ENTITY.START_MODEL_LOOPED_ANIMATIONS",{entity:this,animations:new Set(Z)})}startModelOneshotAnimations(Z){if(!this._requireSpawned("startModelOneshotAnimations"))return;if(!this.isModelEntity||!Z.length)return;Z.forEach((J)=>{this._modelOneshotAnimations.add(J)}),this.emitWithWorld(this._world,"ENTITY.START_MODEL_ONESHOT_ANIMATIONS",{entity:this,animations:new Set(Z)})}stopAllModelAnimations(Z=[]){if(!this._requireSpawned("stopAllModelAnimations"))return;this._stopAnimationsFromSets([this._modelLoopedAnimations,this._modelOneshotAnimations],Z)}stopAllModelLoopedAnimations(Z=[]){if(!this._requireSpawned("stopAllModelLoopedAnimations"))return;this._stopAnimationsFromSets([this._modelLoopedAnimations],Z)}stopAllModelOneshotAnimations(Z=[]){if(!this._requireSpawned("stopAllModelOneshotAnimations"))return;this._stopAnimationsFromSets([this._modelOneshotAnimations],Z)}stopModelAnimations(Z){if(!this._requireSpawned("stopModelAnimations"))return;if(!this.isModelEntity||!Z.length)return;if(!Z.some((J)=>this._modelLoopedAnimations.has(J))&&!Z.some((J)=>this._modelOneshotAnimations.has(J)))return;Z.forEach((J)=>{this._modelLoopedAnimations.delete(J),this._modelOneshotAnimations.delete(J)}),this.emitWithWorld(this._world,"ENTITY.STOP_MODEL_ANIMATIONS",{entity:this,animations:new Set(Z)})}serialize(){if(!this._world)u.fatalError("Entity.serialize(): Entity is not in a world and cannot be serialized!");return N0.serializeEntity(this,this._world.tickAllocator)}tick(Z){if(this.emit("ENTITY.TICK",{entity:this,tickDeltaMs:Z}),this._controller)this._controller.tick(this,Z)}checkAndEmitUpdates(){if(!this._requireSpawned("checkAndEmitUpdates"))return;let Z=this.position,J=this.rotation;if(this._rotationExceedsThreshold(J,this._lastUpdatedRotation)){this._lastUpdatedRotation=J;let X=this._world.tickAllocator.getObject();X.entity=this,X.rotation=J,this.emitWithWorld(this._world,"ENTITY.UPDATE_ROTATION",X)}if(this._positionExceedsThreshold(Z,this._lastUpdatedPosition)){this._lastUpdatedPosition=Z;let X=this._world.tickAllocator.getObject();X.entity=this,X.position=Z,this.emitWithWorld(this._world,"ENTITY.UPDATE_POSITION",X)}}_positionExceedsThreshold(Z,J){let X=Z.x-J.x,Y=Z.y-J.y,$=Z.z-J.z;return X*X+Y*Y+$*$>this._positionUpdateThresholdSq}_requireSpawned(Z){if(!this.isSpawned)u.error(`Entity._requireSpawned(): Entity ${this._name} is not spawned, cannot invoke ${Z}()!`);return this.isSpawned}_rotationExceedsThreshold(Z,J){return Math.abs(Z.x*J.x+Z.y*J.y+Z.z*J.z+Z.w*J.w)<this._rotationUpdateThreshold}_stopAnimationsFromSets(Z,J=[]){if(!this.isModelEntity)return;let X=new Set(J),Y=[];for(let $ of Z)for(let Q of $)if(!X.has(Q))Y.push(Q);if(Y.length>0)this.stopModelAnimations(Y)}}class f1 extends XY{static BASE_ENTITY_HEIGHT=1.5;static GROUND_SENSOR_HEIGHT_SCALE=0.125;static GROUND_SENSOR_RADIUS_SCALE=0.23;static JUMP_LAND_HEAVY_VELOCITY_THRESHOLD=-12;static WALL_COLLIDER_HEIGHT_SCALE=0.33;static WALL_COLLIDER_RADIUS_SCALE=0.4;static MOVEMENT_ROTATIONS={wa:Math.PI/4,wd:-Math.PI/4,sa:Math.PI-Math.PI/4,sd:Math.PI+Math.PI/4,s:Math.PI,asd:Math.PI,a:Math.PI/2,d:-Math.PI/2};static EXTERNAL_IMPULSE_DECAY_RATE=0.253;static SWIM_UPWARD_COOLDOWN_MS=600;static SWIMMING_DRAG_FACTOR=0.05;static WATER_ENTRY_SINKING_FACTOR=0.8;static WATER_ENTRY_SINKING_MS=250;applyDirectionalMovementRotations=!0;autoCancelMouseLeftClick=!0;canJump=()=>!0;canRun=()=>!0;canSwim=()=>!0;canWalk=()=>!0;faceForwardOnStop=!0;idleLoopedAnimations=["idle-upper","idle-lower"];interactOneshotAnimations=["simple-interact"];jumpLandHeavyOneshotAnimations=["jump-post-heavy"];jumpLandLightOneshotAnimations=["jump-post-light"];jumpOneshotAnimations=["jump-loop"];jumpVelocity=10;runLoopedAnimations=["run-upper","run-lower"];runVelocity=8;sticksToPlatforms=!0;swimFastVelocity=5;swimGravity=0;swimIdleLoopedAnimations=["swim-idle"];swimLoopedAnimations=["swim-forward"];swimMaxGravityVelocity=-1;swimSlowVelocity=3;swimUpwardVelocity=2;walkLoopedAnimations=["walk-upper","walk-lower"];walkVelocity=4;_externalVelocity={x:0,y:0,z:0};_magnitudeYTracker=0;_groundContactCount=0;_internalApplyImpulse=()=>{};_isActivelyMoving=!1;_isFullySubmerged=!1;_justSubmergedUntil=0;_liquidContactCount=0;_platform;_reusableImpulse={x:0,y:0,z:0};_reusablePlatformVelocity={x:0,y:0,z:0};_reusableTargetVelocities={x:0,y:0,z:0};_reusableVelocityClamp={x:0,y:0,z:0};_stepAudio;_swimUpwardCooldownAt=0;constructor(Z={}){super();this.applyDirectionalMovementRotations=Z.applyDirectionalMovementRotations??this.applyDirectionalMovementRotations,this.autoCancelMouseLeftClick=Z.autoCancelMouseLeftClick??this.autoCancelMouseLeftClick,this.faceForwardOnStop=Z.faceForwardOnStop??this.faceForwardOnStop,this.sticksToPlatforms=Z.sticksToPlatforms??this.sticksToPlatforms,this.canJump=Z.canJump??this.canJump,this.canRun=Z.canRun??this.canRun,this.canSwim=Z.canSwim??this.canSwim,this.canWalk=Z.canWalk??this.canWalk,this.jumpVelocity=Z.jumpVelocity??this.jumpVelocity,this.runVelocity=Z.runVelocity??this.runVelocity,this.walkVelocity=Z.walkVelocity??this.walkVelocity,this.swimFastVelocity=Z.swimFastVelocity??this.swimFastVelocity,this.swimSlowVelocity=Z.swimSlowVelocity??this.swimSlowVelocity,this.swimUpwardVelocity=Z.swimUpwardVelocity??this.swimUpwardVelocity,this.swimGravity=Z.swimGravity??this.swimGravity,this.swimMaxGravityVelocity=Z.swimMaxGravityVelocity??this.swimMaxGravityVelocity,this.idleLoopedAnimations=Z.idleLoopedAnimations??this.idleLoopedAnimations,this.interactOneshotAnimations=Z.interactOneshotAnimations??this.interactOneshotAnimations,this.jumpOneshotAnimations=Z.jumpOneshotAnimations??this.jumpOneshotAnimations,this.jumpLandHeavyOneshotAnimations=Z.jumpLandHeavyOneshotAnimations??this.jumpLandHeavyOneshotAnimations,this.jumpLandLightOneshotAnimations=Z.jumpLandLightOneshotAnimations??this.jumpLandLightOneshotAnimations,this.runLoopedAnimations=Z.runLoopedAnimations??this.runLoopedAnimations,this.swimLoopedAnimations=Z.swimLoopedAnimations??this.swimLoopedAnimations,this.swimIdleLoopedAnimations=Z.swimIdleLoopedAnimations??this.swimIdleLoopedAnimations,this.walkLoopedAnimations=Z.walkLoopedAnimations??this.walkLoopedAnimations}get isActivelyMoving(){return this._isActivelyMoving}get isGrounded(){return this._groundContactCount>0}get isOnPlatform(){return!!this._platform}get isSwimming(){return this._liquidContactCount>0}get platform(){return this._platform}attach(Z){super.attach(Z),this._internalApplyImpulse=Z.applyImpulse.bind(Z),Z.applyImpulse=(J)=>{let X=Z.mass||1;this._externalVelocity.x+=J.x/X,this._externalVelocity.y+=J.y/X,this._externalVelocity.z+=J.z/X},this._stepAudio=new bG({uri:"audio/sfx/step/stone/stone-step-04.mp3",loop:!0,volume:0.1,referenceDistance:2,cutoffDistance:15,attachedToEntity:Z}),Z.setCcdEnabled(!0),Z.lockAllRotations(),Z.on("ENTITY.BLOCK_COLLISION",({blockType:J,started:X})=>{if(!J.isLiquid||!this.canSwim(this))return;if(this._liquidContactCount<=0&&X){let Y=Z.linearVelocity;Z.setLinearVelocity({x:Y.x*this.swimGravity,y:Y.y*this.swimGravity,z:Y.z*this.swimGravity})}if(this._liquidContactCount+=X?1:-1,this._liquidContactCount>0)Z.setGravityScale(this.swimGravity),Z.stopAllModelLoopedAnimations(this.swimLoopedAnimations),this._swimUpwardCooldownAt=performance.now()+f1.SWIM_UPWARD_COOLDOWN_MS;else Z.setGravityScale(1),Z.stopModelAnimations(this.swimLoopedAnimations)})}spawn(Z){if(!Z.isSpawned)return u.error("DefaultPlayerEntityController.spawn(): Entity is not spawned!");Z.createAndAddChildCollider({shape:"cylinder",radius:f1.GROUND_SENSOR_RADIUS_SCALE*(Z.height/f1.BASE_ENTITY_HEIGHT),halfHeight:f1.GROUND_SENSOR_HEIGHT_SCALE*(Z.height/f1.BASE_ENTITY_HEIGHT),collisionGroups:{belongsTo:[4],collidesWith:[1,2]},isSensor:!0,relativePosition:{x:0,y:-Z.height/2,z:0},tag:"groundSensor",onCollision:(J,X)=>{if(!Z.isSpawned)return;if(!(J instanceof e5)||!J.isLiquid){if(X&&this._groundContactCount===0&&Z.linearVelocity.y<-1)if(Z.linearVelocity.y<f1.JUMP_LAND_HEAVY_VELOCITY_THRESHOLD)Z.startModelOneshotAnimations(this.jumpLandHeavyOneshotAnimations);else Z.startModelOneshotAnimations(this.jumpLandLightOneshotAnimations);this._groundContactCount+=X?1:-1}if(!this._groundContactCount&&!this.isSwimming)Z.startModelOneshotAnimations(this.jumpOneshotAnimations);else Z.stopModelAnimations(this.jumpOneshotAnimations);if(!(J instanceof d8))return;if(X&&this.sticksToPlatforms)this._platform=J;else if(J===this._platform&&!X)this._platform=void 0}}),Z.createAndAddChildCollider({shape:"capsule",halfHeight:f1.WALL_COLLIDER_HEIGHT_SCALE*(Z.height/f1.BASE_ENTITY_HEIGHT),radius:f1.WALL_COLLIDER_RADIUS_SCALE*(Z.height/f1.BASE_ENTITY_HEIGHT),collisionGroups:{belongsTo:[4],collidesWith:[1,2]},friction:0,frictionCombineRule:1,tag:"wallCollider"})}tickWithPlayerInput(Z,J,X,Y){if(!Z.isSpawned||!Z.world)return;if(super.tickWithPlayerInput(Z,J,X,Y),Z.parent)return;let{w:$,a:Q,s:K,d:W,c:G,sp:H,sh:V,ml:F}=J,{yaw:z}=X,q=Z.linearVelocity;this._reusableTargetVelocities.x=0,this._reusableTargetVelocities.y=0,this._reusableTargetVelocities.z=0,this._isActivelyMoving=!!($||Q||K||W);let U=V,L=Q&&W&&!$&&!K||$&&K&&!Q&&!W,B=U&&this.canRun(this)||!U&&this.canWalk(this);if(this.isSwimming&&!this._isFullySubmerged)this._isFullySubmerged=!0,this._justSubmergedUntil=performance.now()+f1.WATER_ENTRY_SINKING_MS;else if(!this.isSwimming)this._isFullySubmerged=!1,this._justSubmergedUntil=0;if(this.isGrounded&&!this.isSwimming&&this._isActivelyMoving&&!L&&B){let j=U?this.runLoopedAnimations:this.walkLoopedAnimations;Z.stopAllModelLoopedAnimations(j),Z.startModelLoopedAnimations(j),this._stepAudio?.setPlaybackRate(U?0.75:0.51),this._stepAudio?.play(Z.world,!this._stepAudio?.isPlaying)}else if(this._isFullySubmerged&&this.canSwim(this))if(this._stepAudio?.pause(),this._isActivelyMoving)Z.stopAllModelLoopedAnimations(this.swimLoopedAnimations),Z.startModelLoopedAnimations(this.swimLoopedAnimations);else Z.stopAllModelLoopedAnimations(this.swimIdleLoopedAnimations),Z.startModelLoopedAnimations(this.swimIdleLoopedAnimations);else this._stepAudio?.pause(),Z.stopAllModelLoopedAnimations(this.idleLoopedAnimations),Z.startModelLoopedAnimations(this.idleLoopedAnimations);let w;if(this.applyDirectionalMovementRotations&&B){if($&&Q&&!W&&!K)w=f1.MOVEMENT_ROTATIONS.wa;else if($&&W&&!Q&&!K)w=f1.MOVEMENT_ROTATIONS.wd;else if(K&&Q&&!$&&!W)w=f1.MOVEMENT_ROTATIONS.sa;else if(K&&W&&!$&&!Q)w=f1.MOVEMENT_ROTATIONS.sd;else if(K&&!$&&!Q&&!W||Q&&K&&W&&!$)w=f1.MOVEMENT_ROTATIONS.s;else if(Q&&!$&&!K&&!W)w=f1.MOVEMENT_ROTATIONS.a;else if(W&&!$&&!Q&&!K)w=f1.MOVEMENT_ROTATIONS.d}if(F)Z.startModelOneshotAnimations(this.interactOneshotAnimations),J.ml=!this.autoCancelMouseLeftClick;if(B){let j=!this.isSwimming?U?this.runVelocity:this.walkVelocity:U?this.swimFastVelocity:this.swimSlowVelocity,C=Math.sin(z),T=Math.cos(z);if($)this._reusableTargetVelocities.x-=j*C,this._reusableTargetVelocities.z-=j*T;if(K)this._reusableTargetVelocities.x+=j*C,this._reusableTargetVelocities.z+=j*T;if(Q)this._reusableTargetVelocities.x-=j*T,this._reusableTargetVelocities.z+=j*C;if(W)this._reusableTargetVelocities.x+=j*T,this._reusableTargetVelocities.z-=j*C;let E=Math.sqrt(this._reusableTargetVelocities.x*this._reusableTargetVelocities.x+this._reusableTargetVelocities.z*this._reusableTargetVelocities.z);if(E>j){let x=j/E;this._reusableTargetVelocities.x*=x,this._reusableTargetVelocities.z*=x}}if(this.isSwimming){if(q.y<this.swimMaxGravityVelocity)this._reusableVelocityClamp.x=q.x,this._reusableVelocityClamp.y=this.swimMaxGravityVelocity,this._reusableVelocityClamp.z=q.z,Z.setLinearVelocity(this._reusableVelocityClamp);if(q.y>this.swimUpwardVelocity*2)this._reusableVelocityClamp.x=q.x,this._reusableVelocityClamp.y=this.swimUpwardVelocity*2,this._reusableVelocityClamp.z=q.z,Z.setLinearVelocity(this._reusableVelocityClamp);if(G)this._reusableTargetVelocities.y=-this.swimUpwardVelocity;else if(performance.now()<this._justSubmergedUntil)this._reusableTargetVelocities.y=-this.swimUpwardVelocity*f1.WATER_ENTRY_SINKING_FACTOR;else if(!H)this._reusableTargetVelocities.y=-q.y*f1.SWIMMING_DRAG_FACTOR}if(H&&this.canJump(this)){if(this.isGrounded&&!this.isSwimming&&q.y>-0.001&&q.y<=3)this._reusableTargetVelocities.y=this.jumpVelocity;else if(this.isSwimming&&performance.now()>this._swimUpwardCooldownAt)this._reusableTargetVelocities.y=this.swimUpwardVelocity}let N=this._platform?.linearVelocity??this._reusablePlatformVelocity;if(this._externalVelocity.y!==0)this._magnitudeYTracker+=this._externalVelocity.y;if(this._externalVelocity.x!==0||this._externalVelocity.y!==0||this._externalVelocity.z!==0){if(this.isGrounded){let j=Math.sqrt(this._externalVelocity.x*this._externalVelocity.x+this._magnitudeYTracker*this._magnitudeYTracker+this._externalVelocity.z*this._externalVelocity.z);if(j>0.01){let T=Math.max(0,j-f1.EXTERNAL_IMPULSE_DECAY_RATE)/j;this._externalVelocity.x*=T,this._magnitudeYTracker*=T,this._externalVelocity.z*=T}else this._externalVelocity.x=0,this._externalVelocity.y=0,this._magnitudeYTracker=0,this._externalVelocity.z=0}}let R=this._reusableTargetVelocities.x+this._externalVelocity.x-q.x+N.x,M=this._reusableTargetVelocities.y+this._externalVelocity.y+N.y,P=this._reusableTargetVelocities.z+this._externalVelocity.z-q.z+N.z;if(this._externalVelocity.y=0,R!==0||M!==0||P!==0){let j=Z.mass;this._reusableImpulse.x=R*j,this._reusableImpulse.y=M*j,this._reusableImpulse.z=P*j,this._internalApplyImpulse(this._reusableImpulse)}if(z!==void 0&&(this.faceForwardOnStop||this.isActivelyMoving)){let C=(w!==void 0?z+w:z)*0.5;Z.setRotation({x:0,y:Math.sin(C),z:0,w:Math.cos(C)})}}}var MI;((W)=>{W.LOAD="SCENE_UI.LOAD";W.SET_ATTACHED_TO_ENTITY="SCENE_UI.SET_ATTACHED_TO_ENTITY";W.SET_OFFSET="SCENE_UI.SET_OFFSET";W.SET_POSITION="SCENE_UI.SET_POSITION";W.SET_STATE="SCENE_UI.SET_STATE";W.SET_VIEW_DISTANCE="SCENE_UI.SET_VIEW_DISTANCE";W.UNLOAD="SCENE_UI.UNLOAD"})(MI||={});class qV extends B0{_id;_attachedToEntity;_offset;_position;_state={};_templateId;_viewDistance;_world;constructor(Z){if(!!Z.attachedToEntity===!!Z.position)u.fatalError("Either attachedToEntity or position must be set, but not both");super();this._attachedToEntity=Z.attachedToEntity,this._offset=Z.offset,this._position=Z.position,this._state=Z.state??{},this._templateId=Z.templateId,this._viewDistance=Z.viewDistance}get id(){return this._id}get attachedToEntity(){return this._attachedToEntity}get isLoaded(){return this._id!==void 0}get offset(){return this._offset}get position(){return this._position}get state(){return this._state}get templateId(){return this._templateId}get viewDistance(){return this._viewDistance}get world(){return this._world}load(Z){if(this.isLoaded)return;if(this._attachedToEntity&&!this._attachedToEntity.isSpawned)return u.error(`SceneUI.load(): Attached entity ${this._attachedToEntity.id} must be spawned before loading SceneUI!`);this._id=Z.sceneUIManager.registerSceneUI(this),this._world=Z,this.emitWithWorld(Z,"SCENE_UI.LOAD",{sceneUI:this})}setAttachedToEntity(Z){if(!Z.isSpawned)return u.error(`SceneUI.setAttachedToEntity(): Entity ${Z.id} is not spawned!`);if(this._attachedToEntity===Z)return;if(this._attachedToEntity=Z,this._position=void 0,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_ATTACHED_TO_ENTITY",{sceneUI:this,entity:Z})}setOffset(Z){if(this._offset===Z)return;if(this._offset=Z,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_OFFSET",{sceneUI:this,offset:Z})}setPosition(Z){if(this._position===Z)return;if(this._attachedToEntity=void 0,this._position=Z,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_POSITION",{sceneUI:this,position:Z})}setState(Z){if(this._state={...this._state,...Z},this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_STATE",{sceneUI:this,state:this._state})}setViewDistance(Z){if(this._viewDistance=Z,this.isLoaded)this.emitWithWorld(this._world,"SCENE_UI.SET_VIEW_DISTANCE",{sceneUI:this,viewDistance:Z})}unload(){if(!this.isLoaded||!this._world)return;this._world.sceneUIManager.unregisterSceneUI(this),this.emitWithWorld(this._world,"SCENE_UI.UNLOAD",{sceneUI:this}),this._id=void 0,this._world=void 0}serialize(){if(!this._world)u.fatalError("SceneUI.serialize(): SceneUI is not in a world and cannot be serialized!");return N0.serializeSceneUI(this,this._world.tickAllocator)}}var P10=0.010000000000000002,C10=Math.cos(0.026);class j7 extends d8{player;nametagSceneUI;constructor(Z){super(Z);this._positionUpdateThresholdSq=P10,this._rotationUpdateThreshold=C10,this.player=Z.player,this.nametagSceneUI=new qV({templateId:"hytopia:nametag",attachedToEntity:this,offset:{x:0,y:1,z:0},viewDistance:15,state:{username:this.player.username,profilePictureUrl:this.player.profilePictureUrl}})}spawn(Z,J,X){super.spawn(Z,J,X),this.nametagSceneUI.load(Z),this.player.on("PLAYER.CHAT_MESSAGE_SEND",({message:Y})=>{this.nametagSceneUI.setState({chat:Y})})}tick(Z){if(!this.isSpawned||!this.world)return;if(!this.controller)return u.error(`PlayerEntity.tick(): PlayerEntity "${this.name}" must have a controller.`);let{input:J,camera:X}=this.player;this.controller.tickWithPlayerInput(this,J,X.orientation,Z),super.tick(Z)}}class jI extends j7{constructor(Z){super({modelUri:"models/players/player.gltf",modelLoopedAnimations:["idle_lower","idle_upper"],modelHiddenNodes:["hair-"],modelShownNodes:["hair-0003"],...Z});if(!Z.controller)this.setController(new f1)}}class UV{_activeEntities=new Set;_entities=new Map;_nextEntityId=1;_world;constructor(Z){this._world=Z}get entityCount(){return this._entities.size}get world(){return this._world}registerEntity(Z){if(Z.id!==void 0)u.fatalError(`EntityManager.registerEntity(): Entity ${Z.name} is already assigned the id ${Z.id}!`);let J=this._nextEntityId;if(this._entities.set(J,Z),this._nextEntityId++,!Z.isEnvironmental)this._activeEntities.add(Z);return J}unregisterEntity(Z){if(Z.id===void 0)return u.error(`EntityManager.unregisterEntity(): Entity ${Z.name} is not assigned an id!`);if(this._entities.delete(Z.id),!Z.isEnvironmental)this._activeEntities.delete(Z)}getAllEntities(Z=!1){return Z?this._world.tickAllocator.getArray(this._entities.values()):Array.from(this._entities.values())}getAllPlayerEntities(){let Z=[];return this._entities.forEach((J)=>{if(J instanceof j7)Z.push(J)}),Z}getPlayerEntitiesByPlayer(Z){let J=[];return this._entities.forEach((X)=>{if(X instanceof j7&&X.player===Z)J.push(X)}),J}getEntity(Z){return this._entities.get(Z)}getEntitiesByTag(Z){let J=[];return this._entities.forEach((X)=>{if(X.tag===Z)J.push(X)}),J}getEntitiesByTagSubstring(Z){let J=[];return this._entities.forEach((X)=>{if(X.tag?.includes(Z))J.push(X)}),J}getEntityChildren(Z){let J=[];return this._entities.forEach((X)=>{if(X.parent===Z)J.push(X)}),J}tickEntities(Z){for(let J of this._activeEntities)J.tick(Z)}checkAndEmitUpdates(){for(let Z of this._activeEntities)Z.checkAndEmitUpdates()}}var qK1=r(M3(),1);var TA1=r(R80(),1),EA1=r(II(),1),IA1=r(vI(),1),yI=r(Yw(),1),bI=r(E80(),1);var J5=r(_60(),1),Zf6=J5.default.v1,Jf6=J5.default.v1ToV6,Xf6=J5.default.v3,S60=J5.default.v4,Yf6=J5.default.v5,$f6=J5.default.v6,Qf6=J5.default.v6ToV1,Kf6=J5.default.v7,Wf6=J5.default.NIL,Gf6=J5.default.MAX,Hf6=J5.default.version,Vf6=J5.default.validate,zf6=J5.default.stringify,Ff6=J5.default.parse;var iI;try{iI=new TextDecoder}catch(Z){}var e,$9,b=0;var oI=[],Y$=oI,CV=0,v1={},X1,xZ,Y9=0,f9=0,c8,hZ,S5=[],t0,A60={useRecords:!1,mapsAsObjects:!0};class Fw{}var rI=new Fw;rI.name="MessagePack 0xC1";var eJ=!1,u60=2,nI,aI,sI;try{new Function("")}catch(Z){u60=1/0}class fZ{constructor(Z){if(Z){if(Z.useRecords===!1&&Z.mapsAsObjects===void 0)Z.mapsAsObjects=!0;if(Z.sequential&&Z.trusted!==!1){if(Z.trusted=!0,!Z.structures&&Z.useRecords!=!1){if(Z.structures=[],!Z.maxSharedStructures)Z.maxSharedStructures=0}}if(Z.structures)Z.structures.sharedLength=Z.structures.length;else if(Z.getStructures)(Z.structures=[]).uninitialized=!0,Z.structures.sharedLength=0;if(Z.int64AsNumber)Z.int64AsType="number"}Object.assign(this,Z)}unpack(Z,J){if(e)return t60(()=>{return zw(),this?this.unpack(Z,J):fZ.prototype.unpack.call(A60,Z,J)});if(!Z.buffer&&Z.constructor===ArrayBuffer)Z=typeof Buffer!=="undefined"?Buffer.from(Z):new Uint8Array(Z);if(typeof J==="object")$9=J.end||Z.length,b=J.start||0;else b=0,$9=J>-1?J:Z.length;CV=0,f9=0,xZ=null,Y$=oI,c8=null,e=Z;try{t0=Z.dataView||(Z.dataView=new DataView(Z.buffer,Z.byteOffset,Z.byteLength))}catch(X){if(e=null,Z instanceof Uint8Array)throw X;throw new Error("Source must be a Uint8Array or Buffer but was a "+(Z&&typeof Z=="object"?Z.constructor.name:typeof Z))}if(this instanceof fZ){if(v1=this,this.structures)return X1=this.structures,Hw(J);else if(!X1||X1.length>0)X1=[]}else if(v1=A60,!X1||X1.length>0)X1=[];return Hw(J)}unpackMultiple(Z,J){let X,Y=0;try{eJ=!0;let $=Z.length,Q=this?this.unpack(Z,$):qw.unpack(Z,$);if(J){if(J(Q,Y,b)===!1)return;while(b<$)if(Y=b,J(Hw(),Y,b)===!1)return}else{X=[Q];while(b<$)Y=b,X.push(Hw());return X}}catch($){throw $.lastPosition=Y,$.values=X,$}finally{eJ=!1,zw()}}_mergeStructures(Z,J){if(aI)Z=aI.call(this,Z);if(Z=Z||[],Object.isFrozen(Z))Z=Z.map((X)=>X.slice(0));for(let X=0,Y=Z.length;X<Y;X++){let $=Z[X];if($){if($.isShared=!0,X>=32)$.highByte=X-32>>5}}Z.sharedLength=Z.length;for(let X in J||[])if(X>=0){let Y=Z[X],$=J[X];if($){if(Y)(Z.restoreStructures||(Z.restoreStructures=[]))[X]=Y;Z[X]=$}}return this.structures=Z}decode(Z,J){return this.unpack(Z,J)}}function Hw(Z){try{if(!v1.trusted&&!eJ){let X=X1.sharedLength||0;if(X<X1.length)X1.length=X}let J;if(v1.randomAccessStructure&&e[b]<64&&e[b]>=32&&nI){if(J=nI(e,b,$9,v1),e=null,!(Z&&Z.lazy)&&J)J=J.toJSON();b=$9}else J=j8();if(c8)b=c8.postBundlePosition,c8=null;if(eJ)X1.restoreStructures=null;if(b==$9){if(X1&&X1.restoreStructures)x60();if(X1=null,e=null,hZ)hZ=null}else if(b>$9)throw new Error("Unexpected end of MessagePack data");else if(!eJ){let X;try{X=JSON.stringify(J,(Y,$)=>typeof $==="bigint"?`${$}n`:$).slice(0,100)}catch(Y){X="(JSON view not available "+Y+")"}throw new Error("Data read, but end of buffer not reached "+X)}return J}catch(J){if(X1&&X1.restoreStructures)x60();if(zw(),J instanceof RangeError||J.message.startsWith("Unexpected end of buffer")||b>$9)J.incomplete=!0;throw J}}function x60(){for(let Z in X1.restoreStructures)X1[Z]=X1.restoreStructures[Z];X1.restoreStructures=null}function j8(){let Z=e[b++];if(Z<160)if(Z<128)if(Z<64)return Z;else{let J=X1[Z&63]||v1.getStructures&&d60()[Z&63];if(J){if(!J.read)J.read=tI(J,Z&63);return J.read()}else return Z}else if(Z<144)if(Z-=128,v1.mapsAsObjects){let J={};for(let X=0;X<Z;X++){let Y=o60();if(Y==="__proto__")Y="__proto_";J[Y]=j8()}return J}else{let J=new Map;for(let X=0;X<Z;X++)J.set(j8(),j8());return J}else{Z-=144;let J=new Array(Z);for(let X=0;X<Z;X++)J[X]=j8();if(v1.freezeData)return Object.freeze(J);return J}else if(Z<192){let J=Z-160;if(f9>=b)return xZ.slice(b-Y9,(b+=J)-Y9);if(f9==0&&$9<140){let X=J<16?eI(J):s60(J);if(X!=null)return X}return Vw(J)}else{let J;switch(Z){case 192:return null;case 193:if(c8)if(J=j8(),J>0)return c8[1].slice(c8.position1,c8.position1+=J);else return c8[0].slice(c8.position0,c8.position0-=J);return rI;case 194:return!1;case 195:return!0;case 196:if(J=e[b++],J===void 0)throw new Error("Unexpected end of buffer");return pI(J);case 197:return J=t0.getUint16(b),b+=2,pI(J);case 198:return J=t0.getUint32(b),b+=4,pI(J);case 199:return X$(e[b++]);case 200:return J=t0.getUint16(b),b+=2,X$(J);case 201:return J=t0.getUint32(b),b+=4,X$(J);case 202:if(J=t0.getFloat32(b),v1.useFloat32>2){let X=Q$[(e[b]&127)<<1|e[b+1]>>7];return b+=4,(X*J+(J>0?0.5:-0.5)>>0)/X}return b+=4,J;case 203:return J=t0.getFloat64(b),b+=8,J;case 204:return e[b++];case 205:return J=t0.getUint16(b),b+=2,J;case 206:return J=t0.getUint32(b),b+=4,J;case 207:if(v1.int64AsType==="number")J=t0.getUint32(b)*4294967296,J+=t0.getUint32(b+4);else if(v1.int64AsType==="string")J=t0.getBigUint64(b).toString();else if(v1.int64AsType==="auto"){if(J=t0.getBigUint64(b),J<=BigInt(2)<<BigInt(52))J=Number(J)}else J=t0.getBigUint64(b);return b+=8,J;case 208:return t0.getInt8(b++);case 209:return J=t0.getInt16(b),b+=2,J;case 210:return J=t0.getInt32(b),b+=4,J;case 211:if(v1.int64AsType==="number")J=t0.getInt32(b)*4294967296,J+=t0.getUint32(b+4);else if(v1.int64AsType==="string")J=t0.getBigInt64(b).toString();else if(v1.int64AsType==="auto"){if(J=t0.getBigInt64(b),J>=BigInt(-2)<<BigInt(52)&&J<=BigInt(2)<<BigInt(52))J=Number(J)}else J=t0.getBigInt64(b);return b+=8,J;case 212:if(J=e[b++],J==114)return m60(e[b++]&63);else{let X=S5[J];if(X)if(X.read)return b++,X.read(j8());else if(X.noBuffer)return b++,X();else return X(e.subarray(b,++b));else throw new Error("Unknown extension "+J)}case 213:if(J=e[b],J==114)return b++,m60(e[b++]&63,e[b++]);else return X$(2);case 214:return X$(4);case 215:return X$(8);case 216:return X$(16);case 217:if(J=e[b++],f9>=b)return xZ.slice(b-Y9,(b+=J)-Y9);return c60(J);case 218:if(J=t0.getUint16(b),b+=2,f9>=b)return xZ.slice(b-Y9,(b+=J)-Y9);return l60(J);case 219:if(J=t0.getUint32(b),b+=4,f9>=b)return xZ.slice(b-Y9,(b+=J)-Y9);return p60(J);case 220:return J=t0.getUint16(b),b+=2,f60(J);case 221:return J=t0.getUint32(b),b+=4,f60(J);case 222:return J=t0.getUint16(b),b+=2,y60(J);case 223:return J=t0.getUint32(b),b+=4,y60(J);default:if(Z>=224)return Z-256;if(Z===void 0){let X=new Error("Unexpected end of MessagePack data");throw X.incomplete=!0,X}throw new Error("Unknown MessagePack token "+Z)}}}var Yh1=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function tI(Z,J){function X(){if(X.count++>u60){let $=Z.read=new Function("r","return function(){return "+(v1.freezeData?"Object.freeze":"")+"({"+Z.map((Q)=>Q==="__proto__"?"__proto_:r()":Yh1.test(Q)?Q+":r()":"["+JSON.stringify(Q)+"]:r()").join(",")+"})}")(j8);if(Z.highByte===0)Z.read=h60(J,Z.read);return $()}let Y={};for(let $=0,Q=Z.length;$<Q;$++){let K=Z[$];if(K==="__proto__")K="__proto_";Y[K]=j8()}if(v1.freezeData)return Object.freeze(Y);return Y}if(X.count=0,Z.highByte===0)return h60(J,X);return X}var h60=(Z,J)=>{return function(){let X=e[b++];if(X===0)return J();let Y=Z<32?-(Z+(X<<5)):Z+(X<<5),$=X1[Y]||d60()[Y];if(!$)throw new Error("Record id is not defined for "+Y);if(!$.read)$.read=tI($,Z);return $.read()}};function d60(){let Z=t60(()=>{return e=null,v1.getStructures()});return X1=v1._mergeStructures(Z,X1)}var Vw=$$,c60=$$,l60=$$,p60=$$,i60=!1;function n60(Z){i60=!0,Vw=J(1),c60=J(2),l60=J(3),p60=J(5);function J(X){return function Y($){let Q=Y$[CV++];if(Q==null){if(c8)return $$($);let W=e.byteOffset,G=Z(b-X+W,$9+W,e.buffer);if(typeof G=="string")Q=G,Y$=oI;else if(Y$=G,CV=1,f9=1,Q=Y$[0],Q===void 0)throw new Error("Unexpected end of buffer")}let K=Q.length;if(K<=$)return b+=$,Q;return xZ=Q,Y9=b,f9=b+K,b+=$,Q.slice(0,$)}}}function $$(Z){let J;if(Z<16){if(J=eI(Z))return J}if(Z>64&&iI)return iI.decode(e.subarray(b,b+=Z));let X=b+Z,Y=[];J="";while(b<X){let $=e[b++];if(($&128)===0)Y.push($);else if(($&224)===192){let Q=e[b++]&63;Y.push(($&31)<<6|Q)}else if(($&240)===224){let Q=e[b++]&63,K=e[b++]&63;Y.push(($&31)<<12|Q<<6|K)}else if(($&248)===240){let Q=e[b++]&63,K=e[b++]&63,W=e[b++]&63,G=($&7)<<18|Q<<12|K<<6|W;if(G>65535)G-=65536,Y.push(G>>>10&1023|55296),G=56320|G&1023;Y.push(G)}else Y.push($);if(Y.length>=4096)J+=J6.apply(String,Y),Y.length=0}if(Y.length>0)J+=J6.apply(String,Y);return J}function a60(Z,J,X){let Y=e;e=Z,b=J;try{return $$(X)}finally{e=Y}}function f60(Z){let J=new Array(Z);for(let X=0;X<Z;X++)J[X]=j8();if(v1.freezeData)return Object.freeze(J);return J}function y60(Z){if(v1.mapsAsObjects){let J={};for(let X=0;X<Z;X++){let Y=o60();if(Y==="__proto__")Y="__proto_";J[Y]=j8()}return J}else{let J=new Map;for(let X=0;X<Z;X++)J.set(j8(),j8());return J}}var J6=String.fromCharCode;function s60(Z){let J=b,X=new Array(Z);for(let Y=0;Y<Z;Y++){let $=e[b++];if(($&128)>0){b=J;return}X[Y]=$}return J6.apply(String,X)}function eI(Z){if(Z<4)if(Z<2)if(Z===0)return"";else{let J=e[b++];if((J&128)>1){b-=1;return}return J6(J)}else{let J=e[b++],X=e[b++];if((J&128)>0||(X&128)>0){b-=2;return}if(Z<3)return J6(J,X);let Y=e[b++];if((Y&128)>0){b-=3;return}return J6(J,X,Y)}else{let J=e[b++],X=e[b++],Y=e[b++],$=e[b++];if((J&128)>0||(X&128)>0||(Y&128)>0||($&128)>0){b-=4;return}if(Z<6)if(Z===4)return J6(J,X,Y,$);else{let Q=e[b++];if((Q&128)>0){b-=5;return}return J6(J,X,Y,$,Q)}else if(Z<8){let Q=e[b++],K=e[b++];if((Q&128)>0||(K&128)>0){b-=6;return}if(Z<7)return J6(J,X,Y,$,Q,K);let W=e[b++];if((W&128)>0){b-=7;return}return J6(J,X,Y,$,Q,K,W)}else{let Q=e[b++],K=e[b++],W=e[b++],G=e[b++];if((Q&128)>0||(K&128)>0||(W&128)>0||(G&128)>0){b-=8;return}if(Z<10)if(Z===8)return J6(J,X,Y,$,Q,K,W,G);else{let H=e[b++];if((H&128)>0){b-=9;return}return J6(J,X,Y,$,Q,K,W,G,H)}else if(Z<12){let H=e[b++],V=e[b++];if((H&128)>0||(V&128)>0){b-=10;return}if(Z<11)return J6(J,X,Y,$,Q,K,W,G,H,V);let F=e[b++];if((F&128)>0){b-=11;return}return J6(J,X,Y,$,Q,K,W,G,H,V,F)}else{let H=e[b++],V=e[b++],F=e[b++],z=e[b++];if((H&128)>0||(V&128)>0||(F&128)>0||(z&128)>0){b-=12;return}if(Z<14)if(Z===12)return J6(J,X,Y,$,Q,K,W,G,H,V,F,z);else{let q=e[b++];if((q&128)>0){b-=13;return}return J6(J,X,Y,$,Q,K,W,G,H,V,F,z,q)}else{let q=e[b++],U=e[b++];if((q&128)>0||(U&128)>0){b-=14;return}if(Z<15)return J6(J,X,Y,$,Q,K,W,G,H,V,F,z,q,U);let L=e[b++];if((L&128)>0){b-=15;return}return J6(J,X,Y,$,Q,K,W,G,H,V,F,z,q,U,L)}}}}}function b60(){let Z=e[b++],J;if(Z<192)J=Z-160;else switch(Z){case 217:J=e[b++];break;case 218:J=t0.getUint16(b),b+=2;break;case 219:J=t0.getUint32(b),b+=4;break;default:throw new Error("Expected string")}return $$(J)}function pI(Z){return v1.copyBuffers?Uint8Array.prototype.slice.call(e,b,b+=Z):e.subarray(b,b+=Z)}function X$(Z){let J=e[b++];if(S5[J]){let X;return S5[J](e.subarray(b,X=b+=Z),(Y)=>{b=Y;try{return j8()}finally{b=X}})}else throw new Error("Unknown extension type "+J)}var g60=new Array(4096);function o60(){let Z=e[b++];if(Z>=160&&Z<192){if(Z=Z-160,f9>=b)return xZ.slice(b-Y9,(b+=Z)-Y9);else if(!(f9==0&&$9<180))return Vw(Z)}else return b--,r60(j8());let J=(Z<<5^(Z>1?t0.getUint16(b):Z>0?e[b]:0))&4095,X=g60[J],Y=b,$=b+Z-3,Q,K=0;if(X&&X.bytes==Z){while(Y<$){if(Q=t0.getUint32(Y),Q!=X[K++]){Y=1879048192;break}Y+=4}$+=3;while(Y<$)if(Q=e[Y++],Q!=X[K++]){Y=1879048192;break}if(Y===$)return b=Y,X.string;$-=3,Y=b}X=[],g60[J]=X,X.bytes=Z;while(Y<$)Q=t0.getUint32(Y),X.push(Q),Y+=4;$+=3;while(Y<$)Q=e[Y++],X.push(Q);let W=Z<16?eI(Z):s60(Z);if(W!=null)return X.string=W;return X.string=Vw(Z)}function r60(Z){if(typeof Z==="string")return Z;if(typeof Z==="number"||typeof Z==="boolean"||typeof Z==="bigint")return Z.toString();if(Z==null)return Z+"";if(v1.allowArraysInMapKeys&&Array.isArray(Z)&&Z.flat().every((J)=>["string","number","boolean","bigint"].includes(typeof J)))return Z.flat().toString();throw new Error(`Invalid property type for record: ${typeof Z}`)}var m60=(Z,J)=>{let X=j8().map(r60),Y=Z;if(J!==void 0)Z=Z<32?-((J<<5)+Z):(J<<5)+Z,X.highByte=J;let $=X1[Z];if($&&($.isShared||eJ))(X1.restoreStructures||(X1.restoreStructures=[]))[Z]=$;return X1[Z]=X,X.read=tI(X,Y),X.read()};S5[0]=()=>{};S5[0].noBuffer=!0;S5[66]=(Z)=>{let J=Z.length,X=BigInt(Z[0]&128?Z[0]-256:Z[0]);for(let Y=1;Y<J;Y++)X<<=BigInt(8),X+=BigInt(Z[Y]);return X};var $h1={Error,TypeError,ReferenceError};S5[101]=()=>{let Z=j8();return($h1[Z[0]]||Error)(Z[1],{cause:Z[2]})};S5[105]=(Z)=>{if(v1.structuredClone===!1)throw new Error("Structured clone extension is disabled");let J=t0.getUint32(b-4);if(!hZ)hZ=new Map;let X=e[b],Y;if(X>=144&&X<160||X==220||X==221)Y=[];else if(X>=128&&X<144||X==222||X==223)Y=new Map;else if((X>=199&&X<=201||X>=212&&X<=216)&&e[b+1]===115)Y=new Set;else Y={};let $={target:Y};hZ.set(J,$);let Q=j8();if(!$.used)return $.target=Q;else Object.assign(Y,Q);if(Y instanceof Map)for(let[K,W]of Q.entries())Y.set(K,W);if(Y instanceof Set)for(let K of Array.from(Q))Y.add(K);return Y};S5[112]=(Z)=>{if(v1.structuredClone===!1)throw new Error("Structured clone extension is disabled");let J=t0.getUint32(b-4),X=hZ.get(J);return X.used=!0,X.target};S5[115]=()=>new Set(j8());var Zk=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map((Z)=>Z+"Array"),Qh1=typeof globalThis==="object"?globalThis:window;S5[116]=(Z)=>{let J=Z[0],X=Uint8Array.prototype.slice.call(Z,1).buffer,Y=Zk[J];if(!Y){if(J===16)return X;if(J===17)return new DataView(X);throw new Error("Could not find typed array for code "+J)}return new Qh1[Y](X)};S5[120]=()=>{let Z=j8();return new RegExp(Z[0],Z[1])};var Kh1=[];S5[98]=(Z)=>{let J=(Z[0]<<24)+(Z[1]<<16)+(Z[2]<<8)+Z[3],X=b;return b+=J-Z.length,c8=Kh1,c8=[b60(),b60()],c8.position0=0,c8.position1=0,c8.postBundlePosition=b,b=X,j8()};S5[255]=(Z)=>{if(Z.length==4)return new Date((Z[0]*16777216+(Z[1]<<16)+(Z[2]<<8)+Z[3])*1000);else if(Z.length==8)return new Date(((Z[0]<<22)+(Z[1]<<14)+(Z[2]<<6)+(Z[3]>>2))/1e6+((Z[3]&3)*4294967296+Z[4]*16777216+(Z[5]<<16)+(Z[6]<<8)+Z[7])*1000);else if(Z.length==12)return new Date(((Z[0]<<24)+(Z[1]<<16)+(Z[2]<<8)+Z[3])/1e6+((Z[4]&128?-281474976710656:0)+Z[6]*1099511627776+Z[7]*4294967296+Z[8]*16777216+(Z[9]<<16)+(Z[10]<<8)+Z[11])*1000);else return new Date("invalid")};function t60(Z){if(sI)sI();let J=$9,X=b,Y=CV,$=Y9,Q=f9,K=xZ,W=Y$,G=hZ,H=c8,V=new Uint8Array(e.slice(0,$9)),F=X1,z=X1.slice(0,X1.length),q=v1,U=eJ,L=Z();return $9=J,b=X,CV=Y,Y9=$,f9=Q,xZ=K,Y$=W,hZ=G,c8=H,e=V,eJ=U,X1=F,X1.splice(0,X1.length,...z),v1=q,t0=new DataView(e.buffer,e.byteOffset,e.byteLength),L}function zw(){e=null,hZ=null,X1=null}var Q$=new Array(147);for(let Z=0;Z<256;Z++)Q$[Z]=+("1e"+Math.floor(45.15-Z*0.30103));var qw=new fZ({useRecords:!1}),Wh1=qw.unpack,Gh1=qw.unpackMultiple,Hh1=qw.unpack;var Vh1=new Float32Array(1),Uf6=new Uint8Array(Vh1.buffer,0,4);function e60(Z,J,X){nI=Z,aI=J,sI=X}var Lw;try{Lw=new TextEncoder}catch(Z){}var Yk,Y50,EV=typeof Buffer!=="undefined",Uw=EV?function(Z){return Buffer.allocUnsafeSlow(Z)}:Uint8Array,$50=EV?Buffer:Uint8Array,Z50=EV?4294967296:2144337920,c,TV,y1,m=0,X5,r1=null,Q50,zh1=21760,Fh1=/[\u0080-\uFFFF]/,P7=Symbol("record-id");class K$ extends fZ{constructor(Z){super(Z);this.offset=0;let J,X,Y,$,Q,K=$50.prototype.utf8Write?function(k,v){return c.utf8Write(k,v,c.byteLength-v)}:Lw&&Lw.encodeInto?function(k,v){return Lw.encodeInto(k,c.subarray(v)).written}:!1,W=this;if(!Z)Z={};let G=Z&&Z.sequential,H=Z.structures||Z.saveStructures,V=Z.maxSharedStructures;if(V==null)V=H?32:0;if(V>8160)throw new Error("Maximum maxSharedStructure is 8160");if(Z.structuredClone&&Z.moreTypes==null)this.moreTypes=!0;let F=Z.maxOwnStructures;if(F==null)F=H?32:64;if(!this.structures&&Z.useRecords!=!1)this.structures=[];let z=V>32||F+V>64,q=V+64,U=V+F+64;if(U>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let L=[],B=0,w=0;this.pack=this.encode=function(k,v){if(!c)c=new Uw(8192),y1=c.dataView||(c.dataView=new DataView(c.buffer,0,8192)),m=0;if(X5=c.length-10,X5-m<2048)c=new Uw(c.length),y1=c.dataView||(c.dataView=new DataView(c.buffer,0,c.length)),X5=c.length-10,m=0;else m=m+7&2147483640;if(X=m,v&Nh1)m+=v&255;if(Q=W.structuredClone?new Map:null,W.bundleStrings&&typeof k!=="string")r1=[],r1.size=1/0;else r1=null;if($=W.structures,$){if($.uninitialized)$=W._mergeStructures(W.getStructures());let p=$.sharedLength||0;if(p>V)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+$.sharedLength);if(!$.transitions){$.transitions=Object.create(null);for(let n=0;n<p;n++){let o=$[n];if(!o)continue;let X0,Q0=$.transitions;for(let E0=0,I0=o.length;E0<I0;E0++){let a0=o[E0];if(X0=Q0[a0],!X0)X0=Q0[a0]=Object.create(null);Q0=X0}Q0[P7]=n+64}this.lastNamedStructuresLength=p}if(!G)$.nextId=p+64}if(Y)Y=!1;let A;try{if(W.randomAccessStructure&&k&&k.constructor&&k.constructor===Object)h(k);else M(k);let p=r1;if(r1)J50(X,M,0);if(Q&&Q.idsToInsert){let n=Q.idsToInsert.sort((E0,I0)=>E0.offset>I0.offset?1:-1),o=n.length,X0=-1;while(p&&o>0){let E0=n[--o].offset+X;if(E0<p.stringsPosition+X&&X0===-1)X0=0;if(E0>p.position+X){if(X0>=0)X0+=6}else{if(X0>=0)y1.setUint32(p.position+X,y1.getUint32(p.position+X)+X0),X0=-1;p=p.previous,o++}}if(X0>=0&&p)y1.setUint32(p.position+X,y1.getUint32(p.position+X)+X0);if(m+=n.length*6,m>X5)E(m);W.offset=m;let Q0=Uh1(c.subarray(X,m),n);return Q=null,Q0}if(W.offset=m,v&wh1)return c.start=X,c.end=m,c;return c.subarray(X,m)}catch(p){throw A=p,p}finally{if($){if(N(),Y&&W.saveStructures){let p=$.sharedLength||0,n=c.subarray(X,m),o=K50($,W);if(!A){if(W.saveStructures(o,o.isCompatible)===!1)return W.pack(k,v);if(W.lastNamedStructuresLength=p,c.length>1073741824)c=null;return n}}}if(c.length>1073741824)c=null;if(v&Oh1)m=X}};let N=()=>{if(w<10)w++;let k=$.sharedLength||0;if($.length>k&&!G)$.length=k;if(B>1e4){if($.transitions=null,w=0,B=0,L.length>0)L=[]}else if(L.length>0&&!G){for(let v=0,A=L.length;v<A;v++)L[v][P7]=0;L=[]}},R=(k)=>{var v=k.length;if(v<16)c[m++]=144|v;else if(v<65536)c[m++]=220,c[m++]=v>>8,c[m++]=v&255;else c[m++]=221,y1.setUint32(m,v),m+=4;for(let A=0;A<v;A++)M(k[A])},M=(k)=>{if(m>X5)c=E(m);var v=typeof k,A;if(v==="string"){let p=k.length;if(r1&&p>=4&&p<4096){if((r1.size+=p)>zh1){let Q0,E0=(r1[0]?r1[0].length*3+r1[1].length:0)+10;if(m+E0>X5)c=E(m+E0);let I0;if(r1.position)I0=r1,c[m]=200,m+=3,c[m++]=98,Q0=m-X,m+=4,J50(X,M,0),y1.setUint16(Q0+X-3,m-X-Q0);else c[m++]=214,c[m++]=98,Q0=m-X,m+=4;r1=["",""],r1.previous=I0,r1.size=0,r1.position=Q0}let X0=Fh1.test(k);r1[X0?0:1]+=k,c[m++]=193,M(X0?-p:p);return}let n;if(p<32)n=1;else if(p<256)n=2;else if(p<65536)n=3;else n=5;let o=p*3;if(m+o>X5)c=E(m+o);if(p<64||!K){let X0,Q0,E0,I0=m+n;for(X0=0;X0<p;X0++)if(Q0=k.charCodeAt(X0),Q0<128)c[I0++]=Q0;else if(Q0<2048)c[I0++]=Q0>>6|192,c[I0++]=Q0&63|128;else if((Q0&64512)===55296&&((E0=k.charCodeAt(X0+1))&64512)===56320)Q0=65536+((Q0&1023)<<10)+(E0&1023),X0++,c[I0++]=Q0>>18|240,c[I0++]=Q0>>12&63|128,c[I0++]=Q0>>6&63|128,c[I0++]=Q0&63|128;else c[I0++]=Q0>>12|224,c[I0++]=Q0>>6&63|128,c[I0++]=Q0&63|128;A=I0-m-n}else A=K(k,m+n);if(A<32)c[m++]=160|A;else if(A<256){if(n<2)c.copyWithin(m+2,m+1,m+1+A);c[m++]=217,c[m++]=A}else if(A<65536){if(n<3)c.copyWithin(m+3,m+2,m+2+A);c[m++]=218,c[m++]=A>>8,c[m++]=A&255}else{if(n<5)c.copyWithin(m+5,m+3,m+3+A);c[m++]=219,y1.setUint32(m,A),m+=4}m+=A}else if(v==="number")if(k>>>0===k)if(k<32||k<128&&this.useRecords===!1||k<64&&!this.randomAccessStructure)c[m++]=k;else if(k<256)c[m++]=204,c[m++]=k;else if(k<65536)c[m++]=205,c[m++]=k>>8,c[m++]=k&255;else c[m++]=206,y1.setUint32(m,k),m+=4;else if(k>>0===k)if(k>=-32)c[m++]=256+k;else if(k>=-128)c[m++]=208,c[m++]=k+256;else if(k>=-32768)c[m++]=209,y1.setInt16(m,k),m+=2;else c[m++]=210,y1.setInt32(m,k),m+=4;else{let p;if((p=this.useFloat32)>0&&k<4294967296&&k>=-2147483648){c[m++]=202,y1.setFloat32(m,k);let n;if(p<4||(n=k*Q$[(c[m]&127)<<1|c[m+1]>>7])>>0===n){m+=4;return}else m--}c[m++]=203,y1.setFloat64(m,k),m+=8}else if(v==="object"||v==="function")if(!k)c[m++]=192;else{if(Q){let n=Q.get(k);if(n){if(!n.id){let o=Q.idsToInsert||(Q.idsToInsert=[]);n.id=o.push(n)}c[m++]=214,c[m++]=112,y1.setUint32(m,n.id),m+=4;return}else Q.set(k,{offset:m-X})}let p=k.constructor;if(p===Object)T(k);else if(p===Array)R(k);else if(p===Map)if(this.mapAsEmptyObject)c[m++]=128;else{if(A=k.size,A<16)c[m++]=128|A;else if(A<65536)c[m++]=222,c[m++]=A>>8,c[m++]=A&255;else c[m++]=223,y1.setUint32(m,A),m+=4;for(let[n,o]of k)M(n),M(o)}else{for(let n=0,o=Yk.length;n<o;n++){let X0=Y50[n];if(k instanceof X0){let Q0=Yk[n];if(Q0.write){if(Q0.type)c[m++]=212,c[m++]=Q0.type,c[m++]=0;let n1=Q0.write.call(this,k);if(n1===k)if(Array.isArray(k))R(k);else T(k);else M(n1);return}let E0=c,I0=y1,a0=m;c=null;let E8;try{E8=Q0.pack.call(this,k,(n1)=>{if(c=E0,E0=null,m+=n1,m>X5)E(m);return{target:c,targetView:y1,position:m-n1}},M)}finally{if(E0)c=E0,y1=I0,m=a0,X5=c.length-10}if(E8){if(E8.length+m>X5)E(E8.length+m);m=qh1(E8,c,m,Q0.type)}return}}if(Array.isArray(k))R(k);else{if(k.toJSON){let n=k.toJSON();if(n!==k)return M(n)}if(v==="function")return M(this.writeFunction&&this.writeFunction(k));T(k)}}}else if(v==="boolean")c[m++]=k?195:194;else if(v==="bigint"){if(k<9223372036854776000&&k>=-9223372036854776000)c[m++]=211,y1.setBigInt64(m,k);else if(k<18446744073709552000&&k>0)c[m++]=207,y1.setBigUint64(m,k);else if(this.largeBigIntToFloat)c[m++]=203,y1.setFloat64(m,Number(k));else if(this.largeBigIntToString)return M(k.toString());else if((this.useBigIntExtension||this.moreTypes)&&k<BigInt(2)**BigInt(1023)&&k>-(BigInt(2)**BigInt(1023))){c[m++]=199,m++,c[m++]=66;let p=[],n;do{let o=k&BigInt(255);n=(o&BigInt(128))===(k<BigInt(0)?BigInt(128):BigInt(0)),p.push(o),k>>=BigInt(8)}while(!((k===BigInt(0)||k===BigInt(-1))&&n));c[m-2]=p.length;for(let o=p.length;o>0;)c[m++]=Number(p[--o]);return}else throw new RangeError(k+" was too large to fit in MessagePack 64-bit integer format, use useBigIntExtension, or set largeBigIntToFloat to convert to float-64, or set largeBigIntToString to convert to string");m+=8}else if(v==="undefined")if(this.encodeUndefinedAsNil)c[m++]=192;else c[m++]=212,c[m++]=0,c[m++]=0;else throw new Error("Unknown type: "+v)},P=this.variableMapSize||this.coercibleKeyAsNumber||this.skipValues?(k)=>{let v;if(this.skipValues){v=[];for(let n in k)if((typeof k.hasOwnProperty!=="function"||k.hasOwnProperty(n))&&!this.skipValues.includes(k[n]))v.push(n)}else v=Object.keys(k);let A=v.length;if(A<16)c[m++]=128|A;else if(A<65536)c[m++]=222,c[m++]=A>>8,c[m++]=A&255;else c[m++]=223,y1.setUint32(m,A),m+=4;let p;if(this.coercibleKeyAsNumber)for(let n=0;n<A;n++){p=v[n];let o=Number(p);M(isNaN(o)?p:o),M(k[p])}else for(let n=0;n<A;n++)M(p=v[n]),M(k[p])}:(k)=>{c[m++]=222;let v=m-X;m+=2;let A=0;for(let p in k)if(typeof k.hasOwnProperty!=="function"||k.hasOwnProperty(p))M(p),M(k[p]),A++;if(A>65535)throw new Error('Object is too large to serialize with fast 16-bit map size, use the "variableMapSize" option to serialize this object');c[v+++X]=A>>8,c[v+X]=A&255},j=this.useRecords===!1?P:Z.progressiveRecords&&!z?(k)=>{let v,A=$.transitions||($.transitions=Object.create(null)),p=m++-X,n;for(let o in k)if(typeof k.hasOwnProperty!=="function"||k.hasOwnProperty(o)){if(v=A[o],v)A=v;else{let X0=Object.keys(k),Q0=A;A=$.transitions;let E0=0;for(let I0=0,a0=X0.length;I0<a0;I0++){let E8=X0[I0];if(v=A[E8],!v)v=A[E8]=Object.create(null),E0++;A=v}if(p+X+1==m)m--,x(A,X0,E0);else _(A,X0,p,E0);n=!0,A=Q0[o]}M(k[o])}if(!n){let o=A[P7];if(o)c[p+X]=o;else _(A,Object.keys(k),p,0)}}:(k)=>{let v,A=$.transitions||($.transitions=Object.create(null)),p=0;for(let o in k)if(typeof k.hasOwnProperty!=="function"||k.hasOwnProperty(o)){if(v=A[o],!v)v=A[o]=Object.create(null),p++;A=v}let n=A[P7];if(n)if(n>=96&&z)c[m++]=((n-=96)&31)+96,c[m++]=n>>5;else c[m++]=n;else x(A,A.__keys__||Object.keys(k),p);for(let o in k)if(typeof k.hasOwnProperty!=="function"||k.hasOwnProperty(o))M(k[o])},C=typeof this.useRecords=="function"&&this.useRecords,T=C?(k)=>{C(k)?j(k):P(k)}:j,E=(k)=>{let v;if(k>16777216){if(k-X>Z50)throw new Error("Packed buffer would be larger than maximum buffer size");v=Math.min(Z50,Math.round(Math.max((k-X)*(k>67108864?1.25:2),4194304)/4096)*4096)}else v=(Math.max(k-X<<2,c.length-1)>>12)+1<<12;let A=new Uw(v);if(y1=A.dataView||(A.dataView=new DataView(A.buffer,0,v)),k=Math.min(k,c.length),c.copy)c.copy(A,0,X,k);else A.set(c.slice(X,k));return m-=X,X=0,X5=A.length-10,c=A},x=(k,v,A)=>{let p=$.nextId;if(!p)p=64;if(p<q&&this.shouldShareStructure&&!this.shouldShareStructure(v)){if(p=$.nextOwnId,!(p<U))p=q;$.nextOwnId=p+1}else{if(p>=U)p=q;$.nextId=p+1}let n=v.highByte=p>=96&&z?p-96>>5:-1;if(k[P7]=p,k.__keys__=v,$[p-64]=v,p<q)if(v.isShared=!0,$.sharedLength=p-63,Y=!0,n>=0)c[m++]=(p&31)+96,c[m++]=n;else c[m++]=p;else{if(n>=0)c[m++]=213,c[m++]=114,c[m++]=(p&31)+96,c[m++]=n;else c[m++]=212,c[m++]=114,c[m++]=p;if(A)B+=w*A;if(L.length>=F)L.shift()[P7]=0;L.push(k),M(v)}},_=(k,v,A,p)=>{let n=c,o=m,X0=X5,Q0=X;if(c=TV,m=0,X=0,!c)TV=c=new Uw(8192);X5=c.length-10,x(k,v,p),TV=c;let E0=m;if(c=n,m=o,X5=X0,X=Q0,E0>1){let I0=m+E0-1;if(I0>X5)E(I0);let a0=A+X;c.copyWithin(a0+E0,a0+1,m),c.set(TV.slice(0,E0),a0),m=I0}else c[A+X]=TV[0]},h=(k)=>{let v=Q50(k,c,X,m,$,E,(A,p,n)=>{if(n)return Y=!0;m=p;let o=c;if(M(A),N(),o!==c)return{position:m,targetView:y1,target:c};return m},this);if(v===0)return T(k);m=v}}useBuffer(Z){c=Z,c.dataView||(c.dataView=new DataView(c.buffer,c.byteOffset,c.byteLength)),m=0}set position(Z){m=Z}get position(){return m}clearSharedData(){if(this.structures)this.structures=[];if(this.typedStructs)this.typedStructs=[]}}Y50=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,DataView,Fw];Yk=[{pack(Z,J,X){let Y=Z.getTime()/1000;if((this.useTimestamp32||Z.getMilliseconds()===0)&&Y>=0&&Y<4294967296){let{target:$,targetView:Q,position:K}=J(6);$[K++]=214,$[K++]=255,Q.setUint32(K,Y)}else if(Y>0&&Y<4294967296){let{target:$,targetView:Q,position:K}=J(10);$[K++]=215,$[K++]=255,Q.setUint32(K,Z.getMilliseconds()*4000000+(Y/1000/4294967296>>0)),Q.setUint32(K+4,Y)}else if(isNaN(Y)){if(this.onInvalidDate)return J(0),X(this.onInvalidDate());let{target:$,targetView:Q,position:K}=J(3);$[K++]=212,$[K++]=255,$[K++]=255}else{let{target:$,targetView:Q,position:K}=J(15);$[K++]=199,$[K++]=12,$[K++]=255,Q.setUint32(K,Z.getMilliseconds()*1e6),Q.setBigInt64(K+4,BigInt(Math.floor(Y)))}}},{pack(Z,J,X){if(this.setAsEmptyObject)return J(0),X({});let Y=Array.from(Z),{target:$,position:Q}=J(this.moreTypes?3:0);if(this.moreTypes)$[Q++]=212,$[Q++]=115,$[Q++]=0;X(Y)}},{pack(Z,J,X){let{target:Y,position:$}=J(this.moreTypes?3:0);if(this.moreTypes)Y[$++]=212,Y[$++]=101,Y[$++]=0;X([Z.name,Z.message,Z.cause])}},{pack(Z,J,X){let{target:Y,position:$}=J(this.moreTypes?3:0);if(this.moreTypes)Y[$++]=212,Y[$++]=120,Y[$++]=0;X([Z.source,Z.flags])}},{pack(Z,J){if(this.moreTypes)Jk(Z,16,J);else Xk(EV?Buffer.from(Z):new Uint8Array(Z),J)}},{pack(Z,J){let X=Z.constructor;if(X!==$50&&this.moreTypes)Jk(Z,Zk.indexOf(X.name),J);else Xk(Z,J)}},{pack(Z,J){if(this.moreTypes)Jk(Z,17,J);else Xk(EV?Buffer.from(Z):new Uint8Array(Z),J)}},{pack(Z,J){let{target:X,position:Y}=J(1);X[Y]=193}}];function Jk(Z,J,X,Y){let $=Z.byteLength;if($+1<256){var{target:Q,position:K}=X(4+$);Q[K++]=199,Q[K++]=$+1}else if($+1<65536){var{target:Q,position:K}=X(5+$);Q[K++]=200,Q[K++]=$+1>>8,Q[K++]=$+1&255}else{var{target:Q,position:K,targetView:W}=X(7+$);Q[K++]=201,W.setUint32(K,$+1),K+=4}if(Q[K++]=116,Q[K++]=J,!Z.buffer)Z=new Uint8Array(Z);Q.set(new Uint8Array(Z.buffer,Z.byteOffset,Z.byteLength),K)}function Xk(Z,J){let X=Z.byteLength;var Y,$;if(X<256){var{target:Y,position:$}=J(X+2);Y[$++]=196,Y[$++]=X}else if(X<65536){var{target:Y,position:$}=J(X+3);Y[$++]=197,Y[$++]=X>>8,Y[$++]=X&255}else{var{target:Y,position:$,targetView:Q}=J(X+5);Y[$++]=198,Q.setUint32($,X),$+=4}Y.set(Z,$)}function qh1(Z,J,X,Y){let $=Z.length;switch($){case 1:J[X++]=212;break;case 2:J[X++]=213;break;case 4:J[X++]=214;break;case 8:J[X++]=215;break;case 16:J[X++]=216;break;default:if($<256)J[X++]=199,J[X++]=$;else if($<65536)J[X++]=200,J[X++]=$>>8,J[X++]=$&255;else J[X++]=201,J[X++]=$>>24,J[X++]=$>>16&255,J[X++]=$>>8&255,J[X++]=$&255}return J[X++]=Y,J.set(Z,X),X+=$,X}function Uh1(Z,J){let X,Y=J.length*6,$=Z.length-Y;while(X=J.pop()){let{offset:Q,id:K}=X;Z.copyWithin(Q+Y,Q,$),Y-=6;let W=Q+Y;Z[W++]=214,Z[W++]=105,Z[W++]=K>>24,Z[W++]=K>>16&255,Z[W++]=K>>8&255,Z[W++]=K&255,$=Q}return Z}function J50(Z,J,X){if(r1.length>0){y1.setUint32(r1.position+Z,m+X-r1.position-Z),r1.stringsPosition=m-Z;let Y=r1;r1=null,J(Y[0]),J(Y[1])}}function K50(Z,J){return Z.isCompatible=(X)=>{let Y=!X||(J.lastNamedStructuresLength||0)===X.length;if(!Y)J._mergeStructures(X);return Y},Z}function W50(Z,J){Q50=Z,K50=J}var G50=new K$({useRecords:!1}),Lh1=G50.pack,Bh1=G50.pack;var wh1=512,Oh1=1024,Nh1=2048;var $k=3,sK=0,IV=2,Bw=1,Kk=16,V50=["num","object","string","ascii"];V50[Kk]="date";var Mh1=[!1,!0,!0,!1,!1,!0,!0,!1],z50;try{new Function(""),z50=!0}catch(Z){}var W$,jh1=typeof Buffer!=="undefined",ww,C7;try{ww=new TextEncoder}catch(Z){}var Dh1=jh1?function(Z,J,X){return Z.utf8Write(J,X,Z.byteLength-X)}:ww&&ww.encodeInto?function(Z,J,X){return ww.encodeInto(J,Z.subarray(X)).written}:!1,Df6=Symbol("type"),Pf6=Symbol("parent");W50(F50,Ih1);function F50(Z,J,X,Y,$,Q,K,W){let G=W.typedStructs||(W.typedStructs=[]),H=J.dataView,V=(G.lastStringStart||100)+Y,F=J.length-10,z=Y;if(Y>F)J=Q(Y),H=J.dataView,Y-=X,z-=X,V-=X,X=0,F=J.length-10;let q,U=V,L=G.transitions||(G.transitions=Object.create(null)),B=G.nextId||G.length,w=B<15?1:B<240?2:B<61440?3:B<15728640?4:0;if(w===0)return 0;Y+=w;let N=[],R,M=0;for(let j in Z){let C=Z[j],T=L[j];if(!T)L[j]=T={key:j,parent:L,enumerationOffset:0,ascii0:null,ascii8:null,num8:null,string16:null,object16:null,num32:null,float64:null,date64:null};if(Y>F)J=Q(Y),H=J.dataView,Y-=X,z-=X,V-=X,U-=X,X=0,F=J.length-10;switch(typeof C){case"number":let E=C;if(B<200||!T.num64){if(E>>0===E&&E<536870912&&E>-520093696){if(E<246&&E>=0&&(T.num8&&!(B>200&&T.num32)||E<32&&!T.num32))L=T.num8||A5(T,sK,1),J[Y++]=E;else L=T.num32||A5(T,sK,4),H.setUint32(Y,E,!0),Y+=4;break}else if(E<4294967296&&E>=-2147483648){if(H.setFloat32(Y,E,!0),Mh1[J[Y+3]>>>5]){let k;if((k=E*Q$[(J[Y+3]&127)<<1|J[Y+2]>>7])>>0===k){L=T.num32||A5(T,sK,4),Y+=4;break}}}}L=T.num64||A5(T,sK,8),H.setFloat64(Y,E,!0),Y+=8;break;case"string":let x=C.length;if(q=U-V,(x<<2)+U>F)J=Q((x<<2)+U),H=J.dataView,Y-=X,z-=X,V-=X,U-=X,X=0,F=J.length-10;if(x>65280+q>>2){N.push(j,C,Y-z);break}let _,h=U;if(x<64){let k,v,A;for(k=0;k<x;k++)if(v=C.charCodeAt(k),v<128)J[U++]=v;else if(v<2048)_=!0,J[U++]=v>>6|192,J[U++]=v&63|128;else if((v&64512)===55296&&((A=C.charCodeAt(k+1))&64512)===56320)_=!0,v=65536+((v&1023)<<10)+(A&1023),k++,J[U++]=v>>18|240,J[U++]=v>>12&63|128,J[U++]=v>>6&63|128,J[U++]=v&63|128;else _=!0,J[U++]=v>>12|224,J[U++]=v>>6&63|128,J[U++]=v&63|128}else U+=Dh1(J,C,U),_=U-h>x;if(q<160||q<246&&(T.ascii8||T.string8)){if(_){if(!(L=T.string8))if(G.length>10&&(L=T.ascii8))L.__type=IV,T.ascii8=null,T.string8=L,K(null,0,!0);else L=A5(T,IV,1)}else if(q===0&&!R){R=!0,L=T.ascii0||A5(T,$k,0);break}else if(!(L=T.ascii8)&&!(G.length>10&&(L=T.string8)))L=A5(T,$k,1);J[Y++]=q}else L=T.string16||A5(T,IV,2),H.setUint16(Y,q,!0),Y+=2;break;case"object":if(C){if(C.constructor===Date)L=T.date64||A5(T,Kk,8),H.setFloat64(Y,C.getTime(),!0),Y+=8;else N.push(j,C,M);break}else if(T=H50(T,Y,H,-10),T)L=T,Y=W$;else N.push(j,C,M);break;case"boolean":L=T.num8||T.ascii8||A5(T,sK,1),J[Y++]=C?249:248;break;case"undefined":if(T=H50(T,Y,H,-9),T)L=T,Y=W$;else N.push(j,C,M);break;default:N.push(j,C,M)}M++}for(let j=0,C=N.length;j<C;){let T=N[j++],E=N[j++],x=N[j++],_=L[T];if(!_)L[T]=_={key:T,parent:L,enumerationOffset:x-M,ascii0:null,ascii8:null,num8:null,string16:null,object16:null,num32:null,float64:null};let h;if(E){let k;if(q=U-V,q<65280)if(L=_.object16,L)k=2;else if(L=_.object32)k=4;else L=A5(_,Bw,2),k=2;else L=_.object32||A5(_,Bw,4),k=4;if(h=K(E,U),typeof h==="object")U=h.position,H=h.targetView,J=h.target,V-=X,Y-=X,z-=X,X=0;else U=h;if(k===2)H.setUint16(Y,q,!0),Y+=2;else H.setUint32(Y,q,!0),Y+=4}else L=_.object16||A5(_,Bw,2),H.setInt16(Y,E===null?-10:-9,!0),Y+=2;M++}let P=L[P7];if(P==null){P=W.typedStructs.length;let j=[],C=L,T,E;while((E=C.__type)!==void 0){let x=C.__size;C=C.__parent,T=C.key;let _=[E,x,T];if(C.enumerationOffset)_.push(C.enumerationOffset);j.push(_),C=C.parent}j.reverse(),L[P7]=P,W.typedStructs[P]=j,K(null,0,!0)}switch(w){case 1:if(P>=16)return 0;J[z]=P+32;break;case 2:if(P>=256)return 0;J[z]=56,J[z+1]=P;break;case 3:if(P>=65536)return 0;J[z]=57,H.setUint16(z+1,P,!0);break;case 4:if(P>=16777216)return 0;H.setUint32(z,(P<<8)+58,!0);break}if(Y<V){if(V===U)return Y;J.copyWithin(Y,V,U),U+=Y-V,G.lastStringStart=Y-z}else if(Y>V){if(V===U)return Y;return G.lastStringStart=Y-z,F50(Z,J,X,z,$,Q,K,W)}return U}function H50(Z,J,X,Y){let $;if($=Z.ascii8||Z.num8)return X.setInt8(J,Y,!0),W$=J+1,$;if($=Z.string16||Z.object16)return X.setInt16(J,Y,!0),W$=J+2,$;if($=Z.num32)return X.setUint32(J,3758096640+Y,!0),W$=J+4,$;if($=Z.num64)return X.setFloat64(J,NaN,!0),X.setInt8(J,Y),W$=J+8,$;W$=J;return}function A5(Z,J,X){let Y=V50[J]+(X<<3),$=Z[Y]||(Z[Y]=Object.create(null));return $.__type=J,$.__size=X,$.__parent=Z,$}function Ph1(Z){if(!(Z instanceof Map))return Z;let J=Z.get("typed")||[];if(Object.isFrozen(J))J=J.map(($)=>$.slice(0));let X=Z.get("named"),Y=Object.create(null);for(let $=0,Q=J.length;$<Q;$++){let K=J[$],W=Y;for(let[G,H,V]of K){let F=W[V];if(!F)W[V]=F={key:V,parent:W,enumerationOffset:0,ascii0:null,ascii8:null,num8:null,string16:null,object16:null,num32:null,float64:null,date64:null};W=A5(F,G,H)}W[P7]=$}return J.transitions=Y,this.typedStructs=J,this.lastTypedStructuresLength=J.length,X}var Qk=Symbol.for("source");function Ch1(Z,J,X,Y){let $=Z[J++]-32;if($>=24)switch($){case 24:$=Z[J++];break;case 25:$=Z[J++]+(Z[J++]<<8);break;case 26:$=Z[J++]+(Z[J++]<<8)+(Z[J++]<<16);break;case 27:$=Z[J++]+(Z[J++]<<8)+(Z[J++]<<16)+(Z[J++]<<24);break}let Q=Y.typedStructs&&Y.typedStructs[$];if(!Q){if(Z=Uint8Array.prototype.slice.call(Z,J,X),X-=J,J=0,!Y.getStructures)throw new Error(`Reference to shared structure ${$} without getStructures method`);if(Y._mergeStructures(Y.getStructures()),!Y.typedStructs)throw new Error("Could not find any shared typed structures");if(Y.lastTypedStructuresLength=Y.typedStructs.length,Q=Y.typedStructs[$],!Q)throw new Error("Could not find typed structure "+$)}var{construct:K,fullConstruct:W}=Q;if(!K){K=Q.construct=function q(){},W=Q.fullConstruct=function q(){},W.prototype=Y.structPrototype??{};var G=K.prototype=Y.structPrototype?Object.create(Y.structPrototype):{};let V=[],F=0,z;for(let q=0,U=Q.length;q<U;q++){let L=Q[q],[B,w,N,R]=L;if(N==="__proto__")N="__proto_";let M={key:N,offset:F};if(R)V.splice(q+R,0,M);else V.push(M);let P;switch(w){case 0:P=()=>0;break;case 1:P=(C,T)=>{let E=C.bytes[T+M.offset];return E>=246?aK(E):E};break;case 2:P=(C,T)=>{let E=C.bytes,_=(E.dataView||(E.dataView=new DataView(E.buffer,E.byteOffset,E.byteLength))).getUint16(T+M.offset,!0);return _>=65280?aK(_&255):_};break;case 4:P=(C,T)=>{let E=C.bytes,_=(E.dataView||(E.dataView=new DataView(E.buffer,E.byteOffset,E.byteLength))).getUint32(T+M.offset,!0);return _>=4294967040?aK(_&255):_};break}M.getRef=P,F+=w;let j;switch(B){case $k:if(z&&!z.next)z.next=M;z=M,M.multiGetCount=0,j=function(C){let{bytes:T,position:E}=C,x=F+E,_=P(C,E);if(typeof _!=="number")return _;let h,k=M.next;while(k){if(h=k.getRef(C,E),typeof h==="number")break;else h=null;k=k.next}if(h==null)h=C.bytesEnd-x;if(C.srcString)return C.srcString.slice(_,h);return a60(T,_+x,h-_)};break;case IV:case Bw:if(z&&!z.next)z.next=M;z=M,j=function(C){let T=C.position,E=F+T,x=P(C,T);if(typeof x!=="number")return x;let _=C.bytes,h,k=M.next;while(k){if(h=k.getRef(C,T),typeof h==="number")break;else h=null;k=k.next}if(h==null)h=C.bytesEnd-E;if(B===IV)return _.toString("utf8",x+E,h+E);else{C7=C;try{return Y.unpack(_,{start:x+E,end:h+E})}finally{C7=null}}};break;case sK:switch(w){case 4:j=function(C){let T=C.bytes,E=T.dataView||(T.dataView=new DataView(T.buffer,T.byteOffset,T.byteLength)),x=C.position+M.offset,_=E.getInt32(x,!0);if(_<536870912){if(_>-520093696)return _;if(_>-536870912)return aK(_&255)}let h=E.getFloat32(x,!0),k=Q$[(T[x+3]&127)<<1|T[x+2]>>7];return(k*h+(h>0?0.5:-0.5)>>0)/k};break;case 8:j=function(C){let T=C.bytes,x=(T.dataView||(T.dataView=new DataView(T.buffer,T.byteOffset,T.byteLength))).getFloat64(C.position+M.offset,!0);if(isNaN(x)){let _=T[C.position+M.offset];if(_>=246)return aK(_)}return x};break;case 1:j=function(C){let E=C.bytes[C.position+M.offset];return E<246?E:aK(E)};break}break;case Kk:j=function(C){let T=C.bytes,E=T.dataView||(T.dataView=new DataView(T.buffer,T.byteOffset,T.byteLength));return new Date(E.getFloat64(C.position+M.offset,!0))};break}M.get=j}if(z50){let q=[],U=[],L=0,B;for(let N of V){if(Y.alwaysLazyProperty&&Y.alwaysLazyProperty(N.key)){B=!0;continue}Object.defineProperty(G,N.key,{get:Th1(N.get),enumerable:!0});let R="v"+L++;U.push(R),q.push("o["+JSON.stringify(N.key)+"]="+R+"(s)")}if(B)q.push("__proto__:this");let w=new Function(...U,"var c=this;return function(s){var o=new c();"+q.join(";")+";return o;}").apply(W,V.map((N)=>N.get));Object.defineProperty(G,"toJSON",{value(N){return w.call(this,this[Qk])}})}else Object.defineProperty(G,"toJSON",{value(q){let U={};for(let L=0,B=V.length;L<B;L++){let w=V[L].key;U[w]=this[w]}return U}})}var H=new K;return H[Qk]={bytes:Z,position:J,srcString:"",bytesEnd:X},H}function aK(Z){switch(Z){case 246:return null;case 247:return;case 248:return!1;case 249:return!0}throw new Error("Unknown constant")}function Th1(Z){return function(){return Z(this[Qk])}}function Eh1(){if(C7)C7.bytes=Uint8Array.prototype.slice.call(C7.bytes,C7.position,C7.bytesEnd),C7.position=0,C7.bytesEnd=C7.bytes.length}function Ih1(Z,J){if(J.typedStructs){let Y=new Map;Y.set("named",Z),Y.set("typed",J.typedStructs),Z=Y}let X=J.lastTypedStructuresLength||0;return Z.isCompatible=(Y)=>{let $=!0;if(Y instanceof Map){if((Y.get("named")||[]).length!==(J.lastNamedStructuresLength||0))$=!1;if((Y.get("typed")||[]).length!==X)$=!1}else if(Y instanceof Array||Array.isArray(Y)){if(Y.length!==(J.lastNamedStructuresLength||0))$=!1}if(!$)J._mergeStructures(Y);return $},J.lastTypedStructuresLength=J.typedStructs&&J.typedStructs.length,Z}e60(Ch1,Ph1,Eh1);var _h1=process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED!==void 0&&process.env.MSGPACKR_NATIVE_ACCELERATION_DISABLED.toLowerCase()==="true";if(!_h1){let Z;try{if(Z=g("msgpackr-extract"),Z)n60(Z.extractStrings)}catch(J){}}import In1 from"mediasoup";var PO=r(iY0(),1);import Pn1 from"http";import Cn1 from"https";import DO from"fs";import Tn1 from"path";import En1 from"url";var nY0=`-----BEGIN CERTIFICATE-----
|
|
416
416
|
MIIDRjCCAi6gAwIBAgIFOTEzNTIwDQYJKoZIhvcNAQELBQAwWDEQMA4GA1UEAxMH
|
|
417
417
|
SFlUT1BJQTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
|
|
418
418
|
BAcTB1NlYXR0bGUxEDAOBgNVBAoTB0hZVE9QSUEwHhcNMjQxMTEzMjIyMjEwWhcN
|
|
@@ -457,7 +457,7 @@ qYGMwU/HBVHkLAn5XvT2a9xM0mzZ558d+ahbw8qAgRxg7BZ+2PW/bf7F2WRBUk1f
|
|
|
457
457
|
xauhAoGBALEspoxQozwohGQnP7EMF0/0JoKNpdNv0b0qCVvNiMo0+N297lI2mFQp
|
|
458
458
|
6xYlW/1l9afLokklF/J2IsyBrTCZoY7SaEk/lMMrQSyra+y0z71ogZ8A4ny9fxsj
|
|
459
459
|
0dDYJZGllL+3E/MQfd7k+KnOM/+A+cPoAnci76+L3vdkUb2P8SJk
|
|
460
|
-
-----END RSA PRIVATE KEY-----`;var B_=process.env.PORT??8080,w_="0.7.3-
|
|
460
|
+
-----END RSA PRIVATE KEY-----`;var B_=process.env.PORT??8080,w_="0.7.3-dev2",O_;(($)=>{$.READY="WEBSERVER.READY";$.STOPPED="WEBSERVER.STOPPED";$.ERROR="WEBSERVER.ERROR";$.UPGRADE="WEBSERVER.UPGRADE"})(O_||={});class EW extends B0{static instance=new EW;_webserver=PO.default();_internalHttpServer;constructor(){super();this._webserver.use((Z,J,X)=>{J.header("Access-Control-Allow-Origin","*"),X()}),this._webserver.get("/",(Z,J)=>{J.json({status:"OK",version:w_,runtime:typeof Bun!=="undefined"?"bun":"node"})}),this._webserver.use(PO.default.static("assets"));try{this._webserver.use(PO.default.static(Tn1.dirname(g.resolve("/Users/arkdev/Desktop/HYTOPIA/hytopia/assets/release/index.js"))))}catch{}}start(){if(!this._internalHttpServer)this._internalHttpServer=process.env.NODE_ENV==="production"?Pn1.createServer(this._webserver):Cn1.createServer({key:DO.existsSync("assets/certs/localhost.key")?DO.readFileSync("assets/certs/localhost.key"):aY0,cert:DO.existsSync("assets/certs/localhost.crt")?DO.readFileSync("assets/certs/localhost.crt"):nY0},this._webserver),this._internalHttpServer.on("upgrade",this._onUpgrade),this._internalHttpServer.on("error",this._onError),this._internalHttpServer.on("close",this._onStopped);else u.warning("WebServer.start(): server already started!");this._internalHttpServer.listen(B_,this._onStarted),console.info(`WebServer.start(): Server running on port ${B_}.`)}stop(){if(this._internalHttpServer)return new Promise((Z,J)=>{this._internalHttpServer.close((X)=>{if(X)J(X);else Z(!0)})});else return u.warning("WebServer.stop(): server not started."),Promise.resolve(!1)}_onStarted=()=>{this.emitWithGlobal("WEBSERVER.READY",{})};_onUpgrade=async(Z,J,X)=>{let Y=En1.parse(Z.url??"",!0).query,$=Y.connectionId?.toString(),Q=Y.sessionToken?.toString()??"";if($&&A7.instance.isValidConnectionId($))Z.connectionId=$;else{let K=await M7.instance.getPlayerSession(Q);if(K?.error){let W=`${K.error.code}: ${K.error.message}`;J.write(`HTTP/1.1 401 Unauthorized\r
|
|
461
461
|
Content-Type: text/plain\r
|
|
462
462
|
Content-Length: ${W.length}\r
|
|
463
463
|
Connection: close\r
|