dsh-plugin-beyond-simulator 2.2.0 → 2.2.2
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 +83 -132
- package/dsh-plugin/dist/client.js +28 -6
- package/dsh-plugin/dist/index.js +26 -23
- package/dsh-plugin/dist/play-renderer.js +108 -107
- package/dsh-plugin/dist/worker.js +20 -17
- package/dsh-plugin/lib/play.html +2 -2
- 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 +12 -4
- 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"&&!
|
|
3
|
-
`).splice(
|
|
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=`
|
|
1
|
+
var ov=Object.create;var Zc=Object.defineProperty;var av=Object.getOwnPropertyDescriptor;var cv=Object.getOwnPropertyNames;var lv=Object.getPrototypeOf,dv=Object.prototype.hasOwnProperty;var p=(i,e)=>()=>(i&&(e=i(i=0)),e);var hv=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),Qc=(i,e)=>{for(var t in e)Zc(i,t,{get:e[t],enumerable:!0})},uv=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of cv(e))!dv.call(i,s)&&s!==t&&Zc(i,s,{get:()=>e[s],enumerable:!(r=av(e,s))||r.enumerable});return i};var fv=(i,e,t)=>(t=i!=null?ov(lv(i)):{},uv(e||!i||!i.__esModule?Zc(t,"default",{value:i,enumerable:!0}):t,i));var _,Jc,To,H,P=p(()=>{"use strict";_=(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))(_||{}),Jc=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},To=(i,e)=>Jc(i).priority??e,H={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(Jc).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...i){return i.map(Jc).forEach(e=>{e.type.forEach(t=>{let r=this._addHandlers,s=this._queue;r[t]?r[t]?.(e):(s[t]=s[t]||[],s[t]?.push(e))})}),this},handle(i,e,t){let r=this._addHandlers,s=this._removeHandlers;if(r[i]||s[i])throw new Error(`Extension type ${i} already has a handler`);r[i]=e,s[i]=t;let n=this._queue;return n[i]&&(n[i]?.forEach(o=>e(o)),delete n[i]),this},handleByMap(i,e){return this.handle(i,t=>{t.name&&(e[t.name]=t.ref)},t=>{t.name&&delete e[t.name]})},handleByNamedList(i,e,t=-1){return this.handle(i,r=>{e.findIndex(n=>n.name===r.name)>=0||(e.push({name:r.name,value:r.ref}),e.sort((n,o)=>To(o.value,t)-To(n.value,t)))},r=>{let s=e.findIndex(n=>n.name===r.name);s!==-1&&e.splice(s,1)})},handleByList(i,e,t=-1){return this.handle(i,r=>{e.includes(r.ref)||(e.push(r.ref),e.sort((s,n)=>To(n,t)-To(s,t)))},r=>{let s=e.indexOf(r.ref);s!==-1&&e.splice(s,1)})},mixin(i,...e){for(let t of e)Object.defineProperties(i.prototype,Object.getOwnPropertyDescriptors(t))}}});var ff=hv((yw,el)=>{"use strict";var pv=Object.prototype.hasOwnProperty,Je="~";function ms(){}Object.create&&(ms.prototype=Object.create(null),new ms().__proto__||(Je=!1));function mv(i,e,t){this.fn=i,this.context=e,this.once=t||!1}function uf(i,e,t,r,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new mv(t,r||i,s),o=Je?Je+e:e;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 Eo(i,e){--i._eventsCount===0?i._events=new ms:delete i._events[e]}function Ye(){this._events=new ms,this._eventsCount=0}Ye.prototype.eventNames=function(){var e=[],t,r;if(this._eventsCount===0)return e;for(r in t=this._events)pv.call(t,r)&&e.push(Je?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ye.prototype.listeners=function(e){var t=Je?Je+e:e,r=this._events[t];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};Ye.prototype.listenerCount=function(e){var t=Je?Je+e:e,r=this._events[t];return r?r.fn?1:r.length:0};Ye.prototype.emit=function(e,t,r,s,n,o){var a=Je?Je+e:e;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,d,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,r),!0;case 4:return c.fn.call(c.context,t,r,s),!0;case 5:return c.fn.call(c.context,t,r,s,n),!0;case 6:return c.fn.call(c.context,t,r,s,n,o),!0}for(h=1,d=new Array(l-1);h<l;h++)d[h-1]=arguments[h];c.fn.apply(c.context,d)}else{var u=c.length,f;for(h=0;h<u;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),l){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,r);break;case 4:c[h].fn.call(c[h].context,t,r,s);break;default:if(!d)for(f=1,d=new Array(l-1);f<l;f++)d[f-1]=arguments[f];c[h].fn.apply(c[h].context,d)}}return!0};Ye.prototype.on=function(e,t,r){return uf(this,e,t,r,!1)};Ye.prototype.once=function(e,t,r){return uf(this,e,t,r,!0)};Ye.prototype.removeListener=function(e,t,r,s){var n=Je?Je+e:e;if(!this._events[n])return this;if(!t)return Eo(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!r||o.context===r)&&Eo(this,n);else{for(var a=0,c=[],l=o.length;a<l;a++)(o[a].fn!==t||s&&!o[a].once||r&&o[a].context!==r)&&c.push(o[a]);c.length?this._events[n]=c.length===1?c[0]:c:Eo(this,n)}return this};Ye.prototype.removeAllListeners=function(e){var t;return e?(t=Je?Je+e:e,this._events[t]&&Eo(this,t)):(this._events=new ms,this._eventsCount=0),this};Ye.prototype.off=Ye.prototype.removeListener;Ye.prototype.addListener=Ye.prototype.on;Ye.prefixed=Je;Ye.EventEmitter=Ye;typeof el<"u"&&(el.exports=Ye)});var pf,fe,Ne=p(()=>{pf=fv(ff(),1),fe=pf.default});var gv,Kt,He,xt,wf,mf,tl,bv,Co,Sf,Tf,gf,bf,xf,gs,xv,_v,yv,vv,sl,_f,wv,rl,il,yf,nl,Ct,vf,Ef,Cf=p(()=>{gv={grad:.9,turn:360,rad:360/(2*Math.PI)},Kt=function(i){return typeof i=="string"?i.length>0:typeof i=="number"},He=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*i)/t+0},xt=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),i>t?t:i>e?i:e},wf=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},mf=function(i){return{r:xt(i.r,0,255),g:xt(i.g,0,255),b:xt(i.b,0,255),a:xt(i.a)}},tl=function(i){return{r:He(i.r),g:He(i.g),b:He(i.b),a:He(i.a,3)}},bv=/^#([0-9a-f]{3,8})$/i,Co=function(i){var e=i.toString(16);return e.length<2?"0"+e:e},Sf=function(i){var e=i.r,t=i.g,r=i.b,s=i.a,n=Math.max(e,t,r),o=n-Math.min(e,t,r),a=o?n===e?(t-r)/o:n===t?2+(r-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},Tf=function(i){var e=i.h,t=i.s,r=i.v,s=i.a;e=e/360*6,t/=100,r/=100;var n=Math.floor(e),o=r*(1-t),a=r*(1-(e-n)*t),c=r*(1-(1-e+n)*t),l=n%6;return{r:255*[r,a,o,o,c,r][l],g:255*[c,r,r,a,o,o][l],b:255*[o,o,c,r,r,a][l],a:s}},gf=function(i){return{h:wf(i.h),s:xt(i.s,0,100),l:xt(i.l,0,100),a:xt(i.a)}},bf=function(i){return{h:He(i.h),s:He(i.s),l:He(i.l),a:He(i.a,3)}},xf=function(i){return Tf((t=(e=i).s,{h:e.h,s:(t*=((r=e.l)<50?r:100-r)/100)>0?2*t/(r+t)*100:0,v:r+t,a:e.a}));var e,t,r},gs=function(i){return{h:(e=Sf(i)).h,s:(s=(200-(t=e.s))*(r=e.v)/100)>0&&s<200?t*r/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,r,s},xv=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,_v=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,yv=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,vv=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,sl={string:[[function(i){var e=bv.exec(i);return e?(i=e[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?He(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?He(parseInt(i.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(i){var e=yv.exec(i)||vv.exec(i);return e?e[2]!==e[4]||e[4]!==e[6]?null:mf({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(i){var e=xv.exec(i)||_v.exec(i);if(!e)return null;var t,r,s=gf({h:(t=e[1],r=e[2],r===void 0&&(r="deg"),Number(t)*(gv[r]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return xf(s)},"hsl"]],object:[[function(i){var e=i.r,t=i.g,r=i.b,s=i.a,n=s===void 0?1:s;return Kt(e)&&Kt(t)&&Kt(r)?mf({r:Number(e),g:Number(t),b:Number(r),a:Number(n)}):null},"rgb"],[function(i){var e=i.h,t=i.s,r=i.l,s=i.a,n=s===void 0?1:s;if(!Kt(e)||!Kt(t)||!Kt(r))return null;var o=gf({h:Number(e),s:Number(t),l:Number(r),a:Number(n)});return xf(o)},"hsl"],[function(i){var e=i.h,t=i.s,r=i.v,s=i.a,n=s===void 0?1:s;if(!Kt(e)||!Kt(t)||!Kt(r))return null;var o=(function(a){return{h:wf(a.h),s:xt(a.s,0,100),v:xt(a.v,0,100),a:xt(a.a)}})({h:Number(e),s:Number(t),v:Number(r),a:Number(n)});return Tf(o)},"hsv"]]},_f=function(i,e){for(var t=0;t<e.length;t++){var r=e[t][0](i);if(r)return[r,e[t][1]]}return[null,void 0]},wv=function(i){return typeof i=="string"?_f(i.trim(),sl.string):typeof i=="object"&&i!==null?_f(i,sl.object):[null,void 0]},rl=function(i,e){var t=gs(i);return{h:t.h,s:xt(t.s+100*e,0,100),l:t.l,a:t.a}},il=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},yf=function(i,e){var t=gs(i);return{h:t.h,s:t.s,l:xt(t.l+100*e,0,100),a:t.a}},nl=(function(){function i(e){this.parsed=wv(e)[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 He(il(this.rgba),2)},i.prototype.isDark=function(){return il(this.rgba)<.5},i.prototype.isLight=function(){return il(this.rgba)>=.5},i.prototype.toHex=function(){return e=tl(this.rgba),t=e.r,r=e.g,s=e.b,o=(n=e.a)<1?Co(He(255*n)):"","#"+Co(t)+Co(r)+Co(s)+o;var e,t,r,s,n,o},i.prototype.toRgb=function(){return tl(this.rgba)},i.prototype.toRgbString=function(){return e=tl(this.rgba),t=e.r,r=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+r+", "+s+", "+n+")":"rgb("+t+", "+r+", "+s+")";var e,t,r,s,n},i.prototype.toHsl=function(){return bf(gs(this.rgba))},i.prototype.toHslString=function(){return e=bf(gs(this.rgba)),t=e.h,r=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+r+"%, "+s+"%, "+n+")":"hsl("+t+", "+r+"%, "+s+"%)";var e,t,r,s,n},i.prototype.toHsv=function(){return e=Sf(this.rgba),{h:He(e.h),s:He(e.s),v:He(e.v),a:He(e.a,3)};var e},i.prototype.invert=function(){return Ct({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},i.prototype.saturate=function(e){return e===void 0&&(e=.1),Ct(rl(this.rgba,e))},i.prototype.desaturate=function(e){return e===void 0&&(e=.1),Ct(rl(this.rgba,-e))},i.prototype.grayscale=function(){return Ct(rl(this.rgba,-1))},i.prototype.lighten=function(e){return e===void 0&&(e=.1),Ct(yf(this.rgba,e))},i.prototype.darken=function(e){return e===void 0&&(e=.1),Ct(yf(this.rgba,-e))},i.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},i.prototype.alpha=function(e){return typeof e=="number"?Ct({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):He(this.rgba.a,3);var t},i.prototype.hue=function(e){var t=gs(this.rgba);return typeof e=="number"?Ct({h:e,s:t.s,l:t.l,a:t.a}):He(t.h)},i.prototype.isEqual=function(e){return this.toHex()===Ct(e).toHex()},i})(),Ct=function(i){return i instanceof nl?i:new nl(i)},vf=[],Ef=function(i){i.forEach(function(e){vf.indexOf(e)<0&&(e(nl,sl),vf.push(e))})}});function Pf(i,e){var t={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 t)r[t[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,c,l=r[this.toHex()];if(l)return l;if(o?.closest){var d=this.toRgb(),h=1/0,u="black";if(!n.length)for(var f in t)n[f]=new i(t[f]).toRgb();for(var m in t){var g=(a=d,c=n[m],Math.pow(a.r-c.r,2)+Math.pow(a.g-c.g,2)+Math.pow(a.b-c.b,2));g<h&&(h=g,u=m)}return u}},e.string.push([function(o){var a=o.toLowerCase(),c=a==="transparent"?"#0000":t[a];return c?new i(c).toRgb():null},"name"])}var Mf=p(()=>{});var _i,Z,$e=p(()=>{Cf();Mf();Ef([Pf]);_i=class bs{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}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(e){return this.value=e,this}set value(e){if(e instanceof bs)this._value=this._cloneSource(e._value),this._int=e._int,this._components.set(e._components);else{if(e===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,e))&&(this._value=this._cloneSource(e),this._normalize(this._value))}}get value(){return this._value}_cloneSource(e){return typeof e=="string"||typeof e=="number"||e instanceof Number||e===null?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):typeof e=="object"&&e!==null?{...e}:e}_isSourceEqual(e,t){let r=typeof e;if(r!==typeof t)return!1;if(r==="number"||r==="string"||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length!==t.length?!1:e.every((n,o)=>n===t[o]);if(e!==null&&t!==null){let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?!1:n.every(a=>e[a]===t[a])}return e===t}toRgba(){let[e,t,r,s]=this._components;return{r:e,g:t,b:r,a:s}}toRgb(){let[e,t,r]=this._components;return{r:e,g:t,b:r}}toRgbaString(){let[e,t,r]=this.toUint8RgbArray();return`rgba(${e},${t},${r},${this.alpha})`}toUint8RgbArray(e){let[t,r,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb),e[0]=Math.round(t*255),e[1]=Math.round(r*255),e[2]=Math.round(s*255),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e||(e=this._arrayRgba);let[t,r,s,n]=this._components;return e[0]=t,e[1]=r,e[2]=s,e[3]=n,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb);let[t,r,s]=this._components;return e[0]=t,e[1]=r,e[2]=s,e}toNumber(){return this._int}toBgrNumber(){let[e,t,r]=this.toUint8RgbArray();return(r<<16)+(t<<8)+e}toLittleEndianNumber(){let e=this._int;return(e>>16)+(e&65280)+((e&255)<<16)}multiply(e){let[t,r,s,n]=bs._temp.setValue(e)._components;return this._components[0]*=t,this._components[1]*=r,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(e===1)return(255<<24)+this._int;if(e===0)return t?0:this._int;let r=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return t&&(r=r*e+.5|0,s=s*e+.5|0,n=n*e+.5|0),(e*255<<24)+(r<<16)+(s<<8)+n}toHex(){let e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){let t=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-t.length)+t}setAlpha(e){return this._components[3]=this._clamp(e),this._value=null,this}_normalize(e){let t,r,s,n;if((typeof e=="number"||e instanceof Number)&&e>=0&&e<=16777215){let o=e;t=(o>>16&255)/255,r=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(e)||e instanceof Float32Array)&&e.length>=3&&e.length<=4)e=this._clamp(e),[t,r,s,n=1]=e;else if((e instanceof Uint8Array||e instanceof Uint8ClampedArray)&&e.length>=3&&e.length<=4)e=this._clamp(e,0,255),[t,r,s,n=255]=e,t/=255,r/=255,s/=255,n/=255;else if(typeof e=="string"||typeof e=="object"){if(typeof e=="string"){let a=bs.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=Ct(e);o.isValid()&&({r:t,g:r,b:s,a:n}=o.rgba,t/=255,r/=255,s/=255)}if(t!==void 0)this._components[0]=t,this._components[1]=r,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${e}`)}_refreshInt(){this._clamp(this._components);let[e,t,r]=this._components;this._int=(e*255<<16)+(t*255<<8)+(r*255|0)}_clamp(e,t=0,r=1){return typeof e=="number"?Math.min(Math.max(e,t),r):(e.forEach((s,n)=>{e[n]=Math.min(Math.max(s,t),r)}),e)}static isColorLike(e){return typeof e=="number"||typeof e=="string"||e instanceof Number||e instanceof bs||Array.isArray(e)||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Float32Array||e.r!==void 0&&e.g!==void 0&&e.b!==void 0||e.r!==void 0&&e.g!==void 0&&e.b!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0&&e.a!==void 0}};_i.shared=new _i;_i._temp=new _i;_i.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;Z=_i});var Af,Rf=p(()=>{"use strict";Af={cullArea:null,cullable:!1,cullableChildren:!0}});var kf,Bf,If,ol=p(()=>{"use strict";kf=Math.PI*2,Bf=180/Math.PI,If=Math.PI/180});var ae,al,Pt=p(()=>{"use strict";ae=class i{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new i(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return al.x=0,al.y=0,al}},al=new ae});var k,Sv,Tv,ce=p(()=>{ol();Pt();k=class i{constructor(e=1,t=0,r=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=r,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,r,s,n,o){return this.a=e,this.b=t,this.c=r,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let r=t||this.array;return e?(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(e,t){t=t||new ae;let r=e.x,s=e.y;return t.x=this.a*r+this.c*s+this.tx,t.y=this.b*r+this.d*s+this.ty,t}applyInverse(e,t){t=t||new ae;let r=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,c=this.ty,l=1/(r*o+n*-s),d=e.x,h=e.y;return t.x=o*l*d+-n*l*h+(c*n-a*o)*l,t.y=r*l*h+-s*l*d+(-c*r+a*s)*l,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),r=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*r,this.b=s*r+this.b*t,this.c=n*t-this.d*r,this.d=n*r+this.d*t,this.tx=o*t-this.ty*r,this.ty=o*r+this.ty*t,this}append(e){let t=this.a,r=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*r+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*r+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*r+e.ty*n+this.ty,this}appendFrom(e,t){let r=e.a,s=e.b,n=e.c,o=e.d,a=e.tx,c=e.ty,l=t.a,d=t.b,h=t.c,u=t.d;return this.a=r*l+s*h,this.b=r*d+s*u,this.c=n*l+o*h,this.d=n*d+o*u,this.tx=a*l+c*h+t.tx,this.ty=a*d+c*u+t.ty,this}setTransform(e,t,r,s,n,o,a,c,l){return this.a=Math.cos(a+l)*n,this.b=Math.sin(a+l)*n,this.c=-Math.sin(a-c)*o,this.d=Math.cos(a-c)*o,this.tx=e-(r*this.a+s*this.c),this.ty=t-(r*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let r=this.a,s=this.c;this.a=r*e.a+this.b*e.c,this.b=r*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,r=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),c=Math.atan2(r,t),l=Math.abs(a+c);return l<1e-5||Math.abs(kf-l)<1e-5?(e.rotation=c,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=c),e.scale.x=Math.sqrt(t*t+r*r),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*r+o.y*n),e}invert(){let e=this.a,t=this.b,r=this.c,s=this.d,n=this.tx,o=e*s-t*r;return this.a=s/o,this.b=-t/o,this.c=-r/o,this.d=e/o,this.tx=(r*this.ty-s*n)/o,this.ty=-(e*this.ty-t*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 e=new i;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.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 Tv.identity()}static get shared(){return Sv.identity()}},Sv=new k,Tv=new k});var Be,Po=p(()=>{"use strict";Be=class i{constructor(e,t,r){this._x=t||0,this._y=r||0,this._observer=e}clone(e){return new i(e??this._observer,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.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(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}});function Y(i="default"){return cl[i]===void 0&&(cl[i]=-1),++cl[i]}var cl,Ie=p(()=>{"use strict";cl={default:-1}});var Gf,re,Ff,yi,N,_e=p(()=>{"use strict";Gf=new Set,re="8.0.0",Ff="8.3.4",yi={quiet:!1,noColor:!1},N=((i,e,t=3)=>{if(yi.quiet||Gf.has(e))return;let r=new Error().stack,s=`${e}
|
|
2
|
+
Deprecated since v${i}`,n=typeof console.groupCollapsed=="function"&&!yi.noColor;typeof r>"u"?console.warn("PixiJS Deprecation Warning: ",s):(r=r.split(`
|
|
3
|
+
`).splice(t).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))),Gf.add(e)});Object.defineProperties(N,{quiet:{get:()=>yi.quiet,set:i=>{yi.quiet=i},enumerable:!0,configurable:!1},noColor:{get:()=>yi.noColor,set:i=>{yi.noColor=i},enumerable:!0,configurable:!1}})});function O(...i){ll!==Uf&&(ll++,ll===Uf?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var ll,Uf,he=p(()=>{"use strict";ll=0,Uf=500});var _t,Mr=p(()=>{"use strict";_t={_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 Mo,Df=p(()=>{"use strict";Mo=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t<e;t++)this._pool[this._index++]=new this._classType;this._count+=e}get(e){let t;return this._index>0?t=this._pool[--this._index]:(t=new this._classType,this._count++),t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}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 e=0;e<this._index;e++)this._pool[e].destroy();this._pool.length=0,this._count=0,this._index=0}}});var dl,ye,Zt=p(()=>{Mr();Df();dl=class{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new Mo(e)),this._poolsByClass.get(e)}stats(){let e={};return this._poolsByClass.forEach(t=>{let r=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[r]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}}),e}clear(){this._poolsByClass.forEach(e=>e.clear()),this._poolsByClass.clear()}},ye=new dl;_t.register(ye)});var Lf,Of=p(()=>{_e();Lf={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){N("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function Ao(i,e,t){let r=i.length,s;if(e>=r||t===0)return;t=e+t>r?r-e:t;let n=r-t;for(s=e;s<n;++s)i[s]=i[s+t];i.length=n}var hl=p(()=>{"use strict"});var Nf,Hf=p(()=>{hl();_e();Nf={allowChildren:!0,removeChildren(i=0,e){let t=e??this.children.length,r=t-i,s=[];if(r>0&&r<=t){for(let o=t-1;o>=i;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}Ao(this.children,i,t);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 e=this.getChildAt(i);return this.removeChild(e)},getChildAt(i){if(i<0||i>=this.children.length)throw new Error(`getChildAt: Index (${i}) does not exist.`);return this.children[i]},setChildIndex(i,e){if(e<0||e>=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);this.getChildIndex(i),this.addChildAt(i,e)},getChildIndex(i){let e=this.children.indexOf(i);if(e===-1)throw new Error("The supplied Container must be a child of the caller");return e},addChildAt(i,e){this.allowChildren||N(re,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:t}=this;if(e<0||e>t.length)throw new Error(`${i}addChildAt: The index ${e} supplied is out of bounds ${t.length}`);let r=i.parent===this;if(i.parent){let n=i.parent.children.indexOf(i);if(r){if(n===e)return i;i.parent.children.splice(n,1)}else i.removeFromParent()}e===t.length?t.push(i):t.splice(e,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,e),i.emit("added",this),i)},swapChildren(i,e){if(i===e)return;let t=this.getChildIndex(i),r=this.getChildIndex(e);this.children[t]=e,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(e=>this.reparentChildAt(e,this.children.length)),i[0])},reparentChildAt(i,e){if(i.parent===this)return this.setChildIndex(i,e),i;let t=i.worldTransform.clone();i.removeFromParent(),this.addChildAt(i,e);let r=this.worldTransform.clone();return r.invert(),t.prepend(r),i.setFromMatrix(t),i},replaceChild(i,e){i.updateLocalTransform(),this.addChildAt(e,this.getChildIndex(i)),e.setFromMatrix(i.localTransform),e.updateLocalTransform(),this.removeChild(i)}}});var zf,Wf=p(()=>{"use strict";zf={collectRenderables(i,e,t){this.parentRenderLayer&&this.parentRenderLayer!==t||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(i,e,t):this.renderGroup?e.renderPipes.renderGroup.addRenderGroup(this.renderGroup,i):this.collectRenderablesWithEffects(i,e,t))},collectRenderablesSimple(i,e,t){let r=this.children,s=r.length;for(let n=0;n<s;n++)r[n].collectRenderables(i,e,t)},collectRenderablesWithEffects(i,e,t){let{renderPipes:r}=e;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];r[n.pipe].push(n,this,i)}this.collectRenderablesSimple(i,e,t);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];r[n.pipe].pop(n,this,i)}}}});var Qt,Ro=p(()=>{"use strict";Qt=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let e=0;e<this.filters.length;e++)this.filters[e].destroy();this.filters=null,this.filterArea=null}}});var ul,ko,Vf=p(()=>{P();Zt();ul=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(e=>{this.add({test:e.test,maskClass:e})}))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t<this._tests.length;t++){let r=this._tests[t];if(r.test(e))return ye.get(r.maskClass,e)}return e}returnMaskEffect(e){ye.return(e)}},ko=new ul;H.handleByList(_.MaskEffect,ko._effectClasses)});var jf,Xf=p(()=>{Ro();Vf();jf={_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((t,r)=>t.priority-r.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(i){let e=this.effects.indexOf(i);e!==-1&&(this.effects.splice(e,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(i){let e=this._maskEffect;e?.mask!==i&&(e&&(this.removeEffect(e),ko.returnMaskEffect(e),this._maskEffect=null),i!=null&&(this._maskEffect=ko.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 e=this._filterEffect||(this._filterEffect=new Qt);i=i;let t=i?.length>0,r=e.filters?.length>0,s=t!==r;i=Array.isArray(i)?i.slice(0):i,e.filters=Object.freeze(i),s&&(t?this.addEffect(e):(this.removeEffect(e),e.filters=i??null))},get filters(){return this._filterEffect?.filters},set filterArea(i){this._filterEffect||(this._filterEffect=new Qt),this._filterEffect.filterArea=i},get filterArea(){return this._filterEffect?.filterArea}}});var Yf,$f=p(()=>{_e();Yf={label:null,get name(){return N(re,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){N(re,"Container.name property has been removed, use Container.label instead"),this.label=i},getChildByName(i,e=!1){return this.getChildByLabel(i,e)},getChildByLabel(i,e=!1){let t=this.children;for(let r=0;r<t.length;r++){let s=t[r];if(s.label===i||i instanceof RegExp&&i.test(s.label))return s}if(e)for(let r=0;r<t.length;r++){let n=t[r].getChildByLabel(i,!0);if(n)return n}return null},getChildrenByLabel(i,e=!1,t=[]){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))&&t.push(n)}if(e)for(let s=0;s<r.length;s++)r[s].getChildrenByLabel(i,!0,t);return t}}});var Bo,Q,Ve=p(()=>{Pt();Bo=[new ae,new ae,new ae,new ae],Q=class i{constructor(e=0,t=0,r=0,s=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),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(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}strokeContains(e,t,r,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,c=this.y,l=r*(1-s),d=r-l,h=a-l,u=a+n+l,f=c-l,m=c+o+l,g=a+d,x=a+n-d,b=c+d,y=c+o-d;return e>=h&&e<=u&&t>=f&&t<=m&&!(e>g&&e<x&&t>b&&t<y)}intersects(e,t){if(!t){let B=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=B)return!1;let M=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.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=Bo[0].set(e.left,e.top),c=Bo[1].set(e.left,e.bottom),l=Bo[2].set(e.right,e.top),d=Bo[3].set(e.right,e.bottom);if(l.x<=a.x||c.y<=a.y)return!1;let h=Math.sign(t.a*t.d-t.b*t.c);if(h===0||(t.apply(a,a),t.apply(c,c),t.apply(l,l),t.apply(d,d),Math.max(a.x,c.x,l.x,d.x)<=r||Math.min(a.x,c.x,l.x,d.x)>=s||Math.max(a.y,c.y,l.y,d.y)<=n||Math.min(a.y,c.y,l.y,d.y)>=o))return!1;let u=h*(c.y-a.y),f=h*(a.x-c.x),m=u*r+f*n,g=u*s+f*n,x=u*r+f*o,b=u*s+f*o;if(Math.max(m,g,x,b)<=u*a.x+f*a.y||Math.min(m,g,x,b)>=u*d.x+f*d.y)return!1;let y=h*(a.y-l.y),v=h*(l.x-a.x),w=y*r+v*n,S=y*s+v*n,T=y*r+v*o,C=y*s+v*o;return!(Math.max(w,S,T,C)<=y*a.x+v*a.y||Math.min(w,S,T,C)>=y*d.x+v*d.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),r=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(r-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let r=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=r-this.x,this.height=s-this.y,this}scale(e,t=e){return this.x*=e,this.y*=t,this.width*=e,this.height*=t,this}enlarge(e){let t=Math.min(this.x,e.x),r=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=r-t,this.y=s,this.height=n-s,this}getBounds(e){return e||(e=new i),e.copyFrom(this),e}containsRect(e){if(this.width<=0||this.height<=0)return!1;let t=e.x,r=e.y,s=e.x+e.width,n=e.y+e.height;return t>=this.x&&t<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(e,t,r,s){return this.x=e,this.y=t,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 qf,pe,et=p(()=>{ce();Ve();qf=new k,pe=class i{constructor(e=1/0,t=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=qf,this.minX=e,this.minY=t,this.maxX=r,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new Q);let e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=qf,this}set(e,t,r,s){this.minX=e,this.minY=t,this.maxX=r,this.maxY=s}addFrame(e,t,r,s,n){n||(n=this.matrix);let o=n.a,a=n.b,c=n.c,l=n.d,d=n.tx,h=n.ty,u=this.minX,f=this.minY,m=this.maxX,g=this.maxY,x=o*e+c*t+d,b=a*e+l*t+h;x<u&&(u=x),b<f&&(f=b),x>m&&(m=x),b>g&&(g=b),x=o*r+c*t+d,b=a*r+l*t+h,x<u&&(u=x),b<f&&(f=b),x>m&&(m=x),b>g&&(g=b),x=o*e+c*s+d,b=a*e+l*s+h,x<u&&(u=x),b<f&&(f=b),x>m&&(m=x),b>g&&(g=b),x=o*r+c*s+d,b=a*r+l*s+h,x<u&&(u=x),b<f&&(f=b),x>m&&(m=x),b>g&&(g=b),this.minX=u,this.minY=f,this.maxX=m,this.maxY=g}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxX<e.maxX?this.maxX:e.maxX,this.maxY=this.maxY<e.maxY?this.maxY:e.maxY}applyMatrix(e){let t=this.minX,r=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c,d:l,tx:d,ty:h}=e,u=o*t+c*r+d,f=a*t+l*r+h;this.minX=u,this.minY=f,this.maxX=u,this.maxY=f,u=o*s+c*r+d,f=a*s+l*r+h,this.minX=u<this.minX?u:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=u>this.maxX?u:this.maxX,this.maxY=f>this.maxY?f:this.maxY,u=o*t+c*n+d,f=a*t+l*n+h,this.minX=u<this.minX?u:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=u>this.maxX?u:this.maxX,this.maxY=f>this.maxY?f:this.maxY,u=o*s+c*n+d,f=a*s+l*n+h,this.minX=u<this.minX?u:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=u>this.maxX?u:this.maxX,this.maxY=f>this.maxY?f:this.maxY}fit(e){return this.minX<e.left&&(this.minX=e.left),this.maxX>e.right&&(this.maxX=e.right),this.minY<e.top&&(this.minY=e.top),this.maxY>e.bottom&&(this.maxY=e.bottom),this}fitBounds(e,t,r,s){return this.minX<e&&(this.minX=e),this.maxX>t&&(this.maxX=t),this.minY<r&&(this.minY=r),this.maxY>s&&(this.maxY=s),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,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(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){let t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){let t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}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(e,t,r,s){let n=this.minX,o=this.minY,a=this.maxX,c=this.maxY;s||(s=this.matrix);let l=s.a,d=s.b,h=s.c,u=s.d,f=s.tx,m=s.ty;for(let g=t;g<r;g+=2){let x=e[g],b=e[g+1],y=l*x+h*b+f,v=d*x+u*b+m;n=y<n?y:n,o=v<o?v:o,a=y>a?y:a,c=v>c?v:c}this.minX=n,this.minY=o,this.maxX=a,this.maxY=c}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(e){return this.minX=e.minX,this.minY=e.minY,this.maxX=e.maxX,this.maxY=e.maxY,this}}});var Ge,ft,Ar=p(()=>{ce();Zt();et();Ge=ye.getPool(k),ft=ye.getPool(pe)});var Ev,Kf,Zf=p(()=>{ce();et();Ar();Ev=new k,Kf={getFastGlobalBounds(i,e){e||(e=new pe),e.clear(),this._getGlobalBoundsRecursive(!!i,e,this.parentRenderLayer),e.isValid||e.set(0,0,0,0);let t=this.renderGroup||this.parentRenderGroup;return e.applyMatrix(t.worldTransform),e},_getGlobalBoundsRecursive(i,e,t){let r=e;if(i&&this.parentRenderLayer&&this.parentRenderLayer!==t||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(r=ft.get().clear()),this.boundsArea)e.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,t)}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(Ev).invert()),e.addBounds(r),ft.return(r)}else this.renderGroup&&(e.addBounds(r,this.relativeGroupTransform),ft.return(r))}}});function vi(i,e,t){t.clear();let r,s;return i.parent?e?r=i.parent.worldTransform:(s=Ge.get().identity(),r=Io(i,s)):r=k.IDENTITY,Qf(i,t,r,e),s&&Ge.return(s),t.isValid||t.set(0,0,0,0),t}function Qf(i,e,t,r){if(!i.visible||!i.measurable)return;let s;r?s=i.worldTransform:(i.updateLocalTransform(),s=Ge.get(),s.appendFrom(i.localTransform,t));let n=e,o=!!i.effects.length;if(o&&(e=ft.get().clear()),i.boundsArea)e.addRect(i.boundsArea,s);else{let a=i.bounds;a&&!a.isEmpty()&&(e.matrix=s,e.addBounds(a));for(let c=0;c<i.children.length;c++)Qf(i.children[c],e,s,r)}if(o){for(let a=0;a<i.effects.length;a++)i.effects[a].addBounds?.(e);n.addBounds(e,k.IDENTITY),ft.return(e)}r||Ge.return(s)}function Io(i,e){let t=i.parent;return t&&(Io(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var xs=p(()=>{ce();Ar()});function Lt(i,e){if(i===16777215||!e)return e;if(e===16777215||!i)return i;let t=i>>16&255,r=i>>8&255,s=i&255,n=e>>16&255,o=e>>8&255,a=e&255,c=t*n/255|0,l=r*o/255|0,d=s*a/255|0;return(c<<16)+(l<<8)+d}var _s=p(()=>{"use strict"});function wi(i,e){return i===Jf?e:e===Jf?i:Lt(i,e)}var Jf,fl=p(()=>{_s();Jf=16777215});function Jt(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var ep,Go=p(()=>{ce();xs();Ar();fl();ep={getGlobalAlpha(i){if(i)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let e=this.alpha,t=this.parent;for(;t;)e*=t.alpha,t=t.parent;return e},getGlobalTransform(i=new k,e){if(e)return i.copyFrom(this.worldTransform);this.updateLocalTransform();let t=Io(this,Ge.get().identity());return i.appendFrom(this.localTransform,t),Ge.return(t),i},getGlobalTint(i){if(i)return this.renderGroup?Jt(this.renderGroup.worldColor):this.parentRenderGroup?Jt(wi(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=wi(e,t.localColor),t=t.parent;return Jt(e)}}});function Si(i,e,t){return e.clear(),t||(t=k.IDENTITY),tp(i,e,t,i,!0),e.isValid||e.set(0,0,0,0),e}function tp(i,e,t,r,s){let n;if(s)n=Ge.get(),n=t.copyTo(n);else{if(!i.visible||!i.measurable)return;i.updateLocalTransform();let c=i.localTransform;n=Ge.get(),n.appendFrom(c,t)}let o=e,a=!!i.effects.length;if(a&&(e=ft.get().clear()),i.boundsArea)e.addRect(i.boundsArea,n);else{i.renderPipeId&&(e.matrix=n,e.addBounds(i.bounds));let c=i.children;for(let l=0;l<c.length;l++)tp(c[l],e,n,r,!1)}if(a){for(let c=0;c<i.effects.length;c++)i.effects[c].addLocalBounds?.(e,r);o.addBounds(e,k.IDENTITY),ft.return(e)}Ge.return(n)}var Fo=p(()=>{ce();Ar()});function pl(i,e){let t=i.children;for(let r=0;r<t.length;r++){let s=t[r],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=e.index;(e.data[a]!==n||e.data[a+1]!==o)&&(e.data[e.index]=n,e.data[e.index+1]=o,e.didChange=!0),e.index=a+2,s.children.length&&pl(s,e)}return e.didChange}var rp=p(()=>{"use strict"});var Cv,ip,sp=p(()=>{ce();et();xs();Fo();rp();Cv=new k,ip={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(i,e){let t=Math.sign(this.scale.x)||1;e!==0?this.scale.x=i/e*t:this.scale.x=t},_setHeight(i,e){let t=Math.sign(this.scale.y)||1;e!==0?this.scale.y=i/e*t:this.scale.y=t},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new pe});let i=this._localBoundsCacheData;return i.index=1,i.didChange=!1,i.data[0]!==this._didViewChangeTick&&(i.didChange=!0,i.data[0]=this._didViewChangeTick),pl(this,i),i.didChange&&Si(this,i.localBounds,Cv),i.localBounds},getBounds(i,e){return vi(this,i,e||new pe)}}});var np,op=p(()=>{"use strict";np={_onRender:null,set onRender(i){let e=this.renderGroup||this.parentRenderGroup;if(!i){this._onRender&&e?.removeOnRender(this),this._onRender=null;return}this._onRender||e?.addOnRender(this),this._onRender=i},get onRender(){return this._onRender}}});function Pv(i,e){return i._zIndex-e._zIndex}var ap,cp=p(()=>{"use strict";ap={_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(Pv))}}});var lp,dp=p(()=>{Pt();Ar();lp={getGlobalPosition(i=new ae,e=!1){return this.parent?this.parent.toGlobal(this._position,i,e):(i.x=this._position.x,i.y=this._position.y),i},toGlobal(i,e,t=!1){let r=this.getGlobalTransform(Ge.get(),t);return e=r.apply(i,e),Ge.return(r),e},toLocal(i,e,t,r){e&&(i=e.toGlobal(i,t,r));let s=this.getGlobalTransform(Ge.get(),r);return t=s.applyInverse(i,t),Ge.return(s),t}}});var hr,Uo=p(()=>{Ie();hr=class{constructor(){this.uid=Y("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(e){this.instructions[this.instructionSize++]=e}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function er(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 ml(i){return!(i&i-1)&&!!i}var ys=p(()=>{"use strict"});function Do(i){let e={};for(let t in i)i[t]!==void 0&&(e[t]=i[t]);return e}var gl=p(()=>{"use strict"});function Mv(i){let e=hp[i];return e===void 0&&(hp[i]=Y("resource")),e}var hp,up,ot,Rr=p(()=>{Ne();Ie();_e();hp=Object.create(null);up=class fp extends fe{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...fp.defaultOptions,...e},this.addressMode=e.addressMode,this.addressModeU=e.addressModeU??this.addressModeU,this.addressModeV=e.addressModeV??this.addressModeV,this.addressModeW=e.addressModeW??this.addressModeW,this.scaleMode=e.scaleMode,this.magFilter=e.magFilter??this.magFilter,this.minFilter=e.minFilter??this.minFilter,this.mipmapFilter=e.mipmapFilter??this.mipmapFilter,this.lodMinClamp=e.lodMinClamp,this.lodMaxClamp=e.lodMaxClamp,this.compare=e.compare,this.maxAnisotropy=e.maxAnisotropy??1}set addressMode(e){this.addressModeU=e,this.addressModeV=e,this.addressModeW=e}get addressMode(){return this.addressModeU}set wrapMode(e){N(re,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=e}get wrapMode(){return this.addressMode}set scaleMode(e){this.magFilter=e,this.minFilter=e,this.mipmapFilter=e}get scaleMode(){return this.magFilter}set maxAnisotropy(e){this._maxAnisotropy=Math.min(e,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 e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=Mv(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};up.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};ot=up});var pp,oe,je=p(()=>{Ne();ys();gl();Ie();Rr();pp=class mp extends fe{constructor(e={}){super(),this.options=e,this._gpuData=Object.create(null),this._gcLastUsed=-1,this.uid=Y("textureSource"),this._resourceType="textureSource",this._resourceId=Y("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,e={...mp.defaultOptions,...e},this.label=e.label??"",this.resource=e.resource,this.autoGarbageCollect=e.autoGarbageCollect,this._resolution=e.resolution,e.width?this.pixelWidth=e.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,e.height?this.pixelHeight=e.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=e.format,this.dimension=e.dimensions,this.viewDimension=e.viewDimension??e.dimensions,this.arrayLayerCount=e.arrayLayerCount,this.mipLevelCount=e.mipLevelCount,this.autoGenerateMipmaps=e.autoGenerateMipmaps,this.sampleCount=e.sampleCount,this.antialias=e.antialias,this.transient=e.transient??!1,this.alphaMode=e.alphaMode,this.style=new ot(Do(e)),this._ownsStyle=!0,this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._ownsStyle=!1,this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}set maxAnisotropy(e){this._style.maxAnisotropy=e}get maxAnisotropy(){return this._style.maxAnisotropy}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))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=Y("resource"),this.emit("change",this),this.emit("unload",this);for(let e in this._gpuData)this._gpuData[e]?.destroy?.();this._gpuData=Object.create(null)}get resourceWidth(){let{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){let{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,r){r||(r=this._resolution),e||(e=this.width),t||(t=this.height);let s=Math.round(e*r),n=Math.round(t*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=Y("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=ml(this.pixelWidth)&&ml(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};pp.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};oe=pp});function Av(){for(let i=0;i<16;i++){let e=[];bl.push(e);for(let t=0;t<16;t++){let r=Lo(kr[i]*kr[t]+Ir[i]*Br[t]),s=Lo(Br[i]*kr[t]+Gr[i]*Br[t]),n=Lo(kr[i]*Ir[t]+Ir[i]*Gr[t]),o=Lo(Br[i]*Ir[t]+Gr[i]*Gr[t]);for(let a=0;a<16;a++)if(kr[a]===r&&Br[a]===s&&Ir[a]===n&&Gr[a]===o){e.push(a);break}}}for(let i=0;i<16;i++){let e=new k;e.set(kr[i],Br[i],Ir[i],Gr[i],0,0),gp.push(e)}}var kr,Br,Ir,Gr,bl,gp,Lo,ie,vs=p(()=>{ce();kr=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Br=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Ir=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Gr=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],bl=[],gp=[],Lo=Math.sign;Av();ie={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=>kr[i],uY:i=>Br[i],vX:i=>Ir[i],vY:i=>Gr[i],inv:i=>i&8?i&15:-i&7,add:(i,e)=>bl[i][e],sub:(i,e)=>bl[i][ie.inv(e)],rotate180:i=>i^4,isVertical:i=>(i&3)===2,byDirection:(i,e)=>Math.abs(i)*2<=Math.abs(e)?e>=0?ie.S:ie.N:Math.abs(e)*2<=Math.abs(i)?i>0?ie.E:ie.W:e>0?i>0?ie.SE:ie.SW:i>0?ie.NE:ie.NW,matrixAppendRotationInv:(i,e,t=0,r=0,s=0,n=0)=>{let o=gp[ie.inv(e)],a=o.a,c=o.b,l=o.c,d=o.d,h=t-Math.min(0,a*s,l*n,a*s+l*n),u=r-Math.min(0,c*s,d*n,c*s+d*n),f=i.a,m=i.b,g=i.c,x=i.d;i.a=a*f+c*g,i.b=a*m+c*x,i.c=l*f+d*g,i.d=l*m+d*x,i.tx=h*f+u*g+i.tx,i.ty=h*m+u*x+i.ty},transformRectCoords:(i,e,t,r)=>{let{x:s,y:n,width:o,height:a}=i,{x:c,y:l,width:d,height:h}=e;return t===ie.E?(r.set(s+c,n+l,o,a),r):t===ie.S?r.set(d-n-a+c,s+l,a,o):t===ie.W?r.set(d-s-o+c,h-n-a+l,o,a):t===ie.N?r.set(n+c,h-s-o+l,a,o):r.set(s+c,n+l,o,a)}}});var xl,bp=p(()=>{"use strict";xl=()=>{}});var Fr,_l=p(()=>{P();je();Fr=class extends oe{constructor(e){let t=e.resource||new Float32Array(e.width*e.height*4),r=e.format;r||(t instanceof Float32Array?r="rgba32float":t instanceof Int32Array||t instanceof Uint32Array?r="rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?r="rgba16uint":(t instanceof Int8Array,r="bgra8unorm")),super({...e,resource:t,format:r}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}};Fr.extension=_.TextureSource});var xp,Ti,yl=p(()=>{ce();xp=new k,Ti=class{constructor(e,t){this.mapCoord=new k,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._updateID=0,this.clampOffset=0,typeof t>"u"?this.clampMargin=e.width<10?0:.5:this.clampMargin=t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this._texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this)),this.update()}destroy(){this._texture?.removeListener("update",this.update,this),this._texture=null}multiplyUvs(e,t){t===void 0&&(t=e);let r=this.mapCoord;for(let s=0;s<e.length;s+=2){let n=e[s],o=e[s+1];t[s]=n*r.a+o*r.c+r.tx,t[s+1]=n*r.b+o*r.d+r.ty}return t}update(){let e=this._texture;this._updateID++;let t=e.uvs;this.mapCoord.set(t.x1-t.x0,t.y1-t.y0,t.x3-t.x0,t.y3-t.y0,t.x0,t.y0);let r=e.orig,s=e.trim;s&&(xp.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(xp));let n=e.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,c=this.clampOffset/n._resolution;return o[0]=(e.frame.x+a+c)/n.width,o[1]=(e.frame.y+a+c)/n.height,o[2]=(e.frame.x+e.frame.width-a+c)/n.width,o[3]=(e.frame.y+e.frame.height-a+c)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=e.frame.width===n.width&&e.frame.height===n.height&&e.rotate===0,!0}}});var U,ge=p(()=>{Ne();vs();Ve();Ie();_e();bp();_l();je();yl();U=class extends fe{constructor({source:e,label:t,frame:r,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:c,dynamic:l}={}){if(super(),this.uid=Y("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new Q,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=t,this.source=e?.source??new oe,this.noFrame=!r,r)this.frame.copyFrom(r);else{let{width:d,height:h}=this._source;this.frame.width=d,this.frame.height=h}this.orig=s||this.frame,this.trim=n,this.rotate=c??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=l||!1,this.updateUvs()}set source(e){this._source&&this._source.off("resize",this.update,this),this._source=e,e.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new Ti(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:e,frame:t}=this,{width:r,height:s}=this._source,n=t.x/r,o=t.y/s,a=t.width/r,c=t.height/s,l=this.rotate;if(l){let d=a/2,h=c/2,u=n+d,f=o+h;l=ie.add(l,ie.NW),e.x0=u+d*ie.uX(l),e.y0=f+h*ie.uY(l),l=ie.add(l,2),e.x1=u+d*ie.uX(l),e.y1=f+h*ie.uY(l),l=ie.add(l,2),e.x2=u+d*ie.uX(l),e.y2=f+h*ie.uY(l),l=ie.add(l,2),e.x3=u+d*ie.uX(l),e.y3=f+h*ie.uY(l)}else e.x0=n,e.y0=o,e.x1=n+a,e.y1=o,e.x2=n+a,e.y2=o+c,e.x3=n,e.y3=o+c}destroy(e=!1){this._source&&(this._source.off("resize",this.update,this),e&&(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 N(re,"Texture.baseTexture is now Texture.source"),this._source}};U.EMPTY=new U({label:"EMPTY",source:new oe({label:"EMPTY"})});U.EMPTY.destroy=xl;U.WHITE=new U({source:new Fr({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});U.WHITE.destroy=xl});var Rv,vl,Pe,Ur=p(()=>{ys();Mr();je();ge();Rr();Rv=0,vl=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new ot(this.textureOptions)}createTexture(e,t,r,s){let n=new oe({...this.textureOptions,width:e,height:t,resolution:1,antialias:r,autoGarbageCollect:!1,autoGenerateMipmaps:s});return new U({source:n,label:`texturePool_${Rv++}`})}getOptimalTexture(e,t,r=1,s,n=!1){let o=Math.ceil(e*r-1e-6),a=Math.ceil(t*r-1e-6);o=er(o),a=er(a);let c=s?1:0,l=n?1:0,d=(o<<17)+(a<<2)+(l<<1)+c;this._texturePool[d]||(this._texturePool[d]=[]);let h=this._texturePool[d].pop();return h||(h=this.createTexture(o,a,s,n)),h.source._resolution=r,h.source.width=o/r,h.source.height=a/r,h.source.pixelWidth=o,h.source.pixelHeight=a,h.frame.x=0,h.frame.y=0,h.frame.width=e,h.frame.height=t,h.updateUvs(),this._poolKeyHash[h.uid]=d,h}getSameSizeTexture(e,t=!1){let r=e.source;return this.getOptimalTexture(e.width,e.height,r._resolution,t)}returnTexture(e,t=!1){let r=this._poolKeyHash[e.uid];t&&(e.source.style=this.textureStyle),this._texturePool[r].push(e)}clear(e){if(e=e!==!1,e)for(let t in this._texturePool){let r=this._texturePool[t];if(r)for(let s=0;s<r.length;s++)r[s].destroy(!0)}this._texturePool={}}},Pe=new vl;_t.register(Pe)});var Dr,wl=p(()=>{ce();Uo();Ur();Dr=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(e){this.root=e,e._onRender&&this.addOnRender(e),e.didChange=!0;let t=e.children;for(let r=0;r<t.length;r++){let s=t[r];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(e={}){this.textureOptions=e,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Pe.returnTexture(this.texture,!0),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0;let e=this._parentCacheAsTextureRenderGroup;e&&!e.textureNeedsUpdate&&e.updateCacheTexture()}reset(){this.renderGroupChildren.length=0;for(let e in this.childrenToUpdate){let t=this.childrenToUpdate[e];t.list.fill(null),t.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(e){e.renderGroupParent&&e.renderGroupParent._removeRenderGroupChild(e),e.renderGroupParent=this,this.renderGroupChildren.push(e)}_removeRenderGroupChild(e){let t=this.renderGroupChildren.indexOf(e);t>-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e.parentRenderGroup=this,e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e.didChange=!0,this.onChildUpdate(e),e.renderGroup){this.addRenderGroupChild(e.renderGroup);return}e._onRender&&this.addOnRender(e);let t=e.children;for(let r=0;r<t.length;r++)this.addChild(t[r])}removeChild(e){if(this.structureDidChange=!0,e._onRender&&(e.renderGroup||this.removeOnRender(e)),e.parentRenderGroup=null,e.renderGroup){this._removeRenderGroupChild(e.renderGroup);return}let t=e.children;for(let r=0;r<t.length;r++)this.removeChild(t[r])}removeChildren(e){for(let t=0;t<e.length;t++)this.removeChild(e[t])}onChildUpdate(e){let t=this.childrenToUpdate[e.relativeRenderGroupDepth];t||(t=this.childrenToUpdate[e.relativeRenderGroupDepth]={index:0,list:[]}),t.list[t.index++]=e}updateRenderable(e){e.globalDisplayStatus<7||(this.instructionSet.renderPipes[e.renderPipeId].updateRenderable(e),e.didViewUpdate=!1)}onChildViewUpdate(e){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=e}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(e){this._onRenderContainers.indexOf(e)===-1&&this._onRenderContainers.push(e)}removeOnRender(e){let t=this._onRenderContainers.indexOf(e);t!==-1&&this._onRenderContainers.splice(t,1)}runOnRender(e){for(let t=0;t<this._onRenderContainers.length;t++)this._onRenderContainers[t]._onRender(e)}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(e=[]){let t=this.root.children;for(let r=0;r<t.length;r++)this._getChildren(t[r],e);return e}_getChildren(e,t=[]){if(t.push(e),e.renderGroup)return t;let r=e.children;for(let s=0;s<r.length;s++)this._getChildren(r[s],t);return t}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 e=this._parentCacheAsTextureRenderGroup;return e?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new k),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(e.inverseWorldTransform).translate(-e._textureBounds.x,-e._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this.isCachedAsTexture?this.textureOffsetInverseTransform:this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function _p(i,e,t={}){for(let r in e)!t[r]&&e[r]!==void 0&&(i[r]=e[r])}var yp=p(()=>{"use strict"});var Sl,Oo,Tl,No,Ei,ws,Lr,me,Mt=p(()=>{Ne();$e();Rf();P();ce();ol();Po();Ie();_e();he();Zt();Of();Hf();Wf();Xf();$f();Zf();Go();sp();op();cp();dp();wl();yp();Sl=new Be(null),Oo=new Be(null),Tl=new Be(null,1,1),No=new Be(null),Ei=1,ws=2,Lr=4,me=class i extends fe{constructor(e={}){super(),this.uid=Y("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 Be(this,0,0),this._scale=Tl,this._pivot=Oo,this._origin=No,this._skew=Sl,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=[],_p(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){N("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),H.mixin(i,e)}set _didChangeId(e){this._didViewChangeTick=e>>12&4095,this._didContainerChangeTick=e&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...e){if(this.allowChildren||N(re,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let s=0;s<e.length;s++)this.addChild(e[s]);return e[0]}let t=e[0],r=this.renderGroup||this.parentRenderGroup;return t.parent===this?(this.children.splice(this.children.indexOf(t),1),this.children.push(t),r&&(r.structureDidChange=!0),t):(t.parent&&t.parent.removeChild(t),this.children.push(t),this.sortableChildren&&(this.sortDirty=!0),t.parent=this,t.didChange=!0,t._updateFlags=15,r&&r.addChild(t),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this),this._didViewChangeTick++,t._zIndex!==0&&t.depthOfChildModified(),t)}removeChild(...e){if(e.length>1){for(let s=0;s<e.length;s++)this.removeChild(e[s]);return e[0]}let t=e[0],r=this.children.indexOf(t);return r>-1&&(this._didViewChangeTick++,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parentRenderLayer&&t.parentRenderLayer.detach(t),t.parent=null,this.emit("childRemoved",t,this,r),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=ye.get(Dr,this),this.groupTransform=k.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),ye.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,e?.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(e){this._position.x=e}get y(){return this._position.y}set y(e){this._position.y=e}get position(){return this._position}set position(e){this._position.copyFrom(e)}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this._skew))}get angle(){return this.rotation*Bf}set angle(e){this.rotation=e*If}get pivot(){return this._pivot===Oo&&(this._pivot=new Be(this,0,0)),this._pivot}set pivot(e){this._pivot===Oo&&(this._pivot=new Be(this,0,0),this._origin!==No&&O("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===Sl&&(this._skew=new Be(this,0,0)),this._skew}set skew(e){this._skew===Sl&&(this._skew=new Be(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===Tl&&(this._scale=new Be(this,1,1)),this._scale}set scale(e){this._scale===Tl&&(this._scale=new Be(this,0,0)),typeof e=="string"&&(e=parseFloat(e)),typeof e=="number"?this._scale.set(e):this._scale.copyFrom(e)}get origin(){return this._origin===No&&(this._origin=new Be(this,0,0)),this._origin}set origin(e){this._origin===No&&(this._origin=new Be(this,0,0),this._pivot!==Oo&&O("Setting both a pivot and origin on a Container is not recommended. This can lead to unexpected behavior if not handled carefully.")),typeof e=="number"?this._origin.set(e):this._origin.copyFrom(e)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(e){let t=this.getLocalBounds().width;this._setWidth(e,t)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(e){let t=this.getLocalBounds().height;this._setHeight(e,t)}getSize(e){e||(e={});let t=this.getLocalBounds();return e.width=Math.abs(this.scale.x*t.width),e.height=Math.abs(this.scale.y*t.height),e}setSize(e,t){let r=this.getLocalBounds();typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,r.width),t!==void 0&&this._setHeight(t,r.height)}_updateSkew(){let e=this._rotation,t=this._skew;this._cx=Math.cos(e+t._y),this._sx=Math.sin(e+t._y),this._cy=-Math.sin(e-t._x),this._sy=Math.cos(e-t._x)}updateTransform(e){return this.position.set(typeof e.x=="number"?e.x:this.position.x,typeof e.y=="number"?e.y:this.position.y),this.scale.set(typeof e.scaleX=="number"?e.scaleX:this.scale.x,typeof e.scaleY=="number"?e.scaleY:this.scale.y),this.rotation=typeof e.rotation=="number"?e.rotation:this.rotation,this.skew.set(typeof e.skewX=="number"?e.skewX:this.skew.x,typeof e.skewY=="number"?e.skewY:this.skew.y),this.pivot.set(typeof e.pivotX=="number"?e.pivotX:this.pivot.x,typeof e.pivotY=="number"?e.pivotY:this.pivot.y),this.origin.set(typeof e.originX=="number"?e.originX:this.origin.x,typeof e.originY=="number"?e.originY:this.origin.y),this}setFromMatrix(e){e.decompose(this)}updateLocalTransform(){let e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;let t=this.localTransform,r=this._scale,s=this._pivot,n=this._origin,o=this._position,a=r._x,c=r._y,l=s._x,d=s._y,h=-n._x,u=-n._y;t.a=this._cx*a,t.b=this._sx*a,t.c=this._cy*c,t.d=this._sy*c,t.tx=o._x-(l*t.a+d*t.c)+(h*t.a+u*t.c)-h,t.ty=o._y-(l*t.b+d*t.d)+(h*t.b+u*t.d)-u}set alpha(e){e!==this.localAlpha&&(this.localAlpha=e,this._updateFlags|=Ei,this._onUpdate())}get alpha(){return this.localAlpha}set tint(e){let r=Z.shared.setValue(e??16777215).toBgrNumber();r!==this.localColor&&(this.localColor=r,this._updateFlags|=Ei,this._onUpdate())}get tint(){return Jt(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=ws,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(e){let t=e?2:0;(this.localDisplayStatus&2)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Lr,this.localDisplayStatus^=2,this._onUpdate(),this.emit("visibleChanged",e))}get culled(){return!(this.localDisplayStatus&4)}set culled(e){let t=e?0:4;(this.localDisplayStatus&4)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=Lr,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(e){let t=e?1:0;(this.localDisplayStatus&1)!==t&&(this._updateFlags|=Lr,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;let t;if(this.children.length&&(t=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 e=="boolean"?e:e?.children)&&t)for(let s=0;s<t.length;++s)t[s].destroy(e);this.renderGroup?.destroy(),this.renderGroup=null}};H.mixin(me,Nf,Kf,lp,np,ip,jf,Yf,ap,Af,Lf,ep,zf)});var Ot,Ss=p(()=>{"use strict";Ot=(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))(Ot||{})});var Ci,vp=p(()=>{"use strict";Ci=class{constructor(e,t=null,r=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=e,this._context=t,this.priority=r,this._once=s}match(e,t=null){return this._fn===e&&this._context===t}emit(e){this._fn&&(this._context?this._fn.call(this._context,e):this._fn(e));let t=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!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 t=this.next;return this.next=e?null:t,this.previous=null,t}}});var wp,Xe,Pi=p(()=>{Ss();vp();wp=class pt{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 Ci(null,null,1/0),this.deltaMS=1/pt.targetFPMS,this.elapsedMS=1/pt.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),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(e,t,r=Ot.NORMAL){return this._addListener(new Ci(e,t,r))}addOnce(e,t,r=Ot.NORMAL){return this._addListener(new Ci(e,t,r,!0))}_addListener(e){let t=this._head.next,r=this._head;if(!t)e.connect(r);else{for(;t;){if(e.priority>t.priority){e.connect(r);break}r=t,t=t.next}e.previous||e.connect(r)}return this._startIfPossible(),this}remove(e,t){let r=this._head.next;for(;r;)r.match(e,t)?r=r.destroy():r=r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let n=e-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=e-n%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*pt.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=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(Math.max(0,e)/1e3,pt.targetFPMS);this._maxElapsedMS=1/t,this._minElapsedMS&&e>this.maxFPS&&(this.maxFPS=e)}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){e===0?this._minElapsedMS=0:(e<this.minFPS&&(this.minFPS=e),this._minElapsedMS=1/(e/1e3))}static get shared(){if(!pt._shared){let e=pt._shared=new pt;e.autoStart=!0,e._protected=!0}return pt._shared}static get system(){if(!pt._system){let e=pt._system=new pt;e.autoStart=!0,e._protected=!0}return pt._system}};wp.targetFPMS=.06;Xe=wp});var Mi,El=p(()=>{Ss();Pi();Mi=class{constructor(e){this._lastTransform="",this._observer=null,this._tickerAttached=!1,this.updateTranslation=()=>{if(!this._canvas)return;let t=this._canvas.getBoundingClientRect(),r=this._canvas.width,s=this._canvas.height,n=t.width/r*this._renderer.resolution,o=t.height/s*this._renderer.resolution,a=t.left,c=t.top,l=`translate(${a}px, ${c}px) scale(${n}, ${o})`;l!==this._lastTransform&&(this._domElement.style.transform=l,this._lastTransform=l)},this._domElement=e.domElement,this._renderer=e.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(e=>{for(let t of e){if(t.target!==this._canvas)continue;let r=this.canvas.width,s=this.canvas.height,n=t.contentRect.width/r*this._renderer.resolution,o=t.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||Xe.shared.add(this.updateTranslation,this,Ot.HIGH)}destroy(){this._observer?(this._observer.disconnect(),this._observer=null):this._tickerAttached&&Xe.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,Ho=p(()=>{Pt();ur=class i{constructor(e){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 ae,this.page=new ae,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}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(e,t,r){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,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 kv(i){return function(e){return e.test(i)}}function Ts(i){var e={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?e.userAgent=i:i&&i.userAgent&&(e={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var t=e.userAgent,r=t.split("[FBAN");typeof r[1]<"u"&&(t=r[0]),r=t.split("Twitter"),typeof r[1]<"u"&&(t=r[0]);var s=kv(t),n={apple:{phone:s(Cl)&&!s(tr),ipod:s(Sp),tablet:!s(Cl)&&(s(Tp)||Ip(e))&&!s(tr),universal:s(Ep),device:(s(Cl)||s(Sp)||s(Tp)||s(Ep)||Ip(e))&&!s(tr)},amazon:{phone:s(Ai),tablet:!s(Ai)&&s(zo),device:s(Ai)||s(zo)},android:{phone:!s(tr)&&s(Ai)||!s(tr)&&s(Pl),tablet:!s(tr)&&!s(Ai)&&!s(Pl)&&(s(zo)||s(Cp)),device:!s(tr)&&(s(Ai)||s(zo)||s(Pl)||s(Cp))||s(/\bokhttp\b/i)},windows:{phone:s(tr),tablet:s(Pp),device:s(tr)||s(Pp)},other:{blackberry:s(Mp),blackberry10:s(Ap),opera:s(Rp),firefox:s(Bp),chrome:s(kp),device:s(Mp)||s(Ap)||s(Rp)||s(Bp)||s(kp)},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 Cl,Sp,Tp,Ep,Pl,Cp,Ai,zo,tr,Pp,Mp,Ap,Rp,kp,Bp,Ip,Ml=p(()=>{Cl=/iPhone/i,Sp=/iPod/i,Tp=/iPad/i,Ep=/\biOS-universal(?:.+)Mac\b/i,Pl=/\bAndroid(?:.+)Mobile\b/i,Cp=/Android/i,Ai=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,zo=/Silk/i,tr=/Windows Phone/i,Pp=/\bWindows(?:.+)ARM\b/i,Mp=/BlackBerry/i,Ap=/BB10/i,Rp=/Opera Mini/i,kp=/\b(CriOS|Chrome)(?:.+)Mobile/i,Bp=/Mobile(?:.+)Firefox\b/i,Ip=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var Gp=p(()=>{Ml();Ml()});var Bv,Fp,Up=p(()=>{Gp();Bv=Ts.default??Ts,Fp=Bv(globalThis.navigator)});var Iv,Dp,Gv,Fv,Lp,Op,Uv,Dv,Lv,Al,Hp,zp=p(()=>{El();Ho();P();Up();hl();Iv=9,Dp=100,Gv=0,Fv=0,Lp=2,Op=1,Uv=-1e3,Dv=-1e3,Lv=2,Al=class Np{constructor(e,t=Fp){this._mobileInfo=t,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,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}get div(){return this._div}_createTouchHook(){let e=document.createElement("button");e.style.width=`${Op}px`,e.style.height=`${Op}px`,e.style.position="absolute",e.style.top=`${Uv}px`,e.style.left=`${Dv}px`,e.style.zIndex=Lv.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_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=`${Gv}px`,this._div.style.left=`${Fv}px`,this._div.style.pointerEvents="none",this._div.style.zIndex=Lp.toString(),this._canvasObserver=new Mi({domElement:this._div,renderer:this._renderer})),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._deactivateOnMouseMove&&globalThis.document.addEventListener("mousemove",this._boundOnMouseMove,!0);let e=this._renderer.view.canvas;if(e.parentNode)this._canvasObserver.ensureAttached(),this._initAccessibilitySetup();else{let t=new MutationObserver(()=>{e.parentNode&&(t.disconnect(),this._canvasObserver.ensureAttached(),this._initAccessibilitySetup())});t.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 e of this._children)e._accessibleDiv?.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;for(let e in this._pools)this._pools[e].forEach(r=>{r.parentNode&&r.parentNode.removeChild(r)}),delete this._pools[e];this._div?.parentNode&&this._div.parentNode.removeChild(this._div),this._pools={},this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let r=0;r<t.length;r++)this._updateAccessibleObjects(t[r])}init(e){let r={accessibilityOptions:{...Np.defaultOptions,...e?.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 e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,(!this._renderer.renderingToScreen||!this._renderer.view.canvas)&&!this._isRunningTests))return;let t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let r of this._children)r._renderId===this._renderId&&t.add(this._children.indexOf(r))}for(let r=this._children.length-1;r>=0;r--){let s=this._children[r];t.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,Ao(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(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:r}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>r&&(e.height=r-e.y)}_addChild(e){let r=this._getPool(e.accessibleType).pop();r?(r.innerHTML="",r.removeAttribute("title"),r.removeAttribute("aria-label"),r.tabIndex=0):(e.accessibleType==="button"?r=document.createElement("button"):(r=document.createElement(e.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
|
+
`,e.accessibleText&&(r.innerText=e.accessibleText)),r.style.width=`${Dp}px`,r.style.height=`${Dp}px`,r.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",r.style.position="absolute",r.style.zIndex=Lp.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=e.accessiblePointerEvents,r.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?r.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(r.title=`container ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&r.setAttribute("aria-label",e.accessibleHint),e.interactive?r.tabIndex=e.tabIndex:r.tabIndex=0,this.debug&&this._updateDebugHTML(r),e._accessibleActive=!0,e._accessibleDiv=r,r.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv)}_dispatchEvent(e,t){let{container:r}=e.target,s=this._renderer.events.rootBoundary,n=Object.assign(new ur(s),{target:r});s.rootTarget=this._renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode!==Iv||!this._activateOnTab||this._activate()}_onMouseMove(e){e.movementX===0&&e.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(e){e?this._activate():this._deactivate()}_getPool(e){return this._pools[e]||(this._pools[e]=[]),this._pools[e]}};Al.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"accessibility"};Al.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};Hp=Al});var Wp,Vp=p(()=>{"use strict";Wp={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var jp=p(()=>{P();Mt();zp();Vp();H.add(Hp);H.mixin(me,Wp)});var Es,Xp=p(()=>{P();El();Es=class{constructor(e){this._attachedDomElements=[],this._renderer=e,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 Mi({domElement:this._domElement,renderer:this._renderer})}addRenderable(e,t){this._attachedDomElements.includes(e)||this._attachedDomElements.push(e)}updateRenderable(e){}validateRenderable(e){return!0}postrender(){let e=this._attachedDomElements;if(e.length===0){this._domElement.remove();return}this._canvasObserver.ensureAttached();for(let t=0;t<e.length;t++){let r=e[t],s=r.element;if(!r.parent||r.globalDisplayStatus<7)s?.remove(),e.splice(t,1),t--;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,c=r.height*o.y;s.style.transformOrigin=`${a}px ${c}px`,s.style.transform=`matrix(${n.a}, ${n.b}, ${n.c}, ${n.d}, ${n.tx-a}, ${n.ty-c})`,s.style.opacity=r.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let e=0;e<this._attachedDomElements.length;e++)this._attachedDomElements[e].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._canvasObserver.destroy(),this._renderer=null}};Es.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"dom"}});var Nt,Cs=p(()=>{et();Mt();Nt=class extends me{constructor(e){super(e),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 pe(0,1,0,0),this._boundsDirty=!0,this.autoGarbageCollect=e.autoGarbageCollect??!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}containsPoint(e){let t=this.bounds,{x:r,y:s}=e;return r>=t.minX&&r<=t.maxX&&s>=t.minY&&s<=t.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}unload(){this.emit("unload",this);for(let e in this._gpuData)this._gpuData[e]?.destroy();this._gpuData=Object.create(null),this.onViewUpdate()}destroy(e){this.unload(),super.destroy(e),this._bounds=null}collectRenderablesSimple(e,t,r){let{renderPipes:s}=t;s.blendMode.pushBlendMode(this,this.groupBlendMode,e);let o=s[this.renderPipeId];o?.addRenderable&&o.addRenderable(this,e),this.didViewUpdate=!1;let a=this.children,c=a.length;for(let l=0;l<c;l++)a[l].collectRenderables(e,t,r);s.blendMode.popBlendMode(e)}}});var Yp=p(()=>{P();Xp();H.add(Es)});var Rl,At,kl=p(()=>{Ss();Pi();Rl=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this._tickerAdded||!this.domElement||(Xe.system.add(this._tickerUpdate,this,Ot.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(Xe.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 e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY,pointerType:e.pointerType,pointerId:e.pointerId}):new MouseEvent("mousemove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){this._deltaTime+=e.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}},At=new Rl});var rr,Wo=p(()=>{Pt();Ho();rr=class extends ur{constructor(){super(...arguments),this.client=new ae,this.movement=new ae,this.offset=new ae,this.global=new ae,this.screen=new ae}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(e,t,r){return e.worldTransform.applyInverse(r||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,r,s,n,o,a,c,l,d,h,u,f,m,g){throw new Error("Method not implemented.")}}});var tt,Bl=p(()=>{Wo();tt=class extends rr{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 Ht,Il=p(()=>{Wo();Ht=class extends rr{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};Ht.DOM_DELTA_PIXEL=0;Ht.DOM_DELTA_LINE=1;Ht.DOM_DELTA_PAGE=2});var Ov,Nv,Ps,Vo,$p=p(()=>{Ne();Pt();he();kl();Wo();Bl();Il();Ov=2048,Nv=new ae,Ps=new ae,Vo=class{constructor(e){this.dispatch=new fe,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,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(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((r,s)=>r.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let r=0,s=t.length;r<s;r++)t[r].fn(e);else O(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){At.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,Nv.set(e,t),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(e,t){if(!e.target)return;let r=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let s=0,n=r.length-1;s<n;s++)if(e.currentTarget=r[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!(e.propagationStopped||e.propagationImmediatelyStopped)){e.eventPhase=e.BUBBLING_PHASE;for(let s=r.length-2;s>=0;s--)if(e.currentTarget=r[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,r=this._allInteractiveElements){if(r.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=r.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=r[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let r=0;r<Ov&&e!==this.rootTarget&&e.parent;r++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,r,s,n,o=!1){let a=!1;if(this._interactivePrune(e))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(At.pauseUpdate=!1),e.interactiveChildren&&e.children){let d=e.children;for(let h=d.length-1;h>=0;h--){let u=d[h],f=this.hitTestMoveRecursive(u,this._isInteractive(t)?t:u.eventMode,r,s,n,o||n(e,r));if(f){if(f.length>0&&!f[f.length-1].parent)continue;let m=e.isInteractive();(f.length>0||m)&&(m&&this._allInteractiveElements.push(e),f.push(e)),this._hitElements.length===0&&(this._hitElements=f),a=!0}}}let c=this._isInteractive(t),l=e.isInteractive();return l&&l&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:c&&!n(e,r)&&s(e,r)?l?[e]:[]:null}hitTestRecursive(e,t,r,s,n){if(this._interactivePrune(e)||n(e,r))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(At.pauseUpdate=!1),e.interactiveChildren&&e.children){let c=e.children,l=r;for(let d=c.length-1;d>=0;d--){let h=c[d],u=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,l,s,n);if(u){if(u.length>0&&!u[u.length-1].parent)continue;let f=e.isInteractive();return(u.length>0||f)&&u.push(e),u}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,r)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!e||!e.visible||!e.renderable||!e.measurable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,Ps),!e.hitArea.contains(Ps.x,Ps.y)))return!0;if(e.effects&&e.effects.length)for(let r=0;r<e.effects.length;r++){let s=e.effects[r];if(s.containsPoint&&!s.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return e.hitArea?!0:e?.containsPoint?(e.worldTransform.applyInverse(t,Ps),e.containsPoint(Ps)):!1}notifyTarget(e,t){if(!e.currentTarget.isInteractive())return;t??(t=e.type);let r=`on${t}`;e.currentTarget[r]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let r=this.trackingData(e.pointerId);r.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let r=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let c=e.type==="mousemove"?"mouseout":"pointerout",l=this.createPointerEvent(e,c,n);if(this.dispatchEvent(l,"pointerout"),r&&this.dispatchEvent(l,"mouseout"),!t.composedPath().includes(n)){let d=this.createPointerEvent(e,"pointerleave",n);for(d.eventPhase=d.AT_TARGET;d.target&&!t.composedPath().includes(d.target);)d.currentTarget=d.target,this.notifyTarget(d),r&&this.notifyTarget(d,"mouseleave"),d.target=d.target.parent;this.freeEvent(d)}this.freeEvent(l)}if(n!==t.target){let c=e.type==="mousemove"?"mouseover":"pointerover",l=this.clonePointerEvent(t,c);this.dispatchEvent(l,"pointerover"),r&&this.dispatchEvent(l,"mouseover");let d=n?.parent;for(;d&&d!==this.rootTarget.parent&&d!==t.target;)d=d.parent;if(!d||d===this.rootTarget.parent){let u=this.clonePointerEvent(t,"pointerenter");for(u.eventPhase=u.AT_TARGET;u.target&&u.target!==n&&u.target!==this.rootTarget.parent;)u.currentTarget=u.target,this.notifyTarget(u),r&&this.notifyTarget(u,"mouseenter"),u.target=u.target.parent;this.freeEvent(u)}this.freeEvent(l)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),r=this.createPointerEvent(e),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;t.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let r=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),r&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"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;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),r=this.createPointerEvent(e);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(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.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 c=r.button===2;this.notifyTarget(r,c?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(r,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let c=s.clicksByButton[e.button];if(c.target===a.target&&t-c.timeStamp<200?++c.clickCount:c.clickCount=1,c.target=a.target,c.timeStamp=t,a.detail=c.clickCount,a.pointerType==="mouse"){let l=a.button===2;this.dispatchEvent(a,l?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(r)}mapPointerUpOutside(e){if(!(e instanceof tt)){O("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),r=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);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 t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof Ht)){O("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let r=1;r<e.length&&e[r].parent===t;r++)t=e[r];return t}createPointerEvent(e,t,r){let s=this.allocateEvent(tt);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=r??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){let t=this.allocateEvent(Ht);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let r=this.allocateEvent(tt);return r.nativeEvent=e.nativeEvent,r.originalEvent=e.originalEvent,this.copyPointerData(e,r),this.copyMouseData(e,r),this.copyData(e,r),r.target=e.target,r.path=e.composedPath().slice(),r.type=t??r.type,r}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof tt&&t instanceof tt&&(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,t.persistentDeviceId=e.persistentDeviceId)}copyMouseData(e,t){e instanceof rr&&t instanceof rr&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.defaultPrevented=!1,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let r=e.currentTarget._events[t];if(r)if("fn"in r)r.once&&e.currentTarget.removeListener(t,r.fn,void 0,!0),r.fn.call(r.context,e);else for(let s=0,n=r.length;s<n&&!e.propagationImmediatelyStopped;s++)r[s].once&&e.currentTarget.removeListener(t,r[s].fn,void 0,!0),r[s].fn.call(r[s].context,e)}}});var Hv,zv,Fl,jo,Ul=p(()=>{P();$p();kl();Bl();Il();Hv=1,zv={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},Fl=class Gl{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new Vo(null),At.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new tt(null),this._rootWheelEvent=new Ht(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Gl.defaultEventFeatures},{set:(t,r,s)=>(r==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),t[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(e){let{canvas:t,resolution:r}=this.renderer;this.setTargetElement(t),this.resolution=r,Gl._defaultEventMode=e.eventMode??"passive",Object.assign(this.features,e.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){At.destroy(),this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e||(e="default");let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let r=this.cursorStyles[e];if(r)switch(typeof r){case"string":t&&(this.domElement.style.cursor=r);break;case"function":r(e);break;case"object":t&&Object.assign(this.domElement.style,r);break}else t&&typeof e=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!("cancelable"in e))&&e.preventDefault();for(let r=0,s=t.length;r<s;r++){let n=t[r],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,At.pointerMoved();let t=this._normalizeToPointerData(e);for(let r=0,s=t.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,t[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let r=t!==this.domElement?"outside":"",s=this._normalizeToPointerData(e);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(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let r=0,s=t.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,t[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,At.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;At.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="none",e.msTouchAction="none"):this.supportsPointerEvents&&(e.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;At.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="",e.msTouchAction=""):this.supportsPointerEvents&&(e.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(e,t,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;e.x=(t-s.left)*(this.domElement.width/s.width)*n,e.y=(r-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let r=0,s=e.changedTouches.length;r<s;r++){let n=e.changedTouches[r];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=e.touches.length===1&&e.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=e.type,n.altKey??(n.altKey=e.altKey),n.ctrlKey??(n.ctrlKey=e.ctrlKey),n.metaKey??(n.metaKey=e.metaKey),n.shiftKey??(n.shiftKey=e.shiftKey),t.push(n)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){let r=e;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=Hv),typeof r.pressure>"u"&&(r.pressure=.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),r.isNormalized=!0,t.push(r)}else t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){return e.originalEvent=null,e.nativeEvent=t,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,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=zv[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};Fl.extension={name:"events",type:[_.WebGLSystem,_.CanvasSystem,_.WebGPUSystem],priority:-1};Fl.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};jo=Fl});var qp,Kp=p(()=>{Ul();Ho();qp={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??jo.defaultEventMode},set eventMode(i){this._internalEventMode=i},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(i,e,t){let r=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof t=="object"?t.signal:void 0,n=typeof t=="object"?t.once===!0:!1,o=typeof e=="function"?void 0:e;i=r?`${i}capture`:i;let a=typeof e=="function"?e:e.handleEvent,c=this;s&&s.addEventListener("abort",()=>{c.off(i,a,o)}),n?c.once(i,a,o):c.on(i,a,o)},removeEventListener(i,e,t){let r=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;i=r?`${i}capture`:i,e=typeof e=="function"?e:e.handleEvent,this.off(i,e,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 Zp=p(()=>{P();Mt();Ul();Kp();H.add(jo);H.mixin(me,qp)});var Dl,Qp=p(()=>{"use strict";Dl=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Dl||{})});var Jp,e0=p(()=>{"use strict";Jp={createCanvas:(i,e)=>{let t=document.createElement("canvas");return t.width=i,t.height=e,t},createImage:()=>new Image,getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(i,e)=>fetch(i,e),parseXML:i=>new DOMParser().parseFromString(i,"text/xml")}});var t0,z,be=p(()=>{e0();t0=Jp,z={get(){return t0},set(i){t0=i}}});function Rt(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 Wv(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Vv(i,e,t){return i.replace(new RegExp(Wv(e),"g"),t)}function jv(i,e){let t="",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(t.length<2||r!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){let c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",r=0):(t=t.slice(0,c),r=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",r=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",r=2)}else t.length>0?t+=`/${i.slice(s+1,a)}`:t=i.slice(s+1,a),r=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Or,Ll=p(()=>{be();Or={toPosix(i){return Vv(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){Rt(i),i=this.toPosix(i);let e=/^file:\/\/\//.exec(i);if(e)return e[0];let t=/^[^/:]+:\/{0,2}/.exec(i);return t?t[0]:""},toAbsolute(i,e,t){if(Rt(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;let r=Ms(this.toPosix(e??z.get().getBaseUrl())),s=Ms(this.toPosix(t??this.rootname(r)));return i=this.toPosix(i),i.startsWith("/")?Or.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(Rt(i),i.length===0)return".";if(this.isDataUrl(i)||this.isBlobUrl(i))return i;i=this.toPosix(i);let e="",t=i.startsWith("/");this.hasProtocol(i)&&(e=this.rootname(i),i=i.slice(e.length));let r=i.endsWith("/");return i=jv(i,!1),i.length>0&&r&&(i+="/"),t?`/${i}`:e+i},isAbsolute(i){return Rt(i),i=this.toPosix(i),this.hasProtocol(i)?!0:i.startsWith("/")},join(...i){if(i.length===0)return".";let e;for(let t=0;t<i.length;++t){let r=i[t];if(Rt(r),r.length>0)if(e===void 0)e=r;else{let s=i[t-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?e+=`/../${r}`:e+=`/${r}`}}return e===void 0?".":this.normalize(e)},dirname(i){if(Rt(i),i.length===0)return".";i=this.toPosix(i);let e=i.charCodeAt(0),t=e===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(e=i.charCodeAt(a),e===47){if(!s){r=a;break}}else s=!1;return r===-1?t?"/":this.isUrl(o)?n+i:n:t&&r===1?"//":n+i.slice(0,r)},rootname(i){Rt(i),i=this.toPosix(i);let e="";if(i.startsWith("/")?e="/":e=this.getProtocol(i),this.isUrl(i)){let t=i.indexOf("/",e.length);t!==-1?e=i.slice(0,t):e=i,e.endsWith("/")||(e+="/")}return e},basename(i,e){Rt(i),e&&Rt(e),i=Ms(this.toPosix(i));let t=0,r=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=i.length){if(e.length===i.length&&e===i)return"";let o=e.length-1,a=-1;for(n=i.length-1;n>=0;--n){let c=i.charCodeAt(n);if(c===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(c===e.charCodeAt(o)?--o===-1&&(r=n):(o=-1,r=a))}return t===r?r=a:r===-1&&(r=i.length),i.slice(t,r)}for(n=i.length-1;n>=0;--n)if(i.charCodeAt(n)===47){if(!s){t=n+1;break}}else r===-1&&(s=!1,r=n+1);return r===-1?"":i.slice(t,r)},extname(i){Rt(i),i=Ms(this.toPosix(i));let e=-1,t=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){t=o+1;break}continue}r===-1&&(s=!1,r=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||r===-1||n===0||n===1&&e===r-1&&e===t+1?"":i.slice(e,r)},parse(i){Rt(i);let e={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return e;i=Ms(this.toPosix(i));let t=i.charCodeAt(0),r=this.isAbsolute(i),s,n="";e.root=this.rootname(i),r||this.hasProtocol(i)?s=1:s=0;let o=-1,a=0,c=-1,l=!0,d=i.length-1,h=0;for(;d>=s;--d){if(t=i.charCodeAt(d),t===47){if(!l){a=d+1;break}continue}c===-1&&(l=!1,c=d+1),t===46?o===-1?o=d:h!==1&&(h=1):o!==-1&&(h=-1)}return o===-1||c===-1||h===0||h===1&&o===c-1&&o===a+1?c!==-1&&(a===0&&r?e.base=e.name=i.slice(1,c):e.base=e.name=i.slice(a,c)):(a===0&&r?(e.name=i.slice(1,o),e.base=i.slice(1,c)):(e.name=i.slice(a,o),e.base=i.slice(a,c)),e.ext=i.slice(o,c)),e.dir=this.dirname(i),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":",joinExtensions:[".html"]}});var fr,Ol=p(()=>{"use strict";fr=(i,e,t=!1)=>(Array.isArray(i)||(i=[i]),e?i.map(r=>typeof r=="string"||t?e(r):r):i)});function r0(i,e,t,r,s){let n=e[t];for(let o=0;o<n.length;o++){let a=n[o];t<e.length-1?r0(i.replace(r[t],a),e,t+1,r,s):s.push(i.replace(r[t],a))}}function i0(i){let e=/\{(.*?)\}/g,t=i.match(e),r=[];if(t){let s=[];t.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),r0(i,s,0,t,r)}else r.push(i);return r}var s0=p(()=>{"use strict"});var Nl,n0=p(()=>{"use strict";Nl=i=>!Array.isArray(i)});function Xv(i){return i.split(".").pop().split("?").shift().split("#").shift()}var As,o0=p(()=>{he();Ll();Ol();s0();n0();As=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${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(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}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(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(r=>`${encodeURIComponent(r)}=${encodeURIComponent(t[r])}`).join("&")}}getAlias(e){let{alias:t,src:r}=e;return fr(t||r,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}removeAlias(e,t){this._assetMap[e]&&(t&&t!==this._resolverHash[e]||(delete this._resolverHash[e],delete this._assetMap[e]))}addManifest(e){this._manifest&&O("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let r=[],s=t;Array.isArray(t)||(s=Object.entries(t).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,c;if(typeof a=="string"){let l=this._createBundleAssetId(e,a);r.push(l),c=[a,l]}else{let l=a.map(d=>this._createBundleAssetId(e,d));r.push(...l),c=[...a,...l]}this.add({...n,alias:c,src:o})}),this._bundles[e]=r}add(e){let t=[];Array.isArray(e)?t.push(...e):t.push(e);let r;r=n=>{this.hasKey(n)&&O(`[Resolver] already has key: ${n} overwriting`)},fr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:l,parser:d}=n,h=fr(o).map(g=>typeof g=="string"?i0(g):Array.isArray(g)?g:[g]),u=this.getAlias(n);Array.isArray(u)?u.forEach(r):r(u);let f=[],m=g=>{let x=this._parsers.find(b=>b.test(g));return{src:g,...x?.parse(g)}};h.forEach(g=>{g.forEach(x=>{let b={};if(typeof x!="object"?b=m(x):(a=x.data??a,c=x.format??c,(x.loadParser||x.parser)&&(l=x.loadParser??l,d=x.parser??d),b={...m(x.src),...x}),!u)throw new Error(`[Resolver] alias is undefined for this asset: ${b.src}`);b=this._buildResolvedAsset(b,{aliases:u,data:a,format:c,loadParser:l,parser:d,progressSize:n.progressSize}),f.push(b)})}),u.forEach(g=>{this._assetMap[g]=f})})}resolveBundle(e){let t=Nl(e);e=fr(e);let r={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let c in o){let l=o[c];a[this._extractAssetIdFromBundle(s,c)]=l}r[s]=a}}),t?r[e[0]]:r}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let r={};for(let s in t)r[s]=t[s].src;return r}return t.src}resolve(e){let t=Nl(e);e=fr(e);let r={};return e.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(c=>{let l=n.filter(d=>d[a]?d[a]===c:!1);l.length&&(n=l)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});r[s]=this._resolverHash[s]}),t?r[e[0]]:r}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;t<e.length;t++){let r=e[t],s=this._preferredOrder.find(n=>n.params.format.includes(r.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){let{aliases:r,data:s,loadParser:n,parser:o,format:a,progressSize:c}=t;return(this._basePath||this._rootPath)&&(e.src=Or.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=r??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...s||{},...e.data},e.loadParser=n??e.loadParser,e.parser=o??e.parser,e.format=a??e.format??Xv(e.src),c!==void 0&&(e.progressSize=c),e}};As.RETINA_PREFIX=/@([0-9\.]+)x/});var Hl,a0=p(()=>{"use strict";Hl=(i,e)=>{let t=e.split("?")[1];return t&&(i+=`?${t}`),i}});var c0,zl,l0=p(()=>{Ve();je();ge();c0=class Rs{constructor(e,t){this.linkedSheets=[];let r=e;e?.source instanceof oe&&(r={texture:e,data:t});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(e=>{this._callback=e,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(e,t=!1){let r=e,s=t?1/0:Rs.BATCH_SIZE;for(;r-e<s&&r<this._frameKeys.length;){let n=this._frameKeys[r],o=this._frames[n],a=o.frame;if(a){let c=null,l=null,d=o.trimmed!==!1&&o.sourceSize?o.sourceSize:o.frame,h=new Q(0,0,Math.floor(d.w)/this.resolution,Math.floor(d.h)/this.resolution);o.rotated?c=new Q(Math.floor(a.x)/this.resolution,Math.floor(a.y)/this.resolution,Math.floor(a.h)/this.resolution,Math.floor(a.w)/this.resolution):c=new Q(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&&(l=new Q(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:c,orig:h,trim:l,rotate:o.rotated?2:0,defaultAnchor:o.anchor,defaultBorders:o.borders,label:n.toString()})}r++}}_processAnimations(){let e=this.data.animations||{};for(let t in e){this.animations[t]=[];for(let r=0;r<e[t].length;r++){let s=e[t][r];this.animations[t].push(this.textures[s])}}}_parseComplete(){let e=this._callback;this._callback=null,this._batchIndex=0,e.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(e=!1){for(let t in this.textures)this.textures[t].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,e&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};c0.BATCH_SIZE=1e3;zl=c0});function d0(i,e,t){let r={};if(i.forEach(s=>{r[s]=e}),Object.keys(e.textures).forEach(s=>{r[`${e.cachePrefix}${s}`]=e.textures[s]}),!t){let s=Or.dirname(i[0]);e.linkedSheets.forEach((n,o)=>{let a=d0([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var Yv,h0,u0=p(()=>{Qp();o0();a0();P();ge();Ll();l0();Yv=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];h0={extension:_.Asset,cache:{test:i=>i instanceof zl,getCacheableAssets:(i,e)=>d0(i,e,!1)},resolver:{extension:{type:_.ResolveParser,name:"resolveSpritesheet"},test:i=>{let t=i.split("?")[0].split("."),r=t.pop(),s=t.pop();return r==="json"&&Yv.includes(s)},parse:i=>{let e=i.split(".");return{resolution:parseFloat(As.RETINA_PREFIX.exec(i)?.[1]??"1"),format:e[e.length-2],src:i}}},loader:{name:"spritesheetLoader",id:"spritesheet",extension:{type:_.LoadParser,priority:Dl.Normal,name:"spritesheetLoader"},async testParse(i,e){return Or.extname(e.src).toLowerCase()===".json"&&!!i.frames},async parse(i,e,t){let{texture:r,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Or.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(r instanceof U)c=r;else{let h=Hl(a+(s??i.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let l=new zl({texture:c.source,data:i,cachePrefix:o});await l.parse();let d=i?.meta?.related_multi_packs;if(Array.isArray(d)){let h=[];for(let f of d){if(typeof f!="string")continue;let m=a+f;e.data?.ignoreMultiPack||(m=Hl(m,e.src),h.push(t.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let u=await Promise.all(h);l.linkedSheets=u,u.forEach(f=>{f.linkedSheets=[l].concat(l.linkedSheets.filter(m=>m!==f))})}return l},async unload(i,e,t){await t.unload(i.textureSource._sourceOrigin),i.destroy(!1)}}}});var Xo=p(()=>{P();u0();H.add(h0)});function Yo(i,e,t){let{width:r,height:s}=t.orig,n=t.trim;if(n){let o=n.width,a=n.height;i.minX=n.x-e._x*r,i.maxX=i.minX+o,i.minY=n.y-e._y*s,i.maxY=i.minY+a}else i.minX=-e._x*r,i.maxX=i.minX+r,i.minY=-e._y*s,i.maxY=i.minY+s}var Wl=p(()=>{"use strict"});var at,$o=p(()=>{Po();ge();Wl();_e();Cs();at=class i extends Nt{constructor(e=U.EMPTY){e instanceof U&&(e={texture:e});let{texture:t=U.EMPTY,anchor:r,roundPixels:s,width:n,height:o,...a}=e;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new Be({_onUpdate:()=>{this.onViewUpdate()}}),r?this.anchor=r:t.defaultAnchor&&(this.anchor=t.defaultAnchor),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(e,t=!1){return e instanceof U?new i(e):new i(U.from(e,t))}set texture(e){e||(e=U.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,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 Yo(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return N("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let e=this._anchor,t=this._texture,r=this._bounds,{width:s,height:n}=t.orig;r.minX=-e._x*s,r.maxX=r.minX+s,r.minY=-e._y*n,r.maxY=r.minY+n}destroy(e=!1){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(r)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this._texture.orig.width),t!==void 0&&this._setHeight(t,this._texture.orig.height)}}});function qo(i,e,t){let r=$v;i.measurable=!0,vi(i,t,r),e.addBoundsMask(r),i.measurable=!1}var $v,Vl=p(()=>{et();xs();$v=new pe});function Ko(i,e,t){let r=ft.get();i.measurable=!0;let s=Ge.get().identity(),n=f0(i,t,s);Si(i,r,n),i.measurable=!1,e.addBoundsMask(r),Ge.return(s),ft.return(r)}function f0(i,e,t){return i?(i!==e&&(f0(i.parent,e,t),i.updateLocalTransform(),t.append(i.localTransform)),t):(O("Mask bounds, renderable is not inside the root container"),t)}var jl=p(()=>{Fo();Ar();he()});var ks,p0=p(()=>{P();$o();Vl();jl();ks=class{constructor(e){this.priority=0,this.inverse=!1,this.channel="red",this.pipe="alphaMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.renderMaskToTexture=!(e instanceof at),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(e,t){this.inverse||qo(this.mask,e,t)}addLocalBounds(e,t){Ko(this.mask,e,t)}containsPoint(e,t){let r=this.mask;return t(r,e)}destroy(){this.reset()}static test(e){return e instanceof at}};ks.extension=_.MaskEffect});var Bs,m0=p(()=>{P();Bs=class{constructor(e){this.priority=0,this.pipe="colorMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e}destroy(){}static test(e){return typeof e=="number"}};Bs.extension=_.MaskEffect});var Is,g0=p(()=>{P();Mt();Vl();jl();Is=class{constructor(e){this.priority=0,this.pipe="stencilMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask!==null&&(this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null)}addBounds(e,t){qo(this.mask,e,t)}addLocalBounds(e,t){Ko(this.mask,e,t)}containsPoint(e,t){let r=this.mask;return t(r,e)}destroy(){this.reset()}static test(e){return e instanceof me}};Is.extension=_.MaskEffect});var Se,pr=p(()=>{be();P();je();Se=class extends oe{constructor(e){e.resource||(e.resource=z.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity,this.resizeCanvas(),this.transparent=!!e.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(e=this.width,t=this.height,r=this._resolution){let s=super.resize(e,t,r);return s&&this.resizeCanvas(),s}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};Se.extension=_.TextureSource});var kt,Zo=p(()=>{P();je();kt=class extends oe{constructor(e){super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||globalThis.VideoFrame&&e instanceof VideoFrame}};kt.extension=_.TextureSource});async function b0(){return Xl??(Xl=(async()=>{let e=z.get().createCanvas(1,1).getContext("webgl");if(!e)return"premultiply-alpha-on-upload";let t=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(!t)return"premultiply-alpha-on-upload";let r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);let n=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),e.deleteFramebuffer(s),e.deleteTexture(r),e.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Xl}var Xl,x0=p(()=>{be()});var Qo,y0,v0=p(()=>{P();Pi();x0();je();Qo=class _0 extends oe{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={..._0.defaultOptions,...e},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=e.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=e.autoPlay!==!1,this.alphaMode=e.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),e.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let e=Xe.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!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 e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.isValid||e.addEventListener("loadedmetadata",this._onLoadedMetadata),this.alphaMode=await b0(),this._load=new Promise((r,s)=>{this.isValid?r(this):(this._resolve=r,this._reject=s,t.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))})),e.load())}),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.resource;return!e.paused&&!e.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 e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.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 e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("loadedmetadata",this._onLoadedMetadata),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(Xe.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||(Xe.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(Xe.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};Qo.extension=_.TextureSource;Qo.defaultOptions={...oe.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Qo.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};y0=Qo});var Yl,Nr,w0=p(()=>{he();Ol();Yl=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||O(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let r=fr(e),s;for(let c=0;c<this.parsers.length;c++){let l=this.parsers[c];if(l.test(t)){s=l.getCacheableAssets(r,t);break}}let n=new Map(Object.entries(s||{}));s||r.forEach(c=>{n.set(c,t)});let o=[...n.keys()],a={cacheKeys:o,keys:r};r.forEach(c=>{this._cacheMap.set(c,a)}),o.forEach(c=>{let l=s?s[c]:t;this._cache.has(c)&&this._cache.get(c)!==l&&O("[Cache] already has key:",c),this._cache.set(c,n.get(c))})}remove(e){if(!this._cacheMap.has(e)){O(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},Nr=new Yl});function S0(i={}){let e=i&&i.resource,t=e?i.resource:i,r=e?i:{resource:i};for(let s=0;s<$l.length;s++){let n=$l[s];if(n.test(t))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function T0(i={},e=!1){let t=i&&i.resource,r=t?i.resource:i,s=t?i:{resource:i};if(!e&&Nr.has(r))return Nr.get(r);let n=new U({source:S0(s)});return n.on("destroy",()=>{Nr.has(r)&&Nr.remove(r)}),e||Nr.set(r,n),n}function E0(i,e=!1){return typeof i=="string"?Nr.get(i):i instanceof oe?new U({source:i}):T0(i,e)}var $l,ql=p(()=>{w0();P();je();ge();$l=[];H.handleByList(_.TextureSource,$l);U.from=E0;oe.from=S0});var Jo=p(()=>{P();p0();m0();g0();_l();pr();Zo();v0();ql();H.add(ks,Bs,Is,y0,kt,Se,Fr)});function C0(i){let e=z.get().createCanvas(6,1),t=e.getContext("2d");return t.fillStyle=i,t.fillRect(0,0,6,1),e}function ea(){if(Ri!==void 0)return Ri;try{let i=C0("#ff00ff"),e=C0("#ffff00"),r=z.get().createCanvas(6,1).getContext("2d");r.globalCompositeOperation="multiply",r.drawImage(i,0,0),r.drawImage(e,2,0);let s=r.getImageData(2,0,1,1);if(!s)Ri=!1;else{let n=s.data;Ri=n[0]===255&&n[1]===0&&n[2]===0}}catch{Ri=!1}return Ri}var Ri,Kl=p(()=>{be()});var q,ki=p(()=>{$e();be();vs();Kl();q={canvas:null,convertTintToImage:!1,cacheStepsPerColorChannel:8,canUseMultiply:ea(),tintMethod:null,_canvasSourceCache:new WeakMap,_unpremultipliedCache:new WeakMap,getCanvasSource:i=>{let e=i.source,t=e?.resource;if(!t)return null;let r=e.alphaMode==="premultiplied-alpha",s=e.resourceWidth??e.pixelWidth,n=e.resourceHeight??e.pixelHeight,o=s!==e.pixelWidth||n!==e.pixelHeight;if(r){if((t instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&t instanceof OffscreenCanvas)&&!o)return t;let a=q._unpremultipliedCache.get(e);if(a?.resourceId===e._resourceId)return a.canvas}if(t instanceof Uint8Array||t instanceof Uint8ClampedArray||t instanceof Int8Array||t instanceof Uint16Array||t instanceof Int16Array||t instanceof Uint32Array||t instanceof Int32Array||t instanceof Float32Array||t instanceof ArrayBuffer){let a=q._canvasSourceCache.get(e);if(a?.resourceId===e._resourceId)return a.canvas;let c=z.get().createCanvas(e.pixelWidth,e.pixelHeight),l=c.getContext("2d"),d=l.createImageData(e.pixelWidth,e.pixelHeight),h=d.data,u=t instanceof ArrayBuffer?new Uint8Array(t):new Uint8Array(t.buffer,t.byteOffset,t.byteLength);if(e.format==="bgra8unorm")for(let f=0;f<h.length&&f+3<u.length;f+=4)h[f]=u[f+2],h[f+1]=u[f+1],h[f+2]=u[f],h[f+3]=u[f+3];else h.set(u.subarray(0,h.length));return l.putImageData(d,0,0),q._canvasSourceCache.set(e,{canvas:c,resourceId:e._resourceId}),c}if(r){let a=z.get().createCanvas(e.pixelWidth,e.pixelHeight),c=a.getContext("2d",{willReadFrequently:!0});a.width=e.pixelWidth,a.height=e.pixelHeight,c.drawImage(t,0,0);let l=c.getImageData(0,0,a.width,a.height),d=l.data;for(let h=0;h<d.length;h+=4){let u=d[h+3];if(u>0){let f=255/u;d[h]=Math.min(255,d[h]*f+.5),d[h+1]=Math.min(255,d[h+1]*f+.5),d[h+2]=Math.min(255,d[h+2]*f+.5)}}return c.putImageData(l,0,0),q._unpremultipliedCache.set(e,{canvas:a,resourceId:e._resourceId}),a}if(o){let a=q._canvasSourceCache.get(e);if(a?.resourceId===e._resourceId)return a.canvas;let c=z.get().createCanvas(e.pixelWidth,e.pixelHeight),l=c.getContext("2d");return c.width=e.pixelWidth,c.height=e.pixelHeight,l.drawImage(t,0,0),q._canvasSourceCache.set(e,{canvas:c,resourceId:e._resourceId}),c}return t},getTintedCanvas:(i,e)=>{let t=i.texture,r=Z.shared.setValue(e).toHex(),s=t.tintCache||(t.tintCache={}),n=s[r],o=t.source._resourceId;if(n?.tintId===o)return n;let a=n&&"getContext"in n?n:z.get().createCanvas();if(q.tintMethod(t,e,a),a.tintId=o,q.convertTintToImage&&a.toDataURL!==void 0){let c=z.get().createImage();c.src=a.toDataURL(),c.tintId=o,s[r]=c}else s[r]=a;return s[r]},getTintedPattern:(i,e)=>{let t=Z.shared.setValue(e).toHex(),r=i.patternCache||(i.patternCache={}),s=i.source._resourceId,n=r[t];return n?.tintId===s||(q.canvas||(q.canvas=z.get().createCanvas()),q.tintMethod(i,e,q.canvas),n=q.canvas.getContext("2d").createPattern(q.canvas,"repeat"),n.tintId=s,r[t]=n),n},applyPatternTransform:(i,e,t=!0)=>{if(!e)return;let r=i;if(!r.setTransform)return;let s=globalThis.DOMMatrix;if(!s)return;let n=new s([e.a,e.b,e.c,e.d,e.tx,e.ty]);r.setTransform(t?n.inverse():n)},tintWithMultiply:(i,e,t)=>{let r=t.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=ie.isVertical(o),c=a?s.height:s.width,l=a?s.width:s.height;t.width=Math.ceil(c),t.height=Math.ceil(l),r.save(),r.fillStyle=Z.shared.setValue(e).toHex(),r.fillRect(0,0,c,l),r.globalCompositeOperation="multiply";let d=q.getCanvasSource(i);if(!d){r.restore();return}o&&q._applyInverseRotation(r,o,s.width,s.height),r.drawImage(d,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.globalCompositeOperation="destination-atop",r.drawImage(d,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithOverlay:(i,e,t)=>{let r=t.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=ie.isVertical(o),c=a?s.height:s.width,l=a?s.width:s.height;t.width=Math.ceil(c),t.height=Math.ceil(l),r.save(),r.globalCompositeOperation="copy",r.fillStyle=Z.shared.setValue(e).toHex(),r.fillRect(0,0,c,l),r.globalCompositeOperation="destination-atop";let d=q.getCanvasSource(i);if(!d){r.restore();return}o&&q._applyInverseRotation(r,o,s.width,s.height),r.drawImage(d,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore()},tintWithPerPixel:(i,e,t)=>{let r=t.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=ie.isVertical(o),c=a?s.height:s.width,l=a?s.width:s.height;t.width=Math.ceil(c),t.height=Math.ceil(l),r.save(),r.globalCompositeOperation="copy";let d=q.getCanvasSource(i);if(!d){r.restore();return}o&&q._applyInverseRotation(r,o,s.width,s.height),r.drawImage(d,s.x,s.y,s.width,s.height,0,0,s.width,s.height),r.restore();let h=e>>16&255,u=e>>8&255,f=e&255,m=r.getImageData(0,0,c,l),g=m.data;for(let x=0;x<g.length;x+=4)g[x]=g[x]*h/255,g[x+1]=g[x+1]*u/255,g[x+2]=g[x+2]*f/255;r.putImageData(m,0,0)},_applyInverseRotation:(i,e,t,r)=>{let s=ie.inv(e),n=ie.uX(s),o=ie.uY(s),a=ie.vX(s),c=ie.vY(s),l=-Math.min(0,n*t,a*r,n*t+a*r),d=-Math.min(0,o*t,c*r,o*t+c*r);i.transform(n,o,a,c,l,d)}};q.tintMethod=q.canUseMultiply?q.tintWithMultiply:q.tintWithPerPixel});var Zl,ir,ta=p(()=>{be();ys();Mr();Zl=class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let r=z.get().createCanvas();r.width=e,r.height=t;let s=r.getContext("2d");return{canvas:r,context:s}}getOptimalCanvasAndContext(e,t,r=1){e=Math.ceil(e*r-1e-6),t=Math.ceil(t*r-1e-6),e=er(e),t=er(t);let s=(e<<17)+(t<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(e,t)),n}returnCanvasAndContext(e){let t=e.canvas,{width:r,height:s}=t,n=(r<<17)+(s<<1);e.context.resetTransform(),e.context.clearRect(0,0,r,s),this._canvasPool[n].push(e)}clear(){this._canvasPool={}}},ir=new Zl;_t.register(ir)});function ra(i){let e=i.length;if(e<6)return 1;let t=0;for(let r=0,s=i[e-2],n=i[e-1];r<e;r+=2){let o=i[r],a=i[r+1];t+=(o-s)*(a+n),s=o,n=a}return t<0?-1:1}var Ql=p(()=>{"use strict"});function P0(i,e,t,r,s,n){let o=i-t,a=e-r,c=s-t,l=n-r,d=o*c+a*l,h=c*c+l*l,u=-1;h!==0&&(u=d/h);let f,m;u<0?(f=t,m=r):u>1?(f=s,m=n):(f=t+u*c,m=r+u*l);let g=i-f,x=e-m;return g*g+x*x}var M0=p(()=>{"use strict"});function Jl(i,e,t,r,s,n,o,a){let c=o-t,l=a-r,d=s-t,h=n-r,u=i-t,f=e-r,m=c*c+l*l,g=c*d+l*h,x=c*u+l*f,b=d*d+h*h,y=d*u+h*f,v=1/(m*b-g*g),w=(b*x-g*y)*v,S=(m*y-g*x)*v;return w>=0&&S>=0&&w+S<1}var A0=p(()=>{"use strict"});var ia,R0=p(()=>{Ve();ia=class i{constructor(e=0,t=0,r=0){this.type="circle",this.x=e,this.y=t,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let r=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=r}strokeContains(e,t,r,s=.5){if(this.radius===0)return!1;let n=this.x-e,o=this.y-t,a=this.radius,c=(1-s)*r,l=Math.sqrt(n*n+o*o);return l<=a+c&&l>a-(r-c)}getBounds(e){return e||(e=new Q),e.x=this.x-this.radius,e.y=this.y-this.radius,e.width=this.radius*2,e.height=this.radius*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var sa,k0=p(()=>{Ve();sa=class i{constructor(e=0,t=0,r=0,s=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=r,this.halfHeight=s}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(e-this.x)/this.halfWidth,s=(t-this.y)/this.halfHeight;return r*=r,s*=s,r+s<=1}strokeContains(e,t,r,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=r*(1-s),c=r-a,l=n-c,d=o-c,h=n+a,u=o+a,f=e-this.x,m=t-this.y,g=f*f/(l*l)+m*m/(d*d),x=f*f/(h*h)+m*m/(u*u);return g>1&&x<=1}getBounds(e){return e||(e=new Q),e.x=this.x-this.halfWidth,e.y=this.y-this.halfHeight,e.width=this.halfWidth*2,e.height=this.halfHeight*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});var qv,Kv,Bi,B0=p(()=>{_e();Ql();M0();Ve();Bi=class i{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let r=[];for(let s=0,n=t.length;s<n;s++)r.push(t[s].x,t[s].y);t=r}this.points=t,this.closePath=!0}isClockwise(){let e=0,t=this.points,r=t.length;for(let s=0;s<r;s+=2){let n=t[s],o=t[s+1],a=t[(s+2)%r],c=t[(s+3)%r];e+=(a-n)*(c+o)}return e<0}containsPolygon(e){let t=this.getBounds(qv),r=e.getBounds(Kv);if(!t.containsRect(r))return!1;let s=e.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 e=this.points.slice(),t=new i(e);return t.closePath=this.closePath,t}contains(e,t){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],c=this.points[n*2+1],l=this.points[o*2],d=this.points[o*2+1];c>t!=d>t&&e<(l-a)*((t-c)/(d-c))+a&&(r=!r)}return r}strokeContains(e,t,r,s=.5){let{points:n}=this,o=s===.5?s:(s-.5)*ra(n)+.5,a=r*o,c=r-a,l=a*a,d=c*c,h=n.length-(this.closePath?0:2);for(let u=0;u<h;u+=2){let f=n[u],m=n[u+1],g=n[(u+2)%n.length],x=n[(u+3)%n.length],b=P0(e,t,f,m,g,x),y=Math.sign((g-f)*(t-m)-(x-m)*(e-f));if(b<=(y<0?l:d))return!0}return!1}getBounds(e){e||(e=new Q);let t=this.points,r=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,c=t.length;a<c;a+=2){let l=t[a],d=t[a+1];r=l<r?l:r,s=l>s?l:s,n=d<n?d:n,o=d>o?d:o}return e.x=r,e.width=s-r,e.y=n,e.height=o-n,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return N("8.11.0","Polygon.lastX is deprecated, please use Polygon.lastX instead."),this.points[this.points.length-2]}get y(){return N("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 na,oa,I0=p(()=>{Ve();na=(i,e,t,r,s,n,o)=>{let a=i-t,c=e-r,l=Math.sqrt(a*a+c*c);return l>=s-n&&l<=s+o},oa=class i{constructor(e=0,t=0,r=0,s=0,n=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=r,this.height=s,this.radius=n}getBounds(e){return e||(e=new Q),e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new i(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+r&&t<=this.y+this.height-r||e>=this.x+r&&e<=this.x+this.width-r)return!0;let s=e-(this.x+r),n=t-(this.y+r),o=r*r;if(s*s+n*n<=o||(s=e-(this.x+this.width-r),s*s+n*n<=o)||(n=t-(this.y+this.height-r),s*s+n*n<=o)||(s=e-(this.x+r),s*s+n*n<=o))return!0}return!1}strokeContains(e,t,r,s=.5){let{x:n,y:o,width:a,height:c,radius:l}=this,d=r*(1-s),h=r-d,u=n+l,f=o+l,m=a-l*2,g=c-l*2,x=n+a,b=o+c;return(e>=n-d&&e<=n+h||e>=x-h&&e<=x+d)&&t>=f&&t<=f+g||(t>=o-d&&t<=o+h||t>=b-h&&t<=b+d)&&e>=u&&e<=u+m?!0:e<u&&t<f&&na(e,t,u,f,l,h,d)||e>x-l&&t<f&&na(e,t,x-l,f,l,h,d)||e>x-l&&t>b-l&&na(e,t,x-l,b-l,l,h,d)||e<u&&t>b-l&&na(e,t,u,b-l,l,h,d)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function aa(i,e){e.clear();let t=e.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?e.matrix=G0.copyFrom(n.textureOffsetInverseTransform).append(s.worldTransform):n?._parentCacheAsTextureRenderGroup?e.matrix=G0.copyFrom(n._parentCacheAsTextureRenderGroup.inverseWorldTransform).append(s.groupTransform):e.matrix=s.worldTransform,e.addBounds(s.bounds)}return e.matrix=t,e}var G0,ed=p(()=>{ce();G0=new k});function ca(i,e,t,r,s=!1){let n=Zv;n.minX=0,n.minY=0,n.maxX=i.width/r|0,n.maxY=i.height/r|0;let o=Pe.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=e/r,o.frame.height=t/r,o.source.emit("update",o.source),o.updateUvs(),o}var Zv,td=p(()=>{Ur();et();Zv=new pe});function F0(i){return typeof i.getCanvasFilterString=="function"}var rd,Gs,U0=p(()=>{P();ki();ta();et();ed();td();rd=class{constructor(){this.skip=!1,this.useClip=!1,this.filters=null,this.container=null,this.bounds=new pe,this.cssFilterString=""}},Gs=class{constructor(e){this._filterStack=[],this._filterStackIndex=0,this._savedStates=[],this._alphaMultiplier=1,this._warnedFilterTypes=new Set,this.renderer=e}push(e){let t=this._pushFilterFrame(),r=e.filterEffect.filters;if(t.skip=!1,t.useClip=!1,t.filters=r,t.container=e.container,t.cssFilterString="",r.every(c=>!c.enabled)){t.skip=!0;return}let s=[],n=1;for(let c of r){if(!c.enabled)continue;if(!F0(c)){this._warnUnsupportedFilter(c);continue}let l=c.getCanvasFilterString();if(l===null){this._warnUnsupportedFilter(c);continue}l&&s.push(l)}if(s.length===0&&n===1){t.skip=!0;return}t.cssFilterString=s.join(" "),this._calculateFilterArea(e,t.bounds),t.useClip=!!e.filterEffect.filterArea;let o=this.renderer.canvasContext.activeContext,a=o.filter||"none";if(this._savedStates.push({filter:a,alphaMultiplier:this._alphaMultiplier}),t.useClip&&Number.isFinite(t.bounds.width)&&Number.isFinite(t.bounds.height)&&t.bounds.width>0&&t.bounds.height>0){let c=this.renderer.canvasContext.activeResolution||1;o.save(),o.setTransform(1,0,0,1,0,0),o.beginPath(),o.rect(t.bounds.x*c,t.bounds.y*c,t.bounds.width*c,t.bounds.height*c),o.clip()}else t.useClip=!1;n!==1&&(this._alphaMultiplier*=n),t.cssFilterString&&(o.filter=a!=="none"?`${a} ${t.cssFilterString}`:t.cssFilterString)}pop(){let e=this._popFilterFrame();if(e.skip)return;let t=this._savedStates.pop();if(!t)return;let r=this.renderer.canvasContext.activeContext;e.useClip?r.restore():r.filter=t.filter,this._alphaMultiplier=t.alphaMultiplier}generateFilteredTexture({texture:e,filters:t}){if(!t?.length||t.every(b=>!b.enabled))return e;let r=[],s=1;for(let b of t){if(!b.enabled)continue;if(!F0(b)){this._warnUnsupportedFilter(b);continue}let y=b.getCanvasFilterString();if(y===null){this._warnUnsupportedFilter(b);continue}y&&r.push(y)}if(r.length===0&&s===1)return e;let n=q.getCanvasSource(e);if(!n)return e;let o=e.frame,a=e.source._resolution??e.source.resolution??1,c=o.width,l=o.height,d=ir.getOptimalCanvasAndContext(c,l,a),{canvas:h,context:u}=d;u.setTransform(1,0,0,1,0,0),u.clearRect(0,0,h.width,h.height),r.length&&(u.filter=r.join(" ")),s!==1&&(u.globalAlpha=s);let f=o.x*a,m=o.y*a,g=c*a,x=l*a;return u.drawImage(n,f,m,g,x,0,0,g,x),u.filter="none",u.globalAlpha=1,ca(h,c,l,a)}_calculateFilterArea(e,t){if(e.renderables?aa(e.renderables,t):e.filterEffect.filterArea?(t.clear(),t.addRect(e.filterEffect.filterArea),t.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,t),e.container){let s=(e.container.renderGroup||e.container.parentRenderGroup)?.cacheToLocalTransform;s&&t.applyMatrix(s)}}_warnUnsupportedFilter(e){let t=e?.constructor?.name||"Filter";this._warnedFilterTypes.has(t)||(this._warnedFilterTypes.add(t),console.warn(`CanvasRenderer: filter "${t}" is not supported in Canvas2D and will be skipped.`))}get alphaMultiplier(){return this._alphaMultiplier}_pushFilterFrame(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new rd),this._filterStackIndex++,e}_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:[_.CanvasSystem],name:"filter"}});var Fs,D0=p(()=>{P();Fs=class{constructor(e){this._renderer=e}push(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:t,filterEffect:e})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(e){e.action==="pushFilter"?this._renderer.filter.push(e):e.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Fs.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"filter"}});function Bt(i,e){let t=L0[i];return t===void 0&&(id[e]===void 0&&(id[e]=1),L0[i]=t=id[e]++),t}var id,L0,Ii=p(()=>{"use strict";id=Object.create(null),L0=Object.create(null)});function da(){return(!la||la?.isContextLost())&&(la=z.get().createCanvas().getContext("webgl",{})),la}var la,sd=p(()=>{be()});function O0(){if(!ha){ha="mediump";let i=da();i&&i.getShaderPrecisionFormat&&(ha=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump")}return ha}var ha,N0=p(()=>{sd()});function H0(i,e,t){return e?i:t?(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 z0=p(()=>{"use strict"});function W0(i,e,t){let r=t?e.maxSupportedFragmentPrecision:e.maxSupportedVertexPrecision;if(i.substring(0,9)!=="precision"){let s=t?e.requestedFragmentPrecision:e.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 V0=p(()=>{"use strict"});function j0(i,e){return e?`#version 300 es
|
|
34
|
+
${i}`:i}var X0=p(()=>{"use strict"});function Y0(i,{name:e="pixi-program"},t=!0){e=e.replace(/\s+/g,"-"),e+=t?"-fragment":"-vertex";let r=t?Qv:Jv;return r[e]?(r[e]++,e+=`-${r[e]}`):r[e]=1,i.indexOf("#define SHADER_NAME")!==-1?i:`${`#define SHADER_NAME ${e}`}
|
|
35
|
+
${i}`}var Qv,Jv,$0=p(()=>{"use strict";Qv={},Jv={}});function q0(i,e){return e?i.replace("#version 300 es",""):i}var K0=p(()=>{"use strict"});var nd,Us,Z0,yt,Hr=p(()=>{Ii();N0();z0();V0();X0();$0();K0();nd={stripVersion:q0,ensurePrecision:W0,addProgramDefines:H0,setProgramName:Y0,insertVersion:j0},Us=Object.create(null),Z0=class od{constructor(e){e={...od.defaultOptions,...e};let t=e.fragment.indexOf("#version 300 es")!==-1,r={stripVersion:t,ensurePrecision:{requestedFragmentPrecision:e.preferredFragmentPrecision,requestedVertexPrecision:e.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:O0()},setProgramName:{name:e.name},addProgramDefines:t,insertVersion:t},s=e.fragment,n=e.vertex;Object.keys(nd).forEach(o=>{let a=r[o];s=nd[o](s,a,!0),n=nd[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=e.transformFeedbackVaryings,this._key=Bt(`${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(e){let t=`${e.vertex}:${e.fragment}`;return Us[t]||(Us[t]=new od(e),Us[t]._cacheKey=t),Us[t]}};Z0.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};yt=Z0});function qe(i){return Q0[i]??Q0.float32}var Q0,mr=p(()=>{"use strict";Q0={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 em(i,e){let t;for(;(t=J0.exec(i))!==null;){let r=e3[t[3]]??"float32";e[t[2]]={location:parseInt(t[1],10),format:r,stride:qe(r).stride,offset:0,instance:!1,start:0}}J0.lastIndex=0}function t3(i){return i.replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"")}function tm({source:i,entryPoint:e}){let t={},r=t3(i),s=r.indexOf(`fn ${e}(`);if(s===-1)return t;let n=r.indexOf("->",s);if(n===-1)return t;let o=r.substring(s,n);if(em(o,t),Object.keys(t).length===0){let a=o.match(/\(\s*\w+\s*:\s*(\w+)/);if(a){let c=a[1],l=new RegExp(`struct\\s+${c}\\s*\\{([^}]+)\\}`,"s"),d=r.match(l);d&&em(d[1],t)}}return t}var e3,J0,rm=p(()=>{mr();e3={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"},J0=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|\)|$)/g});function ua(i){let e=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,t=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*([\w<>]+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,c=/struct\s+(\w+)/,l=i.match(e)?.map(h=>{let u=h.match(s),f=u?.[1]??"",m;return f==="<uniform>"?m="uniform":f.startsWith("<storage")&&(m="storage"),{group:parseInt(h.match(t)[1],10),binding:parseInt(h.match(r)[1],10),name:u[2],accessMode:m,type:h.match(n)[1]}});if(!l)return{groups:[],structs:[]};let d=i.match(o)?.map(h=>{let u=h.match(c)[1],f=h.match(a).reduce((m,g)=>{let[x,b]=g.split(":");return m[x.trim()]=b.trim(),m},{});return f?{name:u,members:f}:null}).filter(({name:h})=>l.some(u=>u.type===h||u.type.includes(`<${h}>`)))??[];return{groups:l,structs:d}}var im=p(()=>{"use strict"});var Fe,sm=p(()=>{"use strict";Fe=(i=>(i[i.VERTEX=1]="VERTEX",i[i.FRAGMENT=2]="FRAGMENT",i[i.COMPUTE=4]="COMPUTE",i))(Fe||{})});function nm({groups:i}){let e=[];for(let t=0;t<i.length;t++){let r=i[t];e[r.group]||(e[r.group]=[]),r.accessMode==="uniform"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,buffer:{type:"uniform"}}):r.accessMode==="storage"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,buffer:{type:"read-only-storage"}}):r.type==="sampler"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,sampler:{type:"filtering"}}):r.type==="sampler_comparison"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,sampler:{type:"comparison"}}):r.type==="texture_2d"||r.type.startsWith("texture_2d<")?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d",multisampled:!1}}):r.type==="texture_depth_2d_array"?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,texture:{sampleType:"depth",viewDimension:"2d-array",multisampled:!1}}):r.type==="texture_2d_array"||r.type.startsWith("texture_2d_array<")?e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d-array",multisampled:!1}}):(r.type==="texture_cube"||r.type.startsWith("texture_cube<"))&&e[r.group].push({binding:r.binding,visibility:Fe.VERTEX|Fe.FRAGMENT,texture:{sampleType:"float",viewDimension:"cube",multisampled:!1}})}for(let t=0;t<e.length;t++)e[t]||(e[t]=[]);return e}var om=p(()=>{sm()});function am({groups:i}){let e=[];for(let t=0;t<i.length;t++){let r=i[t];e[r.group]||(e[r.group]={}),e[r.group][r.name]=r.binding}return e}var cm=p(()=>{"use strict"});function lm(i,e){let t=new Set,r=new Set,s=[...i.structs,...e.structs].filter(o=>t.has(o.name)?!1:(t.add(o.name),!0)),n=[...i.groups,...e.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return r.has(a)?!1:(r.add(a),!0)});return{structs:s,groups:n}}var dm=p(()=>{"use strict"});var Ds,vt,Gi=p(()=>{Ii();rm();im();om();cm();dm();Ds=Object.create(null),vt=class i{constructor(e){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:t,vertex:r,layout:s,gpuLayout:n,name:o}=e;if(this.name=o,this.fragment=t,this.vertex=r,t.source===r.source){let a=ua(t.source);this.structsAndGroups=a}else{let a=ua(r.source),c=ua(t.source);this.structsAndGroups=lm(a,c)}this.layout=s??am(this.structsAndGroups),this.gpuLayout=n??nm(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:e,fragment:t}=this,r=e.source+t.source+e.entryPoint+t.entryPoint;this._layoutKey=Bt(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=tm(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(e){let t=`${e.vertex.source}:${e.fragment.source}:${e.fragment.entryPoint}:${e.vertex.entryPoint}`;return Ds[t]||(Ds[t]=new i(e),Ds[t]._cacheKey=t),Ds[t]}}});var ze,gr=p(()=>{he();ze=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(let r in e){let s=e[r];this.setResource(s,t++)}}get _key(){if(this._dirty){this._dirty=!1;let e=[],t=0;for(let r in this.resources)e[t++]=this.resources[r]?this.resources[r]._resourceId:-1;this._keyValue=e.join("|")}return this._keyValue}setResource(e,t){let r=this.resources[t];e!==r&&(r&&r.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e,t){let r=this.resources;for(let s in r){let n=r[s];n&&(n._gcLastUsed=e,n._touched=t)}}destroy(){let e=this.resources;for(let t in e)e[t]?.off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(e){if(this._dirty=!0,e.destroyed){let t=this.resources;for(let r in t)t[r]===e&&(t[r]=null);O(`[BindGroup] a '${e._resourceType}' was destroyed while still bound to a shader. Remove it from the shader before destroying it.`)}}}});var Ue,zt=p(()=>{"use strict";Ue=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.CANVAS=4]="CANVAS",i[i.BOTH=3]="BOTH",i))(Ue||{})});var Fi,ad=p(()=>{Ii();Fi=class i{constructor(e){this.data={...e};let t=Object.keys(e).sort().map(r=>`${r}:${e[r]}`).join("|");this.id=Bt(t,"shader-overrides")}static from(e){return e instanceof i?e:new i(e)}}});var cd,hm,um=p(()=>{"use strict";cd=["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>"],hm=cd.reduce((i,e)=>(i[e]=!0,i),{})});function fm(i,e){switch(i){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*e);case"vec3<f32>":return new Float32Array(3*e);case"vec4<f32>":return new Float32Array(4*e);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 pm=p(()=>{"use strict"});var mm,Te,mt=p(()=>{Ne();Ie();Ii();um();pm();mm=class gm extends fe{constructor(e,t){super(),this._touched=0,this.uid=Y("uniform"),this._resourceType="uniformGroup",this._resourceId=Y("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,t={...gm.defaultOptions,...t},this.uniformStructures=e;let r={};for(let s in e){let n=e[s];if(n.name=s,n.size=n.size??1,!hm[n.type]){let o=n.type.match(/^array<(\w+(?:<\w+>)?),\s*(\d+)>$/);if(o){let[,a,c]=o;throw new Error(`Uniform type ${n.type} is not supported. Use type: '${a}', size: ${c} instead.`)}throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${cd.join(", ")}`)}n.value??(n.value=fm(n.type,n.size)),r[s]=n.value}this.uniforms=r,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=Bt(Object.keys(r).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}get buffer(){return this._buffer}set buffer(e){this._buffer!==e&&(this._buffer?.off("change",this.onBufferChange,this),this._buffer=e,e?.on("change",this.onBufferChange,this))}get _gcLastUsed(){return this._buffer?._gcLastUsed??-1}set _gcLastUsed(e){this._buffer&&(this._buffer._gcLastUsed=e)}onBufferChange(){this._resourceId=Y("resource"),this.emit("change",this)}update(){this._dirtyId++}};mm.defaultOptions={ubo:!1,isStatic:!1};Te=mm});var Ke,br=p(()=>{Ne();Ie();he();Hr();gr();Gi();zt();ad();mt();Ke=class i extends fe{constructor(e){super(),this.uid=Y("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[],this._destroyed=!1;let{gpuProgram:t,glProgram:r,groups:s,resources:n,compatibleRenderers:o,groupMap:a,overrides:c}=e;this._overrides=c?Fi.from(c):null,this.gpuProgram=t,this.glProgram=r,o===void 0&&(o=0,t&&(o|=Ue.WEBGPU),r&&(o|=Ue.WEBGL)),this.compatibleRenderers=o;let l={};if(a)for(let d in a)for(let h in a[d]){let u=a[d][h];l[u]={group:d,binding:h,name:u}}if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(t&&s&&!a){let d=t.structsAndGroups.groups;a={},d.forEach(h=>{a[h.group]=a[h.group]||{},a[h.group][h.binding]=h.name,l[h.name]=h})}else if(n){s={},a||(a={}),t&&t.structsAndGroups.groups.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,l[u.name]=u});let d=0;for(let h in n)l[h]||(t&&!r&&O(`[Shader] the resource '${h}' matches no binding in the WGSL source \u2014 is the name correct?`),s[99]||(s[99]=new ze,this._ownedBindGroups.push(s[99])),l[h]={group:99,binding:d,name:h},a[99]=a[99]||{},a[99][d]=h,d++);for(let h in n){let u=h,f=n[h];!f.source&&!f._resourceType&&(f=new Te(f));let m=l[u];m&&(s[m.group]||(s[m.group]=new ze,this._ownedBindGroups.push(s[m.group])),s[m.group].setResource(f,m.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,l)}addResource(e,t,r){var s,n;(s=this._uniformBindMap)[t]||(s[t]={}),(n=this._uniformBindMap[t])[r]||(n[r]=e),this.groups[t]||(this.groups[t]=new ze,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){let r={};for(let s in t){let n=t[s];Object.defineProperty(r,n.name,{get(){return e[n.group].getResource(n.binding)},set(o){e[n.group].setResource(o,n.binding)}})}return r}destroy(e=!1){this._destroyed||(this._destroyed=!0,this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(t=>{t.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null,this._overrides=null)}static from(e){let{gpu:t,gl:r,...s}=e,n,o;return t&&(n=vt.from(t)),r&&(o=yt.from(r)),new i({gpuProgram:n,glProgram:o,...s})}}});var r3,gd,ld,dd,hd,ud,fd,pd,md,De,It=p(()=>{"use strict";r3={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},gd={BLEND:0,OFFSET:1,CULLING:2,DEPTH_TEST:3,WINDING:4,DEPTH_MASK:5},{BLEND:ld,OFFSET:dd,CULLING:hd,DEPTH_TEST:ud,WINDING:fd,DEPTH_MASK:pd}=gd,md=class bm{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<ld)}set blend(e){!!(this.data&1<<ld)!==e&&(this.data^=1<<ld)}get offsets(){return!!(this.data&1<<dd)}set offsets(e){!!(this.data&1<<dd)!==e&&(this.data^=1<<dd)}set cullMode(e){if(e==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=e==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<hd)}set culling(e){!!(this.data&1<<hd)!==e&&(this.data^=1<<hd)}get depthTest(){return!!(this.data&1<<ud)}set depthTest(e){!!(this.data&1<<ud)!==e&&(this.data^=1<<ud)}get depthMask(){return!!(this.data&1<<pd)}set depthMask(e){!!(this.data&1<<pd)!==e&&(this.data^=1<<pd)}get clockwiseFrontFace(){return!!(this.data&1<<fd)}set clockwiseFrontFace(e){!!(this.data&1<<fd)!==e&&(this.data^=1<<fd)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=r3[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let e=new bm;return e.depthTest=!1,e.depthMask=!1,e.blend=!0,e}};md.default2d=md.for2d();De=md});var xm,fa,xd=p(()=>{Hr();Gi();br();It();xm=class bd extends Ke{constructor(e){e={...bd.defaultOptions,...e},super(e),this.enabled=!0,this._state=De.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,typeof e.antialias=="boolean"?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.clipToViewport=e.clipToViewport,this.addResource("uTexture",0,1),e.blendRequired&&this.addResource("uBackTexture",0,3)}apply(e,t,r,s){e.applyFilter(this,t,r,s)}get blendMode(){return this._state.blendMode}set blendMode(e){this._state.blendMode=e}static from(e){let{gpu:t,gl:r,...s}=e,n,o;return t&&(n=vt.from(t)),r&&(o=yt.from(r)),new bd({gpuProgram:n,glProgram:o,...s})}};xm.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0};fa=xm});var _m,ym=p(()=>{_m=`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 vm,wm=p(()=>{vm=`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
|
|
68
|
+
`});var _d,Sm=p(()=>{_d=`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(`
|
|
118
|
-
`),o=
|
|
117
|
+
`});var pa,Tm=p(()=>{Hr();Gi();xd();ym();wm();Sm();pa=class extends fa{constructor(){let e=vt.from({vertex:{source:_d,entryPoint:"mainVertex"},fragment:{source:_d,entryPoint:"mainFragment"},name:"passthrough-filter"}),t=yt.from({vertex:_m,fragment:vm,name:"passthrough-filter"});super({gpuProgram:e,glProgram:t})}}});var J,sr=p(()=>{"use strict";J=(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))(J||{})});var Me,xr=p(()=>{Ne();Ie();sr();Me=class extends fe{constructor(e){let{data:t,size:r}=e,{usage:s,label:n,shrinkToFit:o}=e;super(),this._gpuData=Object.create(null),this._gcLastUsed=-1,this.autoGarbageCollect=!0,this.uid=Y("buffer"),this._resourceType="buffer",this._resourceId=Y("resource"),this._touched=0,this._updateID=1,this._updateOffset=0,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,t instanceof Array&&(t=new Float32Array(t)),this._data=t,r??(r=t?.byteLength);let a=!!t;this.descriptor={size:r,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&J.STATIC)}set static(e){e?this.descriptor.usage|=J.STATIC:this.descriptor.usage&=~J.STATIC}setDataWithSize(e,t,r){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._updateOffset=0,this._data===e){r&&this.emit("update",this);return}let s=this._data;if(this._data=e,this._dataInt32=null,!s||s.length!==e.length){!this.shrinkToFit&&s&&e.byteLength<s.byteLength?r&&this.emit("update",this):(this.descriptor.size=e.byteLength,this._resourceId=Y("resource"),this.emit("change",this));return}r&&this.emit("update",this)}update(e,t){this._updateSize=e??this._updateSize,this._updateOffset=t||0,this._updateID++,this.emit("update",this)}unload(){this.emit("unload",this);for(let e in this._gpuData)this._gpuData[e]?.destroy();this._gpuData=Object.create(null),this.destroyed||(this._resourceId=Y("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 yd(i,e){if(!(i instanceof Me)){let t=e?J.INDEX:J.VERTEX;i instanceof Array&&(e?(i=new Uint32Array(i),t=J.INDEX|J.COPY_DST):(i=new Float32Array(i),t=J.VERTEX|J.COPY_DST)),i=new Me({data:i,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return i}var Em=p(()=>{xr();sr()});function Cm(i,e,t){let r=i.getAttribute(e);if(!r)return t.minX=0,t.minY=0,t.maxX=0,t.maxY=0,t;let s=r.buffer.data,n=1/0,o=1/0,a=-1/0,c=-1/0,l=s.BYTES_PER_ELEMENT,d=(r.offset||0)/l,h=(r.stride||8)/l;for(let u=d;u<s.length;u+=h){let f=s[u],m=s[u+1];f>a&&(a=f),m>c&&(c=m),f<n&&(n=f),m<o&&(o=m)}return t.minX=n,t.minY=o,t.maxX=a,t.maxY=c,t}var Pm=p(()=>{"use strict"});function i3(i){return(i instanceof Me||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=yd(i.buffer,!1),i}var ct,zr=p(()=>{Ne();et();Ie();_e();xr();Em();Pm();ct=class extends fe{constructor(e={}){super(),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=Y("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new pe,this._boundsDirty=!0,this._vertexCount=0,this._vertexCountDirty=!0;let{attributes:t,indexBuffer:r,topology:s}=e;if(this.buffers=[],this.attributes={},t)for(let n in t)this.addAttribute(n,t[n]);this.instanceCount=e.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this._vertexCountDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}get vertexCount(){if(!this._vertexCountDirty)return this._vertexCount;this._vertexCountDirty=!1;let e=this.attributes;for(let t in e){let r=e[t];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 N("8.20.0","Geometry.getSize is deprecated, please use Geometry.vertexCount instead."),this.vertexCount}addAttribute(e,t){let r=i3(t);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[e]=r,this._vertexCountDirty=!0}addIndex(e){this.indexBuffer=yd(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,Cm(this,"aPosition",this._bounds)):this._bounds}unload(){this.emit("unload",this);for(let e in this._gpuData)this._gpuData[e]?.destroy();this._gpuData=Object.create(null)}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach(t=>t.destroy()),this.unload(),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var s3,vd,Ls,Mm=p(()=>{P();Tm();ce();gr();zr();mt();ge();Ur();zt();et();ed();he();s3=new ct({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])}),vd=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new pe,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(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new Te({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 ze({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){let t=this.renderer,r=e.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=r,s.container=e.container,s.outputRenderSurface=t.renderTarget.renderSurface;let n=t.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(r.every(f=>!f.enabled)){s.skip=!0;return}let c=s.bounds;if(this._calculateFilterArea(e,c),this._calculateFilterBounds(s,t.renderTarget.rootViewPort,a,o,1),s.skip)return;let l=this._getPreviousFilterData(),d=this._findFilterResolution(o),h=0,u=0;l&&(h=l.bounds.minX,u=l.bounds.minY),this._calculateGlobalFrame(s,h,u,d,n.width,n.height),this._setupFilterTextures(s,c,t,l)}generateFilteredTexture({texture:e,filters:t}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=!1,r.filters=t;let s=e.source,n=s.resolution,o=s.antialias;if(t.every(f=>!f.enabled))return r.skip=!0,e;let a=r.bounds;if(a.addRect(e.frame),this._calculateFilterBounds(r,a.rectangle,o,n,0),r.skip)return e;let c=n;this._calculateGlobalFrame(r,0,0,c,s.width,s.height),r.outputRenderSurface=Pe.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=U.EMPTY,r.inputTexture=e,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,!0);let u=r.outputRenderSurface;return u.source.alphaMode="premultiplied-alpha",u}pop(){let e=this.renderer,t=this._popFilterData();t.skip||(e.globalUniforms.pop(),e.renderTarget.finishRenderPass(),this._activeFilterData=t,this._applyFiltersToTexture(t,!1),t.blendRequired&&Pe.returnTexture(t.backTexture),Pe.returnTexture(t.inputTexture))}getBackTexture(e,t,r){let s=e.colorTexture.source._resolution,n=Pe.getOptimalTexture(t.width,t.height,s,!1),o=t.minX,a=t.minY;r&&(o-=r.minX,a-=r.minY),o=Math.floor(o*s),a=Math.floor(a*s);let c=Math.ceil(t.width*s),l=Math.ceil(t.height*s);return this.renderer.renderTarget.copyToTexture(e,n,{x:o,y:a},{width:c,height:l},{x:0,y:0}),n}applyFilter(e,t,r,s){let n=this.renderer,o=this._activeFilterData,c=o.outputRenderSurface===r,l=n.renderTarget.rootRenderTarget.colorTexture.source._resolution,d=this._findFilterResolution(l),h=0,u=0;if(c){let m=this._findPreviousFilterOffset();h=m.x,u=m.y}this._updateFilterUniforms(t,r,o,h,u,d,c,s);let f=e.enabled?e:this._getPassthroughFilter();this._setupBindGroupsAndRender(f,t,n)}calculateSpriteMatrix(e,t){let r=this._activeFilterData,s=e.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),n=t.worldTransform.copyTo(k.shared),o=t.renderGroup||t.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/t.texture.orig.width,1/t.texture.orig.height),s.translate(t.anchor.x,t.anchor.y),s}destroy(){this._passthroughFilter?.destroy(!0),this._passthroughFilter=null}_getPassthroughFilter(){return this._passthroughFilter??(this._passthroughFilter=new pa),this._passthroughFilter}_setupBindGroupsAndRender(e,t,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(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,r.encoder.draw({geometry:s3,shader:e,state:e._state,topology:"triangle-list"}),r.type===Ue.WEBGL&&r.renderTarget.finishRenderPass()}_setupFilterTextures(e,t,r,s){if(e.backTexture=U.EMPTY,e.inputTexture=Pe.getOptimalTexture(t.width,t.height,e.resolution,e.antialias),e.blendRequired){r.renderTarget.finishRenderPass();let n=r.renderTarget.getRenderTarget(e.outputRenderSurface);e.backTexture=this.getBackTexture(n,t,s?.bounds)}r.renderTarget.bind({target:e.inputTexture,clear:!0}),r.globalUniforms.push({offset:t})}_calculateGlobalFrame(e,t,r,s,n,o){let a=e.globalFrame;a.x=t*s,a.y=r*s,a.width=n*s,a.height=o*s}_updateFilterUniforms(e,t,r,s,n,o,a,c){let l=this._filterGlobalUniforms.uniforms,d=l.uOutputFrame,h=l.uInputSize,u=l.uInputPixel,f=l.uInputClamp,m=l.uGlobalFrame,g=l.uOutputTexture;a?(d[0]=r.bounds.minX-s,d[1]=r.bounds.minY-n):(d[0]=0,d[1]=0),d[2]=e.frame.width,d[3]=e.frame.height,h[0]=e.source.width,h[1]=e.source.height,h[2]=1/h[0],h[3]=1/h[1],u[0]=e.source.pixelWidth,u[1]=e.source.pixelHeight,u[2]=1/u[0],u[3]=1/u[1],f[0]=.5*u[2],f[1]=.5*u[3],f[2]=e.frame.width*h[2]-.5*u[2],f[3]=e.frame.height*h[3]-.5*u[3];let x=this.renderer.renderTarget.rootRenderTarget.colorTexture;m[0]=s*o,m[1]=n*o,m[2]=x.source.width*o,m[3]=x.source.height*o,t instanceof U&&(t.source.resource=null);let b=this.renderer.renderTarget.getRenderTarget(t);this.renderer.renderTarget.bind({target:t,clear:!!c}),t instanceof U?(g[0]=t.frame.width,g[1]=t.frame.height):(g[0]=b.width,g[1]=b.height),g[2]=b.isRoot?-1:1,this._filterGlobalUniforms.update()}_findFilterResolution(e){let t=this._filterStackIndex-1;for(;t>0&&this._filterStack[t].skip;)--t;return t>0&&this._filterStack[t].inputTexture?this._filterStack[t].inputTexture.source._resolution:e}_findPreviousFilterOffset(){let e=0,t=0,r=this._filterStackIndex;for(;r>0;){r--;let s=this._filterStack[r];if(!s.skip){e=s.bounds.minX,t=s.bounds.minY;break}}return{x:e,y:t}}_calculateFilterArea(e,t){if(e.renderables?aa(e.renderables,t):e.filterEffect.filterArea?(t.clear(),t.addRect(e.filterEffect.filterArea),t.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,t),e.container){let s=(e.container.renderGroup||e.container.parentRenderGroup).cacheToLocalTransform;s&&t.applyMatrix(s)}}_applyFiltersToTexture(e,t){let r=e.inputTexture,s=e.bounds,n=e.filters,o=e.firstEnabledIndex,a=e.lastEnabledIndex;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(e.backTexture.source,3),o===a)n[o].apply(this,r,e.outputRenderSurface,t);else{let c=e.inputTexture,l=Pe.getOptimalTexture(s.width,s.height,c.source._resolution,!1),d=l;for(let h=o;h<a;h++){let u=n[h];if(!u.enabled)continue;u.apply(this,c,d,!0);let f=c;c=d,d=f}n[a].apply(this,c,e.outputRenderSurface,t),Pe.returnTexture(l)}}_calculateFilterBounds(e,t,r,s,n){let o=this.renderer,a=e.bounds,c=e.filters,l=1/0,d=0,h=!0,u=!1,f=!1,m=!0,g=-1,x=-1;for(let b=0;b<c.length;b++){let y=c[b];if(!y.enabled)continue;if(g===-1&&(g=b),x=b,l=Math.min(l,y.resolution==="inherit"?s:y.resolution),d+=y.padding,y.antialias==="off"?h=!1:y.antialias==="inherit"&&h&&(h=r),y.clipToViewport||(m=!1),!!!(y.compatibleRenderers&o.type)){f=!1;break}if(y.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){O("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),f=!1;break}f=!0,u||(u=y.blendRequired)}if(!f){e.skip=!0;return}if(m&&a.fitBounds(0,t.width/s,0,t.height/s),a.scale(l).ceil().scale(1/l).pad((d|0)*n),!a.isPositive){e.skip=!0;return}e.antialias=h,e.resolution=l,e.blendRequired=u,e.firstEnabledIndex=g,e.lastEnabledIndex=x}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let e,t=this._filterStackIndex-1;for(;t>0&&(t--,e=this._filterStack[t],!!e.skip););return e}_pushFilterData(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new vd),this._filterStackIndex++,e}};Ls.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"filter"}});var wd=p(()=>{P();U0();D0();Mm();H.add(Ls,Gs);H.add(Fs)});var n3={};var Am=p(()=>{jp();Yp();Zp();Xo();Jo();wd()});var o3={};var km=p(()=>{Xo();Jo();wd()});async function Im(i){if(!i)for(let e=0;e<Sd.length;e++){let t=Sd[e];if(t.value.test()){await t.value.load();return}}}var Sd,Gm=p(()=>{P();Sd=[];H.handleByNamedList(_.Environment,Sd)});function ma(){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,Td=p(()=>{"use strict"});function ya(i,e,t=2){let r=e&&e.length,s=r?e[0]*t:i.length;Ws.size&&Ws.clear();let n=Lm(i,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a=0,c=0,l=0;if(r&&(n=h3(i,e,n,t)),i.length>80*t){a=i[0],c=i[1];let d=a,h=c;for(let u=t;u<s;u+=t){let f=i[u],m=i[u+1];f<a&&(a=f),m<c&&(c=m),f>d&&(d=f),m>h&&(h=m)}l=Math.max(d-a,h-c),l=l!==0?32767/l:0}return Cd(n,o,a,c,l),o}function Lm(i,e,t,r,s){let n=null;if(s===T3(i,e,t,r)>0)for(let o=e;o<t;o+=r)n=Dm(o/r|0,i[o],i[o+1],n);else for(let o=t-r;o>=e;o-=r)n=Dm(o/r|0,i[o],i[o+1],n);return n&&Vs(n,n.next)&&(Xs(n),n=n.next),n}function Vr(i,e=i){let t=e===i,r=i,s;do s=!1,r!==r.next&&(Ws.size===0||!Ws.has(r))&&(Vs(r,r.next)||Le(r.prev,r,r.next)===0)?((t||r===e)&&(e=r.prev),Ed=!0,Xs(r),r=r.prev,s=!0):(t||r!==e)&&(r=r.next,s=!t);while(s||r!==e);return e}function Cd(i,e,t,r,s){s&&x3(i,t,r,s);let n=i,o=!1;for(;i.prev!==i.next;){let a=i.prev,c=i.next;if(Le(a,i,c)<0&&(s?c3(i,t,r,s):a3(i))){e.push(a.i,i.i,c.i),Xs(i),i=c,n=c;continue}if(i=c,i===n){if(Ed=!1,i=Vr(i),Ed){n=i;continue}if(!o){i=l3(i,e),n=i,o=!0;continue}d3(i,e,t,r,s);break}}}function a3(i){let e=i.prev,t=i,r=i.next,s=e.x,n=t.x,o=r.x,a=e.y,c=t.y,l=r.y,d=Math.min(s,n,o),h=Math.min(a,c,l),u=Math.max(s,n,o),f=Math.max(a,c,l),m=r.next;for(;m!==e;){if(m.x>=d&&m.x<=u&&m.y>=h&&m.y<=f&&!(s===m.x&&a===m.y)&&_a(s,a,n,c,o,l,m.x,m.y)&&Le(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function c3(i,e,t,r){let s=i.prev,n=i,o=i.next,a=s.x,c=n.x,l=o.x,d=s.y,h=n.y,u=o.y,f=Math.min(a,c,l),m=Math.min(d,h,u),g=Math.max(a,c,l),x=Math.max(d,h,u),b=Rd(f,m,e,t,r),y=Rd(g,x,e,t,r),v=i.prevZ;for(;v&&v.z>=b;){if(v.x>=f&&v.x<=g&&v.y>=m&&v.y<=x&&v!==o&&!(a===v.x&&d===v.y)&&_a(a,d,c,h,l,u,v.x,v.y)&&Le(v.prev,v,v.next)>=0)return!1;v=v.prevZ}let w=i.nextZ;for(;w&&w.z<=y;){if(w.x>=f&&w.x<=g&&w.y>=m&&w.y<=x&&w!==o&&!(a===w.x&&d===w.y)&&_a(a,d,c,h,l,u,w.x,w.y)&&Le(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function l3(i,e){let t=i,r=!1;do{let s=t.prev,n=t.next.next;Hm(s,t,t.next,n,!1)&&js(s,n)&&js(n,s)&&(e.push(s.i,t.i,n.i),Xs(t),Xs(t.next),t=i=n,r=!0),t=t.next}while(t!==i);return r?Vr(t):t}function d3(i,e,t,r,s){let n=i;do{let o=n.next.next;for(;o!==n.prev;){if(n.i!==o.i&&v3(n,o)){let a=zm(n,o);n=Vr(n,n.next),a=Vr(a,a.next),Cd(n,e,t,r,s),Cd(a,e,t,r,s);return}o=o.next}n=n.next}while(n!==i)}function h3(i,e,t,r){let s=[];for(let n=0,o=e.length;n<o;n++){let a=e[n]*r,c=n<o-1?e[n+1]*r:i.length,l=Lm(i,a,c,r,!1);l===l.next&&Ws.add(l),s.push(y3(l))}s.sort(u3),p3(i.length/r,e.length),Nm(t,t),Pd=!0;for(let n=0;n<s.length;n++)t=f3(s[n],t);return Pd=!1,Vr(t)}function u3(i,e){return i.x-e.x||i.y-e.y||(i.next.y-i.y)/(i.next.x-i.x)-(e.next.y-e.y)/(e.next.x-e.x)}function f3(i,e){let t=g3(i,e);if(!t)return e;let r=zm(t,i),s=r.next;return Nm(t,s.next),Vr(r,r.next),Vr(t,t.next)}function p3(i,e){let t=Math.ceil((i+2*e)/Om)+e+2;Ae.length<t*4&&(Ae=new Float64Array(t*4)),xa=0}function Nm(i,e){let t=i;do{let r=xa++;Md[r]=t;let s=1/0,n=1/0,o=-1/0,a=-1/0,c=0;do{let d=t.next;t.z=r,t.x<s&&(s=t.x),t.x>o&&(o=t.x),t.y<n&&(n=t.y),t.y>a&&(a=t.y),d.x<s&&(s=d.x),d.x>o&&(o=d.x),d.y<n&&(n=d.y),d.y>a&&(a=d.y),t=d}while(++c<Om&&t!==e);Ad[r]=t;let l=r*4;Ae[l]=s,Ae[l+1]=n,Ae[l+2]=o,Ae[l+3]=a}while(t!==e)}function m3(i,e){let t=i.z*4;e.x<Ae[t]&&(Ae[t]=e.x),e.y<Ae[t+1]&&(Ae[t+1]=e.y),e.x>Ae[t+2]&&(Ae[t+2]=e.x),e.y>Ae[t+3]&&(Ae[t+3]=e.y)}function Fm(i){let e=Ad[i];for(;e.prev.next!==e;)e=e.next;return Ad[i]=e,e}function Um(i){let e=Md[i];for(;e.prev.next!==e;)e=e.next;return Md[i]=e,e}function g3(i,e){let t=e,r=i.x,s=i.y,n=-1/0,o;if(Vs(i,t))return t;for(let u=0,f=0;u<xa;u++,f+=4){if(s<Ae[f+1]||s>Ae[f+3]||Ae[f]>r||Ae[f+2]<=n)continue;let m=Fm(u);t=Um(u);do{if(t.prev.next===t){if(Vs(i,t.next))return t.next;if(s<=t.y&&s>=t.next.y&&t.next.y!==t.y){let g=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(g<=r&&g>n&&(n=g,o=t.x<t.next.x?t:t.next,g===r))return o}}t=t.next}while(t!==m)}if(!o)return null;let a=o.x,c=o.y,l=Math.min(s,c),d=Math.max(s,c),h=1/0;for(let u=0,f=0;u<xa;u++,f+=4){if(Ae[f+2]<a||Ae[f]>r||Ae[f+3]<l||Ae[f+1]>d)continue;let m=Fm(u);t=Um(u);do{if(t.prev.next===t&&r>=t.x&&t.x>=a&&r!==t.x&&_a(s<c?r:n,s,a,c,s<c?n:r,s,t.x,t.y)){let g=Math.abs(s-t.y)/(r-t.x);(js(t,i)||t.y===s&&t.next.y===s&&t.next.x>r)&&(g<h||g===h&&(t.x>o.x||t.x===o.x&&b3(o,t)))&&(o=t,h=g)}t=t.next}while(t!==m)}return o}function b3(i,e){return Le(i.prev,i,e.prev)<0&&Le(e.next,i,i.next)<0}function x3(i,e,t,r){let s=i,n=0;do s.z=Rd(s.x,s.y,e,t,r),wt[n++]=s,s=s.next;while(s!==i);_3(n);let o=null;for(let a=0;a<n;a++){let c=wt[a];c.prevZ=o,o&&(o.nextZ=c),o=c}o.nextZ=null}function _3(i){if(i<=32){for(let e=1;e<i;e++){let t=wt[e],r=t.z,s=e-1;for(;s>=0&&wt[s].z>r;)wt[s+1]=wt[s],s--;wt[s+1]=t}return}Wr.length<i&&(Wr=new Uint32Array(i),Hs=new Uint32Array(i),Ns=new Array(i));for(let e=0;e<i;e++)Wr[e]=wt[e].z;ga(i,wt,Wr,Ns,Hs,0),ga(i,Ns,Hs,wt,Wr,8),ga(i,wt,Wr,Ns,Hs,16),ga(i,Ns,Hs,wt,Wr,24)}function ga(i,e,t,r,s,n){zs.fill(0);for(let a=0;a<i;a++)zs[t[a]>>>n&255]++;let o=0;for(let a=0;a<256;a++){let c=zs[a];zs[a]=o,o+=c}for(let a=0;a<i;a++){let c=t[a],l=zs[c>>>n&255]++;r[l]=e[a],s[l]=c}}function Rd(i,e,t,r,s){return i=(i-t)*s|0,e=(e-r)*s|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,i|e<<1}function y3(i){let e=i,t=i;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==i);return t}function _a(i,e,t,r,s,n,o,a){return(s-o)*(e-a)>=(i-o)*(n-a)&&(i-o)*(r-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(r-a)}function v3(i,e){let t=Vs(i,e)&&Le(i.prev,i,i.next)>0&&Le(e.prev,e,e.next)>0;return i.next.i!==e.i&&(t||js(i,e)&&js(e,i)&&(Le(i.prev,i,e.prev)!==0||Le(i,e.prev,e)!==0))&&!w3(i,e)&&(t||S3(i,e))}function Le(i,e,t){return(e.y-i.y)*(t.x-e.x)-(e.x-i.x)*(t.y-e.y)}function Vs(i,e){return i.x===e.x&&i.y===e.y}function Hm(i,e,t,r,s=!0){let n=Le(i,e,t),o=Le(i,e,r),a=Le(t,r,i),c=Le(t,r,e);return(n>0&&o<0||n<0&&o>0)&&(a>0&&c<0||a<0&&c>0)?!0:s?!!(n===0&&ba(i,t,e)||o===0&&ba(i,r,e)||a===0&&ba(t,i,r)||c===0&&ba(t,e,r)):!1}function ba(i,e,t){return e.x<=Math.max(i.x,t.x)&&e.x>=Math.min(i.x,t.x)&&e.y<=Math.max(i.y,t.y)&&e.y>=Math.min(i.y,t.y)}function w3(i,e){let t=Math.min(i.x,e.x),r=Math.max(i.x,e.x),s=Math.min(i.y,e.y),n=Math.max(i.y,e.y),o=i;do{let a=o.next;if(o.x>r&&a.x>r||o.x<t&&a.x<t||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!==e.i&&a.i!==e.i&&Hm(o,a,i,e))return!0;o=a}while(o!==i);return!1}function js(i,e){return Le(i.prev,i,i.next)<0?Le(i,e,i.next)>=0&&Le(i,i.prev,e)>=0:Le(i,e,i.prev)<0||Le(i,i.next,e)<0}function S3(i,e){let t=i,r=!1,s=(i.x+e.x)/2,n=(i.y+e.y)/2;do{let o=t.next;t.y>n!=o.y>n&&s<(o.x-t.x)*(n-t.y)/(o.y-t.y)+t.x&&(r=!r),t=o}while(t!==i);return r}function zm(i,e){let t=kd(i.i,i.x,i.y),r=kd(e.i,e.x,e.y),s=i.next,n=e.prev;return i.next=e,e.prev=i,t.next=s,s.prev=t,r.next=t,t.prev=r,n.next=r,r.prev=n,r}function Dm(i,e,t,r){let s=kd(i,e,t);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),Pd&&m3(i.prev,i.next)}function kd(i,e,t){return{i,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function T3(i,e,t,r){let s=0;for(let n=e,o=t-r;n<t;n+=r)s+=(i[o]-i[n])*(i[n+1]+i[o+1]),o=n;return s}var Ws,Ed,Pd,Om,Ae,xa,Md,Ad,wt,Ns,Wr,Hs,zs,Wm=p(()=>{Ws=new Set,Ed=!1;Pd=!1;Om=16,Ae=new Float64Array(0),xa=0,Md=[],Ad=[];wt=[],Ns=[],Wr=new Uint32Array(0),Hs=new Uint32Array(0),zs=new Uint32Array(256)});var Vm,jm=p(()=>{Wm();Ne();Vm=ya.default||ya});var Ee,Ui=p(()=>{"use strict";Ee=(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))(Ee||{})});var Di,Bd=p(()=>{"use strict";Di=class{constructor(e){this.items=[],this._name=e}emit(e,t,r,s,n,o,a,c){let{name:l,items:d}=this;for(let h=0,u=d.length;h<u;h++)d[h][l](e,t,r,s,n,o,a,c);return this}add(e){return e[this._name]&&(this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&this.items.splice(t,1),this}contains(e){return this.items.indexOf(e)!==-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 E3,Xm,St,jr=p(()=>{$e();Gm();Mt();Td();Ie();_e();Mr();Ui();Bd();Ne();E3=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],Xm=class Ym extends fe{constructor(e){super(),this.tick=0,this.uid=Y("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name,this.config=e;let t=[...E3,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(e={}){let t=e.skipExtensionImports===!0?!0:e.manageImports===!1;await Im(t),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let r in this._systemsHash)e={...this._systemsHash[r].constructor.defaultOptions,...e};e={...Ym.defaultOptions,...e},this._roundPixels=e.roundPixels?1:0;for(let r=0;r<this.runners.init.items.length;r++)await this.runners.init.items[r].init(e);this._initOptions=e}render(e,t){this.tick++;let r=e;if(r instanceof me&&(r={container:r},t&&(N(re,"passing a second argument is deprecated, please use render options instead"),r.target=t.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:Z.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(e,t,r){let s=this.view.resolution;this.view.resize(e,t,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(e={}){let t=this;e.target||(e.target=t.renderTarget.renderTarget),e.clearColor||(e.clearColor=this.background.colorRgba),e.clear??(e.clear=Ee.ALL);let{clear:r,clearColor:s,target:n,mipLevel:o,layer:a}=e;Z.shared.setValue(s??this.background.colorRgba),t.renderTarget.clear(n,r,Z.shared.toArray(),o??0,a??0)}get resolution(){return this.view.resolution}set resolution(e){this.view.resolution=e,this.runners.resolutionChange.emit(e)}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(...e){e.forEach(t=>{this.runners[t]=new Di(t)})}_addSystems(e){let t;for(t in e){let r=e[t];this._addSystem(r.value,r.name)}}_addSystem(e,t){let r=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=r,this._systemsHash[t]=r;for(let s in this.runners)this.runners[s].add(r);return this}_addPipes(e,t){let r=t.reduce((s,n)=>(s[n.name]=n.value,s),{});e.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(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),(e===!0||typeof e=="object"&&e.releaseGlobalResources)&&_t.release(),Object.values(this.runners).forEach(t=>{t.destroy()}),this._systemsHash=null,this.renderPipes=null,this.removeAllListeners()}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!ma())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()}};Xm.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};St=Xm});function Li(i,e,t){let r=2166136261;for(let s=0;s<e;s++)r^=i[s].uid,r=Math.imul(r,16777619),r>>>=0;return Km[r]||C3(i,e,r,t)}function C3(i,e,t,r){let s={},n=0;for(let a=0;a<r;a++){let c=a<e?i[a]:U.EMPTY.source;s[n++]=c.source,s[n++]=c.style}let o=new ze(s);return Km[t]=o,o}var Km,Sa=p(()=>{gr();ge();Km={}});function Id(i,e,t){if(i)for(let r in i){let s=r.toLocaleLowerCase(),n=e[s];if(n){let o=i[r];r==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),t&&n.push(`//----${t}----//`),n.push(o)}else O(`${r} placement hook does not exist in shader`)}}var Zm=p(()=>{he()});function Gd(i){let e={};return(i.match(P3)?.map(r=>r.replace(/[{()}]/g,""))??[]).forEach(r=>{e[r]=[]}),e}var P3,Qm=p(()=>{"use strict";P3=/\{\{(.*?)\}\}/g});function Jm(i,e){let t,r=/@in\s+([^;]+);/g;for(;(t=r.exec(i))!==null;)e.push(t[1])}function Fd(i,e,t=!1){let r=[];Jm(e,r),i.forEach(a=>{a.header&&Jm(a.header,r)});let s=r;t&&s.sort();let n=s.map((a,c)=>` @location(${c}) ${a},`).join(`
|
|
118
|
+
`),o=e.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
|
|
119
119
|
${n}
|
|
120
|
-
`),o}var
|
|
121
|
-
`),n=
|
|
120
|
+
`),o}var e1=p(()=>{"use strict"});function t1(i,e){let t,r=/@out\s+([^;]+);/g;for(;(t=r.exec(i))!==null;)e.push(t[1])}function M3(i){let t=/\b(\w+)\s*:/g.exec(i);return t?t[1]:""}function A3(i){let e=/@.*?\s+/g;return i.replace(e,"")}function r1(i,e){let t=[];t1(e,t),i.forEach(c=>{c.header&&t1(c.header,t)});let r=0,s=t.sort().map(c=>c.indexOf("builtin")>-1?c:`@location(${r++}) ${c}`).join(`,
|
|
121
|
+
`),n=t.sort().map(c=>` var ${A3(c)};`).join(`
|
|
122
122
|
`),o=`return VSOutput(
|
|
123
|
-
${
|
|
124
|
-
`)});`,a=
|
|
123
|
+
${t.sort().map(c=>` ${M3(c)}`).join(`,
|
|
124
|
+
`)});`,a=e.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
|
|
131
|
-
`).length?
|
|
130
|
+
`),a}var i1=p(()=>{"use strict"});function Ud(i,e){let t=i;for(let r in e){let s=e[r];s.join(`
|
|
131
|
+
`).length?t=t.replace(`{{${r}}}`,`//-----${r} START-----//
|
|
132
132
|
${s.join(`
|
|
133
133
|
`)}
|
|
134
|
-
//----${r} FINISH----//`):
|
|
134
|
+
//----${r} FINISH----//`):t=t.replace(`{{${r}}}`,"")}return t}var s1=p(()=>{"use strict"});function n1({template:i,bits:e}){let t=a1(i,e);if(_r[t])return _r[t];let{vertex:r,fragment:s}=k3(i,e);return _r[t]=c1(r,s,e),_r[t]}function o1({template:i,bits:e}){let t=a1(i,e);return _r[t]||(_r[t]=c1(i.vertex,i.fragment,e)),_r[t]}function k3(i,e){let t=e.map(o=>o.vertex).filter(o=>!!o),r=e.map(o=>o.fragment).filter(o=>!!o),s=Fd(t,i.vertex,!0);s=r1(t,s);let n=Fd(r,i.fragment,!0);return{vertex:s,fragment:n}}function a1(i,e){return e.map(t=>(Dd.has(t)||Dd.set(t,R3++),Dd.get(t))).sort((t,r)=>t-r).join("-")+i.vertex+i.fragment}function c1(i,e,t){let r=Gd(i),s=Gd(e);return t.forEach(n=>{Id(n.vertex,r,n.name),Id(n.fragment,s,n.name)}),{vertex:Ud(i,r),fragment:Ud(e,s)}}var _r,Dd,R3,l1=p(()=>{Zm();Qm();e1();i1();s1();_r=Object.create(null),Dd=new Map,R3=0});var d1,h1,u1,f1,p1=p(()=>{"use strict";d1=`
|
|
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
|
+
`,h1=`
|
|
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
|
+
`,u1=`
|
|
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
|
+
`,f1=`
|
|
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 m1,g1,b1=p(()=>{"use strict";m1={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
|
+
`}},g1={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 Oi({bits:i,name:e}){let t=n1({template:{fragment:h1,vertex:d1},bits:[m1,...i]});return vt.from({name:e,vertex:{source:t.vertex,entryPoint:"main"},fragment:{source:t.fragment,entryPoint:"main"}})}function Ni({bits:i,name:e}){return new yt({name:e,...o1({template:{vertex:u1,fragment:f1},bits:[g1,...i]})})}var Hi=p(()=>{Hr();Gi();l1();p1();b1()});var Ta,Ea,Ca=p(()=>{"use strict";Ta={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
|
+
`}},Ea={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 B3(i){let e=[];if(i===1)e.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),e.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let t=0;for(let r=0;r<i;r++)e.push(`@group(1) @binding(${t++}) var textureSource${r+1}: texture_2d<f32>;`),e.push(`@group(1) @binding(${t++}) var textureSampler${r+1}: sampler;`)}return e.join(`
|
|
281
|
+
`)}function I3(i){let e=[];if(i===1)e.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{e.push("switch vTextureId {");for(let t=0;t<i;t++)t===i-1?e.push(" default:{"):e.push(` case ${t}:{`),e.push(` outColor = textureSampleGrad(textureSource${t+1}, textureSampler${t+1}, vUV, uvDx, uvDy);`),e.push(" break;}");e.push("}")}return e.join(`
|
|
282
|
+
`)}function Pa(i){return Ld[i]||(Ld[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
|
+
${B3(i)}
|
|
296
296
|
`,main:`
|
|
297
297
|
var uvDx = dpdx(vUV);
|
|
298
298
|
var uvDy = dpdy(vUV);
|
|
299
299
|
|
|
300
|
-
${
|
|
301
|
-
`}}),
|
|
302
|
-
`)}function
|
|
300
|
+
${I3(i)}
|
|
301
|
+
`}}),Ld[i]}function G3(i){let e=[];for(let t=0;t<i;t++)t>0&&e.push("else"),t<i-1&&e.push(`if(vTextureId < ${t}.5)`),e.push("{"),e.push(` outColor = texture(uTextures[${t}], vUV);`),e.push("}");return e.join(`
|
|
302
|
+
`)}function Ma(i){return Od[i]||(Od[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
|
-
`}}),
|
|
320
|
+
${G3(i)}
|
|
321
|
+
`}}),Od[i]}var Ld,Od,Aa=p(()=>{"use strict";Ld={};Od={}});var Ys,x1,Ra,$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
|
+
`}},x1={...Ys,vertex:{...Ys.vertex,header:Ys.vertex.header.replace("group(1)","group(2)")}},Ra={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 zi,Wi,Vi=p(()=>{"use strict";zi={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
|
+
`}},Wi={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,_1=p(()=>{P();ce();Sa();Hi();Ca();Aa();$s();Vi();br();mt();qs=class{constructor(){this._maxTextures=0}contextChange(e){let t=new Te({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=e.limits.maxBatchableTextures;let r=Oi({name:"graphics",bits:[Ta,Pa(this._maxTextures),x1,zi]});this.shader=new Ke({gpuProgram:r,resources:{localUniforms:t}})}execute(e,t){let r=t.context,s=r.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(r),l=n.encoder;l.setGeometry(a.geometry,s.gpuProgram);let d=n.globalUniforms.bindGroup;l.setBindGroup(0,d,s.gpuProgram);let h=n.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);l.setBindGroup(2,h,s.gpuProgram);let u=c.instructions,f=null;for(let m=0;m<c.instructionSize;m++){let g=u[m];if(g.topology!==f&&(f=g.topology,l.setPipelineFromGeometryProgramAndState(a.geometry,s.gpuProgram,e.state,g.topology,s._overrides)),s.groups[1]=g.bindGroup,!g.gpuBindGroup){let x=g.textures;g.bindGroup=Li(x.textures,x.count,this._maxTextures),g.gpuBindGroup=n.bindGroup.getBindGroup(g.bindGroup,s.gpuProgram,1)}l.setBindGroup(1,g.bindGroup,s.gpuProgram),l.renderPassEncoder.drawIndexed(g.size,1,g.start)}}destroy(){this.shader.destroy(!0),this.shader=null}};qs.extension={type:[_.WebGPUPipesAdaptor],name:"graphics"}});var y1,v1,Nd=p(()=>{"use strict";y1={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
|
+
`}},v1={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 `),
|
|
389
|
-
`)});function
|
|
387
|
+
`}}});var Ks,w1=p(()=>{P();ce();Hi();$s();Vi();Nd();br();ge();he();Ks=class{init(){let e=Oi({name:"mesh",bits:[Ys,y1,zi]});this._shader=new Ke({gpuProgram:e,resources:{uTexture:U.EMPTY._source,uSampler:U.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(e,t){let r=e.renderer,s=t._shader;if(!s)s=this._shader,s.groups[2]=r.texture.getTextureBindGroup(t.texture);else if(!s.gpuProgram){O("Mesh shader has no gpuProgram",t.shader);return}let n=s.gpuProgram;if(n.autoAssignGlobalUniforms&&(s.groups[0]=r.globalUniforms.bindGroup),n.autoAssignLocalUniforms){let o=e.localUniforms;s.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(o,!0)}r.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};Ks.extension={type:[_.WebGPUPipesAdaptor],name:"mesh"}});var ka,Zs,S1=p(()=>{P();It();Sa();ka=De.for2d(),Zs=class{start(e,t,r){let s=e.renderer,n=s.encoder,o=r.gpuProgram;this._shader=r,this._geometry=t,n.setGeometry(t,o),ka.blendMode="normal",s.pipeline.getPipeline(t,o,ka,void 0,r._overrides);let a=s.globalUniforms.bindGroup;n.resetBindGroup(1),n.setBindGroup(0,a,o)}execute(e,t){let r=this._shader.gpuProgram,s=e.renderer,n=s.encoder;if(!t.bindGroup){let c=t.textures;t.bindGroup=Li(c.textures,c.count,s.limits.maxBatchableTextures)}ka.blendMode=t.blendMode;let o=s.bindGroup.getBindGroup(t.bindGroup,r,1),a=s.pipeline.getPipeline(this._geometry,r,ka,t.topology,this._shader._overrides);t.bindGroup._touch(s.gc.now,s.tick),n.setPipeline(a),n.renderPassEncoder.setBindGroup(1,o),n.renderPassEncoder.drawIndexed(t.size,1,t.start)}};Zs.extension={type:[_.WebGPUPipesAdaptor],name:"batch"}});var Xr,Hd=p(()=>{P();Xr=class{constructor(e){this._renderer=e}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&e.render(this._renderer)}destroy(){this._renderer=null}};Xr.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"customRender"}});var yr,Ba=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,e){let t=i.instructionSet,r=t.instructions;for(let s=0;s<t.instructionSize;s++){let n=r[s];e[n.renderPipeId].execute(n)}}var zd=p(()=>{"use strict"});var Yr,Wd=p(()=>{P();ce();Zt();Ba();zd();Yr=class{constructor(e){this._renderer=e}addRenderGroup(e,t){e.isCachedAsTexture?this._addRenderableCacheAsTexture(e,t):this._addRenderableDirect(e,t)}execute(e){e.isRenderable&&(e.isCachedAsTexture?this._executeCacheAsTexture(e):this._executeDirect(e))}destroy(){this._renderer=null}_addRenderableDirect(e,t){this._renderer.renderPipes.batch.break(t),e._batchableRenderGroup&&(ye.return(e._batchableRenderGroup),e._batchableRenderGroup=null),t.add(e)}_addRenderableCacheAsTexture(e,t){let r=e._batchableRenderGroup??(e._batchableRenderGroup=ye.get(yr));r.renderable=e.root,r.transform=e.root.relativeGroupTransform,r.texture=e.texture,r.bounds=e._textureBounds,t.add(e),this._renderer.renderPipes.blendMode.pushBlendMode(e,e.root.groupBlendMode,t),this._renderer.renderPipes.batch.addToBatch(r,t),this._renderer.renderPipes.blendMode.popBlendMode(t)}_executeCacheAsTexture(e){if(e.textureNeedsUpdate){e.textureNeedsUpdate=!1;let t=new k().translate(-e._textureBounds.x,-e._textureBounds.y);this._renderer.renderTarget.push({target:e.texture,clear:!0,frame:e.texture.frame}),this._renderer.globalUniforms.push({worldTransformMatrix:t,worldColor:4294967295,offset:{x:0,y:0}}),Qs(e,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}e._batchableRenderGroup._batcher.updateElement(e._batchableRenderGroup),e._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(e){this._renderer.globalUniforms.push({worldTransformMatrix:e.inverseParentTextureTransform,worldColor:e.worldColorAlpha}),Qs(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};Yr.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"renderGroup"}});function Js(i,e){e||(e=0);for(let t=e;t<i.length&&i[t];t++)i[t]=null}var Vd=p(()=>{"use strict"});function jd(i,e=!1){U3(i);let t=i.childrenToUpdate,r=i.updateTick++;for(let s in t){let n=Number(s),o=t[s],a=o.list,c=o.index;for(let l=0;l<c;l++){let d=a[l];d.parentRenderGroup===i&&d.relativeRenderGroupDepth===n&&C1(d,r,0)}Js(a,c),o.index=0}if(e)for(let s=0;s<i.renderGroupChildren.length;s++)jd(i.renderGroupChildren[s],e)}function U3(i){let e=i.root,t;if(i.renderGroupParent){let r=i.renderGroupParent;i.worldTransform.appendFrom(e.relativeGroupTransform,r.worldTransform),i.worldColor=wi(e.groupColor,r.worldColor),t=e.groupAlpha*r.worldAlpha}else i.worldTransform.copyFrom(e.localTransform),i.worldColor=e.localColor,t=e.localAlpha;t=t<0?0:t>1?1:t,i.worldAlpha=t,i.worldColorAlpha=i.worldColor+((t*255|0)<<24)}function C1(i,e,t){if(e===i.updateTick)return;i.updateTick=e,i.didChange=!1;let r=i.localTransform;i.updateLocalTransform();let s=i.parent;if(s&&!s.renderGroup?(t|=i._updateFlags,i.relativeGroupTransform.appendFrom(r,s.relativeGroupTransform),t&T1&&E1(i,s,t)):(t=i._updateFlags,i.relativeGroupTransform.copyFrom(r),t&T1&&E1(i,F3,t)),!i.renderGroup){let n=i.children,o=n.length;for(let l=0;l<o;l++)C1(n[l],e,t);let a=i.parentRenderGroup,c=i;c.renderPipeId&&!a.structureDidChange&&a.updateRenderable(c)}}function E1(i,e,t){if(t&Ei){i.groupColor=wi(i.localColor,e.groupColor);let r=i.localAlpha*e.groupAlpha;r=r<0?0:r>1?1:r,i.groupAlpha=r,i.groupColorAlpha=i.groupColor+((r*255|0)<<24)}t&ws&&(i.groupBlendMode=i.localBlendMode==="inherit"?e.groupBlendMode:i.localBlendMode),t&Lr&&(i.globalDisplayStatus=i.localDisplayStatus&e.globalDisplayStatus),i._updateFlags=0}var F3,T1,P1=p(()=>{Mt();Vd();fl();F3=new me,T1=Lr|Ei|ws});function M1(i,e){let{list:t}=i.childrenRenderablesToUpdate,r=!1;for(let s=0;s<i.childrenRenderablesToUpdate.index;s++){let n=t[s];if(r=e[n.renderPipeId].validateRenderable(n),r)break}return i.structureDidChange=r,r}var A1=p(()=>{"use strict"});var D3,en,R1=p(()=>{P();ce();Ur();Rr();et();Vd();zd();P1();A1();D3=new k,en=class{constructor(e){this._renderer=e}render({container:e,transform:t}){let r=e.parent,s=e.renderGroup.renderGroupParent;e.parent=null,e.renderGroup.renderGroupParent=null;let n=this._renderer,o=D3;t&&(o.copyFrom(e.renderGroup.localTransform),e.renderGroup.localTransform.copyFrom(t));let a=n.renderPipes;this._updateCachedRenderGroups(e.renderGroup,null),this._updateRenderGroups(e.renderGroup),n.globalUniforms.start({worldTransformMatrix:t?e.renderGroup.localTransform:e.renderGroup.worldTransform,worldColor:e.renderGroup.worldColorAlpha}),Qs(e.renderGroup,a),a.uniformBatch&&a.uniformBatch.renderEnd(),t&&e.renderGroup.localTransform.copyFrom(o),e.parent=r,e.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(e,t){if(e._parentCacheAsTextureRenderGroup=t,e.isCachedAsTexture){if(!e.textureNeedsUpdate)return;t=e}for(let r=e.renderGroupChildren.length-1;r>=0;r--)this._updateCachedRenderGroups(e.renderGroupChildren[r],t);if(e.invalidateMatrices(),e.isCachedAsTexture){if(e.textureNeedsUpdate){let r=e.root.getLocalBounds(),s=this._renderer,n=e.textureOptions.resolution||s.view.resolution,o=e.textureOptions.antialias??s.view.antialias,a=e.textureOptions.scaleMode??"linear",c=e.texture;r.ceil(),e.texture&&Pe.returnTexture(e.texture,!0);let l=Pe.getOptimalTexture(r.width,r.height,n,o);l._source.style=new ot({scaleMode:a}),e.texture=l,e._textureBounds||(e._textureBounds=new pe),e._textureBounds.copyFrom(r),c!==e.texture&&e.renderGroupParent&&(e.renderGroupParent.structureDidChange=!0)}}else e.texture&&(Pe.returnTexture(e.texture,!0),e.texture=null)}_updateRenderGroups(e){let t=this._renderer,r=t.renderPipes;if(e.runOnRender(t),e.instructionSet.renderPipes=r,e.structureDidChange?Js(e.childrenRenderablesToUpdate.list,0):M1(e,r),jd(e),e.structureDidChange?(e.structureDidChange=!1,this._buildInstructions(e,t)):this._updateRenderables(e),e.childrenRenderablesToUpdate.index=0,t.renderPipes.batch.upload(e.instructionSet),!(e.isCachedAsTexture&&!e.textureNeedsUpdate))for(let s=0;s<e.renderGroupChildren.length;s++)this._updateRenderGroups(e.renderGroupChildren[s])}_updateRenderables(e){let{list:t,index:r}=e.childrenRenderablesToUpdate;for(let s=0;s<r;s++){let n=t[s];n.didViewUpdate&&e.updateRenderable(n)}Js(t,r)}_buildInstructions(e,t){let r=e.root,s=e.instructionSet;s.reset();let n=t.renderPipes?t:t.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)}};en.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"renderGroup"}});var $r,Xd=p(()=>{P();Ba();$r=class{constructor(e){this._renderer=e}addRenderable(e,t){let r=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.bounds=e.visualBounds,t.texture=e._texture}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=new yr;return t.renderable=e,t.transform=e.groupTransform,t.texture=e._texture,t.bounds=e.visualBounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};$r.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"sprite"}});var ji,Yd=p(()=>{Ne();ji="8.20.0"});var tn,rn,$d=p(()=>{P();Yd();tn=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,ji)}static destroy(){}};tn.extension=_.Application;rn=class{constructor(e){this._renderer=e}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,ji)}destroy(){this._renderer=null}};rn.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"initHook",priority:-10}});var Wt,qd=p(()=>{"use strict";Wt=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,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(e){return this[`${e}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(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}}});function sn(i,e,t,r){if(t??(t=0),r??(r=Math.min(i.byteLength-t,e.byteLength)),!(t&7)&&!(r&7)){let s=r/8;new Float64Array(e,0,s).set(new Float64Array(i,t,s))}else if(!(t&3)&&!(r&3)){let s=r/4;new Float32Array(e,0,s).set(new Float32Array(i,t,s))}else new Uint8Array(e).set(new Uint8Array(i,t,r))}var Kd=p(()=>{"use strict"});var k1,ve,qr=p(()=>{"use strict";k1={normal:"normal-npm",add:"add-npm",screen:"screen-npm"},ve=(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))(ve||{})});function nn(i,e){return e.alphaMode==="no-premultiply-alpha"&&k1[i]||i}var Zd=p(()=>{qr()});function O3(i){let e="";for(let t=0;t<i;++t)t>0&&(e+=`
|
|
388
|
+
else `),t<i-1&&(e+=`if(test == ${t}.0){}`);return e}function Ia(i,e){if(i===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let t=e.createShader(e.FRAGMENT_SHADER);try{for(;;){let r=L3.replace(/%forloop%/gi,O3(i));if(e.shaderSource(t,r),e.compileShader(t),!e.getShaderParameter(t,e.COMPILE_STATUS))i=i/2|0;else break}}finally{e.deleteShader(t)}return i}var L3,Qd=p(()=>{"use strict";L3=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
|
|
389
|
+
`)});function B1(){if(Xi)return Xi;let i=da();return Xi=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Xi=Ia(Xi,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Xi}var Xi,I1=p(()=>{sd();Qd();Xi=null});var Ga,G1=p(()=>{"use strict";Ga=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let e=0;e<this.count;e++){let t=this.textures[e];this.textures[e]=null,this.ids[t.uid]=null}this.count=0}}});function F1(){return Fa>0?an[--Fa]:new Jd}function U1(i){i.elements=null,an[Fa++]=i}var Jd,an,Fa,on,D1,O1,N1=p(()=>{Ie();qd();_e();Mr();Kd();Zd();I1();G1();Jd=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Ga,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=[],Fa=0;_t.register({clear:()=>{if(an.length>0)for(let i of an)i&&i.destroy();an.length=0,Fa=0}});on=0,D1=class L1{constructor(e){this.uid=Y("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...L1.defaultOptions,...e},e.maxTextures||(N("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=B1());let{maxTextures:t,attributesInitialSize:r,indicesInitialSize:s}=e;this.attributeBuffer=new Wt(r*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=t}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let e=0;e<this.batchIndex;e++)U1(this.batches[e]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(e){this._elements[this.elementSize++]=e,e._indexStart=this.indexSize,e._attributeStart=this.attributeSize,e._batcher=this,this.indexSize+=e.indexSize,this.attributeSize+=e.attributeSize*this.vertexSize}checkAndUpdateTexture(e,t){let r=e._batch.textures.ids[t._source.uid];return!r&&r!==0?!1:(e._textureId=r,e.texture=t,!0)}updateElement(e){this.dirty=!0;let t=this.attributeBuffer;e.packAsQuad?this.packQuadAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId):this.packAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId)}break(e){let t=this._elements;if(!t[this.elementStart])return;let r=F1(),s=r.textures;s.clear();let n=t[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 c=this.attributeBuffer.float32View,l=this.attributeBuffer.uint32View,d=this.indexBuffer,h=this._batchIndexSize,u=this._batchIndexStart,f="startBatch",m=[],g=this.maxTextures;for(let x=this.elementStart;x<this.elementSize;++x){let b=t[x];t[x]=null;let v=b.texture._source,w=nn(b.blendMode,v),S=o!==w||a!==b.topology;if(v._batchTick===on&&!S){b._textureId=v._textureBindLocation,h+=b.indexSize,b.packAsQuad?(this.packQuadAttributes(b,c,l,b._attributeStart,b._textureId),this.packQuadIndex(d,b._indexStart,b._attributeStart/this.vertexSize)):(this.packAttributes(b,c,l,b._attributeStart,b._textureId),this.packIndex(b,d,b._indexStart,b._attributeStart/this.vertexSize)),b._batch=r,m.push(b);continue}v._batchTick=on,(s.count>=g||S)&&(this._finishBatch(r,u,h-u,s,o,a,e,f,m),f="renderBatch",u=h,o=w,a=b.topology,r=F1(),s=r.textures,s.clear(),m=[],++on),b._textureId=v._textureBindLocation=s.count,s.ids[v.uid]=s.count,s.textures[s.count++]=v,b._batch=r,m.push(b),h+=b.indexSize,b.packAsQuad?(this.packQuadAttributes(b,c,l,b._attributeStart,b._textureId),this.packQuadIndex(d,b._indexStart,b._attributeStart/this.vertexSize)):(this.packAttributes(b,c,l,b._attributeStart,b._textureId),this.packIndex(b,d,b._indexStart,b._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(r,u,h-u,s,o,a,e,f,m),u=h,++on),this.elementStart=this.elementSize,this._batchIndexStart=u,this._batchIndexSize=h}_finishBatch(e,t,r,s,n,o,a,c,l){e.gpuBindGroup=null,e.bindGroup=null,e.action=c,e.batcher=this,e.textures=s,e.blendMode=n,e.topology=o,e.start=t,e.size=r,e.elements=l,++on,this.batches[this.batchIndex++]=e,a.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){e*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(e*4)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){let t=Math.max(e,this.attributeBuffer.size*2),r=new Wt(t);sn(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r}_resizeIndexBuffer(e){let t=this.indexBuffer,r=Math.max(e,t.length*1.5);r+=r%2;let s=r>65535?new Uint32Array(r):new Uint16Array(r);if(s.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let n=0;n<t.length;n++)s[n]=t[n];else sn(t.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(e,t,r){e[t]=r+0,e[t+1]=r+1,e[t+2]=r+2,e[t+3]=r+0,e[t+4]=r+2,e[t+5]=r+3}packIndex(e,t,r,s){let n=e.indices,o=e.indexSize,a=e.indexOffset,c=e.attributeOffset;for(let l=0;l<o;l++)t[r++]=s+n[l+a]-c}destroy(e={}){if(this.batches!==null){for(let t=0;t<this.batchIndex;t++)U1(this.batches[t]);this.batches=null,this.geometry.destroy(!0),this.geometry=null,e.shader&&(this.shader?.destroy(),this.shader=null);for(let t=0;t<this._elements.length;t++)this._elements[t]&&(this._elements[t]._batch=null);this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}}};D1.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};O1=D1});var N3,H3,Ua,H1=p(()=>{xr();sr();zr();N3=new Float32Array(1),H3=new Uint32Array(1),Ua=class extends ct{constructor(){let t=new Me({data:N3,label:"attribute-batch-buffer",usage:J.VERTEX|J.COPY_DST,shrinkToFit:!1}),r=new Me({data:H3,label:"index-batch-buffer",usage:J.INDEX|J.COPY_DST,shrinkToFit:!1}),s=24;super({attributes:{aPosition:{buffer:t,format:"float32x2",stride:s,offset:0},aUV:{buffer:t,format:"float32x2",stride:s,offset:8},aColor:{buffer:t,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:t,format:"uint16x2",stride:s,offset:20}},indexBuffer:r})}}});function Da(i){let e=z1[i];if(e)return e;let t=new Int32Array(i);for(let r=0;r<i;r++)t[r]=r;return e=z1[i]=new Te({uTextures:{value:t,type:"i32",size:i}},{isStatic:!0}),e}var z1,eh=p(()=>{mt();z1={}});var cn,W1=p(()=>{Hi();Ca();Aa();Vi();eh();br();cn=class extends Ke{constructor(e){let t=Ni({name:"batch",bits:[Ea,Ma(e),Wi]}),r=Oi({name:"batch",bits:[Ta,Pa(e),zi]});super({glProgram:t,gpuProgram:r,resources:{batchSamplers:Da(e)}}),this.maxTextures=e}}});var ln,V1,dn,th=p(()=>{P();N1();H1();W1();ln=null,V1=class j1 extends O1{constructor(e){super(e),this.geometry=new Ua,this.name=j1.extension.name,this.vertexSize=6,ln??(ln=new cn(e.maxTextures)),this.shader=ln}packAttributes(e,t,r,s,n){let o=n<<16|e.roundPixels&65535,a=e.transform,c=a.a,l=a.b,d=a.c,h=a.d,u=a.tx,f=a.ty,{positions:m,uvs:g}=e,x=e.color,b=e.attributeOffset,y=b+e.attributeSize;for(let v=b;v<y;v++){let w=v*2,S=m[w],T=m[w+1];t[s++]=c*S+d*T+u,t[s++]=h*T+l*S+f,t[s++]=g[w],t[s++]=g[w+1],r[s++]=x,r[s++]=o}}packQuadAttributes(e,t,r,s,n){let o=e.texture,a=e.transform,c=a.a,l=a.b,d=a.c,h=a.d,u=a.tx,f=a.ty,m=e.bounds,g=m.maxX,x=m.minX,b=m.maxY,y=m.minY,v=o.uvs,w=e.color,S=n<<16|e.roundPixels&65535;t[s+0]=c*x+d*y+u,t[s+1]=h*y+l*x+f,t[s+2]=v.x0,t[s+3]=v.y0,r[s+4]=w,r[s+5]=S,t[s+6]=c*g+d*y+u,t[s+7]=h*y+l*g+f,t[s+8]=v.x1,t[s+9]=v.y1,r[s+10]=w,r[s+11]=S,t[s+12]=c*g+d*b+u,t[s+13]=h*b+l*g+f,t[s+14]=v.x2,t[s+15]=v.y2,r[s+16]=w,r[s+17]=S,t[s+18]=c*x+d*b+u,t[s+19]=h*b+l*x+f,t[s+20]=v.x3,t[s+21]=v.y3,r[s+22]=w,r[s+23]=S}_updateMaxTextures(e){this.shader.maxTextures!==e&&(ln=new cn(e),this.shader=ln)}destroy(){this.shader=null,super.destroy()}};V1.extension={type:[_.Batcher],name:"default"};dn=V1});var rh,hn,ih=p(()=>{P();It();th();rh=class X1{constructor(e,t){this.state=De.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init?.(this)}static getBatcher(e,t){return new this._availableBatchers[e]({maxTextures:t})}buildStart(e){let t=this._batchersByInstructionSet[e.uid];t||(t=this._batchersByInstructionSet[e.uid]=Object.create(null),t.default||(t.default=new dn({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=t,this._activeBatch=this._activeBatches.default;for(let r in this._activeBatches)this._activeBatches[r].begin()}addToBatch(e,t){if(this._activeBatch.name!==e.batcherName){this._activeBatch.break(t);let r=this._activeBatches[e.batcherName];r||(r=this._activeBatches[e.batcherName]=X1.getBatcher(e.batcherName,this.renderer.limits.maxBatchableTextures),r.begin()),this._activeBatch=r}this._activeBatch.add(e)}break(e){this._activeBatch.break(e)}buildEnd(e){this._activeBatch.break(e);let t=this._activeBatches;for(let r in t){let s=t[r],n=s.geometry;n.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),n.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(e){let t=this._batchersByInstructionSet[e.uid];for(let r in t){let s=t[r],n=s.geometry;s.dirty&&(s.dirty=!1,n.buffers[0].update(s.attributeSize*4))}}execute(e){if(e.action==="startBatch"){let t=e.batcher,r=t.geometry,s=t.shader;this._adaptor.start(this,r,s)}this._adaptor.execute(this,e)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let e in this._activeBatches)this._activeBatches[e].destroy();this._activeBatches=null}};rh.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"batch"};rh._availableBatchers=Object.create(null);hn=rh;H.handleByMap(_.Batcher,hn._availableBatchers);H.add(dn)});var Y1,$1=p(()=>{Y1=`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 q1,K1=p(()=>{q1=`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
|
|
466
|
+
`});var sh,Z1=p(()=>{sh=`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 La,Q1=p(()=>{ce();Hr();Gi();mt();ge();yl();he();xd();$1();K1();Z1();La=class extends fa{constructor(e){let{sprite:t,...r}=e,s=new Ti(t.texture),n=new Te({uFilterMatrix:{value:new k,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:e.inverse?1:0,type:"f32"},uChannel:{value:e.channel==="alpha"?1:0,type:"f32"}}),o=vt.from({vertex:{source:sh,entryPoint:"mainVertex"},fragment:{source:sh,entryPoint:"mainFragment"}}),a=yt.from({vertex:q1,fragment:Y1,name:"mask-filter"});super({...r,gpuProgram:o,glProgram:a,clipToViewport:!1,resources:{filterUniforms:n,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=s}setSprite(e){this.sprite=e;let t=this._getSafeTexture();this._textureMatrix.texture=t,this.resources.uMaskTexture=t.source}set inverse(e){this.resources.filterUniforms.uniforms.uInverse=e?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}set channel(e){this.resources.filterUniforms.uniforms.uChannel=e==="alpha"?1:0}get channel(){return this.resources.filterUniforms.uniforms.uChannel===1?"alpha":"red"}apply(e,t,r,s){let n=this._getSafeTexture();this._textureMatrix.texture=n,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=n.source,e.applyFilter(this,t,r,s)}_getSafeTexture(){let e=this.sprite.texture;return e.destroyed||!e.source||e.source.destroyed?(O("[MaskFilter] The mask texture was destroyed while the mask is still in use. Remove the mask before destroying its texture."),U.EMPTY):e}destroy(e=!1){this._textureMatrix.destroy(),super.destroy(e)}}});var z3,nh,Kr,oh=p(()=>{P();Ro();Q1();et();xs();$o();Zt();ge();Ur();zt();z3=new pe,nh=class extends Qt{constructor(){super(),this._placeholderSprite=new at(U.EMPTY),this.filters=[new La({sprite:this._placeholderSprite,inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(e){this.filters[0].setSprite(e)}get inverse(){return this.filters[0].inverse}set inverse(e){this.filters[0].inverse=e}get channel(){return this.filters[0].channel}set channel(e){this.filters[0].channel=e}reset(){this._placeholderSprite.texture=U.EMPTY,this.sprite=this._placeholderSprite}},Kr=class{constructor(e){this._activeMaskStage=[],this._usedEffects=[],this._renderer=e,e.runners.postrender.add(this)}push(e,t,r){let s=this._renderer;if(s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1,maskedContainer:t}),e.inverse=t._maskOptions.inverse,e.channel=t._maskOptions.channel??"red",e.renderMaskToTexture){let n=e.mask;n.includeInBuild=!0,n.collectRenderables(r,s,null),n.includeInBuild=!1}s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:e,maskedContainer:t,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){let t=this._renderer,r=e.mask.renderMaskToTexture;if(e.action==="pushMaskBegin"){let s=ye.get(nh);if(s.inverse=e.inverse,s.channel=e.mask.channel,r){e.mask.mask.measurable=!0;let n=vi(e.mask.mask,!0,z3);e.mask.mask.measurable=!1,n.ceil();let o=t.renderTarget.renderTarget.colorTexture.source,a=Pe.getOptimalTexture(n.width,n.height,o._resolution,o.antialias);t.renderTarget.push({target:a,clear:!0}),t.globalUniforms.push({offset:n,worldColor:4294967295});let c=s.sprite;c.texture=a,c.worldTransform.tx=n.minX,c.worldTransform.ty=n.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer,filterTexture:a})}else s.sprite=e.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer})}else if(e.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];r&&(t.type===Ue.WEBGL&&t.renderTarget.finishRenderPass(),t.renderTarget.pop(),t.globalUniforms.pop()),t.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(e.action==="popMaskEnd"){t.filter.pop();let s=this._activeMaskStage.pop();r&&Pe.returnTexture(s.filterTexture),this._usedEffects.push(s.filterEffect)}}postrender(){let e=this._usedEffects;for(let t=0;t<e.length;t++)ye.return(e[t]);e.length=0}destroy(){this.postrender(),this._renderer.runners.postrender.remove(this),this._renderer=null,this._activeMaskStage=null,this._usedEffects=null}};Kr.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"alphaMask"}});var un,J1=p(()=>{P();un=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,r){this._renderer.renderPipes.batch.break(r);let n=this._colorStack;n[this._colorStackIndex]=n[this._colorStackIndex-1]&e.mask;let o=this._colorStack[this._colorStackIndex];o!==this._currentColor&&(this._currentColor=o,r.add({renderPipeId:"colorMask",colorMask:o,canBundle:!1})),this._colorStackIndex++}pop(e,t,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(e){this._renderer.colorMask.setMask(e.colorMask)}destroy(){this._renderer=null,this._colorStack=null}};un.extension={type:[_.WebGLPipes,_.WebGPUPipes],name:"colorMask"}});var fn,eg=p(()=>{P();Ui();qr();fn=class{constructor(e){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=e}push(e,t,r){var s;let n=e,o=this._renderer;o.renderPipes.batch.break(r),o.renderPipes.blendMode.setBlendMode(n.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let a=n.mask;a.includeInBuild=!0,this._maskHash.has(n)||this._maskHash.set(n,{instructionsStart:0,instructionsLength:0});let c=this._maskHash.get(n);c.instructionsStart=r.instructionSize,a.collectRenderables(r,o,null),a.includeInBuild=!1,o.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let l=r.instructionSize-c.instructionsStart-1;c.instructionsLength=l;let d=o.renderTarget.renderTarget.uid;(s=this._maskStackHash)[d]??(s[d]=0)}pop(e,t,r){let s=e,n=this._renderer;n.renderPipes.batch.break(r),n.renderPipes.blendMode.setBlendMode(s.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:t._maskOptions.inverse,canBundle:!1});let o=this._maskHash.get(e);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(e){var t;let r=this._renderer,s=r,n=r.renderTarget.renderTarget.uid,o=(t=this._maskStackHash)[n]??(t[n]=0);e.action==="pushMaskBegin"?(s.renderTarget.ensureDepthStencil(),s.stencil.setStencilMode(ve.RENDERING_MASK_ADD,o),o++,s.colorMask.setMask(0)):e.action==="pushMaskEnd"?(e.inverse?s.stencil.setStencilMode(ve.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(ve.MASK_ACTIVE,o),s.colorMask.setMask(15)):e.action==="popMaskBegin"?(s.colorMask.setMask(0),o!==0?s.stencil.setStencilMode(ve.RENDERING_MASK_REMOVE,o):(s.renderTarget.clear(null,Ee.STENCIL),s.stencil.setStencilMode(ve.DISABLED,o)),o--):e.action==="popMaskEnd"&&(e.inverse?s.stencil.setStencilMode(ve.INVERSE_MASK_ACTIVE,o):s.stencil.setStencilMode(ve.MASK_ACTIVE,o),s.colorMask.setMask(15)),this._maskStackHash[n]=o}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};fn.extension={type:[_.WebGLPipes,_.WebGPUPipes],name:"stencilMask"}});var ah,rg,ig=p(()=>{$e();P();he();ah=class tg{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new Z(0),this.color=this._backgroundColor,this.alpha=1}init(e){e={...tg.defaultOptions,...e},this.clearBeforeRender=e.clearBeforeRender,this.color=e.background||e.backgroundColor||this._backgroundColor,this.alpha=e.backgroundAlpha,this._backgroundColor.setAlpha(e.backgroundAlpha)}get color(){return this._backgroundColor}set color(e){Z.shared.setValue(e).alpha<1&&this._backgroundColor.alpha===1&&O("Cannot set a transparent background on an opaque canvas. To enable transparency, set backgroundAlpha < 1 when initializing your Application."),this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};ah.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"background",priority:0};ah.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};rg=ah});var pn,Zr,ch=p(()=>{P();Ro();wl();he();pn={};H.handle(_.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]});Zr=class{constructor(e){this._blendModeStack=[],this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}pushBlendMode(e,t,r){this._blendModeStack.push(t),this.setBlendMode(e,t,r)}popBlendMode(e){this._blendModeStack.pop();let t=this._blendModeStack[this._activeBlendMode.length-1]??"normal";this.setBlendMode(null,t,e)}setBlendMode(e,t,r){let s=e instanceof Dr;if(this._activeBlendMode===t){this._isAdvanced&&e&&!s&&this._renderableList?.push(e);return}this._isAdvanced&&this._endAdvancedBlendMode(r),this._activeBlendMode=t,e&&(this._isAdvanced=!!pn[t],this._isAdvanced&&this._beginAdvancedBlendMode(e,r))}_beginAdvancedBlendMode(e,t){this._renderer.renderPipes.batch.break(t);let r=this._activeBlendMode;if(!pn[r]){O(`Unable to assign BlendMode: '${r}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let s=this._ensureFilterEffect(r),n=e instanceof Dr,o={renderPipeId:"filter",action:"pushFilter",filterEffect:s,renderables:n?null:[e],container:n?e.root:null,canBundle:!1};this._renderableList=o.renderables,t.add(o)}_ensureFilterEffect(e){let t=this._filterHash[e];return t||(t=this._filterHash[e]=new Qt,t.filters=[new pn[e]]),t}_endAdvancedBlendMode(e){this._isAdvanced=!1,this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(let e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}};Zr.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"blendMode"}});var lh,dh,ng,og=p(()=>{be();P();Mt();ge();lh={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},dh=class sg{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof me||e instanceof U?{target:e,...t}:{...t,...e}}async image(e){let t=z.get().createImage();return t.src=await this.base64(e),t}async base64(e){e=this._normalizeOptions(e,sg.defaultImageOptions);let{format:t,quality:r}=e,s=this.canvas(e);if(s.toBlob!==void 0)return new Promise((n,o)=>{s.toBlob(a=>{if(!a){o(new Error("ICanvas.toBlob failed!"));return}let c=new FileReader;c.onload=()=>n(c.result),c.onerror=o,c.readAsDataURL(a)},lh[t],r)});if(s.toDataURL!==void 0)return s.toDataURL(lh[t],r);if(s.convertToBlob!==void 0){let n=await s.convertToBlob({type:lh[t],quality:r});return new Promise((o,a)=>{let c=new FileReader;c.onload=()=>o(c.result),c.onerror=a,c.readAsDataURL(n)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){e=this._normalizeOptions(e);let t=e.target,r=this._renderer;if(t instanceof U)return r.texture.generateCanvas(t);let s=r.textureGenerator.generateTexture(e),n=r.texture.generateCanvas(s);return s.destroy(!0),n}pixels(e){e=this._normalizeOptions(e);let t=e.target,r=this._renderer,s=t instanceof U?t:r.textureGenerator.generateTexture(e),n=r.texture.getPixels(s);return t instanceof me&&s.destroy(!0),n}texture(e){return e=this._normalizeOptions(e),e.target instanceof U?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);let t=this.canvas(e),r=document.createElement("a");r.download=e.filename??"image.png",r.href=t.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(e){let t=e.width??200;e=this._normalizeOptions(e);let r=this.canvas(e),s=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`);let n=["font-size: 1px;",`padding: ${t}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",n)}destroy(){this._renderer=null}};dh.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"extract"};dh.defaultImageOptions={format:"png",quality:1};ng=dh});var Oa,ag=p(()=>{je();ge();Oa=class i extends U{static create(e){let{dynamic:t,textureOptions:r,...s}=e;return new i({...r,source:new oe(s),dynamic:t??!1})}resize(e,t,r){return this.source.resize(e,t,r),this}}});var W3,V3,j3,mn,cg=p(()=>{$e();P();ce();Ve();et();Fo();Mt();ag();W3=new Q,V3=new pe,j3=[0,0,0,0],mn=class{constructor(e){this._renderer=e}generateTexture(e){e instanceof me&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});let t=e.resolution||this._renderer.resolution,r=e.antialias||this._renderer.view.antialias,s=e.target,n=e.clearColor;n?n=Array.isArray(n)&&n.length===4?n:Z.shared.setValue(n).toArray():n=j3;let o=e.frame?.copyTo(W3)||Si(s,V3).rectangle,a=e.defaultAnchor&&{defaultAnchor:e.defaultAnchor};o.width=Math.max(o.width,1/t)|0,o.height=Math.max(o.height,1/t)|0;let c=Oa.create({...e.textureSourceOptions,width:o.width,height:o.height,resolution:t,antialias:r,textureOptions:a}),l=k.shared.translate(-o.x,-o.y);return this._renderer.render({container:s,transform:l,target:c,clearColor:n}),c.source.updateMipmaps(),c}destroy(){this._renderer=null}};mn.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"textureGenerator"}});function lg(i){let e=!1;for(let r in i)if(i[r]==null){e=!0;break}if(!e)return i;let t=Object.create(null);for(let r in i){let s=i[r];s&&(t[r]=s)}return t}function dg(i){let e=0;for(let t=0;t<i.length;t++)i[t]==null?e++:i[t-e]=i[t];return i.length-=e,i}var hg=p(()=>{"use strict"});var hh,fg,pg=p(()=>{P();hg();hh=class ug{constructor(e){this._managedResources=[],this._managedResourceHashes=[],this._managedCollections=[],this._ready=!1,this._renderer=e}init(e){e={...ug.defaultOptions,...e},this.maxUnusedTime=e.gcMaxUnusedTime,this._frequency=e.gcFrequency,this.enabled=e.gcActive,this.now=performance.now()}get enabled(){return!!this._handler}set enabled(e){this.enabled!==e&&(e?(this._handler=this._renderer.scheduler.repeat(()=>{this._ready=!0},this._frequency,!1),this._collectionsHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedCollections){let{context:r,collection:s,type:n}=t;n==="hash"?r[s]=lg(r[s]):r[s]=dg(r[s])}},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._collectionsHandler),this._handler=0,this._collectionsHandler=0))}prerender({container:e}){this.now=performance.now(),e.renderGroup.gcTick=this._renderer.tick++,this._updateInstructionGCTick(e.renderGroup,e.renderGroup.gcTick)}postrender(){!this._ready||!this.enabled||(this.run(),this._ready=!1)}_updateInstructionGCTick(e,t){e.instructionSet.gcTick=t,e.gcTick=t;for(let r of e.renderGroupChildren)this._updateInstructionGCTick(r,t)}addCollection(e,t,r){this._managedCollections.push({context:e,collection:t,type:r})}addResource(e,t){if(e._gcLastUsed!==-1){e._gcLastUsed=this.now,e._onTouch?.(this.now);return}let r=this._managedResources.length;e._gcData={index:r,type:t},e._gcLastUsed=this.now,e._onTouch?.(this.now),e.once("unload",this.removeResource,this),this._managedResources.push(e)}removeResource(e){let t=e._gcData;if(!t)return;let r=t.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--,e._gcData=null,e._gcLastUsed=-1}addResourceHash(e,t,r,s=0){this._managedResourceHashes.push({context:e,hash:t,type:r,priority:s}),this._managedResourceHashes.sort((n,o)=>n.priority-o.priority)}run(){let e=performance.now(),t=this._managedResourceHashes;for(let s of t)this.runOnHash(s,e);let r=0;for(let s=0;s<this._managedResources.length;s++){let n=this._managedResources[s];r=this.runOnResource(n,e,r)}this._managedResources.length=r}updateRenderableGCTick(e,t){let r=e.renderGroup??e.parentRenderGroup,s=r?.instructionSet?.gcTick??-1;(r?.gcTick??0)===s&&(e._gcLastUsed=t,e._onTouch?.(t))}runOnResource(e,t,r){let s=e._gcData;return s.type==="renderable"&&this.updateRenderableGCTick(e,t),t-e._gcLastUsed<this.maxUnusedTime||!e.autoGarbageCollect?(this._managedResources[r]=e,s.index=r,r++):(e.unload(),e._gcData=null,e._gcLastUsed=-1,e.off("unload",this.removeResource,this)),r}_createHashClone(e,t){let r=Object.create(null);for(let s in e){if(s===t)break;e[s]!==null&&(r[s]=e[s])}return r}runOnHash(e,t){let{context:r,hash:s,type:n}=e,o=r[s],a=null,c=0;for(let l in o){let d=o[l];if(d===null){c++,c===1e4&&!a&&(a=this._createHashClone(o,l));continue}if(d._gcLastUsed===-1){d._gcLastUsed=t,d._onTouch?.(t),a&&(a[l]=d);continue}if(n==="renderable"&&this.updateRenderableGCTick(d,t),!(t-d._gcLastUsed<this.maxUnusedTime)&&d.autoGarbageCollect){if(n==="renderable"){let u=d,f=u.renderGroup??u.parentRenderGroup;f&&(f.structureDidChange=!0)}d.unload(),d._gcData=null,d._gcLastUsed=-1,a||(c+1!==1e4?(o[l]=null,c++):a=this._createHashClone(o,l))}else a&&(a[l]=d)}a&&(r[s]=a)}destroy(){this.enabled=!1,this._managedResources.forEach(e=>{e.off("unload",this.removeResource,this)}),this._managedResources.length=0,this._managedResourceHashes.length=0,this._managedCollections.length=0,this._renderer=null}};hh.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"gc",priority:0};hh.defaultOptions={gcActive:!0,gcMaxUnusedTime:6e4,gcFrequency:3e4};fg=hh});function Yi(i,e,t){let r=(i>>24&255)/255;e[t++]=(i&255)/255*r,e[t++]=(i>>8&255)/255*r,e[t++]=(i>>16&255)/255*r,e[t++]=r}var Na=p(()=>{"use strict"});var gn,mg=p(()=>{P();ce();Pt();Na();gr();zt();mt();gn=class{constructor(e){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=e}reset(){this._stackIndex=0;for(let e=0;e<this._activeUniforms.length;e++)this._uniformsPool.push(this._activeUniforms[e]);for(let e=0;e<this._activeBindGroups.length;e++)this._bindGroupPool.push(this._activeBindGroups[e]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(e){this.reset(),this.push(e)}bind({size:e,projectionMatrix:t,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 ae},c={projectionMatrix:t||this._renderer.renderTarget.projectionMatrix,resolution:e||o.size,worldTransformMatrix:r||a.worldTransformMatrix,worldColor:s||a.worldColor,offset:n||a.offset,bindGroup:null},l=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(l);let d=l.uniforms;d.uProjectionMatrix=c.projectionMatrix,d.uResolution=c.resolution,d.uWorldTransformMatrix.copyFrom(c.worldTransformMatrix),d.uWorldTransformMatrix.tx-=c.offset.x,d.uWorldTransformMatrix.ty-=c.offset.y,Yi(c.worldColor,d.uWorldColorAlpha,0),l.update();let h;this._renderer.renderPipes.uniformBatch?h=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(l,!1):(h=this._bindGroupPool.pop()||new ze,this._activeBindGroups.push(h),h.setResource(l,0)),c.bindGroup=h,this._currentGlobalUniformData=c}push(e){this.bind(e),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===Ue.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 Te({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:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"globalUniforms"}});var X3,bn,gg=p(()=>{P();Pi();X3=1,bn=class{constructor(){this._tasks=[],this._offset=0}init(){Xe.system.add(this._update,this)}repeat(e,t,r=!0){let s=X3++,n=0;return r&&(this._offset+=1e3,n=this._offset),this._tasks.push({func:e,duration:t,start:performance.now(),offset:n,last:performance.now(),repeat:!0,id:s}),s}cancel(e){for(let t=0;t<this._tasks.length;t++)if(this._tasks[t].id===e){this._tasks.splice(t,1);return}}_update(){let e=performance.now();for(let t=0;t<this._tasks.length;t++){let r=this._tasks[t];if(e-r.offset-r.last>=r.duration){let s=e-r.start;r.func(s),r.last=e}}}destroy(){Xe.system.remove(this._update,this),this._tasks.length=0}};bn.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"scheduler",priority:0}});function xg(i){if(!bg){if(z.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let e=[`%c %c %c %c %c PixiJS %c v${ji} (${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() {}`});
|
|
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(...e)}else globalThis.console&&globalThis.console.log(`PixiJS ${ji} - ${i} - http://www.pixijs.com/`);bg=!0}}var bg,_g=p(()=>{be();Yd();bg=!1});var $i,yg=p(()=>{P();_g();zt();$i=class{constructor(e){this._renderer=e}init(e){if(e.hello){let t=this._renderer.name;this._renderer.type===Ue.WEBGL&&(t+=` ${this._renderer.context.webGLVersion}`),xg(t)}}};$i.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"hello",priority:-2};$i.defaultOptions={hello:!1}});var uh,wg,Sg=p(()=>{P();_e();uh=class vg{constructor(e){this._renderer=e}init(e){e={...vg.defaultOptions,...e},this.maxUnusedTime=e.renderableGCMaxUnusedTime}get enabled(){return N("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled}set enabled(e){N("8.15.0","RenderableGCSystem.enabled is deprecated, please use the GCSystem.enabled instead."),this._renderer.gc.enabled=e}addManagedHash(e,t){N("8.15.0","RenderableGCSystem.addManagedHash is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(e,t,"hash")}addManagedArray(e,t){N("8.15.0","RenderableGCSystem.addManagedArray is deprecated, please use the GCSystem.addCollection instead."),this._renderer.gc.addCollection(e,t,"array")}addRenderable(e){N("8.15.0","RenderableGCSystem.addRenderable is deprecated, please use the GCSystem instead."),this._renderer.gc.addResource(e,"renderable")}run(){N("8.15.0","RenderableGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};uh.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"renderableGC",priority:0};uh.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};wg=uh});var fh,Tg,Eg=p(()=>{P();_e();fh=class Ha{get count(){return this._renderer.tick}get checkCount(){return this._checkCount}set checkCount(e){N("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._checkCount=e}get maxIdle(){return this._renderer.gc.maxUnusedTime/1e3*60}set maxIdle(e){N("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.maxUnusedTime=e/60*1e3}get checkCountMax(){return Math.floor(this._renderer.gc._frequency/1e3)}set checkCountMax(e){N("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead.")}get active(){return this._renderer.gc.enabled}set active(e){N("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.enabled=e}constructor(e){this._renderer=e,this._checkCount=0}init(e){e.textureGCActive!==Ha.defaultOptions.textureGCActive&&(this.active=e.textureGCActive),e.textureGCMaxIdle!==Ha.defaultOptions.textureGCMaxIdle&&(this.maxIdle=e.textureGCMaxIdle),e.textureGCCheckCountMax!==Ha.defaultOptions.textureGCCheckCountMax&&(this.checkCountMax=e.textureGCCheckCountMax)}run(){N("8.15.0","TextureGCSystem.run is deprecated, please use the GCSystem instead."),this._renderer.gc.run()}destroy(){this._renderer=null}};fh.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"textureGC"};fh.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};Tg=fh});var Cg,qi,ph=p(()=>{Ie();je();ge();Cg=class Pg{constructor(e={}){this.uid=Y("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 t="colorAttachments"in e?e:this._normalizeOptions(e);if(this.isRoot=t.isRoot??!1,this.label=t.label,this.colorAttachments=t.colorAttachments,this.depthStencilAttachment=t.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(e){let t={...Pg.defaultOptions,...e},r=[],s;if(typeof t.colorTextures=="number"){if(t.colorTextures>0){this._managedColorTextures=!0;for(let o=0;o<t.colorTextures;o++)r.push({texture:new oe({width:t.width,height:t.height,resolution:t.resolution,antialias:t.antialias}),loadOp:"clear",storeOp:"store"})}}else t.colorTextures.forEach(o=>{r.push({texture:o.source,loadOp:"clear",storeOp:"store"})});let n=t.depthStencilTexture===!0;if(this._depth=!!(t.depth||n),this._stencil=!!(t.stencil||n),t.depthStencilTexture instanceof U||t.depthStencilTexture instanceof oe){if(t.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:t.depthStencilTexture.source}}else(n&&!t.isRoot||(t.stencil||t.depth)&&r.length===0)&&(s=this._createDepthStencilTexture(t.width,t.height,t.resolution));return{colorAttachments:r,depthStencilAttachment:s,isRoot:t.isRoot,label:t.label}}get size(){let e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}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(e=>e.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(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this._createDepthStencilTexture(this.sizeSource.width,this.sizeSource.height,this.sizeSource._resolution),this._depth=!0,this._stencil=!0}resize(e,t,r=this.resolution,s=!1){if(this.dirtyId++,this.colorAttachments.forEach((n,o)=>{s&&o===0||n.texture.resize(e,t,r)}),this.depthStencilAttachment){if(s&&this.colorAttachments.length===0)return;this.depthStencilAttachment.texture.resize(e,t,r)}}destroy(){!this.colorAttachments&&!this.depthStencilAttachment||(this.sizeSource.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorAttachments.forEach(e=>{e.texture.destroy()}),this.depthStencilAttachment&&(this.depthStencilAttachment.texture.destroy(),delete this.depthStencilAttachment),this.colorAttachments=null,this._colorTextures=null)}_createDepthStencilTexture(e,t,r){return this.depthStencilAttachment??(this.depthStencilAttachment={texture:new oe({width:e,height:t,resolution:r,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1})}),this.depthStencilAttachment}};Cg.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};qi=Cg});function za(i,e){if(!Ki.has(i)){let t=new U({source:new Se({resource:i,...e})}),r=()=>{Ki.get(i)===t&&Ki.delete(i)};t.once("destroy",r),t.source.once("destroy",r),Ki.set(i,t)}return Ki.get(i)}var Ki,mh=p(()=>{Mr();pr();ge();Ki=new Map;_t.register(Ki)});var gh,Ag,Rg=p(()=>{be();P();Ve();_e();ph();mh();gh=class Mg{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(e){this.texture.source.autoDensity=e}get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(e){e={...Mg.defaultOptions,...e},e.view&&(N(re,"ViewSystem.view has been renamed to ViewSystem.canvas"),e.canvas=e.view),this.screen=new Q(0,0,e.width,e.height),this.canvas=e.canvas||z.get().createCanvas(),this.antialias=!!e.antialias,this.texture=za(this.canvas,e),this.renderTarget=new qi({colorTextures:[this.texture],depth:!!e.depth,isRoot:!0}),this.texture.source.transparent=e.backgroundAlpha<1,this.resolution=e.resolution}resize(e,t,r){this.texture.source.resize(e,t,r),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(e=!1){(typeof e=="boolean"?e:!!e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.texture.destroy()}};gh.extension={type:[_.WebGLSystem,_.WebGPUSystem,_.CanvasSystem],name:"view",priority:0};gh.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};Ag=gh});var Zi,Wa,Va=p(()=>{Hd();Wd();R1();Xd();$d();ih();oh();J1();eg();ig();ch();og();cg();pg();mg();gg();yg();Sg();Eg();Rg();Zi=[rg,gn,$i,Ag,en,fg,Tg,mn,ng,rn,wg,bn],Wa=[Zr,hn,$r,Yr,Kr,fn,un,Xr]});var xn,kg=p(()=>{P();xn=class{constructor(e){this._hash=Object.create(null),this._renderer=e}contextChange(e){this._gpu=e}getBindGroup(e,t,r){let s=`${e._key}:${t._layoutKey<<4|r}`;return this._hash[s]||this._createBindGroup(s,e,t,r)}_createBindGroup(e,t,r,s){let n=this._gpu.device,o=r.layout[s],a=[],c=this._renderer;for(let h in o){let u=t.resources[h]??t.resources[o[h]];if(!u||u.destroyed)throw new Error(`[BindGroup] the resource bound as '${h}' was destroyed while a shader still uses it. Remove it from the shader before destroying it.`);let f;if(u._resourceType==="uniformGroup"){let m=u;c.ubo.updateUniformGroup(m);let g=m.buffer;f={buffer:c.buffer.getGPUBuffer(g),offset:0,size:g.descriptor.size}}else if(u._resourceType==="buffer"){let m=u;f={buffer:c.buffer.getGPUBuffer(m),offset:0,size:m.descriptor.size}}else if(u._resourceType==="bufferResource"){let m=u;f={buffer:c.buffer.getGPUBuffer(m.buffer),offset:m.offset,size:m.size??m.buffer.descriptor.size}}else if(u._resourceType==="textureSampler"){let m=u;f=c.texture.getGpuSampler(m)}else if(u._resourceType==="textureSource"){let m=u;f=c.texture.getTextureView(m)}else if(u._resourceType==="textureView"){let m=u;f=c.texture.getTextureView(m.source,m.viewDescriptor)}a.push({binding:o[h],resource:f})}let l=c.shader.getProgramData(r).bindGroups[s],d=n.createBindGroup({layout:l,entries:a});return this._hash[e]=d,d}destroy(){this._hash=null,this._renderer=null}};xn.extension={type:[_.WebGPUSystem],name:"bindGroup"}});var Re,Gt=p(()=>{"use strict";Re=class{constructor(e){this.items=Object.create(null);let{renderer:t,type:r,onUnload:s,priority:n,name:o}=e;this._renderer=t,t.gc.addResourceHash(this,"items",r,n??0),this._onUnload=s,this.name=o}add(e){return this.items[e.uid]?!1:(this.items[e.uid]=e,e.once("unload",this.remove,this),e._gcLastUsed=this._renderer.gc.now,!0)}remove(e,...t){if(!this.items[e.uid])return;let r=e._gpuData[this._renderer.uid];r&&(this._onUnload?.(e,...t),r.destroy(),e._gpuData[this._renderer.uid]=null,this.items[e.uid]=null)}removeAll(...e){Object.values(this.items).forEach(t=>t&&this.remove(t,...e))}destroy(...e){this.removeAll(...e),this.items=Object.create(null),this._renderer=null,this._onUnload=null}}});var bh,_n,Bg=p(()=>{P();Gt();Kd();bh=class{constructor(e){this.gpuBuffer=e}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}},_n=class{constructor(e){this._renderer=e,this._managedBuffers=new Re({renderer:e,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(e){this._gpu=e}getGPUBuffer(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(e)}updateBuffer(e){let t=this.getGPUBuffer(e),r=e.data;return e._updateID&&r&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,e._updateOffset,r.buffer,r.byteOffset+e._updateOffset,(e._updateSize||r.byteLength)+3&-4)),t}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(e){e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this)}createGPUBuffer(e){let t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e.data&&(sn(e.data.buffer,t.getMappedRange(),e.data.byteOffset,e.data.byteLength),t.unmap()),e._gpuData[this._renderer.uid]=new bh(t),this._managedBuffers.add(e)&&(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this)),t}onBufferChange(e){this._managedBuffers.remove(e),e._updateID=0,this.createGPUBuffer(e)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}};_n.extension={type:[_.WebGPUSystem],name:"buffer"}});var yn,Ig=p(()=>{P();yn=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}};yn.extension={type:[_.WebGPUSystem],name:"colorMask"}});var Qi,Gg=p(()=>{be();P();Qi=class{constructor(e){this._renderer=e}async init(e){return this._initPromise?this._initPromise:(this._initPromise=(e.gpu?Promise.resolve(e.gpu):this._createDeviceAndAdaptor(e)).then(t=>{this.gpu=t,this.extensions={transientAttachment:typeof GPUTextureUsage.TRANSIENT_ATTACHMENT=="number"},this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){let t=await z.get().getNavigator().gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter});if(!t)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=>t.features.has(n)),s=await t.requestDevice({requiredFeatures:r,requiredLimits:{maxSampledTexturesPerShaderStage:t.limits.maxSampledTexturesPerShaderStage,maxSamplersPerShaderStage:t.limits.maxSamplersPerShaderStage}});return{adapter:t,device:s}}destroy(){this.gpu=null,this.extensions=null,this._renderer=null}};Qi.extension={type:[_.WebGPUSystem],name:"device"};Qi.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1}});var vn,Fg=p(()=>{P();vn=class{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e;for(let t=0;t<16;t++)this._boundBindGroup[t]={bindGroup:null,program:null,key:null}}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this._passEncoder=this.commandEncoder.beginRenderPass(e.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 e=this._renderer.pipeline.getBundleDescriptor();this.renderPassEncoder=this._gpu.device.createRenderBundleEncoder(e)}endBundle(){let e=this.renderPassEncoder;if(!e||!("finish"in e))throw new Error("endBundle called without an active render bundle.");let t=e.finish();return this.renderPassEncoder=this._passEncoder,this._clearCache(),t}executeBundle(e){this._clearCache(),this._passEncoder.executeBundles([e])}setViewport(e){this._passEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setStencilReference(e){this._passEncoder.setStencilReference(e)}setPipelineFromGeometryProgramAndState(e,t,r,s,n){let o=this._renderer.pipeline.getPipeline(e,t,r,s,n);this.setPipeline(o)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;let t=e.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){let t=this._boundBindGroup[e];t.bindGroup=null,t.program=null,t.key=null}setBindGroup(e,t,r){let s=this._boundBindGroup[e];if(s.bindGroup===t&&s.program===r&&s.key===t._key)return;s.bindGroup=t,s.program=r,s.key=t._key,t._touch(this._renderer.gc.now,this._renderer.tick);let n=this._renderer.bindGroup.getBindGroup(t,r,e);this.renderPassEncoder.setBindGroup(e,n)}setGeometry(e,t){let r=this._renderer.pipeline.getBufferNamesToBind(e,t);for(let s in r)this._setVertexBuffer(parseInt(s,10),e.attributes[r[s]].buffer);e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){let r=e.gpuProgram;for(let s in e.groups){if(!r.layout[s])continue;let n=e.groups[s];t||this._syncBindGroup(n),this.setBindGroup(s,n,r)}}_syncBindGroup(e){for(let t in e.resources){let r=e.resources[t];r&&r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(e){let{geometry:t,shader:r,state:s,topology:n,size:o,start:a,baseVertex:c,instanceCount:l,skipSync:d,firstInstance:h}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,s,n,r._overrides),this.setGeometry(t,r.gpuProgram),this._setShaderBindGroups(r,d),t.indexBuffer?this.renderPassEncoder.drawIndexed(o||t.indexBuffer.data.length,l??t.instanceCount,a||0,c||0,h||0):this.renderPassEncoder.draw(o||t.vertexCount,l??t.instanceCount,a||0,h||0)}drawIndirect(e){let{geometry:t,shader:r,state:s,topology:n,skipSync:o,indirectBuffer:a,indirectOffset:c}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,s,n,r._overrides),this.setGeometry(t,r.gpuProgram),this._setShaderBindGroups(r,o),t.indexBuffer?this.renderPassEncoder.drawIndexedIndirect(a,c):this.renderPassEncoder.drawIndirect(a,c)}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 e=0;e<16;e++){let t=this._boundBindGroup[e];t.bindGroup=null,t.program=null,t.key=null,this._boundVertexBuffer[e]=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(e){this._gpu=e}};vn.extension={type:[_.WebGPUSystem],name:"encoder",priority:1}});var wn,Ug=p(()=>{P();wn=class{constructor(e){this.supportsOverrideConstants=!1,this._renderer=e}contextChange(){let e=this._renderer.device.gpu.device;this.maxTextures=Math.min(e.limits.maxSampledTexturesPerShaderStage,e.limits.maxSamplersPerShaderStage),this.maxBatchableTextures=this.maxTextures,this._detectOverrideConstantsSupport(e)}_detectOverrideConstantsSupport(e){e.pushErrorScope("validation");let t=e.createShaderModule({code:`override TEST_VALUE: f32 = 0.0;
|
|
573
|
+
@compute @workgroup_size(1) fn main() {}`});e.createComputePipeline({layout:"auto",compute:{module:t,entryPoint:"main",constants:{TEST_VALUE:1}}}),e.popErrorScope().then(r=>{this.supportsOverrideConstants=!r})}destroy(){}};wn.extension={type:[_.WebGPUSystem],name:"limits"}});var Sn,Dg=p(()=>{P();qr();Sn=class{constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:ve.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=e,r.stencilReference=t;let s=this._renderer;s.pipeline.setStencilMode(e),s.encoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}};Sn.extension={type:[_.WebGPUSystem],name:"stencil"}});var vr,ja=p(()=>{Td();xr();sr();vr=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!ma())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(e){let t=this.getUniformGroupData(e);e.buffer||(e.buffer=new Me({data:new Float32Array(t.layout.size/4),usage:J.UNIFORM|J.COPY_DST}))}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){let t=e._signature,r=this._syncFunctionHash[t];if(!r){let s=Object.keys(e.uniformStructures).map(a=>e.uniformStructures[a]),n=this._adaptor.createUboElements(s),o=this._generateUboSync(n.uboElements);r=this._syncFunctionHash[t]={layout:n,syncFunction:o}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,r){let s=this.getUniformGroupData(e);e.buffer||(e.buffer=new Me({data:new Float32Array(s.layout.size/4),usage:J.UNIFORM|J.COPY_DST}));let n=null;return t||(t=e.buffer.data,n=e.buffer.dataInt32),r||(r=0),s.syncFunction(e.uniforms,t,n,r),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;let t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}}});function Lg(i){let e=i.map(r=>({data:r,offset:0,size:0})),t=0;for(let r=0;r<e.length;r++){let s=e[r],n=Qr[s.data.type].size,o=Qr[s.data.type].align;if(!Qr[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),t=Math.ceil(t/o)*o,s.size=n,s.offset=t,t+=n}return t=Math.ceil(t/16)*16,{uboElements:e,size:t}}var Qr,Xa=p(()=>{"use strict";Qr={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 lt,Tn=p(()=>{"use strict";lt=[{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 Ya(i,e,t){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],
|
|
652
|
-
v = uv.${
|
|
653
|
-
offset += ${
|
|
654
|
-
${
|
|
655
|
-
`)}s=
|
|
656
|
-
`);return new Function("uv","data","dataInt32","offset",n)}var
|
|
657
|
-
for (let i = 0; i < ${i*
|
|
651
|
+
`],s=0;for(let o=0;o<i.length;o++){let a=i[o],c=a.data.name,l=!1,d=0;for(let h=0;h<lt.length;h++)if(lt[h].test(a.data)){d=a.offset/4,r.push(`name = "${c}";`,`offset += ${d-s};`,lt[h].ubo),l=!0;break}if(!l)if(a.data.size>1)d=a.offset/4,r.push(t(a,d-s));else{let h=e[a.data.type];d=a.offset/4,r.push(`
|
|
652
|
+
v = uv.${c};
|
|
653
|
+
offset += ${d-s};
|
|
654
|
+
${h};
|
|
655
|
+
`)}s=d}let n=r.join(`
|
|
656
|
+
`);return new Function("uv","data","dataInt32","offset",n)}var xh=p(()=>{Tn()});function Ji(i,e){return`
|
|
657
|
+
for (let i = 0; i < ${i*e}; i++) {
|
|
658
658
|
data[offset + (((i / ${i})|0) * 4) + (i % ${i})] = v[i];
|
|
659
659
|
}
|
|
660
|
-
`}var
|
|
660
|
+
`}var _h,Og,yh=p(()=>{"use strict";_h={f32:`
|
|
661
661
|
data[offset] = v;`,i32:`
|
|
662
662
|
dataInt32[offset] = v;`,u32:`
|
|
663
663
|
dataInt32[offset] = v;`,"vec2<f32>":`
|
|
@@ -703,28 +703,28 @@ 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>":Ji(3,2),"mat4x2<f32>":Ji(4,2),"mat2x3<f32>":Ji(2,3),"mat4x3<f32>":Ji(4,3),"mat2x4<f32>":Ji(2,4),"mat3x4<f32>":Ji(3,4)},Og={..._h,"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 Ng(i,e){let{size:t,align:r}=Qr[i.data.type],s=(r-t)/4,n=i.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
|
|
712
712
|
v = uv.${i.data.name};
|
|
713
|
-
${
|
|
713
|
+
${e!==0?`offset += ${e};`:""}
|
|
714
714
|
|
|
715
715
|
arrayOffset = offset;
|
|
716
716
|
|
|
717
717
|
t = 0;
|
|
718
718
|
|
|
719
|
-
for(var i=0; i < ${i.data.size*(
|
|
719
|
+
for(var i=0; i < ${i.data.size*(t/4)}; i++)
|
|
720
720
|
{
|
|
721
|
-
for(var j = 0; j < ${
|
|
721
|
+
for(var j = 0; j < ${t/4}; j++)
|
|
722
722
|
{
|
|
723
723
|
${n}[arrayOffset++] = v[t++];
|
|
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 Hg=p(()=>{Xa()});function zg(i){return Ya(i,Og,Ng)}var Wg=p(()=>{xh();yh();Hg()});var Jr,vh=p(()=>{P();ja();Xa();Wg();Jr=class extends vr{constructor(){super({createUboElements:Lg,generateUboSync:zg})}};Jr.extension={type:[_.WebGPUSystem],name:"ubo"}});var Vt,En=p(()=>{Ne();Ie();Vt=class extends fe{constructor({buffer:e,offset:t,size:r}){super(),this.uid=Y("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=Y("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=e,this.offset=t|0,this.size=r,this.buffer.on("change",this.onBufferChange,this)}get _gcLastUsed(){return this.buffer?._gcLastUsed??-1}set _gcLastUsed(e){this.buffer&&(this.buffer._gcLastUsed=e)}onBufferChange(){this._resourceId=Y("resource"),this.emit("change",this)}destroy(e=!1){this.destroyed=!0,e&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}});var $a,Vg=p(()=>{"use strict";$a=class{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${e*4}`);let t=this.byteIndex,r=t+e*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,t}addGroup(e){let t=this.addEmptyGroup(e.length);for(let r=0;r<e.length;r++)this.data[t/4+r]=e[r];return t}destroy(){this.data=null}}});var wr,Cn,jg=p(()=>{P();xr();En();sr();Vg();gr();wr=128,Cn=class{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._batchBuffer=new $a({minUniformOffsetAlignment:wr});let t=256/wr;for(let r=0;r<t;r++){let s=J.UNIFORM|J.COPY_DST;r===0&&(s|=J.COPY_SRC),this._buffers.push(new Me({data:this._batchBuffer.data,usage:s}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){this._bindGroupHash=Object.create(null),this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);let r=e.buffer.data,s=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,s/4),this._bindGroupHash[e.uid]=this._getBindGroup(s/wr),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);let t=e.buffer.data,r=this._batchBuffer.addGroup(t);return this._getBufferResource(r/wr)}getArrayBindGroup(e){let t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/wr)}getArrayBufferResource(e){let r=this._batchBuffer.addGroup(e)/wr;return this._getBufferResource(r)}_getBufferResource(e){if(!this._bufferResources[e]){let t=this._buffers[e%2];this._bufferResources[e]=new Vt({buffer:t,offset:(e/2|0)*256,size:wr})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){let t=new ze({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){let e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);let r=this._renderer.gpu.device.createCommandEncoder();for(let s=1;s<this._buffers.length;s++){let n=this._buffers[s];r.copyBufferToBuffer(e.getGPUBuffer(t),wr,e.getGPUBuffer(n),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([r.finish()])}destroy(){for(let e=0;e<this._bindGroups.length;e++)this._bindGroups[e]?.destroy();this._bindGroups=null,this._bindGroupHash=null;for(let e=0;e<this._buffers.length;e++)this._buffers[e].destroy();this._buffers=null;for(let e=0;e<this._bufferResources.length;e++)this._bufferResources[e].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._renderer=null}};Cn.extension={type:[_.WebGPUPipes],name:"uniformBatch"}});function Pn(i,e){for(let t in i.attributes){let r=i.attributes[t],s=e[t];s?(r.format??(r.format=s.format),r.offset??(r.offset=s.offset),r.instance??(r.instance=s.instance)):O(`Attribute ${t} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}Y3(i)}function Y3(i){let{buffers:e,attributes:t}=i,r={},s={};for(let n in e){let o=e[n];r[o.uid]=0,s[o.uid]=0}for(let n in t){let o=t[n];r[o.buffer.uid]+=qe(o.format).stride}for(let n in t){let o=t[n];o.stride??(o.stride=r[o.buffer.uid]),o.start??(o.start=s[o.buffer.uid]),s[o.buffer.uid]+=qe(o.format).stride}}var wh=p(()=>{he();mr()});var jt,Sh=p(()=>{qr();jt=[];jt[ve.NONE]=void 0;jt[ve.DISABLED]={stencilWriteMask:0,stencilReadMask:0};jt[ve.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};jt[ve.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};jt[ve.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};jt[ve.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}});function $g(i,e){for(let[t,r]of Object.entries(e)){let s=new RegExp(`override\\s+${t}\\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 ${t}: ${o} = ${a};`})}return i}function qg(i,e,t,r,s,n){return i*35184372088832+e*536870912+n*16384+(t<<8)+(r<<3)+s}function Zg(i){let e=Kg[i];return e===void 0&&(e=Kg[i]=K3++),e}function Z3(i,e,t,r,s,n,o,a){return a<<20|n<<16|s<<13|t<<9|i<<6|o<<5|r<<1|e}var Xg,$3,q3,Yg,Kg,K3,Mn,Qg=p(()=>{P();he();wh();ad();qr();Ii();Sh();Xg={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4},$3=new Fi({}),q3={"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}},Yg={depth:!1,stencil:!1,index:0};Kg=Object.create(null),K3=0;Mn=class{constructor(e){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=Zg("bgra8unorm"),this._depthStencilFormat="depth24plus-stencil8",this._depthStencilFormatData=Yg,this._depthReadOnly=!1,this._invertFrontFace=!1,this._renderer=e}contextChange(e){this._gpu=e,this.setStencilMode(ve.DISABLED),this._updatePipeHash()}setMultisampleCount(e){this._multisampleCount!==e&&(this._multisampleCount=e,this._updatePipeHash())}setRenderTarget(e){let t=e.colorAttachments[0]?.texture;this._multisampleCount=t?.source.antialias?4:1,this._colorTargetCount=e.colorAttachments.length,this._colorFormat=t?.format??"bgra8unorm",this._colorFormatId=Zg(this._colorFormat),this._depthStencilFormat=e.depthStencilAttachment?.texture.format,this._depthStencilFormatData=q3[this._depthStencilFormat]||Yg,this._depthReadOnly=e.depthStencilAttachment?.depthReadOnly??!1,this._invertFrontFace=!!e.flipY,this._updatePipeHash()}setColorMask(e){this._colorMask!==e&&(this._colorMask=e,this._updatePipeHash())}setStencilMode(e){this._stencilMode!==e&&(this._stencilMode=e,this._stencilState=jt[e],this._updatePipeHash())}getBundleDescriptor(){let e=[];for(let r=0;r<this._colorTargetCount;r++)e.push(this._colorFormat);let t={colorFormats:e,sampleCount:this._multisampleCount};return(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil)&&(t.depthStencilFormat=this._depthStencilFormat),t}setPipeline(e,t,r,s){let n=this.getPipeline(e,t,r);s.setPipeline(n)}getPipelineKey(e,t,r,s,n){return e._layoutKey||(Pn(e,t.attributeData),this._generateBufferKey(e)),qg(e._layoutKey,t._layoutKey,r.data,r._blendModeId,Xg[s],n.id)}getPipeline(e,t,r,s,n){e._layoutKey||(Pn(e,t.attributeData),this._generateBufferKey(e)),s||(s=e.topology),n||(n=$3);let o=qg(e._layoutKey,t._layoutKey,r.data,r._blendModeId,Xg[s],n.id),a=this._pipeCache.get(o);return a||(a=this._createPipeline(e,t,r,s,n),this._pipeCache.set(o,a)),a}_createPipeline(e,t,r,s,n){let o=this._gpu.device,a=this._createVertexBufferLayouts(e,t),c=this._renderer.state.getColorTargets(r,this._colorTargetCount,this._colorFormat),l=this._stencilMode===ve.RENDERING_MASK_ADD?0:this._colorMask;for(let b=0;b<c.length;b++)c[b].writeMask=l;let d=this._renderer.shader.getProgramData(t).pipeline,h=Object.keys(n.data).length>0,u=t.vertex.source,f=t.fragment.source,m;h&&(this._renderer.limits.supportsOverrideConstants?m=n.data:(u=$g(u,n.data),f=$g(f,n.data)));let g={vertex:{module:this._getModule(u),entryPoint:t.vertex.entryPoint,constants:m,buffers:a},fragment:{module:this._getModule(f),entryPoint:t.fragment.entryPoint,targets:c,constants:m},primitive:{topology:s,cullMode:r.culling?"back":"none",frontFace:r.clockwiseFrontFace!==this._invertFrontFace?"cw":"ccw"},layout:d,multisample:{count:this._multisampleCount},label:t.name?`PIXI Pipeline (${t.name})`:"PIXI Pipeline"};if(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil){let b=this._depthStencilFormatData;g.depthStencil={...this._stencilState,format:this._depthStencilFormat,depthWriteEnabled:b.depth?r.depthMask&&!this._depthReadOnly:!1,depthCompare:b.depth&&r.depthTest?"less":"always"}}return o.createRenderPipeline(g)}_getModule(e){return this._moduleCache[e]||this._createModule(e)}_createModule(e){let t=this._gpu.device;return this._moduleCache[e]=t.createShaderModule({code:e}),this._moduleCache[e]}_generateBufferKey(e){let t=[],r=0,s=Object.keys(e.attributes).sort();for(let o=0;o<s.length;o++){let a=e.attributes[s[o]];t[r++]=a.offset,t[r++]=a.format,t[r++]=a.stride,t[r++]=a.instance}let n=t.join("|");return e._layoutKey=Bt(n,"geometry"),e._layoutKey}_generateAttributeLocationsKey(e){let t=[],r=0,s=Object.keys(e.attributeData).sort();for(let o=0;o<s.length;o++){let a=e.attributeData[s[o]];t[r++]=a.location}let n=t.join("|");return e._attributeLocationsKey=Bt(n,"programAttributes"),e._attributeLocationsKey}getBufferNamesToBind(e,t){let r=e._layoutKey<<16|t._attributeLocationsKey;if(this._bindingNamesCache[r])return this._bindingNamesCache[r];let s=this._createVertexBufferLayouts(e,t),n=Object.create(null),o=t.attributeData;for(let a=0;a<s.length;a++){let l=Object.values(s[a].attributes)[0].shaderLocation;for(let d in o)if(o[d].location===l){n[a]=d;break}}return this._bindingNamesCache[r]=n,n}_createVertexBufferLayouts(e,t){t._attributeLocationsKey||this._generateAttributeLocationsKey(t);let r=e._layoutKey<<16|t._attributeLocationsKey;if(this._bufferLayoutsCache[r])return this._bufferLayoutsCache[r];let s=[];return e.buffers.forEach(n=>{let o={arrayStride:0,stepMode:"vertex",attributes:[]},a=o.attributes;for(let c in t.attributeData){let l=e.attributes[c];(l.divisor??1)!==1&&O(`Attribute ${c} has an invalid divisor value of '${l.divisor}'. WebGPU only supports a divisor value of 1`),l.buffer===n&&(o.arrayStride=l.stride,o.stepMode=l.instance?"instance":"vertex",a.push({shaderLocation:t.attributeData[c].location,offset:l.offset,format:l.format}))}a.length&&s.push(o)}),this._bufferLayoutsCache[r]=s,s}_updatePipeHash(){var e;let t=Z3(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=(e=this._pipeStateCaches)[t]??(e[t]=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:[_.WebGPUSystem],name:"pipeline"}});function Jg(i,e,t,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-e*i.a,i.ty=-o-t*i.d,i}var eb=p(()=>{"use strict"});function tb(i){if(i.colorAttachments.length===0)return!1;let e=i.colorTexture.resource;return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement&&document.body.contains(e)}var rb=p(()=>{"use strict"});var Sr,qa=p(()=>{ce();Ve();_e();he();Ui();eb();zt();Bd();pr();je();ge();mh();rb();ph();Sr=class{constructor(e){this.rootViewPort=new Q,this.viewport=new Q,this.onRenderTargetChange=new Di("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 Q,this._renderer=e,e.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(e){this._renderTargetStack.length=0,this.push(e),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=tb(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(e,t=!0,r,s,n=0,o=0,a){let c;"target"in e?c=e:(N("8.20.0","RenderTargetSystem.bind: positional arguments are deprecated, please use an options object instead: bind({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),c={target:e,clear:t,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let l=c.target;t=c.clear??!0,r=c.clearColor,n=(c.mipLevel??0)|0,o=(c.layer??0)|0,a=c.flipY,s=c.frame;let d=this.getRenderTarget(l),h=this.renderTarget!==d;this.renderTarget=d;let u=this.getGpuRenderTarget(d);(d.pixelWidth!==u.width||d.pixelHeight!==u.height)&&(this.adaptor.resizeGpuRenderTarget(d),u.width=d.pixelWidth,u.height=d.pixelHeight);let f=d.colorAttachments[0]?.texture||d.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 x=this._bindState;x.target=l,x.frame=s?this._bindFrame.copyFrom(s):void 0,x.mipLevel=n,x.layer=o,x.flipY=a;let b=Math.max(f.pixelWidth>>n,1),y=Math.max(f.pixelHeight>>n,1);if(!s&&l instanceof U&&(s=l.frame),s){let v=f._resolution,w=1<<Math.max(n,0),S=s.x*v+.5|0,T=s.y*v+.5|0,C=s.width*v+.5|0,B=s.height*v+.5|0,R=Math.floor(S/w),M=Math.floor(T/w),E=Math.ceil(C/w),A=Math.ceil(B/w);R<0&&(E+=R,R=0),M<0&&(A+=M,M=0),R=Math.min(R,b-1),M=Math.min(M,y-1),E=Math.min(E,b-R),A=Math.min(A,y-M),E=Math.max(E,1),A=Math.max(A,1),m.x=R,m.y=M,m.width=E,m.height=A}else m.x=0,m.y=0,m.width=b,m.height=y;return d.flipY=a,Jg(this.projectionMatrix,0,0,m.width/f.resolution,m.height/f.resolution,!d.isRoot!=!!d.flipY),this.adaptor.startRenderPass(d,t,r,m,n,o),h&&this.onRenderTargetChange.emit(d),d}getBindState(e){if(!this.renderTarget)throw new Error("[RenderTargetSystem] getBindState is only valid while a render surface is bound");let t=this._bindState;return e??(e={}),e.target=t.target,e.clear=Ee.NONE,e.clearColor=void 0,t.frame?e.frame?e.frame.copyFrom(t.frame):e.frame=t.frame.clone():e.frame=void 0,e.mipLevel=t.mipLevel,e.layer=t.layer,e.flipY=!!t.flipY,e}get frontFaceInverted(){let e=this.renderTarget;if(!e)return!1;let t=this._renderer.type===Ue.WEBGL&&!e.isRoot;return!!e.flipY!==t}clear(e,t=Ee.ALL,r,s=this.mipLevel,n=this.layer){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,r,this.viewport,s,n))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=Ee.ALL,r,s,n=0,o=0,a){let c;"target"in e?c=e:(N("8.20.0","RenderTargetSystem.push: positional arguments are deprecated, please use an options object instead: push({ target, clear, clearColor, frame, mipLevel, layer, flipY })"),c={target:e,clear:t,clearColor:r,frame:s,mipLevel:n,layer:o,flipY:a});let l=this.bind(c);return this._renderTargetStack.push({target:c.target,clear:!1,clearColor:void 0,frame:c.frame?c.frame.clone():void 0,mipLevel:c.mipLevel,layer:c.layer,flipY:c.flipY}),l}pop(){this._renderTargetStack.pop();let e=this._renderTargetStack[this._renderTargetStack.length-1];if(!e)throw new Error("[RenderTargetSystem] pop: no previous binding to restore (unbalanced pop)");return this.bind(e)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,r,s,n){let o=this.getRenderTarget(e);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:c}=o;return s.width=Math.min(s.width,a-r.x),s.height=Math.min(s.height,c-r.y),this.adaptor.copyToTexture(o,t,r,s,n)}copyDepthTexture(e,t,r,s,n={x:0,y:0}){let o=this.getRenderTarget(e);if(!o.depthStencilAttachment){O("[RenderTargetSystem] copyDepthTexture: the source render target has no depth attachment to copy from");return}let a=t.source;if(!a.format.includes("depth")&&!a.format.includes("stencil")){O(`[RenderTargetSystem] copyDepthTexture: the destination texture must have a depth/stencil format (got '${a.format}')`);return}let c=r.x,l=r.y,d=n.x,h=n.y,u=s.width,f=s.height;c<0&&(u+=c,d-=c,c=0),l<0&&(f+=l,h-=l,l=0),u=Math.min(u,o.pixelWidth-c),f=Math.min(f,o.pixelHeight-l),u=Math.min(u,a.pixelWidth-d),f=Math.min(f,a.pixelHeight-h),!(u<=0||f<=0)&&this.adaptor.copyDepthTexture(o,t,{x:c,y:l},{width:u,height:f},{x:d,y:h})}ensureDepthStencil(){if(!this.renderTarget.stencil){if(this.renderTarget.depthStencilTexture){O(`[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((e,t)=>{e!==t&&this._releaseRenderTarget(t,e)}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;if(Se.test(e)&&(e=za(e).source),e instanceof qi)t=e;else if(e instanceof oe){let r=e.format;t=r.includes("depth")||r.includes("stencil")?new qi({colorTextures:0,depthStencilTexture:e}):new qi({colorTextures:[e]}),e.source instanceof Se&&(t.isRoot=!0),e.once("destroy",this._onRenderSurfaceDestroy,this)}return this._renderSurfaceToRenderTargetHash.set(e,t),t}_onRenderSurfaceDestroy(e){let t=this._renderSurfaceToRenderTargetHash.get(e);t&&this._releaseRenderTarget(e,t)}_releaseRenderTarget(e,t){t.destroy(),this._renderSurfaceToRenderTargetHash.delete(e),e.off("destroy",this._onRenderSurfaceDestroy,this);let r=this._gpuRenderTargetHash[t.uid];r&&(this._gpuRenderTargetHash[t.uid]=null,this.adaptor.destroyGpuRenderTarget(r))}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}resetState(){this.renderTarget=null,this._bindState.target=null}}});var Ka,ib=p(()=>{"use strict";Ka=class{constructor(){this.contexts=[],this.msaaTextures=[],this.msaaSamples=1}}});function J3(i){if(Q3[i])return i;let e=navigator.gpu.getPreferredCanvasFormat();return O(`[WebGPU] CanvasSource format '${i}' is not a valid GPUCanvasContext format. Falling back to '${e}'. Allowed formats are: bgra8unorm, rgba8unorm, rgba16float.`),e}var Q3,Za,sb=p(()=>{he();Ui();pr();je();ib();Q3={bgra8unorm:!0,rgba8unorm:!0,rgba16float:!0};Za=class{constructor(){this._activePass=null}init(e,t){this._renderer=e,this._renderTargetSystem=t}copyToTexture(e,t,r,s,n){let o=this._renderer;this.finishRenderPass();let a=this._getGpuColorTexture(e),c=o.texture.getGpuSource(t.source);return o.encoder.commandEncoder.copyTextureToTexture({texture:a,origin:r},{texture:c,origin:n},s),t}copyDepthTexture(e,t,r,s,n){let o=this._renderer;this.finishRenderPass();let a=e.depthStencilAttachment.texture,c=o.texture.getGpuSource(a),l=o.texture.getGpuSource(t.source),d=o.encoder.commandEncoder===null,h=d?o.gpu.device.createCommandEncoder():o.encoder.commandEncoder;h.copyTextureToTexture({texture:c,origin:r},{texture:l,origin:n},{width:s.width,height:s.height}),d&&o.gpu.device.queue.submit([h.finish()])}startRenderPass(e,t=!0,r,s,n=0,o=0){let c=this._renderTargetSystem.getGpuRenderTarget(e);if(o!==0&&c.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported with MSAA render targets.");if(n>0&&c.msaaTextures?.length)throw new Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");let l=t;typeof l=="boolean"&&(l=l?Ee.ALL:Ee.NONE),(e.stencil||e.depth)&&!e.depthStencilAttachment&&e.ensureDepthStencilTexture();let d=!!e.depthStencilAttachment,h=this._activePass;if(h!==null&&h.renderTarget===e&&h.mipLevel===n&&h.layer===o&&h.depthStencil===d&&this._renderer.encoder.renderPassEncoder!==null&&l===Ee.NONE){this._renderer.encoder.setViewport(s);return}let f=this.getDescriptor(e,t,r,n,o);c.descriptor=f,this._renderer.pipeline.setRenderTarget(e),this._renderer.encoder.beginRenderPass(c),this._renderer.encoder.setViewport(s),this._activePass={renderTarget:e,mipLevel:n,layer:o,depthStencil:d}}finishRenderPass(){this._renderer.encoder.endRenderPass(),this._activePass=null}_getGpuColorTexture(e){if(e.colorAttachments.length===0)throw new Error("[GpuRenderTargetAdaptor] cannot get gpu color texture from a depth-only render target");let t=e.colorAttachments[0].texture;return t instanceof Se&&t._gpuContext?t._gpuContext.getCurrentTexture():this._renderer.texture.getGpuSource(t)}getDescriptor(e,t,r,s=0,n=0){typeof t=="boolean"&&(t=t?Ee.ALL:Ee.NONE);let o=this._renderTargetSystem,a=o.getGpuRenderTarget(e),c=e.colorAttachments.map((h,u)=>{let f=h.texture,m=f instanceof Se?f._gpuContext:null,g,x;if(m){if(n!==0)throw new Error("[RenderTargetSystem] Rendering to array layers is not supported for canvas targets.");g=m.getCurrentTexture().createView(h.viewDescriptor)}else g=this._renderer.texture.getTextureRenderTargetView(h.texture,s,n,h.viewDescriptor);let b=!1;a.msaaTextures[u]&&(x=g,g=this._renderer.texture.getTextureView(a.msaaTextures[u]),b=a.msaaTextures[u].transient);let y=h.loadOp;t!==void 0&&(y=t&Ee.COLOR?"clear":"load"),r??(r=o.defaultClearColor);let v=h.storeOp??"store",w={view:g,resolveTarget:x,storeOp:b?"discard":v,loadOp:y};y==="clear"&&(r??(r=h.clearValue??o.defaultClearColor),w.clearValue=r);for(let S in h)S!=="texture"&&S!=="viewDescriptor"&&S!=="clearValue"&&S!=="loadOp"&&S!=="storeOp"&&(w[S]=h[S]);return w}),l;if(e.depthStencilAttachment){a.msaa&&(e.depthStencilAttachment.texture.sampleCount=4),e.depthStencilAttachment.texture.transient=!!a.msaaTextures[0]?.transient;let h=e.depthStencilAttachment,u=h.texture.format.includes("stencil"),f=h.texture.format.includes("depth"),m=h.texture.transient?"discard":"store";l={view:this._renderer.texture.getTextureRenderTargetView(h.texture,s,n,h.viewDescriptor)};let g=h.depthReadOnly??!1,x=h.stencilReadOnly??g;u&&!x?(l.stencilLoadOp=t&Ee.STENCIL?"clear":h.stencilLoadOp??"load",l.stencilStoreOp=h.stencilStoreOp??m,l.stencilLoadOp==="clear"&&(l.stencilClearValue=h.stencilClearValue??0)):u&&x&&(l.stencilReadOnly=!0),f&&!g?(l.depthLoadOp=t&Ee.DEPTH?"clear":h.depthLoadOp??"load",l.depthStoreOp=h.depthStoreOp??m,l.depthLoadOp==="clear"&&(l.depthClearValue=h.depthClearValue??1)):f&&g&&(l.depthReadOnly=!0);for(let b in h)b!=="texture"&&b!=="viewDescriptor"&&b!=="stencilLoadOp"&&b!=="stencilStoreOp"&&b!=="stencilClearValue"&&b!=="stencilReadOnly"&&b!=="depthLoadOp"&&b!=="depthStoreOp"&&b!=="depthClearValue"&&b!=="depthReadOnly"&&(l[b]=h[b])}return{colorAttachments:c,depthStencilAttachment:l,label:e.label}}clear(e,t=!0,r,s,n=0,o=0){if(!t)return;let{gpu:a,encoder:c}=this._renderer,l=a.device;if(c.commandEncoder===null){let h=l.createCommandEncoder(),u=this.getDescriptor(e,t,r,n,o),f=h.beginRenderPass(u);f.setViewport(s.x,s.y,s.width,s.height,0,1),f.end();let m=h.finish();l.queue.submit([m])}else this.startRenderPass(e,t,r,s,n,o)}initGpuRenderTarget(e){e.isRoot=!0;let t=new Ka;return e.colorAttachments.forEach((r,s)=>{let n=r.texture;if(n instanceof Se){if(!n._gpuContext){let o=n.resource.getContext("webgpu"),a=n.transparent?"premultiplied":"opaque",c=J3(n.format);try{o.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:c,alphaMode:a,...c==="rgba16float"?{toneMapping:{mode:"extended"}}:{}})}catch(l){console.error(l)}n._gpuContext=o}t.contexts[s]=n._gpuContext}if(t.msaa=n.source.antialias,n.antialias){let o=new oe({width:0,height:0,sampleCount:4,transient:n.transient,arrayLayerCount:n.arrayLayerCount,format:n.format});t.msaaTextures[s]=o}}),t.msaa&&(t.msaaSamples=4,e.depthStencilAttachment&&(e.depthStencilAttachment.texture.sampleCount=4,e.depthStencilAttachment.texture.transient=!!t.msaaTextures[0]?.transient)),t}destroyGpuRenderTarget(e){e.contexts.forEach(t=>{t.unconfigure()}),e.msaaTextures.forEach(t=>{t.destroy()}),e.msaaTextures.length=0,e.contexts.length=0}ensureDepthStencilTexture(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);e.depthStencilAttachment&&t.msaa&&(e.depthStencilAttachment.texture.sampleCount=4)}resizeGpuRenderTarget(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorAttachments.forEach((r,s)=>{let n=r.texture;t.msaaTextures[s]?.resize(n.width,n.height,n._resolution)})}}});var An,nb=p(()=>{P();qa();sb();An=class extends Sr{constructor(e){super(e),this.adaptor=new Za,this.adaptor.init(e,this)}};An.extension={type:[_.WebGPUSystem],name:"renderTarget"}});var Rn,ob=p(()=>{P();Rn=class{constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){let t=this._gpu.device,r=e.gpuLayout.map(n=>t.createBindGroupLayout({entries:n})),s={bindGroupLayouts:r};return this._gpuProgramData[e._layoutKey]={bindGroups:r,pipeline:t.createPipelineLayout(s)},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}};Rn.extension={type:[_.WebGPUSystem],name:"shader"}});var rt,ab=p(()=>{"use strict";rt={};rt.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}};rt.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}};rt.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}};rt.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};rt.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}};rt.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}};rt["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}};rt["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}};rt["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}};rt.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}};rt.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}};rt.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}}});var kn,cb=p(()=>{P();It();ab();kn=class{constructor(){this.defaultState=new De,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e,t,r){let s=e.blend?rt[e.blendMode]||rt.normal:void 0,n=[];for(let o=0;o<t;o++)n[o]={format:r,writeMask:0,blend:s};return n}destroy(){this.gpu=null}};kn.extension={type:[_.WebGPUSystem],name:"state"}});var lb,db=p(()=>{"use strict";lb={type:"image",upload(i,e,t,r=0){let s=i.resource,n=(i.pixelWidth|0)*(i.pixelHeight|0),o=s.byteLength/n;t.device.queue.writeTexture({texture:e,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 Th,e5,hb,ub=p(()=>{"use strict";Th={"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}},e5={blockBytes:4,blockWidth:1,blockHeight:1},hb={type:"compressed",upload(i,e,t,r=0){let s=i.pixelWidth,n=i.pixelHeight,o=Th[i.format]||e5;for(let a=0;a<i.resource.length;a++){let c=i.resource[a],l=Math.ceil(s/o.blockWidth)*o.blockBytes;t.device.queue.writeTexture({texture:e,mipLevel:a,origin:{x:0,y:0,z:r}},c,{offset:0,bytesPerRow:l},{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 pb(i){return{type:"cube",upload(e,t,r){let s=e.faces;for(let n=0;n<fb.length;n++){let o=fb[n],a=s[o];(i[a.uploadMethodId]||i.image).upload(a,t,r,n)}}}}var fb,mb=p(()=>{"use strict";fb=["right","left","top","bottom","front","back"]});var Qa,Eh=p(()=>{be();he();Qa={type:"image",upload(i,e,t,r=0){let s=i.resource;if(!s)return;if(globalThis.HTMLImageElement&&s instanceof HTMLImageElement){let c=z.get().createCanvas(s.width,s.height);c.getContext("2d").drawImage(s,0,0,s.width,s.height),i.resource=c,O("ImageSource: Image element passed, converting to canvas and replacing resource.")}let n=Math.min(e.width,i.resourceWidth||i.pixelWidth),o=Math.min(e.height,i.resourceHeight||i.pixelHeight),a=i.alphaMode==="premultiply-alpha-on-upload";t.device.queue.copyExternalImageToTexture({source:s},{texture:e,origin:{x:0,y:0,z:r},premultipliedAlpha:a},{width:n,height:o})}}});var gb,bb=p(()=>{Eh();gb={type:"video",upload(i,e,t,r){Qa.upload(i,e,t,r)}}});var Ja,xb=p(()=>{"use strict";Ja=class{constructor(e){this.device=e,this.sampler=e.createSampler({minFilter:"linear"}),this.pipelines={}}_getMipmapPipeline(e){let t=this.pipelines[e];return t||(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
|
+
`})),t=this.device.createRenderPipeline({layout:"auto",vertex:{module:this.mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this.mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this.pipelines[e]=t),t}generateMipmap(e){let t=this._getMipmapPipeline(e.format);if(e.dimension==="3d"||e.dimension==="1d")throw new Error("Generating mipmaps for non-2d textures is currently unsupported!");let r=e,s=e.depthOrArrayLayers||1,n=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!n){let c={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};r=this.device.createTexture(c)}let o=this.device.createCommandEncoder({}),a=t.getBindGroupLayout(0);for(let c=0;c<s;++c){let l=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),d=n?1:0;for(let h=1;h<e.mipLevelCount;++h){let u=r.createView({baseMipLevel:d++,mipLevelCount:1,dimension:"2d",baseArrayLayer:c,arrayLayerCount:1}),f=o.beginRenderPass({colorAttachments:[{view:u,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:l}]});f.setPipeline(t),f.setBindGroup(0,m),f.draw(3,1,0,0),f.end(),l=u}}if(!n){let c={width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:s};for(let l=1;l<e.mipLevelCount;++l)o.copyTextureToTexture({texture:r,mipLevel:l-1},{texture:e,mipLevel:l},c),c.width=Math.ceil(c.width/2),c.height=Math.ceil(c.height/2)}return this.device.queue.submit([o.finish()]),n||r.destroy(),e}}});function _b(i){return`${i.format||""}.${i.dimension||""}.${i.aspect||""}.${i.baseMipLevel||0}.${i.mipLevelCount||""}.${i.baseArrayLayer||0}.${i.arrayLayerCount||""}`}var Ch,Ph,Mh,vb=p(()=>{be();P();Gt();mt();ta();gr();db();ub();mb();Eh();bb();xb();Ch=class{constructor(e){this.textureView=null,this.textureViews=Object.create(null),this.gpuTexture=e}destroy(){this.gpuTexture.destroy(),this.textureView=null,this.textureViews=null,this.gpuTexture=null}};Ph=class yb{constructor(e){this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._renderer=e,e.gc.addCollection(this,"_bindGroupHash","hash"),this._managedTextures=new Re({renderer:e,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"gpuTextureSource"});let t={image:Qa,buffer:lb,video:gb,compressed:hb,...yb.uploadExtensions};this._uploads={...t,cube:pb(t)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(e){this._gpu=e}initSource(e){return e._gpuData[this._renderer.uid]?.gpuTexture||this._initSource(e)}_initSource(e){if(e.autoGenerateMipmaps){let l=Math.max(e.pixelWidth,e.pixelHeight);e.mipLevelCount=Math.floor(Math.log2(l))+1}let t;e.sampleCount>1?(t=GPUTextureUsage.RENDER_ATTACHMENT,e.transient&&this._renderer.device.extensions.transientAttachment&&(t|=GPUTextureUsage.TRANSIENT_ATTACHMENT)):(t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,e.uploadMethodId!=="compressed"&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC));let r=Th[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},s=Math.ceil(e.pixelWidth/r.blockWidth)*r.blockWidth,n=Math.ceil(e.pixelHeight/r.blockHeight)*r.blockHeight,o={label:e.label,size:{width:s,height:n,depthOrArrayLayers:e.arrayLayerCount},format:e.format,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},a=this._gpu.device.createTexture(o);return e._gpuData[this._renderer.uid]=new Ch(a),this._managedTextures.add(e)&&(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(e),a}onSourceUpdate(e){let t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onUpdateMipmaps(e){this._mipmapGenerator||(this._mipmapGenerator=new Ja(this._gpu.device));let t=this.getGpuSource(e);this._mipmapGenerator.generateMipmap(t)}onSourceUnload(e){e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceResize(e){e._gcLastUsed=this._renderer.gc.now;let t=e._gpuData[this._renderer.uid],r=t?.gpuTexture;r?(r.width!==e.pixelWidth||r.height!==e.pixelHeight)&&(t.destroy(),this._bindGroupHash[e.uid]=null,e._gpuData[this._renderer.uid]=null,this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]?.gpuTexture||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]||this._createTextureBindGroup(e)}_createTextureBindGroup(e){let t=e.source;return this._bindGroupHash[e.uid]=new ze({0:t,1:t.style,2:new Te({uTextureMatrix:{type:"mat3x3<f32>",value:e.textureMatrix.mapCoord}})}),this._bindGroupHash[e.uid]}getTextureView(e,t){var r;let s=e.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=t?_b(t):0;return(r=n.textureViews)[o]||(r[o]=n.gpuTexture.createView({dimension:s.viewDimension,...t})),n.textureViews[o]}getTextureRenderTargetView(e,t=0,r=0,s){var n;let o=e.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 c=r*(o.mipLevelCount||1)+t+1;return s&&(c=`${c}.${_b(s)}`),(n=a.textureViews)[c]||(n[c]=a.gpuTexture.createView({dimension:"2d",baseMipLevel:t,mipLevelCount:1,baseArrayLayer:r,arrayLayerCount:1,...s})),a.textureViews[c]}generateCanvas(e){let t=this._renderer,r=t.gpu.device.createCommandEncoder(),s=z.get().createCanvas();s.width=e.source.pixelWidth,s.height=e.source.pixelHeight;let n=s.getContext("webgpu");return n.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:z.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:n.getCurrentTexture()},{width:s.width,height:s.height}),t.gpu.device.queue.submit([r.finish()]),s}getPixels(e){let t=this.generateCanvas(e),r=ir.getOptimalCanvasAndContext(t.width,t.height),s=r.context;s.drawImage(t,0,0);let{width:n,height:o}=t,a=s.getImageData(0,0,n,o),c=new Uint8ClampedArray(a.data.buffer);return ir.returnCanvasAndContext(r),{pixels:c,width:n,height:o}}destroy(){this._managedTextures.destroy();for(let e of Object.keys(this._bindGroupHash)){let t=Number(e);this._bindGroupHash[t]?.destroy()}this._renderer=null,this._gpu=null,this._mipmapGenerator=null,this._gpuSamplers=null,this._bindGroupHash=null}};Ph.extension={type:[_.WebGPUSystem],name:"texture"};Ph.uploadExtensions=Object.create(null);Mh=Ph;H.handleByMap(_.TextureUploaderWebGPU,Mh.uploadExtensions)});var Eb={};Qc(Eb,{WebGPURenderer:()=>Ah});var t5,r5,i5,wb,Sb,Tb,Ah,Cb=p(()=>{P();_1();w1();S1();jr();Va();zt();kg();Bg();Ig();Gg();Fg();Ug();Dg();vh();jg();Qg();nb();ob();cb();vb();t5=[...Zi,Jr,vn,Qi,wn,_n,Mh,An,Rn,kn,Mn,yn,Sn,xn],r5=[...Wa,Cn],i5=[Zs,Ks,qs],wb=[],Sb=[],Tb=[];H.handleByNamedList(_.WebGPUSystem,wb);H.handleByNamedList(_.WebGPUPipes,Sb);H.handleByNamedList(_.WebGPUPipesAdaptor,Tb);H.add(...t5,...r5,...i5);Ah=class extends St{constructor(){let e={name:"webgpu",type:Ue.WEBGPU,systems:wb,renderPipes:Sb,renderPipeAdaptors:Tb};super(e)}}});var Bn,Pb=p(()=>{P();ce();Hi();Ca();Aa();$s();Vi();eh();br();mt();Bn=class{contextChange(e){let t=new Te({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new k,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),r=e.limits.maxBatchableTextures,s=Ni({name:"graphics",bits:[Ea,Ma(r),Ra,Wi]});this.shader=new Ke({glProgram:s,resources:{localUniforms:t,batchSamplers:Da(r)}})}execute(e,t){let r=t.context,s=r.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(r);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(e.state),n.shader.bind(s),n.geometry.bind(a.geometry,s.glProgram);let l=c.instructions;for(let d=0;d<c.instructionSize;d++){let h=l[d];if(h.size){for(let u=0;u<h.textures.count;u++)n.texture.bind(h.textures.textures[u],u);n.geometry.draw(h.topology,h.size,h.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};Bn.extension={type:[_.WebGLPipesAdaptor],name:"graphics"}});var In,Mb=p(()=>{P();ce();Hi();$s();Vi();Nd();br();ge();he();In=class{init(){let e=Ni({name:"mesh",bits:[Ra,v1,Wi]});this._shader=new Ke({glProgram:e,resources:{uTexture:U.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new k}}}})}execute(e,t){let r=e.renderer,s=t._shader;if(s){if(!s.glProgram){O("Mesh shader has no glProgram",t.shader);return}}else{s=this._shader;let n=t.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]=e.localUniformsBindGroup,r.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}};In.extension={type:[_.WebGLPipesAdaptor],name:"mesh"}});var Gn,Ab=p(()=>{P();It();Gn=class{constructor(){this._tempState=De.for2d(),this._didUploadHash={}}init(e){e.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(e,t,r){let s=e.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(t,r.glProgram)}execute(e,t){let r=e.renderer;this._tempState.blendMode=t.blendMode,r.state.set(this._tempState);let s=t.textures.textures;for(let n=0;n<t.textures.count;n++)r.texture.bind(s[n],n);r.geometry.draw(t.topology,t.size,t.start)}};Gn.extension={type:[_.WebGLPipesAdaptor],name:"batch"}});var Fn,Rb=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 ec,kb=p(()=>{"use strict";ec=class{constructor(e,t){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}destroy(){this.buffer=null,this.updateID=-1,this.byteLength=-1,this.type=-1,this._lastBindBaseLocation=-1,this._lastBindCallId=-1}}});var Un,Bb=p(()=>{P();Gt();sr();Rb();kb();Un=class{constructor(e){this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=e,this._managedBuffers=new Re({renderer:e,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(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]||this.createGLBuffer(e)}bind(e){let{_gl:t}=this,r=this.getGlBuffer(e);t.bindBuffer(r.type,r.buffer)}bindBufferBase(e,t){let{_gl:r}=this;this._boundBufferBases[t]!==e&&(this._boundBufferBases[t]=e,e._lastBindBaseLocation=t,r.bindBufferBase(r.UNIFORM_BUFFER,t,e.buffer))}nextBindBase(e){this._bindCallId++,this._minBaseLocation=0,e&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(e){let t=this.getLastBindBaseLocation(e);if(t>=this._minBaseLocation)return e._lastBindCallId=this._bindCallId,t;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 t=s,this._nextBindBaseIndex=s+1,r>=2?-1:(e._lastBindCallId=this._bindCallId,this._boundBufferBases[t]=null,t)}getLastBindBaseLocation(e){let t=e._lastBindBaseLocation;return this._boundBufferBases[t]===e?t:-1}bindBufferRange(e,t,r,s){let{_gl:n}=this;r||(r=0),t||(t=0),this._boundBufferBases[t]=null,n.bindBufferRange(n.UNIFORM_BUFFER,t||0,e.buffer,r*256,s||256)}updateBuffer(e){let{_gl:t}=this,r=this.getGlBuffer(e);if(e._updateID===r.updateID)return r;r.updateID=e._updateID,t.bindBuffer(r.type,r.buffer);let s=e.data,n=e.descriptor.usage&J.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;return s?r.byteLength>=s.byteLength?t.bufferSubData(r.type,e._updateOffset,s,e._updateOffset/s.BYTES_PER_ELEMENT,(e._updateSize||s.byteLength)/s.BYTES_PER_ELEMENT):(r.byteLength=s.byteLength,t.bufferData(r.type,s,n)):(r.byteLength=e.descriptor.size,t.bufferData(r.type,r.byteLength,n)),r}destroyAll(e=!1){this._managedBuffers.removeAll(e)}onBufferUnload(e,t=!1){let r=e._gpuData[this._renderer.uid];r&&(t||this._gl.deleteBuffer(r.buffer))}createGLBuffer(e){let{_gl:t}=this,r=Fn.ARRAY_BUFFER;e.descriptor.usage&J.INDEX?r=Fn.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&J.UNIFORM&&(r=Fn.UNIFORM_BUFFER);let s=new ec(t.createBuffer(),r);return e._gpuData[this._renderer.uid]=s,this._managedBuffers.add(e),s}resetState(){this._boundBufferBases=Object.create(null)}};Un.extension={type:[_.WebGLSystem],name:"buffer"}});var Rh,Gb,Fb=p(()=>{be();P();he();Rh=class Ib{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,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(e){this.gl=e,this._renderer.gl=e}init(e){e={...Ib.defaultOptions,...e};let t=this.multiView=e.multiView;if(e.context&&t&&(O("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),t=!1),t?this.canvas=z.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,e.context)this.initFromContext(e.context);else{let r=this._renderer.background.alpha<1,s=e.premultipliedAlpha??!0,n=e.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(e.preferWebGLVersion,{alpha:r,premultipliedAlpha:s,antialias:n,stencil:!0,preserveDrawingBuffer:e.preserveDrawingBuffer,powerPreference:e.powerPreference??"default"})}}ensureCanvasSize(e){if(!this.multiView){e!==this.canvas&&O("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:t}=this;(t.width<e.width||t.height<e.height)&&(t.width=Math.max(e.width,e.width),t.height=Math.max(e.height,e.height))}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof z.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);let t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let r,s=this.canvas;if(e===2&&(r=s.getContext("webgl2",t)),!r&&(r=s.getContext("webgl",t),!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:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};if(this.webGLVersion===1)this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")};else{this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};let r=e.getExtension("WEBGL_provoking_vertex");r&&r.provokingVertexWEBGL(r.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(e){e.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 e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){let t=e.getContextAttributes();t&&!t.stencil&&O("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||O("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};Rh.extension={type:[_.WebGLSystem],name:"context"};Rh.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};Gb=Rh});var tc,Dn,le,rc=p(()=>{"use strict";tc=(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))(tc||{}),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||{}),le=(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))(le||{})});function Db(i){return Ub[i]??Ub.float32}var Ub,Lb=p(()=>{rc();Ub={uint8x2:le.UNSIGNED_BYTE,uint8x4:le.UNSIGNED_BYTE,sint8x2:le.BYTE,sint8x4:le.BYTE,unorm8x2:le.UNSIGNED_BYTE,unorm8x4:le.UNSIGNED_BYTE,snorm8x2:le.BYTE,snorm8x4:le.BYTE,uint16x2:le.UNSIGNED_SHORT,uint16x4:le.UNSIGNED_SHORT,sint16x2:le.SHORT,sint16x4:le.SHORT,unorm16x2:le.UNSIGNED_SHORT,unorm16x4:le.UNSIGNED_SHORT,snorm16x2:le.SHORT,snorm16x4:le.SHORT,float16x2:le.HALF_FLOAT,float16x4:le.HALF_FLOAT,float32:le.FLOAT,float32x2:le.FLOAT,float32x3:le.FLOAT,float32x4:le.FLOAT,uint32:le.UNSIGNED_INT,uint32x2:le.UNSIGNED_INT,uint32x3:le.UNSIGNED_INT,uint32x4:le.UNSIGNED_INT,sint32:le.INT,sint32x2:le.INT,sint32x3:le.INT,sint32x4:le.INT}});var s5,kh,Ln,Ob=p(()=>{P();Gt();mr();wh();Lb();s5={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},kh=class{constructor(){this.vaoCache=Object.create(null)}destroy(){this.vaoCache=Object.create(null)}},Ln=class{constructor(e){this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._managedGeometries=new Re({renderer:e,type:"resource",onUnload:this.onGeometryUnload.bind(this),name:"glGeometry"})}contextChange(){let e=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 t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=s=>t.bindVertexArrayOES(s),e.deleteVertexArray=s=>t.deleteVertexArrayOES(s));let r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(e.drawArraysInstanced=(s,n,o,a)=>{r.drawArraysInstancedANGLE(s,n,o,a)},e.drawElementsInstanced=(s,n,o,a,c)=>{r.drawElementsInstancedANGLE(s,n,o,a,c)},e.vertexAttribDivisor=(s,n)=>r.vertexAttribDivisorANGLE(s,n)),this._activeGeometry=null,this._activeVao=null}bind(e,t){let r=this.gl;this._activeGeometry=e;let s=this.getVao(e,t);this._activeVao!==s&&(this._activeVao=s,r.bindVertexArray(s)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this._renderer.buffer;for(let r=0;r<e.buffers.length;r++){let s=e.buffers[r];t.updateBuffer(s)}e._gcLastUsed=this._renderer.gc.now}checkCompatibility(e,t){let r=e.attributes,s=t._attributeData;for(let n in s)if(!r[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(e,t){let r=e.attributes,s=t._attributeData,n=["g",e.uid];for(let o in r)s[o]&&n.push(o,s[o].location);return n.join("-")}getVao(e,t){return e._gpuData[this._renderer.uid]?.vaoCache[t._key]||this.initGeometryVao(e,t)}initGeometryVao(e,t,r=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(t),this.checkCompatibility(e,t);let o=this.getSignature(e,t),a=e._gpuData[this._renderer.uid];a||(a=new kh,e._gpuData[this._renderer.uid]=a,this._managedGeometries.add(e));let c=a.vaoCache,l=c[o];if(l)return c[t._key]=l,l;Pn(e,t._attributeData);let d=e.buffers;l=s.createVertexArray(),s.bindVertexArray(l);for(let h=0;h<d.length;h++){let u=d[h];n.bind(u)}return this.activateVao(e,t),c[t._key]=l,c[o]=l,s.bindVertexArray(null),l}onGeometryUnload(e,t=!1){let r=e._gpuData[this._renderer.uid];if(!r)return;let s=r.vaoCache;if(!t)for(let n in s)this._activeVao!==s[n]&&this.resetState(),this.gl.deleteVertexArray(s[n])}destroyAll(e=!1){this._managedGeometries.removeAll(e)}activateVao(e,t){let r=this._renderer.gl,s=this._renderer.buffer,n=e.attributes;e.indexBuffer&&s.bind(e.indexBuffer);let o=null;for(let a in n){let c=n[a],l=c.buffer,d=s.getGlBuffer(l),h=t._attributeData[a];if(h){o!==d&&(s.bind(l),o=d);let u=h.location;r.enableVertexAttribArray(u);let f=qe(c.format),m=Db(c.format);if(h.format?.substring(1,4)==="int"?r.vertexAttribIPointer(u,f.size,m,c.stride,c.offset):r.vertexAttribPointer(u,f.size,m,f.normalised,c.stride,c.offset),c.instance)if(this.hasInstance){let g=c.divisor??1;r.vertexAttribDivisor(u,g)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,r,s){let{gl:n}=this._renderer,o=this._activeGeometry,a=s5[e||o.topology];if(s??(s=o.instanceCount),o.indexBuffer){let c=o.indexBuffer.data.BYTES_PER_ELEMENT,l=c===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s!==1?n.drawElementsInstanced(a,t||o.indexBuffer.data.length,l,(r||0)*c,s):n.drawElements(a,t||o.indexBuffer.data.length,l,(r||0)*c)}else s!==1?n.drawArraysInstanced(a,r||0,t||o.vertexCount,s):n.drawArrays(a,r||0,t||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:[_.WebGLSystem],name:"geometry"}});var n5,Bh,Hb,zb=p(()=>{P();he();zr();br();It();je();ge();Hr();n5=new ct({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),Bh=class Nb{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(e={}){let{useBackBuffer:t,antialias:r}={...Nb.defaultOptions,...e};this.useBackBuffer=t,this._antialias=r,this._renderer.context.supports.msaa||(O("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=De.for2d();let s=new yt({vertex:`
|
|
752
752
|
attribute vec2 aPosition;
|
|
753
753
|
out vec2 vUv;
|
|
754
754
|
|
|
@@ -767,15 +767,15 @@ fn mainFragment(
|
|
|
767
767
|
|
|
768
768
|
void main() {
|
|
769
769
|
finalColor = texture(uTexture, vUv);
|
|
770
|
-
}`,name:"big-triangle"});this._bigTriangleShader=new
|
|
770
|
+
}`,name:"big-triangle"});this._bigTriangleShader=new Ke({glProgram:s,resources:{uTexture:U.WHITE.source}})}renderStart(e){let t=this._renderer.renderTarget.getRenderTarget(e.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!t.isRoot,this._useBackBufferThisRender){let r=this._renderer.renderTarget.getRenderTarget(e.target);this._targetTexture=r.colorTexture,e.target=this._getBackBufferTexture(r.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let e=this._renderer;e.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(e.renderTarget.bind({target:this._targetTexture,clear:!1}),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,e.encoder.draw({geometry:n5,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new U({source:new oe({width:e.width,height:e.height,resolution:e._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(e.width,e.height,e._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};Bh.extension={type:[_.WebGLSystem],name:"backBuffer",priority:1};Bh.defaultOptions={useBackBuffer:!1};Hb=Bh});var On,Wb=p(()=>{P();On=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.gl.colorMask(!!(e&8),!!(e&4),!!(e&2),!!(e&1)))}};On.extension={type:[_.WebGLSystem],name:"colorMask"}});var Nn,Vb=p(()=>{P();Nn=class{constructor(e){this.commandFinished=Promise.resolve(),this._renderer=e}setGeometry(e,t){this._renderer.geometry.bind(e,t.glProgram)}finishRenderPass(){}draw(e){let t=this._renderer,{geometry:r,shader:s,state:n,skipSync:o,topology:a,size:c,start:l,instanceCount:d}=e;t.shader.bind(s,o),t.geometry.bind(r,t.shader._activeProgram),n&&t.state.set(n),t.geometry.draw(a,c,l,d??r.instanceCount)}destroy(){this._renderer=null}};Nn.extension={type:[_.WebGLSystem],name:"encoder"}});var Hn,jb=p(()=>{P();Qd();Hn=class{constructor(e){this._renderer=e}contextChange(){let e=this._renderer.gl;this.maxTextures=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=Ia(this.maxTextures,e);let t=this._renderer.context.webGLVersion===2;this.maxUniformBindings=t?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0}destroy(){}};Hn.extension={type:[_.WebGLSystem],name:"limits"}});var zn,Xb=p(()=>{P();Sh();qr();zn=class{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:ve.NONE},this._renderTargetStencilState=Object.create(null),e.renderTarget.onRenderTargetChange.add(this)}contextChange(e){this._gl=e,this._comparisonFuncMapping={always:e.ALWAYS,never:e.NEVER,equal:e.EQUAL,"not-equal":e.NOTEQUAL,less:e.LESS,"less-equal":e.LEQUAL,greater:e.GREATER,"greater-equal":e.GEQUAL},this._stencilOpsMapping={keep:e.KEEP,zero:e.ZERO,replace:e.REPLACE,invert:e.INVERT,"increment-clamp":e.INCR,"decrement-clamp":e.DECR,"increment-wrap":e.INCR_WRAP,"decrement-wrap":e.DECR_WRAP},this.resetState()}onRenderTargetChange(e){if(this._activeRenderTarget===e)return;this._activeRenderTarget=e;let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:ve.DISABLED,stencilReference:0}),this.setStencilMode(t.stencilMode,t.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=ve.NONE,this._stencilCache.stencilReference=0}setStencilMode(e,t){let r=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=jt[e],o=this._stencilCache;if(r.stencilMode=e,r.stencilReference=t,e===ve.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)),(e!==o.stencilMode||o.stencilReference!==t)&&(o.stencilMode=e,o.stencilReference=t,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],t,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};zn.extension={type:[_.WebGLSystem],name:"stencil"}});function Yb(i){let e=i.map(n=>({data:n,offset:0,size:0})),t=16,r=0,s=0;for(let n=0;n<e.length;n++){let o=e[n];if(r=Wn[o.data.type],!r)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(r=Math.max(r,t)*o.data.size);let a=r===12?16:r;o.size=r;let c=s%t;c>0&&t-c<a?s+=(t-c)%16:s+=(r-c%r)%r,o.offset=s,s+=r}return s=Math.ceil(s/16)*16,{uboElements:e,size:s}}var Wn,ic=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 $b(i,e){let t=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
|
-
offset += ${
|
|
772
|
+
offset += ${e};
|
|
773
773
|
|
|
774
774
|
arrayOffset = offset;
|
|
775
775
|
|
|
776
776
|
t = 0;
|
|
777
777
|
|
|
778
|
-
for(var i=0; i < ${i.data.size*
|
|
778
|
+
for(var i=0; i < ${i.data.size*t}; i++)
|
|
779
779
|
{
|
|
780
780
|
for(var j = 0; j < ${r}; j++)
|
|
781
781
|
{
|
|
@@ -783,37 +783,37 @@ 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 qb=p(()=>{ic()});function Kb(i){return Ya(i,_h,$b)}var Zb=p(()=>{xh();yh();qb()});var ei,Ih=p(()=>{P();ja();ic();Zb();ei=class extends vr{constructor(){super({createUboElements:Yb,generateUboSync:Kb})}};ei.extension={type:[_.WebGLSystem],name:"ubo"}});var sc,Qb=p(()=>{"use strict";sc=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this._attachedMipLevel=0,this._attachedLayer=0,this.msaaRenderBuffer=[]}}});var nc,Jb=p(()=>{Ve();he();pr();Ui();Qb();nc=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Q,this._boundFramebuffer=void 0}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new Q,this._boundFramebuffer=void 0;let e=this._renderer.gl;this._drawBuffersCache=[];for(let t=1;t<=16;t++)this._drawBuffersCache[t]=Array.from({length:t},(r,s)=>e.COLOR_ATTACHMENT0+s)}copyToTexture(e,t,r,s,n){let o=this._renderTargetSystem,a=this._renderer,c=o.getGpuRenderTarget(e),l=a.gl;return this.finishRenderPass(e),l.bindFramebuffer(l.FRAMEBUFFER,c.resolveTargetFramebuffer),this._boundFramebuffer=c.resolveTargetFramebuffer,a.texture.bind(t,0),l.copyTexSubImage2D(l.TEXTURE_2D,0,n.x,n.y,r.x,r.y,s.width,s.height),t}copyDepthTexture(e,t,r,s,n){let o=this._renderTargetSystem,a=this._renderer.gl;this.finishRenderPass(e);let c=o.getRenderTarget(t),l=o.getGpuRenderTarget(e),d=o.getGpuRenderTarget(c);a.bindFramebuffer(a.READ_FRAMEBUFFER,l.framebuffer),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,d.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(e,t=!0,r,s,n=0,o=0){let c=this._renderTargetSystem.getGpuRenderTarget(e);if(o!==0&&this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to array layers requires WebGL2.");if(n>0){if(c.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.")}e.colorAttachments.forEach(u=>{this._renderer.texture.unbind(u.texture)});let l=this._renderer.gl;this.bindFramebuffer(c.framebuffer),!e.isRoot&&e.colorAttachments.length>0&&(c._attachedMipLevel!==n||c._attachedLayer!==o)&&(e.colorAttachments.forEach((u,f)=>{let m=u.texture,g=this._renderer.texture.getGlSource(m);if(g.target===l.TEXTURE_2D){if(o!==0)throw new Error("[RenderTargetSystem] layer must be 0 when rendering to 2D textures in WebGL.");l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0+f,l.TEXTURE_2D,g.texture,n)}else if(g.target===l.TEXTURE_2D_ARRAY){if(this._renderer.context.webGLVersion<2)throw new Error("[RenderTargetSystem] Rendering to 2D array textures requires WebGL2.");l.framebufferTextureLayer(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0+f,g.texture,n,o)}else if(g.target===l.TEXTURE_CUBE_MAP){if(o<0||o>5)throw new Error("[RenderTargetSystem] Cube map layer must be between 0 and 5.");l.framebufferTexture2D(l.FRAMEBUFFER,l.COLOR_ATTACHMENT0+f,l.TEXTURE_CUBE_MAP_POSITIVE_X+o,g.texture,n)}else throw new Error("[RenderTargetSystem] Unsupported texture target for render-to-layer in WebGL.")}),c._attachedMipLevel=n,c._attachedLayer=o),c.framebuffer&&(e.depthStencilAttachment?this._attachDepthStencilTexture(e,n,o):!c.depthStencilRenderBuffer&&(e.stencil||e.depth)&&this._initStencil(c)),e.colorAttachments.length>1&&this._setDrawBuffers(e,l);let d=s.y;e.isRoot&&(d=e.pixelHeight-s.height-s.y);let h=this._viewPortCache;(h.x!==s.x||h.y!==d||h.width!==s.width||h.height!==s.height)&&(h.x=s.x,h.y=d,h.width=s.width,h.height=s.height,l.viewport(s.x,d,s.width,s.height)),this.clear(e,t,r)}finishRenderPass(e){let r=this._renderTargetSystem.getGpuRenderTarget(e);if(!r.msaa||e.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(e){let r=this._renderer.gl,s=new sc;s._attachedMipLevel=0,s._attachedLayer=0;let n=e.colorTexture;return n instanceof Se?(this._renderer.context.ensureCanvasSize(n.resource),s.framebuffer=null,s):(s.width=e.pixelWidth,s.height=e.pixelHeight,e.colorAttachments.length===0?this._initDepth(e,s):this._initColor(e,s),e.depthStencilAttachment&&this._attachDepthStencilTexture(e,0,0),r.bindFramebuffer(r.FRAMEBUFFER,null),this._boundFramebuffer=null,s)}destroyGpuRenderTarget(e){let t=this._renderer.gl;e.framebuffer&&(t.deleteFramebuffer(e.framebuffer),e.framebuffer=null),e.resolveTargetFramebuffer&&(t.deleteFramebuffer(e.resolveTargetFramebuffer),e.resolveTargetFramebuffer=null),e.depthStencilRenderBuffer&&(t.deleteRenderbuffer(e.depthStencilRenderBuffer),e.depthStencilRenderBuffer=null),e.msaaRenderBuffer.forEach(r=>{t.deleteRenderbuffer(r)}),e.msaaRenderBuffer=null}clear(e,t,r,s,n=0,o=0){if(!t)return;if(o!==0)throw new Error("[RenderTargetSystem] Clearing array layers is not supported in WebGL renderer.");let a=this._renderTargetSystem;if(typeof t=="boolean"&&(t=t?Ee.ALL:Ee.NONE),e.colorAttachments.length===0&&(t&=~Ee.COLOR,!t))return;let c=this._renderer.gl,l=!!(t&Ee.DEPTH)&&!this._renderer.state.depthMaskEnabled;if(t&Ee.COLOR){r??(r=a.defaultClearColor);let d=this._clearColorCache,h=r;(d[0]!==h[0]||d[1]!==h[1]||d[2]!==h[2]||d[3]!==h[3])&&(d[0]=h[0],d[1]=h[1],d[2]=h[2],d[3]=h[3],c.clearColor(h[0],h[1],h[2],h[3]))}l&&c.depthMask(!0),c.clear(t),l&&c.depthMask(!1)}resizeGpuRenderTarget(e){if(e.isRoot)return;let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.pixelWidth,t.height=e.pixelHeight,e.colorAttachments.length>0&&this._resizeColor(e,t),t.depthStencilRenderBuffer&&this._resizeStencil(t),this._boundFramebuffer=void 0}_initColor(e,t){let r=this._renderer,s=r.gl,n=s.createFramebuffer();if(t.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),e.colorAttachments.forEach((a,c)=>{let l=a.texture;l.antialias&&(r.context.supports.msaa?t.msaa=!0:O("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(l,0);let d=r.texture.getGlSource(l),h=d.texture;if(d.target===s.TEXTURE_2D)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+c,s.TEXTURE_2D,h,0);else if(d.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+c,h,0,0)}else if(d.target===s.TEXTURE_CUBE_MAP)s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+c,s.TEXTURE_CUBE_MAP_POSITIVE_X,h,0);else throw new Error("[RenderTargetSystem] Unsupported texture target for framebuffer attachment.")}),t.msaa){let a=s.createFramebuffer();t.framebuffer=a,s.bindFramebuffer(s.FRAMEBUFFER,a),e.colorAttachments.forEach((c,l)=>{let d=s.createRenderbuffer();t.msaaRenderBuffer[l]=d})}else t.framebuffer=n;this._resizeColor(e,t)}_initDepth(e,t){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();t.resolveTargetFramebuffer=n,t.framebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),s.drawBuffers([s.NONE]),s.readBuffer(s.NONE)}_resizeColor(e,t){let r=e.colorAttachments[0].texture;if(t._attachedMipLevel=0,t._attachedLayer=0,e.colorAttachments.forEach((s,n)=>{n!==0&&s.texture.resize(r.width,r.height,r._resolution)}),t.msaa){let s=this._renderer,n=s.gl,o=t.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),e.colorAttachments.forEach((a,c)=>{let l=a.texture;s.texture.bindSource(l,0);let h=s.texture.getGlSource(l).internalFormat,u=t.msaaRenderBuffer[c];n.bindRenderbuffer(n.RENDERBUFFER,u),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,h,l.pixelWidth,l.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+c,n.RENDERBUFFER,u)})}}_attachDepthStencilTexture(e,t,r){let s=this._renderer,n=s.gl,o=e.depthStencilAttachment.texture,a=s.texture.getGlSource(o),c=a.texture,l=o.format,d;l==="depth24plus-stencil8"||l==="depth32float-stencil8"?d=n.DEPTH_STENCIL_ATTACHMENT:l==="stencil8"?d=n.STENCIL_ATTACHMENT:d=n.DEPTH_ATTACHMENT,a.target===n.TEXTURE_2D?n.framebufferTexture2D(n.FRAMEBUFFER,d,n.TEXTURE_2D,c,t):a.target===n.TEXTURE_2D_ARRAY?n.framebufferTextureLayer(n.FRAMEBUFFER,d,c,t,r):a.target===n.TEXTURE_CUBE_MAP&&n.framebufferTexture2D(n.FRAMEBUFFER,d,n.TEXTURE_CUBE_MAP_POSITIVE_X+r,c,t)}_initStencil(e){if(e.framebuffer===null)return;let t=this._renderer.gl,r=t.createRenderbuffer();e.depthStencilRenderBuffer=r,t.bindRenderbuffer(t.RENDERBUFFER,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,r),this._resizeStencil(e)}_resizeStencil(e){let t=this._renderer.gl;t.bindRenderbuffer(t.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?t.renderbufferStorageMultisample(t.RENDERBUFFER,4,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,this._renderer.context.webGLVersion===2?t.DEPTH24_STENCIL8:t.DEPTH_STENCIL,e.width,e.height)}prerender(e){if(e.colorAttachments.length===0)return;let t=e.colorAttachments[0].texture.resource;this._renderer.context.multiView&&Se.test(t)&&this._renderer.context.ensureCanvasSize(t)}postrender(e){if(!this._renderer.context.multiView||e.colorAttachments.length===0)return;let t=e.colorAttachments[0].texture;if(Se.test(t.resource)){let r=this._renderer.context.canvas,s=t;s.context2D.drawImage(r,0,s.pixelHeight-r.height)}}_setDrawBuffers(e,t){let r=e.colorAttachments.length,s=this._drawBuffersCache[r];if(this._renderer.context.webGLVersion===1){let n=this._renderer.context.extensions.drawBuffers;n?n.drawBuffersWEBGL(s):O("[RenderTexture] This WebGL1 context does not support rendering to multiple targets")}else t.drawBuffers(s)}resetState(){this._boundFramebuffer=void 0,this._viewPortCache=new Q,this._clearColorCache=[0,0,0,0]}bindFramebuffer(e){this._boundFramebuffer!==e&&(this._boundFramebuffer=e,this._renderer.gl.bindFramebuffer(this._renderer.gl.FRAMEBUFFER,e))}}});var Vn,ex=p(()=>{P();qa();Jb();Vn=class extends Sr{constructor(e){super(e),this.adaptor=new nc,this.adaptor.init(e,this)}resetState(){this.adaptor.resetState()}};Vn.extension={type:[_.WebGLSystem],name:"renderTarget"}});var es,Gh=p(()=>{Ne();Ie();es=class extends fe{constructor(e,t){super(),this._resourceType="textureView",this._resourceId=Y("resource"),this._touched=0,this.source=e,this.viewDescriptor=t,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 tx(i,e){let t=[],r=[`
|
|
787
787
|
var g = s.groups;
|
|
788
788
|
var sS = r.shader;
|
|
789
789
|
var p = s.glProgram;
|
|
790
790
|
var ugS = r.uniformGroup;
|
|
791
791
|
var resources;
|
|
792
|
-
`],s=!1,n=0,o=
|
|
793
|
-
resources = g[${
|
|
794
|
-
`);for(let
|
|
792
|
+
`],s=!1,n=0,o=e._getProgramData(i.glProgram);for(let c in i.groups){let l=i.groups[c];t.push(`
|
|
793
|
+
resources = g[${c}].resources;
|
|
794
|
+
`);for(let d in l.resources){let h=l.resources[d];if(h instanceof Te)if(h.ubo){let u=i._uniformBindMap[c][Number(d)];t.push(`
|
|
795
795
|
sS.bindUniformBlock(
|
|
796
|
-
resources[${
|
|
797
|
-
'${
|
|
798
|
-
${i.glProgram._uniformBlockData[
|
|
796
|
+
resources[${d}],
|
|
797
|
+
'${u}',
|
|
798
|
+
${i.glProgram._uniformBlockData[u].index}
|
|
799
799
|
);
|
|
800
|
-
`)}else
|
|
801
|
-
ugS.updateUniformGroup(resources[${
|
|
802
|
-
`);else if(
|
|
800
|
+
`)}else t.push(`
|
|
801
|
+
ugS.updateUniformGroup(resources[${d}], p, sD);
|
|
802
|
+
`);else if(h instanceof Vt){let u=i._uniformBindMap[c][Number(d)];t.push(`
|
|
803
803
|
sS.bindUniformBlock(
|
|
804
|
-
resources[${
|
|
805
|
-
'${
|
|
806
|
-
${i.glProgram._uniformBlockData[
|
|
804
|
+
resources[${d}],
|
|
805
|
+
'${u}',
|
|
806
|
+
${i.glProgram._uniformBlockData[u].index}
|
|
807
807
|
);
|
|
808
|
-
`)}else if(
|
|
808
|
+
`)}else if(h instanceof oe||h instanceof es){let u=i._uniformBindMap[c][d],f=o.uniformData[u];f&&(s||(s=!0,r.push(`
|
|
809
809
|
var tS = r.texture;
|
|
810
|
-
`)),
|
|
811
|
-
tS.bind(resources[${
|
|
812
|
-
`),n++)}}}let a=[...r,...
|
|
813
|
-
`);return new Function("r","s","sD",a)}var
|
|
814
|
-
`).map((h
|
|
815
|
-
`),o={},a=n.map(
|
|
816
|
-
`);
|
|
810
|
+
`)),e._gl.uniform1i(f.location,n),t.push(`
|
|
811
|
+
tS.bind(resources[${d}], ${n});
|
|
812
|
+
`),n++)}}}let a=[...r,...t].join(`
|
|
813
|
+
`);return new Function("r","s","sD",a)}var rx=p(()=>{En();mt();je();Gh()});var oc,ix=p(()=>{"use strict";oc=class{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}});function Fh(i,e,t){let r=i.createShader(e);return i.shaderSource(r,t),i.compileShader(r),r}var sx=p(()=>{"use strict"});function Uh(i){let e=new Array(i);for(let t=0;t<e.length;t++)e[t]=!1;return e}function ac(i,e){switch(i){case"float":return 0;case"vec2":return new Float32Array(2*e);case"vec3":return new Float32Array(3*e);case"vec4":return new Float32Array(4*e);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*e);case"ivec3":return new Int32Array(3*e);case"ivec4":return new Int32Array(4*e);case"uvec2":return new Uint32Array(2*e);case"uvec3":return new Uint32Array(3*e);case"uvec4":return new Uint32Array(4*e);case"bool":return!1;case"bvec2":return Uh(2*e);case"bvec3":return Uh(3*e);case"bvec4":return Uh(4*e);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 Dh=p(()=>{"use strict"});function Lh(i,e){if(!cc){let t=Object.keys(nx);cc={};for(let r=0;r<t.length;++r){let s=t[r];cc[i[s]]=nx[s]}}return cc[e]}function ox(i,e){let t=Lh(i,e);return o5[t]||"float32"}var cc,nx,o5,Oh=p(()=>{"use strict";cc=null,nx={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"},o5={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 ax(i,e,t=!1){let r={},s=e.getProgramParameter(i,e.ACTIVE_ATTRIBUTES);for(let o=0;o<s;o++){let a=e.getActiveAttrib(i,o);if(a.name.startsWith("gl_"))continue;let c=ox(e,a.type);r[a.name]={location:0,format:c,stride:qe(c).stride,offset:0,instance:!1,start:0}}let n=Object.keys(r);if(t){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)r[n[o]].location=o,e.bindAttribLocation(i,o,n[o]);e.linkProgram(i)}else for(let o=0;o<n.length;o++)r[n[o]].location=e.getAttribLocation(i,n[o]);return r}var cx=p(()=>{mr();Oh()});function lx(i,e){if(!e.ACTIVE_UNIFORM_BLOCKS)return{};let t={},r=e.getProgramParameter(i,e.ACTIVE_UNIFORM_BLOCKS);for(let s=0;s<r;s++){let n=e.getActiveUniformBlockName(i,s),o=e.getUniformBlockIndex(i,n),a=e.getActiveUniformBlockParameter(i,s,e.UNIFORM_BLOCK_DATA_SIZE);t[n]={name:n,index:o,size:a}}return t}var dx=p(()=>{"use strict"});function hx(i,e){let t={},r=e.getProgramParameter(i,e.ACTIVE_UNIFORMS);for(let s=0;s<r;s++){let n=e.getActiveUniform(i,s),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),c=Lh(e,n.type);t[o]={name:o,index:s,type:c,size:n.size,isArray:a,value:ac(c,n.size)}}return t}var ux=p(()=>{Dh();Oh()});function fx(i,e){let t=i.getShaderSource(e);if(t===null){console.error("PixiJS Error: Could not retrieve shader source (WebGL context may be lost).");return}let r=t.split(`
|
|
814
|
+
`).map((d,h)=>`${h}: ${d}`),s=i.getShaderInfoLog(e)??"",n=s.split(`
|
|
815
|
+
`),o={},a=n.map(d=>parseFloat(d.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(d=>d&&!o[d]?(o[d]=!0,!0):!1),c=[""];a.forEach(d=>{r[d-1]=`%c${r[d-1]}%c`,c.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let l=r.join(`
|
|
816
|
+
`);c[0]=l,console.error(s),console.groupCollapsed("click to view full shader code"),console.warn(...c),console.groupEnd()}function px(i,e,t,r){i.getProgramParameter(e,i.LINK_STATUS)||(i.getShaderParameter(t,i.COMPILE_STATUS)||fx(i,t),i.getShaderParameter(r,i.COMPILE_STATUS)||fx(i,r),console.error("PixiJS Error: Could not initialize shader."),i.getProgramInfoLog(e)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",i.getProgramInfoLog(e)))}var mx=p(()=>{"use strict"});function gx(i,e){let t=Fh(i,i.VERTEX_SHADER,e.vertex),r=Fh(i,i.FRAGMENT_SHADER,e.fragment),s=i.createProgram();i.attachShader(s,t),i.attachShader(s,r);let n=e.transformFeedbackVaryings;n&&(typeof i.transformFeedbackVaryings!="function"?O("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)||px(i,s,t,r),e._attributeData=ax(s,i,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(e.vertex)),e._uniformData=hx(s,i),e._uniformBlockData=lx(s,i),i.deleteShader(t),i.deleteShader(r);let o={};for(let c in e._uniformData){let l=e._uniformData[c];o[c]={location:i.getUniformLocation(s,c),value:ac(l.type,l.size)}}return new oc(s,o)}var bx=p(()=>{he();ix();sx();Dh();cx();dx();ux();mx()});var lc,ti,Nh=p(()=>{P();rx();bx();lc={textureCount:0,blockIndex:0},ti=class{constructor(e){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=e}contextChange(e){this._gl=e,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(e,t){if(this._setProgram(e.glProgram),t)return;lc.textureCount=0,lc.blockIndex=0;let r=this._shaderSyncFunctions[e.glProgram._key];r||(r=this._shaderSyncFunctions[e.glProgram._key]=this._generateShaderSync(e,this)),this._renderer.buffer.nextBindBase(!!e.glProgram.transformFeedbackVaryings),r(this._renderer,e,lc)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,lc)}bindUniformBlock(e,t,r=0){let s=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=e._bufferResource;o||this._renderer.ubo.updateUniformGroup(e);let a=e.buffer,c=s.updateBuffer(a),l=s.freeLocationForBufferBase(c);if(o){let{offset:h,size:u}=e;h===0&&u===a.data.byteLength?s.bindBufferBase(c,l):s.bindBufferRange(c,l,h)}else s.getLastBindBaseLocation(c)!==l&&s.bindBufferBase(c,l);let d=this._activeProgram._uniformBlockData[t].index;n.uniformBlockBindings[r]!==l&&(n.uniformBlockBindings[r]=l,this._renderer.gl.uniformBlockBinding(n.program,d,l))}_setProgram(e){if(this._activeProgram===e)return;this._activeProgram=e;let t=this._getProgramData(e);this._gl.useProgram(t.program)}_getProgramData(e){return this._programDataHash[e._key]||this._createProgramData(e)}_createProgramData(e){let t=e._key;return this._programDataHash[t]=gx(this._gl,e),this._programDataHash[t]}destroy(){for(let e of Object.keys(this._programDataHash))this._programDataHash[e].destroy();this._programDataHash=null,this._shaderSyncFunctions=null,this._activeProgram=null,this._renderer=null,this._gl=null}_generateShaderSync(e,t){return tx(e,t)}resetState(){this._activeProgram=null}};ti.extension={type:[_.WebGLSystem],name:"shader"}});var xx,_x,yx=p(()=>{"use strict";xx={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,30 +885,30 @@ 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);"},_x={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 vx(i,e){let t=[`
|
|
889
889
|
var v = null;
|
|
890
890
|
var cv = null;
|
|
891
891
|
var cu = null;
|
|
892
892
|
var t = 0;
|
|
893
893
|
var gl = renderer.gl;
|
|
894
894
|
var name = null;
|
|
895
|
-
`];for(let r in i.uniforms){if(!
|
|
895
|
+
`];for(let r in i.uniforms){if(!e[r]){i.uniforms[r]instanceof Te?i.uniforms[r].ubo?t.push(`
|
|
896
896
|
renderer.shader.bindUniformBlock(uv.${r}, "${r}");
|
|
897
|
-
`):
|
|
897
|
+
`):t.push(`
|
|
898
898
|
renderer.shader.updateUniformGroup(uv.${r});
|
|
899
|
-
`):i.uniforms[r]instanceof
|
|
899
|
+
`):i.uniforms[r]instanceof Vt&&t.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<lt.length;o++){let a=lt[o];if(s.type===a.type&&a.test(s)){t.push(`name = "${r}";`,lt[o].uniform),n=!0;break}}if(!n){let a=(s.size===1?xx:_x)[s.type].replace("location",`ud["${r}"].location`);t.push(`
|
|
902
902
|
cu = ud["${r}"];
|
|
903
903
|
cv = cu.value;
|
|
904
904
|
v = uv["${r}"];
|
|
905
|
-
${a};`)}}return new Function("ud","uv","renderer","syncData",
|
|
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===`
|
|
907
|
-
`?(
|
|
908
|
-
`),r++):
|
|
909
|
-
`||
|
|
910
|
-
`?(
|
|
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(`
|
|
905
|
+
${a};`)}}return new Function("ud","uv","renderer","syncData",t.join(`
|
|
906
|
+
`))}var wx=p(()=>{En();mt();Tn();yx()});var ri,Hh=p(()=>{P();wx();ri=class{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,t,r){let s=this._renderer.shader._getProgramData(t);(!e.isStatic||e._dirtyId!==s.uniformDirtyGroups[e.uid])&&(s.uniformDirtyGroups[e.uid]=e._dirtyId,this._getUniformSyncFunction(e,t)(s.uniformData,e.uniforms,this._renderer,r))}_getUniformSyncFunction(e,t){return this._uniformGroupSyncHash[e._signature]?.[t._key]||this._createUniformSyncFunction(e,t)}_createUniformSyncFunction(e,t){let r=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),s=this._getSignature(e,t._uniformData,"u");return this._cache[s]||(this._cache[s]=this._generateUniformsSync(e,t._uniformData)),r[t._key]=this._cache[s],r[t._key]}_generateUniformsSync(e,t){return vx(e,t)}_getSignature(e,t,r){let s=e.uniforms,n=[`${r}-`];for(let o in s)n.push(o),t[o]&&n.push(t[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};ri.extension={type:[_.WebGLSystem],name:"uniformGroup"}});function Sx(i){let e={};if(e.normal=[i.ONE,i.ONE_MINUS_SRC_ALPHA],e.add=[i.ONE,i.ONE],e.multiply=[i.DST_COLOR,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],e.screen=[i.ONE,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],e.none=[0,0],e["normal-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_ALPHA,i.ONE,i.ONE_MINUS_SRC_ALPHA],e["add-npm"]=[i.SRC_ALPHA,i.ONE,i.ONE,i.ONE],e["screen-npm"]=[i.SRC_ALPHA,i.ONE_MINUS_SRC_COLOR,i.ONE,i.ONE_MINUS_SRC_ALPHA],e.erase=[i.ZERO,i.ONE_MINUS_SRC_ALPHA],!(i instanceof z.get().getWebGLRenderingContext()))e.min=[i.ONE,i.ONE,i.ONE,i.ONE,i.MIN,i.MIN],e.max=[i.ONE,i.ONE,i.ONE,i.ONE,i.MAX,i.MAX];else{let r=i.getExtension("EXT_blend_minmax");r&&(e.min=[i.ONE,i.ONE,i.ONE,i.ONE,r.MIN_EXT,r.MIN_EXT],e.max=[i.ONE,i.ONE,i.ONE,i.ONE,r.MAX_EXT,r.MAX_EXT])}return e}var Tx=p(()=>{be()});var a5,c5,l5,d5,h5,Ex,Cx,Px,Mx=p(()=>{P();It();Tx();({BLEND:a5,OFFSET:c5,CULLING:l5,DEPTH_TEST:d5,WINDING:h5,DEPTH_MASK:Ex}=gd),Cx=class zh{constructor(e){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[a5]=this.setBlend,this.map[c5]=this.setOffset,this.map[l5]=this.setCullFace,this.map[d5]=this.setDepthTest,this.map[h5]=this.setFrontFace,this.map[Ex]=this.setDepthMask,this.checks=[],this.defaultState=De.for2d(),e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){this._invertFrontFace=!e.isRoot!=!!e.flipY,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(e){this.gl=e,this.blendModesMap=Sx(e),this.resetState()}set(e){if(e||(e=this.defaultState),this.stateId!==e.data){let t=this.stateId^e.data,r=0;for(;t;)t&1&&this.map[r].call(this,!!(e.data&1<<r)),t>>=1,r++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e||(e=this.defaultState);for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(e){this._updateCheck(zh._checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this._updateCheck(zh._checkPolygonOffset,e),this.gl[e?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}get depthMaskEnabled(){return!!(this.stateId&1<<Ex)}setCullFace(e){this._cullFace=e,this.gl[e?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(e){this._frontFace=e,this._frontFaceDirty=!1;let t=this._invertFrontFace?!e:e;this._glFrontFace!==t&&(this._glFrontFace=t,this.gl.frontFace(this.gl[t?"CW":"CCW"]))}setBlendMode(e){if(this.blendModesMap[e]||(e="normal"),e===this.blendMode)return;this.blendMode=e;let t=this.blendModesMap[e],r=this.gl;t.length===2?r.blendFunc(t[0],t[1]):r.blendFuncSeparate(t[0],t[1],t[2],t[3]),t.length===6?(this._blendEq=!0,r.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}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(e,t){let r=this.checks.indexOf(e);t&&r===-1?this.checks.push(e):!t&&r!==-1&&this.checks.splice(r,1)}static _checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static _checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};Cx.extension={type:[_.WebGLSystem],name:"state"};Px=Cx});var dc,Ax=p(()=>{rc();dc=class{constructor(e){this.target=Dn.TEXTURE_2D,this._layerInitMask=0,this.texture=e,this.width=-1,this.height=-1,this.type=le.UNSIGNED_BYTE,this.internalFormat=tc.RGBA,this.format=tc.RGBA,this.samplerType=0}destroy(){}}});var Rx,kx=p(()=>{"use strict";Rx={id:"buffer",upload(i,e,t,r,s,n=!1){let o=s||e.target;!n&&e.width===i.width&&e.height===i.height?t.texSubImage2D(o,0,0,0,i.width,i.height,e.format,e.type,i.resource):t.texImage2D(o,0,e.internalFormat,i.width,i.height,0,e.format,e.type,i.resource),e.width=i.width,e.height=i.height}}});var u5,Bx,Ix=p(()=>{"use strict";u5={"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},Bx={id:"compressed",upload(i,e,t,r,s,n){let o=s??e.target;t.pixelStorei(t.UNPACK_ALIGNMENT,4);let a=i.pixelWidth,c=i.pixelHeight,l=!!u5[i.format];for(let d=0;d<i.resource.length;d++){let h=i.resource[d];l?t.compressedTexImage2D(o,d,e.internalFormat,a,c,0,h):t.texImage2D(o,d,e.internalFormat,a,c,0,e.format,e.type,h),a=Math.max(a>>1,1),c=Math.max(c>>1,1)}}}});function Fx(i){return{id:"cube",upload(e,t,r,s){let n=e.faces;for(let o=0;o<Gx.length;o++){let a=Gx[o],c=n[a];if(!c.resource)continue;(i[c.uploadMethodId]||i.image).upload(c,t,r,s,Dn.TEXTURE_CUBE_MAP_POSITIVE_X+o,(t._layerInitMask&1<<o)===0),t._layerInitMask|=1<<o}t.width=e.pixelWidth,t.height=e.pixelHeight}}}var Gx,Ux=p(()=>{rc();Gx=["right","left","top","bottom","front","back"]});function f5(i,e,t,r,s,n,o,a,c,l){if(!l){c&&i.texImage2D(e,0,t.internalFormat,r,s,0,t.format,t.type,null),i.texSubImage2D(e,0,0,0,n,o,t.format,t.type,a);return}if(!c){i.texSubImage2D(e,0,0,0,t.format,t.type,a);return}i.texImage2D(e,0,t.internalFormat,r,s,0,t.format,t.type,a)}function p5(i,e,t,r,s,n,o,a,c,l){if(!l){c&&i.texImage2D(e,0,t.internalFormat,r,s,0,t.format,t.type,null),i.texSubImage2D(e,0,0,0,t.format,t.type,a);return}if(!c){i.texSubImage2D(e,0,0,0,t.format,t.type,a);return}i.texImage2D(e,0,t.internalFormat,t.format,t.type,a)}var hc,Wh=p(()=>{"use strict";hc={id:"image",upload(i,e,t,r,s,n=!1){let o=s||e.target,a=i.pixelWidth,c=i.pixelHeight,l=i.resourceWidth,d=i.resourceHeight,h=r===2,u=n||e.width!==a||e.height!==c,f=l>=a&&d>=c,m=i.resource;(h?f5:p5)(t,o,e,a,c,l,d,m,u,f),e.width=a,e.height=c}}});function Dx(){let{userAgent:i}=z.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var Lx=p(()=>{be()});var m5,Ox,Nx=p(()=>{Lx();Wh();m5=Dx(),Ox={id:"video",upload(i,e,t,r,s,n=m5){if(!i.isValid){let o=s??e.target;t.texImage2D(o,0,e.internalFormat,1,1,0,e.format,e.type,null);return}hc.upload(i,e,t,r,s,n)}}});var Vh,Hx,uc,zx,Wx=p(()=>{"use strict";Vh={linear:9729,nearest:9728},Hx={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},uc={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},zx={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519}});function jh(i,e,t,r,s,n,o,a){let c=n;if(!a||i.addressModeU!=="repeat"||i.addressModeV!=="repeat"||i.addressModeW!=="repeat"){let l=uc[o?"clamp-to-edge":i.addressModeU],d=uc[o?"clamp-to-edge":i.addressModeV],h=uc[o?"clamp-to-edge":i.addressModeW];e[s](c,e.TEXTURE_WRAP_S,l),e[s](c,e.TEXTURE_WRAP_T,d),e.TEXTURE_WRAP_R&&e[s](c,e.TEXTURE_WRAP_R,h)}if((!a||i.magFilter!=="linear")&&e[s](c,e.TEXTURE_MAG_FILTER,Vh[i.magFilter]),t){if(!a||i.mipmapFilter!=="linear"){let l=Hx[i.minFilter][i.mipmapFilter];e[s](c,e.TEXTURE_MIN_FILTER,l)}}else e[s](c,e.TEXTURE_MIN_FILTER,Vh[i.minFilter]);if(r&&i.maxAnisotropy>1){let l=Math.min(i.maxAnisotropy,e.getParameter(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT));e[s](c,r.TEXTURE_MAX_ANISOTROPY_EXT,l)}i.compare?(e[s](c,e.TEXTURE_COMPARE_FUNC,zx[i.compare]),e[s](c,e.TEXTURE_COMPARE_MODE,e.COMPARE_REF_TO_TEXTURE)):a||e[s](c,e.TEXTURE_COMPARE_MODE,e.NONE)}var Vx=p(()=>{Wx()});function jx(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 Xx=p(()=>{"use strict"});function Yx(i,e){let t={},r=i.RGBA;return i instanceof z.get().getWebGLRenderingContext()?e.srgb&&(t={"rgba8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT}):(t={"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,...t,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,...e.s3tc?{"bc1-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...e.s3tc_sRGB?{"bc1-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...e.rgtc?{"bc4-r-unorm":e.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":e.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":e.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":e.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...e.bptc?{"bc6h-rgb-float":e.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":e.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":e.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":e.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...e.etc?{"etc2-rgb8unorm":e.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":e.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":e.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":e.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":e.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":e.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":e.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":e.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...e.astc?{"astc-4x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}var $x=p(()=>{be()});function qx(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 Kx=p(()=>{"use strict"});function Zx(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 Qx=p(()=>{"use strict"});var g5,Xh,Yh,e_=p(()=>{be();P();Gt();ge();Ax();kx();Ix();Ux();Wh();Nx();Vx();Xx();$x();Kx();Qx();g5=4,Xh=class Jx{constructor(e){this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=e,this._managedTextures=new Re({renderer:e,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"glTexture"});let t={image:hc,buffer:Rx,video:Ox,compressed:Bx,...Jx.uploadExtensions};this._uploads={...t,cube:Fx(t)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(e){this._gl=e,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=Yx(e,this._renderer.context.extensions),this._mapFormatToType=qx(e),this._mapFormatToFormat=jx(e),this._mapViewDimensionToGlTarget=Zx(e)),this._managedTextures.removeAll(!0),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let t=0;t<16;t++)this.bind(U.EMPTY,t)}initSource(e){this.bind(e)}bind(e,t=0){let r=e.source;e?(this.bindSource(r,t),this._useSeparateSamplers&&this._bindSampler(r.style,t)):(this.bindSource(null,t),this._useSeparateSamplers&&this._bindSampler(null,t))}bindSource(e,t=0){let r=this._gl;if(e._gcLastUsed=this._renderer.gc.now,this._boundTextures[t]!==e){this._boundTextures[t]=e,this._activateLocation(t),e||(e=U.EMPTY.source);let s=this.getGlSource(e);r.bindTexture(s.target,s.texture)}}_bindSampler(e,t=0){let r=this._gl;if(!e){this._boundSamplers[t]=null,r.bindSampler(t,null);return}let s=this._getGlSampler(e);this._boundSamplers[t]!==s&&(this._boundSamplers[t]=s,r.bindSampler(t,s))}unbind(e){let t=e.source,r=this._boundTextures,s=this._gl;for(let n=0;n<r.length;n++)if(r[n]===t){this._activateLocation(n);let o=this.getGlSource(t);s.bindTexture(o.target,null),r[n]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let t=this._gl,r=new dc(t.createTexture());if(r.type=this._mapFormatToType[e.format],r.internalFormat=this._mapFormatToInternalFormat[e.format],r.format=this._mapFormatToFormat[e.format],r.target=this._mapViewDimensionToGlTarget[e.viewDimension],r.target===null)throw new Error(`Unsupported view dimension: ${e.viewDimension} with this webgl version: ${this._renderer.context.webGLVersion}`);if(e.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||e.isPowerOfTwo)){let n=Math.max(e.width,e.height);e.mipLevelCount=Math.floor(Math.log2(n))+1}return e._gpuData[this._renderer.uid]=r,this._managedTextures.add(e)&&(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceUpdate,this),e.on("styleChange",this.onStyleChange,this),e.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(e),this.updateStyle(e,!1),r}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,t){let r=this._gl,s=this.getGlSource(e);r.bindTexture(s.target,s.texture),this._boundTextures[this._activeTextureLocation]=e,jh(e.style,r,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",s.target,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e,t=!1){let r=e._gpuData[this._renderer.uid];r&&(t||(this.unbind(e),this._gl.deleteTexture(r.texture)),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this))}onSourceUpdate(e){let t=this._gl,r=this.getGlSource(e);t.bindTexture(r.target,r.texture),this._boundTextures[this._activeTextureLocation]=e;let s=e.alphaMode==="premultiply-alpha-on-upload";if(this._premultiplyAlpha!==s&&(this._premultiplyAlpha=s,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,s)),this._uploads[e.uploadMethodId])this._uploads[e.uploadMethodId].upload(e,r,t,this._renderer.context.webGLVersion);else if(r.target===t.TEXTURE_2D)this._initEmptyTexture2D(r,e);else if(r.target===t.TEXTURE_2D_ARRAY)this._initEmptyTexture2DArray(r,e);else if(r.target===t.TEXTURE_CUBE_MAP)this._initEmptyTextureCube(r,e);else throw new Error("[GlTextureSystem] Unsupported texture target for empty allocation.");this._applyMipRange(r,e),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);let r=this.getGlSource(e);this._gl.generateMipmap(r.target)}_initEmptyTexture2D(e,t){let r=this._gl;r.texImage2D(r.TEXTURE_2D,0,e.internalFormat,t.pixelWidth,t.pixelHeight,0,e.format,e.type,null);let s=Math.max(t.pixelWidth>>1,1),n=Math.max(t.pixelHeight>>1,1);for(let o=1;o<t.mipLevelCount;o++)r.texImage2D(r.TEXTURE_2D,o,e.internalFormat,s,n,0,e.format,e.type,null),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}_initEmptyTexture2DArray(e,t){if(this._renderer.context.webGLVersion!==2)throw new Error("[GlTextureSystem] TEXTURE_2D_ARRAY requires WebGL2.");let r=this._gl,s=Math.max(t.arrayLayerCount|0,1);r.texImage3D(r.TEXTURE_2D_ARRAY,0,e.internalFormat,t.pixelWidth,t.pixelHeight,s,0,e.format,e.type,null);let n=Math.max(t.pixelWidth>>1,1),o=Math.max(t.pixelHeight>>1,1);for(let a=1;a<t.mipLevelCount;a++)r.texImage3D(r.TEXTURE_2D_ARRAY,a,e.internalFormat,n,o,s,0,e.format,e.type,null),n=Math.max(n>>1,1),o=Math.max(o>>1,1)}_initEmptyTextureCube(e,t){let r=this._gl,s=6;for(let a=0;a<s;a++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+a,0,e.internalFormat,t.pixelWidth,t.pixelHeight,0,e.format,e.type,null);let n=Math.max(t.pixelWidth>>1,1),o=Math.max(t.pixelHeight>>1,1);for(let a=1;a<t.mipLevelCount;a++){for(let c=0;c<s;c++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+c,a,e.internalFormat,n,o,0,e.format,e.type,null);n=Math.max(n>>1,1),o=Math.max(o>>1,1)}}_applyMipRange(e,t){if(this._renderer.context.webGLVersion!==2||t.mipLevelCount<=1)return;let r=this._gl,s=Math.max((t.mipLevelCount|0)-1,0);r.texParameteri(e.target,r.TEXTURE_BASE_LEVEL,0),r.texParameteri(e.target,r.TEXTURE_MAX_LEVEL,s)}_initSampler(e){let t=this._gl,r=this._gl.createSampler();return this._glSamplers[e._resourceId]=r,jh(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1,!0),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]||this._initSource(e)}generateCanvas(e){let{pixels:t,width:r,height:s}=this.getPixels(e),n=z.get().createCanvas();n.width=r,n.height=s;let o=n.getContext("2d");if(o){let a=o.createImageData(r,s);a.data.set(t),o.putImageData(a,0,0)}return n}getPixels(e){let t=e.source.resolution,r=e.frame,s=Math.max(Math.round(r.width*t),1),n=Math.max(Math.round(r.height*t),1),o=new Uint8Array(g5*s*n),a=this._renderer,c=a.renderTarget.getRenderTarget(e),l=a.renderTarget.getGpuRenderTarget(c),d=a.gl;return a.renderTarget.adaptor.bindFramebuffer(l.resolveTargetFramebuffer),d.readPixels(Math.round(r.x*t),Math.round(r.y*t),s,n,d.RGBA,d.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 e=this._gl;this._premultiplyAlpha=!1,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};Xh.extension={type:[_.WebGLSystem],name:"texture"};Xh.uploadExtensions=Object.create(null);Yh=Xh;H.handleByMap(_.TextureUploaderWebGL,Yh.uploadExtensions)});var s_={};Qc(s_,{WebGLRenderer:()=>$h});var b5,x5,_5,t_,r_,i_,$h,n_=p(()=>{P();Pb();Mb();Ab();jr();Va();zt();Bb();Fb();Ob();zb();Wb();Vb();jb();Xb();Ih();ex();Nh();Hh();Mx();e_();b5=[...Zi,ei,Hb,Gb,Hn,Un,Yh,Vn,Ln,ri,ti,Nn,Px,zn,On],x5=[...Wa],_5=[Gn,In,Bn],t_=[],r_=[],i_=[];H.handleByNamedList(_.WebGLSystem,t_);H.handleByNamedList(_.WebGLPipes,r_);H.handleByNamedList(_.WebGLPipesAdaptor,i_);H.add(...b5,...x5,..._5);$h=class extends St{constructor(){let e={name:"webgl",type:Ue.WEBGL,systems:t_,renderPipes:r_,renderPipeAdaptors:i_};super(e)}}});function o_(i,e,t,r,s,n,o,a){let c=i-t*s,l=e-r*s,d=i+t*n,h=e+r*n,u,f;o?(u=r,f=-t):(u=-r,f=t);let m=c+u,g=l+f,x=d+u,b=h+f;return a.push(m,g),a.push(x,b),2}function ii(i,e,t,r,s,n,o,a){let c=t-i,l=r-e,d=Math.atan2(c,l),h=Math.atan2(s-i,n-e);a&&d<h?d+=Math.PI*2:!a&&d>h&&(h+=Math.PI*2);let u=d,f=h-d,m=Math.abs(f),g=Math.sqrt(c*c+l*l),x=(15*m*Math.sqrt(g)/Math.PI>>0)+1,b=f/x;if(u+=b,a){o.push(i,e),o.push(t,r);for(let y=1,v=u;y<x;y++,v+=b)o.push(i,e),o.push(i+Math.sin(v)*g,e+Math.cos(v)*g);o.push(i,e),o.push(s,n)}else{o.push(t,r),o.push(i,e);for(let y=1,v=u;y<x;y++,v+=b)o.push(i+Math.sin(v)*g,e+Math.cos(v)*g),o.push(i,e);o.push(s,n),o.push(i,e)}return x*2}function ts(i,e,t,r,s,n){let o=1e-4;if(i.length===0)return;let a=e,c=a.alignment;if(e.alignment!==.5){let F=ra(i);t&&(F*=-1),c=(c-.5)*F+.5}let l=new ae(i[0],i[1]),d=new ae(i[i.length-2],i[i.length-1]),h=r,u=Math.abs(l.x-d.x)<o&&Math.abs(l.y-d.y)<o;if(h){i=i.slice(),u&&(i.pop(),i.pop(),d.set(i[i.length-2],i[i.length-1]));let F=(l.x+d.x)*.5,te=(d.y+l.y)*.5;i.unshift(F,te),i.push(F,te)}let f=s,m=i.length/2,g=i.length,x=f.length/2,b=a.width/2,y=b*b,v=a.miterLimit*a.miterLimit,w=i[0],S=i[1],T=i[2],C=i[3],B=0,R=0,M=-(S-C),E=w-T,A=0,L=0,W=Math.sqrt(M*M+E*E);M/=W,E/=W,M*=b,E*=b;let ee=c,G=(1-ee)*2,D=ee*2;h||(a.cap==="round"?g+=ii(w-M*(G-D)*.5,S-E*(G-D)*.5,w-M*G,S-E*G,w+M*D,S+E*D,f,!0)+2:a.cap==="square"&&(g+=o_(w,S,M,E,G,D,!0,f))),f.push(w-M*G,S-E*G),f.push(w+M*D,S+E*D);for(let F=1;F<m-1;++F){w=i[(F-1)*2],S=i[(F-1)*2+1],T=i[F*2],C=i[F*2+1],B=i[(F+1)*2],R=i[(F+1)*2+1],M=-(S-C),E=w-T,W=Math.sqrt(M*M+E*E),M/=W,E/=W,M*=b,E*=b,A=-(C-R),L=T-B,W=Math.sqrt(A*A+L*L),A/=W,L/=W,A*=b,L*=b;let te=T-w,de=S-C,we=T-B,se=R-C,ue=te*we+de*se,$=de*we-se*te,dt=$<0;if(Math.abs($)<.001*Math.abs(ue)){f.push(T-M*G,C-E*G),f.push(T+M*D,C+E*D),ue>=0&&(a.join==="round"?g+=ii(T,C,T-M*G,C-E*G,T-A*G,C-L*G,f,!1)+4:g+=2,f.push(T-A*D,C-L*D),f.push(T+A*G,C+L*G));continue}let ui=(-M+w)*(-E+C)-(-M+T)*(-E+S),Cr=(-A+B)*(-L+C)-(-A+T)*(-L+R),Pr=(te*Cr-we*ui)/$,Et=(se*ui-de*Cr)/$,ht=(Pr-T)*(Pr-T)+(Et-C)*(Et-C),ut=T+(Pr-T)*G,Qe=C+(Et-C)*G,I=T-(Pr-T)*D,K=C-(Et-C)*D,ne=Math.min(te*te+de*de,we*we+se*se),ke=dt?G:D,We=ne+ke*ke*y;ht<=We?a.join==="bevel"||ht/y>v?(dt?(f.push(ut,Qe),f.push(T+M*D,C+E*D),f.push(ut,Qe),f.push(T+A*D,C+L*D)):(f.push(T-M*G,C-E*G),f.push(I,K),f.push(T-A*G,C-L*G),f.push(I,K)),g+=2):a.join==="round"?dt?(f.push(ut,Qe),f.push(T+M*D,C+E*D),g+=ii(T,C,T+M*D,C+E*D,T+A*D,C+L*D,f,!0)+4,f.push(ut,Qe),f.push(T+A*D,C+L*D)):(f.push(T-M*G,C-E*G),f.push(I,K),g+=ii(T,C,T-M*G,C-E*G,T-A*G,C-L*G,f,!1)+4,f.push(T-A*G,C-L*G),f.push(I,K)):(f.push(ut,Qe),f.push(I,K)):(f.push(T-M*G,C-E*G),f.push(T+M*D,C+E*D),a.join==="round"?dt?g+=ii(T,C,T+M*D,C+E*D,T+A*D,C+L*D,f,!0)+2:g+=ii(T,C,T-M*G,C-E*G,T-A*G,C-L*G,f,!1)+2:a.join==="miter"&&ht/y<=v&&(dt?(f.push(I,K),f.push(I,K)):(f.push(ut,Qe),f.push(ut,Qe)),g+=2),f.push(T-A*G,C-L*G),f.push(T+A*D,C+L*D),g+=2)}w=i[(m-2)*2],S=i[(m-2)*2+1],T=i[(m-1)*2],C=i[(m-1)*2+1],M=-(S-C),E=w-T,W=Math.sqrt(M*M+E*E),M/=W,E/=W,M*=b,E*=b,f.push(T-M*G,C-E*G),f.push(T+M*D,C+E*D),h||(a.cap==="round"?g+=ii(T-M*(G-D)*.5,C-E*(G-D)*.5,T-M*G,C-E*G,T+M*D,C+E*D,f,!1)+2:a.cap==="square"&&(g+=o_(T,C,M,E,G,D,!1,f)));let j=1e-4*1e-4;for(let F=x;F<g+x-2;++F)w=f[F*2],S=f[F*2+1],T=f[(F+1)*2],C=f[(F+1)*2+1],B=f[(F+2)*2],R=f[(F+2)*2+1],!(Math.abs(w*(C-R)+T*(R-S)+B*(S-C))<j)&&n.push(F,F+1,F+2)}var fc=p(()=>{Ql();Pt()});function c_(i,e){for(let t=0;t<e.length;t++){let r=e[t];i.addColorStop(r.offset,r.color)}}function l_(i,e){let t=z.get().createCanvas(i,e),r=t.getContext("2d");return{canvas:t,context:r}}function w5(i){let e=i[0]??{};return(typeof e=="number"||i[1])&&(N("8.5.2","use options object instead"),e={type:"linear",start:{x:i[0],y:i[1]},end:{x:i[2],y:i[3]},textureSpace:i[4],textureSize:i[5]??Ze.defaultLinearOptions.textureSize}),e}var a_,Kh,Ze,si=p(()=>{$e();be();ce();Zo();ge();Ie();_e();gl();a_=[{offset:0,color:"white"},{offset:1,color:"black"}],Kh=class qh{constructor(...e){this.uid=Y("fillGradient"),this._tick=0,this.type="linear",this.colorStops=[];let t=w5(e);t={...t.type==="radial"?qh.defaultRadialOptions:qh.defaultLinearOptions,...Do(t)},this._textureSize=t.textureSize,this._wrapMode=t.wrapMode,t.type==="radial"?(this.center=t.center,this.outerCenter=t.outerCenter??this.center,this.innerRadius=t.innerRadius,this.outerRadius=t.outerRadius,this.scale=t.scale,this.rotation=t.rotation):(this.start=t.start,this.end=t.end),this.textureSpace=t.textureSpace,this.type=t.type,t.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(e,t){return this.colorStops.push({offset:e,color:Z.shared.setValue(t).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:e,y:t}=this.start,{x:r,y:s}=this.end,n=r-e,o=s-t,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let x=e;e=r,r=x,n*=-1}if(o<0){let x=t;t=s,s=x,o*=-1}}let c=this.colorStops.length?this.colorStops:a_,l=this._textureSize,{canvas:d,context:h}=l_(l,1),u=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);c_(u,c),h.fillStyle=u,h.fillRect(0,0,l,1),this.texture=new U({source:new kt({resource:d,addressMode:this._wrapMode})});let f=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),g=new k;g.scale(f/l,1),g.rotate(m),g.translate(e,t),this.textureSpace==="local"&&g.scale(l,l),this.transform=g}buildGradient(){this.texture||this._tick++,this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let e=this.colorStops.length?this.colorStops:a_,t=this._textureSize,{canvas:r,context:s}=l_(t,t),{x:n,y:o}=this.center,{x:a,y:c}=this.outerCenter,l=this.innerRadius,d=this.outerRadius,h=a-d,u=c-d,f=t/(d*2),m=(n-h)*f,g=(o-u)*f,x=s.createRadialGradient(m,g,l*f,(a-h)*f,(c-u)*f,d*f);c_(x,e),s.fillStyle=e[e.length-1].color,s.fillRect(0,0,t,t),s.fillStyle=x,s.translate(m,g),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-g),s.fillRect(0,0,t,t),this.texture=new U({source:new kt({resource:r,addressMode:this._wrapMode})});let b=new k;this.textureSpace==="local"?b.scale(2*d,2*d):b.scale(1/f,1/f),b.translate(h,u),this.transform=b}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}`}};Kh.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Kh.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"};Ze=Kh});function S5(i){return i.texture!==void 0}var d_,Ft,jn=p(()=>{ce();Ie();d_={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"}},Ft=class{constructor(e,t){this.uid=Y("fillPattern"),this._tick=0,this.transform=new k;let r=S5(e)?e:{texture:e,repetition:t};this.texture=r.texture,this.textureSpace=r.textureSpace??"global";let s=r.repetition;s&&(this.texture.source.style.addressModeU=d_[s].addressModeU,this.texture.source.style.addressModeV=d_[s].addressModeV)}setTransform(e){if(e){if(this.transform.equals(e))return;this.transform.copyFrom(e)}else{if(this.transform.isIdentity())return;this.transform.identity()}this._tick++}get texture(){return this._texture}set texture(e){this._texture!==e&&(this._texture=e,this._tick++)}get styleKey(){return`fill-pattern-${this.uid}-${this._tick}`}destroy(){this.texture.destroy(!0),this.texture=null}}});function h_(i,e,t,r,s,n,o,a=null){let c=0;t*=e,s*=n;let l=a.a,d=a.b,h=a.c,u=a.d,f=a.tx,m=a.ty;for(;c<o;){let g=i[t],x=i[t+1];r[s]=l*g+h*x+f,r[s+1]=d*g+u*x+m,s+=n,t+=e,c++}}function u_(i,e,t,r){let s=0;for(e*=t;s<r;)i[e]=0,i[e+1]=0,e+=t,s++}var f_=p(()=>{"use strict"});function Zh(i,e,t,r,s){let n=e.a,o=e.b,a=e.c,c=e.d,l=e.tx,d=e.ty;t||(t=0),r||(r=2),s||(s=i.length/r-t);let h=t*r;for(let u=0;u<s;u++){let f=i[h],m=i[h+1];i[h]=n*f+a*m+l,i[h+1]=o*f+c*m+d,h+=r}}var p_=p(()=>{"use strict"});var T5,ni,Qh=p(()=>{ce();_s();T5=new k,ni=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 e=this.baseColor,t=e>>16|e&65280|(e&255)<<16,r=this.renderable;return r?Lt(t,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||T5}copyTo(e){e.indexOffset=this.indexOffset,e.indexSize=this.indexSize,e.attributeOffset=this.attributeOffset,e.attributeSize=this.attributeSize,e.baseColor=this.baseColor,e.alpha=this.alpha,e.texture=this.texture,e.geometryData=this.geometryData,e.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 rs,m_,g_,b_=p(()=>{P();rs={extension:{type:_.ShapeBuilder,name:"circle"},build(i,e){let t,r,s,n,o,a;if(i.type==="circle"){let w=i;if(o=a=w.radius,o<=0)return!1;t=w.x,r=w.y,s=n=0}else if(i.type==="ellipse"){let w=i;if(o=w.halfWidth,a=w.halfHeight,o<=0||a<=0)return!1;t=w.x,r=w.y,s=n=0}else{let w=i,S=w.width/2,T=w.height/2;t=w.x+S,r=w.y+T,o=a=Math.max(0,Math.min(w.radius,Math.min(S,T))),s=S-o,n=T-a}if(s<0||n<0)return!1;let c=Math.ceil(2.3*Math.sqrt(o+a)),l=c*8+(s?4:0)+(n?4:0);if(l===0)return!1;if(c===0)return e[0]=e[6]=t+s,e[1]=e[3]=r+n,e[2]=e[4]=t-s,e[5]=e[7]=r-n,!0;let d=0,h=c*4+(s?2:0)+2,u=h,f=l,m=s+o,g=n,x=t+m,b=t-m,y=r+g;if(e[d++]=x,e[d++]=y,e[--h]=y,e[--h]=b,n){let w=r-g;e[u++]=b,e[u++]=w,e[--f]=w,e[--f]=x}for(let w=1;w<c;w++){let S=Math.PI/2*(w/c),T=s+Math.cos(S)*o,C=n+Math.sin(S)*a,B=t+T,R=t-T,M=r+C,E=r-C;e[d++]=B,e[d++]=M,e[--h]=M,e[--h]=R,e[u++]=R,e[u++]=E,e[--f]=E,e[--f]=B}m=s,g=n+a,x=t+m,b=t-m,y=r+g;let v=r-g;return e[d++]=x,e[d++]=y,e[--f]=v,e[--f]=x,s&&(e[d++]=b,e[d++]=y,e[--f]=v,e[--f]=b),!0},triangulate(i,e,t,r,s,n){if(i.length===0)return;let o=0,a=0;for(let d=0;d<i.length;d+=2)o+=i[d],a+=i[d+1];o/=i.length/2,a/=i.length/2;let c=r;e[c*t]=o,e[c*t+1]=a;let l=c++;for(let d=0;d<i.length;d+=2)e[c*t]=i[d],e[c*t+1]=i[d+1],d>0&&(s[n++]=c,s[n++]=l,s[n++]=c-1),c++;s[n++]=l+1,s[n++]=l,s[n++]=c-1}},m_={...rs,extension:{...rs.extension,name:"ellipse"}},g_={...rs,extension:{...rs.extension,name:"roundedRectangle"}}});function x_(i,e,t,r){let s=1e-4;if(i.length===0)return;let n=i[0],o=i[1],a=i[i.length-2],c=i[i.length-1],l=e||Math.abs(n-a)<s&&Math.abs(o-c)<s,d=t,h=i.length/2,u=d.length/2;for(let f=0;f<h;f++)d.push(i[f*2]),d.push(i[f*2+1]);for(let f=0;f<h-1;f++)r.push(u+f,u+f+1);l&&r.push(u+h-1,u)}var __=p(()=>{});function pc(i,e,t,r,s,n,o){let a=Vm(i,e,2);if(!a)return;for(let l=0;l<a.length;l+=3)n[o++]=a[l]+s,n[o++]=a[l+1]+s,n[o++]=a[l+2]+s;let c=s*r;for(let l=0;l<i.length;l+=2)t[c]=i[l],t[c+1]=i[l+1],c+=r}var Jh=p(()=>{jm()});var E5,y_,v_=p(()=>{P();Jh();E5=[],y_={extension:{type:_.ShapeBuilder,name:"polygon"},build(i,e){for(let t=0;t<i.points.length;t++)e[t]=i.points[t];return!0},triangulate(i,e,t,r,s,n){pc(i,E5,e,t,r,s,n)}}});var w_,S_=p(()=>{P();w_={extension:{type:_.ShapeBuilder,name:"rectangle"},build(i,e){let t=i,r=t.x,s=t.y,n=t.width,o=t.height;return n>0&&o>0?(e[0]=r,e[1]=s,e[2]=r+n,e[3]=s,e[4]=r+n,e[5]=s+o,e[6]=r,e[7]=s+o,!0):!1},triangulate(i,e,t,r,s,n){let o=0;r*=t,e[r+o]=i[0],e[r+o+1]=i[1],o+=t,e[r+o]=i[2],e[r+o+1]=i[3],o+=t,e[r+o]=i[6],e[r+o+1]=i[7],o+=t,e[r+o]=i[4],e[r+o+1]=i[5],o+=t;let a=r/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var T_,E_=p(()=>{P();T_={extension:{type:_.ShapeBuilder,name:"triangle"},build(i,e){return e[0]=i.x,e[1]=i.y,e[2]=i.x2,e[3]=i.y2,e[4]=i.x3,e[5]=i.y3,!0},triangulate(i,e,t,r,s,n){let o=0;r*=t,e[r+o]=i[0],e[r+o+1]=i[1],o+=t,e[r+o]=i[2],e[r+o+1]=i[3],o+=t,e[r+o]=i[4],e[r+o+1]=i[5];let a=r/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function mc(i,e,t,r){let s=e.matrix?i.copyFrom(e.matrix).invert():i.identity();if(e.textureSpace==="local"){let o=t.getBounds(P5);e.width&&o.pad(e.width);let{x:a,y:c}=o,l=1/o.width,d=1/o.height,h=-a*l,u=-c*d,f=s.a,m=s.b,g=s.c,x=s.d;s.a*=l,s.b*=l,s.c*=d,s.d*=d,s.tx=h*f+u*g+s.tx,s.ty=h*m+u*x+s.ty}else if(e.texture.rotate){let{uvs:o,orig:a}=e.texture;s.scale(1/a.width,1/a.height),s.prepend(M5.set(o.x1-o.x0,o.y1-o.y0,o.x3-o.x0,o.y3-o.y0,o.x0,o.y0))}else s.translate(e.texture.frame.x,e.texture.frame.y),s.scale(1/e.texture.source.width,1/e.texture.source.height);let n=e.texture.source.style;return!(e.fill instanceof Ze)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),r&&s.append(C5.copyFrom(r).invert()),s}var C5,P5,M5,eu=p(()=>{ce();Ve();si();C5=new k,P5=new Q,M5=new k});function P_(i,e){let{geometryData:t,batches:r}=e;r.length=0,t.indices.length=0,t.vertices.length=0,t.uvs.length=0;for(let s=0;s<i.instructions.length;s++){let n=i.instructions[s];if(n.action==="texture")k5(n.data,r,t);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,c=n.data.style,l=n.data.hole;o&&l&&C_(l.shapePath,c,!0,r,t),l&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=l.shapePath.shapePrimitives),C_(a,c,o,r,t)}}}function k5(i,e,t){let r=[],s=Tr.rectangle,n=A5;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:c,indices:l}=t,d=l.length,h=a.length/2;o&&Zh(r,o),s.triangulate(r,a,2,h,l,d);let u=i.image,f=u.uvs;c.push(f.x0,f.y0,f.x1,f.y1,f.x3,f.y3,f.x2,f.y2);let m=ye.get(ni);m.indexOffset=d,m.indexSize=l.length-d,m.attributeOffset=h,m.attributeSize=a.length/2-h,m.baseColor=i.style,m.alpha=i.alpha,m.texture=u,m.geometryData=t,e.push(m)}function C_(i,e,t,r,s){let{vertices:n,uvs:o,indices:a}=s;i.shapePrimitives.forEach(({shape:c,transform:l,holes:d})=>{let h=[],u=Tr[c.type];if(!u.build(c,h))return;let f=a.length,m=n.length/2,g="triangle-list";if(l&&Zh(h,l),t){let v=c.closePath??!0,w=e;w.pixelLine?(x_(h,v,n,a),g="line-list"):ts(h,w,!1,v,n,a)}else if(d){let v=[],w=h.slice();B5(d).forEach(T=>{v.push(w.length/2),w.push(...T)}),pc(w,v,n,2,m,a,f)}else u.triangulate(h,n,2,m,a,f);let x=o.length/2,b=e.texture;if(b!==U.WHITE){let v=mc(R5,e,c,l);h_(n,2,m,o,x,2,n.length/2-m,v)}else u_(o,x,2,n.length/2-m);let y=ye.get(ni);y.indexOffset=f,y.indexSize=a.length-f,y.attributeOffset=m,y.attributeSize=n.length/2-m,y.baseColor=e.color,y.alpha=e.alpha,y.texture=b,y.geometryData=s,y.topology=g,r.push(y)})}function B5(i){let e=[];for(let t=0;t<i.length;t++){let r=i[t].shape,s=[];Tr[r.type].build(r,s)&&e.push(s)}return e}var Tr,A5,R5,gc=p(()=>{P();ce();Ve();f_();p_();ge();Zt();Qh();b_();fc();__();v_();S_();E_();eu();Jh();Tr={};H.handleByMap(_.ShapeBuilder,Tr);H.add(w_,y_,T_,rs,m_,g_);A5=new Q,R5=new k});function D5(i,e,t){i.beginPath();for(let r=0;r<t.length;r+=3){let s=t[r]*2,n=t[r+1]*2,o=t[r+2]*2;i.moveTo(e[s],e[s+1]),i.lineTo(e[n],e[n+1]),i.lineTo(e[o],e[o+1]),i.closePath()}i.fill()}function L5(i){return`#${(i&16777215).toString(16).padStart(6,"0")}`}function O5(i,e,t,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(e+n,t),i.lineTo(e+r-n,t),i.quadraticCurveTo(e+r,t,e+r,t+n),i.lineTo(e+r,t+s-n),i.quadraticCurveTo(e+r,t+s,e+r-n,t+s),i.lineTo(e+n,t+s),i.quadraticCurveTo(e,t+s,e,t+s-n),i.lineTo(e,t+n),i.quadraticCurveTo(e,t,e+n,t)}function xc(i,e){switch(e.type){case"rectangle":{let t=e;i.rect(t.x,t.y,t.width,t.height);break}case"roundedRectangle":{let t=e;O5(i,t.x,t.y,t.width,t.height,t.radius);break}case"circle":{let t=e;i.arc(t.x,t.y,t.radius,0,Math.PI*2);break}case"ellipse":{let t=e;i.ellipse?i.ellipse(t.x,t.y,t.halfWidth,t.halfHeight,0,0,Math.PI*2):(i.save(),i.translate(t.x,t.y),i.scale(t.halfWidth,t.halfHeight),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let t=e;i.moveTo(t.x,t.y),i.lineTo(t.x2,t.y2),i.lineTo(t.x3,t.y3),i.closePath();break}case"polygon":default:{let t=e,r=t.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]);t.closePath&&i.closePath();break}}}function N5(i,e){if(!e?.length)return!1;for(let t=0;t<e.length;t++){let r=e[t];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)),xc(i,r.shape),n&&i.restore()}return!0}function H5(i,e,t,r){let s=i.fill;if(s instanceof Ze){s.buildGradient();let o=s.texture;if(o){let a=q.getTintedPattern(o,e),c=t?tu.copyFrom(t).scale(o.source.pixelWidth,o.source.pixelHeight):tu.copyFrom(s.transform);return r&&!i.textureSpace&&c.append(r),q.applyPatternTransform(a,c),a}}if(s instanceof Ft){let o=q.getTintedPattern(s.texture,e);return q.applyPatternTransform(o,s.transform,!1),o}let n=i.texture;if(n&&n!==U.WHITE){if(!n.source.resource)return I5;let o=q.getTintedPattern(n,e),a=i.matrix;if(t){let{resolution:c}=n.source;if(a=tu.copyFrom(t),n.rotate){let{uvs:l,orig:d}=n;a.prepend(U5.set(l.x1-l.x0,l.y1-l.y0,l.x3-l.x0,l.y3-l.y0,l.x0,l.y0).invert()).scale(d.width*c,d.height*c)}else a.scale(n.source.pixelWidth,n.source.pixelHeight).translate(-n.frame.x*c,-n.frame.y*c)}return q.applyPatternTransform(o,a),o}return L5(e)}var I5,bc,G5,F5,tu,U5,Xn,M_=p(()=>{P();vs();ce();ki();ge();Go();_s();fc();si();jn();gc();eu();I5="#808080",bc=new k,G5=new k,F5=new k,tu=new k,U5=new k;Xn=class{constructor(){this.shader=null}contextChange(e){}execute(e,t){let r=e.renderer,s=r.canvasContext,n=s.activeContext,o=t.groupTransform,a=r.globalUniforms.globalUniformData?.worldColor??4294967295,c=t.groupColorAlpha,l=(a>>>24&255)/255,d=(c>>>24&255)/255,h=r.filter?.alphaMultiplier??1,u=l*d*h;if(u<=0)return;let f=a&16777215,m=c&16777215,g=Jt(Lt(m,f)),x=r._roundPixels|t._roundPixels;n.save(),s.setContextTransform(o,x===1),s.setBlendMode(t.groupBlendMode);let b=t.context.instructions;for(let y=0;y<b.length;y++){let v=b[y];if(v.action==="texture"){let E=v.data,A=E.image,L=A?q.getCanvasSource(A):null;if(!L)continue;let W=E.alpha*u;if(W<=0)continue;let ee=Lt(E.style,g);n.globalAlpha=W;let G=L;ee!==16777215&&(G=q.getTintedCanvas({texture:A},ee));let D=A.frame,j=A.source._resolution??A.source.resolution??1,F=D.x*j,te=D.y*j,de=D.width*j,we=D.height*j;G!==L&&(F=0,te=0);let se=E.transform,ue=se&&!se.isIdentity(),$=A.rotate;ue||$?(bc.copyFrom(o),ue&&bc.append(se),$&&ie.matrixAppendRotationInv(bc,$,E.dx,E.dy,E.dw,E.dh),s.setContextTransform(bc,x===1)):s.setContextTransform(o,x===1),n.drawImage(G,F,te,G===L?de:G.width,G===L?we:G.height,$?0:E.dx,$?0:E.dy,E.dw,E.dh),(ue||$)&&s.setContextTransform(o,x===1);continue}let w=v.data,S=w?.path?.shapePath;if(!S?.shapePrimitives?.length)continue;let T=w.style,C=Lt(T.color,g),B=T.alpha*u;if(B<=0)continue;let R=v.action==="stroke";if(n.globalAlpha=B,R){let E=T;n.lineWidth=E.width,n.lineCap=E.cap,n.lineJoin=E.join,n.miterLimit=E.miterLimit}let M=S.shapePrimitives;if(!R&&w.hole?.shapePath?.shapePrimitives?.length){let E=M[M.length-1];E.holes=w.hole.shapePath.shapePrimitives}for(let E=0;E<M.length;E++){let A=M[E];if(!A?.shape)continue;let L=A.transform,W=L&&!L.isIdentity(),ee=T.texture&&T.texture!==U.WHITE,G=T.textureSpace==="global"?L:null,D=ee?mc(G5,T,A.shape,G):null,j=W?F5.copyFrom(o).append(L):o,F=H5(T,C,D,j);if(W&&(n.save(),n.transform(L.a,L.b,L.c,L.d,L.tx,L.ty)),R){let te=T;if(te.alignment!==.5&&!te.pixelLine){let we=[],se=[],ue=[];if(Tr[A.shape.type]?.build(A.shape,we)){let dt=A.shape.closePath??!0;ts(we,te,!1,dt,se,ue),n.fillStyle=F,D5(n,se,ue)}else n.strokeStyle=F,n.beginPath(),xc(n,A.shape),n.stroke()}else n.strokeStyle=F,n.beginPath(),xc(n,A.shape),n.stroke()}else n.fillStyle=F,n.beginPath(),xc(n,A.shape),N5(n,A.holes)?n.fill("evenodd"):n.fill();W&&n.restore()}}n.restore()}destroy(){this.shader=null}};Xn.extension={type:[_.CanvasPipesAdaptor],name:"graphics"}});var ru,A_,R_=p(()=>{P();vs();ce();Go();_s();ki();ru=class oi{static _getPatternRepeat(e,t){let r=e&&e!=="clamp-to-edge",s=t&&t!=="clamp-to-edge";return r&&s?"repeat":r?"repeat-x":s?"repeat-y":"no-repeat"}start(e,t,r){}execute(e,t){let r=t.elements;if(!r||!r.length)return;let s=e.renderer,n=s.canvasContext,o=n.activeContext;for(let a=0;a<r.length;a++){let c=r[a];if(!c.packAsQuad)continue;let l=c,d=l.texture,h=d?q.getCanvasSource(d):null;if(!h)continue;let u=d.source.style,f=n.smoothProperty,m=u.scaleMode!=="nearest";o[f]!==m&&(o[f]=m),n.setBlendMode(t.blendMode);let g=s.globalUniforms.globalUniformData?.worldColor??4294967295,x=l.color,b=(g>>>24&255)/255,y=(x>>>24&255)/255,v=s.filter?.alphaMultiplier??1,w=b*y*v;if(w<=0)continue;o.globalAlpha=w;let S=g&16777215,T=x&16777215,C=Jt(Lt(T,S)),B=d.frame,R=u.addressModeU??u.addressMode,M=u.addressModeV??u.addressMode,E=oi._getPatternRepeat(R,M),A=d.source._resolution??d.source.resolution??1,L=l.renderable?.renderGroup?.isCachedAsTexture,W=B.x*A,ee=B.y*A,G=B.width*A,D=B.height*A,j=l.bounds,F=s.renderTarget.renderTarget.isRoot,te=j.minX,de=j.minY,we=j.maxX-j.minX,se=j.maxY-j.minY,ue=d.rotate,$=d.uvs,dt=Math.min($.x0,$.x1,$.x2,$.x3,$.y0,$.y1,$.y2,$.y3),ui=Math.max($.x0,$.x1,$.x2,$.x3,$.y0,$.y1,$.y2,$.y3),Cr=E!=="no-repeat"&&(dt<0||ui>1),Et=ue&&!(!Cr&&(C!==16777215||ue));Et?(oi._tempPatternMatrix.copyFrom(l.transform),ie.matrixAppendRotationInv(oi._tempPatternMatrix,ue,te,de,we,se),n.setContextTransform(oi._tempPatternMatrix,l.roundPixels===1,void 0,L&&F)):n.setContextTransform(l.transform,l.roundPixels===1,void 0,L&&F);let ht=we,ut=se,Qe=Et?0:te,I=Et?0:de;if(!Et&&l.roundPixels===1&&(Qe|=0,I|=0),Cr){let K=h,ne=C!==16777215&&!ue,ke=B.width<=d.source.width&&B.height<=d.source.height;ne&&ke&&(K=q.getTintedCanvas({texture:d},C));let We=o.createPattern(K,E);if(!We)continue;let fi=ht,bt=ut;if(fi===0||bt===0)continue;let pi=1/fi,Dt=1/bt,mi=($.x1-$.x0)*pi,vo=($.y1-$.y0)*pi,fs=($.x3-$.x0)*Dt,dr=($.y3-$.y0)*Dt,gi=$.x0-mi*Qe-fs*I,wo=$.y0-vo*Qe-dr*I,bi=d.source.pixelWidth,xi=d.source.pixelHeight;oi._tempPatternMatrix.set(mi*bi,vo*xi,fs*bi,dr*xi,gi*bi,wo*xi),q.applyPatternTransform(We,oi._tempPatternMatrix),o.fillStyle=We,o.fillRect(Qe,I,ht,ut)}else{let ne=C!==16777215||ue?q.getTintedCanvas({texture:d},C):h,ke=ne!==h;o.drawImage(ne,ke?0:W,ke?0:ee,ke?ne.width:G,ke?ne.height:D,Qe,I,ht,ut)}}}};ru._tempPatternMatrix=new k;ru.extension={type:[_.CanvasPipesAdaptor],name:"batch"};A_=ru});var Yn,k_=p(()=>{P();Yn=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,r){this._renderer.renderPipes.batch.break(r);let s=this._colorStack;s[this._colorStackIndex]=s[this._colorStackIndex-1]&e.mask;let n=this._colorStack[this._colorStackIndex];n!==this._currentColor&&(this._currentColor=n,r.add({renderPipeId:"colorMask",colorMask:n,canBundle:!1})),this._colorStackIndex++}pop(e,t,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(e){}destroy(){this._renderer=null,this._colorStack=null}};Yn.extension={type:[_.CanvasPipes],name:"colorMask"}});function B_(i){let e=[];return i.replace(z5,(t,r,s)=>{let n=r.toLowerCase(),o=r,a=V5(s);for(n==="m"&&a.length>2&&(e.push([o,...a.splice(0,2)]),n="l",o=o==="m"?"l":"L");;){if(a.length===iu[n])return e.push([o,...a]),"";if(a.length<iu[n])throw new Error("malformed path data");e.push([o,...a.splice(0,iu[n])])}}),e}function V5(i){let e=i.match(W5);return e?e.map(Number):[]}var iu,z5,W5,I_=p(()=>{iu={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},z5=/([astvzqmhlc])([^astvzqmhlc]*)/gi,W5=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/gi});function G_(i,e){let t=B_(i),r=[],s=null,n=0,o=0;for(let a=0;a<t.length;a++){let c=t[a],l=c[0],d=c;switch(l){case"M":n=d[1],o=d[2],e.moveTo(n,o);break;case"m":n+=d[1],o+=d[2],e.moveTo(n,o);break;case"H":n=d[1],e.lineTo(n,o);break;case"h":n+=d[1],e.lineTo(n,o);break;case"V":o=d[1],e.lineTo(n,o);break;case"v":o+=d[1],e.lineTo(n,o);break;case"L":n=d[1],o=d[2],e.lineTo(n,o);break;case"l":n+=d[1],o+=d[2],e.lineTo(n,o);break;case"C":n=d[5],o=d[6],e.bezierCurveTo(d[1],d[2],d[3],d[4],n,o);break;case"c":e.bezierCurveTo(n+d[1],o+d[2],n+d[3],o+d[4],n+d[5],o+d[6]),n+=d[5],o+=d[6];break;case"S":n=d[3],o=d[4],e.bezierCurveToShort(d[1],d[2],n,o);break;case"s":e.bezierCurveToShort(n+d[1],o+d[2],n+d[3],o+d[4]),n+=d[3],o+=d[4];break;case"Q":n=d[3],o=d[4],e.quadraticCurveTo(d[1],d[2],n,o);break;case"q":e.quadraticCurveTo(n+d[1],o+d[2],n+d[3],o+d[4]),n+=d[3],o+=d[4];break;case"T":n=d[1],o=d[2],e.quadraticCurveToShort(n,o);break;case"t":n+=d[1],o+=d[2],e.quadraticCurveToShort(n,o);break;case"A":n=d[6],o=d[7],e.arcToSvg(d[1],d[2],d[3],d[4],d[5],n,o);break;case"a":n+=d[6],o+=d[7],e.arcToSvg(d[1],d[2],d[3],d[4],d[5],n,o);break;case"Z":case"z":e.closePath(),r.length>0&&(s=r.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:O(`Unknown SVG path command: ${l}`)}l!=="Z"&&l!=="z"&&s===null&&(s={startX:n,startY:o},r.push(s))}return e}var F_=p(()=>{I_();he()});var su,nu,au,is,_c=p(()=>{P();Sa();th();Uo();Gt();_e();Zt();gc();su=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}reset(){this.batches&&this.batches.forEach(e=>{ye.return(e)}),this.graphicsData&&ye.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}},nu=class{constructor(){this.instructions=new hr}init(e){let t=e.maxTextures;this.batcher?this.batcher._updateMaxTextures(t):this.batcher=new dn({maxTextures:t}),this.instructions.reset()}get geometry(){return N(Ff,"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}},au=class ou{constructor(e){this._renderer=e,this._managedContexts=new Re({renderer:e,type:"resource",name:"graphicsContext"})}init(e){ou.defaultOptions.bezierSmoothness=e?.bezierSmoothness??ou.defaultOptions.bezierSmoothness}getContextRenderData(e){return e._gpuData[this._renderer.uid].graphicsData||this._initContextRenderData(e)}updateGpuContext(e){let t=!!e._gpuData[this._renderer.uid],r=e._gpuData[this._renderer.uid]||this._initContext(e);if(e.dirty||!t){t&&r.reset(),P_(e,r);let s=e.batchMode;e.customShader||s==="no-batch"?r.isBatchable=!1:s==="auto"?r.isBatchable=r.geometryData.vertices.length<400:r.isBatchable=!0,e.dirty=!1}return r}getGpuContext(e){return e._gpuData[this._renderer.uid]||this._initContext(e)}_initContextRenderData(e){let t=ye.get(nu,{maxTextures:this._renderer.limits.maxBatchableTextures}),r=e._gpuData[this._renderer.uid],{batches:s,geometryData:n}=r;r.graphicsData=t;let o=n.vertices.length,a=n.indices.length;for(let h=0;h<s.length;h++)s[h].applyTransform=!1;let c=t.batcher;c.ensureAttributeBuffer(o),c.ensureIndexBuffer(a),c.begin();for(let h=0;h<s.length;h++){let u=s[h];c.add(u)}c.finish(t.instructions);let l=c.geometry;l.indexBuffer.setDataWithSize(c.indexBuffer,c.indexSize,!0),l.buffers[0].setDataWithSize(c.attributeBuffer.float32View,c.attributeSize,!0);let d=c.batches;for(let h=0;h<d.length;h++){let u=d[h];u.bindGroup=Li(u.textures.textures,u.textures.count,this._renderer.limits.maxBatchableTextures)}return t}_initContext(e){let t=new su;return t.context=e,e._gpuData[this._renderer.uid]=t,this._managedContexts.add(e),t}destroy(){this._managedContexts.destroy(),this._renderer=null}};au.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"graphicsContext"};au.defaultOptions={bezierSmoothness:.5};is=au});function vc(i,e,t,r,s,n,o,a,c,l){let h=Math.min(.99,Math.max(0,l??is.defaultOptions.bezierSmoothness)),u=(X5-h)/1;return u*=u,Y5(e,t,r,s,n,o,a,c,i,u),i}function Y5(i,e,t,r,s,n,o,a,c,l){lu(i,e,t,r,s,n,o,a,c,l,0),c.push(o,a)}function lu(i,e,t,r,s,n,o,a,c,l,d){if(d>j5)return;let h=Math.PI,u=(i+t)/2,f=(e+r)/2,m=(t+s)/2,g=(r+n)/2,x=(s+o)/2,b=(n+a)/2,y=(u+m)/2,v=(f+g)/2,w=(m+x)/2,S=(g+b)/2,T=(y+w)/2,C=(v+S)/2;if(d>0){let B=o-i,R=a-e,M=Math.abs((t-o)*R-(r-a)*B),E=Math.abs((s-o)*R-(n-a)*B),A,L;if(M>yc&&E>yc){if((M+E)*(M+E)<=l*(B*B+R*R)){if(ss<cu){c.push(T,C);return}let W=Math.atan2(n-r,s-t);if(A=Math.abs(W-Math.atan2(r-e,t-i)),L=Math.abs(Math.atan2(a-n,o-s)-W),A>=h&&(A=2*h-A),L>=h&&(L=2*h-L),A+L<ss){c.push(T,C);return}if(ai!==0){if(A>ai){c.push(t,r);return}if(L>ai){c.push(s,n);return}}}}else if(M>yc){if(M*M<=l*(B*B+R*R)){if(ss<cu){c.push(T,C);return}if(A=Math.abs(Math.atan2(n-r,s-t)-Math.atan2(r-e,t-i)),A>=h&&(A=2*h-A),A<ss){c.push(t,r),c.push(s,n);return}if(ai!==0&&A>ai){c.push(t,r);return}}}else if(E>yc){if(E*E<=l*(B*B+R*R)){if(ss<cu){c.push(T,C);return}if(A=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-r,s-t)),A>=h&&(A=2*h-A),A<ss){c.push(t,r),c.push(s,n);return}if(ai!==0&&A>ai){c.push(s,n);return}}}else if(B=T-(i+o)/2,R=C-(e+a)/2,B*B+R*R<=l){c.push(T,C);return}}lu(i,e,u,f,y,v,T,C,c,l,d+1),lu(T,C,w,S,x,b,o,a,c,l,d+1)}var j5,yc,X5,cu,ss,ai,du=p(()=>{_c();j5=8,yc=11920929e-14,X5=1,cu=.01,ss=0,ai=0});function D_(i,e,t,r,s,n,o,a){let l=Math.min(.99,Math.max(0,a??is.defaultOptions.bezierSmoothness)),d=(K5-l)/1;return d*=d,Q5(e,t,r,s,n,o,i,d),i}function Q5(i,e,t,r,s,n,o,a){hu(o,i,e,t,r,s,n,a,0),o.push(s,n)}function hu(i,e,t,r,s,n,o,a,c){if(c>$5)return;let l=Math.PI,d=(e+r)/2,h=(t+s)/2,u=(r+n)/2,f=(s+o)/2,m=(d+u)/2,g=(h+f)/2,x=n-e,b=o-t,y=Math.abs((r-n)*b-(s-o)*x);if(y>q5){if(y*y<=a*(x*x+b*b)){if(U_<Z5){i.push(m,g);return}let v=Math.abs(Math.atan2(o-s,n-r)-Math.atan2(s-t,r-e));if(v>=l&&(v=2*l-v),v<U_){i.push(m,g);return}}}else if(x=m-(e+n)/2,b=g-(t+o)/2,x*x+b*b<=a){i.push(m,g);return}hu(i,e,t,d,h,m,g,a,c+1),hu(i,m,g,u,f,n,o,a,c+1)}var $5,q5,K5,Z5,U_,L_=p(()=>{_c();$5=8,q5=11920929e-14,K5=1,Z5=.01,U_=0});function wc(i,e,t,r,s,n,o,a){let c=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(c=2*Math.PI-c),a||(a=Math.max(6,Math.floor(6*Math.pow(r,1/3)*(c/Math.PI)))),a=Math.max(a,3);let l=c/a,d=s;l*=o?-1:1;for(let h=0;h<a+1;h++){let u=Math.cos(d),f=Math.sin(d),m=e+u*r,g=t+f*r;i.push(m,g),d+=l}}var uu=p(()=>{"use strict"});function O_(i,e,t,r,s,n){let o=i[i.length-2],c=i[i.length-1]-t,l=o-e,d=s-t,h=r-e,u=Math.abs(c*h-l*d);if(u<1e-8||n===0){(i[i.length-2]!==e||i[i.length-1]!==t)&&i.push(e,t);return}let f=c*c+l*l,m=d*d+h*h,g=c*d+l*h,x=n*Math.sqrt(f)/u,b=n*Math.sqrt(m)/u,y=x*g/f,v=b*g/m,w=x*h+b*l,S=x*d+b*c,T=l*(b+y),C=c*(b+y),B=h*(x+v),R=d*(x+v),M=Math.atan2(C-S,T-w),E=Math.atan2(R-S,B-w);wc(i,w+e,S+t,n,M,E,l*d>h*c)}var N_=p(()=>{uu()});function J5(i,e){let t=e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),r=e===1.5707963267948966?.551915024494:t,s=Math.cos(i),n=Math.sin(i),o=Math.cos(i+e),a=Math.sin(i+e);return[{x:s-n*r,y:n+s*r},{x:o+a*r,y:a-o*r},{x:o,y:a}]}function z_(i,e,t,r,s,n,o,a=0,c=0,l=0){if(n===0||o===0)return;let d=Math.sin(a*$n/360),h=Math.cos(a*$n/360),u=h*(e-r)/2+d*(t-s)/2,f=-d*(e-r)/2+h*(t-s)/2;if(u===0&&f===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(u,2)/Math.pow(n,2)+Math.pow(f,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),e6(e,t,r,s,n,o,c,l,d,h,u,f,fu);let{ang1:g,ang2:x}=fu,{centerX:b,centerY:y}=fu,v=Math.abs(x)/($n/4);Math.abs(1-v)<1e-7&&(v=1);let w=Math.max(Math.ceil(v),1);x/=w;let S=i[i.length-2],T=i[i.length-1],C={x:0,y:0};for(let B=0;B<w;B++){let R=J5(g,x),{x:M,y:E}=pu(R[0],n,o,h,d,b,y,C),{x:A,y:L}=pu(R[1],n,o,h,d,b,y,C),{x:W,y:ee}=pu(R[2],n,o,h,d,b,y,C);vc(i,S,T,M,E,A,L,W,ee),S=W,T=ee,g+=x}}var $n,fu,pu,H_,e6,W_=p(()=>{du();$n=Math.PI*2,fu={centerX:0,centerY:0,ang1:0,ang2:0},pu=({x:i,y:e},t,r,s,n,o,a,c)=>{i*=t,e*=r;let l=s*i-n*e,d=n*i+s*e;return c.x=l+o,c.y=d+a,c};H_=(i,e,t,r)=>{let s=i*r-e*t<0?-1:1,n=i*t+e*r;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},e6=(i,e,t,r,s,n,o,a,c,l,d,h,u)=>{let f=Math.pow(s,2),m=Math.pow(n,2),g=Math.pow(d,2),x=Math.pow(h,2),b=f*m-f*x-m*g;b<0&&(b=0),b/=f*x+m*g,b=Math.sqrt(b)*(o===a?-1:1);let y=b*s/n*h,v=b*-n/s*d,w=l*y-c*v+(i+t)/2,S=c*y+l*v+(e+r)/2,T=(d-y)/s,C=(h-v)/n,B=(-d-y)/s,R=(-h-v)/n,M=H_(1,0,T,C),E=H_(T,C,B,R);a===0&&E>0&&(E-=$n),a===1&&E<0&&(E+=$n),u.centerX=w,u.centerY=S,u.ang1=M,u.ang2=E}});function V_(i,e,t){let r=(o,a)=>{let c=a.x-o.x,l=a.y-o.y,d=Math.sqrt(c*c+l*l),h=c/d,u=l/d;return{len:d,nx:h,ny:u}},s=(o,a)=>{o===0?i.moveTo(a.x,a.y):i.lineTo(a.x,a.y)},n=e[e.length-1];for(let o=0;o<e.length;o++){let a=e[o%e.length],c=a.radius??t;if(c<=0){s(o,a),n=a;continue}let l=e[(o+1)%e.length],d=r(a,n),h=r(a,l);if(d.len<1e-4||h.len<1e-4){s(o,a),n=a;continue}let u=Math.asin(d.nx*h.ny-d.ny*h.nx),f=1,m=!1;d.nx*h.nx-d.ny*-h.ny<0?u<0?u=Math.PI+u:(u=Math.PI-u,f=-1,m=!0):u>0&&(f=-1,m=!0);let g=u/2,x,b=Math.abs(Math.cos(g)*c/Math.sin(g));b>Math.min(d.len/2,h.len/2)?(b=Math.min(d.len/2,h.len/2),x=Math.abs(b*Math.sin(g)/Math.cos(g))):x=c;let y=a.x+h.nx*b+-h.ny*x*f,v=a.y+h.ny*b+h.nx*x*f,w=Math.atan2(d.ny,d.nx)+Math.PI/2*f,S=Math.atan2(h.ny,h.nx)-Math.PI/2*f;o===0&&i.moveTo(y+Math.cos(w)*x,v+Math.sin(w)*x),i.arc(y,v,x,w,S,m),n=a}}function j_(i,e,t,r){let s=(a,c)=>Math.sqrt((a.x-c.x)**2+(a.y-c.y)**2),n=(a,c,l)=>({x:a.x+(c.x-a.x)*l,y:a.y+(c.y-a.y)*l}),o=e.length;for(let a=0;a<o;a++){let c=e[(a+1)%o],l=c.radius??t;if(l<=0){a===0?i.moveTo(c.x,c.y):i.lineTo(c.x,c.y);continue}let d=e[a],h=e[(a+2)%o],u=s(d,c),f;if(u<1e-4)f=c;else{let x=Math.min(u/2,l);f=n(c,d,x/u)}let m=s(h,c),g;if(m<1e-4)g=c;else{let x=Math.min(m/2,l);g=n(c,h,x/m)}a===0?i.moveTo(f.x,f.y):i.lineTo(f.x,f.y),i.quadraticCurveTo(c.x,c.y,g.x,g.y,r)}}var X_=p(()=>{"use strict"});var t6,Sc,Y_=p(()=>{R0();k0();B0();Ve();I0();et();du();L_();uu();N_();W_();X_();t6=new Q,Sc=class{constructor(e){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new pe,this._graphicsPath2D=e,this.signed=e.checkForHoles}moveTo(e,t){return this.startPoly(e,t),this}lineTo(e,t){this._ensurePoly();let r=this._currentPoly.points,s=r[r.length-2],n=r[r.length-1];return(s!==e||n!==t)&&r.push(e,t),this}arc(e,t,r,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return wc(a,e,t,r,s,n,o),this}arcTo(e,t,r,s,n){this._ensurePoly();let o=this._currentPoly.points;return O_(o,e,t,r,s,n),this}arcToSvg(e,t,r,s,n,o,a){let c=this._currentPoly.points;return z_(c,this._currentPoly.lastX,this._currentPoly.lastY,o,a,e,t,r,s,n),this}bezierCurveTo(e,t,r,s,n,o,a){this._ensurePoly();let c=this._currentPoly;return vc(this._currentPoly.points,c.lastX,c.lastY,e,t,r,s,n,o,a),this}quadraticCurveTo(e,t,r,s,n){this._ensurePoly();let o=this._currentPoly;return D_(this._currentPoly.points,o.lastX,o.lastY,e,t,r,s,n),this}closePath(){return this.endPoly(!0),this}addPath(e,t){this.endPoly(),t&&!t.isIdentity()&&(e=e.clone(!0),e.transform(t));let r=this.shapePrimitives,s=r.length;for(let n=0;n<e.instructions.length;n++){let o=e.instructions[n];this[o.action](...o.data)}if(e.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 c=a.shape,l=n?.shape;l&&l.containsPolygon(c)?(n.holes||(n.holes=[]),n.holes.push(a),r.copyWithin(o,o+1),r.length--,o--):n=a}}}return this}finish(e=!1){this.endPoly(e)}rect(e,t,r,s,n){return this.drawShape(new Q(e,t,r,s),n),this}circle(e,t,r,s){return this.drawShape(new ia(e,t,r),s),this}poly(e,t,r){let s=new Bi(e);return s.closePath=t,this.drawShape(s,r),this}regularPoly(e,t,r,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,c=Math.PI*2/s,l=[];for(let d=0;d<s;d++){let h=a-d*c;l.push(e+r*Math.cos(h),t+r*Math.sin(h))}return this.poly(l,!0,o),this}roundPoly(e,t,r,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(e,t,r,s,o);let c=r*Math.sin(Math.PI/s)-.001;n=Math.min(n,c);let l=-1*Math.PI/2+o,d=Math.PI*2/s,h=(s-2)*Math.PI/s/2;for(let u=0;u<s;u++){let f=u*d+l,m=e+r*Math.cos(f),g=t+r*Math.sin(f),x=f+Math.PI+h,b=f-Math.PI-h,y=m+n*Math.cos(x),v=g+n*Math.sin(x),w=m+n*Math.cos(b),S=g+n*Math.sin(b);u===0?this.moveTo(y,v):this.lineTo(y,v),this.quadraticCurveTo(m,g,w,S,a)}return this.closePath()}roundShape(e,t,r=!1,s){return e.length<3?this:(r?j_(this,e,t,s):V_(this,e,t),this.closePath())}filletRect(e,t,r,s,n){if(n===0)return this.rect(e,t,r,s);let o=Math.min(r,s)/2,a=Math.min(o,Math.max(-o,n)),c=e+r,l=t+s,d=a<0?-a:0,h=Math.abs(a);return this.moveTo(e,t+h).arcTo(e+d,t+d,e+h,t,h).lineTo(c-h,t).arcTo(c-d,t+d,c,t+h,h).lineTo(c,l-h).arcTo(c-d,l-d,e+r-h,l,h).lineTo(e+h,l).arcTo(e+d,l-d,e,l-h,h).closePath()}chamferRect(e,t,r,s,n,o){if(n<=0)return this.rect(e,t,r,s);let a=Math.min(n,Math.min(r,s)/2),c=e+r,l=t+s,d=[e+a,t,c-a,t,c,t+a,c,l-a,c-a,l,e+a,l,e,l-a,e,t+a];for(let h=d.length-1;h>=2;h-=2)d[h]===d[h-2]&&d[h-1]===d[h-3]&&d.splice(h-1,2);return this.poly(d,!0,o)}ellipse(e,t,r,s,n){return this.drawShape(new sa(e,t,r,s),n),this}roundRect(e,t,r,s,n,o){return this.drawShape(new oa(e,t,r,s,n),o),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let r=this._currentPoly;return r&&this.endPoly(),r=new Bi,r.points.push(e,t),this._currentPoly=r,this}endPoly(e=!1){let t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new Bi,e)){let t=this.shapePrimitives[this.shapePrimitives.length-1];if(t){let r=t.shape.x,s=t.shape.y;if(t.transform&&!t.transform.isIdentity()){let n=t.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 e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t<e.instructions.length;t++){let r=e.instructions[t];this[r.action](...r.data)}this.finish()}get bounds(){let e=this._bounds;e.clear();let t=this.shapePrimitives;for(let r=0;r<t.length;r++){let s=t[r],n=s.shape.getBounds(t6);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function ns(i,e){return i?i.prepend(e):e.clone()}var Tt,Tc=p(()=>{Pt();Ie();he();F_();Y_();Tt=class i{constructor(e,t=!1){this.instructions=[],this.uid=Y("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?G_(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new Sc(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(e,t){return e=e.clone(),this.instructions.push({action:"addPath",data:[e,t]}),this._dirty=!0,this}arc(...e){return this.instructions.push({action:"arc",data:e}),this._dirty=!0,this}arcTo(...e){return this.instructions.push({action:"arcTo",data:e}),this._dirty=!0,this}arcToSvg(...e){return this.instructions.push({action:"arcToSvg",data:e}),this._dirty=!0,this}bezierCurveTo(...e){return this.instructions.push({action:"bezierCurveTo",data:e}),this._dirty=!0,this}bezierCurveToShort(e,t,r,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(ae.shared),c=0,l=0;if(!o||o.action!=="bezierCurveTo")c=a.x,l=a.y;else{c=o.data[2],l=o.data[3];let d=a.x,h=a.y;c=d+(d-c),l=h+(h-l)}return this.instructions.push({action:"bezierCurveTo",data:[c,l,e,t,r,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...e){return this.instructions.push({action:"ellipse",data:e}),this._dirty=!0,this}lineTo(...e){return this.instructions.push({action:"lineTo",data:e}),this._dirty=!0,this}moveTo(...e){return this.instructions.push({action:"moveTo",data:e}),this}quadraticCurveTo(...e){return this.instructions.push({action:"quadraticCurveTo",data:e}),this._dirty=!0,this}quadraticCurveToShort(e,t,r){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(ae.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 c=n.x,l=n.y;o=c+(c-o),a=l+(l-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,e,t,r]}),this._dirty=!0,this}rect(e,t,r,s,n){return this.instructions.push({action:"rect",data:[e,t,r,s,n]}),this._dirty=!0,this}circle(e,t,r,s){return this.instructions.push({action:"circle",data:[e,t,r,s]}),this._dirty=!0,this}roundRect(...e){return this.instructions.push({action:"roundRect",data:e}),this._dirty=!0,this}poly(...e){return this.instructions.push({action:"poly",data:e}),this._dirty=!0,this}regularPoly(...e){return this.instructions.push({action:"regularPoly",data:e}),this._dirty=!0,this}roundPoly(...e){return this.instructions.push({action:"roundPoly",data:e}),this._dirty=!0,this}roundShape(...e){return this.instructions.push({action:"roundShape",data:e}),this._dirty=!0,this}filletRect(...e){return this.instructions.push({action:"filletRect",data:e}),this._dirty=!0,this}chamferRect(...e){return this.instructions.push({action:"chamferRect",data:e}),this._dirty=!0,this}star(e,t,r,s,n,o,a){n||(n=s/2);let c=-1*Math.PI/2+o,l=r*2,d=Math.PI*2/l,h=[];for(let u=0;u<l;u++){let f=u%2?n:s,m=u*d+c;h.push(e+f*Math.cos(m),t+f*Math.sin(m))}return this.poly(h,!0,a),this}clone(e=!1){let t=new i;if(t.checkForHoles=this.checkForHoles,!e)t.instructions=this.instructions.slice();else for(let r=0;r<this.instructions.length;r++){let s=this.instructions[r];t.instructions.push({action:s.action,data:s.data.slice()})}return t}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(e){if(e.isIdentity())return this;let t=e.a,r=e.b,s=e.c,n=e.d,o=e.tx,a=e.ty,c=0,l=0,d=0,h=0,u=0,f=0,m=0,g=0;for(let x=0;x<this.instructions.length;x++){let b=this.instructions[x],y=b.data;switch(b.action){case"moveTo":case"lineTo":c=y[0],l=y[1],y[0]=t*c+s*l+o,y[1]=r*c+n*l+a;break;case"bezierCurveTo":d=y[0],h=y[1],u=y[2],f=y[3],c=y[4],l=y[5],y[0]=t*d+s*h+o,y[1]=r*d+n*h+a,y[2]=t*u+s*f+o,y[3]=r*u+n*f+a,y[4]=t*c+s*l+o,y[5]=r*c+n*l+a;break;case"quadraticCurveTo":d=y[0],h=y[1],c=y[2],l=y[3],y[0]=t*d+s*h+o,y[1]=r*d+n*h+a,y[2]=t*c+s*l+o,y[3]=r*c+n*l+a;break;case"arcToSvg":c=y[5],l=y[6],m=y[0],g=y[1],y[0]=t*m+s*g,y[1]=r*m+n*g,y[5]=t*c+s*l+o,y[6]=r*c+n*l+a;break;case"circle":y[4]=ns(y[3],e);break;case"rect":y[4]=ns(y[4],e);break;case"ellipse":y[8]=ns(y[8],e);break;case"roundRect":y[5]=ns(y[5],e);break;case"addPath":y[0].transform(e);break;case"poly":y[2]=ns(y[2],e);break;case"regularPoly":case"chamferRect":y[5]=ns(y[5],e);break;case"closePath":break;default:O("unknown transform action",b.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(e){let t=this.instructions.length-1,r=this.instructions[t];if(!r)return e.x=0,e.y=0,e;for(;r.action==="closePath";){if(t--,t<0)return e.x=0,e.y=0,e;r=this.instructions[t]}switch(r.action){case"moveTo":case"lineTo":e.x=r.data[0],e.y=r.data[1];break;case"quadraticCurveTo":e.x=r.data[2],e.y=r.data[3];break;case"bezierCurveTo":e.x=r.data[4],e.y=r.data[5];break;case"arc":case"arcToSvg":e.x=r.data[5],e.y=r.data[6];break;case"addPath":r.data[0].getLastPoint(e);break}return e}}});function Ce(i,e,t){let r=i.getAttribute(e);return r?Number(r):t}var mu=p(()=>{"use strict"});function $_(i,e){let t=i.querySelectorAll("defs");for(let r=0;r<t.length;r++){let s=t[r];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":e.defs[o.id]=r6(o);break;case"radialgradient":e.defs[o.id]=i6(o);break;default:break}}}}function r6(i){let e=Ce(i,"x1",0),t=Ce(i,"y1",0),r=Ce(i,"x2",1),s=Ce(i,"y2",0),n=i.getAttribute("gradientUnits")||"objectBoundingBox",o=new Ze(e,t,r,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<i.children.length;a++){let c=i.children[a],l=Ce(c,"offset",0),d=Z.shared.setValue(c.getAttribute("stop-color")).toNumber();o.addColorStop(l,d)}return o}function i6(i){return O("[SVG Parser] Radial gradients are not yet supported"),new Ze(0,0,1,0)}var q_=p(()=>{$e();he();si();mu()});function gu(i){let e=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var K_=p(()=>{"use strict"});function bu(i,e){let t=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in Z_){let a=i.getAttribute(o);a&&Q_(e,n,o,a.trim())}if(t){let o=t.split(";");for(let a=0;a<o.length;a++){let c=o[a].trim(),[l,d]=c.split(":");Z_[l]&&Q_(e,n,l,d.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function Q_(i,e,t,r){switch(t){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=gu(r);e.strokeStyle.fill=i.defs[s]}else e.strokeStyle.color=Z.shared.setValue(r).toNumber();e.useStroke=!0}break;case"stroke-width":e.strokeStyle.width=Number(r);break;case"fill":if(r!=="none"){if(r.startsWith("url(")){let s=gu(r);e.fillStyle.fill=i.defs[s]}else e.fillStyle.color=Z.shared.setValue(r).toNumber();e.useFill=!0}break;case"fill-opacity":e.fillStyle.alpha=Number(r);break;case"stroke-opacity":e.strokeStyle.alpha=Number(r);break;case"opacity":e.fillStyle.alpha=Number(r),e.strokeStyle.alpha=Number(r);break}}var Z_,J_=p(()=>{$e();K_();Z_={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 e2(i){if(i.length<=2)return!0;let e=i.map(a=>a.area).sort((a,c)=>c-a),[t,r]=e,s=e[e.length-1],n=t/r,o=r/s;return!(n>3&&o<2)}var t2=p(()=>{"use strict"});function r2(i){return i.split(/(?=[Mm])/).filter(r=>r.trim().length>0)}function i2(i){let e=i.match(/[-+]?[0-9]*\.?[0-9]+/g);if(!e||e.length<4)return 0;let t=e.map(Number),r=[],s=[];for(let d=0;d<t.length;d+=2)d+1<t.length&&(r.push(t[d]),s.push(t[d+1]));if(r.length===0||s.length===0)return 0;let n=Math.min(...r),o=Math.max(...r),a=Math.min(...s),c=Math.max(...s);return(o-n)*(c-a)}function xu(i,e){let t=new Tt(i,!1);for(let r of t.instructions)e.instructions.push(r)}var s2=p(()=>{Tc()});function n2(i,e){if(typeof i=="string"){let o=document.createElement("div");o.innerHTML=i.trim(),i=o.querySelector("svg")}let t={context:e,defs:{},path:new Tt};$_(i,t);let r=i.children,{fillStyle:s,strokeStyle:n}=bu(i,t);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&o2(a,t,s,n)}return e}function o2(i,e,t,r){let s=i.children,{fillStyle:n,strokeStyle:o}=bu(i,e);n&&t?t={...t,...n}:n&&(t=n),o&&r?r={...r,...o}:o&&(r=o);let a=!t&&!r;a&&(t={color:0});let c,l,d,h,u,f,m,g,x,b,y,v,w,S,T,C,B;switch(i.nodeName.toLowerCase()){case"path":{S=i.getAttribute("d");let R=i.getAttribute("fill-rule"),M=r2(S),E=R==="evenodd",A=M.length>1;if(E&&A){let W=M.map(G=>({path:G,area:i2(G)}));if(W.sort((G,D)=>D.area-G.area),M.length>3||!e2(W))for(let G=0;G<W.length;G++){let D=W[G],j=G===0;e.context.beginPath();let F=new Tt(void 0,!0);xu(D.path,F),e.context.path(F),j?(t&&e.context.fill(t),r&&e.context.stroke(r)):e.context.cut()}else for(let G=0;G<W.length;G++){let D=W[G],j=G%2===1;e.context.beginPath();let F=new Tt(void 0,!0);xu(D.path,F),e.context.path(F),j?e.context.cut():(t&&e.context.fill(t),r&&e.context.stroke(r))}}else{let W=R?R==="evenodd":!0;T=new Tt(S,W),e.context.path(T),t&&e.context.fill(t),r&&e.context.stroke(r)}break}case"circle":m=Ce(i,"cx",0),g=Ce(i,"cy",0),x=Ce(i,"r",0),e.context.ellipse(m,g,x,x),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"rect":c=Ce(i,"x",0),l=Ce(i,"y",0),C=Ce(i,"width",0),B=Ce(i,"height",0),b=Ce(i,"rx",0),y=Ce(i,"ry",0),b||y?e.context.roundRect(c,l,C,B,b||y):e.context.rect(c,l,C,B),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"ellipse":m=Ce(i,"cx",0),g=Ce(i,"cy",0),b=Ce(i,"rx",0),y=Ce(i,"ry",0),e.context.beginPath(),e.context.ellipse(m,g,b,y),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"line":d=Ce(i,"x1",0),h=Ce(i,"y1",0),u=Ce(i,"x2",0),f=Ce(i,"y2",0),e.context.beginPath(),e.context.moveTo(d,h),e.context.lineTo(u,f),r&&e.context.stroke(r);break;case"polygon":w=i.getAttribute("points"),v=w.match(/-?\d+/g).map(R=>parseInt(R,10)),e.context.poly(v,!0),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"polyline":w=i.getAttribute("points"),v=w.match(/-?\d+/g).map(R=>parseInt(R,10)),e.context.poly(v,!1),r&&e.context.stroke(r);break;case"g":case"svg":break;default:{O(`[SVG parser] <${i.nodeName}> elements unsupported`);break}}a&&(t=null);for(let R=0;R<s.length;R++)o2(s[R],e,t,r)}var a2=p(()=>{he();Tc();q_();mu();J_();t2();s2()});function s6(i){return Z.isColorLike(i)}function c2(i){return i instanceof Ft}function l2(i){return i instanceof Ze}function n6(i){return i instanceof U}function o6(i,e,t){let r=Z.shared.setValue(e??0);return i.color=r.toNumber(),i.alpha=r.alpha===1?t.alpha:r.alpha,i.texture=U.WHITE,{...t,...i}}function a6(i,e,t){return i.texture=e,{...t,...i}}function d2(i,e,t){return i.fill=e,i.color=16777215,i.texture=e.texture,i.matrix=e.transform,i.textureSpace=e.textureSpace,{...t,...i}}function h2(i,e,t){return e.buildGradient(),i.fill=e,i.color=16777215,i.texture=e.texture,i.matrix=e.transform,i.textureSpace=e.textureSpace,{...t,...i}}function c6(i,e){let t={...e,...i},r=Z.shared.setValue(t.color);return t.alpha*=r.alpha,t.color=r.toNumber(),t}function nr(i,e){if(i==null)return null;let t={},r=i;return s6(i)?o6(t,i,e):n6(i)?a6(t,i,e):c2(i)?d2(t,i,e):l2(i)?h2(t,i,e):r.fill&&c2(r.fill)?d2(r,r.fill,e):r.fill&&l2(r.fill)?h2(r,r.fill,e):c6(r,e)}function os(i,e){let{width:t,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,l=nr(i,c);return l?{width:t,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...l}:null}var _u=p(()=>{$e();ge();si();jn()});function u2(i,e){let t=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 c=n.closePath;for(let l=0;l<a;l+=2){if(!c&&(l===0||l===a-2))continue;let d=(l-2+a)%a,h=(l+2)%a,u=o[d],f=o[d+1],m=o[l],g=o[l+1],x=o[h],b=o[h+1],y=u-m,v=f-g,w=x-m,S=b-g,T=y*y+v*v,C=w*w+S*S;if(T<1e-12||C<1e-12)continue;let M=(y*w+v*S)/Math.sqrt(T*C);M<-1?M=-1:M>1&&(M=1);let E=Math.sqrt((1-M)*.5);if(E<1e-6)continue;let A=Math.min(1/E,e);A>t&&(t=A)}}return t}var f2=p(()=>{"use strict"});var l6,p2,yu,gt,vu=p(()=>{Ne();$e();ce();Pt();ge();Ie();_e();et();Tc();a2();_u();f2();l6=new ae,p2=new k,yu=class Xt extends fe{constructor(){super(...arguments),this._gpuData=Object.create(null),this.autoGarbageCollect=!0,this._gcLastUsed=-1,this.uid=Y("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this.destroyed=!1,this._activePath=new Tt,this._transform=new k,this._fillStyle={...Xt.defaultFillStyle},this._strokeStyle={...Xt.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new pe,this._boundsDirty=!0}clone(){let e=new Xt;return e.batchMode=this.batchMode,e.instructions=this.instructions.slice(),e._activePath=this._activePath.clone(),e._transform=this._transform.clone(),e._fillStyle={...this._fillStyle},e._strokeStyle={...this._strokeStyle},e._stateStack=this._stateStack.slice(),e._bounds=this._bounds.clone(),e._boundsDirty=!0,e}get fillStyle(){return this._fillStyle}set fillStyle(e){this._fillStyle=nr(e,Xt.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=os(e,Xt.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=nr(e,Xt.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=nr(e,Xt.defaultStrokeStyle),this}texture(e,t,r,s,n,o){return this.instructions.push({action:"texture",data:{image:e,dx:r||0,dy:s||0,dw:n||e.frame.width,dh:o||e.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:t||t===0?Z.shared.setValue(t).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new Tt,this}fill(e,t){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?(e!=null&&(t!==void 0&&typeof e=="number"&&(N(re,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),e={color:e,alpha:t}),this._fillStyle=nr(e,Xt.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:r}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:e,y:t}=this._activePath.getLastPoint(ae.shared);this._activePath.clear(),this._activePath.moveTo(e,t)}stroke(e){let t,r=this.instructions[this.instructions.length-1];return this._tick===0&&r?.action==="fill"?t=r.data.path:t=this._activePath.clone(),t?(e!=null&&(this._strokeStyle=os(e,Xt.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:t}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let e=0;e<2;e++){let t=this.instructions[this.instructions.length-1-e],r=this._activePath.clone();if(t&&(t.action==="stroke"||t.action==="fill"))if(t.data.hole)t.data.hole.addPath(r);else{t.data.hole=r;break}}return this._initNextPathLocation(),this}arc(e,t,r,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*e+a.c*t+a.tx,a.b*e+a.d*t+a.ty,r,s,n,o),this}arcTo(e,t,r,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}arcToSvg(e,t,r,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.arcToSvg(e,t,r,s,n,c.a*o+c.c*a+c.tx,c.b*o+c.d*a+c.ty),this}bezierCurveTo(e,t,r,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.bezierCurveTo(c.a*e+c.c*t+c.tx,c.b*e+c.d*t+c.ty,c.a*r+c.c*s+c.tx,c.b*r+c.d*s+c.ty,c.a*n+c.c*o+c.tx,c.b*n+c.d*o+c.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(e,t,r,s){return this._tick++,this._activePath.ellipse(e,t,r,s,this._transform.clone()),this}circle(e,t,r){return this._tick++,this._activePath.circle(e,t,r,this._transform.clone()),this}path(e){return this._tick++,this._activePath.addPath(e,this._transform.clone()),this}lineTo(e,t){this._tick++;let r=this._transform;return this._activePath.lineTo(r.a*e+r.c*t+r.tx,r.b*e+r.d*t+r.ty),this}moveTo(e,t){this._tick++;let r=this._transform,s=this._activePath.instructions,n=r.a*e+r.c*t+r.tx,o=r.b*e+r.d*t+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(e,t,r,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}rect(e,t,r,s){return this._tick++,this._activePath.rect(e,t,r,s,this._transform.clone()),this}roundRect(e,t,r,s,n){return this._tick++,this._activePath.roundRect(e,t,r,s,n,this._transform.clone()),this}poly(e,t){return this._tick++,this._activePath.poly(e,t,this._transform.clone()),this}regularPoly(e,t,r,s,n=0,o){return this._tick++,this._activePath.regularPoly(e,t,r,s,n,o),this}roundPoly(e,t,r,s,n,o){return this._tick++,this._activePath.roundPoly(e,t,r,s,n,o),this}roundShape(e,t,r,s){return this._tick++,this._activePath.roundShape(e,t,r,s),this}filletRect(e,t,r,s,n){return this._tick++,this._activePath.filletRect(e,t,r,s,n),this}chamferRect(e,t,r,s,n,o){return this._tick++,this._activePath.chamferRect(e,t,r,s,n,o),this}star(e,t,r,s,n=0,o=0){return this._tick++,this._activePath.star(e,t,r,s,n,o,this._transform.clone()),this}svg(e){return this._tick++,n2(e,this),this}restore(){let e=this._stateStack.pop();return e&&(this._transform=e.transform,this._fillStyle=e.fillStyle,this._strokeStyle=e.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(e){return this._transform.rotate(e),this}scale(e,t=e){return this._transform.scale(e,t),this}setTransform(e,t,r,s,n,o){return e instanceof k?(this._transform.set(e.a,e.b,e.c,e.d,e.tx,e.ty),this):(this._transform.set(e,t,r,s,n,o),this)}transform(e,t,r,s,n,o){return e instanceof k?(this._transform.append(e),this):(p2.set(e,t,r,s,n,o),this._transform.append(p2),this)}translate(e,t=e){return this._transform.translate(e,t),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 e=this._bounds;e.clear();for(let t=0;t<this.instructions.length;t++){let r=this.instructions[t],s=r.action;if(s==="fill"){let n=r.data;e.addBounds(n.path.bounds)}else if(s==="texture"){let n=r.data;e.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*=u2(n.path,n.style.miterLimit));let c=n.path.bounds;e.addFrame(c.minX-a,c.minY-a,c.maxX+a,c.maxY+a)}}return e.isValid||e.set(0,0,0,0),e}containsPoint(e){if(!this.bounds.containsPoint(e.x,e.y))return!1;let t=this.instructions,r=!1;for(let s=0;s<t.length;s++){let n=t[s],o=n.data,a=o.path;if(!n.action||!a)continue;let c=o.style,l=a.shapePath.shapePrimitives;for(let d=0;d<l.length;d++){let h=l[d].shape;if(!c||!h)continue;let u=l[d].transform,f=u?u.applyInverse(e,l6):e;if(n.action==="fill")r=h.contains(f.x,f.y);else{let g=c;r=h.strokeContains(f.x,f.y,g.width,g.alignment)}let m=o.hole;if(m){let g=m.shapePath?.shapePrimitives;if(g)for(let x=0;x<g.length;x++)g[x].shape.contains(f.x,f.y)&&(r=!1)}if(r)return!0}}return r}unload(){this.emit("unload",this);for(let e in this._gpuData)this._gpuData[e]?.destroy();this._gpuData=Object.create(null)}destroy(e=!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 e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.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}};yu.defaultFillStyle={color:16777215,alpha:1,texture:U.WHITE,matrix:null,fill:null,textureSpace:"local"};yu.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};gt=yu});var wu,Su,Eu,m2,g2=p(()=>{P();Uo();Gt();wu=class{constructor(){this.isBatchable=!1}reset(){this.isBatchable=!1,this.context=null,this.graphicsData&&(this.graphicsData.destroy(),this.graphicsData=null)}destroy(){this.reset()}},Su=class{constructor(){this.instructions=new hr}init(){this.instructions.reset()}destroy(){this.instructions.destroy(),this.instructions=null}},Eu=class Tu{constructor(e){this._renderer=e,this._managedContexts=new Re({renderer:e,type:"resource",name:"graphicsContext"})}init(e){Tu.defaultOptions.bezierSmoothness=e?.bezierSmoothness??Tu.defaultOptions.bezierSmoothness}getContextRenderData(e){return this.getGpuContext(e).graphicsData||this._initContextRenderData(e)}updateGpuContext(e){let t=e._gpuData,r=!!t[this._renderer.uid],s=t[this._renderer.uid]||this._initContext(e);return(e.dirty||!r)&&(r&&s.reset(),s.isBatchable=!1,e.dirty=!1),s}getGpuContext(e){return e._gpuData[this._renderer.uid]||this._initContext(e)}_initContextRenderData(e){let t=new Su,r=this.getGpuContext(e);return r.graphicsData=t,t.init(),t}_initContext(e){let t=new wu;return t.context=e,e._gpuData[this._renderer.uid]=t,this._managedContexts.add(e),t}destroy(){this._managedContexts.destroy(),this._renderer=null}};Eu.extension={type:[_.CanvasSystem],name:"graphicsContext"};Eu.defaultOptions={bezierSmoothness:.5};m2=Eu});var qn,b2=p(()=>{P();It();Gt();qn=class{constructor(e,t){this.state=De.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this),this._managedGraphics=new Re({renderer:e,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){return!1}addRenderable(e,t){this._managedGraphics.add(e),this.renderer.renderPipes.batch.break(t),t.add(e)}updateRenderable(e){}execute(e){e.isRenderable&&this._adaptor.execute(this,e)}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null}};qn.extension={type:[_.CanvasPipes],name:"graphics"}});var Cu,Kn,x2=p(()=>{P();It();Gt();Zt();Na();Qh();Cu=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{ye.return(e)}),this.batches.length=0}},Kn=class{constructor(e,t){this.state=De.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this),this._managedGraphics=new Re({renderer:e,type:"renderable",priority:-1,name:"graphics"})}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){let t=e.context,r=!!e._gpuData,n=this.renderer.graphicsContext.updateGpuContext(t);return!!(n.isBatchable||r!==n.isBatchable)}addRenderable(e,t){let s=this.renderer.graphicsContext.updateGpuContext(e.context);e.didViewUpdate&&this._rebuild(e),s.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){let r=this._getGpuDataForRenderable(e).batches;for(let s=0;s<r.length;s++){let n=r[s];n._batcher.updateElement(n)}}execute(e){if(!e.isRenderable)return;let t=this.renderer,r=e.context;if(!t.graphicsContext.getGpuContext(r).batches.length)return;let n=r.customShader||this._adaptor.shader;this.state.blendMode=e.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=e.groupTransform,o.uRound=t._roundPixels|e._roundPixels,Yi(e.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,e)}_rebuild(e){let t=this._getGpuDataForRenderable(e),s=this.renderer.graphicsContext.updateGpuContext(e.context);t.destroy(),s.isBatchable&&this._updateBatchesForRenderable(e,t)}_addToBatcher(e,t){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(e).batches;for(let n=0;n<s.length;n++){let o=s[n];r.addToBatch(o,t)}}_getGpuDataForRenderable(e){return e._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(e)}_initGpuDataForRenderable(e){let t=new Cu;return e._gpuData[this.renderer.uid]=t,this._managedGraphics.add(e),t}_updateBatchesForRenderable(e,t){let r=e.context,n=this.renderer.graphicsContext.getGpuContext(r),o=this.renderer._roundPixels|e._roundPixels;t.batches=n.batches.map(a=>{let c=ye.get(ni);return a.copyTo(c),c.renderable=e,c.roundPixels=o,c})}destroy(){this._managedGraphics.destroy(),this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};Kn.extension={type:[_.WebGLPipes,_.WebGPUPipes],name:"graphics"}});var _2=p(()=>{P();g2();b2();_c();x2();H.add(qn);H.add(Kn);H.add(m2);H.add(is)});var it,Pu=p(()=>{_e();Cs();vu();_2();it=class i extends Nt{constructor(e){e instanceof gt&&(e={context:e});let{context:t,roundPixels:r,...s}=e||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",t?this.context=t:(this.context=this._ownedContext=new gt,this.context.autoGarbageCollect=this.autoGarbageCollect),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=r??!1}set context(e){e!==this._context&&(this._context&&(this._context.off("update",this.onViewUpdate,this),this._context.off("unload",this.unload,this)),this._context=e,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(e){return this._context.containsPoint(e)}destroy(e){this._ownedContext&&!e?this._ownedContext.destroy(e):(e===!0||e?.context===!0)&&this._context.destroy(e),this._context?.off("update",this.onViewUpdate,this),this._context?.off("unload",this.unload,this),this._ownedContext=null,this._context=null,super.destroy(e)}_onTouch(e){this._gcLastUsed=e,this._context._gcLastUsed=e}_callContextMethod(e,t){return this.context[e](...t),this}setFillStyle(...e){return this._callContextMethod("setFillStyle",e)}setStrokeStyle(...e){return this._callContextMethod("setStrokeStyle",e)}fill(...e){return this._callContextMethod("fill",e)}stroke(...e){return this._callContextMethod("stroke",e)}texture(...e){return this._callContextMethod("texture",e)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...e){return this._callContextMethod("arc",e)}arcTo(...e){return this._callContextMethod("arcTo",e)}arcToSvg(...e){return this._callContextMethod("arcToSvg",e)}bezierCurveTo(...e){return this._callContextMethod("bezierCurveTo",e)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...e){return this._callContextMethod("ellipse",e)}circle(...e){return this._callContextMethod("circle",e)}path(...e){return this._callContextMethod("path",e)}lineTo(...e){return this._callContextMethod("lineTo",e)}moveTo(...e){return this._callContextMethod("moveTo",e)}quadraticCurveTo(...e){return this._callContextMethod("quadraticCurveTo",e)}rect(...e){return this._callContextMethod("rect",e)}roundRect(...e){return this._callContextMethod("roundRect",e)}poly(...e){return this._callContextMethod("poly",e)}regularPoly(...e){return this._callContextMethod("regularPoly",e)}roundPoly(...e){return this._callContextMethod("roundPoly",e)}roundShape(...e){return this._callContextMethod("roundShape",e)}filletRect(...e){return this._callContextMethod("filletRect",e)}chamferRect(...e){return this._callContextMethod("chamferRect",e)}star(...e){return this._callContextMethod("star",e)}svg(...e){return this._callContextMethod("svg",e)}restore(...e){return this._callContextMethod("restore",e)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...e){return this._callContextMethod("rotate",e)}scaleTransform(...e){return this._callContextMethod("scale",e)}setTransform(...e){return this._callContextMethod("setTransform",e)}transform(...e){return this._callContextMethod("transform",e)}translateTransform(...e){return this._callContextMethod("translate",e)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(e){this._context.fillStyle=e}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(e){this._context.strokeStyle=e}clone(e=!1){return e?new i(this._context.clone()):(this._ownedContext=null,new i(this._context))}lineStyle(e,t,r){N(re,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return e&&(s.width=e),t&&(s.color=t),r&&(s.alpha=r),this.context.strokeStyle=s,this}beginFill(e,t){N(re,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let r={};return e!==void 0&&(r.color=e),t!==void 0&&(r.alpha=t),this.context.fillStyle=r,this}endFill(){N(re,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let e=this.context.strokeStyle;return(e.width!==gt.defaultStrokeStyle.width||e.color!==gt.defaultStrokeStyle.color||e.alpha!==gt.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return N(re,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return N(re,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return N(re,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return N(re,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return N(re,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return N(re,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});function d6(i,e,t,r,s,n){n=Math.max(0,Math.min(n,Math.min(r,s)/2)),i.moveTo(e+n,t),i.lineTo(e+r-n,t),i.quadraticCurveTo(e+r,t,e+r,t+n),i.lineTo(e+r,t+s-n),i.quadraticCurveTo(e+r,t+s,e+r-n,t+s),i.lineTo(e+n,t+s),i.quadraticCurveTo(e,t+s,e,t+s-n),i.lineTo(e,t+n),i.quadraticCurveTo(e,t,e+n,t)}function y2(i,e){switch(e.type){case"rectangle":{let t=e;i.rect(t.x,t.y,t.width,t.height);break}case"roundedRectangle":{let t=e;d6(i,t.x,t.y,t.width,t.height,t.radius);break}case"circle":{let t=e;i.moveTo(t.x+t.radius,t.y),i.arc(t.x,t.y,t.radius,0,Math.PI*2);break}case"ellipse":{let t=e;i.ellipse?(i.moveTo(t.x+t.halfWidth,t.y),i.ellipse(t.x,t.y,t.halfWidth,t.halfHeight,0,0,Math.PI*2)):(i.save(),i.translate(t.x,t.y),i.scale(t.halfWidth,t.halfHeight),i.moveTo(1,0),i.arc(0,0,1,0,Math.PI*2),i.restore());break}case"triangle":{let t=e;i.moveTo(t.x,t.y),i.lineTo(t.x2,t.y2),i.lineTo(t.x3,t.y3),i.closePath();break}case"polygon":default:{let t=e,r=t.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]);t.closePath&&i.closePath();break}}}function h6(i,e,t){let r=[],s=[],n=[];if(!Tr[e.type]?.build(e,r))return!1;let a=e.closePath??!0;ts(r,t,!1,a,s,n);for(let c=0;c<n.length;c+=3){let l=n[c]*2,d=n[c+1]*2,h=n[c+2]*2;i.moveTo(s[l],s[l+1]),i.lineTo(s[d],s[d+1]),i.lineTo(s[h],s[h+1]),i.closePath()}return!0}function u6(i,e){if(!e?.length)return!1;for(let t=0;t<e.length;t++){let r=e[t];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)),y2(i,r.shape),n&&i.restore()}return!0}var Zn,v2=p(()=>{P();fc();Pu();gc();he();Zn=class{constructor(e){this._warnedMaskTypes=new Set,this._canvasMaskStack=[],this._renderer=e}push(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){if(e.action!=="pushMaskBegin"&&e.action!=="popMaskEnd")return;let t=this._renderer,r=t.canvasContext,s=r?.activeContext;if(!s)return;if(e.action==="popMaskEnd"){this._canvasMaskStack.pop()&&s.restore();return}e.inverse&&this._warnOnce("inverse","CanvasRenderer: inverse masks are not supported on Canvas2D; ignoring inverse flag.");let n=e.mask.mask;if(!(n instanceof it)){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,(t._roundPixels|o._roundPixels)===1),s.beginPath();let c=!1,l=!1;for(let d=0;d<a.length;d++){let h=a[d],u=h.action;if(u!=="fill"&&u!=="stroke")continue;let f=h.data,m=f?.path?.shapePath;if(!m?.shapePrimitives?.length)continue;let g=u==="stroke",x=m.shapePrimitives;for(let b=0;b<x.length;b++){let y=x[b];if(!y?.shape)continue;let v=y.transform,w=v&&!v.isIdentity();w&&(s.save(),s.transform(v.a,v.b,v.c,v.d,v.tx,v.ty)),g&&f.style?c=h6(s,y.shape,f.style)||c:(y2(s,y.shape),l=u6(s,y.holes)||l,c=!0),w&&s.restore()}}if(!c){s.restore(),this._canvasMaskStack.push(!1);return}l?s.clip("evenodd"):s.clip(),this._canvasMaskStack.push(!0)}destroy(){this._renderer=null,this._warnedMaskTypes=null,this._canvasMaskStack=null}_warnOnce(e,t){this._warnedMaskTypes.has(e)||(this._warnedMaskTypes.add(e),O(t))}};Zn.extension={type:[_.CanvasPipes],name:"stencilMask"}});function w2(){let i=ea(),e=Object.create(null);return e.inherit=xe,e.none=xe,e.normal="source-over",e.add="lighter",e.multiply=i?"multiply":xe,e.screen=i?"screen":xe,e.overlay=i?"overlay":xe,e.darken=i?"darken":xe,e.lighten=i?"lighten":xe,e["color-dodge"]=i?"color-dodge":xe,e["color-burn"]=i?"color-burn":xe,e["hard-light"]=i?"hard-light":xe,e["soft-light"]=i?"soft-light":xe,e.difference=i?"difference":xe,e.exclusion=i?"exclusion":xe,e.saturation=i?"saturation":xe,e.color=i?"color":xe,e.luminosity=i?"luminosity":xe,e["linear-burn"]=i?"color-burn":xe,e["linear-dodge"]=i?"color-dodge":xe,e["linear-light"]=i?"hard-light":xe,e["pin-light"]=i?"hard-light":xe,e["vivid-light"]=i?"hard-light":xe,e["hard-mix"]=xe,e.negation=i?"difference":xe,e["normal-npm"]=e.normal,e["add-npm"]=e.add,e["screen-npm"]=e.screen,e.erase="destination-out",e.subtract=xe,e.divide=xe,e.min=xe,e.max=xe,e}var xe,S2=p(()=>{Kl();xe="source-over"});var f6,Qn,T2=p(()=>{$e();P();ce();S2();f6=new k,Qn=class{constructor(e){this.activeResolution=1,this.smoothProperty="imageSmoothingEnabled",this.blendModes=w2(),this._activeBlendMode="normal",this._projTransform=null,this._outerBlend=!1,this._warnedBlendModes=new Set,this._renderer=e}resolutionChange(e){this.activeResolution=e}init(){let e=this._renderer.background.alpha<1;if(this.rootContext=this._renderer.canvas.getContext("2d",{alpha:e}),this.activeContext=this.rootContext,this.activeResolution=this._renderer.resolution,!this.rootContext.imageSmoothingEnabled){let t=this.rootContext;t.webkitImageSmoothingEnabled?this.smoothProperty="webkitImageSmoothingEnabled":t.mozImageSmoothingEnabled?this.smoothProperty="mozImageSmoothingEnabled":t.oImageSmoothingEnabled?this.smoothProperty="oImageSmoothingEnabled":t.msImageSmoothingEnabled&&(this.smoothProperty="msImageSmoothingEnabled")}}setContextTransform(e,t,r,s){let n=s?k.IDENTITY:this._renderer.globalUniforms.globalUniformData?.worldTransformMatrix||k.IDENTITY,o=f6;o.copyFrom(n),o.append(e);let a=this._projTransform,c=this.activeResolution;if(r=r||c,a){let l=k.shared;l.copyFrom(o),l.prepend(a),o=l}t?this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*c|0,o.ty*c|0):this.activeContext.setTransform(o.a*r,o.b*r,o.c*r,o.d*r,o.tx*c,o.ty*c)}clear(e,t){let r=this.activeContext,s=this._renderer;if(r.clearRect(0,0,s.width,s.height),e){let n=Z.shared.setValue(e);r.globalAlpha=t??n.alpha,r.fillStyle=n.toHex(),r.fillRect(0,0,s.width,s.height),r.globalAlpha=1}}setBlendMode(e){if(this._activeBlendMode===e)return;this._activeBlendMode=e,this._outerBlend=!1;let t=this.blendModes[e];if(!t){this._warnedBlendModes.has(e)||(console.warn(`CanvasRenderer: blend mode "${e}" is not supported in Canvas2D; falling back to "source-over".`),this._warnedBlendModes.add(e)),this.activeContext.globalCompositeOperation="source-over";return}this.activeContext.globalCompositeOperation=t}destroy(){this.rootContext=null,this.activeContext=null,this._warnedBlendModes.clear()}};Qn.extension={type:[_.CanvasSystem],name:"canvasContext"}});var Jn,E2=p(()=>{P();Jn=class{constructor(){this.maxTextures=16,this.maxBatchableTextures=16,this.maxUniformBindings=0}init(){}};Jn.extension={type:[_.CanvasSystem],name:"limits"}});var Ec,C2=p(()=>{$e();be();he();pr();Ec=class{init(e,t){this._renderer=e,this._renderTargetSystem=t}initGpuRenderTarget(e){let t=e.colorTexture,{canvas:r,context:s}=this._ensureCanvas(t);return{canvas:r,context:s,width:r.width,height:r.height}}resizeGpuRenderTarget(e){let t=e.colorTexture,{canvas:r}=this._ensureCanvas(t);r.width=e.pixelWidth,r.height=e.pixelHeight}startRenderPass(e,t,r,s){let n=this._renderTargetSystem.getGpuRenderTarget(e);this._renderer.canvasContext.activeContext=n.context,this._renderer.canvasContext.activeResolution=e.resolution,t&&this.clear(e,t,r,s)}clear(e,t,r,s){let o=this._renderTargetSystem.getGpuRenderTarget(e).context,a=s||{x:0,y:0,width:e.pixelWidth,height:e.pixelHeight};if(o.setTransform(1,0,0,1,0,0),o.clearRect(a.x,a.y,a.width,a.height),r){let c=Z.shared.setValue(r);c.alpha>0&&(o.globalAlpha=c.alpha,o.fillStyle=c.toHex(),o.fillRect(a.x,a.y,a.width,a.height),o.globalAlpha=1)}}finishRenderPass(){}copyToTexture(e,t,r,s,n){let a=this._renderTargetSystem.getGpuRenderTarget(e).canvas,c=t.source,{context:l}=this._ensureCanvas(c),d=n?.x??0,h=n?.y??0;return l.drawImage(a,r.x,r.y,s.width,s.height,d,h,s.width,s.height),c.update(),t}copyDepthTexture(e,t,r,s,n){O("[CanvasRenderTargetAdaptor] copyDepthTexture is not supported in the canvas renderer")}destroyGpuRenderTarget(e){}_ensureCanvas(e){let t=e.resource;(!t||!Se.test(t))&&(t=z.get().createCanvas(e.pixelWidth,e.pixelHeight),e.resource=t),(t.width!==e.pixelWidth||t.height!==e.pixelHeight)&&(t.width=e.pixelWidth,t.height=e.pixelHeight);let r=t.getContext("2d");return{canvas:t,context:r}}}});var eo,P2=p(()=>{P();qa();C2();eo=class extends Sr{constructor(e){super(e),this.adaptor=new Ec,this.adaptor.init(e,this)}};eo.extension={type:[_.CanvasSystem],name:"renderTarget"}});var to,M2=p(()=>{be();P();ki();to=class{constructor(e){}init(){}initSource(e){}generateCanvas(e){let t=z.get().createCanvas(),r=t.getContext("2d"),s=q.getCanvasSource(e);if(!s)return t;let n=e.frame,o=e.source._resolution??e.source.resolution??1,a=n.x*o,c=n.y*o,l=n.width*o,d=n.height*o;return t.width=Math.ceil(l),t.height=Math.ceil(d),r.drawImage(s,a,c,l,d,0,0,l,d),t}getPixels(e){let t=this.generateCanvas(e);return{pixels:t.getContext("2d",{willReadFrequently:!0}).getImageData(0,0,t.width,t.height).data,width:t.width,height:t.height}}destroy(){}};to.extension={type:[_.CanvasSystem],name:"texture"}});var B2={};Qc(B2,{CanvasRenderer:()=>Mu});var p6,m6,g6,A2,R2,k2,Mu,I2=p(()=>{P();Hd();Wd();M_();Xd();R_();ih();oh();k_();v2();ch();jr();Va();zt();T2();E2();P2();M2();p6=[...Zi,Qn,Jn,to,eo],m6=[Zr,hn,$r,Yr,Kr,Zn,Yn,Xr],g6=[A_,Xn],A2=[],R2=[],k2=[];H.handleByNamedList(_.CanvasSystem,A2);H.handleByNamedList(_.CanvasPipes,R2);H.handleByNamedList(_.CanvasPipesAdaptor,k2);H.add(...p6,...m6,...g6);Mu=class extends St{constructor(){let e={name:"canvas",type:Ue.CANVAS,systems:A2,renderPipes:R2,renderPipeAdaptors:k2};super(e)}}});function W2(i=1e3,e=0,t=!1){if(isNaN(i)||i<0)throw new TypeError("Invalid max value");if(isNaN(e)||e<0)throw new TypeError("Invalid ttl value");if(typeof t!="boolean")throw new TypeError("Invalid resetTtl value");return new Ru(i,e,t)}var Ru,V2=p(()=>{Ru=class{constructor(e=0,t=0,r=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=e,this.resetTtl=r,this.size=0,this.ttl=t}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(e){if(this.has(e)){let t=this.items[e];delete this.items[e],this.size--,t.prev!==null&&(t.prev.next=t.next),t.next!==null&&(t.next.prev=t.prev),this.first===t&&(this.first=t.next),this.last===t&&(this.last=t.prev)}return this}entries(e=this.keys()){let t=new Array(e.length);for(let r=0;r<e.length;r++){let s=e[r];t[r]=[s,this.get(s)]}return t}evict(e=!1){if(e||this.size>0){let t=this.first;delete this.items[t.key],--this.size===0?(this.first=null,this.last=null):(this.first=t.next,this.first.prev=null)}return this}expiresAt(e){let t;return this.has(e)&&(t=this.items[e].expiry),t}get(e){let t=this.items[e];if(t!==void 0){if(this.ttl>0&&t.expiry<=Date.now()){this.delete(e);return}return this.moveToEnd(t),t.value}}has(e){return e in this.items}moveToEnd(e){this.last!==e&&(e.prev!==null&&(e.prev.next=e.next),e.next!==null&&(e.next.prev=e.prev),this.first===e&&(this.first=e.next),e.prev=this.last,e.next=null,this.last!==null&&(this.last.next=e),this.last=e,this.first===null&&(this.first=e))}keys(){let e=new Array(this.size),t=this.first,r=0;for(;t!==null;)e[r++]=t.key,t=t.next;return e}setWithEvicted(e,t,r=this.resetTtl){let s=null;if(this.has(e))this.set(e,t,!0,r);else{this.max>0&&this.size===this.max&&(s={...this.first},this.evict(!0));let n=this.items[e]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:e,prev:this.last,next:null,value:t};++this.size===1?this.first=n:this.last.next=n,this.last=n}return s}set(e,t,r=!1,s=this.resetTtl){let n=this.items[e];return r||n!==void 0?(n.value=t,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[e]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:e,prev:this.last,next:null,value:t},++this.size===1?this.first=n:this.last.next=n,this.last=n),this}values(e=this.keys()){let t=new Array(e.length);for(let r=0;r<e.length;r++)t[r]=this.get(e[r]);return t}}});function ku(i){return!!i.tagStyles&&Object.keys(i.tagStyles).length>0}function Bu(i){return i.includes("<")}function x6(i,e){return i.clone().assign(e)}function j2(i,e){let t=[],r=e.tagStyles;if(!ku(e)||!Bu(i))return t.push({text:i,style:e}),t;let s=[e],n=[],o="",a=0;for(;a<i.length;){let c=i[a];if(c==="<"){let l=i.indexOf(">",a);if(l===-1){o+=c,a++;continue}let d=i.indexOf("<",a+1);if(d!==-1&&d<l){o+=c,a++;continue}let h=i.slice(a+1,l);if(h.startsWith("/")){let u=h.slice(1).trim();if(n.length>0&&n[n.length-1]===u){o.length>0&&(t.push({text:o,style:s[s.length-1]}),o=""),s.pop(),n.pop(),a=l+1;continue}else{o+=i.slice(a,l+1),a=l+1;continue}}else{let u=h.trim();if(r[u]){o.length>0&&(t.push({text:o,style:s[s.length-1]}),o="");let f=s[s.length-1],m=x6(f,r[u]);s.push(m),n.push(u),a=l+1;continue}else{o+=i.slice(a,l+1),a=l+1;continue}}}else o+=c,a++}return o.length>0&&t.push({text:o,style:s[s.length-1]}),t}var Iu=p(()=>{"use strict"});function as(i){return typeof i!="string"?!1:y6.has(i.charCodeAt(0))}function st(i,e){return typeof i!="string"?!1:w6.has(i.charCodeAt(0))}function C6(i){return typeof i!="string"?!1:E6.has(i.charCodeAt(0))}function Rc(i){return i==="normal"||i==="pre-line"}function kc(i){return i==="normal"}function Ut(i){if(typeof i!="string")return"";let e=i.length-1;for(;e>=0&&st(i[e]);)e--;return e<i.length-1?i.slice(0,e+1):i}function Bc(i){let e=[],t=[];if(typeof i!="string")return e;for(let r=0;r<i.length;r++){let s=i[r],n=i[r+1];if(st(s,n)||as(s)){t.length>0&&(e.push(t.join("")),t.length=0),s==="\r"&&n===`
|
|
907
|
+
`?(e.push(`\r
|
|
908
|
+
`),r++):e.push(s);continue}t.push(s),C6(s)&&n&&!st(n)&&!as(n)&&(e.push(t.join("")),t.length=0)}return t.length>0&&e.push(t.join("")),e}function Ic(i,e,t,r){let s=t(i),n=[];for(let o=0;o<s.length;o++){let a=s[o],c=a,l=1;for(;s[o+l];){let d=s[o+l];if(!r(c,d,i,o,e))a+=d,c=d,l++;else break}o+=l-1,n.push(a)}return n}var _6,y6,v6,w6,S6,vW,T6,E6,X2,Y2,Gc=p(()=>{"use strict";_6=[10,13],y6=new Set(_6),v6=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288],w6=new Set(v6),S6=[9,32],vW=new Set(S6),T6=[45,8208,8211,8212,173],E6=new Set(T6),X2=/(\r\n|\r|\n)/,Y2=/(?:\r\n|\r|\n)/});function $2(i,e,t,r,s,n,o,a,c){let l=j2(i,e);if(kc(e.whiteSpace))for(let W=0;W<l.length;W++){let ee=l[W];l[W]={text:ee.text.replace(P6," "),style:ee.style}}let h=[],u=[];for(let W of l){let ee=W.text.split(X2);for(let G=0;G<ee.length;G++){let D=ee[G];D===`\r
|
|
909
|
+
`||D==="\r"||D===`
|
|
910
|
+
`?(h.push(u),u=[]):D.length>0&&u.push({text:D,style:W.style})}}(u.length>0||h.length===0)&&h.push(u);let f=t?M6(h,e,r,n,a,c):h,m=[],g=[],x=[],b=[],y=[],v=0,w=e._fontString,S=o(w);S.fontSize===0&&(S.fontSize=e.fontSize,S.ascent=e.fontSize);let T="",C=!!e.dropShadow,B=e._stroke?.width||0;for(let W of f){let ee=0,G=S.ascent,D=S.descent,j="";for(let te of W){let de=te.style._fontString,we=o(de);de!==T&&(r.font=de,T=de);let se=s(te.text,te.style.letterSpacing,r);ee+=se,G=Math.max(G,we.ascent),D=Math.max(D,we.descent),j+=te.text;let ue=te.style._stroke?.width||0;ue>B&&(B=ue),!C&&te.style.dropShadow&&(C=!0)}W.length===0&&(G=S.ascent,D=S.descent),m.push(ee),g.push(G),x.push(D),y.push(j);let F=e.lineHeight||G+D;b.push(F+e.leading),v=Math.max(v,ee)}let R=B,M=v+R+(e.dropShadow?e.dropShadow.distance:0),E=0;for(let W=0;W<b.length;W++)E+=b[W];E=Math.max(E,b[0]+R);let A=E+(e.dropShadow?e.dropShadow.distance:0),L=e.lineHeight||S.fontSize;return{width:M,height:A,lines:y,lineWidths:m,lineHeight:L+e.leading,maxLineWidth:v,fontProperties:S,runsByLine:f,lineAscents:g,lineDescents:x,lineHeights:b,hasDropShadow:C}}function M6(i,e,t,r,s,n){let{letterSpacing:o,whiteSpace:a,wordWrapWidth:c,breakWords:l}=e,d=Rc(a),h=c+o,u={},f="",m=(x,b)=>{let y=`${x}|${b.styleKey}`,v=u[y];if(v===void 0){let w=b._fontString;w!==f&&(t.font=w,f=w),v=r(x,b.letterSpacing,t)+b.letterSpacing,u[y]=v}return v},g=[];for(let x of i){let b=A6(x),y=g.length,v=E=>{let A=0,L=E;do{let{token:W,style:ee}=b[L];A+=m(W,ee),L++}while(L<b.length&&b[L].continuesFromPrevious);return A},w=E=>{let A=[],L=E;do A.push({token:b[L].token,style:b[L].style}),L++;while(L<b.length&&b[L].continuesFromPrevious);return A},S=[],T=0,C=!d,B=null,R=()=>{B&&B.text.length>0&&S.push(B),B=null},M=()=>{if(R(),S.length>0){let E=S[S.length-1];E.text=Ut(E.text),E.text.length===0&&S.pop()}g.push(S),S=[],T=0,C=!1};for(let E=0;E<b.length;E++){let{token:A,style:L,continuesFromPrevious:W}=b[E],ee=m(A,L);if(d){let j=st(A),F=B?.text[B.text.length-1]??S[S.length-1]?.text.slice(-1)??"",te=F?st(F):!1;if(j&&te)continue}let G=!W,D=G?v(E):ee;if(D>h&&G)if(T>0&&M(),l){let j=w(E);for(let F=0;F<j.length;F++){let te=j[F].token,de=j[F].style,we=Ic(te,l,n,s);for(let se of we){let ue=m(se,de);ue+T>h&&M(),!B||B.style!==de?(R(),B={text:se,style:de}):B.text+=se,T+=ue}}E+=j.length-1}else{let j=w(E);R(),g.push(j.map(F=>({text:F.token,style:F.style}))),C=!1,E+=j.length-1}else if(D+T>h&&G){if(st(A)){C=!1;continue}M(),B={text:A,style:L},T=ee}else if(W&&!l)!B||B.style!==L?(R(),B={text:A,style:L}):B.text+=A,T+=ee;else{let j=st(A);if(T===0&&j&&!C)continue;!B||B.style!==L?(R(),B={text:A,style:L}):B.text+=A,T+=ee}}if(R(),S.length>0){let E=S[S.length-1];E.text=Ut(E.text),E.text.length===0&&S.pop()}(S.length>0||g.length===y)&&g.push(S)}return g}function A6(i){let e=[],t=!1;for(let r of i){let s=Bc(r.text),n=!0;for(let o of s){let a=st(o)||as(o),c=n&&t&&!a;e.push({token:o,style:r.style,continuesFromPrevious:c}),t=!a,n=!1}}return e}var P6,q2=p(()=>{Iu();Gc();P6=/\r\n|\r|\n/g});function K2(i,e,t,r,s){let n=t[i];return typeof n!="number"&&(n=s(i,e,r)+e,t[i]=n),n}function Z2(i,e,t,r,s,n,o){let a=t.getContext("2d",R6);a.font=e._fontString;let c=0,l="",d=[],h=Object.create(null),{letterSpacing:u,whiteSpace:f}=e,m=Rc(f),g=kc(f),x=!m,b=e.wordWrapWidth+u,y=Bc(i);for(let w=0;w<y.length;w++){let S=y[w];if(as(S)){if(!g){d.push(Ut(l)),x=!m,l="",c=0;continue}S=" "}if(m){let C=st(S),B=st(l[l.length-1]);if(C&&B)continue}let T=K2(S,u,h,a,r);if(T>b)if(l!==""&&(d.push(Ut(l)),l="",c=0),s(S,e.breakWords)){let C=Ic(S,e.breakWords,o,n);for(let B of C){let R=K2(B,u,h,a,r);R+c>b&&(d.push(Ut(l)),x=!1,l="",c=0),l+=B,c+=R}}else l.length>0&&(d.push(Ut(l)),l="",c=0),d.push(Ut(S)),x=!1,l="",c=0;else T+c>b&&(x=!1,d.push(Ut(l)),l="",c=0),(l.length>0||!st(S)||x)&&(l+=S,c+=T)}let v=Ut(l);return v.length>0&&d.push(v),d.join(`
|
|
911
|
+
`)}var R6,Q2=p(()=>{Gc();R6={willReadFrequently:!0}});var J2,ar,Yt,Gu=p(()=>{V2();be();q2();Iu();Gc();Q2();J2={willReadFrequently:!0},ar=class X{static get experimentalLetterSpacingSupported(){let e=X._experimentalLetterSpacingSupported;if(e===void 0){let t=z.get().getCanvasRenderingContext2D().prototype;e=X._experimentalLetterSpacingSupported="letterSpacing"in t||"textLetterSpacing"in t}return e}constructor(e,t,r,s,n,o,a,c,l,d){this.text=e,this.style=t,this.width=r,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=c,this.fontProperties=l,d&&(this.runsByLine=d.runsByLine,this.lineAscents=d.lineAscents,this.lineDescents=d.lineDescents,this.lineHeights=d.lineHeights,this.hasDropShadow=d.hasDropShadow)}static measureText(e=" ",t,r=X._canvas,s=t.wordWrap){let n=`${e}-${t.styleKey}-wordWrap-${s}`;if(X._measurementCache.has(n))return X._measurementCache.get(n);if(ku(t)&&Bu(e)){let w=$2(e,t,s,X._context,X._measureText,X._measureTextAdvance,X.measureFont,X.canBreakChars,X.wordWrapSplit),S=new X(e,t,w.width,w.height,w.lines,w.lineWidths,w.lineHeight,w.maxLineWidth,w.fontProperties,{runsByLine:w.runsByLine,lineAscents:w.lineAscents,lineDescents:w.lineDescents,lineHeights:w.lineHeights,hasDropShadow:w.hasDropShadow});return X._measurementCache.set(n,S),S}let a=t._fontString,c=X.measureFont(a);c.fontSize===0&&(c.fontSize=t.fontSize,c.ascent=t.fontSize,c.descent=0);let l=X._context;l.font=a;let h=(s?X._wordWrap(e,t,r):e).split(Y2),u=new Array(h.length),f=0;for(let w=0;w<h.length;w++){let S=X._measureText(h[w],t.letterSpacing,l);u[w]=S,f=Math.max(f,S)}let m=t._stroke?.width??0,g=t.lineHeight||c.fontSize,x=X._adjustWidthForStyle(f,t),b=Math.max(g,c.fontSize+m)+(h.length-1)*(g+t.leading),y=X._adjustHeightForStyle(b,t),v=new X(e,t,x,y,h,u,g+t.leading,f,c);return X._measurementCache.set(n,v),v}static _adjustWidthForStyle(e,t){let r=t._stroke?.width||0,s=e+r;return t.dropShadow&&(s+=t.dropShadow.distance),s}static _adjustHeightForStyle(e,t){let r=e;return t.dropShadow&&(r+=t.dropShadow.distance),r}static _measureText(e,t,r){let{metricWidth:s,metrics:n,letterSpacingVal:o}=X._measureTextCore(e,t,r),a=-(n.actualBoundingBoxLeft??0),l=(n.actualBoundingBoxRight??0)-a;return n.width>0&&(l+=o),Math.max(s,l)}static _measureTextAdvance(e,t,r){return X._measureTextCore(e,t,r).metricWidth}static _measureTextCore(e,t,r){let s=!1;X.experimentalLetterSpacingSupported&&(X.experimentalLetterSpacing?(r.letterSpacing=`${t}px`,r.textLetterSpacing=`${t}px`,s=!0):(r.letterSpacing="0px",r.textLetterSpacing="0px"));let n=r.measureText(e),o=n.width,a=0;return o>0&&(s?a=-t:a=(X.graphemeSegmenter(e).length-1)*t,o+=a),{metricWidth:o,metrics:n,letterSpacingVal:a}}static _wordWrap(e,t,r=X._canvas){return Z2(e,t,r,X._measureTextAdvance,X.canBreakWords,X.canBreakChars,X.wordWrapSplit)}static isBreakingSpace(e,t){return st(e,t)}static canBreakWords(e,t){return t}static canBreakChars(e,t,r,s,n){return!0}static wordWrapSplit(e){return X.graphemeSegmenter(e)}static measureFont(e){if(X._fonts[e])return X._fonts[e];let t=X._context;t.font=e;let r=t.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[e]=o,o}static clearMetrics(e=""){e?delete X._fonts[e]:X._fonts={}}static get _canvas(){if(!X.__canvas){let e;try{let t=new OffscreenCanvas(0,0);if(t.getContext("2d",J2)?.measureText)return X.__canvas=t,t;e=z.get().createCanvas()}catch{e=z.get().createCanvas()}e.width=e.height=10,X.__canvas=e}return X.__canvas}static get _context(){return X.__context||(X.__context=X._canvas.getContext("2d",J2)),X.__context}};ar.METRICS_STRING="|\xC9q\xC5";ar.BASELINE_SYMBOL="M";ar.BASELINE_MULTIPLIER=1.4;ar.HEIGHT_MULTIPLIER=2;ar.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let i=new Intl.Segmenter;return e=>{let t=i.segment(e),r=[],s=0;for(let n of t)r[s++]=n.segment;return r}}return i=>[...i]})();ar.experimentalLetterSpacing=!1;ar._fonts={};ar._measurementCache=W2(1e3);Yt=ar});function ao(i){let e=typeof i.fontSize=="number"?`${i.fontSize}px`:i.fontSize,t=i.fontFamily;Array.isArray(i.fontFamily)||(t=i.fontFamily.split(","));for(let r=t.length-1;r>=0;r--){let s=t[r].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!k6.includes(s)&&(s=`"${s}"`),t[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${e} ${t.join(",")}`}var k6,Fu=p(()=>{"use strict";k6=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});function co(i,e,t,r=0,s=0,n=0){if(i.texture===U.WHITE&&!i.fill)return Z.shared.setValue(i.color).setAlpha(i.alpha??1).toHexa();if(i.fill){if(i.fill instanceof Ft){let o=i.fill,a=e.createPattern(o.texture.source.resource,"repeat");return q.applyPatternTransform(a,o.transform,!1),a}else if(i.fill instanceof Ze){let o=i.fill,a=o.type==="linear",c=o.textureSpace==="local",l=1,d=1;c&&t&&(l=t.width+r,d=t.height+r);let h,u=!1;if(a){let{start:f,end:m}=o;h=e.createLinearGradient(f.x*l+s,f.y*d+n,m.x*l+s,m.y*d+n),u=Math.abs(m.x-f.x)<Math.abs((m.y-f.y)*.1)}else{let{center:f,innerRadius:m,outerCenter:g,outerRadius:x}=o;h=e.createRadialGradient(f.x*l+s,f.y*d+n,m*l,g.x*l+s,g.y*d+n,x*l)}if(u&&c&&t){let f=t.lineHeight/d;for(let m=0;m<t.lines.length;m++){let g=(m*t.lineHeight+r/2)/d;o.colorStops.forEach(x=>{let b=g+x.offset*f;b=Math.max(0,Math.min(1,b)),h.addColorStop(Math.floor(b*ey)/ey,Z.shared.setValue(x.color).toHex())})}}else o.colorStops.forEach(f=>{h.addColorStop(f.offset,Z.shared.setValue(f.color).toHex())});return h}}else{let o=e.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 O("FillStyle not recognised",i),"red"}var ey,ty=p(()=>{$e();ce();ki();ge();he();si();jn();ey=1e5});function B6(i){let e=i;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=$t.defaultDropShadow;i.dropShadow={alpha:e.dropShadowAlpha??t.alpha,angle:e.dropShadowAngle??t.angle,blur:e.dropShadowBlur??t.blur,color:e.dropShadowColor??t.color,distance:e.dropShadowDistance??t.distance}}if(e.strokeThickness!==void 0){N(re,"strokeThickness is now a part of stroke");let t=e.stroke,r={};if(Z.isColorLike(t))r.color=t;else if(t instanceof Ze||t instanceof Ft)r.fill=t;else if(Object.hasOwnProperty.call(t,"color")||Object.hasOwnProperty.call(t,"fill"))r=t;else throw new Error("Invalid stroke value.");i.stroke={...r,width:e.strokeThickness}}if(Array.isArray(e.fillGradientStops)){if(N(re,"gradient fill is now a fill pattern: `new FillGradient(...)`"),!Array.isArray(e.fill)||e.fill.length===0)throw new Error("Invalid fill value. Expected an array of colors for gradient fill.");e.fill.length!==e.fillGradientStops.length&&O("The number of fill colors must match the number of fill gradient stops.");let t=new Ze({start:{x:0,y:0},end:{x:0,y:1},textureSpace:"local"}),r=e.fillGradientStops.slice(),s=e.fill.map(n=>Z.shared.setValue(n).toNumber());r.forEach((n,o)=>{t.addColorStop(n,s[o])}),i.fill={fill:t}}}var Du,$t,Fc=p(()=>{Ne();$e();Ie();_e();he();si();jn();vu();_u();Fu();Du=class li extends fe{constructor(e={}){super(),this.uid=Y("textStyle"),this._tick=0,this._cachedFontString=null,B6(e),e instanceof li&&(e=e._toObject());let s={...li.defaultTextStyle,...e};for(let n in s){let o=n;this[o]=s[n]}this._tagStyles=e.tagStyles??void 0,this.update(),this._tick=0}get align(){return this._align}set align(e){this._align!==e&&(this._align=e,this.update())}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords!==e&&(this._breakWords=e,this.update())}get dropShadow(){return this._dropShadow}set dropShadow(e){this._dropShadow!==e&&(e!==null&&typeof e=="object"?this._dropShadow=this._createProxy({...li.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...li.defaultDropShadow}):null,this.update())}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily!==e&&(this._fontFamily=e,this.update())}get fontSize(){return this._fontSize}set fontSize(e){this._fontSize!==e&&(typeof e=="string"?this._fontSize=parseInt(e,10):this._fontSize=e,this.update())}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle!==e&&(this._fontStyle=e.toLowerCase(),this.update())}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant!==e&&(this._fontVariant=e,this.update())}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.update())}get leading(){return this._leading}set leading(e){this._leading!==e&&(this._leading=e,this.update())}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing!==e&&(this._letterSpacing=e,this.update())}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight!==e&&(this._lineHeight=e,this.update())}get padding(){return this._padding}set padding(e){this._padding!==e&&(this._padding=e,this.update())}get filters(){return this._filters}set filters(e){this._filters!==e&&(this._filters=Object.freeze(e),this.update())}get trim(){return this._trim}set trim(e){this._trim!==e&&(this._trim=e,this.update())}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline!==e&&(this._textBaseline=e,this.update())}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace!==e&&(this._whiteSpace=e,this.update())}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap!==e&&(this._wordWrap=e,this.update())}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth!==e&&(this._wordWrapWidth=e,this.update())}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._isFillStyle(e)&&(this._originalFill=this._createProxy({...gt.defaultFillStyle,...e},()=>{this._fill=nr({...this._originalFill},gt.defaultFillStyle)})),this._fill=nr(e===0?"black":e,gt.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({...gt.defaultStrokeStyle,...e},()=>{this._stroke=os({...this._originalStroke},gt.defaultStrokeStyle)})),this._stroke=os(e,gt.defaultStrokeStyle),this.update())}get tagStyles(){return this._tagStyles}set tagStyles(e){this._tagStyles!==e&&(this._tagStyles=e??void 0,this.update())}update(){this._tick++,this._cachedFontString=null,this.emit("update",this)}reset(){let e=li.defaultTextStyle;for(let t in e)this[t]=e[t]}assign(e){for(let t in e){let r=t;this[r]=e[t]}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 e=0;if(this._filters)for(let t=0;t<this._filters.length;t++)e+=this._filters[t].padding;return Math.max(this._padding,e)}destroy(e=!1){if(this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.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(e,t){return new Proxy(e,{set:(r,s,n)=>(r[s]===n||(r[s]=n,t?.(s,n),this.update()),!0)})}_isFillStyle(e){return(e??null)!==null&&!(Z.isColorLike(e)||e instanceof Ze||e instanceof Ft)}};Du.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};Du.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};$t=Du});P();var Rm={extension:{type:_.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(Am(),n3))}};P();var Bm={extension:{type:_.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(km(),o3))}};P();Jo();Xo();P();be();jr();var va;function $m(i){return va!==void 0||(va=(()=>{let e={stencil:!0,failIfMajorPerformanceCaveat:i??St.defaultOptions.failIfMajorPerformanceCaveat};try{if(!z.get().getWebGLRenderingContext())return!1;let r=z.get().createCanvas().getContext("webgl",e),s=!!r?.getContextAttributes()?.stencil;if(r){let n=r.getExtension("WEBGL_lose_context");n&&n.loseContext()}return r=null,s}catch{return!1}})()),va}be();var wa;async function qm(i={}){return wa!==void 0||(wa=await(async()=>{let e=z.get().getNavigator().gpu;if(!e)return!1;try{return await(await e.requestAdapter(i)).requestDevice(),!0}catch{return!1}})()),wa}jr();var G2=["webgl","webgpu","canvas"];async function F2(i){let e=[];i.preference?Array.isArray(i.preference)?e=i.preference.slice():(e.push(i.preference),G2.forEach(n=>{n!==i.preference&&e.push(n)})):e=G2.slice();let t,r={};for(let n=0;n<e.length;n++){let o=e[n];if(o==="webgpu"&&await qm()){let{WebGPURenderer:a}=await Promise.resolve().then(()=>(Cb(),Eb));t=a,r={...i,...i.webgpu};break}else if(o==="webgl"&&$m(i.failIfMajorPerformanceCaveat??St.defaultOptions.failIfMajorPerformanceCaveat)){let{WebGLRenderer:a}=await Promise.resolve().then(()=>(n_(),s_));t=a,r={...i,...i.webgl};break}else if(o==="canvas"){let{CanvasRenderer:a}=await Promise.resolve().then(()=>(I2(),B2));t=a,r={...i,...i.canvasOptions};break}}if(delete r.webgpu,delete r.webgl,delete r.canvasOptions,!t)throw new Error("No available renderer for the current environment");let s=new t;return await s.init(r),s}Mt();$d();_e();P();P();var ro=class{static init(e){Object.defineProperty(this,"resizeTo",{configurable:!0,set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(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 t,r;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,r=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,r=n}this.renderer.resize(t,r),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.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=_.Application;P();Ss();Pi();var io=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{configurable:!0,set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,Ot.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?Xe.shared:new Xe,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};io.extension=_.Application;H.add(ro);H.add(io);var U2=class Au{constructor(...e){this.stage=new me,e[0]!==void 0&&N(re,"Application constructor options are deprecated, please use Application.init() instead.")}async init(e){e={...e},this.stage||(this.stage=new me),this.renderer=await F2(e),Au._plugins.forEach(t=>{t.init.call(this,e)})}render(){this.renderer.render({container:this.stage})}get canvas(){return this.renderer.canvas}get view(){return N(re,"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(e=!1,t=!1){let r=Au._plugins.slice(0);r.reverse(),r.forEach(s=>{s.destroy.call(this)}),this.stage.destroy(t),this.stage=null,this.renderer.destroy(e),this.renderer=null}};U2._plugins=[];var Cc=U2;H.handleByList(_.Application,Cc._plugins);H.add(tn);A0();zr();It();ge();_e();Cs();xr();sr();zr();_e();var D2=class L2 extends ct{constructor(...e){let t=e[0]??{};t instanceof Float32Array&&(N(re,"use new MeshGeometry({ positions, uvs, indices }) instead"),t={positions:t,uvs:e[1],indices:e[2]}),t={...L2.defaultOptions,...t};let r=t.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=t.uvs;s||(t.positions?s=new Float32Array(r.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let n=t.indices||new Uint32Array([0,1,2,0,2,3]),o=t.shrinkBuffersToFit,a=new Me({data:r,label:"attribute-mesh-positions",shrinkToFit:o,usage:J.VERTEX|J.COPY_DST}),c=new Me({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:J.VERTEX|J.COPY_DST}),l=new Me({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:J.INDEX|J.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:c,format:"float32x2",stride:8,offset:0}},indexBuffer:l,topology:t.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(e){this.attributes.aPosition.buffer.data=e}get uvs(){return this.attributes.aUV.buffer.data}set uvs(e){this.attributes.aUV.buffer.data=e}get indices(){return this.indexBuffer.data}set indices(e){this.indexBuffer.data=e}};D2.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};var so=D2;P();P();ce();gr();mt();Zd();Na();var Pc=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(e){this._topology=e}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(e){this.texture!==e&&(this.texture=e,this._textureMatrixUpdateId=-1)}get uvs(){let t=this.geometry.getBuffer("aUV"),r=t.data,s=r,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==t._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=t._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 Mc=class{destroy(){}},no=class{constructor(e,t){this.localUniforms=new Te({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 ze({0:this.localUniforms}),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),r=t.batched,s=e.batched;if(t.batched=s,r!==s)return!0;if(s){let n=e._geometry;if(n.indices.length!==t.indexSize||n.positions.length!==t.vertexSize)return t.indexSize=n.indices.length,t.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(e);return o.texture.uid!==e._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,e._texture)}return!1}addRenderable(e,t){let r=this.renderer.renderPipes.batch,s=this._getMeshData(e);if(e.didViewUpdate&&(s.indexSize=e._geometry.indices?.length,s.vertexSize=e._geometry.positions?.length),s.batched){let n=this._getBatchableMesh(e);n.setTexture(e._texture),n.geometry=e._geometry,r.addToBatch(n,t)}else r.break(t),t.add(e)}updateRenderable(e){if(e.batched){let t=this._getBatchableMesh(e);t.setTexture(e._texture),t.geometry=e._geometry,t._batcher.updateElement(t)}}execute(e){if(!e.isRenderable)return;e.state.blend&&(e.state.blendMode=nn(e.groupBlendMode,e.texture._source));let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),Yi(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){var t,r;return(t=e._gpuData)[r=this.renderer.uid]||(t[r]=new Mc),e._gpuData[this.renderer.uid].meshData||this._initMeshData(e)}_initMeshData(e){return e._gpuData[this.renderer.uid].meshData={batched:e.batched,indexSize:0,vertexSize:0},e._gpuData[this.renderer.uid].meshData}_getBatchableMesh(e){var t,r;return(t=e._gpuData)[r=this.renderer.uid]||(t[r]=new Mc),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new Pc;return t.renderable=e,t.setTexture(e._texture),t.transform=e.groupTransform,t.roundPixels=this.renderer._roundPixels|e._roundPixels,e._gpuData[this.renderer.uid].batchableMesh=t,t}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};no.extension={type:[_.WebGLPipes,_.WebGPUPipes],name:"mesh"};H.add(no);var oo=class extends Nt{constructor(...e){let t=e[0];t instanceof ct&&(N(re,"Mesh: use new Mesh({ geometry, shader }) instead"),t={geometry:t,shader:e[1]},e[3]&&(N(re,"Mesh: drawMode argument has been removed, use geometry.topology instead"),t.geometry.topology=e[3]));let{geometry:r,shader:s,texture:n,roundPixels:o,state:a,...c}=t;super({label:"Mesh",...c}),this.renderPipeId="mesh",this._shader=null,this.allowChildren=!1,this.shader=s??null,this.texture=n??s?.texture??U.WHITE,this.state=a??De.for2d(),this._geometry=r,this._geometry.on("update",this.onViewUpdate,this),this.roundPixels=o??!1}get material(){return N(re,"mesh.material property has been removed, use mesh.shader instead"),this._shader}set shader(e){this._shader!==e&&(this._shader=e,this.onViewUpdate())}get shader(){return this._shader}set geometry(e){this._geometry!==e&&(this._geometry?.off("update",this.onViewUpdate,this),e.on("update",this.onViewUpdate,this),this._geometry=e,this.onViewUpdate())}get geometry(){return this._geometry}set texture(e){e||(e=U.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this.shader&&(this.shader.texture=e),this._texture=e,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(e){let{x:t,y:r}=e;if(!this.bounds.containsPoint(t,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 c=0;c+2<a;c+=n){let l=o[c]*2,d=o[c+1]*2,h=o[c+2]*2;if(Jl(t,r,s[l],s[l+1],s[d],s[d+1],s[h],s[h+1]))return!0}}else{let o=s.length/2;for(let a=0;a+2<o;a+=n){let c=a*2,l=(a+1)*2,d=(a+2)*2;if(Jl(t,r,s[c],s[c+1],s[l],s[l+1],s[d],s[d+1]))return!0}}return!1}destroy(e){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(r)}this._geometry?.off("update",this.onViewUpdate,this),this._texture=null,this._geometry=null,this._shader=null}};je();Rr();Po();_e();Cs();var Ac=class extends Nt{constructor(e,t){let{text:r,resolution:s,style:n,anchor:o,width:a,height:c,roundPixels:l,...d}=e;super({...d}),this.batched=!0,this._resolution=null,this._autoResolution=!0,this._didTextUpdate=!0,this._styleClass=t,this.text=r??"",this.style=n,this.resolution=s??null,this.allowChildren=!1,this._anchor=new Be({_onUpdate:()=>{this.onViewUpdate()}}),o&&(this.anchor=o),this.roundPixels=l??!1,a!==void 0&&(this.width=a),c!==void 0&&(this.height=c)}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}set text(e){e=e.toString(),this._text!==e&&(this._text=e,this.onViewUpdate())}get text(){return this._text}set resolution(e){this._autoResolution=e===null,this._resolution=e,this.onViewUpdate()}get resolution(){return this._resolution}get style(){return this._style}set style(e){e||(e={}),this._style?.off("update",this.onViewUpdate,this),e instanceof this._styleClass?this._style=e:this._style=new this._styleClass(e),this._style.on("update",this.onViewUpdate,this),this.onViewUpdate()}get width(){return Math.abs(this.scale.x)*this.bounds.width}set width(e){this._setWidth(e,this.bounds.width)}get height(){return Math.abs(this.scale.y)*this.bounds.height}set height(e){this._setHeight(e,this.bounds.height)}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this.bounds.width,e.height=Math.abs(this.scale.y)*this.bounds.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this.bounds.width),t!==void 0&&this._setHeight(t,this.bounds.height)}containsPoint(e){let t=this.bounds.width,r=this.bounds.height,s=-t*this.anchor.x,n=0;return e.x>=s&&e.x<=s+t&&(n=-r*this.anchor.y,e.y>=n&&e.y<=n+r)}onViewUpdate(){this.didViewUpdate||(this._didTextUpdate=!0),super.onViewUpdate()}destroy(e=!1){super.destroy(e),this.owner=null,this._bounds=null,this._anchor=null,(typeof e=="boolean"?e:e?.style)&&this._style.destroy(e),this._style=null,this._text=null}get styleKey(){return`${this._text}:${this._style.styleKey}:${this._resolution}`}};function O2(i,e){let t=i[0]??{};return(typeof t=="string"||i[1])&&(N(re,`use new ${e}({ text: "hi!", style }) instead`),t={text:t,style:i[1]}),t}$e();Ve();ta();be();ys();Ve();var ci=null,or=null;function b6(i,e){ci||(ci=z.get().createCanvas(256,128),or=ci.getContext("2d",{willReadFrequently:!0}),or.globalCompositeOperation="copy",or.globalAlpha=1),(ci.width<i||ci.height<e)&&(ci.width=er(i),ci.height=er(e))}function N2(i,e,t){for(let r=0,s=4*t*e;r<e;++r,s+=4)if(i[s+3]!==0)return!1;return!0}function H2(i,e,t,r,s){let n=4*e;for(let o=r,a=r*n+4*t;o<=s;++o,a+=n)if(i[a+3]!==0)return!1;return!0}function z2(...i){let e=i[0];e.canvas||(e={canvas:i[0],resolution:i[1]});let{canvas:t}=e,r=Math.min(e.resolution??1,1),s=e.width??t.width,n=e.height??t.height,o=e.output;if(b6(s,n),!or)throw new TypeError("Failed to get canvas 2D context");or.drawImage(t,0,0,s,n,0,0,s*r,n*r);let c=or.getImageData(0,0,s,n).data,l=0,d=0,h=s-1,u=n-1;for(;d<n&&N2(c,s,d);)++d;if(d===n)return Q.EMPTY;for(;N2(c,s,u);)--u;for(;H2(c,s,l,d,u);)++l;for(;H2(c,s,h,d,u);)--h;return++h,++u,or.globalCompositeOperation="source-over",or.strokeRect(l,d,h-l,u-d),or.globalCompositeOperation="copy",o??(o=new Q),o.set(l/r,d/r,(h-l)/r,(u-d)/r),o}Gu();Fu();ty();var ry=new Q;function cs(i){let e=0;for(let t=0;t<i.length;t++)i.charCodeAt(t)===32&&e++;return e}var Uu=class{getCanvasAndContext(e){let{text:t,style:r,resolution:s=1}=e,n=r._getFinalPadding(),o=Yt.measureText(t||" ",r),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),c=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),l=ir.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(r,n,s,l,o);let d=r.trim?z2({canvas:l.canvas,width:a,height:c,resolution:1,output:ry}):ry.set(0,0,a,c);return{canvasAndContext:l,frame:d}}returnCanvasAndContext(e){ir.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,r,s,n){if(n.runsByLine&&n.runsByLine.length>0){this._renderTaggedTextToCanvas(n,e,t,r,s);return}let{canvas:o,context:a}=s,c=ao(e),l=n.lines,d=n.lineHeight,h=n.lineWidths,u=n.maxLineWidth,f=n.fontProperties,m=o.height;if(a.resetTransform(),a.scale(r,r),a.textBaseline=e.textBaseline,e._stroke?.width){let S=e._stroke;a.lineWidth=S.width,a.miterLimit=S.miterLimit,a.lineJoin=S.join,a.lineCap=S.cap}a.font=c;let g,x,b=e.dropShadow?2:1,v=(e._stroke?.width??0)/2,w=(d-f.fontSize)/2;d-f.fontSize<0&&(w=0);for(let S=0;S<b;++S){let T=e.dropShadow&&S===0,C=T?Math.ceil(Math.max(1,m)+t*2):0,B=C*r;if(T)this._setupDropShadow(a,e,r,B);else{let R=e._gradientBounds,M=e._gradientOffset;if(R){let E={width:R.width,height:R.height,lineHeight:R.height,lines:n.lines};this._setFillAndStrokeStyles(a,e,E,t,v,M?.x??0,M?.y??0)}else M?this._setFillAndStrokeStyles(a,e,n,t,v,M.x,M.y):this._setFillAndStrokeStyles(a,e,n,t,v);a.shadowColor="rgba(0,0,0,0)"}for(let R=0;R<l.length;R++){g=v,x=v+R*d+f.ascent+w,g+=this._getAlignmentOffset(h[R],u,e.align);let M=0;if(e.align==="justify"&&e.wordWrap&&R<l.length-1){let E=cs(l[R]);E>0&&(M=(u-h[R])/E)}e._stroke?.width&&this._drawLetterSpacing(l[R],e,s,g+t,x+t-C,!0,M),e._fill!==void 0&&this._drawLetterSpacing(l[R],e,s,g+t,x+t-C,!1,M)}}}_renderTaggedTextToCanvas(e,t,r,s,n){let{canvas:o,context:a}=n,{runsByLine:c,lineWidths:l,maxLineWidth:d,lineAscents:h,lineHeights:u,hasDropShadow:f}=e,m=o.height;a.resetTransform(),a.scale(s,s),a.textBaseline=t.textBaseline;let g=f?2:1,x=t._stroke?.width??0;for(let v of c)for(let w of v){let S=w.style._stroke?.width??0;S>x&&(x=S)}let b=x/2,y=[];for(let v=0;v<c.length;v++){let w=c[v],S=[];for(let T of w){let C=ao(T.style);a.font=C,S.push({width:Yt._measureText(T.text,T.style.letterSpacing,a),font:C})}y.push(S)}for(let v=0;v<g;++v){let w=f&&v===0,S=w?Math.ceil(Math.max(1,m)+r*2):0,T=S*s;w||(a.shadowColor="rgba(0,0,0,0)");let C=b;for(let B=0;B<c.length;B++){let R=c[B],M=l[B],E=h[B],A=u[B],L=y[B],W=b;W+=this._getAlignmentOffset(M,d,t.align);let ee=0;if(t.align==="justify"&&t.wordWrap&&B<c.length-1){let j=0;for(let F of R)j+=cs(F.text);j>0&&(ee=(d-M)/j)}let G=C+E,D=W+r;for(let j=0;j<R.length;j++){let F=R[j],{width:te,font:de}=L[j];if(a.font=de,a.textBaseline=F.style.textBaseline,F.style._stroke?.width){let se=F.style._stroke;if(a.lineWidth=se.width,a.miterLimit=se.miterLimit,a.lineJoin=se.join,a.lineCap=se.cap,w)if(F.style.dropShadow)this._setupDropShadow(a,F.style,s,T);else{let ue=cs(F.text);D+=te+ue*ee;continue}else{let ue=Yt.measureFont(de),$=F.style.lineHeight||ue.fontSize,dt={width:te,height:$,lineHeight:$,lines:[F.text]};a.strokeStyle=co(se,a,dt,r*2,D-r,C)}this._drawLetterSpacing(F.text,F.style,n,D,G+r-S,!0,ee)}let we=cs(F.text);D+=te+we*ee}D=W+r;for(let j=0;j<R.length;j++){let F=R[j],{width:te,font:de}=L[j];if(a.font=de,a.textBaseline=F.style.textBaseline,F.style._fill!==void 0){if(w)if(F.style.dropShadow)this._setupDropShadow(a,F.style,s,T);else{let se=cs(F.text);D+=te+se*ee;continue}else{let se=Yt.measureFont(de),ue=F.style.lineHeight||se.fontSize,$={width:te,height:ue,lineHeight:ue,lines:[F.text]};a.fillStyle=co(F.style._fill,a,$,r*2,D-r,C)}this._drawLetterSpacing(F.text,F.style,n,D,G+r-S,!1,ee)}let we=cs(F.text);D+=te+we*ee}C+=A}}}_setFillAndStrokeStyles(e,t,r,s,n,o=0,a=0){if(e.fillStyle=t._fill?co(t._fill,e,r,s*2,o,a):null,t._stroke?.width){let c=n+s*2;e.strokeStyle=co(t._stroke,e,r,c,o,a)}}_setupDropShadow(e,t,r,s){e.fillStyle="black",e.strokeStyle="black";let n=t.dropShadow,o=n.color,a=n.alpha;e.shadowColor=Z.shared.setValue(o).setAlpha(a).toRgbaString();let c=n.blur*r,l=n.distance*r;e.shadowBlur=c,e.shadowOffsetX=Math.cos(n.angle)*l,e.shadowOffsetY=Math.sin(n.angle)*l+s}_getAlignmentOffset(e,t,r){return r==="right"?t-e:r==="center"?(t-e)/2:0}_drawLetterSpacing(e,t,r,s,n,o=!1,a=0){let{context:c}=r,l=t.letterSpacing,d=!1;if(Yt.experimentalLetterSpacingSupported&&(Yt.experimentalLetterSpacing?(c.letterSpacing=`${l}px`,c.textLetterSpacing=`${l}px`,d=!0):(c.letterSpacing="0px",c.textLetterSpacing="0px")),(l===0||d)&&a===0){o?c.strokeText(e,s,n):c.fillText(e,s,n);return}if(a!==0&&(l===0||d)){let g=e.split(" "),x=s,b=c.measureText(" ").width;for(let y=0;y<g.length;y++)o?c.strokeText(g[y],x,n):c.fillText(g[y],x,n),x+=c.measureText(g[y]).width+b+a;return}let h=s,u=Yt.graphemeSegmenter(e),f=c.measureText(e).width,m=0;for(let g=0;g<u.length;++g){let x=u[g];o?c.strokeText(x,h,n):c.fillText(x,h,n);let b="";for(let y=g+1;y<u.length;++y)b+=u[y];m=c.measureText(b).width,h+=f-m+l,x===" "&&(h+=a),f=m}}},Er=new Uu;Gu();Fc();P();P();Gt();Wl();function iy(i,e){let{texture:t,bounds:r}=i,s=e._style._getFinalPadding();Yo(r,e._anchor,t);let n=e._anchor._x*s*2,o=e._anchor._y*s*2;r.minX-=s-n,r.minY-=s-o,r.maxX-=s-n,r.maxY-=s-o}Ba();var Uc=class extends yr{};var lo=class{constructor(e){this._renderer=e,e.runners.resolutionChange.add(this),this._managedTexts=new Re({renderer:e,type:"renderable",onUnload:this.onTextUnload.bind(this),name:"canvasText"})}resolutionChange(){for(let e in this._managedTexts.items){let t=this._managedTexts.items[e];t?._autoResolution&&t.onViewUpdate()}}validateRenderable(e){let t=this._getGpuText(e),r=e.styleKey;return t.currentKey!==r?!0:e._didTextUpdate}addRenderable(e,t){let r=this._getGpuText(e);if(e._didTextUpdate){let s=e._autoResolution?this._renderer.resolution:e.resolution;(r.currentKey!==e.styleKey||e._resolution!==s)&&this._updateGpuText(e),e._didTextUpdate=!1,iy(r,e)}this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}_updateGpuText(e){let t=this._getGpuText(e);t.texture&&this._renderer.canvasText.decreaseReferenceCount(t.currentKey),e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,t.texture=this._renderer.canvasText.getManagedTexture(e),t.currentKey=e.styleKey}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Uc;return t.currentKey="--",t.renderable=e,t.transform=e.groupTransform,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,this._managedTexts.add(e),t}onTextUnload(e){let t=e._gpuData[this._renderer.uid];if(!t)return;let{canvasText:r}=this._renderer;r.getReferenceCount(t.currentKey)>0?r.decreaseReferenceCount(t.currentKey):t.texture&&r.returnTexture(t.texture)}destroy(){this._managedTexts.destroy(),this._renderer=null}};lo.extension={type:[_.WebGLPipes,_.WebGPUPipes,_.CanvasPipes],name:"text"};P();Ur();Rr();_e();Fc();td();var ls=class{constructor(e,t){this._activeTextures={},this._renderer=e,this._retainCanvasContext=t}getTexture(e,t,r,s){typeof e=="string"&&(N("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:r,resolution:t}),e.style instanceof $t||(e.style=new $t(e.style)),e.textureStyle instanceof ot||(e.textureStyle=new ot(e.textureStyle)),typeof e.text!="string"&&(e.text=e.text.toString());let{text:n,style:o,textureStyle:a,autoGenerateMipmaps:c}=e,l=e.resolution??this._renderer.resolution,{frame:d,canvasAndContext:h}=Er.getCanvasAndContext({text:n,style:o,resolution:l}),u=ca(h.canvas,d.width,d.height,l,c);if(a&&(u.source.style=a),o.trim&&(d.pad(o.padding),u.frame.copyFrom(d),u.frame.scale(1/l),u.updateUvs()),o.filters){let f=this._applyFilters(u,o.filters);return this.returnTexture(u),Er.returnCanvasAndContext(h),f}return this._renderer.texture.initSource(u._source),this._retainCanvasContext||Er.returnCanvasAndContext(h),u}returnTexture(e){let t=e.source,r=t.resource;if(this._retainCanvasContext&&r?.getContext){let s=r.getContext("2d");s&&Er.returnCanvasAndContext({canvas:r,context:s})}t.resource=null,t.uploadMethodId="unknown",t.alphaMode="no-premultiply-alpha",Pe.returnTexture(e,!0)}renderTextToCanvas(){N("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}getManagedTexture(e){e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let t=e.styleKey;if(this._activeTextures[t])return this._increaseReferenceCount(t),this._activeTextures[t].texture;let r=this.getTexture({text:e.text,style:e.style,resolution:e._resolution,textureStyle:e.textureStyle,autoGenerateMipmaps:e.autoGenerateMipmaps});return this._activeTextures[t]={texture:r,usageCount:1},r}decreaseReferenceCount(e){let t=this._activeTextures[e];t&&(t.usageCount--,t.usageCount===0&&(this.returnTexture(t.texture),this._activeTextures[e]=null))}getReferenceCount(e){return this._activeTextures[e]?.usageCount??0}_increaseReferenceCount(e){this._activeTextures[e].usageCount++}_applyFilters(e,t){let r=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind({target:r,clear:!1}),s}destroy(){this._renderer=null;for(let e in this._activeTextures)this._activeTextures[e]&&this.returnTexture(this._activeTextures[e].texture);this._activeTextures=null}};var ho=class extends ls{constructor(e){super(e,!0)}};ho.extension={type:[_.CanvasSystem],name:"canvasText"};P();var uo=class extends ls{constructor(e){super(e,!1)}};uo.extension={type:[_.WebGLSystem,_.WebGPUSystem],name:"canvasText"};H.add(ho);H.add(uo);H.add(lo);var fo=class extends Ac{constructor(...e){let t=O2(e,"Text");super(t,$t),this.renderPipeId="text",t.textureStyle&&(this.textureStyle=t.textureStyle instanceof ot?t.textureStyle:new ot(t.textureStyle)),this.autoGenerateMipmaps=t.autoGenerateMipmaps??oe.defaultOptions.autoGenerateMipmaps}updateBounds(){let e=this._bounds,t=this._anchor,r=0,s=0;if(this._style.trim){let{frame:n,canvasAndContext:o}=Er.getCanvasAndContext({text:this.text,style:this._style,resolution:1});Er.returnCanvasAndContext(o),r=n.width,s=n.height}else{let n=Yt.measureText(this._text,this._style);r=n.width,s=n.height}e.minX=-t._x*r,e.maxX=e.minX+r,e.minY=-t._y*s,e.maxY=e.minY+s}};xr();sr();zr();mr();qd();function Lu(i,e=null){let t=i*6;if(t>65535?e||(e=new Uint32Array(t)):e||(e=new Uint16Array(t)),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let r=0,s=0;r<t;r+=6,s+=4)e[r+0]=s+0,e[r+1]=s+1,e[r+2]=s+2,e[r+3]=s+0,e[r+4]=s+2,e[r+5]=s+3;return e}mr();function ny(i){return{dynamicUpdate:sy(i,!0),staticUpdate:sy(i,!1)}}function sy(i,e){let t=[];t.push(`
|
|
912
912
|
|
|
913
913
|
var index = 0;
|
|
914
914
|
|
|
@@ -916,15 +916,16 @@ fn mainFragment(
|
|
|
916
916
|
{
|
|
917
917
|
const p = ps[i];
|
|
918
918
|
|
|
919
|
-
`);let r=0;for(let n in i){let o=i[n];if(
|
|
919
|
+
`);let r=0;for(let n in i){let o=i[n];if(e!==o.dynamic)continue;t.push(`offset = index + ${r}`),t.push(o.code);let a=qe(o.format);r+=a.stride/4}t.push(`
|
|
920
920
|
index += stride * 4;
|
|
921
921
|
}
|
|
922
|
-
`),
|
|
922
|
+
`),t.unshift(`
|
|
923
923
|
var stride = ${r};
|
|
924
|
-
`);let s=
|
|
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};
|
|
924
|
+
`);let s=t.join(`
|
|
925
|
+
`);return new Function("ps","f32v","u32v",s)}var Dc=class{constructor(e){this._size=0,this._generateParticleUpdateCache={};let t=this._size=e.size??1e3,r=e.properties,s=0,n=0;for(let d in r){let h=r[d],u=qe(h.format);h.dynamic?n+=u.stride:s+=u.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new Wt(t*4*s),this.dynamicAttributeBuffer=new Wt(t*4*n),this.indexBuffer=Lu(t);let o=new ct,a=0,c=0;this._staticBuffer=new Me({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:J.VERTEX|J.COPY_DST}),this._dynamicBuffer=new Me({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:J.VERTEX|J.COPY_DST});for(let d in r){let h=r[d],u=qe(h.format);h.dynamic?(o.addAttribute(h.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:h.format}),a+=u.size):(o.addAttribute(h.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:c*4,format:h.format}),c+=u.size)}o.addIndex(this.indexBuffer);let l=this.getParticleUpdate(r);this._dynamicUpload=l.dynamicUpdate,this._staticUpload=l.staticUpdate,this.geometry=o}getParticleUpdate(e){let t=I6(e);return this._generateParticleUpdateCache[t]?this._generateParticleUpdateCache[t]:(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e),this._generateParticleUpdateCache[t])}generateParticleUpdate(e){return ny(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,this._size*1.5|0),this.staticAttributeBuffer=new Wt(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new Wt(this._size*this._dynamicStride*4*4),this.indexBuffer=Lu(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let r=this.dynamicAttributeBuffer;if(this._dynamicUpload(e,r.float32View,r.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,e.length*this._dynamicStride*4,!0),t){let s=this.staticAttributeBuffer;this._staticUpload(e,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,e.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}};function I6(i){let e=[];for(let t in i){let r=i[t];e.push(t,r.code,r.dynamic?"d":"s")}return e.join("_")}be();ce();pr();Zo();ge();ql();Mt();Pu();$o();Fc();Ne();H.add(Rm,Bm);function Ou(i,e,t){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=e*s;return{x:i.fillHorizontalType==="Right"?e/2-o:-e/2,y:-t/2,width:o,height:t}}let n=t*s;return{x:-e/2,y:i.fillVerticalType==="Top"?-t/2:t/2-n,width:e,height:n}}var oy="prefab-v1",G6=[[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 ay(i){return!Number.isSafeInteger(i)||!G6.some(([e,t])=>i>=e&&i<=t)?null:i===10003004||i===10008001?128:256}var F6="sprite-v1",U6="/qxqy-assets/",D6=[[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 cr(i){return i==null||i===""?"StaticReference":typeof i=="string"?i:typeof i.Name=="string"?i.Name:"Unknown"}function qt(i,e){return`${cr(e)}:${i}`}function Lc(i,e){let t=cr(e);return t==="Prefab"?ay(i)!==null:t==="StaticReference"&&Number.isSafeInteger(i)&&i>100006&&D6.some(([r,s])=>i>=r&&i<=s)}function Nu(i,e=0,t){let r=cr(t);if(!["StaticReference","Prefab"].includes(r))throw new Error(`Unsupported image source: ${r}`);return`${U6}${r==="Prefab"?oy:F6}/${i}.png${e?`?refresh=${e}`:""}`}function cy(i,e=0,t){return Nu(i,e,t).replace(".png",".json")}var L6=Object.freeze(["KEYBOARD","TOUCHSCREEN","CONTROLLER_CONSOLE","CONTROLLER_MOBILE"]),O6=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 Mj=Object.freeze({KEYBOARD:"pc-16-9",TOUCHSCREEN:"mobile-16-9",CONTROLLER_CONSOLE:"pc-16-9",CONTROLLER_MOBILE:"mobile-16-9"}),Aj=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"}),Rj=Object.freeze(["server-container","container","textbox","cursor","reference","grid","image","button","textwindow","keyhint","animation","fullscreen"]),kj=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}),Bj=Object.freeze({100001:"rect",100002:"circle",100003:"triangle",100004:"fourstar",100005:"fivestar",100006:"ring"});var Ij=Object.freeze({font:4294967295,bg:16777215,outline:858993459,image:4294967295});function po(i,e,t){return{x:i.a*e+i.c*t+i.tx,y:i.b*e+i.d*t+i.ty}}function mo(i){let e=i.a*i.d-i.b*i.c;return!Number.isFinite(e)||Math.abs(e)<1e-8?null:{a:i.d/e,b:-i.b/e,c:-i.c/e,d:i.a/e,tx:(i.c*i.ty-i.d*i.tx)/e,ty:(i.b*i.tx-i.a*i.ty)/e}}var Oc=i=>Number.isFinite(Number(i))?Math.max(0,Number(i)):0;function dy(i,e){if(!i||i.kind!=="image"||i.enableMask!==!0||!e)return null;let t=Oc(i.sourceWidth??i.width),r=Oc(i.sourceHeight??i.height),s=i.enableSoftEdge===!0,n=i.softEdgeMode!=="Pixel",o=s?Oc(i.softEdgeWidthX):0,a=s?Oc(i.softEdgeWidthY):0;return{id:i.id,matrix:e,width:t,height:r,featherX:n?t*o/100:o,featherY:n?r*a/100:a}}function Hu(i,e,t){let r=(s,n)=>s<=0?0:!(n>0)||s>=n?1:s/n;return Math.min(r(i+t.width/2,t.featherX),r(t.width/2-i,t.featherX),r(e+t.height/2,t.featherY),r(t.height/2-e,t.featherY))}function N6(i){let e={children:[]},t=[e],r=[];for(let s of i||[]){if(!s||s.id==null)continue;let n=s.masks||[],o=n.map(c=>JSON.stringify([c.id,c.matrix,c.width,c.height,c.featherX,c.featherY])),a=0;for(;a<r.length&&a<o.length&&r[a]===o[a];)a++;t.length=a+1;for(let c=a;c<n.length;c++){let l={mask:n[c],children:[]};t.at(-1).children.push(l),t.push(l)}t.at(-1).children.push({item:s}),r=o}return e.children}var hy=()=>({a:1,b:0,c:0,d:1,tx:0,ty:0});function ly(i,e){let t=mo(i)||hy();return{a:t.a*e.a+t.c*e.b,b:t.b*e.a+t.d*e.b,c:t.a*e.c+t.c*e.d,d:t.b*e.c+t.d*e.d,tx:t.a*e.tx+t.c*e.ty+t.tx,ty:t.b*e.tx+t.d*e.ty+t.ty}}function uy(i){let e=[],t=0,r=(s,n=null,o=hy())=>{s.forEach((a,c)=>{let l=`paint-mask:${t++}`,d=s.length-1-c;if(a.mask){let h=a.mask;e.push({id:l,parent:n,z:d,group:!1,kind:"image",primitive:"rect",imageColor:0,sourceWidth:h.width,sourceHeight:h.height,matrix:ly(o,h.matrix),enableMask:!0,enableSoftEdge:!0,softEdgeMode:"Pixel",softEdgeWidthX:h.featherX,softEdgeWidthY:h.featherY}),r(a.children,l,h.matrix)}else{let h=a.item,u=h.sourceWidth??h.width??0,f=h.sourceHeight??h.height??0,m=(h.rotationZ||0)*Math.PI/180,g=h.matrix||{a:Math.cos(m),b:Math.sin(m),c:-Math.sin(m),d:Math.cos(m),tx:(h.left||0)+u/2,ty:(h.bottom||0)+f/2},x=mo(o),b=(h.clipPolygons||[]).map(w=>w.map(S=>x?po(x,S.x,S.y):S)),{masks:y,...v}=h;e.push({...v,id:l,parent:n,z:d,group:!1,enableMask:!1,clipToParent:!1,sourceWidth:u,sourceHeight:f,matrix:ly(o,g),clipPolygons:b})}})};return r(N6(i)),{format:"tree-v1",reset:!0,nodes:e}}function zu(i,e){let t=Math.max(1,i.width),r=Math.max(1,i.height),s=i.getContext("2d"),n=s.createImageData(t,r),o=n.data;for(let a=0;a<r;a+=1){let c=e.height/2-(a+.5)*e.height/r;for(let l=0;l<t;l+=1){let d=-e.width/2+(l+.5)*e.width/t,h=Math.round(255*Hu(d,c,e)),u=(a*t+l)*4;o[u]=255,o[u+1]=255,o[u+2]=255,o[u+3]=h}}return s.putImageData(n,0,0),i}function Wu(i,e,t){if(!i?.showBar||i.max<=0||e<=0||t<=0)return null;let r=i.horizontal===!0,s=r?e:t,n=Math.max(0,s-4),o=Math.min(n,Math.max(18,n*s/(s+i.max))),a=n-o,c=a*i.offset/i.max,l=Math.min(8,r?t:e),d=r?{x:-e/2+2,y:t/2-l-2,width:n,height:l}:{x:e/2-l-2,y:-t/2+2,width:l,height:n},h=r?{...d,x:d.x+c,width:o}:{...d,y:d.y+c,height:o};return{track:d,thumb:h,travel:a}}function fy(i,e){let t=Math.max(0,Math.floor(i.offset/i.lineHeight)-1),r=Math.min(i.lines.length,Math.ceil((i.offset+e)/i.lineHeight)+1);return{text:i.lines.slice(t,r).join(`
|
|
926
|
+
`),y:t*i.lineHeight}}function py(i){let e=i[0]||[],t=(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,c)=>{let l=r[(c+1)%r.length];return o+a.x*l.y-l.x*a.y},0)>=0?1:-1;for(let o=0;o<r.length&&e.length;o++){let a=r[o],c=r[(o+1)%r.length],l=e;e=[];let d=l[l.length-1],h=t(a,c,d)*n;for(let u of l){let f=t(a,c,u)*n;if(f>=0!=h>=0){let m=h/(h-f);e.push({x:d.x+m*(u.x-d.x),y:d.y+m*(u.y-d.y)})}f>=0&&e.push(u),d=u,h=f}}}return e}var my="qxqy-image-refresh",lr=new Map,go=new Map,bo=new Map,Vu=new Set,H6=16777216,gy=!1;function z6(i,e){bo.set(i,e),lr.delete(i),go.delete(i);for(let t of Vu)t(i)}var by=i=>/^\d+$/.test(i)?qt(Number(i)):i;function ju(){if(!(gy||typeof window>"u")){gy=!0;try{for(let[i,e]of Object.entries(JSON.parse(localStorage.getItem(my)||"{}")))bo.set(by(i),e)}catch{}window.addEventListener("storage",i=>{if(i.key===my)try{for(let[e,t]of Object.entries(JSON.parse(i.newValue||"{}"))){let r=by(e);bo.get(r)!==t&&z6(r,t)}}catch{}})}}function xy(i){return ju(),Vu.add(i),()=>Vu.delete(i)}function W6(i,e){if(ju(),cr(e)!=="StaticReference"||!Lc(i,e))return Promise.resolve(null);let t=qt(i,e),r=go.get(t);if(r)return r;let s=fetch(cy(i,bo.get(t),e),{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 go.get(t)===s&&go.delete(t),n});return go.set(t,s),s}async function _y(i,e){let[t,r]=await Promise.all([V6(i,e),W6(i,e).then(s=>({meta:s,error:""}),s=>({meta:void 0,error:s.message}))]);return{image:t,...r}}function V6(i,e){if(ju(),!Lc(i,e))return Promise.reject(new Error("Image source/ID is not in the preview allowlist"));let t=qt(i,e),r=lr.get(t);if(r&&(!r.failed||Date.now()<r.retryAt))return lr.delete(t),lr.set(t,r),r.promise;let s={pixels:0,failed:!1};return s.promise=new Promise((n,o)=>{let a=new Image,c=setTimeout(()=>{a.src="",l(new Error("\u56FE\u7247\u52A0\u8F7D\u8D85\u65F6"))},45e3);function l(d){if(clearTimeout(c),a.onload=a.onerror=null,d){s.failed=!0,s.retryAt=Date.now()+6e4,o(d);return}s.pixels=a.width*a.height;let h=[...lr.values()].reduce((u,f)=>u+f.pixels,0);for(let[u,f]of lr){if(h<=H6&&lr.size<=128)break;u!==t&&(!f.pixels&&!f.failed||(lr.delete(u),h-=f.pixels))}n(a)}a.onload=()=>l(),a.onerror=()=>l(new Error(`\u56FE\u7247 ${i} \u52A0\u8F7D\u5931\u8D25\uFF0C\u53EF\u5728\u5C5E\u6027\u9762\u677F\u5237\u65B0\u7D20\u6750`)),a.src=Nu(i,bo.get(t),e)}),lr.set(t,s),s.promise}function j6(i){return!!i?.border&&Object.values(i.border).some(e=>Number.isFinite(e)&&e>0)}function vy(i,e){let t=typeof e=="object"?e?.Name:e;return j6(i)&&t!=="Basic"?"Stretch":"Basic"}function yy(i,e,t,r){e=Number.isFinite(e)?Math.max(0,e):0,t=Number.isFinite(t)?Math.max(0,t):0;let s=Math.min(1,i/(e+t||1));e*=s,t*=s;let n=Math.min(1,r/(e+t||1));return{source:[0,e,i-t,i],target:[0,e*n,r-t*n,r]}}function wy(i,e,t){if(!(i?.width>0&&i?.height>0&&e>0&&t>0))return[];let r=yy(i.width,i.border.left,i.border.right,e),s=yy(i.height,i.border.top,i.border.bottom,t),n=[];for(let o=0;o<3;o++)for(let a=0;a<3;a++){let c=[r.target[a],s.target[o],r.target[a+1]-r.target[a],s.target[o+1]-s.target[o]];c[2]<=0||c[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:c})}return n}var di='"Microsoft YaHei UI","Microsoft YaHei","HarmonyOS Sans SC","Noto Sans CJK SC",sans-serif',Xu="/qxqy-font";var Yu=i=>`QxqyLocal_${i}`,Sy=i=>i?`"${Yu(i)}",${di}`:di;var $u;function Ty(){return $u||=Y6().catch(i=>{throw $u=null,i}),$u}async function Y6(){let i={cache:"no-store",credentials:"same-origin",mode:"same-origin",signal:AbortSignal.timeout(1e4)},e=await fetch(`${Xu}/manifest`,i);if(!e.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:t,scope:r="all"}=await e.json();if(t===null)return null;if(typeof t!="string"||!/^[a-f0-9]{64}$/.test(t))throw new Error("\u672C\u5730\u5B57\u4F53\u6807\u8BC6\u65E0\u6548");let s=await fetch(`${Xu}/file/${t}`,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(Yu(t),n);await o.load(),document.fonts.add(o);let a=Sy(t),c="qxqy-local-font-style",l=document.getElementById(c);return r==="game"?l?.remove():(l||(l=document.createElement("style"),l.id=c,document.head.appendChild(l)),l.textContent=`[data-qxqy-font-ui], [data-qxqy-font-ui] * { font-family: ${a} !important; }`),a}var Nc={"\u611F\u8C22@xiaomol444\u63D0\u4F9B\u7684\u56FE\u7247\u3001\u97F3\u6548\u3001\u754C\u9762\u52A8\u6548\u7D20\u6750":"Thanks to @xiaomol444 for providing the image, sound effect, and UI animation assets.",\u64AD\u653E\u52A8\u6548\u97F3\u6548:"Play effect sound",\u52A8\u6548\u5C42\u7EA7:"Effect layer",\u6240\u6709\u63A7\u4EF6\u4E4B\u4E0A:"Above all controls",\u6240\u6709\u63A7\u4EF6\u4E4B\u4E0B:"Below all controls","\u652F\u6301\u6D4F\u89C8\u5668\u52A8\u6548\u64AD\u653E\uFF1B\u975E\u7A7A\u52A8\u6548 GIA \u914D\u7F6E\u5C1A\u672A\u6838\u5B9E\u3002":"Browser effect playback is supported; nonempty effect settings in GIA remain unverified.",\u8BF7\u9009\u62E9\u52A8\u6548\u7D20\u6750:"Choose an effect","\u753B\u5E03\u9884\u89C8\u9759\u97F3\uFF1B\u52A0\u8F7D\u5931\u8D25\u53EA\u8DF3\u8FC7\u5F53\u524D\u52A8\u6548\u3002":"Canvas preview is muted. Unavailable effects are skipped.",\u9009\u62E9\u7D20\u6750:"Choose effect","\u91CD\u64AD / \u91CD\u8BD5":"Replay / retry",\u505C\u6B62\u9884\u89C8:"Stop Preview","\u641C\u7D22 ID / \u540D\u79F0":"Search ID / name",\u641C\u7D22\u52A8\u6548:"Search effects","\u52A8\u6548\u52A0\u8F7D\u5931\u8D25\uFF08{0}\uFF09":"Effects unavailable ({0})","\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",\u90E8\u5206\u7EC4\u5408\u5BFC\u51FA:"Export Selected Controls","\u52FE\u9009\u5BA2\u6237\u7AEF\u63A7\u4EF6\u53CA\u5176\u5B50\u6811\uFF0C\u7EC4\u5408\u4E3A\u4E00\u4E2A GIA \u6587\u4EF6\u3002\u7236\u5B50\u540C\u65F6\u9009\u4E2D\u65F6\u53EA\u5BFC\u51FA\u4E00\u6B21\u3002":"Select client controls and their subtrees for one GIA file. Overlapping selections are exported once.",\u53EF\u5BFC\u51FA\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6:"Exportable Client Controls","\u5BFC\u51FA {0}":"Export {0}","\u9884\u89C8 {0}":"Preview {0}","{0} \u4E2A\u63A7\u4EF6":"{0} controls",\u6CA1\u6709\u53EF\u5BFC\u51FA\u7684\u5BA2\u6237\u7AEF\u63A7\u4EF6:"No client controls to export","\u6B63\u5728\u52A0\u8F7D\u2026":"Loading\u2026",\u5BFC\u51FA\u9884\u89C8:"Export Preview","\u9884\u89C8\u5F53\u524D\u9879\u72EC\u7ACB\u5BFC\u51FA\u540E\u7684\u5E03\u5C40\uFF0C\u4E0D\u6539\u53D8\u539F\u9879\u76EE\u3002":"Preview this item as an independent template without changing the project.",\u5305\u542B\u6302\u8F7D\u811A\u672C\u53CA\u672A\u6302\u8F7D\u6A21\u5757:"Include attached scripts and unattached modules",\u5168\u9009:"Select All",\u6E05\u9664:"Clear","\u5DF2\u9009 {0} \u9879":"{0} selected","\u6B63\u5728\u5BFC\u51FA\u2026":"Exporting\u2026","\u5BFC\u51FA GIA":"Export GIA",\u5BFC\u51FA\u5F53\u524D\u5BA2\u6237\u7AEF\u63A7\u4EF6\u53CA\u5176\u5B50\u6811:"Export this client control and its subtree","\u8BF7\u9009\u62E9\u81F3\u5C11\u4E00\u4E2A\u5BA2\u6237\u7AEF\u63A7\u4EF6 controlIds":"Select at least one client control in controlIds","revision conflict: reload export choices":"Revision conflict: reopen the export selection","\u5DF2\u5305\u542B\u672A\u6302\u8F7D\u7684 Lua \u6A21\u5757\uFF1BLua \u52A8\u6001\u5F15\u7528\u65E0\u6CD5\u81EA\u52A8\u5224\u65AD\uFF0C\u8BF7\u6838\u5BF9\u5916\u90E8\u6A21\u677F\u548C\u811A\u672C\u4F9D\u8D56\u3002":"Unattached Lua modules are included. Check external template and script dependencies; dynamic Lua references cannot be resolved automatically.","\u672C\u6B21\u672A\u5305\u542B\u6302\u8F7D\u811A\u672C\uFF0C\u5BFC\u5165\u540E\u9700\u53E6\u884C\u5BFC\u5165\u5E76\u6302\u8F7D\u3002":"Attached scripts are excluded. Import and attach them separately.","\u672A\u77E5\u5BA2\u6237\u7AEF\u63A7\u4EF6\uFF1A{0}":"Unknown client control: {0}","{0}\uFF1A\u4EC5\u5728\u5BFC\u51FA\u526F\u672C\u4E2D\u63D0\u5347\u4E3A\u72EC\u7ACB\u6A21\u677F\uFF0C\u4FDD\u7559\u56DB\u5E73\u53F0\u5C40\u90E8\u53D8\u6362\uFF1B\u5916\u90E8\u7236\u7EA7\u7684\u7F29\u653E\u3001\u65CB\u8F6C\u3001\u906E\u7F69\u53CA\u663E\u9690\u4E0D\u5305\u542B\u5728\u5185\u3002":"{0}: Promoted to an independent template in the export copy only. Local transforms for all four platforms are retained; the parent's scale, rotation, masks and visibility are excluded.","{0}\uFF1A\u5F15\u7528 {1} \u4E0D\u5728\u672C\u6B21\u5BFC\u51FA\u4E2D\uFF0C\u8BF7\u540C\u65F6\u5BFC\u5165\u5BF9\u5E94\u6A21\u677F\u3002":"{0}: Reference {1} is outside this export. Import the referenced template separately.","{0}\uFF1A\u4E8C\u8FDB\u5236\u6A21\u677F\u5F15\u7528\u539F\u6837\u4FDD\u7559\uFF0C\u65E0\u6CD5\u81EA\u52A8\u5224\u65AD\u5916\u90E8\u4F9D\u8D56\u3002":"{0}: The binary template reference is preserved unchanged. External dependencies cannot be resolved automatically.","{0}\uFF1A\u811A\u672C\u6620\u5C04 {1} \u7684\u6E90\u7801\u672A\u767B\u8BB0\uFF0C\u8BF7\u53E6\u884C\u5BFC\u5165\u3002":"{0}: Source for script mapping {1} is not registered. Import it separately.","{0}\uFF1A\u4EC5\u767B\u8BB0\u4E86\u8DEF\u5F84\uFF0C\u6CA1\u6709\u5185\u8054\u6E90\u7801\uFF1B\u8BF7\u6838\u5BF9\u6E38\u620F\u5185\u7684\u811A\u672C\u6587\u4EF6\u3002":"{0}: Only the path is registered, without inline source. Check the script file in the game."};var qu="qxqy-ui-language",zc="qxqy-ui-language-change",hi=new Set,Ey=i=>["auto","zh","en"].includes(i);function Ku(){try{let i=globalThis.localStorage?.getItem(qu);return Ey(i)?i:"auto"}catch{return"auto"}}var xo=Ku(),Cy=null;function $6(i="auto",e="zh-CN",t=""){return i==="zh"||i==="en"?i:/^(?:zh|cmn|yue|wuu|hak|nan|gan|hsn)(?:[-_]|$)/i.test(t||e)?"zh":"en"}var Py=()=>xo,Wc=()=>Cy||{language:typeof window>"u"?"zh-CN":globalThis.navigator?.language||globalThis.navigator?.languages?.[0]||Intl.DateTimeFormat().resolvedOptions().locale||"en",source:"browser"},Vc=()=>$6(xo,Wc().language);async function My(i,e=globalThis.fetch){try{let t=await e(i,{method:"POST",mode:"same-origin",credentials:"same-origin",cache:"no-store",headers:{"content-type":"application/json"},body:"{}",signal:AbortSignal.timeout(4e3)});if(t.ok){let r=await t.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){Cy={language:n,source:s.source||"host"};for(let o of hi)o()}}}}catch{}return Wc()}function ds(i){if(!(i?.type==="storage"&&i.key!==qu&&i.key!==null)){xo=i?.type===zc?i.detail:Ku();for(let e of hi)e()}}function Ay(i){if(Ey(i)){xo=i;try{globalThis.localStorage?.setItem(qu,i)}catch{}if(typeof window<"u")window.dispatchEvent(new CustomEvent(zc,{detail:i}));else for(let e of hi)e()}}function Ry(i){return!hi.size&&typeof window<"u"&&(xo=Ku(),window.addEventListener("storage",ds),window.addEventListener(zc,ds),window.addEventListener("languagechange",ds)),hi.add(i),()=>{hi.delete(i),!hi.size&&typeof window<"u"&&(window.removeEventListener("storage",ds),window.removeEventListener(zc,ds),window.removeEventListener("languagechange",ds))}}var Hc=(i,e)=>i.replace(/\{(\d+)\}/g,(t,r)=>r<e.length?String(e[r]??""):t),q6=Object.entries(Nc).filter(([i])=>/\{\d+\}/.test(i)).map(([i,e])=>{let t=[],r=i.split(/(\{\d+\})/).map(s=>{let n=s.match(/^\{(\d+)\}$/);return n?(t.push(Number(n[1])),"([\\s\\S]*?)"):s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}).join("");return{expression:new RegExp(`^${r}$`),value:e,slots:t}});function K6(i,e,...t){if(Array.isArray(e)&&Object.hasOwn(e,"raw")&&(e=e.reduce((r,s,n)=>r+(n?`{${n-1}}`:"")+s,"")),typeof e!="string")return e;if(i!=="en")return Hc(e,t);if(Object.hasOwn(Nc,e))return Hc(Nc[e],t);if(!t.length&&/[\p{Script=Han}]/u.test(e))for(let r of q6){let s=r.expression.exec(e);if(!s)continue;let n=[];return r.slots.forEach((o,a)=>{n[o]=s[a+1]}),Hc(r.value,n)}return Hc(e,t)}var hs=(i,...e)=>K6(Vc(),i,...e);function ky(i=document){for(let e of i.querySelectorAll("[data-i18n]"))e.textContent=hs(e.dataset.i18n);for(let e of["title","placeholder","aria-label"])for(let t of i.querySelectorAll(`[data-i18n-${e}]`))t.setAttribute(e,hs(t.getAttribute(`data-i18n-${e}`)));i===document&&(document.documentElement.lang=Vc()==="zh"?"zh-CN":"en")}var Kj=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 By(i,e){return`${i.italic?"italic ":""}${i.bold?"bold ":""}${i.fontSize}px ${e}`}function Iy(i){let e=Number(i)>>>0;return`rgba(${e>>>16&255},${e>>>8&255},${e&255},${(e>>>24)/255})`}function Z6(i,e,t,r,s=di){let n=e.textLayout;if(!n?.richLines||t<=0||r<=0)return;let o=e.horizontalAlignment==="Right"?1:e.horizontalAlignment==="Middle"?.5:0,a=e.verticalAlignment==="Bottom"?1:e.verticalAlignment==="Middle"?.5:0,c=e.kind==="textwindow"?e.scroll:null,l=n.visibleLineCount??n.richLines.length,d=n.visibleContentHeight??n.contentHeight,h=e.kind==="textwindow"&&n.contentHeight>r?-(c?.offset||0):a*(r-d);i.save(),i.beginPath(),i.rect(0,0,t,r),i.clip(),i.textAlign="left",i.textBaseline="alphabetic",i.lineJoin="round",i.strokeStyle=Iy(e.outlineColor??4278190080);for(let u=0;u<l;u++){let f=n.richLines[u],m=h+f.top;if(m+f.height<0||m>r)continue;let g=2+o*(n.textWidth-f.width);for(let x of f.runs)i.font=By(x,s||di),i.fillStyle=Iy(x.color??e.fontColor??4294967295),e.enableOutline&&(i.lineWidth=Math.max(2,x.fontSize*.12),i.strokeText(x.text,g+x.x,m+f.baseline)),i.fillText(x.text,g+x.x,m+f.baseline)}i.restore()}function Zu(i,e,t,r,s,n=1){let o=Math.min(Math.max(1,n),4096/Math.max(1,t,r)),a=Math.max(1,Math.ceil(t*o)),c=Math.max(1,Math.ceil(r*o));i.width!==a&&(i.width=a),i.height!==c&&(i.height=c);let l=i.getContext("2d");l.setTransform(1,0,0,1,0,0),l.clearRect(0,0,a,c),l.save(),l.scale(a/(t>0?t:1),c/(r>0?r:1)),Z6(l,e,t,r,s),l.restore()}var _o={version:"ct-v1",catalogSha256:"fcdd2087b0ce558f90489db6c1368211d8b110e8cc755baf1efd731814a53fd4",assets:[{id:10001001,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u96F7\u80FD\u91CF\u6EE1\u503C1",nameEn:"Electro Energy Max Value 1",video:"video/10001001.webm",icon:"icon/10001001.png",audio:[]},{id:10001002,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u706B\u80FD\u91CF\u6EE1\u503C1",nameEn:"Pyro Energy Max Value 1",video:"video/10001002.webm",icon:"icon/10001002.png",audio:[]},{id:10001003,scope:"ui",width:174,height:182,loop:!0,duration:10,name:"\u8349\u80FD\u91CF\u6EE1\u503C1",nameEn:"Dendro Energy Max Value 1",video:"video/10001003.webm",icon:"icon/10001003.png",audio:[]},{id:10001004,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u51B0\u80FD\u91CF\u6EE1\u503C1",nameEn:"Cryo Energy Max Value 1",video:"video/10001004.webm",icon:"icon/10001004.png",audio:[]},{id:10001005,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u5CA9\u80FD\u91CF\u6EE1\u503C1",nameEn:"Geo Energy Max Value 1",video:"video/10001005.webm",icon:"icon/10001005.png",audio:[]},{id:10001006,scope:"ui",width:186,height:186,loop:!0,duration:10,name:"\u6C34\u80FD\u91CF\u6EE1\u503C1",nameEn:"Hydro Energy Max Value 1",video:"video/10001006.webm",icon:"icon/10001006.png",audio:[]},{id:10001007,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u98CE\u80FD\u91CF\u6EE1\u503C1",nameEn:"Anemo Energy Max Value 1",video:"video/10001007.webm",icon:"icon/10001007.png",audio:[]},{id:10001008,scope:"ui",width:224,height:224,loop:!1,duration:1.3,name:"\u53EF\u7528\u63D0\u793A1",nameEn:"Available Hint 1",video:"video/10001008.webm",icon:"icon/10001008.png",audio:[]},{id:10001009,scope:"ui",width:224,height:224,loop:!1,duration:1.3,name:"\u53EF\u7528\u63D0\u793A2",nameEn:"Available Hint 2",video:"video/10001009.webm",icon:"icon/10001009.png",audio:[]},{id:10001010,scope:"ui",width:176,height:176,loop:!0,duration:10,name:"\u96F7\u80FD\u91CF\u6EE1\u503C2",nameEn:"Electro Energy Max Value 2",video:"video/10001010.webm",icon:"icon/10001010.png",audio:[]},{id:10001011,scope:"ui",width:182,height:182,loop:!0,duration:10,name:"\u706B\u80FD\u91CF\u6EE1\u503C2",nameEn:"Pyro Energy Max Value 2",video:"video/10001011.webm",icon:"icon/10001011.png",audio:[]},{id:10001012,scope:"ui",width:162,height:162,loop:!0,duration:10,name:"\u8349\u80FD\u91CF\u6EE1\u503C2",nameEn:"Dendro Energy Max Value 2",video:"video/10001012.webm",icon:"icon/10001012.png",audio:[]},{id:10001013,scope:"ui",width:176,height:184,loop:!0,duration:10,name:"\u51B0\u80FD\u91CF\u6EE1\u503C2",nameEn:"Cryo Energy Max Value 2",video:"video/10001013.webm",icon:"icon/10001013.png",audio:[]},{id:10001014,scope:"ui",width:170,height:170,loop:!0,duration:10,name:"\u5CA9\u80FD\u91CF\u6EE1\u503C2",nameEn:"Geo Energy Max Value 2",video:"video/10001014.webm",icon:"icon/10001014.png",audio:[]},{id:10001015,scope:"ui",width:186,height:186,loop:!0,duration:10,name:"\u6C34\u80FD\u91CF\u6EE1\u503C2",nameEn:"Hydro Energy Max Value 2",video:"video/10001015.webm",icon:"icon/10001015.png",audio:[]},{id:10001016,scope:"ui",width:180,height:180,loop:!0,duration:10,name:"\u98CE\u80FD\u91CF\u6EE1\u503C2",nameEn:"Anemo Energy Max Value 2",video:"video/10001016.webm",icon:"icon/10001016.png",audio:[]},{id:10001017,scope:"ui",width:300,height:280,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C1",nameEn:"Energy Max Value 1",video:"video/10001017.webm",icon:"icon/10001017.png",audio:["audio/10001017.mp3"]},{id:10001018,scope:"ui",width:220,height:226,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C2",nameEn:"Energy Max Value 2",video:"video/10001018.webm",icon:"icon/10001018.png",audio:[]},{id:10001019,scope:"ui",width:220,height:226,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C3",nameEn:"Energy Max Value 3",video:"video/10001019.webm",icon:"icon/10001019.png",audio:[]},{id:10001020,scope:"ui",width:210,height:216,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C4",nameEn:"Energy Max Value 4",video:"video/10001020.webm",icon:"icon/10001020.png",audio:[]},{id:10001021,scope:"ui",width:216,height:220,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C5",nameEn:"Energy Max Value 5",video:"video/10001021.webm",icon:"icon/10001021.png",audio:[]},{id:10001022,scope:"ui",width:216,height:220,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C6",nameEn:"Energy Max Value 6",video:"video/10001022.webm",icon:"icon/10001022.png",audio:[]},{id:10001023,scope:"ui",width:216,height:220,loop:!0,duration:10,name:"\u80FD\u91CF\u6EE1\u503C7",nameEn:"Energy Max Value 7",video:"video/10001023.webm",icon:"icon/10001023.png",audio:[]},{id:10001024,scope:"ui",width:134,height:134,loop:!0,duration:10,name:"\u96F7\u5143\u7D20\u5171\u9E23",nameEn:"Electro Elemental Resonance",video:"video/10001024.webm",icon:"icon/10001024.png",audio:[]},{id:10001025,scope:"ui",width:130,height:134,loop:!0,duration:10,name:"\u706B\u5143\u7D20\u5171\u9E23",nameEn:"Pyro Elemental Resonance",video:"video/10001025.webm",icon:"icon/10001025.png",audio:[]},{id:10001026,scope:"ui",width:130,height:130,loop:!0,duration:10,name:"\u8349\u5143\u7D20\u5171\u9E23",nameEn:"Dendro Elemental Resonance",video:"video/10001026.webm",icon:"icon/10001026.png",audio:[]},{id:10001027,scope:"ui",width:128,height:128,loop:!0,duration:10,name:"\u51B0\u5143\u7D20\u5171\u9E23",nameEn:"Cryo Elemental Resonance",video:"video/10001027.webm",icon:"icon/10001027.png",audio:[]},{id:10001028,scope:"ui",width:130,height:130,loop:!0,duration:10,name:"\u5CA9\u5143\u7D20\u5171\u9E23",nameEn:"Geo Elemental Resonance",video:"video/10001028.webm",icon:"icon/10001028.png",audio:[]},{id:10001029,scope:"ui",width:130,height:134,loop:!0,duration:10,name:"\u6C34\u5143\u7D20\u5171\u9E23",nameEn:"Hydro Elemental Resonance",video:"video/10001029.webm",icon:"icon/10001029.png",audio:[]},{id:10001030,scope:"ui",width:130,height:130,loop:!0,duration:10,name:"\u98CE\u5143\u7D20\u5171\u9E23",nameEn:"Anemo Elemental Resonance",video:"video/10001030.webm",icon:"icon/10001030.png",audio:[]},{id:10001031,scope:"ui",width:156,height:160,loop:!1,duration:1,name:"\u6C34\u70AE\u6548\u679C1",nameEn:"Hydro Cannon Effect 1",video:"video/10001031.webm",icon:"icon/10001031.png",audio:[]},{id:10001032,scope:"ui",width:216,height:216,loop:!1,duration:.933,name:"\u6C34\u70AE\u6548\u679C2",nameEn:"Hydro Cannon Effect 2",video:"video/10001032.webm",icon:"icon/10001032.png",audio:["audio/10001032.mp3"]},{id:10001033,scope:"ui",width:488,height:488,loop:!1,duration:1.2,name:"\u97F3\u7B26\u6548\u679C1",nameEn:"Note Effect 1",video:"video/10001033.webm",icon:"icon/10001033.png",audio:[]},{id:10001034,scope:"ui",width:536,height:536,loop:!1,duration:1.4,name:"\u97F3\u7B26\u6548\u679C2",nameEn:"Note Effect 2",video:"video/10001034.webm",icon:"icon/10001034.png",audio:[]},{id:10001035,scope:"ui",width:262,height:266,loop:!0,duration:10,name:"\u97F3\u7B26\u6548\u679C3",nameEn:"Note Effect 3",video:"video/10001035.webm",icon:"icon/10001035.png",audio:[]},{id:10001036,scope:"ui",width:536,height:536,loop:!1,duration:1.4,name:"\u97F3\u7B26\u6548\u679C4",nameEn:"Note Effect 4",video:"video/10001036.webm",icon:"icon/10001036.png",audio:[]},{id:10001037,scope:"ui",width:262,height:266,loop:!0,duration:10,name:"\u97F3\u7B26\u6548\u679C5",nameEn:"Note Effect 5",video:"video/10001037.webm",icon:"icon/10001037.png",audio:[]},{id:10001038,scope:"ui",width:190,height:190,loop:!0,duration:10,name:"\u6269\u6563\u6548\u679C1",nameEn:"Swirl Effect 1",video:"video/10001038.webm",icon:"icon/10001038.png",audio:[]},{id:10001039,scope:"ui",width:208,height:208,loop:!1,duration:.766,name:"\u70B9\u51FB\u6548\u679C1",nameEn:"Press Effect 1",video:"video/10001039.webm",icon:"icon/10001039.png",audio:[]},{id:10001040,scope:"ui",width:390,height:390,loop:!1,duration:1.2,name:"\u8F6C\u6362\u6548\u679C1",nameEn:"Conversion Effect 1",video:"video/10001040.webm",icon:"icon/10001040.png",audio:["audio/10001040.mp3"]},{id:10001041,scope:"ui",width:208,height:208,loop:!0,duration:10,name:"\u8F6C\u6362\u6548\u679C2",nameEn:"Conversion Effect 2",video:"video/10001041.webm",icon:"icon/10001041.png",audio:[]},{id:10001042,scope:"ui",width:208,height:208,loop:!0,duration:10,name:"\u8F6C\u6362\u6548\u679C3",nameEn:"Conversion Effect 3",video:"video/10001042.webm",icon:"icon/10001042.png",audio:[]},{id:10001043,scope:"ui",width:168,height:180,loop:!1,duration:1.233,name:"\u70B9\u51FB\u6548\u679C2",nameEn:"Press Effect 2",video:"video/10001043.webm",icon:"icon/10001043.png",audio:["audio/10001043.mp3","audio/10001043_02.mp3"]},{id:10001044,scope:"ui",width:190,height:198,loop:!1,duration:1.566,name:"\u70B9\u51FB\u6548\u679C3",nameEn:"Press Effect 3",video:"video/10001044.webm",icon:"icon/10001044.png",audio:[]},{id:10001045,scope:"ui",width:114,height:114,loop:!1,duration:.733,name:"\u70B9\u51FB\u6548\u679C4",nameEn:"Press Effect 4",video:"video/10001045.webm",icon:"icon/10001045.png",audio:[]},{id:10001046,scope:"ui",width:106,height:122,loop:!1,duration:.8,name:"\u70B9\u51FB\u6548\u679C5",nameEn:"Press Effect 5",video:"video/10001046.webm",icon:"icon/10001046.png",audio:[]},{id:10001047,scope:"ui",width:114,height:114,loop:!1,duration:.733,name:"\u70B9\u51FB\u6548\u679C6",nameEn:"Press Effect 6",video:"video/10001047.webm",icon:"icon/10001047.png",audio:[]},{id:10001048,scope:"ui",width:114,height:114,loop:!1,duration:.733,name:"\u70B9\u51FB\u6548\u679C7",nameEn:"Press Effect 7",video:"video/10001048.webm",icon:"icon/10001048.png",audio:[]},{id:10001049,scope:"ui",width:130,height:118,loop:!1,duration:1,name:"\u70B9\u51FB\u6548\u679C8",nameEn:"Press Effect 8",video:"video/10001049.webm",icon:"icon/10001049.png",audio:[]},{id:10001050,scope:"ui",width:114,height:114,loop:!1,duration:.733,name:"\u70B9\u51FB\u6548\u679C9",nameEn:"Press Effect 9",video:"video/10001050.webm",icon:"icon/10001050.png",audio:[]},{id:10001051,scope:"ui",width:408,height:408,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C1",nameEn:"Highlight Effect 1",video:"video/10001051.webm",icon:"icon/10001051.png",audio:[]},{id:10001052,scope:"ui",width:272,height:272,loop:!1,duration:.9,name:"\u95EA\u70C1\u6548\u679C1",nameEn:"Blink Effect 1",video:"video/10001052.webm",icon:"icon/10001052.png",audio:[]},{id:10001053,scope:"ui",width:176,height:194,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C2",nameEn:"Highlight Effect 2",video:"video/10001053.webm",icon:"icon/10001053.png",audio:[]},{id:10001054,scope:"ui",width:274,height:286,loop:!1,duration:1,name:"\u95EA\u70C1\u6548\u679C2",nameEn:"Blink Effect 2",video:"video/10001054.webm",icon:"icon/10001054.png",audio:[]},{id:10001055,scope:"ui",width:368,height:368,loop:!1,duration:1,name:"\u95EA\u70C1\u6548\u679C3",nameEn:"Blink Effect 3",video:"video/10001055.webm",icon:"icon/10001055.png",audio:[]},{id:10001056,scope:"ui",width:226,height:210,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C3",nameEn:"Highlight Effect 3",video:"video/10001056.webm",icon:"icon/10001056.png",audio:[]},{id:10001057,scope:"ui",width:304,height:304,loop:!1,duration:.966,name:"\u8F6C\u6362\u6548\u679C4",nameEn:"Conversion Effect 4",video:"video/10001057.webm",icon:"icon/10001057.png",audio:["audio/10001057.mp3"]},{id:10001058,scope:"ui",width:174,height:178,loop:!1,duration:1.6,name:"\u95EA\u70C1\u6548\u679C4",nameEn:"Blink Effect 4",video:"video/10001058.webm",icon:"icon/10001058.png",audio:[]},{id:10001059,scope:"ui",width:362,height:362,loop:!1,duration:1.766,name:"\u95EA\u70C1\u6548\u679C5",nameEn:"Blink Effect 5",video:"video/10001059.webm",icon:"icon/10001059.png",audio:["audio/10001059.mp3"]},{id:10001060,scope:"ui",width:190,height:192,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C6",nameEn:"Blink Effect 6",video:"video/10001060.webm",icon:"icon/10001060.png",audio:[]},{id:10001061,scope:"ui",width:890,height:456,loop:!1,duration:1,name:"\u95EA\u70C1\u6548\u679C7",nameEn:"Blink Effect 7",video:"video/10001061.webm",icon:"icon/10001061.png",audio:[]},{id:10001062,scope:"ui",width:890,height:646,loop:!1,duration:1,name:"\u95EA\u70C1\u6548\u679C8",nameEn:"Blink Effect 8",video:"video/10001062.webm",icon:"icon/10001062.png",audio:[]},{id:10001063,scope:"ui",width:290,height:290,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C4",nameEn:"Highlight Effect 4",video:"video/10001063.webm",icon:"icon/10001063.png",audio:[]},{id:10001064,scope:"ui",width:272,height:272,loop:!1,duration:.866,name:"\u6D88\u9664\u6548\u679C1",nameEn:"Clear Effect 1",video:"video/10001064.webm",icon:"icon/10001064.png",audio:[]},{id:10001065,scope:"ui",width:272,height:272,loop:!1,duration:.9,name:"\u6D88\u9664\u6548\u679C2",nameEn:"Clear Effect 2",video:"video/10001065.webm",icon:"icon/10001065.png",audio:[]},{id:10001066,scope:"ui",width:238,height:210,loop:!1,duration:1.066,name:"\u6D88\u9664\u6548\u679C3",nameEn:"Clear Effect 3",video:"video/10001066.webm",icon:"icon/10001066.png",audio:[]},{id:10001067,scope:"ui",width:154,height:154,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C9",nameEn:"Blink Effect 9",video:"video/10001067.webm",icon:"icon/10001067.png",audio:[]},{id:10001068,scope:"ui",width:484,height:484,loop:!1,duration:1,name:"\u95EA\u70C1\u6548\u679C10",nameEn:"Blink Effect 10",video:"video/10001068.webm",icon:"icon/10001068.png",audio:[]},{id:10001069,scope:"ui",width:326,height:326,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C5",nameEn:"Highlight Effect 5",video:"video/10001069.webm",icon:"icon/10001069.png",audio:[]},{id:10001070,scope:"ui",width:206,height:196,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C6",nameEn:"Highlight Effect 6",video:"video/10001070.webm",icon:"icon/10001070.png",audio:[]},{id:10001071,scope:"ui",width:2236,height:2236,loop:!0,duration:10,name:"\u6C1B\u56F4\u6548\u679C1",nameEn:"Ambience Effect 1",video:"video/10001071.webm",icon:"icon/10001071.png",audio:[]},{id:10001072,scope:"ui",width:406,height:406,loop:!0,duration:10,name:"\u6C1B\u56F4\u6548\u679C2",nameEn:"Ambience Effect 2",video:"video/10001072.webm",icon:"icon/10001072.png",audio:[]},{id:10001073,scope:"ui",width:376,height:336,loop:!1,duration:2.1,name:"\u95EA\u70C1\u6548\u679C11",nameEn:"Blink Effect 11",video:"video/10001073.webm",icon:"icon/10001073.png",audio:[]},{id:10001074,scope:"ui",width:258,height:228,loop:!1,duration:1.666,name:"\u95EA\u70C1\u6548\u679C12",nameEn:"Blink Effect 12",video:"video/10001074.webm",icon:"icon/10001074.png",audio:[]},{id:10001075,scope:"ui",width:322,height:322,loop:!0,duration:10,name:"\u9AD8\u4EAE\u6548\u679C7",nameEn:"Highlight Effect 7",video:"video/10001075.webm",icon:"icon/10001075.png",audio:[]},{id:10001076,scope:"ui",width:258,height:270,loop:!1,duration:1.2,name:"\u4E92\u52A8\u6548\u679C1",nameEn:"Interaction Effect 1",video:"video/10001076.webm",icon:"icon/10001076.png",audio:[]},{id:10001077,scope:"ui",width:126,height:118,loop:!1,duration:1.1,name:"\u88C5\u9970\u6548\u679C1",nameEn:"Decoration Effect 1",video:"video/10001077.webm",icon:"icon/10001077.png",audio:[]},{id:10001078,scope:"ui",width:220,height:248,loop:!1,duration:1.133,name:"\u88C5\u9970\u6548\u679C2",nameEn:"Decoration Effect 2",video:"video/10001078.webm",icon:"icon/10001078.png",audio:[]},{id:10001079,scope:"ui",width:234,height:232,loop:!1,duration:1.166,name:"\u88C5\u9970\u6548\u679C3",nameEn:"Decoration Effect 3",video:"video/10001079.webm",icon:"icon/10001079.png",audio:[]},{id:10001080,scope:"ui",width:582,height:550,loop:!0,duration:10,name:"\u88C5\u9970\u6548\u679C4",nameEn:"Decoration Effect 4",video:"video/10001080.webm",icon:"icon/10001080.png",audio:[]},{id:10001081,scope:"ui",width:388,height:400,loop:!0,duration:10,name:"\u88C5\u9970\u6548\u679C5",nameEn:"Decoration Effect 5",video:"video/10001081.webm",icon:"icon/10001081.png",audio:[]},{id:10001082,scope:"ui",width:386,height:386,loop:!0,duration:10,name:"\u88C5\u9970\u6548\u679C6",nameEn:"Decoration Effect 6",video:"video/10001082.webm",icon:"icon/10001082.png",audio:[]},{id:10001083,scope:"ui",width:196,height:196,loop:!1,duration:1.2,name:"\u88C5\u9970\u6548\u679C7",nameEn:"Decoration Effect 7",video:"video/10001083.webm",icon:"icon/10001083.png",audio:[]},{id:10001084,scope:"ui",width:496,height:462,loop:!1,duration:.7,name:"\u95EA\u70C1\u6548\u679C13",nameEn:"Blink Effect 13",video:"video/10001084.webm",icon:"icon/10001084.png",audio:[]},{id:10001085,scope:"ui",width:426,height:336,loop:!1,duration:.566,name:"\u95EA\u70C1\u6548\u679C14",nameEn:"Blink Effect 14",video:"video/10001085.webm",icon:"icon/10001085.png",audio:[]},{id:10001086,scope:"ui",width:266,height:190,loop:!1,duration:.866,name:"\u88C5\u9970\u6548\u679C8",nameEn:"Decoration Effect 8",video:"video/10001086.webm",icon:"icon/10001086.png",audio:[]},{id:10001087,scope:"ui",width:310,height:252,loop:!1,duration:1.166,name:"\u88C5\u9970\u6548\u679C9",nameEn:"Decoration Effect 9",video:"video/10001087.webm",icon:"icon/10001087.png",audio:[]},{id:10001088,scope:"ui",width:310,height:252,loop:!1,duration:1.166,name:"\u88C5\u9970\u6548\u679C10",nameEn:"Decoration Effect 10",video:"video/10001088.webm",icon:"icon/10001088.png",audio:[]},{id:10001089,scope:"ui",width:178,height:74,loop:!1,duration:1.966,name:"\u88C5\u9970\u6548\u679C11",nameEn:"Decoration Effect 11",video:"video/10001089.webm",icon:"icon/10001089.png",audio:[]},{id:10001090,scope:"ui",width:190,height:190,loop:!1,duration:1.166,name:"\u95EA\u70C1\u6548\u679C15",nameEn:"Blink Effect 15",video:"video/10001090.webm",icon:"icon/10001090.png",audio:[]},{id:10001091,scope:"ui",width:188,height:188,loop:!1,duration:1.6,name:"\u95EA\u70C1\u6548\u679C16",nameEn:"Blink Effect 16",video:"video/10001091.webm",icon:"icon/10001091.png",audio:[]},{id:10001092,scope:"ui",width:200,height:200,loop:!0,duration:10,name:"\u88C5\u9970\u6548\u679C12",nameEn:"Decoration Effect 12",video:"video/10001092.webm",icon:"icon/10001092.png",audio:[]},{id:10001093,scope:"ui",width:294,height:302,loop:!1,duration:1.033,name:"\u88C5\u9970\u6548\u679C13",nameEn:"Decoration Effect 13",video:"video/10001093.webm",icon:"icon/10001093.png",audio:[]},{id:10001094,scope:"ui",width:310,height:310,loop:!1,duration:.833,name:"\u88C5\u9970\u6548\u679C14",nameEn:"Decoration Effect 14",video:"video/10001094.webm",icon:"icon/10001094.png",audio:[]},{id:10001095,scope:"ui",width:252,height:300,loop:!1,duration:1.8,name:"\u88C5\u9970\u6548\u679C15",nameEn:"Decoration Effect 15",video:"video/10001095.webm",icon:"icon/10001095.png",audio:[]},{id:10001096,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C16",nameEn:"Decoration Effect 16",video:"video/10001096.webm",icon:"icon/10001096.png",audio:[]},{id:10001097,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C17",nameEn:"Decoration Effect 17",video:"video/10001097.webm",icon:"icon/10001097.png",audio:[]},{id:10001098,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C18",nameEn:"Decoration Effect 18",video:"video/10001098.webm",icon:"icon/10001098.png",audio:[]},{id:10001099,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C19",nameEn:"Decoration Effect 19",video:"video/10001099.webm",icon:"icon/10001099.png",audio:[]},{id:10001100,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C20",nameEn:"Decoration Effect 20",video:"video/10001100.webm",icon:"icon/10001100.png",audio:[]},{id:10001101,scope:"ui",width:252,height:252,loop:!1,duration:1.6,name:"\u88C5\u9970\u6548\u679C21",nameEn:"Decoration Effect 21",video:"video/10001101.webm",icon:"icon/10001101.png",audio:[]},{id:10001102,scope:"ui",width:260,height:260,loop:!1,duration:1.133,name:"\u9AD8\u4EAE\u6548\u679C8",nameEn:"Highlight Effect 8",video:"video/10001102.webm",icon:"icon/10001102.png",audio:[]},{id:10001103,scope:"ui",width:260,height:260,loop:!1,duration:1.166,name:"\u9AD8\u4EAE\u6548\u679C9",nameEn:"Highlight Effect 9",video:"video/10001103.webm",icon:"icon/10001103.png",audio:[]},{id:10001104,scope:"ui",width:322,height:344,loop:!1,duration:1.133,name:"\u9AD8\u4EAE\u6548\u679C10",nameEn:"Highlight Effect 10",video:"video/10001104.webm",icon:"icon/10001104.png",audio:[]},{id:10001105,scope:"ui",width:380,height:394,loop:!1,duration:1.133,name:"\u9AD8\u4EAE\u6548\u679C11",nameEn:"Highlight Effect 11",video:"video/10001105.webm",icon:"icon/10001105.png",audio:[]},{id:10001106,scope:"ui",width:176,height:140,loop:!0,duration:10,name:"\u6C1B\u56F4\u6548\u679C3",nameEn:"Ambience Effect 3",video:"video/10001106.webm",icon:"icon/10001106.png",audio:[]},{id:10001107,scope:"ui",width:136,height:136,loop:!1,duration:.8,name:"\u95EA\u70C1\u6548\u679C17",nameEn:"Blink Effect 17",video:"video/10001107.webm",icon:"icon/10001107.png",audio:["audio/10001107.mp3"]},{id:10001108,scope:"ui",width:206,height:212,loop:!1,duration:1.7,name:"\u95EA\u70C1\u6548\u679C18",nameEn:"Blink Effect 18",video:"video/10001108.webm",icon:"icon/10001108.png",audio:["audio/10001108.mp3"]},{id:10001109,scope:"ui",width:182,height:182,loop:!1,duration:1.666,name:"\u95EA\u70C1\u6548\u679C19",nameEn:"Blink Effect 19",video:"video/10001109.webm",icon:"icon/10001109.png",audio:[]},{id:10001110,scope:"ui",width:650,height:306,loop:!1,duration:1.533,name:"\u95EA\u70C1\u6548\u679C20",nameEn:"Blink Effect 20",video:"video/10001110.webm",icon:"icon/10001110.png",audio:["audio/10001110.mp3"]},{id:10001111,scope:"ui",width:742,height:494,loop:!1,duration:.9,name:"\u95EA\u70C1\u6548\u679C21",nameEn:"Blink Effect 21",video:"video/10001111.webm",icon:"icon/10001111.png",audio:["audio/10001111.mp3"]},{id:10001112,scope:"ui",width:872,height:462,loop:!1,duration:.9,name:"\u95EA\u70C1\u6548\u679C22",nameEn:"Blink Effect 22",video:"video/10001112.webm",icon:"icon/10001112.png",audio:["audio/10001112.mp3"]},{id:10001113,scope:"ui",width:182,height:182,loop:!1,duration:1.166,name:"\u95EA\u70C1\u6548\u679C23",nameEn:"Blink Effect 23",video:"video/10001113.webm",icon:"icon/10001113.png",audio:[]},{id:10001114,scope:"ui",width:116,height:228,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF1",nameEn:"Progress Accumulation 1",video:"video/10001114.webm",icon:"icon/10001114.png",audio:[]},{id:10001115,scope:"ui",width:520,height:676,loop:!1,duration:1.133,name:"\u8FDB\u5EA6\u7D2F\u79EF2",nameEn:"Progress Accumulation 2",video:"video/10001115.webm",icon:"icon/10001115.png",audio:[]},{id:10001116,scope:"ui",width:88,height:88,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF3",nameEn:"Progress Accumulation 3",video:"video/10001116.webm",icon:"icon/10001116.png",audio:[]},{id:10001117,scope:"ui",width:166,height:278,loop:!1,duration:1.466,name:"\u95EA\u70C1\u6548\u679C24",nameEn:"Blink Effect 24",video:"video/10001117.webm",icon:"icon/10001117.png",audio:[]},{id:10001118,scope:"ui",width:106,height:106,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C25",nameEn:"Blink Effect 25",video:"video/10001118.webm",icon:"icon/10001118.png",audio:[]},{id:10001119,scope:"ui",width:118,height:118,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C26",nameEn:"Blink Effect 26",video:"video/10001119.webm",icon:"icon/10001119.png",audio:[]},{id:10001120,scope:"ui",width:130,height:118,loop:!1,duration:1.566,name:"\u95EA\u70C1\u6548\u679C27",nameEn:"Blink Effect 27",video:"video/10001120.webm",icon:"icon/10001120.png",audio:["audio/10001120.mp3","audio/10001120_02.mp3","audio/10001120_03.mp3","audio/10001120_04.mp3","audio/10001120_05.mp3","audio/10001120_06.mp3","audio/10001120_07.mp3","audio/10001120_08.mp3","audio/10001120_09.mp3","audio/10001120_10.mp3","audio/10001120_11.mp3"]},{id:10001121,scope:"ui",width:376,height:400,loop:!1,duration:1.333,name:"\u95EA\u70C1\u6548\u679C28",nameEn:"Blink Effect 28",video:"video/10001121.webm",icon:"icon/10001121.png",audio:[]},{id:10001122,scope:"ui",width:986,height:706,loop:!1,duration:2.6,name:"\u95EA\u70C1\u6548\u679C29",nameEn:"Blink Effect 29",video:"video/10001122.webm",icon:"icon/10001122.png",audio:[]},{id:10001124,scope:"ui",width:2334,height:2714,loop:!1,duration:1.4,name:"\u7ED3\u7B97\u6548\u679C1",nameEn:"Settlement Effect 1",video:"video/10001124.webm",icon:"icon/10001124.png",audio:[]},{id:10001125,scope:"ui",width:2214,height:2270,loop:!1,duration:1.233,name:"\u7ED3\u7B97\u6548\u679C2",nameEn:"Settlement Effect 2",video:"video/10001125.webm",icon:"icon/10001125.png",audio:[]},{id:10001126,scope:"ui",width:2574,height:1178,loop:!1,duration:3.133,name:"\u7ED3\u7B97\u6548\u679C3",nameEn:"Settlement Effect 3",video:"video/10001126.webm",icon:"icon/10001126.png",audio:[]},{id:10001127,scope:"ui",width:1918,height:1138,loop:!1,duration:3.066,name:"\u7ED3\u7B97\u6548\u679C4",nameEn:"Settlement Effect 4",video:"video/10001127.webm",icon:"icon/10001127.png",audio:[]},{id:10001128,scope:"ui",width:548,height:212,loop:!1,duration:1.966,name:"\u95EA\u70C1\u6548\u679C30",nameEn:"Blink Effect 30",video:"video/10001128.webm",icon:"icon/10001128.png",audio:[]},{id:10001129,scope:"ui",width:638,height:520,loop:!1,duration:1.133,name:"\u95EA\u70C1\u6548\u679C31",nameEn:"Blink Effect 31",video:"video/10001129.webm",icon:"icon/10001129.png",audio:["audio/10001129.mp3"]},{id:10001130,scope:"ui",width:284,height:142,loop:!1,duration:1.2,name:"\u95EA\u70C1\u6548\u679C32",nameEn:"Blink Effect 32",video:"video/10001130.webm",icon:"icon/10001130.png",audio:[]},{id:10001131,scope:"ui",width:790,height:790,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C33",nameEn:"Blink Effect 33",video:"video/10001131.webm",icon:"icon/10001131.png",audio:["audio/10001131.mp3"]},{id:10001132,scope:"ui",width:1020,height:264,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C34",nameEn:"Blink Effect 34",video:"video/10001132.webm",icon:"icon/10001132.png",audio:[]},{id:10001133,scope:"ui",width:1348,height:358,loop:!1,duration:1.5,name:"\u7ED3\u7B97\u6548\u679C5",nameEn:"Settlement Effect 5",video:"video/10001133.webm",icon:"icon/10001133.png",audio:[]},{id:10001134,scope:"ui",width:1116,height:290,loop:!1,duration:2,name:"\u95EA\u70C1\u6548\u679C35",nameEn:"Blink Effect 35",video:"video/10001134.webm",icon:"icon/10001134.png",audio:["audio/10001134.mp3"]},{id:10001135,scope:"ui",width:1116,height:290,loop:!1,duration:2,name:"\u95EA\u70C1\u6548\u679C36",nameEn:"Blink Effect 36",video:"video/10001135.webm",icon:"icon/10001135.png",audio:["audio/10001135.mp3"]},{id:10001136,scope:"ui",width:1520,height:296,loop:!1,duration:1.466,name:"\u95EA\u70C1\u6548\u679C37",nameEn:"Blink Effect 37",video:"video/10001136.webm",icon:"icon/10001136.png",audio:[]},{id:10001137,scope:"ui",width:2266,height:706,loop:!1,duration:2.066,name:"\u95EA\u70C1\u6548\u679C38",nameEn:"Blink Effect 38",video:"video/10001137.webm",icon:"icon/10001137.png",audio:[]},{id:10001138,scope:"ui",width:912,height:192,loop:!1,duration:2.033,name:"\u95EA\u70C1\u6548\u679C39",nameEn:"Blink Effect 39",video:"video/10001138.webm",icon:"icon/10001138.png",audio:[]},{id:10001139,scope:"ui",width:912,height:192,loop:!1,duration:2.033,name:"\u95EA\u70C1\u6548\u679C40",nameEn:"Blink Effect 40",video:"video/10001139.webm",icon:"icon/10001139.png",audio:[]},{id:10001140,scope:"ui",width:912,height:174,loop:!1,duration:2.033,name:"\u95EA\u70C1\u6548\u679C41",nameEn:"Blink Effect 41",video:"video/10001140.webm",icon:"icon/10001140.png",audio:[]},{id:10001141,scope:"ui",width:912,height:102,loop:!1,duration:2.033,name:"\u95EA\u70C1\u6548\u679C42",nameEn:"Blink Effect 42",video:"video/10001141.webm",icon:"icon/10001141.png",audio:[]},{id:10001142,scope:"ui",width:1766,height:1542,loop:!1,duration:3.8,name:"\u95EA\u70C1\u6548\u679C43",nameEn:"Blink Effect 43",video:"video/10001142.webm",icon:"icon/10001142.png",audio:[]},{id:10001143,scope:"ui",width:1312,height:168,loop:!1,duration:1.066,name:"\u95EA\u70C1\u6548\u679C44",nameEn:"Blink Effect 44",video:"video/10001143.webm",icon:"icon/10001143.png",audio:["audio/10001143.mp3","audio/10001143_02.mp3"]},{id:10001144,scope:"ui",width:698,height:82,loop:!1,duration:2.233,name:"\u95EA\u70C1\u6548\u679C45",nameEn:"Blink Effect 45",video:"video/10001144.webm",icon:"icon/10001144.png",audio:[]},{id:10001145,scope:"ui",width:698,height:92,loop:!1,duration:2.266,name:"\u95EA\u70C1\u6548\u679C46",nameEn:"Blink Effect 46",video:"video/10001145.webm",icon:"icon/10001145.png",audio:[]},{id:10001146,scope:"ui",width:698,height:92,loop:!1,duration:2.266,name:"\u95EA\u70C1\u6548\u679C47",nameEn:"Blink Effect 47",video:"video/10001146.webm",icon:"icon/10001146.png",audio:[]},{id:10001147,scope:"ui",width:306,height:54,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF4",nameEn:"Progress Accumulation 4",video:"video/10001147.webm",icon:"icon/10001147.png",audio:[]},{id:10001148,scope:"ui",width:934,height:194,loop:!1,duration:1.233,name:"\u8FDB\u5EA6\u7D2F\u79EF5",nameEn:"Progress Accumulation 5",video:"video/10001148.webm",icon:"icon/10001148.png",audio:[]},{id:10001149,scope:"ui",width:616,height:248,loop:!0,duration:10,name:"\u95EA\u70C1\u6548\u679C48",nameEn:"Blink Effect 48",video:"video/10001149.webm",icon:"icon/10001149.png",audio:[]},{id:10001150,scope:"ui",width:746,height:228,loop:!1,duration:1.366,name:"\u95EA\u70C1\u6548\u679C49",nameEn:"Blink Effect 49",video:"video/10001150.webm",icon:"icon/10001150.png",audio:[]},{id:10001151,scope:"ui",width:606,height:210,loop:!1,duration:1.233,name:"\u95EA\u70C1\u6548\u679C50",nameEn:"Blink Effect 50",video:"video/10001151.webm",icon:"icon/10001151.png",audio:[]},{id:10001152,scope:"ui",width:1674,height:346,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF6",nameEn:"Progress Accumulation 6",video:"video/10001152.webm",icon:"icon/10001152.png",audio:[]},{id:10001153,scope:"ui",width:1110,height:400,loop:!1,duration:1.2,name:"\u95EA\u70C1\u6548\u679C51",nameEn:"Blink Effect 51",video:"video/10001153.webm",icon:"icon/10001153.png",audio:["audio/10001153.mp3","audio/10001153_02.mp3"]},{id:10001154,scope:"ui",width:1178,height:506,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF7",nameEn:"Progress Accumulation 7",video:"video/10001154.webm",icon:"icon/10001154.png",audio:[]},{id:10001155,scope:"ui",width:1254,height:200,loop:!1,duration:1.2,name:"\u8FDB\u5EA6\u7D2F\u79EF8",nameEn:"Progress Accumulation 8",video:"video/10001155.webm",icon:"icon/10001155.png",audio:["audio/10001155.mp3"]},{id:10001156,scope:"ui",width:1180,height:202,loop:!1,duration:1.2,name:"\u8FDB\u5EA6\u7D2F\u79EF9",nameEn:"Progress Accumulation 9",video:"video/10001156.webm",icon:"icon/10001156.png",audio:["audio/10001156.mp3"]},{id:10001157,scope:"ui",width:654,height:118,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF10",nameEn:"Progress Accumulation 10",video:"video/10001157.webm",icon:"icon/10001157.png",audio:[]},{id:10001158,scope:"ui",width:962,height:162,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF11",nameEn:"Progress Accumulation 11",video:"video/10001158.webm",icon:"icon/10001158.png",audio:[]},{id:10001159,scope:"ui",width:1016,height:142,loop:!0,duration:10,name:"\u8FDB\u5EA6\u7D2F\u79EF12",nameEn:"Progress Accumulation 12",video:"video/10001159.webm",icon:"icon/10001159.png",audio:[]},{id:10001160,scope:"ui",width:790,height:210,loop:!1,duration:1,name:"\u8FDB\u5EA6\u7D2F\u79EF13",nameEn:"Progress Accumulation 13",video:"video/10001160.webm",icon:"icon/10001160.png",audio:[]},{id:10002001,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F41",nameEn:"View Ambience 1",video:"video/10002001.webm",icon:"icon/10002001.png",audio:["audio/10002001.mp3"]},{id:10002002,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F42",nameEn:"View Ambience 2",video:"video/10002002.webm",icon:"icon/10002002.png",audio:[]},{id:10002003,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F43",nameEn:"View Ambience 3",video:"video/10002003.webm",icon:"icon/10002003.png",audio:[]},{id:10002004,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F44",nameEn:"View Ambience 4",video:"video/10002004.webm",icon:"icon/10002004.png",audio:[]},{id:10002005,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F45",nameEn:"View Ambience 5",video:"video/10002005.webm",icon:"icon/10002005.png",audio:[]},{id:10002006,scope:"screen",width:1280,height:720,loop:!1,duration:1.9,name:"\u89C6\u91CE\u6C1B\u56F46",nameEn:"View Ambience 6",video:"video/10002006.webm",icon:"icon/10002006.png",audio:[]},{id:10002007,scope:"screen",width:1280,height:720,loop:!1,duration:2.4,name:"\u89C6\u91CE\u6C1B\u56F47",nameEn:"View Ambience 7",video:"video/10002007.webm",icon:"icon/10002007.png",audio:[]},{id:10002008,scope:"screen",width:1280,height:720,loop:!1,duration:3.433,name:"\u89C6\u91CE\u6C1B\u56F48",nameEn:"View Ambience 8",video:"video/10002008.webm",icon:"icon/10002008.png",audio:["audio/10002008.mp3"]},{id:10002009,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F49",nameEn:"View Ambience 9",video:"video/10002009.webm",icon:"icon/10002009.png",audio:["audio/10002009.mp3"]},{id:10002010,scope:"screen",width:1280,height:720,loop:!1,duration:2.5,name:"\u89C6\u91CE\u6C1B\u56F410",nameEn:"View Ambience 10",video:"video/10002010.webm",icon:"icon/10002010.png",audio:[]},{id:10002011,scope:"screen",width:1280,height:720,loop:!1,duration:1.8,name:"\u89C6\u91CE\u6C1B\u56F411",nameEn:"View Ambience 11",video:"video/10002011.webm",icon:"icon/10002011.png",audio:[]},{id:10002012,scope:"screen",width:1280,height:720,loop:!1,duration:2.933,name:"\u89C6\u91CE\u6C1B\u56F412",nameEn:"View Ambience 12",video:"video/10002012.webm",icon:"icon/10002012.png",audio:[]},{id:10002013,scope:"screen",width:1280,height:720,loop:!1,duration:3.9,name:"\u89C6\u91CE\u6C1B\u56F413",nameEn:"View Ambience 13",video:"video/10002013.webm",icon:"icon/10002013.png",audio:[]},{id:10002014,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F414",nameEn:"View Ambience 14",video:"video/10002014.webm",icon:"icon/10002014.png",audio:[]},{id:10002015,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F415",nameEn:"View Ambience 15",video:"video/10002015.webm",icon:"icon/10002015.png",audio:["audio/10002015.mp3"]},{id:10002016,scope:"screen",width:1280,height:720,loop:!1,duration:2.5,name:"\u89C6\u91CE\u6C1B\u56F416",nameEn:"View Ambience 16",video:"video/10002016.webm",icon:"icon/10002016.png",audio:[]},{id:10002017,scope:"screen",width:1280,height:720,loop:!1,duration:.733,name:"\u89C6\u91CE\u6C1B\u56F417",nameEn:"View Ambience 17",video:"video/10002017.webm",icon:"icon/10002017.png",audio:[]},{id:10002018,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F418",nameEn:"View Ambience 18",video:"video/10002018.webm",icon:"icon/10002018.png",audio:[]},{id:10002019,scope:"screen",width:1280,height:720,loop:!1,duration:2.2,name:"\u89C6\u91CE\u6C1B\u56F419",nameEn:"View Ambience 19",video:"video/10002019.webm",icon:"icon/10002019.png",audio:[]},{id:10002020,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F420",nameEn:"View Ambience 20",video:"video/10002020.webm",icon:"icon/10002020.png",audio:[]},{id:10002021,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F421",nameEn:"View Ambience 21",video:"video/10002021.webm",icon:"icon/10002021.png",audio:[]},{id:10002022,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F422",nameEn:"View Ambience 22",video:"video/10002022.webm",icon:"icon/10002022.png",audio:[]},{id:10002023,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F423",nameEn:"View Ambience 23",video:"video/10002023.webm",icon:"icon/10002023.png",audio:[]},{id:10002024,scope:"screen",width:1280,height:720,loop:!1,duration:3.4,name:"\u89C6\u91CE\u6C1B\u56F424",nameEn:"View Ambience 24",video:"video/10002024.webm",icon:"icon/10002024.png",audio:[]},{id:10002025,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F425",nameEn:"View Ambience 25",video:"video/10002025.webm",icon:"icon/10002025.png",audio:[]},{id:10002026,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F426",nameEn:"View Ambience 26",video:"video/10002026.webm",icon:"icon/10002026.png",audio:["audio/10002026.mp3"]},{id:10002027,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F427",nameEn:"View Ambience 27",video:"video/10002027.webm",icon:"icon/10002027.png",audio:[]},{id:10002028,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F428",nameEn:"View Ambience 28",video:"video/10002028.webm",icon:"icon/10002028.png",audio:[]},{id:10002029,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F429",nameEn:"View Ambience 29",video:"video/10002029.webm",icon:"icon/10002029.png",audio:[]},{id:10002030,scope:"screen",width:1280,height:720,loop:!1,duration:1.966,name:"\u89C6\u91CE\u6C1B\u56F430",nameEn:"View Ambience 30",video:"video/10002030.webm",icon:"icon/10002030.png",audio:[]},{id:10002031,scope:"screen",width:1280,height:720,loop:!1,duration:1.166,name:"\u89C6\u91CE\u6C1B\u56F431",nameEn:"View Ambience 31",video:"video/10002031.webm",icon:"icon/10002031.png",audio:["audio/10002031.mp3","audio/10002031_02.mp3","audio/10002031_03.mp3","audio/10002031_04.mp3"]},{id:10002032,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F432",nameEn:"View Ambience 32",video:"video/10002032.webm",icon:"icon/10002032.png",audio:["audio/10002032.mp3"]},{id:10002033,scope:"screen",width:1280,height:720,loop:!1,duration:2,name:"\u89C6\u91CE\u6C1B\u56F433",nameEn:"View Ambience 33",video:"video/10002033.webm",icon:"icon/10002033.png",audio:["audio/10002033.mp3","audio/10002033_02.mp3"]},{id:10002034,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F434",nameEn:"View Ambience 34",video:"video/10002034.webm",icon:"icon/10002034.png",audio:[]},{id:10002035,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u89C6\u91CE\u6C1B\u56F435",nameEn:"View Ambience 35",video:"video/10002035.webm",icon:"icon/10002035.png",audio:["audio/10002035.mp3"]},{id:10002036,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u7784\u51C6\u6548\u679C1",nameEn:"Aiming Effect 1",video:"video/10002036.webm",icon:"icon/10002036.png",audio:[]},{id:10002037,scope:"screen",width:1280,height:720,loop:!0,duration:10,name:"\u7784\u51C6\u6548\u679C2",nameEn:"Aiming Effect 2",video:"video/10002037.webm",icon:"icon/10002037.png",audio:["audio/10002037.mp3"]}],files:{"audio/10001017.mp3":{bytes:6524,sha256:"82470dfef398dab45fb3d50134da7b49573e7189f683d2bdf0849b478f267c79",duration:.850667},"audio/10001032.mp3":{bytes:27907,sha256:"53ca71dde10d2d7b6fbf7232d2461f48e564c2d847cbb29f9aac685114634dff",duration:1.258231},"audio/10001040.mp3":{bytes:24212,sha256:"faf6a45ba3d02a6d86ba43f8fe8bf7dbadd22997f0e16ed22b990b0eeaac05c2",duration:1.202104},"audio/10001043.mp3":{bytes:15068,sha256:"ffe52807864f795fd7f8e5e235fca49537437d70a34db83d66352063fe538a52",duration:.570563},"audio/10001043_02.mp3":{bytes:12812,sha256:"b8c194027b798e504f51ae73b67ae63e0d56904ebc95d458b0065d995fa2ed58",duration:.501813},"audio/10001057.mp3":{bytes:28220,sha256:"df501138ff9ae6a43fc8b434c09a401093a5598e9366136e7071e1c57baeb238",duration:1.613042},"audio/10001059.mp3":{bytes:29516,sha256:"2d80dbec2dde2348c3c9dcf95598a79bd851aa8329c5ed68e33d40a532ee491c",duration:1.4855},"audio/10001107.mp3":{bytes:27174,sha256:"eedee79d5e4cb0282bba21e5b12a24170a07354f3285d3f50cd47e24ead5149b",duration:1.383039},"audio/10001108.mp3":{bytes:27174,sha256:"eedee79d5e4cb0282bba21e5b12a24170a07354f3285d3f50cd47e24ead5149b",duration:1.383039},"audio/10001110.mp3":{bytes:12164,sha256:"de0f6db4c8942741fa82168431e31f8b54d68260bf412266ef707506ff6f10c3",duration:.448},"audio/10001111.mp3":{bytes:12164,sha256:"de0f6db4c8942741fa82168431e31f8b54d68260bf412266ef707506ff6f10c3",duration:.448},"audio/10001112.mp3":{bytes:12164,sha256:"de0f6db4c8942741fa82168431e31f8b54d68260bf412266ef707506ff6f10c3",duration:.448},"audio/10001120.mp3":{bytes:19556,sha256:"2f7a402979dc442b4214e46d79b2dd1b7925c96c0eaebbbf0555fe3f5bb3a529",duration:1.5},"audio/10001120_02.mp3":{bytes:19772,sha256:"f1c0f5e4b3f8a550d058f14a35340f4cbf56de86b4c409dd13b1125d682e09d6",duration:1.5},"audio/10001120_03.mp3":{bytes:18572,sha256:"630975e0a80512e788648adadc6b2d96c526a6125e13ffffde83e65cf000aa5e",duration:1.5},"audio/10001120_04.mp3":{bytes:21212,sha256:"00da41febe7cf8a8491117ef820c42aa79c65172769b4a12705666e9d7f2b636",duration:1.5},"audio/10001120_05.mp3":{bytes:19220,sha256:"5d85fe103ecc1868eefc679ff676996c329e61881640ac743409899d34fc5b6b",duration:1.5},"audio/10001120_06.mp3":{bytes:24596,sha256:"ce03626d5f0a7ccaf4a6cec7bce8ed915f61d6ec57b3cd532cbfc89da5bdcc3e",duration:1.5},"audio/10001120_07.mp3":{bytes:22316,sha256:"4dadba002982494e40772cccfedce6f6405fb4abc1e81f2206c4c2e0ac2645b5",duration:1.5},"audio/10001120_08.mp3":{bytes:21548,sha256:"309625fddc0d645da062ff788100a656bd83c4ce8cb75d523ed1949387e8252e",duration:1.5},"audio/10001120_09.mp3":{bytes:23060,sha256:"2eaf460f61ae85e8e2a4c324ebb9c4bc4f460fd2489a15943b92d2fa4422d3b6",duration:1.5},"audio/10001120_10.mp3":{bytes:18668,sha256:"6242a47c96c9ce87cb00a6f2288e8209b9ef5e3dc7ecb62bdadbf8672df95714",duration:1.5},"audio/10001120_11.mp3":{bytes:21188,sha256:"880383e307f7fe7210c05c37fc04a0ac8e3c909d500215f72c7228b9c2e660a6",duration:1.5},"audio/10001129.mp3":{bytes:45188,sha256:"07198b0853f2a859c6ccb85ec4ad1e56c6131302f5145f50d39fd98efe7e5387",duration:2.130667},"audio/10001131.mp3":{bytes:45188,sha256:"07198b0853f2a859c6ccb85ec4ad1e56c6131302f5145f50d39fd98efe7e5387",duration:2.130667},"audio/10001134.mp3":{bytes:45908,sha256:"ff64e15c3144791ad9073ee4537eb21ec7cf1d41dd205b0ef051a8263784793f",duration:2.518667},"audio/10001135.mp3":{bytes:49940,sha256:"edf39fa868e9e42da6fe38c8f726bf4162c950543efdfdefb1f85d3dfaa4d72b",duration:2.758667},"audio/10001143.mp3":{bytes:20156,sha256:"740c276f344b457077bc48f627304d15bbd879d06b3d6b6108673f07d2ec0dc5",duration:.841333},"audio/10001143_02.mp3":{bytes:36524,sha256:"b70b6326344739a781ef5ba96103b349d37052102a29cf2d5cddd2517cd13dff",duration:2.298604},"audio/10001153.mp3":{bytes:20372,sha256:"5c7d6a7ee0d3fff9352071a17979c9941ab1e5322e9b5a94692077f932c71ecf",duration:1.074208},"audio/10001153_02.mp3":{bytes:21140,sha256:"34e4852a0e1bcfd46c8820d9d61a1ef5288ba2795decc8829d1cf1c4b04d1b3a",duration:1.074208},"audio/10001155.mp3":{bytes:32132,sha256:"e1b38d6f72b3b7124da2c8a6417484053e1dd2833507d03cea32175d3d8e486c",duration:1.361167},"audio/10001156.mp3":{bytes:17468,sha256:"b945a4cc1ef374343806f677e1e2ab461c452a4eed6992151575791ccae7e9b2",duration:.808958},"audio/10002001.mp3":{bytes:126284,sha256:"9bedc3f73a10d1b4205d53c2c11b22ad1fc54375a430be0f64e2e5a7ed68b35d",duration:6.018875},"audio/10002008.mp3":{bytes:58316,sha256:"e24d9e46941a40c27b0adbc06927f245cb4826445142d3d4d1ca5d4e7a6889b7",duration:2.57125},"audio/10002009.mp3":{bytes:57932,sha256:"abea73a14c14dc143ed4b1244eba7257bf38119edb13923504c00ee11f51deb1",duration:2.5},"audio/10002015.mp3":{bytes:57932,sha256:"abea73a14c14dc143ed4b1244eba7257bf38119edb13923504c00ee11f51deb1",duration:2.5},"audio/10002026.mp3":{bytes:38137,sha256:"3ce1a1df88494fb7179a6df74a9f30f14e185e16060d84daff586c2992f06c1d",duration:1.994603},"audio/10002031.mp3":{bytes:6932,sha256:"81439fcff710fdd6ce4541ddf76edc30f119c44fbf7e6d39df2c6349ffe4a347",duration:.301333},"audio/10002031_02.mp3":{bytes:5420,sha256:"f9ad4c41d670a010fb7e8acc6227e0ea8dc73dc1504972190aa513fdc0257d05",duration:.296104},"audio/10002031_03.mp3":{bytes:8012,sha256:"40c44c0ea861bd86e1bbedda8bf48dbe5c4d0b3a22f493cc2d9dfab43544d9e5",duration:.296104},"audio/10002031_04.mp3":{bytes:5948,sha256:"69c8ab1fc17a47a696e1e65d2a87613ae98377712d09a4d18cfbdf6cb06defae",duration:.296104},"audio/10002032.mp3":{bytes:111082,sha256:"0f17b84ae322621d29af50d88c3ee8d66677926429ae818579eba240e5f07a52",duration:4.90771},"audio/10002033.mp3":{bytes:59847,sha256:"0476fabf3f0d6d000758a82e467a1ff0e363d0efa3e873b60eb2d4194372aa24",duration:2.949274},"audio/10002033_02.mp3":{bytes:60791,sha256:"9f6eac53ec1f8dd02be7a532ee51ddbfc2c1f34c935616194e2c92e8ea8794bd",duration:2.928254},"audio/10002035.mp3":{bytes:93092,sha256:"360a57a535ffe34d8fdd3ef652512dac3cb46c1155791ea5992b3fd5cfde3a0c",duration:4.26},"audio/10002037.mp3":{bytes:50252,sha256:"508a7cadf5dec9f94a41570aa5d0dae7b7ee2fef4bbf42e96b7a8b46da21e51d",duration:2.246667},"icon/10001001.png":{bytes:23905,sha256:"fe51bb11c58eef524f2f6683663a58f69c4272de1d027797ccf1b283b5fcc583"},"icon/10001002.png":{bytes:22166,sha256:"36936f7678f5c5cb0a3a014a76eb9c6bdd5a9f23e72dfbef6d9523523cf9be48"},"icon/10001003.png":{bytes:22959,sha256:"77e1ca70f67b68c3a2ff8951017a95c54af43a02d37f025c4b39e299a0389820"},"icon/10001004.png":{bytes:24182,sha256:"127a9be79e7a0460bbba6f4390b83cf0137a1f50995fd4ddfdf071d0ce9aec5c"},"icon/10001005.png":{bytes:24501,sha256:"78dfe771d99b5002ef7ba93d6b2705aabf28fc8ad362becccd986de62da8b9ee"},"icon/10001006.png":{bytes:23058,sha256:"0bd296f4d2ec3fb3a46f6cbaaeaa959de21e5e94927317cc1c00f3eb767a8ab4"},"icon/10001007.png":{bytes:24384,sha256:"0d858dd1574291ff8365a64381eb7c2244e2f3ee054b89c4291d295af23cb565"},"icon/10001008.png":{bytes:25339,sha256:"60fb9e6b7b0765eb6559360a501220628f73995f20cf32bf600556ed55baebed"},"icon/10001009.png":{bytes:25470,sha256:"6eedb42ef97b243de8b3c7ce7d4ff06ecda408e333c1b67bfb0c3252ba2b71fc"},"icon/10001010.png":{bytes:17067,sha256:"3067643b0330ec446e15ff4b50eadc5c9d75597fac5b7ead544cf9f74c27c8f3"},"icon/10001011.png":{bytes:20283,sha256:"693c10ff57c4f729c5bc4bbc64aa15a7ee9ed1666ad08af11a6bf976e3608ab6"},"icon/10001012.png":{bytes:17900,sha256:"eeb4aa0a6a2e7d52983207ae143660f4cb50c1b529f7c42817112f760ef07520"},"icon/10001013.png":{bytes:20986,sha256:"273f7d86fb8e209bbd2dc06ceb3679c7f8d5d78f57fc3690bfbf83dd48a5fb4c"},"icon/10001014.png":{bytes:19083,sha256:"966cdcbd74d3e990262f5fdf1cc58704f67ca4a2ea5cd36d0118c0be2f312e0c"},"icon/10001015.png":{bytes:19533,sha256:"da2debca11cfa90e1868b966aa19f426664b968d0523ed458bc23e6a26601272"},"icon/10001016.png":{bytes:20596,sha256:"9a584e1393532cc8649512c31319bfa901fc73d557e01c3cd3c77ec80b8a6225"},"icon/10001017.png":{bytes:15766,sha256:"b2588c21a03d6c7795398e2240e527bbdd4e3f718f806f3906930bd68a4c8b85"},"icon/10001018.png":{bytes:18168,sha256:"5e9938443c22663db8434fc568362ae4d3de48cb1b6c411e703aeac07e3b5c4c"},"icon/10001019.png":{bytes:21447,sha256:"7625187d1c358b23e8ff7c38a9a4c6a9952bb0d7f9d4b6cf1256f1a0493df72f"},"icon/10001020.png":{bytes:24125,sha256:"2c07a35ade6a3d73b08d24b76153eedb6de41f1298e840dd5faee04bbf8fbcb0"},"icon/10001021.png":{bytes:19226,sha256:"06046a9387fd8ead3fbe4002c9cafbaa4189852bd683ef3b627133324fc578e9"},"icon/10001022.png":{bytes:19063,sha256:"30406afc29728bd50b1cd1704307effdca73a86db5d3b97a7fd1b2ba936e383a"},"icon/10001023.png":{bytes:19749,sha256:"29ed71483317b6d1f7fdcc4556731ca19a3828158bd70710eaaac5f7512b7aa1"},"icon/10001024.png":{bytes:7178,sha256:"1459dc8c6bba8f391e63d40dc410b0a94ba1ea346a2cc19b8fcee940010a3bd6"},"icon/10001025.png":{bytes:5758,sha256:"7fd586d94c22c9a6c4ad0248974b21d4f29b2a7e2c8c04cecf607f860bd4dd74"},"icon/10001026.png":{bytes:6248,sha256:"1829dd3720c0df86849f78fc5fb532e8412a5302bae20cd4571376c9ae06f43d"},"icon/10001027.png":{bytes:5454,sha256:"fed706b5943134d4fdb776ec35f479bf792a0b4603e23b2030e7893a3159ecd8"},"icon/10001028.png":{bytes:5275,sha256:"f0f01e125afd58d2a7cc6f850e1a69edb8e47d31a424eed21431b0b4f0e34bdd"},"icon/10001029.png":{bytes:6492,sha256:"592c905f1b364684d1004bc17739d1dd563e6aad5a0da97174d6f4d91dde0afc"},"icon/10001030.png":{bytes:5994,sha256:"816c8995dc94a724233222b3a21633d55330bad2c9879509587cfc10a20e9f50"},"icon/10001031.png":{bytes:12053,sha256:"36d3220568ee902b5cdce711946423d79edf54d70b46f7e46d9d79316a60f470"},"icon/10001032.png":{bytes:6189,sha256:"4d2f2a6a4aa56f799fa6d9b2bf112dd14754f3480951962899ed8e19f0f3d5a4"},"icon/10001033.png":{bytes:19270,sha256:"74367881fc31f13f6c8c6aa87a5da0c779d8303cda03aab1b914d03e2e243697"},"icon/10001034.png":{bytes:23429,sha256:"fdf41e7834dacd674f9d14e4db0c3a4598ae18ad7bcb0ed2f819af69decc4564"},"icon/10001035.png":{bytes:10567,sha256:"71e42a76b7d82964f609885a8fd0f4b8082dfbbc450349dd1329fac1d0f3b8d7"},"icon/10001036.png":{bytes:20003,sha256:"3ffb2d2cae852795566819b3bc65e42d6f5cfea442807813e3f110d2ae5306ab"},"icon/10001037.png":{bytes:11651,sha256:"0f2f343b4030beb38a5d03ca500b16292ee3402853a685eea33907da3166d00d"},"icon/10001038.png":{bytes:3402,sha256:"4fe6ebe2f6160b91c3c51971e4d588fa75f17dc58680c5e7525547eadb8a9922"},"icon/10001039.png":{bytes:16348,sha256:"c91c4bb5fd6c4ca331d4e47015669bd8727d2c91a3d79e97dceabba5484eed51"},"icon/10001040.png":{bytes:15606,sha256:"02c74e003d186f3c5ca4ea280312e2629faade7a3b95dc9ea320f587d411c658"},"icon/10001041.png":{bytes:7378,sha256:"dcec72b04c3096893874d605112c6c8aca2182a5d7af4231e08e279155efc6f0"},"icon/10001042.png":{bytes:9216,sha256:"4d53cec5485b07cde76ef6a459d7f30b73cbb149c7d22d70f94c9d4f08caca95"},"icon/10001043.png":{bytes:7268,sha256:"d0c2a175a0de3b1ed673ff2298cd964e93681a79b8bae03cb3a9940bf2b295b7"},"icon/10001044.png":{bytes:17785,sha256:"b166e9094cfb03ecce6eeeef4715623325ec4b86eda3236e72d34c7f1e4c7aee"},"icon/10001045.png":{bytes:20257,sha256:"dba951310f94d16e23800d78e6f15fb09753de1106fce0b6b65c869ac836ae5e"},"icon/10001046.png":{bytes:18695,sha256:"ccabfef92ec484881baade8997962077e362dde9552a0eefa4c11a063156bc61"},"icon/10001047.png":{bytes:20724,sha256:"571f24becceb229b8388a458c72bf5367c9c9b1bd2f511be9b6175f34c3fa743"},"icon/10001048.png":{bytes:19845,sha256:"3bccfb7c346d124071a2746f75d9e519d90985f07a9122cbb373347646c50d1e"},"icon/10001049.png":{bytes:26620,sha256:"62eaca8f1fa7013d5a9039864571102c640f0ad38b7fc19c34e475caf719cda5"},"icon/10001050.png":{bytes:21554,sha256:"9757b6b14968327fbd2933e4bc1df5c88e8acaa6a1654f880d0aa60557d0f012"},"icon/10001051.png":{bytes:23608,sha256:"3649049db87f65e60857124089570f03d8a87ccd367eddf1cd3189dc49318222"},"icon/10001052.png":{bytes:10144,sha256:"2939136db3eeca57cf771b6e776b0d00ef93b53d00a436b1429c8035821cb49b"},"icon/10001053.png":{bytes:16400,sha256:"29c5e8192b476e74b655b9b717ffa08b0195d5e098951a07904128b2fdfd8cd3"},"icon/10001054.png":{bytes:26202,sha256:"f73fbc019e699b109591814aae3f6d8b111b1388e6bb129ccb35edf7b526dd6d"},"icon/10001055.png":{bytes:19948,sha256:"48de3fe25bdde874eac546529417ffcc4ad395640539895293de829bc9d28fcb"},"icon/10001056.png":{bytes:9550,sha256:"a681352376be706911851bb90563ed343968c35c58c7af3a77fff4b4c16ea3a2"},"icon/10001057.png":{bytes:4530,sha256:"f855883dd19a55155968b77c238f2b5fe0cd894569959ec0f776b3c7d9c0006d"},"icon/10001058.png":{bytes:19430,sha256:"d94b796fbddaf0d63531c0b5569b26ef3e5cb42a51b06faced91b6c9fe467c94"},"icon/10001059.png":{bytes:21181,sha256:"71fe484027e51e4b7af32da4a4d3c661bef1dc5e011710aa0c8512db46237072"},"icon/10001060.png":{bytes:19537,sha256:"cb3ee2648a2b1b656e731d8b2c0cb102bc2eed1c6125b166e1867ca0129b4117"},"icon/10001061.png":{bytes:19347,sha256:"2b7bff19a05b1868e680b8d96919aa1449a7a35fb16fad62ce12d9e546f1cc8c"},"icon/10001062.png":{bytes:24195,sha256:"381bb70063fa7dcc3eda51a116bd79c44f41f32fb2abe647c3957570ca3c5257"},"icon/10001063.png":{bytes:24414,sha256:"240ad25841dcf341fc202efeb82009b52f9e99a403129b251443248f8729200d"},"icon/10001064.png":{bytes:21752,sha256:"8f37873cb51acc05c3e38534b272fc0dffaf2455e85f123fb7d1273584e9a276"},"icon/10001065.png":{bytes:22353,sha256:"082328a9b48c365b77eb4b7c7fe3461647af52da0f6f8d3a9a6aed4715ef55c9"},"icon/10001066.png":{bytes:25040,sha256:"93e8e9a1154521759b8275da6dd7813520067bdbb958fa1ef40a3e2db5d33ebd"},"icon/10001067.png":{bytes:17900,sha256:"764844d417a505af87d84c5b45ed11d8d4f6751e0bb934296354baf2c5e9b7db"},"icon/10001068.png":{bytes:27775,sha256:"f1696ad983c71560c9954d23d24e32fa79d877b7f136b115526d74002dfa13ee"},"icon/10001069.png":{bytes:27560,sha256:"14a34457ecf46a8f4a587ec4c7349a56dfa50550382dade7b3496365165b6f3c"},"icon/10001070.png":{bytes:7342,sha256:"392327cac6f05cd50cf10517e065449b3e3d63a20f2e7028cb54597341fffa1a"},"icon/10001071.png":{bytes:8292,sha256:"e35b725fd8337d3caf63550d9b3483fcc4d2e033711538db5cf792c1990760f2"},"icon/10001072.png":{bytes:2941,sha256:"92b0722a12b3370aaa2ddc69da17d1df9ded02d96e1310d9f88d22531d1e52bf"},"icon/10001073.png":{bytes:26648,sha256:"8cb0bfeb6f957c3507f9c59987440e34f9b8af8435ded2e80451c47c5e40e3ed"},"icon/10001074.png":{bytes:15602,sha256:"ade023a5bbeabcb56c1f14936c05d43a55836d9e0d530ac27a582ce5fd099cbd"},"icon/10001075.png":{bytes:29167,sha256:"d104103a60927435254c590c3d13294426f05ea81193ba5581ac1c56dbad690d"},"icon/10001076.png":{bytes:21611,sha256:"d42eff9554cf6b8010729decfe48c67f82fbe044d7174ffcf6f66ce1e0aaa776"},"icon/10001077.png":{bytes:17232,sha256:"417922105baee5e55df1ca41dec0f6ea50e5597e25e972bda5e85921ba89defa"},"icon/10001078.png":{bytes:22903,sha256:"f595cae988c1aa72bb46aaed66fbd4eb2a80b0d428e6f69279e6cc5eb8f33d43"},"icon/10001079.png":{bytes:12314,sha256:"d786c8e75869e85cd1282fedbdd7184599d467323ec627ba84fc8ac4d5b32802"},"icon/10001080.png":{bytes:21705,sha256:"40070edd6457107645f67436623734dc991b9ca443ab90f69f70dbaaea7a39ad"},"icon/10001081.png":{bytes:20562,sha256:"d56e7c2c982f3b27cd11f81799f37e59bed9c0ee33c38cb388a761faa3ff4aa7"},"icon/10001082.png":{bytes:16044,sha256:"d1a2f46512f076d4c94d595d09bd79a621823a9beb605d7550ec7c0a18063fee"},"icon/10001083.png":{bytes:20479,sha256:"fdccdda6ccfed67eac85cfa376d6f8a40ee1219ddd3cad6900b277b609e192eb"},"icon/10001084.png":{bytes:10321,sha256:"8ed3211996fe8174c1eea74b1b5187b507fda63b2d4f9c92d1a198d2560b00b3"},"icon/10001085.png":{bytes:14763,sha256:"2f965520fc95c4616a4af85f5340788038a5b4530ee2e687153ce58559c03220"},"icon/10001086.png":{bytes:18341,sha256:"060c578e663efedf5cb8516fedc4f05837fcf63a55b977d19658324708910776"},"icon/10001087.png":{bytes:4213,sha256:"769837b1d6caa5bbd3e3aa99ea416c57538b18c7c24d918e284d9c1251bbc460"},"icon/10001088.png":{bytes:4172,sha256:"5d4ea01aaec16fe631fc2383d258bba90158083c6bfcd8c1183dc22bad62fc0e"},"icon/10001089.png":{bytes:3474,sha256:"90625242ffa6ef70ba55f48bc7ecdb056c359db8381831ff22f9885d3c3f22f3"},"icon/10001090.png":{bytes:7435,sha256:"513808a1c0e913a192a113b8503698612af55c7ba9f3f341d24f50995aa7e902"},"icon/10001091.png":{bytes:22367,sha256:"7daa0d126bd8a7389720014dcb8448da8bc21eb0b381a99062bfa81d0b4d090c"},"icon/10001092.png":{bytes:12227,sha256:"9d63290e2cfa3acf8d58df425be36a101579b867c66c306986d762d7d4f422fd"},"icon/10001093.png":{bytes:26518,sha256:"bc385ef5b565fd3a9e6f923d6172155fd25472be7705b2b62569b07b8dc08cf6"},"icon/10001094.png":{bytes:25052,sha256:"e4ae56756a19592c96fe52a7a4b538c943377c2a20d921d8fecaea6a8f0c7dea"},"icon/10001095.png":{bytes:23206,sha256:"c4f38e680893ecda45e5c7e3589a2b852a15f4345abe4ec23629e1836d4db70e"},"icon/10001096.png":{bytes:22122,sha256:"f686a5ea91407ebdc08f4291b5169bd552ed5c8d8333be59db9366770cf7ff2b"},"icon/10001097.png":{bytes:12560,sha256:"f73d09781a3c85f822b0c88fa72b740cd50a15c2b8f592fa87979353ab4469dd"},"icon/10001098.png":{bytes:15059,sha256:"7e8050b1404cc16aa86a71b41dbc9d21925a9b78ad9e5254cc4e9624deb31f6c"},"icon/10001099.png":{bytes:15584,sha256:"ac80e1a8be3932dd9961cf91cbb2b177c47600b2bebe29e415bbb6fea798164c"},"icon/10001100.png":{bytes:16326,sha256:"c09dc9a07b44cf2c71c61756237422b4a0c2d2067321cd43695ce6585cffcf56"},"icon/10001101.png":{bytes:10612,sha256:"7aedce9017c7ee89d59e134d9ddd054dd907a26db6c45e7fc20b7506c51b687a"},"icon/10001102.png":{bytes:23039,sha256:"493c35fb2876f09ab03cfe98eb72b4897c8ae425650572c20fb92e71434c98ca"},"icon/10001103.png":{bytes:19364,sha256:"530857b7b8e777d3f96fda60ccb9f23007ecac339c4f752ef3c85a297b3a7966"},"icon/10001104.png":{bytes:28069,sha256:"e9eb24af2a0ba2805b54c614f10221fcb7c1d73217b5d0dc6b7e00fea2e26c33"},"icon/10001105.png":{bytes:26082,sha256:"24952154a32e5955b8503c92d6ebbd85991930130c4308e2cafe9f7c5f577230"},"icon/10001106.png":{bytes:1651,sha256:"617f1f8e08229f2678330ba3c3b6167ba865b07f93691127e870b8d6adf6641b"},"icon/10001107.png":{bytes:22485,sha256:"938d08c4bf33909d7f0895c84a91713cfd1e6f937f33ff2da5eaf2b52eb5b06d"},"icon/10001108.png":{bytes:24430,sha256:"a601101f8b16bdd131b47c8f66433bcb973d1b695d992b09e634a728dff54535"},"icon/10001109.png":{bytes:15975,sha256:"210c74315ec41a5d3c19c29a76bdd3413765f8f17ded734dc0691e76d85b2191"},"icon/10001110.png":{bytes:2344,sha256:"e655f46b6fccd2edafc4eb323d8678eb28f3c3ff117e3ac9f69c60c1827ace46"},"icon/10001111.png":{bytes:3021,sha256:"85f3c7595d26004037c41ec5303b62384a0e78b1ae06bdb99386e027de99ff54"},"icon/10001112.png":{bytes:3407,sha256:"89107889930ee230b538fbbaf11e6d0d041ab412ddf5b9d834a35c30289184e6"},"icon/10001113.png":{bytes:20006,sha256:"043f3dc850dd766a97ca36a4a6b6a4f69f6bd1a39b503a94ae7f44d24a3f9f94"},"icon/10001114.png":{bytes:13510,sha256:"00746c36384a8db4907dd246d6eefa673f5d1779ebd7411e9ce240b605129211"},"icon/10001115.png":{bytes:25840,sha256:"81c3874b31b33ff76ff5696828fc7e041acbc4e5802a159e6d7cf39623b6e4d9"},"icon/10001116.png":{bytes:26845,sha256:"e08add35bb5d9dab63eb2113db0a3f02837033f89ef5bf03d6fb6bde4b143a7e"},"icon/10001117.png":{bytes:5260,sha256:"7d5929d69cf88c4fd3aad5d0924e5501c8d6466ae8deea9dd98587bcc683ace5"},"icon/10001118.png":{bytes:2319,sha256:"4a2e00b11368da3400d0fde87af9ae0004a491f9e5166cbe9ba3e412d8c42977"},"icon/10001119.png":{bytes:9639,sha256:"69c0e0c0244fe4f9a863a749dd0697021334cf6f8a940aae48047447d07abfb5"},"icon/10001120.png":{bytes:3934,sha256:"92b3b1c0bb994c6eda4527f6b6dd2af58c3fa895d04867856d0ff59ccfd19048"},"icon/10001121.png":{bytes:20543,sha256:"2ab3a15500ca6a11e4ca65bc371d95c0af1e0563cc2c0dc4f20c8c01ab092e38"},"icon/10001122.png":{bytes:12810,sha256:"b5836c452bfa9d9a1db7a362538da5568db5824118c696eb3a2c158ae70f0cf6"},"icon/10001124.png":{bytes:35989,sha256:"619ff5c41712328cb34e98705aa8df74574a1821770a4586b22909577a4bc58e"},"icon/10001125.png":{bytes:29137,sha256:"99a9ab0501de6dba85c2abc0e1e36adf7a86f10fb37875e2680f2f6d9ca3e83f"},"icon/10001126.png":{bytes:22453,sha256:"f43f07f4c18e71b27570d8523eb3a8e029420c31ffadcb3e3aa1bbaa80a9fe4d"},"icon/10001127.png":{bytes:19714,sha256:"07781839310d272bc7aa3dad17d09224462964e4a677466697030781c8fa71ce"},"icon/10001128.png":{bytes:13908,sha256:"e1181919aa1dcf4fce455f94c43548cdc4db1eccbd1056cd9cc2dd3eb8f61d64"},"icon/10001129.png":{bytes:17401,sha256:"350f315d554986c5a522f79ce80a4f33b658317e2dfd28e765f31f1f55d9fd8b"},"icon/10001130.png":{bytes:12296,sha256:"9a43c99b2df57772c96547b0de18a8d0760d6c324c2b9d3cc3db33467dd08503"},"icon/10001131.png":{bytes:5038,sha256:"75d352f831fb2cb7f33db7514a5e8c96e1dbaedcf370955cad7783baa0845efe"},"icon/10001132.png":{bytes:7256,sha256:"b0dba588447f82e38c20eb54684a9d1f84ea83fb011287908f81cac2d9c29756"},"icon/10001133.png":{bytes:6606,sha256:"96100d356bd18b99201bde0a3196a851804f391a99e915a189d1ece883c4e349"},"icon/10001134.png":{bytes:7075,sha256:"93352721db5da92231f0b53f01f72aacc33670a820e2fa6331f402c79ab3dff3"},"icon/10001135.png":{bytes:7300,sha256:"e978e0bfac39714827cd7dd770b54fda77e5e7bc82392ce8092e9ba616ceac3c"},"icon/10001136.png":{bytes:4617,sha256:"403a83d32973ff5007759b8910d8d38f29c42d0caaee60876a29951a263008c1"},"icon/10001137.png":{bytes:6923,sha256:"e64530fb2cc4cb2e95be5481ce47d78a99d095cb4739f6c58f0269bb6c06df60"},"icon/10001138.png":{bytes:3412,sha256:"0d8839c0f16110389f079dd0cdaf32130b0d4363994cd62e51f64775a89736c6"},"icon/10001139.png":{bytes:3432,sha256:"ed8360d109e366c6a330c2806137f37d458194adcb5d7a5d61da0c168061f316"},"icon/10001140.png":{bytes:2813,sha256:"b3d6c1d80544a5327c21f9e63e452ed129e729e4ba18653013386bfe9a26d6ea"},"icon/10001141.png":{bytes:1976,sha256:"7874744cf4f00e0a676a4d76eb469e72ecd5fed016ae4b25a164f78994dedc19"},"icon/10001142.png":{bytes:15037,sha256:"14d12854b4b17da8ba54f0808be9acca2cdea82f004b047343b288fc5c442d65"},"icon/10001143.png":{bytes:5652,sha256:"5f02f7cf842d9aef4b81b784e3dce9ed4e820745c97efde3b7af2fa94cc6f2c6"},"icon/10001144.png":{bytes:3080,sha256:"ed7b8552f4dff8310e269986336dba5cbe76ccb6e065156b825bf8e0b5c8fdfc"},"icon/10001145.png":{bytes:2987,sha256:"ffa4d3452e8d0c751aec973fffe797c2e872175cd5912d0393c72b3da8cad13c"},"icon/10001146.png":{bytes:5483,sha256:"4ed80b9c3fa0d88c6cef1289f18048b9b373742348e991e23b3ac042bd71ad26"},"icon/10001147.png":{bytes:1152,sha256:"05750a2593db8d6cb0e64755e447fa2236cc5edfdd633a8ab9be8d8b5fcd7d89"},"icon/10001148.png":{bytes:2662,sha256:"421eafe1622cd73809a8b09b7a74074628a8acc9df8c4411f7ee51fb96a6cc2d"},"icon/10001149.png":{bytes:5963,sha256:"a16c6f9abbd6d866df576878a10477bb1f9c055d4ad19a050e3305b394f80058"},"icon/10001150.png":{bytes:7106,sha256:"66161334208241a31f9f5bca369733c81c6070de9b1d9f4c922c6c5a15dcc684"},"icon/10001151.png":{bytes:10932,sha256:"260a9dc36d191df0700e243e8461362605ddd759a0bd7fb382a9175ead3d9c91"},"icon/10001152.png":{bytes:5867,sha256:"e1980362d5eed82c2806a9ea5fc1b0ccdac33629f7aee398f74c5f54389ed683"},"icon/10001153.png":{bytes:9870,sha256:"e1e279e3065898eca9503c8652b74a71b4151284a733ee9293026be4d249c05d"},"icon/10001154.png":{bytes:9156,sha256:"6c6bd25805bb81659537de7814550b6b4daaddaf894645eb630ff9520a246d04"},"icon/10001155.png":{bytes:5172,sha256:"057bb0e931efc9b955b43943dcbbe5df73cc34ffd1755df8986e0f8f691b4794"},"icon/10001156.png":{bytes:4527,sha256:"5b93b62d5f786efce3b63ad62da61c67f15a65441a47fcb2df3cf92807170758"},"icon/10001157.png":{bytes:1326,sha256:"054bbfcfbb69453dfeec70ac86a3fef70f4ea818110a9a8285bd294d65972d60"},"icon/10001158.png":{bytes:4270,sha256:"dc54dad40d681aaf0f6aac8b3dd4b419e05a079d5d05bd4561a7348b9edf7927"},"icon/10001159.png":{bytes:3192,sha256:"b3962f15d41f625b1435c7d7182f2b744fa9de0ff299503dd3683171de794d2a"},"icon/10001160.png":{bytes:5158,sha256:"9e52b24f602584cc198214039c10c2bd33609b3c448ddfd2acbd565beb8bfbac"},"icon/10002001.png":{bytes:20145,sha256:"f4d95a54594309ab6deed445289097af22295f51ff5b7139acad7bb06045bcb3"},"icon/10002002.png":{bytes:21810,sha256:"af166959cddb542b83349dcc045096dae6185cd52d48a013dad78fe7ba1053ce"},"icon/10002003.png":{bytes:21958,sha256:"8bd0e7b9603ab0136ce86d8f7ace42ae23640013f07464730efd774655bd1628"},"icon/10002004.png":{bytes:23769,sha256:"4c1e6d5b3eef62b104f392bcd6cbf3ae7d2abaee06b161a1a65c6e916734945f"},"icon/10002005.png":{bytes:23898,sha256:"b30336b8be741b5a6315bf6ffffde315446e1639d9438e649f282153eec3f13b"},"icon/10002006.png":{bytes:36362,sha256:"81973c5d0fc8a86e8cec23d9d3eeb68f23ea95c302e8fefccaec90a320891427"},"icon/10002007.png":{bytes:23004,sha256:"1b42dcbd00fb4f45d6818b05e8b56c2880b0b2fbe061d17562f0c2125e6dbef6"},"icon/10002008.png":{bytes:25821,sha256:"7a6a91b0b32ef193de8601d3779c8a96b30c8994f746ecdb14920f364f434401"},"icon/10002009.png":{bytes:29951,sha256:"d736d5118775d03725093e1dd6bc51236c7fa39ed00184487db2267bae5f9f4f"},"icon/10002010.png":{bytes:26085,sha256:"6b92c88569ffcdd8b2cd4836f281b36ef5085c468fbb14923d085317e3d25c81"},"icon/10002011.png":{bytes:25715,sha256:"827cbcdb97487fefbfb801847e4acbcf298d0c10037173d612b006f615ef5ef0"},"icon/10002012.png":{bytes:26384,sha256:"e7ae9e007cddcc3c1f3a0d8206052b107ed5726276105583f4bb9015a14c5fa3"},"icon/10002013.png":{bytes:27500,sha256:"5ff084b46a5b00e83aefdba355c33bd972cad0537c08fee7bc6ffb42bc0ebdc6"},"icon/10002014.png":{bytes:20236,sha256:"c98b3528d9506c343a680e3699c3481dc0e17a7c14966b447a963c8bc0639c81"},"icon/10002015.png":{bytes:30913,sha256:"1efb63f37ed6ebcb4e28488901b4866d37204840be668a677e53fd8735b55c53"},"icon/10002016.png":{bytes:26866,sha256:"a91a05fa0e2f633e32011fc416ecc7b79096bdc531480200bc64b71ff8c05b5a"},"icon/10002017.png":{bytes:27987,sha256:"e9adecf78cac8b30edfec13604726b9e04a3bc5cc9ab2459ca09957a4300130b"},"icon/10002018.png":{bytes:25698,sha256:"2c9ce8412106fef0b68132d1bb13358b0c2953ab968f248559f1b4bfb043cc80"},"icon/10002019.png":{bytes:20846,sha256:"891a3906fc6324235cdbf4c83c7e0d58c6a7a71c423b2bb0a38e04d0de717d4b"},"icon/10002020.png":{bytes:19304,sha256:"b06d5f3d0a91dd2b49174f680d829d73260a6d4cbec4fff48a6131d4a4e89695"},"icon/10002021.png":{bytes:21812,sha256:"01dad29e897e1660646fdaa826b72fadbe822ceb13bbad6cb57fd1f9519e3139"},"icon/10002022.png":{bytes:19095,sha256:"eb571c371e8c9f6447d1567652425c43d2e6cfa9ed5f3dbd6b29fd3ff26f741e"},"icon/10002023.png":{bytes:20241,sha256:"5769cad4d0fa0effb7498b15f97ee1f45e6655275df15164e04f79ef314324e3"},"icon/10002024.png":{bytes:14546,sha256:"b823c0e0b8e4b852519254794cf219b42e02021d667528c6387a545fc2a066ac"},"icon/10002025.png":{bytes:28393,sha256:"5374e4d458ac4d8ae45419c0040c1981f12395afb984b631c48b640b8be2aebb"},"icon/10002026.png":{bytes:5243,sha256:"f97e20c0f2ea8e3c2d3b3dfaa9d3b9449e3ed559364cc2e7ab1516d0cb88bd78"},"icon/10002027.png":{bytes:4486,sha256:"cdd1376115bf45ba21b47c6e574a5b28f7c83cb36159bb1f7c60d737f9ec8ecc"},"icon/10002028.png":{bytes:3253,sha256:"41e38057943bc5dfbb24d8279c9ce23b58c871615deb28d934b0bb954bb66df2"},"icon/10002029.png":{bytes:24855,sha256:"60c949a324f60ac215dd01ea0dd4471ccff9b912717fd3b03443dea31dd87940"},"icon/10002030.png":{bytes:4435,sha256:"0a3e76f32808add9274d8e65d279b33521b655036d24cf87de3f5fa11de6dfc9"},"icon/10002031.png":{bytes:27998,sha256:"8fa5a2187292213adab843c9fbc68e8f099371a3ed74c55195998f92810e8b4f"},"icon/10002032.png":{bytes:21697,sha256:"9ece6166203932aad1a59d851258dc92e17f67f11de52b642c3abedeef571a3a"},"icon/10002033.png":{bytes:35521,sha256:"99c220eec1407ade7a0a5ff8c22a8dc6e4149ac6d0f407c005f78f8338f9bab5"},"icon/10002034.png":{bytes:6754,sha256:"b5097a0501688fe67edf17c7a993ce12323a2b86b55226db7cad7d9c2ffa016b"},"icon/10002035.png":{bytes:9625,sha256:"172106dc0c33f12daad2eee2ab1278f94c1026d0d6db70320851f2908eb9eb46"},"icon/10002036.png":{bytes:2474,sha256:"43ca13e6572a60aacfba330ac86bf5211a6901914fbd1559fffbb89ca15ccd41"},"icon/10002037.png":{bytes:23717,sha256:"d232b256c550eb85f96d5eb28f19a661f2127f383f49bf4ba4348f935f32dbe9"},"video/10001001.webm":{bytes:147646,sha256:"a72065f7abcc9387fb3dccd473d509bec7b421aa6c34c89e344dd8ee294bc2d2",duration:10},"video/10001002.webm":{bytes:171594,sha256:"b6e89b1967387bf40278b73414d90f0a3b8c61b0e4bfa63e74f67fa049ad3482",duration:10},"video/10001003.webm":{bytes:151975,sha256:"c5fa8ecbc3e6992256ee128dc400d2c93bf91fe5f7813a4d289c4b6d477fda54",duration:10},"video/10001004.webm":{bytes:164765,sha256:"d85282288b6a845d35f7ec6bfe49fc0f5d4766fe61ae30b87a9df6ff2a4961fc",duration:10},"video/10001005.webm":{bytes:189607,sha256:"0f186507b14407573ebb42da49a5749809e28819854cd46b4bf82b858ff057fd",duration:10},"video/10001006.webm":{bytes:136733,sha256:"cd11113d02047c42e3c03be3f2835f34eb52d0fe595b8e380a69fa86d9a40957",duration:10},"video/10001007.webm":{bytes:174723,sha256:"c9e65dbd73985b4ee5e716b63f5a9bf5719be8b95ea9a3a61a3aae772adaa064",duration:10},"video/10001008.webm":{bytes:13947,sha256:"d494a403015acc7700b45021ce269771edc8766e62f2bd82a7d26c9f60c63bb5",duration:1.3},"video/10001009.webm":{bytes:15895,sha256:"04d442aa0a51199be173b17a069b8365ae3205b26db275fb73355356fa1f871a",duration:1.3},"video/10001010.webm":{bytes:83391,sha256:"9bb064beb2f4622cc761ba26e5793da93c576d9c26be517912bd0d25f82763a2",duration:10},"video/10001011.webm":{bytes:107849,sha256:"d884e886fd74baba25a896921907e37675329915a90081fbcdd30e84fe4df099",duration:10},"video/10001012.webm":{bytes:84881,sha256:"c3ed5ae0813a45908906170ed6513b64c20a51f72aa0783ee55112ddb8701f80",duration:10},"video/10001013.webm":{bytes:96819,sha256:"560da96c18685b4fe4acc7b32ab940f229bc7ed1c57b0dd4511be7c22e5b6162",duration:10},"video/10001014.webm":{bytes:140840,sha256:"6ae425c9aa6d7ce1a476f18caa12ef0b124fa8b98e446696a3bba29ef6ae9a32",duration:10},"video/10001015.webm":{bytes:106513,sha256:"78e68a0cd736cf5c7a433f79f603126d0036bec8a751c937c7b96106180865c9",duration:10},"video/10001016.webm":{bytes:126160,sha256:"206ff8c1ba2836b2e58a907458b3c5a9ded69556eb4e29685725f49a90a2b481",duration:10},"video/10001017.webm":{bytes:217547,sha256:"0b1402a3ab2b0b3fa2284c33dec5b818049399a3a7cf1c2bf6b891c604905577",duration:10},"video/10001018.webm":{bytes:78212,sha256:"b5681b42272c66d918e143a63b6b4f9c044cd6b3ef1a8d2050a26f583b6b7a2c",duration:10},"video/10001019.webm":{bytes:175270,sha256:"6f493f9db0be094ab927becf8be553d416eab7ccdbac76896cd02a33ea094af3",duration:10},"video/10001020.webm":{bytes:227796,sha256:"57eb38683cf84e8abbd6319da39e08e4233baee90bac54568034fca55f7a253b",duration:10},"video/10001021.webm":{bytes:216527,sha256:"e19c751b9c36ce5d68c18a161ada9216e23f7cf8598638de9c8b4c2911d6e390",duration:10},"video/10001022.webm":{bytes:188626,sha256:"6ca2e91020c1141ee626b5dca2c7c190978562a70af2a6982f387c1e9cd9e53d",duration:10},"video/10001023.webm":{bytes:199004,sha256:"0b42968e4ac8f1152244e3821ef33d15954bfd3efba5709568b778b7ef375d23",duration:10},"video/10001024.webm":{bytes:60772,sha256:"a1a4269849425bc985f07f4e2c9e7bfd2fa5094238926b9d4096b8155bee39ce",duration:10},"video/10001025.webm":{bytes:61785,sha256:"0d7e10b6b97b5cbb5098046277b0315b0db4b5542ad8da82758adb800eb970f0",duration:10},"video/10001026.webm":{bytes:59199,sha256:"d2404c66eb3f357ae6349541a53fa713c4d81793c9b5f273cb6d5b949ded6330",duration:10},"video/10001027.webm":{bytes:37421,sha256:"c97fd7cda4cf46636757fd2913f5cdbfc44db0c183d7190499c3f54c1b007bc5",duration:10},"video/10001028.webm":{bytes:57620,sha256:"0deb4f0b933adce6785a46c2319e63721774f185532875fb4434f78eb905863d",duration:10},"video/10001029.webm":{bytes:66083,sha256:"ae3ef6d5ed1c676ce11136f98404159bbd3e847b7967c7cd76e53060df090ddd",duration:10},"video/10001030.webm":{bytes:58745,sha256:"0c7965cbed1119b1ff13e1b3381129a28468a6464279751590063f11efd8028a",duration:10},"video/10001031.webm":{bytes:8557,sha256:"5847d08b09f9f39575fba5fabada6133757231545bf08656ae145136c8d21bd9",duration:1},"video/10001032.webm":{bytes:25221,sha256:"0a401d8d73d2a838d01daecdf047b04ae98cf76cac899ae7a21fda8b9cefc2da",duration:.933},"video/10001033.webm":{bytes:34602,sha256:"896f71d3387bcf4154cec5fe67593c1982374af65cfebd5b989108adc2e07ddd",duration:1.2},"video/10001034.webm":{bytes:125134,sha256:"3804a3b13d8974702162d97a703c63a7aa5bb2690e892a6215d3a61af788fa8a",duration:1.4},"video/10001035.webm":{bytes:67308,sha256:"22651c969c1e7ad47a6aa062a7791fed498069d407dce6471afb760b83eee66c",duration:10},"video/10001036.webm":{bytes:127270,sha256:"f0dabcf3554f6aeb9a3070796760df4f5a7047e435ba94e8c3948bdae24dcc45",duration:1.4},"video/10001037.webm":{bytes:168190,sha256:"3b0423327eac86c2376f2d0e1ad08142c335e80b3bf2a35b58410e43038a39e4",duration:10},"video/10001038.webm":{bytes:131917,sha256:"3153ff561dbb204cff54001334794aff6551dc29e55dbeb0fad35bdef372033a",duration:10},"video/10001039.webm":{bytes:11634,sha256:"2bbbdddc40b1790c6ff3f4a7be9c6ad0f8a5ef521d45e4c7ca9f0a84a70dcca3",duration:.766},"video/10001040.webm":{bytes:29034,sha256:"9187e82dace372eda0441947980d8a981238b519fe8b91b3cd8983a25bc38124",duration:1.2},"video/10001041.webm":{bytes:145234,sha256:"86c73a18f5f07c18427a4f6540e94ae0488a22ba061f931c5071f4524aeb8e33",duration:10},"video/10001042.webm":{bytes:173888,sha256:"f4011ff7a3474cf2ff9cc02eee560e46d3e1ad165848dafb989907199951ac01",duration:10},"video/10001043.webm":{bytes:42182,sha256:"9bd4b77d6cb8be53aa0cb3954a124c523f076cd4b3f3ef646d1a41a272c9a058",duration:1.233},"video/10001044.webm":{bytes:32089,sha256:"789fc8b1316530b118bedf21682606096aa1f4191c1946dcd1d3262713567a84",duration:1.566},"video/10001045.webm":{bytes:9892,sha256:"d9261d0738da8852b6473a93bff97ec9f5d7e8fe130d314b44f4d870f9e2ef85",duration:.733},"video/10001046.webm":{bytes:7771,sha256:"bc5fcfa1b15638d4f4b44cea1f27e02e5c7281e5d422dd70e8945e52524f236b",duration:.8},"video/10001047.webm":{bytes:11433,sha256:"8dfb6ace018b13706517ee2511753af3606a9d646ef98f7808a1bbdf0220e23f",duration:.733},"video/10001048.webm":{bytes:9648,sha256:"d92bced2753f1ab8cd2edbab06905ac82e4b1423235bd32e9259058070d19470",duration:.733},"video/10001049.webm":{bytes:24623,sha256:"54769931e5ce88f652c63c4b190aa017a7e70e5860b046df7a2813f00cb42b59",duration:1},"video/10001050.webm":{bytes:20713,sha256:"919a6070b7e1f042e5a74f091ba8c23924f467cc1ddfdc5816feb3d638cc3acb",duration:.733},"video/10001051.webm":{bytes:317681,sha256:"a1dda360215590f4b5fb7b8a82cbe44d240211270485eae950b5535b01686d08",duration:10},"video/10001052.webm":{bytes:15091,sha256:"ff7685c63cf73e1422f07b59bf5e006b6dad8d2d80b1a8ae0997d13ef58487df",duration:.9},"video/10001053.webm":{bytes:183319,sha256:"c8c07a2deb6b4899a6d1c1b8dda72fac6ed45a11d6646c40f5c2e354a84a8d13",duration:10},"video/10001054.webm":{bytes:17094,sha256:"ca07c647725212c323dad57886c5b56a5eda2ae27909bf5ddf0f3589e99b5b5b",duration:1},"video/10001055.webm":{bytes:53469,sha256:"a8c69dd8c3c9e4836f1c3c9a4c033bc7bfacc0fab9ac2981c48e4391589c41de",duration:1},"video/10001056.webm":{bytes:225400,sha256:"60fbad9fef225e7205c0eba98951387354a8470e9a50db3921494db3dba6ba0f",duration:10},"video/10001057.webm":{bytes:7082,sha256:"0aeb94988ec8862c3bec3f357f380b675da3b0881c48640b37fa3d1215353b9b",duration:.966},"video/10001058.webm":{bytes:90245,sha256:"4bbbc44479a590344eb38e965facc757347d87c63816e0ccf8939d98d8278ecb",duration:1.6},"video/10001059.webm":{bytes:87447,sha256:"fb1b2bf01c971fcf2a69833b2728d8553f058877386c6e17947e2bc28e50f904",duration:1.766},"video/10001060.webm":{bytes:1276390,sha256:"19f135d0143a973a7ea358a64f83aacb227ddd483f200c6fc88738b3a2e1c9b5",duration:10},"video/10001061.webm":{bytes:70336,sha256:"10d1a43ee81a6fb691448a1a3165612edd96943e7188612069a13f57788c3513",duration:1},"video/10001062.webm":{bytes:102563,sha256:"79a12a7baa9ab219c27845166f613f87829073e0214ff26ac1b3239a2f8a8222",duration:1},"video/10001063.webm":{bytes:565456,sha256:"6784dd43aa64a9005df034defe99ca23eedf9a124f0a0681bb9ea531152d5656",duration:10},"video/10001064.webm":{bytes:48740,sha256:"3585e3b7579301babf2a941529d05261f7a4e7993d394be668ce3e6b34269be2",duration:.866},"video/10001065.webm":{bytes:16738,sha256:"96de617b4263a73bdb61e98d4643e8ad6488bc0cc359ee4f8da5eb6b0333c466",duration:.9},"video/10001066.webm":{bytes:12376,sha256:"ca507ca6ab20dae1d3e9ff3cf8fb0fb70763983f4b3c82fe8f05b5b011160189",duration:1.066},"video/10001067.webm":{bytes:23685,sha256:"8702ce3719d477e8a79a5321b152a804a583578aa6335aae221e238e449c4508",duration:10},"video/10001068.webm":{bytes:55734,sha256:"708b564295d3c3e1929d4f5da5af6595e9ef236e692380a838e4230ff3813381",duration:1},"video/10001069.webm":{bytes:1128088,sha256:"56b38a26aaa7913066c3336ba98f7eb1037c17fe80fb110d45e123cc46c36acc",duration:10},"video/10001070.webm":{bytes:975681,sha256:"4c762f4cc796d0a167e47ba18c6c658b9173cc8fd951b9c7537043ac1d3cab4c",duration:10},"video/10001071.webm":{bytes:815992,sha256:"e2547ebac9f4d2dba4cc455fc73cf1de2afa209f4a54473a252f3578b5882361",duration:10},"video/10001072.webm":{bytes:616757,sha256:"551e36eea20409279ac7b058f0658460e88b60c7b62189209ab219ab5ab35969",duration:10},"video/10001073.webm":{bytes:37684,sha256:"913e5eb86f0de97099bc8f1c2860dcc0ccb23af3df7b9565e46d23dcd3d5b2e4",duration:2.1},"video/10001074.webm":{bytes:12604,sha256:"7a034a81cb6b8d09507a83c42b44fa6ce5dac567aaa4dad86900772e81573fac",duration:1.666},"video/10001075.webm":{bytes:107268,sha256:"a58331fcb3c6ca07f581b3ca490eedcd4e4d486ddcf944083038198495dc8c6b",duration:10},"video/10001076.webm":{bytes:32481,sha256:"6c49036a5c3d63f3f8a554e751fde071afa7a88c69c0eb5fa8aac3ead9936c85",duration:1.2},"video/10001077.webm":{bytes:34358,sha256:"8b1cd91b4547b5c773688dc7586d02ef3505b56a6c0e5e8cfe95ac2877074fd9",duration:1.1},"video/10001078.webm":{bytes:46506,sha256:"d2b1506af78535ae8c25d12ed47f613f58c96c237aabd3a69481926279abbad2",duration:1.133},"video/10001079.webm":{bytes:73888,sha256:"14eaab31df0169c82d784132e336f21e3dbcde36e8d863e813fdbbd0cc7fe736",duration:1.166},"video/10001080.webm":{bytes:227149,sha256:"f953d8cb2c360f1a7beff3f1eb0287d2ad5b4b5021cd8add406935e7bce0f499",duration:10},"video/10001081.webm":{bytes:206185,sha256:"bd954a94b76ecb754018c8d2f5600757907fcbf5b8d8fd8c16eba98d2c77bd45",duration:10},"video/10001082.webm":{bytes:414215,sha256:"a66f150faa15b300f9d87422b83566b253c50579b8b08a83e7d5fecdeb33117a",duration:10},"video/10001083.webm":{bytes:103790,sha256:"f7619598f5fd506003b6161a7d7a9f7d13eaf3ae26a51cf560899ee50ab74850",duration:1.2},"video/10001084.webm":{bytes:49760,sha256:"075a51589f5556f125c56e3448e2b8c7fcfeec7f7981228e46991fcadb58b603",duration:.7},"video/10001085.webm":{bytes:39486,sha256:"7782a3f27d41c5b833746b6892a2074821226da33b0dfefe1173c5a45890abbc",duration:.566},"video/10001086.webm":{bytes:24420,sha256:"1e7c975fd2c3027095353ae2b7651e3b9f0104554a072579127817aa5ccdea02",duration:.866},"video/10001087.webm":{bytes:58874,sha256:"5101e1da0097fc9785131be66f411e54f427ef18f21ade4b254728e94ac568b7",duration:1.166},"video/10001088.webm":{bytes:64189,sha256:"a3c150eeaca295e70a351b250bd3554b4633a77f6704e581b72a8bd93f0ea194",duration:1.166},"video/10001089.webm":{bytes:25443,sha256:"0e5a1151fea93701ebc923211c8f5c406e895104a4afb9ba71d521ad45b39b85",duration:1.966},"video/10001090.webm":{bytes:65254,sha256:"89ad6f296294c0abf4fb08e68ebf141d1c602a659c0ec563f7058ac6d2462fd4",duration:1.166},"video/10001091.webm":{bytes:81681,sha256:"3081d901c969bc1f4a4b10a447c3a712a8b4136965c34a76119e1b6dcd5e6cd3",duration:1.6},"video/10001092.webm":{bytes:548135,sha256:"5c013b847ea4b8338927ebd2597c2bb12b9c9a7231853c3d277eba10f9dd453f",duration:10},"video/10001093.webm":{bytes:63342,sha256:"bc87982e78383167ff4c649b6603a78cff1d6cf3cb51349e73626fcb2a5a7b49",duration:1.033},"video/10001094.webm":{bytes:20050,sha256:"53e91848830acea081a4d56ab8db383627a78ebb806ecb6766a2e11ed9573c58",duration:.833},"video/10001095.webm":{bytes:84670,sha256:"172553d18635861bfe28c6f06b5c8cea5e7640287cb75242fec31c12319772d4",duration:1.8},"video/10001096.webm":{bytes:28716,sha256:"31d3f4236eb9e2f2f6cc76003284b02496bc581ab1c8e19cd5929b5828c894ef",duration:1.6},"video/10001097.webm":{bytes:25147,sha256:"2129484b7dfcc5abe518553a0841a92a6582062356acda687b942b2cb221d26f",duration:1.6},"video/10001098.webm":{bytes:76333,sha256:"ac1d85c4f336abd854fd461db4e0951c83346dd2669c38b91e537ec758e9de65",duration:1.6},"video/10001099.webm":{bytes:76173,sha256:"2fba51975dae32febc9c1a270b1b5b769d299f143c4996198c7dfca26efd1014",duration:1.6},"video/10001100.webm":{bytes:80616,sha256:"ee23d3bf91e53bf9eb93d5a7c5879daa54aaa7e7194ba3944758131ebee68c5d",duration:1.6},"video/10001101.webm":{bytes:84160,sha256:"cb606310669a2a1d2f30b0903af51eae290a4276d2d934439999bfa10bdb5604",duration:1.6},"video/10001102.webm":{bytes:82257,sha256:"01cad0b39abfc2f041df3c1e786a11d3323cd25297fbebca2f196f8f556c8d82",duration:1.133},"video/10001103.webm":{bytes:91224,sha256:"106929efba101b9ae0f76b6b637cd4e16863bf9f72f779c2474d0d6cab4fc1fc",duration:1.166},"video/10001104.webm":{bytes:89745,sha256:"0862ade9ff0001d2cb5458e3cb6998a7ac42c2336840d73532f5492e522cbb34",duration:1.133},"video/10001105.webm":{bytes:93873,sha256:"0b03b634e18bb25087af672cee8e29df618540f3ac73761dae9a854a629dcfff",duration:1.133},"video/10001106.webm":{bytes:80898,sha256:"c25414e50001dd924e75c4b9aab2aa4fca72d1765bec268344e1541c9f9734ff",duration:10},"video/10001107.webm":{bytes:14411,sha256:"faa6ad2693c69433203864414e338b8d0f322096ff6b05b826787ec3a7bf7f57",duration:.8},"video/10001108.webm":{bytes:45841,sha256:"5e3c3dbbbd11985807452e9b02a69477d018b60dcf1598ed1deb21ec82bb4a50",duration:1.7},"video/10001109.webm":{bytes:53026,sha256:"2a0c537529b94d06bac852d498825b431a2830d944e8601e752b115b68d481ac",duration:1.666},"video/10001110.webm":{bytes:28873,sha256:"b1ec1a3d0d577270b1eb3fd1dcf2ddc36df9dcea52df0249b8440db3e0ec9b6f",duration:1.533},"video/10001111.webm":{bytes:15873,sha256:"74c62d1739cb80ecfbc66b755c7332a27a53b3ff3c6d72aa75d47804b211ad36",duration:.9},"video/10001112.webm":{bytes:17381,sha256:"e3c96e5b87f26c54347abcc591e241a78ae3ccccfc2eaa0bc447f1400410ed92",duration:.9},"video/10001113.webm":{bytes:28753,sha256:"1b16a8e140a6787675a0201e4ef4dea5633076d9494cdfb6f8c16c9b2507b8ea",duration:1.166},"video/10001114.webm":{bytes:111410,sha256:"13cd5f511962912110c6ac8d6ef7e39a823fcf48477762a18123080866b43138",duration:10},"video/10001115.webm":{bytes:43777,sha256:"0000583cb60ee7e8d562e13bbf5ddd7fc3fd8c9d93d2bcc7b96df9ab524f980e",duration:1.133},"video/10001116.webm":{bytes:87365,sha256:"d96dc3d3f552ca40e77ddd55b50da8c93a7bf34f53a6ecf01802751248f2189c",duration:10},"video/10001117.webm":{bytes:15087,sha256:"9e95f50d1385083834770fa0f09ffe79fa570e93def94b52a6a7a7e64f581a0b",duration:1.466},"video/10001118.webm":{bytes:74213,sha256:"4340b8ff11f8a3795d4d2fcd5c32d112ea4bb92153880f8b3eda34e15a82738d",duration:10},"video/10001119.webm":{bytes:26934,sha256:"244f12529343f2163be2b075dafc1907662ef53ab60c4ad081b8db9d81b4abc1",duration:10},"video/10001120.webm":{bytes:15909,sha256:"77c6308d62f016d2f6a0669f5c165efab2afff3d15611afb54965bc65e3ecca4",duration:1.566},"video/10001121.webm":{bytes:14072,sha256:"d5cc8215a5d4e8499f402cf5ad34e4ed958319a559c669aef9d5507be8f31d03",duration:1.333},"video/10001122.webm":{bytes:39768,sha256:"a0c0c537e22211affdafff6d4a42fee3b6fbe1d0fcdc17adbd5854b6395c9496",duration:2.6},"video/10001124.webm":{bytes:568780,sha256:"39b58e373aa854c91dfad8af90b3b84e9b04b7cde050388152622ac2c1f9c19b",duration:1.4},"video/10001125.webm":{bytes:179690,sha256:"42591454c30e14b1a65f5c7696516edf9e690002ca6fedf5a331e3fb39e13a83",duration:1.233},"video/10001126.webm":{bytes:243266,sha256:"faf35bae68aa35a358447c791c91808872921d4794f5c90e5763d692bd807a9f",duration:3.133},"video/10001127.webm":{bytes:208681,sha256:"42fecb16b110931f78c06d61d52374f5fa74fee60b1b37dcec4c608bf240adba",duration:3.066},"video/10001128.webm":{bytes:14331,sha256:"4a57b0082c4f32309eb212ebea0d1069efb87e4c3da4d65d556ca7d4cf397954",duration:1.966},"video/10001129.webm":{bytes:34019,sha256:"4bcab75c2f7ce6e2980b13fca3f8cb95bfb3bbb46396f52b0691a3b9499b2af9",duration:1.133},"video/10001130.webm":{bytes:10181,sha256:"f9e3bd1de752007281ab2d45fddc933b4709182a765e602879c3c9402dcebef2",duration:1.2},"video/10001131.webm":{bytes:168665,sha256:"275465192460a885a738b907be135e91be2546c9596cf0d0232ffea6d06065a5",duration:10},"video/10001132.webm":{bytes:97830,sha256:"4dbe1e8d33843f8360ad246082650ae7ebd0d66ce6b133e2f12f1d748719d13d",duration:10},"video/10001133.webm":{bytes:51508,sha256:"44b562df1ae76f3a1983447107aeeb00fb439afe3eb3e1d6a67a141467673aa1",duration:1.5},"video/10001134.webm":{bytes:36767,sha256:"adf67abc9bb2872b6aae897ecdaeb281384654e3066d03b07d6616a7393708a0",duration:2},"video/10001135.webm":{bytes:26042,sha256:"c2d6215296f9e200fc75c0d36f8523c4c5b24066a0e8eda2f01b6f5daa717bec",duration:2},"video/10001136.webm":{bytes:28762,sha256:"07d2d47eb8672b958f35fe6abe9ee2dae11db9a8846f1ac8d1e7206e466bf2db",duration:1.466},"video/10001137.webm":{bytes:151972,sha256:"f94c2f584f894e56def265d016e53ebf81473677633dfded66890fe6d3e2f175",duration:2.066},"video/10001138.webm":{bytes:68031,sha256:"43929724a51e2f99d9ebf5f7ffebc51ee90712b7520e213a9457bfcbb5f9a517",duration:2.033},"video/10001139.webm":{bytes:72750,sha256:"19d626334d981b16c00b4c5cc39ddab5bca75034f497f5345f18526e7fe25250",duration:2.033},"video/10001140.webm":{bytes:70456,sha256:"8cadee838df527fbe11b4e8fc5e3b7c784fad21f61c7c214ef7dffca72f0ef58",duration:2.033},"video/10001141.webm":{bytes:42664,sha256:"34f97de7d1dc183a5fb958305424f73ea6498254804c3ad669d44dc04bef939a",duration:2.033},"video/10001142.webm":{bytes:710423,sha256:"dd2aec022ab89b4e048b4e212216e5c0862b6c8be9899970d11b1d7a2267f9be",duration:3.8},"video/10001143.webm":{bytes:14487,sha256:"c393d0afa72faccf42aefb8cf946f08725dd76e28af2cb608049ae9416dc0887",duration:1.066},"video/10001144.webm":{bytes:13412,sha256:"47692e1e22510aef145080fcf1e42d6d4594cbc1ce3ca8dd89f247d7c59fd271",duration:2.233},"video/10001145.webm":{bytes:19632,sha256:"8fa9abcbc084f7952e2dd8b1ec325e676b78e2fd2be421aadbc83137463175f4",duration:2.266},"video/10001146.webm":{bytes:13723,sha256:"bda3925d9183b351f85c8152a9a2ca36ed994e6656fb210e08e2251df70c4ddd",duration:2.266},"video/10001147.webm":{bytes:23765,sha256:"566fafa5c585eb127bb81912324486a26c12db6bce8509763eb130ca1bf4be57",duration:10},"video/10001148.webm":{bytes:48537,sha256:"d7eb086bbe4e43d1733c4b7c4683248fc9686c0d2540b15b44030050415f18e7",duration:1.233},"video/10001149.webm":{bytes:56797,sha256:"a89363c03820728fe3041217caf3daa2c6b3b18c03a38478c9fbc38013df4874",duration:10},"video/10001150.webm":{bytes:71959,sha256:"33d5db768fc90f96ad2dd81fcaa2944ad721331fdba90ebbbc76abe9c9e622ad",duration:1.366},"video/10001151.webm":{bytes:70714,sha256:"f866a0e45980bbb029df58349d1401f259e79076e5a919584eebaea9b94d451b",duration:1.233},"video/10001152.webm":{bytes:1072305,sha256:"b9200f9b1dea6f7350dfaa0d1bc4eadcc4b4f0650fe190fe22ad25bc7e3a2b7e",duration:10},"video/10001153.webm":{bytes:37507,sha256:"add87a7074d611f312fe0c43a24ae18d774ff62a4cd24db69d2526fb7a2e1736",duration:1.2},"video/10001154.webm":{bytes:755336,sha256:"cae2ff5f2dc15d639a5ea411cab50a9bea03fad5f73116764945f6d012be74b6",duration:10},"video/10001155.webm":{bytes:28588,sha256:"ee157e4e1e8452bf7f1dbb32bb5509e9b8659edc5d1bb0bbba0b70af2e6c4328",duration:1.2},"video/10001156.webm":{bytes:21193,sha256:"2655315d0fa59d136b1a77e760a5b085aeaabfe70d1130ea17e937b037160afb",duration:1.2},"video/10001157.webm":{bytes:146426,sha256:"eb48647b768bf300429f157eb570b4c0d7c9d04bb3df53768e6875b91e51931d",duration:10},"video/10001158.webm":{bytes:231389,sha256:"8ea98583d1972f176e3354b6d7c116ac6b2689c1593b02ae4fea55774ca0bf8c",duration:10},"video/10001159.webm":{bytes:69087,sha256:"8b70a7eb8e83a9230bd3b7a658633c84037ed0667b0da87b78206f48ca2f487b",duration:10},"video/10001160.webm":{bytes:46691,sha256:"11698fa6b8a4f5ffd3f289e41266a7097f0e620bbb64359e97f1bcf7430731e4",duration:1},"video/10002001.webm":{bytes:543544,sha256:"6a3509a94437899e30846d0f701e0ae3ccfa82793f51d293ed507c8efaa67099",duration:10},"video/10002002.webm":{bytes:796059,sha256:"8cdab49708511f4d42d45fe0a319d2334e4e9aa42709e946c8d00a1ff77b07fd",duration:10},"video/10002003.webm":{bytes:715230,sha256:"6b5422c889243db499114370af5a260d624180fe17991445f7e3133eee619381",duration:10},"video/10002004.webm":{bytes:693595,sha256:"24aa66de5a0649c10652bb66b70a0407210e26e18a8d2d64b0610ca29fdfb02b",duration:10},"video/10002005.webm":{bytes:815174,sha256:"5ec0b1a66bf28c7bf0b2bc61a7bbbb374be18d4b1f338217ab3d84d88cd2838f",duration:10},"video/10002006.webm":{bytes:194930,sha256:"7ef8f4e4a5ea4430ea4910b06f0dc00c71d61ed9bd54e03b4a268a4d1f3e7525",duration:1.9},"video/10002007.webm":{bytes:93264,sha256:"cbdc07ca88626c73d074eae923aac8972ce8898fd331fecb40cbb22392d32e6a",duration:2.4},"video/10002008.webm":{bytes:669120,sha256:"9299206b7cdc7fc4f319864e425be91f90b4721bcd8555f56ead4dc45f776b27",duration:3.433},"video/10002009.webm":{bytes:434158,sha256:"3db3a361cf11e9ee543dff860ba8a7aef3831d920e1e95fb6773a13f15f7ff6a",duration:10},"video/10002010.webm":{bytes:161424,sha256:"3b6e41d32df6eca2645978e8ba0f13a4aef69aa8217d38e85e5b8db058016a9a",duration:2.5},"video/10002011.webm":{bytes:73568,sha256:"86966a56aef3a2a6a263526d1efa0092044b48ce26f7f076c5bdd259131a8121",duration:1.8},"video/10002012.webm":{bytes:187942,sha256:"2b3e1b9538ddaeb62adeae52b9ea0ab38801430c76bab0f6425da9e127e0d896",duration:2.933},"video/10002013.webm":{bytes:482076,sha256:"14b90e097eebe09d3337afb0867da590081f111b5593d601963dcccf39638a4e",duration:3.9},"video/10002014.webm":{bytes:1475640,sha256:"f81e417888b1a833e254cf069f33a5ff1820bfc1599ac0f86d67a3cea44cad78",duration:10},"video/10002015.webm":{bytes:2392745,sha256:"db572d1dd4f090a104cdeea17a84aaa94c5800820ec66168ccd2eb99cb05d867",duration:10},"video/10002016.webm":{bytes:178656,sha256:"aa5dfb8ef461f168b2b64790b90f5a0e847b2a02aa3964e35a1734b37f0b69dc",duration:2.5},"video/10002017.webm":{bytes:80715,sha256:"addc2369f55de0a067937f48f40f300d123c320efc9c03ff3be6ea922581b575",duration:.733},"video/10002018.webm":{bytes:790722,sha256:"1d8d5b69fe0a5949566c216eac072f739ee0be9d0ac7ad85a809db6fe4da14c5",duration:10},"video/10002019.webm":{bytes:115786,sha256:"1a4a39ff5bd9dd26bfda75176469acca6a2aace830961c3a5e5dc164bcc1ac64",duration:2.2},"video/10002020.webm":{bytes:581822,sha256:"2ce9a04ffb641ef53d0090a22dcb394f580475c41052c5dea83ceed1dffbcd69",duration:10},"video/10002021.webm":{bytes:568208,sha256:"b3aa5b1f712c379a80767d599059adcb482bb8cd2c0f07c404b6fd862c8d7e9b",duration:10},"video/10002022.webm":{bytes:610636,sha256:"8c2663f7c031328ef06dc59aa0c0a11f5e7708b3981b4399d8bfd609573e986f",duration:10},"video/10002023.webm":{bytes:612556,sha256:"79a90a1d7d5f6a2b9a1e81738e12566f14ce96f99fa81ca102aab157b4b2664f",duration:10},"video/10002024.webm":{bytes:1453404,sha256:"7e5412973270e8e58a539c9f83304b4cd07a0faa740a4752b982333e380a1d55",duration:3.4},"video/10002025.webm":{bytes:1544749,sha256:"63af745659c7063ba0d7fff63af97eaf8972c2a5a06cd6739ad518cd4187b153",duration:10},"video/10002026.webm":{bytes:280741,sha256:"cf701673766d966c3b522749ba169622c98261501be50bb3afee3c998898486e",duration:10},"video/10002027.webm":{bytes:327918,sha256:"d59447600017e11aa42fc342833fad186af9f9d1670aba32f922d77fca63d6c6",duration:10},"video/10002028.webm":{bytes:336612,sha256:"827a91d60bf0fa75a131853e0f1fda8855cf2cfdf9b06194d195833bda026986",duration:10},"video/10002029.webm":{bytes:700863,sha256:"1a8ad0969222629d8fd89bafb174df58082aaa50755e3843ca82ad953b18e0aa",duration:10},"video/10002030.webm":{bytes:34533,sha256:"f4080af95380d8f640133b255bbe2b25b03180a3cfcd99aed1f281265c6f18cb",duration:1.966},"video/10002031.webm":{bytes:187567,sha256:"8bbdc15b123c3ac7f3cba16b04ca18571996e6556f190edd4f13d6a50ecd8c0c",duration:1.166},"video/10002032.webm":{bytes:1776997,sha256:"e3b15a717b1db503bd3d838ed9b6fdb70def2fcb4b47f51db24eb86fc03e7923",duration:10},"video/10002033.webm":{bytes:297716,sha256:"425cd20f5a5038f720e0f3c4dd65ab58c6c5ad80aa346b6c9035eb0700e69d3e",duration:2},"video/10002034.webm":{bytes:2495666,sha256:"70f377770e704850e9a2eff20fa283cbae7939fd42b66b85110b9b6eb1aa2add",duration:10},"video/10002035.webm":{bytes:183443,sha256:"a631becd1c4585ec80d91b435a5c6cda28b6b2033f2eb62f929a7580ad2ffbad",duration:10},"video/10002036.webm":{bytes:89987,sha256:"5b523e749db42145e8f3947e86d6e8d9683300b737f7775477cd94f02c1c8004",duration:10},"video/10002037.webm":{bytes:823633,sha256:"a4e7ba6ce6a6a43c31597d6b6430e86c507ab45a89910eb5010f1d058901f539",duration:10}}};var J6=_o.version,ew="/qxqy-vfx/",tw=Object.freeze(_o.assets.map(Object.freeze)),rw=new Map(tw.map(i=>[i.id,i]));function jc(i,e="animation"){let t=rw.get(Number(i));return t?.scope===(e==="fullscreen"?"screen":"ui")?t:null}function Qu(i){return Object.hasOwn(_o.files,i)?_o.files[i]:null}function Xc(i){return Qu(i)?`${ew}${J6}/${i}`:null}function yo(i,e){let t=Math.max(0,e||0);return t<i.duration?t:i.loop?i.duration/2+(t-i.duration)%(i.duration/2):null}var Yc=class{constructor(e,{now:t=()=>performance.now(),onStatus:r=()=>{},timeout:s=3e4}={}){Object.assign(this,{host:e,now:t,onStatus:r,timeout:s}),this.entries=new Map,this.key="",this.disposed=!1,this.snapshot=null,this.raf=null,this.lastFrame=0,this.host.style.display="contents",this.badge=e.ownerDocument.createElement("span"),this.badge.dataset.uiVfxStatus="",Object.assign(this.badge.style,{position:"absolute",left:"5px",bottom:"5px",zIndex:"3",color:"#ffc18b",background:"#1a233ddd",padding:"2px 5px",font:"11px sans-serif",pointerEvents:"none",display:"none"}),e.append(this.badge),this.errors=new Map}report(e,t){t?this.errors.set(e,String(t)):this.errors.delete(e);let r=[...this.errors.values()];this.badge.style.display=r.length?"":"none",this.badge.textContent=r.length?hs`动效加载失败(${r.length})`:"",this.badge.title=r.join(`
|
|
927
|
+
`),this.onStatus({errors:r})}time(){return(this.snapshot?.time||0)+(this.realtime&&!this.host.ownerDocument.hidden?Math.min(.25,Math.max(0,(this.now()-this.observedAt)/1e3)):0)}sync(e){if(this.disposed)return;let t=`${e?.audio?.sessionId||"editor"}:${e?.viewPlayerIndex||1}`;t!==this.key&&(this.reset(),this.key=t),this.snapshot=e,this.observedAt=this.now(),this.realtime=e?.running!==!1&&!e?.paused&&e?.clockMode!=="manual";let r=e?.running===!1?[]:e?.effects||[],s=new Set(r.map(a=>String(a.id)));for(let a of this.entries.keys())s.has(a)||this.remove(a);for(let a of this.errors.keys())s.has(a)||this.report(a,"");let n=0,o=0;for(let a of r){let c=String(a.id),l=jc(a.animationId,a.kind),d=this.entries.get(c);if(d&&(d.row.generation!==a.generation||d.asset!==l)&&this.remove(c),!l){this.report(c,`Unknown UI effect: ${a.animationId??""}`);continue}if(yo(l,this.time()-a.startedAt)===null){this.remove(c),this.report(c,"");continue}let h=l.width*l.height*2;if(n+h>24*1024*1024||o>=12){this.remove(c),this.report(c,`UI effect ${l.id}: preview budget exceeded`);continue}n+=h,o++;let u=this.entries.get(c);if(!u)try{this.report(c,""),u=this.create(c,a,l)}catch(f){this.report(c,`UI effect ${l.id}: ${f.message}`);continue}u.row=a;try{this.position(u),this.advance(u)}catch(f){this.fail(u,f)}}this.schedule()}create(e,t,r){let s=this.host.ownerDocument;if(!globalThis.CSS?.supports("mix-blend-mode","plus-lighter"))throw new Error("C/T blending is unavailable");let n=s.createElement("video");n.muted=!0,n.playsInline=!0,n.preload="auto";let o=Math.min(1,1536/Math.max(r.width,r.height),Math.sqrt(1024*1024/(r.width*r.height))),a=["multiply","plus-lighter"].map(l=>{let d=s.createElement("canvas");return d.width=Math.max(1,Math.round(r.width*o)),d.height=Math.max(1,Math.round(r.height*o)),d.dataset.uiVfx=`${e}:${l}`,Object.assign(d.style,{position:"absolute",pointerEvents:"none",transformOrigin:"center",mixBlendMode:l,display:"none"}),d}),c={id:e,row:t,asset:r,video:n,planes:a,failed:!1,ready:!1,playing:!1,maskKey:"",mask:null};c.fail=()=>this.fail(c,new Error(`media load/decode failed (${n.error?.code||"unknown"})`)),c.loaded=()=>{if(!(this.disposed||c.failed||this.entries.get(e)!==c))try{if(n.videoWidth!==r.width*2||n.videoHeight!==r.height)throw new Error("Unexpected packed C/T dimensions");c.ready=!0,clearTimeout(c.timer),this.advance(c)}catch(l){this.fail(c,l)}},c.seeked=()=>{if(!c.failed&&this.entries.get(e)===c)try{this.draw(c)}catch(l){this.fail(c,l)}},n.addEventListener("error",c.fail),n.addEventListener("loadeddata",c.loaded),n.addEventListener("seeked",c.seeked),c.timer=setTimeout(()=>this.fail(c,new Error("media loading timed out")),this.timeout),this.entries.set(e,c),this.host.append(...a);try{n.src=Xc(r.video)+(t.generation>1?"?retry=1":""),n.load()}catch(l){this.fail(c,l)}return c}position(e){let{asset:t,row:r,planes:s}=e,n=this.snapshot.canvasWidth,o=this.snapshot.canvasHeight,a=r.matrix;if(r.kind==="fullscreen"){let f=Math.max(n/t.width,o/t.height);a={a:f,b:0,c:0,d:f,tx:n/2,ty:o/2}}if(!a||![n,o,a.a,a.b,a.c,a.d,a.tx,a.ty].every(Number.isFinite)||n<=0||o<=0)throw new Error("Invalid effect geometry");for(let f of s)Object.assign(f.style,{left:`${(a.tx-t.width/2)/n*100}%`,top:`${(o-a.ty-t.height/2)/o*100}%`,width:`${t.width/n*100}%`,height:`${t.height/o*100}%`,transform:`matrix(${a.a},${-a.b},${-a.c},${a.d},0,0)`,zIndex:r.kind==="fullscreen"||r.layer==="BelowAllControls"?"-1":"1"});this.host.append(...s);let c=JSON.stringify([r.masks,a]);if(c===e.maskKey||(e.maskKey=c,e.mask=null,!r.masks?.length))return;let l=this.host.ownerDocument.createElement("canvas");l.width=s[0].width,l.height=s[0].height;let d=l.getContext("2d"),h=d.createImageData(l.width,l.height),u=r.masks.map(f=>({spec:f,inverse:mo(f.matrix)}));for(let f=0;f<l.height;f++)for(let m=0;m<l.width;m++){let g=po(a,(m+.5)*t.width/l.width-t.width/2,t.height/2-(f+.5)*t.height/l.height),x=1;for(let{spec:b,inverse:y}of u){if(!y){x=0;break}let v=po(y,g.x,g.y);x*=Hu(v.x,v.y,b)}h.data[(f*l.width+m)*4+3]=Math.round(255*x)}d.putImageData(h,0,0),e.mask=l}advance(e){if(e.failed||!e.ready)return;let t=yo(e.asset,this.time()-e.row.startedAt);if(t===null){e.video.pause();for(let n of e.planes)n.style.display="none";return}let r=e.video,s=this.realtime&&!this.host.ownerDocument.hidden;s||(r.pause(),e.playing=!1),!r.seeking&&Math.abs(r.currentTime-t)>(s?.18:1/60)&&(r.currentTime=t),s&&r.paused&&!e.playing&&(e.playing=!0,Promise.resolve(r.play()).then(()=>{e.playing=!1},n=>{e.playing=!1,n.name!=="AbortError"&&this.fail(e,n)})),r.seeking||this.draw(e)}draw(e){if(!(!e.ready||e.failed||e.video.readyState<2||yo(e.asset,this.time()-e.row.startedAt)===null))for(let r=0;r<2;r++){let s=e.planes[r],n=s.getContext("2d");n.globalCompositeOperation="source-over",n.clearRect(0,0,s.width,s.height),n.drawImage(e.video,r===0?e.asset.width:0,0,e.asset.width,e.asset.height,0,0,s.width,s.height),e.mask&&(n.globalCompositeOperation="destination-in",n.drawImage(e.mask,0,0),n.globalCompositeOperation="source-over"),s.style.display=""}}fail(e,t){if(!(this.disposed||e.failed||this.entries.get(e.id)!==e)){e.failed=!0,this.releaseMedia(e);for(let r of e.planes)r.style.display="none";this.report(e.id,`UI effect ${e.asset.id}: ${t.message}`)}}schedule(){this.raf!==null||this.disposed||!this.entries.size||(this.raf=requestAnimationFrame(()=>{if(this.raf=null,this.now()-this.lastFrame>=1e3/30){this.lastFrame=this.now();for(let e of this.entries.values())try{this.advance(e)}catch(t){this.fail(e,t)}}this.realtime&&[...this.entries.values()].some(e=>!e.failed&&yo(e.asset,this.time()-e.row.startedAt)!==null)&&this.schedule()}))}releaseMedia(e){clearTimeout(e.timer);let t=e.video;t.removeEventListener("error",e.fail),t.removeEventListener("loadeddata",e.loaded),t.removeEventListener("seeked",e.seeked),t.pause(),t.removeAttribute("src"),t.load()}remove(e){let t=this.entries.get(e);if(t){this.entries.delete(e),this.releaseMedia(t);for(let r of t.planes)r.remove(),r.width=r.height=1;t.mask=null,this.report(e,"")}}reset(){this.raf!==null&&cancelAnimationFrame(this.raf),this.raf=null;for(let e of this.entries.keys())this.remove(e);this.errors.clear(),this.report("",""),this.snapshot=null}destroy(){this.disposed=!0,this.reset(),this.badge.remove()}};Ih();Nh();Hh();vh();ja();jr();mr();var Gy={aVertex:(i,e,t,r,s)=>{let n=0,o=0,a=0,c=0;for(let l=0;l<i.length;++l){let d=i[l],h=d.texture,u=d.scaleX,f=d.scaleY,m=d.anchorX,g=d.anchorY,x=h.trim,b=h.orig;x?(o=x.x-m*b.width,n=o+x.width,c=x.y-g*b.height,a=c+x.height):(n=b.width*(1-m),o=b.width*-m,a=b.height*(1-g),c=b.height*-g),e[r]=o*u,e[r+1]=c*f,e[r+s]=n*u,e[r+s+1]=c*f,e[r+s*2]=n*u,e[r+s*2+1]=a*f,e[r+s*3]=o*u,e[r+s*3+1]=a*f,r+=s*4}},aPosition:(i,e,t,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n],a=o.x,c=o.y;e[r]=a,e[r+1]=c,e[r+s]=a,e[r+s+1]=c,e[r+s*2]=a,e[r+s*2+1]=c,e[r+s*3]=a,e[r+s*3+1]=c,r+=s*4}},aRotation:(i,e,t,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].rotation;e[r]=o,e[r+s]=o,e[r+s*2]=o,e[r+s*3]=o,r+=s*4}},aUV:(i,e,t,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].texture.uvs;e[r]=o.x0,e[r+1]=o.y0,e[r+s]=o.x1,e[r+s+1]=o.y1,e[r+s*2]=o.x2,e[r+s*2+1]=o.y2,e[r+s*3]=o.x3,e[r+s*3+1]=o.y3,r+=s*4}},aColor:(i,e,t,r,s)=>{for(let n=0;n<i.length;++n){let o=i[n].color;t[r]=o,t[r+s]=o,t[r+s*2]=o,t[r+s*3]=o,r+=s*4}}};function Uy(i){let e=Object.values(i),t=e.filter(s=>s.dynamic),r=e.filter(s=>!s.dynamic);return{dynamicUpdate:Fy(t),staticUpdate:Fy(r)}}function Fy(i){let e=0,t=[];for(let r=0;r<i.length;r++){let s=i[r],n=qe(s.format).stride/4;e+=n,t.push({stride:n,updateFunction:s.updateFunction||Gy[s.attributeName]})}return(r,s,n)=>{let o=0;for(let a=0;a<t.length;a++){let c=t[a];c.updateFunction(r,s,n,o,e),o+=c.stride}}}En();mt();je();Rr();Gh();function Dy(){return iw}function iw(i,e,t){let r=i.gl,s=i.shader,n=s._getProgramData(e.glProgram);for(let o in e.groups){let a=e.groups[o];for(let c in a.resources){let l=a.resources[c];if(l instanceof Te)l.ubo?s.bindUniformBlock(l,e._uniformBindMap[o][c],t.blockIndex++):s.updateUniformGroup(l);else if(l instanceof Vt)s.bindUniformBlock(l,e._uniformBindMap[o][c],t.blockIndex++);else if(l instanceof oe||l instanceof es){i.texture.bind(l,t.textureCount);let d=e._uniformBindMap[o][c],h=n.uniformData[d];h&&(h.value!==t.textureCount&&r.uniform1i(h.location,t.textureCount),t.textureCount++)}else l instanceof ot}}}ic();Xa();Tn();var Ly=[(i,e,t,r,s)=>{let n=r[i].toArray(!0);e[t]=n[0],e[t+1]=n[1],e[t+2]=n[2],e[t+4]=n[3],e[t+5]=n[4],e[t+6]=n[5],e[t+8]=n[6],e[t+9]=n[7],e[t+10]=n[8]},(i,e,t,r,s)=>{s=r[i],e[t]=s.x,e[t+1]=s.y,e[t+2]=s.width,e[t+3]=s.height},(i,e,t,r,s)=>{s=r[i],e[t]=s.x,e[t+1]=s.y},(i,e,t,r,s)=>{s=r[i],e[t]=s.red,e[t+1]=s.green,e[t+2]=s.blue,e[t+3]=s.alpha},(i,e,t,r,s)=>{s=r[i],e[t]=s.red,e[t+1]=s.green,e[t+2]=s.blue}],Oy={f32:(i,e,t,r,s)=>{e[t]=s},i32:(i,e,t,r,s)=>{e[t]=s},"vec2<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1]},"vec3<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2]},"vec4<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2],e[t+3]=s[3]},"mat2x2<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2],e[t+3]=s[3]},"mat3x3<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2],e[t+4]=s[3],e[t+5]=s[4],e[t+6]=s[5],e[t+8]=s[6],e[t+9]=s[7],e[t+10]=s[8]},"mat4x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<16;n++)e[t+n]=s[n]},"mat3x2<f32>":(i,e,t,r,s)=>{for(let n=0;n<6;n++)e[t+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,e,t,r,s)=>{for(let n=0;n<8;n++)e[t+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,e,t,r,s)=>{for(let n=0;n<6;n++)e[t+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,e,t,r,s)=>{for(let n=0;n<12;n++)e[t+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<8;n++)e[t+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<12;n++)e[t+(n/3|0)*4+n%3]=s[n]}},Ny={f32:(i,e,t,r,s)=>{e[t]=s},i32:(i,e,t,r,s)=>{e[t]=s},"vec2<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1]},"vec3<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2]},"vec4<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2],e[t+3]=s[3]},"mat2x2<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+4]=s[2],e[t+5]=s[3]},"mat3x3<f32>":(i,e,t,r,s)=>{e[t]=s[0],e[t+1]=s[1],e[t+2]=s[2],e[t+4]=s[3],e[t+5]=s[4],e[t+6]=s[5],e[t+8]=s[6],e[t+9]=s[7],e[t+10]=s[8]},"mat4x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<16;n++)e[t+n]=s[n]},"mat3x2<f32>":(i,e,t,r,s)=>{for(let n=0;n<6;n++)e[t+(n/3|0)*4+n%3]=s[n]},"mat4x2<f32>":(i,e,t,r,s)=>{for(let n=0;n<8;n++)e[t+(n/4|0)*4+n%4]=s[n]},"mat2x3<f32>":(i,e,t,r,s)=>{for(let n=0;n<6;n++)e[t+(n/2|0)*4+n%2]=s[n]},"mat4x3<f32>":(i,e,t,r,s)=>{for(let n=0;n<12;n++)e[t+(n/4|0)*4+n%4]=s[n]},"mat2x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<8;n++)e[t+(n/2|0)*4+n%2]=s[n]},"mat3x4<f32>":(i,e,t,r,s)=>{for(let n=0;n<12;n++)e[t+(n/3|0)*4+n%3]=s[n]}};function Hy(i){return Wy(i,Ny,e=>{let t=Math.max(Wn[e.data.type]/16,1),r=e.data.value.length/e.data.size,s=(4-r%4)%4;return(n,o,a,c,l)=>{let d=0;for(let h=0;h<e.data.size*t;h++){for(let u=0;u<r;u++)o[a++]=l[d++];a+=s}}})}function zy(i){return Wy(i,Oy,e=>{let{size:t,align:r}=Qr[e.data.type],s=(t-r)/4;return(n,o,a,c,l)=>{let d=0;for(let h=0;h<e.data.size*(t/4);h++){for(let u=0;u<t/4;u++)o[a++]=l[d++];a+=s}}})}function Wy(i,e,t){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 c=0;c<lt.length;c++){let l=lt[c];if(o.type===l.type&&l.test(o)){r[o.name].func=Ly[c],a=!0;break}}a||(o.size===1?r[o.name].func=e[o.type]:r[o.name].func=t(n))}return(s,n,o)=>{for(let a in r)r[a].func(a,n,o+r[a].offset,s,s[a])}}Tn();var Vy={f32(i,e,t,r,s,n,o){t!==r&&(e.value=r,o.uniform1f(s[i].location,r))},"vec2<f32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1])&&(t[0]=r[0],t[1]=r[1],o.uniform2f(s[i].location,r[0],r[1]))},"vec3<f32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],o.uniform3f(s[i].location,r[0],r[1],r[2]))},"vec4<f32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2]||t[3]!==r[3])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],o.uniform4f(s[i].location,r[0],r[1],r[2],r[3]))},i32(i,e,t,r,s,n,o){t!==r&&(e.value=r,o.uniform1i(s[i].location,r))},"vec2<i32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1])&&(t[0]=r[0],t[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<i32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<i32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2]||t[3]!==r[3])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},u32(i,e,t,r,s,n,o){t!==r&&(e.value=r,o.uniform1ui(s[i].location,r))},"vec2<u32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1])&&(t[0]=r[0],t[1]=r[1],o.uniform2ui(s[i].location,r[0],r[1]))},"vec3<u32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],o.uniform3ui(s[i].location,r[0],r[1],r[2]))},"vec4<u32>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2]||t[3]!==r[3])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],o.uniform4ui(s[i].location,r[0],r[1],r[2],r[3]))},bool(i,e,t,r,s,n,o){t!==r&&(e.value=r,o.uniform1i(s[i].location,r))},"vec2<bool>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1])&&(t[0]=r[0],t[1]=r[1],o.uniform2i(s[i].location,r[0],r[1]))},"vec3<bool>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],o.uniform3i(s[i].location,r[0],r[1],r[2]))},"vec4<bool>"(i,e,t,r,s,n,o){(t[0]!==r[0]||t[1]!==r[1]||t[2]!==r[2]||t[3]!==r[3])&&(t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],o.uniform4i(s[i].location,r[0],r[1],r[2],r[3]))},"mat2x2<f32>"(i,e,t,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,e,t,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,e,t,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)}},jy={f32(i,e,t,r,s,n,o){o.uniform1fv(s[i].location,r)},"vec2<f32>"(i,e,t,r,s,n,o){o.uniform2fv(s[i].location,r)},"vec3<f32>"(i,e,t,r,s,n,o){o.uniform3fv(s[i].location,r)},"vec4<f32>"(i,e,t,r,s,n,o){o.uniform4fv(s[i].location,r)},"mat2x2<f32>"(i,e,t,r,s,n,o){o.uniformMatrix2fv(s[i].location,!1,r)},"mat3x3<f32>"(i,e,t,r,s,n,o){o.uniformMatrix3fv(s[i].location,!1,r)},"mat4x4<f32>"(i,e,t,r,s,n,o){o.uniformMatrix4fv(s[i].location,!1,r)},i32(i,e,t,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<i32>"(i,e,t,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<i32>"(i,e,t,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<i32>"(i,e,t,r,s,n,o){o.uniform4iv(s[i].location,r)},u32(i,e,t,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<u32>"(i,e,t,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<u32>"(i,e,t,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<u32>"(i,e,t,r,s,n,o){o.uniform4iv(s[i].location,r)},bool(i,e,t,r,s,n,o){o.uniform1iv(s[i].location,r)},"vec2<bool>"(i,e,t,r,s,n,o){o.uniform2iv(s[i].location,r)},"vec3<bool>"(i,e,t,r,s,n,o){o.uniform3iv(s[i].location,r)},"vec4<bool>"(i,e,t,r,s,n,o){o.uniform4iv(s[i].location,r)}},Xy=[(i,e,t,r,s,n,o)=>{o.uniformMatrix3fv(s[i].location,!1,n[i].toArray(!0))},(i,e,t,r,s,n,o)=>{t=s[i].value,r=n[i],(t[0]!==r.x||t[1]!==r.y||t[2]!==r.width||t[3]!==r.height)&&(t[0]=r.x,t[1]=r.y,t[2]=r.width,t[3]=r.height,o.uniform4f(s[i].location,r.x,r.y,r.width,r.height))},(i,e,t,r,s,n,o)=>{t=s[i].value,r=n[i],(t[0]!==r.x||t[1]!==r.y)&&(t[0]=r.x,t[1]=r.y,o.uniform2f(s[i].location,r.x,r.y))},(i,e,t,r,s,n,o)=>{t=s[i].value,r=n[i],(t[0]!==r.red||t[1]!==r.green||t[2]!==r.blue||t[3]!==r.alpha)&&(t[0]=r.red,t[1]=r.green,t[2]=r.blue,t[3]=r.alpha,o.uniform4f(s[i].location,r.red,r.green,r.blue,r.alpha))},(i,e,t,r,s,n,o)=>{t=s[i].value,r=n[i],(t[0]!==r.red||t[1]!==r.green||t[2]!==r.blue)&&(t[0]=r.red,t[1]=r.green,t[2]=r.blue,o.uniform3f(s[i].location,r.red,r.green,r.blue))}];function Yy(i,e){let t={};for(let r in i.uniformStructures){if(!e[r])continue;let s=i.uniformStructures[r],n=!1;for(let o=0;o<lt.length;o++){let a=lt[o];if(s.type===a.type&&a.test(s)){t[r]=Xy[o],n=!0;break}}if(!n){let o=s.size===1?Vy:jy;t[r]=o[s.type]}}return(r,s,n)=>{let o=n.gl;for(let a in t){let c=s[a],l=r[a],d=r[a].value;t[a](a,l,d,c,r,s,o)}}}function sw(){Object.assign(St.prototype,{_unsafeEvalCheck(){}}),Object.assign(vr.prototype,{_systemCheck(){}}),Object.assign(ri.prototype,{_generateUniformsSync:Yy}),Object.assign(ei.prototype,{_generateUboSync:Hy}),Object.assign(Jr.prototype,{_generateUboSync:zy}),Object.assign(ti.prototype,{_generateShaderSync:Dy}),Object.assign(Dc.prototype,{generateParticleUpdate:Uy})}sw();var nw="mp3-v1",ow="/qxqy-audio/",aw=[[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,e])=>[i,e.split(".").map(t=>parseInt(t,36)/1e3)]);function $y(i){if(!Number.isSafeInteger(i))return null;for(let[e,t]of aw)if(i>=e&&i<e+t.length)return t[i-e];return null}function qy(i){return`${ow}${nw}/${i}.mp3`}var $c=class{constructor({contextFactory:e=()=>new(globalThis.AudioContext||globalThis.webkitAudioContext),fetch:t=(...o)=>globalThis.fetch(...o),onStatus:r=()=>{},now:s=()=>performance.now(),muted:n=!1}={}){Object.assign(this,{contextFactory:e,fetcher:t,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=!!n,this.audioChoice=null,this.disposed=!1,this.error="",this.revision=-1,this.unlockHandlers=[],this.muted&&this.publish()}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 t of this.voices.values())this.playVoice(t);this.publish()}}).catch(t=>{this.error=t.message,this.publish()});for(let t of this.voices.values())this.playVoice(t)}catch(e){this.error=e.message,this.publish()}}bindUnlock(e){let t=s=>{s.target?.closest?.("[data-audio-toggle]")||this.unlock()};for(let s of["pointerdown","keydown"])e.addEventListener(s,t,{capture:!0});let r=()=>{for(let s of["pointerdown","keydown"])e.removeEventListener(s,t,{capture:!0})};return this.unlockHandlers.push(r),r}toggle(){if(this.muted){this.audioChoice="on",this.setMuted(!1),this.unlock();return}if(this.context?.state!=="running"){this.unlock();return}this.audioChoice="off",this.setMuted(!0)}setMuted(e){this.muted=!!e,this.output&&(this.output.gain.value=this.muted?0:1),this.publish()}buffer(e,{retry:t=!1}={}){let r=this.buffers.get(e);if(r&&(!r.failed||!t&&this.now()<r.retryAt))return this.buffers.delete(e),this.buffers.set(e,r),r.promise;let s={bytes:0,failed:!1,abort:new AbortController},n=setTimeout(()=>s.abort.abort(),3e4);return s.promise=(async()=>{let o=typeof e=="string"&&e.startsWith("audio/")?Xc(e)+(t?"?retry=1":""):qy(e),a=await this.fetcher(o,{signal:s.abort.signal});if(!a.ok)throw new Error(`\u97F3\u6548 ${e} \u52A0\u8F7D\u5931\u8D25\uFF1AHTTP ${a.status}`);let c=await a.arrayBuffer();if(this.disposed)throw new Error("audio player disposed");let l=await this.ensureContext().decodeAudioData(c);s.bytes=l.length*l.numberOfChannels*4;let d=[...this.buffers.values()].reduce((h,u)=>h+u.bytes,0);for(let[h,u]of this.buffers){if(d<=32*1024*1024&&this.buffers.size<=64)break;h===e||!u.bytes&&!u.failed||(this.buffers.delete(h),d-=u.bytes)}return l})().catch(o=>{throw s.failed=!0,s.retryAt=this.now()+6e4,o}).finally(()=>clearTimeout(n)),this.buffers.set(e,s),s.promise}stopSource(e){let t=e.source;if(e.source=null,!!t){t.onended=null;try{t.stop()}catch{}t.disconnect()}}removeVoice(e){let t=this.voices.get(e);t&&(this.stopSource(t),this.voices.delete(e))}playVoice(e){if(!(this.disposed||this.voices.get(e.row.instanceId)!==e||this.paused||e.suspended||e.source||e.loading||e.done)){if(!e.buffer){e.loading=!0,this.buffer(e.row.audioId,{retry:e.row.retry}).then(t=>{e.loading=!1,!(this.disposed||this.voices.get(e.row.instanceId)!==e)&&(e.buffer=t,this.playVoice(e))}).catch(t=>{this.disposed||this.voices.get(e.row.instanceId)!==e||(e.row.effect?e.done=!0:this.removeVoice(e.row.instanceId),this.error=t.message,this.publish())});return}if(this.context?.state!=="running"){this.publish();return}if(e.offset>=e.buffer.duration){e.done=!0;return}try{let t=this.context.createBufferSource();t.buffer=e.buffer,e.source=t,t.connect(this.output),e.beganAt=this.context.currentTime,t.onended=()=>{e.source===t&&(t.disconnect(),e.source=null,e.done=!0,this.publish())},t.start(0,e.offset)}catch(t){this.stopSource(e),e.done=!0,this.error=t.message}this.publish()}}sync(e,{fresh:t=!1}={}){if(this.disposed)return;if(this.audioChoice==null&&e?.audioMuted===!0&&this.setMuted(!0),e?.running===!1){this.reset();return}let r=e?.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=!!e.paused;let a=new Map(r.active.map(d=>[d.instanceId,d])),c=new Map(r.recent.map(d=>[d.instanceId,d]));for(let[d,h]of this.voices){if(h.row.effect)continue;let u=c.get(d)||a.get(d);if(u?.stopped||h.done&&!a.has(d)||!u){this.removeVoice(d);continue}this.paused&&!o&&h.source&&(h.offset+=Math.max(0,this.context.currentTime-h.beganAt),this.stopSource(h))}let l=n&&!t?r.active:r.recent;for(let d of l){if(!n&&d.instanceId<=this.sequence||d.stopped||$y(d.audioId)===null||d.duration<=0)continue;this.voices.size>=64&&this.removeVoice(this.voices.keys().next().value);let h={row:d,offset:n&&!t?Math.max(0,e.time-d.startedAt):0,source:null,buffer:null,loading:!1,done:!1};this.voices.set(d.instanceId,h)}this.sequence=r.sequence,this.syncEffects(e,o);for(let d of this.voices.values())this.playVoice(d);this.publish()}syncEffects(e,t){let r=new Set;for(let s of e.effects||[]){let n=jc(s.animationId,s.kind),o=s.audioPath,a=n?.audio.includes(o)?Qu(o)?.duration:0,c=Math.max(0,e.time-s.startedAt);if(!s.playSoundEffect||!a||c>=a)continue;let l=`vfx:${s.id}:${s.generation}`;r.add(l);let d=this.voices.get(l);if(!d){if(this.voices.size>=64)continue;d={row:{instanceId:l,audioId:o,effect:!0,retry:s.generation>1},offset:c,source:null,buffer:null,loading:!1,done:!1},this.voices.set(l,d)}let h=e.clockMode==="manual";(this.paused&&!t||h)&&d.source&&this.stopSource(d),d.suspended=h,d.source||(d.offset=c)}for(let[s,n]of this.voices)n.row.effect&&!r.has(s)&&this.removeVoice(s)}reset(){for(let e of this.voices.keys())this.removeVoice(e);this.key="",this.sequence=0,this.revision=-1,this.paused=!1,this.publish()}destroy(){this.disposed=!0,this.reset();for(let e of this.buffers.values())e.abort.abort();this.buffers.clear();for(let e of this.unlockHandlers)e();this.unlockHandlers.length=0,this.context&&(this.context.onstatechange=null,this.context.close().catch(()=>{}))}};function cw({webdriver:i=!1,userAgent:e="",search:t=""}={}){let r=String(t||"");return new URLSearchParams(r.startsWith("?")?r.slice(1):r).get("audio")==="0"?!0:i===!0||/\bOpenCode\//.test(e)||/HeadlessChrome/i.test(e)}function Ky(i=globalThis){let e=i.navigator;if(!e)return!1;let t="";try{t=i.location?.search||""}catch{}return cw({webdriver:e.webdriver===!0,userAgent:e.userAgent||"",search:t})}var lw=["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"],Zy=new Map(lw.map((i,e)=>[i,`CraftspersonKey${e+1}`]));for(let[i,e]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"}))Zy.set(i,e);function qc(i,e){if(e!=="Down"&&e!=="Up"||i.isComposing||i.keyCode===229||i.key==="Process"||i.key==="Dead")return"";let t=String(i.key||""),r=/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:i.code,s=Zy.get(r);return s?`Keyboard${s}${e}`:""}function Qy(i,e){if(e!=="Down"&&e!=="Up")return"";let t=i===0?"NormalAttackKey":i===2?"SprintKey":"";return t?`Keyboard${t}${e}`:""}var Ju=33,Jy=60;function ev(i,e,t,r){return{x:(i.clientX-e.left)*t/e.width,y:(e.bottom-i.clientY)*r/e.height}}function tv({renderer:i,api:e,onSnapshot:t,onStatus:r,onError:s,onAudioStatus:n,audio:o,audioMuted:a,isActive:c,isInputActive:l,keyInputEnabled:d=!0}={}){let h=a??(typeof window<"u"&&Ky());o||=typeof window<"u"?new $c({onStatus:n,muted:h}):null,typeof window<"u"&&o?.bindUnlock(window);let u=0,f=null,m=!1,g=!1,x=null,b=null,y=0,v=null,w=null,S=null,T=!1,C=[],B=new Set,R=Promise.resolve();function M(I,K,ne){let ke=u;return R=R.then(()=>ke===u&&m?ue(I,K,ne):null),R}let E=I=>M("key",{key:I},{allowInactive:!0}),A=I=>M("pointer",I);function L(I=!0){return Promise.all([...B].map(K=>K(I))).then(()=>R)}function W(I){d=!!I,d||L()}function ee(I){s&&s(I)}async function G(I,{freshAudio:K=!1}={}){let ne=u;f=I,m=I?.running!==!1,o?.sync(I,{fresh:K}),I?.scene&&I.scene.format==="tree-v1"?(I.scene.reset&&(y=0),await i.applyScene(I.scene,I.canvasWidth,I.canvasHeight),y=I.scene.revision||y):Array.isArray(I?.paint)&&await i.render(I.paint,I.canvasWidth,I.canvasHeight),ne===u&&((!c||c())&&i.syncEffects?.(I),t&&await t(I))}async function D(){if(!m||g)return;if(c&&!c()){o?.reset(),i.resetEffects?.();return}g=!0;let I=u;try{let K=await e("get",{view:!0,sceneRev:y,compact:!0});if(I!==u)return;await G(K)}catch(K){if(I!==u)return;m=!1,F(),o?.reset(),i.resetEffects?.(),ee(K)}finally{g=!1}}function j(){x||(x=setInterval(()=>{D()},Ju))}function F(){x&&clearInterval(x),x=null,b&&clearTimeout(b),b=null,c&&!c()&&(o?.reset(),i.resetEffects?.())}function te(I=30){b||(b=setTimeout(()=>{b=null,D()},I))}function de(){v&&clearTimeout(v),v=null}function we(){v&&(de(),A({type:"move",...w}))}function se(){L(!1),u++,o?.reset(),i.resetEffects?.(),de(),S=null,T=!1,m=!1,y=0,F()}async function ue(I,K,{allowInactive:ne=!1}={}){if(!ne&&c&&!c())return null;let ke=u;try{let We=await e(I,{light:!0,...K||{}});return ke!==u||!m||(We&&typeof We=="object"&&We.frame!==void 0&&r&&r(We),te(30)),We}catch(We){return ke===u&&ee(We),null}}function $(I={}){return!o||I.muteAudio!=null?I:o.audioChoice==="on"?{...I,muteAudio:!1}:o.audioChoice==="off"||o.muted?{...I,muteAudio:!0}:I}async function dt(I={}){se(),I=$(I),o?.unlock();let K=u;y=0;let ne=await e("start",{view:!0,compact:!0,...I});return K!==u||(await G({...ne,running:!0},{freshAudio:!0}),K!==u)||(m=!0,F(),j()),ne}async function ui(){await L(),se();let I=u;y=0,F();let K=await e("get",{view:!0,compact:!0,sceneRev:0});return I!==u||(await G(K),I!==u)||m&&j(),K}async function Cr(I={}){se(),I=$(I);let K=u;y=0,F();let ne=await e("device",{view:!0,compact:!0,...I});return K!==u||(await G({...ne,running:!0},{freshAudio:!0}),K!==u)||(m=!0,j()),ne}async function Pr(I={}){T=!0;let K=u;try{if(await L(),K!==u)return null;K=++u,o?.reset(),i.resetEffects?.(),y=0;let ne=await e("view",{view:!0,compact:!0,...I});return K!==u||await G({...ne,running:!0}),ne}finally{K===u&&(T=!1)}}async function Et(){return se(),e("stop")}function ht(I,K){return ev(I,K.getBoundingClientRect(),f.canvasWidth,f.canvasHeight)}function ut(I,{keysOn:K}={}){let ne=K||I,ke=I.ownerDocument||ne.ownerDocument,We=ke?.defaultView||ne,fi=ke||ne,bt=new Map,pi="",Dt=()=>f&&m&&!T&&(!c||c())&&(!l||l()),mi=()=>d&&Dt(),vo=V=>V.target?.isContentEditable||V.target?.closest?.('input,textarea,select,button,a[href],[role="textbox"],[contenteditable]:not([contenteditable="false"])'),fs=(V,Oe)=>{if(!Oe||bt.has(V))return;let Kc=[...bt.values()].includes(Oe);bt.set(V,Oe),Kc||E(Oe)},dr=V=>{let Oe=bt.get(V);return Oe?(bt.delete(V),m&&![...bt.values()].includes(Oe)?E(Oe.replace(/Down$/,"Up")):null):null},gi=(V=!0)=>V?Promise.all([...bt.keys()].map(dr)):(bt.clear(),Promise.resolve());B.add(gi);let wo=V=>{pi=V.pointerType||"",Dt()&&(S!==null||V.button!=null&&V.button!==0||(S=V.pointerId,I.setPointerCapture?.(V.pointerId),we(),A({type:"down",...ht(V,I)})))},bi=V=>{Dt()&&S===V.pointerId&&(we(),A({type:"up",...ht(V,I)}),S=null)},xi=V=>{Dt()&&(S!==null&&S!==V.pointerId||(w=ht(V,I),!v&&(v=setTimeout(()=>{v=null,Dt()&&A({type:"move",...w})},Jy))))},rf=()=>{S===null&&(de(),Dt()&&A({type:"move",x:-1,y:-1}))},So=V=>{V.pointerType==="mouse"&&(dr("mouse:0"),dr("mouse:2")),S===V.pointerId&&(de(),S=null,f&&m&&A({type:"cancel",...ht(V,I)}))},sf=V=>{if(!Dt())return;V.preventDefault();let Oe=I.getBoundingClientRect(),Kc=V.deltaMode===2?Oe.width:V.deltaMode===1?16:1,nv=V.deltaMode===2?Oe.height:V.deltaMode===1?16:1;A({type:"wheel",...ht(V,I),deltaX:V.deltaX*Kc*f.canvasWidth/Oe.width,deltaY:V.deltaY*nv*f.canvasHeight/Oe.height})},nf=V=>{if(!mi()||vo(V))return;let Oe=qc(V,"Down");Oe&&(V.preventDefault(),V.repeat||fs(`key:${V.code||V.key}`,Oe))},of=V=>{let Oe=`key:${V.code||V.key}`;bt.has(Oe)&&(V.preventDefault(),dr(Oe))},af=V=>{!mi()||pi&&pi!=="mouse"||V.sourceCapabilities?.firesTouchEvents||fs(`mouse:${V.button}`,Qy(V.button,"Down"))},cf=V=>{dr(`mouse:${V.button}`)},ps=()=>{gi()},lf=()=>{ke?.hidden&&ps()},df=V=>{mi()&&V.preventDefault()};I.addEventListener("pointerdown",wo),I.addEventListener("pointerup",bi),I.addEventListener("pointermove",xi),I.addEventListener("pointerleave",rf),I.addEventListener("pointercancel",So),I.addEventListener("lostpointercapture",So),I.addEventListener("wheel",sf,{passive:!1}),I.addEventListener("mousedown",af),I.addEventListener("contextmenu",df),fi.addEventListener("mouseup",cf),ne.addEventListener("keydown",nf),ne.addEventListener("keyup",of),ne.addEventListener("focusout",ps),We.addEventListener("blur",ps),ke?.addEventListener("visibilitychange",lf);let hf=()=>{gi(),B.delete(gi),I.removeEventListener("pointerdown",wo),I.removeEventListener("pointerup",bi),I.removeEventListener("pointermove",xi),I.removeEventListener("pointerleave",rf),I.removeEventListener("pointercancel",So),I.removeEventListener("lostpointercapture",So),I.removeEventListener("wheel",sf),I.removeEventListener("mousedown",af),I.removeEventListener("contextmenu",df),fi.removeEventListener("mouseup",cf),ne.removeEventListener("keydown",nf),ne.removeEventListener("keyup",of),ne.removeEventListener("focusout",ps),We.removeEventListener("blur",ps),ke?.removeEventListener("visibilitychange",lf),de()};return C.push(hf),hf}function Qe(){for(se();C.length;)C.pop()();i?.destroy?.(),o?.destroy()}return{audio:o,get snapshot(){return f},get running(){return m},get sceneRev(){return y},get keyInputEnabled(){return d},setKeyInputEnabled:W,releaseKeys:L,applyScene:G,poll:D,pollSoon:te,startPolling:j,stopPolling:F,reset:se,act:ue,start:dt,attach:ui,device:Cr,view:Pr,stop:Et,bindInput:ut,destroy:Qe}}var dw=[0,-.5,.5,.5,-.5,.5],hw=[0,-.5,.12,-.12,.5,0,.12,.12,0,.5,-.12,.12,-.5,0,-.12,-.12],uw=[0,-.5,.11,-.15,.48,-.15,.18,.07,.29,.41,0,.2,-.29,.41,-.18,.07,-.48,-.15,-.11,-.15],fw=new Set(["image","textbox","textwindow","button","grid"]);function us(i,e=4294967295){let t=Number(i??e)>>>0;return{color:t&16777215,alpha:(t>>>24&255)/255}}function nt(i,e=0){let t=Number(i);return Number.isFinite(t)?t:e}function rv(i){let e=i?.matrix;if(!e||typeof e!="object")return null;let t=[e.a,e.b,e.c,e.d,e.tx,e.ty].map(Number);return t.every(Number.isFinite)?t:null}function pw(i){let e=i.horizontalAlignment==="Right"?1:i.horizontalAlignment==="Middle"?.5:0,t=i.verticalAlignment==="Bottom"?1:i.verticalAlignment==="Middle"?.5:0;return{x:e,y:t}}function iv(i,e,t,r){let s=i.textLayout,n=s?.fontSize??Math.max(1,nt(i.fontSize,12)),o=pw(i),a=i.kind==="textwindow"?i.scroll:null,c=a?fy(a,t):null,l={fontFamily:r||di,fontSize:n,fill:us(i.fontColor,4294967295),stroke:i.enableOutline?{...us(i.outlineColor,4278190080),width:Math.max(2,n*.12),join:"round"}:void 0,wordWrap:!a&&!s,wordWrapWidth:Math.max(4,e-4),breakWords:!0,align:o.x===1?"right":o.x===.5?"center":"left",lineHeight:s?.lineHeight??n*1.2};return{text:c?c.text:s?s.lines.slice(0,s.visibleLineCount??s.lines.length).join(`
|
|
928
|
+
`):String(i.text||""),style:l,anchorX:o.x,anchorY:a?0:o.y,x:a?-e/2+2+o.x*a.textWidth:o.x===0?-e/2+2:o.x===1?e/2-2:0,y:a?-t/2-a.offset+c.y+(a.max>0?0:o.y*(t-a.contentLength)):o.y===0?-t/2:o.y===1?t/2:0}}function ef(i,e,t){return JSON.stringify([i.kind,e,t,i.bgColor,Wu(i.scroll,e,t)])}function mw(i,e,t){let r=i.primitive==="triangle"?dw:i.primitive==="fourstar"?hw:uw,s=[];for(let n=0;n<r.length;n+=2)s.push(r[n]*e,r[n+1]*t);return s}function gw(i,e,t){return sv(i)?[i.kind,i.primitive,i.imageId,cr(i.imageSource),"sprite"].join(" "):[i.kind,i.primitive,e,t,i.imageColor,i.imageId,cr(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 sv(i){return i.kind==="image"&&i.primitive==="circle"&&(!i.fillType||i.fillType==="Unused")}function bw(i){let e=z.get().createCanvas(i,i);e.width=e.height=i;let t=e.getContext("2d");return t.fillStyle="#ffffff",t.beginPath(),t.arc(i/2,i/2,i/2,0,Math.PI*2),t.fill(),new U({source:new Se({resource:e,width:i,height:i,resolution:1})})}var tf=class{constructor(e,{fontReady:t=null}={}){this.canvas=e,e?.parentElement&&typeof document<"u"&&(this.effectHost=document.createElement("div"),e.parentElement.style.isolation="isolate",e.parentElement.append(this.effectHost),this.effects=new Yc(this.effectHost)),this.app=null,this.nodes=new Map,this.circleTextures=new Map,this.imageTextures=new Map,this.disposed=!1,this.unsubscribeImages=xy(r=>this.invalidateImage(r)),this.canvasWidth=0,this.canvasHeight=0,this.scratch=new k,this.ready=this.initialize(t)}async initialize(e){this.fontFamily=await e;let t=new Cc;await t.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"}),t.ticker.stop(),t.stage.eventMode="none",t.stage.sortableChildren=!0,this.app=t}resize(e,t){let r=Math.max(1,Math.round(nt(e,1))),s=Math.max(1,Math.round(nt(t,1)));r===this.canvasWidth&&s===this.canvasHeight||(this.canvasWidth=r,this.canvasHeight=s,this.app.renderer.resize(r,s))}syncEffects(e){this.effects?.sync(e)}resetEffects(){this.effects?.reset()}createNode(e,{group:t=!1}={}){let r=new me({isRenderGroup:!!t});return r.label=`runtime:${e.id}`,r.eventMode="none",r.sortableChildren=!0,r.__runtimeId=e.id,r.__group=!!t,this.nodes.set(e.id,r),this.app.stage.addChild(r),r}clearVisual(e){if(!e.__visual)return;let t=e.__visual.__text,r=this.app?.renderer,s=r?.renderPipes?.text?._managedTexts?.items,n=t?._gpuData?.[r?.uid]?.currentKey,o=t?.uid;e.__visual.parent?.removeChild(e.__visual);let a=e.__visual.__sliceGeometry,c=e.__visual.__richText?.texture;e.__visual.destroy({children:!0,context:!0,style:!0}),c?.destroy(!0),s&&o!==void 0&&s[o]===null&&delete s[o],n&&this.retireTextKey(n),a?.destroy(!0),e.__visual=null,e.__visualKey=""}retireTextKey(e){e&&(this.retiredTextKeys||=new Set,this.retiredTextKeys.add(e))}pruneTextKeys(){let e=this.app?.renderer?.canvasText?._activeTextures;for(let t of this.retiredTextKeys||[])e?.[t]===null&&delete e[t],e?.[t]||this.retiredTextKeys.delete(t)}updateTextVisual(e,t,r,s){let n=e.__visual;if(t.kind!=="textbox"&&t.kind!=="textwindow")return!1;if(n?.__richText){if(!t.textLayout?.richLines||n.__textChromeKey!==ef(t,r,s))return!1;let l=n.__richText;return Zu(l.texture.source.resource,t,r,s,this.fontFamily,this.app?.renderer?.resolution||1),l.texture.source.update(),!0}if(t.textLayout?.richLines||!n?.__text||n.__textChromeKey!==ef(t,r,s))return!1;let o=n.__text,a=iv(t,r,s,this.fontFamily),c=JSON.stringify(a.style);if(o.text!==a.text||n.__textStyleKey!==c){if(this.retireTextKey(o._gpuData?.[this.app?.renderer?.uid]?.currentKey),n.__textStyleKey!==c){let l=o.style;o.style=new $t(a.style),l.destroy(),n.__textStyleKey=c}o.text=a.text}return o.anchor.set(a.anchorX,a.anchorY),o.position.set(a.x,a.y),!0}circleTexture(e){let t=this.app?.renderer.resolution||2,r=Math.min(4096,Math.max(256,2**Math.ceil(Math.log2(Math.max(1,e*t)))));this.circleTextures||=new Map;let s=this.circleTextures.get(r);return s||(s=bw(r),this.circleTextures.set(r,s)),s}imageTexture(e,t){this.imageTextures||=new Map;let r=qt(e,t);if(this.imageTextures.has(r))return this.imageTextures.get(r);let s={texture:null,error:""};return this.imageTextures.set(r,s),s.promise=_y(e,t).then(({image:n,meta:o,error:a})=>{if(!(this.disposed||this.imageTextures.get(r)!==s)){s.texture=new U({source:new kt({resource:n})}),s.meta=o,s.error=a;for(let c of this.nodes.values()){let l=c.__sceneItem;l?.kind!=="image"||qt(l.imageId,l.imageSource)!==r||(c.__visualKey="",this.updateNode(c,l,{nested:!c.__flat&&l.parent!=null}))}this.app?.render()}}).catch(n=>{s.error=n.message}),s}invalidateImage(e){let t=this.imageTextures.get(e);this.imageTextures.delete(e);for(let r of this.nodes.values()){let s=r.__sceneItem;s?.kind!=="image"||qt(s.imageId,s.imageSource)!==e||(r.__visualKey="",this.updateNode(r,s,{nested:!r.__flat&&s.parent!=null}))}t?.texture?.destroy(!0),this.app?.render()}pruneImageTextures(){if(!this.imageTextures?.size)return;let e=new Set([...this.nodes.values()].filter(t=>t.__sceneItem?.primitive==="sprite").map(t=>qt(t.__sceneItem.imageId,t.__sceneItem.imageSource)));for(let[t,r]of this.imageTextures||[])e.has(t)||(this.imageTextures.delete(t),r.texture?.destroy(!0))}replaceVisual(e,t,r,s){if(this.clearVisual(e),!fw.has(t.kind))return;let n=new me;if(n.eventMode="none",n.label=`visual:${t.id}`,n.zIndex=t.kind==="grid"?Number.MAX_SAFE_INTEGER:-Number.MAX_SAFE_INTEGER,t.kind==="textbox"||t.kind==="textwindow"){let c=new it,l=us(t.bgColor,16777215);if(c.rect(-r/2,-s/2,r,s).fill(l),n.addChild(c),t.textLayout?.richLines){let d=z.get().createCanvas(1,1);Zu(d,t,r,s,this.fontFamily,this.app?.renderer?.resolution||1);let h=new at({texture:new U({source:new Se({resource:d})}),anchor:.5});h.width=r,h.height=s,n.__richText=h,n.addChild(h)}else{let d=iv(t,r,s,this.fontFamily),h=new fo({text:d.text,style:new $t(d.style)});h.anchor.set(d.anchorX,d.anchorY),h.position.set(d.x,d.y),n.__text=h,n.__textStyleKey=JSON.stringify(d.style);let u=new it().rect(-r/2,-s/2,r,s).fill({color:16777215,alpha:1});h.mask=u,n.addChild(u,h)}n.__textChromeKey=ef(t,r,s)}else if(t.kind==="button"){let c=new it;c.roundRect(-r/2,-s/2,r,s,6).fill({color:3303631,alpha:1}),c.roundRect(-r/2,-s/2,r,s,6).stroke({color:7381247,alpha:.8,width:1}),t.pressed&&c.roundRect(-r/2,-s/2,r,s,6).fill({color:0,alpha:.28}),n.addChild(c)}else if(t.kind==="image"&&t.primitive==="sprite"&&this.imageTexture(t.imageId,t.imageSource).texture){let c=this.imageTextures.get(qt(t.imageId,t.imageSource)),l;if(r>0&&s>0&&vy(c.meta,t.imageType)==="Stretch"){let u=[],f=[],m=[];for(let{source:[x,b,y,v],target:[w,S,T,C]}of wy(c.meta,r,s)){let B=u.length/2,R=w-r/2,M=S-s/2;u.push(R,M,R+T,M,R+T,M+C,R,M+C);let E=x/c.meta.width,A=(x+y)/c.meta.width,L=b/c.meta.height,W=(b+v)/c.meta.height;f.push(E,L,A,L,A,W,E,W),m.push(B,B+1,B+2,B,B+2,B+3)}let g=new so({positions:new Float32Array(u),uvs:new Float32Array(f),indices:new Uint32Array(m)});n.__sliceGeometry=g,l=new oo({geometry:g,texture:c.texture})}else l=new at({texture:c.texture,anchor:.5}),l.width=r,l.height=s;let d=us(t.imageColor,4294967295);l.tint=d.color,l.alpha=d.alpha;let h=Ou(t,r,s);if(l.visible=r>0&&s>0&&(!h||h.width>0&&h.height>0),h&&l.visible){let u=new it().rect(h.x,h.y,h.width,h.height).fill(16777215);l.mask=u,n.addChild(u)}n.addChild(l)}else if(sv(t)){let c=new at({texture:this.circleTexture(Math.max(r,s)),anchor:.5});n.__circle=c,n.addChild(c)}else if(t.kind!=="grid"){let c=new it,l=us(t.imageColor,4294967295);t.primitive==="missing"||t.primitive==="sprite"?(c.rect(-r/2,-s/2,r,s).fill({color:4727336,alpha:.36}),c.rect(-r/2+.5,-s/2+.5,Math.max(0,r-1),Math.max(0,s-1)).stroke({color:16741505,alpha:1,width:1})):t.primitive==="circle"?c.ellipse(0,0,r/2,s/2).fill(l):t.primitive==="ring"?c.ellipse(0,0,Math.max(1,r/2-3.5),Math.max(1,s/2-3.5)).stroke({...l,width:7}):t.primitive==="triangle"||t.primitive==="fourstar"||t.primitive==="fivestar"?c.poly(mw(t,r,s)).fill(l):c.rect(-r/2,-s/2,r,s).fill(l);let d=Ou(t,r,s);if(d&&(c.visible=d.width>0&&d.height>0,c.visible)){let h=new it().rect(d.x,d.y,d.width,d.height).fill({color:16777215,alpha:1});c.mask=h,n.addChild(h)}n.addChild(c)}let o=Wu(t.scroll,r,s);if(o){let c=new it;c.label="scrollbar";for(let[l,d]of[[o.track,2503751],[o.thumb,9481931]])c.rect(l.x,l.y,l.width,l.height).fill({color:d,alpha:1});n.addChild(c)}n.scale.set(t.pressed?.98:1),(e.__imageContent||e).addChildAt(n,0),e.__visual=n}applyMatrix(e,t,r){let s=rv(t);if(!s){let h=Math.max(0,nt(t.sourceWidth,nt(t.width))),u=Math.max(0,nt(t.sourceHeight,nt(t.height)));e.x=nt(t.left)+h/2,e.y=this.canvasHeight-nt(t.bottom)-u/2,e.rotation=-nt(t.rotationZ)*Math.PI/180,e.scale.set(1);return}let[n,o,a,c,l,d]=s;this.scratch.set(n,-o,-a,c,l,r?-d:this.canvasHeight-d),e.setFromMatrix(this.scratch)}updateNode(e,t,{nested:r=!1}={}){let s=Math.max(0,nt(t.sourceWidth,nt(t.width))),n=Math.max(0,nt(t.sourceHeight,nt(t.height))),o=gw(t,s,n);e.__visualKey!==o&&(this.updateTextVisual(e,t,s,n)||this.replaceVisual(e,t,s,n),e.__visualKey=o),e.__visual&&e.__visual.scale.set(t.pressed?.98:1);let a=e.__visual?.__circle;if(a){let c=Math.max(s,n),l=us(t.imageColor,4294967295);a.texture=this.circleTexture(c),a.width=s,a.height=n,a.tint=l.color,a.alpha=l.alpha,a.visible=s>0&&n>0}this.applyMatrix(e,t,r),this.updateImageMask(e,t,s,n)}updateImageMask(e,t,r,s){let n=t.kind==="image"?dy({...t,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(e.__maskKey===o)return;if(e.__maskKey=o,!e.__imageContent&&n){let f=new me;f.sortableChildren=!0,f.eventMode="none";for(let m of[...e.children])m!==e.__viewportClip&&f.addChild(m);e.addChildAt(f,0),e.__imageContent=f}let a=e.__imageContent;if(!a)return;a.visible=!n||r>0&&s>0;let c=n&&(n.featherX>0||n.featherY>0),l=Math.min(2048,Math.max(1,Math.ceil(r))),d=Math.min(2048,Math.max(1,Math.ceil(s))),h=e.__imageMask;if(c&&a.visible&&h instanceof at&&h.texture.source.resource.width===l&&h.texture.source.resource.height===d){zu(h.texture.source.resource,n),h.texture.source.update(),h.width=r,h.height=s;return}if(a.mask=null,h?.destroy({context:!0,texture:!0,textureSource:!0}),e.__imageMask=null,!n||!a.visible)return;let u;if(c){let f=z.get().createCanvas(l,d);zu(f,n),u=new at({texture:new U({source:new Se({resource:f})}),anchor:.5}),u.width=r,u.height=s}else u=new it().rect(-r/2,-s/2,r,s).fill(16777215);u.eventMode="none",a.addChild(u),a.setMask({mask:u,channel:"alpha"}),e.__imageMask=u}attachNode(e,t){let r=t.parent,s=r==null?this.app.stage:this.nodes.get(r),n=s?.__imageContent||s||this.app.stage;e.parent!==n&&n.addChild(e),n.sortableChildren=!0,e.zIndex=-nt(t.z)}upsertSceneNode(e){if(!e||e.id===void 0||e.id===null)return;let t=e.group===!0,r=this.nodes.get(e.id);r?r.__group!==t&&(t?r.enableRenderGroup?.():r.disableRenderGroup?.(),r.__group=t):r=this.createNode(e,{group:t}),this.updateNode(r,e,{nested:e.parent!=null}),this.attachNode(r,e),r.__sceneItem=e,r.__flat=!1}updateViewportClip(e){let t=e.__sceneItem,r=this.nodes.get(t?.parent)?.__sceneItem,s=t?.clipPolygons||[];if(!e.__flat&&t?.clipToParent&&r){let d=r.sourceWidth/2,h=r.sourceHeight/2;s=[[[-d,-h],[d,-h],[d,h],[-d,h]].map(([u,f])=>({x:u,y:f}))]}let n=JSON.stringify([s,t?.matrix]);if(e.__clipKey===n||(e.__clipKey=n,e.mask=null,e.__viewportClip?.destroy({context:!0}),e.__viewportClip=null,e.visible=!0,!s.length))return;let o=rv(t);if(!o||Math.abs(o[0]*o[3]-o[1]*o[2])<1e-8){e.visible=!1;return}let a=new k(...o).invert(),c=py(s).flatMap(d=>{let h=a.apply(d);return[h.x,-h.y]});if(c.length<6||!c.every(Number.isFinite)){e.visible=!1;return}let l=new it().poly(c).fill({color:16777215,alpha:1});e.addChild(l),e.mask=l,e.__viewportClip=l}removeNode(e){let t=this.nodes.get(e);if(t){for(let r of[...t.children,...t.__imageContent?.children||[]])r.__runtimeId!=null&&r.parent?.removeChild(r);t.parent?.removeChild(t),this.clearVisual(t),t.mask=null,t.__imageContent&&(t.__imageContent.mask=null),t.__imageMask?.destroy({context:!0,texture:!0,textureSource:!0}),t.__imageMask=null,t.__viewportClip?.destroy({context:!0}),t.__imageContent?.destroy({children:!1}),t.destroy({children:!1}),this.nodes.delete(e)}}clearNodes(){for(let e of[...this.nodes.keys()])this.removeNode(e);this.pruneTextKeys()}async applyScene(e,t,r){if(await this.ready,this.resize(t,r),!e||e.format!=="tree-v1"){this.app.render();return}e.reset&&this.clearNodes();for(let n of e.removed||[])this.removeNode(n);let s=e.reset?e.nodes:e.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(e,t,r){if(e?.some(o=>o?.masks?.length))return this.__maskedPaint=!0,this.applyScene(uy(e),t,r);await this.ready,this.__maskedPaint&&(this.clearNodes(),this.__maskedPaint=!1),this.resize(t,r);let s=new Set,n=Array.isArray(e)?e:[];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 c=this.nodes.get(a.id)||this.createNode(a);this.updateNode(c,a),c.__sceneItem=a,c.__flat=!0,this.updateViewportClip(c),c.zIndex=o,c.parent!==this.app.stage&&this.app.stage.addChild(c)}for(let[o]of this.nodes)s.has(o)||this.removeNode(o);this.pruneImageTextures(),this.app.render(),this.pruneTextKeys()}destroy(){this.effects?.destroy(),this.effectHost?.remove(),this.disposed=!0,this.unsubscribeImages?.(),this.clearNodes();for(let e of this.imageTextures?.values()||[])e.texture?.destroy(!0);this.imageTextures?.clear();for(let e of this.circleTextures.values())e.destroy(!0);this.circleTextures.clear(),this.app?.destroy({removeView:!1},{children:!0,texture:!0,textureSource:!0}),this.app=null}};export{Ju as PLAY_POLL_INTERVAL_MS,tf as PixiPlayRenderer,tv as createPlaySession,Py as getLanguagePreference,Vc as getLocale,Wc as getSystemLanguage,Ty as loadBrowserFont,My as loadSystemLanguage,ky as localizePage,Ay as setLanguagePreference,Ry as subscribeLocale,hs as t};
|
|
928
929
|
/*! Bundled license information:
|
|
929
930
|
|
|
930
931
|
tiny-lru/dist/tiny-lru.js:
|