dsh-plugin-beyond-simulator 2.2.0 → 2.2.1
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/README.md +66 -135
- package/dsh-plugin/dist/client.js +7 -6
- package/dsh-plugin/dist/index.js +24 -21
- package/dsh-plugin/dist/play-renderer.js +68 -68
- package/dsh-plugin/dist/worker.js +19 -16
- package/dsh-plugin/presets/wonderland-lua-builder/README.md +1 -1
- package/dsh-plugin/presets/wonderland-lua-builder/evals/agent-behavior.md +4 -4
- package/dsh-plugin/presets/wonderland-lua-builder/skills/qxqy-game-studio/references/07-device-validation.md +4 -4
- package/dsh-plugin/skill.md +9 -2
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
var V1=Object.create;var Wl=Object.defineProperty;var j1=Object.getOwnPropertyDescriptor;var X1=Object.getOwnPropertyNames;var Y1=Object.getPrototypeOf,$1=Object.prototype.hasOwnProperty;var p=(i,t)=>()=>(i&&(t=i(i=0)),t);var q1=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Vl=(i,t)=>{for(var e in t)Wl(i,e,{get:t[e],enumerable:!0})},K1=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of X1(t))!$1.call(i,s)&&s!==e&&Wl(i,s,{get:()=>t[s],enumerable:!(r=j1(t,s))||r.enumerable});return i};var Z1=(i,t,e)=>(e=i!=null?V1(Y1(i)):{},K1(t||!i||!i.__esModule?Wl(e,"default",{value:i,enumerable:!0}):e,i));var y,jl,xo,z,P=p(()=>{"use strict";y=(i=>(i.Application="application",i.WebGLPipes="webgl-pipes",i.WebGLPipesAdaptor="webgl-pipes-adaptor",i.WebGLSystem="webgl-system",i.WebGPUPipes="webgpu-pipes",i.WebGPUPipesAdaptor="webgpu-pipes-adaptor",i.WebGPUSystem="webgpu-system",i.CanvasSystem="canvas-system",i.CanvasPipesAdaptor="canvas-pipes-adaptor",i.CanvasPipes="canvas-pipes",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i.MaskEffect="mask-effect",i.BlendMode="blend-mode",i.TextureSource="texture-source",i.TextureUploaderWebGL="texture-uploader-webgl",i.TextureUploaderWebGPU="texture-uploader-webgpu",i.Environment="environment",i.ShapeBuilder="shape-builder",i.Batcher="batcher",i))(y||{}),jl=i=>{if(typeof i=="function"||typeof i=="object"&&i.extension){if(!i.extension)throw new Error("Extension class must have an extension object");i={...typeof i.extension!="object"?{type:i.extension}:i.extension,ref:i}}if(typeof i=="object")i={...i};else throw new Error("Invalid extension type");return typeof i.type=="string"&&(i.type=[i.type]),i},xo=(i,t)=>jl(i).priority??t,z={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(jl).forEach(t=>{t.type.forEach(e=>this._removeHandlers[e]?.(t))}),this},add(...i){return i.map(jl).forEach(t=>{t.type.forEach(e=>{let r=this._addHandlers,s=this._queue;r[e]?r[e]?.(t):(s[e]=s[e]||[],s[e]?.push(t))})}),this},handle(i,t,e){let r=this._addHandlers,s=this._removeHandlers;if(r[i]||s[i])throw new Error(`Extension type ${i} already has a handler`);r[i]=t,s[i]=e;let n=this._queue;return n[i]&&(n[i]?.forEach(o=>t(o)),delete n[i]),this},handleByMap(i,t){return this.handle(i,e=>{e.name&&(t[e.name]=e.ref)},e=>{e.name&&delete t[e.name]})},handleByNamedList(i,t,e=-1){return this.handle(i,r=>{t.findIndex(n=>n.name===r.name)>=0||(t.push({name:r.name,value:r.ref}),t.sort((n,o)=>xo(o.value,e)-xo(n.value,e)))},r=>{let s=t.findIndex(n=>n.name===r.name);s!==-1&&t.splice(s,1)})},handleByList(i,t,e=-1){return this.handle(i,r=>{t.includes(r.ref)||(t.push(r.ref),t.sort((s,n)=>xo(n,e)-xo(s,e)))},r=>{let s=t.indexOf(r.ref);s!==-1&&t.splice(s,1)})},mixin(i,...t){for(let e of t)Object.defineProperties(i.prototype,Object.getOwnPropertyDescriptors(e))}}});var Zd=q1((QC,Xl)=>{"use strict";var Q1=Object.prototype.hasOwnProperty,re="~";function ps(){}Object.create&&(ps.prototype=Object.create(null),new ps().__proto__||(re=!1));function J1(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Kd(i,t,e,r,s){if(typeof e!="function")throw new TypeError("The listener must be a function");var n=new J1(e,r||i,s),o=re?re+t:t;return i._events[o]?i._events[o].fn?i._events[o]=[i._events[o],n]:i._events[o].push(n):(i._events[o]=n,i._eventsCount++),i}function _o(i,t){--i._eventsCount===0?i._events=new ps:delete i._events[t]}function Zt(){this._events=new ps,this._eventsCount=0}Zt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)Q1.call(e,r)&&t.push(re?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Zt.prototype.listeners=function(t){var e=re?re+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,n=r.length,o=new Array(n);s<n;s++)o[s]=r[s].fn;return o};Zt.prototype.listenerCount=function(t){var e=re?re+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Zt.prototype.emit=function(t,e,r,s,n,o){var a=re?re+t:t;if(!this._events[a])return!1;var l=this._events[a],c=arguments.length,h,u;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),c){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,r),!0;case 4:return l.fn.call(l.context,e,r,s),!0;case 5:return l.fn.call(l.context,e,r,s,n),!0;case 6:return l.fn.call(l.context,e,r,s,n,o),!0}for(u=1,h=new Array(c-1);u<c;u++)h[u-1]=arguments[u];l.fn.apply(l.context,h)}else{var d=l.length,f;for(u=0;u<d;u++)switch(l[u].once&&this.removeListener(t,l[u].fn,void 0,!0),c){case 1:l[u].fn.call(l[u].context);break;case 2:l[u].fn.call(l[u].context,e);break;case 3:l[u].fn.call(l[u].context,e,r);break;case 4:l[u].fn.call(l[u].context,e,r,s);break;default:if(!h)for(f=1,h=new Array(c-1);f<c;f++)h[f-1]=arguments[f];l[u].fn.apply(l[u].context,h)}}return!0};Zt.prototype.on=function(t,e,r){return Kd(this,t,e,r,!1)};Zt.prototype.once=function(t,e,r){return Kd(this,t,e,r,!0)};Zt.prototype.removeListener=function(t,e,r,s){var n=re?re+t:t;if(!this._events[n])return this;if(!e)return _o(this,n),this;var o=this._events[n];if(o.fn)o.fn===e&&(!s||o.once)&&(!r||o.context===r)&&_o(this,n);else{for(var a=0,l=[],c=o.length;a<c;a++)(o[a].fn!==e||s&&!o[a].once||r&&o[a].context!==r)&&l.push(o[a]);l.length?this._events[n]=l.length===1?l[0]:l:_o(this,n)}return this};Zt.prototype.removeAllListeners=function(t){var e;return t?(e=re?re+t:t,this._events[e]&&_o(this,e)):(this._events=new ps,this._eventsCount=0),this};Zt.prototype.off=Zt.prototype.removeListener;Zt.prototype.addListener=Zt.prototype.on;Zt.prefixed=re;Zt.EventEmitter=Zt;typeof Xl<"u"&&(Xl.exports=Zt)});var Qd,ut,Ht=p(()=>{Qd=Z1(Zd(),1),ut=Qd.default});var tS,qe,Wt,_e,af,Jd,Yl,eS,yo,lf,cf,tf,ef,rf,ms,rS,iS,sS,nS,Kl,sf,oS,$l,ql,nf,Zl,Ce,of,hf,uf=p(()=>{tS={grad:.9,turn:360,rad:360/(2*Math.PI)},qe=function(i){return typeof i=="string"?i.length>0:typeof i=="number"},Wt=function(i,t,e){return t===void 0&&(t=0),e===void 0&&(e=Math.pow(10,t)),Math.round(e*i)/e+0},_e=function(i,t,e){return t===void 0&&(t=0),e===void 0&&(e=1),i>e?e:i>t?i:t},af=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},Jd=function(i){return{r:_e(i.r,0,255),g:_e(i.g,0,255),b:_e(i.b,0,255),a:_e(i.a)}},Yl=function(i){return{r:Wt(i.r),g:Wt(i.g),b:Wt(i.b),a:Wt(i.a,3)}},eS=/^#([0-9a-f]{3,8})$/i,yo=function(i){var t=i.toString(16);return t.length<2?"0"+t:t},lf=function(i){var t=i.r,e=i.g,r=i.b,s=i.a,n=Math.max(t,e,r),o=n-Math.min(t,e,r),a=o?n===t?(e-r)/o:n===e?2+(r-t)/o:4+(t-e)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},cf=function(i){var t=i.h,e=i.s,r=i.v,s=i.a;t=t/360*6,e/=100,r/=100;var n=Math.floor(t),o=r*(1-e),a=r*(1-(t-n)*e),l=r*(1-(1-t+n)*e),c=n%6;return{r:255*[r,a,o,o,l,r][c],g:255*[l,r,r,a,o,o][c],b:255*[o,o,l,r,r,a][c],a:s}},tf=function(i){return{h:af(i.h),s:_e(i.s,0,100),l:_e(i.l,0,100),a:_e(i.a)}},ef=function(i){return{h:Wt(i.h),s:Wt(i.s),l:Wt(i.l),a:Wt(i.a,3)}},rf=function(i){return cf((e=(t=i).s,{h:t.h,s:(e*=((r=t.l)<50?r:100-r)/100)>0?2*e/(r+e)*100:0,v:r+e,a:t.a}));var t,e,r},ms=function(i){return{h:(t=lf(i)).h,s:(s=(200-(e=t.s))*(r=t.v)/100)>0&&s<200?e*r/100/(s<=100?s:200-s)*100:0,l:s/2,a:t.a};var t,e,r,s},rS=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,iS=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,sS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,nS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Kl={string:[[function(i){var t=eS.exec(i);return t?(i=t[1]).length<=4?{r:parseInt(i[0]+i[0],16),g:parseInt(i[1]+i[1],16),b:parseInt(i[2]+i[2],16),a:i.length===4?Wt(parseInt(i[3]+i[3],16)/255,2):1}:i.length===6||i.length===8?{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16),a:i.length===8?Wt(parseInt(i.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(i){var t=sS.exec(i)||nS.exec(i);return t?t[2]!==t[4]||t[4]!==t[6]?null:Jd({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(i){var t=rS.exec(i)||iS.exec(i);if(!t)return null;var e,r,s=tf({h:(e=t[1],r=t[2],r===void 0&&(r="deg"),Number(e)*(tS[r]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return rf(s)},"hsl"]],object:[[function(i){var t=i.r,e=i.g,r=i.b,s=i.a,n=s===void 0?1:s;return qe(t)&&qe(e)&&qe(r)?Jd({r:Number(t),g:Number(e),b:Number(r),a:Number(n)}):null},"rgb"],[function(i){var t=i.h,e=i.s,r=i.l,s=i.a,n=s===void 0?1:s;if(!qe(t)||!qe(e)||!qe(r))return null;var o=tf({h:Number(t),s:Number(e),l:Number(r),a:Number(n)});return rf(o)},"hsl"],[function(i){var t=i.h,e=i.s,r=i.v,s=i.a,n=s===void 0?1:s;if(!qe(t)||!qe(e)||!qe(r))return null;var o=(function(a){return{h:af(a.h),s:_e(a.s,0,100),v:_e(a.v,0,100),a:_e(a.a)}})({h:Number(t),s:Number(e),v:Number(r),a:Number(n)});return cf(o)},"hsv"]]},sf=function(i,t){for(var e=0;e<t.length;e++){var r=t[e][0](i);if(r)return[r,t[e][1]]}return[null,void 0]},oS=function(i){return typeof i=="string"?sf(i.trim(),Kl.string):typeof i=="object"&&i!==null?sf(i,Kl.object):[null,void 0]},$l=function(i,t){var e=ms(i);return{h:e.h,s:_e(e.s+100*t,0,100),l:e.l,a:e.a}},ql=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},nf=function(i,t){var e=ms(i);return{h:e.h,s:e.s,l:_e(e.l+100*t,0,100),a:e.a}},Zl=(function(){function i(t){this.parsed=oS(t)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return i.prototype.isValid=function(){return this.parsed!==null},i.prototype.brightness=function(){return Wt(ql(this.rgba),2)},i.prototype.isDark=function(){return ql(this.rgba)<.5},i.prototype.isLight=function(){return ql(this.rgba)>=.5},i.prototype.toHex=function(){return t=Yl(this.rgba),e=t.r,r=t.g,s=t.b,o=(n=t.a)<1?yo(Wt(255*n)):"","#"+yo(e)+yo(r)+yo(s)+o;var t,e,r,s,n,o},i.prototype.toRgb=function(){return Yl(this.rgba)},i.prototype.toRgbString=function(){return t=Yl(this.rgba),e=t.r,r=t.g,s=t.b,(n=t.a)<1?"rgba("+e+", "+r+", "+s+", "+n+")":"rgb("+e+", "+r+", "+s+")";var t,e,r,s,n},i.prototype.toHsl=function(){return ef(ms(this.rgba))},i.prototype.toHslString=function(){return t=ef(ms(this.rgba)),e=t.h,r=t.s,s=t.l,(n=t.a)<1?"hsla("+e+", "+r+"%, "+s+"%, "+n+")":"hsl("+e+", "+r+"%, "+s+"%)";var t,e,r,s,n},i.prototype.toHsv=function(){return t=lf(this.rgba),{h:Wt(t.h),s:Wt(t.s),v:Wt(t.v),a:Wt(t.a,3)};var t},i.prototype.invert=function(){return Ce({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},i.prototype.saturate=function(t){return t===void 0&&(t=.1),Ce($l(this.rgba,t))},i.prototype.desaturate=function(t){return t===void 0&&(t=.1),Ce($l(this.rgba,-t))},i.prototype.grayscale=function(){return Ce($l(this.rgba,-1))},i.prototype.lighten=function(t){return t===void 0&&(t=.1),Ce(nf(this.rgba,t))},i.prototype.darken=function(t){return t===void 0&&(t=.1),Ce(nf(this.rgba,-t))},i.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},i.prototype.alpha=function(t){return typeof t=="number"?Ce({r:(e=this.rgba).r,g:e.g,b:e.b,a:t}):Wt(this.rgba.a,3);var e},i.prototype.hue=function(t){var e=ms(this.rgba);return typeof t=="number"?Ce({h:t,s:e.s,l:e.l,a:e.a}):Wt(e.h)},i.prototype.isEqual=function(t){return this.toHex()===Ce(t).toHex()},i})(),Ce=function(i){return i instanceof Zl?i:new Zl(i)},of=[],hf=function(i){i.forEach(function(t){of.indexOf(t)<0&&(t(Zl,Kl),of.push(t))})}});function df(i,t){var e={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},r={};for(var s in e)r[e[s]]=s;var n={};i.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,l,c=r[this.toHex()];if(c)return c;if(o?.closest){var h=this.toRgb(),u=1/0,d="black";if(!n.length)for(var f in e)n[f]=new i(e[f]).toRgb();for(var m in e){var g=(a=h,l=n[m],Math.pow(a.r-l.r,2)+Math.pow(a.g-l.g,2)+Math.pow(a.b-l.b,2));g<u&&(u=g,d=m)}return d}},t.string.push([function(o){var a=o.toLowerCase(),l=a==="transparent"?"#0000":e[a];return l?new i(l).toRgb():null},"name"])}var ff=p(()=>{});var pi,Q,Qt=p(()=>{uf();ff();hf([df]);pi=class gs{constructor(t=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=t}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(t){return this.value=t,this}set value(t){if(t instanceof gs)this._value=this._cloneSource(t._value),this._int=t._int,this._components.set(t._components);else{if(t===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,t))&&(this._value=this._cloneSource(t),this._normalize(this._value))}}get value(){return this._value}_cloneSource(t){return typeof t=="string"||typeof t=="number"||t instanceof Number||t===null?t:Array.isArray(t)||ArrayBuffer.isView(t)?t.slice(0):typeof t=="object"&&t!==null?{...t}:t}_isSourceEqual(t,e){let r=typeof t;if(r!==typeof e)return!1;if(r==="number"||r==="string"||t instanceof Number)return t===e;if(Array.isArray(t)&&Array.isArray(e)||ArrayBuffer.isView(t)&&ArrayBuffer.isView(e))return t.length!==e.length?!1:t.every((n,o)=>n===e[o]);if(t!==null&&e!==null){let n=Object.keys(t),o=Object.keys(e);return n.length!==o.length?!1:n.every(a=>t[a]===e[a])}return t===e}toRgba(){let[t,e,r,s]=this._components;return{r:t,g:e,b:r,a:s}}toRgb(){let[t,e,r]=this._components;return{r:t,g:e,b:r}}toRgbaString(){let[t,e,r]=this.toUint8RgbArray();return`rgba(${t},${e},${r},${this.alpha})`}toUint8RgbArray(t){let[e,r,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),t||(t=this._arrayRgb),t[0]=Math.round(e*255),t[1]=Math.round(r*255),t[2]=Math.round(s*255),t}toArray(t){this._arrayRgba||(this._arrayRgba=[]),t||(t=this._arrayRgba);let[e,r,s,n]=this._components;return t[0]=e,t[1]=r,t[2]=s,t[3]=n,t}toRgbArray(t){this._arrayRgb||(this._arrayRgb=[]),t||(t=this._arrayRgb);let[e,r,s]=this._components;return t[0]=e,t[1]=r,t[2]=s,t}toNumber(){return this._int}toBgrNumber(){let[t,e,r]=this.toUint8RgbArray();return(r<<16)+(e<<8)+t}toLittleEndianNumber(){let t=this._int;return(t>>16)+(t&65280)+((t&255)<<16)}multiply(t){let[e,r,s,n]=gs._temp.setValue(t)._components;return this._components[0]*=e,this._components[1]*=r,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(t,e=!0){return e&&(this._components[0]*=t,this._components[1]*=t,this._components[2]*=t),this._components[3]=t,this._refreshInt(),this._value=null,this}toPremultiplied(t,e=!0){if(t===1)return(255<<24)+this._int;if(t===0)return e?0:this._int;let r=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return e&&(r=r*t+.5|0,s=s*t+.5|0,n=n*t+.5|0),(t*255<<24)+(r<<16)+(s<<8)+n}toHex(){let t=this._int.toString(16);return`#${"000000".substring(0,6-t.length)+t}`}toHexa(){let e=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-e.length)+e}setAlpha(t){return this._components[3]=this._clamp(t),this._value=null,this}_normalize(t){let e,r,s,n;if((typeof t=="number"||t instanceof Number)&&t>=0&&t<=16777215){let o=t;e=(o>>16&255)/255,r=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(t)||t instanceof Float32Array)&&t.length>=3&&t.length<=4)t=this._clamp(t),[e,r,s,n=1]=t;else if((t instanceof Uint8Array||t instanceof Uint8ClampedArray)&&t.length>=3&&t.length<=4)t=this._clamp(t,0,255),[e,r,s,n=255]=t,e/=255,r/=255,s/=255,n/=255;else if(typeof t=="string"||typeof t=="object"){if(typeof t=="string"){let a=gs.HEX_PATTERN.exec(t);a&&(t=`#${a[2]}`)}let o=Ce(t);o.isValid()&&({r:e,g:r,b:s,a:n}=o.rgba,e/=255,r/=255,s/=255)}if(e!==void 0)this._components[0]=e,this._components[1]=r,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${t}`)}_refreshInt(){this._clamp(this._components);let[t,e,r]=this._components;this._int=(t*255<<16)+(e*255<<8)+(r*255|0)}_clamp(t,e=0,r=1){return typeof t=="number"?Math.min(Math.max(t,e),r):(t.forEach((s,n)=>{t[n]=Math.min(Math.max(s,e),r)}),t)}static isColorLike(t){return typeof t=="number"||typeof t=="string"||t instanceof Number||t instanceof gs||Array.isArray(t)||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Float32Array||t.r!==void 0&&t.g!==void 0&&t.b!==void 0||t.r!==void 0&&t.g!==void 0&&t.b!==void 0&&t.a!==void 0||t.h!==void 0&&t.s!==void 0&&t.l!==void 0||t.h!==void 0&&t.s!==void 0&&t.l!==void 0&&t.a!==void 0||t.h!==void 0&&t.s!==void 0&&t.v!==void 0||t.h!==void 0&&t.s!==void 0&&t.v!==void 0&&t.a!==void 0}};pi.shared=new pi;pi._temp=new pi;pi.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;Q=pi});var pf,mf=p(()=>{"use strict";pf={cullArea:null,cullable:!1,cullableChildren:!0}});var gf,xf,_f,Ql=p(()=>{"use strict";gf=Math.PI*2,xf=180/Math.PI,_f=Math.PI/180});var nt,Jl,Ee=p(()=>{"use strict";nt=class i{constructor(t=0,e=0){this.x=0,this.y=0,this.x=t,this.y=e}clone(){return new i(this.x,this.y)}copyFrom(t){return this.set(t.x,t.y),this}copyTo(t){return t.set(this.x,this.y),t}equals(t){return t.x===this.x&&t.y===this.y}set(t=0,e=t){return this.x=t,this.y=e,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return Jl.x=0,Jl.y=0,Jl}},Jl=new nt});var k,aS,lS,ot=p(()=>{Ql();Ee();k=class i{constructor(t=1,e=0,r=0,s=1,n=0,o=0){this.array=null,this.a=t,this.b=e,this.c=r,this.d=s,this.tx=n,this.ty=o}fromArray(t){this.a=t[0],this.b=t[1],this.c=t[3],this.d=t[4],this.tx=t[2],this.ty=t[5]}set(t,e,r,s,n,o){return this.a=t,this.b=e,this.c=r,this.d=s,this.tx=n,this.ty=o,this}toArray(t,e){this.array||(this.array=new Float32Array(9));let r=e||this.array;return t?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(t,e){e=e||new nt;let r=t.x,s=t.y;return e.x=this.a*r+this.c*s+this.tx,e.y=this.b*r+this.d*s+this.ty,e}applyInverse(t,e){e=e||new nt;let r=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,l=this.ty,c=1/(r*o+n*-s),h=t.x,u=t.y;return e.x=o*c*h+-n*c*u+(l*n-a*o)*c,e.y=r*c*u+-s*c*h+(-l*r+a*s)*c,e}translate(t,e){return this.tx+=t,this.ty+=e,this}scale(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this}rotate(t){let e=Math.cos(t),r=Math.sin(t),s=this.a,n=this.c,o=this.tx;return this.a=s*e-this.b*r,this.b=s*r+this.b*e,this.c=n*e-this.d*r,this.d=n*r+this.d*e,this.tx=o*e-this.ty*r,this.ty=o*r+this.ty*e,this}append(t){let e=this.a,r=this.b,s=this.c,n=this.d;return this.a=t.a*e+t.b*s,this.b=t.a*r+t.b*n,this.c=t.c*e+t.d*s,this.d=t.c*r+t.d*n,this.tx=t.tx*e+t.ty*s+this.tx,this.ty=t.tx*r+t.ty*n+this.ty,this}appendFrom(t,e){let r=t.a,s=t.b,n=t.c,o=t.d,a=t.tx,l=t.ty,c=e.a,h=e.b,u=e.c,d=e.d;return this.a=r*c+s*u,this.b=r*h+s*d,this.c=n*c+o*u,this.d=n*h+o*d,this.tx=a*c+l*u+e.tx,this.ty=a*h+l*d+e.ty,this}setTransform(t,e,r,s,n,o,a,l,c){return this.a=Math.cos(a+c)*n,this.b=Math.sin(a+c)*n,this.c=-Math.sin(a-l)*o,this.d=Math.cos(a-l)*o,this.tx=t-(r*this.a+s*this.c),this.ty=e-(r*this.b+s*this.d),this}prepend(t){let e=this.tx;if(t.a!==1||t.b!==0||t.c!==0||t.d!==1){let r=this.a,s=this.c;this.a=r*t.a+this.b*t.c,this.b=r*t.b+this.b*t.d,this.c=s*t.a+this.d*t.c,this.d=s*t.b+this.d*t.d}return this.tx=e*t.a+this.ty*t.c+t.tx,this.ty=e*t.b+this.ty*t.d+t.ty,this}decompose(t){let e=this.a,r=this.b,s=this.c,n=this.d,o=t.pivot,a=-Math.atan2(-s,n),l=Math.atan2(r,e),c=Math.abs(a+l);return c<1e-5||Math.abs(gf-c)<1e-5?(t.rotation=l,t.skew.x=t.skew.y=0):(t.rotation=0,t.skew.x=a,t.skew.y=l),t.scale.x=Math.sqrt(e*e+r*r),t.scale.y=Math.sqrt(s*s+n*n),t.position.x=this.tx+(o.x*e+o.y*s),t.position.y=this.ty+(o.x*r+o.y*n),t}invert(){let t=this.a,e=this.b,r=this.c,s=this.d,n=this.tx,o=t*s-e*r;return this.a=s/o,this.b=-e/o,this.c=-r/o,this.d=t/o,this.tx=(r*this.ty-s*n)/o,this.ty=-(t*this.ty-e*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let t=new i;return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t}copyTo(t){return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t}copyFrom(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this}equals(t){return t.a===this.a&&t.b===this.b&&t.c===this.c&&t.d===this.d&&t.tx===this.tx&&t.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return lS.identity()}static get shared(){return aS.identity()}},aS=new k,lS=new k});var Gt,bo=p(()=>{"use strict";Gt=class i{constructor(t,e,r){this._x=e||0,this._y=r||0,this._observer=t}clone(t){return new i(t??this._observer,this._x,this._y)}set(t=0,e=t){return(this._x!==t||this._y!==e)&&(this._x=t,this._y=e,this._observer._onUpdate(this)),this}copyFrom(t){return(this._x!==t.x||this._y!==t.y)&&(this._x=t.x,this._y=t.y,this._observer._onUpdate(this)),this}copyTo(t){return t.set(this._x,this._y),t}equals(t){return t.x===this._x&&t.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(t){this._x!==t&&(this._x=t,this._observer._onUpdate(this))}get y(){return this._y}set y(t){this._y!==t&&(this._y=t,this._observer._onUpdate(this))}}});function $(i="default"){return tc[i]===void 0&&(tc[i]=-1),++tc[i]}var tc,Ft=p(()=>{"use strict";tc={default:-1}});var yf,rt,bf,mi,O,yt=p(()=>{"use strict";yf=new Set,rt="8.0.0",bf="8.3.4",mi={quiet:!1,noColor:!1},O=((i,t,e=3)=>{if(mi.quiet||yf.has(t))return;let r=new Error().stack,s=`${t}
|
|
2
|
-
Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!
|
|
1
|
+
var Y1=Object.create;var Wl=Object.defineProperty;var $1=Object.getOwnPropertyDescriptor;var q1=Object.getOwnPropertyNames;var K1=Object.getPrototypeOf,Z1=Object.prototype.hasOwnProperty;var p=(i,t)=>()=>(i&&(t=i(i=0)),t);var Q1=(i,t)=>()=>(t||i((t={exports:{}}).exports,t),t.exports),Vl=(i,t)=>{for(var e in t)Wl(i,e,{get:t[e],enumerable:!0})},J1=(i,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of q1(t))!Z1.call(i,s)&&s!==e&&Wl(i,s,{get:()=>t[s],enumerable:!(r=$1(t,s))||r.enumerable});return i};var tS=(i,t,e)=>(e=i!=null?Y1(K1(i)):{},J1(t||!i||!i.__esModule?Wl(e,"default",{value:i,enumerable:!0}):e,i));var y,jl,_o,z,P=p(()=>{"use strict";y=(i=>(i.Application="application",i.WebGLPipes="webgl-pipes",i.WebGLPipesAdaptor="webgl-pipes-adaptor",i.WebGLSystem="webgl-system",i.WebGPUPipes="webgpu-pipes",i.WebGPUPipesAdaptor="webgpu-pipes-adaptor",i.WebGPUSystem="webgpu-system",i.CanvasSystem="canvas-system",i.CanvasPipesAdaptor="canvas-pipes-adaptor",i.CanvasPipes="canvas-pipes",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i.MaskEffect="mask-effect",i.BlendMode="blend-mode",i.TextureSource="texture-source",i.TextureUploaderWebGL="texture-uploader-webgl",i.TextureUploaderWebGPU="texture-uploader-webgpu",i.Environment="environment",i.ShapeBuilder="shape-builder",i.Batcher="batcher",i))(y||{}),jl=i=>{if(typeof i=="function"||typeof i=="object"&&i.extension){if(!i.extension)throw new Error("Extension class must have an extension object");i={...typeof i.extension!="object"?{type:i.extension}:i.extension,ref:i}}if(typeof i=="object")i={...i};else throw new Error("Invalid extension type");return typeof i.type=="string"&&(i.type=[i.type]),i},_o=(i,t)=>jl(i).priority??t,z={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(jl).forEach(t=>{t.type.forEach(e=>this._removeHandlers[e]?.(t))}),this},add(...i){return i.map(jl).forEach(t=>{t.type.forEach(e=>{let r=this._addHandlers,s=this._queue;r[e]?r[e]?.(t):(s[e]=s[e]||[],s[e]?.push(t))})}),this},handle(i,t,e){let r=this._addHandlers,s=this._removeHandlers;if(r[i]||s[i])throw new Error(`Extension type ${i} already has a handler`);r[i]=t,s[i]=e;let n=this._queue;return n[i]&&(n[i]?.forEach(o=>t(o)),delete n[i]),this},handleByMap(i,t){return this.handle(i,e=>{e.name&&(t[e.name]=e.ref)},e=>{e.name&&delete t[e.name]})},handleByNamedList(i,t,e=-1){return this.handle(i,r=>{t.findIndex(n=>n.name===r.name)>=0||(t.push({name:r.name,value:r.ref}),t.sort((n,o)=>_o(o.value,e)-_o(n.value,e)))},r=>{let s=t.findIndex(n=>n.name===r.name);s!==-1&&t.splice(s,1)})},handleByList(i,t,e=-1){return this.handle(i,r=>{t.includes(r.ref)||(t.push(r.ref),t.sort((s,n)=>_o(n,e)-_o(s,e)))},r=>{let s=t.indexOf(r.ref);s!==-1&&t.splice(s,1)})},mixin(i,...t){for(let e of t)Object.defineProperties(i.prototype,Object.getOwnPropertyDescriptors(e))}}});var Jd=Q1((rE,Xl)=>{"use strict";var eS=Object.prototype.hasOwnProperty,re="~";function ms(){}Object.create&&(ms.prototype=Object.create(null),new ms().__proto__||(re=!1));function rS(i,t,e){this.fn=i,this.context=t,this.once=e||!1}function Qd(i,t,e,r,s){if(typeof e!="function")throw new TypeError("The listener must be a function");var n=new rS(e,r||i,s),o=re?re+t:t;return i._events[o]?i._events[o].fn?i._events[o]=[i._events[o],n]:i._events[o].push(n):(i._events[o]=n,i._eventsCount++),i}function yo(i,t){--i._eventsCount===0?i._events=new ms:delete i._events[t]}function Zt(){this._events=new ms,this._eventsCount=0}Zt.prototype.eventNames=function(){var t=[],e,r;if(this._eventsCount===0)return t;for(r in e=this._events)eS.call(e,r)&&t.push(re?r.slice(1):r);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(e)):t};Zt.prototype.listeners=function(t){var e=re?re+t:t,r=this._events[e];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,n=r.length,o=new Array(n);s<n;s++)o[s]=r[s].fn;return o};Zt.prototype.listenerCount=function(t){var e=re?re+t:t,r=this._events[e];return r?r.fn?1:r.length:0};Zt.prototype.emit=function(t,e,r,s,n,o){var a=re?re+t:t;if(!this._events[a])return!1;var l=this._events[a],c=arguments.length,h,u;if(l.fn){switch(l.once&&this.removeListener(t,l.fn,void 0,!0),c){case 1:return l.fn.call(l.context),!0;case 2:return l.fn.call(l.context,e),!0;case 3:return l.fn.call(l.context,e,r),!0;case 4:return l.fn.call(l.context,e,r,s),!0;case 5:return l.fn.call(l.context,e,r,s,n),!0;case 6:return l.fn.call(l.context,e,r,s,n,o),!0}for(u=1,h=new Array(c-1);u<c;u++)h[u-1]=arguments[u];l.fn.apply(l.context,h)}else{var d=l.length,f;for(u=0;u<d;u++)switch(l[u].once&&this.removeListener(t,l[u].fn,void 0,!0),c){case 1:l[u].fn.call(l[u].context);break;case 2:l[u].fn.call(l[u].context,e);break;case 3:l[u].fn.call(l[u].context,e,r);break;case 4:l[u].fn.call(l[u].context,e,r,s);break;default:if(!h)for(f=1,h=new Array(c-1);f<c;f++)h[f-1]=arguments[f];l[u].fn.apply(l[u].context,h)}}return!0};Zt.prototype.on=function(t,e,r){return Qd(this,t,e,r,!1)};Zt.prototype.once=function(t,e,r){return Qd(this,t,e,r,!0)};Zt.prototype.removeListener=function(t,e,r,s){var n=re?re+t:t;if(!this._events[n])return this;if(!e)return yo(this,n),this;var o=this._events[n];if(o.fn)o.fn===e&&(!s||o.once)&&(!r||o.context===r)&&yo(this,n);else{for(var a=0,l=[],c=o.length;a<c;a++)(o[a].fn!==e||s&&!o[a].once||r&&o[a].context!==r)&&l.push(o[a]);l.length?this._events[n]=l.length===1?l[0]:l:yo(this,n)}return this};Zt.prototype.removeAllListeners=function(t){var e;return t?(e=re?re+t:t,this._events[e]&&yo(this,e)):(this._events=new ms,this._eventsCount=0),this};Zt.prototype.off=Zt.prototype.removeListener;Zt.prototype.addListener=Zt.prototype.on;Zt.prefixed=re;Zt.EventEmitter=Zt;typeof Xl<"u"&&(Xl.exports=Zt)});var tf,ut,Ht=p(()=>{tf=tS(Jd(),1),ut=tf.default});var iS,qe,Wt,_e,cf,ef,Yl,sS,bo,hf,uf,rf,sf,nf,gs,nS,oS,aS,lS,Kl,of,cS,$l,ql,af,Zl,Ce,lf,df,ff=p(()=>{iS={grad:.9,turn:360,rad:360/(2*Math.PI)},qe=function(i){return typeof i=="string"?i.length>0:typeof i=="number"},Wt=function(i,t,e){return t===void 0&&(t=0),e===void 0&&(e=Math.pow(10,t)),Math.round(e*i)/e+0},_e=function(i,t,e){return t===void 0&&(t=0),e===void 0&&(e=1),i>e?e:i>t?i:t},cf=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},ef=function(i){return{r:_e(i.r,0,255),g:_e(i.g,0,255),b:_e(i.b,0,255),a:_e(i.a)}},Yl=function(i){return{r:Wt(i.r),g:Wt(i.g),b:Wt(i.b),a:Wt(i.a,3)}},sS=/^#([0-9a-f]{3,8})$/i,bo=function(i){var t=i.toString(16);return t.length<2?"0"+t:t},hf=function(i){var t=i.r,e=i.g,r=i.b,s=i.a,n=Math.max(t,e,r),o=n-Math.min(t,e,r),a=o?n===t?(e-r)/o:n===e?2+(r-t)/o:4+(t-e)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},uf=function(i){var t=i.h,e=i.s,r=i.v,s=i.a;t=t/360*6,e/=100,r/=100;var n=Math.floor(t),o=r*(1-e),a=r*(1-(t-n)*e),l=r*(1-(1-t+n)*e),c=n%6;return{r:255*[r,a,o,o,l,r][c],g:255*[l,r,r,a,o,o][c],b:255*[o,o,l,r,r,a][c],a:s}},rf=function(i){return{h:cf(i.h),s:_e(i.s,0,100),l:_e(i.l,0,100),a:_e(i.a)}},sf=function(i){return{h:Wt(i.h),s:Wt(i.s),l:Wt(i.l),a:Wt(i.a,3)}},nf=function(i){return uf((e=(t=i).s,{h:t.h,s:(e*=((r=t.l)<50?r:100-r)/100)>0?2*e/(r+e)*100:0,v:r+e,a:t.a}));var t,e,r},gs=function(i){return{h:(t=hf(i)).h,s:(s=(200-(e=t.s))*(r=t.v)/100)>0&&s<200?e*r/100/(s<=100?s:200-s)*100:0,l:s/2,a:t.a};var t,e,r,s},nS=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,oS=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,aS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,lS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Kl={string:[[function(i){var t=sS.exec(i);return t?(i=t[1]).length<=4?{r:parseInt(i[0]+i[0],16),g:parseInt(i[1]+i[1],16),b:parseInt(i[2]+i[2],16),a:i.length===4?Wt(parseInt(i[3]+i[3],16)/255,2):1}:i.length===6||i.length===8?{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16),a:i.length===8?Wt(parseInt(i.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(i){var t=aS.exec(i)||lS.exec(i);return t?t[2]!==t[4]||t[4]!==t[6]?null:ef({r:Number(t[1])/(t[2]?100/255:1),g:Number(t[3])/(t[4]?100/255:1),b:Number(t[5])/(t[6]?100/255:1),a:t[7]===void 0?1:Number(t[7])/(t[8]?100:1)}):null},"rgb"],[function(i){var t=nS.exec(i)||oS.exec(i);if(!t)return null;var e,r,s=rf({h:(e=t[1],r=t[2],r===void 0&&(r="deg"),Number(e)*(iS[r]||1)),s:Number(t[3]),l:Number(t[4]),a:t[5]===void 0?1:Number(t[5])/(t[6]?100:1)});return nf(s)},"hsl"]],object:[[function(i){var t=i.r,e=i.g,r=i.b,s=i.a,n=s===void 0?1:s;return qe(t)&&qe(e)&&qe(r)?ef({r:Number(t),g:Number(e),b:Number(r),a:Number(n)}):null},"rgb"],[function(i){var t=i.h,e=i.s,r=i.l,s=i.a,n=s===void 0?1:s;if(!qe(t)||!qe(e)||!qe(r))return null;var o=rf({h:Number(t),s:Number(e),l:Number(r),a:Number(n)});return nf(o)},"hsl"],[function(i){var t=i.h,e=i.s,r=i.v,s=i.a,n=s===void 0?1:s;if(!qe(t)||!qe(e)||!qe(r))return null;var o=(function(a){return{h:cf(a.h),s:_e(a.s,0,100),v:_e(a.v,0,100),a:_e(a.a)}})({h:Number(t),s:Number(e),v:Number(r),a:Number(n)});return uf(o)},"hsv"]]},of=function(i,t){for(var e=0;e<t.length;e++){var r=t[e][0](i);if(r)return[r,t[e][1]]}return[null,void 0]},cS=function(i){return typeof i=="string"?of(i.trim(),Kl.string):typeof i=="object"&&i!==null?of(i,Kl.object):[null,void 0]},$l=function(i,t){var e=gs(i);return{h:e.h,s:_e(e.s+100*t,0,100),l:e.l,a:e.a}},ql=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},af=function(i,t){var e=gs(i);return{h:e.h,s:e.s,l:_e(e.l+100*t,0,100),a:e.a}},Zl=(function(){function i(t){this.parsed=cS(t)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return i.prototype.isValid=function(){return this.parsed!==null},i.prototype.brightness=function(){return Wt(ql(this.rgba),2)},i.prototype.isDark=function(){return ql(this.rgba)<.5},i.prototype.isLight=function(){return ql(this.rgba)>=.5},i.prototype.toHex=function(){return t=Yl(this.rgba),e=t.r,r=t.g,s=t.b,o=(n=t.a)<1?bo(Wt(255*n)):"","#"+bo(e)+bo(r)+bo(s)+o;var t,e,r,s,n,o},i.prototype.toRgb=function(){return Yl(this.rgba)},i.prototype.toRgbString=function(){return t=Yl(this.rgba),e=t.r,r=t.g,s=t.b,(n=t.a)<1?"rgba("+e+", "+r+", "+s+", "+n+")":"rgb("+e+", "+r+", "+s+")";var t,e,r,s,n},i.prototype.toHsl=function(){return sf(gs(this.rgba))},i.prototype.toHslString=function(){return t=sf(gs(this.rgba)),e=t.h,r=t.s,s=t.l,(n=t.a)<1?"hsla("+e+", "+r+"%, "+s+"%, "+n+")":"hsl("+e+", "+r+"%, "+s+"%)";var t,e,r,s,n},i.prototype.toHsv=function(){return t=hf(this.rgba),{h:Wt(t.h),s:Wt(t.s),v:Wt(t.v),a:Wt(t.a,3)};var t},i.prototype.invert=function(){return Ce({r:255-(t=this.rgba).r,g:255-t.g,b:255-t.b,a:t.a});var t},i.prototype.saturate=function(t){return t===void 0&&(t=.1),Ce($l(this.rgba,t))},i.prototype.desaturate=function(t){return t===void 0&&(t=.1),Ce($l(this.rgba,-t))},i.prototype.grayscale=function(){return Ce($l(this.rgba,-1))},i.prototype.lighten=function(t){return t===void 0&&(t=.1),Ce(af(this.rgba,t))},i.prototype.darken=function(t){return t===void 0&&(t=.1),Ce(af(this.rgba,-t))},i.prototype.rotate=function(t){return t===void 0&&(t=15),this.hue(this.hue()+t)},i.prototype.alpha=function(t){return typeof t=="number"?Ce({r:(e=this.rgba).r,g:e.g,b:e.b,a:t}):Wt(this.rgba.a,3);var e},i.prototype.hue=function(t){var e=gs(this.rgba);return typeof t=="number"?Ce({h:t,s:e.s,l:e.l,a:e.a}):Wt(e.h)},i.prototype.isEqual=function(t){return this.toHex()===Ce(t).toHex()},i})(),Ce=function(i){return i instanceof Zl?i:new Zl(i)},lf=[],df=function(i){i.forEach(function(t){lf.indexOf(t)<0&&(t(Zl,Kl),lf.push(t))})}});function pf(i,t){var e={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},r={};for(var s in e)r[e[s]]=s;var n={};i.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,l,c=r[this.toHex()];if(c)return c;if(o?.closest){var h=this.toRgb(),u=1/0,d="black";if(!n.length)for(var f in e)n[f]=new i(e[f]).toRgb();for(var m in e){var g=(a=h,l=n[m],Math.pow(a.r-l.r,2)+Math.pow(a.g-l.g,2)+Math.pow(a.b-l.b,2));g<u&&(u=g,d=m)}return d}},t.string.push([function(o){var a=o.toLowerCase(),l=a==="transparent"?"#0000":e[a];return l?new i(l).toRgb():null},"name"])}var mf=p(()=>{});var mi,Q,Qt=p(()=>{ff();mf();df([pf]);mi=class xs{constructor(t=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=t}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(t){return this.value=t,this}set value(t){if(t instanceof xs)this._value=this._cloneSource(t._value),this._int=t._int,this._components.set(t._components);else{if(t===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,t))&&(this._value=this._cloneSource(t),this._normalize(this._value))}}get value(){return this._value}_cloneSource(t){return typeof t=="string"||typeof t=="number"||t instanceof Number||t===null?t:Array.isArray(t)||ArrayBuffer.isView(t)?t.slice(0):typeof t=="object"&&t!==null?{...t}:t}_isSourceEqual(t,e){let r=typeof t;if(r!==typeof e)return!1;if(r==="number"||r==="string"||t instanceof Number)return t===e;if(Array.isArray(t)&&Array.isArray(e)||ArrayBuffer.isView(t)&&ArrayBuffer.isView(e))return t.length!==e.length?!1:t.every((n,o)=>n===e[o]);if(t!==null&&e!==null){let n=Object.keys(t),o=Object.keys(e);return n.length!==o.length?!1:n.every(a=>t[a]===e[a])}return t===e}toRgba(){let[t,e,r,s]=this._components;return{r:t,g:e,b:r,a:s}}toRgb(){let[t,e,r]=this._components;return{r:t,g:e,b:r}}toRgbaString(){let[t,e,r]=this.toUint8RgbArray();return`rgba(${t},${e},${r},${this.alpha})`}toUint8RgbArray(t){let[e,r,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),t||(t=this._arrayRgb),t[0]=Math.round(e*255),t[1]=Math.round(r*255),t[2]=Math.round(s*255),t}toArray(t){this._arrayRgba||(this._arrayRgba=[]),t||(t=this._arrayRgba);let[e,r,s,n]=this._components;return t[0]=e,t[1]=r,t[2]=s,t[3]=n,t}toRgbArray(t){this._arrayRgb||(this._arrayRgb=[]),t||(t=this._arrayRgb);let[e,r,s]=this._components;return t[0]=e,t[1]=r,t[2]=s,t}toNumber(){return this._int}toBgrNumber(){let[t,e,r]=this.toUint8RgbArray();return(r<<16)+(e<<8)+t}toLittleEndianNumber(){let t=this._int;return(t>>16)+(t&65280)+((t&255)<<16)}multiply(t){let[e,r,s,n]=xs._temp.setValue(t)._components;return this._components[0]*=e,this._components[1]*=r,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(t,e=!0){return e&&(this._components[0]*=t,this._components[1]*=t,this._components[2]*=t),this._components[3]=t,this._refreshInt(),this._value=null,this}toPremultiplied(t,e=!0){if(t===1)return(255<<24)+this._int;if(t===0)return e?0:this._int;let r=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return e&&(r=r*t+.5|0,s=s*t+.5|0,n=n*t+.5|0),(t*255<<24)+(r<<16)+(s<<8)+n}toHex(){let t=this._int.toString(16);return`#${"000000".substring(0,6-t.length)+t}`}toHexa(){let e=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-e.length)+e}setAlpha(t){return this._components[3]=this._clamp(t),this._value=null,this}_normalize(t){let e,r,s,n;if((typeof t=="number"||t instanceof Number)&&t>=0&&t<=16777215){let o=t;e=(o>>16&255)/255,r=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(t)||t instanceof Float32Array)&&t.length>=3&&t.length<=4)t=this._clamp(t),[e,r,s,n=1]=t;else if((t instanceof Uint8Array||t instanceof Uint8ClampedArray)&&t.length>=3&&t.length<=4)t=this._clamp(t,0,255),[e,r,s,n=255]=t,e/=255,r/=255,s/=255,n/=255;else if(typeof t=="string"||typeof t=="object"){if(typeof t=="string"){let a=xs.HEX_PATTERN.exec(t);a&&(t=`#${a[2]}`)}let o=Ce(t);o.isValid()&&({r:e,g:r,b:s,a:n}=o.rgba,e/=255,r/=255,s/=255)}if(e!==void 0)this._components[0]=e,this._components[1]=r,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${t}`)}_refreshInt(){this._clamp(this._components);let[t,e,r]=this._components;this._int=(t*255<<16)+(e*255<<8)+(r*255|0)}_clamp(t,e=0,r=1){return typeof t=="number"?Math.min(Math.max(t,e),r):(t.forEach((s,n)=>{t[n]=Math.min(Math.max(s,e),r)}),t)}static isColorLike(t){return typeof t=="number"||typeof t=="string"||t instanceof Number||t instanceof xs||Array.isArray(t)||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Float32Array||t.r!==void 0&&t.g!==void 0&&t.b!==void 0||t.r!==void 0&&t.g!==void 0&&t.b!==void 0&&t.a!==void 0||t.h!==void 0&&t.s!==void 0&&t.l!==void 0||t.h!==void 0&&t.s!==void 0&&t.l!==void 0&&t.a!==void 0||t.h!==void 0&&t.s!==void 0&&t.v!==void 0||t.h!==void 0&&t.s!==void 0&&t.v!==void 0&&t.a!==void 0}};mi.shared=new mi;mi._temp=new mi;mi.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;Q=mi});var gf,xf=p(()=>{"use strict";gf={cullArea:null,cullable:!1,cullableChildren:!0}});var _f,yf,bf,Ql=p(()=>{"use strict";_f=Math.PI*2,yf=180/Math.PI,bf=Math.PI/180});var nt,Jl,Ee=p(()=>{"use strict";nt=class i{constructor(t=0,e=0){this.x=0,this.y=0,this.x=t,this.y=e}clone(){return new i(this.x,this.y)}copyFrom(t){return this.set(t.x,t.y),this}copyTo(t){return t.set(this.x,this.y),t}equals(t){return t.x===this.x&&t.y===this.y}set(t=0,e=t){return this.x=t,this.y=e,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return Jl.x=0,Jl.y=0,Jl}},Jl=new nt});var k,hS,uS,ot=p(()=>{Ql();Ee();k=class i{constructor(t=1,e=0,r=0,s=1,n=0,o=0){this.array=null,this.a=t,this.b=e,this.c=r,this.d=s,this.tx=n,this.ty=o}fromArray(t){this.a=t[0],this.b=t[1],this.c=t[3],this.d=t[4],this.tx=t[2],this.ty=t[5]}set(t,e,r,s,n,o){return this.a=t,this.b=e,this.c=r,this.d=s,this.tx=n,this.ty=o,this}toArray(t,e){this.array||(this.array=new Float32Array(9));let r=e||this.array;return t?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(t,e){e=e||new nt;let r=t.x,s=t.y;return e.x=this.a*r+this.c*s+this.tx,e.y=this.b*r+this.d*s+this.ty,e}applyInverse(t,e){e=e||new nt;let r=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,l=this.ty,c=1/(r*o+n*-s),h=t.x,u=t.y;return e.x=o*c*h+-n*c*u+(l*n-a*o)*c,e.y=r*c*u+-s*c*h+(-l*r+a*s)*c,e}translate(t,e){return this.tx+=t,this.ty+=e,this}scale(t,e){return this.a*=t,this.d*=e,this.c*=t,this.b*=e,this.tx*=t,this.ty*=e,this}rotate(t){let e=Math.cos(t),r=Math.sin(t),s=this.a,n=this.c,o=this.tx;return this.a=s*e-this.b*r,this.b=s*r+this.b*e,this.c=n*e-this.d*r,this.d=n*r+this.d*e,this.tx=o*e-this.ty*r,this.ty=o*r+this.ty*e,this}append(t){let e=this.a,r=this.b,s=this.c,n=this.d;return this.a=t.a*e+t.b*s,this.b=t.a*r+t.b*n,this.c=t.c*e+t.d*s,this.d=t.c*r+t.d*n,this.tx=t.tx*e+t.ty*s+this.tx,this.ty=t.tx*r+t.ty*n+this.ty,this}appendFrom(t,e){let r=t.a,s=t.b,n=t.c,o=t.d,a=t.tx,l=t.ty,c=e.a,h=e.b,u=e.c,d=e.d;return this.a=r*c+s*u,this.b=r*h+s*d,this.c=n*c+o*u,this.d=n*h+o*d,this.tx=a*c+l*u+e.tx,this.ty=a*h+l*d+e.ty,this}setTransform(t,e,r,s,n,o,a,l,c){return this.a=Math.cos(a+c)*n,this.b=Math.sin(a+c)*n,this.c=-Math.sin(a-l)*o,this.d=Math.cos(a-l)*o,this.tx=t-(r*this.a+s*this.c),this.ty=e-(r*this.b+s*this.d),this}prepend(t){let e=this.tx;if(t.a!==1||t.b!==0||t.c!==0||t.d!==1){let r=this.a,s=this.c;this.a=r*t.a+this.b*t.c,this.b=r*t.b+this.b*t.d,this.c=s*t.a+this.d*t.c,this.d=s*t.b+this.d*t.d}return this.tx=e*t.a+this.ty*t.c+t.tx,this.ty=e*t.b+this.ty*t.d+t.ty,this}decompose(t){let e=this.a,r=this.b,s=this.c,n=this.d,o=t.pivot,a=-Math.atan2(-s,n),l=Math.atan2(r,e),c=Math.abs(a+l);return c<1e-5||Math.abs(_f-c)<1e-5?(t.rotation=l,t.skew.x=t.skew.y=0):(t.rotation=0,t.skew.x=a,t.skew.y=l),t.scale.x=Math.sqrt(e*e+r*r),t.scale.y=Math.sqrt(s*s+n*n),t.position.x=this.tx+(o.x*e+o.y*s),t.position.y=this.ty+(o.x*r+o.y*n),t}invert(){let t=this.a,e=this.b,r=this.c,s=this.d,n=this.tx,o=t*s-e*r;return this.a=s/o,this.b=-e/o,this.c=-r/o,this.d=t/o,this.tx=(r*this.ty-s*n)/o,this.ty=-(t*this.ty-e*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let t=new i;return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t}copyTo(t){return t.a=this.a,t.b=this.b,t.c=this.c,t.d=this.d,t.tx=this.tx,t.ty=this.ty,t}copyFrom(t){return this.a=t.a,this.b=t.b,this.c=t.c,this.d=t.d,this.tx=t.tx,this.ty=t.ty,this}equals(t){return t.a===this.a&&t.b===this.b&&t.c===this.c&&t.d===this.d&&t.tx===this.tx&&t.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return uS.identity()}static get shared(){return hS.identity()}},hS=new k,uS=new k});var Gt,vo=p(()=>{"use strict";Gt=class i{constructor(t,e,r){this._x=e||0,this._y=r||0,this._observer=t}clone(t){return new i(t??this._observer,this._x,this._y)}set(t=0,e=t){return(this._x!==t||this._y!==e)&&(this._x=t,this._y=e,this._observer._onUpdate(this)),this}copyFrom(t){return(this._x!==t.x||this._y!==t.y)&&(this._x=t.x,this._y=t.y,this._observer._onUpdate(this)),this}copyTo(t){return t.set(this._x,this._y),t}equals(t){return t.x===this._x&&t.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(t){this._x!==t&&(this._x=t,this._observer._onUpdate(this))}get y(){return this._y}set y(t){this._y!==t&&(this._y=t,this._observer._onUpdate(this))}}});function $(i="default"){return tc[i]===void 0&&(tc[i]=-1),++tc[i]}var tc,Ft=p(()=>{"use strict";tc={default:-1}});var vf,rt,Sf,gi,O,yt=p(()=>{"use strict";vf=new Set,rt="8.0.0",Sf="8.3.4",gi={quiet:!1,noColor:!1},O=((i,t,e=3)=>{if(gi.quiet||vf.has(t))return;let r=new Error().stack,s=`${t}
|
|
2
|
+
Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!gi.noColor;typeof r>"u"?console.warn("PixiJS Deprecation Warning: ",s):(r=r.split(`
|
|
3
3
|
`).splice(e).join(`
|
|
4
|
-
`),n?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",s),console.warn(r),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",s),console.warn(r))),yf.add(t)});Object.defineProperties(O,{quiet:{get:()=>mi.quiet,set:i=>{mi.quiet=i},enumerable:!0,configurable:!1},noColor:{get:()=>mi.noColor,set:i=>{mi.noColor=i},enumerable:!0,configurable:!1}})});function L(...i){ec!==vf&&(ec++,ec===vf?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var ec,vf,ht=p(()=>{"use strict";ec=0,vf=500});var ye,Pr=p(()=>{"use strict";ye={_registeredResources:new Set,register(i){this._registeredResources.add(i)},unregister(i){this._registeredResources.delete(i)},release(){this._registeredResources.forEach(i=>i.clear())},get registeredCount(){return this._registeredResources.size},isRegistered(i){return this._registeredResources.has(i)},reset(){this._registeredResources.clear()}}});var vo,Sf=p(()=>{"use strict";vo=class{constructor(t,e){this._pool=[],this._count=0,this._index=0,this._classType=t,e&&this.prepopulate(e)}prepopulate(t){for(let e=0;e<t;e++)this._pool[this._index++]=new this._classType;this._count+=t}get(t){let e;return this._index>0?e=this._pool[--this._index]:(e=new this._classType,this._count++),e.init?.(t),e}return(t){t.reset?.(),this._pool[this._index++]=t}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){if(this._pool.length>0&&this._pool[0].destroy)for(let t=0;t<this._index;t++)this._pool[t].destroy();this._pool.length=0,this._count=0,this._index=0}}});var rc,bt,Ke=p(()=>{Pr();Sf();rc=class{constructor(){this._poolsByClass=new Map}prepopulate(t,e){this.getPool(t).prepopulate(e)}get(t,e){return this.getPool(t).get(e)}return(t){this.getPool(t.constructor).return(t)}getPool(t){return this._poolsByClass.has(t)||this._poolsByClass.set(t,new vo(t)),this._poolsByClass.get(t)}stats(){let t={};return this._poolsByClass.forEach(e=>{let r=t[e._classType.name]?e._classType.name+e._classType.ID:e._classType.name;t[r]={free:e.totalFree,used:e.totalUsed,size:e.totalSize}}),t}clear(){this._poolsByClass.forEach(t=>t.clear()),this._poolsByClass.clear()}},bt=new rc;ye.register(bt)});var Tf,wf=p(()=>{yt();Tf={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(i){typeof i=="boolean"&&i===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(i===!0?{}:i))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(i){O("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function So(i,t,e){let r=i.length,s;if(t>=r||e===0)return;e=t+e>r?r-t:e;let n=r-e;for(s=t;s<n;++s)i[s]=i[s+e];i.length=n}var ic=p(()=>{"use strict"});var Cf,Ef=p(()=>{ic();yt();Cf={allowChildren:!0,removeChildren(i=0,t){let e=t??this.children.length,r=e-i,s=[];if(r>0&&r<=e){for(let o=e-1;o>=i;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}So(this.children,i,e);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(r===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(i){let t=this.getChildAt(i);return this.removeChild(t)},getChildAt(i){if(i<0||i>=this.children.length)throw new Error(`getChildAt: Index (${i}) does not exist.`);return this.children[i]},setChildIndex(i,t){if(t<0||t>=this.children.length)throw new Error(`The index ${t} supplied is out of bounds ${this.children.length}`);this.getChildIndex(i),this.addChildAt(i,t)},getChildIndex(i){let t=this.children.indexOf(i);if(t===-1)throw new Error("The supplied Container must be a child of the caller");return t},addChildAt(i,t){this.allowChildren||O(rt,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:e}=this;if(t<0||t>e.length)throw new Error(`${i}addChildAt: The index ${t} supplied is out of bounds ${e.length}`);let r=i.parent===this;if(i.parent){let n=i.parent.children.indexOf(i);if(r){if(n===t)return i;i.parent.children.splice(n,1)}else i.removeFromParent()}t===e.length?e.push(i):e.splice(t,0,i);let s=this.renderGroup||this.parentRenderGroup;return this.sortableChildren&&(this.sortDirty=!0),r?(s&&(s.structureDidChange=!0),i):(i.parent=this,i.didChange=!0,i._updateFlags=15,s&&s.addChild(i),this.emit("childAdded",i,this,t),i.emit("added",this),i)},swapChildren(i,t){if(i===t)return;let e=this.getChildIndex(i),r=this.getChildIndex(t);this.children[e]=t,this.children[r]=i;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...i){return i.length===1?this.reparentChildAt(i[0],this.children.length):(i.forEach(t=>this.reparentChildAt(t,this.children.length)),i[0])},reparentChildAt(i,t){if(i.parent===this)return this.setChildIndex(i,t),i;let e=i.worldTransform.clone();i.removeFromParent(),this.addChildAt(i,t);let r=this.worldTransform.clone();return r.invert(),e.prepend(r),i.setFromMatrix(e),i},replaceChild(i,t){i.updateLocalTransform(),this.addChildAt(t,this.getChildIndex(i)),t.setFromMatrix(i.localTransform),t.updateLocalTransform(),this.removeChild(i)}}});var Pf,Mf=p(()=>{"use strict";Pf={collectRenderables(i,t,e){this.parentRenderLayer&&this.parentRenderLayer!==e||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(i,t,e):this.renderGroup?t.renderPipes.renderGroup.addRenderGroup(this.renderGroup,i):this.collectRenderablesWithEffects(i,t,e))},collectRenderablesSimple(i,t,e){let r=this.children,s=r.length;for(let n=0;n<s;n++)r[n].collectRenderables(i,t,e)},collectRenderablesWithEffects(i,t,e){let{renderPipes:r}=t;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];r[n.pipe].push(n,this,i)}this.collectRenderablesSimple(i,t,e);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];r[n.pipe].pop(n,this,i)}}}});var Ze,To=p(()=>{"use strict";Ze=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let t=0;t<this.filters.length;t++)this.filters[t].destroy();this.filters=null,this.filterArea=null}}});var sc,wo,Af=p(()=>{P();Ke();sc=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(t=>{this.add({test:t.test,maskClass:t})}))}add(t){this._tests.push(t)}getMaskEffect(t){this._initialized||this.init();for(let e=0;e<this._tests.length;e++){let r=this._tests[e];if(r.test(t))return bt.get(r.maskClass,t)}return t}returnMaskEffect(t){bt.return(t)}},wo=new sc;z.handleByList(y.MaskEffect,wo._effectClasses)});var Rf,kf=p(()=>{To();Af();Rf={_maskEffect:null,_maskOptions:{inverse:!1,channel:"red"},_filterEffect:null,effects:[],_markStructureAsChanged(){let i=this.renderGroup||this.parentRenderGroup;i&&(i.structureDidChange=!0)},addEffect(i){this.effects.indexOf(i)===-1&&(this.effects.push(i),this.effects.sort((e,r)=>e.priority-r.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(i){let t=this.effects.indexOf(i);t!==-1&&(this.effects.splice(t,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(i){let t=this._maskEffect;t?.mask!==i&&(t&&(this.removeEffect(t),wo.returnMaskEffect(t),this._maskEffect=null),i!=null&&(this._maskEffect=wo.getMaskEffect(i),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(i){this._maskOptions={...this._maskOptions,...i},i.mask&&(this.mask=i.mask),this._markStructureAsChanged()},set filters(i){!Array.isArray(i)&&i&&(i=[i]);let t=this._filterEffect||(this._filterEffect=new Ze);i=i;let e=i?.length>0,r=t.filters?.length>0,s=e!==r;i=Array.isArray(i)?i.slice(0):i,t.filters=Object.freeze(i),s&&(e?this.addEffect(t):(this.removeEffect(t),t.filters=i??null))},get filters(){return this._filterEffect?.filters},set filterArea(i){this._filterEffect||(this._filterEffect=new Ze),this._filterEffect.filterArea=i},get filterArea(){return this._filterEffect?.filterArea}}});var Bf,If=p(()=>{yt();Bf={label:null,get name(){return O(rt,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){O(rt,"Container.name property has been removed, use Container.label instead"),this.label=i},getChildByName(i,t=!1){return this.getChildByLabel(i,t)},getChildByLabel(i,t=!1){let e=this.children;for(let r=0;r<e.length;r++){let s=e[r];if(s.label===i||i instanceof RegExp&&i.test(s.label))return s}if(t)for(let r=0;r<e.length;r++){let n=e[r].getChildByLabel(i,!0);if(n)return n}return null},getChildrenByLabel(i,t=!1,e=[]){let r=this.children;for(let s=0;s<r.length;s++){let n=r[s];(n.label===i||i instanceof RegExp&&i.test(n.label))&&e.push(n)}if(t)for(let s=0;s<r.length;s++)r[s].getChildrenByLabel(i,!0,e);return e}}});var Co,J,Yt=p(()=>{Ee();Co=[new nt,new nt,new nt,new nt],J=class i{constructor(t=0,e=0,r=0,s=0){this.type="rectangle",this.x=Number(t),this.y=Number(e),this.width=Number(r),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new i(0,0,0,0)}clone(){return new i(this.x,this.y,this.width,this.height)}copyFromBounds(t){return this.x=t.minX,this.y=t.minY,this.width=t.maxX-t.minX,this.height=t.maxY-t.minY,this}copyFrom(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this}copyTo(t){return t.copyFrom(this),t}contains(t,e){return this.width<=0||this.height<=0?!1:t>=this.x&&t<this.x+this.width&&e>=this.y&&e<this.y+this.height}strokeContains(t,e,r,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,l=this.y,c=r*(1-s),h=r-c,u=a-c,d=a+n+c,f=l-c,m=l+o+c,g=a+h,_=a+n-h,x=l+h,b=l+o-h;return t>=u&&t<=d&&e>=f&&e<=m&&!(t>g&&t<_&&e>x&&e<b)}intersects(t,e){if(!e){let B=this.x<t.x?t.x:this.x;if((this.right>t.right?t.right:this.right)<=B)return!1;let M=this.y<t.y?t.y:this.y;return(this.bottom>t.bottom?t.bottom:this.bottom)>M}let r=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=r||o<=n)return!1;let a=Co[0].set(t.left,t.top),l=Co[1].set(t.left,t.bottom),c=Co[2].set(t.right,t.top),h=Co[3].set(t.right,t.bottom);if(c.x<=a.x||l.y<=a.y)return!1;let u=Math.sign(e.a*e.d-e.b*e.c);if(u===0||(e.apply(a,a),e.apply(l,l),e.apply(c,c),e.apply(h,h),Math.max(a.x,l.x,c.x,h.x)<=r||Math.min(a.x,l.x,c.x,h.x)>=s||Math.max(a.y,l.y,c.y,h.y)<=n||Math.min(a.y,l.y,c.y,h.y)>=o))return!1;let d=u*(l.y-a.y),f=u*(a.x-l.x),m=d*r+f*n,g=d*s+f*n,_=d*r+f*o,x=d*s+f*o;if(Math.max(m,g,_,x)<=d*a.x+f*a.y||Math.min(m,g,_,x)>=d*h.x+f*h.y)return!1;let b=u*(a.y-c.y),v=u*(c.x-a.x),S=b*r+v*n,T=b*s+v*n,w=b*r+v*o,E=b*s+v*o;return!(Math.max(S,T,w,E)<=b*a.x+v*a.y||Math.min(S,T,w,E)>=b*h.x+v*h.y)}pad(t=0,e=t){return this.x-=t,this.y-=e,this.width+=t*2,this.height+=e*2,this}fit(t){let e=Math.max(this.x,t.x),r=Math.min(this.x+this.width,t.x+t.width),s=Math.max(this.y,t.y),n=Math.min(this.y+this.height,t.y+t.height);return this.x=e,this.width=Math.max(r-e,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(t=1,e=.001){let r=Math.ceil((this.x+this.width-e)*t)/t,s=Math.ceil((this.y+this.height-e)*t)/t;return this.x=Math.floor((this.x+e)*t)/t,this.y=Math.floor((this.y+e)*t)/t,this.width=r-this.x,this.height=s-this.y,this}scale(t,e=t){return this.x*=t,this.y*=e,this.width*=t,this.height*=e,this}enlarge(t){let e=Math.min(this.x,t.x),r=Math.max(this.x+this.width,t.x+t.width),s=Math.min(this.y,t.y),n=Math.max(this.y+this.height,t.y+t.height);return this.x=e,this.width=r-e,this.y=s,this.height=n-s,this}getBounds(t){return t||(t=new i),t.copyFrom(this),t}containsRect(t){if(this.width<=0||this.height<=0)return!1;let e=t.x,r=t.y,s=t.x+t.width,n=t.y+t.height;return e>=this.x&&e<this.x+this.width&&r>=this.y&&r<this.y+this.height&&s>=this.x&&s<=this.x+this.width&&n>=this.y&&n<=this.y+this.height}set(t,e,r,s){return this.x=t,this.y=e,this.width=r,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var Gf,dt,ie=p(()=>{ot();Yt();Gf=new k,dt=class i{constructor(t=1/0,e=1/0,r=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Gf,this.minX=t,this.minY=e,this.maxX=r,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new J);let t=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(t.x=0,t.y=0,t.width=0,t.height=0):t.copyFromBounds(this),t}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Gf,this}set(t,e,r,s){this.minX=t,this.minY=e,this.maxX=r,this.maxY=s}addFrame(t,e,r,s,n){n||(n=this.matrix);let o=n.a,a=n.b,l=n.c,c=n.d,h=n.tx,u=n.ty,d=this.minX,f=this.minY,m=this.maxX,g=this.maxY,_=o*t+l*e+h,x=a*t+c*e+u;_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*r+l*e+h,x=a*r+c*e+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*t+l*s+h,x=a*t+c*s+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*r+l*s+h,x=a*r+c*s+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),this.minX=d,this.minY=f,this.maxX=m,this.maxY=g}addRect(t,e){this.addFrame(t.x,t.y,t.x+t.width,t.y+t.height,e)}addBounds(t,e){this.addFrame(t.minX,t.minY,t.maxX,t.maxY,e)}addBoundsMask(t){this.minX=this.minX>t.minX?this.minX:t.minX,this.minY=this.minY>t.minY?this.minY:t.minY,this.maxX=this.maxX<t.maxX?this.maxX:t.maxX,this.maxY=this.maxY<t.maxY?this.maxY:t.maxY}applyMatrix(t){let e=this.minX,r=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c:l,d:c,tx:h,ty:u}=t,d=o*e+l*r+h,f=a*e+c*r+u;this.minX=d,this.minY=f,this.maxX=d,this.maxY=f,d=o*s+l*r+h,f=a*s+c*r+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*e+l*n+h,f=a*e+c*n+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*s+l*n+h,f=a*s+c*n+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY}fit(t){return this.minX<t.left&&(this.minX=t.left),this.maxX>t.right&&(this.maxX=t.right),this.minY<t.top&&(this.minY=t.top),this.maxY>t.bottom&&(this.maxY=t.bottom),this}fitBounds(t,e,r,s){return this.minX<t&&(this.minX=t),this.maxX>e&&(this.maxX=e),this.minY<r&&(this.minY=r),this.maxY>s&&(this.maxY=s),this}pad(t,e=t){return this.minX-=t,this.maxX+=t,this.minY-=e,this.maxY+=e,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new i(this.minX,this.minY,this.maxX,this.maxY)}scale(t,e=t){return this.minX*=t,this.minY*=e,this.maxX*=t,this.maxY*=e,this}get x(){return this.minX}set x(t){let e=this.maxX-this.minX;this.minX=t,this.maxX=t+e}get y(){return this.minY}set y(t){let e=this.maxY-this.minY;this.minY=t,this.maxY=t+e}get width(){return this.maxX-this.minX}set width(t){this.maxX=this.minX+t}get height(){return this.maxY-this.minY}set height(t){this.maxY=this.minY+t}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(t,e,r,s){let n=this.minX,o=this.minY,a=this.maxX,l=this.maxY;s||(s=this.matrix);let c=s.a,h=s.b,u=s.c,d=s.d,f=s.tx,m=s.ty;for(let g=e;g<r;g+=2){let _=t[g],x=t[g+1],b=c*_+u*x+f,v=h*_+d*x+m;n=b<n?b:n,o=v<o?v:o,a=b>a?b:a,l=v>l?v:l}this.minX=n,this.minY=o,this.maxX=a,this.maxY=l}containsPoint(t,e){return this.minX<=t&&this.minY<=e&&this.maxX>=t&&this.maxY>=e}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(t){return this.minX=t.minX,this.minY=t.minY,this.maxX=t.maxX,this.maxY=t.maxY,this}}});var Ut,de,Mr=p(()=>{ot();Ke();ie();Ut=bt.getPool(k),de=bt.getPool(dt)});var cS,Ff,Uf=p(()=>{ot();ie();Mr();cS=new k,Ff={getFastGlobalBounds(i,t){t||(t=new dt),t.clear(),this._getGlobalBoundsRecursive(!!i,t,this.parentRenderLayer),t.isValid||t.set(0,0,0,0);let e=this.renderGroup||this.parentRenderGroup;return t.applyMatrix(e.worldTransform),t},_getGlobalBoundsRecursive(i,t,e){let r=t;if(i&&this.parentRenderLayer&&this.parentRenderLayer!==e||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(r=de.get().clear()),this.boundsArea)t.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;r.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(i,r,e)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,r.applyMatrix(o.worldTransform)),this.effects[a].addBounds(r,!0));n&&r.applyMatrix(o.worldTransform.copyTo(cS).invert()),t.addBounds(r),de.return(r)}else this.renderGroup&&(t.addBounds(r,this.relativeGroupTransform),de.return(r))}}});function gi(i,t,e){e.clear();let r,s;return i.parent?t?r=i.parent.worldTransform:(s=Ut.get().identity(),r=Eo(i,s)):r=k.IDENTITY,Df(i,e,r,t),s&&Ut.return(s),e.isValid||e.set(0,0,0,0),e}function Df(i,t,e,r){if(!i.visible||!i.measurable)return;let s;r?s=i.worldTransform:(i.updateLocalTransform(),s=Ut.get(),s.appendFrom(i.localTransform,e));let n=t,o=!!i.effects.length;if(o&&(t=de.get().clear()),i.boundsArea)t.addRect(i.boundsArea,s);else{let a=i.bounds;a&&!a.isEmpty()&&(t.matrix=s,t.addBounds(a));for(let l=0;l<i.children.length;l++)Df(i.children[l],t,s,r)}if(o){for(let a=0;a<i.effects.length;a++)i.effects[a].addBounds?.(t);n.addBounds(t,k.IDENTITY),de.return(t)}r||Ut.return(s)}function Eo(i,t){let e=i.parent;return e&&(Eo(e,t),e.updateLocalTransform(),t.append(e.localTransform)),t}var xs=p(()=>{ot();Mr()});function Ue(i,t){if(i===16777215||!t)return t;if(t===16777215||!i)return i;let e=i>>16&255,r=i>>8&255,s=i&255,n=t>>16&255,o=t>>8&255,a=t&255,l=e*n/255|0,c=r*o/255|0,h=s*a/255|0;return(l<<16)+(c<<8)+h}var _s=p(()=>{"use strict"});function xi(i,t){return i===Lf?t:t===Lf?i:Ue(i,t)}var Lf,nc=p(()=>{_s();Lf=16777215});function Qe(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var Of,Po=p(()=>{ot();xs();Mr();nc();Of={getGlobalAlpha(i){if(i)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let t=this.alpha,e=this.parent;for(;e;)t*=e.alpha,e=e.parent;return t},getGlobalTransform(i=new k,t){if(t)return i.copyFrom(this.worldTransform);this.updateLocalTransform();let e=Eo(this,Ut.get().identity());return i.appendFrom(this.localTransform,e),Ut.return(e),i},getGlobalTint(i){if(i)return this.renderGroup?Qe(this.renderGroup.worldColor):this.parentRenderGroup?Qe(xi(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let t=this.localColor,e=this.parent;for(;e;)t=xi(t,e.localColor),e=e.parent;return Qe(t)}}});function _i(i,t,e){return t.clear(),e||(e=k.IDENTITY),Nf(i,t,e,i,!0),t.isValid||t.set(0,0,0,0),t}function Nf(i,t,e,r,s){let n;if(s)n=Ut.get(),n=e.copyTo(n);else{if(!i.visible||!i.measurable)return;i.updateLocalTransform();let l=i.localTransform;n=Ut.get(),n.appendFrom(l,e)}let o=t,a=!!i.effects.length;if(a&&(t=de.get().clear()),i.boundsArea)t.addRect(i.boundsArea,n);else{i.renderPipeId&&(t.matrix=n,t.addBounds(i.bounds));let l=i.children;for(let c=0;c<l.length;c++)Nf(l[c],t,n,r,!1)}if(a){for(let l=0;l<i.effects.length;l++)i.effects[l].addLocalBounds?.(t,r);o.addBounds(t,k.IDENTITY),de.return(t)}Ut.return(n)}var Mo=p(()=>{ot();Mr()});function oc(i,t){let e=i.children;for(let r=0;r<e.length;r++){let s=e[r],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=t.index;(t.data[a]!==n||t.data[a+1]!==o)&&(t.data[t.index]=n,t.data[t.index+1]=o,t.didChange=!0),t.index=a+2,s.children.length&&oc(s,t)}return t.didChange}var zf=p(()=>{"use strict"});var hS,Hf,Wf=p(()=>{ot();ie();xs();Mo();zf();hS=new k,Hf={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(i,t){let e=Math.sign(this.scale.x)||1;t!==0?this.scale.x=i/t*e:this.scale.x=e},_setHeight(i,t){let e=Math.sign(this.scale.y)||1;t!==0?this.scale.y=i/t*e:this.scale.y=e},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new dt});let i=this._localBoundsCacheData;return i.index=1,i.didChange=!1,i.data[0]!==this._didViewChangeTick&&(i.didChange=!0,i.data[0]=this._didViewChangeTick),oc(this,i),i.didChange&&_i(this,i.localBounds,hS),i.localBounds},getBounds(i,t){return gi(this,i,t||new dt)}}});var Vf,jf=p(()=>{"use strict";Vf={_onRender:null,set onRender(i){let t=this.renderGroup||this.parentRenderGroup;if(!i){this._onRender&&t?.removeOnRender(this),this._onRender=null;return}this._onRender||t?.addOnRender(this),this._onRender=i},get onRender(){return this._onRender}}});function uS(i,t){return i._zIndex-t._zIndex}var Xf,Yf=p(()=>{"use strict";Xf={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(i){this._zIndex!==i&&(this._zIndex=i,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(uS))}}});var $f,qf=p(()=>{Ee();Mr();$f={getGlobalPosition(i=new nt,t=!1){return this.parent?this.parent.toGlobal(this._position,i,t):(i.x=this._position.x,i.y=this._position.y),i},toGlobal(i,t,e=!1){let r=this.getGlobalTransform(Ut.get(),e);return t=r.apply(i,t),Ut.return(r),t},toLocal(i,t,e,r){t&&(i=t.toGlobal(i,e,r));let s=this.getGlobalTransform(Ut.get(),r);return e=s.applyInverse(i,e),Ut.return(s),e}}});var hr,Ao=p(()=>{Ft();hr=class{constructor(){this.uid=$("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}destroy(){this.instructions.length=0,this.renderables.length=0,this.renderPipes=null,this.gcTick=0}add(t){this.instructions[this.instructionSize++]=t}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function Je(i){return i+=i===0?1:0,--i,i|=i>>>1,i|=i>>>2,i|=i>>>4,i|=i>>>8,i|=i>>>16,i+1}function ac(i){return!(i&i-1)&&!!i}var ys=p(()=>{"use strict"});function Ro(i){let t={};for(let e in i)i[e]!==void 0&&(t[e]=i[e]);return t}var lc=p(()=>{"use strict"});function dS(i){let t=Kf[i];return t===void 0&&(Kf[i]=$("resource")),t}var Kf,Zf,ce,Ar=p(()=>{Ht();Ft();yt();Kf=Object.create(null);Zf=class Qf extends ut{constructor(t={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,t={...Qf.defaultOptions,...t},this.addressMode=t.addressMode,this.addressModeU=t.addressModeU??this.addressModeU,this.addressModeV=t.addressModeV??this.addressModeV,this.addressModeW=t.addressModeW??this.addressModeW,this.scaleMode=t.scaleMode,this.magFilter=t.magFilter??this.magFilter,this.minFilter=t.minFilter??this.minFilter,this.mipmapFilter=t.mipmapFilter??this.mipmapFilter,this.lodMinClamp=t.lodMinClamp,this.lodMaxClamp=t.lodMaxClamp,this.compare=t.compare,this.maxAnisotropy=t.maxAnisotropy??1}set addressMode(t){this.addressModeU=t,this.addressModeV=t,this.addressModeW=t}get addressMode(){return this.addressModeU}set wrapMode(t){O(rt,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=t}get wrapMode(){return this.addressMode}set scaleMode(t){this.magFilter=t,this.minFilter=t,this.mipmapFilter=t}get scaleMode(){return this.magFilter}set maxAnisotropy(t){this._maxAnisotropy=Math.min(t,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this._sharedResourceId=null,this.emit("change",this)}_generateResourceId(){let t=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=dS(t),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};Zf.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};ce=Zf});var Jf,st,$t=p(()=>{Ht();ys();lc();Ft();Ar();Jf=class tp extends ut{constructor(t={}){super(),this.options=t,this._gpuData=Object.create(null),this._gcLastUsed=-1,this.uid=$("textureSource"),this._resourceType="textureSource",this._resourceId=$("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.viewDimension="2d",this.arrayLayerCount=1,this._ownsStyle=!1,this.antialias=!1,this.transient=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,t={...tp.defaultOptions,...t},this.label=t.label??"",this.resource=t.resource,this.autoGarbageCollect=t.autoGarbageCollect,this._resolution=t.resolution,t.width?this.pixelWidth=t.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,t.height?this.pixelHeight=t.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=t.format,this.dimension=t.dimensions,this.viewDimension=t.viewDimension??t.dimensions,this.arrayLayerCount=t.arrayLayerCount,this.mipLevelCount=t.mipLevelCount,this.autoGenerateMipmaps=t.autoGenerateMipmaps,this.sampleCount=t.sampleCount,this.antialias=t.antialias,this.transient=t.transient??!1,this.alphaMode=t.alphaMode,this.style=new ce(Ro(t)),this._ownsStyle=!0,this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(t){this.style!==t&&(this._ownsStyle=!1,this._style?.off("change",this._onStyleChange,this),this._style=t,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}set maxAnisotropy(t){this._style.maxAnisotropy=t}get maxAnisotropy(){return this._style.maxAnisotropy}get addressMode(){return this._style.addressMode}set addressMode(t){this._style.addressMode=t}get repeatMode(){return this._style.addressMode}set repeatMode(t){this._style.addressMode=t}get magFilter(){return this._style.magFilter}set magFilter(t){this._style.magFilter=t}get minFilter(){return this._style.minFilter}set minFilter(t){this._style.minFilter=t}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(t){this._style.mipmapFilter=t}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(t){this._style.lodMinClamp=t}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(t){this._style.lodMaxClamp=t}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let t=this._resolution;if(this.resize(this.resourceWidth/t,this.resourceHeight/t))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this._style&&(this._ownsStyle&&this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=$("resource"),this.emit("change",this),this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy?.();this._gpuData=Object.create(null)}get resourceWidth(){let{resource:t}=this;return t.naturalWidth||t.videoWidth||t.displayWidth||t.width}get resourceHeight(){let{resource:t}=this;return t.naturalHeight||t.videoHeight||t.displayHeight||t.height}get resolution(){return this._resolution}set resolution(t){this._resolution!==t&&(this._resolution=t,this.width=this.pixelWidth/t,this.height=this.pixelHeight/t)}resize(t,e,r){r||(r=this._resolution),t||(t=this.width),e||(e=this.height);let s=Math.round(t*r),n=Math.round(e*r);return this.width=s/r,this.height=n/r,this._resolution=r,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=$("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(t){this._style.wrapMode=t}get wrapMode(){return this._style.wrapMode}set scaleMode(t){this._style.scaleMode=t}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=ac(this.pixelWidth)&&ac(this.pixelHeight)}static test(t){throw new Error("Unimplemented")}};Jf.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",viewDimension:"2d",arrayLayerCount:1,mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};st=Jf});function fS(){for(let i=0;i<16;i++){let t=[];cc.push(t);for(let e=0;e<16;e++){let r=ko(Rr[i]*Rr[e]+Br[i]*kr[e]),s=ko(kr[i]*Rr[e]+Ir[i]*kr[e]),n=ko(Rr[i]*Br[e]+Br[i]*Ir[e]),o=ko(kr[i]*Br[e]+Ir[i]*Ir[e]);for(let a=0;a<16;a++)if(Rr[a]===r&&kr[a]===s&&Br[a]===n&&Ir[a]===o){t.push(a);break}}}for(let i=0;i<16;i++){let t=new k;t.set(Rr[i],kr[i],Br[i],Ir[i],0,0),ep.push(t)}}var Rr,kr,Br,Ir,cc,ep,ko,it,bs=p(()=>{ot();Rr=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],kr=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Br=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Ir=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],cc=[],ep=[],ko=Math.sign;fS();it={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:i=>Rr[i],uY:i=>kr[i],vX:i=>Br[i],vY:i=>Ir[i],inv:i=>i&8?i&15:-i&7,add:(i,t)=>cc[i][t],sub:(i,t)=>cc[i][it.inv(t)],rotate180:i=>i^4,isVertical:i=>(i&3)===2,byDirection:(i,t)=>Math.abs(i)*2<=Math.abs(t)?t>=0?it.S:it.N:Math.abs(t)*2<=Math.abs(i)?i>0?it.E:it.W:t>0?i>0?it.SE:it.SW:i>0?it.NE:it.NW,matrixAppendRotationInv:(i,t,e=0,r=0,s=0,n=0)=>{let o=ep[it.inv(t)],a=o.a,l=o.b,c=o.c,h=o.d,u=e-Math.min(0,a*s,c*n,a*s+c*n),d=r-Math.min(0,l*s,h*n,l*s+h*n),f=i.a,m=i.b,g=i.c,_=i.d;i.a=a*f+l*g,i.b=a*m+l*_,i.c=c*f+h*g,i.d=c*m+h*_,i.tx=u*f+d*g+i.tx,i.ty=u*m+d*_+i.ty},transformRectCoords:(i,t,e,r)=>{let{x:s,y:n,width:o,height:a}=i,{x:l,y:c,width:h,height:u}=t;return e===it.E?(r.set(s+l,n+c,o,a),r):e===it.S?r.set(h-n-a+l,s+c,a,o):e===it.W?r.set(h-s-o+l,u-n-a+c,o,a):e===it.N?r.set(n+l,u-s-o+c,a,o):r.set(s+l,n+c,o,a)}}});var hc,rp=p(()=>{"use strict";hc=()=>{}});var Gr,uc=p(()=>{P();$t();Gr=class extends st{constructor(t){let e=t.resource||new Float32Array(t.width*t.height*4),r=t.format;r||(e instanceof Float32Array?r="rgba32float":e instanceof Int32Array||e instanceof Uint32Array?r="rgba32uint":e instanceof Int16Array||e instanceof Uint16Array?r="rgba16uint":(e instanceof Int8Array,r="bgra8unorm")),super({...t,resource:e,format:r}),this.uploadMethodId="buffer"}static test(t){return t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array}};Gr.extension=y.TextureSource});var ip,yi,dc=p(()=>{ot();ip=new k,yi=class{constructor(t,e){this.mapCoord=new k,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._updateID=0,this.clampOffset=0,typeof e>"u"?this.clampMargin=t.width<10?0:.5:this.clampMargin=e,this.isSimple=!1,this.texture=t}get texture(){return this._texture}set texture(t){this._texture!==t&&(this._texture?.removeListener("update",this.update,this),this._texture=t,this._texture.addListener("update",this.update,this)),this.update()}destroy(){this._texture?.removeListener("update",this.update,this),this._texture=null}multiplyUvs(t,e){e===void 0&&(e=t);let r=this.mapCoord;for(let s=0;s<t.length;s+=2){let n=t[s],o=t[s+1];e[s]=n*r.a+o*r.c+r.tx,e[s+1]=n*r.b+o*r.d+r.ty}return e}update(){let t=this._texture;this._updateID++;let e=t.uvs;this.mapCoord.set(e.x1-e.x0,e.y1-e.y0,e.x3-e.x0,e.y3-e.y0,e.x0,e.y0);let r=t.orig,s=t.trim;s&&(ip.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(ip));let n=t.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,l=this.clampOffset/n._resolution;return o[0]=(t.frame.x+a+l)/n.width,o[1]=(t.frame.y+a+l)/n.height,o[2]=(t.frame.x+t.frame.width-a+l)/n.width,o[3]=(t.frame.y+t.frame.height-a+l)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=t.frame.width===n.width&&t.frame.height===n.height&&t.rotate===0,!0}}});var U,gt=p(()=>{Ht();bs();Yt();Ft();yt();rp();uc();$t();dc();U=class extends ut{constructor({source:t,label:e,frame:r,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:l,dynamic:c}={}){if(super(),this.uid=$("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new J,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=e,this.source=t?.source??new st,this.noFrame=!r,r)this.frame.copyFrom(r);else{let{width:h,height:u}=this._source;this.frame.width=h,this.frame.height=u}this.orig=s||this.frame,this.trim=n,this.rotate=l??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=c||!1,this.updateUvs()}set source(t){this._source&&this._source.off("resize",this.update,this),this._source=t,t.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new yi(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:t,frame:e}=this,{width:r,height:s}=this._source,n=e.x/r,o=e.y/s,a=e.width/r,l=e.height/s,c=this.rotate;if(c){let h=a/2,u=l/2,d=n+h,f=o+u;c=it.add(c,it.NW),t.x0=d+h*it.uX(c),t.y0=f+u*it.uY(c),c=it.add(c,2),t.x1=d+h*it.uX(c),t.y1=f+u*it.uY(c),c=it.add(c,2),t.x2=d+h*it.uX(c),t.y2=f+u*it.uY(c),c=it.add(c,2),t.x3=d+h*it.uX(c),t.y3=f+u*it.uY(c)}else t.x0=n,t.y0=o,t.x1=n+a,t.y1=o,t.x2=n+a,t.y2=o+l,t.x3=n,t.y3=o+l}destroy(t=!1){this._source&&(this._source.off("resize",this.update,this),t&&(this._source.destroy(),this._source=null)),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return O(rt,"Texture.baseTexture is now Texture.source"),this._source}};U.EMPTY=new U({label:"EMPTY",source:new st({label:"EMPTY"})});U.EMPTY.destroy=hc;U.WHITE=new U({source:new Gr({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});U.WHITE.destroy=hc});var pS,fc,Mt,Fr=p(()=>{ys();Pr();$t();gt();Ar();pS=0,fc=class{constructor(t){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=t||{},this.enableFullScreen=!1,this.textureStyle=new ce(this.textureOptions)}createTexture(t,e,r,s){let n=new st({...this.textureOptions,width:t,height:e,resolution:1,antialias:r,autoGarbageCollect:!1,autoGenerateMipmaps:s});return new U({source:n,label:`texturePool_${pS++}`})}getOptimalTexture(t,e,r=1,s,n=!1){let o=Math.ceil(t*r-1e-6),a=Math.ceil(e*r-1e-6);o=Je(o),a=Je(a);let l=s?1:0,c=n?1:0,h=(o<<17)+(a<<2)+(c<<1)+l;this._texturePool[h]||(this._texturePool[h]=[]);let u=this._texturePool[h].pop();return u||(u=this.createTexture(o,a,s,n)),u.source._resolution=r,u.source.width=o/r,u.source.height=a/r,u.source.pixelWidth=o,u.source.pixelHeight=a,u.frame.x=0,u.frame.y=0,u.frame.width=t,u.frame.height=e,u.updateUvs(),this._poolKeyHash[u.uid]=h,u}getSameSizeTexture(t,e=!1){let r=t.source;return this.getOptimalTexture(t.width,t.height,r._resolution,e)}returnTexture(t,e=!1){let r=this._poolKeyHash[t.uid];e&&(t.source.style=this.textureStyle),this._texturePool[r].push(t)}clear(t){if(t=t!==!1,t)for(let e in this._texturePool){let r=this._texturePool[e];if(r)for(let s=0;s<r.length;s++)r[s].destroy(!0)}this._texturePool={}}},Mt=new fc;ye.register(Mt)});var Ur,pc=p(()=>{ot();Ao();Fr();Ur=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new k,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new hr,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(t){this.root=t,t._onRender&&this.addOnRender(t),t.didChange=!0;let e=t.children;for(let r=0;r<e.length;r++){let s=e[r];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(t={}){this.textureOptions=t,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Mt.returnTexture(this.texture,!0),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0;let t=this._parentCacheAsTextureRenderGroup;t&&!t.textureNeedsUpdate&&t.updateCacheTexture()}reset(){this.renderGroupChildren.length=0;for(let t in this.childrenToUpdate){let e=this.childrenToUpdate[t];e.list.fill(null),e.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(t){t.renderGroupParent&&t.renderGroupParent._removeRenderGroupChild(t),t.renderGroupParent=this,this.renderGroupChildren.push(t)}_removeRenderGroupChild(t){let e=this.renderGroupChildren.indexOf(t);e>-1&&this.renderGroupChildren.splice(e,1),t.renderGroupParent=null}addChild(t){if(this.structureDidChange=!0,t.parentRenderGroup=this,t.updateTick=-1,t.parent===this.root?t.relativeRenderGroupDepth=1:t.relativeRenderGroupDepth=t.parent.relativeRenderGroupDepth+1,t.didChange=!0,this.onChildUpdate(t),t.renderGroup){this.addRenderGroupChild(t.renderGroup);return}t._onRender&&this.addOnRender(t);let e=t.children;for(let r=0;r<e.length;r++)this.addChild(e[r])}removeChild(t){if(this.structureDidChange=!0,t._onRender&&(t.renderGroup||this.removeOnRender(t)),t.parentRenderGroup=null,t.renderGroup){this._removeRenderGroupChild(t.renderGroup);return}let e=t.children;for(let r=0;r<e.length;r++)this.removeChild(e[r])}removeChildren(t){for(let e=0;e<t.length;e++)this.removeChild(t[e])}onChildUpdate(t){let e=this.childrenToUpdate[t.relativeRenderGroupDepth];e||(e=this.childrenToUpdate[t.relativeRenderGroupDepth]={index:0,list:[]}),e.list[e.index++]=t}updateRenderable(t){t.globalDisplayStatus<7||(this.instructionSet.renderPipes[t.renderPipeId].updateRenderable(t),t.didViewUpdate=!1)}onChildViewUpdate(t){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=t}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(t){this._onRenderContainers.indexOf(t)===-1&&this._onRenderContainers.push(t)}removeOnRender(t){let e=this._onRenderContainers.indexOf(t);e!==-1&&this._onRenderContainers.splice(e,1)}runOnRender(t){for(let e=0;e<this._onRenderContainers.length;e++)this._onRenderContainers[e]._onRender(t)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(t=[]){let e=this.root.children;for(let r=0;r<e.length;r++)this._getChildren(e[r],t);return t}_getChildren(t,e=[]){if(e.push(t),t.renderGroup)return e;let r=t.children;for(let s=0;s<r.length;s++)this._getChildren(r[s],e);return e}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new k),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new k),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let t=this._parentCacheAsTextureRenderGroup;return t?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new k),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(t.inverseWorldTransform).translate(-t._textureBounds.x,-t._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this.isCachedAsTexture?this.textureOffsetInverseTransform:this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function sp(i,t,e={}){for(let r in t)!e[r]&&t[r]!==void 0&&(i[r]=t[r])}var np=p(()=>{"use strict"});var mc,Bo,gc,Io,bi,vs,Dr,mt,Pe=p(()=>{Ht();Qt();mf();P();ot();Ql();bo();Ft();yt();ht();Ke();wf();Ef();Mf();kf();If();Uf();Po();Wf();jf();Yf();qf();pc();np();mc=new Gt(null),Bo=new Gt(null),gc=new Gt(null,1,1),Io=new Gt(null),bi=1,vs=2,Dr=4,mt=class i extends ut{constructor(t={}){super(),this.uid=$("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.parentRenderLayer=null,this.updateTick=-1,this.localTransform=new k,this.relativeGroupTransform=new k,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new Gt(this,0,0),this._scale=gc,this._pivot=Bo,this._origin=Io,this._skew=mc,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],sp(this,t,{children:!0,parent:!0,effects:!0}),t.children?.forEach(e=>this.addChild(e)),t.parent?.addChild(this)}static mixin(t){O("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),z.mixin(i,t)}set _didChangeId(t){this._didViewChangeTick=t>>12&4095,this._didContainerChangeTick=t&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...t){if(this.allowChildren||O(rt,"addChild: Only Containers will be allowed to add children in v8.0.0"),t.length>1){for(let s=0;s<t.length;s++)this.addChild(t[s]);return t[0]}let e=t[0],r=this.renderGroup||this.parentRenderGroup;return e.parent===this?(this.children.splice(this.children.indexOf(e),1),this.children.push(e),r&&(r.structureDidChange=!0),e):(e.parent&&e.parent.removeChild(e),this.children.push(e),this.sortableChildren&&(this.sortDirty=!0),e.parent=this,e.didChange=!0,e._updateFlags=15,r&&r.addChild(e),this.emit("childAdded",e,this,this.children.length-1),e.emit("added",this),this._didViewChangeTick++,e._zIndex!==0&&e.depthOfChildModified(),e)}removeChild(...t){if(t.length>1){for(let s=0;s<t.length;s++)this.removeChild(t[s]);return t[0]}let e=t[0],r=this.children.indexOf(e);return r>-1&&(this._didViewChangeTick++,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(e):this.parentRenderGroup&&this.parentRenderGroup.removeChild(e),e.parentRenderLayer&&e.parentRenderLayer.detach(e),e.parent=null,this.emit("childRemoved",e,this,r),e.emit("removed",this)),e}_onUpdate(t){t&&t===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(t){!!this.renderGroup!==t&&(t?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let t=this.parentRenderGroup;t?.removeChild(this),this.renderGroup=bt.get(Ur,this),this.groupTransform=k.IDENTITY,t?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let t=this.parentRenderGroup;t?.removeChild(this),bt.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,t?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new k),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(t){this._position.x=t}get y(){return this._position.y}set y(t){this._position.y=t}get position(){return this._position}set position(t){this._position.copyFrom(t)}get rotation(){return this._rotation}set rotation(t){this._rotation!==t&&(this._rotation=t,this._onUpdate(this._skew))}get angle(){return this.rotation*xf}set angle(t){this.rotation=t*_f}get pivot(){return this._pivot===Bo&&(this._pivot=new Gt(this,0,0)),this._pivot}set pivot(t){this._pivot===Bo&&(this._pivot=new Gt(this,0,0),this._origin!==Io&&L("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof t=="number"?this._pivot.set(t):this._pivot.copyFrom(t)}get skew(){return this._skew===mc&&(this._skew=new Gt(this,0,0)),this._skew}set skew(t){this._skew===mc&&(this._skew=new Gt(this,0,0)),this._skew.copyFrom(t)}get scale(){return this._scale===gc&&(this._scale=new Gt(this,1,1)),this._scale}set scale(t){this._scale===gc&&(this._scale=new Gt(this,0,0)),typeof t=="string"&&(t=parseFloat(t)),typeof t=="number"?this._scale.set(t):this._scale.copyFrom(t)}get origin(){return this._origin===Io&&(this._origin=new Gt(this,0,0)),this._origin}set origin(t){this._origin===Io&&(this._origin=new Gt(this,0,0),this._pivot!==Bo&&L("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof t=="number"?this._origin.set(t):this._origin.copyFrom(t)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(t){let e=this.getLocalBounds().width;this._setWidth(t,e)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(t){let e=this.getLocalBounds().height;this._setHeight(t,e)}getSize(t){t||(t={});let e=this.getLocalBounds();return t.width=Math.abs(this.scale.x*e.width),t.height=Math.abs(this.scale.y*e.height),t}setSize(t,e){let r=this.getLocalBounds();typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,r.width),e!==void 0&&this._setHeight(e,r.height)}_updateSkew(){let t=this._rotation,e=this._skew;this._cx=Math.cos(t+e._y),this._sx=Math.sin(t+e._y),this._cy=-Math.sin(t-e._x),this._sy=Math.cos(t-e._x)}updateTransform(t){return this.position.set(typeof t.x=="number"?t.x:this.position.x,typeof t.y=="number"?t.y:this.position.y),this.scale.set(typeof t.scaleX=="number"?t.scaleX:this.scale.x,typeof t.scaleY=="number"?t.scaleY:this.scale.y),this.rotation=typeof t.rotation=="number"?t.rotation:this.rotation,this.skew.set(typeof t.skewX=="number"?t.skewX:this.skew.x,typeof t.skewY=="number"?t.skewY:this.skew.y),this.pivot.set(typeof t.pivotX=="number"?t.pivotX:this.pivot.x,typeof t.pivotY=="number"?t.pivotY:this.pivot.y),this.origin.set(typeof t.originX=="number"?t.originX:this.origin.x,typeof t.originY=="number"?t.originY:this.origin.y),this}setFromMatrix(t){t.decompose(this)}updateLocalTransform(){let t=this._didContainerChangeTick;if(this._didLocalTransformChangeId===t)return;this._didLocalTransformChangeId=t;let e=this.localTransform,r=this._scale,s=this._pivot,n=this._origin,o=this._position,a=r._x,l=r._y,c=s._x,h=s._y,u=-n._x,d=-n._y;e.a=this._cx*a,e.b=this._sx*a,e.c=this._cy*l,e.d=this._sy*l,e.tx=o._x-(c*e.a+h*e.c)+(u*e.a+d*e.c)-u,e.ty=o._y-(c*e.b+h*e.d)+(u*e.b+d*e.d)-d}set alpha(t){t!==this.localAlpha&&(this.localAlpha=t,this._updateFlags|=bi,this._onUpdate())}get alpha(){return this.localAlpha}set tint(t){let r=Q.shared.setValue(t??16777215).toBgrNumber();r!==this.localColor&&(this.localColor=r,this._updateFlags|=bi,this._onUpdate())}get tint(){return Qe(this.localColor)}set blendMode(t){this.localBlendMode!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=vs,this.localBlendMode=t,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(t){let e=t?2:0;(this.localDisplayStatus&2)!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Dr,this.localDisplayStatus^=2,this._onUpdate(),this.emit("visibleChanged",t))}get culled(){return!(this.localDisplayStatus&4)}set culled(t){let e=t?0:4;(this.localDisplayStatus&4)!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Dr,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(t){let e=t?1:0;(this.localDisplayStatus&1)!==e&&(this._updateFlags|=Dr,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(t=!1){if(this.destroyed)return;this.destroyed=!0;let e;if(this.children.length&&(e=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._origin=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof t=="boolean"?t:t?.children)&&e)for(let s=0;s<e.length;++s)e[s].destroy(t);this.renderGroup?.destroy(),this.renderGroup=null}};z.mixin(mt,Cf,Ff,$f,Vf,Hf,Rf,Bf,Xf,pf,Tf,Of,Pf)});var De,Ss=p(()=>{"use strict";De=(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))(De||{})});var vi,op=p(()=>{"use strict";vi=class{constructor(t,e=null,r=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,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(!0),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=!1){this._destroyed=!0,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 ap,qt,Si=p(()=>{Ss();op();ap=class fe{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new vi(null,null,1/0),this.deltaMS=1/fe.targetFPMS,this.elapsedMS=1/fe.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=De.NORMAL){return this._addListener(new vi(t,e,r))}addOnce(t,e,r=De.NORMAL){return this._addListener(new vi(t,e,r,!0))}_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=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let t=this._head.next;for(;t;)t=t.destroy(!0);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 n=t-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=t-n%this._minElapsedMS}this.deltaMS=e,this.deltaTime=this.deltaMS*fe.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(Math.max(0,t)/1e3,fe.targetFPMS);this._maxElapsedMS=1/e,this._minElapsedMS&&t>this.maxFPS&&(this.maxFPS=t)}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(t){t===0?this._minElapsedMS=0:(t<this.minFPS&&(this.minFPS=t),this._minElapsedMS=1/(t/1e3))}static get shared(){if(!fe._shared){let t=fe._shared=new fe;t.autoStart=!0,t._protected=!0}return fe._shared}static get system(){if(!fe._system){let t=fe._system=new fe;t.autoStart=!0,t._protected=!0}return fe._system}};ap.targetFPMS=.06;qt=ap});var Ti,xc=p(()=>{Ss();Si();Ti=class{constructor(t){this._lastTransform="",this._observer=null,this._tickerAttached=!1,this.updateTranslation=()=>{if(!this._canvas)return;let e=this._canvas.getBoundingClientRect(),r=this._canvas.width,s=this._canvas.height,n=e.width/r*this._renderer.resolution,o=e.height/s*this._renderer.resolution,a=e.left,l=e.top,c=`translate(${a}px, ${l}px) scale(${n}, ${o})`;c!==this._lastTransform&&(this._domElement.style.transform=c,this._lastTransform=c)},this._domElement=t.domElement,this._renderer=t.renderer,!(globalThis.OffscreenCanvas&&this._renderer.canvas instanceof OffscreenCanvas)&&(this._canvas=this._renderer.canvas,this._attachObserver())}get canvas(){return this._canvas}ensureAttached(){!this._domElement.parentNode&&this._canvas.parentNode&&(this._canvas.parentNode.appendChild(this._domElement),this.updateTranslation())}_attachObserver(){"ResizeObserver"in globalThis?(this._observer&&(this._observer.disconnect(),this._observer=null),this._observer=new ResizeObserver(t=>{for(let e of t){if(e.target!==this._canvas)continue;let r=this.canvas.width,s=this.canvas.height,n=e.contentRect.width/r*this._renderer.resolution,o=e.contentRect.height/s*this._renderer.resolution;(this._lastScaleX!==n||this._lastScaleY!==o)&&(this.updateTranslation(),this._lastScaleX=n,this._lastScaleY=o)}}),this._observer.observe(this._canvas)):this._tickerAttached||qt.shared.add(this.updateTranslation,this,De.HIGH)}destroy(){this._observer?(this._observer.disconnect(),this._observer=null):this._tickerAttached&&qt.shared.remove(this.updateTranslation),this._domElement=null,this._renderer=null,this._canvas=null,this._tickerAttached=!1,this._lastTransform="",this._lastScaleX=null,this._lastScaleY=null}}});var ur,Go=p(()=>{Ee();ur=class i{constructor(t){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=i.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new nt,this.page=new nt,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=t}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(t,e,r){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(t,e,r,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function mS(i){return function(t){return t.test(i)}}function Ts(i){var t={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?t={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?t.userAgent=i:i&&i.userAgent&&(t={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var e=t.userAgent,r=e.split("[FBAN");typeof r[1]<"u"&&(e=r[0]),r=e.split("Twitter"),typeof r[1]<"u"&&(e=r[0]);var s=mS(e),n={apple:{phone:s(_c)&&!s(tr),ipod:s(lp),tablet:!s(_c)&&(s(cp)||_p(t))&&!s(tr),universal:s(hp),device:(s(_c)||s(lp)||s(cp)||s(hp)||_p(t))&&!s(tr)},amazon:{phone:s(wi),tablet:!s(wi)&&s(Fo),device:s(wi)||s(Fo)},android:{phone:!s(tr)&&s(wi)||!s(tr)&&s(yc),tablet:!s(tr)&&!s(wi)&&!s(yc)&&(s(Fo)||s(up)),device:!s(tr)&&(s(wi)||s(Fo)||s(yc)||s(up))||s(/\bokhttp\b/i)},windows:{phone:s(tr),tablet:s(dp),device:s(tr)||s(dp)},other:{blackberry:s(fp),blackberry10:s(pp),opera:s(mp),firefox:s(xp),chrome:s(gp),device:s(fp)||s(pp)||s(mp)||s(xp)||s(gp)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var _c,lp,cp,hp,yc,up,wi,Fo,tr,dp,fp,pp,mp,gp,xp,_p,bc=p(()=>{_c=/iPhone/i,lp=/iPod/i,cp=/iPad/i,hp=/\biOS-universal(?:.+)Mac\b/i,yc=/\bAndroid(?:.+)Mobile\b/i,up=/Android/i,wi=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Fo=/Silk/i,tr=/Windows Phone/i,dp=/\bWindows(?:.+)ARM\b/i,fp=/BlackBerry/i,pp=/BB10/i,mp=/Opera Mini/i,gp=/\b(CriOS|Chrome)(?:.+)Mobile/i,xp=/Mobile(?:.+)Firefox\b/i,_p=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var yp=p(()=>{bc();bc()});var gS,bp,vp=p(()=>{yp();gS=Ts.default??Ts,bp=gS(globalThis.navigator)});var xS,Sp,_S,yS,Tp,wp,bS,vS,SS,vc,Ep,Pp=p(()=>{xc();Go();P();vp();ic();xS=9,Sp=100,_S=0,yS=0,Tp=2,wp=1,bS=-1e3,vS=-1e3,SS=2,vc=class Cp{constructor(t,e=bp){this._mobileInfo=e,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pools={},this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._isRunningTests=!1,this._boundOnKeyDown=this._onKeyDown.bind(this),this._boundOnMouseMove=this._onMouseMove.bind(this),this._hookDiv=null,(e.tablet||e.phone)&&this._createTouchHook(),this._renderer=t}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}get div(){return this._div}_createTouchHook(){let t=document.createElement("button");t.style.width=`${wp}px`,t.style.height=`${wp}px`,t.style.position="absolute",t.style.top=`${bS}px`,t.style.left=`${vS}px`,t.style.zIndex=SS.toString(),t.style.backgroundColor="#FF0000",t.title="select to enable accessibility for this content",t.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(t),this._hookDiv=t}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.position="absolute",this._div.style.top=`${_S}px`,this._div.style.left=`${yS}px`,this._div.style.pointerEvents="none",this._div.style.zIndex=Tp.toString(),this._canvasObserver=new Ti({domElement:this._div,renderer:this._renderer})),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._deactivateOnMouseMove&&globalThis.document.addEventListener("mousemove",this._boundOnMouseMove,!0);let t=this._renderer.view.canvas;if(t.parentNode)this._canvasObserver.ensureAttached(),this._initAccessibilitySetup();else{let e=new MutationObserver(()=>{t.parentNode&&(e.disconnect(),this._canvasObserver.ensureAttached(),this._initAccessibilitySetup())});e.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let t of this._children)t._accessibleDiv?.parentNode&&(t._accessibleDiv.parentNode.removeChild(t._accessibleDiv),t._accessibleDiv=null),t._accessibleActive=!1;for(let t in this._pools)this._pools[t].forEach(r=>{r.parentNode&&r.parentNode.removeChild(r)}),delete this._pools[t];this._div?.parentNode&&this._div.parentNode.removeChild(this._div),this._pools={},this._children=[]}}_updateAccessibleObjects(t){if(!t.visible||!t.accessibleChildren)return;t.accessible&&(t._accessibleActive||this._addChild(t),t._renderId=this._renderId);let e=t.children;if(e)for(let r=0;r<e.length;r++)this._updateAccessibleObjects(e[r])}init(t){let r={accessibilityOptions:{...Cp.defaultOptions,...t?.accessibilityOptions||{}}};this.debug=r.accessibilityOptions.debug,this._activateOnTab=r.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=r.accessibilityOptions.deactivateOnMouseMove,r.accessibilityOptions.enabledByDefault&&this._activate(),this._renderer.runners.postrender.remove(this)}postrender(){let t=performance.now();if(this._mobileInfo.android.device&&t<this._androidUpdateCount||(this._androidUpdateCount=t+this._androidUpdateFrequency,(!this._renderer.renderingToScreen||!this._renderer.view.canvas)&&!this._isRunningTests))return;let e=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let r of this._children)r._renderId===this._renderId&&e.add(this._children.indexOf(r))}for(let r=this._children.length-1;r>=0;r--){let s=this._children[r];e.has(r)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._getPool(s.accessibleType).push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,So(this._children,r,1))}this._renderer.renderingToScreen&&this._canvasObserver.ensureAttached();for(let r=0;r<this._children.length;r++){let s=this._children[r];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform;n.style.left=`${a.tx+o.x*a.a}px`,n.style.top=`${a.ty+o.y*a.d}px`,n.style.width=`${o.width*a.a}px`,n.style.height=`${o.height*a.d}px`}else this._capHitArea(o),n.style.left=`${o.x}px`,n.style.top=`${o.y}px`,n.style.width=`${o.width}px`,n.style.height=`${o.height}px`}this._renderId++}_updateDebugHTML(t){t.innerHTML=`type: ${t.type}</br> title : ${t.title}</br> tabIndex: ${t.tabIndex}`}_capHitArea(t){t.x<0&&(t.width+=t.x,t.x=0),t.y<0&&(t.height+=t.y,t.y=0);let{width:e,height:r}=this._renderer;t.x+t.width>e&&(t.width=e-t.x),t.y+t.height>r&&(t.height=r-t.y)}_addChild(t){let r=this._getPool(t.accessibleType).pop();r?(r.innerHTML="",r.removeAttribute("title"),r.removeAttribute("aria-label"),r.tabIndex=0):(t.accessibleType==="button"?r=document.createElement("button"):(r=document.createElement(t.accessibleType),r.style.cssText=`
|
|
4
|
+
`),n?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",s),console.warn(r),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",s),console.warn(r))),vf.add(t)});Object.defineProperties(O,{quiet:{get:()=>gi.quiet,set:i=>{gi.quiet=i},enumerable:!0,configurable:!1},noColor:{get:()=>gi.noColor,set:i=>{gi.noColor=i},enumerable:!0,configurable:!1}})});function L(...i){ec!==Tf&&(ec++,ec===Tf?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var ec,Tf,ht=p(()=>{"use strict";ec=0,Tf=500});var ye,Pr=p(()=>{"use strict";ye={_registeredResources:new Set,register(i){this._registeredResources.add(i)},unregister(i){this._registeredResources.delete(i)},release(){this._registeredResources.forEach(i=>i.clear())},get registeredCount(){return this._registeredResources.size},isRegistered(i){return this._registeredResources.has(i)},reset(){this._registeredResources.clear()}}});var So,wf=p(()=>{"use strict";So=class{constructor(t,e){this._pool=[],this._count=0,this._index=0,this._classType=t,e&&this.prepopulate(e)}prepopulate(t){for(let e=0;e<t;e++)this._pool[this._index++]=new this._classType;this._count+=t}get(t){let e;return this._index>0?e=this._pool[--this._index]:(e=new this._classType,this._count++),e.init?.(t),e}return(t){t.reset?.(),this._pool[this._index++]=t}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){if(this._pool.length>0&&this._pool[0].destroy)for(let t=0;t<this._index;t++)this._pool[t].destroy();this._pool.length=0,this._count=0,this._index=0}}});var rc,bt,Ke=p(()=>{Pr();wf();rc=class{constructor(){this._poolsByClass=new Map}prepopulate(t,e){this.getPool(t).prepopulate(e)}get(t,e){return this.getPool(t).get(e)}return(t){this.getPool(t.constructor).return(t)}getPool(t){return this._poolsByClass.has(t)||this._poolsByClass.set(t,new So(t)),this._poolsByClass.get(t)}stats(){let t={};return this._poolsByClass.forEach(e=>{let r=t[e._classType.name]?e._classType.name+e._classType.ID:e._classType.name;t[r]={free:e.totalFree,used:e.totalUsed,size:e.totalSize}}),t}clear(){this._poolsByClass.forEach(t=>t.clear()),this._poolsByClass.clear()}},bt=new rc;ye.register(bt)});var Cf,Ef=p(()=>{yt();Cf={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(i){typeof i=="boolean"&&i===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(i===!0?{}:i))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(i){O("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function To(i,t,e){let r=i.length,s;if(t>=r||e===0)return;e=t+e>r?r-t:e;let n=r-e;for(s=t;s<n;++s)i[s]=i[s+e];i.length=n}var ic=p(()=>{"use strict"});var Pf,Mf=p(()=>{ic();yt();Pf={allowChildren:!0,removeChildren(i=0,t){let e=t??this.children.length,r=e-i,s=[];if(r>0&&r<=e){for(let o=e-1;o>=i;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}To(this.children,i,e);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(r===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(i){let t=this.getChildAt(i);return this.removeChild(t)},getChildAt(i){if(i<0||i>=this.children.length)throw new Error(`getChildAt: Index (${i}) does not exist.`);return this.children[i]},setChildIndex(i,t){if(t<0||t>=this.children.length)throw new Error(`The index ${t} supplied is out of bounds ${this.children.length}`);this.getChildIndex(i),this.addChildAt(i,t)},getChildIndex(i){let t=this.children.indexOf(i);if(t===-1)throw new Error("The supplied Container must be a child of the caller");return t},addChildAt(i,t){this.allowChildren||O(rt,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:e}=this;if(t<0||t>e.length)throw new Error(`${i}addChildAt: The index ${t} supplied is out of bounds ${e.length}`);let r=i.parent===this;if(i.parent){let n=i.parent.children.indexOf(i);if(r){if(n===t)return i;i.parent.children.splice(n,1)}else i.removeFromParent()}t===e.length?e.push(i):e.splice(t,0,i);let s=this.renderGroup||this.parentRenderGroup;return this.sortableChildren&&(this.sortDirty=!0),r?(s&&(s.structureDidChange=!0),i):(i.parent=this,i.didChange=!0,i._updateFlags=15,s&&s.addChild(i),this.emit("childAdded",i,this,t),i.emit("added",this),i)},swapChildren(i,t){if(i===t)return;let e=this.getChildIndex(i),r=this.getChildIndex(t);this.children[e]=t,this.children[r]=i;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...i){return i.length===1?this.reparentChildAt(i[0],this.children.length):(i.forEach(t=>this.reparentChildAt(t,this.children.length)),i[0])},reparentChildAt(i,t){if(i.parent===this)return this.setChildIndex(i,t),i;let e=i.worldTransform.clone();i.removeFromParent(),this.addChildAt(i,t);let r=this.worldTransform.clone();return r.invert(),e.prepend(r),i.setFromMatrix(e),i},replaceChild(i,t){i.updateLocalTransform(),this.addChildAt(t,this.getChildIndex(i)),t.setFromMatrix(i.localTransform),t.updateLocalTransform(),this.removeChild(i)}}});var Af,Rf=p(()=>{"use strict";Af={collectRenderables(i,t,e){this.parentRenderLayer&&this.parentRenderLayer!==e||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(i,t,e):this.renderGroup?t.renderPipes.renderGroup.addRenderGroup(this.renderGroup,i):this.collectRenderablesWithEffects(i,t,e))},collectRenderablesSimple(i,t,e){let r=this.children,s=r.length;for(let n=0;n<s;n++)r[n].collectRenderables(i,t,e)},collectRenderablesWithEffects(i,t,e){let{renderPipes:r}=t;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];r[n.pipe].push(n,this,i)}this.collectRenderablesSimple(i,t,e);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];r[n.pipe].pop(n,this,i)}}}});var Ze,wo=p(()=>{"use strict";Ze=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let t=0;t<this.filters.length;t++)this.filters[t].destroy();this.filters=null,this.filterArea=null}}});var sc,Co,kf=p(()=>{P();Ke();sc=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(t=>{this.add({test:t.test,maskClass:t})}))}add(t){this._tests.push(t)}getMaskEffect(t){this._initialized||this.init();for(let e=0;e<this._tests.length;e++){let r=this._tests[e];if(r.test(t))return bt.get(r.maskClass,t)}return t}returnMaskEffect(t){bt.return(t)}},Co=new sc;z.handleByList(y.MaskEffect,Co._effectClasses)});var Bf,If=p(()=>{wo();kf();Bf={_maskEffect:null,_maskOptions:{inverse:!1,channel:"red"},_filterEffect:null,effects:[],_markStructureAsChanged(){let i=this.renderGroup||this.parentRenderGroup;i&&(i.structureDidChange=!0)},addEffect(i){this.effects.indexOf(i)===-1&&(this.effects.push(i),this.effects.sort((e,r)=>e.priority-r.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(i){let t=this.effects.indexOf(i);t!==-1&&(this.effects.splice(t,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(i){let t=this._maskEffect;t?.mask!==i&&(t&&(this.removeEffect(t),Co.returnMaskEffect(t),this._maskEffect=null),i!=null&&(this._maskEffect=Co.getMaskEffect(i),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(i){this._maskOptions={...this._maskOptions,...i},i.mask&&(this.mask=i.mask),this._markStructureAsChanged()},set filters(i){!Array.isArray(i)&&i&&(i=[i]);let t=this._filterEffect||(this._filterEffect=new Ze);i=i;let e=i?.length>0,r=t.filters?.length>0,s=e!==r;i=Array.isArray(i)?i.slice(0):i,t.filters=Object.freeze(i),s&&(e?this.addEffect(t):(this.removeEffect(t),t.filters=i??null))},get filters(){return this._filterEffect?.filters},set filterArea(i){this._filterEffect||(this._filterEffect=new Ze),this._filterEffect.filterArea=i},get filterArea(){return this._filterEffect?.filterArea}}});var Gf,Ff=p(()=>{yt();Gf={label:null,get name(){return O(rt,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){O(rt,"Container.name property has been removed, use Container.label instead"),this.label=i},getChildByName(i,t=!1){return this.getChildByLabel(i,t)},getChildByLabel(i,t=!1){let e=this.children;for(let r=0;r<e.length;r++){let s=e[r];if(s.label===i||i instanceof RegExp&&i.test(s.label))return s}if(t)for(let r=0;r<e.length;r++){let n=e[r].getChildByLabel(i,!0);if(n)return n}return null},getChildrenByLabel(i,t=!1,e=[]){let r=this.children;for(let s=0;s<r.length;s++){let n=r[s];(n.label===i||i instanceof RegExp&&i.test(n.label))&&e.push(n)}if(t)for(let s=0;s<r.length;s++)r[s].getChildrenByLabel(i,!0,e);return e}}});var Eo,J,Yt=p(()=>{Ee();Eo=[new nt,new nt,new nt,new nt],J=class i{constructor(t=0,e=0,r=0,s=0){this.type="rectangle",this.x=Number(t),this.y=Number(e),this.width=Number(r),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new i(0,0,0,0)}clone(){return new i(this.x,this.y,this.width,this.height)}copyFromBounds(t){return this.x=t.minX,this.y=t.minY,this.width=t.maxX-t.minX,this.height=t.maxY-t.minY,this}copyFrom(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this}copyTo(t){return t.copyFrom(this),t}contains(t,e){return this.width<=0||this.height<=0?!1:t>=this.x&&t<this.x+this.width&&e>=this.y&&e<this.y+this.height}strokeContains(t,e,r,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,l=this.y,c=r*(1-s),h=r-c,u=a-c,d=a+n+c,f=l-c,m=l+o+c,g=a+h,_=a+n-h,x=l+h,b=l+o-h;return t>=u&&t<=d&&e>=f&&e<=m&&!(t>g&&t<_&&e>x&&e<b)}intersects(t,e){if(!e){let B=this.x<t.x?t.x:this.x;if((this.right>t.right?t.right:this.right)<=B)return!1;let M=this.y<t.y?t.y:this.y;return(this.bottom>t.bottom?t.bottom:this.bottom)>M}let r=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=r||o<=n)return!1;let a=Eo[0].set(t.left,t.top),l=Eo[1].set(t.left,t.bottom),c=Eo[2].set(t.right,t.top),h=Eo[3].set(t.right,t.bottom);if(c.x<=a.x||l.y<=a.y)return!1;let u=Math.sign(e.a*e.d-e.b*e.c);if(u===0||(e.apply(a,a),e.apply(l,l),e.apply(c,c),e.apply(h,h),Math.max(a.x,l.x,c.x,h.x)<=r||Math.min(a.x,l.x,c.x,h.x)>=s||Math.max(a.y,l.y,c.y,h.y)<=n||Math.min(a.y,l.y,c.y,h.y)>=o))return!1;let d=u*(l.y-a.y),f=u*(a.x-l.x),m=d*r+f*n,g=d*s+f*n,_=d*r+f*o,x=d*s+f*o;if(Math.max(m,g,_,x)<=d*a.x+f*a.y||Math.min(m,g,_,x)>=d*h.x+f*h.y)return!1;let b=u*(a.y-c.y),v=u*(c.x-a.x),S=b*r+v*n,T=b*s+v*n,w=b*r+v*o,E=b*s+v*o;return!(Math.max(S,T,w,E)<=b*a.x+v*a.y||Math.min(S,T,w,E)>=b*h.x+v*h.y)}pad(t=0,e=t){return this.x-=t,this.y-=e,this.width+=t*2,this.height+=e*2,this}fit(t){let e=Math.max(this.x,t.x),r=Math.min(this.x+this.width,t.x+t.width),s=Math.max(this.y,t.y),n=Math.min(this.y+this.height,t.y+t.height);return this.x=e,this.width=Math.max(r-e,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(t=1,e=.001){let r=Math.ceil((this.x+this.width-e)*t)/t,s=Math.ceil((this.y+this.height-e)*t)/t;return this.x=Math.floor((this.x+e)*t)/t,this.y=Math.floor((this.y+e)*t)/t,this.width=r-this.x,this.height=s-this.y,this}scale(t,e=t){return this.x*=t,this.y*=e,this.width*=t,this.height*=e,this}enlarge(t){let e=Math.min(this.x,t.x),r=Math.max(this.x+this.width,t.x+t.width),s=Math.min(this.y,t.y),n=Math.max(this.y+this.height,t.y+t.height);return this.x=e,this.width=r-e,this.y=s,this.height=n-s,this}getBounds(t){return t||(t=new i),t.copyFrom(this),t}containsRect(t){if(this.width<=0||this.height<=0)return!1;let e=t.x,r=t.y,s=t.x+t.width,n=t.y+t.height;return e>=this.x&&e<this.x+this.width&&r>=this.y&&r<this.y+this.height&&s>=this.x&&s<=this.x+this.width&&n>=this.y&&n<=this.y+this.height}set(t,e,r,s){return this.x=t,this.y=e,this.width=r,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var Uf,dt,ie=p(()=>{ot();Yt();Uf=new k,dt=class i{constructor(t=1/0,e=1/0,r=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Uf,this.minX=t,this.minY=e,this.maxX=r,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new J);let t=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(t.x=0,t.y=0,t.width=0,t.height=0):t.copyFromBounds(this),t}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=Uf,this}set(t,e,r,s){this.minX=t,this.minY=e,this.maxX=r,this.maxY=s}addFrame(t,e,r,s,n){n||(n=this.matrix);let o=n.a,a=n.b,l=n.c,c=n.d,h=n.tx,u=n.ty,d=this.minX,f=this.minY,m=this.maxX,g=this.maxY,_=o*t+l*e+h,x=a*t+c*e+u;_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*r+l*e+h,x=a*r+c*e+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*t+l*s+h,x=a*t+c*s+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),_=o*r+l*s+h,x=a*r+c*s+u,_<d&&(d=_),x<f&&(f=x),_>m&&(m=_),x>g&&(g=x),this.minX=d,this.minY=f,this.maxX=m,this.maxY=g}addRect(t,e){this.addFrame(t.x,t.y,t.x+t.width,t.y+t.height,e)}addBounds(t,e){this.addFrame(t.minX,t.minY,t.maxX,t.maxY,e)}addBoundsMask(t){this.minX=this.minX>t.minX?this.minX:t.minX,this.minY=this.minY>t.minY?this.minY:t.minY,this.maxX=this.maxX<t.maxX?this.maxX:t.maxX,this.maxY=this.maxY<t.maxY?this.maxY:t.maxY}applyMatrix(t){let e=this.minX,r=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c:l,d:c,tx:h,ty:u}=t,d=o*e+l*r+h,f=a*e+c*r+u;this.minX=d,this.minY=f,this.maxX=d,this.maxY=f,d=o*s+l*r+h,f=a*s+c*r+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*e+l*n+h,f=a*e+c*n+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*s+l*n+h,f=a*s+c*n+u,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY}fit(t){return this.minX<t.left&&(this.minX=t.left),this.maxX>t.right&&(this.maxX=t.right),this.minY<t.top&&(this.minY=t.top),this.maxY>t.bottom&&(this.maxY=t.bottom),this}fitBounds(t,e,r,s){return this.minX<t&&(this.minX=t),this.maxX>e&&(this.maxX=e),this.minY<r&&(this.minY=r),this.maxY>s&&(this.maxY=s),this}pad(t,e=t){return this.minX-=t,this.maxX+=t,this.minY-=e,this.maxY+=e,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new i(this.minX,this.minY,this.maxX,this.maxY)}scale(t,e=t){return this.minX*=t,this.minY*=e,this.maxX*=t,this.maxY*=e,this}get x(){return this.minX}set x(t){let e=this.maxX-this.minX;this.minX=t,this.maxX=t+e}get y(){return this.minY}set y(t){let e=this.maxY-this.minY;this.minY=t,this.maxY=t+e}get width(){return this.maxX-this.minX}set width(t){this.maxX=this.minX+t}get height(){return this.maxY-this.minY}set height(t){this.maxY=this.minY+t}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(t,e,r,s){let n=this.minX,o=this.minY,a=this.maxX,l=this.maxY;s||(s=this.matrix);let c=s.a,h=s.b,u=s.c,d=s.d,f=s.tx,m=s.ty;for(let g=e;g<r;g+=2){let _=t[g],x=t[g+1],b=c*_+u*x+f,v=h*_+d*x+m;n=b<n?b:n,o=v<o?v:o,a=b>a?b:a,l=v>l?v:l}this.minX=n,this.minY=o,this.maxX=a,this.maxY=l}containsPoint(t,e){return this.minX<=t&&this.minY<=e&&this.maxX>=t&&this.maxY>=e}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(t){return this.minX=t.minX,this.minY=t.minY,this.maxX=t.maxX,this.maxY=t.maxY,this}}});var Ut,fe,Mr=p(()=>{ot();Ke();ie();Ut=bt.getPool(k),fe=bt.getPool(dt)});var dS,Df,Lf=p(()=>{ot();ie();Mr();dS=new k,Df={getFastGlobalBounds(i,t){t||(t=new dt),t.clear(),this._getGlobalBoundsRecursive(!!i,t,this.parentRenderLayer),t.isValid||t.set(0,0,0,0);let e=this.renderGroup||this.parentRenderGroup;return t.applyMatrix(e.worldTransform),t},_getGlobalBoundsRecursive(i,t,e){let r=t;if(i&&this.parentRenderLayer&&this.parentRenderLayer!==e||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(r=fe.get().clear()),this.boundsArea)t.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;r.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(i,r,e)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,r.applyMatrix(o.worldTransform)),this.effects[a].addBounds(r,!0));n&&r.applyMatrix(o.worldTransform.copyTo(dS).invert()),t.addBounds(r),fe.return(r)}else this.renderGroup&&(t.addBounds(r,this.relativeGroupTransform),fe.return(r))}}});function xi(i,t,e){e.clear();let r,s;return i.parent?t?r=i.parent.worldTransform:(s=Ut.get().identity(),r=Po(i,s)):r=k.IDENTITY,Of(i,e,r,t),s&&Ut.return(s),e.isValid||e.set(0,0,0,0),e}function Of(i,t,e,r){if(!i.visible||!i.measurable)return;let s;r?s=i.worldTransform:(i.updateLocalTransform(),s=Ut.get(),s.appendFrom(i.localTransform,e));let n=t,o=!!i.effects.length;if(o&&(t=fe.get().clear()),i.boundsArea)t.addRect(i.boundsArea,s);else{let a=i.bounds;a&&!a.isEmpty()&&(t.matrix=s,t.addBounds(a));for(let l=0;l<i.children.length;l++)Of(i.children[l],t,s,r)}if(o){for(let a=0;a<i.effects.length;a++)i.effects[a].addBounds?.(t);n.addBounds(t,k.IDENTITY),fe.return(t)}r||Ut.return(s)}function Po(i,t){let e=i.parent;return e&&(Po(e,t),e.updateLocalTransform(),t.append(e.localTransform)),t}var _s=p(()=>{ot();Mr()});function Ue(i,t){if(i===16777215||!t)return t;if(t===16777215||!i)return i;let e=i>>16&255,r=i>>8&255,s=i&255,n=t>>16&255,o=t>>8&255,a=t&255,l=e*n/255|0,c=r*o/255|0,h=s*a/255|0;return(l<<16)+(c<<8)+h}var ys=p(()=>{"use strict"});function _i(i,t){return i===Nf?t:t===Nf?i:Ue(i,t)}var Nf,nc=p(()=>{ys();Nf=16777215});function Qe(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var zf,Mo=p(()=>{ot();_s();Mr();nc();zf={getGlobalAlpha(i){if(i)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let t=this.alpha,e=this.parent;for(;e;)t*=e.alpha,e=e.parent;return t},getGlobalTransform(i=new k,t){if(t)return i.copyFrom(this.worldTransform);this.updateLocalTransform();let e=Po(this,Ut.get().identity());return i.appendFrom(this.localTransform,e),Ut.return(e),i},getGlobalTint(i){if(i)return this.renderGroup?Qe(this.renderGroup.worldColor):this.parentRenderGroup?Qe(_i(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let t=this.localColor,e=this.parent;for(;e;)t=_i(t,e.localColor),e=e.parent;return Qe(t)}}});function yi(i,t,e){return t.clear(),e||(e=k.IDENTITY),Hf(i,t,e,i,!0),t.isValid||t.set(0,0,0,0),t}function Hf(i,t,e,r,s){let n;if(s)n=Ut.get(),n=e.copyTo(n);else{if(!i.visible||!i.measurable)return;i.updateLocalTransform();let l=i.localTransform;n=Ut.get(),n.appendFrom(l,e)}let o=t,a=!!i.effects.length;if(a&&(t=fe.get().clear()),i.boundsArea)t.addRect(i.boundsArea,n);else{i.renderPipeId&&(t.matrix=n,t.addBounds(i.bounds));let l=i.children;for(let c=0;c<l.length;c++)Hf(l[c],t,n,r,!1)}if(a){for(let l=0;l<i.effects.length;l++)i.effects[l].addLocalBounds?.(t,r);o.addBounds(t,k.IDENTITY),fe.return(t)}Ut.return(n)}var Ao=p(()=>{ot();Mr()});function oc(i,t){let e=i.children;for(let r=0;r<e.length;r++){let s=e[r],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=t.index;(t.data[a]!==n||t.data[a+1]!==o)&&(t.data[t.index]=n,t.data[t.index+1]=o,t.didChange=!0),t.index=a+2,s.children.length&&oc(s,t)}return t.didChange}var Wf=p(()=>{"use strict"});var fS,Vf,jf=p(()=>{ot();ie();_s();Ao();Wf();fS=new k,Vf={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(i,t){let e=Math.sign(this.scale.x)||1;t!==0?this.scale.x=i/t*e:this.scale.x=e},_setHeight(i,t){let e=Math.sign(this.scale.y)||1;t!==0?this.scale.y=i/t*e:this.scale.y=e},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new dt});let i=this._localBoundsCacheData;return i.index=1,i.didChange=!1,i.data[0]!==this._didViewChangeTick&&(i.didChange=!0,i.data[0]=this._didViewChangeTick),oc(this,i),i.didChange&&yi(this,i.localBounds,fS),i.localBounds},getBounds(i,t){return xi(this,i,t||new dt)}}});var Xf,Yf=p(()=>{"use strict";Xf={_onRender:null,set onRender(i){let t=this.renderGroup||this.parentRenderGroup;if(!i){this._onRender&&t?.removeOnRender(this),this._onRender=null;return}this._onRender||t?.addOnRender(this),this._onRender=i},get onRender(){return this._onRender}}});function pS(i,t){return i._zIndex-t._zIndex}var $f,qf=p(()=>{"use strict";$f={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(i){this._zIndex!==i&&(this._zIndex=i,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(pS))}}});var Kf,Zf=p(()=>{Ee();Mr();Kf={getGlobalPosition(i=new nt,t=!1){return this.parent?this.parent.toGlobal(this._position,i,t):(i.x=this._position.x,i.y=this._position.y),i},toGlobal(i,t,e=!1){let r=this.getGlobalTransform(Ut.get(),e);return t=r.apply(i,t),Ut.return(r),t},toLocal(i,t,e,r){t&&(i=t.toGlobal(i,e,r));let s=this.getGlobalTransform(Ut.get(),r);return e=s.applyInverse(i,e),Ut.return(s),e}}});var hr,Ro=p(()=>{Ft();hr=class{constructor(){this.uid=$("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}destroy(){this.instructions.length=0,this.renderables.length=0,this.renderPipes=null,this.gcTick=0}add(t){this.instructions[this.instructionSize++]=t}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function Je(i){return i+=i===0?1:0,--i,i|=i>>>1,i|=i>>>2,i|=i>>>4,i|=i>>>8,i|=i>>>16,i+1}function ac(i){return!(i&i-1)&&!!i}var bs=p(()=>{"use strict"});function ko(i){let t={};for(let e in i)i[e]!==void 0&&(t[e]=i[e]);return t}var lc=p(()=>{"use strict"});function mS(i){let t=Qf[i];return t===void 0&&(Qf[i]=$("resource")),t}var Qf,Jf,ce,Ar=p(()=>{Ht();Ft();yt();Qf=Object.create(null);Jf=class tp extends ut{constructor(t={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,t={...tp.defaultOptions,...t},this.addressMode=t.addressMode,this.addressModeU=t.addressModeU??this.addressModeU,this.addressModeV=t.addressModeV??this.addressModeV,this.addressModeW=t.addressModeW??this.addressModeW,this.scaleMode=t.scaleMode,this.magFilter=t.magFilter??this.magFilter,this.minFilter=t.minFilter??this.minFilter,this.mipmapFilter=t.mipmapFilter??this.mipmapFilter,this.lodMinClamp=t.lodMinClamp,this.lodMaxClamp=t.lodMaxClamp,this.compare=t.compare,this.maxAnisotropy=t.maxAnisotropy??1}set addressMode(t){this.addressModeU=t,this.addressModeV=t,this.addressModeW=t}get addressMode(){return this.addressModeU}set wrapMode(t){O(rt,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=t}get wrapMode(){return this.addressMode}set scaleMode(t){this.magFilter=t,this.minFilter=t,this.mipmapFilter=t}get scaleMode(){return this.magFilter}set maxAnisotropy(t){this._maxAnisotropy=Math.min(t,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this._sharedResourceId=null,this.emit("change",this)}_generateResourceId(){let t=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=mS(t),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};Jf.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};ce=Jf});var ep,st,$t=p(()=>{Ht();bs();lc();Ft();Ar();ep=class rp extends ut{constructor(t={}){super(),this.options=t,this._gpuData=Object.create(null),this._gcLastUsed=-1,this.uid=$("textureSource"),this._resourceType="textureSource",this._resourceId=$("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.viewDimension="2d",this.arrayLayerCount=1,this._ownsStyle=!1,this.antialias=!1,this.transient=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,t={...rp.defaultOptions,...t},this.label=t.label??"",this.resource=t.resource,this.autoGarbageCollect=t.autoGarbageCollect,this._resolution=t.resolution,t.width?this.pixelWidth=t.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,t.height?this.pixelHeight=t.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=t.format,this.dimension=t.dimensions,this.viewDimension=t.viewDimension??t.dimensions,this.arrayLayerCount=t.arrayLayerCount,this.mipLevelCount=t.mipLevelCount,this.autoGenerateMipmaps=t.autoGenerateMipmaps,this.sampleCount=t.sampleCount,this.antialias=t.antialias,this.transient=t.transient??!1,this.alphaMode=t.alphaMode,this.style=new ce(ko(t)),this._ownsStyle=!0,this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(t){this.style!==t&&(this._ownsStyle=!1,this._style?.off("change",this._onStyleChange,this),this._style=t,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}set maxAnisotropy(t){this._style.maxAnisotropy=t}get maxAnisotropy(){return this._style.maxAnisotropy}get addressMode(){return this._style.addressMode}set addressMode(t){this._style.addressMode=t}get repeatMode(){return this._style.addressMode}set repeatMode(t){this._style.addressMode=t}get magFilter(){return this._style.magFilter}set magFilter(t){this._style.magFilter=t}get minFilter(){return this._style.minFilter}set minFilter(t){this._style.minFilter=t}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(t){this._style.mipmapFilter=t}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(t){this._style.lodMinClamp=t}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(t){this._style.lodMaxClamp=t}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let t=this._resolution;if(this.resize(this.resourceWidth/t,this.resourceHeight/t))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this._style&&(this._ownsStyle&&this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=$("resource"),this.emit("change",this),this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy?.();this._gpuData=Object.create(null)}get resourceWidth(){let{resource:t}=this;return t.naturalWidth||t.videoWidth||t.displayWidth||t.width}get resourceHeight(){let{resource:t}=this;return t.naturalHeight||t.videoHeight||t.displayHeight||t.height}get resolution(){return this._resolution}set resolution(t){this._resolution!==t&&(this._resolution=t,this.width=this.pixelWidth/t,this.height=this.pixelHeight/t)}resize(t,e,r){r||(r=this._resolution),t||(t=this.width),e||(e=this.height);let s=Math.round(t*r),n=Math.round(e*r);return this.width=s/r,this.height=n/r,this._resolution=r,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=$("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(t){this._style.wrapMode=t}get wrapMode(){return this._style.wrapMode}set scaleMode(t){this._style.scaleMode=t}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=ac(this.pixelWidth)&&ac(this.pixelHeight)}static test(t){throw new Error("Unimplemented")}};ep.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",viewDimension:"2d",arrayLayerCount:1,mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};st=ep});function gS(){for(let i=0;i<16;i++){let t=[];cc.push(t);for(let e=0;e<16;e++){let r=Bo(Rr[i]*Rr[e]+Br[i]*kr[e]),s=Bo(kr[i]*Rr[e]+Ir[i]*kr[e]),n=Bo(Rr[i]*Br[e]+Br[i]*Ir[e]),o=Bo(kr[i]*Br[e]+Ir[i]*Ir[e]);for(let a=0;a<16;a++)if(Rr[a]===r&&kr[a]===s&&Br[a]===n&&Ir[a]===o){t.push(a);break}}}for(let i=0;i<16;i++){let t=new k;t.set(Rr[i],kr[i],Br[i],Ir[i],0,0),ip.push(t)}}var Rr,kr,Br,Ir,cc,ip,Bo,it,vs=p(()=>{ot();Rr=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],kr=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Br=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Ir=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],cc=[],ip=[],Bo=Math.sign;gS();it={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:i=>Rr[i],uY:i=>kr[i],vX:i=>Br[i],vY:i=>Ir[i],inv:i=>i&8?i&15:-i&7,add:(i,t)=>cc[i][t],sub:(i,t)=>cc[i][it.inv(t)],rotate180:i=>i^4,isVertical:i=>(i&3)===2,byDirection:(i,t)=>Math.abs(i)*2<=Math.abs(t)?t>=0?it.S:it.N:Math.abs(t)*2<=Math.abs(i)?i>0?it.E:it.W:t>0?i>0?it.SE:it.SW:i>0?it.NE:it.NW,matrixAppendRotationInv:(i,t,e=0,r=0,s=0,n=0)=>{let o=ip[it.inv(t)],a=o.a,l=o.b,c=o.c,h=o.d,u=e-Math.min(0,a*s,c*n,a*s+c*n),d=r-Math.min(0,l*s,h*n,l*s+h*n),f=i.a,m=i.b,g=i.c,_=i.d;i.a=a*f+l*g,i.b=a*m+l*_,i.c=c*f+h*g,i.d=c*m+h*_,i.tx=u*f+d*g+i.tx,i.ty=u*m+d*_+i.ty},transformRectCoords:(i,t,e,r)=>{let{x:s,y:n,width:o,height:a}=i,{x:l,y:c,width:h,height:u}=t;return e===it.E?(r.set(s+l,n+c,o,a),r):e===it.S?r.set(h-n-a+l,s+c,a,o):e===it.W?r.set(h-s-o+l,u-n-a+c,o,a):e===it.N?r.set(n+l,u-s-o+c,a,o):r.set(s+l,n+c,o,a)}}});var hc,sp=p(()=>{"use strict";hc=()=>{}});var Gr,uc=p(()=>{P();$t();Gr=class extends st{constructor(t){let e=t.resource||new Float32Array(t.width*t.height*4),r=t.format;r||(e instanceof Float32Array?r="rgba32float":e instanceof Int32Array||e instanceof Uint32Array?r="rgba32uint":e instanceof Int16Array||e instanceof Uint16Array?r="rgba16uint":(e instanceof Int8Array,r="bgra8unorm")),super({...t,resource:e,format:r}),this.uploadMethodId="buffer"}static test(t){return t instanceof Int8Array||t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int16Array||t instanceof Uint16Array||t instanceof Int32Array||t instanceof Uint32Array||t instanceof Float32Array}};Gr.extension=y.TextureSource});var np,bi,dc=p(()=>{ot();np=new k,bi=class{constructor(t,e){this.mapCoord=new k,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._updateID=0,this.clampOffset=0,typeof e>"u"?this.clampMargin=t.width<10?0:.5:this.clampMargin=e,this.isSimple=!1,this.texture=t}get texture(){return this._texture}set texture(t){this._texture!==t&&(this._texture?.removeListener("update",this.update,this),this._texture=t,this._texture.addListener("update",this.update,this)),this.update()}destroy(){this._texture?.removeListener("update",this.update,this),this._texture=null}multiplyUvs(t,e){e===void 0&&(e=t);let r=this.mapCoord;for(let s=0;s<t.length;s+=2){let n=t[s],o=t[s+1];e[s]=n*r.a+o*r.c+r.tx,e[s+1]=n*r.b+o*r.d+r.ty}return e}update(){let t=this._texture;this._updateID++;let e=t.uvs;this.mapCoord.set(e.x1-e.x0,e.y1-e.y0,e.x3-e.x0,e.y3-e.y0,e.x0,e.y0);let r=t.orig,s=t.trim;s&&(np.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(np));let n=t.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,l=this.clampOffset/n._resolution;return o[0]=(t.frame.x+a+l)/n.width,o[1]=(t.frame.y+a+l)/n.height,o[2]=(t.frame.x+t.frame.width-a+l)/n.width,o[3]=(t.frame.y+t.frame.height-a+l)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=t.frame.width===n.width&&t.frame.height===n.height&&t.rotate===0,!0}}});var F,gt=p(()=>{Ht();vs();Yt();Ft();yt();sp();uc();$t();dc();F=class extends ut{constructor({source:t,label:e,frame:r,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:l,dynamic:c}={}){if(super(),this.uid=$("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new J,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=e,this.source=t?.source??new st,this.noFrame=!r,r)this.frame.copyFrom(r);else{let{width:h,height:u}=this._source;this.frame.width=h,this.frame.height=u}this.orig=s||this.frame,this.trim=n,this.rotate=l??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=c||!1,this.updateUvs()}set source(t){this._source&&this._source.off("resize",this.update,this),this._source=t,t.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new bi(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:t,frame:e}=this,{width:r,height:s}=this._source,n=e.x/r,o=e.y/s,a=e.width/r,l=e.height/s,c=this.rotate;if(c){let h=a/2,u=l/2,d=n+h,f=o+u;c=it.add(c,it.NW),t.x0=d+h*it.uX(c),t.y0=f+u*it.uY(c),c=it.add(c,2),t.x1=d+h*it.uX(c),t.y1=f+u*it.uY(c),c=it.add(c,2),t.x2=d+h*it.uX(c),t.y2=f+u*it.uY(c),c=it.add(c,2),t.x3=d+h*it.uX(c),t.y3=f+u*it.uY(c)}else t.x0=n,t.y0=o,t.x1=n+a,t.y1=o,t.x2=n+a,t.y2=o+l,t.x3=n,t.y3=o+l}destroy(t=!1){this._source&&(this._source.off("resize",this.update,this),t&&(this._source.destroy(),this._source=null)),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return O(rt,"Texture.baseTexture is now Texture.source"),this._source}};F.EMPTY=new F({label:"EMPTY",source:new st({label:"EMPTY"})});F.EMPTY.destroy=hc;F.WHITE=new F({source:new Gr({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});F.WHITE.destroy=hc});var xS,fc,Mt,Fr=p(()=>{bs();Pr();$t();gt();Ar();xS=0,fc=class{constructor(t){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=t||{},this.enableFullScreen=!1,this.textureStyle=new ce(this.textureOptions)}createTexture(t,e,r,s){let n=new st({...this.textureOptions,width:t,height:e,resolution:1,antialias:r,autoGarbageCollect:!1,autoGenerateMipmaps:s});return new F({source:n,label:`texturePool_${xS++}`})}getOptimalTexture(t,e,r=1,s,n=!1){let o=Math.ceil(t*r-1e-6),a=Math.ceil(e*r-1e-6);o=Je(o),a=Je(a);let l=s?1:0,c=n?1:0,h=(o<<17)+(a<<2)+(c<<1)+l;this._texturePool[h]||(this._texturePool[h]=[]);let u=this._texturePool[h].pop();return u||(u=this.createTexture(o,a,s,n)),u.source._resolution=r,u.source.width=o/r,u.source.height=a/r,u.source.pixelWidth=o,u.source.pixelHeight=a,u.frame.x=0,u.frame.y=0,u.frame.width=t,u.frame.height=e,u.updateUvs(),this._poolKeyHash[u.uid]=h,u}getSameSizeTexture(t,e=!1){let r=t.source;return this.getOptimalTexture(t.width,t.height,r._resolution,e)}returnTexture(t,e=!1){let r=this._poolKeyHash[t.uid];e&&(t.source.style=this.textureStyle),this._texturePool[r].push(t)}clear(t){if(t=t!==!1,t)for(let e in this._texturePool){let r=this._texturePool[e];if(r)for(let s=0;s<r.length;s++)r[s].destroy(!0)}this._texturePool={}}},Mt=new fc;ye.register(Mt)});var Ur,pc=p(()=>{ot();Ro();Fr();Ur=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new k,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new hr,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(t){this.root=t,t._onRender&&this.addOnRender(t),t.didChange=!0;let e=t.children;for(let r=0;r<e.length;r++){let s=e[r];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(t={}){this.textureOptions=t,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Mt.returnTexture(this.texture,!0),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0;let t=this._parentCacheAsTextureRenderGroup;t&&!t.textureNeedsUpdate&&t.updateCacheTexture()}reset(){this.renderGroupChildren.length=0;for(let t in this.childrenToUpdate){let e=this.childrenToUpdate[t];e.list.fill(null),e.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(t){t.renderGroupParent&&t.renderGroupParent._removeRenderGroupChild(t),t.renderGroupParent=this,this.renderGroupChildren.push(t)}_removeRenderGroupChild(t){let e=this.renderGroupChildren.indexOf(t);e>-1&&this.renderGroupChildren.splice(e,1),t.renderGroupParent=null}addChild(t){if(this.structureDidChange=!0,t.parentRenderGroup=this,t.updateTick=-1,t.parent===this.root?t.relativeRenderGroupDepth=1:t.relativeRenderGroupDepth=t.parent.relativeRenderGroupDepth+1,t.didChange=!0,this.onChildUpdate(t),t.renderGroup){this.addRenderGroupChild(t.renderGroup);return}t._onRender&&this.addOnRender(t);let e=t.children;for(let r=0;r<e.length;r++)this.addChild(e[r])}removeChild(t){if(this.structureDidChange=!0,t._onRender&&(t.renderGroup||this.removeOnRender(t)),t.parentRenderGroup=null,t.renderGroup){this._removeRenderGroupChild(t.renderGroup);return}let e=t.children;for(let r=0;r<e.length;r++)this.removeChild(e[r])}removeChildren(t){for(let e=0;e<t.length;e++)this.removeChild(t[e])}onChildUpdate(t){let e=this.childrenToUpdate[t.relativeRenderGroupDepth];e||(e=this.childrenToUpdate[t.relativeRenderGroupDepth]={index:0,list:[]}),e.list[e.index++]=t}updateRenderable(t){t.globalDisplayStatus<7||(this.instructionSet.renderPipes[t.renderPipeId].updateRenderable(t),t.didViewUpdate=!1)}onChildViewUpdate(t){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=t}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(t){this._onRenderContainers.indexOf(t)===-1&&this._onRenderContainers.push(t)}removeOnRender(t){let e=this._onRenderContainers.indexOf(t);e!==-1&&this._onRenderContainers.splice(e,1)}runOnRender(t){for(let e=0;e<this._onRenderContainers.length;e++)this._onRenderContainers[e]._onRender(t)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(t=[]){let e=this.root.children;for(let r=0;r<e.length;r++)this._getChildren(e[r],t);return t}_getChildren(t,e=[]){if(e.push(t),t.renderGroup)return e;let r=t.children;for(let s=0;s<r.length;s++)this._getChildren(r[s],e);return e}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new k),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new k),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let t=this._parentCacheAsTextureRenderGroup;return t?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new k),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(t.inverseWorldTransform).translate(-t._textureBounds.x,-t._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this.isCachedAsTexture?this.textureOffsetInverseTransform:this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function op(i,t,e={}){for(let r in t)!e[r]&&t[r]!==void 0&&(i[r]=t[r])}var ap=p(()=>{"use strict"});var mc,Io,gc,Go,vi,Ss,Dr,mt,Pe=p(()=>{Ht();Qt();xf();P();ot();Ql();vo();Ft();yt();ht();Ke();Ef();Mf();Rf();If();Ff();Lf();Mo();jf();Yf();qf();Zf();pc();ap();mc=new Gt(null),Io=new Gt(null),gc=new Gt(null,1,1),Go=new Gt(null),vi=1,Ss=2,Dr=4,mt=class i extends ut{constructor(t={}){super(),this.uid=$("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.parentRenderLayer=null,this.updateTick=-1,this.localTransform=new k,this.relativeGroupTransform=new k,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new Gt(this,0,0),this._scale=gc,this._pivot=Io,this._origin=Go,this._skew=mc,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],op(this,t,{children:!0,parent:!0,effects:!0}),t.children?.forEach(e=>this.addChild(e)),t.parent?.addChild(this)}static mixin(t){O("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),z.mixin(i,t)}set _didChangeId(t){this._didViewChangeTick=t>>12&4095,this._didContainerChangeTick=t&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...t){if(this.allowChildren||O(rt,"addChild: Only Containers will be allowed to add children in v8.0.0"),t.length>1){for(let s=0;s<t.length;s++)this.addChild(t[s]);return t[0]}let e=t[0],r=this.renderGroup||this.parentRenderGroup;return e.parent===this?(this.children.splice(this.children.indexOf(e),1),this.children.push(e),r&&(r.structureDidChange=!0),e):(e.parent&&e.parent.removeChild(e),this.children.push(e),this.sortableChildren&&(this.sortDirty=!0),e.parent=this,e.didChange=!0,e._updateFlags=15,r&&r.addChild(e),this.emit("childAdded",e,this,this.children.length-1),e.emit("added",this),this._didViewChangeTick++,e._zIndex!==0&&e.depthOfChildModified(),e)}removeChild(...t){if(t.length>1){for(let s=0;s<t.length;s++)this.removeChild(t[s]);return t[0]}let e=t[0],r=this.children.indexOf(e);return r>-1&&(this._didViewChangeTick++,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(e):this.parentRenderGroup&&this.parentRenderGroup.removeChild(e),e.parentRenderLayer&&e.parentRenderLayer.detach(e),e.parent=null,this.emit("childRemoved",e,this,r),e.emit("removed",this)),e}_onUpdate(t){t&&t===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(t){!!this.renderGroup!==t&&(t?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let t=this.parentRenderGroup;t?.removeChild(this),this.renderGroup=bt.get(Ur,this),this.groupTransform=k.IDENTITY,t?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let t=this.parentRenderGroup;t?.removeChild(this),bt.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,t?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new k),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(t){this._position.x=t}get y(){return this._position.y}set y(t){this._position.y=t}get position(){return this._position}set position(t){this._position.copyFrom(t)}get rotation(){return this._rotation}set rotation(t){this._rotation!==t&&(this._rotation=t,this._onUpdate(this._skew))}get angle(){return this.rotation*yf}set angle(t){this.rotation=t*bf}get pivot(){return this._pivot===Io&&(this._pivot=new Gt(this,0,0)),this._pivot}set pivot(t){this._pivot===Io&&(this._pivot=new Gt(this,0,0),this._origin!==Go&&L("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof t=="number"?this._pivot.set(t):this._pivot.copyFrom(t)}get skew(){return this._skew===mc&&(this._skew=new Gt(this,0,0)),this._skew}set skew(t){this._skew===mc&&(this._skew=new Gt(this,0,0)),this._skew.copyFrom(t)}get scale(){return this._scale===gc&&(this._scale=new Gt(this,1,1)),this._scale}set scale(t){this._scale===gc&&(this._scale=new Gt(this,0,0)),typeof t=="string"&&(t=parseFloat(t)),typeof t=="number"?this._scale.set(t):this._scale.copyFrom(t)}get origin(){return this._origin===Go&&(this._origin=new Gt(this,0,0)),this._origin}set origin(t){this._origin===Go&&(this._origin=new Gt(this,0,0),this._pivot!==Io&&L("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof t=="number"?this._origin.set(t):this._origin.copyFrom(t)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(t){let e=this.getLocalBounds().width;this._setWidth(t,e)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(t){let e=this.getLocalBounds().height;this._setHeight(t,e)}getSize(t){t||(t={});let e=this.getLocalBounds();return t.width=Math.abs(this.scale.x*e.width),t.height=Math.abs(this.scale.y*e.height),t}setSize(t,e){let r=this.getLocalBounds();typeof t=="object"?(e=t.height??t.width,t=t.width):e??(e=t),t!==void 0&&this._setWidth(t,r.width),e!==void 0&&this._setHeight(e,r.height)}_updateSkew(){let t=this._rotation,e=this._skew;this._cx=Math.cos(t+e._y),this._sx=Math.sin(t+e._y),this._cy=-Math.sin(t-e._x),this._sy=Math.cos(t-e._x)}updateTransform(t){return this.position.set(typeof t.x=="number"?t.x:this.position.x,typeof t.y=="number"?t.y:this.position.y),this.scale.set(typeof t.scaleX=="number"?t.scaleX:this.scale.x,typeof t.scaleY=="number"?t.scaleY:this.scale.y),this.rotation=typeof t.rotation=="number"?t.rotation:this.rotation,this.skew.set(typeof t.skewX=="number"?t.skewX:this.skew.x,typeof t.skewY=="number"?t.skewY:this.skew.y),this.pivot.set(typeof t.pivotX=="number"?t.pivotX:this.pivot.x,typeof t.pivotY=="number"?t.pivotY:this.pivot.y),this.origin.set(typeof t.originX=="number"?t.originX:this.origin.x,typeof t.originY=="number"?t.originY:this.origin.y),this}setFromMatrix(t){t.decompose(this)}updateLocalTransform(){let t=this._didContainerChangeTick;if(this._didLocalTransformChangeId===t)return;this._didLocalTransformChangeId=t;let e=this.localTransform,r=this._scale,s=this._pivot,n=this._origin,o=this._position,a=r._x,l=r._y,c=s._x,h=s._y,u=-n._x,d=-n._y;e.a=this._cx*a,e.b=this._sx*a,e.c=this._cy*l,e.d=this._sy*l,e.tx=o._x-(c*e.a+h*e.c)+(u*e.a+d*e.c)-u,e.ty=o._y-(c*e.b+h*e.d)+(u*e.b+d*e.d)-d}set alpha(t){t!==this.localAlpha&&(this.localAlpha=t,this._updateFlags|=vi,this._onUpdate())}get alpha(){return this.localAlpha}set tint(t){let r=Q.shared.setValue(t??16777215).toBgrNumber();r!==this.localColor&&(this.localColor=r,this._updateFlags|=vi,this._onUpdate())}get tint(){return Qe(this.localColor)}set blendMode(t){this.localBlendMode!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Ss,this.localBlendMode=t,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(t){let e=t?2:0;(this.localDisplayStatus&2)!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Dr,this.localDisplayStatus^=2,this._onUpdate(),this.emit("visibleChanged",t))}get culled(){return!(this.localDisplayStatus&4)}set culled(t){let e=t?0:4;(this.localDisplayStatus&4)!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Dr,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(t){let e=t?1:0;(this.localDisplayStatus&1)!==e&&(this._updateFlags|=Dr,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(t=!1){if(this.destroyed)return;this.destroyed=!0;let e;if(this.children.length&&(e=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._origin=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof t=="boolean"?t:t?.children)&&e)for(let s=0;s<e.length;++s)e[s].destroy(t);this.renderGroup?.destroy(),this.renderGroup=null}};z.mixin(mt,Pf,Df,Kf,Xf,Vf,Bf,Gf,$f,gf,Cf,zf,Af)});var De,Ts=p(()=>{"use strict";De=(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))(De||{})});var Si,lp=p(()=>{"use strict";Si=class{constructor(t,e=null,r=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,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(!0),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=!1){this._destroyed=!0,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 cp,qt,Ti=p(()=>{Ts();lp();cp=class pe{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new Si(null,null,1/0),this.deltaMS=1/pe.targetFPMS,this.elapsedMS=1/pe.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=De.NORMAL){return this._addListener(new Si(t,e,r))}addOnce(t,e,r=De.NORMAL){return this._addListener(new Si(t,e,r,!0))}_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=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let t=this._head.next;for(;t;)t=t.destroy(!0);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 n=t-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=t-n%this._minElapsedMS}this.deltaMS=e,this.deltaTime=this.deltaMS*pe.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(Math.max(0,t)/1e3,pe.targetFPMS);this._maxElapsedMS=1/e,this._minElapsedMS&&t>this.maxFPS&&(this.maxFPS=t)}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(t){t===0?this._minElapsedMS=0:(t<this.minFPS&&(this.minFPS=t),this._minElapsedMS=1/(t/1e3))}static get shared(){if(!pe._shared){let t=pe._shared=new pe;t.autoStart=!0,t._protected=!0}return pe._shared}static get system(){if(!pe._system){let t=pe._system=new pe;t.autoStart=!0,t._protected=!0}return pe._system}};cp.targetFPMS=.06;qt=cp});var wi,xc=p(()=>{Ts();Ti();wi=class{constructor(t){this._lastTransform="",this._observer=null,this._tickerAttached=!1,this.updateTranslation=()=>{if(!this._canvas)return;let e=this._canvas.getBoundingClientRect(),r=this._canvas.width,s=this._canvas.height,n=e.width/r*this._renderer.resolution,o=e.height/s*this._renderer.resolution,a=e.left,l=e.top,c=`translate(${a}px, ${l}px) scale(${n}, ${o})`;c!==this._lastTransform&&(this._domElement.style.transform=c,this._lastTransform=c)},this._domElement=t.domElement,this._renderer=t.renderer,!(globalThis.OffscreenCanvas&&this._renderer.canvas instanceof OffscreenCanvas)&&(this._canvas=this._renderer.canvas,this._attachObserver())}get canvas(){return this._canvas}ensureAttached(){!this._domElement.parentNode&&this._canvas.parentNode&&(this._canvas.parentNode.appendChild(this._domElement),this.updateTranslation())}_attachObserver(){"ResizeObserver"in globalThis?(this._observer&&(this._observer.disconnect(),this._observer=null),this._observer=new ResizeObserver(t=>{for(let e of t){if(e.target!==this._canvas)continue;let r=this.canvas.width,s=this.canvas.height,n=e.contentRect.width/r*this._renderer.resolution,o=e.contentRect.height/s*this._renderer.resolution;(this._lastScaleX!==n||this._lastScaleY!==o)&&(this.updateTranslation(),this._lastScaleX=n,this._lastScaleY=o)}}),this._observer.observe(this._canvas)):this._tickerAttached||qt.shared.add(this.updateTranslation,this,De.HIGH)}destroy(){this._observer?(this._observer.disconnect(),this._observer=null):this._tickerAttached&&qt.shared.remove(this.updateTranslation),this._domElement=null,this._renderer=null,this._canvas=null,this._tickerAttached=!1,this._lastTransform="",this._lastScaleX=null,this._lastScaleY=null}}});var ur,Fo=p(()=>{Ee();ur=class i{constructor(t){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=i.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new nt,this.page=new nt,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=t}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(t,e,r){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(t,e,r,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function _S(i){return function(t){return t.test(i)}}function ws(i){var t={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?t={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?t.userAgent=i:i&&i.userAgent&&(t={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var e=t.userAgent,r=e.split("[FBAN");typeof r[1]<"u"&&(e=r[0]),r=e.split("Twitter"),typeof r[1]<"u"&&(e=r[0]);var s=_S(e),n={apple:{phone:s(_c)&&!s(tr),ipod:s(hp),tablet:!s(_c)&&(s(up)||bp(t))&&!s(tr),universal:s(dp),device:(s(_c)||s(hp)||s(up)||s(dp)||bp(t))&&!s(tr)},amazon:{phone:s(Ci),tablet:!s(Ci)&&s(Uo),device:s(Ci)||s(Uo)},android:{phone:!s(tr)&&s(Ci)||!s(tr)&&s(yc),tablet:!s(tr)&&!s(Ci)&&!s(yc)&&(s(Uo)||s(fp)),device:!s(tr)&&(s(Ci)||s(Uo)||s(yc)||s(fp))||s(/\bokhttp\b/i)},windows:{phone:s(tr),tablet:s(pp),device:s(tr)||s(pp)},other:{blackberry:s(mp),blackberry10:s(gp),opera:s(xp),firefox:s(yp),chrome:s(_p),device:s(mp)||s(gp)||s(xp)||s(yp)||s(_p)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var _c,hp,up,dp,yc,fp,Ci,Uo,tr,pp,mp,gp,xp,_p,yp,bp,bc=p(()=>{_c=/iPhone/i,hp=/iPod/i,up=/iPad/i,dp=/\biOS-universal(?:.+)Mac\b/i,yc=/\bAndroid(?:.+)Mobile\b/i,fp=/Android/i,Ci=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Uo=/Silk/i,tr=/Windows Phone/i,pp=/\bWindows(?:.+)ARM\b/i,mp=/BlackBerry/i,gp=/BB10/i,xp=/Opera Mini/i,_p=/\b(CriOS|Chrome)(?:.+)Mobile/i,yp=/Mobile(?:.+)Firefox\b/i,bp=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var vp=p(()=>{bc();bc()});var yS,Sp,Tp=p(()=>{vp();yS=ws.default??ws,Sp=yS(globalThis.navigator)});var bS,wp,vS,SS,Cp,Ep,TS,wS,CS,vc,Mp,Ap=p(()=>{xc();Fo();P();Tp();ic();bS=9,wp=100,vS=0,SS=0,Cp=2,Ep=1,TS=-1e3,wS=-1e3,CS=2,vc=class Pp{constructor(t,e=Sp){this._mobileInfo=e,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pools={},this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._isRunningTests=!1,this._boundOnKeyDown=this._onKeyDown.bind(this),this._boundOnMouseMove=this._onMouseMove.bind(this),this._hookDiv=null,(e.tablet||e.phone)&&this._createTouchHook(),this._renderer=t}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}get div(){return this._div}_createTouchHook(){let t=document.createElement("button");t.style.width=`${Ep}px`,t.style.height=`${Ep}px`,t.style.position="absolute",t.style.top=`${TS}px`,t.style.left=`${wS}px`,t.style.zIndex=CS.toString(),t.style.backgroundColor="#FF0000",t.title="select to enable accessibility for this content",t.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(t),this._hookDiv=t}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.position="absolute",this._div.style.top=`${vS}px`,this._div.style.left=`${SS}px`,this._div.style.pointerEvents="none",this._div.style.zIndex=Cp.toString(),this._canvasObserver=new wi({domElement:this._div,renderer:this._renderer})),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._deactivateOnMouseMove&&globalThis.document.addEventListener("mousemove",this._boundOnMouseMove,!0);let t=this._renderer.view.canvas;if(t.parentNode)this._canvasObserver.ensureAttached(),this._initAccessibilitySetup();else{let e=new MutationObserver(()=>{t.parentNode&&(e.disconnect(),this._canvasObserver.ensureAttached(),this._initAccessibilitySetup())});e.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let t of this._children)t._accessibleDiv?.parentNode&&(t._accessibleDiv.parentNode.removeChild(t._accessibleDiv),t._accessibleDiv=null),t._accessibleActive=!1;for(let t in this._pools)this._pools[t].forEach(r=>{r.parentNode&&r.parentNode.removeChild(r)}),delete this._pools[t];this._div?.parentNode&&this._div.parentNode.removeChild(this._div),this._pools={},this._children=[]}}_updateAccessibleObjects(t){if(!t.visible||!t.accessibleChildren)return;t.accessible&&(t._accessibleActive||this._addChild(t),t._renderId=this._renderId);let e=t.children;if(e)for(let r=0;r<e.length;r++)this._updateAccessibleObjects(e[r])}init(t){let r={accessibilityOptions:{...Pp.defaultOptions,...t?.accessibilityOptions||{}}};this.debug=r.accessibilityOptions.debug,this._activateOnTab=r.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=r.accessibilityOptions.deactivateOnMouseMove,r.accessibilityOptions.enabledByDefault&&this._activate(),this._renderer.runners.postrender.remove(this)}postrender(){let t=performance.now();if(this._mobileInfo.android.device&&t<this._androidUpdateCount||(this._androidUpdateCount=t+this._androidUpdateFrequency,(!this._renderer.renderingToScreen||!this._renderer.view.canvas)&&!this._isRunningTests))return;let e=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let r of this._children)r._renderId===this._renderId&&e.add(this._children.indexOf(r))}for(let r=this._children.length-1;r>=0;r--){let s=this._children[r];e.has(r)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._getPool(s.accessibleType).push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,To(this._children,r,1))}this._renderer.renderingToScreen&&this._canvasObserver.ensureAttached();for(let r=0;r<this._children.length;r++){let s=this._children[r];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform;n.style.left=`${a.tx+o.x*a.a}px`,n.style.top=`${a.ty+o.y*a.d}px`,n.style.width=`${o.width*a.a}px`,n.style.height=`${o.height*a.d}px`}else this._capHitArea(o),n.style.left=`${o.x}px`,n.style.top=`${o.y}px`,n.style.width=`${o.width}px`,n.style.height=`${o.height}px`}this._renderId++}_updateDebugHTML(t){t.innerHTML=`type: ${t.type}</br> title : ${t.title}</br> tabIndex: ${t.tabIndex}`}_capHitArea(t){t.x<0&&(t.width+=t.x,t.x=0),t.y<0&&(t.height+=t.y,t.y=0);let{width:e,height:r}=this._renderer;t.x+t.width>e&&(t.width=e-t.x),t.y+t.height>r&&(t.height=r-t.y)}_addChild(t){let r=this._getPool(t.accessibleType).pop();r?(r.innerHTML="",r.removeAttribute("title"),r.removeAttribute("aria-label"),r.tabIndex=0):(t.accessibleType==="button"?r=document.createElement("button"):(r=document.createElement(t.accessibleType),r.style.cssText=`
|
|
5
5
|
color: transparent;
|
|
6
6
|
pointer-events: none;
|
|
7
7
|
padding: 0;
|
|
@@ -14,7 +14,7 @@ Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!mi.noColor
|
|
|
14
14
|
-webkit-user-select: none;
|
|
15
15
|
-moz-user-select: none;
|
|
16
16
|
-ms-user-select: none;
|
|
17
|
-
`,t.accessibleText&&(r.innerText=t.accessibleText)),r.style.width=`${Sp}px`,r.style.height=`${Sp}px`,r.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",r.style.position="absolute",r.style.zIndex=Tp.toString(),r.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?r.setAttribute("aria-live","off"):r.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?r.setAttribute("aria-relevant","additions"):r.setAttribute("aria-relevant","text"),r.addEventListener("click",this._onClick.bind(this)),r.addEventListener("focus",this._onFocus.bind(this)),r.addEventListener("focusout",this._onFocusOut.bind(this))),r.style.pointerEvents=t.accessiblePointerEvents,r.type=t.accessibleType,t.accessibleTitle&&t.accessibleTitle!==null?r.title=t.accessibleTitle:(!t.accessibleHint||t.accessibleHint===null)&&(r.title=`container ${t.tabIndex}`),t.accessibleHint&&t.accessibleHint!==null&&r.setAttribute("aria-label",t.accessibleHint),t.interactive?r.tabIndex=t.tabIndex:r.tabIndex=0,this.debug&&this._updateDebugHTML(r),t._accessibleActive=!0,t._accessibleDiv=r,r.container=t,this._children.push(t),this._div.appendChild(t._accessibleDiv)}_dispatchEvent(t,e){let{container:r}=t.target,s=this._renderer.events.rootBoundary,n=Object.assign(new ur(s),{target:r});s.rootTarget=this._renderer.lastObjectRendered,e.forEach(o=>s.dispatchEvent(n,o))}_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!==xS||!this._activateOnTab||this._activate()}_onMouseMove(t){t.movementX===0&&t.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._canvasObserver?.destroy(),this._canvasObserver=null,this._div=null,this._pools=null,this._children=null,this._renderer=null,this._hookDiv=null,globalThis.removeEventListener("keydown",this._boundOnKeyDown),this._boundOnKeyDown=null,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._boundOnMouseMove=null}setAccessibilityEnabled(t){t?this._activate():this._deactivate()}_getPool(t){return this._pools[t]||(this._pools[t]=[]),this._pools[t]}};vc.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"accessibility"};vc.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};Ep=vc});var Mp,Ap=p(()=>{"use strict";Mp={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var Rp=p(()=>{P();Pe();Pp();Ap();z.add(Ep);z.mixin(mt,Mp)});var ws,kp=p(()=>{P();xc();ws=class{constructor(t){this._attachedDomElements=[],this._renderer=t,this._renderer.runners.postrender.add(this),this._renderer.runners.init.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"}init(){this._canvasObserver=new Ti({domElement:this._domElement,renderer:this._renderer})}addRenderable(t,e){this._attachedDomElements.includes(t)||this._attachedDomElements.push(t)}updateRenderable(t){}validateRenderable(t){return!0}postrender(){let t=this._attachedDomElements;if(t.length===0){this._domElement.remove();return}this._canvasObserver.ensureAttached();for(let e=0;e<t.length;e++){let r=t[e],s=r.element;if(!r.parent||r.globalDisplayStatus<7)s?.remove(),t.splice(e,1),e--;else{this._domElement.contains(s)||(s.style.position="absolute",s.style.pointerEvents="auto",this._domElement.appendChild(s));let n=r.worldTransform,o=r._anchor,a=r.width*o.x,l=r.height*o.y;s.style.transformOrigin=`${a}px ${l}px`,s.style.transform=`matrix(${n.a}, ${n.b}, ${n.c}, ${n.d}, ${n.tx-a}, ${n.ty-l})`,s.style.opacity=r.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._canvasObserver.destroy(),this._renderer=null}};ws.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"dom"}});var Le,Cs=p(()=>{ie();Pe();Le=class extends mt{constructor(t){super(t),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this._bounds=new dt(0,1,0,0),this._boundsDirty=!0,this.autoGarbageCollect=t.autoGarbageCollect??!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,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=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let t=this.renderGroup||this.parentRenderGroup;t&&t.onChildViewUpdate(this)}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null),this.onViewUpdate()}destroy(t){this.unload(),super.destroy(t),this._bounds=null}collectRenderablesSimple(t,e,r){let{renderPipes:s}=e;s.blendMode.pushBlendMode(this,this.groupBlendMode,t);let o=s[this.renderPipeId];o?.addRenderable&&o.addRenderable(this,t),this.didViewUpdate=!1;let a=this.children,l=a.length;for(let c=0;c<l;c++)a[c].collectRenderables(t,e,r);s.blendMode.popBlendMode(t)}}});var Bp=p(()=>{P();kp();z.add(ws)});var Sc,Me,Tc=p(()=>{Ss();Si();Sc=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(t){this.removeTickerListener(),this.events=t,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(t){this._pauseUpdate=t}addTickerListener(){this._tickerAdded||!this.domElement||(qt.system.add(this._tickerUpdate,this,De.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(qt.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;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())}destroy(){this.removeTickerListener(),this.events=null,this.domElement=null,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}},Me=new Sc});var er,Uo=p(()=>{Ee();Go();er=class extends ur{constructor(){super(...arguments),this.client=new nt,this.movement=new nt,this.offset=new nt,this.global=new nt,this.screen=new nt}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,n,o,a,l,c,h,u,d,f,m,g){throw new Error("Method not implemented.")}}});var se,wc=p(()=>{Uo();se=class extends er{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1,this.persistentDeviceId=0}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var Oe,Cc=p(()=>{Uo();Oe=class extends er{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};Oe.DOM_DELTA_PIXEL=0;Oe.DOM_DELTA_LINE=1;Oe.DOM_DELTA_PAGE=2});var TS,wS,Es,Do,Ip=p(()=>{Ht();Ee();ht();Tc();Uo();wc();Cc();TS=2048,wS=new nt,Es=new nt,Do=class{constructor(t){this.dispatch=new ut,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,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=!1,t.propagationImmediatelyStopped=!1,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 L(`[EventBoundary]: Event mapping not defined for ${t.type}`)}hitTest(t,e){Me.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,wS.set(t,e),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(t,e){if(!t.target)return;let r=t.composedPath();t.eventPhase=t.CAPTURING_PHASE;for(let s=0,n=r.length-1;s<n;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 n=r.length-1;n>=0;n--)s.forEach(o=>{t.currentTarget=r[n],this.notifyTarget(t,o)})}propagationPath(t){let e=[t];for(let r=0;r<TS&&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,n,o=!1){let a=!1;if(this._interactivePrune(t))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Me.pauseUpdate=!1),t.interactiveChildren&&t.children){let h=t.children;for(let u=h.length-1;u>=0;u--){let d=h[u],f=this.hitTestMoveRecursive(d,this._isInteractive(e)?e:d.eventMode,r,s,n,o||n(t,r));if(f){if(f.length>0&&!f[f.length-1].parent)continue;let m=t.isInteractive();(f.length>0||m)&&(m&&this._allInteractiveElements.push(t),f.push(t)),this._hitElements.length===0&&(this._hitElements=f),a=!0}}}let l=this._isInteractive(e),c=t.isInteractive();return c&&c&&this._allInteractiveElements.push(t),o||this._hitElements.length>0?null:a?this._hitElements:l&&!n(t,r)&&s(t,r)?c?[t]:[]:null}hitTestRecursive(t,e,r,s,n){if(this._interactivePrune(t)||n(t,r))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Me.pauseUpdate=!1),t.interactiveChildren&&t.children){let l=t.children,c=r;for(let h=l.length-1;h>=0;h--){let u=l[h],d=this.hitTestRecursive(u,this._isInteractive(e)?e:u.eventMode,c,s,n);if(d){if(d.length>0&&!d[d.length-1].parent)continue;let f=t.isInteractive();return(d.length>0||f)&&d.push(t),d}}}let o=this._isInteractive(e),a=t.isInteractive();return o&&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,Es),!t.hitArea.contains(Es.x,Es.y)))return!0;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!0}return!1}hitTestFn(t,e){return t.hitArea?!0:t?.containsPoint?(t.worldTransform.applyInverse(e,Es),t.containsPoint(Es)):!1}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 se)){L("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 se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let e=this.createPointerEvent(t);this._isPointerMoveEvent=!1;let r=e.pointerType==="mouse"||e.pointerType==="pen",s=this.trackingData(t.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==e.target){let l=t.type==="mousemove"?"mouseout":"pointerout",c=this.createPointerEvent(t,l,n);if(this.dispatchEvent(c,"pointerout"),r&&this.dispatchEvent(c,"mouseout"),!e.composedPath().includes(n)){let h=this.createPointerEvent(t,"pointerleave",n);for(h.eventPhase=h.AT_TARGET;h.target&&!e.composedPath().includes(h.target);)h.currentTarget=h.target,this.notifyTarget(h),r&&this.notifyTarget(h,"mouseleave"),h.target=h.target.parent;this.freeEvent(h)}this.freeEvent(c)}if(n!==e.target){let l=t.type==="mousemove"?"mouseover":"pointerover",c=this.clonePointerEvent(e,l);this.dispatchEvent(c,"pointerover"),r&&this.dispatchEvent(c,"mouseover");let h=n?.parent;for(;h&&h!==this.rootTarget.parent&&h!==e.target;)h=h.parent;if(!h||h===this.rootTarget.parent){let d=this.clonePointerEvent(e,"pointerenter");for(d.eventPhase=d.AT_TARGET;d.target&&d.target!==n&&d.target!==this.rootTarget.parent;)d.currentTarget=d.target,this.notifyTarget(d),r&&this.notifyTarget(d,"mouseenter"),d.target=d.target.parent;this.freeEvent(d)}this.freeEvent(c)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(e,"pointermove"),a&&o.push("globalpointermove"),e.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(e,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(e,"mousemove"),a&&o.push("globalmousemove"),this.cursor=e.target?.cursor),o.length>0&&this.all(e,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=e.composedPath(),this.freeEvent(e)}mapPointerOver(t){if(!(t instanceof se)){L("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 n=this.clonePointerEvent(r,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;e.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(n)}mapPointerOut(t){if(!(t instanceof se)){L("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),n=this.createPointerEvent(t,"pointerout",s);this.dispatchEvent(n),r&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(t,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),r&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;e.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(t){if(!(t instanceof se)){L("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),n=this.findMountedTarget(s.pressTargetsByButton[t.button]),o=n;if(n&&!r.composedPath().includes(n)){let a=n;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 l=r.button===2;this.notifyTarget(r,l?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[t.button],o=a}if(o){let a=this.clonePointerEvent(r,"click");a.target=o,a.path=null,s.clicksByButton[t.button]||(s.clicksByButton[t.button]={clickCount:0,target:a.target,timeStamp:e});let l=s.clicksByButton[t.button];if(l.target===a.target&&e-l.timeStamp<200?++l.clickCount:l.clickCount=1,l.target=a.target,l.timeStamp=e,a.detail=l.clickCount,a.pointerType==="mouse"){let c=a.button===2;this.dispatchEvent(a,c?"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 se)){L("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 n=r;for(;n;)s.currentTarget=n,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"),n=n.parent;delete e.pressTargetsByButton[t.button]}this.freeEvent(s)}mapWheel(t){if(!(t instanceof Oe)){L("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(se);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(Oe);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(se);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 se&&e instanceof se&&(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,e.persistentDeviceId=t.persistentDeviceId)}copyMouseData(t,e){t instanceof er&&e instanceof er&&(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=!1,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,!0),r.fn.call(r.context,t);else for(let s=0,n=r.length;s<n&&!t.propagationImmediatelyStopped;s++)r[s].once&&t.currentTarget.removeListener(e,r[s].fn,void 0,!0),r[s].fn.call(r[s].context,t)}}});var CS,ES,Pc,Lo,Mc=p(()=>{P();Ip();Tc();wc();Cc();CS=1,ES={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},Pc=class Ec{constructor(t){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=t,this.rootBoundary=new Do(null),Me.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new se(null),this._rootWheelEvent=new Oe(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Ec.defaultEventFeatures},{set:(e,r,s)=>(r==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),e[r]=s,!0)}),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,Ec._defaultEventMode=t.eventMode??"passive",Object.assign(this.features,t.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(t){this.resolution=t}destroy(){Me.destroy(),this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(t){t||(t="default");let e=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(e=!1),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 n=e[r],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(t){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Me.pointerMoved();let e=this._normalizeToPointerData(t);for(let r=0,s=e.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(n)}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 n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);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 n=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(n)}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,Me.domElement=t,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Me.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,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Me.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,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(t,e,r){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;t.x=(e-s.left)*(this.domElement.width/s.width)*n,t.y=(r-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(t){let e=[];if(this.supportsTouchEvents&&t instanceof TouchEvent)for(let r=0,s=t.changedTouches.length;r<s;r++){let n=t.changedTouches[r];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=t.touches.length===1&&t.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=t.type,n.altKey??(n.altKey=t.altKey),n.ctrlKey??(n.ctrlKey=t.ctrlKey),n.metaKey??(n.metaKey=t.metaKey),n.shiftKey??(n.shiftKey=t.shiftKey),e.push(n)}else if(!globalThis.MouseEvent||t instanceof MouseEvent&&(!this.supportsPointerEvents||!(t instanceof globalThis.PointerEvent))){let r=t;typeof r.isPrimary>"u"&&(r.isPrimary=!0),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=CS),typeof r.pressure>"u"&&(r.pressure=.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),r.isNormalized=!0,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=ES[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}};Pc.extension={name:"events",type:[y.WebGLSystem,y.CanvasSystem,y.WebGPUSystem],priority:-1};Pc.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Lo=Pc});var Gp,Fp=p(()=>{Mc();Go();Gp={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??Lo.defaultEventMode},set eventMode(i){this._internalEventMode=i},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,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,n=typeof e=="object"?e.once===!0:!1,o=typeof t=="function"?void 0:t;i=r?`${i}capture`:i;let a=typeof t=="function"?t:t.handleEvent,l=this;s&&s.addEventListener("abort",()=>{l.off(i,a,o)}),n?l.once(i,a,o):l.on(i,a,o)},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 ur))throw new Error("Container cannot propagate events outside of the Federated Events API");return i.defaultPrevented=!1,i.path=null,i.target=this,i.manager.dispatchEvent(i),!i.defaultPrevented}}});var Up=p(()=>{P();Pe();Mc();Fp();z.add(Lo);z.mixin(mt,Gp)});var Ac,Dp=p(()=>{"use strict";Ac=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Ac||{})});var Lp,Op=p(()=>{"use strict";Lp={createCanvas:(i,t)=>{let e=document.createElement("canvas");return e.width=i,e.height=t,e},createImage:()=>new Image,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 Np,W,xt=p(()=>{Op();Np=Lp,W={get(){return Np},set(i){Np=i}}});function Ae(i){if(typeof i!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(i)}`)}function Ps(i){return i.split("?")[0].split("#")[0]}function PS(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function MS(i,t,e){return i.replace(new RegExp(PS(t),"g"),e)}function AS(i,t){let e="",r=0,s=-1,n=0,o=-1;for(let a=0;a<=i.length;++a){if(a<i.length)o=i.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(e.length<2||r!==2||e.charCodeAt(e.length-1)!==46||e.charCodeAt(e.length-2)!==46){if(e.length>2){let l=e.lastIndexOf("/");if(l!==e.length-1){l===-1?(e="",r=0):(e=e.slice(0,l),r=e.length-1-e.lastIndexOf("/")),s=a,n=0;continue}}else if(e.length===2||e.length===1){e="",r=0,s=a,n=0;continue}}t&&(e.length>0?e+="/..":e="..",r=2)}else e.length>0?e+=`/${i.slice(s+1,a)}`:e=i.slice(s+1,a),r=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return e}var Lr,Rc=p(()=>{xt();Lr={toPosix(i){return MS(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){Ae(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(Ae(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;let r=Ps(this.toPosix(t??W.get().getBaseUrl())),s=Ps(this.toPosix(e??this.rootname(r)));return i=this.toPosix(i),i.startsWith("/")?Lr.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(Ae(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=AS(i,!1),i.length>0&&r&&(i+="/"),e?`/${i}`:t+i},isAbsolute(i){return Ae(i),i=this.toPosix(i),this.hasProtocol(i)?!0:i.startsWith("/")},join(...i){if(i.length===0)return".";let t;for(let e=0;e<i.length;++e){let r=i[e];if(Ae(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(Ae(i),i.length===0)return".";i=this.toPosix(i);let t=i.charCodeAt(0),e=t===47,r=-1,s=!0,n=this.getProtocol(i),o=i;i=i.slice(n.length);for(let a=i.length-1;a>=1;--a)if(t=i.charCodeAt(a),t===47){if(!s){r=a;break}}else s=!1;return r===-1?e?"/":this.isUrl(o)?n+i:n:e&&r===1?"//":n+i.slice(0,r)},rootname(i){Ae(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){Ae(i),t&&Ae(t),i=Ps(this.toPosix(i));let e=0,r=-1,s=!0,n;if(t!==void 0&&t.length>0&&t.length<=i.length){if(t.length===i.length&&t===i)return"";let o=t.length-1,a=-1;for(n=i.length-1;n>=0;--n){let l=i.charCodeAt(n);if(l===47){if(!s){e=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(l===t.charCodeAt(o)?--o===-1&&(r=n):(o=-1,r=a))}return e===r?r=a:r===-1&&(r=i.length),i.slice(e,r)}for(n=i.length-1;n>=0;--n)if(i.charCodeAt(n)===47){if(!s){e=n+1;break}}else r===-1&&(s=!1,r=n+1);return r===-1?"":i.slice(e,r)},extname(i){Ae(i),i=Ps(this.toPosix(i));let t=-1,e=0,r=-1,s=!0,n=0;for(let o=i.length-1;o>=0;--o){let a=i.charCodeAt(o);if(a===47){if(!s){e=o+1;break}continue}r===-1&&(s=!1,r=o+1),a===46?t===-1?t=o:n!==1&&(n=1):t!==-1&&(n=-1)}return t===-1||r===-1||n===0||n===1&&t===r-1&&t===e+1?"":i.slice(t,r)},parse(i){Ae(i);let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;i=Ps(this.toPosix(i));let e=i.charCodeAt(0),r=this.isAbsolute(i),s,n="";t.root=this.rootname(i),r||this.hasProtocol(i)?s=1:s=0;let o=-1,a=0,l=-1,c=!0,h=i.length-1,u=0;for(;h>=s;--h){if(e=i.charCodeAt(h),e===47){if(!c){a=h+1;break}continue}l===-1&&(c=!1,l=h+1),e===46?o===-1?o=h:u!==1&&(u=1):o!==-1&&(u=-1)}return o===-1||l===-1||u===0||u===1&&o===l-1&&o===a+1?l!==-1&&(a===0&&r?t.base=t.name=i.slice(1,l):t.base=t.name=i.slice(a,l)):(a===0&&r?(t.name=i.slice(1,o),t.base=i.slice(1,l)):(t.name=i.slice(a,o),t.base=i.slice(a,l)),t.ext=i.slice(o,l)),t.dir=this.dirname(i),n&&(t.dir=n+t.dir),t},sep:"/",delimiter:":",joinExtensions:[".html"]}});var dr,kc=p(()=>{"use strict";dr=(i,t,e=!1)=>(Array.isArray(i)||(i=[i]),t?i.map(r=>typeof r=="string"||e?t(r):r):i)});function zp(i,t,e,r,s){let n=t[e];for(let o=0;o<n.length;o++){let a=n[o];e<t.length-1?zp(i.replace(r[e],a),t,e+1,r,s):s.push(i.replace(r[e],a))}}function Hp(i){let t=/\{(.*?)\}/g,e=i.match(t),r=[];if(e){let s=[];e.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),zp(i,s,0,e,r)}else r.push(i);return r}var Wp=p(()=>{"use strict"});var Bc,Vp=p(()=>{"use strict";Bc=i=>!Array.isArray(i)});function RS(i){return i.split(".").pop().split("?").shift().split("#").shift()}var Ms,jp=p(()=>{ht();Rc();kc();Wp();Vp();Ms=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 dr(e||r,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}removeAlias(t,e){this._assetMap[t]&&(e&&e!==this._resolverHash[t]||(delete this._resolverHash[t],delete this._assetMap[t]))}addManifest(t){this._manifest&&L("[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(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,l;if(typeof a=="string"){let c=this._createBundleAssetId(t,a);r.push(c),l=[a,c]}else{let c=a.map(h=>this._createBundleAssetId(t,h));r.push(...c),l=[...a,...c]}this.add({...n,alias:l,src:o})}),this._bundles[t]=r}add(t){let e=[];Array.isArray(t)?e.push(...t):e.push(t);let r;r=n=>{this.hasKey(n)&&L(`[Resolver] already has key: ${n} overwriting`)},dr(e).forEach(n=>{let{src:o}=n,{data:a,format:l,loadParser:c,parser:h}=n,u=dr(o).map(g=>typeof g=="string"?Hp(g):Array.isArray(g)?g:[g]),d=this.getAlias(n);Array.isArray(d)?d.forEach(r):r(d);let f=[],m=g=>{let _=this._parsers.find(x=>x.test(g));return{src:g,..._?.parse(g)}};u.forEach(g=>{g.forEach(_=>{let x={};if(typeof _!="object"?x=m(_):(a=_.data??a,l=_.format??l,(_.loadParser||_.parser)&&(c=_.loadParser??c,h=_.parser??h),x={...m(_.src),..._}),!d)throw new Error(`[Resolver] alias is undefined for this asset: ${x.src}`);x=this._buildResolvedAsset(x,{aliases:d,data:a,format:l,loadParser:c,parser:h,progressSize:n.progressSize}),f.push(x)})}),d.forEach(g=>{this._assetMap[g]=f})})}resolveBundle(t){let e=Bc(t);t=dr(t);let r={};return t.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let l in o){let c=o[l];a[this._extractAssetIdFromBundle(s,l)]=c}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=Bc(t);t=dr(t);let r={};return t.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(l=>{let c=n.filter(h=>h[a]?h[a]===l:!1);c.length&&(n=c)})}),this._resolverHash[s]=n[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(n=>n.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:n,parser:o,format:a,progressSize:l}=e;return(this._basePath||this._rootPath)&&(t.src=Lr.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=n??t.loadParser,t.parser=o??t.parser,t.format=a??t.format??RS(t.src),l!==void 0&&(t.progressSize=l),t}};Ms.RETINA_PREFIX=/@([0-9\.]+)x/});var Ic,Xp=p(()=>{"use strict";Ic=(i,t)=>{let e=t.split("?")[1];return e&&(i+=`?${e}`),i}});var Yp,Gc,$p=p(()=>{Yt();$t();gt();Yp=class As{constructor(t,e){this.linkedSheets=[];let r=t;t?.source instanceof st&&(r={texture:t,data:e});let{texture:s,data:n,cachePrefix:o=""}=r;this.cachePrefix=o,this._texture=s instanceof U?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.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<=As.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}parseSync(){return this._processFrames(0,!0),this._processAnimations(),this.textures}_processFrames(t,e=!1){let r=t,s=e?1/0:As.BATCH_SIZE;for(;r-t<s&&r<this._frameKeys.length;){let n=this._frameKeys[r],o=this._frames[n],a=o.frame;if(a){let l=null,c=null,h=o.trimmed!==!1&&o.sourceSize?o.sourceSize:o.frame,u=new J(0,0,Math.floor(h.w)/this.resolution,Math.floor(h.h)/this.resolution);o.rotated?l=new J(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.h)/this.resolution,Math.floor(a.w)/this.resolution):l=new J(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution),o.trimmed!==!1&&o.spriteSourceSize&&(c=new J(Math.floor(o.spriteSourceSize.x)/this.resolution,Math.floor(o.spriteSourceSize.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution)),this.textures[n]=new U({source:this.textureSource,frame:l,orig:u,trim:c,rotate:o.rotated?2:0,defaultAnchor:o.anchor,defaultBorders:o.borders,label:n.toString()})}r++}}_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*As.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*As.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(t=!1){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=[]}};Yp.BATCH_SIZE=1e3;Gc=Yp});function qp(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=Lr.dirname(i[0]);t.linkedSheets.forEach((n,o)=>{let a=qp([`${s}/${t.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var kS,Kp,Zp=p(()=>{Dp();jp();Xp();P();gt();Rc();$p();kS=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];Kp={extension:y.Asset,cache:{test:i=>i instanceof Gc,getCacheableAssets:(i,t)=>qp(i,t,!1)},resolver:{extension:{type:y.ResolveParser,name:"resolveSpritesheet"},test:i=>{let e=i.split("?")[0].split("."),r=e.pop(),s=e.pop();return r==="json"&&kS.includes(s)},parse:i=>{let t=i.split(".");return{resolution:parseFloat(Ms.RETINA_PREFIX.exec(i)?.[1]??"1"),format:t[t.length-2],src:i}}},loader:{name:"spritesheetLoader",id:"spritesheet",extension:{type:y.LoadParser,priority:Ac.Normal,name:"spritesheetLoader"},async testParse(i,t){return Lr.extname(t.src).toLowerCase()===".json"&&!!i.frames},async parse(i,t,e){let{texture:r,imageFilename:s,textureOptions:n,cachePrefix:o}=t?.data??{},a=Lr.dirname(t.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let l;if(r instanceof U)l=r;else{let u=Ic(a+(s??i.meta.image),t.src);l=(await e.load([{src:u,data:n}]))[u]}let c=new Gc({texture:l.source,data:i,cachePrefix:o});await c.parse();let h=i?.meta?.related_multi_packs;if(Array.isArray(h)){let u=[];for(let f of h){if(typeof f!="string")continue;let m=a+f;t.data?.ignoreMultiPack||(m=Ic(m,t.src),u.push(e.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let d=await Promise.all(u);c.linkedSheets=d,d.forEach(f=>{f.linkedSheets=[c].concat(c.linkedSheets.filter(m=>m!==f))})}return c},async unload(i,t,e){await e.unload(i.textureSource._sourceOrigin),i.destroy(!1)}}}});var Oo=p(()=>{P();Zp();z.add(Kp)});function No(i,t,e){let{width:r,height:s}=e.orig,n=e.trim;if(n){let o=n.width,a=n.height;i.minX=n.x-t._x*r,i.maxX=i.minX+o,i.minY=n.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 Fc=p(()=>{"use strict"});var pe,zo=p(()=>{bo();gt();Fc();yt();Cs();pe=class i extends Le{constructor(t=U.EMPTY){t instanceof U&&(t={texture:t});let{texture:e=U.EMPTY,anchor:r,roundPixels:s,width:n,height:o,...a}=t;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new Gt({_onUpdate:()=>{this.onViewUpdate()}}),r?this.anchor=r:e.defaultAnchor&&(this.anchor=e.defaultAnchor),this.texture=e,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(t,e=!1){return t instanceof U?new i(t):new i(U.from(t,e))}set texture(t){t||(t=U.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 No(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return O("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:n}=e.orig;r.minX=-t._x*s,r.maxX=r.minX+s,r.minY=-t._y*n,r.maxY=r.minY+n}destroy(t=!1){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}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 Ho(i,t,e){let r=BS;i.measurable=!0,gi(i,e,r),t.addBoundsMask(r),i.measurable=!1}var BS,Uc=p(()=>{ie();xs();BS=new dt});function Wo(i,t,e){let r=de.get();i.measurable=!0;let s=Ut.get().identity(),n=Qp(i,e,s);_i(i,r,n),i.measurable=!1,t.addBoundsMask(r),Ut.return(s),de.return(r)}function Qp(i,t,e){return i?(i!==t&&(Qp(i.parent,t,e),i.updateLocalTransform(),e.append(i.localTransform)),e):(L("Mask bounds, renderable is not inside the root container"),e)}var Dc=p(()=>{Mo();Mr();ht()});var Rs,Jp=p(()=>{P();zo();Uc();Dc();Rs=class{constructor(t){this.priority=0,this.inverse=!1,this.channel="red",this.pipe="alphaMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t,this.renderMaskToTexture=!(t instanceof pe),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask=null)}addBounds(t,e){this.inverse||Ho(this.mask,t,e)}addLocalBounds(t,e){Wo(this.mask,t,e)}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset()}static test(t){return t instanceof pe}};Rs.extension=y.MaskEffect});var ks,tm=p(()=>{P();ks=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"}};ks.extension=y.MaskEffect});var Bs,em=p(()=>{P();Pe();Uc();Dc();Bs=class{constructor(t){this.priority=0,this.pipe="stencilMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null)}addBounds(t,e){Ho(this.mask,t,e)}addLocalBounds(t,e){Wo(this.mask,t,e)}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset()}static test(t){return t instanceof mt}};Bs.extension=y.MaskEffect});var wt,fr=p(()=>{xt();P();$t();wt=class extends st{constructor(t){t.resource||(t.resource=W.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"))}};wt.extension=y.TextureSource});var Re,Vo=p(()=>{P();$t();Re=class extends st{constructor(t){super(t),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(t){return globalThis.HTMLImageElement&&t instanceof HTMLImageElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||globalThis.VideoFrame&&t instanceof VideoFrame}};Re.extension=y.TextureSource});async function rm(){return Lc??(Lc=(async()=>{let t=W.get().createCanvas(1,1).getContext("webgl");if(!t)return"premultiply-alpha-on-upload";let e=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,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,!1),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e);let n=new Uint8Array(4);return t.readPixels(0,0,1,1,t.RGBA,t.UNSIGNED_BYTE,n),t.deleteFramebuffer(s),t.deleteTexture(r),t.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Lc}var Lc,im=p(()=>{xt()});var jo,nm,om=p(()=>{P();Si();im();$t();jo=class sm extends st{constructor(t){super(t),this.isReady=!1,this.uploadMethodId="video",t={...sm.defaultOptions,...t},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=t.autoPlay!==!1,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),this._onLoadedMetadata=this._onLoadedMetadata.bind(this),t.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let t=qt.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=!0),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,!0)),this.isValid||t.addEventListener("loadedmetadata",this._onLoadedMetadata),this.alphaMode=await rm(),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,!0),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._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onLoadedMetadata(){this.isValid&&this._mediaReady()}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlayThrough),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let t=this.resource;this.isValid&&(this.isReady=!0,this.resize(t.videoWidth,t.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&this.isValid&&(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("loadedmetadata",this._onLoadedMetadata),t.removeEventListener("error",this._onError,!0),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&&(qt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,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||(qt.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(qt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(t){return globalThis.HTMLVideoElement&&t instanceof HTMLVideoElement}};jo.extension=y.TextureSource;jo.defaultOptions={...st.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};jo.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};nm=jo});var Oc,Or,am=p(()=>{ht();kc();Oc=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||L(`[Assets] Asset id ${t} was not found in the Cache`),e}set(t,e){let r=dr(t),s;for(let l=0;l<this.parsers.length;l++){let c=this.parsers[l];if(c.test(e)){s=c.getCacheableAssets(r,e);break}}let n=new Map(Object.entries(s||{}));s||r.forEach(l=>{n.set(l,e)});let o=[...n.keys()],a={cacheKeys:o,keys:r};r.forEach(l=>{this._cacheMap.set(l,a)}),o.forEach(l=>{let c=s?s[l]:e;this._cache.has(l)&&this._cache.get(l)!==c&&L("[Cache] already has key:",l),this._cache.set(l,n.get(l))})}remove(t){if(!this._cacheMap.has(t)){L(`[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}},Or=new Oc});function lm(i={}){let t=i&&i.resource,e=t?i.resource:i,r=t?i:{resource:i};for(let s=0;s<Nc.length;s++){let n=Nc[s];if(n.test(e))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function cm(i={},t=!1){let e=i&&i.resource,r=e?i.resource:i,s=e?i:{resource:i};if(!t&&Or.has(r))return Or.get(r);let n=new U({source:lm(s)});return n.on("destroy",()=>{Or.has(r)&&Or.remove(r)}),t||Or.set(r,n),n}function hm(i,t=!1){return typeof i=="string"?Or.get(i):i instanceof st?new U({source:i}):cm(i,t)}var Nc,zc=p(()=>{am();P();$t();gt();Nc=[];z.handleByList(y.TextureSource,Nc);U.from=hm;st.from=lm});var Xo=p(()=>{P();Jp();tm();em();uc();fr();Vo();om();zc();z.add(Rs,ks,Bs,nm,Re,wt,Gr)});function um(i){let t=W.get().createCanvas(6,1),e=t.getContext("2d");return e.fillStyle=i,e.fillRect(0,0,6,1),t}function Yo(){if(Ci!==void 0)return Ci;try{let i=um("#ff00ff"),t=um("#ffff00"),r=W.get().createCanvas(6,1).getContext("2d");r.globalCompositeOperation="multiply",r.drawImage(i,0,0),r.drawImage(t,2,0);let s=r.getImageData(2,0,1,1);if(!s)Ci=!1;else{let n=s.data;Ci=n[0]===255&&n[1]===0&&n[2]===0}}catch{Ci=!1}return Ci}var Ci,Hc=p(()=>{xt()});var Z,Ei=p(()=>{Qt();xt();bs();Hc();Z={canvas:null,convertTintToImage:!1,cacheStepsPerColorChannel:8,canUseMultiply:Yo(),tintMethod:null,_canvasSourceCache:new WeakMap,_unpremultipliedCache:new WeakMap,getCanvasSource:i=>{let t=i.source,e=t?.resource;if(!e)return null;let r=t.alphaMode==="premultiplied-alpha",s=t.resourceWidth??t.pixelWidth,n=t.resourceHeight??t.pixelHeight,o=s!==t.pixelWidth||n!==t.pixelHeight;if(r){if((e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)&&!o)return e;let a=Z._unpremultipliedCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas}if(e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof ArrayBuffer){let a=Z._canvasSourceCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas;let l=W.get().createCanvas(t.pixelWidth,t.pixelHeight),c=l.getContext("2d"),h=c.createImageData(t.pixelWidth,t.pixelHeight),u=h.data,d=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(t.format==="bgra8unorm")for(let f=0;f<u.length&&f+3<d.length;f+=4)u[f]=d[f+2],u[f+1]=d[f+1],u[f+2]=d[f],u[f+3]=d[f+3];else u.set(d.subarray(0,u.length));return c.putImageData(h,0,0),Z._canvasSourceCache.set(t,{canvas:l,resourceId:t._resourceId}),l}if(r){let a=W.get().createCanvas(t.pixelWidth,t.pixelHeight),l=a.getContext("2d",{willReadFrequently:!0});a.width=t.pixelWidth,a.height=t.pixelHeight,l.drawImage(e,0,0);let c=l.getImageData(0,0,a.width,a.height),h=c.data;for(let u=0;u<h.length;u+=4){let d=h[u+3];if(d>0){let f=255/d;h[u]=Math.min(255,h[u]*f+.5),h[u+1]=Math.min(255,h[u+1]*f+.5),h[u+2]=Math.min(255,h[u+2]*f+.5)}}return l.putImageData(c,0,0),Z._unpremultipliedCache.set(t,{canvas:a,resourceId:t._resourceId}),a}if(o){let a=Z._canvasSourceCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas;let l=W.get().createCanvas(t.pixelWidth,t.pixelHeight),c=l.getContext("2d");return l.width=t.pixelWidth,l.height=t.pixelHeight,c.drawImage(e,0,0),Z._canvasSourceCache.set(t,{canvas:l,resourceId:t._resourceId}),l}return e},getTintedCanvas:(i,t)=>{let e=i.texture,r=Q.shared.setValue(t).toHex(),s=e.tintCache||(e.tintCache={}),n=s[r],o=e.source._resourceId;if(n?.tintId===o)return n;let a=n&&"getContext"in n?n:W.get().createCanvas();if(Z.tintMethod(e,t,a),a.tintId=o,Z.convertTintToImage&&a.toDataURL!==void 0){let l=W.get().createImage();l.src=a.toDataURL(),l.tintId=o,s[r]=l}else s[r]=a;return s[r]},getTintedPattern:(i,t)=>{let e=Q.shared.setValue(t).toHex(),r=i.patternCache||(i.patternCache={}),s=i.source._resourceId,n=r[e];return n?.tintId===s||(Z.canvas||(Z.canvas=W.get().createCanvas()),Z.tintMethod(i,t,Z.canvas),n=Z.canvas.getContext("2d").createPattern(Z.canvas,"repeat"),n.tintId=s,r[e]=n),n},applyPatternTransform:(i,t,e=!0)=>{if(!t)return;let r=i;if(!r.setTransform)return;let s=globalThis.DOMMatrix;if(!s)return;let n=new s([t.a,t.b,t.c,t.d,t.tx,t.ty]);r.setTransform(e?n.inverse():n)},tintWithMultiply:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.fillStyle=Q.shared.setValue(t).toHex(),r.fillRect(0,0,l,c),r.globalCompositeOperation="multiply";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.globalCompositeOperation="destination-atop",r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithOverlay:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.globalCompositeOperation="copy",r.fillStyle=Q.shared.setValue(t).toHex(),r.fillRect(0,0,l,c),r.globalCompositeOperation="destination-atop";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithPerPixel:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.globalCompositeOperation="copy";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore();let u=t>>16&255,d=t>>8&255,f=t&255,m=r.getImageData(0,0,l,c),g=m.data;for(let _=0;_<g.length;_+=4)g[_]=g[_]*u/255,g[_+1]=g[_+1]*d/255,g[_+2]=g[_+2]*f/255;r.putImageData(m,0,0)},_applyInverseRotation:(i,t,e,r)=>{let s=it.inv(t),n=it.uX(s),o=it.uY(s),a=it.vX(s),l=it.vY(s),c=-Math.min(0,n*e,a*r,n*e+a*r),h=-Math.min(0,o*e,l*r,o*e+l*r);i.transform(n,o,a,l,c,h)}};Z.tintMethod=Z.canUseMultiply?Z.tintWithMultiply:Z.tintWithPerPixel});var Wc,rr,$o=p(()=>{xt();ys();Pr();Wc=class{constructor(t){this._canvasPool=Object.create(null),this.canvasOptions=t||{},this.enableFullScreen=!1}_createCanvasAndContext(t,e){let r=W.get().createCanvas();r.width=t,r.height=e;let s=r.getContext("2d");return{canvas:r,context:s}}getOptimalCanvasAndContext(t,e,r=1){t=Math.ceil(t*r-1e-6),e=Math.ceil(e*r-1e-6),t=Je(t),e=Je(e);let s=(t<<17)+(e<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(t,e)),n}returnCanvasAndContext(t){let e=t.canvas,{width:r,height:s}=e,n=(r<<17)+(s<<1);t.context.resetTransform(),t.context.clearRect(0,0,r,s),this._canvasPool[n].push(t)}clear(){this._canvasPool={}}},rr=new Wc;ye.register(rr)});function qo(i){let t=i.length;if(t<6)return 1;let e=0;for(let r=0,s=i[t-2],n=i[t-1];r<t;r+=2){let o=i[r],a=i[r+1];e+=(o-s)*(a+n),s=o,n=a}return e<0?-1:1}var Vc=p(()=>{"use strict"});function dm(i,t,e,r,s,n){let o=i-e,a=t-r,l=s-e,c=n-r,h=o*l+a*c,u=l*l+c*c,d=-1;u!==0&&(d=h/u);let f,m;d<0?(f=e,m=r):d>1?(f=s,m=n):(f=e+d*l,m=r+d*c);let g=i-f,_=t-m;return g*g+_*_}var fm=p(()=>{"use strict"});function jc(i,t,e,r,s,n,o,a){let l=o-e,c=a-r,h=s-e,u=n-r,d=i-e,f=t-r,m=l*l+c*c,g=l*h+c*u,_=l*d+c*f,x=h*h+u*u,b=h*d+u*f,v=1/(m*x-g*g),S=(x*_-g*b)*v,T=(m*b-g*_)*v;return S>=0&&T>=0&&S+T<1}var pm=p(()=>{"use strict"});var Ko,mm=p(()=>{Yt();Ko=class i{constructor(t=0,e=0,r=0){this.type="circle",this.x=t,this.y=e,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(t,e){if(this.radius<=0)return!1;let r=this.radius*this.radius,s=this.x-t,n=this.y-e;return s*=s,n*=n,s+n<=r}strokeContains(t,e,r,s=.5){if(this.radius===0)return!1;let n=this.x-t,o=this.y-e,a=this.radius,l=(1-s)*r,c=Math.sqrt(n*n+o*o);return c<=a+l&&c>a-(r-l)}getBounds(t){return t||(t=new J),t.x=this.x-this.radius,t.y=this.y-this.radius,t.width=this.radius*2,t.height=this.radius*2,t}copyFrom(t){return this.x=t.x,this.y=t.y,this.radius=t.radius,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var Zo,gm=p(()=>{Yt();Zo=class i{constructor(t=0,e=0,r=0,s=0){this.type="ellipse",this.x=t,this.y=e,this.halfWidth=r,this.halfHeight=s}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(t,e){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(t-this.x)/this.halfWidth,s=(e-this.y)/this.halfHeight;return r*=r,s*=s,r+s<=1}strokeContains(t,e,r,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=r*(1-s),l=r-a,c=n-l,h=o-l,u=n+a,d=o+a,f=t-this.x,m=e-this.y,g=f*f/(c*c)+m*m/(h*h),_=f*f/(u*u)+m*m/(d*d);return g>1&&_<=1}getBounds(t){return t||(t=new J),t.x=this.x-this.halfWidth,t.y=this.y-this.halfHeight,t.width=this.halfWidth*2,t.height=this.halfHeight*2,t}copyFrom(t){return this.x=t.x,this.y=t.y,this.halfWidth=t.halfWidth,this.halfHeight=t.halfHeight,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});var IS,GS,Pi,xm=p(()=>{yt();Vc();fm();Yt();Pi=class i{constructor(...t){this.type="polygon";let e=Array.isArray(t[0])?t[0]:t;if(typeof e[0]!="number"){let r=[];for(let s=0,n=e.length;s<n;s++)r.push(e[s].x,e[s].y);e=r}this.points=e,this.closePath=!0}isClockwise(){let t=0,e=this.points,r=e.length;for(let s=0;s<r;s+=2){let n=e[s],o=e[s+1],a=e[(s+2)%r],l=e[(s+3)%r];t+=(a-n)*(l+o)}return t<0}containsPolygon(t){let e=this.getBounds(IS),r=t.getBounds(GS);if(!e.containsRect(r))return!1;let s=t.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let t=this.points.slice(),e=new i(t);return e.closePath=this.closePath,e}contains(t,e){let r=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],l=this.points[n*2+1],c=this.points[o*2],h=this.points[o*2+1];l>e!=h>e&&t<(c-a)*((e-l)/(h-l))+a&&(r=!r)}return r}strokeContains(t,e,r,s=.5){let{points:n}=this,o=s===.5?s:(s-.5)*qo(n)+.5,a=r*o,l=r-a,c=a*a,h=l*l,u=n.length-(this.closePath?0:2);for(let d=0;d<u;d+=2){let f=n[d],m=n[d+1],g=n[(d+2)%n.length],_=n[(d+3)%n.length],x=dm(t,e,f,m,g,_),b=Math.sign((g-f)*(e-m)-(_-m)*(t-f));if(x<=(b<0?c:h))return!0}return!1}getBounds(t){t||(t=new J);let e=this.points,r=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,l=e.length;a<l;a+=2){let c=e[a],h=e[a+1];r=c<r?c:r,s=c>s?c:s,n=h<n?h:n,o=h>o?h:o}return t.x=r,t.width=s-r,t.y=n,t.height=o-n,t}copyFrom(t){return this.points=t.points.slice(),this.closePath=t.closePath,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((t,e)=>`${t}, ${e}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return O("8.11.0","Polygon.lastX is deprecated, please use Polygon.lastX instead."),this.points[this.points.length-2]}get y(){return O("8.11.0","Polygon.y is deprecated, please use Polygon.lastY instead."),this.points[this.points.length-1]}get startX(){return this.points[0]}get startY(){return this.points[1]}}});var Qo,Jo,_m=p(()=>{Yt();Qo=(i,t,e,r,s,n,o)=>{let a=i-e,l=t-r,c=Math.sqrt(a*a+l*l);return c>=s-n&&c<=s+o},Jo=class i{constructor(t=0,e=0,r=0,s=0,n=20){this.type="roundedRectangle",this.x=t,this.y=e,this.width=r,this.height=s,this.radius=n}getBounds(t){return t||(t=new J),t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t}clone(){return new i(this.x,this.y,this.width,this.height,this.radius)}copyFrom(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this.radius=t.radius,this}copyTo(t){return t.copyFrom(this),t}contains(t,e){if(this.width<=0||this.height<=0)return!1;if(t>=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height){let r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(e>=this.y+r&&e<=this.y+this.height-r||t>=this.x+r&&t<=this.x+this.width-r)return!0;let s=t-(this.x+r),n=e-(this.y+r),o=r*r;if(s*s+n*n<=o||(s=t-(this.x+this.width-r),s*s+n*n<=o)||(n=e-(this.y+this.height-r),s*s+n*n<=o)||(s=t-(this.x+r),s*s+n*n<=o))return!0}return!1}strokeContains(t,e,r,s=.5){let{x:n,y:o,width:a,height:l,radius:c}=this,h=r*(1-s),u=r-h,d=n+c,f=o+c,m=a-c*2,g=l-c*2,_=n+a,x=o+l;return(t>=n-h&&t<=n+u||t>=_-u&&t<=_+h)&&e>=f&&e<=f+g||(e>=o-h&&e<=o+u||e>=x-u&&e<=x+h)&&t>=d&&t<=d+m?!0:t<d&&e<f&&Qo(t,e,d,f,c,u,h)||t>_-c&&e<f&&Qo(t,e,_-c,f,c,u,h)||t>_-c&&e>x-c&&Qo(t,e,_-c,x-c,c,u,h)||t<d&&e>x-c&&Qo(t,e,d,x-c,c,u,h)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function ta(i,t){t.clear();let e=t.matrix;for(let r=0;r<i.length;r++){let s=i[r];if(s.globalDisplayStatus<7)continue;let n=s.renderGroup??s.parentRenderGroup;n?.isCachedAsTexture?t.matrix=ym.copyFrom(n.textureOffsetInverseTransform).append(s.worldTransform):n?._parentCacheAsTextureRenderGroup?t.matrix=ym.copyFrom(n._parentCacheAsTextureRenderGroup.inverseWorldTransform).append(s.groupTransform):t.matrix=s.worldTransform,t.addBounds(s.bounds)}return t.matrix=e,t}var ym,Xc=p(()=>{ot();ym=new k});function ea(i,t,e,r,s=!1){let n=FS;n.minX=0,n.minY=0,n.maxX=i.width/r|0,n.maxY=i.height/r|0;let o=Mt.getOptimalTexture(n.width,n.height,r,!1,s);return o.source.uploadMethodId="image",o.source.resource=i,o.source.alphaMode="premultiply-alpha-on-upload",o.frame.width=t/r,o.frame.height=e/r,o.source.emit("update",o.source),o.updateUvs(),o}var FS,Yc=p(()=>{Fr();ie();FS=new dt});function bm(i){return typeof i.getCanvasFilterString=="function"}var $c,Is,vm=p(()=>{P();Ei();$o();ie();Xc();Yc();$c=class{constructor(){this.skip=!1,this.useClip=!1,this.filters=null,this.container=null,this.bounds=new dt,this.cssFilterString=""}},Is=class{constructor(t){this._filterStack=[],this._filterStackIndex=0,this._savedStates=[],this._alphaMultiplier=1,this._warnedFilterTypes=new Set,this.renderer=t}push(t){let e=this._pushFilterFrame(),r=t.filterEffect.filters;if(e.skip=!1,e.useClip=!1,e.filters=r,e.container=t.container,e.cssFilterString="",r.every(l=>!l.enabled)){e.skip=!0;return}let s=[],n=1;for(let l of r){if(!l.enabled)continue;if(!bm(l)){this._warnUnsupportedFilter(l);continue}let c=l.getCanvasFilterString();if(c===null){this._warnUnsupportedFilter(l);continue}c&&s.push(c)}if(s.length===0&&n===1){e.skip=!0;return}e.cssFilterString=s.join(" "),this._calculateFilterArea(t,e.bounds),e.useClip=!!t.filterEffect.filterArea;let o=this.renderer.canvasContext.activeContext,a=o.filter||"none";if(this._savedStates.push({filter:a,alphaMultiplier:this._alphaMultiplier}),e.useClip&&Number.isFinite(e.bounds.width)&&Number.isFinite(e.bounds.height)&&e.bounds.width>0&&e.bounds.height>0){let l=this.renderer.canvasContext.activeResolution||1;o.save(),o.setTransform(1,0,0,1,0,0),o.beginPath(),o.rect(e.bounds.x*l,e.bounds.y*l,e.bounds.width*l,e.bounds.height*l),o.clip()}else e.useClip=!1;n!==1&&(this._alphaMultiplier*=n),e.cssFilterString&&(o.filter=a!=="none"?`${a} ${e.cssFilterString}`:e.cssFilterString)}pop(){let t=this._popFilterFrame();if(t.skip)return;let e=this._savedStates.pop();if(!e)return;let r=this.renderer.canvasContext.activeContext;t.useClip?r.restore():r.filter=e.filter,this._alphaMultiplier=e.alphaMultiplier}generateFilteredTexture({texture:t,filters:e}){if(!e?.length||e.every(x=>!x.enabled))return t;let r=[],s=1;for(let x of e){if(!x.enabled)continue;if(!bm(x)){this._warnUnsupportedFilter(x);continue}let b=x.getCanvasFilterString();if(b===null){this._warnUnsupportedFilter(x);continue}b&&r.push(b)}if(r.length===0&&s===1)return t;let n=Z.getCanvasSource(t);if(!n)return t;let o=t.frame,a=t.source._resolution??t.source.resolution??1,l=o.width,c=o.height,h=rr.getOptimalCanvasAndContext(l,c,a),{canvas:u,context:d}=h;d.setTransform(1,0,0,1,0,0),d.clearRect(0,0,u.width,u.height),r.length&&(d.filter=r.join(" ")),s!==1&&(d.globalAlpha=s);let f=o.x*a,m=o.y*a,g=l*a,_=c*a;return d.drawImage(n,f,m,g,_,0,0,g,_),d.filter="none",d.globalAlpha=1,ea(u,l,c,a)}_calculateFilterArea(t,e){if(t.renderables?ta(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(!0,e),t.container){let s=(t.container.renderGroup||t.container.parentRenderGroup)?.cacheToLocalTransform;s&&e.applyMatrix(s)}}_warnUnsupportedFilter(t){let e=t?.constructor?.name||"Filter";this._warnedFilterTypes.has(e)||(this._warnedFilterTypes.add(e),console.warn(`CanvasRenderer: filter "${e}" is not supported in Canvas2D and will be skipped.`))}get alphaMultiplier(){return this._alphaMultiplier}_pushFilterFrame(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new $c),this._filterStackIndex++,t}_popFilterFrame(){return this._filterStackIndex<=0?this._filterStack[0]:(this._filterStackIndex--,this._filterStack[this._filterStackIndex])}destroy(){this._filterStack=null,this._savedStates=null,this._warnedFilterTypes=null,this._alphaMultiplier=1}};Is.extension={type:[y.CanvasSystem],name:"filter"}});var Gs,Sm=p(()=>{P();Gs=class{constructor(t){this._renderer=t}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:e,filterEffect:t})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(t){t.action==="pushFilter"?this._renderer.filter.push(t):t.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Gs.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"filter"}});function ke(i,t){let e=Tm[i];return e===void 0&&(qc[t]===void 0&&(qc[t]=1),Tm[i]=e=qc[t]++),e}var qc,Tm,Mi=p(()=>{"use strict";qc=Object.create(null),Tm=Object.create(null)});function ia(){return(!ra||ra?.isContextLost())&&(ra=W.get().createCanvas().getContext("webgl",{})),ra}var ra,Kc=p(()=>{xt()});function wm(){if(!sa){sa="mediump";let i=ia();i&&i.getShaderPrecisionFormat&&(sa=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump")}return sa}var sa,Cm=p(()=>{Kc()});function Em(i,t,e){return t?i:e?(i=i.replace("out vec4 finalColor;",""),`
|
|
17
|
+
`,t.accessibleText&&(r.innerText=t.accessibleText)),r.style.width=`${wp}px`,r.style.height=`${wp}px`,r.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",r.style.position="absolute",r.style.zIndex=Cp.toString(),r.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?r.setAttribute("aria-live","off"):r.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?r.setAttribute("aria-relevant","additions"):r.setAttribute("aria-relevant","text"),r.addEventListener("click",this._onClick.bind(this)),r.addEventListener("focus",this._onFocus.bind(this)),r.addEventListener("focusout",this._onFocusOut.bind(this))),r.style.pointerEvents=t.accessiblePointerEvents,r.type=t.accessibleType,t.accessibleTitle&&t.accessibleTitle!==null?r.title=t.accessibleTitle:(!t.accessibleHint||t.accessibleHint===null)&&(r.title=`container ${t.tabIndex}`),t.accessibleHint&&t.accessibleHint!==null&&r.setAttribute("aria-label",t.accessibleHint),t.interactive?r.tabIndex=t.tabIndex:r.tabIndex=0,this.debug&&this._updateDebugHTML(r),t._accessibleActive=!0,t._accessibleDiv=r,r.container=t,this._children.push(t),this._div.appendChild(t._accessibleDiv)}_dispatchEvent(t,e){let{container:r}=t.target,s=this._renderer.events.rootBoundary,n=Object.assign(new ur(s),{target:r});s.rootTarget=this._renderer.lastObjectRendered,e.forEach(o=>s.dispatchEvent(n,o))}_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!==bS||!this._activateOnTab||this._activate()}_onMouseMove(t){t.movementX===0&&t.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._canvasObserver?.destroy(),this._canvasObserver=null,this._div=null,this._pools=null,this._children=null,this._renderer=null,this._hookDiv=null,globalThis.removeEventListener("keydown",this._boundOnKeyDown),this._boundOnKeyDown=null,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._boundOnMouseMove=null}setAccessibilityEnabled(t){t?this._activate():this._deactivate()}_getPool(t){return this._pools[t]||(this._pools[t]=[]),this._pools[t]}};vc.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"accessibility"};vc.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};Mp=vc});var Rp,kp=p(()=>{"use strict";Rp={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var Bp=p(()=>{P();Pe();Ap();kp();z.add(Mp);z.mixin(mt,Rp)});var Cs,Ip=p(()=>{P();xc();Cs=class{constructor(t){this._attachedDomElements=[],this._renderer=t,this._renderer.runners.postrender.add(this),this._renderer.runners.init.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"}init(){this._canvasObserver=new wi({domElement:this._domElement,renderer:this._renderer})}addRenderable(t,e){this._attachedDomElements.includes(t)||this._attachedDomElements.push(t)}updateRenderable(t){}validateRenderable(t){return!0}postrender(){let t=this._attachedDomElements;if(t.length===0){this._domElement.remove();return}this._canvasObserver.ensureAttached();for(let e=0;e<t.length;e++){let r=t[e],s=r.element;if(!r.parent||r.globalDisplayStatus<7)s?.remove(),t.splice(e,1),e--;else{this._domElement.contains(s)||(s.style.position="absolute",s.style.pointerEvents="auto",this._domElement.appendChild(s));let n=r.worldTransform,o=r._anchor,a=r.width*o.x,l=r.height*o.y;s.style.transformOrigin=`${a}px ${l}px`,s.style.transform=`matrix(${n.a}, ${n.b}, ${n.c}, ${n.d}, ${n.tx-a}, ${n.ty-l})`,s.style.opacity=r.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._canvasObserver.destroy(),this._renderer=null}};Cs.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"dom"}});var Le,Es=p(()=>{ie();Pe();Le=class extends mt{constructor(t){super(t),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this._bounds=new dt(0,1,0,0),this._boundsDirty=!0,this.autoGarbageCollect=t.autoGarbageCollect??!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,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=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let t=this.renderGroup||this.parentRenderGroup;t&&t.onChildViewUpdate(this)}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null),this.onViewUpdate()}destroy(t){this.unload(),super.destroy(t),this._bounds=null}collectRenderablesSimple(t,e,r){let{renderPipes:s}=e;s.blendMode.pushBlendMode(this,this.groupBlendMode,t);let o=s[this.renderPipeId];o?.addRenderable&&o.addRenderable(this,t),this.didViewUpdate=!1;let a=this.children,l=a.length;for(let c=0;c<l;c++)a[c].collectRenderables(t,e,r);s.blendMode.popBlendMode(t)}}});var Gp=p(()=>{P();Ip();z.add(Cs)});var Sc,Me,Tc=p(()=>{Ts();Ti();Sc=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(t){this.removeTickerListener(),this.events=t,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(t){this._pauseUpdate=t}addTickerListener(){this._tickerAdded||!this.domElement||(qt.system.add(this._tickerUpdate,this,De.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(qt.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;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())}destroy(){this.removeTickerListener(),this.events=null,this.domElement=null,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}},Me=new Sc});var er,Do=p(()=>{Ee();Fo();er=class extends ur{constructor(){super(...arguments),this.client=new nt,this.movement=new nt,this.offset=new nt,this.global=new nt,this.screen=new nt}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,n,o,a,l,c,h,u,d,f,m,g){throw new Error("Method not implemented.")}}});var se,wc=p(()=>{Do();se=class extends er{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1,this.persistentDeviceId=0}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var Oe,Cc=p(()=>{Do();Oe=class extends er{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};Oe.DOM_DELTA_PIXEL=0;Oe.DOM_DELTA_LINE=1;Oe.DOM_DELTA_PAGE=2});var ES,PS,Ps,Lo,Fp=p(()=>{Ht();Ee();ht();Tc();Do();wc();Cc();ES=2048,PS=new nt,Ps=new nt,Lo=class{constructor(t){this.dispatch=new ut,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,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=!1,t.propagationImmediatelyStopped=!1,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 L(`[EventBoundary]: Event mapping not defined for ${t.type}`)}hitTest(t,e){Me.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,PS.set(t,e),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(t,e){if(!t.target)return;let r=t.composedPath();t.eventPhase=t.CAPTURING_PHASE;for(let s=0,n=r.length-1;s<n;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 n=r.length-1;n>=0;n--)s.forEach(o=>{t.currentTarget=r[n],this.notifyTarget(t,o)})}propagationPath(t){let e=[t];for(let r=0;r<ES&&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,n,o=!1){let a=!1;if(this._interactivePrune(t))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Me.pauseUpdate=!1),t.interactiveChildren&&t.children){let h=t.children;for(let u=h.length-1;u>=0;u--){let d=h[u],f=this.hitTestMoveRecursive(d,this._isInteractive(e)?e:d.eventMode,r,s,n,o||n(t,r));if(f){if(f.length>0&&!f[f.length-1].parent)continue;let m=t.isInteractive();(f.length>0||m)&&(m&&this._allInteractiveElements.push(t),f.push(t)),this._hitElements.length===0&&(this._hitElements=f),a=!0}}}let l=this._isInteractive(e),c=t.isInteractive();return c&&c&&this._allInteractiveElements.push(t),o||this._hitElements.length>0?null:a?this._hitElements:l&&!n(t,r)&&s(t,r)?c?[t]:[]:null}hitTestRecursive(t,e,r,s,n){if(this._interactivePrune(t)||n(t,r))return null;if((t.eventMode==="dynamic"||e==="dynamic")&&(Me.pauseUpdate=!1),t.interactiveChildren&&t.children){let l=t.children,c=r;for(let h=l.length-1;h>=0;h--){let u=l[h],d=this.hitTestRecursive(u,this._isInteractive(e)?e:u.eventMode,c,s,n);if(d){if(d.length>0&&!d[d.length-1].parent)continue;let f=t.isInteractive();return(d.length>0||f)&&d.push(t),d}}}let o=this._isInteractive(e),a=t.isInteractive();return o&&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,Ps),!t.hitArea.contains(Ps.x,Ps.y)))return!0;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!0}return!1}hitTestFn(t,e){return t.hitArea?!0:t?.containsPoint?(t.worldTransform.applyInverse(e,Ps),t.containsPoint(Ps)):!1}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 se)){L("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 se)){L("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let e=this.createPointerEvent(t);this._isPointerMoveEvent=!1;let r=e.pointerType==="mouse"||e.pointerType==="pen",s=this.trackingData(t.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==e.target){let l=t.type==="mousemove"?"mouseout":"pointerout",c=this.createPointerEvent(t,l,n);if(this.dispatchEvent(c,"pointerout"),r&&this.dispatchEvent(c,"mouseout"),!e.composedPath().includes(n)){let h=this.createPointerEvent(t,"pointerleave",n);for(h.eventPhase=h.AT_TARGET;h.target&&!e.composedPath().includes(h.target);)h.currentTarget=h.target,this.notifyTarget(h),r&&this.notifyTarget(h,"mouseleave"),h.target=h.target.parent;this.freeEvent(h)}this.freeEvent(c)}if(n!==e.target){let l=t.type==="mousemove"?"mouseover":"pointerover",c=this.clonePointerEvent(e,l);this.dispatchEvent(c,"pointerover"),r&&this.dispatchEvent(c,"mouseover");let h=n?.parent;for(;h&&h!==this.rootTarget.parent&&h!==e.target;)h=h.parent;if(!h||h===this.rootTarget.parent){let d=this.clonePointerEvent(e,"pointerenter");for(d.eventPhase=d.AT_TARGET;d.target&&d.target!==n&&d.target!==this.rootTarget.parent;)d.currentTarget=d.target,this.notifyTarget(d),r&&this.notifyTarget(d,"mouseenter"),d.target=d.target.parent;this.freeEvent(d)}this.freeEvent(c)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(e,"pointermove"),a&&o.push("globalpointermove"),e.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(e,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(e,"mousemove"),a&&o.push("globalmousemove"),this.cursor=e.target?.cursor),o.length>0&&this.all(e,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=e.composedPath(),this.freeEvent(e)}mapPointerOver(t){if(!(t instanceof se)){L("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 n=this.clonePointerEvent(r,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;e.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(n)}mapPointerOut(t){if(!(t instanceof se)){L("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),n=this.createPointerEvent(t,"pointerout",s);this.dispatchEvent(n),r&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(t,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),r&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;e.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(t){if(!(t instanceof se)){L("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),n=this.findMountedTarget(s.pressTargetsByButton[t.button]),o=n;if(n&&!r.composedPath().includes(n)){let a=n;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 l=r.button===2;this.notifyTarget(r,l?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[t.button],o=a}if(o){let a=this.clonePointerEvent(r,"click");a.target=o,a.path=null,s.clicksByButton[t.button]||(s.clicksByButton[t.button]={clickCount:0,target:a.target,timeStamp:e});let l=s.clicksByButton[t.button];if(l.target===a.target&&e-l.timeStamp<200?++l.clickCount:l.clickCount=1,l.target=a.target,l.timeStamp=e,a.detail=l.clickCount,a.pointerType==="mouse"){let c=a.button===2;this.dispatchEvent(a,c?"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 se)){L("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 n=r;for(;n;)s.currentTarget=n,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"),n=n.parent;delete e.pressTargetsByButton[t.button]}this.freeEvent(s)}mapWheel(t){if(!(t instanceof Oe)){L("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(se);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(Oe);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(se);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 se&&e instanceof se&&(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,e.persistentDeviceId=t.persistentDeviceId)}copyMouseData(t,e){t instanceof er&&e instanceof er&&(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=!1,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,!0),r.fn.call(r.context,t);else for(let s=0,n=r.length;s<n&&!t.propagationImmediatelyStopped;s++)r[s].once&&t.currentTarget.removeListener(e,r[s].fn,void 0,!0),r[s].fn.call(r[s].context,t)}}});var MS,AS,Pc,Oo,Mc=p(()=>{P();Fp();Tc();wc();Cc();MS=1,AS={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},Pc=class Ec{constructor(t){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=t,this.rootBoundary=new Lo(null),Me.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new se(null),this._rootWheelEvent=new Oe(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Ec.defaultEventFeatures},{set:(e,r,s)=>(r==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),e[r]=s,!0)}),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,Ec._defaultEventMode=t.eventMode??"passive",Object.assign(this.features,t.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(t){this.resolution=t}destroy(){Me.destroy(),this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(t){t||(t="default");let e=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(e=!1),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 n=e[r],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(t){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Me.pointerMoved();let e=this._normalizeToPointerData(t);for(let r=0,s=e.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(n)}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 n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);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 n=this._bootstrapEvent(this._rootPointerEvent,e[r]);this.rootBoundary.mapEvent(n)}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,Me.domElement=t,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Me.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,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Me.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,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(t,e,r){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;t.x=(e-s.left)*(this.domElement.width/s.width)*n,t.y=(r-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(t){let e=[];if(this.supportsTouchEvents&&t instanceof TouchEvent)for(let r=0,s=t.changedTouches.length;r<s;r++){let n=t.changedTouches[r];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=t.touches.length===1&&t.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=t.type,n.altKey??(n.altKey=t.altKey),n.ctrlKey??(n.ctrlKey=t.ctrlKey),n.metaKey??(n.metaKey=t.metaKey),n.shiftKey??(n.shiftKey=t.shiftKey),e.push(n)}else if(!globalThis.MouseEvent||t instanceof MouseEvent&&(!this.supportsPointerEvents||!(t instanceof globalThis.PointerEvent))){let r=t;typeof r.isPrimary>"u"&&(r.isPrimary=!0),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=MS),typeof r.pressure>"u"&&(r.pressure=.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),r.isNormalized=!0,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=AS[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}};Pc.extension={name:"events",type:[y.WebGLSystem,y.CanvasSystem,y.WebGPUSystem],priority:-1};Pc.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Oo=Pc});var Up,Dp=p(()=>{Mc();Fo();Up={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??Oo.defaultEventMode},set eventMode(i){this._internalEventMode=i},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,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,n=typeof e=="object"?e.once===!0:!1,o=typeof t=="function"?void 0:t;i=r?`${i}capture`:i;let a=typeof t=="function"?t:t.handleEvent,l=this;s&&s.addEventListener("abort",()=>{l.off(i,a,o)}),n?l.once(i,a,o):l.on(i,a,o)},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 ur))throw new Error("Container cannot propagate events outside of the Federated Events API");return i.defaultPrevented=!1,i.path=null,i.target=this,i.manager.dispatchEvent(i),!i.defaultPrevented}}});var Lp=p(()=>{P();Pe();Mc();Dp();z.add(Oo);z.mixin(mt,Up)});var Ac,Op=p(()=>{"use strict";Ac=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Ac||{})});var Np,zp=p(()=>{"use strict";Np={createCanvas:(i,t)=>{let e=document.createElement("canvas");return e.width=i,e.height=t,e},createImage:()=>new Image,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 Hp,W,xt=p(()=>{zp();Hp=Np,W={get(){return Hp},set(i){Hp=i}}});function Ae(i){if(typeof i!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(i)}`)}function Ms(i){return i.split("?")[0].split("#")[0]}function RS(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function kS(i,t,e){return i.replace(new RegExp(RS(t),"g"),e)}function BS(i,t){let e="",r=0,s=-1,n=0,o=-1;for(let a=0;a<=i.length;++a){if(a<i.length)o=i.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(e.length<2||r!==2||e.charCodeAt(e.length-1)!==46||e.charCodeAt(e.length-2)!==46){if(e.length>2){let l=e.lastIndexOf("/");if(l!==e.length-1){l===-1?(e="",r=0):(e=e.slice(0,l),r=e.length-1-e.lastIndexOf("/")),s=a,n=0;continue}}else if(e.length===2||e.length===1){e="",r=0,s=a,n=0;continue}}t&&(e.length>0?e+="/..":e="..",r=2)}else e.length>0?e+=`/${i.slice(s+1,a)}`:e=i.slice(s+1,a),r=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return e}var Lr,Rc=p(()=>{xt();Lr={toPosix(i){return kS(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){Ae(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(Ae(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;let r=Ms(this.toPosix(t??W.get().getBaseUrl())),s=Ms(this.toPosix(e??this.rootname(r)));return i=this.toPosix(i),i.startsWith("/")?Lr.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(Ae(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=BS(i,!1),i.length>0&&r&&(i+="/"),e?`/${i}`:t+i},isAbsolute(i){return Ae(i),i=this.toPosix(i),this.hasProtocol(i)?!0:i.startsWith("/")},join(...i){if(i.length===0)return".";let t;for(let e=0;e<i.length;++e){let r=i[e];if(Ae(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(Ae(i),i.length===0)return".";i=this.toPosix(i);let t=i.charCodeAt(0),e=t===47,r=-1,s=!0,n=this.getProtocol(i),o=i;i=i.slice(n.length);for(let a=i.length-1;a>=1;--a)if(t=i.charCodeAt(a),t===47){if(!s){r=a;break}}else s=!1;return r===-1?e?"/":this.isUrl(o)?n+i:n:e&&r===1?"//":n+i.slice(0,r)},rootname(i){Ae(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){Ae(i),t&&Ae(t),i=Ms(this.toPosix(i));let e=0,r=-1,s=!0,n;if(t!==void 0&&t.length>0&&t.length<=i.length){if(t.length===i.length&&t===i)return"";let o=t.length-1,a=-1;for(n=i.length-1;n>=0;--n){let l=i.charCodeAt(n);if(l===47){if(!s){e=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(l===t.charCodeAt(o)?--o===-1&&(r=n):(o=-1,r=a))}return e===r?r=a:r===-1&&(r=i.length),i.slice(e,r)}for(n=i.length-1;n>=0;--n)if(i.charCodeAt(n)===47){if(!s){e=n+1;break}}else r===-1&&(s=!1,r=n+1);return r===-1?"":i.slice(e,r)},extname(i){Ae(i),i=Ms(this.toPosix(i));let t=-1,e=0,r=-1,s=!0,n=0;for(let o=i.length-1;o>=0;--o){let a=i.charCodeAt(o);if(a===47){if(!s){e=o+1;break}continue}r===-1&&(s=!1,r=o+1),a===46?t===-1?t=o:n!==1&&(n=1):t!==-1&&(n=-1)}return t===-1||r===-1||n===0||n===1&&t===r-1&&t===e+1?"":i.slice(t,r)},parse(i){Ae(i);let t={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return t;i=Ms(this.toPosix(i));let e=i.charCodeAt(0),r=this.isAbsolute(i),s,n="";t.root=this.rootname(i),r||this.hasProtocol(i)?s=1:s=0;let o=-1,a=0,l=-1,c=!0,h=i.length-1,u=0;for(;h>=s;--h){if(e=i.charCodeAt(h),e===47){if(!c){a=h+1;break}continue}l===-1&&(c=!1,l=h+1),e===46?o===-1?o=h:u!==1&&(u=1):o!==-1&&(u=-1)}return o===-1||l===-1||u===0||u===1&&o===l-1&&o===a+1?l!==-1&&(a===0&&r?t.base=t.name=i.slice(1,l):t.base=t.name=i.slice(a,l)):(a===0&&r?(t.name=i.slice(1,o),t.base=i.slice(1,l)):(t.name=i.slice(a,o),t.base=i.slice(a,l)),t.ext=i.slice(o,l)),t.dir=this.dirname(i),n&&(t.dir=n+t.dir),t},sep:"/",delimiter:":",joinExtensions:[".html"]}});var dr,kc=p(()=>{"use strict";dr=(i,t,e=!1)=>(Array.isArray(i)||(i=[i]),t?i.map(r=>typeof r=="string"||e?t(r):r):i)});function Wp(i,t,e,r,s){let n=t[e];for(let o=0;o<n.length;o++){let a=n[o];e<t.length-1?Wp(i.replace(r[e],a),t,e+1,r,s):s.push(i.replace(r[e],a))}}function Vp(i){let t=/\{(.*?)\}/g,e=i.match(t),r=[];if(e){let s=[];e.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),Wp(i,s,0,e,r)}else r.push(i);return r}var jp=p(()=>{"use strict"});var Bc,Xp=p(()=>{"use strict";Bc=i=>!Array.isArray(i)});function IS(i){return i.split(".").pop().split("?").shift().split("#").shift()}var As,Yp=p(()=>{ht();Rc();kc();jp();Xp();As=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 dr(e||r,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}removeAlias(t,e){this._assetMap[t]&&(e&&e!==this._resolverHash[t]||(delete this._resolverHash[t],delete this._assetMap[t]))}addManifest(t){this._manifest&&L("[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(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,l;if(typeof a=="string"){let c=this._createBundleAssetId(t,a);r.push(c),l=[a,c]}else{let c=a.map(h=>this._createBundleAssetId(t,h));r.push(...c),l=[...a,...c]}this.add({...n,alias:l,src:o})}),this._bundles[t]=r}add(t){let e=[];Array.isArray(t)?e.push(...t):e.push(t);let r;r=n=>{this.hasKey(n)&&L(`[Resolver] already has key: ${n} overwriting`)},dr(e).forEach(n=>{let{src:o}=n,{data:a,format:l,loadParser:c,parser:h}=n,u=dr(o).map(g=>typeof g=="string"?Vp(g):Array.isArray(g)?g:[g]),d=this.getAlias(n);Array.isArray(d)?d.forEach(r):r(d);let f=[],m=g=>{let _=this._parsers.find(x=>x.test(g));return{src:g,..._?.parse(g)}};u.forEach(g=>{g.forEach(_=>{let x={};if(typeof _!="object"?x=m(_):(a=_.data??a,l=_.format??l,(_.loadParser||_.parser)&&(c=_.loadParser??c,h=_.parser??h),x={...m(_.src),..._}),!d)throw new Error(`[Resolver] alias is undefined for this asset: ${x.src}`);x=this._buildResolvedAsset(x,{aliases:d,data:a,format:l,loadParser:c,parser:h,progressSize:n.progressSize}),f.push(x)})}),d.forEach(g=>{this._assetMap[g]=f})})}resolveBundle(t){let e=Bc(t);t=dr(t);let r={};return t.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let l in o){let c=o[l];a[this._extractAssetIdFromBundle(s,l)]=c}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=Bc(t);t=dr(t);let r={};return t.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(l=>{let c=n.filter(h=>h[a]?h[a]===l:!1);c.length&&(n=c)})}),this._resolverHash[s]=n[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(n=>n.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:n,parser:o,format:a,progressSize:l}=e;return(this._basePath||this._rootPath)&&(t.src=Lr.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=n??t.loadParser,t.parser=o??t.parser,t.format=a??t.format??IS(t.src),l!==void 0&&(t.progressSize=l),t}};As.RETINA_PREFIX=/@([0-9\.]+)x/});var Ic,$p=p(()=>{"use strict";Ic=(i,t)=>{let e=t.split("?")[1];return e&&(i+=`?${e}`),i}});var qp,Gc,Kp=p(()=>{Yt();$t();gt();qp=class Rs{constructor(t,e){this.linkedSheets=[];let r=t;t?.source instanceof st&&(r={texture:t,data:e});let{texture:s,data:n,cachePrefix:o=""}=r;this.cachePrefix=o,this._texture=s instanceof F?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.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<=Rs.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}parseSync(){return this._processFrames(0,!0),this._processAnimations(),this.textures}_processFrames(t,e=!1){let r=t,s=e?1/0:Rs.BATCH_SIZE;for(;r-t<s&&r<this._frameKeys.length;){let n=this._frameKeys[r],o=this._frames[n],a=o.frame;if(a){let l=null,c=null,h=o.trimmed!==!1&&o.sourceSize?o.sourceSize:o.frame,u=new J(0,0,Math.floor(h.w)/this.resolution,Math.floor(h.h)/this.resolution);o.rotated?l=new J(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.h)/this.resolution,Math.floor(a.w)/this.resolution):l=new J(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution),o.trimmed!==!1&&o.spriteSourceSize&&(c=new J(Math.floor(o.spriteSourceSize.x)/this.resolution,Math.floor(o.spriteSourceSize.y)/this.resolution,Math.floor(a.w)/this.resolution,Math.floor(a.h)/this.resolution)),this.textures[n]=new F({source:this.textureSource,frame:l,orig:u,trim:c,rotate:o.rotated?2:0,defaultAnchor:o.anchor,defaultBorders:o.borders,label:n.toString()})}r++}}_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*Rs.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Rs.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(t=!1){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=[]}};qp.BATCH_SIZE=1e3;Gc=qp});function Zp(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=Lr.dirname(i[0]);t.linkedSheets.forEach((n,o)=>{let a=Zp([`${s}/${t.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var GS,Qp,Jp=p(()=>{Op();Yp();$p();P();gt();Rc();Kp();GS=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];Qp={extension:y.Asset,cache:{test:i=>i instanceof Gc,getCacheableAssets:(i,t)=>Zp(i,t,!1)},resolver:{extension:{type:y.ResolveParser,name:"resolveSpritesheet"},test:i=>{let e=i.split("?")[0].split("."),r=e.pop(),s=e.pop();return r==="json"&&GS.includes(s)},parse:i=>{let t=i.split(".");return{resolution:parseFloat(As.RETINA_PREFIX.exec(i)?.[1]??"1"),format:t[t.length-2],src:i}}},loader:{name:"spritesheetLoader",id:"spritesheet",extension:{type:y.LoadParser,priority:Ac.Normal,name:"spritesheetLoader"},async testParse(i,t){return Lr.extname(t.src).toLowerCase()===".json"&&!!i.frames},async parse(i,t,e){let{texture:r,imageFilename:s,textureOptions:n,cachePrefix:o}=t?.data??{},a=Lr.dirname(t.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let l;if(r instanceof F)l=r;else{let u=Ic(a+(s??i.meta.image),t.src);l=(await e.load([{src:u,data:n}]))[u]}let c=new Gc({texture:l.source,data:i,cachePrefix:o});await c.parse();let h=i?.meta?.related_multi_packs;if(Array.isArray(h)){let u=[];for(let f of h){if(typeof f!="string")continue;let m=a+f;t.data?.ignoreMultiPack||(m=Ic(m,t.src),u.push(e.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let d=await Promise.all(u);c.linkedSheets=d,d.forEach(f=>{f.linkedSheets=[c].concat(c.linkedSheets.filter(m=>m!==f))})}return c},async unload(i,t,e){await e.unload(i.textureSource._sourceOrigin),i.destroy(!1)}}}});var No=p(()=>{P();Jp();z.add(Qp)});function zo(i,t,e){let{width:r,height:s}=e.orig,n=e.trim;if(n){let o=n.width,a=n.height;i.minX=n.x-t._x*r,i.maxX=i.minX+o,i.minY=n.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 Fc=p(()=>{"use strict"});var he,Ho=p(()=>{vo();gt();Fc();yt();Es();he=class i extends Le{constructor(t=F.EMPTY){t instanceof F&&(t={texture:t});let{texture:e=F.EMPTY,anchor:r,roundPixels:s,width:n,height:o,...a}=t;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new Gt({_onUpdate:()=>{this.onViewUpdate()}}),r?this.anchor=r:e.defaultAnchor&&(this.anchor=e.defaultAnchor),this.texture=e,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(t,e=!1){return t instanceof F?new i(t):new i(F.from(t,e))}set texture(t){t||(t=F.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 zo(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return O("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:n}=e.orig;r.minX=-t._x*s,r.maxX=r.minX+s,r.minY=-t._y*n,r.maxY=r.minY+n}destroy(t=!1){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}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 Wo(i,t,e){let r=FS;i.measurable=!0,xi(i,e,r),t.addBoundsMask(r),i.measurable=!1}var FS,Uc=p(()=>{ie();_s();FS=new dt});function Vo(i,t,e){let r=fe.get();i.measurable=!0;let s=Ut.get().identity(),n=tm(i,e,s);yi(i,r,n),i.measurable=!1,t.addBoundsMask(r),Ut.return(s),fe.return(r)}function tm(i,t,e){return i?(i!==t&&(tm(i.parent,t,e),i.updateLocalTransform(),e.append(i.localTransform)),e):(L("Mask bounds, renderable is not inside the root container"),e)}var Dc=p(()=>{Ao();Mr();ht()});var ks,em=p(()=>{P();Ho();Uc();Dc();ks=class{constructor(t){this.priority=0,this.inverse=!1,this.channel="red",this.pipe="alphaMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t,this.renderMaskToTexture=!(t instanceof he),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask=null)}addBounds(t,e){this.inverse||Wo(this.mask,t,e)}addLocalBounds(t,e){Vo(this.mask,t,e)}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset()}static test(t){return t instanceof he}};ks.extension=y.MaskEffect});var Bs,rm=p(()=>{P();Bs=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"}};Bs.extension=y.MaskEffect});var Is,im=p(()=>{P();Pe();Uc();Dc();Is=class{constructor(t){this.priority=0,this.pipe="stencilMask",t?.mask&&this.init(t.mask)}init(t){this.mask=t,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null)}addBounds(t,e){Wo(this.mask,t,e)}addLocalBounds(t,e){Vo(this.mask,t,e)}containsPoint(t,e){let r=this.mask;return e(r,t)}destroy(){this.reset()}static test(t){return t instanceof mt}};Is.extension=y.MaskEffect});var Tt,fr=p(()=>{xt();P();$t();Tt=class extends st{constructor(t){t.resource||(t.resource=W.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"))}};Tt.extension=y.TextureSource});var Re,jo=p(()=>{P();$t();Re=class extends st{constructor(t){super(t),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(t){return globalThis.HTMLImageElement&&t instanceof HTMLImageElement||typeof ImageBitmap<"u"&&t instanceof ImageBitmap||globalThis.VideoFrame&&t instanceof VideoFrame}};Re.extension=y.TextureSource});async function sm(){return Lc??(Lc=(async()=>{let t=W.get().createCanvas(1,1).getContext("webgl");if(!t)return"premultiply-alpha-on-upload";let e=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,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,!1),t.pixelStorei(t.UNPACK_COLORSPACE_CONVERSION_WEBGL,t.NONE),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,e);let n=new Uint8Array(4);return t.readPixels(0,0,1,1,t.RGBA,t.UNSIGNED_BYTE,n),t.deleteFramebuffer(s),t.deleteTexture(r),t.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Lc}var Lc,nm=p(()=>{xt()});var Xo,am,lm=p(()=>{P();Ti();nm();$t();Xo=class om extends st{constructor(t){super(t),this.isReady=!1,this.uploadMethodId="video",t={...om.defaultOptions,...t},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=t.autoPlay!==!1,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),this._onLoadedMetadata=this._onLoadedMetadata.bind(this),t.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let t=qt.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=!0),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,!0)),this.isValid||t.addEventListener("loadedmetadata",this._onLoadedMetadata),this.alphaMode=await sm(),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,!0),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._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onLoadedMetadata(){this.isValid&&this._mediaReady()}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlayThrough),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let t=this.resource;this.isValid&&(this.isReady=!0,this.resize(t.videoWidth,t.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&this.isValid&&(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("loadedmetadata",this._onLoadedMetadata),t.removeEventListener("error",this._onError,!0),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&&(qt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,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||(qt.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(qt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(t){return globalThis.HTMLVideoElement&&t instanceof HTMLVideoElement}};Xo.extension=y.TextureSource;Xo.defaultOptions={...st.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Xo.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};am=Xo});var Oc,Or,cm=p(()=>{ht();kc();Oc=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||L(`[Assets] Asset id ${t} was not found in the Cache`),e}set(t,e){let r=dr(t),s;for(let l=0;l<this.parsers.length;l++){let c=this.parsers[l];if(c.test(e)){s=c.getCacheableAssets(r,e);break}}let n=new Map(Object.entries(s||{}));s||r.forEach(l=>{n.set(l,e)});let o=[...n.keys()],a={cacheKeys:o,keys:r};r.forEach(l=>{this._cacheMap.set(l,a)}),o.forEach(l=>{let c=s?s[l]:e;this._cache.has(l)&&this._cache.get(l)!==c&&L("[Cache] already has key:",l),this._cache.set(l,n.get(l))})}remove(t){if(!this._cacheMap.has(t)){L(`[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}},Or=new Oc});function hm(i={}){let t=i&&i.resource,e=t?i.resource:i,r=t?i:{resource:i};for(let s=0;s<Nc.length;s++){let n=Nc[s];if(n.test(e))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function um(i={},t=!1){let e=i&&i.resource,r=e?i.resource:i,s=e?i:{resource:i};if(!t&&Or.has(r))return Or.get(r);let n=new F({source:hm(s)});return n.on("destroy",()=>{Or.has(r)&&Or.remove(r)}),t||Or.set(r,n),n}function dm(i,t=!1){return typeof i=="string"?Or.get(i):i instanceof st?new F({source:i}):um(i,t)}var Nc,zc=p(()=>{cm();P();$t();gt();Nc=[];z.handleByList(y.TextureSource,Nc);F.from=dm;st.from=hm});var Yo=p(()=>{P();em();rm();im();uc();fr();jo();lm();zc();z.add(ks,Bs,Is,am,Re,Tt,Gr)});function fm(i){let t=W.get().createCanvas(6,1),e=t.getContext("2d");return e.fillStyle=i,e.fillRect(0,0,6,1),t}function $o(){if(Ei!==void 0)return Ei;try{let i=fm("#ff00ff"),t=fm("#ffff00"),r=W.get().createCanvas(6,1).getContext("2d");r.globalCompositeOperation="multiply",r.drawImage(i,0,0),r.drawImage(t,2,0);let s=r.getImageData(2,0,1,1);if(!s)Ei=!1;else{let n=s.data;Ei=n[0]===255&&n[1]===0&&n[2]===0}}catch{Ei=!1}return Ei}var Ei,Hc=p(()=>{xt()});var Z,Pi=p(()=>{Qt();xt();vs();Hc();Z={canvas:null,convertTintToImage:!1,cacheStepsPerColorChannel:8,canUseMultiply:$o(),tintMethod:null,_canvasSourceCache:new WeakMap,_unpremultipliedCache:new WeakMap,getCanvasSource:i=>{let t=i.source,e=t?.resource;if(!e)return null;let r=t.alphaMode==="premultiplied-alpha",s=t.resourceWidth??t.pixelWidth,n=t.resourceHeight??t.pixelHeight,o=s!==t.pixelWidth||n!==t.pixelHeight;if(r){if((e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)&&!o)return e;let a=Z._unpremultipliedCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas}if(e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Uint32Array||e instanceof Int32Array||e instanceof Float32Array||e instanceof ArrayBuffer){let a=Z._canvasSourceCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas;let l=W.get().createCanvas(t.pixelWidth,t.pixelHeight),c=l.getContext("2d"),h=c.createImageData(t.pixelWidth,t.pixelHeight),u=h.data,d=e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength);if(t.format==="bgra8unorm")for(let f=0;f<u.length&&f+3<d.length;f+=4)u[f]=d[f+2],u[f+1]=d[f+1],u[f+2]=d[f],u[f+3]=d[f+3];else u.set(d.subarray(0,u.length));return c.putImageData(h,0,0),Z._canvasSourceCache.set(t,{canvas:l,resourceId:t._resourceId}),l}if(r){let a=W.get().createCanvas(t.pixelWidth,t.pixelHeight),l=a.getContext("2d",{willReadFrequently:!0});a.width=t.pixelWidth,a.height=t.pixelHeight,l.drawImage(e,0,0);let c=l.getImageData(0,0,a.width,a.height),h=c.data;for(let u=0;u<h.length;u+=4){let d=h[u+3];if(d>0){let f=255/d;h[u]=Math.min(255,h[u]*f+.5),h[u+1]=Math.min(255,h[u+1]*f+.5),h[u+2]=Math.min(255,h[u+2]*f+.5)}}return l.putImageData(c,0,0),Z._unpremultipliedCache.set(t,{canvas:a,resourceId:t._resourceId}),a}if(o){let a=Z._canvasSourceCache.get(t);if(a?.resourceId===t._resourceId)return a.canvas;let l=W.get().createCanvas(t.pixelWidth,t.pixelHeight),c=l.getContext("2d");return l.width=t.pixelWidth,l.height=t.pixelHeight,c.drawImage(e,0,0),Z._canvasSourceCache.set(t,{canvas:l,resourceId:t._resourceId}),l}return e},getTintedCanvas:(i,t)=>{let e=i.texture,r=Q.shared.setValue(t).toHex(),s=e.tintCache||(e.tintCache={}),n=s[r],o=e.source._resourceId;if(n?.tintId===o)return n;let a=n&&"getContext"in n?n:W.get().createCanvas();if(Z.tintMethod(e,t,a),a.tintId=o,Z.convertTintToImage&&a.toDataURL!==void 0){let l=W.get().createImage();l.src=a.toDataURL(),l.tintId=o,s[r]=l}else s[r]=a;return s[r]},getTintedPattern:(i,t)=>{let e=Q.shared.setValue(t).toHex(),r=i.patternCache||(i.patternCache={}),s=i.source._resourceId,n=r[e];return n?.tintId===s||(Z.canvas||(Z.canvas=W.get().createCanvas()),Z.tintMethod(i,t,Z.canvas),n=Z.canvas.getContext("2d").createPattern(Z.canvas,"repeat"),n.tintId=s,r[e]=n),n},applyPatternTransform:(i,t,e=!0)=>{if(!t)return;let r=i;if(!r.setTransform)return;let s=globalThis.DOMMatrix;if(!s)return;let n=new s([t.a,t.b,t.c,t.d,t.tx,t.ty]);r.setTransform(e?n.inverse():n)},tintWithMultiply:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.fillStyle=Q.shared.setValue(t).toHex(),r.fillRect(0,0,l,c),r.globalCompositeOperation="multiply";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.globalCompositeOperation="destination-atop",r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithOverlay:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.globalCompositeOperation="copy",r.fillStyle=Q.shared.setValue(t).toHex(),r.fillRect(0,0,l,c),r.globalCompositeOperation="destination-atop";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithPerPixel:(i,t,e)=>{let r=e.getContext("2d"),s=i.frame.clone(),n=i.source._resolution??i.source.resolution??1,o=i.rotate;s.x*=n,s.y*=n,s.width*=n,s.height*=n;let a=it.isVertical(o),l=a?s.height:s.width,c=a?s.width:s.height;e.width=Math.ceil(l),e.height=Math.ceil(c),r.save(),r.globalCompositeOperation="copy";let h=Z.getCanvasSource(i);if(!h){r.restore();return}o&&Z._applyInverseRotation(r,o,s.width,s.height),r.drawImage(h,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore();let u=t>>16&255,d=t>>8&255,f=t&255,m=r.getImageData(0,0,l,c),g=m.data;for(let _=0;_<g.length;_+=4)g[_]=g[_]*u/255,g[_+1]=g[_+1]*d/255,g[_+2]=g[_+2]*f/255;r.putImageData(m,0,0)},_applyInverseRotation:(i,t,e,r)=>{let s=it.inv(t),n=it.uX(s),o=it.uY(s),a=it.vX(s),l=it.vY(s),c=-Math.min(0,n*e,a*r,n*e+a*r),h=-Math.min(0,o*e,l*r,o*e+l*r);i.transform(n,o,a,l,c,h)}};Z.tintMethod=Z.canUseMultiply?Z.tintWithMultiply:Z.tintWithPerPixel});var Wc,rr,qo=p(()=>{xt();bs();Pr();Wc=class{constructor(t){this._canvasPool=Object.create(null),this.canvasOptions=t||{},this.enableFullScreen=!1}_createCanvasAndContext(t,e){let r=W.get().createCanvas();r.width=t,r.height=e;let s=r.getContext("2d");return{canvas:r,context:s}}getOptimalCanvasAndContext(t,e,r=1){t=Math.ceil(t*r-1e-6),e=Math.ceil(e*r-1e-6),t=Je(t),e=Je(e);let s=(t<<17)+(e<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(t,e)),n}returnCanvasAndContext(t){let e=t.canvas,{width:r,height:s}=e,n=(r<<17)+(s<<1);t.context.resetTransform(),t.context.clearRect(0,0,r,s),this._canvasPool[n].push(t)}clear(){this._canvasPool={}}},rr=new Wc;ye.register(rr)});function Ko(i){let t=i.length;if(t<6)return 1;let e=0;for(let r=0,s=i[t-2],n=i[t-1];r<t;r+=2){let o=i[r],a=i[r+1];e+=(o-s)*(a+n),s=o,n=a}return e<0?-1:1}var Vc=p(()=>{"use strict"});function pm(i,t,e,r,s,n){let o=i-e,a=t-r,l=s-e,c=n-r,h=o*l+a*c,u=l*l+c*c,d=-1;u!==0&&(d=h/u);let f,m;d<0?(f=e,m=r):d>1?(f=s,m=n):(f=e+d*l,m=r+d*c);let g=i-f,_=t-m;return g*g+_*_}var mm=p(()=>{"use strict"});function jc(i,t,e,r,s,n,o,a){let l=o-e,c=a-r,h=s-e,u=n-r,d=i-e,f=t-r,m=l*l+c*c,g=l*h+c*u,_=l*d+c*f,x=h*h+u*u,b=h*d+u*f,v=1/(m*x-g*g),S=(x*_-g*b)*v,T=(m*b-g*_)*v;return S>=0&&T>=0&&S+T<1}var gm=p(()=>{"use strict"});var Zo,xm=p(()=>{Yt();Zo=class i{constructor(t=0,e=0,r=0){this.type="circle",this.x=t,this.y=e,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(t,e){if(this.radius<=0)return!1;let r=this.radius*this.radius,s=this.x-t,n=this.y-e;return s*=s,n*=n,s+n<=r}strokeContains(t,e,r,s=.5){if(this.radius===0)return!1;let n=this.x-t,o=this.y-e,a=this.radius,l=(1-s)*r,c=Math.sqrt(n*n+o*o);return c<=a+l&&c>a-(r-l)}getBounds(t){return t||(t=new J),t.x=this.x-this.radius,t.y=this.y-this.radius,t.width=this.radius*2,t.height=this.radius*2,t}copyFrom(t){return this.x=t.x,this.y=t.y,this.radius=t.radius,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var Qo,_m=p(()=>{Yt();Qo=class i{constructor(t=0,e=0,r=0,s=0){this.type="ellipse",this.x=t,this.y=e,this.halfWidth=r,this.halfHeight=s}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(t,e){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(t-this.x)/this.halfWidth,s=(e-this.y)/this.halfHeight;return r*=r,s*=s,r+s<=1}strokeContains(t,e,r,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=r*(1-s),l=r-a,c=n-l,h=o-l,u=n+a,d=o+a,f=t-this.x,m=e-this.y,g=f*f/(c*c)+m*m/(h*h),_=f*f/(u*u)+m*m/(d*d);return g>1&&_<=1}getBounds(t){return t||(t=new J),t.x=this.x-this.halfWidth,t.y=this.y-this.halfHeight,t.width=this.halfWidth*2,t.height=this.halfHeight*2,t}copyFrom(t){return this.x=t.x,this.y=t.y,this.halfWidth=t.halfWidth,this.halfHeight=t.halfHeight,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});var US,DS,Mi,ym=p(()=>{yt();Vc();mm();Yt();Mi=class i{constructor(...t){this.type="polygon";let e=Array.isArray(t[0])?t[0]:t;if(typeof e[0]!="number"){let r=[];for(let s=0,n=e.length;s<n;s++)r.push(e[s].x,e[s].y);e=r}this.points=e,this.closePath=!0}isClockwise(){let t=0,e=this.points,r=e.length;for(let s=0;s<r;s+=2){let n=e[s],o=e[s+1],a=e[(s+2)%r],l=e[(s+3)%r];t+=(a-n)*(l+o)}return t<0}containsPolygon(t){let e=this.getBounds(US),r=t.getBounds(DS);if(!e.containsRect(r))return!1;let s=t.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let t=this.points.slice(),e=new i(t);return e.closePath=this.closePath,e}contains(t,e){let r=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],l=this.points[n*2+1],c=this.points[o*2],h=this.points[o*2+1];l>e!=h>e&&t<(c-a)*((e-l)/(h-l))+a&&(r=!r)}return r}strokeContains(t,e,r,s=.5){let{points:n}=this,o=s===.5?s:(s-.5)*Ko(n)+.5,a=r*o,l=r-a,c=a*a,h=l*l,u=n.length-(this.closePath?0:2);for(let d=0;d<u;d+=2){let f=n[d],m=n[d+1],g=n[(d+2)%n.length],_=n[(d+3)%n.length],x=pm(t,e,f,m,g,_),b=Math.sign((g-f)*(e-m)-(_-m)*(t-f));if(x<=(b<0?c:h))return!0}return!1}getBounds(t){t||(t=new J);let e=this.points,r=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,l=e.length;a<l;a+=2){let c=e[a],h=e[a+1];r=c<r?c:r,s=c>s?c:s,n=h<n?h:n,o=h>o?h:o}return t.x=r,t.width=s-r,t.y=n,t.height=o-n,t}copyFrom(t){return this.points=t.points.slice(),this.closePath=t.closePath,this}copyTo(t){return t.copyFrom(this),t}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((t,e)=>`${t}, ${e}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return O("8.11.0","Polygon.lastX is deprecated, please use Polygon.lastX instead."),this.points[this.points.length-2]}get y(){return O("8.11.0","Polygon.y is deprecated, please use Polygon.lastY instead."),this.points[this.points.length-1]}get startX(){return this.points[0]}get startY(){return this.points[1]}}});var Jo,ta,bm=p(()=>{Yt();Jo=(i,t,e,r,s,n,o)=>{let a=i-e,l=t-r,c=Math.sqrt(a*a+l*l);return c>=s-n&&c<=s+o},ta=class i{constructor(t=0,e=0,r=0,s=0,n=20){this.type="roundedRectangle",this.x=t,this.y=e,this.width=r,this.height=s,this.radius=n}getBounds(t){return t||(t=new J),t.x=this.x,t.y=this.y,t.width=this.width,t.height=this.height,t}clone(){return new i(this.x,this.y,this.width,this.height,this.radius)}copyFrom(t){return this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height,this.radius=t.radius,this}copyTo(t){return t.copyFrom(this),t}contains(t,e){if(this.width<=0||this.height<=0)return!1;if(t>=this.x&&t<=this.x+this.width&&e>=this.y&&e<=this.y+this.height){let r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(e>=this.y+r&&e<=this.y+this.height-r||t>=this.x+r&&t<=this.x+this.width-r)return!0;let s=t-(this.x+r),n=e-(this.y+r),o=r*r;if(s*s+n*n<=o||(s=t-(this.x+this.width-r),s*s+n*n<=o)||(n=e-(this.y+this.height-r),s*s+n*n<=o)||(s=t-(this.x+r),s*s+n*n<=o))return!0}return!1}strokeContains(t,e,r,s=.5){let{x:n,y:o,width:a,height:l,radius:c}=this,h=r*(1-s),u=r-h,d=n+c,f=o+c,m=a-c*2,g=l-c*2,_=n+a,x=o+l;return(t>=n-h&&t<=n+u||t>=_-u&&t<=_+h)&&e>=f&&e<=f+g||(e>=o-h&&e<=o+u||e>=x-u&&e<=x+h)&&t>=d&&t<=d+m?!0:t<d&&e<f&&Jo(t,e,d,f,c,u,h)||t>_-c&&e<f&&Jo(t,e,_-c,f,c,u,h)||t>_-c&&e>x-c&&Jo(t,e,_-c,x-c,c,u,h)||t<d&&e>x-c&&Jo(t,e,d,x-c,c,u,h)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function ea(i,t){t.clear();let e=t.matrix;for(let r=0;r<i.length;r++){let s=i[r];if(s.globalDisplayStatus<7)continue;let n=s.renderGroup??s.parentRenderGroup;n?.isCachedAsTexture?t.matrix=vm.copyFrom(n.textureOffsetInverseTransform).append(s.worldTransform):n?._parentCacheAsTextureRenderGroup?t.matrix=vm.copyFrom(n._parentCacheAsTextureRenderGroup.inverseWorldTransform).append(s.groupTransform):t.matrix=s.worldTransform,t.addBounds(s.bounds)}return t.matrix=e,t}var vm,Xc=p(()=>{ot();vm=new k});function ra(i,t,e,r,s=!1){let n=LS;n.minX=0,n.minY=0,n.maxX=i.width/r|0,n.maxY=i.height/r|0;let o=Mt.getOptimalTexture(n.width,n.height,r,!1,s);return o.source.uploadMethodId="image",o.source.resource=i,o.source.alphaMode="premultiply-alpha-on-upload",o.frame.width=t/r,o.frame.height=e/r,o.source.emit("update",o.source),o.updateUvs(),o}var LS,Yc=p(()=>{Fr();ie();LS=new dt});function Sm(i){return typeof i.getCanvasFilterString=="function"}var $c,Gs,Tm=p(()=>{P();Pi();qo();ie();Xc();Yc();$c=class{constructor(){this.skip=!1,this.useClip=!1,this.filters=null,this.container=null,this.bounds=new dt,this.cssFilterString=""}},Gs=class{constructor(t){this._filterStack=[],this._filterStackIndex=0,this._savedStates=[],this._alphaMultiplier=1,this._warnedFilterTypes=new Set,this.renderer=t}push(t){let e=this._pushFilterFrame(),r=t.filterEffect.filters;if(e.skip=!1,e.useClip=!1,e.filters=r,e.container=t.container,e.cssFilterString="",r.every(l=>!l.enabled)){e.skip=!0;return}let s=[],n=1;for(let l of r){if(!l.enabled)continue;if(!Sm(l)){this._warnUnsupportedFilter(l);continue}let c=l.getCanvasFilterString();if(c===null){this._warnUnsupportedFilter(l);continue}c&&s.push(c)}if(s.length===0&&n===1){e.skip=!0;return}e.cssFilterString=s.join(" "),this._calculateFilterArea(t,e.bounds),e.useClip=!!t.filterEffect.filterArea;let o=this.renderer.canvasContext.activeContext,a=o.filter||"none";if(this._savedStates.push({filter:a,alphaMultiplier:this._alphaMultiplier}),e.useClip&&Number.isFinite(e.bounds.width)&&Number.isFinite(e.bounds.height)&&e.bounds.width>0&&e.bounds.height>0){let l=this.renderer.canvasContext.activeResolution||1;o.save(),o.setTransform(1,0,0,1,0,0),o.beginPath(),o.rect(e.bounds.x*l,e.bounds.y*l,e.bounds.width*l,e.bounds.height*l),o.clip()}else e.useClip=!1;n!==1&&(this._alphaMultiplier*=n),e.cssFilterString&&(o.filter=a!=="none"?`${a} ${e.cssFilterString}`:e.cssFilterString)}pop(){let t=this._popFilterFrame();if(t.skip)return;let e=this._savedStates.pop();if(!e)return;let r=this.renderer.canvasContext.activeContext;t.useClip?r.restore():r.filter=e.filter,this._alphaMultiplier=e.alphaMultiplier}generateFilteredTexture({texture:t,filters:e}){if(!e?.length||e.every(x=>!x.enabled))return t;let r=[],s=1;for(let x of e){if(!x.enabled)continue;if(!Sm(x)){this._warnUnsupportedFilter(x);continue}let b=x.getCanvasFilterString();if(b===null){this._warnUnsupportedFilter(x);continue}b&&r.push(b)}if(r.length===0&&s===1)return t;let n=Z.getCanvasSource(t);if(!n)return t;let o=t.frame,a=t.source._resolution??t.source.resolution??1,l=o.width,c=o.height,h=rr.getOptimalCanvasAndContext(l,c,a),{canvas:u,context:d}=h;d.setTransform(1,0,0,1,0,0),d.clearRect(0,0,u.width,u.height),r.length&&(d.filter=r.join(" ")),s!==1&&(d.globalAlpha=s);let f=o.x*a,m=o.y*a,g=l*a,_=c*a;return d.drawImage(n,f,m,g,_,0,0,g,_),d.filter="none",d.globalAlpha=1,ra(u,l,c,a)}_calculateFilterArea(t,e){if(t.renderables?ea(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(!0,e),t.container){let s=(t.container.renderGroup||t.container.parentRenderGroup)?.cacheToLocalTransform;s&&e.applyMatrix(s)}}_warnUnsupportedFilter(t){let e=t?.constructor?.name||"Filter";this._warnedFilterTypes.has(e)||(this._warnedFilterTypes.add(e),console.warn(`CanvasRenderer: filter "${e}" is not supported in Canvas2D and will be skipped.`))}get alphaMultiplier(){return this._alphaMultiplier}_pushFilterFrame(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new $c),this._filterStackIndex++,t}_popFilterFrame(){return this._filterStackIndex<=0?this._filterStack[0]:(this._filterStackIndex--,this._filterStack[this._filterStackIndex])}destroy(){this._filterStack=null,this._savedStates=null,this._warnedFilterTypes=null,this._alphaMultiplier=1}};Gs.extension={type:[y.CanvasSystem],name:"filter"}});var Fs,wm=p(()=>{P();Fs=class{constructor(t){this._renderer=t}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:e,filterEffect:t})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(t){t.action==="pushFilter"?this._renderer.filter.push(t):t.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Fs.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"filter"}});function ke(i,t){let e=Cm[i];return e===void 0&&(qc[t]===void 0&&(qc[t]=1),Cm[i]=e=qc[t]++),e}var qc,Cm,Ai=p(()=>{"use strict";qc=Object.create(null),Cm=Object.create(null)});function sa(){return(!ia||ia?.isContextLost())&&(ia=W.get().createCanvas().getContext("webgl",{})),ia}var ia,Kc=p(()=>{xt()});function Em(){if(!na){na="mediump";let i=sa();i&&i.getShaderPrecisionFormat&&(na=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump")}return na}var na,Pm=p(()=>{Kc()});function Mm(i,t,e){return t?i:e?(i=i.replace("out vec4 finalColor;",""),`
|
|
18
18
|
|
|
19
19
|
#ifdef GL_ES // This checks if it is WebGL1
|
|
20
20
|
#define in varying
|
|
@@ -29,10 +29,10 @@ Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!mi.noColor
|
|
|
29
29
|
#define out varying
|
|
30
30
|
#endif
|
|
31
31
|
${i}
|
|
32
|
-
`}var
|
|
33
|
-
${i}`}else if(r!=="highp"&&i.substring(0,15)==="precision highp")return i.replace("precision highp","precision mediump");return i}var
|
|
34
|
-
${i}`:i}var
|
|
35
|
-
${i}`}var US,DS,Im=p(()=>{"use strict";US={},DS={}});function Gm(i,t){return t?i.replace("#version 300 es",""):i}var Fm=p(()=>{"use strict"});var Zc,Fs,Um,be,Nr=p(()=>{Mi();Cm();Pm();Am();km();Im();Fm();Zc={stripVersion:Gm,ensurePrecision:Mm,addProgramDefines:Em,setProgramName:Bm,insertVersion:Rm},Fs=Object.create(null),Um=class Qc{constructor(t){t={...Qc.defaultOptions,...t};let e=t.fragment.indexOf("#version 300 es")!==-1,r={stripVersion:e,ensurePrecision:{requestedFragmentPrecision:t.preferredFragmentPrecision,requestedVertexPrecision:t.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:wm()},setProgramName:{name:t.name},addProgramDefines:e,insertVersion:e},s=t.fragment,n=t.vertex;Object.keys(Zc).forEach(o=>{let a=r[o];s=Zc[o](s,a,!0),n=Zc[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=t.transformFeedbackVaryings,this._key=ke(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null,Fs[this._cacheKey]=null}static from(t){let e=`${t.vertex}:${t.fragment}`;return Fs[e]||(Fs[e]=new Qc(t),Fs[e]._cacheKey=e),Fs[e]}};Um.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};be=Um});function Jt(i){return Dm[i]??Dm.float32}var Dm,pr=p(()=>{"use strict";Dm={uint8x2:{size:2,stride:2,normalised:!1},uint8x4:{size:4,stride:4,normalised:!1},sint8x2:{size:2,stride:2,normalised:!1},sint8x4:{size:4,stride:4,normalised:!1},unorm8x2:{size:2,stride:2,normalised:!0},unorm8x4:{size:4,stride:4,normalised:!0},snorm8x2:{size:2,stride:2,normalised:!0},snorm8x4:{size:4,stride:4,normalised:!0},uint16x2:{size:2,stride:4,normalised:!1},uint16x4:{size:4,stride:8,normalised:!1},sint16x2:{size:2,stride:4,normalised:!1},sint16x4:{size:4,stride:8,normalised:!1},unorm16x2:{size:2,stride:4,normalised:!0},unorm16x4:{size:4,stride:8,normalised:!0},snorm16x2:{size:2,stride:4,normalised:!0},snorm16x4:{size:4,stride:8,normalised:!0},float16x2:{size:2,stride:4,normalised:!1},float16x4:{size:4,stride:8,normalised:!1},float32:{size:1,stride:4,normalised:!1},float32x2:{size:2,stride:8,normalised:!1},float32x3:{size:3,stride:12,normalised:!1},float32x4:{size:4,stride:16,normalised:!1},uint32:{size:1,stride:4,normalised:!1},uint32x2:{size:2,stride:8,normalised:!1},uint32x3:{size:3,stride:12,normalised:!1},uint32x4:{size:4,stride:16,normalised:!1},sint32:{size:1,stride:4,normalised:!1},sint32x2:{size:2,stride:8,normalised:!1},sint32x3:{size:3,stride:12,normalised:!1},sint32x4:{size:4,stride:16,normalised:!1}}});function Om(i,t){let e;for(;(e=Lm.exec(i))!==null;){let r=LS[e[3]]??"float32";t[e[2]]={location:parseInt(e[1],10),format:r,stride:Jt(r).stride,offset:0,instance:!1,start:0}}Lm.lastIndex=0}function OS(i){return i.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"")}function Nm({source:i,entryPoint:t}){let e={},r=OS(i),s=r.indexOf(`fn ${t}(`);if(s===-1)return e;let n=r.indexOf("->",s);if(n===-1)return e;let o=r.substring(s,n);if(Om(o,e),Object.keys(e).length===0){let a=o.match(/\(\s*\w+\s*:\s*(\w+)/);if(a){let l=a[1],c=new RegExp(`struct\\s+${l}\\s*\\{([^}]+)\\}`,"s"),h=r.match(c);h&&Om(h[1],e)}}return e}var LS,Lm,zm=p(()=>{pr();LS={f32:"float32","vec2<f32>":"float32x2","vec3<f32>":"float32x3","vec4<f32>":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2<i32>":"sint32x2","vec3<i32>":"sint32x3","vec4<i32>":"sint32x4",vec2i:"sint32x2",vec3i:"sint32x3",vec4i:"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",vec2u:"uint32x2",vec3u:"uint32x3",vec4u:"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"},Lm=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|\)|$)/g});function na(i){let t=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,e=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*([\w<>]+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,l=/struct\s+(\w+)/,c=i.match(t)?.map(u=>{let d=u.match(s),f=d?.[1]??"",m;return f==="<uniform>"?m="uniform":f.startsWith("<storage")&&(m="storage"),{group:parseInt(u.match(e)[1],10),binding:parseInt(u.match(r)[1],10),name:d[2],accessMode:m,type:u.match(n)[1]}});if(!c)return{groups:[],structs:[]};let h=i.match(o)?.map(u=>{let d=u.match(l)[1],f=u.match(a).reduce((m,g)=>{let[_,x]=g.split(":");return m[_.trim()]=x.trim(),m},{});return f?{name:d,members:f}:null}).filter(({name:u})=>c.some(d=>d.type===u||d.type.includes(`<${u}>`)))??[];return{groups:c,structs:h}}var Hm=p(()=>{"use strict"});var Dt,Wm=p(()=>{"use strict";Dt=(i=>(i[i.VERTEX=1]="VERTEX",i[i.FRAGMENT=2]="FRAGMENT",i[i.COMPUTE=4]="COMPUTE",i))(Dt||{})});function Vm({groups:i}){let t=[];for(let e=0;e<i.length;e++){let r=i[e];t[r.group]||(t[r.group]=[]),r.accessMode==="uniform"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,buffer:{type:"uniform"}}):r.accessMode==="storage"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,buffer:{type:"read-only-storage"}}):r.type==="sampler"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,sampler:{type:"filtering"}}):r.type==="sampler_comparison"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,sampler:{type:"comparison"}}):r.type==="texture_2d"||r.type.startsWith("texture_2d<")?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d_array"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d-array",multisampled:!1}}):r.type==="texture_2d_array"||r.type.startsWith("texture_2d_array<")?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d-array",multisampled:!1}}):(r.type==="texture_cube"||r.type.startsWith("texture_cube<"))&&t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"cube",multisampled:!1}})}for(let e=0;e<t.length;e++)t[e]||(t[e]=[]);return t}var jm=p(()=>{Wm()});function Xm({groups:i}){let t=[];for(let e=0;e<i.length;e++){let r=i[e];t[r.group]||(t[r.group]={}),t[r.group][r.name]=r.binding}return t}var Ym=p(()=>{"use strict"});function $m(i,t){let e=new Set,r=new Set,s=[...i.structs,...t.structs].filter(o=>e.has(o.name)?!1:(e.add(o.name),!0)),n=[...i.groups,...t.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return r.has(a)?!1:(r.add(a),!0)});return{structs:s,groups:n}}var qm=p(()=>{"use strict"});var Us,ve,Ai=p(()=>{Mi();zm();Hm();jm();Ym();qm();Us=Object.create(null),ve=class i{constructor(t){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:e,vertex:r,layout:s,gpuLayout:n,name:o}=t;if(this.name=o,this.fragment=e,this.vertex=r,e.source===r.source){let a=na(e.source);this.structsAndGroups=a}else{let a=na(r.source),l=na(e.source);this.structsAndGroups=$m(a,l)}this.layout=s??Xm(this.structsAndGroups),this.gpuLayout=n??Vm(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:t,fragment:e}=this,r=t.source+e.source+t.entryPoint+e.entryPoint;this._layoutKey=ke(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=Nm(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null,Us[this._cacheKey]=null}static from(t){let e=`${t.vertex.source}:${t.fragment.source}:${t.fragment.entryPoint}:${t.vertex.entryPoint}`;return Us[e]||(Us[e]=new i(t),Us[e]._cacheKey=e),Us[e]}}});var Vt,mr=p(()=>{ht();Vt=class{constructor(t){this.resources=Object.create(null),this._dirty=!0;let e=0;for(let r in t){let s=t[r];this.setResource(s,e++)}}get _key(){if(this._dirty){this._dirty=!1;let t=[],e=0;for(let r in this.resources)t[e++]=this.resources[r]?this.resources[r]._resourceId:-1;this._keyValue=t.join("|")}return this._keyValue}setResource(t,e){let r=this.resources[e];t!==r&&(r&&r.off?.("change",this.onResourceChange,this),t.on?.("change",this.onResourceChange,this),this.resources[e]=t,this._dirty=!0)}getResource(t){return this.resources[t]}_touch(t,e){let r=this.resources;for(let s in r){let n=r[s];n&&(n._gcLastUsed=t,n._touched=e)}}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=!0,t.destroyed){let e=this.resources;for(let r in e)e[r]===t&&(e[r]=null);L(`[BindGroup] a '${t._resourceType}' was destroyed while still bound to a shader. Remove it from the shader before destroying it.`)}}}});var Lt,Ne=p(()=>{"use strict";Lt=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.CANVAS=4]="CANVAS",i[i.BOTH=3]="BOTH",i))(Lt||{})});var Ri,Jc=p(()=>{Mi();Ri=class i{constructor(t){this.data={...t};let e=Object.keys(t).sort().map(r=>`${r}:${t[r]}`).join("|");this.id=ke(e,"shader-overrides")}static from(t){return t instanceof i?t:new i(t)}}});var th,Km,Zm=p(()=>{"use strict";th=["f32","i32","u32","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>","vec2<u32>","vec3<u32>","vec4<u32>"],Km=th.reduce((i,t)=>(i[t]=!0,i),{})});function Qm(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 Jm=p(()=>{"use strict"});var tg,Ct,me=p(()=>{Ht();Ft();Mi();Zm();Jm();tg=class eg extends ut{constructor(t,e){super(),this._touched=0,this.uid=$("uniform"),this._resourceType="uniformGroup",this._resourceId=$("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,e={...eg.defaultOptions,...e},this.uniformStructures=t;let r={};for(let s in t){let n=t[s];if(n.name=s,n.size=n.size??1,!Km[n.type]){let o=n.type.match(/^array<(\w+(?:<\w+>)?),\s*(\d+)>$/);if(o){let[,a,l]=o;throw new Error(`Uniform type ${n.type} is not supported. Use type: '${a}', size: ${l} instead.`)}throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${th.join(", ")}`)}n.value??(n.value=Qm(n.type,n.size)),r[s]=n.value}this.uniforms=r,this._dirtyId=1,this.ubo=e.ubo,this.isStatic=e.isStatic,this._signature=ke(Object.keys(r).map(s=>`${s}-${t[s].type}`).join("-"),"uniform-group")}get buffer(){return this._buffer}set buffer(t){this._buffer!==t&&(this._buffer?.off("change",this.onBufferChange,this),this._buffer=t,t?.on("change",this.onBufferChange,this))}get _gcLastUsed(){return this._buffer?._gcLastUsed??-1}set _gcLastUsed(t){this._buffer&&(this._buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=$("resource"),this.emit("change",this)}update(){this._dirtyId++}};tg.defaultOptions={ubo:!1,isStatic:!1};Ct=tg});var te,gr=p(()=>{Ht();Ft();ht();Nr();mr();Ai();Ne();Jc();me();te=class i extends ut{constructor(t){super(),this.uid=$("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[],this._destroyed=!1;let{gpuProgram:e,glProgram:r,groups:s,resources:n,compatibleRenderers:o,groupMap:a,overrides:l}=t;this._overrides=l?Ri.from(l):null,this.gpuProgram=e,this.glProgram=r,o===void 0&&(o=0,e&&(o|=Lt.WEBGPU),r&&(o|=Lt.WEBGL)),this.compatibleRenderers=o;let c={};if(a)for(let h in a)for(let u in a[h]){let d=a[h][u];c[d]={group:h,binding:u,name:d}}if(!n&&!s&&(n={}),n&&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){let h=e.structsAndGroups.groups;a={},h.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,c[u.name]=u})}else if(n){s={},a||(a={}),e&&e.structsAndGroups.groups.forEach(d=>{a[d.group]=a[d.group]||{},a[d.group][d.binding]=d.name,c[d.name]=d});let h=0;for(let u in n)c[u]||(e&&!r&&L(`[Shader] the resource '${u}' matches no binding in the WGSL source \u2014 is the name correct?`),s[99]||(s[99]=new Vt,this._ownedBindGroups.push(s[99])),c[u]={group:99,binding:h,name:u},a[99]=a[99]||{},a[99][h]=u,h++);for(let u in n){let d=u,f=n[u];!f.source&&!f._resourceType&&(f=new Ct(f));let m=c[d];m&&(s[m.group]||(s[m.group]=new Vt,this._ownedBindGroups.push(s[m.group])),s[m.group].setResource(f,m.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(t,e,r){var s,n;(s=this._uniformBindMap)[e]||(s[e]={}),(n=this._uniformBindMap[e])[r]||(n[r]=t),this.groups[e]||(this.groups[e]=new Vt,this._ownedBindGroups.push(this.groups[e]))}_buildResourceAccessor(t,e){let r={};for(let s in e){let n=e[s];Object.defineProperty(r,n.name,{get(){return t[n.group].getResource(n.binding)},set(o){t[n.group].setResource(o,n.binding)}})}return r}destroy(t=!1){this._destroyed||(this._destroyed=!0,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,this._overrides=null)}static from(t){let{gpu:e,gl:r,...s}=t,n,o;return e&&(n=ve.from(e)),r&&(o=be.from(r)),new i({gpuProgram:n,glProgram:o,...s})}}});var NS,lh,eh,rh,ih,sh,nh,oh,ah,Ot,Be=p(()=>{"use strict";NS={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},lh={BLEND:0,OFFSET:1,CULLING:2,DEPTH_TEST:3,WINDING:4,DEPTH_MASK:5},{BLEND:eh,OFFSET:rh,CULLING:ih,DEPTH_TEST:sh,WINDING:nh,DEPTH_MASK:oh}=lh,ah=class rg{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<eh)}set blend(t){!!(this.data&1<<eh)!==t&&(this.data^=1<<eh)}get offsets(){return!!(this.data&1<<rh)}set offsets(t){!!(this.data&1<<rh)!==t&&(this.data^=1<<rh)}set cullMode(t){if(t==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=t==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<ih)}set culling(t){!!(this.data&1<<ih)!==t&&(this.data^=1<<ih)}get depthTest(){return!!(this.data&1<<sh)}set depthTest(t){!!(this.data&1<<sh)!==t&&(this.data^=1<<sh)}get depthMask(){return!!(this.data&1<<oh)}set depthMask(t){!!(this.data&1<<oh)!==t&&(this.data^=1<<oh)}get clockwiseFrontFace(){return!!(this.data&1<<nh)}set clockwiseFrontFace(t){!!(this.data&1<<nh)!==t&&(this.data^=1<<nh)}get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!=="none",this._blendMode=t,this._blendModeId=NS[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 rg;return t.depthTest=!1,t.depthMask=!1,t.blend=!0,t}};ah.default2d=ah.for2d();Ot=ah});var ig,oa,hh=p(()=>{Nr();Ai();gr();Be();ig=class ch extends te{constructor(t){t={...ch.defaultOptions,...t},super(t),this.enabled=!0,this._state=Ot.for2d(),this.blendMode=t.blendMode,this.padding=t.padding,typeof t.antialias=="boolean"?this.antialias=t.antialias?"on":"off":this.antialias=t.antialias,this.resolution=t.resolution,this.blendRequired=t.blendRequired,this.clipToViewport=t.clipToViewport,this.addResource("uTexture",0,1),t.blendRequired&&this.addResource("uBackTexture",0,3)}apply(t,e,r,s){t.applyFilter(this,e,r,s)}get blendMode(){return this._state.blendMode}set blendMode(t){this._state.blendMode=t}static from(t){let{gpu:e,gl:r,...s}=t,n,o;return e&&(n=ve.from(e)),r&&(o=be.from(r)),new ch({gpuProgram:n,glProgram:o,...s})}};ig.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};oa=ig});var sg,ng=p(()=>{sg=`in vec2 aPosition;
|
|
32
|
+
`}var Am=p(()=>{"use strict"});function Rm(i,t,e){let r=e?t.maxSupportedFragmentPrecision:t.maxSupportedVertexPrecision;if(i.substring(0,9)!=="precision"){let s=e?t.requestedFragmentPrecision:t.requestedVertexPrecision;return s==="highp"&&r!=="highp"&&(s="mediump"),`precision ${s} float;
|
|
33
|
+
${i}`}else if(r!=="highp"&&i.substring(0,15)==="precision highp")return i.replace("precision highp","precision mediump");return i}var km=p(()=>{"use strict"});function Bm(i,t){return t?`#version 300 es
|
|
34
|
+
${i}`:i}var Im=p(()=>{"use strict"});function Gm(i,{name:t="pixi-program"},e=!0){t=t.replace(/\s+/g,"-"),t+=e?"-fragment":"-vertex";let r=e?OS:NS;return r[t]?(r[t]++,t+=`-${r[t]}`):r[t]=1,i.indexOf("#define SHADER_NAME")!==-1?i:`${`#define SHADER_NAME ${t}`}
|
|
35
|
+
${i}`}var OS,NS,Fm=p(()=>{"use strict";OS={},NS={}});function Um(i,t){return t?i.replace("#version 300 es",""):i}var Dm=p(()=>{"use strict"});var Zc,Us,Lm,be,Nr=p(()=>{Ai();Pm();Am();km();Im();Fm();Dm();Zc={stripVersion:Um,ensurePrecision:Rm,addProgramDefines:Mm,setProgramName:Gm,insertVersion:Bm},Us=Object.create(null),Lm=class Qc{constructor(t){t={...Qc.defaultOptions,...t};let e=t.fragment.indexOf("#version 300 es")!==-1,r={stripVersion:e,ensurePrecision:{requestedFragmentPrecision:t.preferredFragmentPrecision,requestedVertexPrecision:t.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:Em()},setProgramName:{name:t.name},addProgramDefines:e,insertVersion:e},s=t.fragment,n=t.vertex;Object.keys(Zc).forEach(o=>{let a=r[o];s=Zc[o](s,a,!0),n=Zc[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=t.transformFeedbackVaryings,this._key=ke(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null,Us[this._cacheKey]=null}static from(t){let e=`${t.vertex}:${t.fragment}`;return Us[e]||(Us[e]=new Qc(t),Us[e]._cacheKey=e),Us[e]}};Lm.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};be=Lm});function Jt(i){return Om[i]??Om.float32}var Om,pr=p(()=>{"use strict";Om={uint8x2:{size:2,stride:2,normalised:!1},uint8x4:{size:4,stride:4,normalised:!1},sint8x2:{size:2,stride:2,normalised:!1},sint8x4:{size:4,stride:4,normalised:!1},unorm8x2:{size:2,stride:2,normalised:!0},unorm8x4:{size:4,stride:4,normalised:!0},snorm8x2:{size:2,stride:2,normalised:!0},snorm8x4:{size:4,stride:4,normalised:!0},uint16x2:{size:2,stride:4,normalised:!1},uint16x4:{size:4,stride:8,normalised:!1},sint16x2:{size:2,stride:4,normalised:!1},sint16x4:{size:4,stride:8,normalised:!1},unorm16x2:{size:2,stride:4,normalised:!0},unorm16x4:{size:4,stride:8,normalised:!0},snorm16x2:{size:2,stride:4,normalised:!0},snorm16x4:{size:4,stride:8,normalised:!0},float16x2:{size:2,stride:4,normalised:!1},float16x4:{size:4,stride:8,normalised:!1},float32:{size:1,stride:4,normalised:!1},float32x2:{size:2,stride:8,normalised:!1},float32x3:{size:3,stride:12,normalised:!1},float32x4:{size:4,stride:16,normalised:!1},uint32:{size:1,stride:4,normalised:!1},uint32x2:{size:2,stride:8,normalised:!1},uint32x3:{size:3,stride:12,normalised:!1},uint32x4:{size:4,stride:16,normalised:!1},sint32:{size:1,stride:4,normalised:!1},sint32x2:{size:2,stride:8,normalised:!1},sint32x3:{size:3,stride:12,normalised:!1},sint32x4:{size:4,stride:16,normalised:!1}}});function zm(i,t){let e;for(;(e=Nm.exec(i))!==null;){let r=zS[e[3]]??"float32";t[e[2]]={location:parseInt(e[1],10),format:r,stride:Jt(r).stride,offset:0,instance:!1,start:0}}Nm.lastIndex=0}function HS(i){return i.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"")}function Hm({source:i,entryPoint:t}){let e={},r=HS(i),s=r.indexOf(`fn ${t}(`);if(s===-1)return e;let n=r.indexOf("->",s);if(n===-1)return e;let o=r.substring(s,n);if(zm(o,e),Object.keys(e).length===0){let a=o.match(/\(\s*\w+\s*:\s*(\w+)/);if(a){let l=a[1],c=new RegExp(`struct\\s+${l}\\s*\\{([^}]+)\\}`,"s"),h=r.match(c);h&&zm(h[1],e)}}return e}var zS,Nm,Wm=p(()=>{pr();zS={f32:"float32","vec2<f32>":"float32x2","vec3<f32>":"float32x3","vec4<f32>":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2<i32>":"sint32x2","vec3<i32>":"sint32x3","vec4<i32>":"sint32x4",vec2i:"sint32x2",vec3i:"sint32x3",vec4i:"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",vec2u:"uint32x2",vec3u:"uint32x3",vec4u:"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"},Nm=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|\)|$)/g});function oa(i){let t=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,e=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*([\w<>]+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,l=/struct\s+(\w+)/,c=i.match(t)?.map(u=>{let d=u.match(s),f=d?.[1]??"",m;return f==="<uniform>"?m="uniform":f.startsWith("<storage")&&(m="storage"),{group:parseInt(u.match(e)[1],10),binding:parseInt(u.match(r)[1],10),name:d[2],accessMode:m,type:u.match(n)[1]}});if(!c)return{groups:[],structs:[]};let h=i.match(o)?.map(u=>{let d=u.match(l)[1],f=u.match(a).reduce((m,g)=>{let[_,x]=g.split(":");return m[_.trim()]=x.trim(),m},{});return f?{name:d,members:f}:null}).filter(({name:u})=>c.some(d=>d.type===u||d.type.includes(`<${u}>`)))??[];return{groups:c,structs:h}}var Vm=p(()=>{"use strict"});var Dt,jm=p(()=>{"use strict";Dt=(i=>(i[i.VERTEX=1]="VERTEX",i[i.FRAGMENT=2]="FRAGMENT",i[i.COMPUTE=4]="COMPUTE",i))(Dt||{})});function Xm({groups:i}){let t=[];for(let e=0;e<i.length;e++){let r=i[e];t[r.group]||(t[r.group]=[]),r.accessMode==="uniform"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,buffer:{type:"uniform"}}):r.accessMode==="storage"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,buffer:{type:"read-only-storage"}}):r.type==="sampler"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,sampler:{type:"filtering"}}):r.type==="sampler_comparison"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,sampler:{type:"comparison"}}):r.type==="texture_2d"||r.type.startsWith("texture_2d<")?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d_array"?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d-array",multisampled:!1}}):r.type==="texture_2d_array"||r.type.startsWith("texture_2d_array<")?t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d-array",multisampled:!1}}):(r.type==="texture_cube"||r.type.startsWith("texture_cube<"))&&t[r.group].push({binding:r.binding,visibility:Dt.VERTEX|Dt.FRAGMENT,texture:{sampleType:"float",viewDimension:"cube",multisampled:!1}})}for(let e=0;e<t.length;e++)t[e]||(t[e]=[]);return t}var Ym=p(()=>{jm()});function $m({groups:i}){let t=[];for(let e=0;e<i.length;e++){let r=i[e];t[r.group]||(t[r.group]={}),t[r.group][r.name]=r.binding}return t}var qm=p(()=>{"use strict"});function Km(i,t){let e=new Set,r=new Set,s=[...i.structs,...t.structs].filter(o=>e.has(o.name)?!1:(e.add(o.name),!0)),n=[...i.groups,...t.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return r.has(a)?!1:(r.add(a),!0)});return{structs:s,groups:n}}var Zm=p(()=>{"use strict"});var Ds,ve,Ri=p(()=>{Ai();Wm();Vm();Ym();qm();Zm();Ds=Object.create(null),ve=class i{constructor(t){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:e,vertex:r,layout:s,gpuLayout:n,name:o}=t;if(this.name=o,this.fragment=e,this.vertex=r,e.source===r.source){let a=oa(e.source);this.structsAndGroups=a}else{let a=oa(r.source),l=oa(e.source);this.structsAndGroups=Km(a,l)}this.layout=s??$m(this.structsAndGroups),this.gpuLayout=n??Xm(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:t,fragment:e}=this,r=t.source+e.source+t.entryPoint+e.entryPoint;this._layoutKey=ke(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=Hm(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null,Ds[this._cacheKey]=null}static from(t){let e=`${t.vertex.source}:${t.fragment.source}:${t.fragment.entryPoint}:${t.vertex.entryPoint}`;return Ds[e]||(Ds[e]=new i(t),Ds[e]._cacheKey=e),Ds[e]}}});var Vt,mr=p(()=>{ht();Vt=class{constructor(t){this.resources=Object.create(null),this._dirty=!0;let e=0;for(let r in t){let s=t[r];this.setResource(s,e++)}}get _key(){if(this._dirty){this._dirty=!1;let t=[],e=0;for(let r in this.resources)t[e++]=this.resources[r]?this.resources[r]._resourceId:-1;this._keyValue=t.join("|")}return this._keyValue}setResource(t,e){let r=this.resources[e];t!==r&&(r&&r.off?.("change",this.onResourceChange,this),t.on?.("change",this.onResourceChange,this),this.resources[e]=t,this._dirty=!0)}getResource(t){return this.resources[t]}_touch(t,e){let r=this.resources;for(let s in r){let n=r[s];n&&(n._gcLastUsed=t,n._touched=e)}}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=!0,t.destroyed){let e=this.resources;for(let r in e)e[r]===t&&(e[r]=null);L(`[BindGroup] a '${t._resourceType}' was destroyed while still bound to a shader. Remove it from the shader before destroying it.`)}}}});var Lt,Ne=p(()=>{"use strict";Lt=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.CANVAS=4]="CANVAS",i[i.BOTH=3]="BOTH",i))(Lt||{})});var ki,Jc=p(()=>{Ai();ki=class i{constructor(t){this.data={...t};let e=Object.keys(t).sort().map(r=>`${r}:${t[r]}`).join("|");this.id=ke(e,"shader-overrides")}static from(t){return t instanceof i?t:new i(t)}}});var th,Qm,Jm=p(()=>{"use strict";th=["f32","i32","u32","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>","vec2<u32>","vec3<u32>","vec4<u32>"],Qm=th.reduce((i,t)=>(i[t]=!0,i),{})});function tg(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 eg=p(()=>{"use strict"});var rg,Ct,me=p(()=>{Ht();Ft();Ai();Jm();eg();rg=class ig extends ut{constructor(t,e){super(),this._touched=0,this.uid=$("uniform"),this._resourceType="uniformGroup",this._resourceId=$("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,e={...ig.defaultOptions,...e},this.uniformStructures=t;let r={};for(let s in t){let n=t[s];if(n.name=s,n.size=n.size??1,!Qm[n.type]){let o=n.type.match(/^array<(\w+(?:<\w+>)?),\s*(\d+)>$/);if(o){let[,a,l]=o;throw new Error(`Uniform type ${n.type} is not supported. Use type: '${a}', size: ${l} instead.`)}throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${th.join(", ")}`)}n.value??(n.value=tg(n.type,n.size)),r[s]=n.value}this.uniforms=r,this._dirtyId=1,this.ubo=e.ubo,this.isStatic=e.isStatic,this._signature=ke(Object.keys(r).map(s=>`${s}-${t[s].type}`).join("-"),"uniform-group")}get buffer(){return this._buffer}set buffer(t){this._buffer!==t&&(this._buffer?.off("change",this.onBufferChange,this),this._buffer=t,t?.on("change",this.onBufferChange,this))}get _gcLastUsed(){return this._buffer?._gcLastUsed??-1}set _gcLastUsed(t){this._buffer&&(this._buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=$("resource"),this.emit("change",this)}update(){this._dirtyId++}};rg.defaultOptions={ubo:!1,isStatic:!1};Ct=rg});var te,gr=p(()=>{Ht();Ft();ht();Nr();mr();Ri();Ne();Jc();me();te=class i extends ut{constructor(t){super(),this.uid=$("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[],this._destroyed=!1;let{gpuProgram:e,glProgram:r,groups:s,resources:n,compatibleRenderers:o,groupMap:a,overrides:l}=t;this._overrides=l?ki.from(l):null,this.gpuProgram=e,this.glProgram=r,o===void 0&&(o=0,e&&(o|=Lt.WEBGPU),r&&(o|=Lt.WEBGL)),this.compatibleRenderers=o;let c={};if(a)for(let h in a)for(let u in a[h]){let d=a[h][u];c[d]={group:h,binding:u,name:d}}if(!n&&!s&&(n={}),n&&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){let h=e.structsAndGroups.groups;a={},h.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,c[u.name]=u})}else if(n){s={},a||(a={}),e&&e.structsAndGroups.groups.forEach(d=>{a[d.group]=a[d.group]||{},a[d.group][d.binding]=d.name,c[d.name]=d});let h=0;for(let u in n)c[u]||(e&&!r&&L(`[Shader] the resource '${u}' matches no binding in the WGSL source \u2014 is the name correct?`),s[99]||(s[99]=new Vt,this._ownedBindGroups.push(s[99])),c[u]={group:99,binding:h,name:u},a[99]=a[99]||{},a[99][h]=u,h++);for(let u in n){let d=u,f=n[u];!f.source&&!f._resourceType&&(f=new Ct(f));let m=c[d];m&&(s[m.group]||(s[m.group]=new Vt,this._ownedBindGroups.push(s[m.group])),s[m.group].setResource(f,m.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(t,e,r){var s,n;(s=this._uniformBindMap)[e]||(s[e]={}),(n=this._uniformBindMap[e])[r]||(n[r]=t),this.groups[e]||(this.groups[e]=new Vt,this._ownedBindGroups.push(this.groups[e]))}_buildResourceAccessor(t,e){let r={};for(let s in e){let n=e[s];Object.defineProperty(r,n.name,{get(){return t[n.group].getResource(n.binding)},set(o){t[n.group].setResource(o,n.binding)}})}return r}destroy(t=!1){this._destroyed||(this._destroyed=!0,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,this._overrides=null)}static from(t){let{gpu:e,gl:r,...s}=t,n,o;return e&&(n=ve.from(e)),r&&(o=be.from(r)),new i({gpuProgram:n,glProgram:o,...s})}}});var WS,lh,eh,rh,ih,sh,nh,oh,ah,Ot,Be=p(()=>{"use strict";WS={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},lh={BLEND:0,OFFSET:1,CULLING:2,DEPTH_TEST:3,WINDING:4,DEPTH_MASK:5},{BLEND:eh,OFFSET:rh,CULLING:ih,DEPTH_TEST:sh,WINDING:nh,DEPTH_MASK:oh}=lh,ah=class sg{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<eh)}set blend(t){!!(this.data&1<<eh)!==t&&(this.data^=1<<eh)}get offsets(){return!!(this.data&1<<rh)}set offsets(t){!!(this.data&1<<rh)!==t&&(this.data^=1<<rh)}set cullMode(t){if(t==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=t==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<ih)}set culling(t){!!(this.data&1<<ih)!==t&&(this.data^=1<<ih)}get depthTest(){return!!(this.data&1<<sh)}set depthTest(t){!!(this.data&1<<sh)!==t&&(this.data^=1<<sh)}get depthMask(){return!!(this.data&1<<oh)}set depthMask(t){!!(this.data&1<<oh)!==t&&(this.data^=1<<oh)}get clockwiseFrontFace(){return!!(this.data&1<<nh)}set clockwiseFrontFace(t){!!(this.data&1<<nh)!==t&&(this.data^=1<<nh)}get blendMode(){return this._blendMode}set blendMode(t){this.blend=t!=="none",this._blendMode=t,this._blendModeId=WS[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 sg;return t.depthTest=!1,t.depthMask=!1,t.blend=!0,t}};ah.default2d=ah.for2d();Ot=ah});var ng,aa,hh=p(()=>{Nr();Ri();gr();Be();ng=class ch extends te{constructor(t){t={...ch.defaultOptions,...t},super(t),this.enabled=!0,this._state=Ot.for2d(),this.blendMode=t.blendMode,this.padding=t.padding,typeof t.antialias=="boolean"?this.antialias=t.antialias?"on":"off":this.antialias=t.antialias,this.resolution=t.resolution,this.blendRequired=t.blendRequired,this.clipToViewport=t.clipToViewport,this.addResource("uTexture",0,1),t.blendRequired&&this.addResource("uBackTexture",0,3)}apply(t,e,r,s){t.applyFilter(this,e,r,s)}get blendMode(){return this._state.blendMode}set blendMode(t){this._state.blendMode=t}static from(t){let{gpu:e,gl:r,...s}=t,n,o;return e&&(n=ve.from(e)),r&&(o=be.from(r)),new ch({gpuProgram:n,glProgram:o,...s})}};ng.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};aa=ng});var og,ag=p(()=>{og=`in vec2 aPosition;
|
|
36
36
|
out vec2 vTextureCoord;
|
|
37
37
|
|
|
38
38
|
uniform vec4 uInputSize;
|
|
@@ -59,13 +59,13 @@ void main(void)
|
|
|
59
59
|
gl_Position = filterVertexPosition();
|
|
60
60
|
vTextureCoord = filterTextureCoord();
|
|
61
61
|
}
|
|
62
|
-
`});var
|
|
62
|
+
`});var lg,cg=p(()=>{lg=`in vec2 vTextureCoord;
|
|
63
63
|
out vec4 finalColor;
|
|
64
64
|
uniform sampler2D uTexture;
|
|
65
65
|
void main() {
|
|
66
66
|
finalColor = texture(uTexture, vTextureCoord);
|
|
67
67
|
}
|
|
68
|
-
`});var uh,
|
|
68
|
+
`});var uh,hg=p(()=>{uh=`struct GlobalFilterUniforms {
|
|
69
69
|
uInputSize: vec4<f32>,
|
|
70
70
|
uInputPixel: vec4<f32>,
|
|
71
71
|
uInputClamp: vec4<f32>,
|
|
@@ -114,24 +114,24 @@ fn mainFragment(
|
|
|
114
114
|
) -> @location(0) vec4<f32> {
|
|
115
115
|
return textureSample(uTexture, uSampler, uv);
|
|
116
116
|
}
|
|
117
|
-
`});var aa,cg=p(()=>{Nr();Ai();hh();ng();ag();lg();aa=class extends oa{constructor(){let t=ve.from({vertex:{source:uh,entryPoint:"mainVertex"},fragment:{source:uh,entryPoint:"mainFragment"},name:"passthrough-filter"}),e=be.from({vertex:sg,fragment:og,name:"passthrough-filter"});super({gpuProgram:t,glProgram:e})}}});var tt,ir=p(()=>{"use strict";tt=(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))(tt||{})});var At,xr=p(()=>{Ht();Ft();ir();At=class extends ut{constructor(t){let{data:e,size:r}=t,{usage:s,label:n,shrinkToFit:o}=t;super(),this._gpuData=Object.create(null),this._gcLastUsed=-1,this.autoGarbageCollect=!0,this.uid=$("buffer"),this._resourceType="buffer",this._resourceId=$("resource"),this._touched=0,this._updateID=1,this._updateOffset=0,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,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:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(t){this.setDataWithSize(t,t.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&tt.STATIC)}set static(t){t?this.descriptor.usage|=tt.STATIC:this.descriptor.usage&=~tt.STATIC}setDataWithSize(t,e,r){if(this._updateID++,this._updateSize=e*t.BYTES_PER_ELEMENT,this._updateOffset=0,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=$("resource"),this.emit("change",this));return}r&&this.emit("update",this)}update(t,e){this._updateSize=t??this._updateSize,this._updateOffset=e||0,this._updateID++,this.emit("update",this)}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null),this.destroyed||(this._resourceId=$("resource"),this.emit("change",this))}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function dh(i,t){if(!(i instanceof At)){let e=t?tt.INDEX:tt.VERTEX;i instanceof Array&&(t?(i=new Uint32Array(i),e=tt.INDEX|tt.COPY_DST):(i=new Float32Array(i),e=tt.VERTEX|tt.COPY_DST)),i=new At({data:i,label:t?"index-mesh-buffer":"vertex-mesh-buffer",usage:e})}return i}var hg=p(()=>{xr();ir()});function ug(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,n=1/0,o=1/0,a=-1/0,l=-1/0,c=s.BYTES_PER_ELEMENT,h=(r.offset||0)/c,u=(r.stride||8)/c;for(let d=h;d<s.length;d+=u){let f=s[d],m=s[d+1];f>a&&(a=f),m>l&&(l=m),f<n&&(n=f),m<o&&(o=m)}return e.minX=n,e.minY=o,e.maxX=a,e.maxY=l,e}var dg=p(()=>{"use strict"});function zS(i){return(i instanceof At||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=dh(i.buffer,!1),i}var he,zr=p(()=>{Ht();ie();Ft();yt();xr();hg();dg();he=class extends ut{constructor(t={}){super(),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=$("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new dt,this._boundsDirty=!0,this._vertexCount=0,this._vertexCountDirty=!0;let{attributes:e,indexBuffer:r,topology:s}=t;if(this.buffers=[],this.attributes={},e)for(let n in e)this.addAttribute(n,e[n]);this.instanceCount=t.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this._vertexCountDirty=!0,this.emit("update",this)}getAttribute(t){return this.attributes[t]}getIndex(){return this.indexBuffer}getBuffer(t){return this.getAttribute(t).buffer}get vertexCount(){if(!this._vertexCountDirty)return this._vertexCount;this._vertexCountDirty=!1;let t=this.attributes;for(let e in t){let r=t[e];if(r.instance)continue;let s=r.buffer;return this._vertexCount=s.data.length/(r.stride/4||r.size),this._vertexCount}return this._vertexCount=0,0}getSize(){return O("8.20.0","Geometry.getSize is deprecated, please use Geometry.vertexCount instead."),this.vertexCount}addAttribute(t,e){let r=zS(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,this._vertexCountDirty=!0}addIndex(t){this.indexBuffer=dh(t,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,ug(this,"aPosition",this._bounds)):this._bounds}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null)}destroy(t=!1){this.emit("destroy",this),this.removeAllListeners(),t&&this.buffers.forEach(e=>e.destroy()),this.unload(),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var HS,fh,Ds,fg=p(()=>{P();cg();ot();mr();zr();me();gt();Fr();Ne();ie();Xc();ht();HS=new he({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])}),fh=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new dt,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.globalFrame={x:0,y:0,width:0,height:0},this.firstEnabledIndex=-1,this.lastEnabledIndex=-1}},Ds=class{constructor(t){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new Ct({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 Vt({}),this.renderer=t}get activeBackTexture(){return this._activeFilterData?.backTexture}push(t){let e=this.renderer,r=t.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=r,s.container=t.container,s.outputRenderSurface=e.renderTarget.renderSurface;let n=e.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(r.every(f=>!f.enabled)){s.skip=!0;return}let l=s.bounds;if(this._calculateFilterArea(t,l),this._calculateFilterBounds(s,e.renderTarget.rootViewPort,a,o,1),s.skip)return;let c=this._getPreviousFilterData(),h=this._findFilterResolution(o),u=0,d=0;c&&(u=c.bounds.minX,d=c.bounds.minY),this._calculateGlobalFrame(s,u,d,h,n.width,n.height),this._setupFilterTextures(s,l,e,c)}generateFilteredTexture({texture:t,filters:e}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=!1,r.filters=e;let s=t.source,n=s.resolution,o=s.antialias;if(e.every(f=>!f.enabled))return r.skip=!0,t;let a=r.bounds;if(a.addRect(t.frame),this._calculateFilterBounds(r,a.rectangle,o,n,0),r.skip)return t;let l=n;this._calculateGlobalFrame(r,0,0,l,s.width,s.height),r.outputRenderSurface=Mt.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=U.EMPTY,r.inputTexture=t,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,!0);let d=r.outputRenderSurface;return d.source.alphaMode="premultiplied-alpha",d}pop(){let t=this.renderer,e=this._popFilterData();e.skip||(t.globalUniforms.pop(),t.renderTarget.finishRenderPass(),this._activeFilterData=e,this._applyFiltersToTexture(e,!1),e.blendRequired&&Mt.returnTexture(e.backTexture),Mt.returnTexture(e.inputTexture))}getBackTexture(t,e,r){let s=t.colorTexture.source._resolution,n=Mt.getOptimalTexture(e.width,e.height,s,!1),o=e.minX,a=e.minY;r&&(o-=r.minX,a-=r.minY),o=Math.floor(o*s),a=Math.floor(a*s);let l=Math.ceil(e.width*s),c=Math.ceil(e.height*s);return this.renderer.renderTarget.copyToTexture(t,n,{x:o,y:a},{width:l,height:c},{x:0,y:0}),n}applyFilter(t,e,r,s){let n=this.renderer,o=this._activeFilterData,l=o.outputRenderSurface===r,c=n.renderTarget.rootRenderTarget.colorTexture.source._resolution,h=this._findFilterResolution(c),u=0,d=0;if(l){let m=this._findPreviousFilterOffset();u=m.x,d=m.y}this._updateFilterUniforms(e,r,o,u,d,h,l,s);let f=t.enabled?t:this._getPassthroughFilter();this._setupBindGroupsAndRender(f,e,n)}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),n=e.worldTransform.copyTo(k.shared),o=e.renderGroup||e.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/e.texture.orig.width,1/e.texture.orig.height),s.translate(e.anchor.x,e.anchor.y),s}destroy(){this._passthroughFilter?.destroy(!0),this._passthroughFilter=null}_getPassthroughFilter(){return this._passthroughFilter??(this._passthroughFilter=new aa),this._passthroughFilter}_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:HS,shader:t,state:t._state,topology:"triangle-list"}),r.type===Lt.WEBGL&&r.renderTarget.finishRenderPass()}_setupFilterTextures(t,e,r,s){if(t.backTexture=U.EMPTY,t.inputTexture=Mt.getOptimalTexture(e.width,e.height,t.resolution,t.antialias),t.blendRequired){r.renderTarget.finishRenderPass();let n=r.renderTarget.getRenderTarget(t.outputRenderSurface);t.backTexture=this.getBackTexture(n,e,s?.bounds)}r.renderTarget.bind({target:t.inputTexture,clear:!0}),r.globalUniforms.push({offset:e})}_calculateGlobalFrame(t,e,r,s,n,o){let a=t.globalFrame;a.x=e*s,a.y=r*s,a.width=n*s,a.height=o*s}_updateFilterUniforms(t,e,r,s,n,o,a,l){let c=this._filterGlobalUniforms.uniforms,h=c.uOutputFrame,u=c.uInputSize,d=c.uInputPixel,f=c.uInputClamp,m=c.uGlobalFrame,g=c.uOutputTexture;a?(h[0]=r.bounds.minX-s,h[1]=r.bounds.minY-n):(h[0]=0,h[1]=0),h[2]=t.frame.width,h[3]=t.frame.height,u[0]=t.source.width,u[1]=t.source.height,u[2]=1/u[0],u[3]=1/u[1],d[0]=t.source.pixelWidth,d[1]=t.source.pixelHeight,d[2]=1/d[0],d[3]=1/d[1],f[0]=.5*d[2],f[1]=.5*d[3],f[2]=t.frame.width*u[2]-.5*d[2],f[3]=t.frame.height*u[3]-.5*d[3];let _=this.renderer.renderTarget.rootRenderTarget.colorTexture;m[0]=s*o,m[1]=n*o,m[2]=_.source.width*o,m[3]=_.source.height*o,e instanceof U&&(e.source.resource=null);let x=this.renderer.renderTarget.getRenderTarget(e);this.renderer.renderTarget.bind({target:e,clear:!!l}),e instanceof U?(g[0]=e.frame.width,g[1]=e.frame.height):(g[0]=x.width,g[1]=x.height),g[2]=x.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?ta(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(!0,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,n=t.filters,o=t.firstEnabledIndex,a=t.lastEnabledIndex;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(t.backTexture.source,3),o===a)n[o].apply(this,r,t.outputRenderSurface,e);else{let l=t.inputTexture,c=Mt.getOptimalTexture(s.width,s.height,l.source._resolution,!1),h=c;for(let u=o;u<a;u++){let d=n[u];if(!d.enabled)continue;d.apply(this,l,h,!0);let f=l;l=h,h=f}n[a].apply(this,l,t.outputRenderSurface,e),Mt.returnTexture(c)}}_calculateFilterBounds(t,e,r,s,n){let o=this.renderer,a=t.bounds,l=t.filters,c=1/0,h=0,u=!0,d=!1,f=!1,m=!0,g=-1,_=-1;for(let x=0;x<l.length;x++){let b=l[x];if(!b.enabled)continue;if(g===-1&&(g=x),_=x,c=Math.min(c,b.resolution==="inherit"?s:b.resolution),h+=b.padding,b.antialias==="off"?u=!1:b.antialias==="inherit"&&u&&(u=r),b.clipToViewport||(m=!1),!!!(b.compatibleRenderers&o.type)){f=!1;break}if(b.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){L("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),f=!1;break}f=!0,d||(d=b.blendRequired)}if(!f){t.skip=!0;return}if(m&&a.fitBounds(0,e.width/s,0,e.height/s),a.scale(c).ceil().scale(1/c).pad((h|0)*n),!a.isPositive){t.skip=!0;return}t.antialias=u,t.resolution=c,t.blendRequired=d,t.firstEnabledIndex=g,t.lastEnabledIndex=_}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let t,e=this._filterStackIndex-1;for(;e>0&&(e--,t=this._filterStack[e],!!t.skip););return t}_pushFilterData(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new fh),this._filterStackIndex++,t}};Ds.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"filter"}});var ph=p(()=>{P();vm();Sm();fg();z.add(Ds,Is);z.add(Gs)});var WS={};var pg=p(()=>{Rp();Bp();Up();Oo();Xo();ph()});var VS={};var gg=p(()=>{Oo();Xo();ph()});async function _g(i){if(!i)for(let t=0;t<mh.length;t++){let e=mh[t];if(e.value.test()){await e.value.load();return}}}var mh,yg=p(()=>{P();mh=[];z.handleByNamedList(y.Environment,mh)});function la(){if(typeof Ls=="boolean")return Ls;try{Ls=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{Ls=!1}return Ls}var Ls,gh=p(()=>{"use strict"});function fa(i,t,e=2){let r=t&&t.length,s=r?t[0]*e:i.length;Hs.size&&Hs.clear();let n=Tg(i,0,s,e,!0),o=[];if(!n||n.next===n.prev)return o;let a=0,l=0,c=0;if(r&&(n=qS(i,t,n,e)),i.length>80*e){a=i[0],l=i[1];let h=a,u=l;for(let d=e;d<s;d+=e){let f=i[d],m=i[d+1];f<a&&(a=f),m<l&&(l=m),f>h&&(h=f),m>u&&(u=m)}c=Math.max(h-a,u-l),c=c!==0?32767/c:0}return _h(n,o,a,l,c),o}function Tg(i,t,e,r,s){let n=null;if(s===lT(i,t,e,r)>0)for(let o=t;o<e;o+=r)n=Sg(o/r|0,i[o],i[o+1],n);else for(let o=e-r;o>=t;o-=r)n=Sg(o/r|0,i[o],i[o+1],n);return n&&Ws(n,n.next)&&(js(n),n=n.next),n}function Wr(i,t=i){let e=t===i,r=i,s;do s=!1,r!==r.next&&(Hs.size===0||!Hs.has(r))&&(Ws(r,r.next)||Nt(r.prev,r,r.next)===0)?((e||r===t)&&(t=r.prev),xh=!0,js(r),r=r.prev,s=!0):(e||r!==t)&&(r=r.next,s=!e);while(s||r!==t);return t}function _h(i,t,e,r,s){s&&rT(i,e,r,s);let n=i,o=!1;for(;i.prev!==i.next;){let a=i.prev,l=i.next;if(Nt(a,i,l)<0&&(s?XS(i,e,r,s):jS(i))){t.push(a.i,i.i,l.i),js(i),i=l,n=l;continue}if(i=l,i===n){if(xh=!1,i=Wr(i),xh){n=i;continue}if(!o){i=YS(i,t),n=i,o=!0;continue}$S(i,t,e,r,s);break}}}function jS(i){let t=i.prev,e=i,r=i.next,s=t.x,n=e.x,o=r.x,a=t.y,l=e.y,c=r.y,h=Math.min(s,n,o),u=Math.min(a,l,c),d=Math.max(s,n,o),f=Math.max(a,l,c),m=r.next;for(;m!==t;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=f&&!(s===m.x&&a===m.y)&&da(s,a,n,l,o,c,m.x,m.y)&&Nt(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function XS(i,t,e,r){let s=i.prev,n=i,o=i.next,a=s.x,l=n.x,c=o.x,h=s.y,u=n.y,d=o.y,f=Math.min(a,l,c),m=Math.min(h,u,d),g=Math.max(a,l,c),_=Math.max(h,u,d),x=Sh(f,m,t,e,r),b=Sh(g,_,t,e,r),v=i.prevZ;for(;v&&v.z>=x;){if(v.x>=f&&v.x<=g&&v.y>=m&&v.y<=_&&v!==o&&!(a===v.x&&h===v.y)&&da(a,h,l,u,c,d,v.x,v.y)&&Nt(v.prev,v,v.next)>=0)return!1;v=v.prevZ}let S=i.nextZ;for(;S&&S.z<=b;){if(S.x>=f&&S.x<=g&&S.y>=m&&S.y<=_&&S!==o&&!(a===S.x&&h===S.y)&&da(a,h,l,u,c,d,S.x,S.y)&&Nt(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function YS(i,t){let e=i,r=!1;do{let s=e.prev,n=e.next.next;Eg(s,e,e.next,n,!1)&&Vs(s,n)&&Vs(n,s)&&(t.push(s.i,e.i,n.i),js(e),js(e.next),e=i=n,r=!0),e=e.next}while(e!==i);return r?Wr(e):e}function $S(i,t,e,r,s){let n=i;do{let o=n.next.next;for(;o!==n.prev;){if(n.i!==o.i&&nT(n,o)){let a=Pg(n,o);n=Wr(n,n.next),a=Wr(a,a.next),_h(n,t,e,r,s),_h(a,t,e,r,s);return}o=o.next}n=n.next}while(n!==i)}function qS(i,t,e,r){let s=[];for(let n=0,o=t.length;n<o;n++){let a=t[n]*r,l=n<o-1?t[n+1]*r:i.length,c=Tg(i,a,l,r,!1);c===c.next&&Hs.add(c),s.push(sT(c))}s.sort(KS),QS(i.length/r,t.length),Cg(e,e),yh=!0;for(let n=0;n<s.length;n++)e=ZS(s[n],e);return yh=!1,Wr(e)}function KS(i,t){return i.x-t.x||i.y-t.y||(i.next.y-i.y)/(i.next.x-i.x)-(t.next.y-t.y)/(t.next.x-t.x)}function ZS(i,t){let e=tT(i,t);if(!e)return t;let r=Pg(e,i),s=r.next;return Cg(e,s.next),Wr(r,r.next),Wr(e,e.next)}function QS(i,t){let e=Math.ceil((i+2*t)/wg)+t+2;Rt.length<e*4&&(Rt=new Float64Array(e*4)),ua=0}function Cg(i,t){let e=i;do{let r=ua++;bh[r]=e;let s=1/0,n=1/0,o=-1/0,a=-1/0,l=0;do{let h=e.next;e.z=r,e.x<s&&(s=e.x),e.x>o&&(o=e.x),e.y<n&&(n=e.y),e.y>a&&(a=e.y),h.x<s&&(s=h.x),h.x>o&&(o=h.x),h.y<n&&(n=h.y),h.y>a&&(a=h.y),e=h}while(++l<wg&&e!==t);vh[r]=e;let c=r*4;Rt[c]=s,Rt[c+1]=n,Rt[c+2]=o,Rt[c+3]=a}while(e!==t)}function JS(i,t){let e=i.z*4;t.x<Rt[e]&&(Rt[e]=t.x),t.y<Rt[e+1]&&(Rt[e+1]=t.y),t.x>Rt[e+2]&&(Rt[e+2]=t.x),t.y>Rt[e+3]&&(Rt[e+3]=t.y)}function bg(i){let t=vh[i];for(;t.prev.next!==t;)t=t.next;return vh[i]=t,t}function vg(i){let t=bh[i];for(;t.prev.next!==t;)t=t.next;return bh[i]=t,t}function tT(i,t){let e=t,r=i.x,s=i.y,n=-1/0,o;if(Ws(i,e))return e;for(let d=0,f=0;d<ua;d++,f+=4){if(s<Rt[f+1]||s>Rt[f+3]||Rt[f]>r||Rt[f+2]<=n)continue;let m=bg(d);e=vg(d);do{if(e.prev.next===e){if(Ws(i,e.next))return e.next;if(s<=e.y&&s>=e.next.y&&e.next.y!==e.y){let g=e.x+(s-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(g<=r&&g>n&&(n=g,o=e.x<e.next.x?e:e.next,g===r))return o}}e=e.next}while(e!==m)}if(!o)return null;let a=o.x,l=o.y,c=Math.min(s,l),h=Math.max(s,l),u=1/0;for(let d=0,f=0;d<ua;d++,f+=4){if(Rt[f+2]<a||Rt[f]>r||Rt[f+3]<c||Rt[f+1]>h)continue;let m=bg(d);e=vg(d);do{if(e.prev.next===e&&r>=e.x&&e.x>=a&&r!==e.x&&da(s<l?r:n,s,a,l,s<l?n:r,s,e.x,e.y)){let g=Math.abs(s-e.y)/(r-e.x);(Vs(e,i)||e.y===s&&e.next.y===s&&e.next.x>r)&&(g<u||g===u&&(e.x>o.x||e.x===o.x&&eT(o,e)))&&(o=e,u=g)}e=e.next}while(e!==m)}return o}function eT(i,t){return Nt(i.prev,i,t.prev)<0&&Nt(t.next,i,i.next)<0}function rT(i,t,e,r){let s=i,n=0;do s.z=Sh(s.x,s.y,t,e,r),Se[n++]=s,s=s.next;while(s!==i);iT(n);let o=null;for(let a=0;a<n;a++){let l=Se[a];l.prevZ=o,o&&(o.nextZ=l),o=l}o.nextZ=null}function iT(i){if(i<=32){for(let t=1;t<i;t++){let e=Se[t],r=e.z,s=t-1;for(;s>=0&&Se[s].z>r;)Se[s+1]=Se[s],s--;Se[s+1]=e}return}Hr.length<i&&(Hr=new Uint32Array(i),Ns=new Uint32Array(i),Os=new Array(i));for(let t=0;t<i;t++)Hr[t]=Se[t].z;ca(i,Se,Hr,Os,Ns,0),ca(i,Os,Ns,Se,Hr,8),ca(i,Se,Hr,Os,Ns,16),ca(i,Os,Ns,Se,Hr,24)}function ca(i,t,e,r,s,n){zs.fill(0);for(let a=0;a<i;a++)zs[e[a]>>>n&255]++;let o=0;for(let a=0;a<256;a++){let l=zs[a];zs[a]=o,o+=l}for(let a=0;a<i;a++){let l=e[a],c=zs[l>>>n&255]++;r[c]=t[a],s[c]=l}}function Sh(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 sT(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 da(i,t,e,r,s,n,o,a){return(s-o)*(t-a)>=(i-o)*(n-a)&&(i-o)*(r-a)>=(e-o)*(t-a)&&(e-o)*(n-a)>=(s-o)*(r-a)}function nT(i,t){let e=Ws(i,t)&&Nt(i.prev,i,i.next)>0&&Nt(t.prev,t,t.next)>0;return i.next.i!==t.i&&(e||Vs(i,t)&&Vs(t,i)&&(Nt(i.prev,i,t.prev)!==0||Nt(i,t.prev,t)!==0))&&!oT(i,t)&&(e||aT(i,t))}function Nt(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function Ws(i,t){return i.x===t.x&&i.y===t.y}function Eg(i,t,e,r,s=!0){let n=Nt(i,t,e),o=Nt(i,t,r),a=Nt(e,r,i),l=Nt(e,r,t);return(n>0&&o<0||n<0&&o>0)&&(a>0&&l<0||a<0&&l>0)?!0:s?!!(n===0&&ha(i,e,t)||o===0&&ha(i,r,t)||a===0&&ha(e,i,r)||l===0&&ha(e,t,r)):!1}function ha(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 oT(i,t){let e=Math.min(i.x,t.x),r=Math.max(i.x,t.x),s=Math.min(i.y,t.y),n=Math.max(i.y,t.y),o=i;do{let a=o.next;if(o.x>r&&a.x>r||o.x<e&&a.x<e||o.y>n&&a.y>n||o.y<s&&a.y<s){o=a;continue}if(o.i!==i.i&&a.i!==i.i&&o.i!==t.i&&a.i!==t.i&&Eg(o,a,i,t))return!0;o=a}while(o!==i);return!1}function Vs(i,t){return Nt(i.prev,i,i.next)<0?Nt(i,t,i.next)>=0&&Nt(i,i.prev,t)>=0:Nt(i,t,i.prev)<0||Nt(i,i.next,t)<0}function aT(i,t){let e=i,r=!1,s=(i.x+t.x)/2,n=(i.y+t.y)/2;do{let o=e.next;e.y>n!=o.y>n&&s<(o.x-e.x)*(n-e.y)/(o.y-e.y)+e.x&&(r=!r),e=o}while(e!==i);return r}function Pg(i,t){let e=Th(i.i,i.x,i.y),r=Th(t.i,t.x,t.y),s=i.next,n=t.prev;return i.next=t,t.prev=i,e.next=s,s.prev=e,r.next=e,e.prev=r,n.next=r,r.prev=n,r}function Sg(i,t,e,r){let s=Th(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 js(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),yh&&JS(i.prev,i.next)}function Th(i,t,e){return{i,x:t,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function lT(i,t,e,r){let s=0;for(let n=t,o=e-r;n<e;n+=r)s+=(i[o]-i[n])*(i[n+1]+i[o+1]),o=n;return s}var Hs,xh,yh,wg,Rt,ua,bh,vh,Se,Os,Hr,Ns,zs,Mg=p(()=>{Hs=new Set,xh=!1;yh=!1;wg=16,Rt=new Float64Array(0),ua=0,bh=[],vh=[];Se=[],Os=[],Hr=new Uint32Array(0),Ns=new Uint32Array(0),zs=new Uint32Array(256)});var Ag,Rg=p(()=>{Mg();Ht();Ag=fa.default||fa});var Et,ki=p(()=>{"use strict";Et=(i=>(i[i.NONE=0]="NONE",i[i.COLOR=16384]="COLOR",i[i.STENCIL=1024]="STENCIL",i[i.DEPTH=256]="DEPTH",i[i.COLOR_DEPTH=16640]="COLOR_DEPTH",i[i.COLOR_STENCIL=17408]="COLOR_STENCIL",i[i.DEPTH_STENCIL=1280]="DEPTH_STENCIL",i[i.ALL=17664]="ALL",i))(Et||{})});var Bi,wh=p(()=>{"use strict";Bi=class{constructor(t){this.items=[],this._name=t}emit(t,e,r,s,n,o,a,l){let{name:c,items:h}=this;for(let u=0,d=h.length;u<d;u++)h[u][c](t,e,r,s,n,o,a,l);return this}add(t){return t[this._name]&&(this.remove(t),this.items.push(t)),this}remove(t){let e=this.items.indexOf(t);return e!==-1&&this.items.splice(e,1),this}contains(t){return this.items.indexOf(t)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}});var cT,kg,Te,Vr=p(()=>{Qt();yg();Pe();gh();Ft();yt();Pr();ki();wh();Ht();cT=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],kg=class Bg extends ut{constructor(t){super(),this.tick=0,this.uid=$("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=t.type,this.name=t.name,this.config=t;let e=[...cT,...this.config.runners??[]];this._addRunners(...e),this._unsafeEvalCheck()}async init(t={}){let e=t.skipExtensionImports===!0?!0:t.manageImports===!1;await _g(e),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let r in this._systemsHash)t={...this._systemsHash[r].constructor.defaultOptions,...t};t={...Bg.defaultOptions,...t},this._roundPixels=t.roundPixels?1:0;for(let r=0;r<this.runners.init.items.length;r++)await this.runners.init.items[r].init(t);this._initOptions=t}render(t,e){this.tick++;let r=t;if(r instanceof mt&&(r={container:r},e&&(O(rt,"passing a second argument is deprecated, please use render options instead"),r.target=e.renderTexture)),r.target||(r.target=this.view.renderTarget),r.target===this.view.renderTarget&&(this._lastObjectRendered=r.container,r.clearColor??(r.clearColor=this.background.colorRgba),r.clear??(r.clear=this.background.clearBeforeRender)),r.clearColor){let s=Array.isArray(r.clearColor)&&r.clearColor.length===4;r.clearColor=s?r.clearColor:Q.shared.setValue(r.clearColor).toArray()}r.transform||(r.container.updateLocalTransform(),r.transform=r.container.localTransform),r.container.visible&&(r.container.enableRenderGroup(),this.runners.prerender.emit(r),this.runners.renderStart.emit(r),this.runners.render.emit(r),this.runners.renderEnd.emit(r),this.runners.postrender.emit(r))}resize(t,e,r){let s=this.view.resolution;this.view.resize(t,e,r),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),r!==void 0&&r!==s&&this.runners.resolutionChange.emit(r)}clear(t={}){let e=this;t.target||(t.target=e.renderTarget.renderTarget),t.clearColor||(t.clearColor=this.background.colorRgba),t.clear??(t.clear=Et.ALL);let{clear:r,clearColor:s,target:n,mipLevel:o,layer:a}=t;Q.shared.setValue(s??this.background.colorRgba),e.renderTarget.clear(n,r,Q.shared.toArray(),o??0,a??0)}get resolution(){return this.view.resolution}set resolution(t){this.view.resolution=t,this.runners.resolutionChange.emit(t)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...t){t.forEach(e=>{this.runners[e]=new Bi(e)})}_addSystems(t){let e;for(e in t){let r=t[e];this._addSystem(r.value,r.name)}}_addSystem(t,e){let r=new t(this);if(this[e])throw new Error(`Whoops! The name "${e}" is already in use`);this[e]=r,this._systemsHash[e]=r;for(let s in this.runners)this.runners[s].add(r);return this}_addPipes(t,e){let r=e.reduce((s,n)=>(s[n.name]=n.value,s),{});t.forEach(s=>{let n=s.value,o=s.name,a=r[o];this.renderPipes[o]=new n(this,a?new a:null),this.runners.destroy.add(this.renderPipes[o])})}destroy(t=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(t),(t===!0||typeof t=="object"&&t.releaseGlobalResources)&&ye.release(),Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash=null,this.renderPipes=null,this.removeAllListeners()}generateTexture(t){return this.textureGenerator.generateTexture(t)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!la())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};kg.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};Te=kg});function Ii(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 Fg[r]||hT(i,t,r,e)}function hT(i,t,e,r){let s={},n=0;for(let a=0;a<r;a++){let l=a<t?i[a]:U.EMPTY.source;s[n++]=l.source,s[n++]=l.style}let o=new Vt(s);return Fg[e]=o,o}var Fg,ga=p(()=>{mr();gt();Fg={}});function Ch(i,t,e){if(i)for(let r in i){let s=r.toLocaleLowerCase(),n=t[s];if(n){let o=i[r];r==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),e&&n.push(`//----${e}----//`),n.push(o)}else L(`${r} placement hook does not exist in shader`)}}var Ug=p(()=>{ht()});function Eh(i){let t={};return(i.match(uT)?.map(r=>r.replace(/[{()}]/g,""))??[]).forEach(r=>{t[r]=[]}),t}var uT,Dg=p(()=>{"use strict";uT=/\{\{(.*?)\}\}/g});function Lg(i,t){let e,r=/@in\s+([^;]+);/g;for(;(e=r.exec(i))!==null;)t.push(e[1])}function Ph(i,t,e=!1){let r=[];Lg(t,r),i.forEach(a=>{a.header&&Lg(a.header,r)});let s=r;e&&s.sort();let n=s.map((a,l)=>` @location(${l}) ${a},`).join(`
|
|
117
|
+
`});var la,ug=p(()=>{Nr();Ri();hh();ag();cg();hg();la=class extends aa{constructor(){let t=ve.from({vertex:{source:uh,entryPoint:"mainVertex"},fragment:{source:uh,entryPoint:"mainFragment"},name:"passthrough-filter"}),e=be.from({vertex:og,fragment:lg,name:"passthrough-filter"});super({gpuProgram:t,glProgram:e})}}});var tt,ir=p(()=>{"use strict";tt=(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))(tt||{})});var At,xr=p(()=>{Ht();Ft();ir();At=class extends ut{constructor(t){let{data:e,size:r}=t,{usage:s,label:n,shrinkToFit:o}=t;super(),this._gpuData=Object.create(null),this._gcLastUsed=-1,this.autoGarbageCollect=!0,this.uid=$("buffer"),this._resourceType="buffer",this._resourceId=$("resource"),this._touched=0,this._updateID=1,this._updateOffset=0,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,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:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(t){this.setDataWithSize(t,t.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&tt.STATIC)}set static(t){t?this.descriptor.usage|=tt.STATIC:this.descriptor.usage&=~tt.STATIC}setDataWithSize(t,e,r){if(this._updateID++,this._updateSize=e*t.BYTES_PER_ELEMENT,this._updateOffset=0,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=$("resource"),this.emit("change",this));return}r&&this.emit("update",this)}update(t,e){this._updateSize=t??this._updateSize,this._updateOffset=e||0,this._updateID++,this.emit("update",this)}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null),this.destroyed||(this._resourceId=$("resource"),this.emit("change",this))}destroy(){this.destroyed=!0,this.unload(),this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function dh(i,t){if(!(i instanceof At)){let e=t?tt.INDEX:tt.VERTEX;i instanceof Array&&(t?(i=new Uint32Array(i),e=tt.INDEX|tt.COPY_DST):(i=new Float32Array(i),e=tt.VERTEX|tt.COPY_DST)),i=new At({data:i,label:t?"index-mesh-buffer":"vertex-mesh-buffer",usage:e})}return i}var dg=p(()=>{xr();ir()});function fg(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,n=1/0,o=1/0,a=-1/0,l=-1/0,c=s.BYTES_PER_ELEMENT,h=(r.offset||0)/c,u=(r.stride||8)/c;for(let d=h;d<s.length;d+=u){let f=s[d],m=s[d+1];f>a&&(a=f),m>l&&(l=m),f<n&&(n=f),m<o&&(o=m)}return e.minX=n,e.minY=o,e.maxX=a,e.maxY=l,e}var pg=p(()=>{"use strict"});function VS(i){return(i instanceof At||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=dh(i.buffer,!1),i}var ue,zr=p(()=>{Ht();ie();Ft();yt();xr();dg();pg();ue=class extends ut{constructor(t={}){super(),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=$("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new dt,this._boundsDirty=!0,this._vertexCount=0,this._vertexCountDirty=!0;let{attributes:e,indexBuffer:r,topology:s}=t;if(this.buffers=[],this.attributes={},e)for(let n in e)this.addAttribute(n,e[n]);this.instanceCount=t.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this._vertexCountDirty=!0,this.emit("update",this)}getAttribute(t){return this.attributes[t]}getIndex(){return this.indexBuffer}getBuffer(t){return this.getAttribute(t).buffer}get vertexCount(){if(!this._vertexCountDirty)return this._vertexCount;this._vertexCountDirty=!1;let t=this.attributes;for(let e in t){let r=t[e];if(r.instance)continue;let s=r.buffer;return this._vertexCount=s.data.length/(r.stride/4||r.size),this._vertexCount}return this._vertexCount=0,0}getSize(){return O("8.20.0","Geometry.getSize is deprecated, please use Geometry.vertexCount instead."),this.vertexCount}addAttribute(t,e){let r=VS(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,this._vertexCountDirty=!0}addIndex(t){this.indexBuffer=dh(t,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,fg(this,"aPosition",this._bounds)):this._bounds}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null)}destroy(t=!1){this.emit("destroy",this),this.removeAllListeners(),t&&this.buffers.forEach(e=>e.destroy()),this.unload(),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var jS,fh,Ls,mg=p(()=>{P();ug();ot();mr();zr();me();gt();Fr();Ne();ie();Xc();ht();jS=new ue({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])}),fh=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new dt,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.globalFrame={x:0,y:0,width:0,height:0},this.firstEnabledIndex=-1,this.lastEnabledIndex=-1}},Ls=class{constructor(t){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new Ct({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 Vt({}),this.renderer=t}get activeBackTexture(){return this._activeFilterData?.backTexture}push(t){let e=this.renderer,r=t.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=r,s.container=t.container,s.outputRenderSurface=e.renderTarget.renderSurface;let n=e.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(r.every(f=>!f.enabled)){s.skip=!0;return}let l=s.bounds;if(this._calculateFilterArea(t,l),this._calculateFilterBounds(s,e.renderTarget.rootViewPort,a,o,1),s.skip)return;let c=this._getPreviousFilterData(),h=this._findFilterResolution(o),u=0,d=0;c&&(u=c.bounds.minX,d=c.bounds.minY),this._calculateGlobalFrame(s,u,d,h,n.width,n.height),this._setupFilterTextures(s,l,e,c)}generateFilteredTexture({texture:t,filters:e}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=!1,r.filters=e;let s=t.source,n=s.resolution,o=s.antialias;if(e.every(f=>!f.enabled))return r.skip=!0,t;let a=r.bounds;if(a.addRect(t.frame),this._calculateFilterBounds(r,a.rectangle,o,n,0),r.skip)return t;let l=n;this._calculateGlobalFrame(r,0,0,l,s.width,s.height),r.outputRenderSurface=Mt.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=F.EMPTY,r.inputTexture=t,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,!0);let d=r.outputRenderSurface;return d.source.alphaMode="premultiplied-alpha",d}pop(){let t=this.renderer,e=this._popFilterData();e.skip||(t.globalUniforms.pop(),t.renderTarget.finishRenderPass(),this._activeFilterData=e,this._applyFiltersToTexture(e,!1),e.blendRequired&&Mt.returnTexture(e.backTexture),Mt.returnTexture(e.inputTexture))}getBackTexture(t,e,r){let s=t.colorTexture.source._resolution,n=Mt.getOptimalTexture(e.width,e.height,s,!1),o=e.minX,a=e.minY;r&&(o-=r.minX,a-=r.minY),o=Math.floor(o*s),a=Math.floor(a*s);let l=Math.ceil(e.width*s),c=Math.ceil(e.height*s);return this.renderer.renderTarget.copyToTexture(t,n,{x:o,y:a},{width:l,height:c},{x:0,y:0}),n}applyFilter(t,e,r,s){let n=this.renderer,o=this._activeFilterData,l=o.outputRenderSurface===r,c=n.renderTarget.rootRenderTarget.colorTexture.source._resolution,h=this._findFilterResolution(c),u=0,d=0;if(l){let m=this._findPreviousFilterOffset();u=m.x,d=m.y}this._updateFilterUniforms(e,r,o,u,d,h,l,s);let f=t.enabled?t:this._getPassthroughFilter();this._setupBindGroupsAndRender(f,e,n)}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),n=e.worldTransform.copyTo(k.shared),o=e.renderGroup||e.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/e.texture.orig.width,1/e.texture.orig.height),s.translate(e.anchor.x,e.anchor.y),s}destroy(){this._passthroughFilter?.destroy(!0),this._passthroughFilter=null}_getPassthroughFilter(){return this._passthroughFilter??(this._passthroughFilter=new la),this._passthroughFilter}_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:jS,shader:t,state:t._state,topology:"triangle-list"}),r.type===Lt.WEBGL&&r.renderTarget.finishRenderPass()}_setupFilterTextures(t,e,r,s){if(t.backTexture=F.EMPTY,t.inputTexture=Mt.getOptimalTexture(e.width,e.height,t.resolution,t.antialias),t.blendRequired){r.renderTarget.finishRenderPass();let n=r.renderTarget.getRenderTarget(t.outputRenderSurface);t.backTexture=this.getBackTexture(n,e,s?.bounds)}r.renderTarget.bind({target:t.inputTexture,clear:!0}),r.globalUniforms.push({offset:e})}_calculateGlobalFrame(t,e,r,s,n,o){let a=t.globalFrame;a.x=e*s,a.y=r*s,a.width=n*s,a.height=o*s}_updateFilterUniforms(t,e,r,s,n,o,a,l){let c=this._filterGlobalUniforms.uniforms,h=c.uOutputFrame,u=c.uInputSize,d=c.uInputPixel,f=c.uInputClamp,m=c.uGlobalFrame,g=c.uOutputTexture;a?(h[0]=r.bounds.minX-s,h[1]=r.bounds.minY-n):(h[0]=0,h[1]=0),h[2]=t.frame.width,h[3]=t.frame.height,u[0]=t.source.width,u[1]=t.source.height,u[2]=1/u[0],u[3]=1/u[1],d[0]=t.source.pixelWidth,d[1]=t.source.pixelHeight,d[2]=1/d[0],d[3]=1/d[1],f[0]=.5*d[2],f[1]=.5*d[3],f[2]=t.frame.width*u[2]-.5*d[2],f[3]=t.frame.height*u[3]-.5*d[3];let _=this.renderer.renderTarget.rootRenderTarget.colorTexture;m[0]=s*o,m[1]=n*o,m[2]=_.source.width*o,m[3]=_.source.height*o,e instanceof F&&(e.source.resource=null);let x=this.renderer.renderTarget.getRenderTarget(e);this.renderer.renderTarget.bind({target:e,clear:!!l}),e instanceof F?(g[0]=e.frame.width,g[1]=e.frame.height):(g[0]=x.width,g[1]=x.height),g[2]=x.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?ea(t.renderables,e):t.filterEffect.filterArea?(e.clear(),e.addRect(t.filterEffect.filterArea),e.applyMatrix(t.container.worldTransform)):t.container.getFastGlobalBounds(!0,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,n=t.filters,o=t.firstEnabledIndex,a=t.lastEnabledIndex;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(t.backTexture.source,3),o===a)n[o].apply(this,r,t.outputRenderSurface,e);else{let l=t.inputTexture,c=Mt.getOptimalTexture(s.width,s.height,l.source._resolution,!1),h=c;for(let u=o;u<a;u++){let d=n[u];if(!d.enabled)continue;d.apply(this,l,h,!0);let f=l;l=h,h=f}n[a].apply(this,l,t.outputRenderSurface,e),Mt.returnTexture(c)}}_calculateFilterBounds(t,e,r,s,n){let o=this.renderer,a=t.bounds,l=t.filters,c=1/0,h=0,u=!0,d=!1,f=!1,m=!0,g=-1,_=-1;for(let x=0;x<l.length;x++){let b=l[x];if(!b.enabled)continue;if(g===-1&&(g=x),_=x,c=Math.min(c,b.resolution==="inherit"?s:b.resolution),h+=b.padding,b.antialias==="off"?u=!1:b.antialias==="inherit"&&u&&(u=r),b.clipToViewport||(m=!1),!!!(b.compatibleRenderers&o.type)){f=!1;break}if(b.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){L("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),f=!1;break}f=!0,d||(d=b.blendRequired)}if(!f){t.skip=!0;return}if(m&&a.fitBounds(0,e.width/s,0,e.height/s),a.scale(c).ceil().scale(1/c).pad((h|0)*n),!a.isPositive){t.skip=!0;return}t.antialias=u,t.resolution=c,t.blendRequired=d,t.firstEnabledIndex=g,t.lastEnabledIndex=_}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let t,e=this._filterStackIndex-1;for(;e>0&&(e--,t=this._filterStack[e],!!t.skip););return t}_pushFilterData(){let t=this._filterStack[this._filterStackIndex];return t||(t=this._filterStack[this._filterStackIndex]=new fh),this._filterStackIndex++,t}};Ls.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"filter"}});var ph=p(()=>{P();Tm();wm();mg();z.add(Ls,Gs);z.add(Fs)});var XS={};var gg=p(()=>{Bp();Gp();Lp();No();Yo();ph()});var YS={};var _g=p(()=>{No();Yo();ph()});async function bg(i){if(!i)for(let t=0;t<mh.length;t++){let e=mh[t];if(e.value.test()){await e.value.load();return}}}var mh,vg=p(()=>{P();mh=[];z.handleByNamedList(y.Environment,mh)});function ca(){if(typeof Os=="boolean")return Os;try{Os=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{Os=!1}return Os}var Os,gh=p(()=>{"use strict"});function pa(i,t,e=2){let r=t&&t.length,s=r?t[0]*e:i.length;Ws.size&&Ws.clear();let n=Cg(i,0,s,e,!0),o=[];if(!n||n.next===n.prev)return o;let a=0,l=0,c=0;if(r&&(n=QS(i,t,n,e)),i.length>80*e){a=i[0],l=i[1];let h=a,u=l;for(let d=e;d<s;d+=e){let f=i[d],m=i[d+1];f<a&&(a=f),m<l&&(l=m),f>h&&(h=f),m>u&&(u=m)}c=Math.max(h-a,u-l),c=c!==0?32767/c:0}return _h(n,o,a,l,c),o}function Cg(i,t,e,r,s){let n=null;if(s===uT(i,t,e,r)>0)for(let o=t;o<e;o+=r)n=wg(o/r|0,i[o],i[o+1],n);else for(let o=e-r;o>=t;o-=r)n=wg(o/r|0,i[o],i[o+1],n);return n&&Vs(n,n.next)&&(Xs(n),n=n.next),n}function Wr(i,t=i){let e=t===i,r=i,s;do s=!1,r!==r.next&&(Ws.size===0||!Ws.has(r))&&(Vs(r,r.next)||Nt(r.prev,r,r.next)===0)?((e||r===t)&&(t=r.prev),xh=!0,Xs(r),r=r.prev,s=!0):(e||r!==t)&&(r=r.next,s=!e);while(s||r!==t);return t}function _h(i,t,e,r,s){s&&nT(i,e,r,s);let n=i,o=!1;for(;i.prev!==i.next;){let a=i.prev,l=i.next;if(Nt(a,i,l)<0&&(s?qS(i,e,r,s):$S(i))){t.push(a.i,i.i,l.i),Xs(i),i=l,n=l;continue}if(i=l,i===n){if(xh=!1,i=Wr(i),xh){n=i;continue}if(!o){i=KS(i,t),n=i,o=!0;continue}ZS(i,t,e,r,s);break}}}function $S(i){let t=i.prev,e=i,r=i.next,s=t.x,n=e.x,o=r.x,a=t.y,l=e.y,c=r.y,h=Math.min(s,n,o),u=Math.min(a,l,c),d=Math.max(s,n,o),f=Math.max(a,l,c),m=r.next;for(;m!==t;){if(m.x>=h&&m.x<=d&&m.y>=u&&m.y<=f&&!(s===m.x&&a===m.y)&&fa(s,a,n,l,o,c,m.x,m.y)&&Nt(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function qS(i,t,e,r){let s=i.prev,n=i,o=i.next,a=s.x,l=n.x,c=o.x,h=s.y,u=n.y,d=o.y,f=Math.min(a,l,c),m=Math.min(h,u,d),g=Math.max(a,l,c),_=Math.max(h,u,d),x=Sh(f,m,t,e,r),b=Sh(g,_,t,e,r),v=i.prevZ;for(;v&&v.z>=x;){if(v.x>=f&&v.x<=g&&v.y>=m&&v.y<=_&&v!==o&&!(a===v.x&&h===v.y)&&fa(a,h,l,u,c,d,v.x,v.y)&&Nt(v.prev,v,v.next)>=0)return!1;v=v.prevZ}let S=i.nextZ;for(;S&&S.z<=b;){if(S.x>=f&&S.x<=g&&S.y>=m&&S.y<=_&&S!==o&&!(a===S.x&&h===S.y)&&fa(a,h,l,u,c,d,S.x,S.y)&&Nt(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function KS(i,t){let e=i,r=!1;do{let s=e.prev,n=e.next.next;Mg(s,e,e.next,n,!1)&&js(s,n)&&js(n,s)&&(t.push(s.i,e.i,n.i),Xs(e),Xs(e.next),e=i=n,r=!0),e=e.next}while(e!==i);return r?Wr(e):e}function ZS(i,t,e,r,s){let n=i;do{let o=n.next.next;for(;o!==n.prev;){if(n.i!==o.i&&lT(n,o)){let a=Ag(n,o);n=Wr(n,n.next),a=Wr(a,a.next),_h(n,t,e,r,s),_h(a,t,e,r,s);return}o=o.next}n=n.next}while(n!==i)}function QS(i,t,e,r){let s=[];for(let n=0,o=t.length;n<o;n++){let a=t[n]*r,l=n<o-1?t[n+1]*r:i.length,c=Cg(i,a,l,r,!1);c===c.next&&Ws.add(c),s.push(aT(c))}s.sort(JS),eT(i.length/r,t.length),Pg(e,e),yh=!0;for(let n=0;n<s.length;n++)e=tT(s[n],e);return yh=!1,Wr(e)}function JS(i,t){return i.x-t.x||i.y-t.y||(i.next.y-i.y)/(i.next.x-i.x)-(t.next.y-t.y)/(t.next.x-t.x)}function tT(i,t){let e=iT(i,t);if(!e)return t;let r=Ag(e,i),s=r.next;return Pg(e,s.next),Wr(r,r.next),Wr(e,e.next)}function eT(i,t){let e=Math.ceil((i+2*t)/Eg)+t+2;Rt.length<e*4&&(Rt=new Float64Array(e*4)),da=0}function Pg(i,t){let e=i;do{let r=da++;bh[r]=e;let s=1/0,n=1/0,o=-1/0,a=-1/0,l=0;do{let h=e.next;e.z=r,e.x<s&&(s=e.x),e.x>o&&(o=e.x),e.y<n&&(n=e.y),e.y>a&&(a=e.y),h.x<s&&(s=h.x),h.x>o&&(o=h.x),h.y<n&&(n=h.y),h.y>a&&(a=h.y),e=h}while(++l<Eg&&e!==t);vh[r]=e;let c=r*4;Rt[c]=s,Rt[c+1]=n,Rt[c+2]=o,Rt[c+3]=a}while(e!==t)}function rT(i,t){let e=i.z*4;t.x<Rt[e]&&(Rt[e]=t.x),t.y<Rt[e+1]&&(Rt[e+1]=t.y),t.x>Rt[e+2]&&(Rt[e+2]=t.x),t.y>Rt[e+3]&&(Rt[e+3]=t.y)}function Sg(i){let t=vh[i];for(;t.prev.next!==t;)t=t.next;return vh[i]=t,t}function Tg(i){let t=bh[i];for(;t.prev.next!==t;)t=t.next;return bh[i]=t,t}function iT(i,t){let e=t,r=i.x,s=i.y,n=-1/0,o;if(Vs(i,e))return e;for(let d=0,f=0;d<da;d++,f+=4){if(s<Rt[f+1]||s>Rt[f+3]||Rt[f]>r||Rt[f+2]<=n)continue;let m=Sg(d);e=Tg(d);do{if(e.prev.next===e){if(Vs(i,e.next))return e.next;if(s<=e.y&&s>=e.next.y&&e.next.y!==e.y){let g=e.x+(s-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(g<=r&&g>n&&(n=g,o=e.x<e.next.x?e:e.next,g===r))return o}}e=e.next}while(e!==m)}if(!o)return null;let a=o.x,l=o.y,c=Math.min(s,l),h=Math.max(s,l),u=1/0;for(let d=0,f=0;d<da;d++,f+=4){if(Rt[f+2]<a||Rt[f]>r||Rt[f+3]<c||Rt[f+1]>h)continue;let m=Sg(d);e=Tg(d);do{if(e.prev.next===e&&r>=e.x&&e.x>=a&&r!==e.x&&fa(s<l?r:n,s,a,l,s<l?n:r,s,e.x,e.y)){let g=Math.abs(s-e.y)/(r-e.x);(js(e,i)||e.y===s&&e.next.y===s&&e.next.x>r)&&(g<u||g===u&&(e.x>o.x||e.x===o.x&&sT(o,e)))&&(o=e,u=g)}e=e.next}while(e!==m)}return o}function sT(i,t){return Nt(i.prev,i,t.prev)<0&&Nt(t.next,i,i.next)<0}function nT(i,t,e,r){let s=i,n=0;do s.z=Sh(s.x,s.y,t,e,r),Se[n++]=s,s=s.next;while(s!==i);oT(n);let o=null;for(let a=0;a<n;a++){let l=Se[a];l.prevZ=o,o&&(o.nextZ=l),o=l}o.nextZ=null}function oT(i){if(i<=32){for(let t=1;t<i;t++){let e=Se[t],r=e.z,s=t-1;for(;s>=0&&Se[s].z>r;)Se[s+1]=Se[s],s--;Se[s+1]=e}return}Hr.length<i&&(Hr=new Uint32Array(i),zs=new Uint32Array(i),Ns=new Array(i));for(let t=0;t<i;t++)Hr[t]=Se[t].z;ha(i,Se,Hr,Ns,zs,0),ha(i,Ns,zs,Se,Hr,8),ha(i,Se,Hr,Ns,zs,16),ha(i,Ns,zs,Se,Hr,24)}function ha(i,t,e,r,s,n){Hs.fill(0);for(let a=0;a<i;a++)Hs[e[a]>>>n&255]++;let o=0;for(let a=0;a<256;a++){let l=Hs[a];Hs[a]=o,o+=l}for(let a=0;a<i;a++){let l=e[a],c=Hs[l>>>n&255]++;r[c]=t[a],s[c]=l}}function Sh(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 aT(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 fa(i,t,e,r,s,n,o,a){return(s-o)*(t-a)>=(i-o)*(n-a)&&(i-o)*(r-a)>=(e-o)*(t-a)&&(e-o)*(n-a)>=(s-o)*(r-a)}function lT(i,t){let e=Vs(i,t)&&Nt(i.prev,i,i.next)>0&&Nt(t.prev,t,t.next)>0;return i.next.i!==t.i&&(e||js(i,t)&&js(t,i)&&(Nt(i.prev,i,t.prev)!==0||Nt(i,t.prev,t)!==0))&&!cT(i,t)&&(e||hT(i,t))}function Nt(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function Vs(i,t){return i.x===t.x&&i.y===t.y}function Mg(i,t,e,r,s=!0){let n=Nt(i,t,e),o=Nt(i,t,r),a=Nt(e,r,i),l=Nt(e,r,t);return(n>0&&o<0||n<0&&o>0)&&(a>0&&l<0||a<0&&l>0)?!0:s?!!(n===0&&ua(i,e,t)||o===0&&ua(i,r,t)||a===0&&ua(e,i,r)||l===0&&ua(e,t,r)):!1}function ua(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 cT(i,t){let e=Math.min(i.x,t.x),r=Math.max(i.x,t.x),s=Math.min(i.y,t.y),n=Math.max(i.y,t.y),o=i;do{let a=o.next;if(o.x>r&&a.x>r||o.x<e&&a.x<e||o.y>n&&a.y>n||o.y<s&&a.y<s){o=a;continue}if(o.i!==i.i&&a.i!==i.i&&o.i!==t.i&&a.i!==t.i&&Mg(o,a,i,t))return!0;o=a}while(o!==i);return!1}function js(i,t){return Nt(i.prev,i,i.next)<0?Nt(i,t,i.next)>=0&&Nt(i,i.prev,t)>=0:Nt(i,t,i.prev)<0||Nt(i,i.next,t)<0}function hT(i,t){let e=i,r=!1,s=(i.x+t.x)/2,n=(i.y+t.y)/2;do{let o=e.next;e.y>n!=o.y>n&&s<(o.x-e.x)*(n-e.y)/(o.y-e.y)+e.x&&(r=!r),e=o}while(e!==i);return r}function Ag(i,t){let e=Th(i.i,i.x,i.y),r=Th(t.i,t.x,t.y),s=i.next,n=t.prev;return i.next=t,t.prev=i,e.next=s,s.prev=e,r.next=e,e.prev=r,n.next=r,r.prev=n,r}function wg(i,t,e,r){let s=Th(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 Xs(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),yh&&rT(i.prev,i.next)}function Th(i,t,e){return{i,x:t,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function uT(i,t,e,r){let s=0;for(let n=t,o=e-r;n<e;n+=r)s+=(i[o]-i[n])*(i[n+1]+i[o+1]),o=n;return s}var Ws,xh,yh,Eg,Rt,da,bh,vh,Se,Ns,Hr,zs,Hs,Rg=p(()=>{Ws=new Set,xh=!1;yh=!1;Eg=16,Rt=new Float64Array(0),da=0,bh=[],vh=[];Se=[],Ns=[],Hr=new Uint32Array(0),zs=new Uint32Array(0),Hs=new Uint32Array(256)});var kg,Bg=p(()=>{Rg();Ht();kg=pa.default||pa});var Et,Bi=p(()=>{"use strict";Et=(i=>(i[i.NONE=0]="NONE",i[i.COLOR=16384]="COLOR",i[i.STENCIL=1024]="STENCIL",i[i.DEPTH=256]="DEPTH",i[i.COLOR_DEPTH=16640]="COLOR_DEPTH",i[i.COLOR_STENCIL=17408]="COLOR_STENCIL",i[i.DEPTH_STENCIL=1280]="DEPTH_STENCIL",i[i.ALL=17664]="ALL",i))(Et||{})});var Ii,wh=p(()=>{"use strict";Ii=class{constructor(t){this.items=[],this._name=t}emit(t,e,r,s,n,o,a,l){let{name:c,items:h}=this;for(let u=0,d=h.length;u<d;u++)h[u][c](t,e,r,s,n,o,a,l);return this}add(t){return t[this._name]&&(this.remove(t),this.items.push(t)),this}remove(t){let e=this.items.indexOf(t);return e!==-1&&this.items.splice(e,1),this}contains(t){return this.items.indexOf(t)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}}});var dT,Ig,Te,Vr=p(()=>{Qt();vg();Pe();gh();Ft();yt();Pr();Bi();wh();Ht();dT=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],Ig=class Gg extends ut{constructor(t){super(),this.tick=0,this.uid=$("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=t.type,this.name=t.name,this.config=t;let e=[...dT,...this.config.runners??[]];this._addRunners(...e),this._unsafeEvalCheck()}async init(t={}){let e=t.skipExtensionImports===!0?!0:t.manageImports===!1;await bg(e),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let r in this._systemsHash)t={...this._systemsHash[r].constructor.defaultOptions,...t};t={...Gg.defaultOptions,...t},this._roundPixels=t.roundPixels?1:0;for(let r=0;r<this.runners.init.items.length;r++)await this.runners.init.items[r].init(t);this._initOptions=t}render(t,e){this.tick++;let r=t;if(r instanceof mt&&(r={container:r},e&&(O(rt,"passing a second argument is deprecated, please use render options instead"),r.target=e.renderTexture)),r.target||(r.target=this.view.renderTarget),r.target===this.view.renderTarget&&(this._lastObjectRendered=r.container,r.clearColor??(r.clearColor=this.background.colorRgba),r.clear??(r.clear=this.background.clearBeforeRender)),r.clearColor){let s=Array.isArray(r.clearColor)&&r.clearColor.length===4;r.clearColor=s?r.clearColor:Q.shared.setValue(r.clearColor).toArray()}r.transform||(r.container.updateLocalTransform(),r.transform=r.container.localTransform),r.container.visible&&(r.container.enableRenderGroup(),this.runners.prerender.emit(r),this.runners.renderStart.emit(r),this.runners.render.emit(r),this.runners.renderEnd.emit(r),this.runners.postrender.emit(r))}resize(t,e,r){let s=this.view.resolution;this.view.resize(t,e,r),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),r!==void 0&&r!==s&&this.runners.resolutionChange.emit(r)}clear(t={}){let e=this;t.target||(t.target=e.renderTarget.renderTarget),t.clearColor||(t.clearColor=this.background.colorRgba),t.clear??(t.clear=Et.ALL);let{clear:r,clearColor:s,target:n,mipLevel:o,layer:a}=t;Q.shared.setValue(s??this.background.colorRgba),e.renderTarget.clear(n,r,Q.shared.toArray(),o??0,a??0)}get resolution(){return this.view.resolution}set resolution(t){this.view.resolution=t,this.runners.resolutionChange.emit(t)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...t){t.forEach(e=>{this.runners[e]=new Ii(e)})}_addSystems(t){let e;for(e in t){let r=t[e];this._addSystem(r.value,r.name)}}_addSystem(t,e){let r=new t(this);if(this[e])throw new Error(`Whoops! The name "${e}" is already in use`);this[e]=r,this._systemsHash[e]=r;for(let s in this.runners)this.runners[s].add(r);return this}_addPipes(t,e){let r=e.reduce((s,n)=>(s[n.name]=n.value,s),{});t.forEach(s=>{let n=s.value,o=s.name,a=r[o];this.renderPipes[o]=new n(this,a?new a:null),this.runners.destroy.add(this.renderPipes[o])})}destroy(t=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(t),(t===!0||typeof t=="object"&&t.releaseGlobalResources)&&ye.release(),Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash=null,this.renderPipes=null,this.removeAllListeners()}generateTexture(t){return this.textureGenerator.generateTexture(t)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!ca())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};Ig.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};Te=Ig});function Gi(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 Dg[r]||fT(i,t,r,e)}function fT(i,t,e,r){let s={},n=0;for(let a=0;a<r;a++){let l=a<t?i[a]:F.EMPTY.source;s[n++]=l.source,s[n++]=l.style}let o=new Vt(s);return Dg[e]=o,o}var Dg,xa=p(()=>{mr();gt();Dg={}});function Ch(i,t,e){if(i)for(let r in i){let s=r.toLocaleLowerCase(),n=t[s];if(n){let o=i[r];r==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),e&&n.push(`//----${e}----//`),n.push(o)}else L(`${r} placement hook does not exist in shader`)}}var Lg=p(()=>{ht()});function Eh(i){let t={};return(i.match(pT)?.map(r=>r.replace(/[{()}]/g,""))??[]).forEach(r=>{t[r]=[]}),t}var pT,Og=p(()=>{"use strict";pT=/\{\{(.*?)\}\}/g});function Ng(i,t){let e,r=/@in\s+([^;]+);/g;for(;(e=r.exec(i))!==null;)t.push(e[1])}function Ph(i,t,e=!1){let r=[];Ng(t,r),i.forEach(a=>{a.header&&Ng(a.header,r)});let s=r;e&&s.sort();let n=s.map((a,l)=>` @location(${l}) ${a},`).join(`
|
|
118
118
|
`),o=t.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
|
|
119
119
|
${n}
|
|
120
|
-
`),o}var
|
|
121
|
-
`),n=e.sort().map(l=>` var ${
|
|
120
|
+
`),o}var zg=p(()=>{"use strict"});function Hg(i,t){let e,r=/@out\s+([^;]+);/g;for(;(e=r.exec(i))!==null;)t.push(e[1])}function mT(i){let e=/\b(\w+)\s*:/g.exec(i);return e?e[1]:""}function gT(i){let t=/@.*?\s+/g;return i.replace(t,"")}function Wg(i,t){let e=[];Hg(t,e),i.forEach(l=>{l.header&&Hg(l.header,e)});let r=0,s=e.sort().map(l=>l.indexOf("builtin")>-1?l:`@location(${r++}) ${l}`).join(`,
|
|
121
|
+
`),n=e.sort().map(l=>` var ${gT(l)};`).join(`
|
|
122
122
|
`),o=`return VSOutput(
|
|
123
|
-
${e.sort().map(l=>` ${
|
|
123
|
+
${e.sort().map(l=>` ${mT(l)}`).join(`,
|
|
124
124
|
`)});`,a=t.replace(/@out\s+[^;]+;\s*/g,"");return a=a.replace("{{struct}}",`
|
|
125
125
|
${s}
|
|
126
126
|
`),a=a.replace("{{start}}",`
|
|
127
127
|
${n}
|
|
128
128
|
`),a=a.replace("{{return}}",`
|
|
129
129
|
${o}
|
|
130
|
-
`),a}var
|
|
130
|
+
`),a}var Vg=p(()=>{"use strict"});function Mh(i,t){let e=i;for(let r in t){let s=t[r];s.join(`
|
|
131
131
|
`).length?e=e.replace(`{{${r}}}`,`//-----${r} START-----//
|
|
132
132
|
${s.join(`
|
|
133
133
|
`)}
|
|
134
|
-
//----${r} FINISH----//`):e=e.replace(`{{${r}}}`,"")}return e}var
|
|
134
|
+
//----${r} FINISH----//`):e=e.replace(`{{${r}}}`,"")}return e}var jg=p(()=>{"use strict"});function Xg({template:i,bits:t}){let e=$g(i,t);if(_r[e])return _r[e];let{vertex:r,fragment:s}=_T(i,t);return _r[e]=qg(r,s,t),_r[e]}function Yg({template:i,bits:t}){let e=$g(i,t);return _r[e]||(_r[e]=qg(i.vertex,i.fragment,t)),_r[e]}function _T(i,t){let e=t.map(o=>o.vertex).filter(o=>!!o),r=t.map(o=>o.fragment).filter(o=>!!o),s=Ph(e,i.vertex,!0);s=Wg(e,s);let n=Ph(r,i.fragment,!0);return{vertex:s,fragment:n}}function $g(i,t){return t.map(e=>(Ah.has(e)||Ah.set(e,xT++),Ah.get(e))).sort((e,r)=>e-r).join("-")+i.vertex+i.fragment}function qg(i,t,e){let r=Eh(i),s=Eh(t);return e.forEach(n=>{Ch(n.vertex,r,n.name),Ch(n.fragment,s,n.name)}),{vertex:Mh(i,r),fragment:Mh(t,s)}}var _r,Ah,xT,Kg=p(()=>{Lg();Og();zg();Vg();jg();_r=Object.create(null),Ah=new Map,xT=0});var Zg,Qg,Jg,tx,ex=p(()=>{"use strict";Zg=`
|
|
135
135
|
@in aPosition: vec2<f32>;
|
|
136
136
|
@in aUV: vec2<f32>;
|
|
137
137
|
|
|
@@ -175,7 +175,7 @@ ${s.join(`
|
|
|
175
175
|
|
|
176
176
|
{{return}}
|
|
177
177
|
};
|
|
178
|
-
`,
|
|
178
|
+
`,Qg=`
|
|
179
179
|
@in vUV : vec2<f32>;
|
|
180
180
|
@in vColor : vec4<f32>;
|
|
181
181
|
|
|
@@ -198,7 +198,7 @@ ${s.join(`
|
|
|
198
198
|
|
|
199
199
|
return finalColor;
|
|
200
200
|
};
|
|
201
|
-
`,
|
|
201
|
+
`,Jg=`
|
|
202
202
|
in vec2 aPosition;
|
|
203
203
|
in vec2 aUV;
|
|
204
204
|
|
|
@@ -234,7 +234,7 @@ ${s.join(`
|
|
|
234
234
|
|
|
235
235
|
{{end}}
|
|
236
236
|
}
|
|
237
|
-
`,
|
|
237
|
+
`,tx=`
|
|
238
238
|
|
|
239
239
|
in vec4 vColor;
|
|
240
240
|
in vec2 vUV;
|
|
@@ -255,7 +255,7 @@ ${s.join(`
|
|
|
255
255
|
|
|
256
256
|
{{end}}
|
|
257
257
|
}
|
|
258
|
-
`});var
|
|
258
|
+
`});var rx,ix,sx=p(()=>{"use strict";rx={name:"global-uniforms-bit",vertex:{header:`
|
|
259
259
|
struct GlobalUniforms {
|
|
260
260
|
uProjectionMatrix:mat3x3<f32>,
|
|
261
261
|
uWorldTransformMatrix:mat3x3<f32>,
|
|
@@ -264,22 +264,22 @@ ${s.join(`
|
|
|
264
264
|
}
|
|
265
265
|
|
|
266
266
|
@group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;
|
|
267
|
-
`}},
|
|
267
|
+
`}},ix={name:"global-uniforms-bit",vertex:{header:`
|
|
268
268
|
uniform mat3 uProjectionMatrix;
|
|
269
269
|
uniform mat3 uWorldTransformMatrix;
|
|
270
270
|
uniform vec4 uWorldColorAlpha;
|
|
271
271
|
uniform vec2 uResolution;
|
|
272
|
-
`}}});function
|
|
272
|
+
`}}});function Fi({bits:i,name:t}){let e=Xg({template:{fragment:Qg,vertex:Zg},bits:[rx,...i]});return ve.from({name:t,vertex:{source:e.vertex,entryPoint:"main"},fragment:{source:e.fragment,entryPoint:"main"}})}function Ui({bits:i,name:t}){return new be({name:t,...Yg({template:{vertex:Jg,fragment:tx},bits:[ix,...i]})})}var Di=p(()=>{Nr();Ri();Kg();ex();sx()});var _a,ya,ba=p(()=>{"use strict";_a={name:"color-bit",vertex:{header:`
|
|
273
273
|
@in aColor: vec4<f32>;
|
|
274
274
|
`,main:`
|
|
275
275
|
vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
|
|
276
|
-
`}},
|
|
276
|
+
`}},ya={name:"color-bit",vertex:{header:`
|
|
277
277
|
in vec4 aColor;
|
|
278
278
|
`,main:`
|
|
279
279
|
vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
|
|
280
|
-
`}}});function
|
|
281
|
-
`)}function
|
|
282
|
-
`)}function
|
|
280
|
+
`}}});function yT(i){let t=[];if(i===1)t.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),t.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let e=0;for(let r=0;r<i;r++)t.push(`@group(1) @binding(${e++}) var textureSource${r+1}: texture_2d<f32>;`),t.push(`@group(1) @binding(${e++}) var textureSampler${r+1}: sampler;`)}return t.join(`
|
|
281
|
+
`)}function bT(i){let t=[];if(i===1)t.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{t.push("switch vTextureId {");for(let e=0;e<i;e++)e===i-1?t.push(" default:{"):t.push(` case ${e}:{`),t.push(` outColor = textureSampleGrad(textureSource${e+1}, textureSampler${e+1}, vUV, uvDx, uvDy);`),t.push(" break;}");t.push("}")}return t.join(`
|
|
282
|
+
`)}function va(i){return Rh[i]||(Rh[i]={name:"texture-batch-bit",vertex:{header:`
|
|
283
283
|
@in aTextureIdAndRound: vec2<u32>;
|
|
284
284
|
@out @interpolate(flat) vTextureId : u32;
|
|
285
285
|
`,main:`
|
|
@@ -292,14 +292,14 @@ ${s.join(`
|
|
|
292
292
|
`},fragment:{header:`
|
|
293
293
|
@in @interpolate(flat) vTextureId: u32;
|
|
294
294
|
|
|
295
|
-
${
|
|
295
|
+
${yT(i)}
|
|
296
296
|
`,main:`
|
|
297
297
|
var uvDx = dpdx(vUV);
|
|
298
298
|
var uvDy = dpdy(vUV);
|
|
299
299
|
|
|
300
|
-
${
|
|
301
|
-
`}}),Rh[i]}function
|
|
302
|
-
`)}function
|
|
300
|
+
${bT(i)}
|
|
301
|
+
`}}),Rh[i]}function vT(i){let t=[];for(let e=0;e<i;e++)e>0&&t.push("else"),e<i-1&&t.push(`if(vTextureId < ${e}.5)`),t.push("{"),t.push(` outColor = texture(uTextures[${e}], vUV);`),t.push("}");return t.join(`
|
|
302
|
+
`)}function Sa(i){return kh[i]||(kh[i]={name:"texture-batch-bit",vertex:{header:`
|
|
303
303
|
in vec2 aTextureIdAndRound;
|
|
304
304
|
out float vTextureId;
|
|
305
305
|
|
|
@@ -317,8 +317,8 @@ ${s.join(`
|
|
|
317
317
|
|
|
318
318
|
`,main:`
|
|
319
319
|
|
|
320
|
-
${
|
|
321
|
-
`}}),kh[i]}var Rh,kh,
|
|
320
|
+
${vT(i)}
|
|
321
|
+
`}}),kh[i]}var Rh,kh,Ta=p(()=>{"use strict";Rh={};kh={}});var Ys,nx,wa,$s=p(()=>{"use strict";Ys={name:"local-uniform-bit",vertex:{header:`
|
|
322
322
|
|
|
323
323
|
struct LocalUniforms {
|
|
324
324
|
uTransformMatrix:mat3x3<f32>,
|
|
@@ -335,7 +335,7 @@ ${s.join(`
|
|
|
335
335
|
{
|
|
336
336
|
vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
|
|
337
337
|
}
|
|
338
|
-
`}},
|
|
338
|
+
`}},nx={...Ys,vertex:{...Ys.vertex,header:Ys.vertex.header.replace("group(1)","group(2)")}},wa={name:"local-uniform-bit",vertex:{header:`
|
|
339
339
|
|
|
340
340
|
uniform mat3 uTransformMatrix;
|
|
341
341
|
uniform vec4 uColor;
|
|
@@ -348,17 +348,17 @@ ${s.join(`
|
|
|
348
348
|
{
|
|
349
349
|
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
350
350
|
}
|
|
351
|
-
`}}});var
|
|
351
|
+
`}}});var Li,Oi,Ni=p(()=>{"use strict";Li={name:"round-pixels-bit",vertex:{header:`
|
|
352
352
|
fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
|
|
353
353
|
{
|
|
354
354
|
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
355
355
|
}
|
|
356
|
-
`}},
|
|
356
|
+
`}},Oi={name:"round-pixels-bit",vertex:{header:`
|
|
357
357
|
vec2 roundPixels(vec2 position, vec2 targetSize)
|
|
358
358
|
{
|
|
359
359
|
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
360
360
|
}
|
|
361
|
-
`}}});var
|
|
361
|
+
`}}});var qs,ox=p(()=>{P();ot();xa();Di();ba();Ta();$s();Ni();gr();me();qs=class{constructor(){this._maxTextures=0}contextChange(t){let e=new Ct({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=t.limits.maxBatchableTextures;let r=Fi({name:"graphics",bits:[_a,va(this._maxTextures),nx,Li]});this.shader=new te({gpuProgram:r,resources:{localUniforms:e}})}execute(t,e){let r=e.context,s=r.customShader||this.shader,n=t.renderer,o=n.graphicsContext,{batcher:a,instructions:l}=o.getContextRenderData(r),c=n.encoder;c.setGeometry(a.geometry,s.gpuProgram);let h=n.globalUniforms.bindGroup;c.setBindGroup(0,h,s.gpuProgram);let u=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);c.setBindGroup(2,u,s.gpuProgram);let d=l.instructions,f=null;for(let m=0;m<l.instructionSize;m++){let g=d[m];if(g.topology!==f&&(f=g.topology,c.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,t.state,g.topology,s._overrides)),s.groups[1]=g.bindGroup,!g.gpuBindGroup){let _=g.textures;g.bindGroup=Gi(_.textures,_.count,this._maxTextures),g.gpuBindGroup=n.bindGroup.getBindGroup(g.bindGroup,s.gpuProgram,1)}c.setBindGroup(1,g.bindGroup,s.gpuProgram),c.renderPassEncoder.drawIndexed(g.size,1,g.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};qs.extension={type:[y.WebGPUPipesAdaptor],name:"graphics"}});var ax,lx,Bh=p(()=>{"use strict";ax={name:"texture-bit",vertex:{header:`
|
|
362
362
|
|
|
363
363
|
struct TextureUniforms {
|
|
364
364
|
uTextureMatrix:mat3x3<f32>,
|
|
@@ -374,7 +374,7 @@ ${s.join(`
|
|
|
374
374
|
|
|
375
375
|
`,main:`
|
|
376
376
|
outColor = textureSample(uTexture, uSampler, vUV);
|
|
377
|
-
`}},
|
|
377
|
+
`}},lx={name:"texture-bit",vertex:{header:`
|
|
378
378
|
uniform mat3 uTextureMatrix;
|
|
379
379
|
`,main:`
|
|
380
380
|
uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
|
|
@@ -384,9 +384,9 @@ ${s.join(`
|
|
|
384
384
|
|
|
385
385
|
`,main:`
|
|
386
386
|
outColor = texture(uTexture, vUV);
|
|
387
|
-
`}}});var qs,ax=p(()=>{P();ot();Ui();Ys();Oi();Bh();gr();gt();ht();qs=class{init(){let t=Gi({name:"mesh",bits:[Xs,nx,Di]});this._shader=new te({gpuProgram:t,resources:{uTexture:U.EMPTY._source,uSampler:U.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(t,e){let r=t.renderer,s=e._shader;if(!s)s=this._shader,s.groups[2]=r.texture.getTextureBindGroup(e.texture);else if(!s.gpuProgram){L("Mesh shader has no gpuProgram",e.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=r.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=t.localUniforms;s.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}r.encoder.draw({geometry:e._geometry,shader:s,state:e.state})}destroy(){this._shader.destroy(!0),this._shader=null}};qs.extension={type:[y.WebGPUPipesAdaptor],name:"mesh"}});var wa,Ks,lx=p(()=>{P();Be();ga();wa=Ot.for2d(),Ks=class{start(t,e,r){let s=t.renderer,n=s.encoder,o=r.gpuProgram;this._shader=r,this._geometry=e,n.setGeometry(e,o),wa.blendMode="normal",s.pipeline.getPipeline(e,o,wa,void 0,r._overrides);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(t,e){let r=this._shader.gpuProgram,s=t.renderer,n=s.encoder;if(!e.bindGroup){let l=e.textures;e.bindGroup=Ii(l.textures,l.count,s.limits.maxBatchableTextures)}wa.blendMode=e.blendMode;let o=s.bindGroup.getBindGroup(e.bindGroup,r,1),a=s.pipeline.getPipeline(this._geometry,r,wa,e.topology,this._shader._overrides);e.bindGroup._touch(s.gc.now,s.tick),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(e.size,1,e.start)}};Ks.extension={type:[y.WebGPUPipesAdaptor],name:"batch"}});var jr,Ih=p(()=>{P();jr=class{constructor(t){this._renderer=t}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(t,e){this._renderer.renderPipes.batch.break(e),e.add(t)}execute(t){t.isRenderable&&t.render(this._renderer)}destroy(){this._renderer=null}};jr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"customRender"}});var yr,Ca=p(()=>{"use strict";yr=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){this.reset()}}});function Zs(i,t){let e=i.instructionSet,r=e.instructions;for(let s=0;s<e.instructionSize;s++){let n=r[s];t[n.renderPipeId].execute(n)}}var Gh=p(()=>{"use strict"});var Xr,Fh=p(()=>{P();ot();Ke();Ca();Gh();Xr=class{constructor(t){this._renderer=t}addRenderGroup(t,e){t.isCachedAsTexture?this._addRenderableCacheAsTexture(t,e):this._addRenderableDirect(t,e)}execute(t){t.isRenderable&&(t.isCachedAsTexture?this._executeCacheAsTexture(t):this._executeDirect(t))}destroy(){this._renderer=null}_addRenderableDirect(t,e){this._renderer.renderPipes.batch.break(e),t._batchableRenderGroup&&(bt.return(t._batchableRenderGroup),t._batchableRenderGroup=null),e.add(t)}_addRenderableCacheAsTexture(t,e){let r=t._batchableRenderGroup??(t._batchableRenderGroup=bt.get(yr));r.renderable=t.root,r.transform=t.root.relativeGroupTransform,r.texture=t.texture,r.bounds=t._textureBounds,e.add(t),this._renderer.renderPipes.blendMode.pushBlendMode(t,t.root.groupBlendMode,e),this._renderer.renderPipes.batch.addToBatch(r,e),this._renderer.renderPipes.blendMode.popBlendMode(e)}_executeCacheAsTexture(t){if(t.textureNeedsUpdate){t.textureNeedsUpdate=!1;let e=new k().translate(-t._textureBounds.x,-t._textureBounds.y);this._renderer.renderTarget.push({target:t.texture,clear:!0,frame:t.texture.frame}),this._renderer.globalUniforms.push({worldTransformMatrix:e,worldColor:4294967295,offset:{x:0,y:0}}),Zs(t,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}t._batchableRenderGroup._batcher.updateElement(t._batchableRenderGroup),t._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(t){this._renderer.globalUniforms.push({worldTransformMatrix:t.inverseParentTextureTransform,worldColor:t.worldColorAlpha}),Zs(t,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};Xr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"renderGroup"}});function Qs(i,t){t||(t=0);for(let e=t;e<i.length&&i[e];e++)i[e]=null}var Uh=p(()=>{"use strict"});function Dh(i,t=!1){bT(i);let e=i.childrenToUpdate,r=i.updateTick++;for(let s in e){let n=Number(s),o=e[s],a=o.list,l=o.index;for(let c=0;c<l;c++){let h=a[c];h.parentRenderGroup===i&&h.relativeRenderGroupDepth===n&&ux(h,r,0)}Qs(a,l),o.index=0}if(t)for(let s=0;s<i.renderGroupChildren.length;s++)Dh(i.renderGroupChildren[s],t)}function bT(i){let t=i.root,e;if(i.renderGroupParent){let r=i.renderGroupParent;i.worldTransform.appendFrom(t.relativeGroupTransform,r.worldTransform),i.worldColor=xi(t.groupColor,r.worldColor),e=t.groupAlpha*r.worldAlpha}else i.worldTransform.copyFrom(t.localTransform),i.worldColor=t.localColor,e=t.localAlpha;e=e<0?0:e>1?1:e,i.worldAlpha=e,i.worldColorAlpha=i.worldColor+((e*255|0)<<24)}function ux(i,t,e){if(t===i.updateTick)return;i.updateTick=t,i.didChange=!1;let r=i.localTransform;i.updateLocalTransform();let s=i.parent;if(s&&!s.renderGroup?(e|=i._updateFlags,i.relativeGroupTransform.appendFrom(r,s.relativeGroupTransform),e&cx&&hx(i,s,e)):(e=i._updateFlags,i.relativeGroupTransform.copyFrom(r),e&cx&&hx(i,yT,e)),!i.renderGroup){let n=i.children,o=n.length;for(let c=0;c<o;c++)ux(n[c],t,e);let a=i.parentRenderGroup,l=i;l.renderPipeId&&!a.structureDidChange&&a.updateRenderable(l)}}function hx(i,t,e){if(e&bi){i.groupColor=xi(i.localColor,t.groupColor);let r=i.localAlpha*t.groupAlpha;r=r<0?0:r>1?1:r,i.groupAlpha=r,i.groupColorAlpha=i.groupColor+((r*255|0)<<24)}e&vs&&(i.groupBlendMode=i.localBlendMode==="inherit"?t.groupBlendMode:i.localBlendMode),e&Dr&&(i.globalDisplayStatus=i.localDisplayStatus&t.globalDisplayStatus),i._updateFlags=0}var yT,cx,dx=p(()=>{Pe();Uh();nc();yT=new mt,cx=Dr|bi|vs});function fx(i,t){let{list:e}=i.childrenRenderablesToUpdate,r=!1;for(let s=0;s<i.childrenRenderablesToUpdate.index;s++){let n=e[s];if(r=t[n.renderPipeId].validateRenderable(n),r)break}return i.structureDidChange=r,r}var px=p(()=>{"use strict"});var vT,Js,mx=p(()=>{P();ot();Fr();Ar();ie();Uh();Gh();dx();px();vT=new k,Js=class{constructor(t){this._renderer=t}render({container:t,transform:e}){let r=t.parent,s=t.renderGroup.renderGroupParent;t.parent=null,t.renderGroup.renderGroupParent=null;let n=this._renderer,o=vT;e&&(o.copyFrom(t.renderGroup.localTransform),t.renderGroup.localTransform.copyFrom(e));let a=n.renderPipes;this._updateCachedRenderGroups(t.renderGroup,null),this._updateRenderGroups(t.renderGroup),n.globalUniforms.start({worldTransformMatrix:e?t.renderGroup.localTransform:t.renderGroup.worldTransform,worldColor:t.renderGroup.worldColorAlpha}),Zs(t.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),e&&t.renderGroup.localTransform.copyFrom(o),t.parent=r,t.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(t,e){if(t._parentCacheAsTextureRenderGroup=e,t.isCachedAsTexture){if(!t.textureNeedsUpdate)return;e=t}for(let r=t.renderGroupChildren.length-1;r>=0;r--)this._updateCachedRenderGroups(t.renderGroupChildren[r],e);if(t.invalidateMatrices(),t.isCachedAsTexture){if(t.textureNeedsUpdate){let r=t.root.getLocalBounds(),s=this._renderer,n=t.textureOptions.resolution||s.view.resolution,o=t.textureOptions.antialias??s.view.antialias,a=t.textureOptions.scaleMode??"linear",l=t.texture;r.ceil(),t.texture&&Mt.returnTexture(t.texture,!0);let c=Mt.getOptimalTexture(r.width,r.height,n,o);c._source.style=new ce({scaleMode:a}),t.texture=c,t._textureBounds||(t._textureBounds=new dt),t._textureBounds.copyFrom(r),l!==t.texture&&t.renderGroupParent&&(t.renderGroupParent.structureDidChange=!0)}}else t.texture&&(Mt.returnTexture(t.texture,!0),t.texture=null)}_updateRenderGroups(t){let e=this._renderer,r=e.renderPipes;if(t.runOnRender(e),t.instructionSet.renderPipes=r,t.structureDidChange?Qs(t.childrenRenderablesToUpdate.list,0):fx(t,r),Dh(t),t.structureDidChange?(t.structureDidChange=!1,this._buildInstructions(t,e)):this._updateRenderables(t),t.childrenRenderablesToUpdate.index=0,e.renderPipes.batch.upload(t.instructionSet),!(t.isCachedAsTexture&&!t.textureNeedsUpdate))for(let s=0;s<t.renderGroupChildren.length;s++)this._updateRenderGroups(t.renderGroupChildren[s])}_updateRenderables(t){let{list:e,index:r}=t.childrenRenderablesToUpdate;for(let s=0;s<r;s++){let n=e[s];n.didViewUpdate&&t.updateRenderable(n)}Qs(e,r)}_buildInstructions(t,e){let r=t.root,s=t.instructionSet;s.reset();let n=e.renderPipes?e:e.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),r.sortableChildren&&r.sortChildren(),r.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};Js.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"renderGroup"}});var Yr,Lh=p(()=>{P();Ca();Yr=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.bounds=t.visualBounds,e.texture=t._texture}_getGpuSprite(t){return t._gpuData[this._renderer.uid]||this._initGPUSprite(t)}_initGPUSprite(t){let e=new yr;return e.renderable=t,e.transform=t.groupTransform,e.texture=t._texture,e.bounds=t.visualBounds,e.roundPixels=this._renderer._roundPixels|t._roundPixels,t._gpuData[this._renderer.uid]=e,e}destroy(){this._renderer=null}};Yr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"sprite"}});var Ni,Oh=p(()=>{Ht();Ni="8.20.0"});var tn,en,Nh=p(()=>{P();Oh();tn=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,Ni)}static destroy(){}};tn.extension=y.Application;en=class{constructor(t){this._renderer=t}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,Ni)}destroy(){this._renderer=null}};en.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"initHook",priority:-10}});var ze,zh=p(()=>{"use strict";ze=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.uint32View=null,this.float32View=null,this.uint16View=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._int32View=null,this._float64Array=null,this._bigUint64Array=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 rn(i,t,e,r){if(e??(e=0),r??(r=Math.min(i.byteLength-e,t.byteLength)),!(e&7)&&!(r&7)){let s=r/8;new Float64Array(t,0,s).set(new Float64Array(i,e,s))}else if(!(e&3)&&!(r&3)){let s=r/4;new Float32Array(t,0,s).set(new Float32Array(i,e,s))}else new Uint8Array(t).set(new Uint8Array(i,e,r))}var Hh=p(()=>{"use strict"});var gx,vt,$r=p(()=>{"use strict";gx={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},vt=(i=>(i[i.DISABLED=0]="DISABLED",i[i.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",i[i.MASK_ACTIVE=2]="MASK_ACTIVE",i[i.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",i[i.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",i[i.NONE=5]="NONE",i))(vt||{})});function sn(i,t){return t.alphaMode==="no-premultiply-alpha"&&gx[i]||i}var Wh=p(()=>{$r()});function TT(i){let t="";for(let e=0;e<i;++e)e>0&&(t+=`
|
|
388
|
-
else `),e<i-1&&(t+=`if(test == ${e}.0){}`);return t}function
|
|
389
|
-
`)});function
|
|
387
|
+
`}}});var Ks,cx=p(()=>{P();ot();Di();$s();Ni();Bh();gr();gt();ht();Ks=class{init(){let t=Fi({name:"mesh",bits:[Ys,ax,Li]});this._shader=new te({gpuProgram:t,resources:{uTexture:F.EMPTY._source,uSampler:F.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(t,e){let r=t.renderer,s=e._shader;if(!s)s=this._shader,s.groups[2]=r.texture.getTextureBindGroup(e.texture);else if(!s.gpuProgram){L("Mesh shader has no gpuProgram",e.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=r.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=t.localUniforms;s.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}r.encoder.draw({geometry:e._geometry,shader:s,state:e.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Ks.extension={type:[y.WebGPUPipesAdaptor],name:"mesh"}});var Ca,Zs,hx=p(()=>{P();Be();xa();Ca=Ot.for2d(),Zs=class{start(t,e,r){let s=t.renderer,n=s.encoder,o=r.gpuProgram;this._shader=r,this._geometry=e,n.setGeometry(e,o),Ca.blendMode="normal",s.pipeline.getPipeline(e,o,Ca,void 0,r._overrides);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(t,e){let r=this._shader.gpuProgram,s=t.renderer,n=s.encoder;if(!e.bindGroup){let l=e.textures;e.bindGroup=Gi(l.textures,l.count,s.limits.maxBatchableTextures)}Ca.blendMode=e.blendMode;let o=s.bindGroup.getBindGroup(e.bindGroup,r,1),a=s.pipeline.getPipeline(this._geometry,r,Ca,e.topology,this._shader._overrides);e.bindGroup._touch(s.gc.now,s.tick),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(e.size,1,e.start)}};Zs.extension={type:[y.WebGPUPipesAdaptor],name:"batch"}});var jr,Ih=p(()=>{P();jr=class{constructor(t){this._renderer=t}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(t,e){this._renderer.renderPipes.batch.break(e),e.add(t)}execute(t){t.isRenderable&&t.render(this._renderer)}destroy(){this._renderer=null}};jr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"customRender"}});var yr,Ea=p(()=>{"use strict";yr=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){this.reset()}}});function Qs(i,t){let e=i.instructionSet,r=e.instructions;for(let s=0;s<e.instructionSize;s++){let n=r[s];t[n.renderPipeId].execute(n)}}var Gh=p(()=>{"use strict"});var Xr,Fh=p(()=>{P();ot();Ke();Ea();Gh();Xr=class{constructor(t){this._renderer=t}addRenderGroup(t,e){t.isCachedAsTexture?this._addRenderableCacheAsTexture(t,e):this._addRenderableDirect(t,e)}execute(t){t.isRenderable&&(t.isCachedAsTexture?this._executeCacheAsTexture(t):this._executeDirect(t))}destroy(){this._renderer=null}_addRenderableDirect(t,e){this._renderer.renderPipes.batch.break(e),t._batchableRenderGroup&&(bt.return(t._batchableRenderGroup),t._batchableRenderGroup=null),e.add(t)}_addRenderableCacheAsTexture(t,e){let r=t._batchableRenderGroup??(t._batchableRenderGroup=bt.get(yr));r.renderable=t.root,r.transform=t.root.relativeGroupTransform,r.texture=t.texture,r.bounds=t._textureBounds,e.add(t),this._renderer.renderPipes.blendMode.pushBlendMode(t,t.root.groupBlendMode,e),this._renderer.renderPipes.batch.addToBatch(r,e),this._renderer.renderPipes.blendMode.popBlendMode(e)}_executeCacheAsTexture(t){if(t.textureNeedsUpdate){t.textureNeedsUpdate=!1;let e=new k().translate(-t._textureBounds.x,-t._textureBounds.y);this._renderer.renderTarget.push({target:t.texture,clear:!0,frame:t.texture.frame}),this._renderer.globalUniforms.push({worldTransformMatrix:e,worldColor:4294967295,offset:{x:0,y:0}}),Qs(t,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}t._batchableRenderGroup._batcher.updateElement(t._batchableRenderGroup),t._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(t){this._renderer.globalUniforms.push({worldTransformMatrix:t.inverseParentTextureTransform,worldColor:t.worldColorAlpha}),Qs(t,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};Xr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"renderGroup"}});function Js(i,t){t||(t=0);for(let e=t;e<i.length&&i[e];e++)i[e]=null}var Uh=p(()=>{"use strict"});function Dh(i,t=!1){TT(i);let e=i.childrenToUpdate,r=i.updateTick++;for(let s in e){let n=Number(s),o=e[s],a=o.list,l=o.index;for(let c=0;c<l;c++){let h=a[c];h.parentRenderGroup===i&&h.relativeRenderGroupDepth===n&&fx(h,r,0)}Js(a,l),o.index=0}if(t)for(let s=0;s<i.renderGroupChildren.length;s++)Dh(i.renderGroupChildren[s],t)}function TT(i){let t=i.root,e;if(i.renderGroupParent){let r=i.renderGroupParent;i.worldTransform.appendFrom(t.relativeGroupTransform,r.worldTransform),i.worldColor=_i(t.groupColor,r.worldColor),e=t.groupAlpha*r.worldAlpha}else i.worldTransform.copyFrom(t.localTransform),i.worldColor=t.localColor,e=t.localAlpha;e=e<0?0:e>1?1:e,i.worldAlpha=e,i.worldColorAlpha=i.worldColor+((e*255|0)<<24)}function fx(i,t,e){if(t===i.updateTick)return;i.updateTick=t,i.didChange=!1;let r=i.localTransform;i.updateLocalTransform();let s=i.parent;if(s&&!s.renderGroup?(e|=i._updateFlags,i.relativeGroupTransform.appendFrom(r,s.relativeGroupTransform),e&ux&&dx(i,s,e)):(e=i._updateFlags,i.relativeGroupTransform.copyFrom(r),e&ux&&dx(i,ST,e)),!i.renderGroup){let n=i.children,o=n.length;for(let c=0;c<o;c++)fx(n[c],t,e);let a=i.parentRenderGroup,l=i;l.renderPipeId&&!a.structureDidChange&&a.updateRenderable(l)}}function dx(i,t,e){if(e&vi){i.groupColor=_i(i.localColor,t.groupColor);let r=i.localAlpha*t.groupAlpha;r=r<0?0:r>1?1:r,i.groupAlpha=r,i.groupColorAlpha=i.groupColor+((r*255|0)<<24)}e&Ss&&(i.groupBlendMode=i.localBlendMode==="inherit"?t.groupBlendMode:i.localBlendMode),e&Dr&&(i.globalDisplayStatus=i.localDisplayStatus&t.globalDisplayStatus),i._updateFlags=0}var ST,ux,px=p(()=>{Pe();Uh();nc();ST=new mt,ux=Dr|vi|Ss});function mx(i,t){let{list:e}=i.childrenRenderablesToUpdate,r=!1;for(let s=0;s<i.childrenRenderablesToUpdate.index;s++){let n=e[s];if(r=t[n.renderPipeId].validateRenderable(n),r)break}return i.structureDidChange=r,r}var gx=p(()=>{"use strict"});var wT,tn,xx=p(()=>{P();ot();Fr();Ar();ie();Uh();Gh();px();gx();wT=new k,tn=class{constructor(t){this._renderer=t}render({container:t,transform:e}){let r=t.parent,s=t.renderGroup.renderGroupParent;t.parent=null,t.renderGroup.renderGroupParent=null;let n=this._renderer,o=wT;e&&(o.copyFrom(t.renderGroup.localTransform),t.renderGroup.localTransform.copyFrom(e));let a=n.renderPipes;this._updateCachedRenderGroups(t.renderGroup,null),this._updateRenderGroups(t.renderGroup),n.globalUniforms.start({worldTransformMatrix:e?t.renderGroup.localTransform:t.renderGroup.worldTransform,worldColor:t.renderGroup.worldColorAlpha}),Qs(t.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),e&&t.renderGroup.localTransform.copyFrom(o),t.parent=r,t.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(t,e){if(t._parentCacheAsTextureRenderGroup=e,t.isCachedAsTexture){if(!t.textureNeedsUpdate)return;e=t}for(let r=t.renderGroupChildren.length-1;r>=0;r--)this._updateCachedRenderGroups(t.renderGroupChildren[r],e);if(t.invalidateMatrices(),t.isCachedAsTexture){if(t.textureNeedsUpdate){let r=t.root.getLocalBounds(),s=this._renderer,n=t.textureOptions.resolution||s.view.resolution,o=t.textureOptions.antialias??s.view.antialias,a=t.textureOptions.scaleMode??"linear",l=t.texture;r.ceil(),t.texture&&Mt.returnTexture(t.texture,!0);let c=Mt.getOptimalTexture(r.width,r.height,n,o);c._source.style=new ce({scaleMode:a}),t.texture=c,t._textureBounds||(t._textureBounds=new dt),t._textureBounds.copyFrom(r),l!==t.texture&&t.renderGroupParent&&(t.renderGroupParent.structureDidChange=!0)}}else t.texture&&(Mt.returnTexture(t.texture,!0),t.texture=null)}_updateRenderGroups(t){let e=this._renderer,r=e.renderPipes;if(t.runOnRender(e),t.instructionSet.renderPipes=r,t.structureDidChange?Js(t.childrenRenderablesToUpdate.list,0):mx(t,r),Dh(t),t.structureDidChange?(t.structureDidChange=!1,this._buildInstructions(t,e)):this._updateRenderables(t),t.childrenRenderablesToUpdate.index=0,e.renderPipes.batch.upload(t.instructionSet),!(t.isCachedAsTexture&&!t.textureNeedsUpdate))for(let s=0;s<t.renderGroupChildren.length;s++)this._updateRenderGroups(t.renderGroupChildren[s])}_updateRenderables(t){let{list:e,index:r}=t.childrenRenderablesToUpdate;for(let s=0;s<r;s++){let n=e[s];n.didViewUpdate&&t.updateRenderable(n)}Js(e,r)}_buildInstructions(t,e){let r=t.root,s=t.instructionSet;s.reset();let n=e.renderPipes?e:e.batch.renderer,o=n.renderPipes;o.batch.buildStart(s),o.blendMode.buildStart(),o.colorMask.buildStart(),r.sortableChildren&&r.sortChildren(),r.collectRenderablesWithEffects(s,n,null),o.batch.buildEnd(s),o.blendMode.buildEnd(s)}};tn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"renderGroup"}});var Yr,Lh=p(()=>{P();Ea();Yr=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.bounds=t.visualBounds,e.texture=t._texture}_getGpuSprite(t){return t._gpuData[this._renderer.uid]||this._initGPUSprite(t)}_initGPUSprite(t){let e=new yr;return e.renderable=t,e.transform=t.groupTransform,e.texture=t._texture,e.bounds=t.visualBounds,e.roundPixels=this._renderer._roundPixels|t._roundPixels,t._gpuData[this._renderer.uid]=e,e}destroy(){this._renderer=null}};Yr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"sprite"}});var zi,Oh=p(()=>{Ht();zi="8.20.0"});var en,rn,Nh=p(()=>{P();Oh();en=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,zi)}static destroy(){}};en.extension=y.Application;rn=class{constructor(t){this._renderer=t}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,zi)}destroy(){this._renderer=null}};rn.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"initHook",priority:-10}});var ze,zh=p(()=>{"use strict";ze=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.uint32View=null,this.float32View=null,this.uint16View=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._int32View=null,this._float64Array=null,this._bigUint64Array=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 sn(i,t,e,r){if(e??(e=0),r??(r=Math.min(i.byteLength-e,t.byteLength)),!(e&7)&&!(r&7)){let s=r/8;new Float64Array(t,0,s).set(new Float64Array(i,e,s))}else if(!(e&3)&&!(r&3)){let s=r/4;new Float32Array(t,0,s).set(new Float32Array(i,e,s))}else new Uint8Array(t).set(new Uint8Array(i,e,r))}var Hh=p(()=>{"use strict"});var _x,vt,$r=p(()=>{"use strict";_x={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},vt=(i=>(i[i.DISABLED=0]="DISABLED",i[i.RENDERING_MASK_ADD=1]="RENDERING_MASK_ADD",i[i.MASK_ACTIVE=2]="MASK_ACTIVE",i[i.INVERSE_MASK_ACTIVE=3]="INVERSE_MASK_ACTIVE",i[i.RENDERING_MASK_REMOVE=4]="RENDERING_MASK_REMOVE",i[i.NONE=5]="NONE",i))(vt||{})});function nn(i,t){return t.alphaMode==="no-premultiply-alpha"&&_x[i]||i}var Wh=p(()=>{$r()});function ET(i){let t="";for(let e=0;e<i;++e)e>0&&(t+=`
|
|
388
|
+
else `),e<i-1&&(t+=`if(test == ${e}.0){}`);return t}function Pa(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=CT.replace(/%forloop%/gi,ET(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 CT,Vh=p(()=>{"use strict";CT=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
|
|
389
|
+
`)});function yx(){if(Hi)return Hi;let i=sa();return Hi=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Hi=Pa(Hi,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Hi}var Hi,bx=p(()=>{Kc();Vh();Hi=null});var Ma,vx=p(()=>{"use strict";Ma=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 Sx(){return Aa>0?an[--Aa]:new jh}function Tx(i){i.elements=null,an[Aa++]=i}var jh,an,Aa,on,wx,Ex,Px=p(()=>{Ft();zh();yt();Pr();Hh();Wh();bx();vx();jh=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Ma,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null,this.elements=null}},an=[],Aa=0;ye.register({clear:()=>{if(an.length>0)for(let i of an)i&&i.destroy();an.length=0,Aa=0}});on=0,wx=class Cx{constructor(t){this.uid=$("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],t={...Cx.defaultOptions,...t},t.maxTextures||(O("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),t.maxTextures=yx());let{maxTextures:e,attributesInitialSize:r,indicesInitialSize:s}=t;this.attributeBuffer=new ze(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++)Tx(this.batches[t]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}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?!1:(t._textureId=r,t.texture=e,!0)}updateElement(t){this.dirty=!0;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=Sx(),s=r.textures;s.clear();let n=e[this.elementStart],o=nn(n.blendMode,n.texture._source),a=n.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let l=this.attributeBuffer.float32View,c=this.attributeBuffer.uint32View,h=this.indexBuffer,u=this._batchIndexSize,d=this._batchIndexStart,f="startBatch",m=[],g=this.maxTextures;for(let _=this.elementStart;_<this.elementSize;++_){let x=e[_];e[_]=null;let v=x.texture._source,S=nn(x.blendMode,v),T=o!==S||a!==x.topology;if(v._batchTick===on&&!T){x._textureId=v._textureBindLocation,u+=x.indexSize,x.packAsQuad?(this.packQuadAttributes(x,l,c,x._attributeStart,x._textureId),this.packQuadIndex(h,x._indexStart,x._attributeStart/this.vertexSize)):(this.packAttributes(x,l,c,x._attributeStart,x._textureId),this.packIndex(x,h,x._indexStart,x._attributeStart/this.vertexSize)),x._batch=r,m.push(x);continue}v._batchTick=on,(s.count>=g||T)&&(this._finishBatch(r,d,u-d,s,o,a,t,f,m),f="renderBatch",d=u,o=S,a=x.topology,r=Sx(),s=r.textures,s.clear(),m=[],++on),x._textureId=v._textureBindLocation=s.count,s.ids[v.uid]=s.count,s.textures[s.count++]=v,x._batch=r,m.push(x),u+=x.indexSize,x.packAsQuad?(this.packQuadAttributes(x,l,c,x._attributeStart,x._textureId),this.packQuadIndex(h,x._indexStart,x._attributeStart/this.vertexSize)):(this.packAttributes(x,l,c,x._attributeStart,x._textureId),this.packIndex(x,h,x._indexStart,x._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(r,d,u-d,s,o,a,t,f,m),d=u,++on),this.elementStart=this.elementSize,this._batchIndexStart=d,this._batchIndexSize=u}_finishBatch(t,e,r,s,n,o,a,l,c){t.gpuBindGroup=null,t.bindGroup=null,t.action=l,t.batcher=this,t.textures=s,t.blendMode=n,t.topology=o,t.start=e,t.size=r,t.elements=c,++on,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 ze(e);sn(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 n=0;n<e.length;n++)s[n]=e[n];else sn(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 n=t.indices,o=t.indexSize,a=t.indexOffset,l=t.attributeOffset;for(let c=0;c<o;c++)e[r++]=s+n[c+a]-l}destroy(t={}){if(this.batches!==null){for(let e=0;e<this.batchIndex;e++)Tx(this.batches[e]);this.batches=null,this.geometry.destroy(!0),this.geometry=null,t.shader&&(this.shader?.destroy(),this.shader=null);for(let e=0;e<this._elements.length;e++)this._elements[e]&&(this._elements[e]._batch=null);this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}}};wx.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};Ex=wx});var PT,MT,Ra,Mx=p(()=>{xr();ir();zr();PT=new Float32Array(1),MT=new Uint32Array(1),Ra=class extends ue{constructor(){let e=new At({data:PT,label:"attribute-batch-buffer",usage:tt.VERTEX|tt.COPY_DST,shrinkToFit:!1}),r=new At({data:MT,label:"index-batch-buffer",usage:tt.INDEX|tt.COPY_DST,shrinkToFit:!1}),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 ka(i){let t=Ax[i];if(t)return t;let e=new Int32Array(i);for(let r=0;r<i;r++)e[r]=r;return t=Ax[i]=new Ct({uTextures:{value:e,type:"i32",size:i}},{isStatic:!0}),t}var Ax,Xh=p(()=>{me();Ax={}});var ln,Rx=p(()=>{Di();ba();Ta();Ni();Xh();gr();ln=class extends te{constructor(t){let e=Ui({name:"batch",bits:[ya,Sa(t),Oi]}),r=Fi({name:"batch",bits:[_a,va(t),Li]});super({glProgram:e,gpuProgram:r,resources:{batchSamplers:ka(t)}}),this.maxTextures=t}}});var cn,kx,hn,Yh=p(()=>{P();Px();Mx();Rx();cn=null,kx=class Bx extends Ex{constructor(t){super(t),this.geometry=new Ra,this.name=Bx.extension.name,this.vertexSize=6,cn??(cn=new ln(t.maxTextures)),this.shader=cn}packAttributes(t,e,r,s,n){let o=n<<16|t.roundPixels&65535,a=t.transform,l=a.a,c=a.b,h=a.c,u=a.d,d=a.tx,f=a.ty,{positions:m,uvs:g}=t,_=t.color,x=t.attributeOffset,b=x+t.attributeSize;for(let v=x;v<b;v++){let S=v*2,T=m[S],w=m[S+1];e[s++]=l*T+h*w+d,e[s++]=u*w+c*T+f,e[s++]=g[S],e[s++]=g[S+1],r[s++]=_,r[s++]=o}}packQuadAttributes(t,e,r,s,n){let o=t.texture,a=t.transform,l=a.a,c=a.b,h=a.c,u=a.d,d=a.tx,f=a.ty,m=t.bounds,g=m.maxX,_=m.minX,x=m.maxY,b=m.minY,v=o.uvs,S=t.color,T=n<<16|t.roundPixels&65535;e[s+0]=l*_+h*b+d,e[s+1]=u*b+c*_+f,e[s+2]=v.x0,e[s+3]=v.y0,r[s+4]=S,r[s+5]=T,e[s+6]=l*g+h*b+d,e[s+7]=u*b+c*g+f,e[s+8]=v.x1,e[s+9]=v.y1,r[s+10]=S,r[s+11]=T,e[s+12]=l*g+h*x+d,e[s+13]=u*x+c*g+f,e[s+14]=v.x2,e[s+15]=v.y2,r[s+16]=S,r[s+17]=T,e[s+18]=l*_+h*x+d,e[s+19]=u*x+c*_+f,e[s+20]=v.x3,e[s+21]=v.y3,r[s+22]=S,r[s+23]=T}_updateMaxTextures(t){this.shader.maxTextures!==t&&(cn=new ln(t),this.shader=cn)}destroy(){this.shader=null,super.destroy()}};kx.extension={type:[y.Batcher],name:"default"};hn=kx});var $h,un,qh=p(()=>{P();Be();Yh();$h=class Ix{constructor(t,e){this.state=Ot.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=t,this._adaptor=e,this._adaptor.init?.(this)}static getBatcher(t,e){return new this._availableBatchers[t]({maxTextures:e})}buildStart(t){let e=this._batchersByInstructionSet[t.uid];e||(e=this._batchersByInstructionSet[t.uid]=Object.create(null),e.default||(e.default=new hn({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=e,this._activeBatch=this._activeBatches.default;for(let r in this._activeBatches)this._activeBatches[r].begin()}addToBatch(t,e){if(this._activeBatch.name!==t.batcherName){this._activeBatch.break(e);let r=this._activeBatches[t.batcherName];r||(r=this._activeBatches[t.batcherName]=Ix.getBatcher(t.batcherName,this.renderer.limits.maxBatchableTextures),r.begin()),this._activeBatch=r}this._activeBatch.add(t)}break(t){this._activeBatch.break(t)}buildEnd(t){this._activeBatch.break(t);let e=this._activeBatches;for(let r in e){let s=e[r],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(t){let e=this._batchersByInstructionSet[t.uid];for(let r in e){let s=e[r],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(t){if(t.action==="startBatch"){let e=t.batcher,r=e.geometry,s=e.shader;this._adaptor.start(this,r,s)}this._adaptor.execute(this,t)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let t in this._activeBatches)this._activeBatches[t].destroy();this._activeBatches=null}};$h.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"batch"};$h._availableBatchers=Object.create(null);un=$h;z.handleByMap(y.Batcher,un._availableBatchers);z.add(hn)});var Gx,Fx=p(()=>{Gx=`in vec2 vMaskCoord;
|
|
390
390
|
in vec2 vTextureCoord;
|
|
391
391
|
|
|
392
392
|
uniform sampler2D uTexture;
|
|
@@ -426,7 +426,7 @@ void main(void)
|
|
|
426
426
|
|
|
427
427
|
finalColor = original * a;
|
|
428
428
|
}
|
|
429
|
-
`});var
|
|
429
|
+
`});var Ux,Dx=p(()=>{Ux=`in vec2 aPosition;
|
|
430
430
|
|
|
431
431
|
out vec2 vTextureCoord;
|
|
432
432
|
out vec2 vMaskCoord;
|
|
@@ -463,7 +463,7 @@ void main(void)
|
|
|
463
463
|
vTextureCoord = filterTextureCoord(aPosition);
|
|
464
464
|
vMaskCoord = getFilterCoord(aPosition);
|
|
465
465
|
}
|
|
466
|
-
`});var Kh,
|
|
466
|
+
`});var Kh,Lx=p(()=>{Kh=`struct GlobalFilterUniforms {
|
|
467
467
|
uInputSize:vec4<f32>,
|
|
468
468
|
uInputPixel:vec4<f32>,
|
|
469
469
|
uInputClamp:vec4<f32>,
|
|
@@ -567,10 +567,10 @@ fn mainFragment(
|
|
|
567
567
|
|
|
568
568
|
return source * a;
|
|
569
569
|
}
|
|
570
|
-
`});var ka,Dx=p(()=>{ot();Nr();Ai();me();gt();dc();ht();hh();Ix();Fx();Ux();ka=class extends oa{constructor(t){let{sprite:e,...r}=t,s=new yi(e.texture),n=new Ct({uFilterMatrix:{value:new k,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:t.inverse?1:0,type:"f32"},uChannel:{value:t.channel==="alpha"?1:0,type:"f32"}}),o=ve.from({vertex:{source:Kh,entryPoint:"mainVertex"},fragment:{source:Kh,entryPoint:"mainFragment"}}),a=be.from({vertex:Gx,fragment:Bx,name:"mask-filter"});super({...r,gpuProgram:o,glProgram:a,clipToViewport:!1,resources:{filterUniforms:n,uMaskTexture:e.texture.source}}),this.sprite=e,this._textureMatrix=s}setSprite(t){this.sprite=t;let e=this._getSafeTexture();this._textureMatrix.texture=e,this.resources.uMaskTexture=e.source}set inverse(t){this.resources.filterUniforms.uniforms.uInverse=t?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}set channel(t){this.resources.filterUniforms.uniforms.uChannel=t==="alpha"?1:0}get channel(){return this.resources.filterUniforms.uniforms.uChannel===1?"alpha":"red"}apply(t,e,r,s){let n=this._getSafeTexture();this._textureMatrix.texture=n,t.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=n.source,t.applyFilter(this,e,r,s)}_getSafeTexture(){let t=this.sprite.texture;return t.destroyed||!t.source||t.source.destroyed?(L("[MaskFilter] The mask texture was destroyed while the mask is still in use. Remove the mask before destroying its texture."),U.EMPTY):t}destroy(t=!1){this._textureMatrix.destroy(),super.destroy(t)}}});var ET,Zh,qr,Qh=p(()=>{P();To();Dx();ie();xs();zo();Ke();gt();Fr();Ne();ET=new dt,Zh=class extends Ze{constructor(){super(),this._placeholderSprite=new pe(U.EMPTY),this.filters=[new ka({sprite:this._placeholderSprite,inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(t){this.filters[0].setSprite(t)}get inverse(){return this.filters[0].inverse}set inverse(t){this.filters[0].inverse=t}get channel(){return this.filters[0].channel}set channel(t){this.filters[0].channel=t}reset(){this._placeholderSprite.texture=U.EMPTY,this.sprite=this._placeholderSprite}},qr=class{constructor(t){this._activeMaskStage=[],this._usedEffects=[],this._renderer=t,t.runners.postrender.add(this)}push(t,e,r){let s=this._renderer;if(s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1,maskedContainer:e}),t.inverse=e._maskOptions.inverse,t.channel=e._maskOptions.channel??"red",t.renderMaskToTexture){let n=t.mask;n.includeInBuild=!0,n.collectRenderables(r,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:t,maskedContainer:e,inverse:e._maskOptions.inverse,canBundle:!1})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}execute(t){let e=this._renderer,r=t.mask.renderMaskToTexture;if(t.action==="pushMaskBegin"){let s=bt.get(Zh);if(s.inverse=t.inverse,s.channel=t.mask.channel,r){t.mask.mask.measurable=!0;let n=gi(t.mask.mask,!0,ET);t.mask.mask.measurable=!1,n.ceil();let o=e.renderTarget.renderTarget.colorTexture.source,a=Mt.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);e.renderTarget.push({target:a,clear:!0}),e.globalUniforms.push({offset:n,worldColor:4294967295});let l=s.sprite;l.texture=a,l.worldTransform.tx=n.minX,l.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:t.maskedContainer,filterTexture:a})}else s.sprite=t.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:t.maskedContainer})}else if(t.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];r&&(e.type===Lt.WEBGL&&e.renderTarget.finishRenderPass(),e.renderTarget.pop(),e.globalUniforms.pop()),e.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(t.action==="popMaskEnd"){e.filter.pop();let s=this._activeMaskStage.pop();r&&Mt.returnTexture(s.filterTexture),this._usedEffects.push(s.filterEffect)}}postrender(){let t=this._usedEffects;for(let e=0;e<t.length;e++)bt.return(t[e]);t.length=0}destroy(){this.postrender(),this._renderer.runners.postrender.remove(this),this._renderer=null,this._activeMaskStage=null,this._usedEffects=null}};qr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"alphaMask"}});var un,Lx=p(()=>{P();un=class{constructor(t){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=t}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(t,e,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&t.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(t,e,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(t){this._renderer.colorMask.setMask(t.colorMask)}destroy(){this._renderer=null,this._colorStack=null}};un.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"colorMask"}});var dn,Ox=p(()=>{P();ki();$r();dn=class{constructor(t){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=t}push(t,e,r){var s;let n=t,o=this._renderer;o.renderPipes.batch.break(r),o.renderPipes.blendMode.setBlendMode(n.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let l=this._maskHash.get(n);l.instructionsStart=r.instructionSize,a.collectRenderables(r,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1});let c=r.instructionSize-l.instructionsStart-1;l.instructionsLength=c;let h=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[h]??(s[h]=0)}pop(t,e,r){let s=t,n=this._renderer;n.renderPipes.batch.break(r),n.renderPipes.blendMode.setBlendMode(s.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:e._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(t);for(let a=0;a<o.instructionsLength;a++)r.instructions[r.instructionSize++]=r.instructions[o.instructionsStart++];r.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(t){var e;let r=this._renderer,s=r,n=r.renderTarget.renderTarget.uid,o=(e=this._maskStackHash)[n]??(e[n]=0);t.action==="pushMaskBegin"?(s.renderTarget.ensureDepthStencil(),s.stencil.setStencilMode(vt.RENDERING_MASK_ADD,o),o++,s.colorMask.setMask(0)):t.action==="pushMaskEnd"?(t.inverse?s.stencil.setStencilMode(vt.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(vt.MASK_ACTIVE,o),s.colorMask.setMask(15)):t.action==="popMaskBegin"?(s.colorMask.setMask(0),o!==0?s.stencil.setStencilMode(vt.RENDERING_MASK_REMOVE,o):(s.renderTarget.clear(null,Et.STENCIL),s.stencil.setStencilMode(vt.DISABLED,o)),o--):t.action==="popMaskEnd"&&(t.inverse?s.stencil.setStencilMode(vt.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(vt.MASK_ACTIVE,o),s.colorMask.setMask(15)),this._maskStackHash[n]=o}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};dn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"stencilMask"}});var Jh,zx,Hx=p(()=>{Qt();P();ht();Jh=class Nx{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new Q(0),this.color=this._backgroundColor,this.alpha=1}init(t){t={...Nx.defaultOptions,...t},this.clearBeforeRender=t.clearBeforeRender,this.color=t.background||t.backgroundColor||this._backgroundColor,this.alpha=t.backgroundAlpha,this._backgroundColor.setAlpha(t.backgroundAlpha)}get color(){return this._backgroundColor}set color(t){Q.shared.setValue(t).alpha<1&&this._backgroundColor.alpha===1&&L("Cannot set a transparent background on an opaque canvas. To enable transparency, set backgroundAlpha < 1 when initializing your Application."),this._backgroundColor.setValue(t)}get alpha(){return this._backgroundColor.alpha}set alpha(t){this._backgroundColor.setAlpha(t)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};Jh.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"background",priority:0};Jh.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};zx=Jh});var fn,Kr,tu=p(()=>{P();To();pc();ht();fn={};z.handle(y.BlendMode,i=>{if(!i.name)throw new Error("BlendMode extension must have a name property");fn[i.name]=i.ref},i=>{delete fn[i.name]});Kr=class{constructor(t){this._blendModeStack=[],this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=t,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}pushBlendMode(t,e,r){this._blendModeStack.push(e),this.setBlendMode(t,e,r)}popBlendMode(t){this._blendModeStack.pop();let e=this._blendModeStack[this._activeBlendMode.length-1]??"normal";this.setBlendMode(null,e,t)}setBlendMode(t,e,r){let s=t instanceof Ur;if(this._activeBlendMode===e){this._isAdvanced&&t&&!s&&this._renderableList?.push(t);return}this._isAdvanced&&this._endAdvancedBlendMode(r),this._activeBlendMode=e,t&&(this._isAdvanced=!!fn[e],this._isAdvanced&&this._beginAdvancedBlendMode(t,r))}_beginAdvancedBlendMode(t,e){this._renderer.renderPipes.batch.break(e);let r=this._activeBlendMode;if(!fn[r]){L(`Unable to assign BlendMode: '${r}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let s=this._ensureFilterEffect(r),n=t instanceof Ur,o={renderPipeId:"filter",action:"pushFilter",filterEffect:s,renderables:n?null:[t],container:n?t.root:null,canBundle:!1};this._renderableList=o.renderables,e.add(o)}_ensureFilterEffect(t){let e=this._filterHash[t];return e||(e=this._filterHash[t]=new Ze,e.filters=[new fn[t]]),e}_endAdvancedBlendMode(t){this._isAdvanced=!1,this._renderableList=null,this._renderer.renderPipes.batch.break(t),t.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(t){this._isAdvanced&&this._endAdvancedBlendMode(t)}destroy(){this._renderer=null,this._renderableList=null;for(let t in this._filterHash)this._filterHash[t].destroy();this._filterHash=null}};Kr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"blendMode"}});var eu,ru,Vx,jx=p(()=>{xt();P();Pe();gt();eu={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},ru=class Wx{constructor(t){this._renderer=t}_normalizeOptions(t,e={}){return t instanceof mt||t instanceof U?{target:t,...e}:{...e,...t}}async image(t){let e=W.get().createImage();return e.src=await this.base64(t),e}async base64(t){t=this._normalizeOptions(t,Wx.defaultImageOptions);let{format:e,quality:r}=t,s=this.canvas(t);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let l=new FileReader;l.onload=()=>n(l.result),l.onerror=o,l.readAsDataURL(a)},eu[e],r)});if(s.toDataURL!==void 0)return s.toDataURL(eu[e],r);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:eu[e],quality:r});return new Promise((o,a)=>{let l=new FileReader;l.onload=()=>o(l.result),l.onerror=a,l.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(t){t=this._normalizeOptions(t);let e=t.target,r=this._renderer;if(e instanceof U)return r.texture.generateCanvas(e);let s=r.textureGenerator.generateTexture(t),n=r.texture.generateCanvas(s);return s.destroy(!0),n}pixels(t){t=this._normalizeOptions(t);let e=t.target,r=this._renderer,s=e instanceof U?e:r.textureGenerator.generateTexture(t),n=r.texture.getPixels(s);return e instanceof mt&&s.destroy(!0),n}texture(t){return t=this._normalizeOptions(t),t.target instanceof U?t.target:this._renderer.textureGenerator.generateTexture(t)}download(t){t=this._normalizeOptions(t);let e=this.canvas(t),r=document.createElement("a");r.download=t.filename??"image.png",r.href=e.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(t){let e=t.width??200;t=this._normalizeOptions(t);let r=this.canvas(t),s=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`);let n=["font-size: 1px;",`padding: ${e}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};ru.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"extract"};ru.defaultImageOptions={format:"png",quality:1};Vx=ru});var Ba,Xx=p(()=>{$t();gt();Ba=class i extends U{static create(t){let{dynamic:e,textureOptions:r,...s}=t;return new i({...r,source:new st(s),dynamic:e??!1})}resize(t,e,r){return this.source.resize(t,e,r),this}}});var PT,MT,AT,pn,Yx=p(()=>{Qt();P();ot();Yt();ie();Mo();Pe();Xx();PT=new J,MT=new dt,AT=[0,0,0,0],pn=class{constructor(t){this._renderer=t}generateTexture(t){t instanceof mt&&(t={target:t,frame:void 0,textureSourceOptions:{},resolution:void 0});let e=t.resolution||this._renderer.resolution,r=t.antialias||this._renderer.view.antialias,s=t.target,n=t.clearColor;n?n=Array.isArray(n)&&n.length===4?n:Q.shared.setValue(n).toArray():n=AT;let o=t.frame?.copyTo(PT)||_i(s,MT).rectangle,a=t.defaultAnchor&&{defaultAnchor:t.defaultAnchor};o.width=Math.max(o.width,1/e)|0,o.height=Math.max(o.height,1/e)|0;let l=Ba.create({...t.textureSourceOptions,width:o.width,height:o.height,resolution:e,antialias:r,textureOptions:a}),c=k.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:c,target:l,clearColor:n}),l.source.updateMipmaps(),l}destroy(){this._renderer=null}};pn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"textureGenerator"}});function $x(i){let t=!1;for(let r in i)if(i[r]==null){t=!0;break}if(!t)return i;let e=Object.create(null);for(let r in i){let s=i[r];s&&(e[r]=s)}return e}function qx(i){let t=0;for(let e=0;e<i.length;e++)i[e]==null?t++:i[e-t]=i[e];return i.length-=t,i}var Kx=p(()=>{"use strict"});var iu,Qx,Jx=p(()=>{P();Kx();iu=class Zx{constructor(t){this._managedResources=[],this._managedResourceHashes=[],this._managedCollections=[],this._ready=!1,this._renderer=t}init(t){t={...Zx.defaultOptions,...t},this.maxUnusedTime=t.gcMaxUnusedTime,this._frequency=t.gcFrequency,this.enabled=t.gcActive,this.now=performance.now()}get enabled(){return!!this._handler}set enabled(t){this.enabled!==t&&(t?(this._handler=this._renderer.scheduler.repeat(()=>{this._ready=!0},this._frequency,!1),this._collectionsHandler=this._renderer.scheduler.repeat(()=>{for(let e of this._managedCollections){let{context:r,collection:s,type:n}=e;n==="hash"?r[s]=$x(r[s]):r[s]=qx(r[s])}},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._collectionsHandler),this._handler=0,this._collectionsHandler=0))}prerender({container:t}){this.now=performance.now(),t.renderGroup.gcTick=this._renderer.tick++,this._updateInstructionGCTick(t.renderGroup,t.renderGroup.gcTick)}postrender(){!this._ready||!this.enabled||(this.run(),this._ready=!1)}_updateInstructionGCTick(t,e){t.instructionSet.gcTick=e,t.gcTick=e;for(let r of t.renderGroupChildren)this._updateInstructionGCTick(r,e)}addCollection(t,e,r){this._managedCollections.push({context:t,collection:e,type:r})}addResource(t,e){if(t._gcLastUsed!==-1){t._gcLastUsed=this.now,t._onTouch?.(this.now);return}let r=this._managedResources.length;t._gcData={index:r,type:e},t._gcLastUsed=this.now,t._onTouch?.(this.now),t.once("unload",this.removeResource,this),this._managedResources.push(t)}removeResource(t){let e=t._gcData;if(!e)return;let r=e.index,s=this._managedResources.length-1;if(r!==s){let n=this._managedResources[s];this._managedResources[r]=n,n._gcData.index=r}this._managedResources.length--,t._gcData=null,t._gcLastUsed=-1}addResourceHash(t,e,r,s=0){this._managedResourceHashes.push({context:t,hash:e,type:r,priority:s}),this._managedResourceHashes.sort((n,o)=>n.priority-o.priority)}run(){let t=performance.now(),e=this._managedResourceHashes;for(let s of e)this.runOnHash(s,t);let r=0;for(let s=0;s<this._managedResources.length;s++){let n=this._managedResources[s];r=this.runOnResource(n,t,r)}this._managedResources.length=r}updateRenderableGCTick(t,e){let r=t.renderGroup??t.parentRenderGroup,s=r?.instructionSet?.gcTick??-1;(r?.gcTick??0)===s&&(t._gcLastUsed=e,t._onTouch?.(e))}runOnResource(t,e,r){let s=t._gcData;return s.type==="renderable"&&this.updateRenderableGCTick(t,e),e-t._gcLastUsed<this.maxUnusedTime||!t.autoGarbageCollect?(this._managedResources[r]=t,s.index=r,r++):(t.unload(),t._gcData=null,t._gcLastUsed=-1,t.off("unload",this.removeResource,this)),r}_createHashClone(t,e){let r=Object.create(null);for(let s in t){if(s===e)break;t[s]!==null&&(r[s]=t[s])}return r}runOnHash(t,e){let{context:r,hash:s,type:n}=t,o=r[s],a=null,l=0;for(let c in o){let h=o[c];if(h===null){l++,l===1e4&&!a&&(a=this._createHashClone(o,c));continue}if(h._gcLastUsed===-1){h._gcLastUsed=e,h._onTouch?.(e),a&&(a[c]=h);continue}if(n==="renderable"&&this.updateRenderableGCTick(h,e),!(e-h._gcLastUsed<this.maxUnusedTime)&&h.autoGarbageCollect){if(n==="renderable"){let d=h,f=d.renderGroup??d.parentRenderGroup;f&&(f.structureDidChange=!0)}h.unload(),h._gcData=null,h._gcLastUsed=-1,a||(l+1!==1e4?(o[c]=null,l++):a=this._createHashClone(o,c))}else a&&(a[c]=h)}a&&(r[s]=a)}destroy(){this.enabled=!1,this._managedResources.forEach(t=>{t.off("unload",this.removeResource,this)}),this._managedResources.length=0,this._managedResourceHashes.length=0,this._managedCollections.length=0,this._renderer=null}};iu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"gc",priority:0};iu.defaultOptions={gcActive:!0,gcMaxUnusedTime:6e4,gcFrequency:3e4};Qx=iu});function Hi(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 Ia=p(()=>{"use strict"});var mn,t_=p(()=>{P();ot();Ee();Ia();mr();Ne();me();mn=class{constructor(t){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=t}reset(){this._stackIndex=0;for(let t=0;t<this._activeUniforms.length;t++)this._uniformsPool.push(this._activeUniforms[t]);for(let t=0;t<this._activeBindGroups.length;t++)this._bindGroupPool.push(this._activeBindGroups[t]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(t){this.reset(),this.push(t)}bind({size:t,projectionMatrix:e,worldTransformMatrix:r,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new k,worldColor:4294967295,offset:new nt},l={projectionMatrix:e||this._renderer.renderTarget.projectionMatrix,resolution:t||o.size,worldTransformMatrix:r||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},c=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(c);let h=c.uniforms;h.uProjectionMatrix=l.projectionMatrix,h.uResolution=l.resolution,h.uWorldTransformMatrix.copyFrom(l.worldTransformMatrix),h.uWorldTransformMatrix.tx-=l.offset.x,h.uWorldTransformMatrix.ty-=l.offset.y,Hi(l.worldColor,h.uWorldColorAlpha,0),c.update();let u;this._renderer.renderPipes.uniformBatch?u=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(c,!1):(u=this._bindGroupPool.pop()||new Vt,this._activeBindGroups.push(u),u.setResource(c,0)),l.bindGroup=u,this._currentGlobalUniformData=l}push(t){this.bind(t),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Lt.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new Ct({uProjectionMatrix:{value:new k,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new k,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null,this._globalUniformDataStack.length=0,this._uniformsPool.length=0,this._activeUniforms.length=0,this._bindGroupPool.length=0,this._activeBindGroups.length=0,this._currentGlobalUniformData=null}};mn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"globalUniforms"}});var RT,gn,e_=p(()=>{P();Si();RT=1,gn=class{constructor(){this._tasks=[],this._offset=0}init(){qt.system.add(this._update,this)}repeat(t,e,r=!0){let s=RT++,n=0;return r&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:t,duration:e,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(t){for(let e=0;e<this._tasks.length;e++)if(this._tasks[e].id===t){this._tasks.splice(e,1);return}}_update(){let t=performance.now();for(let e=0;e<this._tasks.length;e++){let r=this._tasks[e];if(t-r.offset-r.last>=r.duration){let s=t-r.start;r.func(s),r.last=t}}}destroy(){qt.system.remove(this._update,this),this._tasks.length=0}};gn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"scheduler",priority:0}});function i_(i){if(!r_){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let t=[`%c %c %c %c %c PixiJS %c v${Ni} (${i}) http://www.pixijs.com/
|
|
570
|
+
`});var Ba,Ox=p(()=>{ot();Nr();Ri();me();gt();dc();ht();hh();Fx();Dx();Lx();Ba=class extends aa{constructor(t){let{sprite:e,...r}=t,s=new bi(e.texture),n=new Ct({uFilterMatrix:{value:new k,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:t.inverse?1:0,type:"f32"},uChannel:{value:t.channel==="alpha"?1:0,type:"f32"}}),o=ve.from({vertex:{source:Kh,entryPoint:"mainVertex"},fragment:{source:Kh,entryPoint:"mainFragment"}}),a=be.from({vertex:Ux,fragment:Gx,name:"mask-filter"});super({...r,gpuProgram:o,glProgram:a,clipToViewport:!1,resources:{filterUniforms:n,uMaskTexture:e.texture.source}}),this.sprite=e,this._textureMatrix=s}setSprite(t){this.sprite=t;let e=this._getSafeTexture();this._textureMatrix.texture=e,this.resources.uMaskTexture=e.source}set inverse(t){this.resources.filterUniforms.uniforms.uInverse=t?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}set channel(t){this.resources.filterUniforms.uniforms.uChannel=t==="alpha"?1:0}get channel(){return this.resources.filterUniforms.uniforms.uChannel===1?"alpha":"red"}apply(t,e,r,s){let n=this._getSafeTexture();this._textureMatrix.texture=n,t.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=n.source,t.applyFilter(this,e,r,s)}_getSafeTexture(){let t=this.sprite.texture;return t.destroyed||!t.source||t.source.destroyed?(L("[MaskFilter] The mask texture was destroyed while the mask is still in use. Remove the mask before destroying its texture."),F.EMPTY):t}destroy(t=!1){this._textureMatrix.destroy(),super.destroy(t)}}});var AT,Zh,qr,Qh=p(()=>{P();wo();Ox();ie();_s();Ho();Ke();gt();Fr();Ne();AT=new dt,Zh=class extends Ze{constructor(){super(),this._placeholderSprite=new he(F.EMPTY),this.filters=[new Ba({sprite:this._placeholderSprite,inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(t){this.filters[0].setSprite(t)}get inverse(){return this.filters[0].inverse}set inverse(t){this.filters[0].inverse=t}get channel(){return this.filters[0].channel}set channel(t){this.filters[0].channel=t}reset(){this._placeholderSprite.texture=F.EMPTY,this.sprite=this._placeholderSprite}},qr=class{constructor(t){this._activeMaskStage=[],this._usedEffects=[],this._renderer=t,t.runners.postrender.add(this)}push(t,e,r){let s=this._renderer;if(s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1,maskedContainer:e}),t.inverse=e._maskOptions.inverse,t.channel=e._maskOptions.channel??"red",t.renderMaskToTexture){let n=t.mask;n.includeInBuild=!0,n.collectRenderables(r,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:t,maskedContainer:e,inverse:e._maskOptions.inverse,canBundle:!1})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}execute(t){let e=this._renderer,r=t.mask.renderMaskToTexture;if(t.action==="pushMaskBegin"){let s=bt.get(Zh);if(s.inverse=t.inverse,s.channel=t.mask.channel,r){t.mask.mask.measurable=!0;let n=xi(t.mask.mask,!0,AT);t.mask.mask.measurable=!1,n.ceil();let o=e.renderTarget.renderTarget.colorTexture.source,a=Mt.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);e.renderTarget.push({target:a,clear:!0}),e.globalUniforms.push({offset:n,worldColor:4294967295});let l=s.sprite;l.texture=a,l.worldTransform.tx=n.minX,l.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:t.maskedContainer,filterTexture:a})}else s.sprite=t.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:t.maskedContainer})}else if(t.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];r&&(e.type===Lt.WEBGL&&e.renderTarget.finishRenderPass(),e.renderTarget.pop(),e.globalUniforms.pop()),e.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(t.action==="popMaskEnd"){e.filter.pop();let s=this._activeMaskStage.pop();r&&Mt.returnTexture(s.filterTexture),this._usedEffects.push(s.filterEffect)}}postrender(){let t=this._usedEffects;for(let e=0;e<t.length;e++)bt.return(t[e]);t.length=0}destroy(){this.postrender(),this._renderer.runners.postrender.remove(this),this._renderer=null,this._activeMaskStage=null,this._usedEffects=null}};qr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"alphaMask"}});var dn,Nx=p(()=>{P();dn=class{constructor(t){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=t}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(t,e,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&t.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(t,e,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;this._colorStackIndex--;let o=n[this._colorStackIndex-1];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1}))}execute(t){this._renderer.colorMask.setMask(t.colorMask)}destroy(){this._renderer=null,this._colorStack=null}};dn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"colorMask"}});var fn,zx=p(()=>{P();Bi();$r();fn=class{constructor(t){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=t}push(t,e,r){var s;let n=t,o=this._renderer;o.renderPipes.batch.break(r),o.renderPipes.blendMode.setBlendMode(n.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let l=this._maskHash.get(n);l.instructionsStart=r.instructionSize,a.collectRenderables(r,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1});let c=r.instructionSize-l.instructionsStart-1;l.instructionsLength=c;let h=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[h]??(s[h]=0)}pop(t,e,r){let s=t,n=this._renderer;n.renderPipes.batch.break(r),n.renderPipes.blendMode.setBlendMode(s.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:e._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(t);for(let a=0;a<o.instructionsLength;a++)r.instructions[r.instructionSize++]=r.instructions[o.instructionsStart++];r.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(t){var e;let r=this._renderer,s=r,n=r.renderTarget.renderTarget.uid,o=(e=this._maskStackHash)[n]??(e[n]=0);t.action==="pushMaskBegin"?(s.renderTarget.ensureDepthStencil(),s.stencil.setStencilMode(vt.RENDERING_MASK_ADD,o),o++,s.colorMask.setMask(0)):t.action==="pushMaskEnd"?(t.inverse?s.stencil.setStencilMode(vt.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(vt.MASK_ACTIVE,o),s.colorMask.setMask(15)):t.action==="popMaskBegin"?(s.colorMask.setMask(0),o!==0?s.stencil.setStencilMode(vt.RENDERING_MASK_REMOVE,o):(s.renderTarget.clear(null,Et.STENCIL),s.stencil.setStencilMode(vt.DISABLED,o)),o--):t.action==="popMaskEnd"&&(t.inverse?s.stencil.setStencilMode(vt.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(vt.MASK_ACTIVE,o),s.colorMask.setMask(15)),this._maskStackHash[n]=o}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};fn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"stencilMask"}});var Jh,Wx,Vx=p(()=>{Qt();P();ht();Jh=class Hx{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new Q(0),this.color=this._backgroundColor,this.alpha=1}init(t){t={...Hx.defaultOptions,...t},this.clearBeforeRender=t.clearBeforeRender,this.color=t.background||t.backgroundColor||this._backgroundColor,this.alpha=t.backgroundAlpha,this._backgroundColor.setAlpha(t.backgroundAlpha)}get color(){return this._backgroundColor}set color(t){Q.shared.setValue(t).alpha<1&&this._backgroundColor.alpha===1&&L("Cannot set a transparent background on an opaque canvas. To enable transparency, set backgroundAlpha < 1 when initializing your Application."),this._backgroundColor.setValue(t)}get alpha(){return this._backgroundColor.alpha}set alpha(t){this._backgroundColor.setAlpha(t)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};Jh.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"background",priority:0};Jh.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};Wx=Jh});var pn,Kr,tu=p(()=>{P();wo();pc();ht();pn={};z.handle(y.BlendMode,i=>{if(!i.name)throw new Error("BlendMode extension must have a name property");pn[i.name]=i.ref},i=>{delete pn[i.name]});Kr=class{constructor(t){this._blendModeStack=[],this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=t,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}pushBlendMode(t,e,r){this._blendModeStack.push(e),this.setBlendMode(t,e,r)}popBlendMode(t){this._blendModeStack.pop();let e=this._blendModeStack[this._activeBlendMode.length-1]??"normal";this.setBlendMode(null,e,t)}setBlendMode(t,e,r){let s=t instanceof Ur;if(this._activeBlendMode===e){this._isAdvanced&&t&&!s&&this._renderableList?.push(t);return}this._isAdvanced&&this._endAdvancedBlendMode(r),this._activeBlendMode=e,t&&(this._isAdvanced=!!pn[e],this._isAdvanced&&this._beginAdvancedBlendMode(t,r))}_beginAdvancedBlendMode(t,e){this._renderer.renderPipes.batch.break(e);let r=this._activeBlendMode;if(!pn[r]){L(`Unable to assign BlendMode: '${r}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let s=this._ensureFilterEffect(r),n=t instanceof Ur,o={renderPipeId:"filter",action:"pushFilter",filterEffect:s,renderables:n?null:[t],container:n?t.root:null,canBundle:!1};this._renderableList=o.renderables,e.add(o)}_ensureFilterEffect(t){let e=this._filterHash[t];return e||(e=this._filterHash[t]=new Ze,e.filters=[new pn[t]]),e}_endAdvancedBlendMode(t){this._isAdvanced=!1,this._renderableList=null,this._renderer.renderPipes.batch.break(t),t.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(t){this._isAdvanced&&this._endAdvancedBlendMode(t)}destroy(){this._renderer=null,this._renderableList=null;for(let t in this._filterHash)this._filterHash[t].destroy();this._filterHash=null}};Kr.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"blendMode"}});var eu,ru,Xx,Yx=p(()=>{xt();P();Pe();gt();eu={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},ru=class jx{constructor(t){this._renderer=t}_normalizeOptions(t,e={}){return t instanceof mt||t instanceof F?{target:t,...e}:{...e,...t}}async image(t){let e=W.get().createImage();return e.src=await this.base64(t),e}async base64(t){t=this._normalizeOptions(t,jx.defaultImageOptions);let{format:e,quality:r}=t,s=this.canvas(t);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let l=new FileReader;l.onload=()=>n(l.result),l.onerror=o,l.readAsDataURL(a)},eu[e],r)});if(s.toDataURL!==void 0)return s.toDataURL(eu[e],r);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:eu[e],quality:r});return new Promise((o,a)=>{let l=new FileReader;l.onload=()=>o(l.result),l.onerror=a,l.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(t){t=this._normalizeOptions(t);let e=t.target,r=this._renderer;if(e instanceof F)return r.texture.generateCanvas(e);let s=r.textureGenerator.generateTexture(t),n=r.texture.generateCanvas(s);return s.destroy(!0),n}pixels(t){t=this._normalizeOptions(t);let e=t.target,r=this._renderer,s=e instanceof F?e:r.textureGenerator.generateTexture(t),n=r.texture.getPixels(s);return e instanceof mt&&s.destroy(!0),n}texture(t){return t=this._normalizeOptions(t),t.target instanceof F?t.target:this._renderer.textureGenerator.generateTexture(t)}download(t){t=this._normalizeOptions(t);let e=this.canvas(t),r=document.createElement("a");r.download=t.filename??"image.png",r.href=e.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(t){let e=t.width??200;t=this._normalizeOptions(t);let r=this.canvas(t),s=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`);let n=["font-size: 1px;",`padding: ${e}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};ru.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"extract"};ru.defaultImageOptions={format:"png",quality:1};Xx=ru});var Ia,$x=p(()=>{$t();gt();Ia=class i extends F{static create(t){let{dynamic:e,textureOptions:r,...s}=t;return new i({...r,source:new st(s),dynamic:e??!1})}resize(t,e,r){return this.source.resize(t,e,r),this}}});var RT,kT,BT,mn,qx=p(()=>{Qt();P();ot();Yt();ie();Ao();Pe();$x();RT=new J,kT=new dt,BT=[0,0,0,0],mn=class{constructor(t){this._renderer=t}generateTexture(t){t instanceof mt&&(t={target:t,frame:void 0,textureSourceOptions:{},resolution:void 0});let e=t.resolution||this._renderer.resolution,r=t.antialias||this._renderer.view.antialias,s=t.target,n=t.clearColor;n?n=Array.isArray(n)&&n.length===4?n:Q.shared.setValue(n).toArray():n=BT;let o=t.frame?.copyTo(RT)||yi(s,kT).rectangle,a=t.defaultAnchor&&{defaultAnchor:t.defaultAnchor};o.width=Math.max(o.width,1/e)|0,o.height=Math.max(o.height,1/e)|0;let l=Ia.create({...t.textureSourceOptions,width:o.width,height:o.height,resolution:e,antialias:r,textureOptions:a}),c=k.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:c,target:l,clearColor:n}),l.source.updateMipmaps(),l}destroy(){this._renderer=null}};mn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"textureGenerator"}});function Kx(i){let t=!1;for(let r in i)if(i[r]==null){t=!0;break}if(!t)return i;let e=Object.create(null);for(let r in i){let s=i[r];s&&(e[r]=s)}return e}function Zx(i){let t=0;for(let e=0;e<i.length;e++)i[e]==null?t++:i[e-t]=i[e];return i.length-=t,i}var Qx=p(()=>{"use strict"});var iu,t_,e_=p(()=>{P();Qx();iu=class Jx{constructor(t){this._managedResources=[],this._managedResourceHashes=[],this._managedCollections=[],this._ready=!1,this._renderer=t}init(t){t={...Jx.defaultOptions,...t},this.maxUnusedTime=t.gcMaxUnusedTime,this._frequency=t.gcFrequency,this.enabled=t.gcActive,this.now=performance.now()}get enabled(){return!!this._handler}set enabled(t){this.enabled!==t&&(t?(this._handler=this._renderer.scheduler.repeat(()=>{this._ready=!0},this._frequency,!1),this._collectionsHandler=this._renderer.scheduler.repeat(()=>{for(let e of this._managedCollections){let{context:r,collection:s,type:n}=e;n==="hash"?r[s]=Kx(r[s]):r[s]=Zx(r[s])}},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._collectionsHandler),this._handler=0,this._collectionsHandler=0))}prerender({container:t}){this.now=performance.now(),t.renderGroup.gcTick=this._renderer.tick++,this._updateInstructionGCTick(t.renderGroup,t.renderGroup.gcTick)}postrender(){!this._ready||!this.enabled||(this.run(),this._ready=!1)}_updateInstructionGCTick(t,e){t.instructionSet.gcTick=e,t.gcTick=e;for(let r of t.renderGroupChildren)this._updateInstructionGCTick(r,e)}addCollection(t,e,r){this._managedCollections.push({context:t,collection:e,type:r})}addResource(t,e){if(t._gcLastUsed!==-1){t._gcLastUsed=this.now,t._onTouch?.(this.now);return}let r=this._managedResources.length;t._gcData={index:r,type:e},t._gcLastUsed=this.now,t._onTouch?.(this.now),t.once("unload",this.removeResource,this),this._managedResources.push(t)}removeResource(t){let e=t._gcData;if(!e)return;let r=e.index,s=this._managedResources.length-1;if(r!==s){let n=this._managedResources[s];this._managedResources[r]=n,n._gcData.index=r}this._managedResources.length--,t._gcData=null,t._gcLastUsed=-1}addResourceHash(t,e,r,s=0){this._managedResourceHashes.push({context:t,hash:e,type:r,priority:s}),this._managedResourceHashes.sort((n,o)=>n.priority-o.priority)}run(){let t=performance.now(),e=this._managedResourceHashes;for(let s of e)this.runOnHash(s,t);let r=0;for(let s=0;s<this._managedResources.length;s++){let n=this._managedResources[s];r=this.runOnResource(n,t,r)}this._managedResources.length=r}updateRenderableGCTick(t,e){let r=t.renderGroup??t.parentRenderGroup,s=r?.instructionSet?.gcTick??-1;(r?.gcTick??0)===s&&(t._gcLastUsed=e,t._onTouch?.(e))}runOnResource(t,e,r){let s=t._gcData;return s.type==="renderable"&&this.updateRenderableGCTick(t,e),e-t._gcLastUsed<this.maxUnusedTime||!t.autoGarbageCollect?(this._managedResources[r]=t,s.index=r,r++):(t.unload(),t._gcData=null,t._gcLastUsed=-1,t.off("unload",this.removeResource,this)),r}_createHashClone(t,e){let r=Object.create(null);for(let s in t){if(s===e)break;t[s]!==null&&(r[s]=t[s])}return r}runOnHash(t,e){let{context:r,hash:s,type:n}=t,o=r[s],a=null,l=0;for(let c in o){let h=o[c];if(h===null){l++,l===1e4&&!a&&(a=this._createHashClone(o,c));continue}if(h._gcLastUsed===-1){h._gcLastUsed=e,h._onTouch?.(e),a&&(a[c]=h);continue}if(n==="renderable"&&this.updateRenderableGCTick(h,e),!(e-h._gcLastUsed<this.maxUnusedTime)&&h.autoGarbageCollect){if(n==="renderable"){let d=h,f=d.renderGroup??d.parentRenderGroup;f&&(f.structureDidChange=!0)}h.unload(),h._gcData=null,h._gcLastUsed=-1,a||(l+1!==1e4?(o[c]=null,l++):a=this._createHashClone(o,c))}else a&&(a[c]=h)}a&&(r[s]=a)}destroy(){this.enabled=!1,this._managedResources.forEach(t=>{t.off("unload",this.removeResource,this)}),this._managedResources.length=0,this._managedResourceHashes.length=0,this._managedCollections.length=0,this._renderer=null}};iu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"gc",priority:0};iu.defaultOptions={gcActive:!0,gcMaxUnusedTime:6e4,gcFrequency:3e4};t_=iu});function Wi(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 Ga=p(()=>{"use strict"});var gn,r_=p(()=>{P();ot();Ee();Ga();mr();Ne();me();gn=class{constructor(t){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=t}reset(){this._stackIndex=0;for(let t=0;t<this._activeUniforms.length;t++)this._uniformsPool.push(this._activeUniforms[t]);for(let t=0;t<this._activeBindGroups.length;t++)this._bindGroupPool.push(this._activeBindGroups[t]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(t){this.reset(),this.push(t)}bind({size:t,projectionMatrix:e,worldTransformMatrix:r,worldColor:s,offset:n}){let o=this._renderer.renderTarget.renderTarget,a=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:o,worldTransformMatrix:new k,worldColor:4294967295,offset:new nt},l={projectionMatrix:e||this._renderer.renderTarget.projectionMatrix,resolution:t||o.size,worldTransformMatrix:r||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},c=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(c);let h=c.uniforms;h.uProjectionMatrix=l.projectionMatrix,h.uResolution=l.resolution,h.uWorldTransformMatrix.copyFrom(l.worldTransformMatrix),h.uWorldTransformMatrix.tx-=l.offset.x,h.uWorldTransformMatrix.ty-=l.offset.y,Wi(l.worldColor,h.uWorldColorAlpha,0),c.update();let u;this._renderer.renderPipes.uniformBatch?u=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(c,!1):(u=this._bindGroupPool.pop()||new Vt,this._activeBindGroups.push(u),u.setResource(c,0)),l.bindGroup=u,this._currentGlobalUniformData=l}push(t){this.bind(t),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Lt.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new Ct({uProjectionMatrix:{value:new k,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new k,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null,this._globalUniformDataStack.length=0,this._uniformsPool.length=0,this._activeUniforms.length=0,this._bindGroupPool.length=0,this._activeBindGroups.length=0,this._currentGlobalUniformData=null}};gn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"globalUniforms"}});var IT,xn,i_=p(()=>{P();Ti();IT=1,xn=class{constructor(){this._tasks=[],this._offset=0}init(){qt.system.add(this._update,this)}repeat(t,e,r=!0){let s=IT++,n=0;return r&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:t,duration:e,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(t){for(let e=0;e<this._tasks.length;e++)if(this._tasks[e].id===t){this._tasks.splice(e,1);return}}_update(){let t=performance.now();for(let e=0;e<this._tasks.length;e++){let r=this._tasks[e];if(t-r.offset-r.last>=r.duration){let s=t-r.start;r.func(s),r.last=t}}}destroy(){qt.system.remove(this._update,this),this._tasks.length=0}};xn.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"scheduler",priority:0}});function n_(i){if(!s_){if(W.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let t=[`%c %c %c %c %c PixiJS %c v${zi} (${i}) http://www.pixijs.com/
|
|
571
571
|
|
|
572
|
-
`,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...t)}else globalThis.console&&globalThis.console.log(`PixiJS ${Ni} - ${i} - http://www.pixijs.com/`);r_=!0}}var r_,s_=p(()=>{xt();Oh();r_=!1});var Wi,n_=p(()=>{P();s_();Ne();Wi=class{constructor(t){this._renderer=t}init(t){if(t.hello){let e=this._renderer.name;this._renderer.type===Lt.WEBGL&&(e+=` ${this._renderer.context.webGLVersion}`),i_(e)}}};Wi.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"hello",priority:-2};Wi.defaultOptions={hello:!1}});var su,a_,l_=p(()=>{P();yt();su=class o_{constructor(t){this._renderer=t}init(t){t={...o_.defaultOptions,...t},this.maxUnusedTime=t.renderableGCMaxUnusedTime}get enabled(){return O("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled}set enabled(t){O("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled=t}addManagedHash(t,e){O("8.15.0","RenderableGCSystem.addManagedHash is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(t,e,"hash")}addManagedArray(t,e){O("8.15.0","RenderableGCSystem.addManagedArray is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(t,e,"array")}addRenderable(t){O("8.15.0","RenderableGCSystem.addRenderable is deprecated, please use the GCSystem instead."),this._renderer.gc.addResource(t,"renderable")}run(){O("8.15.0","RenderableGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};su.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"renderableGC",priority:0};su.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};a_=su});var nu,c_,h_=p(()=>{P();yt();nu=class Ga{get count(){return this._renderer.tick}get checkCount(){return this._checkCount}set checkCount(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._checkCount=t}get maxIdle(){return this._renderer.gc.maxUnusedTime/1e3*60}set maxIdle(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.maxUnusedTime=t/60*1e3}get checkCountMax(){return Math.floor(this._renderer.gc._frequency/1e3)}set checkCountMax(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead.")}get active(){return this._renderer.gc.enabled}set active(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.enabled=t}constructor(t){this._renderer=t,this._checkCount=0}init(t){t.textureGCActive!==Ga.defaultOptions.textureGCActive&&(this.active=t.textureGCActive),t.textureGCMaxIdle!==Ga.defaultOptions.textureGCMaxIdle&&(this.maxIdle=t.textureGCMaxIdle),t.textureGCCheckCountMax!==Ga.defaultOptions.textureGCCheckCountMax&&(this.checkCountMax=t.textureGCCheckCountMax)}run(){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};nu.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"textureGC"};nu.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};c_=nu});var u_,Vi,ou=p(()=>{Ft();$t();gt();u_=class d_{constructor(t={}){this.uid=$("renderTarget"),this.colorAttachments=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,this._depth=!1,this._stencil=!1,this._colorTextures=null;let e="colorAttachments"in t?t:this._normalizeOptions(t);if(this.isRoot=e.isRoot??!1,this.label=e.label,this.colorAttachments=e.colorAttachments,this.depthStencilAttachment=e.depthStencilAttachment,this.depthStencilAttachment){let r=this.depthStencilAttachment.texture.format;this._depth||(this._depth=r.includes("depth")),this._stencil||(this._stencil=r.includes("stencil"))}if(this.colorAttachments.length===0&&!this.depthStencilAttachment)throw new Error("[RenderTarget] no color textures or depth textures were provided. Provide a depthStencilTexture or set depth/stencil to true when using colorTextures: 0.");if(this.colorAttachments.length>0){let r=this.colorTexture;this.resize(r.width,r.height,r._resolution)}this.sizeSource&&this.sizeSource.on("resize",this.onSourceResize,this)}_normalizeOptions(t){let e={...d_.defaultOptions,...t},r=[],s;if(typeof e.colorTextures=="number"){if(e.colorTextures>0){this._managedColorTextures=!0;for(let o=0;o<e.colorTextures;o++)r.push({texture:new st({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}),loadOp:"clear",storeOp:"store"})}}else e.colorTextures.forEach(o=>{r.push({texture:o.source,loadOp:"clear",storeOp:"store"})});let n=e.depthStencilTexture===!0;if(this._depth=!!(e.depth||n),this._stencil=!!(e.stencil||n),e.depthStencilTexture instanceof U||e.depthStencilTexture instanceof st){if(e.isRoot)throw new Error("[RenderTarget] cannot attach a depth-stencil texture to the screen \u2014 the canvas owns its own depth/stencil buffers. Render to a texture target instead.");s={texture:e.depthStencilTexture.source}}else(n&&!e.isRoot||(e.stencil||e.depth)&&r.length===0)&&(s=this._createDepthStencilTexture(e.width,e.height,e.resolution));return{colorAttachments:r,depthStencilAttachment:s,isRoot:e.isRoot,label:e.label}}get size(){let t=this._size;return t[0]=this.pixelWidth,t[1]=this.pixelHeight,t}get width(){return this.sizeSource.width}get height(){return this.sizeSource.height}get pixelWidth(){return this.sizeSource.pixelWidth}get pixelHeight(){return this.sizeSource.pixelHeight}get resolution(){return this.sizeSource._resolution}get colorTextures(){return this._colorTextures||(this._colorTextures=this.colorAttachments.map(t=>t.texture)),this._colorTextures}get depthStencilTexture(){return this.depthStencilAttachment?.texture??null}get depth(){return this._depth}get stencil(){return this._stencil}get colorTexture(){return this.colorAttachments[0]?.texture}get sizeSource(){return this.colorAttachments[0]?.texture??this.depthStencilAttachment?.texture}onSourceResize(t){this.resize(t.width,t.height,t._resolution,!0)}ensureDepthStencilTexture(){this._createDepthStencilTexture(this.sizeSource.width,this.sizeSource.height,this.sizeSource._resolution),this._depth=!0,this._stencil=!0}resize(t,e,r=this.resolution,s=!1){if(this.dirtyId++,this.colorAttachments.forEach((n,o)=>{s&&o===0||n.texture.resize(t,e,r)}),this.depthStencilAttachment){if(s&&this.colorAttachments.length===0)return;this.depthStencilAttachment.texture.resize(t,e,r)}}destroy(){!this.colorAttachments&&!this.depthStencilAttachment||(this.sizeSource.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorAttachments.forEach(t=>{t.texture.destroy()}),this.depthStencilAttachment&&(this.depthStencilAttachment.texture.destroy(),delete this.depthStencilAttachment),this.colorAttachments=null,this._colorTextures=null)}_createDepthStencilTexture(t,e,r){return this.depthStencilAttachment??(this.depthStencilAttachment={texture:new st({width:t,height:e,resolution:r,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1})}),this.depthStencilAttachment}};u_.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};Vi=u_});function Fa(i,t){if(!ji.has(i)){let e=new U({source:new wt({resource:i,...t})}),r=()=>{ji.get(i)===e&&ji.delete(i)};e.once("destroy",r),e.source.once("destroy",r),ji.set(i,e)}return ji.get(i)}var ji,au=p(()=>{Pr();fr();gt();ji=new Map;ye.register(ji)});var lu,p_,m_=p(()=>{xt();P();Yt();yt();ou();au();lu=class f_{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(t){this.texture.source.autoDensity=t}get resolution(){return this.texture.source._resolution}set resolution(t){this.texture.source.resize(this.texture.source.width,this.texture.source.height,t)}init(t){t={...f_.defaultOptions,...t},t.view&&(O(rt,"ViewSystem.view has been renamed to ViewSystem.canvas"),t.canvas=t.view),this.screen=new J(0,0,t.width,t.height),this.canvas=t.canvas||W.get().createCanvas(),this.antialias=!!t.antialias,this.texture=Fa(this.canvas,t),this.renderTarget=new Vi({colorTextures:[this.texture],depth:!!t.depth,isRoot:!0}),this.texture.source.transparent=t.backgroundAlpha<1,this.resolution=t.resolution}resize(t,e,r){this.texture.source.resize(t,e,r),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(t=!1){(typeof t=="boolean"?t:!!t?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.texture.destroy()}};lu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"view",priority:0};lu.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};p_=lu});var Xi,Ua,Da=p(()=>{Ih();Fh();mx();Lh();Nh();qh();Qh();Lx();Ox();Hx();tu();jx();Yx();Jx();t_();e_();n_();l_();h_();m_();Xi=[zx,mn,Wi,p_,Js,Qx,c_,pn,Vx,en,a_,gn],Ua=[Kr,hn,Yr,Xr,qr,dn,un,jr]});var xn,g_=p(()=>{P();xn=class{constructor(t){this._hash=Object.create(null),this._renderer=t}contextChange(t){this._gpu=t}getBindGroup(t,e,r){let s=`${t._key}:${e._layoutKey<<4|r}`;return this._hash[s]||this._createBindGroup(s,t,e,r)}_createBindGroup(t,e,r,s){let n=this._gpu.device,o=r.layout[s],a=[],l=this._renderer;for(let u in o){let d=e.resources[u]??e.resources[o[u]];if(!d||d.destroyed)throw new Error(`[BindGroup] the resource bound as '${u}' was destroyed while a shader still uses it. Remove it from the shader before destroying it.`);let f;if(d._resourceType==="uniformGroup"){let m=d;l.ubo.updateUniformGroup(m);let g=m.buffer;f={buffer:l.buffer.getGPUBuffer(g),offset:0,size:g.descriptor.size}}else if(d._resourceType==="buffer"){let m=d;f={buffer:l.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(d._resourceType==="bufferResource"){let m=d;f={buffer:l.buffer.getGPUBuffer(m.buffer),offset:m.offset,size:m.size??m.buffer.descriptor.size}}else if(d._resourceType==="textureSampler"){let m=d;f=l.texture.getGpuSampler(m)}else if(d._resourceType==="textureSource"){let m=d;f=l.texture.getTextureView(m)}else if(d._resourceType==="textureView"){let m=d;f=l.texture.getTextureView(m.source,m.viewDescriptor)}a.push({binding:o[u],resource:f})}let c=l.shader.getProgramData(r).bindGroups[s],h=n.createBindGroup({layout:c,entries:a});return this._hash[t]=h,h}destroy(){this._hash=null,this._renderer=null}};xn.extension={type:[y.WebGPUSystem],name:"bindGroup"}});var kt,Ie=p(()=>{"use strict";kt=class{constructor(t){this.items=Object.create(null);let{renderer:e,type:r,onUnload:s,priority:n,name:o}=t;this._renderer=e,e.gc.addResourceHash(this,"items",r,n??0),this._onUnload=s,this.name=o}add(t){return this.items[t.uid]?!1:(this.items[t.uid]=t,t.once("unload",this.remove,this),t._gcLastUsed=this._renderer.gc.now,!0)}remove(t,...e){if(!this.items[t.uid])return;let r=t._gpuData[this._renderer.uid];r&&(this._onUnload?.(t,...e),r.destroy(),t._gpuData[this._renderer.uid]=null,this.items[t.uid]=null)}removeAll(...t){Object.values(this.items).forEach(e=>e&&this.remove(e,...t))}destroy(...t){this.removeAll(...t),this.items=Object.create(null),this._renderer=null,this._onUnload=null}}});var cu,_n,x_=p(()=>{P();Ie();Hh();cu=class{constructor(t){this.gpuBuffer=t}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}},_n=class{constructor(t){this._renderer=t,this._managedBuffers=new kt({renderer:t,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(t){this._gpu=t}getGPUBuffer(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(t)}updateBuffer(t){let e=this.getGPUBuffer(t),r=t.data;return t._updateID&&r&&(t._updateID=0,this._gpu.device.queue.writeBuffer(e,t._updateOffset,r.buffer,r.byteOffset+t._updateOffset,(t._updateSize||r.byteLength)+3&-4)),e}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(t){t.off("update",this.updateBuffer,this),t.off("change",this.onBufferChange,this)}createGPUBuffer(t){let e=this._gpu.device.createBuffer(t.descriptor);return t._updateID=0,t.data&&(rn(t.data.buffer,e.getMappedRange(),t.data.byteOffset,t.data.byteLength),e.unmap()),t._gpuData[this._renderer.uid]=new cu(e),this._managedBuffers.add(t)&&(t.on("update",this.updateBuffer,this),t.on("change",this.onBufferChange,this)),e}onBufferChange(t){this._managedBuffers.remove(t),t._updateID=0,this.createGPUBuffer(t)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}};_n.extension={type:[y.WebGPUSystem],name:"buffer"}});var yn,__=p(()=>{P();yn=class{constructor(t){this._colorMaskCache=15,this._renderer=t}setMask(t){this._colorMaskCache!==t&&(this._colorMaskCache=t,this._renderer.pipeline.setColorMask(t))}destroy(){this._renderer=null,this._colorMaskCache=null}};yn.extension={type:[y.WebGPUSystem],name:"colorMask"}});var Yi,y_=p(()=>{xt();P();Yi=class{constructor(t){this._renderer=t}async init(t){return this._initPromise?this._initPromise:(this._initPromise=(t.gpu?Promise.resolve(t.gpu):this._createDeviceAndAdaptor(t)).then(e=>{this.gpu=e,this.extensions={transientAttachment:typeof GPUTextureUsage.TRANSIENT_ATTACHMENT=="number"},this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(t){this._renderer.gpu=t}async _createDeviceAndAdaptor(t){let e=await W.get().getNavigator().gpu.requestAdapter({powerPreference:t.powerPreference,forceFallbackAdapter:t.forceFallbackAdapter});if(!e)throw new Error("WebGPU not supported. No GPU adapter was returned by navigator.gpu.requestAdapter().");let r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2","indirect-first-instance"].filter(n=>e.features.has(n)),s=await e.requestDevice({requiredFeatures:r,requiredLimits:{maxSampledTexturesPerShaderStage:e.limits.maxSampledTexturesPerShaderStage,maxSamplersPerShaderStage:e.limits.maxSamplersPerShaderStage}});return{adapter:e,device:s}}destroy(){this.gpu=null,this.extensions=null,this._renderer=null}};Yi.extension={type:[y.WebGPUSystem],name:"device"};Yi.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var bn,b_=p(()=>{P();bn=class{constructor(t){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=t;for(let e=0;e<16;e++)this._boundBindGroup[e]={bindGroup:null,program:null,key:null}}renderStart(){this.commandFinished=new Promise(t=>{this._resolveCommandFinished=t}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(t){this.endRenderPass(),this._clearCache(),this._passEncoder=this.commandEncoder.beginRenderPass(t.descriptor),this.renderPassEncoder=this._passEncoder}endRenderPass(){this._passEncoder&&this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null}beginBundle(){if(this._passEncoder!==this.renderPassEncoder)throw new Error("Cannot begin a new render bundle while one is already being recorded.");this._clearCache();let t=this._renderer.pipeline.getBundleDescriptor();this.renderPassEncoder=this._gpu.device.createRenderBundleEncoder(t)}endBundle(){let t=this.renderPassEncoder;if(!t||!("finish"in t))throw new Error("endBundle called without an active render bundle.");let e=t.finish();return this.renderPassEncoder=this._passEncoder,this._clearCache(),e}executeBundle(t){this._clearCache(),this._passEncoder.executeBundles([t])}setViewport(t){this._passEncoder.setViewport(t.x,t.y,t.width,t.height,0,1)}setStencilReference(t){this._passEncoder.setStencilReference(t)}setPipelineFromGeometryProgramAndState(t,e,r,s,n){let o=this._renderer.pipeline.getPipeline(t,e,r,s,n);this.setPipeline(o)}setPipeline(t){this._boundPipeline!==t&&(this._boundPipeline=t,this.renderPassEncoder.setPipeline(t))}_setVertexBuffer(t,e){this._boundVertexBuffer[t]!==e&&(this._boundVertexBuffer[t]=e,this.renderPassEncoder.setVertexBuffer(t,this._renderer.buffer.updateBuffer(e)))}_setIndexBuffer(t){if(this._boundIndexBuffer===t)return;this._boundIndexBuffer=t;let e=t.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(t),e)}resetBindGroup(t){let e=this._boundBindGroup[t];e.bindGroup=null,e.program=null,e.key=null}setBindGroup(t,e,r){let s=this._boundBindGroup[t];if(s.bindGroup===e&&s.program===r&&s.key===e._key)return;s.bindGroup=e,s.program=r,s.key=e._key,e._touch(this._renderer.gc.now,this._renderer.tick);let n=this._renderer.bindGroup.getBindGroup(e,r,t);this.renderPassEncoder.setBindGroup(t,n)}setGeometry(t,e){let r=this._renderer.pipeline.getBufferNamesToBind(t,e);for(let s in r)this._setVertexBuffer(parseInt(s,10),t.attributes[r[s]].buffer);t.indexBuffer&&this._setIndexBuffer(t.indexBuffer)}_setShaderBindGroups(t,e){let r=t.gpuProgram;for(let s in t.groups){if(!r.layout[s])continue;let n=t.groups[s];e||this._syncBindGroup(n),this.setBindGroup(s,n,r)}}_syncBindGroup(t){for(let e in t.resources){let r=t.resources[e];r&&r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(t){let{geometry:e,shader:r,state:s,topology:n,size:o,start:a,baseVertex:l,instanceCount:c,skipSync:h,firstInstance:u}=t;this.setPipelineFromGeometryProgramAndState(e,r.gpuProgram,s,n,r._overrides),this.setGeometry(e,r.gpuProgram),this._setShaderBindGroups(r,h),e.indexBuffer?this.renderPassEncoder.drawIndexed(o||e.indexBuffer.data.length,c??e.instanceCount,a||0,l||0,u||0):this.renderPassEncoder.draw(o||e.vertexCount,c??e.instanceCount,a||0,u||0)}drawIndirect(t){let{geometry:e,shader:r,state:s,topology:n,skipSync:o,indirectBuffer:a,indirectOffset:l}=t;this.setPipelineFromGeometryProgramAndState(e,r.gpuProgram,s,n,r._overrides),this.setGeometry(e,r.gpuProgram),this._setShaderBindGroups(r,o),e.indexBuffer?this.renderPassEncoder.drawIndexedIndirect(a,l):this.renderPassEncoder.drawIndirect(a,l)}finishRenderPass(){this._passEncoder&&(this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}_clearCache(){for(let t=0;t<16;t++){let e=this._boundBindGroup[t];e.bindGroup=null,e.program=null,e.key=null,this._boundVertexBuffer[t]=null}this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null,this.renderPassEncoder=null,this._passEncoder=null}contextChange(t){this._gpu=t}};bn.extension={type:[y.WebGPUSystem],name:"encoder",priority:1}});var vn,v_=p(()=>{P();vn=class{constructor(t){this.supportsOverrideConstants=!1,this._renderer=t}contextChange(){let t=this._renderer.device.gpu.device;this.maxTextures=Math.min(t.limits.maxSampledTexturesPerShaderStage,t.limits.maxSamplersPerShaderStage),this.maxBatchableTextures=this.maxTextures,this._detectOverrideConstantsSupport(t)}_detectOverrideConstantsSupport(t){t.pushErrorScope("validation");let e=t.createShaderModule({code:`override TEST_VALUE: f32 = 0.0;
|
|
573
|
-
@compute @workgroup_size(1) fn main() {}`});t.createComputePipeline({layout:"auto",compute:{module:e,entryPoint:"main",constants:{TEST_VALUE:1}}}),t.popErrorScope().then(r=>{this.supportsOverrideConstants=!r})}destroy(){}};
|
|
572
|
+
`,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...t)}else globalThis.console&&globalThis.console.log(`PixiJS ${zi} - ${i} - http://www.pixijs.com/`);s_=!0}}var s_,o_=p(()=>{xt();Oh();s_=!1});var Vi,a_=p(()=>{P();o_();Ne();Vi=class{constructor(t){this._renderer=t}init(t){if(t.hello){let e=this._renderer.name;this._renderer.type===Lt.WEBGL&&(e+=` ${this._renderer.context.webGLVersion}`),n_(e)}}};Vi.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"hello",priority:-2};Vi.defaultOptions={hello:!1}});var su,c_,h_=p(()=>{P();yt();su=class l_{constructor(t){this._renderer=t}init(t){t={...l_.defaultOptions,...t},this.maxUnusedTime=t.renderableGCMaxUnusedTime}get enabled(){return O("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled}set enabled(t){O("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled=t}addManagedHash(t,e){O("8.15.0","RenderableGCSystem.addManagedHash is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(t,e,"hash")}addManagedArray(t,e){O("8.15.0","RenderableGCSystem.addManagedArray is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(t,e,"array")}addRenderable(t){O("8.15.0","RenderableGCSystem.addRenderable is deprecated, please use the GCSystem instead."),this._renderer.gc.addResource(t,"renderable")}run(){O("8.15.0","RenderableGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};su.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"renderableGC",priority:0};su.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};c_=su});var nu,u_,d_=p(()=>{P();yt();nu=class Fa{get count(){return this._renderer.tick}get checkCount(){return this._checkCount}set checkCount(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._checkCount=t}get maxIdle(){return this._renderer.gc.maxUnusedTime/1e3*60}set maxIdle(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.maxUnusedTime=t/60*1e3}get checkCountMax(){return Math.floor(this._renderer.gc._frequency/1e3)}set checkCountMax(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead.")}get active(){return this._renderer.gc.enabled}set active(t){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.enabled=t}constructor(t){this._renderer=t,this._checkCount=0}init(t){t.textureGCActive!==Fa.defaultOptions.textureGCActive&&(this.active=t.textureGCActive),t.textureGCMaxIdle!==Fa.defaultOptions.textureGCMaxIdle&&(this.maxIdle=t.textureGCMaxIdle),t.textureGCCheckCountMax!==Fa.defaultOptions.textureGCCheckCountMax&&(this.checkCountMax=t.textureGCCheckCountMax)}run(){O("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};nu.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"textureGC"};nu.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};u_=nu});var f_,ji,ou=p(()=>{Ft();$t();gt();f_=class p_{constructor(t={}){this.uid=$("renderTarget"),this.colorAttachments=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,this._depth=!1,this._stencil=!1,this._colorTextures=null;let e="colorAttachments"in t?t:this._normalizeOptions(t);if(this.isRoot=e.isRoot??!1,this.label=e.label,this.colorAttachments=e.colorAttachments,this.depthStencilAttachment=e.depthStencilAttachment,this.depthStencilAttachment){let r=this.depthStencilAttachment.texture.format;this._depth||(this._depth=r.includes("depth")),this._stencil||(this._stencil=r.includes("stencil"))}if(this.colorAttachments.length===0&&!this.depthStencilAttachment)throw new Error("[RenderTarget] no color textures or depth textures were provided. Provide a depthStencilTexture or set depth/stencil to true when using colorTextures: 0.");if(this.colorAttachments.length>0){let r=this.colorTexture;this.resize(r.width,r.height,r._resolution)}this.sizeSource&&this.sizeSource.on("resize",this.onSourceResize,this)}_normalizeOptions(t){let e={...p_.defaultOptions,...t},r=[],s;if(typeof e.colorTextures=="number"){if(e.colorTextures>0){this._managedColorTextures=!0;for(let o=0;o<e.colorTextures;o++)r.push({texture:new st({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}),loadOp:"clear",storeOp:"store"})}}else e.colorTextures.forEach(o=>{r.push({texture:o.source,loadOp:"clear",storeOp:"store"})});let n=e.depthStencilTexture===!0;if(this._depth=!!(e.depth||n),this._stencil=!!(e.stencil||n),e.depthStencilTexture instanceof F||e.depthStencilTexture instanceof st){if(e.isRoot)throw new Error("[RenderTarget] cannot attach a depth-stencil texture to the screen \u2014 the canvas owns its own depth/stencil buffers. Render to a texture target instead.");s={texture:e.depthStencilTexture.source}}else(n&&!e.isRoot||(e.stencil||e.depth)&&r.length===0)&&(s=this._createDepthStencilTexture(e.width,e.height,e.resolution));return{colorAttachments:r,depthStencilAttachment:s,isRoot:e.isRoot,label:e.label}}get size(){let t=this._size;return t[0]=this.pixelWidth,t[1]=this.pixelHeight,t}get width(){return this.sizeSource.width}get height(){return this.sizeSource.height}get pixelWidth(){return this.sizeSource.pixelWidth}get pixelHeight(){return this.sizeSource.pixelHeight}get resolution(){return this.sizeSource._resolution}get colorTextures(){return this._colorTextures||(this._colorTextures=this.colorAttachments.map(t=>t.texture)),this._colorTextures}get depthStencilTexture(){return this.depthStencilAttachment?.texture??null}get depth(){return this._depth}get stencil(){return this._stencil}get colorTexture(){return this.colorAttachments[0]?.texture}get sizeSource(){return this.colorAttachments[0]?.texture??this.depthStencilAttachment?.texture}onSourceResize(t){this.resize(t.width,t.height,t._resolution,!0)}ensureDepthStencilTexture(){this._createDepthStencilTexture(this.sizeSource.width,this.sizeSource.height,this.sizeSource._resolution),this._depth=!0,this._stencil=!0}resize(t,e,r=this.resolution,s=!1){if(this.dirtyId++,this.colorAttachments.forEach((n,o)=>{s&&o===0||n.texture.resize(t,e,r)}),this.depthStencilAttachment){if(s&&this.colorAttachments.length===0)return;this.depthStencilAttachment.texture.resize(t,e,r)}}destroy(){!this.colorAttachments&&!this.depthStencilAttachment||(this.sizeSource.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorAttachments.forEach(t=>{t.texture.destroy()}),this.depthStencilAttachment&&(this.depthStencilAttachment.texture.destroy(),delete this.depthStencilAttachment),this.colorAttachments=null,this._colorTextures=null)}_createDepthStencilTexture(t,e,r){return this.depthStencilAttachment??(this.depthStencilAttachment={texture:new st({width:t,height:e,resolution:r,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1})}),this.depthStencilAttachment}};f_.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};ji=f_});function Ua(i,t){if(!Xi.has(i)){let e=new F({source:new Tt({resource:i,...t})}),r=()=>{Xi.get(i)===e&&Xi.delete(i)};e.once("destroy",r),e.source.once("destroy",r),Xi.set(i,e)}return Xi.get(i)}var Xi,au=p(()=>{Pr();fr();gt();Xi=new Map;ye.register(Xi)});var lu,g_,x_=p(()=>{xt();P();Yt();yt();ou();au();lu=class m_{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(t){this.texture.source.autoDensity=t}get resolution(){return this.texture.source._resolution}set resolution(t){this.texture.source.resize(this.texture.source.width,this.texture.source.height,t)}init(t){t={...m_.defaultOptions,...t},t.view&&(O(rt,"ViewSystem.view has been renamed to ViewSystem.canvas"),t.canvas=t.view),this.screen=new J(0,0,t.width,t.height),this.canvas=t.canvas||W.get().createCanvas(),this.antialias=!!t.antialias,this.texture=Ua(this.canvas,t),this.renderTarget=new ji({colorTextures:[this.texture],depth:!!t.depth,isRoot:!0}),this.texture.source.transparent=t.backgroundAlpha<1,this.resolution=t.resolution}resize(t,e,r){this.texture.source.resize(t,e,r),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(t=!1){(typeof t=="boolean"?t:!!t?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.texture.destroy()}};lu.extension={type:[y.WebGLSystem,y.WebGPUSystem,y.CanvasSystem],name:"view",priority:0};lu.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};g_=lu});var Yi,Da,La=p(()=>{Ih();Fh();xx();Lh();Nh();qh();Qh();Nx();zx();Vx();tu();Yx();qx();e_();r_();i_();a_();h_();d_();x_();Yi=[Wx,gn,Vi,g_,tn,t_,u_,mn,Xx,rn,c_,xn],Da=[Kr,un,Yr,Xr,qr,fn,dn,jr]});var _n,__=p(()=>{P();_n=class{constructor(t){this._hash=Object.create(null),this._renderer=t}contextChange(t){this._gpu=t}getBindGroup(t,e,r){let s=`${t._key}:${e._layoutKey<<4|r}`;return this._hash[s]||this._createBindGroup(s,t,e,r)}_createBindGroup(t,e,r,s){let n=this._gpu.device,o=r.layout[s],a=[],l=this._renderer;for(let u in o){let d=e.resources[u]??e.resources[o[u]];if(!d||d.destroyed)throw new Error(`[BindGroup] the resource bound as '${u}' was destroyed while a shader still uses it. Remove it from the shader before destroying it.`);let f;if(d._resourceType==="uniformGroup"){let m=d;l.ubo.updateUniformGroup(m);let g=m.buffer;f={buffer:l.buffer.getGPUBuffer(g),offset:0,size:g.descriptor.size}}else if(d._resourceType==="buffer"){let m=d;f={buffer:l.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(d._resourceType==="bufferResource"){let m=d;f={buffer:l.buffer.getGPUBuffer(m.buffer),offset:m.offset,size:m.size??m.buffer.descriptor.size}}else if(d._resourceType==="textureSampler"){let m=d;f=l.texture.getGpuSampler(m)}else if(d._resourceType==="textureSource"){let m=d;f=l.texture.getTextureView(m)}else if(d._resourceType==="textureView"){let m=d;f=l.texture.getTextureView(m.source,m.viewDescriptor)}a.push({binding:o[u],resource:f})}let c=l.shader.getProgramData(r).bindGroups[s],h=n.createBindGroup({layout:c,entries:a});return this._hash[t]=h,h}destroy(){this._hash=null,this._renderer=null}};_n.extension={type:[y.WebGPUSystem],name:"bindGroup"}});var kt,Ie=p(()=>{"use strict";kt=class{constructor(t){this.items=Object.create(null);let{renderer:e,type:r,onUnload:s,priority:n,name:o}=t;this._renderer=e,e.gc.addResourceHash(this,"items",r,n??0),this._onUnload=s,this.name=o}add(t){return this.items[t.uid]?!1:(this.items[t.uid]=t,t.once("unload",this.remove,this),t._gcLastUsed=this._renderer.gc.now,!0)}remove(t,...e){if(!this.items[t.uid])return;let r=t._gpuData[this._renderer.uid];r&&(this._onUnload?.(t,...e),r.destroy(),t._gpuData[this._renderer.uid]=null,this.items[t.uid]=null)}removeAll(...t){Object.values(this.items).forEach(e=>e&&this.remove(e,...t))}destroy(...t){this.removeAll(...t),this.items=Object.create(null),this._renderer=null,this._onUnload=null}}});var cu,yn,y_=p(()=>{P();Ie();Hh();cu=class{constructor(t){this.gpuBuffer=t}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}},yn=class{constructor(t){this._renderer=t,this._managedBuffers=new kt({renderer:t,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(t){this._gpu=t}getGPUBuffer(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(t)}updateBuffer(t){let e=this.getGPUBuffer(t),r=t.data;return t._updateID&&r&&(t._updateID=0,this._gpu.device.queue.writeBuffer(e,t._updateOffset,r.buffer,r.byteOffset+t._updateOffset,(t._updateSize||r.byteLength)+3&-4)),e}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(t){t.off("update",this.updateBuffer,this),t.off("change",this.onBufferChange,this)}createGPUBuffer(t){let e=this._gpu.device.createBuffer(t.descriptor);return t._updateID=0,t.data&&(sn(t.data.buffer,e.getMappedRange(),t.data.byteOffset,t.data.byteLength),e.unmap()),t._gpuData[this._renderer.uid]=new cu(e),this._managedBuffers.add(t)&&(t.on("update",this.updateBuffer,this),t.on("change",this.onBufferChange,this)),e}onBufferChange(t){this._managedBuffers.remove(t),t._updateID=0,this.createGPUBuffer(t)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}};yn.extension={type:[y.WebGPUSystem],name:"buffer"}});var bn,b_=p(()=>{P();bn=class{constructor(t){this._colorMaskCache=15,this._renderer=t}setMask(t){this._colorMaskCache!==t&&(this._colorMaskCache=t,this._renderer.pipeline.setColorMask(t))}destroy(){this._renderer=null,this._colorMaskCache=null}};bn.extension={type:[y.WebGPUSystem],name:"colorMask"}});var $i,v_=p(()=>{xt();P();$i=class{constructor(t){this._renderer=t}async init(t){return this._initPromise?this._initPromise:(this._initPromise=(t.gpu?Promise.resolve(t.gpu):this._createDeviceAndAdaptor(t)).then(e=>{this.gpu=e,this.extensions={transientAttachment:typeof GPUTextureUsage.TRANSIENT_ATTACHMENT=="number"},this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(t){this._renderer.gpu=t}async _createDeviceAndAdaptor(t){let e=await W.get().getNavigator().gpu.requestAdapter({powerPreference:t.powerPreference,forceFallbackAdapter:t.forceFallbackAdapter});if(!e)throw new Error("WebGPU not supported. No GPU adapter was returned by navigator.gpu.requestAdapter().");let r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2","indirect-first-instance"].filter(n=>e.features.has(n)),s=await e.requestDevice({requiredFeatures:r,requiredLimits:{maxSampledTexturesPerShaderStage:e.limits.maxSampledTexturesPerShaderStage,maxSamplersPerShaderStage:e.limits.maxSamplersPerShaderStage}});return{adapter:e,device:s}}destroy(){this.gpu=null,this.extensions=null,this._renderer=null}};$i.extension={type:[y.WebGPUSystem],name:"device"};$i.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var vn,S_=p(()=>{P();vn=class{constructor(t){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=t;for(let e=0;e<16;e++)this._boundBindGroup[e]={bindGroup:null,program:null,key:null}}renderStart(){this.commandFinished=new Promise(t=>{this._resolveCommandFinished=t}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(t){this.endRenderPass(),this._clearCache(),this._passEncoder=this.commandEncoder.beginRenderPass(t.descriptor),this.renderPassEncoder=this._passEncoder}endRenderPass(){this._passEncoder&&this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null}beginBundle(){if(this._passEncoder!==this.renderPassEncoder)throw new Error("Cannot begin a new render bundle while one is already being recorded.");this._clearCache();let t=this._renderer.pipeline.getBundleDescriptor();this.renderPassEncoder=this._gpu.device.createRenderBundleEncoder(t)}endBundle(){let t=this.renderPassEncoder;if(!t||!("finish"in t))throw new Error("endBundle called without an active render bundle.");let e=t.finish();return this.renderPassEncoder=this._passEncoder,this._clearCache(),e}executeBundle(t){this._clearCache(),this._passEncoder.executeBundles([t])}setViewport(t){this._passEncoder.setViewport(t.x,t.y,t.width,t.height,0,1)}setStencilReference(t){this._passEncoder.setStencilReference(t)}setPipelineFromGeometryProgramAndState(t,e,r,s,n){let o=this._renderer.pipeline.getPipeline(t,e,r,s,n);this.setPipeline(o)}setPipeline(t){this._boundPipeline!==t&&(this._boundPipeline=t,this.renderPassEncoder.setPipeline(t))}_setVertexBuffer(t,e){this._boundVertexBuffer[t]!==e&&(this._boundVertexBuffer[t]=e,this.renderPassEncoder.setVertexBuffer(t,this._renderer.buffer.updateBuffer(e)))}_setIndexBuffer(t){if(this._boundIndexBuffer===t)return;this._boundIndexBuffer=t;let e=t.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(t),e)}resetBindGroup(t){let e=this._boundBindGroup[t];e.bindGroup=null,e.program=null,e.key=null}setBindGroup(t,e,r){let s=this._boundBindGroup[t];if(s.bindGroup===e&&s.program===r&&s.key===e._key)return;s.bindGroup=e,s.program=r,s.key=e._key,e._touch(this._renderer.gc.now,this._renderer.tick);let n=this._renderer.bindGroup.getBindGroup(e,r,t);this.renderPassEncoder.setBindGroup(t,n)}setGeometry(t,e){let r=this._renderer.pipeline.getBufferNamesToBind(t,e);for(let s in r)this._setVertexBuffer(parseInt(s,10),t.attributes[r[s]].buffer);t.indexBuffer&&this._setIndexBuffer(t.indexBuffer)}_setShaderBindGroups(t,e){let r=t.gpuProgram;for(let s in t.groups){if(!r.layout[s])continue;let n=t.groups[s];e||this._syncBindGroup(n),this.setBindGroup(s,n,r)}}_syncBindGroup(t){for(let e in t.resources){let r=t.resources[e];r&&r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(t){let{geometry:e,shader:r,state:s,topology:n,size:o,start:a,baseVertex:l,instanceCount:c,skipSync:h,firstInstance:u}=t;this.setPipelineFromGeometryProgramAndState(e,r.gpuProgram,s,n,r._overrides),this.setGeometry(e,r.gpuProgram),this._setShaderBindGroups(r,h),e.indexBuffer?this.renderPassEncoder.drawIndexed(o||e.indexBuffer.data.length,c??e.instanceCount,a||0,l||0,u||0):this.renderPassEncoder.draw(o||e.vertexCount,c??e.instanceCount,a||0,u||0)}drawIndirect(t){let{geometry:e,shader:r,state:s,topology:n,skipSync:o,indirectBuffer:a,indirectOffset:l}=t;this.setPipelineFromGeometryProgramAndState(e,r.gpuProgram,s,n,r._overrides),this.setGeometry(e,r.gpuProgram),this._setShaderBindGroups(r,o),e.indexBuffer?this.renderPassEncoder.drawIndexedIndirect(a,l):this.renderPassEncoder.drawIndirect(a,l)}finishRenderPass(){this._passEncoder&&(this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}_clearCache(){for(let t=0;t<16;t++){let e=this._boundBindGroup[t];e.bindGroup=null,e.program=null,e.key=null,this._boundVertexBuffer[t]=null}this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null,this.renderPassEncoder=null,this._passEncoder=null}contextChange(t){this._gpu=t}};vn.extension={type:[y.WebGPUSystem],name:"encoder",priority:1}});var Sn,T_=p(()=>{P();Sn=class{constructor(t){this.supportsOverrideConstants=!1,this._renderer=t}contextChange(){let t=this._renderer.device.gpu.device;this.maxTextures=Math.min(t.limits.maxSampledTexturesPerShaderStage,t.limits.maxSamplersPerShaderStage),this.maxBatchableTextures=this.maxTextures,this._detectOverrideConstantsSupport(t)}_detectOverrideConstantsSupport(t){t.pushErrorScope("validation");let e=t.createShaderModule({code:`override TEST_VALUE: f32 = 0.0;
|
|
573
|
+
@compute @workgroup_size(1) fn main() {}`});t.createComputePipeline({layout:"auto",compute:{module:e,entryPoint:"main",constants:{TEST_VALUE:1}}}),t.popErrorScope().then(r=>{this.supportsOverrideConstants=!r})}destroy(){}};Sn.extension={type:[y.WebGPUSystem],name:"limits"}});var Tn,w_=p(()=>{P();$r();Tn=class{constructor(t){this._renderTargetStencilState=Object.create(null),this._renderer=t,t.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(t){let e=this._renderTargetStencilState[t.uid];e||(e=this._renderTargetStencilState[t.uid]={stencilMode:vt.DISABLED,stencilReference:0}),this._activeRenderTarget=t,this.setStencilMode(e.stencilMode,e.stencilReference)}setStencilMode(t,e){let r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=t,r.stencilReference=e;let s=this._renderer;s.pipeline.setStencilMode(t),s.encoder.setStencilReference(e)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};Tn.extension={type:[y.WebGPUSystem],name:"stencil"}});var br,Oa=p(()=>{gh();xr();ir();br=class{constructor(t){this._syncFunctionHash=Object.create(null),this._adaptor=t,this._systemCheck()}_systemCheck(){if(!ca())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(t){let e=this.getUniformGroupData(t);t.buffer||(t.buffer=new At({data:new Float32Array(e.layout.size/4),usage:tt.UNIFORM|tt.COPY_DST}))}getUniformGroupData(t){return this._syncFunctionHash[t._signature]||this._initUniformGroup(t)}_initUniformGroup(t){let e=t._signature,r=this._syncFunctionHash[e];if(!r){let s=Object.keys(t.uniformStructures).map(a=>t.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);r=this._syncFunctionHash[e]={layout:n,syncFunction:o}}return this._syncFunctionHash[e]}_generateUboSync(t){return this._adaptor.generateUboSync(t)}syncUniformGroup(t,e,r){let s=this.getUniformGroupData(t);t.buffer||(t.buffer=new At({data:new Float32Array(s.layout.size/4),usage:tt.UNIFORM|tt.COPY_DST}));let n=null;return e||(e=t.buffer.data,n=t.buffer.dataInt32),r||(r=0),s.syncFunction(t.uniforms,e,n,r),!0}updateUniformGroup(t){if(t.isStatic&&!t._dirtyId)return!1;t._dirtyId=0;let e=this.syncUniformGroup(t);return t.buffer.update(),e}destroy(){this._syncFunctionHash=null}}});function C_(i){let t=i.map(r=>({data:r,offset:0,size:0})),e=0;for(let r=0;r<t.length;r++){let s=t[r],n=Zr[s.data.type].size,o=Zr[s.data.type].align;if(!Zr[s.data.type])throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(n=Math.max(n,o)*s.data.size),e=Math.ceil(e/o)*o,s.size=n,s.offset=e,e+=n}return e=Math.ceil(e/16)*16,{uboElements:t,size:e}}var Zr,Na=p(()=>{"use strict";Zr={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}}});var de,wn=p(()=>{"use strict";de=[{type:"mat3x3<f32>",test:i=>i.value.a!==void 0,ubo:`
|
|
574
574
|
var matrix = uv[name].toArray(true);
|
|
575
575
|
data[offset] = matrix[0];
|
|
576
576
|
data[offset + 1] = matrix[1];
|
|
@@ -641,23 +641,23 @@ fn mainFragment(
|
|
|
641
641
|
cv[2] = v.blue;
|
|
642
642
|
gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
|
|
643
643
|
}
|
|
644
|
-
`}]});function
|
|
644
|
+
`}]});function za(i,t,e){let r=[`
|
|
645
645
|
var v = null;
|
|
646
646
|
var v2 = null;
|
|
647
647
|
var t = 0;
|
|
648
648
|
var index = 0;
|
|
649
649
|
var name = null;
|
|
650
650
|
var arrayOffset = null;
|
|
651
|
-
`],s=0;for(let o=0;o<i.length;o++){let a=i[o],l=a.data.name,c=!1,h=0;for(let u=0;u<
|
|
651
|
+
`],s=0;for(let o=0;o<i.length;o++){let a=i[o],l=a.data.name,c=!1,h=0;for(let u=0;u<de.length;u++)if(de[u].test(a.data)){h=a.offset/4,r.push(`name = "${l}";`,`offset += ${h-s};`,de[u].ubo),c=!0;break}if(!c)if(a.data.size>1)h=a.offset/4,r.push(e(a,h-s));else{let u=t[a.data.type];h=a.offset/4,r.push(`
|
|
652
652
|
v = uv.${l};
|
|
653
653
|
offset += ${h-s};
|
|
654
654
|
${u};
|
|
655
655
|
`)}s=h}let n=r.join(`
|
|
656
|
-
`);return new Function("uv","data","dataInt32","offset",n)}var hu=p(()=>{
|
|
656
|
+
`);return new Function("uv","data","dataInt32","offset",n)}var hu=p(()=>{wn()});function qi(i,t){return`
|
|
657
657
|
for (let i = 0; i < ${i*t}; i++) {
|
|
658
658
|
data[offset + (((i / ${i})|0) * 4) + (i % ${i})] = v[i];
|
|
659
659
|
}
|
|
660
|
-
`}var uu,
|
|
660
|
+
`}var uu,E_,du=p(()=>{"use strict";uu={f32:`
|
|
661
661
|
data[offset] = v;`,i32:`
|
|
662
662
|
dataInt32[offset] = v;`,u32:`
|
|
663
663
|
dataInt32[offset] = v;`,"vec2<f32>":`
|
|
@@ -703,12 +703,12 @@ fn mainFragment(
|
|
|
703
703
|
data[offset + 10] = v[8];`,"mat4x4<f32>":`
|
|
704
704
|
for (let i = 0; i < 16; i++) {
|
|
705
705
|
data[offset + i] = v[i];
|
|
706
|
-
}`,"mat3x2<f32>"
|
|
706
|
+
}`,"mat3x2<f32>":qi(3,2),"mat4x2<f32>":qi(4,2),"mat2x3<f32>":qi(2,3),"mat4x3<f32>":qi(4,3),"mat2x4<f32>":qi(2,4),"mat3x4<f32>":qi(3,4)},E_={...uu,"mat2x2<f32>":`
|
|
707
707
|
data[offset] = v[0];
|
|
708
708
|
data[offset + 1] = v[1];
|
|
709
709
|
data[offset + 2] = v[2];
|
|
710
710
|
data[offset + 3] = v[3];
|
|
711
|
-
`}});function
|
|
711
|
+
`}});function P_(i,t){let{size:e,align:r}=Zr[i.data.type],s=(r-e)/4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
|
|
712
712
|
v = uv.${i.data.name};
|
|
713
713
|
${t!==0?`offset += ${t};`:""}
|
|
714
714
|
|
|
@@ -724,7 +724,7 @@ fn mainFragment(
|
|
|
724
724
|
}
|
|
725
725
|
${s!==0?`arrayOffset += ${s};`:""}
|
|
726
726
|
}
|
|
727
|
-
`}var E_=p(()=>{Oa()});function P_(i){return Na(i,w_,C_)}var M_=p(()=>{hu();du();E_()});var Qr,fu=p(()=>{P();La();Oa();M_();Qr=class extends br{constructor(){super({createUboElements:T_,generateUboSync:P_})}};Qr.extension={type:[y.WebGPUSystem],name:"ubo"}});var He,wn=p(()=>{Ht();Ft();He=class extends ut{constructor({buffer:t,offset:e,size:r}){super(),this.uid=$("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=$("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=t,this.offset=e|0,this.size=r,this.buffer.on("change",this.onBufferChange,this)}get _gcLastUsed(){return this.buffer?._gcLastUsed??-1}set _gcLastUsed(t){this.buffer&&(this.buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=$("resource"),this.emit("change",this)}destroy(t=!1){this.destroyed=!0,t&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}});var za,A_=p(()=>{"use strict";za=class{constructor({minUniformOffsetAlignment:t}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=t,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(t){if(t>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${t*4}`);let e=this.byteIndex,r=e+t*4;if(r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,r>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,e}addGroup(t){let e=this.addEmptyGroup(t.length);for(let r=0;r<t.length;r++)this.data[e/4+r]=t[r];return e}destroy(){this.data=null}}});var vr,Cn,R_=p(()=>{P();xr();wn();ir();A_();mr();vr=128,Cn=class{constructor(t){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=t,this._batchBuffer=new za({minUniformOffsetAlignment:vr});let e=256/vr;for(let r=0;r<e;r++){let s=tt.UNIFORM|tt.COPY_DST;r===0&&(s|=tt.COPY_SRC),this._buffers.push(new At({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){this._bindGroupHash=Object.create(null),this._batchBuffer.clear()}getUniformBindGroup(t,e){if(!e&&this._bindGroupHash[t.uid])return this._bindGroupHash[t.uid];this._renderer.ubo.ensureUniformGroup(t);let r=t.buffer.data,s=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(t,this._batchBuffer.data,s/4),this._bindGroupHash[t.uid]=this._getBindGroup(s/vr),this._bindGroupHash[t.uid]}getUboResource(t){this._renderer.ubo.updateUniformGroup(t);let e=t.buffer.data,r=this._batchBuffer.addGroup(e);return this._getBufferResource(r/vr)}getArrayBindGroup(t){let e=this._batchBuffer.addGroup(t);return this._getBindGroup(e/vr)}getArrayBufferResource(t){let r=this._batchBuffer.addGroup(t)/vr;return this._getBufferResource(r)}_getBufferResource(t){if(!this._bufferResources[t]){let e=this._buffers[t%2];this._bufferResources[t]=new He({buffer:e,offset:(t/2|0)*256,size:vr})}return this._bufferResources[t]}_getBindGroup(t){if(!this._bindGroups[t]){let e=new Vt({0:this._getBufferResource(t)});this._bindGroups[t]=e}return this._bindGroups[t]}_uploadBindGroups(){let t=this._renderer.buffer,e=this._buffers[0];e.update(this._batchBuffer.byteIndex),t.updateBuffer(e);let r=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];r.copyBufferToBuffer(t.getGPUBuffer(e),vr,t.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([r.finish()])}destroy(){for(let t=0;t<this._bindGroups.length;t++)this._bindGroups[t]?.destroy();this._bindGroups=null,this._bindGroupHash=null;for(let t=0;t<this._buffers.length;t++)this._buffers[t].destroy();this._buffers=null;for(let t=0;t<this._bufferResources.length;t++)this._bufferResources[t].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._renderer=null}};Cn.extension={type:[y.WebGPUPipes],name:"uniformBatch"}});function En(i,t){for(let e in i.attributes){let r=i.attributes[e],s=t[e];s?(r.format??(r.format=s.format),r.offset??(r.offset=s.offset),r.instance??(r.instance=s.instance)):L(`Attribute ${e} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}kT(i)}function kT(i){let{buffers:t,attributes:e}=i,r={},s={};for(let n in t){let o=t[n];r[o.uid]=0,s[o.uid]=0}for(let n in e){let o=e[n];r[o.buffer.uid]+=Jt(o.format).stride}for(let n in e){let o=e[n];o.stride??(o.stride=r[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=Jt(o.format).stride}}var pu=p(()=>{ht();pr()});var We,mu=p(()=>{$r();We=[];We[vt.NONE]=void 0;We[vt.DISABLED]={stencilWriteMask:0,stencilReadMask:0};We[vt.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};We[vt.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};We[vt.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};We[vt.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function I_(i,t){for(let[e,r]of Object.entries(t)){let s=new RegExp(`override\\s+${e}\\s*:\\s*(\\w+)\\s*(?:=[^;]*)?;`);i=i.replace(s,(n,o)=>{let a;return o==="u32"?a=`${Math.trunc(r)}u`:o==="i32"?a=`${Math.trunc(r)}`:a=Number.isInteger(r)?`${r}.0`:`${r}`,`const ${e}: ${o} = ${a};`})}return i}function G_(i,t,e,r,s,n){return i*35184372088832+t*536870912+n*16384+(e<<8)+(r<<3)+s}function U_(i){let t=F_[i];return t===void 0&&(t=F_[i]=GT++),t}function FT(i,t,e,r,s,n,o,a){return a<<20|n<<16|s<<13|e<<9|i<<6|o<<5|r<<1|t}var k_,BT,IT,B_,F_,GT,Pn,D_=p(()=>{P();ht();pu();Jc();$r();Mi();mu();k_={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4},BT=new Ri({}),IT={"depth24plus-stencil8":{depth:!0,stencil:!0,index:1},depth24plus:{depth:!0,stencil:!1,index:2},depth32float:{depth:!0,stencil:!1,index:3},"depth32float-stencil8":{depth:!0,stencil:!0,index:4},depth16unorm:{depth:!0,stencil:!1,index:5},stencil8:{depth:!1,stencil:!0,index:6}},B_={depth:!1,stencil:!1,index:0};F_=Object.create(null),GT=0;Pn=class{constructor(t){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=new Map,this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._colorTargetCount=1,this._colorFormat="bgra8unorm",this._colorFormatId=U_("bgra8unorm"),this._depthStencilFormat="depth24plus-stencil8",this._depthStencilFormatData=B_,this._depthReadOnly=!1,this._invertFrontFace=!1,this._renderer=t}contextChange(t){this._gpu=t,this.setStencilMode(vt.DISABLED),this._updatePipeHash()}setMultisampleCount(t){this._multisampleCount!==t&&(this._multisampleCount=t,this._updatePipeHash())}setRenderTarget(t){let e=t.colorAttachments[0]?.texture;this._multisampleCount=e?.source.antialias?4:1,this._colorTargetCount=t.colorAttachments.length,this._colorFormat=e?.format??"bgra8unorm",this._colorFormatId=U_(this._colorFormat),this._depthStencilFormat=t.depthStencilAttachment?.texture.format,this._depthStencilFormatData=IT[this._depthStencilFormat]||B_,this._depthReadOnly=t.depthStencilAttachment?.depthReadOnly??!1,this._invertFrontFace=!!t.flipY,this._updatePipeHash()}setColorMask(t){this._colorMask!==t&&(this._colorMask=t,this._updatePipeHash())}setStencilMode(t){this._stencilMode!==t&&(this._stencilMode=t,this._stencilState=We[t],this._updatePipeHash())}getBundleDescriptor(){let t=[];for(let r=0;r<this._colorTargetCount;r++)t.push(this._colorFormat);let e={colorFormats:t,sampleCount:this._multisampleCount};return(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil)&&(e.depthStencilFormat=this._depthStencilFormat),e}setPipeline(t,e,r,s){let n=this.getPipeline(t,e,r);s.setPipeline(n)}getPipelineKey(t,e,r,s,n){return t._layoutKey||(En(t,e.attributeData),this._generateBufferKey(t)),G_(t._layoutKey,e._layoutKey,r.data,r._blendModeId,k_[s],n.id)}getPipeline(t,e,r,s,n){t._layoutKey||(En(t,e.attributeData),this._generateBufferKey(t)),s||(s=t.topology),n||(n=BT);let o=G_(t._layoutKey,e._layoutKey,r.data,r._blendModeId,k_[s],n.id),a=this._pipeCache.get(o);return a||(a=this._createPipeline(t,e,r,s,n),this._pipeCache.set(o,a)),a}_createPipeline(t,e,r,s,n){let o=this._gpu.device,a=this._createVertexBufferLayouts(t,e),l=this._renderer.state.getColorTargets(r,this._colorTargetCount,this._colorFormat),c=this._stencilMode===vt.RENDERING_MASK_ADD?0:this._colorMask;for(let x=0;x<l.length;x++)l[x].writeMask=c;let h=this._renderer.shader.getProgramData(e).pipeline,u=Object.keys(n.data).length>0,d=e.vertex.source,f=e.fragment.source,m;u&&(this._renderer.limits.supportsOverrideConstants?m=n.data:(d=I_(d,n.data),f=I_(f,n.data)));let g={vertex:{module:this._getModule(d),entryPoint:e.vertex.entryPoint,constants:m,buffers:a},fragment:{module:this._getModule(f),entryPoint:e.fragment.entryPoint,targets:l,constants:m},primitive:{topology:s,cullMode:r.culling?"back":"none",frontFace:r.clockwiseFrontFace!==this._invertFrontFace?"cw":"ccw"},layout:h,multisample:{count:this._multisampleCount},label:e.name?`PIXI Pipeline (${e.name})`:"PIXI Pipeline"};if(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil){let x=this._depthStencilFormatData;g.depthStencil={...this._stencilState,format:this._depthStencilFormat,depthWriteEnabled:x.depth?r.depthMask&&!this._depthReadOnly:!1,depthCompare:x.depth&&r.depthTest?"less":"always"}}return o.createRenderPipeline(g)}_getModule(t){return this._moduleCache[t]||this._createModule(t)}_createModule(t){let e=this._gpu.device;return this._moduleCache[t]=e.createShaderModule({code:t}),this._moduleCache[t]}_generateBufferKey(t){let e=[],r=0,s=Object.keys(t.attributes).sort();for(let o=0;o<s.length;o++){let a=t.attributes[s[o]];e[r++]=a.offset,e[r++]=a.format,e[r++]=a.stride,e[r++]=a.instance}let n=e.join("|");return t._layoutKey=ke(n,"geometry"),t._layoutKey}_generateAttributeLocationsKey(t){let e=[],r=0,s=Object.keys(t.attributeData).sort();for(let o=0;o<s.length;o++){let a=t.attributeData[s[o]];e[r++]=a.location}let n=e.join("|");return t._attributeLocationsKey=ke(n,"programAttributes"),t._attributeLocationsKey}getBufferNamesToBind(t,e){let r=t._layoutKey<<16|e._attributeLocationsKey;if(this._bindingNamesCache[r])return this._bindingNamesCache[r];let s=this._createVertexBufferLayouts(t,e),n=Object.create(null),o=e.attributeData;for(let a=0;a<s.length;a++){let c=Object.values(s[a].attributes)[0].shaderLocation;for(let h in o)if(o[h].location===c){n[a]=h;break}}return this._bindingNamesCache[r]=n,n}_createVertexBufferLayouts(t,e){e._attributeLocationsKey||this._generateAttributeLocationsKey(e);let r=t._layoutKey<<16|e._attributeLocationsKey;if(this._bufferLayoutsCache[r])return this._bufferLayoutsCache[r];let s=[];return t.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let l in e.attributeData){let c=t.attributes[l];(c.divisor??1)!==1&&L(`Attribute ${l} has an invalid divisor value of '${c.divisor}'. WebGPU only supports a divisor value of 1`),c.buffer===n&&(o.arrayStride=c.stride,o.stepMode=c.instance?"instance":"vertex",a.push({shaderLocation:e.attributeData[l].location,offset:c.offset,format:c.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[r]=s,s}_updatePipeHash(){var t;let e=FT(this._stencilMode,this._multisampleCount===1?0:1,this._colorMask,this._colorTargetCount,this._depthStencilFormatData.index,this._colorFormatId,this._depthReadOnly?1:0,this._invertFrontFace?1:0);this._pipeCache=(t=this._pipeStateCaches)[e]??(t[e]=new Map)}destroy(){this._bufferLayoutsCache=null,this._pipeCache=null,this._gpu=null,this._renderer=null,this._bindingNamesCache=null,this._pipeStateCaches=null,this._moduleCache=null}};Pn.extension={type:[y.WebGPUSystem],name:"pipeline"}});function L_(i,t,e,r,s,n){let o=n?1:-1;return i.identity(),i.a=1/r*2,i.d=o*(1/s*2),i.tx=-1-t*i.a,i.ty=-o-e*i.d,i}var O_=p(()=>{"use strict"});function N_(i){if(i.colorAttachments.length===0)return!1;let t=i.colorTexture.resource;return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement&&document.body.contains(t)}var z_=p(()=>{"use strict"});var Sr,Ha=p(()=>{ot();Yt();yt();ht();ki();O_();Ne();wh();fr();$t();gt();au();z_();ou();Sr=class{constructor(t){this.rootViewPort=new J,this.viewport=new J,this.onRenderTargetChange=new Bi("onRenderTargetChange"),this.projectionMatrix=new k,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._bindState={target:null,frame:void 0,mipLevel:0,layer:0,flipY:!1},this._bindFrame=new J,this._renderer=t,t.gc.addCollection(this,"_gpuRenderTargetHash","hash")}get renderSurface(){return this._bindState.target}get mipLevel(){return this._bindState.mipLevel}get layer(){return this._bindState.layer}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart(t){this._renderTargetStack.length=0,this.push(t),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=N_(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(t,e=!0,r,s,n=0,o=0,a){let l;"target"in t?l=t:(O("8.20.0","RenderTargetSystem.bind: positional arguments are deprecated, please use an options object instead: bind({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),l={target:t,clear:e,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let c=l.target;e=l.clear??!0,r=l.clearColor,n=(l.mipLevel??0)|0,o=(l.layer??0)|0,a=l.flipY,s=l.frame;let h=this.getRenderTarget(c),u=this.renderTarget!==h;this.renderTarget=h;let d=this.getGpuRenderTarget(h);(h.pixelWidth!==d.width||h.pixelHeight!==d.height)&&(this.adaptor.resizeGpuRenderTarget(h),d.width=h.pixelWidth,d.height=h.pixelHeight);let f=h.colorAttachments[0]?.texture||h.depthStencilAttachment?.texture,m=this.viewport,g=f.arrayLayerCount||1;if(o<0||o>=g)throw new Error(`[RenderTargetSystem] layer ${o} is out of bounds (arrayLayerCount=${g}).`);let _=this._bindState;_.target=c,_.frame=s?this._bindFrame.copyFrom(s):void 0,_.mipLevel=n,_.layer=o,_.flipY=a;let x=Math.max(f.pixelWidth>>n,1),b=Math.max(f.pixelHeight>>n,1);if(!s&&c instanceof U&&(s=c.frame),s){let v=f._resolution,S=1<<Math.max(n,0),T=s.x*v+.5|0,w=s.y*v+.5|0,E=s.width*v+.5|0,B=s.height*v+.5|0,R=Math.floor(T/S),M=Math.floor(w/S),C=Math.ceil(E/S),A=Math.ceil(B/S);R<0&&(C+=R,R=0),M<0&&(A+=M,M=0),R=Math.min(R,x-1),M=Math.min(M,b-1),C=Math.min(C,x-R),A=Math.min(A,b-M),C=Math.max(C,1),A=Math.max(A,1),m.x=R,m.y=M,m.width=C,m.height=A}else m.x=0,m.y=0,m.width=x,m.height=b;return h.flipY=a,L_(this.projectionMatrix,0,0,m.width/f.resolution,m.height/f.resolution,!h.isRoot!=!!h.flipY),this.adaptor.startRenderPass(h,e,r,m,n,o),u&&this.onRenderTargetChange.emit(h),h}getBindState(t){if(!this.renderTarget)throw new Error("[RenderTargetSystem] getBindState is only valid while a render surface is bound");let e=this._bindState;return t??(t={}),t.target=e.target,t.clear=Et.NONE,t.clearColor=void 0,e.frame?t.frame?t.frame.copyFrom(e.frame):t.frame=e.frame.clone():t.frame=void 0,t.mipLevel=e.mipLevel,t.layer=e.layer,t.flipY=!!e.flipY,t}get frontFaceInverted(){let t=this.renderTarget;if(!t)return!1;let e=this._renderer.type===Lt.WEBGL&&!t.isRoot;return!!t.flipY!==e}clear(t,e=Et.ALL,r,s=this.mipLevel,n=this.layer){e&&(t&&(t=this.getRenderTarget(t)),this.adaptor.clear(t||this.renderTarget,e,r,this.viewport,s,n))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(t,e=Et.ALL,r,s,n=0,o=0,a){let l;"target"in t?l=t:(O("8.20.0","RenderTargetSystem.push: positional arguments are deprecated, please use an options object instead: push({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),l={target:t,clear:e,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let c=this.bind(l);return this._renderTargetStack.push({target:l.target,clear:!1,clearColor:void 0,frame:l.frame?l.frame.clone():void 0,mipLevel:l.mipLevel,layer:l.layer,flipY:l.flipY}),c}pop(){this._renderTargetStack.pop();let t=this._renderTargetStack[this._renderTargetStack.length-1];if(!t)throw new Error("[RenderTargetSystem] pop: no previous binding to restore (unbalanced pop)");return this.bind(t)}getRenderTarget(t){return t.isTexture&&(t=t.source),this._renderSurfaceToRenderTargetHash.get(t)??this._initRenderTarget(t)}copyToTexture(t,e,r,s,n){let o=this.getRenderTarget(t);r.x<0&&(s.width+=r.x,n.x-=r.x,r.x=0),r.y<0&&(s.height+=r.y,n.y-=r.y,r.y=0);let{pixelWidth:a,pixelHeight:l}=o;return s.width=Math.min(s.width,a-r.x),s.height=Math.min(s.height,l-r.y),this.adaptor.copyToTexture(o,e,r,s,n)}copyDepthTexture(t,e,r,s,n={x:0,y:0}){let o=this.getRenderTarget(t);if(!o.depthStencilAttachment){L("[RenderTargetSystem] copyDepthTexture: the source render target has no depth attachment to copy from");return}let a=e.source;if(!a.format.includes("depth")&&!a.format.includes("stencil")){L(`[RenderTargetSystem] copyDepthTexture: the destination texture must have a depth/stencil format (got '${a.format}')`);return}let l=r.x,c=r.y,h=n.x,u=n.y,d=s.width,f=s.height;l<0&&(d+=l,h-=l,l=0),c<0&&(f+=c,u-=c,c=0),d=Math.min(d,o.pixelWidth-l),f=Math.min(f,o.pixelHeight-c),d=Math.min(d,a.pixelWidth-h),f=Math.min(f,a.pixelHeight-u),!(d<=0||f<=0)&&this.adaptor.copyDepthTexture(o,e,{x:l,y:c},{width:d,height:f},{x:h,y:u})}ensureDepthStencil(){if(!this.renderTarget.stencil){if(this.renderTarget.depthStencilTexture){L(`[RenderTargetSystem] a stencil mask is being used, but the render target's depthStencilTexture format '${this.renderTarget.depthStencilTexture.format}' has no stencil aspect, so masking cannot work here. Use a 'depth24plus-stencil8' texture instead.`);return}this.renderTarget._depth=!0,this.renderTarget._stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport,0,this.layer)}}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((t,e)=>{t!==e&&this._releaseRenderTarget(e,t)}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(t){let e=null;if(wt.test(t)&&(t=Fa(t).source),t instanceof Vi)e=t;else if(t instanceof st){let r=t.format;e=r.includes("depth")||r.includes("stencil")?new Vi({colorTextures:0,depthStencilTexture:t}):new Vi({colorTextures:[t]}),t.source instanceof wt&&(e.isRoot=!0),t.once("destroy",this._onRenderSurfaceDestroy,this)}return this._renderSurfaceToRenderTargetHash.set(t,e),e}_onRenderSurfaceDestroy(t){let e=this._renderSurfaceToRenderTargetHash.get(t);e&&this._releaseRenderTarget(t,e)}_releaseRenderTarget(t,e){e.destroy(),this._renderSurfaceToRenderTargetHash.delete(t),t.off("destroy",this._onRenderSurfaceDestroy,this);let r=this._gpuRenderTargetHash[e.uid];r&&(this._gpuRenderTargetHash[e.uid]=null,this.adaptor.destroyGpuRenderTarget(r))}getGpuRenderTarget(t){return this._gpuRenderTargetHash[t.uid]||(this._gpuRenderTargetHash[t.uid]=this.adaptor.initGpuRenderTarget(t))}resetState(){this.renderTarget=null,this._bindState.target=null}}});var Wa,H_=p(()=>{"use strict";Wa=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});function DT(i){if(UT[i])return i;let t=navigator.gpu.getPreferredCanvasFormat();return L(`[WebGPU] CanvasSource format '${i}' is not a valid GPUCanvasContext format. Falling back to '${t}'. Allowed formats are: bgra8unorm, rgba8unorm, rgba16float.`),t}var UT,Va,W_=p(()=>{ht();ki();fr();$t();H_();UT={bgra8unorm:!0,rgba8unorm:!0,rgba16float:!0};Va=class{constructor(){this._activePass=null}init(t,e){this._renderer=t,this._renderTargetSystem=e}copyToTexture(t,e,r,s,n){let o=this._renderer;this.finishRenderPass();let a=this._getGpuColorTexture(t),l=o.texture.getGpuSource(e.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:r},{texture:l,origin:n},s),e}copyDepthTexture(t,e,r,s,n){let o=this._renderer;this.finishRenderPass();let a=t.depthStencilAttachment.texture,l=o.texture.getGpuSource(a),c=o.texture.getGpuSource(e.source),h=o.encoder.commandEncoder===null,u=h?o.gpu.device.createCommandEncoder():o.encoder.commandEncoder;u.copyTextureToTexture({texture:l,origin:r},{texture:c,origin:n},{width:s.width,height:s.height}),h&&o.gpu.device.queue.submit([u.finish()])}startRenderPass(t,e=!0,r,s,n=0,o=0){let l=this._renderTargetSystem.getGpuRenderTarget(t);if(o!==0&&l.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported with MSAA render targets.");if(n>0&&l.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");let c=e;typeof c=="boolean"&&(c=c?Et.ALL:Et.NONE),(t.stencil||t.depth)&&!t.depthStencilAttachment&&t.ensureDepthStencilTexture();let h=!!t.depthStencilAttachment,u=this._activePass;if(u!==null&&u.renderTarget===t&&u.mipLevel===n&&u.layer===o&&u.depthStencil===h&&this._renderer.encoder.renderPassEncoder!==null&&c===Et.NONE){this._renderer.encoder.setViewport(s);return}let f=this.getDescriptor(t,e,r,n,o);l.descriptor=f,this._renderer.pipeline.setRenderTarget(t),this._renderer.encoder.beginRenderPass(l),this._renderer.encoder.setViewport(s),this._activePass={renderTarget:t,mipLevel:n,layer:o,depthStencil:h}}finishRenderPass(){this._renderer.encoder.endRenderPass(),this._activePass=null}_getGpuColorTexture(t){if(t.colorAttachments.length===0)throw new Error("[GpuRenderTargetAdaptor] cannot get gpu color texture from a depth-only render target");let e=t.colorAttachments[0].texture;return e instanceof wt&&e._gpuContext?e._gpuContext.getCurrentTexture():this._renderer.texture.getGpuSource(e)}getDescriptor(t,e,r,s=0,n=0){typeof e=="boolean"&&(e=e?Et.ALL:Et.NONE);let o=this._renderTargetSystem,a=o.getGpuRenderTarget(t),l=t.colorAttachments.map((u,d)=>{let f=u.texture,m=f instanceof wt?f._gpuContext:null,g,_;if(m){if(n!==0)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported for canvas targets.");g=m.getCurrentTexture().createView(u.viewDescriptor)}else g=this._renderer.texture.getTextureRenderTargetView(u.texture,s,n,u.viewDescriptor);let x=!1;a.msaaTextures[d]&&(_=g,g=this._renderer.texture.getTextureView(a.msaaTextures[d]),x=a.msaaTextures[d].transient);let b=u.loadOp;e!==void 0&&(b=e&Et.COLOR?"clear":"load"),r??(r=o.defaultClearColor);let v=u.storeOp??"store",S={view:g,resolveTarget:_,storeOp:x?"discard":v,loadOp:b};b==="clear"&&(r??(r=u.clearValue??o.defaultClearColor),S.clearValue=r);for(let T in u)T!=="texture"&&T!=="viewDescriptor"&&T!=="clearValue"&&T!=="loadOp"&&T!=="storeOp"&&(S[T]=u[T]);return S}),c;if(t.depthStencilAttachment){a.msaa&&(t.depthStencilAttachment.texture.sampleCount=4),t.depthStencilAttachment.texture.transient=!!a.msaaTextures[0]?.transient;let u=t.depthStencilAttachment,d=u.texture.format.includes("stencil"),f=u.texture.format.includes("depth"),m=u.texture.transient?"discard":"store";c={view:this._renderer.texture.getTextureRenderTargetView(u.texture,s,n,u.viewDescriptor)};let g=u.depthReadOnly??!1,_=u.stencilReadOnly??g;d&&!_?(c.stencilLoadOp=e&Et.STENCIL?"clear":u.stencilLoadOp??"load",c.stencilStoreOp=u.stencilStoreOp??m,c.stencilLoadOp==="clear"&&(c.stencilClearValue=u.stencilClearValue??0)):d&&_&&(c.stencilReadOnly=!0),f&&!g?(c.depthLoadOp=e&Et.DEPTH?"clear":u.depthLoadOp??"load",c.depthStoreOp=u.depthStoreOp??m,c.depthLoadOp==="clear"&&(c.depthClearValue=u.depthClearValue??1)):f&&g&&(c.depthReadOnly=!0);for(let x in u)x!=="texture"&&x!=="viewDescriptor"&&x!=="stencilLoadOp"&&x!=="stencilStoreOp"&&x!=="stencilClearValue"&&x!=="stencilReadOnly"&&x!=="depthLoadOp"&&x!=="depthStoreOp"&&x!=="depthClearValue"&&x!=="depthReadOnly"&&(c[x]=u[x])}return{colorAttachments:l,depthStencilAttachment:c,label:t.label}}clear(t,e=!0,r,s,n=0,o=0){if(!e)return;let{gpu:a,encoder:l}=this._renderer,c=a.device;if(l.commandEncoder===null){let u=c.createCommandEncoder(),d=this.getDescriptor(t,e,r,n,o),f=u.beginRenderPass(d);f.setViewport(s.x,s.y,s.width,s.height,0,1),f.end();let m=u.finish();c.queue.submit([m])}else this.startRenderPass(t,e,r,s,n,o)}initGpuRenderTarget(t){t.isRoot=!0;let e=new Wa;return t.colorAttachments.forEach((r,s)=>{let n=r.texture;if(n instanceof wt){if(!n._gpuContext){let o=n.resource.getContext("webgpu"),a=n.transparent?"premultiplied":"opaque",l=DT(n.format);try{o.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:l,alphaMode:a,...l==="rgba16float"?{toneMapping:{mode:"extended"}}:{}})}catch(c){console.error(c)}n._gpuContext=o}e.contexts[s]=n._gpuContext}if(e.msaa=n.source.antialias,n.antialias){let o=new st({width:0,height:0,sampleCount:4,transient:n.transient,arrayLayerCount:n.arrayLayerCount,format:n.format});e.msaaTextures[s]=o}}),e.msaa&&(e.msaaSamples=4,t.depthStencilAttachment&&(t.depthStencilAttachment.texture.sampleCount=4,t.depthStencilAttachment.texture.transient=!!e.msaaTextures[0]?.transient)),e}destroyGpuRenderTarget(t){t.contexts.forEach(e=>{e.unconfigure()}),t.msaaTextures.forEach(e=>{e.destroy()}),t.msaaTextures.length=0,t.contexts.length=0}ensureDepthStencilTexture(t){let e=this._renderTargetSystem.getGpuRenderTarget(t);t.depthStencilAttachment&&e.msaa&&(t.depthStencilAttachment.texture.sampleCount=4)}resizeGpuRenderTarget(t){let e=this._renderTargetSystem.getGpuRenderTarget(t);e.width=t.width,e.height=t.height,e.msaa&&t.colorAttachments.forEach((r,s)=>{let n=r.texture;e.msaaTextures[s]?.resize(n.width,n.height,n._resolution)})}}});var Mn,V_=p(()=>{P();Ha();W_();Mn=class extends Sr{constructor(t){super(t),this.adaptor=new Va,this.adaptor.init(t,this)}};Mn.extension={type:[y.WebGPUSystem],name:"renderTarget"}});var An,j_=p(()=>{P();An=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(t){this._gpu=t}getProgramData(t){return this._gpuProgramData[t._layoutKey]||this._createGPUProgramData(t)}_createGPUProgramData(t){let e=this._gpu.device,r=t.gpuLayout.map(n=>e.createBindGroupLayout({entries:n})),s={bindGroupLayouts:r};return this._gpuProgramData[t._layoutKey]={bindGroups:r,pipeline:e.createPipelineLayout(s)},this._gpuProgramData[t._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};An.extension={type:[y.WebGPUSystem],name:"shader"}});var ne,X_=p(()=>{"use strict";ne={};ne.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};ne.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};ne.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};ne.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};ne.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};ne.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};ne["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};ne["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};ne["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};ne.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};ne.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};ne.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var Rn,Y_=p(()=>{P();Be();X_();Rn=class{constructor(){this.defaultState=new Ot,this.defaultState.blend=!0}contextChange(t){this.gpu=t}getColorTargets(t,e,r){let s=t.blend?ne[t.blendMode]||ne.normal:void 0,n=[];for(let o=0;o<e;o++)n[o]={format:r,writeMask:0,blend:s};return n}destroy(){this.gpu=null}};Rn.extension={type:[y.WebGPUSystem],name:"state"}});var $_,q_=p(()=>{"use strict";$_={type:"image",upload(i,t,e,r=0){let s=i.resource,n=(i.pixelWidth|0)*(i.pixelHeight|0),o=s.byteLength/n;e.device.queue.writeTexture({texture:t,origin:{x:0,y:0,z:r}},s,{offset:0,rowsPerImage:i.pixelHeight,bytesPerRow:i.pixelWidth*o},{width:i.pixelWidth,height:i.pixelHeight,depthOrArrayLayers:1})}}});var gu,LT,K_,Z_=p(()=>{"use strict";gu={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},LT={blockBytes:4,blockWidth:1,blockHeight:1},K_={type:"compressed",upload(i,t,e,r=0){let s=i.pixelWidth,n=i.pixelHeight,o=gu[i.format]||LT;for(let a=0;a<i.resource.length;a++){let l=i.resource[a],c=Math.ceil(s/o.blockWidth)*o.blockBytes;e.device.queue.writeTexture({texture:t,mipLevel:a,origin:{x:0,y:0,z:r}},l,{offset:0,bytesPerRow:c},{width:Math.ceil(s/o.blockWidth)*o.blockWidth,height:Math.ceil(n/o.blockHeight)*o.blockHeight,depthOrArrayLayers:1}),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}}}});function J_(i){return{type:"cube",upload(t,e,r){let s=t.faces;for(let n=0;n<Q_.length;n++){let o=Q_[n],a=s[o];(i[a.uploadMethodId]||i.image).upload(a,e,r,n)}}}}var Q_,ty=p(()=>{"use strict";Q_=["right","left","top","bottom","front","back"]});var ja,xu=p(()=>{xt();ht();ja={type:"image",upload(i,t,e,r=0){let s=i.resource;if(!s)return;if(globalThis.HTMLImageElement&&s instanceof HTMLImageElement){let l=W.get().createCanvas(s.width,s.height);l.getContext("2d").drawImage(s,0,0,s.width,s.height),i.resource=l,L("ImageSource: Image element passed, converting to canvas and replacing resource.")}let n=Math.min(t.width,i.resourceWidth||i.pixelWidth),o=Math.min(t.height,i.resourceHeight||i.pixelHeight),a=i.alphaMode==="premultiply-alpha-on-upload";e.device.queue.copyExternalImageToTexture({source:s},{texture:t,origin:{x:0,y:0,z:r},premultipliedAlpha:a},{width:n,height:o})}}});var ey,ry=p(()=>{xu();ey={type:"video",upload(i,t,e,r){ja.upload(i,t,e,r)}}});var Xa,iy=p(()=>{"use strict";Xa=class{constructor(t){this.device=t,this.sampler=t.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(t){let e=this.pipelines[t];return e||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
|
|
727
|
+
`}var M_=p(()=>{Na()});function A_(i){return za(i,E_,P_)}var R_=p(()=>{hu();du();M_()});var Qr,fu=p(()=>{P();Oa();Na();R_();Qr=class extends br{constructor(){super({createUboElements:C_,generateUboSync:A_})}};Qr.extension={type:[y.WebGPUSystem],name:"ubo"}});var He,Cn=p(()=>{Ht();Ft();He=class extends ut{constructor({buffer:t,offset:e,size:r}){super(),this.uid=$("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=$("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=t,this.offset=e|0,this.size=r,this.buffer.on("change",this.onBufferChange,this)}get _gcLastUsed(){return this.buffer?._gcLastUsed??-1}set _gcLastUsed(t){this.buffer&&(this.buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=$("resource"),this.emit("change",this)}destroy(t=!1){this.destroyed=!0,t&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}});var Ha,k_=p(()=>{"use strict";Ha=class{constructor({minUniformOffsetAlignment:t}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=t,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(t){if(t>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${t*4}`);let e=this.byteIndex,r=e+t*4;if(r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,r>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,e}addGroup(t){let e=this.addEmptyGroup(t.length);for(let r=0;r<t.length;r++)this.data[e/4+r]=t[r];return e}destroy(){this.data=null}}});var vr,En,B_=p(()=>{P();xr();Cn();ir();k_();mr();vr=128,En=class{constructor(t){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=t,this._batchBuffer=new Ha({minUniformOffsetAlignment:vr});let e=256/vr;for(let r=0;r<e;r++){let s=tt.UNIFORM|tt.COPY_DST;r===0&&(s|=tt.COPY_SRC),this._buffers.push(new At({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){this._bindGroupHash=Object.create(null),this._batchBuffer.clear()}getUniformBindGroup(t,e){if(!e&&this._bindGroupHash[t.uid])return this._bindGroupHash[t.uid];this._renderer.ubo.ensureUniformGroup(t);let r=t.buffer.data,s=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(t,this._batchBuffer.data,s/4),this._bindGroupHash[t.uid]=this._getBindGroup(s/vr),this._bindGroupHash[t.uid]}getUboResource(t){this._renderer.ubo.updateUniformGroup(t);let e=t.buffer.data,r=this._batchBuffer.addGroup(e);return this._getBufferResource(r/vr)}getArrayBindGroup(t){let e=this._batchBuffer.addGroup(t);return this._getBindGroup(e/vr)}getArrayBufferResource(t){let r=this._batchBuffer.addGroup(t)/vr;return this._getBufferResource(r)}_getBufferResource(t){if(!this._bufferResources[t]){let e=this._buffers[t%2];this._bufferResources[t]=new He({buffer:e,offset:(t/2|0)*256,size:vr})}return this._bufferResources[t]}_getBindGroup(t){if(!this._bindGroups[t]){let e=new Vt({0:this._getBufferResource(t)});this._bindGroups[t]=e}return this._bindGroups[t]}_uploadBindGroups(){let t=this._renderer.buffer,e=this._buffers[0];e.update(this._batchBuffer.byteIndex),t.updateBuffer(e);let r=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];r.copyBufferToBuffer(t.getGPUBuffer(e),vr,t.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([r.finish()])}destroy(){for(let t=0;t<this._bindGroups.length;t++)this._bindGroups[t]?.destroy();this._bindGroups=null,this._bindGroupHash=null;for(let t=0;t<this._buffers.length;t++)this._buffers[t].destroy();this._buffers=null;for(let t=0;t<this._bufferResources.length;t++)this._bufferResources[t].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._renderer=null}};En.extension={type:[y.WebGPUPipes],name:"uniformBatch"}});function Pn(i,t){for(let e in i.attributes){let r=i.attributes[e],s=t[e];s?(r.format??(r.format=s.format),r.offset??(r.offset=s.offset),r.instance??(r.instance=s.instance)):L(`Attribute ${e} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}GT(i)}function GT(i){let{buffers:t,attributes:e}=i,r={},s={};for(let n in t){let o=t[n];r[o.uid]=0,s[o.uid]=0}for(let n in e){let o=e[n];r[o.buffer.uid]+=Jt(o.format).stride}for(let n in e){let o=e[n];o.stride??(o.stride=r[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=Jt(o.format).stride}}var pu=p(()=>{ht();pr()});var We,mu=p(()=>{$r();We=[];We[vt.NONE]=void 0;We[vt.DISABLED]={stencilWriteMask:0,stencilReadMask:0};We[vt.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};We[vt.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};We[vt.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};We[vt.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function F_(i,t){for(let[e,r]of Object.entries(t)){let s=new RegExp(`override\\s+${e}\\s*:\\s*(\\w+)\\s*(?:=[^;]*)?;`);i=i.replace(s,(n,o)=>{let a;return o==="u32"?a=`${Math.trunc(r)}u`:o==="i32"?a=`${Math.trunc(r)}`:a=Number.isInteger(r)?`${r}.0`:`${r}`,`const ${e}: ${o} = ${a};`})}return i}function U_(i,t,e,r,s,n){return i*35184372088832+t*536870912+n*16384+(e<<8)+(r<<3)+s}function L_(i){let t=D_[i];return t===void 0&&(t=D_[i]=DT++),t}function LT(i,t,e,r,s,n,o,a){return a<<20|n<<16|s<<13|e<<9|i<<6|o<<5|r<<1|t}var I_,FT,UT,G_,D_,DT,Mn,O_=p(()=>{P();ht();pu();Jc();$r();Ai();mu();I_={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4},FT=new ki({}),UT={"depth24plus-stencil8":{depth:!0,stencil:!0,index:1},depth24plus:{depth:!0,stencil:!1,index:2},depth32float:{depth:!0,stencil:!1,index:3},"depth32float-stencil8":{depth:!0,stencil:!0,index:4},depth16unorm:{depth:!0,stencil:!1,index:5},stencil8:{depth:!1,stencil:!0,index:6}},G_={depth:!1,stencil:!1,index:0};D_=Object.create(null),DT=0;Mn=class{constructor(t){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=new Map,this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._colorTargetCount=1,this._colorFormat="bgra8unorm",this._colorFormatId=L_("bgra8unorm"),this._depthStencilFormat="depth24plus-stencil8",this._depthStencilFormatData=G_,this._depthReadOnly=!1,this._invertFrontFace=!1,this._renderer=t}contextChange(t){this._gpu=t,this.setStencilMode(vt.DISABLED),this._updatePipeHash()}setMultisampleCount(t){this._multisampleCount!==t&&(this._multisampleCount=t,this._updatePipeHash())}setRenderTarget(t){let e=t.colorAttachments[0]?.texture;this._multisampleCount=e?.source.antialias?4:1,this._colorTargetCount=t.colorAttachments.length,this._colorFormat=e?.format??"bgra8unorm",this._colorFormatId=L_(this._colorFormat),this._depthStencilFormat=t.depthStencilAttachment?.texture.format,this._depthStencilFormatData=UT[this._depthStencilFormat]||G_,this._depthReadOnly=t.depthStencilAttachment?.depthReadOnly??!1,this._invertFrontFace=!!t.flipY,this._updatePipeHash()}setColorMask(t){this._colorMask!==t&&(this._colorMask=t,this._updatePipeHash())}setStencilMode(t){this._stencilMode!==t&&(this._stencilMode=t,this._stencilState=We[t],this._updatePipeHash())}getBundleDescriptor(){let t=[];for(let r=0;r<this._colorTargetCount;r++)t.push(this._colorFormat);let e={colorFormats:t,sampleCount:this._multisampleCount};return(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil)&&(e.depthStencilFormat=this._depthStencilFormat),e}setPipeline(t,e,r,s){let n=this.getPipeline(t,e,r);s.setPipeline(n)}getPipelineKey(t,e,r,s,n){return t._layoutKey||(Pn(t,e.attributeData),this._generateBufferKey(t)),U_(t._layoutKey,e._layoutKey,r.data,r._blendModeId,I_[s],n.id)}getPipeline(t,e,r,s,n){t._layoutKey||(Pn(t,e.attributeData),this._generateBufferKey(t)),s||(s=t.topology),n||(n=FT);let o=U_(t._layoutKey,e._layoutKey,r.data,r._blendModeId,I_[s],n.id),a=this._pipeCache.get(o);return a||(a=this._createPipeline(t,e,r,s,n),this._pipeCache.set(o,a)),a}_createPipeline(t,e,r,s,n){let o=this._gpu.device,a=this._createVertexBufferLayouts(t,e),l=this._renderer.state.getColorTargets(r,this._colorTargetCount,this._colorFormat),c=this._stencilMode===vt.RENDERING_MASK_ADD?0:this._colorMask;for(let x=0;x<l.length;x++)l[x].writeMask=c;let h=this._renderer.shader.getProgramData(e).pipeline,u=Object.keys(n.data).length>0,d=e.vertex.source,f=e.fragment.source,m;u&&(this._renderer.limits.supportsOverrideConstants?m=n.data:(d=F_(d,n.data),f=F_(f,n.data)));let g={vertex:{module:this._getModule(d),entryPoint:e.vertex.entryPoint,constants:m,buffers:a},fragment:{module:this._getModule(f),entryPoint:e.fragment.entryPoint,targets:l,constants:m},primitive:{topology:s,cullMode:r.culling?"back":"none",frontFace:r.clockwiseFrontFace!==this._invertFrontFace?"cw":"ccw"},layout:h,multisample:{count:this._multisampleCount},label:e.name?`PIXI Pipeline (${e.name})`:"PIXI Pipeline"};if(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil){let x=this._depthStencilFormatData;g.depthStencil={...this._stencilState,format:this._depthStencilFormat,depthWriteEnabled:x.depth?r.depthMask&&!this._depthReadOnly:!1,depthCompare:x.depth&&r.depthTest?"less":"always"}}return o.createRenderPipeline(g)}_getModule(t){return this._moduleCache[t]||this._createModule(t)}_createModule(t){let e=this._gpu.device;return this._moduleCache[t]=e.createShaderModule({code:t}),this._moduleCache[t]}_generateBufferKey(t){let e=[],r=0,s=Object.keys(t.attributes).sort();for(let o=0;o<s.length;o++){let a=t.attributes[s[o]];e[r++]=a.offset,e[r++]=a.format,e[r++]=a.stride,e[r++]=a.instance}let n=e.join("|");return t._layoutKey=ke(n,"geometry"),t._layoutKey}_generateAttributeLocationsKey(t){let e=[],r=0,s=Object.keys(t.attributeData).sort();for(let o=0;o<s.length;o++){let a=t.attributeData[s[o]];e[r++]=a.location}let n=e.join("|");return t._attributeLocationsKey=ke(n,"programAttributes"),t._attributeLocationsKey}getBufferNamesToBind(t,e){let r=t._layoutKey<<16|e._attributeLocationsKey;if(this._bindingNamesCache[r])return this._bindingNamesCache[r];let s=this._createVertexBufferLayouts(t,e),n=Object.create(null),o=e.attributeData;for(let a=0;a<s.length;a++){let c=Object.values(s[a].attributes)[0].shaderLocation;for(let h in o)if(o[h].location===c){n[a]=h;break}}return this._bindingNamesCache[r]=n,n}_createVertexBufferLayouts(t,e){e._attributeLocationsKey||this._generateAttributeLocationsKey(e);let r=t._layoutKey<<16|e._attributeLocationsKey;if(this._bufferLayoutsCache[r])return this._bufferLayoutsCache[r];let s=[];return t.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let l in e.attributeData){let c=t.attributes[l];(c.divisor??1)!==1&&L(`Attribute ${l} has an invalid divisor value of '${c.divisor}'. WebGPU only supports a divisor value of 1`),c.buffer===n&&(o.arrayStride=c.stride,o.stepMode=c.instance?"instance":"vertex",a.push({shaderLocation:e.attributeData[l].location,offset:c.offset,format:c.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[r]=s,s}_updatePipeHash(){var t;let e=LT(this._stencilMode,this._multisampleCount===1?0:1,this._colorMask,this._colorTargetCount,this._depthStencilFormatData.index,this._colorFormatId,this._depthReadOnly?1:0,this._invertFrontFace?1:0);this._pipeCache=(t=this._pipeStateCaches)[e]??(t[e]=new Map)}destroy(){this._bufferLayoutsCache=null,this._pipeCache=null,this._gpu=null,this._renderer=null,this._bindingNamesCache=null,this._pipeStateCaches=null,this._moduleCache=null}};Mn.extension={type:[y.WebGPUSystem],name:"pipeline"}});function N_(i,t,e,r,s,n){let o=n?1:-1;return i.identity(),i.a=1/r*2,i.d=o*(1/s*2),i.tx=-1-t*i.a,i.ty=-o-e*i.d,i}var z_=p(()=>{"use strict"});function H_(i){if(i.colorAttachments.length===0)return!1;let t=i.colorTexture.resource;return globalThis.HTMLCanvasElement&&t instanceof HTMLCanvasElement&&document.body.contains(t)}var W_=p(()=>{"use strict"});var Sr,Wa=p(()=>{ot();Yt();yt();ht();Bi();z_();Ne();wh();fr();$t();gt();au();W_();ou();Sr=class{constructor(t){this.rootViewPort=new J,this.viewport=new J,this.onRenderTargetChange=new Ii("onRenderTargetChange"),this.projectionMatrix=new k,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._bindState={target:null,frame:void 0,mipLevel:0,layer:0,flipY:!1},this._bindFrame=new J,this._renderer=t,t.gc.addCollection(this,"_gpuRenderTargetHash","hash")}get renderSurface(){return this._bindState.target}get mipLevel(){return this._bindState.mipLevel}get layer(){return this._bindState.layer}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart(t){this._renderTargetStack.length=0,this.push(t),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=H_(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(t,e=!0,r,s,n=0,o=0,a){let l;"target"in t?l=t:(O("8.20.0","RenderTargetSystem.bind: positional arguments are deprecated, please use an options object instead: bind({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),l={target:t,clear:e,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let c=l.target;e=l.clear??!0,r=l.clearColor,n=(l.mipLevel??0)|0,o=(l.layer??0)|0,a=l.flipY,s=l.frame;let h=this.getRenderTarget(c),u=this.renderTarget!==h;this.renderTarget=h;let d=this.getGpuRenderTarget(h);(h.pixelWidth!==d.width||h.pixelHeight!==d.height)&&(this.adaptor.resizeGpuRenderTarget(h),d.width=h.pixelWidth,d.height=h.pixelHeight);let f=h.colorAttachments[0]?.texture||h.depthStencilAttachment?.texture,m=this.viewport,g=f.arrayLayerCount||1;if(o<0||o>=g)throw new Error(`[RenderTargetSystem] layer ${o} is out of bounds (arrayLayerCount=${g}).`);let _=this._bindState;_.target=c,_.frame=s?this._bindFrame.copyFrom(s):void 0,_.mipLevel=n,_.layer=o,_.flipY=a;let x=Math.max(f.pixelWidth>>n,1),b=Math.max(f.pixelHeight>>n,1);if(!s&&c instanceof F&&(s=c.frame),s){let v=f._resolution,S=1<<Math.max(n,0),T=s.x*v+.5|0,w=s.y*v+.5|0,E=s.width*v+.5|0,B=s.height*v+.5|0,R=Math.floor(T/S),M=Math.floor(w/S),C=Math.ceil(E/S),A=Math.ceil(B/S);R<0&&(C+=R,R=0),M<0&&(A+=M,M=0),R=Math.min(R,x-1),M=Math.min(M,b-1),C=Math.min(C,x-R),A=Math.min(A,b-M),C=Math.max(C,1),A=Math.max(A,1),m.x=R,m.y=M,m.width=C,m.height=A}else m.x=0,m.y=0,m.width=x,m.height=b;return h.flipY=a,N_(this.projectionMatrix,0,0,m.width/f.resolution,m.height/f.resolution,!h.isRoot!=!!h.flipY),this.adaptor.startRenderPass(h,e,r,m,n,o),u&&this.onRenderTargetChange.emit(h),h}getBindState(t){if(!this.renderTarget)throw new Error("[RenderTargetSystem] getBindState is only valid while a render surface is bound");let e=this._bindState;return t??(t={}),t.target=e.target,t.clear=Et.NONE,t.clearColor=void 0,e.frame?t.frame?t.frame.copyFrom(e.frame):t.frame=e.frame.clone():t.frame=void 0,t.mipLevel=e.mipLevel,t.layer=e.layer,t.flipY=!!e.flipY,t}get frontFaceInverted(){let t=this.renderTarget;if(!t)return!1;let e=this._renderer.type===Lt.WEBGL&&!t.isRoot;return!!t.flipY!==e}clear(t,e=Et.ALL,r,s=this.mipLevel,n=this.layer){e&&(t&&(t=this.getRenderTarget(t)),this.adaptor.clear(t||this.renderTarget,e,r,this.viewport,s,n))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(t,e=Et.ALL,r,s,n=0,o=0,a){let l;"target"in t?l=t:(O("8.20.0","RenderTargetSystem.push: positional arguments are deprecated, please use an options object instead: push({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),l={target:t,clear:e,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let c=this.bind(l);return this._renderTargetStack.push({target:l.target,clear:!1,clearColor:void 0,frame:l.frame?l.frame.clone():void 0,mipLevel:l.mipLevel,layer:l.layer,flipY:l.flipY}),c}pop(){this._renderTargetStack.pop();let t=this._renderTargetStack[this._renderTargetStack.length-1];if(!t)throw new Error("[RenderTargetSystem] pop: no previous binding to restore (unbalanced pop)");return this.bind(t)}getRenderTarget(t){return t.isTexture&&(t=t.source),this._renderSurfaceToRenderTargetHash.get(t)??this._initRenderTarget(t)}copyToTexture(t,e,r,s,n){let o=this.getRenderTarget(t);r.x<0&&(s.width+=r.x,n.x-=r.x,r.x=0),r.y<0&&(s.height+=r.y,n.y-=r.y,r.y=0);let{pixelWidth:a,pixelHeight:l}=o;return s.width=Math.min(s.width,a-r.x),s.height=Math.min(s.height,l-r.y),this.adaptor.copyToTexture(o,e,r,s,n)}copyDepthTexture(t,e,r,s,n={x:0,y:0}){let o=this.getRenderTarget(t);if(!o.depthStencilAttachment){L("[RenderTargetSystem] copyDepthTexture: the source render target has no depth attachment to copy from");return}let a=e.source;if(!a.format.includes("depth")&&!a.format.includes("stencil")){L(`[RenderTargetSystem] copyDepthTexture: the destination texture must have a depth/stencil format (got '${a.format}')`);return}let l=r.x,c=r.y,h=n.x,u=n.y,d=s.width,f=s.height;l<0&&(d+=l,h-=l,l=0),c<0&&(f+=c,u-=c,c=0),d=Math.min(d,o.pixelWidth-l),f=Math.min(f,o.pixelHeight-c),d=Math.min(d,a.pixelWidth-h),f=Math.min(f,a.pixelHeight-u),!(d<=0||f<=0)&&this.adaptor.copyDepthTexture(o,e,{x:l,y:c},{width:d,height:f},{x:h,y:u})}ensureDepthStencil(){if(!this.renderTarget.stencil){if(this.renderTarget.depthStencilTexture){L(`[RenderTargetSystem] a stencil mask is being used, but the render target's depthStencilTexture format '${this.renderTarget.depthStencilTexture.format}' has no stencil aspect, so masking cannot work here. Use a 'depth24plus-stencil8' texture instead.`);return}this.renderTarget._depth=!0,this.renderTarget._stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport,0,this.layer)}}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((t,e)=>{t!==e&&this._releaseRenderTarget(e,t)}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(t){let e=null;if(Tt.test(t)&&(t=Ua(t).source),t instanceof ji)e=t;else if(t instanceof st){let r=t.format;e=r.includes("depth")||r.includes("stencil")?new ji({colorTextures:0,depthStencilTexture:t}):new ji({colorTextures:[t]}),t.source instanceof Tt&&(e.isRoot=!0),t.once("destroy",this._onRenderSurfaceDestroy,this)}return this._renderSurfaceToRenderTargetHash.set(t,e),e}_onRenderSurfaceDestroy(t){let e=this._renderSurfaceToRenderTargetHash.get(t);e&&this._releaseRenderTarget(t,e)}_releaseRenderTarget(t,e){e.destroy(),this._renderSurfaceToRenderTargetHash.delete(t),t.off("destroy",this._onRenderSurfaceDestroy,this);let r=this._gpuRenderTargetHash[e.uid];r&&(this._gpuRenderTargetHash[e.uid]=null,this.adaptor.destroyGpuRenderTarget(r))}getGpuRenderTarget(t){return this._gpuRenderTargetHash[t.uid]||(this._gpuRenderTargetHash[t.uid]=this.adaptor.initGpuRenderTarget(t))}resetState(){this.renderTarget=null,this._bindState.target=null}}});var Va,V_=p(()=>{"use strict";Va=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});function NT(i){if(OT[i])return i;let t=navigator.gpu.getPreferredCanvasFormat();return L(`[WebGPU] CanvasSource format '${i}' is not a valid GPUCanvasContext format. Falling back to '${t}'. Allowed formats are: bgra8unorm, rgba8unorm, rgba16float.`),t}var OT,ja,j_=p(()=>{ht();Bi();fr();$t();V_();OT={bgra8unorm:!0,rgba8unorm:!0,rgba16float:!0};ja=class{constructor(){this._activePass=null}init(t,e){this._renderer=t,this._renderTargetSystem=e}copyToTexture(t,e,r,s,n){let o=this._renderer;this.finishRenderPass();let a=this._getGpuColorTexture(t),l=o.texture.getGpuSource(e.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:r},{texture:l,origin:n},s),e}copyDepthTexture(t,e,r,s,n){let o=this._renderer;this.finishRenderPass();let a=t.depthStencilAttachment.texture,l=o.texture.getGpuSource(a),c=o.texture.getGpuSource(e.source),h=o.encoder.commandEncoder===null,u=h?o.gpu.device.createCommandEncoder():o.encoder.commandEncoder;u.copyTextureToTexture({texture:l,origin:r},{texture:c,origin:n},{width:s.width,height:s.height}),h&&o.gpu.device.queue.submit([u.finish()])}startRenderPass(t,e=!0,r,s,n=0,o=0){let l=this._renderTargetSystem.getGpuRenderTarget(t);if(o!==0&&l.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported with MSAA render targets.");if(n>0&&l.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");let c=e;typeof c=="boolean"&&(c=c?Et.ALL:Et.NONE),(t.stencil||t.depth)&&!t.depthStencilAttachment&&t.ensureDepthStencilTexture();let h=!!t.depthStencilAttachment,u=this._activePass;if(u!==null&&u.renderTarget===t&&u.mipLevel===n&&u.layer===o&&u.depthStencil===h&&this._renderer.encoder.renderPassEncoder!==null&&c===Et.NONE){this._renderer.encoder.setViewport(s);return}let f=this.getDescriptor(t,e,r,n,o);l.descriptor=f,this._renderer.pipeline.setRenderTarget(t),this._renderer.encoder.beginRenderPass(l),this._renderer.encoder.setViewport(s),this._activePass={renderTarget:t,mipLevel:n,layer:o,depthStencil:h}}finishRenderPass(){this._renderer.encoder.endRenderPass(),this._activePass=null}_getGpuColorTexture(t){if(t.colorAttachments.length===0)throw new Error("[GpuRenderTargetAdaptor] cannot get gpu color texture from a depth-only render target");let e=t.colorAttachments[0].texture;return e instanceof Tt&&e._gpuContext?e._gpuContext.getCurrentTexture():this._renderer.texture.getGpuSource(e)}getDescriptor(t,e,r,s=0,n=0){typeof e=="boolean"&&(e=e?Et.ALL:Et.NONE);let o=this._renderTargetSystem,a=o.getGpuRenderTarget(t),l=t.colorAttachments.map((u,d)=>{let f=u.texture,m=f instanceof Tt?f._gpuContext:null,g,_;if(m){if(n!==0)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported for canvas targets.");g=m.getCurrentTexture().createView(u.viewDescriptor)}else g=this._renderer.texture.getTextureRenderTargetView(u.texture,s,n,u.viewDescriptor);let x=!1;a.msaaTextures[d]&&(_=g,g=this._renderer.texture.getTextureView(a.msaaTextures[d]),x=a.msaaTextures[d].transient);let b=u.loadOp;e!==void 0&&(b=e&Et.COLOR?"clear":"load"),r??(r=o.defaultClearColor);let v=u.storeOp??"store",S={view:g,resolveTarget:_,storeOp:x?"discard":v,loadOp:b};b==="clear"&&(r??(r=u.clearValue??o.defaultClearColor),S.clearValue=r);for(let T in u)T!=="texture"&&T!=="viewDescriptor"&&T!=="clearValue"&&T!=="loadOp"&&T!=="storeOp"&&(S[T]=u[T]);return S}),c;if(t.depthStencilAttachment){a.msaa&&(t.depthStencilAttachment.texture.sampleCount=4),t.depthStencilAttachment.texture.transient=!!a.msaaTextures[0]?.transient;let u=t.depthStencilAttachment,d=u.texture.format.includes("stencil"),f=u.texture.format.includes("depth"),m=u.texture.transient?"discard":"store";c={view:this._renderer.texture.getTextureRenderTargetView(u.texture,s,n,u.viewDescriptor)};let g=u.depthReadOnly??!1,_=u.stencilReadOnly??g;d&&!_?(c.stencilLoadOp=e&Et.STENCIL?"clear":u.stencilLoadOp??"load",c.stencilStoreOp=u.stencilStoreOp??m,c.stencilLoadOp==="clear"&&(c.stencilClearValue=u.stencilClearValue??0)):d&&_&&(c.stencilReadOnly=!0),f&&!g?(c.depthLoadOp=e&Et.DEPTH?"clear":u.depthLoadOp??"load",c.depthStoreOp=u.depthStoreOp??m,c.depthLoadOp==="clear"&&(c.depthClearValue=u.depthClearValue??1)):f&&g&&(c.depthReadOnly=!0);for(let x in u)x!=="texture"&&x!=="viewDescriptor"&&x!=="stencilLoadOp"&&x!=="stencilStoreOp"&&x!=="stencilClearValue"&&x!=="stencilReadOnly"&&x!=="depthLoadOp"&&x!=="depthStoreOp"&&x!=="depthClearValue"&&x!=="depthReadOnly"&&(c[x]=u[x])}return{colorAttachments:l,depthStencilAttachment:c,label:t.label}}clear(t,e=!0,r,s,n=0,o=0){if(!e)return;let{gpu:a,encoder:l}=this._renderer,c=a.device;if(l.commandEncoder===null){let u=c.createCommandEncoder(),d=this.getDescriptor(t,e,r,n,o),f=u.beginRenderPass(d);f.setViewport(s.x,s.y,s.width,s.height,0,1),f.end();let m=u.finish();c.queue.submit([m])}else this.startRenderPass(t,e,r,s,n,o)}initGpuRenderTarget(t){t.isRoot=!0;let e=new Va;return t.colorAttachments.forEach((r,s)=>{let n=r.texture;if(n instanceof Tt){if(!n._gpuContext){let o=n.resource.getContext("webgpu"),a=n.transparent?"premultiplied":"opaque",l=NT(n.format);try{o.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:l,alphaMode:a,...l==="rgba16float"?{toneMapping:{mode:"extended"}}:{}})}catch(c){console.error(c)}n._gpuContext=o}e.contexts[s]=n._gpuContext}if(e.msaa=n.source.antialias,n.antialias){let o=new st({width:0,height:0,sampleCount:4,transient:n.transient,arrayLayerCount:n.arrayLayerCount,format:n.format});e.msaaTextures[s]=o}}),e.msaa&&(e.msaaSamples=4,t.depthStencilAttachment&&(t.depthStencilAttachment.texture.sampleCount=4,t.depthStencilAttachment.texture.transient=!!e.msaaTextures[0]?.transient)),e}destroyGpuRenderTarget(t){t.contexts.forEach(e=>{e.unconfigure()}),t.msaaTextures.forEach(e=>{e.destroy()}),t.msaaTextures.length=0,t.contexts.length=0}ensureDepthStencilTexture(t){let e=this._renderTargetSystem.getGpuRenderTarget(t);t.depthStencilAttachment&&e.msaa&&(t.depthStencilAttachment.texture.sampleCount=4)}resizeGpuRenderTarget(t){let e=this._renderTargetSystem.getGpuRenderTarget(t);e.width=t.width,e.height=t.height,e.msaa&&t.colorAttachments.forEach((r,s)=>{let n=r.texture;e.msaaTextures[s]?.resize(n.width,n.height,n._resolution)})}}});var An,X_=p(()=>{P();Wa();j_();An=class extends Sr{constructor(t){super(t),this.adaptor=new ja,this.adaptor.init(t,this)}};An.extension={type:[y.WebGPUSystem],name:"renderTarget"}});var Rn,Y_=p(()=>{P();Rn=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(t){this._gpu=t}getProgramData(t){return this._gpuProgramData[t._layoutKey]||this._createGPUProgramData(t)}_createGPUProgramData(t){let e=this._gpu.device,r=t.gpuLayout.map(n=>e.createBindGroupLayout({entries:n})),s={bindGroupLayouts:r};return this._gpuProgramData[t._layoutKey]={bindGroups:r,pipeline:e.createPipelineLayout(s)},this._gpuProgramData[t._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};Rn.extension={type:[y.WebGPUSystem],name:"shader"}});var ne,$_=p(()=>{"use strict";ne={};ne.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};ne.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};ne.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};ne.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};ne.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};ne.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};ne["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};ne["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};ne["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};ne.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};ne.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};ne.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var kn,q_=p(()=>{P();Be();$_();kn=class{constructor(){this.defaultState=new Ot,this.defaultState.blend=!0}contextChange(t){this.gpu=t}getColorTargets(t,e,r){let s=t.blend?ne[t.blendMode]||ne.normal:void 0,n=[];for(let o=0;o<e;o++)n[o]={format:r,writeMask:0,blend:s};return n}destroy(){this.gpu=null}};kn.extension={type:[y.WebGPUSystem],name:"state"}});var K_,Z_=p(()=>{"use strict";K_={type:"image",upload(i,t,e,r=0){let s=i.resource,n=(i.pixelWidth|0)*(i.pixelHeight|0),o=s.byteLength/n;e.device.queue.writeTexture({texture:t,origin:{x:0,y:0,z:r}},s,{offset:0,rowsPerImage:i.pixelHeight,bytesPerRow:i.pixelWidth*o},{width:i.pixelWidth,height:i.pixelHeight,depthOrArrayLayers:1})}}});var gu,zT,Q_,J_=p(()=>{"use strict";gu={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},zT={blockBytes:4,blockWidth:1,blockHeight:1},Q_={type:"compressed",upload(i,t,e,r=0){let s=i.pixelWidth,n=i.pixelHeight,o=gu[i.format]||zT;for(let a=0;a<i.resource.length;a++){let l=i.resource[a],c=Math.ceil(s/o.blockWidth)*o.blockBytes;e.device.queue.writeTexture({texture:t,mipLevel:a,origin:{x:0,y:0,z:r}},l,{offset:0,bytesPerRow:c},{width:Math.ceil(s/o.blockWidth)*o.blockWidth,height:Math.ceil(n/o.blockHeight)*o.blockHeight,depthOrArrayLayers:1}),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}}}});function ey(i){return{type:"cube",upload(t,e,r){let s=t.faces;for(let n=0;n<ty.length;n++){let o=ty[n],a=s[o];(i[a.uploadMethodId]||i.image).upload(a,e,r,n)}}}}var ty,ry=p(()=>{"use strict";ty=["right","left","top","bottom","front","back"]});var Xa,xu=p(()=>{xt();ht();Xa={type:"image",upload(i,t,e,r=0){let s=i.resource;if(!s)return;if(globalThis.HTMLImageElement&&s instanceof HTMLImageElement){let l=W.get().createCanvas(s.width,s.height);l.getContext("2d").drawImage(s,0,0,s.width,s.height),i.resource=l,L("ImageSource: Image element passed, converting to canvas and replacing resource.")}let n=Math.min(t.width,i.resourceWidth||i.pixelWidth),o=Math.min(t.height,i.resourceHeight||i.pixelHeight),a=i.alphaMode==="premultiply-alpha-on-upload";e.device.queue.copyExternalImageToTexture({source:s},{texture:t,origin:{x:0,y:0,z:r},premultipliedAlpha:a},{width:n,height:o})}}});var iy,sy=p(()=>{xu();iy={type:"video",upload(i,t,e,r){Xa.upload(i,t,e,r)}}});var Ya,ny=p(()=>{"use strict";Ya=class{constructor(t){this.device=t,this.sampler=t.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(t){let e=this.pipelines[t];return e||(this.mipmapShaderModule||(this.mipmapShaderModule=this.device.createShaderModule({code:`
|
|
728
728
|
var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(
|
|
729
729
|
vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));
|
|
730
730
|
|
|
@@ -748,7 +748,7 @@ fn mainFragment(
|
|
|
748
748
|
fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {
|
|
749
749
|
return textureSample(img, imgSampler, texCoord);
|
|
750
750
|
}
|
|
751
|
-
`})),e=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:t}]}}),this.pipelines[t]=e),e}generateMipmap(t){let e=this._getMipmapPipeline(t.format);if(t.dimension==="3d"||t.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let r=t,s=t.depthOrArrayLayers||1,n=t.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let l={size:{width:Math.ceil(t.width/2),height:Math.ceil(t.height/2),depthOrArrayLayers:s},format:t.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:t.mipLevelCount-1};r=this.device.createTexture(l)}let o=this.device.createCommandEncoder({}),a=e.getBindGroupLayout(0);for(let l=0;l<s;++l){let c=t.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:l,arrayLayerCount:1}),h=n?1:0;for(let u=1;u<t.mipLevelCount;++u){let d=r.createView({baseMipLevel:h++,mipLevelCount:1,dimension:"2d",baseArrayLayer:l,arrayLayerCount:1}),f=o.beginRenderPass({colorAttachments:[{view:d,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),m=this.device.createBindGroup({layout:a,entries:[{binding:0,resource:this.sampler},{binding:1,resource:c}]});f.setPipeline(e),f.setBindGroup(0,m),f.draw(3,1,0,0),f.end(),c=d}}if(!n){let l={width:Math.ceil(t.width/2),height:Math.ceil(t.height/2),depthOrArrayLayers:s};for(let c=1;c<t.mipLevelCount;++c)o.copyTextureToTexture({texture:r,mipLevel:c-1},{texture:t,mipLevel:c},l),l.width=Math.ceil(l.width/2),l.height=Math.ceil(l.height/2)}return this.device.queue.submit([o.finish()]),n||r.destroy(),t}}});function sy(i){return`${i.format||""}.${i.dimension||""}.${i.aspect||""}.${i.baseMipLevel||0}.${i.mipLevelCount||""}.${i.baseArrayLayer||0}.${i.arrayLayerCount||""}`}var _u,yu,bu,oy=p(()=>{xt();P();Ie();me();$o();mr();q_();Z_();ty();xu();ry();iy();_u=class{constructor(t){this.textureView=null,this.textureViews=Object.create(null),this.gpuTexture=t}destroy(){this.gpuTexture.destroy(),this.textureView=null,this.textureViews=null,this.gpuTexture=null}};yu=class ny{constructor(t){this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._renderer=t,t.gc.addCollection(this,"_bindGroupHash","hash"),this._managedTextures=new kt({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"gpuTextureSource"});let e={image:ja,buffer:$_,video:ey,compressed:K_,...ny.uploadExtensions};this._uploads={...e,cube:J_(e)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(t){this._gpu=t}initSource(t){return t._gpuData[this._renderer.uid]?.gpuTexture||this._initSource(t)}_initSource(t){if(t.autoGenerateMipmaps){let c=Math.max(t.pixelWidth,t.pixelHeight);t.mipLevelCount=Math.floor(Math.log2(c))+1}let e;t.sampleCount>1?(e=GPUTextureUsage.RENDER_ATTACHMENT,t.transient&&this._renderer.device.extensions.transientAttachment&&(e|=GPUTextureUsage.TRANSIENT_ATTACHMENT)):(e=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.uploadMethodId!=="compressed"&&(e|=GPUTextureUsage.RENDER_ATTACHMENT,e|=GPUTextureUsage.COPY_SRC));let r=gu[t.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(t.pixelWidth/r.blockWidth)*r.blockWidth,n=Math.ceil(t.pixelHeight/r.blockHeight)*r.blockHeight,o={label:t.label,size:{width:s,height:n,depthOrArrayLayers:t.arrayLayerCount},format:t.format,sampleCount:t.sampleCount,mipLevelCount:t.mipLevelCount,dimension:t.dimension,usage:e},a=this._gpu.device.createTexture(o);return t._gpuData[this._renderer.uid]=new _u(a),this._managedTextures.add(t)&&(t.on("update",this.onSourceUpdate,this),t.on("resize",this.onSourceResize,this),t.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(t),a}onSourceUpdate(t){let e=this.getGpuSource(t);e&&(this._uploads[t.uploadMethodId]&&this._uploads[t.uploadMethodId].upload(t,e,this._gpu),t.autoGenerateMipmaps&&t.mipLevelCount>1&&this.onUpdateMipmaps(t))}onUpdateMipmaps(t){this._mipmapGenerator||(this._mipmapGenerator=new Xa(this._gpu.device));let e=this.getGpuSource(t);this._mipmapGenerator.generateMipmap(e)}onSourceUnload(t){t.off("update",this.onSourceUpdate,this),t.off("resize",this.onSourceResize,this),t.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceResize(t){t._gcLastUsed=this._renderer.gc.now;let e=t._gpuData[this._renderer.uid],r=e?.gpuTexture;r?(r.width!==t.pixelWidth||r.height!==t.pixelHeight)&&(e.destroy(),this._bindGroupHash[t.uid]=null,t._gpuData[this._renderer.uid]=null,this.initSource(t)):this.initSource(t)}_initSampler(t){return this._gpuSamplers[t._resourceId]=this._gpu.device.createSampler(t),this._gpuSamplers[t._resourceId]}getGpuSampler(t){return this._gpuSamplers[t._resourceId]||this._initSampler(t)}getGpuSource(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]?.gpuTexture||this.initSource(t)}getTextureBindGroup(t){return this._bindGroupHash[t.uid]||this._createTextureBindGroup(t)}_createTextureBindGroup(t){let e=t.source;return this._bindGroupHash[t.uid]=new Vt({0:e,1:e.style,2:new Ct({uTextureMatrix:{type:"mat3x3<f32>",value:t.textureMatrix.mapCoord}})}),this._bindGroupHash[t.uid]}getTextureView(t,e){var r;let s=t.source;s._gcLastUsed=this._renderer.gc.now;let n=s._gpuData[this._renderer.uid];n||(this.initSource(s),n=s._gpuData[this._renderer.uid]);let o=e?sy(e):0;return(r=n.textureViews)[o]||(r[o]=n.gpuTexture.createView({dimension:s.viewDimension,...e})),n.textureViews[o]}getTextureRenderTargetView(t,e=0,r=0,s){var n;let o=t.source;o._gcLastUsed=this._renderer.gc.now;let a=o._gpuData[this._renderer.uid];a||(this.initSource(o),a=o._gpuData[this._renderer.uid]);let l=r*(o.mipLevelCount||1)+e+1;return s&&(l=`${l}.${sy(s)}`),(n=a.textureViews)[l]||(n[l]=a.gpuTexture.createView({dimension:"2d",baseMipLevel:e,mipLevelCount:1,baseArrayLayer:r,arrayLayerCount:1,...s})),a.textureViews[l]}generateCanvas(t){let e=this._renderer,r=e.gpu.device.createCommandEncoder(),s=W.get().createCanvas();s.width=t.source.pixelWidth,s.height=t.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:e.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:W.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:e.texture.getGpuSource(t.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),e.gpu.device.queue.submit([r.finish()]),s}getPixels(t){let e=this.generateCanvas(t),r=rr.getOptimalCanvasAndContext(e.width,e.height),s=r.context;s.drawImage(e,0,0);let{width:n,height:o}=e,a=s.getImageData(0,0,n,o),l=new Uint8ClampedArray(a.data.buffer);return rr.returnCanvasAndContext(r),{pixels:l,width:n,height:o}}destroy(){this._managedTextures.destroy();for(let t of Object.keys(this._bindGroupHash)){let e=Number(t);this._bindGroupHash[e]?.destroy()}this._renderer=null,this._gpu=null,this._mipmapGenerator=null,this._gpuSamplers=null,this._bindGroupHash=null}};yu.extension={type:[y.WebGPUSystem],name:"texture"};yu.uploadExtensions=Object.create(null);bu=yu;z.handleByMap(y.TextureUploaderWebGPU,bu.uploadExtensions)});var hy={};Vl(hy,{WebGPURenderer:()=>vu});var OT,NT,zT,ay,ly,cy,vu,uy=p(()=>{P();sx();ax();lx();Vr();Da();Ne();g_();x_();__();y_();b_();v_();S_();fu();R_();D_();V_();j_();Y_();oy();OT=[...Xi,Qr,bn,Yi,vn,_n,bu,Mn,An,Rn,Pn,yn,Sn,xn],NT=[...Ua,Cn],zT=[Ks,qs,$s],ay=[],ly=[],cy=[];z.handleByNamedList(y.WebGPUSystem,ay);z.handleByNamedList(y.WebGPUPipes,ly);z.handleByNamedList(y.WebGPUPipesAdaptor,cy);z.add(...OT,...NT,...zT);vu=class extends Te{constructor(){let t={name:"webgpu",type:Lt.WEBGPU,systems:ay,renderPipes:ly,renderPipeAdaptors:cy};super(t)}}});var kn,dy=p(()=>{P();ot();Ui();ya();Sa();Ys();Oi();Xh();gr();me();kn=class{contextChange(t){let e=new Ct({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),r=t.limits.maxBatchableTextures,s=Fi({name:"graphics",bits:[_a,va(r),Ta,Li]});this.shader=new te({glProgram:s,resources:{localUniforms:e,batchSamplers:Ra(r)}})}execute(t,e){let r=e.context,s=r.customShader||this.shader,n=t.renderer,o=n.graphicsContext,{batcher:a,instructions:l}=o.getContextRenderData(r);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(t.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let c=l.instructions;for(let h=0;h<l.instructionSize;h++){let u=c[h];if(u.size){for(let d=0;d<u.textures.count;d++)n.texture.bind(u.textures.textures[d],d);n.geometry.draw(u.topology,u.size,u.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};kn.extension={type:[y.WebGLPipesAdaptor],name:"graphics"}});var Bn,fy=p(()=>{P();ot();Ui();Ys();Oi();Bh();gr();gt();ht();Bn=class{init(){let t=Fi({name:"mesh",bits:[Ta,ox,Li]});this._shader=new te({glProgram:t,resources:{uTexture:U.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(t,e){let r=t.renderer,s=e._shader;if(s){if(!s.glProgram){L("Mesh shader has no glProgram",e.shader);return}}else{s=this._shader;let n=e.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=r.globalUniforms.bindGroup,s.groups[101]=t.localUniformsBindGroup,r.encoder.draw({geometry:e._geometry,shader:s,state:e.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Bn.extension={type:[y.WebGLPipesAdaptor],name:"mesh"}});var In,py=p(()=>{P();Be();In=class{constructor(){this._tempState=Ot.for2d(),this._didUploadHash={}}init(t){t.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(t,e,r){let s=t.renderer,n=this._didUploadHash[r.uid];s.shader.bind(r,n),n||(this._didUploadHash[r.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(e,r.glProgram)}execute(t,e){let r=t.renderer;this._tempState.blendMode=e.blendMode,r.state.set(this._tempState);let s=e.textures.textures;for(let n=0;n<e.textures.count;n++)r.texture.bind(s[n],n);r.geometry.draw(e.topology,e.size,e.start)}};In.extension={type:[y.WebGLPipesAdaptor],name:"batch"}});var Gn,my=p(()=>{"use strict";Gn=(i=>(i[i.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",i[i.ARRAY_BUFFER=34962]="ARRAY_BUFFER",i[i.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",i))(Gn||{})});var Ya,gy=p(()=>{"use strict";Ya=class{constructor(t,e){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=t||null,this.updateID=-1,this.byteLength=-1,this.type=e}destroy(){this.buffer=null,this.updateID=-1,this.byteLength=-1,this.type=-1,this._lastBindBaseLocation=-1,this._lastBindCallId=-1}}});var Fn,xy=p(()=>{P();Ie();ir();my();gy();Fn=class{constructor(t){this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=t,this._managedBuffers=new kt({renderer:t,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"glBuffer"})}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gl=null,this._boundBufferBases={}}contextChange(){this._gl=this._renderer.gl,this.destroyAll(!0),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]||this.createGLBuffer(t)}bind(t){let{_gl:e}=this,r=this.getGlBuffer(t);e.bindBuffer(r.type,r.buffer)}bindBufferBase(t,e){let{_gl:r}=this;this._boundBufferBases[e]!==t&&(this._boundBufferBases[e]=t,t._lastBindBaseLocation=e,r.bindBufferBase(r.UNIFORM_BUFFER,e,t.buffer))}nextBindBase(t){this._bindCallId++,this._minBaseLocation=0,t&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(t){let e=this.getLastBindBaseLocation(t);if(e>=this._minBaseLocation)return t._lastBindCallId=this._bindCallId,e;let r=0,s=this._nextBindBaseIndex;for(;r<2;){s>=this._maxBindings&&(s=this._minBaseLocation,r++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return e=s,this._nextBindBaseIndex=s+1,r>=2?-1:(t._lastBindCallId=this._bindCallId,this._boundBufferBases[e]=null,e)}getLastBindBaseLocation(t){let e=t._lastBindBaseLocation;return this._boundBufferBases[e]===t?e:-1}bindBufferRange(t,e,r,s){let{_gl:n}=this;r||(r=0),e||(e=0),this._boundBufferBases[e]=null,n.bindBufferRange(n.UNIFORM_BUFFER,e||0,t.buffer,r*256,s||256)}updateBuffer(t){let{_gl:e}=this,r=this.getGlBuffer(t);if(t._updateID===r.updateID)return r;r.updateID=t._updateID,e.bindBuffer(r.type,r.buffer);let s=t.data,n=t.descriptor.usage&tt.STATIC?e.STATIC_DRAW:e.DYNAMIC_DRAW;return s?r.byteLength>=s.byteLength?e.bufferSubData(r.type,t._updateOffset,s,t._updateOffset/s.BYTES_PER_ELEMENT,(t._updateSize||s.byteLength)/s.BYTES_PER_ELEMENT):(r.byteLength=s.byteLength,e.bufferData(r.type,s,n)):(r.byteLength=t.descriptor.size,e.bufferData(r.type,r.byteLength,n)),r}destroyAll(t=!1){this._managedBuffers.removeAll(t)}onBufferUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];r&&(e||this._gl.deleteBuffer(r.buffer))}createGLBuffer(t){let{_gl:e}=this,r=Gn.ARRAY_BUFFER;t.descriptor.usage&tt.INDEX?r=Gn.ELEMENT_ARRAY_BUFFER:t.descriptor.usage&tt.UNIFORM&&(r=Gn.UNIFORM_BUFFER);let s=new Ya(e.createBuffer(),r);return t._gpuData[this._renderer.uid]=s,this._managedBuffers.add(t),s}resetState(){this._boundBufferBases=Object.create(null)}};Fn.extension={type:[y.WebGLSystem],name:"buffer"}});var Su,yy,by=p(()=>{xt();P();ht();Su=class _y{constructor(t){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=t,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(t){this.gl=t,this._renderer.gl=t}init(t){t={..._y.defaultOptions,...t};let e=this.multiView=t.multiView;if(t.context&&e&&(L("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),e=!1),e?this.canvas=W.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,t.context)this.initFromContext(t.context);else{let r=this._renderer.background.alpha<1,s=t.premultipliedAlpha??!0,n=t.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(t.preferWebGLVersion,{alpha:r,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference??"default"})}}ensureCanvasSize(t){if(!this.multiView){t!==this.canvas&&L("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:e}=this;(e.width<t.width||e.height<t.height)&&(e.width=Math.max(t.width,t.width),e.height=Math.max(t.height,t.height))}initFromContext(t){this.gl=t,this.webGLVersion=t instanceof W.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(t),this._renderer.runners.contextChange.emit(t);let e=this._renderer.view.canvas;e.addEventListener("webglcontextlost",this.handleContextLost,!1),e.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(t,e){let r,s=this.canvas;if(t===2&&(r=s.getContext("webgl2",e)),!r&&(r=s.getContext("webgl",e),!r))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=r,this.initFromContext(this.gl)}getExtensions(){let{gl:t}=this,e={anisotropicFiltering:t.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),s3tc:t.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:t.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:t.getExtension("WEBGL_compressed_texture_etc"),etc1:t.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:t.getExtension("WEBGL_compressed_texture_atc"),astc:t.getExtension("WEBGL_compressed_texture_astc"),bptc:t.getExtension("EXT_texture_compression_bptc"),rgtc:t.getExtension("EXT_texture_compression_rgtc"),loseContext:t.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...e,drawBuffers:t.getExtension("WEBGL_draw_buffers"),depthTexture:t.getExtension("WEBGL_depth_texture"),vertexArrayObject:t.getExtension("OES_vertex_array_object")||t.getExtension("MOZ_OES_vertex_array_object")||t.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:t.getExtension("OES_element_index_uint"),floatTexture:t.getExtension("OES_texture_float"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),textureHalfFloat:t.getExtension("OES_texture_half_float"),textureHalfFloatLinear:t.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:t.getExtension("ANGLE_instanced_arrays"),srgb:t.getExtension("EXT_sRGB")};else{this.extensions={...e,colorBufferFloat:t.getExtension("EXT_color_buffer_float")};let r=t.getExtension("WEBGL_provoking_vertex");r&&r.provokingVertexWEBGL(r.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(t){t.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let t=this._renderer.view.canvas;this._renderer=null,t.removeEventListener("webglcontextlost",this.handleContextLost),t.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(t){let e=t.getContextAttributes();e&&!e.stencil&&L("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let r=this.supports,s=this.webGLVersion===2,n=this.extensions;r.uint32Indices=s||!!n.uint32ElementIndex,r.uniformBufferObject=s,r.vertexArrayObject=s||!!n.vertexArrayObject,r.srgbTextures=s||!!n.srgb,r.nonPowOf2wrapping=s,r.nonPowOf2mipmaps=s,r.msaa=s,r.uint32Indices||L("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};Su.extension={type:[y.WebGLSystem],name:"context"};Su.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};yy=Su});var $a,Un,at,qa=p(()=>{"use strict";$a=(i=>(i[i.RGBA=6408]="RGBA",i[i.RGB=6407]="RGB",i[i.RG=33319]="RG",i[i.RED=6403]="RED",i[i.RGBA_INTEGER=36249]="RGBA_INTEGER",i[i.RGB_INTEGER=36248]="RGB_INTEGER",i[i.RG_INTEGER=33320]="RG_INTEGER",i[i.RED_INTEGER=36244]="RED_INTEGER",i[i.ALPHA=6406]="ALPHA",i[i.LUMINANCE=6409]="LUMINANCE",i[i.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",i[i.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",i[i.DEPTH_STENCIL=34041]="DEPTH_STENCIL",i))($a||{}),Un=(i=>(i[i.TEXTURE_2D=3553]="TEXTURE_2D",i[i.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",i[i.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",i[i.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",i[i.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",i[i.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",i[i.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",i))(Un||{}),at=(i=>(i[i.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",i[i.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",i[i.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",i[i.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",i[i.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",i[i.UNSIGNED_INT=5125]="UNSIGNED_INT",i[i.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",i[i.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",i[i.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",i[i.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",i[i.BYTE=5120]="BYTE",i[i.SHORT=5122]="SHORT",i[i.INT=5124]="INT",i[i.FLOAT=5126]="FLOAT",i[i.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",i[i.HALF_FLOAT=36193]="HALF_FLOAT",i))(at||{})});function Sy(i){return vy[i]??vy.float32}var vy,Ty=p(()=>{qa();vy={uint8x2:at.UNSIGNED_BYTE,uint8x4:at.UNSIGNED_BYTE,sint8x2:at.BYTE,sint8x4:at.BYTE,unorm8x2:at.UNSIGNED_BYTE,unorm8x4:at.UNSIGNED_BYTE,snorm8x2:at.BYTE,snorm8x4:at.BYTE,uint16x2:at.UNSIGNED_SHORT,uint16x4:at.UNSIGNED_SHORT,sint16x2:at.SHORT,sint16x4:at.SHORT,unorm16x2:at.UNSIGNED_SHORT,unorm16x4:at.UNSIGNED_SHORT,snorm16x2:at.SHORT,snorm16x4:at.SHORT,float16x2:at.HALF_FLOAT,float16x4:at.HALF_FLOAT,float32:at.FLOAT,float32x2:at.FLOAT,float32x3:at.FLOAT,float32x4:at.FLOAT,uint32:at.UNSIGNED_INT,uint32x2:at.UNSIGNED_INT,uint32x3:at.UNSIGNED_INT,uint32x4:at.UNSIGNED_INT,sint32:at.INT,sint32x2:at.INT,sint32x3:at.INT,sint32x4:at.INT}});var HT,Tu,Dn,wy=p(()=>{P();Ie();pr();pu();Ty();HT={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},Tu=class{constructor(){this.vaoCache=Object.create(null)}destroy(){this.vaoCache=Object.create(null)}},Dn=class{constructor(t){this._renderer=t,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._managedGeometries=new kt({renderer:t,type:"resource",onUnload:this.onGeometryUnload.bind(this),name:"glGeometry"})}contextChange(){let t=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");this.destroyAll(!0);let e=this._renderer.context.extensions.vertexArrayObject;e&&(t.createVertexArray=()=>e.createVertexArrayOES(),t.bindVertexArray=s=>e.bindVertexArrayOES(s),t.deleteVertexArray=s=>e.deleteVertexArrayOES(s));let r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(t.drawArraysInstanced=(s,n,o,a)=>{r.drawArraysInstancedANGLE(s,n,o,a)},t.drawElementsInstanced=(s,n,o,a,l)=>{r.drawElementsInstancedANGLE(s,n,o,a,l)},t.vertexAttribDivisor=(s,n)=>r.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null}bind(t,e){let r=this.gl;this._activeGeometry=t;let s=this.getVao(t,e);this._activeVao!==s&&(this._activeVao=s,r.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let t=this._activeGeometry,e=this._renderer.buffer;for(let r=0;r<t.buffers.length;r++){let s=t.buffers[r];e.updateBuffer(s)}t._gcLastUsed=this._renderer.gc.now}checkCompatibility(t,e){let r=t.attributes,s=e._attributeData;for(let n in s)if(!r[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(t,e){let r=t.attributes,s=e._attributeData,n=["g",t.uid];for(let o in r)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(t,e){return t._gpuData[this._renderer.uid]?.vaoCache[e._key]||this.initGeometryVao(t,e)}initGeometryVao(t,e,r=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(e),this.checkCompatibility(t,e);let o=this.getSignature(t,e),a=t._gpuData[this._renderer.uid];a||(a=new Tu,t._gpuData[this._renderer.uid]=a,this._managedGeometries.add(t));let l=a.vaoCache,c=l[o];if(c)return l[e._key]=c,c;En(t,e._attributeData);let h=t.buffers;c=s.createVertexArray(),s.bindVertexArray(c);for(let u=0;u<h.length;u++){let d=h[u];n.bind(d)}return this.activateVao(t,e),l[e._key]=c,l[o]=c,s.bindVertexArray(null),c}onGeometryUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];if(!r)return;let s=r.vaoCache;if(!e)for(let n in s)this._activeVao!==s[n]&&this.resetState(),this.gl.deleteVertexArray(s[n])}destroyAll(t=!1){this._managedGeometries.removeAll(t)}activateVao(t,e){let r=this._renderer.gl,s=this._renderer.buffer,n=t.attributes;t.indexBuffer&&s.bind(t.indexBuffer);let o=null;for(let a in n){let l=n[a],c=l.buffer,h=s.getGlBuffer(c),u=e._attributeData[a];if(u){o!==h&&(s.bind(c),o=h);let d=u.location;r.enableVertexAttribArray(d);let f=Jt(l.format),m=Sy(l.format);if(u.format?.substring(1,4)==="int"?r.vertexAttribIPointer(d,f.size,m,l.stride,l.offset):r.vertexAttribPointer(d,f.size,m,f.normalised,l.stride,l.offset),l.instance)if(this.hasInstance){let g=l.divisor??1;r.vertexAttribDivisor(d,g)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(t,e,r,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=HT[t||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let l=o.indexBuffer.data.BYTES_PER_ELEMENT,c=l===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s!==1?n.drawElementsInstanced(a,e||o.indexBuffer.data.length,c,(r||0)*l,s):n.drawElements(a,e||o.indexBuffer.data.length,c,(r||0)*l)}else s!==1?n.drawArraysInstanced(a,r||0,e||o.vertexCount,s):n.drawArrays(a,r||0,e||o.vertexCount);return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._managedGeometries.destroy(),this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};Dn.extension={type:[y.WebGLSystem],name:"geometry"}});var WT,wu,Ey,Py=p(()=>{P();ht();zr();gr();Be();$t();gt();Nr();WT=new he({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),wu=class Cy{constructor(t){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=t}init(t={}){let{useBackBuffer:e,antialias:r}={...Cy.defaultOptions,...t};this.useBackBuffer=e,this._antialias=r,this._renderer.context.supports.msaa||(L("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Ot.for2d();let s=new be({vertex:`
|
|
751
|
+
`})),e=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:t}]}}),this.pipelines[t]=e),e}generateMipmap(t){let e=this._getMipmapPipeline(t.format);if(t.dimension==="3d"||t.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let r=t,s=t.depthOrArrayLayers||1,n=t.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let l={size:{width:Math.ceil(t.width/2),height:Math.ceil(t.height/2),depthOrArrayLayers:s},format:t.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:t.mipLevelCount-1};r=this.device.createTexture(l)}let o=this.device.createCommandEncoder({}),a=e.getBindGroupLayout(0);for(let l=0;l<s;++l){let c=t.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:l,arrayLayerCount:1}),h=n?1:0;for(let u=1;u<t.mipLevelCount;++u){let d=r.createView({baseMipLevel:h++,mipLevelCount:1,dimension:"2d",baseArrayLayer:l,arrayLayerCount:1}),f=o.beginRenderPass({colorAttachments:[{view:d,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),m=this.device.createBindGroup({layout:a,entries:[{binding:0,resource:this.sampler},{binding:1,resource:c}]});f.setPipeline(e),f.setBindGroup(0,m),f.draw(3,1,0,0),f.end(),c=d}}if(!n){let l={width:Math.ceil(t.width/2),height:Math.ceil(t.height/2),depthOrArrayLayers:s};for(let c=1;c<t.mipLevelCount;++c)o.copyTextureToTexture({texture:r,mipLevel:c-1},{texture:t,mipLevel:c},l),l.width=Math.ceil(l.width/2),l.height=Math.ceil(l.height/2)}return this.device.queue.submit([o.finish()]),n||r.destroy(),t}}});function oy(i){return`${i.format||""}.${i.dimension||""}.${i.aspect||""}.${i.baseMipLevel||0}.${i.mipLevelCount||""}.${i.baseArrayLayer||0}.${i.arrayLayerCount||""}`}var _u,yu,bu,ly=p(()=>{xt();P();Ie();me();qo();mr();Z_();J_();ry();xu();sy();ny();_u=class{constructor(t){this.textureView=null,this.textureViews=Object.create(null),this.gpuTexture=t}destroy(){this.gpuTexture.destroy(),this.textureView=null,this.textureViews=null,this.gpuTexture=null}};yu=class ay{constructor(t){this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._renderer=t,t.gc.addCollection(this,"_bindGroupHash","hash"),this._managedTextures=new kt({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"gpuTextureSource"});let e={image:Xa,buffer:K_,video:iy,compressed:Q_,...ay.uploadExtensions};this._uploads={...e,cube:ey(e)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(t){this._gpu=t}initSource(t){return t._gpuData[this._renderer.uid]?.gpuTexture||this._initSource(t)}_initSource(t){if(t.autoGenerateMipmaps){let c=Math.max(t.pixelWidth,t.pixelHeight);t.mipLevelCount=Math.floor(Math.log2(c))+1}let e;t.sampleCount>1?(e=GPUTextureUsage.RENDER_ATTACHMENT,t.transient&&this._renderer.device.extensions.transientAttachment&&(e|=GPUTextureUsage.TRANSIENT_ATTACHMENT)):(e=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,t.uploadMethodId!=="compressed"&&(e|=GPUTextureUsage.RENDER_ATTACHMENT,e|=GPUTextureUsage.COPY_SRC));let r=gu[t.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(t.pixelWidth/r.blockWidth)*r.blockWidth,n=Math.ceil(t.pixelHeight/r.blockHeight)*r.blockHeight,o={label:t.label,size:{width:s,height:n,depthOrArrayLayers:t.arrayLayerCount},format:t.format,sampleCount:t.sampleCount,mipLevelCount:t.mipLevelCount,dimension:t.dimension,usage:e},a=this._gpu.device.createTexture(o);return t._gpuData[this._renderer.uid]=new _u(a),this._managedTextures.add(t)&&(t.on("update",this.onSourceUpdate,this),t.on("resize",this.onSourceResize,this),t.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(t),a}onSourceUpdate(t){let e=this.getGpuSource(t);e&&(this._uploads[t.uploadMethodId]&&this._uploads[t.uploadMethodId].upload(t,e,this._gpu),t.autoGenerateMipmaps&&t.mipLevelCount>1&&this.onUpdateMipmaps(t))}onUpdateMipmaps(t){this._mipmapGenerator||(this._mipmapGenerator=new Ya(this._gpu.device));let e=this.getGpuSource(t);this._mipmapGenerator.generateMipmap(e)}onSourceUnload(t){t.off("update",this.onSourceUpdate,this),t.off("resize",this.onSourceResize,this),t.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceResize(t){t._gcLastUsed=this._renderer.gc.now;let e=t._gpuData[this._renderer.uid],r=e?.gpuTexture;r?(r.width!==t.pixelWidth||r.height!==t.pixelHeight)&&(e.destroy(),this._bindGroupHash[t.uid]=null,t._gpuData[this._renderer.uid]=null,this.initSource(t)):this.initSource(t)}_initSampler(t){return this._gpuSamplers[t._resourceId]=this._gpu.device.createSampler(t),this._gpuSamplers[t._resourceId]}getGpuSampler(t){return this._gpuSamplers[t._resourceId]||this._initSampler(t)}getGpuSource(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]?.gpuTexture||this.initSource(t)}getTextureBindGroup(t){return this._bindGroupHash[t.uid]||this._createTextureBindGroup(t)}_createTextureBindGroup(t){let e=t.source;return this._bindGroupHash[t.uid]=new Vt({0:e,1:e.style,2:new Ct({uTextureMatrix:{type:"mat3x3<f32>",value:t.textureMatrix.mapCoord}})}),this._bindGroupHash[t.uid]}getTextureView(t,e){var r;let s=t.source;s._gcLastUsed=this._renderer.gc.now;let n=s._gpuData[this._renderer.uid];n||(this.initSource(s),n=s._gpuData[this._renderer.uid]);let o=e?oy(e):0;return(r=n.textureViews)[o]||(r[o]=n.gpuTexture.createView({dimension:s.viewDimension,...e})),n.textureViews[o]}getTextureRenderTargetView(t,e=0,r=0,s){var n;let o=t.source;o._gcLastUsed=this._renderer.gc.now;let a=o._gpuData[this._renderer.uid];a||(this.initSource(o),a=o._gpuData[this._renderer.uid]);let l=r*(o.mipLevelCount||1)+e+1;return s&&(l=`${l}.${oy(s)}`),(n=a.textureViews)[l]||(n[l]=a.gpuTexture.createView({dimension:"2d",baseMipLevel:e,mipLevelCount:1,baseArrayLayer:r,arrayLayerCount:1,...s})),a.textureViews[l]}generateCanvas(t){let e=this._renderer,r=e.gpu.device.createCommandEncoder(),s=W.get().createCanvas();s.width=t.source.pixelWidth,s.height=t.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:e.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:W.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:e.texture.getGpuSource(t.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),e.gpu.device.queue.submit([r.finish()]),s}getPixels(t){let e=this.generateCanvas(t),r=rr.getOptimalCanvasAndContext(e.width,e.height),s=r.context;s.drawImage(e,0,0);let{width:n,height:o}=e,a=s.getImageData(0,0,n,o),l=new Uint8ClampedArray(a.data.buffer);return rr.returnCanvasAndContext(r),{pixels:l,width:n,height:o}}destroy(){this._managedTextures.destroy();for(let t of Object.keys(this._bindGroupHash)){let e=Number(t);this._bindGroupHash[e]?.destroy()}this._renderer=null,this._gpu=null,this._mipmapGenerator=null,this._gpuSamplers=null,this._bindGroupHash=null}};yu.extension={type:[y.WebGPUSystem],name:"texture"};yu.uploadExtensions=Object.create(null);bu=yu;z.handleByMap(y.TextureUploaderWebGPU,bu.uploadExtensions)});var dy={};Vl(dy,{WebGPURenderer:()=>vu});var HT,WT,VT,cy,hy,uy,vu,fy=p(()=>{P();ox();cx();hx();Vr();La();Ne();__();y_();b_();v_();S_();T_();w_();fu();B_();O_();X_();Y_();q_();ly();HT=[...Yi,Qr,vn,$i,Sn,yn,bu,An,Rn,kn,Mn,bn,Tn,_n],WT=[...Da,En],VT=[Zs,Ks,qs],cy=[],hy=[],uy=[];z.handleByNamedList(y.WebGPUSystem,cy);z.handleByNamedList(y.WebGPUPipes,hy);z.handleByNamedList(y.WebGPUPipesAdaptor,uy);z.add(...HT,...WT,...VT);vu=class extends Te{constructor(){let t={name:"webgpu",type:Lt.WEBGPU,systems:cy,renderPipes:hy,renderPipeAdaptors:uy};super(t)}}});var Bn,py=p(()=>{P();ot();Di();ba();Ta();$s();Ni();Xh();gr();me();Bn=class{contextChange(t){let e=new Ct({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),r=t.limits.maxBatchableTextures,s=Ui({name:"graphics",bits:[ya,Sa(r),wa,Oi]});this.shader=new te({glProgram:s,resources:{localUniforms:e,batchSamplers:ka(r)}})}execute(t,e){let r=e.context,s=r.customShader||this.shader,n=t.renderer,o=n.graphicsContext,{batcher:a,instructions:l}=o.getContextRenderData(r);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(t.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let c=l.instructions;for(let h=0;h<l.instructionSize;h++){let u=c[h];if(u.size){for(let d=0;d<u.textures.count;d++)n.texture.bind(u.textures.textures[d],d);n.geometry.draw(u.topology,u.size,u.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};Bn.extension={type:[y.WebGLPipesAdaptor],name:"graphics"}});var In,my=p(()=>{P();ot();Di();$s();Ni();Bh();gr();gt();ht();In=class{init(){let t=Ui({name:"mesh",bits:[wa,lx,Oi]});this._shader=new te({glProgram:t,resources:{uTexture:F.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(t,e){let r=t.renderer,s=e._shader;if(s){if(!s.glProgram){L("Mesh shader has no glProgram",e.shader);return}}else{s=this._shader;let n=e.texture,o=n.source;s.resources.uTexture=o,s.resources.uSampler=o.style,s.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}s.groups[100]=r.globalUniforms.bindGroup,s.groups[101]=t.localUniformsBindGroup,r.encoder.draw({geometry:e._geometry,shader:s,state:e.state})}destroy(){this._shader.destroy(!0),this._shader=null}};In.extension={type:[y.WebGLPipesAdaptor],name:"mesh"}});var Gn,gy=p(()=>{P();Be();Gn=class{constructor(){this._tempState=Ot.for2d(),this._didUploadHash={}}init(t){t.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(t,e,r){let s=t.renderer,n=this._didUploadHash[r.uid];s.shader.bind(r,n),n||(this._didUploadHash[r.uid]=!0),s.shader.updateUniformGroup(s.globalUniforms.uniformGroup),s.geometry.bind(e,r.glProgram)}execute(t,e){let r=t.renderer;this._tempState.blendMode=e.blendMode,r.state.set(this._tempState);let s=e.textures.textures;for(let n=0;n<e.textures.count;n++)r.texture.bind(s[n],n);r.geometry.draw(e.topology,e.size,e.start)}};Gn.extension={type:[y.WebGLPipesAdaptor],name:"batch"}});var Fn,xy=p(()=>{"use strict";Fn=(i=>(i[i.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",i[i.ARRAY_BUFFER=34962]="ARRAY_BUFFER",i[i.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",i))(Fn||{})});var $a,_y=p(()=>{"use strict";$a=class{constructor(t,e){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=t||null,this.updateID=-1,this.byteLength=-1,this.type=e}destroy(){this.buffer=null,this.updateID=-1,this.byteLength=-1,this.type=-1,this._lastBindBaseLocation=-1,this._lastBindCallId=-1}}});var Un,yy=p(()=>{P();Ie();ir();xy();_y();Un=class{constructor(t){this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=t,this._managedBuffers=new kt({renderer:t,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"glBuffer"})}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gl=null,this._boundBufferBases={}}contextChange(){this._gl=this._renderer.gl,this.destroyAll(!0),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]||this.createGLBuffer(t)}bind(t){let{_gl:e}=this,r=this.getGlBuffer(t);e.bindBuffer(r.type,r.buffer)}bindBufferBase(t,e){let{_gl:r}=this;this._boundBufferBases[e]!==t&&(this._boundBufferBases[e]=t,t._lastBindBaseLocation=e,r.bindBufferBase(r.UNIFORM_BUFFER,e,t.buffer))}nextBindBase(t){this._bindCallId++,this._minBaseLocation=0,t&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(t){let e=this.getLastBindBaseLocation(t);if(e>=this._minBaseLocation)return t._lastBindCallId=this._bindCallId,e;let r=0,s=this._nextBindBaseIndex;for(;r<2;){s>=this._maxBindings&&(s=this._minBaseLocation,r++);let n=this._boundBufferBases[s];if(n&&n._lastBindCallId===this._bindCallId){s++;continue}break}return e=s,this._nextBindBaseIndex=s+1,r>=2?-1:(t._lastBindCallId=this._bindCallId,this._boundBufferBases[e]=null,e)}getLastBindBaseLocation(t){let e=t._lastBindBaseLocation;return this._boundBufferBases[e]===t?e:-1}bindBufferRange(t,e,r,s){let{_gl:n}=this;r||(r=0),e||(e=0),this._boundBufferBases[e]=null,n.bindBufferRange(n.UNIFORM_BUFFER,e||0,t.buffer,r*256,s||256)}updateBuffer(t){let{_gl:e}=this,r=this.getGlBuffer(t);if(t._updateID===r.updateID)return r;r.updateID=t._updateID,e.bindBuffer(r.type,r.buffer);let s=t.data,n=t.descriptor.usage&tt.STATIC?e.STATIC_DRAW:e.DYNAMIC_DRAW;return s?r.byteLength>=s.byteLength?e.bufferSubData(r.type,t._updateOffset,s,t._updateOffset/s.BYTES_PER_ELEMENT,(t._updateSize||s.byteLength)/s.BYTES_PER_ELEMENT):(r.byteLength=s.byteLength,e.bufferData(r.type,s,n)):(r.byteLength=t.descriptor.size,e.bufferData(r.type,r.byteLength,n)),r}destroyAll(t=!1){this._managedBuffers.removeAll(t)}onBufferUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];r&&(e||this._gl.deleteBuffer(r.buffer))}createGLBuffer(t){let{_gl:e}=this,r=Fn.ARRAY_BUFFER;t.descriptor.usage&tt.INDEX?r=Fn.ELEMENT_ARRAY_BUFFER:t.descriptor.usage&tt.UNIFORM&&(r=Fn.UNIFORM_BUFFER);let s=new $a(e.createBuffer(),r);return t._gpuData[this._renderer.uid]=s,this._managedBuffers.add(t),s}resetState(){this._boundBufferBases=Object.create(null)}};Un.extension={type:[y.WebGLSystem],name:"buffer"}});var Su,vy,Sy=p(()=>{xt();P();ht();Su=class by{constructor(t){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=t,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(t){this.gl=t,this._renderer.gl=t}init(t){t={...by.defaultOptions,...t};let e=this.multiView=t.multiView;if(t.context&&e&&(L("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),e=!1),e?this.canvas=W.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,t.context)this.initFromContext(t.context);else{let r=this._renderer.background.alpha<1,s=t.premultipliedAlpha??!0,n=t.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(t.preferWebGLVersion,{alpha:r,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference??"default"})}}ensureCanvasSize(t){if(!this.multiView){t!==this.canvas&&L("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:e}=this;(e.width<t.width||e.height<t.height)&&(e.width=Math.max(t.width,t.width),e.height=Math.max(t.height,t.height))}initFromContext(t){this.gl=t,this.webGLVersion=t instanceof W.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(t),this._renderer.runners.contextChange.emit(t);let e=this._renderer.view.canvas;e.addEventListener("webglcontextlost",this.handleContextLost,!1),e.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(t,e){let r,s=this.canvas;if(t===2&&(r=s.getContext("webgl2",e)),!r&&(r=s.getContext("webgl",e),!r))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=r,this.initFromContext(this.gl)}getExtensions(){let{gl:t}=this,e={anisotropicFiltering:t.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),s3tc:t.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:t.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:t.getExtension("WEBGL_compressed_texture_etc"),etc1:t.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:t.getExtension("WEBGL_compressed_texture_pvrtc")||t.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:t.getExtension("WEBGL_compressed_texture_atc"),astc:t.getExtension("WEBGL_compressed_texture_astc"),bptc:t.getExtension("EXT_texture_compression_bptc"),rgtc:t.getExtension("EXT_texture_compression_rgtc"),loseContext:t.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...e,drawBuffers:t.getExtension("WEBGL_draw_buffers"),depthTexture:t.getExtension("WEBGL_depth_texture"),vertexArrayObject:t.getExtension("OES_vertex_array_object")||t.getExtension("MOZ_OES_vertex_array_object")||t.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:t.getExtension("OES_element_index_uint"),floatTexture:t.getExtension("OES_texture_float"),floatTextureLinear:t.getExtension("OES_texture_float_linear"),textureHalfFloat:t.getExtension("OES_texture_half_float"),textureHalfFloatLinear:t.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:t.getExtension("ANGLE_instanced_arrays"),srgb:t.getExtension("EXT_sRGB")};else{this.extensions={...e,colorBufferFloat:t.getExtension("EXT_color_buffer_float")};let r=t.getExtension("WEBGL_provoking_vertex");r&&r.provokingVertexWEBGL(r.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(t){t.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this.getExtensions(),this._renderer.runners.contextChange.emit(this.gl)}destroy(){let t=this._renderer.view.canvas;this._renderer=null,t.removeEventListener("webglcontextlost",this.handleContextLost),t.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(t){let e=t.getContextAttributes();e&&!e.stencil&&L("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let r=this.supports,s=this.webGLVersion===2,n=this.extensions;r.uint32Indices=s||!!n.uint32ElementIndex,r.uniformBufferObject=s,r.vertexArrayObject=s||!!n.vertexArrayObject,r.srgbTextures=s||!!n.srgb,r.nonPowOf2wrapping=s,r.nonPowOf2mipmaps=s,r.msaa=s,r.uint32Indices||L("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};Su.extension={type:[y.WebGLSystem],name:"context"};Su.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};vy=Su});var qa,Dn,at,Ka=p(()=>{"use strict";qa=(i=>(i[i.RGBA=6408]="RGBA",i[i.RGB=6407]="RGB",i[i.RG=33319]="RG",i[i.RED=6403]="RED",i[i.RGBA_INTEGER=36249]="RGBA_INTEGER",i[i.RGB_INTEGER=36248]="RGB_INTEGER",i[i.RG_INTEGER=33320]="RG_INTEGER",i[i.RED_INTEGER=36244]="RED_INTEGER",i[i.ALPHA=6406]="ALPHA",i[i.LUMINANCE=6409]="LUMINANCE",i[i.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",i[i.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",i[i.DEPTH_STENCIL=34041]="DEPTH_STENCIL",i))(qa||{}),Dn=(i=>(i[i.TEXTURE_2D=3553]="TEXTURE_2D",i[i.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",i[i.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",i[i.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",i[i.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",i[i.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",i[i.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",i))(Dn||{}),at=(i=>(i[i.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",i[i.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",i[i.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",i[i.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",i[i.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",i[i.UNSIGNED_INT=5125]="UNSIGNED_INT",i[i.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",i[i.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",i[i.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",i[i.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",i[i.BYTE=5120]="BYTE",i[i.SHORT=5122]="SHORT",i[i.INT=5124]="INT",i[i.FLOAT=5126]="FLOAT",i[i.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",i[i.HALF_FLOAT=36193]="HALF_FLOAT",i))(at||{})});function wy(i){return Ty[i]??Ty.float32}var Ty,Cy=p(()=>{Ka();Ty={uint8x2:at.UNSIGNED_BYTE,uint8x4:at.UNSIGNED_BYTE,sint8x2:at.BYTE,sint8x4:at.BYTE,unorm8x2:at.UNSIGNED_BYTE,unorm8x4:at.UNSIGNED_BYTE,snorm8x2:at.BYTE,snorm8x4:at.BYTE,uint16x2:at.UNSIGNED_SHORT,uint16x4:at.UNSIGNED_SHORT,sint16x2:at.SHORT,sint16x4:at.SHORT,unorm16x2:at.UNSIGNED_SHORT,unorm16x4:at.UNSIGNED_SHORT,snorm16x2:at.SHORT,snorm16x4:at.SHORT,float16x2:at.HALF_FLOAT,float16x4:at.HALF_FLOAT,float32:at.FLOAT,float32x2:at.FLOAT,float32x3:at.FLOAT,float32x4:at.FLOAT,uint32:at.UNSIGNED_INT,uint32x2:at.UNSIGNED_INT,uint32x3:at.UNSIGNED_INT,uint32x4:at.UNSIGNED_INT,sint32:at.INT,sint32x2:at.INT,sint32x3:at.INT,sint32x4:at.INT}});var jT,Tu,Ln,Ey=p(()=>{P();Ie();pr();pu();Cy();jT={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},Tu=class{constructor(){this.vaoCache=Object.create(null)}destroy(){this.vaoCache=Object.create(null)}},Ln=class{constructor(t){this._renderer=t,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._managedGeometries=new kt({renderer:t,type:"resource",onUnload:this.onGeometryUnload.bind(this),name:"glGeometry"})}contextChange(){let t=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");this.destroyAll(!0);let e=this._renderer.context.extensions.vertexArrayObject;e&&(t.createVertexArray=()=>e.createVertexArrayOES(),t.bindVertexArray=s=>e.bindVertexArrayOES(s),t.deleteVertexArray=s=>e.deleteVertexArrayOES(s));let r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(t.drawArraysInstanced=(s,n,o,a)=>{r.drawArraysInstancedANGLE(s,n,o,a)},t.drawElementsInstanced=(s,n,o,a,l)=>{r.drawElementsInstancedANGLE(s,n,o,a,l)},t.vertexAttribDivisor=(s,n)=>r.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null}bind(t,e){let r=this.gl;this._activeGeometry=t;let s=this.getVao(t,e);this._activeVao!==s&&(this._activeVao=s,r.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let t=this._activeGeometry,e=this._renderer.buffer;for(let r=0;r<t.buffers.length;r++){let s=t.buffers[r];e.updateBuffer(s)}t._gcLastUsed=this._renderer.gc.now}checkCompatibility(t,e){let r=t.attributes,s=e._attributeData;for(let n in s)if(!r[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(t,e){let r=t.attributes,s=e._attributeData,n=["g",t.uid];for(let o in r)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(t,e){return t._gpuData[this._renderer.uid]?.vaoCache[e._key]||this.initGeometryVao(t,e)}initGeometryVao(t,e,r=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(e),this.checkCompatibility(t,e);let o=this.getSignature(t,e),a=t._gpuData[this._renderer.uid];a||(a=new Tu,t._gpuData[this._renderer.uid]=a,this._managedGeometries.add(t));let l=a.vaoCache,c=l[o];if(c)return l[e._key]=c,c;Pn(t,e._attributeData);let h=t.buffers;c=s.createVertexArray(),s.bindVertexArray(c);for(let u=0;u<h.length;u++){let d=h[u];n.bind(d)}return this.activateVao(t,e),l[e._key]=c,l[o]=c,s.bindVertexArray(null),c}onGeometryUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];if(!r)return;let s=r.vaoCache;if(!e)for(let n in s)this._activeVao!==s[n]&&this.resetState(),this.gl.deleteVertexArray(s[n])}destroyAll(t=!1){this._managedGeometries.removeAll(t)}activateVao(t,e){let r=this._renderer.gl,s=this._renderer.buffer,n=t.attributes;t.indexBuffer&&s.bind(t.indexBuffer);let o=null;for(let a in n){let l=n[a],c=l.buffer,h=s.getGlBuffer(c),u=e._attributeData[a];if(u){o!==h&&(s.bind(c),o=h);let d=u.location;r.enableVertexAttribArray(d);let f=Jt(l.format),m=wy(l.format);if(u.format?.substring(1,4)==="int"?r.vertexAttribIPointer(d,f.size,m,l.stride,l.offset):r.vertexAttribPointer(d,f.size,m,f.normalised,l.stride,l.offset),l.instance)if(this.hasInstance){let g=l.divisor??1;r.vertexAttribDivisor(d,g)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(t,e,r,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=jT[t||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let l=o.indexBuffer.data.BYTES_PER_ELEMENT,c=l===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s!==1?n.drawElementsInstanced(a,e||o.indexBuffer.data.length,c,(r||0)*l,s):n.drawElements(a,e||o.indexBuffer.data.length,c,(r||0)*l)}else s!==1?n.drawArraysInstanced(a,r||0,e||o.vertexCount,s):n.drawArrays(a,r||0,e||o.vertexCount);return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._managedGeometries.destroy(),this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}};Ln.extension={type:[y.WebGLSystem],name:"geometry"}});var XT,wu,My,Ay=p(()=>{P();ht();zr();gr();Be();$t();gt();Nr();XT=new ue({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),wu=class Py{constructor(t){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=t}init(t={}){let{useBackBuffer:e,antialias:r}={...Py.defaultOptions,...t};this.useBackBuffer=e,this._antialias=r,this._renderer.context.supports.msaa||(L("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=Ot.for2d();let s=new be({vertex:`
|
|
752
752
|
attribute vec2 aPosition;
|
|
753
753
|
out vec2 vUv;
|
|
754
754
|
|
|
@@ -767,7 +767,7 @@ fn mainFragment(
|
|
|
767
767
|
|
|
768
768
|
void main() {
|
|
769
769
|
finalColor = texture(uTexture, vUv);
|
|
770
|
-
}`,name:"big-triangle"});this._bigTriangleShader=new te({glProgram:s,resources:{uTexture:
|
|
770
|
+
}`,name:"big-triangle"});this._bigTriangleShader=new te({glProgram:s,resources:{uTexture:F.WHITE.source}})}renderStart(t){let e=this._renderer.renderTarget.getRenderTarget(t.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!e.isRoot,this._useBackBufferThisRender){let r=this._renderer.renderTarget.getRenderTarget(t.target);this._targetTexture=r.colorTexture,t.target=this._getBackBufferTexture(r.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let t=this._renderer;t.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(t.renderTarget.bind({target:this._targetTexture,clear:!1}),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,t.encoder.draw({geometry:XT,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(t){return this._backBufferTexture=this._backBufferTexture||new F({source:new st({width:t.width,height:t.height,resolution:t._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(t.width,t.height,t._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};wu.extension={type:[y.WebGLSystem],name:"backBuffer",priority:1};wu.defaultOptions={useBackBuffer:!1};My=wu});var On,Ry=p(()=>{P();On=class{constructor(t){this._colorMaskCache=15,this._renderer=t}setMask(t){this._colorMaskCache!==t&&(this._colorMaskCache=t,this._renderer.gl.colorMask(!!(t&8),!!(t&4),!!(t&2),!!(t&1)))}};On.extension={type:[y.WebGLSystem],name:"colorMask"}});var Nn,ky=p(()=>{P();Nn=class{constructor(t){this.commandFinished=Promise.resolve(),this._renderer=t}setGeometry(t,e){this._renderer.geometry.bind(t,e.glProgram)}finishRenderPass(){}draw(t){let e=this._renderer,{geometry:r,shader:s,state:n,skipSync:o,topology:a,size:l,start:c,instanceCount:h}=t;e.shader.bind(s,o),e.geometry.bind(r,e.shader._activeProgram),n&&e.state.set(n),e.geometry.draw(a,l,c,h??r.instanceCount)}destroy(){this._renderer=null}};Nn.extension={type:[y.WebGLSystem],name:"encoder"}});var zn,By=p(()=>{P();Vh();zn=class{constructor(t){this._renderer=t}contextChange(){let t=this._renderer.gl;this.maxTextures=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=Pa(this.maxTextures,t);let e=this._renderer.context.webGLVersion===2;this.maxUniformBindings=e?t.getParameter(t.MAX_UNIFORM_BUFFER_BINDINGS):0}destroy(){}};zn.extension={type:[y.WebGLSystem],name:"limits"}});var Hn,Iy=p(()=>{P();mu();$r();Hn=class{constructor(t){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:vt.NONE},this._renderTargetStencilState=Object.create(null),t.renderTarget.onRenderTargetChange.add(this)}contextChange(t){this._gl=t,this._comparisonFuncMapping={always:t.ALWAYS,never:t.NEVER,equal:t.EQUAL,"not-equal":t.NOTEQUAL,less:t.LESS,"less-equal":t.LEQUAL,greater:t.GREATER,"greater-equal":t.GEQUAL},this._stencilOpsMapping={keep:t.KEEP,zero:t.ZERO,replace:t.REPLACE,invert:t.INVERT,"increment-clamp":t.INCR,"decrement-clamp":t.DECR,"increment-wrap":t.INCR_WRAP,"decrement-wrap":t.DECR_WRAP},this.resetState()}onRenderTargetChange(t){if(this._activeRenderTarget===t)return;this._activeRenderTarget=t;let e=this._renderTargetStencilState[t.uid];e||(e=this._renderTargetStencilState[t.uid]={stencilMode:vt.DISABLED,stencilReference:0}),this.setStencilMode(e.stencilMode,e.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=vt.NONE,this._stencilCache.stencilReference=0}setStencilMode(t,e){let r=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=We[t],o=this._stencilCache;if(r.stencilMode=t,r.stencilReference=e,t===vt.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,s.disable(s.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,s.enable(s.STENCIL_TEST)),(t!==o.stencilMode||o.stencilReference!==e)&&(o.stencilMode=t,o.stencilReference=e,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],e,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};Hn.extension={type:[y.WebGLSystem],name:"stencil"}});function Gy(i){let t=i.map(n=>({data:n,offset:0,size:0})),e=16,r=0,s=0;for(let n=0;n<t.length;n++){let o=t[n];if(r=Wn[o.data.type],!r)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(r=Math.max(r,e)*o.data.size);let a=r===12?16:r;o.size=r;let l=s%e;l>0&&e-l<a?s+=(e-l)%16:s+=(r-l%r)%r,o.offset=s,s+=r}return s=Math.ceil(s/16)*16,{uboElements:t,size:s}}var Wn,Za=p(()=>{"use strict";Wn={f32:4,i32:4,"vec2<f32>":8,"vec3<f32>":12,"vec4<f32>":16,"vec2<i32>":8,"vec3<i32>":12,"vec4<i32>":16,u32:4,"vec2<u32>":8,"vec3<u32>":12,"vec4<u32>":16,"mat2x2<f32>":32,"mat3x3<f32>":48,"mat4x4<f32>":64}});function Fy(i,t){let e=Math.max(Wn[i.data.type]/16,1),r=i.data.value.length/i.data.size,s=(4-r%4)%4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
|
|
771
771
|
v = uv.${i.data.name};
|
|
772
772
|
offset += ${t};
|
|
773
773
|
|
|
@@ -783,7 +783,7 @@ fn mainFragment(
|
|
|
783
783
|
}
|
|
784
784
|
${s!==0?`arrayOffset += ${s};`:""}
|
|
785
785
|
}
|
|
786
|
-
`}var Gy=p(()=>{Ka()});function Fy(i){return Na(i,uu,Iy)}var Uy=p(()=>{hu();du();Gy()});var Jr,Cu=p(()=>{P();La();Ka();Uy();Jr=class extends br{constructor(){super({createUboElements:By,generateUboSync:Fy})}};Jr.extension={type:[y.WebGLSystem],name:"ubo"}});var Za,Dy=p(()=>{"use strict";Za=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this._attachedMipLevel=0,this._attachedLayer=0,this.msaaRenderBuffer=[]}}});var Qa,Ly=p(()=>{Yt();ht();fr();ki();Dy();Qa=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new J,this._boundFramebuffer=void 0}init(t,e){this._renderer=t,this._renderTargetSystem=e,t.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new J,this._boundFramebuffer=void 0;let t=this._renderer.gl;this._drawBuffersCache=[];for(let e=1;e<=16;e++)this._drawBuffersCache[e]=Array.from({length:e},(r,s)=>t.COLOR_ATTACHMENT0+s)}copyToTexture(t,e,r,s,n){let o=this._renderTargetSystem,a=this._renderer,l=o.getGpuRenderTarget(t),c=a.gl;return this.finishRenderPass(t),c.bindFramebuffer(c.FRAMEBUFFER,l.resolveTargetFramebuffer),this._boundFramebuffer=l.resolveTargetFramebuffer,a.texture.bind(e,0),c.copyTexSubImage2D(c.TEXTURE_2D,0,n.x,n.y,r.x,r.y,s.width,s.height),e}copyDepthTexture(t,e,r,s,n){let o=this._renderTargetSystem,a=this._renderer.gl;this.finishRenderPass(t);let l=o.getRenderTarget(e),c=o.getGpuRenderTarget(t),h=o.getGpuRenderTarget(l);a.bindFramebuffer(a.READ_FRAMEBUFFER,c.framebuffer),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,h.framebuffer),this._boundFramebuffer=void 0,a.blitFramebuffer(r.x,r.y,r.x+s.width,r.y+s.height,n.x,n.y,n.x+s.width,n.y+s.height,a.DEPTH_BUFFER_BIT,a.NEAREST)}startRenderPass(t,e=!0,r,s,n=0,o=0){let l=this._renderTargetSystem.getGpuRenderTarget(t);if(o!==0&&this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to array layers requires WebGL2.");if(n>0){if(l.msaa)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to mip levels requires WebGL2.")}t.colorAttachments.forEach(d=>{this._renderer.texture.unbind(d.texture)});let c=this._renderer.gl;this.bindFramebuffer(l.framebuffer),!t.isRoot&&t.colorAttachments.length>0&&(l._attachedMipLevel!==n||l._attachedLayer!==o)&&(t.colorAttachments.forEach((d,f)=>{let m=d.texture,g=this._renderer.texture.getGlSource(m);if(g.target===c.TEXTURE_2D){if(o!==0)throw new Error("[RenderTargetSystem] layer must be 0 when rendering to 2D textures in WebGL.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,c.TEXTURE_2D,g.texture,n)}else if(g.target===c.TEXTURE_2D_ARRAY){if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to 2D array textures requires WebGL2.");c.framebufferTextureLayer(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,g.texture,n,o)}else if(g.target===c.TEXTURE_CUBE_MAP){if(o<0||o>5)throw new Error("[RenderTargetSystem] Cube map layer must be between 0 and 5.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,c.TEXTURE_CUBE_MAP_POSITIVE_X+o,g.texture,n)}else throw new Error("[RenderTargetSystem] Unsupported texture target for render-to-layer in WebGL.")}),l._attachedMipLevel=n,l._attachedLayer=o),l.framebuffer&&(t.depthStencilAttachment?this._attachDepthStencilTexture(t,n,o):!l.depthStencilRenderBuffer&&(t.stencil||t.depth)&&this._initStencil(l)),t.colorAttachments.length>1&&this._setDrawBuffers(t,c);let h=s.y;t.isRoot&&(h=t.pixelHeight-s.height-s.y);let u=this._viewPortCache;(u.x!==s.x||u.y!==h||u.width!==s.width||u.height!==s.height)&&(u.x=s.x,u.y=h,u.width=s.width,u.height=s.height,c.viewport(s.x,h,s.width,s.height)),this.clear(t,e,r)}finishRenderPass(t){let r=this._renderTargetSystem.getGpuRenderTarget(t);if(!r.msaa||t.colorAttachments.length===0)return;let s=this._renderer.gl;s.bindFramebuffer(s.FRAMEBUFFER,r.resolveTargetFramebuffer),s.bindFramebuffer(s.READ_FRAMEBUFFER,r.framebuffer),s.blitFramebuffer(0,0,r.width,r.height,0,0,r.width,r.height,s.COLOR_BUFFER_BIT,s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,r.framebuffer),this._boundFramebuffer=r.framebuffer}initGpuRenderTarget(t){let r=this._renderer.gl,s=new Za;s._attachedMipLevel=0,s._attachedLayer=0;let n=t.colorTexture;return n instanceof wt?(this._renderer.context.ensureCanvasSize(n.resource),s.framebuffer=null,s):(s.width=t.pixelWidth,s.height=t.pixelHeight,t.colorAttachments.length===0?this._initDepth(t,s):this._initColor(t,s),t.depthStencilAttachment&&this._attachDepthStencilTexture(t,0,0),r.bindFramebuffer(r.FRAMEBUFFER,null),this._boundFramebuffer=null,s)}destroyGpuRenderTarget(t){let e=this._renderer.gl;t.framebuffer&&(e.deleteFramebuffer(t.framebuffer),t.framebuffer=null),t.resolveTargetFramebuffer&&(e.deleteFramebuffer(t.resolveTargetFramebuffer),t.resolveTargetFramebuffer=null),t.depthStencilRenderBuffer&&(e.deleteRenderbuffer(t.depthStencilRenderBuffer),t.depthStencilRenderBuffer=null),t.msaaRenderBuffer.forEach(r=>{e.deleteRenderbuffer(r)}),t.msaaRenderBuffer=null}clear(t,e,r,s,n=0,o=0){if(!e)return;if(o!==0)throw new Error("[RenderTargetSystem] Clearing array layers is not supported in WebGL renderer.");let a=this._renderTargetSystem;if(typeof e=="boolean"&&(e=e?Et.ALL:Et.NONE),t.colorAttachments.length===0&&(e&=~Et.COLOR,!e))return;let l=this._renderer.gl,c=!!(e&Et.DEPTH)&&!this._renderer.state.depthMaskEnabled;if(e&Et.COLOR){r??(r=a.defaultClearColor);let h=this._clearColorCache,u=r;(h[0]!==u[0]||h[1]!==u[1]||h[2]!==u[2]||h[3]!==u[3])&&(h[0]=u[0],h[1]=u[1],h[2]=u[2],h[3]=u[3],l.clearColor(u[0],u[1],u[2],u[3]))}c&&l.depthMask(!0),l.clear(e),c&&l.depthMask(!1)}resizeGpuRenderTarget(t){if(t.isRoot)return;let e=this._renderTargetSystem.getGpuRenderTarget(t);e.width=t.pixelWidth,e.height=t.pixelHeight,t.colorAttachments.length>0&&this._resizeColor(t,e),e.depthStencilRenderBuffer&&this._resizeStencil(e),this._boundFramebuffer=void 0}_initColor(t,e){let r=this._renderer,s=r.gl,n=s.createFramebuffer();if(e.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),t.colorAttachments.forEach((a,l)=>{let c=a.texture;c.antialias&&(r.context.supports.msaa?e.msaa=!0:L("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(c,0);let h=r.texture.getGlSource(c),u=h.texture;if(h.target===s.TEXTURE_2D)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,s.TEXTURE_2D,u,0);else if(h.target===s.TEXTURE_2D_ARRAY){if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] TEXTURE_2D_ARRAY requires WebGL2.");s.framebufferTextureLayer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,u,0,0)}else if(h.target===s.TEXTURE_CUBE_MAP)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,s.TEXTURE_CUBE_MAP_POSITIVE_X,u,0);else throw new Error("[RenderTargetSystem] Unsupported texture target for framebuffer attachment.")}),e.msaa){let a=s.createFramebuffer();e.framebuffer=a,s.bindFramebuffer(s.FRAMEBUFFER,a),t.colorAttachments.forEach((l,c)=>{let h=s.createRenderbuffer();e.msaaRenderBuffer[c]=h})}else e.framebuffer=n;this._resizeColor(t,e)}_initDepth(t,e){let r=this._renderer;if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Depth-only render targets require WebGL2.");let s=r.gl,n=s.createFramebuffer();e.resolveTargetFramebuffer=n,e.framebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),s.drawBuffers([s.NONE]),s.readBuffer(s.NONE)}_resizeColor(t,e){let r=t.colorAttachments[0].texture;if(e._attachedMipLevel=0,e._attachedLayer=0,t.colorAttachments.forEach((s,n)=>{n!==0&&s.texture.resize(r.width,r.height,r._resolution)}),e.msaa){let s=this._renderer,n=s.gl,o=e.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),t.colorAttachments.forEach((a,l)=>{let c=a.texture;s.texture.bindSource(c,0);let u=s.texture.getGlSource(c).internalFormat,d=e.msaaRenderBuffer[l];n.bindRenderbuffer(n.RENDERBUFFER,d),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,u,c.pixelWidth,c.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+l,n.RENDERBUFFER,d)})}}_attachDepthStencilTexture(t,e,r){let s=this._renderer,n=s.gl,o=t.depthStencilAttachment.texture,a=s.texture.getGlSource(o),l=a.texture,c=o.format,h;c==="depth24plus-stencil8"||c==="depth32float-stencil8"?h=n.DEPTH_STENCIL_ATTACHMENT:c==="stencil8"?h=n.STENCIL_ATTACHMENT:h=n.DEPTH_ATTACHMENT,a.target===n.TEXTURE_2D?n.framebufferTexture2D(n.FRAMEBUFFER,h,n.TEXTURE_2D,l,e):a.target===n.TEXTURE_2D_ARRAY?n.framebufferTextureLayer(n.FRAMEBUFFER,h,l,e,r):a.target===n.TEXTURE_CUBE_MAP&&n.framebufferTexture2D(n.FRAMEBUFFER,h,n.TEXTURE_CUBE_MAP_POSITIVE_X+r,l,e)}_initStencil(t){if(t.framebuffer===null)return;let e=this._renderer.gl,r=e.createRenderbuffer();t.depthStencilRenderBuffer=r,e.bindRenderbuffer(e.RENDERBUFFER,r),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,r),this._resizeStencil(t)}_resizeStencil(t){let e=this._renderer.gl;e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilRenderBuffer),t.msaa?e.renderbufferStorageMultisample(e.RENDERBUFFER,4,e.DEPTH24_STENCIL8,t.width,t.height):e.renderbufferStorage(e.RENDERBUFFER,this._renderer.context.webGLVersion===2?e.DEPTH24_STENCIL8:e.DEPTH_STENCIL,t.width,t.height)}prerender(t){if(t.colorAttachments.length===0)return;let e=t.colorAttachments[0].texture.resource;this._renderer.context.multiView&&wt.test(e)&&this._renderer.context.ensureCanvasSize(e)}postrender(t){if(!this._renderer.context.multiView||t.colorAttachments.length===0)return;let e=t.colorAttachments[0].texture;if(wt.test(e.resource)){let r=this._renderer.context.canvas,s=e;s.context2D.drawImage(r,0,s.pixelHeight-r.height)}}_setDrawBuffers(t,e){let r=t.colorAttachments.length,s=this._drawBuffersCache[r];if(this._renderer.context.webGLVersion===1){let n=this._renderer.context.extensions.drawBuffers;n?n.drawBuffersWEBGL(s):L("[RenderTexture] This WebGL1 context does not support rendering to multiple targets")}else e.drawBuffers(s)}resetState(){this._boundFramebuffer=void 0,this._viewPortCache=new J,this._clearColorCache=[0,0,0,0]}bindFramebuffer(t){this._boundFramebuffer!==t&&(this._boundFramebuffer=t,this._renderer.gl.bindFramebuffer(this._renderer.gl.FRAMEBUFFER,t))}}});var Wn,Oy=p(()=>{P();Ha();Ly();Wn=class extends Sr{constructor(t){super(t),this.adaptor=new Qa,this.adaptor.init(t,this)}resetState(){this.adaptor.resetState()}};Wn.extension={type:[y.WebGLSystem],name:"renderTarget"}});var qi,Eu=p(()=>{Ht();Ft();qi=class extends ut{constructor(t,e){super(),this._resourceType="textureView",this._resourceId=$("resource"),this._touched=0,this.source=t,this.viewDescriptor=e,this._onChange=this._onChange.bind(this),this._onDestroy=this._onDestroy.bind(this),this.source.on("change",this._onChange),this.source.on("destroy",this._onDestroy)}_onChange(){this.emit("change",this)}_onDestroy(){this.destroy()}get destroyed(){return this.source.destroyed}destroy(){this.source&&(this.source.off("change",this._onChange),this.source.off("destroy",this._onDestroy)),this.emit("destroy",this),this.removeAllListeners()}}});function Ny(i,t){let e=[],r=[`
|
|
786
|
+
`}var Uy=p(()=>{Za()});function Dy(i){return za(i,uu,Fy)}var Ly=p(()=>{hu();du();Uy()});var Jr,Cu=p(()=>{P();Oa();Za();Ly();Jr=class extends br{constructor(){super({createUboElements:Gy,generateUboSync:Dy})}};Jr.extension={type:[y.WebGLSystem],name:"ubo"}});var Qa,Oy=p(()=>{"use strict";Qa=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this._attachedMipLevel=0,this._attachedLayer=0,this.msaaRenderBuffer=[]}}});var Ja,Ny=p(()=>{Yt();ht();fr();Bi();Oy();Ja=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new J,this._boundFramebuffer=void 0}init(t,e){this._renderer=t,this._renderTargetSystem=e,t.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new J,this._boundFramebuffer=void 0;let t=this._renderer.gl;this._drawBuffersCache=[];for(let e=1;e<=16;e++)this._drawBuffersCache[e]=Array.from({length:e},(r,s)=>t.COLOR_ATTACHMENT0+s)}copyToTexture(t,e,r,s,n){let o=this._renderTargetSystem,a=this._renderer,l=o.getGpuRenderTarget(t),c=a.gl;return this.finishRenderPass(t),c.bindFramebuffer(c.FRAMEBUFFER,l.resolveTargetFramebuffer),this._boundFramebuffer=l.resolveTargetFramebuffer,a.texture.bind(e,0),c.copyTexSubImage2D(c.TEXTURE_2D,0,n.x,n.y,r.x,r.y,s.width,s.height),e}copyDepthTexture(t,e,r,s,n){let o=this._renderTargetSystem,a=this._renderer.gl;this.finishRenderPass(t);let l=o.getRenderTarget(e),c=o.getGpuRenderTarget(t),h=o.getGpuRenderTarget(l);a.bindFramebuffer(a.READ_FRAMEBUFFER,c.framebuffer),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,h.framebuffer),this._boundFramebuffer=void 0,a.blitFramebuffer(r.x,r.y,r.x+s.width,r.y+s.height,n.x,n.y,n.x+s.width,n.y+s.height,a.DEPTH_BUFFER_BIT,a.NEAREST)}startRenderPass(t,e=!0,r,s,n=0,o=0){let l=this._renderTargetSystem.getGpuRenderTarget(t);if(o!==0&&this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to array layers requires WebGL2.");if(n>0){if(l.msaa)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to mip levels requires WebGL2.")}t.colorAttachments.forEach(d=>{this._renderer.texture.unbind(d.texture)});let c=this._renderer.gl;this.bindFramebuffer(l.framebuffer),!t.isRoot&&t.colorAttachments.length>0&&(l._attachedMipLevel!==n||l._attachedLayer!==o)&&(t.colorAttachments.forEach((d,f)=>{let m=d.texture,g=this._renderer.texture.getGlSource(m);if(g.target===c.TEXTURE_2D){if(o!==0)throw new Error("[RenderTargetSystem] layer must be 0 when rendering to 2D textures in WebGL.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,c.TEXTURE_2D,g.texture,n)}else if(g.target===c.TEXTURE_2D_ARRAY){if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to 2D array textures requires WebGL2.");c.framebufferTextureLayer(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,g.texture,n,o)}else if(g.target===c.TEXTURE_CUBE_MAP){if(o<0||o>5)throw new Error("[RenderTargetSystem] Cube map layer must be between 0 and 5.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+f,c.TEXTURE_CUBE_MAP_POSITIVE_X+o,g.texture,n)}else throw new Error("[RenderTargetSystem] Unsupported texture target for render-to-layer in WebGL.")}),l._attachedMipLevel=n,l._attachedLayer=o),l.framebuffer&&(t.depthStencilAttachment?this._attachDepthStencilTexture(t,n,o):!l.depthStencilRenderBuffer&&(t.stencil||t.depth)&&this._initStencil(l)),t.colorAttachments.length>1&&this._setDrawBuffers(t,c);let h=s.y;t.isRoot&&(h=t.pixelHeight-s.height-s.y);let u=this._viewPortCache;(u.x!==s.x||u.y!==h||u.width!==s.width||u.height!==s.height)&&(u.x=s.x,u.y=h,u.width=s.width,u.height=s.height,c.viewport(s.x,h,s.width,s.height)),this.clear(t,e,r)}finishRenderPass(t){let r=this._renderTargetSystem.getGpuRenderTarget(t);if(!r.msaa||t.colorAttachments.length===0)return;let s=this._renderer.gl;s.bindFramebuffer(s.FRAMEBUFFER,r.resolveTargetFramebuffer),s.bindFramebuffer(s.READ_FRAMEBUFFER,r.framebuffer),s.blitFramebuffer(0,0,r.width,r.height,0,0,r.width,r.height,s.COLOR_BUFFER_BIT,s.NEAREST),s.bindFramebuffer(s.FRAMEBUFFER,r.framebuffer),this._boundFramebuffer=r.framebuffer}initGpuRenderTarget(t){let r=this._renderer.gl,s=new Qa;s._attachedMipLevel=0,s._attachedLayer=0;let n=t.colorTexture;return n instanceof Tt?(this._renderer.context.ensureCanvasSize(n.resource),s.framebuffer=null,s):(s.width=t.pixelWidth,s.height=t.pixelHeight,t.colorAttachments.length===0?this._initDepth(t,s):this._initColor(t,s),t.depthStencilAttachment&&this._attachDepthStencilTexture(t,0,0),r.bindFramebuffer(r.FRAMEBUFFER,null),this._boundFramebuffer=null,s)}destroyGpuRenderTarget(t){let e=this._renderer.gl;t.framebuffer&&(e.deleteFramebuffer(t.framebuffer),t.framebuffer=null),t.resolveTargetFramebuffer&&(e.deleteFramebuffer(t.resolveTargetFramebuffer),t.resolveTargetFramebuffer=null),t.depthStencilRenderBuffer&&(e.deleteRenderbuffer(t.depthStencilRenderBuffer),t.depthStencilRenderBuffer=null),t.msaaRenderBuffer.forEach(r=>{e.deleteRenderbuffer(r)}),t.msaaRenderBuffer=null}clear(t,e,r,s,n=0,o=0){if(!e)return;if(o!==0)throw new Error("[RenderTargetSystem] Clearing array layers is not supported in WebGL renderer.");let a=this._renderTargetSystem;if(typeof e=="boolean"&&(e=e?Et.ALL:Et.NONE),t.colorAttachments.length===0&&(e&=~Et.COLOR,!e))return;let l=this._renderer.gl,c=!!(e&Et.DEPTH)&&!this._renderer.state.depthMaskEnabled;if(e&Et.COLOR){r??(r=a.defaultClearColor);let h=this._clearColorCache,u=r;(h[0]!==u[0]||h[1]!==u[1]||h[2]!==u[2]||h[3]!==u[3])&&(h[0]=u[0],h[1]=u[1],h[2]=u[2],h[3]=u[3],l.clearColor(u[0],u[1],u[2],u[3]))}c&&l.depthMask(!0),l.clear(e),c&&l.depthMask(!1)}resizeGpuRenderTarget(t){if(t.isRoot)return;let e=this._renderTargetSystem.getGpuRenderTarget(t);e.width=t.pixelWidth,e.height=t.pixelHeight,t.colorAttachments.length>0&&this._resizeColor(t,e),e.depthStencilRenderBuffer&&this._resizeStencil(e),this._boundFramebuffer=void 0}_initColor(t,e){let r=this._renderer,s=r.gl,n=s.createFramebuffer();if(e.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),t.colorAttachments.forEach((a,l)=>{let c=a.texture;c.antialias&&(r.context.supports.msaa?e.msaa=!0:L("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(c,0);let h=r.texture.getGlSource(c),u=h.texture;if(h.target===s.TEXTURE_2D)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,s.TEXTURE_2D,u,0);else if(h.target===s.TEXTURE_2D_ARRAY){if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] TEXTURE_2D_ARRAY requires WebGL2.");s.framebufferTextureLayer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,u,0,0)}else if(h.target===s.TEXTURE_CUBE_MAP)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+l,s.TEXTURE_CUBE_MAP_POSITIVE_X,u,0);else throw new Error("[RenderTargetSystem] Unsupported texture target for framebuffer attachment.")}),e.msaa){let a=s.createFramebuffer();e.framebuffer=a,s.bindFramebuffer(s.FRAMEBUFFER,a),t.colorAttachments.forEach((l,c)=>{let h=s.createRenderbuffer();e.msaaRenderBuffer[c]=h})}else e.framebuffer=n;this._resizeColor(t,e)}_initDepth(t,e){let r=this._renderer;if(r.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Depth-only render targets require WebGL2.");let s=r.gl,n=s.createFramebuffer();e.resolveTargetFramebuffer=n,e.framebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),s.drawBuffers([s.NONE]),s.readBuffer(s.NONE)}_resizeColor(t,e){let r=t.colorAttachments[0].texture;if(e._attachedMipLevel=0,e._attachedLayer=0,t.colorAttachments.forEach((s,n)=>{n!==0&&s.texture.resize(r.width,r.height,r._resolution)}),e.msaa){let s=this._renderer,n=s.gl,o=e.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),t.colorAttachments.forEach((a,l)=>{let c=a.texture;s.texture.bindSource(c,0);let u=s.texture.getGlSource(c).internalFormat,d=e.msaaRenderBuffer[l];n.bindRenderbuffer(n.RENDERBUFFER,d),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,u,c.pixelWidth,c.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+l,n.RENDERBUFFER,d)})}}_attachDepthStencilTexture(t,e,r){let s=this._renderer,n=s.gl,o=t.depthStencilAttachment.texture,a=s.texture.getGlSource(o),l=a.texture,c=o.format,h;c==="depth24plus-stencil8"||c==="depth32float-stencil8"?h=n.DEPTH_STENCIL_ATTACHMENT:c==="stencil8"?h=n.STENCIL_ATTACHMENT:h=n.DEPTH_ATTACHMENT,a.target===n.TEXTURE_2D?n.framebufferTexture2D(n.FRAMEBUFFER,h,n.TEXTURE_2D,l,e):a.target===n.TEXTURE_2D_ARRAY?n.framebufferTextureLayer(n.FRAMEBUFFER,h,l,e,r):a.target===n.TEXTURE_CUBE_MAP&&n.framebufferTexture2D(n.FRAMEBUFFER,h,n.TEXTURE_CUBE_MAP_POSITIVE_X+r,l,e)}_initStencil(t){if(t.framebuffer===null)return;let e=this._renderer.gl,r=e.createRenderbuffer();t.depthStencilRenderBuffer=r,e.bindRenderbuffer(e.RENDERBUFFER,r),e.framebufferRenderbuffer(e.FRAMEBUFFER,e.DEPTH_STENCIL_ATTACHMENT,e.RENDERBUFFER,r),this._resizeStencil(t)}_resizeStencil(t){let e=this._renderer.gl;e.bindRenderbuffer(e.RENDERBUFFER,t.depthStencilRenderBuffer),t.msaa?e.renderbufferStorageMultisample(e.RENDERBUFFER,4,e.DEPTH24_STENCIL8,t.width,t.height):e.renderbufferStorage(e.RENDERBUFFER,this._renderer.context.webGLVersion===2?e.DEPTH24_STENCIL8:e.DEPTH_STENCIL,t.width,t.height)}prerender(t){if(t.colorAttachments.length===0)return;let e=t.colorAttachments[0].texture.resource;this._renderer.context.multiView&&Tt.test(e)&&this._renderer.context.ensureCanvasSize(e)}postrender(t){if(!this._renderer.context.multiView||t.colorAttachments.length===0)return;let e=t.colorAttachments[0].texture;if(Tt.test(e.resource)){let r=this._renderer.context.canvas,s=e;s.context2D.drawImage(r,0,s.pixelHeight-r.height)}}_setDrawBuffers(t,e){let r=t.colorAttachments.length,s=this._drawBuffersCache[r];if(this._renderer.context.webGLVersion===1){let n=this._renderer.context.extensions.drawBuffers;n?n.drawBuffersWEBGL(s):L("[RenderTexture] This WebGL1 context does not support rendering to multiple targets")}else e.drawBuffers(s)}resetState(){this._boundFramebuffer=void 0,this._viewPortCache=new J,this._clearColorCache=[0,0,0,0]}bindFramebuffer(t){this._boundFramebuffer!==t&&(this._boundFramebuffer=t,this._renderer.gl.bindFramebuffer(this._renderer.gl.FRAMEBUFFER,t))}}});var Vn,zy=p(()=>{P();Wa();Ny();Vn=class extends Sr{constructor(t){super(t),this.adaptor=new Ja,this.adaptor.init(t,this)}resetState(){this.adaptor.resetState()}};Vn.extension={type:[y.WebGLSystem],name:"renderTarget"}});var Ki,Eu=p(()=>{Ht();Ft();Ki=class extends ut{constructor(t,e){super(),this._resourceType="textureView",this._resourceId=$("resource"),this._touched=0,this.source=t,this.viewDescriptor=e,this._onChange=this._onChange.bind(this),this._onDestroy=this._onDestroy.bind(this),this.source.on("change",this._onChange),this.source.on("destroy",this._onDestroy)}_onChange(){this.emit("change",this)}_onDestroy(){this.destroy()}get destroyed(){return this.source.destroyed}destroy(){this.source&&(this.source.off("change",this._onChange),this.source.off("destroy",this._onDestroy)),this.emit("destroy",this),this.removeAllListeners()}}});function Hy(i,t){let e=[],r=[`
|
|
787
787
|
var g = s.groups;
|
|
788
788
|
var sS = r.shader;
|
|
789
789
|
var p = s.glProgram;
|
|
@@ -805,15 +805,15 @@ fn mainFragment(
|
|
|
805
805
|
'${d}',
|
|
806
806
|
${i.glProgram._uniformBlockData[d].index}
|
|
807
807
|
);
|
|
808
|
-
`)}else if(u instanceof st||u instanceof
|
|
808
|
+
`)}else if(u instanceof st||u instanceof Ki){let d=i._uniformBindMap[l][h],f=o.uniformData[d];f&&(s||(s=!0,r.push(`
|
|
809
809
|
var tS = r.texture;
|
|
810
810
|
`)),t._gl.uniform1i(f.location,n),e.push(`
|
|
811
811
|
tS.bind(resources[${h}], ${n});
|
|
812
812
|
`),n++)}}}let a=[...r,...e].join(`
|
|
813
|
-
`);return new Function("r","s","sD",a)}var
|
|
813
|
+
`);return new Function("r","s","sD",a)}var Wy=p(()=>{Cn();me();$t();Eu()});var tl,Vy=p(()=>{"use strict";tl=class{constructor(t,e){this.program=t,this.uniformData=e,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}});function Pu(i,t,e){let r=i.createShader(t);return i.shaderSource(r,e),i.compileShader(r),r}var jy=p(()=>{"use strict"});function Mu(i){let t=new Array(i);for(let e=0;e<t.length;e++)t[e]=!1;return t}function el(i,t){switch(i){case"float":return 0;case"vec2":return new Float32Array(2*t);case"vec3":return new Float32Array(3*t);case"vec4":return new Float32Array(4*t);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*t);case"ivec3":return new Int32Array(3*t);case"ivec4":return new Int32Array(4*t);case"uvec2":return new Uint32Array(2*t);case"uvec3":return new Uint32Array(3*t);case"uvec4":return new Uint32Array(4*t);case"bool":return!1;case"bvec2":return Mu(2*t);case"bvec3":return Mu(3*t);case"bvec4":return Mu(4*t);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var Au=p(()=>{"use strict"});function Ru(i,t){if(!rl){let e=Object.keys(Xy);rl={};for(let r=0;r<e.length;++r){let s=e[r];rl[i[s]]=Xy[s]}}return rl[t]}function Yy(i,t){let e=Ru(i,t);return YT[e]||"float32"}var rl,Xy,YT,ku=p(()=>{"use strict";rl=null,Xy={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_2D_SHADOW:"sampler2DShadow",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_CUBE_SHADOW:"samplerCubeShadow",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray",SAMPLER_2D_ARRAY_SHADOW:"sampler2DArrayShadow"},YT={float:"float32",vec2:"float32x2",vec3:"float32x3",vec4:"float32x4",int:"sint32",ivec2:"sint32x2",ivec3:"sint32x3",ivec4:"sint32x4",uint:"uint32",uvec2:"uint32x2",uvec3:"uint32x3",uvec4:"uint32x4",bool:"uint32",bvec2:"uint32x2",bvec3:"uint32x3",bvec4:"uint32x4"}});function $y(i,t,e=!1){let r={},s=t.getProgramParameter(i,t.ACTIVE_ATTRIBUTES);for(let o=0;o<s;o++){let a=t.getActiveAttrib(i,o);if(a.name.startsWith("gl_"))continue;let l=Yy(t,a.type);r[a.name]={location:0,format:l,stride:Jt(l).stride,offset:0,instance:!1,start:0}}let n=Object.keys(r);if(e){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)r[n[o]].location=o,t.bindAttribLocation(i,o,n[o]);t.linkProgram(i)}else for(let o=0;o<n.length;o++)r[n[o]].location=t.getAttribLocation(i,n[o]);return r}var qy=p(()=>{pr();ku()});function Ky(i,t){if(!t.ACTIVE_UNIFORM_BLOCKS)return{};let e={},r=t.getProgramParameter(i,t.ACTIVE_UNIFORM_BLOCKS);for(let s=0;s<r;s++){let n=t.getActiveUniformBlockName(i,s),o=t.getUniformBlockIndex(i,n),a=t.getActiveUniformBlockParameter(i,s,t.UNIFORM_BLOCK_DATA_SIZE);e[n]={name:n,index:o,size:a}}return e}var Zy=p(()=>{"use strict"});function Qy(i,t){let e={},r=t.getProgramParameter(i,t.ACTIVE_UNIFORMS);for(let s=0;s<r;s++){let n=t.getActiveUniform(i,s),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),l=Ru(t,n.type);e[o]={name:o,index:s,type:l,size:n.size,isArray:a,value:el(l,n.size)}}return e}var Jy=p(()=>{Au();ku()});function tb(i,t){let e=i.getShaderSource(t);if(e===null){console.error("PixiJS Error: Could not retrieve shader source (WebGL context may be lost).");return}let r=e.split(`
|
|
814
814
|
`).map((h,u)=>`${u}: ${h}`),s=i.getShaderInfoLog(t)??"",n=s.split(`
|
|
815
815
|
`),o={},a=n.map(h=>parseFloat(h.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(h=>h&&!o[h]?(o[h]=!0,!0):!1),l=[""];a.forEach(h=>{r[h-1]=`%c${r[h-1]}%c`,l.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let c=r.join(`
|
|
816
|
-
`);l[0]=c,console.error(s),console.groupCollapsed("click to view full shader code"),console.warn(...l),console.groupEnd()}function
|
|
816
|
+
`);l[0]=c,console.error(s),console.groupCollapsed("click to view full shader code"),console.warn(...l),console.groupEnd()}function eb(i,t,e,r){i.getProgramParameter(t,i.LINK_STATUS)||(i.getShaderParameter(e,i.COMPILE_STATUS)||tb(i,e),i.getShaderParameter(r,i.COMPILE_STATUS)||tb(i,r),console.error("PixiJS Error: Could not initialize shader."),i.getProgramInfoLog(t)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",i.getProgramInfoLog(t)))}var rb=p(()=>{"use strict"});function ib(i,t){let e=Pu(i,i.VERTEX_SHADER,t.vertex),r=Pu(i,i.FRAGMENT_SHADER,t.fragment),s=i.createProgram();i.attachShader(s,e),i.attachShader(s,r);let n=t.transformFeedbackVaryings;n&&(typeof i.transformFeedbackVaryings!="function"?L("TransformFeedback is not supported but TransformFeedbackVaryings are given."):i.transformFeedbackVaryings(s,n.names,n.bufferMode==="separate"?i.SEPARATE_ATTRIBS:i.INTERLEAVED_ATTRIBS)),i.linkProgram(s),i.getProgramParameter(s,i.LINK_STATUS)||eb(i,s,e,r),t._attributeData=$y(s,i,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(t.vertex)),t._uniformData=Qy(s,i),t._uniformBlockData=Ky(s,i),i.deleteShader(e),i.deleteShader(r);let o={};for(let l in t._uniformData){let c=t._uniformData[l];o[l]={location:i.getUniformLocation(s,l),value:el(c.type,c.size)}}return new tl(s,o)}var sb=p(()=>{ht();Vy();jy();Au();qy();Zy();Jy();rb()});var il,ti,Bu=p(()=>{P();Wy();sb();il={textureCount:0,blockIndex:0},ti=class{constructor(t){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=t}contextChange(t){this._gl=t,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(t,e){if(this._setProgram(t.glProgram),e)return;il.textureCount=0,il.blockIndex=0;let r=this._shaderSyncFunctions[t.glProgram._key];r||(r=this._shaderSyncFunctions[t.glProgram._key]=this._generateShaderSync(t,this)),this._renderer.buffer.nextBindBase(!!t.glProgram.transformFeedbackVaryings),r(this._renderer,t,il)}updateUniformGroup(t){this._renderer.uniformGroup.updateUniformGroup(t,this._activeProgram,il)}bindUniformBlock(t,e,r=0){let s=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=t._bufferResource;o||this._renderer.ubo.updateUniformGroup(t);let a=t.buffer,l=s.updateBuffer(a),c=s.freeLocationForBufferBase(l);if(o){let{offset:u,size:d}=t;u===0&&d===a.data.byteLength?s.bindBufferBase(l,c):s.bindBufferRange(l,c,u)}else s.getLastBindBaseLocation(l)!==c&&s.bindBufferBase(l,c);let h=this._activeProgram._uniformBlockData[e].index;n.uniformBlockBindings[r]!==c&&(n.uniformBlockBindings[r]=c,this._renderer.gl.uniformBlockBinding(n.program,h,c))}_setProgram(t){if(this._activeProgram===t)return;this._activeProgram=t;let e=this._getProgramData(t);this._gl.useProgram(e.program)}_getProgramData(t){return this._programDataHash[t._key]||this._createProgramData(t)}_createProgramData(t){let e=t._key;return this._programDataHash[e]=ib(this._gl,t),this._programDataHash[e]}destroy(){for(let t of Object.keys(this._programDataHash))this._programDataHash[t].destroy();this._programDataHash=null,this._shaderSyncFunctions=null,this._activeProgram=null,this._renderer=null,this._gl=null}_generateShaderSync(t,e){return Hy(t,e)}resetState(){this._activeProgram=null}};ti.extension={type:[y.WebGLSystem],name:"shader"}});var nb,ob,ab=p(()=>{"use strict";nb={f32:`if (cv !== v) {
|
|
817
817
|
cu.value = v;
|
|
818
818
|
gl.uniform1f(location, v);
|
|
819
819
|
}`,"vec2<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
|
|
@@ -885,7 +885,7 @@ fn mainFragment(
|
|
|
885
885
|
cv[2] = v[2];
|
|
886
886
|
cv[3] = v[3];
|
|
887
887
|
gl.uniform4i(location, v[0], v[1], v[2], v[3]);
|
|
888
|
-
}`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},
|
|
888
|
+
}`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},ob={f32:"gl.uniform1fv(location, v);","vec2<f32>":"gl.uniform2fv(location, v);","vec3<f32>":"gl.uniform3fv(location, v);","vec4<f32>":"gl.uniform4fv(location, v);","mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);",i32:"gl.uniform1iv(location, v);","vec2<i32>":"gl.uniform2iv(location, v);","vec3<i32>":"gl.uniform3iv(location, v);","vec4<i32>":"gl.uniform4iv(location, v);",u32:"gl.uniform1iv(location, v);","vec2<u32>":"gl.uniform2iv(location, v);","vec3<u32>":"gl.uniform3iv(location, v);","vec4<u32>":"gl.uniform4iv(location, v);",bool:"gl.uniform1iv(location, v);","vec2<bool>":"gl.uniform2iv(location, v);","vec3<bool>":"gl.uniform3iv(location, v);","vec4<bool>":"gl.uniform4iv(location, v);"}});function lb(i,t){let e=[`
|
|
889
889
|
var v = null;
|
|
890
890
|
var cv = null;
|
|
891
891
|
var cu = null;
|
|
@@ -898,17 +898,17 @@ fn mainFragment(
|
|
|
898
898
|
renderer.shader.updateUniformGroup(uv.${r});
|
|
899
899
|
`):i.uniforms[r]instanceof He&&e.push(`
|
|
900
900
|
renderer.shader.bindBufferResource(uv.${r}, "${r}");
|
|
901
|
-
`);continue}let s=i.uniformStructures[r],n=!1;for(let o=0;o<
|
|
901
|
+
`);continue}let s=i.uniformStructures[r],n=!1;for(let o=0;o<de.length;o++){let a=de[o];if(s.type===a.type&&a.test(s)){e.push(`name = "${r}";`,de[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?nb:ob)[s.type].replace("location",`ud["${r}"].location`);e.push(`
|
|
902
902
|
cu = ud["${r}"];
|
|
903
903
|
cv = cu.value;
|
|
904
904
|
v = uv["${r}"];
|
|
905
905
|
${a};`)}}return new Function("ud","uv","renderer","syncData",e.join(`
|
|
906
|
-
`))}var ab=p(()=>{wn();me();Tn();nb()});var ei,Iu=p(()=>{P();ab();ei=class{constructor(t){this._cache={},this._uniformGroupSyncHash={},this._renderer=t,this.gl=null,this._cache={}}contextChange(t){this.gl=t}updateUniformGroup(t,e,r){let s=this._renderer.shader._getProgramData(e);(!t.isStatic||t._dirtyId!==s.uniformDirtyGroups[t.uid])&&(s.uniformDirtyGroups[t.uid]=t._dirtyId,this._getUniformSyncFunction(t,e)(s.uniformData,t.uniforms,this._renderer,r))}_getUniformSyncFunction(t,e){return this._uniformGroupSyncHash[t._signature]?.[e._key]||this._createUniformSyncFunction(t,e)}_createUniformSyncFunction(t,e){let r=this._uniformGroupSyncHash[t._signature]||(this._uniformGroupSyncHash[t._signature]={}),s=this._getSignature(t,e._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(t,e._uniformData)),r[e._key]=this._cache[s],r[e._key]}_generateUniformsSync(t,e){return ob(t,e)}_getSignature(t,e,r){let s=t.uniforms,n=[`${r}-`];for(let o in s)n.push(o),e[o]&&n.push(e[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};ei.extension={type:[y.WebGLSystem],name:"uniformGroup"}});function lb(i){let t={};if(t.normal=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t.add=[i.ONE,i.ONE],t.multiply=[i.DST_COLOR,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.screen=[i.ONE,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.none=[0,0],t["normal-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t["add-npm"]=[i.SRC_ALPHA,i.ONE,i.ONE,i.ONE],t["screen-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.erase=[i.ZERO,i.ONE_MINUS_SRC_ALPHA],!(i instanceof W.get().getWebGLRenderingContext()))t.min=[i.ONE,i.ONE,i.ONE,i.ONE,i.MIN,i.MIN],t.max=[i.ONE,i.ONE,i.ONE,i.ONE,i.MAX,i.MAX];else{let r=i.getExtension("EXT_blend_minmax");r&&(t.min=[i.ONE,i.ONE,i.ONE,i.ONE,r.MIN_EXT,r.MIN_EXT],t.max=[i.ONE,i.ONE,i.ONE,i.ONE,r.MAX_EXT,r.MAX_EXT])}return t}var cb=p(()=>{xt()});var jT,XT,YT,$T,qT,hb,ub,db,fb=p(()=>{P();Be();cb();({BLEND:jT,OFFSET:XT,CULLING:YT,DEPTH_TEST:$T,WINDING:qT,DEPTH_MASK:hb}=lh),ub=class Gu{constructor(t){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[jT]=this.setBlend,this.map[XT]=this.setOffset,this.map[YT]=this.setCullFace,this.map[$T]=this.setDepthTest,this.map[qT]=this.setFrontFace,this.map[hb]=this.setDepthMask,this.checks=[],this.defaultState=Ot.for2d(),t.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(t){this._invertFrontFace=!t.isRoot!=!!t.flipY,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(t){this.gl=t,this.blendModesMap=lb(t),this.resetState()}set(t){if(t||(t=this.defaultState),this.stateId!==t.data){let e=this.stateId^t.data,r=0;for(;e;)e&1&&this.map[r].call(this,!!(t.data&1<<r)),e>>=1,r++;this.stateId=t.data}for(let e=0;e<this.checks.length;e++)this.checks[e](this,t)}forceState(t){t||(t=this.defaultState);for(let e=0;e<this.map.length;e++)this.map[e].call(this,!!(t.data&1<<e));for(let e=0;e<this.checks.length;e++)this.checks[e](this,t);this.stateId=t.data}setBlend(t){this._updateCheck(Gu._checkBlendMode,t),this.gl[t?"enable":"disable"](this.gl.BLEND)}setOffset(t){this._updateCheck(Gu._checkPolygonOffset,t),this.gl[t?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(t){this.gl[t?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(t){this.gl.depthMask(t)}get depthMaskEnabled(){return!!(this.stateId&1<<hb)}setCullFace(t){this._cullFace=t,this.gl[t?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(t){this._frontFace=t,this._frontFaceDirty=!1;let e=this._invertFrontFace?!t:t;this._glFrontFace!==e&&(this._glFrontFace=e,this.gl.frontFace(this.gl[e?"CW":"CCW"]))}setBlendMode(t){if(this.blendModesMap[t]||(t="normal"),t===this.blendMode)return;this.blendMode=t;let e=this.blendModesMap[t],r=this.gl;e.length===2?r.blendFunc(e[0],e[1]):r.blendFuncSeparate(e[0],e[1],e[2],e[3]),e.length===6?(this._blendEq=!0,r.blendEquationSeparate(e[4],e[5])):this._blendEq&&(this._blendEq=!1,r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD))}setPolygonOffset(t,e){this.gl.polygonOffset(t,e)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(t,e){let r=this.checks.indexOf(t);e&&r===-1?this.checks.push(t):!e&&r!==-1&&this.checks.splice(r,1)}static _checkBlendMode(t,e){t.setBlendMode(e.blendMode)}static _checkPolygonOffset(t,e){t.setPolygonOffset(1,e.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};ub.extension={type:[y.WebGLSystem],name:"state"};db=ub});var il,pb=p(()=>{qa();il=class{constructor(t){this.target=Un.TEXTURE_2D,this._layerInitMask=0,this.texture=t,this.width=-1,this.height=-1,this.type=at.UNSIGNED_BYTE,this.internalFormat=$a.RGBA,this.format=$a.RGBA,this.samplerType=0}destroy(){}}});var mb,gb=p(()=>{"use strict";mb={id:"buffer",upload(i,t,e,r,s,n=!1){let o=s||t.target;!n&&t.width===i.width&&t.height===i.height?e.texSubImage2D(o,0,0,0,i.width,i.height,t.format,t.type,i.resource):e.texImage2D(o,0,t.internalFormat,i.width,i.height,0,t.format,t.type,i.resource),t.width=i.width,t.height=i.height}}});var KT,xb,_b=p(()=>{"use strict";KT={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},xb={id:"compressed",upload(i,t,e,r,s,n){let o=s??t.target;e.pixelStorei(e.UNPACK_ALIGNMENT,4);let a=i.pixelWidth,l=i.pixelHeight,c=!!KT[i.format];for(let h=0;h<i.resource.length;h++){let u=i.resource[h];c?e.compressedTexImage2D(o,h,t.internalFormat,a,l,0,u):e.texImage2D(o,h,t.internalFormat,a,l,0,t.format,t.type,u),a=Math.max(a>>1,1),l=Math.max(l>>1,1)}}}});function bb(i){return{id:"cube",upload(t,e,r,s){let n=t.faces;for(let o=0;o<yb.length;o++){let a=yb[o],l=n[a];if(!l.resource)continue;(i[l.uploadMethodId]||i.image).upload(l,e,r,s,Un.TEXTURE_CUBE_MAP_POSITIVE_X+o,(e._layerInitMask&1<<o)===0),e._layerInitMask|=1<<o}e.width=t.pixelWidth,e.height=t.pixelHeight}}}var yb,vb=p(()=>{qa();yb=["right","left","top","bottom","front","back"]});function ZT(i,t,e,r,s,n,o,a,l,c){if(!c){l&&i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,null),i.texSubImage2D(t,0,0,0,n,o,e.format,e.type,a);return}if(!l){i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,a)}function QT(i,t,e,r,s,n,o,a,l,c){if(!c){l&&i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,null),i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}if(!l){i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}i.texImage2D(t,0,e.internalFormat,e.format,e.type,a)}var sl,Fu=p(()=>{"use strict";sl={id:"image",upload(i,t,e,r,s,n=!1){let o=s||t.target,a=i.pixelWidth,l=i.pixelHeight,c=i.resourceWidth,h=i.resourceHeight,u=r===2,d=n||t.width!==a||t.height!==l,f=c>=a&&h>=l,m=i.resource;(u?ZT:QT)(e,o,t,a,l,c,h,m,d,f),t.width=a,t.height=l}}});function Sb(){let{userAgent:i}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var Tb=p(()=>{xt()});var JT,wb,Cb=p(()=>{Tb();Fu();JT=Sb(),wb={id:"video",upload(i,t,e,r,s,n=JT){if(!i.isValid){let o=s??t.target;e.texImage2D(o,0,t.internalFormat,1,1,0,t.format,t.type,null);return}sl.upload(i,t,e,r,s,n)}}});var Uu,Eb,nl,Pb,Mb=p(()=>{"use strict";Uu={linear:9729,nearest:9728},Eb={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},nl={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},Pb={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function Du(i,t,e,r,s,n,o,a){let l=n;if(!a||i.addressModeU!=="repeat"||i.addressModeV!=="repeat"||i.addressModeW!=="repeat"){let c=nl[o?"clamp-to-edge":i.addressModeU],h=nl[o?"clamp-to-edge":i.addressModeV],u=nl[o?"clamp-to-edge":i.addressModeW];t[s](l,t.TEXTURE_WRAP_S,c),t[s](l,t.TEXTURE_WRAP_T,h),t.TEXTURE_WRAP_R&&t[s](l,t.TEXTURE_WRAP_R,u)}if((!a||i.magFilter!=="linear")&&t[s](l,t.TEXTURE_MAG_FILTER,Uu[i.magFilter]),e){if(!a||i.mipmapFilter!=="linear"){let c=Eb[i.minFilter][i.mipmapFilter];t[s](l,t.TEXTURE_MIN_FILTER,c)}}else t[s](l,t.TEXTURE_MIN_FILTER,Uu[i.minFilter]);if(r&&i.maxAnisotropy>1){let c=Math.min(i.maxAnisotropy,t.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT));t[s](l,r.TEXTURE_MAX_ANISOTROPY_EXT,c)}i.compare?(t[s](l,t.TEXTURE_COMPARE_FUNC,Pb[i.compare]),t[s](l,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE)):a||t[s](l,t.TEXTURE_COMPARE_MODE,t.NONE)}var Ab=p(()=>{Mb()});function Rb(i){return{r8unorm:i.RED,r8snorm:i.RED,r8uint:i.RED,r8sint:i.RED,r16uint:i.RED,r16sint:i.RED,r16float:i.RED,rg8unorm:i.RG,rg8snorm:i.RG,rg8uint:i.RG,rg8sint:i.RG,r32uint:i.RED,r32sint:i.RED,r32float:i.RED,rg16uint:i.RG,rg16sint:i.RG,rg16float:i.RG,rgba8unorm:i.RGBA,"rgba8unorm-srgb":i.RGBA,rgba8snorm:i.RGBA,rgba8uint:i.RGBA,rgba8sint:i.RGBA,bgra8unorm:i.RGBA,"bgra8unorm-srgb":i.RGBA,rgb9e5ufloat:i.RGB,rgb10a2unorm:i.RGBA,rg11b10ufloat:i.RGB,rg32uint:i.RG,rg32sint:i.RG,rg32float:i.RG,rgba16uint:i.RGBA,rgba16sint:i.RGBA,rgba16float:i.RGBA,rgba32uint:i.RGBA,rgba32sint:i.RGBA,rgba32float:i.RGBA,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT,depth24plus:i.DEPTH_COMPONENT,"depth24plus-stencil8":i.DEPTH_STENCIL,depth32float:i.DEPTH_COMPONENT,"depth32float-stencil8":i.DEPTH_STENCIL}}var kb=p(()=>{"use strict"});function Bb(i,t){let e={},r=i.RGBA;return i instanceof W.get().getWebGLRenderingContext()?t.srgb&&(e={"rgba8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT}):(e={"rgba8unorm-srgb":i.SRGB8_ALPHA8,"bgra8unorm-srgb":i.SRGB8_ALPHA8},r=i.RGBA8),{r8unorm:i.R8,r8snorm:i.R8_SNORM,r8uint:i.R8UI,r8sint:i.R8I,r16uint:i.R16UI,r16sint:i.R16I,r16float:i.R16F,rg8unorm:i.RG8,rg8snorm:i.RG8_SNORM,rg8uint:i.RG8UI,rg8sint:i.RG8I,r32uint:i.R32UI,r32sint:i.R32I,r32float:i.R32F,rg16uint:i.RG16UI,rg16sint:i.RG16I,rg16float:i.RG16F,rgba8unorm:i.RGBA,...e,rgba8snorm:i.RGBA8_SNORM,rgba8uint:i.RGBA8UI,rgba8sint:i.RGBA8I,bgra8unorm:r,rgb9e5ufloat:i.RGB9_E5,rgb10a2unorm:i.RGB10_A2,rg11b10ufloat:i.R11F_G11F_B10F,rg32uint:i.RG32UI,rg32sint:i.RG32I,rg32float:i.RG32F,rgba16uint:i.RGBA16UI,rgba16sint:i.RGBA16I,rgba16float:i.RGBA16F,rgba32uint:i.RGBA32UI,rgba32sint:i.RGBA32I,rgba32float:i.RGBA32F,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT16,depth24plus:i.DEPTH_COMPONENT24,"depth24plus-stencil8":i.DEPTH24_STENCIL8,depth32float:i.DEPTH_COMPONENT32F,"depth32float-stencil8":i.DEPTH32F_STENCIL8,...t.s3tc?{"bc1-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...t.s3tc_sRGB?{"bc1-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...t.rgtc?{"bc4-r-unorm":t.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":t.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":t.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":t.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...t.bptc?{"bc6h-rgb-float":t.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":t.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":t.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":t.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...t.etc?{"etc2-rgb8unorm":t.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":t.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":t.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":t.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":t.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":t.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":t.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":t.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...t.astc?{"astc-4x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var Ib=p(()=>{xt()});function Gb(i){return{r8unorm:i.UNSIGNED_BYTE,r8snorm:i.BYTE,r8uint:i.UNSIGNED_BYTE,r8sint:i.BYTE,r16uint:i.UNSIGNED_SHORT,r16sint:i.SHORT,r16float:i.HALF_FLOAT,rg8unorm:i.UNSIGNED_BYTE,rg8snorm:i.BYTE,rg8uint:i.UNSIGNED_BYTE,rg8sint:i.BYTE,r32uint:i.UNSIGNED_INT,r32sint:i.INT,r32float:i.FLOAT,rg16uint:i.UNSIGNED_SHORT,rg16sint:i.SHORT,rg16float:i.HALF_FLOAT,rgba8unorm:i.UNSIGNED_BYTE,"rgba8unorm-srgb":i.UNSIGNED_BYTE,rgba8snorm:i.BYTE,rgba8uint:i.UNSIGNED_BYTE,rgba8sint:i.BYTE,bgra8unorm:i.UNSIGNED_BYTE,"bgra8unorm-srgb":i.UNSIGNED_BYTE,rgb9e5ufloat:i.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:i.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:i.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:i.UNSIGNED_INT,rg32sint:i.INT,rg32float:i.FLOAT,rgba16uint:i.UNSIGNED_SHORT,rgba16sint:i.SHORT,rgba16float:i.HALF_FLOAT,rgba32uint:i.UNSIGNED_INT,rgba32sint:i.INT,rgba32float:i.FLOAT,stencil8:i.UNSIGNED_BYTE,depth16unorm:i.UNSIGNED_SHORT,depth24plus:i.UNSIGNED_INT,"depth24plus-stencil8":i.UNSIGNED_INT_24_8,depth32float:i.FLOAT,"depth32float-stencil8":i.FLOAT_32_UNSIGNED_INT_24_8_REV}}var Fb=p(()=>{"use strict"});function Ub(i){return{"2d":i.TEXTURE_2D,cube:i.TEXTURE_CUBE_MAP,"1d":null,"3d":i?.TEXTURE_3D||null,"2d-array":i?.TEXTURE_2D_ARRAY||null,"cube-array":i?.TEXTURE_CUBE_MAP_ARRAY||null}}var Db=p(()=>{"use strict"});var tw,Lu,Ou,Ob=p(()=>{xt();P();Ie();gt();pb();gb();_b();vb();Fu();Cb();Ab();kb();Ib();Fb();Db();tw=4,Lu=class Lb{constructor(t){this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=t,this._managedTextures=new kt({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"glTexture"});let e={image:sl,buffer:mb,video:wb,compressed:xb,...Lb.uploadExtensions};this._uploads={...e,cube:bb(e)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(t){this._gl=t,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=Bb(t,this._renderer.context.extensions),this._mapFormatToType=Gb(t),this._mapFormatToFormat=Rb(t),this._mapViewDimensionToGlTarget=Ub(t)),this._managedTextures.removeAll(!0),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let e=0;e<16;e++)this.bind(U.EMPTY,e)}initSource(t){this.bind(t)}bind(t,e=0){let r=t.source;t?(this.bindSource(r,e),this._useSeparateSamplers&&this._bindSampler(r.style,e)):(this.bindSource(null,e),this._useSeparateSamplers&&this._bindSampler(null,e))}bindSource(t,e=0){let r=this._gl;if(t._gcLastUsed=this._renderer.gc.now,this._boundTextures[e]!==t){this._boundTextures[e]=t,this._activateLocation(e),t||(t=U.EMPTY.source);let s=this.getGlSource(t);r.bindTexture(s.target,s.texture)}}_bindSampler(t,e=0){let r=this._gl;if(!t){this._boundSamplers[e]=null,r.bindSampler(e,null);return}let s=this._getGlSampler(t);this._boundSamplers[e]!==s&&(this._boundSamplers[e]=s,r.bindSampler(e,s))}unbind(t){let e=t.source,r=this._boundTextures,s=this._gl;for(let n=0;n<r.length;n++)if(r[n]===e){this._activateLocation(n);let o=this.getGlSource(e);s.bindTexture(o.target,null),r[n]=null}}_activateLocation(t){this._activeTextureLocation!==t&&(this._activeTextureLocation=t,this._gl.activeTexture(this._gl.TEXTURE0+t))}_initSource(t){let e=this._gl,r=new il(e.createTexture());if(r.type=this._mapFormatToType[t.format],r.internalFormat=this._mapFormatToInternalFormat[t.format],r.format=this._mapFormatToFormat[t.format],r.target=this._mapViewDimensionToGlTarget[t.viewDimension],r.target===null)throw new Error(`Unsupported view dimension: ${t.viewDimension} with this webgl version: ${this._renderer.context.webGLVersion}`);if(t.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||t.isPowerOfTwo)){let n=Math.max(t.width,t.height);t.mipLevelCount=Math.floor(Math.log2(n))+1}return t._gpuData[this._renderer.uid]=r,this._managedTextures.add(t)&&(t.on("update",this.onSourceUpdate,this),t.on("resize",this.onSourceUpdate,this),t.on("styleChange",this.onStyleChange,this),t.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(t),this.updateStyle(t,!1),r}onStyleChange(t){this.updateStyle(t,!1)}updateStyle(t,e){let r=this._gl,s=this.getGlSource(t);r.bindTexture(s.target,s.texture),this._boundTextures[this._activeTextureLocation]=t,Du(t.style,r,t.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",s.target,!this._renderer.context.supports.nonPowOf2wrapping&&!t.isPowerOfTwo,e)}onSourceUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];r&&(e||(this.unbind(t),this._gl.deleteTexture(r.texture)),t.off("update",this.onSourceUpdate,this),t.off("resize",this.onSourceUpdate,this),t.off("styleChange",this.onStyleChange,this),t.off("updateMipmaps",this.onUpdateMipmaps,this))}onSourceUpdate(t){let e=this._gl,r=this.getGlSource(t);e.bindTexture(r.target,r.texture),this._boundTextures[this._activeTextureLocation]=t;let s=t.alphaMode==="premultiply-alpha-on-upload";if(this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[t.uploadMethodId])this._uploads[t.uploadMethodId].upload(t,r,e,this._renderer.context.webGLVersion);else if(r.target===e.TEXTURE_2D)this._initEmptyTexture2D(r,t);else if(r.target===e.TEXTURE_2D_ARRAY)this._initEmptyTexture2DArray(r,t);else if(r.target===e.TEXTURE_CUBE_MAP)this._initEmptyTextureCube(r,t);else throw new Error("[GlTextureSystem] Unsupported texture target for empty allocation.");this._applyMipRange(r,t),t.autoGenerateMipmaps&&t.mipLevelCount>1&&this.onUpdateMipmaps(t,!1)}onUpdateMipmaps(t,e=!0){e&&this.bindSource(t,0);let r=this.getGlSource(t);this._gl.generateMipmap(r.target)}_initEmptyTexture2D(t,e){let r=this._gl;r.texImage2D(r.TEXTURE_2D,0,t.internalFormat,e.pixelWidth,e.pixelHeight,0,t.format,t.type,null);let s=Math.max(e.pixelWidth>>1,1),n=Math.max(e.pixelHeight>>1,1);for(let o=1;o<e.mipLevelCount;o++)r.texImage2D(r.TEXTURE_2D,o,t.internalFormat,s,n,0,t.format,t.type,null),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}_initEmptyTexture2DArray(t,e){if(this._renderer.context.webGLVersion!==2)throw new Error("[GlTextureSystem] TEXTURE_2D_ARRAY requires WebGL2.");let r=this._gl,s=Math.max(e.arrayLayerCount|0,1);r.texImage3D(r.TEXTURE_2D_ARRAY,0,t.internalFormat,e.pixelWidth,e.pixelHeight,s,0,t.format,t.type,null);let n=Math.max(e.pixelWidth>>1,1),o=Math.max(e.pixelHeight>>1,1);for(let a=1;a<e.mipLevelCount;a++)r.texImage3D(r.TEXTURE_2D_ARRAY,a,t.internalFormat,n,o,s,0,t.format,t.type,null),n=Math.max(n>>1,1),o=Math.max(o>>1,1)}_initEmptyTextureCube(t,e){let r=this._gl,s=6;for(let a=0;a<s;a++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+a,0,t.internalFormat,e.pixelWidth,e.pixelHeight,0,t.format,t.type,null);let n=Math.max(e.pixelWidth>>1,1),o=Math.max(e.pixelHeight>>1,1);for(let a=1;a<e.mipLevelCount;a++){for(let l=0;l<s;l++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+l,a,t.internalFormat,n,o,0,t.format,t.type,null);n=Math.max(n>>1,1),o=Math.max(o>>1,1)}}_applyMipRange(t,e){if(this._renderer.context.webGLVersion!==2||e.mipLevelCount<=1)return;let r=this._gl,s=Math.max((e.mipLevelCount|0)-1,0);r.texParameteri(t.target,r.TEXTURE_BASE_LEVEL,0),r.texParameteri(t.target,r.TEXTURE_MAX_LEVEL,s)}_initSampler(t){let e=this._gl,r=this._gl.createSampler();return this._glSamplers[t._resourceId]=r,Du(t,e,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1,!0),this._glSamplers[t._resourceId]}_getGlSampler(t){return this._glSamplers[t._resourceId]||this._initSampler(t)}getGlSource(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]||this._initSource(t)}generateCanvas(t){let{pixels:e,width:r,height:s}=this.getPixels(t),n=W.get().createCanvas();n.width=r,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(r,s);a.data.set(e),o.putImageData(a,0,0)}return n}getPixels(t){let e=t.source.resolution,r=t.frame,s=Math.max(Math.round(r.width*e),1),n=Math.max(Math.round(r.height*e),1),o=new Uint8Array(tw*s*n),a=this._renderer,l=a.renderTarget.getRenderTarget(t),c=a.renderTarget.getGpuRenderTarget(l),h=a.gl;return a.renderTarget.adaptor.bindFramebuffer(c.resolveTargetFramebuffer),h.readPixels(Math.round(r.x*e),Math.round(r.y*e),s,n,h.RGBA,h.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this._managedTextures.destroy(),this._glSamplers=null,this._boundTextures=null,this._boundSamplers=null,this._mapFormatToInternalFormat=null,this._mapFormatToType=null,this._mapFormatToFormat=null,this._uploads=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(U.EMPTY.source),this._boundSamplers=Object.create(null);let t=this._gl;this._premultiplyAlpha=!1,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};Lu.extension={type:[y.WebGLSystem],name:"texture"};Lu.uploadExtensions=Object.create(null);Ou=Lu;z.handleByMap(y.TextureUploaderWebGL,Ou.uploadExtensions)});var Wb={};Vl(Wb,{WebGLRenderer:()=>Nu});var ew,rw,iw,Nb,zb,Hb,Nu,Vb=p(()=>{P();dy();fy();py();Vr();Da();Ne();xy();by();wy();Py();My();Ay();Ry();ky();Cu();Oy();Bu();Iu();fb();Ob();ew=[...Xi,Jr,Ey,yy,Nn,Fn,Ou,Wn,Dn,ei,ti,On,db,zn,Ln],rw=[...Ua],iw=[In,Bn,kn],Nb=[],zb=[],Hb=[];z.handleByNamedList(y.WebGLSystem,Nb);z.handleByNamedList(y.WebGLPipes,zb);z.handleByNamedList(y.WebGLPipesAdaptor,Hb);z.add(...ew,...rw,...iw);Nu=class extends Te{constructor(){let t={name:"webgl",type:Lt.WEBGL,systems:Nb,renderPipes:zb,renderPipeAdaptors:Hb};super(t)}}});function jb(i,t,e,r,s,n,o,a){let l=i-e*s,c=t-r*s,h=i+e*n,u=t+r*n,d,f;o?(d=r,f=-e):(d=-r,f=e);let m=l+d,g=c+f,_=h+d,x=u+f;return a.push(m,g),a.push(_,x),2}function ri(i,t,e,r,s,n,o,a){let l=e-i,c=r-t,h=Math.atan2(l,c),u=Math.atan2(s-i,n-t);a&&h<u?h+=Math.PI*2:!a&&h>u&&(u+=Math.PI*2);let d=h,f=u-h,m=Math.abs(f),g=Math.sqrt(l*l+c*c),_=(15*m*Math.sqrt(g)/Math.PI>>0)+1,x=f/_;if(d+=x,a){o.push(i,t),o.push(e,r);for(let b=1,v=d;b<_;b++,v+=x)o.push(i,t),o.push(i+Math.sin(v)*g,t+Math.cos(v)*g);o.push(i,t),o.push(s,n)}else{o.push(e,r),o.push(i,t);for(let b=1,v=d;b<_;b++,v+=x)o.push(i+Math.sin(v)*g,t+Math.cos(v)*g),o.push(i,t);o.push(s,n),o.push(i,t)}return _*2}function Ki(i,t,e,r,s,n){let o=1e-4;if(i.length===0)return;let a=t,l=a.alignment;if(t.alignment!==.5){let G=qo(i);e&&(G*=-1),l=(l-.5)*G+.5}let c=new nt(i[0],i[1]),h=new nt(i[i.length-2],i[i.length-1]),u=r,d=Math.abs(c.x-h.x)<o&&Math.abs(c.y-h.y)<o;if(u){i=i.slice(),d&&(i.pop(),i.pop(),h.set(i[i.length-2],i[i.length-1]));let G=(c.x+h.x)*.5,Y=(h.y+c.y)*.5;i.unshift(G,Y),i.push(G,Y)}let f=s,m=i.length/2,g=i.length,_=f.length/2,x=a.width/2,b=x*x,v=a.miterLimit*a.miterLimit,S=i[0],T=i[1],w=i[2],E=i[3],B=0,R=0,M=-(T-E),C=S-w,A=0,D=0,H=Math.sqrt(M*M+C*C);M/=H,C/=H,M*=x,C*=x;let K=l,I=(1-K)*2,F=K*2;u||(a.cap==="round"?g+=ri(S-M*(I-F)*.5,T-C*(I-F)*.5,S-M*I,T-C*I,S+M*F,T+C*F,f,!0)+2:a.cap==="square"&&(g+=jb(S,T,M,C,I,F,!0,f))),f.push(S-M*I,T-C*I),f.push(S+M*F,T+C*F);for(let G=1;G<m-1;++G){S=i[(G-1)*2],T=i[(G-1)*2+1],w=i[G*2],E=i[G*2+1],B=i[(G+1)*2],R=i[(G+1)*2+1],M=-(T-E),C=S-w,H=Math.sqrt(M*M+C*C),M/=H,C/=H,M*=x,C*=x,A=-(E-R),D=w-B,H=Math.sqrt(A*A+D*D),A/=H,D/=H,A*=x,D*=x;let Y=w-S,pt=T-E,Tt=w-B,lt=R-E,ft=Y*Tt+pt*lt,q=pt*Tt-lt*Y,jt=q<0;if(Math.abs(q)<.001*Math.abs(ft)){f.push(w-M*I,E-C*I),f.push(w+M*F,E+C*F),ft>=0&&(a.join==="round"?g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+4:g+=2,f.push(w-A*F,E-D*F),f.push(w+A*I,E+D*I));continue}let hi=(-M+S)*(-C+E)-(-M+w)*(-C+T),Cr=(-A+B)*(-D+E)-(-A+w)*(-D+R),N=(Y*Cr-Tt*hi)/q,et=(lt*hi-pt*Cr)/q,ct=(N-w)*(N-w)+(et-E)*(et-E),It=w+(N-w)*I,St=E+(et-E)*I,Kt=w-(N-w)*F,Bt=E-(et-E)*F,xe=Math.min(Y*Y+pt*pt,Tt*Tt+lt*lt),Xt=jt?I:F,$e=xe+Xt*Xt*b;ct<=$e?a.join==="bevel"||ct/b>v?(jt?(f.push(It,St),f.push(w+M*F,E+C*F),f.push(It,St),f.push(w+A*F,E+D*F)):(f.push(w-M*I,E-C*I),f.push(Kt,Bt),f.push(w-A*I,E-D*I),f.push(Kt,Bt)),g+=2):a.join==="round"?jt?(f.push(It,St),f.push(w+M*F,E+C*F),g+=ri(w,E,w+M*F,E+C*F,w+A*F,E+D*F,f,!0)+4,f.push(It,St),f.push(w+A*F,E+D*F)):(f.push(w-M*I,E-C*I),f.push(Kt,Bt),g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+4,f.push(w-A*I,E-D*I),f.push(Kt,Bt)):(f.push(It,St),f.push(Kt,Bt)):(f.push(w-M*I,E-C*I),f.push(w+M*F,E+C*F),a.join==="round"?jt?g+=ri(w,E,w+M*F,E+C*F,w+A*F,E+D*F,f,!0)+2:g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+2:a.join==="miter"&&ct/b<=v&&(jt?(f.push(Kt,Bt),f.push(Kt,Bt)):(f.push(It,St),f.push(It,St)),g+=2),f.push(w-A*I,E-D*I),f.push(w+A*F,E+D*F),g+=2)}S=i[(m-2)*2],T=i[(m-2)*2+1],w=i[(m-1)*2],E=i[(m-1)*2+1],M=-(T-E),C=S-w,H=Math.sqrt(M*M+C*C),M/=H,C/=H,M*=x,C*=x,f.push(w-M*I,E-C*I),f.push(w+M*F,E+C*F),u||(a.cap==="round"?g+=ri(w-M*(I-F)*.5,E-C*(I-F)*.5,w-M*I,E-C*I,w+M*F,E+C*F,f,!1)+2:a.cap==="square"&&(g+=jb(w,E,M,C,I,F,!1,f)));let j=1e-4*1e-4;for(let G=_;G<g+_-2;++G)S=f[G*2],T=f[G*2+1],w=f[(G+1)*2],E=f[(G+1)*2+1],B=f[(G+2)*2],R=f[(G+2)*2+1],!(Math.abs(S*(E-R)+w*(R-T)+B*(T-E))<j)&&n.push(G,G+1,G+2)}var ol=p(()=>{Vc();Ee()});function Yb(i,t){for(let e=0;e<t.length;e++){let r=t[e];i.addColorStop(r.offset,r.color)}}function $b(i,t){let e=W.get().createCanvas(i,t),r=e.getContext("2d");return{canvas:e,context:r}}function ow(i){let t=i[0]??{};return(typeof t=="number"||i[1])&&(O("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]??ee.defaultLinearOptions.textureSize}),t}var Xb,Hu,ee,ii=p(()=>{Qt();xt();ot();Vo();gt();Ft();yt();lc();Xb=[{offset:0,color:"white"},{offset:1,color:"black"}],Hu=class zu{constructor(...t){this.uid=$("fillGradient"),this._tick=0,this.type="linear",this.colorStops=[];let e=ow(t);e={...e.type==="radial"?zu.defaultRadialOptions:zu.defaultLinearOptions,...Ro(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:Q.shared.setValue(e).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:t,y:e}=this.start,{x:r,y:s}=this.end,n=r-t,o=s-e,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let _=t;t=r,r=_,n*=-1}if(o<0){let _=e;e=s,s=_,o*=-1}}let l=this.colorStops.length?this.colorStops:Xb,c=this._textureSize,{canvas:h,context:u}=$b(c,1),d=a?u.createLinearGradient(this._textureSize,0,0,0):u.createLinearGradient(0,0,this._textureSize,0);Yb(d,l),u.fillStyle=d,u.fillRect(0,0,c,1),this.texture=new U({source:new Re({resource:h,addressMode:this._wrapMode})});let f=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),g=new k;g.scale(f/c,1),g.rotate(m),g.translate(t,e),this.textureSpace==="local"&&g.scale(c,c),this.transform=g}buildGradient(){this.texture||this._tick++,this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let t=this.colorStops.length?this.colorStops:Xb,e=this._textureSize,{canvas:r,context:s}=$b(e,e),{x:n,y:o}=this.center,{x:a,y:l}=this.outerCenter,c=this.innerRadius,h=this.outerRadius,u=a-h,d=l-h,f=e/(h*2),m=(n-u)*f,g=(o-d)*f,_=s.createRadialGradient(m,g,c*f,(a-u)*f,(l-d)*f,h*f);Yb(_,t),s.fillStyle=t[t.length-1].color,s.fillRect(0,0,e,e),s.fillStyle=_,s.translate(m,g),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-g),s.fillRect(0,0,e,e),this.texture=new U({source:new Re({resource:r,addressMode:this._wrapMode})});let x=new k;this.textureSpace==="local"?x.scale(2*h,2*h):x.scale(1/f,1/f),x.translate(u,d),this.transform=x}destroy(){this.texture?.destroy(!0),this.texture=null,this.transform=null,this.colorStops=[],this.start=null,this.end=null,this.center=null,this.outerCenter=null}get styleKey(){return`fill-gradient-${this.uid}-${this._tick}`}};Hu.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Hu.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,rotation:0,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};ee=Hu});function aw(i){return i.texture!==void 0}var qb,Ge,Vn=p(()=>{ot();Ft();qb={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},Ge=class{constructor(t,e){this.uid=$("fillPattern"),this._tick=0,this.transform=new k;let r=aw(t)?t:{texture:t,repetition:e};this.texture=r.texture,this.textureSpace=r.textureSpace??"global";let s=r.repetition;s&&(this.texture.source.style.addressModeU=qb[s].addressModeU,this.texture.source.style.addressModeV=qb[s].addressModeV)}setTransform(t){if(t){if(this.transform.equals(t))return;this.transform.copyFrom(t)}else{if(this.transform.isIdentity())return;this.transform.identity()}this._tick++}get texture(){return this._texture}set texture(t){this._texture!==t&&(this._texture=t,this._tick++)}get styleKey(){return`fill-pattern-${this.uid}-${this._tick}`}destroy(){this.texture.destroy(!0),this.texture=null}}});function Kb(i,t,e,r,s,n,o,a=null){let l=0;e*=t,s*=n;let c=a.a,h=a.b,u=a.c,d=a.d,f=a.tx,m=a.ty;for(;l<o;){let g=i[e],_=i[e+1];r[s]=c*g+u*_+f,r[s+1]=h*g+d*_+m,s+=n,e+=t,l++}}function Zb(i,t,e,r){let s=0;for(t*=e;s<r;)i[t]=0,i[t+1]=0,t+=e,s++}var Qb=p(()=>{"use strict"});function Wu(i,t,e,r,s){let n=t.a,o=t.b,a=t.c,l=t.d,c=t.tx,h=t.ty;e||(e=0),r||(r=2),s||(s=i.length/r-e);let u=e*r;for(let d=0;d<s;d++){let f=i[u],m=i[u+1];i[u]=n*f+a*m+c,i[u+1]=o*f+l*m+h,u+=r}}var Jb=p(()=>{"use strict"});var lw,si,Vu=p(()=>{ot();_s();lw=new k,si=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,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?Ue(e,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):e+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||lw}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=!0,this.renderable=null,this.topology="triangle-list"}destroy(){this.renderable=null,this.texture=null,this.geometryData=null,this._batcher=null,this._batch=null}}});var Zi,t0,e0,r0=p(()=>{P();Zi={extension:{type:y.ShapeBuilder,name:"circle"},build(i,t){let e,r,s,n,o,a;if(i.type==="circle"){let S=i;if(o=a=S.radius,o<=0)return!1;e=S.x,r=S.y,s=n=0}else if(i.type==="ellipse"){let S=i;if(o=S.halfWidth,a=S.halfHeight,o<=0||a<=0)return!1;e=S.x,r=S.y,s=n=0}else{let S=i,T=S.width/2,w=S.height/2;e=S.x+T,r=S.y+w,o=a=Math.max(0,Math.min(S.radius,Math.min(T,w))),s=T-o,n=w-a}if(s<0||n<0)return!1;let l=Math.ceil(2.3*Math.sqrt(o+a)),c=l*8+(s?4:0)+(n?4:0);if(c===0)return!1;if(l===0)return t[0]=t[6]=e+s,t[1]=t[3]=r+n,t[2]=t[4]=e-s,t[5]=t[7]=r-n,!0;let h=0,u=l*4+(s?2:0)+2,d=u,f=c,m=s+o,g=n,_=e+m,x=e-m,b=r+g;if(t[h++]=_,t[h++]=b,t[--u]=b,t[--u]=x,n){let S=r-g;t[d++]=x,t[d++]=S,t[--f]=S,t[--f]=_}for(let S=1;S<l;S++){let T=Math.PI/2*(S/l),w=s+Math.cos(T)*o,E=n+Math.sin(T)*a,B=e+w,R=e-w,M=r+E,C=r-E;t[h++]=B,t[h++]=M,t[--u]=M,t[--u]=R,t[d++]=R,t[d++]=C,t[--f]=C,t[--f]=B}m=s,g=n+a,_=e+m,x=e-m,b=r+g;let v=r-g;return t[h++]=_,t[h++]=b,t[--f]=v,t[--f]=_,s&&(t[h++]=x,t[h++]=b,t[--f]=v,t[--f]=x),!0},triangulate(i,t,e,r,s,n){if(i.length===0)return;let o=0,a=0;for(let h=0;h<i.length;h+=2)o+=i[h],a+=i[h+1];o/=i.length/2,a/=i.length/2;let l=r;t[l*e]=o,t[l*e+1]=a;let c=l++;for(let h=0;h<i.length;h+=2)t[l*e]=i[h],t[l*e+1]=i[h+1],h>0&&(s[n++]=l,s[n++]=c,s[n++]=l-1),l++;s[n++]=c+1,s[n++]=c,s[n++]=l-1}},t0={...Zi,extension:{...Zi.extension,name:"ellipse"}},e0={...Zi,extension:{...Zi.extension,name:"roundedRectangle"}}});function i0(i,t,e,r){let s=1e-4;if(i.length===0)return;let n=i[0],o=i[1],a=i[i.length-2],l=i[i.length-1],c=t||Math.abs(n-a)<s&&Math.abs(o-l)<s,h=e,u=i.length/2,d=h.length/2;for(let f=0;f<u;f++)h.push(i[f*2]),h.push(i[f*2+1]);for(let f=0;f<u-1;f++)r.push(d+f,d+f+1);c&&r.push(d+u-1,d)}var s0=p(()=>{});function al(i,t,e,r,s,n,o){let a=Ag(i,t,2);if(!a)return;for(let c=0;c<a.length;c+=3)n[o++]=a[c]+s,n[o++]=a[c+1]+s,n[o++]=a[c+2]+s;let l=s*r;for(let c=0;c<i.length;c+=2)e[l]=i[c],e[l+1]=i[c+1],l+=r}var ju=p(()=>{Rg()});var cw,n0,o0=p(()=>{P();ju();cw=[],n0={extension:{type:y.ShapeBuilder,name:"polygon"},build(i,t){for(let e=0;e<i.points.length;e++)t[e]=i.points[e];return!0},triangulate(i,t,e,r,s,n){al(i,cw,t,e,r,s,n)}}});var a0,l0=p(()=>{P();a0={extension:{type:y.ShapeBuilder,name:"rectangle"},build(i,t){let e=i,r=e.x,s=e.y,n=e.width,o=e.height;return n>0&&o>0?(t[0]=r,t[1]=s,t[2]=r+n,t[3]=s,t[4]=r+n,t[5]=s+o,t[6]=r,t[7]=s+o,!0):!1},triangulate(i,t,e,r,s,n){let o=0;r*=e,t[r+o]=i[0],t[r+o+1]=i[1],o+=e,t[r+o]=i[2],t[r+o+1]=i[3],o+=e,t[r+o]=i[6],t[r+o+1]=i[7],o+=e,t[r+o]=i[4],t[r+o+1]=i[5],o+=e;let a=r/e;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var c0,h0=p(()=>{P();c0={extension:{type:y.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,!0},triangulate(i,t,e,r,s,n){let o=0;r*=e,t[r+o]=i[0],t[r+o+1]=i[1],o+=e,t[r+o]=i[2],t[r+o+1]=i[3],o+=e,t[r+o]=i[4],t[r+o+1]=i[5];let a=r/e;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function ll(i,t,e,r){let s=t.matrix?i.copyFrom(t.matrix).invert():i.identity();if(t.textureSpace==="local"){let o=e.getBounds(uw);t.width&&o.pad(t.width);let{x:a,y:l}=o,c=1/o.width,h=1/o.height,u=-a*c,d=-l*h,f=s.a,m=s.b,g=s.c,_=s.d;s.a*=c,s.b*=c,s.c*=h,s.d*=h,s.tx=u*f+d*g+s.tx,s.ty=u*m+d*_+s.ty}else if(t.texture.rotate){let{uvs:o,orig:a}=t.texture;s.scale(1/a.width,1/a.height),s.prepend(dw.set(o.x1-o.x0,o.y1-o.y0,o.x3-o.x0,o.y3-o.y0,o.x0,o.y0))}else s.translate(t.texture.frame.x,t.texture.frame.y),s.scale(1/t.texture.source.width,1/t.texture.source.height);let n=t.texture.source.style;return!(t.fill instanceof ee)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),r&&s.append(hw.copyFrom(r).invert()),s}var hw,uw,dw,Xu=p(()=>{ot();Yt();ii();hw=new k,uw=new J,dw=new k});function d0(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 n=i.instructions[s];if(n.action==="texture")mw(n.data,r,e);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,l=n.data.style,c=n.data.hole;o&&c&&u0(c.shapePath,l,!0,r,e),c&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=c.shapePath.shapePrimitives),u0(a,l,o,r,e)}}}function mw(i,t,e){let r=[],s=Tr.rectangle,n=fw;n.x=i.dx,n.y=i.dy,n.width=i.dw,n.height=i.dh;let o=i.transform;if(!s.build(n,r))return;let{vertices:a,uvs:l,indices:c}=e,h=c.length,u=a.length/2;o&&Wu(r,o),s.triangulate(r,a,2,u,c,h);let d=i.image,f=d.uvs;l.push(f.x0,f.y0,f.x1,f.y1,f.x3,f.y3,f.x2,f.y2);let m=bt.get(si);m.indexOffset=h,m.indexSize=c.length-h,m.attributeOffset=u,m.attributeSize=a.length/2-u,m.baseColor=i.style,m.alpha=i.alpha,m.texture=d,m.geometryData=e,t.push(m)}function u0(i,t,e,r,s){let{vertices:n,uvs:o,indices:a}=s;i.shapePrimitives.forEach(({shape:l,transform:c,holes:h})=>{let u=[],d=Tr[l.type];if(!d.build(l,u))return;let f=a.length,m=n.length/2,g="triangle-list";if(c&&Wu(u,c),e){let v=l.closePath??!0,S=t;S.pixelLine?(i0(u,v,n,a),g="line-list"):Ki(u,S,!1,v,n,a)}else if(h){let v=[],S=u.slice();gw(h).forEach(w=>{v.push(S.length/2),S.push(...w)}),al(S,v,n,2,m,a,f)}else d.triangulate(u,n,2,m,a,f);let _=o.length/2,x=t.texture;if(x!==U.WHITE){let v=ll(pw,t,l,c);Kb(n,2,m,o,_,2,n.length/2-m,v)}else Zb(o,_,2,n.length/2-m);let b=bt.get(si);b.indexOffset=f,b.indexSize=a.length-f,b.attributeOffset=m,b.attributeSize=n.length/2-m,b.baseColor=t.color,b.alpha=t.alpha,b.texture=x,b.geometryData=s,b.topology=g,r.push(b)})}function gw(i){let t=[];for(let e=0;e<i.length;e++){let r=i[e].shape,s=[];Tr[r.type].build(r,s)&&t.push(s)}return t}var Tr,fw,pw,cl=p(()=>{P();ot();Yt();Qb();Jb();gt();Ke();Vu();r0();ol();s0();o0();l0();h0();Xu();ju();Tr={};z.handleByMap(y.ShapeBuilder,Tr);z.add(a0,n0,c0,Zi,t0,e0);fw=new J,pw=new k});function vw(i,t,e){i.beginPath();for(let r=0;r<e.length;r+=3){let s=e[r]*2,n=e[r+1]*2,o=e[r+2]*2;i.moveTo(t[s],t[s+1]),i.lineTo(t[n],t[n+1]),i.lineTo(t[o],t[o+1]),i.closePath()}i.fill()}function Sw(i){return`#${(i&16777215).toString(16).padStart(6,"0")}`}function Tw(i,t,e,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(t+n,e),i.lineTo(t+r-n,e),i.quadraticCurveTo(t+r,e,t+r,e+n),i.lineTo(t+r,e+s-n),i.quadraticCurveTo(t+r,e+s,t+r-n,e+s),i.lineTo(t+n,e+s),i.quadraticCurveTo(t,e+s,t,e+s-n),i.lineTo(t,e+n),i.quadraticCurveTo(t,e,t+n,e)}function ul(i,t){switch(t.type){case"rectangle":{let e=t;i.rect(e.x,e.y,e.width,e.height);break}case"roundedRectangle":{let e=t;Tw(i,e.x,e.y,e.width,e.height,e.radius);break}case"circle":{let e=t;i.arc(e.x,e.y,e.radius,0,Math.PI*2);break}case"ellipse":{let e=t;i.ellipse?i.ellipse(e.x,e.y,e.halfWidth,e.halfHeight,0,0,Math.PI*2):(i.save(),i.translate(e.x,e.y),i.scale(e.halfWidth,e.halfHeight),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let e=t;i.moveTo(e.x,e.y),i.lineTo(e.x2,e.y2),i.lineTo(e.x3,e.y3),i.closePath();break}case"polygon":default:{let e=t,r=e.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);e.closePath&&i.closePath();break}}}function ww(i,t){if(!t?.length)return!1;for(let e=0;e<t.length;e++){let r=t[e];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),ul(i,r.shape),n&&i.restore()}return!0}function Cw(i,t,e,r){let s=i.fill;if(s instanceof ee){s.buildGradient();let o=s.texture;if(o){let a=Z.getTintedPattern(o,t),l=e?Yu.copyFrom(e).scale(o.source.pixelWidth,o.source.pixelHeight):Yu.copyFrom(s.transform);return r&&!i.textureSpace&&l.append(r),Z.applyPatternTransform(a,l),a}}if(s instanceof Ge){let o=Z.getTintedPattern(s.texture,t);return Z.applyPatternTransform(o,s.transform,!1),o}let n=i.texture;if(n&&n!==U.WHITE){if(!n.source.resource)return xw;let o=Z.getTintedPattern(n,t),a=i.matrix;if(e){let{resolution:l}=n.source;if(a=Yu.copyFrom(e),n.rotate){let{uvs:c,orig:h}=n;a.prepend(bw.set(c.x1-c.x0,c.y1-c.y0,c.x3-c.x0,c.y3-c.y0,c.x0,c.y0).invert()).scale(h.width*l,h.height*l)}else a.scale(n.source.pixelWidth,n.source.pixelHeight).translate(-n.frame.x*l,-n.frame.y*l)}return Z.applyPatternTransform(o,a),o}return Sw(t)}var xw,hl,_w,yw,Yu,bw,jn,f0=p(()=>{P();bs();ot();Ei();gt();Po();_s();ol();ii();Vn();cl();Xu();xw="#808080",hl=new k,_w=new k,yw=new k,Yu=new k,bw=new k;jn=class{constructor(){this.shader=null}contextChange(t){}execute(t,e){let r=t.renderer,s=r.canvasContext,n=s.activeContext,o=e.groupTransform,a=r.globalUniforms.globalUniformData?.worldColor??4294967295,l=e.groupColorAlpha,c=(a>>>24&255)/255,h=(l>>>24&255)/255,u=r.filter?.alphaMultiplier??1,d=c*h*u;if(d<=0)return;let f=a&16777215,m=l&16777215,g=Qe(Ue(m,f)),_=r._roundPixels|e._roundPixels;n.save(),s.setContextTransform(o,_===1),s.setBlendMode(e.groupBlendMode);let x=e.context.instructions;for(let b=0;b<x.length;b++){let v=x[b];if(v.action==="texture"){let C=v.data,A=C.image,D=A?Z.getCanvasSource(A):null;if(!D)continue;let H=C.alpha*d;if(H<=0)continue;let K=Ue(C.style,g);n.globalAlpha=H;let I=D;K!==16777215&&(I=Z.getTintedCanvas({texture:A},K));let F=A.frame,j=A.source._resolution??A.source.resolution??1,G=F.x*j,Y=F.y*j,pt=F.width*j,Tt=F.height*j;I!==D&&(G=0,Y=0);let lt=C.transform,ft=lt&&!lt.isIdentity(),q=A.rotate;ft||q?(hl.copyFrom(o),ft&&hl.append(lt),q&&it.matrixAppendRotationInv(hl,q,C.dx,C.dy,C.dw,C.dh),s.setContextTransform(hl,_===1)):s.setContextTransform(o,_===1),n.drawImage(I,G,Y,I===D?pt:I.width,I===D?Tt:I.height,q?0:C.dx,q?0:C.dy,C.dw,C.dh),(ft||q)&&s.setContextTransform(o,_===1);continue}let S=v.data,T=S?.path?.shapePath;if(!T?.shapePrimitives?.length)continue;let w=S.style,E=Ue(w.color,g),B=w.alpha*d;if(B<=0)continue;let R=v.action==="stroke";if(n.globalAlpha=B,R){let C=w;n.lineWidth=C.width,n.lineCap=C.cap,n.lineJoin=C.join,n.miterLimit=C.miterLimit}let M=T.shapePrimitives;if(!R&&S.hole?.shapePath?.shapePrimitives?.length){let C=M[M.length-1];C.holes=S.hole.shapePath.shapePrimitives}for(let C=0;C<M.length;C++){let A=M[C];if(!A?.shape)continue;let D=A.transform,H=D&&!D.isIdentity(),K=w.texture&&w.texture!==U.WHITE,I=w.textureSpace==="global"?D:null,F=K?ll(_w,w,A.shape,I):null,j=H?yw.copyFrom(o).append(D):o,G=Cw(w,E,F,j);if(H&&(n.save(),n.transform(D.a,D.b,D.c,D.d,D.tx,D.ty)),R){let Y=w;if(Y.alignment!==.5&&!Y.pixelLine){let Tt=[],lt=[],ft=[];if(Tr[A.shape.type]?.build(A.shape,Tt)){let jt=A.shape.closePath??!0;Ki(Tt,Y,!1,jt,lt,ft),n.fillStyle=G,vw(n,lt,ft)}else n.strokeStyle=G,n.beginPath(),ul(n,A.shape),n.stroke()}else n.strokeStyle=G,n.beginPath(),ul(n,A.shape),n.stroke()}else n.fillStyle=G,n.beginPath(),ul(n,A.shape),ww(n,A.holes)?n.fill("evenodd"):n.fill();H&&n.restore()}}n.restore()}destroy(){this.shader=null}};jn.extension={type:[y.CanvasPipesAdaptor],name:"graphics"}});var $u,p0,m0=p(()=>{P();bs();ot();Po();_s();Ei();$u=class ni{static _getPatternRepeat(t,e){let r=t&&t!=="clamp-to-edge",s=e&&e!=="clamp-to-edge";return r&&s?"repeat":r?"repeat-x":s?"repeat-y":"no-repeat"}start(t,e,r){}execute(t,e){let r=e.elements;if(!r||!r.length)return;let s=t.renderer,n=s.canvasContext,o=n.activeContext;for(let a=0;a<r.length;a++){let l=r[a];if(!l.packAsQuad)continue;let c=l,h=c.texture,u=h?Z.getCanvasSource(h):null;if(!u)continue;let d=h.source.style,f=n.smoothProperty,m=d.scaleMode!=="nearest";o[f]!==m&&(o[f]=m),n.setBlendMode(e.blendMode);let g=s.globalUniforms.globalUniformData?.worldColor??4294967295,_=c.color,x=(g>>>24&255)/255,b=(_>>>24&255)/255,v=s.filter?.alphaMultiplier??1,S=x*b*v;if(S<=0)continue;o.globalAlpha=S;let T=g&16777215,w=_&16777215,E=Qe(Ue(w,T)),B=h.frame,R=d.addressModeU??d.addressMode,M=d.addressModeV??d.addressMode,C=ni._getPatternRepeat(R,M),A=h.source._resolution??h.source.resolution??1,D=c.renderable?.renderGroup?.isCachedAsTexture,H=B.x*A,K=B.y*A,I=B.width*A,F=B.height*A,j=c.bounds,G=s.renderTarget.renderTarget.isRoot,Y=j.minX,pt=j.minY,Tt=j.maxX-j.minX,lt=j.maxY-j.minY,ft=h.rotate,q=h.uvs,jt=Math.min(q.x0,q.x1,q.x2,q.x3,q.y0,q.y1,q.y2,q.y3),hi=Math.max(q.x0,q.x1,q.x2,q.x3,q.y0,q.y1,q.y2,q.y3),Cr=C!=="no-repeat"&&(jt<0||hi>1),et=ft&&!(!Cr&&(E!==16777215||ft));et?(ni._tempPatternMatrix.copyFrom(c.transform),it.matrixAppendRotationInv(ni._tempPatternMatrix,ft,Y,pt,Tt,lt),n.setContextTransform(ni._tempPatternMatrix,c.roundPixels===1,void 0,D&&G)):n.setContextTransform(c.transform,c.roundPixels===1,void 0,D&&G);let ct=Tt,It=lt,St=et?0:Y,Kt=et?0:pt;if(!et&&c.roundPixels===1&&(St|=0,Kt|=0),Cr){let Bt=u,xe=E!==16777215&&!ft,Xt=B.width<=h.source.width&&B.height<=h.source.height;xe&&Xt&&(Bt=Z.getTintedCanvas({texture:h},E));let $e=o.createPattern(Bt,C);if(!$e)continue;let as=ct,ls=It;if(as===0||ls===0)continue;let cr=1/as,Er=1/ls,cs=(q.x1-q.x0)*cr,hs=(q.y1-q.y0)*cr,us=(q.x3-q.x0)*Er,ds=(q.y3-q.y0)*Er,ui=q.x0-cs*St-us*Kt,go=q.y0-hs*St-ds*Kt,di=h.source.pixelWidth,fi=h.source.pixelHeight;ni._tempPatternMatrix.set(cs*di,hs*fi,us*di,ds*fi,ui*di,go*fi),Z.applyPatternTransform($e,ni._tempPatternMatrix),o.fillStyle=$e,o.fillRect(St,Kt,ct,It)}else{let xe=E!==16777215||ft?Z.getTintedCanvas({texture:h},E):u,Xt=xe!==u;o.drawImage(xe,Xt?0:H,Xt?0:K,Xt?xe.width:I,Xt?xe.height:F,St,Kt,ct,It)}}}};$u._tempPatternMatrix=new k;$u.extension={type:[y.CanvasPipesAdaptor],name:"batch"};p0=$u});var Xn,g0=p(()=>{P();Xn=class{constructor(t){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=t}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(t,e,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;s[this._colorStackIndex]=s[this._colorStackIndex-1]&t.mask;let n=this._colorStack[this._colorStackIndex];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1})),this._colorStackIndex++}pop(t,e,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;this._colorStackIndex--;let n=s[this._colorStackIndex-1];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1}))}execute(t){}destroy(){this._renderer=null,this._colorStack=null}};Xn.extension={type:[y.CanvasPipes],name:"colorMask"}});function x0(i){let t=[];return i.replace(Ew,(e,r,s)=>{let n=r.toLowerCase(),o=r,a=Mw(s);for(n==="m"&&a.length>2&&(t.push([o,...a.splice(0,2)]),n="l",o=o==="m"?"l":"L");;){if(a.length===qu[n])return t.push([o,...a]),"";if(a.length<qu[n])throw new Error("malformed path data");t.push([o,...a.splice(0,qu[n])])}}),t}function Mw(i){let t=i.match(Pw);return t?t.map(Number):[]}var qu,Ew,Pw,_0=p(()=>{qu={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},Ew=/([astvzqmhlc])([^astvzqmhlc]*)/gi,Pw=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi});function y0(i,t){let e=x0(i),r=[],s=null,n=0,o=0;for(let a=0;a<e.length;a++){let l=e[a],c=l[0],h=l;switch(c){case"M":n=h[1],o=h[2],t.moveTo(n,o);break;case"m":n+=h[1],o+=h[2],t.moveTo(n,o);break;case"H":n=h[1],t.lineTo(n,o);break;case"h":n+=h[1],t.lineTo(n,o);break;case"V":o=h[1],t.lineTo(n,o);break;case"v":o+=h[1],t.lineTo(n,o);break;case"L":n=h[1],o=h[2],t.lineTo(n,o);break;case"l":n+=h[1],o+=h[2],t.lineTo(n,o);break;case"C":n=h[5],o=h[6],t.bezierCurveTo(h[1],h[2],h[3],h[4],n,o);break;case"c":t.bezierCurveTo(n+h[1],o+h[2],n+h[3],o+h[4],n+h[5],o+h[6]),n+=h[5],o+=h[6];break;case"S":n=h[3],o=h[4],t.bezierCurveToShort(h[1],h[2],n,o);break;case"s":t.bezierCurveToShort(n+h[1],o+h[2],n+h[3],o+h[4]),n+=h[3],o+=h[4];break;case"Q":n=h[3],o=h[4],t.quadraticCurveTo(h[1],h[2],n,o);break;case"q":t.quadraticCurveTo(n+h[1],o+h[2],n+h[3],o+h[4]),n+=h[3],o+=h[4];break;case"T":n=h[1],o=h[2],t.quadraticCurveToShort(n,o);break;case"t":n+=h[1],o+=h[2],t.quadraticCurveToShort(n,o);break;case"A":n=h[6],o=h[7],t.arcToSvg(h[1],h[2],h[3],h[4],h[5],n,o);break;case"a":n+=h[6],o+=h[7],t.arcToSvg(h[1],h[2],h[3],h[4],h[5],n,o);break;case"Z":case"z":t.closePath(),r.length>0&&(s=r.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:L(`Unknown SVG path command: ${c}`)}c!=="Z"&&c!=="z"&&s===null&&(s={startX:n,startY:o},r.push(s))}return t}var b0=p(()=>{_0();ht()});var Ku,Zu,Ju,Qi,dl=p(()=>{P();ga();Yh();Ao();Ie();yt();Ke();cl();Ku=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}reset(){this.batches&&this.batches.forEach(t=>{bt.return(t)}),this.graphicsData&&bt.return(this.graphicsData),this.isBatchable=!1,this.context=null,this.batches.length=0,this.geometryData.indices.length=0,this.geometryData.vertices.length=0,this.geometryData.uvs.length=0,this.graphicsData=null}destroy(){this.reset(),this.batches=null,this.geometryData=null}},Zu=class{constructor(){this.instructions=new hr}init(t){let e=t.maxTextures;this.batcher?this.batcher._updateMaxTextures(e):this.batcher=new cn({maxTextures:e}),this.instructions.reset()}get geometry(){return O(bf,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}destroy(){this.batcher.destroy(),this.instructions.destroy(),this.batcher=null,this.instructions=null}},Ju=class Qu{constructor(t){this._renderer=t,this._managedContexts=new kt({renderer:t,type:"resource",name:"graphicsContext"})}init(t){Qu.defaultOptions.bezierSmoothness=t?.bezierSmoothness??Qu.defaultOptions.bezierSmoothness}getContextRenderData(t){return t._gpuData[this._renderer.uid].graphicsData||this._initContextRenderData(t)}updateGpuContext(t){let e=!!t._gpuData[this._renderer.uid],r=t._gpuData[this._renderer.uid]||this._initContext(t);if(t.dirty||!e){e&&r.reset(),d0(t,r);let s=t.batchMode;t.customShader||s==="no-batch"?r.isBatchable=!1:s==="auto"?r.isBatchable=r.geometryData.vertices.length<400:r.isBatchable=!0,t.dirty=!1}return r}getGpuContext(t){return t._gpuData[this._renderer.uid]||this._initContext(t)}_initContextRenderData(t){let e=bt.get(Zu,{maxTextures:this._renderer.limits.maxBatchableTextures}),r=t._gpuData[this._renderer.uid],{batches:s,geometryData:n}=r;r.graphicsData=e;let o=n.vertices.length,a=n.indices.length;for(let u=0;u<s.length;u++)s[u].applyTransform=!1;let l=e.batcher;l.ensureAttributeBuffer(o),l.ensureIndexBuffer(a),l.begin();for(let u=0;u<s.length;u++){let d=s[u];l.add(d)}l.finish(e.instructions);let c=l.geometry;c.indexBuffer.setDataWithSize(l.indexBuffer,l.indexSize,!0),c.buffers[0].setDataWithSize(l.attributeBuffer.float32View,l.attributeSize,!0);let h=l.batches;for(let u=0;u<h.length;u++){let d=h[u];d.bindGroup=Ii(d.textures.textures,d.textures.count,this._renderer.limits.maxBatchableTextures)}return e}_initContext(t){let e=new Ku;return e.context=t,t._gpuData[this._renderer.uid]=e,this._managedContexts.add(t),e}destroy(){this._managedContexts.destroy(),this._renderer=null}};Ju.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"graphicsContext"};Ju.defaultOptions={bezierSmoothness:.5};Qi=Ju});function pl(i,t,e,r,s,n,o,a,l,c){let u=Math.min(.99,Math.max(0,c??Qi.defaultOptions.bezierSmoothness)),d=(Rw-u)/1;return d*=d,kw(t,e,r,s,n,o,a,l,i,d),i}function kw(i,t,e,r,s,n,o,a,l,c){ed(i,t,e,r,s,n,o,a,l,c,0),l.push(o,a)}function ed(i,t,e,r,s,n,o,a,l,c,h){if(h>Aw)return;let u=Math.PI,d=(i+e)/2,f=(t+r)/2,m=(e+s)/2,g=(r+n)/2,_=(s+o)/2,x=(n+a)/2,b=(d+m)/2,v=(f+g)/2,S=(m+_)/2,T=(g+x)/2,w=(b+S)/2,E=(v+T)/2;if(h>0){let B=o-i,R=a-t,M=Math.abs((e-o)*R-(r-a)*B),C=Math.abs((s-o)*R-(n-a)*B),A,D;if(M>fl&&C>fl){if((M+C)*(M+C)<=c*(B*B+R*R)){if(Ji<td){l.push(w,E);return}let H=Math.atan2(n-r,s-e);if(A=Math.abs(H-Math.atan2(r-t,e-i)),D=Math.abs(Math.atan2(a-n,o-s)-H),A>=u&&(A=2*u-A),D>=u&&(D=2*u-D),A+D<Ji){l.push(w,E);return}if(oi!==0){if(A>oi){l.push(e,r);return}if(D>oi){l.push(s,n);return}}}}else if(M>fl){if(M*M<=c*(B*B+R*R)){if(Ji<td){l.push(w,E);return}if(A=Math.abs(Math.atan2(n-r,s-e)-Math.atan2(r-t,e-i)),A>=u&&(A=2*u-A),A<Ji){l.push(e,r),l.push(s,n);return}if(oi!==0&&A>oi){l.push(e,r);return}}}else if(C>fl){if(C*C<=c*(B*B+R*R)){if(Ji<td){l.push(w,E);return}if(A=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-r,s-e)),A>=u&&(A=2*u-A),A<Ji){l.push(e,r),l.push(s,n);return}if(oi!==0&&A>oi){l.push(s,n);return}}}else if(B=w-(i+o)/2,R=E-(t+a)/2,B*B+R*R<=c){l.push(w,E);return}}ed(i,t,d,f,b,v,w,E,l,c,h+1),ed(w,E,S,T,_,x,o,a,l,c,h+1)}var Aw,fl,Rw,td,Ji,oi,rd=p(()=>{dl();Aw=8,fl=11920929e-14,Rw=1,td=.01,Ji=0,oi=0});function S0(i,t,e,r,s,n,o,a){let c=Math.min(.99,Math.max(0,a??Qi.defaultOptions.bezierSmoothness)),h=(Gw-c)/1;return h*=h,Uw(t,e,r,s,n,o,i,h),i}function Uw(i,t,e,r,s,n,o,a){id(o,i,t,e,r,s,n,a,0),o.push(s,n)}function id(i,t,e,r,s,n,o,a,l){if(l>Bw)return;let c=Math.PI,h=(t+r)/2,u=(e+s)/2,d=(r+n)/2,f=(s+o)/2,m=(h+d)/2,g=(u+f)/2,_=n-t,x=o-e,b=Math.abs((r-n)*x-(s-o)*_);if(b>Iw){if(b*b<=a*(_*_+x*x)){if(v0<Fw){i.push(m,g);return}let v=Math.abs(Math.atan2(o-s,n-r)-Math.atan2(s-e,r-t));if(v>=c&&(v=2*c-v),v<v0){i.push(m,g);return}}}else if(_=m-(t+n)/2,x=g-(e+o)/2,_*_+x*x<=a){i.push(m,g);return}id(i,t,e,h,u,m,g,a,l+1),id(i,m,g,d,f,n,o,a,l+1)}var Bw,Iw,Gw,Fw,v0,T0=p(()=>{dl();Bw=8,Iw=11920929e-14,Gw=1,Fw=.01,v0=0});function ml(i,t,e,r,s,n,o,a){let l=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(l=2*Math.PI-l),a||(a=Math.max(6,Math.floor(6*Math.pow(r,1/3)*(l/Math.PI)))),a=Math.max(a,3);let c=l/a,h=s;c*=o?-1:1;for(let u=0;u<a+1;u++){let d=Math.cos(h),f=Math.sin(h),m=t+d*r,g=e+f*r;i.push(m,g),h+=c}}var sd=p(()=>{"use strict"});function w0(i,t,e,r,s,n){let o=i[i.length-2],l=i[i.length-1]-e,c=o-t,h=s-e,u=r-t,d=Math.abs(l*u-c*h);if(d<1e-8||n===0){(i[i.length-2]!==t||i[i.length-1]!==e)&&i.push(t,e);return}let f=l*l+c*c,m=h*h+u*u,g=l*h+c*u,_=n*Math.sqrt(f)/d,x=n*Math.sqrt(m)/d,b=_*g/f,v=x*g/m,S=_*u+x*c,T=_*h+x*l,w=c*(x+b),E=l*(x+b),B=u*(_+v),R=h*(_+v),M=Math.atan2(E-T,w-S),C=Math.atan2(R-T,B-S);ml(i,S+t,T+e,n,M,C,c*h>u*l)}var C0=p(()=>{sd()});function Dw(i,t){let e=t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=t===1.5707963267948966?.551915024494:e,s=Math.cos(i),n=Math.sin(i),o=Math.cos(i+t),a=Math.sin(i+t);return[{x:s-n*r,y:n+s*r},{x:o+a*r,y:a-o*r},{x:o,y:a}]}function P0(i,t,e,r,s,n,o,a=0,l=0,c=0){if(n===0||o===0)return;let h=Math.sin(a*Yn/360),u=Math.cos(a*Yn/360),d=u*(t-r)/2+h*(e-s)/2,f=-h*(t-r)/2+u*(e-s)/2;if(d===0&&f===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(d,2)/Math.pow(n,2)+Math.pow(f,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),Lw(t,e,r,s,n,o,l,c,h,u,d,f,nd);let{ang1:g,ang2:_}=nd,{centerX:x,centerY:b}=nd,v=Math.abs(_)/(Yn/4);Math.abs(1-v)<1e-7&&(v=1);let S=Math.max(Math.ceil(v),1);_/=S;let T=i[i.length-2],w=i[i.length-1],E={x:0,y:0};for(let B=0;B<S;B++){let R=Dw(g,_),{x:M,y:C}=od(R[0],n,o,u,h,x,b,E),{x:A,y:D}=od(R[1],n,o,u,h,x,b,E),{x:H,y:K}=od(R[2],n,o,u,h,x,b,E);pl(i,T,w,M,C,A,D,H,K),T=H,w=K,g+=_}}var Yn,nd,od,E0,Lw,M0=p(()=>{rd();Yn=Math.PI*2,nd={centerX:0,centerY:0,ang1:0,ang2:0},od=({x:i,y:t},e,r,s,n,o,a,l)=>{i*=e,t*=r;let c=s*i-n*t,h=n*i+s*t;return l.x=c+o,l.y=h+a,l};E0=(i,t,e,r)=>{let s=i*r-t*e<0?-1:1,n=i*e+t*r;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},Lw=(i,t,e,r,s,n,o,a,l,c,h,u,d)=>{let f=Math.pow(s,2),m=Math.pow(n,2),g=Math.pow(h,2),_=Math.pow(u,2),x=f*m-f*_-m*g;x<0&&(x=0),x/=f*_+m*g,x=Math.sqrt(x)*(o===a?-1:1);let b=x*s/n*u,v=x*-n/s*h,S=c*b-l*v+(i+e)/2,T=l*b+c*v+(t+r)/2,w=(h-b)/s,E=(u-v)/n,B=(-h-b)/s,R=(-u-v)/n,M=E0(1,0,w,E),C=E0(w,E,B,R);a===0&&C>0&&(C-=Yn),a===1&&C<0&&(C+=Yn),d.centerX=S,d.centerY=T,d.ang1=M,d.ang2=C}});function A0(i,t,e){let r=(o,a)=>{let l=a.x-o.x,c=a.y-o.y,h=Math.sqrt(l*l+c*c),u=l/h,d=c/h;return{len:h,nx:u,ny:d}},s=(o,a)=>{o===0?i.moveTo(a.x,a.y):i.lineTo(a.x,a.y)},n=t[t.length-1];for(let o=0;o<t.length;o++){let a=t[o%t.length],l=a.radius??e;if(l<=0){s(o,a),n=a;continue}let c=t[(o+1)%t.length],h=r(a,n),u=r(a,c);if(h.len<1e-4||u.len<1e-4){s(o,a),n=a;continue}let d=Math.asin(h.nx*u.ny-h.ny*u.nx),f=1,m=!1;h.nx*u.nx-h.ny*-u.ny<0?d<0?d=Math.PI+d:(d=Math.PI-d,f=-1,m=!0):d>0&&(f=-1,m=!0);let g=d/2,_,x=Math.abs(Math.cos(g)*l/Math.sin(g));x>Math.min(h.len/2,u.len/2)?(x=Math.min(h.len/2,u.len/2),_=Math.abs(x*Math.sin(g)/Math.cos(g))):_=l;let b=a.x+u.nx*x+-u.ny*_*f,v=a.y+u.ny*x+u.nx*_*f,S=Math.atan2(h.ny,h.nx)+Math.PI/2*f,T=Math.atan2(u.ny,u.nx)-Math.PI/2*f;o===0&&i.moveTo(b+Math.cos(S)*_,v+Math.sin(S)*_),i.arc(b,v,_,S,T,m),n=a}}function R0(i,t,e,r){let s=(a,l)=>Math.sqrt((a.x-l.x)**2+(a.y-l.y)**2),n=(a,l,c)=>({x:a.x+(l.x-a.x)*c,y:a.y+(l.y-a.y)*c}),o=t.length;for(let a=0;a<o;a++){let l=t[(a+1)%o],c=l.radius??e;if(c<=0){a===0?i.moveTo(l.x,l.y):i.lineTo(l.x,l.y);continue}let h=t[a],u=t[(a+2)%o],d=s(h,l),f;if(d<1e-4)f=l;else{let _=Math.min(d/2,c);f=n(l,h,_/d)}let m=s(u,l),g;if(m<1e-4)g=l;else{let _=Math.min(m/2,c);g=n(l,u,_/m)}a===0?i.moveTo(f.x,f.y):i.lineTo(f.x,f.y),i.quadraticCurveTo(l.x,l.y,g.x,g.y,r)}}var k0=p(()=>{"use strict"});var Ow,gl,B0=p(()=>{mm();gm();xm();Yt();_m();ie();rd();T0();sd();C0();M0();k0();Ow=new J,gl=class{constructor(t){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new dt,this._graphicsPath2D=t,this.signed=t.checkForHoles}moveTo(t,e){return this.startPoly(t,e),this}lineTo(t,e){this._ensurePoly();let r=this._currentPoly.points,s=r[r.length-2],n=r[r.length-1];return(s!==t||n!==e)&&r.push(t,e),this}arc(t,e,r,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return ml(a,t,e,r,s,n,o),this}arcTo(t,e,r,s,n){this._ensurePoly();let o=this._currentPoly.points;return w0(o,t,e,r,s,n),this}arcToSvg(t,e,r,s,n,o,a){let l=this._currentPoly.points;return P0(l,this._currentPoly.lastX,this._currentPoly.lastY,o,a,t,e,r,s,n),this}bezierCurveTo(t,e,r,s,n,o,a){this._ensurePoly();let l=this._currentPoly;return pl(this._currentPoly.points,l.lastX,l.lastY,t,e,r,s,n,o,a),this}quadraticCurveTo(t,e,r,s,n){this._ensurePoly();let o=this._currentPoly;return S0(this._currentPoly.points,o.lastX,o.lastY,t,e,r,s,n),this}closePath(){return this.endPoly(!0),this}addPath(t,e){this.endPoly(),e&&!e.isIdentity()&&(t=t.clone(!0),t.transform(e));let r=this.shapePrimitives,s=r.length;for(let n=0;n<t.instructions.length;n++){let o=t.instructions[n];this[o.action](...o.data)}if(t.checkForHoles&&r.length-s>1){let n=null;for(let o=s;o<r.length;o++){let a=r[o];if(a.shape.type==="polygon"){let l=a.shape,c=n?.shape;c&&c.containsPolygon(l)?(n.holes||(n.holes=[]),n.holes.push(a),r.copyWithin(o,o+1),r.length--,o--):n=a}}}return this}finish(t=!1){this.endPoly(t)}rect(t,e,r,s,n){return this.drawShape(new J(t,e,r,s),n),this}circle(t,e,r,s){return this.drawShape(new Ko(t,e,r),s),this}poly(t,e,r){let s=new Pi(t);return s.closePath=e,this.drawShape(s,r),this}regularPoly(t,e,r,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,l=Math.PI*2/s,c=[];for(let h=0;h<s;h++){let u=a-h*l;c.push(t+r*Math.cos(u),e+r*Math.sin(u))}return this.poly(c,!0,o),this}roundPoly(t,e,r,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(t,e,r,s,o);let l=r*Math.sin(Math.PI/s)-.001;n=Math.min(n,l);let c=-1*Math.PI/2+o,h=Math.PI*2/s,u=(s-2)*Math.PI/s/2;for(let d=0;d<s;d++){let f=d*h+c,m=t+r*Math.cos(f),g=e+r*Math.sin(f),_=f+Math.PI+u,x=f-Math.PI-u,b=m+n*Math.cos(_),v=g+n*Math.sin(_),S=m+n*Math.cos(x),T=g+n*Math.sin(x);d===0?this.moveTo(b,v):this.lineTo(b,v),this.quadraticCurveTo(m,g,S,T,a)}return this.closePath()}roundShape(t,e,r=!1,s){return t.length<3?this:(r?R0(this,t,e,s):A0(this,t,e),this.closePath())}filletRect(t,e,r,s,n){if(n===0)return this.rect(t,e,r,s);let o=Math.min(r,s)/2,a=Math.min(o,Math.max(-o,n)),l=t+r,c=e+s,h=a<0?-a:0,u=Math.abs(a);return this.moveTo(t,e+u).arcTo(t+h,e+h,t+u,e,u).lineTo(l-u,e).arcTo(l-h,e+h,l,e+u,u).lineTo(l,c-u).arcTo(l-h,c-h,t+r-u,c,u).lineTo(t+u,c).arcTo(t+h,c-h,t,c-u,u).closePath()}chamferRect(t,e,r,s,n,o){if(n<=0)return this.rect(t,e,r,s);let a=Math.min(n,Math.min(r,s)/2),l=t+r,c=e+s,h=[t+a,e,l-a,e,l,e+a,l,c-a,l-a,c,t+a,c,t,c-a,t,e+a];for(let u=h.length-1;u>=2;u-=2)h[u]===h[u-2]&&h[u-1]===h[u-3]&&h.splice(u-1,2);return this.poly(h,!0,o)}ellipse(t,e,r,s,n){return this.drawShape(new Zo(t,e,r,s),n),this}roundRect(t,e,r,s,n,o){return this.drawShape(new Jo(t,e,r,s,n),o),this}drawShape(t,e){return this.endPoly(),this.shapePrimitives.push({shape:t,transform:e}),this}startPoly(t,e){let r=this._currentPoly;return r&&this.endPoly(),r=new Pi,r.points.push(t,e),this._currentPoly=r,this}endPoly(t=!1){let e=this._currentPoly;return e&&e.points.length>2&&(e.closePath=t,this.shapePrimitives.push({shape:e})),this._currentPoly=null,this}_ensurePoly(t=!0){if(!this._currentPoly&&(this._currentPoly=new Pi,t)){let e=this.shapePrimitives[this.shapePrimitives.length-1];if(e){let r=e.shape.x,s=e.shape.y;if(e.transform&&!e.transform.isIdentity()){let n=e.transform,o=r;r=n.a*r+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(r,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let t=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let e=0;e<t.instructions.length;e++){let r=t.instructions[e];this[r.action](...r.data)}this.finish()}get bounds(){let t=this._bounds;t.clear();let e=this.shapePrimitives;for(let r=0;r<e.length;r++){let s=e[r],n=s.shape.getBounds(Ow);s.transform?t.addRect(n,s.transform):t.addRect(n)}return t}}});function ts(i,t){return i?i.prepend(t):t.clone()}var we,xl=p(()=>{Ee();Ft();ht();b0();B0();we=class i{constructor(t,e=!1){this.instructions=[],this.uid=$("graphicsPath"),this._dirty=!0,this.checkForHoles=e,typeof t=="string"?y0(t,this):this.instructions=t?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new gl(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(t,e){return t=t.clone(),this.instructions.push({action:"addPath",data:[t,e]}),this._dirty=!0,this}arc(...t){return this.instructions.push({action:"arc",data:t}),this._dirty=!0,this}arcTo(...t){return this.instructions.push({action:"arcTo",data:t}),this._dirty=!0,this}arcToSvg(...t){return this.instructions.push({action:"arcToSvg",data:t}),this._dirty=!0,this}bezierCurveTo(...t){return this.instructions.push({action:"bezierCurveTo",data:t}),this._dirty=!0,this}bezierCurveToShort(t,e,r,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(nt.shared),l=0,c=0;if(!o||o.action!=="bezierCurveTo")l=a.x,c=a.y;else{l=o.data[2],c=o.data[3];let h=a.x,u=a.y;l=h+(h-l),c=u+(u-c)}return this.instructions.push({action:"bezierCurveTo",data:[l,c,t,e,r,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...t){return this.instructions.push({action:"ellipse",data:t}),this._dirty=!0,this}lineTo(...t){return this.instructions.push({action:"lineTo",data:t}),this._dirty=!0,this}moveTo(...t){return this.instructions.push({action:"moveTo",data:t}),this}quadraticCurveTo(...t){return this.instructions.push({action:"quadraticCurveTo",data:t}),this._dirty=!0,this}quadraticCurveToShort(t,e,r){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(nt.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let l=n.x,c=n.y;o=l+(l-o),a=c+(c-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,t,e,r]}),this._dirty=!0,this}rect(t,e,r,s,n){return this.instructions.push({action:"rect",data:[t,e,r,s,n]}),this._dirty=!0,this}circle(t,e,r,s){return this.instructions.push({action:"circle",data:[t,e,r,s]}),this._dirty=!0,this}roundRect(...t){return this.instructions.push({action:"roundRect",data:t}),this._dirty=!0,this}poly(...t){return this.instructions.push({action:"poly",data:t}),this._dirty=!0,this}regularPoly(...t){return this.instructions.push({action:"regularPoly",data:t}),this._dirty=!0,this}roundPoly(...t){return this.instructions.push({action:"roundPoly",data:t}),this._dirty=!0,this}roundShape(...t){return this.instructions.push({action:"roundShape",data:t}),this._dirty=!0,this}filletRect(...t){return this.instructions.push({action:"filletRect",data:t}),this._dirty=!0,this}chamferRect(...t){return this.instructions.push({action:"chamferRect",data:t}),this._dirty=!0,this}star(t,e,r,s,n,o,a){n||(n=s/2);let l=-1*Math.PI/2+o,c=r*2,h=Math.PI*2/c,u=[];for(let d=0;d<c;d++){let f=d%2?n:s,m=d*h+l;u.push(t+f*Math.cos(m),e+f*Math.sin(m))}return this.poly(u,!0,a),this}clone(t=!1){let e=new i;if(e.checkForHoles=this.checkForHoles,!t)e.instructions=this.instructions.slice();else for(let r=0;r<this.instructions.length;r++){let s=this.instructions[r];e.instructions.push({action:s.action,data:s.data.slice()})}return e}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(t){if(t.isIdentity())return this;let e=t.a,r=t.b,s=t.c,n=t.d,o=t.tx,a=t.ty,l=0,c=0,h=0,u=0,d=0,f=0,m=0,g=0;for(let _=0;_<this.instructions.length;_++){let x=this.instructions[_],b=x.data;switch(x.action){case"moveTo":case"lineTo":l=b[0],c=b[1],b[0]=e*l+s*c+o,b[1]=r*l+n*c+a;break;case"bezierCurveTo":h=b[0],u=b[1],d=b[2],f=b[3],l=b[4],c=b[5],b[0]=e*h+s*u+o,b[1]=r*h+n*u+a,b[2]=e*d+s*f+o,b[3]=r*d+n*f+a,b[4]=e*l+s*c+o,b[5]=r*l+n*c+a;break;case"quadraticCurveTo":h=b[0],u=b[1],l=b[2],c=b[3],b[0]=e*h+s*u+o,b[1]=r*h+n*u+a,b[2]=e*l+s*c+o,b[3]=r*l+n*c+a;break;case"arcToSvg":l=b[5],c=b[6],m=b[0],g=b[1],b[0]=e*m+s*g,b[1]=r*m+n*g,b[5]=e*l+s*c+o,b[6]=r*l+n*c+a;break;case"circle":b[4]=ts(b[3],t);break;case"rect":b[4]=ts(b[4],t);break;case"ellipse":b[8]=ts(b[8],t);break;case"roundRect":b[5]=ts(b[5],t);break;case"addPath":b[0].transform(t);break;case"poly":b[2]=ts(b[2],t);break;case"regularPoly":case"chamferRect":b[5]=ts(b[5],t);break;case"closePath":break;default:L("unknown transform action",x.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(t){let e=this.instructions.length-1,r=this.instructions[e];if(!r)return t.x=0,t.y=0,t;for(;r.action==="closePath";){if(e--,e<0)return t.x=0,t.y=0,t;r=this.instructions[e]}switch(r.action){case"moveTo":case"lineTo":t.x=r.data[0],t.y=r.data[1];break;case"quadraticCurveTo":t.x=r.data[2],t.y=r.data[3];break;case"bezierCurveTo":t.x=r.data[4],t.y=r.data[5];break;case"arc":case"arcToSvg":t.x=r.data[5],t.y=r.data[6];break;case"addPath":r.data[0].getLastPoint(t);break}return t}}});function Pt(i,t,e){let r=i.getAttribute(t);return r?Number(r):e}var ad=p(()=>{"use strict"});function I0(i,t){let e=i.querySelectorAll("defs");for(let r=0;r<e.length;r++){let s=e[r];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":t.defs[o.id]=Nw(o);break;case"radialgradient":t.defs[o.id]=zw(o);break;default:break}}}}function Nw(i){let t=Pt(i,"x1",0),e=Pt(i,"y1",0),r=Pt(i,"x2",1),s=Pt(i,"y2",0),n=i.getAttribute("gradientUnits")||"objectBoundingBox",o=new ee(t,e,r,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<i.children.length;a++){let l=i.children[a],c=Pt(l,"offset",0),h=Q.shared.setValue(l.getAttribute("stop-color")).toNumber();o.addColorStop(c,h)}return o}function zw(i){return L("[SVG Parser] Radial gradients are not yet supported"),new ee(0,0,1,0)}var G0=p(()=>{Qt();ht();ii();ad()});function ld(i){let t=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return t?t[1]:""}var F0=p(()=>{"use strict"});function cd(i,t){let e=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in U0){let a=i.getAttribute(o);a&&D0(t,n,o,a.trim())}if(e){let o=e.split(";");for(let a=0;a<o.length;a++){let l=o[a].trim(),[c,h]=l.split(":");U0[c]&&D0(t,n,c,h.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function D0(i,t,e,r){switch(e){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=ld(r);t.strokeStyle.fill=i.defs[s]}else t.strokeStyle.color=Q.shared.setValue(r).toNumber();t.useStroke=!0}break;case"stroke-width":t.strokeStyle.width=Number(r);break;case"fill":if(r!=="none"){if(r.startsWith("url(")){let s=ld(r);t.fillStyle.fill=i.defs[s]}else t.fillStyle.color=Q.shared.setValue(r).toNumber();t.useFill=!0}break;case"fill-opacity":t.fillStyle.alpha=Number(r);break;case"stroke-opacity":t.strokeStyle.alpha=Number(r);break;case"opacity":t.fillStyle.alpha=Number(r),t.strokeStyle.alpha=Number(r);break}}var U0,L0=p(()=>{Qt();F0();U0={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function O0(i){if(i.length<=2)return!0;let t=i.map(a=>a.area).sort((a,l)=>l-a),[e,r]=t,s=t[t.length-1],n=e/r,o=r/s;return!(n>3&&o<2)}var N0=p(()=>{"use strict"});function z0(i){return i.split(/(?=[Mm])/).filter(r=>r.trim().length>0)}function H0(i){let t=i.match(/[-+]?[0-9]*\.?[0-9]+/g);if(!t||t.length<4)return 0;let e=t.map(Number),r=[],s=[];for(let h=0;h<e.length;h+=2)h+1<e.length&&(r.push(e[h]),s.push(e[h+1]));if(r.length===0||s.length===0)return 0;let n=Math.min(...r),o=Math.max(...r),a=Math.min(...s),l=Math.max(...s);return(o-n)*(l-a)}function hd(i,t){let e=new we(i,!1);for(let r of e.instructions)t.instructions.push(r)}var W0=p(()=>{xl()});function V0(i,t){if(typeof i=="string"){let o=document.createElement("div");o.innerHTML=i.trim(),i=o.querySelector("svg")}let e={context:t,defs:{},path:new we};I0(i,e);let r=i.children,{fillStyle:s,strokeStyle:n}=cd(i,e);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&j0(a,e,s,n)}return t}function j0(i,t,e,r){let s=i.children,{fillStyle:n,strokeStyle:o}=cd(i,t);n&&e?e={...e,...n}:n&&(e=n),o&&r?r={...r,...o}:o&&(r=o);let a=!e&&!r;a&&(e={color:0});let l,c,h,u,d,f,m,g,_,x,b,v,S,T,w,E,B;switch(i.nodeName.toLowerCase()){case"path":{T=i.getAttribute("d");let R=i.getAttribute("fill-rule"),M=z0(T),C=R==="evenodd",A=M.length>1;if(C&&A){let H=M.map(I=>({path:I,area:H0(I)}));if(H.sort((I,F)=>F.area-I.area),M.length>3||!O0(H))for(let I=0;I<H.length;I++){let F=H[I],j=I===0;t.context.beginPath();let G=new we(void 0,!0);hd(F.path,G),t.context.path(G),j?(e&&t.context.fill(e),r&&t.context.stroke(r)):t.context.cut()}else for(let I=0;I<H.length;I++){let F=H[I],j=I%2===1;t.context.beginPath();let G=new we(void 0,!0);hd(F.path,G),t.context.path(G),j?t.context.cut():(e&&t.context.fill(e),r&&t.context.stroke(r))}}else{let H=R?R==="evenodd":!0;w=new we(T,H),t.context.path(w),e&&t.context.fill(e),r&&t.context.stroke(r)}break}case"circle":m=Pt(i,"cx",0),g=Pt(i,"cy",0),_=Pt(i,"r",0),t.context.ellipse(m,g,_,_),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"rect":l=Pt(i,"x",0),c=Pt(i,"y",0),E=Pt(i,"width",0),B=Pt(i,"height",0),x=Pt(i,"rx",0),b=Pt(i,"ry",0),x||b?t.context.roundRect(l,c,E,B,x||b):t.context.rect(l,c,E,B),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"ellipse":m=Pt(i,"cx",0),g=Pt(i,"cy",0),x=Pt(i,"rx",0),b=Pt(i,"ry",0),t.context.beginPath(),t.context.ellipse(m,g,x,b),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"line":h=Pt(i,"x1",0),u=Pt(i,"y1",0),d=Pt(i,"x2",0),f=Pt(i,"y2",0),t.context.beginPath(),t.context.moveTo(h,u),t.context.lineTo(d,f),r&&t.context.stroke(r);break;case"polygon":S=i.getAttribute("points"),v=S.match(/-?\d+/g).map(R=>parseInt(R,10)),t.context.poly(v,!0),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"polyline":S=i.getAttribute("points"),v=S.match(/-?\d+/g).map(R=>parseInt(R,10)),t.context.poly(v,!1),r&&t.context.stroke(r);break;case"g":case"svg":break;default:{L(`[SVG parser] <${i.nodeName}> elements unsupported`);break}}a&&(e=null);for(let R=0;R<s.length;R++)j0(s[R],t,e,r)}var X0=p(()=>{ht();xl();G0();ad();L0();N0();W0()});function Hw(i){return Q.isColorLike(i)}function Y0(i){return i instanceof Ge}function $0(i){return i instanceof ee}function Ww(i){return i instanceof U}function Vw(i,t,e){let r=Q.shared.setValue(t??0);return i.color=r.toNumber(),i.alpha=r.alpha===1?e.alpha:r.alpha,i.texture=U.WHITE,{...e,...i}}function jw(i,t,e){return i.texture=t,{...e,...i}}function q0(i,t,e){return i.fill=t,i.color=16777215,i.texture=t.texture,i.matrix=t.transform,i.textureSpace=t.textureSpace,{...e,...i}}function K0(i,t,e){return t.buildGradient(),i.fill=t,i.color=16777215,i.texture=t.texture,i.matrix=t.transform,i.textureSpace=t.textureSpace,{...e,...i}}function Xw(i,t){let e={...t,...i},r=Q.shared.setValue(e.color);return e.alpha*=r.alpha,e.color=r.toNumber(),e}function sr(i,t){if(i==null)return null;let e={},r=i;return Hw(i)?Vw(e,i,t):Ww(i)?jw(e,i,t):Y0(i)?q0(e,i,t):$0(i)?K0(e,i,t):r.fill&&Y0(r.fill)?q0(r,r.fill,t):r.fill&&$0(r.fill)?K0(r,r.fill,t):Xw(r,t)}function es(i,t){let{width:e,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...l}=t,c=sr(i,l);return c?{width:e,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...c}:null}var ud=p(()=>{Qt();gt();ii();Vn()});function Z0(i,t){let e=1,r=i.shapePath.shapePrimitives;for(let s=0;s<r.length;s++){let n=r[s].shape;if(n.type!=="polygon")continue;let o=n.points,a=o.length;if(a<6)continue;let l=n.closePath;for(let c=0;c<a;c+=2){if(!l&&(c===0||c===a-2))continue;let h=(c-2+a)%a,u=(c+2)%a,d=o[h],f=o[h+1],m=o[c],g=o[c+1],_=o[u],x=o[u+1],b=d-m,v=f-g,S=_-m,T=x-g,w=b*b+v*v,E=S*S+T*T;if(w<1e-12||E<1e-12)continue;let M=(b*S+v*T)/Math.sqrt(w*E);M<-1?M=-1:M>1&&(M=1);let C=Math.sqrt((1-M)*.5);if(C<1e-6)continue;let A=Math.min(1/C,t);A>e&&(e=A)}}return e}var Q0=p(()=>{"use strict"});var Yw,J0,dd,ge,fd=p(()=>{Ht();Qt();ot();Ee();gt();Ft();yt();ie();xl();X0();ud();Q0();Yw=new nt,J0=new k,dd=class Ve extends ut{constructor(){super(...arguments),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=$("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this.destroyed=!1,this._activePath=new we,this._transform=new k,this._fillStyle={...Ve.defaultFillStyle},this._strokeStyle={...Ve.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new dt,this._boundsDirty=!0}clone(){let t=new Ve;return t.batchMode=this.batchMode,t.instructions=this.instructions.slice(),t._activePath=this._activePath.clone(),t._transform=this._transform.clone(),t._fillStyle={...this._fillStyle},t._strokeStyle={...this._strokeStyle},t._stateStack=this._stateStack.slice(),t._bounds=this._bounds.clone(),t._boundsDirty=!0,t}get fillStyle(){return this._fillStyle}set fillStyle(t){this._fillStyle=sr(t,Ve.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(t){this._strokeStyle=es(t,Ve.defaultStrokeStyle)}setFillStyle(t){return this._fillStyle=sr(t,Ve.defaultFillStyle),this}setStrokeStyle(t){return this._strokeStyle=sr(t,Ve.defaultStrokeStyle),this}texture(t,e,r,s,n,o){return this.instructions.push({action:"texture",data:{image:t,dx:r||0,dy:s||0,dw:n||t.frame.width,dh:o||t.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:e||e===0?Q.shared.setValue(e).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new we,this}fill(t,e){let r,s=this.instructions[this.instructions.length-1];return this._tick===0&&s?.action==="stroke"?r=s.data.path:r=this._activePath.clone(),r?(t!=null&&(e!==void 0&&typeof t=="number"&&(O(rt,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),t={color:t,alpha:e}),this._fillStyle=sr(t,Ve.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:r}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:t,y:e}=this._activePath.getLastPoint(nt.shared);this._activePath.clear(),this._activePath.moveTo(t,e)}stroke(t){let e,r=this.instructions[this.instructions.length-1];return this._tick===0&&r?.action==="fill"?e=r.data.path:e=this._activePath.clone(),e?(t!=null&&(this._strokeStyle=es(t,Ve.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:e}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let t=0;t<2;t++){let e=this.instructions[this.instructions.length-1-t],r=this._activePath.clone();if(e&&(e.action==="stroke"||e.action==="fill"))if(e.data.hole)e.data.hole.addPath(r);else{e.data.hole=r;break}}return this._initNextPathLocation(),this}arc(t,e,r,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*t+a.c*e+a.tx,a.b*t+a.d*e+a.ty,r,s,n,o),this}arcTo(t,e,r,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*t+o.c*e+o.tx,o.b*t+o.d*e+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}arcToSvg(t,e,r,s,n,o,a){this._tick++;let l=this._transform;return this._activePath.arcToSvg(t,e,r,s,n,l.a*o+l.c*a+l.tx,l.b*o+l.d*a+l.ty),this}bezierCurveTo(t,e,r,s,n,o,a){this._tick++;let l=this._transform;return this._activePath.bezierCurveTo(l.a*t+l.c*e+l.tx,l.b*t+l.d*e+l.ty,l.a*r+l.c*s+l.tx,l.b*r+l.d*s+l.ty,l.a*n+l.c*o+l.tx,l.b*n+l.d*o+l.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(t,e,r,s){return this._tick++,this._activePath.ellipse(t,e,r,s,this._transform.clone()),this}circle(t,e,r){return this._tick++,this._activePath.circle(t,e,r,this._transform.clone()),this}path(t){return this._tick++,this._activePath.addPath(t,this._transform.clone()),this}lineTo(t,e){this._tick++;let r=this._transform;return this._activePath.lineTo(r.a*t+r.c*e+r.tx,r.b*t+r.d*e+r.ty),this}moveTo(t,e){this._tick++;let r=this._transform,s=this._activePath.instructions,n=r.a*t+r.c*e+r.tx,o=r.b*t+r.d*e+r.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(t,e,r,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*t+o.c*e+o.tx,o.b*t+o.d*e+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}rect(t,e,r,s){return this._tick++,this._activePath.rect(t,e,r,s,this._transform.clone()),this}roundRect(t,e,r,s,n){return this._tick++,this._activePath.roundRect(t,e,r,s,n,this._transform.clone()),this}poly(t,e){return this._tick++,this._activePath.poly(t,e,this._transform.clone()),this}regularPoly(t,e,r,s,n=0,o){return this._tick++,this._activePath.regularPoly(t,e,r,s,n,o),this}roundPoly(t,e,r,s,n,o){return this._tick++,this._activePath.roundPoly(t,e,r,s,n,o),this}roundShape(t,e,r,s){return this._tick++,this._activePath.roundShape(t,e,r,s),this}filletRect(t,e,r,s,n){return this._tick++,this._activePath.filletRect(t,e,r,s,n),this}chamferRect(t,e,r,s,n,o){return this._tick++,this._activePath.chamferRect(t,e,r,s,n,o),this}star(t,e,r,s,n=0,o=0){return this._tick++,this._activePath.star(t,e,r,s,n,o,this._transform.clone()),this}svg(t){return this._tick++,V0(t,this),this}restore(){let t=this._stateStack.pop();return t&&(this._transform=t.transform,this._fillStyle=t.fillStyle,this._strokeStyle=t.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(t){return this._transform.rotate(t),this}scale(t,e=t){return this._transform.scale(t,e),this}setTransform(t,e,r,s,n,o){return t instanceof k?(this._transform.set(t.a,t.b,t.c,t.d,t.tx,t.ty),this):(this._transform.set(t,e,r,s,n,o),this)}transform(t,e,r,s,n,o){return t instanceof k?(this._transform.append(t),this):(J0.set(t,e,r,s,n,o),this._transform.append(J0),this)}translate(t,e=t){return this._transform.translate(t,e),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this._boundsDirty=!0,this.dirty=!0,this.emit("update",this,16)}get bounds(){if(!this._boundsDirty)return this._bounds;this._boundsDirty=!1;let t=this._bounds;t.clear();for(let e=0;e<this.instructions.length;e++){let r=this.instructions[e],s=r.action;if(s==="fill"){let n=r.data;t.addBounds(n.path.bounds)}else if(s==="texture"){let n=r.data;t.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=r.data,o=n.style.alignment,a=n.style.width*(1-o);n.style.join==="miter"&&(a*=Z0(n.path,n.style.miterLimit));let l=n.path.bounds;t.addFrame(l.minX-a,l.minY-a,l.maxX+a,l.maxY+a)}}return t.isValid||t.set(0,0,0,0),t}containsPoint(t){if(!this.bounds.containsPoint(t.x,t.y))return!1;let e=this.instructions,r=!1;for(let s=0;s<e.length;s++){let n=e[s],o=n.data,a=o.path;if(!n.action||!a)continue;let l=o.style,c=a.shapePath.shapePrimitives;for(let h=0;h<c.length;h++){let u=c[h].shape;if(!l||!u)continue;let d=c[h].transform,f=d?d.applyInverse(t,Yw):t;if(n.action==="fill")r=u.contains(f.x,f.y);else{let g=l;r=u.strokeContains(f.x,f.y,g.width,g.alignment)}let m=o.hole;if(m){let g=m.shapePath?.shapePrimitives;if(g)for(let _=0;_<g.length;_++)g[_].shape.contains(f.x,f.y)&&(r=!1)}if(r)return!0}}return r}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null)}destroy(t=!1){if(this.destroyed)return;if(this.destroyed=!0,this._stateStack.length=0,this._transform=null,this.unload(),this.emit("destroy",this),this.removeAllListeners(),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._fillStyle.texture&&(this._fillStyle.fill&&"uid"in this._fillStyle.fill?this._fillStyle.fill.destroy():this._fillStyle.texture.destroy(r)),this._strokeStyle.texture&&(this._strokeStyle.fill&&"uid"in this._strokeStyle.fill?this._strokeStyle.fill.destroy():this._strokeStyle.texture.destroy(r))}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};dd.defaultFillStyle={color:16777215,alpha:1,texture:U.WHITE,matrix:null,fill:null,textureSpace:"local"};dd.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:U.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};ge=dd});var pd,md,xd,tv,ev=p(()=>{P();Ao();Ie();pd=class{constructor(){this.isBatchable=!1}reset(){this.isBatchable=!1,this.context=null,this.graphicsData&&(this.graphicsData.destroy(),this.graphicsData=null)}destroy(){this.reset()}},md=class{constructor(){this.instructions=new hr}init(){this.instructions.reset()}destroy(){this.instructions.destroy(),this.instructions=null}},xd=class gd{constructor(t){this._renderer=t,this._managedContexts=new kt({renderer:t,type:"resource",name:"graphicsContext"})}init(t){gd.defaultOptions.bezierSmoothness=t?.bezierSmoothness??gd.defaultOptions.bezierSmoothness}getContextRenderData(t){return this.getGpuContext(t).graphicsData||this._initContextRenderData(t)}updateGpuContext(t){let e=t._gpuData,r=!!e[this._renderer.uid],s=e[this._renderer.uid]||this._initContext(t);return(t.dirty||!r)&&(r&&s.reset(),s.isBatchable=!1,t.dirty=!1),s}getGpuContext(t){return t._gpuData[this._renderer.uid]||this._initContext(t)}_initContextRenderData(t){let e=new md,r=this.getGpuContext(t);return r.graphicsData=e,e.init(),e}_initContext(t){let e=new pd;return e.context=t,t._gpuData[this._renderer.uid]=e,this._managedContexts.add(t),e}destroy(){this._managedContexts.destroy(),this._renderer=null}};xd.extension={type:[y.CanvasSystem],name:"graphicsContext"};xd.defaultOptions={bezierSmoothness:.5};tv=xd});var $n,rv=p(()=>{P();Be();Ie();$n=class{constructor(t,e){this.state=Ot.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this),this._managedGraphics=new kt({renderer:t,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(t){return!1}addRenderable(t,e){this._managedGraphics.add(t),this.renderer.renderPipes.batch.break(e),e.add(t)}updateRenderable(t){}execute(t){t.isRenderable&&this._adaptor.execute(this,t)}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null}};$n.extension={type:[y.CanvasPipes],name:"graphics"}});var _d,qn,iv=p(()=>{P();Be();Ie();Ke();Ia();Vu();_d=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(t=>{bt.return(t)}),this.batches.length=0}},qn=class{constructor(t,e){this.state=Ot.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this),this._managedGraphics=new kt({renderer:t,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(t){let e=t.context,r=!!t._gpuData,n=this.renderer.graphicsContext.updateGpuContext(e);return!!(n.isBatchable||r!==n.isBatchable)}addRenderable(t,e){let s=this.renderer.graphicsContext.updateGpuContext(t.context);t.didViewUpdate&&this._rebuild(t),s.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 n=r[s];n._batcher.updateElement(n)}}execute(t){if(!t.isRenderable)return;let e=this.renderer,r=t.context;if(!e.graphicsContext.getGpuContext(r).batches.length)return;let n=r.customShader||this._adaptor.shader;this.state.blendMode=t.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=t.groupTransform,o.uRound=e._roundPixels|t._roundPixels,Hi(t.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,t)}_rebuild(t){let e=this._getGpuDataForRenderable(t),s=this.renderer.graphicsContext.updateGpuContext(t.context);e.destroy(),s.isBatchable&&this._updateBatchesForRenderable(t,e)}_addToBatcher(t,e){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(t).batches;for(let n=0;n<s.length;n++){let o=s[n];r.addToBatch(o,e)}}_getGpuDataForRenderable(t){return t._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(t)}_initGpuDataForRenderable(t){let e=new _d;return t._gpuData[this.renderer.uid]=e,this._managedGraphics.add(t),e}_updateBatchesForRenderable(t,e){let r=t.context,n=this.renderer.graphicsContext.getGpuContext(r),o=this.renderer._roundPixels|t._roundPixels;e.batches=n.batches.map(a=>{let l=bt.get(si);return a.copyTo(l),l.renderable=t,l.roundPixels=o,l})}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};qn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"graphics"}});var sv=p(()=>{P();ev();rv();dl();iv();z.add($n);z.add(qn);z.add(tv);z.add(Qi)});var oe,yd=p(()=>{yt();Cs();fd();sv();oe=class i extends Le{constructor(t){t instanceof ge&&(t={context:t});let{context:e,roundPixels:r,...s}=t||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",e?this.context=e:(this.context=this._ownedContext=new ge,this.context.autoGarbageCollect=this.autoGarbageCollect),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=r??!1}set context(t){t!==this._context&&(this._context&&(this._context.off("update",this.onViewUpdate,this),this._context.off("unload",this.unload,this)),this._context=t,this._context.on("update",this.onViewUpdate,this),this._context.on("unload",this.unload,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(t){return this._context.containsPoint(t)}destroy(t){this._ownedContext&&!t?this._ownedContext.destroy(t):(t===!0||t?.context===!0)&&this._context.destroy(t),this._context?.off("update",this.onViewUpdate,this),this._context?.off("unload",this.unload,this),this._ownedContext=null,this._context=null,super.destroy(t)}_onTouch(t){this._gcLastUsed=t,this._context._gcLastUsed=t}_callContextMethod(t,e){return this.context[t](...e),this}setFillStyle(...t){return this._callContextMethod("setFillStyle",t)}setStrokeStyle(...t){return this._callContextMethod("setStrokeStyle",t)}fill(...t){return this._callContextMethod("fill",t)}stroke(...t){return this._callContextMethod("stroke",t)}texture(...t){return this._callContextMethod("texture",t)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...t){return this._callContextMethod("arc",t)}arcTo(...t){return this._callContextMethod("arcTo",t)}arcToSvg(...t){return this._callContextMethod("arcToSvg",t)}bezierCurveTo(...t){return this._callContextMethod("bezierCurveTo",t)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...t){return this._callContextMethod("ellipse",t)}circle(...t){return this._callContextMethod("circle",t)}path(...t){return this._callContextMethod("path",t)}lineTo(...t){return this._callContextMethod("lineTo",t)}moveTo(...t){return this._callContextMethod("moveTo",t)}quadraticCurveTo(...t){return this._callContextMethod("quadraticCurveTo",t)}rect(...t){return this._callContextMethod("rect",t)}roundRect(...t){return this._callContextMethod("roundRect",t)}poly(...t){return this._callContextMethod("poly",t)}regularPoly(...t){return this._callContextMethod("regularPoly",t)}roundPoly(...t){return this._callContextMethod("roundPoly",t)}roundShape(...t){return this._callContextMethod("roundShape",t)}filletRect(...t){return this._callContextMethod("filletRect",t)}chamferRect(...t){return this._callContextMethod("chamferRect",t)}star(...t){return this._callContextMethod("star",t)}svg(...t){return this._callContextMethod("svg",t)}restore(...t){return this._callContextMethod("restore",t)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...t){return this._callContextMethod("rotate",t)}scaleTransform(...t){return this._callContextMethod("scale",t)}setTransform(...t){return this._callContextMethod("setTransform",t)}transform(...t){return this._callContextMethod("transform",t)}translateTransform(...t){return this._callContextMethod("translate",t)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(t){this._context.fillStyle=t}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(t){this._context.strokeStyle=t}clone(t=!1){return t?new i(this._context.clone()):(this._ownedContext=null,new i(this._context))}lineStyle(t,e,r){O(rt,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return t&&(s.width=t),e&&(s.color=e),r&&(s.alpha=r),this.context.strokeStyle=s,this}beginFill(t,e){O(rt,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let r={};return t!==void 0&&(r.color=t),e!==void 0&&(r.alpha=e),this.context.fillStyle=r,this}endFill(){O(rt,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let t=this.context.strokeStyle;return(t.width!==ge.defaultStrokeStyle.width||t.color!==ge.defaultStrokeStyle.color||t.alpha!==ge.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...t){return O(rt,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",t)}drawEllipse(...t){return O(rt,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",t)}drawPolygon(...t){return O(rt,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",t)}drawRect(...t){return O(rt,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",t)}drawRoundedRect(...t){return O(rt,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",t)}drawStar(...t){return O(rt,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",t)}}});function $w(i,t,e,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(t+n,e),i.lineTo(t+r-n,e),i.quadraticCurveTo(t+r,e,t+r,e+n),i.lineTo(t+r,e+s-n),i.quadraticCurveTo(t+r,e+s,t+r-n,e+s),i.lineTo(t+n,e+s),i.quadraticCurveTo(t,e+s,t,e+s-n),i.lineTo(t,e+n),i.quadraticCurveTo(t,e,t+n,e)}function nv(i,t){switch(t.type){case"rectangle":{let e=t;i.rect(e.x,e.y,e.width,e.height);break}case"roundedRectangle":{let e=t;$w(i,e.x,e.y,e.width,e.height,e.radius);break}case"circle":{let e=t;i.moveTo(e.x+e.radius,e.y),i.arc(e.x,e.y,e.radius,0,Math.PI*2);break}case"ellipse":{let e=t;i.ellipse?(i.moveTo(e.x+e.halfWidth,e.y),i.ellipse(e.x,e.y,e.halfWidth,e.halfHeight,0,0,Math.PI*2)):(i.save(),i.translate(e.x,e.y),i.scale(e.halfWidth,e.halfHeight),i.moveTo(1,0),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let e=t;i.moveTo(e.x,e.y),i.lineTo(e.x2,e.y2),i.lineTo(e.x3,e.y3),i.closePath();break}case"polygon":default:{let e=t,r=e.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);e.closePath&&i.closePath();break}}}function qw(i,t,e){let r=[],s=[],n=[];if(!Tr[t.type]?.build(t,r))return!1;let a=t.closePath??!0;Ki(r,e,!1,a,s,n);for(let l=0;l<n.length;l+=3){let c=n[l]*2,h=n[l+1]*2,u=n[l+2]*2;i.moveTo(s[c],s[c+1]),i.lineTo(s[h],s[h+1]),i.lineTo(s[u],s[u+1]),i.closePath()}return!0}function Kw(i,t){if(!t?.length)return!1;for(let e=0;e<t.length;e++){let r=t[e];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),nv(i,r.shape),n&&i.restore()}return!0}var Kn,ov=p(()=>{P();ol();yd();cl();ht();Kn=class{constructor(t){this._warnedMaskTypes=new Set,this._canvasMaskStack=[],this._renderer=t}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"popMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}execute(t){if(t.action!=="pushMaskBegin"&&t.action!=="popMaskEnd")return;let e=this._renderer,r=e.canvasContext,s=r?.activeContext;if(!s)return;if(t.action==="popMaskEnd"){this._canvasMaskStack.pop()&&s.restore();return}t.inverse&&this._warnOnce("inverse","CanvasRenderer: inverse masks are not supported on Canvas2D; ignoring inverse flag.");let n=t.mask.mask;if(!(n instanceof oe)){this._warnOnce("nonGraphics","CanvasRenderer: only Graphics masks are supported in Canvas2D; skipping mask."),this._canvasMaskStack.push(!1);return}let o=n,a=o.context?.instructions;if(!a?.length){this._canvasMaskStack.push(!1);return}s.save(),r.setContextTransform(o.groupTransform,(e._roundPixels|o._roundPixels)===1),s.beginPath();let l=!1,c=!1;for(let h=0;h<a.length;h++){let u=a[h],d=u.action;if(d!=="fill"&&d!=="stroke")continue;let f=u.data,m=f?.path?.shapePath;if(!m?.shapePrimitives?.length)continue;let g=d==="stroke",_=m.shapePrimitives;for(let x=0;x<_.length;x++){let b=_[x];if(!b?.shape)continue;let v=b.transform,S=v&&!v.isIdentity();S&&(s.save(),s.transform(v.a,v.b,v.c,v.d,v.tx,v.ty)),g&&f.style?l=qw(s,b.shape,f.style)||l:(nv(s,b.shape),c=Kw(s,b.holes)||c,l=!0),S&&s.restore()}}if(!l){s.restore(),this._canvasMaskStack.push(!1);return}c?s.clip("evenodd"):s.clip(),this._canvasMaskStack.push(!0)}destroy(){this._renderer=null,this._warnedMaskTypes=null,this._canvasMaskStack=null}_warnOnce(t,e){this._warnedMaskTypes.has(t)||(this._warnedMaskTypes.add(t),L(e))}};Kn.extension={type:[y.CanvasPipes],name:"stencilMask"}});function av(){let i=Yo(),t=Object.create(null);return t.inherit=_t,t.none=_t,t.normal="source-over",t.add="lighter",t.multiply=i?"multiply":_t,t.screen=i?"screen":_t,t.overlay=i?"overlay":_t,t.darken=i?"darken":_t,t.lighten=i?"lighten":_t,t["color-dodge"]=i?"color-dodge":_t,t["color-burn"]=i?"color-burn":_t,t["hard-light"]=i?"hard-light":_t,t["soft-light"]=i?"soft-light":_t,t.difference=i?"difference":_t,t.exclusion=i?"exclusion":_t,t.saturation=i?"saturation":_t,t.color=i?"color":_t,t.luminosity=i?"luminosity":_t,t["linear-burn"]=i?"color-burn":_t,t["linear-dodge"]=i?"color-dodge":_t,t["linear-light"]=i?"hard-light":_t,t["pin-light"]=i?"hard-light":_t,t["vivid-light"]=i?"hard-light":_t,t["hard-mix"]=_t,t.negation=i?"difference":_t,t["normal-npm"]=t.normal,t["add-npm"]=t.add,t["screen-npm"]=t.screen,t.erase="destination-out",t.subtract=_t,t.divide=_t,t.min=_t,t.max=_t,t}var _t,lv=p(()=>{Hc();_t="source-over"});var Zw,Zn,cv=p(()=>{Qt();P();ot();lv();Zw=new k,Zn=class{constructor(t){this.activeResolution=1,this.smoothProperty="imageSmoothingEnabled",this.blendModes=av(),this._activeBlendMode="normal",this._projTransform=null,this._outerBlend=!1,this._warnedBlendModes=new Set,this._renderer=t}resolutionChange(t){this.activeResolution=t}init(){let t=this._renderer.background.alpha<1;if(this.rootContext=this._renderer.canvas.getContext("2d",{alpha:t}),this.activeContext=this.rootContext,this.activeResolution=this._renderer.resolution,!this.rootContext.imageSmoothingEnabled){let e=this.rootContext;e.webkitImageSmoothingEnabled?this.smoothProperty="webkitImageSmoothingEnabled":e.mozImageSmoothingEnabled?this.smoothProperty="mozImageSmoothingEnabled":e.oImageSmoothingEnabled?this.smoothProperty="oImageSmoothingEnabled":e.msImageSmoothingEnabled&&(this.smoothProperty="msImageSmoothingEnabled")}}setContextTransform(t,e,r,s){let n=s?k.IDENTITY:this._renderer.globalUniforms.globalUniformData?.worldTransformMatrix||k.IDENTITY,o=Zw;o.copyFrom(n),o.append(t);let a=this._projTransform,l=this.activeResolution;if(r=r||l,a){let c=k.shared;c.copyFrom(o),c.prepend(a),o=c}e?this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*l|0,o.ty*l|0):this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*l,o.ty*l)}clear(t,e){let r=this.activeContext,s=this._renderer;if(r.clearRect(0,0,s.width,s.height),t){let n=Q.shared.setValue(t);r.globalAlpha=e??n.alpha,r.fillStyle=n.toHex(),r.fillRect(0,0,s.width,s.height),r.globalAlpha=1}}setBlendMode(t){if(this._activeBlendMode===t)return;this._activeBlendMode=t,this._outerBlend=!1;let e=this.blendModes[t];if(!e){this._warnedBlendModes.has(t)||(console.warn(`CanvasRenderer: blend mode "${t}" is not supported in Canvas2D; falling back to "source-over".`),this._warnedBlendModes.add(t)),this.activeContext.globalCompositeOperation="source-over";return}this.activeContext.globalCompositeOperation=e}destroy(){this.rootContext=null,this.activeContext=null,this._warnedBlendModes.clear()}};Zn.extension={type:[y.CanvasSystem],name:"canvasContext"}});var Qn,hv=p(()=>{P();Qn=class{constructor(){this.maxTextures=16,this.maxBatchableTextures=16,this.maxUniformBindings=0}init(){}};Qn.extension={type:[y.CanvasSystem],name:"limits"}});var _l,uv=p(()=>{Qt();xt();ht();fr();_l=class{init(t,e){this._renderer=t,this._renderTargetSystem=e}initGpuRenderTarget(t){let e=t.colorTexture,{canvas:r,context:s}=this._ensureCanvas(e);return{canvas:r,context:s,width:r.width,height:r.height}}resizeGpuRenderTarget(t){let e=t.colorTexture,{canvas:r}=this._ensureCanvas(e);r.width=t.pixelWidth,r.height=t.pixelHeight}startRenderPass(t,e,r,s){let n=this._renderTargetSystem.getGpuRenderTarget(t);this._renderer.canvasContext.activeContext=n.context,this._renderer.canvasContext.activeResolution=t.resolution,e&&this.clear(t,e,r,s)}clear(t,e,r,s){let o=this._renderTargetSystem.getGpuRenderTarget(t).context,a=s||{x:0,y:0,width:t.pixelWidth,height:t.pixelHeight};if(o.setTransform(1,0,0,1,0,0),o.clearRect(a.x,a.y,a.width,a.height),r){let l=Q.shared.setValue(r);l.alpha>0&&(o.globalAlpha=l.alpha,o.fillStyle=l.toHex(),o.fillRect(a.x,a.y,a.width,a.height),o.globalAlpha=1)}}finishRenderPass(){}copyToTexture(t,e,r,s,n){let a=this._renderTargetSystem.getGpuRenderTarget(t).canvas,l=e.source,{context:c}=this._ensureCanvas(l),h=n?.x??0,u=n?.y??0;return c.drawImage(a,r.x,r.y,s.width,s.height,h,u,s.width,s.height),l.update(),e}copyDepthTexture(t,e,r,s,n){L("[CanvasRenderTargetAdaptor] copyDepthTexture is not supported in the canvas renderer")}destroyGpuRenderTarget(t){}_ensureCanvas(t){let e=t.resource;(!e||!wt.test(e))&&(e=W.get().createCanvas(t.pixelWidth,t.pixelHeight),t.resource=e),(e.width!==t.pixelWidth||e.height!==t.pixelHeight)&&(e.width=t.pixelWidth,e.height=t.pixelHeight);let r=e.getContext("2d");return{canvas:e,context:r}}}});var Jn,dv=p(()=>{P();Ha();uv();Jn=class extends Sr{constructor(t){super(t),this.adaptor=new _l,this.adaptor.init(t,this)}};Jn.extension={type:[y.CanvasSystem],name:"renderTarget"}});var to,fv=p(()=>{xt();P();Ei();to=class{constructor(t){}init(){}initSource(t){}generateCanvas(t){let e=W.get().createCanvas(),r=e.getContext("2d"),s=Z.getCanvasSource(t);if(!s)return e;let n=t.frame,o=t.source._resolution??t.source.resolution??1,a=n.x*o,l=n.y*o,c=n.width*o,h=n.height*o;return e.width=Math.ceil(c),e.height=Math.ceil(h),r.drawImage(s,a,l,c,h,0,0,c,h),e}getPixels(t){let e=this.generateCanvas(t);return{pixels:e.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,e.width,e.height).data,width:e.width,height:e.height}}destroy(){}};to.extension={type:[y.CanvasSystem],name:"texture"}});var xv={};Vl(xv,{CanvasRenderer:()=>bd});var Qw,Jw,tC,pv,mv,gv,bd,_v=p(()=>{P();Ih();Fh();f0();Lh();m0();qh();Qh();g0();ov();tu();Vr();Da();Ne();cv();hv();dv();fv();Qw=[...Xi,Zn,Qn,to,Jn],Jw=[Kr,hn,Yr,Xr,qr,Kn,Xn,jr],tC=[p0,jn],pv=[],mv=[],gv=[];z.handleByNamedList(y.CanvasSystem,pv);z.handleByNamedList(y.CanvasPipes,mv);z.handleByNamedList(y.CanvasPipesAdaptor,gv);z.add(...Qw,...Jw,...tC);bd=class extends Te{constructor(){let t={name:"canvas",type:Lt.CANVAS,systems:pv,renderPipes:mv,renderPipeAdaptors:gv};super(t)}}});function Mv(i=1e3,t=0,e=!1){if(isNaN(i)||i<0)throw new TypeError("Invalid max value");if(isNaN(t)||t<0)throw new TypeError("Invalid ttl value");if(typeof e!="boolean")throw new TypeError("Invalid resetTtl value");return new Sd(i,t,e)}var Sd,Av=p(()=>{Sd=class{constructor(t=0,e=0,r=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.resetTtl=r,this.size=0,this.ttl=e}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(t){if(this.has(t)){let e=this.items[t];delete this.items[t],this.size--,e.prev!==null&&(e.prev.next=e.next),e.next!==null&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),this.last===e&&(this.last=e.prev)}return this}entries(t=this.keys()){let e=new Array(t.length);for(let r=0;r<t.length;r++){let s=t[r];e[r]=[s,this.get(s)]}return e}evict(t=!1){if(t||this.size>0){let e=this.first;delete this.items[e.key],--this.size===0?(this.first=null,this.last=null):(this.first=e.next,this.first.prev=null)}return this}expiresAt(t){let e;return this.has(t)&&(e=this.items[t].expiry),e}get(t){let e=this.items[t];if(e!==void 0){if(this.ttl>0&&e.expiry<=Date.now()){this.delete(t);return}return this.moveToEnd(e),e.value}}has(t){return t in this.items}moveToEnd(t){this.last!==t&&(t.prev!==null&&(t.prev.next=t.next),t.next!==null&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),t.prev=this.last,t.next=null,this.last!==null&&(this.last.next=t),this.last=t,this.first===null&&(this.first=t))}keys(){let t=new Array(this.size),e=this.first,r=0;for(;e!==null;)t[r++]=e.key,e=e.next;return t}setWithEvicted(t,e,r=this.resetTtl){let s=null;if(this.has(t))this.set(t,e,!0,r);else{this.max>0&&this.size===this.max&&(s={...this.first},this.evict(!0));let n=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e};++this.size===1?this.first=n:this.last.next=n,this.last=n}return s}set(t,e,r=!1,s=this.resetTtl){let n=this.items[t];return r||n!==void 0?(n.value=e,r===!1&&s&&(n.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.moveToEnd(n)):(this.max>0&&this.size===this.max&&this.evict(!0),n=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e},++this.size===1?this.first=n:this.last.next=n,this.last=n),this}values(t=this.keys()){let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=this.get(t[r]);return e}}});function Td(i){return!!i.tagStyles&&Object.keys(i.tagStyles).length>0}function wd(i){return i.includes("<")}function rC(i,t){return i.clone().assign(t)}function Rv(i,t){let e=[],r=t.tagStyles;if(!Td(t)||!wd(i))return e.push({text:i,style:t}),e;let s=[t],n=[],o="",a=0;for(;a<i.length;){let l=i[a];if(l==="<"){let c=i.indexOf(">",a);if(c===-1){o+=l,a++;continue}let h=i.indexOf("<",a+1);if(h!==-1&&h<c){o+=l,a++;continue}let u=i.slice(a+1,c);if(u.startsWith("/")){let d=u.slice(1).trim();if(n.length>0&&n[n.length-1]===d){o.length>0&&(e.push({text:o,style:s[s.length-1]}),o=""),s.pop(),n.pop(),a=c+1;continue}else{o+=i.slice(a,c+1),a=c+1;continue}}else{let d=u.trim();if(r[d]){o.length>0&&(e.push({text:o,style:s[s.length-1]}),o="");let f=s[s.length-1],m=rC(f,r[d]);s.push(m),n.push(d),a=c+1;continue}else{o+=i.slice(a,c+1),a=c+1;continue}}}else o+=l,a++}return o.length>0&&e.push({text:o,style:s[s.length-1]}),e}var Cd=p(()=>{"use strict"});function rs(i){return typeof i!="string"?!1:sC.has(i.charCodeAt(0))}function ae(i,t){return typeof i!="string"?!1:oC.has(i.charCodeAt(0))}function hC(i){return typeof i!="string"?!1:cC.has(i.charCodeAt(0))}function Tl(i){return i==="normal"||i==="pre-line"}function wl(i){return i==="normal"}function Fe(i){if(typeof i!="string")return"";let t=i.length-1;for(;t>=0&&ae(i[t]);)t--;return t<i.length-1?i.slice(0,t+1):i}function Cl(i){let t=[],e=[];if(typeof i!="string")return t;for(let r=0;r<i.length;r++){let s=i[r],n=i[r+1];if(ae(s,n)||rs(s)){e.length>0&&(t.push(e.join("")),e.length=0),s==="\r"&&n===`
|
|
906
|
+
`))}var cb=p(()=>{Cn();me();wn();ab()});var ei,Iu=p(()=>{P();cb();ei=class{constructor(t){this._cache={},this._uniformGroupSyncHash={},this._renderer=t,this.gl=null,this._cache={}}contextChange(t){this.gl=t}updateUniformGroup(t,e,r){let s=this._renderer.shader._getProgramData(e);(!t.isStatic||t._dirtyId!==s.uniformDirtyGroups[t.uid])&&(s.uniformDirtyGroups[t.uid]=t._dirtyId,this._getUniformSyncFunction(t,e)(s.uniformData,t.uniforms,this._renderer,r))}_getUniformSyncFunction(t,e){return this._uniformGroupSyncHash[t._signature]?.[e._key]||this._createUniformSyncFunction(t,e)}_createUniformSyncFunction(t,e){let r=this._uniformGroupSyncHash[t._signature]||(this._uniformGroupSyncHash[t._signature]={}),s=this._getSignature(t,e._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(t,e._uniformData)),r[e._key]=this._cache[s],r[e._key]}_generateUniformsSync(t,e){return lb(t,e)}_getSignature(t,e,r){let s=t.uniforms,n=[`${r}-`];for(let o in s)n.push(o),e[o]&&n.push(e[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};ei.extension={type:[y.WebGLSystem],name:"uniformGroup"}});function hb(i){let t={};if(t.normal=[i.ONE,i.ONE_MINUS_SRC_ALPHA],t.add=[i.ONE,i.ONE],t.multiply=[i.DST_COLOR,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.screen=[i.ONE,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.none=[0,0],t["normal-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],t["add-npm"]=[i.SRC_ALPHA,i.ONE,i.ONE,i.ONE],t["screen-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],t.erase=[i.ZERO,i.ONE_MINUS_SRC_ALPHA],!(i instanceof W.get().getWebGLRenderingContext()))t.min=[i.ONE,i.ONE,i.ONE,i.ONE,i.MIN,i.MIN],t.max=[i.ONE,i.ONE,i.ONE,i.ONE,i.MAX,i.MAX];else{let r=i.getExtension("EXT_blend_minmax");r&&(t.min=[i.ONE,i.ONE,i.ONE,i.ONE,r.MIN_EXT,r.MIN_EXT],t.max=[i.ONE,i.ONE,i.ONE,i.ONE,r.MAX_EXT,r.MAX_EXT])}return t}var ub=p(()=>{xt()});var $T,qT,KT,ZT,QT,db,fb,pb,mb=p(()=>{P();Be();ub();({BLEND:$T,OFFSET:qT,CULLING:KT,DEPTH_TEST:ZT,WINDING:QT,DEPTH_MASK:db}=lh),fb=class Gu{constructor(t){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[$T]=this.setBlend,this.map[qT]=this.setOffset,this.map[KT]=this.setCullFace,this.map[ZT]=this.setDepthTest,this.map[QT]=this.setFrontFace,this.map[db]=this.setDepthMask,this.checks=[],this.defaultState=Ot.for2d(),t.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(t){this._invertFrontFace=!t.isRoot!=!!t.flipY,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(t){this.gl=t,this.blendModesMap=hb(t),this.resetState()}set(t){if(t||(t=this.defaultState),this.stateId!==t.data){let e=this.stateId^t.data,r=0;for(;e;)e&1&&this.map[r].call(this,!!(t.data&1<<r)),e>>=1,r++;this.stateId=t.data}for(let e=0;e<this.checks.length;e++)this.checks[e](this,t)}forceState(t){t||(t=this.defaultState);for(let e=0;e<this.map.length;e++)this.map[e].call(this,!!(t.data&1<<e));for(let e=0;e<this.checks.length;e++)this.checks[e](this,t);this.stateId=t.data}setBlend(t){this._updateCheck(Gu._checkBlendMode,t),this.gl[t?"enable":"disable"](this.gl.BLEND)}setOffset(t){this._updateCheck(Gu._checkPolygonOffset,t),this.gl[t?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(t){this.gl[t?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(t){this.gl.depthMask(t)}get depthMaskEnabled(){return!!(this.stateId&1<<db)}setCullFace(t){this._cullFace=t,this.gl[t?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(t){this._frontFace=t,this._frontFaceDirty=!1;let e=this._invertFrontFace?!t:t;this._glFrontFace!==e&&(this._glFrontFace=e,this.gl.frontFace(this.gl[e?"CW":"CCW"]))}setBlendMode(t){if(this.blendModesMap[t]||(t="normal"),t===this.blendMode)return;this.blendMode=t;let e=this.blendModesMap[t],r=this.gl;e.length===2?r.blendFunc(e[0],e[1]):r.blendFuncSeparate(e[0],e[1],e[2],e[3]),e.length===6?(this._blendEq=!0,r.blendEquationSeparate(e[4],e[5])):this._blendEq&&(this._blendEq=!1,r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD))}setPolygonOffset(t,e){this.gl.polygonOffset(t,e)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(t,e){let r=this.checks.indexOf(t);e&&r===-1?this.checks.push(t):!e&&r!==-1&&this.checks.splice(r,1)}static _checkBlendMode(t,e){t.setBlendMode(e.blendMode)}static _checkPolygonOffset(t,e){t.setPolygonOffset(1,e.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};fb.extension={type:[y.WebGLSystem],name:"state"};pb=fb});var sl,gb=p(()=>{Ka();sl=class{constructor(t){this.target=Dn.TEXTURE_2D,this._layerInitMask=0,this.texture=t,this.width=-1,this.height=-1,this.type=at.UNSIGNED_BYTE,this.internalFormat=qa.RGBA,this.format=qa.RGBA,this.samplerType=0}destroy(){}}});var xb,_b=p(()=>{"use strict";xb={id:"buffer",upload(i,t,e,r,s,n=!1){let o=s||t.target;!n&&t.width===i.width&&t.height===i.height?e.texSubImage2D(o,0,0,0,i.width,i.height,t.format,t.type,i.resource):e.texImage2D(o,0,t.internalFormat,i.width,i.height,0,t.format,t.type,i.resource),t.width=i.width,t.height=i.height}}});var JT,yb,bb=p(()=>{"use strict";JT={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},yb={id:"compressed",upload(i,t,e,r,s,n){let o=s??t.target;e.pixelStorei(e.UNPACK_ALIGNMENT,4);let a=i.pixelWidth,l=i.pixelHeight,c=!!JT[i.format];for(let h=0;h<i.resource.length;h++){let u=i.resource[h];c?e.compressedTexImage2D(o,h,t.internalFormat,a,l,0,u):e.texImage2D(o,h,t.internalFormat,a,l,0,t.format,t.type,u),a=Math.max(a>>1,1),l=Math.max(l>>1,1)}}}});function Sb(i){return{id:"cube",upload(t,e,r,s){let n=t.faces;for(let o=0;o<vb.length;o++){let a=vb[o],l=n[a];if(!l.resource)continue;(i[l.uploadMethodId]||i.image).upload(l,e,r,s,Dn.TEXTURE_CUBE_MAP_POSITIVE_X+o,(e._layerInitMask&1<<o)===0),e._layerInitMask|=1<<o}e.width=t.pixelWidth,e.height=t.pixelHeight}}}var vb,Tb=p(()=>{Ka();vb=["right","left","top","bottom","front","back"]});function tw(i,t,e,r,s,n,o,a,l,c){if(!c){l&&i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,null),i.texSubImage2D(t,0,0,0,n,o,e.format,e.type,a);return}if(!l){i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,a)}function ew(i,t,e,r,s,n,o,a,l,c){if(!c){l&&i.texImage2D(t,0,e.internalFormat,r,s,0,e.format,e.type,null),i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}if(!l){i.texSubImage2D(t,0,0,0,e.format,e.type,a);return}i.texImage2D(t,0,e.internalFormat,e.format,e.type,a)}var nl,Fu=p(()=>{"use strict";nl={id:"image",upload(i,t,e,r,s,n=!1){let o=s||t.target,a=i.pixelWidth,l=i.pixelHeight,c=i.resourceWidth,h=i.resourceHeight,u=r===2,d=n||t.width!==a||t.height!==l,f=c>=a&&h>=l,m=i.resource;(u?tw:ew)(e,o,t,a,l,c,h,m,d,f),t.width=a,t.height=l}}});function wb(){let{userAgent:i}=W.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var Cb=p(()=>{xt()});var rw,Eb,Pb=p(()=>{Cb();Fu();rw=wb(),Eb={id:"video",upload(i,t,e,r,s,n=rw){if(!i.isValid){let o=s??t.target;e.texImage2D(o,0,t.internalFormat,1,1,0,t.format,t.type,null);return}nl.upload(i,t,e,r,s,n)}}});var Uu,Mb,ol,Ab,Rb=p(()=>{"use strict";Uu={linear:9729,nearest:9728},Mb={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},ol={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},Ab={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function Du(i,t,e,r,s,n,o,a){let l=n;if(!a||i.addressModeU!=="repeat"||i.addressModeV!=="repeat"||i.addressModeW!=="repeat"){let c=ol[o?"clamp-to-edge":i.addressModeU],h=ol[o?"clamp-to-edge":i.addressModeV],u=ol[o?"clamp-to-edge":i.addressModeW];t[s](l,t.TEXTURE_WRAP_S,c),t[s](l,t.TEXTURE_WRAP_T,h),t.TEXTURE_WRAP_R&&t[s](l,t.TEXTURE_WRAP_R,u)}if((!a||i.magFilter!=="linear")&&t[s](l,t.TEXTURE_MAG_FILTER,Uu[i.magFilter]),e){if(!a||i.mipmapFilter!=="linear"){let c=Mb[i.minFilter][i.mipmapFilter];t[s](l,t.TEXTURE_MIN_FILTER,c)}}else t[s](l,t.TEXTURE_MIN_FILTER,Uu[i.minFilter]);if(r&&i.maxAnisotropy>1){let c=Math.min(i.maxAnisotropy,t.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT));t[s](l,r.TEXTURE_MAX_ANISOTROPY_EXT,c)}i.compare?(t[s](l,t.TEXTURE_COMPARE_FUNC,Ab[i.compare]),t[s](l,t.TEXTURE_COMPARE_MODE,t.COMPARE_REF_TO_TEXTURE)):a||t[s](l,t.TEXTURE_COMPARE_MODE,t.NONE)}var kb=p(()=>{Rb()});function Bb(i){return{r8unorm:i.RED,r8snorm:i.RED,r8uint:i.RED,r8sint:i.RED,r16uint:i.RED,r16sint:i.RED,r16float:i.RED,rg8unorm:i.RG,rg8snorm:i.RG,rg8uint:i.RG,rg8sint:i.RG,r32uint:i.RED,r32sint:i.RED,r32float:i.RED,rg16uint:i.RG,rg16sint:i.RG,rg16float:i.RG,rgba8unorm:i.RGBA,"rgba8unorm-srgb":i.RGBA,rgba8snorm:i.RGBA,rgba8uint:i.RGBA,rgba8sint:i.RGBA,bgra8unorm:i.RGBA,"bgra8unorm-srgb":i.RGBA,rgb9e5ufloat:i.RGB,rgb10a2unorm:i.RGBA,rg11b10ufloat:i.RGB,rg32uint:i.RG,rg32sint:i.RG,rg32float:i.RG,rgba16uint:i.RGBA,rgba16sint:i.RGBA,rgba16float:i.RGBA,rgba32uint:i.RGBA,rgba32sint:i.RGBA,rgba32float:i.RGBA,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT,depth24plus:i.DEPTH_COMPONENT,"depth24plus-stencil8":i.DEPTH_STENCIL,depth32float:i.DEPTH_COMPONENT,"depth32float-stencil8":i.DEPTH_STENCIL}}var Ib=p(()=>{"use strict"});function Gb(i,t){let e={},r=i.RGBA;return i instanceof W.get().getWebGLRenderingContext()?t.srgb&&(e={"rgba8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT}):(e={"rgba8unorm-srgb":i.SRGB8_ALPHA8,"bgra8unorm-srgb":i.SRGB8_ALPHA8},r=i.RGBA8),{r8unorm:i.R8,r8snorm:i.R8_SNORM,r8uint:i.R8UI,r8sint:i.R8I,r16uint:i.R16UI,r16sint:i.R16I,r16float:i.R16F,rg8unorm:i.RG8,rg8snorm:i.RG8_SNORM,rg8uint:i.RG8UI,rg8sint:i.RG8I,r32uint:i.R32UI,r32sint:i.R32I,r32float:i.R32F,rg16uint:i.RG16UI,rg16sint:i.RG16I,rg16float:i.RG16F,rgba8unorm:i.RGBA,...e,rgba8snorm:i.RGBA8_SNORM,rgba8uint:i.RGBA8UI,rgba8sint:i.RGBA8I,bgra8unorm:r,rgb9e5ufloat:i.RGB9_E5,rgb10a2unorm:i.RGB10_A2,rg11b10ufloat:i.R11F_G11F_B10F,rg32uint:i.RG32UI,rg32sint:i.RG32I,rg32float:i.RG32F,rgba16uint:i.RGBA16UI,rgba16sint:i.RGBA16I,rgba16float:i.RGBA16F,rgba32uint:i.RGBA32UI,rgba32sint:i.RGBA32I,rgba32float:i.RGBA32F,stencil8:i.STENCIL_INDEX8,depth16unorm:i.DEPTH_COMPONENT16,depth24plus:i.DEPTH_COMPONENT24,"depth24plus-stencil8":i.DEPTH24_STENCIL8,depth32float:i.DEPTH_COMPONENT32F,"depth32float-stencil8":i.DEPTH32F_STENCIL8,...t.s3tc?{"bc1-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...t.s3tc_sRGB?{"bc1-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...t.rgtc?{"bc4-r-unorm":t.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":t.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":t.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":t.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...t.bptc?{"bc6h-rgb-float":t.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":t.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":t.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":t.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...t.etc?{"etc2-rgb8unorm":t.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":t.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":t.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":t.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":t.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":t.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":t.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":t.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...t.astc?{"astc-4x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var Fb=p(()=>{xt()});function Ub(i){return{r8unorm:i.UNSIGNED_BYTE,r8snorm:i.BYTE,r8uint:i.UNSIGNED_BYTE,r8sint:i.BYTE,r16uint:i.UNSIGNED_SHORT,r16sint:i.SHORT,r16float:i.HALF_FLOAT,rg8unorm:i.UNSIGNED_BYTE,rg8snorm:i.BYTE,rg8uint:i.UNSIGNED_BYTE,rg8sint:i.BYTE,r32uint:i.UNSIGNED_INT,r32sint:i.INT,r32float:i.FLOAT,rg16uint:i.UNSIGNED_SHORT,rg16sint:i.SHORT,rg16float:i.HALF_FLOAT,rgba8unorm:i.UNSIGNED_BYTE,"rgba8unorm-srgb":i.UNSIGNED_BYTE,rgba8snorm:i.BYTE,rgba8uint:i.UNSIGNED_BYTE,rgba8sint:i.BYTE,bgra8unorm:i.UNSIGNED_BYTE,"bgra8unorm-srgb":i.UNSIGNED_BYTE,rgb9e5ufloat:i.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:i.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:i.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:i.UNSIGNED_INT,rg32sint:i.INT,rg32float:i.FLOAT,rgba16uint:i.UNSIGNED_SHORT,rgba16sint:i.SHORT,rgba16float:i.HALF_FLOAT,rgba32uint:i.UNSIGNED_INT,rgba32sint:i.INT,rgba32float:i.FLOAT,stencil8:i.UNSIGNED_BYTE,depth16unorm:i.UNSIGNED_SHORT,depth24plus:i.UNSIGNED_INT,"depth24plus-stencil8":i.UNSIGNED_INT_24_8,depth32float:i.FLOAT,"depth32float-stencil8":i.FLOAT_32_UNSIGNED_INT_24_8_REV}}var Db=p(()=>{"use strict"});function Lb(i){return{"2d":i.TEXTURE_2D,cube:i.TEXTURE_CUBE_MAP,"1d":null,"3d":i?.TEXTURE_3D||null,"2d-array":i?.TEXTURE_2D_ARRAY||null,"cube-array":i?.TEXTURE_CUBE_MAP_ARRAY||null}}var Ob=p(()=>{"use strict"});var iw,Lu,Ou,zb=p(()=>{xt();P();Ie();gt();gb();_b();bb();Tb();Fu();Pb();kb();Ib();Fb();Db();Ob();iw=4,Lu=class Nb{constructor(t){this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=t,this._managedTextures=new kt({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"glTexture"});let e={image:nl,buffer:xb,video:Eb,compressed:yb,...Nb.uploadExtensions};this._uploads={...e,cube:Sb(e)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(t){this._gl=t,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=Gb(t,this._renderer.context.extensions),this._mapFormatToType=Ub(t),this._mapFormatToFormat=Bb(t),this._mapViewDimensionToGlTarget=Lb(t)),this._managedTextures.removeAll(!0),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let e=0;e<16;e++)this.bind(F.EMPTY,e)}initSource(t){this.bind(t)}bind(t,e=0){let r=t.source;t?(this.bindSource(r,e),this._useSeparateSamplers&&this._bindSampler(r.style,e)):(this.bindSource(null,e),this._useSeparateSamplers&&this._bindSampler(null,e))}bindSource(t,e=0){let r=this._gl;if(t._gcLastUsed=this._renderer.gc.now,this._boundTextures[e]!==t){this._boundTextures[e]=t,this._activateLocation(e),t||(t=F.EMPTY.source);let s=this.getGlSource(t);r.bindTexture(s.target,s.texture)}}_bindSampler(t,e=0){let r=this._gl;if(!t){this._boundSamplers[e]=null,r.bindSampler(e,null);return}let s=this._getGlSampler(t);this._boundSamplers[e]!==s&&(this._boundSamplers[e]=s,r.bindSampler(e,s))}unbind(t){let e=t.source,r=this._boundTextures,s=this._gl;for(let n=0;n<r.length;n++)if(r[n]===e){this._activateLocation(n);let o=this.getGlSource(e);s.bindTexture(o.target,null),r[n]=null}}_activateLocation(t){this._activeTextureLocation!==t&&(this._activeTextureLocation=t,this._gl.activeTexture(this._gl.TEXTURE0+t))}_initSource(t){let e=this._gl,r=new sl(e.createTexture());if(r.type=this._mapFormatToType[t.format],r.internalFormat=this._mapFormatToInternalFormat[t.format],r.format=this._mapFormatToFormat[t.format],r.target=this._mapViewDimensionToGlTarget[t.viewDimension],r.target===null)throw new Error(`Unsupported view dimension: ${t.viewDimension} with this webgl version: ${this._renderer.context.webGLVersion}`);if(t.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||t.isPowerOfTwo)){let n=Math.max(t.width,t.height);t.mipLevelCount=Math.floor(Math.log2(n))+1}return t._gpuData[this._renderer.uid]=r,this._managedTextures.add(t)&&(t.on("update",this.onSourceUpdate,this),t.on("resize",this.onSourceUpdate,this),t.on("styleChange",this.onStyleChange,this),t.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(t),this.updateStyle(t,!1),r}onStyleChange(t){this.updateStyle(t,!1)}updateStyle(t,e){let r=this._gl,s=this.getGlSource(t);r.bindTexture(s.target,s.texture),this._boundTextures[this._activeTextureLocation]=t,Du(t.style,r,t.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",s.target,!this._renderer.context.supports.nonPowOf2wrapping&&!t.isPowerOfTwo,e)}onSourceUnload(t,e=!1){let r=t._gpuData[this._renderer.uid];r&&(e||(this.unbind(t),this._gl.deleteTexture(r.texture)),t.off("update",this.onSourceUpdate,this),t.off("resize",this.onSourceUpdate,this),t.off("styleChange",this.onStyleChange,this),t.off("updateMipmaps",this.onUpdateMipmaps,this))}onSourceUpdate(t){let e=this._gl,r=this.getGlSource(t);e.bindTexture(r.target,r.texture),this._boundTextures[this._activeTextureLocation]=t;let s=t.alphaMode==="premultiply-alpha-on-upload";if(this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[t.uploadMethodId])this._uploads[t.uploadMethodId].upload(t,r,e,this._renderer.context.webGLVersion);else if(r.target===e.TEXTURE_2D)this._initEmptyTexture2D(r,t);else if(r.target===e.TEXTURE_2D_ARRAY)this._initEmptyTexture2DArray(r,t);else if(r.target===e.TEXTURE_CUBE_MAP)this._initEmptyTextureCube(r,t);else throw new Error("[GlTextureSystem] Unsupported texture target for empty allocation.");this._applyMipRange(r,t),t.autoGenerateMipmaps&&t.mipLevelCount>1&&this.onUpdateMipmaps(t,!1)}onUpdateMipmaps(t,e=!0){e&&this.bindSource(t,0);let r=this.getGlSource(t);this._gl.generateMipmap(r.target)}_initEmptyTexture2D(t,e){let r=this._gl;r.texImage2D(r.TEXTURE_2D,0,t.internalFormat,e.pixelWidth,e.pixelHeight,0,t.format,t.type,null);let s=Math.max(e.pixelWidth>>1,1),n=Math.max(e.pixelHeight>>1,1);for(let o=1;o<e.mipLevelCount;o++)r.texImage2D(r.TEXTURE_2D,o,t.internalFormat,s,n,0,t.format,t.type,null),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}_initEmptyTexture2DArray(t,e){if(this._renderer.context.webGLVersion!==2)throw new Error("[GlTextureSystem] TEXTURE_2D_ARRAY requires WebGL2.");let r=this._gl,s=Math.max(e.arrayLayerCount|0,1);r.texImage3D(r.TEXTURE_2D_ARRAY,0,t.internalFormat,e.pixelWidth,e.pixelHeight,s,0,t.format,t.type,null);let n=Math.max(e.pixelWidth>>1,1),o=Math.max(e.pixelHeight>>1,1);for(let a=1;a<e.mipLevelCount;a++)r.texImage3D(r.TEXTURE_2D_ARRAY,a,t.internalFormat,n,o,s,0,t.format,t.type,null),n=Math.max(n>>1,1),o=Math.max(o>>1,1)}_initEmptyTextureCube(t,e){let r=this._gl,s=6;for(let a=0;a<s;a++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+a,0,t.internalFormat,e.pixelWidth,e.pixelHeight,0,t.format,t.type,null);let n=Math.max(e.pixelWidth>>1,1),o=Math.max(e.pixelHeight>>1,1);for(let a=1;a<e.mipLevelCount;a++){for(let l=0;l<s;l++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+l,a,t.internalFormat,n,o,0,t.format,t.type,null);n=Math.max(n>>1,1),o=Math.max(o>>1,1)}}_applyMipRange(t,e){if(this._renderer.context.webGLVersion!==2||e.mipLevelCount<=1)return;let r=this._gl,s=Math.max((e.mipLevelCount|0)-1,0);r.texParameteri(t.target,r.TEXTURE_BASE_LEVEL,0),r.texParameteri(t.target,r.TEXTURE_MAX_LEVEL,s)}_initSampler(t){let e=this._gl,r=this._gl.createSampler();return this._glSamplers[t._resourceId]=r,Du(t,e,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1,!0),this._glSamplers[t._resourceId]}_getGlSampler(t){return this._glSamplers[t._resourceId]||this._initSampler(t)}getGlSource(t){return t._gcLastUsed=this._renderer.gc.now,t._gpuData[this._renderer.uid]||this._initSource(t)}generateCanvas(t){let{pixels:e,width:r,height:s}=this.getPixels(t),n=W.get().createCanvas();n.width=r,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(r,s);a.data.set(e),o.putImageData(a,0,0)}return n}getPixels(t){let e=t.source.resolution,r=t.frame,s=Math.max(Math.round(r.width*e),1),n=Math.max(Math.round(r.height*e),1),o=new Uint8Array(iw*s*n),a=this._renderer,l=a.renderTarget.getRenderTarget(t),c=a.renderTarget.getGpuRenderTarget(l),h=a.gl;return a.renderTarget.adaptor.bindFramebuffer(c.resolveTargetFramebuffer),h.readPixels(Math.round(r.x*e),Math.round(r.y*e),s,n,h.RGBA,h.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:s,height:n}}destroy(){this._managedTextures.destroy(),this._glSamplers=null,this._boundTextures=null,this._boundSamplers=null,this._mapFormatToInternalFormat=null,this._mapFormatToType=null,this._mapFormatToFormat=null,this._uploads=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(F.EMPTY.source),this._boundSamplers=Object.create(null);let t=this._gl;this._premultiplyAlpha=!1,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};Lu.extension={type:[y.WebGLSystem],name:"texture"};Lu.uploadExtensions=Object.create(null);Ou=Lu;z.handleByMap(y.TextureUploaderWebGL,Ou.uploadExtensions)});var jb={};Vl(jb,{WebGLRenderer:()=>Nu});var sw,nw,ow,Hb,Wb,Vb,Nu,Xb=p(()=>{P();py();my();gy();Vr();La();Ne();yy();Sy();Ey();Ay();Ry();ky();By();Iy();Cu();zy();Bu();Iu();mb();zb();sw=[...Yi,Jr,My,vy,zn,Un,Ou,Vn,Ln,ei,ti,Nn,pb,Hn,On],nw=[...Da],ow=[Gn,In,Bn],Hb=[],Wb=[],Vb=[];z.handleByNamedList(y.WebGLSystem,Hb);z.handleByNamedList(y.WebGLPipes,Wb);z.handleByNamedList(y.WebGLPipesAdaptor,Vb);z.add(...sw,...nw,...ow);Nu=class extends Te{constructor(){let t={name:"webgl",type:Lt.WEBGL,systems:Hb,renderPipes:Wb,renderPipeAdaptors:Vb};super(t)}}});function Yb(i,t,e,r,s,n,o,a){let l=i-e*s,c=t-r*s,h=i+e*n,u=t+r*n,d,f;o?(d=r,f=-e):(d=-r,f=e);let m=l+d,g=c+f,_=h+d,x=u+f;return a.push(m,g),a.push(_,x),2}function ri(i,t,e,r,s,n,o,a){let l=e-i,c=r-t,h=Math.atan2(l,c),u=Math.atan2(s-i,n-t);a&&h<u?h+=Math.PI*2:!a&&h>u&&(u+=Math.PI*2);let d=h,f=u-h,m=Math.abs(f),g=Math.sqrt(l*l+c*c),_=(15*m*Math.sqrt(g)/Math.PI>>0)+1,x=f/_;if(d+=x,a){o.push(i,t),o.push(e,r);for(let b=1,v=d;b<_;b++,v+=x)o.push(i,t),o.push(i+Math.sin(v)*g,t+Math.cos(v)*g);o.push(i,t),o.push(s,n)}else{o.push(e,r),o.push(i,t);for(let b=1,v=d;b<_;b++,v+=x)o.push(i+Math.sin(v)*g,t+Math.cos(v)*g),o.push(i,t);o.push(s,n),o.push(i,t)}return _*2}function Zi(i,t,e,r,s,n){let o=1e-4;if(i.length===0)return;let a=t,l=a.alignment;if(t.alignment!==.5){let G=Ko(i);e&&(G*=-1),l=(l-.5)*G+.5}let c=new nt(i[0],i[1]),h=new nt(i[i.length-2],i[i.length-1]),u=r,d=Math.abs(c.x-h.x)<o&&Math.abs(c.y-h.y)<o;if(u){i=i.slice(),d&&(i.pop(),i.pop(),h.set(i[i.length-2],i[i.length-1]));let G=(c.x+h.x)*.5,Y=(h.y+c.y)*.5;i.unshift(G,Y),i.push(G,Y)}let f=s,m=i.length/2,g=i.length,_=f.length/2,x=a.width/2,b=x*x,v=a.miterLimit*a.miterLimit,S=i[0],T=i[1],w=i[2],E=i[3],B=0,R=0,M=-(T-E),C=S-w,A=0,D=0,H=Math.sqrt(M*M+C*C);M/=H,C/=H,M*=x,C*=x;let K=l,I=(1-K)*2,U=K*2;u||(a.cap==="round"?g+=ri(S-M*(I-U)*.5,T-C*(I-U)*.5,S-M*I,T-C*I,S+M*U,T+C*U,f,!0)+2:a.cap==="square"&&(g+=Yb(S,T,M,C,I,U,!0,f))),f.push(S-M*I,T-C*I),f.push(S+M*U,T+C*U);for(let G=1;G<m-1;++G){S=i[(G-1)*2],T=i[(G-1)*2+1],w=i[G*2],E=i[G*2+1],B=i[(G+1)*2],R=i[(G+1)*2+1],M=-(T-E),C=S-w,H=Math.sqrt(M*M+C*C),M/=H,C/=H,M*=x,C*=x,A=-(E-R),D=w-B,H=Math.sqrt(A*A+D*D),A/=H,D/=H,A*=x,D*=x;let Y=w-S,pt=T-E,wt=w-B,lt=R-E,ft=Y*wt+pt*lt,q=pt*wt-lt*Y,jt=q<0;if(Math.abs(q)<.001*Math.abs(ft)){f.push(w-M*I,E-C*I),f.push(w+M*U,E+C*U),ft>=0&&(a.join==="round"?g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+4:g+=2,f.push(w-A*U,E-D*U),f.push(w+A*I,E+D*I));continue}let ui=(-M+S)*(-C+E)-(-M+w)*(-C+T),Cr=(-A+B)*(-D+E)-(-A+w)*(-D+R),N=(Y*Cr-wt*ui)/q,et=(lt*ui-pt*Cr)/q,ct=(N-w)*(N-w)+(et-E)*(et-E),It=w+(N-w)*I,St=E+(et-E)*I,Kt=w-(N-w)*U,Bt=E-(et-E)*U,xe=Math.min(Y*Y+pt*pt,wt*wt+lt*lt),Xt=jt?I:U,$e=xe+Xt*Xt*b;ct<=$e?a.join==="bevel"||ct/b>v?(jt?(f.push(It,St),f.push(w+M*U,E+C*U),f.push(It,St),f.push(w+A*U,E+D*U)):(f.push(w-M*I,E-C*I),f.push(Kt,Bt),f.push(w-A*I,E-D*I),f.push(Kt,Bt)),g+=2):a.join==="round"?jt?(f.push(It,St),f.push(w+M*U,E+C*U),g+=ri(w,E,w+M*U,E+C*U,w+A*U,E+D*U,f,!0)+4,f.push(It,St),f.push(w+A*U,E+D*U)):(f.push(w-M*I,E-C*I),f.push(Kt,Bt),g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+4,f.push(w-A*I,E-D*I),f.push(Kt,Bt)):(f.push(It,St),f.push(Kt,Bt)):(f.push(w-M*I,E-C*I),f.push(w+M*U,E+C*U),a.join==="round"?jt?g+=ri(w,E,w+M*U,E+C*U,w+A*U,E+D*U,f,!0)+2:g+=ri(w,E,w-M*I,E-C*I,w-A*I,E-D*I,f,!1)+2:a.join==="miter"&&ct/b<=v&&(jt?(f.push(Kt,Bt),f.push(Kt,Bt)):(f.push(It,St),f.push(It,St)),g+=2),f.push(w-A*I,E-D*I),f.push(w+A*U,E+D*U),g+=2)}S=i[(m-2)*2],T=i[(m-2)*2+1],w=i[(m-1)*2],E=i[(m-1)*2+1],M=-(T-E),C=S-w,H=Math.sqrt(M*M+C*C),M/=H,C/=H,M*=x,C*=x,f.push(w-M*I,E-C*I),f.push(w+M*U,E+C*U),u||(a.cap==="round"?g+=ri(w-M*(I-U)*.5,E-C*(I-U)*.5,w-M*I,E-C*I,w+M*U,E+C*U,f,!1)+2:a.cap==="square"&&(g+=Yb(w,E,M,C,I,U,!1,f)));let j=1e-4*1e-4;for(let G=_;G<g+_-2;++G)S=f[G*2],T=f[G*2+1],w=f[(G+1)*2],E=f[(G+1)*2+1],B=f[(G+2)*2],R=f[(G+2)*2+1],!(Math.abs(S*(E-R)+w*(R-T)+B*(T-E))<j)&&n.push(G,G+1,G+2)}var al=p(()=>{Vc();Ee()});function qb(i,t){for(let e=0;e<t.length;e++){let r=t[e];i.addColorStop(r.offset,r.color)}}function Kb(i,t){let e=W.get().createCanvas(i,t),r=e.getContext("2d");return{canvas:e,context:r}}function cw(i){let t=i[0]??{};return(typeof t=="number"||i[1])&&(O("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]??ee.defaultLinearOptions.textureSize}),t}var $b,Hu,ee,ii=p(()=>{Qt();xt();ot();jo();gt();Ft();yt();lc();$b=[{offset:0,color:"white"},{offset:1,color:"black"}],Hu=class zu{constructor(...t){this.uid=$("fillGradient"),this._tick=0,this.type="linear",this.colorStops=[];let e=cw(t);e={...e.type==="radial"?zu.defaultRadialOptions:zu.defaultLinearOptions,...ko(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:Q.shared.setValue(e).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:t,y:e}=this.start,{x:r,y:s}=this.end,n=r-t,o=s-e,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let _=t;t=r,r=_,n*=-1}if(o<0){let _=e;e=s,s=_,o*=-1}}let l=this.colorStops.length?this.colorStops:$b,c=this._textureSize,{canvas:h,context:u}=Kb(c,1),d=a?u.createLinearGradient(this._textureSize,0,0,0):u.createLinearGradient(0,0,this._textureSize,0);qb(d,l),u.fillStyle=d,u.fillRect(0,0,c,1),this.texture=new F({source:new Re({resource:h,addressMode:this._wrapMode})});let f=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),g=new k;g.scale(f/c,1),g.rotate(m),g.translate(t,e),this.textureSpace==="local"&&g.scale(c,c),this.transform=g}buildGradient(){this.texture||this._tick++,this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let t=this.colorStops.length?this.colorStops:$b,e=this._textureSize,{canvas:r,context:s}=Kb(e,e),{x:n,y:o}=this.center,{x:a,y:l}=this.outerCenter,c=this.innerRadius,h=this.outerRadius,u=a-h,d=l-h,f=e/(h*2),m=(n-u)*f,g=(o-d)*f,_=s.createRadialGradient(m,g,c*f,(a-u)*f,(l-d)*f,h*f);qb(_,t),s.fillStyle=t[t.length-1].color,s.fillRect(0,0,e,e),s.fillStyle=_,s.translate(m,g),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-g),s.fillRect(0,0,e,e),this.texture=new F({source:new Re({resource:r,addressMode:this._wrapMode})});let x=new k;this.textureSpace==="local"?x.scale(2*h,2*h):x.scale(1/f,1/f),x.translate(u,d),this.transform=x}destroy(){this.texture?.destroy(!0),this.texture=null,this.transform=null,this.colorStops=[],this.start=null,this.end=null,this.center=null,this.outerCenter=null}get styleKey(){return`fill-gradient-${this.uid}-${this._tick}`}};Hu.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Hu.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,rotation:0,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};ee=Hu});function hw(i){return i.texture!==void 0}var Zb,Ge,jn=p(()=>{ot();Ft();Zb={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},Ge=class{constructor(t,e){this.uid=$("fillPattern"),this._tick=0,this.transform=new k;let r=hw(t)?t:{texture:t,repetition:e};this.texture=r.texture,this.textureSpace=r.textureSpace??"global";let s=r.repetition;s&&(this.texture.source.style.addressModeU=Zb[s].addressModeU,this.texture.source.style.addressModeV=Zb[s].addressModeV)}setTransform(t){if(t){if(this.transform.equals(t))return;this.transform.copyFrom(t)}else{if(this.transform.isIdentity())return;this.transform.identity()}this._tick++}get texture(){return this._texture}set texture(t){this._texture!==t&&(this._texture=t,this._tick++)}get styleKey(){return`fill-pattern-${this.uid}-${this._tick}`}destroy(){this.texture.destroy(!0),this.texture=null}}});function Qb(i,t,e,r,s,n,o,a=null){let l=0;e*=t,s*=n;let c=a.a,h=a.b,u=a.c,d=a.d,f=a.tx,m=a.ty;for(;l<o;){let g=i[e],_=i[e+1];r[s]=c*g+u*_+f,r[s+1]=h*g+d*_+m,s+=n,e+=t,l++}}function Jb(i,t,e,r){let s=0;for(t*=e;s<r;)i[t]=0,i[t+1]=0,t+=e,s++}var t0=p(()=>{"use strict"});function Wu(i,t,e,r,s){let n=t.a,o=t.b,a=t.c,l=t.d,c=t.tx,h=t.ty;e||(e=0),r||(r=2),s||(s=i.length/r-e);let u=e*r;for(let d=0;d<s;d++){let f=i[u],m=i[u+1];i[u]=n*f+a*m+c,i[u+1]=o*f+l*m+h,u+=r}}var e0=p(()=>{"use strict"});var uw,si,Vu=p(()=>{ot();ys();uw=new k,si=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,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?Ue(e,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):e+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||uw}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=!0,this.renderable=null,this.topology="triangle-list"}destroy(){this.renderable=null,this.texture=null,this.geometryData=null,this._batcher=null,this._batch=null}}});var Qi,r0,i0,s0=p(()=>{P();Qi={extension:{type:y.ShapeBuilder,name:"circle"},build(i,t){let e,r,s,n,o,a;if(i.type==="circle"){let S=i;if(o=a=S.radius,o<=0)return!1;e=S.x,r=S.y,s=n=0}else if(i.type==="ellipse"){let S=i;if(o=S.halfWidth,a=S.halfHeight,o<=0||a<=0)return!1;e=S.x,r=S.y,s=n=0}else{let S=i,T=S.width/2,w=S.height/2;e=S.x+T,r=S.y+w,o=a=Math.max(0,Math.min(S.radius,Math.min(T,w))),s=T-o,n=w-a}if(s<0||n<0)return!1;let l=Math.ceil(2.3*Math.sqrt(o+a)),c=l*8+(s?4:0)+(n?4:0);if(c===0)return!1;if(l===0)return t[0]=t[6]=e+s,t[1]=t[3]=r+n,t[2]=t[4]=e-s,t[5]=t[7]=r-n,!0;let h=0,u=l*4+(s?2:0)+2,d=u,f=c,m=s+o,g=n,_=e+m,x=e-m,b=r+g;if(t[h++]=_,t[h++]=b,t[--u]=b,t[--u]=x,n){let S=r-g;t[d++]=x,t[d++]=S,t[--f]=S,t[--f]=_}for(let S=1;S<l;S++){let T=Math.PI/2*(S/l),w=s+Math.cos(T)*o,E=n+Math.sin(T)*a,B=e+w,R=e-w,M=r+E,C=r-E;t[h++]=B,t[h++]=M,t[--u]=M,t[--u]=R,t[d++]=R,t[d++]=C,t[--f]=C,t[--f]=B}m=s,g=n+a,_=e+m,x=e-m,b=r+g;let v=r-g;return t[h++]=_,t[h++]=b,t[--f]=v,t[--f]=_,s&&(t[h++]=x,t[h++]=b,t[--f]=v,t[--f]=x),!0},triangulate(i,t,e,r,s,n){if(i.length===0)return;let o=0,a=0;for(let h=0;h<i.length;h+=2)o+=i[h],a+=i[h+1];o/=i.length/2,a/=i.length/2;let l=r;t[l*e]=o,t[l*e+1]=a;let c=l++;for(let h=0;h<i.length;h+=2)t[l*e]=i[h],t[l*e+1]=i[h+1],h>0&&(s[n++]=l,s[n++]=c,s[n++]=l-1),l++;s[n++]=c+1,s[n++]=c,s[n++]=l-1}},r0={...Qi,extension:{...Qi.extension,name:"ellipse"}},i0={...Qi,extension:{...Qi.extension,name:"roundedRectangle"}}});function n0(i,t,e,r){let s=1e-4;if(i.length===0)return;let n=i[0],o=i[1],a=i[i.length-2],l=i[i.length-1],c=t||Math.abs(n-a)<s&&Math.abs(o-l)<s,h=e,u=i.length/2,d=h.length/2;for(let f=0;f<u;f++)h.push(i[f*2]),h.push(i[f*2+1]);for(let f=0;f<u-1;f++)r.push(d+f,d+f+1);c&&r.push(d+u-1,d)}var o0=p(()=>{});function ll(i,t,e,r,s,n,o){let a=kg(i,t,2);if(!a)return;for(let c=0;c<a.length;c+=3)n[o++]=a[c]+s,n[o++]=a[c+1]+s,n[o++]=a[c+2]+s;let l=s*r;for(let c=0;c<i.length;c+=2)e[l]=i[c],e[l+1]=i[c+1],l+=r}var ju=p(()=>{Bg()});var dw,a0,l0=p(()=>{P();ju();dw=[],a0={extension:{type:y.ShapeBuilder,name:"polygon"},build(i,t){for(let e=0;e<i.points.length;e++)t[e]=i.points[e];return!0},triangulate(i,t,e,r,s,n){ll(i,dw,t,e,r,s,n)}}});var c0,h0=p(()=>{P();c0={extension:{type:y.ShapeBuilder,name:"rectangle"},build(i,t){let e=i,r=e.x,s=e.y,n=e.width,o=e.height;return n>0&&o>0?(t[0]=r,t[1]=s,t[2]=r+n,t[3]=s,t[4]=r+n,t[5]=s+o,t[6]=r,t[7]=s+o,!0):!1},triangulate(i,t,e,r,s,n){let o=0;r*=e,t[r+o]=i[0],t[r+o+1]=i[1],o+=e,t[r+o]=i[2],t[r+o+1]=i[3],o+=e,t[r+o]=i[6],t[r+o+1]=i[7],o+=e,t[r+o]=i[4],t[r+o+1]=i[5],o+=e;let a=r/e;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var u0,d0=p(()=>{P();u0={extension:{type:y.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,!0},triangulate(i,t,e,r,s,n){let o=0;r*=e,t[r+o]=i[0],t[r+o+1]=i[1],o+=e,t[r+o]=i[2],t[r+o+1]=i[3],o+=e,t[r+o]=i[4],t[r+o+1]=i[5];let a=r/e;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function cl(i,t,e,r){let s=t.matrix?i.copyFrom(t.matrix).invert():i.identity();if(t.textureSpace==="local"){let o=e.getBounds(pw);t.width&&o.pad(t.width);let{x:a,y:l}=o,c=1/o.width,h=1/o.height,u=-a*c,d=-l*h,f=s.a,m=s.b,g=s.c,_=s.d;s.a*=c,s.b*=c,s.c*=h,s.d*=h,s.tx=u*f+d*g+s.tx,s.ty=u*m+d*_+s.ty}else if(t.texture.rotate){let{uvs:o,orig:a}=t.texture;s.scale(1/a.width,1/a.height),s.prepend(mw.set(o.x1-o.x0,o.y1-o.y0,o.x3-o.x0,o.y3-o.y0,o.x0,o.y0))}else s.translate(t.texture.frame.x,t.texture.frame.y),s.scale(1/t.texture.source.width,1/t.texture.source.height);let n=t.texture.source.style;return!(t.fill instanceof ee)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),r&&s.append(fw.copyFrom(r).invert()),s}var fw,pw,mw,Xu=p(()=>{ot();Yt();ii();fw=new k,pw=new J,mw=new k});function p0(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 n=i.instructions[s];if(n.action==="texture")_w(n.data,r,e);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,l=n.data.style,c=n.data.hole;o&&c&&f0(c.shapePath,l,!0,r,e),c&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=c.shapePath.shapePrimitives),f0(a,l,o,r,e)}}}function _w(i,t,e){let r=[],s=Tr.rectangle,n=gw;n.x=i.dx,n.y=i.dy,n.width=i.dw,n.height=i.dh;let o=i.transform;if(!s.build(n,r))return;let{vertices:a,uvs:l,indices:c}=e,h=c.length,u=a.length/2;o&&Wu(r,o),s.triangulate(r,a,2,u,c,h);let d=i.image,f=d.uvs;l.push(f.x0,f.y0,f.x1,f.y1,f.x3,f.y3,f.x2,f.y2);let m=bt.get(si);m.indexOffset=h,m.indexSize=c.length-h,m.attributeOffset=u,m.attributeSize=a.length/2-u,m.baseColor=i.style,m.alpha=i.alpha,m.texture=d,m.geometryData=e,t.push(m)}function f0(i,t,e,r,s){let{vertices:n,uvs:o,indices:a}=s;i.shapePrimitives.forEach(({shape:l,transform:c,holes:h})=>{let u=[],d=Tr[l.type];if(!d.build(l,u))return;let f=a.length,m=n.length/2,g="triangle-list";if(c&&Wu(u,c),e){let v=l.closePath??!0,S=t;S.pixelLine?(n0(u,v,n,a),g="line-list"):Zi(u,S,!1,v,n,a)}else if(h){let v=[],S=u.slice();yw(h).forEach(w=>{v.push(S.length/2),S.push(...w)}),ll(S,v,n,2,m,a,f)}else d.triangulate(u,n,2,m,a,f);let _=o.length/2,x=t.texture;if(x!==F.WHITE){let v=cl(xw,t,l,c);Qb(n,2,m,o,_,2,n.length/2-m,v)}else Jb(o,_,2,n.length/2-m);let b=bt.get(si);b.indexOffset=f,b.indexSize=a.length-f,b.attributeOffset=m,b.attributeSize=n.length/2-m,b.baseColor=t.color,b.alpha=t.alpha,b.texture=x,b.geometryData=s,b.topology=g,r.push(b)})}function yw(i){let t=[];for(let e=0;e<i.length;e++){let r=i[e].shape,s=[];Tr[r.type].build(r,s)&&t.push(s)}return t}var Tr,gw,xw,hl=p(()=>{P();ot();Yt();t0();e0();gt();Ke();Vu();s0();al();o0();l0();h0();d0();Xu();ju();Tr={};z.handleByMap(y.ShapeBuilder,Tr);z.add(c0,a0,u0,Qi,r0,i0);gw=new J,xw=new k});function ww(i,t,e){i.beginPath();for(let r=0;r<e.length;r+=3){let s=e[r]*2,n=e[r+1]*2,o=e[r+2]*2;i.moveTo(t[s],t[s+1]),i.lineTo(t[n],t[n+1]),i.lineTo(t[o],t[o+1]),i.closePath()}i.fill()}function Cw(i){return`#${(i&16777215).toString(16).padStart(6,"0")}`}function Ew(i,t,e,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(t+n,e),i.lineTo(t+r-n,e),i.quadraticCurveTo(t+r,e,t+r,e+n),i.lineTo(t+r,e+s-n),i.quadraticCurveTo(t+r,e+s,t+r-n,e+s),i.lineTo(t+n,e+s),i.quadraticCurveTo(t,e+s,t,e+s-n),i.lineTo(t,e+n),i.quadraticCurveTo(t,e,t+n,e)}function dl(i,t){switch(t.type){case"rectangle":{let e=t;i.rect(e.x,e.y,e.width,e.height);break}case"roundedRectangle":{let e=t;Ew(i,e.x,e.y,e.width,e.height,e.radius);break}case"circle":{let e=t;i.arc(e.x,e.y,e.radius,0,Math.PI*2);break}case"ellipse":{let e=t;i.ellipse?i.ellipse(e.x,e.y,e.halfWidth,e.halfHeight,0,0,Math.PI*2):(i.save(),i.translate(e.x,e.y),i.scale(e.halfWidth,e.halfHeight),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let e=t;i.moveTo(e.x,e.y),i.lineTo(e.x2,e.y2),i.lineTo(e.x3,e.y3),i.closePath();break}case"polygon":default:{let e=t,r=e.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);e.closePath&&i.closePath();break}}}function Pw(i,t){if(!t?.length)return!1;for(let e=0;e<t.length;e++){let r=t[e];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),dl(i,r.shape),n&&i.restore()}return!0}function Mw(i,t,e,r){let s=i.fill;if(s instanceof ee){s.buildGradient();let o=s.texture;if(o){let a=Z.getTintedPattern(o,t),l=e?Yu.copyFrom(e).scale(o.source.pixelWidth,o.source.pixelHeight):Yu.copyFrom(s.transform);return r&&!i.textureSpace&&l.append(r),Z.applyPatternTransform(a,l),a}}if(s instanceof Ge){let o=Z.getTintedPattern(s.texture,t);return Z.applyPatternTransform(o,s.transform,!1),o}let n=i.texture;if(n&&n!==F.WHITE){if(!n.source.resource)return bw;let o=Z.getTintedPattern(n,t),a=i.matrix;if(e){let{resolution:l}=n.source;if(a=Yu.copyFrom(e),n.rotate){let{uvs:c,orig:h}=n;a.prepend(Tw.set(c.x1-c.x0,c.y1-c.y0,c.x3-c.x0,c.y3-c.y0,c.x0,c.y0).invert()).scale(h.width*l,h.height*l)}else a.scale(n.source.pixelWidth,n.source.pixelHeight).translate(-n.frame.x*l,-n.frame.y*l)}return Z.applyPatternTransform(o,a),o}return Cw(t)}var bw,ul,vw,Sw,Yu,Tw,Xn,m0=p(()=>{P();vs();ot();Pi();gt();Mo();ys();al();ii();jn();hl();Xu();bw="#808080",ul=new k,vw=new k,Sw=new k,Yu=new k,Tw=new k;Xn=class{constructor(){this.shader=null}contextChange(t){}execute(t,e){let r=t.renderer,s=r.canvasContext,n=s.activeContext,o=e.groupTransform,a=r.globalUniforms.globalUniformData?.worldColor??4294967295,l=e.groupColorAlpha,c=(a>>>24&255)/255,h=(l>>>24&255)/255,u=r.filter?.alphaMultiplier??1,d=c*h*u;if(d<=0)return;let f=a&16777215,m=l&16777215,g=Qe(Ue(m,f)),_=r._roundPixels|e._roundPixels;n.save(),s.setContextTransform(o,_===1),s.setBlendMode(e.groupBlendMode);let x=e.context.instructions;for(let b=0;b<x.length;b++){let v=x[b];if(v.action==="texture"){let C=v.data,A=C.image,D=A?Z.getCanvasSource(A):null;if(!D)continue;let H=C.alpha*d;if(H<=0)continue;let K=Ue(C.style,g);n.globalAlpha=H;let I=D;K!==16777215&&(I=Z.getTintedCanvas({texture:A},K));let U=A.frame,j=A.source._resolution??A.source.resolution??1,G=U.x*j,Y=U.y*j,pt=U.width*j,wt=U.height*j;I!==D&&(G=0,Y=0);let lt=C.transform,ft=lt&&!lt.isIdentity(),q=A.rotate;ft||q?(ul.copyFrom(o),ft&&ul.append(lt),q&&it.matrixAppendRotationInv(ul,q,C.dx,C.dy,C.dw,C.dh),s.setContextTransform(ul,_===1)):s.setContextTransform(o,_===1),n.drawImage(I,G,Y,I===D?pt:I.width,I===D?wt:I.height,q?0:C.dx,q?0:C.dy,C.dw,C.dh),(ft||q)&&s.setContextTransform(o,_===1);continue}let S=v.data,T=S?.path?.shapePath;if(!T?.shapePrimitives?.length)continue;let w=S.style,E=Ue(w.color,g),B=w.alpha*d;if(B<=0)continue;let R=v.action==="stroke";if(n.globalAlpha=B,R){let C=w;n.lineWidth=C.width,n.lineCap=C.cap,n.lineJoin=C.join,n.miterLimit=C.miterLimit}let M=T.shapePrimitives;if(!R&&S.hole?.shapePath?.shapePrimitives?.length){let C=M[M.length-1];C.holes=S.hole.shapePath.shapePrimitives}for(let C=0;C<M.length;C++){let A=M[C];if(!A?.shape)continue;let D=A.transform,H=D&&!D.isIdentity(),K=w.texture&&w.texture!==F.WHITE,I=w.textureSpace==="global"?D:null,U=K?cl(vw,w,A.shape,I):null,j=H?Sw.copyFrom(o).append(D):o,G=Mw(w,E,U,j);if(H&&(n.save(),n.transform(D.a,D.b,D.c,D.d,D.tx,D.ty)),R){let Y=w;if(Y.alignment!==.5&&!Y.pixelLine){let wt=[],lt=[],ft=[];if(Tr[A.shape.type]?.build(A.shape,wt)){let jt=A.shape.closePath??!0;Zi(wt,Y,!1,jt,lt,ft),n.fillStyle=G,ww(n,lt,ft)}else n.strokeStyle=G,n.beginPath(),dl(n,A.shape),n.stroke()}else n.strokeStyle=G,n.beginPath(),dl(n,A.shape),n.stroke()}else n.fillStyle=G,n.beginPath(),dl(n,A.shape),Pw(n,A.holes)?n.fill("evenodd"):n.fill();H&&n.restore()}}n.restore()}destroy(){this.shader=null}};Xn.extension={type:[y.CanvasPipesAdaptor],name:"graphics"}});var $u,g0,x0=p(()=>{P();vs();ot();Mo();ys();Pi();$u=class ni{static _getPatternRepeat(t,e){let r=t&&t!=="clamp-to-edge",s=e&&e!=="clamp-to-edge";return r&&s?"repeat":r?"repeat-x":s?"repeat-y":"no-repeat"}start(t,e,r){}execute(t,e){let r=e.elements;if(!r||!r.length)return;let s=t.renderer,n=s.canvasContext,o=n.activeContext;for(let a=0;a<r.length;a++){let l=r[a];if(!l.packAsQuad)continue;let c=l,h=c.texture,u=h?Z.getCanvasSource(h):null;if(!u)continue;let d=h.source.style,f=n.smoothProperty,m=d.scaleMode!=="nearest";o[f]!==m&&(o[f]=m),n.setBlendMode(e.blendMode);let g=s.globalUniforms.globalUniformData?.worldColor??4294967295,_=c.color,x=(g>>>24&255)/255,b=(_>>>24&255)/255,v=s.filter?.alphaMultiplier??1,S=x*b*v;if(S<=0)continue;o.globalAlpha=S;let T=g&16777215,w=_&16777215,E=Qe(Ue(w,T)),B=h.frame,R=d.addressModeU??d.addressMode,M=d.addressModeV??d.addressMode,C=ni._getPatternRepeat(R,M),A=h.source._resolution??h.source.resolution??1,D=c.renderable?.renderGroup?.isCachedAsTexture,H=B.x*A,K=B.y*A,I=B.width*A,U=B.height*A,j=c.bounds,G=s.renderTarget.renderTarget.isRoot,Y=j.minX,pt=j.minY,wt=j.maxX-j.minX,lt=j.maxY-j.minY,ft=h.rotate,q=h.uvs,jt=Math.min(q.x0,q.x1,q.x2,q.x3,q.y0,q.y1,q.y2,q.y3),ui=Math.max(q.x0,q.x1,q.x2,q.x3,q.y0,q.y1,q.y2,q.y3),Cr=C!=="no-repeat"&&(jt<0||ui>1),et=ft&&!(!Cr&&(E!==16777215||ft));et?(ni._tempPatternMatrix.copyFrom(c.transform),it.matrixAppendRotationInv(ni._tempPatternMatrix,ft,Y,pt,wt,lt),n.setContextTransform(ni._tempPatternMatrix,c.roundPixels===1,void 0,D&&G)):n.setContextTransform(c.transform,c.roundPixels===1,void 0,D&&G);let ct=wt,It=lt,St=et?0:Y,Kt=et?0:pt;if(!et&&c.roundPixels===1&&(St|=0,Kt|=0),Cr){let Bt=u,xe=E!==16777215&&!ft,Xt=B.width<=h.source.width&&B.height<=h.source.height;xe&&Xt&&(Bt=Z.getTintedCanvas({texture:h},E));let $e=o.createPattern(Bt,C);if(!$e)continue;let ls=ct,cs=It;if(ls===0||cs===0)continue;let cr=1/ls,Er=1/cs,hs=(q.x1-q.x0)*cr,us=(q.y1-q.y0)*cr,ds=(q.x3-q.x0)*Er,fs=(q.y3-q.y0)*Er,di=q.x0-hs*St-ds*Kt,xo=q.y0-us*St-fs*Kt,fi=h.source.pixelWidth,pi=h.source.pixelHeight;ni._tempPatternMatrix.set(hs*fi,us*pi,ds*fi,fs*pi,di*fi,xo*pi),Z.applyPatternTransform($e,ni._tempPatternMatrix),o.fillStyle=$e,o.fillRect(St,Kt,ct,It)}else{let xe=E!==16777215||ft?Z.getTintedCanvas({texture:h},E):u,Xt=xe!==u;o.drawImage(xe,Xt?0:H,Xt?0:K,Xt?xe.width:I,Xt?xe.height:U,St,Kt,ct,It)}}}};$u._tempPatternMatrix=new k;$u.extension={type:[y.CanvasPipesAdaptor],name:"batch"};g0=$u});var Yn,_0=p(()=>{P();Yn=class{constructor(t){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=t}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(t,e,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;s[this._colorStackIndex]=s[this._colorStackIndex-1]&t.mask;let n=this._colorStack[this._colorStackIndex];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1})),this._colorStackIndex++}pop(t,e,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;this._colorStackIndex--;let n=s[this._colorStackIndex-1];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1}))}execute(t){}destroy(){this._renderer=null,this._colorStack=null}};Yn.extension={type:[y.CanvasPipes],name:"colorMask"}});function y0(i){let t=[];return i.replace(Aw,(e,r,s)=>{let n=r.toLowerCase(),o=r,a=kw(s);for(n==="m"&&a.length>2&&(t.push([o,...a.splice(0,2)]),n="l",o=o==="m"?"l":"L");;){if(a.length===qu[n])return t.push([o,...a]),"";if(a.length<qu[n])throw new Error("malformed path data");t.push([o,...a.splice(0,qu[n])])}}),t}function kw(i){let t=i.match(Rw);return t?t.map(Number):[]}var qu,Aw,Rw,b0=p(()=>{qu={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},Aw=/([astvzqmhlc])([^astvzqmhlc]*)/gi,Rw=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi});function v0(i,t){let e=y0(i),r=[],s=null,n=0,o=0;for(let a=0;a<e.length;a++){let l=e[a],c=l[0],h=l;switch(c){case"M":n=h[1],o=h[2],t.moveTo(n,o);break;case"m":n+=h[1],o+=h[2],t.moveTo(n,o);break;case"H":n=h[1],t.lineTo(n,o);break;case"h":n+=h[1],t.lineTo(n,o);break;case"V":o=h[1],t.lineTo(n,o);break;case"v":o+=h[1],t.lineTo(n,o);break;case"L":n=h[1],o=h[2],t.lineTo(n,o);break;case"l":n+=h[1],o+=h[2],t.lineTo(n,o);break;case"C":n=h[5],o=h[6],t.bezierCurveTo(h[1],h[2],h[3],h[4],n,o);break;case"c":t.bezierCurveTo(n+h[1],o+h[2],n+h[3],o+h[4],n+h[5],o+h[6]),n+=h[5],o+=h[6];break;case"S":n=h[3],o=h[4],t.bezierCurveToShort(h[1],h[2],n,o);break;case"s":t.bezierCurveToShort(n+h[1],o+h[2],n+h[3],o+h[4]),n+=h[3],o+=h[4];break;case"Q":n=h[3],o=h[4],t.quadraticCurveTo(h[1],h[2],n,o);break;case"q":t.quadraticCurveTo(n+h[1],o+h[2],n+h[3],o+h[4]),n+=h[3],o+=h[4];break;case"T":n=h[1],o=h[2],t.quadraticCurveToShort(n,o);break;case"t":n+=h[1],o+=h[2],t.quadraticCurveToShort(n,o);break;case"A":n=h[6],o=h[7],t.arcToSvg(h[1],h[2],h[3],h[4],h[5],n,o);break;case"a":n+=h[6],o+=h[7],t.arcToSvg(h[1],h[2],h[3],h[4],h[5],n,o);break;case"Z":case"z":t.closePath(),r.length>0&&(s=r.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:L(`Unknown SVG path command: ${c}`)}c!=="Z"&&c!=="z"&&s===null&&(s={startX:n,startY:o},r.push(s))}return t}var S0=p(()=>{b0();ht()});var Ku,Zu,Ju,Ji,fl=p(()=>{P();xa();Yh();Ro();Ie();yt();Ke();hl();Ku=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}reset(){this.batches&&this.batches.forEach(t=>{bt.return(t)}),this.graphicsData&&bt.return(this.graphicsData),this.isBatchable=!1,this.context=null,this.batches.length=0,this.geometryData.indices.length=0,this.geometryData.vertices.length=0,this.geometryData.uvs.length=0,this.graphicsData=null}destroy(){this.reset(),this.batches=null,this.geometryData=null}},Zu=class{constructor(){this.instructions=new hr}init(t){let e=t.maxTextures;this.batcher?this.batcher._updateMaxTextures(e):this.batcher=new hn({maxTextures:e}),this.instructions.reset()}get geometry(){return O(Sf,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}destroy(){this.batcher.destroy(),this.instructions.destroy(),this.batcher=null,this.instructions=null}},Ju=class Qu{constructor(t){this._renderer=t,this._managedContexts=new kt({renderer:t,type:"resource",name:"graphicsContext"})}init(t){Qu.defaultOptions.bezierSmoothness=t?.bezierSmoothness??Qu.defaultOptions.bezierSmoothness}getContextRenderData(t){return t._gpuData[this._renderer.uid].graphicsData||this._initContextRenderData(t)}updateGpuContext(t){let e=!!t._gpuData[this._renderer.uid],r=t._gpuData[this._renderer.uid]||this._initContext(t);if(t.dirty||!e){e&&r.reset(),p0(t,r);let s=t.batchMode;t.customShader||s==="no-batch"?r.isBatchable=!1:s==="auto"?r.isBatchable=r.geometryData.vertices.length<400:r.isBatchable=!0,t.dirty=!1}return r}getGpuContext(t){return t._gpuData[this._renderer.uid]||this._initContext(t)}_initContextRenderData(t){let e=bt.get(Zu,{maxTextures:this._renderer.limits.maxBatchableTextures}),r=t._gpuData[this._renderer.uid],{batches:s,geometryData:n}=r;r.graphicsData=e;let o=n.vertices.length,a=n.indices.length;for(let u=0;u<s.length;u++)s[u].applyTransform=!1;let l=e.batcher;l.ensureAttributeBuffer(o),l.ensureIndexBuffer(a),l.begin();for(let u=0;u<s.length;u++){let d=s[u];l.add(d)}l.finish(e.instructions);let c=l.geometry;c.indexBuffer.setDataWithSize(l.indexBuffer,l.indexSize,!0),c.buffers[0].setDataWithSize(l.attributeBuffer.float32View,l.attributeSize,!0);let h=l.batches;for(let u=0;u<h.length;u++){let d=h[u];d.bindGroup=Gi(d.textures.textures,d.textures.count,this._renderer.limits.maxBatchableTextures)}return e}_initContext(t){let e=new Ku;return e.context=t,t._gpuData[this._renderer.uid]=e,this._managedContexts.add(t),e}destroy(){this._managedContexts.destroy(),this._renderer=null}};Ju.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"graphicsContext"};Ju.defaultOptions={bezierSmoothness:.5};Ji=Ju});function ml(i,t,e,r,s,n,o,a,l,c){let u=Math.min(.99,Math.max(0,c??Ji.defaultOptions.bezierSmoothness)),d=(Iw-u)/1;return d*=d,Gw(t,e,r,s,n,o,a,l,i,d),i}function Gw(i,t,e,r,s,n,o,a,l,c){ed(i,t,e,r,s,n,o,a,l,c,0),l.push(o,a)}function ed(i,t,e,r,s,n,o,a,l,c,h){if(h>Bw)return;let u=Math.PI,d=(i+e)/2,f=(t+r)/2,m=(e+s)/2,g=(r+n)/2,_=(s+o)/2,x=(n+a)/2,b=(d+m)/2,v=(f+g)/2,S=(m+_)/2,T=(g+x)/2,w=(b+S)/2,E=(v+T)/2;if(h>0){let B=o-i,R=a-t,M=Math.abs((e-o)*R-(r-a)*B),C=Math.abs((s-o)*R-(n-a)*B),A,D;if(M>pl&&C>pl){if((M+C)*(M+C)<=c*(B*B+R*R)){if(ts<td){l.push(w,E);return}let H=Math.atan2(n-r,s-e);if(A=Math.abs(H-Math.atan2(r-t,e-i)),D=Math.abs(Math.atan2(a-n,o-s)-H),A>=u&&(A=2*u-A),D>=u&&(D=2*u-D),A+D<ts){l.push(w,E);return}if(oi!==0){if(A>oi){l.push(e,r);return}if(D>oi){l.push(s,n);return}}}}else if(M>pl){if(M*M<=c*(B*B+R*R)){if(ts<td){l.push(w,E);return}if(A=Math.abs(Math.atan2(n-r,s-e)-Math.atan2(r-t,e-i)),A>=u&&(A=2*u-A),A<ts){l.push(e,r),l.push(s,n);return}if(oi!==0&&A>oi){l.push(e,r);return}}}else if(C>pl){if(C*C<=c*(B*B+R*R)){if(ts<td){l.push(w,E);return}if(A=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-r,s-e)),A>=u&&(A=2*u-A),A<ts){l.push(e,r),l.push(s,n);return}if(oi!==0&&A>oi){l.push(s,n);return}}}else if(B=w-(i+o)/2,R=E-(t+a)/2,B*B+R*R<=c){l.push(w,E);return}}ed(i,t,d,f,b,v,w,E,l,c,h+1),ed(w,E,S,T,_,x,o,a,l,c,h+1)}var Bw,pl,Iw,td,ts,oi,rd=p(()=>{fl();Bw=8,pl=11920929e-14,Iw=1,td=.01,ts=0,oi=0});function w0(i,t,e,r,s,n,o,a){let c=Math.min(.99,Math.max(0,a??Ji.defaultOptions.bezierSmoothness)),h=(Dw-c)/1;return h*=h,Ow(t,e,r,s,n,o,i,h),i}function Ow(i,t,e,r,s,n,o,a){id(o,i,t,e,r,s,n,a,0),o.push(s,n)}function id(i,t,e,r,s,n,o,a,l){if(l>Fw)return;let c=Math.PI,h=(t+r)/2,u=(e+s)/2,d=(r+n)/2,f=(s+o)/2,m=(h+d)/2,g=(u+f)/2,_=n-t,x=o-e,b=Math.abs((r-n)*x-(s-o)*_);if(b>Uw){if(b*b<=a*(_*_+x*x)){if(T0<Lw){i.push(m,g);return}let v=Math.abs(Math.atan2(o-s,n-r)-Math.atan2(s-e,r-t));if(v>=c&&(v=2*c-v),v<T0){i.push(m,g);return}}}else if(_=m-(t+n)/2,x=g-(e+o)/2,_*_+x*x<=a){i.push(m,g);return}id(i,t,e,h,u,m,g,a,l+1),id(i,m,g,d,f,n,o,a,l+1)}var Fw,Uw,Dw,Lw,T0,C0=p(()=>{fl();Fw=8,Uw=11920929e-14,Dw=1,Lw=.01,T0=0});function gl(i,t,e,r,s,n,o,a){let l=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(l=2*Math.PI-l),a||(a=Math.max(6,Math.floor(6*Math.pow(r,1/3)*(l/Math.PI)))),a=Math.max(a,3);let c=l/a,h=s;c*=o?-1:1;for(let u=0;u<a+1;u++){let d=Math.cos(h),f=Math.sin(h),m=t+d*r,g=e+f*r;i.push(m,g),h+=c}}var sd=p(()=>{"use strict"});function E0(i,t,e,r,s,n){let o=i[i.length-2],l=i[i.length-1]-e,c=o-t,h=s-e,u=r-t,d=Math.abs(l*u-c*h);if(d<1e-8||n===0){(i[i.length-2]!==t||i[i.length-1]!==e)&&i.push(t,e);return}let f=l*l+c*c,m=h*h+u*u,g=l*h+c*u,_=n*Math.sqrt(f)/d,x=n*Math.sqrt(m)/d,b=_*g/f,v=x*g/m,S=_*u+x*c,T=_*h+x*l,w=c*(x+b),E=l*(x+b),B=u*(_+v),R=h*(_+v),M=Math.atan2(E-T,w-S),C=Math.atan2(R-T,B-S);gl(i,S+t,T+e,n,M,C,c*h>u*l)}var P0=p(()=>{sd()});function Nw(i,t){let e=t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=t===1.5707963267948966?.551915024494:e,s=Math.cos(i),n=Math.sin(i),o=Math.cos(i+t),a=Math.sin(i+t);return[{x:s-n*r,y:n+s*r},{x:o+a*r,y:a-o*r},{x:o,y:a}]}function A0(i,t,e,r,s,n,o,a=0,l=0,c=0){if(n===0||o===0)return;let h=Math.sin(a*$n/360),u=Math.cos(a*$n/360),d=u*(t-r)/2+h*(e-s)/2,f=-h*(t-r)/2+u*(e-s)/2;if(d===0&&f===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(d,2)/Math.pow(n,2)+Math.pow(f,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),zw(t,e,r,s,n,o,l,c,h,u,d,f,nd);let{ang1:g,ang2:_}=nd,{centerX:x,centerY:b}=nd,v=Math.abs(_)/($n/4);Math.abs(1-v)<1e-7&&(v=1);let S=Math.max(Math.ceil(v),1);_/=S;let T=i[i.length-2],w=i[i.length-1],E={x:0,y:0};for(let B=0;B<S;B++){let R=Nw(g,_),{x:M,y:C}=od(R[0],n,o,u,h,x,b,E),{x:A,y:D}=od(R[1],n,o,u,h,x,b,E),{x:H,y:K}=od(R[2],n,o,u,h,x,b,E);ml(i,T,w,M,C,A,D,H,K),T=H,w=K,g+=_}}var $n,nd,od,M0,zw,R0=p(()=>{rd();$n=Math.PI*2,nd={centerX:0,centerY:0,ang1:0,ang2:0},od=({x:i,y:t},e,r,s,n,o,a,l)=>{i*=e,t*=r;let c=s*i-n*t,h=n*i+s*t;return l.x=c+o,l.y=h+a,l};M0=(i,t,e,r)=>{let s=i*r-t*e<0?-1:1,n=i*e+t*r;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},zw=(i,t,e,r,s,n,o,a,l,c,h,u,d)=>{let f=Math.pow(s,2),m=Math.pow(n,2),g=Math.pow(h,2),_=Math.pow(u,2),x=f*m-f*_-m*g;x<0&&(x=0),x/=f*_+m*g,x=Math.sqrt(x)*(o===a?-1:1);let b=x*s/n*u,v=x*-n/s*h,S=c*b-l*v+(i+e)/2,T=l*b+c*v+(t+r)/2,w=(h-b)/s,E=(u-v)/n,B=(-h-b)/s,R=(-u-v)/n,M=M0(1,0,w,E),C=M0(w,E,B,R);a===0&&C>0&&(C-=$n),a===1&&C<0&&(C+=$n),d.centerX=S,d.centerY=T,d.ang1=M,d.ang2=C}});function k0(i,t,e){let r=(o,a)=>{let l=a.x-o.x,c=a.y-o.y,h=Math.sqrt(l*l+c*c),u=l/h,d=c/h;return{len:h,nx:u,ny:d}},s=(o,a)=>{o===0?i.moveTo(a.x,a.y):i.lineTo(a.x,a.y)},n=t[t.length-1];for(let o=0;o<t.length;o++){let a=t[o%t.length],l=a.radius??e;if(l<=0){s(o,a),n=a;continue}let c=t[(o+1)%t.length],h=r(a,n),u=r(a,c);if(h.len<1e-4||u.len<1e-4){s(o,a),n=a;continue}let d=Math.asin(h.nx*u.ny-h.ny*u.nx),f=1,m=!1;h.nx*u.nx-h.ny*-u.ny<0?d<0?d=Math.PI+d:(d=Math.PI-d,f=-1,m=!0):d>0&&(f=-1,m=!0);let g=d/2,_,x=Math.abs(Math.cos(g)*l/Math.sin(g));x>Math.min(h.len/2,u.len/2)?(x=Math.min(h.len/2,u.len/2),_=Math.abs(x*Math.sin(g)/Math.cos(g))):_=l;let b=a.x+u.nx*x+-u.ny*_*f,v=a.y+u.ny*x+u.nx*_*f,S=Math.atan2(h.ny,h.nx)+Math.PI/2*f,T=Math.atan2(u.ny,u.nx)-Math.PI/2*f;o===0&&i.moveTo(b+Math.cos(S)*_,v+Math.sin(S)*_),i.arc(b,v,_,S,T,m),n=a}}function B0(i,t,e,r){let s=(a,l)=>Math.sqrt((a.x-l.x)**2+(a.y-l.y)**2),n=(a,l,c)=>({x:a.x+(l.x-a.x)*c,y:a.y+(l.y-a.y)*c}),o=t.length;for(let a=0;a<o;a++){let l=t[(a+1)%o],c=l.radius??e;if(c<=0){a===0?i.moveTo(l.x,l.y):i.lineTo(l.x,l.y);continue}let h=t[a],u=t[(a+2)%o],d=s(h,l),f;if(d<1e-4)f=l;else{let _=Math.min(d/2,c);f=n(l,h,_/d)}let m=s(u,l),g;if(m<1e-4)g=l;else{let _=Math.min(m/2,c);g=n(l,u,_/m)}a===0?i.moveTo(f.x,f.y):i.lineTo(f.x,f.y),i.quadraticCurveTo(l.x,l.y,g.x,g.y,r)}}var I0=p(()=>{"use strict"});var Hw,xl,G0=p(()=>{xm();_m();ym();Yt();bm();ie();rd();C0();sd();P0();R0();I0();Hw=new J,xl=class{constructor(t){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new dt,this._graphicsPath2D=t,this.signed=t.checkForHoles}moveTo(t,e){return this.startPoly(t,e),this}lineTo(t,e){this._ensurePoly();let r=this._currentPoly.points,s=r[r.length-2],n=r[r.length-1];return(s!==t||n!==e)&&r.push(t,e),this}arc(t,e,r,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return gl(a,t,e,r,s,n,o),this}arcTo(t,e,r,s,n){this._ensurePoly();let o=this._currentPoly.points;return E0(o,t,e,r,s,n),this}arcToSvg(t,e,r,s,n,o,a){let l=this._currentPoly.points;return A0(l,this._currentPoly.lastX,this._currentPoly.lastY,o,a,t,e,r,s,n),this}bezierCurveTo(t,e,r,s,n,o,a){this._ensurePoly();let l=this._currentPoly;return ml(this._currentPoly.points,l.lastX,l.lastY,t,e,r,s,n,o,a),this}quadraticCurveTo(t,e,r,s,n){this._ensurePoly();let o=this._currentPoly;return w0(this._currentPoly.points,o.lastX,o.lastY,t,e,r,s,n),this}closePath(){return this.endPoly(!0),this}addPath(t,e){this.endPoly(),e&&!e.isIdentity()&&(t=t.clone(!0),t.transform(e));let r=this.shapePrimitives,s=r.length;for(let n=0;n<t.instructions.length;n++){let o=t.instructions[n];this[o.action](...o.data)}if(t.checkForHoles&&r.length-s>1){let n=null;for(let o=s;o<r.length;o++){let a=r[o];if(a.shape.type==="polygon"){let l=a.shape,c=n?.shape;c&&c.containsPolygon(l)?(n.holes||(n.holes=[]),n.holes.push(a),r.copyWithin(o,o+1),r.length--,o--):n=a}}}return this}finish(t=!1){this.endPoly(t)}rect(t,e,r,s,n){return this.drawShape(new J(t,e,r,s),n),this}circle(t,e,r,s){return this.drawShape(new Zo(t,e,r),s),this}poly(t,e,r){let s=new Mi(t);return s.closePath=e,this.drawShape(s,r),this}regularPoly(t,e,r,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,l=Math.PI*2/s,c=[];for(let h=0;h<s;h++){let u=a-h*l;c.push(t+r*Math.cos(u),e+r*Math.sin(u))}return this.poly(c,!0,o),this}roundPoly(t,e,r,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(t,e,r,s,o);let l=r*Math.sin(Math.PI/s)-.001;n=Math.min(n,l);let c=-1*Math.PI/2+o,h=Math.PI*2/s,u=(s-2)*Math.PI/s/2;for(let d=0;d<s;d++){let f=d*h+c,m=t+r*Math.cos(f),g=e+r*Math.sin(f),_=f+Math.PI+u,x=f-Math.PI-u,b=m+n*Math.cos(_),v=g+n*Math.sin(_),S=m+n*Math.cos(x),T=g+n*Math.sin(x);d===0?this.moveTo(b,v):this.lineTo(b,v),this.quadraticCurveTo(m,g,S,T,a)}return this.closePath()}roundShape(t,e,r=!1,s){return t.length<3?this:(r?B0(this,t,e,s):k0(this,t,e),this.closePath())}filletRect(t,e,r,s,n){if(n===0)return this.rect(t,e,r,s);let o=Math.min(r,s)/2,a=Math.min(o,Math.max(-o,n)),l=t+r,c=e+s,h=a<0?-a:0,u=Math.abs(a);return this.moveTo(t,e+u).arcTo(t+h,e+h,t+u,e,u).lineTo(l-u,e).arcTo(l-h,e+h,l,e+u,u).lineTo(l,c-u).arcTo(l-h,c-h,t+r-u,c,u).lineTo(t+u,c).arcTo(t+h,c-h,t,c-u,u).closePath()}chamferRect(t,e,r,s,n,o){if(n<=0)return this.rect(t,e,r,s);let a=Math.min(n,Math.min(r,s)/2),l=t+r,c=e+s,h=[t+a,e,l-a,e,l,e+a,l,c-a,l-a,c,t+a,c,t,c-a,t,e+a];for(let u=h.length-1;u>=2;u-=2)h[u]===h[u-2]&&h[u-1]===h[u-3]&&h.splice(u-1,2);return this.poly(h,!0,o)}ellipse(t,e,r,s,n){return this.drawShape(new Qo(t,e,r,s),n),this}roundRect(t,e,r,s,n,o){return this.drawShape(new ta(t,e,r,s,n),o),this}drawShape(t,e){return this.endPoly(),this.shapePrimitives.push({shape:t,transform:e}),this}startPoly(t,e){let r=this._currentPoly;return r&&this.endPoly(),r=new Mi,r.points.push(t,e),this._currentPoly=r,this}endPoly(t=!1){let e=this._currentPoly;return e&&e.points.length>2&&(e.closePath=t,this.shapePrimitives.push({shape:e})),this._currentPoly=null,this}_ensurePoly(t=!0){if(!this._currentPoly&&(this._currentPoly=new Mi,t)){let e=this.shapePrimitives[this.shapePrimitives.length-1];if(e){let r=e.shape.x,s=e.shape.y;if(e.transform&&!e.transform.isIdentity()){let n=e.transform,o=r;r=n.a*r+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(r,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let t=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let e=0;e<t.instructions.length;e++){let r=t.instructions[e];this[r.action](...r.data)}this.finish()}get bounds(){let t=this._bounds;t.clear();let e=this.shapePrimitives;for(let r=0;r<e.length;r++){let s=e[r],n=s.shape.getBounds(Hw);s.transform?t.addRect(n,s.transform):t.addRect(n)}return t}}});function es(i,t){return i?i.prepend(t):t.clone()}var we,_l=p(()=>{Ee();Ft();ht();S0();G0();we=class i{constructor(t,e=!1){this.instructions=[],this.uid=$("graphicsPath"),this._dirty=!0,this.checkForHoles=e,typeof t=="string"?v0(t,this):this.instructions=t?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new xl(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(t,e){return t=t.clone(),this.instructions.push({action:"addPath",data:[t,e]}),this._dirty=!0,this}arc(...t){return this.instructions.push({action:"arc",data:t}),this._dirty=!0,this}arcTo(...t){return this.instructions.push({action:"arcTo",data:t}),this._dirty=!0,this}arcToSvg(...t){return this.instructions.push({action:"arcToSvg",data:t}),this._dirty=!0,this}bezierCurveTo(...t){return this.instructions.push({action:"bezierCurveTo",data:t}),this._dirty=!0,this}bezierCurveToShort(t,e,r,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(nt.shared),l=0,c=0;if(!o||o.action!=="bezierCurveTo")l=a.x,c=a.y;else{l=o.data[2],c=o.data[3];let h=a.x,u=a.y;l=h+(h-l),c=u+(u-c)}return this.instructions.push({action:"bezierCurveTo",data:[l,c,t,e,r,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...t){return this.instructions.push({action:"ellipse",data:t}),this._dirty=!0,this}lineTo(...t){return this.instructions.push({action:"lineTo",data:t}),this._dirty=!0,this}moveTo(...t){return this.instructions.push({action:"moveTo",data:t}),this}quadraticCurveTo(...t){return this.instructions.push({action:"quadraticCurveTo",data:t}),this._dirty=!0,this}quadraticCurveToShort(t,e,r){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(nt.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let l=n.x,c=n.y;o=l+(l-o),a=c+(c-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,t,e,r]}),this._dirty=!0,this}rect(t,e,r,s,n){return this.instructions.push({action:"rect",data:[t,e,r,s,n]}),this._dirty=!0,this}circle(t,e,r,s){return this.instructions.push({action:"circle",data:[t,e,r,s]}),this._dirty=!0,this}roundRect(...t){return this.instructions.push({action:"roundRect",data:t}),this._dirty=!0,this}poly(...t){return this.instructions.push({action:"poly",data:t}),this._dirty=!0,this}regularPoly(...t){return this.instructions.push({action:"regularPoly",data:t}),this._dirty=!0,this}roundPoly(...t){return this.instructions.push({action:"roundPoly",data:t}),this._dirty=!0,this}roundShape(...t){return this.instructions.push({action:"roundShape",data:t}),this._dirty=!0,this}filletRect(...t){return this.instructions.push({action:"filletRect",data:t}),this._dirty=!0,this}chamferRect(...t){return this.instructions.push({action:"chamferRect",data:t}),this._dirty=!0,this}star(t,e,r,s,n,o,a){n||(n=s/2);let l=-1*Math.PI/2+o,c=r*2,h=Math.PI*2/c,u=[];for(let d=0;d<c;d++){let f=d%2?n:s,m=d*h+l;u.push(t+f*Math.cos(m),e+f*Math.sin(m))}return this.poly(u,!0,a),this}clone(t=!1){let e=new i;if(e.checkForHoles=this.checkForHoles,!t)e.instructions=this.instructions.slice();else for(let r=0;r<this.instructions.length;r++){let s=this.instructions[r];e.instructions.push({action:s.action,data:s.data.slice()})}return e}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(t){if(t.isIdentity())return this;let e=t.a,r=t.b,s=t.c,n=t.d,o=t.tx,a=t.ty,l=0,c=0,h=0,u=0,d=0,f=0,m=0,g=0;for(let _=0;_<this.instructions.length;_++){let x=this.instructions[_],b=x.data;switch(x.action){case"moveTo":case"lineTo":l=b[0],c=b[1],b[0]=e*l+s*c+o,b[1]=r*l+n*c+a;break;case"bezierCurveTo":h=b[0],u=b[1],d=b[2],f=b[3],l=b[4],c=b[5],b[0]=e*h+s*u+o,b[1]=r*h+n*u+a,b[2]=e*d+s*f+o,b[3]=r*d+n*f+a,b[4]=e*l+s*c+o,b[5]=r*l+n*c+a;break;case"quadraticCurveTo":h=b[0],u=b[1],l=b[2],c=b[3],b[0]=e*h+s*u+o,b[1]=r*h+n*u+a,b[2]=e*l+s*c+o,b[3]=r*l+n*c+a;break;case"arcToSvg":l=b[5],c=b[6],m=b[0],g=b[1],b[0]=e*m+s*g,b[1]=r*m+n*g,b[5]=e*l+s*c+o,b[6]=r*l+n*c+a;break;case"circle":b[4]=es(b[3],t);break;case"rect":b[4]=es(b[4],t);break;case"ellipse":b[8]=es(b[8],t);break;case"roundRect":b[5]=es(b[5],t);break;case"addPath":b[0].transform(t);break;case"poly":b[2]=es(b[2],t);break;case"regularPoly":case"chamferRect":b[5]=es(b[5],t);break;case"closePath":break;default:L("unknown transform action",x.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(t){let e=this.instructions.length-1,r=this.instructions[e];if(!r)return t.x=0,t.y=0,t;for(;r.action==="closePath";){if(e--,e<0)return t.x=0,t.y=0,t;r=this.instructions[e]}switch(r.action){case"moveTo":case"lineTo":t.x=r.data[0],t.y=r.data[1];break;case"quadraticCurveTo":t.x=r.data[2],t.y=r.data[3];break;case"bezierCurveTo":t.x=r.data[4],t.y=r.data[5];break;case"arc":case"arcToSvg":t.x=r.data[5],t.y=r.data[6];break;case"addPath":r.data[0].getLastPoint(t);break}return t}}});function Pt(i,t,e){let r=i.getAttribute(t);return r?Number(r):e}var ad=p(()=>{"use strict"});function F0(i,t){let e=i.querySelectorAll("defs");for(let r=0;r<e.length;r++){let s=e[r];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":t.defs[o.id]=Ww(o);break;case"radialgradient":t.defs[o.id]=Vw(o);break;default:break}}}}function Ww(i){let t=Pt(i,"x1",0),e=Pt(i,"y1",0),r=Pt(i,"x2",1),s=Pt(i,"y2",0),n=i.getAttribute("gradientUnits")||"objectBoundingBox",o=new ee(t,e,r,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<i.children.length;a++){let l=i.children[a],c=Pt(l,"offset",0),h=Q.shared.setValue(l.getAttribute("stop-color")).toNumber();o.addColorStop(c,h)}return o}function Vw(i){return L("[SVG Parser] Radial gradients are not yet supported"),new ee(0,0,1,0)}var U0=p(()=>{Qt();ht();ii();ad()});function ld(i){let t=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return t?t[1]:""}var D0=p(()=>{"use strict"});function cd(i,t){let e=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in L0){let a=i.getAttribute(o);a&&O0(t,n,o,a.trim())}if(e){let o=e.split(";");for(let a=0;a<o.length;a++){let l=o[a].trim(),[c,h]=l.split(":");L0[c]&&O0(t,n,c,h.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function O0(i,t,e,r){switch(e){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=ld(r);t.strokeStyle.fill=i.defs[s]}else t.strokeStyle.color=Q.shared.setValue(r).toNumber();t.useStroke=!0}break;case"stroke-width":t.strokeStyle.width=Number(r);break;case"fill":if(r!=="none"){if(r.startsWith("url(")){let s=ld(r);t.fillStyle.fill=i.defs[s]}else t.fillStyle.color=Q.shared.setValue(r).toNumber();t.useFill=!0}break;case"fill-opacity":t.fillStyle.alpha=Number(r);break;case"stroke-opacity":t.strokeStyle.alpha=Number(r);break;case"opacity":t.fillStyle.alpha=Number(r),t.strokeStyle.alpha=Number(r);break}}var L0,N0=p(()=>{Qt();D0();L0={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function z0(i){if(i.length<=2)return!0;let t=i.map(a=>a.area).sort((a,l)=>l-a),[e,r]=t,s=t[t.length-1],n=e/r,o=r/s;return!(n>3&&o<2)}var H0=p(()=>{"use strict"});function W0(i){return i.split(/(?=[Mm])/).filter(r=>r.trim().length>0)}function V0(i){let t=i.match(/[-+]?[0-9]*\.?[0-9]+/g);if(!t||t.length<4)return 0;let e=t.map(Number),r=[],s=[];for(let h=0;h<e.length;h+=2)h+1<e.length&&(r.push(e[h]),s.push(e[h+1]));if(r.length===0||s.length===0)return 0;let n=Math.min(...r),o=Math.max(...r),a=Math.min(...s),l=Math.max(...s);return(o-n)*(l-a)}function hd(i,t){let e=new we(i,!1);for(let r of e.instructions)t.instructions.push(r)}var j0=p(()=>{_l()});function X0(i,t){if(typeof i=="string"){let o=document.createElement("div");o.innerHTML=i.trim(),i=o.querySelector("svg")}let e={context:t,defs:{},path:new we};F0(i,e);let r=i.children,{fillStyle:s,strokeStyle:n}=cd(i,e);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&Y0(a,e,s,n)}return t}function Y0(i,t,e,r){let s=i.children,{fillStyle:n,strokeStyle:o}=cd(i,t);n&&e?e={...e,...n}:n&&(e=n),o&&r?r={...r,...o}:o&&(r=o);let a=!e&&!r;a&&(e={color:0});let l,c,h,u,d,f,m,g,_,x,b,v,S,T,w,E,B;switch(i.nodeName.toLowerCase()){case"path":{T=i.getAttribute("d");let R=i.getAttribute("fill-rule"),M=W0(T),C=R==="evenodd",A=M.length>1;if(C&&A){let H=M.map(I=>({path:I,area:V0(I)}));if(H.sort((I,U)=>U.area-I.area),M.length>3||!z0(H))for(let I=0;I<H.length;I++){let U=H[I],j=I===0;t.context.beginPath();let G=new we(void 0,!0);hd(U.path,G),t.context.path(G),j?(e&&t.context.fill(e),r&&t.context.stroke(r)):t.context.cut()}else for(let I=0;I<H.length;I++){let U=H[I],j=I%2===1;t.context.beginPath();let G=new we(void 0,!0);hd(U.path,G),t.context.path(G),j?t.context.cut():(e&&t.context.fill(e),r&&t.context.stroke(r))}}else{let H=R?R==="evenodd":!0;w=new we(T,H),t.context.path(w),e&&t.context.fill(e),r&&t.context.stroke(r)}break}case"circle":m=Pt(i,"cx",0),g=Pt(i,"cy",0),_=Pt(i,"r",0),t.context.ellipse(m,g,_,_),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"rect":l=Pt(i,"x",0),c=Pt(i,"y",0),E=Pt(i,"width",0),B=Pt(i,"height",0),x=Pt(i,"rx",0),b=Pt(i,"ry",0),x||b?t.context.roundRect(l,c,E,B,x||b):t.context.rect(l,c,E,B),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"ellipse":m=Pt(i,"cx",0),g=Pt(i,"cy",0),x=Pt(i,"rx",0),b=Pt(i,"ry",0),t.context.beginPath(),t.context.ellipse(m,g,x,b),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"line":h=Pt(i,"x1",0),u=Pt(i,"y1",0),d=Pt(i,"x2",0),f=Pt(i,"y2",0),t.context.beginPath(),t.context.moveTo(h,u),t.context.lineTo(d,f),r&&t.context.stroke(r);break;case"polygon":S=i.getAttribute("points"),v=S.match(/-?\d+/g).map(R=>parseInt(R,10)),t.context.poly(v,!0),e&&t.context.fill(e),r&&t.context.stroke(r);break;case"polyline":S=i.getAttribute("points"),v=S.match(/-?\d+/g).map(R=>parseInt(R,10)),t.context.poly(v,!1),r&&t.context.stroke(r);break;case"g":case"svg":break;default:{L(`[SVG parser] <${i.nodeName}> elements unsupported`);break}}a&&(e=null);for(let R=0;R<s.length;R++)Y0(s[R],t,e,r)}var $0=p(()=>{ht();_l();U0();ad();N0();H0();j0()});function jw(i){return Q.isColorLike(i)}function q0(i){return i instanceof Ge}function K0(i){return i instanceof ee}function Xw(i){return i instanceof F}function Yw(i,t,e){let r=Q.shared.setValue(t??0);return i.color=r.toNumber(),i.alpha=r.alpha===1?e.alpha:r.alpha,i.texture=F.WHITE,{...e,...i}}function $w(i,t,e){return i.texture=t,{...e,...i}}function Z0(i,t,e){return i.fill=t,i.color=16777215,i.texture=t.texture,i.matrix=t.transform,i.textureSpace=t.textureSpace,{...e,...i}}function Q0(i,t,e){return t.buildGradient(),i.fill=t,i.color=16777215,i.texture=t.texture,i.matrix=t.transform,i.textureSpace=t.textureSpace,{...e,...i}}function qw(i,t){let e={...t,...i},r=Q.shared.setValue(e.color);return e.alpha*=r.alpha,e.color=r.toNumber(),e}function sr(i,t){if(i==null)return null;let e={},r=i;return jw(i)?Yw(e,i,t):Xw(i)?$w(e,i,t):q0(i)?Z0(e,i,t):K0(i)?Q0(e,i,t):r.fill&&q0(r.fill)?Z0(r,r.fill,t):r.fill&&K0(r.fill)?Q0(r,r.fill,t):qw(r,t)}function rs(i,t){let{width:e,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...l}=t,c=sr(i,l);return c?{width:e,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...c}:null}var ud=p(()=>{Qt();gt();ii();jn()});function J0(i,t){let e=1,r=i.shapePath.shapePrimitives;for(let s=0;s<r.length;s++){let n=r[s].shape;if(n.type!=="polygon")continue;let o=n.points,a=o.length;if(a<6)continue;let l=n.closePath;for(let c=0;c<a;c+=2){if(!l&&(c===0||c===a-2))continue;let h=(c-2+a)%a,u=(c+2)%a,d=o[h],f=o[h+1],m=o[c],g=o[c+1],_=o[u],x=o[u+1],b=d-m,v=f-g,S=_-m,T=x-g,w=b*b+v*v,E=S*S+T*T;if(w<1e-12||E<1e-12)continue;let M=(b*S+v*T)/Math.sqrt(w*E);M<-1?M=-1:M>1&&(M=1);let C=Math.sqrt((1-M)*.5);if(C<1e-6)continue;let A=Math.min(1/C,t);A>e&&(e=A)}}return e}var tv=p(()=>{"use strict"});var Kw,ev,dd,ge,fd=p(()=>{Ht();Qt();ot();Ee();gt();Ft();yt();ie();_l();$0();ud();tv();Kw=new nt,ev=new k,dd=class Ve extends ut{constructor(){super(...arguments),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=$("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this.destroyed=!1,this._activePath=new we,this._transform=new k,this._fillStyle={...Ve.defaultFillStyle},this._strokeStyle={...Ve.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new dt,this._boundsDirty=!0}clone(){let t=new Ve;return t.batchMode=this.batchMode,t.instructions=this.instructions.slice(),t._activePath=this._activePath.clone(),t._transform=this._transform.clone(),t._fillStyle={...this._fillStyle},t._strokeStyle={...this._strokeStyle},t._stateStack=this._stateStack.slice(),t._bounds=this._bounds.clone(),t._boundsDirty=!0,t}get fillStyle(){return this._fillStyle}set fillStyle(t){this._fillStyle=sr(t,Ve.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(t){this._strokeStyle=rs(t,Ve.defaultStrokeStyle)}setFillStyle(t){return this._fillStyle=sr(t,Ve.defaultFillStyle),this}setStrokeStyle(t){return this._strokeStyle=sr(t,Ve.defaultStrokeStyle),this}texture(t,e,r,s,n,o){return this.instructions.push({action:"texture",data:{image:t,dx:r||0,dy:s||0,dw:n||t.frame.width,dh:o||t.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:e||e===0?Q.shared.setValue(e).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new we,this}fill(t,e){let r,s=this.instructions[this.instructions.length-1];return this._tick===0&&s?.action==="stroke"?r=s.data.path:r=this._activePath.clone(),r?(t!=null&&(e!==void 0&&typeof t=="number"&&(O(rt,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),t={color:t,alpha:e}),this._fillStyle=sr(t,Ve.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:r}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:t,y:e}=this._activePath.getLastPoint(nt.shared);this._activePath.clear(),this._activePath.moveTo(t,e)}stroke(t){let e,r=this.instructions[this.instructions.length-1];return this._tick===0&&r?.action==="fill"?e=r.data.path:e=this._activePath.clone(),e?(t!=null&&(this._strokeStyle=rs(t,Ve.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:e}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let t=0;t<2;t++){let e=this.instructions[this.instructions.length-1-t],r=this._activePath.clone();if(e&&(e.action==="stroke"||e.action==="fill"))if(e.data.hole)e.data.hole.addPath(r);else{e.data.hole=r;break}}return this._initNextPathLocation(),this}arc(t,e,r,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*t+a.c*e+a.tx,a.b*t+a.d*e+a.ty,r,s,n,o),this}arcTo(t,e,r,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*t+o.c*e+o.tx,o.b*t+o.d*e+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}arcToSvg(t,e,r,s,n,o,a){this._tick++;let l=this._transform;return this._activePath.arcToSvg(t,e,r,s,n,l.a*o+l.c*a+l.tx,l.b*o+l.d*a+l.ty),this}bezierCurveTo(t,e,r,s,n,o,a){this._tick++;let l=this._transform;return this._activePath.bezierCurveTo(l.a*t+l.c*e+l.tx,l.b*t+l.d*e+l.ty,l.a*r+l.c*s+l.tx,l.b*r+l.d*s+l.ty,l.a*n+l.c*o+l.tx,l.b*n+l.d*o+l.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(t,e,r,s){return this._tick++,this._activePath.ellipse(t,e,r,s,this._transform.clone()),this}circle(t,e,r){return this._tick++,this._activePath.circle(t,e,r,this._transform.clone()),this}path(t){return this._tick++,this._activePath.addPath(t,this._transform.clone()),this}lineTo(t,e){this._tick++;let r=this._transform;return this._activePath.lineTo(r.a*t+r.c*e+r.tx,r.b*t+r.d*e+r.ty),this}moveTo(t,e){this._tick++;let r=this._transform,s=this._activePath.instructions,n=r.a*t+r.c*e+r.tx,o=r.b*t+r.d*e+r.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(t,e,r,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*t+o.c*e+o.tx,o.b*t+o.d*e+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}rect(t,e,r,s){return this._tick++,this._activePath.rect(t,e,r,s,this._transform.clone()),this}roundRect(t,e,r,s,n){return this._tick++,this._activePath.roundRect(t,e,r,s,n,this._transform.clone()),this}poly(t,e){return this._tick++,this._activePath.poly(t,e,this._transform.clone()),this}regularPoly(t,e,r,s,n=0,o){return this._tick++,this._activePath.regularPoly(t,e,r,s,n,o),this}roundPoly(t,e,r,s,n,o){return this._tick++,this._activePath.roundPoly(t,e,r,s,n,o),this}roundShape(t,e,r,s){return this._tick++,this._activePath.roundShape(t,e,r,s),this}filletRect(t,e,r,s,n){return this._tick++,this._activePath.filletRect(t,e,r,s,n),this}chamferRect(t,e,r,s,n,o){return this._tick++,this._activePath.chamferRect(t,e,r,s,n,o),this}star(t,e,r,s,n=0,o=0){return this._tick++,this._activePath.star(t,e,r,s,n,o,this._transform.clone()),this}svg(t){return this._tick++,X0(t,this),this}restore(){let t=this._stateStack.pop();return t&&(this._transform=t.transform,this._fillStyle=t.fillStyle,this._strokeStyle=t.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(t){return this._transform.rotate(t),this}scale(t,e=t){return this._transform.scale(t,e),this}setTransform(t,e,r,s,n,o){return t instanceof k?(this._transform.set(t.a,t.b,t.c,t.d,t.tx,t.ty),this):(this._transform.set(t,e,r,s,n,o),this)}transform(t,e,r,s,n,o){return t instanceof k?(this._transform.append(t),this):(ev.set(t,e,r,s,n,o),this._transform.append(ev),this)}translate(t,e=t){return this._transform.translate(t,e),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this._boundsDirty=!0,this.dirty=!0,this.emit("update",this,16)}get bounds(){if(!this._boundsDirty)return this._bounds;this._boundsDirty=!1;let t=this._bounds;t.clear();for(let e=0;e<this.instructions.length;e++){let r=this.instructions[e],s=r.action;if(s==="fill"){let n=r.data;t.addBounds(n.path.bounds)}else if(s==="texture"){let n=r.data;t.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=r.data,o=n.style.alignment,a=n.style.width*(1-o);n.style.join==="miter"&&(a*=J0(n.path,n.style.miterLimit));let l=n.path.bounds;t.addFrame(l.minX-a,l.minY-a,l.maxX+a,l.maxY+a)}}return t.isValid||t.set(0,0,0,0),t}containsPoint(t){if(!this.bounds.containsPoint(t.x,t.y))return!1;let e=this.instructions,r=!1;for(let s=0;s<e.length;s++){let n=e[s],o=n.data,a=o.path;if(!n.action||!a)continue;let l=o.style,c=a.shapePath.shapePrimitives;for(let h=0;h<c.length;h++){let u=c[h].shape;if(!l||!u)continue;let d=c[h].transform,f=d?d.applyInverse(t,Kw):t;if(n.action==="fill")r=u.contains(f.x,f.y);else{let g=l;r=u.strokeContains(f.x,f.y,g.width,g.alignment)}let m=o.hole;if(m){let g=m.shapePath?.shapePrimitives;if(g)for(let _=0;_<g.length;_++)g[_].shape.contains(f.x,f.y)&&(r=!1)}if(r)return!0}}return r}unload(){this.emit("unload",this);for(let t in this._gpuData)this._gpuData[t]?.destroy();this._gpuData=Object.create(null)}destroy(t=!1){if(this.destroyed)return;if(this.destroyed=!0,this._stateStack.length=0,this._transform=null,this.unload(),this.emit("destroy",this),this.removeAllListeners(),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._fillStyle.texture&&(this._fillStyle.fill&&"uid"in this._fillStyle.fill?this._fillStyle.fill.destroy():this._fillStyle.texture.destroy(r)),this._strokeStyle.texture&&(this._strokeStyle.fill&&"uid"in this._strokeStyle.fill?this._strokeStyle.fill.destroy():this._strokeStyle.texture.destroy(r))}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};dd.defaultFillStyle={color:16777215,alpha:1,texture:F.WHITE,matrix:null,fill:null,textureSpace:"local"};dd.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:F.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};ge=dd});var pd,md,xd,rv,iv=p(()=>{P();Ro();Ie();pd=class{constructor(){this.isBatchable=!1}reset(){this.isBatchable=!1,this.context=null,this.graphicsData&&(this.graphicsData.destroy(),this.graphicsData=null)}destroy(){this.reset()}},md=class{constructor(){this.instructions=new hr}init(){this.instructions.reset()}destroy(){this.instructions.destroy(),this.instructions=null}},xd=class gd{constructor(t){this._renderer=t,this._managedContexts=new kt({renderer:t,type:"resource",name:"graphicsContext"})}init(t){gd.defaultOptions.bezierSmoothness=t?.bezierSmoothness??gd.defaultOptions.bezierSmoothness}getContextRenderData(t){return this.getGpuContext(t).graphicsData||this._initContextRenderData(t)}updateGpuContext(t){let e=t._gpuData,r=!!e[this._renderer.uid],s=e[this._renderer.uid]||this._initContext(t);return(t.dirty||!r)&&(r&&s.reset(),s.isBatchable=!1,t.dirty=!1),s}getGpuContext(t){return t._gpuData[this._renderer.uid]||this._initContext(t)}_initContextRenderData(t){let e=new md,r=this.getGpuContext(t);return r.graphicsData=e,e.init(),e}_initContext(t){let e=new pd;return e.context=t,t._gpuData[this._renderer.uid]=e,this._managedContexts.add(t),e}destroy(){this._managedContexts.destroy(),this._renderer=null}};xd.extension={type:[y.CanvasSystem],name:"graphicsContext"};xd.defaultOptions={bezierSmoothness:.5};rv=xd});var qn,sv=p(()=>{P();Be();Ie();qn=class{constructor(t,e){this.state=Ot.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this),this._managedGraphics=new kt({renderer:t,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(t){return!1}addRenderable(t,e){this._managedGraphics.add(t),this.renderer.renderPipes.batch.break(e),e.add(t)}updateRenderable(t){}execute(t){t.isRenderable&&this._adaptor.execute(this,t)}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null}};qn.extension={type:[y.CanvasPipes],name:"graphics"}});var _d,Kn,nv=p(()=>{P();Be();Ie();Ke();Ga();Vu();_d=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(t=>{bt.return(t)}),this.batches.length=0}},Kn=class{constructor(t,e){this.state=Ot.for2d(),this.renderer=t,this._adaptor=e,this.renderer.runners.contextChange.add(this),this._managedGraphics=new kt({renderer:t,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(t){let e=t.context,r=!!t._gpuData,n=this.renderer.graphicsContext.updateGpuContext(e);return!!(n.isBatchable||r!==n.isBatchable)}addRenderable(t,e){let s=this.renderer.graphicsContext.updateGpuContext(t.context);t.didViewUpdate&&this._rebuild(t),s.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 n=r[s];n._batcher.updateElement(n)}}execute(t){if(!t.isRenderable)return;let e=this.renderer,r=t.context;if(!e.graphicsContext.getGpuContext(r).batches.length)return;let n=r.customShader||this._adaptor.shader;this.state.blendMode=t.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=t.groupTransform,o.uRound=e._roundPixels|t._roundPixels,Wi(t.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,t)}_rebuild(t){let e=this._getGpuDataForRenderable(t),s=this.renderer.graphicsContext.updateGpuContext(t.context);e.destroy(),s.isBatchable&&this._updateBatchesForRenderable(t,e)}_addToBatcher(t,e){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(t).batches;for(let n=0;n<s.length;n++){let o=s[n];r.addToBatch(o,e)}}_getGpuDataForRenderable(t){return t._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(t)}_initGpuDataForRenderable(t){let e=new _d;return t._gpuData[this.renderer.uid]=e,this._managedGraphics.add(t),e}_updateBatchesForRenderable(t,e){let r=t.context,n=this.renderer.graphicsContext.getGpuContext(r),o=this.renderer._roundPixels|t._roundPixels;e.batches=n.batches.map(a=>{let l=bt.get(si);return a.copyTo(l),l.renderable=t,l.roundPixels=o,l})}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};Kn.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"graphics"}});var ov=p(()=>{P();iv();sv();fl();nv();z.add(qn);z.add(Kn);z.add(rv);z.add(Ji)});var oe,yd=p(()=>{yt();Es();fd();ov();oe=class i extends Le{constructor(t){t instanceof ge&&(t={context:t});let{context:e,roundPixels:r,...s}=t||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",e?this.context=e:(this.context=this._ownedContext=new ge,this.context.autoGarbageCollect=this.autoGarbageCollect),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=r??!1}set context(t){t!==this._context&&(this._context&&(this._context.off("update",this.onViewUpdate,this),this._context.off("unload",this.unload,this)),this._context=t,this._context.on("update",this.onViewUpdate,this),this._context.on("unload",this.unload,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(t){return this._context.containsPoint(t)}destroy(t){this._ownedContext&&!t?this._ownedContext.destroy(t):(t===!0||t?.context===!0)&&this._context.destroy(t),this._context?.off("update",this.onViewUpdate,this),this._context?.off("unload",this.unload,this),this._ownedContext=null,this._context=null,super.destroy(t)}_onTouch(t){this._gcLastUsed=t,this._context._gcLastUsed=t}_callContextMethod(t,e){return this.context[t](...e),this}setFillStyle(...t){return this._callContextMethod("setFillStyle",t)}setStrokeStyle(...t){return this._callContextMethod("setStrokeStyle",t)}fill(...t){return this._callContextMethod("fill",t)}stroke(...t){return this._callContextMethod("stroke",t)}texture(...t){return this._callContextMethod("texture",t)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...t){return this._callContextMethod("arc",t)}arcTo(...t){return this._callContextMethod("arcTo",t)}arcToSvg(...t){return this._callContextMethod("arcToSvg",t)}bezierCurveTo(...t){return this._callContextMethod("bezierCurveTo",t)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...t){return this._callContextMethod("ellipse",t)}circle(...t){return this._callContextMethod("circle",t)}path(...t){return this._callContextMethod("path",t)}lineTo(...t){return this._callContextMethod("lineTo",t)}moveTo(...t){return this._callContextMethod("moveTo",t)}quadraticCurveTo(...t){return this._callContextMethod("quadraticCurveTo",t)}rect(...t){return this._callContextMethod("rect",t)}roundRect(...t){return this._callContextMethod("roundRect",t)}poly(...t){return this._callContextMethod("poly",t)}regularPoly(...t){return this._callContextMethod("regularPoly",t)}roundPoly(...t){return this._callContextMethod("roundPoly",t)}roundShape(...t){return this._callContextMethod("roundShape",t)}filletRect(...t){return this._callContextMethod("filletRect",t)}chamferRect(...t){return this._callContextMethod("chamferRect",t)}star(...t){return this._callContextMethod("star",t)}svg(...t){return this._callContextMethod("svg",t)}restore(...t){return this._callContextMethod("restore",t)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...t){return this._callContextMethod("rotate",t)}scaleTransform(...t){return this._callContextMethod("scale",t)}setTransform(...t){return this._callContextMethod("setTransform",t)}transform(...t){return this._callContextMethod("transform",t)}translateTransform(...t){return this._callContextMethod("translate",t)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(t){this._context.fillStyle=t}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(t){this._context.strokeStyle=t}clone(t=!1){return t?new i(this._context.clone()):(this._ownedContext=null,new i(this._context))}lineStyle(t,e,r){O(rt,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return t&&(s.width=t),e&&(s.color=e),r&&(s.alpha=r),this.context.strokeStyle=s,this}beginFill(t,e){O(rt,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let r={};return t!==void 0&&(r.color=t),e!==void 0&&(r.alpha=e),this.context.fillStyle=r,this}endFill(){O(rt,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let t=this.context.strokeStyle;return(t.width!==ge.defaultStrokeStyle.width||t.color!==ge.defaultStrokeStyle.color||t.alpha!==ge.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...t){return O(rt,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",t)}drawEllipse(...t){return O(rt,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",t)}drawPolygon(...t){return O(rt,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",t)}drawRect(...t){return O(rt,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",t)}drawRoundedRect(...t){return O(rt,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",t)}drawStar(...t){return O(rt,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",t)}}});function Zw(i,t,e,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(t+n,e),i.lineTo(t+r-n,e),i.quadraticCurveTo(t+r,e,t+r,e+n),i.lineTo(t+r,e+s-n),i.quadraticCurveTo(t+r,e+s,t+r-n,e+s),i.lineTo(t+n,e+s),i.quadraticCurveTo(t,e+s,t,e+s-n),i.lineTo(t,e+n),i.quadraticCurveTo(t,e,t+n,e)}function av(i,t){switch(t.type){case"rectangle":{let e=t;i.rect(e.x,e.y,e.width,e.height);break}case"roundedRectangle":{let e=t;Zw(i,e.x,e.y,e.width,e.height,e.radius);break}case"circle":{let e=t;i.moveTo(e.x+e.radius,e.y),i.arc(e.x,e.y,e.radius,0,Math.PI*2);break}case"ellipse":{let e=t;i.ellipse?(i.moveTo(e.x+e.halfWidth,e.y),i.ellipse(e.x,e.y,e.halfWidth,e.halfHeight,0,0,Math.PI*2)):(i.save(),i.translate(e.x,e.y),i.scale(e.halfWidth,e.halfHeight),i.moveTo(1,0),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let e=t;i.moveTo(e.x,e.y),i.lineTo(e.x2,e.y2),i.lineTo(e.x3,e.y3),i.closePath();break}case"polygon":default:{let e=t,r=e.points;if(!r?.length)break;i.moveTo(r[0],r[1]);for(let s=2;s<r.length;s+=2)i.lineTo(r[s],r[s+1]);e.closePath&&i.closePath();break}}}function Qw(i,t,e){let r=[],s=[],n=[];if(!Tr[t.type]?.build(t,r))return!1;let a=t.closePath??!0;Zi(r,e,!1,a,s,n);for(let l=0;l<n.length;l+=3){let c=n[l]*2,h=n[l+1]*2,u=n[l+2]*2;i.moveTo(s[c],s[c+1]),i.lineTo(s[h],s[h+1]),i.lineTo(s[u],s[u+1]),i.closePath()}return!0}function Jw(i,t){if(!t?.length)return!1;for(let e=0;e<t.length;e++){let r=t[e];if(!r?.shape)continue;let s=r.transform,n=s&&!s.isIdentity();n&&(i.save(),i.transform(s.a,s.b,s.c,s.d,s.tx,s.ty)),av(i,r.shape),n&&i.restore()}return!0}var Zn,lv=p(()=>{P();al();yd();hl();ht();Zn=class{constructor(t){this._warnedMaskTypes=new Set,this._canvasMaskStack=[],this._renderer=t}push(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}pop(t,e,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"popMaskEnd",mask:t,inverse:e._maskOptions.inverse,canBundle:!1})}execute(t){if(t.action!=="pushMaskBegin"&&t.action!=="popMaskEnd")return;let e=this._renderer,r=e.canvasContext,s=r?.activeContext;if(!s)return;if(t.action==="popMaskEnd"){this._canvasMaskStack.pop()&&s.restore();return}t.inverse&&this._warnOnce("inverse","CanvasRenderer: inverse masks are not supported on Canvas2D; ignoring inverse flag.");let n=t.mask.mask;if(!(n instanceof oe)){this._warnOnce("nonGraphics","CanvasRenderer: only Graphics masks are supported in Canvas2D; skipping mask."),this._canvasMaskStack.push(!1);return}let o=n,a=o.context?.instructions;if(!a?.length){this._canvasMaskStack.push(!1);return}s.save(),r.setContextTransform(o.groupTransform,(e._roundPixels|o._roundPixels)===1),s.beginPath();let l=!1,c=!1;for(let h=0;h<a.length;h++){let u=a[h],d=u.action;if(d!=="fill"&&d!=="stroke")continue;let f=u.data,m=f?.path?.shapePath;if(!m?.shapePrimitives?.length)continue;let g=d==="stroke",_=m.shapePrimitives;for(let x=0;x<_.length;x++){let b=_[x];if(!b?.shape)continue;let v=b.transform,S=v&&!v.isIdentity();S&&(s.save(),s.transform(v.a,v.b,v.c,v.d,v.tx,v.ty)),g&&f.style?l=Qw(s,b.shape,f.style)||l:(av(s,b.shape),c=Jw(s,b.holes)||c,l=!0),S&&s.restore()}}if(!l){s.restore(),this._canvasMaskStack.push(!1);return}c?s.clip("evenodd"):s.clip(),this._canvasMaskStack.push(!0)}destroy(){this._renderer=null,this._warnedMaskTypes=null,this._canvasMaskStack=null}_warnOnce(t,e){this._warnedMaskTypes.has(t)||(this._warnedMaskTypes.add(t),L(e))}};Zn.extension={type:[y.CanvasPipes],name:"stencilMask"}});function cv(){let i=$o(),t=Object.create(null);return t.inherit=_t,t.none=_t,t.normal="source-over",t.add="lighter",t.multiply=i?"multiply":_t,t.screen=i?"screen":_t,t.overlay=i?"overlay":_t,t.darken=i?"darken":_t,t.lighten=i?"lighten":_t,t["color-dodge"]=i?"color-dodge":_t,t["color-burn"]=i?"color-burn":_t,t["hard-light"]=i?"hard-light":_t,t["soft-light"]=i?"soft-light":_t,t.difference=i?"difference":_t,t.exclusion=i?"exclusion":_t,t.saturation=i?"saturation":_t,t.color=i?"color":_t,t.luminosity=i?"luminosity":_t,t["linear-burn"]=i?"color-burn":_t,t["linear-dodge"]=i?"color-dodge":_t,t["linear-light"]=i?"hard-light":_t,t["pin-light"]=i?"hard-light":_t,t["vivid-light"]=i?"hard-light":_t,t["hard-mix"]=_t,t.negation=i?"difference":_t,t["normal-npm"]=t.normal,t["add-npm"]=t.add,t["screen-npm"]=t.screen,t.erase="destination-out",t.subtract=_t,t.divide=_t,t.min=_t,t.max=_t,t}var _t,hv=p(()=>{Hc();_t="source-over"});var tC,Qn,uv=p(()=>{Qt();P();ot();hv();tC=new k,Qn=class{constructor(t){this.activeResolution=1,this.smoothProperty="imageSmoothingEnabled",this.blendModes=cv(),this._activeBlendMode="normal",this._projTransform=null,this._outerBlend=!1,this._warnedBlendModes=new Set,this._renderer=t}resolutionChange(t){this.activeResolution=t}init(){let t=this._renderer.background.alpha<1;if(this.rootContext=this._renderer.canvas.getContext("2d",{alpha:t}),this.activeContext=this.rootContext,this.activeResolution=this._renderer.resolution,!this.rootContext.imageSmoothingEnabled){let e=this.rootContext;e.webkitImageSmoothingEnabled?this.smoothProperty="webkitImageSmoothingEnabled":e.mozImageSmoothingEnabled?this.smoothProperty="mozImageSmoothingEnabled":e.oImageSmoothingEnabled?this.smoothProperty="oImageSmoothingEnabled":e.msImageSmoothingEnabled&&(this.smoothProperty="msImageSmoothingEnabled")}}setContextTransform(t,e,r,s){let n=s?k.IDENTITY:this._renderer.globalUniforms.globalUniformData?.worldTransformMatrix||k.IDENTITY,o=tC;o.copyFrom(n),o.append(t);let a=this._projTransform,l=this.activeResolution;if(r=r||l,a){let c=k.shared;c.copyFrom(o),c.prepend(a),o=c}e?this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*l|0,o.ty*l|0):this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*l,o.ty*l)}clear(t,e){let r=this.activeContext,s=this._renderer;if(r.clearRect(0,0,s.width,s.height),t){let n=Q.shared.setValue(t);r.globalAlpha=e??n.alpha,r.fillStyle=n.toHex(),r.fillRect(0,0,s.width,s.height),r.globalAlpha=1}}setBlendMode(t){if(this._activeBlendMode===t)return;this._activeBlendMode=t,this._outerBlend=!1;let e=this.blendModes[t];if(!e){this._warnedBlendModes.has(t)||(console.warn(`CanvasRenderer: blend mode "${t}" is not supported in Canvas2D; falling back to "source-over".`),this._warnedBlendModes.add(t)),this.activeContext.globalCompositeOperation="source-over";return}this.activeContext.globalCompositeOperation=e}destroy(){this.rootContext=null,this.activeContext=null,this._warnedBlendModes.clear()}};Qn.extension={type:[y.CanvasSystem],name:"canvasContext"}});var Jn,dv=p(()=>{P();Jn=class{constructor(){this.maxTextures=16,this.maxBatchableTextures=16,this.maxUniformBindings=0}init(){}};Jn.extension={type:[y.CanvasSystem],name:"limits"}});var yl,fv=p(()=>{Qt();xt();ht();fr();yl=class{init(t,e){this._renderer=t,this._renderTargetSystem=e}initGpuRenderTarget(t){let e=t.colorTexture,{canvas:r,context:s}=this._ensureCanvas(e);return{canvas:r,context:s,width:r.width,height:r.height}}resizeGpuRenderTarget(t){let e=t.colorTexture,{canvas:r}=this._ensureCanvas(e);r.width=t.pixelWidth,r.height=t.pixelHeight}startRenderPass(t,e,r,s){let n=this._renderTargetSystem.getGpuRenderTarget(t);this._renderer.canvasContext.activeContext=n.context,this._renderer.canvasContext.activeResolution=t.resolution,e&&this.clear(t,e,r,s)}clear(t,e,r,s){let o=this._renderTargetSystem.getGpuRenderTarget(t).context,a=s||{x:0,y:0,width:t.pixelWidth,height:t.pixelHeight};if(o.setTransform(1,0,0,1,0,0),o.clearRect(a.x,a.y,a.width,a.height),r){let l=Q.shared.setValue(r);l.alpha>0&&(o.globalAlpha=l.alpha,o.fillStyle=l.toHex(),o.fillRect(a.x,a.y,a.width,a.height),o.globalAlpha=1)}}finishRenderPass(){}copyToTexture(t,e,r,s,n){let a=this._renderTargetSystem.getGpuRenderTarget(t).canvas,l=e.source,{context:c}=this._ensureCanvas(l),h=n?.x??0,u=n?.y??0;return c.drawImage(a,r.x,r.y,s.width,s.height,h,u,s.width,s.height),l.update(),e}copyDepthTexture(t,e,r,s,n){L("[CanvasRenderTargetAdaptor] copyDepthTexture is not supported in the canvas renderer")}destroyGpuRenderTarget(t){}_ensureCanvas(t){let e=t.resource;(!e||!Tt.test(e))&&(e=W.get().createCanvas(t.pixelWidth,t.pixelHeight),t.resource=e),(e.width!==t.pixelWidth||e.height!==t.pixelHeight)&&(e.width=t.pixelWidth,e.height=t.pixelHeight);let r=e.getContext("2d");return{canvas:e,context:r}}}});var to,pv=p(()=>{P();Wa();fv();to=class extends Sr{constructor(t){super(t),this.adaptor=new yl,this.adaptor.init(t,this)}};to.extension={type:[y.CanvasSystem],name:"renderTarget"}});var eo,mv=p(()=>{xt();P();Pi();eo=class{constructor(t){}init(){}initSource(t){}generateCanvas(t){let e=W.get().createCanvas(),r=e.getContext("2d"),s=Z.getCanvasSource(t);if(!s)return e;let n=t.frame,o=t.source._resolution??t.source.resolution??1,a=n.x*o,l=n.y*o,c=n.width*o,h=n.height*o;return e.width=Math.ceil(c),e.height=Math.ceil(h),r.drawImage(s,a,l,c,h,0,0,c,h),e}getPixels(t){let e=this.generateCanvas(t);return{pixels:e.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,e.width,e.height).data,width:e.width,height:e.height}}destroy(){}};eo.extension={type:[y.CanvasSystem],name:"texture"}});var yv={};Vl(yv,{CanvasRenderer:()=>bd});var eC,rC,iC,gv,xv,_v,bd,bv=p(()=>{P();Ih();Fh();m0();Lh();x0();qh();Qh();_0();lv();tu();Vr();La();Ne();uv();dv();pv();mv();eC=[...Yi,Qn,Jn,eo,to],rC=[Kr,un,Yr,Xr,qr,Zn,Yn,jr],iC=[g0,Xn],gv=[],xv=[],_v=[];z.handleByNamedList(y.CanvasSystem,gv);z.handleByNamedList(y.CanvasPipes,xv);z.handleByNamedList(y.CanvasPipesAdaptor,_v);z.add(...eC,...rC,...iC);bd=class extends Te{constructor(){let t={name:"canvas",type:Lt.CANVAS,systems:gv,renderPipes:xv,renderPipeAdaptors:_v};super(t)}}});function Rv(i=1e3,t=0,e=!1){if(isNaN(i)||i<0)throw new TypeError("Invalid max value");if(isNaN(t)||t<0)throw new TypeError("Invalid ttl value");if(typeof e!="boolean")throw new TypeError("Invalid resetTtl value");return new Sd(i,t,e)}var Sd,kv=p(()=>{Sd=class{constructor(t=0,e=0,r=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=t,this.resetTtl=r,this.size=0,this.ttl=e}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(t){if(this.has(t)){let e=this.items[t];delete this.items[t],this.size--,e.prev!==null&&(e.prev.next=e.next),e.next!==null&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),this.last===e&&(this.last=e.prev)}return this}entries(t=this.keys()){let e=new Array(t.length);for(let r=0;r<t.length;r++){let s=t[r];e[r]=[s,this.get(s)]}return e}evict(t=!1){if(t||this.size>0){let e=this.first;delete this.items[e.key],--this.size===0?(this.first=null,this.last=null):(this.first=e.next,this.first.prev=null)}return this}expiresAt(t){let e;return this.has(t)&&(e=this.items[t].expiry),e}get(t){let e=this.items[t];if(e!==void 0){if(this.ttl>0&&e.expiry<=Date.now()){this.delete(t);return}return this.moveToEnd(e),e.value}}has(t){return t in this.items}moveToEnd(t){this.last!==t&&(t.prev!==null&&(t.prev.next=t.next),t.next!==null&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),t.prev=this.last,t.next=null,this.last!==null&&(this.last.next=t),this.last=t,this.first===null&&(this.first=t))}keys(){let t=new Array(this.size),e=this.first,r=0;for(;e!==null;)t[r++]=e.key,e=e.next;return t}setWithEvicted(t,e,r=this.resetTtl){let s=null;if(this.has(t))this.set(t,e,!0,r);else{this.max>0&&this.size===this.max&&(s={...this.first},this.evict(!0));let n=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e};++this.size===1?this.first=n:this.last.next=n,this.last=n}return s}set(t,e,r=!1,s=this.resetTtl){let n=this.items[t];return r||n!==void 0?(n.value=e,r===!1&&s&&(n.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.moveToEnd(n)):(this.max>0&&this.size===this.max&&this.evict(!0),n=this.items[t]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:t,prev:this.last,next:null,value:e},++this.size===1?this.first=n:this.last.next=n,this.last=n),this}values(t=this.keys()){let e=new Array(t.length);for(let r=0;r<t.length;r++)e[r]=this.get(t[r]);return e}}});function Td(i){return!!i.tagStyles&&Object.keys(i.tagStyles).length>0}function wd(i){return i.includes("<")}function nC(i,t){return i.clone().assign(t)}function Bv(i,t){let e=[],r=t.tagStyles;if(!Td(t)||!wd(i))return e.push({text:i,style:t}),e;let s=[t],n=[],o="",a=0;for(;a<i.length;){let l=i[a];if(l==="<"){let c=i.indexOf(">",a);if(c===-1){o+=l,a++;continue}let h=i.indexOf("<",a+1);if(h!==-1&&h<c){o+=l,a++;continue}let u=i.slice(a+1,c);if(u.startsWith("/")){let d=u.slice(1).trim();if(n.length>0&&n[n.length-1]===d){o.length>0&&(e.push({text:o,style:s[s.length-1]}),o=""),s.pop(),n.pop(),a=c+1;continue}else{o+=i.slice(a,c+1),a=c+1;continue}}else{let d=u.trim();if(r[d]){o.length>0&&(e.push({text:o,style:s[s.length-1]}),o="");let f=s[s.length-1],m=nC(f,r[d]);s.push(m),n.push(d),a=c+1;continue}else{o+=i.slice(a,c+1),a=c+1;continue}}}else o+=l,a++}return o.length>0&&e.push({text:o,style:s[s.length-1]}),e}var Cd=p(()=>{"use strict"});function is(i){return typeof i!="string"?!1:aC.has(i.charCodeAt(0))}function ae(i,t){return typeof i!="string"?!1:cC.has(i.charCodeAt(0))}function fC(i){return typeof i!="string"?!1:dC.has(i.charCodeAt(0))}function wl(i){return i==="normal"||i==="pre-line"}function Cl(i){return i==="normal"}function Fe(i){if(typeof i!="string")return"";let t=i.length-1;for(;t>=0&&ae(i[t]);)t--;return t<i.length-1?i.slice(0,t+1):i}function El(i){let t=[],e=[];if(typeof i!="string")return t;for(let r=0;r<i.length;r++){let s=i[r],n=i[r+1];if(ae(s,n)||is(s)){e.length>0&&(t.push(e.join("")),e.length=0),s==="\r"&&n===`
|
|
907
907
|
`?(t.push(`\r
|
|
908
|
-
`),r++):t.push(s);continue}e.push(s),
|
|
909
|
-
`||
|
|
910
|
-
`?(u.push(d),d=[]):
|
|
911
|
-
`)}var pC,Dv=p(()=>{Pl();pC={willReadFrequently:!0}});var Lv,or,je,Ed=p(()=>{Av();xt();Gv();Cd();Pl();Dv();Lv={willReadFrequently:!0},or=class X{static get experimentalLetterSpacingSupported(){let t=X._experimentalLetterSpacingSupported;if(t===void 0){let e=W.get().getCanvasRenderingContext2D().prototype;t=X._experimentalLetterSpacingSupported="letterSpacing"in e||"textLetterSpacing"in e}return t}constructor(t,e,r,s,n,o,a,l,c,h){this.text=t,this.style=e,this.width=r,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=l,this.fontProperties=c,h&&(this.runsByLine=h.runsByLine,this.lineAscents=h.lineAscents,this.lineDescents=h.lineDescents,this.lineHeights=h.lineHeights,this.hasDropShadow=h.hasDropShadow)}static measureText(t=" ",e,r=X._canvas,s=e.wordWrap){let n=`${t}-${e.styleKey}-wordWrap-${s}`;if(X._measurementCache.has(n))return X._measurementCache.get(n);if(Td(e)&&wd(t)){let S=Iv(t,e,s,X._context,X._measureText,X._measureTextAdvance,X.measureFont,X.canBreakChars,X.wordWrapSplit),T=new X(t,e,S.width,S.height,S.lines,S.lineWidths,S.lineHeight,S.maxLineWidth,S.fontProperties,{runsByLine:S.runsByLine,lineAscents:S.lineAscents,lineDescents:S.lineDescents,lineHeights:S.lineHeights,hasDropShadow:S.hasDropShadow});return X._measurementCache.set(n,T),T}let a=e._fontString,l=X.measureFont(a);l.fontSize===0&&(l.fontSize=e.fontSize,l.ascent=e.fontSize,l.descent=0);let c=X._context;c.font=a;let u=(s?X._wordWrap(t,e,r):t).split(Bv),d=new Array(u.length),f=0;for(let S=0;S<u.length;S++){let T=X._measureText(u[S],e.letterSpacing,c);d[S]=T,f=Math.max(f,T)}let m=e._stroke?.width??0,g=e.lineHeight||l.fontSize,_=X._adjustWidthForStyle(f,e),x=Math.max(g,l.fontSize+m)+(u.length-1)*(g+e.leading),b=X._adjustHeightForStyle(x,e),v=new X(t,e,_,b,u,d,g+e.leading,f,l);return X._measurementCache.set(n,v),v}static _adjustWidthForStyle(t,e){let r=e._stroke?.width||0,s=t+r;return e.dropShadow&&(s+=e.dropShadow.distance),s}static _adjustHeightForStyle(t,e){let r=t;return e.dropShadow&&(r+=e.dropShadow.distance),r}static _measureText(t,e,r){let{metricWidth:s,metrics:n,letterSpacingVal:o}=X._measureTextCore(t,e,r),a=-(n.actualBoundingBoxLeft??0),c=(n.actualBoundingBoxRight??0)-a;return n.width>0&&(c+=o),Math.max(s,c)}static _measureTextAdvance(t,e,r){return X._measureTextCore(t,e,r).metricWidth}static _measureTextCore(t,e,r){let s=!1;X.experimentalLetterSpacingSupported&&(X.experimentalLetterSpacing?(r.letterSpacing=`${e}px`,r.textLetterSpacing=`${e}px`,s=!0):(r.letterSpacing="0px",r.textLetterSpacing="0px"));let n=r.measureText(t),o=n.width,a=0;return o>0&&(s?a=-e:a=(X.graphemeSegmenter(t).length-1)*e,o+=a),{metricWidth:o,metrics:n,letterSpacingVal:a}}static _wordWrap(t,e,r=X._canvas){return Uv(t,e,r,X._measureTextAdvance,X.canBreakWords,X.canBreakChars,X.wordWrapSplit)}static isBreakingSpace(t,e){return ae(t,e)}static canBreakWords(t,e){return e}static canBreakChars(t,e,r,s,n){return!0}static wordWrapSplit(t){return X.graphemeSegmenter(t)}static measureFont(t){if(X._fonts[t])return X._fonts[t];let e=X._context;e.font=t;let r=e.measureText(X.METRICS_STRING+X.BASELINE_SYMBOL),s=r.actualBoundingBoxAscent??0,n=r.actualBoundingBoxDescent??0,o={ascent:s,descent:n,fontSize:s+n};return X._fonts[t]=o,o}static clearMetrics(t=""){t?delete X._fonts[t]:X._fonts={}}static get _canvas(){if(!X.__canvas){let t;try{let e=new OffscreenCanvas(0,0);if(e.getContext("2d",Lv)?.measureText)return X.__canvas=e,e;t=W.get().createCanvas()}catch{t=W.get().createCanvas()}t.width=t.height=10,X.__canvas=t}return X.__canvas}static get _context(){return X.__context||(X.__context=X._canvas.getContext("2d",Lv)),X.__context}};or.METRICS_STRING="|\xC9q\xC5";or.BASELINE_SYMBOL="M";or.BASELINE_MULTIPLIER=1.4;or.HEIGHT_MULTIPLIER=2;or.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let i=new Intl.Segmenter;return t=>{let e=i.segment(t),r=[],s=0;for(let n of e)r[s++]=n.segment;return r}}return i=>[...i]})();or.experimentalLetterSpacing=!1;or._fonts={};or._measurementCache=Mv(1e3);je=or});function oo(i){let t=typeof i.fontSize=="number"?`${i.fontSize}px`:i.fontSize,e=i.fontFamily;Array.isArray(i.fontFamily)||(e=i.fontFamily.split(","));for(let r=e.length-1;r>=0;r--){let s=e[r].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!mC.includes(s)&&(s=`"${s}"`),e[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${t} ${e.join(",")}`}var mC,Pd=p(()=>{"use strict";mC=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});function ao(i,t,e,r=0,s=0,n=0){if(i.texture===U.WHITE&&!i.fill)return Q.shared.setValue(i.color).setAlpha(i.alpha??1).toHexa();if(i.fill){if(i.fill instanceof Ge){let o=i.fill,a=t.createPattern(o.texture.source.resource,"repeat");return Z.applyPatternTransform(a,o.transform,!1),a}else if(i.fill instanceof ee){let o=i.fill,a=o.type==="linear",l=o.textureSpace==="local",c=1,h=1;l&&e&&(c=e.width+r,h=e.height+r);let u,d=!1;if(a){let{start:f,end:m}=o;u=t.createLinearGradient(f.x*c+s,f.y*h+n,m.x*c+s,m.y*h+n),d=Math.abs(m.x-f.x)<Math.abs((m.y-f.y)*.1)}else{let{center:f,innerRadius:m,outerCenter:g,outerRadius:_}=o;u=t.createRadialGradient(f.x*c+s,f.y*h+n,m*c,g.x*c+s,g.y*h+n,_*c)}if(d&&l&&e){let f=e.lineHeight/h;for(let m=0;m<e.lines.length;m++){let g=(m*e.lineHeight+r/2)/h;o.colorStops.forEach(_=>{let x=g+_.offset*f;x=Math.max(0,Math.min(1,x)),u.addColorStop(Math.floor(x*Ov)/Ov,Q.shared.setValue(_.color).toHex())})}}else o.colorStops.forEach(f=>{u.addColorStop(f.offset,Q.shared.setValue(f.color).toHex())});return u}}else{let o=t.createPattern(i.texture.source.resource,"repeat"),a=i.matrix.copyTo(k.shared);return a.scale(i.texture.source.pixelWidth,i.texture.source.pixelHeight),o.setTransform(a),o}return L("FillStyle not recognised",i),"red"}var Ov,Nv=p(()=>{Qt();ot();Ei();gt();ht();ii();Vn();Ov=1e5});function gC(i){let t=i;if(typeof t.dropShadow=="boolean"&&t.dropShadow){let e=Xe.defaultDropShadow;i.dropShadow={alpha:t.dropShadowAlpha??e.alpha,angle:t.dropShadowAngle??e.angle,blur:t.dropShadowBlur??e.blur,color:t.dropShadowColor??e.color,distance:t.dropShadowDistance??e.distance}}if(t.strokeThickness!==void 0){O(rt,"strokeThickness is now a part of stroke");let e=t.stroke,r={};if(Q.isColorLike(e))r.color=e;else if(e instanceof ee||e instanceof Ge)r.fill=e;else if(Object.hasOwnProperty.call(e,"color")||Object.hasOwnProperty.call(e,"fill"))r=e;else throw new Error("Invalid stroke value.");i.stroke={...r,width:t.strokeThickness}}if(Array.isArray(t.fillGradientStops)){if(O(rt,"gradient fill is now a fill pattern: `new FillGradient(...)`"),!Array.isArray(t.fill)||t.fill.length===0)throw new Error("Invalid fill value. Expected an array of colors for gradient fill.");t.fill.length!==t.fillGradientStops.length&&L("The number of fill colors must match the number of fill gradient stops.");let e=new ee({start:{x:0,y:0},end:{x:0,y:1},textureSpace:"local"}),r=t.fillGradientStops.slice(),s=t.fill.map(n=>Q.shared.setValue(n).toNumber());r.forEach((n,o)=>{e.addColorStop(n,s[o])}),i.fill={fill:e}}}var Ad,Xe,Ml=p(()=>{Ht();Qt();Ft();yt();ht();ii();Vn();fd();ud();Pd();Ad=class li extends ut{constructor(t={}){super(),this.uid=$("textStyle"),this._tick=0,this._cachedFontString=null,gC(t),t instanceof li&&(t=t._toObject());let s={...li.defaultTextStyle,...t};for(let n in s){let o=n;this[o]=s[n]}this._tagStyles=t.tagStyles??void 0,this.update(),this._tick=0}get align(){return this._align}set align(t){this._align!==t&&(this._align=t,this.update())}get breakWords(){return this._breakWords}set breakWords(t){this._breakWords!==t&&(this._breakWords=t,this.update())}get dropShadow(){return this._dropShadow}set dropShadow(t){this._dropShadow!==t&&(t!==null&&typeof t=="object"?this._dropShadow=this._createProxy({...li.defaultDropShadow,...t}):this._dropShadow=t?this._createProxy({...li.defaultDropShadow}):null,this.update())}get fontFamily(){return this._fontFamily}set fontFamily(t){this._fontFamily!==t&&(this._fontFamily=t,this.update())}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize!==t&&(typeof t=="string"?this._fontSize=parseInt(t,10):this._fontSize=t,this.update())}get fontStyle(){return this._fontStyle}set fontStyle(t){this._fontStyle!==t&&(this._fontStyle=t.toLowerCase(),this.update())}get fontVariant(){return this._fontVariant}set fontVariant(t){this._fontVariant!==t&&(this._fontVariant=t,this.update())}get fontWeight(){return this._fontWeight}set fontWeight(t){this._fontWeight!==t&&(this._fontWeight=t,this.update())}get leading(){return this._leading}set leading(t){this._leading!==t&&(this._leading=t,this.update())}get letterSpacing(){return this._letterSpacing}set letterSpacing(t){this._letterSpacing!==t&&(this._letterSpacing=t,this.update())}get lineHeight(){return this._lineHeight}set lineHeight(t){this._lineHeight!==t&&(this._lineHeight=t,this.update())}get padding(){return this._padding}set padding(t){this._padding!==t&&(this._padding=t,this.update())}get filters(){return this._filters}set filters(t){this._filters!==t&&(this._filters=Object.freeze(t),this.update())}get trim(){return this._trim}set trim(t){this._trim!==t&&(this._trim=t,this.update())}get textBaseline(){return this._textBaseline}set textBaseline(t){this._textBaseline!==t&&(this._textBaseline=t,this.update())}get whiteSpace(){return this._whiteSpace}set whiteSpace(t){this._whiteSpace!==t&&(this._whiteSpace=t,this.update())}get wordWrap(){return this._wordWrap}set wordWrap(t){this._wordWrap!==t&&(this._wordWrap=t,this.update())}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(t){this._wordWrapWidth!==t&&(this._wordWrapWidth=t,this.update())}get fill(){return this._originalFill}set fill(t){t!==this._originalFill&&(this._originalFill=t,this._isFillStyle(t)&&(this._originalFill=this._createProxy({...ge.defaultFillStyle,...t},()=>{this._fill=sr({...this._originalFill},ge.defaultFillStyle)})),this._fill=sr(t===0?"black":t,ge.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(t){t!==this._originalStroke&&(this._originalStroke=t,this._isFillStyle(t)&&(this._originalStroke=this._createProxy({...ge.defaultStrokeStyle,...t},()=>{this._stroke=es({...this._originalStroke},ge.defaultStrokeStyle)})),this._stroke=es(t,ge.defaultStrokeStyle),this.update())}get tagStyles(){return this._tagStyles}set tagStyles(t){this._tagStyles!==t&&(this._tagStyles=t??void 0,this.update())}update(){this._tick++,this._cachedFontString=null,this.emit("update",this)}reset(){let t=li.defaultTextStyle;for(let e in t)this[e]=t[e]}assign(t){for(let e in t){let r=e;this[r]=t[e]}return this}get styleKey(){return`${this.uid}-${this._tick}`}get _fontString(){return this._cachedFontString===null&&(this._cachedFontString=oo(this)),this._cachedFontString}_toObject(){return{align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill?{...this._fill}:void 0,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke?{...this._stroke}:void 0,textBaseline:this.textBaseline,trim:this.trim,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0,tagStyles:this._tagStyles?{...this._tagStyles}:void 0}}clone(){return new li(this._toObject())}_getFinalPadding(){let t=0;if(this._filters)for(let e=0;e<this._filters.length;e++)t+=this._filters[e].padding;return Math.max(this._padding,t)}destroy(t=!1){if(this.removeAllListeners(),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._fill?.texture&&this._fill.texture.destroy(r),this._originalFill?.texture&&this._originalFill.texture.destroy(r),this._stroke?.texture&&this._stroke.texture.destroy(r),this._originalStroke?.texture&&this._originalStroke.texture.destroy(r)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(t,e){return new Proxy(t,{set:(r,s,n)=>(r[s]===n||(r[s]=n,e?.(s,n),this.update()),!0)})}_isFillStyle(t){return(t??null)!==null&&!(Q.isColorLike(t)||t instanceof ee||t instanceof Ge)}};Ad.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};Ad.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};Xe=Ad});P();var mg={extension:{type:y.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(pg(),WS))}};P();var xg={extension:{type:y.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(gg(),VS))}};P();Xo();Oo();P();xt();Vr();var pa;function Ig(i){return pa!==void 0||(pa=(()=>{let t={stencil:!0,failIfMajorPerformanceCaveat:i??Te.defaultOptions.failIfMajorPerformanceCaveat};try{if(!W.get().getWebGLRenderingContext())return!1;let r=W.get().createCanvas().getContext("webgl",t),s=!!r?.getContextAttributes()?.stencil;if(r){let n=r.getExtension("WEBGL_lose_context");n&&n.loseContext()}return r=null,s}catch{return!1}})()),pa}xt();var ma;async function Gg(i={}){return ma!==void 0||(ma=await(async()=>{let t=W.get().getNavigator().gpu;if(!t)return!1;try{return await(await t.requestAdapter(i)).requestDevice(),!0}catch{return!1}})()),ma}Vr();var yv=["webgl","webgpu","canvas"];async function bv(i){let t=[];i.preference?Array.isArray(i.preference)?t=i.preference.slice():(t.push(i.preference),yv.forEach(n=>{n!==i.preference&&t.push(n)})):t=yv.slice();let e,r={};for(let n=0;n<t.length;n++){let o=t[n];if(o==="webgpu"&&await Gg()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(uy(),hy));e=a,r={...i,...i.webgpu};break}else if(o==="webgl"&&Ig(i.failIfMajorPerformanceCaveat??Te.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(Vb(),Wb));e=a,r={...i,...i.webgl};break}else if(o==="canvas"){let{CanvasRenderer:a}=await Promise.resolve().then(()=>(_v(),xv));e=a,r={...i,...i.canvasOptions};break}}if(delete r.webgpu,delete r.webgl,delete r.canvasOptions,!e)throw new Error("No available renderer for the current environment");let s=new e;return await s.init(r),s}Pe();Nh();yt();P();P();var eo=class{static init(t){Object.defineProperty(this,"resizeTo",{configurable:!0,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:n}=this._resizeTo;e=s,r=n}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}};eo.extension=y.Application;P();Ss();Si();var ro=class{static init(t){t=Object.assign({autoStart:!0,sharedTicker:!1},t),Object.defineProperty(this,"ticker",{configurable:!0,set(e){this._ticker&&this._ticker.remove(this.render,this),this._ticker=e,e&&e.add(this.render,this,De.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=t.sharedTicker?qt.shared:new qt,t.autoStart&&this.start()}static destroy(){if(this._ticker){let t=this._ticker;this.ticker=null,t.destroy()}}};ro.extension=y.Application;z.add(eo);z.add(ro);var vv=class vd{constructor(...t){this.stage=new mt,t[0]!==void 0&&O(rt,"Application constructor options are deprecated, please use Application.init() instead.")}async init(t){t={...t},this.stage||(this.stage=new mt),this.renderer=await bv(t),vd._plugins.forEach(e=>{e.init.call(this,t)})}render(){this.renderer.render({container:this.stage})}get canvas(){return this.renderer.canvas}get view(){return O(rt,"Application.view is deprecated, please use Application.canvas instead."),this.renderer.canvas}get screen(){return this.renderer.screen}get domContainerRoot(){return this.renderer.renderPipes.dom?._domElement}destroy(t=!1,e=!1){let r=vd._plugins.slice(0);r.reverse(),r.forEach(s=>{s.destroy.call(this)}),this.stage.destroy(e),this.stage=null,this.renderer.destroy(t),this.renderer=null}};vv._plugins=[];var yl=vv;z.handleByList(y.Application,yl._plugins);z.add(tn);pm();zr();Be();gt();yt();Cs();xr();ir();zr();yt();var Sv=class Tv extends he{constructor(...t){let e=t[0]??{};e instanceof Float32Array&&(O(rt,"use new MeshGeometry({ positions, uvs, indices }) instead"),e={positions:e,uvs:t[1],indices:t[2]}),e={...Tv.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 n=e.indices||new Uint32Array([0,1,2,0,2,3]),o=e.shrinkBuffersToFit,a=new At({data:r,label:"attribute-mesh-positions",shrinkToFit:o,usage:tt.VERTEX|tt.COPY_DST}),l=new At({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:tt.VERTEX|tt.COPY_DST}),c=new At({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:tt.INDEX|tt.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:l,format:"float32x2",stride:8,offset:0}},indexBuffer:c,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}};Sv.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};var io=Sv;P();P();ot();mr();me();Wh();Ia();var bl=class{constructor(){this.batcherName="default",this.packAsQuad=!1,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,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==e._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=e._updateID,n.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 vl=class{destroy(){}},so=class{constructor(t,e){this.localUniforms=new Ct({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new Vt({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!0;if(s){let n=t._geometry;if(n.indices.length!==e.indexSize||n.positions.length!==e.vertexSize)return e.indexSize=n.indices.length,e.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(t);return o.texture.uid!==t._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,t._texture)}return!1}addRenderable(t,e){let r=this.renderer.renderPipes.batch,s=this._getMeshData(t);if(t.didViewUpdate&&(s.indexSize=t._geometry.indices?.length,s.vertexSize=t._geometry.positions?.length),s.batched){let n=this._getBatchableMesh(t);n.setTexture(t._texture),n.geometry=t._geometry,r.addToBatch(n,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.blend&&(t.state.blendMode=sn(t.groupBlendMode,t.texture._source));let e=this.localUniforms;e.uniforms.uTransformMatrix=t.groupTransform,e.uniforms.uRound=this.renderer._roundPixels|t._roundPixels,e.update(),Hi(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 vl),t._gpuData[this.renderer.uid].meshData||this._initMeshData(t)}_initMeshData(t){return t._gpuData[this.renderer.uid].meshData={batched:t.batched,indexSize:0,vertexSize:0},t._gpuData[this.renderer.uid].meshData}_getBatchableMesh(t){var e,r;return(e=t._gpuData)[r=this.renderer.uid]||(e[r]=new vl),t._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(t)}_initBatchableMesh(t){let e=new bl;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}};so.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"mesh"};z.add(so);var no=class extends Le{constructor(...t){let e=t[0];e instanceof he&&(O(rt,"Mesh: use new Mesh({ geometry, shader }) instead"),e={geometry:e,shader:t[1]},t[3]&&(O(rt,"Mesh: drawMode argument has been removed, use geometry.topology instead"),e.geometry.topology=t[3]));let{geometry:r,shader:s,texture:n,roundPixels:o,state:a,...l}=e;super({label:"Mesh",...l}),this.renderPipeId="mesh",this._shader=null,this.allowChildren=!1,this.shader=s??null,this.texture=n??s?.texture??U.WHITE,this.state=a??Ot.for2d(),this._geometry=r,this._geometry.on("update",this.onViewUpdate,this),this.roundPixels=o??!1}get material(){return O(rt,"mesh.material property has been removed, use mesh.shader instead"),this._shader}set shader(t){this._shader!==t&&(this._shader=t,this.onViewUpdate())}get shader(){return this._shader}set geometry(t){this._geometry!==t&&(this._geometry?.off("update",this.onViewUpdate,this),t.on("update",this.onViewUpdate,this),this._geometry=t,this.onViewUpdate())}get geometry(){return this._geometry}set texture(t){t||(t=U.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.shader&&(this.shader.texture=t),this._texture=t,this.onViewUpdate())}get texture(){return this._texture}get batched(){return this._shader||(this.state.data&12)!==0?!1:this._geometry instanceof io?this._geometry.batchMode==="auto"?this._geometry.positions.length/2<=100:this._geometry.batchMode==="batch":!1}get bounds(){return this._geometry.bounds}updateBounds(){this._bounds=this._geometry.bounds}containsPoint(t){let{x:e,y:r}=t;if(!this.bounds.containsPoint(e,r))return!1;let s=this.geometry.getBuffer("aPosition").data,n=this.geometry.topology==="triangle-strip"?3:1;if(this.geometry.getIndex()){let o=this.geometry.getIndex().data,a=o.length;for(let l=0;l+2<a;l+=n){let c=o[l]*2,h=o[l+1]*2,u=o[l+2]*2;if(jc(e,r,s[c],s[c+1],s[h],s[h+1],s[u],s[u+1]))return!0}}else{let o=s.length/2;for(let a=0;a+2<o;a+=n){let l=a*2,c=(a+1)*2,h=(a+2)*2;if(jc(e,r,s[l],s[l+1],s[c],s[c+1],s[h],s[h+1]))return!0}}return!1}destroy(t){if(super.destroy(t),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._texture.destroy(r)}this._geometry?.off("update",this.onViewUpdate,this),this._texture=null,this._geometry=null,this._shader=null}};$t();Ar();bo();yt();Cs();var Sl=class extends Le{constructor(t,e){let{text:r,resolution:s,style:n,anchor:o,width:a,height:l,roundPixels:c,...h}=t;super({...h}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=e,this.text=r??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new Gt({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=c??!1,a!==void 0&&(this.width=a),l!==void 0&&(this.height=l)}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t)}set text(t){t=t.toString(),this._text!==t&&(this._text=t,this.onViewUpdate())}get text(){return this._text}set resolution(t){this._autoResolution=t===null,this._resolution=t,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(t){t||(t={}),this._style?.off("update",this.onViewUpdate,this),t instanceof this._styleClass?this._style=t:this._style=new this._styleClass(t),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(t){this._setWidth(t,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(t){this._setHeight(t,this.bounds.height)}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this.bounds.width,t.height=Math.abs(this.scale.y)*this.bounds.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.bounds.width),e!==void 0&&this._setHeight(e,this.bounds.height)}containsPoint(t){let e=this.bounds.width,r=this.bounds.height,s=-e*this.anchor.x,n=0;return t.x>=s&&t.x<=s+e&&(n=-r*this.anchor.y,t.y>=n&&t.y<=n+r)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(t=!1){super.destroy(t),this.owner=null,this._bounds=null,this._anchor=null,(typeof t=="boolean"?t:t?.style)&&this._style.destroy(t),this._style=null,this._text=null}get styleKey(){return`${this._text}:${this._style.styleKey}:${this._resolution}`}};function wv(i,t){let e=i[0]??{};return(typeof e=="string"||i[1])&&(O(rt,`use new ${t}({ text: "hi!", style }) instead`),e={text:e,style:i[1]}),e}Qt();Yt();$o();xt();ys();Yt();var ai=null,nr=null;function eC(i,t){ai||(ai=W.get().createCanvas(256,128),nr=ai.getContext("2d",{willReadFrequently:!0}),nr.globalCompositeOperation="copy",nr.globalAlpha=1),(ai.width<i||ai.height<t)&&(ai.width=Je(i),ai.height=Je(t))}function Cv(i,t,e){for(let r=0,s=4*e*t;r<t;++r,s+=4)if(i[s+3]!==0)return!1;return!0}function Ev(i,t,e,r,s){let n=4*t;for(let o=r,a=r*n+4*e;o<=s;++o,a+=n)if(i[a+3]!==0)return!1;return!0}function Pv(...i){let t=i[0];t.canvas||(t={canvas:i[0],resolution:i[1]});let{canvas:e}=t,r=Math.min(t.resolution??1,1),s=t.width??e.width,n=t.height??e.height,o=t.output;if(eC(s,n),!nr)throw new TypeError("Failed to get canvas 2D context");nr.drawImage(e,0,0,s,n,0,0,s*r,n*r);let l=nr.getImageData(0,0,s,n).data,c=0,h=0,u=s-1,d=n-1;for(;h<n&&Cv(l,s,h);)++h;if(h===n)return J.EMPTY;for(;Cv(l,s,d);)--d;for(;Ev(l,s,c,h,d);)++c;for(;Ev(l,s,u,h,d);)--u;return++u,++d,nr.globalCompositeOperation="source-over",nr.strokeRect(c,h,u-c,d-h),nr.globalCompositeOperation="copy",o??(o=new J),o.set(c/r,h/r,(u-c)/r,(d-h)/r),o}Ed();Pd();Nv();var zv=new J;function is(i){let t=0;for(let e=0;e<i.length;e++)i.charCodeAt(e)===32&&t++;return t}var Md=class{getCanvasAndContext(t){let{text:e,style:r,resolution:s=1}=t,n=r._getFinalPadding(),o=je.measureText(e||" ",r),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),l=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),c=rr.getOptimalCanvasAndContext(a,l);this._renderTextToCanvas(r,n,s,c,o);let h=r.trim?Pv({canvas:c.canvas,width:a,height:l,resolution:1,output:zv}):zv.set(0,0,a,l);return{canvasAndContext:c,frame:h}}returnCanvasAndContext(t){rr.returnCanvasAndContext(t)}_renderTextToCanvas(t,e,r,s,n){if(n.runsByLine&&n.runsByLine.length>0){this._renderTaggedTextToCanvas(n,t,e,r,s);return}let{canvas:o,context:a}=s,l=oo(t),c=n.lines,h=n.lineHeight,u=n.lineWidths,d=n.maxLineWidth,f=n.fontProperties,m=o.height;if(a.resetTransform(),a.scale(r,r),a.textBaseline=t.textBaseline,t._stroke?.width){let T=t._stroke;a.lineWidth=T.width,a.miterLimit=T.miterLimit,a.lineJoin=T.join,a.lineCap=T.cap}a.font=l;let g,_,x=t.dropShadow?2:1,v=(t._stroke?.width??0)/2,S=(h-f.fontSize)/2;h-f.fontSize<0&&(S=0);for(let T=0;T<x;++T){let w=t.dropShadow&&T===0,E=w?Math.ceil(Math.max(1,m)+e*2):0,B=E*r;if(w)this._setupDropShadow(a,t,r,B);else{let R=t._gradientBounds,M=t._gradientOffset;if(R){let C={width:R.width,height:R.height,lineHeight:R.height,lines:n.lines};this._setFillAndStrokeStyles(a,t,C,e,v,M?.x??0,M?.y??0)}else M?this._setFillAndStrokeStyles(a,t,n,e,v,M.x,M.y):this._setFillAndStrokeStyles(a,t,n,e,v);a.shadowColor="rgba(0,0,0,0)"}for(let R=0;R<c.length;R++){g=v,_=v+R*h+f.ascent+S,g+=this._getAlignmentOffset(u[R],d,t.align);let M=0;if(t.align==="justify"&&t.wordWrap&&R<c.length-1){let C=is(c[R]);C>0&&(M=(d-u[R])/C)}t._stroke?.width&&this._drawLetterSpacing(c[R],t,s,g+e,_+e-E,!0,M),t._fill!==void 0&&this._drawLetterSpacing(c[R],t,s,g+e,_+e-E,!1,M)}}}_renderTaggedTextToCanvas(t,e,r,s,n){let{canvas:o,context:a}=n,{runsByLine:l,lineWidths:c,maxLineWidth:h,lineAscents:u,lineHeights:d,hasDropShadow:f}=t,m=o.height;a.resetTransform(),a.scale(s,s),a.textBaseline=e.textBaseline;let g=f?2:1,_=e._stroke?.width??0;for(let v of l)for(let S of v){let T=S.style._stroke?.width??0;T>_&&(_=T)}let x=_/2,b=[];for(let v=0;v<l.length;v++){let S=l[v],T=[];for(let w of S){let E=oo(w.style);a.font=E,T.push({width:je._measureText(w.text,w.style.letterSpacing,a),font:E})}b.push(T)}for(let v=0;v<g;++v){let S=f&&v===0,T=S?Math.ceil(Math.max(1,m)+r*2):0,w=T*s;S||(a.shadowColor="rgba(0,0,0,0)");let E=x;for(let B=0;B<l.length;B++){let R=l[B],M=c[B],C=u[B],A=d[B],D=b[B],H=x;H+=this._getAlignmentOffset(M,h,e.align);let K=0;if(e.align==="justify"&&e.wordWrap&&B<l.length-1){let j=0;for(let G of R)j+=is(G.text);j>0&&(K=(h-M)/j)}let I=E+C,F=H+r;for(let j=0;j<R.length;j++){let G=R[j],{width:Y,font:pt}=D[j];if(a.font=pt,a.textBaseline=G.style.textBaseline,G.style._stroke?.width){let lt=G.style._stroke;if(a.lineWidth=lt.width,a.miterLimit=lt.miterLimit,a.lineJoin=lt.join,a.lineCap=lt.cap,S)if(G.style.dropShadow)this._setupDropShadow(a,G.style,s,w);else{let ft=is(G.text);F+=Y+ft*K;continue}else{let ft=je.measureFont(pt),q=G.style.lineHeight||ft.fontSize,jt={width:Y,height:q,lineHeight:q,lines:[G.text]};a.strokeStyle=ao(lt,a,jt,r*2,F-r,E)}this._drawLetterSpacing(G.text,G.style,n,F,I+r-T,!0,K)}let Tt=is(G.text);F+=Y+Tt*K}F=H+r;for(let j=0;j<R.length;j++){let G=R[j],{width:Y,font:pt}=D[j];if(a.font=pt,a.textBaseline=G.style.textBaseline,G.style._fill!==void 0){if(S)if(G.style.dropShadow)this._setupDropShadow(a,G.style,s,w);else{let lt=is(G.text);F+=Y+lt*K;continue}else{let lt=je.measureFont(pt),ft=G.style.lineHeight||lt.fontSize,q={width:Y,height:ft,lineHeight:ft,lines:[G.text]};a.fillStyle=ao(G.style._fill,a,q,r*2,F-r,E)}this._drawLetterSpacing(G.text,G.style,n,F,I+r-T,!1,K)}let Tt=is(G.text);F+=Y+Tt*K}E+=A}}}_setFillAndStrokeStyles(t,e,r,s,n,o=0,a=0){if(t.fillStyle=e._fill?ao(e._fill,t,r,s*2,o,a):null,e._stroke?.width){let l=n+s*2;t.strokeStyle=ao(e._stroke,t,r,l,o,a)}}_setupDropShadow(t,e,r,s){t.fillStyle="black",t.strokeStyle="black";let n=e.dropShadow,o=n.color,a=n.alpha;t.shadowColor=Q.shared.setValue(o).setAlpha(a).toRgbaString();let l=n.blur*r,c=n.distance*r;t.shadowBlur=l,t.shadowOffsetX=Math.cos(n.angle)*c,t.shadowOffsetY=Math.sin(n.angle)*c+s}_getAlignmentOffset(t,e,r){return r==="right"?e-t:r==="center"?(e-t)/2:0}_drawLetterSpacing(t,e,r,s,n,o=!1,a=0){let{context:l}=r,c=e.letterSpacing,h=!1;if(je.experimentalLetterSpacingSupported&&(je.experimentalLetterSpacing?(l.letterSpacing=`${c}px`,l.textLetterSpacing=`${c}px`,h=!0):(l.letterSpacing="0px",l.textLetterSpacing="0px")),(c===0||h)&&a===0){o?l.strokeText(t,s,n):l.fillText(t,s,n);return}if(a!==0&&(c===0||h)){let g=t.split(" "),_=s,x=l.measureText(" ").width;for(let b=0;b<g.length;b++)o?l.strokeText(g[b],_,n):l.fillText(g[b],_,n),_+=l.measureText(g[b]).width+x+a;return}let u=s,d=je.graphemeSegmenter(t),f=l.measureText(t).width,m=0;for(let g=0;g<d.length;++g){let _=d[g];o?l.strokeText(_,u,n):l.fillText(_,u,n);let x="";for(let b=g+1;b<d.length;++b)x+=d[b];m=l.measureText(x).width,u+=f-m+c,_===" "&&(u+=a),f=m}}},wr=new Md;Ed();Ml();P();P();Ie();Fc();function Hv(i,t){let{texture:e,bounds:r}=i,s=t._style._getFinalPadding();No(r,t._anchor,e);let n=t._anchor._x*s*2,o=t._anchor._y*s*2;r.minX-=s-n,r.minY-=s-o,r.maxX-=s-n,r.maxY-=s-o}Ca();var Al=class extends yr{};var lo=class{constructor(t){this._renderer=t,t.runners.resolutionChange.add(this),this._managedTexts=new kt({renderer:t,type:"renderable",onUnload:this.onTextUnload.bind(this),name:"canvasText"})}resolutionChange(){for(let t in this._managedTexts.items){let e=this._managedTexts.items[t];e?._autoResolution&&e.onViewUpdate()}}validateRenderable(t){let e=this._getGpuText(t),r=t.styleKey;return e.currentKey!==r?!0:t._didTextUpdate}addRenderable(t,e){let r=this._getGpuText(t);if(t._didTextUpdate){let s=t._autoResolution?this._renderer.resolution:t.resolution;(r.currentKey!==t.styleKey||t._resolution!==s)&&this._updateGpuText(t),t._didTextUpdate=!1,Hv(r,t)}this._renderer.renderPipes.batch.addToBatch(r,e)}updateRenderable(t){let e=this._getGpuText(t);e._batcher.updateElement(e)}_updateGpuText(t){let e=this._getGpuText(t);e.texture&&this._renderer.canvasText.decreaseReferenceCount(e.currentKey),t._resolution=t._autoResolution?this._renderer.resolution:t.resolution,e.texture=this._renderer.canvasText.getManagedTexture(t),e.currentKey=t.styleKey}_getGpuText(t){return t._gpuData[this._renderer.uid]||this.initGpuText(t)}initGpuText(t){let e=new Al;return e.currentKey="--",e.renderable=t,e.transform=t.groupTransform,e.bounds={minX:0,maxX:1,minY:0,maxY:0},e.roundPixels=this._renderer._roundPixels|t._roundPixels,t._gpuData[this._renderer.uid]=e,this._managedTexts.add(t),e}onTextUnload(t){let e=t._gpuData[this._renderer.uid];if(!e)return;let{canvasText:r}=this._renderer;r.getReferenceCount(e.currentKey)>0?r.decreaseReferenceCount(e.currentKey):e.texture&&r.returnTexture(e.texture)}destroy(){this._managedTexts.destroy(),this._renderer=null}};lo.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"text"};P();Fr();Ar();yt();Ml();Yc();var ss=class{constructor(t,e){this._activeTextures={},this._renderer=t,this._retainCanvasContext=e}getTexture(t,e,r,s){typeof t=="string"&&(O("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),t={text:t,style:r,resolution:e}),t.style instanceof Xe||(t.style=new Xe(t.style)),t.textureStyle instanceof ce||(t.textureStyle=new ce(t.textureStyle)),typeof t.text!="string"&&(t.text=t.text.toString());let{text:n,style:o,textureStyle:a,autoGenerateMipmaps:l}=t,c=t.resolution??this._renderer.resolution,{frame:h,canvasAndContext:u}=wr.getCanvasAndContext({text:n,style:o,resolution:c}),d=ea(u.canvas,h.width,h.height,c,l);if(a&&(d.source.style=a),o.trim&&(h.pad(o.padding),d.frame.copyFrom(h),d.frame.scale(1/c),d.updateUvs()),o.filters){let f=this._applyFilters(d,o.filters);return this.returnTexture(d),wr.returnCanvasAndContext(u),f}return this._renderer.texture.initSource(d._source),this._retainCanvasContext||wr.returnCanvasAndContext(u),d}returnTexture(t){let e=t.source,r=e.resource;if(this._retainCanvasContext&&r?.getContext){let s=r.getContext("2d");s&&wr.returnCanvasAndContext({canvas:r,context:s})}e.resource=null,e.uploadMethodId="unknown",e.alphaMode="no-premultiply-alpha",Mt.returnTexture(t,!0)}renderTextToCanvas(){O("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}getManagedTexture(t){t._resolution=t._autoResolution?this._renderer.resolution:t.resolution;let e=t.styleKey;if(this._activeTextures[e])return this._increaseReferenceCount(e),this._activeTextures[e].texture;let r=this.getTexture({text:t.text,style:t.style,resolution:t._resolution,textureStyle:t.textureStyle,autoGenerateMipmaps:t.autoGenerateMipmaps});return this._activeTextures[e]={texture:r,usageCount:1},r}decreaseReferenceCount(t){let e=this._activeTextures[t];e&&(e.usageCount--,e.usageCount===0&&(this.returnTexture(e.texture),this._activeTextures[t]=null))}getReferenceCount(t){return this._activeTextures[t]?.usageCount??0}_increaseReferenceCount(t){this._activeTextures[t].usageCount++}_applyFilters(t,e){let r=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:t,filters:e});return this._renderer.renderTarget.bind({target:r,clear:!1}),s}destroy(){this._renderer=null;for(let t in this._activeTextures)this._activeTextures[t]&&this.returnTexture(this._activeTextures[t].texture);this._activeTextures=null}};var co=class extends ss{constructor(t){super(t,!0)}};co.extension={type:[y.CanvasSystem],name:"canvasText"};P();var ho=class extends ss{constructor(t){super(t,!1)}};ho.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"canvasText"};z.add(co);z.add(ho);z.add(lo);var uo=class extends Sl{constructor(...t){let e=wv(t,"Text");super(e,Xe),this.renderPipeId="text",e.textureStyle&&(this.textureStyle=e.textureStyle instanceof ce?e.textureStyle:new ce(e.textureStyle)),this.autoGenerateMipmaps=e.autoGenerateMipmaps??st.defaultOptions.autoGenerateMipmaps}updateBounds(){let t=this._bounds,e=this._anchor,r=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=wr.getCanvasAndContext({text:this.text,style:this._style,resolution:1});wr.returnCanvasAndContext(o),r=n.width,s=n.height}else{let n=je.measureText(this._text,this._style);r=n.width,s=n.height}t.minX=-e._x*r,t.maxX=t.minX+r,t.minY=-e._y*s,t.maxY=t.minY+s}};xr();ir();zr();pr();zh();function Rd(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}pr();function Vv(i){return{dynamicUpdate:Wv(i,!0),staticUpdate:Wv(i,!1)}}function Wv(i,t){let e=[];e.push(`
|
|
908
|
+
`),r++):t.push(s);continue}e.push(s),fC(s)&&n&&!ae(n)&&!is(n)&&(t.push(e.join("")),e.length=0)}return e.length>0&&t.push(e.join("")),t}function Pl(i,t,e,r){let s=e(i),n=[];for(let o=0;o<s.length;o++){let a=s[o],l=a,c=1;for(;s[o+c];){let h=s[o+c];if(!r(l,h,i,o,t))a+=h,l=h,c++;else break}o+=c-1,n.push(a)}return n}var oC,aC,lC,cC,hC,ij,uC,dC,Iv,Gv,Ml=p(()=>{"use strict";oC=[10,13],aC=new Set(oC),lC=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288],cC=new Set(lC),hC=[9,32],ij=new Set(hC),uC=[45,8208,8211,8212,173],dC=new Set(uC),Iv=/(\r\n|\r|\n)/,Gv=/(?:\r\n|\r|\n)/});function Fv(i,t,e,r,s,n,o,a,l){let c=Bv(i,t);if(Cl(t.whiteSpace))for(let H=0;H<c.length;H++){let K=c[H];c[H]={text:K.text.replace(pC," "),style:K.style}}let u=[],d=[];for(let H of c){let K=H.text.split(Iv);for(let I=0;I<K.length;I++){let U=K[I];U===`\r
|
|
909
|
+
`||U==="\r"||U===`
|
|
910
|
+
`?(u.push(d),d=[]):U.length>0&&d.push({text:U,style:H.style})}}(d.length>0||u.length===0)&&u.push(d);let f=e?mC(u,t,r,n,a,l):u,m=[],g=[],_=[],x=[],b=[],v=0,S=t._fontString,T=o(S);T.fontSize===0&&(T.fontSize=t.fontSize,T.ascent=t.fontSize);let w="",E=!!t.dropShadow,B=t._stroke?.width||0;for(let H of f){let K=0,I=T.ascent,U=T.descent,j="";for(let Y of H){let pt=Y.style._fontString,wt=o(pt);pt!==w&&(r.font=pt,w=pt);let lt=s(Y.text,Y.style.letterSpacing,r);K+=lt,I=Math.max(I,wt.ascent),U=Math.max(U,wt.descent),j+=Y.text;let ft=Y.style._stroke?.width||0;ft>B&&(B=ft),!E&&Y.style.dropShadow&&(E=!0)}H.length===0&&(I=T.ascent,U=T.descent),m.push(K),g.push(I),_.push(U),b.push(j);let G=t.lineHeight||I+U;x.push(G+t.leading),v=Math.max(v,K)}let R=B,M=v+R+(t.dropShadow?t.dropShadow.distance:0),C=0;for(let H=0;H<x.length;H++)C+=x[H];C=Math.max(C,x[0]+R);let A=C+(t.dropShadow?t.dropShadow.distance:0),D=t.lineHeight||T.fontSize;return{width:M,height:A,lines:b,lineWidths:m,lineHeight:D+t.leading,maxLineWidth:v,fontProperties:T,runsByLine:f,lineAscents:g,lineDescents:_,lineHeights:x,hasDropShadow:E}}function mC(i,t,e,r,s,n){let{letterSpacing:o,whiteSpace:a,wordWrapWidth:l,breakWords:c}=t,h=wl(a),u=l+o,d={},f="",m=(_,x)=>{let b=`${_}|${x.styleKey}`,v=d[b];if(v===void 0){let S=x._fontString;S!==f&&(e.font=S,f=S),v=r(_,x.letterSpacing,e)+x.letterSpacing,d[b]=v}return v},g=[];for(let _ of i){let x=gC(_),b=g.length,v=C=>{let A=0,D=C;do{let{token:H,style:K}=x[D];A+=m(H,K),D++}while(D<x.length&&x[D].continuesFromPrevious);return A},S=C=>{let A=[],D=C;do A.push({token:x[D].token,style:x[D].style}),D++;while(D<x.length&&x[D].continuesFromPrevious);return A},T=[],w=0,E=!h,B=null,R=()=>{B&&B.text.length>0&&T.push(B),B=null},M=()=>{if(R(),T.length>0){let C=T[T.length-1];C.text=Fe(C.text),C.text.length===0&&T.pop()}g.push(T),T=[],w=0,E=!1};for(let C=0;C<x.length;C++){let{token:A,style:D,continuesFromPrevious:H}=x[C],K=m(A,D);if(h){let j=ae(A),G=B?.text[B.text.length-1]??T[T.length-1]?.text.slice(-1)??"",Y=G?ae(G):!1;if(j&&Y)continue}let I=!H,U=I?v(C):K;if(U>u&&I)if(w>0&&M(),c){let j=S(C);for(let G=0;G<j.length;G++){let Y=j[G].token,pt=j[G].style,wt=Pl(Y,c,n,s);for(let lt of wt){let ft=m(lt,pt);ft+w>u&&M(),!B||B.style!==pt?(R(),B={text:lt,style:pt}):B.text+=lt,w+=ft}}C+=j.length-1}else{let j=S(C);R(),g.push(j.map(G=>({text:G.token,style:G.style}))),E=!1,C+=j.length-1}else if(U+w>u&&I){if(ae(A)){E=!1;continue}M(),B={text:A,style:D},w=K}else if(H&&!c)!B||B.style!==D?(R(),B={text:A,style:D}):B.text+=A,w+=K;else{let j=ae(A);if(w===0&&j&&!E)continue;!B||B.style!==D?(R(),B={text:A,style:D}):B.text+=A,w+=K}}if(R(),T.length>0){let C=T[T.length-1];C.text=Fe(C.text),C.text.length===0&&T.pop()}(T.length>0||g.length===b)&&g.push(T)}return g}function gC(i){let t=[],e=!1;for(let r of i){let s=El(r.text),n=!0;for(let o of s){let a=ae(o)||is(o),l=n&&e&&!a;t.push({token:o,style:r.style,continuesFromPrevious:l}),e=!a,n=!1}}return t}var pC,Uv=p(()=>{Cd();Ml();pC=/\r\n|\r|\n/g});function Dv(i,t,e,r,s){let n=e[i];return typeof n!="number"&&(n=s(i,t,r)+t,e[i]=n),n}function Lv(i,t,e,r,s,n,o){let a=e.getContext("2d",xC);a.font=t._fontString;let l=0,c="",h=[],u=Object.create(null),{letterSpacing:d,whiteSpace:f}=t,m=wl(f),g=Cl(f),_=!m,x=t.wordWrapWidth+d,b=El(i);for(let S=0;S<b.length;S++){let T=b[S];if(is(T)){if(!g){h.push(Fe(c)),_=!m,c="",l=0;continue}T=" "}if(m){let E=ae(T),B=ae(c[c.length-1]);if(E&&B)continue}let w=Dv(T,d,u,a,r);if(w>x)if(c!==""&&(h.push(Fe(c)),c="",l=0),s(T,t.breakWords)){let E=Pl(T,t.breakWords,o,n);for(let B of E){let R=Dv(B,d,u,a,r);R+l>x&&(h.push(Fe(c)),_=!1,c="",l=0),c+=B,l+=R}}else c.length>0&&(h.push(Fe(c)),c="",l=0),h.push(Fe(T)),_=!1,c="",l=0;else w+l>x&&(_=!1,h.push(Fe(c)),c="",l=0),(c.length>0||!ae(T)||_)&&(c+=T,l+=w)}let v=Fe(c);return v.length>0&&h.push(v),h.join(`
|
|
911
|
+
`)}var xC,Ov=p(()=>{Ml();xC={willReadFrequently:!0}});var Nv,or,je,Ed=p(()=>{kv();xt();Uv();Cd();Ml();Ov();Nv={willReadFrequently:!0},or=class X{static get experimentalLetterSpacingSupported(){let t=X._experimentalLetterSpacingSupported;if(t===void 0){let e=W.get().getCanvasRenderingContext2D().prototype;t=X._experimentalLetterSpacingSupported="letterSpacing"in e||"textLetterSpacing"in e}return t}constructor(t,e,r,s,n,o,a,l,c,h){this.text=t,this.style=e,this.width=r,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=l,this.fontProperties=c,h&&(this.runsByLine=h.runsByLine,this.lineAscents=h.lineAscents,this.lineDescents=h.lineDescents,this.lineHeights=h.lineHeights,this.hasDropShadow=h.hasDropShadow)}static measureText(t=" ",e,r=X._canvas,s=e.wordWrap){let n=`${t}-${e.styleKey}-wordWrap-${s}`;if(X._measurementCache.has(n))return X._measurementCache.get(n);if(Td(e)&&wd(t)){let S=Fv(t,e,s,X._context,X._measureText,X._measureTextAdvance,X.measureFont,X.canBreakChars,X.wordWrapSplit),T=new X(t,e,S.width,S.height,S.lines,S.lineWidths,S.lineHeight,S.maxLineWidth,S.fontProperties,{runsByLine:S.runsByLine,lineAscents:S.lineAscents,lineDescents:S.lineDescents,lineHeights:S.lineHeights,hasDropShadow:S.hasDropShadow});return X._measurementCache.set(n,T),T}let a=e._fontString,l=X.measureFont(a);l.fontSize===0&&(l.fontSize=e.fontSize,l.ascent=e.fontSize,l.descent=0);let c=X._context;c.font=a;let u=(s?X._wordWrap(t,e,r):t).split(Gv),d=new Array(u.length),f=0;for(let S=0;S<u.length;S++){let T=X._measureText(u[S],e.letterSpacing,c);d[S]=T,f=Math.max(f,T)}let m=e._stroke?.width??0,g=e.lineHeight||l.fontSize,_=X._adjustWidthForStyle(f,e),x=Math.max(g,l.fontSize+m)+(u.length-1)*(g+e.leading),b=X._adjustHeightForStyle(x,e),v=new X(t,e,_,b,u,d,g+e.leading,f,l);return X._measurementCache.set(n,v),v}static _adjustWidthForStyle(t,e){let r=e._stroke?.width||0,s=t+r;return e.dropShadow&&(s+=e.dropShadow.distance),s}static _adjustHeightForStyle(t,e){let r=t;return e.dropShadow&&(r+=e.dropShadow.distance),r}static _measureText(t,e,r){let{metricWidth:s,metrics:n,letterSpacingVal:o}=X._measureTextCore(t,e,r),a=-(n.actualBoundingBoxLeft??0),c=(n.actualBoundingBoxRight??0)-a;return n.width>0&&(c+=o),Math.max(s,c)}static _measureTextAdvance(t,e,r){return X._measureTextCore(t,e,r).metricWidth}static _measureTextCore(t,e,r){let s=!1;X.experimentalLetterSpacingSupported&&(X.experimentalLetterSpacing?(r.letterSpacing=`${e}px`,r.textLetterSpacing=`${e}px`,s=!0):(r.letterSpacing="0px",r.textLetterSpacing="0px"));let n=r.measureText(t),o=n.width,a=0;return o>0&&(s?a=-e:a=(X.graphemeSegmenter(t).length-1)*e,o+=a),{metricWidth:o,metrics:n,letterSpacingVal:a}}static _wordWrap(t,e,r=X._canvas){return Lv(t,e,r,X._measureTextAdvance,X.canBreakWords,X.canBreakChars,X.wordWrapSplit)}static isBreakingSpace(t,e){return ae(t,e)}static canBreakWords(t,e){return e}static canBreakChars(t,e,r,s,n){return!0}static wordWrapSplit(t){return X.graphemeSegmenter(t)}static measureFont(t){if(X._fonts[t])return X._fonts[t];let e=X._context;e.font=t;let r=e.measureText(X.METRICS_STRING+X.BASELINE_SYMBOL),s=r.actualBoundingBoxAscent??0,n=r.actualBoundingBoxDescent??0,o={ascent:s,descent:n,fontSize:s+n};return X._fonts[t]=o,o}static clearMetrics(t=""){t?delete X._fonts[t]:X._fonts={}}static get _canvas(){if(!X.__canvas){let t;try{let e=new OffscreenCanvas(0,0);if(e.getContext("2d",Nv)?.measureText)return X.__canvas=e,e;t=W.get().createCanvas()}catch{t=W.get().createCanvas()}t.width=t.height=10,X.__canvas=t}return X.__canvas}static get _context(){return X.__context||(X.__context=X._canvas.getContext("2d",Nv)),X.__context}};or.METRICS_STRING="|\xC9q\xC5";or.BASELINE_SYMBOL="M";or.BASELINE_MULTIPLIER=1.4;or.HEIGHT_MULTIPLIER=2;or.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let i=new Intl.Segmenter;return t=>{let e=i.segment(t),r=[],s=0;for(let n of e)r[s++]=n.segment;return r}}return i=>[...i]})();or.experimentalLetterSpacing=!1;or._fonts={};or._measurementCache=Rv(1e3);je=or});function ao(i){let t=typeof i.fontSize=="number"?`${i.fontSize}px`:i.fontSize,e=i.fontFamily;Array.isArray(i.fontFamily)||(e=i.fontFamily.split(","));for(let r=e.length-1;r>=0;r--){let s=e[r].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!_C.includes(s)&&(s=`"${s}"`),e[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${t} ${e.join(",")}`}var _C,Pd=p(()=>{"use strict";_C=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});function lo(i,t,e,r=0,s=0,n=0){if(i.texture===F.WHITE&&!i.fill)return Q.shared.setValue(i.color).setAlpha(i.alpha??1).toHexa();if(i.fill){if(i.fill instanceof Ge){let o=i.fill,a=t.createPattern(o.texture.source.resource,"repeat");return Z.applyPatternTransform(a,o.transform,!1),a}else if(i.fill instanceof ee){let o=i.fill,a=o.type==="linear",l=o.textureSpace==="local",c=1,h=1;l&&e&&(c=e.width+r,h=e.height+r);let u,d=!1;if(a){let{start:f,end:m}=o;u=t.createLinearGradient(f.x*c+s,f.y*h+n,m.x*c+s,m.y*h+n),d=Math.abs(m.x-f.x)<Math.abs((m.y-f.y)*.1)}else{let{center:f,innerRadius:m,outerCenter:g,outerRadius:_}=o;u=t.createRadialGradient(f.x*c+s,f.y*h+n,m*c,g.x*c+s,g.y*h+n,_*c)}if(d&&l&&e){let f=e.lineHeight/h;for(let m=0;m<e.lines.length;m++){let g=(m*e.lineHeight+r/2)/h;o.colorStops.forEach(_=>{let x=g+_.offset*f;x=Math.max(0,Math.min(1,x)),u.addColorStop(Math.floor(x*zv)/zv,Q.shared.setValue(_.color).toHex())})}}else o.colorStops.forEach(f=>{u.addColorStop(f.offset,Q.shared.setValue(f.color).toHex())});return u}}else{let o=t.createPattern(i.texture.source.resource,"repeat"),a=i.matrix.copyTo(k.shared);return a.scale(i.texture.source.pixelWidth,i.texture.source.pixelHeight),o.setTransform(a),o}return L("FillStyle not recognised",i),"red"}var zv,Hv=p(()=>{Qt();ot();Pi();gt();ht();ii();jn();zv=1e5});function yC(i){let t=i;if(typeof t.dropShadow=="boolean"&&t.dropShadow){let e=Xe.defaultDropShadow;i.dropShadow={alpha:t.dropShadowAlpha??e.alpha,angle:t.dropShadowAngle??e.angle,blur:t.dropShadowBlur??e.blur,color:t.dropShadowColor??e.color,distance:t.dropShadowDistance??e.distance}}if(t.strokeThickness!==void 0){O(rt,"strokeThickness is now a part of stroke");let e=t.stroke,r={};if(Q.isColorLike(e))r.color=e;else if(e instanceof ee||e instanceof Ge)r.fill=e;else if(Object.hasOwnProperty.call(e,"color")||Object.hasOwnProperty.call(e,"fill"))r=e;else throw new Error("Invalid stroke value.");i.stroke={...r,width:t.strokeThickness}}if(Array.isArray(t.fillGradientStops)){if(O(rt,"gradient fill is now a fill pattern: `new FillGradient(...)`"),!Array.isArray(t.fill)||t.fill.length===0)throw new Error("Invalid fill value. Expected an array of colors for gradient fill.");t.fill.length!==t.fillGradientStops.length&&L("The number of fill colors must match the number of fill gradient stops.");let e=new ee({start:{x:0,y:0},end:{x:0,y:1},textureSpace:"local"}),r=t.fillGradientStops.slice(),s=t.fill.map(n=>Q.shared.setValue(n).toNumber());r.forEach((n,o)=>{e.addColorStop(n,s[o])}),i.fill={fill:e}}}var Ad,Xe,Al=p(()=>{Ht();Qt();Ft();yt();ht();ii();jn();fd();ud();Pd();Ad=class li extends ut{constructor(t={}){super(),this.uid=$("textStyle"),this._tick=0,this._cachedFontString=null,yC(t),t instanceof li&&(t=t._toObject());let s={...li.defaultTextStyle,...t};for(let n in s){let o=n;this[o]=s[n]}this._tagStyles=t.tagStyles??void 0,this.update(),this._tick=0}get align(){return this._align}set align(t){this._align!==t&&(this._align=t,this.update())}get breakWords(){return this._breakWords}set breakWords(t){this._breakWords!==t&&(this._breakWords=t,this.update())}get dropShadow(){return this._dropShadow}set dropShadow(t){this._dropShadow!==t&&(t!==null&&typeof t=="object"?this._dropShadow=this._createProxy({...li.defaultDropShadow,...t}):this._dropShadow=t?this._createProxy({...li.defaultDropShadow}):null,this.update())}get fontFamily(){return this._fontFamily}set fontFamily(t){this._fontFamily!==t&&(this._fontFamily=t,this.update())}get fontSize(){return this._fontSize}set fontSize(t){this._fontSize!==t&&(typeof t=="string"?this._fontSize=parseInt(t,10):this._fontSize=t,this.update())}get fontStyle(){return this._fontStyle}set fontStyle(t){this._fontStyle!==t&&(this._fontStyle=t.toLowerCase(),this.update())}get fontVariant(){return this._fontVariant}set fontVariant(t){this._fontVariant!==t&&(this._fontVariant=t,this.update())}get fontWeight(){return this._fontWeight}set fontWeight(t){this._fontWeight!==t&&(this._fontWeight=t,this.update())}get leading(){return this._leading}set leading(t){this._leading!==t&&(this._leading=t,this.update())}get letterSpacing(){return this._letterSpacing}set letterSpacing(t){this._letterSpacing!==t&&(this._letterSpacing=t,this.update())}get lineHeight(){return this._lineHeight}set lineHeight(t){this._lineHeight!==t&&(this._lineHeight=t,this.update())}get padding(){return this._padding}set padding(t){this._padding!==t&&(this._padding=t,this.update())}get filters(){return this._filters}set filters(t){this._filters!==t&&(this._filters=Object.freeze(t),this.update())}get trim(){return this._trim}set trim(t){this._trim!==t&&(this._trim=t,this.update())}get textBaseline(){return this._textBaseline}set textBaseline(t){this._textBaseline!==t&&(this._textBaseline=t,this.update())}get whiteSpace(){return this._whiteSpace}set whiteSpace(t){this._whiteSpace!==t&&(this._whiteSpace=t,this.update())}get wordWrap(){return this._wordWrap}set wordWrap(t){this._wordWrap!==t&&(this._wordWrap=t,this.update())}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(t){this._wordWrapWidth!==t&&(this._wordWrapWidth=t,this.update())}get fill(){return this._originalFill}set fill(t){t!==this._originalFill&&(this._originalFill=t,this._isFillStyle(t)&&(this._originalFill=this._createProxy({...ge.defaultFillStyle,...t},()=>{this._fill=sr({...this._originalFill},ge.defaultFillStyle)})),this._fill=sr(t===0?"black":t,ge.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(t){t!==this._originalStroke&&(this._originalStroke=t,this._isFillStyle(t)&&(this._originalStroke=this._createProxy({...ge.defaultStrokeStyle,...t},()=>{this._stroke=rs({...this._originalStroke},ge.defaultStrokeStyle)})),this._stroke=rs(t,ge.defaultStrokeStyle),this.update())}get tagStyles(){return this._tagStyles}set tagStyles(t){this._tagStyles!==t&&(this._tagStyles=t??void 0,this.update())}update(){this._tick++,this._cachedFontString=null,this.emit("update",this)}reset(){let t=li.defaultTextStyle;for(let e in t)this[e]=t[e]}assign(t){for(let e in t){let r=e;this[r]=t[e]}return this}get styleKey(){return`${this.uid}-${this._tick}`}get _fontString(){return this._cachedFontString===null&&(this._cachedFontString=ao(this)),this._cachedFontString}_toObject(){return{align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill?{...this._fill}:void 0,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke?{...this._stroke}:void 0,textBaseline:this.textBaseline,trim:this.trim,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0,tagStyles:this._tagStyles?{...this._tagStyles}:void 0}}clone(){return new li(this._toObject())}_getFinalPadding(){let t=0;if(this._filters)for(let e=0;e<this._filters.length;e++)t+=this._filters[e].padding;return Math.max(this._padding,t)}destroy(t=!1){if(this.removeAllListeners(),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._fill?.texture&&this._fill.texture.destroy(r),this._originalFill?.texture&&this._originalFill.texture.destroy(r),this._stroke?.texture&&this._stroke.texture.destroy(r),this._originalStroke?.texture&&this._originalStroke.texture.destroy(r)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(t,e){return new Proxy(t,{set:(r,s,n)=>(r[s]===n||(r[s]=n,e?.(s,n),this.update()),!0)})}_isFillStyle(t){return(t??null)!==null&&!(Q.isColorLike(t)||t instanceof ee||t instanceof Ge)}};Ad.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};Ad.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};Xe=Ad});P();var xg={extension:{type:y.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(gg(),XS))}};P();var yg={extension:{type:y.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(_g(),YS))}};P();Yo();No();P();xt();Vr();var ma;function Fg(i){return ma!==void 0||(ma=(()=>{let t={stencil:!0,failIfMajorPerformanceCaveat:i??Te.defaultOptions.failIfMajorPerformanceCaveat};try{if(!W.get().getWebGLRenderingContext())return!1;let r=W.get().createCanvas().getContext("webgl",t),s=!!r?.getContextAttributes()?.stencil;if(r){let n=r.getExtension("WEBGL_lose_context");n&&n.loseContext()}return r=null,s}catch{return!1}})()),ma}xt();var ga;async function Ug(i={}){return ga!==void 0||(ga=await(async()=>{let t=W.get().getNavigator().gpu;if(!t)return!1;try{return await(await t.requestAdapter(i)).requestDevice(),!0}catch{return!1}})()),ga}Vr();var vv=["webgl","webgpu","canvas"];async function Sv(i){let t=[];i.preference?Array.isArray(i.preference)?t=i.preference.slice():(t.push(i.preference),vv.forEach(n=>{n!==i.preference&&t.push(n)})):t=vv.slice();let e,r={};for(let n=0;n<t.length;n++){let o=t[n];if(o==="webgpu"&&await Ug()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(fy(),dy));e=a,r={...i,...i.webgpu};break}else if(o==="webgl"&&Fg(i.failIfMajorPerformanceCaveat??Te.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(Xb(),jb));e=a,r={...i,...i.webgl};break}else if(o==="canvas"){let{CanvasRenderer:a}=await Promise.resolve().then(()=>(bv(),yv));e=a,r={...i,...i.canvasOptions};break}}if(delete r.webgpu,delete r.webgl,delete r.canvasOptions,!e)throw new Error("No available renderer for the current environment");let s=new e;return await s.init(r),s}Pe();Nh();yt();P();P();var ro=class{static init(t){Object.defineProperty(this,"resizeTo",{configurable:!0,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:n}=this._resizeTo;e=s,r=n}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}};ro.extension=y.Application;P();Ts();Ti();var io=class{static init(t){t=Object.assign({autoStart:!0,sharedTicker:!1},t),Object.defineProperty(this,"ticker",{configurable:!0,set(e){this._ticker&&this._ticker.remove(this.render,this),this._ticker=e,e&&e.add(this.render,this,De.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=t.sharedTicker?qt.shared:new qt,t.autoStart&&this.start()}static destroy(){if(this._ticker){let t=this._ticker;this.ticker=null,t.destroy()}}};io.extension=y.Application;z.add(ro);z.add(io);var Tv=class vd{constructor(...t){this.stage=new mt,t[0]!==void 0&&O(rt,"Application constructor options are deprecated, please use Application.init() instead.")}async init(t){t={...t},this.stage||(this.stage=new mt),this.renderer=await Sv(t),vd._plugins.forEach(e=>{e.init.call(this,t)})}render(){this.renderer.render({container:this.stage})}get canvas(){return this.renderer.canvas}get view(){return O(rt,"Application.view is deprecated, please use Application.canvas instead."),this.renderer.canvas}get screen(){return this.renderer.screen}get domContainerRoot(){return this.renderer.renderPipes.dom?._domElement}destroy(t=!1,e=!1){let r=vd._plugins.slice(0);r.reverse(),r.forEach(s=>{s.destroy.call(this)}),this.stage.destroy(e),this.stage=null,this.renderer.destroy(t),this.renderer=null}};Tv._plugins=[];var bl=Tv;z.handleByList(y.Application,bl._plugins);z.add(en);gm();zr();Be();gt();yt();Es();xr();ir();zr();yt();var wv=class Cv extends ue{constructor(...t){let e=t[0]??{};e instanceof Float32Array&&(O(rt,"use new MeshGeometry({ positions, uvs, indices }) instead"),e={positions:e,uvs:t[1],indices:t[2]}),e={...Cv.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 n=e.indices||new Uint32Array([0,1,2,0,2,3]),o=e.shrinkBuffersToFit,a=new At({data:r,label:"attribute-mesh-positions",shrinkToFit:o,usage:tt.VERTEX|tt.COPY_DST}),l=new At({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:tt.VERTEX|tt.COPY_DST}),c=new At({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:tt.INDEX|tt.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:l,format:"float32x2",stride:8,offset:0}},indexBuffer:c,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}};wv.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};var so=wv;P();P();ot();mr();me();Wh();Ga();var vl=class{constructor(){this.batcherName="default",this.packAsQuad=!1,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,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==e._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=e._updateID,n.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 Sl=class{destroy(){}},no=class{constructor(t,e){this.localUniforms=new Ct({uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new Vt({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!0;if(s){let n=t._geometry;if(n.indices.length!==e.indexSize||n.positions.length!==e.vertexSize)return e.indexSize=n.indices.length,e.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(t);return o.texture.uid!==t._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,t._texture)}return!1}addRenderable(t,e){let r=this.renderer.renderPipes.batch,s=this._getMeshData(t);if(t.didViewUpdate&&(s.indexSize=t._geometry.indices?.length,s.vertexSize=t._geometry.positions?.length),s.batched){let n=this._getBatchableMesh(t);n.setTexture(t._texture),n.geometry=t._geometry,r.addToBatch(n,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.blend&&(t.state.blendMode=nn(t.groupBlendMode,t.texture._source));let e=this.localUniforms;e.uniforms.uTransformMatrix=t.groupTransform,e.uniforms.uRound=this.renderer._roundPixels|t._roundPixels,e.update(),Wi(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 Sl),t._gpuData[this.renderer.uid].meshData||this._initMeshData(t)}_initMeshData(t){return t._gpuData[this.renderer.uid].meshData={batched:t.batched,indexSize:0,vertexSize:0},t._gpuData[this.renderer.uid].meshData}_getBatchableMesh(t){var e,r;return(e=t._gpuData)[r=this.renderer.uid]||(e[r]=new Sl),t._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(t)}_initBatchableMesh(t){let e=new vl;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}};no.extension={type:[y.WebGLPipes,y.WebGPUPipes],name:"mesh"};z.add(no);var oo=class extends Le{constructor(...t){let e=t[0];e instanceof ue&&(O(rt,"Mesh: use new Mesh({ geometry, shader }) instead"),e={geometry:e,shader:t[1]},t[3]&&(O(rt,"Mesh: drawMode argument has been removed, use geometry.topology instead"),e.geometry.topology=t[3]));let{geometry:r,shader:s,texture:n,roundPixels:o,state:a,...l}=e;super({label:"Mesh",...l}),this.renderPipeId="mesh",this._shader=null,this.allowChildren=!1,this.shader=s??null,this.texture=n??s?.texture??F.WHITE,this.state=a??Ot.for2d(),this._geometry=r,this._geometry.on("update",this.onViewUpdate,this),this.roundPixels=o??!1}get material(){return O(rt,"mesh.material property has been removed, use mesh.shader instead"),this._shader}set shader(t){this._shader!==t&&(this._shader=t,this.onViewUpdate())}get shader(){return this._shader}set geometry(t){this._geometry!==t&&(this._geometry?.off("update",this.onViewUpdate,this),t.on("update",this.onViewUpdate,this),this._geometry=t,this.onViewUpdate())}get geometry(){return this._geometry}set texture(t){t||(t=F.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.shader&&(this.shader.texture=t),this._texture=t,this.onViewUpdate())}get texture(){return this._texture}get batched(){return this._shader||(this.state.data&12)!==0?!1:this._geometry instanceof so?this._geometry.batchMode==="auto"?this._geometry.positions.length/2<=100:this._geometry.batchMode==="batch":!1}get bounds(){return this._geometry.bounds}updateBounds(){this._bounds=this._geometry.bounds}containsPoint(t){let{x:e,y:r}=t;if(!this.bounds.containsPoint(e,r))return!1;let s=this.geometry.getBuffer("aPosition").data,n=this.geometry.topology==="triangle-strip"?3:1;if(this.geometry.getIndex()){let o=this.geometry.getIndex().data,a=o.length;for(let l=0;l+2<a;l+=n){let c=o[l]*2,h=o[l+1]*2,u=o[l+2]*2;if(jc(e,r,s[c],s[c+1],s[h],s[h+1],s[u],s[u+1]))return!0}}else{let o=s.length/2;for(let a=0;a+2<o;a+=n){let l=a*2,c=(a+1)*2,h=(a+2)*2;if(jc(e,r,s[l],s[l+1],s[c],s[c+1],s[h],s[h+1]))return!0}}return!1}destroy(t){if(super.destroy(t),typeof t=="boolean"?t:t?.texture){let r=typeof t=="boolean"?t:t?.textureSource;this._texture.destroy(r)}this._geometry?.off("update",this.onViewUpdate,this),this._texture=null,this._geometry=null,this._shader=null}};$t();Ar();vo();yt();Es();var Tl=class extends Le{constructor(t,e){let{text:r,resolution:s,style:n,anchor:o,width:a,height:l,roundPixels:c,...h}=t;super({...h}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=e,this.text=r??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new Gt({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=c??!1,a!==void 0&&(this.width=a),l!==void 0&&(this.height=l)}get anchor(){return this._anchor}set anchor(t){typeof t=="number"?this._anchor.set(t):this._anchor.copyFrom(t)}set text(t){t=t.toString(),this._text!==t&&(this._text=t,this.onViewUpdate())}get text(){return this._text}set resolution(t){this._autoResolution=t===null,this._resolution=t,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(t){t||(t={}),this._style?.off("update",this.onViewUpdate,this),t instanceof this._styleClass?this._style=t:this._style=new this._styleClass(t),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(t){this._setWidth(t,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(t){this._setHeight(t,this.bounds.height)}getSize(t){return t||(t={}),t.width=Math.abs(this.scale.x)*this.bounds.width,t.height=Math.abs(this.scale.y)*this.bounds.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.bounds.width),e!==void 0&&this._setHeight(e,this.bounds.height)}containsPoint(t){let e=this.bounds.width,r=this.bounds.height,s=-e*this.anchor.x,n=0;return t.x>=s&&t.x<=s+e&&(n=-r*this.anchor.y,t.y>=n&&t.y<=n+r)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(t=!1){super.destroy(t),this.owner=null,this._bounds=null,this._anchor=null,(typeof t=="boolean"?t:t?.style)&&this._style.destroy(t),this._style=null,this._text=null}get styleKey(){return`${this._text}:${this._style.styleKey}:${this._resolution}`}};function Ev(i,t){let e=i[0]??{};return(typeof e=="string"||i[1])&&(O(rt,`use new ${t}({ text: "hi!", style }) instead`),e={text:e,style:i[1]}),e}Qt();Yt();qo();xt();bs();Yt();var ai=null,nr=null;function sC(i,t){ai||(ai=W.get().createCanvas(256,128),nr=ai.getContext("2d",{willReadFrequently:!0}),nr.globalCompositeOperation="copy",nr.globalAlpha=1),(ai.width<i||ai.height<t)&&(ai.width=Je(i),ai.height=Je(t))}function Pv(i,t,e){for(let r=0,s=4*e*t;r<t;++r,s+=4)if(i[s+3]!==0)return!1;return!0}function Mv(i,t,e,r,s){let n=4*t;for(let o=r,a=r*n+4*e;o<=s;++o,a+=n)if(i[a+3]!==0)return!1;return!0}function Av(...i){let t=i[0];t.canvas||(t={canvas:i[0],resolution:i[1]});let{canvas:e}=t,r=Math.min(t.resolution??1,1),s=t.width??e.width,n=t.height??e.height,o=t.output;if(sC(s,n),!nr)throw new TypeError("Failed to get canvas 2D context");nr.drawImage(e,0,0,s,n,0,0,s*r,n*r);let l=nr.getImageData(0,0,s,n).data,c=0,h=0,u=s-1,d=n-1;for(;h<n&&Pv(l,s,h);)++h;if(h===n)return J.EMPTY;for(;Pv(l,s,d);)--d;for(;Mv(l,s,c,h,d);)++c;for(;Mv(l,s,u,h,d);)--u;return++u,++d,nr.globalCompositeOperation="source-over",nr.strokeRect(c,h,u-c,d-h),nr.globalCompositeOperation="copy",o??(o=new J),o.set(c/r,h/r,(u-c)/r,(d-h)/r),o}Ed();Pd();Hv();var Wv=new J;function ss(i){let t=0;for(let e=0;e<i.length;e++)i.charCodeAt(e)===32&&t++;return t}var Md=class{getCanvasAndContext(t){let{text:e,style:r,resolution:s=1}=t,n=r._getFinalPadding(),o=je.measureText(e||" ",r),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),l=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),c=rr.getOptimalCanvasAndContext(a,l);this._renderTextToCanvas(r,n,s,c,o);let h=r.trim?Av({canvas:c.canvas,width:a,height:l,resolution:1,output:Wv}):Wv.set(0,0,a,l);return{canvasAndContext:c,frame:h}}returnCanvasAndContext(t){rr.returnCanvasAndContext(t)}_renderTextToCanvas(t,e,r,s,n){if(n.runsByLine&&n.runsByLine.length>0){this._renderTaggedTextToCanvas(n,t,e,r,s);return}let{canvas:o,context:a}=s,l=ao(t),c=n.lines,h=n.lineHeight,u=n.lineWidths,d=n.maxLineWidth,f=n.fontProperties,m=o.height;if(a.resetTransform(),a.scale(r,r),a.textBaseline=t.textBaseline,t._stroke?.width){let T=t._stroke;a.lineWidth=T.width,a.miterLimit=T.miterLimit,a.lineJoin=T.join,a.lineCap=T.cap}a.font=l;let g,_,x=t.dropShadow?2:1,v=(t._stroke?.width??0)/2,S=(h-f.fontSize)/2;h-f.fontSize<0&&(S=0);for(let T=0;T<x;++T){let w=t.dropShadow&&T===0,E=w?Math.ceil(Math.max(1,m)+e*2):0,B=E*r;if(w)this._setupDropShadow(a,t,r,B);else{let R=t._gradientBounds,M=t._gradientOffset;if(R){let C={width:R.width,height:R.height,lineHeight:R.height,lines:n.lines};this._setFillAndStrokeStyles(a,t,C,e,v,M?.x??0,M?.y??0)}else M?this._setFillAndStrokeStyles(a,t,n,e,v,M.x,M.y):this._setFillAndStrokeStyles(a,t,n,e,v);a.shadowColor="rgba(0,0,0,0)"}for(let R=0;R<c.length;R++){g=v,_=v+R*h+f.ascent+S,g+=this._getAlignmentOffset(u[R],d,t.align);let M=0;if(t.align==="justify"&&t.wordWrap&&R<c.length-1){let C=ss(c[R]);C>0&&(M=(d-u[R])/C)}t._stroke?.width&&this._drawLetterSpacing(c[R],t,s,g+e,_+e-E,!0,M),t._fill!==void 0&&this._drawLetterSpacing(c[R],t,s,g+e,_+e-E,!1,M)}}}_renderTaggedTextToCanvas(t,e,r,s,n){let{canvas:o,context:a}=n,{runsByLine:l,lineWidths:c,maxLineWidth:h,lineAscents:u,lineHeights:d,hasDropShadow:f}=t,m=o.height;a.resetTransform(),a.scale(s,s),a.textBaseline=e.textBaseline;let g=f?2:1,_=e._stroke?.width??0;for(let v of l)for(let S of v){let T=S.style._stroke?.width??0;T>_&&(_=T)}let x=_/2,b=[];for(let v=0;v<l.length;v++){let S=l[v],T=[];for(let w of S){let E=ao(w.style);a.font=E,T.push({width:je._measureText(w.text,w.style.letterSpacing,a),font:E})}b.push(T)}for(let v=0;v<g;++v){let S=f&&v===0,T=S?Math.ceil(Math.max(1,m)+r*2):0,w=T*s;S||(a.shadowColor="rgba(0,0,0,0)");let E=x;for(let B=0;B<l.length;B++){let R=l[B],M=c[B],C=u[B],A=d[B],D=b[B],H=x;H+=this._getAlignmentOffset(M,h,e.align);let K=0;if(e.align==="justify"&&e.wordWrap&&B<l.length-1){let j=0;for(let G of R)j+=ss(G.text);j>0&&(K=(h-M)/j)}let I=E+C,U=H+r;for(let j=0;j<R.length;j++){let G=R[j],{width:Y,font:pt}=D[j];if(a.font=pt,a.textBaseline=G.style.textBaseline,G.style._stroke?.width){let lt=G.style._stroke;if(a.lineWidth=lt.width,a.miterLimit=lt.miterLimit,a.lineJoin=lt.join,a.lineCap=lt.cap,S)if(G.style.dropShadow)this._setupDropShadow(a,G.style,s,w);else{let ft=ss(G.text);U+=Y+ft*K;continue}else{let ft=je.measureFont(pt),q=G.style.lineHeight||ft.fontSize,jt={width:Y,height:q,lineHeight:q,lines:[G.text]};a.strokeStyle=lo(lt,a,jt,r*2,U-r,E)}this._drawLetterSpacing(G.text,G.style,n,U,I+r-T,!0,K)}let wt=ss(G.text);U+=Y+wt*K}U=H+r;for(let j=0;j<R.length;j++){let G=R[j],{width:Y,font:pt}=D[j];if(a.font=pt,a.textBaseline=G.style.textBaseline,G.style._fill!==void 0){if(S)if(G.style.dropShadow)this._setupDropShadow(a,G.style,s,w);else{let lt=ss(G.text);U+=Y+lt*K;continue}else{let lt=je.measureFont(pt),ft=G.style.lineHeight||lt.fontSize,q={width:Y,height:ft,lineHeight:ft,lines:[G.text]};a.fillStyle=lo(G.style._fill,a,q,r*2,U-r,E)}this._drawLetterSpacing(G.text,G.style,n,U,I+r-T,!1,K)}let wt=ss(G.text);U+=Y+wt*K}E+=A}}}_setFillAndStrokeStyles(t,e,r,s,n,o=0,a=0){if(t.fillStyle=e._fill?lo(e._fill,t,r,s*2,o,a):null,e._stroke?.width){let l=n+s*2;t.strokeStyle=lo(e._stroke,t,r,l,o,a)}}_setupDropShadow(t,e,r,s){t.fillStyle="black",t.strokeStyle="black";let n=e.dropShadow,o=n.color,a=n.alpha;t.shadowColor=Q.shared.setValue(o).setAlpha(a).toRgbaString();let l=n.blur*r,c=n.distance*r;t.shadowBlur=l,t.shadowOffsetX=Math.cos(n.angle)*c,t.shadowOffsetY=Math.sin(n.angle)*c+s}_getAlignmentOffset(t,e,r){return r==="right"?e-t:r==="center"?(e-t)/2:0}_drawLetterSpacing(t,e,r,s,n,o=!1,a=0){let{context:l}=r,c=e.letterSpacing,h=!1;if(je.experimentalLetterSpacingSupported&&(je.experimentalLetterSpacing?(l.letterSpacing=`${c}px`,l.textLetterSpacing=`${c}px`,h=!0):(l.letterSpacing="0px",l.textLetterSpacing="0px")),(c===0||h)&&a===0){o?l.strokeText(t,s,n):l.fillText(t,s,n);return}if(a!==0&&(c===0||h)){let g=t.split(" "),_=s,x=l.measureText(" ").width;for(let b=0;b<g.length;b++)o?l.strokeText(g[b],_,n):l.fillText(g[b],_,n),_+=l.measureText(g[b]).width+x+a;return}let u=s,d=je.graphemeSegmenter(t),f=l.measureText(t).width,m=0;for(let g=0;g<d.length;++g){let _=d[g];o?l.strokeText(_,u,n):l.fillText(_,u,n);let x="";for(let b=g+1;b<d.length;++b)x+=d[b];m=l.measureText(x).width,u+=f-m+c,_===" "&&(u+=a),f=m}}},wr=new Md;Ed();Al();P();P();Ie();Fc();function Vv(i,t){let{texture:e,bounds:r}=i,s=t._style._getFinalPadding();zo(r,t._anchor,e);let n=t._anchor._x*s*2,o=t._anchor._y*s*2;r.minX-=s-n,r.minY-=s-o,r.maxX-=s-n,r.maxY-=s-o}Ea();var Rl=class extends yr{};var co=class{constructor(t){this._renderer=t,t.runners.resolutionChange.add(this),this._managedTexts=new kt({renderer:t,type:"renderable",onUnload:this.onTextUnload.bind(this),name:"canvasText"})}resolutionChange(){for(let t in this._managedTexts.items){let e=this._managedTexts.items[t];e?._autoResolution&&e.onViewUpdate()}}validateRenderable(t){let e=this._getGpuText(t),r=t.styleKey;return e.currentKey!==r?!0:t._didTextUpdate}addRenderable(t,e){let r=this._getGpuText(t);if(t._didTextUpdate){let s=t._autoResolution?this._renderer.resolution:t.resolution;(r.currentKey!==t.styleKey||t._resolution!==s)&&this._updateGpuText(t),t._didTextUpdate=!1,Vv(r,t)}this._renderer.renderPipes.batch.addToBatch(r,e)}updateRenderable(t){let e=this._getGpuText(t);e._batcher.updateElement(e)}_updateGpuText(t){let e=this._getGpuText(t);e.texture&&this._renderer.canvasText.decreaseReferenceCount(e.currentKey),t._resolution=t._autoResolution?this._renderer.resolution:t.resolution,e.texture=this._renderer.canvasText.getManagedTexture(t),e.currentKey=t.styleKey}_getGpuText(t){return t._gpuData[this._renderer.uid]||this.initGpuText(t)}initGpuText(t){let e=new Rl;return e.currentKey="--",e.renderable=t,e.transform=t.groupTransform,e.bounds={minX:0,maxX:1,minY:0,maxY:0},e.roundPixels=this._renderer._roundPixels|t._roundPixels,t._gpuData[this._renderer.uid]=e,this._managedTexts.add(t),e}onTextUnload(t){let e=t._gpuData[this._renderer.uid];if(!e)return;let{canvasText:r}=this._renderer;r.getReferenceCount(e.currentKey)>0?r.decreaseReferenceCount(e.currentKey):e.texture&&r.returnTexture(e.texture)}destroy(){this._managedTexts.destroy(),this._renderer=null}};co.extension={type:[y.WebGLPipes,y.WebGPUPipes,y.CanvasPipes],name:"text"};P();Fr();Ar();yt();Al();Yc();var ns=class{constructor(t,e){this._activeTextures={},this._renderer=t,this._retainCanvasContext=e}getTexture(t,e,r,s){typeof t=="string"&&(O("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),t={text:t,style:r,resolution:e}),t.style instanceof Xe||(t.style=new Xe(t.style)),t.textureStyle instanceof ce||(t.textureStyle=new ce(t.textureStyle)),typeof t.text!="string"&&(t.text=t.text.toString());let{text:n,style:o,textureStyle:a,autoGenerateMipmaps:l}=t,c=t.resolution??this._renderer.resolution,{frame:h,canvasAndContext:u}=wr.getCanvasAndContext({text:n,style:o,resolution:c}),d=ra(u.canvas,h.width,h.height,c,l);if(a&&(d.source.style=a),o.trim&&(h.pad(o.padding),d.frame.copyFrom(h),d.frame.scale(1/c),d.updateUvs()),o.filters){let f=this._applyFilters(d,o.filters);return this.returnTexture(d),wr.returnCanvasAndContext(u),f}return this._renderer.texture.initSource(d._source),this._retainCanvasContext||wr.returnCanvasAndContext(u),d}returnTexture(t){let e=t.source,r=e.resource;if(this._retainCanvasContext&&r?.getContext){let s=r.getContext("2d");s&&wr.returnCanvasAndContext({canvas:r,context:s})}e.resource=null,e.uploadMethodId="unknown",e.alphaMode="no-premultiply-alpha",Mt.returnTexture(t,!0)}renderTextToCanvas(){O("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}getManagedTexture(t){t._resolution=t._autoResolution?this._renderer.resolution:t.resolution;let e=t.styleKey;if(this._activeTextures[e])return this._increaseReferenceCount(e),this._activeTextures[e].texture;let r=this.getTexture({text:t.text,style:t.style,resolution:t._resolution,textureStyle:t.textureStyle,autoGenerateMipmaps:t.autoGenerateMipmaps});return this._activeTextures[e]={texture:r,usageCount:1},r}decreaseReferenceCount(t){let e=this._activeTextures[t];e&&(e.usageCount--,e.usageCount===0&&(this.returnTexture(e.texture),this._activeTextures[t]=null))}getReferenceCount(t){return this._activeTextures[t]?.usageCount??0}_increaseReferenceCount(t){this._activeTextures[t].usageCount++}_applyFilters(t,e){let r=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:t,filters:e});return this._renderer.renderTarget.bind({target:r,clear:!1}),s}destroy(){this._renderer=null;for(let t in this._activeTextures)this._activeTextures[t]&&this.returnTexture(this._activeTextures[t].texture);this._activeTextures=null}};var ho=class extends ns{constructor(t){super(t,!0)}};ho.extension={type:[y.CanvasSystem],name:"canvasText"};P();var uo=class extends ns{constructor(t){super(t,!1)}};uo.extension={type:[y.WebGLSystem,y.WebGPUSystem],name:"canvasText"};z.add(ho);z.add(uo);z.add(co);var fo=class extends Tl{constructor(...t){let e=Ev(t,"Text");super(e,Xe),this.renderPipeId="text",e.textureStyle&&(this.textureStyle=e.textureStyle instanceof ce?e.textureStyle:new ce(e.textureStyle)),this.autoGenerateMipmaps=e.autoGenerateMipmaps??st.defaultOptions.autoGenerateMipmaps}updateBounds(){let t=this._bounds,e=this._anchor,r=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=wr.getCanvasAndContext({text:this.text,style:this._style,resolution:1});wr.returnCanvasAndContext(o),r=n.width,s=n.height}else{let n=je.measureText(this._text,this._style);r=n.width,s=n.height}t.minX=-e._x*r,t.maxX=t.minX+r,t.minY=-e._y*s,t.maxY=t.minY+s}};xr();ir();zr();pr();zh();function Rd(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}pr();function Xv(i){return{dynamicUpdate:jv(i,!0),staticUpdate:jv(i,!1)}}function jv(i,t){let e=[];e.push(`
|
|
912
912
|
|
|
913
913
|
var index = 0;
|
|
914
914
|
|
|
@@ -922,9 +922,9 @@ fn mainFragment(
|
|
|
922
922
|
`),e.unshift(`
|
|
923
923
|
var stride = ${r};
|
|
924
924
|
`);let s=e.join(`
|
|
925
|
-
`);return new Function("ps","f32v","u32v",s)}var
|
|
926
|
-
`),y:e*i.lineHeight}}function t1(i){let t=i[0]||[],e=(r,s,n)=>(s.x-r.x)*(n.y-r.y)-(s.y-r.y)*(n.x-r.x);for(let r of i.slice(1)){let n=r.reduce((o,a,l)=>{let c=r[(l+1)%r.length];return o+a.x*c.y-c.x*a.y},0)>=0?1:-1;for(let o=0;o<r.length&&t.length;o++){let a=r[o],l=r[(o+1)%r.length],c=t;t=[];let h=c[c.length-1],u=e(a,l,h)*n;for(let d of c){let f=e(a,l,d)*n;if(f>=0!=u>=0){let m=u/(u-f);t.push({x:h.x+m*(d.x-h.x),y:h.y+m*(d.y-h.y)})}f>=0&&t.push(d),h=d,u=f}}}return t}var e1="qxqy-image-refresh",lr=new Map,fo=new Map,po=new Map,Ud=new Set,EC=16777216,r1=!1;function PC(i,t){po.set(i,t),lr.delete(i),fo.delete(i);for(let e of Ud)e(i)}var i1=i=>/^\d+$/.test(i)?Ye(Number(i)):i;function Dd(){if(!(r1||typeof window>"u")){r1=!0;try{for(let[i,t]of Object.entries(JSON.parse(localStorage.getItem(e1)||"{}")))po.set(i1(i),t)}catch{}window.addEventListener("storage",i=>{if(i.key===e1)try{for(let[t,e]of Object.entries(JSON.parse(i.newValue||"{}"))){let r=i1(t);po.get(r)!==e&&PC(r,e)}}catch{}})}}function s1(i){return Dd(),Ud.add(i),()=>Ud.delete(i)}function MC(i,t){if(Dd(),ar(t)!=="StaticReference"||!kl(i,t))return Promise.resolve(null);let e=Ye(i,t),r=fo.get(e);if(r)return r;let s=fetch(Yv(i,po.get(e),t),{signal:AbortSignal.timeout(3e4)}).then(async n=>{if(!n.ok)throw new Error(`\u56FE\u7247 ${i} \u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);return n.json()}).catch(n=>{throw fo.get(e)===s&&fo.delete(e),n});return fo.set(e,s),s}async function n1(i,t){let[e,r]=await Promise.all([AC(i,t),MC(i,t).then(s=>({meta:s,error:""}),s=>({meta:void 0,error:s.message}))]);return{image:e,...r}}function AC(i,t){if(Dd(),!kl(i,t))return Promise.reject(new Error("Image source/ID is not in the preview allowlist"));let e=Ye(i,t),r=lr.get(e);if(r&&(!r.failed||Date.now()<r.retryAt))return lr.delete(e),lr.set(e,r),r.promise;let s={pixels:0,failed:!1};return s.promise=new Promise((n,o)=>{let a=new Image,l=setTimeout(()=>{a.src="",c(new Error("\u56FE\u7247\u52A0\u8F7D\u8D85\u65F6"))},45e3);function c(h){if(clearTimeout(l),a.onload=a.onerror=null,h){s.failed=!0,s.retryAt=Date.now()+6e4,o(h);return}s.pixels=a.width*a.height;let u=[...lr.values()].reduce((d,f)=>d+f.pixels,0);for(let[d,f]of lr){if(u<=EC&&lr.size<=128)break;d!==e&&(!f.pixels&&!f.failed||(lr.delete(d),u-=f.pixels))}n(a)}a.onload=()=>c(),a.onerror=()=>c(new Error(`\u56FE\u7247 ${i} \u52A0\u8F7D\u5931\u8D25\uFF0C\u53EF\u5728\u5C5E\u6027\u9762\u677F\u5237\u65B0\u7D20\u6750`)),a.src=Bd(i,po.get(e),t)}),lr.set(e,s),s.promise}function RC(i){return!!i?.border&&Object.values(i.border).some(t=>Number.isFinite(t)&&t>0)}function a1(i,t){let e=typeof t=="object"?t?.Name:t;return RC(i)&&e!=="Basic"?"Stretch":"Basic"}function o1(i,t,e,r){t=Number.isFinite(t)?Math.max(0,t):0,e=Number.isFinite(e)?Math.max(0,e):0;let s=Math.min(1,i/(t+e||1));t*=s,e*=s;let n=Math.min(1,r/(t+e||1));return{source:[0,t,i-e,i],target:[0,t*n,r-e*n,r]}}function l1(i,t,e){if(!(i?.width>0&&i?.height>0&&t>0&&e>0))return[];let r=o1(i.width,i.border.left,i.border.right,t),s=o1(i.height,i.border.top,i.border.bottom,e),n=[];for(let o=0;o<3;o++)for(let a=0;a<3;a++){let l=[r.target[a],s.target[o],r.target[a+1]-r.target[a],s.target[o+1]-s.target[o]];l[2]<=0||l[3]<=0||n.push({source:[r.source[a],s.source[o],r.source[a+1]-r.source[a],s.source[o+1]-s.source[o]],target:l})}return n}var Il='"Microsoft YaHei UI","Microsoft YaHei","HarmonyOS Sans SC","Noto Sans CJK SC",sans-serif',Ld="/qxqy-font";var Od=i=>`QxqyLocal_${i}`,c1=i=>i?`"${Od(i)}",${Il}`:Il;var Nd;function h1(){return Nd||=BC().catch(i=>{throw Nd=null,i}),Nd}async function BC(){let i={cache:"no-store",credentials:"same-origin",mode:"same-origin",signal:AbortSignal.timeout(1e4)},t=await fetch(`${Ld}/manifest`,i);if(!t.ok)throw new Error("\u65E0\u6CD5\u8BFB\u53D6\u672C\u5730\u5B57\u4F53\u914D\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u5BBF\u4E3B\u914D\u7F6E\u53CA\u672C\u673A\u8FDE\u63A5");let{id:e}=await t.json();if(e===null)return null;if(typeof e!="string"||!/^[a-f0-9]{64}$/.test(e))throw new Error("\u672C\u5730\u5B57\u4F53\u6807\u8BC6\u65E0\u6548");let r=await fetch(`${Ld}/file/${e}`,i);if(!r.ok)throw new Error("\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762");let s=await r.arrayBuffer();if(!s.byteLength||s.byteLength>33554432)throw new Error("\u672C\u5730\u5B57\u4F53\u5927\u5C0F\u65E0\u6548");let n=new FontFace(Od(e),s);await n.load(),document.fonts.add(n);let o=c1(e),a="qxqy-local-font-style",l=document.getElementById(a);return l||(l=document.createElement("style"),l.id=a,document.head.appendChild(l)),l.textContent=`[data-qxqy-font-ui], [data-qxqy-font-ui] * { font-family: ${o} !important; }`,o}var Gl={"\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u5B57\u4F53\u8BBE\u7F6E\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support font settings yet. Restart the Web or Harness host, then retry.","\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u68C0\u67E5\u66F4\u65B0\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support update checks yet. Restart the Web or Harness host, then retry.","\u8BF7\u8F93\u5165\u516D\u4F4D\u989C\u8272\uFF0C\u4F8B\u5982 #FF8800":"Enter a six-digit color, e.g. #FF8800","\u900F\u660E\u5EA6\u8BF7\u8F93\u5165 0\u2013100 \u7684\u6574\u6570":"Enter an integer from 0 to 100 for opacity","Alpha\uFF1A0% \u5B8C\u5168\u900F\u660E\uFF0C100% \u5B8C\u5168\u4E0D\u900F\u660E":"Alpha: 0% is transparent; 100% is opaque","{0}\u4E0E\u900F\u660E\u5EA6":"{0} and opacity",\u6253\u5F00\u53D6\u8272\u5668:"Open color picker","{0}\u53D6\u8272\u5668":"{0} color picker",\u900F\u660E\u5EA6:"Opacity","{0}\u900F\u660E\u5EA6\u6ED1\u5757":"{0} opacity slider","{0}\u900F\u660E\u5EA6":"{0} opacity","Lua \u7D22\u5F15\u5F85\u540C\u6B65\uFF08{0} \u9879\uFF09\xB7 \u5C55\u5F00":"Lua index references need updating ({0}) \xB7 Expand","Lua \u7D22\u5F15\u540C\u6B65":"Update Lua Index References","\u4E0B\u4E00\u6B65\uFF1A\u540C\u6B65 Lua \u7D22\u5F15\u5F15\u7528\uFF08{0} \u9879\uFF09":"Next: Update Lua index references ({0})",\u811A\u672C\u5168\u91CF\u66FF\u6362\u5DF2\u5B8C\u6210:"Script index replacement completed",\u5173\u95ED\u7D22\u5F15\u540C\u6B65\u63D0\u793A:"Close index update notice","\u6536\u8D77\u63D0\u793A\uFF0C\u4FDD\u7559\u5F85\u540C\u6B65\u8BB0\u5F55":"Collapse notice and keep pending changes",\u5173\u95ED:"Close","\u540C\u6B65\u4EFB\u52A1\uFF08\u7C98\u8D34\u7ED9\u5F53\u524D\u9879\u76EE\u7684 AI\uFF09":"Update task (paste into this project's AI chat)","AI \u7D22\u5F15\u540C\u6B65\u4EFB\u52A1":"AI task: Update index references","AI \u5DF2\u5904\u7406\uFF0C\u91CD\u65B0\u8F7D\u5165\u5B58\u6863":"AI finished \u2014 reload the save","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\uFF0C\u8BF7\u9009\u62E9\u4E00\u79CD\u65B9\u5F0F\u540C\u6B65\u811A\u672C\u3002":"Control indices changed. Choose how to update script references.","\u8BF7\u68C0\u67E5\u66FF\u6362\u7ED3\u679C\u5E76\u4FDD\u5B58\u5B58\u6863\uFF0C\u518D\u5230\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u91CC\u7684\u6587\u4EF6\u5E76\u91CD\u65B0\u8BD5\u73A9\u3002":"Review the replacements and save. Then use Lua Scripts \u2192 Sync Scripts to Game and test again in the game.",\u7D22\u5F15\u540C\u6B65\u65B9\u5F0F:"Update method",\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15:"Replace All Script Indices","\u53EF\u80FD\u9519\u8BEF\u5730\u66FF\u6362\u975E\u7D22\u5F15\u5185\u5BB9\u3002":"This may replace numbers unrelated to control indices.","\u6309\u5B8C\u6574\u5341\u8FDB\u5236\u6570\u5B57\u66FF\u6362\u6240\u6709\u5DF2\u767B\u8BB0\u811A\u672C\uFF0C\u5305\u62EC\u914D\u7F6E\u8868\u3001\u5B57\u7B26\u4E32\u548C\u6CE8\u91CA\uFF1B\u540C\u65F6\u66F4\u65B0\u5185\u5BB9\u4E00\u81F4\u7684\u5DE5\u4F5C\u533A\u6E90\u6587\u4EF6\uFF0C\u66FF\u6362\u524D\u81EA\u52A8\u5907\u4EFD\u3002":"Replace whole decimal numbers in all registered scripts, including tables, strings, and comments. Matching workspace source files are updated too, with backups.","\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI":"Copy Task for AI","\u5148\u4FDD\u5B58\u6700\u65B0\u5B58\u6863\uFF0C\u518D\u590D\u5236\u5305\u542B\u6620\u5C04\u8BFB\u53D6\u65B9\u5F0F\u548C\u811A\u672C\u4F4D\u7F6E\u7684\u63D0\u793A\u8BCD\uFF0C\u7531 AI \u5224\u65AD\u54EA\u4E9B\u5F15\u7528\u9700\u8981\u66F4\u65B0\u3002":"Save first, then copy the index mapping instructions and script locations so the AI can identify references to update.","\u67E5\u770B\u7D22\u5F15\u53D8\u66F4\uFF08{0} \u9879\uFF09":"View index changes ({0})","\u8FD9\u91CC\u663E\u793A\u524D 20 \u9879\uFF1B\u5B8C\u6574\u6620\u5C04\u968F\u5B58\u6863\u4FDD\u5B58\uFF0C\u590D\u5236\u7684\u4EFB\u52A1\u4F1A\u5F15\u5BFC AI \u8BFB\u53D6\u5168\u90E8\u3002":"Showing the first 20 changes. The save includes the complete mapping; the copied task tells the AI how to read it.","Lua \u7D22\u5F15\u540C\u6B65\u95EE\u9898":"Lua index update issues","\u6E90\u7801\u6587\u4EF6\u6216\u7D22\u5F15\u6620\u5C04\u5B58\u5728\u51B2\u7A81\uFF0C\u672C\u6B21\u6CA1\u6709\u4FEE\u6539\u811A\u672C\u3002\u53EF\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI \u5904\u7406\u3002":"Source files or index mappings conflict. No scripts were changed. You can copy a task for the AI.",\u5185\u8054\u811A\u672C:"Inline script","\u7B2C {0} \u884C\uFF1A":"Line {0}:","\u5176\u4F59\u95EE\u9898\u8BF7\u7531 AI \u6838\u5BF9\u3002":"Ask the AI to review the remaining issues.","\u5DF2\u66FF\u6362 {0} \u4E2A\u811A\u672C\u7684 {1} \u5904\u6587\u672C\uFF0C\u66F4\u65B0 {2} \u4E2A\u9879\u76EE\u6587\u4EF6\u3002\u5907\u4EFD\uFF1A{3}":"Replaced {1} occurrences in {0} scripts and updated {2} project files. Backups: {3}","\u524D\u5F80 Lua \u811A\u672C":"Open Lua Scripts",\u65E0\u6CD5\u8BFB\u53D6\u5B57\u4F53\u8BBE\u7F6E:"Unable to read font settings","\u627E\u5230\u5B57\u4F53\uFF1A{0}\u3002":"Font found: {0}.","\u9ED8\u8BA4\u4F4D\u7F6E\u672A\u627E\u5230\u5B57\u4F53\uFF0C\u5C06\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002":"No font found in the default locations. The system font will be used.","\u5DF2\u4FDD\u5B58\u3002{0}\u91CD\u542F Web\u3001MCP \u6216 Harness \u5BBF\u4E3B\u540E\uFF0C\u5237\u65B0\u7F16\u8F91\u5668\u53CA\u8BD5\u73A9\u9875\u751F\u6548\u3002":"Saved. {0}Restart the Web, MCP, or Harness host, then refresh the editor and playtest pages to apply.",\u5B57\u4F53\u8BBE\u7F6E:"Font Settings","\u7528\u4E8E\u6574\u4E2A\u6A21\u62DF\u5668\u754C\u9762\u3001\u7F16\u8F91\u753B\u5E03\u3001\u8BD5\u73A9\u53CA\u622A\u56FE\u3002\u8BBE\u7F6E\u4EC5\u4FDD\u5B58\u5728\u672C\u673A\uFF0C\u91CD\u542F\u5BBF\u4E3B\u540E\u751F\u6548\u3002":"Used throughout the simulator interface, editing canvas, playtests, and screenshots. Settings stay on this machine and apply after restarting the host.","\u5F53\u524D\u5B57\u4F53\uFF1A{0}":"Active font: {0}",\u7CFB\u7EDF\u5B57\u4F53:"System font","\u5F53\u524D\u7531\u73AF\u5883\u53D8\u91CF QXQY_FONT_PATH \u6307\u5B9A\u3002\u79FB\u9664\u8BE5\u53D8\u91CF\u5E76\u91CD\u542F\u5BBF\u4E3B\u540E\uFF0C\u53EF\u5728\u8FD9\u91CC\u4FEE\u6539\u3002":"QXQY_FONT_PATH currently overrides these settings. Remove it and restart the host to edit them here.",\u5B57\u4F53\u6765\u6E90:"Font source",\u81EA\u52A8\u5C1D\u8BD5\u539F\u795E\u7684\u9ED8\u8BA4\u5B89\u88C5\u4F4D\u7F6E:"Look in Genshin Impact's default installation locations",\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6:"Use a local font file",\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53:"Use the system font",\u5B57\u4F53\u6587\u4EF6\u8DEF\u5F84:"Font file path","\u586B\u5199 TTF / OTF \u7684\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u6700\u5927 32 MiB\uFF1B\u53EF\u4EE5\u76F4\u63A5\u7C98\u8D34\u5E26\u5F15\u53F7\u7684 Windows \u8DEF\u5F84\u3002":"Enter an absolute TTF / OTF path (up to 32 MiB). Quoted Windows paths are accepted.","\u6309\u987A\u5E8F\u5C1D\u8BD5\u4EE5\u4E0B\u4F4D\u7F6E\uFF1B\u90FD\u672A\u627E\u5230\u65F6\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002\u5B89\u88C5\u5728\u5176\u4ED6\u76D8\u7B26\u65F6\u8BF7\u9009\u62E9\u201C\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6\u201D\u3002":"These locations are checked in order. If none contains a font, the system font is used. For another drive, select \u201CUse a local font file\u201D.","\u5F53\u524D\u7CFB\u7EDF\u4E0D\u81EA\u52A8\u67E5\u627E\uFF0C\u8BF7\u6307\u5B9A\u5B57\u4F53\u6587\u4EF6\u3002":"Automatic font discovery is unavailable on this system. Specify a font file.","\u6709\u5DF2\u4FDD\u5B58\u7684\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762\u540E\u751F\u6548\u3002":"Font settings have been saved. Restart the host and refresh the pages to apply them.","\u6B63\u5728\u8BFB\u53D6\u8BBE\u7F6E\u2026":"Loading settings\u2026","\u4FDD\u5B58\u4E2D\u2026":"Saving...",\u4FDD\u5B58\u8BBE\u7F6E:"Save Settings","\u56FE\u7247 {0} \u52A0\u8F7D\u5931\u8D25":"Failed to load image {0}","\u52A0\u8F7D\u56FE\u7247 {0}\u2026":"Loading image {0}\u2026","\u56FE\u7247 {0}":"Image {0}",\u56FE\u7247\u7C7B\u578B:"Image Type",\u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25:"Failed to load image metadata","\u8BFB\u53D6\u7D20\u6750\u8FB9\u754C\u2026":"Loading asset borders\u2026",\u57FA\u7840:"Basic",\u62C9\u4F38:"Stretch",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668:"Client Control Container",\u5BB9\u5668\u8282\u70B9:"Container Control",\u6587\u672C\u6846:"Text Box",\u5149\u6807\u68C0\u6D4B\u533A\u57DF:"CursorEventArea",\u6A21\u677F\u5F15\u7528\u63A7\u4EF6:"Reference Control",\u7F51\u683C\u89C6\u7A97:"Grid Scroller",\u56FE\u7247:"Image",\u9884\u8BBE\u6309\u94AE:"Preset Button",\u6587\u672C\u89C6\u7A97:"Text Window",\u6309\u952E\u63D0\u793A:"Key Hint",\u754C\u9762\u52A8\u6548:"UI Animation",\u5168\u5C4F\u52A8\u6548:"Fullscreen UI Animation",\u5149\u6807\u68C0\u6D4B:"CursorEventArea",\u6A21\u677F\u5F15\u7528:"Reference Control","\u5BFC\u51FA\u5185\u5BB9\u89E3\u7801\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u6216\u5237\u65B0\u9875\u9762":"Unable to decode the export. Retry or refresh the page.","PC KEYBOARD \u753B\u5E03\uFF1A1600\xD7900 / 2100\xD7900":"PC KEYBOARD canvas: 1600\xD7900 / 2100\xD7900",\u624B\u673A:"Mobile","\u624B\u673A TOUCHSCREEN \u753B\u5E03\uFF1A1280\xD7720 / 1560\xD7720 / 1280\xD7960":"Mobile TOUCHSCREEN canvas: 1280\xD7720 / 1560\xD7720 / 1280\xD7960",\u5C1A\u65E0\u53EF\u7F16\u8F91\u503C:"No editable value available","\u672A\u8BC6\u522B\u9009\u9879 {0}\uFF08\u4FDD\u7559\u539F\u503C\uFF09":"Unknown option {0} (original value preserved)",\u7A7A:"None","\u65B0\u5EFA\u5E76\u7ED1\u5B9A{0}\u56FE\u7247":"Create and assign a {0} image",\u7FBD\u5316\u5BBD\u5EA6:"Soft Edge Width",\u7FBD\u5316\u8303\u56F4:"Soft Edge Range",\u56FE\u7247\u8BBE\u7F6E:"Image Settings",\u906E\u7F69\u8BBE\u7F6E:"Mask Settings",\u6587\u672C\u6846\u8BBE\u7F6E:"Text Box Settings",\u6309\u94AE\u8BBE\u7F6E:"Button Settings","{0}\u8BBE\u7F6E":"{0} Settings",\u8282\u70B9\u4FE1\u606F:"Node Information",\u53D8\u6362:"Transform",\u4F4D\u7F6E:"Location",\u5927\u5C0F:"Size",\u4E2D\u5FC3:"Pivot",\u521B\u5EFA\u8BBE\u7F6E:"Create Settings",\u624B\u67C4\u5BFC\u822A:"Controller Navigation",\u5B9E\u73B0\u72B6\u6001:"Support Status","\u5B58\u6863\u5185 Lua \u811A\u672C\uFF08{0}\uFF09":"Lua Scripts in This Save ({0})","\uFF0B \u65B0\u5EFA\u811A\u672C":"\uFF0B New Script","(\u672A\u547D\u540D\u811A\u672C)":"(Unnamed script)","\u6302\u8F7D\uFF1A{0} \xB7 {1}":"Attached to: {0} \xB7 {1}","\u672A\u6302\u8F7D\uFF08\u4EC5\u53EF\u88AB require\uFF09":"Not attached (available through require only)","\u4E0B\u8F7D\u8BE5\u811A\u672C .lua":"Download this script as .lua",\u5220\u9664\u8BE5\u811A\u672C:"Delete this script","\u8FD8\u6CA1\u6709\u811A\u672C\uFF0C\u70B9\u51FB\u201C\u65B0\u5EFA\u811A\u672C\u201D\u5F00\u59CB":"No scripts yet. Click \u201CNew Script\u201D to begin.","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 Lua \u811A\u672C\u662F\u5B58\u6863\u5185\u72EC\u7ACB\u8D44\u4EA7":"Save: \u201C{0}\u201D \xB7 Lua scripts are separate assets within the save",\u672A\u547D\u540D\u5B58\u6863:"Untitled Save","\u811A\u672C {0}":"Script {0}","\u811A\u672C\u8DEF\u5F84\uFF08\u5DE5\u4F5C\u533A\u76F8\u5BF9\u8DEF\u5F84\uFF09":"Script path (relative to the workspace)","\u6302\u8F7D\u76EE\u6807\uFF08\u5BA2\u6237\u7AEF\u63A7\u4EF6 / \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF09":"Attach to (client control / client control template)","\u672A\u6302\u8F7D\uFF08\u4E0D\u751F\u6548\uFF0C\u4EC5\u53EF\u88AB require\uFF09":"Not attached (does not run automatically; require only)","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F \xB7 \u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u5185":"Server Control Template \xB7 Inside the Client Control Container",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Client Control Template","Lua \u6E90\u7801":"Lua Source","-- \u5728\u8FD9\u91CC\u8F93\u5165\u5BA2\u6237\u7AEF Lua\uFF1B\u811A\u672C\u53EA\u6709\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548":"-- Enter client-side Lua here; attach the script to a client control to run it in playtests",\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539:"Unsaved changes","\u5DF2\u6302\u8F7D\uFF1A{0}":"Attached to: {0}","\u5F53\u524D\u672A\u6302\u8F7D\uFF0C\u8BD5\u73A9\u65F6\u4E0D\u4F1A\u81EA\u52A8\u8FD0\u884C":"Not attached; it will not run automatically in playtests","\u21E9 \u811A\u672C\u5305 JSON":"\u21E9 Script Bundle JSON","\u21E9 \u811A\u672C\u5305 GIA":"\u21E9 Script Bundle GIA",\u4FDD\u5B58\u811A\u672C:"Save Script",\u8BF7\u65B0\u5EFA\u6216\u9009\u62E9\u4E00\u4E2A\u811A\u672C:"Create or select a script","PlayerSelf \u5F53\u524D\u73A9\u5BB6":"PlayerSelf \u2014 Current Player","AllPlayers \u5168\u90E8\u73A9\u5BB6":"AllPlayers \u2014 All Players","Level \u5173\u5361":"Level \u2014 Stage","Player1 \u73A9\u5BB61":"Player1 \u2014 Player 1","Player2 \u73A9\u5BB62":"Player2 \u2014 Player 2","Player3 \u73A9\u5BB63":"Player3 \u2014 Player 3","Player4 \u73A9\u5BB64":"Player4 \u2014 Player 4","Player5 \u73A9\u5BB65":"Player5 \u2014 Player 5","Player6 \u73A9\u5BB66":"Player6 \u2014 Player 6","Player7 \u73A9\u5BB67":"Player7 \u2014 Player 7","Player8 \u73A9\u5BB68":"Player8 \u2014 Player 8","\u89C4\u5219 {0} \u9700\u8981\u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0} needs a signal name to listen for","\u89C4\u5219 {0} \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u52A8\u4F5C":"Rule {0} needs at least one action","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D":"Rule {0}, action {1} needs a client signal name","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u53D8\u91CF\u540D":"Rule {0}, action {1} needs a variable name","{0}\u6765\u6E90":"{0} source","\u5B57\u9762\u91CF\uFF08JSON\uFF09":"Literal (JSON)",\u5F15\u7528\u76D1\u542C\u4FE1\u53F7\u53C2\u6570:"Use a received signal argument","{0}\u53C2\u6570\u5E8F\u53F7":"{0} argument index","{0}\u5B57\u9762\u91CF":"{0} literal","\u5BA2\u6237\u7AEF\u4FE1\u53F7\u53C2\u6570\uFF08\u6309\u6DFB\u52A0\u987A\u5E8F\uFF09":"Client signal arguments (in order)","\u53C2\u6570 {0}":"Argument {0}",\u5220\u9664\u53C2\u6570:"Remove argument","\u6682\u65E0\u53C2\u6570\uFF0C\u53EF\u53D1\u9001\u7A7A\u53C2\u6570\u5217\u8868":"No arguments; an empty argument list can be sent","\uFF0B \u6DFB\u52A0\u53C2\u6570":"\uFF0B Add Argument",\u670D\u52A1\u7AEF\u903B\u8F91:"Server Logic","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 \u76D1\u542C\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540E\u8BBE\u7F6E Level / \u73A9\u5BB6\u53D8\u91CF\uFF0C\u6216\u5411\u6307\u5B9A\u73A9\u5BB6\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"Save: \u201C{0}\u201D \xB7 Listen for client signals to set Level / player variables or send client script signals to selected players",\u4FDD\u5B58\u670D\u52A1\u7AEF\u903B\u8F91:"Save Server Logic","\u8FD9\u662F\u6A21\u62DF\u5668\u5B58\u6863\u683C\u5F0F\uFF0C\u4E0D\u662F\u5B98\u65B9\u8282\u70B9\u56FE\u3002PlayerSelf \u8868\u793A\u53D1\u4FE1\u53F7\u7684\u90A3\u4F4D\u73A9\u5BB6\uFF1BPlayer1\u20138 \u662F\u56FA\u5B9A\u5EA7\u4F4D\uFF1BAllPlayers \u5411\u672C\u5C40\u5168\u90E8\u8BD5\u73A9\u73A9\u5BB6\u5E7F\u64AD\u3002":"This uses the simulator's save format. PlayerSelf is the player who sent the signal; Player1\u20138 are fixed slots; AllPlayers broadcasts to every player in this playtest.","\u89C4\u5219 {0}":"Rule {0}",\u76D1\u542C\u4FE1\u53F7\u540D:"Signal to listen for","\u89C4\u5219 {0} \u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0}: signal to listen for",\u5220\u9664\u89C4\u5219:"Remove rule","\u52A8\u4F5C {0}":"Action {0}","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u7C7B\u578B":"Rule {0}, action {1}: type",\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF:"Set Custom Variable",\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7:"Send Client Script Signal","\u53D1\u7ED9\u5F53\u524D\u73A9\u5BB6\u3001\u6307\u5B9A\u73A9\u5BB6\u6216\u5168\u90E8\u73A9\u5BB6":"Send to the current player, a selected player, or all players","\u5199\u5165 Level / \u5F53\u524D\u73A9\u5BB6 / \u73A9\u5BB61-8":"Write to Level / current player / Player1\u20138",\u5220\u9664\u52A8\u4F5C:"Remove action",\u53D1\u9001\u76EE\u6807:"Send to",\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D:"Client signal name",\u5B9E\u4F53:"Entity",\u53D8\u91CF\u540D:"Variable name",\u53D8\u91CF\u503C:"Variable value","\uFF0B \u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF":"\uFF0B Set Custom Variable","\uFF0B \u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"\uFF0B Send Client Script Signal","\u8FD8\u6CA1\u6709\u76D1\u542C\u89C4\u5219\u3002\u8BD5\u73A9\u65F6\u5BA2\u6237\u7AEF SendSignal \u4E0D\u4F1A\u81EA\u52A8\u6539\u53D8\u91CF\u6216\u56DE\u4F20\u4FE1\u53F7\u3002":"No signal rules yet. In a playtest, client SendSignal calls do not automatically change variables or send signals back.","\uFF0B \u6DFB\u52A0\u76D1\u542C\u89C4\u5219":"\uFF0B Add Signal Rule","\u4FDD\u5B58\u540E\u4F1A\u5199\u5165\u5F53\u524D\u5B58\u6863\uFF0C\u4E0B\u6B21\u8BD5\u73A9\u751F\u6548":"Saved to the current save; applies on the next playtest","\u8BF7\u8F93\u5165 1\u20132147483647 \u4E4B\u95F4\u7684\u6574\u6570\u7D22\u5F15\u3002":"Enter an integer index from 1 to 2147483647.",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u7D22\u5F15:"Client Control Index",\u4FDD\u5B58\u4E2D:"Saving",\u4FEE\u6539:"Edit",\u81EA\u52A8\u4FEE\u6539\u5176\u4ED6\u5BA2\u6237\u7AEF\u7D22\u5F15\u503C:"Automatically fill other client control indices",\u81EA\u52A8\u586B\u5145\u7D22\u5F15\u9884\u89C8:"Index Autofill Preview","\u4EE5\u5F53\u524D\u63A7\u4EF6\u4E3A\u57FA\u51C6\uFF0C\u6309 GIA \u5BFC\u5165\u987A\u5E8F\u586B\u5145 {0} \u4E2A\u63A7\u4EF6\uFF08{1} \u4E2A\u6A21\u677F\u53CA\u5176\u5B50\u63A7\u4EF6\uFF09\u3002":"Using this control as the anchor, assign indices in GIA import order to {0} controls ({1} templates and their children).","\u7D22\u5F15\u8303\u56F4\uFF1A{0}\u2013{1}":"Index range: {0}\u2013{1}","\u7D22\u5F15\u8303\u56F4\u8D85\u51FA\u6709\u6548\u8303\u56F4\uFF0C\u8BF7\u68C0\u67E5\u8F93\u5165\u3002":"Index range exceeds the valid bounds. Check your input.","\u9002\u7528\u4E8E\u6574\u6279\u5BFC\u5165\u540E\u672A\u589E\u5220\u3001\u91CD\u6392\u7684\u6A21\u677F\u3002\u670D\u52A1\u7AEF\u754C\u9762\u548C\u811A\u672C\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199\u3002":"For templates imported together without structural changes or reordering. Server UI and script indices must be entered separately.","\u586B\u5199 GIA \u5BFC\u5165\u540E\u5B9E\u9645\u663E\u793A\u7684\u7D22\u5F15\uFF1B\u4FEE\u6539\u540E\u4ECE\u9875\u9762\u4E0A\u65B9\u7EE7\u7EED\u540C\u6B65 Lua\u3002":"Enter the actual index shown after importing the GIA. Then update Lua references using the notice above.",\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6\u7684\u811A\u672C:"Scripts Attached to This Control","\u89E3\u9664\u6302\u8F7D\uFF08\u4FDD\u7559\u811A\u672C\uFF09":"Detach (keep script)","\u8BE5\u63A7\u4EF6\u5C1A\u672A\u6302\u8F7D\u811A\u672C\u3002\u811A\u672C\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548\u3002":"No script is attached to this control. Attach a script to a client control to run it in playtests.",\u6302\u8F7D\u5DF2\u6709\u811A\u672C:"Attach an Existing Script",\u9009\u62E9\u811A\u672C\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Choose a script to attach to this control","\u9009\u62E9\u811A\u672C\u2026":"Select a script\u2026","\uFF08\u5F53\u524D\u6302\u8F7D\u4E8E {0} \xB7 {1}\uFF0C\u5C06\u79FB\u52A8\u5230\u6B64\u63A7\u4EF6\uFF09":"(currently on {0} \xB7 {1}; will move to this control)","\uFF08\u672A\u6302\u8F7D\uFF09":"(not attached)","\u5B58\u6863\u5185\u8FD8\u6CA1\u6709\u5176\u4ED6\u811A\u672C\uFF0C\u53EF\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u65B0\u5EFA\u3002":"No other scripts in this save. Create one using the button below.","\uFF0B \u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u6B64\u63A7\u4EF6":"\uFF0B Create and Attach a Script","\u7F3A\u5C11\u56FE\u7247 {0}":"Missing image {0}",\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25:"Failed to load the local font","\u5F53\u524D\u8D44\u4EA7\u5DF2\u5207\u6362\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u63A7\u4EF6\u540E\u4FEE\u6539\u7D22\u5F15":"The active asset changed. Select the control again before changing its index.","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\u3002\u8BF7\u9009\u62E9\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\u3002":"Control indices changed. Choose \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above.","\u8BF7\u5148\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\uFF0C\u518D\u590D\u5236\u63D0\u793A\u8BCD\uFF1BAI \u9700\u8981\u8BFB\u53D6\u8FD9\u6B21\u5B9E\u9645\u4FEE\u6539\u7684\u5B58\u6863\u3002":"Save the complete project before copying the task. The AI needs the save containing these changes.","\u8BF7\u5B8C\u6210\u6A21\u62DF\u5668\u63A7\u4EF6\u7D22\u5F15\u4E0E Lua \u5F15\u7528\u540C\u6B65\u3002":"Update the simulator's control indices and Lua references.","\u5DE5\u4F5C\u533A\uFF1A{0}":"Workspace: {0}",\u8BF7\u5148\u6838\u5BF9\u5DE5\u4F5C\u533A:"Verify the workspace first","\u6700\u65B0\u5B8C\u6574\u5B58\u6863\uFF1A{0}\uFF08\u7F16\u8F91\u5668\u5DF2\u4FDD\u5B58\uFF09":"Latest complete save: {0} (saved by the editor)","Lua \u6587\u4EF6\uFF1A{0}":"Lua files: {0}","\u5185\u8054\u811A\u672C {0}":"Inline script {0}",\u6682\u65E0:"None","\u5148\u4ECE\u4E0A\u8FF0\u6587\u4EF6\u91CD\u65B0\u52A0\u8F7D\u6700\u65B0\u5B58\u6863\uFF0C\u4E0D\u8981\u4F7F\u7528\u53E6\u4E00\u4E2A MCP/Web \u8FDB\u7A0B\u91CC\u7684\u65E7\u5DE5\u7A0B\u3002":"Reload the latest save from the file above. Do not use an older project from another MCP/Web process.","\u83B7\u53D6\u65B0\u65E7\u6620\u5C04\uFF1A\u8BFB\u53D6\u8BE5 JSON \u9876\u5C42\u7684 controlGuidChanges \u6570\u7EC4\uFF0C\u5F53\u524D\u5171 {0} \u6761\uFF0C\u5FC5\u987B\u8BFB\u53D6\u5168\u90E8\u8BB0\u5F55\u3002oldGuid \u662F\u65E7\u7D22\u5F15\uFF0CnewGuid \u662F\u65B0\u7D22\u5F15\uFF1BcontrolAsset + controlId \u6807\u8BC6\u63A7\u4EF6\uFF0CcontrolName \u662F\u540D\u79F0\uFF0Cid \u662F\u8BB0\u5F55\u7F16\u53F7\uFF0CbatchId \u662F\u6279\u6B21\u3002":"Read all {0} entries in the save's top-level controlGuidChanges array. oldGuid/newGuid are the old/new indices. controlAsset + controlId identifies the control; controlName is its name; id identifies the change; batchId identifies the batch.","\u83B7\u53D6\u811A\u672C\uFF1A\u8BFB\u53D6 assets.scripts \u6570\u7EC4\uFF1B\u6BCF\u9879\u7684 source \u662F\u5B58\u6863\u5185\u6E90\u7801\uFF0Cpath \u662F\u811A\u672C\u6587\u4EF6\u8DEF\u5F84\uFF08\u76F8\u5BF9\u8DEF\u5F84\u4EE5\u5DE5\u4F5C\u533A\u4E3A\u57FA\u51C6\uFF09\u3002":"Read scripts from assets.scripts. Each source contains the saved code; path identifies its file, relative to the workspace where applicable.","\u6309\u63A7\u4EF6\u8EAB\u4EFD\u548C\u53D8\u66F4\u987A\u5E8F\u6838\u5BF9\u5168\u90E8 Lua \u811A\u672C\u7684\u7D22\u5F15\u5E38\u91CF\u3001\u914D\u7F6E\u8868\u4E0E\u8C03\u7528\uFF0C\u4FEE\u6539\u5B58\u6863\u4E2D\u7684 source \u53CA\u76F8\u5173 Lua \u6E90\u6587\u4EF6\u548C\u751F\u6210\u5668\u6620\u5C04\uFF0C\u907F\u514D\u91CD\u5EFA\u540E\u8986\u76D6\u3002\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\uFF0C\u4E5F\u4E0D\u8981\u6539\u8FD0\u884C\u65F6\u5B9E\u4F8B ID \u6216\u56FE\u7247\u8D44\u6E90 ID\u3002":"Review index constants, tables, and calls in all Lua scripts by control identity and change order. Update saved source, related Lua files, and generator mappings. Do not globally replace equal numbers or alter runtime instance IDs or image resource IDs.","\u540C\u4E00 batchId \u662F\u540C\u65F6\u6620\u5C04\uFF0C\u987B\u6309\u539F\u503C\u4E00\u6B21\u6027\u5E94\u7528\uFF0C\u4E0D\u80FD\u9010\u6761\u66FF\u6362\u5BFC\u81F4\u7D22\u5F15\u4E32\u6539\u3002":"Changes sharing batchId form one simultaneous mapping. Apply them to original values together to avoid cascading replacements.","\u68C0\u67E5\u65E7\u7D22\u5F15\u5F15\u7528\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF1B\u4EC5\u5728\u5F15\u7528\u5168\u90E8\u540C\u6B65\u6216\u660E\u786E\u6CA1\u6709\u5F15\u7528\u540E\uFF0C\u7528 acknowledgeControlGuidChanges \u7684 changeIds \u6E05\u9664\u5DF2\u6838\u5BF9\u8BB0\u5F55\uFF0C\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u3002\u672A\u5224\u65AD\u7684\u8BB0\u5F55\u7EE7\u7EED\u4FDD\u7559\u3002":"Check old references and playtest again. Only after updating every reference or confirming none exist, acknowledge reviewed changeIds with acknowledgeControlGuidChanges and save. Keep unreviewed changes.","\u5B8C\u6210\u540E\u544A\u77E5\u7528\u6237\u91CD\u65B0\u8F7D\u5165\u8FD9\u4E2A\u5B58\u6863\uFF0C\u518D\u901A\u8FC7\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u6587\u4EF6\uFF1B\u4E0D\u8981\u91CD\u65B0\u5BFC\u5165 GIA\uFF0C\u4E5F\u4E0D\u8981\u64C5\u81EA\u590D\u5236\u5230\u6E38\u620F\u76EE\u5F55\u3002":"Tell the user to reload this save and use Lua Scripts \u2192 Sync Scripts to Game. Do not reimport GIA or copy files into the game directory without authorization.","\u5B58\u6863\u5DF2\u4FDD\u5B58\uFF0C\u63D0\u793A\u8BCD\u5DF2\u590D\u5236\uFF0C\u5305\u542B\u5B8C\u6574\u6620\u5C04\u7684\u8BFB\u53D6\u65B9\u5F0F\u3002\u7C98\u8D34\u7ED9 AI\uFF1B\u5904\u7406\u540E\u91CD\u65B0\u8F7D\u5165\u5B58\u6863\u3002":"Save written and task copied, including instructions for reading the full mapping. Paste it into the AI chat, then reload the save when finished.","\u5B58\u6863\u5DF2\u4FDD\u5B58\u3002\u526A\u8D34\u677F\u4E0D\u53EF\u7528\uFF0C\u53EF\u4ECE\u4E0B\u65B9\u6587\u672C\u6846\u624B\u52A8\u590D\u5236\u63D0\u793A\u8BCD\u3002":"Save written. Clipboard access is unavailable; copy the task from the text box below.","\u56FE\u7247 {0} \u5DF2\u91CD\u65B0\u4E0B\u8F7D\uFF1B\u540C\u6E90\u8BD5\u73A9\u9875\u4F1A\u540C\u6B65\u5237\u65B0\u3002":"Image {0} downloaded again. Playtest pages on this origin will refresh it too.","{0}\u56FE\u7247":"{0} Image","{0}\u5DF2\u521B\u5EFA\u5E76\u7ED1\u5B9A\uFF1B\u53EF\u5728\u63A7\u4EF6\u6811\u4E2D\u7EE7\u7EED\u7F16\u8F91\u56FE\u7247\u3002":"Created and assigned {0}. Edit the image in the control tree.","Lua \u811A\u672C\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863":"Lua script saved to the current save",\u670D\u52A1\u7AEF\u903B\u8F91\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863:"Server logic saved to the current save",\u5DF2\u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Script created and attached to this control","\u5DF2\u65B0\u5EFA\u811A\u672C\uFF0C\u53EF\u7F16\u8F91\u8DEF\u5F84\u3001\u6E90\u7801\u548C\u6302\u8F7D\u76EE\u6807":"Script created. Edit its path, source, and attachment target.",\u811A\u672C\u5DF2\u5220\u9664:"Script deleted","\u5DF2\u89E3\u9664\u6302\u8F7D\uFF0C\u811A\u672C\u4ECD\u4FDD\u7559\u5728\u5B58\u6863\u4E2D":"Script detached and kept in the save",\u5DF2\u6302\u8F7D\u5230\u5F53\u524D\u63A7\u4EF6:"Attached to the current control","\u5DF2\u5207\u6362\u5230\u5B58\u6863\u5185\u7684{0}":"Switched to {0} in this save","{0}\u6A21\u677F":"{0} Template","\u5DF2\u65B0\u589E{0}\u6A21\u677F":"Created a {0} template","\u5DF2\u6DFB\u52A0{0}\u5B50\u63A7\u4EF6":"Added a {0} child control","\u5DF2\u5BFC\u51FA {0} \u4E2A GIA \u6587\u4EF6\uFF08{1}\uFF09\uFF1B\u82E5\u6D4F\u89C8\u5668\u62E6\u622A\u591A\u6587\u4EF6\u4E0B\u8F7D\uFF0C\u8BF7\u5141\u8BB8\u540E\u91CD\u8BD5\u3002":"Exported {0} GIA files ({1}). If downloads are blocked, allow multiple downloads and retry.","\u5DF2\u5BFC\u51FA {0}\uFF1B\u8BF7\u67E5\u770B\u4E0A\u65B9\u5BFC\u51FA\u8BF4\u660E\u3002":"Exported {0}. Review the export notes above.","\u5DF2\u5BFC\u51FA {0}":"Exported {0}","\u5DF2\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6 {0}":"Loaded {0} from the workspace","\u4EC5\u652F\u6301 .json\u3001.gia \u6216 .lua \u6587\u4EF6":"Only .json, .gia, and .lua files are supported","\u5DF2\u5BFC\u5165 {0}":"Imported {0}","\u5DF2\u4FDD\u5B58\u5230 {0}":"Saved to {0}","\u6B63\u5728\u8F7D\u5165\u5343\u661F\u6C99\u7BB1\u2026":"Loading Miliastra Sandbox\u2026","\u5DF2\u5207\u6362\u5230{0}":"Switched to {0}",\u4FDD\u5B58\u5230\u5DE5\u4F5C\u533A:"Save to Workspace",\u5B58\u6863\u76F8\u5BF9\u8DEF\u5F84:"Save path (relative to workspace)",\u53D6\u6D88:"Cancel",\u4FDD\u5B58:"Save",\u5DE5\u4F5C\u533A\u672A\u7ED1\u5B9A:"No workspace bound",\u5C1A\u672A\u5BFC\u5165\u6587\u4EF6:"No file imported","\u5B58\u6863\uFF1A{0}":"Save: {0}","\u5DE5\u4F5C\u533A\uFF1A{0} \xB7 \u5F53\u524D\u8D44\u4EA7\uFF1A{1}":"Workspace: {0} \xB7 Active asset: {1}",\u672A\u7ED1\u5B9A:"Unbound",UI\u63A7\u4EF6:"UI Controls",\u76EE\u6807\u8BBE\u5907:"Target device",\u5C4F\u5E55\u6BD4\u4F8B:"Aspect ratio",\u753B\u5E03\u7F29\u653E:"Canvas zoom",\u9002\u5E94:"Fit","\u670D\u52A1\u7AEF\u903B\u8F91\uFF1A\u76D1\u542C\u4FE1\u53F7 / \u81EA\u5B9A\u4E49\u53D8\u91CF / \u73A9\u5BB61-8 \u56DE\u4F20":"Server logic: signals / custom variables / Player1\u20138 responses","Lua \u811A\u672C\u8D44\u4EA7\u7F16\u8F91":"Lua script asset editor",\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u5230\u5DE5\u4F5C\u533A:"Save the complete project to the workspace",\u4FDD\u5B58\u5B58\u6863:"Save Project",\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6\u5B58\u6863:"Load a save from the workspace","\u2913 \u5DE5\u4F5C\u533A\u5B58\u6863":"\u2913 Workspace Saves","\u672A\u53D1\u73B0 qxqy-simulator-save":"No qxqy-simulator-save found",\u5148\u7ED1\u5B9A\u4F1A\u8BDD\u5DE5\u4F5C\u533A:"Bind a session workspace first","\u5BFC\u5165\u5B58\u6863\u3001\u5355\u9879 UI \u8D44\u4EA7\u6216 Lua":"Import a save, individual UI asset, or Lua script","\u21E7 \u5BFC\u5165":"\u21E7 Import",\u5BFC\u51FA\u683C\u5F0F:"Export format","\u21E9 \u5BFC\u51FA":"\u21E9 Export","\u8D44\u4EA7\u5305 JSON\uFF08\u4E09\u7C7B\u5408\u4E00\uFF09":"Complete Save JSON (all three asset types)","\u8D44\u4EA7\u5305 GIA\uFF08\u5DF2\u6539\u52A8\u9879\uFF09":"Asset Bundle GIA (modified assets)","\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\uFF08\u63A7\u4EF6+\u811A\u672C\uFF09":"Combined GIA (controls + scripts)","\u5F53\u524D\u754C\u9762\uFF08\u5DE6\u680F\u6B63\u5728\u770B\u7684\u90A3\u68F5\u6811\uFF09":"Current UI (the tree shown on the left)","\u5F53\u524D\u754C\u9762 Authoring JSON":"Current UI Authoring JSON","\u5F53\u524D\u754C\u9762 GIA":"Current UI GIA",\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F:"Server Control Template","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF08\u4EC5\u5F53\u5DE6\u680F\u5207\u5230\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\u65F6\u624D\u662F\u9875\u9762\u5185\u5BB9\uFF09":"Client Control Templates (shown in the Client UI tab)","Lua \u811A\u672C":"Lua Scripts","\u811A\u672C\u5305 JSON\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle JSON (all scripts)","\u811A\u672C\u5305 GIA\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle GIA (all scripts)","\u6253\u5F00\u8BD5\u73A9\uFF1B\u65B0\u7A97\u53E3\u4E0D\u53EF\u7528\u65F6\u5728\u5E94\u7528\u5185\u8BD5\u73A9":"Open a playtest; use an embedded view if new windows are unavailable","\u6B63\u5728\u51C6\u5907\u2026":"Preparing\u2026","\u25B7 \u8BD5\u73A9 \u2197":"\u25B7 Playtest \u2197",\u91CD\u65B0\u8F7D\u5165:"Reload",\u7F16\u8F91\u9875\u9762:"Editor page","UI \u7F16\u8F91":"UI Editor","\u4E00\u4E2A\u5B58\u6863 \xB7 \u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F + \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F + Lua \u811A\u672C + \u670D\u52A1\u7AEF\u903B\u8F91":"One save \xB7 Server Control Templates + Client Control Templates + Lua Scripts + Server Logic","\u4E0A\u6B21\u5BFC\u51FA\u8BF4\u660E\uFF08{0} \u9879\uFF0C\u8BF7\u6838\u5BF9\u5BFC\u5165\u540E\u7684\u6548\u679C\uFF09":"Export notes ({0}; verify the result after import)",\u5173\u95ED\u5BFC\u51FA\u8BF4\u660E:"Close export notes",\u7F16\u8F91\u8D44\u6E90\u7C7B\u578B:"Asset type","\u7F16\u8F91\u5B58\u6863\u5185\u7684\u670D\u52A1\u7AEF UI \u63A7\u4EF6":"Edit the save's server UI controls","UI\u63A7\u4EF6-\u670D\u52A1\u7AEF":"Server UI",\u7F16\u8F91\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Edit the save's client control templates","UI\u63A7\u4EF6-\u5BA2\u6237\u7AEF":"Client UI",\u6A21\u677F\u4E0E\u5B50\u63A7\u4EF6:"Templates and Children",\u63A7\u4EF6\u6811:"Control Tree","{0} \u4E2A\u6A21\u677F \xB7 {1} \u4E2A\u63A7\u4EF6":"{0} templates \xB7 {1} controls","{0} \u4E2A\u8282\u70B9":"{0} nodes",\u641C\u7D22\u6A21\u677F\u6216\u63A7\u4EF6:"Search templates or controls",\u641C\u7D22\u63A7\u4EF6:"Search controls",\u6A21\u677F:"Template",\u6682\u4E0D\u652F\u6301:"Not supported yet","\u5728\u753B\u5E03\u4E0A\u663E\u793A\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Show on canvas (does not change initial visibility)","\u5728\u753B\u5E03\u4E0A\u9690\u85CF\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Hide on canvas (does not change initial visibility)","{0}\u753B\u5E03\u53EF\u89C1\u6027":"Canvas visibility: {0}",\u6CA1\u6709\u5339\u914D\u7684\u63A7\u4EF6:"No matching controls",\u5C42\u7EA7\u4E0E\u6A21\u677F\u8FB9\u754C:"Hierarchy and Templates",\u7236\u7EA7\u63A7\u4EF6:"Parent control",\u5DF2\u63D0\u5347\u4E3A\u53EF\u5B9E\u4F8B\u5316\u9876\u5C42\u6A21\u677F:"Promoted to an instantiable top-level template",\u5DF2\u8C03\u6574\u63A7\u4EF6\u7236\u7EA7:"Control parent changed","\u9876\u5C42\u6A21\u677F\uFF08\u53EF\u5B9E\u4F8B\u5316\uFF09":"Top-level template (instantiable)",\u5728\u540C\u7EA7\u4E2D\u4E0A\u79FB:"Move up among siblings",\u5728\u540C\u7EA7\u4E2D\u4E0B\u79FB:"Move down among siblings","\u8BE5\u8282\u70B9\u4F1A\u5199\u5165\u72EC\u7ACB UIControlTemplate\uFF0C\u53EF\u76F4\u63A5\u4F5C\u4E3A prefabId\u3002":"This node exports as a separate UIControlTemplate and can be used directly as prefabId.","\u5F53\u524D\u4E3A\u7B2C {0} \u5C42\u5B50\u63A7\u4EF6\uFF0C\u4E0D\u4F1A\u5355\u72EC\u6210\u4E3A prefabId\u3002":"This is a depth-{0} child control, not a standalone template for prefabId instantiation.",\u65B0\u589E\u72EC\u7ACB\u53EF\u5B9E\u4F8B\u5316\u6A21\u677F:"Create a separate instantiable template","\u6DFB\u52A0\u5230{0}":"Add to {0}",\u5F53\u524D\u63A7\u4EF6:"Current control",\u65B0\u589E\u9876\u5C42\u6A21\u677F:"Create a top-level template",\u9876\u5C42:"Top Level",\u5B50\u63A7\u4EF6:"Child",\u65B0\u589E:"New",\u6DFB\u52A0:"Add","Lua \u6A21\u677F\u9884\u89C8":"Lua Template Preview",\u754C\u9762\u63A7\u4EF6\u7EC4:"UI Control Group","{0} \xB7 {1}\xD7{2} \xB7 \u5DE6\u4E0B\u539F\u70B9":"{0} \xB7 {1}\xD7{2} \xB7 Bottom-left origin","\u25CF {0}\u7F16\u8F91":"\u25CF Editing {0}",\u63A7\u4EF6:"Control","\u5F53\u524D\uFF1A{0}":"Selected: {0}","GIA \u5BFC\u51FA\u540E\u53EF\u5728 Lua \u4E2D\u6309 prefabId \u5B9E\u4F8B\u5316":"After exporting GIA, instantiate in Lua using prefabId","\u5B57\u6BB5\u5728\u5931\u7126\u6216 Enter \u65F6\u63D0\u4EA4":"Commit fields on blur or Enter","\u4F5C\u8005 B\u7AD9\u4E3B\u9875":"Author's Bilibili profile",\u4F5C\u8005B\u7AD9:"Bilibili",\u53EF\u5B9E\u4F8B\u5316:"Instantiable","\u6A21\u677F\u7D22\u5F15 ":"Template index ","\u63A7\u4EF6 GUID ":"Control GUID ",\u8282\u70B9:"Node",\u57FA\u7840\u5C5E\u6027:"Properties",\u811A\u672C:"Script","\u6B63\u5728\u5237\u65B0\u7D20\u6750\u2026":"Refreshing asset\u2026","\u21BB \u91CD\u65B0\u4E0B\u8F7D\u6B64\u7D20\u6750":"\u21BB Download This Asset Again","\u767D\u540D\u5355\u56FE\u7247\u6309\u9700\u7F13\u5B58\uFF1B\u5237\u65B0\u4F1A\u91CD\u65B0\u8BBF\u95EE\u7D20\u6750\u6E90\u3002":"Supported images are cached on demand. Refreshing downloads them from the asset source.","\u232B \u5220\u9664\u5F53\u524D\u6A21\u677F":"\u232B Delete Template","\u232B \u5220\u9664\u5F53\u524D\u63A7\u4EF6":"\u232B Delete Control",\u8BF7\u9009\u62E9\u4E00\u4E2A\u63A7\u4EF6:"Select a control",'<!doctype html><meta charset="utf-8"><title>\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026</title><p>\u6B63\u5728\u4FDD\u5B58\u9879\u76EE\u5E76\u51C6\u5907\u8BD5\u73A9\u2026</p>':'<!doctype html><meta charset="utf-8"><title>Preparing playtest\u2026</title><p>Saving the project and preparing the playtest\u2026</p>',"\u505C\u6B62\u8BD5\u73A9\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\uFF1A{0}":"Could not stop the playtest. Retry: {0}","\u8BD5\u73A9\u9875\u672A\u80FD\u52A0\u8F7D\uFF0C\u8BF7\u8FD4\u56DE\u7F16\u8F91\u540E\u91CD\u8BD5\u3002":"The playtest page could not load. Return to the editor and retry.",\u8BD5\u73A9\u6B63\u5728\u5173\u95ED:"Closing playtest",\u5185\u5D4C\u8BD5\u73A9:"Embedded Playtest","\u6B63\u5728\u505C\u6B62\u8BD5\u73A9\u2026":"Stopping playtest\u2026","\u6B63\u5728\u8F7D\u5165\u8BD5\u73A9\u2026":"Loading playtest\u2026",\u5173\u95ED\u8BD5\u73A9:"Close Playtest",\u5343\u661F\u6C99\u7BB1\u8BD5\u73A9:"Miliastra Sandbox Playtest",\u672A\u53D8\u5316:"Unchanged","\u3010\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3011":"[Miliastra Sandbox Script Folder]",\u65B0\u589E\u6587\u4EF6:"New file",\u66F4\u65B0\u5DF2\u6709\u6587\u4EF6:"Update existing file","\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u66F4\u65B0":"Identical; no update needed",\u65E0\u6CD5\u590D\u5236:"Cannot copy",\u5B58\u6863\u91CC\u7F16\u8F91\u7684\u4EE3\u7801:"Code edited in the save","\u9879\u76EE\u4E2D\u7684 .lua \u6587\u4EF6":"Project .lua file","\u5B9E\u673A\u811A\u672C\u540C\u6B65 \xB7 {0}":"Sync Scripts to Game \xB7 {0}",\u5DF2\u8BBE\u7F6E\u6587\u4EF6\u5939:"Folders configured",\u5148\u8BBE\u7F6E\u6587\u4EF6\u5939:"Configure folders first","\u628A\u5F53\u524D\u5B58\u6863\u91CC\u7684 Lua \u811A\u672C\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u7528\u4E8E\u6E38\u620F\u5185\u6D4B\u8BD5\u3002\u64CD\u4F5C\u987A\u5E8F\uFF1A\u586B\u5199\u811A\u672C\u4F4D\u7F6E \u2192 \u4FDD\u5B58\u8BBE\u7F6E \u2192 \u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0 \u2192 \u786E\u8BA4\u590D\u5236\u3002":"Copy this save's Lua scripts into Miliastra Sandbox for in-game testing. Set folders \u2192 Save Settings \u2192 Save and Preview Changes \u2192 Confirm Copy.",\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939:"Project script folder","\u4F8B\u5982 workspace/my-game\uFF1B\u4E5F\u53EF\u4EE5\u7559\u7A7A":"e.g. workspace/my-game; may be left blank","\u586B\u5199\u5728\u5DE5\u4F5C\u533A\u91CC\u7684\u4F4D\u7F6E\uFF0C\u4F8B\u5982 workspace/my-game\uFF1B\u7559\u7A7A\u8868\u793A\u4F7F\u7528\u5DE5\u4F5C\u533A\u672C\u8EAB\u3002":"Enter a workspace-relative folder, e.g. workspace/my-game. Leave blank to use the workspace root.",\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939:"Miliastra Sandbox script folder","\u7C98\u8D34\u4EE5 default_import_file \u7ED3\u5C3E\u7684\u5B8C\u6574\u8DEF\u5F84":"Paste the full path ending in default_import_file","\u5173\u5361\u5B58\u653E\u5916\u90E8 Lua \u811A\u672C\u7684\u6587\u4EF6\u5939\uFF0C\u53EF\u70B9\u51FB\u300C\u53D1\u73B0\u672C\u673A\u76EE\u5F55\u300D\u67E5\u627E\u3002\u8BF7\u586B\u5199\u8FD0\u884C\u6A21\u62DF\u5668\u90A3\u53F0\u7535\u8111\u4E0A\u7684\u5B8C\u6574\u8DEF\u5F84\u3002":"The stage's folder for external Lua scripts. Use \u201CFind Local Folders\u201D to locate it. Enter the full path on the simulator host machine.",\u6E38\u620F\u91CC\u7684\u9879\u76EE\u5B50\u6587\u4EF6\u5939:"Project subfolder in the game","\u4E00\u822C\u548C\u201C\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939\u201D\u586B\u4E00\u6837\u7684\u5185\u5BB9\uFF0C\u4FDD\u7559\u539F\u6765\u7684\u6587\u4EF6\u4F4D\u7F6E\u3002\u7559\u7A7A\u5219\u76F4\u63A5\u653E\u8FDB\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3002":"Usually matches the project script folder to preserve file locations. Leave blank to place files directly in the Miliastra Sandbox script folder.",\u590D\u5236\u8DEF\u5F84\u793A\u4F8B:"Copy Path Example","\u590D\u5236\u793A\u4F8B\uFF1A":"Example destination:","\u6E38\u620F\u8D26\u53F7 UID\uFF1A{0} \xB7 \u5173\u5361\u76EE\u5F55\u7F16\u53F7\uFF1A{1}":"Game account UID: {0} \xB7 Stage folder ID: {1}",\u53D1\u73B0\u672C\u673A\u76EE\u5F55:"Find Local Folders","\u6CA1\u6709\u627E\u5230\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\u3002\u53EF\u4EE5\u624B\u52A8\u7C98\u8D34 default_import_file \u6587\u4EF6\u5939\u7684\u5B8C\u6574\u8DEF\u5F84\uFF1B\u5982\u679C\u8FD8\u6CA1\u5BFC\u5165\u811A\u672C\uFF0C\u8BF7\u5148\u5728\u5343\u661F\u6C99\u7BB1\u5B8C\u6210\u5BFC\u5165\u3002":"No game script folder found. Paste the full default_import_file path manually. If you have not imported scripts yet, do so in Miliastra Sandbox first.","\u627E\u5230 {0} \u4E2A\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u8BF7\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361\u3002":"Found {0} game script folders. Select the account and stage to update.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u4FDD\u5B58\u3002\u4E0B\u4E00\u6B65\u70B9\u51FB\u300C\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0\u300D\u3002":"Script folders saved. Next, click \u201CSave and Preview Changes\u201D.",\u6E05\u9664\u8BBE\u7F6E:"Clear Settings","\u5DF2\u6E05\u9664\u811A\u672C\u4F4D\u7F6E\u8BBE\u7F6E\u3002\u6E38\u620F\u91CC\u7684\u811A\u672C\u6587\u4EF6\u4ECD\u7136\u4FDD\u7559\u3002":"Script folder settings cleared. Existing files in the game are kept.",\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361:"Select the Account and Stage","\u8BF7\u9009\u62E9\u6E38\u620F\u8D26\u53F7\u548C\u5173\u5361\u6587\u4EF6\u5939\u2026":"Select a game account and stage folder\u2026","\u8D26\u53F7 {0} / \u5173\u5361\u76EE\u5F55 {1} \xB7 {2}":"Account {0} / Stage folder {1} \xB7 {2}",\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6:"Simulator save file","\u4F8B\u5982 my-game.save.json":"e.g. my-game.save.json","\u586B\u5199\u5DE5\u4F5C\u533A\u91CC\u7684\u5B58\u6863\u6587\u4EF6\u540D\u6216\u8DEF\u5F84\u3002\u4FDD\u5B58\u8BBE\u7F6E\u65F6\u4F1A\u4E00\u8D77\u4FDD\u5B58\u9879\u76EE\uFF0C\u4E0B\u6B21\u6253\u5F00\u5B58\u6863\u5373\u53EF\u590D\u7528\u3002":"Enter a save filename or path within the workspace. Saving these settings also saves the project so they are available next time.",\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0:"Save and Preview Changes","\u8BF7\u5148\u586B\u5199\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u5E76\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Enter the Miliastra Sandbox script folder and click \u201CSave Settings\u201D first.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u6539\u52A8\uFF0C\u8BF7\u5148\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Script folders changed. Click \u201CSave Settings\u201D first.","\u8BF7\u5148\u586B\u5199\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6\u540D\u3002":"Enter a simulator save filename first.","\u6B63\u5728\u5904\u7406\uFF0C\u8BF7\u7A0D\u5019\u2026":"Working, please wait\u2026",\u811A\u672C\u540C\u6B65\u786E\u8BA4:"Confirm Script Copy","\u672C\u6B21\u66F4\u65B0\u5230\uFF1A{0}":"Destination: {0}","\u8FD9\u4E2A\u5B58\u6863\u8FD8\u6CA1\u6709 Lua \u811A\u672C\u3002\u8BF7\u5148\u5728\u4E0B\u65B9\u6DFB\u52A0\u811A\u672C\uFF0C\u518D\u67E5\u770B\u66F4\u65B0\u3002":"This save has no Lua scripts. Add a script below, then preview the changes.","\u6240\u6709\u811A\u672C\u90FD\u4E0E\u6E38\u620F\u6587\u4EF6\u5939\u91CC\u7684\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u590D\u5236\u3002":"All scripts match the game folder. Nothing to copy.","\u6709\u63A7\u4EF6\u7D22\u5F15\u5C1A\u672A\u540C\u6B65\u5230 Lua\u3002\u8BF7\u5148\u5728\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\uFF0C\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\uFF1B\u5904\u7406\u5B8C\u6210\u540E\u518D\u67E5\u770B\u6E38\u620F\u811A\u672C\u66F4\u65B0\u3002":"Some control index changes are not reflected in Lua. Use \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above before previewing game script changes.","\u590D\u5236\u7684\u4EE3\u7801\u6765\u81EA\uFF1A{0}":"Code source: {0}","\u65E0\u6CD5\u590D\u5236\uFF1A{0}":"Cannot copy: {0}","\u590D\u5236\u5230\uFF1A{0}":"Copy to: {0}","\u8FD9\u4E2A\u811A\u672C\u5728\u5B58\u6863\u91CC\u548C\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u4E0D\u540C\u3002\u672C\u6B21\u4F1A\u590D\u5236\u5B58\u6863\u91CC\u7684\u4EE3\u7801\uFF1B\u5982\u679C\u8981\u4F7F\u7528\u9879\u76EE\u6587\u4EF6\uFF0C\u8BF7\u70B9\u51FB\u300C\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u300D\uFF0C\u7136\u540E\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u3002":"The saved script differs from its project file. This copy uses the saved code. To use the project file instead, choose \u201CUse Project File Code\u201D, then preview changes again.",\u67E5\u770B\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"View Project File Code",\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"Use Project File Code",\u5BF9\u6BD4\u66F4\u65B0\u524D\u540E\u7684\u4EE3\u7801:"Compare Changes",\u6E38\u620F\u91CC\u73B0\u5728\u7684\u4EE3\u7801:"Current Code in the Game","\uFF08\u6E38\u620F\u91CC\u8FD8\u6CA1\u6709\u8FD9\u4E2A\u6587\u4EF6\uFF09":"(This file does not exist in the game yet)",\u672C\u6B21\u8981\u590D\u5236\u7684\u4EE3\u7801:"Code to Copy","\u65B0\u589E\u811A\u672C\u590D\u5236\u540E\uFF0C\u8FD8\u9700\u8981\u5728\u5343\u661F\u6C99\u7BB1\u91CC\u5173\u8054\u5BF9\u5E94\u7684\u811A\u672C\u6587\u4EF6\uFF1B\u9700\u8981\u76F4\u63A5\u8FD0\u884C\u7684\u811A\u672C\u8FD8\u8981\u6302\u5230\u63A7\u4EF6\u4E0A\u3002":"After copying new scripts, link their files in Miliastra Sandbox. Scripts that should run directly must also be attached to controls.","\u5DF2\u9009 {0} \u4E2A\u811A\u672C\uFF0C\u5176\u4E2D {1} \u4E2A\u4F1A\u66FF\u6362\u6E38\u620F\u91CC\u7684\u65E7\u6587\u4EF6\u3002\u66FF\u6362\u524D\u4F1A\u81EA\u52A8\u5907\u4EFD\u65E7\u6587\u4EF6\uFF0C\u6E38\u620F\u91CC\u7684\u5176\u4ED6\u6587\u4EF6\u4F1A\u4FDD\u7559\u3002":"Selected {0} scripts; {1} will replace existing game files. Replaced files are backed up. Other files are kept.",\u8986\u76D6:"Replace",\u6682\u4E0D\u590D\u5236:"Cancel","\u786E\u8BA4\u590D\u5236 {0} \u4E2A\u811A\u672C":"Confirm Copy of {0} Scripts",\u811A\u672C\u5DF2\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1:"Scripts Copied to Miliastra Sandbox",\u6709\u4E9B\u811A\u672C\u672A\u590D\u5236\u6210\u529F:"Some Scripts Could Not Be Copied","\u4E0B\u4E00\u6B65\uFF1A\u56DE\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u4FDD\u5B58\u5173\u5361\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF0C\u8BA9\u6E38\u620F\u52A0\u8F7D\u66F4\u65B0\u540E\u7684\u811A\u672C\u3002":"Next: Return to Miliastra Sandbox, save the stage, and start a new playtest to load the updated scripts.","\u8BF7\u6309\u4E0B\u65B9\u63D0\u793A\u5904\u7406\u5931\u8D25\u7684\u6587\u4EF6\uFF0C\u518D\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u5E76\u590D\u5236\u3002":"Resolve the failed files using the notes below, then preview and copy again.","\u590D\u5236\u65F6\u95F4\uFF1A{0} \xB7 \u65E7\u6587\u4EF6\u5907\u4EFD\u4FDD\u5B58\u5728\uFF1A{1}":"Copied at: {0} \xB7 Backups: {1}",\u6210\u529F:"Success",\u5DF2\u590D\u5236:"Copied",\u672A\u590D\u5236:"Not copied",\u5207\u6362\u5230\u4EAE\u8272\u4E3B\u9898:"Switch to light theme",\u5207\u6362\u5230\u6697\u8272\u4E3B\u9898:"Switch to dark theme",\u5F53\u524D\u5B58\u6863:"Current save","\u5F53\u524D\u8D44\u4EA7\u6CA1\u6709\u63A7\u4EF6\u3002":"This asset has no controls.","\u6253\u5F00\u5B58\u6863\u540E\u663E\u793A\u63A7\u4EF6\u7ED3\u6784\u3002":"Open a save to view its control structure.",\u672A\u9009\u62E9:"None selected",\u7C7B\u578B:"Type",\u6811\u6DF1\u5EA6:"Tree depth",\u7236\u8282\u70B9:"Parent node","\u8BD5\u73A9\u542F\u52A8\u540E\u663E\u793A Lua \u65E5\u5FD7\u3002":"Lua logs appear after starting a playtest.",\u5B58\u6863\u52A0\u8F7D\u5931\u8D25:"Failed to Load Save",\u7B49\u5F85\u5DE5\u4F5C\u533A\u5B58\u6863:"Waiting for a Workspace Save","\u6B63\u5728\u76D1\u542C {0}\u3002":"Watching {0}.","{0}Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"{0}Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.",\u8BD5\u73A9\u5C1A\u672A\u542F\u52A8:"Playtest Not Started","\u9009\u62E9\u8BBE\u5907\u5E76\u70B9\u51FB\u201C\u542F\u52A8\u201D\uFF0C\u5373\u53EF\u8FD0\u884C Lua \u548C\u4EA4\u4E92\u903B\u8F91\u3002":"Select a device and click \u201CStart\u201D to run Lua scripts and interactions.",\u7B49\u5F85\u5B58\u6863:"Waiting for a Save",\u5C1A\u672A\u6253\u5F00\u5B58\u6863:"No save open"," \xB7 \u5DF2\u6682\u505C":" \xB7 Paused","\u7B49\u5F85\u542F\u52A8 Runtime":"Waiting to start Runtime","\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8 \xB7 \u78C1\u76D8\u81EA\u52A8\u5237\u65B0":"Static editor preview \xB7 Refreshes from disk automatically","\u7F16\u8F91\u5668\u753B\u9762\u52A0\u8F7D\u5931\u8D25\u3002":"Failed to load the editor preview.","\u670D\u52A1\u7248\u672C\u672A\u77E5\uFF0C\u8BF7\u66F4\u65B0 Web":"Unknown server version. Update the Web package.",\u5B9E\u65F6\u76D1\u542C\u4E2D:"Live",\u8FDE\u63A5\u4E2D\u65AD:"Disconnected",\u5F00\u542F\u58F0\u97F3:"Enable Sound",\u58F0\u97F3\u5DF2\u5173\u95ED:"Sound Off",\u58F0\u97F3\u5DF2\u5F00\u542F:"Sound On",\u70B9\u51FB\u6216\u5728\u753B\u5E03\u5185\u64CD\u4F5C\u4EE5\u89E3\u9501\u97F3\u6548:"Click or interact with the canvas to enable audio",\u5207\u6362\u9759\u97F3:"Toggle mute","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5F00":"Key Input: On","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5173":"Key Input: Off",\u5DF2\u6253\u5F00\u5B58\u6863:"Save opened",\u5DF2\u91CD\u65B0\u8BFB\u53D6\u78C1\u76D8\u5B58\u6863:"Save reloaded from disk","\u65E5\u5FD7\u5DF2\u5728\u5F53\u524D\u89C6\u56FE\u6E05\u7A7A\u3002":"Logs cleared in this view.",\u6B63\u5728\u91CD\u8FDE:"Reconnecting","\u68C0\u6D4B\u5230\u5B58\u6863\u53D8\u5316\uFF0C\u9884\u89C8\u5DF2\u66F4\u65B0":"Save changed; preview updated",\u9884\u89C8\u5B58\u6863\u5DF2\u6253\u5F00:"Preview save opened","\u624B\u673A 1280\xD7720":"Mobile 1280\xD7720","\u624B\u673A 1560\xD7720":"Mobile 1560\xD7720","\u624B\u673A 1280\xD7960":"Mobile 1280\xD7960",\u540D\u79F0:"Name",\u521D\u59CB\u6FC0\u6D3B:"Initially Active",\u521D\u59CB\u53EF\u89C1\u6027:"Initially Visible",\u53EF\u88AB\u624B\u67C4\u6447\u6746\u5BFC\u822A\u9009\u4E2D:"Selectable by Controller Navigation","\u4F4D\u7F6E X":"Location X","\u4F4D\u7F6E Y":"Location Y","\u5927\u5C0F W":"Width","\u5927\u5C0F H":"Height","\u65CB\u8F6C X":"Rotation X","\u65CB\u8F6C Y":"Rotation Y","\u65CB\u8F6C Z":"Rotation Z",\u540C\u6B65\u4FE1\u606F\u81F3\u6240\u6709\u8BBE\u5907:"Sync Layout Across Devices",\u951A\u70B9\u7C7B\u578B:"Anchor Preset",\u5C45\u4E2D:"Center",\u5DE6\u4E0A:"Top Left",\u4E0A\u65B9:"Top",\u53F3\u4E0A:"Top Right",\u5DE6\u4FA7:"Left",\u53F3\u4FA7:"Right",\u5DE6\u4E0B:"Bottom Left",\u4E0B\u65B9:"Bottom",\u53F3\u4E0B:"Bottom Right",\u53CC\u5411\u62C9\u4F38:"Stretch Both Axes",\u6C34\u5E73\u62C9\u4F38:"Stretch Horizontally",\u5782\u76F4\u62C9\u4F38:"Stretch Vertically",\u81EA\u5B9A\u4E49:"Custom","\u951A\u70B9 Min X":"Anchor Min X","\u951A\u70B9 Min Y":"Anchor Min Y","\u951A\u70B9 Max X":"Anchor Max X","\u951A\u70B9 Max Y":"Anchor Max Y","\u4E2D\u5FC3 X":"Pivot X","\u4E2D\u5FC3 Y":"Pivot Y",\u9694\u79BB\u624B\u67C4\u5BFC\u822A:"Isolate Controller Navigation",\u5C4F\u853D\u6309\u952E\u4E8B\u4EF6\u7A7F\u900F:"Block Key Event Passthrough",\u5C4F\u853D\u533A\u57DF\u5185\u70B9\u51FB\u4E8B\u4EF6\u7A7F\u900F:"Block Click Event Passthrough in Area",\u663E\u793A\u5E38\u9A7B\u5149\u6807:"Show Persistent Cursor",\u5B57\u53F7:"Font Size",\u5B57\u53F7\u81EA\u9002\u5E94:"Auto Font Size",\u6700\u5C0F\u5B57\u53F7:"Minimum Font Size",\u6587\u672C\u8272:"Text Color",\u80CC\u666F\u8272:"Background Color",\u542F\u7528\u63CF\u8FB9:"Enable Outline",\u63CF\u8FB9\u8272:"Outline Color",\u6C34\u5E73\u5BF9\u9F50:"Horizontal Alignment",\u5DE6\u5BF9\u9F50:"Left",\u53F3\u5BF9\u9F50:"Right",\u5782\u76F4\u5BF9\u9F50:"Vertical Alignment",\u9876\u90E8:"Top",\u5E95\u90E8:"Bottom",\u6587\u672C:"Text",\u56FE\u7247\u6E90:"Image Source",\u9759\u6001\u5F15\u7528:"Static Reference",\u5143\u4EF6:"Prefab",\u586B\u5145\u8272:"Fill Color",\u5F00\u542F\u906E\u7F69:"Enable Mask",\u8FB9\u7F18\u7FBD\u5316:"Soft Edge",\u7FBD\u5316\u6A21\u5F0F:"Soft Edge Mode",\u767E\u5206\u6BD4:"Percentage",\u50CF\u7D20:"Pixels","\u7FBD\u5316\u5BBD\u5EA6 X":"Soft Edge Width X","\u7FBD\u5316\u5BBD\u5EA6 Y":"Soft Edge Width Y",\u6C34\u5E73\u7FBD\u5316\u8303\u56F4:"Horizontal Soft Edge Range",\u5782\u76F4\u7FBD\u5316\u8303\u56F4:"Vertical Soft Edge Range",\u6309\u8FDB\u5EA6\u586B\u5145:"Fill by Progress",\u5F62\u72B6:"Shape",\u6A2A\u5411:"Horizontal",\u7EB5\u5411:"Vertical","90\u5EA6\u73AF\u7ED5":"Radial90","180\u5EA6\u73AF\u7ED5":"Radial180","360\u5EA6\u73AF\u7ED5":"Radial360",\u65B9\u5411:"Direction",\u4ECE\u5DE6\u81F3\u53F3:"From Left to Right",\u4ECE\u53F3\u81F3\u5DE6:"From Right to Left",\u4ECE\u4E0B\u81F3\u4E0A:"From Bottom to Top",\u4ECE\u4E0A\u81F3\u4E0B:"From Top to Bottom",\u8D77\u70B9:"Origin",\u8FDB\u5EA6:"Progress",\u906E\u7F69\u533A\u57DF\u53CD\u8F6C:"Invert Mask Area",\u672A\u8BBE\u7F6E:"Not set",\u53EF\u88AB\u5149\u6807\u5C04\u7EBF\u68C0\u6D4B:"Raycast Target",\u6309\u94AE\u662F\u5426\u53EF\u7528:"Interactable",\u4E0D\u53EF\u7528\u72B6\u6001\u8282\u70B9:"Unavailable Status Nodes",\u60AC\u505C\u72B6\u6001\u8282\u70B9:"Hover Status Nodes",\u6309\u4E0B\u72B6\u6001\u8282\u70B9:"Pressed Status Nodes",\u9009\u4E2D\u72B6\u6001\u8282\u70B9:"Selected Status Nodes",\u70B9\u51FB\u97F3\u6548:"Click Sound",\u5F15\u7528\u63A7\u4EF6\u6A21\u677F\u7D22\u5F15:"Referenced Control Template Index",\u5141\u8BB8\u6EDA\u52A8\u4EA4\u4E92:"Enable Scrolling",\u663E\u793A\u6EDA\u52A8\u6761:"Show Scrollbar",\u5217\u8868\u9879\u6A21\u677F\u7D22\u5F15:"Item Template Index",\u6EDA\u52A8\u65B9\u5411:"Scroll Direction",\u6392\u5217\u9650\u5236:"Layout Constraint",\u81EA\u52A8\u6362\u884C:"Automatic Wrapping",\u56FA\u5B9A\u884C\u5217\u6570:"Fixed Row / Column Count",\u6BCF\u884C\u6216\u6BCF\u5217\u6570\u91CF:"Items per Row / Column","\u5217\u8868\u9879\u5927\u5C0F W":"Item Width","\u5217\u8868\u9879\u5927\u5C0F H":"Item Height","\u5217\u8868\u9879\u95F4\u9694 X":"Item Spacing X","\u5217\u8868\u9879\u95F4\u9694 Y":"Item Spacing Y","\u8FB9\u8DDD\u5411\u91CF 1 X":"Padding 1 X","\u8FB9\u8DDD\u5411\u91CF 1 Y":"Padding 1 Y","\u8FB9\u8DDD\u5411\u91CF 2 X":"Padding 2 X","\u8FB9\u8DDD\u5411\u91CF 2 Y":"Padding 2 Y",\u9884\u89C8\u6570\u91CF:"Preview Count",\u952E\u9F20\u6309\u952E:"Keyboard / Mouse Key",\u624B\u67C4\u6309\u952E:"Controller Button",\u52A8\u6548\u7D22\u5F15:"Animation Index",\u5168\u5C4F\u52A8\u6548\u7D22\u5F15:"Fullscreen Animation Index",\u5B8C\u6574\u5EA6:"Support Status","\u8BD5\u73A9\u652F\u6301\u57FA\u7840\u6EDA\u52A8\uFF1B\u6EDA\u52A8\u4EA4\u4E92\u3001\u6EDA\u52A8\u6761\u53CA\u5217\u8868\u914D\u7F6E\u4EE5 JSON/Lua \u4E3A\u51C6\uFF0C\u76F8\u5173 GIA \u5F00\u5173\u6620\u5C04\u5C1A\u672A\u6838\u5B9E\u3002":"Basic scrolling is supported in playtests. Configure interaction, scrollbars, and lists through JSON/Lua; the related GIA flags are not yet verified.","\u672C\u9636\u6BB5\u4EC5\u516C\u5171\u53D8\u6362\uFF0C\u4E1A\u52A1\u69FD\u4E0D\u5B8C\u6574":"Only common transforms are supported at this stage; control-specific fields are incomplete.",\u5173\u5361:"Stage",\u5F53\u524D\u73A9\u5BB6:"Current Player",\u5F53\u524D\u89D2\u8272:"Current Character","\u73A9\u5BB6{0}":"Player {0}","\u89D2\u8272{0}":"Character {0}","\u63A7\u4EF6\u7D22\u5F15\u5FC5\u987B\u662F 1\u20132147483647 \u8303\u56F4\u5185\u7684\u6574\u6570":"Control indices must be integers from 1 to 2147483647","controlGuidChanges \u5FC5\u987B\u662F\u6570\u7EC4":"controlGuidChanges must be an array","controlGuidChanges \u5305\u542B\u65E0\u6548\u6216\u91CD\u590D\u7684\u53D8\u66F4\u8BB0\u5F55":"controlGuidChanges contains invalid or duplicate changes","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 batchId":"controlGuidChanges contains an invalid batchId","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 scriptSignature":"controlGuidChanges contains an invalid scriptSignature",\u672A\u547D\u540D\u754C\u9762:"Untitled UI",\u672A\u547D\u540D\u754C\u9762\u63A7\u4EF6\u7EC4:"Untitled UI Control Group",\u6574\u5408\u5305\u9700\u8981\u670D\u52A1\u7AEF\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u4E0B\u81F3\u5C11\u6709\u4E00\u4E2A\u6839\u63A7\u4EF6:"A combined bundle requires at least one root control inside the server-side Client Control Container","{0} \xB7 \u6574\u5408\u5305.gia":"{0} \xB7 Combined.gia",\u6302\u8F7D\u76EE\u6807\u5FC5\u987B\u662F\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Attachment targets must be client controls or client control templates in the save","\u811A\u672C\u4E0D\u5B58\u5728: {0}":"Script not found: {0}",\u4EC5\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u5141\u8BB8\u4FEE\u6539\u7D22\u5F15:"Only client controls and client control templates support index changes","autoFillClientGuids \u5FC5\u987B\u662F\u5E03\u5C14\u503C":"autoFillClientGuids must be a boolean","\u81EA\u52A8\u586B\u5145\u4EC5\u652F\u6301\u5BA2\u6237\u7AEF\u6A21\u677F\u5217\u8868\uFF1B\u670D\u52A1\u7AEF\u754C\u9762\u7684\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199":"Autofill is only available for client templates. Enter server UI indices separately.","\u5BA2\u6237\u7AEF\u6A21\u677F\u5B58\u5728\u91CD\u590D\u65E7\u7D22\u5F15\uFF0C\u65E0\u6CD5\u81EA\u52A8\u586B\u5145\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49":"Client templates contain duplicate old indices. Resolve the ambiguity before using autofill.","\u63A7\u4EF6\u7D22\u5F15 {0} \u5DF2\u88AB\u300C{1}\u300D\u5360\u7528\uFF1B\u8BF7\u5148\u586B\u5199\u5B83\u7684\u5B9E\u9645\u7D22\u5F15\u3002\u672C\u6B21\u672A\u4FEE\u6539\u4EFB\u4F55\u7D22\u5F15\u3002":"Control index {0} is already used by \u201C{1}\u201D. Enter its actual index first. No indices were changed.","\u65E7\u7D22\u5F15 {0} \u5728\u591A\u68F5\u8D44\u4EA7\u6811\u4E2D\u91CD\u590D\uFF0C\u65E0\u6CD5\u786E\u5B9A\u6A21\u677F\u5F15\u7528\u5F52\u5C5E\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49\u540E\u4FEE\u6539":"Old index {0} appears in multiple asset trees, so the template reference is ambiguous. Resolve it before making changes.","\u8BF7\u660E\u786E\u6307\u5B9A\u5DF2\u6838\u5BF9 Lua \u5F15\u7528\u7684\u6709\u6548\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55 changeIds":"Specify valid changeIds whose Lua references have been reviewed",\u5B58\u6863\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A:"The save name cannot be empty","\u63A7\u4EF6\u7D22\u5F15\u5F85\u6838\u5BF9 Lua \u5F15\u7528\uFF1A{0} / {1} ({2})\uFF1A{3} \u2192 {4}\u3002\u8BF7\u6309\u8BED\u4E49\u66F4\u65B0\u811A\u672C\u4E2D\u7684\u63A7\u4EF6\u7D22\u5F15\u5F15\u7528\uFF0C\u6838\u5BF9\u540E\u786E\u8BA4\u53D8\u66F4\u8BB0\u5F55 {5}\uFF1B\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\u3002":"Review Lua references for control index change: {0} / {1} ({2}): {3} \u2192 {4}. Update references by meaning, then acknowledge change {5}. Do not globally replace equal numbers.","{0} \xB7 \u8D44\u4EA7\u5305.json":"{0} \xB7 Assets.json","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u6A71\u7A97\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default server UI was omitted from the asset bundle GIA.","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u300CLua\u5B9E\u4F8B\u5316\u9762\u677F\u300D\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default client control template was omitted from the asset bundle GIA.","\u8D44\u4EA7\u5305 GIA \u6CA1\u6709\u53EF\u5BFC\u51FA\u7684\u5DF2\u6539\u52A8\u9879\uFF1B\u8BF7\u5148\u7F16\u8F91\u5F53\u524D\u754C\u9762\uFF0C\u6216\u6539\u7528\u300C\u5F53\u524D\u754C\u9762 GIA\u300D\u3002":"There are no modified assets to export. Edit the UI first, or use \u201CCurrent UI GIA\u201D.","{0} \xB7 \u811A\u672C.json":"{0} \xB7 Scripts.json","{0} \xB7 \u811A\u672C.gia":"{0} \xB7 Scripts.gia","\u6CA1\u6709\u53EF\u5BFC\u51FA\u7684 Lua \u811A\u672C\uFF0C\u8BF7\u5148\u5728\u201CLua \u811A\u672C\u201D\u9875\u521B\u5EFA":"No Lua scripts to export. Create one on the Lua Scripts page first.","\u5F53\u524D\u670D\u52A1\u5668\u63A7\u4EF6 GIA \u4E0D\u5305\u542B {0} \u4E2A Lua \u811A\u672C\u7684\u6E90\u7801\uFF1B\u8BF7\u4F7F\u7528\u300C\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\u300D\uFF0C\u6216\u53E6\u884C\u5BFC\u5165\u811A\u672C\u5305\u5E76\u6838\u5BF9\u6302\u8F7D\u3002":"This server UI GIA does not contain source for {0} Lua scripts. Use \u201CCombined GIA\u201D or import the script bundle separately and check attachments.","JSON \u6587\u4EF6\u65E0\u6548":"Invalid JSON file","\u6574\u5408\u5305\u5DF2\u62C6\u56DE\u300CUI\u63A7\u4EF6-\u670D\u52A1\u7AEF\u300D\u4E0E\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\uFF1B\u5BA2\u6237\u7AEF\u6A21\u677F\u8FB9\u754C\u5DF2\u4FDD\u7559\u3002":"Combined bundle split back into Server UI and Client UI. Client template boundaries were preserved.","\u811A\u672C GUID {0} \u540C\u65F6\u6302\u8F7D\u5230\u591A\u4E2A\u63A7\u4EF6\uFF0C\u5DF2\u4FDD\u7559\u201C{1}\u201D\u76EE\u6807\u3002":"Script GUID {0} was attached to multiple controls. The \u201C{1}\u201D target was kept.",\u670D\u52A1\u7AEF:"Server",\u5BA2\u6237\u7AEF:"Client","\u5355\u8D44\u4EA7 JSON \u7684\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55\u5FC5\u987B\u5C5E\u4E8E\u5F53\u524D\u5BFC\u5165\u8D44\u4EA7":"Index change records in a single-asset JSON must belong to the imported asset","\u811A\u672C {0} \u8BFB\u53D6\u5931\u8D25: {1}":"Failed to read script {0}: {1}","\u5343\u661F\u6C99\u7BB1 \xB7 \u72EC\u7ACB\u8BD5\u73A9":"Miliastra Sandbox \xB7 Standalone Playtest",\u6A21\u62DF\u5668:"Simulator",\u5207\u6362\u8BBE\u5907\u753B\u5E03:"Switch Device Canvas","\u5207\u6362\u8BBE\u5907\u753B\u5E03\uFF1A\u4EE5\u65B0\u753B\u5E03\u91CD\u5EFA\u8FD0\u884C\u65F6\uFF0CGetUICanvasSize \u4E0E\u9884\u8BBE\u50CF\u7D20\u4E00\u81F4":"Rebuild the runtime for the selected canvas. GetUICanvasSize matches the preset's pixel dimensions.",\u8BD5\u73A9\u4EBA\u6570:"Player count","\u8BD5\u73A9\u4EBA\u6570\uFF1A\u6700\u591A 8 \u4EBA\uFF0C\u6BCF\u4EBA\u4E00\u4EFD\u72EC\u7ACB\u5BA2\u6237\u7AEF":"Up to 8 players, each with a separate client instance",\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2:"Current player view","\u5207\u6362\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2\uFF1A\u8F93\u5165\u3001\u753B\u9762\u548C PlayerSelf \u90FD\u8DDF\u968F\u8BE5\u73A9\u5BB6":"Change the active player for input, rendering, and PlayerSelf",\u8BBE\u5907:"Device","\u51C6\u5907\u4E2D\u2026":"Preparing...",\u8BD5\u73A9\u9875\u9762:"Playtest page",\u8BD5\u73A9:"Playtest",\u65E5\u5FD7:"Logs","\u8F6C\u53D1\u5B98\u65B9\u952E\u4F4D\u7684\u6309\u4E0B/\u62AC\u8D77\u4E8B\u4EF6\uFF08\u542B\u9F20\u6807\u5DE6\u53F3\u952E\uFF09\uFF1B\u5173\u95ED\u4E0D\u5F71\u54CD\u753B\u5E03\u70B9\u51FB":"Forward supported key/button down and up events, including mouse buttons. Turning this off does not disable canvas clicks.",\u70B9\u51FB\u89E3\u9501\u6D4F\u89C8\u5668\u97F3\u6548:"Click to enable browser audio","\u2161 \u6682\u505C\u8FD0\u884C":"\u2161 Pause",\u6682\u505C\u540E\u53EF\u5355\u5E27\u8C03\u8BD5:"Pause to step through individual frames","\u25B7 \u5355\u5E27\u8C03\u8BD5":"\u25B7 Step One Frame","\u25A0 \u7ED3\u675F\u8BD5\u73A9":"\u25A0 Stop Playtest","\u21BB \u91CD\u65B0\u5F00\u59CB":"\u21BB Restart",\u5207\u6362\u4EAE\u6697\u4E3B\u9898:"Toggle light / dark theme",\u8FD4\u56DE\u7F16\u8F91:"Back to Editor","\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026":"Preparing playtest\u2026",\u8FD0\u884C\u65F6\u573A\u666F\u6811:"Runtime Scene Tree","0 \u8282\u70B9":"0 nodes",\u670D\u52A1\u7AEF\u53D8\u91CF:"Server Variables","0 \u9879":"0 items",\u5BA2\u6237\u7AEF\u811A\u672C\u65E5\u5FD7:"Client Script Logs","\u6700\u8FD1 100 \u6761":"Latest 100 entries",\u670D\u52A1\u7AEF\u65E5\u5FD7:"Server Logs","\u53D8\u91CF / \u4FE1\u53F7":"Variables / signals",\u81EA\u52A8\u6D4B\u7528\u4F8B:"Automated Test Case","\u5148\u8BD5\u73A9\uFF0C\u518D\u4FDD\u5B58\u56DE\u653E":"Play first, then save a replay",'\u65AD\u8A00 JSON \u6570\u7EC4\uFF0C\u4F8B\u5982 [{"kind":"log","contains":"clicked"}]':'JSON assertion array, e.g. [{"kind":"log","contains":"clicked"}]',\u4FDD\u5B58\u7528\u4F8B:"Save Test Case",\u56DE\u653E\u7528\u4F8B:"Replay Test Case","\u25CF \u6B63\u5728\u542F\u52A8":"\u25CF Starting","\u9875\u9762\uFF1A\u8BD5\u73A9":"View: Playtest","\u9875\u9762\uFF1A\u65E5\u5FD7":"View: Logs",\u8BD5\u73A9\u8BF7\u6C42\u5931\u8D25:"Playtest request failed"," \u9879":" items","\u6682\u65E0\u81EA\u5B9A\u4E49\u53D8\u91CF\u3002\u811A\u672C Get/Set \u6216 serverSet \u4E4B\u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"No custom variables yet. They appear after script Get/Set calls or serverSet.","\u5B8C\u6574\u8FD0\u884C\u6811\u8BF7\u7528 Agent \u7684 inspect \u5FEB\u7167\u3002\u821E\u53F0\u6309\u5DE6\u6811\u4E0A\u65B9\u76D6\u4F4F\u4E0B\u65B9\u7ED8\u5236\u3002":"Use an Agent inspect snapshot for the full runtime tree. Items higher in the left tree draw over those below."," \u4E2A\u53EF\u89C1\u56FE\u5143":" visible primitives","\u25B6 \u7EE7\u7EED\u8FD0\u884C":"\u25B6 Resume"," \u4EBA":" players",\u73A9\u5BB6:"Player"," \xB7 \u73A9\u5BB6":" \xB7 Player "," \xB7 \u70B9\u51FB\u8F93\u5165":" \xB7 Click to focus","\u26A0 \u811A\u672C\u6302\u8F7D\u5931\u8D25":"\u26A0 Script attachment failed","\u2161 \u5DF2\u6682\u505C":"\u2161 Paused","\u25CF \u8BD5\u73A9\u8FD0\u884C\u4E2D":"\u25CF Playtest running","\u5DF2\u8BB0\u5F55 ":"Recorded "," \u6B65":" steps","\u26A0 \u8BD5\u73A9\u9519\u8BEF":"\u26A0 Playtest error","\u25A0 \u8BD5\u73A9\u5DF2\u7ED3\u675F\uFF0C\u53EF\u91CD\u65B0\u5F00\u59CB\u6216\u8FD4\u56DE\u7F16\u8F91":"\u25A0 Playtest stopped. Restart or return to the editor.","\u65AD\u8A00\u5FC5\u987B\u662F JSON \u6570\u7EC4":"Assertions must be a JSON array","\u5DF2\u4FDD\u5B58 ":"Saved "," \u6B65 / ":" steps / "," \u6761\u65AD\u8A00":" assertions",\u56DE\u653E\u901A\u8FC7:"Replay passed","\u56DE\u653E\u5931\u8D25 @":"Replay failed @","\u7F3A\u5C11\u4F1A\u8BDD ID":"Missing session ID","\u5343\u661F\u6A21\u62DF\u5668 \xB7 Live Preview":"Miliastra Simulator \xB7 Live Preview","\u5343\u661F\u6A21\u62DF\u5668 \xB7 \u7F16\u8F91\u5DE5\u4F5C\u53F0":"Miliastra Simulator \xB7 Editor","Web Preview \xB7 \u5B9E\u65F6\u9884\u89C8":"Web Preview \xB7 Live Preview",\u5DE5\u4F5C\u533A\u5B58\u6863:"Workspace Saves",\u91CD\u65B0\u8BFB\u53D6\u5B58\u6863:"Reload save from disk","\u7F16\u8F91\u5DE5\u4F5C\u53F0 \u2197":"Open Editor \u2197",\u6B63\u5728\u8FDE\u63A5:"Connecting",\u9884\u89C8\u6A21\u5F0F:"Preview mode",\u7F16\u8F91\u5668:"Editor",\u8D44\u4EA7:"Asset","\u670D\u52A1\u7AEF UI":"Server UI",\u5BA2\u6237\u7AEF\u6A21\u677F:"Client Templates","\u25B6 \u542F\u52A8":"\u25B6 Start","\u2161 \u6682\u505C":"\u2161 Pause","\u25B7 \u7EE7\u7EED":"\u25B7 Resume","+ 1 \u5E27":"+ 1 Frame","\u25A0 \u505C\u6B62":"\u25A0 Stop",\u6A21\u62DF\u5668\u9884\u89C8\u753B\u5E03:"Simulator preview canvas","Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.","\u6B63\u5728\u66F4\u65B0\u753B\u9762\u2026":"Updating preview\u2026",\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8:"Static Editor Preview",\u9884\u89C8\u4FE1\u606F:"Preview Details",\u5F53\u524D\u8282\u70B9:"Selected Node",\u753B\u5E03:"Canvas",\u6E05\u7A7A:"Clear",\u9884\u89C8\u8FDE\u63A5:"Preview Connection","\u6B63\u5728\u8FDE\u63A5\u670D\u52A1\u2026":"Connecting to the service\u2026","\u5F53\u524D\u5B58\u6863\u4FDD\u5B58\u540E\u81EA\u52A8\u5237\u65B0\uFF1B\u9996\u6B21\u5B58\u6863\u4F1A\u81EA\u52A8\u53D1\u73B0\u3002\u5207\u6362\u5176\u4ED6\u5B58\u6863\u8BF7\u4F7F\u7528\u9876\u90E8\u5217\u8868\u6216 MCP \u9884\u89C8\u5DE5\u5177\u3002":"Refreshes automatically when the current save changes, and discovers the first save. Switch saves using the list above or the MCP preview tool.","\u68C0\u67E5\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002":"Update check failed. Check your network connection and retry.",\u53D1\u73B0\u65B0\u7248\u672C:"A new version is available",\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C:"You are up to date",\u5F53\u524D\u7248\u672C\u6BD4\u516C\u5F00\u7248\u672C\u66F4\u65B0:"Your version is newer than the public release",\u6682\u672A\u627E\u5230\u6B64\u5B89\u88C5\u5305\u7684\u6B63\u5F0F\u7248\u672C:"No stable release found for this package",\u754C\u9762\u8BED\u8A00:"Interface language","\u81EA\u52A8\uFF08\u7CFB\u7EDF\u8BED\u8A00\uFF09":"Auto (system language)","\u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026":"Checking for updates\u2026",\u68C0\u67E5\u66F4\u65B0:"Check for Updates",\u8054\u7CFB\u4F5C\u8005:"Contact Author",QQ\u7FA4\u53F71007538100:"QQ Group: 1007538100","\u4F5C\u8005\u90AE\u7BB1 ":"Email: ","\u5F00\u6E90\u4ED3\u5E93 ":"Source repository: ","\u5F53\u524D\u7248\u672C\uFF1A{0}":"Current version: {0}","\u516C\u5F00\u7248\u672C\uFF1A{0}":"Public version: {0}","\u66F4\u65B0\u540E\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u7F16\u8F91\u5668\u4E0E\u8BD5\u73A9\u9875\u3002":"After updating, restart the host and refresh the editor and playtest pages.",\u67E5\u770B\u66F4\u65B0\u8BF4\u660E:"View Release Notes",\u4E0B\u8F7D\u66F4\u65B0\u5305:"Download Update",\u91CD\u8BD5:"Retry","\u8BF7\u9009\u62E9\u81EA\u52A8\u67E5\u627E\u3001\u6307\u5B9A\u6587\u4EF6\u6216\u7CFB\u7EDF\u5B57\u4F53":"Choose automatic discovery, a local file, or the system font",\u5B57\u4F53\u8DEF\u5F84\u8FC7\u957F:"The font path is too long",\u8BF7\u586B\u5199\u5B57\u4F53\u6587\u4EF6\u7684\u7EDD\u5BF9\u8DEF\u5F84:"Enter an absolute font file path","\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u5728\u300C\u5B57\u4F53\u8BBE\u7F6E\u300D\u4E2D\u91CD\u65B0\u4FDD\u5B58":"Unable to read local font settings. Save them again in Font Settings.","\u65E0\u6CD5\u4FDD\u5B58\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u76EE\u5F55\u7684\u5199\u5165\u6743\u9650":"Unable to save local font settings. Check write permissions for the configuration directory.","\u5F53\u524D\u5B57\u4F53\u7531 QXQY_FONT_PATH \u56FA\u5B9A\uFF0C\u8BF7\u79FB\u9664\u8BE5\u73AF\u5883\u53D8\u91CF\u5E76\u91CD\u542F\u540E\u518D\u4F7F\u7528\u524D\u7AEF\u8BBE\u7F6E":"QXQY_FONT_PATH overrides font settings. Remove it and restart before editing settings here.",\u5B57\u4F53\u8BBE\u7F6E\u4EC5\u9650\u672C\u673A\u76F4\u63A5\u8BBF\u95EE:"Font settings require a direct connection from this machine",\u5B57\u4F53\u8BBE\u7F6E\u8FC7\u5927:"Font settings exceed the size limit",\u5343\u661F\u6C99\u7BB1:"Miliastra Sandbox",\u5343\u661F\u5947\u57DF:"Miliastra Wonderland",\u670D\u52A1\u7AEF\u63A7\u4EF6\u6A21\u677F:"Server Control Template",\u670D\u52A1\u7AEF\u63A7\u4EF6:"Server Controls",\u5BA2\u6237\u7AEF\u63A7\u4EF6:"Client Controls","1 \u4EBA":"1 player","{0} \u4EBA":"{0} players"};var zd="qxqy-ui-language",Ul="qxqy-ui-language-change",ci=new Set,u1=i=>["auto","zh","en"].includes(i);function Hd(){try{let i=globalThis.localStorage?.getItem(zd);return u1(i)?i:"auto"}catch{return"auto"}}var mo=Hd(),d1=null;function IC(i="auto",t="zh-CN",e=""){return i==="zh"||i==="en"?i:/^(?:zh|cmn|yue|wuu|hak|nan|gan|hsn)(?:[-_]|$)/i.test(e||t)?"zh":"en"}var f1=()=>mo,Ll=()=>d1||{language:typeof window>"u"?"zh-CN":globalThis.navigator?.language||globalThis.navigator?.languages?.[0]||Intl.DateTimeFormat().resolvedOptions().locale||"en",source:"browser"},Ol=()=>IC(mo,Ll().language);async function p1(i,t=globalThis.fetch){try{let e=await t(i,{method:"POST",mode:"same-origin",credentials:"same-origin",cache:"no-store",headers:{"content-type":"application/json"},body:"{}",signal:AbortSignal.timeout(4e3)});if(e.ok){let r=await e.json(),s=r.ok?r.value:null;if(typeof s?.language=="string"&&s.language.length<=80){let n=Intl.getCanonicalLocales(s.language.replaceAll("_","-"))[0];if(n){d1={language:n,source:s.source||"host"};for(let o of ci)o()}}}}catch{}return Ll()}function ns(i){if(!(i?.type==="storage"&&i.key!==zd&&i.key!==null)){mo=i?.type===Ul?i.detail:Hd();for(let t of ci)t()}}function m1(i){if(u1(i)){mo=i;try{globalThis.localStorage?.setItem(zd,i)}catch{}if(typeof window<"u")window.dispatchEvent(new CustomEvent(Ul,{detail:i}));else for(let t of ci)t()}}function g1(i){return!ci.size&&typeof window<"u"&&(mo=Hd(),window.addEventListener("storage",ns),window.addEventListener(Ul,ns),window.addEventListener("languagechange",ns)),ci.add(i),()=>{ci.delete(i),!ci.size&&typeof window<"u"&&(window.removeEventListener("storage",ns),window.removeEventListener(Ul,ns),window.removeEventListener("languagechange",ns))}}var Fl=(i,t)=>i.replace(/\{(\d+)\}/g,(e,r)=>r<t.length?String(t[r]??""):e),GC=Object.entries(Gl).filter(([i])=>/\{\d+\}/.test(i)).map(([i,t])=>{let e=[],r=i.split(/(\{\d+\})/).map(s=>{let n=s.match(/^\{(\d+)\}$/);return n?(e.push(Number(n[1])),"([\\s\\S]*?)"):s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}).join("");return{expression:new RegExp(`^${r}$`),value:t,slots:e}});function FC(i,t,...e){if(Array.isArray(t)&&Object.hasOwn(t,"raw")&&(t=t.reduce((r,s,n)=>r+(n?`{${n-1}}`:"")+s,"")),typeof t!="string")return t;if(i!=="en")return Fl(t,e);if(Object.hasOwn(Gl,t))return Fl(Gl[t],e);if(!e.length&&/[\p{Script=Han}]/u.test(t))for(let r of GC){let s=r.expression.exec(t);if(!s)continue;let n=[];return r.slots.forEach((o,a)=>{n[o]=s[a+1]}),Fl(r.value,n)}return Fl(t,e)}var Dl=(i,...t)=>FC(Ol(),i,...t);function x1(i=document){for(let t of i.querySelectorAll("[data-i18n]"))t.textContent=Dl(t.dataset.i18n);for(let t of["title","placeholder","aria-label"])for(let e of i.querySelectorAll(`[data-i18n-${t}]`))e.setAttribute(t,Dl(e.getAttribute(`data-i18n-${t}`)));i===document&&(document.documentElement.lang=Ol()==="zh"?"zh-CN":"en")}Cu();Bu();Iu();fu();La();Vr();pr();var _1={aVertex:(i,t,e,r,s)=>{let n=0,o=0,a=0,l=0;for(let c=0;c<i.length;++c){let h=i[c],u=h.texture,d=h.scaleX,f=h.scaleY,m=h.anchorX,g=h.anchorY,_=u.trim,x=u.orig;_?(o=_.x-m*x.width,n=o+_.width,l=_.y-g*x.height,a=l+_.height):(n=x.width*(1-m),o=x.width*-m,a=x.height*(1-g),l=x.height*-g),t[r]=o*d,t[r+1]=l*f,t[r+s]=n*d,t[r+s+1]=l*f,t[r+s*2]=n*d,t[r+s*2+1]=a*f,t[r+s*3]=o*d,t[r+s*3+1]=a*f,r+=s*4}},aPosition:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n],a=o.x,l=o.y;t[r]=a,t[r+1]=l,t[r+s]=a,t[r+s+1]=l,t[r+s*2]=a,t[r+s*2+1]=l,t[r+s*3]=a,t[r+s*3+1]=l,r+=s*4}},aRotation:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].rotation;t[r]=o,t[r+s]=o,t[r+s*2]=o,t[r+s*3]=o,r+=s*4}},aUV:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].texture.uvs;t[r]=o.x0,t[r+1]=o.y0,t[r+s]=o.x1,t[r+s+1]=o.y1,t[r+s*2]=o.x2,t[r+s*2+1]=o.y2,t[r+s*3]=o.x3,t[r+s*3+1]=o.y3,r+=s*4}},aColor:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].color;e[r]=o,e[r+s]=o,e[r+s*2]=o,e[r+s*3]=o,r+=s*4}}};function b1(i){let t=Object.values(i),e=t.filter(s=>s.dynamic),r=t.filter(s=>!s.dynamic);return{dynamicUpdate:y1(e),staticUpdate:y1(r)}}function y1(i){let t=0,e=[];for(let r=0;r<i.length;r++){let s=i[r],n=Jt(s.format).stride/4;t+=n,e.push({stride:n,updateFunction:s.updateFunction||_1[s.attributeName]})}return(r,s,n)=>{let o=0;for(let a=0;a<e.length;a++){let l=e[a];l.updateFunction(r,s,n,o,t),o+=l.stride}}}wn();me();$t();Ar();Eu();function v1(){return UC}function UC(i,t,e){let r=i.gl,s=i.shader,n=s._getProgramData(t.glProgram);for(let o in t.groups){let a=t.groups[o];for(let l in a.resources){let c=a.resources[l];if(c instanceof Ct)c.ubo?s.bindUniformBlock(c,t._uniformBindMap[o][l],e.blockIndex++):s.updateUniformGroup(c);else if(c instanceof He)s.bindUniformBlock(c,t._uniformBindMap[o][l],e.blockIndex++);else if(c instanceof st||c instanceof qi){i.texture.bind(c,e.textureCount);let h=t._uniformBindMap[o][l],u=n.uniformData[h];u&&(u.value!==e.textureCount&&r.uniform1i(u.location,e.textureCount),e.textureCount++)}else c instanceof ce}}}Ka();Oa();Tn();var S1=[(i,t,e,r,s)=>{let n=r[i].toArray(!0);t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+4]=n[3],t[e+5]=n[4],t[e+6]=n[5],t[e+8]=n[6],t[e+9]=n[7],t[e+10]=n[8]},(i,t,e,r,s)=>{s=r[i],t[e]=s.x,t[e+1]=s.y,t[e+2]=s.width,t[e+3]=s.height},(i,t,e,r,s)=>{s=r[i],t[e]=s.x,t[e+1]=s.y},(i,t,e,r,s)=>{s=r[i],t[e]=s.red,t[e+1]=s.green,t[e+2]=s.blue,t[e+3]=s.alpha},(i,t,e,r,s)=>{s=r[i],t[e]=s.red,t[e+1]=s.green,t[e+2]=s.blue}],T1={f32:(i,t,e,r,s)=>{t[e]=s},i32:(i,t,e,r,s)=>{t[e]=s},"vec2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1]},"vec3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2]},"vec4<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat2x2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat3x3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+4]=s[3],t[e+5]=s[4],t[e+6]=s[5],t[e+8]=s[6],t[e+9]=s[7],t[e+10]=s[8]},"mat4x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<16;n++)t[e+n]=s[n]},"mat3x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/3|0)*4+n%3]=s[n]}},w1={f32:(i,t,e,r,s)=>{t[e]=s},i32:(i,t,e,r,s)=>{t[e]=s},"vec2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1]},"vec3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2]},"vec4<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat2x2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+4]=s[2],t[e+5]=s[3]},"mat3x3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+4]=s[3],t[e+5]=s[4],t[e+6]=s[5],t[e+8]=s[6],t[e+9]=s[7],t[e+10]=s[8]},"mat4x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<16;n++)t[e+n]=s[n]},"mat3x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/3|0)*4+n%3]=s[n]}};function C1(i){return P1(i,w1,t=>{let e=Math.max(Hn[t.data.type]/16,1),r=t.data.value.length/t.data.size,s=(4-r%4)%4;return(n,o,a,l,c)=>{let h=0;for(let u=0;u<t.data.size*e;u++){for(let d=0;d<r;d++)o[a++]=c[h++];a+=s}}})}function E1(i){return P1(i,T1,t=>{let{size:e,align:r}=Zr[t.data.type],s=(e-r)/4;return(n,o,a,l,c)=>{let h=0;for(let u=0;u<t.data.size*(e/4);u++){for(let d=0;d<e/4;d++)o[a++]=c[h++];a+=s}}})}function P1(i,t,e){let r={};for(let s in i){let n=i[s],o=n.data,a=!1;r[o.name]={offset:n.offset/4,func:null};for(let l=0;l<ue.length;l++){let c=ue[l];if(o.type===c.type&&c.test(o)){r[o.name].func=S1[l],a=!0;break}}a||(o.size===1?r[o.name].func=t[o.type]:r[o.name].func=e(n))}return(s,n,o)=>{for(let a in r)r[a].func(a,n,o+r[a].offset,s,s[a])}}Tn();var M1={f32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1f(s[i].location,r))},"vec2<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2f(s[i].location,r[0],r[1]))},"vec3<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3f(s[i].location,r[0],r[1],r[2]))},"vec4<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4f(s[i].location,r[0],r[1],r[2],r[3]))},i32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1i(s[i].location,r))},"vec2<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},u32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1ui(s[i].location,r))},"vec2<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2ui(s[i].location,r[0],r[1]))},"vec3<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3ui(s[i].location,r[0],r[1],r[2]))},"vec4<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4ui(s[i].location,r[0],r[1],r[2],r[3]))},bool(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1i(s[i].location,r))},"vec2<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},"mat2x2<f32>"(i,t,e,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,t,e,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,t,e,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)}},A1={f32(i,t,e,r,s,n,o){o.uniform1fv(s[i].location,r)},"vec2<f32>"(i,t,e,r,s,n,o){o.uniform2fv(s[i].location,r)},"vec3<f32>"(i,t,e,r,s,n,o){o.uniform3fv(s[i].location,r)},"vec4<f32>"(i,t,e,r,s,n,o){o.uniform4fv(s[i].location,r)},"mat2x2<f32>"(i,t,e,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,t,e,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,t,e,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)},i32(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<i32>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<i32>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<i32>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)},u32(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<u32>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<u32>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<u32>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)},bool(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<bool>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<bool>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<bool>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)}},R1=[(i,t,e,r,s,n,o)=>{o.uniformMatrix3fv(s[i].location,!1,n[i].toArray(!0))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.x||e[1]!==r.y||e[2]!==r.width||e[3]!==r.height)&&(e[0]=r.x,e[1]=r.y,e[2]=r.width,e[3]=r.height,o.uniform4f(s[i].location,r.x,r.y,r.width,r.height))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.x||e[1]!==r.y)&&(e[0]=r.x,e[1]=r.y,o.uniform2f(s[i].location,r.x,r.y))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.red||e[1]!==r.green||e[2]!==r.blue||e[3]!==r.alpha)&&(e[0]=r.red,e[1]=r.green,e[2]=r.blue,e[3]=r.alpha,o.uniform4f(s[i].location,r.red,r.green,r.blue,r.alpha))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.red||e[1]!==r.green||e[2]!==r.blue)&&(e[0]=r.red,e[1]=r.green,e[2]=r.blue,o.uniform3f(s[i].location,r.red,r.green,r.blue))}];function k1(i,t){let e={};for(let r in i.uniformStructures){if(!t[r])continue;let s=i.uniformStructures[r],n=!1;for(let o=0;o<ue.length;o++){let a=ue[o];if(s.type===a.type&&a.test(s)){e[r]=R1[o],n=!0;break}}if(!n){let o=s.size===1?M1:A1;e[r]=o[s.type]}}return(r,s,n)=>{let o=n.gl;for(let a in e){let l=s[a],c=r[a],h=r[a].value;e[a](a,c,h,l,r,s,o)}}}function DC(){Object.assign(Te.prototype,{_unsafeEvalCheck(){}}),Object.assign(br.prototype,{_systemCheck(){}}),Object.assign(ei.prototype,{_generateUniformsSync:k1}),Object.assign(Jr.prototype,{_generateUboSync:C1}),Object.assign(Qr.prototype,{_generateUboSync:E1}),Object.assign(ti.prototype,{_generateShaderSync:v1}),Object.assign(Rl.prototype,{generateParticleUpdate:b1})}DC();var LC="mp3-v1",OC="/qxqy-audio/",NC=[[10001,"ura.1ht4.2ag9.1hh5.jbb.k02.jcw.2tv.2wn.2xk.2r3.d5s.94l.ebv.kcr.b40.77k.9gp.97w.1hb5.jag.btu.jc9.hp5.bmj.blq.blq.ff9.ffk.o74.1owl.rp.mg.l3.lf.lh.qy.1a3z.2xk.2xk.2xk.2xk.2xk.17dc.1f2b.2bc.2bc.2bc.2bc.2bc.ffo.ffo.126.1fk.4mo.4mo.15e.1h2.237.2ba.2kd.2bc.4mo.4mo.4mo.4mo.1mc.1n6.2cu.1ud.2b1.2ee.1tj.1tk"],[20001,"o6.fh.kb.cr.og.sm.6x.8c.87.o7.vz.kt.qo.lg.ob.9w.mg.1kz.zc.1ex.1d5.ps.uu.su.qs.ys.zp.10k.15a.xc.uk.mx.1ax.nt.tu.19m.uj.1ku.tt.100.ie.d3.fp.ie.ie.d3.fp.ie.8p.7k.fw.h0.qc.ot.uc.ot.rk.gb.1c2.ff.cl.9v.wg.1ir.1lr.1b8.1ri.1p0.104.10n.mw.j6.jb.f1.dv.84.a0.cp.bx.1ko.1au.1ia.rs.rt.rs.t7.x6.wi.zc.16f.1i6.2jh.28d.qh.k8.1gz.1ko.2iv.1xp.1l4.1gk.10j.yo.1jk.1jk.xv.104.15o.1xg.1xg.1xi.25i.p1.t1.yh.1ak.1i6.1y2.xt.32u.3g6.1bz.2mn.14l.14c.1e1.op.s8.p2.v5.2ix.1a0.ry.16m.17n.13c.134.ys.yu.xr.sl.sr.sd.yh.z5.gd.gl.hx.h2.g8.fj.iy.hz.jj.th.12n.16r.d3.j9.dg.lj.fl.a7.f9.iw.el.27f.1dh.1rh.2ph.yd.w5.x5.tr.pq.zf.16h.1a5.17t.wy.vn.y8.wl.yv.2ye.2qt.1ah.163.19t.uf.119.2vv.1bm.13h.14p.1so.c3.as.9z.19w.1l4.1nl.rj.we"],[30001,"jo.my.ss.dw.c1.b4.hl.hl.hl.cz.dw.dw.b4.dw.fr.kd.qv.px.px.74.6u.8h.60.8q.8b.eo.eo.eo.8k.a5.99.12v.13y.lg.m4.qr.dw.ex.g0.ef.cd.br.11n.17h.1b8.1c9.9p.ag.9z.l9.m8.m8.lw.m8.cz.99.b4.8c.63.7f.6h.99.re.pp.pi.cq.c9.cp.ck.c6.b0.bd.al.f6.gl.ed.fs.lc.k6.kh.i6.cx.j1.hk.gb.d7.h7.g2.em.kj.kn.k4.j5.rh.t0.qt.mj.i7.ih.i2.hd.3r.8d.6u.6z.by.de.dg.cr.1a5.1ab.16c.18g.n2.ly.no.nt.f9.de.lr.fe.f0.fj.el.fo.t1.g9.ly.h3.g6.de.2ak.2f3.wf.kg.qn.11p.rg.uj.u6.11c.22o.2cs.3dp.3dq.3d5.3d6.1zx.18v"],[40001,"19x.215.2zt.1ex.2pj.7hy.1ur.1gn.1g7.1b1.u9.1tw.108.1ew.rs.1qu.w9.lk.244.qi.b6.tk.jg.jg.jg.y4.c1.b4.iv.hi.r4.n7.gy.ev.qe.12z.18n.dw.1l6.ou.wz.1un.19t.18k.yy.1hs.sl.dw.1vl.100.14k.1q8.209.1jk.1xr.ua.1j2.pr.26h.1gs.s9.px.15v.pf.1jk.xc.1hb.111.172.ut.285.1oh.149.zj.22r.2l9.14a.ok.23y.1eh.xe.1j0.1rp.1cz.wf.1mh.22k.334.1z2.1xo.1br.4ji.5nq.5nf.2za.18r.h3.eo.ia.1kn.dc.ss.s0.1bl.1oc.is.km.177.1ec.1ao.h4.hp.dx.l9.iw.i3.12w.n1.yq.12w.1ju.yx.14s.18b.22t.u3.my.2rb.36w.13u.z8.20r.18g.19r.2x9.w4.q2.1d2.wo.13a.v6.17w.ur.288.1b6.14m.1fi.1xx.1ee.kj.121.j2.1d2.2ad.1ri.2lc.1vk.138.12r.xj.1h5.1c5.2qx.1gj.t2.lv.rf.18q.1kz.dw.2aq.ia.1i9.k5.199.f4.10y.18a.xf.rk.1g9.1q3.10h.sj.15o.e3.dz.sv.135.w9.yg.aw.2a2.19m.22w.1c8.272.13o.104.1sr.rs.1pb.d5.df.kp.jq.1a7.s8.1ao.ba.rb.in.pz.q8.140.ij.1e7.jl.yk.117.10i.1tn.1oj.1sv.sj.1e3.2so.1c7.1gv.178.107.10n.1dx.1qi.1wp.2bc.218.16r.105.xc.z6.11w.1mc.1y9.17p.1cs.2ij.18c.1ie.nn.16c.1ce.xb.1ei.3j0.ve.14x.1sx.285.1b8.1at.v4.rv.rs.10z.xq.11o.15k.xq.u1.i2.pu.i4.l3.9u.oh.mc.nm.pw.1i3.1h4.pj.111.l4.lb.qq.qf.u0.h4.nk.yf.6h.ij.ds.oy.re.m8.1gl.cz.16z.a1.1f8.1x6.vp.dz.gp.g6.fr.vl.fr.gg.qc.aj.99.go.ij.fz.11a.x5.mo.1u9.h0.m8.10m.1an.2bc.3uw.2gk.124.xb.1uk.1b6.2xj.1os.11a.vs.1i9.1lr.2gv.265.668.1xg.45j.404.2x1.1io.3om.4q2.4mo.1d4.2bp.1pr.166.2y6.2bv.361.2nc.2bc.3g0.7g4.334.2bc.2xo.3uw.6ic.4ig.3uw.23v.1la.2zr.1jt.1cq.27a.1n1.19x.1qg.1jn.1ca.26y.2d6.4v4.4mo.4mo.7ps.1jk.153.1fo.1dm.1s2.1w1.oe.1lb.319.2eg.58p.4mo.3dw.2y2.2xm.1u8.1ko.12n.1e0.2sd.1md.2cl.1q2.372.4mo.48s.b14.3fu.334.334.34i.4nf.4ji.5eg.3uw.2u8.1g1.110.37x.2jo.su.334.3aj.3uw.63f.2bc.2bc.8v4.1ts.ax5.5du.34d.3oc.34j.4si.174.rt.1rp.2b0.37d.1ta.2gh.28a.22z.1nc.1a5.1pa.4dd.3ha.2cs.5mv.4mq.5c2.3uw.1gf.4md.113.10x.21o.2hj.1b3.1cx.1ol.3ar.1fv.17t.1a7.2uj.2we.1jk"],[50001,"1o8.1k1.mo.1wu.2c9.22d.1kb.23n.1b8.1ic.24c.2wz.1mq.1mu.1jx.1z1.o3.190.vp.1h7.th.4mo.1rp.4mo.4mo.7ps.zz.143.21v.1nf.34s.1s3.r9.18t.s1.r9.21w.277.ls.25k.5v1.2bc.1kh.wt.14i.1eq.15o.668.sh.rl.3wi.3vc.43c.3yn.17c.f5.xu.jg.176.19v.1xy.23m.18x.30c.10l.13k.v8.vp.17t.qj.17m.1wr.1la.8t.s7.18d.1l2.152.mx.1c8.1l4.1f5.1xe.rz.2hz.1et.13t.xb.14r.15o.z0.1zo.ur.257.1gb.li.12d.15a.132.1m1.3vu.296.1mg.11m.z0.159.mp.hd.x4.1go.ns.xh.2a7.tt.2vb.1bx.1kh.u3.11i.1y1.24e.2hp.2mn.1w6.3zm.166.14g.1mo.2v9.2rg.2f9.1r0.139.m1.k3.ys.1dy.29k.1mm.22m.3zx.4dr.2h7.22o.tv.rm.1et.2wv.2ar.1t7.ku.12s.10b.1v9.1gu.12m.1b3.tv.1c8.tk.10s.ul.1tt.ka.oi.qb.13f.13f.13k.17h.1uh.ez.en.2x7.2ln.2h8.3h8.ig.n9.27o.18b.hl.nm.uk.11a.1ta.1k4.1eh.wv.1go.1gg.sc.18u.1dz.2aq.vt.2l7.25h.1l5.1kn.1vc.1b4.28i.17t.1d6.1k2.18z.jy.jw.dh.1mx.fr.vp.35w.34z.35w.34z.4so.vf.yx.1bg.1d3.2yc.1tg.8q3.99g.am.2du.rm.rg.xa.2cw.xc.1j6.1if.18z.13a.yz.142.1z5.262.1bj.1y8.ur.u5.16j.1pf.1bi.l8.1il.3vz.2dr.jo.ls.18s.16l.18c.141.219.1yz.1fc.24t.27e.481.1vp.25h.1yq.1zn.1uw.11u.1jp.1pz.39o.t6.1mj.1u5.11l.1vd.1dk.1zb.1ic.3ql.14p.1wq.25x.267.zn.zn.1pf.13z.1j7.r9.1hb.4yp.1lt.1cw.1z4.19z.1og.1j4.1cl.1eg.u8.16s.1en.zu.1hr.1js.19g.303.22j.2oa.180.1v7.2ud.2d7.21s.3g9.vh.v1.284.3lg.3lg.17q.1h3.4mo.1cm.1rv.22i.2mc.2j3.27o.333.1q8.237.2ll.23b.2sp.2ll.2ox.2cf.2f8.2hz.1uo.y4.s9.w6.2dg.2q9.up.1m1.1vz.2n8.192.1eb.z7.2em.2q3.1sd.1gj.348.3vf.2iu.29x.1dc.7oj.4pq.5vb.4mx.5me.5sf.5yf.7ps.yj.q0.10w.13p.18b.2wd.11q.2vx.dd.iv.12p.jh.u9.1uy.w0.3f0.3bj.126.qo.1gj.11k.pu.22h.1z6.rp.y4.y0.xl.1d0.11s.wa.1a6.127.10m.12r.1nh.1fy.yo.1js.162.n4.174.1aj.y4.o8.qz.rh.qa.18s.mr.j3.ii.sr.sx.1jk.17l.mj.zr.uy.wa.19t.2bt.xe.1od.hs.xr.5b.12c.1ab.we.gz.mz.4y.sf.11s.e0.1l7.ew.h6.jz.l0.e8.1cx.p6.17u.bw.1ah.10r.10e.o9.1bc.uv.lq.tl.zb.100.jy.b8.bj.336.10n.na.sq.14r.yr.nm.123.tf.l1.zp.1xc.1vk.31l.zl.2bj.2b9.2fv.17p.y0.so.1ln.29c.1eh.nh.xn.131.qc.186.ff.fc.xq.1bm.la.l8.14f.243.111.xi.qw.1qn.11v.1ur.1jx.1ks.s9.nz.269.1zj.2zd.1pv.18n.2vk.p3.1fh.13v.1lf.1lu.2db.1sr.1k3.26o.1dl.1f3.187.2lh.166.v9.xh.1e3.119.s2.mt.1iu.1k6.1o2.12s.u4.2br.1q3.qv.1e4.1zu.1v4.1vk.1t3.3p7.1ob.14d.1ns.1ef.1e4.12w.2kk.1ba.2jx.1e0.1s5.12w.17r.14s.wz.1qp.183.3fb.188.1gr.2ot.168.1u7.w8.28o.1zd.32z.230.w7.vq.x8.1qh.19f.14o.2r9.qg.1ey.1qr.1p6.3a3.1ov.13d.tz.wk.22v.1qa.2l9.yw.yf.nw.p6.1ly.1jk.1nh.x9.q0.17r.17h.ux.uw.12y.p7.g7.kt.14c.ze.1kh.1eo.18a.1d8.26j.15k.19f.1ym.1j5.1c6.11k.1sd.1jp.1ws.13s.1o5.214.sx.px.20x.14h.1ja.s6.1q8.w8.1ks.so.ub.121.202.1ej.1g1.1s8.2bc.4t1.bih.3uw.3pb.avp.6c7.bko.5eg.79c.6wh.3wd.4pn.55j.4a5.3gg.bko.5ei.52p.578.bcv.6gr.2bc.4j9.5y7.9d2.2bb.2bc.668.73z.5pg.50f.5m7.788.267.642.8h2.8h2.49s.64g.5e8.5e8.2bb.3ih.5ur.6bk.578.4ck.3sg.5fe.23i.e9w.2b8.5oj.6bw.2al.2rk.2rk.5pj.n6e.350.6v9.70t.639.3uw.3uw.2bg.639.2bb.2bd.6gj.2bh.660.578.3bk.65e.359.3o0.44i.4tn.1zq.5ee.4a5.3zu.rs.639.33q.5eg.1k1.15o.dw.3uw.b7p.7qd.898.4l4.5uu.5uu.b4g.2yh.2yh.3uw.51a.51a.5kk.66f.iq9.3n7.4nb.46a.1wb.20p.bih.8xa.7ps.70t.70t.4rv.5p1.6aq.ts.63z.668.5v2.5nu.563.55s.55s.5p3.2ga.32x.42x.5cr.4c2.71b.5zp.5c2.66t.4c8.2bc.2bc.2gn.3ea.2kp.fz6.8hz.3e8.4an.bko.j7e.jag.7sr.2bc.3zx.7qd.5ut.5jp.2wk.5q7.3uw.334.4i3.3uw.4bd.5eu.46h.4i2.6t4.446.5s7.5cg.4bk.5nd.7bf.4rt.23b.2bc.2bc.2bc.2bc.2ba.4mo.4dv.3wn.2bc.1we.4he.2bc.4gz.3wn.3km.4xy.4hi.4mr.2bc.247.3yj.2c6.2bc.3aj.446.4ub.3uw.51.e0.86.is.i1.hg.mn.m4.2c.7h.sg.e3.jb.7r.eq.nf.u0.60.4o.ke.47.47.47.47.b8.4x.dr.dy.rw.rw.59.8j.5z.a5.l3.c0.ik.f7.li.lr.7x.dv.du.dd.5e.91.1b.ce.cc.59.bh.e6.8m.9n.cl.lt.7ip.4mr.4si.4kf.vo.we.13e.17n.1iw.2pi.lp.r6.gw.7x.xz.qt.bq.ls.q1.eh.bx.cr.3c.j7.b8.fz.4k.8p.bg.5w.iy.j3.12o.rs.cz.dp.yz.jk.63.63.7ps.7ps.7ps.40g.3jp.4tw.89k.88a.7s0.83d.668.7ps.2fw.2ev.2fp.7ps.2jb.2dh.2ud.25i.24c.2bt.1pa.17r.1a7.7ps.7pt.5rg.4nl.3vv.7qo.31a.2p0.2k0.49a.3v4.3nl.1ug.1ug.1l6.7s1.7ps.2cp.2f8.2i7.7ps.28q.2be.275.1ma.1oz.1q7.16s.1iq.1e0.78m.7ps.2bc.2bc.2bc.bko.2wu.2wu.2wu.3b4.38f.3uw.3uw.3uw.3uw.7ps.7qa.32n.2gg.2wk.7rv.1v3.1qq.1rb.1zk.1my.1zp.1yn.1oh.1uh.7st.9q.9q.9q.9q.9q.kk.kk.kk.kk.kk.dw.dp.dw.rs.rs.rs.rs.s4.sd.54j.5n8.2n6.21r.1nu.1o5.14u.t6.3f7.2j0.32c.304.189.1gf.18w.18j.1st.1vq.116.kw.3uw.3uw.vr.zx.xc.tc.7d.7r.9d.9w.8s.9p.3b.3b"]].map(([i,t])=>[i,t.split(".").map(e=>parseInt(e,36)/1e3)]);function B1(i){if(!Number.isSafeInteger(i))return null;for(let[t,e]of NC)if(i>=t&&i<t+e.length)return e[i-t];return null}function I1(i){return`${OC}${LC}/${i}.mp3`}var Nl=class{constructor({contextFactory:t=()=>new(globalThis.AudioContext||globalThis.webkitAudioContext),fetch:e=(...n)=>globalThis.fetch(...n),onStatus:r=()=>{},now:s=()=>performance.now()}={}){Object.assign(this,{contextFactory:t,fetcher:e,onStatus:r,now:s}),this.context=null,this.output=null,this.buffers=new Map,this.voices=new Map,this.key="",this.sequence=0,this.paused=!1,this.muted=!1,this.disposed=!1,this.error="",this.revision=-1,this.unlockHandlers=[]}status(){return{unlocked:this.context?.state==="running",muted:this.muted,error:this.error,voices:this.voices.size}}publish(){this.onStatus(this.status())}ensureContext(){return this.context||(this.context=this.contextFactory(),this.output=this.context.createGain(),this.output.gain.value=this.muted?0:1,this.output.connect(this.context.destination),this.context.onstatechange=()=>this.publish()),this.context}unlock(){if(!this.disposed)try{this.ensureContext().resume().then(()=>{if(!this.disposed){for(let e of this.voices.values())this.playVoice(e);this.publish()}}).catch(e=>{this.error=e.message,this.publish()});for(let e of this.voices.values())this.playVoice(e)}catch(t){this.error=t.message,this.publish()}}bindUnlock(t){let e=s=>{s.target?.closest?.("[data-audio-toggle]")||this.unlock()};for(let s of["pointerdown","keydown"])t.addEventListener(s,e,{capture:!0});let r=()=>{for(let s of["pointerdown","keydown"])t.removeEventListener(s,e,{capture:!0})};return this.unlockHandlers.push(r),r}toggle(){this.context?.state!=="running"?this.unlock():this.setMuted(!this.muted)}setMuted(t){this.muted=!!t,this.output&&(this.output.gain.value=this.muted?0:1),this.publish()}buffer(t){let e=this.buffers.get(t);if(e&&(!e.failed||this.now()<e.retryAt))return this.buffers.delete(t),this.buffers.set(t,e),e.promise;let r={bytes:0,failed:!1,abort:new AbortController},s=setTimeout(()=>r.abort.abort(),3e4);return r.promise=(async()=>{let n=await this.fetcher(I1(t),{signal:r.abort.signal});if(!n.ok)throw new Error(`\u97F3\u6548 ${t} \u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);let o=await n.arrayBuffer();if(this.disposed)throw new Error("audio player disposed");let a=await this.ensureContext().decodeAudioData(o);r.bytes=a.length*a.numberOfChannels*4;let l=[...this.buffers.values()].reduce((c,h)=>c+h.bytes,0);for(let[c,h]of this.buffers){if(l<=32*1024*1024&&this.buffers.size<=64)break;c===t||!h.bytes&&!h.failed||(this.buffers.delete(c),l-=h.bytes)}return a})().catch(n=>{throw r.failed=!0,r.retryAt=this.now()+6e4,n}).finally(()=>clearTimeout(s)),this.buffers.set(t,r),r.promise}stopSource(t){let e=t.source;if(t.source=null,!!e){e.onended=null;try{e.stop()}catch{}e.disconnect()}}removeVoice(t){let e=this.voices.get(t);e&&(this.stopSource(e),this.voices.delete(t))}playVoice(t){if(this.disposed||this.voices.get(t.row.instanceId)!==t||this.paused||t.source||t.loading||t.done)return;if(!t.buffer){t.loading=!0,this.buffer(t.row.audioId).then(r=>{t.loading=!1,!(this.disposed||this.voices.get(t.row.instanceId)!==t)&&(t.buffer=r,this.playVoice(t))}).catch(r=>{this.disposed||this.voices.get(t.row.instanceId)!==t||(this.removeVoice(t.row.instanceId),this.error=r.message,this.publish())});return}if(this.context?.state!=="running"){this.publish();return}if(t.offset>=t.buffer.duration){t.done=!0;return}let e=this.context.createBufferSource();e.buffer=t.buffer,e.connect(this.output),t.source=e,t.beganAt=this.context.currentTime,e.onended=()=>{t.source===e&&(e.disconnect(),t.source=null,t.done=!0,this.publish())},e.start(0,t.offset),this.publish()}sync(t,{fresh:e=!1}={}){if(this.disposed)return;if(t?.running===!1){this.reset();return}let r=t?.audio;if(!r)return;let s=`${r.sessionId}:${r.playerIndex}`,n=s!==this.key;if(n&&(this.reset(),this.key=s),!n&&(r.sequence<this.sequence||r.revision<this.revision))return;this.revision=r.revision;let o=this.paused;this.paused=!!t.paused;let a=new Map(r.active.map(h=>[h.instanceId,h])),l=new Map(r.recent.map(h=>[h.instanceId,h]));for(let[h,u]of this.voices){let d=l.get(h)||a.get(h);if(d?.stopped||u.done&&!a.has(h)||!d){this.removeVoice(h);continue}this.paused&&!o&&u.source&&(u.offset+=Math.max(0,this.context.currentTime-u.beganAt),this.stopSource(u))}let c=n&&!e?r.active:r.recent;for(let h of c){if(!n&&h.instanceId<=this.sequence||h.stopped||B1(h.audioId)===null||h.duration<=0)continue;this.voices.size>=64&&this.removeVoice(this.voices.keys().next().value);let u={row:h,offset:n&&!e?Math.max(0,t.time-h.startedAt):0,source:null,buffer:null,loading:!1,done:!1};this.voices.set(h.instanceId,u)}this.sequence=r.sequence;for(let h of this.voices.values())this.playVoice(h);this.publish()}reset(){for(let t of this.voices.keys())this.removeVoice(t);this.key="",this.sequence=0,this.revision=-1,this.paused=!1,this.publish()}destroy(){this.disposed=!0,this.reset();for(let t of this.buffers.values())t.abort.abort();this.buffers.clear();for(let t of this.unlockHandlers)t();this.unlockHandlers.length=0,this.context&&(this.context.onstatechange=null,this.context.close().catch(()=>{}))}};var zC=["Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","Digit0","KeyU","KeyZ","KeyY","KeyG","KeyH","KeyI","KeyO","KeyP","KeyJ","KeyK","KeyL","KeyV","F5","F6","F7","F8","F9","F10","Backquote","Minus","Equal","BracketLeft","Comma","Period","Slash","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","ControlRight","ShiftRight","Backspace","CapsLock"],G1=new Map(zC.map((i,t)=>[i,`CraftspersonKey${t+1}`]));for(let[i,t]of Object.entries({KeyW:"MoveForwardKey",KeyS:"MoveBackwardKey",KeyA:"MoveLeftKey",KeyD:"MoveRightKey",ControlLeft:"SwitchToWalkOrRunKey",Space:"JumpKey",KeyX:"DropKey",Tab:"OpenShortcutWheelKey",KeyF:"InteractKey",KeyE:"CharacterSkill1Key",KeyQ:"CharacterSkill2Key",KeyR:"CharacterSkill3Key",KeyT:"CharacterSkill4Key"}))G1.set(i,t);function zl(i,t){if(t!=="Down"&&t!=="Up"||i.isComposing||i.keyCode===229||i.key==="Process"||i.key==="Dead")return"";let e=String(i.key||""),r=/^[a-z]$/i.test(e)?`Key${e.toUpperCase()}`:i.code,s=G1.get(r);return s?`Keyboard${s}${t}`:""}function F1(i,t){if(t!=="Down"&&t!=="Up")return"";let e=i===0?"NormalAttackKey":i===2?"SprintKey":"";return e?`Keyboard${e}${t}`:""}var Wd=33,U1=60;function D1(i,t,e,r){return{x:(i.clientX-t.left)*e/t.width,y:(t.bottom-i.clientY)*r/t.height}}function L1({renderer:i,api:t,onSnapshot:e,onStatus:r,onError:s,onAudioStatus:n,audio:o,isActive:a,isInputActive:l,keyInputEnabled:c=!0}={}){o||=typeof window<"u"?new Nl({onStatus:n}):null,typeof window<"u"&&o?.bindUnlock(window);let h=0,u=null,d=!1,f=!1,m=null,g=null,_=0,x=null,b=null,v=null,S=!1,T=[],w=new Set,E=Promise.resolve();function B(N){let et=h;return E=E.then(()=>et===h&&d?Y("key",{key:N},{allowInactive:!0}):null),E}function R(N=!0){return Promise.all([...w].map(et=>et(N))).then(()=>E)}function M(N){c=!!N,c||R()}function C(N){s&&s(N)}async function A(N,{freshAudio:et=!1}={}){u=N,d=N?.running!==!1,o?.sync(N,{fresh:et}),N?.scene&&N.scene.format==="tree-v1"?(N.scene.reset&&(_=0),await i.applyScene(N.scene,N.canvasWidth,N.canvasHeight),_=N.scene.revision||_):Array.isArray(N?.paint)&&await i.render(N.paint,N.canvasWidth,N.canvasHeight),e&&await e(N)}async function D(){if(!d||f)return;if(a&&!a()){o?.reset();return}f=!0;let N=h;try{let et=await t("get",{view:!0,sceneRev:_,compact:!0});if(N!==h)return;await A(et)}catch(et){if(N!==h)return;d=!1,K(),o?.reset(),C(et)}finally{f=!1}}function H(){m||(m=setInterval(()=>{D()},Wd))}function K(){m&&clearInterval(m),m=null,g&&clearTimeout(g),g=null}function I(N=30){g||(g=setTimeout(()=>{g=null,D()},N))}function F(){x&&clearTimeout(x),x=null}function j(){x&&(F(),Y("pointer",{type:"move",...b}))}function G(){R(!1),h++,o?.reset(),F(),v=null,S=!1,d=!1,_=0,K()}async function Y(N,et,{allowInactive:ct=!1}={}){if(!ct&&a&&!a())return null;let It=h;try{let St=await t(N,{light:!0,...et||{}});return It!==h||!d||(St&&typeof St=="object"&&St.frame!==void 0&&r&&r(St),I(30)),St}catch(St){return It===h&&C(St),null}}async function pt(N={}){G(),o?.unlock();let et=h;_=0;let ct=await t("start",{view:!0,compact:!0,...N});return et!==h||(await A({...ct,running:!0},{freshAudio:!0}),et!==h)||(d=!0,K(),H()),ct}async function Tt(){await R(),G();let N=h;_=0,K();let et=await t("get",{view:!0,compact:!0,sceneRev:0});return N!==h||(await A(et),N!==h)||d&&H(),et}async function lt(N={}){G();let et=h;_=0,K();let ct=await t("device",{view:!0,compact:!0,...N});return et!==h||(await A({...ct,running:!0},{freshAudio:!0}),et!==h)||(d=!0,H()),ct}async function ft(N={}){S=!0;let et=h;try{if(await R(),et!==h)return null;et=++h,o?.reset(),_=0;let ct=await t("view",{view:!0,compact:!0,...N});return et!==h||await A({...ct,running:!0}),ct}finally{et===h&&(S=!1)}}async function q(){return G(),t("stop")}function jt(N,et){return D1(N,et.getBoundingClientRect(),u.canvasWidth,u.canvasHeight)}function hi(N,{keysOn:et}={}){let ct=et||N,It=N.ownerDocument||ct.ownerDocument,St=It?.defaultView||ct,Kt=It||ct,Bt=new Map,xe="",Xt=()=>u&&d&&!S&&(!a||a())&&(!l||l()),$e=()=>c&&Xt(),as=V=>V.target?.isContentEditable||V.target?.closest?.('input,textarea,select,button,a[href],[role="textbox"],[contenteditable]:not([contenteditable="false"])'),ls=(V,zt)=>{if(!zt||Bt.has(V))return;let Hl=[...Bt.values()].includes(zt);Bt.set(V,zt),Hl||B(zt)},cr=V=>{let zt=Bt.get(V);return zt?(Bt.delete(V),d&&![...Bt.values()].includes(zt)?B(zt.replace(/Down$/,"Up")):null):null},Er=(V=!0)=>V?Promise.all([...Bt.keys()].map(cr)):(Bt.clear(),Promise.resolve());w.add(Er);let cs=V=>{xe=V.pointerType||"",Xt()&&(v!==null||V.button!=null&&V.button!==0||(v=V.pointerId,N.setPointerCapture?.(V.pointerId),j(),Y("pointer",{type:"down",...jt(V,N)})))},hs=V=>{Xt()&&v===V.pointerId&&(j(),Y("pointer",{type:"up",...jt(V,N)}),v=null)},us=V=>{Xt()&&(v!==null&&v!==V.pointerId||(b=jt(V,N),!x&&(x=setTimeout(()=>{x=null,Xt()&&Y("pointer",{type:"move",...b})},U1))))},ds=()=>{v===null&&(F(),Xt()&&Y("pointer",{type:"move",x:-1,y:-1}))},ui=V=>{V.pointerType==="mouse"&&(cr("mouse:0"),cr("mouse:2")),v===V.pointerId&&(F(),v=null,u&&d&&Y("pointer",{type:"cancel",...jt(V,N)}))},go=V=>{if(!Xt())return;V.preventDefault();let zt=N.getBoundingClientRect(),Hl=V.deltaMode===2?zt.width:V.deltaMode===1?16:1,W1=V.deltaMode===2?zt.height:V.deltaMode===1?16:1;Y("pointer",{type:"wheel",...jt(V,N),deltaX:V.deltaX*Hl*u.canvasWidth/zt.width,deltaY:V.deltaY*W1*u.canvasHeight/zt.height})},di=V=>{if(!$e()||as(V))return;let zt=zl(V,"Down");zt&&(V.preventDefault(),V.repeat||ls(`key:${V.code||V.key}`,zt))},fi=V=>{let zt=`key:${V.code||V.key}`;Bt.has(zt)&&(V.preventDefault(),cr(zt))},jd=V=>{!$e()||xe&&xe!=="mouse"||V.sourceCapabilities?.firesTouchEvents||ls(`mouse:${V.button}`,F1(V.button,"Down"))},Xd=V=>{cr(`mouse:${V.button}`)},fs=()=>{Er()},Yd=()=>{It?.hidden&&fs()},$d=V=>{$e()&&V.preventDefault()};N.addEventListener("pointerdown",cs),N.addEventListener("pointerup",hs),N.addEventListener("pointermove",us),N.addEventListener("pointerleave",ds),N.addEventListener("pointercancel",ui),N.addEventListener("lostpointercapture",ui),N.addEventListener("wheel",go,{passive:!1}),N.addEventListener("mousedown",jd),N.addEventListener("contextmenu",$d),Kt.addEventListener("mouseup",Xd),ct.addEventListener("keydown",di),ct.addEventListener("keyup",fi),ct.addEventListener("focusout",fs),St.addEventListener("blur",fs),It?.addEventListener("visibilitychange",Yd);let qd=()=>{Er(),w.delete(Er),N.removeEventListener("pointerdown",cs),N.removeEventListener("pointerup",hs),N.removeEventListener("pointermove",us),N.removeEventListener("pointerleave",ds),N.removeEventListener("pointercancel",ui),N.removeEventListener("lostpointercapture",ui),N.removeEventListener("wheel",go),N.removeEventListener("mousedown",jd),N.removeEventListener("contextmenu",$d),Kt.removeEventListener("mouseup",Xd),ct.removeEventListener("keydown",di),ct.removeEventListener("keyup",fi),ct.removeEventListener("focusout",fs),St.removeEventListener("blur",fs),It?.removeEventListener("visibilitychange",Yd),F()};return T.push(qd),qd}function Cr(){for(G();T.length;)T.pop()();i?.destroy?.(),o?.destroy()}return{audio:o,get snapshot(){return u},get running(){return d},get sceneRev(){return _},get keyInputEnabled(){return c},setKeyInputEnabled:M,releaseKeys:R,applyScene:A,poll:D,pollSoon:I,startPolling:H,stopPolling:K,reset:G,act:Y,start:pt,attach:Tt,device:lt,view:ft,stop:q,bindInput:hi,destroy:Cr}}var HC=[0,-.5,.5,.5,-.5,.5],WC=[0,-.5,.12,-.12,.5,0,.12,.12,0,.5,-.12,.12,-.5,0,-.12,-.12],VC=[0,-.5,.11,-.15,.48,-.15,.18,.07,.29,.41,0,.2,-.29,.41,-.18,.07,-.48,-.15,-.11,-.15],jC=new Set(["image","textbox","textwindow","button","grid"]);function os(i,t=4294967295){let e=Number(i??t)>>>0;return{color:e&16777215,alpha:(e>>>24&255)/255}}function le(i,t=0){let e=Number(i);return Number.isFinite(e)?e:t}function O1(i){let t=i?.matrix;if(!t||typeof t!="object")return null;let e=[t.a,t.b,t.c,t.d,t.tx,t.ty].map(Number);return e.every(Number.isFinite)?e:null}function XC(i){let t=i.horizontalAlignment==="Right"?1:i.horizontalAlignment==="Middle"?.5:0,e=i.verticalAlignment==="Bottom"?1:i.verticalAlignment==="Middle"?.5:0;return{x:t,y:e}}function N1(i,t,e,r){let s=i.textLayout,n=s?.fontSize??Math.max(1,le(i.fontSize,12)),o=XC(i),a=i.kind==="textwindow"?i.scroll:null,l=a?Jv(a,e):null,c={fontFamily:r||Il,fontSize:n,fill:os(i.fontColor,4294967295),stroke:i.enableOutline?{...os(i.outlineColor,4278190080),width:Math.max(2,n*.12),join:"round"}:void 0,wordWrap:!a&&!s,wordWrapWidth:Math.max(4,t-4),breakWords:!0,align:o.x===1?"right":o.x===.5?"center":"left",lineHeight:s?.lineHeight??n*1.2};return{text:l?l.text:s?s.lines.join(`
|
|
927
|
-
`):String(i.text||""),style:c,anchorX:o.x,anchorY:a?0:o.y,x:a?-t/2+2+o.x*a.textWidth:o.x===0?-t/2+2:o.x===1?t/2-2:0,y:a?-e/2-a.offset+l.y+(a.max>0?0:o.y*(e-a.contentLength)):o.y===0?-e/2:o.y===1?e/2:0}}function z1(i,t,e){return JSON.stringify([i.kind,t,e,i.bgColor,Fd(i.scroll,t,e)])}function YC(i,t,e){let r=i.primitive==="triangle"?HC:i.primitive==="fourstar"?WC:VC,s=[];for(let n=0;n<r.length;n+=2)s.push(r[n]*t,r[n+1]*e);return s}function $C(i,t,e){return H1(i)?[i.kind,i.primitive,i.imageId,ar(i.imageSource),"sprite"].join(" "):[i.kind,i.primitive,t,e,i.imageColor,i.imageId,ar(i.imageSource),i.imageType,i.fillType,i.fillHorizontalType,i.fillVerticalType,i.fillAmount,i.text,i.fontSize,i.fontColor,i.bgColor,i.enableOutline,i.adaptiveFontSize,i.minimumFontSize,JSON.stringify(i.textLayout),i.outlineColor,i.horizontalAlignment,i.verticalAlignment,i.pressed,JSON.stringify(i.scroll)].join(" ")}function H1(i){return i.kind==="image"&&i.primitive==="circle"&&(!i.fillType||i.fillType==="Unused")}function qC(i){let t=W.get().createCanvas(i,i);t.width=t.height=i;let e=t.getContext("2d");return e.fillStyle="#ffffff",e.beginPath(),e.arc(i/2,i/2,i/2,0,Math.PI*2),e.fill(),new U({source:new wt({resource:t,width:i,height:i,resolution:1})})}var Vd=class{constructor(t,{fontReady:e=null}={}){this.canvas=t,this.app=null,this.nodes=new Map,this.circleTextures=new Map,this.imageTextures=new Map,this.disposed=!1,this.unsubscribeImages=s1(r=>this.invalidateImage(r)),this.canvasWidth=0,this.canvasHeight=0,this.scratch=new k,this.ready=this.initialize(e)}async initialize(t){this.fontFamily=await t;let e=new yl;await e.init({canvas:this.canvas,width:1,height:1,autoStart:!1,autoDensity:!1,resolution:Math.min(2,window.devicePixelRatio||1),antialias:!0,backgroundAlpha:0,preference:"webgl",powerPreference:"high-performance"}),e.ticker.stop(),e.stage.eventMode="none",e.stage.sortableChildren=!0,this.app=e}resize(t,e){let r=Math.max(1,Math.round(le(t,1))),s=Math.max(1,Math.round(le(e,1)));r===this.canvasWidth&&s===this.canvasHeight||(this.canvasWidth=r,this.canvasHeight=s,this.app.renderer.resize(r,s))}createNode(t,{group:e=!1}={}){let r=new mt({isRenderGroup:!!e});return r.label=`runtime:${t.id}`,r.eventMode="none",r.sortableChildren=!0,r.__runtimeId=t.id,r.__group=!!e,this.nodes.set(t.id,r),this.app.stage.addChild(r),r}clearVisual(t){if(!t.__visual)return;let e=t.__visual.__text,r=this.app?.renderer,s=r?.renderPipes?.text?._managedTexts?.items,n=e?._gpuData?.[r?.uid]?.currentKey,o=e?.uid;t.__visual.parent?.removeChild(t.__visual);let a=t.__visual.__sliceGeometry;t.__visual.destroy({children:!0,context:!0,style:!0}),s&&o!==void 0&&s[o]===null&&delete s[o],n&&this.retireTextKey(n),a?.destroy(!0),t.__visual=null,t.__visualKey=""}retireTextKey(t){t&&(this.retiredTextKeys||=new Set,this.retiredTextKeys.add(t))}pruneTextKeys(){let t=this.app?.renderer?.canvasText?._activeTextures;for(let e of this.retiredTextKeys||[])t?.[e]===null&&delete t[e],t?.[e]||this.retiredTextKeys.delete(e)}updateTextVisual(t,e,r,s){let n=t.__visual;if(!n?.__text||n.__textChromeKey!==z1(e,r,s))return!1;let o=n.__text,a=N1(e,r,s,this.fontFamily),l=JSON.stringify(a.style);if(o.text!==a.text||n.__textStyleKey!==l){if(this.retireTextKey(o._gpuData?.[this.app?.renderer?.uid]?.currentKey),n.__textStyleKey!==l){let c=o.style;o.style=new Xe(a.style),c.destroy(),n.__textStyleKey=l}o.text=a.text}return o.anchor.set(a.anchorX,a.anchorY),o.position.set(a.x,a.y),!0}circleTexture(t){let e=this.app?.renderer.resolution||2,r=Math.min(4096,Math.max(256,2**Math.ceil(Math.log2(Math.max(1,t*e)))));this.circleTextures||=new Map;let s=this.circleTextures.get(r);return s||(s=qC(r),this.circleTextures.set(r,s)),s}imageTexture(t,e){this.imageTextures||=new Map;let r=Ye(t,e);if(this.imageTextures.has(r))return this.imageTextures.get(r);let s={texture:null,error:""};return this.imageTextures.set(r,s),s.promise=n1(t,e).then(({image:n,meta:o,error:a})=>{if(!(this.disposed||this.imageTextures.get(r)!==s)){s.texture=new U({source:new Re({resource:n})}),s.meta=o,s.error=a;for(let l of this.nodes.values()){let c=l.__sceneItem;c?.kind!=="image"||Ye(c.imageId,c.imageSource)!==r||(l.__visualKey="",this.updateNode(l,c,{nested:!l.__flat&&c.parent!=null}))}this.app?.render()}}).catch(n=>{s.error=n.message}),s}invalidateImage(t){let e=this.imageTextures.get(t);this.imageTextures.delete(t);for(let r of this.nodes.values()){let s=r.__sceneItem;s?.kind!=="image"||Ye(s.imageId,s.imageSource)!==t||(r.__visualKey="",this.updateNode(r,s,{nested:!r.__flat&&s.parent!=null}))}e?.texture?.destroy(!0),this.app?.render()}pruneImageTextures(){if(!this.imageTextures?.size)return;let t=new Set([...this.nodes.values()].filter(e=>e.__sceneItem?.primitive==="sprite").map(e=>Ye(e.__sceneItem.imageId,e.__sceneItem.imageSource)));for(let[e,r]of this.imageTextures||[])t.has(e)||(this.imageTextures.delete(e),r.texture?.destroy(!0))}replaceVisual(t,e,r,s){if(this.clearVisual(t),!jC.has(e.kind))return;let n=new mt;if(n.eventMode="none",n.label=`visual:${e.id}`,n.zIndex=e.kind==="grid"?Number.MAX_SAFE_INTEGER:-Number.MAX_SAFE_INTEGER,e.kind==="textbox"||e.kind==="textwindow"){let l=new oe,c=os(e.bgColor,16777215);l.rect(-r/2,-s/2,r,s).fill(c),n.addChild(l);let h=N1(e,r,s,this.fontFamily),u=new uo({text:h.text,style:new Xe(h.style)});u.anchor.set(h.anchorX,h.anchorY),u.position.set(h.x,h.y),n.__text=u,n.__textStyleKey=JSON.stringify(h.style),n.__textChromeKey=z1(e,r,s);let d=new oe().rect(-r/2,-s/2,r,s).fill({color:16777215,alpha:1});u.mask=d,n.addChild(d,u)}else if(e.kind==="button"){let l=new oe;l.roundRect(-r/2,-s/2,r,s,6).fill({color:3303631,alpha:1}),l.roundRect(-r/2,-s/2,r,s,6).stroke({color:7381247,alpha:.8,width:1}),e.pressed&&l.roundRect(-r/2,-s/2,r,s,6).fill({color:0,alpha:.28}),n.addChild(l)}else if(e.kind==="image"&&e.primitive==="sprite"&&this.imageTexture(e.imageId,e.imageSource).texture){let l=this.imageTextures.get(Ye(e.imageId,e.imageSource)),c;if(r>0&&s>0&&a1(l.meta,e.imageType)==="Stretch"){let d=[],f=[],m=[];for(let{source:[_,x,b,v],target:[S,T,w,E]}of l1(l.meta,r,s)){let B=d.length/2,R=S-r/2,M=T-s/2;d.push(R,M,R+w,M,R+w,M+E,R,M+E);let C=_/l.meta.width,A=(_+b)/l.meta.width,D=x/l.meta.height,H=(x+v)/l.meta.height;f.push(C,D,A,D,A,H,C,H),m.push(B,B+1,B+2,B,B+2,B+3)}let g=new io({positions:new Float32Array(d),uvs:new Float32Array(f),indices:new Uint32Array(m)});n.__sliceGeometry=g,c=new no({geometry:g,texture:l.texture})}else c=new pe({texture:l.texture,anchor:.5}),c.width=r,c.height=s;let h=os(e.imageColor,4294967295);c.tint=h.color,c.alpha=h.alpha;let u=kd(e,r,s);if(c.visible=r>0&&s>0&&(!u||u.width>0&&u.height>0),u&&c.visible){let d=new oe().rect(u.x,u.y,u.width,u.height).fill(16777215);c.mask=d,n.addChild(d)}n.addChild(c)}else if(H1(e)){let l=new pe({texture:this.circleTexture(Math.max(r,s)),anchor:.5});n.__circle=l,n.addChild(l)}else if(e.kind!=="grid"){let l=new oe,c=os(e.imageColor,4294967295);e.primitive==="missing"||e.primitive==="sprite"?(l.rect(-r/2,-s/2,r,s).fill({color:4727336,alpha:.36}),l.rect(-r/2+.5,-s/2+.5,Math.max(0,r-1),Math.max(0,s-1)).stroke({color:16741505,alpha:1,width:1})):e.primitive==="circle"?l.ellipse(0,0,r/2,s/2).fill(c):e.primitive==="ring"?l.ellipse(0,0,Math.max(1,r/2-3.5),Math.max(1,s/2-3.5)).stroke({...c,width:7}):e.primitive==="triangle"||e.primitive==="fourstar"||e.primitive==="fivestar"?l.poly(YC(e,r,s)).fill(c):l.rect(-r/2,-s/2,r,s).fill(c);let h=kd(e,r,s);if(h&&(l.visible=h.width>0&&h.height>0,l.visible)){let u=new oe().rect(h.x,h.y,h.width,h.height).fill({color:16777215,alpha:1});l.mask=u,n.addChild(u)}n.addChild(l)}let o=Fd(e.scroll,r,s);if(o){let l=new oe;l.label="scrollbar";for(let[c,h]of[[o.track,2503751],[o.thumb,9481931]])l.rect(c.x,c.y,c.width,c.height).fill({color:h,alpha:1});n.addChild(l)}n.scale.set(e.pressed?.98:1),(t.__imageContent||t).addChildAt(n,0),t.__visual=n}applyMatrix(t,e,r){let s=O1(e);if(!s){let u=Math.max(0,le(e.sourceWidth,le(e.width))),d=Math.max(0,le(e.sourceHeight,le(e.height)));t.x=le(e.left)+u/2,t.y=this.canvasHeight-le(e.bottom)-d/2,t.rotation=-le(e.rotationZ)*Math.PI/180,t.scale.set(1);return}let[n,o,a,l,c,h]=s;this.scratch.set(n,-o,-a,l,c,r?-h:this.canvasHeight-h),t.setFromMatrix(this.scratch)}updateNode(t,e,{nested:r=!1}={}){let s=Math.max(0,le(e.sourceWidth,le(e.width))),n=Math.max(0,le(e.sourceHeight,le(e.height))),o=$C(e,s,n);t.__visualKey!==o&&(this.updateTextVisual(t,e,s,n)||this.replaceVisual(t,e,s,n),t.__visualKey=o),t.__visual&&t.__visual.scale.set(e.pressed?.98:1);let a=t.__visual?.__circle;if(a){let l=Math.max(s,n),c=os(e.imageColor,4294967295);a.texture=this.circleTexture(l),a.width=s,a.height=n,a.tint=c.color,a.alpha=c.alpha,a.visible=s>0&&n>0}this.applyMatrix(t,e,r),this.updateImageMask(t,e,s,n)}updateImageMask(t,e,r,s){let n=e.kind==="image"?Kv({...e,sourceWidth:r,sourceHeight:s},{a:1,b:0,c:0,d:1,tx:0,ty:0}):null,o=n?[n.width,n.height,n.featherX,n.featherY].join(":"):"";if(t.__maskKey===o)return;if(t.__maskKey=o,!t.__imageContent&&n){let f=new mt;f.sortableChildren=!0,f.eventMode="none";for(let m of[...t.children])m!==t.__viewportClip&&f.addChild(m);t.addChildAt(f,0),t.__imageContent=f}let a=t.__imageContent;if(!a)return;a.visible=!n||r>0&&s>0;let l=n&&(n.featherX>0||n.featherY>0),c=Math.min(2048,Math.max(1,Math.ceil(r))),h=Math.min(2048,Math.max(1,Math.ceil(s))),u=t.__imageMask;if(l&&a.visible&&u instanceof pe&&u.texture.source.resource.width===c&&u.texture.source.resource.height===h){Gd(u.texture.source.resource,n),u.texture.source.update(),u.width=r,u.height=s;return}if(a.mask=null,u?.destroy({context:!0,texture:!0,textureSource:!0}),t.__imageMask=null,!n||!a.visible)return;let d;if(l){let f=W.get().createCanvas(c,h);Gd(f,n),d=new pe({texture:new U({source:new wt({resource:f})}),anchor:.5}),d.width=r,d.height=s}else d=new oe().rect(-r/2,-s/2,r,s).fill(16777215);d.eventMode="none",a.addChild(d),a.setMask({mask:d,channel:"alpha"}),t.__imageMask=d}attachNode(t,e){let r=e.parent,s=r==null?this.app.stage:this.nodes.get(r),n=s?.__imageContent||s||this.app.stage;t.parent!==n&&n.addChild(t),n.sortableChildren=!0,t.zIndex=-le(e.z)}upsertSceneNode(t){if(!t||t.id===void 0||t.id===null)return;let e=t.group===!0,r=this.nodes.get(t.id);r?r.__group!==e&&(e?r.enableRenderGroup?.():r.disableRenderGroup?.(),r.__group=e):r=this.createNode(t,{group:e}),this.updateNode(r,t,{nested:t.parent!=null}),this.attachNode(r,t),r.__sceneItem=t,r.__flat=!1}updateViewportClip(t){let e=t.__sceneItem,r=this.nodes.get(e?.parent)?.__sceneItem,s=e?.clipPolygons||[];if(!t.__flat&&e?.clipToParent&&r){let h=r.sourceWidth/2,u=r.sourceHeight/2;s=[[[-h,-u],[h,-u],[h,u],[-h,u]].map(([d,f])=>({x:d,y:f}))]}let n=JSON.stringify([s,e?.matrix]);if(t.__clipKey===n||(t.__clipKey=n,t.mask=null,t.__viewportClip?.destroy({context:!0}),t.__viewportClip=null,t.visible=!0,!s.length))return;let o=O1(e);if(!o||Math.abs(o[0]*o[3]-o[1]*o[2])<1e-8){t.visible=!1;return}let a=new k(...o).invert(),l=t1(s).flatMap(h=>{let u=a.apply(h);return[u.x,-u.y]});if(l.length<6||!l.every(Number.isFinite)){t.visible=!1;return}let c=new oe().poly(l).fill({color:16777215,alpha:1});t.addChild(c),t.mask=c,t.__viewportClip=c}removeNode(t){let e=this.nodes.get(t);if(e){for(let r of[...e.children,...e.__imageContent?.children||[]])r.__runtimeId!=null&&r.parent?.removeChild(r);e.parent?.removeChild(e),this.clearVisual(e),e.mask=null,e.__imageContent&&(e.__imageContent.mask=null),e.__imageMask?.destroy({context:!0,texture:!0,textureSource:!0}),e.__imageMask=null,e.__viewportClip?.destroy({context:!0}),e.__imageContent?.destroy({children:!1}),e.destroy({children:!1}),this.nodes.delete(t)}}clearNodes(){for(let t of[...this.nodes.keys()])this.removeNode(t);this.pruneTextKeys()}async applyScene(t,e,r){if(await this.ready,this.resize(e,r),!t||t.format!=="tree-v1"){this.app.render();return}t.reset&&this.clearNodes();for(let n of t.removed||[])this.removeNode(n);let s=t.reset?t.nodes:t.changed;for(let n=0;n<(s||[]).length;n+=1){let o=s[n];!o||o.id===void 0||o.id===null||this.nodes.has(o.id)||this.createNode(o,{group:o.group===!0})}for(let n=0;n<(s||[]).length;n+=1)this.upsertSceneNode(s[n]);for(let n of this.nodes.values())(n.__sceneItem?.clipToParent||n.__sceneItem?.clipPolygons?.length||n.__clipKey!==void 0)&&this.updateViewportClip(n);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}async render(t,e,r){if(t?.some(o=>o?.masks?.length))return this.__maskedPaint=!0,this.applyScene(Qv(t),e,r);await this.ready,this.__maskedPaint&&(this.clearNodes(),this.__maskedPaint=!1),this.resize(e,r);let s=new Set,n=Array.isArray(t)?t:[];for(let o=0;o<n.length;o+=1){let a=n[o];if(!a||a.id===void 0||a.id===null)continue;s.add(a.id);let l=this.nodes.get(a.id)||this.createNode(a);this.updateNode(l,a),l.__sceneItem=a,l.__flat=!0,this.updateViewportClip(l),l.zIndex=o,l.parent!==this.app.stage&&this.app.stage.addChild(l)}for(let[o]of this.nodes)s.has(o)||this.removeNode(o);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}destroy(){this.disposed=!0,this.unsubscribeImages?.(),this.clearNodes();for(let t of this.imageTextures?.values()||[])t.texture?.destroy(!0);this.imageTextures?.clear();for(let t of this.circleTextures.values())t.destroy(!0);this.circleTextures.clear(),this.app?.destroy({removeView:!1},{children:!0,texture:!0,textureSource:!0}),this.app=null}};export{Wd as PLAY_POLL_INTERVAL_MS,Vd as PixiPlayRenderer,L1 as createPlaySession,f1 as getLanguagePreference,Ol as getLocale,Ll as getSystemLanguage,h1 as loadBrowserFont,p1 as loadSystemLanguage,x1 as localizePage,m1 as setLanguagePreference,g1 as subscribeLocale,Dl as t};
|
|
925
|
+
`);return new Function("ps","f32v","u32v",s)}var kl=class{constructor(t){this._size=0,this._generateParticleUpdateCache={};let e=this._size=t.size??1e3,r=t.properties,s=0,n=0;for(let h in r){let u=r[h],d=Jt(u.format);u.dynamic?n+=d.stride:s+=d.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new ze(e*4*s),this.dynamicAttributeBuffer=new ze(e*4*n),this.indexBuffer=Rd(e);let o=new ue,a=0,l=0;this._staticBuffer=new At({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:tt.VERTEX|tt.COPY_DST}),this._dynamicBuffer=new At({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:tt.VERTEX|tt.COPY_DST});for(let h in r){let u=r[h],d=Jt(u.format);u.dynamic?(o.addAttribute(u.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:u.format}),a+=d.size):(o.addAttribute(u.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:l*4,format:u.format}),l+=d.size)}o.addIndex(this.indexBuffer);let c=this.getParticleUpdate(r);this._dynamicUpload=c.dynamicUpdate,this._staticUpload=c.staticUpdate,this.geometry=o}getParticleUpdate(t){let e=bC(t);return this._generateParticleUpdateCache[e]?this._generateParticleUpdateCache[e]:(this._generateParticleUpdateCache[e]=this.generateParticleUpdate(t),this._generateParticleUpdateCache[e])}generateParticleUpdate(t){return Xv(t)}update(t,e){t.length>this._size&&(e=!0,this._size=Math.max(t.length,this._size*1.5|0),this.staticAttributeBuffer=new ze(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new ze(this._size*this._dynamicStride*4*4),this.indexBuffer=Rd(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let r=this.dynamicAttributeBuffer;if(this._dynamicUpload(t,r.float32View,r.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,t.length*this._dynamicStride*4,!0),e){let s=this.staticAttributeBuffer;this._staticUpload(t,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,t.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}};function bC(i){let t=[];for(let e in i){let r=i[e];t.push(e,r.code,r.dynamic?"d":"s")}return t.join("_")}xt();ot();fr();jo();gt();zc();Pe();yd();Ho();Al();Ht();z.add(xg,yg);function kd(i,t,e){if(i.fillType!=="Horizontal"&&i.fillType!=="Vertical")return null;let r=Number(i.fillAmount??1),s=Number.isFinite(r)?Math.max(0,Math.min(1,r)):1;if(i.fillType==="Horizontal"){let o=t*s;return{x:i.fillHorizontalType==="Right"?t/2-o:-t/2,y:-e/2,width:o,height:e}}let n=e*s;return{x:-t/2,y:i.fillVerticalType==="Top"?-e/2:e/2-n,width:t,height:n}}var Yv="prefab-v1",vC=[[10003004,10003004],[10005001,10005142],[10006001,10006002],[10007002,10007002],[10008001,10008001],[10009001,10009011],[20001001,20001074],[20001076,20001121],[20001123,20001156],[20001158,20001302],[20001304,20001568],[20001570,20001999],[20002001,20002755],[20002757,20002999],[20003001,20003455],[30001001,30001016],[30002001,30002017],[30003001,30003011],[30004001,30004001],[30005001,30005020],[30006001,30006026],[30007001,30007013],[30008001,30008011]];function $v(i){return!Number.isSafeInteger(i)||!vC.some(([t,e])=>i>=t&&i<=e)?null:i===10003004||i===10008001?128:256}var SC="sprite-v1",TC="/qxqy-assets/",wC=[[100001,100006],[100101,100213],[101001,101018],[101020,101028],[101030,101046],[101048,101048],[101050,101054],[101056,101080],[102001,102052],[103001,103148],[104001,104010],[105001,105140],[105142,105219],[105221,105317],[106001,106047],[106049,106096],[107001,107007],[107010,107020],[107031,107092],[107094,107180],[107183,107201],[107203,107205],[107207,107228],[107231,107278],[107280,107402],[108001,108017],[108019,108020],[109001,109031],[109033,109034],[109036,109075],[110001,110053],[111001,111139],[112001,112042]];function ar(i){return i==null||i===""?"StaticReference":typeof i=="string"?i:typeof i.Name=="string"?i.Name:"Unknown"}function Ye(i,t){return`${ar(t)}:${i}`}function Bl(i,t){let e=ar(t);return e==="Prefab"?$v(i)!==null:e==="StaticReference"&&Number.isSafeInteger(i)&&i>100006&&wC.some(([r,s])=>i>=r&&i<=s)}function Bd(i,t=0,e){let r=ar(e);if(!["StaticReference","Prefab"].includes(r))throw new Error(`Unsupported image source: ${r}`);return`${TC}${r==="Prefab"?Yv:SC}/${i}.png${t?`?refresh=${t}`:""}`}function qv(i,t=0,e){return Bd(i,t,e).replace(".png",".json")}var CC=Object.freeze(["KEYBOARD","TOUCHSCREEN","CONTROLLER_CONSOLE","CONTROLLER_MOBILE"]),EC=Object.freeze({"pc-16-9":{id:"pc-16-9",device:"pc",platform:"KEYBOARD",width:1600,height:900,ratio:"16:9",luaDevice:"KeyboardAndMouse",label:"PC 1600\xD7900"},"pc-21-9":{id:"pc-21-9",device:"pc",platform:"KEYBOARD",width:2100,height:900,ratio:"21:9",luaDevice:"KeyboardAndMouse",label:"PC 2100\xD7900"},"mobile-16-9":{id:"mobile-16-9",device:"mobile",platform:"TOUCHSCREEN",width:1280,height:720,ratio:"16:9",luaDevice:"Mobile",label:"\u624B\u673A 1280\xD7720"},"mobile-19.5-9":{id:"mobile-19.5-9",device:"mobile",platform:"TOUCHSCREEN",width:1560,height:720,ratio:"19.5:9",luaDevice:"Mobile",label:"\u624B\u673A 1560\xD7720"},"mobile-4-3":{id:"mobile-4-3",device:"mobile",platform:"TOUCHSCREEN",width:1280,height:960,ratio:"4:3",luaDevice:"Mobile",label:"\u624B\u673A 1280\xD7960"}});var hY=Object.freeze({KEYBOARD:"pc-16-9",TOUCHSCREEN:"mobile-16-9",CONTROLLER_CONSOLE:"pc-16-9",CONTROLLER_MOBILE:"mobile-16-9"}),uY=Object.freeze({"server-container":"\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668",container:"\u5BB9\u5668\u8282\u70B9",textbox:"\u6587\u672C\u6846",image:"\u56FE\u7247",button:"\u9884\u8BBE\u6309\u94AE",cursor:"\u5149\u6807\u68C0\u6D4B\u533A\u57DF",grid:"\u7F51\u683C\u89C6\u7A97",reference:"\u6A21\u677F\u5F15\u7528\u63A7\u4EF6",textwindow:"\u6587\u672C\u89C6\u7A97",keyhint:"\u6309\u952E\u63D0\u793A",animation:"\u754C\u9762\u52A8\u6548",fullscreen:"\u5168\u5C4F\u52A8\u6548"}),dY=Object.freeze(["server-container","container","textbox","cursor","reference","grid","image","button","textwindow","keyhint","animation","fullscreen"]),fY=Object.freeze({"server-container":null,container:[150,150],textbox:[100,40],image:[80,80],button:[150,50],cursor:[150,50],grid:[80,80],reference:[80,80],textwindow:[100,40],keyhint:[40,40],animation:[100,100],fullscreen:null}),pY=Object.freeze({100001:"rect",100002:"circle",100003:"triangle",100004:"fourstar",100005:"fivestar",100006:"ring"});var mY=Object.freeze({font:4294967295,bg:16777215,outline:858993459,image:4294967295});function Kv(i,t,e){return{x:i.a*t+i.c*e+i.tx,y:i.b*t+i.d*e+i.ty}}function Id(i){let t=i.a*i.d-i.b*i.c;return!Number.isFinite(t)||Math.abs(t)<1e-8?null:{a:i.d/t,b:-i.b/t,c:-i.c/t,d:i.a/t,tx:(i.c*i.ty-i.d*i.tx)/t,ty:(i.b*i.tx-i.a*i.ty)/t}}var Il=i=>Number.isFinite(Number(i))?Math.max(0,Number(i)):0;function Qv(i,t){if(!i||i.kind!=="image"||i.enableMask!==!0||!t)return null;let e=Il(i.sourceWidth??i.width),r=Il(i.sourceHeight??i.height),s=i.enableSoftEdge===!0,n=i.softEdgeMode!=="Pixel",o=s?Il(i.softEdgeWidthX):0,a=s?Il(i.softEdgeWidthY):0;return{id:i.id,matrix:t,width:e,height:r,featherX:n?e*o/100:o,featherY:n?r*a/100:a}}function PC(i,t,e){let r=(s,n)=>s<=0?0:!(n>0)||s>=n?1:s/n;return Math.min(r(i+e.width/2,e.featherX),r(e.width/2-i,e.featherX),r(t+e.height/2,e.featherY),r(e.height/2-t,e.featherY))}function MC(i){let t={children:[]},e=[t],r=[];for(let s of i||[]){if(!s||s.id==null)continue;let n=s.masks||[],o=n.map(l=>JSON.stringify([l.id,l.matrix,l.width,l.height,l.featherX,l.featherY])),a=0;for(;a<r.length&&a<o.length&&r[a]===o[a];)a++;e.length=a+1;for(let l=a;l<n.length;l++){let c={mask:n[l],children:[]};e.at(-1).children.push(c),e.push(c)}e.at(-1).children.push({item:s}),r=o}return t.children}var Jv=()=>({a:1,b:0,c:0,d:1,tx:0,ty:0});function Zv(i,t){let e=Id(i)||Jv();return{a:e.a*t.a+e.c*t.b,b:e.b*t.a+e.d*t.b,c:e.a*t.c+e.c*t.d,d:e.b*t.c+e.d*t.d,tx:e.a*t.tx+e.c*t.ty+e.tx,ty:e.b*t.tx+e.d*t.ty+e.ty}}function t1(i){let t=[],e=0,r=(s,n=null,o=Jv())=>{s.forEach((a,l)=>{let c=`paint-mask:${e++}`,h=s.length-1-l;if(a.mask){let u=a.mask;t.push({id:c,parent:n,z:h,group:!1,kind:"image",primitive:"rect",imageColor:0,sourceWidth:u.width,sourceHeight:u.height,matrix:Zv(o,u.matrix),enableMask:!0,enableSoftEdge:!0,softEdgeMode:"Pixel",softEdgeWidthX:u.featherX,softEdgeWidthY:u.featherY}),r(a.children,c,u.matrix)}else{let u=a.item,d=u.sourceWidth??u.width??0,f=u.sourceHeight??u.height??0,m=(u.rotationZ||0)*Math.PI/180,g=u.matrix||{a:Math.cos(m),b:Math.sin(m),c:-Math.sin(m),d:Math.cos(m),tx:(u.left||0)+d/2,ty:(u.bottom||0)+f/2},_=Id(o),x=(u.clipPolygons||[]).map(S=>S.map(T=>_?Kv(_,T.x,T.y):T)),{masks:b,...v}=u;t.push({...v,id:c,parent:n,z:h,group:!1,enableMask:!1,clipToParent:!1,sourceWidth:d,sourceHeight:f,matrix:Zv(o,g),clipPolygons:x})}})};return r(MC(i)),{format:"tree-v1",reset:!0,nodes:t}}function Gd(i,t){let e=Math.max(1,i.width),r=Math.max(1,i.height),s=i.getContext("2d"),n=s.createImageData(e,r),o=n.data;for(let a=0;a<r;a+=1){let l=t.height/2-(a+.5)*t.height/r;for(let c=0;c<e;c+=1){let h=-t.width/2+(c+.5)*t.width/e,u=Math.round(255*PC(h,l,t)),d=(a*e+c)*4;o[d]=255,o[d+1]=255,o[d+2]=255,o[d+3]=u}}return s.putImageData(n,0,0),i}function Fd(i,t,e){if(!i?.showBar||i.max<=0||t<=0||e<=0)return null;let r=i.horizontal===!0,s=r?t:e,n=Math.max(0,s-4),o=Math.min(n,Math.max(18,n*s/(s+i.max))),a=n-o,l=a*i.offset/i.max,c=Math.min(8,r?e:t),h=r?{x:-t/2+2,y:e/2-c-2,width:n,height:c}:{x:t/2-c-2,y:-e/2+2,width:c,height:n},u=r?{...h,x:h.x+l,width:o}:{...h,y:h.y+l,height:o};return{track:h,thumb:u,travel:a}}function e1(i,t){let e=Math.max(0,Math.floor(i.offset/i.lineHeight)-1),r=Math.min(i.lines.length,Math.ceil((i.offset+t)/i.lineHeight)+1);return{text:i.lines.slice(e,r).join(`
|
|
926
|
+
`),y:e*i.lineHeight}}function r1(i){let t=i[0]||[],e=(r,s,n)=>(s.x-r.x)*(n.y-r.y)-(s.y-r.y)*(n.x-r.x);for(let r of i.slice(1)){let n=r.reduce((o,a,l)=>{let c=r[(l+1)%r.length];return o+a.x*c.y-c.x*a.y},0)>=0?1:-1;for(let o=0;o<r.length&&t.length;o++){let a=r[o],l=r[(o+1)%r.length],c=t;t=[];let h=c[c.length-1],u=e(a,l,h)*n;for(let d of c){let f=e(a,l,d)*n;if(f>=0!=u>=0){let m=u/(u-f);t.push({x:h.x+m*(d.x-h.x),y:h.y+m*(d.y-h.y)})}f>=0&&t.push(d),h=d,u=f}}}return t}var i1="qxqy-image-refresh",lr=new Map,po=new Map,mo=new Map,Ud=new Set,AC=16777216,s1=!1;function RC(i,t){mo.set(i,t),lr.delete(i),po.delete(i);for(let e of Ud)e(i)}var n1=i=>/^\d+$/.test(i)?Ye(Number(i)):i;function Dd(){if(!(s1||typeof window>"u")){s1=!0;try{for(let[i,t]of Object.entries(JSON.parse(localStorage.getItem(i1)||"{}")))mo.set(n1(i),t)}catch{}window.addEventListener("storage",i=>{if(i.key===i1)try{for(let[t,e]of Object.entries(JSON.parse(i.newValue||"{}"))){let r=n1(t);mo.get(r)!==e&&RC(r,e)}}catch{}})}}function o1(i){return Dd(),Ud.add(i),()=>Ud.delete(i)}function kC(i,t){if(Dd(),ar(t)!=="StaticReference"||!Bl(i,t))return Promise.resolve(null);let e=Ye(i,t),r=po.get(e);if(r)return r;let s=fetch(qv(i,mo.get(e),t),{signal:AbortSignal.timeout(3e4)}).then(async n=>{if(!n.ok)throw new Error(`\u56FE\u7247 ${i} \u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);return n.json()}).catch(n=>{throw po.get(e)===s&&po.delete(e),n});return po.set(e,s),s}async function a1(i,t){let[e,r]=await Promise.all([BC(i,t),kC(i,t).then(s=>({meta:s,error:""}),s=>({meta:void 0,error:s.message}))]);return{image:e,...r}}function BC(i,t){if(Dd(),!Bl(i,t))return Promise.reject(new Error("Image source/ID is not in the preview allowlist"));let e=Ye(i,t),r=lr.get(e);if(r&&(!r.failed||Date.now()<r.retryAt))return lr.delete(e),lr.set(e,r),r.promise;let s={pixels:0,failed:!1};return s.promise=new Promise((n,o)=>{let a=new Image,l=setTimeout(()=>{a.src="",c(new Error("\u56FE\u7247\u52A0\u8F7D\u8D85\u65F6"))},45e3);function c(h){if(clearTimeout(l),a.onload=a.onerror=null,h){s.failed=!0,s.retryAt=Date.now()+6e4,o(h);return}s.pixels=a.width*a.height;let u=[...lr.values()].reduce((d,f)=>d+f.pixels,0);for(let[d,f]of lr){if(u<=AC&&lr.size<=128)break;d!==e&&(!f.pixels&&!f.failed||(lr.delete(d),u-=f.pixels))}n(a)}a.onload=()=>c(),a.onerror=()=>c(new Error(`\u56FE\u7247 ${i} \u52A0\u8F7D\u5931\u8D25\uFF0C\u53EF\u5728\u5C5E\u6027\u9762\u677F\u5237\u65B0\u7D20\u6750`)),a.src=Bd(i,mo.get(e),t)}),lr.set(e,s),s.promise}function IC(i){return!!i?.border&&Object.values(i.border).some(t=>Number.isFinite(t)&&t>0)}function c1(i,t){let e=typeof t=="object"?t?.Name:t;return IC(i)&&e!=="Basic"?"Stretch":"Basic"}function l1(i,t,e,r){t=Number.isFinite(t)?Math.max(0,t):0,e=Number.isFinite(e)?Math.max(0,e):0;let s=Math.min(1,i/(t+e||1));t*=s,e*=s;let n=Math.min(1,r/(t+e||1));return{source:[0,t,i-e,i],target:[0,t*n,r-e*n,r]}}function h1(i,t,e){if(!(i?.width>0&&i?.height>0&&t>0&&e>0))return[];let r=l1(i.width,i.border.left,i.border.right,t),s=l1(i.height,i.border.top,i.border.bottom,e),n=[];for(let o=0;o<3;o++)for(let a=0;a<3;a++){let l=[r.target[a],s.target[o],r.target[a+1]-r.target[a],s.target[o+1]-s.target[o]];l[2]<=0||l[3]<=0||n.push({source:[r.source[a],s.source[o],r.source[a+1]-r.source[a],s.source[o+1]-s.source[o]],target:l})}return n}var ci='"Microsoft YaHei UI","Microsoft YaHei","HarmonyOS Sans SC","Noto Sans CJK SC",sans-serif',Ld="/qxqy-font";var Od=i=>`QxqyLocal_${i}`,u1=i=>i?`"${Od(i)}",${ci}`:ci;var Nd;function d1(){return Nd||=FC().catch(i=>{throw Nd=null,i}),Nd}async function FC(){let i={cache:"no-store",credentials:"same-origin",mode:"same-origin",signal:AbortSignal.timeout(1e4)},t=await fetch(`${Ld}/manifest`,i);if(!t.ok)throw new Error("\u65E0\u6CD5\u8BFB\u53D6\u672C\u5730\u5B57\u4F53\u914D\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u5BBF\u4E3B\u914D\u7F6E\u53CA\u672C\u673A\u8FDE\u63A5");let{id:e,scope:r="all"}=await t.json();if(e===null)return null;if(typeof e!="string"||!/^[a-f0-9]{64}$/.test(e))throw new Error("\u672C\u5730\u5B57\u4F53\u6807\u8BC6\u65E0\u6548");let s=await fetch(`${Ld}/file/${e}`,i);if(!s.ok)throw new Error("\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25\uFF0C\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762");let n=await s.arrayBuffer();if(!n.byteLength||n.byteLength>33554432)throw new Error("\u672C\u5730\u5B57\u4F53\u5927\u5C0F\u65E0\u6548");let o=new FontFace(Od(e),n);await o.load(),document.fonts.add(o);let a=u1(e),l="qxqy-local-font-style",c=document.getElementById(l);return r==="game"?c?.remove():(c||(c=document.createElement("style"),c.id=l,document.head.appendChild(c)),c.textContent=`[data-qxqy-font-ui], [data-qxqy-font-ui] * { font-family: ${a} !important; }`),a}var Gl={"\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u5B57\u4F53\u8BBE\u7F6E\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support font settings yet. Restart the Web or Harness host, then retry.","\u5F53\u524D\u540E\u53F0\u5C1A\u672A\u52A0\u8F7D\u68C0\u67E5\u66F4\u65B0\u529F\u80FD\uFF0C\u8BF7\u91CD\u542F Web \u6216 Harness \u5BBF\u4E3B\u540E\u91CD\u8BD5\u3002":"The running backend does not support update checks yet. Restart the Web or Harness host, then retry.","\u8BF7\u8F93\u5165\u516D\u4F4D\u989C\u8272\uFF0C\u4F8B\u5982 #FF8800":"Enter a six-digit color, e.g. #FF8800","\u900F\u660E\u5EA6\u8BF7\u8F93\u5165 0\u2013100 \u7684\u6574\u6570":"Enter an integer from 0 to 100 for opacity","Alpha\uFF1A0% \u5B8C\u5168\u900F\u660E\uFF0C100% \u5B8C\u5168\u4E0D\u900F\u660E":"Alpha: 0% is transparent; 100% is opaque","{0}\u4E0E\u900F\u660E\u5EA6":"{0} and opacity",\u6253\u5F00\u53D6\u8272\u5668:"Open color picker","{0}\u53D6\u8272\u5668":"{0} color picker",\u900F\u660E\u5EA6:"Opacity","{0}\u900F\u660E\u5EA6\u6ED1\u5757":"{0} opacity slider","{0}\u900F\u660E\u5EA6":"{0} opacity","Lua \u7D22\u5F15\u5F85\u540C\u6B65\uFF08{0} \u9879\uFF09\xB7 \u5C55\u5F00":"Lua index references need updating ({0}) \xB7 Expand","Lua \u7D22\u5F15\u540C\u6B65":"Update Lua Index References","\u4E0B\u4E00\u6B65\uFF1A\u540C\u6B65 Lua \u7D22\u5F15\u5F15\u7528\uFF08{0} \u9879\uFF09":"Next: Update Lua index references ({0})",\u811A\u672C\u5168\u91CF\u66FF\u6362\u5DF2\u5B8C\u6210:"Script index replacement completed",\u5173\u95ED\u7D22\u5F15\u540C\u6B65\u63D0\u793A:"Close index update notice","\u6536\u8D77\u63D0\u793A\uFF0C\u4FDD\u7559\u5F85\u540C\u6B65\u8BB0\u5F55":"Collapse notice and keep pending changes",\u5173\u95ED:"Close","\u540C\u6B65\u4EFB\u52A1\uFF08\u7C98\u8D34\u7ED9\u5F53\u524D\u9879\u76EE\u7684 AI\uFF09":"Update task (paste into this project's AI chat)","AI \u7D22\u5F15\u540C\u6B65\u4EFB\u52A1":"AI task: Update index references","AI \u5DF2\u5904\u7406\uFF0C\u91CD\u65B0\u8F7D\u5165\u5B58\u6863":"AI finished \u2014 reload the save","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\uFF0C\u8BF7\u9009\u62E9\u4E00\u79CD\u65B9\u5F0F\u540C\u6B65\u811A\u672C\u3002":"Control indices changed. Choose how to update script references.","\u8BF7\u68C0\u67E5\u66FF\u6362\u7ED3\u679C\u5E76\u4FDD\u5B58\u5B58\u6863\uFF0C\u518D\u5230\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u91CC\u7684\u6587\u4EF6\u5E76\u91CD\u65B0\u8BD5\u73A9\u3002":"Review the replacements and save. Then use Lua Scripts \u2192 Sync Scripts to Game and test again in the game.",\u7D22\u5F15\u540C\u6B65\u65B9\u5F0F:"Update method",\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15:"Replace All Script Indices","\u53EF\u80FD\u9519\u8BEF\u5730\u66FF\u6362\u975E\u7D22\u5F15\u5185\u5BB9\u3002":"This may replace numbers unrelated to control indices.","\u6309\u5B8C\u6574\u5341\u8FDB\u5236\u6570\u5B57\u66FF\u6362\u6240\u6709\u5DF2\u767B\u8BB0\u811A\u672C\uFF0C\u5305\u62EC\u914D\u7F6E\u8868\u3001\u5B57\u7B26\u4E32\u548C\u6CE8\u91CA\uFF1B\u540C\u65F6\u66F4\u65B0\u5185\u5BB9\u4E00\u81F4\u7684\u5DE5\u4F5C\u533A\u6E90\u6587\u4EF6\uFF0C\u66FF\u6362\u524D\u81EA\u52A8\u5907\u4EFD\u3002":"Replace whole decimal numbers in all registered scripts, including tables, strings, and comments. Matching workspace source files are updated too, with backups.","\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI":"Copy Task for AI","\u5148\u4FDD\u5B58\u6700\u65B0\u5B58\u6863\uFF0C\u518D\u590D\u5236\u5305\u542B\u6620\u5C04\u8BFB\u53D6\u65B9\u5F0F\u548C\u811A\u672C\u4F4D\u7F6E\u7684\u63D0\u793A\u8BCD\uFF0C\u7531 AI \u5224\u65AD\u54EA\u4E9B\u5F15\u7528\u9700\u8981\u66F4\u65B0\u3002":"Save first, then copy the index mapping instructions and script locations so the AI can identify references to update.","\u67E5\u770B\u7D22\u5F15\u53D8\u66F4\uFF08{0} \u9879\uFF09":"View index changes ({0})","\u8FD9\u91CC\u663E\u793A\u524D 20 \u9879\uFF1B\u5B8C\u6574\u6620\u5C04\u968F\u5B58\u6863\u4FDD\u5B58\uFF0C\u590D\u5236\u7684\u4EFB\u52A1\u4F1A\u5F15\u5BFC AI \u8BFB\u53D6\u5168\u90E8\u3002":"Showing the first 20 changes. The save includes the complete mapping; the copied task tells the AI how to read it.","Lua \u7D22\u5F15\u540C\u6B65\u95EE\u9898":"Lua index update issues","\u6E90\u7801\u6587\u4EF6\u6216\u7D22\u5F15\u6620\u5C04\u5B58\u5728\u51B2\u7A81\uFF0C\u672C\u6B21\u6CA1\u6709\u4FEE\u6539\u811A\u672C\u3002\u53EF\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI \u5904\u7406\u3002":"Source files or index mappings conflict. No scripts were changed. You can copy a task for the AI.",\u5185\u8054\u811A\u672C:"Inline script","\u7B2C {0} \u884C\uFF1A":"Line {0}:","\u5176\u4F59\u95EE\u9898\u8BF7\u7531 AI \u6838\u5BF9\u3002":"Ask the AI to review the remaining issues.","\u5DF2\u66FF\u6362 {0} \u4E2A\u811A\u672C\u7684 {1} \u5904\u6587\u672C\uFF0C\u66F4\u65B0 {2} \u4E2A\u9879\u76EE\u6587\u4EF6\u3002\u5907\u4EFD\uFF1A{3}":"Replaced {1} occurrences in {0} scripts and updated {2} project files. Backups: {3}","\u524D\u5F80 Lua \u811A\u672C":"Open Lua Scripts",\u65E0\u6CD5\u8BFB\u53D6\u5B57\u4F53\u8BBE\u7F6E:"Unable to read font settings","\u627E\u5230\u5B57\u4F53\uFF1A{0}\u3002":"Font found: {0}.","\u9ED8\u8BA4\u4F4D\u7F6E\u672A\u627E\u5230\u5B57\u4F53\uFF0C\u5C06\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002":"No font found in the default locations. The system font will be used.","\u5DF2\u4FDD\u5B58\u3002{0}\u91CD\u542F Web\u3001MCP \u6216 Harness \u5BBF\u4E3B\u540E\uFF0C\u5237\u65B0\u7F16\u8F91\u5668\u53CA\u8BD5\u73A9\u9875\u751F\u6548\u3002":"Saved. {0}Restart the Web, MCP, or Harness host, then refresh the editor and playtest pages to apply.",\u5B57\u4F53\u8BBE\u7F6E:"Font Settings","\u81EA\u5B9A\u4E49\u5B57\u4F53\u53EF\u7528\u4E8E\u6E38\u620F\u5185\u6587\u672C\u6216\u6574\u4F53 UI\u3002\u8BBE\u7F6E\u4EC5\u4FDD\u5B58\u5728\u672C\u673A\uFF0C\u91CD\u542F\u5BBF\u4E3B\u540E\u751F\u6548\u3002":"Apply the custom font to in-game text or the entire UI. Settings stay on this machine and apply after restarting the host.",\u5E94\u7528\u8303\u56F4:"Apply to",\u4EC5\u6E38\u620F\u5185\u6587\u672C:"In-game text only","\u6574\u4F53 UI":"Entire UI","\u4EC5\u6E38\u620F\u5185\u6587\u672C\uFF1A\u7528\u4E8E\u753B\u5E03\u3001\u8BD5\u73A9\u548C\u622A\u56FE\uFF1B\u6574\u4F53 UI\uFF1A\u540C\u65F6\u66FF\u6362\u5DE5\u5177\u680F\u3001\u9762\u677F\u3001\u4EE3\u7801\u548C\u65E5\u5FD7\u5B57\u4F53\u3002":"In-game text only: canvas, playtests, and screenshots. Entire UI: also changes fonts in toolbars, panels, code, and logs.",\u8BF7\u9009\u62E9\u5B57\u4F53\u5E94\u7528\u8303\u56F4:"Choose where to apply the font","\u5F53\u524D\u5B57\u4F53\uFF1A{0}":"Active font: {0}",\u7CFB\u7EDF\u5B57\u4F53:"System font","\u5B57\u4F53\u6587\u4EF6\u7531\u73AF\u5883\u53D8\u91CF QXQY_FONT_PATH \u6307\u5B9A\uFF0C\u4ECD\u53EF\u8C03\u6574\u5E94\u7528\u8303\u56F4\u3002":"QXQY_FONT_PATH selects the font file. You can still change where it applies.",\u5B57\u4F53\u6765\u6E90:"Font source",\u81EA\u52A8\u5C1D\u8BD5\u539F\u795E\u7684\u9ED8\u8BA4\u5B89\u88C5\u4F4D\u7F6E:"Look in Genshin Impact's default installation locations",\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6:"Use a local font file",\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53:"Use the system font",\u5B57\u4F53\u6587\u4EF6\u8DEF\u5F84:"Font file path","\u586B\u5199 TTF / OTF \u7684\u7EDD\u5BF9\u8DEF\u5F84\uFF0C\u6700\u5927 32 MiB\uFF1B\u53EF\u4EE5\u76F4\u63A5\u7C98\u8D34\u5E26\u5F15\u53F7\u7684 Windows \u8DEF\u5F84\u3002":"Enter an absolute TTF / OTF path (up to 32 MiB). Quoted Windows paths are accepted.","\u6309\u987A\u5E8F\u5C1D\u8BD5\u4EE5\u4E0B\u4F4D\u7F6E\uFF1B\u90FD\u672A\u627E\u5230\u65F6\u4F7F\u7528\u7CFB\u7EDF\u5B57\u4F53\u3002\u5B89\u88C5\u5728\u5176\u4ED6\u76D8\u7B26\u65F6\u8BF7\u9009\u62E9\u201C\u6307\u5B9A\u672C\u673A\u5B57\u4F53\u6587\u4EF6\u201D\u3002":"These locations are checked in order. If none contains a font, the system font is used. For another drive, select \u201CUse a local font file\u201D.","\u5F53\u524D\u7CFB\u7EDF\u4E0D\u81EA\u52A8\u67E5\u627E\uFF0C\u8BF7\u6307\u5B9A\u5B57\u4F53\u6587\u4EF6\u3002":"Automatic font discovery is unavailable on this system. Specify a font file.","\u6709\u5DF2\u4FDD\u5B58\u7684\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u9875\u9762\u540E\u751F\u6548\u3002":"Font settings have been saved. Restart the host and refresh the pages to apply them.","\u6B63\u5728\u8BFB\u53D6\u8BBE\u7F6E\u2026":"Loading settings\u2026","\u4FDD\u5B58\u4E2D\u2026":"Saving...",\u4FDD\u5B58\u8BBE\u7F6E:"Save Settings","\u56FE\u7247 {0} \u52A0\u8F7D\u5931\u8D25":"Failed to load image {0}","\u52A0\u8F7D\u56FE\u7247 {0}\u2026":"Loading image {0}\u2026","\u56FE\u7247 {0}":"Image {0}",\u56FE\u7247\u7C7B\u578B:"Image Type",\u5143\u6570\u636E\u52A0\u8F7D\u5931\u8D25:"Failed to load image metadata","\u8BFB\u53D6\u7D20\u6750\u8FB9\u754C\u2026":"Loading asset borders\u2026",\u57FA\u7840:"Basic",\u62C9\u4F38:"Stretch",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668:"Client Control Container",\u5BB9\u5668\u8282\u70B9:"Container Control",\u6587\u672C\u6846:"Text Box",\u5149\u6807\u68C0\u6D4B\u533A\u57DF:"CursorEventArea",\u6A21\u677F\u5F15\u7528\u63A7\u4EF6:"Reference Control",\u7F51\u683C\u89C6\u7A97:"Grid Scroller",\u56FE\u7247:"Image",\u9884\u8BBE\u6309\u94AE:"Preset Button",\u6587\u672C\u89C6\u7A97:"Text Window",\u6309\u952E\u63D0\u793A:"Key Hint",\u754C\u9762\u52A8\u6548:"UI Animation",\u5168\u5C4F\u52A8\u6548:"Fullscreen UI Animation",\u5149\u6807\u68C0\u6D4B:"CursorEventArea",\u6A21\u677F\u5F15\u7528:"Reference Control","\u5BFC\u51FA\u5185\u5BB9\u89E3\u7801\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u6216\u5237\u65B0\u9875\u9762":"Unable to decode the export. Retry or refresh the page.","PC KEYBOARD \u753B\u5E03\uFF1A1600\xD7900 / 2100\xD7900":"PC KEYBOARD canvas: 1600\xD7900 / 2100\xD7900",\u624B\u673A:"Mobile","\u624B\u673A TOUCHSCREEN \u753B\u5E03\uFF1A1280\xD7720 / 1560\xD7720 / 1280\xD7960":"Mobile TOUCHSCREEN canvas: 1280\xD7720 / 1560\xD7720 / 1280\xD7960",\u5C1A\u65E0\u53EF\u7F16\u8F91\u503C:"No editable value available","\u672A\u8BC6\u522B\u9009\u9879 {0}\uFF08\u4FDD\u7559\u539F\u503C\uFF09":"Unknown option {0} (original value preserved)",\u7A7A:"None","\u65B0\u5EFA\u5E76\u7ED1\u5B9A{0}\u56FE\u7247":"Create and assign a {0} image",\u7FBD\u5316\u5BBD\u5EA6:"Soft Edge Width",\u7FBD\u5316\u8303\u56F4:"Soft Edge Range",\u56FE\u7247\u8BBE\u7F6E:"Image Settings",\u906E\u7F69\u8BBE\u7F6E:"Mask Settings",\u6587\u672C\u6846\u8BBE\u7F6E:"Text Box Settings",\u6309\u94AE\u8BBE\u7F6E:"Button Settings","{0}\u8BBE\u7F6E":"{0} Settings",\u8282\u70B9\u4FE1\u606F:"Node Information",\u53D8\u6362:"Transform",\u4F4D\u7F6E:"Location",\u5927\u5C0F:"Size",\u4E2D\u5FC3:"Pivot",\u521B\u5EFA\u8BBE\u7F6E:"Create Settings",\u624B\u67C4\u5BFC\u822A:"Controller Navigation",\u5B9E\u73B0\u72B6\u6001:"Support Status","\u5B58\u6863\u5185 Lua \u811A\u672C\uFF08{0}\uFF09":"Lua Scripts in This Save ({0})","\uFF0B \u65B0\u5EFA\u811A\u672C":"\uFF0B New Script","(\u672A\u547D\u540D\u811A\u672C)":"(Unnamed script)","\u6302\u8F7D\uFF1A{0} \xB7 {1}":"Attached to: {0} \xB7 {1}","\u672A\u6302\u8F7D\uFF08\u4EC5\u53EF\u88AB require\uFF09":"Not attached (available through require only)","\u4E0B\u8F7D\u8BE5\u811A\u672C .lua":"Download this script as .lua",\u5220\u9664\u8BE5\u811A\u672C:"Delete this script","\u8FD8\u6CA1\u6709\u811A\u672C\uFF0C\u70B9\u51FB\u201C\u65B0\u5EFA\u811A\u672C\u201D\u5F00\u59CB":"No scripts yet. Click \u201CNew Script\u201D to begin.","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 Lua \u811A\u672C\u662F\u5B58\u6863\u5185\u72EC\u7ACB\u8D44\u4EA7":"Save: \u201C{0}\u201D \xB7 Lua scripts are separate assets within the save",\u672A\u547D\u540D\u5B58\u6863:"Untitled Save","\u811A\u672C {0}":"Script {0}","\u811A\u672C\u8DEF\u5F84\uFF08\u5DE5\u4F5C\u533A\u76F8\u5BF9\u8DEF\u5F84\uFF09":"Script path (relative to the workspace)","\u6302\u8F7D\u76EE\u6807\uFF08\u5BA2\u6237\u7AEF\u63A7\u4EF6 / \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF09":"Attach to (client control / client control template)","\u672A\u6302\u8F7D\uFF08\u4E0D\u751F\u6548\uFF0C\u4EC5\u53EF\u88AB require\uFF09":"Not attached (does not run automatically; require only)","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F \xB7 \u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u5185":"Server Control Template \xB7 Inside the Client Control Container",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Client Control Template","Lua \u6E90\u7801":"Lua Source","-- \u5728\u8FD9\u91CC\u8F93\u5165\u5BA2\u6237\u7AEF Lua\uFF1B\u811A\u672C\u53EA\u6709\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548":"-- Enter client-side Lua here; attach the script to a client control to run it in playtests",\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539:"Unsaved changes","\u5DF2\u6302\u8F7D\uFF1A{0}":"Attached to: {0}","\u5F53\u524D\u672A\u6302\u8F7D\uFF0C\u8BD5\u73A9\u65F6\u4E0D\u4F1A\u81EA\u52A8\u8FD0\u884C":"Not attached; it will not run automatically in playtests","\u21E9 \u811A\u672C\u5305 JSON":"\u21E9 Script Bundle JSON","\u21E9 \u811A\u672C\u5305 GIA":"\u21E9 Script Bundle GIA",\u4FDD\u5B58\u811A\u672C:"Save Script",\u8BF7\u65B0\u5EFA\u6216\u9009\u62E9\u4E00\u4E2A\u811A\u672C:"Create or select a script","PlayerSelf \u5F53\u524D\u73A9\u5BB6":"PlayerSelf \u2014 Current Player","AllPlayers \u5168\u90E8\u73A9\u5BB6":"AllPlayers \u2014 All Players","Level \u5173\u5361":"Level \u2014 Stage","Player1 \u73A9\u5BB61":"Player1 \u2014 Player 1","Player2 \u73A9\u5BB62":"Player2 \u2014 Player 2","Player3 \u73A9\u5BB63":"Player3 \u2014 Player 3","Player4 \u73A9\u5BB64":"Player4 \u2014 Player 4","Player5 \u73A9\u5BB65":"Player5 \u2014 Player 5","Player6 \u73A9\u5BB66":"Player6 \u2014 Player 6","Player7 \u73A9\u5BB67":"Player7 \u2014 Player 7","Player8 \u73A9\u5BB68":"Player8 \u2014 Player 8","\u89C4\u5219 {0} \u9700\u8981\u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0} needs a signal name to listen for","\u89C4\u5219 {0} \u81F3\u5C11\u9700\u8981\u4E00\u4E2A\u52A8\u4F5C":"Rule {0} needs at least one action","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D":"Rule {0}, action {1} needs a client signal name","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u9700\u8981\u53D8\u91CF\u540D":"Rule {0}, action {1} needs a variable name","{0}\u6765\u6E90":"{0} source","\u5B57\u9762\u91CF\uFF08JSON\uFF09":"Literal (JSON)",\u5F15\u7528\u76D1\u542C\u4FE1\u53F7\u53C2\u6570:"Use a received signal argument","{0}\u53C2\u6570\u5E8F\u53F7":"{0} argument index","{0}\u5B57\u9762\u91CF":"{0} literal","\u5BA2\u6237\u7AEF\u4FE1\u53F7\u53C2\u6570\uFF08\u6309\u6DFB\u52A0\u987A\u5E8F\uFF09":"Client signal arguments (in order)","\u53C2\u6570 {0}":"Argument {0}",\u5220\u9664\u53C2\u6570:"Remove argument","\u6682\u65E0\u53C2\u6570\uFF0C\u53EF\u53D1\u9001\u7A7A\u53C2\u6570\u5217\u8868":"No arguments; an empty argument list can be sent","\uFF0B \u6DFB\u52A0\u53C2\u6570":"\uFF0B Add Argument",\u670D\u52A1\u7AEF\u903B\u8F91:"Server Logic","\u5C5E\u4E8E\u5B58\u6863\u201C{0}\u201D \xB7 \u76D1\u542C\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540E\u8BBE\u7F6E Level / \u73A9\u5BB6\u53D8\u91CF\uFF0C\u6216\u5411\u6307\u5B9A\u73A9\u5BB6\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"Save: \u201C{0}\u201D \xB7 Listen for client signals to set Level / player variables or send client script signals to selected players",\u4FDD\u5B58\u670D\u52A1\u7AEF\u903B\u8F91:"Save Server Logic","\u8FD9\u662F\u6A21\u62DF\u5668\u5B58\u6863\u683C\u5F0F\uFF0C\u4E0D\u662F\u5B98\u65B9\u8282\u70B9\u56FE\u3002PlayerSelf \u8868\u793A\u53D1\u4FE1\u53F7\u7684\u90A3\u4F4D\u73A9\u5BB6\uFF1BPlayer1\u20138 \u662F\u56FA\u5B9A\u5EA7\u4F4D\uFF1BAllPlayers \u5411\u672C\u5C40\u5168\u90E8\u8BD5\u73A9\u73A9\u5BB6\u5E7F\u64AD\u3002":"This uses the simulator's save format. PlayerSelf is the player who sent the signal; Player1\u20138 are fixed slots; AllPlayers broadcasts to every player in this playtest.","\u89C4\u5219 {0}":"Rule {0}",\u76D1\u542C\u4FE1\u53F7\u540D:"Signal to listen for","\u89C4\u5219 {0} \u76D1\u542C\u4FE1\u53F7\u540D":"Rule {0}: signal to listen for",\u5220\u9664\u89C4\u5219:"Remove rule","\u52A8\u4F5C {0}":"Action {0}","\u89C4\u5219 {0} \u52A8\u4F5C {1} \u7C7B\u578B":"Rule {0}, action {1}: type",\u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF:"Set Custom Variable",\u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7:"Send Client Script Signal","\u53D1\u7ED9\u5F53\u524D\u73A9\u5BB6\u3001\u6307\u5B9A\u73A9\u5BB6\u6216\u5168\u90E8\u73A9\u5BB6":"Send to the current player, a selected player, or all players","\u5199\u5165 Level / \u5F53\u524D\u73A9\u5BB6 / \u73A9\u5BB61-8":"Write to Level / current player / Player1\u20138",\u5220\u9664\u52A8\u4F5C:"Remove action",\u53D1\u9001\u76EE\u6807:"Send to",\u5BA2\u6237\u7AEF\u4FE1\u53F7\u540D:"Client signal name",\u5B9E\u4F53:"Entity",\u53D8\u91CF\u540D:"Variable name",\u53D8\u91CF\u503C:"Variable value","\uFF0B \u8BBE\u7F6E\u81EA\u5B9A\u4E49\u53D8\u91CF":"\uFF0B Set Custom Variable","\uFF0B \u53D1\u9001\u5BA2\u6237\u7AEF\u811A\u672C\u4FE1\u53F7":"\uFF0B Send Client Script Signal","\u8FD8\u6CA1\u6709\u76D1\u542C\u89C4\u5219\u3002\u8BD5\u73A9\u65F6\u5BA2\u6237\u7AEF SendSignal \u4E0D\u4F1A\u81EA\u52A8\u6539\u53D8\u91CF\u6216\u56DE\u4F20\u4FE1\u53F7\u3002":"No signal rules yet. In a playtest, client SendSignal calls do not automatically change variables or send signals back.","\uFF0B \u6DFB\u52A0\u76D1\u542C\u89C4\u5219":"\uFF0B Add Signal Rule","\u4FDD\u5B58\u540E\u4F1A\u5199\u5165\u5F53\u524D\u5B58\u6863\uFF0C\u4E0B\u6B21\u8BD5\u73A9\u751F\u6548":"Saved to the current save; applies on the next playtest","\u8BF7\u8F93\u5165 1\u20132147483647 \u4E4B\u95F4\u7684\u6574\u6570\u7D22\u5F15\u3002":"Enter an integer index from 1 to 2147483647.",\u5BA2\u6237\u7AEF\u63A7\u4EF6\u7D22\u5F15:"Client Control Index",\u4FDD\u5B58\u4E2D:"Saving",\u4FEE\u6539:"Edit",\u81EA\u52A8\u4FEE\u6539\u5176\u4ED6\u5BA2\u6237\u7AEF\u7D22\u5F15\u503C:"Automatically fill other client control indices",\u81EA\u52A8\u586B\u5145\u7D22\u5F15\u9884\u89C8:"Index Autofill Preview","\u4EE5\u5F53\u524D\u63A7\u4EF6\u4E3A\u57FA\u51C6\uFF0C\u6309 GIA \u5BFC\u5165\u987A\u5E8F\u586B\u5145 {0} \u4E2A\u63A7\u4EF6\uFF08{1} \u4E2A\u6A21\u677F\u53CA\u5176\u5B50\u63A7\u4EF6\uFF09\u3002":"Using this control as the anchor, assign indices in GIA import order to {0} controls ({1} templates and their children).","\u7D22\u5F15\u8303\u56F4\uFF1A{0}\u2013{1}":"Index range: {0}\u2013{1}","\u7D22\u5F15\u8303\u56F4\u8D85\u51FA\u6709\u6548\u8303\u56F4\uFF0C\u8BF7\u68C0\u67E5\u8F93\u5165\u3002":"Index range exceeds the valid bounds. Check your input.","\u9002\u7528\u4E8E\u6574\u6279\u5BFC\u5165\u540E\u672A\u589E\u5220\u3001\u91CD\u6392\u7684\u6A21\u677F\u3002\u670D\u52A1\u7AEF\u754C\u9762\u548C\u811A\u672C\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199\u3002":"For templates imported together without structural changes or reordering. Server UI and script indices must be entered separately.","\u586B\u5199 GIA \u5BFC\u5165\u540E\u5B9E\u9645\u663E\u793A\u7684\u7D22\u5F15\uFF1B\u4FEE\u6539\u540E\u4ECE\u9875\u9762\u4E0A\u65B9\u7EE7\u7EED\u540C\u6B65 Lua\u3002":"Enter the actual index shown after importing the GIA. Then update Lua references using the notice above.",\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6\u7684\u811A\u672C:"Scripts Attached to This Control","\u89E3\u9664\u6302\u8F7D\uFF08\u4FDD\u7559\u811A\u672C\uFF09":"Detach (keep script)","\u8BE5\u63A7\u4EF6\u5C1A\u672A\u6302\u8F7D\u811A\u672C\u3002\u811A\u672C\u6302\u8F7D\u5230\u5BA2\u6237\u7AEF\u63A7\u4EF6\u540E\u624D\u4F1A\u5728\u8BD5\u73A9\u65F6\u751F\u6548\u3002":"No script is attached to this control. Attach a script to a client control to run it in playtests.",\u6302\u8F7D\u5DF2\u6709\u811A\u672C:"Attach an Existing Script",\u9009\u62E9\u811A\u672C\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Choose a script to attach to this control","\u9009\u62E9\u811A\u672C\u2026":"Select a script\u2026","\uFF08\u5F53\u524D\u6302\u8F7D\u4E8E {0} \xB7 {1}\uFF0C\u5C06\u79FB\u52A8\u5230\u6B64\u63A7\u4EF6\uFF09":"(currently on {0} \xB7 {1}; will move to this control)","\uFF08\u672A\u6302\u8F7D\uFF09":"(not attached)","\u5B58\u6863\u5185\u8FD8\u6CA1\u6709\u5176\u4ED6\u811A\u672C\uFF0C\u53EF\u70B9\u51FB\u4E0B\u65B9\u6309\u94AE\u65B0\u5EFA\u3002":"No other scripts in this save. Create one using the button below.","\uFF0B \u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u6B64\u63A7\u4EF6":"\uFF0B Create and Attach a Script","\u7F3A\u5C11\u56FE\u7247 {0}":"Missing image {0}",\u672C\u5730\u5B57\u4F53\u52A0\u8F7D\u5931\u8D25:"Failed to load the local font","\u5F53\u524D\u8D44\u4EA7\u5DF2\u5207\u6362\uFF0C\u8BF7\u91CD\u65B0\u9009\u62E9\u63A7\u4EF6\u540E\u4FEE\u6539\u7D22\u5F15":"The active asset changed. Select the control again before changing its index.","\u63A7\u4EF6\u7D22\u5F15\u5DF2\u4FEE\u6539\u3002\u8BF7\u9009\u62E9\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\u3002":"Control indices changed. Choose \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above.","\u8BF7\u5148\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\uFF0C\u518D\u590D\u5236\u63D0\u793A\u8BCD\uFF1BAI \u9700\u8981\u8BFB\u53D6\u8FD9\u6B21\u5B9E\u9645\u4FEE\u6539\u7684\u5B58\u6863\u3002":"Save the complete project before copying the task. The AI needs the save containing these changes.","\u8BF7\u5B8C\u6210\u6A21\u62DF\u5668\u63A7\u4EF6\u7D22\u5F15\u4E0E Lua \u5F15\u7528\u540C\u6B65\u3002":"Update the simulator's control indices and Lua references.","\u5DE5\u4F5C\u533A\uFF1A{0}":"Workspace: {0}",\u8BF7\u5148\u6838\u5BF9\u5DE5\u4F5C\u533A:"Verify the workspace first","\u6700\u65B0\u5B8C\u6574\u5B58\u6863\uFF1A{0}\uFF08\u7F16\u8F91\u5668\u5DF2\u4FDD\u5B58\uFF09":"Latest complete save: {0} (saved by the editor)","Lua \u6587\u4EF6\uFF1A{0}":"Lua files: {0}","\u5185\u8054\u811A\u672C {0}":"Inline script {0}",\u6682\u65E0:"None","\u5148\u4ECE\u4E0A\u8FF0\u6587\u4EF6\u91CD\u65B0\u52A0\u8F7D\u6700\u65B0\u5B58\u6863\uFF0C\u4E0D\u8981\u4F7F\u7528\u53E6\u4E00\u4E2A MCP/Web \u8FDB\u7A0B\u91CC\u7684\u65E7\u5DE5\u7A0B\u3002":"Reload the latest save from the file above. Do not use an older project from another MCP/Web process.","\u83B7\u53D6\u65B0\u65E7\u6620\u5C04\uFF1A\u8BFB\u53D6\u8BE5 JSON \u9876\u5C42\u7684 controlGuidChanges \u6570\u7EC4\uFF0C\u5F53\u524D\u5171 {0} \u6761\uFF0C\u5FC5\u987B\u8BFB\u53D6\u5168\u90E8\u8BB0\u5F55\u3002oldGuid \u662F\u65E7\u7D22\u5F15\uFF0CnewGuid \u662F\u65B0\u7D22\u5F15\uFF1BcontrolAsset + controlId \u6807\u8BC6\u63A7\u4EF6\uFF0CcontrolName \u662F\u540D\u79F0\uFF0Cid \u662F\u8BB0\u5F55\u7F16\u53F7\uFF0CbatchId \u662F\u6279\u6B21\u3002":"Read all {0} entries in the save's top-level controlGuidChanges array. oldGuid/newGuid are the old/new indices. controlAsset + controlId identifies the control; controlName is its name; id identifies the change; batchId identifies the batch.","\u83B7\u53D6\u811A\u672C\uFF1A\u8BFB\u53D6 assets.scripts \u6570\u7EC4\uFF1B\u6BCF\u9879\u7684 source \u662F\u5B58\u6863\u5185\u6E90\u7801\uFF0Cpath \u662F\u811A\u672C\u6587\u4EF6\u8DEF\u5F84\uFF08\u76F8\u5BF9\u8DEF\u5F84\u4EE5\u5DE5\u4F5C\u533A\u4E3A\u57FA\u51C6\uFF09\u3002":"Read scripts from assets.scripts. Each source contains the saved code; path identifies its file, relative to the workspace where applicable.","\u6309\u63A7\u4EF6\u8EAB\u4EFD\u548C\u53D8\u66F4\u987A\u5E8F\u6838\u5BF9\u5168\u90E8 Lua \u811A\u672C\u7684\u7D22\u5F15\u5E38\u91CF\u3001\u914D\u7F6E\u8868\u4E0E\u8C03\u7528\uFF0C\u4FEE\u6539\u5B58\u6863\u4E2D\u7684 source \u53CA\u76F8\u5173 Lua \u6E90\u6587\u4EF6\u548C\u751F\u6210\u5668\u6620\u5C04\uFF0C\u907F\u514D\u91CD\u5EFA\u540E\u8986\u76D6\u3002\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\uFF0C\u4E5F\u4E0D\u8981\u6539\u8FD0\u884C\u65F6\u5B9E\u4F8B ID \u6216\u56FE\u7247\u8D44\u6E90 ID\u3002":"Review index constants, tables, and calls in all Lua scripts by control identity and change order. Update saved source, related Lua files, and generator mappings. Do not globally replace equal numbers or alter runtime instance IDs or image resource IDs.","\u540C\u4E00 batchId \u662F\u540C\u65F6\u6620\u5C04\uFF0C\u987B\u6309\u539F\u503C\u4E00\u6B21\u6027\u5E94\u7528\uFF0C\u4E0D\u80FD\u9010\u6761\u66FF\u6362\u5BFC\u81F4\u7D22\u5F15\u4E32\u6539\u3002":"Changes sharing batchId form one simultaneous mapping. Apply them to original values together to avoid cascading replacements.","\u68C0\u67E5\u65E7\u7D22\u5F15\u5F15\u7528\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF1B\u4EC5\u5728\u5F15\u7528\u5168\u90E8\u540C\u6B65\u6216\u660E\u786E\u6CA1\u6709\u5F15\u7528\u540E\uFF0C\u7528 acknowledgeControlGuidChanges \u7684 changeIds \u6E05\u9664\u5DF2\u6838\u5BF9\u8BB0\u5F55\uFF0C\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u3002\u672A\u5224\u65AD\u7684\u8BB0\u5F55\u7EE7\u7EED\u4FDD\u7559\u3002":"Check old references and playtest again. Only after updating every reference or confirming none exist, acknowledge reviewed changeIds with acknowledgeControlGuidChanges and save. Keep unreviewed changes.","\u5B8C\u6210\u540E\u544A\u77E5\u7528\u6237\u91CD\u65B0\u8F7D\u5165\u8FD9\u4E2A\u5B58\u6863\uFF0C\u518D\u901A\u8FC7\u300CLua \u811A\u672C \u2192 \u5B9E\u673A\u811A\u672C\u540C\u6B65\u300D\u66F4\u65B0\u6E38\u620F\u6587\u4EF6\uFF1B\u4E0D\u8981\u91CD\u65B0\u5BFC\u5165 GIA\uFF0C\u4E5F\u4E0D\u8981\u64C5\u81EA\u590D\u5236\u5230\u6E38\u620F\u76EE\u5F55\u3002":"Tell the user to reload this save and use Lua Scripts \u2192 Sync Scripts to Game. Do not reimport GIA or copy files into the game directory without authorization.","\u5B58\u6863\u5DF2\u4FDD\u5B58\uFF0C\u63D0\u793A\u8BCD\u5DF2\u590D\u5236\uFF0C\u5305\u542B\u5B8C\u6574\u6620\u5C04\u7684\u8BFB\u53D6\u65B9\u5F0F\u3002\u7C98\u8D34\u7ED9 AI\uFF1B\u5904\u7406\u540E\u91CD\u65B0\u8F7D\u5165\u5B58\u6863\u3002":"Save written and task copied, including instructions for reading the full mapping. Paste it into the AI chat, then reload the save when finished.","\u5B58\u6863\u5DF2\u4FDD\u5B58\u3002\u526A\u8D34\u677F\u4E0D\u53EF\u7528\uFF0C\u53EF\u4ECE\u4E0B\u65B9\u6587\u672C\u6846\u624B\u52A8\u590D\u5236\u63D0\u793A\u8BCD\u3002":"Save written. Clipboard access is unavailable; copy the task from the text box below.","\u56FE\u7247 {0} \u5DF2\u91CD\u65B0\u4E0B\u8F7D\uFF1B\u540C\u6E90\u8BD5\u73A9\u9875\u4F1A\u540C\u6B65\u5237\u65B0\u3002":"Image {0} downloaded again. Playtest pages on this origin will refresh it too.","{0}\u56FE\u7247":"{0} Image","{0}\u5DF2\u521B\u5EFA\u5E76\u7ED1\u5B9A\uFF1B\u53EF\u5728\u63A7\u4EF6\u6811\u4E2D\u7EE7\u7EED\u7F16\u8F91\u56FE\u7247\u3002":"Created and assigned {0}. Edit the image in the control tree.","Lua \u811A\u672C\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863":"Lua script saved to the current save",\u670D\u52A1\u7AEF\u903B\u8F91\u5DF2\u4FDD\u5B58\u5230\u5F53\u524D\u5B58\u6863:"Server logic saved to the current save",\u5DF2\u65B0\u5EFA\u811A\u672C\u5E76\u6302\u8F7D\u5230\u8BE5\u63A7\u4EF6:"Script created and attached to this control","\u5DF2\u65B0\u5EFA\u811A\u672C\uFF0C\u53EF\u7F16\u8F91\u8DEF\u5F84\u3001\u6E90\u7801\u548C\u6302\u8F7D\u76EE\u6807":"Script created. Edit its path, source, and attachment target.",\u811A\u672C\u5DF2\u5220\u9664:"Script deleted","\u5DF2\u89E3\u9664\u6302\u8F7D\uFF0C\u811A\u672C\u4ECD\u4FDD\u7559\u5728\u5B58\u6863\u4E2D":"Script detached and kept in the save",\u5DF2\u6302\u8F7D\u5230\u5F53\u524D\u63A7\u4EF6:"Attached to the current control","\u5DF2\u5207\u6362\u5230\u5B58\u6863\u5185\u7684{0}":"Switched to {0} in this save","{0}\u6A21\u677F":"{0} Template","\u5DF2\u65B0\u589E{0}\u6A21\u677F":"Created a {0} template","\u5DF2\u6DFB\u52A0{0}\u5B50\u63A7\u4EF6":"Added a {0} child control","\u5DF2\u5BFC\u51FA {0} \u4E2A GIA \u6587\u4EF6\uFF08{1}\uFF09\uFF1B\u82E5\u6D4F\u89C8\u5668\u62E6\u622A\u591A\u6587\u4EF6\u4E0B\u8F7D\uFF0C\u8BF7\u5141\u8BB8\u540E\u91CD\u8BD5\u3002":"Exported {0} GIA files ({1}). If downloads are blocked, allow multiple downloads and retry.","\u5DF2\u5BFC\u51FA {0}\uFF1B\u8BF7\u67E5\u770B\u4E0A\u65B9\u5BFC\u51FA\u8BF4\u660E\u3002":"Exported {0}. Review the export notes above.","\u5DF2\u5BFC\u51FA {0}":"Exported {0}","\u5DF2\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6 {0}":"Loaded {0} from the workspace","\u4EC5\u652F\u6301 .json\u3001.gia \u6216 .lua \u6587\u4EF6":"Only .json, .gia, and .lua files are supported","\u5DF2\u5BFC\u5165 {0}":"Imported {0}","\u5DF2\u4FDD\u5B58\u5230 {0}":"Saved to {0}","\u6B63\u5728\u8F7D\u5165\u5343\u661F\u6C99\u7BB1\u2026":"Loading Miliastra Sandbox\u2026","\u5DF2\u5207\u6362\u5230{0}":"Switched to {0}",\u4FDD\u5B58\u5230\u5DE5\u4F5C\u533A:"Save to Workspace",\u5B58\u6863\u76F8\u5BF9\u8DEF\u5F84:"Save path (relative to workspace)",\u53D6\u6D88:"Cancel",\u4FDD\u5B58:"Save",\u5DE5\u4F5C\u533A\u672A\u7ED1\u5B9A:"No workspace bound",\u5C1A\u672A\u5BFC\u5165\u6587\u4EF6:"No file imported","\u5B58\u6863\uFF1A{0}":"Save: {0}","\u5DE5\u4F5C\u533A\uFF1A{0} \xB7 \u5F53\u524D\u8D44\u4EA7\uFF1A{1}":"Workspace: {0} \xB7 Active asset: {1}",\u672A\u7ED1\u5B9A:"Unbound",UI\u63A7\u4EF6:"UI Controls",\u76EE\u6807\u8BBE\u5907:"Target device",\u5C4F\u5E55\u6BD4\u4F8B:"Aspect ratio",\u753B\u5E03\u7F29\u653E:"Canvas zoom",\u9002\u5E94:"Fit","\u670D\u52A1\u7AEF\u903B\u8F91\uFF1A\u76D1\u542C\u4FE1\u53F7 / \u81EA\u5B9A\u4E49\u53D8\u91CF / \u73A9\u5BB61-8 \u56DE\u4F20":"Server logic: signals / custom variables / Player1\u20138 responses","Lua \u811A\u672C\u8D44\u4EA7\u7F16\u8F91":"Lua script asset editor",\u4FDD\u5B58\u5B8C\u6574\u5B58\u6863\u5230\u5DE5\u4F5C\u533A:"Save the complete project to the workspace",\u4FDD\u5B58\u5B58\u6863:"Save Project",\u4ECE\u5DE5\u4F5C\u533A\u62C9\u53D6\u5B58\u6863:"Load a save from the workspace","\u2913 \u5DE5\u4F5C\u533A\u5B58\u6863":"\u2913 Workspace Saves","\u672A\u53D1\u73B0 qxqy-simulator-save":"No qxqy-simulator-save found",\u5148\u7ED1\u5B9A\u4F1A\u8BDD\u5DE5\u4F5C\u533A:"Bind a session workspace first","\u5BFC\u5165\u5B58\u6863\u3001\u5355\u9879 UI \u8D44\u4EA7\u6216 Lua":"Import a save, individual UI asset, or Lua script","\u21E7 \u5BFC\u5165":"\u21E7 Import",\u5BFC\u51FA\u683C\u5F0F:"Export format","\u21E9 \u5BFC\u51FA":"\u21E9 Export","\u8D44\u4EA7\u5305 JSON\uFF08\u4E09\u7C7B\u5408\u4E00\uFF09":"Complete Save JSON (all three asset types)","\u8D44\u4EA7\u5305 GIA\uFF08\u5DF2\u6539\u52A8\u9879\uFF09":"Asset Bundle GIA (modified assets)","\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\uFF08\u63A7\u4EF6+\u811A\u672C\uFF09":"Combined GIA (controls + scripts)","\u5F53\u524D\u754C\u9762\uFF08\u5DE6\u680F\u6B63\u5728\u770B\u7684\u90A3\u68F5\u6811\uFF09":"Current UI (the tree shown on the left)","\u5F53\u524D\u754C\u9762 Authoring JSON":"Current UI Authoring JSON","\u5F53\u524D\u754C\u9762 GIA":"Current UI GIA",\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F:"Server Control Template","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\uFF08\u4EC5\u5F53\u5DE6\u680F\u5207\u5230\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\u65F6\u624D\u662F\u9875\u9762\u5185\u5BB9\uFF09":"Client Control Templates (shown in the Client UI tab)","Lua \u811A\u672C":"Lua Scripts","\u811A\u672C\u5305 JSON\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle JSON (all scripts)","\u811A\u672C\u5305 GIA\uFF08\u5168\u90E8\u811A\u672C\uFF09":"Script Bundle GIA (all scripts)","\u6253\u5F00\u8BD5\u73A9\uFF1B\u65B0\u7A97\u53E3\u4E0D\u53EF\u7528\u65F6\u5728\u5E94\u7528\u5185\u8BD5\u73A9":"Open a playtest; use an embedded view if new windows are unavailable","\u6B63\u5728\u51C6\u5907\u2026":"Preparing\u2026","\u25B7 \u8BD5\u73A9 \u2197":"\u25B7 Playtest \u2197",\u91CD\u65B0\u8F7D\u5165:"Reload",\u7F16\u8F91\u9875\u9762:"Editor page","UI \u7F16\u8F91":"UI Editor","\u4E00\u4E2A\u5B58\u6863 \xB7 \u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F + \u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F + Lua \u811A\u672C + \u670D\u52A1\u7AEF\u903B\u8F91":"One save \xB7 Server Control Templates + Client Control Templates + Lua Scripts + Server Logic","\u4E0A\u6B21\u5BFC\u51FA\u8BF4\u660E\uFF08{0} \u9879\uFF0C\u8BF7\u6838\u5BF9\u5BFC\u5165\u540E\u7684\u6548\u679C\uFF09":"Export notes ({0}; verify the result after import)",\u5173\u95ED\u5BFC\u51FA\u8BF4\u660E:"Close export notes",\u7F16\u8F91\u8D44\u6E90\u7C7B\u578B:"Asset type","\u7F16\u8F91\u5B58\u6863\u5185\u7684\u670D\u52A1\u7AEF UI \u63A7\u4EF6":"Edit the save's server UI controls","UI\u63A7\u4EF6-\u670D\u52A1\u7AEF":"Server UI",\u7F16\u8F91\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Edit the save's client control templates","UI\u63A7\u4EF6-\u5BA2\u6237\u7AEF":"Client UI",\u6A21\u677F\u4E0E\u5B50\u63A7\u4EF6:"Templates and Children",\u63A7\u4EF6\u6811:"Control Tree","{0} \u4E2A\u6A21\u677F \xB7 {1} \u4E2A\u63A7\u4EF6":"{0} templates \xB7 {1} controls","{0} \u4E2A\u8282\u70B9":"{0} nodes",\u641C\u7D22\u6A21\u677F\u6216\u63A7\u4EF6:"Search templates or controls",\u641C\u7D22\u63A7\u4EF6:"Search controls",\u6A21\u677F:"Template",\u6682\u4E0D\u652F\u6301:"Not supported yet","\u5728\u753B\u5E03\u4E0A\u663E\u793A\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Show on canvas (does not change initial visibility)","\u5728\u753B\u5E03\u4E0A\u9690\u85CF\uFF08\u4E0D\u5F71\u54CD\u63A7\u4EF6\u521D\u59CB\u53EF\u89C1\u6027\uFF09":"Hide on canvas (does not change initial visibility)","{0}\u753B\u5E03\u53EF\u89C1\u6027":"Canvas visibility: {0}",\u6CA1\u6709\u5339\u914D\u7684\u63A7\u4EF6:"No matching controls",\u5C42\u7EA7\u4E0E\u6A21\u677F\u8FB9\u754C:"Hierarchy and Templates",\u7236\u7EA7\u63A7\u4EF6:"Parent control",\u5DF2\u63D0\u5347\u4E3A\u53EF\u5B9E\u4F8B\u5316\u9876\u5C42\u6A21\u677F:"Promoted to an instantiable top-level template",\u5DF2\u8C03\u6574\u63A7\u4EF6\u7236\u7EA7:"Control parent changed","\u9876\u5C42\u6A21\u677F\uFF08\u53EF\u5B9E\u4F8B\u5316\uFF09":"Top-level template (instantiable)",\u5728\u540C\u7EA7\u4E2D\u4E0A\u79FB:"Move up among siblings",\u5728\u540C\u7EA7\u4E2D\u4E0B\u79FB:"Move down among siblings","\u8BE5\u8282\u70B9\u4F1A\u5199\u5165\u72EC\u7ACB UIControlTemplate\uFF0C\u53EF\u76F4\u63A5\u4F5C\u4E3A prefabId\u3002":"This node exports as a separate UIControlTemplate and can be used directly as prefabId.","\u5F53\u524D\u4E3A\u7B2C {0} \u5C42\u5B50\u63A7\u4EF6\uFF0C\u4E0D\u4F1A\u5355\u72EC\u6210\u4E3A prefabId\u3002":"This is a depth-{0} child control, not a standalone template for prefabId instantiation.",\u65B0\u589E\u72EC\u7ACB\u53EF\u5B9E\u4F8B\u5316\u6A21\u677F:"Create a separate instantiable template","\u6DFB\u52A0\u5230{0}":"Add to {0}",\u5F53\u524D\u63A7\u4EF6:"Current control",\u65B0\u589E\u9876\u5C42\u6A21\u677F:"Create a top-level template",\u9876\u5C42:"Top Level",\u5B50\u63A7\u4EF6:"Child",\u65B0\u589E:"New",\u6DFB\u52A0:"Add","Lua \u6A21\u677F\u9884\u89C8":"Lua Template Preview",\u754C\u9762\u63A7\u4EF6\u7EC4:"UI Control Group","{0} \xB7 {1}\xD7{2} \xB7 \u5DE6\u4E0B\u539F\u70B9":"{0} \xB7 {1}\xD7{2} \xB7 Bottom-left origin","\u25CF {0}\u7F16\u8F91":"\u25CF Editing {0}",\u63A7\u4EF6:"Control","\u5F53\u524D\uFF1A{0}":"Selected: {0}","GIA \u5BFC\u51FA\u540E\u53EF\u5728 Lua \u4E2D\u6309 prefabId \u5B9E\u4F8B\u5316":"After exporting GIA, instantiate in Lua using prefabId","\u5B57\u6BB5\u5728\u5931\u7126\u6216 Enter \u65F6\u63D0\u4EA4":"Commit fields on blur or Enter","\u4F5C\u8005 B\u7AD9\u4E3B\u9875":"Author's Bilibili profile",\u4F5C\u8005B\u7AD9:"Bilibili",\u53EF\u5B9E\u4F8B\u5316:"Instantiable","\u6A21\u677F\u7D22\u5F15 ":"Template index ","\u63A7\u4EF6 GUID ":"Control GUID ",\u8282\u70B9:"Node",\u57FA\u7840\u5C5E\u6027:"Properties",\u811A\u672C:"Script","\u6B63\u5728\u5237\u65B0\u7D20\u6750\u2026":"Refreshing asset\u2026","\u21BB \u91CD\u65B0\u4E0B\u8F7D\u6B64\u7D20\u6750":"\u21BB Download This Asset Again","\u767D\u540D\u5355\u56FE\u7247\u6309\u9700\u7F13\u5B58\uFF1B\u5237\u65B0\u4F1A\u91CD\u65B0\u8BBF\u95EE\u7D20\u6750\u6E90\u3002":"Supported images are cached on demand. Refreshing downloads them from the asset source.","\u232B \u5220\u9664\u5F53\u524D\u6A21\u677F":"\u232B Delete Template","\u232B \u5220\u9664\u5F53\u524D\u63A7\u4EF6":"\u232B Delete Control",\u8BF7\u9009\u62E9\u4E00\u4E2A\u63A7\u4EF6:"Select a control",'<!doctype html><meta charset="utf-8"><title>\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026</title><p>\u6B63\u5728\u4FDD\u5B58\u9879\u76EE\u5E76\u51C6\u5907\u8BD5\u73A9\u2026</p>':'<!doctype html><meta charset="utf-8"><title>Preparing playtest\u2026</title><p>Saving the project and preparing the playtest\u2026</p>',"\u505C\u6B62\u8BD5\u73A9\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\uFF1A{0}":"Could not stop the playtest. Retry: {0}","\u8BD5\u73A9\u9875\u672A\u80FD\u52A0\u8F7D\uFF0C\u8BF7\u8FD4\u56DE\u7F16\u8F91\u540E\u91CD\u8BD5\u3002":"The playtest page could not load. Return to the editor and retry.",\u8BD5\u73A9\u6B63\u5728\u5173\u95ED:"Closing playtest",\u5185\u5D4C\u8BD5\u73A9:"Embedded Playtest","\u6B63\u5728\u505C\u6B62\u8BD5\u73A9\u2026":"Stopping playtest\u2026","\u6B63\u5728\u8F7D\u5165\u8BD5\u73A9\u2026":"Loading playtest\u2026",\u5173\u95ED\u8BD5\u73A9:"Close Playtest",\u5343\u661F\u6C99\u7BB1\u8BD5\u73A9:"Miliastra Sandbox Playtest",\u672A\u53D8\u5316:"Unchanged","\u3010\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3011":"[Miliastra Sandbox Script Folder]",\u65B0\u589E\u6587\u4EF6:"New file",\u66F4\u65B0\u5DF2\u6709\u6587\u4EF6:"Update existing file","\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u66F4\u65B0":"Identical; no update needed",\u65E0\u6CD5\u590D\u5236:"Cannot copy",\u5B58\u6863\u91CC\u7F16\u8F91\u7684\u4EE3\u7801:"Code edited in the save","\u9879\u76EE\u4E2D\u7684 .lua \u6587\u4EF6":"Project .lua file","\u5B9E\u673A\u811A\u672C\u540C\u6B65 \xB7 {0}":"Sync Scripts to Game \xB7 {0}",\u5DF2\u8BBE\u7F6E\u6587\u4EF6\u5939:"Folders configured",\u5148\u8BBE\u7F6E\u6587\u4EF6\u5939:"Configure folders first","\u628A\u5F53\u524D\u5B58\u6863\u91CC\u7684 Lua \u811A\u672C\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u7528\u4E8E\u6E38\u620F\u5185\u6D4B\u8BD5\u3002\u64CD\u4F5C\u987A\u5E8F\uFF1A\u586B\u5199\u811A\u672C\u4F4D\u7F6E \u2192 \u4FDD\u5B58\u8BBE\u7F6E \u2192 \u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0 \u2192 \u786E\u8BA4\u590D\u5236\u3002":"Copy this save's Lua scripts into Miliastra Sandbox for in-game testing. Set folders \u2192 Save Settings \u2192 Save and Preview Changes \u2192 Confirm Copy.",\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939:"Project script folder","\u4F8B\u5982 workspace/my-game\uFF1B\u4E5F\u53EF\u4EE5\u7559\u7A7A":"e.g. workspace/my-game; may be left blank","\u586B\u5199\u5728\u5DE5\u4F5C\u533A\u91CC\u7684\u4F4D\u7F6E\uFF0C\u4F8B\u5982 workspace/my-game\uFF1B\u7559\u7A7A\u8868\u793A\u4F7F\u7528\u5DE5\u4F5C\u533A\u672C\u8EAB\u3002":"Enter a workspace-relative folder, e.g. workspace/my-game. Leave blank to use the workspace root.",\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939:"Miliastra Sandbox script folder","\u7C98\u8D34\u4EE5 default_import_file \u7ED3\u5C3E\u7684\u5B8C\u6574\u8DEF\u5F84":"Paste the full path ending in default_import_file","\u5173\u5361\u5B58\u653E\u5916\u90E8 Lua \u811A\u672C\u7684\u6587\u4EF6\u5939\uFF0C\u53EF\u70B9\u51FB\u300C\u53D1\u73B0\u672C\u673A\u76EE\u5F55\u300D\u67E5\u627E\u3002\u8BF7\u586B\u5199\u8FD0\u884C\u6A21\u62DF\u5668\u90A3\u53F0\u7535\u8111\u4E0A\u7684\u5B8C\u6574\u8DEF\u5F84\u3002":"The stage's folder for external Lua scripts. Use \u201CFind Local Folders\u201D to locate it. Enter the full path on the simulator host machine.",\u6E38\u620F\u91CC\u7684\u9879\u76EE\u5B50\u6587\u4EF6\u5939:"Project subfolder in the game","\u4E00\u822C\u548C\u201C\u9879\u76EE\u811A\u672C\u6587\u4EF6\u5939\u201D\u586B\u4E00\u6837\u7684\u5185\u5BB9\uFF0C\u4FDD\u7559\u539F\u6765\u7684\u6587\u4EF6\u4F4D\u7F6E\u3002\u7559\u7A7A\u5219\u76F4\u63A5\u653E\u8FDB\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\u3002":"Usually matches the project script folder to preserve file locations. Leave blank to place files directly in the Miliastra Sandbox script folder.",\u590D\u5236\u8DEF\u5F84\u793A\u4F8B:"Copy Path Example","\u590D\u5236\u793A\u4F8B\uFF1A":"Example destination:","\u6E38\u620F\u8D26\u53F7 UID\uFF1A{0} \xB7 \u5173\u5361\u76EE\u5F55\u7F16\u53F7\uFF1A{1}":"Game account UID: {0} \xB7 Stage folder ID: {1}",\u53D1\u73B0\u672C\u673A\u76EE\u5F55:"Find Local Folders","\u6CA1\u6709\u627E\u5230\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\u3002\u53EF\u4EE5\u624B\u52A8\u7C98\u8D34 default_import_file \u6587\u4EF6\u5939\u7684\u5B8C\u6574\u8DEF\u5F84\uFF1B\u5982\u679C\u8FD8\u6CA1\u5BFC\u5165\u811A\u672C\uFF0C\u8BF7\u5148\u5728\u5343\u661F\u6C99\u7BB1\u5B8C\u6210\u5BFC\u5165\u3002":"No game script folder found. Paste the full default_import_file path manually. If you have not imported scripts yet, do so in Miliastra Sandbox first.","\u627E\u5230 {0} \u4E2A\u6E38\u620F\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u8BF7\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361\u3002":"Found {0} game script folders. Select the account and stage to update.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u4FDD\u5B58\u3002\u4E0B\u4E00\u6B65\u70B9\u51FB\u300C\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0\u300D\u3002":"Script folders saved. Next, click \u201CSave and Preview Changes\u201D.",\u6E05\u9664\u8BBE\u7F6E:"Clear Settings","\u5DF2\u6E05\u9664\u811A\u672C\u4F4D\u7F6E\u8BBE\u7F6E\u3002\u6E38\u620F\u91CC\u7684\u811A\u672C\u6587\u4EF6\u4ECD\u7136\u4FDD\u7559\u3002":"Script folder settings cleared. Existing files in the game are kept.",\u9009\u62E9\u8981\u66F4\u65B0\u7684\u8D26\u53F7\u548C\u5173\u5361:"Select the Account and Stage","\u8BF7\u9009\u62E9\u6E38\u620F\u8D26\u53F7\u548C\u5173\u5361\u6587\u4EF6\u5939\u2026":"Select a game account and stage folder\u2026","\u8D26\u53F7 {0} / \u5173\u5361\u76EE\u5F55 {1} \xB7 {2}":"Account {0} / Stage folder {1} \xB7 {2}",\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6:"Simulator save file","\u4F8B\u5982 my-game.save.json":"e.g. my-game.save.json","\u586B\u5199\u5DE5\u4F5C\u533A\u91CC\u7684\u5B58\u6863\u6587\u4EF6\u540D\u6216\u8DEF\u5F84\u3002\u4FDD\u5B58\u8BBE\u7F6E\u65F6\u4F1A\u4E00\u8D77\u4FDD\u5B58\u9879\u76EE\uFF0C\u4E0B\u6B21\u6253\u5F00\u5B58\u6863\u5373\u53EF\u590D\u7528\u3002":"Enter a save filename or path within the workspace. Saving these settings also saves the project so they are available next time.",\u4FDD\u5B58\u5B58\u6863\u5E76\u67E5\u770B\u66F4\u65B0:"Save and Preview Changes","\u8BF7\u5148\u586B\u5199\u5343\u661F\u6C99\u7BB1\u811A\u672C\u6587\u4EF6\u5939\uFF0C\u5E76\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Enter the Miliastra Sandbox script folder and click \u201CSave Settings\u201D first.","\u811A\u672C\u4F4D\u7F6E\u5DF2\u6539\u52A8\uFF0C\u8BF7\u5148\u70B9\u51FB\u300C\u4FDD\u5B58\u8BBE\u7F6E\u300D\u3002":"Script folders changed. Click \u201CSave Settings\u201D first.","\u8BF7\u5148\u586B\u5199\u6A21\u62DF\u5668\u5B58\u6863\u6587\u4EF6\u540D\u3002":"Enter a simulator save filename first.","\u6B63\u5728\u5904\u7406\uFF0C\u8BF7\u7A0D\u5019\u2026":"Working, please wait\u2026",\u811A\u672C\u540C\u6B65\u786E\u8BA4:"Confirm Script Copy","\u672C\u6B21\u66F4\u65B0\u5230\uFF1A{0}":"Destination: {0}","\u8FD9\u4E2A\u5B58\u6863\u8FD8\u6CA1\u6709 Lua \u811A\u672C\u3002\u8BF7\u5148\u5728\u4E0B\u65B9\u6DFB\u52A0\u811A\u672C\uFF0C\u518D\u67E5\u770B\u66F4\u65B0\u3002":"This save has no Lua scripts. Add a script below, then preview the changes.","\u6240\u6709\u811A\u672C\u90FD\u4E0E\u6E38\u620F\u6587\u4EF6\u5939\u91CC\u7684\u5185\u5BB9\u76F8\u540C\uFF0C\u65E0\u9700\u590D\u5236\u3002":"All scripts match the game folder. Nothing to copy.","\u6709\u63A7\u4EF6\u7D22\u5F15\u5C1A\u672A\u540C\u6B65\u5230 Lua\u3002\u8BF7\u5148\u5728\u4E0A\u65B9\u300C\u5168\u91CF\u66FF\u6362\u811A\u672C\u7D22\u5F15\u300D\uFF0C\u6216\u300C\u590D\u5236\u63D0\u793A\u8BCD\u7ED9 AI\u300D\uFF1B\u5904\u7406\u5B8C\u6210\u540E\u518D\u67E5\u770B\u6E38\u620F\u811A\u672C\u66F4\u65B0\u3002":"Some control index changes are not reflected in Lua. Use \u201CReplace All Script Indices\u201D or \u201CCopy Task for AI\u201D above before previewing game script changes.","\u590D\u5236\u7684\u4EE3\u7801\u6765\u81EA\uFF1A{0}":"Code source: {0}","\u65E0\u6CD5\u590D\u5236\uFF1A{0}":"Cannot copy: {0}","\u590D\u5236\u5230\uFF1A{0}":"Copy to: {0}","\u8FD9\u4E2A\u811A\u672C\u5728\u5B58\u6863\u91CC\u548C\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u4E0D\u540C\u3002\u672C\u6B21\u4F1A\u590D\u5236\u5B58\u6863\u91CC\u7684\u4EE3\u7801\uFF1B\u5982\u679C\u8981\u4F7F\u7528\u9879\u76EE\u6587\u4EF6\uFF0C\u8BF7\u70B9\u51FB\u300C\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801\u300D\uFF0C\u7136\u540E\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u3002":"The saved script differs from its project file. This copy uses the saved code. To use the project file instead, choose \u201CUse Project File Code\u201D, then preview changes again.",\u67E5\u770B\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"View Project File Code",\u6539\u7528\u9879\u76EE\u6587\u4EF6\u91CC\u7684\u4EE3\u7801:"Use Project File Code",\u5BF9\u6BD4\u66F4\u65B0\u524D\u540E\u7684\u4EE3\u7801:"Compare Changes",\u6E38\u620F\u91CC\u73B0\u5728\u7684\u4EE3\u7801:"Current Code in the Game","\uFF08\u6E38\u620F\u91CC\u8FD8\u6CA1\u6709\u8FD9\u4E2A\u6587\u4EF6\uFF09":"(This file does not exist in the game yet)",\u672C\u6B21\u8981\u590D\u5236\u7684\u4EE3\u7801:"Code to Copy","\u65B0\u589E\u811A\u672C\u590D\u5236\u540E\uFF0C\u8FD8\u9700\u8981\u5728\u5343\u661F\u6C99\u7BB1\u91CC\u5173\u8054\u5BF9\u5E94\u7684\u811A\u672C\u6587\u4EF6\uFF1B\u9700\u8981\u76F4\u63A5\u8FD0\u884C\u7684\u811A\u672C\u8FD8\u8981\u6302\u5230\u63A7\u4EF6\u4E0A\u3002":"After copying new scripts, link their files in Miliastra Sandbox. Scripts that should run directly must also be attached to controls.","\u5DF2\u9009 {0} \u4E2A\u811A\u672C\uFF0C\u5176\u4E2D {1} \u4E2A\u4F1A\u66FF\u6362\u6E38\u620F\u91CC\u7684\u65E7\u6587\u4EF6\u3002\u66FF\u6362\u524D\u4F1A\u81EA\u52A8\u5907\u4EFD\u65E7\u6587\u4EF6\uFF0C\u6E38\u620F\u91CC\u7684\u5176\u4ED6\u6587\u4EF6\u4F1A\u4FDD\u7559\u3002":"Selected {0} scripts; {1} will replace existing game files. Replaced files are backed up. Other files are kept.",\u8986\u76D6:"Replace",\u6682\u4E0D\u590D\u5236:"Cancel","\u786E\u8BA4\u590D\u5236 {0} \u4E2A\u811A\u672C":"Confirm Copy of {0} Scripts",\u811A\u672C\u5DF2\u590D\u5236\u5230\u5343\u661F\u6C99\u7BB1:"Scripts Copied to Miliastra Sandbox",\u6709\u4E9B\u811A\u672C\u672A\u590D\u5236\u6210\u529F:"Some Scripts Could Not Be Copied","\u4E0B\u4E00\u6B65\uFF1A\u56DE\u5230\u5343\u661F\u6C99\u7BB1\uFF0C\u4FDD\u5B58\u5173\u5361\u5E76\u91CD\u65B0\u8BD5\u73A9\uFF0C\u8BA9\u6E38\u620F\u52A0\u8F7D\u66F4\u65B0\u540E\u7684\u811A\u672C\u3002":"Next: Return to Miliastra Sandbox, save the stage, and start a new playtest to load the updated scripts.","\u8BF7\u6309\u4E0B\u65B9\u63D0\u793A\u5904\u7406\u5931\u8D25\u7684\u6587\u4EF6\uFF0C\u518D\u91CD\u65B0\u67E5\u770B\u66F4\u65B0\u5E76\u590D\u5236\u3002":"Resolve the failed files using the notes below, then preview and copy again.","\u590D\u5236\u65F6\u95F4\uFF1A{0} \xB7 \u65E7\u6587\u4EF6\u5907\u4EFD\u4FDD\u5B58\u5728\uFF1A{1}":"Copied at: {0} \xB7 Backups: {1}",\u6210\u529F:"Success",\u5DF2\u590D\u5236:"Copied",\u672A\u590D\u5236:"Not copied",\u5207\u6362\u5230\u4EAE\u8272\u4E3B\u9898:"Switch to light theme",\u5207\u6362\u5230\u6697\u8272\u4E3B\u9898:"Switch to dark theme",\u5F53\u524D\u5B58\u6863:"Current save","\u5F53\u524D\u8D44\u4EA7\u6CA1\u6709\u63A7\u4EF6\u3002":"This asset has no controls.","\u6253\u5F00\u5B58\u6863\u540E\u663E\u793A\u63A7\u4EF6\u7ED3\u6784\u3002":"Open a save to view its control structure.",\u672A\u9009\u62E9:"None selected",\u7C7B\u578B:"Type",\u6811\u6DF1\u5EA6:"Tree depth",\u7236\u8282\u70B9:"Parent node","\u8BD5\u73A9\u542F\u52A8\u540E\u663E\u793A Lua \u65E5\u5FD7\u3002":"Lua logs appear after starting a playtest.",\u5B58\u6863\u52A0\u8F7D\u5931\u8D25:"Failed to Load Save",\u7B49\u5F85\u5DE5\u4F5C\u533A\u5B58\u6863:"Waiting for a Workspace Save","\u6B63\u5728\u76D1\u542C {0}\u3002":"Watching {0}.","{0}Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"{0}Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.",\u8BD5\u73A9\u5C1A\u672A\u542F\u52A8:"Playtest Not Started","\u9009\u62E9\u8BBE\u5907\u5E76\u70B9\u51FB\u201C\u542F\u52A8\u201D\uFF0C\u5373\u53EF\u8FD0\u884C Lua \u548C\u4EA4\u4E92\u903B\u8F91\u3002":"Select a device and click \u201CStart\u201D to run Lua scripts and interactions.",\u7B49\u5F85\u5B58\u6863:"Waiting for a Save",\u5C1A\u672A\u6253\u5F00\u5B58\u6863:"No save open"," \xB7 \u5DF2\u6682\u505C":" \xB7 Paused","\u7B49\u5F85\u542F\u52A8 Runtime":"Waiting to start Runtime","\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8 \xB7 \u78C1\u76D8\u81EA\u52A8\u5237\u65B0":"Static editor preview \xB7 Refreshes from disk automatically","\u7F16\u8F91\u5668\u753B\u9762\u52A0\u8F7D\u5931\u8D25\u3002":"Failed to load the editor preview.","\u670D\u52A1\u7248\u672C\u672A\u77E5\uFF0C\u8BF7\u66F4\u65B0 Web":"Unknown server version. Update the Web package.",\u5B9E\u65F6\u76D1\u542C\u4E2D:"Live",\u8FDE\u63A5\u4E2D\u65AD:"Disconnected",\u5F00\u542F\u58F0\u97F3:"Enable Sound",\u58F0\u97F3\u5DF2\u5173\u95ED:"Sound Off",\u58F0\u97F3\u5DF2\u5F00\u542F:"Sound On",\u70B9\u51FB\u6216\u5728\u753B\u5E03\u5185\u64CD\u4F5C\u4EE5\u89E3\u9501\u97F3\u6548:"Click or interact with the canvas to enable audio",\u5207\u6362\u9759\u97F3:"Toggle mute","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5F00":"Key Input: On","\u952E\u4F4D\u54CD\u5E94\uFF1A\u5173":"Key Input: Off",\u5DF2\u6253\u5F00\u5B58\u6863:"Save opened",\u5DF2\u91CD\u65B0\u8BFB\u53D6\u78C1\u76D8\u5B58\u6863:"Save reloaded from disk","\u65E5\u5FD7\u5DF2\u5728\u5F53\u524D\u89C6\u56FE\u6E05\u7A7A\u3002":"Logs cleared in this view.",\u6B63\u5728\u91CD\u8FDE:"Reconnecting","\u68C0\u6D4B\u5230\u5B58\u6863\u53D8\u5316\uFF0C\u9884\u89C8\u5DF2\u66F4\u65B0":"Save changed; preview updated",\u9884\u89C8\u5B58\u6863\u5DF2\u6253\u5F00:"Preview save opened","\u624B\u673A 1280\xD7720":"Mobile 1280\xD7720","\u624B\u673A 1560\xD7720":"Mobile 1560\xD7720","\u624B\u673A 1280\xD7960":"Mobile 1280\xD7960",\u540D\u79F0:"Name",\u521D\u59CB\u6FC0\u6D3B:"Initially Active",\u521D\u59CB\u53EF\u89C1\u6027:"Initially Visible",\u53EF\u88AB\u624B\u67C4\u6447\u6746\u5BFC\u822A\u9009\u4E2D:"Selectable by Controller Navigation","\u4F4D\u7F6E X":"Location X","\u4F4D\u7F6E Y":"Location Y","\u5927\u5C0F W":"Width","\u5927\u5C0F H":"Height","\u65CB\u8F6C X":"Rotation X","\u65CB\u8F6C Y":"Rotation Y","\u65CB\u8F6C Z":"Rotation Z",\u540C\u6B65\u4FE1\u606F\u81F3\u6240\u6709\u8BBE\u5907:"Sync Layout Across Devices",\u951A\u70B9\u7C7B\u578B:"Anchor Preset",\u5C45\u4E2D:"Center",\u5DE6\u4E0A:"Top Left",\u4E0A\u65B9:"Top",\u53F3\u4E0A:"Top Right",\u5DE6\u4FA7:"Left",\u53F3\u4FA7:"Right",\u5DE6\u4E0B:"Bottom Left",\u4E0B\u65B9:"Bottom",\u53F3\u4E0B:"Bottom Right",\u53CC\u5411\u62C9\u4F38:"Stretch Both Axes",\u6C34\u5E73\u62C9\u4F38:"Stretch Horizontally",\u5782\u76F4\u62C9\u4F38:"Stretch Vertically",\u81EA\u5B9A\u4E49:"Custom","\u951A\u70B9 Min X":"Anchor Min X","\u951A\u70B9 Min Y":"Anchor Min Y","\u951A\u70B9 Max X":"Anchor Max X","\u951A\u70B9 Max Y":"Anchor Max Y","\u4E2D\u5FC3 X":"Pivot X","\u4E2D\u5FC3 Y":"Pivot Y",\u9694\u79BB\u624B\u67C4\u5BFC\u822A:"Isolate Controller Navigation",\u5C4F\u853D\u6309\u952E\u4E8B\u4EF6\u7A7F\u900F:"Block Key Event Passthrough",\u5C4F\u853D\u533A\u57DF\u5185\u70B9\u51FB\u4E8B\u4EF6\u7A7F\u900F:"Block Click Event Passthrough in Area",\u663E\u793A\u5E38\u9A7B\u5149\u6807:"Show Persistent Cursor",\u5B57\u53F7:"Font Size",\u5B57\u53F7\u81EA\u9002\u5E94:"Auto Font Size",\u6700\u5C0F\u5B57\u53F7:"Minimum Font Size",\u6587\u672C\u8272:"Text Color",\u80CC\u666F\u8272:"Background Color",\u542F\u7528\u63CF\u8FB9:"Enable Outline",\u63CF\u8FB9\u8272:"Outline Color",\u6C34\u5E73\u5BF9\u9F50:"Horizontal Alignment",\u5DE6\u5BF9\u9F50:"Left",\u53F3\u5BF9\u9F50:"Right",\u5782\u76F4\u5BF9\u9F50:"Vertical Alignment",\u9876\u90E8:"Top",\u5E95\u90E8:"Bottom",\u6587\u672C:"Text",\u56FE\u7247\u6E90:"Image Source",\u9759\u6001\u5F15\u7528:"Static Reference",\u5143\u4EF6:"Prefab",\u586B\u5145\u8272:"Fill Color",\u5F00\u542F\u906E\u7F69:"Enable Mask",\u8FB9\u7F18\u7FBD\u5316:"Soft Edge",\u7FBD\u5316\u6A21\u5F0F:"Soft Edge Mode",\u767E\u5206\u6BD4:"Percentage",\u50CF\u7D20:"Pixels","\u7FBD\u5316\u5BBD\u5EA6 X":"Soft Edge Width X","\u7FBD\u5316\u5BBD\u5EA6 Y":"Soft Edge Width Y",\u6C34\u5E73\u7FBD\u5316\u8303\u56F4:"Horizontal Soft Edge Range",\u5782\u76F4\u7FBD\u5316\u8303\u56F4:"Vertical Soft Edge Range",\u6309\u8FDB\u5EA6\u586B\u5145:"Fill by Progress",\u5F62\u72B6:"Shape",\u6A2A\u5411:"Horizontal",\u7EB5\u5411:"Vertical","90\u5EA6\u73AF\u7ED5":"Radial90","180\u5EA6\u73AF\u7ED5":"Radial180","360\u5EA6\u73AF\u7ED5":"Radial360",\u65B9\u5411:"Direction",\u4ECE\u5DE6\u81F3\u53F3:"From Left to Right",\u4ECE\u53F3\u81F3\u5DE6:"From Right to Left",\u4ECE\u4E0B\u81F3\u4E0A:"From Bottom to Top",\u4ECE\u4E0A\u81F3\u4E0B:"From Top to Bottom",\u8D77\u70B9:"Origin",\u8FDB\u5EA6:"Progress",\u906E\u7F69\u533A\u57DF\u53CD\u8F6C:"Invert Mask Area",\u672A\u8BBE\u7F6E:"Not set",\u53EF\u88AB\u5149\u6807\u5C04\u7EBF\u68C0\u6D4B:"Raycast Target",\u6309\u94AE\u662F\u5426\u53EF\u7528:"Interactable",\u4E0D\u53EF\u7528\u72B6\u6001\u8282\u70B9:"Unavailable Status Nodes",\u60AC\u505C\u72B6\u6001\u8282\u70B9:"Hover Status Nodes",\u6309\u4E0B\u72B6\u6001\u8282\u70B9:"Pressed Status Nodes",\u9009\u4E2D\u72B6\u6001\u8282\u70B9:"Selected Status Nodes",\u70B9\u51FB\u97F3\u6548:"Click Sound",\u5F15\u7528\u63A7\u4EF6\u6A21\u677F\u7D22\u5F15:"Referenced Control Template Index",\u5141\u8BB8\u6EDA\u52A8\u4EA4\u4E92:"Enable Scrolling",\u663E\u793A\u6EDA\u52A8\u6761:"Show Scrollbar",\u5217\u8868\u9879\u6A21\u677F\u7D22\u5F15:"Item Template Index",\u6EDA\u52A8\u65B9\u5411:"Scroll Direction",\u6392\u5217\u9650\u5236:"Layout Constraint",\u81EA\u52A8\u6362\u884C:"Automatic Wrapping",\u56FA\u5B9A\u884C\u5217\u6570:"Fixed Row / Column Count",\u6BCF\u884C\u6216\u6BCF\u5217\u6570\u91CF:"Items per Row / Column","\u5217\u8868\u9879\u5927\u5C0F W":"Item Width","\u5217\u8868\u9879\u5927\u5C0F H":"Item Height","\u5217\u8868\u9879\u95F4\u9694 X":"Item Spacing X","\u5217\u8868\u9879\u95F4\u9694 Y":"Item Spacing Y","\u8FB9\u8DDD\u5411\u91CF 1 X":"Padding 1 X","\u8FB9\u8DDD\u5411\u91CF 1 Y":"Padding 1 Y","\u8FB9\u8DDD\u5411\u91CF 2 X":"Padding 2 X","\u8FB9\u8DDD\u5411\u91CF 2 Y":"Padding 2 Y",\u9884\u89C8\u6570\u91CF:"Preview Count",\u952E\u9F20\u6309\u952E:"Keyboard / Mouse Key",\u624B\u67C4\u6309\u952E:"Controller Button",\u52A8\u6548\u7D22\u5F15:"Animation Index",\u5168\u5C4F\u52A8\u6548\u7D22\u5F15:"Fullscreen Animation Index",\u5B8C\u6574\u5EA6:"Support Status","\u8BD5\u73A9\u652F\u6301\u57FA\u7840\u6EDA\u52A8\uFF1B\u6EDA\u52A8\u4EA4\u4E92\u3001\u6EDA\u52A8\u6761\u53CA\u5217\u8868\u914D\u7F6E\u4EE5 JSON/Lua \u4E3A\u51C6\uFF0C\u76F8\u5173 GIA \u5F00\u5173\u6620\u5C04\u5C1A\u672A\u6838\u5B9E\u3002":"Basic scrolling is supported in playtests. Configure interaction, scrollbars, and lists through JSON/Lua; the related GIA flags are not yet verified.","\u672C\u9636\u6BB5\u4EC5\u516C\u5171\u53D8\u6362\uFF0C\u4E1A\u52A1\u69FD\u4E0D\u5B8C\u6574":"Only common transforms are supported at this stage; control-specific fields are incomplete.",\u5173\u5361:"Stage",\u5F53\u524D\u73A9\u5BB6:"Current Player",\u5F53\u524D\u89D2\u8272:"Current Character","\u73A9\u5BB6{0}":"Player {0}","\u89D2\u8272{0}":"Character {0}","\u63A7\u4EF6\u7D22\u5F15\u5FC5\u987B\u662F 1\u20132147483647 \u8303\u56F4\u5185\u7684\u6574\u6570":"Control indices must be integers from 1 to 2147483647","controlGuidChanges \u5FC5\u987B\u662F\u6570\u7EC4":"controlGuidChanges must be an array","controlGuidChanges \u5305\u542B\u65E0\u6548\u6216\u91CD\u590D\u7684\u53D8\u66F4\u8BB0\u5F55":"controlGuidChanges contains invalid or duplicate changes","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 batchId":"controlGuidChanges contains an invalid batchId","controlGuidChanges \u5305\u542B\u65E0\u6548\u7684 scriptSignature":"controlGuidChanges contains an invalid scriptSignature",\u672A\u547D\u540D\u754C\u9762:"Untitled UI",\u672A\u547D\u540D\u754C\u9762\u63A7\u4EF6\u7EC4:"Untitled UI Control Group",\u6574\u5408\u5305\u9700\u8981\u670D\u52A1\u7AEF\u5BA2\u6237\u7AEF\u63A7\u4EF6\u5BB9\u5668\u4E0B\u81F3\u5C11\u6709\u4E00\u4E2A\u6839\u63A7\u4EF6:"A combined bundle requires at least one root control inside the server-side Client Control Container","{0} \xB7 \u6574\u5408\u5305.gia":"{0} \xB7 Combined.gia",\u6302\u8F7D\u76EE\u6807\u5FC5\u987B\u662F\u5B58\u6863\u5185\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F:"Attachment targets must be client controls or client control templates in the save","\u811A\u672C\u4E0D\u5B58\u5728: {0}":"Script not found: {0}",\u4EC5\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6216\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u5141\u8BB8\u4FEE\u6539\u7D22\u5F15:"Only client controls and client control templates support index changes","autoFillClientGuids \u5FC5\u987B\u662F\u5E03\u5C14\u503C":"autoFillClientGuids must be a boolean","\u81EA\u52A8\u586B\u5145\u4EC5\u652F\u6301\u5BA2\u6237\u7AEF\u6A21\u677F\u5217\u8868\uFF1B\u670D\u52A1\u7AEF\u754C\u9762\u7684\u7D22\u5F15\u9700\u5355\u72EC\u586B\u5199":"Autofill is only available for client templates. Enter server UI indices separately.","\u5BA2\u6237\u7AEF\u6A21\u677F\u5B58\u5728\u91CD\u590D\u65E7\u7D22\u5F15\uFF0C\u65E0\u6CD5\u81EA\u52A8\u586B\u5145\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49":"Client templates contain duplicate old indices. Resolve the ambiguity before using autofill.","\u63A7\u4EF6\u7D22\u5F15 {0} \u5DF2\u88AB\u300C{1}\u300D\u5360\u7528\uFF1B\u8BF7\u5148\u586B\u5199\u5B83\u7684\u5B9E\u9645\u7D22\u5F15\u3002\u672C\u6B21\u672A\u4FEE\u6539\u4EFB\u4F55\u7D22\u5F15\u3002":"Control index {0} is already used by \u201C{1}\u201D. Enter its actual index first. No indices were changed.","\u65E7\u7D22\u5F15 {0} \u5728\u591A\u68F5\u8D44\u4EA7\u6811\u4E2D\u91CD\u590D\uFF0C\u65E0\u6CD5\u786E\u5B9A\u6A21\u677F\u5F15\u7528\u5F52\u5C5E\uFF1B\u8BF7\u5148\u6D88\u9664\u6B67\u4E49\u540E\u4FEE\u6539":"Old index {0} appears in multiple asset trees, so the template reference is ambiguous. Resolve it before making changes.","\u8BF7\u660E\u786E\u6307\u5B9A\u5DF2\u6838\u5BF9 Lua \u5F15\u7528\u7684\u6709\u6548\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55 changeIds":"Specify valid changeIds whose Lua references have been reviewed",\u5B58\u6863\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A:"The save name cannot be empty","\u63A7\u4EF6\u7D22\u5F15\u5F85\u6838\u5BF9 Lua \u5F15\u7528\uFF1A{0} / {1} ({2})\uFF1A{3} \u2192 {4}\u3002\u8BF7\u6309\u8BED\u4E49\u66F4\u65B0\u811A\u672C\u4E2D\u7684\u63A7\u4EF6\u7D22\u5F15\u5F15\u7528\uFF0C\u6838\u5BF9\u540E\u786E\u8BA4\u53D8\u66F4\u8BB0\u5F55 {5}\uFF1B\u4E0D\u8981\u5168\u5C40\u66FF\u6362\u540C\u503C\u6570\u5B57\u3002":"Review Lua references for control index change: {0} / {1} ({2}): {3} \u2192 {4}. Update references by meaning, then acknowledge change {5}. Do not globally replace equal numbers.","{0} \xB7 \u8D44\u4EA7\u5305.json":"{0} \xB7 Assets.json","\u670D\u52A1\u5668\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u6A71\u7A97\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default server UI was omitted from the asset bundle GIA.","\u5BA2\u6237\u7AEF\u63A7\u4EF6\u6A21\u677F\u4ECD\u662F\u9ED8\u8BA4\u300CLua\u5B9E\u4F8B\u5316\u9762\u677F\u300D\uFF0C\u672A\u6539\u52A8\u4E14\u5F53\u524D\u672A\u663E\u793A\uFF0C\u5DF2\u4ECE\u8D44\u4EA7\u5305 GIA \u4E2D\u7701\u7565\u3002":"The unchanged, hidden default client control template was omitted from the asset bundle GIA.","\u8D44\u4EA7\u5305 GIA \u6CA1\u6709\u53EF\u5BFC\u51FA\u7684\u5DF2\u6539\u52A8\u9879\uFF1B\u8BF7\u5148\u7F16\u8F91\u5F53\u524D\u754C\u9762\uFF0C\u6216\u6539\u7528\u300C\u5F53\u524D\u754C\u9762 GIA\u300D\u3002":"There are no modified assets to export. Edit the UI first, or use \u201CCurrent UI GIA\u201D.","{0} \xB7 \u811A\u672C.json":"{0} \xB7 Scripts.json","{0} \xB7 \u811A\u672C.gia":"{0} \xB7 Scripts.gia","\u6CA1\u6709\u53EF\u5BFC\u51FA\u7684 Lua \u811A\u672C\uFF0C\u8BF7\u5148\u5728\u201CLua \u811A\u672C\u201D\u9875\u521B\u5EFA":"No Lua scripts to export. Create one on the Lua Scripts page first.","\u5F53\u524D\u670D\u52A1\u5668\u63A7\u4EF6 GIA \u4E0D\u5305\u542B {0} \u4E2A Lua \u811A\u672C\u7684\u6E90\u7801\uFF1B\u8BF7\u4F7F\u7528\u300C\u8D44\u4EA7\u5305 GIA \u6574\u5408\u5305\u300D\uFF0C\u6216\u53E6\u884C\u5BFC\u5165\u811A\u672C\u5305\u5E76\u6838\u5BF9\u6302\u8F7D\u3002":"This server UI GIA does not contain source for {0} Lua scripts. Use \u201CCombined GIA\u201D or import the script bundle separately and check attachments.","JSON \u6587\u4EF6\u65E0\u6548":"Invalid JSON file","\u6574\u5408\u5305\u5DF2\u62C6\u56DE\u300CUI\u63A7\u4EF6-\u670D\u52A1\u7AEF\u300D\u4E0E\u300CUI\u63A7\u4EF6-\u5BA2\u6237\u7AEF\u300D\uFF1B\u5BA2\u6237\u7AEF\u6A21\u677F\u8FB9\u754C\u5DF2\u4FDD\u7559\u3002":"Combined bundle split back into Server UI and Client UI. Client template boundaries were preserved.","\u811A\u672C GUID {0} \u540C\u65F6\u6302\u8F7D\u5230\u591A\u4E2A\u63A7\u4EF6\uFF0C\u5DF2\u4FDD\u7559\u201C{1}\u201D\u76EE\u6807\u3002":"Script GUID {0} was attached to multiple controls. The \u201C{1}\u201D target was kept.",\u670D\u52A1\u7AEF:"Server",\u5BA2\u6237\u7AEF:"Client","\u5355\u8D44\u4EA7 JSON \u7684\u7D22\u5F15\u53D8\u66F4\u8BB0\u5F55\u5FC5\u987B\u5C5E\u4E8E\u5F53\u524D\u5BFC\u5165\u8D44\u4EA7":"Index change records in a single-asset JSON must belong to the imported asset","\u811A\u672C {0} \u8BFB\u53D6\u5931\u8D25: {1}":"Failed to read script {0}: {1}","\u5343\u661F\u6C99\u7BB1 \xB7 \u72EC\u7ACB\u8BD5\u73A9":"Miliastra Sandbox \xB7 Standalone Playtest",\u6A21\u62DF\u5668:"Simulator",\u5207\u6362\u8BBE\u5907\u753B\u5E03:"Switch Device Canvas","\u5207\u6362\u8BBE\u5907\u753B\u5E03\uFF1A\u4EE5\u65B0\u753B\u5E03\u91CD\u5EFA\u8FD0\u884C\u65F6\uFF0CGetUICanvasSize \u4E0E\u9884\u8BBE\u50CF\u7D20\u4E00\u81F4":"Rebuild the runtime for the selected canvas. GetUICanvasSize matches the preset's pixel dimensions.",\u8BD5\u73A9\u4EBA\u6570:"Player count","\u8BD5\u73A9\u4EBA\u6570\uFF1A\u6700\u591A 8 \u4EBA\uFF0C\u6BCF\u4EBA\u4E00\u4EFD\u72EC\u7ACB\u5BA2\u6237\u7AEF":"Up to 8 players, each with a separate client instance",\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2:"Current player view","\u5207\u6362\u5F53\u524D\u73A9\u5BB6\u89C6\u89D2\uFF1A\u8F93\u5165\u3001\u753B\u9762\u548C PlayerSelf \u90FD\u8DDF\u968F\u8BE5\u73A9\u5BB6":"Change the active player for input, rendering, and PlayerSelf",\u8BBE\u5907:"Device","\u51C6\u5907\u4E2D\u2026":"Preparing...",\u8BD5\u73A9\u9875\u9762:"Playtest page",\u8BD5\u73A9:"Playtest",\u65E5\u5FD7:"Logs","\u8F6C\u53D1\u5B98\u65B9\u952E\u4F4D\u7684\u6309\u4E0B/\u62AC\u8D77\u4E8B\u4EF6\uFF08\u542B\u9F20\u6807\u5DE6\u53F3\u952E\uFF09\uFF1B\u5173\u95ED\u4E0D\u5F71\u54CD\u753B\u5E03\u70B9\u51FB":"Forward supported key/button down and up events, including mouse buttons. Turning this off does not disable canvas clicks.",\u70B9\u51FB\u89E3\u9501\u6D4F\u89C8\u5668\u97F3\u6548:"Click to enable browser audio","\u2161 \u6682\u505C\u8FD0\u884C":"\u2161 Pause",\u6682\u505C\u540E\u53EF\u5355\u5E27\u8C03\u8BD5:"Pause to step through individual frames","\u25B7 \u5355\u5E27\u8C03\u8BD5":"\u25B7 Step One Frame","\u25A0 \u7ED3\u675F\u8BD5\u73A9":"\u25A0 Stop Playtest","\u21BB \u91CD\u65B0\u5F00\u59CB":"\u21BB Restart",\u5207\u6362\u4EAE\u6697\u4E3B\u9898:"Toggle light / dark theme",\u8FD4\u56DE\u7F16\u8F91:"Back to Editor","\u6B63\u5728\u51C6\u5907\u8BD5\u73A9\u2026":"Preparing playtest\u2026",\u8FD0\u884C\u65F6\u573A\u666F\u6811:"Runtime Scene Tree","0 \u8282\u70B9":"0 nodes",\u670D\u52A1\u7AEF\u53D8\u91CF:"Server Variables","0 \u9879":"0 items",\u5BA2\u6237\u7AEF\u811A\u672C\u65E5\u5FD7:"Client Script Logs","\u6700\u8FD1 100 \u6761":"Latest 100 entries",\u670D\u52A1\u7AEF\u65E5\u5FD7:"Server Logs","\u53D8\u91CF / \u4FE1\u53F7":"Variables / signals",\u81EA\u52A8\u6D4B\u7528\u4F8B:"Automated Test Case","\u5148\u8BD5\u73A9\uFF0C\u518D\u4FDD\u5B58\u56DE\u653E":"Play first, then save a replay",'\u65AD\u8A00 JSON \u6570\u7EC4\uFF0C\u4F8B\u5982 [{"kind":"log","contains":"clicked"}]':'JSON assertion array, e.g. [{"kind":"log","contains":"clicked"}]',\u4FDD\u5B58\u7528\u4F8B:"Save Test Case",\u56DE\u653E\u7528\u4F8B:"Replay Test Case","\u25CF \u6B63\u5728\u542F\u52A8":"\u25CF Starting","\u9875\u9762\uFF1A\u8BD5\u73A9":"View: Playtest","\u9875\u9762\uFF1A\u65E5\u5FD7":"View: Logs",\u8BD5\u73A9\u8BF7\u6C42\u5931\u8D25:"Playtest request failed"," \u9879":" items","\u6682\u65E0\u81EA\u5B9A\u4E49\u53D8\u91CF\u3002\u811A\u672C Get/Set \u6216 serverSet \u4E4B\u540E\u4F1A\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"No custom variables yet. They appear after script Get/Set calls or serverSet.","\u5B8C\u6574\u8FD0\u884C\u6811\u8BF7\u7528 Agent \u7684 inspect \u5FEB\u7167\u3002\u821E\u53F0\u6309\u5DE6\u6811\u4E0A\u65B9\u76D6\u4F4F\u4E0B\u65B9\u7ED8\u5236\u3002":"Use an Agent inspect snapshot for the full runtime tree. Items higher in the left tree draw over those below."," \u4E2A\u53EF\u89C1\u56FE\u5143":" visible primitives","\u25B6 \u7EE7\u7EED\u8FD0\u884C":"\u25B6 Resume"," \u4EBA":" players",\u73A9\u5BB6:"Player"," \xB7 \u73A9\u5BB6":" \xB7 Player "," \xB7 \u70B9\u51FB\u8F93\u5165":" \xB7 Click to focus","\u26A0 \u811A\u672C\u6302\u8F7D\u5931\u8D25":"\u26A0 Script attachment failed","\u2161 \u5DF2\u6682\u505C":"\u2161 Paused","\u25CF \u8BD5\u73A9\u8FD0\u884C\u4E2D":"\u25CF Playtest running","\u5DF2\u8BB0\u5F55 ":"Recorded "," \u6B65":" steps","\u26A0 \u8BD5\u73A9\u9519\u8BEF":"\u26A0 Playtest error","\u25A0 \u8BD5\u73A9\u5DF2\u7ED3\u675F\uFF0C\u53EF\u91CD\u65B0\u5F00\u59CB\u6216\u8FD4\u56DE\u7F16\u8F91":"\u25A0 Playtest stopped. Restart or return to the editor.","\u65AD\u8A00\u5FC5\u987B\u662F JSON \u6570\u7EC4":"Assertions must be a JSON array","\u5DF2\u4FDD\u5B58 ":"Saved "," \u6B65 / ":" steps / "," \u6761\u65AD\u8A00":" assertions",\u56DE\u653E\u901A\u8FC7:"Replay passed","\u56DE\u653E\u5931\u8D25 @":"Replay failed @","\u7F3A\u5C11\u4F1A\u8BDD ID":"Missing session ID","\u5343\u661F\u6A21\u62DF\u5668 \xB7 Live Preview":"Miliastra Simulator \xB7 Live Preview","\u5343\u661F\u6A21\u62DF\u5668 \xB7 \u7F16\u8F91\u5DE5\u4F5C\u53F0":"Miliastra Simulator \xB7 Editor","Web Preview \xB7 \u5B9E\u65F6\u9884\u89C8":"Web Preview \xB7 Live Preview",\u5DE5\u4F5C\u533A\u5B58\u6863:"Workspace Saves",\u91CD\u65B0\u8BFB\u53D6\u5B58\u6863:"Reload save from disk","\u7F16\u8F91\u5DE5\u4F5C\u53F0 \u2197":"Open Editor \u2197",\u6B63\u5728\u8FDE\u63A5:"Connecting",\u9884\u89C8\u6A21\u5F0F:"Preview mode",\u7F16\u8F91\u5668:"Editor",\u8D44\u4EA7:"Asset","\u670D\u52A1\u7AEF UI":"Server UI",\u5BA2\u6237\u7AEF\u6A21\u677F:"Client Templates","\u25B6 \u542F\u52A8":"\u25B6 Start","\u2161 \u6682\u505C":"\u2161 Pause","\u25B7 \u7EE7\u7EED":"\u25B7 Resume","+ 1 \u5E27":"+ 1 Frame","\u25A0 \u505C\u6B62":"\u25A0 Stop",\u6A21\u62DF\u5668\u9884\u89C8\u753B\u5E03:"Simulator preview canvas","Codex \u4FDD\u5B58 qxqy-simulator-save JSON \u540E\u4F1A\u81EA\u52A8\u51FA\u73B0\u5728\u8FD9\u91CC\u3002":"Saves appear here automatically when Codex writes a qxqy-simulator-save JSON file.","\u6B63\u5728\u66F4\u65B0\u753B\u9762\u2026":"Updating preview\u2026",\u7F16\u8F91\u5668\u9759\u6001\u9884\u89C8:"Static Editor Preview",\u9884\u89C8\u4FE1\u606F:"Preview Details",\u5F53\u524D\u8282\u70B9:"Selected Node",\u753B\u5E03:"Canvas",\u6E05\u7A7A:"Clear",\u9884\u89C8\u8FDE\u63A5:"Preview Connection","\u6B63\u5728\u8FDE\u63A5\u670D\u52A1\u2026":"Connecting to the service\u2026","\u5F53\u524D\u5B58\u6863\u4FDD\u5B58\u540E\u81EA\u52A8\u5237\u65B0\uFF1B\u9996\u6B21\u5B58\u6863\u4F1A\u81EA\u52A8\u53D1\u73B0\u3002\u5207\u6362\u5176\u4ED6\u5B58\u6863\u8BF7\u4F7F\u7528\u9876\u90E8\u5217\u8868\u6216 MCP \u9884\u89C8\u5DE5\u5177\u3002":"Refreshes automatically when the current save changes, and discovers the first save. Switch saves using the list above or the MCP preview tool.","\u68C0\u67E5\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u8FDE\u63A5\u540E\u91CD\u8BD5\u3002":"Update check failed. Check your network connection and retry.",\u53D1\u73B0\u65B0\u7248\u672C:"A new version is available",\u5F53\u524D\u5DF2\u662F\u6700\u65B0\u7248\u672C:"You are up to date",\u5F53\u524D\u7248\u672C\u6BD4\u516C\u5F00\u7248\u672C\u66F4\u65B0:"Your version is newer than the public release",\u6682\u672A\u627E\u5230\u6B64\u5B89\u88C5\u5305\u7684\u6B63\u5F0F\u7248\u672C:"No stable release found for this package",\u754C\u9762\u8BED\u8A00:"Interface language","\u81EA\u52A8\uFF08\u7CFB\u7EDF\u8BED\u8A00\uFF09":"Auto (system language)","\u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026":"Checking for updates\u2026",\u68C0\u67E5\u66F4\u65B0:"Check for Updates",\u8054\u7CFB\u4F5C\u8005:"Contact Author",QQ\u7FA4\u53F71007538100:"QQ Group: 1007538100","\u4F5C\u8005\u90AE\u7BB1 ":"Email: ","\u5F00\u6E90\u4ED3\u5E93 ":"Source repository: ","\u5F53\u524D\u7248\u672C\uFF1A{0}":"Current version: {0}","\u516C\u5F00\u7248\u672C\uFF1A{0}":"Public version: {0}","\u66F4\u65B0\u540E\u8BF7\u91CD\u542F\u5BBF\u4E3B\u5E76\u5237\u65B0\u7F16\u8F91\u5668\u4E0E\u8BD5\u73A9\u9875\u3002":"After updating, restart the host and refresh the editor and playtest pages.",\u67E5\u770B\u66F4\u65B0\u8BF4\u660E:"View Release Notes",\u4E0B\u8F7D\u66F4\u65B0\u5305:"Download Update",\u91CD\u8BD5:"Retry","\u8BF7\u9009\u62E9\u81EA\u52A8\u67E5\u627E\u3001\u6307\u5B9A\u6587\u4EF6\u6216\u7CFB\u7EDF\u5B57\u4F53":"Choose automatic discovery, a local file, or the system font",\u5B57\u4F53\u8DEF\u5F84\u8FC7\u957F:"The font path is too long",\u8BF7\u586B\u5199\u5B57\u4F53\u6587\u4EF6\u7684\u7EDD\u5BF9\u8DEF\u5F84:"Enter an absolute font file path","\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u5728\u300C\u5B57\u4F53\u8BBE\u7F6E\u300D\u4E2D\u91CD\u65B0\u4FDD\u5B58":"Unable to read local font settings. Save them again in Font Settings.","\u65E0\u6CD5\u4FDD\u5B58\u672C\u673A\u5B57\u4F53\u8BBE\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u914D\u7F6E\u76EE\u5F55\u7684\u5199\u5165\u6743\u9650":"Unable to save local font settings. Check write permissions for the configuration directory.","\u5F53\u524D\u5B57\u4F53\u7531 QXQY_FONT_PATH \u56FA\u5B9A\uFF0C\u8BF7\u79FB\u9664\u8BE5\u73AF\u5883\u53D8\u91CF\u5E76\u91CD\u542F\u540E\u518D\u4F7F\u7528\u524D\u7AEF\u8BBE\u7F6E":"QXQY_FONT_PATH overrides font settings. Remove it and restart before editing settings here.",\u5B57\u4F53\u8BBE\u7F6E\u4EC5\u9650\u672C\u673A\u76F4\u63A5\u8BBF\u95EE:"Font settings require a direct connection from this machine",\u5B57\u4F53\u8BBE\u7F6E\u8FC7\u5927:"Font settings exceed the size limit",\u5343\u661F\u6C99\u7BB1:"Miliastra Sandbox",\u5343\u661F\u5947\u57DF:"Miliastra Wonderland",\u670D\u52A1\u7AEF\u63A7\u4EF6\u6A21\u677F:"Server Control Template",\u670D\u52A1\u7AEF\u63A7\u4EF6:"Server Controls",\u5BA2\u6237\u7AEF\u63A7\u4EF6:"Client Controls","1 \u4EBA":"1 player","{0} \u4EBA":"{0} players"};var zd="qxqy-ui-language",Ul="qxqy-ui-language-change",hi=new Set,f1=i=>["auto","zh","en"].includes(i);function Hd(){try{let i=globalThis.localStorage?.getItem(zd);return f1(i)?i:"auto"}catch{return"auto"}}var go=Hd(),p1=null;function UC(i="auto",t="zh-CN",e=""){return i==="zh"||i==="en"?i:/^(?:zh|cmn|yue|wuu|hak|nan|gan|hsn)(?:[-_]|$)/i.test(e||t)?"zh":"en"}var m1=()=>go,Ll=()=>p1||{language:typeof window>"u"?"zh-CN":globalThis.navigator?.language||globalThis.navigator?.languages?.[0]||Intl.DateTimeFormat().resolvedOptions().locale||"en",source:"browser"},Ol=()=>UC(go,Ll().language);async function g1(i,t=globalThis.fetch){try{let e=await t(i,{method:"POST",mode:"same-origin",credentials:"same-origin",cache:"no-store",headers:{"content-type":"application/json"},body:"{}",signal:AbortSignal.timeout(4e3)});if(e.ok){let r=await e.json(),s=r.ok?r.value:null;if(typeof s?.language=="string"&&s.language.length<=80){let n=Intl.getCanonicalLocales(s.language.replaceAll("_","-"))[0];if(n){p1={language:n,source:s.source||"host"};for(let o of hi)o()}}}}catch{}return Ll()}function os(i){if(!(i?.type==="storage"&&i.key!==zd&&i.key!==null)){go=i?.type===Ul?i.detail:Hd();for(let t of hi)t()}}function x1(i){if(f1(i)){go=i;try{globalThis.localStorage?.setItem(zd,i)}catch{}if(typeof window<"u")window.dispatchEvent(new CustomEvent(Ul,{detail:i}));else for(let t of hi)t()}}function _1(i){return!hi.size&&typeof window<"u"&&(go=Hd(),window.addEventListener("storage",os),window.addEventListener(Ul,os),window.addEventListener("languagechange",os)),hi.add(i),()=>{hi.delete(i),!hi.size&&typeof window<"u"&&(window.removeEventListener("storage",os),window.removeEventListener(Ul,os),window.removeEventListener("languagechange",os))}}var Fl=(i,t)=>i.replace(/\{(\d+)\}/g,(e,r)=>r<t.length?String(t[r]??""):e),DC=Object.entries(Gl).filter(([i])=>/\{\d+\}/.test(i)).map(([i,t])=>{let e=[],r=i.split(/(\{\d+\})/).map(s=>{let n=s.match(/^\{(\d+)\}$/);return n?(e.push(Number(n[1])),"([\\s\\S]*?)"):s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}).join("");return{expression:new RegExp(`^${r}$`),value:t,slots:e}});function LC(i,t,...e){if(Array.isArray(t)&&Object.hasOwn(t,"raw")&&(t=t.reduce((r,s,n)=>r+(n?`{${n-1}}`:"")+s,"")),typeof t!="string")return t;if(i!=="en")return Fl(t,e);if(Object.hasOwn(Gl,t))return Fl(Gl[t],e);if(!e.length&&/[\p{Script=Han}]/u.test(t))for(let r of DC){let s=r.expression.exec(t);if(!s)continue;let n=[];return r.slots.forEach((o,a)=>{n[o]=s[a+1]}),Fl(r.value,n)}return Fl(t,e)}var Dl=(i,...t)=>LC(Ol(),i,...t);function y1(i=document){for(let t of i.querySelectorAll("[data-i18n]"))t.textContent=Dl(t.dataset.i18n);for(let t of["title","placeholder","aria-label"])for(let e of i.querySelectorAll(`[data-i18n-${t}]`))e.setAttribute(t,Dl(e.getAttribute(`data-i18n-${t}`)));i===document&&(document.documentElement.lang=Ol()==="zh"?"zh-CN":"en")}var BY=Object.freeze({aqua:"00ffff",black:"000000",blue:"0000ff",brown:"a52a2a",cyan:"00ffff",darkblue:"0000a0",fuchsia:"ff00ff",green:"008000",grey:"808080",lightblue:"add8e6",lime:"00ff00",magenta:"ff00ff",maroon:"800000",navy:"000080",olive:"808000",orange:"ffa500",purple:"800080",red:"ff0000",silver:"c0c0c0",teal:"008080",white:"ffffff",yellow:"ffff00"});function b1(i,t){return`${i.italic?"italic ":""}${i.bold?"bold ":""}${i.fontSize}px ${t}`}function v1(i){let t=Number(i)>>>0;return`rgba(${t>>>16&255},${t>>>8&255},${t&255},${(t>>>24)/255})`}function OC(i,t,e,r,s=ci){let n=t.textLayout;if(!n?.richLines||e<=0||r<=0)return;let o=t.horizontalAlignment==="Right"?1:t.horizontalAlignment==="Middle"?.5:0,a=t.verticalAlignment==="Bottom"?1:t.verticalAlignment==="Middle"?.5:0,l=t.kind==="textwindow"?t.scroll:null,c=n.visibleLineCount??n.richLines.length,h=n.visibleContentHeight??n.contentHeight,u=t.kind==="textwindow"&&n.contentHeight>r?-(l?.offset||0):a*(r-h);i.save(),i.beginPath(),i.rect(0,0,e,r),i.clip(),i.textAlign="left",i.textBaseline="alphabetic",i.lineJoin="round",i.strokeStyle=v1(t.outlineColor??4278190080);for(let d=0;d<c;d++){let f=n.richLines[d],m=u+f.top;if(m+f.height<0||m>r)continue;let g=2+o*(n.textWidth-f.width);for(let _ of f.runs)i.font=b1(_,s||ci),i.fillStyle=v1(_.color??t.fontColor??4294967295),t.enableOutline&&(i.lineWidth=Math.max(2,_.fontSize*.12),i.strokeText(_.text,g+_.x,m+f.baseline)),i.fillText(_.text,g+_.x,m+f.baseline)}i.restore()}function Wd(i,t,e,r,s,n=1){let o=Math.min(Math.max(1,n),4096/Math.max(1,e,r)),a=Math.max(1,Math.ceil(e*o)),l=Math.max(1,Math.ceil(r*o));i.width!==a&&(i.width=a),i.height!==l&&(i.height=l);let c=i.getContext("2d");c.setTransform(1,0,0,1,0,0),c.clearRect(0,0,a,l),c.save(),c.scale(a/(e>0?e:1),l/(r>0?r:1)),OC(c,t,e,r,s),c.restore()}Cu();Bu();Iu();fu();Oa();Vr();pr();var S1={aVertex:(i,t,e,r,s)=>{let n=0,o=0,a=0,l=0;for(let c=0;c<i.length;++c){let h=i[c],u=h.texture,d=h.scaleX,f=h.scaleY,m=h.anchorX,g=h.anchorY,_=u.trim,x=u.orig;_?(o=_.x-m*x.width,n=o+_.width,l=_.y-g*x.height,a=l+_.height):(n=x.width*(1-m),o=x.width*-m,a=x.height*(1-g),l=x.height*-g),t[r]=o*d,t[r+1]=l*f,t[r+s]=n*d,t[r+s+1]=l*f,t[r+s*2]=n*d,t[r+s*2+1]=a*f,t[r+s*3]=o*d,t[r+s*3+1]=a*f,r+=s*4}},aPosition:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n],a=o.x,l=o.y;t[r]=a,t[r+1]=l,t[r+s]=a,t[r+s+1]=l,t[r+s*2]=a,t[r+s*2+1]=l,t[r+s*3]=a,t[r+s*3+1]=l,r+=s*4}},aRotation:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].rotation;t[r]=o,t[r+s]=o,t[r+s*2]=o,t[r+s*3]=o,r+=s*4}},aUV:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].texture.uvs;t[r]=o.x0,t[r+1]=o.y0,t[r+s]=o.x1,t[r+s+1]=o.y1,t[r+s*2]=o.x2,t[r+s*2+1]=o.y2,t[r+s*3]=o.x3,t[r+s*3+1]=o.y3,r+=s*4}},aColor:(i,t,e,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].color;e[r]=o,e[r+s]=o,e[r+s*2]=o,e[r+s*3]=o,r+=s*4}}};function w1(i){let t=Object.values(i),e=t.filter(s=>s.dynamic),r=t.filter(s=>!s.dynamic);return{dynamicUpdate:T1(e),staticUpdate:T1(r)}}function T1(i){let t=0,e=[];for(let r=0;r<i.length;r++){let s=i[r],n=Jt(s.format).stride/4;t+=n,e.push({stride:n,updateFunction:s.updateFunction||S1[s.attributeName]})}return(r,s,n)=>{let o=0;for(let a=0;a<e.length;a++){let l=e[a];l.updateFunction(r,s,n,o,t),o+=l.stride}}}Cn();me();$t();Ar();Eu();function C1(){return NC}function NC(i,t,e){let r=i.gl,s=i.shader,n=s._getProgramData(t.glProgram);for(let o in t.groups){let a=t.groups[o];for(let l in a.resources){let c=a.resources[l];if(c instanceof Ct)c.ubo?s.bindUniformBlock(c,t._uniformBindMap[o][l],e.blockIndex++):s.updateUniformGroup(c);else if(c instanceof He)s.bindUniformBlock(c,t._uniformBindMap[o][l],e.blockIndex++);else if(c instanceof st||c instanceof Ki){i.texture.bind(c,e.textureCount);let h=t._uniformBindMap[o][l],u=n.uniformData[h];u&&(u.value!==e.textureCount&&r.uniform1i(u.location,e.textureCount),e.textureCount++)}else c instanceof ce}}}Za();Na();wn();var E1=[(i,t,e,r,s)=>{let n=r[i].toArray(!0);t[e]=n[0],t[e+1]=n[1],t[e+2]=n[2],t[e+4]=n[3],t[e+5]=n[4],t[e+6]=n[5],t[e+8]=n[6],t[e+9]=n[7],t[e+10]=n[8]},(i,t,e,r,s)=>{s=r[i],t[e]=s.x,t[e+1]=s.y,t[e+2]=s.width,t[e+3]=s.height},(i,t,e,r,s)=>{s=r[i],t[e]=s.x,t[e+1]=s.y},(i,t,e,r,s)=>{s=r[i],t[e]=s.red,t[e+1]=s.green,t[e+2]=s.blue,t[e+3]=s.alpha},(i,t,e,r,s)=>{s=r[i],t[e]=s.red,t[e+1]=s.green,t[e+2]=s.blue}],P1={f32:(i,t,e,r,s)=>{t[e]=s},i32:(i,t,e,r,s)=>{t[e]=s},"vec2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1]},"vec3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2]},"vec4<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat2x2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat3x3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+4]=s[3],t[e+5]=s[4],t[e+6]=s[5],t[e+8]=s[6],t[e+9]=s[7],t[e+10]=s[8]},"mat4x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<16;n++)t[e+n]=s[n]},"mat3x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/3|0)*4+n%3]=s[n]}},M1={f32:(i,t,e,r,s)=>{t[e]=s},i32:(i,t,e,r,s)=>{t[e]=s},"vec2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1]},"vec3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2]},"vec4<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+3]=s[3]},"mat2x2<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+4]=s[2],t[e+5]=s[3]},"mat3x3<f32>":(i,t,e,r,s)=>{t[e]=s[0],t[e+1]=s[1],t[e+2]=s[2],t[e+4]=s[3],t[e+5]=s[4],t[e+6]=s[5],t[e+8]=s[6],t[e+9]=s[7],t[e+10]=s[8]},"mat4x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<16;n++)t[e+n]=s[n]},"mat3x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<6;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<8;n++)t[e+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,t,e,r,s)=>{for(let n=0;n<12;n++)t[e+(n/3|0)*4+n%3]=s[n]}};function A1(i){return k1(i,M1,t=>{let e=Math.max(Wn[t.data.type]/16,1),r=t.data.value.length/t.data.size,s=(4-r%4)%4;return(n,o,a,l,c)=>{let h=0;for(let u=0;u<t.data.size*e;u++){for(let d=0;d<r;d++)o[a++]=c[h++];a+=s}}})}function R1(i){return k1(i,P1,t=>{let{size:e,align:r}=Zr[t.data.type],s=(e-r)/4;return(n,o,a,l,c)=>{let h=0;for(let u=0;u<t.data.size*(e/4);u++){for(let d=0;d<e/4;d++)o[a++]=c[h++];a+=s}}})}function k1(i,t,e){let r={};for(let s in i){let n=i[s],o=n.data,a=!1;r[o.name]={offset:n.offset/4,func:null};for(let l=0;l<de.length;l++){let c=de[l];if(o.type===c.type&&c.test(o)){r[o.name].func=E1[l],a=!0;break}}a||(o.size===1?r[o.name].func=t[o.type]:r[o.name].func=e(n))}return(s,n,o)=>{for(let a in r)r[a].func(a,n,o+r[a].offset,s,s[a])}}wn();var B1={f32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1f(s[i].location,r))},"vec2<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2f(s[i].location,r[0],r[1]))},"vec3<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3f(s[i].location,r[0],r[1],r[2]))},"vec4<f32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4f(s[i].location,r[0],r[1],r[2],r[3]))},i32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1i(s[i].location,r))},"vec2<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<i32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},u32(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1ui(s[i].location,r))},"vec2<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2ui(s[i].location,r[0],r[1]))},"vec3<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3ui(s[i].location,r[0],r[1],r[2]))},"vec4<u32>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4ui(s[i].location,r[0],r[1],r[2],r[3]))},bool(i,t,e,r,s,n,o){e!==r&&(t.value=r,o.uniform1i(s[i].location,r))},"vec2<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1])&&(e[0]=r[0],e[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<bool>"(i,t,e,r,s,n,o){(e[0]!==r[0]||e[1]!==r[1]||e[2]!==r[2]||e[3]!==r[3])&&(e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},"mat2x2<f32>"(i,t,e,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,t,e,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,t,e,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)}},I1={f32(i,t,e,r,s,n,o){o.uniform1fv(s[i].location,r)},"vec2<f32>"(i,t,e,r,s,n,o){o.uniform2fv(s[i].location,r)},"vec3<f32>"(i,t,e,r,s,n,o){o.uniform3fv(s[i].location,r)},"vec4<f32>"(i,t,e,r,s,n,o){o.uniform4fv(s[i].location,r)},"mat2x2<f32>"(i,t,e,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,t,e,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,t,e,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)},i32(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<i32>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<i32>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<i32>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)},u32(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<u32>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<u32>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<u32>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)},bool(i,t,e,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<bool>"(i,t,e,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<bool>"(i,t,e,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<bool>"(i,t,e,r,s,n,o){o.uniform4iv(s[i].location,r)}},G1=[(i,t,e,r,s,n,o)=>{o.uniformMatrix3fv(s[i].location,!1,n[i].toArray(!0))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.x||e[1]!==r.y||e[2]!==r.width||e[3]!==r.height)&&(e[0]=r.x,e[1]=r.y,e[2]=r.width,e[3]=r.height,o.uniform4f(s[i].location,r.x,r.y,r.width,r.height))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.x||e[1]!==r.y)&&(e[0]=r.x,e[1]=r.y,o.uniform2f(s[i].location,r.x,r.y))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.red||e[1]!==r.green||e[2]!==r.blue||e[3]!==r.alpha)&&(e[0]=r.red,e[1]=r.green,e[2]=r.blue,e[3]=r.alpha,o.uniform4f(s[i].location,r.red,r.green,r.blue,r.alpha))},(i,t,e,r,s,n,o)=>{e=s[i].value,r=n[i],(e[0]!==r.red||e[1]!==r.green||e[2]!==r.blue)&&(e[0]=r.red,e[1]=r.green,e[2]=r.blue,o.uniform3f(s[i].location,r.red,r.green,r.blue))}];function F1(i,t){let e={};for(let r in i.uniformStructures){if(!t[r])continue;let s=i.uniformStructures[r],n=!1;for(let o=0;o<de.length;o++){let a=de[o];if(s.type===a.type&&a.test(s)){e[r]=G1[o],n=!0;break}}if(!n){let o=s.size===1?B1:I1;e[r]=o[s.type]}}return(r,s,n)=>{let o=n.gl;for(let a in e){let l=s[a],c=r[a],h=r[a].value;e[a](a,c,h,l,r,s,o)}}}function zC(){Object.assign(Te.prototype,{_unsafeEvalCheck(){}}),Object.assign(br.prototype,{_systemCheck(){}}),Object.assign(ei.prototype,{_generateUniformsSync:F1}),Object.assign(Jr.prototype,{_generateUboSync:A1}),Object.assign(Qr.prototype,{_generateUboSync:R1}),Object.assign(ti.prototype,{_generateShaderSync:C1}),Object.assign(kl.prototype,{generateParticleUpdate:w1})}zC();var HC="mp3-v1",WC="/qxqy-audio/",VC=[[10001,"ura.1ht4.2ag9.1hh5.jbb.k02.jcw.2tv.2wn.2xk.2r3.d5s.94l.ebv.kcr.b40.77k.9gp.97w.1hb5.jag.btu.jc9.hp5.bmj.blq.blq.ff9.ffk.o74.1owl.rp.mg.l3.lf.lh.qy.1a3z.2xk.2xk.2xk.2xk.2xk.17dc.1f2b.2bc.2bc.2bc.2bc.2bc.ffo.ffo.126.1fk.4mo.4mo.15e.1h2.237.2ba.2kd.2bc.4mo.4mo.4mo.4mo.1mc.1n6.2cu.1ud.2b1.2ee.1tj.1tk"],[20001,"o6.fh.kb.cr.og.sm.6x.8c.87.o7.vz.kt.qo.lg.ob.9w.mg.1kz.zc.1ex.1d5.ps.uu.su.qs.ys.zp.10k.15a.xc.uk.mx.1ax.nt.tu.19m.uj.1ku.tt.100.ie.d3.fp.ie.ie.d3.fp.ie.8p.7k.fw.h0.qc.ot.uc.ot.rk.gb.1c2.ff.cl.9v.wg.1ir.1lr.1b8.1ri.1p0.104.10n.mw.j6.jb.f1.dv.84.a0.cp.bx.1ko.1au.1ia.rs.rt.rs.t7.x6.wi.zc.16f.1i6.2jh.28d.qh.k8.1gz.1ko.2iv.1xp.1l4.1gk.10j.yo.1jk.1jk.xv.104.15o.1xg.1xg.1xi.25i.p1.t1.yh.1ak.1i6.1y2.xt.32u.3g6.1bz.2mn.14l.14c.1e1.op.s8.p2.v5.2ix.1a0.ry.16m.17n.13c.134.ys.yu.xr.sl.sr.sd.yh.z5.gd.gl.hx.h2.g8.fj.iy.hz.jj.th.12n.16r.d3.j9.dg.lj.fl.a7.f9.iw.el.27f.1dh.1rh.2ph.yd.w5.x5.tr.pq.zf.16h.1a5.17t.wy.vn.y8.wl.yv.2ye.2qt.1ah.163.19t.uf.119.2vv.1bm.13h.14p.1so.c3.as.9z.19w.1l4.1nl.rj.we"],[30001,"jo.my.ss.dw.c1.b4.hl.hl.hl.cz.dw.dw.b4.dw.fr.kd.qv.px.px.74.6u.8h.60.8q.8b.eo.eo.eo.8k.a5.99.12v.13y.lg.m4.qr.dw.ex.g0.ef.cd.br.11n.17h.1b8.1c9.9p.ag.9z.l9.m8.m8.lw.m8.cz.99.b4.8c.63.7f.6h.99.re.pp.pi.cq.c9.cp.ck.c6.b0.bd.al.f6.gl.ed.fs.lc.k6.kh.i6.cx.j1.hk.gb.d7.h7.g2.em.kj.kn.k4.j5.rh.t0.qt.mj.i7.ih.i2.hd.3r.8d.6u.6z.by.de.dg.cr.1a5.1ab.16c.18g.n2.ly.no.nt.f9.de.lr.fe.f0.fj.el.fo.t1.g9.ly.h3.g6.de.2ak.2f3.wf.kg.qn.11p.rg.uj.u6.11c.22o.2cs.3dp.3dq.3d5.3d6.1zx.18v"],[40001,"19x.215.2zt.1ex.2pj.7hy.1ur.1gn.1g7.1b1.u9.1tw.108.1ew.rs.1qu.w9.lk.244.qi.b6.tk.jg.jg.jg.y4.c1.b4.iv.hi.r4.n7.gy.ev.qe.12z.18n.dw.1l6.ou.wz.1un.19t.18k.yy.1hs.sl.dw.1vl.100.14k.1q8.209.1jk.1xr.ua.1j2.pr.26h.1gs.s9.px.15v.pf.1jk.xc.1hb.111.172.ut.285.1oh.149.zj.22r.2l9.14a.ok.23y.1eh.xe.1j0.1rp.1cz.wf.1mh.22k.334.1z2.1xo.1br.4ji.5nq.5nf.2za.18r.h3.eo.ia.1kn.dc.ss.s0.1bl.1oc.is.km.177.1ec.1ao.h4.hp.dx.l9.iw.i3.12w.n1.yq.12w.1ju.yx.14s.18b.22t.u3.my.2rb.36w.13u.z8.20r.18g.19r.2x9.w4.q2.1d2.wo.13a.v6.17w.ur.288.1b6.14m.1fi.1xx.1ee.kj.121.j2.1d2.2ad.1ri.2lc.1vk.138.12r.xj.1h5.1c5.2qx.1gj.t2.lv.rf.18q.1kz.dw.2aq.ia.1i9.k5.199.f4.10y.18a.xf.rk.1g9.1q3.10h.sj.15o.e3.dz.sv.135.w9.yg.aw.2a2.19m.22w.1c8.272.13o.104.1sr.rs.1pb.d5.df.kp.jq.1a7.s8.1ao.ba.rb.in.pz.q8.140.ij.1e7.jl.yk.117.10i.1tn.1oj.1sv.sj.1e3.2so.1c7.1gv.178.107.10n.1dx.1qi.1wp.2bc.218.16r.105.xc.z6.11w.1mc.1y9.17p.1cs.2ij.18c.1ie.nn.16c.1ce.xb.1ei.3j0.ve.14x.1sx.285.1b8.1at.v4.rv.rs.10z.xq.11o.15k.xq.u1.i2.pu.i4.l3.9u.oh.mc.nm.pw.1i3.1h4.pj.111.l4.lb.qq.qf.u0.h4.nk.yf.6h.ij.ds.oy.re.m8.1gl.cz.16z.a1.1f8.1x6.vp.dz.gp.g6.fr.vl.fr.gg.qc.aj.99.go.ij.fz.11a.x5.mo.1u9.h0.m8.10m.1an.2bc.3uw.2gk.124.xb.1uk.1b6.2xj.1os.11a.vs.1i9.1lr.2gv.265.668.1xg.45j.404.2x1.1io.3om.4q2.4mo.1d4.2bp.1pr.166.2y6.2bv.361.2nc.2bc.3g0.7g4.334.2bc.2xo.3uw.6ic.4ig.3uw.23v.1la.2zr.1jt.1cq.27a.1n1.19x.1qg.1jn.1ca.26y.2d6.4v4.4mo.4mo.7ps.1jk.153.1fo.1dm.1s2.1w1.oe.1lb.319.2eg.58p.4mo.3dw.2y2.2xm.1u8.1ko.12n.1e0.2sd.1md.2cl.1q2.372.4mo.48s.b14.3fu.334.334.34i.4nf.4ji.5eg.3uw.2u8.1g1.110.37x.2jo.su.334.3aj.3uw.63f.2bc.2bc.8v4.1ts.ax5.5du.34d.3oc.34j.4si.174.rt.1rp.2b0.37d.1ta.2gh.28a.22z.1nc.1a5.1pa.4dd.3ha.2cs.5mv.4mq.5c2.3uw.1gf.4md.113.10x.21o.2hj.1b3.1cx.1ol.3ar.1fv.17t.1a7.2uj.2we.1jk"],[50001,"1o8.1k1.mo.1wu.2c9.22d.1kb.23n.1b8.1ic.24c.2wz.1mq.1mu.1jx.1z1.o3.190.vp.1h7.th.4mo.1rp.4mo.4mo.7ps.zz.143.21v.1nf.34s.1s3.r9.18t.s1.r9.21w.277.ls.25k.5v1.2bc.1kh.wt.14i.1eq.15o.668.sh.rl.3wi.3vc.43c.3yn.17c.f5.xu.jg.176.19v.1xy.23m.18x.30c.10l.13k.v8.vp.17t.qj.17m.1wr.1la.8t.s7.18d.1l2.152.mx.1c8.1l4.1f5.1xe.rz.2hz.1et.13t.xb.14r.15o.z0.1zo.ur.257.1gb.li.12d.15a.132.1m1.3vu.296.1mg.11m.z0.159.mp.hd.x4.1go.ns.xh.2a7.tt.2vb.1bx.1kh.u3.11i.1y1.24e.2hp.2mn.1w6.3zm.166.14g.1mo.2v9.2rg.2f9.1r0.139.m1.k3.ys.1dy.29k.1mm.22m.3zx.4dr.2h7.22o.tv.rm.1et.2wv.2ar.1t7.ku.12s.10b.1v9.1gu.12m.1b3.tv.1c8.tk.10s.ul.1tt.ka.oi.qb.13f.13f.13k.17h.1uh.ez.en.2x7.2ln.2h8.3h8.ig.n9.27o.18b.hl.nm.uk.11a.1ta.1k4.1eh.wv.1go.1gg.sc.18u.1dz.2aq.vt.2l7.25h.1l5.1kn.1vc.1b4.28i.17t.1d6.1k2.18z.jy.jw.dh.1mx.fr.vp.35w.34z.35w.34z.4so.vf.yx.1bg.1d3.2yc.1tg.8q3.99g.am.2du.rm.rg.xa.2cw.xc.1j6.1if.18z.13a.yz.142.1z5.262.1bj.1y8.ur.u5.16j.1pf.1bi.l8.1il.3vz.2dr.jo.ls.18s.16l.18c.141.219.1yz.1fc.24t.27e.481.1vp.25h.1yq.1zn.1uw.11u.1jp.1pz.39o.t6.1mj.1u5.11l.1vd.1dk.1zb.1ic.3ql.14p.1wq.25x.267.zn.zn.1pf.13z.1j7.r9.1hb.4yp.1lt.1cw.1z4.19z.1og.1j4.1cl.1eg.u8.16s.1en.zu.1hr.1js.19g.303.22j.2oa.180.1v7.2ud.2d7.21s.3g9.vh.v1.284.3lg.3lg.17q.1h3.4mo.1cm.1rv.22i.2mc.2j3.27o.333.1q8.237.2ll.23b.2sp.2ll.2ox.2cf.2f8.2hz.1uo.y4.s9.w6.2dg.2q9.up.1m1.1vz.2n8.192.1eb.z7.2em.2q3.1sd.1gj.348.3vf.2iu.29x.1dc.7oj.4pq.5vb.4mx.5me.5sf.5yf.7ps.yj.q0.10w.13p.18b.2wd.11q.2vx.dd.iv.12p.jh.u9.1uy.w0.3f0.3bj.126.qo.1gj.11k.pu.22h.1z6.rp.y4.y0.xl.1d0.11s.wa.1a6.127.10m.12r.1nh.1fy.yo.1js.162.n4.174.1aj.y4.o8.qz.rh.qa.18s.mr.j3.ii.sr.sx.1jk.17l.mj.zr.uy.wa.19t.2bt.xe.1od.hs.xr.5b.12c.1ab.we.gz.mz.4y.sf.11s.e0.1l7.ew.h6.jz.l0.e8.1cx.p6.17u.bw.1ah.10r.10e.o9.1bc.uv.lq.tl.zb.100.jy.b8.bj.336.10n.na.sq.14r.yr.nm.123.tf.l1.zp.1xc.1vk.31l.zl.2bj.2b9.2fv.17p.y0.so.1ln.29c.1eh.nh.xn.131.qc.186.ff.fc.xq.1bm.la.l8.14f.243.111.xi.qw.1qn.11v.1ur.1jx.1ks.s9.nz.269.1zj.2zd.1pv.18n.2vk.p3.1fh.13v.1lf.1lu.2db.1sr.1k3.26o.1dl.1f3.187.2lh.166.v9.xh.1e3.119.s2.mt.1iu.1k6.1o2.12s.u4.2br.1q3.qv.1e4.1zu.1v4.1vk.1t3.3p7.1ob.14d.1ns.1ef.1e4.12w.2kk.1ba.2jx.1e0.1s5.12w.17r.14s.wz.1qp.183.3fb.188.1gr.2ot.168.1u7.w8.28o.1zd.32z.230.w7.vq.x8.1qh.19f.14o.2r9.qg.1ey.1qr.1p6.3a3.1ov.13d.tz.wk.22v.1qa.2l9.yw.yf.nw.p6.1ly.1jk.1nh.x9.q0.17r.17h.ux.uw.12y.p7.g7.kt.14c.ze.1kh.1eo.18a.1d8.26j.15k.19f.1ym.1j5.1c6.11k.1sd.1jp.1ws.13s.1o5.214.sx.px.20x.14h.1ja.s6.1q8.w8.1ks.so.ub.121.202.1ej.1g1.1s8.2bc.4t1.bih.3uw.3pb.avp.6c7.bko.5eg.79c.6wh.3wd.4pn.55j.4a5.3gg.bko.5ei.52p.578.bcv.6gr.2bc.4j9.5y7.9d2.2bb.2bc.668.73z.5pg.50f.5m7.788.267.642.8h2.8h2.49s.64g.5e8.5e8.2bb.3ih.5ur.6bk.578.4ck.3sg.5fe.23i.e9w.2b8.5oj.6bw.2al.2rk.2rk.5pj.n6e.350.6v9.70t.639.3uw.3uw.2bg.639.2bb.2bd.6gj.2bh.660.578.3bk.65e.359.3o0.44i.4tn.1zq.5ee.4a5.3zu.rs.639.33q.5eg.1k1.15o.dw.3uw.b7p.7qd.898.4l4.5uu.5uu.b4g.2yh.2yh.3uw.51a.51a.5kk.66f.iq9.3n7.4nb.46a.1wb.20p.bih.8xa.7ps.70t.70t.4rv.5p1.6aq.ts.63z.668.5v2.5nu.563.55s.55s.5p3.2ga.32x.42x.5cr.4c2.71b.5zp.5c2.66t.4c8.2bc.2bc.2gn.3ea.2kp.fz6.8hz.3e8.4an.bko.j7e.jag.7sr.2bc.3zx.7qd.5ut.5jp.2wk.5q7.3uw.334.4i3.3uw.4bd.5eu.46h.4i2.6t4.446.5s7.5cg.4bk.5nd.7bf.4rt.23b.2bc.2bc.2bc.2bc.2ba.4mo.4dv.3wn.2bc.1we.4he.2bc.4gz.3wn.3km.4xy.4hi.4mr.2bc.247.3yj.2c6.2bc.3aj.446.4ub.3uw.51.e0.86.is.i1.hg.mn.m4.2c.7h.sg.e3.jb.7r.eq.nf.u0.60.4o.ke.47.47.47.47.b8.4x.dr.dy.rw.rw.59.8j.5z.a5.l3.c0.ik.f7.li.lr.7x.dv.du.dd.5e.91.1b.ce.cc.59.bh.e6.8m.9n.cl.lt.7ip.4mr.4si.4kf.vo.we.13e.17n.1iw.2pi.lp.r6.gw.7x.xz.qt.bq.ls.q1.eh.bx.cr.3c.j7.b8.fz.4k.8p.bg.5w.iy.j3.12o.rs.cz.dp.yz.jk.63.63.7ps.7ps.7ps.40g.3jp.4tw.89k.88a.7s0.83d.668.7ps.2fw.2ev.2fp.7ps.2jb.2dh.2ud.25i.24c.2bt.1pa.17r.1a7.7ps.7pt.5rg.4nl.3vv.7qo.31a.2p0.2k0.49a.3v4.3nl.1ug.1ug.1l6.7s1.7ps.2cp.2f8.2i7.7ps.28q.2be.275.1ma.1oz.1q7.16s.1iq.1e0.78m.7ps.2bc.2bc.2bc.bko.2wu.2wu.2wu.3b4.38f.3uw.3uw.3uw.3uw.7ps.7qa.32n.2gg.2wk.7rv.1v3.1qq.1rb.1zk.1my.1zp.1yn.1oh.1uh.7st.9q.9q.9q.9q.9q.kk.kk.kk.kk.kk.dw.dp.dw.rs.rs.rs.rs.s4.sd.54j.5n8.2n6.21r.1nu.1o5.14u.t6.3f7.2j0.32c.304.189.1gf.18w.18j.1st.1vq.116.kw.3uw.3uw.vr.zx.xc.tc.7d.7r.9d.9w.8s.9p.3b.3b"]].map(([i,t])=>[i,t.split(".").map(e=>parseInt(e,36)/1e3)]);function U1(i){if(!Number.isSafeInteger(i))return null;for(let[t,e]of VC)if(i>=t&&i<t+e.length)return e[i-t];return null}function D1(i){return`${WC}${HC}/${i}.mp3`}var Nl=class{constructor({contextFactory:t=()=>new(globalThis.AudioContext||globalThis.webkitAudioContext),fetch:e=(...n)=>globalThis.fetch(...n),onStatus:r=()=>{},now:s=()=>performance.now()}={}){Object.assign(this,{contextFactory:t,fetcher:e,onStatus:r,now:s}),this.context=null,this.output=null,this.buffers=new Map,this.voices=new Map,this.key="",this.sequence=0,this.paused=!1,this.muted=!1,this.disposed=!1,this.error="",this.revision=-1,this.unlockHandlers=[]}status(){return{unlocked:this.context?.state==="running",muted:this.muted,error:this.error,voices:this.voices.size}}publish(){this.onStatus(this.status())}ensureContext(){return this.context||(this.context=this.contextFactory(),this.output=this.context.createGain(),this.output.gain.value=this.muted?0:1,this.output.connect(this.context.destination),this.context.onstatechange=()=>this.publish()),this.context}unlock(){if(!this.disposed)try{this.ensureContext().resume().then(()=>{if(!this.disposed){for(let e of this.voices.values())this.playVoice(e);this.publish()}}).catch(e=>{this.error=e.message,this.publish()});for(let e of this.voices.values())this.playVoice(e)}catch(t){this.error=t.message,this.publish()}}bindUnlock(t){let e=s=>{s.target?.closest?.("[data-audio-toggle]")||this.unlock()};for(let s of["pointerdown","keydown"])t.addEventListener(s,e,{capture:!0});let r=()=>{for(let s of["pointerdown","keydown"])t.removeEventListener(s,e,{capture:!0})};return this.unlockHandlers.push(r),r}toggle(){this.context?.state!=="running"?this.unlock():this.setMuted(!this.muted)}setMuted(t){this.muted=!!t,this.output&&(this.output.gain.value=this.muted?0:1),this.publish()}buffer(t){let e=this.buffers.get(t);if(e&&(!e.failed||this.now()<e.retryAt))return this.buffers.delete(t),this.buffers.set(t,e),e.promise;let r={bytes:0,failed:!1,abort:new AbortController},s=setTimeout(()=>r.abort.abort(),3e4);return r.promise=(async()=>{let n=await this.fetcher(D1(t),{signal:r.abort.signal});if(!n.ok)throw new Error(`\u97F3\u6548 ${t} \u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${n.status}`);let o=await n.arrayBuffer();if(this.disposed)throw new Error("audio player disposed");let a=await this.ensureContext().decodeAudioData(o);r.bytes=a.length*a.numberOfChannels*4;let l=[...this.buffers.values()].reduce((c,h)=>c+h.bytes,0);for(let[c,h]of this.buffers){if(l<=32*1024*1024&&this.buffers.size<=64)break;c===t||!h.bytes&&!h.failed||(this.buffers.delete(c),l-=h.bytes)}return a})().catch(n=>{throw r.failed=!0,r.retryAt=this.now()+6e4,n}).finally(()=>clearTimeout(s)),this.buffers.set(t,r),r.promise}stopSource(t){let e=t.source;if(t.source=null,!!e){e.onended=null;try{e.stop()}catch{}e.disconnect()}}removeVoice(t){let e=this.voices.get(t);e&&(this.stopSource(e),this.voices.delete(t))}playVoice(t){if(this.disposed||this.voices.get(t.row.instanceId)!==t||this.paused||t.source||t.loading||t.done)return;if(!t.buffer){t.loading=!0,this.buffer(t.row.audioId).then(r=>{t.loading=!1,!(this.disposed||this.voices.get(t.row.instanceId)!==t)&&(t.buffer=r,this.playVoice(t))}).catch(r=>{this.disposed||this.voices.get(t.row.instanceId)!==t||(this.removeVoice(t.row.instanceId),this.error=r.message,this.publish())});return}if(this.context?.state!=="running"){this.publish();return}if(t.offset>=t.buffer.duration){t.done=!0;return}let e=this.context.createBufferSource();e.buffer=t.buffer,e.connect(this.output),t.source=e,t.beganAt=this.context.currentTime,e.onended=()=>{t.source===e&&(e.disconnect(),t.source=null,t.done=!0,this.publish())},e.start(0,t.offset),this.publish()}sync(t,{fresh:e=!1}={}){if(this.disposed)return;if(t?.running===!1){this.reset();return}let r=t?.audio;if(!r)return;let s=`${r.sessionId}:${r.playerIndex}`,n=s!==this.key;if(n&&(this.reset(),this.key=s),!n&&(r.sequence<this.sequence||r.revision<this.revision))return;this.revision=r.revision;let o=this.paused;this.paused=!!t.paused;let a=new Map(r.active.map(h=>[h.instanceId,h])),l=new Map(r.recent.map(h=>[h.instanceId,h]));for(let[h,u]of this.voices){let d=l.get(h)||a.get(h);if(d?.stopped||u.done&&!a.has(h)||!d){this.removeVoice(h);continue}this.paused&&!o&&u.source&&(u.offset+=Math.max(0,this.context.currentTime-u.beganAt),this.stopSource(u))}let c=n&&!e?r.active:r.recent;for(let h of c){if(!n&&h.instanceId<=this.sequence||h.stopped||U1(h.audioId)===null||h.duration<=0)continue;this.voices.size>=64&&this.removeVoice(this.voices.keys().next().value);let u={row:h,offset:n&&!e?Math.max(0,t.time-h.startedAt):0,source:null,buffer:null,loading:!1,done:!1};this.voices.set(h.instanceId,u)}this.sequence=r.sequence;for(let h of this.voices.values())this.playVoice(h);this.publish()}reset(){for(let t of this.voices.keys())this.removeVoice(t);this.key="",this.sequence=0,this.revision=-1,this.paused=!1,this.publish()}destroy(){this.disposed=!0,this.reset();for(let t of this.buffers.values())t.abort.abort();this.buffers.clear();for(let t of this.unlockHandlers)t();this.unlockHandlers.length=0,this.context&&(this.context.onstatechange=null,this.context.close().catch(()=>{}))}};var jC=["Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","Digit0","KeyU","KeyZ","KeyY","KeyG","KeyH","KeyI","KeyO","KeyP","KeyJ","KeyK","KeyL","KeyV","F5","F6","F7","F8","F9","F10","Backquote","Minus","Equal","BracketLeft","Comma","Period","Slash","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","ControlRight","ShiftRight","Backspace","CapsLock"],L1=new Map(jC.map((i,t)=>[i,`CraftspersonKey${t+1}`]));for(let[i,t]of Object.entries({KeyW:"MoveForwardKey",KeyS:"MoveBackwardKey",KeyA:"MoveLeftKey",KeyD:"MoveRightKey",ControlLeft:"SwitchToWalkOrRunKey",Space:"JumpKey",KeyX:"DropKey",Tab:"OpenShortcutWheelKey",KeyF:"InteractKey",KeyE:"CharacterSkill1Key",KeyQ:"CharacterSkill2Key",KeyR:"CharacterSkill3Key",KeyT:"CharacterSkill4Key"}))L1.set(i,t);function zl(i,t){if(t!=="Down"&&t!=="Up"||i.isComposing||i.keyCode===229||i.key==="Process"||i.key==="Dead")return"";let e=String(i.key||""),r=/^[a-z]$/i.test(e)?`Key${e.toUpperCase()}`:i.code,s=L1.get(r);return s?`Keyboard${s}${t}`:""}function O1(i,t){if(t!=="Down"&&t!=="Up")return"";let e=i===0?"NormalAttackKey":i===2?"SprintKey":"";return e?`Keyboard${e}${t}`:""}var Vd=33,N1=60;function z1(i,t,e,r){return{x:(i.clientX-t.left)*e/t.width,y:(t.bottom-i.clientY)*r/t.height}}function H1({renderer:i,api:t,onSnapshot:e,onStatus:r,onError:s,onAudioStatus:n,audio:o,isActive:a,isInputActive:l,keyInputEnabled:c=!0}={}){o||=typeof window<"u"?new Nl({onStatus:n}):null,typeof window<"u"&&o?.bindUnlock(window);let h=0,u=null,d=!1,f=!1,m=null,g=null,_=0,x=null,b=null,v=null,S=!1,T=[],w=new Set,E=Promise.resolve();function B(N){let et=h;return E=E.then(()=>et===h&&d?Y("key",{key:N},{allowInactive:!0}):null),E}function R(N=!0){return Promise.all([...w].map(et=>et(N))).then(()=>E)}function M(N){c=!!N,c||R()}function C(N){s&&s(N)}async function A(N,{freshAudio:et=!1}={}){u=N,d=N?.running!==!1,o?.sync(N,{fresh:et}),N?.scene&&N.scene.format==="tree-v1"?(N.scene.reset&&(_=0),await i.applyScene(N.scene,N.canvasWidth,N.canvasHeight),_=N.scene.revision||_):Array.isArray(N?.paint)&&await i.render(N.paint,N.canvasWidth,N.canvasHeight),e&&await e(N)}async function D(){if(!d||f)return;if(a&&!a()){o?.reset();return}f=!0;let N=h;try{let et=await t("get",{view:!0,sceneRev:_,compact:!0});if(N!==h)return;await A(et)}catch(et){if(N!==h)return;d=!1,K(),o?.reset(),C(et)}finally{f=!1}}function H(){m||(m=setInterval(()=>{D()},Vd))}function K(){m&&clearInterval(m),m=null,g&&clearTimeout(g),g=null}function I(N=30){g||(g=setTimeout(()=>{g=null,D()},N))}function U(){x&&clearTimeout(x),x=null}function j(){x&&(U(),Y("pointer",{type:"move",...b}))}function G(){R(!1),h++,o?.reset(),U(),v=null,S=!1,d=!1,_=0,K()}async function Y(N,et,{allowInactive:ct=!1}={}){if(!ct&&a&&!a())return null;let It=h;try{let St=await t(N,{light:!0,...et||{}});return It!==h||!d||(St&&typeof St=="object"&&St.frame!==void 0&&r&&r(St),I(30)),St}catch(St){return It===h&&C(St),null}}async function pt(N={}){G(),o?.unlock();let et=h;_=0;let ct=await t("start",{view:!0,compact:!0,...N});return et!==h||(await A({...ct,running:!0},{freshAudio:!0}),et!==h)||(d=!0,K(),H()),ct}async function wt(){await R(),G();let N=h;_=0,K();let et=await t("get",{view:!0,compact:!0,sceneRev:0});return N!==h||(await A(et),N!==h)||d&&H(),et}async function lt(N={}){G();let et=h;_=0,K();let ct=await t("device",{view:!0,compact:!0,...N});return et!==h||(await A({...ct,running:!0},{freshAudio:!0}),et!==h)||(d=!0,H()),ct}async function ft(N={}){S=!0;let et=h;try{if(await R(),et!==h)return null;et=++h,o?.reset(),_=0;let ct=await t("view",{view:!0,compact:!0,...N});return et!==h||await A({...ct,running:!0}),ct}finally{et===h&&(S=!1)}}async function q(){return G(),t("stop")}function jt(N,et){return z1(N,et.getBoundingClientRect(),u.canvasWidth,u.canvasHeight)}function ui(N,{keysOn:et}={}){let ct=et||N,It=N.ownerDocument||ct.ownerDocument,St=It?.defaultView||ct,Kt=It||ct,Bt=new Map,xe="",Xt=()=>u&&d&&!S&&(!a||a())&&(!l||l()),$e=()=>c&&Xt(),ls=V=>V.target?.isContentEditable||V.target?.closest?.('input,textarea,select,button,a[href],[role="textbox"],[contenteditable]:not([contenteditable="false"])'),cs=(V,zt)=>{if(!zt||Bt.has(V))return;let Hl=[...Bt.values()].includes(zt);Bt.set(V,zt),Hl||B(zt)},cr=V=>{let zt=Bt.get(V);return zt?(Bt.delete(V),d&&![...Bt.values()].includes(zt)?B(zt.replace(/Down$/,"Up")):null):null},Er=(V=!0)=>V?Promise.all([...Bt.keys()].map(cr)):(Bt.clear(),Promise.resolve());w.add(Er);let hs=V=>{xe=V.pointerType||"",Xt()&&(v!==null||V.button!=null&&V.button!==0||(v=V.pointerId,N.setPointerCapture?.(V.pointerId),j(),Y("pointer",{type:"down",...jt(V,N)})))},us=V=>{Xt()&&v===V.pointerId&&(j(),Y("pointer",{type:"up",...jt(V,N)}),v=null)},ds=V=>{Xt()&&(v!==null&&v!==V.pointerId||(b=jt(V,N),!x&&(x=setTimeout(()=>{x=null,Xt()&&Y("pointer",{type:"move",...b})},N1))))},fs=()=>{v===null&&(U(),Xt()&&Y("pointer",{type:"move",x:-1,y:-1}))},di=V=>{V.pointerType==="mouse"&&(cr("mouse:0"),cr("mouse:2")),v===V.pointerId&&(U(),v=null,u&&d&&Y("pointer",{type:"cancel",...jt(V,N)}))},xo=V=>{if(!Xt())return;V.preventDefault();let zt=N.getBoundingClientRect(),Hl=V.deltaMode===2?zt.width:V.deltaMode===1?16:1,X1=V.deltaMode===2?zt.height:V.deltaMode===1?16:1;Y("pointer",{type:"wheel",...jt(V,N),deltaX:V.deltaX*Hl*u.canvasWidth/zt.width,deltaY:V.deltaY*X1*u.canvasHeight/zt.height})},fi=V=>{if(!$e()||ls(V))return;let zt=zl(V,"Down");zt&&(V.preventDefault(),V.repeat||cs(`key:${V.code||V.key}`,zt))},pi=V=>{let zt=`key:${V.code||V.key}`;Bt.has(zt)&&(V.preventDefault(),cr(zt))},Yd=V=>{!$e()||xe&&xe!=="mouse"||V.sourceCapabilities?.firesTouchEvents||cs(`mouse:${V.button}`,O1(V.button,"Down"))},$d=V=>{cr(`mouse:${V.button}`)},ps=()=>{Er()},qd=()=>{It?.hidden&&ps()},Kd=V=>{$e()&&V.preventDefault()};N.addEventListener("pointerdown",hs),N.addEventListener("pointerup",us),N.addEventListener("pointermove",ds),N.addEventListener("pointerleave",fs),N.addEventListener("pointercancel",di),N.addEventListener("lostpointercapture",di),N.addEventListener("wheel",xo,{passive:!1}),N.addEventListener("mousedown",Yd),N.addEventListener("contextmenu",Kd),Kt.addEventListener("mouseup",$d),ct.addEventListener("keydown",fi),ct.addEventListener("keyup",pi),ct.addEventListener("focusout",ps),St.addEventListener("blur",ps),It?.addEventListener("visibilitychange",qd);let Zd=()=>{Er(),w.delete(Er),N.removeEventListener("pointerdown",hs),N.removeEventListener("pointerup",us),N.removeEventListener("pointermove",ds),N.removeEventListener("pointerleave",fs),N.removeEventListener("pointercancel",di),N.removeEventListener("lostpointercapture",di),N.removeEventListener("wheel",xo),N.removeEventListener("mousedown",Yd),N.removeEventListener("contextmenu",Kd),Kt.removeEventListener("mouseup",$d),ct.removeEventListener("keydown",fi),ct.removeEventListener("keyup",pi),ct.removeEventListener("focusout",ps),St.removeEventListener("blur",ps),It?.removeEventListener("visibilitychange",qd),U()};return T.push(Zd),Zd}function Cr(){for(G();T.length;)T.pop()();i?.destroy?.(),o?.destroy()}return{audio:o,get snapshot(){return u},get running(){return d},get sceneRev(){return _},get keyInputEnabled(){return c},setKeyInputEnabled:M,releaseKeys:R,applyScene:A,poll:D,pollSoon:I,startPolling:H,stopPolling:K,reset:G,act:Y,start:pt,attach:wt,device:lt,view:ft,stop:q,bindInput:ui,destroy:Cr}}var XC=[0,-.5,.5,.5,-.5,.5],YC=[0,-.5,.12,-.12,.5,0,.12,.12,0,.5,-.12,.12,-.5,0,-.12,-.12],$C=[0,-.5,.11,-.15,.48,-.15,.18,.07,.29,.41,0,.2,-.29,.41,-.18,.07,-.48,-.15,-.11,-.15],qC=new Set(["image","textbox","textwindow","button","grid"]);function as(i,t=4294967295){let e=Number(i??t)>>>0;return{color:e&16777215,alpha:(e>>>24&255)/255}}function le(i,t=0){let e=Number(i);return Number.isFinite(e)?e:t}function W1(i){let t=i?.matrix;if(!t||typeof t!="object")return null;let e=[t.a,t.b,t.c,t.d,t.tx,t.ty].map(Number);return e.every(Number.isFinite)?e:null}function KC(i){let t=i.horizontalAlignment==="Right"?1:i.horizontalAlignment==="Middle"?.5:0,e=i.verticalAlignment==="Bottom"?1:i.verticalAlignment==="Middle"?.5:0;return{x:t,y:e}}function V1(i,t,e,r){let s=i.textLayout,n=s?.fontSize??Math.max(1,le(i.fontSize,12)),o=KC(i),a=i.kind==="textwindow"?i.scroll:null,l=a?e1(a,e):null,c={fontFamily:r||ci,fontSize:n,fill:as(i.fontColor,4294967295),stroke:i.enableOutline?{...as(i.outlineColor,4278190080),width:Math.max(2,n*.12),join:"round"}:void 0,wordWrap:!a&&!s,wordWrapWidth:Math.max(4,t-4),breakWords:!0,align:o.x===1?"right":o.x===.5?"center":"left",lineHeight:s?.lineHeight??n*1.2};return{text:l?l.text:s?s.lines.slice(0,s.visibleLineCount??s.lines.length).join(`
|
|
927
|
+
`):String(i.text||""),style:c,anchorX:o.x,anchorY:a?0:o.y,x:a?-t/2+2+o.x*a.textWidth:o.x===0?-t/2+2:o.x===1?t/2-2:0,y:a?-e/2-a.offset+l.y+(a.max>0?0:o.y*(e-a.contentLength)):o.y===0?-e/2:o.y===1?e/2:0}}function jd(i,t,e){return JSON.stringify([i.kind,t,e,i.bgColor,Fd(i.scroll,t,e)])}function ZC(i,t,e){let r=i.primitive==="triangle"?XC:i.primitive==="fourstar"?YC:$C,s=[];for(let n=0;n<r.length;n+=2)s.push(r[n]*t,r[n+1]*e);return s}function QC(i,t,e){return j1(i)?[i.kind,i.primitive,i.imageId,ar(i.imageSource),"sprite"].join(" "):[i.kind,i.primitive,t,e,i.imageColor,i.imageId,ar(i.imageSource),i.imageType,i.fillType,i.fillHorizontalType,i.fillVerticalType,i.fillAmount,i.text,i.fontSize,i.fontColor,i.bgColor,i.enableOutline,i.adaptiveFontSize,i.minimumFontSize,JSON.stringify(i.textLayout),i.outlineColor,i.horizontalAlignment,i.verticalAlignment,i.pressed,JSON.stringify(i.scroll)].join(" ")}function j1(i){return i.kind==="image"&&i.primitive==="circle"&&(!i.fillType||i.fillType==="Unused")}function JC(i){let t=W.get().createCanvas(i,i);t.width=t.height=i;let e=t.getContext("2d");return e.fillStyle="#ffffff",e.beginPath(),e.arc(i/2,i/2,i/2,0,Math.PI*2),e.fill(),new F({source:new Tt({resource:t,width:i,height:i,resolution:1})})}var Xd=class{constructor(t,{fontReady:e=null}={}){this.canvas=t,this.app=null,this.nodes=new Map,this.circleTextures=new Map,this.imageTextures=new Map,this.disposed=!1,this.unsubscribeImages=o1(r=>this.invalidateImage(r)),this.canvasWidth=0,this.canvasHeight=0,this.scratch=new k,this.ready=this.initialize(e)}async initialize(t){this.fontFamily=await t;let e=new bl;await e.init({canvas:this.canvas,width:1,height:1,autoStart:!1,autoDensity:!1,resolution:Math.min(2,window.devicePixelRatio||1),antialias:!0,backgroundAlpha:0,preference:"webgl",powerPreference:"high-performance"}),e.ticker.stop(),e.stage.eventMode="none",e.stage.sortableChildren=!0,this.app=e}resize(t,e){let r=Math.max(1,Math.round(le(t,1))),s=Math.max(1,Math.round(le(e,1)));r===this.canvasWidth&&s===this.canvasHeight||(this.canvasWidth=r,this.canvasHeight=s,this.app.renderer.resize(r,s))}createNode(t,{group:e=!1}={}){let r=new mt({isRenderGroup:!!e});return r.label=`runtime:${t.id}`,r.eventMode="none",r.sortableChildren=!0,r.__runtimeId=t.id,r.__group=!!e,this.nodes.set(t.id,r),this.app.stage.addChild(r),r}clearVisual(t){if(!t.__visual)return;let e=t.__visual.__text,r=this.app?.renderer,s=r?.renderPipes?.text?._managedTexts?.items,n=e?._gpuData?.[r?.uid]?.currentKey,o=e?.uid;t.__visual.parent?.removeChild(t.__visual);let a=t.__visual.__sliceGeometry,l=t.__visual.__richText?.texture;t.__visual.destroy({children:!0,context:!0,style:!0}),l?.destroy(!0),s&&o!==void 0&&s[o]===null&&delete s[o],n&&this.retireTextKey(n),a?.destroy(!0),t.__visual=null,t.__visualKey=""}retireTextKey(t){t&&(this.retiredTextKeys||=new Set,this.retiredTextKeys.add(t))}pruneTextKeys(){let t=this.app?.renderer?.canvasText?._activeTextures;for(let e of this.retiredTextKeys||[])t?.[e]===null&&delete t[e],t?.[e]||this.retiredTextKeys.delete(e)}updateTextVisual(t,e,r,s){let n=t.__visual;if(e.kind!=="textbox"&&e.kind!=="textwindow")return!1;if(n?.__richText){if(!e.textLayout?.richLines||n.__textChromeKey!==jd(e,r,s))return!1;let c=n.__richText;return Wd(c.texture.source.resource,e,r,s,this.fontFamily,this.app?.renderer?.resolution||1),c.texture.source.update(),!0}if(e.textLayout?.richLines||!n?.__text||n.__textChromeKey!==jd(e,r,s))return!1;let o=n.__text,a=V1(e,r,s,this.fontFamily),l=JSON.stringify(a.style);if(o.text!==a.text||n.__textStyleKey!==l){if(this.retireTextKey(o._gpuData?.[this.app?.renderer?.uid]?.currentKey),n.__textStyleKey!==l){let c=o.style;o.style=new Xe(a.style),c.destroy(),n.__textStyleKey=l}o.text=a.text}return o.anchor.set(a.anchorX,a.anchorY),o.position.set(a.x,a.y),!0}circleTexture(t){let e=this.app?.renderer.resolution||2,r=Math.min(4096,Math.max(256,2**Math.ceil(Math.log2(Math.max(1,t*e)))));this.circleTextures||=new Map;let s=this.circleTextures.get(r);return s||(s=JC(r),this.circleTextures.set(r,s)),s}imageTexture(t,e){this.imageTextures||=new Map;let r=Ye(t,e);if(this.imageTextures.has(r))return this.imageTextures.get(r);let s={texture:null,error:""};return this.imageTextures.set(r,s),s.promise=a1(t,e).then(({image:n,meta:o,error:a})=>{if(!(this.disposed||this.imageTextures.get(r)!==s)){s.texture=new F({source:new Re({resource:n})}),s.meta=o,s.error=a;for(let l of this.nodes.values()){let c=l.__sceneItem;c?.kind!=="image"||Ye(c.imageId,c.imageSource)!==r||(l.__visualKey="",this.updateNode(l,c,{nested:!l.__flat&&c.parent!=null}))}this.app?.render()}}).catch(n=>{s.error=n.message}),s}invalidateImage(t){let e=this.imageTextures.get(t);this.imageTextures.delete(t);for(let r of this.nodes.values()){let s=r.__sceneItem;s?.kind!=="image"||Ye(s.imageId,s.imageSource)!==t||(r.__visualKey="",this.updateNode(r,s,{nested:!r.__flat&&s.parent!=null}))}e?.texture?.destroy(!0),this.app?.render()}pruneImageTextures(){if(!this.imageTextures?.size)return;let t=new Set([...this.nodes.values()].filter(e=>e.__sceneItem?.primitive==="sprite").map(e=>Ye(e.__sceneItem.imageId,e.__sceneItem.imageSource)));for(let[e,r]of this.imageTextures||[])t.has(e)||(this.imageTextures.delete(e),r.texture?.destroy(!0))}replaceVisual(t,e,r,s){if(this.clearVisual(t),!qC.has(e.kind))return;let n=new mt;if(n.eventMode="none",n.label=`visual:${e.id}`,n.zIndex=e.kind==="grid"?Number.MAX_SAFE_INTEGER:-Number.MAX_SAFE_INTEGER,e.kind==="textbox"||e.kind==="textwindow"){let l=new oe,c=as(e.bgColor,16777215);if(l.rect(-r/2,-s/2,r,s).fill(c),n.addChild(l),e.textLayout?.richLines){let h=W.get().createCanvas(1,1);Wd(h,e,r,s,this.fontFamily,this.app?.renderer?.resolution||1);let u=new he({texture:new F({source:new Tt({resource:h})}),anchor:.5});u.width=r,u.height=s,n.__richText=u,n.addChild(u)}else{let h=V1(e,r,s,this.fontFamily),u=new fo({text:h.text,style:new Xe(h.style)});u.anchor.set(h.anchorX,h.anchorY),u.position.set(h.x,h.y),n.__text=u,n.__textStyleKey=JSON.stringify(h.style);let d=new oe().rect(-r/2,-s/2,r,s).fill({color:16777215,alpha:1});u.mask=d,n.addChild(d,u)}n.__textChromeKey=jd(e,r,s)}else if(e.kind==="button"){let l=new oe;l.roundRect(-r/2,-s/2,r,s,6).fill({color:3303631,alpha:1}),l.roundRect(-r/2,-s/2,r,s,6).stroke({color:7381247,alpha:.8,width:1}),e.pressed&&l.roundRect(-r/2,-s/2,r,s,6).fill({color:0,alpha:.28}),n.addChild(l)}else if(e.kind==="image"&&e.primitive==="sprite"&&this.imageTexture(e.imageId,e.imageSource).texture){let l=this.imageTextures.get(Ye(e.imageId,e.imageSource)),c;if(r>0&&s>0&&c1(l.meta,e.imageType)==="Stretch"){let d=[],f=[],m=[];for(let{source:[_,x,b,v],target:[S,T,w,E]}of h1(l.meta,r,s)){let B=d.length/2,R=S-r/2,M=T-s/2;d.push(R,M,R+w,M,R+w,M+E,R,M+E);let C=_/l.meta.width,A=(_+b)/l.meta.width,D=x/l.meta.height,H=(x+v)/l.meta.height;f.push(C,D,A,D,A,H,C,H),m.push(B,B+1,B+2,B,B+2,B+3)}let g=new so({positions:new Float32Array(d),uvs:new Float32Array(f),indices:new Uint32Array(m)});n.__sliceGeometry=g,c=new oo({geometry:g,texture:l.texture})}else c=new he({texture:l.texture,anchor:.5}),c.width=r,c.height=s;let h=as(e.imageColor,4294967295);c.tint=h.color,c.alpha=h.alpha;let u=kd(e,r,s);if(c.visible=r>0&&s>0&&(!u||u.width>0&&u.height>0),u&&c.visible){let d=new oe().rect(u.x,u.y,u.width,u.height).fill(16777215);c.mask=d,n.addChild(d)}n.addChild(c)}else if(j1(e)){let l=new he({texture:this.circleTexture(Math.max(r,s)),anchor:.5});n.__circle=l,n.addChild(l)}else if(e.kind!=="grid"){let l=new oe,c=as(e.imageColor,4294967295);e.primitive==="missing"||e.primitive==="sprite"?(l.rect(-r/2,-s/2,r,s).fill({color:4727336,alpha:.36}),l.rect(-r/2+.5,-s/2+.5,Math.max(0,r-1),Math.max(0,s-1)).stroke({color:16741505,alpha:1,width:1})):e.primitive==="circle"?l.ellipse(0,0,r/2,s/2).fill(c):e.primitive==="ring"?l.ellipse(0,0,Math.max(1,r/2-3.5),Math.max(1,s/2-3.5)).stroke({...c,width:7}):e.primitive==="triangle"||e.primitive==="fourstar"||e.primitive==="fivestar"?l.poly(ZC(e,r,s)).fill(c):l.rect(-r/2,-s/2,r,s).fill(c);let h=kd(e,r,s);if(h&&(l.visible=h.width>0&&h.height>0,l.visible)){let u=new oe().rect(h.x,h.y,h.width,h.height).fill({color:16777215,alpha:1});l.mask=u,n.addChild(u)}n.addChild(l)}let o=Fd(e.scroll,r,s);if(o){let l=new oe;l.label="scrollbar";for(let[c,h]of[[o.track,2503751],[o.thumb,9481931]])l.rect(c.x,c.y,c.width,c.height).fill({color:h,alpha:1});n.addChild(l)}n.scale.set(e.pressed?.98:1),(t.__imageContent||t).addChildAt(n,0),t.__visual=n}applyMatrix(t,e,r){let s=W1(e);if(!s){let u=Math.max(0,le(e.sourceWidth,le(e.width))),d=Math.max(0,le(e.sourceHeight,le(e.height)));t.x=le(e.left)+u/2,t.y=this.canvasHeight-le(e.bottom)-d/2,t.rotation=-le(e.rotationZ)*Math.PI/180,t.scale.set(1);return}let[n,o,a,l,c,h]=s;this.scratch.set(n,-o,-a,l,c,r?-h:this.canvasHeight-h),t.setFromMatrix(this.scratch)}updateNode(t,e,{nested:r=!1}={}){let s=Math.max(0,le(e.sourceWidth,le(e.width))),n=Math.max(0,le(e.sourceHeight,le(e.height))),o=QC(e,s,n);t.__visualKey!==o&&(this.updateTextVisual(t,e,s,n)||this.replaceVisual(t,e,s,n),t.__visualKey=o),t.__visual&&t.__visual.scale.set(e.pressed?.98:1);let a=t.__visual?.__circle;if(a){let l=Math.max(s,n),c=as(e.imageColor,4294967295);a.texture=this.circleTexture(l),a.width=s,a.height=n,a.tint=c.color,a.alpha=c.alpha,a.visible=s>0&&n>0}this.applyMatrix(t,e,r),this.updateImageMask(t,e,s,n)}updateImageMask(t,e,r,s){let n=e.kind==="image"?Qv({...e,sourceWidth:r,sourceHeight:s},{a:1,b:0,c:0,d:1,tx:0,ty:0}):null,o=n?[n.width,n.height,n.featherX,n.featherY].join(":"):"";if(t.__maskKey===o)return;if(t.__maskKey=o,!t.__imageContent&&n){let f=new mt;f.sortableChildren=!0,f.eventMode="none";for(let m of[...t.children])m!==t.__viewportClip&&f.addChild(m);t.addChildAt(f,0),t.__imageContent=f}let a=t.__imageContent;if(!a)return;a.visible=!n||r>0&&s>0;let l=n&&(n.featherX>0||n.featherY>0),c=Math.min(2048,Math.max(1,Math.ceil(r))),h=Math.min(2048,Math.max(1,Math.ceil(s))),u=t.__imageMask;if(l&&a.visible&&u instanceof he&&u.texture.source.resource.width===c&&u.texture.source.resource.height===h){Gd(u.texture.source.resource,n),u.texture.source.update(),u.width=r,u.height=s;return}if(a.mask=null,u?.destroy({context:!0,texture:!0,textureSource:!0}),t.__imageMask=null,!n||!a.visible)return;let d;if(l){let f=W.get().createCanvas(c,h);Gd(f,n),d=new he({texture:new F({source:new Tt({resource:f})}),anchor:.5}),d.width=r,d.height=s}else d=new oe().rect(-r/2,-s/2,r,s).fill(16777215);d.eventMode="none",a.addChild(d),a.setMask({mask:d,channel:"alpha"}),t.__imageMask=d}attachNode(t,e){let r=e.parent,s=r==null?this.app.stage:this.nodes.get(r),n=s?.__imageContent||s||this.app.stage;t.parent!==n&&n.addChild(t),n.sortableChildren=!0,t.zIndex=-le(e.z)}upsertSceneNode(t){if(!t||t.id===void 0||t.id===null)return;let e=t.group===!0,r=this.nodes.get(t.id);r?r.__group!==e&&(e?r.enableRenderGroup?.():r.disableRenderGroup?.(),r.__group=e):r=this.createNode(t,{group:e}),this.updateNode(r,t,{nested:t.parent!=null}),this.attachNode(r,t),r.__sceneItem=t,r.__flat=!1}updateViewportClip(t){let e=t.__sceneItem,r=this.nodes.get(e?.parent)?.__sceneItem,s=e?.clipPolygons||[];if(!t.__flat&&e?.clipToParent&&r){let h=r.sourceWidth/2,u=r.sourceHeight/2;s=[[[-h,-u],[h,-u],[h,u],[-h,u]].map(([d,f])=>({x:d,y:f}))]}let n=JSON.stringify([s,e?.matrix]);if(t.__clipKey===n||(t.__clipKey=n,t.mask=null,t.__viewportClip?.destroy({context:!0}),t.__viewportClip=null,t.visible=!0,!s.length))return;let o=W1(e);if(!o||Math.abs(o[0]*o[3]-o[1]*o[2])<1e-8){t.visible=!1;return}let a=new k(...o).invert(),l=r1(s).flatMap(h=>{let u=a.apply(h);return[u.x,-u.y]});if(l.length<6||!l.every(Number.isFinite)){t.visible=!1;return}let c=new oe().poly(l).fill({color:16777215,alpha:1});t.addChild(c),t.mask=c,t.__viewportClip=c}removeNode(t){let e=this.nodes.get(t);if(e){for(let r of[...e.children,...e.__imageContent?.children||[]])r.__runtimeId!=null&&r.parent?.removeChild(r);e.parent?.removeChild(e),this.clearVisual(e),e.mask=null,e.__imageContent&&(e.__imageContent.mask=null),e.__imageMask?.destroy({context:!0,texture:!0,textureSource:!0}),e.__imageMask=null,e.__viewportClip?.destroy({context:!0}),e.__imageContent?.destroy({children:!1}),e.destroy({children:!1}),this.nodes.delete(t)}}clearNodes(){for(let t of[...this.nodes.keys()])this.removeNode(t);this.pruneTextKeys()}async applyScene(t,e,r){if(await this.ready,this.resize(e,r),!t||t.format!=="tree-v1"){this.app.render();return}t.reset&&this.clearNodes();for(let n of t.removed||[])this.removeNode(n);let s=t.reset?t.nodes:t.changed;for(let n=0;n<(s||[]).length;n+=1){let o=s[n];!o||o.id===void 0||o.id===null||this.nodes.has(o.id)||this.createNode(o,{group:o.group===!0})}for(let n=0;n<(s||[]).length;n+=1)this.upsertSceneNode(s[n]);for(let n of this.nodes.values())(n.__sceneItem?.clipToParent||n.__sceneItem?.clipPolygons?.length||n.__clipKey!==void 0)&&this.updateViewportClip(n);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}async render(t,e,r){if(t?.some(o=>o?.masks?.length))return this.__maskedPaint=!0,this.applyScene(t1(t),e,r);await this.ready,this.__maskedPaint&&(this.clearNodes(),this.__maskedPaint=!1),this.resize(e,r);let s=new Set,n=Array.isArray(t)?t:[];for(let o=0;o<n.length;o+=1){let a=n[o];if(!a||a.id===void 0||a.id===null)continue;s.add(a.id);let l=this.nodes.get(a.id)||this.createNode(a);this.updateNode(l,a),l.__sceneItem=a,l.__flat=!0,this.updateViewportClip(l),l.zIndex=o,l.parent!==this.app.stage&&this.app.stage.addChild(l)}for(let[o]of this.nodes)s.has(o)||this.removeNode(o);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}destroy(){this.disposed=!0,this.unsubscribeImages?.(),this.clearNodes();for(let t of this.imageTextures?.values()||[])t.texture?.destroy(!0);this.imageTextures?.clear();for(let t of this.circleTextures.values())t.destroy(!0);this.circleTextures.clear(),this.app?.destroy({removeView:!1},{children:!0,texture:!0,textureSource:!0}),this.app=null}};export{Vd as PLAY_POLL_INTERVAL_MS,Xd as PixiPlayRenderer,H1 as createPlaySession,m1 as getLanguagePreference,Ol as getLocale,Ll as getSystemLanguage,d1 as loadBrowserFont,g1 as loadSystemLanguage,y1 as localizePage,x1 as setLanguagePreference,_1 as subscribeLocale,Dl as t};
|
|
928
928
|
/*! Bundled license information:
|
|
929
929
|
|
|
930
930
|
tiny-lru/dist/tiny-lru.js:
|