@drincs/pixi-vn 1.2.21 → 1.2.23
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/dist/canvas/index.cjs +5 -5
- package/dist/canvas/index.d.cts +1 -1
- package/dist/canvas/index.d.ts +1 -1
- package/dist/canvas/index.mjs +5 -5
- package/dist/canvas/tickers/index.cjs +5 -5
- package/dist/canvas/tickers/index.mjs +5 -5
- package/dist/character/index.cjs +4 -4
- package/dist/character/index.mjs +4 -4
- package/dist/history/index.cjs +1 -2
- package/dist/history/index.mjs +1 -2
- package/dist/{index-zWjaeuZw.d.cts → index-BhqocQcj.d.cts} +10 -22
- package/dist/{index-D2ndtj53.d.ts → index-Bju40pxd.d.ts} +10 -22
- package/dist/index.cjs +159 -159
- package/dist/index.d.cts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.mjs +159 -159
- package/dist/narration/index.cjs +4 -4
- package/dist/narration/index.mjs +4 -4
- package/dist/sound/index.cjs +4 -4
- package/dist/sound/index.mjs +4 -4
- package/package.json +1 -1
package/dist/character/index.mjs
CHANGED
|
@@ -18,7 +18,7 @@ Deprecated since v${i}`),console.warn(r))),lc[t]=true;}var lc,j,cc,mt=p(()=>{lc=
|
|
|
18
18
|
-ms-user-select: none;
|
|
19
19
|
`,t.accessibleText&&(e.innerText=t.accessibleText)),e.style.width=`${fo}px`,e.style.height=`${fo}px`,e.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",e.style.position="absolute",e.style.zIndex=gu.toString(),e.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?e.setAttribute("aria-live","off"):e.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?e.setAttribute("aria-relevant","additions"):e.setAttribute("aria-relevant","text"),e.addEventListener("click",this._onClick.bind(this)),e.addEventListener("focus",this._onFocus.bind(this)),e.addEventListener("focusout",this._onFocusOut.bind(this))),e.style.pointerEvents=t.accessiblePointerEvents,e.type=t.accessibleType,t.accessibleTitle&&t.accessibleTitle!==null?e.title=t.accessibleTitle:(!t.accessibleHint||t.accessibleHint===null)&&(e.title=`container ${t.tabIndex}`),t.accessibleHint&&t.accessibleHint!==null&&e.setAttribute("aria-label",t.accessibleHint),this.debug&&this._updateDebugHTML(e),t._accessibleActive=true,t._accessibleDiv=e,e.container=t,this._children.push(t),this._div.appendChild(t._accessibleDiv),t.interactive&&(t._accessibleDiv.tabIndex=t.tabIndex);}_dispatchEvent(t,e){let{container:r}=t.target,s=this._renderer.events.rootBoundary,o=Object.assign(new Ne(s),{target:r});s.rootTarget=this._renderer.lastObjectRendered,e.forEach(n=>s.dispatchEvent(o,n));}_onClick(t){this._dispatchEvent(t,["click","pointertap","tap"]);}_onFocus(t){t.target.getAttribute("aria-live")||t.target.setAttribute("aria-live","assertive"),this._dispatchEvent(t,["mouseover"]);}_onFocusOut(t){t.target.getAttribute("aria-live")||t.target.setAttribute("aria-live","polite"),this._dispatchEvent(t,["mouseout"]);}_onKeyDown(t){t.keyCode!==Kx||!this._activateOnTab||this._activate();}_onMouseMove(t){t.movementX===0&&t.movementY===0||this._deactivate();}destroy(){this._deactivate(),this._destroyTouchHook(),this._div=null,this._pool=null,this._children=null,this._renderer=null,this._activateOnTab&&globalThis.removeEventListener("keydown",this._onKeyDown);}setAccessibilityEnabled(t){t?this._activate():this._deactivate();}};ya.extension={type:[P.WebGLSystem,P.WebGPUSystem],name:"accessibility"};ya.defaultOptions={enabledByDefault:false,debug:false,activateOnTab:true,deactivateOnMouseMove:true};yu=ya;});var vu,Su=p(()=>{vu={accessible:false,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:true,_accessibleActive:false,_accessibleDiv:null,_renderId:-1};});var Tu=p(()=>{D();Ii();bu();Su();O.add(yu);O.mixin(le,vu);});var Li,wu=p(()=>{D();Li=class{static init(t){Object.defineProperty(this,"resizeTo",{set(e){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=e,e&&(globalThis.addEventListener("resize",this.queueResize),this.resize());},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()));},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null);},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let e,r;if(this._resizeTo===globalThis.window)e=globalThis.innerWidth,r=globalThis.innerHeight;else {let{clientWidth:s,clientHeight:o}=this._resizeTo;e=s,r=o;}this.renderer.resize(e,r),this.render();},this._resizeId=null,this._resizeTo=null,this.resizeTo=t.resizeTo||null;}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null;}};Li.extension=P.Application;});var He,po=p(()=>{He=(i=>(i[i.INTERACTION=50]="INTERACTION",i[i.HIGH=25]="HIGH",i[i.NORMAL=0]="NORMAL",i[i.LOW=-25]="LOW",i[i.UTILITY=-50]="UTILITY",i))(He||{});});var Ur,Pu=p(()=>{Ur=class{constructor(t,e=null,r=0,s=false){this.next=null,this.previous=null,this._destroyed=false,this._fn=t,this._context=e,this.priority=r,this._once=s;}match(t,e=null){return this._fn===t&&this._context===e}emit(t){this._fn&&(this._context?this._fn.call(this._context,t):this._fn(t));let e=this.next;return this._once&&this.destroy(true),this._destroyed&&(this.next=null),e}connect(t){this.previous=t,t.next&&(t.next.previous=this),this.next=t.next,t.next=this;}destroy(t=false){this._destroyed=true,this._fn=null,this._context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let e=this.next;return this.next=t?null:e,this.previous=null,e}};});var Mu,wt,Ui=p(()=>{po();Pu();Mu=class qt{constructor(){this.autoStart=false,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=false,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=false,this._lastFrame=-1,this._head=new Ur(null,null,1/0),this.deltaMS=1/qt.targetFPMS,this.elapsedMS=1/qt.targetFPMS,this._tick=t=>{this._requestId=null,this.started&&(this.update(t),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)));};}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick));}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null);}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start();}add(t,e,r=He.NORMAL){return this._addListener(new Ur(t,e,r))}addOnce(t,e,r=He.NORMAL){return this._addListener(new Ur(t,e,r,true))}_addListener(t){let e=this._head.next,r=this._head;if(!e)t.connect(r);else {for(;e;){if(t.priority>e.priority){t.connect(r);break}r=e,e=e.next;}t.previous||t.connect(r);}return this._startIfPossible(),this}remove(t,e){let r=this._head.next;for(;r;)r.match(t,e)?r=r.destroy():r=r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let t=0,e=this._head;for(;e=e.next;)t++;return t}start(){this.started||(this.started=true,this._requestIfNeeded());}stop(){this.started&&(this.started=false,this._cancelIfNeeded());}destroy(){if(!this._protected){this.stop();let t=this._head.next;for(;t;)t=t.destroy(true);this._head.destroy(),this._head=null;}}update(t=performance.now()){let e;if(t>this.lastTime){if(e=this.elapsedMS=t-this.lastTime,e>this._maxElapsedMS&&(e=this._maxElapsedMS),e*=this.speed,this._minElapsedMS){let o=t-this._lastFrame|0;if(o<this._minElapsedMS)return;this._lastFrame=t-o%this._minElapsedMS;}this.deltaMS=e,this.deltaTime=this.deltaMS*qt.targetFPMS;let r=this._head,s=r.next;for(;s;)s=s.emit(this);r.next||this._cancelIfNeeded();}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=t;}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(t){let e=Math.min(this.maxFPS,t),r=Math.min(Math.max(0,e)/1e3,qt.targetFPMS);this._maxElapsedMS=1/r;}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(t){if(t===0)this._minElapsedMS=0;else {let e=Math.max(this.minFPS,t);this._minElapsedMS=1/(e/1e3);}}static get shared(){if(!qt._shared){let t=qt._shared=new qt;t.autoStart=true,t._protected=true;}return qt._shared}static get system(){if(!qt._system){let t=qt._system=new qt;t.autoStart=true,t._protected=true;}return qt._system}};Mu.targetFPMS=.06;wt=Mu;});var Oi,Cu=p(()=>{D();po();Ui();Oi=class{static init(t){t=Object.assign({autoStart:true,sharedTicker:false},t),Object.defineProperty(this,"ticker",{set(e){this._ticker&&this._ticker.remove(this.render,this),this._ticker=e,e&&e.add(this.render,this,He.LOW);},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop();},this.start=()=>{this._ticker.start();},this._ticker=null,this.ticker=t.sharedTicker?wt.shared:new wt,t.autoStart&&this.start();}static destroy(){if(this._ticker){let t=this._ticker;this.ticker=null,t.destroy();}}};Oi.extension=P.Application;});var ba=p(()=>{D();wu();Cu();O.add(Li);O.add(Oi);});var va,Se,Sa=p(()=>{po();Ui();va=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=false,this._tickerAdded=false,this._pauseUpdate=true;}init(t){this.removeTickerListener(),this.events=t,this.interactionFrequency=10,this._deltaTime=0,this._didMove=false,this._tickerAdded=false,this._pauseUpdate=true;}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(t){this._pauseUpdate=t;}addTickerListener(){this._tickerAdded||!this.domElement||(wt.system.add(this._tickerUpdate,this,He.INTERACTION),this._tickerAdded=true);}removeTickerListener(){this._tickerAdded&&(wt.system.remove(this._tickerUpdate,this),this._tickerAdded=false);}pointerMoved(){this._didMove=true;}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=false;return}let t=this.events._rootPointerEvent;this.events.supportsTouchEvents&&t.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:t.clientX,clientY:t.clientY,pointerType:t.pointerType,pointerId:t.pointerId}):new MouseEvent("mousemove",{clientX:t.clientX,clientY:t.clientY}));}_tickerUpdate(t){this._deltaTime+=t.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update());}},Se=new va;});var De,mo=p(()=>{ve();co();De=class extends Ne{constructor(){super(...arguments),this.client=new Q,this.movement=new Q,this.offset=new Q,this.global=new Q,this.screen=new Q;}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(t,e,r){return t.worldTransform.applyInverse(r||this.global,e)}getModifierState(t){return "getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(t)}initMouseEvent(t,e,r,s,o,n,a,h,l,c,u,f,d,x,y){throw new Error("Method not implemented.")}};});var Ot,Ta=p(()=>{mo();Ot=class extends De{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=false;}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}};});var Te,wa=p(()=>{mo();Te=class extends De{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2;}};Te.DOM_DELTA_PIXEL=0;Te.DOM_DELTA_LINE=1;Te.DOM_DELTA_PAGE=2;});var e_,r_,zi,go,Au=p(()=>{Nt();ve();Rt();Sa();mo();Ta();wa();e_=2048,r_=new Q,zi=new Q,go=class{constructor(t){this.dispatch=new Z,this.moveOnAll=false,this.enableGlobalMoveEvents=true,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=false,this.rootTarget=t,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel);}addEventMapping(t,e){this.mappingTable[t]||(this.mappingTable[t]=[]),this.mappingTable[t].push({fn:e,priority:0}),this.mappingTable[t].sort((r,s)=>r.priority-s.priority);}dispatchEvent(t,e){t.propagationStopped=false,t.propagationImmediatelyStopped=false,this.propagate(t,e),this.dispatch.emit(e||t.type,t);}mapEvent(t){if(!this.rootTarget)return;let e=this.mappingTable[t.type];if(e)for(let r=0,s=e.length;r<s;r++)e[r].fn(t);else $(`[EventBoundary]: Event mapping not defined for ${t.type}`);}hitTest(t,e){Se.pauseUpdate=true;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",o=this[s](this.rootTarget,this.rootTarget.eventMode,r_.set(t,e),this.hitTestFn,this.hitPruneFn);return o&&o[0]}propagate(t,e){if(!t.target)return;let r=t.composedPath();t.eventPhase=t.CAPTURING_PHASE;for(let s=0,o=r.length-1;s<o;s++)if(t.currentTarget=r[s],this.notifyTarget(t,e),t.propagationStopped||t.propagationImmediatelyStopped)return;if(t.eventPhase=t.AT_TARGET,t.currentTarget=t.target,this.notifyTarget(t,e),!(t.propagationStopped||t.propagationImmediatelyStopped)){t.eventPhase=t.BUBBLING_PHASE;for(let s=r.length-2;s>=0;s--)if(t.currentTarget=r[s],this.notifyTarget(t,e),t.propagationStopped||t.propagationImmediatelyStopped)return}}all(t,e,r=this._allInteractiveElements){if(r.length===0)return;t.eventPhase=t.BUBBLING_PHASE;let s=Array.isArray(e)?e:[e];for(let o=r.length-1;o>=0;o--)s.forEach(n=>{t.currentTarget=r[o],this.notifyTarget(t,n);});}propagationPath(t){let e=[t];for(let r=0;r<e_&&t!==this.rootTarget&&t.parent;r++){if(!t.parent)throw new Error("Cannot find propagation path to disconnected target");e.push(t.parent),t=t.parent;}return e.reverse(),e}hitTestMoveRecursive(t,e,r,s,o,n=false){let a=false;if(this._interactivePrune(t))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Se.pauseUpdate=false),t.interactiveChildren&&t.children){let c=t.children;for(let u=c.length-1;u>=0;u--){let f=c[u],d=this.hitTestMoveRecursive(f,this._isInteractive(e)?e:f.eventMode,r,s,o,n||o(t,r));if(d){if(d.length>0&&!d[d.length-1].parent)continue;let x=t.isInteractive();(d.length>0||x)&&(x&&this._allInteractiveElements.push(t),d.push(t)),this._hitElements.length===0&&(this._hitElements=d),a=true;}}}let h=this._isInteractive(e),l=t.isInteractive();return l&&l&&this._allInteractiveElements.push(t),n||this._hitElements.length>0?null:a?this._hitElements:h&&!o(t,r)&&s(t,r)?l?[t]:[]:null}hitTestRecursive(t,e,r,s,o){if(this._interactivePrune(t)||o(t,r))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Se.pauseUpdate=false),t.interactiveChildren&&t.children){let h=t.children,l=r;for(let c=h.length-1;c>=0;c--){let u=h[c],f=this.hitTestRecursive(u,this._isInteractive(e)?e:u.eventMode,l,s,o);if(f){if(f.length>0&&!f[f.length-1].parent)continue;let d=t.isInteractive();return (f.length>0||d)&&f.push(t),f}}}let n=this._isInteractive(e),a=t.isInteractive();return n&&s(t,r)?a?[t]:[]:null}_isInteractive(t){return t==="static"||t==="dynamic"}_interactivePrune(t){return !t||!t.visible||!t.renderable||!t.measurable||t.eventMode==="none"||t.eventMode==="passive"&&!t.interactiveChildren}hitPruneFn(t,e){if(t.hitArea&&(t.worldTransform.applyInverse(e,zi),!t.hitArea.contains(zi.x,zi.y)))return true;if(t.effects&&t.effects.length)for(let r=0;r<t.effects.length;r++){let s=t.effects[r];if(s.containsPoint&&!s.containsPoint(e,this.hitTestFn))return true}return false}hitTestFn(t,e){return t.hitArea?true:t?.containsPoint?(t.worldTransform.applyInverse(e,zi),t.containsPoint(zi)):false}notifyTarget(t,e){if(!t.currentTarget.isInteractive())return;e??(e=t.type);let r=`on${e}`;t.currentTarget[r]?.(t);let s=t.eventPhase===t.CAPTURING_PHASE||t.eventPhase===t.AT_TARGET?`${e}capture`:e;this._notifyListeners(t,s),t.eventPhase===t.AT_TARGET&&this._notifyListeners(t,e);}mapPointerDown(t){if(!(t instanceof Ot)){$("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.createPointerEvent(t);if(this.dispatchEvent(e,"pointerdown"),e.pointerType==="touch")this.dispatchEvent(e,"touchstart");else if(e.pointerType==="mouse"||e.pointerType==="pen"){let s=e.button===2;this.dispatchEvent(e,s?"rightdown":"mousedown");}let r=this.trackingData(t.pointerId);r.pressTargetsByButton[t.button]=e.composedPath(),this.freeEvent(e);}mapPointerMove(t){if(!(t instanceof Ot)){$("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=true;let e=this.createPointerEvent(t);this._isPointerMoveEvent=false;let r=e.pointerType==="mouse"||e.pointerType==="pen",s=this.trackingData(t.pointerId),o=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&o!==e.target){let h=t.type==="mousemove"?"mouseout":"pointerout",l=this.createPointerEvent(t,h,o);if(this.dispatchEvent(l,"pointerout"),r&&this.dispatchEvent(l,"mouseout"),!e.composedPath().includes(o)){let c=this.createPointerEvent(t,"pointerleave",o);for(c.eventPhase=c.AT_TARGET;c.target&&!e.composedPath().includes(c.target);)c.currentTarget=c.target,this.notifyTarget(c),r&&this.notifyTarget(c,"mouseleave"),c.target=c.target.parent;this.freeEvent(c);}this.freeEvent(l);}if(o!==e.target){let h=t.type==="mousemove"?"mouseover":"pointerover",l=this.clonePointerEvent(e,h);this.dispatchEvent(l,"pointerover"),r&&this.dispatchEvent(l,"mouseover");let c=o?.parent;for(;c&&c!==this.rootTarget.parent&&c!==e.target;)c=c.parent;if(!c||c===this.rootTarget.parent){let f=this.clonePointerEvent(e,"pointerenter");for(f.eventPhase=f.AT_TARGET;f.target&&f.target!==o&&f.target!==this.rootTarget.parent;)f.currentTarget=f.target,this.notifyTarget(f),r&&this.notifyTarget(f,"mouseenter"),f.target=f.target.parent;this.freeEvent(f);}this.freeEvent(l);}let n=[],a=this.enableGlobalMoveEvents??true;this.moveOnAll?n.push("pointermove"):this.dispatchEvent(e,"pointermove"),a&&n.push("globalpointermove"),e.pointerType==="touch"&&(this.moveOnAll?n.splice(1,0,"touchmove"):this.dispatchEvent(e,"touchmove"),a&&n.push("globaltouchmove")),r&&(this.moveOnAll?n.splice(1,0,"mousemove"):this.dispatchEvent(e,"mousemove"),a&&n.push("globalmousemove"),this.cursor=e.target?.cursor),n.length>0&&this.all(e,n),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=e.composedPath(),this.freeEvent(e);}mapPointerOver(t){if(!(t instanceof Ot)){$("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId),r=this.createPointerEvent(t),s=r.pointerType==="mouse"||r.pointerType==="pen";this.dispatchEvent(r,"pointerover"),s&&this.dispatchEvent(r,"mouseover"),r.pointerType==="mouse"&&(this.cursor=r.target?.cursor);let o=this.clonePointerEvent(r,"pointerenter");for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),s&&this.notifyTarget(o,"mouseenter"),o.target=o.target.parent;e.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(o);}mapPointerOut(t){if(!(t instanceof Ot)){$("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId);if(e.overTargets){let r=t.pointerType==="mouse"||t.pointerType==="pen",s=this.findMountedTarget(e.overTargets),o=this.createPointerEvent(t,"pointerout",s);this.dispatchEvent(o),r&&this.dispatchEvent(o,"mouseout");let n=this.createPointerEvent(t,"pointerleave",s);for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),r&&this.notifyTarget(n,"mouseleave"),n.target=n.target.parent;e.overTargets=null,this.freeEvent(o),this.freeEvent(n);}this.cursor=null;}mapPointerUp(t){if(!(t instanceof Ot)){$("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=performance.now(),r=this.createPointerEvent(t);if(this.dispatchEvent(r,"pointerup"),r.pointerType==="touch")this.dispatchEvent(r,"touchend");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let a=r.button===2;this.dispatchEvent(r,a?"rightup":"mouseup");}let s=this.trackingData(t.pointerId),o=this.findMountedTarget(s.pressTargetsByButton[t.button]),n=o;if(o&&!r.composedPath().includes(o)){let a=o;for(;a&&!r.composedPath().includes(a);){if(r.currentTarget=a,this.notifyTarget(r,"pointerupoutside"),r.pointerType==="touch")this.notifyTarget(r,"touchendoutside");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let h=r.button===2;this.notifyTarget(r,h?"rightupoutside":"mouseupoutside");}a=a.parent;}delete s.pressTargetsByButton[t.button],n=a;}if(n){let a=this.clonePointerEvent(r,"click");a.target=n,a.path=null,s.clicksByButton[t.button]||(s.clicksByButton[t.button]={clickCount:0,target:a.target,timeStamp:e});let h=s.clicksByButton[t.button];if(h.target===a.target&&e-h.timeStamp<200?++h.clickCount:h.clickCount=1,h.target=a.target,h.timeStamp=e,a.detail=h.clickCount,a.pointerType==="mouse"){let l=a.button===2;this.dispatchEvent(a,l?"rightclick":"click");}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a);}this.freeEvent(r);}mapPointerUpOutside(t){if(!(t instanceof Ot)){$("EventBoundary cannot map a non-pointer event as a pointer event");return}let e=this.trackingData(t.pointerId),r=this.findMountedTarget(e.pressTargetsByButton[t.button]),s=this.createPointerEvent(t);if(r){let o=r;for(;o;)s.currentTarget=o,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),o=o.parent;delete e.pressTargetsByButton[t.button];}this.freeEvent(s);}mapWheel(t){if(!(t instanceof Te)){$("EventBoundary cannot map a non-wheel event as a wheel event");return}let e=this.createWheelEvent(t);this.dispatchEvent(e),this.freeEvent(e);}findMountedTarget(t){if(!t)return null;let e=t[0];for(let r=1;r<t.length&&t[r].parent===e;r++)e=t[r];return e}createPointerEvent(t,e,r){let s=this.allocateEvent(Ot);return this.copyPointerData(t,s),this.copyMouseData(t,s),this.copyData(t,s),s.nativeEvent=t.nativeEvent,s.originalEvent=t,s.target=r??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof e=="string"&&(s.type=e),s}createWheelEvent(t){let e=this.allocateEvent(Te);return this.copyWheelData(t,e),this.copyMouseData(t,e),this.copyData(t,e),e.nativeEvent=t.nativeEvent,e.originalEvent=t,e.target=this.hitTest(e.global.x,e.global.y),e}clonePointerEvent(t,e){let r=this.allocateEvent(Ot);return r.nativeEvent=t.nativeEvent,r.originalEvent=t.originalEvent,this.copyPointerData(t,r),this.copyMouseData(t,r),this.copyData(t,r),r.target=t.target,r.path=t.composedPath().slice(),r.type=e??r.type,r}copyWheelData(t,e){e.deltaMode=t.deltaMode,e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ;}copyPointerData(t,e){t instanceof Ot&&e instanceof Ot&&(e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist);}copyMouseData(t,e){t instanceof De&&e instanceof De&&(e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.copyFrom(t.client),e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.copyFrom(t.movement),e.screen.copyFrom(t.screen),e.shiftKey=t.shiftKey,e.global.copyFrom(t.global));}copyData(t,e){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.detail=t.detail,e.view=t.view,e.which=t.which,e.layer.copyFrom(t.layer),e.page.copyFrom(t.page);}trackingData(t){return this.mappingState.trackingData[t]||(this.mappingState.trackingData[t]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[t]}allocateEvent(t){this.eventPool.has(t)||this.eventPool.set(t,[]);let e=this.eventPool.get(t).pop()||new t(this);return e.eventPhase=e.NONE,e.currentTarget=null,e.defaultPrevented=false,e.path=null,e.target=null,e}freeEvent(t){if(t.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let e=t.constructor;this.eventPool.has(e)||this.eventPool.set(e,[]),this.eventPool.get(e).push(t);}_notifyListeners(t,e){let r=t.currentTarget._events[e];if(r)if("fn"in r)r.once&&t.currentTarget.removeListener(e,r.fn,void 0,true),r.fn.call(r.context,t);else for(let s=0,o=r.length;s<o&&!t.propagationImmediatelyStopped;s++)r[s].once&&t.currentTarget.removeListener(e,r[s].fn,void 0,true),r[s].fn.call(r[s].context,t);}};});var i_,s_,Ma,xo,Ca=p(()=>{D();Au();Sa();Ta();wa();i_=1,s_={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},Ma=class Pa{constructor(t){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=t,this.rootBoundary=new go(null),Se.init(this),this.autoPreventDefault=true,this._eventsAdded=false,this._rootPointerEvent=new Ot(null),this._rootWheelEvent=new Te(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Pa.defaultEventFeatures},{set:(e,r,s)=>(r==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),e[r]=s,true)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this);}static get defaultEventMode(){return this._defaultEventMode}init(t){let{canvas:e,resolution:r}=this.renderer;this.setTargetElement(e),this.resolution=r,Pa._defaultEventMode=t.eventMode??"passive",Object.assign(this.features,t.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove;}resolutionChange(t){this.resolution=t;}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null;}setCursor(t){t||(t="default");let e=true;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(e=false),this._currentCursor===t)return;this._currentCursor=t;let r=this.cursorStyles[t];if(r)switch(typeof r){case "string":e&&(this.domElement.style.cursor=r);break;case "function":r(t);break;case "object":e&&Object.assign(this.domElement.style,r);break}else e&&typeof t=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,t)&&(this.domElement.style.cursor=t);}get pointer(){return this._rootPointerEvent}_onPointerDown(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=this._normalizeToPointerData(t);this.autoPreventDefault&&e[0].isNormalized&&(t.cancelable||!("cancelable"in t))&&t.preventDefault();for(let r=0,s=e.length;r<s;r++){let o=e[r],n=this._bootstrapEvent(this._rootPointerEvent,o);this.rootBoundary.mapEvent(n);}this.setCursor(this.rootBoundary.cursor);}_onPointerMove(t){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Se.pointerMoved();let e=this._normalizeToPointerData(t);for(let r=0,s=e.length;r<s;r++){let o=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(o);}this.setCursor(this.rootBoundary.cursor);}_onPointerUp(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=t.target;t.composedPath&&t.composedPath().length>0&&(e=t.composedPath()[0]);let r=e!==this.domElement?"outside":"",s=this._normalizeToPointerData(t);for(let o=0,n=s.length;o<n;o++){let a=this._bootstrapEvent(this._rootPointerEvent,s[o]);a.type+=r,this.rootBoundary.mapEvent(a);}this.setCursor(this.rootBoundary.cursor);}_onPointerOverOut(t){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let e=this._normalizeToPointerData(t);for(let r=0,s=e.length;r<s;r++){let o=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(o);}this.setCursor(this.rootBoundary.cursor);}onWheel(t){if(!this.features.wheel)return;let e=this.normalizeWheelEvent(t);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(e);}setTargetElement(t){this._removeEvents(),this.domElement=t,Se.domElement=t,this._addEvents();}_addEvents(){if(this._eventsAdded||!this.domElement)return;Se.addTickerListener();let t=this.domElement.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="none",t.msTouchAction="none"):this.supportsPointerEvents&&(t.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,true),this.domElement.addEventListener("pointerdown",this._onPointerDown,true),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,true),this.domElement.addEventListener("pointerover",this._onPointerOverOut,true),globalThis.addEventListener("pointerup",this._onPointerUp,true)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,true),this.domElement.addEventListener("mousedown",this._onPointerDown,true),this.domElement.addEventListener("mouseout",this._onPointerOverOut,true),this.domElement.addEventListener("mouseover",this._onPointerOverOut,true),globalThis.addEventListener("mouseup",this._onPointerUp,true),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,true),this.domElement.addEventListener("touchend",this._onPointerUp,true),this.domElement.addEventListener("touchmove",this._onPointerMove,true))),this.domElement.addEventListener("wheel",this.onWheel,{passive:true,capture:true}),this._eventsAdded=true;}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Se.removeTickerListener();let t=this.domElement.style;t&&(globalThis.navigator.msPointerEnabled?(t.msContentZooming="",t.msTouchAction=""):this.supportsPointerEvents&&(t.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,true),this.domElement.removeEventListener("pointerdown",this._onPointerDown,true),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,true),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,true),globalThis.removeEventListener("pointerup",this._onPointerUp,true)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,true),this.domElement.removeEventListener("mousedown",this._onPointerDown,true),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,true),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,true),globalThis.removeEventListener("mouseup",this._onPointerUp,true),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,true),this.domElement.removeEventListener("touchend",this._onPointerUp,true),this.domElement.removeEventListener("touchmove",this._onPointerMove,true))),this.domElement.removeEventListener("wheel",this.onWheel,true),this.domElement=null,this._eventsAdded=false;}mapPositionToPoint(t,e,r){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{width:this.domElement.width,height:this.domElement.height,left:0,top:0},o=1/this.resolution;t.x=(e-s.left)*(this.domElement.width/s.width)*o,t.y=(r-s.top)*(this.domElement.height/s.height)*o;}_normalizeToPointerData(t){let e=[];if(this.supportsTouchEvents&&t instanceof TouchEvent)for(let r=0,s=t.changedTouches.length;r<s;r++){let o=t.changedTouches[r];typeof o.button>"u"&&(o.button=0),typeof o.buttons>"u"&&(o.buttons=1),typeof o.isPrimary>"u"&&(o.isPrimary=t.touches.length===1&&t.type==="touchstart"),typeof o.width>"u"&&(o.width=o.radiusX||1),typeof o.height>"u"&&(o.height=o.radiusY||1),typeof o.tiltX>"u"&&(o.tiltX=0),typeof o.tiltY>"u"&&(o.tiltY=0),typeof o.pointerType>"u"&&(o.pointerType="touch"),typeof o.pointerId>"u"&&(o.pointerId=o.identifier||0),typeof o.pressure>"u"&&(o.pressure=o.force||.5),typeof o.twist>"u"&&(o.twist=0),typeof o.tangentialPressure>"u"&&(o.tangentialPressure=0),typeof o.layerX>"u"&&(o.layerX=o.offsetX=o.clientX),typeof o.layerY>"u"&&(o.layerY=o.offsetY=o.clientY),o.isNormalized=true,o.type=t.type,e.push(o);}else if(!globalThis.MouseEvent||t instanceof MouseEvent&&(!this.supportsPointerEvents||!(t instanceof globalThis.PointerEvent))){let r=t;typeof r.isPrimary>"u"&&(r.isPrimary=true),typeof r.width>"u"&&(r.width=1),typeof r.height>"u"&&(r.height=1),typeof r.tiltX>"u"&&(r.tiltX=0),typeof r.tiltY>"u"&&(r.tiltY=0),typeof r.pointerType>"u"&&(r.pointerType="mouse"),typeof r.pointerId>"u"&&(r.pointerId=i_),typeof r.pressure>"u"&&(r.pressure=.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),r.isNormalized=true,e.push(r);}else e.push(t);return e}normalizeWheelEvent(t){let e=this._rootWheelEvent;return this._transferMouseData(e,t),e.deltaX=t.deltaX,e.deltaY=t.deltaY,e.deltaZ=t.deltaZ,e.deltaMode=t.deltaMode,this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.nativeEvent=t,e.type=t.type,e}_bootstrapEvent(t,e){return t.originalEvent=null,t.nativeEvent=e,t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist,this._transferMouseData(t,e),this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.isTrusted=e.isTrusted,t.type==="pointerleave"&&(t.type="pointerout"),t.type.startsWith("mouse")&&(t.type=t.type.replace("mouse","pointer")),t.type.startsWith("touch")&&(t.type=s_[t.type]||t.type),t}_transferMouseData(t,e){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.x=e.clientX,t.client.y=e.clientY,t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.x=e.movementX,t.movement.y=e.movementY,t.page.x=e.pageX,t.page.y=e.pageY,t.relatedTarget=null,t.shiftKey=e.shiftKey;}};Ma.extension={name:"events",type:[P.WebGLSystem,P.CanvasSystem,P.WebGPUSystem],priority:-1};Ma.defaultEventFeatures={move:true,globalMove:true,click:true,wheel:true};xo=Ma;});var Eu,Fu=p(()=>{Ca();co();Eu={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode==="dynamic"||this.eventMode==="static"},set interactive(i){this.eventMode=i?"static":"passive";},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??xo.defaultEventMode},set eventMode(i){this._internalEventMode=i;},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:true,hitArea:null,addEventListener(i,t,e){let r=typeof e=="boolean"&&e||typeof e=="object"&&e.capture,s=typeof e=="object"?e.signal:void 0,o=typeof e=="object"?e.once===true:false,n=typeof t=="function"?void 0:t;i=r?`${i}capture`:i;let a=typeof t=="function"?t:t.handleEvent,h=this;s&&s.addEventListener("abort",()=>{h.off(i,a,n);}),o?h.once(i,a,n):h.on(i,a,n);},removeEventListener(i,t,e){let r=typeof e=="boolean"&&e||typeof e=="object"&&e.capture,s=typeof t=="function"?void 0:t;i=r?`${i}capture`:i,t=typeof t=="function"?t:t.handleEvent,this.off(i,t,s);},dispatchEvent(i){if(!(i instanceof Ne))throw new Error("Container cannot propagate events outside of the Federated Events API");return i.defaultPrevented=false,i.path=null,i.target=this,i.manager.dispatchEvent(i),!i.defaultPrevented}};});var Bu=p(()=>{D();Ii();Ca();Fu();O.add(xo);O.mixin(le,Eu);});var Wi,ku=p(()=>{D();Wi=class{constructor(t){this._attachedDomElements=[],this._renderer=t,this._renderer.runners.postrender.add(this),this._domElement=document.createElement("div"),this._domElement.style.position="absolute",this._domElement.style.top="0",this._domElement.style.left="0",this._domElement.style.pointerEvents="none",this._domElement.style.zIndex="1000";}addRenderable(t,e){this._attachedDomElements.includes(t)||this._attachedDomElements.push(t);}updateRenderable(t){}validateRenderable(t){return true}postrender(){let t=this._attachedDomElements;if(t.length===0){this._domElement.remove();return}let e=this._renderer.view.canvas;this._domElement.parentNode!==e.parentNode&&e.parentNode?.appendChild(this._domElement);let r=parseFloat(e.style.width)/e.width*this._renderer.resolution,s=parseFloat(e.style.height)/e.height*this._renderer.resolution;this._domElement.style.transform=`translate(${e.offsetLeft}px, ${e.offsetTop}px) scale(${r}, ${s})`;for(let o=0;o<t.length;o++){let n=t[o],a=n.element;if(!n.parent||n.globalDisplayStatus<7)a?.remove(),t.splice(o,1),o--;else {this._domElement.contains(a)||(a.style.position="absolute",a.style.pointerEvents="auto",this._domElement.appendChild(a));let h=n.worldTransform,l=n._anchor,c=n.width*l.x,u=n.height*l.y;a.style.transformOrigin=`${c}px ${u}px`,a.style.transform=`matrix(${h.a}, ${h.b}, ${h.c}, ${h.d}, ${h.tx-c}, ${h.ty-u})`,a.style.opacity=n.groupAlpha.toString();}}}destroy(){this._renderer.runners.postrender.remove(this);for(let t=0;t<this._attachedDomElements.length;t++)this._attachedDomElements[t].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._renderer=null;}};Wi.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"dom"};});var Or,Aa=p(()=>{he();Ii();Or=class extends le{constructor(t){super(t),this.canBundle=true,this.allowChildren=false,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this._bounds=new dt(0,1,0,0),this._boundsDirty=true;}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=false,this._bounds):this._bounds}get roundPixels(){return !!this._roundPixels}set roundPixels(t){this._roundPixels=t?1:0;}containsPoint(t){let e=this.bounds,{x:r,y:s}=t;return r>=e.minX&&r<=e.maxX&&s>=e.minY&&s<=e.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=true,this.didViewUpdate)return;this.didViewUpdate=true;let t=this.renderGroup||this.parentRenderGroup;t&&t.onChildViewUpdate(this);}destroy(t){super.destroy(t),this._bounds=null;for(let e in this._gpuData)this._gpuData[e].destroy?.();this._gpuData=null;}collectRenderablesSimple(t,e,r){let{renderPipes:s}=e;s.blendMode.setBlendMode(this,this.groupBlendMode,t),s[this.renderPipeId].addRenderable(this,t),this.didViewUpdate=false;let n=this.children,a=n.length;for(let h=0;h<a;h++)n[h].collectRenderables(t,e,r);}};});var Gu=p(()=>{D();ku();O.add(Wi);});var zr,Ea=p(()=>{zr=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(zr||{});});var Ru,Iu=p(()=>{Ru={createCanvas:(i,t)=>{let e=document.createElement("canvas");return e.width=i,e.height=t,e},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(i,t)=>fetch(i,t),parseXML:i=>new DOMParser().parseFromString(i,"text/xml")};});var Du,ft,ce=p(()=>{Iu();Du=Ru,ft={get(){return Du},set(i){Du=i;}};});function ue(i){if(typeof i!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(i)}`)}function Vi(i){return i.split("?")[0].split("#")[0]}function o_(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function n_(i,t,e){return i.replace(new RegExp(o_(t),"g"),e)}function a_(i,t){let e="",r=0,s=-1,o=0,n=-1;for(let a=0;a<=i.length;++a){if(a<i.length)n=i.charCodeAt(a);else {if(n===47)break;n=47;}if(n===47){if(!(s===a-1||o===1))if(s!==a-1&&o===2){if(e.length<2||r!==2||e.charCodeAt(e.length-1)!==46||e.charCodeAt(e.length-2)!==46){if(e.length>2){let h=e.lastIndexOf("/");if(h!==e.length-1){h===-1?(e="",r=0):(e=e.slice(0,h),r=e.length-1-e.lastIndexOf("/")),s=a,o=0;continue}}else if(e.length===2||e.length===1){e="",r=0,s=a,o=0;continue}}}else e.length>0?e+=`/${i.slice(s+1,a)}`:e=i.slice(s+1,a),r=a-s-1;s=a,o=0;}else n===46&&o!==-1?++o:o=-1;}return e}var $t,_o=p(()=>{ce();$t={toPosix(i){return n_(i,"\\","/")},isUrl(i){return /^https?:/.test(this.toPosix(i))},isDataUrl(i){return /^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(i)},isBlobUrl(i){return i.startsWith("blob:")},hasProtocol(i){return /^[^/:]+:/.test(this.toPosix(i))},getProtocol(i){ue(i),i=this.toPosix(i);let t=/^file:\/\/\//.exec(i);if(t)return t[0];let e=/^[^/:]+:\/{0,2}/.exec(i);return e?e[0]:""},toAbsolute(i,t,e){if(ue(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;let r=Vi(this.toPosix(t??ft.get().getBaseUrl())),s=Vi(this.toPosix(e??this.rootname(r)));return i=this.toPosix(i),i.startsWith("/")?$t.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(ue(i),i.length===0)return ".";if(this.isDataUrl(i)||this.isBlobUrl(i))return i;i=this.toPosix(i);let t="",e=i.startsWith("/");this.hasProtocol(i)&&(t=this.rootname(i),i=i.slice(t.length));let r=i.endsWith("/");return i=a_(i),i.length>0&&r&&(i+="/"),e?`/${i}`:t+i},isAbsolute(i){return ue(i),i=this.toPosix(i),this.hasProtocol(i)?true:i.startsWith("/")},join(...i){if(i.length===0)return ".";let t;for(let e=0;e<i.length;++e){let r=i[e];if(ue(r),r.length>0)if(t===void 0)t=r;else {let s=i[e-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?t+=`/../${r}`:t+=`/${r}`;}}return t===void 0?".":this.normalize(t)},dirname(i){if(ue(i),i.length===0)return ".";i=this.toPosix(i);let t=i.charCodeAt(0),e=t===47,r=-1,s=true,o=this.getProtocol(i),n=i;i=i.slice(o.length);for(let a=i.length-1;a>=1;--a)if(t=i.charCodeAt(a),t===47){if(!s){r=a;break}}else s=false;return r===-1?e?"/":this.isUrl(n)?o+i:o:e&&r===1?"//":o+i.slice(0,r)},rootname(i){ue(i),i=this.toPosix(i);let t="";if(i.startsWith("/")?t="/":t=this.getProtocol(i),this.isUrl(i)){let e=i.indexOf("/",t.length);e!==-1?t=i.slice(0,e):t=i,t.endsWith("/")||(t+="/");}return t},basename(i,t){ue(i),t&&ue(t),i=Vi(this.toPosix(i));let e=0,r=-1,s=true,o;if(t!==void 0&&t.length>0&&t.length<=i.length){if(t.length===i.length&&t===i)return "";let n=t.length-1,a=-1;for(o=i.length-1;o>=0;--o){let h=i.charCodeAt(o);if(h===47){if(!s){e=o+1;break}}else a===-1&&(s=false,a=o+1),n>=0&&(h===t.charCodeAt(n)?--n===-1&&(r=o):(n=-1,r=a));}return e===r?r=a:r===-1&&(r=i.length),i.slice(e,r)}for(o=i.length-1;o>=0;--o)if(i.charCodeAt(o)===47){if(!s){e=o+1;break}}else r===-1&&(s=false,r=o+1);return r===-1?"":i.slice(e,r)},extname(i){ue(i),i=Vi(this.toPosix(i));let t=-1,e=0,r=-1,s=true,o=0;for(let n=i.length-1;n>=0;--n){let a=i.charCodeAt(n);if(a===47){if(!s){e=n+1;break}continue}r===-1&&(s=false,r=n+1),a===46?t===-1?t=n:o!==1&&(o=1):t!==-1&&(o=-1);}return t===-1||r===-1||o===0||o===1&&t===r-1&&t===e+1?"":i.slice(t,r)},parse(i){ue(i);let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;i=Vi(this.toPosix(i));let e=i.charCodeAt(0),r=this.isAbsolute(i),s;t.root=this.rootname(i),r||this.hasProtocol(i)?s=1:s=0;let n=-1,a=0,h=-1,l=true,c=i.length-1,u=0;for(;c>=s;--c){if(e=i.charCodeAt(c),e===47){if(!l){a=c+1;break}continue}h===-1&&(l=false,h=c+1),e===46?n===-1?n=c:u!==1&&(u=1):n!==-1&&(u=-1);}return n===-1||h===-1||u===0||u===1&&n===h-1&&n===a+1?h!==-1&&(a===0&&r?t.base=t.name=i.slice(1,h):t.base=t.name=i.slice(a,h)):(a===0&&r?(t.name=i.slice(1,n),t.base=i.slice(1,h)):(t.name=i.slice(a,n),t.base=i.slice(a,h)),t.ext=i.slice(n,h)),t.dir=this.dirname(i),t},sep:"/",delimiter:":",joinExtensions:[".html"]};});var Ye,Fa=p(()=>{Ye=(i,t,e=false)=>(Array.isArray(i)||(i=[i]),t?i.map(r=>typeof r=="string"||e?t(r):r):i);});function Lu(i,t,e,r,s){let o=t[e];for(let n=0;n<o.length;n++){let a=o[n];e<t.length-1?Lu(i.replace(r[e],a),t,e+1,r,s):s.push(i.replace(r[e],a));}}function Uu(i){let t=/\{(.*?)\}/g,e=i.match(t),r=[];if(e){let s=[];e.forEach(o=>{let n=o.substring(1,o.length-1).split(",");s.push(n);}),Lu(i,s,0,e,r);}else r.push(i);return r}var Ou=p(()=>{});var Ba,zu=p(()=>{Ba=i=>!Array.isArray(i);});function h_(i){return i.split(".").pop().split("?").shift().split("#").shift()}var Ni,Wu=p(()=>{Rt();_o();Fa();Ou();zu();Ni=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(t,e)=>`${t}${this._bundleIdConnector}${e}`,extractAssetIdFromBundle:(t,e)=>e.replace(`${t}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={};}setBundleIdentifier(t){if(this._bundleIdConnector=t.connector??this._bundleIdConnector,this._createBundleAssetId=t.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=t.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...t){t.forEach(e=>{this._preferredOrder.push(e),e.priority||(e.priority=Object.keys(e.params));}),this._resolverHash={};}set basePath(t){this._basePath=t;}get basePath(){return this._basePath}set rootPath(t){this._rootPath=t;}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null;}setDefaultSearchParams(t){if(typeof t=="string")this._defaultSearchParams=t;else {let e=t;this._defaultSearchParams=Object.keys(e).map(r=>`${encodeURIComponent(r)}=${encodeURIComponent(e[r])}`).join("&");}}getAlias(t){let{alias:e,src:r}=t;return Ye(e||r,o=>typeof o=="string"?o:Array.isArray(o)?o.map(n=>n?.src??n):o?.src?o.src:o,true)}addManifest(t){this._manifest&&$("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=t,t.bundles.forEach(e=>{this.addBundle(e.name,e.assets);});}addBundle(t,e){let r=[],s=e;Array.isArray(e)||(s=Object.entries(e).map(([o,n])=>typeof n=="string"||Array.isArray(n)?{alias:o,src:n}:{alias:o,...n})),s.forEach(o=>{let n=o.src,a=o.alias,h;if(typeof a=="string"){let l=this._createBundleAssetId(t,a);r.push(l),h=[a,l];}else {let l=a.map(c=>this._createBundleAssetId(t,c));r.push(...l),h=[...a,...l];}this.add({...o,alias:h,src:n});}),this._bundles[t]=r;}add(t){let e=[];Array.isArray(t)?e.push(...t):e.push(t);let r;r=o=>{this.hasKey(o)&&$(`[Resolver] already has key: ${o} overwriting`);},Ye(e).forEach(o=>{let{src:n}=o,{data:a,format:h,loadParser:l}=o,c=Ye(n).map(d=>typeof d=="string"?Uu(d):Array.isArray(d)?d:[d]),u=this.getAlias(o);Array.isArray(u)?u.forEach(r):r(u);let f=[];c.forEach(d=>{d.forEach(x=>{let y={};if(typeof x!="object"){y.src=x;for(let m=0;m<this._parsers.length;m++){let _=this._parsers[m];if(_.test(x)){y=_.parse(x);break}}}else a=x.data??a,h=x.format??h,l=x.loadParser??l,y={...y,...x};if(!u)throw new Error(`[Resolver] alias is undefined for this asset: ${y.src}`);y=this._buildResolvedAsset(y,{aliases:u,data:a,format:h,loadParser:l}),f.push(y);});}),u.forEach(d=>{this._assetMap[d]=f;});});}resolveBundle(t){let e=Ba(t);t=Ye(t);let r={};return t.forEach(s=>{let o=this._bundles[s];if(o){let n=this.resolve(o),a={};for(let h in n){let l=n[h];a[this._extractAssetIdFromBundle(s,h)]=l;}r[s]=a;}}),e?r[t[0]]:r}resolveUrl(t){let e=this.resolve(t);if(typeof t!="string"){let r={};for(let s in e)r[s]=e[s].src;return r}return e.src}resolve(t){let e=Ba(t);t=Ye(t);let r={};return t.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let o=this._assetMap[s],n=this._getPreferredOrder(o);n?.priority.forEach(a=>{n.params[a].forEach(h=>{let l=o.filter(c=>c[a]?c[a]===h:false);l.length&&(o=l);});}),this._resolverHash[s]=o[0];}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});r[s]=this._resolverHash[s];}),e?r[t[0]]:r}hasKey(t){return !!this._assetMap[t]}hasBundle(t){return !!this._bundles[t]}_getPreferredOrder(t){for(let e=0;e<t.length;e++){let r=t[e],s=this._preferredOrder.find(o=>o.params.format.includes(r.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(t){if(!this._defaultSearchParams)return t;let e=/\?/.test(t)?"&":"?";return `${t}${e}${this._defaultSearchParams}`}_buildResolvedAsset(t,e){let{aliases:r,data:s,loadParser:o,format:n}=e;return (this._basePath||this._rootPath)&&(t.src=$t.toAbsolute(t.src,this._basePath,this._rootPath)),t.alias=r??t.alias??[t.src],t.src=this._appendDefaultSearchParams(t.src),t.data={...s||{},...t.data},t.loadParser=o??t.loadParser,t.format=n??t.format??h_(t.src),t}};Ni.RETINA_PREFIX=/@([0-9\.]+)x/;});var ka,Vu=p(()=>{ka=(i,t)=>{let e=t.split("?")[1];return e&&(i+=`?${e}`),i};});var Nu,Ga,Hu=p(()=>{Yt();Re();Bt();Nu=class Hi{constructor(t,e){this.linkedSheets=[];let r=t;t?.source instanceof Tt&&(r={texture:t,data:e});let{texture:s,data:o,cachePrefix:n=""}=r;this.cachePrefix=n,this._texture=s instanceof I?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=o;let a=parseFloat(o.meta.scale);a?(this.resolution=a,s.source.resolution=this.resolution):this.resolution=s.source._resolution,this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null;}parse(){return new Promise(t=>{this._callback=t,this._batchIndex=0,this._frameKeys.length<=Hi.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch();})}_processFrames(t){let e=t,r=Hi.BATCH_SIZE;for(;e-t<r&&e<this._frameKeys.length;){let s=this._frameKeys[e],o=this._frames[s],n=o.frame;if(n){let a=null,h=null,l=o.trimmed!==false&&o.sourceSize?o.sourceSize:o.frame,c=new tt(0,0,Math.floor(l.w)/this.resolution,Math.floor(l.h)/this.resolution);o.rotated?a=new tt(Math.floor(n.x)/this.resolution,Math.floor(n.y)/this.resolution,Math.floor(n.h)/this.resolution,Math.floor(n.w)/this.resolution):a=new tt(Math.floor(n.x)/this.resolution,Math.floor(n.y)/this.resolution,Math.floor(n.w)/this.resolution,Math.floor(n.h)/this.resolution),o.trimmed!==false&&o.spriteSourceSize&&(h=new tt(Math.floor(o.spriteSourceSize.x)/this.resolution,Math.floor(o.spriteSourceSize.y)/this.resolution,Math.floor(n.w)/this.resolution,Math.floor(n.h)/this.resolution)),this.textures[s]=new I({source:this.textureSource,frame:a,orig:c,trim:h,rotate:o.rotated?2:0,defaultAnchor:o.anchor,defaultBorders:o.borders,label:s.toString()});}e++;}}_processAnimations(){let t=this.data.animations||{};for(let e in t){this.animations[e]=[];for(let r=0;r<t[e].length;r++){let s=t[e][r];this.animations[e].push(this.textures[s]);}}}_parseComplete(){let t=this._callback;this._callback=null,this._batchIndex=0,t.call(this,this.textures);}_nextBatch(){this._processFrames(this._batchIndex*Hi.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Hi.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete());},0);}destroy(t=false){for(let e in this.textures)this.textures[e].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,t&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[];}};Nu.BATCH_SIZE=1e3;Ga=Nu;});function Yu(i,t,e){let r={};if(i.forEach(s=>{r[s]=t;}),Object.keys(t.textures).forEach(s=>{r[`${t.cachePrefix}${s}`]=t.textures[s];}),!e){let s=$t.dirname(i[0]);t.linkedSheets.forEach((o,n)=>{let a=Yu([`${s}/${t.data.meta.related_multi_packs[n]}`],o,true);Object.assign(r,a);});}return r}var l_,$u,Xu=p(()=>{Ea();Wu();Vu();D();Bt();_o();Hu();l_=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];$u={extension:P.Asset,cache:{test:i=>i instanceof Ga,getCacheableAssets:(i,t)=>Yu(i,t,false)},resolver:{extension:{type:P.ResolveParser,name:"resolveSpritesheet"},test:i=>{let e=i.split("?")[0].split("."),r=e.pop(),s=e.pop();return r==="json"&&l_.includes(s)},parse:i=>{let t=i.split(".");return {resolution:parseFloat(Ni.RETINA_PREFIX.exec(i)?.[1]??"1"),format:t[t.length-2],src:i}}},loader:{name:"spritesheetLoader",extension:{type:P.LoadParser,priority:zr.Normal,name:"spritesheetLoader"},async testParse(i,t){return $t.extname(t.src).toLowerCase()===".json"&&!!i.frames},async parse(i,t,e){let{texture:r,imageFilename:s,textureOptions:o,cachePrefix:n}=t?.data??{},a=$t.dirname(t.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let h;if(r instanceof I)h=r;else {let u=ka(a+(s??i.meta.image),t.src);h=(await e.load([{src:u,data:o}]))[u];}let l=new Ga({texture:h.source,data:i,cachePrefix:n});await l.parse();let c=i?.meta?.related_multi_packs;if(Array.isArray(c)){let u=[];for(let d of c){if(typeof d!="string")continue;let x=a+d;t.data?.ignoreMultiPack||(x=ka(x,t.src),u.push(e.load({src:x,data:{textureOptions:o,ignoreMultiPack:true}})));}let f=await Promise.all(u);l.linkedSheets=f,f.forEach(d=>{d.linkedSheets=[l].concat(l.linkedSheets.filter(x=>x!==d));});}return l},async unload(i,t,e){await e.unload(i.textureSource._sourceOrigin),i.destroy(false);}}};});var yo=p(()=>{D();Xu();O.add($u);});function bo(i,t,e){let{width:r,height:s}=e.orig,o=e.trim;if(o){let n=o.width,a=o.height;i.minX=o.x-t._x*r,i.maxX=i.minX+n,i.minY=o.y-t._y*s,i.maxY=i.minY+a;}else i.minX=-t._x*r,i.maxX=i.minX+r,i.minY=-t._y*s,i.maxY=i.minY+s;}var Ra=p(()=>{});var Yi,ju=p(()=>{Kn();Bt();Ra();mt();Aa();Yi=class i extends Or{constructor(t=I.EMPTY){t instanceof I&&(t={texture:t});let{texture:e=I.EMPTY,anchor:r,roundPixels:s,width:o,height:n,...a}=t;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=true,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new Ct({_onUpdate:()=>{this.onViewUpdate();}}),r?this.anchor=r:e.defaultAnchor&&(this.anchor=e.defaultAnchor),this.texture=e,this.allowChildren=false,this.roundPixels=s??false,o!==void 0&&(this.width=o),n!==void 0&&(this.height=n);}static from(t,e=false){return t instanceof I?new i(t):new i(I.from(t,e))}set texture(t){t||(t=I.EMPTY);let e=this._texture;e!==t&&(e&&e.dynamic&&e.off("update",this.onViewUpdate,this),t.dynamic&&t.on("update",this.onViewUpdate,this),this._texture=t,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate());}get texture(){return this._texture}get visualBounds(){return bo(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return R("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let t=this._anchor,e=this._texture,r=this._bounds,{width:s,height:o}=e.orig;r.minX=-t._x*s,r.maxX=r.minX+s,r.minY=-t._y*o,r.maxY=r.minY+o;}destroy(t=false){if(super.destroy(t),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._texture.destroy(r);}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null,this._gpuData=null;}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t);}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(t){this._setWidth(t,this._texture.orig.width),this._width=t;}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(t){this._setHeight(t,this._texture.orig.height),this._height=t;}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this._texture.orig.width,t.height=Math.abs(this.scale.y)*this._texture.orig.height,t}setSize(t,e){typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,this._texture.orig.width),e!==void 0&&this._setHeight(e,this._texture.orig.height);}};});function vo(i,t,e){let r=c_;i.measurable=true,Js(i,e,r),t.addBoundsMask(r),i.measurable=false;}var c_,Ia=p(()=>{he();eo();c_=new dt;});function So(i,t,e){let r=Kt.get();i.measurable=true;let s=xt.get().identity(),o=Ku(i,e,s);io(i,r,o),i.measurable=false,t.addBoundsMask(r),xt.return(s),Kt.return(r);}function Ku(i,t,e){return i?(i!==t&&(Ku(i.parent,t,e),i.updateLocalTransform(),e.append(i.localTransform)),e):($("Mask bounds, renderable is not inside the root container"),e)}var Da=p(()=>{sa();ur();Rt();});var $i,qu=p(()=>{D();ju();Ia();Da();$i=class{constructor(t){this.priority=0,this.inverse=false,this.pipe="alphaMask",t?.mask&&this.init(t.mask);}init(t){this.mask=t,this.renderMaskToTexture=!(t instanceof Yi),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=false;}reset(){this.mask.measurable=true,this.mask=null;}addBounds(t,e){this.inverse||vo(this.mask,t,e);}addLocalBounds(t,e){So(this.mask,t,e);}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset();}static test(t){return t instanceof Yi}};$i.extension=P.MaskEffect;});var Xi,Zu=p(()=>{D();Xi=class{constructor(t){this.priority=0,this.pipe="colorMask",t?.mask&&this.init(t.mask);}init(t){this.mask=t;}destroy(){}static test(t){return typeof t=="number"}};Xi.extension=P.MaskEffect;});var ji,Qu=p(()=>{D();Ii();Ia();Da();ji=class{constructor(t){this.priority=0,this.pipe="stencilMask",t?.mask&&this.init(t.mask);}init(t){this.mask=t,this.mask.includeInBuild=false,this.mask.measurable=false;}reset(){this.mask.measurable=true,this.mask.includeInBuild=true,this.mask=null;}addBounds(t,e){vo(this.mask,t,e);}addLocalBounds(t,e){So(this.mask,t,e);}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset();}static test(t){return t instanceof le}};ji.extension=P.MaskEffect;});var Wr,Ju=p(()=>{ce();D();Re();Wr=class extends Tt{constructor(t){t.resource||(t.resource=ft.get().createCanvas()),t.width||(t.width=t.resource.width,t.autoDensity||(t.width/=t.resolution)),t.height||(t.height=t.resource.height,t.autoDensity||(t.height/=t.resolution)),super(t),this.uploadMethodId="image",this.autoDensity=t.autoDensity,this.resizeCanvas(),this.transparent=!!t.transparent;}resizeCanvas(){this.autoDensity&&"style"in this.resource&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)&&(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight);}resize(t=this.width,e=this.height,r=this._resolution){let s=super.resize(t,e,r);return s&&this.resizeCanvas(),s}static test(t){return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&t instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};Wr.extension=P.TextureSource;});var we,To=p(()=>{D();Re();we=class extends Tt{constructor(t){super(t),this.uploadMethodId="image",this.autoGarbageCollect=true;}static test(t){return globalThis.HTMLImageElement&&t instanceof HTMLImageElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||globalThis.VideoFrame&&t instanceof VideoFrame}};we.extension=P.TextureSource;});async function td(){return La??(La=(async()=>{let t=document.createElement("canvas").getContext("webgl");if(!t)return "premultiply-alpha-on-upload";let e=await new Promise(n=>{let a=document.createElement("video");a.onloadeddata=()=>n(a),a.onerror=()=>n(null),a.autoplay=false,a.crossOrigin="anonymous",a.preload="auto",a.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",a.load();});if(!e)return "premultiply-alpha-on-upload";let r=t.createTexture();t.bindTexture(t.TEXTURE_2D,r);let s=t.createFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,s),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,r,0),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,false),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e);let o=new Uint8Array(4);return t.readPixels(0,0,1,1,t.RGBA,t.UNSIGNED_BYTE,o),t.deleteFramebuffer(s),t.deleteTexture(r),t.getExtension("WEBGL_lose_context")?.loseContext(),o[0]<=o[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),La}var La,ed=p(()=>{});var wo,id,sd=p(()=>{D();Ui();ed();Re();wo=class rd extends Tt{constructor(t){super(t),this.isReady=false,this.uploadMethodId="video",t={...rd.defaultOptions,...t},this._autoUpdate=true,this._isConnectedToTicker=false,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=t.autoPlay!==false,this.alphaMode=t.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),t.autoLoad!==false&&this.load();}updateFrame(){if(!this.destroyed){if(this._updateFPS){let t=wt.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-t);}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update();}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback);}get isValid(){return !!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;let t=this.resource,e=this.options;return (t.readyState===t.HAVE_ENOUGH_DATA||t.readyState===t.HAVE_FUTURE_DATA)&&t.width&&t.height&&(t.complete=true),t.addEventListener("play",this._onPlayStart),t.addEventListener("pause",this._onPlayStop),t.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(e.preload||t.addEventListener("canplay",this._onCanPlay),t.addEventListener("canplaythrough",this._onCanPlayThrough),t.addEventListener("error",this._onError,true)),this.alphaMode=await td(),this._load=new Promise((r,s)=>{this.isValid?r(this):(this._resolve=r,this._reject=s,e.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${e.preloadTimeoutMs}ms`));})),t.load());}),this._load}_onError(t){this.resource.removeEventListener("error",this._onError,true),this.emit("error",t),this._reject&&(this._reject(t),this._reject=null,this._resolve=null);}_isSourcePlaying(){let t=this.resource;return !t.paused&&!t.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this.isValid||this._mediaReady(),this._configureAutoUpdate();}_onPlayStop(){this._configureAutoUpdate();}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0);}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady();}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlay),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady();}_mediaReady(){let t=this.resource;this.isValid&&(this.isReady=true,this.resize(t.videoWidth,t.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play();}destroy(){this._configureAutoUpdate();let t=this.resource;t&&(t.removeEventListener("play",this._onPlayStart),t.removeEventListener("pause",this._onPlayStop),t.removeEventListener("seeked",this._onSeeked),t.removeEventListener("canplay",this._onCanPlay),t.removeEventListener("canplaythrough",this._onCanPlayThrough),t.removeEventListener("error",this._onError,true),t.pause(),t.src="",t.load()),super.destroy();}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){t!==this._autoUpdate&&(this._autoUpdate=t,this._configureAutoUpdate());}get updateFPS(){return this._updateFPS}set updateFPS(t){t!==this._updateFPS&&(this._updateFPS=t,this._configureAutoUpdate());}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(wt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=false,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(wt.shared.add(this.updateFrame,this),this._isConnectedToTicker=true,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(wt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=false,this._msToNextUpdate=0));}static test(t){return globalThis.HTMLVideoElement&&t instanceof HTMLVideoElement}};wo.extension=P.TextureSource;wo.defaultOptions={...Tt.defaultOptions,autoLoad:true,autoPlay:true,updateFPS:0,crossorigin:true,loop:false,muted:true,playsinline:true,preload:false};wo.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};id=wo;});var Ua,_t,Ki=p(()=>{Rt();Fa();Ua=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map;}reset(){this._cacheMap.clear(),this._cache.clear();}has(t){return this._cache.has(t)}get(t){let e=this._cache.get(t);return e||$(`[Assets] Asset id ${t} was not found in the Cache`),e}set(t,e){let r=Ye(t),s;for(let h=0;h<this.parsers.length;h++){let l=this.parsers[h];if(l.test(e)){s=l.getCacheableAssets(r,e);break}}let o=new Map(Object.entries(s||{}));s||r.forEach(h=>{o.set(h,e);});let n=[...o.keys()],a={cacheKeys:n,keys:r};r.forEach(h=>{this._cacheMap.set(h,a);}),n.forEach(h=>{let l=s?s[h]:e;this._cache.has(h)&&this._cache.get(h)!==l&&$("[Cache] already has key:",h),this._cache.set(h,o.get(h));});}remove(t){if(!this._cacheMap.has(t)){$(`[Assets] Asset id ${t} was not found in the Cache`);return}let e=this._cacheMap.get(t);e.cacheKeys.forEach(s=>{this._cache.delete(s);}),e.keys.forEach(s=>{this._cacheMap.delete(s);});}get parsers(){return this._parsers}},_t=new Ua;});function od(i={}){let t=i&&i.resource,e=t?i.resource:i,r=t?i:{resource:i};for(let s=0;s<Oa.length;s++){let o=Oa[s];if(o.test(e))return new o(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function nd(i={},t=false){let e=i&&i.resource,r=e?i.resource:i,s=e?i:{resource:i};if(!t&&_t.has(r))return _t.get(r);let o=new I({source:od(s)});return o.on("destroy",()=>{_t.has(r)&&_t.remove(r);}),t||_t.set(r,o),o}function ad(i,t=false){return typeof i=="string"?_t.get(i):i instanceof Tt?new I({source:i}):nd(i,t)}var Oa,za=p(()=>{Ki();D();Re();Bt();Oa=[];O.handleByList(P.TextureSource,Oa);I.from=ad;Tt.from=od;});var Po=p(()=>{D();qu();Zu();Qu();ua();Ju();To();sd();za();O.add($i,Xi,ji,id,we,Wr,gr);});var oe,qi=p(()=>{oe=class{constructor(t){this.resources=Object.create(null),this._dirty=true;let e=0;for(let r in t){let s=t[r];this.setResource(s,e++);}this._updateKey();}_updateKey(){if(!this._dirty)return;this._dirty=false;let t=[],e=0;for(let r in this.resources)t[e++]=this.resources[r]._resourceId;this._key=t.join("|");}setResource(t,e){let r=this.resources[e];t!==r&&(r&&t.off?.("change",this.onResourceChange,this),t.on?.("change",this.onResourceChange,this),this.resources[e]=t,this._dirty=true);}getResource(t){return this.resources[t]}_touch(t){let e=this.resources;for(let r in e)e[r]._touched=t;}destroy(){let t=this.resources;for(let e in t)t[e].off?.("change",this.onResourceChange,this);this.resources=null;}onResourceChange(t){if(this._dirty=true,t.destroyed){let e=this.resources;for(let r in e)e[r]===t&&(e[r]=null);}else this._updateKey();}};});function ld(i,t,e){let r=2166136261;for(let s=0;s<t;s++)r^=i[s].uid,r=Math.imul(r,16777619),r>>>=0;return hd[r]||u_(i,t,r,e)}function u_(i,t,e,r){let s={},o=0;for(let a=0;a<r;a++){let h=a<t?i[a]:I.EMPTY.source;s[o++]=h.source,s[o++]=h.style;}let n=new oe(s);return hd[e]=n,n}var hd,cd=p(()=>{qi();Bt();hd={};});var Pe,Wa=p(()=>{Pe=class{constructor(t){typeof t=="number"?this.rawBinaryData=new ArrayBuffer(t):t instanceof Uint8Array?this.rawBinaryData=t.buffer:this.rawBinaryData=t,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData),this.size=this.rawBinaryData.byteLength;}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}get float64View(){return this._float64Array||(this._float64Array=new Float64Array(this.rawBinaryData)),this._float64Array}get bigUint64View(){return this._bigUint64Array||(this._bigUint64Array=new BigUint64Array(this.rawBinaryData)),this._bigUint64Array}view(t){return this[`${t}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this.uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null;}static sizeOf(t){switch(t){case "int8":case "uint8":return 1;case "int16":case "uint16":return 2;case "int32":case "uint32":case "float32":return 4;default:throw new Error(`${t} isn't a valid view type`)}}};});function Va(i,t){let e=i.byteLength/8|0,r=new Float64Array(i,0,e);new Float64Array(t,0,e).set(r);let o=i.byteLength-e*8;if(o>0){let n=new Uint8Array(i,e*8,o);new Uint8Array(t,e*8,o).set(n);}}var ud=p(()=>{});var dd,fd=p(()=>{dd={normal:"normal-npm",add:"add-npm",screen:"screen-npm"};});function Le(i,t){return t.alphaMode==="no-premultiply-alpha"&&dd[i]||i}var Zi=p(()=>{fd();});function Co(){return (!Mo||Mo?.isContextLost())&&(Mo=ft.get().createCanvas().getContext("webgl",{})),Mo}var Mo,Na=p(()=>{ce();});function f_(i){let t="";for(let e=0;e<i;++e)e>0&&(t+=`
|
|
20
20
|
else `),e<i-1&&(t+=`if(test == ${e}.0){}`);return t}function pd(i,t){if(i===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let e=t.createShader(t.FRAGMENT_SHADER);try{for(;;){let r=d_.replace(/%forloop%/gi,f_(i));if(t.shaderSource(e,r),t.compileShader(e),!t.getShaderParameter(e,t.COMPILE_STATUS))i=i/2|0;else break}}finally{t.deleteShader(e);}return i}var d_,md=p(()=>{d_=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
|
|
21
|
-
`);});function gd(){if(Vr)return Vr;let i=Co();return Vr=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Vr=pd(Vr,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Vr}var Vr,xd=p(()=>{Na();md();Vr=null;});var Ao,_d=p(()=>{Ao=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0;}clear(){for(let t=0;t<this.count;t++){let e=this.textures[t];this.textures[t]=null,this.ids[e.uid]=null;}this.count=0;}};});function yd(){return Ya>0?vd[--Ya]:new Ha}function bd(i){vd[Ya++]=i;}var Ha,vd,Ya,Qi,Sd,wd,Pd=p(()=>{Ut();Wa();mt();ud();Zi();xd();_d();Ha=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Ao,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=true;}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null;}},vd=[],Ya=0;Qi=0,Sd=class Td{constructor(t){this.uid=J("batcher"),this.dirty=true,this.batchIndex=0,this.batches=[],this._elements=[],t={...Td.defaultOptions,...t},t.maxTextures||(R("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),t.maxTextures=gd());let{maxTextures:e,attributesInitialSize:r,indicesInitialSize:s}=t;this.attributeBuffer=new Pe(r*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=e;}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let t=0;t<this.batchIndex;t++)bd(this.batches[t]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=true;}add(t){this._elements[this.elementSize++]=t,t._indexStart=this.indexSize,t._attributeStart=this.attributeSize,t._batcher=this,this.indexSize+=t.indexSize,this.attributeSize+=t.attributeSize*this.vertexSize;}checkAndUpdateTexture(t,e){let r=t._batch.textures.ids[e._source.uid];return !r&&r!==0?false:(t._textureId=r,t.texture=e,true)}updateElement(t){this.dirty=true;let e=this.attributeBuffer;t.packAsQuad?this.packQuadAttributes(t,e.float32View,e.uint32View,t._attributeStart,t._textureId):this.packAttributes(t,e.float32View,e.uint32View,t._attributeStart,t._textureId);}break(t){let e=this._elements;if(!e[this.elementStart])return;let r=yd(),s=r.textures;s.clear();let o=e[this.elementStart],n=Le(o.blendMode,o.texture._source),a=o.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let h=this.attributeBuffer.float32View,l=this.attributeBuffer.uint32View,c=this.indexBuffer,u=this._batchIndexSize,f=this._batchIndexStart,d="startBatch",x=this.maxTextures;for(let y=this.elementStart;y<this.elementSize;++y){let m=e[y];e[y]=null;let b=m.texture._source,v=Le(m.blendMode,b),S=n!==v||a!==m.topology;if(b._batchTick===Qi&&!S){m._textureId=b._textureBindLocation,u+=m.indexSize,m.packAsQuad?(this.packQuadAttributes(m,h,l,m._attributeStart,m._textureId),this.packQuadIndex(c,m._indexStart,m._attributeStart/this.vertexSize)):(this.packAttributes(m,h,l,m._attributeStart,m._textureId),this.packIndex(m,c,m._indexStart,m._attributeStart/this.vertexSize)),m._batch=r;continue}b._batchTick=Qi,(s.count>=x||S)&&(this._finishBatch(r,f,u-f,s,n,a,t,d),d="renderBatch",f=u,n=v,a=m.topology,r=yd(),s=r.textures,s.clear(),++Qi),m._textureId=b._textureBindLocation=s.count,s.ids[b.uid]=s.count,s.textures[s.count++]=b,m._batch=r,u+=m.indexSize,m.packAsQuad?(this.packQuadAttributes(m,h,l,m._attributeStart,m._textureId),this.packQuadIndex(c,m._indexStart,m._attributeStart/this.vertexSize)):(this.packAttributes(m,h,l,m._attributeStart,m._textureId),this.packIndex(m,c,m._indexStart,m._attributeStart/this.vertexSize));}s.count>0&&(this._finishBatch(r,f,u-f,s,n,a,t,d),f=u,++Qi),this.elementStart=this.elementSize,this._batchIndexStart=f,this._batchIndexSize=u;}_finishBatch(t,e,r,s,o,n,a,h){t.gpuBindGroup=null,t.bindGroup=null,t.action=h,t.batcher=this,t.textures=s,t.blendMode=o,t.topology=n,t.start=e,t.size=r,++Qi,this.batches[this.batchIndex++]=t,a.add(t);}finish(t){this.break(t);}ensureAttributeBuffer(t){t*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(t*4);}ensureIndexBuffer(t){t<=this.indexBuffer.length||this._resizeIndexBuffer(t);}_resizeAttributeBuffer(t){let e=Math.max(t,this.attributeBuffer.size*2),r=new Pe(e);Va(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r;}_resizeIndexBuffer(t){let e=this.indexBuffer,r=Math.max(t,e.length*1.5);r+=r%2;let s=r>65535?new Uint32Array(r):new Uint16Array(r);if(s.BYTES_PER_ELEMENT!==e.BYTES_PER_ELEMENT)for(let o=0;o<e.length;o++)s[o]=e[o];else Va(e.buffer,s.buffer);this.indexBuffer=s;}packQuadIndex(t,e,r){t[e]=r+0,t[e+1]=r+1,t[e+2]=r+2,t[e+3]=r+0,t[e+4]=r+2,t[e+5]=r+3;}packIndex(t,e,r,s){let o=t.indices,n=t.indexSize,a=t.indexOffset,h=t.attributeOffset;for(let l=0;l<n;l++)e[r++]=s+o[l+a]-h;}destroy(){for(let t=0;t<this.batches.length;t++)bd(this.batches[t]);this.batches=null;for(let t=0;t<this._elements.length;t++)this._elements[t]._batch=null;this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null;}};Sd.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};wd=Sd;});var st,Nr=p(()=>{st=(i=>(i[i.MAP_READ=1]="MAP_READ",i[i.MAP_WRITE=2]="MAP_WRITE",i[i.COPY_SRC=4]="COPY_SRC",i[i.COPY_DST=8]="COPY_DST",i[i.INDEX=16]="INDEX",i[i.VERTEX=32]="VERTEX",i[i.UNIFORM=64]="UNIFORM",i[i.STORAGE=128]="STORAGE",i[i.INDIRECT=256]="INDIRECT",i[i.QUERY_RESOLVE=512]="QUERY_RESOLVE",i[i.STATIC=1024]="STATIC",i))(st||{});});var kt,Hr=p(()=>{Nt();Ut();Nr();kt=class extends Z{constructor(t){let{data:e,size:r}=t,{usage:s,label:o,shrinkToFit:n}=t;super(),this.uid=J("buffer"),this._resourceType="buffer",this._resourceId=J("resource"),this._touched=0,this._updateID=1,this._dataInt32=null,this.shrinkToFit=true,this.destroyed=false,e instanceof Array&&(e=new Float32Array(e)),this._data=e,r??(r=e?.byteLength);let a=!!e;this.descriptor={size:r,usage:s,mappedAtCreation:a,label:o},this.shrinkToFit=n??true;}get data(){return this._data}set data(t){this.setDataWithSize(t,t.length,true);}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return !!(this.descriptor.usage&st.STATIC)}set static(t){t?this.descriptor.usage|=st.STATIC:this.descriptor.usage&=~st.STATIC;}setDataWithSize(t,e,r){if(this._updateID++,this._updateSize=e*t.BYTES_PER_ELEMENT,this._data===t){r&&this.emit("update",this);return}let s=this._data;if(this._data=t,this._dataInt32=null,!s||s.length!==t.length){!this.shrinkToFit&&s&&t.byteLength<s.byteLength?r&&this.emit("update",this):(this.descriptor.size=t.byteLength,this._resourceId=J("resource"),this.emit("change",this));return}r&&this.emit("update",this);}update(t){this._updateSize=t??this._updateSize,this._updateID++,this.emit("update",this);}destroy(){this.destroyed=true,this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners();}};});function $a(i,t){if(!(i instanceof kt)){let e=t?st.INDEX:st.VERTEX;i instanceof Array&&(t?(i=new Uint32Array(i),e=st.INDEX|st.COPY_DST):(i=new Float32Array(i),e=st.VERTEX|st.COPY_DST)),i=new kt({data:i,label:t?"index-mesh-buffer":"vertex-mesh-buffer",usage:e});}return i}var Md=p(()=>{Hr();Nr();});function Cd(i,t,e){let r=i.getAttribute(t);if(!r)return e.minX=0,e.minY=0,e.maxX=0,e.maxY=0,e;let s=r.buffer.data,o=1/0,n=1/0,a=-1/0,h=-1/0,l=s.BYTES_PER_ELEMENT,c=(r.offset||0)/l,u=(r.stride||2*4)/l;for(let f=c;f<s.length;f+=u){let d=s[f],x=s[f+1];d>a&&(a=d),x>h&&(h=x),d<o&&(o=d),x<n&&(n=x);}return e.minX=o,e.minY=n,e.maxX=a,e.maxY=h,e}var Ad=p(()=>{});function p_(i){return (i instanceof kt||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=$a(i.buffer,false),i}var Me,Ji=p(()=>{Nt();he();Ut();Hr();Md();Ad();Me=class extends Z{constructor(t={}){super(),this.uid=J("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new dt,this._boundsDirty=true;let{attributes:e,indexBuffer:r,topology:s}=t;if(this.buffers=[],this.attributes={},e)for(let o in e)this.addAttribute(o,e[o]);this.instanceCount=t.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list";}onBufferUpdate(){this._boundsDirty=true,this.emit("update",this);}getAttribute(t){return this.attributes[t]}getIndex(){return this.indexBuffer}getBuffer(t){return this.getAttribute(t).buffer}getSize(){for(let t in this.attributes){let e=this.attributes[t];return e.buffer.data.length/(e.stride/4||e.size)}return 0}addAttribute(t,e){let r=p_(e);this.buffers.indexOf(r.buffer)===-1&&(this.buffers.push(r.buffer),r.buffer.on("update",this.onBufferUpdate,this),r.buffer.on("change",this.onBufferUpdate,this)),this.attributes[t]=r;}addIndex(t){this.indexBuffer=$a(t,true),this.buffers.push(this.indexBuffer);}get bounds(){return this._boundsDirty?(this._boundsDirty=false,Cd(this,"aPosition",this._bounds)):this._bounds}destroy(t=false){this.emit("destroy",this),this.removeAllListeners(),t&&this.buffers.forEach(e=>e.destroy()),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null;}};});var m_,g_,Eo,Ed=p(()=>{Hr();Nr();Ji();m_=new Float32Array(1),g_=new Uint32Array(1),Eo=class extends Me{constructor(){let e=new kt({data:m_,label:"attribute-batch-buffer",usage:st.VERTEX|st.COPY_DST,shrinkToFit:false}),r=new kt({data:g_,label:"index-batch-buffer",usage:st.INDEX|st.COPY_DST,shrinkToFit:false}),s=6*4;super({attributes:{aPosition:{buffer:e,format:"float32x2",stride:s,offset:0},aUV:{buffer:e,format:"float32x2",stride:s,offset:2*4},aColor:{buffer:e,format:"unorm8x4",stride:s,offset:4*4},aTextureIdAndRound:{buffer:e,format:"uint16x2",stride:s,offset:5*4}},indexBuffer:r});}};});function Yr(i,t){let e=Fd[i];return e===void 0&&(Xa[t]===void 0&&(Xa[t]=1),Fd[i]=e=Xa[t]++),e}var Xa,Fd,Fo=p(()=>{Xa=Object.create(null),Fd=Object.create(null);});function Bd(){if(!Bo){Bo="mediump";let i=Co();i&&i.getShaderPrecisionFormat&&(Bo=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump");}return Bo}var Bo,kd=p(()=>{Na();});function Gd(i,t,e){return t?i:e?(i=i.replace("out vec4 finalColor;",""),`
|
|
21
|
+
`);});function gd(){if(Vr)return Vr;let i=Co();return Vr=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Vr=pd(Vr,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Vr}var Vr,xd=p(()=>{Na();md();Vr=null;});var Ao,_d=p(()=>{Ao=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0;}clear(){for(let t=0;t<this.count;t++){let e=this.textures[t];this.textures[t]=null,this.ids[e.uid]=null;}this.count=0;}};});function yd(){return Ya>0?vd[--Ya]:new Ha}function bd(i){vd[Ya++]=i;}var Ha,vd,Ya,Qi,Sd,wd,Pd=p(()=>{Ut();Wa();mt();ud();Zi();xd();_d();Ha=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Ao,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=true;}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null;}},vd=[],Ya=0;Qi=0,Sd=class Td{constructor(t){this.uid=J("batcher"),this.dirty=true,this.batchIndex=0,this.batches=[],this._elements=[],t={...Td.defaultOptions,...t},t.maxTextures||(R("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),t.maxTextures=gd());let{maxTextures:e,attributesInitialSize:r,indicesInitialSize:s}=t;this.attributeBuffer=new Pe(r*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=e;}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let t=0;t<this.batchIndex;t++)bd(this.batches[t]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=true;}add(t){this._elements[this.elementSize++]=t,t._indexStart=this.indexSize,t._attributeStart=this.attributeSize,t._batcher=this,this.indexSize+=t.indexSize,this.attributeSize+=t.attributeSize*this.vertexSize;}checkAndUpdateTexture(t,e){let r=t._batch.textures.ids[e._source.uid];return !r&&r!==0?false:(t._textureId=r,t.texture=e,true)}updateElement(t){this.dirty=true;let e=this.attributeBuffer;t.packAsQuad?this.packQuadAttributes(t,e.float32View,e.uint32View,t._attributeStart,t._textureId):this.packAttributes(t,e.float32View,e.uint32View,t._attributeStart,t._textureId);}break(t){let e=this._elements;if(!e[this.elementStart])return;let r=yd(),s=r.textures;s.clear();let o=e[this.elementStart],n=Le(o.blendMode,o.texture._source),a=o.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let h=this.attributeBuffer.float32View,l=this.attributeBuffer.uint32View,c=this.indexBuffer,u=this._batchIndexSize,f=this._batchIndexStart,d="startBatch",x=this.maxTextures;for(let y=this.elementStart;y<this.elementSize;++y){let m=e[y];e[y]=null;let b=m.texture._source,v=Le(m.blendMode,b),S=n!==v||a!==m.topology;if(b._batchTick===Qi&&!S){m._textureId=b._textureBindLocation,u+=m.indexSize,m.packAsQuad?(this.packQuadAttributes(m,h,l,m._attributeStart,m._textureId),this.packQuadIndex(c,m._indexStart,m._attributeStart/this.vertexSize)):(this.packAttributes(m,h,l,m._attributeStart,m._textureId),this.packIndex(m,c,m._indexStart,m._attributeStart/this.vertexSize)),m._batch=r;continue}b._batchTick=Qi,(s.count>=x||S)&&(this._finishBatch(r,f,u-f,s,n,a,t,d),d="renderBatch",f=u,n=v,a=m.topology,r=yd(),s=r.textures,s.clear(),++Qi),m._textureId=b._textureBindLocation=s.count,s.ids[b.uid]=s.count,s.textures[s.count++]=b,m._batch=r,u+=m.indexSize,m.packAsQuad?(this.packQuadAttributes(m,h,l,m._attributeStart,m._textureId),this.packQuadIndex(c,m._indexStart,m._attributeStart/this.vertexSize)):(this.packAttributes(m,h,l,m._attributeStart,m._textureId),this.packIndex(m,c,m._indexStart,m._attributeStart/this.vertexSize));}s.count>0&&(this._finishBatch(r,f,u-f,s,n,a,t,d),f=u,++Qi),this.elementStart=this.elementSize,this._batchIndexStart=f,this._batchIndexSize=u;}_finishBatch(t,e,r,s,o,n,a,h){t.gpuBindGroup=null,t.bindGroup=null,t.action=h,t.batcher=this,t.textures=s,t.blendMode=o,t.topology=n,t.start=e,t.size=r,++Qi,this.batches[this.batchIndex++]=t,a.add(t);}finish(t){this.break(t);}ensureAttributeBuffer(t){t*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(t*4);}ensureIndexBuffer(t){t<=this.indexBuffer.length||this._resizeIndexBuffer(t);}_resizeAttributeBuffer(t){let e=Math.max(t,this.attributeBuffer.size*2),r=new Pe(e);Va(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r;}_resizeIndexBuffer(t){let e=this.indexBuffer,r=Math.max(t,e.length*1.5);r+=r%2;let s=r>65535?new Uint32Array(r):new Uint16Array(r);if(s.BYTES_PER_ELEMENT!==e.BYTES_PER_ELEMENT)for(let o=0;o<e.length;o++)s[o]=e[o];else Va(e.buffer,s.buffer);this.indexBuffer=s;}packQuadIndex(t,e,r){t[e]=r+0,t[e+1]=r+1,t[e+2]=r+2,t[e+3]=r+0,t[e+4]=r+2,t[e+5]=r+3;}packIndex(t,e,r,s){let o=t.indices,n=t.indexSize,a=t.indexOffset,h=t.attributeOffset;for(let l=0;l<n;l++)e[r++]=s+o[l+a]-h;}destroy(){for(let t=0;t<this.batches.length;t++)bd(this.batches[t]);this.batches=null;for(let t=0;t<this._elements.length;t++)this._elements[t]._batch=null;this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null;}};Sd.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};wd=Sd;});var st,Nr=p(()=>{st=(i=>(i[i.MAP_READ=1]="MAP_READ",i[i.MAP_WRITE=2]="MAP_WRITE",i[i.COPY_SRC=4]="COPY_SRC",i[i.COPY_DST=8]="COPY_DST",i[i.INDEX=16]="INDEX",i[i.VERTEX=32]="VERTEX",i[i.UNIFORM=64]="UNIFORM",i[i.STORAGE=128]="STORAGE",i[i.INDIRECT=256]="INDIRECT",i[i.QUERY_RESOLVE=512]="QUERY_RESOLVE",i[i.STATIC=1024]="STATIC",i))(st||{});});var kt,Hr=p(()=>{Nt();Ut();Nr();kt=class extends Z{constructor(t){let{data:e,size:r}=t,{usage:s,label:o,shrinkToFit:n}=t;super(),this.uid=J("buffer"),this._resourceType="buffer",this._resourceId=J("resource"),this._touched=0,this._updateID=1,this._dataInt32=null,this.shrinkToFit=true,this.destroyed=false,e instanceof Array&&(e=new Float32Array(e)),this._data=e,r??(r=e?.byteLength);let a=!!e;this.descriptor={size:r,usage:s,mappedAtCreation:a,label:o},this.shrinkToFit=n??true;}get data(){return this._data}set data(t){this.setDataWithSize(t,t.length,true);}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return !!(this.descriptor.usage&st.STATIC)}set static(t){t?this.descriptor.usage|=st.STATIC:this.descriptor.usage&=~st.STATIC;}setDataWithSize(t,e,r){if(this._updateID++,this._updateSize=e*t.BYTES_PER_ELEMENT,this._data===t){r&&this.emit("update",this);return}let s=this._data;if(this._data=t,this._dataInt32=null,!s||s.length!==t.length){!this.shrinkToFit&&s&&t.byteLength<s.byteLength?r&&this.emit("update",this):(this.descriptor.size=t.byteLength,this._resourceId=J("resource"),this.emit("change",this));return}r&&this.emit("update",this);}update(t){this._updateSize=t??this._updateSize,this._updateID++,this.emit("update",this);}destroy(){this.destroyed=true,this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners();}};});function $a(i,t){if(!(i instanceof kt)){let e=t?st.INDEX:st.VERTEX;i instanceof Array&&(t?(i=new Uint32Array(i),e=st.INDEX|st.COPY_DST):(i=new Float32Array(i),e=st.VERTEX|st.COPY_DST)),i=new kt({data:i,label:t?"index-mesh-buffer":"vertex-mesh-buffer",usage:e});}return i}var Md=p(()=>{Hr();Nr();});function Cd(i,t,e){let r=i.getAttribute(t);if(!r)return e.minX=0,e.minY=0,e.maxX=0,e.maxY=0,e;let s=r.buffer.data,o=1/0,n=1/0,a=-1/0,h=-1/0,l=s.BYTES_PER_ELEMENT,c=(r.offset||0)/l,u=(r.stride||8)/l;for(let f=c;f<s.length;f+=u){let d=s[f],x=s[f+1];d>a&&(a=d),x>h&&(h=x),d<o&&(o=d),x<n&&(n=x);}return e.minX=o,e.minY=n,e.maxX=a,e.maxY=h,e}var Ad=p(()=>{});function p_(i){return (i instanceof kt||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=$a(i.buffer,false),i}var Me,Ji=p(()=>{Nt();he();Ut();Hr();Md();Ad();Me=class extends Z{constructor(t={}){super(),this.uid=J("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new dt,this._boundsDirty=true;let{attributes:e,indexBuffer:r,topology:s}=t;if(this.buffers=[],this.attributes={},e)for(let o in e)this.addAttribute(o,e[o]);this.instanceCount=t.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list";}onBufferUpdate(){this._boundsDirty=true,this.emit("update",this);}getAttribute(t){return this.attributes[t]}getIndex(){return this.indexBuffer}getBuffer(t){return this.getAttribute(t).buffer}getSize(){for(let t in this.attributes){let e=this.attributes[t];return e.buffer.data.length/(e.stride/4||e.size)}return 0}addAttribute(t,e){let r=p_(e);this.buffers.indexOf(r.buffer)===-1&&(this.buffers.push(r.buffer),r.buffer.on("update",this.onBufferUpdate,this),r.buffer.on("change",this.onBufferUpdate,this)),this.attributes[t]=r;}addIndex(t){this.indexBuffer=$a(t,true),this.buffers.push(this.indexBuffer);}get bounds(){return this._boundsDirty?(this._boundsDirty=false,Cd(this,"aPosition",this._bounds)):this._bounds}destroy(t=false){this.emit("destroy",this),this.removeAllListeners(),t&&this.buffers.forEach(e=>e.destroy()),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null;}};});var m_,g_,Eo,Ed=p(()=>{Hr();Nr();Ji();m_=new Float32Array(1),g_=new Uint32Array(1),Eo=class extends Me{constructor(){let e=new kt({data:m_,label:"attribute-batch-buffer",usage:st.VERTEX|st.COPY_DST,shrinkToFit:false}),r=new kt({data:g_,label:"index-batch-buffer",usage:st.INDEX|st.COPY_DST,shrinkToFit:false}),s=24;super({attributes:{aPosition:{buffer:e,format:"float32x2",stride:s,offset:0},aUV:{buffer:e,format:"float32x2",stride:s,offset:8},aColor:{buffer:e,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:e,format:"uint16x2",stride:s,offset:20}},indexBuffer:r});}};});function Yr(i,t){let e=Fd[i];return e===void 0&&(Xa[t]===void 0&&(Xa[t]=1),Fd[i]=e=Xa[t]++),e}var Xa,Fd,Fo=p(()=>{Xa=Object.create(null),Fd=Object.create(null);});function Bd(){if(!Bo){Bo="mediump";let i=Co();i&&i.getShaderPrecisionFormat&&(Bo=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump");}return Bo}var Bo,kd=p(()=>{Na();});function Gd(i,t,e){return t?i:e?(i=i.replace("out vec4 finalColor;",""),`
|
|
22
22
|
|
|
23
23
|
#ifdef GL_ES // This checks if it is WebGL1
|
|
24
24
|
#define in varying
|
|
@@ -250,7 +250,7 @@ ${s.join(`
|
|
|
250
250
|
{
|
|
251
251
|
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
252
252
|
}
|
|
253
|
-
`}};});var ah,Tf,wf=p(()=>{ah=["f32","i32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>"],Tf=ah.reduce((i,t)=>(i[t]=true,i),{});});function Pf(i,t){switch(i){case "f32":return 0;case "vec2<f32>":return new Float32Array(2*t);case "vec3<f32>":return new Float32Array(3*t);case "vec4<f32>":return new Float32Array(4*t);case "mat2x2<f32>":return new Float32Array([1,0,0,1]);case "mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case "mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var Mf=p(()=>{});var Cf,zt,je=p(()=>{Ut();Fo();wf();Mf();Cf=class Af{constructor(t,e){this._touched=0,this.uid=J("uniform"),this._resourceType="uniformGroup",this._resourceId=J("resource"),this.isUniformGroup=true,this._dirtyId=0,this.destroyed=false,e={...Af.defaultOptions,...e},this.uniformStructures=t;let r={};for(let s in t){let o=t[s];if(o.name=s,o.size=o.size??1,!Tf[o.type])throw new Error(`Uniform type ${o.type} is not supported. Supported uniform types are: ${ah.join(", ")}`);o.value??(o.value=Pf(o.type,o.size)),r[s]=o.value;}this.uniforms=r,this._dirtyId=1,this.ubo=e.ubo,this.isStatic=e.isStatic,this._signature=Yr(Object.keys(r).map(s=>`${s}-${t[s].type}`).join("-"),"uniform-group");}update(){this._dirtyId++;}};Cf.defaultOptions={ubo:false,isStatic:false};zt=Cf;});function Vo(i){let t=Ef[i];if(t)return t;let e=new Int32Array(i);for(let r=0;r<i;r++)e[r]=r;return t=Ef[i]=new zt({uTextures:{value:e,type:"i32",size:i}},{isStatic:true}),t}var Ef,hh=p(()=>{je();Ef={};});var Ce,ts=p(()=>{Ce=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.BOTH=3]="BOTH",i))(Ce||{});});var Ae,es=p(()=>{Nt();Ut();ko();qi();Io();ts();je();Ae=class i extends Z{constructor(t){super(),this.uid=J("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:e,glProgram:r,groups:s,resources:o,compatibleRenderers:n,groupMap:a}=t;this.gpuProgram=e,this.glProgram=r,n===void 0&&(n=0,e&&(n|=Ce.WEBGPU),r&&(n|=Ce.WEBGL)),this.compatibleRenderers=n;let h={};if(!o&&!s&&(o={}),o&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!e&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!e&&s&&a)for(let l in a)for(let c in a[l]){let u=a[l][c];h[u]={group:l,binding:c,name:u};}else if(e&&s&&!a){let l=e.structsAndGroups.groups;a={},l.forEach(c=>{a[c.group]=a[c.group]||{},a[c.group][c.binding]=c.name,h[c.name]=c;});}else if(o){s={},a={},e&&e.structsAndGroups.groups.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,h[u.name]=u;});let l=0;for(let c in o)h[c]||(s[99]||(s[99]=new oe,this._ownedBindGroups.push(s[99])),h[c]={group:99,binding:l,name:c},a[99]=a[99]||{},a[99][l]=c,l++);for(let c in o){let u=c,f=o[c];!f.source&&!f._resourceType&&(f=new zt(f));let d=h[u];d&&(s[d.group]||(s[d.group]=new oe,this._ownedBindGroups.push(s[d.group])),s[d.group].setResource(f,d.binding));}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,h);}addResource(t,e,r){var s,o;(s=this._uniformBindMap)[e]||(s[e]={}),(o=this._uniformBindMap[e])[r]||(o[r]=t),this.groups[e]||(this.groups[e]=new oe,this._ownedBindGroups.push(this.groups[e]));}_buildResourceAccessor(t,e){let r={};for(let s in e){let o=e[s];Object.defineProperty(r,o.name,{get(){return t[o.group].getResource(o.binding)},set(n){t[o.group].setResource(n,o.binding);}});}return r}destroy(t=false){this.emit("destroy",this),t&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(e=>{e.destroy();}),this._ownedBindGroups=null,this.resources=null,this.groups=null;}static from(t){let{gpu:e,gl:r,...s}=t,o,n;return e&&(o=$e.from(e)),r&&(n=$r.from(r)),new i({gpuProgram:o,glProgram:n,...s})}};});var No,Ff=p(()=>{Do();ih();nh();Wo();hh();es();No=class extends Ae{constructor(t){let e=Kr({name:"batch",bits:[Uo,zo(t),Zr]}),r=jr({name:"batch",bits:[Lo,Oo(t),qr]});super({glProgram:e,gpuProgram:r,resources:{batchSamplers:Vo(t)}});}};});var lh,Bf,Gf,Rf=p(()=>{D();Pd();Ed();Ff();lh=null,Bf=class kf extends wd{constructor(t){super(t),this.geometry=new Eo,this.name=kf.extension.name,this.vertexSize=6,lh??(lh=new No(t.maxTextures)),this.shader=lh;}packAttributes(t,e,r,s,o){let n=o<<16|t.roundPixels&65535,a=t.transform,h=a.a,l=a.b,c=a.c,u=a.d,f=a.tx,d=a.ty,{positions:x,uvs:y}=t,m=t.color,_=t.attributeOffset,b=_+t.attributeSize;for(let v=_;v<b;v++){let S=v*2,M=x[S],T=x[S+1];e[s++]=h*M+c*T+f,e[s++]=u*T+l*M+d,e[s++]=y[S],e[s++]=y[S+1],r[s++]=m,r[s++]=n;}}packQuadAttributes(t,e,r,s,o){let n=t.texture,a=t.transform,h=a.a,l=a.b,c=a.c,u=a.d,f=a.tx,d=a.ty,x=t.bounds,y=x.maxX,m=x.minX,_=x.maxY,b=x.minY,v=n.uvs,S=t.color,M=o<<16|t.roundPixels&65535;e[s+0]=h*m+c*b+f,e[s+1]=u*b+l*m+d,e[s+2]=v.x0,e[s+3]=v.y0,r[s+4]=S,r[s+5]=M,e[s+6]=h*y+c*b+f,e[s+7]=u*b+l*y+d,e[s+8]=v.x1,e[s+9]=v.y1,r[s+10]=S,r[s+11]=M,e[s+12]=h*y+c*_+f,e[s+13]=u*_+l*y+d,e[s+14]=v.x2,e[s+15]=v.y2,r[s+16]=S,r[s+17]=M,e[s+18]=h*m+c*_+f,e[s+19]=u*_+l*m+d,e[s+20]=v.x3,e[s+21]=v.y3,r[s+22]=S,r[s+23]=M;}};Bf.extension={type:[P.Batcher],name:"default"};Gf=Bf;});function If(i,t,e,r,s,o,n,a=null){let h=0;e*=t,s*=o;let l=a.a,c=a.b,u=a.c,f=a.d,d=a.tx,x=a.ty;for(;h<n;){let y=i[e],m=i[e+1];r[s]=l*y+u*m+d,r[s+1]=c*y+f*m+x,s+=o,e+=t,h++;}}function Df(i,t,e,r){let s=0;for(t*=e;s<r;)i[t]=0,i[t+1]=0,t+=e,s++;}var Lf=p(()=>{});function ch(i,t,e,r,s){let o=t.a,n=t.b,a=t.c,h=t.d,l=t.tx,c=t.ty;e||(e=0),r||(r=2),s||(s=i.length/r-e);let u=e*r;for(let f=0;f<s;f++){let d=i[u],x=i[u+1];i[u]=o*d+a*x+l,i[u+1]=n*d+h*x+c,u+=r;}}var Uf=p(()=>{});var A_,_r,uh=p(()=>{nt();ra();A_=new F,_r=class{constructor(){this.packAsQuad=false,this.batcherName="default",this.topology="triangle-list",this.applyTransform=true,this.roundPixels=0,this._batcher=null,this._batch=null;}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let t=this.baseColor,e=t>>16|t&65280|(t&255)<<16,r=this.renderable;return r?ro(e,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):e+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||A_}copyTo(t){t.indexOffset=this.indexOffset,t.indexSize=this.indexSize,t.attributeOffset=this.attributeOffset,t.attributeSize=this.attributeSize,t.baseColor=this.baseColor,t.alpha=this.alpha,t.texture=this.texture,t.geometryData=this.geometryData,t.topology=this.topology;}reset(){this.applyTransform=true,this.renderable=null,this.topology="triangle-list";}};});var Qr,Of,zf,Wf=p(()=>{D();Qr={extension:{type:P.ShapeBuilder,name:"circle"},build(i,t){let e,r,s,o,n,a;if(i.type==="circle"){let S=i;if(n=a=S.radius,n<=0)return false;e=S.x,r=S.y,s=o=0;}else if(i.type==="ellipse"){let S=i;if(n=S.halfWidth,a=S.halfHeight,n<=0||a<=0)return false;e=S.x,r=S.y,s=o=0;}else {let S=i,M=S.width/2,T=S.height/2;e=S.x+M,r=S.y+T,n=a=Math.max(0,Math.min(S.radius,Math.min(M,T))),s=M-n,o=T-a;}if(s<0||o<0)return false;let h=Math.ceil(2.3*Math.sqrt(n+a)),l=h*8+(s?4:0)+(o?4:0);if(l===0)return false;if(h===0)return t[0]=t[6]=e+s,t[1]=t[3]=r+o,t[2]=t[4]=e-s,t[5]=t[7]=r-o,true;let c=0,u=h*4+(s?2:0)+2,f=u,d=l,x=s+n,y=o,m=e+x,_=e-x,b=r+y;if(t[c++]=m,t[c++]=b,t[--u]=b,t[--u]=_,o){let S=r-y;t[f++]=_,t[f++]=S,t[--d]=S,t[--d]=m;}for(let S=1;S<h;S++){let M=Math.PI/2*(S/h),T=s+Math.cos(M)*n,w=o+Math.sin(M)*a,W=e+T,A=e-T,E=r+w,B=r-w;t[c++]=W,t[c++]=E,t[--u]=E,t[--u]=A,t[f++]=A,t[f++]=B,t[--d]=B,t[--d]=W;}x=s,y=o+a,m=e+x,_=e-x,b=r+y;let v=r-y;return t[c++]=m,t[c++]=b,t[--d]=v,t[--d]=m,s&&(t[c++]=_,t[c++]=b,t[--d]=v,t[--d]=_),true},triangulate(i,t,e,r,s,o){if(i.length===0)return;let n=0,a=0;for(let c=0;c<i.length;c+=2)n+=i[c],a+=i[c+1];n/=i.length/2,a/=i.length/2;let h=r;t[h*e]=n,t[h*e+1]=a;let l=h++;for(let c=0;c<i.length;c+=2)t[h*e]=i[c],t[h*e+1]=i[c+1],c>0&&(s[o++]=h,s[o++]=l,s[o++]=h-1),h++;s[o++]=l+1,s[o++]=l,s[o++]=h-1;}},Of={...Qr,extension:{...Qr.extension,name:"ellipse"}},zf={...Qr,extension:{...Qr.extension,name:"roundedRectangle"}};});function Vf(i){let t=i.length;if(t<6)return 1;let e=0;for(let r=0,s=i[t-2],o=i[t-1];r<t;r+=2){let n=i[r],a=i[r+1];e+=(n-s)*(a+o),s=n,o=a;}return e<0?-1:1}var Nf=p(()=>{});function Hf(i,t,e,r,s,o,n,a){let h=i-e*s,l=t-r*s,c=i+e*o,u=t+r*o,f,d;n?(f=r,d=-e):(f=-r,d=e);let x=h+f,y=l+d,m=c+f,_=u+d;return a.push(x,y),a.push(m,_),2}function yr(i,t,e,r,s,o,n,a){let h=e-i,l=r-t,c=Math.atan2(h,l),u=Math.atan2(s-i,o-t);a&&c<u?c+=Math.PI*2:!a&&c>u&&(u+=Math.PI*2);let f=c,d=u-c,x=Math.abs(d),y=Math.sqrt(h*h+l*l),m=(15*x*Math.sqrt(y)/Math.PI>>0)+1,_=d/m;if(f+=_,a){n.push(i,t),n.push(e,r);for(let b=1,v=f;b<m;b++,v+=_)n.push(i,t),n.push(i+Math.sin(v)*y,t+Math.cos(v)*y);n.push(i,t),n.push(s,o);}else {n.push(e,r),n.push(i,t);for(let b=1,v=f;b<m;b++,v+=_)n.push(i+Math.sin(v)*y,t+Math.cos(v)*y),n.push(i,t);n.push(s,o),n.push(i,t);}return m*2}function Yf(i,t,e,r,s,o){let n=1e-4;if(i.length===0)return;let a=t,h=a.alignment;if(t.alignment!==.5){let ot=Vf(i);h=(h-.5)*ot+.5;}let l=new Q(i[0],i[1]),c=new Q(i[i.length-2],i[i.length-1]),u=r,f=Math.abs(l.x-c.x)<n&&Math.abs(l.y-c.y)<n;if(u){i=i.slice(),f&&(i.pop(),i.pop(),c.set(i[i.length-2],i[i.length-1]));let ot=(l.x+c.x)*.5,Ve=(c.y+l.y)*.5;i.unshift(ot,Ve),i.push(ot,Ve);}let d=s,x=i.length/2,y=i.length,m=d.length/2,_=a.width/2,b=_*_,v=a.miterLimit*a.miterLimit,S=i[0],M=i[1],T=i[2],w=i[3],W=0,A=0,E=-(M-w),B=S-T,Y=0,et=0,Ft=Math.sqrt(E*E+B*B);E/=Ft,B/=Ft,E*=_,B*=_;let Ti=h,V=(1-Ti)*2,X=Ti*2;u||(a.cap==="round"?y+=yr(S-E*(V-X)*.5,M-B*(V-X)*.5,S-E*V,M-B*V,S+E*X,M+B*X,d,true)+2:a.cap==="square"&&(y+=Hf(S,M,E,B,V,X,true,d))),d.push(S-E*V,M-B*V),d.push(S+E*X,M+B*X);for(let ot=1;ot<x-1;++ot){S=i[(ot-1)*2],M=i[(ot-1)*2+1],T=i[ot*2],w=i[ot*2+1],W=i[(ot+1)*2],A=i[(ot+1)*2+1],E=-(M-w),B=S-T,Ft=Math.sqrt(E*E+B*B),E/=Ft,B/=Ft,E*=_,B*=_,Y=-(w-A),et=T-W,Ft=Math.sqrt(Y*Y+et*et),Y/=Ft,et/=Ft,Y*=_,et*=_;let Ve=T-S,wi=M-w,Pi=T-W,Mi=A-w,kl=Ve*Pi+wi*Mi,Ls=wi*Pi-Mi*Ve,Ci=Ls<0;if(Math.abs(Ls)<.001*Math.abs(kl)){d.push(T-E*V,w-B*V),d.push(T+E*X,w+B*X),kl>=0&&(a.join==="round"?y+=yr(T,w,T-E*V,w-B*V,T-Y*V,w-et*V,d,false)+4:y+=2,d.push(T-Y*X,w-et*X),d.push(T+Y*V,w+et*V));continue}let Gl=(-E+S)*(-B+w)-(-E+T)*(-B+M),Rl=(-Y+W)*(-et+w)-(-Y+T)*(-et+A),Us=(Ve*Rl-Pi*Gl)/Ls,Os=(Mi*Gl-wi*Rl)/Ls,Un=(Us-T)*(Us-T)+(Os-w)*(Os-w),or=T+(Us-T)*V,nr=w+(Os-w)*V,ar=T-(Us-T)*X,hr=w-(Os-w)*X,yx=Math.min(Ve*Ve+wi*wi,Pi*Pi+Mi*Mi),Il=Ci?V:X,bx=yx+Il*Il*b;Un<=bx?a.join==="bevel"||Un/b>v?(Ci?(d.push(or,nr),d.push(T+E*X,w+B*X),d.push(or,nr),d.push(T+Y*X,w+et*X)):(d.push(T-E*V,w-B*V),d.push(ar,hr),d.push(T-Y*V,w-et*V),d.push(ar,hr)),y+=2):a.join==="round"?Ci?(d.push(or,nr),d.push(T+E*X,w+B*X),y+=yr(T,w,T+E*X,w+B*X,T+Y*X,w+et*X,d,true)+4,d.push(or,nr),d.push(T+Y*X,w+et*X)):(d.push(T-E*V,w-B*V),d.push(ar,hr),y+=yr(T,w,T-E*V,w-B*V,T-Y*V,w-et*V,d,false)+4,d.push(T-Y*V,w-et*V),d.push(ar,hr)):(d.push(or,nr),d.push(ar,hr)):(d.push(T-E*V,w-B*V),d.push(T+E*X,w+B*X),a.join==="round"?Ci?y+=yr(T,w,T+E*X,w+B*X,T+Y*X,w+et*X,d,true)+2:y+=yr(T,w,T-E*V,w-B*V,T-Y*V,w-et*V,d,false)+2:a.join==="miter"&&Un/b<=v&&(Ci?(d.push(ar,hr),d.push(ar,hr)):(d.push(or,nr),d.push(or,nr)),y+=2),d.push(T-Y*V,w-et*V),d.push(T+Y*X,w+et*X),y+=2);}S=i[(x-2)*2],M=i[(x-2)*2+1],T=i[(x-1)*2],w=i[(x-1)*2+1],E=-(M-w),B=S-T,Ft=Math.sqrt(E*E+B*B),E/=Ft,B/=Ft,E*=_,B*=_,d.push(T-E*V,w-B*V),d.push(T+E*X,w+B*X),u||(a.cap==="round"?y+=yr(T-E*(V-X)*.5,w-B*(V-X)*.5,T-E*V,w-B*V,T+E*X,w+B*X,d,false)+2:a.cap==="square"&&(y+=Hf(T,w,E,B,V,X,false,d)));let _x=1e-4*1e-4;for(let ot=m;ot<y+m-2;++ot)S=d[ot*2],M=d[ot*2+1],T=d[(ot+1)*2],w=d[(ot+1)*2+1],W=d[(ot+2)*2],A=d[(ot+2)*2+1],!(Math.abs(S*(w-A)+T*(A-M)+W*(M-w))<_x)&&o.push(ot,ot+1,ot+2);}var $f=p(()=>{ve();Nf();});function Xf(i,t,e,r){let s=1e-4;if(i.length===0)return;let o=i[0],n=i[1],a=i[i.length-2],h=i[i.length-1],l=t||Math.abs(o-a)<s&&Math.abs(n-h)<s,c=e,u=i.length/2,f=c.length/2;for(let d=0;d<u;d++)c.push(i[d*2]),c.push(i[d*2+1]);for(let d=0;d<u-1;d++)r.push(f+d,f+d+1);l&&r.push(f+u-1,f);}var jf=p(()=>{});function $o(i,t,e=2){let r=t&&t.length,s=r?t[0]*e:i.length,o=qf(i,0,s,e,true),n=[];if(!o||o.next===o.prev)return n;let a,h,l;if(r&&(o=I_(i,t,o,e)),i.length>80*e){a=1/0,h=1/0;let c=-1/0,u=-1/0;for(let f=e;f<s;f+=e){let d=i[f],x=i[f+1];d<a&&(a=d),x<h&&(h=x),d>c&&(c=d),x>u&&(u=x);}l=Math.max(c-a,u-h),l=l!==0?32767/l:0;}return is(o,n,e,a,h,l,0),n}function qf(i,t,e,r,s){let o;if(s===$_(i,t,e,r)>0)for(let n=t;n<e;n+=r)o=Kf(n/r|0,i[n],i[n+1],o);else for(let n=e-r;n>=t;n-=r)o=Kf(n/r|0,i[n],i[n+1],o);return o&&Jr(o,o.next)&&(os(o),o=o.next),o}function br(i,t){if(!i)return i;t||(t=i);let e=i,r;do if(r=false,!e.steiner&&(Jr(e,e.next)||pt(e.prev,e,e.next)===0)){if(os(e),e=t=e.prev,e===e.next)break;r=true;}else e=e.next;while(r||e!==t);return t}function is(i,t,e,r,s,o,n){if(!i)return;!n&&o&&z_(i,r,s,o);let a=i;for(;i.prev!==i.next;){let h=i.prev,l=i.next;if(o?k_(i,r,s,o):B_(i)){t.push(h.i,i.i,l.i),os(i),i=l.next,a=l.next;continue}if(i=l,i===a){n?n===1?(i=G_(br(i),t),is(i,t,e,r,s,o,2)):n===2&&R_(i,t,e,r,s,o):is(br(i),t,e,r,s,o,1);break}}}function B_(i){let t=i.prev,e=i,r=i.next;if(pt(t,e,r)>=0)return false;let s=t.x,o=e.x,n=r.x,a=t.y,h=e.y,l=r.y,c=Math.min(s,o,n),u=Math.min(a,h,l),f=Math.max(s,o,n),d=Math.max(a,h,l),x=r.next;for(;x!==t;){if(x.x>=c&&x.x<=f&&x.y>=u&&x.y<=d&&rs(s,a,o,h,n,l,x.x,x.y)&&pt(x.prev,x,x.next)>=0)return false;x=x.next;}return true}function k_(i,t,e,r){let s=i.prev,o=i,n=i.next;if(pt(s,o,n)>=0)return false;let a=s.x,h=o.x,l=n.x,c=s.y,u=o.y,f=n.y,d=Math.min(a,h,l),x=Math.min(c,u,f),y=Math.max(a,h,l),m=Math.max(c,u,f),_=dh(d,x,t,e,r),b=dh(y,m,t,e,r),v=i.prevZ,S=i.nextZ;for(;v&&v.z>=_&&S&&S.z<=b;){if(v.x>=d&&v.x<=y&&v.y>=x&&v.y<=m&&v!==s&&v!==n&&rs(a,c,h,u,l,f,v.x,v.y)&&pt(v.prev,v,v.next)>=0||(v=v.prevZ,S.x>=d&&S.x<=y&&S.y>=x&&S.y<=m&&S!==s&&S!==n&&rs(a,c,h,u,l,f,S.x,S.y)&&pt(S.prev,S,S.next)>=0))return false;S=S.nextZ;}for(;v&&v.z>=_;){if(v.x>=d&&v.x<=y&&v.y>=x&&v.y<=m&&v!==s&&v!==n&&rs(a,c,h,u,l,f,v.x,v.y)&&pt(v.prev,v,v.next)>=0)return false;v=v.prevZ;}for(;S&&S.z<=b;){if(S.x>=d&&S.x<=y&&S.y>=x&&S.y<=m&&S!==s&&S!==n&&rs(a,c,h,u,l,f,S.x,S.y)&&pt(S.prev,S,S.next)>=0)return false;S=S.nextZ;}return true}function G_(i,t){let e=i;do{let r=e.prev,s=e.next.next;!Jr(r,s)&&Qf(r,e,e.next,s)&&ss(r,s)&&ss(s,r)&&(t.push(r.i,e.i,s.i),os(e),os(e.next),e=i=s),e=e.next;}while(e!==i);return br(e)}function R_(i,t,e,r,s,o){let n=i;do{let a=n.next.next;for(;a!==n.prev;){if(n.i!==a.i&&N_(n,a)){let h=Jf(n,a);n=br(n,n.next),h=br(h,h.next),is(n,t,e,r,s,o,0),is(h,t,e,r,s,o,0);return}a=a.next;}n=n.next;}while(n!==i)}function I_(i,t,e,r){let s=[];for(let o=0,n=t.length;o<n;o++){let a=t[o]*r,h=o<n-1?t[o+1]*r:i.length,l=qf(i,a,h,r,false);l===l.next&&(l.steiner=true),s.push(V_(l));}s.sort(D_);for(let o=0;o<s.length;o++)e=L_(s[o],e);return e}function D_(i,t){let e=i.x-t.x;if(e===0&&(e=i.y-t.y,e===0)){let r=(i.next.y-i.y)/(i.next.x-i.x),s=(t.next.y-t.y)/(t.next.x-t.x);e=r-s;}return e}function L_(i,t){let e=U_(i,t);if(!e)return t;let r=Jf(e,i);return br(r,r.next),br(e,e.next)}function U_(i,t){let e=t,r=i.x,s=i.y,o=-1/0,n;if(Jr(i,e))return e;do{if(Jr(i,e.next))return e.next;if(s<=e.y&&s>=e.next.y&&e.next.y!==e.y){let u=e.x+(s-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(u<=r&&u>o&&(o=u,n=e.x<e.next.x?e:e.next,u===r))return n}e=e.next;}while(e!==t);if(!n)return null;let a=n,h=n.x,l=n.y,c=1/0;e=n;do{if(r>=e.x&&e.x>=h&&r!==e.x&&Zf(s<l?r:o,s,h,l,s<l?o:r,s,e.x,e.y)){let u=Math.abs(s-e.y)/(r-e.x);ss(e,i)&&(u<c||u===c&&(e.x>n.x||e.x===n.x&&O_(n,e)))&&(n=e,c=u);}e=e.next;}while(e!==a);return n}function O_(i,t){return pt(i.prev,i,t.prev)<0&&pt(t.next,i,i.next)<0}function z_(i,t,e,r){let s=i;do s.z===0&&(s.z=dh(s.x,s.y,t,e,r)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==i);s.prevZ.nextZ=null,s.prevZ=null,W_(s);}function W_(i){let t,e=1;do{let r=i,s;i=null;let o=null;for(t=0;r;){t++;let n=r,a=0;for(let l=0;l<e&&(a++,n=n.nextZ,!!n);l++);let h=e;for(;a>0||h>0&&n;)a!==0&&(h===0||!n||r.z<=n.z)?(s=r,r=r.nextZ,a--):(s=n,n=n.nextZ,h--),o?o.nextZ=s:i=s,s.prevZ=o,o=s;r=n;}o.nextZ=null,e*=2;}while(t>1);return i}function dh(i,t,e,r,s){return i=(i-e)*s|0,t=(t-r)*s|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function V_(i){let t=i,e=i;do(t.x<e.x||t.x===e.x&&t.y<e.y)&&(e=t),t=t.next;while(t!==i);return e}function Zf(i,t,e,r,s,o,n,a){return (s-n)*(t-a)>=(i-n)*(o-a)&&(i-n)*(r-a)>=(e-n)*(t-a)&&(e-n)*(o-a)>=(s-n)*(r-a)}function rs(i,t,e,r,s,o,n,a){return !(i===n&&t===a)&&Zf(i,t,e,r,s,o,n,a)}function N_(i,t){return i.next.i!==t.i&&i.prev.i!==t.i&&!H_(i,t)&&(ss(i,t)&&ss(t,i)&&Y_(i,t)&&(pt(i.prev,i,t.prev)||pt(i,t.prev,t))||Jr(i,t)&&pt(i.prev,i,i.next)>0&&pt(t.prev,t,t.next)>0)}function pt(i,t,e){return (t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function Jr(i,t){return i.x===t.x&&i.y===t.y}function Qf(i,t,e,r){let s=Yo(pt(i,t,e)),o=Yo(pt(i,t,r)),n=Yo(pt(e,r,i)),a=Yo(pt(e,r,t));return !!(s!==o&&n!==a||s===0&&Ho(i,e,t)||o===0&&Ho(i,r,t)||n===0&&Ho(e,i,r)||a===0&&Ho(e,t,r))}function Ho(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function Yo(i){return i>0?1:i<0?-1:0}function H_(i,t){let e=i;do{if(e.i!==i.i&&e.next.i!==i.i&&e.i!==t.i&&e.next.i!==t.i&&Qf(e,e.next,i,t))return true;e=e.next;}while(e!==i);return false}function ss(i,t){return pt(i.prev,i,i.next)<0?pt(i,t,i.next)>=0&&pt(i,i.prev,t)>=0:pt(i,t,i.prev)<0||pt(i,i.next,t)<0}function Y_(i,t){let e=i,r=false,s=(i.x+t.x)/2,o=(i.y+t.y)/2;do e.y>o!=e.next.y>o&&e.next.y!==e.y&&s<(e.next.x-e.x)*(o-e.y)/(e.next.y-e.y)+e.x&&(r=!r),e=e.next;while(e!==i);return r}function Jf(i,t){let e=fh(i.i,i.x,i.y),r=fh(t.i,t.x,t.y),s=i.next,o=t.prev;return i.next=t,t.prev=i,e.next=s,s.prev=e,r.next=e,e.prev=r,o.next=r,r.prev=o,r}function Kf(i,t,e,r){let s=fh(i,t,e);return r?(s.next=r.next,s.prev=r,r.next.prev=s,r.next=s):(s.prev=s,s.next=s),s}function os(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ);}function fh(i,t,e){return {i,x:t,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:false}}function $_(i,t,e,r){let s=0;for(let o=t,n=e-r;o<e;o+=r)s+=(i[n]-i[o])*(i[o+1]+i[n+1]),n=o;return s}var tp=p(()=>{});var ep,rp=p(()=>{tp();Nt();ep=$o.default||$o;});function Xo(i,t,e,r,s,o,n){let a=ep(i,t,2);if(!a)return;for(let l=0;l<a.length;l+=3)o[n++]=a[l]+s,o[n++]=a[l+1]+s,o[n++]=a[l+2]+s;let h=s*r;for(let l=0;l<i.length;l+=2)e[h]=i[l],e[h+1]=i[l+1],h+=r;}var ph=p(()=>{rp();});var X_,ip,sp=p(()=>{D();ph();X_=[],ip={extension:{type:P.ShapeBuilder,name:"polygon"},build(i,t){for(let e=0;e<i.points.length;e++)t[e]=i.points[e];return true},triangulate(i,t,e,r,s,o){Xo(i,X_,t,e,r,s,o);}};});var op,np=p(()=>{D();op={extension:{type:P.ShapeBuilder,name:"rectangle"},build(i,t){let e=i,r=e.x,s=e.y,o=e.width,n=e.height;return o>0&&n>0?(t[0]=r,t[1]=s,t[2]=r+o,t[3]=s,t[4]=r+o,t[5]=s+n,t[6]=r,t[7]=s+n,true):false},triangulate(i,t,e,r,s,o){let n=0;r*=e,t[r+n]=i[0],t[r+n+1]=i[1],n+=e,t[r+n]=i[2],t[r+n+1]=i[3],n+=e,t[r+n]=i[6],t[r+n+1]=i[7],n+=e,t[r+n]=i[4],t[r+n+1]=i[5],n+=e;let a=r/e;s[o++]=a,s[o++]=a+1,s[o++]=a+2,s[o++]=a+1,s[o++]=a+3,s[o++]=a+2;}};});var ap,hp=p(()=>{D();ap={extension:{type:P.ShapeBuilder,name:"triangle"},build(i,t){return t[0]=i.x,t[1]=i.y,t[2]=i.x2,t[3]=i.y2,t[4]=i.x3,t[5]=i.y3,true},triangulate(i,t,e,r,s,o){let n=0;r*=e,t[r+n]=i[0],t[r+n+1]=i[1],n+=e,t[r+n]=i[2],t[r+n+1]=i[3],n+=e,t[r+n]=i[4],t[r+n+1]=i[5];let a=r/e;s[o++]=a,s[o++]=a+1,s[o++]=a+2;}};});function cp(i,t){for(let e=0;e<t.length;e++){let r=t[e];i.addColorStop(r.offset,r.color);}}function up(i,t){let e=ft.get().createCanvas(i,t),r=e.getContext("2d");return {canvas:e,context:r}}function j_(i){let t=i[0]??{};return (typeof t=="number"||i[1])&&(R("8.5.2","use options object instead"),t={type:"linear",start:{x:i[0],y:i[1]},end:{x:i[2],y:i[3]},textureSpace:i[4],textureSize:i[5]??Xt.defaultLinearOptions.textureSize}),t}var lp,gh,Xt,ti=p(()=>{Ht();ce();nt();To();Bt();Ut();mt();ha();lp=[{offset:0,color:"white"},{offset:1,color:"black"}],gh=class mh{constructor(...t){this.uid=J("fillGradient"),this.type="linear",this.colorStops=[];let e=j_(t);e={...e.type==="radial"?mh.defaultRadialOptions:mh.defaultLinearOptions,...so(e)},this._textureSize=e.textureSize,this._wrapMode=e.wrapMode,e.type==="radial"?(this.center=e.center,this.outerCenter=e.outerCenter??this.center,this.innerRadius=e.innerRadius,this.outerRadius=e.outerRadius,this.scale=e.scale,this.rotation=e.rotation):(this.start=e.start,this.end=e.end),this.textureSpace=e.textureSpace,this.type=e.type,e.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color);});}addColorStop(t,e){return this.colorStops.push({offset:t,color:K.shared.setValue(e).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:t,y:e}=this.start,{x:r,y:s}=this.end,o=r-t,n=s-e,a=o<0||n<0;if(this._wrapMode==="clamp-to-edge"){if(o<0){let m=t;t=r,r=m,o*=-1;}if(n<0){let m=e;e=s,s=m,n*=-1;}}let h=this.colorStops.length?this.colorStops:lp,l=this._textureSize,{canvas:c,context:u}=up(l,1),f=a?u.createLinearGradient(this._textureSize,0,0,0):u.createLinearGradient(0,0,this._textureSize,0);cp(f,h),u.fillStyle=f,u.fillRect(0,0,l,1),this.texture=new I({source:new we({resource:c,addressMode:this._wrapMode})});let d=Math.sqrt(o*o+n*n),x=Math.atan2(n,o),y=new F;y.scale(d/l,1),y.rotate(x),y.translate(t,e),this.textureSpace==="local"&&y.scale(l,l),this.transform=y;}buildGradient(){this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient();}buildRadialGradient(){if(this.texture)return;let t=this.colorStops.length?this.colorStops:lp,e=this._textureSize,{canvas:r,context:s}=up(e,e),{x:o,y:n}=this.center,{x:a,y:h}=this.outerCenter,l=this.innerRadius,c=this.outerRadius,u=a-c,f=h-c,d=e/(c*2),x=(o-u)*d,y=(n-f)*d,m=s.createRadialGradient(x,y,l*d,(a-u)*d,(h-f)*d,c*d);cp(m,t),s.fillStyle=t[t.length-1].color,s.fillRect(0,0,e,e),s.fillStyle=m,s.translate(x,y),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-x,-y),s.fillRect(0,0,e,e),this.texture=new I({source:new we({resource:r,addressMode:this._wrapMode})});let _=new F;_.scale(1/d,1/d),_.translate(u,f),this.textureSpace==="local"&&_.scale(e,e),this.transform=_;}get styleKey(){return this.uid}destroy(){this.texture?.destroy(true),this.texture=null;}};gh.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};gh.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};Xt=gh;});function dp(i,t,e,r){let s=t.matrix?i.copyFrom(t.matrix).invert():i.identity();if(t.textureSpace==="local"){let n=e.getBounds(q_);t.width&&n.pad(t.width);let{x:a,y:h}=n,l=1/n.width,c=1/n.height,u=-a*l,f=-h*c,d=s.a,x=s.b,y=s.c,m=s.d;s.a*=l,s.b*=l,s.c*=c,s.d*=c,s.tx=u*d+f*y+s.tx,s.ty=u*x+f*m+s.ty;}else s.translate(t.texture.frame.x,t.texture.frame.y),s.scale(1/t.texture.source.width,1/t.texture.source.height);let o=t.texture.source.style;return !(t.fill instanceof Xt)&&o.addressMode==="clamp-to-edge"&&(o.addressMode="repeat",o.update()),r&&s.append(K_.copyFrom(r).invert()),s}var K_,q_,fp=p(()=>{nt();Yt();ti();K_=new F,q_=new tt;});function mp(i,t){let{geometryData:e,batches:r}=t;r.length=0,e.indices.length=0,e.vertices.length=0,e.uvs.length=0;for(let s=0;s<i.instructions.length;s++){let o=i.instructions[s];if(o.action==="texture")J_(o.data,r,e);else if(o.action==="fill"||o.action==="stroke"){let n=o.action==="stroke",a=o.data.path.shapePath,h=o.data.style,l=o.data.hole;n&&l&&pp(l.shapePath,h,true,r,e),l&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=l.shapePath.shapePrimitives),pp(a,h,n,r,e);}}}function J_(i,t,e){let r=[],s=jo.rectangle,o=Z_;o.x=i.dx,o.y=i.dy,o.width=i.dw,o.height=i.dh;let n=i.transform;if(!s.build(o,r))return;let{vertices:a,uvs:h,indices:l}=e,c=l.length,u=a.length/2;n&&ch(r,n),s.triangulate(r,a,2,u,l,c);let f=i.image,d=f.uvs;h.push(d.x0,d.y0,d.x1,d.y1,d.x3,d.y3,d.x2,d.y2);let x=St.get(_r);x.indexOffset=c,x.indexSize=l.length-c,x.attributeOffset=u,x.attributeSize=a.length/2-u,x.baseColor=i.style,x.alpha=i.alpha,x.texture=f,x.geometryData=e,t.push(x);}function pp(i,t,e,r,s){let{vertices:o,uvs:n,indices:a}=s;i.shapePrimitives.forEach(({shape:h,transform:l,holes:c})=>{let u=[],f=jo[h.type];if(!f.build(h,u))return;let d=a.length,x=o.length/2,y="triangle-list";if(l&&ch(u,l),e){let v=h.closePath??true,S=t;S.pixelLine?(Xf(u,v,o,a),y="line-list"):Yf(u,S,false,v,o,a);}else if(c){let v=[],S=u.slice();ty(c).forEach(T=>{v.push(S.length/2),S.push(...T);}),Xo(S,v,o,2,x,a,d);}else f.triangulate(u,o,2,x,a,d);let m=n.length/2,_=t.texture;if(_!==I.WHITE){let v=dp(Q_,t,h,l);If(o,2,x,n,m,2,o.length/2-x,v);}else Df(n,m,2,o.length/2-x);let b=St.get(_r);b.indexOffset=d,b.indexSize=a.length-d,b.attributeOffset=x,b.attributeSize=o.length/2-x,b.baseColor=t.color,b.alpha=t.alpha,b.texture=_,b.geometryData=s,b.topology=y,r.push(b);});}function ty(i){let t=[];for(let e=0;e<i.length;e++){let r=i[e].shape,s=[];jo[r.type].build(r,s)&&t.push(s);}return t}var jo,Z_,Q_,gp=p(()=>{D();nt();Yt();Lf();Uf();Bt();cr();uh();Wf();$f();jf();sp();np();hp();fp();ph();jo={};O.handleByMap(P.ShapeBuilder,jo);O.add(op,ip,ap,Qr,Of,zf);Z_=new tt,Q_=new F;});var xh,_h,bh,ei,Ko=p(()=>{D();cd();Rf();na();mt();cr();gp();xh=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]};}},_h=class{constructor(){this.instructions=new Rr;}init(t){this.batcher=new Gf({maxTextures:t}),this.instructions.reset();}get geometry(){return R(cc,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},bh=class yh{constructor(t){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=t,t.renderableGC.addManagedHash(this,"_gpuContextHash"),t.renderableGC.addManagedHash(this,"_graphicsDataContextHash");}init(t){yh.defaultOptions.bezierSmoothness=t?.bezierSmoothness??yh.defaultOptions.bezierSmoothness;}getContextRenderData(t){return this._graphicsDataContextHash[t.uid]||this._initContextRenderData(t)}updateGpuContext(t){let e=this._gpuContextHash[t.uid]||this._initContext(t);if(t.dirty){e?this._cleanGraphicsContextData(t):e=this._initContext(t),mp(t,e);let r=t.batchMode;t.customShader||r==="no-batch"?e.isBatchable=false:r==="auto"?e.isBatchable=e.geometryData.vertices.length<400:e.isBatchable=true,t.dirty=false;}return e}getGpuContext(t){return this._gpuContextHash[t.uid]||this._initContext(t)}_initContextRenderData(t){let e=St.get(_h,{maxTextures:this._renderer.limits.maxBatchableTextures}),{batches:r,geometryData:s}=this._gpuContextHash[t.uid],o=s.vertices.length,n=s.indices.length;for(let c=0;c<r.length;c++)r[c].applyTransform=false;let a=e.batcher;a.ensureAttributeBuffer(o),a.ensureIndexBuffer(n),a.begin();for(let c=0;c<r.length;c++){let u=r[c];a.add(u);}a.finish(e.instructions);let h=a.geometry;h.indexBuffer.setDataWithSize(a.indexBuffer,a.indexSize,true),h.buffers[0].setDataWithSize(a.attributeBuffer.float32View,a.attributeSize,true);let l=a.batches;for(let c=0;c<l.length;c++){let u=l[c];u.bindGroup=ld(u.textures.textures,u.textures.count,this._renderer.limits.maxBatchableTextures);}return this._graphicsDataContextHash[t.uid]=e,e}_initContext(t){let e=new xh;return e.context=t,this._gpuContextHash[t.uid]=e,t.on("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[t.uid]}onGraphicsContextDestroy(t){this._cleanGraphicsContextData(t),t.off("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[t.uid]=null;}_cleanGraphicsContextData(t){let e=this._gpuContextHash[t.uid];e.isBatchable||this._graphicsDataContextHash[t.uid]&&(St.return(this.getContextRenderData(t)),this._graphicsDataContextHash[t.uid]=null),e.batches&&e.batches.forEach(r=>{St.return(r);});}destroy(){for(let t in this._gpuContextHash)this._gpuContextHash[t]&&this.onGraphicsContextDestroy(this._gpuContextHash[t].context);}};bh.extension={type:[P.WebGLSystem,P.WebGPUSystem,P.CanvasSystem],name:"graphicsContext"};bh.defaultOptions={bezierSmoothness:.5};ei=bh;});var ey,vh,Sh,Th,wh,Ph,Mh,Ch,vr,qo=p(()=>{ey={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},vh=0,Sh=1,Th=2,wh=3,Ph=4,Mh=5,Ch=class xp{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=true,this.depthMask=true;}get blend(){return !!(this.data&1<<vh)}set blend(t){!!(this.data&1<<vh)!==t&&(this.data^=1<<vh);}get offsets(){return !!(this.data&1<<Sh)}set offsets(t){!!(this.data&1<<Sh)!==t&&(this.data^=1<<Sh);}set cullMode(t){if(t==="none"){this.culling=false;return}this.culling=true,this.clockwiseFrontFace=t==="front";}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return !!(this.data&1<<Th)}set culling(t){!!(this.data&1<<Th)!==t&&(this.data^=1<<Th);}get depthTest(){return !!(this.data&1<<wh)}set depthTest(t){!!(this.data&1<<wh)!==t&&(this.data^=1<<wh);}get depthMask(){return !!(this.data&1<<Mh)}set depthMask(t){!!(this.data&1<<Mh)!==t&&(this.data^=1<<Mh);}get clockwiseFrontFace(){return !!(this.data&1<<Ph)}set clockwiseFrontFace(t){!!(this.data&1<<Ph)!==t&&(this.data^=1<<Ph);}get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!=="none",this._blendMode=t,this._blendModeId=ey[t]||0;}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t;}toString(){return `[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let t=new xp;return t.depthTest=false,t.blend=true,t}};Ch.default2d=Ch.for2d();vr=Ch;});function Ke(i,t,e){let r=(i>>24&255)/255;t[e++]=(i&255)/255*r,t[e++]=(i>>8&255)/255*r,t[e++]=(i>>16&255)/255*r,t[e++]=r;}var ns=p(()=>{});var Ah,as,_p=p(()=>{D();qo();cr();ns();uh();Ah=class{constructor(){this.batches=[],this.batched=false;}destroy(){this.batches.forEach(t=>{St.return(t);}),this.batches.length=0;}},as=class{constructor(t,e){this.state=vr.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this);}contextChange(){this._adaptor.contextChange(this.renderer);}validateRenderable(t){let e=t.context,r=!!t._gpuData,s=this.renderer.graphicsContext.updateGpuContext(e);return !!(s.isBatchable||r!==s.isBatchable)}addRenderable(t,e){let r=this.renderer.graphicsContext.updateGpuContext(t.context);t.didViewUpdate&&this._rebuild(t),r.isBatchable?this._addToBatcher(t,e):(this.renderer.renderPipes.batch.break(e),e.add(t));}updateRenderable(t){let r=this._getGpuDataForRenderable(t).batches;for(let s=0;s<r.length;s++){let o=r[s];o._batcher.updateElement(o);}}execute(t){if(!t.isRenderable)return;let e=this.renderer,r=t.context;if(!e.graphicsContext.getGpuContext(r).batches.length)return;let o=r.customShader||this._adaptor.shader;this.state.blendMode=t.groupBlendMode;let n=o.resources.localUniforms.uniforms;n.uTransformMatrix=t.groupTransform,n.uRound=e._roundPixels|t._roundPixels,Ke(t.groupColorAlpha,n.uColor,0),this._adaptor.execute(this,t);}_rebuild(t){let e=this._getGpuDataForRenderable(t),r=this.renderer.graphicsContext.updateGpuContext(t.context);e.destroy(),r.isBatchable&&this._updateBatchesForRenderable(t,e);}_addToBatcher(t,e){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(t).batches;for(let o=0;o<s.length;o++){let n=s[o];r.addToBatch(n,e);}}_getGpuDataForRenderable(t){return t._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(t)}_initGpuDataForRenderable(t){let e=new Ah;return t._gpuData[this.renderer.uid]=e,e}_updateBatchesForRenderable(t,e){let r=t.context,s=this.renderer.graphicsContext.getGpuContext(r),o=this.renderer._roundPixels|t._roundPixels;e.batches=s.batches.map(n=>{let a=St.get(_r);return n.copyTo(a),a.renderable=t,a.roundPixels=o,a});}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null;}};as.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"graphics"};});var Eh=p(()=>{D();Ko();_p();O.add(as);O.add(ei);});var qe,Zo=p(()=>{qe=class{constructor(){this.batcherName="default",this.packAsQuad=false,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1;}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(t){this._topology=t;}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1;}setTexture(t){this.texture!==t&&(this.texture=t,this._textureMatrixUpdateId=-1);}get uvs(){let e=this.geometry.getBuffer("aUV"),r=e.data,s=r,o=this.texture.textureMatrix;return o.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==o._updateID||this._uvUpdateId!==e._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=o._updateID,this._uvUpdateId=e._updateID,o.multiplyUvs(r,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}};});var Qo,hs,yp=p(()=>{D();nt();qi();je();Zi();ns();Zo();Qo=class{destroy(){}},hs=class{constructor(t,e){this.localUniforms=new zt({uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new oe({0:this.localUniforms}),this.renderer=t,this._adaptor=e,this._adaptor.init();}validateRenderable(t){let e=this._getMeshData(t),r=e.batched,s=t.batched;if(e.batched=s,r!==s)return true;if(s){let o=t._geometry;if(o.indices.length!==e.indexSize||o.positions.length!==e.vertexSize)return e.indexSize=o.indices.length,e.vertexSize=o.positions.length,true;let n=this._getBatchableMesh(t);return n.texture.uid!==t._texture.uid&&(n._textureMatrixUpdateId=-1),!n._batcher.checkAndUpdateTexture(n,t._texture)}return false}addRenderable(t,e){let r=this.renderer.renderPipes.batch,{batched:s}=this._getMeshData(t);if(s){let o=this._getBatchableMesh(t);o.setTexture(t._texture),o.geometry=t._geometry,r.addToBatch(o,e);}else r.break(e),e.add(t);}updateRenderable(t){if(t.batched){let e=this._getBatchableMesh(t);e.setTexture(t._texture),e.geometry=t._geometry,e._batcher.updateElement(e);}}execute(t){if(!t.isRenderable)return;t.state.blendMode=Le(t.groupBlendMode,t.texture._source);let e=this.localUniforms;e.uniforms.uTransformMatrix=t.groupTransform,e.uniforms.uRound=this.renderer._roundPixels|t._roundPixels,e.update(),Ke(t.groupColorAlpha,e.uniforms.uColor,0),this._adaptor.execute(this,t);}_getMeshData(t){var e,r;return (e=t._gpuData)[r=this.renderer.uid]||(e[r]=new Qo),t._gpuData[this.renderer.uid].meshData||this._initMeshData(t)}_initMeshData(t){return t._gpuData[this.renderer.uid].meshData={batched:t.batched,indexSize:t._geometry.indices?.length,vertexSize:t._geometry.positions?.length},t._gpuData[this.renderer.uid].meshData}_getBatchableMesh(t){var e,r;return (e=t._gpuData)[r=this.renderer.uid]||(e[r]=new Qo),t._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(t)}_initBatchableMesh(t){let e=new qe;return e.renderable=t,e.setTexture(t._texture),e.transform=t.groupTransform,e.roundPixels=this.renderer._roundPixels|t._roundPixels,t._gpuData[this.renderer.uid].batchableMesh=e,e}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null;}};hs.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"mesh"};});var Fh=p(()=>{D();yp();O.add(hs);});var Jo,bp=p(()=>{Jo=class{execute(t,e){let r=t.state,s=t.renderer,o=e.shader||t.defaultShader;o.resources.uTexture=e.texture._source,o.resources.uniforms=t.localUniforms;let n=s.gl,a=t.getBuffers(e);s.shader.bind(o),s.state.set(r),s.geometry.bind(a.geometry,o.glProgram);let l=a.geometry.indexBuffer.data.BYTES_PER_ELEMENT===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;n.drawElements(n.TRIANGLES,e.particleChildren.length*6,l,0);}};});function Bh(i,t=null){let e=i*6;if(e>65535?t||(t=new Uint32Array(e)):t||(t=new Uint16Array(e)),t.length!==e)throw new Error(`Out buffer length is incorrect, got ${t.length} and expected ${e}`);for(let r=0,s=0;r<e;r+=6,s+=4)t[r+0]=s+0,t[r+1]=s+1,t[r+2]=s+2,t[r+3]=s+0,t[r+4]=s+2,t[r+5]=s+3;return t}var vp=p(()=>{});function Tp(i){return {dynamicUpdate:Sp(i,true),staticUpdate:Sp(i,false)}}function Sp(i,t){let e=[];e.push(`
|
|
253
|
+
`}};});var ah,Tf,wf=p(()=>{ah=["f32","i32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>"],Tf=ah.reduce((i,t)=>(i[t]=true,i),{});});function Pf(i,t){switch(i){case "f32":return 0;case "vec2<f32>":return new Float32Array(2*t);case "vec3<f32>":return new Float32Array(3*t);case "vec4<f32>":return new Float32Array(4*t);case "mat2x2<f32>":return new Float32Array([1,0,0,1]);case "mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case "mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var Mf=p(()=>{});var Cf,zt,je=p(()=>{Ut();Fo();wf();Mf();Cf=class Af{constructor(t,e){this._touched=0,this.uid=J("uniform"),this._resourceType="uniformGroup",this._resourceId=J("resource"),this.isUniformGroup=true,this._dirtyId=0,this.destroyed=false,e={...Af.defaultOptions,...e},this.uniformStructures=t;let r={};for(let s in t){let o=t[s];if(o.name=s,o.size=o.size??1,!Tf[o.type])throw new Error(`Uniform type ${o.type} is not supported. Supported uniform types are: ${ah.join(", ")}`);o.value??(o.value=Pf(o.type,o.size)),r[s]=o.value;}this.uniforms=r,this._dirtyId=1,this.ubo=e.ubo,this.isStatic=e.isStatic,this._signature=Yr(Object.keys(r).map(s=>`${s}-${t[s].type}`).join("-"),"uniform-group");}update(){this._dirtyId++;}};Cf.defaultOptions={ubo:false,isStatic:false};zt=Cf;});function Vo(i){let t=Ef[i];if(t)return t;let e=new Int32Array(i);for(let r=0;r<i;r++)e[r]=r;return t=Ef[i]=new zt({uTextures:{value:e,type:"i32",size:i}},{isStatic:true}),t}var Ef,hh=p(()=>{je();Ef={};});var Ce,ts=p(()=>{Ce=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.BOTH=3]="BOTH",i))(Ce||{});});var Ae,es=p(()=>{Nt();Ut();ko();qi();Io();ts();je();Ae=class i extends Z{constructor(t){super(),this.uid=J("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:e,glProgram:r,groups:s,resources:o,compatibleRenderers:n,groupMap:a}=t;this.gpuProgram=e,this.glProgram=r,n===void 0&&(n=0,e&&(n|=Ce.WEBGPU),r&&(n|=Ce.WEBGL)),this.compatibleRenderers=n;let h={};if(!o&&!s&&(o={}),o&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!e&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!e&&s&&a)for(let l in a)for(let c in a[l]){let u=a[l][c];h[u]={group:l,binding:c,name:u};}else if(e&&s&&!a){let l=e.structsAndGroups.groups;a={},l.forEach(c=>{a[c.group]=a[c.group]||{},a[c.group][c.binding]=c.name,h[c.name]=c;});}else if(o){s={},a={},e&&e.structsAndGroups.groups.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,h[u.name]=u;});let l=0;for(let c in o)h[c]||(s[99]||(s[99]=new oe,this._ownedBindGroups.push(s[99])),h[c]={group:99,binding:l,name:c},a[99]=a[99]||{},a[99][l]=c,l++);for(let c in o){let u=c,f=o[c];!f.source&&!f._resourceType&&(f=new zt(f));let d=h[u];d&&(s[d.group]||(s[d.group]=new oe,this._ownedBindGroups.push(s[d.group])),s[d.group].setResource(f,d.binding));}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,h);}addResource(t,e,r){var s,o;(s=this._uniformBindMap)[e]||(s[e]={}),(o=this._uniformBindMap[e])[r]||(o[r]=t),this.groups[e]||(this.groups[e]=new oe,this._ownedBindGroups.push(this.groups[e]));}_buildResourceAccessor(t,e){let r={};for(let s in e){let o=e[s];Object.defineProperty(r,o.name,{get(){return t[o.group].getResource(o.binding)},set(n){t[o.group].setResource(n,o.binding);}});}return r}destroy(t=false){this.emit("destroy",this),t&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(e=>{e.destroy();}),this._ownedBindGroups=null,this.resources=null,this.groups=null;}static from(t){let{gpu:e,gl:r,...s}=t,o,n;return e&&(o=$e.from(e)),r&&(n=$r.from(r)),new i({gpuProgram:o,glProgram:n,...s})}};});var No,Ff=p(()=>{Do();ih();nh();Wo();hh();es();No=class extends Ae{constructor(t){let e=Kr({name:"batch",bits:[Uo,zo(t),Zr]}),r=jr({name:"batch",bits:[Lo,Oo(t),qr]});super({glProgram:e,gpuProgram:r,resources:{batchSamplers:Vo(t)}});}};});var lh,Bf,Gf,Rf=p(()=>{D();Pd();Ed();Ff();lh=null,Bf=class kf extends wd{constructor(t){super(t),this.geometry=new Eo,this.name=kf.extension.name,this.vertexSize=6,lh??(lh=new No(t.maxTextures)),this.shader=lh;}packAttributes(t,e,r,s,o){let n=o<<16|t.roundPixels&65535,a=t.transform,h=a.a,l=a.b,c=a.c,u=a.d,f=a.tx,d=a.ty,{positions:x,uvs:y}=t,m=t.color,_=t.attributeOffset,b=_+t.attributeSize;for(let v=_;v<b;v++){let S=v*2,M=x[S],T=x[S+1];e[s++]=h*M+c*T+f,e[s++]=u*T+l*M+d,e[s++]=y[S],e[s++]=y[S+1],r[s++]=m,r[s++]=n;}}packQuadAttributes(t,e,r,s,o){let n=t.texture,a=t.transform,h=a.a,l=a.b,c=a.c,u=a.d,f=a.tx,d=a.ty,x=t.bounds,y=x.maxX,m=x.minX,_=x.maxY,b=x.minY,v=n.uvs,S=t.color,M=o<<16|t.roundPixels&65535;e[s+0]=h*m+c*b+f,e[s+1]=u*b+l*m+d,e[s+2]=v.x0,e[s+3]=v.y0,r[s+4]=S,r[s+5]=M,e[s+6]=h*y+c*b+f,e[s+7]=u*b+l*y+d,e[s+8]=v.x1,e[s+9]=v.y1,r[s+10]=S,r[s+11]=M,e[s+12]=h*y+c*_+f,e[s+13]=u*_+l*y+d,e[s+14]=v.x2,e[s+15]=v.y2,r[s+16]=S,r[s+17]=M,e[s+18]=h*m+c*_+f,e[s+19]=u*_+l*m+d,e[s+20]=v.x3,e[s+21]=v.y3,r[s+22]=S,r[s+23]=M;}};Bf.extension={type:[P.Batcher],name:"default"};Gf=Bf;});function If(i,t,e,r,s,o,n,a=null){let h=0;e*=t,s*=o;let l=a.a,c=a.b,u=a.c,f=a.d,d=a.tx,x=a.ty;for(;h<n;){let y=i[e],m=i[e+1];r[s]=l*y+u*m+d,r[s+1]=c*y+f*m+x,s+=o,e+=t,h++;}}function Df(i,t,e,r){let s=0;for(t*=e;s<r;)i[t]=0,i[t+1]=0,t+=e,s++;}var Lf=p(()=>{});function ch(i,t,e,r,s){let o=t.a,n=t.b,a=t.c,h=t.d,l=t.tx,c=t.ty;e||(e=0),r||(r=2),s||(s=i.length/r-e);let u=e*r;for(let f=0;f<s;f++){let d=i[u],x=i[u+1];i[u]=o*d+a*x+l,i[u+1]=n*d+h*x+c,u+=r;}}var Uf=p(()=>{});var A_,_r,uh=p(()=>{nt();ra();A_=new F,_r=class{constructor(){this.packAsQuad=false,this.batcherName="default",this.topology="triangle-list",this.applyTransform=true,this.roundPixels=0,this._batcher=null,this._batch=null;}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let t=this.baseColor,e=t>>16|t&65280|(t&255)<<16,r=this.renderable;return r?ro(e,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):e+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||A_}copyTo(t){t.indexOffset=this.indexOffset,t.indexSize=this.indexSize,t.attributeOffset=this.attributeOffset,t.attributeSize=this.attributeSize,t.baseColor=this.baseColor,t.alpha=this.alpha,t.texture=this.texture,t.geometryData=this.geometryData,t.topology=this.topology;}reset(){this.applyTransform=true,this.renderable=null,this.topology="triangle-list";}};});var Qr,Of,zf,Wf=p(()=>{D();Qr={extension:{type:P.ShapeBuilder,name:"circle"},build(i,t){let e,r,s,o,n,a;if(i.type==="circle"){let S=i;if(n=a=S.radius,n<=0)return false;e=S.x,r=S.y,s=o=0;}else if(i.type==="ellipse"){let S=i;if(n=S.halfWidth,a=S.halfHeight,n<=0||a<=0)return false;e=S.x,r=S.y,s=o=0;}else {let S=i,M=S.width/2,T=S.height/2;e=S.x+M,r=S.y+T,n=a=Math.max(0,Math.min(S.radius,Math.min(M,T))),s=M-n,o=T-a;}if(s<0||o<0)return false;let h=Math.ceil(2.3*Math.sqrt(n+a)),l=h*8+(s?4:0)+(o?4:0);if(l===0)return false;if(h===0)return t[0]=t[6]=e+s,t[1]=t[3]=r+o,t[2]=t[4]=e-s,t[5]=t[7]=r-o,true;let c=0,u=h*4+(s?2:0)+2,f=u,d=l,x=s+n,y=o,m=e+x,_=e-x,b=r+y;if(t[c++]=m,t[c++]=b,t[--u]=b,t[--u]=_,o){let S=r-y;t[f++]=_,t[f++]=S,t[--d]=S,t[--d]=m;}for(let S=1;S<h;S++){let M=Math.PI/2*(S/h),T=s+Math.cos(M)*n,w=o+Math.sin(M)*a,W=e+T,A=e-T,E=r+w,B=r-w;t[c++]=W,t[c++]=E,t[--u]=E,t[--u]=A,t[f++]=A,t[f++]=B,t[--d]=B,t[--d]=W;}x=s,y=o+a,m=e+x,_=e-x,b=r+y;let v=r-y;return t[c++]=m,t[c++]=b,t[--d]=v,t[--d]=m,s&&(t[c++]=_,t[c++]=b,t[--d]=v,t[--d]=_),true},triangulate(i,t,e,r,s,o){if(i.length===0)return;let n=0,a=0;for(let c=0;c<i.length;c+=2)n+=i[c],a+=i[c+1];n/=i.length/2,a/=i.length/2;let h=r;t[h*e]=n,t[h*e+1]=a;let l=h++;for(let c=0;c<i.length;c+=2)t[h*e]=i[c],t[h*e+1]=i[c+1],c>0&&(s[o++]=h,s[o++]=l,s[o++]=h-1),h++;s[o++]=l+1,s[o++]=l,s[o++]=h-1;}},Of={...Qr,extension:{...Qr.extension,name:"ellipse"}},zf={...Qr,extension:{...Qr.extension,name:"roundedRectangle"}};});function Vf(i){let t=i.length;if(t<6)return 1;let e=0;for(let r=0,s=i[t-2],o=i[t-1];r<t;r+=2){let n=i[r],a=i[r+1];e+=(n-s)*(a+o),s=n,o=a;}return e<0?-1:1}var Nf=p(()=>{});function Hf(i,t,e,r,s,o,n,a){let h=i-e*s,l=t-r*s,c=i+e*o,u=t+r*o,f,d;n?(f=r,d=-e):(f=-r,d=e);let x=h+f,y=l+d,m=c+f,_=u+d;return a.push(x,y),a.push(m,_),2}function yr(i,t,e,r,s,o,n,a){let h=e-i,l=r-t,c=Math.atan2(h,l),u=Math.atan2(s-i,o-t);a&&c<u?c+=Math.PI*2:!a&&c>u&&(u+=Math.PI*2);let f=c,d=u-c,x=Math.abs(d),y=Math.sqrt(h*h+l*l),m=(15*x*Math.sqrt(y)/Math.PI>>0)+1,_=d/m;if(f+=_,a){n.push(i,t),n.push(e,r);for(let b=1,v=f;b<m;b++,v+=_)n.push(i,t),n.push(i+Math.sin(v)*y,t+Math.cos(v)*y);n.push(i,t),n.push(s,o);}else {n.push(e,r),n.push(i,t);for(let b=1,v=f;b<m;b++,v+=_)n.push(i+Math.sin(v)*y,t+Math.cos(v)*y),n.push(i,t);n.push(s,o),n.push(i,t);}return m*2}function Yf(i,t,e,r,s,o){let n=1e-4;if(i.length===0)return;let a=t,h=a.alignment;if(t.alignment!==.5){let ot=Vf(i);h=(h-.5)*ot+.5;}let l=new Q(i[0],i[1]),c=new Q(i[i.length-2],i[i.length-1]),u=r,f=Math.abs(l.x-c.x)<n&&Math.abs(l.y-c.y)<n;if(u){i=i.slice(),f&&(i.pop(),i.pop(),c.set(i[i.length-2],i[i.length-1]));let ot=(l.x+c.x)*.5,Ve=(c.y+l.y)*.5;i.unshift(ot,Ve),i.push(ot,Ve);}let d=s,x=i.length/2,y=i.length,m=d.length/2,_=a.width/2,b=_*_,v=a.miterLimit*a.miterLimit,S=i[0],M=i[1],T=i[2],w=i[3],W=0,A=0,E=-(M-w),B=S-T,Y=0,et=0,Ft=Math.sqrt(E*E+B*B);E/=Ft,B/=Ft,E*=_,B*=_;let Ti=h,V=(1-Ti)*2,X=Ti*2;u||(a.cap==="round"?y+=yr(S-E*(V-X)*.5,M-B*(V-X)*.5,S-E*V,M-B*V,S+E*X,M+B*X,d,true)+2:a.cap==="square"&&(y+=Hf(S,M,E,B,V,X,true,d))),d.push(S-E*V,M-B*V),d.push(S+E*X,M+B*X);for(let ot=1;ot<x-1;++ot){S=i[(ot-1)*2],M=i[(ot-1)*2+1],T=i[ot*2],w=i[ot*2+1],W=i[(ot+1)*2],A=i[(ot+1)*2+1],E=-(M-w),B=S-T,Ft=Math.sqrt(E*E+B*B),E/=Ft,B/=Ft,E*=_,B*=_,Y=-(w-A),et=T-W,Ft=Math.sqrt(Y*Y+et*et),Y/=Ft,et/=Ft,Y*=_,et*=_;let Ve=T-S,wi=M-w,Pi=T-W,Mi=A-w,kl=Ve*Pi+wi*Mi,Ls=wi*Pi-Mi*Ve,Ci=Ls<0;if(Math.abs(Ls)<.001*Math.abs(kl)){d.push(T-E*V,w-B*V),d.push(T+E*X,w+B*X),kl>=0&&(a.join==="round"?y+=yr(T,w,T-E*V,w-B*V,T-Y*V,w-et*V,d,false)+4:y+=2,d.push(T-Y*X,w-et*X),d.push(T+Y*V,w+et*V));continue}let Gl=(-E+S)*(-B+w)-(-E+T)*(-B+M),Rl=(-Y+W)*(-et+w)-(-Y+T)*(-et+A),Us=(Ve*Rl-Pi*Gl)/Ls,Os=(Mi*Gl-wi*Rl)/Ls,Un=(Us-T)*(Us-T)+(Os-w)*(Os-w),or=T+(Us-T)*V,nr=w+(Os-w)*V,ar=T-(Us-T)*X,hr=w-(Os-w)*X,yx=Math.min(Ve*Ve+wi*wi,Pi*Pi+Mi*Mi),Il=Ci?V:X,bx=yx+Il*Il*b;Un<=bx?a.join==="bevel"||Un/b>v?(Ci?(d.push(or,nr),d.push(T+E*X,w+B*X),d.push(or,nr),d.push(T+Y*X,w+et*X)):(d.push(T-E*V,w-B*V),d.push(ar,hr),d.push(T-Y*V,w-et*V),d.push(ar,hr)),y+=2):a.join==="round"?Ci?(d.push(or,nr),d.push(T+E*X,w+B*X),y+=yr(T,w,T+E*X,w+B*X,T+Y*X,w+et*X,d,true)+4,d.push(or,nr),d.push(T+Y*X,w+et*X)):(d.push(T-E*V,w-B*V),d.push(ar,hr),y+=yr(T,w,T-E*V,w-B*V,T-Y*V,w-et*V,d,false)+4,d.push(T-Y*V,w-et*V),d.push(ar,hr)):(d.push(or,nr),d.push(ar,hr)):(d.push(T-E*V,w-B*V),d.push(T+E*X,w+B*X),a.join==="round"?Ci?y+=yr(T,w,T+E*X,w+B*X,T+Y*X,w+et*X,d,true)+2:y+=yr(T,w,T-E*V,w-B*V,T-Y*V,w-et*V,d,false)+2:a.join==="miter"&&Un/b<=v&&(Ci?(d.push(ar,hr),d.push(ar,hr)):(d.push(or,nr),d.push(or,nr)),y+=2),d.push(T-Y*V,w-et*V),d.push(T+Y*X,w+et*X),y+=2);}S=i[(x-2)*2],M=i[(x-2)*2+1],T=i[(x-1)*2],w=i[(x-1)*2+1],E=-(M-w),B=S-T,Ft=Math.sqrt(E*E+B*B),E/=Ft,B/=Ft,E*=_,B*=_,d.push(T-E*V,w-B*V),d.push(T+E*X,w+B*X),u||(a.cap==="round"?y+=yr(T-E*(V-X)*.5,w-B*(V-X)*.5,T-E*V,w-B*V,T+E*X,w+B*X,d,false)+2:a.cap==="square"&&(y+=Hf(T,w,E,B,V,X,false,d)));let _x=1e-4*1e-4;for(let ot=m;ot<y+m-2;++ot)S=d[ot*2],M=d[ot*2+1],T=d[(ot+1)*2],w=d[(ot+1)*2+1],W=d[(ot+2)*2],A=d[(ot+2)*2+1],!(Math.abs(S*(w-A)+T*(A-M)+W*(M-w))<_x)&&o.push(ot,ot+1,ot+2);}var $f=p(()=>{ve();Nf();});function Xf(i,t,e,r){let s=1e-4;if(i.length===0)return;let o=i[0],n=i[1],a=i[i.length-2],h=i[i.length-1],l=t||Math.abs(o-a)<s&&Math.abs(n-h)<s,c=e,u=i.length/2,f=c.length/2;for(let d=0;d<u;d++)c.push(i[d*2]),c.push(i[d*2+1]);for(let d=0;d<u-1;d++)r.push(f+d,f+d+1);l&&r.push(f+u-1,f);}var jf=p(()=>{});function $o(i,t,e=2){let r=t&&t.length,s=r?t[0]*e:i.length,o=qf(i,0,s,e,true),n=[];if(!o||o.next===o.prev)return n;let a,h,l;if(r&&(o=I_(i,t,o,e)),i.length>80*e){a=i[0],h=i[1];let c=a,u=h;for(let f=e;f<s;f+=e){let d=i[f],x=i[f+1];d<a&&(a=d),x<h&&(h=x),d>c&&(c=d),x>u&&(u=x);}l=Math.max(c-a,u-h),l=l!==0?32767/l:0;}return is(o,n,e,a,h,l,0),n}function qf(i,t,e,r,s){let o;if(s===$_(i,t,e,r)>0)for(let n=t;n<e;n+=r)o=Kf(n/r|0,i[n],i[n+1],o);else for(let n=e-r;n>=t;n-=r)o=Kf(n/r|0,i[n],i[n+1],o);return o&&Jr(o,o.next)&&(os(o),o=o.next),o}function br(i,t){if(!i)return i;t||(t=i);let e=i,r;do if(r=false,!e.steiner&&(Jr(e,e.next)||pt(e.prev,e,e.next)===0)){if(os(e),e=t=e.prev,e===e.next)break;r=true;}else e=e.next;while(r||e!==t);return t}function is(i,t,e,r,s,o,n){if(!i)return;!n&&o&&z_(i,r,s,o);let a=i;for(;i.prev!==i.next;){let h=i.prev,l=i.next;if(o?k_(i,r,s,o):B_(i)){t.push(h.i,i.i,l.i),os(i),i=l.next,a=l.next;continue}if(i=l,i===a){n?n===1?(i=G_(br(i),t),is(i,t,e,r,s,o,2)):n===2&&R_(i,t,e,r,s,o):is(br(i),t,e,r,s,o,1);break}}}function B_(i){let t=i.prev,e=i,r=i.next;if(pt(t,e,r)>=0)return false;let s=t.x,o=e.x,n=r.x,a=t.y,h=e.y,l=r.y,c=Math.min(s,o,n),u=Math.min(a,h,l),f=Math.max(s,o,n),d=Math.max(a,h,l),x=r.next;for(;x!==t;){if(x.x>=c&&x.x<=f&&x.y>=u&&x.y<=d&&rs(s,a,o,h,n,l,x.x,x.y)&&pt(x.prev,x,x.next)>=0)return false;x=x.next;}return true}function k_(i,t,e,r){let s=i.prev,o=i,n=i.next;if(pt(s,o,n)>=0)return false;let a=s.x,h=o.x,l=n.x,c=s.y,u=o.y,f=n.y,d=Math.min(a,h,l),x=Math.min(c,u,f),y=Math.max(a,h,l),m=Math.max(c,u,f),_=dh(d,x,t,e,r),b=dh(y,m,t,e,r),v=i.prevZ,S=i.nextZ;for(;v&&v.z>=_&&S&&S.z<=b;){if(v.x>=d&&v.x<=y&&v.y>=x&&v.y<=m&&v!==s&&v!==n&&rs(a,c,h,u,l,f,v.x,v.y)&&pt(v.prev,v,v.next)>=0||(v=v.prevZ,S.x>=d&&S.x<=y&&S.y>=x&&S.y<=m&&S!==s&&S!==n&&rs(a,c,h,u,l,f,S.x,S.y)&&pt(S.prev,S,S.next)>=0))return false;S=S.nextZ;}for(;v&&v.z>=_;){if(v.x>=d&&v.x<=y&&v.y>=x&&v.y<=m&&v!==s&&v!==n&&rs(a,c,h,u,l,f,v.x,v.y)&&pt(v.prev,v,v.next)>=0)return false;v=v.prevZ;}for(;S&&S.z<=b;){if(S.x>=d&&S.x<=y&&S.y>=x&&S.y<=m&&S!==s&&S!==n&&rs(a,c,h,u,l,f,S.x,S.y)&&pt(S.prev,S,S.next)>=0)return false;S=S.nextZ;}return true}function G_(i,t){let e=i;do{let r=e.prev,s=e.next.next;!Jr(r,s)&&Qf(r,e,e.next,s)&&ss(r,s)&&ss(s,r)&&(t.push(r.i,e.i,s.i),os(e),os(e.next),e=i=s),e=e.next;}while(e!==i);return br(e)}function R_(i,t,e,r,s,o){let n=i;do{let a=n.next.next;for(;a!==n.prev;){if(n.i!==a.i&&N_(n,a)){let h=Jf(n,a);n=br(n,n.next),h=br(h,h.next),is(n,t,e,r,s,o,0),is(h,t,e,r,s,o,0);return}a=a.next;}n=n.next;}while(n!==i)}function I_(i,t,e,r){let s=[];for(let o=0,n=t.length;o<n;o++){let a=t[o]*r,h=o<n-1?t[o+1]*r:i.length,l=qf(i,a,h,r,false);l===l.next&&(l.steiner=true),s.push(V_(l));}s.sort(D_);for(let o=0;o<s.length;o++)e=L_(s[o],e);return e}function D_(i,t){let e=i.x-t.x;if(e===0&&(e=i.y-t.y,e===0)){let r=(i.next.y-i.y)/(i.next.x-i.x),s=(t.next.y-t.y)/(t.next.x-t.x);e=r-s;}return e}function L_(i,t){let e=U_(i,t);if(!e)return t;let r=Jf(e,i);return br(r,r.next),br(e,e.next)}function U_(i,t){let e=t,r=i.x,s=i.y,o=-1/0,n;if(Jr(i,e))return e;do{if(Jr(i,e.next))return e.next;if(s<=e.y&&s>=e.next.y&&e.next.y!==e.y){let u=e.x+(s-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(u<=r&&u>o&&(o=u,n=e.x<e.next.x?e:e.next,u===r))return n}e=e.next;}while(e!==t);if(!n)return null;let a=n,h=n.x,l=n.y,c=1/0;e=n;do{if(r>=e.x&&e.x>=h&&r!==e.x&&Zf(s<l?r:o,s,h,l,s<l?o:r,s,e.x,e.y)){let u=Math.abs(s-e.y)/(r-e.x);ss(e,i)&&(u<c||u===c&&(e.x>n.x||e.x===n.x&&O_(n,e)))&&(n=e,c=u);}e=e.next;}while(e!==a);return n}function O_(i,t){return pt(i.prev,i,t.prev)<0&&pt(t.next,i,i.next)<0}function z_(i,t,e,r){let s=i;do s.z===0&&(s.z=dh(s.x,s.y,t,e,r)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==i);s.prevZ.nextZ=null,s.prevZ=null,W_(s);}function W_(i){let t,e=1;do{let r=i,s;i=null;let o=null;for(t=0;r;){t++;let n=r,a=0;for(let l=0;l<e&&(a++,n=n.nextZ,!!n);l++);let h=e;for(;a>0||h>0&&n;)a!==0&&(h===0||!n||r.z<=n.z)?(s=r,r=r.nextZ,a--):(s=n,n=n.nextZ,h--),o?o.nextZ=s:i=s,s.prevZ=o,o=s;r=n;}o.nextZ=null,e*=2;}while(t>1);return i}function dh(i,t,e,r,s){return i=(i-e)*s|0,t=(t-r)*s|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function V_(i){let t=i,e=i;do(t.x<e.x||t.x===e.x&&t.y<e.y)&&(e=t),t=t.next;while(t!==i);return e}function Zf(i,t,e,r,s,o,n,a){return (s-n)*(t-a)>=(i-n)*(o-a)&&(i-n)*(r-a)>=(e-n)*(t-a)&&(e-n)*(o-a)>=(s-n)*(r-a)}function rs(i,t,e,r,s,o,n,a){return !(i===n&&t===a)&&Zf(i,t,e,r,s,o,n,a)}function N_(i,t){return i.next.i!==t.i&&i.prev.i!==t.i&&!H_(i,t)&&(ss(i,t)&&ss(t,i)&&Y_(i,t)&&(pt(i.prev,i,t.prev)||pt(i,t.prev,t))||Jr(i,t)&&pt(i.prev,i,i.next)>0&&pt(t.prev,t,t.next)>0)}function pt(i,t,e){return (t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function Jr(i,t){return i.x===t.x&&i.y===t.y}function Qf(i,t,e,r){let s=Yo(pt(i,t,e)),o=Yo(pt(i,t,r)),n=Yo(pt(e,r,i)),a=Yo(pt(e,r,t));return !!(s!==o&&n!==a||s===0&&Ho(i,e,t)||o===0&&Ho(i,r,t)||n===0&&Ho(e,i,r)||a===0&&Ho(e,t,r))}function Ho(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function Yo(i){return i>0?1:i<0?-1:0}function H_(i,t){let e=i;do{if(e.i!==i.i&&e.next.i!==i.i&&e.i!==t.i&&e.next.i!==t.i&&Qf(e,e.next,i,t))return true;e=e.next;}while(e!==i);return false}function ss(i,t){return pt(i.prev,i,i.next)<0?pt(i,t,i.next)>=0&&pt(i,i.prev,t)>=0:pt(i,t,i.prev)<0||pt(i,i.next,t)<0}function Y_(i,t){let e=i,r=false,s=(i.x+t.x)/2,o=(i.y+t.y)/2;do e.y>o!=e.next.y>o&&e.next.y!==e.y&&s<(e.next.x-e.x)*(o-e.y)/(e.next.y-e.y)+e.x&&(r=!r),e=e.next;while(e!==i);return r}function Jf(i,t){let e=fh(i.i,i.x,i.y),r=fh(t.i,t.x,t.y),s=i.next,o=t.prev;return i.next=t,t.prev=i,e.next=s,s.prev=e,r.next=e,e.prev=r,o.next=r,r.prev=o,r}function Kf(i,t,e,r){let s=fh(i,t,e);return r?(s.next=r.next,s.prev=r,r.next.prev=s,r.next=s):(s.prev=s,s.next=s),s}function os(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ);}function fh(i,t,e){return {i,x:t,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:false}}function $_(i,t,e,r){let s=0;for(let o=t,n=e-r;o<e;o+=r)s+=(i[n]-i[o])*(i[o+1]+i[n+1]),n=o;return s}var tp=p(()=>{});var ep,rp=p(()=>{tp();Nt();ep=$o.default||$o;});function Xo(i,t,e,r,s,o,n){let a=ep(i,t,2);if(!a)return;for(let l=0;l<a.length;l+=3)o[n++]=a[l]+s,o[n++]=a[l+1]+s,o[n++]=a[l+2]+s;let h=s*r;for(let l=0;l<i.length;l+=2)e[h]=i[l],e[h+1]=i[l+1],h+=r;}var ph=p(()=>{rp();});var X_,ip,sp=p(()=>{D();ph();X_=[],ip={extension:{type:P.ShapeBuilder,name:"polygon"},build(i,t){for(let e=0;e<i.points.length;e++)t[e]=i.points[e];return true},triangulate(i,t,e,r,s,o){Xo(i,X_,t,e,r,s,o);}};});var op,np=p(()=>{D();op={extension:{type:P.ShapeBuilder,name:"rectangle"},build(i,t){let e=i,r=e.x,s=e.y,o=e.width,n=e.height;return o>0&&n>0?(t[0]=r,t[1]=s,t[2]=r+o,t[3]=s,t[4]=r+o,t[5]=s+n,t[6]=r,t[7]=s+n,true):false},triangulate(i,t,e,r,s,o){let n=0;r*=e,t[r+n]=i[0],t[r+n+1]=i[1],n+=e,t[r+n]=i[2],t[r+n+1]=i[3],n+=e,t[r+n]=i[6],t[r+n+1]=i[7],n+=e,t[r+n]=i[4],t[r+n+1]=i[5],n+=e;let a=r/e;s[o++]=a,s[o++]=a+1,s[o++]=a+2,s[o++]=a+1,s[o++]=a+3,s[o++]=a+2;}};});var ap,hp=p(()=>{D();ap={extension:{type:P.ShapeBuilder,name:"triangle"},build(i,t){return t[0]=i.x,t[1]=i.y,t[2]=i.x2,t[3]=i.y2,t[4]=i.x3,t[5]=i.y3,true},triangulate(i,t,e,r,s,o){let n=0;r*=e,t[r+n]=i[0],t[r+n+1]=i[1],n+=e,t[r+n]=i[2],t[r+n+1]=i[3],n+=e,t[r+n]=i[4],t[r+n+1]=i[5];let a=r/e;s[o++]=a,s[o++]=a+1,s[o++]=a+2;}};});function cp(i,t){for(let e=0;e<t.length;e++){let r=t[e];i.addColorStop(r.offset,r.color);}}function up(i,t){let e=ft.get().createCanvas(i,t),r=e.getContext("2d");return {canvas:e,context:r}}function j_(i){let t=i[0]??{};return (typeof t=="number"||i[1])&&(R("8.5.2","use options object instead"),t={type:"linear",start:{x:i[0],y:i[1]},end:{x:i[2],y:i[3]},textureSpace:i[4],textureSize:i[5]??Xt.defaultLinearOptions.textureSize}),t}var lp,gh,Xt,ti=p(()=>{Ht();ce();nt();To();Bt();Ut();mt();ha();lp=[{offset:0,color:"white"},{offset:1,color:"black"}],gh=class mh{constructor(...t){this.uid=J("fillGradient"),this.type="linear",this.colorStops=[];let e=j_(t);e={...e.type==="radial"?mh.defaultRadialOptions:mh.defaultLinearOptions,...so(e)},this._textureSize=e.textureSize,this._wrapMode=e.wrapMode,e.type==="radial"?(this.center=e.center,this.outerCenter=e.outerCenter??this.center,this.innerRadius=e.innerRadius,this.outerRadius=e.outerRadius,this.scale=e.scale,this.rotation=e.rotation):(this.start=e.start,this.end=e.end),this.textureSpace=e.textureSpace,this.type=e.type,e.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color);});}addColorStop(t,e){return this.colorStops.push({offset:t,color:K.shared.setValue(e).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:t,y:e}=this.start,{x:r,y:s}=this.end,o=r-t,n=s-e,a=o<0||n<0;if(this._wrapMode==="clamp-to-edge"){if(o<0){let m=t;t=r,r=m,o*=-1;}if(n<0){let m=e;e=s,s=m,n*=-1;}}let h=this.colorStops.length?this.colorStops:lp,l=this._textureSize,{canvas:c,context:u}=up(l,1),f=a?u.createLinearGradient(this._textureSize,0,0,0):u.createLinearGradient(0,0,this._textureSize,0);cp(f,h),u.fillStyle=f,u.fillRect(0,0,l,1),this.texture=new I({source:new we({resource:c,addressMode:this._wrapMode})});let d=Math.sqrt(o*o+n*n),x=Math.atan2(n,o),y=new F;y.scale(d/l,1),y.rotate(x),y.translate(t,e),this.textureSpace==="local"&&y.scale(l,l),this.transform=y;}buildGradient(){this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient();}buildRadialGradient(){if(this.texture)return;let t=this.colorStops.length?this.colorStops:lp,e=this._textureSize,{canvas:r,context:s}=up(e,e),{x:o,y:n}=this.center,{x:a,y:h}=this.outerCenter,l=this.innerRadius,c=this.outerRadius,u=a-c,f=h-c,d=e/(c*2),x=(o-u)*d,y=(n-f)*d,m=s.createRadialGradient(x,y,l*d,(a-u)*d,(h-f)*d,c*d);cp(m,t),s.fillStyle=t[t.length-1].color,s.fillRect(0,0,e,e),s.fillStyle=m,s.translate(x,y),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-x,-y),s.fillRect(0,0,e,e),this.texture=new I({source:new we({resource:r,addressMode:this._wrapMode})});let _=new F;_.scale(1/d,1/d),_.translate(u,f),this.textureSpace==="local"&&_.scale(e,e),this.transform=_;}get styleKey(){return this.uid}destroy(){this.texture?.destroy(true),this.texture=null;}};gh.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};gh.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};Xt=gh;});function dp(i,t,e,r){let s=t.matrix?i.copyFrom(t.matrix).invert():i.identity();if(t.textureSpace==="local"){let n=e.getBounds(q_);t.width&&n.pad(t.width);let{x:a,y:h}=n,l=1/n.width,c=1/n.height,u=-a*l,f=-h*c,d=s.a,x=s.b,y=s.c,m=s.d;s.a*=l,s.b*=l,s.c*=c,s.d*=c,s.tx=u*d+f*y+s.tx,s.ty=u*x+f*m+s.ty;}else s.translate(t.texture.frame.x,t.texture.frame.y),s.scale(1/t.texture.source.width,1/t.texture.source.height);let o=t.texture.source.style;return !(t.fill instanceof Xt)&&o.addressMode==="clamp-to-edge"&&(o.addressMode="repeat",o.update()),r&&s.append(K_.copyFrom(r).invert()),s}var K_,q_,fp=p(()=>{nt();Yt();ti();K_=new F,q_=new tt;});function mp(i,t){let{geometryData:e,batches:r}=t;r.length=0,e.indices.length=0,e.vertices.length=0,e.uvs.length=0;for(let s=0;s<i.instructions.length;s++){let o=i.instructions[s];if(o.action==="texture")J_(o.data,r,e);else if(o.action==="fill"||o.action==="stroke"){let n=o.action==="stroke",a=o.data.path.shapePath,h=o.data.style,l=o.data.hole;n&&l&&pp(l.shapePath,h,true,r,e),l&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=l.shapePath.shapePrimitives),pp(a,h,n,r,e);}}}function J_(i,t,e){let r=[],s=jo.rectangle,o=Z_;o.x=i.dx,o.y=i.dy,o.width=i.dw,o.height=i.dh;let n=i.transform;if(!s.build(o,r))return;let{vertices:a,uvs:h,indices:l}=e,c=l.length,u=a.length/2;n&&ch(r,n),s.triangulate(r,a,2,u,l,c);let f=i.image,d=f.uvs;h.push(d.x0,d.y0,d.x1,d.y1,d.x3,d.y3,d.x2,d.y2);let x=St.get(_r);x.indexOffset=c,x.indexSize=l.length-c,x.attributeOffset=u,x.attributeSize=a.length/2-u,x.baseColor=i.style,x.alpha=i.alpha,x.texture=f,x.geometryData=e,t.push(x);}function pp(i,t,e,r,s){let{vertices:o,uvs:n,indices:a}=s;i.shapePrimitives.forEach(({shape:h,transform:l,holes:c})=>{let u=[],f=jo[h.type];if(!f.build(h,u))return;let d=a.length,x=o.length/2,y="triangle-list";if(l&&ch(u,l),e){let v=h.closePath??true,S=t;S.pixelLine?(Xf(u,v,o,a),y="line-list"):Yf(u,S,false,v,o,a);}else if(c){let v=[],S=u.slice();ty(c).forEach(T=>{v.push(S.length/2),S.push(...T);}),Xo(S,v,o,2,x,a,d);}else f.triangulate(u,o,2,x,a,d);let m=n.length/2,_=t.texture;if(_!==I.WHITE){let v=dp(Q_,t,h,l);If(o,2,x,n,m,2,o.length/2-x,v);}else Df(n,m,2,o.length/2-x);let b=St.get(_r);b.indexOffset=d,b.indexSize=a.length-d,b.attributeOffset=x,b.attributeSize=o.length/2-x,b.baseColor=t.color,b.alpha=t.alpha,b.texture=_,b.geometryData=s,b.topology=y,r.push(b);});}function ty(i){let t=[];for(let e=0;e<i.length;e++){let r=i[e].shape,s=[];jo[r.type].build(r,s)&&t.push(s);}return t}var jo,Z_,Q_,gp=p(()=>{D();nt();Yt();Lf();Uf();Bt();cr();uh();Wf();$f();jf();sp();np();hp();fp();ph();jo={};O.handleByMap(P.ShapeBuilder,jo);O.add(op,ip,ap,Qr,Of,zf);Z_=new tt,Q_=new F;});var xh,_h,bh,ei,Ko=p(()=>{D();cd();Rf();na();mt();cr();gp();xh=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]};}},_h=class{constructor(){this.instructions=new Rr;}init(t){this.batcher=new Gf({maxTextures:t}),this.instructions.reset();}get geometry(){return R(cc,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},bh=class yh{constructor(t){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=t,t.renderableGC.addManagedHash(this,"_gpuContextHash"),t.renderableGC.addManagedHash(this,"_graphicsDataContextHash");}init(t){yh.defaultOptions.bezierSmoothness=t?.bezierSmoothness??yh.defaultOptions.bezierSmoothness;}getContextRenderData(t){return this._graphicsDataContextHash[t.uid]||this._initContextRenderData(t)}updateGpuContext(t){let e=this._gpuContextHash[t.uid]||this._initContext(t);if(t.dirty){e?this._cleanGraphicsContextData(t):e=this._initContext(t),mp(t,e);let r=t.batchMode;t.customShader||r==="no-batch"?e.isBatchable=false:r==="auto"?e.isBatchable=e.geometryData.vertices.length<400:e.isBatchable=true,t.dirty=false;}return e}getGpuContext(t){return this._gpuContextHash[t.uid]||this._initContext(t)}_initContextRenderData(t){let e=St.get(_h,{maxTextures:this._renderer.limits.maxBatchableTextures}),{batches:r,geometryData:s}=this._gpuContextHash[t.uid],o=s.vertices.length,n=s.indices.length;for(let c=0;c<r.length;c++)r[c].applyTransform=false;let a=e.batcher;a.ensureAttributeBuffer(o),a.ensureIndexBuffer(n),a.begin();for(let c=0;c<r.length;c++){let u=r[c];a.add(u);}a.finish(e.instructions);let h=a.geometry;h.indexBuffer.setDataWithSize(a.indexBuffer,a.indexSize,true),h.buffers[0].setDataWithSize(a.attributeBuffer.float32View,a.attributeSize,true);let l=a.batches;for(let c=0;c<l.length;c++){let u=l[c];u.bindGroup=ld(u.textures.textures,u.textures.count,this._renderer.limits.maxBatchableTextures);}return this._graphicsDataContextHash[t.uid]=e,e}_initContext(t){let e=new xh;return e.context=t,this._gpuContextHash[t.uid]=e,t.on("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[t.uid]}onGraphicsContextDestroy(t){this._cleanGraphicsContextData(t),t.off("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[t.uid]=null;}_cleanGraphicsContextData(t){let e=this._gpuContextHash[t.uid];e.isBatchable||this._graphicsDataContextHash[t.uid]&&(St.return(this.getContextRenderData(t)),this._graphicsDataContextHash[t.uid]=null),e.batches&&e.batches.forEach(r=>{St.return(r);});}destroy(){for(let t in this._gpuContextHash)this._gpuContextHash[t]&&this.onGraphicsContextDestroy(this._gpuContextHash[t].context);}};bh.extension={type:[P.WebGLSystem,P.WebGPUSystem,P.CanvasSystem],name:"graphicsContext"};bh.defaultOptions={bezierSmoothness:.5};ei=bh;});var ey,vh,Sh,Th,wh,Ph,Mh,Ch,vr,qo=p(()=>{ey={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},vh=0,Sh=1,Th=2,wh=3,Ph=4,Mh=5,Ch=class xp{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=true,this.depthMask=true;}get blend(){return !!(this.data&1<<vh)}set blend(t){!!(this.data&1<<vh)!==t&&(this.data^=1<<vh);}get offsets(){return !!(this.data&1<<Sh)}set offsets(t){!!(this.data&1<<Sh)!==t&&(this.data^=1<<Sh);}set cullMode(t){if(t==="none"){this.culling=false;return}this.culling=true,this.clockwiseFrontFace=t==="front";}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return !!(this.data&1<<Th)}set culling(t){!!(this.data&1<<Th)!==t&&(this.data^=1<<Th);}get depthTest(){return !!(this.data&1<<wh)}set depthTest(t){!!(this.data&1<<wh)!==t&&(this.data^=1<<wh);}get depthMask(){return !!(this.data&1<<Mh)}set depthMask(t){!!(this.data&1<<Mh)!==t&&(this.data^=1<<Mh);}get clockwiseFrontFace(){return !!(this.data&1<<Ph)}set clockwiseFrontFace(t){!!(this.data&1<<Ph)!==t&&(this.data^=1<<Ph);}get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!=="none",this._blendMode=t,this._blendModeId=ey[t]||0;}get polygonOffset(){return this._polygonOffset}set polygonOffset(t){this.offsets=!!t,this._polygonOffset=t;}toString(){return `[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let t=new xp;return t.depthTest=false,t.blend=true,t}};Ch.default2d=Ch.for2d();vr=Ch;});function Ke(i,t,e){let r=(i>>24&255)/255;t[e++]=(i&255)/255*r,t[e++]=(i>>8&255)/255*r,t[e++]=(i>>16&255)/255*r,t[e++]=r;}var ns=p(()=>{});var Ah,as,_p=p(()=>{D();qo();cr();ns();uh();Ah=class{constructor(){this.batches=[],this.batched=false;}destroy(){this.batches.forEach(t=>{St.return(t);}),this.batches.length=0;}},as=class{constructor(t,e){this.state=vr.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this);}contextChange(){this._adaptor.contextChange(this.renderer);}validateRenderable(t){let e=t.context,r=!!t._gpuData,s=this.renderer.graphicsContext.updateGpuContext(e);return !!(s.isBatchable||r!==s.isBatchable)}addRenderable(t,e){let r=this.renderer.graphicsContext.updateGpuContext(t.context);t.didViewUpdate&&this._rebuild(t),r.isBatchable?this._addToBatcher(t,e):(this.renderer.renderPipes.batch.break(e),e.add(t));}updateRenderable(t){let r=this._getGpuDataForRenderable(t).batches;for(let s=0;s<r.length;s++){let o=r[s];o._batcher.updateElement(o);}}execute(t){if(!t.isRenderable)return;let e=this.renderer,r=t.context;if(!e.graphicsContext.getGpuContext(r).batches.length)return;let o=r.customShader||this._adaptor.shader;this.state.blendMode=t.groupBlendMode;let n=o.resources.localUniforms.uniforms;n.uTransformMatrix=t.groupTransform,n.uRound=e._roundPixels|t._roundPixels,Ke(t.groupColorAlpha,n.uColor,0),this._adaptor.execute(this,t);}_rebuild(t){let e=this._getGpuDataForRenderable(t),r=this.renderer.graphicsContext.updateGpuContext(t.context);e.destroy(),r.isBatchable&&this._updateBatchesForRenderable(t,e);}_addToBatcher(t,e){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(t).batches;for(let o=0;o<s.length;o++){let n=s[o];r.addToBatch(n,e);}}_getGpuDataForRenderable(t){return t._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(t)}_initGpuDataForRenderable(t){let e=new Ah;return t._gpuData[this.renderer.uid]=e,e}_updateBatchesForRenderable(t,e){let r=t.context,s=this.renderer.graphicsContext.getGpuContext(r),o=this.renderer._roundPixels|t._roundPixels;e.batches=s.batches.map(n=>{let a=St.get(_r);return n.copyTo(a),a.renderable=t,a.roundPixels=o,a});}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null;}};as.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"graphics"};});var Eh=p(()=>{D();Ko();_p();O.add(as);O.add(ei);});var qe,Zo=p(()=>{qe=class{constructor(){this.batcherName="default",this.packAsQuad=false,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1;}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(t){this._topology=t;}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1;}setTexture(t){this.texture!==t&&(this.texture=t,this._textureMatrixUpdateId=-1);}get uvs(){let e=this.geometry.getBuffer("aUV"),r=e.data,s=r,o=this.texture.textureMatrix;return o.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==o._updateID||this._uvUpdateId!==e._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=o._updateID,this._uvUpdateId=e._updateID,o.multiplyUvs(r,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}};});var Qo,hs,yp=p(()=>{D();nt();qi();je();Zi();ns();Zo();Qo=class{destroy(){}},hs=class{constructor(t,e){this.localUniforms=new zt({uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new oe({0:this.localUniforms}),this.renderer=t,this._adaptor=e,this._adaptor.init();}validateRenderable(t){let e=this._getMeshData(t),r=e.batched,s=t.batched;if(e.batched=s,r!==s)return true;if(s){let o=t._geometry;if(o.indices.length!==e.indexSize||o.positions.length!==e.vertexSize)return e.indexSize=o.indices.length,e.vertexSize=o.positions.length,true;let n=this._getBatchableMesh(t);return n.texture.uid!==t._texture.uid&&(n._textureMatrixUpdateId=-1),!n._batcher.checkAndUpdateTexture(n,t._texture)}return false}addRenderable(t,e){let r=this.renderer.renderPipes.batch,{batched:s}=this._getMeshData(t);if(s){let o=this._getBatchableMesh(t);o.setTexture(t._texture),o.geometry=t._geometry,r.addToBatch(o,e);}else r.break(e),e.add(t);}updateRenderable(t){if(t.batched){let e=this._getBatchableMesh(t);e.setTexture(t._texture),e.geometry=t._geometry,e._batcher.updateElement(e);}}execute(t){if(!t.isRenderable)return;t.state.blendMode=Le(t.groupBlendMode,t.texture._source);let e=this.localUniforms;e.uniforms.uTransformMatrix=t.groupTransform,e.uniforms.uRound=this.renderer._roundPixels|t._roundPixels,e.update(),Ke(t.groupColorAlpha,e.uniforms.uColor,0),this._adaptor.execute(this,t);}_getMeshData(t){var e,r;return (e=t._gpuData)[r=this.renderer.uid]||(e[r]=new Qo),t._gpuData[this.renderer.uid].meshData||this._initMeshData(t)}_initMeshData(t){return t._gpuData[this.renderer.uid].meshData={batched:t.batched,indexSize:t._geometry.indices?.length,vertexSize:t._geometry.positions?.length},t._gpuData[this.renderer.uid].meshData}_getBatchableMesh(t){var e,r;return (e=t._gpuData)[r=this.renderer.uid]||(e[r]=new Qo),t._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(t)}_initBatchableMesh(t){let e=new qe;return e.renderable=t,e.setTexture(t._texture),e.transform=t.groupTransform,e.roundPixels=this.renderer._roundPixels|t._roundPixels,t._gpuData[this.renderer.uid].batchableMesh=e,e}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null;}};hs.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"mesh"};});var Fh=p(()=>{D();yp();O.add(hs);});var Jo,bp=p(()=>{Jo=class{execute(t,e){let r=t.state,s=t.renderer,o=e.shader||t.defaultShader;o.resources.uTexture=e.texture._source,o.resources.uniforms=t.localUniforms;let n=s.gl,a=t.getBuffers(e);s.shader.bind(o),s.state.set(r),s.geometry.bind(a.geometry,o.glProgram);let l=a.geometry.indexBuffer.data.BYTES_PER_ELEMENT===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;n.drawElements(n.TRIANGLES,e.particleChildren.length*6,l,0);}};});function Bh(i,t=null){let e=i*6;if(e>65535?t||(t=new Uint32Array(e)):t||(t=new Uint16Array(e)),t.length!==e)throw new Error(`Out buffer length is incorrect, got ${t.length} and expected ${e}`);for(let r=0,s=0;r<e;r+=6,s+=4)t[r+0]=s+0,t[r+1]=s+1,t[r+2]=s+2,t[r+3]=s+0,t[r+4]=s+2,t[r+5]=s+3;return t}var vp=p(()=>{});function Tp(i){return {dynamicUpdate:Sp(i,true),staticUpdate:Sp(i,false)}}function Sp(i,t){let e=[];e.push(`
|
|
254
254
|
|
|
255
255
|
var index = 0;
|
|
256
256
|
|
|
@@ -473,7 +473,7 @@ fn mainFragment(
|
|
|
473
473
|
font-weight: ${i.fontWeight};
|
|
474
474
|
font-style: ${i.fontStyle};
|
|
475
475
|
}`}var pg=p(()=>{fg();});async function mg(i,t,e){let r=i.filter(s=>_t.has(`${s}-and-url`)).map((s,o)=>{if(!wn.has(s)){let{url:n}=_t.get(`${s}-and-url`);o===0?wn.set(s,fl({fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:s},n)):wn.set(s,fl({fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:s},n));}return wn.get(s)});return (await Promise.all(r)).join(`
|
|
476
|
-
`)}var wn,gg=p(()=>{Ki();pg();wn=new Map;});function xg(i,t,e,r,s){let{domElement:o,styleElement:n,svgRoot:a}=s;o.innerHTML=`<style>${t.cssStyle}</style><div style='padding:0;'>${i}</div>`,o.setAttribute("style",`transform: scale(${e});transform-origin: top left; display: inline-block`),n.textContent=r;let{width:h,height:l}=s.image;return a.setAttribute("width",h.toString()),a.setAttribute("height",l.toString()),new XMLSerializer().serializeToString(a)}var _g=p(()=>{});function yg(i,t){let e=Fe.getOptimalCanvasAndContext(i.width,i.height,t),{context:r}=e;return r.clearRect(0,0,i.width,i.height),r.drawImage(i,0,0),e}var bg=p(()=>{gs();});function vg(i,t,e){return new Promise(async r=>{e&&await new Promise(s=>setTimeout(s,100)),i.onload=()=>{r();},i.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(t)}`,i.crossOrigin="anonymous";})}var Sg=p(()=>{});function wg(i,t,e,r){r||(r=Tg||(Tg=new li));let{domElement:s,styleElement:o,svgRoot:n}=r;s.innerHTML=`<style>${t.cssStyle};</style><div style='padding:0'>${i}</div>`,s.setAttribute("style","transform-origin: top left; display: inline-block"),e&&(o.textContent=e),document.body.appendChild(n);let a=s.getBoundingClientRect();n.remove();let h=t.padding*2;return {width:a.width-h,height:a.height-h}}var Tg,Pg=p(()=>{dl();});var vs,Mg=p(()=>{D();gs();Dr();ts();tg();Rt();cr();Jh();dl();lg();ug();gg();_g();bg();Sg();Pg();vs=class{constructor(t){this._renderer=t,this._createCanvas=t.type===Ce.WEBGPU;}getTexture(t){return this.getTexturePromise(t)}getTexturePromise(t){return this._buildTexturePromise(t)}async _buildTexturePromise(t){let{text:e,style:r,resolution:s,textureStyle:o}=t,n=St.get(li),a=cg(e,r),h=await mg(a,r,Tn.defaultTextStyle),l=wg(e,r,h,n),c=Math.ceil(Math.ceil(Math.max(1,l.width)+r.padding*2)*s),u=Math.ceil(Math.ceil(Math.max(1,l.height)+r.padding*2)*s),f=n.image,d=2;f.width=(c|0)+d,f.height=(u|0)+d;let x=xg(e,r,s,h,n);await vg(f,x,Jm()&&a.length>0);let y=f,m;this._createCanvas&&(m=yg(f,s));let _=pn(m?m.canvas:y,f.width-d,f.height-d,s);return o&&(_.source.style=o),this._createCanvas&&(this._renderer.texture.initSource(_.source),Fe.returnCanvasAndContext(m)),St.return(n),_}returnTexturePromise(t){t.then(e=>{this._cleanUp(e);}).catch(()=>{$("HTMLTextSystem: Failed to clean texture");});}_cleanUp(t){It.returnTexture(t,true),t.source.resource=null,t.source.uploadMethodId="unknown";}destroy(){this._renderer=null;}};vs.extension={type:[P.WebGLSystem,P.WebGPUSystem,P.CanvasSystem],name:"htmlText"};});var pl=p(()=>{D();Qm();Mg();O.add(vs);O.add(bs);});var Cg,ci,Pn=p(()=>{Hr();Nr();Ji();mt();Cg=class Ag extends Me{constructor(...t){let e=t[0]??{};e instanceof Float32Array&&(R(j,"use new MeshGeometry({ positions, uvs, indices }) instead"),e={positions:e,uvs:t[1],indices:t[2]}),e={...Ag.defaultOptions,...e};let r=e.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=e.uvs;s||(e.positions?s=new Float32Array(r.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let o=e.indices||new Uint32Array([0,1,2,0,2,3]),n=e.shrinkBuffersToFit,a=new kt({data:r,label:"attribute-mesh-positions",shrinkToFit:n,usage:st.VERTEX|st.COPY_DST}),h=new kt({data:s,label:"attribute-mesh-uvs",shrinkToFit:n,usage:st.VERTEX|st.COPY_DST}),l=new kt({data:o,label:"index-mesh-buffer",shrinkToFit:n,usage:st.INDEX|st.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:
|
|
476
|
+
`)}var wn,gg=p(()=>{Ki();pg();wn=new Map;});function xg(i,t,e,r,s){let{domElement:o,styleElement:n,svgRoot:a}=s;o.innerHTML=`<style>${t.cssStyle}</style><div style='padding:0;'>${i}</div>`,o.setAttribute("style",`transform: scale(${e});transform-origin: top left; display: inline-block`),n.textContent=r;let{width:h,height:l}=s.image;return a.setAttribute("width",h.toString()),a.setAttribute("height",l.toString()),new XMLSerializer().serializeToString(a)}var _g=p(()=>{});function yg(i,t){let e=Fe.getOptimalCanvasAndContext(i.width,i.height,t),{context:r}=e;return r.clearRect(0,0,i.width,i.height),r.drawImage(i,0,0),e}var bg=p(()=>{gs();});function vg(i,t,e){return new Promise(async r=>{e&&await new Promise(s=>setTimeout(s,100)),i.onload=()=>{r();},i.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(t)}`,i.crossOrigin="anonymous";})}var Sg=p(()=>{});function wg(i,t,e,r){r||(r=Tg||(Tg=new li));let{domElement:s,styleElement:o,svgRoot:n}=r;s.innerHTML=`<style>${t.cssStyle};</style><div style='padding:0'>${i}</div>`,s.setAttribute("style","transform-origin: top left; display: inline-block"),e&&(o.textContent=e),document.body.appendChild(n);let a=s.getBoundingClientRect();n.remove();let h=t.padding*2;return {width:a.width-h,height:a.height-h}}var Tg,Pg=p(()=>{dl();});var vs,Mg=p(()=>{D();gs();Dr();ts();tg();Rt();cr();Jh();dl();lg();ug();gg();_g();bg();Sg();Pg();vs=class{constructor(t){this._renderer=t,this._createCanvas=t.type===Ce.WEBGPU;}getTexture(t){return this.getTexturePromise(t)}getTexturePromise(t){return this._buildTexturePromise(t)}async _buildTexturePromise(t){let{text:e,style:r,resolution:s,textureStyle:o}=t,n=St.get(li),a=cg(e,r),h=await mg(a,r,Tn.defaultTextStyle),l=wg(e,r,h,n),c=Math.ceil(Math.ceil(Math.max(1,l.width)+r.padding*2)*s),u=Math.ceil(Math.ceil(Math.max(1,l.height)+r.padding*2)*s),f=n.image,d=2;f.width=(c|0)+d,f.height=(u|0)+d;let x=xg(e,r,s,h,n);await vg(f,x,Jm()&&a.length>0);let y=f,m;this._createCanvas&&(m=yg(f,s));let _=pn(m?m.canvas:y,f.width-d,f.height-d,s);return o&&(_.source.style=o),this._createCanvas&&(this._renderer.texture.initSource(_.source),Fe.returnCanvasAndContext(m)),St.return(n),_}returnTexturePromise(t){t.then(e=>{this._cleanUp(e);}).catch(()=>{$("HTMLTextSystem: Failed to clean texture");});}_cleanUp(t){It.returnTexture(t,true),t.source.resource=null,t.source.uploadMethodId="unknown";}destroy(){this._renderer=null;}};vs.extension={type:[P.WebGLSystem,P.WebGPUSystem,P.CanvasSystem],name:"htmlText"};});var pl=p(()=>{D();Qm();Mg();O.add(vs);O.add(bs);});var Cg,ci,Pn=p(()=>{Hr();Nr();Ji();mt();Cg=class Ag extends Me{constructor(...t){let e=t[0]??{};e instanceof Float32Array&&(R(j,"use new MeshGeometry({ positions, uvs, indices }) instead"),e={positions:e,uvs:t[1],indices:t[2]}),e={...Ag.defaultOptions,...e};let r=e.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=e.uvs;s||(e.positions?s=new Float32Array(r.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let o=e.indices||new Uint32Array([0,1,2,0,2,3]),n=e.shrinkBuffersToFit,a=new kt({data:r,label:"attribute-mesh-positions",shrinkToFit:n,usage:st.VERTEX|st.COPY_DST}),h=new kt({data:s,label:"attribute-mesh-uvs",shrinkToFit:n,usage:st.VERTEX|st.COPY_DST}),l=new kt({data:o,label:"index-mesh-buffer",shrinkToFit:n,usage:st.INDEX|st.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:h,format:"float32x2",stride:8,offset:0}},indexBuffer:l,topology:e.topology}),this.batchMode="auto";}get positions(){return this.attributes.aPosition.buffer.data}set positions(t){this.attributes.aPosition.buffer.data=t;}get uvs(){return this.attributes.aUV.buffer.data}set uvs(t){this.attributes.aUV.buffer.data=t;}get indices(){return this.indexBuffer.data}set indices(t){this.indexBuffer.data=t;}};Cg.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:false};ci=Cg;});var Ss,Eg,Fg=p(()=>{Ss={name:"local-uniform-bit",vertex:{header:`
|
|
477
477
|
|
|
478
478
|
struct LocalUniforms {
|
|
479
479
|
uTransformMatrix:mat3x3<f32>,
|
|
@@ -568,4 +568,4 @@ fn mainFragment(
|
|
|
568
568
|
|
|
569
569
|
outColor = texture(uTexture, coord, unclamped == coord ? 0.0 : -32.0);// lod-bias very negative to force lod 0
|
|
570
570
|
|
|
571
|
-
`}};});var ml,gl,Mn,Rg=p(()=>{nt();Do();Fg();Wo();es();je();Bt();Gg();Mn=class extends Ae{constructor(){ml??(ml=jr({name:"tiling-sprite-shader",bits:[Ss,Bg,qr]})),gl??(gl=Kr({name:"tiling-sprite-shader",bits:[Eg,kg,Zr]}));let t=new zt({uMapCoord:{value:new F,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new F,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}});super({glProgram:gl,gpuProgram:ml,resources:{localUniforms:new zt({uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:t,uTexture:I.EMPTY.source,uSampler:I.EMPTY.source.style}});}updateUniforms(t,e,r,s,o,n){let a=this.resources.tilingUniforms,h=n.width,l=n.height,c=n.textureMatrix,u=a.uniforms.uTextureTransform;u.set(r.a*h/t,r.b*h/e,r.c*l/t,r.d*l/e,r.tx/t,r.ty/e),u.invert(),a.uniforms.uMapCoord=c.mapCoord,a.uniforms.uClampFrame=c.uClampFrame,a.uniforms.uClampOffset=c.uClampOffset,a.uniforms.uTextureTransform=u,a.uniforms.uSizeAnchor[0]=t,a.uniforms.uSizeAnchor[1]=e,a.uniforms.uSizeAnchor[2]=s,a.uniforms.uSizeAnchor[3]=o,n&&(this.resources.uTexture=n.source,this.resources.uSampler=n.source.style);}};});var Cn,Ig=p(()=>{Pn();Cn=class extends ci{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])});}};});function Dg(i,t){let e=i.anchor.x,r=i.anchor.y;t[0]=-e*i.width,t[1]=-r*i.height,t[2]=(1-e)*i.width,t[3]=-r*i.height,t[4]=(1-e)*i.width,t[5]=(1-r)*i.height,t[6]=-e*i.width,t[7]=(1-r)*i.height;}var Lg=p(()=>{});function Ug(i,t,e,r){let s=0,o=i.length/(t),n=r.a,a=r.b,h=r.c,l=r.d,c=r.tx,u=r.ty;for(e*=t;s<o;){let f=i[e],d=i[e+1];i[e]=n*f+h*d+c,i[e+1]=a*f+l*d+u,e+=t,s++;}}var Og=p(()=>{});function zg(i,t){let e=i.texture,r=e.frame.width,s=e.frame.height,o=0,n=0;i.applyAnchorToTexture&&(o=i.anchor.x,n=i.anchor.y),t[0]=t[6]=-o,t[2]=t[4]=1-o,t[1]=t[3]=-n,t[5]=t[7]=1-n;let a=F.shared;a.copyFrom(i._tileTransform.matrix),a.tx/=i.width,a.ty/=i.height,a.invert(),a.scale(i.width/r,i.height/s),Ug(t,2,0,a);}var Wg=p(()=>{nt();Og();});var An,xl,Ts,Vg=p(()=>{D();Zi();qo();ts();ns();Zo();Pn();Rg();Ig();Lg();Wg();An=new Cn,xl=class{constructor(){this.canBatch=true,this.geometry=new ci({indices:An.indices.slice(),positions:An.positions.slice(),uvs:An.uvs.slice()});}destroy(){this.geometry.destroy(),this.shader?.destroy();}},Ts=class{constructor(t){this._state=vr.default2d,this._renderer=t;}validateRenderable(t){let e=this._getTilingSpriteData(t),r=e.canBatch;this._updateCanBatch(t);let s=e.canBatch;if(s&&s===r){let{batchableMesh:o}=e;return !o._batcher.checkAndUpdateTexture(o,t.texture)}return r!==s}addRenderable(t,e){let r=this._renderer.renderPipes.batch;this._updateCanBatch(t);let s=this._getTilingSpriteData(t),{geometry:o,canBatch:n}=s;if(n){s.batchableMesh||(s.batchableMesh=new qe);let a=s.batchableMesh;t.didViewUpdate&&(this._updateBatchableMesh(t),a.geometry=o,a.renderable=t,a.transform=t.groupTransform,a.setTexture(t._texture)),a.roundPixels=this._renderer._roundPixels|t._roundPixels,r.addToBatch(a,e);}else r.break(e),s.shader||(s.shader=new Mn),this.updateRenderable(t),e.add(t);}execute(t){let{shader:e}=this._getTilingSpriteData(t);e.groups[0]=this._renderer.globalUniforms.bindGroup;let r=e.resources.localUniforms.uniforms;r.uTransformMatrix=t.groupTransform,r.uRound=this._renderer._roundPixels|t._roundPixels,Ke(t.groupColorAlpha,r.uColor,0),this._state.blendMode=Le(t.groupBlendMode,t.texture._source),this._renderer.encoder.draw({geometry:An,shader:e,state:this._state});}updateRenderable(t){let e=this._getTilingSpriteData(t),{canBatch:r}=e;if(r){let{batchableMesh:s}=e;t.didViewUpdate&&this._updateBatchableMesh(t),s._batcher.updateElement(s);}else if(t.didViewUpdate){let{shader:s}=e;s.updateUniforms(t.width,t.height,t._tileTransform.matrix,t.anchor.x,t.anchor.y,t.texture);}}_getTilingSpriteData(t){return t._gpuData[this._renderer.uid]||this._initTilingSpriteData(t)}_initTilingSpriteData(t){let e=new xl;return e.renderable=t,t._gpuData[this._renderer.uid]=e,e}_updateBatchableMesh(t){let e=this._getTilingSpriteData(t),{geometry:r}=e,s=t.texture.source.style;s.addressMode!=="repeat"&&(s.addressMode="repeat",s.update()),zg(t,r.uvs),Dg(t,r.positions);}destroy(){this._renderer=null;}_updateCanBatch(t){let e=this._getTilingSpriteData(t),r=t.texture,s=true;return this._renderer.type===Ce.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),e.canBatch=r.textureMatrix.isSimple&&(s||r.source.isPowerOfTwo),e.canBatch}};Ts.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"tilingSprite"};});var _l=p(()=>{D();Vg();O.add(Ts);});var Ng,Yg,$g=p(()=>{mt();Pn();Ng=class Hg extends ci{constructor(...t){super({});let e=t[0]??{};typeof e=="number"&&(R(j,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),e={width:e,height:t[1],verticesX:t[2],verticesY:t[3]}),this.build(e);}build(t){t={...Hg.defaultOptions,...t},this.verticesX=this.verticesX??t.verticesX,this.verticesY=this.verticesY??t.verticesY,this.width=this.width??t.width,this.height=this.height??t.height;let e=this.verticesX*this.verticesY,r=[],s=[],o=[],n=this.verticesX-1,a=this.verticesY-1,h=this.width/n,l=this.height/a;for(let u=0;u<e;u++){let f=u%this.verticesX,d=u/this.verticesX|0;r.push(f*h,d*l),s.push(f/n,d/a);}let c=n*a;for(let u=0;u<c;u++){let f=u%n,d=u/n|0,x=d*this.verticesX+f,y=d*this.verticesX+f+1,m=(d+1)*this.verticesX+f,_=(d+1)*this.verticesX+f+1;o.push(x,y,m,y,_,m);}this.buffers[0].data=new Float32Array(r),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint32Array(o),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update();}};Ng.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};Yg=Ng;});var Xg,Kg,qg=p(()=>{$g();Xg=class jg extends Yg{constructor(t={}){t={...jg.defaultOptions,...t},super({width:t.width,height:t.height,verticesX:4,verticesY:4}),this.update(t);}update(t){this.width=t.width??this.width,this.height=t.height??this.height,this._originalWidth=t.originalWidth??this._originalWidth,this._originalHeight=t.originalHeight??this._originalHeight,this._leftWidth=t.leftWidth??this._leftWidth,this._rightWidth=t.rightWidth??this._rightWidth,this._topHeight=t.topHeight??this._topHeight,this._bottomHeight=t.bottomHeight??this._bottomHeight,this._anchorX=t.anchor?.x,this._anchorY=t.anchor?.y,this.updateUvs(),this.updatePositions();}updatePositions(){let t=this.positions,{width:e,height:r,_leftWidth:s,_rightWidth:o,_topHeight:n,_bottomHeight:a,_anchorX:h,_anchorY:l}=this,c=s+o,u=e>c?1:e/c,f=n+a,d=r>f?1:r/f,x=Math.min(u,d),y=h*e,m=l*r;t[0]=t[8]=t[16]=t[24]=-y,t[2]=t[10]=t[18]=t[26]=s*x-y,t[4]=t[12]=t[20]=t[28]=e-o*x-y,t[6]=t[14]=t[22]=t[30]=e-y,t[1]=t[3]=t[5]=t[7]=-m,t[9]=t[11]=t[13]=t[15]=n*x-m,t[17]=t[19]=t[21]=t[23]=r-a*x-m,t[25]=t[27]=t[29]=t[31]=r-m,this.getBuffer("aPosition").update();}updateUvs(){let t=this.uvs;t[0]=t[8]=t[16]=t[24]=0,t[1]=t[3]=t[5]=t[7]=0,t[6]=t[14]=t[22]=t[30]=1,t[25]=t[27]=t[29]=t[31]=1;let e=1/this._originalWidth,r=1/this._originalHeight;t[2]=t[10]=t[18]=t[26]=e*this._leftWidth,t[9]=t[11]=t[13]=t[15]=r*this._topHeight,t[4]=t[12]=t[20]=t[28]=1-e*this._rightWidth,t[17]=t[19]=t[21]=t[23]=1-r*this._bottomHeight,this.getBuffer("aUV").update();}};Xg.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};Kg=Xg;});var yl,ws,Zg=p(()=>{D();Zo();qg();yl=class extends qe{constructor(){super(),this.geometry=new Kg;}destroy(){this.geometry.destroy();}},ws=class{constructor(t){this._renderer=t;}addRenderable(t,e){let r=this._getGpuSprite(t);t.didViewUpdate&&this._updateBatchableSprite(t,r),this._renderer.renderPipes.batch.addToBatch(r,e);}updateRenderable(t){let e=this._getGpuSprite(t);t.didViewUpdate&&this._updateBatchableSprite(t,e),e._batcher.updateElement(e);}validateRenderable(t){let e=this._getGpuSprite(t);return !e._batcher.checkAndUpdateTexture(e,t._texture)}_updateBatchableSprite(t,e){e.geometry.update(t),e.setTexture(t._texture);}_getGpuSprite(t){return t._gpuData[this._renderer.uid]||this._initGPUSprite(t)}_initGPUSprite(t){let e=t._gpuData[this._renderer.uid]=new yl,r=e;return r.renderable=t,r.transform=t.groupTransform,r.texture=t._texture,r.roundPixels=this._renderer._roundPixels|t._roundPixels,t.didViewUpdate||this._updateBatchableSprite(t,r),e}destroy(){this._renderer=null;}};ws.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"nineSliceSprite"};});var bl=p(()=>{D();Zg();O.add(ws);});var Ps,Qg=p(()=>{D();Ps=class{constructor(t){this._renderer=t;}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:false,action:"pushFilter",container:e,filterEffect:t});}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:false});}execute(t){t.action==="pushFilter"?this._renderer.filter.push(t):t.action==="popFilter"&&this._renderer.filter.pop();}destroy(){this._renderer=null;}};Ps.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"filter"};});function Jg(i,t){t.clear();let e=t.matrix;for(let r=0;r<i.length;r++){let s=i[r];s.globalDisplayStatus<7||(t.matrix=s.worldTransform,t.addBounds(s.bounds));}return t.matrix=e,t}var tx=p(()=>{});var Oy,vl,Ms,ex=p(()=>{D();nt();qi();Ji();je();Bt();Dr();ts();he();tx();Rt();Oy=new Me({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:2*4,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),vl=class{constructor(){this.skip=false,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new dt,this.container=null,this.blendRequired=false,this.outputRenderSurface=null,this.globalFrame={x:0,y:0,width:0,height:0};}},Ms=class{constructor(t){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new zt({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new oe({}),this.renderer=t;}get activeBackTexture(){return this._activeFilterData?.backTexture}push(t){let e=this.renderer,r=t.filterEffect.filters,s=this._pushFilterData();s.skip=false,s.filters=r,s.container=t.container,s.outputRenderSurface=e.renderTarget.renderSurface;let o=e.renderTarget.renderTarget.colorTexture.source,n=o.resolution,a=o.antialias;if(r.length===0){s.skip=true;return}let h=s.bounds;if(this._calculateFilterArea(t,h),this._calculateFilterBounds(s,e.renderTarget.rootViewPort,a,n,1),s.skip)return;let l=this._getPreviousFilterData(),c=this._findFilterResolution(n),u=0,f=0;l&&(u=l.bounds.minX,f=l.bounds.minY),this._calculateGlobalFrame(s,u,f,c,o.width,o.height),this._setupFilterTextures(s,h,e,l);}generateFilteredTexture({texture:t,filters:e}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=false,r.filters=e;let s=t.source,o=s.resolution,n=s.antialias;if(e.length===0)return r.skip=true,t;let a=r.bounds;if(a.addRect(t.frame),this._calculateFilterBounds(r,a.rectangle,n,o,0),r.skip)return t;let h=o;this._calculateGlobalFrame(r,0,0,h,s.width,s.height),r.outputRenderSurface=It.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=I.EMPTY,r.inputTexture=t,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,true);let f=r.outputRenderSurface;return f.source.alphaMode="premultiplied-alpha",f}pop(){let t=this.renderer,e=this._popFilterData();e.skip||(t.globalUniforms.pop(),t.renderTarget.finishRenderPass(),this._activeFilterData=e,this._applyFiltersToTexture(e,false),e.blendRequired&&It.returnTexture(e.backTexture),It.returnTexture(e.inputTexture));}getBackTexture(t,e,r){let s=t.colorTexture.source._resolution,o=It.getOptimalTexture(e.width,e.height,s,false),n=e.minX,a=e.minY;r&&(n-=r.minX,a-=r.minY),n=Math.floor(n*s),a=Math.floor(a*s);let h=Math.ceil(e.width*s),l=Math.ceil(e.height*s);return this.renderer.renderTarget.copyToTexture(t,o,{x:n,y:a},{width:h,height:l},{x:0,y:0}),o}applyFilter(t,e,r,s){let o=this.renderer,n=this._activeFilterData,h=n.outputRenderSurface===r,l=o.renderTarget.rootRenderTarget.colorTexture.source._resolution,c=this._findFilterResolution(l),u=0,f=0;if(h){let d=this._findPreviousFilterOffset();u=d.x,f=d.y;}this._updateFilterUniforms(e,r,n,u,f,c,h,s),this._setupBindGroupsAndRender(t,e,o);}calculateSpriteMatrix(t,e){let r=this._activeFilterData,s=t.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),o=e.worldTransform.copyTo(F.shared),n=e.renderGroup||e.parentRenderGroup;return n&&n.cacheToLocalTransform&&o.prepend(n.cacheToLocalTransform),o.invert(),s.prepend(o),s.scale(1/e.texture.frame.width,1/e.texture.frame.height),s.translate(e.anchor.x,e.anchor.y),s}destroy(){}_setupBindGroupsAndRender(t,e,r){if(r.renderPipes.uniformBatch){let s=r.renderPipes.uniformBatch.getUboResource(this._filterGlobalUniforms);this._globalFilterBindGroup.setResource(s,0);}else this._globalFilterBindGroup.setResource(this._filterGlobalUniforms,0);this._globalFilterBindGroup.setResource(e.source,1),this._globalFilterBindGroup.setResource(e.source.style,2),t.groups[0]=this._globalFilterBindGroup,r.encoder.draw({geometry:Oy,shader:t,state:t._state,topology:"triangle-list"}),r.type===Ce.WEBGL&&r.renderTarget.finishRenderPass();}_setupFilterTextures(t,e,r,s){if(t.backTexture=I.EMPTY,t.blendRequired){r.renderTarget.finishRenderPass();let o=r.renderTarget.getRenderTarget(t.outputRenderSurface);t.backTexture=this.getBackTexture(o,e,s?.bounds);}t.inputTexture=It.getOptimalTexture(e.width,e.height,t.resolution,t.antialias),r.renderTarget.bind(t.inputTexture,true),r.globalUniforms.push({offset:e});}_calculateGlobalFrame(t,e,r,s,o,n){let a=t.globalFrame;a.x=e*s,a.y=r*s,a.width=o*s,a.height=n*s;}_updateFilterUniforms(t,e,r,s,o,n,a,h){let l=this._filterGlobalUniforms.uniforms,c=l.uOutputFrame,u=l.uInputSize,f=l.uInputPixel,d=l.uInputClamp,x=l.uGlobalFrame,y=l.uOutputTexture;a?(c[0]=r.bounds.minX-s,c[1]=r.bounds.minY-o):(c[0]=0,c[1]=0),c[2]=t.frame.width,c[3]=t.frame.height,u[0]=t.source.width,u[1]=t.source.height,u[2]=1/u[0],u[3]=1/u[1],f[0]=t.source.pixelWidth,f[1]=t.source.pixelHeight,f[2]=1/f[0],f[3]=1/f[1],d[0]=.5*f[2],d[1]=.5*f[3],d[2]=t.frame.width*u[2]-.5*f[2],d[3]=t.frame.height*u[3]-.5*f[3];let m=this.renderer.renderTarget.rootRenderTarget.colorTexture;x[0]=s*n,x[1]=o*n,x[2]=m.source.width*n,x[3]=m.source.height*n,e instanceof I&&(e.source.resource=null);let _=this.renderer.renderTarget.getRenderTarget(e);this.renderer.renderTarget.bind(e,!!h),e instanceof I?(y[0]=e.frame.width,y[1]=e.frame.height):(y[0]=_.width,y[1]=_.height),y[2]=_.isRoot?-1:1,this._filterGlobalUniforms.update();}_findFilterResolution(t){let e=this._filterStackIndex-1;for(;e>0&&this._filterStack[e].skip;)--e;return e>0&&this._filterStack[e].inputTexture?this._filterStack[e].inputTexture.source._resolution:t}_findPreviousFilterOffset(){let t=0,e=0,r=this._filterStackIndex;for(;r>0;){r--;let s=this._filterStack[r];if(!s.skip){t=s.bounds.minX,e=s.bounds.minY;break}}return {x:t,y:e}}_calculateFilterArea(t,e){if(t.renderables?Jg(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(true,e),t.container){let s=(t.container.renderGroup||t.container.parentRenderGroup).cacheToLocalTransform;s&&e.applyMatrix(s);}}_applyFiltersToTexture(t,e){let r=t.inputTexture,s=t.bounds,o=t.filters;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(t.backTexture.source,3),o.length===1)o[0].apply(this,r,t.outputRenderSurface,e);else {let n=t.inputTexture,a=It.getOptimalTexture(s.width,s.height,n.source._resolution,false),h=a,l=0;for(l=0;l<o.length-1;++l){o[l].apply(this,n,h,true);let u=n;n=h,h=u;}o[l].apply(this,n,t.outputRenderSurface,e),It.returnTexture(a);}}_calculateFilterBounds(t,e,r,s,o){let n=this.renderer,a=t.bounds,h=t.filters,l=1/0,c=0,u=true,f=false,d=false,x=true;for(let y=0;y<h.length;y++){let m=h[y];if(l=Math.min(l,m.resolution==="inherit"?s:m.resolution),c+=m.padding,m.antialias==="off"?u=false:m.antialias==="inherit"&&u&&(u=r),m.clipToViewport||(x=false),!!!(m.compatibleRenderers&n.type)){d=false;break}if(m.blendRequired&&!(n.backBuffer?.useBackBuffer??true)){$("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),d=false;break}d=m.enabled||d,f||(f=m.blendRequired);}if(!d){t.skip=true;return}if(x&&a.fitBounds(0,e.width/s,0,e.height/s),a.scale(l).ceil().scale(1/l).pad((c|0)*o),!a.isPositive){t.skip=true;return}t.antialias=u,t.resolution=l,t.blendRequired=f;}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let t,e=this._filterStackIndex-1;for(;e>1&&(e--,t=this._filterStack[e],!!t.skip););return t}_pushFilterData(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new vl),this._filterStackIndex++,t}};Ms.extension={type:[P.WebGLSystem,P.WebGPUSystem],name:"filter"};});var Sl=p(()=>{D();Qg();ex();O.add(Ms);O.add(Ps);});var zy={};var rx=p(()=>{Tu();ba();Bu();Gu();yo();Po();Eh();Fh();Rh();sl();ul();pl();_l();bl();Sl();});var Wy={};var sx=p(()=>{ba();yo();Po();Eh();Fh();Rh();sl();ul();pl();_l();bl();Sl();});var be={};Cx(be,{DistortionFilter:()=>Vs,EqualizerFilter:()=>re,Filter:()=>vt,MonoFilter:()=>Ns,ReverbFilter:()=>Hs,StereoFilter:()=>Ys,StreamFilter:()=>$s,TelephoneFilter:()=>Xs});var Ol;function zl(i){return Ol=i,i}function rt(){return Ol}var vt=class{constructor(t,e){this.init(t,e);}init(t,e){this.destination=t,this.source=e||t;}connect(t){this.source?.connect(t);}disconnect(){this.source?.disconnect();}destroy(){this.disconnect(),this.destination=null,this.source=null;}};var Vs=class extends vt{constructor(t=0){let e;if(!rt().useLegacy){let{audioContext:r}=rt().context;e=r.createWaveShaper();}super(e),this._distortion=e,this.amount=t;}set amount(t){if(this._amount=t,rt().useLegacy)return;let e=t*1e3,r=44100,s=new Float32Array(r),o=Math.PI/180,n=0,a;for(;n<r;++n)a=n*2/r-1,s[n]=(3+e)*a*20*o/(Math.PI+e*Math.abs(a));this._distortion.curve=s,this._distortion.oversample="4x";}get amount(){return this._amount}destroy(){this._distortion=null,super.destroy();}};var gt=class{static setParamValue(t,e){if(t.setValueAtTime){let r=rt().context;t.setValueAtTime(e,r.audioContext.currentTime);}else t.value=e;return e}};var it=class extends vt{constructor(i=0,t=0,e=0,r=0,s=0,o=0,n=0,a=0,h=0,l=0){let c=[],u=[{f:it.F32,type:"lowshelf",gain:i},{f:it.F64,type:"peaking",gain:t},{f:it.F125,type:"peaking",gain:e},{f:it.F250,type:"peaking",gain:r},{f:it.F500,type:"peaking",gain:s},{f:it.F1K,type:"peaking",gain:o},{f:it.F2K,type:"peaking",gain:n},{f:it.F4K,type:"peaking",gain:a},{f:it.F8K,type:"peaking",gain:h},{f:it.F16K,type:"highshelf",gain:l}];rt().useLegacy||(c=u.map(f=>{let d=rt().context.audioContext.createBiquadFilter();return d.type=f.type,gt.setParamValue(d.Q,1),d.frequency.value=f.f,gt.setParamValue(d.gain,f.gain),d})),super(c[0],c[c.length-1]),this.bands=c,this.bandsMap={};for(let f=0;f<this.bands.length;f++){let d=this.bands[f];f>0&&this.bands[f-1].connect(d),this.bandsMap[d.frequency.value]=d;}}setGain(i,t=0){if(!this.bandsMap[i])throw new Error(`No band found for frequency ${i}`);gt.setParamValue(this.bandsMap[i].gain,t);}getGain(i){if(!this.bandsMap[i])throw new Error(`No band found for frequency ${i}`);return this.bandsMap[i].gain.value}set f32(i){this.setGain(it.F32,i);}get f32(){return this.getGain(it.F32)}set f64(i){this.setGain(it.F64,i);}get f64(){return this.getGain(it.F64)}set f125(i){this.setGain(it.F125,i);}get f125(){return this.getGain(it.F125)}set f250(i){this.setGain(it.F250,i);}get f250(){return this.getGain(it.F250)}set f500(i){this.setGain(it.F500,i);}get f500(){return this.getGain(it.F500)}set f1k(i){this.setGain(it.F1K,i);}get f1k(){return this.getGain(it.F1K)}set f2k(i){this.setGain(it.F2K,i);}get f2k(){return this.getGain(it.F2K)}set f4k(i){this.setGain(it.F4K,i);}get f4k(){return this.getGain(it.F4K)}set f8k(i){this.setGain(it.F8K,i);}get f8k(){return this.getGain(it.F8K)}set f16k(i){this.setGain(it.F16K,i);}get f16k(){return this.getGain(it.F16K)}reset(){this.bands.forEach(i=>{gt.setParamValue(i.gain,0);});}destroy(){this.bands.forEach(i=>{i.disconnect();}),this.bands=null,this.bandsMap=null;}},re=it;re.F32=32;re.F64=64;re.F125=125;re.F250=250;re.F500=500;re.F1K=1e3;re.F2K=2e3;re.F4K=4e3;re.F8K=8e3;re.F16K=16e3;var Ns=class extends vt{constructor(){let t,e;if(!rt().useLegacy){let{audioContext:r}=rt().context;e=r.createChannelSplitter(),t=r.createChannelMerger(),t.connect(e);}super(t,e),this._merger=t;}destroy(){this._merger?.disconnect(),this._merger=null,super.destroy();}};var Hs=class extends vt{constructor(t=3,e=2,r=false){super(null),this._seconds=this._clamp(t,1,50),this._decay=this._clamp(e,0,100),this._reverse=r,this._rebuild();}_clamp(t,e,r){return Math.min(r,Math.max(e,t))}get seconds(){return this._seconds}set seconds(t){this._seconds=this._clamp(t,1,50),this._rebuild();}get decay(){return this._decay}set decay(t){this._decay=this._clamp(t,0,100),this._rebuild();}get reverse(){return this._reverse}set reverse(t){this._reverse=t,this._rebuild();}_rebuild(){if(rt().useLegacy)return;let{audioContext:t}=rt().context,e=t.sampleRate,r=e*this._seconds,s=t.createBuffer(2,r,e),o=s.getChannelData(0),n=s.getChannelData(1),a;for(let l=0;l<r;l++)a=this._reverse?r-l:l,o[l]=(Math.random()*2-1)*Math.pow(1-a/r,this._decay),n[l]=(Math.random()*2-1)*Math.pow(1-a/r,this._decay);let h=t.createConvolver();h.buffer=s,this.init(h);}};var Ys=class extends vt{constructor(t=0){let e,r,s;if(!rt().useLegacy){let{audioContext:o}=rt().context;o.createStereoPanner?(e=o.createStereoPanner(),s=e):(r=o.createPanner(),r.panningModel="equalpower",s=r);}super(s),this._stereo=e,this._panner=r,this.pan=t;}set pan(t){this._pan=t,this._stereo?gt.setParamValue(this._stereo.pan,t):this._panner&&this._panner.setPosition(t,0,1-Math.abs(t));}get pan(){return this._pan}destroy(){super.destroy(),this._stereo=null,this._panner=null;}};var $s=class extends vt{constructor(){let t,e;if(!rt().useLegacy){let{audioContext:r}=rt().context;t=r.createMediaStreamDestination(),e=r.createMediaStreamSource(t.stream);}super(t,e),this._stream=t?.stream;}get stream(){return this._stream}destroy(){this._stream=null,super.destroy();}};var Xs=class extends vt{constructor(){let t,e;if(!rt().useLegacy){let{audioContext:r}=rt().context,s=r.createBiquadFilter(),o=r.createBiquadFilter(),n=r.createBiquadFilter(),a=r.createBiquadFilter();s.type="lowpass",gt.setParamValue(s.frequency,2e3),o.type="lowpass",gt.setParamValue(o.frequency,2e3),n.type="highpass",gt.setParamValue(n.frequency,500),a.type="highpass",gt.setParamValue(a.frequency,500),s.connect(o),o.connect(n),n.connect(a),t=s,e=a;}super(t,e);}};D();var ix={extension:{type:P.Environment,name:"browser",priority:-1},test:()=>true,load:async()=>{await Promise.resolve().then(()=>(rx(),zy));}};D();var ox={extension:{type:P.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(sx(),Wy));}};D();D();Po();yo();Ea();ce();za();Ui();Nt();_o();O.add(ix,ox);var Cs=class extends Z{constructor(){super(...arguments),this.speed=1,this.muted=false,this.volume=1,this.paused=false;}refresh(){this.emit("refresh");}refreshPaused(){this.emit("refreshPaused");}get filters(){return console.warn("HTML Audio does not support filters"),null}set filters(t){console.warn("HTML Audio does not support filters");}get audioContext(){return console.warn("HTML Audio does not support audioContext"),null}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this.paused}destroy(){this.removeAllListeners();}};var Vy=0,Tl=class extends Z{constructor(i){super(),this.id=Vy++,this.init(i);}set(i,t){if(this[i]===void 0)throw new Error(`Property with name ${i} does not exist.`);switch(i){case "speed":this.speed=t;break;case "volume":this.volume=t;break;case "paused":this.paused=t;break;case "loop":this.loop=t;break;case "muted":this.muted=t;break}return this}get progress(){let{currentTime:i}=this._source;return i/this._duration}get paused(){return this._paused}set paused(i){this._paused=i,this.refreshPaused();}_onPlay(){this._playing=true;}_onPause(){this._playing=false;}init(i){this._playing=false,this._duration=i.source.duration;let t=this._source=i.source.cloneNode(false);t.src=i.parent.url,t.onplay=this._onPlay.bind(this),t.onpause=this._onPause.bind(this),i.context.on("refresh",this.refresh,this),i.context.on("refreshPaused",this.refreshPaused,this),this._media=i;}_internalStop(){this._source&&this._playing&&(this._source.onended=null,this._source.pause());}stop(){this._internalStop(),this._source&&this.emit("stop");}get speed(){return this._speed}set speed(i){this._speed=i,this.refresh();}get volume(){return this._volume}set volume(i){this._volume=i,this.refresh();}get loop(){return this._loop}set loop(i){this._loop=i,this.refresh();}get muted(){return this._muted}set muted(i){this._muted=i,this.refresh();}get filters(){return console.warn("HTML Audio does not support filters"),null}set filters(i){console.warn("HTML Audio does not support filters");}refresh(){let i=this._media.context,t=this._media.parent;this._source.loop=this._loop||t.loop;let e=i.volume*(i.muted?0:1),r=t.volume*(t.muted?0:1),s=this._volume*(this._muted?0:1);this._source.volume=s*e*r,this._source.playbackRate=this._speed*i.speed*t.speed;}refreshPaused(){let i=this._media.context,t=this._media.parent,e=this._paused||t.paused||i.paused;e!==this._pausedReal&&(this._pausedReal=e,e?(this._internalStop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._source.currentTime,end:this._end,volume:this._volume,speed:this._speed,loop:this._loop})),this.emit("pause",e));}play(i){let{start:t,end:e,speed:r,loop:s,volume:o,muted:n}=i;e&&console.assert(e>t,"End time is before start time"),this._speed=r,this._volume=o,this._loop=!!s,this._muted=n,this.refresh(),this.loop&&e!==null&&(console.warn('Looping not support when specifying an "end" time'),this.loop=false),this._start=t,this._end=e||this._duration,this._start=Math.max(0,this._start-Tl.PADDING),this._end=Math.min(this._end+Tl.PADDING,this._duration),this._source.onloadedmetadata=()=>{this._source&&(this._source.currentTime=t,this._source.onloadedmetadata=null,this.emit("progress",t/this._duration,this._duration),wt.shared.add(this._onUpdate,this));},this._source.onended=this._onComplete.bind(this),this._source.play(),this.emit("start");}_onUpdate(){this.emit("progress",this.progress,this._duration),this._source.currentTime>=this._end&&!this._source.loop&&this._onComplete();}_onComplete(){wt.shared.remove(this._onUpdate,this),this._internalStop(),this.emit("progress",1,this._duration),this.emit("end",this);}destroy(){wt.shared.remove(this._onUpdate,this),this.removeAllListeners();let i=this._source;i&&(i.onended=null,i.onplay=null,i.onpause=null,this._internalStop()),this._source=null,this._speed=1,this._volume=1,this._loop=false,this._end=null,this._start=0,this._duration=0,this._playing=false,this._pausedReal=false,this._paused=false,this._muted=false,this._media&&(this._media.context.off("refresh",this.refresh,this),this._media.context.off("refreshPaused",this.refreshPaused,this),this._media=null);}toString(){return `[HTMLAudioInstance id=${this.id}]`}},En=Tl;En.PADDING=.1;var As=class extends Z{init(t){this.parent=t,this._source=t.options.source||new Audio,t.url&&(this._source.src=t.url);}create(){return new En(this)}get isPlayable(){return !!this._source&&this._source.readyState===4}get duration(){return this._source.duration}get context(){return this.parent.context}get filters(){return null}set filters(t){console.warn("HTML Audio does not support filters");}destroy(){this.removeAllListeners(),this.parent=null,this._source&&(this._source.src="",this._source.load(),this._source=null);}get source(){return this._source}load(t){let e=this._source,r=this.parent;if(e.readyState===4){r.isLoaded=true;let h=r.autoPlayStart();t&&setTimeout(()=>{t(null,r,h);},0);return}if(!r.url){t(new Error("sound.url or sound.source must be set"));return}e.src=r.url;let s=()=>{a(),r.isLoaded=true;let h=r.autoPlayStart();t&&t(null,r,h);},o=()=>{a(),t&&t(new Error("Sound loading has been aborted"));},n=()=>{a();let h=`Failed to load audio element (code: ${e.error.code})`;t?t(new Error(h)):console.error(h);},a=()=>{e.removeEventListener("canplaythrough",s),e.removeEventListener("load",s),e.removeEventListener("abort",o),e.removeEventListener("error",n);};e.addEventListener("canplaythrough",s,false),e.addEventListener("load",s,false),e.addEventListener("abort",o,false),e.addEventListener("error",n,false),e.load();}};var Es=class{constructor(t,e){this.parent=t,Object.assign(this,e),this.duration=this.end-this.start,console.assert(this.duration>0,"End time must be after start time");}play(t){return this.parent.play({complete:t,speed:this.speed||this.parent.speed,end:this.end,start:this.start,loop:this.loop})}destroy(){this.parent=null;}};var Pr=["ogg","oga","opus","m4a","mp3","mpeg","wav","aiff","wma","mid","caf"],wl=["audio/mpeg","audio/ogg"],Mr={};function nx(i){let t={m4a:"audio/mp4",oga:"audio/ogg",opus:'audio/ogg; codecs="opus"',caf:'audio/x-caf; codecs="opus"',...{}},e=document.createElement("audio"),r={},s=/^no$/;Pr.forEach(o=>{let n=e.canPlayType(`audio/${o}`).replace(s,""),a=t[o]?e.canPlayType(t[o]).replace(s,""):"";r[o]=!!n||!!a;}),Object.assign(Mr,r);}nx();var Hy=0,Fs=class extends Z{constructor(t){super(),this.id=Hy++,this._media=null,this._paused=false,this._muted=false,this._elapsed=0,this.init(t);}set(t,e){if(this[t]===void 0)throw new Error(`Property with name ${t} does not exist.`);switch(t){case "speed":this.speed=e;break;case "volume":this.volume=e;break;case "muted":this.muted=e;break;case "loop":this.loop=e;break;case "paused":this.paused=e;break}return this}stop(){this._source&&(this._internalStop(),this.emit("stop"));}get speed(){return this._speed}set speed(t){this._speed=t,this.refresh(),this._update(true);}get volume(){return this._volume}set volume(t){this._volume=t,this.refresh();}get muted(){return this._muted}set muted(t){this._muted=t,this.refresh();}get loop(){return this._loop}set loop(t){this._loop=t,this.refresh();}get filters(){return this._filters}set filters(t){this._filters&&(this._filters?.filter(e=>e).forEach(e=>e.disconnect()),this._filters=null,this._source.connect(this._gain)),this._filters=t?.length?t.slice(0):null,this.refresh();}refresh(){if(!this._source)return;let t=this._media.context,e=this._media.parent;this._source.loop=this._loop||e.loop;let r=t.volume*(t.muted?0:1),s=e.volume*(e.muted?0:1),o=this._volume*(this._muted?0:1);gt.setParamValue(this._gain.gain,o*s*r),gt.setParamValue(this._source.playbackRate,this._speed*e.speed*t.speed),this.applyFilters();}applyFilters(){if(this._filters?.length){this._source.disconnect();let t=this._source;this._filters.forEach(e=>{t.connect(e.destination),t=e;}),t.connect(this._gain);}}refreshPaused(){let t=this._media.context,e=this._media.parent,r=this._paused||e.paused||t.paused;r!==this._pausedReal&&(this._pausedReal=r,r?(this._internalStop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._elapsed%this._duration,end:this._end,speed:this._speed,loop:this._loop,volume:this._volume})),this.emit("pause",r));}play(t){let{start:e,end:r,speed:s,loop:o,volume:n,muted:a,filters:h}=t;r&&console.assert(r>e,"End time is before start time"),this._paused=false;let{source:l,gain:c}=this._media.nodes.cloneBufferSource();this._source=l,this._gain=c,this._speed=s,this._volume=n,this._loop=!!o,this._muted=a,this._filters=h,this.refresh();let u=this._source.buffer.duration;this._duration=u,this._end=r,this._lastUpdate=this._now(),this._elapsed=e,this._source.onended=this._onComplete.bind(this),this._loop?(this._source.loopEnd=r,this._source.loopStart=e,this._source.start(0,e)):r?this._source.start(0,e,r-e):this._source.start(0,e),this.emit("start"),this._update(true),this.enableTicker(true);}enableTicker(t){wt.shared.remove(this._updateListener,this),t&&wt.shared.add(this._updateListener,this);}get progress(){return this._progress}get paused(){return this._paused}set paused(t){this._paused=t,this.refreshPaused();}destroy(){this.removeAllListeners(),this._internalStop(),this._gain&&(this._gain.disconnect(),this._gain=null),this._media&&(this._media.context.events.off("refresh",this.refresh,this),this._media.context.events.off("refreshPaused",this.refreshPaused,this),this._media=null),this._filters?.forEach(t=>t.disconnect()),this._filters=null,this._end=null,this._speed=1,this._volume=1,this._loop=false,this._elapsed=0,this._duration=0,this._paused=false,this._muted=false,this._pausedReal=false;}toString(){return `[WebAudioInstance id=${this.id}]`}_now(){return this._media.context.audioContext.currentTime}_updateListener(){this._update();}_update(t=false){if(this._source){let e=this._now(),r=e-this._lastUpdate;if(r>0||t){let s=this._source.playbackRate.value;this._elapsed+=r*s,this._lastUpdate=e;let o=this._duration,n;if(this._source.loopStart){let a=this._source.loopEnd-this._source.loopStart;n=(this._source.loopStart+this._elapsed%a)/o;}else n=this._elapsed%o/o;this._progress=n,this.emit("progress",this._progress,o);}}}init(t){this._media=t,t.context.events.on("refresh",this.refresh,this),t.context.events.on("refreshPaused",this.refreshPaused,this);}_internalStop(){if(this._source){this.enableTicker(false),this._source.onended=null,this._source.stop(0),this._source.disconnect();try{this._source.buffer=null;}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t);}this._source=null;}}_onComplete(){if(this._source){this.enableTicker(false),this._source.onended=null,this._source.disconnect();try{this._source.buffer=null;}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t);}}this._source=null,this._progress=1,this.emit("progress",1,this._duration),this.emit("end",this);}};var Cr=class{constructor(t,e){this._output=e,this._input=t;}get destination(){return this._input}get filters(){return this._filters}set filters(t){if(this._filters&&(this._filters.forEach(e=>{e&&e.disconnect();}),this._filters=null,this._input.connect(this._output)),t&&t.length){this._filters=t.slice(0),this._input.disconnect();let e=null;t.forEach(r=>{e===null?this._input.connect(r.destination):e.connect(r.destination),e=r;}),e.connect(this._output);}}destroy(){this.filters=null,this._input=null,this._output=null;}};var ax=class extends Cr{constructor(i){let t=i.audioContext,e=t.createBufferSource(),r=t.createGain(),s=t.createAnalyser();e.connect(s),s.connect(r),r.connect(i.destination),super(s,r),this.context=i,this.bufferSource=e,this.gain=r,this.analyser=s;}get script(){return this._script||(this._script=this.context.audioContext.createScriptProcessor(ax.BUFFER_SIZE),this._script.connect(this.context.destination)),this._script}destroy(){super.destroy(),this.bufferSource.disconnect(),this._script&&this._script.disconnect(),this.gain.disconnect(),this.analyser.disconnect(),this.bufferSource=null,this._script=null,this.gain=null,this.analyser=null,this.context=null;}cloneBufferSource(){let i=this.bufferSource,t=this.context.audioContext.createBufferSource();t.buffer=i.buffer,gt.setParamValue(t.playbackRate,i.playbackRate.value),t.loop=i.loop;let e=this.context.audioContext.createGain();return t.connect(e),e.connect(this.destination),{source:t,gain:e}}get bufferSize(){return this.script.bufferSize}},Fn=ax;Fn.BUFFER_SIZE=0;var Ar=class{init(t){this.parent=t,this._nodes=new Fn(this.context),this._source=this._nodes.bufferSource,this.source=t.options.source;}destroy(){this.parent=null,this._nodes.destroy(),this._nodes=null;try{this._source.buffer=null;}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t);}this._source=null,this.source=null;}create(){return new Fs(this)}get context(){return this.parent.context}get isPlayable(){return !!this._source&&!!this._source.buffer}get filters(){return this._nodes.filters}set filters(t){this._nodes.filters=t;}get duration(){return console.assert(this.isPlayable,"Sound not yet playable, no duration"),this._source.buffer.duration}get buffer(){return this._source.buffer}set buffer(t){this._source.buffer=t;}get nodes(){return this._nodes}load(t){this.source?this._decode(this.source,t):this.parent.url?this._loadUrl(t):t?t(new Error("sound.url or sound.source must be set")):console.error("sound.url or sound.source must be set");}async _loadUrl(t){let e=this.parent.url,r=await ft.get().fetch(e);this._decode(await r.arrayBuffer(),t);}_decode(t,e){let r=(s,o)=>{if(s)e&&e(s);else {this.parent.isLoaded=true,this.buffer=o;let n=this.parent.autoPlayStart();e&&e(null,this.parent,n);}};t instanceof AudioBuffer?r(null,t):this.parent.context.decode(t,r);}};var ui=class{static from(i){let t={};typeof i=="string"?t.url=i:i instanceof ArrayBuffer||i instanceof AudioBuffer||i instanceof HTMLAudioElement?t.source=i:Array.isArray(i)?t.url=i:t=i,t={autoPlay:false,singleInstance:false,url:null,source:null,preload:false,volume:1,speed:1,complete:null,loaded:null,loop:false,...t},Object.freeze(t);let e=rt().useLegacy?new As:new Ar;return new ui(e,t)}constructor(i,t){this.media=i,this.options=t,this._instances=[],this._sprites={},this.media.init(this);let e=t.complete;this._autoPlayOptions=e?{complete:e}:null,this.isLoaded=false,this._preloadQueue=null,this.isPlaying=false,this.autoPlay=t.autoPlay,this.singleInstance=t.singleInstance,this.preload=t.preload||this.autoPlay,this.url=Array.isArray(t.url)?this.preferUrl(t.url):t.url,this.speed=t.speed,this.volume=t.volume,this.loop=t.loop,t.sprites&&this.addSprites(t.sprites),this.preload&&this._preload(t.loaded);}preferUrl(i){let[t]=i.map(e=>({url:e,ext:$t.extname(e).slice(1)})).filter(({ext:e})=>Mr[e]).sort((e,r)=>Pr.indexOf(e.ext)-Pr.indexOf(r.ext));if(!t)throw new Error("No supported file type found");return t.url}get context(){return rt().context}pause(){return this.isPlaying=false,this.paused=true,this}resume(){return this.isPlaying=this._instances.length>0,this.paused=false,this}get paused(){return this._paused}set paused(i){this._paused=i,this.refreshPaused();}get speed(){return this._speed}set speed(i){this._speed=i,this.refresh();}get filters(){return this.media.filters}set filters(i){this.media.filters=i;}addSprites(i,t){if(typeof i=="object"){let r={};for(let s in i)r[s]=this.addSprites(s,i[s]);return r}console.assert(!this._sprites[i],`Alias ${i} is already taken`);let e=new Es(this,t);return this._sprites[i]=e,e}destroy(){this._removeInstances(),this.removeSprites(),this.media.destroy(),this.media=null,this._sprites=null,this._instances=null;}removeSprites(i){if(i){let t=this._sprites[i];t!==void 0&&(t.destroy(),delete this._sprites[i]);}else for(let t in this._sprites)this.removeSprites(t);return this}get isPlayable(){return this.isLoaded&&this.media&&this.media.isPlayable}stop(){if(!this.isPlayable)return this.autoPlay=false,this._autoPlayOptions=null,this;this.isPlaying=false;for(let i=this._instances.length-1;i>=0;i--)this._instances[i].stop();return this}play(i,t){let e;if(typeof i=="string"?e={sprite:i,loop:this.loop,complete:t}:typeof i=="function"?(e={},e.complete=i):e=i,e={complete:null,loaded:null,sprite:null,end:null,start:0,volume:1,speed:1,muted:false,loop:false,...e||{}},e.sprite){let s=e.sprite;console.assert(!!this._sprites[s],`Alias ${s} is not available`);let o=this._sprites[s];e.start=o.start+(e.start||0),e.end=o.end,e.speed=o.speed||1,e.loop=o.loop||e.loop,delete e.sprite;}if(e.offset&&(e.start=e.offset),!this.isLoaded)return this._preloadQueue?new Promise(s=>{this._preloadQueue.push(()=>{s(this.play(e));});}):(this._preloadQueue=[],this.autoPlay=true,this._autoPlayOptions=e,new Promise((s,o)=>{this._preload((n,a,h)=>{this._preloadQueue.forEach(l=>l()),this._preloadQueue=null,n?o(n):(e.loaded&&e.loaded(n,a,h),s(h));});}));(this.singleInstance||e.singleInstance)&&this._removeInstances();let r=this._createInstance();return this._instances.push(r),this.isPlaying=true,r.once("end",()=>{e.complete&&e.complete(this),this._onComplete(r);}),r.once("stop",()=>{this._onComplete(r);}),r.play(e),r}refresh(){let i=this._instances.length;for(let t=0;t<i;t++)this._instances[t].refresh();}refreshPaused(){let i=this._instances.length;for(let t=0;t<i;t++)this._instances[t].refreshPaused();}get volume(){return this._volume}set volume(i){this._volume=i,this.refresh();}get muted(){return this._muted}set muted(i){this._muted=i,this.refresh();}get loop(){return this._loop}set loop(i){this._loop=i,this.refresh();}_preload(i){this.media.load(i);}get instances(){return this._instances}get sprites(){return this._sprites}get duration(){return this.media.duration}autoPlayStart(){let i;return this.autoPlay&&(i=this.play(this._autoPlayOptions)),i}_removeInstances(){for(let i=this._instances.length-1;i>=0;i--)this._poolInstance(this._instances[i]);this._instances.length=0;}_onComplete(i){if(this._instances){let t=this._instances.indexOf(i);t>-1&&this._instances.splice(t,1),this.isPlaying=this._instances.length>0;}this._poolInstance(i);}_createInstance(){if(ui._pool.length>0){let i=ui._pool.pop();return i.init(this.media),i}return this.media.create()}_poolInstance(i){i.destroy(),ui._pool.indexOf(i)<0&&ui._pool.push(i);}},Qe=ui;Qe._pool=[];var di=class i extends Cr{constructor(){let t=window,e=new i.AudioContext,r=e.createDynamicsCompressor(),s=e.createAnalyser();s.connect(r),r.connect(e.destination),super(s,r),this.autoPause=true,this._ctx=e,this._offlineCtx=new i.OfflineAudioContext(1,2,t.OfflineAudioContext?Math.max(8e3,Math.min(96e3,e.sampleRate)):44100),this.compressor=r,this.analyser=s,this.events=new Z,this.volume=1,this.speed=1,this.muted=false,this.paused=false,this._locked=e.state==="suspended"&&("ontouchstart"in globalThis||"onclick"in globalThis),this._locked&&(this._unlock(),this._unlock=this._unlock.bind(this),document.addEventListener("mousedown",this._unlock,true),document.addEventListener("touchstart",this._unlock,true),document.addEventListener("touchend",this._unlock,true)),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),globalThis.addEventListener("focus",this.onFocus),globalThis.addEventListener("blur",this.onBlur);}onFocus(){if(!this.autoPause)return;let t=this._ctx.state;(t==="suspended"||t==="interrupted"||!this._locked)&&(this.paused=this._pausedOnBlur,this.refreshPaused());}onBlur(){this.autoPause&&(this._locked||(this._pausedOnBlur=this._paused,this.paused=true,this.refreshPaused()));}_unlock(){this._locked&&(this.playEmptySound(),this._ctx.state==="running"&&(document.removeEventListener("mousedown",this._unlock,true),document.removeEventListener("touchend",this._unlock,true),document.removeEventListener("touchstart",this._unlock,true),this._locked=false));}playEmptySound(){let t=this._ctx.createBufferSource();t.buffer=this._ctx.createBuffer(1,1,22050),t.connect(this._ctx.destination),t.start(0,0,0),t.context.state==="suspended"&&t.context.resume();}static get AudioContext(){let t=window;return t.AudioContext||t.webkitAudioContext||null}static get OfflineAudioContext(){let t=window;return t.OfflineAudioContext||t.webkitOfflineAudioContext||null}destroy(){super.destroy();let t=this._ctx;typeof t.close<"u"&&t.close(),globalThis.removeEventListener("focus",this.onFocus),globalThis.removeEventListener("blur",this.onBlur),this.events.removeAllListeners(),this.analyser.disconnect(),this.compressor.disconnect(),this.analyser=null,this.compressor=null,this.events=null,this._offlineCtx=null,this._ctx=null;}get audioContext(){return this._ctx}get offlineContext(){return this._offlineCtx}set paused(t){t&&this._ctx.state==="running"?this._ctx.suspend():!t&&this._ctx.state==="suspended"&&this._ctx.resume(),this._paused=t;}get paused(){return this._paused}refresh(){this.events.emit("refresh");}refreshPaused(){this.events.emit("refreshPaused");}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this._paused}decode(t,e){let r=o=>{e(new Error(o?.message||"Unable to decode file"));},s=this._offlineCtx.decodeAudioData(t,o=>{e(null,o);},r);s&&s.catch(r);}};var Bn=class{constructor(){this.init();}init(){return this.supported&&(this._webAudioContext=new di),this._htmlAudioContext=new Cs,this._sounds={},this.useLegacy=!this.supported,this}get context(){return this._context}get filtersAll(){return this.useLegacy?[]:this._context.filters}set filtersAll(t){this.useLegacy||(this._context.filters=t);}get supported(){return di.AudioContext!==null}add(t,e){if(typeof t=="object"){let o={};for(let n in t){let a=this._getOptions(t[n],e);o[n]=this.add(n,a);}return o}if(console.assert(!this._sounds[t],`Sound with alias ${t} already exists.`),e instanceof Qe)return this._sounds[t]=e,e;let r=this._getOptions(e),s=Qe.from(r);return this._sounds[t]=s,s}_getOptions(t,e){let r;return typeof t=="string"?r={url:t}:Array.isArray(t)?r={url:t}:t instanceof ArrayBuffer||t instanceof AudioBuffer||t instanceof HTMLAudioElement?r={source:t}:r=t,r={...r,...e||{}},r}get useLegacy(){return this._useLegacy}set useLegacy(t){this._useLegacy=t,this._context=!t&&this.supported?this._webAudioContext:this._htmlAudioContext;}get disableAutoPause(){return !this._webAudioContext.autoPause}set disableAutoPause(t){this._webAudioContext.autoPause=!t;}remove(t){return this.exists(t,true),this._sounds[t].destroy(),delete this._sounds[t],this}get volumeAll(){return this._context.volume}set volumeAll(t){this._context.volume=t,this._context.refresh();}get speedAll(){return this._context.speed}set speedAll(t){this._context.speed=t,this._context.refresh();}togglePauseAll(){return this._context.togglePause()}pauseAll(){return this._context.paused=true,this._context.refreshPaused(),this}resumeAll(){return this._context.paused=false,this._context.refreshPaused(),this}toggleMuteAll(){return this._context.toggleMute()}muteAll(){return this._context.muted=true,this._context.refresh(),this}unmuteAll(){return this._context.muted=false,this._context.refresh(),this}removeAll(){for(let t in this._sounds)this._sounds[t].destroy(),delete this._sounds[t];return this}stopAll(){for(let t in this._sounds)this._sounds[t].stop();return this}exists(t,e=false){let r=!!this._sounds[t];return e&&console.assert(r,`No sound matching alias '${t}'.`),r}isPlaying(){for(let t in this._sounds)if(this._sounds[t].isPlaying)return true;return false}find(t){return this.exists(t,true),this._sounds[t]}play(t,e){return this.find(t).play(e)}stop(t){return this.find(t).stop()}pause(t){return this.find(t).pause()}resume(t){return this.find(t).resume()}volume(t,e){let r=this.find(t);return e!==void 0&&(r.volume=e),r.volume}speed(t,e){let r=this.find(t);return e!==void 0&&(r.speed=e),r.speed}duration(t){return this.find(t).duration}close(){return this.removeAll(),this._sounds=null,this._webAudioContext&&(this._webAudioContext.destroy(),this._webAudioContext=null),this._htmlAudioContext&&(this._htmlAudioContext.destroy(),this._htmlAudioContext=null),this._context=null,this}};var hx=i=>{let t=i.src,e=i?.alias?.[0];return (!e||i.src===e)&&(e=$t.basename(t,$t.extname(t))),e},lx={extension:P.Asset,detection:{test:async()=>true,add:async i=>[...i,...Pr.filter(t=>Mr[t])],remove:async i=>i.filter(t=>i.includes(t))},loader:{name:"sound",extension:{type:[P.LoadParser],priority:zr.High},test(i){let t=$t.extname(i).slice(1);return !!Mr[t]||wl.some(e=>i.startsWith(`data:${e}`))},async load(i,t){let e=await new Promise((r,s)=>Qe.from({...t.data,url:i,preload:true,loaded(o,n){o?s(o):r(n),t.data?.loaded?.(o,n);}}));return rt().add(hx(t),e),e},async unload(i,t){rt().remove(hx(t));}}};O.add(lx);zl(new Bn);({DistortionFilter:be.DistortionFilter,EqualizerFilter:be.EqualizerFilter,MonoFilter:be.MonoFilter,ReverbFilter:be.ReverbFilter,StereoFilter:be.StereoFilter,StreamFilter:be.StreamFilter,TelephoneFilter:be.TelephoneFilter});var cx={CHARACTER_CATEGORY_KEY:"___character___"};var at;(s=>(s.log=(o,...n)=>console.log(`[Pixi\u2019VN] ${o}`,...n),s.warn=(o,...n)=>console.warn(`[Pixi\u2019VN] ${o}`,...n),s.error=(o,...n)=>console.error(`[Pixi\u2019VN] ${o}`,...n),s.info=(o,...n)=>console.info(`[Pixi\u2019VN] ${o}`,...n)))(at||(at={}));var z=class z{static init(t){z._getStepCounter=t.getStepCounter,z._setStepCounter=t.setStepCounter,z._getCurrentGameStepState=t.getCurrentGameStepState,z._restoreGameStepState=t.restoreGameStepState,z._getOpenedLabels=t.getOpenedLabels,t.onGoNextEnd&&(z._onGoNextEnd=t.onGoNextEnd),z._getVariable=t.getVariable,z._setVariable=t.setVariable,z._removeVariable=t.removeVariable,z._getFlag=t.getFlag,z._setFlag=t.setFlag,t.onLabelClosing&&(z._onLabelClosing=t.onLabelClosing),z._addHistoryItem=t.addHistoryItem,z._getCurrentStepsRunningNumber=t.getCurrentStepsRunningNumber,z._getCharacter=t.getCharacter;}static get stepCounter(){return z._getStepCounter()}static set stepCounter(t){z._setStepCounter(t);}static get currentGameStepState(){return z._getCurrentGameStepState()}static get restoreGameStepState(){return z._restoreGameStepState}static get openedLabels(){return z._getOpenedLabels()}static get onGoNextEnd(){return z._onGoNextEnd}static get getVariable(){return z._getVariable}static get setVariable(){return z._setVariable}static get removeVariable(){return z._removeVariable}static get getFlag(){return z._getFlag}static get setFlag(){return z._setFlag}static get onLabelClosing(){return z._onLabelClosing}static get addHistoryItem(){return z._addHistoryItem}static get currentStepsRunningNumber(){return z._getCurrentStepsRunningNumber()}static get getCharacter(){return z._getCharacter}};G(z,"_getStepCounter",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_setStepCounter",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_getCurrentGameStepState",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_restoreGameStepState",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_getOpenedLabels",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_onGoNextEnd",async()=>{}),G(z,"_getVariable",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_setVariable",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_removeVariable",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_getFlag",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_setFlag",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_onLabelClosing",()=>{}),G(z,"_addHistoryItem",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_getCurrentStepsRunningNumber",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_getCharacter",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented.")}),G(z,"onEnd"),G(z,"onError");function kn(i){try{if(typeof i>"u")return i;let t=JSON.stringify(i);return JSON.parse(t)}catch(t){throw at.error("Error creating exportable element",i,t),new Error("[Pixi\u2019VN] Error creating exportable element")}}var fi=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,px=new Set,Pl=typeof process=="object"&&process?process:{},mx=(i,t,e,r)=>{typeof Pl.emitWarning=="function"?Pl.emitWarning(i,t,e,r):console.error(`[${e}] ${t}: ${i}`);},In=globalThis.AbortController,ux=globalThis.AbortSignal;if(typeof In>"u"){ux=class{constructor(){G(this,"onabort");G(this,"_onabort",[]);G(this,"reason");G(this,"aborted",false);}addEventListener(r,s){this._onabort.push(s);}},In=class{constructor(){G(this,"signal",new ux);t();}abort(r){if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=true;for(let s of this.signal._onabort)s(r);this.signal.onabort?.(r);}}};let i=Pl.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{i&&(i=false,mx("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",t));};}var Xy=i=>!px.has(i),Je=i=>i&&i===Math.floor(i)&&i>0&&isFinite(i),gx=i=>Je(i)?i<=Math.pow(2,8)?Uint8Array:i<=Math.pow(2,16)?Uint16Array:i<=Math.pow(2,32)?Uint32Array:i<=Number.MAX_SAFE_INTEGER?pi:null:null,pi=class extends Array{constructor(t){super(t),this.fill(0);}},mi,Er=class Er{constructor(t,e){G(this,"heap");G(this,"length");if(!g(Er,mi))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0;}static create(t){let e=gx(t);if(!e)return [];U(Er,mi,true);let r=new Er(t,e);return U(Er,mi,false),r}push(t){this.heap[this.length++]=t;}pop(){return this.heap[--this.length]}};mi=new WeakMap,q(Er,mi,false);var Ml=Er,dx,fx,de,Qt,fe,Fr,pe,gi,xi,Pt,me,yt,lt,H,Wt,Jt,Dt,At,ge,Et,xe,_e,te,ye,ir,Vt,_i,C,Cl,Br,We,Gs,ee,xx,kr,yi,Rs,tr,er,Al,Gn,Rn,ht,El,ks,rr,Fl,Bl=class Bl{constructor(t){q(this,C);q(this,de);q(this,Qt);q(this,fe);q(this,Fr);q(this,pe);q(this,gi);q(this,xi);G(this,"ttl");G(this,"ttlResolution");G(this,"ttlAutopurge");G(this,"updateAgeOnGet");G(this,"updateAgeOnHas");G(this,"allowStale");G(this,"noDisposeOnSet");G(this,"noUpdateTTL");G(this,"maxEntrySize");G(this,"sizeCalculation");G(this,"noDeleteOnFetchRejection");G(this,"noDeleteOnStaleGet");G(this,"allowStaleOnFetchAbort");G(this,"allowStaleOnFetchRejection");G(this,"ignoreFetchAbort");q(this,Pt);q(this,me);q(this,yt);q(this,lt);q(this,H);q(this,Wt);q(this,Jt);q(this,Dt);q(this,At);q(this,ge);q(this,Et);q(this,xe);q(this,_e);q(this,te);q(this,ye);q(this,ir);q(this,Vt);q(this,_i);q(this,Br,()=>{});q(this,We,()=>{});q(this,Gs,()=>{});q(this,ee,()=>false);q(this,kr,t=>{});q(this,yi,(t,e,r)=>{});q(this,Rs,(t,e,r,s)=>{if(r||s)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});G(this,dx,"LRUCache");let{max:e=0,ttl:r,ttlResolution:s=1,ttlAutopurge:o,updateAgeOnGet:n,updateAgeOnHas:a,allowStale:h,dispose:l,onInsert:c,disposeAfter:u,noDisposeOnSet:f,noUpdateTTL:d,maxSize:x=0,maxEntrySize:y=0,sizeCalculation:m,fetchMethod:_,memoMethod:b,noDeleteOnFetchRejection:v,noDeleteOnStaleGet:S,allowStaleOnFetchRejection:M,allowStaleOnFetchAbort:T,ignoreFetchAbort:w}=t;if(e!==0&&!Je(e))throw new TypeError("max option must be a nonnegative integer");let W=e?gx(e):Array;if(!W)throw new Error("invalid max value: "+e);if(U(this,de,e),U(this,Qt,x),this.maxEntrySize=y||g(this,Qt),this.sizeCalculation=m,this.sizeCalculation){if(!g(this,Qt)&&!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(b!==void 0&&typeof b!="function")throw new TypeError("memoMethod must be a function if defined");if(U(this,xi,b),_!==void 0&&typeof _!="function")throw new TypeError("fetchMethod must be a function if specified");if(U(this,gi,_),U(this,ir,!!_),U(this,yt,new Map),U(this,lt,new Array(e).fill(void 0)),U(this,H,new Array(e).fill(void 0)),U(this,Wt,new W(e)),U(this,Jt,new W(e)),U(this,Dt,0),U(this,At,0),U(this,ge,Ml.create(e)),U(this,Pt,0),U(this,me,0),typeof l=="function"&&U(this,fe,l),typeof c=="function"&&U(this,Fr,c),typeof u=="function"?(U(this,pe,u),U(this,Et,[])):(U(this,pe,void 0),U(this,Et,void 0)),U(this,ye,!!g(this,fe)),U(this,_i,!!g(this,Fr)),U(this,Vt,!!g(this,pe)),this.noDisposeOnSet=!!f,this.noUpdateTTL=!!d,this.noDeleteOnFetchRejection=!!v,this.allowStaleOnFetchRejection=!!M,this.allowStaleOnFetchAbort=!!T,this.ignoreFetchAbort=!!w,this.maxEntrySize!==0){if(g(this,Qt)!==0&&!Je(g(this,Qt)))throw new TypeError("maxSize must be a positive integer if specified");if(!Je(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");k(this,C,xx).call(this);}if(this.allowStale=!!h,this.noDeleteOnStaleGet=!!S,this.updateAgeOnGet=!!n,this.updateAgeOnHas=!!a,this.ttlResolution=Je(s)||s===0?s:1,this.ttlAutopurge=!!o,this.ttl=r||0,this.ttl){if(!Je(this.ttl))throw new TypeError("ttl must be a positive integer if specified");k(this,C,Cl).call(this);}if(g(this,de)===0&&this.ttl===0&&g(this,Qt)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!g(this,de)&&!g(this,Qt)){let A="LRU_CACHE_UNBOUNDED";Xy(A)&&(px.add(A),mx("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",A,Bl));}}static unsafeExposeInternals(t){return {starts:g(t,_e),ttls:g(t,te),sizes:g(t,xe),keyMap:g(t,yt),keyList:g(t,lt),valList:g(t,H),next:g(t,Wt),prev:g(t,Jt),get head(){return g(t,Dt)},get tail(){return g(t,At)},free:g(t,ge),isBackgroundFetch:e=>{var r;return k(r=t,C,ht).call(r,e)},backgroundFetch:(e,r,s,o)=>{var n;return k(n=t,C,Rn).call(n,e,r,s,o)},moveToTail:e=>{var r;return k(r=t,C,ks).call(r,e)},indexes:e=>{var r;return k(r=t,C,tr).call(r,e)},rindexes:e=>{var r;return k(r=t,C,er).call(r,e)},isStale:e=>{var r;return g(r=t,ee).call(r,e)}}}get max(){return g(this,de)}get maxSize(){return g(this,Qt)}get calculatedSize(){return g(this,me)}get size(){return g(this,Pt)}get fetchMethod(){return g(this,gi)}get memoMethod(){return g(this,xi)}get dispose(){return g(this,fe)}get onInsert(){return g(this,Fr)}get disposeAfter(){return g(this,pe)}getRemainingTTL(t){return g(this,yt).has(t)?1/0:0}*entries(){for(let t of k(this,C,tr).call(this))g(this,H)[t]!==void 0&&g(this,lt)[t]!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield [g(this,lt)[t],g(this,H)[t]]);}*rentries(){for(let t of k(this,C,er).call(this))g(this,H)[t]!==void 0&&g(this,lt)[t]!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield [g(this,lt)[t],g(this,H)[t]]);}*keys(){for(let t of k(this,C,tr).call(this)){let e=g(this,lt)[t];e!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield e);}}*rkeys(){for(let t of k(this,C,er).call(this)){let e=g(this,lt)[t];e!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield e);}}*values(){for(let t of k(this,C,tr).call(this))g(this,H)[t]!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield g(this,H)[t]);}*rvalues(){for(let t of k(this,C,er).call(this))g(this,H)[t]!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield g(this,H)[t]);}[(fx=Symbol.iterator,dx=Symbol.toStringTag,fx)](){return this.entries()}find(t,e={}){for(let r of k(this,C,tr).call(this)){let s=g(this,H)[r],o=k(this,C,ht).call(this,s)?s.__staleWhileFetching:s;if(o!==void 0&&t(o,g(this,lt)[r],this))return this.get(g(this,lt)[r],e)}}forEach(t,e=this){for(let r of k(this,C,tr).call(this)){let s=g(this,H)[r],o=k(this,C,ht).call(this,s)?s.__staleWhileFetching:s;o!==void 0&&t.call(e,o,g(this,lt)[r],this);}}rforEach(t,e=this){for(let r of k(this,C,er).call(this)){let s=g(this,H)[r],o=k(this,C,ht).call(this,s)?s.__staleWhileFetching:s;o!==void 0&&t.call(e,o,g(this,lt)[r],this);}}purgeStale(){let t=false;for(let e of k(this,C,er).call(this,{allowStale:true}))g(this,ee).call(this,e)&&(k(this,C,rr).call(this,g(this,lt)[e],"expire"),t=true);return t}info(t){let e=g(this,yt).get(t);if(e===void 0)return;let r=g(this,H)[e],s=k(this,C,ht).call(this,r)?r.__staleWhileFetching:r;if(s===void 0)return;let o={value:s};if(g(this,te)&&g(this,_e)){let n=g(this,te)[e],a=g(this,_e)[e];if(n&&a){let h=n-(fi.now()-a);o.ttl=h,o.start=Date.now();}}return g(this,xe)&&(o.size=g(this,xe)[e]),o}dump(){let t=[];for(let e of k(this,C,tr).call(this,{allowStale:true})){let r=g(this,lt)[e],s=g(this,H)[e],o=k(this,C,ht).call(this,s)?s.__staleWhileFetching:s;if(o===void 0||r===void 0)continue;let n={value:o};if(g(this,te)&&g(this,_e)){n.ttl=g(this,te)[e];let a=fi.now()-g(this,_e)[e];n.start=Math.floor(Date.now()-a);}g(this,xe)&&(n.size=g(this,xe)[e]),t.unshift([r,n]);}return t}load(t){this.clear();for(let[e,r]of t){if(r.start){let s=Date.now()-r.start;r.start=fi.now()-s;}this.set(e,r.value,r);}}set(t,e,r={}){var f,d,x,y;if(e===void 0)return this.delete(t),this;let{ttl:s=this.ttl,start:o,noDisposeOnSet:n=this.noDisposeOnSet,sizeCalculation:a=this.sizeCalculation,status:h}=r,{noUpdateTTL:l=this.noUpdateTTL}=r,c=g(this,Rs).call(this,t,e,r.size||0,a);if(this.maxEntrySize&&c>this.maxEntrySize)return h&&(h.set="miss",h.maxEntrySizeExceeded=true),k(this,C,rr).call(this,t,"set"),this;let u=g(this,Pt)===0?void 0:g(this,yt).get(t);if(u===void 0)u=g(this,Pt)===0?g(this,At):g(this,ge).length!==0?g(this,ge).pop():g(this,Pt)===g(this,de)?k(this,C,Gn).call(this,false):g(this,Pt),g(this,lt)[u]=t,g(this,H)[u]=e,g(this,yt).set(t,u),g(this,Wt)[g(this,At)]=u,g(this,Jt)[u]=g(this,At),U(this,At,u),Ws(this,Pt)._++,g(this,yi).call(this,u,c,h),h&&(h.set="add"),l=false,g(this,_i)&&((f=g(this,Fr))==null||f.call(this,e,t,"add"));else {k(this,C,ks).call(this,u);let m=g(this,H)[u];if(e!==m){if(g(this,ir)&&k(this,C,ht).call(this,m)){m.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:_}=m;_!==void 0&&!n&&(g(this,ye)&&((d=g(this,fe))==null||d.call(this,_,t,"set")),g(this,Vt)&&g(this,Et)?.push([_,t,"set"]));}else n||(g(this,ye)&&((x=g(this,fe))==null||x.call(this,m,t,"set")),g(this,Vt)&&g(this,Et)?.push([m,t,"set"]));if(g(this,kr).call(this,u),g(this,yi).call(this,u,c,h),g(this,H)[u]=e,h){h.set="replace";let _=m&&k(this,C,ht).call(this,m)?m.__staleWhileFetching:m;_!==void 0&&(h.oldValue=_);}}else h&&(h.set="update");g(this,_i)&&this.onInsert?.(e,t,e===m?"update":"replace");}if(s!==0&&!g(this,te)&&k(this,C,Cl).call(this),g(this,te)&&(l||g(this,Gs).call(this,u,s,o),h&&g(this,We).call(this,h,u)),!n&&g(this,Vt)&&g(this,Et)){let m=g(this,Et),_;for(;_=m?.shift();)(y=g(this,pe))==null||y.call(this,..._);}return this}pop(){var t;try{for(;g(this,Pt);){let e=g(this,H)[g(this,Dt)];if(k(this,C,Gn).call(this,!0),k(this,C,ht).call(this,e)){if(e.__staleWhileFetching)return e.__staleWhileFetching}else if(e!==void 0)return e}}finally{if(g(this,Vt)&&g(this,Et)){let e=g(this,Et),r;for(;r=e?.shift();)(t=g(this,pe))==null||t.call(this,...r);}}}has(t,e={}){let{updateAgeOnHas:r=this.updateAgeOnHas,status:s}=e,o=g(this,yt).get(t);if(o!==void 0){let n=g(this,H)[o];if(k(this,C,ht).call(this,n)&&n.__staleWhileFetching===void 0)return false;if(g(this,ee).call(this,o))s&&(s.has="stale",g(this,We).call(this,s,o));else return r&&g(this,Br).call(this,o),s&&(s.has="hit",g(this,We).call(this,s,o)),true}else s&&(s.has="miss");return false}peek(t,e={}){let{allowStale:r=this.allowStale}=e,s=g(this,yt).get(t);if(s===void 0||!r&&g(this,ee).call(this,s))return;let o=g(this,H)[s];return k(this,C,ht).call(this,o)?o.__staleWhileFetching:o}async fetch(t,e={}){let{allowStale:r=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:n=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:h=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:u=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:f=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:x=this.allowStaleOnFetchAbort,context:y,forceRefresh:m=false,status:_,signal:b}=e;if(!g(this,ir))return _&&(_.fetch="get"),this.get(t,{allowStale:r,updateAgeOnGet:s,noDeleteOnStaleGet:o,status:_});let v={allowStale:r,updateAgeOnGet:s,noDeleteOnStaleGet:o,ttl:n,noDisposeOnSet:a,size:h,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:u,allowStaleOnFetchRejection:f,allowStaleOnFetchAbort:x,ignoreFetchAbort:d,status:_,signal:b},S=g(this,yt).get(t);if(S===void 0){_&&(_.fetch="miss");let M=k(this,C,Rn).call(this,t,S,v,y);return M.__returned=M}else {let M=g(this,H)[S];if(k(this,C,ht).call(this,M)){let E=r&&M.__staleWhileFetching!==void 0;return _&&(_.fetch="inflight",E&&(_.returnedStale=true)),E?M.__staleWhileFetching:M.__returned=M}let T=g(this,ee).call(this,S);if(!m&&!T)return _&&(_.fetch="hit"),k(this,C,ks).call(this,S),s&&g(this,Br).call(this,S),_&&g(this,We).call(this,_,S),M;let w=k(this,C,Rn).call(this,t,S,v,y),A=w.__staleWhileFetching!==void 0&&r;return _&&(_.fetch=T?"stale":"refresh",A&&T&&(_.returnedStale=true)),A?w.__staleWhileFetching:w.__returned=w}}async forceFetch(t,e={}){let r=await this.fetch(t,e);if(r===void 0)throw new Error("fetch() returned undefined");return r}memo(t,e={}){let r=g(this,xi);if(!r)throw new Error("no memoMethod provided to constructor");let{context:s,forceRefresh:o,...n}=e,a=this.get(t,n);if(!o&&a!==void 0)return a;let h=r(t,a,{options:n,context:s});return this.set(t,h,n),h}get(t,e={}){let{allowStale:r=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:n}=e,a=g(this,yt).get(t);if(a!==void 0){let h=g(this,H)[a],l=k(this,C,ht).call(this,h);return n&&g(this,We).call(this,n,a),g(this,ee).call(this,a)?(n&&(n.get="stale"),l?(n&&r&&h.__staleWhileFetching!==void 0&&(n.returnedStale=true),r?h.__staleWhileFetching:void 0):(o||k(this,C,rr).call(this,t,"expire"),n&&r&&(n.returnedStale=true),r?h:void 0)):(n&&(n.get="hit"),l?h.__staleWhileFetching:(k(this,C,ks).call(this,a),s&&g(this,Br).call(this,a),h))}else n&&(n.get="miss");}delete(t){return k(this,C,rr).call(this,t,"delete")}clear(){return k(this,C,Fl).call(this,"delete")}};de=new WeakMap,Qt=new WeakMap,fe=new WeakMap,Fr=new WeakMap,pe=new WeakMap,gi=new WeakMap,xi=new WeakMap,Pt=new WeakMap,me=new WeakMap,yt=new WeakMap,lt=new WeakMap,H=new WeakMap,Wt=new WeakMap,Jt=new WeakMap,Dt=new WeakMap,At=new WeakMap,ge=new WeakMap,Et=new WeakMap,xe=new WeakMap,_e=new WeakMap,te=new WeakMap,ye=new WeakMap,ir=new WeakMap,Vt=new WeakMap,_i=new WeakMap,C=new WeakSet,Cl=function(){let t=new pi(g(this,de)),e=new pi(g(this,de));U(this,te,t),U(this,_e,e),U(this,Gs,(o,n,a=fi.now())=>{if(e[o]=n!==0?a:0,t[o]=n,n!==0&&this.ttlAutopurge){let h=setTimeout(()=>{g(this,ee).call(this,o)&&k(this,C,rr).call(this,g(this,lt)[o],"expire");},n+1);h.unref&&h.unref();}}),U(this,Br,o=>{e[o]=t[o]!==0?fi.now():0;}),U(this,We,(o,n)=>{if(t[n]){let a=t[n],h=e[n];if(!a||!h)return;o.ttl=a,o.start=h,o.now=r||s();let l=o.now-h;o.remainingTTL=a-l;}});let r=0,s=()=>{let o=fi.now();if(this.ttlResolution>0){r=o;let n=setTimeout(()=>r=0,this.ttlResolution);n.unref&&n.unref();}return o};this.getRemainingTTL=o=>{let n=g(this,yt).get(o);if(n===void 0)return 0;let a=t[n],h=e[n];if(!a||!h)return 1/0;let l=(r||s())-h;return a-l},U(this,ee,o=>{let n=e[o],a=t[o];return !!a&&!!n&&(r||s())-n>a});},Br=new WeakMap,We=new WeakMap,Gs=new WeakMap,ee=new WeakMap,xx=function(){let t=new pi(g(this,de));U(this,me,0),U(this,xe,t),U(this,kr,e=>{U(this,me,g(this,me)-t[e]),t[e]=0;}),U(this,Rs,(e,r,s,o)=>{if(k(this,C,ht).call(this,r))return 0;if(!Je(s))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(s=o(r,e),!Je(s))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 s}),U(this,yi,(e,r,s)=>{if(t[e]=r,g(this,Qt)){let o=g(this,Qt)-t[e];for(;g(this,me)>o;)k(this,C,Gn).call(this,true);}U(this,me,g(this,me)+t[e]),s&&(s.entrySize=r,s.totalCalculatedSize=g(this,me));});},kr=new WeakMap,yi=new WeakMap,Rs=new WeakMap,tr=function*({allowStale:t=this.allowStale}={}){if(g(this,Pt))for(let e=g(this,At);!(!k(this,C,Al).call(this,e)||((t||!g(this,ee).call(this,e))&&(yield e),e===g(this,Dt)));)e=g(this,Jt)[e];},er=function*({allowStale:t=this.allowStale}={}){if(g(this,Pt))for(let e=g(this,Dt);!(!k(this,C,Al).call(this,e)||((t||!g(this,ee).call(this,e))&&(yield e),e===g(this,At)));)e=g(this,Wt)[e];},Al=function(t){return t!==void 0&&g(this,yt).get(g(this,lt)[t])===t},Gn=function(t){var o;let e=g(this,Dt),r=g(this,lt)[e],s=g(this,H)[e];return g(this,ir)&&k(this,C,ht).call(this,s)?s.__abortController.abort(new Error("evicted")):(g(this,ye)||g(this,Vt))&&(g(this,ye)&&((o=g(this,fe))==null||o.call(this,s,r,"evict")),g(this,Vt)&&g(this,Et)?.push([s,r,"evict"])),g(this,kr).call(this,e),t&&(g(this,lt)[e]=void 0,g(this,H)[e]=void 0,g(this,ge).push(e)),g(this,Pt)===1?(U(this,Dt,U(this,At,0)),g(this,ge).length=0):U(this,Dt,g(this,Wt)[e]),g(this,yt).delete(r),Ws(this,Pt)._--,e},Rn=function(t,e,r,s){let o=e===void 0?void 0:g(this,H)[e];if(k(this,C,ht).call(this,o))return o;let n=new In,{signal:a}=r;a?.addEventListener("abort",()=>n.abort(a.reason),{signal:n.signal});let h={signal:n.signal,options:r,context:s},l=(y,m=false)=>{let{aborted:_}=n.signal,b=r.ignoreFetchAbort&&y!==void 0;if(r.status&&(_&&!m?(r.status.fetchAborted=true,r.status.fetchError=n.signal.reason,b&&(r.status.fetchAbortIgnored=true)):r.status.fetchResolved=true),_&&!b&&!m)return u(n.signal.reason);let v=d;return g(this,H)[e]===d&&(y===void 0?v.__staleWhileFetching?g(this,H)[e]=v.__staleWhileFetching:k(this,C,rr).call(this,t,"fetch"):(r.status&&(r.status.fetchUpdated=true),this.set(t,y,h.options))),y},c=y=>(r.status&&(r.status.fetchRejected=true,r.status.fetchError=y),u(y)),u=y=>{let{aborted:m}=n.signal,_=m&&r.allowStaleOnFetchAbort,b=_||r.allowStaleOnFetchRejection,v=b||r.noDeleteOnFetchRejection,S=d;if(g(this,H)[e]===d&&(!v||S.__staleWhileFetching===void 0?k(this,C,rr).call(this,t,"fetch"):_||(g(this,H)[e]=S.__staleWhileFetching)),b)return r.status&&S.__staleWhileFetching!==void 0&&(r.status.returnedStale=true),S.__staleWhileFetching;if(S.__returned===S)throw y},f=(y,m)=>{var b;let _=(b=g(this,gi))==null?void 0:b.call(this,t,o,h);_&&_ instanceof Promise&&_.then(v=>y(v===void 0?void 0:v),m),n.signal.addEventListener("abort",()=>{(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort)&&(y(void 0),r.allowStaleOnFetchAbort&&(y=v=>l(v,true)));});};r.status&&(r.status.fetchDispatched=true);let d=new Promise(f).then(l,c),x=Object.assign(d,{__abortController:n,__staleWhileFetching:o,__returned:void 0});return e===void 0?(this.set(t,x,{...h.options,status:void 0}),e=g(this,yt).get(t)):g(this,H)[e]=x,x},ht=function(t){if(!g(this,ir))return false;let e=t;return !!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof In},El=function(t,e){g(this,Jt)[e]=t,g(this,Wt)[t]=e;},ks=function(t){t!==g(this,At)&&(t===g(this,Dt)?U(this,Dt,g(this,Wt)[t]):k(this,C,El).call(this,g(this,Jt)[t],g(this,Wt)[t]),k(this,C,El).call(this,g(this,At),t),U(this,At,t));},rr=function(t,e){var s,o;let r=false;if(g(this,Pt)!==0){let n=g(this,yt).get(t);if(n!==void 0)if(r=true,g(this,Pt)===1)k(this,C,Fl).call(this,e);else {g(this,kr).call(this,n);let a=g(this,H)[n];if(k(this,C,ht).call(this,a)?a.__abortController.abort(new Error("deleted")):(g(this,ye)||g(this,Vt))&&(g(this,ye)&&((s=g(this,fe))==null||s.call(this,a,t,e)),g(this,Vt)&&g(this,Et)?.push([a,t,e])),g(this,yt).delete(t),g(this,lt)[n]=void 0,g(this,H)[n]=void 0,n===g(this,At))U(this,At,g(this,Jt)[n]);else if(n===g(this,Dt))U(this,Dt,g(this,Wt)[n]);else {let h=g(this,Jt)[n];g(this,Wt)[h]=g(this,Wt)[n];let l=g(this,Wt)[n];g(this,Jt)[l]=g(this,Jt)[n];}Ws(this,Pt)._--,g(this,ge).push(n);}}if(g(this,Vt)&&g(this,Et)?.length){let n=g(this,Et),a;for(;a=n?.shift();)(o=g(this,pe))==null||o.call(this,...a);}return r},Fl=function(t){var e,r;for(let s of k(this,C,er).call(this,{allowStale:true})){let o=g(this,H)[s];if(k(this,C,ht).call(this,o))o.__abortController.abort(new Error("deleted"));else {let n=g(this,lt)[s];g(this,ye)&&((e=g(this,fe))==null||e.call(this,o,n,t)),g(this,Vt)&&g(this,Et)?.push([o,n,t]);}}if(g(this,yt).clear(),g(this,H).fill(void 0),g(this,lt).fill(void 0),g(this,te)&&g(this,_e)&&(g(this,te).fill(0),g(this,_e).fill(0)),g(this,xe)&&g(this,xe).fill(0),U(this,Dt,0),U(this,At,0),g(this,ge).length=0,U(this,me,0),U(this,Pt,0),g(this,Vt)&&g(this,Et)){let s=g(this,Et),o;for(;o=s?.shift();)(r=g(this,pe))==null||r.call(this,...o);}};var Dn=Bl;var sr=class{constructor(t){G(this,"cache");G(this,"map",new Map);this.cache=new Dn({max:t.cacheSize}),this.map=new Map;}get[Symbol.iterator](){return this.map[Symbol.iterator]}get[Symbol.toStringTag](){return this.map[Symbol.toStringTag]}clear(){return this.cache.clear(),this.map.clear()}delete(t){let e=this.map.delete(t);return e&&this.cache.delete(t),e}get forEach(){return this.map.forEach}get(t){let e=this.cache.get(t);return e||this.map.get(t)}has(t){return this.map.has(t)}set(t,e){return this.map.set(t,e),this.cache.set(t,e),this}get size(){return this.map.size}entries(){return this.map.entries()}keys(){return this.map.keys()}values(){return this.map.values()}};var bt=class bt{constructor(){}static clearOldTempVariables(t){bt.tempStorageDeadlines.forEach((e,r)=>{e>t&&(bt.tempStorage.delete(r),bt.tempStorageDeadlines.delete(r),bt.storage.cache.delete(r));});}static setVariable(t,e){let r=bt.tempStorage.has(t);e==null?(bt.storage.map.delete(t),!r&&bt.storage.cache.delete(t)):(bt.storage.map.set(t,e),!r&&bt.storage.cache.set(t,e));}static getVariable(t){let e=bt.storage.cache.get(t);return e===void 0&&(e=bt.tempStorage.get(t)),e===void 0&&(e=bt.storage.map.get(t)),kn(e)}static removeVariable(t){bt.storage.delete(t);}static setFlag(t,e){if(e)this.flags.includes(t)||this.flags.push(t);else {let r=this.flags.indexOf(t);r>-1&&this.flags.splice(r,1);}}static getFlag(t){return this.flags.includes(t)}};G(bt,"storage",new sr({cacheSize:20})),G(bt,"startingStorage",[]),G(bt,"flags",Array()),G(bt,"tempStorage",new Map),G(bt,"tempStorageDeadlines",new Map);var N=bt;var bi=class{constructor(t,e){G(this,"_id");G(this,"categoryId");this.categoryId=t,this._id=e;}get id(){return this._id}setStorageProperty(t,e){let r=N.getVariable(this.categoryId);r||(r={}),r.hasOwnProperty(this.id)||(r[this.id]={}),e==null?r[this.id].hasOwnProperty(t)&&delete r[this.id][t]:r[this.id]={...r[this.id],[t]:e},Object.keys(r[this.id]).length===0&&delete r[this.id],N.setVariable(this.categoryId,r);}getStorageProperty(t,e=this.id){let r=N.getVariable(this.categoryId);if(r&&r.hasOwnProperty(e)&&r[e].hasOwnProperty(t))return r[e][t]}};var jy="@",vi=class extends bi{constructor(e,r=""){super(cx.CHARACTER_CATEGORY_KEY,e+(r?jy+r:""));G(this,"sourceId");this.sourceId=e;}getStorageProperty(e){let r=super.getStorageProperty(e);return r===void 0&&(r=super.getStorageProperty(e,this.sourceId)),r}};var Ln=class extends vi{constructor(e,r){super(typeof e=="string"?e:e.id,typeof e=="string"?"":e.emotion);G(this,"defaultName");G(this,"defaultSurname");G(this,"defaultAge");G(this,"_icon");G(this,"_color");this.defaultName=r.name,this.defaultSurname=r.surname,this.defaultAge=r.age,this._icon=r.icon,this._color=r.color;}get name(){return this.getStorageProperty("name")||this.defaultName||this.id}set name(e){this.setStorageProperty("name",e);}get surname(){return this.getStorageProperty("surname")||this.defaultSurname}set surname(e){this.setStorageProperty("surname",e);}get age(){return this.getStorageProperty("age")||this.defaultAge}set age(e){this.setStorageProperty("age",e);}get icon(){return this._icon}get color(){return this._color}};var Ds=new sr({cacheSize:10});function Ky(i){return Si.add(i)}function qy(i){return Si.get(i)}function Zy(){return Si.values()}var Si;(s=>{function i(o){try{let n=Ds.get(o);if(!n){at.warn(`Character "${o}" not found, did you forget to register it with the RegisteredCharacters.add?`);return}return n}catch(n){at.error(`Error while getting Character "${o}"`,n);return}}s.get=i;function t(o){if(Array.isArray(o)){o.forEach(n=>t(n));return}Ds.get(o.id)&&at.info(`Character id "${o.id}" already exists, it will be overwritten`),Ds.set(o.id,o);}s.add=t;function e(){return Array.from(Ds.values())}s.values=e;function r(o){return Ds.has(o)}s.has=r;})(Si||(Si={}));var Qy=Si;export{Ln as CharacterBaseModel,vi as CharacterStoredClass,Qy as RegisteredCharacters,Zy as getAllCharacters,qy as getCharacterById,Ky as saveCharacter};
|
|
571
|
+
`}};});var ml,gl,Mn,Rg=p(()=>{nt();Do();Fg();Wo();es();je();Bt();Gg();Mn=class extends Ae{constructor(){ml??(ml=jr({name:"tiling-sprite-shader",bits:[Ss,Bg,qr]})),gl??(gl=Kr({name:"tiling-sprite-shader",bits:[Eg,kg,Zr]}));let t=new zt({uMapCoord:{value:new F,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new F,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}});super({glProgram:gl,gpuProgram:ml,resources:{localUniforms:new zt({uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:t,uTexture:I.EMPTY.source,uSampler:I.EMPTY.source.style}});}updateUniforms(t,e,r,s,o,n){let a=this.resources.tilingUniforms,h=n.width,l=n.height,c=n.textureMatrix,u=a.uniforms.uTextureTransform;u.set(r.a*h/t,r.b*h/e,r.c*l/t,r.d*l/e,r.tx/t,r.ty/e),u.invert(),a.uniforms.uMapCoord=c.mapCoord,a.uniforms.uClampFrame=c.uClampFrame,a.uniforms.uClampOffset=c.uClampOffset,a.uniforms.uTextureTransform=u,a.uniforms.uSizeAnchor[0]=t,a.uniforms.uSizeAnchor[1]=e,a.uniforms.uSizeAnchor[2]=s,a.uniforms.uSizeAnchor[3]=o,n&&(this.resources.uTexture=n.source,this.resources.uSampler=n.source.style);}};});var Cn,Ig=p(()=>{Pn();Cn=class extends ci{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])});}};});function Dg(i,t){let e=i.anchor.x,r=i.anchor.y;t[0]=-e*i.width,t[1]=-r*i.height,t[2]=(1-e)*i.width,t[3]=-r*i.height,t[4]=(1-e)*i.width,t[5]=(1-r)*i.height,t[6]=-e*i.width,t[7]=(1-r)*i.height;}var Lg=p(()=>{});function Ug(i,t,e,r){let s=0,o=i.length/(t),n=r.a,a=r.b,h=r.c,l=r.d,c=r.tx,u=r.ty;for(e*=t;s<o;){let f=i[e],d=i[e+1];i[e]=n*f+h*d+c,i[e+1]=a*f+l*d+u,e+=t,s++;}}var Og=p(()=>{});function zg(i,t){let e=i.texture,r=e.frame.width,s=e.frame.height,o=0,n=0;i.applyAnchorToTexture&&(o=i.anchor.x,n=i.anchor.y),t[0]=t[6]=-o,t[2]=t[4]=1-o,t[1]=t[3]=-n,t[5]=t[7]=1-n;let a=F.shared;a.copyFrom(i._tileTransform.matrix),a.tx/=i.width,a.ty/=i.height,a.invert(),a.scale(i.width/r,i.height/s),Ug(t,2,0,a);}var Wg=p(()=>{nt();Og();});var An,xl,Ts,Vg=p(()=>{D();Zi();qo();ts();ns();Zo();Pn();Rg();Ig();Lg();Wg();An=new Cn,xl=class{constructor(){this.canBatch=true,this.geometry=new ci({indices:An.indices.slice(),positions:An.positions.slice(),uvs:An.uvs.slice()});}destroy(){this.geometry.destroy(),this.shader?.destroy();}},Ts=class{constructor(t){this._state=vr.default2d,this._renderer=t;}validateRenderable(t){let e=this._getTilingSpriteData(t),r=e.canBatch;this._updateCanBatch(t);let s=e.canBatch;if(s&&s===r){let{batchableMesh:o}=e;return !o._batcher.checkAndUpdateTexture(o,t.texture)}return r!==s}addRenderable(t,e){let r=this._renderer.renderPipes.batch;this._updateCanBatch(t);let s=this._getTilingSpriteData(t),{geometry:o,canBatch:n}=s;if(n){s.batchableMesh||(s.batchableMesh=new qe);let a=s.batchableMesh;t.didViewUpdate&&(this._updateBatchableMesh(t),a.geometry=o,a.renderable=t,a.transform=t.groupTransform,a.setTexture(t._texture)),a.roundPixels=this._renderer._roundPixels|t._roundPixels,r.addToBatch(a,e);}else r.break(e),s.shader||(s.shader=new Mn),this.updateRenderable(t),e.add(t);}execute(t){let{shader:e}=this._getTilingSpriteData(t);e.groups[0]=this._renderer.globalUniforms.bindGroup;let r=e.resources.localUniforms.uniforms;r.uTransformMatrix=t.groupTransform,r.uRound=this._renderer._roundPixels|t._roundPixels,Ke(t.groupColorAlpha,r.uColor,0),this._state.blendMode=Le(t.groupBlendMode,t.texture._source),this._renderer.encoder.draw({geometry:An,shader:e,state:this._state});}updateRenderable(t){let e=this._getTilingSpriteData(t),{canBatch:r}=e;if(r){let{batchableMesh:s}=e;t.didViewUpdate&&this._updateBatchableMesh(t),s._batcher.updateElement(s);}else if(t.didViewUpdate){let{shader:s}=e;s.updateUniforms(t.width,t.height,t._tileTransform.matrix,t.anchor.x,t.anchor.y,t.texture);}}_getTilingSpriteData(t){return t._gpuData[this._renderer.uid]||this._initTilingSpriteData(t)}_initTilingSpriteData(t){let e=new xl;return e.renderable=t,t._gpuData[this._renderer.uid]=e,e}_updateBatchableMesh(t){let e=this._getTilingSpriteData(t),{geometry:r}=e,s=t.texture.source.style;s.addressMode!=="repeat"&&(s.addressMode="repeat",s.update()),zg(t,r.uvs),Dg(t,r.positions);}destroy(){this._renderer=null;}_updateCanBatch(t){let e=this._getTilingSpriteData(t),r=t.texture,s=true;return this._renderer.type===Ce.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),e.canBatch=r.textureMatrix.isSimple&&(s||r.source.isPowerOfTwo),e.canBatch}};Ts.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"tilingSprite"};});var _l=p(()=>{D();Vg();O.add(Ts);});var Ng,Yg,$g=p(()=>{mt();Pn();Ng=class Hg extends ci{constructor(...t){super({});let e=t[0]??{};typeof e=="number"&&(R(j,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),e={width:e,height:t[1],verticesX:t[2],verticesY:t[3]}),this.build(e);}build(t){t={...Hg.defaultOptions,...t},this.verticesX=this.verticesX??t.verticesX,this.verticesY=this.verticesY??t.verticesY,this.width=this.width??t.width,this.height=this.height??t.height;let e=this.verticesX*this.verticesY,r=[],s=[],o=[],n=this.verticesX-1,a=this.verticesY-1,h=this.width/n,l=this.height/a;for(let u=0;u<e;u++){let f=u%this.verticesX,d=u/this.verticesX|0;r.push(f*h,d*l),s.push(f/n,d/a);}let c=n*a;for(let u=0;u<c;u++){let f=u%n,d=u/n|0,x=d*this.verticesX+f,y=d*this.verticesX+f+1,m=(d+1)*this.verticesX+f,_=(d+1)*this.verticesX+f+1;o.push(x,y,m,y,_,m);}this.buffers[0].data=new Float32Array(r),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint32Array(o),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update();}};Ng.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};Yg=Ng;});var Xg,Kg,qg=p(()=>{$g();Xg=class jg extends Yg{constructor(t={}){t={...jg.defaultOptions,...t},super({width:t.width,height:t.height,verticesX:4,verticesY:4}),this.update(t);}update(t){this.width=t.width??this.width,this.height=t.height??this.height,this._originalWidth=t.originalWidth??this._originalWidth,this._originalHeight=t.originalHeight??this._originalHeight,this._leftWidth=t.leftWidth??this._leftWidth,this._rightWidth=t.rightWidth??this._rightWidth,this._topHeight=t.topHeight??this._topHeight,this._bottomHeight=t.bottomHeight??this._bottomHeight,this._anchorX=t.anchor?.x,this._anchorY=t.anchor?.y,this.updateUvs(),this.updatePositions();}updatePositions(){let t=this.positions,{width:e,height:r,_leftWidth:s,_rightWidth:o,_topHeight:n,_bottomHeight:a,_anchorX:h,_anchorY:l}=this,c=s+o,u=e>c?1:e/c,f=n+a,d=r>f?1:r/f,x=Math.min(u,d),y=h*e,m=l*r;t[0]=t[8]=t[16]=t[24]=-y,t[2]=t[10]=t[18]=t[26]=s*x-y,t[4]=t[12]=t[20]=t[28]=e-o*x-y,t[6]=t[14]=t[22]=t[30]=e-y,t[1]=t[3]=t[5]=t[7]=-m,t[9]=t[11]=t[13]=t[15]=n*x-m,t[17]=t[19]=t[21]=t[23]=r-a*x-m,t[25]=t[27]=t[29]=t[31]=r-m,this.getBuffer("aPosition").update();}updateUvs(){let t=this.uvs;t[0]=t[8]=t[16]=t[24]=0,t[1]=t[3]=t[5]=t[7]=0,t[6]=t[14]=t[22]=t[30]=1,t[25]=t[27]=t[29]=t[31]=1;let e=1/this._originalWidth,r=1/this._originalHeight;t[2]=t[10]=t[18]=t[26]=e*this._leftWidth,t[9]=t[11]=t[13]=t[15]=r*this._topHeight,t[4]=t[12]=t[20]=t[28]=1-e*this._rightWidth,t[17]=t[19]=t[21]=t[23]=1-r*this._bottomHeight,this.getBuffer("aUV").update();}};Xg.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};Kg=Xg;});var yl,ws,Zg=p(()=>{D();Zo();qg();yl=class extends qe{constructor(){super(),this.geometry=new Kg;}destroy(){this.geometry.destroy();}},ws=class{constructor(t){this._renderer=t;}addRenderable(t,e){let r=this._getGpuSprite(t);t.didViewUpdate&&this._updateBatchableSprite(t,r),this._renderer.renderPipes.batch.addToBatch(r,e);}updateRenderable(t){let e=this._getGpuSprite(t);t.didViewUpdate&&this._updateBatchableSprite(t,e),e._batcher.updateElement(e);}validateRenderable(t){let e=this._getGpuSprite(t);return !e._batcher.checkAndUpdateTexture(e,t._texture)}_updateBatchableSprite(t,e){e.geometry.update(t),e.setTexture(t._texture);}_getGpuSprite(t){return t._gpuData[this._renderer.uid]||this._initGPUSprite(t)}_initGPUSprite(t){let e=t._gpuData[this._renderer.uid]=new yl,r=e;return r.renderable=t,r.transform=t.groupTransform,r.texture=t._texture,r.roundPixels=this._renderer._roundPixels|t._roundPixels,t.didViewUpdate||this._updateBatchableSprite(t,r),e}destroy(){this._renderer=null;}};ws.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"nineSliceSprite"};});var bl=p(()=>{D();Zg();O.add(ws);});var Ps,Qg=p(()=>{D();Ps=class{constructor(t){this._renderer=t;}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:false,action:"pushFilter",container:e,filterEffect:t});}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:false});}execute(t){t.action==="pushFilter"?this._renderer.filter.push(t):t.action==="popFilter"&&this._renderer.filter.pop();}destroy(){this._renderer=null;}};Ps.extension={type:[P.WebGLPipes,P.WebGPUPipes,P.CanvasPipes],name:"filter"};});function Jg(i,t){t.clear();let e=t.matrix;for(let r=0;r<i.length;r++){let s=i[r];s.globalDisplayStatus<7||(t.matrix=s.worldTransform,t.addBounds(s.bounds));}return t.matrix=e,t}var tx=p(()=>{});var Oy,vl,Ms,ex=p(()=>{D();nt();qi();Ji();je();Bt();Dr();ts();he();tx();Rt();Oy=new Me({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:8,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),vl=class{constructor(){this.skip=false,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new dt,this.container=null,this.blendRequired=false,this.outputRenderSurface=null,this.globalFrame={x:0,y:0,width:0,height:0};}},Ms=class{constructor(t){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new zt({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new oe({}),this.renderer=t;}get activeBackTexture(){return this._activeFilterData?.backTexture}push(t){let e=this.renderer,r=t.filterEffect.filters,s=this._pushFilterData();s.skip=false,s.filters=r,s.container=t.container,s.outputRenderSurface=e.renderTarget.renderSurface;let o=e.renderTarget.renderTarget.colorTexture.source,n=o.resolution,a=o.antialias;if(r.length===0){s.skip=true;return}let h=s.bounds;if(this._calculateFilterArea(t,h),this._calculateFilterBounds(s,e.renderTarget.rootViewPort,a,n,1),s.skip)return;let l=this._getPreviousFilterData(),c=this._findFilterResolution(n),u=0,f=0;l&&(u=l.bounds.minX,f=l.bounds.minY),this._calculateGlobalFrame(s,u,f,c,o.width,o.height),this._setupFilterTextures(s,h,e,l);}generateFilteredTexture({texture:t,filters:e}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=false,r.filters=e;let s=t.source,o=s.resolution,n=s.antialias;if(e.length===0)return r.skip=true,t;let a=r.bounds;if(a.addRect(t.frame),this._calculateFilterBounds(r,a.rectangle,n,o,0),r.skip)return t;let h=o;this._calculateGlobalFrame(r,0,0,h,s.width,s.height),r.outputRenderSurface=It.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=I.EMPTY,r.inputTexture=t,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,true);let f=r.outputRenderSurface;return f.source.alphaMode="premultiplied-alpha",f}pop(){let t=this.renderer,e=this._popFilterData();e.skip||(t.globalUniforms.pop(),t.renderTarget.finishRenderPass(),this._activeFilterData=e,this._applyFiltersToTexture(e,false),e.blendRequired&&It.returnTexture(e.backTexture),It.returnTexture(e.inputTexture));}getBackTexture(t,e,r){let s=t.colorTexture.source._resolution,o=It.getOptimalTexture(e.width,e.height,s,false),n=e.minX,a=e.minY;r&&(n-=r.minX,a-=r.minY),n=Math.floor(n*s),a=Math.floor(a*s);let h=Math.ceil(e.width*s),l=Math.ceil(e.height*s);return this.renderer.renderTarget.copyToTexture(t,o,{x:n,y:a},{width:h,height:l},{x:0,y:0}),o}applyFilter(t,e,r,s){let o=this.renderer,n=this._activeFilterData,h=n.outputRenderSurface===r,l=o.renderTarget.rootRenderTarget.colorTexture.source._resolution,c=this._findFilterResolution(l),u=0,f=0;if(h){let d=this._findPreviousFilterOffset();u=d.x,f=d.y;}this._updateFilterUniforms(e,r,n,u,f,c,h,s),this._setupBindGroupsAndRender(t,e,o);}calculateSpriteMatrix(t,e){let r=this._activeFilterData,s=t.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),o=e.worldTransform.copyTo(F.shared),n=e.renderGroup||e.parentRenderGroup;return n&&n.cacheToLocalTransform&&o.prepend(n.cacheToLocalTransform),o.invert(),s.prepend(o),s.scale(1/e.texture.frame.width,1/e.texture.frame.height),s.translate(e.anchor.x,e.anchor.y),s}destroy(){}_setupBindGroupsAndRender(t,e,r){if(r.renderPipes.uniformBatch){let s=r.renderPipes.uniformBatch.getUboResource(this._filterGlobalUniforms);this._globalFilterBindGroup.setResource(s,0);}else this._globalFilterBindGroup.setResource(this._filterGlobalUniforms,0);this._globalFilterBindGroup.setResource(e.source,1),this._globalFilterBindGroup.setResource(e.source.style,2),t.groups[0]=this._globalFilterBindGroup,r.encoder.draw({geometry:Oy,shader:t,state:t._state,topology:"triangle-list"}),r.type===Ce.WEBGL&&r.renderTarget.finishRenderPass();}_setupFilterTextures(t,e,r,s){if(t.backTexture=I.EMPTY,t.blendRequired){r.renderTarget.finishRenderPass();let o=r.renderTarget.getRenderTarget(t.outputRenderSurface);t.backTexture=this.getBackTexture(o,e,s?.bounds);}t.inputTexture=It.getOptimalTexture(e.width,e.height,t.resolution,t.antialias),r.renderTarget.bind(t.inputTexture,true),r.globalUniforms.push({offset:e});}_calculateGlobalFrame(t,e,r,s,o,n){let a=t.globalFrame;a.x=e*s,a.y=r*s,a.width=o*s,a.height=n*s;}_updateFilterUniforms(t,e,r,s,o,n,a,h){let l=this._filterGlobalUniforms.uniforms,c=l.uOutputFrame,u=l.uInputSize,f=l.uInputPixel,d=l.uInputClamp,x=l.uGlobalFrame,y=l.uOutputTexture;a?(c[0]=r.bounds.minX-s,c[1]=r.bounds.minY-o):(c[0]=0,c[1]=0),c[2]=t.frame.width,c[3]=t.frame.height,u[0]=t.source.width,u[1]=t.source.height,u[2]=1/u[0],u[3]=1/u[1],f[0]=t.source.pixelWidth,f[1]=t.source.pixelHeight,f[2]=1/f[0],f[3]=1/f[1],d[0]=.5*f[2],d[1]=.5*f[3],d[2]=t.frame.width*u[2]-.5*f[2],d[3]=t.frame.height*u[3]-.5*f[3];let m=this.renderer.renderTarget.rootRenderTarget.colorTexture;x[0]=s*n,x[1]=o*n,x[2]=m.source.width*n,x[3]=m.source.height*n,e instanceof I&&(e.source.resource=null);let _=this.renderer.renderTarget.getRenderTarget(e);this.renderer.renderTarget.bind(e,!!h),e instanceof I?(y[0]=e.frame.width,y[1]=e.frame.height):(y[0]=_.width,y[1]=_.height),y[2]=_.isRoot?-1:1,this._filterGlobalUniforms.update();}_findFilterResolution(t){let e=this._filterStackIndex-1;for(;e>0&&this._filterStack[e].skip;)--e;return e>0&&this._filterStack[e].inputTexture?this._filterStack[e].inputTexture.source._resolution:t}_findPreviousFilterOffset(){let t=0,e=0,r=this._filterStackIndex;for(;r>0;){r--;let s=this._filterStack[r];if(!s.skip){t=s.bounds.minX,e=s.bounds.minY;break}}return {x:t,y:e}}_calculateFilterArea(t,e){if(t.renderables?Jg(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(true,e),t.container){let s=(t.container.renderGroup||t.container.parentRenderGroup).cacheToLocalTransform;s&&e.applyMatrix(s);}}_applyFiltersToTexture(t,e){let r=t.inputTexture,s=t.bounds,o=t.filters;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(t.backTexture.source,3),o.length===1)o[0].apply(this,r,t.outputRenderSurface,e);else {let n=t.inputTexture,a=It.getOptimalTexture(s.width,s.height,n.source._resolution,false),h=a,l=0;for(l=0;l<o.length-1;++l){o[l].apply(this,n,h,true);let u=n;n=h,h=u;}o[l].apply(this,n,t.outputRenderSurface,e),It.returnTexture(a);}}_calculateFilterBounds(t,e,r,s,o){let n=this.renderer,a=t.bounds,h=t.filters,l=1/0,c=0,u=true,f=false,d=false,x=true;for(let y=0;y<h.length;y++){let m=h[y];if(l=Math.min(l,m.resolution==="inherit"?s:m.resolution),c+=m.padding,m.antialias==="off"?u=false:m.antialias==="inherit"&&u&&(u=r),m.clipToViewport||(x=false),!!!(m.compatibleRenderers&n.type)){d=false;break}if(m.blendRequired&&!(n.backBuffer?.useBackBuffer??true)){$("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),d=false;break}d=m.enabled||d,f||(f=m.blendRequired);}if(!d){t.skip=true;return}if(x&&a.fitBounds(0,e.width/s,0,e.height/s),a.scale(l).ceil().scale(1/l).pad((c|0)*o),!a.isPositive){t.skip=true;return}t.antialias=u,t.resolution=l,t.blendRequired=f;}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let t,e=this._filterStackIndex-1;for(;e>1&&(e--,t=this._filterStack[e],!!t.skip););return t}_pushFilterData(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new vl),this._filterStackIndex++,t}};Ms.extension={type:[P.WebGLSystem,P.WebGPUSystem],name:"filter"};});var Sl=p(()=>{D();Qg();ex();O.add(Ms);O.add(Ps);});var zy={};var rx=p(()=>{Tu();ba();Bu();Gu();yo();Po();Eh();Fh();Rh();sl();ul();pl();_l();bl();Sl();});var Wy={};var sx=p(()=>{ba();yo();Po();Eh();Fh();Rh();sl();ul();pl();_l();bl();Sl();});var be={};Cx(be,{DistortionFilter:()=>Vs,EqualizerFilter:()=>re,Filter:()=>vt,MonoFilter:()=>Ns,ReverbFilter:()=>Hs,StereoFilter:()=>Ys,StreamFilter:()=>$s,TelephoneFilter:()=>Xs});var Ol;function zl(i){return Ol=i,i}function rt(){return Ol}var vt=class{constructor(t,e){this.init(t,e);}init(t,e){this.destination=t,this.source=e||t;}connect(t){this.source?.connect(t);}disconnect(){this.source?.disconnect();}destroy(){this.disconnect(),this.destination=null,this.source=null;}};var Vs=class extends vt{constructor(t=0){let e;if(!rt().useLegacy){let{audioContext:r}=rt().context;e=r.createWaveShaper();}super(e),this._distortion=e,this.amount=t;}set amount(t){if(this._amount=t,rt().useLegacy)return;let e=t*1e3,r=44100,s=new Float32Array(r),o=Math.PI/180,n=0,a;for(;n<r;++n)a=n*2/r-1,s[n]=(3+e)*a*20*o/(Math.PI+e*Math.abs(a));this._distortion.curve=s,this._distortion.oversample="4x";}get amount(){return this._amount}destroy(){this._distortion=null,super.destroy();}};var gt=class{static setParamValue(t,e){if(t.setValueAtTime){let r=rt().context;t.setValueAtTime(e,r.audioContext.currentTime);}else t.value=e;return e}};var it=class extends vt{constructor(i=0,t=0,e=0,r=0,s=0,o=0,n=0,a=0,h=0,l=0){let c=[],u=[{f:it.F32,type:"lowshelf",gain:i},{f:it.F64,type:"peaking",gain:t},{f:it.F125,type:"peaking",gain:e},{f:it.F250,type:"peaking",gain:r},{f:it.F500,type:"peaking",gain:s},{f:it.F1K,type:"peaking",gain:o},{f:it.F2K,type:"peaking",gain:n},{f:it.F4K,type:"peaking",gain:a},{f:it.F8K,type:"peaking",gain:h},{f:it.F16K,type:"highshelf",gain:l}];rt().useLegacy||(c=u.map(f=>{let d=rt().context.audioContext.createBiquadFilter();return d.type=f.type,gt.setParamValue(d.Q,1),d.frequency.value=f.f,gt.setParamValue(d.gain,f.gain),d})),super(c[0],c[c.length-1]),this.bands=c,this.bandsMap={};for(let f=0;f<this.bands.length;f++){let d=this.bands[f];f>0&&this.bands[f-1].connect(d),this.bandsMap[d.frequency.value]=d;}}setGain(i,t=0){if(!this.bandsMap[i])throw new Error(`No band found for frequency ${i}`);gt.setParamValue(this.bandsMap[i].gain,t);}getGain(i){if(!this.bandsMap[i])throw new Error(`No band found for frequency ${i}`);return this.bandsMap[i].gain.value}set f32(i){this.setGain(it.F32,i);}get f32(){return this.getGain(it.F32)}set f64(i){this.setGain(it.F64,i);}get f64(){return this.getGain(it.F64)}set f125(i){this.setGain(it.F125,i);}get f125(){return this.getGain(it.F125)}set f250(i){this.setGain(it.F250,i);}get f250(){return this.getGain(it.F250)}set f500(i){this.setGain(it.F500,i);}get f500(){return this.getGain(it.F500)}set f1k(i){this.setGain(it.F1K,i);}get f1k(){return this.getGain(it.F1K)}set f2k(i){this.setGain(it.F2K,i);}get f2k(){return this.getGain(it.F2K)}set f4k(i){this.setGain(it.F4K,i);}get f4k(){return this.getGain(it.F4K)}set f8k(i){this.setGain(it.F8K,i);}get f8k(){return this.getGain(it.F8K)}set f16k(i){this.setGain(it.F16K,i);}get f16k(){return this.getGain(it.F16K)}reset(){this.bands.forEach(i=>{gt.setParamValue(i.gain,0);});}destroy(){this.bands.forEach(i=>{i.disconnect();}),this.bands=null,this.bandsMap=null;}},re=it;re.F32=32;re.F64=64;re.F125=125;re.F250=250;re.F500=500;re.F1K=1e3;re.F2K=2e3;re.F4K=4e3;re.F8K=8e3;re.F16K=16e3;var Ns=class extends vt{constructor(){let t,e;if(!rt().useLegacy){let{audioContext:r}=rt().context;e=r.createChannelSplitter(),t=r.createChannelMerger(),t.connect(e);}super(t,e),this._merger=t;}destroy(){this._merger?.disconnect(),this._merger=null,super.destroy();}};var Hs=class extends vt{constructor(t=3,e=2,r=false){super(null),this._seconds=this._clamp(t,1,50),this._decay=this._clamp(e,0,100),this._reverse=r,this._rebuild();}_clamp(t,e,r){return Math.min(r,Math.max(e,t))}get seconds(){return this._seconds}set seconds(t){this._seconds=this._clamp(t,1,50),this._rebuild();}get decay(){return this._decay}set decay(t){this._decay=this._clamp(t,0,100),this._rebuild();}get reverse(){return this._reverse}set reverse(t){this._reverse=t,this._rebuild();}_rebuild(){if(rt().useLegacy)return;let{audioContext:t}=rt().context,e=t.sampleRate,r=e*this._seconds,s=t.createBuffer(2,r,e),o=s.getChannelData(0),n=s.getChannelData(1),a;for(let l=0;l<r;l++)a=this._reverse?r-l:l,o[l]=(Math.random()*2-1)*Math.pow(1-a/r,this._decay),n[l]=(Math.random()*2-1)*Math.pow(1-a/r,this._decay);let h=t.createConvolver();h.buffer=s,this.init(h);}};var Ys=class extends vt{constructor(t=0){let e,r,s;if(!rt().useLegacy){let{audioContext:o}=rt().context;o.createStereoPanner?(e=o.createStereoPanner(),s=e):(r=o.createPanner(),r.panningModel="equalpower",s=r);}super(s),this._stereo=e,this._panner=r,this.pan=t;}set pan(t){this._pan=t,this._stereo?gt.setParamValue(this._stereo.pan,t):this._panner&&this._panner.setPosition(t,0,1-Math.abs(t));}get pan(){return this._pan}destroy(){super.destroy(),this._stereo=null,this._panner=null;}};var $s=class extends vt{constructor(){let t,e;if(!rt().useLegacy){let{audioContext:r}=rt().context;t=r.createMediaStreamDestination(),e=r.createMediaStreamSource(t.stream);}super(t,e),this._stream=t?.stream;}get stream(){return this._stream}destroy(){this._stream=null,super.destroy();}};var Xs=class extends vt{constructor(){let t,e;if(!rt().useLegacy){let{audioContext:r}=rt().context,s=r.createBiquadFilter(),o=r.createBiquadFilter(),n=r.createBiquadFilter(),a=r.createBiquadFilter();s.type="lowpass",gt.setParamValue(s.frequency,2e3),o.type="lowpass",gt.setParamValue(o.frequency,2e3),n.type="highpass",gt.setParamValue(n.frequency,500),a.type="highpass",gt.setParamValue(a.frequency,500),s.connect(o),o.connect(n),n.connect(a),t=s,e=a;}super(t,e);}};D();var ix={extension:{type:P.Environment,name:"browser",priority:-1},test:()=>true,load:async()=>{await Promise.resolve().then(()=>(rx(),zy));}};D();var ox={extension:{type:P.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(sx(),Wy));}};D();D();Po();yo();Ea();ce();za();Ui();Nt();_o();O.add(ix,ox);var Cs=class extends Z{constructor(){super(...arguments),this.speed=1,this.muted=false,this.volume=1,this.paused=false;}refresh(){this.emit("refresh");}refreshPaused(){this.emit("refreshPaused");}get filters(){return console.warn("HTML Audio does not support filters"),null}set filters(t){console.warn("HTML Audio does not support filters");}get audioContext(){return console.warn("HTML Audio does not support audioContext"),null}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this.paused}destroy(){this.removeAllListeners();}};var Vy=0,Tl=class extends Z{constructor(i){super(),this.id=Vy++,this.init(i);}set(i,t){if(this[i]===void 0)throw new Error(`Property with name ${i} does not exist.`);switch(i){case "speed":this.speed=t;break;case "volume":this.volume=t;break;case "paused":this.paused=t;break;case "loop":this.loop=t;break;case "muted":this.muted=t;break}return this}get progress(){let{currentTime:i}=this._source;return i/this._duration}get paused(){return this._paused}set paused(i){this._paused=i,this.refreshPaused();}_onPlay(){this._playing=true;}_onPause(){this._playing=false;}init(i){this._playing=false,this._duration=i.source.duration;let t=this._source=i.source.cloneNode(false);t.src=i.parent.url,t.onplay=this._onPlay.bind(this),t.onpause=this._onPause.bind(this),i.context.on("refresh",this.refresh,this),i.context.on("refreshPaused",this.refreshPaused,this),this._media=i;}_internalStop(){this._source&&this._playing&&(this._source.onended=null,this._source.pause());}stop(){this._internalStop(),this._source&&this.emit("stop");}get speed(){return this._speed}set speed(i){this._speed=i,this.refresh();}get volume(){return this._volume}set volume(i){this._volume=i,this.refresh();}get loop(){return this._loop}set loop(i){this._loop=i,this.refresh();}get muted(){return this._muted}set muted(i){this._muted=i,this.refresh();}get filters(){return console.warn("HTML Audio does not support filters"),null}set filters(i){console.warn("HTML Audio does not support filters");}refresh(){let i=this._media.context,t=this._media.parent;this._source.loop=this._loop||t.loop;let e=i.volume*(i.muted?0:1),r=t.volume*(t.muted?0:1),s=this._volume*(this._muted?0:1);this._source.volume=s*e*r,this._source.playbackRate=this._speed*i.speed*t.speed;}refreshPaused(){let i=this._media.context,t=this._media.parent,e=this._paused||t.paused||i.paused;e!==this._pausedReal&&(this._pausedReal=e,e?(this._internalStop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._source.currentTime,end:this._end,volume:this._volume,speed:this._speed,loop:this._loop})),this.emit("pause",e));}play(i){let{start:t,end:e,speed:r,loop:s,volume:o,muted:n}=i;e&&console.assert(e>t,"End time is before start time"),this._speed=r,this._volume=o,this._loop=!!s,this._muted=n,this.refresh(),this.loop&&e!==null&&(console.warn('Looping not support when specifying an "end" time'),this.loop=false),this._start=t,this._end=e||this._duration,this._start=Math.max(0,this._start-Tl.PADDING),this._end=Math.min(this._end+Tl.PADDING,this._duration),this._source.onloadedmetadata=()=>{this._source&&(this._source.currentTime=t,this._source.onloadedmetadata=null,this.emit("progress",t/this._duration,this._duration),wt.shared.add(this._onUpdate,this));},this._source.onended=this._onComplete.bind(this),this._source.play(),this.emit("start");}_onUpdate(){this.emit("progress",this.progress,this._duration),this._source.currentTime>=this._end&&!this._source.loop&&this._onComplete();}_onComplete(){wt.shared.remove(this._onUpdate,this),this._internalStop(),this.emit("progress",1,this._duration),this.emit("end",this);}destroy(){wt.shared.remove(this._onUpdate,this),this.removeAllListeners();let i=this._source;i&&(i.onended=null,i.onplay=null,i.onpause=null,this._internalStop()),this._source=null,this._speed=1,this._volume=1,this._loop=false,this._end=null,this._start=0,this._duration=0,this._playing=false,this._pausedReal=false,this._paused=false,this._muted=false,this._media&&(this._media.context.off("refresh",this.refresh,this),this._media.context.off("refreshPaused",this.refreshPaused,this),this._media=null);}toString(){return `[HTMLAudioInstance id=${this.id}]`}},En=Tl;En.PADDING=.1;var As=class extends Z{init(t){this.parent=t,this._source=t.options.source||new Audio,t.url&&(this._source.src=t.url);}create(){return new En(this)}get isPlayable(){return !!this._source&&this._source.readyState===4}get duration(){return this._source.duration}get context(){return this.parent.context}get filters(){return null}set filters(t){console.warn("HTML Audio does not support filters");}destroy(){this.removeAllListeners(),this.parent=null,this._source&&(this._source.src="",this._source.load(),this._source=null);}get source(){return this._source}load(t){let e=this._source,r=this.parent;if(e.readyState===4){r.isLoaded=true;let h=r.autoPlayStart();t&&setTimeout(()=>{t(null,r,h);},0);return}if(!r.url){t(new Error("sound.url or sound.source must be set"));return}e.src=r.url;let s=()=>{a(),r.isLoaded=true;let h=r.autoPlayStart();t&&t(null,r,h);},o=()=>{a(),t&&t(new Error("Sound loading has been aborted"));},n=()=>{a();let h=`Failed to load audio element (code: ${e.error.code})`;t?t(new Error(h)):console.error(h);},a=()=>{e.removeEventListener("canplaythrough",s),e.removeEventListener("load",s),e.removeEventListener("abort",o),e.removeEventListener("error",n);};e.addEventListener("canplaythrough",s,false),e.addEventListener("load",s,false),e.addEventListener("abort",o,false),e.addEventListener("error",n,false),e.load();}};var Es=class{constructor(t,e){this.parent=t,Object.assign(this,e),this.duration=this.end-this.start,console.assert(this.duration>0,"End time must be after start time");}play(t){return this.parent.play({complete:t,speed:this.speed||this.parent.speed,end:this.end,start:this.start,loop:this.loop})}destroy(){this.parent=null;}};var Pr=["ogg","oga","opus","m4a","mp3","mpeg","wav","aiff","wma","mid","caf"],wl=["audio/mpeg","audio/ogg"],Mr={};function nx(i){let t={m4a:"audio/mp4",oga:"audio/ogg",opus:'audio/ogg; codecs="opus"',caf:'audio/x-caf; codecs="opus"',...{}},e=document.createElement("audio"),r={},s=/^no$/;Pr.forEach(o=>{let n=e.canPlayType(`audio/${o}`).replace(s,""),a=t[o]?e.canPlayType(t[o]).replace(s,""):"";r[o]=!!n||!!a;}),Object.assign(Mr,r);}nx();var Hy=0,Fs=class extends Z{constructor(t){super(),this.id=Hy++,this._media=null,this._paused=false,this._muted=false,this._elapsed=0,this.init(t);}set(t,e){if(this[t]===void 0)throw new Error(`Property with name ${t} does not exist.`);switch(t){case "speed":this.speed=e;break;case "volume":this.volume=e;break;case "muted":this.muted=e;break;case "loop":this.loop=e;break;case "paused":this.paused=e;break}return this}stop(){this._source&&(this._internalStop(),this.emit("stop"));}get speed(){return this._speed}set speed(t){this._speed=t,this.refresh(),this._update(true);}get volume(){return this._volume}set volume(t){this._volume=t,this.refresh();}get muted(){return this._muted}set muted(t){this._muted=t,this.refresh();}get loop(){return this._loop}set loop(t){this._loop=t,this.refresh();}get filters(){return this._filters}set filters(t){this._filters&&(this._filters?.filter(e=>e).forEach(e=>e.disconnect()),this._filters=null,this._source.connect(this._gain)),this._filters=t?.length?t.slice(0):null,this.refresh();}refresh(){if(!this._source)return;let t=this._media.context,e=this._media.parent;this._source.loop=this._loop||e.loop;let r=t.volume*(t.muted?0:1),s=e.volume*(e.muted?0:1),o=this._volume*(this._muted?0:1);gt.setParamValue(this._gain.gain,o*s*r),gt.setParamValue(this._source.playbackRate,this._speed*e.speed*t.speed),this.applyFilters();}applyFilters(){if(this._filters?.length){this._source.disconnect();let t=this._source;this._filters.forEach(e=>{t.connect(e.destination),t=e;}),t.connect(this._gain);}}refreshPaused(){let t=this._media.context,e=this._media.parent,r=this._paused||e.paused||t.paused;r!==this._pausedReal&&(this._pausedReal=r,r?(this._internalStop(),this.emit("paused")):(this.emit("resumed"),this.play({start:this._elapsed%this._duration,end:this._end,speed:this._speed,loop:this._loop,volume:this._volume})),this.emit("pause",r));}play(t){let{start:e,end:r,speed:s,loop:o,volume:n,muted:a,filters:h}=t;r&&console.assert(r>e,"End time is before start time"),this._paused=false;let{source:l,gain:c}=this._media.nodes.cloneBufferSource();this._source=l,this._gain=c,this._speed=s,this._volume=n,this._loop=!!o,this._muted=a,this._filters=h,this.refresh();let u=this._source.buffer.duration;this._duration=u,this._end=r,this._lastUpdate=this._now(),this._elapsed=e,this._source.onended=this._onComplete.bind(this),this._loop?(this._source.loopEnd=r,this._source.loopStart=e,this._source.start(0,e)):r?this._source.start(0,e,r-e):this._source.start(0,e),this.emit("start"),this._update(true),this.enableTicker(true);}enableTicker(t){wt.shared.remove(this._updateListener,this),t&&wt.shared.add(this._updateListener,this);}get progress(){return this._progress}get paused(){return this._paused}set paused(t){this._paused=t,this.refreshPaused();}destroy(){this.removeAllListeners(),this._internalStop(),this._gain&&(this._gain.disconnect(),this._gain=null),this._media&&(this._media.context.events.off("refresh",this.refresh,this),this._media.context.events.off("refreshPaused",this.refreshPaused,this),this._media=null),this._filters?.forEach(t=>t.disconnect()),this._filters=null,this._end=null,this._speed=1,this._volume=1,this._loop=false,this._elapsed=0,this._duration=0,this._paused=false,this._muted=false,this._pausedReal=false;}toString(){return `[WebAudioInstance id=${this.id}]`}_now(){return this._media.context.audioContext.currentTime}_updateListener(){this._update();}_update(t=false){if(this._source){let e=this._now(),r=e-this._lastUpdate;if(r>0||t){let s=this._source.playbackRate.value;this._elapsed+=r*s,this._lastUpdate=e;let o=this._duration,n;if(this._source.loopStart){let a=this._source.loopEnd-this._source.loopStart;n=(this._source.loopStart+this._elapsed%a)/o;}else n=this._elapsed%o/o;this._progress=n,this.emit("progress",this._progress,o);}}}init(t){this._media=t,t.context.events.on("refresh",this.refresh,this),t.context.events.on("refreshPaused",this.refreshPaused,this);}_internalStop(){if(this._source){this.enableTicker(false),this._source.onended=null,this._source.stop(0),this._source.disconnect();try{this._source.buffer=null;}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t);}this._source=null;}}_onComplete(){if(this._source){this.enableTicker(false),this._source.onended=null,this._source.disconnect();try{this._source.buffer=null;}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t);}}this._source=null,this._progress=1,this.emit("progress",1,this._duration),this.emit("end",this);}};var Cr=class{constructor(t,e){this._output=e,this._input=t;}get destination(){return this._input}get filters(){return this._filters}set filters(t){if(this._filters&&(this._filters.forEach(e=>{e&&e.disconnect();}),this._filters=null,this._input.connect(this._output)),t&&t.length){this._filters=t.slice(0),this._input.disconnect();let e=null;t.forEach(r=>{e===null?this._input.connect(r.destination):e.connect(r.destination),e=r;}),e.connect(this._output);}}destroy(){this.filters=null,this._input=null,this._output=null;}};var ax=class extends Cr{constructor(i){let t=i.audioContext,e=t.createBufferSource(),r=t.createGain(),s=t.createAnalyser();e.connect(s),s.connect(r),r.connect(i.destination),super(s,r),this.context=i,this.bufferSource=e,this.gain=r,this.analyser=s;}get script(){return this._script||(this._script=this.context.audioContext.createScriptProcessor(ax.BUFFER_SIZE),this._script.connect(this.context.destination)),this._script}destroy(){super.destroy(),this.bufferSource.disconnect(),this._script&&this._script.disconnect(),this.gain.disconnect(),this.analyser.disconnect(),this.bufferSource=null,this._script=null,this.gain=null,this.analyser=null,this.context=null;}cloneBufferSource(){let i=this.bufferSource,t=this.context.audioContext.createBufferSource();t.buffer=i.buffer,gt.setParamValue(t.playbackRate,i.playbackRate.value),t.loop=i.loop;let e=this.context.audioContext.createGain();return t.connect(e),e.connect(this.destination),{source:t,gain:e}}get bufferSize(){return this.script.bufferSize}},Fn=ax;Fn.BUFFER_SIZE=0;var Ar=class{init(t){this.parent=t,this._nodes=new Fn(this.context),this._source=this._nodes.bufferSource,this.source=t.options.source;}destroy(){this.parent=null,this._nodes.destroy(),this._nodes=null;try{this._source.buffer=null;}catch(t){console.warn("Failed to set AudioBufferSourceNode.buffer to null:",t);}this._source=null,this.source=null;}create(){return new Fs(this)}get context(){return this.parent.context}get isPlayable(){return !!this._source&&!!this._source.buffer}get filters(){return this._nodes.filters}set filters(t){this._nodes.filters=t;}get duration(){return console.assert(this.isPlayable,"Sound not yet playable, no duration"),this._source.buffer.duration}get buffer(){return this._source.buffer}set buffer(t){this._source.buffer=t;}get nodes(){return this._nodes}load(t){this.source?this._decode(this.source,t):this.parent.url?this._loadUrl(t):t?t(new Error("sound.url or sound.source must be set")):console.error("sound.url or sound.source must be set");}async _loadUrl(t){let e=this.parent.url,r=await ft.get().fetch(e);this._decode(await r.arrayBuffer(),t);}_decode(t,e){let r=(s,o)=>{if(s)e&&e(s);else {this.parent.isLoaded=true,this.buffer=o;let n=this.parent.autoPlayStart();e&&e(null,this.parent,n);}};t instanceof AudioBuffer?r(null,t):this.parent.context.decode(t,r);}};var ui=class{static from(i){let t={};typeof i=="string"?t.url=i:i instanceof ArrayBuffer||i instanceof AudioBuffer||i instanceof HTMLAudioElement?t.source=i:Array.isArray(i)?t.url=i:t=i,t={autoPlay:false,singleInstance:false,url:null,source:null,preload:false,volume:1,speed:1,complete:null,loaded:null,loop:false,...t},Object.freeze(t);let e=rt().useLegacy?new As:new Ar;return new ui(e,t)}constructor(i,t){this.media=i,this.options=t,this._instances=[],this._sprites={},this.media.init(this);let e=t.complete;this._autoPlayOptions=e?{complete:e}:null,this.isLoaded=false,this._preloadQueue=null,this.isPlaying=false,this.autoPlay=t.autoPlay,this.singleInstance=t.singleInstance,this.preload=t.preload||this.autoPlay,this.url=Array.isArray(t.url)?this.preferUrl(t.url):t.url,this.speed=t.speed,this.volume=t.volume,this.loop=t.loop,t.sprites&&this.addSprites(t.sprites),this.preload&&this._preload(t.loaded);}preferUrl(i){let[t]=i.map(e=>({url:e,ext:$t.extname(e).slice(1)})).filter(({ext:e})=>Mr[e]).sort((e,r)=>Pr.indexOf(e.ext)-Pr.indexOf(r.ext));if(!t)throw new Error("No supported file type found");return t.url}get context(){return rt().context}pause(){return this.isPlaying=false,this.paused=true,this}resume(){return this.isPlaying=this._instances.length>0,this.paused=false,this}get paused(){return this._paused}set paused(i){this._paused=i,this.refreshPaused();}get speed(){return this._speed}set speed(i){this._speed=i,this.refresh();}get filters(){return this.media.filters}set filters(i){this.media.filters=i;}addSprites(i,t){if(typeof i=="object"){let r={};for(let s in i)r[s]=this.addSprites(s,i[s]);return r}console.assert(!this._sprites[i],`Alias ${i} is already taken`);let e=new Es(this,t);return this._sprites[i]=e,e}destroy(){this._removeInstances(),this.removeSprites(),this.media.destroy(),this.media=null,this._sprites=null,this._instances=null;}removeSprites(i){if(i){let t=this._sprites[i];t!==void 0&&(t.destroy(),delete this._sprites[i]);}else for(let t in this._sprites)this.removeSprites(t);return this}get isPlayable(){return this.isLoaded&&this.media&&this.media.isPlayable}stop(){if(!this.isPlayable)return this.autoPlay=false,this._autoPlayOptions=null,this;this.isPlaying=false;for(let i=this._instances.length-1;i>=0;i--)this._instances[i].stop();return this}play(i,t){let e;if(typeof i=="string"?e={sprite:i,loop:this.loop,complete:t}:typeof i=="function"?(e={},e.complete=i):e=i,e={complete:null,loaded:null,sprite:null,end:null,start:0,volume:1,speed:1,muted:false,loop:false,...e||{}},e.sprite){let s=e.sprite;console.assert(!!this._sprites[s],`Alias ${s} is not available`);let o=this._sprites[s];e.start=o.start+(e.start||0),e.end=o.end,e.speed=o.speed||1,e.loop=o.loop||e.loop,delete e.sprite;}if(e.offset&&(e.start=e.offset),!this.isLoaded)return this._preloadQueue?new Promise(s=>{this._preloadQueue.push(()=>{s(this.play(e));});}):(this._preloadQueue=[],this.autoPlay=true,this._autoPlayOptions=e,new Promise((s,o)=>{this._preload((n,a,h)=>{this._preloadQueue.forEach(l=>l()),this._preloadQueue=null,n?o(n):(e.loaded&&e.loaded(n,a,h),s(h));});}));(this.singleInstance||e.singleInstance)&&this._removeInstances();let r=this._createInstance();return this._instances.push(r),this.isPlaying=true,r.once("end",()=>{e.complete&&e.complete(this),this._onComplete(r);}),r.once("stop",()=>{this._onComplete(r);}),r.play(e),r}refresh(){let i=this._instances.length;for(let t=0;t<i;t++)this._instances[t].refresh();}refreshPaused(){let i=this._instances.length;for(let t=0;t<i;t++)this._instances[t].refreshPaused();}get volume(){return this._volume}set volume(i){this._volume=i,this.refresh();}get muted(){return this._muted}set muted(i){this._muted=i,this.refresh();}get loop(){return this._loop}set loop(i){this._loop=i,this.refresh();}_preload(i){this.media.load(i);}get instances(){return this._instances}get sprites(){return this._sprites}get duration(){return this.media.duration}autoPlayStart(){let i;return this.autoPlay&&(i=this.play(this._autoPlayOptions)),i}_removeInstances(){for(let i=this._instances.length-1;i>=0;i--)this._poolInstance(this._instances[i]);this._instances.length=0;}_onComplete(i){if(this._instances){let t=this._instances.indexOf(i);t>-1&&this._instances.splice(t,1),this.isPlaying=this._instances.length>0;}this._poolInstance(i);}_createInstance(){if(ui._pool.length>0){let i=ui._pool.pop();return i.init(this.media),i}return this.media.create()}_poolInstance(i){i.destroy(),ui._pool.indexOf(i)<0&&ui._pool.push(i);}},Qe=ui;Qe._pool=[];var di=class i extends Cr{constructor(){let t=window,e=new i.AudioContext,r=e.createDynamicsCompressor(),s=e.createAnalyser();s.connect(r),r.connect(e.destination),super(s,r),this.autoPause=true,this._ctx=e,this._offlineCtx=new i.OfflineAudioContext(1,2,t.OfflineAudioContext?Math.max(8e3,Math.min(96e3,e.sampleRate)):44100),this.compressor=r,this.analyser=s,this.events=new Z,this.volume=1,this.speed=1,this.muted=false,this.paused=false,this._locked=e.state==="suspended"&&("ontouchstart"in globalThis||"onclick"in globalThis),this._locked&&(this._unlock(),this._unlock=this._unlock.bind(this),document.addEventListener("mousedown",this._unlock,true),document.addEventListener("touchstart",this._unlock,true),document.addEventListener("touchend",this._unlock,true)),this.onFocus=this.onFocus.bind(this),this.onBlur=this.onBlur.bind(this),globalThis.addEventListener("focus",this.onFocus),globalThis.addEventListener("blur",this.onBlur);}onFocus(){if(!this.autoPause)return;let t=this._ctx.state;(t==="suspended"||t==="interrupted"||!this._locked)&&(this.paused=this._pausedOnBlur,this.refreshPaused());}onBlur(){this.autoPause&&(this._locked||(this._pausedOnBlur=this._paused,this.paused=true,this.refreshPaused()));}_unlock(){this._locked&&(this.playEmptySound(),this._ctx.state==="running"&&(document.removeEventListener("mousedown",this._unlock,true),document.removeEventListener("touchend",this._unlock,true),document.removeEventListener("touchstart",this._unlock,true),this._locked=false));}playEmptySound(){let t=this._ctx.createBufferSource();t.buffer=this._ctx.createBuffer(1,1,22050),t.connect(this._ctx.destination),t.start(0,0,0),t.context.state==="suspended"&&t.context.resume();}static get AudioContext(){let t=window;return t.AudioContext||t.webkitAudioContext||null}static get OfflineAudioContext(){let t=window;return t.OfflineAudioContext||t.webkitOfflineAudioContext||null}destroy(){super.destroy();let t=this._ctx;typeof t.close<"u"&&t.close(),globalThis.removeEventListener("focus",this.onFocus),globalThis.removeEventListener("blur",this.onBlur),this.events.removeAllListeners(),this.analyser.disconnect(),this.compressor.disconnect(),this.analyser=null,this.compressor=null,this.events=null,this._offlineCtx=null,this._ctx=null;}get audioContext(){return this._ctx}get offlineContext(){return this._offlineCtx}set paused(t){t&&this._ctx.state==="running"?this._ctx.suspend():!t&&this._ctx.state==="suspended"&&this._ctx.resume(),this._paused=t;}get paused(){return this._paused}refresh(){this.events.emit("refresh");}refreshPaused(){this.events.emit("refreshPaused");}toggleMute(){return this.muted=!this.muted,this.refresh(),this.muted}togglePause(){return this.paused=!this.paused,this.refreshPaused(),this._paused}decode(t,e){let r=o=>{e(new Error(o?.message||"Unable to decode file"));},s=this._offlineCtx.decodeAudioData(t,o=>{e(null,o);},r);s&&s.catch(r);}};var Bn=class{constructor(){this.init();}init(){return this.supported&&(this._webAudioContext=new di),this._htmlAudioContext=new Cs,this._sounds={},this.useLegacy=!this.supported,this}get context(){return this._context}get filtersAll(){return this.useLegacy?[]:this._context.filters}set filtersAll(t){this.useLegacy||(this._context.filters=t);}get supported(){return di.AudioContext!==null}add(t,e){if(typeof t=="object"){let o={};for(let n in t){let a=this._getOptions(t[n],e);o[n]=this.add(n,a);}return o}if(console.assert(!this._sounds[t],`Sound with alias ${t} already exists.`),e instanceof Qe)return this._sounds[t]=e,e;let r=this._getOptions(e),s=Qe.from(r);return this._sounds[t]=s,s}_getOptions(t,e){let r;return typeof t=="string"?r={url:t}:Array.isArray(t)?r={url:t}:t instanceof ArrayBuffer||t instanceof AudioBuffer||t instanceof HTMLAudioElement?r={source:t}:r=t,r={...r,...e||{}},r}get useLegacy(){return this._useLegacy}set useLegacy(t){this._useLegacy=t,this._context=!t&&this.supported?this._webAudioContext:this._htmlAudioContext;}get disableAutoPause(){return !this._webAudioContext.autoPause}set disableAutoPause(t){this._webAudioContext.autoPause=!t;}remove(t){return this.exists(t,true),this._sounds[t].destroy(),delete this._sounds[t],this}get volumeAll(){return this._context.volume}set volumeAll(t){this._context.volume=t,this._context.refresh();}get speedAll(){return this._context.speed}set speedAll(t){this._context.speed=t,this._context.refresh();}togglePauseAll(){return this._context.togglePause()}pauseAll(){return this._context.paused=true,this._context.refreshPaused(),this}resumeAll(){return this._context.paused=false,this._context.refreshPaused(),this}toggleMuteAll(){return this._context.toggleMute()}muteAll(){return this._context.muted=true,this._context.refresh(),this}unmuteAll(){return this._context.muted=false,this._context.refresh(),this}removeAll(){for(let t in this._sounds)this._sounds[t].destroy(),delete this._sounds[t];return this}stopAll(){for(let t in this._sounds)this._sounds[t].stop();return this}exists(t,e=false){let r=!!this._sounds[t];return e&&console.assert(r,`No sound matching alias '${t}'.`),r}isPlaying(){for(let t in this._sounds)if(this._sounds[t].isPlaying)return true;return false}find(t){return this.exists(t,true),this._sounds[t]}play(t,e){return this.find(t).play(e)}stop(t){return this.find(t).stop()}pause(t){return this.find(t).pause()}resume(t){return this.find(t).resume()}volume(t,e){let r=this.find(t);return e!==void 0&&(r.volume=e),r.volume}speed(t,e){let r=this.find(t);return e!==void 0&&(r.speed=e),r.speed}duration(t){return this.find(t).duration}close(){return this.removeAll(),this._sounds=null,this._webAudioContext&&(this._webAudioContext.destroy(),this._webAudioContext=null),this._htmlAudioContext&&(this._htmlAudioContext.destroy(),this._htmlAudioContext=null),this._context=null,this}};var hx=i=>{let t=i.src,e=i?.alias?.[0];return (!e||i.src===e)&&(e=$t.basename(t,$t.extname(t))),e},lx={extension:P.Asset,detection:{test:async()=>true,add:async i=>[...i,...Pr.filter(t=>Mr[t])],remove:async i=>i.filter(t=>i.includes(t))},loader:{name:"sound",extension:{type:[P.LoadParser],priority:zr.High},test(i){let t=$t.extname(i).slice(1);return !!Mr[t]||wl.some(e=>i.startsWith(`data:${e}`))},async load(i,t){let e=await new Promise((r,s)=>Qe.from({...t.data,url:i,preload:true,loaded(o,n){o?s(o):r(n),t.data?.loaded?.(o,n);}}));return rt().add(hx(t),e),e},async unload(i,t){rt().remove(hx(t));}}};O.add(lx);zl(new Bn);({DistortionFilter:be.DistortionFilter,EqualizerFilter:be.EqualizerFilter,MonoFilter:be.MonoFilter,ReverbFilter:be.ReverbFilter,StereoFilter:be.StereoFilter,StreamFilter:be.StreamFilter,TelephoneFilter:be.TelephoneFilter});var cx={CHARACTER_CATEGORY_KEY:"___character___"};var at;(s=>(s.log=(o,...n)=>console.log(`[Pixi\u2019VN] ${o}`,...n),s.warn=(o,...n)=>console.warn(`[Pixi\u2019VN] ${o}`,...n),s.error=(o,...n)=>console.error(`[Pixi\u2019VN] ${o}`,...n),s.info=(o,...n)=>console.info(`[Pixi\u2019VN] ${o}`,...n)))(at||(at={}));var z=class z{static init(t){z._getStepCounter=t.getStepCounter,z._setStepCounter=t.setStepCounter,z._getCurrentGameStepState=t.getCurrentGameStepState,z._restoreGameStepState=t.restoreGameStepState,z._getOpenedLabels=t.getOpenedLabels,t.onGoNextEnd&&(z._onGoNextEnd=t.onGoNextEnd),z._getVariable=t.getVariable,z._setVariable=t.setVariable,z._removeVariable=t.removeVariable,z._getFlag=t.getFlag,z._setFlag=t.setFlag,t.onLabelClosing&&(z._onLabelClosing=t.onLabelClosing),z._addHistoryItem=t.addHistoryItem,z._getCurrentStepsRunningNumber=t.getCurrentStepsRunningNumber,z._getCharacter=t.getCharacter;}static get stepCounter(){return z._getStepCounter()}static set stepCounter(t){z._setStepCounter(t);}static get currentGameStepState(){return z._getCurrentGameStepState()}static get restoreGameStepState(){return z._restoreGameStepState}static get openedLabels(){return z._getOpenedLabels()}static get onGoNextEnd(){return z._onGoNextEnd}static get getVariable(){return z._getVariable}static get setVariable(){return z._setVariable}static get removeVariable(){return z._removeVariable}static get getFlag(){return z._getFlag}static get setFlag(){return z._setFlag}static get onLabelClosing(){return z._onLabelClosing}static get addHistoryItem(){return z._addHistoryItem}static get currentStepsRunningNumber(){return z._getCurrentStepsRunningNumber()}static get getCharacter(){return z._getCharacter}};G(z,"_getStepCounter",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_setStepCounter",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_getCurrentGameStepState",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_restoreGameStepState",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_getOpenedLabels",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_onGoNextEnd",async()=>{}),G(z,"_getVariable",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_setVariable",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_removeVariable",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_getFlag",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_setFlag",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_onLabelClosing",()=>{}),G(z,"_addHistoryItem",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_getCurrentStepsRunningNumber",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented, you should initialize the Game: Game.init()")}),G(z,"_getCharacter",()=>{throw at.error("Method not implemented, you should initialize the Game: Game.init()"),new Error("Method not implemented.")}),G(z,"onEnd"),G(z,"onError");function kn(i){try{if(typeof i>"u")return i;let t=JSON.stringify(i);return JSON.parse(t)}catch(t){throw at.error("Error creating exportable element",i,t),new Error("[Pixi\u2019VN] Error creating exportable element")}}var fi=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,px=new Set,Pl=typeof process=="object"&&process?process:{},mx=(i,t,e,r)=>{typeof Pl.emitWarning=="function"?Pl.emitWarning(i,t,e,r):console.error(`[${e}] ${t}: ${i}`);},In=globalThis.AbortController,ux=globalThis.AbortSignal;if(typeof In>"u"){ux=class{constructor(){G(this,"onabort");G(this,"_onabort",[]);G(this,"reason");G(this,"aborted",false);}addEventListener(r,s){this._onabort.push(s);}},In=class{constructor(){G(this,"signal",new ux);t();}abort(r){if(!this.signal.aborted){this.signal.reason=r,this.signal.aborted=true;for(let s of this.signal._onabort)s(r);this.signal.onabort?.(r);}}};let i=Pl.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",t=()=>{i&&(i=false,mx("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",t));};}var Xy=i=>!px.has(i),Je=i=>i&&i===Math.floor(i)&&i>0&&isFinite(i),gx=i=>Je(i)?i<=Math.pow(2,8)?Uint8Array:i<=Math.pow(2,16)?Uint16Array:i<=Math.pow(2,32)?Uint32Array:i<=Number.MAX_SAFE_INTEGER?pi:null:null,pi=class extends Array{constructor(t){super(t),this.fill(0);}},mi,Er=class Er{constructor(t,e){G(this,"heap");G(this,"length");if(!g(Er,mi))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new e(t),this.length=0;}static create(t){let e=gx(t);if(!e)return [];U(Er,mi,true);let r=new Er(t,e);return U(Er,mi,false),r}push(t){this.heap[this.length++]=t;}pop(){return this.heap[--this.length]}};mi=new WeakMap,q(Er,mi,false);var Ml=Er,dx,fx,de,Qt,fe,Fr,pe,gi,xi,Pt,me,yt,lt,H,Wt,Jt,Dt,At,ge,Et,xe,_e,te,ye,ir,Vt,_i,C,Cl,Br,We,Gs,ee,xx,kr,yi,Rs,tr,er,Al,Gn,Rn,ht,El,ks,rr,Fl,Bl=class Bl{constructor(t){q(this,C);q(this,de);q(this,Qt);q(this,fe);q(this,Fr);q(this,pe);q(this,gi);q(this,xi);G(this,"ttl");G(this,"ttlResolution");G(this,"ttlAutopurge");G(this,"updateAgeOnGet");G(this,"updateAgeOnHas");G(this,"allowStale");G(this,"noDisposeOnSet");G(this,"noUpdateTTL");G(this,"maxEntrySize");G(this,"sizeCalculation");G(this,"noDeleteOnFetchRejection");G(this,"noDeleteOnStaleGet");G(this,"allowStaleOnFetchAbort");G(this,"allowStaleOnFetchRejection");G(this,"ignoreFetchAbort");q(this,Pt);q(this,me);q(this,yt);q(this,lt);q(this,H);q(this,Wt);q(this,Jt);q(this,Dt);q(this,At);q(this,ge);q(this,Et);q(this,xe);q(this,_e);q(this,te);q(this,ye);q(this,ir);q(this,Vt);q(this,_i);q(this,Br,()=>{});q(this,We,()=>{});q(this,Gs,()=>{});q(this,ee,()=>false);q(this,kr,t=>{});q(this,yi,(t,e,r)=>{});q(this,Rs,(t,e,r,s)=>{if(r||s)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});G(this,dx,"LRUCache");let{max:e=0,ttl:r,ttlResolution:s=1,ttlAutopurge:o,updateAgeOnGet:n,updateAgeOnHas:a,allowStale:h,dispose:l,onInsert:c,disposeAfter:u,noDisposeOnSet:f,noUpdateTTL:d,maxSize:x=0,maxEntrySize:y=0,sizeCalculation:m,fetchMethod:_,memoMethod:b,noDeleteOnFetchRejection:v,noDeleteOnStaleGet:S,allowStaleOnFetchRejection:M,allowStaleOnFetchAbort:T,ignoreFetchAbort:w}=t;if(e!==0&&!Je(e))throw new TypeError("max option must be a nonnegative integer");let W=e?gx(e):Array;if(!W)throw new Error("invalid max value: "+e);if(U(this,de,e),U(this,Qt,x),this.maxEntrySize=y||g(this,Qt),this.sizeCalculation=m,this.sizeCalculation){if(!g(this,Qt)&&!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(b!==void 0&&typeof b!="function")throw new TypeError("memoMethod must be a function if defined");if(U(this,xi,b),_!==void 0&&typeof _!="function")throw new TypeError("fetchMethod must be a function if specified");if(U(this,gi,_),U(this,ir,!!_),U(this,yt,new Map),U(this,lt,new Array(e).fill(void 0)),U(this,H,new Array(e).fill(void 0)),U(this,Wt,new W(e)),U(this,Jt,new W(e)),U(this,Dt,0),U(this,At,0),U(this,ge,Ml.create(e)),U(this,Pt,0),U(this,me,0),typeof l=="function"&&U(this,fe,l),typeof c=="function"&&U(this,Fr,c),typeof u=="function"?(U(this,pe,u),U(this,Et,[])):(U(this,pe,void 0),U(this,Et,void 0)),U(this,ye,!!g(this,fe)),U(this,_i,!!g(this,Fr)),U(this,Vt,!!g(this,pe)),this.noDisposeOnSet=!!f,this.noUpdateTTL=!!d,this.noDeleteOnFetchRejection=!!v,this.allowStaleOnFetchRejection=!!M,this.allowStaleOnFetchAbort=!!T,this.ignoreFetchAbort=!!w,this.maxEntrySize!==0){if(g(this,Qt)!==0&&!Je(g(this,Qt)))throw new TypeError("maxSize must be a positive integer if specified");if(!Je(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");k(this,C,xx).call(this);}if(this.allowStale=!!h,this.noDeleteOnStaleGet=!!S,this.updateAgeOnGet=!!n,this.updateAgeOnHas=!!a,this.ttlResolution=Je(s)||s===0?s:1,this.ttlAutopurge=!!o,this.ttl=r||0,this.ttl){if(!Je(this.ttl))throw new TypeError("ttl must be a positive integer if specified");k(this,C,Cl).call(this);}if(g(this,de)===0&&this.ttl===0&&g(this,Qt)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!g(this,de)&&!g(this,Qt)){let A="LRU_CACHE_UNBOUNDED";Xy(A)&&(px.add(A),mx("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",A,Bl));}}static unsafeExposeInternals(t){return {starts:g(t,_e),ttls:g(t,te),sizes:g(t,xe),keyMap:g(t,yt),keyList:g(t,lt),valList:g(t,H),next:g(t,Wt),prev:g(t,Jt),get head(){return g(t,Dt)},get tail(){return g(t,At)},free:g(t,ge),isBackgroundFetch:e=>{var r;return k(r=t,C,ht).call(r,e)},backgroundFetch:(e,r,s,o)=>{var n;return k(n=t,C,Rn).call(n,e,r,s,o)},moveToTail:e=>{var r;return k(r=t,C,ks).call(r,e)},indexes:e=>{var r;return k(r=t,C,tr).call(r,e)},rindexes:e=>{var r;return k(r=t,C,er).call(r,e)},isStale:e=>{var r;return g(r=t,ee).call(r,e)}}}get max(){return g(this,de)}get maxSize(){return g(this,Qt)}get calculatedSize(){return g(this,me)}get size(){return g(this,Pt)}get fetchMethod(){return g(this,gi)}get memoMethod(){return g(this,xi)}get dispose(){return g(this,fe)}get onInsert(){return g(this,Fr)}get disposeAfter(){return g(this,pe)}getRemainingTTL(t){return g(this,yt).has(t)?1/0:0}*entries(){for(let t of k(this,C,tr).call(this))g(this,H)[t]!==void 0&&g(this,lt)[t]!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield [g(this,lt)[t],g(this,H)[t]]);}*rentries(){for(let t of k(this,C,er).call(this))g(this,H)[t]!==void 0&&g(this,lt)[t]!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield [g(this,lt)[t],g(this,H)[t]]);}*keys(){for(let t of k(this,C,tr).call(this)){let e=g(this,lt)[t];e!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield e);}}*rkeys(){for(let t of k(this,C,er).call(this)){let e=g(this,lt)[t];e!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield e);}}*values(){for(let t of k(this,C,tr).call(this))g(this,H)[t]!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield g(this,H)[t]);}*rvalues(){for(let t of k(this,C,er).call(this))g(this,H)[t]!==void 0&&!k(this,C,ht).call(this,g(this,H)[t])&&(yield g(this,H)[t]);}[(fx=Symbol.iterator,dx=Symbol.toStringTag,fx)](){return this.entries()}find(t,e={}){for(let r of k(this,C,tr).call(this)){let s=g(this,H)[r],o=k(this,C,ht).call(this,s)?s.__staleWhileFetching:s;if(o!==void 0&&t(o,g(this,lt)[r],this))return this.get(g(this,lt)[r],e)}}forEach(t,e=this){for(let r of k(this,C,tr).call(this)){let s=g(this,H)[r],o=k(this,C,ht).call(this,s)?s.__staleWhileFetching:s;o!==void 0&&t.call(e,o,g(this,lt)[r],this);}}rforEach(t,e=this){for(let r of k(this,C,er).call(this)){let s=g(this,H)[r],o=k(this,C,ht).call(this,s)?s.__staleWhileFetching:s;o!==void 0&&t.call(e,o,g(this,lt)[r],this);}}purgeStale(){let t=false;for(let e of k(this,C,er).call(this,{allowStale:true}))g(this,ee).call(this,e)&&(k(this,C,rr).call(this,g(this,lt)[e],"expire"),t=true);return t}info(t){let e=g(this,yt).get(t);if(e===void 0)return;let r=g(this,H)[e],s=k(this,C,ht).call(this,r)?r.__staleWhileFetching:r;if(s===void 0)return;let o={value:s};if(g(this,te)&&g(this,_e)){let n=g(this,te)[e],a=g(this,_e)[e];if(n&&a){let h=n-(fi.now()-a);o.ttl=h,o.start=Date.now();}}return g(this,xe)&&(o.size=g(this,xe)[e]),o}dump(){let t=[];for(let e of k(this,C,tr).call(this,{allowStale:true})){let r=g(this,lt)[e],s=g(this,H)[e],o=k(this,C,ht).call(this,s)?s.__staleWhileFetching:s;if(o===void 0||r===void 0)continue;let n={value:o};if(g(this,te)&&g(this,_e)){n.ttl=g(this,te)[e];let a=fi.now()-g(this,_e)[e];n.start=Math.floor(Date.now()-a);}g(this,xe)&&(n.size=g(this,xe)[e]),t.unshift([r,n]);}return t}load(t){this.clear();for(let[e,r]of t){if(r.start){let s=Date.now()-r.start;r.start=fi.now()-s;}this.set(e,r.value,r);}}set(t,e,r={}){var f,d,x,y;if(e===void 0)return this.delete(t),this;let{ttl:s=this.ttl,start:o,noDisposeOnSet:n=this.noDisposeOnSet,sizeCalculation:a=this.sizeCalculation,status:h}=r,{noUpdateTTL:l=this.noUpdateTTL}=r,c=g(this,Rs).call(this,t,e,r.size||0,a);if(this.maxEntrySize&&c>this.maxEntrySize)return h&&(h.set="miss",h.maxEntrySizeExceeded=true),k(this,C,rr).call(this,t,"set"),this;let u=g(this,Pt)===0?void 0:g(this,yt).get(t);if(u===void 0)u=g(this,Pt)===0?g(this,At):g(this,ge).length!==0?g(this,ge).pop():g(this,Pt)===g(this,de)?k(this,C,Gn).call(this,false):g(this,Pt),g(this,lt)[u]=t,g(this,H)[u]=e,g(this,yt).set(t,u),g(this,Wt)[g(this,At)]=u,g(this,Jt)[u]=g(this,At),U(this,At,u),Ws(this,Pt)._++,g(this,yi).call(this,u,c,h),h&&(h.set="add"),l=false,g(this,_i)&&((f=g(this,Fr))==null||f.call(this,e,t,"add"));else {k(this,C,ks).call(this,u);let m=g(this,H)[u];if(e!==m){if(g(this,ir)&&k(this,C,ht).call(this,m)){m.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:_}=m;_!==void 0&&!n&&(g(this,ye)&&((d=g(this,fe))==null||d.call(this,_,t,"set")),g(this,Vt)&&g(this,Et)?.push([_,t,"set"]));}else n||(g(this,ye)&&((x=g(this,fe))==null||x.call(this,m,t,"set")),g(this,Vt)&&g(this,Et)?.push([m,t,"set"]));if(g(this,kr).call(this,u),g(this,yi).call(this,u,c,h),g(this,H)[u]=e,h){h.set="replace";let _=m&&k(this,C,ht).call(this,m)?m.__staleWhileFetching:m;_!==void 0&&(h.oldValue=_);}}else h&&(h.set="update");g(this,_i)&&this.onInsert?.(e,t,e===m?"update":"replace");}if(s!==0&&!g(this,te)&&k(this,C,Cl).call(this),g(this,te)&&(l||g(this,Gs).call(this,u,s,o),h&&g(this,We).call(this,h,u)),!n&&g(this,Vt)&&g(this,Et)){let m=g(this,Et),_;for(;_=m?.shift();)(y=g(this,pe))==null||y.call(this,..._);}return this}pop(){var t;try{for(;g(this,Pt);){let e=g(this,H)[g(this,Dt)];if(k(this,C,Gn).call(this,!0),k(this,C,ht).call(this,e)){if(e.__staleWhileFetching)return e.__staleWhileFetching}else if(e!==void 0)return e}}finally{if(g(this,Vt)&&g(this,Et)){let e=g(this,Et),r;for(;r=e?.shift();)(t=g(this,pe))==null||t.call(this,...r);}}}has(t,e={}){let{updateAgeOnHas:r=this.updateAgeOnHas,status:s}=e,o=g(this,yt).get(t);if(o!==void 0){let n=g(this,H)[o];if(k(this,C,ht).call(this,n)&&n.__staleWhileFetching===void 0)return false;if(g(this,ee).call(this,o))s&&(s.has="stale",g(this,We).call(this,s,o));else return r&&g(this,Br).call(this,o),s&&(s.has="hit",g(this,We).call(this,s,o)),true}else s&&(s.has="miss");return false}peek(t,e={}){let{allowStale:r=this.allowStale}=e,s=g(this,yt).get(t);if(s===void 0||!r&&g(this,ee).call(this,s))return;let o=g(this,H)[s];return k(this,C,ht).call(this,o)?o.__staleWhileFetching:o}async fetch(t,e={}){let{allowStale:r=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,ttl:n=this.ttl,noDisposeOnSet:a=this.noDisposeOnSet,size:h=0,sizeCalculation:l=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:u=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:f=this.allowStaleOnFetchRejection,ignoreFetchAbort:d=this.ignoreFetchAbort,allowStaleOnFetchAbort:x=this.allowStaleOnFetchAbort,context:y,forceRefresh:m=false,status:_,signal:b}=e;if(!g(this,ir))return _&&(_.fetch="get"),this.get(t,{allowStale:r,updateAgeOnGet:s,noDeleteOnStaleGet:o,status:_});let v={allowStale:r,updateAgeOnGet:s,noDeleteOnStaleGet:o,ttl:n,noDisposeOnSet:a,size:h,sizeCalculation:l,noUpdateTTL:c,noDeleteOnFetchRejection:u,allowStaleOnFetchRejection:f,allowStaleOnFetchAbort:x,ignoreFetchAbort:d,status:_,signal:b},S=g(this,yt).get(t);if(S===void 0){_&&(_.fetch="miss");let M=k(this,C,Rn).call(this,t,S,v,y);return M.__returned=M}else {let M=g(this,H)[S];if(k(this,C,ht).call(this,M)){let E=r&&M.__staleWhileFetching!==void 0;return _&&(_.fetch="inflight",E&&(_.returnedStale=true)),E?M.__staleWhileFetching:M.__returned=M}let T=g(this,ee).call(this,S);if(!m&&!T)return _&&(_.fetch="hit"),k(this,C,ks).call(this,S),s&&g(this,Br).call(this,S),_&&g(this,We).call(this,_,S),M;let w=k(this,C,Rn).call(this,t,S,v,y),A=w.__staleWhileFetching!==void 0&&r;return _&&(_.fetch=T?"stale":"refresh",A&&T&&(_.returnedStale=true)),A?w.__staleWhileFetching:w.__returned=w}}async forceFetch(t,e={}){let r=await this.fetch(t,e);if(r===void 0)throw new Error("fetch() returned undefined");return r}memo(t,e={}){let r=g(this,xi);if(!r)throw new Error("no memoMethod provided to constructor");let{context:s,forceRefresh:o,...n}=e,a=this.get(t,n);if(!o&&a!==void 0)return a;let h=r(t,a,{options:n,context:s});return this.set(t,h,n),h}get(t,e={}){let{allowStale:r=this.allowStale,updateAgeOnGet:s=this.updateAgeOnGet,noDeleteOnStaleGet:o=this.noDeleteOnStaleGet,status:n}=e,a=g(this,yt).get(t);if(a!==void 0){let h=g(this,H)[a],l=k(this,C,ht).call(this,h);return n&&g(this,We).call(this,n,a),g(this,ee).call(this,a)?(n&&(n.get="stale"),l?(n&&r&&h.__staleWhileFetching!==void 0&&(n.returnedStale=true),r?h.__staleWhileFetching:void 0):(o||k(this,C,rr).call(this,t,"expire"),n&&r&&(n.returnedStale=true),r?h:void 0)):(n&&(n.get="hit"),l?h.__staleWhileFetching:(k(this,C,ks).call(this,a),s&&g(this,Br).call(this,a),h))}else n&&(n.get="miss");}delete(t){return k(this,C,rr).call(this,t,"delete")}clear(){return k(this,C,Fl).call(this,"delete")}};de=new WeakMap,Qt=new WeakMap,fe=new WeakMap,Fr=new WeakMap,pe=new WeakMap,gi=new WeakMap,xi=new WeakMap,Pt=new WeakMap,me=new WeakMap,yt=new WeakMap,lt=new WeakMap,H=new WeakMap,Wt=new WeakMap,Jt=new WeakMap,Dt=new WeakMap,At=new WeakMap,ge=new WeakMap,Et=new WeakMap,xe=new WeakMap,_e=new WeakMap,te=new WeakMap,ye=new WeakMap,ir=new WeakMap,Vt=new WeakMap,_i=new WeakMap,C=new WeakSet,Cl=function(){let t=new pi(g(this,de)),e=new pi(g(this,de));U(this,te,t),U(this,_e,e),U(this,Gs,(o,n,a=fi.now())=>{if(e[o]=n!==0?a:0,t[o]=n,n!==0&&this.ttlAutopurge){let h=setTimeout(()=>{g(this,ee).call(this,o)&&k(this,C,rr).call(this,g(this,lt)[o],"expire");},n+1);h.unref&&h.unref();}}),U(this,Br,o=>{e[o]=t[o]!==0?fi.now():0;}),U(this,We,(o,n)=>{if(t[n]){let a=t[n],h=e[n];if(!a||!h)return;o.ttl=a,o.start=h,o.now=r||s();let l=o.now-h;o.remainingTTL=a-l;}});let r=0,s=()=>{let o=fi.now();if(this.ttlResolution>0){r=o;let n=setTimeout(()=>r=0,this.ttlResolution);n.unref&&n.unref();}return o};this.getRemainingTTL=o=>{let n=g(this,yt).get(o);if(n===void 0)return 0;let a=t[n],h=e[n];if(!a||!h)return 1/0;let l=(r||s())-h;return a-l},U(this,ee,o=>{let n=e[o],a=t[o];return !!a&&!!n&&(r||s())-n>a});},Br=new WeakMap,We=new WeakMap,Gs=new WeakMap,ee=new WeakMap,xx=function(){let t=new pi(g(this,de));U(this,me,0),U(this,xe,t),U(this,kr,e=>{U(this,me,g(this,me)-t[e]),t[e]=0;}),U(this,Rs,(e,r,s,o)=>{if(k(this,C,ht).call(this,r))return 0;if(!Je(s))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(s=o(r,e),!Je(s))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 s}),U(this,yi,(e,r,s)=>{if(t[e]=r,g(this,Qt)){let o=g(this,Qt)-t[e];for(;g(this,me)>o;)k(this,C,Gn).call(this,true);}U(this,me,g(this,me)+t[e]),s&&(s.entrySize=r,s.totalCalculatedSize=g(this,me));});},kr=new WeakMap,yi=new WeakMap,Rs=new WeakMap,tr=function*({allowStale:t=this.allowStale}={}){if(g(this,Pt))for(let e=g(this,At);!(!k(this,C,Al).call(this,e)||((t||!g(this,ee).call(this,e))&&(yield e),e===g(this,Dt)));)e=g(this,Jt)[e];},er=function*({allowStale:t=this.allowStale}={}){if(g(this,Pt))for(let e=g(this,Dt);!(!k(this,C,Al).call(this,e)||((t||!g(this,ee).call(this,e))&&(yield e),e===g(this,At)));)e=g(this,Wt)[e];},Al=function(t){return t!==void 0&&g(this,yt).get(g(this,lt)[t])===t},Gn=function(t){var o;let e=g(this,Dt),r=g(this,lt)[e],s=g(this,H)[e];return g(this,ir)&&k(this,C,ht).call(this,s)?s.__abortController.abort(new Error("evicted")):(g(this,ye)||g(this,Vt))&&(g(this,ye)&&((o=g(this,fe))==null||o.call(this,s,r,"evict")),g(this,Vt)&&g(this,Et)?.push([s,r,"evict"])),g(this,kr).call(this,e),t&&(g(this,lt)[e]=void 0,g(this,H)[e]=void 0,g(this,ge).push(e)),g(this,Pt)===1?(U(this,Dt,U(this,At,0)),g(this,ge).length=0):U(this,Dt,g(this,Wt)[e]),g(this,yt).delete(r),Ws(this,Pt)._--,e},Rn=function(t,e,r,s){let o=e===void 0?void 0:g(this,H)[e];if(k(this,C,ht).call(this,o))return o;let n=new In,{signal:a}=r;a?.addEventListener("abort",()=>n.abort(a.reason),{signal:n.signal});let h={signal:n.signal,options:r,context:s},l=(y,m=false)=>{let{aborted:_}=n.signal,b=r.ignoreFetchAbort&&y!==void 0;if(r.status&&(_&&!m?(r.status.fetchAborted=true,r.status.fetchError=n.signal.reason,b&&(r.status.fetchAbortIgnored=true)):r.status.fetchResolved=true),_&&!b&&!m)return u(n.signal.reason);let v=d;return g(this,H)[e]===d&&(y===void 0?v.__staleWhileFetching?g(this,H)[e]=v.__staleWhileFetching:k(this,C,rr).call(this,t,"fetch"):(r.status&&(r.status.fetchUpdated=true),this.set(t,y,h.options))),y},c=y=>(r.status&&(r.status.fetchRejected=true,r.status.fetchError=y),u(y)),u=y=>{let{aborted:m}=n.signal,_=m&&r.allowStaleOnFetchAbort,b=_||r.allowStaleOnFetchRejection,v=b||r.noDeleteOnFetchRejection,S=d;if(g(this,H)[e]===d&&(!v||S.__staleWhileFetching===void 0?k(this,C,rr).call(this,t,"fetch"):_||(g(this,H)[e]=S.__staleWhileFetching)),b)return r.status&&S.__staleWhileFetching!==void 0&&(r.status.returnedStale=true),S.__staleWhileFetching;if(S.__returned===S)throw y},f=(y,m)=>{var b;let _=(b=g(this,gi))==null?void 0:b.call(this,t,o,h);_&&_ instanceof Promise&&_.then(v=>y(v===void 0?void 0:v),m),n.signal.addEventListener("abort",()=>{(!r.ignoreFetchAbort||r.allowStaleOnFetchAbort)&&(y(void 0),r.allowStaleOnFetchAbort&&(y=v=>l(v,true)));});};r.status&&(r.status.fetchDispatched=true);let d=new Promise(f).then(l,c),x=Object.assign(d,{__abortController:n,__staleWhileFetching:o,__returned:void 0});return e===void 0?(this.set(t,x,{...h.options,status:void 0}),e=g(this,yt).get(t)):g(this,H)[e]=x,x},ht=function(t){if(!g(this,ir))return false;let e=t;return !!e&&e instanceof Promise&&e.hasOwnProperty("__staleWhileFetching")&&e.__abortController instanceof In},El=function(t,e){g(this,Jt)[e]=t,g(this,Wt)[t]=e;},ks=function(t){t!==g(this,At)&&(t===g(this,Dt)?U(this,Dt,g(this,Wt)[t]):k(this,C,El).call(this,g(this,Jt)[t],g(this,Wt)[t]),k(this,C,El).call(this,g(this,At),t),U(this,At,t));},rr=function(t,e){var s,o;let r=false;if(g(this,Pt)!==0){let n=g(this,yt).get(t);if(n!==void 0)if(r=true,g(this,Pt)===1)k(this,C,Fl).call(this,e);else {g(this,kr).call(this,n);let a=g(this,H)[n];if(k(this,C,ht).call(this,a)?a.__abortController.abort(new Error("deleted")):(g(this,ye)||g(this,Vt))&&(g(this,ye)&&((s=g(this,fe))==null||s.call(this,a,t,e)),g(this,Vt)&&g(this,Et)?.push([a,t,e])),g(this,yt).delete(t),g(this,lt)[n]=void 0,g(this,H)[n]=void 0,n===g(this,At))U(this,At,g(this,Jt)[n]);else if(n===g(this,Dt))U(this,Dt,g(this,Wt)[n]);else {let h=g(this,Jt)[n];g(this,Wt)[h]=g(this,Wt)[n];let l=g(this,Wt)[n];g(this,Jt)[l]=g(this,Jt)[n];}Ws(this,Pt)._--,g(this,ge).push(n);}}if(g(this,Vt)&&g(this,Et)?.length){let n=g(this,Et),a;for(;a=n?.shift();)(o=g(this,pe))==null||o.call(this,...a);}return r},Fl=function(t){var e,r;for(let s of k(this,C,er).call(this,{allowStale:true})){let o=g(this,H)[s];if(k(this,C,ht).call(this,o))o.__abortController.abort(new Error("deleted"));else {let n=g(this,lt)[s];g(this,ye)&&((e=g(this,fe))==null||e.call(this,o,n,t)),g(this,Vt)&&g(this,Et)?.push([o,n,t]);}}if(g(this,yt).clear(),g(this,H).fill(void 0),g(this,lt).fill(void 0),g(this,te)&&g(this,_e)&&(g(this,te).fill(0),g(this,_e).fill(0)),g(this,xe)&&g(this,xe).fill(0),U(this,Dt,0),U(this,At,0),g(this,ge).length=0,U(this,me,0),U(this,Pt,0),g(this,Vt)&&g(this,Et)){let s=g(this,Et),o;for(;o=s?.shift();)(r=g(this,pe))==null||r.call(this,...o);}};var Dn=Bl;var sr=class{constructor(t){G(this,"cache");G(this,"map",new Map);this.cache=new Dn({max:t.cacheSize}),this.map=new Map;}get[Symbol.iterator](){return this.map[Symbol.iterator]}get[Symbol.toStringTag](){return this.map[Symbol.toStringTag]}clear(){return this.cache.clear(),this.map.clear()}delete(t){let e=this.map.delete(t);return e&&this.cache.delete(t),e}get forEach(){return this.map.forEach}get(t){let e=this.cache.get(t);return e||this.map.get(t)}has(t){return this.map.has(t)}set(t,e){return this.map.set(t,e),this.cache.set(t,e),this}get size(){return this.map.size}entries(){return this.map.entries()}keys(){return this.map.keys()}values(){return this.map.values()}};var bt=class bt{constructor(){}static clearOldTempVariables(t){bt.tempStorageDeadlines.forEach((e,r)=>{e>t&&(bt.tempStorage.delete(r),bt.tempStorageDeadlines.delete(r),bt.storage.cache.delete(r));});}static setVariable(t,e){let r=bt.tempStorage.has(t);e==null?(bt.storage.map.delete(t),!r&&bt.storage.cache.delete(t)):(bt.storage.map.set(t,e),!r&&bt.storage.cache.set(t,e));}static getVariable(t){let e=bt.storage.cache.get(t);return e===void 0&&(e=bt.tempStorage.get(t)),e===void 0&&(e=bt.storage.map.get(t)),kn(e)}static removeVariable(t){bt.storage.delete(t);}static setFlag(t,e){if(e)this.flags.includes(t)||this.flags.push(t);else {let r=this.flags.indexOf(t);r>-1&&this.flags.splice(r,1);}}static getFlag(t){return this.flags.includes(t)}};G(bt,"storage",new sr({cacheSize:20})),G(bt,"startingStorage",[]),G(bt,"flags",Array()),G(bt,"tempStorage",new Map),G(bt,"tempStorageDeadlines",new Map);var N=bt;var bi=class{constructor(t,e){G(this,"_id");G(this,"categoryId");this.categoryId=t,this._id=e;}get id(){return this._id}setStorageProperty(t,e){let r=N.getVariable(this.categoryId);r||(r={}),r.hasOwnProperty(this.id)||(r[this.id]={}),e==null?r[this.id].hasOwnProperty(t)&&delete r[this.id][t]:r[this.id]={...r[this.id],[t]:e},Object.keys(r[this.id]).length===0&&delete r[this.id],N.setVariable(this.categoryId,r);}getStorageProperty(t,e=this.id){let r=N.getVariable(this.categoryId);if(r&&r.hasOwnProperty(e)&&r[e].hasOwnProperty(t))return r[e][t]}};var jy="@",vi=class extends bi{constructor(e,r=""){super(cx.CHARACTER_CATEGORY_KEY,e+(r?jy+r:""));G(this,"sourceId");this.sourceId=e;}getStorageProperty(e){let r=super.getStorageProperty(e);return r===void 0&&(r=super.getStorageProperty(e,this.sourceId)),r}};var Ln=class extends vi{constructor(e,r){super(typeof e=="string"?e:e.id,typeof e=="string"?"":e.emotion);G(this,"defaultName");G(this,"defaultSurname");G(this,"defaultAge");G(this,"_icon");G(this,"_color");this.defaultName=r.name,this.defaultSurname=r.surname,this.defaultAge=r.age,this._icon=r.icon,this._color=r.color;}get name(){return this.getStorageProperty("name")||this.defaultName||this.id}set name(e){this.setStorageProperty("name",e);}get surname(){return this.getStorageProperty("surname")||this.defaultSurname}set surname(e){this.setStorageProperty("surname",e);}get age(){return this.getStorageProperty("age")||this.defaultAge}set age(e){this.setStorageProperty("age",e);}get icon(){return this._icon}get color(){return this._color}};var Ds=new sr({cacheSize:10});function Ky(i){return Si.add(i)}function qy(i){return Si.get(i)}function Zy(){return Si.values()}var Si;(s=>{function i(o){try{let n=Ds.get(o);if(!n){at.warn(`Character "${o}" not found, did you forget to register it with the RegisteredCharacters.add?`);return}return n}catch(n){at.error(`Error while getting Character "${o}"`,n);return}}s.get=i;function t(o){if(Array.isArray(o)){o.forEach(n=>t(n));return}Ds.get(o.id)&&at.info(`Character id "${o.id}" already exists, it will be overwritten`),Ds.set(o.id,o);}s.add=t;function e(){return Array.from(Ds.values())}s.values=e;function r(o){return Ds.has(o)}s.has=r;})(Si||(Si={}));var Qy=Si;export{Ln as CharacterBaseModel,vi as CharacterStoredClass,Qy as RegisteredCharacters,Zy as getAllCharacters,qy as getCharacterById,Ky as saveCharacter};
|