Files
SpineParticlesWeb/dist/assets/index-DQ5rq6hP.js
T
2026-10-22 18:13:43 +08:00

1258 lines
1.3 MiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-CC5ru70P.js","assets/index-Ck8IwYQq.js"])))=>i.map(i=>d[i]);
var YE=Object.defineProperty;var GE=(n,e,t)=>e in n?YE(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var T=(n,e,t)=>GE(n,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))i(s);new MutationObserver(s=>{for(const r of s)if(r.type==="childList")for(const o of r.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function t(s){const r={};return s.integrity&&(r.integrity=s.integrity),s.referrerPolicy&&(r.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?r.credentials="include":s.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function i(s){if(s.ep)return;s.ep=!0;const r=t(s);fetch(s.href,r)}})();/**
* @vue/shared v3.5.41
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function sg(n){const e=Object.create(null);for(const t of n.split(","))e[t]=1;return t=>t in e}const Xt={},Ea=[],Cs=()=>{},P1=()=>!1,Ou=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&(n.charCodeAt(2)>122||n.charCodeAt(2)<97),$u=n=>n.startsWith("onUpdate:"),Ci=Object.assign,rg=(n,e)=>{const t=n.indexOf(e);t>-1&&n.splice(t,1)},HE=Object.prototype.hasOwnProperty,Ot=(n,e)=>HE.call(n,e),et=Array.isArray,Ca=n=>uc(n)==="[object Map]",Ka=n=>uc(n)==="[object Set]",c0=n=>uc(n)==="[object Date]",ht=n=>typeof n=="function",ii=n=>typeof n=="string",wn=n=>typeof n=="symbol",$t=n=>n!==null&&typeof n=="object",R1=n=>($t(n)||ht(n))&&ht(n.then)&&ht(n.catch),k1=Object.prototype.toString,uc=n=>k1.call(n),jE=n=>uc(n).slice(8,-1),F1=n=>uc(n)==="[object Object]",Nu=n=>ii(n)&&n!=="NaN"&&n[0]!=="-"&&""+parseInt(n,10)===n,Ml=sg(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Du=n=>{const e=Object.create(null);return(t=>e[t]||(e[t]=n(t)))},WE=/-\w/g,qn=Du(n=>n.replace(WE,e=>e.slice(1).toUpperCase())),zE=/\B([A-Z])/g,Qr=Du(n=>n.replace(zE,"-$1").toLowerCase()),L1=Du(n=>n.charAt(0).toUpperCase()+n.slice(1)),Sd=Du(n=>n?`on${L1(n)}`:""),xs=(n,e)=>!Object.is(n,e),gh=(n,...e)=>{for(let t=0;t<n.length;t++)n[t](...e)},O1=(n,e,t,i=!1)=>{Object.defineProperty(n,e,{configurable:!0,enumerable:!1,writable:i,value:t})},Bu=n=>{const e=parseFloat(n);return isNaN(e)?n:e},qE=n=>{const e=ii(n)?Number(n):NaN;return isNaN(e)?n:e};let h0;const Uu=()=>h0||(h0=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Vt(n){if(et(n)){const e={};for(let t=0;t<n.length;t++){const i=n[t],s=ii(i)?QE(i):Vt(i);if(s)for(const r in s)e[r]=s[r]}return e}else if(ii(n)||$t(n))return n}const KE=/;(?![^(]*\))/g,JE=/:([^]+)/,ZE=/\/\*[^]*?\*\//g;function QE(n){const e={};return n.replace(ZE,"").split(KE).forEach(t=>{if(t){const i=t.split(JE);i.length>1&&(e[i[0].trim()]=i[1].trim())}}),e}function Pe(n){let e="";if(ii(n))e=n;else if(et(n))for(let t=0;t<n.length;t++){const i=Pe(n[t]);i&&(e+=i+" ")}else if($t(n))for(const t in n)n[t]&&(e+=t+" ");return e.trim()}const eC="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",tC=sg(eC);function $1(n){return!!n||n===""}function iC(n,e){if(n.length!==e.length)return!1;let t=!0;for(let i=0;t&&i<n.length;i++)t=Ja(n[i],e[i]);return t}function Ja(n,e){if(n===e)return!0;let t=c0(n),i=c0(e);if(t||i)return t&&i?n.getTime()===e.getTime():!1;if(t=wn(n),i=wn(e),t||i)return n===e;if(t=et(n),i=et(e),t||i)return t&&i?iC(n,e):!1;if(t=$t(n),i=$t(e),t||i){if(!t||!i)return!1;const s=Object.keys(n).length,r=Object.keys(e).length;if(s!==r)return!1;for(const o in n){const a=n.hasOwnProperty(o),c=e.hasOwnProperty(o);if(a&&!c||!a&&c||!Ja(n[o],e[o]))return!1}}return String(n)===String(e)}function og(n,e){return n.findIndex(t=>Ja(t,e))}const N1=n=>!!(n&&n.__v_isRef===!0),k=n=>ii(n)?n:n==null?"":et(n)||$t(n)&&(n.toString===k1||!ht(n.toString))?N1(n)?k(n.value):JSON.stringify(n,D1,2):String(n),D1=(n,e)=>N1(e)?D1(n,e.value):Ca(e)?{[`Map(${e.size})`]:[...e.entries()].reduce((t,[i,s],r)=>(t[_d(i,r)+" =>"]=s,t),{})}:Ka(e)?{[`Set(${e.size})`]:[...e.values()].map(t=>_d(t))}:wn(e)?_d(e):$t(e)&&!et(e)&&!F1(e)?String(e):e,_d=(n,e="")=>{var t;return wn(n)?`Symbol(${(t=n.description)!=null?t:e})`:n};/**
* @vue/reactivity v3.5.41
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let _i;class B1{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!e&&_i&&(_i.active?(this.parent=_i,this.index=(_i.scopes||(_i.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let e,t;if(this.scopes){const i=this.scopes.slice();for(e=0,t=i.length;e<t;e++)i[e].pause()}for(e=0,t=this.effects.length;e<t;e++)this.effects[e].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let e,t;if(this.scopes){const s=this.scopes.slice();for(e=0,t=s.length;e<t;e++)s[e].resume()}const i=this.effects.slice();for(e=0,t=i.length;e<t;e++)i[e].resume()}}run(e){if(this._active){const t=_i;try{return _i=this,e()}finally{_i=t}}}on(){++this._on===1&&(this.prevScope=_i,_i=this)}off(){if(this._on>0&&--this._on===0){if(_i===this)_i=this.prevScope;else{let e=_i;for(;e;){if(e.prevScope===this){e.prevScope=this.prevScope;break}e=e.prevScope}}this.prevScope=void 0}}stop(e){if(this._active){this._active=!1;let t,i;for(t=0,i=this.effects.length;t<i;t++)this.effects[t].stop();for(this.effects.length=0,t=0,i=this.cleanups.length;t<i;t++)this.cleanups[t]();if(this.cleanups.length=0,this.scopes){const s=this.scopes.slice();for(t=0,i=s.length;t<i;t++)s[t].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!e){const s=this.parent.scopes.pop();s&&s!==this&&(this.parent.scopes[this.index]=s,s.index=this.index)}this.parent=void 0}}}function ag(n){return new B1(n)}function lg(){return _i}function U1(n,e=!1){_i&&_i.cleanups.push(n)}let Wt;const Td=new WeakSet;class V1{constructor(e){this.fn=e,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,_i&&(_i.active?_i.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Td.has(this)&&(Td.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Y1(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,u0(this),G1(this);const e=Wt,t=Kn;Wt=this,Kn=!0;try{return this.fn()}finally{H1(this),Wt=e,Kn=t,this.flags&=-3}}stop(){if(this.flags&1){for(let e=this.deps;e;e=e.nextDep)ug(e);this.deps=this.depsTail=void 0,u0(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Td.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){Sm(this)&&this.run()}get dirty(){return Sm(this)}}let X1=0,Al,Il;function Y1(n,e=!1){if(n.flags|=8,e){n.next=Il,Il=n;return}n.next=Al,Al=n}function cg(){X1++}function hg(){if(--X1>0)return;if(Il){let e=Il;for(Il=void 0;e;){const t=e.next;e.next=void 0,e.flags&=-9,e=t}}let n;for(;Al;){let e=Al;for(Al=void 0;e;){const t=e.next;if(e.next=void 0,e.flags&=-9,e.flags&1)try{e.trigger()}catch(i){n||(n=i)}e=t}}if(n)throw n}function G1(n){for(let e=n.deps;e;e=e.nextDep)e.version=-1,e.prevActiveLink=e.dep.activeLink,e.dep.activeLink=e}function H1(n){let e,t=n.depsTail,i=t;for(;i;){const s=i.prevDep;i.version===-1?(i===t&&(t=s),ug(i),nC(i)):e=i,i.dep.activeLink=i.prevActiveLink,i.prevActiveLink=void 0,i=s}n.deps=e,n.depsTail=t}function Sm(n){for(let e=n.deps;e;e=e.nextDep)if(e.dep.version!==e.version||e.dep.computed&&(j1(e.dep.computed)||e.dep.version!==e.version))return!0;return!!n._dirty}function j1(n){if(n.flags&4&&!(n.flags&16)||(n.flags&=-17,n.globalVersion===Vl)||(n.globalVersion=Vl,!n.isSSR&&n.flags&128&&(!n.deps&&!n._dirty||!Sm(n))))return;n.flags|=2;const e=n.dep,t=Wt,i=Kn;Wt=n,Kn=!0;try{G1(n);const s=n.fn(n._value);(e.version===0||xs(s,n._value))&&(n.flags|=128,n._value=s,e.version++)}catch(s){throw e.version++,s}finally{Wt=t,Kn=i,H1(n),n.flags&=-3}}function ug(n,e=!1){const{dep:t,prevSub:i,nextSub:s}=n;if(i&&(i.nextSub=s,n.prevSub=void 0),s&&(s.prevSub=i,n.nextSub=void 0),t.subs===n&&(t.subs=i,!i&&t.computed)){t.computed.flags&=-5;for(let r=t.computed.deps;r;r=r.nextDep)ug(r,!0)}!e&&!--t.sc&&t.map&&t.map.delete(t.key)}function nC(n){const{prevDep:e,nextDep:t}=n;e&&(e.nextDep=t,n.prevDep=void 0),t&&(t.prevDep=e,n.nextDep=void 0)}let Kn=!0;const W1=[];function hr(){W1.push(Kn),Kn=!1}function ur(){const n=W1.pop();Kn=n===void 0?!0:n}function u0(n){const{cleanup:e}=n;if(n.cleanup=void 0,e){const t=Wt;Wt=void 0;try{e()}finally{Wt=t}}}let Vl=0;class sC{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class dg{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!Wt||!Kn||Wt===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==Wt)t=this.activeLink=new sC(Wt,this),Wt.deps?(t.prevDep=Wt.depsTail,Wt.depsTail.nextDep=t,Wt.depsTail=t):Wt.deps=Wt.depsTail=t,z1(t);else if(t.version===-1&&(t.version=this.version,t.nextDep)){const i=t.nextDep;i.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=i),t.prevDep=Wt.depsTail,t.nextDep=void 0,Wt.depsTail.nextDep=t,Wt.depsTail=t,Wt.deps===t&&(Wt.deps=i)}return t}trigger(e){this.version++,Vl++,this.notify(e)}notify(e){cg();try{for(let t=this.subs;t;t=t.prevSub)t.sub.notify()&&t.sub.dep.notify()}finally{hg()}}}function z1(n){if(n.dep.sc++,n.sub.flags&4){const e=n.dep.computed;if(e&&!n.dep.subs){e.flags|=20;for(let i=e.deps;i;i=i.nextDep)z1(i)}const t=n.dep.subs;t!==n&&(n.prevSub=t,t&&(t.nextSub=n)),n.dep.subs=n}}const Lh=new WeakMap,Ro=Symbol(""),_m=Symbol(""),Xl=Symbol("");function Gi(n,e,t){if(Kn&&Wt){let i=Lh.get(n);i||Lh.set(n,i=new Map);let s=i.get(t);s||(i.set(t,s=new dg),s.map=i,s.key=t),s.track()}}function Ws(n,e,t,i,s,r){const o=Lh.get(n);if(!o){Vl++;return}const a=c=>{c&&c.trigger()};if(cg(),e==="clear")o.forEach(a);else{const c=et(n),l=c&&Nu(t);if(c&&t==="length"){const h=Number(i);o.forEach((u,d)=>{(d==="length"||d===Xl||!wn(d)&&d>=h)&&a(u)})}else switch((t!==void 0||o.has(void 0))&&a(o.get(t)),l&&a(o.get(Xl)),e){case"add":c?l&&a(o.get("length")):(a(o.get(Ro)),Ca(n)&&a(o.get(_m)));break;case"delete":c||(a(o.get(Ro)),Ca(n)&&a(o.get(_m)));break;case"set":Ca(n)&&a(o.get(Ro));break}}hg()}function rC(n,e){const t=Lh.get(n);return t&&t.get(e)}function ta(n){const e=Mt(n);return e===n?e:(Gi(e,"iterate",Xl),xn(n)?e:e.map(ts))}function Vu(n){return Gi(n=Mt(n),"iterate",Xl),n}function gs(n,e){return dr(n)?Ba(or(n)?ts(e):e):ts(e)}const oC={__proto__:null,[Symbol.iterator](){return Ed(this,Symbol.iterator,n=>gs(this,n))},concat(...n){return ta(this).concat(...n.map(e=>et(e)?ta(e):e))},entries(){return Ed(this,"entries",n=>(n[1]=gs(this,n[1]),n))},every(n,e){return Os(this,"every",n,e,void 0,arguments)},filter(n,e){return Os(this,"filter",n,e,t=>t.map(i=>gs(this,i)),arguments)},find(n,e){return Os(this,"find",n,e,t=>gs(this,t),arguments)},findIndex(n,e){return Os(this,"findIndex",n,e,void 0,arguments)},findLast(n,e){return Os(this,"findLast",n,e,t=>gs(this,t),arguments)},findLastIndex(n,e){return Os(this,"findLastIndex",n,e,void 0,arguments)},forEach(n,e){return Os(this,"forEach",n,e,void 0,arguments)},includes(...n){return Cd(this,"includes",n)},indexOf(...n){return Cd(this,"indexOf",n)},join(n){return ta(this).join(n)},lastIndexOf(...n){return Cd(this,"lastIndexOf",n)},map(n,e){return Os(this,"map",n,e,void 0,arguments)},pop(){return ol(this,"pop")},push(...n){return ol(this,"push",n)},reduce(n,...e){return d0(this,"reduce",n,e)},reduceRight(n,...e){return d0(this,"reduceRight",n,e)},shift(){return ol(this,"shift")},some(n,e){return Os(this,"some",n,e,void 0,arguments)},splice(...n){return ol(this,"splice",n)},toReversed(){return ta(this).toReversed()},toSorted(n){return ta(this).toSorted(n)},toSpliced(...n){return ta(this).toSpliced(...n)},unshift(...n){return ol(this,"unshift",n)},values(){return Ed(this,"values",n=>gs(this,n))}};function Ed(n,e,t){const i=Vu(n),s=i[e]();return i!==n&&!xn(n)&&(s._next=s.next,s.next=()=>{const r=s._next();return r.done||(r.value=t(r.value)),r}),s}const aC=Array.prototype;function Os(n,e,t,i,s,r){const o=Vu(n),a=o!==n&&!xn(n),c=o[e];if(c!==aC[e]){const u=c.apply(n,r);return a?ts(u):u}let l=t;o!==n&&(a?l=function(u,d){return t.call(this,gs(n,u),d,n)}:t.length>2&&(l=function(u,d){return t.call(this,u,d,n)}));const h=c.call(o,l,i);return a&&s?s(h):h}function d0(n,e,t,i){const s=Vu(n),r=s!==n&&!xn(n);let o=t,a=!1;s!==n&&(r?(a=i.length===0,o=function(l,h,u){return a&&(a=!1,l=gs(n,l)),t.call(this,l,gs(n,h),u,n)}):t.length>3&&(o=function(l,h,u){return t.call(this,l,h,u,n)}));const c=s[e](o,...i);return a?gs(n,c):c}function Cd(n,e,t){const i=Mt(n);Gi(i,"iterate",Xl);const s=i[e](...t);return(s===-1||s===!1)&&Xu(t[0])?(t[0]=Mt(t[0]),i[e](...t)):s}function ol(n,e,t=[]){hr(),cg();const i=Mt(n)[e].apply(n,t);return hg(),ur(),i}const lC=sg("__proto__,__v_isRef,__isVue"),q1=new Set(Object.getOwnPropertyNames(Symbol).filter(n=>n!=="arguments"&&n!=="caller").map(n=>Symbol[n]).filter(wn));function cC(n){wn(n)||(n=String(n));const e=Mt(this);return Gi(e,"has",n),e.hasOwnProperty(n)}class K1{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,i){if(t==="__v_skip")return e.__v_skip;const s=this._isReadonly,r=this._isShallow;if(t==="__v_isReactive")return!s;if(t==="__v_isReadonly")return s;if(t==="__v_isShallow")return r;if(t==="__v_raw")return i===(s?r?bC:ex:r?Q1:Z1).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(i)?e:void 0;const o=et(e);if(!s){let c;if(o&&(c=oC[t]))return c;if(t==="hasOwnProperty")return cC}const a=Reflect.get(e,t,Qt(e)?e:i);if((wn(t)?q1.has(t):lC(t))||(s||Gi(e,"get",t),r))return a;if(Qt(a)){const c=o&&Nu(t)?a:a.value;return s&&$t(c)?Em(c):c}return $t(a)?s?Em(a):Go(a):a}}class J1 extends K1{constructor(e=!1){super(!1,e)}set(e,t,i,s){let r=e[t];const o=et(e)&&Nu(t);if(!this._isShallow){const l=dr(r);if(!xn(i)&&!dr(i)&&(r=Mt(r),i=Mt(i)),!o&&Qt(r)&&!Qt(i))return l||(r.value=i),!0}const a=o?Number(t)<e.length:Ot(e,t),c=Reflect.set(e,t,i,Qt(e)?e:s);return e===Mt(s)&&c&&(a?xs(i,r)&&Ws(e,"set",t,i):Ws(e,"add",t,i)),c}deleteProperty(e,t){const i=Ot(e,t);e[t];const s=Reflect.deleteProperty(e,t);return s&&i&&Ws(e,"delete",t,void 0),s}has(e,t){const i=Reflect.has(e,t);return(!wn(t)||!q1.has(t))&&Gi(e,"has",t),i}ownKeys(e){return Gi(e,"iterate",et(e)?"length":Ro),Reflect.ownKeys(e)}}class hC extends K1{constructor(e=!1){super(!0,e)}set(e,t){return!0}deleteProperty(e,t){return!0}}const uC=new J1,dC=new hC,fC=new J1(!0);const Tm=n=>n,Ac=n=>Reflect.getPrototypeOf(n);function mC(n,e,t){return function(...i){const s=this.__v_raw,r=Mt(s),o=Ca(r),a=n==="entries"||n===Symbol.iterator&&o,c=n==="keys"&&o,l=s[n](...i),h=t?Tm:e?Ba:ts;return!e&&Gi(r,"iterate",c?_m:Ro),Ci(Object.create(l),{next(){const{value:u,done:d}=l.next();return d?{value:u,done:d}:{value:a?[h(u[0]),h(u[1])]:h(u),done:d}}})}}function Ic(n){return function(...e){return n==="delete"?!1:n==="clear"?void 0:this}}function pC(n,e){const t={get(s){const r=this.__v_raw,o=Mt(r),a=Mt(s);n||(xs(s,a)&&Gi(o,"get",s),Gi(o,"get",a));const{has:c}=Ac(o),l=e?Tm:n?Ba:ts;if(c.call(o,s))return l(r.get(s));if(c.call(o,a))return l(r.get(a));r!==o&&r.get(s)},get size(){const s=this.__v_raw;return!n&&Gi(Mt(s),"iterate",Ro),s.size},has(s){const r=this.__v_raw,o=Mt(r),a=Mt(s);return n||(xs(s,a)&&Gi(o,"has",s),Gi(o,"has",a)),s===a?r.has(s):r.has(s)||r.has(a)},forEach(s,r){const o=this,a=o.__v_raw,c=Mt(a),l=e?Tm:n?Ba:ts;return!n&&Gi(c,"iterate",Ro),a.forEach((h,u)=>s.call(r,l(h),l(u),o))}};return Ci(t,n?{add:Ic("add"),set:Ic("set"),delete:Ic("delete"),clear:Ic("clear")}:{add(s){const r=Mt(this),o=Ac(r),a=Mt(s),c=!e&&!xn(s)&&!dr(s)?a:s;return o.has.call(r,c)||xs(s,c)&&o.has.call(r,s)||xs(a,c)&&o.has.call(r,a)||(r.add(c),Ws(r,"add",c,c)),this},set(s,r){!e&&!xn(r)&&!dr(r)&&(r=Mt(r));const o=Mt(this),{has:a,get:c}=Ac(o);let l=a.call(o,s);l||(s=Mt(s),l=a.call(o,s));const h=c.call(o,s);return o.set(s,r),l?xs(r,h)&&Ws(o,"set",s,r):Ws(o,"add",s,r),this},delete(s){const r=Mt(this),{has:o,get:a}=Ac(r);let c=o.call(r,s);c||(s=Mt(s),c=o.call(r,s)),a&&a.call(r,s);const l=r.delete(s);return c&&Ws(r,"delete",s,void 0),l},clear(){const s=Mt(this),r=s.size!==0,o=s.clear();return r&&Ws(s,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(s=>{t[s]=mC(s,n,e)}),t}function fg(n,e){const t=pC(n,e);return(i,s,r)=>s==="__v_isReactive"?!n:s==="__v_isReadonly"?n:s==="__v_raw"?i:Reflect.get(Ot(t,s)&&s in i?t:i,s,r)}const gC={get:fg(!1,!1)},vC={get:fg(!1,!0)},yC={get:fg(!0,!1)};const Z1=new WeakMap,Q1=new WeakMap,ex=new WeakMap,bC=new WeakMap;function xC(n){switch(n){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Go(n){return dr(n)?n:mg(n,!1,uC,gC,Z1)}function wC(n){return mg(n,!1,fC,vC,Q1)}function Em(n){return mg(n,!0,dC,yC,ex)}function mg(n,e,t,i,s){if(!$t(n)||n.__v_raw&&!(e&&n.__v_isReactive)||n.__v_skip||!Object.isExtensible(n))return n;const r=s.get(n);if(r)return r;const o=xC(jE(n));if(o===0)return n;const a=new Proxy(n,o===2?i:t);return s.set(n,a),a}function or(n){return dr(n)?or(n.__v_raw):!!(n&&n.__v_isReactive)}function dr(n){return!!(n&&n.__v_isReadonly)}function xn(n){return!!(n&&n.__v_isShallow)}function Xu(n){return n?!!n.__v_raw:!1}function Mt(n){const e=n&&n.__v_raw;return e?Mt(e):n}function Ur(n){return!Ot(n,"__v_skip")&&Object.isExtensible(n)&&O1(n,"__v_skip",!0),n}const ts=n=>$t(n)?Go(n):n,Ba=n=>$t(n)?Em(n):n;function Qt(n){return n?n.__v_isRef===!0:!1}function De(n){return tx(n,!1)}function SC(n){return tx(n,!0)}function tx(n,e){return Qt(n)?n:new _C(n,e)}class _C{constructor(e,t){this.dep=new dg,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:Mt(e),this._value=t?e:ts(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){const t=this._rawValue,i=this.__v_isShallow||xn(e)||dr(e);e=i?e:Mt(e),xs(e,t)&&(this._rawValue=e,this._value=i?e:ts(e),this.dep.trigger())}}function I(n){return Qt(n)?n.value:n}const TC={get:(n,e,t)=>e==="__v_raw"?n:I(Reflect.get(n,e,t)),set:(n,e,t,i)=>{const s=n[e];return Qt(s)&&!Qt(t)?(s.value=t,!0):Reflect.set(n,e,t,i)}};function ix(n){return or(n)?n:new Proxy(n,TC)}function EC(n){const e=et(n)?new Array(n.length):{};for(const t in n)e[t]=MC(n,t);return e}class CC{constructor(e,t,i){this._object=e,this._defaultValue=i,this.__v_isRef=!0,this._value=void 0,this._key=wn(t)?t:String(t),this._raw=Mt(e);let s=!0,r=e;if(!et(e)||wn(this._key)||!Nu(this._key))do s=!Xu(r)||xn(r);while(s&&(r=r.__v_raw));this._shallow=s}get value(){let e=this._object[this._key];return this._shallow&&(e=I(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&Qt(this._raw[this._key])){const t=this._object[this._key];if(Qt(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return rC(this._raw,this._key)}}function MC(n,e,t){return new CC(n,e,t)}class AC{constructor(e,t,i){this.fn=e,this.setter=t,this._value=void 0,this.dep=new dg(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Vl-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=i}notify(){if(this.flags|=16,!(this.flags&8)&&Wt!==this)return Y1(this,!0),!0}get value(){const e=this.dep.track();return j1(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function IC(n,e,t=!1){let i,s;return ht(n)?i=n:(i=n.get,s=n.set),new AC(i,s,t)}const Pc={},Oh=new WeakMap;let po;function PC(n,e=!1,t=po){if(t){let i=Oh.get(t);i||Oh.set(t,i=[]),i.push(n)}}function RC(n,e,t=Xt){const{immediate:i,deep:s,once:r,scheduler:o,augmentJob:a,call:c}=t,l=x=>s?x:xn(x)||s===!1||s===0?zs(x,1):zs(x);let h,u,d,f,m=!1,p=!1;if(Qt(n)?(u=()=>n.value,m=xn(n)):or(n)?(u=()=>l(n),m=!0):et(n)?(p=!0,m=n.some(x=>or(x)||xn(x)),u=()=>n.map(x=>{if(Qt(x))return x.value;if(or(x))return l(x);if(ht(x))return c?c(x,2):x()})):ht(n)?e?u=c?()=>c(n,2):n:u=()=>{if(d){hr();try{d()}finally{ur()}}const x=po;po=h;try{return c?c(n,3,[f]):n(f)}finally{po=x}}:u=Cs,e&&s){const x=u,_=s===!0?1/0:s;u=()=>zs(x(),_)}const g=lg(),v=()=>{h.stop(),g&&g.active&&rg(g.effects,h)};if(r&&e){const x=e;e=(..._)=>{const E=x(..._);return v(),E}}let b=p?new Array(n.length).fill(Pc):Pc;const y=x=>{if(!(!(h.flags&1)||!h.dirty&&!x))if(e){const _=h.run();if(x||s||m||(p?_.some((E,S)=>xs(E,b[S])):xs(_,b))){d&&d();const E=po;po=h;try{const S=[_,b===Pc?void 0:p&&b[0]===Pc?[]:b,f];b=_,c?c(e,3,S):e(...S)}finally{po=E}}}else h.run()};return a&&a(y),h=new V1(u),h.scheduler=o?()=>o(y,!1):y,f=x=>PC(x,!1,h),d=h.onStop=()=>{const x=Oh.get(h);if(x){if(c)c(x,4);else for(const _ of x)_();Oh.delete(h)}},e?i?y(!0):b=h.run():o?o(y.bind(null,!0),!0):h.run(),v.pause=h.pause.bind(h),v.resume=h.resume.bind(h),v.stop=v,v}function zs(n,e=1/0,t){if(e<=0||!$t(n)||n.__v_skip||(t=t||new Map,(t.get(n)||0)>=e))return n;if(t.set(n,e),e--,Qt(n))zs(n.value,e,t);else if(et(n))for(let i=0;i<n.length;i++)zs(n[i],e,t);else if(Ka(n)||Ca(n))n.forEach(i=>{zs(i,e,t)});else if(F1(n)){for(const i in n)zs(n[i],e,t);for(const i of Object.getOwnPropertySymbols(n))Object.prototype.propertyIsEnumerable.call(n,i)&&zs(n[i],e,t)}return n}/**
* @vue/runtime-core v3.5.41
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/function dc(n,e,t,i){try{return i?n(...i):n()}catch(s){Yu(s,e,t)}}function On(n,e,t,i){if(ht(n)){const s=dc(n,e,t,i);return s&&R1(s)&&s.catch(r=>{Yu(r,e,t)}),s}if(et(n)){const s=[];for(let r=0;r<n.length;r++)s.push(On(n[r],e,t,i));return s}}function Yu(n,e,t,i=!0){const s=e?e.vnode:null,{errorHandler:r,throwUnhandledErrorInProduction:o}=e&&e.appContext.config||Xt;if(e){let a=e.parent;const c=e.proxy,l=`https://vuejs.org/error-reference/#runtime-${t}`;for(;a;){const h=a.ec;if(h){for(let u=0;u<h.length;u++)if(h[u](n,c,l)===!1)return}a=a.parent}if(r){hr(),dc(r,null,10,[n,c,l]),ur();return}}kC(n,t,s,i,o)}function kC(n,e,t,i=!0,s=!1){if(s)throw n;console.error(n)}const Zi=[];let us=-1;const Ma=[];let Pr=null,ua=0;const nx=Promise.resolve();let $h=null;function Gu(n){const e=$h||nx;return n?e.then(this?n.bind(this):n):e}function FC(n){let e=us+1,t=Zi.length;for(;e<t;){const i=e+t>>>1,s=Zi[i],r=Yl(s);r<n||r===n&&s.flags&2?e=i+1:t=i}return e}function pg(n){if(!(n.flags&1)){const e=Yl(n),t=Zi[Zi.length-1];!t||!(n.flags&2)&&e>=Yl(t)?Zi.push(n):Zi.splice(FC(e),0,n),n.flags|=1,sx()}}function sx(){$h||($h=nx.then(ox))}function LC(n){if(!et(n))Pr&&n.id===-1?Pr.splice(ua+1,0,n):n.flags&1||(Ma.push(n),n.flags|=1);else for(let e=0;e<n.length;e++)Ma.push(n[e]);sx()}function f0(n,e,t=us+1){for(;t<Zi.length;t++){const i=Zi[t];if(i&&i.flags&2){if(n&&i.id!==n.uid)continue;Zi.splice(t,1),t--,i.flags&4&&(i.flags&=-2),i(),i.flags&4||(i.flags&=-2)}}}function rx(n){if(Ma.length){const e=[...new Set(Ma)].sort((t,i)=>Yl(t)-Yl(i));if(Ma.length=0,Pr){for(let t=0;t<e.length;t++)Pr.push(e[t]);return}for(Pr=e,ua=0;ua<Pr.length;ua++){const t=Pr[ua];t.flags&4&&(t.flags&=-2),t.flags&8||t(),t.flags&=-2}Pr=null,ua=0}}const Yl=n=>n.id==null?n.flags&2?-1:1/0:n.id;function ox(n){try{for(us=0;us<Zi.length;us++){const e=Zi[us];e&&!(e.flags&8)&&(e.flags&4&&(e.flags&=-2),dc(e,e.i,e.i?15:14),e.flags&4||(e.flags&=-2))}}finally{for(;us<Zi.length;us++){const e=Zi[us];e&&(e.flags&=-2)}us=-1,Zi.length=0,rx(),$h=null,(Zi.length||Ma.length)&&ox()}}let Wi=null,ax=null;function Nh(n){const e=Wi;return Wi=n,ax=n&&n.type.__scopeId||null,e}function Hu(n,e=Wi,t){if(!e||n._n)return n;const i=(...s)=>{i._d&&Vh(-1);const r=Nh(e),o=ar.length;let a;try{a=n(...s)}finally{for(let c=ar.length;c>o;c--)xg();Nh(r),i._d&&Vh(1)}return a};return i._n=!0,i._c=!0,i._d=!0,i}function pe(n,e){if(Wi===null)return n;const t=Ju(Wi),i=n.dirs||(n.dirs=[]);for(let s=0;s<e.length;s++){let[r,o,a,c=Xt]=e[s];r&&(ht(r)&&(r={mounted:r,updated:r}),r.deep&&zs(o),i.push({dir:r,instance:t,value:o,oldValue:void 0,arg:a,modifiers:c}))}return n}function ao(n,e,t,i){const s=n.dirs,r=e&&e.dirs;for(let o=0;o<s.length;o++){const a=s[o];r&&(a.oldValue=r[o].value);let c=a.dir[i];c&&(hr(),On(c,t,8,[n.el,a,n,e]),ur())}}function lx(n,e){if(Qi){let t=Qi.provides;const i=Qi.parent&&Qi.parent.provides;i===t&&(t=Qi.provides=Object.create(i)),t[n]=e}}function ko(n,e,t=!1){const i=Ku();if(i||Fo){let s=Fo?Fo._context.provides:i?i.parent==null||i.ce?i.vnode.appContext&&i.vnode.appContext.provides:i.parent.provides:void 0;if(s&&n in s)return s[n];if(arguments.length>1)return t&&ht(e)?e.call(i&&i.proxy):e}}function OC(){return!!(Ku()||Fo)}const $C=Symbol.for("v-scx"),NC=()=>ko($C);function da(n,e){return gg(n,null,e)}function ei(n,e,t){return gg(n,e,t)}function gg(n,e,t=Xt){const{immediate:i,deep:s,flush:r,once:o}=t,a=Ci({},t),c=e&&i||!e&&r!=="post";let l;if(zl){if(r==="sync"){const f=NC();l=f.__watcherHandles||(f.__watcherHandles=[])}else if(!c){const f=()=>{};return f.stop=Cs,f.resume=Cs,f.pause=Cs,f}}const h=Qi;a.call=(f,m,p)=>On(f,h,m,p);let u=!1;r==="post"?a.scheduler=f=>{qi(f,h&&h.suspense)}:r!=="sync"&&(u=!0,a.scheduler=(f,m)=>{m?f():pg(f)}),a.augmentJob=f=>{e&&(f.flags|=4),u&&(f.flags|=2,h&&(f.id=h.uid,f.i=h))};const d=RC(n,e,a);return zl&&(l?l.push(d):c&&d()),d}function DC(n,e,t){const i=this.proxy,s=ii(n)?n.includes(".")?cx(i,n):()=>i[n]:n.bind(i,i);let r;ht(e)?r=e:(r=e.handler,t=e);const o=mc(this),a=gg(s,r.bind(i),t);return o(),a}function cx(n,e){const t=e.split(".");return()=>{let i=n;for(let s=0;s<t.length&&i;s++)i=i[t[s]];return i}}const Er=new WeakMap,hx=Symbol("_vte"),ju=n=>n.__isTeleport,wo=n=>n&&(n.disabled||n.disabled===""),BC=n=>n&&(n.defer||n.defer===""),m0=n=>typeof SVGElement<"u"&&n instanceof SVGElement,p0=n=>typeof MathMLElement=="function"&&n instanceof MathMLElement,Cm=(n,e)=>{const t=n&&n.to;return ii(t)?e?e(t):null:t},UC={name:"Teleport",__isTeleport:!0,process(n,e,t,i,s,r,o,a,c,l){const{mc:h,pc:u,pbc:d,o:{insert:f,querySelector:m,createText:p,createComment:g,parentNode:v}}=l,b=wo(e.props);let{dynamicChildren:y}=e;const x=(S,C,M)=>{S.shapeFlag&16&&h(S.children,C,M,s,r,o,a,c)},_=(S=e)=>{const C=wo(S.props),M=S.target=Cm(S.props,m),P=Mm(M,S,p,f);M&&(o!=="svg"&&m0(M)?o="svg":o!=="mathml"&&p0(M)&&(o="mathml"),s&&s.isCE&&(s.ce._teleportTargets||(s.ce._teleportTargets=new Set)).add(M),C||(x(S,M,P),gl(S,!1)))},E=S=>{const C=()=>{if(Er.get(S)===C){if(Er.delete(S),wo(S.props)){const M=v(S.el)||t;x(S,M,S.anchor),gl(S,!0)}_(S)}};Er.set(S,C),qi(C,r)};if(n==null){const S=e.el=p(""),C=e.anchor=p("");if(f(S,t,i),f(C,t,i),BC(e.props)||r&&r.pendingBranch){E(e);return}b&&(x(e,t,C),gl(e,!0)),_()}else{e.el=n.el;const S=e.anchor=n.anchor,C=Er.get(n);if(C){C.flags|=8,Er.delete(n),E(e);return}e.targetStart=n.targetStart;const M=e.target=n.target,P=e.targetAnchor=n.targetAnchor,A=wo(n.props),R=A?t:M,B=A?S:P;if(o==="svg"||m0(M)?o="svg":(o==="mathml"||p0(M))&&(o="mathml"),y?(d(n.dynamicChildren,y,R,s,r,o,a),bg(n,e,!0)):c||u(n,e,R,B,s,r,o,a,!1),b)A?e.props&&n.props&&e.props.to!==n.props.to&&(e.props.to=n.props.to):Rc(e,t,S,l,1);else if((e.props&&e.props.to)!==(n.props&&n.props.to)){const O=Cm(e.props,m);O&&(e.target=O,Rc(e,O,null,l,0))}else A&&Rc(e,M,P,l,1);gl(e,b)}},remove(n,e,t,{um:i,o:{remove:s}},r){const{shapeFlag:o,children:a,anchor:c,targetStart:l,targetAnchor:h,target:u,props:d}=n,f=wo(d),m=r||!f,p=Er.get(n);if(p&&(p.flags|=8,Er.delete(n)),u&&(s(l),s(h)),r&&s(c),!p&&(f||u)&&o&16)for(let g=0;g<a.length;g++){const v=a[g];i(v,e,t,m,!!v.dynamicChildren)}},move:Rc,hydrate:VC};function Rc(n,e,t,{o:{insert:i},m:s},r=2){r===0&&i(n.targetAnchor,e,t);const{el:o,anchor:a,shapeFlag:c,children:l,props:h}=n,u=r===2;if(u&&i(o,e,t),!Er.has(n)&&(!u||wo(h))&&c&16)for(let d=0;d<l.length;d++)s(l[d],e,t,2);u&&i(a,e,t)}function VC(n,e,t,i,s,r,{o:{nextSibling:o,parentNode:a,querySelector:c,insert:l,createText:h}},u){function d(g,v){let b=v;for(;b;){if(b&&b.nodeType===8){if(b.data==="teleport start anchor")e.targetStart=b;else if(b.data==="teleport anchor"){e.targetAnchor=b,g._lpa=e.targetAnchor&&o(e.targetAnchor);break}}b=o(b)}}function f(g,v){v.anchor=u(o(g),v,a(g),t,i,s,r)}const m=e.target=Cm(e.props,c),p=wo(e.props);if(m){const g=m._lpa||m.firstChild;e.shapeFlag&16&&(p?(f(n,e),d(m,g),e.targetAnchor||Mm(m,e,h,l,a(n)===m?n:null)):(e.anchor=o(n),d(m,g),e.targetAnchor||Mm(m,e,h,l),u(g&&o(g),e,m,t,i,s,r))),gl(e,p)}else p&&e.shapeFlag&16&&(f(n,e),e.targetStart=n,e.targetAnchor=o(n));return e.anchor&&o(e.anchor)}const ux=UC;function gl(n,e){const t=n.ctx;if(t&&t.ut){let i,s;for(e?(i=n.el,s=n.anchor):(i=n.targetStart,s=n.targetAnchor);i&&i!==s;)i.nodeType===1&&i.setAttribute("data-v-owner",t.uid),i=i.nextSibling;t.ut()}}function Mm(n,e,t,i,s=null){const r=e.targetStart=t(""),o=e.targetAnchor=t("");return r[hx]=o,n&&(i(r,n,s),i(o,n,s)),o}const In=Symbol("_leaveCb"),al=Symbol("_enterCb");function XC(){const n={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Sn(()=>{n.isMounted=!0}),eo(()=>{n.isUnmounting=!0}),n}const En=[Function,Array],dx={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:En,onEnter:En,onAfterEnter:En,onEnterCancelled:En,onBeforeLeave:En,onLeave:En,onAfterLeave:En,onLeaveCancelled:En,onBeforeAppear:En,onAppear:En,onAfterAppear:En,onAppearCancelled:En},fx=n=>{const e=n.subTree;return e.component?fx(e.component):e},YC={name:"BaseTransition",props:dx,setup(n,{slots:e}){const t=Ku(),i=XC();return()=>{const s=e.default&&gx(e.default(),!0),r=s&&s.length?mx(s):t.subTree?_e():void 0;if(!r)return;const o=Mt(n),{mode:a}=o;if(i.isLeaving)return Md(r);const c=Dh(r);if(!c)return Md(r);let l=Am(c,o,i,t,u=>l=u);c.type!==ji&&Gl(c,l);let h=t.subTree&&Dh(t.subTree);if(h&&h.type!==ji&&!So(h,c)&&fx(t).type!==ji){let u=Am(h,o,i,t);if(Gl(h,u),a==="out-in"&&c.type!==ji)return i.isLeaving=!0,u.afterLeave=()=>{i.isLeaving=!1,t.job.flags&8||t.update(),delete u.afterLeave,h=void 0},Md(r);a==="in-out"&&c.type!==ji?u.delayLeave=(d,f,m)=>{const p=px(i,h);p[String(h.key)]=h,d[In]=()=>{f(),d[In]=void 0,delete l.delayedLeave,h=void 0},l.delayedLeave=()=>{m(),delete l.delayedLeave,h=void 0}}:h=void 0}else h&&(h=void 0);return r}}};function mx(n){let e=n[0];if(n.length>1){for(const t of n)if(t.type!==ji){e=t;break}}return e}const GC=YC;function px(n,e){const{leavingVNodes:t}=n;let i=t.get(e.type);return i||(i=Object.create(null),t.set(e.type,i)),i}function Am(n,e,t,i,s){const{appear:r,mode:o,persisted:a=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:h,onEnterCancelled:u,onBeforeLeave:d,onLeave:f,onAfterLeave:m,onLeaveCancelled:p,onBeforeAppear:g,onAppear:v,onAfterAppear:b,onAppearCancelled:y}=e,x=String(n.key),_=px(t,n),E=(M,P)=>{M&&On(M,i,9,P)},S=(M,P)=>{const A=P[1];E(M,P),et(M)?M.every(R=>R.length<=1)&&A():M.length<=1&&A()},C={mode:o,persisted:a,beforeEnter(M){let P=c;if(!t.isMounted)if(r)P=g||c;else return;M[In]&&M[In](!0);const A=_[x];A&&So(n,A)&&A.el[In]&&A.el[In](),E(P,[M])},enter(M){if(_[x]===n)return;let P=l,A=h,R=u;if(!t.isMounted)if(r)P=v||l,A=b||h,R=y||u;else return;let B=!1;M[al]=W=>{B||(B=!0,W?E(R,[M]):E(A,[M]),C.delayedLeave&&C.delayedLeave(),M[al]=void 0)};const O=M[al].bind(null,!1);P?S(P,[M,O]):O()},leave(M,P){const A=String(n.key);if(M[al]&&M[al](!0),t.isUnmounting)return P();E(d,[M]);let R=!1;M[In]=O=>{R||(R=!0,P(),O?E(p,[M]):E(m,[M]),M[In]=void 0,_[A]===n&&delete _[A])};const B=M[In].bind(null,!1);_[A]=n,f?S(f,[M,B]):B()},clone(M){const P=Am(M,e,t,i,s);return s&&s(P),P}};return C}function Md(n){if(Wu(n))return n=Kr(n),n.children=null,n}function Dh(n){if(!Wu(n))return ju(n.type)&&n.children?mx(n.children):n;if(n.component)return n.component.subTree;const{shapeFlag:e,children:t}=n;if(t){if(e&16)return t[0];if(e&32&&ht(t.default))return t.default()}}function Gl(n,e){if(n.shapeFlag&6&&n.component){n.transition=e;const t=n.component.subTree;Gl(ju(t.type)&&Dh(t)||t,e)}else n.shapeFlag&128?(n.ssContent.transition=e.clone(n.ssContent),n.ssFallback.transition=e.clone(n.ssFallback)):n.transition=e}function gx(n,e=!1,t){let i=[],s=0;for(let r=0;r<n.length;r++){let o=n[r];const a=t==null?o.key:String(t)+String(o.key!=null?o.key:r);o.type===Me?(o.patchFlag&128&&s++,i=i.concat(gx(o.children,e,a))):(e||o.type!==ji)&&i.push(a!=null?Kr(o,{key:a}):o)}if(s>1)for(let r=0;r<i.length;r++)i[r].patchFlag=-2;return i}function qt(n,e){return ht(n)?Ci({name:n.name},e,{setup:n}):n}function vx(n){n.ids=[n.ids[0]+n.ids[2]+++"-",0,0]}function g0(n,e){let t;return!!((t=Object.getOwnPropertyDescriptor(n,e))&&!t.configurable)}const Bh=new WeakMap;function Pl(n,e,t,i,s=!1){if(et(n)){n.forEach((p,g)=>Pl(p,e&&(et(e)?e[g]:e),t,i,s));return}if(Aa(i)&&!s){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&Pl(n,e,t,i.component.subTree);return}const r=i.shapeFlag&4?Ju(i.component):i.el,o=s?null:r,{i:a,r:c}=n,l=e&&e.r,h=a.refs===Xt?a.refs={}:a.refs,u=a.setupState,d=Mt(u),f=u===Xt?P1:p=>g0(h,p)?!1:Ot(d,p),m=(p,g)=>!(g&&g0(h,g));if(l!=null&&l!==c){if(v0(e),ii(l))h[l]=null,f(l)&&(u[l]=null);else if(Qt(l)){const p=e;m(l,p.k)&&(l.value=null),p.k&&(h[p.k]=null)}}if(ht(c))dc(c,a,12,[o,h]);else{const p=ii(c),g=Qt(c);if(p||g){const v=()=>{if(n.f){const b=p?f(c)?u[c]:h[c]:m()||!n.k?c.value:h[n.k];if(s)et(b)&&rg(b,r);else if(et(b))b.includes(r)||b.push(r);else if(p)h[c]=[r],f(c)&&(u[c]=h[c]);else{const y=[r];m(c,n.k)&&(c.value=y),n.k&&(h[n.k]=y)}}else p?(h[c]=o,f(c)&&(u[c]=o)):g&&(m(c,n.k)&&(c.value=o),n.k&&(h[n.k]=o))};if(o){const b=()=>{v(),Bh.delete(n)};b.id=-1,Bh.set(n,b),qi(b,t)}else v0(n),v()}}}function v0(n){const e=Bh.get(n);e&&(e.flags|=8,Bh.delete(n))}Uu().requestIdleCallback;Uu().cancelIdleCallback;const Aa=n=>!!n.type.__asyncLoader,Wu=n=>n.type.__isKeepAlive;function HC(n,e){yx(n,"a",e)}function jC(n,e){yx(n,"da",e)}function yx(n,e,t=Qi){const i=n.__wdc||(n.__wdc=()=>{let s=t;for(;s;){if(s.isDeactivated)return;s=s.parent}return n()});if(zu(e,i,t),t){let s=t.parent;for(;s&&s.parent;)Wu(s.parent.vnode)&&WC(i,e,t,s),s=s.parent}}function WC(n,e,t,i){const s=zu(e,n,i,!0);Za(()=>{rg(i[e],s)},t)}function zu(n,e,t=Qi,i=!1){if(t){const s=t[n]||(t[n]=[]),r=e.__weh||(e.__weh=(...o)=>{hr();const a=mc(t),c=On(e,t,n,o);return a(),ur(),c});return i?s.unshift(r):s.push(r),r}}const vr=n=>(e,t=Qi)=>{(!zl||n==="sp")&&zu(n,(...i)=>e(...i),t)},zC=vr("bm"),Sn=vr("m"),qC=vr("bu"),KC=vr("u"),eo=vr("bum"),Za=vr("um"),JC=vr("sp"),ZC=vr("rtg"),QC=vr("rtc");function eM(n,e=Qi){zu("ec",n,e)}const tM=Symbol.for("v-ndc");function It(n,e,t,i){let s;const r=t,o=et(n);if(o||ii(n)){const a=o&&or(n);let c=!1,l=!1;a&&(c=!xn(n),l=dr(n),n=Vu(n)),s=new Array(n.length);for(let h=0,u=n.length;h<u;h++)s[h]=e(c?l?Ba(ts(n[h])):ts(n[h]):n[h],h,void 0,r)}else if(typeof n=="number"){s=new Array(n);for(let a=0;a<n;a++)s[a]=e(a+1,a,void 0,r)}else if($t(n))if(n[Symbol.iterator])s=Array.from(n,(a,c)=>e(a,c,void 0,r));else{const a=Object.keys(n);s=new Array(a.length);for(let c=0,l=a.length;c<l;c++){const h=a[c];s[c]=e(n[h],h,c,r)}}else s=[];return s}function iM(n,e,t,i,s,r){if(t==null&&(t={}),Wi.ce||Wi.parent&&Aa(Wi.parent)&&Wi.parent.ce){const l=t,h=Object.keys(l).length>0;return Q(),Pt(Me,null,[Te("slot",l,i)],h?-2:64)}let o=n[e];o&&o._c&&(o._d=!1);const a=ar.length;Q();let c;try{const l=o&&bx(o(t)),h=t.key||r||l&&l.key;c=Pt(Me,{key:(h&&!wn(h)?h:`_${e}`)+(!l&&i?"_fb":"")},l||(i?i():[]),l&&n._===1?64:-2)}catch(l){for(let h=ar.length;h>a;h--)xg();throw l}finally{o&&o._c&&(o._d=!0)}return c}function bx(n){return n.some(e=>jl(e)?!(e.type===ji||e.type===Me&&!bx(e.children)):!0)?n:null}const Im=n=>n?Dx(n)?Ju(n):Im(n.parent):null,Rl=Ci(Object.create(null),{$:n=>n,$el:n=>n.vnode.el,$data:n=>n.data,$props:n=>n.props,$attrs:n=>n.attrs,$slots:n=>n.slots,$refs:n=>n.refs,$parent:n=>Im(n.parent),$root:n=>Im(n.root),$host:n=>n.ce,$emit:n=>n.emit,$options:n=>wx(n),$forceUpdate:n=>n.f||(n.f=()=>{pg(n.update)}),$nextTick:n=>n.n||(n.n=Gu.bind(n.proxy)),$watch:n=>DC.bind(n)}),Ad=(n,e)=>n!==Xt&&!n.__isScriptSetup&&Ot(n,e),nM={get({_:n},e){if(e==="__v_skip")return!0;const{ctx:t,setupState:i,data:s,props:r,accessCache:o,type:a,appContext:c}=n;if(e[0]!=="$"){const d=o[e];if(d!==void 0)switch(d){case 1:return i[e];case 2:return s[e];case 4:return t[e];case 3:return r[e]}else{if(Ad(i,e))return o[e]=1,i[e];if(s!==Xt&&Ot(s,e))return o[e]=2,s[e];if(Ot(r,e))return o[e]=3,r[e];if(t!==Xt&&Ot(t,e))return o[e]=4,t[e];Pm&&(o[e]=0)}}const l=Rl[e];let h,u;if(l)return e==="$attrs"&&Gi(n.attrs,"get",""),l(n);if((h=a.__cssModules)&&(h=h[e]))return h;if(t!==Xt&&Ot(t,e))return o[e]=4,t[e];if(u=c.config.globalProperties,Ot(u,e))return u[e]},set({_:n},e,t){const{data:i,setupState:s,ctx:r}=n;return Ad(s,e)?(s[e]=t,!0):i!==Xt&&Ot(i,e)?(i[e]=t,!0):Ot(n.props,e)||e[0]==="$"&&e.slice(1)in n?!1:(r[e]=t,!0)},has({_:{data:n,setupState:e,accessCache:t,ctx:i,appContext:s,props:r,type:o}},a){let c;return!!(t[a]||n!==Xt&&a[0]!=="$"&&Ot(n,a)||Ad(e,a)||Ot(r,a)||Ot(i,a)||Ot(Rl,a)||Ot(s.config.globalProperties,a)||(c=o.__cssModules)&&c[a])},defineProperty(n,e,t){return t.get!=null?n._.accessCache[e]=0:Ot(t,"value")&&this.set(n,e,t.value,null),Reflect.defineProperty(n,e,t)}};function y0(n){return et(n)?n.reduce((e,t)=>(e[t]=null,e),{}):n}let Pm=!0;function sM(n){const e=wx(n),t=n.proxy,i=n.ctx;Pm=!1,e.beforeCreate&&b0(e.beforeCreate,n,"bc");const{data:s,computed:r,methods:o,watch:a,provide:c,inject:l,created:h,beforeMount:u,mounted:d,beforeUpdate:f,updated:m,activated:p,deactivated:g,beforeDestroy:v,beforeUnmount:b,destroyed:y,unmounted:x,render:_,renderTracked:E,renderTriggered:S,errorCaptured:C,serverPrefetch:M,expose:P,inheritAttrs:A,components:R,directives:B,filters:O}=e;if(l&&rM(l,i,null),o)for(const Y in o){const L=o[Y];ht(L)&&(i[Y]=L.bind(t))}if(s){const Y=s.call(t,t);$t(Y)&&(n.data=Go(Y))}if(Pm=!0,r)for(const Y in r){const L=r[Y],N=ht(L)?L.bind(t,t):ht(L.get)?L.get.bind(t,t):Cs,F=!ht(L)&&ht(L.set)?L.set.bind(t):Cs,D=Fe({get:N,set:F});Object.defineProperty(i,Y,{enumerable:!0,configurable:!0,get:()=>D.value,set:X=>D.value=X})}if(a)for(const Y in a)xx(a[Y],i,t,Y);if(c){const Y=ht(c)?c.call(t):c;Reflect.ownKeys(Y).forEach(L=>{lx(L,Y[L])})}h&&b0(h,n,"c");function V(Y,L){et(L)?L.forEach(N=>Y(N.bind(t))):L&&Y(L.bind(t))}if(V(zC,u),V(Sn,d),V(qC,f),V(KC,m),V(HC,p),V(jC,g),V(eM,C),V(QC,E),V(ZC,S),V(eo,b),V(Za,x),V(JC,M),et(P))if(P.length){const Y=n.exposed||(n.exposed={});P.forEach(L=>{Object.defineProperty(Y,L,{get:()=>t[L],set:N=>t[L]=N,enumerable:!0})})}else n.exposed||(n.exposed={});_&&n.render===Cs&&(n.render=_),A!=null&&(n.inheritAttrs=A),R&&(n.components=R),B&&(n.directives=B),M&&vx(n)}function rM(n,e,t=Cs){et(n)&&(n=Rm(n));for(const i in n){const s=n[i];let r;$t(s)?"default"in s?r=ko(s.from||i,s.default,!0):r=ko(s.from||i):r=ko(s),Qt(r)?Object.defineProperty(e,i,{enumerable:!0,configurable:!0,get:()=>r.value,set:o=>r.value=o}):e[i]=r}}function b0(n,e,t){On(et(n)?n.map(i=>i.bind(e.proxy)):n.bind(e.proxy),e,t)}function xx(n,e,t,i){let s=i.includes(".")?cx(t,i):()=>t[i];if(ii(n)){const r=e[n];ht(r)&&ei(s,r)}else if(ht(n))ei(s,n.bind(t));else if($t(n))if(et(n))n.forEach(r=>xx(r,e,t,i));else{const r=ht(n.handler)?n.handler.bind(t):e[n.handler];ht(r)&&ei(s,r,n)}}function wx(n){const e=n.type,{mixins:t,extends:i}=e,{mixins:s,optionsCache:r,config:{optionMergeStrategies:o}}=n.appContext,a=r.get(e);let c;return a?c=a:!s.length&&!t&&!i?c=e:(c={},s.length&&s.forEach(l=>Uh(c,l,o,!0)),Uh(c,e,o)),$t(e)&&r.set(e,c),c}function Uh(n,e,t,i=!1){const{mixins:s,extends:r}=e;r&&Uh(n,r,t,!0),s&&s.forEach(o=>Uh(n,o,t,!0));for(const o in e)if(!(i&&o==="expose")){const a=oM[o]||t&&t[o];n[o]=a?a(n[o],e[o]):e[o]}return n}const oM={data:x0,props:w0,emits:w0,methods:vl,computed:vl,beforeCreate:zi,created:zi,beforeMount:zi,mounted:zi,beforeUpdate:zi,updated:zi,beforeDestroy:zi,beforeUnmount:zi,destroyed:zi,unmounted:zi,activated:zi,deactivated:zi,errorCaptured:zi,serverPrefetch:zi,components:vl,directives:vl,watch:lM,provide:x0,inject:aM};function x0(n,e){return e?n?function(){return Ci(ht(n)?n.call(this,this):n,ht(e)?e.call(this,this):e)}:e:n}function aM(n,e){return vl(Rm(n),Rm(e))}function Rm(n){if(et(n)){const e={};for(let t=0;t<n.length;t++)e[n[t]]=n[t];return e}return n}function zi(n,e){return n?[...new Set([].concat(n,e))]:e}function vl(n,e){return n?Ci(Object.create(null),n,e):e}function w0(n,e){return n?et(n)&&et(e)?[...new Set([...n,...e])]:Ci(Object.create(null),y0(n),y0(e??{})):e}function lM(n,e){if(!n)return e;if(!e)return n;const t=Ci(Object.create(null),n);for(const i in e)t[i]=zi(n[i],e[i]);return t}function Sx(){return{app:null,config:{isNativeTag:P1,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let cM=0;function hM(n,e){return function(i,s=null){ht(i)||(i=Ci({},i)),s!=null&&!$t(s)&&(s=null);const r=Sx(),o=new WeakSet,a=[];let c=!1;const l=r.app={_uid:cM++,_component:i,_props:s,_container:null,_context:r,_instance:null,version:VM,get config(){return r.config},set config(h){},use(h,...u){return o.has(h)||(h&&ht(h.install)?(o.add(h),h.install(l,...u)):ht(h)&&(o.add(h),h(l,...u))),l},mixin(h){return r.mixins.includes(h)||r.mixins.push(h),l},component(h,u){return u?(r.components[h]=u,l):r.components[h]},directive(h,u){return u?(r.directives[h]=u,l):r.directives[h]},mount(h,u,d){if(!c){const f=l._ceVNode||Te(i,s);return f.appContext=r,d===!0?d="svg":d===!1&&(d=void 0),n(f,h,d),c=!0,l._container=h,h.__vue_app__=l,Ju(f.component)}},onUnmount(h){a.push(h)},unmount(){c&&(On(a,l._instance,16),n(null,l._container),delete l._container.__vue_app__)},provide(h,u){return r.provides[h]=u,l},runWithContext(h){const u=Fo;Fo=l;try{return h()}finally{Fo=u}}};return l}}let Fo=null;const uM=(n,e)=>e==="modelValue"||e==="model-value"?n.modelModifiers:n[`${e}Modifiers`]||n[`${qn(e)}Modifiers`]||n[`${Qr(e)}Modifiers`];function dM(n,e,...t){if(n.isUnmounted)return;const i=n.vnode.props||Xt;let s=t;const r=e.startsWith("update:"),o=r&&uM(i,e.slice(7));o&&(o.trim&&(s=t.map(h=>ii(h)?h.trim():h)),o.number&&(s=t.map(Bu)));let a,c=i[a=Sd(e)]||i[a=Sd(qn(e))];!c&&r&&(c=i[a=Sd(Qr(e))]),c&&On(c,n,6,s);const l=i[a+"Once"];if(l){if(!n.emitted)n.emitted={};else if(n.emitted[a])return;n.emitted[a]=!0,On(l,n,6,s)}}const fM=new WeakMap;function _x(n,e,t=!1){const i=t?fM:e.emitsCache,s=i.get(n);if(s!==void 0)return s;const r=n.emits;let o={},a=!1;if(!ht(n)){const c=l=>{const h=_x(l,e,!0);h&&(a=!0,Ci(o,h))};!t&&e.mixins.length&&e.mixins.forEach(c),n.extends&&c(n.extends),n.mixins&&n.mixins.forEach(c)}return!r&&!a?($t(n)&&i.set(n,null),null):(et(r)?r.forEach(c=>o[c]=null):Ci(o,r),$t(n)&&i.set(n,o),o)}function qu(n,e){return!n||!Ou(e)?!1:(e=e.slice(2),e=e==="Once"?e:e.replace(/Once$/,""),Ot(n,e[0].toLowerCase()+e.slice(1))||Ot(n,Qr(e))||Ot(n,e))}function S0(n){const{type:e,vnode:t,proxy:i,withProxy:s,propsOptions:[r],slots:o,attrs:a,emit:c,render:l,renderCache:h,props:u,data:d,setupState:f,ctx:m,inheritAttrs:p}=n,g=Nh(n);let v,b;try{if(t.shapeFlag&4){const x=s||i,_=x;v=vs(l.call(_,x,h,u,f,d,m)),b=a}else{const x=e;v=vs(x.length>1?x(u,{attrs:a,slots:o,emit:c}):x(u,null)),b=e.props?a:mM(a)}}catch(x){ar.length=0,Yu(x,n,1),v=Te(ji)}let y=v;if(b&&p!==!1){const x=Object.keys(b),{shapeFlag:_}=y;x.length&&_&7&&(r&&x.some($u)&&(b=pM(b,r)),y=Kr(y,b,!1,!0))}if(t.dirs&&(y=Kr(y,null,!1,!0),y.dirs=y.dirs?y.dirs.concat(t.dirs):t.dirs),t.transition){const x=ju(y.type)&&Dh(y)||y;Gl(x,t.transition)}return v=y,Nh(g),v}const mM=n=>{let e;for(const t in n)(t==="class"||t==="style"||Ou(t))&&((e||(e={}))[t]=n[t]);return e},pM=(n,e)=>{const t={};for(const i in n)(!$u(i)||!(i.slice(9)in e))&&(t[i]=n[i]);return t};function gM(n,e,t){const{props:i,children:s,component:r}=n,{props:o,children:a,patchFlag:c}=e,l=r.emitsOptions;if(e.dirs||e.transition)return!0;if(t&&c>=0){if(c&1024)return!0;if(c&16)return i?_0(i,o,l):!!o;if(c&8){const h=e.dynamicProps;for(let u=0;u<h.length;u++){const d=h[u];if(Tx(o,i,d)&&!qu(l,d))return!0}}}else return(s||a)&&(!a||!a.$stable)?!0:i===o?!1:i?o?_0(i,o,l):!0:!!o;return!1}function _0(n,e,t){const i=Object.keys(e);if(i.length!==Object.keys(n).length)return!0;for(let s=0;s<i.length;s++){const r=i[s];if(Tx(e,n,r)&&!qu(t,r))return!0}return!1}function Tx(n,e,t){const i=n[t],s=e[t];return t==="style"&&$t(i)&&$t(s)?!Ja(i,s):i!==s}function vM({vnode:n,parent:e,suspense:t},i){for(;e;){const s=e.subTree;if(s.suspense&&s.suspense.activeBranch===n&&(s.suspense.vnode.el=s.el=i,n=s),s===n)(n=e.vnode).el=i,e=e.parent;else break}t&&t.activeBranch===n&&(t.vnode.el=i)}const Ex={},Cx=()=>Object.create(Ex),Mx=n=>Object.getPrototypeOf(n)===Ex;function yM(n,e,t,i=!1){const s={},r=Cx();n.propsDefaults=Object.create(null),Ax(n,e,s,r);for(const o in n.propsOptions[0])o in s||(s[o]=void 0);t?n.props=i?s:wC(s):n.type.props?n.props=s:n.props=r,n.attrs=r}function bM(n,e,t,i){const{props:s,attrs:r,vnode:{patchFlag:o}}=n,a=Mt(s),[c]=n.propsOptions;let l=!1;if((i||o>0)&&!(o&16)){if(o&8){const h=n.vnode.dynamicProps;for(let u=0;u<h.length;u++){let d=h[u];if(qu(n.emitsOptions,d))continue;const f=e[d];if(c)if(Ot(r,d))f!==r[d]&&(r[d]=f,l=!0);else{const m=qn(d);s[m]=km(c,a,m,f,n,!1)}else f!==r[d]&&(r[d]=f,l=!0)}}}else{Ax(n,e,s,r)&&(l=!0);let h;for(const u in a)(!e||!Ot(e,u)&&((h=Qr(u))===u||!Ot(e,h)))&&(c?t&&(t[u]!==void 0||t[h]!==void 0)&&(s[u]=km(c,a,u,void 0,n,!0)):delete s[u]);if(r!==a)for(const u in r)(!e||!Ot(e,u))&&(delete r[u],l=!0)}l&&Ws(n.attrs,"set","")}function Ax(n,e,t,i){const[s,r]=n.propsOptions;let o=!1,a;if(e)for(let c in e){if(Ml(c))continue;const l=e[c];let h;s&&Ot(s,h=qn(c))?!r||!r.includes(h)?t[h]=l:(a||(a={}))[h]=l:qu(n.emitsOptions,c)||(!(c in i)||l!==i[c])&&(i[c]=l,o=!0)}if(r){const c=Mt(t),l=a||Xt;for(let h=0;h<r.length;h++){const u=r[h];t[u]=km(s,c,u,l[u],n,!Ot(l,u))}}return o}function km(n,e,t,i,s,r){const o=n[t];if(o!=null){const a=Ot(o,"default");if(a&&i===void 0){const c=o.default;if(o.type!==Function&&!o.skipFactory&&ht(c)){const{propsDefaults:l}=s;if(t in l)i=l[t];else{const h=mc(s);i=l[t]=c.call(null,e),h()}}else i=c;s.ce&&s.ce._setProp(t,i)}o[0]&&(r&&!a?i=!1:o[1]&&(i===""||i===Qr(t))&&(i=!0))}return i}const xM=new WeakMap;function Ix(n,e,t=!1){const i=t?xM:e.propsCache,s=i.get(n);if(s)return s;const r=n.props,o={},a=[];let c=!1;if(!ht(n)){const h=u=>{c=!0;const[d,f]=Ix(u,e,!0);Ci(o,d),f&&a.push(...f)};!t&&e.mixins.length&&e.mixins.forEach(h),n.extends&&h(n.extends),n.mixins&&n.mixins.forEach(h)}if(!r&&!c)return $t(n)&&i.set(n,Ea),Ea;if(et(r))for(let h=0;h<r.length;h++){const u=qn(r[h]);T0(u)&&(o[u]=Xt)}else if(r)for(const h in r){const u=qn(h);if(T0(u)){const d=r[h],f=o[u]=et(d)||ht(d)?{type:d}:Ci({},d),m=f.type;let p=!1,g=!0;if(et(m))for(let v=0;v<m.length;++v){const b=m[v],y=ht(b)&&b.name;if(y==="Boolean"){p=!0;break}else y==="String"&&(g=!1)}else p=ht(m)&&m.name==="Boolean";f[0]=p,f[1]=g,(p||Ot(f,"default"))&&a.push(u)}}const l=[o,a];return $t(n)&&i.set(n,l),l}function T0(n){return n[0]!=="$"&&!Ml(n)}const vg=n=>n==="_"||n==="_ctx"||n==="$stable",yg=n=>et(n)?n.map(vs):[vs(n)],wM=(n,e,t)=>{if(e._n)return e;const i=Hu((...s)=>yg(e(...s)),t);return i._c=!1,i},Px=(n,e,t)=>{const i=n._ctx;for(const s in n){if(vg(s))continue;const r=n[s];if(ht(r))e[s]=wM(s,r,i);else if(r!=null){const o=yg(r);e[s]=()=>o}}},Rx=(n,e)=>{const t=yg(e);n.slots.default=()=>t},kx=(n,e,t)=>{for(const i in e)(t||!vg(i))&&(n[i]=e[i])},SM=(n,e,t)=>{const i=n.slots=Cx();if(n.vnode.shapeFlag&32){const s=e._;s?(kx(i,e,t),t&&O1(i,"_",s,!0)):Px(e,i)}else e&&Rx(n,e)},_M=(n,e,t)=>{const{vnode:i,slots:s}=n;let r=!0,o=Xt;if(i.shapeFlag&32){const a=e._;a?t&&a===1?r=!1:kx(s,e,t):(r=!e.$stable,Px(e,s)),o=e}else e&&(Rx(n,e),o={default:1});if(r)for(const a in s)!vg(a)&&o[a]==null&&delete s[a]},qi=AM;function TM(n){return EM(n)}function EM(n,e){const t=Uu();t.__VUE__=!0;const{insert:i,remove:s,patchProp:r,createElement:o,createText:a,createComment:c,setText:l,setElementText:h,parentNode:u,nextSibling:d,setScopeId:f=Cs,insertStaticContent:m}=n,p=(q,Z,se,H=null,j=null,$=null,U=void 0,z=null,ee=!!Z.dynamicChildren)=>{if(q===Z)return;q&&!So(q,Z)&&(H=le(q),X(q,j,$,!0),q=null),Z.patchFlag===-2&&(ee=!1,Z.dynamicChildren=null);const{type:ne,ref:ue,shapeFlag:xe}=Z;switch(ne){case fc:g(q,Z,se,H);break;case ji:v(q,Z,se,H);break;case vh:q==null&&b(Z,se,H,U);break;case Me:R(q,Z,se,H,j,$,U,z,ee);break;default:xe&1?_(q,Z,se,H,j,$,U,z,ee):xe&6?B(q,Z,se,H,j,$,U,z,ee):(xe&64||xe&128)&&ne.process(q,Z,se,H,j,$,U,z,ee,fe)}ue!=null&&j?Pl(ue,q&&q.ref,$,Z||q,!Z):ue==null&&q&&q.ref!=null&&Pl(q.ref,null,$,q,!0)},g=(q,Z,se,H)=>{if(q==null)i(Z.el=a(Z.children),se,H);else{const j=Z.el=q.el;Z.children!==q.children&&l(j,Z.children)}},v=(q,Z,se,H)=>{q==null?i(Z.el=c(Z.children||""),se,H):Z.el=q.el},b=(q,Z,se,H)=>{[q.el,q.anchor]=m(q.children,Z,se,H,q.el,q.anchor)},y=({el:q,anchor:Z},se,H)=>{let j;for(;q&&q!==Z;)j=d(q),i(q,se,H),q=j;i(Z,se,H)},x=({el:q,anchor:Z})=>{let se;for(;q&&q!==Z;)se=d(q),s(q),q=se;s(Z)},_=(q,Z,se,H,j,$,U,z,ee)=>{if(Z.type==="svg"?U="svg":Z.type==="math"&&(U="mathml"),q==null)E(Z,se,H,j,$,U,z,ee);else{const ne=q.el&&q.el._isVueCE?q.el:null;try{ne&&ne._beginPatch(),M(q,Z,j,$,U,z,ee)}finally{ne&&ne._endPatch()}}},E=(q,Z,se,H,j,$,U,z)=>{let ee,ne;const{props:ue,shapeFlag:xe,transition:be,dirs:Ne}=q;if(ee=q.el=o(q.type,$,ue&&ue.is,ue),xe&8?h(ee,q.children):xe&16&&C(q.children,ee,null,H,j,Id(q,$),U,z),Ne&&ao(q,null,H,"created"),S(ee,q,q.scopeId,U,H),ue){for(const he in ue)he!=="value"&&!Ml(he)&&r(ee,he,null,ue[he],$,H);"value"in ue&&r(ee,"value",null,ue.value,$),(ne=ue.onVnodeBeforeMount)&&ns(ne,H,q)}Ne&&ao(q,null,H,"beforeMount");const Be=CM(j,be);Be&&be.beforeEnter(ee),i(ee,Z,se),((ne=ue&&ue.onVnodeMounted)||Be||Ne)&&qi(()=>{try{ne&&ns(ne,H,q),Be&&be.enter(ee),Ne&&ao(q,null,H,"mounted")}finally{}},j)},S=(q,Z,se,H,j)=>{if(se&&f(q,se),H)for(let $=0;$<H.length;$++)f(q,H[$]);if(j){let $=j.subTree;if(Z===$||Ox($.type)&&($.ssContent===Z||$.ssFallback===Z)){const U=j.vnode;S(q,U,U.scopeId,U.slotScopeIds,j.parent)}}},C=(q,Z,se,H,j,$,U,z,ee=0)=>{for(let ne=ee;ne<q.length;ne++){const ue=q[ne]=z?js(q[ne]):vs(q[ne]);p(null,ue,Z,se,H,j,$,U,z)}},M=(q,Z,se,H,j,$,U)=>{const z=Z.el=q.el;let{patchFlag:ee,dynamicChildren:ne,dirs:ue}=Z;ee|=q.patchFlag&16;const xe=q.props||Xt,be=Z.props||Xt;let Ne;if(se&&lo(se,!1),(Ne=be.onVnodeBeforeUpdate)&&ns(Ne,se,Z,q),ue&&ao(Z,q,se,"beforeUpdate"),se&&lo(se,!0),ne&&(!q.dynamicChildren||q.dynamicChildren.length!==ne.length)&&(ee=0,U=!1,ne=null),(xe.innerHTML&&be.innerHTML==null||xe.textContent&&be.textContent==null)&&h(z,""),ne?P(q.dynamicChildren,ne,z,se,H,Id(Z,j),$):U||L(q,Z,z,null,se,H,Id(Z,j),$,!1),ee>0){if(ee&16)A(z,xe,be,se,j);else if(ee&2&&xe.class!==be.class&&r(z,"class",null,be.class,j),ee&4&&r(z,"style",xe.style,be.style,j),ee&8){const Be=Z.dynamicProps;for(let he=0;he<Be.length;he++){const ge=Be[he],We=xe[ge],Le=be[ge];(Le!==We||ge==="value")&&r(z,ge,We,Le,j,se)}}ee&1&&q.children!==Z.children&&h(z,Z.children)}else!U&&ne==null&&A(z,xe,be,se,j);((Ne=be.onVnodeUpdated)||ue)&&qi(()=>{Ne&&ns(Ne,se,Z,q),ue&&ao(Z,q,se,"updated")},H)},P=(q,Z,se,H,j,$,U)=>{for(let z=0;z<Z.length;z++){const ee=q[z],ne=Z[z],ue=ee.el&&(ee.type===Me||!So(ee,ne)||ee.shapeFlag&198)?u(ee.el):se;p(ee,ne,ue,null,H,j,$,U,!0)}},A=(q,Z,se,H,j)=>{if(Z!==se){if(Z!==Xt)for(const $ in Z)!Ml($)&&!($ in se)&&r(q,$,Z[$],null,j,H);for(const $ in se){if(Ml($))continue;const U=se[$],z=Z[$];U!==z&&$!=="value"&&r(q,$,z,U,j,H)}"value"in se&&r(q,"value",Z.value,se.value,j)}},R=(q,Z,se,H,j,$,U,z,ee)=>{const ne=Z.el=q?q.el:a(""),ue=Z.anchor=q?q.anchor:a("");let{patchFlag:xe,dynamicChildren:be,slotScopeIds:Ne}=Z;Ne&&(z=z?z.concat(Ne):Ne),q==null?(i(ne,se,H),i(ue,se,H),C(Z.children||[],se,ue,j,$,U,z,ee)):xe>0&&xe&64&&be&&q.dynamicChildren&&q.dynamicChildren.length===be.length?(P(q.dynamicChildren,be,se,j,$,U,z),(Z.key!=null||j&&Z===j.subTree)&&bg(q,Z,!0)):L(q,Z,se,ue,j,$,U,z,ee)},B=(q,Z,se,H,j,$,U,z,ee)=>{Z.slotScopeIds=z,q==null?Z.shapeFlag&512?j.ctx.activate(Z,se,H,U,ee):O(Z,se,H,j,$,U,ee):W(q,Z,ee)},O=(q,Z,se,H,j,$,U)=>{const z=q.component=OM(q,H,j);if(Wu(q)&&(z.ctx.renderer=fe),$M(z,!1,U),z.asyncDep){if(j&&j.registerDep(z,V,U),!q.el){const ee=z.subTree=Te(ji);v(null,ee,Z,se),q.placeholder=ee.el}}else V(z,q,Z,se,j,$,U)},W=(q,Z,se)=>{const H=Z.component=q.component;if(gM(q,Z,se))if(H.asyncDep&&!H.asyncResolved){Y(H,Z,se);return}else H.next=Z,H.update();else Z.el=q.el,H.vnode=Z},V=(q,Z,se,H,j,$,U)=>{const z=()=>{if(q.isMounted){let{next:xe,bu:be,u:Ne,parent:Be,vnode:he}=q;{const Ze=Fx(q);if(Ze){xe&&(xe.el=he.el,Y(q,xe,U)),Ze.asyncDep.then(()=>{qi(()=>{q.isUnmounted||ne()},j)});return}}let ge=xe,We;lo(q,!1),xe?(xe.el=he.el,Y(q,xe,U)):xe=he,be&&gh(be),(We=xe.props&&xe.props.onVnodeBeforeUpdate)&&ns(We,Be,xe,he),lo(q,!0);const Le=S0(q),Ce=q.subTree;q.subTree=Le,p(Ce,Le,u(Ce.el),le(Ce),q,j,$),xe.el=Le.el,ge===null&&vM(q,Le.el),Ne&&qi(Ne,j),(We=xe.props&&xe.props.onVnodeUpdated)&&qi(()=>ns(We,Be,xe,he),j)}else{let xe;const{el:be,props:Ne}=Z,{bm:Be,m:he,parent:ge,root:We,type:Le}=q,Ce=Aa(Z);lo(q,!1),Be&&gh(Be),!Ce&&(xe=Ne&&Ne.onVnodeBeforeMount)&&ns(xe,ge,Z),lo(q,!0);{We.ce&&We.ce._hasShadowRoot()&&We.ce._injectChildStyle(Le,q.parent?q.parent.type:void 0);const Ze=q.subTree=S0(q);p(null,Ze,se,H,q,j,$),Z.el=Ze.el}if(he&&qi(he,j),!Ce&&(xe=Ne&&Ne.onVnodeMounted)){const Ze=Z;qi(()=>ns(xe,ge,Ze),j)}(Z.shapeFlag&256||ge&&Aa(ge.vnode)&&ge.vnode.shapeFlag&256)&&q.a&&qi(q.a,j),q.isMounted=!0,Z=se=H=null}};q.scope.on();const ee=q.effect=new V1(z);q.scope.off();const ne=q.update=ee.run.bind(ee),ue=q.job=ee.runIfDirty.bind(ee);ue.i=q,ue.id=q.uid,ee.scheduler=()=>pg(ue),lo(q,!0),ne()},Y=(q,Z,se)=>{Z.component=q;const H=q.vnode.props;q.vnode=Z,q.next=null,bM(q,Z.props,H,se),_M(q,Z.children,se),hr(),f0(q),ur()},L=(q,Z,se,H,j,$,U,z,ee=!1)=>{const ne=q&&q.children,ue=q?q.shapeFlag:0,xe=Z.children,{patchFlag:be,shapeFlag:Ne}=Z;if(be>0){if(be&128){F(ne,xe,se,H,j,$,U,z,ee);return}else if(be&256){N(ne,xe,se,H,j,$,U,z,ee);return}}Ne&8?(ue&16&&oe(ne,j,$),xe!==ne&&h(se,xe)):ue&16?Ne&16?F(ne,xe,se,H,j,$,U,z,ee):oe(ne,j,$,!0):(ue&8&&h(se,""),Ne&16&&C(xe,se,H,j,$,U,z,ee))},N=(q,Z,se,H,j,$,U,z,ee)=>{q=q||Ea,Z=Z||Ea;const ne=q.length,ue=Z.length,xe=Math.min(ne,ue);let be;for(be=0;be<xe;be++){const Ne=Z[be]=ee?js(Z[be]):vs(Z[be]);p(q[be],Ne,se,null,j,$,U,z,ee)}ne>ue?oe(q,j,$,!0,!1,xe):C(Z,se,H,j,$,U,z,ee,xe)},F=(q,Z,se,H,j,$,U,z,ee)=>{let ne=0;const ue=Z.length;let xe=q.length-1,be=ue-1;for(;ne<=xe&&ne<=be;){const Ne=q[ne],Be=Z[ne]=ee?js(Z[ne]):vs(Z[ne]);if(So(Ne,Be))p(Ne,Be,se,null,j,$,U,z,ee);else break;ne++}for(;ne<=xe&&ne<=be;){const Ne=q[xe],Be=Z[be]=ee?js(Z[be]):vs(Z[be]);if(So(Ne,Be))p(Ne,Be,se,null,j,$,U,z,ee);else break;xe--,be--}if(ne>xe){if(ne<=be){const Ne=be+1,Be=Ne<ue?Z[Ne].el:H;for(;ne<=be;)p(null,Z[ne]=ee?js(Z[ne]):vs(Z[ne]),se,Be,j,$,U,z,ee),ne++}}else if(ne>be)for(;ne<=xe;)X(q[ne],j,$,!0),ne++;else{const Ne=ne,Be=ne,he=new Map;for(ne=Be;ne<=be;ne++){const lt=Z[ne]=ee?js(Z[ne]):vs(Z[ne]);lt.key!=null&&he.set(lt.key,ne)}let ge,We=0;const Le=be-Be+1;let Ce=!1,Ze=0;const Ee=new Array(Le);for(ne=0;ne<Le;ne++)Ee[ne]=0;for(ne=Ne;ne<=xe;ne++){const lt=q[ne];if(We>=Le){X(lt,j,$,!0);continue}let ce;if(lt.key!=null)ce=he.get(lt.key);else for(ge=Be;ge<=be;ge++)if(Ee[ge-Be]===0&&So(lt,Z[ge])){ce=ge;break}ce===void 0?X(lt,j,$,!0):(Ee[ce-Be]=ne+1,ce>=Ze?Ze=ce:Ce=!0,p(lt,Z[ce],se,null,j,$,U,z,ee),We++)}const vi=Ce?MM(Ee):Ea;for(ge=vi.length-1,ne=Le-1;ne>=0;ne--){const lt=Be+ne,ce=Z[lt],de=Z[lt+1],nt=lt+1<ue?de.el||Lx(de):H;Ee[ne]===0?p(null,ce,se,nt,j,$,U,z,ee):Ce&&(ge<0||ne!==vi[ge]?D(ce,se,nt,2):ge--)}}},D=(q,Z,se,H,j=null)=>{const{el:$,type:U,transition:z,children:ee,shapeFlag:ne}=q;if(ne&6){D(q.component.subTree,Z,se,H);return}if(ne&128){q.suspense.move(Z,se,H);return}if(ne&64){U.move(q,Z,se,fe);return}if(U===Me){i($,Z,se);for(let xe=0;xe<ee.length;xe++)D(ee[xe],Z,se,H);i(q.anchor,Z,se);return}if(U===vh){y(q,Z,se);return}if(H!==2&&ne&1&&z)if(H===0)z.persisted&&!$[In]?i($,Z,se):(z.beforeEnter($),i($,Z,se),qi(()=>z.enter($),j));else{const{leave:xe,delayLeave:be,afterLeave:Ne}=z,Be=()=>{q.ctx.isUnmounted?s($):i($,Z,se)},he=()=>{const ge=$._isLeaving||!!$[In];$._isLeaving&&$[In](!0),z.persisted&&!ge?Be():xe($,()=>{Be(),Ne&&Ne()})};be?be($,Be,he):he()}else i($,Z,se)},X=(q,Z,se,H=!1,j=!1)=>{const{type:$,props:U,ref:z,children:ee,dynamicChildren:ne,shapeFlag:ue,patchFlag:xe,dirs:be,cacheIndex:Ne,memo:Be}=q;if(xe===-2&&(j=!1),z!=null&&(hr(),Pl(z,null,se,q,!0),ur()),Ne!=null&&(Z.renderCache[Ne]=void 0),ue&256){Z.ctx.deactivate(q);return}const he=ue&1&&be,ge=!Aa(q);let We;if(ge&&(We=U&&U.onVnodeBeforeUnmount)&&ns(We,Z,q),ue&6)J(q.component,se,H);else{if(ue&128){q.suspense.unmount(se,H);return}he&&ao(q,null,Z,"beforeUnmount"),ue&64?q.type.remove(q,Z,se,fe,H):ne&&!ne.hasOnce&&($!==Me||xe>0&&xe&64)?oe(ne,Z,se,!1,!0):($===Me&&xe&384||!j&&ue&16)&&oe(ee,Z,se),H&&G(q)}const Le=Be!=null&&Ne==null;(ge&&(We=U&&U.onVnodeUnmounted)||he||Le)&&qi(()=>{We&&ns(We,Z,q),he&&ao(q,null,Z,"unmounted"),Le&&(q.el=null)},se)},G=q=>{const{type:Z,el:se,anchor:H,transition:j}=q;if(Z===Me){K(se,H);return}if(Z===vh){x(q);return}const $=()=>{s(se),j&&!j.persisted&&j.afterLeave&&j.afterLeave()};if(q.shapeFlag&1&&j&&!j.persisted){const{leave:U,delayLeave:z}=j,ee=()=>U(se,$);z?z(q.el,$,ee):ee()}else $()},K=(q,Z)=>{let se;for(;q!==Z;)se=d(q),s(q),q=se;s(Z)},J=(q,Z,se)=>{const{bum:H,scope:j,job:$,subTree:U,um:z,m:ee,a:ne}=q;E0(ee),E0(ne),H&&gh(H),j.stop(),$&&($.flags|=8,X(U,q,Z,se)),z&&qi(z,Z),qi(()=>{q.isUnmounted=!0},Z)},oe=(q,Z,se,H=!1,j=!1,$=0)=>{for(let U=$;U<q.length;U++)X(q[U],Z,se,H,j)},le=q=>{if(q.shapeFlag&6)return le(q.component.subTree);if(q.shapeFlag&128)return q.suspense.next();const Z=d(q.anchor||q.el),se=Z&&Z[hx];return se?d(se):Z};let ve=!1;const Se=(q,Z,se)=>{let H;q==null?Z._vnode&&(X(Z._vnode,null,null,!0),H=Z._vnode.component):p(Z._vnode||null,q,Z,null,null,null,se),Z._vnode=q,ve||(ve=!0,f0(H),rx(),ve=!1)},fe={p,um:X,m:D,r:G,mt:O,mc:C,pc:L,pbc:P,n:le,o:n};return{render:Se,hydrate:void 0,createApp:hM(Se)}}function Id({type:n,props:e},t){return t==="svg"&&n==="foreignObject"||t==="mathml"&&n==="annotation-xml"&&e&&e.encoding&&e.encoding.includes("html")?void 0:t}function lo({effect:n,job:e},t){t?(n.flags|=32,e.flags|=4):(n.flags&=-33,e.flags&=-5)}function CM(n,e){return(!n||n&&!n.pendingBranch)&&e&&!e.persisted}function bg(n,e,t=!1){const i=n.children,s=e.children;if(et(i)&&et(s))for(let r=0;r<i.length;r++){const o=i[r];let a=s[r];a.shapeFlag&1&&!a.dynamicChildren&&((a.patchFlag<=0||a.patchFlag===32)&&(a=s[r]=js(s[r]),a.el=o.el),!t&&a.patchFlag!==-2&&bg(o,a)),a.type===fc&&(a.patchFlag===-1&&(a=s[r]=js(a)),a.el=o.el),a.type===ji&&!a.el&&(a.el=o.el)}}function MM(n){const e=n.slice(),t=[0];let i,s,r,o,a;const c=n.length;for(i=0;i<c;i++){const l=n[i];if(l!==0){if(s=t[t.length-1],n[s]<l){e[i]=s,t.push(i);continue}for(r=0,o=t.length-1;r<o;)a=r+o>>1,n[t[a]]<l?r=a+1:o=a;l<n[t[r]]&&(r>0&&(e[i]=t[r-1]),t[r]=i)}}for(r=t.length,o=t[r-1];r-- >0;)t[r]=o,o=e[o];return t}function Fx(n){const e=n.subTree.component;if(e)return e.asyncDep&&!e.asyncResolved?e:Fx(e)}function E0(n){if(n)for(let e=0;e<n.length;e++)n[e].flags|=8}function Lx(n){if(n.placeholder)return n.placeholder;const e=n.component;return e?Lx(e.subTree):null}const Ox=n=>n.__isSuspense;function AM(n,e){e&&e.pendingBranch?et(n)?e.effects.push(...n):e.effects.push(n):LC(n)}const Me=Symbol.for("v-fgt"),fc=Symbol.for("v-txt"),ji=Symbol.for("v-cmt"),vh=Symbol.for("v-stc"),ar=[];let bn=null;function Q(n=!1){ar.push(bn=n?null:[])}function xg(){ar.pop(),bn=ar[ar.length-1]||null}let Hl=1;function Vh(n,e=!1){Hl+=n,n<0&&bn&&e&&(bn.hasOnce=!0)}function $x(n){return n.dynamicChildren=Hl>0?bn||Ea:null,xg(),Hl>0&&bn&&bn.push(n),n}function te(n,e,t,i,s,r){return $x(w(n,e,t,i,s,r,!0))}function Pt(n,e,t,i,s){return $x(Te(n,e,t,i,s,!0))}function jl(n){return n?n.__v_isVNode===!0:!1}function So(n,e){return n.type===e.type&&n.key===e.key}const Nx=({key:n})=>n??null,yh=({ref:n,ref_key:e,ref_for:t})=>(typeof n=="number"&&(n=""+n),n!=null?ii(n)||Qt(n)||ht(n)?{i:Wi,r:n,k:e,f:!!t}:n:null);function w(n,e=null,t=null,i=0,s=null,r=n===Me?0:1,o=!1,a=!1){const c={__v_isVNode:!0,__v_skip:!0,type:n,props:e,key:e&&Nx(e),ref:e&&yh(e),scopeId:ax,slotScopeIds:null,children:t,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:r,patchFlag:i,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Wi};return a?(Xh(c,t),r&128&&n.normalize(c)):t&&(c.shapeFlag|=ii(t)?8:16),Hl>0&&!o&&bn&&(c.patchFlag>0||r&6)&&c.patchFlag!==32&&bn.push(c),c}const Te=IM;function IM(n,e=null,t=null,i=0,s=null,r=!1){if((!n||n===tM)&&(n=ji),jl(n)){const a=Kr(n,e,!0);return t&&Xh(a,t),Hl>0&&!r&&bn&&(a.shapeFlag&6?bn[bn.indexOf(n)]=a:bn.push(a)),a.patchFlag=-2,a}if(UM(n)&&(n=n.__vccOpts),e){e=PM(e);let{class:a,style:c}=e;a&&!ii(a)&&(e.class=Pe(a)),$t(c)&&(Xu(c)&&!et(c)&&(c=Ci({},c)),e.style=Vt(c))}const o=ii(n)?1:Ox(n)?128:ju(n)?64:$t(n)?4:ht(n)?2:0;return w(n,e,t,i,s,o,r,!0)}function PM(n){return n?Xu(n)||Mx(n)?Ci({},n):n:null}function Kr(n,e,t=!1,i=!1){const{props:s,ref:r,patchFlag:o,children:a,transition:c}=n,l=e?kM(s||{},e):s,h={__v_isVNode:!0,__v_skip:!0,type:n.type,props:l,key:l&&Nx(l),ref:e&&e.ref?t&&r?et(r)?r.concat(yh(e)):[r,yh(e)]:yh(e):r,scopeId:n.scopeId,slotScopeIds:n.slotScopeIds,children:a,target:n.target,targetStart:n.targetStart,targetAnchor:n.targetAnchor,staticCount:n.staticCount,shapeFlag:n.shapeFlag,patchFlag:e&&n.type!==Me?o===-1?16:o|16:o,dynamicProps:n.dynamicProps,dynamicChildren:n.dynamicChildren,appContext:n.appContext,dirs:n.dirs,transition:c,component:n.component,suspense:n.suspense,ssContent:n.ssContent&&Kr(n.ssContent),ssFallback:n.ssFallback&&Kr(n.ssFallback),placeholder:n.placeholder,el:n.el,anchor:n.anchor,ctx:n.ctx,ce:n.ce};return c&&i&&Gl(h,c.clone(h)),h}function yt(n=" ",e=0){return Te(fc,null,n,e)}function RM(n,e){const t=Te(vh,null,n);return t.staticCount=e,t}function _e(n="",e=!1){return e?(Q(),Pt(ji,null,n)):Te(ji,null,n)}function vs(n){return n==null||typeof n=="boolean"?Te(ji):et(n)?Te(Me,null,n.slice()):jl(n)?js(n):Te(fc,null,String(n))}function js(n){return n.el===null&&n.patchFlag!==-1||n.memo?n:Kr(n)}function Xh(n,e){let t=0;const{shapeFlag:i}=n;if(e==null)e=null;else if(et(e))t=16;else if(typeof e=="object")if(i&65){const s=e.default;s&&(s._c&&(s._d=!1),Xh(n,s()),s._c&&(s._d=!0));return}else{t=32;const s=e._;!s&&!Mx(e)?e._ctx=Wi:s===3&&Wi&&(Wi.slots._===1?e._=1:(e._=2,n.patchFlag|=1024))}else if(ht(e)){if(i&65){Xh(n,{default:e});return}e={default:e,_ctx:Wi},t=32}else e=String(e),i&64?(t=16,e=[yt(e)]):t=8;n.children=e,n.shapeFlag|=t}function kM(...n){const e={};for(let t=0;t<n.length;t++){const i=n[t];for(const s in i)if(s==="class")e.class!==i.class&&(e.class=Pe([e.class,i.class]));else if(s==="style")e.style=Vt([e.style,i.style]);else if(Ou(s)){const r=e[s],o=i[s];o&&r!==o&&!(et(r)&&r.includes(o))?e[s]=r?[].concat(r,o):o:o==null&&r==null&&!$u(s)&&(e[s]=o)}else s!==""&&(e[s]=i[s])}return e}function ns(n,e,t,i=null){On(n,e,7,[t,i])}const FM=Sx();let LM=0;function OM(n,e,t){const i=n.type,s=(e?e.appContext:n.appContext)||FM,r={uid:LM++,vnode:n,type:i,parent:e,appContext:s,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new B1(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:e?e.provides:Object.create(s.provides),ids:e?e.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:Ix(i,s),emitsOptions:_x(i,s),emit:null,emitted:null,propsDefaults:Xt,inheritAttrs:i.inheritAttrs,ctx:Xt,data:Xt,props:Xt,attrs:Xt,slots:Xt,refs:Xt,setupState:Xt,setupContext:null,suspense:t,suspenseId:t?t.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return r.ctx={_:r},r.root=e?e.root:r,r.emit=dM.bind(null,r),n.ce&&n.ce(r),r}let Qi=null;const Ku=()=>Qi||Wi;let Yh,Wl;{const n=Uu(),e=(t,i)=>{let s;return(s=n[t])||(s=n[t]=[]),s.push(i),r=>{s.length>1?s.forEach(o=>o(r)):s[0](r)}};Yh=e("__VUE_INSTANCE_SETTERS__",t=>Qi=t),Wl=e("__VUE_SSR_SETTERS__",t=>zl=t)}const mc=n=>{const e=Qi;return Yh(n),n.scope.on(),()=>{n.scope.off(),Yh(e)}},C0=()=>{Qi&&Qi.scope.off(),Yh(null)};function Dx(n){return n.vnode.shapeFlag&4}let zl=!1;function $M(n,e=!1,t=!1){e&&Wl(e);const{props:i,children:s}=n.vnode,r=Dx(n);yM(n,i,r,e),SM(n,s,t||e);const o=r?NM(n,e):void 0;return e&&Wl(!1),o}function NM(n,e){const t=n.type;n.accessCache=Object.create(null),n.proxy=new Proxy(n.ctx,nM);const{setup:i}=t;if(i){hr();const s=n.setupContext=i.length>1?BM(n):null,r=mc(n),o=dc(i,n,0,[n.props,s]),a=R1(o);if(ur(),r(),(a||n.sp)&&!Aa(n)&&vx(n),a){if(o.then(C0,C0),e)return o.then(c=>{Wl(!0);try{M0(n,c,e)}finally{Wl(!1)}}).catch(c=>{Yu(c,n,0)});n.asyncDep=o}else M0(n,o)}else Bx(n)}function M0(n,e,t){ht(e)?n.type.__ssrInlineRender?n.ssrRender=e:n.render=e:$t(e)&&(n.setupState=ix(e)),Bx(n)}function Bx(n,e,t){const i=n.type;n.render||(n.render=i.render||Cs);{const s=mc(n);hr();try{sM(n)}finally{ur(),s()}}}const DM={get(n,e){return Gi(n,"get",""),n[e]}};function BM(n){const e=t=>{n.exposed=t||{}};return{attrs:new Proxy(n.attrs,DM),slots:n.slots,emit:n.emit,expose:e}}function Ju(n){return n.exposed?n.exposeProxy||(n.exposeProxy=new Proxy(ix(Ur(n.exposed)),{get(e,t){if(t in e)return e[t];if(t in Rl)return Rl[t](n)},has(e,t){return t in e||t in Rl}})):n.proxy}function UM(n){return ht(n)&&"__vccOpts"in n}const Fe=(n,e)=>IC(n,e,zl);function ql(n,e,t){try{Vh(-1);const i=arguments.length;return i===2?$t(e)&&!et(e)?jl(e)?Te(n,null,[e]):Te(n,e):Te(n,null,e):(i>3?t=Array.prototype.slice.call(arguments,2):i===3&&jl(t)&&(t=[t]),Te(n,e,t))}finally{Vh(1)}}const VM="3.5.41";/**
* @vue/runtime-dom v3.5.41
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/let Fm;const A0=typeof window<"u"&&window.trustedTypes;if(A0)try{Fm=A0.createPolicy("vue",{createHTML:n=>n})}catch{}const Ux=Fm?n=>Fm.createHTML(n):n=>n,XM="http://www.w3.org/2000/svg",YM="http://www.w3.org/1998/Math/MathML",Vs=typeof document<"u"?document:null,I0=Vs&&Vs.createElement("template"),GM={insert:(n,e,t)=>{e.insertBefore(n,t||null)},remove:n=>{const e=n.parentNode;e&&e.removeChild(n)},createElement:(n,e,t,i)=>{const s=e==="svg"?Vs.createElementNS(XM,n):e==="mathml"?Vs.createElementNS(YM,n):t?Vs.createElement(n,{is:t}):Vs.createElement(n);return n==="select"&&i&&i.multiple!=null&&s.setAttribute("multiple",i.multiple),s},createText:n=>Vs.createTextNode(n),createComment:n=>Vs.createComment(n),setText:(n,e)=>{n.nodeValue=e},setElementText:(n,e)=>{n.textContent=e},parentNode:n=>n.parentNode,nextSibling:n=>n.nextSibling,querySelector:n=>Vs.querySelector(n),setScopeId(n,e){n.setAttribute(e,"")},insertStaticContent(n,e,t,i,s,r){const o=t?t.previousSibling:e.lastChild;if(s&&(s===r||s.nextSibling))for(;e.insertBefore(s.cloneNode(!0),t),!(s===r||!(s=s.nextSibling)););else{I0.innerHTML=Ux(i==="svg"?`<svg>${n}</svg>`:i==="mathml"?`<math>${n}</math>`:n);const a=I0.content;if(i==="svg"||i==="mathml"){const c=a.firstChild;for(;c.firstChild;)a.appendChild(c.firstChild);a.removeChild(c)}e.insertBefore(a,t)}return[o?o.nextSibling:e.firstChild,t?t.previousSibling:e.lastChild]}},wr="transition",ll="animation",Kl=Symbol("_vtc"),Vx={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},HM=Ci({},dx,Vx),jM=n=>(n.displayName="Transition",n.props=HM,n),WM=jM((n,{slots:e})=>ql(GC,zM(n),e)),co=(n,e=[])=>{et(n)?n.forEach(t=>t(...e)):n&&n(...e)},P0=n=>n?et(n)?n.some(e=>e.length>1):n.length>1:!1;function zM(n){const e={};for(const R in n)R in Vx||(e[R]=n[R]);if(n.css===!1)return e;const{name:t="v",type:i,duration:s,enterFromClass:r=`${t}-enter-from`,enterActiveClass:o=`${t}-enter-active`,enterToClass:a=`${t}-enter-to`,appearFromClass:c=r,appearActiveClass:l=o,appearToClass:h=a,leaveFromClass:u=`${t}-leave-from`,leaveActiveClass:d=`${t}-leave-active`,leaveToClass:f=`${t}-leave-to`}=n,m=qM(s),p=m&&m[0],g=m&&m[1],{onBeforeEnter:v,onEnter:b,onEnterCancelled:y,onLeave:x,onLeaveCancelled:_,onBeforeAppear:E=v,onAppear:S=b,onAppearCancelled:C=y}=e,M=(R,B,O,W)=>{R._enterCancelled=W,ho(R,B?h:a),ho(R,B?l:o),O&&O()},P=(R,B)=>{R._isLeaving=!1,ho(R,u),ho(R,f),ho(R,d),B&&B()},A=R=>(B,O)=>{const W=R?S:b,V=()=>M(B,R,O);co(W,[B,V]),R0(()=>{ho(B,R?c:r),$s(B,R?h:a),P0(W)||k0(B,i,p,V)})};return Ci(e,{onBeforeEnter(R){co(v,[R]),$s(R,r),$s(R,o)},onBeforeAppear(R){co(E,[R]),$s(R,c),$s(R,l)},onEnter:A(!1),onAppear:A(!0),onLeave(R,B){R._isLeaving=!0;const O=()=>P(R,B);$s(R,u),R._enterCancelled?($s(R,d),O0(R)):(O0(R),$s(R,d)),R0(()=>{R._isLeaving&&(ho(R,u),$s(R,f),P0(x)||k0(R,i,g,O))}),co(x,[R,O])},onEnterCancelled(R){M(R,!1,void 0,!0),co(y,[R])},onAppearCancelled(R){M(R,!0,void 0,!0),co(C,[R])},onLeaveCancelled(R){P(R),co(_,[R])}})}function qM(n){if(n==null)return null;if($t(n))return[Pd(n.enter),Pd(n.leave)];{const e=Pd(n);return[e,e]}}function Pd(n){return qE(n)}function $s(n,e){e.split(/\s+/).forEach(t=>t&&n.classList.add(t)),(n[Kl]||(n[Kl]=new Set)).add(e)}function ho(n,e){e.split(/\s+/).forEach(i=>i&&n.classList.remove(i));const t=n[Kl];t&&(t.delete(e),t.size||(n[Kl]=void 0))}function R0(n){requestAnimationFrame(()=>{requestAnimationFrame(n)})}let KM=0;function k0(n,e,t,i){const s=n._endId=++KM,r=()=>{s===n._endId&&i()};if(t!=null)return setTimeout(r,t);const{type:o,timeout:a,propCount:c}=JM(n,e);if(!o)return i();const l=o+"end";let h=0;const u=()=>{n.removeEventListener(l,d),r()},d=f=>{f.target===n&&++h>=c&&u()};setTimeout(()=>{h<c&&u()},a+1),n.addEventListener(l,d)}function JM(n,e){const t=window.getComputedStyle(n),i=m=>(t[m]||"").split(", "),s=i(`${wr}Delay`),r=i(`${wr}Duration`),o=F0(s,r),a=i(`${ll}Delay`),c=i(`${ll}Duration`),l=F0(a,c);let h=null,u=0,d=0;e===wr?o>0&&(h=wr,u=o,d=r.length):e===ll?l>0&&(h=ll,u=l,d=c.length):(u=Math.max(o,l),h=u>0?o>l?wr:ll:null,d=h?h===wr?r.length:c.length:0);const f=h===wr&&/\b(?:transform|all)(?:,|$)/.test(i(`${wr}Property`).toString());return{type:h,timeout:u,propCount:d,hasTransform:f}}function F0(n,e){for(;n.length<e.length;)n=n.concat(n);return Math.max(...e.map((t,i)=>L0(t)+L0(n[i])))}function L0(n){return n==="auto"?0:Number(n.slice(0,-1).replace(",","."))*1e3}function O0(n){return(n?n.ownerDocument:document).body.offsetHeight}function ZM(n,e,t){const i=n[Kl];i&&(e=(e?[e,...i]:[...i]).join(" ")),e==null?n.removeAttribute("class"):t?n.setAttribute("class",e):n.className=e}const Gh=Symbol("_vod"),Xx=Symbol("_vsh"),Fi={name:"show",beforeMount(n,{value:e},{transition:t}){n[Gh]=n.style.display==="none"?"":n.style.display,t&&e?t.beforeEnter(n):cl(n,e)},mounted(n,{value:e},{transition:t}){t&&e&&t.enter(n)},updated(n,{value:e,oldValue:t},{transition:i}){!e!=!t&&(i?e?(i.beforeEnter(n),cl(n,!0),i.enter(n)):i.leave(n,()=>{cl(n,!1)}):cl(n,e))},beforeUnmount(n,{value:e}){cl(n,e)}};function cl(n,e){n.style.display=e?n[Gh]:"none",n[Xx]=!e}const QM=Symbol(""),eA=/(?:^|;)\s*display\s*:/;function tA(n,e,t){const i=n.style,s=ii(t);let r=!1;if(t&&!s){if(e)if(ii(e))for(const o of e.split(";")){const a=o.slice(0,o.indexOf(":")).trim();t[a]==null&&yl(i,a,"")}else for(const o in e)t[o]==null&&yl(i,o,"");for(const o in t){o==="display"&&(r=!0);const a=t[o];a!=null?nA(n,o,!ii(e)&&e?e[o]:void 0,a)||yl(i,o,a):yl(i,o,"")}}else if(s){if(e!==t){const o=i[QM];o&&(t+=";"+o),i.cssText=t,r=eA.test(t)}}else e&&n.removeAttribute("style");Gh in n&&(n[Gh]=r?i.display:"",n[Xx]&&(i.display="none"))}const $0=/\s*!important$/;function yl(n,e,t){if(et(t))t.forEach(i=>yl(n,e,i));else if(t==null&&(t=""),e.startsWith("--"))n.setProperty(e,t);else{const i=iA(n,e);$0.test(t)?n.setProperty(Qr(i),t.replace($0,""),"important"):n[i]=t}}const N0=["Webkit","Moz","ms"],Rd={};function iA(n,e){const t=Rd[e];if(t)return t;let i=qn(e);if(i!=="filter"&&i in n)return Rd[e]=i;i=L1(i);for(let s=0;s<N0.length;s++){const r=N0[s]+i;if(r in n)return Rd[e]=r}return e}function nA(n,e,t,i){return n.tagName==="TEXTAREA"&&(e==="width"||e==="height")&&ii(i)&&t===i}const D0="http://www.w3.org/1999/xlink";function B0(n,e,t,i,s,r=tC(e)){i&&e.startsWith("xlink:")?t==null?n.removeAttributeNS(D0,e.slice(6,e.length)):n.setAttributeNS(D0,e,t):t==null||r&&!$1(t)?n.removeAttribute(e):n.setAttribute(e,r?"":wn(t)?String(t):t)}function U0(n,e,t,i,s){if(e==="innerHTML"||e==="textContent"){t!=null&&(n[e]=e==="innerHTML"?Ux(t):t);return}const r=n.tagName;if(e==="value"&&r!=="PROGRESS"&&!r.includes("-")){const a=r==="OPTION"?n.getAttribute("value")||"":n.value,c=t==null?n.type==="checkbox"?"on":"":String(t);(a!==c||!("_value"in n))&&(n.value=c),t==null&&n.removeAttribute(e),n._value=t;return}let o=!1;if(t===""||t==null){const a=typeof n[e];a==="boolean"?t=$1(t):t==null&&a==="string"?(t="",o=!0):a==="number"&&(t=0,o=!0)}try{n[e]=t}catch{}o&&n.removeAttribute(s||e)}function $r(n,e,t,i){n.addEventListener(e,t,i)}function sA(n,e,t,i){n.removeEventListener(e,t,i)}const V0=Symbol("_vei");function rA(n,e,t,i,s=null){const r=n[V0]||(n[V0]={}),o=r[e];if(i&&o)o.value=i;else{const[a,c]=lA(e);if(i){const l=r[e]=uA(i,s);$r(n,a,l,c)}else o&&(sA(n,a,o,c),r[e]=void 0)}}const oA=/(Once|Passive|Capture)$/,aA=/^on:?(?:Once|Passive|Capture)$/;function lA(n){let e,t;for(;(t=n.match(oA))&&!aA.test(n);)e||(e={}),n=n.slice(0,n.length-t[1].length),e[t[1].toLowerCase()]=!0;return[n[2]===":"?n.slice(3):Qr(n.slice(2)),e]}let kd=0;const cA=Promise.resolve(),hA=()=>kd||(cA.then(()=>kd=0),kd=Date.now());function uA(n,e){const t=i=>{if(!i._vts)i._vts=Date.now();else if(i._vts<=t.attached)return;const s=t.value;if(et(s)){const r=i.stopImmediatePropagation;i.stopImmediatePropagation=()=>{r.call(i),i._stopped=!0};const o=s.slice(),a=[i];for(let c=0;c<o.length&&!i._stopped;c++){const l=o[c];l&&On(l,e,5,a)}}else On(s,e,5,[i])};return t.value=n,t.attached=hA(),t}const X0=n=>n.charCodeAt(0)===111&&n.charCodeAt(1)===110&&n.charCodeAt(2)>96&&n.charCodeAt(2)<123,dA=(n,e,t,i,s,r)=>{const o=s==="svg";e==="class"?ZM(n,i,o):e==="style"?tA(n,t,i):Ou(e)?$u(e)||rA(n,e,t,i,r):(e[0]==="."?(e=e.slice(1),!0):e[0]==="^"?(e=e.slice(1),!1):fA(n,e,i,o))?(U0(n,e,i),!n.tagName.includes("-")&&(e==="value"||e==="checked"||e==="selected")&&B0(n,e,i,o,r,e!=="value")):n._isVueCE&&(mA(n,e)||n._def.__asyncLoader&&(/[A-Z]/.test(e)||!ii(i)))?U0(n,qn(e),i,r,e):(e==="true-value"?n._trueValue=i:e==="false-value"&&(n._falseValue=i),B0(n,e,i,o))};function fA(n,e,t,i){if(i)return!!(e==="innerHTML"||e==="textContent"||e in n&&X0(e)&&ht(t));if(e==="spellcheck"||e==="draggable"||e==="translate"||e==="autocorrect"||e==="sandbox"&&n.tagName==="IFRAME"||e==="form"||e==="list"&&n.tagName==="INPUT"||e==="type"&&n.tagName==="TEXTAREA")return!1;if(e==="width"||e==="height"){const s=n.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return X0(e)&&ii(t)?!1:e in n}function mA(n,e){const t=n._def.props;if(!t)return!1;const i=qn(e);return Array.isArray(t)?t.some(s=>qn(s)===i):Object.keys(t).some(s=>qn(s)===i)}const Ua=n=>{const e=n.props["onUpdate:modelValue"]||!1;return et(e)?t=>gh(e,t):e};function pA(n){n.target.composing=!0}function Y0(n){const e=n.target;e.composing&&(e.composing=!1,e.dispatchEvent(new Event("input")))}const Ss=Symbol("_assign"),kc=Symbol("_initialValue");function Fd(n,e,t){return e&&(n=n.trim()),t&&(n=Bu(n)),n}const Je={created(n,{modifiers:{lazy:e,trim:t,number:i}},s){n.parentNode&&(n.type==="text"?n[kc]=n.defaultValue.replace(/[\r\n]/g,""):n.type==="textarea"&&(n[kc]=n.defaultValue.replace(/\r\n?/g,`
`))),n[Ss]=Ua(s);const r=i||s.props&&s.props.type==="number";$r(n,e?"change":"input",o=>{o.target.composing||n[Ss](Fd(n.value,t,r))}),(t||r)&&$r(n,"change",()=>{n.value=Fd(n.value,t,r)}),e||($r(n,"compositionstart",pA),$r(n,"compositionend",Y0),$r(n,"change",Y0))},mounted(n,{value:e,modifiers:{trim:t,number:i}}){const s=e??"",r=n[kc];delete n[kc],r!==void 0&&(n.type==="text"||n.type==="textarea")&&n.value!==r?n[Ss](Fd(n.value,t,i)):n.value=s},beforeUpdate(n,{value:e,oldValue:t,modifiers:{lazy:i,trim:s,number:r}},o){if(n[Ss]=Ua(o),n.composing)return;const a=(r||n.type==="number")&&!/^0\d/.test(n.value)?Bu(n.value):n.value,c=e??"";if(a===c)return;const l=n.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===n&&n.type!=="range"&&(i&&e===t||s&&n.value.trim()===c)||(n.value=c)}},_t={deep:!0,created(n,e,t){n[Ss]=Ua(t),$r(n,"change",()=>{const i=n._modelValue,s=Jl(n),r=n.checked,o=n[Ss];if(et(i)){const a=og(i,s),c=a!==-1;if(r&&!c)o(i.concat(s));else if(!r&&c){const l=[...i];l.splice(a,1),o(l)}}else if(Ka(i)){const a=new Set(i);r?a.add(s):a.delete(s),o(a)}else o(Yx(n,r))})},mounted:G0,beforeUpdate(n,e,t){n[Ss]=Ua(t),G0(n,e,t)}};function G0(n,{value:e,oldValue:t},i){n._modelValue=e;let s;if(et(e))s=og(e,i.props.value)>-1;else if(Ka(e))s=e.has(i.props.value);else{if(e===t)return;s=Ja(e,Yx(n,!0))}n.checked!==s&&(n.checked=s)}const St={deep:!0,created(n,{value:e,modifiers:{number:t}},i){n._modelValue=e,$r(n,"change",()=>{const s=Array.prototype.filter.call(n.options,r=>r.selected).map(r=>t?Bu(Jl(r)):Jl(r));n[Ss](n.multiple?Ka(n._modelValue)?new Set(s):s:s[0]),n._assigning=!0,Gu(()=>{n._assigning=!1})}),n[Ss]=Ua(i)},mounted(n,{value:e}){H0(n,e)},beforeUpdate(n,{value:e},t){n._modelValue=e,n[Ss]=Ua(t)},updated(n,{value:e}){n._assigning||H0(n,e)}};function H0(n,e){const t=n.multiple,i=et(e);if(!(t&&!i&&!Ka(e))){for(let s=0,r=n.options.length;s<r;s++){const o=n.options[s],a=Jl(o);if(t)if(i){const c=typeof a;c==="string"||c==="number"?o.selected=e.some(l=>String(l)===String(a)):o.selected=og(e,a)>-1}else o.selected=e.has(a);else if(Ja(Jl(o),e)){n.selectedIndex!==s&&(n.selectedIndex=s);return}}!t&&n.selectedIndex!==-1&&(n.selectedIndex=-1)}}function Jl(n){return"_value"in n?n._value:n.value}function Yx(n,e){const t=e?"_trueValue":"_falseValue";return t in n?n[t]:e}const gA=["ctrl","shift","alt","meta"],vA={stop:n=>n.stopPropagation(),prevent:n=>n.preventDefault(),self:n=>n.target!==n.currentTarget,ctrl:n=>!n.ctrlKey,shift:n=>!n.shiftKey,alt:n=>!n.altKey,meta:n=>!n.metaKey,left:n=>"button"in n&&n.button!==0,middle:n=>"button"in n&&n.button!==1,right:n=>"button"in n&&n.button!==2,exact:(n,e)=>gA.some(t=>n[`${t}Key`]&&!e.includes(t))},tt=(n,e)=>{if(!n)return n;const t=n._withMods||(n._withMods={}),i=e.join(".");return t[i]||(t[i]=((s,...r)=>{for(let o=0;o<e.length;o++){const a=vA[e[o]];if(a&&a(s,e))return}return n(s,...r)}))},yA={esc:"escape",space:" ",up:"arrow-up",left:"arrow-left",right:"arrow-right",down:"arrow-down",delete:"backspace"},Wr=(n,e)=>{const t=n._withKeys||(n._withKeys={}),i=e.join(".");return t[i]||(t[i]=(s=>{if(!("key"in s))return;const r=Qr(s.key);if(e.some(o=>o===r||yA[o]===r))return n(s)}))},bA=Ci({patchProp:dA},GM);let j0;function xA(){return j0||(j0=TM(bA))}const wA=((...n)=>{const e=xA().createApp(...n),{mount:t}=e;return e.mount=i=>{const s=_A(i);if(!s)return;const r=e._component;!ht(r)&&!r.render&&!r.template&&(r.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=t(s,!1,SA(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},e});function SA(n){if(n instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&n instanceof MathMLElement)return"mathml"}function _A(n){return ii(n)?document.querySelector(n):n}/*!
* pinia v4.0.3
* (c) 2026 Eduardo San Martin Morote
* @license MIT
*/let Gx;const Zu=n=>Gx=n,Hx=Symbol();function W0(n){return n&&typeof n=="object"&&Object.prototype.toString.call(n)==="[object Object]"&&typeof n.toJSON!="function"}function TA(){const n=ag(!0),e=n.run(()=>De({}));let t=[],i=[];const s=Ur({install(r){Zu(s),s._a=r,r.provide(Hx,s),r.config.globalProperties.$pinia=s,i.forEach(o=>t.push(o)),i=[]},use(r){return this._a?t.push(r):i.push(r),this},_p:t,_a:null,_e:n,_s:new Map,state:e});return s}const Lm=()=>{};function z0(n,e,t,i=Lm){n.add(e);const s=()=>{n.delete(e)&&i()};return!t&&lg()&&U1(s),s}function ia(n,...e){n.forEach(t=>{t(...e)})}const EA=n=>n(),q0=Symbol(),Ld=Symbol();function Om(n,e){n instanceof Map&&e instanceof Map?e.forEach((t,i)=>n.set(i,t)):n instanceof Set&&e instanceof Set&&e.forEach(n.add,n);for(const t in e){if(!Object.hasOwn(e,t))continue;const i=e[t],s=n[t];W0(s)&&W0(i)&&Object.hasOwn(n,t)&&!Qt(i)&&!or(i)?n[t]=Om(s,i):n[t]=i}return n}const CA=Symbol();function MA(n){return!n||typeof n!="object"||!Object.hasOwn(n,CA)}const{assign:Cr}=Object;function AA(n){return!!(Qt(n)&&n.effect)}function IA(n,e,t,i){const{state:s,actions:r,getters:o}=e,a=t.state.value[n];let c;function l(){a||(t.state.value[n]=s?s():{});const h=EC(t.state.value[n]);return Cr(h,r,Object.keys(o||{}).reduce((u,d)=>(u[d]=Ur(Fe(()=>{Zu(t);const f=t._s.get(n);return o[d].call(f,f)})),u),{}))}return c=jx(n,l,e,t,i,!0),c}function jx(n,e,t={},i,s,r){let o;const a=Cr({actions:{}},t),c={deep:!0};let l,h,u=new Set,d=new Set,f;const m=i.state.value[n];!r&&!m&&(i.state.value[n]={});let p;function g(S){let C;l=h=!1,typeof S=="function"?(S(i.state.value[n]),C={type:"patch function",storeId:n,events:f}):(Om(i.state.value[n],S),C={type:"patch object",payload:S,storeId:n,events:f});const M=p=Symbol();Gu().then(()=>{p===M&&(l=!0)}),h=!0,ia(u,C,i.state.value[n])}const v=r?function(){const{state:C}=t,M=C?C():{};this.$patch(P=>{Cr(P,M)})}:Lm;function b(){o.stop(),u.clear(),d.clear(),i._s.delete(n)}const y=(S,C="")=>{if(q0 in S)return S[Ld]=C,S;const M=function(){Zu(i);const P=Array.from(arguments),A=new Set,R=new Set;function B(V){A.add(V)}function O(V){R.add(V)}ia(d,{args:P,name:M[Ld],store:_,after:B,onError:O});let W;try{W=S.apply(this&&this.$id===n?this:_,P)}catch(V){throw ia(R,V),V}return W instanceof Promise?W.then(V=>(ia(A,V),V)).catch(V=>(ia(R,V),Promise.reject(V))):(ia(A,W),W)};return M[q0]=!0,M[Ld]=C,M},x={_p:i,$id:n,$onAction:z0.bind(null,d),$patch:g,$reset:v,$subscribe(S,C={}){if(u.has(S))return Lm;const M=z0(u,S,C.detached,()=>P()),P=o.run(()=>ei(()=>i.state.value[n],A=>{(C.flush==="sync"?h:l)&&S({storeId:n,type:"direct",events:f},A)},Cr({},c,C)));return M},$dispose:b},_=Go(x);i._s.set(n,_);const E=(i._a&&i._a.runWithContext||EA)(()=>i._e.run(()=>(o=ag()).run(()=>e({action:y}))));for(const S in E){const C=E[S];Qt(C)&&!AA(C)||or(C)?r||(m&&MA(C)&&(Qt(C)?C.value=m[S]:((C instanceof Set||C instanceof Map)&&C.clear(),Om(C,m[S]))),i.state.value[n][S]=C):typeof C=="function"&&(E[S]=y(C,S),a.actions[S]=C)}return Cr(_,E),Cr(Mt(_),E),Object.defineProperty(_,"$state",{get:()=>i.state.value[n],set:S=>{g(C=>{Cr(C,S)})}}),i._p.forEach(S=>{const C=o.run(()=>S({store:_,app:i._a,pinia:i,options:a}));Cr(_,C)}),m&&r&&t.hydrate&&t.hydrate(_.$state,m),l=!0,h=!0,_}/*! #__NO_SIDE_EFFECTS__ */function PA(n,e,t){let i;const s=typeof e=="function";i=s?t:e;function r(o,a){const c=OC();return o=o||(c?ko(Hx,null):null),o&&Zu(o),o=Gx,o._s.has(n)||(s?jx(n,e,i,o):IA(n,i,o)),o._s.get(n)}return r.$id=n,r}var Ho=(n=>(n[n.WEBGL_LEGACY=0]="WEBGL_LEGACY",n[n.WEBGL=1]="WEBGL",n[n.WEBGL2=2]="WEBGL2",n))(Ho||{}),Wx=(n=>(n[n.UNKNOWN=0]="UNKNOWN",n[n.WEBGL=1]="WEBGL",n[n.CANVAS=2]="CANVAS",n))(Wx||{}),$m=(n=>(n[n.COLOR=16384]="COLOR",n[n.DEPTH=256]="DEPTH",n[n.STENCIL=1024]="STENCIL",n))($m||{}),Qe=(n=>(n[n.NORMAL=0]="NORMAL",n[n.ADD=1]="ADD",n[n.MULTIPLY=2]="MULTIPLY",n[n.SCREEN=3]="SCREEN",n[n.OVERLAY=4]="OVERLAY",n[n.DARKEN=5]="DARKEN",n[n.LIGHTEN=6]="LIGHTEN",n[n.COLOR_DODGE=7]="COLOR_DODGE",n[n.COLOR_BURN=8]="COLOR_BURN",n[n.HARD_LIGHT=9]="HARD_LIGHT",n[n.SOFT_LIGHT=10]="SOFT_LIGHT",n[n.DIFFERENCE=11]="DIFFERENCE",n[n.EXCLUSION=12]="EXCLUSION",n[n.HUE=13]="HUE",n[n.SATURATION=14]="SATURATION",n[n.COLOR=15]="COLOR",n[n.LUMINOSITY=16]="LUMINOSITY",n[n.NORMAL_NPM=17]="NORMAL_NPM",n[n.ADD_NPM=18]="ADD_NPM",n[n.SCREEN_NPM=19]="SCREEN_NPM",n[n.NONE=20]="NONE",n[n.SRC_OVER=0]="SRC_OVER",n[n.SRC_IN=21]="SRC_IN",n[n.SRC_OUT=22]="SRC_OUT",n[n.SRC_ATOP=23]="SRC_ATOP",n[n.DST_OVER=24]="DST_OVER",n[n.DST_IN=25]="DST_IN",n[n.DST_OUT=26]="DST_OUT",n[n.DST_ATOP=27]="DST_ATOP",n[n.ERASE=26]="ERASE",n[n.SUBTRACT=28]="SUBTRACT",n[n.XOR=29]="XOR",n))(Qe||{}),_s=(n=>(n[n.POINTS=0]="POINTS",n[n.LINES=1]="LINES",n[n.LINE_LOOP=2]="LINE_LOOP",n[n.LINE_STRIP=3]="LINE_STRIP",n[n.TRIANGLES=4]="TRIANGLES",n[n.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",n[n.TRIANGLE_FAN=6]="TRIANGLE_FAN",n))(_s||{}),Ie=(n=>(n[n.RGBA=6408]="RGBA",n[n.RGB=6407]="RGB",n[n.RG=33319]="RG",n[n.RED=6403]="RED",n[n.RGBA_INTEGER=36249]="RGBA_INTEGER",n[n.RGB_INTEGER=36248]="RGB_INTEGER",n[n.RG_INTEGER=33320]="RG_INTEGER",n[n.RED_INTEGER=36244]="RED_INTEGER",n[n.ALPHA=6406]="ALPHA",n[n.LUMINANCE=6409]="LUMINANCE",n[n.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",n[n.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",n[n.DEPTH_STENCIL=34041]="DEPTH_STENCIL",n))(Ie||{}),Ia=(n=>(n[n.TEXTURE_2D=3553]="TEXTURE_2D",n[n.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",n[n.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",n[n.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",n[n.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",n[n.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",n[n.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",n[n.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",n[n.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",n))(Ia||{}),He=(n=>(n[n.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",n[n.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",n[n.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",n[n.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",n[n.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",n[n.UNSIGNED_INT=5125]="UNSIGNED_INT",n[n.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",n[n.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",n[n.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",n[n.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",n[n.BYTE=5120]="BYTE",n[n.SHORT=5122]="SHORT",n[n.INT=5124]="INT",n[n.FLOAT=5126]="FLOAT",n[n.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",n[n.HALF_FLOAT=36193]="HALF_FLOAT",n))(He||{}),Xe=(n=>(n[n.FLOAT=0]="FLOAT",n[n.INT=1]="INT",n[n.UINT=2]="UINT",n))(Xe||{}),Wn=(n=>(n[n.NEAREST=0]="NEAREST",n[n.LINEAR=1]="LINEAR",n))(Wn||{}),Jn=(n=>(n[n.CLAMP=33071]="CLAMP",n[n.REPEAT=10497]="REPEAT",n[n.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",n))(Jn||{}),$n=(n=>(n[n.OFF=0]="OFF",n[n.POW2=1]="POW2",n[n.ON=2]="ON",n[n.ON_MANUAL=3]="ON_MANUAL",n))($n||{}),Ri=(n=>(n[n.NPM=0]="NPM",n[n.UNPACK=1]="UNPACK",n[n.PMA=2]="PMA",n[n.NO_PREMULTIPLIED_ALPHA=0]="NO_PREMULTIPLIED_ALPHA",n[n.PREMULTIPLY_ON_UPLOAD=1]="PREMULTIPLY_ON_UPLOAD",n[n.PREMULTIPLIED_ALPHA=2]="PREMULTIPLIED_ALPHA",n))(Ri||{}),ys=(n=>(n[n.NO=0]="NO",n[n.YES=1]="YES",n[n.AUTO=2]="AUTO",n[n.BLEND=0]="BLEND",n[n.CLEAR=1]="CLEAR",n[n.BLIT=2]="BLIT",n))(ys||{}),wg=(n=>(n[n.AUTO=0]="AUTO",n[n.MANUAL=1]="MANUAL",n))(wg||{}),kn=(n=>(n.LOW="lowp",n.MEDIUM="mediump",n.HIGH="highp",n))(kn||{}),Si=(n=>(n[n.NONE=0]="NONE",n[n.SCISSOR=1]="SCISSOR",n[n.STENCIL=2]="STENCIL",n[n.SPRITE=3]="SPRITE",n[n.COLOR=4]="COLOR",n))(Si||{}),bi=(n=>(n[n.NONE=0]="NONE",n[n.LOW=2]="LOW",n[n.MEDIUM=4]="MEDIUM",n[n.HIGH=8]="HIGH",n))(bi||{}),Ms=(n=>(n[n.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",n[n.ARRAY_BUFFER=34962]="ARRAY_BUFFER",n[n.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",n))(Ms||{});const RA={createCanvas:(n,e)=>{const t=document.createElement("canvas");return t.width=n,t.height=e,t},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(n,e)=>fetch(n,e),parseXML:n=>new DOMParser().parseFromString(n,"text/xml")},Ve={ADAPTER:RA,RESOLUTION:1,CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1};var Od=/iPhone/i,K0=/iPod/i,J0=/iPad/i,Z0=/\biOS-universal(?:.+)Mac\b/i,$d=/\bAndroid(?:.+)Mobile\b/i,Q0=/Android/i,na=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Fc=/Silk/i,Ns=/Windows Phone/i,ev=/\bWindows(?:.+)ARM\b/i,tv=/BlackBerry/i,iv=/BB10/i,nv=/Opera Mini/i,sv=/\b(CriOS|Chrome)(?:.+)Mobile/i,rv=/Mobile(?:.+)Firefox\b/i,ov=function(n){return typeof n<"u"&&n.platform==="MacIntel"&&typeof n.maxTouchPoints=="number"&&n.maxTouchPoints>1&&typeof MSStream>"u"};function kA(n){return function(e){return e.test(n)}}function av(n){var e={userAgent:"",platform:"",maxTouchPoints:0};!n&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof n=="string"?e.userAgent=n:n&&n.userAgent&&(e={userAgent:n.userAgent,platform:n.platform,maxTouchPoints:n.maxTouchPoints||0});var t=e.userAgent,i=t.split("[FBAN");typeof i[1]<"u"&&(t=i[0]),i=t.split("Twitter"),typeof i[1]<"u"&&(t=i[0]);var s=kA(t),r={apple:{phone:s(Od)&&!s(Ns),ipod:s(K0),tablet:!s(Od)&&(s(J0)||ov(e))&&!s(Ns),universal:s(Z0),device:(s(Od)||s(K0)||s(J0)||s(Z0)||ov(e))&&!s(Ns)},amazon:{phone:s(na),tablet:!s(na)&&s(Fc),device:s(na)||s(Fc)},android:{phone:!s(Ns)&&s(na)||!s(Ns)&&s($d),tablet:!s(Ns)&&!s(na)&&!s($d)&&(s(Fc)||s(Q0)),device:!s(Ns)&&(s(na)||s(Fc)||s($d)||s(Q0))||s(/\bokhttp\b/i)},windows:{phone:s(Ns),tablet:s(ev),device:s(Ns)||s(ev)},other:{blackberry:s(tv),blackberry10:s(iv),opera:s(nv),firefox:s(rv),chrome:s(sv),device:s(tv)||s(iv)||s(nv)||s(rv)||s(sv)},any:!1,phone:!1,tablet:!1};return r.any=r.apple.device||r.android.device||r.windows.device||r.other.device,r.phone=r.apple.phone||r.android.phone||r.windows.phone,r.tablet=r.apple.tablet||r.android.tablet||r.windows.tablet,r}const FA=av.default??av,Ks=FA(globalThis.navigator);Ve.RETINA_PREFIX=/@([0-9\.]+)x/;Ve.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT=!1;var Hh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function zx(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function LA(n){if(Object.prototype.hasOwnProperty.call(n,"__esModule"))return n;var e=n.default;if(typeof e=="function"){var t=function i(){return this instanceof i?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(n).forEach(function(i){var s=Object.getOwnPropertyDescriptor(n,i);Object.defineProperty(t,i,s.get?s:{enumerable:!0,get:function(){return n[i]}})}),t}var Nd={exports:{}},lv;function OA(){return lv||(lv=1,(function(n){var e=Object.prototype.hasOwnProperty,t="~";function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(t=!1));function s(c,l,h){this.fn=c,this.context=l,this.once=h||!1}function r(c,l,h,u,d){if(typeof h!="function")throw new TypeError("The listener must be a function");var f=new s(h,u||c,d),m=t?t+l:l;return c._events[m]?c._events[m].fn?c._events[m]=[c._events[m],f]:c._events[m].push(f):(c._events[m]=f,c._eventsCount++),c}function o(c,l){--c._eventsCount===0?c._events=new i:delete c._events[l]}function a(){this._events=new i,this._eventsCount=0}a.prototype.eventNames=function(){var l=[],h,u;if(this._eventsCount===0)return l;for(u in h=this._events)e.call(h,u)&&l.push(t?u.slice(1):u);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(h)):l},a.prototype.listeners=function(l){var h=t?t+l:l,u=this._events[h];if(!u)return[];if(u.fn)return[u.fn];for(var d=0,f=u.length,m=new Array(f);d<f;d++)m[d]=u[d].fn;return m},a.prototype.listenerCount=function(l){var h=t?t+l:l,u=this._events[h];return u?u.fn?1:u.length:0},a.prototype.emit=function(l,h,u,d,f,m){var p=t?t+l:l;if(!this._events[p])return!1;var g=this._events[p],v=arguments.length,b,y;if(g.fn){switch(g.once&&this.removeListener(l,g.fn,void 0,!0),v){case 1:return g.fn.call(g.context),!0;case 2:return g.fn.call(g.context,h),!0;case 3:return g.fn.call(g.context,h,u),!0;case 4:return g.fn.call(g.context,h,u,d),!0;case 5:return g.fn.call(g.context,h,u,d,f),!0;case 6:return g.fn.call(g.context,h,u,d,f,m),!0}for(y=1,b=new Array(v-1);y<v;y++)b[y-1]=arguments[y];g.fn.apply(g.context,b)}else{var x=g.length,_;for(y=0;y<x;y++)switch(g[y].once&&this.removeListener(l,g[y].fn,void 0,!0),v){case 1:g[y].fn.call(g[y].context);break;case 2:g[y].fn.call(g[y].context,h);break;case 3:g[y].fn.call(g[y].context,h,u);break;case 4:g[y].fn.call(g[y].context,h,u,d);break;default:if(!b)for(_=1,b=new Array(v-1);_<v;_++)b[_-1]=arguments[_];g[y].fn.apply(g[y].context,b)}}return!0},a.prototype.on=function(l,h,u){return r(this,l,h,u,!1)},a.prototype.once=function(l,h,u){return r(this,l,h,u,!0)},a.prototype.removeListener=function(l,h,u,d){var f=t?t+l:l;if(!this._events[f])return this;if(!h)return o(this,f),this;var m=this._events[f];if(m.fn)m.fn===h&&(!d||m.once)&&(!u||m.context===u)&&o(this,f);else{for(var p=0,g=[],v=m.length;p<v;p++)(m[p].fn!==h||d&&!m[p].once||u&&m[p].context!==u)&&g.push(m[p]);g.length?this._events[f]=g.length===1?g[0]:g:o(this,f)}return this},a.prototype.removeAllListeners=function(l){var h;return l?(h=t?t+l:l,this._events[h]&&o(this,h)):(this._events=new i,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=t,a.EventEmitter=a,n.exports=a})(Nd)),Nd.exports}var $A=OA();const pc=zx($A);var Lc={exports:{}},cv;function NA(){if(cv)return Lc.exports;cv=1,Lc.exports=n,Lc.exports.default=n;function n(V,Y,L){L=L||2;var N=Y&&Y.length,F=N?Y[0]*L:V.length,D=e(V,0,F,L,!0),X=[];if(!D||D.next===D.prev)return X;var G,K,J,oe,le,ve,Se;if(N&&(D=c(V,Y,D,L)),V.length>80*L){G=J=V[0],K=oe=V[1];for(var fe=L;fe<F;fe+=L)le=V[fe],ve=V[fe+1],le<G&&(G=le),ve<K&&(K=ve),le>J&&(J=le),ve>oe&&(oe=ve);Se=Math.max(J-G,oe-K),Se=Se!==0?32767/Se:0}return i(D,X,L,G,K,Se,0),X}function e(V,Y,L,N,F){var D,X;if(F===W(V,Y,L,N)>0)for(D=Y;D<L;D+=N)X=R(D,V[D],V[D+1],X);else for(D=L-N;D>=Y;D-=N)X=R(D,V[D],V[D+1],X);return X&&x(X,X.next)&&(B(X),X=X.next),X}function t(V,Y){if(!V)return V;Y||(Y=V);var L=V,N;do if(N=!1,!L.steiner&&(x(L,L.next)||y(L.prev,L,L.next)===0)){if(B(L),L=Y=L.prev,L===L.next)break;N=!0}else L=L.next;while(N||L!==Y);return Y}function i(V,Y,L,N,F,D,X){if(V){!X&&D&&f(V,N,F,D);for(var G=V,K,J;V.prev!==V.next;){if(K=V.prev,J=V.next,D?r(V,N,F,D):s(V)){Y.push(K.i/L|0),Y.push(V.i/L|0),Y.push(J.i/L|0),B(V),V=J.next,G=J.next;continue}if(V=J,V===G){X?X===1?(V=o(t(V),Y,L),i(V,Y,L,N,F,D,2)):X===2&&a(V,Y,L,N,F,D):i(t(V),Y,L,N,F,D,1);break}}}}function s(V){var Y=V.prev,L=V,N=V.next;if(y(Y,L,N)>=0)return!1;for(var F=Y.x,D=L.x,X=N.x,G=Y.y,K=L.y,J=N.y,oe=F<D?F<X?F:X:D<X?D:X,le=G<K?G<J?G:J:K<J?K:J,ve=F>D?F>X?F:X:D>X?D:X,Se=G>K?G>J?G:J:K>J?K:J,fe=N.next;fe!==Y;){if(fe.x>=oe&&fe.x<=ve&&fe.y>=le&&fe.y<=Se&&v(F,G,D,K,X,J,fe.x,fe.y)&&y(fe.prev,fe,fe.next)>=0)return!1;fe=fe.next}return!0}function r(V,Y,L,N){var F=V.prev,D=V,X=V.next;if(y(F,D,X)>=0)return!1;for(var G=F.x,K=D.x,J=X.x,oe=F.y,le=D.y,ve=X.y,Se=G<K?G<J?G:J:K<J?K:J,fe=oe<le?oe<ve?oe:ve:le<ve?le:ve,ye=G>K?G>J?G:J:K>J?K:J,q=oe>le?oe>ve?oe:ve:le>ve?le:ve,Z=p(Se,fe,Y,L,N),se=p(ye,q,Y,L,N),H=V.prevZ,j=V.nextZ;H&&H.z>=Z&&j&&j.z<=se;){if(H.x>=Se&&H.x<=ye&&H.y>=fe&&H.y<=q&&H!==F&&H!==X&&v(G,oe,K,le,J,ve,H.x,H.y)&&y(H.prev,H,H.next)>=0||(H=H.prevZ,j.x>=Se&&j.x<=ye&&j.y>=fe&&j.y<=q&&j!==F&&j!==X&&v(G,oe,K,le,J,ve,j.x,j.y)&&y(j.prev,j,j.next)>=0))return!1;j=j.nextZ}for(;H&&H.z>=Z;){if(H.x>=Se&&H.x<=ye&&H.y>=fe&&H.y<=q&&H!==F&&H!==X&&v(G,oe,K,le,J,ve,H.x,H.y)&&y(H.prev,H,H.next)>=0)return!1;H=H.prevZ}for(;j&&j.z<=se;){if(j.x>=Se&&j.x<=ye&&j.y>=fe&&j.y<=q&&j!==F&&j!==X&&v(G,oe,K,le,J,ve,j.x,j.y)&&y(j.prev,j,j.next)>=0)return!1;j=j.nextZ}return!0}function o(V,Y,L){var N=V;do{var F=N.prev,D=N.next.next;!x(F,D)&&_(F,N,N.next,D)&&M(F,D)&&M(D,F)&&(Y.push(F.i/L|0),Y.push(N.i/L|0),Y.push(D.i/L|0),B(N),B(N.next),N=V=D),N=N.next}while(N!==V);return t(N)}function a(V,Y,L,N,F,D){var X=V;do{for(var G=X.next.next;G!==X.prev;){if(X.i!==G.i&&b(X,G)){var K=A(X,G);X=t(X,X.next),K=t(K,K.next),i(X,Y,L,N,F,D,0),i(K,Y,L,N,F,D,0);return}G=G.next}X=X.next}while(X!==V)}function c(V,Y,L,N){var F=[],D,X,G,K,J;for(D=0,X=Y.length;D<X;D++)G=Y[D]*N,K=D<X-1?Y[D+1]*N:V.length,J=e(V,G,K,N,!1),J===J.next&&(J.steiner=!0),F.push(g(J));for(F.sort(l),D=0;D<F.length;D++)L=h(F[D],L);return L}function l(V,Y){return V.x-Y.x}function h(V,Y){var L=u(V,Y);if(!L)return Y;var N=A(L,V);return t(N,N.next),t(L,L.next)}function u(V,Y){var L=Y,N=V.x,F=V.y,D=-1/0,X;do{if(F<=L.y&&F>=L.next.y&&L.next.y!==L.y){var G=L.x+(F-L.y)*(L.next.x-L.x)/(L.next.y-L.y);if(G<=N&&G>D&&(D=G,X=L.x<L.next.x?L:L.next,G===N))return X}L=L.next}while(L!==Y);if(!X)return null;var K=X,J=X.x,oe=X.y,le=1/0,ve;L=X;do N>=L.x&&L.x>=J&&N!==L.x&&v(F<oe?N:D,F,J,oe,F<oe?D:N,F,L.x,L.y)&&(ve=Math.abs(F-L.y)/(N-L.x),M(L,V)&&(ve<le||ve===le&&(L.x>X.x||L.x===X.x&&d(X,L)))&&(X=L,le=ve)),L=L.next;while(L!==K);return X}function d(V,Y){return y(V.prev,V,Y.prev)<0&&y(Y.next,V,V.next)<0}function f(V,Y,L,N){var F=V;do F.z===0&&(F.z=p(F.x,F.y,Y,L,N)),F.prevZ=F.prev,F.nextZ=F.next,F=F.next;while(F!==V);F.prevZ.nextZ=null,F.prevZ=null,m(F)}function m(V){var Y,L,N,F,D,X,G,K,J=1;do{for(L=V,V=null,D=null,X=0;L;){for(X++,N=L,G=0,Y=0;Y<J&&(G++,N=N.nextZ,!!N);Y++);for(K=J;G>0||K>0&&N;)G!==0&&(K===0||!N||L.z<=N.z)?(F=L,L=L.nextZ,G--):(F=N,N=N.nextZ,K--),D?D.nextZ=F:V=F,F.prevZ=D,D=F;L=N}D.nextZ=null,J*=2}while(X>1);return V}function p(V,Y,L,N,F){return V=(V-L)*F|0,Y=(Y-N)*F|0,V=(V|V<<8)&16711935,V=(V|V<<4)&252645135,V=(V|V<<2)&858993459,V=(V|V<<1)&1431655765,Y=(Y|Y<<8)&16711935,Y=(Y|Y<<4)&252645135,Y=(Y|Y<<2)&858993459,Y=(Y|Y<<1)&1431655765,V|Y<<1}function g(V){var Y=V,L=V;do(Y.x<L.x||Y.x===L.x&&Y.y<L.y)&&(L=Y),Y=Y.next;while(Y!==V);return L}function v(V,Y,L,N,F,D,X,G){return(F-X)*(Y-G)>=(V-X)*(D-G)&&(V-X)*(N-G)>=(L-X)*(Y-G)&&(L-X)*(D-G)>=(F-X)*(N-G)}function b(V,Y){return V.next.i!==Y.i&&V.prev.i!==Y.i&&!C(V,Y)&&(M(V,Y)&&M(Y,V)&&P(V,Y)&&(y(V.prev,V,Y.prev)||y(V,Y.prev,Y))||x(V,Y)&&y(V.prev,V,V.next)>0&&y(Y.prev,Y,Y.next)>0)}function y(V,Y,L){return(Y.y-V.y)*(L.x-Y.x)-(Y.x-V.x)*(L.y-Y.y)}function x(V,Y){return V.x===Y.x&&V.y===Y.y}function _(V,Y,L,N){var F=S(y(V,Y,L)),D=S(y(V,Y,N)),X=S(y(L,N,V)),G=S(y(L,N,Y));return!!(F!==D&&X!==G||F===0&&E(V,L,Y)||D===0&&E(V,N,Y)||X===0&&E(L,V,N)||G===0&&E(L,Y,N))}function E(V,Y,L){return Y.x<=Math.max(V.x,L.x)&&Y.x>=Math.min(V.x,L.x)&&Y.y<=Math.max(V.y,L.y)&&Y.y>=Math.min(V.y,L.y)}function S(V){return V>0?1:V<0?-1:0}function C(V,Y){var L=V;do{if(L.i!==V.i&&L.next.i!==V.i&&L.i!==Y.i&&L.next.i!==Y.i&&_(L,L.next,V,Y))return!0;L=L.next}while(L!==V);return!1}function M(V,Y){return y(V.prev,V,V.next)<0?y(V,Y,V.next)>=0&&y(V,V.prev,Y)>=0:y(V,Y,V.prev)<0||y(V,V.next,Y)<0}function P(V,Y){var L=V,N=!1,F=(V.x+Y.x)/2,D=(V.y+Y.y)/2;do L.y>D!=L.next.y>D&&L.next.y!==L.y&&F<(L.next.x-L.x)*(D-L.y)/(L.next.y-L.y)+L.x&&(N=!N),L=L.next;while(L!==V);return N}function A(V,Y){var L=new O(V.i,V.x,V.y),N=new O(Y.i,Y.x,Y.y),F=V.next,D=Y.prev;return V.next=Y,Y.prev=V,L.next=F,F.prev=L,N.next=L,L.prev=N,D.next=N,N.prev=D,N}function R(V,Y,L,N){var F=new O(V,Y,L);return N?(F.next=N.next,F.prev=N,N.next.prev=F,N.next=F):(F.prev=F,F.next=F),F}function B(V){V.next.prev=V.prev,V.prev.next=V.next,V.prevZ&&(V.prevZ.nextZ=V.nextZ),V.nextZ&&(V.nextZ.prevZ=V.prevZ)}function O(V,Y,L){this.i=V,this.x=Y,this.y=L,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}n.deviation=function(V,Y,L,N){var F=Y&&Y.length,D=F?Y[0]*L:V.length,X=Math.abs(W(V,0,D,L));if(F)for(var G=0,K=Y.length;G<K;G++){var J=Y[G]*L,oe=G<K-1?Y[G+1]*L:V.length;X-=Math.abs(W(V,J,oe,L))}var le=0;for(G=0;G<N.length;G+=3){var ve=N[G]*L,Se=N[G+1]*L,fe=N[G+2]*L;le+=Math.abs((V[ve]-V[fe])*(V[Se+1]-V[ve+1])-(V[ve]-V[Se])*(V[fe+1]-V[ve+1]))}return X===0&&le===0?0:Math.abs((le-X)/X)};function W(V,Y,L,N){for(var F=0,D=Y,X=L-N;D<L;D+=N)F+=(V[X]-V[D])*(V[D+1]+V[X+1]),X=D;return F}return n.flatten=function(V){for(var Y=V[0][0].length,L={vertices:[],holes:[],dimensions:Y},N=0,F=0;F<V.length;F++){for(var D=0;D<V[F].length;D++)for(var X=0;X<Y;X++)L.vertices.push(V[F][D][X]);F>0&&(N+=V[F-1].length,L.holes.push(N))}return L},Lc.exports}var DA=NA();const BA=zx(DA);var uo={},bl={exports:{}};/*! https://mths.be/punycode v1.4.1 by @mathias */var UA=bl.exports,hv;function VA(){return hv||(hv=1,(function(n,e){(function(t){var i=e&&!e.nodeType&&e,s=n&&!n.nodeType&&n,r=typeof Hh=="object"&&Hh;(r.global===r||r.window===r||r.self===r)&&(t=r);var o,a=2147483647,c=36,l=1,h=26,u=38,d=700,f=72,m=128,p="-",g=/^xn--/,v=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,y={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},x=c-l,_=Math.floor,E=String.fromCharCode,S;function C(F){throw new RangeError(y[F])}function M(F,D){for(var X=F.length,G=[];X--;)G[X]=D(F[X]);return G}function P(F,D){var X=F.split("@"),G="";X.length>1&&(G=X[0]+"@",F=X[1]),F=F.replace(b,".");var K=F.split("."),J=M(K,D).join(".");return G+J}function A(F){for(var D=[],X=0,G=F.length,K,J;X<G;)K=F.charCodeAt(X++),K>=55296&&K<=56319&&X<G?(J=F.charCodeAt(X++),(J&64512)==56320?D.push(((K&1023)<<10)+(J&1023)+65536):(D.push(K),X--)):D.push(K);return D}function R(F){return M(F,function(D){var X="";return D>65535&&(D-=65536,X+=E(D>>>10&1023|55296),D=56320|D&1023),X+=E(D),X}).join("")}function B(F){return F-48<10?F-22:F-65<26?F-65:F-97<26?F-97:c}function O(F,D){return F+22+75*(F<26)-((D!=0)<<5)}function W(F,D,X){var G=0;for(F=X?_(F/d):F>>1,F+=_(F/D);F>x*h>>1;G+=c)F=_(F/x);return _(G+(x+1)*F/(F+u))}function V(F){var D=[],X=F.length,G,K=0,J=m,oe=f,le,ve,Se,fe,ye,q,Z,se,H;for(le=F.lastIndexOf(p),le<0&&(le=0),ve=0;ve<le;++ve)F.charCodeAt(ve)>=128&&C("not-basic"),D.push(F.charCodeAt(ve));for(Se=le>0?le+1:0;Se<X;){for(fe=K,ye=1,q=c;Se>=X&&C("invalid-input"),Z=B(F.charCodeAt(Se++)),(Z>=c||Z>_((a-K)/ye))&&C("overflow"),K+=Z*ye,se=q<=oe?l:q>=oe+h?h:q-oe,!(Z<se);q+=c)H=c-se,ye>_(a/H)&&C("overflow"),ye*=H;G=D.length+1,oe=W(K-fe,G,fe==0),_(K/G)>a-J&&C("overflow"),J+=_(K/G),K%=G,D.splice(K++,0,J)}return R(D)}function Y(F){var D,X,G,K,J,oe,le,ve,Se,fe,ye,q=[],Z,se,H,j;for(F=A(F),Z=F.length,D=m,X=0,J=f,oe=0;oe<Z;++oe)ye=F[oe],ye<128&&q.push(E(ye));for(G=K=q.length,K&&q.push(p);G<Z;){for(le=a,oe=0;oe<Z;++oe)ye=F[oe],ye>=D&&ye<le&&(le=ye);for(se=G+1,le-D>_((a-X)/se)&&C("overflow"),X+=(le-D)*se,D=le,oe=0;oe<Z;++oe)if(ye=F[oe],ye<D&&++X>a&&C("overflow"),ye==D){for(ve=X,Se=c;fe=Se<=J?l:Se>=J+h?h:Se-J,!(ve<fe);Se+=c)j=ve-fe,H=c-fe,q.push(E(O(fe+j%H,0))),ve=_(j/H);q.push(E(O(ve,0))),J=W(X,se,G==K),X=0,++G}++X,++D}return q.join("")}function L(F){return P(F,function(D){return g.test(D)?V(D.slice(4).toLowerCase()):D})}function N(F){return P(F,function(D){return v.test(D)?"xn--"+Y(D):D})}if(o={version:"1.4.1",ucs2:{decode:A,encode:R},decode:V,encode:Y,toASCII:N,toUnicode:L},i&&s)if(n.exports==i)s.exports=o;else for(S in o)o.hasOwnProperty(S)&&(i[S]=o[S]);else t.punycode=o})(UA)})(bl,bl.exports)),bl.exports}var Dd,uv;function Qa(){return uv||(uv=1,Dd=TypeError),Dd}const XA={},YA=Object.freeze(Object.defineProperty({__proto__:null,default:XA},Symbol.toStringTag,{value:"Module"})),GA=LA(YA);var Bd,dv;function Qu(){if(dv)return Bd;dv=1;var n=typeof Map=="function"&&Map.prototype,e=Object.getOwnPropertyDescriptor&&n?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,t=n&&e&&typeof e.get=="function"?e.get:null,i=n&&Map.prototype.forEach,s=typeof Set=="function"&&Set.prototype,r=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,o=s&&r&&typeof r.get=="function"?r.get:null,a=s&&Set.prototype.forEach,c=typeof WeakMap=="function"&&WeakMap.prototype,l=c?WeakMap.prototype.has:null,h=typeof WeakSet=="function"&&WeakSet.prototype,u=h?WeakSet.prototype.has:null,d=typeof WeakRef=="function"&&WeakRef.prototype,f=d?WeakRef.prototype.deref:null,m=Boolean.prototype.valueOf,p=Object.prototype.toString,g=Function.prototype.toString,v=String.prototype.match,b=String.prototype.slice,y=String.prototype.replace,x=String.prototype.toUpperCase,_=String.prototype.toLowerCase,E=RegExp.prototype.test,S=Array.prototype.concat,C=Array.prototype.join,M=Array.prototype.slice,P=Math.floor,A=typeof BigInt=="function"?BigInt.prototype.valueOf:null,R=Object.getOwnPropertySymbols,B=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,O=typeof Symbol=="function"&&typeof Symbol.iterator=="object",W=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===O||!0)?Symbol.toStringTag:null,V=Object.prototype.propertyIsEnumerable,Y=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(ce){return ce.__proto__}:null);function L(ce,de){if(ce===1/0||ce===-1/0||ce!==ce||ce&&ce>-1e3&&ce<1e3||E.call(/e/,de))return de;var nt=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof ce=="number"){var Ft=ce<0?-P(-ce):P(ce);if(Ft!==ce){var Nt=String(Ft),ct=b.call(de,Nt.length+1);return y.call(Nt,nt,"$&_")+"."+y.call(y.call(ct,/([0-9]{3})/g,"$&_"),/_$/,"")}}return y.call(de,nt,"$&_")}var N=GA,F=N.custom,D=se(F)?F:null,X={__proto__:null,double:'"',single:"'"},G={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};Bd=function ce(de,nt,Ft,Nt){var ct=nt||{};if($(ct,"quoteStyle")&&!$(X,ct.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if($(ct,"maxStringLength")&&(typeof ct.maxStringLength=="number"?ct.maxStringLength<0&&ct.maxStringLength!==1/0:ct.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var rn=$(ct,"customInspect")?ct.customInspect:!0;if(typeof rn!="boolean"&&rn!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if($(ct,"indent")&&ct.indent!==null&&ct.indent!==" "&&!(parseInt(ct.indent,10)===ct.indent&&ct.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if($(ct,"numericSeparator")&&typeof ct.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var Nn=ct.numericSeparator;if(typeof de>"u")return"undefined";if(de===null)return"null";if(typeof de=="boolean")return de?"true":"false";if(typeof de=="string")return he(de,ct);if(typeof de=="number"){if(de===0)return 1/0/de>0?"0":"-0";var Ht=String(de);return Nn?L(de,Ht):Ht}if(typeof de=="bigint"){var Di=String(de)+"n";return Nn?L(de,Di):Di}var Ut=typeof ct.depth>"u"?5:ct.depth;if(typeof Ft>"u"&&(Ft=0),Ft>=Ut&&Ut>0&&typeof de=="object")return le(de)?"[Array]":"[Object]";var on=Ee(ct,Ft);if(typeof Nt>"u")Nt=[];else if(ee(Nt,de)>=0)return"[Circular]";function fi(xr,Qo,xd){if(Qo&&(Nt=M.call(Nt),Nt.push(Qo)),xd){var Mc={depth:ct.depth};return $(ct,"quoteStyle")&&(Mc.quoteStyle=ct.quoteStyle),ce(xr,Mc,Ft+1,Nt)}return ce(xr,ct,Ft+1,Nt)}if(typeof de=="function"&&!Se(de)){var Dn=z(de),Fs=lt(de,fi);return"[Function"+(Dn?": "+Dn:" (anonymous)")+"]"+(Fs.length>0?" { "+C.call(Fs,", ")+" }":"")}if(se(de)){var Tn=O?y.call(String(de),/^(Symbol\(.*\))_[^)]*$/,"$1"):B.call(de);return typeof de=="object"&&!O?We(Tn):Tn}if(Be(de)){for(var mn="<"+_.call(String(de.nodeName)),yr=de.attributes||[],br=0;br<yr.length;br++)mn+=" "+yr[br].name+"="+K(J(yr[br].value),"double",ct);return mn+=">",de.childNodes&&de.childNodes.length&&(mn+="..."),mn+="</"+_.call(String(de.nodeName))+">",mn}if(le(de)){if(de.length===0)return"[]";var Jo=lt(de,fi);return on&&!Ze(Jo)?"["+vi(Jo,on)+"]":"[ "+C.call(Jo,", ")+" ]"}if(fe(de)){var nl=lt(de,fi);return!("cause"in Error.prototype)&&"cause"in de&&!V.call(de,"cause")?"{ ["+String(de)+"] "+C.call(S.call("[cause]: "+fi(de.cause),nl),", ")+" }":nl.length===0?"["+String(de)+"]":"{ ["+String(de)+"] "+C.call(nl,", ")+" }"}if(typeof de=="object"&&rn){if(D&&typeof de[D]=="function"&&N)return N(de,{depth:Ut-Ft});if(rn!=="symbol"&&typeof de.inspect=="function")return de.inspect()}if(ne(de)){var _c=[];return i&&i.call(de,function(xr,Qo){_c.push(fi(Qo,de,!0)+" => "+fi(xr,de))}),Ce("Map",t.call(de),_c,on)}if(be(de)){var Tc=[];return a&&a.call(de,function(xr){Tc.push(fi(xr,de))}),Ce("Set",o.call(de),Tc,on)}if(ue(de))return Le("WeakMap");if(Ne(de))return Le("WeakSet");if(xe(de))return Le("WeakRef");if(q(de))return We(fi(Number(de)));if(H(de))return We(fi(A.call(de)));if(Z(de))return We(m.call(de));if(ye(de))return We(fi(String(de)));if(typeof window<"u"&&de===window)return"{ [object Window] }";if(typeof globalThis<"u"&&de===globalThis||typeof Hh<"u"&&de===Hh)return"{ [object globalThis] }";if(!ve(de)&&!Se(de)){var sl=lt(de,fi),Ec=Y?Y(de)===Object.prototype:de instanceof Object||de.constructor===Object,Zo=de instanceof Object?"":"null prototype",Cc=!Ec&&W&&Object(de)===de&&W in de?b.call(U(de),8,-1):Zo?"Object":"",bd=Ec||typeof de.constructor!="function"?"":de.constructor.name?de.constructor.name+" ":"",rl=bd+(Cc||Zo?"["+C.call(S.call([],Cc||[],Zo||[]),": ")+"] ":"");return sl.length===0?rl+"{}":on?rl+"{"+vi(sl,on)+"}":rl+"{ "+C.call(sl,", ")+" }"}return String(de)};function K(ce,de,nt){var Ft=nt.quoteStyle||de,Nt=X[Ft];return Nt+ce+Nt}function J(ce){return y.call(String(ce),/"/g,"&quot;")}function oe(ce){return!W||!(typeof ce=="object"&&(W in ce||typeof ce[W]<"u"))}function le(ce){return U(ce)==="[object Array]"&&oe(ce)}function ve(ce){return U(ce)==="[object Date]"&&oe(ce)}function Se(ce){return U(ce)==="[object RegExp]"&&oe(ce)}function fe(ce){return U(ce)==="[object Error]"&&oe(ce)}function ye(ce){return U(ce)==="[object String]"&&oe(ce)}function q(ce){return U(ce)==="[object Number]"&&oe(ce)}function Z(ce){return U(ce)==="[object Boolean]"&&oe(ce)}function se(ce){if(O)return ce&&typeof ce=="object"&&ce instanceof Symbol;if(typeof ce=="symbol")return!0;if(!ce||typeof ce!="object"||!B)return!1;try{return B.call(ce),!0}catch{}return!1}function H(ce){if(!ce||typeof ce!="object"||!A)return!1;try{return A.call(ce),!0}catch{}return!1}var j=Object.prototype.hasOwnProperty||function(ce){return ce in this};function $(ce,de){return j.call(ce,de)}function U(ce){return p.call(ce)}function z(ce){if(ce.name)return ce.name;var de=v.call(g.call(ce),/^function\s*([\w$]+)/);return de?de[1]:null}function ee(ce,de){if(ce.indexOf)return ce.indexOf(de);for(var nt=0,Ft=ce.length;nt<Ft;nt++)if(ce[nt]===de)return nt;return-1}function ne(ce){if(!t||!ce||typeof ce!="object")return!1;try{t.call(ce);try{o.call(ce)}catch{return!0}return ce instanceof Map}catch{}return!1}function ue(ce){if(!l||!ce||typeof ce!="object")return!1;try{l.call(ce,l);try{u.call(ce,u)}catch{return!0}return ce instanceof WeakMap}catch{}return!1}function xe(ce){if(!f||!ce||typeof ce!="object")return!1;try{return f.call(ce),!0}catch{}return!1}function be(ce){if(!o||!ce||typeof ce!="object")return!1;try{o.call(ce);try{t.call(ce)}catch{return!0}return ce instanceof Set}catch{}return!1}function Ne(ce){if(!u||!ce||typeof ce!="object")return!1;try{u.call(ce,u);try{l.call(ce,l)}catch{return!0}return ce instanceof WeakSet}catch{}return!1}function Be(ce){return!ce||typeof ce!="object"?!1:typeof HTMLElement<"u"&&ce instanceof HTMLElement?!0:typeof ce.nodeName=="string"&&typeof ce.getAttribute=="function"}function he(ce,de){if(ce.length>de.maxStringLength){var nt=ce.length-de.maxStringLength,Ft="... "+nt+" more character"+(nt>1?"s":"");return he(b.call(ce,0,de.maxStringLength),de)+Ft}var Nt=G[de.quoteStyle||"single"];Nt.lastIndex=0;var ct=y.call(y.call(ce,Nt,"\\$1"),/[\x00-\x1f]/g,ge);return K(ct,"single",de)}function ge(ce){var de=ce.charCodeAt(0),nt={8:"b",9:"t",10:"n",12:"f",13:"r"}[de];return nt?"\\"+nt:"\\x"+(de<16?"0":"")+x.call(de.toString(16))}function We(ce){return"Object("+ce+")"}function Le(ce){return ce+" { ? }"}function Ce(ce,de,nt,Ft){var Nt=Ft?vi(nt,Ft):C.call(nt,", ");return ce+" ("+de+") {"+Nt+"}"}function Ze(ce){for(var de=0;de<ce.length;de++)if(ee(ce[de],`
`)>=0)return!1;return!0}function Ee(ce,de){var nt;if(ce.indent===" ")nt=" ";else if(typeof ce.indent=="number"&&ce.indent>0)nt=C.call(Array(ce.indent+1)," ");else return null;return{base:nt,prev:C.call(Array(de+1),nt)}}function vi(ce,de){if(ce.length===0)return"";var nt=`
`+de.prev+de.base;return nt+C.call(ce,","+nt)+`
`+de.prev}function lt(ce,de){var nt=le(ce),Ft=[];if(nt){Ft.length=ce.length;for(var Nt=0;Nt<ce.length;Nt++)Ft[Nt]=$(ce,Nt)?de(ce[Nt],ce):""}var ct=typeof R=="function"?R(ce):[],rn;if(O){rn={};for(var Nn=0;Nn<ct.length;Nn++)rn["$"+ct[Nn]]=ct[Nn]}for(var Ht in ce)$(ce,Ht)&&(nt&&String(Number(Ht))===Ht&&Ht<ce.length||O&&rn["$"+Ht]instanceof Symbol||(E.call(/[^\w$]/,Ht)?Ft.push(de(Ht,ce)+": "+de(ce[Ht],ce)):Ft.push(Ht+": "+de(ce[Ht],ce))));if(typeof R=="function")for(var Di=0;Di<ct.length;Di++)V.call(ce,ct[Di])&&Ft.push("["+de(ct[Di])+"]: "+de(ce[ct[Di]],ce));return Ft}return Bd}var Ud,fv;function HA(){if(fv)return Ud;fv=1;var n=Qu(),e=Qa(),t=function(a,c,l){for(var h=a,u;(u=h.next)!=null;h=u)if(u.key===c)return h.next=u.next,l||(u.next=a.next,a.next=u),u},i=function(a,c){if(a){var l=t(a,c);return l&&l.value}},s=function(a,c,l){var h=t(a,c);h?h.value=l:a.next={key:c,next:a.next,value:l}},r=function(a,c){return a?!!t(a,c):!1},o=function(a,c){if(a)return t(a,c,!0)};return Ud=function(){var c,l={assert:function(h){if(!l.has(h))throw new e("Side channel does not contain "+n(h))},delete:function(h){var u=o(c,h);return u&&c&&!c.next&&(c=void 0),!!u},get:function(h){return i(c,h)},has:function(h){return r(c,h)},set:function(h,u){c||(c={next:void 0}),s(c,h,u)}};return l},Ud}var Vd,mv;function qx(){return mv||(mv=1,Vd=Object),Vd}var Xd,pv;function jA(){return pv||(pv=1,Xd=Error),Xd}var Yd,gv;function WA(){return gv||(gv=1,Yd=EvalError),Yd}var Gd,vv;function zA(){return vv||(vv=1,Gd=RangeError),Gd}var Hd,yv;function qA(){return yv||(yv=1,Hd=ReferenceError),Hd}var jd,bv;function KA(){return bv||(bv=1,jd=SyntaxError),jd}var Wd,xv;function JA(){return xv||(xv=1,Wd=URIError),Wd}var zd,wv;function ZA(){return wv||(wv=1,zd=Math.abs),zd}var qd,Sv;function QA(){return Sv||(Sv=1,qd=Math.floor),qd}var Kd,_v;function eI(){return _v||(_v=1,Kd=Math.max),Kd}var Jd,Tv;function tI(){return Tv||(Tv=1,Jd=Math.min),Jd}var Zd,Ev;function iI(){return Ev||(Ev=1,Zd=Math.pow),Zd}var Qd,Cv;function nI(){return Cv||(Cv=1,Qd=Math.round),Qd}var ef,Mv;function sI(){return Mv||(Mv=1,ef=Number.isNaN||function(e){return e!==e}),ef}var tf,Av;function rI(){if(Av)return tf;Av=1;var n=sI();return tf=function(t){return n(t)||t===0?t:t<0?-1:1},tf}var nf,Iv;function oI(){return Iv||(Iv=1,nf=Object.getOwnPropertyDescriptor),nf}var sf,Pv;function Kx(){if(Pv)return sf;Pv=1;var n=oI();if(n)try{n([],"length")}catch{n=null}return sf=n,sf}var rf,Rv;function Jx(){if(Rv)return rf;Rv=1;var n=Object.defineProperty||!1;if(n)try{n({},"a",{value:1})}catch{n=!1}return rf=n,rf}var of,kv;function aI(){return kv||(kv=1,of=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},t=Symbol("test"),i=Object(t);if(typeof t=="string"||Object.prototype.toString.call(t)!=="[object Symbol]"||Object.prototype.toString.call(i)!=="[object Symbol]")return!1;var s=42;e[t]=s;for(var r in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var o=Object.getOwnPropertySymbols(e);if(o.length!==1||o[0]!==t||!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var a=Object.getOwnPropertyDescriptor(e,t);if(a.value!==s||a.enumerable!==!0)return!1}return!0}),of}var af,Fv;function lI(){if(Fv)return af;Fv=1;var n=typeof Symbol<"u"&&Symbol,e=aI();return af=function(){return typeof n!="function"||typeof Symbol!="function"||typeof n("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:e()},af}var lf,Lv;function Zx(){return Lv||(Lv=1,lf=typeof Reflect<"u"&&Reflect.getPrototypeOf||null),lf}var cf,Ov;function Qx(){if(Ov)return cf;Ov=1;var n=qx();return cf=n.getPrototypeOf||null,cf}var hf,$v;function cI(){if($v)return hf;$v=1;var n="Function.prototype.bind called on incompatible ",e=Object.prototype.toString,t=Math.max,i="[object Function]",s=function(c,l){for(var h=[],u=0;u<c.length;u+=1)h[u]=c[u];for(var d=0;d<l.length;d+=1)h[d+c.length]=l[d];return h},r=function(c,l){for(var h=[],u=l,d=0;u<c.length;u+=1,d+=1)h[d]=c[u];return h},o=function(a,c){for(var l="",h=0;h<a.length;h+=1)l+=a[h],h+1<a.length&&(l+=c);return l};return hf=function(c){var l=this;if(typeof l!="function"||e.apply(l)!==i)throw new TypeError(n+l);for(var h=r(arguments,1),u,d=function(){if(this instanceof u){var v=l.apply(this,s(h,arguments));return Object(v)===v?v:this}return l.apply(c,s(h,arguments))},f=t(0,l.length-h.length),m=[],p=0;p<f;p++)m[p]="$"+p;if(u=Function("binder","return function ("+o(m,",")+"){ return binder.apply(this,arguments); }")(d),l.prototype){var g=function(){};g.prototype=l.prototype,u.prototype=new g,g.prototype=null}return u},hf}var uf,Nv;function ed(){if(Nv)return uf;Nv=1;var n=cI();return uf=Function.prototype.bind||n,uf}var df,Dv;function Sg(){return Dv||(Dv=1,df=Function.prototype.call),df}var ff,Bv;function ew(){return Bv||(Bv=1,ff=Function.prototype.apply),ff}var mf,Uv;function hI(){return Uv||(Uv=1,mf=typeof Reflect<"u"&&Reflect&&Reflect.apply),mf}var pf,Vv;function uI(){if(Vv)return pf;Vv=1;var n=ed(),e=ew(),t=Sg(),i=hI();return pf=i||n.call(t,e),pf}var gf,Xv;function tw(){if(Xv)return gf;Xv=1;var n=ed(),e=Qa(),t=Sg(),i=uI();return gf=function(r){if(r.length<1||typeof r[0]!="function")throw new e("a function is required");return i(n,t,r)},gf}var vf,Yv;function dI(){if(Yv)return vf;Yv=1;var n=tw(),e=Kx(),t;try{t=[].__proto__===Array.prototype}catch(o){if(!o||typeof o!="object"||!("code"in o)||o.code!=="ERR_PROTO_ACCESS")throw o}var i=!!t&&e&&e(Object.prototype,"__proto__"),s=Object,r=s.getPrototypeOf;return vf=i&&typeof i.get=="function"?n([i.get]):typeof r=="function"?function(a){return r(a==null?a:s(a))}:!1,vf}var yf,Gv;function fI(){if(Gv)return yf;Gv=1;var n=Zx(),e=Qx(),t=dI();return yf=n?function(s){return n(s)}:e?function(s){if(!s||typeof s!="object"&&typeof s!="function")throw new TypeError("getProto: not an object");return e(s)}:t?function(s){return t(s)}:null,yf}var bf,Hv;function mI(){if(Hv)return bf;Hv=1;var n=Function.prototype.call,e=Object.prototype.hasOwnProperty,t=ed();return bf=t.call(n,e),bf}var xf,jv;function _g(){if(jv)return xf;jv=1;var n,e=qx(),t=jA(),i=WA(),s=zA(),r=qA(),o=KA(),a=Qa(),c=JA(),l=ZA(),h=QA(),u=eI(),d=tI(),f=iI(),m=nI(),p=rI(),g=Function,v=function(Se){try{return g('"use strict"; return ('+Se+").constructor;")()}catch{}},b=Kx(),y=Jx(),x=function(){throw new a},_=b?(function(){try{return arguments.callee,x}catch{try{return b(arguments,"callee").get}catch{return x}}})():x,E=lI()(),S=fI(),C=Qx(),M=Zx(),P=ew(),A=Sg(),R={},B=typeof Uint8Array>"u"||!S?n:S(Uint8Array),O={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?n:ArrayBuffer,"%ArrayIteratorPrototype%":E&&S?S([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":R,"%AsyncGenerator%":R,"%AsyncGeneratorFunction%":R,"%AsyncIteratorPrototype%":R,"%Atomics%":typeof Atomics>"u"?n:Atomics,"%BigInt%":typeof BigInt>"u"?n:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?n:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":t,"%eval%":eval,"%EvalError%":i,"%Float16Array%":typeof Float16Array>"u"?n:Float16Array,"%Float32Array%":typeof Float32Array>"u"?n:Float32Array,"%Float64Array%":typeof Float64Array>"u"?n:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?n:FinalizationRegistry,"%Function%":g,"%GeneratorFunction%":R,"%Int8Array%":typeof Int8Array>"u"?n:Int8Array,"%Int16Array%":typeof Int16Array>"u"?n:Int16Array,"%Int32Array%":typeof Int32Array>"u"?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":E&&S?S(S([][Symbol.iterator]())):n,"%JSON%":typeof JSON=="object"?JSON:n,"%Map%":typeof Map>"u"?n:Map,"%MapIteratorPrototype%":typeof Map>"u"||!E||!S?n:S(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":e,"%Object.getOwnPropertyDescriptor%":b,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?n:Promise,"%Proxy%":typeof Proxy>"u"?n:Proxy,"%RangeError%":s,"%ReferenceError%":r,"%Reflect%":typeof Reflect>"u"?n:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?n:Set,"%SetIteratorPrototype%":typeof Set>"u"||!E||!S?n:S(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":E&&S?S(""[Symbol.iterator]()):n,"%Symbol%":E?Symbol:n,"%SyntaxError%":o,"%ThrowTypeError%":_,"%TypedArray%":B,"%TypeError%":a,"%Uint8Array%":typeof Uint8Array>"u"?n:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?n:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?n:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?n:Uint32Array,"%URIError%":c,"%WeakMap%":typeof WeakMap>"u"?n:WeakMap,"%WeakRef%":typeof WeakRef>"u"?n:WeakRef,"%WeakSet%":typeof WeakSet>"u"?n:WeakSet,"%Function.prototype.call%":A,"%Function.prototype.apply%":P,"%Object.defineProperty%":y,"%Object.getPrototypeOf%":C,"%Math.abs%":l,"%Math.floor%":h,"%Math.max%":u,"%Math.min%":d,"%Math.pow%":f,"%Math.round%":m,"%Math.sign%":p,"%Reflect.getPrototypeOf%":M};if(S)try{null.error}catch(Se){var W=S(S(Se));O["%Error.prototype%"]=W}var V=function Se(fe){var ye;if(fe==="%AsyncFunction%")ye=v("async function () {}");else if(fe==="%GeneratorFunction%")ye=v("function* () {}");else if(fe==="%AsyncGeneratorFunction%")ye=v("async function* () {}");else if(fe==="%AsyncGenerator%"){var q=Se("%AsyncGeneratorFunction%");q&&(ye=q.prototype)}else if(fe==="%AsyncIteratorPrototype%"){var Z=Se("%AsyncGenerator%");Z&&S&&(ye=S(Z.prototype))}return O[fe]=ye,ye},Y={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},L=ed(),N=mI(),F=L.call(A,Array.prototype.concat),D=L.call(P,Array.prototype.splice),X=L.call(A,String.prototype.replace),G=L.call(A,String.prototype.slice),K=L.call(A,RegExp.prototype.exec),J=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,oe=/\\(\\)?/g,le=function(fe){var ye=G(fe,0,1),q=G(fe,-1);if(ye==="%"&&q!=="%")throw new o("invalid intrinsic syntax, expected closing `%`");if(q==="%"&&ye!=="%")throw new o("invalid intrinsic syntax, expected opening `%`");var Z=[];return X(fe,J,function(se,H,j,$){Z[Z.length]=j?X($,oe,"$1"):H||se}),Z},ve=function(fe,ye){var q=fe,Z;if(N(Y,q)&&(Z=Y[q],q="%"+Z[0]+"%"),N(O,q)){var se=O[q];if(se===R&&(se=V(q)),typeof se>"u"&&!ye)throw new a("intrinsic "+fe+" exists, but is not available. Please file an issue!");return{alias:Z,name:q,value:se}}throw new o("intrinsic "+fe+" does not exist!")};return xf=function(fe,ye){if(typeof fe!="string"||fe.length===0)throw new a("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof ye!="boolean")throw new a('"allowMissing" argument must be a boolean');if(K(/^%?[^%]*%?$/,fe)===null)throw new o("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var q=le(fe),Z=q.length>0?q[0]:"",se=ve("%"+Z+"%",ye),H=se.name,j=se.value,$=!1,U=se.alias;U&&(Z=U[0],D(q,F([0,1],U)));for(var z=1,ee=!0;z<q.length;z+=1){var ne=q[z],ue=G(ne,0,1),xe=G(ne,-1);if((ue==='"'||ue==="'"||ue==="`"||xe==='"'||xe==="'"||xe==="`")&&ue!==xe)throw new o("property names with quotes must have matching quotes");if((ne==="constructor"||!ee)&&($=!0),Z+="."+ne,H="%"+Z+"%",N(O,H))j=O[H];else if(j!=null){if(!(ne in j)){if(!ye)throw new a("base intrinsic for "+fe+" exists, but the property is not available.");return}if(b&&z+1>=q.length){var be=b(j,ne);ee=!!be,ee&&"get"in be&&!("originalValue"in be.get)?j=be.get:j=j[ne]}else ee=N(j,ne),j=j[ne];ee&&!$&&(O[H]=j)}}return j},xf}var wf,Wv;function iw(){if(Wv)return wf;Wv=1;var n=_g(),e=tw(),t=e([n("%String.prototype.indexOf%")]);return wf=function(s,r){var o=n(s,!!r);return typeof o=="function"&&t(s,".prototype.")>-1?e([o]):o},wf}var Sf,zv;function nw(){if(zv)return Sf;zv=1;var n=_g(),e=iw(),t=Qu(),i=Qa(),s=n("%Map%",!0),r=e("Map.prototype.get",!0),o=e("Map.prototype.set",!0),a=e("Map.prototype.has",!0),c=e("Map.prototype.delete",!0),l=e("Map.prototype.size",!0);return Sf=!!s&&function(){var u,d={assert:function(f){if(!d.has(f))throw new i("Side channel does not contain "+t(f))},delete:function(f){if(u){var m=c(u,f);return l(u)===0&&(u=void 0),m}return!1},get:function(f){if(u)return r(u,f)},has:function(f){return u?a(u,f):!1},set:function(f,m){u||(u=new s),o(u,f,m)}};return d},Sf}var _f,qv;function pI(){if(qv)return _f;qv=1;var n=_g(),e=iw(),t=Qu(),i=nw(),s=Qa(),r=n("%WeakMap%",!0),o=e("WeakMap.prototype.get",!0),a=e("WeakMap.prototype.set",!0),c=e("WeakMap.prototype.has",!0),l=e("WeakMap.prototype.delete",!0);return _f=r?function(){var u,d,f={assert:function(m){if(!f.has(m))throw new s("Side channel does not contain "+t(m))},delete:function(m){if(r&&m&&(typeof m=="object"||typeof m=="function")){if(u)return l(u,m)}else if(i&&d)return d.delete(m);return!1},get:function(m){return r&&m&&(typeof m=="object"||typeof m=="function")&&u?o(u,m):d&&d.get(m)},has:function(m){return r&&m&&(typeof m=="object"||typeof m=="function")&&u?c(u,m):!!d&&d.has(m)},set:function(m,p){r&&m&&(typeof m=="object"||typeof m=="function")?(u||(u=new r),a(u,m,p)):i&&(d||(d=i()),d.set(m,p))}};return f}:i,_f}var Tf,Kv;function sw(){if(Kv)return Tf;Kv=1;var n=Qa(),e=Qu(),t=HA(),i=nw(),s=pI(),r=s||i||t;return Tf=function(){var a,c={assert:function(l){if(!c.has(l)){var h=l&&Object(l)===l?"the given object key":e(l);throw new n("Side channel does not contain "+h)}},delete:function(l){return!!a&&a.delete(l)},get:function(l){return a&&a.get(l)},has:function(l){return!!a&&a.has(l)},set:function(l,h){a||(a=r()),a.set(l,h)}};return c},Tf}var Ef,Jv;function Tg(){if(Jv)return Ef;Jv=1;var n=String.prototype.replace,e=/%20/g,t={RFC1738:"RFC1738",RFC3986:"RFC3986"};return Ef={default:t.RFC3986,formatters:{RFC1738:function(i){return n.call(i,e,"+")},RFC3986:function(i){return String(i)}},RFC1738:t.RFC1738,RFC3986:t.RFC3986},Ef}var Cf,Zv;function rw(){if(Zv)return Cf;Zv=1;var n=Tg(),e=sw(),t=Jx(),i=Object.prototype.hasOwnProperty,s=Array.isArray,r=e(),o=function(M,P){return r.set(M,P),M},a=function(M){return r.has(M)},c=function(M){return r.get(M)},l=function(M,P){r.set(M,P)},h=(function(){for(var C=[],M=0;M<256;++M)C[C.length]="%"+((M<16?"0":"")+M.toString(16)).toUpperCase();return C})(),u=function(M){for(;M.length>1;){var P=M.pop(),A=P.obj[P.prop];if(s(A)){for(var R=[],B=0;B<A.length;++B)typeof A[B]<"u"&&(R[R.length]=A[B]);P.obj[P.prop]=R}}},d=function(M,P){for(var A=P&&P.plainObjects?{__proto__:null}:{},R=0;R<M.length;++R)typeof M[R]<"u"&&(A[R]=M[R]);return A},f=function(M,P,A){P==="__proto__"&&t?t(M,P,{configurable:!0,enumerable:!0,value:A,writable:!0}):M[P]=A},m=function C(M,P,A){if(!P)return M;if(typeof P!="object"&&typeof P!="function"){if(s(M)){var R=M.length;if(A&&typeof A.arrayLimit=="number"&&R>=A.arrayLimit){if(A.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+A.arrayLimit+" element"+(A.arrayLimit===1?"":"s")+" allowed in an array.");return o(d(M.concat(P),A),R)}M[R]=P}else if(M&&typeof M=="object")if(a(M)){var B=c(M)+1;M[B]=P,l(M,B)}else{if(A&&A.strictMerge)return[M,P];(A&&(A.plainObjects||A.allowPrototypes)||!i.call(Object.prototype,P))&&(M[P]=!0)}else return[M,P];return M}if(!M||typeof M!="object"){if(a(P)){for(var O=Object.keys(P),W=A&&A.plainObjects?{__proto__:null,0:M}:{0:M},V=0;V<O.length;V++){var Y=parseInt(O[V],10);W[Y+1]=P[O[V]]}return o(W,c(P)+1)}var L=[M].concat(P);if(A&&typeof A.arrayLimit=="number"&&L.length>A.arrayLimit){if(A.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+A.arrayLimit+" element"+(A.arrayLimit===1?"":"s")+" allowed in an array.");return o(d(L,A),L.length-1)}return L}var N=M;if(s(M)&&!s(P)&&(N=d(M,A)),s(M)&&s(P)){if(P.forEach(function(F,D){if(i.call(M,D)){var X=M[D];X&&typeof X=="object"&&F&&typeof F=="object"?M[D]=C(X,F,A):M[M.length]=F}else M[D]=F}),A&&typeof A.arrayLimit=="number"&&M.length>A.arrayLimit){if(A.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+A.arrayLimit+" element"+(A.arrayLimit===1?"":"s")+" allowed in an array.");return o(d(M,A),M.length-1)}return M}return Object.keys(P).reduce(function(F,D){var X=P[D];if(i.call(F,D)?f(F,D,C(F[D],X,A)):f(F,D,X),a(P)&&!a(F)&&o(F,c(P)),a(F)){var G=parseInt(D,10);String(G)===D&&G>=0&&G>c(F)&&l(F,G)}return F},N)},p=function(M,P){return Object.keys(P).reduce(function(A,R){return f(A,R,P[R]),A},M)},g=function(C,M,P){var A=C.replace(/\+/g," ");if(P==="iso-8859-1")return A.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(A)}catch{return A}},v=1024,b=function(M,P,A,R,B){if(M.length===0)return M;var O=M;if(typeof M=="symbol"?O=Symbol.prototype.toString.call(M):typeof M!="string"&&(O=String(M)),A==="iso-8859-1")return escape(O).replace(/%u[0-9a-f]{4}/gi,function(X){return"%26%23"+parseInt(X.slice(2),16)+"%3B"});for(var W="",V=0;V<O.length;V+=v){var Y=O.length>=v?O.slice(V,V+v):O;if(V+v<O.length){var L=Y.charCodeAt(Y.length-1);L>=55296&&L<=56319&&(Y=Y.slice(0,-1),V-=1)}for(var N=[],F=0;F<Y.length;++F){var D=Y.charCodeAt(F);if(D===45||D===46||D===95||D===126||D>=48&&D<=57||D>=65&&D<=90||D>=97&&D<=122||B===n.RFC1738&&(D===40||D===41)){N[N.length]=Y.charAt(F);continue}if(D<128){N[N.length]=h[D];continue}if(D<2048){N[N.length]=h[192|D>>6]+h[128|D&63];continue}if(D<55296||D>=57344){N[N.length]=h[224|D>>12]+h[128|D>>6&63]+h[128|D&63];continue}F+=1,D=65536+((D&1023)<<10|Y.charCodeAt(F)&1023),N[N.length]=h[240|D>>18]+h[128|D>>12&63]+h[128|D>>6&63]+h[128|D&63]}W+=N.join("")}return W},y=function(M){for(var P=[{obj:{o:M},prop:"o"}],A=e(),R=0;R<P.length;++R)for(var B=P[R],O=B.obj[B.prop],W=Object.keys(O),V=0;V<W.length;++V){var Y=W[V],L=O[Y];typeof L=="object"&&L!==null&&!A.has(L)&&(P[P.length]={obj:O,prop:Y},A.set(L,!0))}return u(P),M},x=function(M){return Object.prototype.toString.call(M)==="[object RegExp]"},_=function(M){return!M||typeof M!="object"?!1:!!(M.constructor&&M.constructor.isBuffer&&M.constructor.isBuffer(M))},E=function(M,P,A,R,B){if(a(M)){if(B)throw new RangeError("Array limit exceeded. Only "+A+" element"+(A===1?"":"s")+" allowed in an array.");var O=c(M)+1;return M[O]=P,l(M,O),M}var W=[].concat(M,P);if(W.length>A){if(B)throw new RangeError("Array limit exceeded. Only "+A+" element"+(A===1?"":"s")+" allowed in an array.");return o(d(W,{plainObjects:R}),W.length-1)}return W},S=function(M,P){if(s(M)){for(var A=[],R=0;R<M.length;R+=1)A[A.length]=P(M[R]);return A}return P(M)};return Cf={arrayToObject:d,assign:p,combine:E,compact:y,decode:g,encode:b,isBuffer:_,isOverflow:a,isRegExp:x,markOverflow:o,maybeMap:S,merge:m},Cf}var Mf,Qv;function gI(){if(Qv)return Mf;Qv=1;var n=sw(),e=rw(),t=Tg(),i=Object.prototype.hasOwnProperty,s={brackets:function(g){return g+"[]"},comma:"comma",indices:function(g,v){return g+"["+v+"]"},repeat:function(g){return g}},r=Array.isArray,o=Array.prototype.push,a=function(p,g){o.apply(p,r(g)?g:[g])},c=Date.prototype.toISOString,l=t.default,h={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,commaRoundTrip:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:e.encode,encodeValuesOnly:!1,filter:void 0,format:l,formatter:t.formatters[l],indices:!1,serializeDate:function(g){return c.call(g)},skipNulls:!1,strictNullHandling:!1},u=function(g){return typeof g=="string"||typeof g=="number"||typeof g=="boolean"||typeof g=="symbol"||typeof g=="bigint"},d={},f=function p(g,v,b,y,x,_,E,S,C,M,P,A,R,B,O,W,V,Y){for(var L=g,N=Y,F=0,D=!1;(N=N.get(d))!==void 0&&!D;){var X=N.get(g);if(F+=1,typeof X<"u"){if(X===F)throw new RangeError("Cyclic object value");D=!0}typeof N.get(d)>"u"&&(F=0)}if(typeof M=="function"?L=M(v,L):L instanceof Date?L=R(L):b==="comma"&&r(L)&&(L=e.maybeMap(L,function(H){return H instanceof Date?R(H):H})),L===null){if(_)return O(C&&!W?C(v,h.encoder,V,"key",B):v);L=""}if(u(L)||e.isBuffer(L)){if(C){var G=W?v:C(v,h.encoder,V,"key",B);return[O(G)+"="+O(C(L,h.encoder,V,"value",B))]}return[O(v)+"="+O(String(L))]}var K=[];if(typeof L>"u")return K;var J;if(b==="comma"&&r(L))W&&C&&(L=e.maybeMap(L,function(H){return H==null?H:C(H)})),J=[{value:L.length>0?L.join(",")||null:void 0}];else if(r(M))J=M;else{var oe=Object.keys(L);J=P?oe.sort(P):oe}var le=S?String(v).replace(/\./g,"%2E"):String(v),ve=y&&r(L)&&L.length===1?le+"[]":le;if(x&&r(L)&&L.length===0)return ve+"[]";for(var Se=0;Se<J.length;++Se){var fe=J[Se],ye=typeof fe=="object"&&fe&&typeof fe.value<"u"?fe.value:L[fe];if(!(E&&ye===null)){var q=A&&S?String(fe).replace(/\./g,"%2E"):String(fe),Z=r(L)?typeof b=="function"?b(ve,q):ve:ve+(A?"."+q:"["+q+"]");Y.set(g,F);var se=n();se.set(d,Y),a(K,p(ye,Z,b,y,x,_,E,S,b==="comma"&&W&&r(L)?null:C,M,P,A,R,B,O,W,V,se))}}return K},m=function(g){if(!g)return h;if(typeof g.allowEmptyArrays<"u"&&typeof g.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof g.encodeDotInKeys<"u"&&typeof g.encodeDotInKeys!="boolean")throw new TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(g.encoder!==null&&typeof g.encoder<"u"&&typeof g.encoder!="function")throw new TypeError("Encoder has to be a function.");var v=g.charset||h.charset;if(typeof g.charset<"u"&&g.charset!=="utf-8"&&g.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var b=t.default;if(typeof g.format<"u"){if(!i.call(t.formatters,g.format))throw new TypeError("Unknown format option provided.");b=g.format}var y=t.formatters[b],x=h.filter;(typeof g.filter=="function"||r(g.filter))&&(x=g.filter);var _;if(g.arrayFormat in s?_=g.arrayFormat:"indices"in g?_=g.indices?"indices":"repeat":_=h.arrayFormat,"commaRoundTrip"in g&&typeof g.commaRoundTrip!="boolean")throw new TypeError("`commaRoundTrip` must be a boolean, or absent");var E=typeof g.allowDots>"u"?g.encodeDotInKeys===!0?!0:h.allowDots:!!g.allowDots;return{addQueryPrefix:typeof g.addQueryPrefix=="boolean"?g.addQueryPrefix:h.addQueryPrefix,allowDots:E,allowEmptyArrays:typeof g.allowEmptyArrays=="boolean"?!!g.allowEmptyArrays:h.allowEmptyArrays,arrayFormat:_,charset:v,charsetSentinel:typeof g.charsetSentinel=="boolean"?g.charsetSentinel:h.charsetSentinel,commaRoundTrip:!!g.commaRoundTrip,delimiter:typeof g.delimiter>"u"?h.delimiter:g.delimiter,encode:typeof g.encode=="boolean"?g.encode:h.encode,encodeDotInKeys:typeof g.encodeDotInKeys=="boolean"?g.encodeDotInKeys:h.encodeDotInKeys,encoder:typeof g.encoder=="function"?g.encoder:h.encoder,encodeValuesOnly:typeof g.encodeValuesOnly=="boolean"?g.encodeValuesOnly:h.encodeValuesOnly,filter:x,format:b,formatter:y,serializeDate:typeof g.serializeDate=="function"?g.serializeDate:h.serializeDate,skipNulls:typeof g.skipNulls=="boolean"?g.skipNulls:h.skipNulls,sort:typeof g.sort=="function"?g.sort:null,strictNullHandling:typeof g.strictNullHandling=="boolean"?g.strictNullHandling:h.strictNullHandling}};return Mf=function(p,g){var v=p,b=m(g),y,x;typeof b.filter=="function"?(x=b.filter,v=x("",v)):r(b.filter)&&(x=b.filter,y=x);var _=[];if(typeof v!="object"||v===null)return"";var E=s[b.arrayFormat],S=E==="comma"&&b.commaRoundTrip;y||(y=Object.keys(v)),b.sort&&y.sort(b.sort);for(var C=n(),M=0;M<y.length;++M){var P=y[M];if(!(typeof P>"u"||P===null)){var A=v[P];b.skipNulls&&A===null||a(_,f(A,P,E,S,b.allowEmptyArrays,b.strictNullHandling,b.skipNulls,b.encodeDotInKeys,b.encode?b.encoder:null,b.filter,b.sort,b.allowDots,b.serializeDate,b.format,b.formatter,b.encodeValuesOnly,b.charset,C))}}var R=_.join(b.delimiter),B=b.addQueryPrefix===!0?"?":"";return b.charsetSentinel&&(b.charset==="iso-8859-1"?B+="utf8=%26%2310003%3B"+b.delimiter:B+="utf8=%E2%9C%93"+b.delimiter),R.length>0?B+R:""},Mf}var Af,ey;function vI(){if(ey)return Af;ey=1;var n=rw(),e=Object.prototype.hasOwnProperty,t=Array.isArray,i={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:n.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictMerge:!0,strictNullHandling:!1,throwOnLimitExceeded:!1},s=function(f){return f.replace(/&#(\d+);/g,function(m,p){return String.fromCharCode(parseInt(p,10))})},r=function(f,m,p,g){if(f&&typeof f=="string"&&m.comma&&f.indexOf(",")>-1){if(g&&m.throwOnLimitExceeded)for(var v=0,b=f.indexOf(",");b>-1;){if(v+=1,v>=m.arrayLimit)throw new RangeError("Array limit exceeded. Only "+m.arrayLimit+" element"+(m.arrayLimit===1?"":"s")+" allowed in an array.");b=f.indexOf(",",b+1)}return f.split(",")}if(m.throwOnLimitExceeded&&p>=m.arrayLimit)throw new RangeError("Array limit exceeded. Only "+m.arrayLimit+" element"+(m.arrayLimit===1?"":"s")+" allowed in an array.");return f},o="utf8=%26%2310003%3B",a="utf8=%E2%9C%93",c=function(m,p){var g={__proto__:null},v=p.ignoreQueryPrefix?m.replace(/^\?/,""):m;v=v.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var b=p.parameterLimit===1/0?void 0:p.parameterLimit,y=v.split(p.delimiter,p.throwOnLimitExceeded&&typeof b<"u"?b+1:b);if(p.throwOnLimitExceeded&&typeof b<"u"&&y.length>b)throw new RangeError("Parameter limit exceeded. Only "+b+" parameter"+(b===1?"":"s")+" allowed.");var x=-1,_,E=p.charset;if(p.charsetSentinel)for(_=0;_<y.length;++_)y[_].indexOf("utf8=")===0&&(y[_]===a?E="utf-8":y[_]===o&&(E="iso-8859-1"),x=_,_=y.length);for(_=0;_<y.length;++_)if(_!==x){var S=y[_],C=S.indexOf("]="),M=C===-1?S.indexOf("="):C+1,P,A;if(M===-1?(P=p.decoder(S,i.decoder,E,"key"),A=p.strictNullHandling?null:""):(P=p.decoder(S.slice(0,M),i.decoder,E,"key"),P!==null&&(A=n.maybeMap(r(S.slice(M+1),p,t(g[P])?g[P].length:0,S.indexOf("[]=")===-1),function(B){return p.decoder(B,i.decoder,E,"value")}))),A&&p.interpretNumericEntities&&E==="iso-8859-1"&&(A=s(String(A))),S.indexOf("[]=")>-1&&(A=t(A)?[A]:A),p.comma&&t(A)&&A.length>p.arrayLimit&&(A=n.combine([],A,p.arrayLimit,p.plainObjects,p.throwOnLimitExceeded)),P!==null){var R=e.call(g,P);R&&(p.duplicates==="combine"||S.indexOf("[]=")>-1)?g[P]=n.combine(g[P],A,p.arrayLimit,p.plainObjects,p.throwOnLimitExceeded):(!R||p.duplicates==="last")&&(g[P]=A)}}return g},l=function(f,m,p,g){var v=0;if(f.length>0&&f[f.length-1]==="[]"){var b=f.slice(0,-1).join("");v=Array.isArray(m)&&m[b]?m[b].length:0}for(var y=g?m:r(m,p,v),x=f.length-1;x>=0;--x){var _,E=f[x];if(E==="[]"&&p.parseArrays)n.isOverflow(y)?_=y:_=p.allowEmptyArrays&&(y===""||p.strictNullHandling&&y===null)?[]:n.combine([],y,p.arrayLimit,p.plainObjects,p.throwOnLimitExceeded);else{_=p.plainObjects?{__proto__:null}:{};var S=E.charAt(0)==="["&&E.charAt(E.length-1)==="]"?E.slice(1,-1):E,C=p.decodeDotInKeys?S.replace(/%2E/g,"."):S,M=parseInt(C,10),P=!isNaN(M)&&E!==C&&String(M)===C&&M>=0&&p.parseArrays;if(!p.parseArrays&&C==="")_={0:y};else if(P&&M<p.arrayLimit)_=[],_[M]=y;else{if(P&&p.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+p.arrayLimit+" element"+(p.arrayLimit===1?"":"s")+" allowed in an array.");P?(_[M]=y,n.markOverflow(_,M)):C!=="__proto__"&&(_[C]=y)}}y=_}return y},h=function(m,p){var g=p.allowDots?m.replace(/\.([^.[]+)/g,"[$1]"):m;if(p.depth<=0)return!p.plainObjects&&e.call(Object.prototype,g)&&!p.allowPrototypes?void 0:[g];var v=[],b=g.indexOf("["),y=b>=0?g.slice(0,b):g;if(y){if(!p.plainObjects&&e.call(Object.prototype,y)&&!p.allowPrototypes)return;v[v.length]=y}for(var x=g.length,_=b,E=0;_>=0&&E<p.depth;){for(var S=1,C=_+1,M=-1;C<x&&M<0;){var P=g.charCodeAt(C);P===91?S+=1:P===93&&(S-=1,S===0&&(M=C)),C+=1}if(M<0)return v[v.length]="["+g.slice(_)+"]",v;var A=g.slice(_,M+1),R=A.slice(1,-1);if(!p.plainObjects&&e.call(Object.prototype,R)&&!p.allowPrototypes)return;v[v.length]=A,E+=1,_=g.indexOf("[",M+1)}if(_>=0){if(p.strictDepth===!0)throw new RangeError("Input depth exceeded depth option of "+p.depth+" and strictDepth is true");v[v.length]="["+g.slice(_)+"]"}return v},u=function(m,p,g,v){if(m){var b=h(m,g);if(b)return l(b,p,g,v)}},d=function(m){if(!m)return i;if(typeof m.allowEmptyArrays<"u"&&typeof m.allowEmptyArrays!="boolean")throw new TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof m.decodeDotInKeys<"u"&&typeof m.decodeDotInKeys!="boolean")throw new TypeError("`decodeDotInKeys` option can only be `true` or `false`, when provided");if(m.decoder!==null&&typeof m.decoder<"u"&&typeof m.decoder!="function")throw new TypeError("Decoder has to be a function.");if(typeof m.charset<"u"&&m.charset!=="utf-8"&&m.charset!=="iso-8859-1")throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");if(typeof m.throwOnLimitExceeded<"u"&&typeof m.throwOnLimitExceeded!="boolean")throw new TypeError("`throwOnLimitExceeded` option must be a boolean");var p=typeof m.charset>"u"?i.charset:m.charset,g=typeof m.duplicates>"u"?i.duplicates:m.duplicates;if(g!=="combine"&&g!=="first"&&g!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var v=typeof m.allowDots>"u"?m.decodeDotInKeys===!0?!0:i.allowDots:!!m.allowDots;return{allowDots:v,allowEmptyArrays:typeof m.allowEmptyArrays=="boolean"?!!m.allowEmptyArrays:i.allowEmptyArrays,allowPrototypes:typeof m.allowPrototypes=="boolean"?m.allowPrototypes:i.allowPrototypes,allowSparse:typeof m.allowSparse=="boolean"?m.allowSparse:i.allowSparse,arrayLimit:typeof m.arrayLimit=="number"?m.arrayLimit:i.arrayLimit,charset:p,charsetSentinel:typeof m.charsetSentinel=="boolean"?m.charsetSentinel:i.charsetSentinel,comma:typeof m.comma=="boolean"?m.comma:i.comma,decodeDotInKeys:typeof m.decodeDotInKeys=="boolean"?m.decodeDotInKeys:i.decodeDotInKeys,decoder:typeof m.decoder=="function"?m.decoder:i.decoder,delimiter:typeof m.delimiter=="string"||n.isRegExp(m.delimiter)?m.delimiter:i.delimiter,depth:typeof m.depth=="number"||m.depth===!1?+m.depth:i.depth,duplicates:g,ignoreQueryPrefix:m.ignoreQueryPrefix===!0,interpretNumericEntities:typeof m.interpretNumericEntities=="boolean"?m.interpretNumericEntities:i.interpretNumericEntities,parameterLimit:typeof m.parameterLimit=="number"?m.parameterLimit:i.parameterLimit,parseArrays:m.parseArrays!==!1,plainObjects:typeof m.plainObjects=="boolean"?m.plainObjects:i.plainObjects,strictDepth:typeof m.strictDepth=="boolean"?!!m.strictDepth:i.strictDepth,strictMerge:typeof m.strictMerge=="boolean"?!!m.strictMerge:i.strictMerge,strictNullHandling:typeof m.strictNullHandling=="boolean"?m.strictNullHandling:i.strictNullHandling,throwOnLimitExceeded:typeof m.throwOnLimitExceeded=="boolean"?m.throwOnLimitExceeded:!1}};return Af=function(f,m){var p=d(m);if(f===""||f===null||typeof f>"u")return p.plainObjects?{__proto__:null}:{};for(var g=typeof f=="string"?c(f,p):f,v=p.plainObjects?{__proto__:null}:{},b=Object.keys(g),y=0;y<b.length;++y){var x=b[y],_=u(x,g[x],p,typeof f=="string");v=n.merge(v,_,p)}return p.allowSparse===!0?v:n.compact(v)},Af}var If,ty;function yI(){if(ty)return If;ty=1;var n=gI(),e=vI(),t=Tg();return If={formats:t,parse:e,stringify:n},If}var iy;function bI(){if(iy)return uo;iy=1;var n=VA();function e(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var t=/^([a-z0-9.+-]+:)/i,i=/:[0-9]*$/,s=/^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/,r=["<",">",'"',"`"," ","\r",`
`," "],o=["{","}","|","\\","^","`"].concat(r),a=["'"].concat(o),c=["%","/","?",";","#"].concat(a),l=["/","?","#"],h=255,u=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,f={javascript:!0,"javascript:":!0},m={javascript:!0,"javascript:":!0},p={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},g=yI();function v(_,E,S){if(_&&typeof _=="object"&&_ instanceof e)return _;var C=new e;return C.parse(_,E,S),C}e.prototype.parse=function(_,E,S){if(typeof _!="string")throw new TypeError("Parameter 'url' must be a string, not "+typeof _);var C=_.indexOf("?"),M=C!==-1&&C<_.indexOf("#")?"?":"#",P=_.split(M),A=/\\/g;P[0]=P[0].replace(A,"/"),_=P.join(M);var R=_;if(R=R.trim(),!S&&_.split("#").length===1){var B=s.exec(R);if(B)return this.path=R,this.href=R,this.pathname=B[1],B[2]?(this.search=B[2],E?this.query=g.parse(this.search.substr(1)):this.query=this.search.substr(1)):E&&(this.search="",this.query={}),this}var O=t.exec(R);if(O){O=O[0];var W=O.toLowerCase();this.protocol=W,R=R.substr(O.length)}if(S||O||R.match(/^\/\/[^@/]+@[^@/]+/)){var V=R.substr(0,2)==="//";V&&!(O&&m[O])&&(R=R.substr(2),this.slashes=!0)}if(!m[O]&&(V||O&&!p[O])){for(var Y=-1,L=0;L<l.length;L++){var N=R.indexOf(l[L]);N!==-1&&(Y===-1||N<Y)&&(Y=N)}var F,D;Y===-1?D=R.lastIndexOf("@"):D=R.lastIndexOf("@",Y),D!==-1&&(F=R.slice(0,D),R=R.slice(D+1),this.auth=decodeURIComponent(F)),Y=-1;for(var L=0;L<c.length;L++){var N=R.indexOf(c[L]);N!==-1&&(Y===-1||N<Y)&&(Y=N)}Y===-1&&(Y=R.length),this.host=R.slice(0,Y),R=R.slice(Y),this.parseHost(),this.hostname=this.hostname||"";var X=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!X)for(var G=this.hostname.split(/\./),L=0,K=G.length;L<K;L++){var J=G[L];if(J&&!J.match(u)){for(var oe="",le=0,ve=J.length;le<ve;le++)J.charCodeAt(le)>127?oe+="x":oe+=J[le];if(!oe.match(u)){var Se=G.slice(0,L),fe=G.slice(L+1),ye=J.match(d);ye&&(Se.push(ye[1]),fe.unshift(ye[2])),fe.length&&(R="/"+fe.join(".")+R),this.hostname=Se.join(".");break}}}this.hostname.length>h?this.hostname="":this.hostname=this.hostname.toLowerCase(),X||(this.hostname=n.toASCII(this.hostname));var q=this.port?":"+this.port:"",Z=this.hostname||"";this.host=Z+q,this.href+=this.host,X&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),R[0]!=="/"&&(R="/"+R))}if(!f[W])for(var L=0,K=a.length;L<K;L++){var se=a[L];if(R.indexOf(se)!==-1){var H=encodeURIComponent(se);H===se&&(H=escape(se)),R=R.split(se).join(H)}}var j=R.indexOf("#");j!==-1&&(this.hash=R.substr(j),R=R.slice(0,j));var $=R.indexOf("?");if($!==-1?(this.search=R.substr($),this.query=R.substr($+1),E&&(this.query=g.parse(this.query)),R=R.slice(0,$)):E&&(this.search="",this.query={}),R&&(this.pathname=R),p[W]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var q=this.pathname||"",U=this.search||"";this.path=q+U}return this.href=this.format(),this};function b(_){return typeof _=="string"&&(_=v(_)),_ instanceof e?_.format():e.prototype.format.call(_)}e.prototype.format=function(){var _=this.auth||"";_&&(_=encodeURIComponent(_),_=_.replace(/%3A/i,":"),_+="@");var E=this.protocol||"",S=this.pathname||"",C=this.hash||"",M=!1,P="";this.host?M=_+this.host:this.hostname&&(M=_+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(M+=":"+this.port)),this.query&&typeof this.query=="object"&&Object.keys(this.query).length&&(P=g.stringify(this.query,{arrayFormat:"repeat",addQueryPrefix:!1}));var A=this.search||P&&"?"+P||"";return E&&E.substr(-1)!==":"&&(E+=":"),this.slashes||(!E||p[E])&&M!==!1?(M="//"+(M||""),S&&S.charAt(0)!=="/"&&(S="/"+S)):M||(M=""),C&&C.charAt(0)!=="#"&&(C="#"+C),A&&A.charAt(0)!=="?"&&(A="?"+A),S=S.replace(/[?#]/g,function(R){return encodeURIComponent(R)}),A=A.replace("#","%23"),E+M+S+A+C};function y(_,E){return v(_,!1,!0).resolve(E)}e.prototype.resolve=function(_){return this.resolveObject(v(_,!1,!0)).format()};function x(_,E){return _?v(_,!1,!0).resolveObject(E):E}return e.prototype.resolveObject=function(_){if(typeof _=="string"){var E=new e;E.parse(_,!1,!0),_=E}for(var S=new e,C=Object.keys(this),M=0;M<C.length;M++){var P=C[M];S[P]=this[P]}if(S.hash=_.hash,_.href==="")return S.href=S.format(),S;if(_.slashes&&!_.protocol){for(var A=Object.keys(_),R=0;R<A.length;R++){var B=A[R];B!=="protocol"&&(S[B]=_[B])}return p[S.protocol]&&S.hostname&&!S.pathname&&(S.pathname="/",S.path=S.pathname),S.href=S.format(),S}if(_.protocol&&_.protocol!==S.protocol){if(!p[_.protocol]){for(var O=Object.keys(_),W=0;W<O.length;W++){var V=O[W];S[V]=_[V]}return S.href=S.format(),S}if(S.protocol=_.protocol,!_.host&&!m[_.protocol]){for(var K=(_.pathname||"").split("/");K.length&&!(_.host=K.shift()););_.host||(_.host=""),_.hostname||(_.hostname=""),K[0]!==""&&K.unshift(""),K.length<2&&K.unshift(""),S.pathname=K.join("/")}else S.pathname=_.pathname;if(S.search=_.search,S.query=_.query,S.host=_.host||"",S.auth=_.auth,S.hostname=_.hostname||_.host,S.port=_.port,S.pathname||S.search){var Y=S.pathname||"",L=S.search||"";S.path=Y+L}return S.slashes=S.slashes||_.slashes,S.href=S.format(),S}var N=S.pathname&&S.pathname.charAt(0)==="/",F=_.host||_.pathname&&_.pathname.charAt(0)==="/",D=F||N||S.host&&_.pathname,X=D,G=S.pathname&&S.pathname.split("/")||[],K=_.pathname&&_.pathname.split("/")||[],J=S.protocol&&!p[S.protocol];if(J&&(S.hostname="",S.port=null,S.host&&(G[0]===""?G[0]=S.host:G.unshift(S.host)),S.host="",_.protocol&&(_.hostname=null,_.port=null,_.host&&(K[0]===""?K[0]=_.host:K.unshift(_.host)),_.host=null),D=D&&(K[0]===""||G[0]==="")),F)S.host=_.host||_.host===""?_.host:S.host,S.hostname=_.hostname||_.hostname===""?_.hostname:S.hostname,S.search=_.search,S.query=_.query,G=K;else if(K.length)G||(G=[]),G.pop(),G=G.concat(K),S.search=_.search,S.query=_.query;else if(_.search!=null){if(J){S.host=G.shift(),S.hostname=S.host;var oe=S.host&&S.host.indexOf("@")>0?S.host.split("@"):!1;oe&&(S.auth=oe.shift(),S.hostname=oe.shift(),S.host=S.hostname)}return S.search=_.search,S.query=_.query,(S.pathname!==null||S.search!==null)&&(S.path=(S.pathname?S.pathname:"")+(S.search?S.search:"")),S.href=S.format(),S}if(!G.length)return S.pathname=null,S.search?S.path="/"+S.search:S.path=null,S.href=S.format(),S;for(var le=G.slice(-1)[0],ve=(S.host||_.host||G.length>1)&&(le==="."||le==="..")||le==="",Se=0,fe=G.length;fe>=0;fe--)le=G[fe],le==="."?G.splice(fe,1):le===".."?(G.splice(fe,1),Se++):Se&&(G.splice(fe,1),Se--);if(!D&&!X)for(;Se--;Se)G.unshift("..");D&&G[0]!==""&&(!G[0]||G[0].charAt(0)!=="/")&&G.unshift(""),ve&&G.join("/").substr(-1)!=="/"&&G.push("");var ye=G[0]===""||G[0]&&G[0].charAt(0)==="/";if(J){S.hostname=ye?"":G.length?G.shift():"",S.host=S.hostname;var oe=S.host&&S.host.indexOf("@")>0?S.host.split("@"):!1;oe&&(S.auth=oe.shift(),S.hostname=oe.shift(),S.host=S.hostname)}return D=D||S.host&&G.length,D&&!ye&&G.unshift(""),G.length>0?S.pathname=G.join("/"):(S.pathname=null,S.path=null),(S.pathname!==null||S.search!==null)&&(S.path=(S.pathname?S.pathname:"")+(S.search?S.search:"")),S.auth=_.auth||S.auth,S.slashes=S.slashes||_.slashes,S.href=S.format(),S},e.prototype.parseHost=function(){var _=this.host,E=i.exec(_);E&&(E=E[0],E!==":"&&(this.port=E.substr(1)),_=_.substr(0,_.length-E.length)),_&&(this.hostname=_)},uo.parse=v,uo.resolve=y,uo.resolveObject=x,uo.format=b,uo.Url=e,uo}bI();const ny={};function pt(n,e,t=3){if(ny[e])return;let i=new Error().stack;typeof i>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
Deprecated since v${n}`):(i=i.split(`
`).splice(t).join(`
`),console.groupCollapsed?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",`${e}
Deprecated since v${n}`),console.warn(i),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",`${e}
Deprecated since v${n}`),console.warn(i))),ny[e]=!0}function Bn(n){if(typeof n!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(n)}`)}function hl(n){return n.split("?")[0].split("#")[0]}function xI(n){return n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function wI(n,e,t){return n.replace(new RegExp(xI(e),"g"),t)}function SI(n,e){let t="",i=0,s=-1,r=0,o=-1;for(let a=0;a<=n.length;++a){if(a<n.length)o=n.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||r===1))if(s!==a-1&&r===2){if(t.length<2||i!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){const c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",i=0):(t=t.slice(0,c),i=t.length-1-t.lastIndexOf("/")),s=a,r=0;continue}}else if(t.length===2||t.length===1){t="",i=0,s=a,r=0;continue}}}else t.length>0?t+=`/${n.slice(s+1,a)}`:t=n.slice(s+1,a),i=a-s-1;s=a,r=0}else o===46&&r!==-1?++r:r=-1}return t}const di={toPosix(n){return wI(n,"\\","/")},isUrl(n){return/^https?:/.test(this.toPosix(n))},isDataUrl(n){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(n)},isBlobUrl(n){return n.startsWith("blob:")},hasProtocol(n){return/^[^/:]+:/.test(this.toPosix(n))},getProtocol(n){Bn(n),n=this.toPosix(n);const e=/^file:\/\/\//.exec(n);if(e)return e[0];const t=/^[^/:]+:\/{0,2}/.exec(n);return t?t[0]:""},toAbsolute(n,e,t){if(Bn(n),this.isDataUrl(n)||this.isBlobUrl(n))return n;const i=hl(this.toPosix(e??Ve.ADAPTER.getBaseUrl())),s=hl(this.toPosix(t??this.rootname(i)));return n=this.toPosix(n),n.startsWith("/")?di.join(s,n.slice(1)):this.isAbsolute(n)?n:this.join(i,n)},normalize(n){if(Bn(n),n.length===0)return".";if(this.isDataUrl(n)||this.isBlobUrl(n))return n;n=this.toPosix(n);let e="";const t=n.startsWith("/");this.hasProtocol(n)&&(e=this.rootname(n),n=n.slice(e.length));const i=n.endsWith("/");return n=SI(n),n.length>0&&i&&(n+="/"),t?`/${n}`:e+n},isAbsolute(n){return Bn(n),n=this.toPosix(n),this.hasProtocol(n)?!0:n.startsWith("/")},join(...n){if(n.length===0)return".";let e;for(let t=0;t<n.length;++t){const i=n[t];if(Bn(i),i.length>0)if(e===void 0)e=i;else{const s=n[t-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?e+=`/../${i}`:e+=`/${i}`}}return e===void 0?".":this.normalize(e)},dirname(n){if(Bn(n),n.length===0)return".";n=this.toPosix(n);let e=n.charCodeAt(0);const t=e===47;let i=-1,s=!0;const r=this.getProtocol(n),o=n;n=n.slice(r.length);for(let a=n.length-1;a>=1;--a)if(e=n.charCodeAt(a),e===47){if(!s){i=a;break}}else s=!1;return i===-1?t?"/":this.isUrl(o)?r+n:r:t&&i===1?"//":r+n.slice(0,i)},rootname(n){Bn(n),n=this.toPosix(n);let e="";if(n.startsWith("/")?e="/":e=this.getProtocol(n),this.isUrl(n)){const t=n.indexOf("/",e.length);t!==-1?e=n.slice(0,t):e=n,e.endsWith("/")||(e+="/")}return e},basename(n,e){Bn(n),e&&Bn(e),n=hl(this.toPosix(n));let t=0,i=-1,s=!0,r;if(e!==void 0&&e.length>0&&e.length<=n.length){if(e.length===n.length&&e===n)return"";let o=e.length-1,a=-1;for(r=n.length-1;r>=0;--r){const c=n.charCodeAt(r);if(c===47){if(!s){t=r+1;break}}else a===-1&&(s=!1,a=r+1),o>=0&&(c===e.charCodeAt(o)?--o===-1&&(i=r):(o=-1,i=a))}return t===i?i=a:i===-1&&(i=n.length),n.slice(t,i)}for(r=n.length-1;r>=0;--r)if(n.charCodeAt(r)===47){if(!s){t=r+1;break}}else i===-1&&(s=!1,i=r+1);return i===-1?"":n.slice(t,i)},extname(n){Bn(n),n=hl(this.toPosix(n));let e=-1,t=0,i=-1,s=!0,r=0;for(let o=n.length-1;o>=0;--o){const a=n.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}i===-1&&(s=!1,i=o+1),a===46?e===-1?e=o:r!==1&&(r=1):e!==-1&&(r=-1)}return e===-1||i===-1||r===0||r===1&&e===i-1&&e===t+1?"":n.slice(e,i)},parse(n){Bn(n);const e={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return e;n=hl(this.toPosix(n));let t=n.charCodeAt(0);const i=this.isAbsolute(n);let s;e.root=this.rootname(n),i||this.hasProtocol(n)?s=1:s=0;let r=-1,o=0,a=-1,c=!0,l=n.length-1,h=0;for(;l>=s;--l){if(t=n.charCodeAt(l),t===47){if(!c){o=l+1;break}continue}a===-1&&(c=!1,a=l+1),t===46?r===-1?r=l:h!==1&&(h=1):r!==-1&&(h=-1)}return r===-1||a===-1||h===0||h===1&&r===a-1&&r===o+1?a!==-1&&(o===0&&i?e.base=e.name=n.slice(1,a):e.base=e.name=n.slice(o,a)):(o===0&&i?(e.name=n.slice(1,r),e.base=n.slice(1,a)):(e.name=n.slice(o,r),e.base=n.slice(o,a)),e.ext=n.slice(r,a)),e.dir=this.dirname(n),e},sep:"/",delimiter:":",joinExtensions:[".html"]};let Pf;async function _I(){return Pf??(Pf=(async()=>{var r;const n=document.createElement("canvas").getContext("webgl");if(!n)return Ri.UNPACK;const e=await new Promise(o=>{const 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 Ri.UNPACK;const t=n.createTexture();n.bindTexture(n.TEXTURE_2D,t);const i=n.createFramebuffer();n.bindFramebuffer(n.FRAMEBUFFER,i),n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,t,0),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e);const s=new Uint8Array(4);return n.readPixels(0,0,1,1,n.RGBA,n.UNSIGNED_BYTE,s),n.deleteFramebuffer(i),n.deleteTexture(t),(r=n.getExtension("WEBGL_lose_context"))==null||r.loseContext(),s[0]<=s[3]?Ri.PMA:Ri.UNPACK})()),Pf}let Rf;function TI(){return typeof Rf>"u"&&(Rf=(function(){var e;const n={stencil:!0,failIfMajorPerformanceCaveat:Ve.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT};try{if(!Ve.ADAPTER.getWebGLRenderingContext())return!1;const t=Ve.ADAPTER.createCanvas();let i=t.getContext("webgl",n)||t.getContext("experimental-webgl",n);const s=!!((e=i==null?void 0:i.getContextAttributes())!=null&&e.stencil);if(i){const r=i.getExtension("WEBGL_lose_context");r&&r.loseContext()}return i=null,s}catch{return!1}})()),Rf}var EI={grad:.9,turn:360,rad:360/(2*Math.PI)},Ds=function(n){return typeof n=="string"?n.length>0:typeof n=="number"},Ii=function(n,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*n)/t+0},Fn=function(n,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),n>t?t:n>e?n:e},ow=function(n){return(n=isFinite(n)?n%360:0)>0?n:n+360},sy=function(n){return{r:Fn(n.r,0,255),g:Fn(n.g,0,255),b:Fn(n.b,0,255),a:Fn(n.a)}},kf=function(n){return{r:Ii(n.r),g:Ii(n.g),b:Ii(n.b),a:Ii(n.a,3)}},CI=/^#([0-9a-f]{3,8})$/i,Oc=function(n){var e=n.toString(16);return e.length<2?"0"+e:e},aw=function(n){var e=n.r,t=n.g,i=n.b,s=n.a,r=Math.max(e,t,i),o=r-Math.min(e,t,i),a=o?r===e?(t-i)/o:r===t?2+(i-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:r?o/r*100:0,v:r/255*100,a:s}},lw=function(n){var e=n.h,t=n.s,i=n.v,s=n.a;e=e/360*6,t/=100,i/=100;var r=Math.floor(e),o=i*(1-t),a=i*(1-(e-r)*t),c=i*(1-(1-e+r)*t),l=r%6;return{r:255*[i,a,o,o,c,i][l],g:255*[c,i,i,a,o,o][l],b:255*[o,o,c,i,i,a][l],a:s}},ry=function(n){return{h:ow(n.h),s:Fn(n.s,0,100),l:Fn(n.l,0,100),a:Fn(n.a)}},oy=function(n){return{h:Ii(n.h),s:Ii(n.s),l:Ii(n.l),a:Ii(n.a,3)}},ay=function(n){return lw((t=(e=n).s,{h:e.h,s:(t*=((i=e.l)<50?i:100-i)/100)>0?2*t/(i+t)*100:0,v:i+t,a:e.a}));var e,t,i},kl=function(n){return{h:(e=aw(n)).h,s:(s=(200-(t=e.s))*(i=e.v)/100)>0&&s<200?t*i/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,i,s},MI=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,AI=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,II=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,PI=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Nm={string:[[function(n){var e=CI.exec(n);return e?(n=e[1]).length<=4?{r:parseInt(n[0]+n[0],16),g:parseInt(n[1]+n[1],16),b:parseInt(n[2]+n[2],16),a:n.length===4?Ii(parseInt(n[3]+n[3],16)/255,2):1}:n.length===6||n.length===8?{r:parseInt(n.substr(0,2),16),g:parseInt(n.substr(2,2),16),b:parseInt(n.substr(4,2),16),a:n.length===8?Ii(parseInt(n.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(n){var e=II.exec(n)||PI.exec(n);return e?e[2]!==e[4]||e[4]!==e[6]?null:sy({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(n){var e=MI.exec(n)||AI.exec(n);if(!e)return null;var t,i,s=ry({h:(t=e[1],i=e[2],i===void 0&&(i="deg"),Number(t)*(EI[i]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return ay(s)},"hsl"]],object:[[function(n){var e=n.r,t=n.g,i=n.b,s=n.a,r=s===void 0?1:s;return Ds(e)&&Ds(t)&&Ds(i)?sy({r:Number(e),g:Number(t),b:Number(i),a:Number(r)}):null},"rgb"],[function(n){var e=n.h,t=n.s,i=n.l,s=n.a,r=s===void 0?1:s;if(!Ds(e)||!Ds(t)||!Ds(i))return null;var o=ry({h:Number(e),s:Number(t),l:Number(i),a:Number(r)});return ay(o)},"hsl"],[function(n){var e=n.h,t=n.s,i=n.v,s=n.a,r=s===void 0?1:s;if(!Ds(e)||!Ds(t)||!Ds(i))return null;var o=(function(a){return{h:ow(a.h),s:Fn(a.s,0,100),v:Fn(a.v,0,100),a:Fn(a.a)}})({h:Number(e),s:Number(t),v:Number(i),a:Number(r)});return lw(o)},"hsv"]]},ly=function(n,e){for(var t=0;t<e.length;t++){var i=e[t][0](n);if(i)return[i,e[t][1]]}return[null,void 0]},RI=function(n){return typeof n=="string"?ly(n.trim(),Nm.string):typeof n=="object"&&n!==null?ly(n,Nm.object):[null,void 0]},Ff=function(n,e){var t=kl(n);return{h:t.h,s:Fn(t.s+100*e,0,100),l:t.l,a:t.a}},Lf=function(n){return(299*n.r+587*n.g+114*n.b)/1e3/255},cy=function(n,e){var t=kl(n);return{h:t.h,s:t.s,l:Fn(t.l+100*e,0,100),a:t.a}},Dm=(function(){function n(e){this.parsed=RI(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return n.prototype.isValid=function(){return this.parsed!==null},n.prototype.brightness=function(){return Ii(Lf(this.rgba),2)},n.prototype.isDark=function(){return Lf(this.rgba)<.5},n.prototype.isLight=function(){return Lf(this.rgba)>=.5},n.prototype.toHex=function(){return e=kf(this.rgba),t=e.r,i=e.g,s=e.b,o=(r=e.a)<1?Oc(Ii(255*r)):"","#"+Oc(t)+Oc(i)+Oc(s)+o;var e,t,i,s,r,o},n.prototype.toRgb=function(){return kf(this.rgba)},n.prototype.toRgbString=function(){return e=kf(this.rgba),t=e.r,i=e.g,s=e.b,(r=e.a)<1?"rgba("+t+", "+i+", "+s+", "+r+")":"rgb("+t+", "+i+", "+s+")";var e,t,i,s,r},n.prototype.toHsl=function(){return oy(kl(this.rgba))},n.prototype.toHslString=function(){return e=oy(kl(this.rgba)),t=e.h,i=e.s,s=e.l,(r=e.a)<1?"hsla("+t+", "+i+"%, "+s+"%, "+r+")":"hsl("+t+", "+i+"%, "+s+"%)";var e,t,i,s,r},n.prototype.toHsv=function(){return e=aw(this.rgba),{h:Ii(e.h),s:Ii(e.s),v:Ii(e.v),a:Ii(e.a,3)};var e},n.prototype.invert=function(){return os({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},n.prototype.saturate=function(e){return e===void 0&&(e=.1),os(Ff(this.rgba,e))},n.prototype.desaturate=function(e){return e===void 0&&(e=.1),os(Ff(this.rgba,-e))},n.prototype.grayscale=function(){return os(Ff(this.rgba,-1))},n.prototype.lighten=function(e){return e===void 0&&(e=.1),os(cy(this.rgba,e))},n.prototype.darken=function(e){return e===void 0&&(e=.1),os(cy(this.rgba,-e))},n.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},n.prototype.alpha=function(e){return typeof e=="number"?os({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):Ii(this.rgba.a,3);var t},n.prototype.hue=function(e){var t=kl(this.rgba);return typeof e=="number"?os({h:e,s:t.s,l:t.l,a:t.a}):Ii(t.h)},n.prototype.isEqual=function(e){return this.toHex()===os(e).toHex()},n})(),os=function(n){return n instanceof Dm?n:new Dm(n)},hy=[],kI=function(n){n.forEach(function(e){hy.indexOf(e)<0&&(e(Dm,Nm),hy.push(e))})};function FI(n,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"},i={};for(var s in t)i[t[s]]=s;var r={};n.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,c,l=i[this.toHex()];if(l)return l;if(o!=null&&o.closest){var h=this.toRgb(),u=1/0,d="black";if(!r.length)for(var f in t)r[f]=new n(t[f]).toRgb();for(var m in t){var p=(a=h,c=r[m],Math.pow(a.r-c.r,2)+Math.pow(a.g-c.g,2)+Math.pow(a.b-c.b,2));p<u&&(u=p,d=m)}return d}},e.string.push([function(o){var a=o.toLowerCase(),c=a==="transparent"?"#0000":t[a];return c?new n(c).toRgb():null},"name"])}kI([FI]);const fa=class bh{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 bh)this._value=this.cloneSource(e._value),this._int=e._int,this._components.set(e._components);else{if(e===null)throw new Error("Cannot set PIXI.Color#value to null");(this._value===null||!this.isSourceEqual(this._value,e))&&(this.normalize(e),this._value=this.cloneSource(e))}}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){const i=typeof e;if(i!==typeof t)return!1;if(i==="number"||i==="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((s,r)=>s===t[r]);if(e!==null&&t!==null){const s=Object.keys(e),r=Object.keys(t);return s.length!==r.length?!1:s.every(o=>e[o]===t[o])}return e===t}toRgba(){const[e,t,i,s]=this._components;return{r:e,g:t,b:i,a:s}}toRgb(){const[e,t,i]=this._components;return{r:e,g:t,b:i}}toRgbaString(){const[e,t,i]=this.toUint8RgbArray();return`rgba(${e},${t},${i},${this.alpha})`}toUint8RgbArray(e){const[t,i,s]=this._components;return e=e??[],e[0]=Math.round(t*255),e[1]=Math.round(i*255),e[2]=Math.round(s*255),e}toRgbArray(e){e=e??[];const[t,i,s]=this._components;return e[0]=t,e[1]=i,e[2]=s,e}toNumber(){return this._int}toLittleEndianNumber(){const e=this._int;return(e>>16)+(e&65280)+((e&255)<<16)}multiply(e){const[t,i,s,r]=bh.temp.setValue(e)._components;return this._components[0]*=t,this._components[1]*=i,this._components[2]*=s,this._components[3]*=r,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 i=this._int>>16&255,s=this._int>>8&255,r=this._int&255;return t&&(i=i*e+.5|0,s=s*e+.5|0,r=r*e+.5|0),(e*255<<24)+(i<<16)+(s<<8)+r}toHex(){const e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){const e=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-e.length)+e}setAlpha(e){return this._components[3]=this._clamp(e),this}round(e){const[t,i,s]=this._components;return this._components[0]=Math.round(t*e)/e,this._components[1]=Math.round(i*e)/e,this._components[2]=Math.round(s*e)/e,this.refreshInt(),this._value=null,this}toArray(e){e=e??[];const[t,i,s,r]=this._components;return e[0]=t,e[1]=i,e[2]=s,e[3]=r,e}normalize(e){let t,i,s,r;if((typeof e=="number"||e instanceof Number)&&e>=0&&e<=16777215){const o=e;t=(o>>16&255)/255,i=(o>>8&255)/255,s=(o&255)/255,r=1}else if((Array.isArray(e)||e instanceof Float32Array)&&e.length>=3&&e.length<=4)e=this._clamp(e),[t,i,s,r=1]=e;else if((e instanceof Uint8Array||e instanceof Uint8ClampedArray)&&e.length>=3&&e.length<=4)e=this._clamp(e,0,255),[t,i,s,r=255]=e,t/=255,i/=255,s/=255,r/=255;else if(typeof e=="string"||typeof e=="object"){if(typeof e=="string"){const a=bh.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}const o=os(e);o.isValid()&&({r:t,g:i,b:s,a:r}=o.rgba,t/=255,i/=255,s/=255)}if(t!==void 0)this._components[0]=t,this._components[1]=i,this._components[2]=s,this._components[3]=r,this.refreshInt();else throw new Error(`Unable to convert color ${e}`)}refreshInt(){this._clamp(this._components);const[e,t,i]=this._components;this._int=(e*255<<16)+(t*255<<8)+(i*255|0)}_clamp(e,t=0,i=1){return typeof e=="number"?Math.min(Math.max(e,t),i):(e.forEach((s,r)=>{e[r]=Math.min(Math.max(s,t),i)}),e)}};fa.shared=new fa,fa.temp=new fa,fa.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;let kt=fa;function LI(n){return pt("7.2.0","utils.hex2string is deprecated, use Color#toHex instead"),kt.shared.setValue(n).toHex()}function OI(n){return pt("7.2.0","utils.rgb2hex is deprecated, use Color#toNumber instead"),kt.shared.setValue(n).toNumber()}function $I(){const n=[],e=[];for(let i=0;i<32;i++)n[i]=i,e[i]=i;n[Qe.NORMAL_NPM]=Qe.NORMAL,n[Qe.ADD_NPM]=Qe.ADD,n[Qe.SCREEN_NPM]=Qe.SCREEN,e[Qe.NORMAL]=Qe.NORMAL_NPM,e[Qe.ADD]=Qe.ADD_NPM,e[Qe.SCREEN]=Qe.SCREEN_NPM;const t=[];return t.push(e),t.push(n),t}const cw=$I();function hw(n,e){return cw[e?1:0][n]}function NI(n,e=null){const t=n*6;if(e=e||new Uint16Array(t),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let i=0,s=0;i<t;i+=6,s+=4)e[i+0]=s+0,e[i+1]=s+1,e[i+2]=s+2,e[i+3]=s+0,e[i+4]=s+2,e[i+5]=s+3;return e}function uw(n){if(n.BYTES_PER_ELEMENT===4)return n instanceof Float32Array?"Float32Array":n instanceof Uint32Array?"Uint32Array":"Int32Array";if(n.BYTES_PER_ELEMENT===2){if(n instanceof Uint16Array)return"Uint16Array"}else if(n.BYTES_PER_ELEMENT===1&&n instanceof Uint8Array)return"Uint8Array";return null}function jh(n){return n+=n===0?1:0,--n,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n+1}function uy(n){return!(n&n-1)&&!!n}function dy(n){let e=(n>65535?1:0)<<4;n>>>=e;let t=(n>255?1:0)<<3;return n>>>=t,e|=t,t=(n>15?1:0)<<2,n>>>=t,e|=t,t=(n>3?1:0)<<1,n>>>=t,e|=t,e|n>>1}function Pa(n,e,t){const i=n.length;let s;if(e>=i||t===0)return;t=e+t>i?i-e:t;const r=i-t;for(s=e;s<r;++s)n[s]=n[s+t];n.length=r}function Vr(n){return n===0?0:n<0?-1:1}let DI=0;function Bo(){return++DI}const Bm=class{constructor(n,e,t,i){this.left=n,this.top=e,this.right=t,this.bottom=i}get width(){return this.right-this.left}get height(){return this.bottom-this.top}isEmpty(){return this.left===this.right||this.top===this.bottom}};Bm.EMPTY=new Bm(0,0,0,0);let fy=Bm;const my={},as=Object.create(null),Sr=Object.create(null);class BI{constructor(e,t,i){this._canvas=Ve.ADAPTER.createCanvas(),this._context=this._canvas.getContext("2d"),this.resolution=i||Ve.RESOLUTION,this.resize(e,t)}clear(){this._checkDestroyed(),this._context.setTransform(1,0,0,1,0,0),this._context.clearRect(0,0,this._canvas.width,this._canvas.height)}resize(e,t){this._checkDestroyed(),this._canvas.width=Math.round(e*this.resolution),this._canvas.height=Math.round(t*this.resolution)}destroy(){this._context=null,this._canvas=null}get width(){return this._checkDestroyed(),this._canvas.width}set width(e){this._checkDestroyed(),this._canvas.width=Math.round(e)}get height(){return this._checkDestroyed(),this._canvas.height}set height(e){this._checkDestroyed(),this._canvas.height=Math.round(e)}get canvas(){return this._checkDestroyed(),this._canvas}get context(){return this._checkDestroyed(),this._context}_checkDestroyed(){if(this._canvas===null)throw new TypeError("The CanvasRenderTarget has already been destroyed")}}function py(n,e,t){for(let i=0,s=4*t*e;i<e;++i,s+=4)if(n[s+3]!==0)return!1;return!0}function gy(n,e,t,i,s){const r=4*e;for(let o=i,a=i*r+4*t;o<=s;++o,a+=r)if(n[a+3]!==0)return!1;return!0}function UI(n){const{width:e,height:t}=n,i=n.getContext("2d",{willReadFrequently:!0});if(i===null)throw new TypeError("Failed to get canvas 2D context");const s=i.getImageData(0,0,e,t).data;let r=0,o=0,a=e-1,c=t-1;for(;o<t&&py(s,e,o);)++o;if(o===t)return fy.EMPTY;for(;py(s,e,c);)--c;for(;gy(s,e,r,o,c);)++r;for(;gy(s,e,a,o,c);)--a;return++a,++c,new fy(r,o,a,c)}function VI(n){const e=UI(n),{width:t,height:i}=e;let s=null;if(!e.isEmpty()){const r=n.getContext("2d");if(r===null)throw new TypeError("Failed to get canvas 2D context");s=r.getImageData(e.left,e.top,t,i)}return{width:t,height:i,data:s}}function XI(n,e=globalThis.location){if(n.startsWith("data:"))return"";e=e||globalThis.location;const t=new URL(n,document.baseURI);return t.hostname!==e.hostname||t.port!==e.port||t.protocol!==e.protocol?"anonymous":""}function fr(n,e=1){var i;const t=(i=Ve.RETINA_PREFIX)==null?void 0:i.exec(n);return t?parseFloat(t[1]):e}var $e=(n=>(n.Renderer="renderer",n.Application="application",n.RendererSystem="renderer-webgl-system",n.RendererPlugin="renderer-webgl-plugin",n.CanvasRendererSystem="renderer-canvas-system",n.CanvasRendererPlugin="renderer-canvas-plugin",n.Asset="asset",n.LoadParser="load-parser",n.ResolveParser="resolve-parser",n.CacheParser="cache-parser",n.DetectionParser="detection-parser",n))($e||{});const Um=n=>{if(typeof n=="function"||typeof n=="object"&&n.extension){if(!n.extension)throw new Error("Extension class must have an extension object");n={...typeof n.extension!="object"?{type:n.extension}:n.extension,ref:n}}if(typeof n=="object")n={...n};else throw new Error("Invalid extension type");return typeof n.type=="string"&&(n.type=[n.type]),n},vy=(n,e)=>Um(n).priority??e,je={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...n){return n.map(Um).forEach(e=>{e.type.forEach(t=>{var i,s;return(s=(i=this._removeHandlers)[t])==null?void 0:s.call(i,e)})}),this},add(...n){return n.map(Um).forEach(e=>{e.type.forEach(t=>{var r,o;const i=this._addHandlers,s=this._queue;i[t]?(r=i[t])==null||r.call(i,e):(s[t]=s[t]||[],(o=s[t])==null||o.push(e))})}),this},handle(n,e,t){var o;const i=this._addHandlers,s=this._removeHandlers;if(i[n]||s[n])throw new Error(`Extension type ${n} already has a handler`);i[n]=e,s[n]=t;const r=this._queue;return r[n]&&((o=r[n])==null||o.forEach(a=>e(a)),delete r[n]),this},handleByMap(n,e){return this.handle(n,t=>{t.name&&(e[t.name]=t.ref)},t=>{t.name&&delete e[t.name]})},handleByList(n,e,t=-1){return this.handle(n,i=>{e.includes(i.ref)||(e.push(i.ref),e.sort((s,r)=>vy(r,t)-vy(s,t)))},i=>{const s=e.indexOf(i.ref);s!==-1&&e.splice(s,1)})}};class Vm{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)}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 uint16View(){return this._uint16View||(this._uint16View=new Uint16Array(this.rawBinaryData)),this._uint16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this._uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(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`)}}}const YI=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
`);function GI(n){let e="";for(let t=0;t<n;++t)t>0&&(e+=`
else `),t<n-1&&(e+=`if(test == ${t}.0){}`);return e}function HI(n,e){if(n===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");const t=e.createShader(e.FRAGMENT_SHADER);for(;;){const i=YI.replace(/%forloop%/gi,GI(n));if(e.shaderSource(t,i),e.compileShader(t),!e.getShaderParameter(t,e.COMPILE_STATUS))n=n/2|0;else break}return n}const Of=0,$f=1,Nf=2,Df=3,Bf=4,Uf=5;class Rs{constructor(){this.data=0,this.blendMode=Qe.NORMAL,this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<Of)}set blend(e){!!(this.data&1<<Of)!==e&&(this.data^=1<<Of)}get offsets(){return!!(this.data&1<<$f)}set offsets(e){!!(this.data&1<<$f)!==e&&(this.data^=1<<$f)}get culling(){return!!(this.data&1<<Nf)}set culling(e){!!(this.data&1<<Nf)!==e&&(this.data^=1<<Nf)}get depthTest(){return!!(this.data&1<<Df)}set depthTest(e){!!(this.data&1<<Df)!==e&&(this.data^=1<<Df)}get depthMask(){return!!(this.data&1<<Uf)}set depthMask(e){!!(this.data&1<<Uf)!==e&&(this.data^=1<<Uf)}get clockwiseFrontFace(){return!!(this.data&1<<Bf)}set clockwiseFrontFace(e){!!(this.data&1<<Bf)!==e&&(this.data^=1<<Bf)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!==Qe.NONE,this._blendMode=e}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}static for2d(){const e=new Rs;return e.depthTest=!1,e.blend=!0,e}}Rs.prototype.toString=function(){return`[@pixi/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`};const Xm=[];function dw(n,e){if(!n)return null;let t="";if(typeof n=="string"){const i=/\.(\w{3,4})(?:$|\?|#)/i.exec(n);i&&(t=i[1].toLowerCase())}for(let i=Xm.length-1;i>=0;--i){const s=Xm[i];if(s.test&&s.test(n,t))return new s(n,e)}throw new Error("Unrecognized source type to auto-detect Resource")}class Zn{constructor(e){this.items=[],this._name=e,this._aliasCount=0}emit(e,t,i,s,r,o,a,c){if(arguments.length>8)throw new Error("max arguments reached");const{name:l,items:h}=this;this._aliasCount++;for(let u=0,d=h.length;u<d;u++)h[u][l](e,t,i,s,r,o,a,c);return h===this.items&&this._aliasCount--,this}ensureNonAliasedItems(){this._aliasCount>0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))}add(e){return e[this._name]&&(this.ensureNonAliasedItems(),this.remove(e),this.items.push(e)),this}remove(e){const t=this.items.indexOf(e);return t!==-1&&(this.ensureNonAliasedItems(),this.items.splice(t,1)),this}contains(e){return this.items.includes(e)}removeAll(){return this.ensureNonAliasedItems(),this.items.length=0,this}destroy(){this.removeAll(),this.items.length=0,this._name=""}get empty(){return this.items.length===0}get name(){return this._name}}Object.defineProperties(Zn.prototype,{dispatch:{value:Zn.prototype.emit},run:{value:Zn.prototype.emit}});class Zl{constructor(e=0,t=0){this._width=e,this._height=t,this.destroyed=!1,this.internal=!1,this.onResize=new Zn("setRealSize"),this.onUpdate=new Zn("update"),this.onError=new Zn("onError")}bind(e){this.onResize.add(e),this.onUpdate.add(e),this.onError.add(e),(this._width||this._height)&&this.onResize.emit(this._width,this._height)}unbind(e){this.onResize.remove(e),this.onUpdate.remove(e),this.onError.remove(e)}resize(e,t){(e!==this._width||t!==this._height)&&(this._width=e,this._height=t,this.onResize.emit(e,t))}get valid(){return!!this._width&&!!this._height}update(){this.destroyed||this.onUpdate.emit()}load(){return Promise.resolve(this)}get width(){return this._width}get height(){return this._height}style(e,t,i){return!1}dispose(){}destroy(){this.destroyed||(this.destroyed=!0,this.dispose(),this.onError.removeAll(),this.onError=null,this.onResize.removeAll(),this.onResize=null,this.onUpdate.removeAll(),this.onUpdate=null)}static test(e,t){return!1}}class td extends Zl{constructor(e,t){const{width:i,height:s}=t||{};if(!i||!s)throw new Error("BufferResource width or height invalid");super(i,s),this.data=e,this.unpackAlignment=t.unpackAlignment??4}upload(e,t,i){const s=e.gl;s.pixelStorei(s.UNPACK_ALIGNMENT,this.unpackAlignment),s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.alphaMode===Ri.UNPACK);const r=t.realWidth,o=t.realHeight;return i.width===r&&i.height===o?s.texSubImage2D(t.target,0,0,0,r,o,t.format,i.type,this.data):(i.width=r,i.height=o,s.texImage2D(t.target,0,i.internalFormat,r,o,0,t.format,i.type,this.data)),!0}dispose(){this.data=null}static test(e){return e===null||e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}}const jI={scaleMode:Wn.NEAREST,alphaMode:Ri.NPM},Ym=class ma extends pc{constructor(e=null,t=null){super(),t=Object.assign({},ma.defaultOptions,t);const{alphaMode:i,mipmap:s,anisotropicLevel:r,scaleMode:o,width:a,height:c,wrapMode:l,format:h,type:u,target:d,resolution:f,resourceOptions:m}=t;e&&!(e instanceof Zl)&&(e=dw(e,m),e.internal=!0),this.resolution=f||Ve.RESOLUTION,this.width=Math.round((a||0)*this.resolution)/this.resolution,this.height=Math.round((c||0)*this.resolution)/this.resolution,this._mipmap=s,this.anisotropicLevel=r,this._wrapMode=l,this._scaleMode=o,this.format=h,this.type=u,this.target=d,this.alphaMode=i,this.uid=Bo(),this.touched=0,this.isPowerOfTwo=!1,this._refreshPOT(),this._glTextures={},this.dirtyId=0,this.dirtyStyleId=0,this.cacheId=null,this.valid=a>0&&c>0,this.textureCacheIds=[],this.destroyed=!1,this.resource=null,this._batchEnabled=0,this._batchLocation=0,this.parentTextureArray=null,this.setResource(e)}get realWidth(){return Math.round(this.width*this.resolution)}get realHeight(){return Math.round(this.height*this.resolution)}get mipmap(){return this._mipmap}set mipmap(e){this._mipmap!==e&&(this._mipmap=e,this.dirtyStyleId++)}get scaleMode(){return this._scaleMode}set scaleMode(e){this._scaleMode!==e&&(this._scaleMode=e,this.dirtyStyleId++)}get wrapMode(){return this._wrapMode}set wrapMode(e){this._wrapMode!==e&&(this._wrapMode=e,this.dirtyStyleId++)}setStyle(e,t){let i;return e!==void 0&&e!==this.scaleMode&&(this.scaleMode=e,i=!0),t!==void 0&&t!==this.mipmap&&(this.mipmap=t,i=!0),i&&this.dirtyStyleId++,this}setSize(e,t,i){return i=i||this.resolution,this.setRealSize(e*i,t*i,i)}setRealSize(e,t,i){return this.resolution=i||this.resolution,this.width=Math.round(e)/this.resolution,this.height=Math.round(t)/this.resolution,this._refreshPOT(),this.update(),this}_refreshPOT(){this.isPowerOfTwo=uy(this.realWidth)&&uy(this.realHeight)}setResolution(e){const t=this.resolution;return t===e?this:(this.resolution=e,this.valid&&(this.width=Math.round(this.width*t)/e,this.height=Math.round(this.height*t)/e,this.emit("update",this)),this._refreshPOT(),this)}setResource(e){if(this.resource===e)return this;if(this.resource)throw new Error("Resource can be set only once");return e.bind(this),this.resource=e,this}update(){this.valid?(this.dirtyId++,this.dirtyStyleId++,this.emit("update",this)):this.width>0&&this.height>0&&(this.valid=!0,this.emit("loaded",this),this.emit("update",this))}onError(e){this.emit("error",this,e)}destroy(){this.resource&&(this.resource.unbind(this),this.resource.internal&&this.resource.destroy(),this.resource=null),this.cacheId&&(delete Sr[this.cacheId],delete as[this.cacheId],this.cacheId=null),this.valid=!1,this.dispose(),ma.removeFromCache(this),this.textureCacheIds=null,this.destroyed=!0,this.emit("destroyed",this),this.removeAllListeners()}dispose(){this.emit("dispose",this)}castToBaseTexture(){return this}static from(e,t,i=Ve.STRICT_TEXTURE_CACHE){const s=typeof e=="string";let r=null;if(s)r=e;else{if(!e._pixiId){const a=(t==null?void 0:t.pixiIdPrefix)||"pixiid";e._pixiId=`${a}_${Bo()}`}r=e._pixiId}let o=Sr[r];if(s&&i&&!o)throw new Error(`The cacheId "${r}" does not exist in BaseTextureCache.`);return o||(o=new ma(e,t),o.cacheId=r,ma.addToCache(o,r)),o}static fromBuffer(e,t,i,s){e=e||new Float32Array(t*i*4);const r=new td(e,{width:t,height:i,...s==null?void 0:s.resourceOptions});let o,a;return e instanceof Float32Array?(o=Ie.RGBA,a=He.FLOAT):e instanceof Int32Array?(o=Ie.RGBA_INTEGER,a=He.INT):e instanceof Uint32Array?(o=Ie.RGBA_INTEGER,a=He.UNSIGNED_INT):e instanceof Int16Array?(o=Ie.RGBA_INTEGER,a=He.SHORT):e instanceof Uint16Array?(o=Ie.RGBA_INTEGER,a=He.UNSIGNED_SHORT):e instanceof Int8Array?(o=Ie.RGBA,a=He.BYTE):(o=Ie.RGBA,a=He.UNSIGNED_BYTE),r.internal=!0,new ma(r,Object.assign({},jI,{type:a,format:o},s))}static addToCache(e,t){t&&(e.textureCacheIds.includes(t)||e.textureCacheIds.push(t),Sr[t]&&Sr[t]!==e&&console.warn(`BaseTexture added to the cache with an id [${t}] that already had an entry`),Sr[t]=e)}static removeFromCache(e){if(typeof e=="string"){const t=Sr[e];if(t){const i=t.textureCacheIds.indexOf(e);return i>-1&&t.textureCacheIds.splice(i,1),delete Sr[e],t}}else if(e!=null&&e.textureCacheIds){for(let t=0;t<e.textureCacheIds.length;++t)delete Sr[e.textureCacheIds[t]];return e.textureCacheIds.length=0,e}return null}};Ym.defaultOptions={mipmap:$n.POW2,anisotropicLevel:0,scaleMode:Wn.LINEAR,wrapMode:Jn.CLAMP,alphaMode:Ri.UNPACK,target:Ia.TEXTURE_2D,format:Ie.RGBA,type:He.UNSIGNED_BYTE},Ym._globalBatch=0;let rt=Ym;class Gm{constructor(){this.texArray=null,this.blend=0,this.type=_s.TRIANGLES,this.start=0,this.size=0,this.data=null}}let WI=0;class zt{constructor(e,t=!0,i=!1){this.data=e||new Float32Array(1),this._glBuffers={},this._updateID=0,this.index=i,this.static=t,this.id=WI++,this.disposeRunner=new Zn("disposeBuffer")}update(e){e instanceof Array&&(e=new Float32Array(e)),this.data=e||this.data,this._updateID++}dispose(){this.disposeRunner.emit(this,!1)}destroy(){this.dispose(),this.data=null}set index(e){this.type=e?Ms.ELEMENT_ARRAY_BUFFER:Ms.ARRAY_BUFFER}get index(){return this.type===Ms.ELEMENT_ARRAY_BUFFER}static from(e){return e instanceof Array&&(e=new Float32Array(e)),new zt(e)}}class Wh{constructor(e,t=0,i=!1,s=He.FLOAT,r,o,a,c=1){this.buffer=e,this.size=t,this.normalized=i,this.type=s,this.stride=r,this.start=o,this.instance=a,this.divisor=c}destroy(){this.buffer=null}static from(e,t,i,s,r){return new Wh(e,t,i,s,r)}}const zI={Float32Array,Uint32Array,Int32Array,Uint8Array};function qI(n,e){let t=0,i=0;const s={};for(let c=0;c<n.length;c++)i+=e[c],t+=n[c].length;const r=new ArrayBuffer(t*4);let o=null,a=0;for(let c=0;c<n.length;c++){const l=e[c],h=n[c],u=uw(h);s[u]||(s[u]=new zI[u](r)),o=s[u];for(let d=0;d<h.length;d++){const f=(d/l|0)*i+a,m=d%l;o[f+m]=h[d]}a+=l}return new Float32Array(r)}const yy={5126:4,5123:2,5121:1};let KI=0;const JI={Float32Array,Uint32Array,Int32Array,Uint8Array,Uint16Array};class Ps{constructor(e=[],t={}){this.buffers=e,this.indexBuffer=null,this.attributes=t,this.glVertexArrayObjects={},this.id=KI++,this.instanced=!1,this.instanceCount=1,this.disposeRunner=new Zn("disposeGeometry"),this.refCount=0}addAttribute(e,t,i=0,s=!1,r,o,a,c=!1){if(!t)throw new Error("You must pass a buffer when creating an attribute");t instanceof zt||(t instanceof Array&&(t=new Float32Array(t)),t=new zt(t));const l=e.split("|");if(l.length>1){for(let u=0;u<l.length;u++)this.addAttribute(l[u],t,i,s,r);return this}let h=this.buffers.indexOf(t);return h===-1&&(this.buffers.push(t),h=this.buffers.length-1),this.attributes[e]=new Wh(h,i,s,r,o,a,c),this.instanced=this.instanced||c,this}getAttribute(e){return this.attributes[e]}getBuffer(e){return this.buffers[this.getAttribute(e).buffer]}addIndex(e){return e instanceof zt||(e instanceof Array&&(e=new Uint16Array(e)),e=new zt(e)),e.type=Ms.ELEMENT_ARRAY_BUFFER,this.indexBuffer=e,this.buffers.includes(e)||this.buffers.push(e),this}getIndex(){return this.indexBuffer}interleave(){if(this.buffers.length===1||this.buffers.length===2&&this.indexBuffer)return this;const e=[],t=[],i=new zt;let s;for(s in this.attributes){const r=this.attributes[s],o=this.buffers[r.buffer];e.push(o.data),t.push(r.size*yy[r.type]/4),r.buffer=0}for(i.data=qI(e,t),s=0;s<this.buffers.length;s++)this.buffers[s]!==this.indexBuffer&&this.buffers[s].destroy();return this.buffers=[i],this.indexBuffer&&this.buffers.push(this.indexBuffer),this}getSize(){for(const e in this.attributes){const t=this.attributes[e];return this.buffers[t.buffer].data.length/(t.stride/4||t.size)}return 0}dispose(){this.disposeRunner.emit(this,!1)}destroy(){this.dispose(),this.buffers=null,this.indexBuffer=null,this.attributes=null}clone(){const e=new Ps;for(let t=0;t<this.buffers.length;t++)e.buffers[t]=new zt(this.buffers[t].data.slice(0));for(const t in this.attributes){const i=this.attributes[t];e.attributes[t]=new Wh(i.buffer,i.size,i.normalized,i.type,i.stride,i.start,i.instance)}return this.indexBuffer&&(e.indexBuffer=e.buffers[this.buffers.indexOf(this.indexBuffer)],e.indexBuffer.type=Ms.ELEMENT_ARRAY_BUFFER),e}static merge(e){const t=new Ps,i=[],s=[],r=[];let o;for(let a=0;a<e.length;a++){o=e[a];for(let c=0;c<o.buffers.length;c++)s[c]=s[c]||0,s[c]+=o.buffers[c].data.length,r[c]=0}for(let a=0;a<o.buffers.length;a++)i[a]=new JI[uw(o.buffers[a].data)](s[a]),t.buffers[a]=new zt(i[a]);for(let a=0;a<e.length;a++){o=e[a];for(let c=0;c<o.buffers.length;c++)i[c].set(o.buffers[c].data,r[c]),r[c]+=o.buffers[c].data.length}if(t.attributes=o.attributes,o.indexBuffer){t.indexBuffer=t.buffers[o.buffers.indexOf(o.indexBuffer)],t.indexBuffer.type=Ms.ELEMENT_ARRAY_BUFFER;let a=0,c=0,l=0,h=0;for(let u=0;u<o.buffers.length;u++)if(o.buffers[u]!==o.indexBuffer){h=u;break}for(const u in o.attributes){const d=o.attributes[u];(d.buffer|0)===h&&(c+=d.size*yy[d.type]/4)}for(let u=0;u<e.length;u++){const d=e[u].indexBuffer.data;for(let f=0;f<d.length;f++)t.indexBuffer.data[f+l]+=a;a+=e[u].buffers[h].data.length/c,l+=d.length}}return t}}class fw extends Ps{constructor(e=!1){super(),this._buffer=new zt(null,e,!1),this._indexBuffer=new zt(null,e,!0),this.addAttribute("aVertexPosition",this._buffer,2,!1,He.FLOAT).addAttribute("aTextureCoord",this._buffer,2,!1,He.FLOAT).addAttribute("aColor",this._buffer,4,!0,He.UNSIGNED_BYTE).addAttribute("aTextureId",this._buffer,1,!0,He.FLOAT).addIndex(this._indexBuffer)}}const zh=Math.PI*2,ZI=180/Math.PI,QI=Math.PI/180;var Ni=(n=>(n[n.POLY=0]="POLY",n[n.RECT=1]="RECT",n[n.CIRC=2]="CIRC",n[n.ELIP=3]="ELIP",n[n.RREC=4]="RREC",n))(Ni||{});class Tt{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new Tt(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}}Tt.prototype.toString=function(){return`[@pixi/math:Point x=${this.x} y=${this.y}]`};const $c=[new Tt,new Tt,new Tt,new Tt];class dt{constructor(e=0,t=0,i=0,s=0){this.x=Number(e),this.y=Number(t),this.width=Number(i),this.height=Number(s),this.type=Ni.RECT}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}static get EMPTY(){return new dt(0,0,0,0)}clone(){return new dt(this.x,this.y,this.width,this.height)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,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}intersects(e,t){if(!t){const C=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=C)return!1;const M=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>M}const i=this.left,s=this.right,r=this.top,o=this.bottom;if(s<=i||o<=r)return!1;const a=$c[0].set(e.left,e.top),c=$c[1].set(e.left,e.bottom),l=$c[2].set(e.right,e.top),h=$c[3].set(e.right,e.bottom);if(l.x<=a.x||c.y<=a.y)return!1;const u=Math.sign(t.a*t.d-t.b*t.c);if(u===0||(t.apply(a,a),t.apply(c,c),t.apply(l,l),t.apply(h,h),Math.max(a.x,c.x,l.x,h.x)<=i||Math.min(a.x,c.x,l.x,h.x)>=s||Math.max(a.y,c.y,l.y,h.y)<=r||Math.min(a.y,c.y,l.y,h.y)>=o))return!1;const d=u*(c.y-a.y),f=u*(a.x-c.x),m=d*i+f*r,p=d*s+f*r,g=d*i+f*o,v=d*s+f*o;if(Math.max(m,p,g,v)<=d*a.x+f*a.y||Math.min(m,p,g,v)>=d*h.x+f*h.y)return!1;const b=u*(a.y-l.y),y=u*(l.x-a.x),x=b*i+y*r,_=b*s+y*r,E=b*i+y*o,S=b*s+y*o;return!(Math.max(x,_,E,S)<=b*a.x+y*a.y||Math.min(x,_,E,S)>=b*h.x+y*h.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){const t=Math.max(this.x,e.x),i=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),r=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(i-t,0),this.y=s,this.height=Math.max(r-s,0),this}ceil(e=1,t=.001){const i=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=i-this.x,this.height=s-this.y,this}enlarge(e){const t=Math.min(this.x,e.x),i=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),r=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=i-t,this.y=s,this.height=r-s,this}}dt.prototype.toString=function(){return`[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`};class id{constructor(e=0,t=0,i=0){this.x=e,this.y=t,this.radius=i,this.type=Ni.CIRC}clone(){return new id(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;const i=this.radius*this.radius;let s=this.x-e,r=this.y-t;return s*=s,r*=r,s+r<=i}getBounds(){return new dt(this.x-this.radius,this.y-this.radius,this.radius*2,this.radius*2)}}id.prototype.toString=function(){return`[@pixi/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`};class nd{constructor(e=0,t=0,i=0,s=0){this.x=e,this.y=t,this.width=i,this.height=s,this.type=Ni.ELIP}clone(){return new nd(this.x,this.y,this.width,this.height)}contains(e,t){if(this.width<=0||this.height<=0)return!1;let i=(e-this.x)/this.width,s=(t-this.y)/this.height;return i*=i,s*=s,i+s<=1}getBounds(){return new dt(this.x-this.width,this.y-this.height,this.width,this.height)}}nd.prototype.toString=function(){return`[@pixi/math:Ellipse x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`};class Lo{constructor(...e){let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){const i=[];for(let s=0,r=t.length;s<r;s++)i.push(t[s].x,t[s].y);t=i}this.points=t,this.type=Ni.POLY,this.closeStroke=!0}clone(){const e=this.points.slice(),t=new Lo(e);return t.closeStroke=this.closeStroke,t}contains(e,t){let i=!1;const s=this.points.length/2;for(let r=0,o=s-1;r<s;o=r++){const a=this.points[r*2],c=this.points[r*2+1],l=this.points[o*2],h=this.points[o*2+1];c>t!=h>t&&e<(l-a)*((t-c)/(h-c))+a&&(i=!i)}return i}}Lo.prototype.toString=function(){return`[@pixi/math:PolygoncloseStroke=${this.closeStroke}points=${this.points.reduce((n,e)=>`${n}, ${e}`,"")}]`};class sd{constructor(e=0,t=0,i=0,s=0,r=20){this.x=e,this.y=t,this.width=i,this.height=s,this.radius=r,this.type=Ni.RREC}clone(){return new sd(this.x,this.y,this.width,this.height,this.radius)}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){const i=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+i&&t<=this.y+this.height-i||e>=this.x+i&&e<=this.x+this.width-i)return!0;let s=e-(this.x+i),r=t-(this.y+i);const o=i*i;if(s*s+r*r<=o||(s=e-(this.x+this.width-i),s*s+r*r<=o)||(r=t-(this.y+this.height-i),s*s+r*r<=o)||(s=e-(this.x+i),s*s+r*r<=o))return!0}return!1}}sd.prototype.toString=function(){return`[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`};class Bt{constructor(e=1,t=0,i=0,s=1,r=0,o=0){this.array=null,this.a=e,this.b=t,this.c=i,this.d=s,this.tx=r,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,i,s,r,o){return this.a=e,this.b=t,this.c=i,this.d=s,this.tx=r,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));const i=t||this.array;return e?(i[0]=this.a,i[1]=this.b,i[2]=0,i[3]=this.c,i[4]=this.d,i[5]=0,i[6]=this.tx,i[7]=this.ty,i[8]=1):(i[0]=this.a,i[1]=this.c,i[2]=this.tx,i[3]=this.b,i[4]=this.d,i[5]=this.ty,i[6]=0,i[7]=0,i[8]=1),i}apply(e,t){t=t||new Tt;const i=e.x,s=e.y;return t.x=this.a*i+this.c*s+this.tx,t.y=this.b*i+this.d*s+this.ty,t}applyInverse(e,t){t=t||new Tt;const i=1/(this.a*this.d+this.c*-this.b),s=e.x,r=e.y;return t.x=this.d*i*s+-this.c*i*r+(this.ty*this.c-this.tx*this.d)*i,t.y=this.a*i*r+-this.b*i*s+(-this.ty*this.a+this.tx*this.b)*i,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){const t=Math.cos(e),i=Math.sin(e),s=this.a,r=this.c,o=this.tx;return this.a=s*t-this.b*i,this.b=s*i+this.b*t,this.c=r*t-this.d*i,this.d=r*i+this.d*t,this.tx=o*t-this.ty*i,this.ty=o*i+this.ty*t,this}append(e){const t=this.a,i=this.b,s=this.c,r=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*i+e.b*r,this.c=e.c*t+e.d*s,this.d=e.c*i+e.d*r,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*i+e.ty*r+this.ty,this}setTransform(e,t,i,s,r,o,a,c,l){return this.a=Math.cos(a+l)*r,this.b=Math.sin(a+l)*r,this.c=-Math.sin(a-c)*o,this.d=Math.cos(a-c)*o,this.tx=e-(i*this.a+s*this.c),this.ty=t-(i*this.b+s*this.d),this}prepend(e){const t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){const i=this.a,s=this.c;this.a=i*e.a+this.b*e.c,this.b=i*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){const t=this.a,i=this.b,s=this.c,r=this.d,o=e.pivot,a=-Math.atan2(-s,r),c=Math.atan2(i,t),l=Math.abs(a+c);return l<1e-5||Math.abs(zh-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+i*i),e.scale.y=Math.sqrt(s*s+r*r),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*i+o.y*r),e}invert(){const e=this.a,t=this.b,i=this.c,s=this.d,r=this.tx,o=e*s-t*i;return this.a=s/o,this.b=-t/o,this.c=-i/o,this.d=e/o,this.tx=(i*this.ty-s*r)/o,this.ty=-(e*this.ty-t*r)/o,this}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){const e=new Bt;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}static get IDENTITY(){return new Bt}static get TEMP_MATRIX(){return new Bt}}Bt.prototype.toString=function(){return`[@pixi/math:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`};const go=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],vo=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],yo=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],bo=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],Hm=[],mw=[],Nc=Math.sign;function e2(){for(let n=0;n<16;n++){const e=[];Hm.push(e);for(let t=0;t<16;t++){const i=Nc(go[n]*go[t]+yo[n]*vo[t]),s=Nc(vo[n]*go[t]+bo[n]*vo[t]),r=Nc(go[n]*yo[t]+yo[n]*bo[t]),o=Nc(vo[n]*yo[t]+bo[n]*bo[t]);for(let a=0;a<16;a++)if(go[a]===i&&vo[a]===s&&yo[a]===r&&bo[a]===o){e.push(a);break}}}for(let n=0;n<16;n++){const e=new Bt;e.set(go[n],vo[n],yo[n],bo[n],0,0),mw.push(e)}}e2();const si={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:n=>go[n],uY:n=>vo[n],vX:n=>yo[n],vY:n=>bo[n],inv:n=>n&8?n&15:-n&7,add:(n,e)=>Hm[n][e],sub:(n,e)=>Hm[n][si.inv(e)],rotate180:n=>n^4,isVertical:n=>(n&3)===2,byDirection:(n,e)=>Math.abs(n)*2<=Math.abs(e)?e>=0?si.S:si.N:Math.abs(e)*2<=Math.abs(n)?n>0?si.E:si.W:e>0?n>0?si.SE:si.SW:n>0?si.NE:si.NW,matrixAppendRotationInv:(n,e,t=0,i=0)=>{const s=mw[si.inv(e)];s.tx=t,s.ty=i,n.append(s)}};class Js{constructor(e,t,i=0,s=0){this._x=i,this._y=s,this.cb=e,this.scope=t}clone(e=this.cb,t=this.scope){return new Js(e,t,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this.cb.call(this.scope)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this.cb.call(this.scope)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this.cb.call(this.scope))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this.cb.call(this.scope))}}Js.prototype.toString=function(){return`[@pixi/math:ObservablePoint x=${this.x} y=${this.y} scope=${this.scope}]`};const jm=class{constructor(){this.worldTransform=new Bt,this.localTransform=new Bt,this.position=new Js(this.onChange,this,0,0),this.scale=new Js(this.onChange,this,1,1),this.pivot=new Js(this.onChange,this,0,0),this.skew=new Js(this.updateSkew,this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._localID=0,this._currentLocalID=0,this._worldID=0,this._parentID=0}onChange(){this._localID++}updateSkew(){this._cx=Math.cos(this._rotation+this.skew.y),this._sx=Math.sin(this._rotation+this.skew.y),this._cy=-Math.sin(this._rotation-this.skew.x),this._sy=Math.cos(this._rotation-this.skew.x),this._localID++}updateLocalTransform(){const n=this.localTransform;this._localID!==this._currentLocalID&&(n.a=this._cx*this.scale.x,n.b=this._sx*this.scale.x,n.c=this._cy*this.scale.y,n.d=this._sy*this.scale.y,n.tx=this.position.x-(this.pivot.x*n.a+this.pivot.y*n.c),n.ty=this.position.y-(this.pivot.x*n.b+this.pivot.y*n.d),this._currentLocalID=this._localID,this._parentID=-1)}updateTransform(n){const e=this.localTransform;if(this._localID!==this._currentLocalID&&(e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d),this._currentLocalID=this._localID,this._parentID=-1),this._parentID!==n._worldID){const t=n.worldTransform,i=this.worldTransform;i.a=e.a*t.a+e.b*t.c,i.b=e.a*t.b+e.b*t.d,i.c=e.c*t.a+e.d*t.c,i.d=e.c*t.b+e.d*t.d,i.tx=e.tx*t.a+e.ty*t.c+t.tx,i.ty=e.tx*t.b+e.ty*t.d+t.ty,this._parentID=n._worldID,this._worldID++}}setFromMatrix(n){n.decompose(this),this._localID++}get rotation(){return this._rotation}set rotation(n){this._rotation!==n&&(this._rotation=n,this.updateSkew())}};jm.IDENTITY=new jm;let Eg=jm;Eg.prototype.toString=function(){return`[@pixi/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`};var t2=`varying vec2 vTextureCoord;
uniform sampler2D uSampler;
void main(void){
gl_FragColor *= texture2D(uSampler, vTextureCoord);
}`,i2=`attribute vec2 aVertexPosition;
attribute vec2 aTextureCoord;
uniform mat3 projectionMatrix;
varying vec2 vTextureCoord;
void main(void){
gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
vTextureCoord = aTextureCoord;
}
`;function by(n,e,t){const i=n.createShader(e);return n.shaderSource(i,t),n.compileShader(i),i}function Vf(n){const e=new Array(n);for(let t=0;t<e.length;t++)e[t]=!1;return e}function pw(n,e){switch(n){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 Vf(2*e);case"bvec3":return Vf(3*e);case"bvec4":return Vf(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}const Ra=[{test:n=>n.type==="float"&&n.size===1&&!n.isArray,code:n=>`
if(uv["${n}"] !== ud["${n}"].value)
{
ud["${n}"].value = uv["${n}"]
gl.uniform1f(ud["${n}"].location, uv["${n}"])
}
`},{test:(n,e)=>(n.type==="sampler2D"||n.type==="samplerCube"||n.type==="sampler2DArray")&&n.size===1&&!n.isArray&&(e==null||e.castToBaseTexture!==void 0),code:n=>`t = syncData.textureCount++;
renderer.texture.bind(uv["${n}"], t);
if(ud["${n}"].value !== t)
{
ud["${n}"].value = t;
gl.uniform1i(ud["${n}"].location, t);
; // eslint-disable-line max-len
}`},{test:(n,e)=>n.type==="mat3"&&n.size===1&&!n.isArray&&e.a!==void 0,code:n=>`
gl.uniformMatrix3fv(ud["${n}"].location, false, uv["${n}"].toArray(true));
`,codeUbo:n=>`
var ${n}_matrix = uv.${n}.toArray(true);
data[offset] = ${n}_matrix[0];
data[offset+1] = ${n}_matrix[1];
data[offset+2] = ${n}_matrix[2];
data[offset + 4] = ${n}_matrix[3];
data[offset + 5] = ${n}_matrix[4];
data[offset + 6] = ${n}_matrix[5];
data[offset + 8] = ${n}_matrix[6];
data[offset + 9] = ${n}_matrix[7];
data[offset + 10] = ${n}_matrix[8];
`},{test:(n,e)=>n.type==="vec2"&&n.size===1&&!n.isArray&&e.x!==void 0,code:n=>`
cv = ud["${n}"].value;
v = uv["${n}"];
if(cv[0] !== v.x || cv[1] !== v.y)
{
cv[0] = v.x;
cv[1] = v.y;
gl.uniform2f(ud["${n}"].location, v.x, v.y);
}`,codeUbo:n=>`
v = uv.${n};
data[offset] = v.x;
data[offset+1] = v.y;
`},{test:n=>n.type==="vec2"&&n.size===1&&!n.isArray,code:n=>`
cv = ud["${n}"].value;
v = uv["${n}"];
if(cv[0] !== v[0] || cv[1] !== v[1])
{
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2f(ud["${n}"].location, v[0], v[1]);
}
`},{test:(n,e)=>n.type==="vec4"&&n.size===1&&!n.isArray&&e.width!==void 0,code:n=>`
cv = ud["${n}"].value;
v = uv["${n}"];
if(cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height)
{
cv[0] = v.x;
cv[1] = v.y;
cv[2] = v.width;
cv[3] = v.height;
gl.uniform4f(ud["${n}"].location, v.x, v.y, v.width, v.height)
}`,codeUbo:n=>`
v = uv.${n};
data[offset] = v.x;
data[offset+1] = v.y;
data[offset+2] = v.width;
data[offset+3] = v.height;
`},{test:(n,e)=>n.type==="vec4"&&n.size===1&&!n.isArray&&e.red!==void 0,code:n=>`
cv = ud["${n}"].value;
v = uv["${n}"];
if(cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha)
{
cv[0] = v.red;
cv[1] = v.green;
cv[2] = v.blue;
cv[3] = v.alpha;
gl.uniform4f(ud["${n}"].location, v.red, v.green, v.blue, v.alpha)
}`,codeUbo:n=>`
v = uv.${n};
data[offset] = v.red;
data[offset+1] = v.green;
data[offset+2] = v.blue;
data[offset+3] = v.alpha;
`},{test:(n,e)=>n.type==="vec3"&&n.size===1&&!n.isArray&&e.red!==void 0,code:n=>`
cv = ud["${n}"].value;
v = uv["${n}"];
if(cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.a)
{
cv[0] = v.red;
cv[1] = v.green;
cv[2] = v.blue;
gl.uniform3f(ud["${n}"].location, v.red, v.green, v.blue)
}`,codeUbo:n=>`
v = uv.${n};
data[offset] = v.red;
data[offset+1] = v.green;
data[offset+2] = v.blue;
`},{test:n=>n.type==="vec4"&&n.size===1&&!n.isArray,code:n=>`
cv = ud["${n}"].value;
v = uv["${n}"];
if(cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])
{
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4f(ud["${n}"].location, v[0], v[1], v[2], v[3])
}`}],n2={float:`
if (cv !== v)
{
cu.value = v;
gl.uniform1f(location, v);
}`,vec2:`
if (cv[0] !== v[0] || cv[1] !== v[1])
{
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2f(location, v[0], v[1])
}`,vec3:`
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])
{
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3f(location, v[0], v[1], v[2])
}`,vec4:`
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])
{
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4f(location, v[0], v[1], v[2], v[3]);
}`,int:`
if (cv !== v)
{
cu.value = v;
gl.uniform1i(location, v);
}`,ivec2:`
if (cv[0] !== v[0] || cv[1] !== v[1])
{
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2i(location, v[0], v[1]);
}`,ivec3:`
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])
{
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3i(location, v[0], v[1], v[2]);
}`,ivec4:`
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])
{
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4i(location, v[0], v[1], v[2], v[3]);
}`,uint:`
if (cv !== v)
{
cu.value = v;
gl.uniform1ui(location, v);
}`,uvec2:`
if (cv[0] !== v[0] || cv[1] !== v[1])
{
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2ui(location, v[0], v[1]);
}`,uvec3:`
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])
{
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3ui(location, v[0], v[1], v[2]);
}`,uvec4:`
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])
{
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4ui(location, v[0], v[1], v[2], v[3]);
}`,bool:`
if (cv !== v)
{
cu.value = v;
gl.uniform1i(location, v);
}`,bvec2:`
if (cv[0] != v[0] || cv[1] != v[1])
{
cv[0] = v[0];
cv[1] = v[1];
gl.uniform2i(location, v[0], v[1]);
}`,bvec3:`
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2])
{
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
gl.uniform3i(location, v[0], v[1], v[2]);
}`,bvec4:`
if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3])
{
cv[0] = v[0];
cv[1] = v[1];
cv[2] = v[2];
cv[3] = v[3];
gl.uniform4i(location, v[0], v[1], v[2], v[3]);
}`,mat2:"gl.uniformMatrix2fv(location, false, v)",mat3:"gl.uniformMatrix3fv(location, false, v)",mat4:"gl.uniformMatrix4fv(location, false, v)",sampler2D:`
if (cv !== v)
{
cu.value = v;
gl.uniform1i(location, v);
}`,samplerCube:`
if (cv !== v)
{
cu.value = v;
gl.uniform1i(location, v);
}`,sampler2DArray:`
if (cv !== v)
{
cu.value = v;
gl.uniform1i(location, v);
}`},s2={float:"gl.uniform1fv(location, v)",vec2:"gl.uniform2fv(location, v)",vec3:"gl.uniform3fv(location, v)",vec4:"gl.uniform4fv(location, v)",mat4:"gl.uniformMatrix4fv(location, false, v)",mat3:"gl.uniformMatrix3fv(location, false, v)",mat2:"gl.uniformMatrix2fv(location, false, v)",int:"gl.uniform1iv(location, v)",ivec2:"gl.uniform2iv(location, v)",ivec3:"gl.uniform3iv(location, v)",ivec4:"gl.uniform4iv(location, v)",uint:"gl.uniform1uiv(location, v)",uvec2:"gl.uniform2uiv(location, v)",uvec3:"gl.uniform3uiv(location, v)",uvec4:"gl.uniform4uiv(location, v)",bool:"gl.uniform1iv(location, v)",bvec2:"gl.uniform2iv(location, v)",bvec3:"gl.uniform3iv(location, v)",bvec4:"gl.uniform4iv(location, v)",sampler2D:"gl.uniform1iv(location, v)",samplerCube:"gl.uniform1iv(location, v)",sampler2DArray:"gl.uniform1iv(location, v)"};function r2(n,e){var i;const t=[`
var v = null;
var cv = null;
var cu = null;
var t = 0;
var gl = renderer.gl;
`];for(const s in n.uniforms){const r=e[s];if(!r){((i=n.uniforms[s])==null?void 0:i.group)===!0&&(n.uniforms[s].ubo?t.push(`
renderer.shader.syncUniformBufferGroup(uv.${s}, '${s}');
`):t.push(`
renderer.shader.syncUniformGroup(uv.${s}, syncData);
`));continue}const o=n.uniforms[s];let a=!1;for(let c=0;c<Ra.length;c++)if(Ra[c].test(r,o)){t.push(Ra[c].code(s,o)),a=!0;break}if(!a){const c=(r.size===1&&!r.isArray?n2:s2)[r.type].replace("location",`ud["${s}"].location`);t.push(`
cu = ud["${s}"];
cv = cu.value;
v = uv["${s}"];
${c};`)}}return new Function("ud","uv","renderer","syncData",t.join(`
`))}const gw={};let sa=gw;function o2(){if(sa===gw||sa!=null&&sa.isContextLost()){const n=Ve.ADAPTER.createCanvas();let e;Ve.PREFER_ENV>=Ho.WEBGL2&&(e=n.getContext("webgl2",{})),e||(e=n.getContext("webgl",{})||n.getContext("experimental-webgl",{}),e?e.getExtension("WEBGL_draw_buffers"):e=null),sa=e}return sa}let Dc;function a2(){if(!Dc){Dc=kn.MEDIUM;const n=o2();if(n&&n.getShaderPrecisionFormat){const e=n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT);e&&(Dc=e.precision?kn.HIGH:kn.MEDIUM)}}return Dc}function xy(n,e){const t=n.getShaderSource(e).split(`
`).map((l,h)=>`${h}: ${l}`),i=n.getShaderInfoLog(e),s=i.split(`
`),r={},o=s.map(l=>parseFloat(l.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(l=>l&&!r[l]?(r[l]=!0,!0):!1),a=[""];o.forEach(l=>{t[l-1]=`%c${t[l-1]}%c`,a.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});const c=t.join(`
`);a[0]=c,console.error(i),console.groupCollapsed("click to view full shader code"),console.warn(...a),console.groupEnd()}function l2(n,e,t,i){n.getProgramParameter(e,n.LINK_STATUS)||(n.getShaderParameter(t,n.COMPILE_STATUS)||xy(n,t),n.getShaderParameter(i,n.COMPILE_STATUS)||xy(n,i),console.error("PixiJS Error: Could not initialize shader."),n.getProgramInfoLog(e)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",n.getProgramInfoLog(e)))}const c2={float:1,vec2:2,vec3:3,vec4:4,int:1,ivec2:2,ivec3:3,ivec4:4,uint:1,uvec2:2,uvec3:3,uvec4:4,bool:1,bvec2:2,bvec3:3,bvec4:4,mat2:4,mat3:9,mat4:16,sampler2D:1};function vw(n){return c2[n]}let Bc=null;const wy={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_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray"};function yw(n,e){if(!Bc){const t=Object.keys(wy);Bc={};for(let i=0;i<t.length;++i){const s=t[i];Bc[n[s]]=wy[s]}}return Bc[e]}function Sy(n,e,t){if(n.substring(0,9)!=="precision"){let i=e;return e===kn.HIGH&&t!==kn.HIGH&&(i=kn.MEDIUM),`precision ${i} float;
${n}`}else if(t!==kn.HIGH&&n.substring(0,15)==="precision highp")return n.replace("precision highp","precision mediump");return n}let ul;function h2(){if(typeof ul=="boolean")return ul;try{ul=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{ul=!1}return ul}let u2=0;const Uc={},Wm=class pa{constructor(e,t,i="pixi-shader",s={}){this.extra={},this.id=u2++,this.vertexSrc=e||pa.defaultVertexSrc,this.fragmentSrc=t||pa.defaultFragmentSrc,this.vertexSrc=this.vertexSrc.trim(),this.fragmentSrc=this.fragmentSrc.trim(),this.extra=s,this.vertexSrc.substring(0,8)!=="#version"&&(i=i.replace(/\s+/g,"-"),Uc[i]?(Uc[i]++,i+=`-${Uc[i]}`):Uc[i]=1,this.vertexSrc=`#define SHADER_NAME ${i}
${this.vertexSrc}`,this.fragmentSrc=`#define SHADER_NAME ${i}
${this.fragmentSrc}`,this.vertexSrc=Sy(this.vertexSrc,pa.defaultVertexPrecision,kn.HIGH),this.fragmentSrc=Sy(this.fragmentSrc,pa.defaultFragmentPrecision,a2())),this.glPrograms={},this.syncUniforms=null}static get defaultVertexSrc(){return i2}static get defaultFragmentSrc(){return t2}static from(e,t,i){const s=e+t;let r=my[s];return r||(my[s]=r=new pa(e,t,i)),r}};Wm.defaultVertexPrecision=kn.HIGH,Wm.defaultFragmentPrecision=Ks.apple.device?kn.HIGH:kn.MEDIUM;let Ts=Wm,d2=0;class Qn{constructor(e,t,i){this.group=!0,this.syncUniforms={},this.dirtyId=0,this.id=d2++,this.static=!!t,this.ubo=!!i,e instanceof zt?(this.buffer=e,this.buffer.type=Ms.UNIFORM_BUFFER,this.autoManage=!1,this.ubo=!0):(this.uniforms=e,this.ubo&&(this.buffer=new zt(new Float32Array(1)),this.buffer.type=Ms.UNIFORM_BUFFER,this.autoManage=!0))}update(){this.dirtyId++,!this.autoManage&&this.buffer&&this.buffer.update()}add(e,t,i){if(!this.ubo)this.uniforms[e]=new Qn(t,i);else throw new Error("[UniformGroup] uniform groups in ubo mode cannot be modified, or have uniform groups nested in them")}static from(e,t,i){return new Qn(e,t,i)}static uboFrom(e,t){return new Qn(e,t??!0,!0)}}class es{constructor(e,t){this.uniformBindCount=0,this.program=e,t?t instanceof Qn?this.uniformGroup=t:this.uniformGroup=new Qn(t):this.uniformGroup=new Qn({}),this.disposeRunner=new Zn("disposeShader")}checkUniformExists(e,t){if(t.uniforms[e])return!0;for(const i in t.uniforms){const s=t.uniforms[i];if(s.group===!0&&this.checkUniformExists(e,s))return!0}return!1}destroy(){this.uniformGroup=null,this.disposeRunner.emit(this),this.disposeRunner.destroy()}get uniforms(){return this.uniformGroup.uniforms}static from(e,t,i){const s=Ts.from(e,t);return new es(s,i)}}class bw{constructor(e,t){if(this.vertexSrc=e,this.fragTemplate=t,this.programCache={},this.defaultGroupCache={},!t.includes("%count%"))throw new Error('Fragment template must contain "%count%".');if(!t.includes("%forloop%"))throw new Error('Fragment template must contain "%forloop%".')}generateShader(e){if(!this.programCache[e]){const i=new Int32Array(e);for(let r=0;r<e;r++)i[r]=r;this.defaultGroupCache[e]=Qn.from({uSamplers:i},!0);let s=this.fragTemplate;s=s.replace(/%count%/gi,`${e}`),s=s.replace(/%forloop%/gi,this.generateSampleSrc(e)),this.programCache[e]=new Ts(this.vertexSrc,s)}const t={tint:new Float32Array([1,1,1,1]),translationMatrix:new Bt,default:this.defaultGroupCache[e]};return new es(this.programCache[e],t)}generateSampleSrc(e){let t="";t+=`
`,t+=`
`;for(let i=0;i<e;i++)i>0&&(t+=`
else `),i<e-1&&(t+=`if(vTextureId < ${i}.5)`),t+=`
{`,t+=`
color = texture2D(uSamplers[${i}], vTextureCoord);`,t+=`
}`;return t+=`
`,t+=`
`,t}}class zm{constructor(){this.elements=[],this.ids=[],this.count=0}clear(){for(let e=0;e<this.count;e++)this.elements[e]=null;this.count=0}}function f2(){return!Ks.apple.device}function m2(n){let e=!0;const t=Ve.ADAPTER.getNavigator();if(Ks.tablet||Ks.phone){if(Ks.apple.device){const i=t.userAgent.match(/OS (\d+)_(\d+)?/);i&&parseInt(i[1],10)<11&&(e=!1)}if(Ks.android.device){const i=t.userAgent.match(/Android\s([0-9.]*)/);i&&parseInt(i[1],10)<7&&(e=!1)}}return e?n:4}class rd{constructor(e){this.renderer=e}flush(){}destroy(){this.renderer=null}start(){}stop(){this.flush()}render(e){}}var p2=`varying vec2 vTextureCoord;
varying vec4 vColor;
varying float vTextureId;
uniform sampler2D uSamplers[%count%];
void main(void){
vec4 color;
%forloop%
gl_FragColor = color * vColor;
}
`,g2=`precision highp float;
attribute vec2 aVertexPosition;
attribute vec2 aTextureCoord;
attribute vec4 aColor;
attribute float aTextureId;
uniform mat3 projectionMatrix;
uniform mat3 translationMatrix;
uniform vec4 tint;
varying vec2 vTextureCoord;
varying vec4 vColor;
varying float vTextureId;
void main(void){
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
vTextureCoord = aTextureCoord;
vTextureId = aTextureId;
vColor = aColor * tint;
}
`;const xl=class Xn extends rd{constructor(e){super(e),this.setShaderGenerator(),this.geometryClass=fw,this.vertexSize=6,this.state=Rs.for2d(),this.size=Xn.defaultBatchSize*4,this._vertexCount=0,this._indexCount=0,this._bufferedElements=[],this._bufferedTextures=[],this._bufferSize=0,this._shader=null,this._packedGeometries=[],this._packedGeometryPoolSize=2,this._flushId=0,this._aBuffers={},this._iBuffers={},this.maxTextures=1,this.renderer.on("prerender",this.onPrerender,this),e.runners.contextChange.add(this),this._dcIndex=0,this._aIndex=0,this._iIndex=0,this._attributeBuffer=null,this._indexBuffer=null,this._tempBoundTextures=[]}static get defaultMaxTextures(){return this._defaultMaxTextures=this._defaultMaxTextures??m2(32),this._defaultMaxTextures}static set defaultMaxTextures(e){this._defaultMaxTextures=e}static get canUploadSameBuffer(){return this._canUploadSameBuffer=this._canUploadSameBuffer??f2(),this._canUploadSameBuffer}static set canUploadSameBuffer(e){this._canUploadSameBuffer=e}get MAX_TEXTURES(){return pt("7.1.0","BatchRenderer#MAX_TEXTURES renamed to BatchRenderer#maxTextures"),this.maxTextures}static get defaultVertexSrc(){return g2}static get defaultFragmentTemplate(){return p2}setShaderGenerator({vertex:e=Xn.defaultVertexSrc,fragment:t=Xn.defaultFragmentTemplate}={}){this.shaderGenerator=new bw(e,t)}contextChange(){const e=this.renderer.gl;Ve.PREFER_ENV===Ho.WEBGL_LEGACY?this.maxTextures=1:(this.maxTextures=Math.min(e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),Xn.defaultMaxTextures),this.maxTextures=HI(this.maxTextures,e)),this._shader=this.shaderGenerator.generateShader(this.maxTextures);for(let t=0;t<this._packedGeometryPoolSize;t++)this._packedGeometries[t]=new this.geometryClass;this.initFlushBuffers()}initFlushBuffers(){const{_drawCallPool:e,_textureArrayPool:t}=Xn,i=this.size/4,s=Math.floor(i/this.maxTextures)+1;for(;e.length<i;)e.push(new Gm);for(;t.length<s;)t.push(new zm);for(let r=0;r<this.maxTextures;r++)this._tempBoundTextures[r]=null}onPrerender(){this._flushId=0}render(e){e._texture.valid&&(this._vertexCount+e.vertexData.length/2>this.size&&this.flush(),this._vertexCount+=e.vertexData.length/2,this._indexCount+=e.indices.length,this._bufferedTextures[this._bufferSize]=e._texture.baseTexture,this._bufferedElements[this._bufferSize++]=e)}buildTexturesAndDrawCalls(){const{_bufferedTextures:e,maxTextures:t}=this,i=Xn._textureArrayPool,s=this.renderer.batch,r=this._tempBoundTextures,o=this.renderer.textureGC.count;let a=++rt._globalBatch,c=0,l=i[0],h=0;s.copyBoundTextures(r,t);for(let u=0;u<this._bufferSize;++u){const d=e[u];e[u]=null,d._batchEnabled!==a&&(l.count>=t&&(s.boundArray(l,r,a,t),this.buildDrawCalls(l,h,u),h=u,l=i[++c],++a),d._batchEnabled=a,d.touched=o,l.elements[l.count++]=d)}l.count>0&&(s.boundArray(l,r,a,t),this.buildDrawCalls(l,h,this._bufferSize),++c,++a);for(let u=0;u<r.length;u++)r[u]=null;rt._globalBatch=a}buildDrawCalls(e,t,i){const{_bufferedElements:s,_attributeBuffer:r,_indexBuffer:o,vertexSize:a}=this,c=Xn._drawCallPool;let l=this._dcIndex,h=this._aIndex,u=this._iIndex,d=c[l];d.start=this._iIndex,d.texArray=e;for(let f=t;f<i;++f){const m=s[f],p=m._texture.baseTexture,g=cw[p.alphaMode?1:0][m.blendMode];s[f]=null,t<f&&d.blend!==g&&(d.size=u-d.start,t=f,d=c[++l],d.texArray=e,d.start=u),this.packInterleavedGeometry(m,r,o,h,u),h+=m.vertexData.length/2*a,u+=m.indices.length,d.blend=g}t<i&&(d.size=u-d.start,++l),this._dcIndex=l,this._aIndex=h,this._iIndex=u}bindAndClearTexArray(e){const t=this.renderer.texture;for(let i=0;i<e.count;i++)t.bind(e.elements[i],e.ids[i]),e.elements[i]=null;e.count=0}updateGeometry(){const{_packedGeometries:e,_attributeBuffer:t,_indexBuffer:i}=this;Xn.canUploadSameBuffer?(e[this._flushId]._buffer.update(t.rawBinaryData),e[this._flushId]._indexBuffer.update(i),this.renderer.geometry.updateBuffers()):(this._packedGeometryPoolSize<=this._flushId&&(this._packedGeometryPoolSize++,e[this._flushId]=new this.geometryClass),e[this._flushId]._buffer.update(t.rawBinaryData),e[this._flushId]._indexBuffer.update(i),this.renderer.geometry.bind(e[this._flushId]),this.renderer.geometry.updateBuffers(),this._flushId++)}drawBatches(){const e=this._dcIndex,{gl:t,state:i}=this.renderer,s=Xn._drawCallPool;let r=null;for(let o=0;o<e;o++){const{texArray:a,type:c,size:l,start:h,blend:u}=s[o];r!==a&&(r=a,this.bindAndClearTexArray(a)),this.state.blendMode=u,i.set(this.state),t.drawElements(c,l,t.UNSIGNED_SHORT,h*2)}}flush(){this._vertexCount!==0&&(this._attributeBuffer=this.getAttributeBuffer(this._vertexCount),this._indexBuffer=this.getIndexBuffer(this._indexCount),this._aIndex=0,this._iIndex=0,this._dcIndex=0,this.buildTexturesAndDrawCalls(),this.updateGeometry(),this.drawBatches(),this._bufferSize=0,this._vertexCount=0,this._indexCount=0)}start(){this.renderer.state.set(this.state),this.renderer.texture.ensureSamplerType(this.maxTextures),this.renderer.shader.bind(this._shader),Xn.canUploadSameBuffer&&this.renderer.geometry.bind(this._packedGeometries[this._flushId])}stop(){this.flush()}destroy(){for(let e=0;e<this._packedGeometryPoolSize;e++)this._packedGeometries[e]&&this._packedGeometries[e].destroy();this.renderer.off("prerender",this.onPrerender,this),this._aBuffers=null,this._iBuffers=null,this._packedGeometries=null,this._attributeBuffer=null,this._indexBuffer=null,this._shader&&(this._shader.destroy(),this._shader=null),super.destroy()}getAttributeBuffer(e){const t=jh(Math.ceil(e/8)),i=dy(t),s=t*8;this._aBuffers.length<=i&&(this._iBuffers.length=i+1);let r=this._aBuffers[s];return r||(this._aBuffers[s]=r=new Vm(s*this.vertexSize*4)),r}getIndexBuffer(e){const t=jh(Math.ceil(e/12)),i=dy(t),s=t*12;this._iBuffers.length<=i&&(this._iBuffers.length=i+1);let r=this._iBuffers[i];return r||(this._iBuffers[i]=r=new Uint16Array(s)),r}packInterleavedGeometry(e,t,i,s,r){const{uint32View:o,float32View:a}=t,c=s/this.vertexSize,l=e.uvs,h=e.indices,u=e.vertexData,d=e._texture.baseTexture._batchLocation,f=Math.min(e.worldAlpha,1),m=kt.shared.setValue(e._tintRGB).toPremultiplied(f,e._texture.baseTexture.alphaMode>0);for(let p=0;p<u.length;p+=2)a[s++]=u[p],a[s++]=u[p+1],a[s++]=l[p],a[s++]=l[p+1],o[s++]=m,a[s++]=d;for(let p=0;p<h.length;p++)i[r++]=c+h[p]}};xl.defaultBatchSize=4096,xl.extension={name:"batch",type:$e.RendererPlugin},xl._drawCallPool=[],xl._textureArrayPool=[];let Rr=xl;je.add(Rr);var v2=`varying vec2 vTextureCoord;
uniform sampler2D uSampler;
void main(void){
gl_FragColor = texture2D(uSampler, vTextureCoord);
}
`,y2=`attribute vec2 aVertexPosition;
uniform mat3 projectionMatrix;
varying vec2 vTextureCoord;
uniform vec4 inputSize;
uniform vec4 outputFrame;
vec4 filterVertexPosition( void )
{
vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;
return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);
}
vec2 filterTextureCoord( void )
{
return aVertexPosition * (outputFrame.zw * inputSize.zw);
}
void main(void)
{
gl_Position = filterVertexPosition();
vTextureCoord = filterTextureCoord();
}
`;const qm=class wl extends es{constructor(e,t,i){const s=Ts.from(e||wl.defaultVertexSrc,t||wl.defaultFragmentSrc);super(s,i),this.padding=0,this.resolution=wl.defaultResolution,this.multisample=wl.defaultMultisample,this.enabled=!0,this.autoFit=!0,this.state=new Rs}apply(e,t,i,s,r){e.applyFilter(this,t,i,s)}get blendMode(){return this.state.blendMode}set blendMode(e){this.state.blendMode=e}get resolution(){return this._resolution}set resolution(e){this._resolution=e}static get defaultVertexSrc(){return y2}static get defaultFragmentSrc(){return v2}};qm.defaultResolution=1,qm.defaultMultisample=bi.NONE;let tn=qm;class qh{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new kt(0),this.alpha=1}init(e){this.clearBeforeRender=e.clearBeforeRender;const{backgroundColor:t,background:i,backgroundAlpha:s}=e,r=i??t;r!==void 0&&(this.color=r),this.alpha=s}get color(){return this._backgroundColor.value}set color(e){this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get backgroundColor(){return this._backgroundColor}destroy(){}}qh.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0},qh.extension={type:[$e.RendererSystem,$e.CanvasRendererSystem],name:"background"};je.add(qh);class xw{constructor(e){this.renderer=e,this.emptyRenderer=new rd(e),this.currentRenderer=this.emptyRenderer}setObjectRenderer(e){this.currentRenderer!==e&&(this.currentRenderer.stop(),this.currentRenderer=e,this.currentRenderer.start())}flush(){this.setObjectRenderer(this.emptyRenderer)}reset(){this.setObjectRenderer(this.emptyRenderer)}copyBoundTextures(e,t){const{boundTextures:i}=this.renderer.texture;for(let s=t-1;s>=0;--s)e[s]=i[s]||null,e[s]&&(e[s]._batchLocation=s)}boundArray(e,t,i,s){const{elements:r,ids:o,count:a}=e;let c=0;for(let l=0;l<a;l++){const h=r[l],u=h._batchLocation;if(u>=0&&u<s&&t[u]===h){o[l]=u;continue}for(;c<s;){const d=t[c];if(d&&d._batchEnabled===i&&d._batchLocation===c){c++;continue}o[l]=c,h._batchLocation=c,t[c]=h;break}}}destroy(){this.renderer=null}}xw.extension={type:$e.RendererSystem,name:"batch"};je.add(xw);let _y=0;class Kh{constructor(e){this.renderer=e,this.webGLVersion=1,this.extensions={},this.supports={uint32Indices:!1},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,this.renderer.CONTEXT_UID=_y++}init(e){if(e.context)this.initFromContext(e.context);else{const t=this.renderer.background.alpha<1,i=e.premultipliedAlpha;this.preserveDrawingBuffer=e.preserveDrawingBuffer,this.useContextAlpha=e.useContextAlpha,this.powerPreference=e.powerPreference,this.initFromOptions({alpha:t,premultipliedAlpha:i,antialias:e.antialias,stencil:!0,preserveDrawingBuffer:e.preserveDrawingBuffer,powerPreference:e.powerPreference})}}initFromContext(e){this.gl=e,this.validateContext(e),this.renderer.gl=e,this.renderer.CONTEXT_UID=_y++,this.renderer.runners.contextChange.emit(e);const t=this.renderer.view;t.addEventListener!==void 0&&(t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1))}initFromOptions(e){const t=this.createContext(this.renderer.view,e);this.initFromContext(t)}createContext(e,t){let i;if(Ve.PREFER_ENV>=Ho.WEBGL2&&(i=e.getContext("webgl2",t)),i)this.webGLVersion=2;else if(this.webGLVersion=1,i=e.getContext("webgl",t)||e.getContext("experimental-webgl",t),!i)throw new Error("This browser does not support WebGL. Try using the canvas renderer");return this.gl=i,this.getExtensions(),this.gl}getExtensions(){const{gl:e}=this,t={loseContext:e.getExtension("WEBGL_lose_context"),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")};this.webGLVersion===1?Object.assign(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")}):this.webGLVersion===2&&Object.assign(this.extensions,t,{colorBufferFloat:e.getExtension("EXT_color_buffer_float")})}handleContextLost(e){e.preventDefault(),setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext&&this.extensions.loseContext.restoreContext()},0)}handleContextRestored(){this.renderer.runners.contextChange.emit(this.gl)}destroy(){const e=this.renderer.view;this.renderer=null,e.removeEventListener!==void 0&&(e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored)),this.gl.useProgram(null),this.extensions.loseContext&&this.extensions.loseContext.loseContext()}postrender(){this.renderer.objectRenderer.renderingToScreen&&this.gl.flush()}validateContext(e){const t=e.getContextAttributes(),i="WebGL2RenderingContext"in globalThis&&e instanceof globalThis.WebGL2RenderingContext;i&&(this.webGLVersion=2),t&&!t.stencil&&console.warn("Provided WebGL context does not have a stencil buffer, masks may not render correctly");const s=i||!!e.getExtension("OES_element_index_uint");this.supports.uint32Indices=s,s||console.warn("Provided WebGL context does not support 32 index buffer, complex graphics may not render correctly")}}Kh.defaultOptions={context:null,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:"default"},Kh.extension={type:$e.RendererSystem,name:"context"};je.add(Kh);class Km{constructor(e,t){if(this.width=Math.round(e),this.height=Math.round(t),!this.width||!this.height)throw new Error("Framebuffer width or height is zero");this.stencil=!1,this.depth=!1,this.dirtyId=0,this.dirtyFormat=0,this.dirtySize=0,this.depthTexture=null,this.colorTextures=[],this.glFramebuffers={},this.disposeRunner=new Zn("disposeFramebuffer"),this.multisample=bi.NONE}get colorTexture(){return this.colorTextures[0]}addColorTexture(e=0,t){return this.colorTextures[e]=t||new rt(null,{scaleMode:Wn.NEAREST,resolution:1,mipmap:$n.OFF,width:this.width,height:this.height}),this.dirtyId++,this.dirtyFormat++,this}addDepthTexture(e){return this.depthTexture=e||new rt(null,{scaleMode:Wn.NEAREST,resolution:1,width:this.width,height:this.height,mipmap:$n.OFF,format:Ie.DEPTH_COMPONENT,type:He.UNSIGNED_SHORT}),this.dirtyId++,this.dirtyFormat++,this}enableDepth(){return this.depth=!0,this.dirtyId++,this.dirtyFormat++,this}enableStencil(){return this.stencil=!0,this.dirtyId++,this.dirtyFormat++,this}resize(e,t){if(e=Math.round(e),t=Math.round(t),!e||!t)throw new Error("Framebuffer width and height must not be zero");if(!(e===this.width&&t===this.height)){this.width=e,this.height=t,this.dirtyId++,this.dirtySize++;for(let i=0;i<this.colorTextures.length;i++){const s=this.colorTextures[i],r=s.resolution;s.setSize(e/r,t/r)}if(this.depthTexture){const i=this.depthTexture.resolution;this.depthTexture.setSize(e/i,t/i)}}}dispose(){this.disposeRunner.emit(this,!1)}destroyDepthTexture(){this.depthTexture&&(this.depthTexture.destroy(),this.depthTexture=null,++this.dirtyId,++this.dirtyFormat)}}class ww extends rt{constructor(e={}){if(typeof e=="number"){const t=arguments[0],i=arguments[1],s=arguments[2],r=arguments[3];e={width:t,height:i,scaleMode:s,resolution:r}}e.width=e.width??100,e.height=e.height??100,e.multisample??(e.multisample=bi.NONE),super(null,e),this.mipmap=$n.OFF,this.valid=!0,this._clear=new kt([0,0,0,0]),this.framebuffer=new Km(this.realWidth,this.realHeight).addColorTexture(0,this),this.framebuffer.multisample=e.multisample,this.maskStack=[],this.filterStack=[{}]}set clearColor(e){this._clear.setValue(e)}get clearColor(){return this._clear.value}get clear(){return this._clear}get multisample(){return this.framebuffer.multisample}set multisample(e){this.framebuffer.multisample=e}resize(e,t){this.framebuffer.resize(e*this.resolution,t*this.resolution),this.setRealSize(this.framebuffer.width,this.framebuffer.height)}dispose(){this.framebuffer.dispose(),super.dispose()}destroy(){super.destroy(),this.framebuffer.destroyDepthTexture(),this.framebuffer=null}}class mr extends Zl{constructor(e){const t=e,i=t.naturalWidth||t.videoWidth||t.displayWidth||t.width,s=t.naturalHeight||t.videoHeight||t.displayHeight||t.height;super(i,s),this.source=e,this.noSubImage=!1}static crossOrigin(e,t,i){i===void 0&&!t.startsWith("data:")?e.crossOrigin=XI(t):i!==!1&&(e.crossOrigin=typeof i=="string"?i:"anonymous")}upload(e,t,i,s){const r=e.gl,o=t.realWidth,a=t.realHeight;if(s=s||this.source,typeof HTMLImageElement<"u"&&s instanceof HTMLImageElement){if(!s.complete||s.naturalWidth===0)return!1}else if(typeof HTMLVideoElement<"u"&&s instanceof HTMLVideoElement&&s.readyState<=1)return!1;return r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.alphaMode===Ri.UNPACK),!this.noSubImage&&t.target===r.TEXTURE_2D&&i.width===o&&i.height===a?r.texSubImage2D(r.TEXTURE_2D,0,0,0,t.format,i.type,s):(i.width=o,i.height=a,r.texImage2D(t.target,0,i.internalFormat,t.format,i.type,s)),!0}update(){if(this.destroyed)return;const e=this.source,t=e.naturalWidth||e.videoWidth||e.width,i=e.naturalHeight||e.videoHeight||e.height;this.resize(t,i),super.update()}dispose(){this.source=null}}class Sw extends mr{constructor(e,t){if(t=t||{},typeof e=="string"){const i=new Image;mr.crossOrigin(i,e,t.crossorigin),i.src=e,e=i}super(e),!e.complete&&this._width&&this._height&&(this._width=0,this._height=0),this.url=e.src,this._process=null,this.preserveBitmap=!1,this.createBitmap=(t.createBitmap??Ve.CREATE_IMAGE_BITMAP)&&!!globalThis.createImageBitmap,this.alphaMode=typeof t.alphaMode=="number"?t.alphaMode:null,this.bitmap=null,this._load=null,t.autoLoad!==!1&&this.load()}load(e){return this._load?this._load:(e!==void 0&&(this.createBitmap=e),this._load=new Promise((t,i)=>{const s=this.source;this.url=s.src;const r=()=>{this.destroyed||(s.onload=null,s.onerror=null,this.update(),this._load=null,this.createBitmap?t(this.process()):t(this))};s.complete&&s.src?r():(s.onload=r,s.onerror=o=>{i(o),this.onError.emit(o)})}),this._load)}process(){const e=this.source;if(this._process!==null)return this._process;if(this.bitmap!==null||!globalThis.createImageBitmap)return Promise.resolve(this);const t=globalThis.createImageBitmap,i=!e.crossOrigin||e.crossOrigin==="anonymous";return this._process=fetch(e.src,{mode:i?"cors":"no-cors"}).then(s=>s.blob()).then(s=>t(s,0,0,e.width,e.height,{premultiplyAlpha:this.alphaMode===null||this.alphaMode===Ri.UNPACK?"premultiply":"none"})).then(s=>this.destroyed?Promise.reject():(this.bitmap=s,this.update(),this._process=null,Promise.resolve(this))),this._process}upload(e,t,i){if(typeof this.alphaMode=="number"&&(t.alphaMode=this.alphaMode),!this.createBitmap)return super.upload(e,t,i);if(!this.bitmap&&(this.process(),!this.bitmap))return!1;if(super.upload(e,t,i,this.bitmap),!this.preserveBitmap){let s=!0;const r=t._glTextures;for(const o in r){const a=r[o];if(a!==i&&a.dirtyId!==t.dirtyId){s=!1;break}}s&&(this.bitmap.close&&this.bitmap.close(),this.bitmap=null)}return!0}dispose(){this.source.onload=null,this.source.onerror=null,super.dispose(),this.bitmap&&(this.bitmap.close(),this.bitmap=null),this._process=null,this._load=null}static test(e){return typeof HTMLImageElement<"u"&&(typeof e=="string"||e instanceof HTMLImageElement)}}class Cg{constructor(){this.x0=0,this.y0=0,this.x1=1,this.y1=0,this.x2=1,this.y2=1,this.x3=0,this.y3=1,this.uvsFloat32=new Float32Array(8)}set(e,t,i){const s=t.width,r=t.height;if(i){const o=e.width/2/s,a=e.height/2/r,c=e.x/s+o,l=e.y/r+a;i=si.add(i,si.NW),this.x0=c+o*si.uX(i),this.y0=l+a*si.uY(i),i=si.add(i,2),this.x1=c+o*si.uX(i),this.y1=l+a*si.uY(i),i=si.add(i,2),this.x2=c+o*si.uX(i),this.y2=l+a*si.uY(i),i=si.add(i,2),this.x3=c+o*si.uX(i),this.y3=l+a*si.uY(i)}else this.x0=e.x/s,this.y0=e.y/r,this.x1=(e.x+e.width)/s,this.y1=e.y/r,this.x2=(e.x+e.width)/s,this.y2=(e.y+e.height)/r,this.x3=e.x/s,this.y3=(e.y+e.height)/r;this.uvsFloat32[0]=this.x0,this.uvsFloat32[1]=this.y0,this.uvsFloat32[2]=this.x1,this.uvsFloat32[3]=this.y1,this.uvsFloat32[4]=this.x2,this.uvsFloat32[5]=this.y2,this.uvsFloat32[6]=this.x3,this.uvsFloat32[7]=this.y3}}Cg.prototype.toString=function(){return`[@pixi/core:TextureUvs x0=${this.x0} y0=${this.y0} x1=${this.x1} y1=${this.y1} x2=${this.x2} y2=${this.y2} x3=${this.x3} y3=${this.y3}]`};const Ty=new Cg;function Vc(n){n.destroy=function(){},n.on=function(){},n.once=function(){},n.emit=function(){}}let it=class jt extends pc{constructor(e,t,i,s,r,o,a){if(super(),this.noFrame=!1,t||(this.noFrame=!0,t=new dt(0,0,1,1)),e instanceof jt&&(e=e.baseTexture),this.baseTexture=e,this._frame=t,this.trim=s,this.valid=!1,this.destroyed=!1,this._uvs=Ty,this.uvMatrix=null,this.orig=i||t,this._rotate=Number(r||0),r===!0)this._rotate=2;else if(this._rotate%2!==0)throw new Error("attempt to use diamond-shaped UVs. If you are sure, set rotation manually");this.defaultAnchor=o?new Tt(o.x,o.y):new Tt(0,0),this.defaultBorders=a,this._updateID=0,this.textureCacheIds=[],e.valid?this.noFrame?e.valid&&this.onBaseTextureUpdated(e):this.frame=t:e.once("loaded",this.onBaseTextureUpdated,this),this.noFrame&&e.on("update",this.onBaseTextureUpdated,this)}update(){this.baseTexture.resource&&this.baseTexture.resource.update()}onBaseTextureUpdated(e){if(this.noFrame){if(!this.baseTexture.valid)return;this._frame.width=e.width,this._frame.height=e.height,this.valid=!0,this.updateUvs()}else this.frame=this._frame;this.emit("update",this)}destroy(e){if(this.baseTexture){if(e){const{resource:t}=this.baseTexture;t!=null&&t.url&&as[t.url]&&jt.removeFromCache(t.url),this.baseTexture.destroy()}this.baseTexture.off("loaded",this.onBaseTextureUpdated,this),this.baseTexture.off("update",this.onBaseTextureUpdated,this),this.baseTexture=null}this._frame=null,this._uvs=null,this.trim=null,this.orig=null,this.valid=!1,jt.removeFromCache(this),this.textureCacheIds=null,this.destroyed=!0,this.emit("destroyed",this),this.removeAllListeners()}clone(){var s;const e=this._frame.clone(),t=this._frame===this.orig?e:this.orig.clone(),i=new jt(this.baseTexture,!this.noFrame&&e,t,(s=this.trim)==null?void 0:s.clone(),this.rotate,this.defaultAnchor,this.defaultBorders);return this.noFrame&&(i._frame=e),i}updateUvs(){this._uvs===Ty&&(this._uvs=new Cg),this._uvs.set(this._frame,this.baseTexture,this.rotate),this._updateID++}static from(e,t={},i=Ve.STRICT_TEXTURE_CACHE){const s=typeof e=="string";let r=null;if(s)r=e;else if(e instanceof rt){if(!e.cacheId){const a=(t==null?void 0:t.pixiIdPrefix)||"pixiid";e.cacheId=`${a}-${Bo()}`,rt.addToCache(e,e.cacheId)}r=e.cacheId}else{if(!e._pixiId){const a=(t==null?void 0:t.pixiIdPrefix)||"pixiid";e._pixiId=`${a}_${Bo()}`}r=e._pixiId}let o=as[r];if(s&&i&&!o)throw new Error(`The cacheId "${r}" does not exist in TextureCache.`);return!o&&!(e instanceof rt)?(t.resolution||(t.resolution=fr(e)),o=new jt(new rt(e,t)),o.baseTexture.cacheId=r,rt.addToCache(o.baseTexture,r),jt.addToCache(o,r)):!o&&e instanceof rt&&(o=new jt(e),jt.addToCache(o,r)),o}static fromURL(e,t){const i=Object.assign({autoLoad:!1},t==null?void 0:t.resourceOptions),s=jt.from(e,Object.assign({resourceOptions:i},t),!1),r=s.baseTexture.resource;return s.baseTexture.valid?Promise.resolve(s):r.load().then(()=>Promise.resolve(s))}static fromBuffer(e,t,i,s){return new jt(rt.fromBuffer(e,t,i,s))}static fromLoader(e,t,i,s){const r=new rt(e,Object.assign({scaleMode:rt.defaultOptions.scaleMode,resolution:fr(t)},s)),{resource:o}=r;o instanceof Sw&&(o.url=t);const a=new jt(r);return i||(i=t),rt.addToCache(a.baseTexture,i),jt.addToCache(a,i),i!==t&&(rt.addToCache(a.baseTexture,t),jt.addToCache(a,t)),a.baseTexture.valid?Promise.resolve(a):new Promise(c=>{a.baseTexture.once("loaded",()=>c(a))})}static addToCache(e,t){t&&(e.textureCacheIds.includes(t)||e.textureCacheIds.push(t),as[t]&&as[t]!==e&&console.warn(`Texture added to the cache with an id [${t}] that already had an entry`),as[t]=e)}static removeFromCache(e){if(typeof e=="string"){const t=as[e];if(t){const i=t.textureCacheIds.indexOf(e);return i>-1&&t.textureCacheIds.splice(i,1),delete as[e],t}}else if(e!=null&&e.textureCacheIds){for(let t=0;t<e.textureCacheIds.length;++t)as[e.textureCacheIds[t]]===e&&delete as[e.textureCacheIds[t]];return e.textureCacheIds.length=0,e}return null}get resolution(){return this.baseTexture.resolution}get frame(){return this._frame}set frame(e){this._frame=e,this.noFrame=!1;const{x:t,y:i,width:s,height:r}=e,o=t+s>this.baseTexture.width,a=i+r>this.baseTexture.height;if(o||a){const c=o&&a?"and":"or",l=`X: ${t} + ${s} = ${t+s} > ${this.baseTexture.width}`,h=`Y: ${i} + ${r} = ${i+r} > ${this.baseTexture.height}`;throw new Error(`Texture Error: frame does not fit inside the base Texture dimensions: ${l} ${c} ${h}`)}this.valid=s&&r&&this.baseTexture.valid,!this.trim&&!this.rotate&&(this.orig=e),this.valid&&this.updateUvs()}get rotate(){return this._rotate}set rotate(e){this._rotate=e,this.valid&&this.updateUvs()}get width(){return this.orig.width}get height(){return this.orig.height}castToBaseTexture(){return this.baseTexture}static get EMPTY(){return jt._EMPTY||(jt._EMPTY=new jt(new rt),Vc(jt._EMPTY),Vc(jt._EMPTY.baseTexture)),jt._EMPTY}static get WHITE(){if(!jt._WHITE){const e=Ve.ADAPTER.createCanvas(16,16),t=e.getContext("2d");e.width=16,e.height=16,t.fillStyle="white",t.fillRect(0,0,16,16),jt._WHITE=new jt(rt.from(e)),Vc(jt._WHITE),Vc(jt._WHITE.baseTexture)}return jt._WHITE}};class jo extends it{constructor(e,t){super(e,t),this.valid=!0,this.filterFrame=null,this.filterPoolKey=null,this.updateUvs()}get framebuffer(){return this.baseTexture.framebuffer}get multisample(){return this.framebuffer.multisample}set multisample(e){this.framebuffer.multisample=e}resize(e,t,i=!0){const s=this.baseTexture.resolution,r=Math.round(e*s)/s,o=Math.round(t*s)/s;this.valid=r>0&&o>0,this._frame.width=this.orig.width=r,this._frame.height=this.orig.height=o,i&&this.baseTexture.resize(r,o),this.updateUvs()}setResolution(e){const{baseTexture:t}=this;t.resolution!==e&&(t.setResolution(e),this.resize(t.width,t.height,!1))}static create(e){return new jo(new ww(e))}}class _w{constructor(e){this.texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this._pixelsWidth=0,this._pixelsHeight=0}createTexture(e,t,i=bi.NONE){const s=new ww(Object.assign({width:e,height:t,resolution:1,multisample:i},this.textureOptions));return new jo(s)}getOptimalTexture(e,t,i=1,s=bi.NONE){let r;e=Math.max(Math.ceil(e*i-1e-6),1),t=Math.max(Math.ceil(t*i-1e-6),1),!this.enableFullScreen||e!==this._pixelsWidth||t!==this._pixelsHeight?(e=jh(e),t=jh(t),r=((e&65535)<<16|t&65535)>>>0,s>1&&(r+=s*4294967296)):r=s>1?-s:-1,this.texturePool[r]||(this.texturePool[r]=[]);let o=this.texturePool[r].pop();return o||(o=this.createTexture(e,t,s)),o.filterPoolKey=r,o.setResolution(i),o}getFilterTexture(e,t,i){const s=this.getOptimalTexture(e.width,e.height,t||e.resolution,i||bi.NONE);return s.filterFrame=e.filterFrame,s}returnTexture(e){const t=e.filterPoolKey;e.filterFrame=null,this.texturePool[t].push(e)}returnFilterTexture(e){this.returnTexture(e)}clear(e){if(e=e!==!1,e)for(const t in this.texturePool){const i=this.texturePool[t];if(i)for(let s=0;s<i.length;s++)i[s].destroy(!0)}this.texturePool={}}setScreenSize(e){if(!(e.width===this._pixelsWidth&&e.height===this._pixelsHeight)){this.enableFullScreen=e.width>0&&e.height>0;for(const t in this.texturePool){if(!(Number(t)<0))continue;const i=this.texturePool[t];if(i)for(let s=0;s<i.length;s++)i[s].destroy(!0);this.texturePool[t]=[]}this._pixelsWidth=e.width,this._pixelsHeight=e.height}}}_w.SCREEN_KEY=-1;class b2 extends Ps{constructor(){super(),this.addAttribute("aVertexPosition",new Float32Array([0,0,1,0,1,1,0,1])).addIndex([0,1,3,2])}}class Tw extends Ps{constructor(){super(),this.vertices=new Float32Array([-1,-1,1,-1,1,1,-1,1]),this.uvs=new Float32Array([0,0,1,0,1,1,0,1]),this.vertexBuffer=new zt(this.vertices),this.uvBuffer=new zt(this.uvs),this.addAttribute("aVertexPosition",this.vertexBuffer).addAttribute("aTextureCoord",this.uvBuffer).addIndex([0,1,2,0,2,3])}map(e,t){let i=0,s=0;return this.uvs[0]=i,this.uvs[1]=s,this.uvs[2]=i+t.width/e.width,this.uvs[3]=s,this.uvs[4]=i+t.width/e.width,this.uvs[5]=s+t.height/e.height,this.uvs[6]=i,this.uvs[7]=s+t.height/e.height,i=t.x,s=t.y,this.vertices[0]=i,this.vertices[1]=s,this.vertices[2]=i+t.width,this.vertices[3]=s,this.vertices[4]=i+t.width,this.vertices[5]=s+t.height,this.vertices[6]=i,this.vertices[7]=s+t.height,this.invalidate(),this}invalidate(){return this.vertexBuffer._updateID++,this.uvBuffer._updateID++,this}}class x2{constructor(){this.renderTexture=null,this.target=null,this.legacy=!1,this.resolution=1,this.multisample=bi.NONE,this.sourceFrame=new dt,this.destinationFrame=new dt,this.bindingSourceFrame=new dt,this.bindingDestinationFrame=new dt,this.filters=[],this.transform=null}clear(){this.target=null,this.filters=null,this.renderTexture=null}}const Xc=[new Tt,new Tt,new Tt,new Tt],Xf=new Bt;class Ew{constructor(e){this.renderer=e,this.defaultFilterStack=[{}],this.texturePool=new _w,this.statePool=[],this.quad=new b2,this.quadUv=new Tw,this.tempRect=new dt,this.activeState={},this.globalUniforms=new Qn({outputFrame:new dt,inputSize:new Float32Array(4),inputPixel:new Float32Array(4),inputClamp:new Float32Array(4),resolution:1,filterArea:new Float32Array(4),filterClamp:new Float32Array(4)},!0),this.forceClear=!1,this.useMaxPadding=!1}init(){this.texturePool.setScreenSize(this.renderer.view)}push(e,t){const i=this.renderer,s=this.defaultFilterStack,r=this.statePool.pop()||new x2,o=i.renderTexture;let a,c;if(o.current){const g=o.current;a=g.resolution,c=g.multisample}else a=i.resolution,c=i.multisample;let l=t[0].resolution||a,h=t[0].multisample??c,u=t[0].padding,d=t[0].autoFit,f=t[0].legacy??!0;for(let g=1;g<t.length;g++){const v=t[g];l=Math.min(l,v.resolution||a),h=Math.min(h,v.multisample??c),u=this.useMaxPadding?Math.max(u,v.padding):u+v.padding,d=d&&v.autoFit,f=f||(v.legacy??!0)}s.length===1&&(this.defaultFilterStack[0].renderTexture=o.current),s.push(r),r.resolution=l,r.multisample=h,r.legacy=f,r.target=e,r.sourceFrame.copyFrom(e.filterArea||e.getBounds(!0)),r.sourceFrame.pad(u);const m=this.tempRect.copyFrom(o.sourceFrame);i.projection.transform&&this.transformAABB(Xf.copyFrom(i.projection.transform).invert(),m),d?(r.sourceFrame.fit(m),(r.sourceFrame.width<=0||r.sourceFrame.height<=0)&&(r.sourceFrame.width=0,r.sourceFrame.height=0)):r.sourceFrame.intersects(m)||(r.sourceFrame.width=0,r.sourceFrame.height=0),this.roundFrame(r.sourceFrame,o.current?o.current.resolution:i.resolution,o.sourceFrame,o.destinationFrame,i.projection.transform),r.renderTexture=this.getOptimalFilterTexture(r.sourceFrame.width,r.sourceFrame.height,l,h),r.filters=t,r.destinationFrame.width=r.renderTexture.width,r.destinationFrame.height=r.renderTexture.height;const p=this.tempRect;p.x=0,p.y=0,p.width=r.sourceFrame.width,p.height=r.sourceFrame.height,r.renderTexture.filterFrame=r.sourceFrame,r.bindingSourceFrame.copyFrom(o.sourceFrame),r.bindingDestinationFrame.copyFrom(o.destinationFrame),r.transform=i.projection.transform,i.projection.transform=null,o.bind(r.renderTexture,r.sourceFrame,p),i.framebuffer.clear(0,0,0,0)}pop(){const e=this.defaultFilterStack,t=e.pop(),i=t.filters;this.activeState=t;const s=this.globalUniforms.uniforms;s.outputFrame=t.sourceFrame,s.resolution=t.resolution;const r=s.inputSize,o=s.inputPixel,a=s.inputClamp;if(r[0]=t.destinationFrame.width,r[1]=t.destinationFrame.height,r[2]=1/r[0],r[3]=1/r[1],o[0]=Math.round(r[0]*t.resolution),o[1]=Math.round(r[1]*t.resolution),o[2]=1/o[0],o[3]=1/o[1],a[0]=.5*o[2],a[1]=.5*o[3],a[2]=t.sourceFrame.width*r[2]-.5*o[2],a[3]=t.sourceFrame.height*r[3]-.5*o[3],t.legacy){const l=s.filterArea;l[0]=t.destinationFrame.width,l[1]=t.destinationFrame.height,l[2]=t.sourceFrame.x,l[3]=t.sourceFrame.y,s.filterClamp=s.inputClamp}this.globalUniforms.update();const c=e[e.length-1];if(this.renderer.framebuffer.blit(),i.length===1)i[0].apply(this,t.renderTexture,c.renderTexture,ys.BLEND,t),this.returnFilterTexture(t.renderTexture);else{let l=t.renderTexture,h=this.getOptimalFilterTexture(l.width,l.height,t.resolution);h.filterFrame=l.filterFrame;let u=0;for(u=0;u<i.length-1;++u){u===1&&t.multisample>1&&(h=this.getOptimalFilterTexture(l.width,l.height,t.resolution),h.filterFrame=l.filterFrame),i[u].apply(this,l,h,ys.CLEAR,t);const d=l;l=h,h=d}i[u].apply(this,l,c.renderTexture,ys.BLEND,t),u>1&&t.multisample>1&&this.returnFilterTexture(t.renderTexture),this.returnFilterTexture(l),this.returnFilterTexture(h)}t.clear(),this.statePool.push(t)}bindAndClear(e,t=ys.CLEAR){const{renderTexture:i,state:s}=this.renderer;if(e===this.defaultFilterStack[this.defaultFilterStack.length-1].renderTexture?this.renderer.projection.transform=this.activeState.transform:this.renderer.projection.transform=null,e==null?void 0:e.filterFrame){const o=this.tempRect;o.x=0,o.y=0,o.width=e.filterFrame.width,o.height=e.filterFrame.height,i.bind(e,e.filterFrame,o)}else e!==this.defaultFilterStack[this.defaultFilterStack.length-1].renderTexture?i.bind(e):this.renderer.renderTexture.bind(e,this.activeState.bindingSourceFrame,this.activeState.bindingDestinationFrame);const r=s.stateId&1||this.forceClear;(t===ys.CLEAR||t===ys.BLIT&&r)&&this.renderer.framebuffer.clear(0,0,0,0)}applyFilter(e,t,i,s){const r=this.renderer;r.state.set(e.state),this.bindAndClear(i,s),e.uniforms.uSampler=t,e.uniforms.filterGlobals=this.globalUniforms,r.shader.bind(e),e.legacy=!!e.program.attributeData.aTextureCoord,e.legacy?(this.quadUv.map(t._frame,t.filterFrame),r.geometry.bind(this.quadUv),r.geometry.draw(_s.TRIANGLES)):(r.geometry.bind(this.quad),r.geometry.draw(_s.TRIANGLE_STRIP))}calculateSpriteMatrix(e,t){const{sourceFrame:i,destinationFrame:s}=this.activeState,{orig:r}=t._texture,o=e.set(s.width,0,0,s.height,i.x,i.y),a=t.worldTransform.copyTo(Bt.TEMP_MATRIX);return a.invert(),o.prepend(a),o.scale(1/r.width,1/r.height),o.translate(t.anchor.x,t.anchor.y),o}destroy(){this.renderer=null,this.texturePool.clear(!1)}getOptimalFilterTexture(e,t,i=1,s=bi.NONE){return this.texturePool.getOptimalTexture(e,t,i,s)}getFilterTexture(e,t,i){if(typeof e=="number"){const r=e;e=t,t=r}e=e||this.activeState.renderTexture;const s=this.texturePool.getOptimalTexture(e.width,e.height,t||e.resolution,i||bi.NONE);return s.filterFrame=e.filterFrame,s}returnFilterTexture(e){this.texturePool.returnTexture(e)}emptyPool(){this.texturePool.clear(!0)}resize(){this.texturePool.setScreenSize(this.renderer.view)}transformAABB(e,t){const i=Xc[0],s=Xc[1],r=Xc[2],o=Xc[3];i.set(t.left,t.top),s.set(t.left,t.bottom),r.set(t.right,t.top),o.set(t.right,t.bottom),e.apply(i,i),e.apply(s,s),e.apply(r,r),e.apply(o,o);const a=Math.min(i.x,s.x,r.x,o.x),c=Math.min(i.y,s.y,r.y,o.y),l=Math.max(i.x,s.x,r.x,o.x),h=Math.max(i.y,s.y,r.y,o.y);t.x=a,t.y=c,t.width=l-a,t.height=h-c}roundFrame(e,t,i,s,r){if(!(e.width<=0||e.height<=0||i.width<=0||i.height<=0)){if(r){const{a:o,b:a,c,d:l}=r;if((Math.abs(a)>1e-4||Math.abs(c)>1e-4)&&(Math.abs(o)>1e-4||Math.abs(l)>1e-4))return}r=r?Xf.copyFrom(r):Xf.identity(),r.translate(-i.x,-i.y).scale(s.width/i.width,s.height/i.height).translate(s.x,s.y),this.transformAABB(r,e),e.ceil(t),this.transformAABB(r.invert(),e)}}}Ew.extension={type:$e.RendererSystem,name:"filter"};je.add(Ew);class w2{constructor(e){this.framebuffer=e,this.stencil=null,this.dirtyId=-1,this.dirtyFormat=-1,this.dirtySize=-1,this.multisample=bi.NONE,this.msaaBuffer=null,this.blitFramebuffer=null,this.mipLevel=0}}const S2=new dt;class Cw{constructor(e){this.renderer=e,this.managedFramebuffers=[],this.unknownFramebuffer=new Km(10,10),this.msaaSamples=null}contextChange(){this.disposeAll(!0);const e=this.gl=this.renderer.gl;if(this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.current=this.unknownFramebuffer,this.viewport=new dt,this.hasMRT=!0,this.writeDepthTexture=!0,this.renderer.context.webGLVersion===1){let t=this.renderer.context.extensions.drawBuffers,i=this.renderer.context.extensions.depthTexture;Ve.PREFER_ENV===Ho.WEBGL_LEGACY&&(t=null,i=null),t?e.drawBuffers=s=>t.drawBuffersWEBGL(s):(this.hasMRT=!1,e.drawBuffers=()=>{}),i||(this.writeDepthTexture=!1)}else this.msaaSamples=e.getInternalformatParameter(e.RENDERBUFFER,e.RGBA8,e.SAMPLES)}bind(e,t,i=0){const{gl:s}=this;if(e){const r=e.glFramebuffers[this.CONTEXT_UID]||this.initFramebuffer(e);this.current!==e&&(this.current=e,s.bindFramebuffer(s.FRAMEBUFFER,r.framebuffer)),r.mipLevel!==i&&(e.dirtyId++,e.dirtyFormat++,r.mipLevel=i),r.dirtyId!==e.dirtyId&&(r.dirtyId=e.dirtyId,r.dirtyFormat!==e.dirtyFormat?(r.dirtyFormat=e.dirtyFormat,r.dirtySize=e.dirtySize,this.updateFramebuffer(e,i)):r.dirtySize!==e.dirtySize&&(r.dirtySize=e.dirtySize,this.resizeFramebuffer(e)));for(let o=0;o<e.colorTextures.length;o++){const a=e.colorTextures[o];this.renderer.texture.unbind(a.parentTextureArray||a)}if(e.depthTexture&&this.renderer.texture.unbind(e.depthTexture),t){const o=t.width>>i,a=t.height>>i,c=o/t.width;this.setViewport(t.x*c,t.y*c,o,a)}else{const o=e.width>>i,a=e.height>>i;this.setViewport(0,0,o,a)}}else this.current&&(this.current=null,s.bindFramebuffer(s.FRAMEBUFFER,null)),t?this.setViewport(t.x,t.y,t.width,t.height):this.setViewport(0,0,this.renderer.width,this.renderer.height)}setViewport(e,t,i,s){const r=this.viewport;e=Math.round(e),t=Math.round(t),i=Math.round(i),s=Math.round(s),(r.width!==i||r.height!==s||r.x!==e||r.y!==t)&&(r.x=e,r.y=t,r.width=i,r.height=s,this.gl.viewport(e,t,i,s))}get size(){return this.current?{x:0,y:0,width:this.current.width,height:this.current.height}:{x:0,y:0,width:this.renderer.width,height:this.renderer.height}}clear(e,t,i,s,r=$m.COLOR|$m.DEPTH){const{gl:o}=this;o.clearColor(e,t,i,s),o.clear(r)}initFramebuffer(e){const{gl:t}=this,i=new w2(t.createFramebuffer());return i.multisample=this.detectSamples(e.multisample),e.glFramebuffers[this.CONTEXT_UID]=i,this.managedFramebuffers.push(e),e.disposeRunner.add(this),i}resizeFramebuffer(e){const{gl:t}=this,i=e.glFramebuffers[this.CONTEXT_UID];if(i.stencil){t.bindRenderbuffer(t.RENDERBUFFER,i.stencil);let o;this.renderer.context.webGLVersion===1?o=t.DEPTH_STENCIL:e.depth&&e.stencil?o=t.DEPTH24_STENCIL8:e.depth?o=t.DEPTH_COMPONENT24:o=t.STENCIL_INDEX8,i.msaaBuffer?t.renderbufferStorageMultisample(t.RENDERBUFFER,i.multisample,o,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,o,e.width,e.height)}const s=e.colorTextures;let r=s.length;t.drawBuffers||(r=Math.min(r,1));for(let o=0;o<r;o++){const a=s[o],c=a.parentTextureArray||a;this.renderer.texture.bind(c,0),o===0&&i.msaaBuffer&&(t.bindRenderbuffer(t.RENDERBUFFER,i.msaaBuffer),t.renderbufferStorageMultisample(t.RENDERBUFFER,i.multisample,c._glTextures[this.CONTEXT_UID].internalFormat,e.width,e.height))}e.depthTexture&&this.writeDepthTexture&&this.renderer.texture.bind(e.depthTexture,0)}updateFramebuffer(e,t){const{gl:i}=this,s=e.glFramebuffers[this.CONTEXT_UID],r=e.colorTextures;let o=r.length;i.drawBuffers||(o=Math.min(o,1)),s.multisample>1&&this.canMultisampleFramebuffer(e)?s.msaaBuffer=s.msaaBuffer||i.createRenderbuffer():s.msaaBuffer&&(i.deleteRenderbuffer(s.msaaBuffer),s.msaaBuffer=null,s.blitFramebuffer&&(s.blitFramebuffer.dispose(),s.blitFramebuffer=null));const a=[];for(let c=0;c<o;c++){const l=r[c],h=l.parentTextureArray||l;this.renderer.texture.bind(h,0),c===0&&s.msaaBuffer?(i.bindRenderbuffer(i.RENDERBUFFER,s.msaaBuffer),i.renderbufferStorageMultisample(i.RENDERBUFFER,s.multisample,h._glTextures[this.CONTEXT_UID].internalFormat,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.RENDERBUFFER,s.msaaBuffer)):(i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+c,l.target,h._glTextures[this.CONTEXT_UID].texture,t),a.push(i.COLOR_ATTACHMENT0+c))}if(a.length>1&&i.drawBuffers(a),e.depthTexture&&this.writeDepthTexture){const c=e.depthTexture;this.renderer.texture.bind(c,0),i.framebufferTexture2D(i.FRAMEBUFFER,i.DEPTH_ATTACHMENT,i.TEXTURE_2D,c._glTextures[this.CONTEXT_UID].texture,t)}if((e.stencil||e.depth)&&!(e.depthTexture&&this.writeDepthTexture)){s.stencil=s.stencil||i.createRenderbuffer();let c,l;this.renderer.context.webGLVersion===1?(c=i.DEPTH_STENCIL_ATTACHMENT,l=i.DEPTH_STENCIL):e.depth&&e.stencil?(c=i.DEPTH_STENCIL_ATTACHMENT,l=i.DEPTH24_STENCIL8):e.depth?(c=i.DEPTH_ATTACHMENT,l=i.DEPTH_COMPONENT24):(c=i.STENCIL_ATTACHMENT,l=i.STENCIL_INDEX8),i.bindRenderbuffer(i.RENDERBUFFER,s.stencil),s.msaaBuffer?i.renderbufferStorageMultisample(i.RENDERBUFFER,s.multisample,l,e.width,e.height):i.renderbufferStorage(i.RENDERBUFFER,l,e.width,e.height),i.framebufferRenderbuffer(i.FRAMEBUFFER,c,i.RENDERBUFFER,s.stencil)}else s.stencil&&(i.deleteRenderbuffer(s.stencil),s.stencil=null)}canMultisampleFramebuffer(e){return this.renderer.context.webGLVersion!==1&&e.colorTextures.length<=1&&!e.depthTexture}detectSamples(e){const{msaaSamples:t}=this;let i=bi.NONE;if(e<=1||t===null)return i;for(let s=0;s<t.length;s++)if(t[s]<=e){i=t[s];break}return i===1&&(i=bi.NONE),i}blit(e,t,i){const{current:s,renderer:r,gl:o,CONTEXT_UID:a}=this;if(r.context.webGLVersion!==2||!s)return;const c=s.glFramebuffers[a];if(!c)return;if(!e){if(!c.msaaBuffer)return;const h=s.colorTextures[0];if(!h)return;c.blitFramebuffer||(c.blitFramebuffer=new Km(s.width,s.height),c.blitFramebuffer.addColorTexture(0,h)),e=c.blitFramebuffer,e.colorTextures[0]!==h&&(e.colorTextures[0]=h,e.dirtyId++,e.dirtyFormat++),(e.width!==s.width||e.height!==s.height)&&(e.width=s.width,e.height=s.height,e.dirtyId++,e.dirtySize++)}t||(t=S2,t.width=s.width,t.height=s.height),i||(i=t);const l=t.width===i.width&&t.height===i.height;this.bind(e),o.bindFramebuffer(o.READ_FRAMEBUFFER,c.framebuffer),o.blitFramebuffer(t.left,t.top,t.right,t.bottom,i.left,i.top,i.right,i.bottom,o.COLOR_BUFFER_BIT,l?o.NEAREST:o.LINEAR),o.bindFramebuffer(o.READ_FRAMEBUFFER,e.glFramebuffers[this.CONTEXT_UID].framebuffer)}disposeFramebuffer(e,t){const i=e.glFramebuffers[this.CONTEXT_UID],s=this.gl;if(!i)return;delete e.glFramebuffers[this.CONTEXT_UID];const r=this.managedFramebuffers.indexOf(e);r>=0&&this.managedFramebuffers.splice(r,1),e.disposeRunner.remove(this),t||(s.deleteFramebuffer(i.framebuffer),i.msaaBuffer&&s.deleteRenderbuffer(i.msaaBuffer),i.stencil&&s.deleteRenderbuffer(i.stencil)),i.blitFramebuffer&&this.disposeFramebuffer(i.blitFramebuffer,t)}disposeAll(e){const t=this.managedFramebuffers;this.managedFramebuffers=[];for(let i=0;i<t.length;i++)this.disposeFramebuffer(t[i],e)}forceStencil(){const e=this.current;if(!e)return;const t=e.glFramebuffers[this.CONTEXT_UID];if(!t||t.stencil&&e.stencil)return;e.stencil=!0;const i=e.width,s=e.height,r=this.gl,o=t.stencil=r.createRenderbuffer();r.bindRenderbuffer(r.RENDERBUFFER,o);let a,c;this.renderer.context.webGLVersion===1?(a=r.DEPTH_STENCIL_ATTACHMENT,c=r.DEPTH_STENCIL):e.depth?(a=r.DEPTH_STENCIL_ATTACHMENT,c=r.DEPTH24_STENCIL8):(a=r.STENCIL_ATTACHMENT,c=r.STENCIL_INDEX8),t.msaaBuffer?r.renderbufferStorageMultisample(r.RENDERBUFFER,t.multisample,c,i,s):r.renderbufferStorage(r.RENDERBUFFER,c,i,s),r.framebufferRenderbuffer(r.FRAMEBUFFER,a,r.RENDERBUFFER,o)}reset(){this.current=this.unknownFramebuffer,this.viewport=new dt}destroy(){this.renderer=null}}Cw.extension={type:$e.RendererSystem,name:"framebuffer"};je.add(Cw);const Yf={5126:4,5123:2,5121:1};class Mw{constructor(e){this.renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this.canUseUInt32ElementIndex=!1,this.managedGeometries={}}contextChange(){this.disposeAll(!0);const e=this.gl=this.renderer.gl,t=this.renderer.context;if(this.CONTEXT_UID=this.renderer.CONTEXT_UID,t.webGLVersion!==2){let i=this.renderer.context.extensions.vertexArrayObject;Ve.PREFER_ENV===Ho.WEBGL_LEGACY&&(i=null),i?(e.createVertexArray=()=>i.createVertexArrayOES(),e.bindVertexArray=s=>i.bindVertexArrayOES(s),e.deleteVertexArray=s=>i.deleteVertexArrayOES(s)):(this.hasVao=!1,e.createVertexArray=()=>null,e.bindVertexArray=()=>null,e.deleteVertexArray=()=>null)}if(t.webGLVersion!==2){const i=e.getExtension("ANGLE_instanced_arrays");i?(e.vertexAttribDivisor=(s,r)=>i.vertexAttribDivisorANGLE(s,r),e.drawElementsInstanced=(s,r,o,a,c)=>i.drawElementsInstancedANGLE(s,r,o,a,c),e.drawArraysInstanced=(s,r,o,a)=>i.drawArraysInstancedANGLE(s,r,o,a)):this.hasInstance=!1}this.canUseUInt32ElementIndex=t.webGLVersion===2||!!t.extensions.uint32ElementIndex}bind(e,t){t=t||this.renderer.shader.shader;const{gl:i}=this;let s=e.glVertexArrayObjects[this.CONTEXT_UID],r=!1;s||(this.managedGeometries[e.id]=e,e.disposeRunner.add(this),e.glVertexArrayObjects[this.CONTEXT_UID]=s={},r=!0);const o=s[t.program.id]||this.initGeometryVao(e,t,r);this._activeGeometry=e,this._activeVao!==o&&(this._activeVao=o,this.hasVao?i.bindVertexArray(o):this.activateVao(e,t.program)),this.updateBuffers()}reset(){this.unbind()}updateBuffers(){const e=this._activeGeometry,t=this.renderer.buffer;for(let i=0;i<e.buffers.length;i++){const s=e.buffers[i];t.update(s)}}checkCompatibility(e,t){const i=e.attributes,s=t.attributeData;for(const r in s)if(!i[r])throw new Error(`shader and geometry incompatible, geometry missing the "${r}" attribute`)}getSignature(e,t){const i=e.attributes,s=t.attributeData,r=["g",e.id];for(const o in i)s[o]&&r.push(o,s[o].location);return r.join("-")}initGeometryVao(e,t,i=!0){const s=this.gl,r=this.CONTEXT_UID,o=this.renderer.buffer,a=t.program;a.glPrograms[r]||this.renderer.shader.generateProgram(t),this.checkCompatibility(e,a);const c=this.getSignature(e,a),l=e.glVertexArrayObjects[this.CONTEXT_UID];let h=l[c];if(h)return l[a.id]=h,h;const u=e.buffers,d=e.attributes,f={},m={};for(const p in u)f[p]=0,m[p]=0;for(const p in d)!d[p].size&&a.attributeData[p]?d[p].size=a.attributeData[p].size:d[p].size||console.warn(`PIXI Geometry attribute '${p}' size cannot be determined (likely the bound shader does not have the attribute)`),f[d[p].buffer]+=d[p].size*Yf[d[p].type];for(const p in d){const g=d[p],v=g.size;g.stride===void 0&&(f[g.buffer]===v*Yf[g.type]?g.stride=0:g.stride=f[g.buffer]),g.start===void 0&&(g.start=m[g.buffer],m[g.buffer]+=v*Yf[g.type])}h=s.createVertexArray(),s.bindVertexArray(h);for(let p=0;p<u.length;p++){const g=u[p];o.bind(g),i&&g._glBuffers[r].refCount++}return this.activateVao(e,a),l[a.id]=h,l[c]=h,s.bindVertexArray(null),o.unbind(Ms.ARRAY_BUFFER),h}disposeGeometry(e,t){var a;if(!this.managedGeometries[e.id])return;delete this.managedGeometries[e.id];const i=e.glVertexArrayObjects[this.CONTEXT_UID],s=this.gl,r=e.buffers,o=(a=this.renderer)==null?void 0:a.buffer;if(e.disposeRunner.remove(this),!!i){if(o)for(let c=0;c<r.length;c++){const l=r[c]._glBuffers[this.CONTEXT_UID];l&&(l.refCount--,l.refCount===0&&!t&&o.dispose(r[c],t))}if(!t){for(const c in i)if(c[0]==="g"){const l=i[c];this._activeVao===l&&this.unbind(),s.deleteVertexArray(l)}}delete e.glVertexArrayObjects[this.CONTEXT_UID]}}disposeAll(e){const t=Object.keys(this.managedGeometries);for(let i=0;i<t.length;i++)this.disposeGeometry(this.managedGeometries[t[i]],e)}activateVao(e,t){const i=this.gl,s=this.CONTEXT_UID,r=this.renderer.buffer,o=e.buffers,a=e.attributes;e.indexBuffer&&r.bind(e.indexBuffer);let c=null;for(const l in a){const h=a[l],u=o[h.buffer],d=u._glBuffers[s];if(t.attributeData[l]){c!==d&&(r.bind(u),c=d);const f=t.attributeData[l].location;if(i.enableVertexAttribArray(f),i.vertexAttribPointer(f,h.size,h.type||i.FLOAT,h.normalized,h.stride,h.start),h.instance)if(this.hasInstance)i.vertexAttribDivisor(f,h.divisor);else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,i,s){const{gl:r}=this,o=this._activeGeometry;if(o.indexBuffer){const a=o.indexBuffer.data.BYTES_PER_ELEMENT,c=a===2?r.UNSIGNED_SHORT:r.UNSIGNED_INT;a===2||a===4&&this.canUseUInt32ElementIndex?o.instanced?r.drawElementsInstanced(e,t||o.indexBuffer.data.length,c,(i||0)*a,s||1):r.drawElements(e,t||o.indexBuffer.data.length,c,(i||0)*a):console.warn("unsupported index buffer type: uint32")}else o.instanced?r.drawArraysInstanced(e,i,t||o.getSize(),s||1):r.drawArrays(e,i,t||o.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this.renderer=null}}Mw.extension={type:$e.RendererSystem,name:"geometry"};je.add(Mw);const Ey=new Bt;class Mg{constructor(e,t){this._texture=e,this.mapCoord=new Bt,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._textureID=-1,this._updateID=0,this.clampOffset=0,this.clampMargin=typeof t>"u"?.5:t,this.isSimple=!1}get texture(){return this._texture}set texture(e){this._texture=e,this._textureID=-1}multiplyUvs(e,t){t===void 0&&(t=e);const i=this.mapCoord;for(let s=0;s<e.length;s+=2){const r=e[s],o=e[s+1];t[s]=r*i.a+o*i.c+i.tx,t[s+1]=r*i.b+o*i.d+i.ty}return t}update(e){const t=this._texture;if(!t||!t.valid||!e&&this._textureID===t._updateID)return!1;this._textureID=t._updateID,this._updateID++;const i=t._uvs;this.mapCoord.set(i.x1-i.x0,i.y1-i.y0,i.x3-i.x0,i.y3-i.y0,i.x0,i.y0);const s=t.orig,r=t.trim;r&&(Ey.set(s.width/r.width,0,0,s.height/r.height,-r.x/r.width,-r.y/r.height),this.mapCoord.append(Ey));const o=t.baseTexture,a=this.uClampFrame,c=this.clampMargin/o.resolution,l=this.clampOffset;return a[0]=(t._frame.x+c+l)/o.width,a[1]=(t._frame.y+c+l)/o.height,a[2]=(t._frame.x+t._frame.width-c+l)/o.width,a[3]=(t._frame.y+t._frame.height-c+l)/o.height,this.uClampOffset[0]=l/o.realWidth,this.uClampOffset[1]=l/o.realHeight,this.isSimple=t._frame.width===o.width&&t._frame.height===o.height&&t.rotate===0,!0}}var _2=`varying vec2 vMaskCoord;
varying vec2 vTextureCoord;
uniform sampler2D uSampler;
uniform sampler2D mask;
uniform float alpha;
uniform float npmAlpha;
uniform vec4 maskClamp;
void main(void)
{
float clip = step(3.5,
step(maskClamp.x, vMaskCoord.x) +
step(maskClamp.y, vMaskCoord.y) +
step(vMaskCoord.x, maskClamp.z) +
step(vMaskCoord.y, maskClamp.w));
vec4 original = texture2D(uSampler, vTextureCoord);
vec4 masky = texture2D(mask, vMaskCoord);
float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);
original *= (alphaMul * masky.r * alpha * clip);
gl_FragColor = original;
}
`,T2=`attribute vec2 aVertexPosition;
attribute vec2 aTextureCoord;
uniform mat3 projectionMatrix;
uniform mat3 otherMatrix;
varying vec2 vMaskCoord;
varying vec2 vTextureCoord;
void main(void)
{
gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
vTextureCoord = aTextureCoord;
vMaskCoord = ( otherMatrix * vec3( aTextureCoord, 1.0) ).xy;
}
`;class E2 extends tn{constructor(e,t,i){let s=null;typeof e!="string"&&t===void 0&&i===void 0&&(s=e,e=void 0,t=void 0,i=void 0),super(e||T2,t||_2,i),this.maskSprite=s,this.maskMatrix=new Bt}get maskSprite(){return this._maskSprite}set maskSprite(e){this._maskSprite=e,this._maskSprite&&(this._maskSprite.renderable=!1)}apply(e,t,i,s){const r=this._maskSprite,o=r._texture;o.valid&&(o.uvMatrix||(o.uvMatrix=new Mg(o,0)),o.uvMatrix.update(),this.uniforms.npmAlpha=o.baseTexture.alphaMode?0:1,this.uniforms.mask=o,this.uniforms.otherMatrix=e.calculateSpriteMatrix(this.maskMatrix,r).prepend(o.uvMatrix.mapCoord),this.uniforms.alpha=r.worldAlpha,this.uniforms.maskClamp=o.uvMatrix.uClampFrame,e.applyFilter(this,t,i,s))}}class C2{constructor(e=null){this.type=Si.NONE,this.autoDetect=!0,this.maskObject=e||null,this.pooled=!1,this.isMaskData=!0,this.resolution=null,this.multisample=tn.defaultMultisample,this.enabled=!0,this.colorMask=15,this._filters=null,this._stencilCounter=0,this._scissorCounter=0,this._scissorRect=null,this._scissorRectLocal=null,this._colorMask=15,this._target=null}get filter(){return this._filters?this._filters[0]:null}set filter(e){e?this._filters?this._filters[0]=e:this._filters=[e]:this._filters=null}reset(){this.pooled&&(this.maskObject=null,this.type=Si.NONE,this.autoDetect=!0),this._target=null,this._scissorRectLocal=null}copyCountersOrReset(e){e?(this._stencilCounter=e._stencilCounter,this._scissorCounter=e._scissorCounter,this._scissorRect=e._scissorRect):(this._stencilCounter=0,this._scissorCounter=0,this._scissorRect=null)}}class Aw{constructor(e){this.renderer=e,this.enableScissor=!0,this.alphaMaskPool=[],this.maskDataPool=[],this.maskStack=[],this.alphaMaskIndex=0}setMaskStack(e){this.maskStack=e,this.renderer.scissor.setMaskStack(e),this.renderer.stencil.setMaskStack(e)}push(e,t){let i=t;if(!i.isMaskData){const r=this.maskDataPool.pop()||new C2;r.pooled=!0,r.maskObject=t,i=r}const s=this.maskStack.length!==0?this.maskStack[this.maskStack.length-1]:null;if(i.copyCountersOrReset(s),i._colorMask=s?s._colorMask:15,i.autoDetect&&this.detect(i),i._target=e,i.type!==Si.SPRITE&&this.maskStack.push(i),i.enabled)switch(i.type){case Si.SCISSOR:this.renderer.scissor.push(i);break;case Si.STENCIL:this.renderer.stencil.push(i);break;case Si.SPRITE:i.copyCountersOrReset(null),this.pushSpriteMask(i);break;case Si.COLOR:this.pushColorMask(i);break}i.type===Si.SPRITE&&this.maskStack.push(i)}pop(e){const t=this.maskStack.pop();if(!(!t||t._target!==e)){if(t.enabled)switch(t.type){case Si.SCISSOR:this.renderer.scissor.pop(t);break;case Si.STENCIL:this.renderer.stencil.pop(t.maskObject);break;case Si.SPRITE:this.popSpriteMask(t);break;case Si.COLOR:this.popColorMask(t);break}if(t.reset(),t.pooled&&this.maskDataPool.push(t),this.maskStack.length!==0){const i=this.maskStack[this.maskStack.length-1];i.type===Si.SPRITE&&i._filters&&(i._filters[0].maskSprite=i.maskObject)}}}detect(e){const t=e.maskObject;t?t.isSprite?e.type=Si.SPRITE:this.enableScissor&&this.renderer.scissor.testScissor(e)?e.type=Si.SCISSOR:e.type=Si.STENCIL:e.type=Si.COLOR}pushSpriteMask(e){const{maskObject:t}=e,i=e._target;let s=e._filters;s||(s=this.alphaMaskPool[this.alphaMaskIndex],s||(s=this.alphaMaskPool[this.alphaMaskIndex]=[new E2])),s[0].resolution=e.resolution,s[0].multisample=e.multisample,s[0].maskSprite=t;const r=i.filterArea;i.filterArea=t.getBounds(!0),this.renderer.filter.push(i,s),i.filterArea=r,e._filters||this.alphaMaskIndex++}popSpriteMask(e){this.renderer.filter.pop(),e._filters?e._filters[0].maskSprite=null:(this.alphaMaskIndex--,this.alphaMaskPool[this.alphaMaskIndex][0].maskSprite=null)}pushColorMask(e){const t=e._colorMask,i=e._colorMask=t&e.colorMask;i!==t&&this.renderer.gl.colorMask((i&1)!==0,(i&2)!==0,(i&4)!==0,(i&8)!==0)}popColorMask(e){const t=e._colorMask,i=this.maskStack.length>0?this.maskStack[this.maskStack.length-1]._colorMask:15;i!==t&&this.renderer.gl.colorMask((i&1)!==0,(i&2)!==0,(i&4)!==0,(i&8)!==0)}destroy(){this.renderer=null}}Aw.extension={type:$e.RendererSystem,name:"mask"};je.add(Aw);class Iw{constructor(e){this.renderer=e,this.maskStack=[],this.glConst=0}getStackLength(){return this.maskStack.length}setMaskStack(e){const{gl:t}=this.renderer,i=this.getStackLength();this.maskStack=e;const s=this.getStackLength();s!==i&&(s===0?t.disable(this.glConst):(t.enable(this.glConst),this._useCurrent()))}_useCurrent(){}destroy(){this.renderer=null,this.maskStack=null}}const Cy=new Bt,My=[],Pw=class xh extends Iw{constructor(e){super(e),this.glConst=Ve.ADAPTER.getWebGLRenderingContext().SCISSOR_TEST}getStackLength(){const e=this.maskStack[this.maskStack.length-1];return e?e._scissorCounter:0}calcScissorRect(e){if(e._scissorRectLocal)return;const t=e._scissorRect,{maskObject:i}=e,{renderer:s}=this,r=s.renderTexture,o=i.getBounds(!0,My.pop()??new dt);this.roundFrameToPixels(o,r.current?r.current.resolution:s.resolution,r.sourceFrame,r.destinationFrame,s.projection.transform),t&&o.fit(t),e._scissorRectLocal=o}static isMatrixRotated(e){if(!e)return!1;const{a:t,b:i,c:s,d:r}=e;return(Math.abs(i)>1e-4||Math.abs(s)>1e-4)&&(Math.abs(t)>1e-4||Math.abs(r)>1e-4)}testScissor(e){const{maskObject:t}=e;if(!t.isFastRect||!t.isFastRect()||xh.isMatrixRotated(t.worldTransform)||xh.isMatrixRotated(this.renderer.projection.transform))return!1;this.calcScissorRect(e);const i=e._scissorRectLocal;return i.width>0&&i.height>0}roundFrameToPixels(e,t,i,s,r){xh.isMatrixRotated(r)||(r=r?Cy.copyFrom(r):Cy.identity(),r.translate(-i.x,-i.y).scale(s.width/i.width,s.height/i.height).translate(s.x,s.y),this.renderer.filter.transformAABB(r,e),e.fit(s),e.x=Math.round(e.x*t),e.y=Math.round(e.y*t),e.width=Math.round(e.width*t),e.height=Math.round(e.height*t))}push(e){e._scissorRectLocal||this.calcScissorRect(e);const{gl:t}=this.renderer;e._scissorRect||t.enable(t.SCISSOR_TEST),e._scissorCounter++,e._scissorRect=e._scissorRectLocal,this._useCurrent()}pop(e){const{gl:t}=this.renderer;e&&My.push(e._scissorRectLocal),this.getStackLength()>0?this._useCurrent():t.disable(t.SCISSOR_TEST)}_useCurrent(){const e=this.maskStack[this.maskStack.length-1]._scissorRect;let t;this.renderer.renderTexture.current?t=e.y:t=this.renderer.height-e.height-e.y,this.renderer.gl.scissor(e.x,t,e.width,e.height)}};Pw.extension={type:$e.RendererSystem,name:"scissor"};let M2=Pw;je.add(M2);class Rw extends Iw{constructor(e){super(e),this.glConst=Ve.ADAPTER.getWebGLRenderingContext().STENCIL_TEST}getStackLength(){const e=this.maskStack[this.maskStack.length-1];return e?e._stencilCounter:0}push(e){const t=e.maskObject,{gl:i}=this.renderer,s=e._stencilCounter;s===0&&(this.renderer.framebuffer.forceStencil(),i.clearStencil(0),i.clear(i.STENCIL_BUFFER_BIT),i.enable(i.STENCIL_TEST)),e._stencilCounter++;const r=e._colorMask;r!==0&&(e._colorMask=0,i.colorMask(!1,!1,!1,!1)),i.stencilFunc(i.EQUAL,s,4294967295),i.stencilOp(i.KEEP,i.KEEP,i.INCR),t.renderable=!0,t.render(this.renderer),this.renderer.batch.flush(),t.renderable=!1,r!==0&&(e._colorMask=r,i.colorMask((r&1)!==0,(r&2)!==0,(r&4)!==0,(r&8)!==0)),this._useCurrent()}pop(e){const t=this.renderer.gl;if(this.getStackLength()===0)t.disable(t.STENCIL_TEST);else{const i=this.maskStack.length!==0?this.maskStack[this.maskStack.length-1]:null,s=i?i._colorMask:15;s!==0&&(i._colorMask=0,t.colorMask(!1,!1,!1,!1)),t.stencilOp(t.KEEP,t.KEEP,t.DECR),e.renderable=!0,e.render(this.renderer),this.renderer.batch.flush(),e.renderable=!1,s!==0&&(i._colorMask=s,t.colorMask((s&1)!==0,(s&2)!==0,(s&4)!==0,(s&8)!==0)),this._useCurrent()}}_useCurrent(){const e=this.renderer.gl;e.stencilFunc(e.EQUAL,this.getStackLength(),4294967295),e.stencilOp(e.KEEP,e.KEEP,e.KEEP)}}Rw.extension={type:$e.RendererSystem,name:"stencil"};je.add(Rw);class kw{constructor(e){this.renderer=e,this.plugins={},Object.defineProperties(this.plugins,{extract:{enumerable:!1,get(){return pt("7.0.0","renderer.plugins.extract has moved to renderer.extract"),e.extract}},prepare:{enumerable:!1,get(){return pt("7.0.0","renderer.plugins.prepare has moved to renderer.prepare"),e.prepare}},interaction:{enumerable:!1,get(){return pt("7.0.0","renderer.plugins.interaction has been deprecated, use renderer.events"),e.events}}})}init(){const e=this.rendererPlugins;for(const t in e)this.plugins[t]=new e[t](this.renderer)}destroy(){for(const e in this.plugins)this.plugins[e].destroy(),this.plugins[e]=null}}kw.extension={type:[$e.RendererSystem,$e.CanvasRendererSystem],name:"_plugin"};je.add(kw);class Fw{constructor(e){this.renderer=e,this.destinationFrame=null,this.sourceFrame=null,this.defaultFrame=null,this.projectionMatrix=new Bt,this.transform=null}update(e,t,i,s){this.destinationFrame=e||this.destinationFrame||this.defaultFrame,this.sourceFrame=t||this.sourceFrame||e,this.calculateProjection(this.destinationFrame,this.sourceFrame,i,s),this.transform&&this.projectionMatrix.append(this.transform);const r=this.renderer;r.globalUniforms.uniforms.projectionMatrix=this.projectionMatrix,r.globalUniforms.update(),r.shader.shader&&r.shader.syncUniformGroup(r.shader.shader.uniforms.globals)}calculateProjection(e,t,i,s){const r=this.projectionMatrix,o=s?-1:1;r.identity(),r.a=1/t.width*2,r.d=o*(1/t.height*2),r.tx=-1-t.x*r.a,r.ty=-o-t.y*r.d}setTransform(e){}destroy(){this.renderer=null}}Fw.extension={type:$e.RendererSystem,name:"projection"};je.add(Fw);const A2=new Eg,Ay=new dt;class Lw{constructor(e){this.renderer=e,this._tempMatrix=new Bt}generateTexture(e,t){const{region:i,...s}=t||{},r=(i==null?void 0:i.copyTo(Ay))||e.getLocalBounds(Ay,!0),o=s.resolution||this.renderer.resolution;r.width=Math.max(r.width,1/o),r.height=Math.max(r.height,1/o),s.width=r.width,s.height=r.height,s.resolution=o,s.multisample??(s.multisample=this.renderer.multisample);const a=jo.create(s);this._tempMatrix.tx=-r.x,this._tempMatrix.ty=-r.y;const c=e.transform;return e.transform=A2,this.renderer.render(e,{renderTexture:a,transform:this._tempMatrix,skipUpdateTransform:!!e.parent,blit:!0}),e.transform=c,a}destroy(){}}Lw.extension={type:[$e.RendererSystem,$e.CanvasRendererSystem],name:"textureGenerator"};je.add(Lw);const fo=new dt,dl=new dt;class Ow{constructor(e){this.renderer=e,this.defaultMaskStack=[],this.current=null,this.sourceFrame=new dt,this.destinationFrame=new dt,this.viewportFrame=new dt}contextChange(){var t;const e=(t=this.renderer)==null?void 0:t.gl.getContextAttributes();this._rendererPremultipliedAlpha=!!(e&&e.alpha&&e.premultipliedAlpha)}bind(e=null,t,i){const s=this.renderer;this.current=e;let r,o,a;e?(r=e.baseTexture,a=r.resolution,t||(fo.width=e.frame.width,fo.height=e.frame.height,t=fo),i||(dl.x=e.frame.x,dl.y=e.frame.y,dl.width=t.width,dl.height=t.height,i=dl),o=r.framebuffer):(a=s.resolution,t||(fo.width=s._view.screen.width,fo.height=s._view.screen.height,t=fo),i||(i=fo,i.width=t.width,i.height=t.height));const c=this.viewportFrame;c.x=i.x*a,c.y=i.y*a,c.width=i.width*a,c.height=i.height*a,e||(c.y=s.view.height-(c.y+c.height)),c.ceil(),this.renderer.framebuffer.bind(o,c),this.renderer.projection.update(i,t,a,!o),e?this.renderer.mask.setMaskStack(r.maskStack):this.renderer.mask.setMaskStack(this.defaultMaskStack),this.sourceFrame.copyFrom(t),this.destinationFrame.copyFrom(i)}clear(e,t){const i=this.current?this.current.baseTexture.clear:this.renderer.background.backgroundColor,s=kt.shared.setValue(e||i);(this.current&&this.current.baseTexture.alphaMode>0||!this.current&&this._rendererPremultipliedAlpha)&&s.premultiply(s.alpha);const r=this.destinationFrame,o=this.current?this.current.baseTexture:this.renderer._view.screen,a=r.width!==o.width||r.height!==o.height;if(a){let{x:c,y:l,width:h,height:u}=this.viewportFrame;c=Math.round(c),l=Math.round(l),h=Math.round(h),u=Math.round(u),this.renderer.gl.enable(this.renderer.gl.SCISSOR_TEST),this.renderer.gl.scissor(c,l,h,u)}this.renderer.framebuffer.clear(s.red,s.green,s.blue,s.alpha,t),a&&this.renderer.scissor.pop()}resize(){this.bind(null)}reset(){this.bind(null)}destroy(){this.renderer=null}}Ow.extension={type:$e.RendererSystem,name:"renderTexture"};je.add(Ow);class I2{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBufferBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBufferBindings=null,this.program=null}}function P2(n,e){const t={},i=e.getProgramParameter(n,e.ACTIVE_ATTRIBUTES);for(let s=0;s<i;s++){const r=e.getActiveAttrib(n,s);if(r.name.startsWith("gl_"))continue;const o=yw(e,r.type),a={type:o,name:r.name,size:vw(o),location:e.getAttribLocation(n,r.name)};t[r.name]=a}return t}function R2(n,e){const t={},i=e.getProgramParameter(n,e.ACTIVE_UNIFORMS);for(let s=0;s<i;s++){const r=e.getActiveUniform(n,s),o=r.name.replace(/\[.*?\]$/,""),a=!!r.name.match(/\[.*?\]$/),c=yw(e,r.type);t[o]={name:o,index:s,type:c,size:r.size,isArray:a,value:pw(c,r.size)}}return t}function k2(n,e){var a;const t=by(n,n.VERTEX_SHADER,e.vertexSrc),i=by(n,n.FRAGMENT_SHADER,e.fragmentSrc),s=n.createProgram();n.attachShader(s,t),n.attachShader(s,i);const r=(a=e.extra)==null?void 0:a.transformFeedbackVaryings;if(r&&(typeof n.transformFeedbackVaryings!="function"?console.warn("TransformFeedback is not supported but TransformFeedbackVaryings are given."):n.transformFeedbackVaryings(s,r.names,r.bufferMode==="separate"?n.SEPARATE_ATTRIBS:n.INTERLEAVED_ATTRIBS)),n.linkProgram(s),n.getProgramParameter(s,n.LINK_STATUS)||l2(n,s,t,i),e.attributeData=P2(s,n),e.uniformData=R2(s,n),!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(e.vertexSrc)){const c=Object.keys(e.attributeData);c.sort((l,h)=>l>h?1:-1);for(let l=0;l<c.length;l++)e.attributeData[c[l]].location=l,n.bindAttribLocation(s,l,c[l]);n.linkProgram(s)}n.deleteShader(t),n.deleteShader(i);const o={};for(const c in e.uniformData){const l=e.uniformData[c];o[c]={location:n.getUniformLocation(s,c),value:pw(l.type,l.size)}}return new I2(s,o)}function F2(n,e,t,i,s){t.buffer.update(s)}const L2={float:`
data[offset] = v;
`,vec2:`
data[offset] = v[0];
data[offset+1] = v[1];
`,vec3:`
data[offset] = v[0];
data[offset+1] = v[1];
data[offset+2] = v[2];
`,vec4:`
data[offset] = v[0];
data[offset+1] = v[1];
data[offset+2] = v[2];
data[offset+3] = v[3];
`,mat2:`
data[offset] = v[0];
data[offset+1] = v[1];
data[offset+4] = v[2];
data[offset+5] = v[3];
`,mat3:`
data[offset] = v[0];
data[offset+1] = v[1];
data[offset+2] = v[2];
data[offset + 4] = v[3];
data[offset + 5] = v[4];
data[offset + 6] = v[5];
data[offset + 8] = v[6];
data[offset + 9] = v[7];
data[offset + 10] = v[8];
`,mat4:`
for(var i = 0; i < 16; i++)
{
data[offset + i] = v[i];
}
`},$w={float:4,vec2:8,vec3:12,vec4:16,int:4,ivec2:8,ivec3:12,ivec4:16,uint:4,uvec2:8,uvec3:12,uvec4:16,bool:4,bvec2:8,bvec3:12,bvec4:16,mat2:32,mat3:48,mat4:64};function O2(n){const e=n.map(r=>({data:r,offset:0,dataLen:0,dirty:0}));let t=0,i=0,s=0;for(let r=0;r<e.length;r++){const o=e[r];if(t=$w[o.data.type],o.data.size>1&&(t=Math.max(t,16)*o.data.size),o.dataLen=t,i%t!==0&&i<16){const a=i%t%16;i+=a,s+=a}i+t>16?(s=Math.ceil(s/16)*16,o.offset=s,s+=t,i=t):(o.offset=s,i+=t,s+=t)}return s=Math.ceil(s/16)*16,{uboElements:e,size:s}}function $2(n,e){const t=[];for(const i in n)e[i]&&t.push(e[i]);return t.sort((i,s)=>i.index-s.index),t}function N2(n,e){if(!n.autoManage)return{size:0,syncFunc:F2};const t=$2(n.uniforms,e),{uboElements:i,size:s}=O2(t),r=[`
var v = null;
var v2 = null;
var cv = null;
var t = 0;
var gl = renderer.gl
var index = 0;
var data = buffer.data;
`];for(let o=0;o<i.length;o++){const a=i[o],c=n.uniforms[a.data.name],l=a.data.name;let h=!1;for(let u=0;u<Ra.length;u++){const d=Ra[u];if(d.codeUbo&&d.test(a.data,c)){r.push(`offset = ${a.offset/4};`,Ra[u].codeUbo(a.data.name,c)),h=!0;break}}if(!h)if(a.data.size>1){const u=vw(a.data.type),d=Math.max($w[a.data.type]/16,1),f=u/d,m=(4-f%4)%4;r.push(`
cv = ud.${l}.value;
v = uv.${l};
offset = ${a.offset/4};
t = 0;
for(var i=0; i < ${a.data.size*d}; i++)
{
for(var j = 0; j < ${f}; j++)
{
data[offset++] = v[t++];
}
offset += ${m};
}
`)}else{const u=L2[a.data.type];r.push(`
cv = ud.${l}.value;
v = uv.${l};
offset = ${a.offset/4};
${u};
`)}}return r.push(`
renderer.buffer.update(buffer);
`),{size:s,syncFunc:new Function("ud","uv","renderer","syncData","buffer",r.join(`
`))}}let D2=0;const Yc={textureCount:0,uboCount:0};class Nw{constructor(e){this.destroyed=!1,this.renderer=e,this.systemCheck(),this.gl=null,this.shader=null,this.program=null,this.cache={},this._uboCache={},this.id=D2++}systemCheck(){if(!h2())throw new Error("Current environment does not allow unsafe-eval, please use @pixi/unsafe-eval module to enable support.")}contextChange(e){this.gl=e,this.reset()}bind(e,t){e.disposeRunner.add(this),e.uniforms.globals=this.renderer.globalUniforms;const i=e.program,s=i.glPrograms[this.renderer.CONTEXT_UID]||this.generateProgram(e);return this.shader=e,this.program!==i&&(this.program=i,this.gl.useProgram(s.program)),t||(Yc.textureCount=0,Yc.uboCount=0,this.syncUniformGroup(e.uniformGroup,Yc)),s}setUniforms(e){const t=this.shader.program,i=t.glPrograms[this.renderer.CONTEXT_UID];t.syncUniforms(i.uniformData,e,this.renderer)}syncUniformGroup(e,t){const i=this.getGlProgram();(!e.static||e.dirtyId!==i.uniformDirtyGroups[e.id])&&(i.uniformDirtyGroups[e.id]=e.dirtyId,this.syncUniforms(e,i,t))}syncUniforms(e,t,i){(e.syncUniforms[this.shader.program.id]||this.createSyncGroups(e))(t.uniformData,e.uniforms,this.renderer,i)}createSyncGroups(e){const t=this.getSignature(e,this.shader.program.uniformData,"u");return this.cache[t]||(this.cache[t]=r2(e,this.shader.program.uniformData)),e.syncUniforms[this.shader.program.id]=this.cache[t],e.syncUniforms[this.shader.program.id]}syncUniformBufferGroup(e,t){const i=this.getGlProgram();if(!e.static||e.dirtyId!==0||!i.uniformGroups[e.id]){e.dirtyId=0;const s=i.uniformGroups[e.id]||this.createSyncBufferGroup(e,i,t);e.buffer.update(),s(i.uniformData,e.uniforms,this.renderer,Yc,e.buffer)}this.renderer.buffer.bindBufferBase(e.buffer,i.uniformBufferBindings[t])}createSyncBufferGroup(e,t,i){const{gl:s}=this.renderer;this.renderer.buffer.bind(e.buffer);const r=this.gl.getUniformBlockIndex(t.program,i);t.uniformBufferBindings[i]=this.shader.uniformBindCount,s.uniformBlockBinding(t.program,r,this.shader.uniformBindCount),this.shader.uniformBindCount++;const o=this.getSignature(e,this.shader.program.uniformData,"ubo");let a=this._uboCache[o];if(a||(a=this._uboCache[o]=N2(e,this.shader.program.uniformData)),e.autoManage){const c=new Float32Array(a.size/4);e.buffer.update(c)}return t.uniformGroups[e.id]=a.syncFunc,t.uniformGroups[e.id]}getSignature(e,t,i){const s=e.uniforms,r=[`${i}-`];for(const o in s)r.push(o),t[o]&&r.push(t[o].type);return r.join("-")}getGlProgram(){return this.shader?this.shader.program.glPrograms[this.renderer.CONTEXT_UID]:null}generateProgram(e){const t=this.gl,i=e.program,s=k2(t,i);return i.glPrograms[this.renderer.CONTEXT_UID]=s,s}reset(){this.program=null,this.shader=null}disposeShader(e){this.shader===e&&(this.shader=null)}destroy(){this.renderer=null,this.destroyed=!0}}Nw.extension={type:$e.RendererSystem,name:"shader"};je.add(Nw);class Jh{constructor(e){this.renderer=e}run(e){const{renderer:t}=this;t.runners.init.emit(t.options),e.hello&&console.log(`PixiJS 7.4.3 - ${t.rendererLogId} - https://pixijs.com`),t.resize(t.screen.width,t.screen.height)}destroy(){}}Jh.defaultOptions={hello:!1},Jh.extension={type:[$e.RendererSystem,$e.CanvasRendererSystem],name:"startup"};je.add(Jh);function B2(n,e=[]){return e[Qe.NORMAL]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.ADD]=[n.ONE,n.ONE],e[Qe.MULTIPLY]=[n.DST_COLOR,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.SCREEN]=[n.ONE,n.ONE_MINUS_SRC_COLOR,n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.OVERLAY]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.DARKEN]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.LIGHTEN]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.COLOR_DODGE]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.COLOR_BURN]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.HARD_LIGHT]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.SOFT_LIGHT]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.DIFFERENCE]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.EXCLUSION]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.HUE]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.SATURATION]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.COLOR]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.LUMINOSITY]=[n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.NONE]=[0,0],e[Qe.NORMAL_NPM]=[n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.ADD_NPM]=[n.SRC_ALPHA,n.ONE,n.ONE,n.ONE],e[Qe.SCREEN_NPM]=[n.SRC_ALPHA,n.ONE_MINUS_SRC_COLOR,n.ONE,n.ONE_MINUS_SRC_ALPHA],e[Qe.SRC_IN]=[n.DST_ALPHA,n.ZERO],e[Qe.SRC_OUT]=[n.ONE_MINUS_DST_ALPHA,n.ZERO],e[Qe.SRC_ATOP]=[n.DST_ALPHA,n.ONE_MINUS_SRC_ALPHA],e[Qe.DST_OVER]=[n.ONE_MINUS_DST_ALPHA,n.ONE],e[Qe.DST_IN]=[n.ZERO,n.SRC_ALPHA],e[Qe.DST_OUT]=[n.ZERO,n.ONE_MINUS_SRC_ALPHA],e[Qe.DST_ATOP]=[n.ONE_MINUS_DST_ALPHA,n.SRC_ALPHA],e[Qe.XOR]=[n.ONE_MINUS_DST_ALPHA,n.ONE_MINUS_SRC_ALPHA],e[Qe.SUBTRACT]=[n.ONE,n.ONE,n.ONE,n.ONE,n.FUNC_REVERSE_SUBTRACT,n.FUNC_ADD],e}const U2=0,V2=1,X2=2,Y2=3,G2=4,H2=5,Dw=class Jm{constructor(){this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode=Qe.NONE,this._blendEq=!1,this.map=[],this.map[U2]=this.setBlend,this.map[V2]=this.setOffset,this.map[X2]=this.setCullFace,this.map[Y2]=this.setDepthTest,this.map[G2]=this.setFrontFace,this.map[H2]=this.setDepthMask,this.checks=[],this.defaultState=new Rs,this.defaultState.blend=!0}contextChange(e){this.gl=e,this.blendModes=B2(e),this.set(this.defaultState),this.reset()}set(e){if(e=e||this.defaultState,this.stateId!==e.data){let t=this.stateId^e.data,i=0;for(;t;)t&1&&this.map[i].call(this,!!(e.data&1<<i)),t=t>>1,i++;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(Jm.checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this.updateCheck(Jm.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)}setCullFace(e){this.gl[e?"enable":"disable"](this.gl.CULL_FACE)}setFrontFace(e){this.gl.frontFace(this.gl[e?"CW":"CCW"])}setBlendMode(e){if(e===this.blendMode)return;this.blendMode=e;const t=this.blendModes[e],i=this.gl;t.length===2?i.blendFunc(t[0],t[1]):i.blendFuncSeparate(t[0],t[1],t[2],t[3]),t.length===6?(this._blendEq=!0,i.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,i.blendEquationSeparate(i.FUNC_ADD,i.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}reset(){this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode=-1,this.setBlendMode(0)}updateCheck(e,t){const i=this.checks.indexOf(e);t&&i===-1?this.checks.push(e):!t&&i!==-1&&this.checks.splice(i,1)}static checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null}};Dw.extension={type:$e.RendererSystem,name:"state"};let j2=Dw;je.add(j2);class W2 extends pc{constructor(){super(...arguments),this.runners={},this._systemsHash={}}setup(e){this.addRunners(...e.runners);const t=(e.priority??[]).filter(s=>e.systems[s]),i=[...t,...Object.keys(e.systems).filter(s=>!t.includes(s))];for(const s of i)this.addSystem(e.systems[s],s)}addRunners(...e){e.forEach(t=>{this.runners[t]=new Zn(t)})}addSystem(e,t){const i=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=i,this._systemsHash[t]=i;for(const s in this.runners)this.runners[s].add(i);return this}emitWithCustomOptions(e,t){const i=Object.keys(this._systemsHash);e.items.forEach(s=>{const r=i.find(o=>this._systemsHash[o]===s);s[e.name](t[r])})}destroy(){Object.values(this.runners).forEach(e=>{e.destroy()}),this._systemsHash={}}}const Sl=class wh{constructor(e){this.renderer=e,this.count=0,this.checkCount=0,this.maxIdle=wh.defaultMaxIdle,this.checkCountMax=wh.defaultCheckCountMax,this.mode=wh.defaultMode}postrender(){this.renderer.objectRenderer.renderingToScreen&&(this.count++,this.mode!==wg.MANUAL&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){const e=this.renderer.texture,t=e.managedTextures;let i=!1;for(let s=0;s<t.length;s++){const r=t[s];r.resource&&this.count-r.touched>this.maxIdle&&(e.destroyTexture(r,!0),t[s]=null,i=!0)}if(i){let s=0;for(let r=0;r<t.length;r++)t[r]!==null&&(t[s++]=t[r]);t.length=s}}unload(e){const t=this.renderer.texture,i=e._texture;i&&!i.framebuffer&&t.destroyTexture(i);for(let s=e.children.length-1;s>=0;s--)this.unload(e.children[s])}destroy(){this.renderer=null}};Sl.defaultMode=wg.AUTO,Sl.defaultMaxIdle=3600,Sl.defaultCheckCountMax=600,Sl.extension={type:$e.RendererSystem,name:"textureGC"};let xo=Sl;je.add(xo);class Gf{constructor(e){this.texture=e,this.width=-1,this.height=-1,this.dirtyId=-1,this.dirtyStyleId=-1,this.mipmap=!1,this.wrapMode=33071,this.type=He.UNSIGNED_BYTE,this.internalFormat=Ie.RGBA,this.samplerType=0}}function z2(n){let e;return"WebGL2RenderingContext"in globalThis&&n instanceof globalThis.WebGL2RenderingContext?e={[n.RGB]:Xe.FLOAT,[n.RGBA]:Xe.FLOAT,[n.ALPHA]:Xe.FLOAT,[n.LUMINANCE]:Xe.FLOAT,[n.LUMINANCE_ALPHA]:Xe.FLOAT,[n.R8]:Xe.FLOAT,[n.R8_SNORM]:Xe.FLOAT,[n.RG8]:Xe.FLOAT,[n.RG8_SNORM]:Xe.FLOAT,[n.RGB8]:Xe.FLOAT,[n.RGB8_SNORM]:Xe.FLOAT,[n.RGB565]:Xe.FLOAT,[n.RGBA4]:Xe.FLOAT,[n.RGB5_A1]:Xe.FLOAT,[n.RGBA8]:Xe.FLOAT,[n.RGBA8_SNORM]:Xe.FLOAT,[n.RGB10_A2]:Xe.FLOAT,[n.RGB10_A2UI]:Xe.FLOAT,[n.SRGB8]:Xe.FLOAT,[n.SRGB8_ALPHA8]:Xe.FLOAT,[n.R16F]:Xe.FLOAT,[n.RG16F]:Xe.FLOAT,[n.RGB16F]:Xe.FLOAT,[n.RGBA16F]:Xe.FLOAT,[n.R32F]:Xe.FLOAT,[n.RG32F]:Xe.FLOAT,[n.RGB32F]:Xe.FLOAT,[n.RGBA32F]:Xe.FLOAT,[n.R11F_G11F_B10F]:Xe.FLOAT,[n.RGB9_E5]:Xe.FLOAT,[n.R8I]:Xe.INT,[n.R8UI]:Xe.UINT,[n.R16I]:Xe.INT,[n.R16UI]:Xe.UINT,[n.R32I]:Xe.INT,[n.R32UI]:Xe.UINT,[n.RG8I]:Xe.INT,[n.RG8UI]:Xe.UINT,[n.RG16I]:Xe.INT,[n.RG16UI]:Xe.UINT,[n.RG32I]:Xe.INT,[n.RG32UI]:Xe.UINT,[n.RGB8I]:Xe.INT,[n.RGB8UI]:Xe.UINT,[n.RGB16I]:Xe.INT,[n.RGB16UI]:Xe.UINT,[n.RGB32I]:Xe.INT,[n.RGB32UI]:Xe.UINT,[n.RGBA8I]:Xe.INT,[n.RGBA8UI]:Xe.UINT,[n.RGBA16I]:Xe.INT,[n.RGBA16UI]:Xe.UINT,[n.RGBA32I]:Xe.INT,[n.RGBA32UI]:Xe.UINT,[n.DEPTH_COMPONENT16]:Xe.FLOAT,[n.DEPTH_COMPONENT24]:Xe.FLOAT,[n.DEPTH_COMPONENT32F]:Xe.FLOAT,[n.DEPTH_STENCIL]:Xe.FLOAT,[n.DEPTH24_STENCIL8]:Xe.FLOAT,[n.DEPTH32F_STENCIL8]:Xe.FLOAT}:e={[n.RGB]:Xe.FLOAT,[n.RGBA]:Xe.FLOAT,[n.ALPHA]:Xe.FLOAT,[n.LUMINANCE]:Xe.FLOAT,[n.LUMINANCE_ALPHA]:Xe.FLOAT,[n.DEPTH_STENCIL]:Xe.FLOAT},e}function q2(n){let e;return"WebGL2RenderingContext"in globalThis&&n instanceof globalThis.WebGL2RenderingContext?e={[He.UNSIGNED_BYTE]:{[Ie.RGBA]:n.RGBA8,[Ie.RGB]:n.RGB8,[Ie.RG]:n.RG8,[Ie.RED]:n.R8,[Ie.RGBA_INTEGER]:n.RGBA8UI,[Ie.RGB_INTEGER]:n.RGB8UI,[Ie.RG_INTEGER]:n.RG8UI,[Ie.RED_INTEGER]:n.R8UI,[Ie.ALPHA]:n.ALPHA,[Ie.LUMINANCE]:n.LUMINANCE,[Ie.LUMINANCE_ALPHA]:n.LUMINANCE_ALPHA},[He.BYTE]:{[Ie.RGBA]:n.RGBA8_SNORM,[Ie.RGB]:n.RGB8_SNORM,[Ie.RG]:n.RG8_SNORM,[Ie.RED]:n.R8_SNORM,[Ie.RGBA_INTEGER]:n.RGBA8I,[Ie.RGB_INTEGER]:n.RGB8I,[Ie.RG_INTEGER]:n.RG8I,[Ie.RED_INTEGER]:n.R8I},[He.UNSIGNED_SHORT]:{[Ie.RGBA_INTEGER]:n.RGBA16UI,[Ie.RGB_INTEGER]:n.RGB16UI,[Ie.RG_INTEGER]:n.RG16UI,[Ie.RED_INTEGER]:n.R16UI,[Ie.DEPTH_COMPONENT]:n.DEPTH_COMPONENT16},[He.SHORT]:{[Ie.RGBA_INTEGER]:n.RGBA16I,[Ie.RGB_INTEGER]:n.RGB16I,[Ie.RG_INTEGER]:n.RG16I,[Ie.RED_INTEGER]:n.R16I},[He.UNSIGNED_INT]:{[Ie.RGBA_INTEGER]:n.RGBA32UI,[Ie.RGB_INTEGER]:n.RGB32UI,[Ie.RG_INTEGER]:n.RG32UI,[Ie.RED_INTEGER]:n.R32UI,[Ie.DEPTH_COMPONENT]:n.DEPTH_COMPONENT24},[He.INT]:{[Ie.RGBA_INTEGER]:n.RGBA32I,[Ie.RGB_INTEGER]:n.RGB32I,[Ie.RG_INTEGER]:n.RG32I,[Ie.RED_INTEGER]:n.R32I},[He.FLOAT]:{[Ie.RGBA]:n.RGBA32F,[Ie.RGB]:n.RGB32F,[Ie.RG]:n.RG32F,[Ie.RED]:n.R32F,[Ie.DEPTH_COMPONENT]:n.DEPTH_COMPONENT32F},[He.HALF_FLOAT]:{[Ie.RGBA]:n.RGBA16F,[Ie.RGB]:n.RGB16F,[Ie.RG]:n.RG16F,[Ie.RED]:n.R16F},[He.UNSIGNED_SHORT_5_6_5]:{[Ie.RGB]:n.RGB565},[He.UNSIGNED_SHORT_4_4_4_4]:{[Ie.RGBA]:n.RGBA4},[He.UNSIGNED_SHORT_5_5_5_1]:{[Ie.RGBA]:n.RGB5_A1},[He.UNSIGNED_INT_2_10_10_10_REV]:{[Ie.RGBA]:n.RGB10_A2,[Ie.RGBA_INTEGER]:n.RGB10_A2UI},[He.UNSIGNED_INT_10F_11F_11F_REV]:{[Ie.RGB]:n.R11F_G11F_B10F},[He.UNSIGNED_INT_5_9_9_9_REV]:{[Ie.RGB]:n.RGB9_E5},[He.UNSIGNED_INT_24_8]:{[Ie.DEPTH_STENCIL]:n.DEPTH24_STENCIL8},[He.FLOAT_32_UNSIGNED_INT_24_8_REV]:{[Ie.DEPTH_STENCIL]:n.DEPTH32F_STENCIL8}}:e={[He.UNSIGNED_BYTE]:{[Ie.RGBA]:n.RGBA,[Ie.RGB]:n.RGB,[Ie.ALPHA]:n.ALPHA,[Ie.LUMINANCE]:n.LUMINANCE,[Ie.LUMINANCE_ALPHA]:n.LUMINANCE_ALPHA},[He.UNSIGNED_SHORT_5_6_5]:{[Ie.RGB]:n.RGB},[He.UNSIGNED_SHORT_4_4_4_4]:{[Ie.RGBA]:n.RGBA},[He.UNSIGNED_SHORT_5_5_5_1]:{[Ie.RGBA]:n.RGBA}},e}class Bw{constructor(e){this.renderer=e,this.boundTextures=[],this.currentLocation=-1,this.managedTextures=[],this._unknownBoundTextures=!1,this.unknownTexture=new rt,this.hasIntegerTextures=!1}contextChange(){const e=this.gl=this.renderer.gl;this.CONTEXT_UID=this.renderer.CONTEXT_UID,this.webGLVersion=this.renderer.context.webGLVersion,this.internalFormats=q2(e),this.samplerTypes=z2(e);const t=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS);this.boundTextures.length=t;for(let s=0;s<t;s++)this.boundTextures[s]=null;this.emptyTextures={};const i=new Gf(e.createTexture());e.bindTexture(e.TEXTURE_2D,i.texture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array(4)),this.emptyTextures[e.TEXTURE_2D]=i,this.emptyTextures[e.TEXTURE_CUBE_MAP]=new Gf(e.createTexture()),e.bindTexture(e.TEXTURE_CUBE_MAP,this.emptyTextures[e.TEXTURE_CUBE_MAP].texture);for(let s=0;s<6;s++)e.texImage2D(e.TEXTURE_CUBE_MAP_POSITIVE_X+s,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,null);e.texParameteri(e.TEXTURE_CUBE_MAP,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_CUBE_MAP,e.TEXTURE_MIN_FILTER,e.LINEAR);for(let s=0;s<this.boundTextures.length;s++)this.bind(null,s)}bind(e,t=0){const{gl:i}=this;if(e=e==null?void 0:e.castToBaseTexture(),(e==null?void 0:e.valid)&&!e.parentTextureArray){e.touched=this.renderer.textureGC.count;const s=e._glTextures[this.CONTEXT_UID]||this.initTexture(e);this.boundTextures[t]!==e&&(this.currentLocation!==t&&(this.currentLocation=t,i.activeTexture(i.TEXTURE0+t)),i.bindTexture(e.target,s.texture)),s.dirtyId!==e.dirtyId?(this.currentLocation!==t&&(this.currentLocation=t,i.activeTexture(i.TEXTURE0+t)),this.updateTexture(e)):s.dirtyStyleId!==e.dirtyStyleId&&this.updateTextureStyle(e),this.boundTextures[t]=e}else this.currentLocation!==t&&(this.currentLocation=t,i.activeTexture(i.TEXTURE0+t)),i.bindTexture(i.TEXTURE_2D,this.emptyTextures[i.TEXTURE_2D].texture),this.boundTextures[t]=null}reset(){this._unknownBoundTextures=!0,this.hasIntegerTextures=!1,this.currentLocation=-1;for(let e=0;e<this.boundTextures.length;e++)this.boundTextures[e]=this.unknownTexture}unbind(e){const{gl:t,boundTextures:i}=this;if(this._unknownBoundTextures){this._unknownBoundTextures=!1;for(let s=0;s<i.length;s++)i[s]===this.unknownTexture&&this.bind(null,s)}for(let s=0;s<i.length;s++)i[s]===e&&(this.currentLocation!==s&&(t.activeTexture(t.TEXTURE0+s),this.currentLocation=s),t.bindTexture(e.target,this.emptyTextures[e.target].texture),i[s]=null)}ensureSamplerType(e){const{boundTextures:t,hasIntegerTextures:i,CONTEXT_UID:s}=this;if(i)for(let r=e-1;r>=0;--r){const o=t[r];o&&o._glTextures[s].samplerType!==Xe.FLOAT&&this.renderer.texture.unbind(o)}}initTexture(e){const t=new Gf(this.gl.createTexture());return t.dirtyId=-1,e._glTextures[this.CONTEXT_UID]=t,this.managedTextures.push(e),e.on("dispose",this.destroyTexture,this),t}initTextureType(e,t){var i;t.internalFormat=((i=this.internalFormats[e.type])==null?void 0:i[e.format])??e.format,t.samplerType=this.samplerTypes[t.internalFormat]??Xe.FLOAT,this.webGLVersion===2&&e.type===He.HALF_FLOAT?t.type=this.gl.HALF_FLOAT:t.type=e.type}updateTexture(e){var s;const t=e._glTextures[this.CONTEXT_UID];if(!t)return;const i=this.renderer;if(this.initTextureType(e,t),(s=e.resource)==null?void 0:s.upload(i,e,t))t.samplerType!==Xe.FLOAT&&(this.hasIntegerTextures=!0);else{const r=e.realWidth,o=e.realHeight,a=i.gl;(t.width!==r||t.height!==o||t.dirtyId<0)&&(t.width=r,t.height=o,a.texImage2D(e.target,0,t.internalFormat,r,o,0,e.format,t.type,null))}e.dirtyStyleId!==t.dirtyStyleId&&this.updateTextureStyle(e),t.dirtyId=e.dirtyId}destroyTexture(e,t){const{gl:i}=this;if(e=e.castToBaseTexture(),e._glTextures[this.CONTEXT_UID]&&(this.unbind(e),i.deleteTexture(e._glTextures[this.CONTEXT_UID].texture),e.off("dispose",this.destroyTexture,this),delete e._glTextures[this.CONTEXT_UID],!t)){const s=this.managedTextures.indexOf(e);s!==-1&&Pa(this.managedTextures,s,1)}}updateTextureStyle(e){var i;const t=e._glTextures[this.CONTEXT_UID];t&&((e.mipmap===$n.POW2||this.webGLVersion!==2)&&!e.isPowerOfTwo?t.mipmap=!1:t.mipmap=e.mipmap>=1,this.webGLVersion!==2&&!e.isPowerOfTwo?t.wrapMode=Jn.CLAMP:t.wrapMode=e.wrapMode,(i=e.resource)!=null&&i.style(this.renderer,e,t)||this.setStyle(e,t),t.dirtyStyleId=e.dirtyStyleId)}setStyle(e,t){const i=this.gl;if(t.mipmap&&e.mipmap!==$n.ON_MANUAL&&i.generateMipmap(e.target),i.texParameteri(e.target,i.TEXTURE_WRAP_S,t.wrapMode),i.texParameteri(e.target,i.TEXTURE_WRAP_T,t.wrapMode),t.mipmap){i.texParameteri(e.target,i.TEXTURE_MIN_FILTER,e.scaleMode===Wn.LINEAR?i.LINEAR_MIPMAP_LINEAR:i.NEAREST_MIPMAP_NEAREST);const s=this.renderer.context.extensions.anisotropicFiltering;if(s&&e.anisotropicLevel>0&&e.scaleMode===Wn.LINEAR){const r=Math.min(e.anisotropicLevel,i.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT));i.texParameterf(e.target,s.TEXTURE_MAX_ANISOTROPY_EXT,r)}}else i.texParameteri(e.target,i.TEXTURE_MIN_FILTER,e.scaleMode===Wn.LINEAR?i.LINEAR:i.NEAREST);i.texParameteri(e.target,i.TEXTURE_MAG_FILTER,e.scaleMode===Wn.LINEAR?i.LINEAR:i.NEAREST)}destroy(){this.renderer=null}}Bw.extension={type:$e.RendererSystem,name:"texture"};je.add(Bw);class Uw{constructor(e){this.renderer=e}contextChange(){this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(e){const{gl:t,CONTEXT_UID:i}=this,s=e._glTransformFeedbacks[i]||this.createGLTransformFeedback(e);t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,s)}unbind(){const{gl:e}=this;e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,null)}beginTransformFeedback(e,t){const{gl:i,renderer:s}=this;t&&s.shader.bind(t),i.beginTransformFeedback(e)}endTransformFeedback(){const{gl:e}=this;e.endTransformFeedback()}createGLTransformFeedback(e){const{gl:t,renderer:i,CONTEXT_UID:s}=this,r=t.createTransformFeedback();e._glTransformFeedbacks[s]=r,t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,r);for(let o=0;o<e.buffers.length;o++){const a=e.buffers[o];a&&(i.buffer.update(a),a._glBuffers[s].refCount++,t.bindBufferBase(t.TRANSFORM_FEEDBACK_BUFFER,o,a._glBuffers[s].buffer||null))}return t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,null),e.disposeRunner.add(this),r}disposeTransformFeedback(e,t){const i=e._glTransformFeedbacks[this.CONTEXT_UID],s=this.gl;e.disposeRunner.remove(this);const r=this.renderer.buffer;if(r)for(let o=0;o<e.buffers.length;o++){const a=e.buffers[o];if(!a)continue;const c=a._glBuffers[this.CONTEXT_UID];c&&(c.refCount--,c.refCount===0&&!t&&r.dispose(a,t))}i&&(t||s.deleteTransformFeedback(i),delete e._glTransformFeedbacks[this.CONTEXT_UID])}destroy(){this.renderer=null}}Uw.extension={type:$e.RendererSystem,name:"transformFeedback"};je.add(Uw);class Zh{constructor(e){this.renderer=e}init(e){this.screen=new dt(0,0,e.width,e.height),this.element=e.view||Ve.ADAPTER.createCanvas(),this.resolution=e.resolution||Ve.RESOLUTION,this.autoDensity=!!e.autoDensity}resizeView(e,t){this.element.width=Math.round(e*this.resolution),this.element.height=Math.round(t*this.resolution);const i=this.element.width/this.resolution,s=this.element.height/this.resolution;this.screen.width=i,this.screen.height=s,this.autoDensity&&(this.element.style.width=`${i}px`,this.element.style.height=`${s}px`),this.renderer.emit("resize",i,s),this.renderer.runners.resize.emit(this.screen.width,this.screen.height)}destroy(e){var t;e&&((t=this.element.parentNode)==null||t.removeChild(this.element)),this.renderer=null,this.element=null,this.screen=null}}Zh.defaultOptions={width:800,height:600,resolution:void 0,autoDensity:!1},Zh.extension={type:[$e.RendererSystem,$e.CanvasRendererSystem],name:"_view"};je.add(Zh);Ve.PREFER_ENV=Ho.WEBGL2;Ve.STRICT_TEXTURE_CACHE=!1;Ve.RENDER_OPTIONS={...Kh.defaultOptions,...qh.defaultOptions,...Zh.defaultOptions,...Jh.defaultOptions};Object.defineProperties(Ve,{WRAP_MODE:{get(){return rt.defaultOptions.wrapMode},set(n){pt("7.1.0","settings.WRAP_MODE is deprecated, use BaseTexture.defaultOptions.wrapMode"),rt.defaultOptions.wrapMode=n}},SCALE_MODE:{get(){return rt.defaultOptions.scaleMode},set(n){pt("7.1.0","settings.SCALE_MODE is deprecated, use BaseTexture.defaultOptions.scaleMode"),rt.defaultOptions.scaleMode=n}},MIPMAP_TEXTURES:{get(){return rt.defaultOptions.mipmap},set(n){pt("7.1.0","settings.MIPMAP_TEXTURES is deprecated, use BaseTexture.defaultOptions.mipmap"),rt.defaultOptions.mipmap=n}},ANISOTROPIC_LEVEL:{get(){return rt.defaultOptions.anisotropicLevel},set(n){pt("7.1.0","settings.ANISOTROPIC_LEVEL is deprecated, use BaseTexture.defaultOptions.anisotropicLevel"),rt.defaultOptions.anisotropicLevel=n}},FILTER_RESOLUTION:{get(){return pt("7.1.0","settings.FILTER_RESOLUTION is deprecated, use Filter.defaultResolution"),tn.defaultResolution},set(n){tn.defaultResolution=n}},FILTER_MULTISAMPLE:{get(){return pt("7.1.0","settings.FILTER_MULTISAMPLE is deprecated, use Filter.defaultMultisample"),tn.defaultMultisample},set(n){tn.defaultMultisample=n}},SPRITE_MAX_TEXTURES:{get(){return Rr.defaultMaxTextures},set(n){pt("7.1.0","settings.SPRITE_MAX_TEXTURES is deprecated, use BatchRenderer.defaultMaxTextures"),Rr.defaultMaxTextures=n}},SPRITE_BATCH_SIZE:{get(){return Rr.defaultBatchSize},set(n){pt("7.1.0","settings.SPRITE_BATCH_SIZE is deprecated, use BatchRenderer.defaultBatchSize"),Rr.defaultBatchSize=n}},CAN_UPLOAD_SAME_BUFFER:{get(){return Rr.canUploadSameBuffer},set(n){pt("7.1.0","settings.CAN_UPLOAD_SAME_BUFFER is deprecated, use BatchRenderer.canUploadSameBuffer"),Rr.canUploadSameBuffer=n}},GC_MODE:{get(){return xo.defaultMode},set(n){pt("7.1.0","settings.GC_MODE is deprecated, use TextureGCSystem.defaultMode"),xo.defaultMode=n}},GC_MAX_IDLE:{get(){return xo.defaultMaxIdle},set(n){pt("7.1.0","settings.GC_MAX_IDLE is deprecated, use TextureGCSystem.defaultMaxIdle"),xo.defaultMaxIdle=n}},GC_MAX_CHECK_COUNT:{get(){return xo.defaultCheckCountMax},set(n){pt("7.1.0","settings.GC_MAX_CHECK_COUNT is deprecated, use TextureGCSystem.defaultCheckCountMax"),xo.defaultCheckCountMax=n}},PRECISION_VERTEX:{get(){return Ts.defaultVertexPrecision},set(n){pt("7.1.0","settings.PRECISION_VERTEX is deprecated, use Program.defaultVertexPrecision"),Ts.defaultVertexPrecision=n}},PRECISION_FRAGMENT:{get(){return Ts.defaultFragmentPrecision},set(n){pt("7.1.0","settings.PRECISION_FRAGMENT is deprecated, use Program.defaultFragmentPrecision"),Ts.defaultFragmentPrecision=n}}});var Uo=(n=>(n[n.INTERACTION=50]="INTERACTION",n[n.HIGH=25]="HIGH",n[n.NORMAL=0]="NORMAL",n[n.LOW=-25]="LOW",n[n.UTILITY=-50]="UTILITY",n))(Uo||{});class Hf{constructor(e,t=null,i=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=e,this.context=t,this.priority=i,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));const 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);const t=this.next;return this.next=e?null:t,this.previous=null,t}}const Vw=class vn{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 Hf(null,null,1/0),this.deltaMS=1/vn.targetFPMS,this.elapsedMS=1/vn.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,i=Uo.NORMAL){return this._addListener(new Hf(e,t,i))}addOnce(e,t,i=Uo.NORMAL){return this._addListener(new Hf(e,t,i,!0))}_addListener(e){let t=this._head.next,i=this._head;if(!t)e.connect(i);else{for(;t;){if(e.priority>t.priority){e.connect(i);break}i=t,t=t.next}e.previous||e.connect(i)}return this._startIfPossible(),this}remove(e,t){let i=this._head.next;for(;i;)i.match(e,t)?i=i.destroy():i=i.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){const r=e-this._lastFrame|0;if(r<this._minElapsedMS)return;this._lastFrame=e-r%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*vn.targetFPMS;const i=this._head;let s=i.next;for(;s;)s=s.emit(this.deltaTime);i.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){const t=Math.min(this.maxFPS,e),i=Math.min(Math.max(0,t)/1e3,vn.targetFPMS);this._maxElapsedMS=1/i}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{const t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!vn._shared){const e=vn._shared=new vn;e.autoStart=!0,e._protected=!0}return vn._shared}static get system(){if(!vn._system){const e=vn._system=new vn;e.autoStart=!0,e._protected=!0}return vn._system}};Vw.targetFPMS=.06;let nn=Vw;Object.defineProperties(Ve,{TARGET_FPMS:{get(){return nn.targetFPMS},set(n){pt("7.1.0","settings.TARGET_FPMS is deprecated, use Ticker.targetFPMS"),nn.targetFPMS=n}}});class Xw{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,Uo.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?nn.shared:new nn,e.autoStart&&this.start()}static destroy(){if(this._ticker){const e=this._ticker;this.ticker=null,e.destroy()}}}Xw.extension=$e.Application;je.add(Xw);const Yw=[];je.handleByList($e.Renderer,Yw);function K2(n){for(const e of Yw)if(e.test(n))return new e(n);throw new Error("Unable to auto-detect a suitable renderer.")}var J2=`attribute vec2 aVertexPosition;
attribute vec2 aTextureCoord;
uniform mat3 projectionMatrix;
varying vec2 vTextureCoord;
void main(void)
{
gl_Position = vec4((projectionMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
vTextureCoord = aTextureCoord;
}`,Z2=`attribute vec2 aVertexPosition;
uniform mat3 projectionMatrix;
varying vec2 vTextureCoord;
uniform vec4 inputSize;
uniform vec4 outputFrame;
vec4 filterVertexPosition( void )
{
vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;
return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);
}
vec2 filterTextureCoord( void )
{
return aVertexPosition * (outputFrame.zw * inputSize.zw);
}
void main(void)
{
gl_Position = filterVertexPosition();
vTextureCoord = filterTextureCoord();
}
`;const Q2=J2,Gw=Z2;class Hw{constructor(e){this.renderer=e}contextChange(e){let t;if(this.renderer.context.webGLVersion===1){const i=e.getParameter(e.FRAMEBUFFER_BINDING);e.bindFramebuffer(e.FRAMEBUFFER,null),t=e.getParameter(e.SAMPLES),e.bindFramebuffer(e.FRAMEBUFFER,i)}else{const i=e.getParameter(e.DRAW_FRAMEBUFFER_BINDING);e.bindFramebuffer(e.DRAW_FRAMEBUFFER,null),t=e.getParameter(e.SAMPLES),e.bindFramebuffer(e.DRAW_FRAMEBUFFER,i)}t>=bi.HIGH?this.multisample=bi.HIGH:t>=bi.MEDIUM?this.multisample=bi.MEDIUM:t>=bi.LOW?this.multisample=bi.LOW:this.multisample=bi.NONE}destroy(){}}Hw.extension={type:$e.RendererSystem,name:"_multisample"};je.add(Hw);class eP{constructor(e){this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.refCount=0}}class jw{constructor(e){this.renderer=e,this.managedBuffers={},this.boundBufferBases={}}destroy(){this.renderer=null}contextChange(){this.disposeAll(!0),this.gl=this.renderer.gl,this.CONTEXT_UID=this.renderer.CONTEXT_UID}bind(e){const{gl:t,CONTEXT_UID:i}=this,s=e._glBuffers[i]||this.createGLBuffer(e);t.bindBuffer(e.type,s.buffer)}unbind(e){const{gl:t}=this;t.bindBuffer(e,null)}bindBufferBase(e,t){const{gl:i,CONTEXT_UID:s}=this;if(this.boundBufferBases[t]!==e){const r=e._glBuffers[s]||this.createGLBuffer(e);this.boundBufferBases[t]=e,i.bindBufferBase(i.UNIFORM_BUFFER,t,r.buffer)}}bindBufferRange(e,t,i){const{gl:s,CONTEXT_UID:r}=this;i=i||0;const o=e._glBuffers[r]||this.createGLBuffer(e);s.bindBufferRange(s.UNIFORM_BUFFER,t||0,o.buffer,i*256,256)}update(e){const{gl:t,CONTEXT_UID:i}=this,s=e._glBuffers[i]||this.createGLBuffer(e);if(e._updateID!==s.updateID)if(s.updateID=e._updateID,t.bindBuffer(e.type,s.buffer),s.byteLength>=e.data.byteLength)t.bufferSubData(e.type,0,e.data);else{const r=e.static?t.STATIC_DRAW:t.DYNAMIC_DRAW;s.byteLength=e.data.byteLength,t.bufferData(e.type,e.data,r)}}dispose(e,t){if(!this.managedBuffers[e.id])return;delete this.managedBuffers[e.id];const i=e._glBuffers[this.CONTEXT_UID],s=this.gl;e.disposeRunner.remove(this),i&&(t||s.deleteBuffer(i.buffer),delete e._glBuffers[this.CONTEXT_UID])}disposeAll(e){const t=Object.keys(this.managedBuffers);for(let i=0;i<t.length;i++)this.dispose(this.managedBuffers[t[i]],e)}createGLBuffer(e){const{CONTEXT_UID:t,gl:i}=this;return e._glBuffers[t]=new eP(i.createBuffer()),this.managedBuffers[e.id]=e,e.disposeRunner.add(this),e._glBuffers[t]}}jw.extension={type:$e.RendererSystem,name:"buffer"};je.add(jw);class Ww{constructor(e){this.renderer=e}render(e,t){const i=this.renderer;let s,r,o,a;if(t&&(s=t.renderTexture,r=t.clear,o=t.transform,a=t.skipUpdateTransform),this.renderingToScreen=!s,i.runners.prerender.emit(),i.emit("prerender"),i.projection.transform=o,!i.context.isLost){if(s||(this.lastObjectRendered=e),!a){const c=e.enableTempParent();e.updateTransform(),e.disableTempParent(c)}i.renderTexture.bind(s),i.batch.currentRenderer.start(),(r??i.background.clearBeforeRender)&&i.renderTexture.clear(),e.render(i),i.batch.currentRenderer.flush(),s&&(t.blit&&i.framebuffer.blit(),s.baseTexture.update()),i.runners.postrender.emit(),i.projection.transform=null,i.emit("postrender")}}destroy(){this.renderer=null,this.lastObjectRendered=null}}Ww.extension={type:$e.RendererSystem,name:"objectRenderer"};je.add(Ww);const Sh=class Zm extends W2{constructor(e){super(),this.type=Wx.WEBGL,e=Object.assign({},Ve.RENDER_OPTIONS,e),this.gl=null,this.CONTEXT_UID=0,this.globalUniforms=new Qn({projectionMatrix:new Bt},!0);const t={runners:["init","destroy","contextChange","resolutionChange","reset","update","postrender","prerender","resize"],systems:Zm.__systems,priority:["_view","textureGenerator","background","_plugin","startup","context","state","texture","buffer","geometry","framebuffer","transformFeedback","mask","scissor","stencil","projection","textureGC","filter","renderTexture","batch","objectRenderer","_multisample"]};this.setup(t),"useContextAlpha"in e&&(pt("7.0.0","options.useContextAlpha is deprecated, use options.premultipliedAlpha and options.backgroundAlpha instead"),e.premultipliedAlpha=e.useContextAlpha&&e.useContextAlpha!=="notMultiplied",e.backgroundAlpha=e.useContextAlpha===!1?1:e.backgroundAlpha),this._plugin.rendererPlugins=Zm.__plugins,this.options=e,this.startup.run(this.options)}static test(e){return e!=null&&e.forceCanvas?!1:TI()}render(e,t){this.objectRenderer.render(e,t)}resize(e,t){this._view.resizeView(e,t)}reset(){return this.runners.reset.emit(),this}clear(){this.renderTexture.bind(),this.renderTexture.clear()}destroy(e=!1){this.runners.destroy.items.reverse(),this.emitWithCustomOptions(this.runners.destroy,{_view:e}),super.destroy()}get plugins(){return this._plugin.plugins}get multisample(){return this._multisample.multisample}get width(){return this._view.element.width}get height(){return this._view.element.height}get resolution(){return this._view.resolution}set resolution(e){this._view.resolution=e,this.runners.resolutionChange.emit(e)}get autoDensity(){return this._view.autoDensity}get view(){return this._view.element}get screen(){return this._view.screen}get lastObjectRendered(){return this.objectRenderer.lastObjectRendered}get renderingToScreen(){return this.objectRenderer.renderingToScreen}get rendererLogId(){return`WebGL ${this.context.webGLVersion}`}get clearBeforeRender(){return pt("7.0.0","renderer.clearBeforeRender has been deprecated, please use renderer.background.clearBeforeRender instead."),this.background.clearBeforeRender}get useContextAlpha(){return pt("7.0.0","renderer.useContextAlpha has been deprecated, please use renderer.context.premultipliedAlpha instead."),this.context.useContextAlpha}get preserveDrawingBuffer(){return pt("7.0.0","renderer.preserveDrawingBuffer has been deprecated, we cannot truly know this unless pixi created the context"),this.context.preserveDrawingBuffer}get backgroundColor(){return pt("7.0.0","renderer.backgroundColor has been deprecated, use renderer.background.color instead."),this.background.color}set backgroundColor(e){pt("7.0.0","renderer.backgroundColor has been deprecated, use renderer.background.color instead."),this.background.color=e}get backgroundAlpha(){return pt("7.0.0","renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead."),this.background.alpha}set backgroundAlpha(e){pt("7.0.0","renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead."),this.background.alpha=e}get powerPreference(){return pt("7.0.0","renderer.powerPreference has been deprecated, we can only know this if pixi creates the context"),this.context.powerPreference}generateTexture(e,t){return this.textureGenerator.generateTexture(e,t)}};Sh.extension={type:$e.Renderer,priority:1},Sh.__plugins={},Sh.__systems={};let Ag=Sh;je.handleByMap($e.RendererPlugin,Ag.__plugins);je.handleByMap($e.RendererSystem,Ag.__systems);je.add(Ag);class zw extends Zl{constructor(e,t){const{width:i,height:s}=t||{};super(i,s),this.items=[],this.itemDirtyIds=[];for(let r=0;r<e;r++){const o=new rt;this.items.push(o),this.itemDirtyIds.push(-2)}this.length=e,this._load=null,this.baseTexture=null}initFromArray(e,t){for(let i=0;i<this.length;i++)e[i]&&(e[i].castToBaseTexture?this.addBaseTextureAt(e[i].castToBaseTexture(),i):e[i]instanceof Zl?this.addResourceAt(e[i],i):this.addResourceAt(dw(e[i],t),i))}dispose(){for(let e=0,t=this.length;e<t;e++)this.items[e].destroy();this.items=null,this.itemDirtyIds=null,this._load=null}addResourceAt(e,t){if(!this.items[t])throw new Error(`Index ${t} is out of bounds`);return e.valid&&!this.valid&&this.resize(e.width,e.height),this.items[t].setResource(e),this}bind(e){if(this.baseTexture!==null)throw new Error("Only one base texture per TextureArray is allowed");super.bind(e);for(let t=0;t<this.length;t++)this.items[t].parentTextureArray=e,this.items[t].on("update",e.update,e)}unbind(e){super.unbind(e);for(let t=0;t<this.length;t++)this.items[t].parentTextureArray=null,this.items[t].off("update",e.update,e)}load(){if(this._load)return this._load;const e=this.items.map(t=>t.resource).filter(t=>t).map(t=>t.load());return this._load=Promise.all(e).then(()=>{const{realWidth:t,realHeight:i}=this.items[0];return this.resize(t,i),this.update(),Promise.resolve(this)}),this._load}}class tP extends zw{constructor(e,t){const{width:i,height:s}=t||{};let r,o;Array.isArray(e)?(r=e,o=e.length):o=e,super(o,{width:i,height:s}),r&&this.initFromArray(r,t)}addBaseTextureAt(e,t){if(e.resource)this.addResourceAt(e.resource,t);else throw new Error("ArrayResource does not support RenderTexture");return this}bind(e){super.bind(e),e.target=Ia.TEXTURE_2D_ARRAY}upload(e,t,i){const{length:s,itemDirtyIds:r,items:o}=this,{gl:a}=e;i.dirtyId<0&&a.texImage3D(a.TEXTURE_2D_ARRAY,0,i.internalFormat,this._width,this._height,s,0,t.format,i.type,null);for(let c=0;c<s;c++){const l=o[c];r[c]<l.dirtyId&&(r[c]=l.dirtyId,l.valid&&a.texSubImage3D(a.TEXTURE_2D_ARRAY,0,0,0,c,l.resource.width,l.resource.height,1,t.format,i.type,l.resource.source))}return!0}}class iP extends mr{constructor(e){super(e)}static test(e){const{OffscreenCanvas:t}=globalThis;return t&&e instanceof t?!0:globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement}}const qw=class _l extends zw{constructor(e,t){const{width:i,height:s,autoLoad:r,linkBaseTexture:o}=t||{};if(e&&e.length!==_l.SIDES)throw new Error(`Invalid length. Got ${e.length}, expected 6`);super(6,{width:i,height:s});for(let a=0;a<_l.SIDES;a++)this.items[a].target=Ia.TEXTURE_CUBE_MAP_POSITIVE_X+a;this.linkBaseTexture=o!==!1,e&&this.initFromArray(e,t),r!==!1&&this.load()}bind(e){super.bind(e),e.target=Ia.TEXTURE_CUBE_MAP}addBaseTextureAt(e,t,i){if(i===void 0&&(i=this.linkBaseTexture),!this.items[t])throw new Error(`Index ${t} is out of bounds`);if(!this.linkBaseTexture||e.parentTextureArray||Object.keys(e._glTextures).length>0)if(e.resource)this.addResourceAt(e.resource,t);else throw new Error("CubeResource does not support copying of renderTexture.");else e.target=Ia.TEXTURE_CUBE_MAP_POSITIVE_X+t,e.parentTextureArray=this.baseTexture,this.items[t]=e;return e.valid&&!this.valid&&this.resize(e.realWidth,e.realHeight),this.items[t]=e,this}upload(e,t,i){const s=this.itemDirtyIds;for(let r=0;r<_l.SIDES;r++){const o=this.items[r];(s[r]<o.dirtyId||i.dirtyId<t.dirtyId)&&(o.valid&&o.resource?(o.resource.upload(e,o,i),s[r]=o.dirtyId):s[r]<-1&&(e.gl.texImage2D(o.target,0,i.internalFormat,t.realWidth,t.realHeight,0,t.format,i.type,null),s[r]=-1))}return!0}static test(e){return Array.isArray(e)&&e.length===_l.SIDES}};qw.SIDES=6;let nP=qw;class xa extends mr{constructor(e,t){t=t||{};let i,s,r;typeof e=="string"?(i=xa.EMPTY,s=e,r=!0):(i=e,s=null,r=!1),super(i),this.url=s,this.crossOrigin=t.crossOrigin??!0,this.alphaMode=typeof t.alphaMode=="number"?t.alphaMode:null,this.ownsImageBitmap=t.ownsImageBitmap??r,this._load=null,t.autoLoad!==!1&&this.load()}load(){return this._load?this._load:(this._load=new Promise(async(e,t)=>{if(this.url===null){e(this);return}try{const i=await Ve.ADAPTER.fetch(this.url,{mode:this.crossOrigin?"cors":"no-cors"});if(this.destroyed)return;const s=await i.blob();if(this.destroyed)return;const r=await createImageBitmap(s,{premultiplyAlpha:this.alphaMode===null||this.alphaMode===Ri.UNPACK?"premultiply":"none"});if(this.destroyed){r.close();return}this.source=r,this.update(),e(this)}catch(i){if(this.destroyed)return;t(i),this.onError.emit(i)}}),this._load)}upload(e,t,i){return this.source instanceof ImageBitmap?(typeof this.alphaMode=="number"&&(t.alphaMode=this.alphaMode),super.upload(e,t,i)):(this.load(),!1)}dispose(){this.ownsImageBitmap&&this.source instanceof ImageBitmap&&this.source.close(),super.dispose(),this._load=null}static test(e){return!!globalThis.createImageBitmap&&typeof ImageBitmap<"u"&&(typeof e=="string"||e instanceof ImageBitmap)}static get EMPTY(){return xa._EMPTY=xa._EMPTY??Ve.ADAPTER.createCanvas(0,0),xa._EMPTY}}const Qm=class _h extends mr{constructor(e,t){t=t||{},super(Ve.ADAPTER.createCanvas()),this._width=0,this._height=0,this.svg=e,this.scale=t.scale||1,this._overrideWidth=t.width,this._overrideHeight=t.height,this._resolve=null,this._crossorigin=t.crossorigin,this._load=null,t.autoLoad!==!1&&this.load()}load(){return this._load?this._load:(this._load=new Promise(e=>{if(this._resolve=()=>{this.update(),e(this)},_h.SVG_XML.test(this.svg.trim())){if(!btoa)throw new Error("Your browser doesn't support base64 conversions.");this.svg=`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(this.svg)))}`}this._loadSvg()}),this._load)}_loadSvg(){const e=new Image;mr.crossOrigin(e,this.svg,this._crossorigin),e.src=this.svg,e.onerror=t=>{this._resolve&&(e.onerror=null,this.onError.emit(t))},e.onload=()=>{if(!this._resolve)return;const t=e.width,i=e.height;if(!t||!i)throw new Error("The SVG image must have width and height defined (in pixels), canvas API needs them.");let s=t*this.scale,r=i*this.scale;(this._overrideWidth||this._overrideHeight)&&(s=this._overrideWidth||this._overrideHeight/i*t,r=this._overrideHeight||this._overrideWidth/t*i),s=Math.round(s),r=Math.round(r);const o=this.source;o.width=s,o.height=r,o._pixiId=`canvas_${Bo()}`,o.getContext("2d").drawImage(e,0,0,t,i,0,0,s,r),this._resolve(),this._resolve=null}}static getSize(e){const t=_h.SVG_SIZE.exec(e),i={};return t&&(i[t[1]]=Math.round(parseFloat(t[3])),i[t[5]]=Math.round(parseFloat(t[7]))),i}dispose(){super.dispose(),this._resolve=null,this._crossorigin=null}static test(e,t){return t==="svg"||typeof e=="string"&&e.startsWith("data:image/svg+xml")||typeof e=="string"&&_h.SVG_XML.test(e)}};Qm.SVG_XML=/^(<\?xml[^?]+\?>)?\s*(<!--[^(-->)]*-->)?\s*\<svg/m,Qm.SVG_SIZE=/<svg[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*(?:\s(width|height)=('|")(\d*(?:\.\d+)?)(?:px)?('|"))[^>]*>/i;let ep=Qm;class sP extends mr{constructor(e){super(e)}static test(e){return!!globalThis.VideoFrame&&e instanceof globalThis.VideoFrame}}const tp=class ip extends mr{constructor(e,t){if(t=t||{},!(e instanceof HTMLVideoElement)){const i=document.createElement("video");t.autoLoad!==!1&&i.setAttribute("preload","auto"),t.playsinline!==!1&&(i.setAttribute("webkit-playsinline",""),i.setAttribute("playsinline","")),t.muted===!0&&(i.setAttribute("muted",""),i.muted=!0),t.loop===!0&&i.setAttribute("loop",""),t.autoPlay!==!1&&i.setAttribute("autoplay",""),typeof e=="string"&&(e=[e]);const s=e[0].src||e[0];mr.crossOrigin(i,s,t.crossorigin);for(let r=0;r<e.length;++r){const o=document.createElement("source");let{src:a,mime:c}=e[r];if(a=a||e[r],a.startsWith("data:"))c=a.slice(5,a.indexOf(";"));else if(!a.startsWith("blob:")){const l=a.split("?").shift().toLowerCase(),h=l.slice(l.lastIndexOf(".")+1);c=c||ip.MIME_TYPES[h]||`video/${h}`}o.src=a,c&&(o.type=c),i.appendChild(o)}e=i}super(e),this.noSubImage=!0,this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=t.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=t.autoPlay!==!1,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._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),t.autoLoad!==!1&&this.load()}update(e=0){if(!this.destroyed){if(this._updateFPS){const t=nn.shared.elapsedMS*this.source.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-t)}(!this._updateFPS||this._msToNextUpdate<=0)&&(super.update(),this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0)}}_videoFrameRequestCallback(){this.update(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback)}load(){if(this._load)return this._load;const e=this.source;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._onCanPlay():(e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlay),e.addEventListener("error",this._onError,!0)),this._load=new Promise((t,i)=>{this.valid?t(this):(this._resolve=t,this._reject=i,e.load())}),this._load}_onError(e){this.source.removeEventListener("error",this._onError,!0),this.onError.emit(e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){const e=this.source;return!e.paused&&!e.ended}_isSourceReady(){return this.source.readyState>2}_onPlayStart(){this.valid||this._onCanPlay(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.update(),this._msToNextUpdate=0)}_onCanPlay(){const e=this.source;e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlay);const t=this.valid;this._msToNextUpdate=0,this.update(),this._msToNextUpdate=0,!t&&this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&e.play()}dispose(){this._configureAutoUpdate();const e=this.source;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._onCanPlay),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.dispose()}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.source.requestVideoFrameCallback?(this._isConnectedToTicker&&(nn.shared.remove(this.update,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.source.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(nn.shared.add(this.update,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.source.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(nn.shared.remove(this.update,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e,t){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement||ip.TYPES.includes(t)}};tp.TYPES=["mp4","m4v","webm","ogg","ogv","h264","avi","mov"],tp.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};let Kw=tp;Xm.push(xa,Sw,iP,Kw,sP,ep,td,nP,tP);class Ql{constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.rect=null,this.updateID=-1}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}clear(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}getRectangle(e){return this.minX>this.maxX||this.minY>this.maxY?dt.EMPTY:(e=e||new dt(0,0,1,1),e.x=this.minX,e.y=this.minY,e.width=this.maxX-this.minX,e.height=this.maxY-this.minY,e)}addPoint(e){this.minX=Math.min(this.minX,e.x),this.maxX=Math.max(this.maxX,e.x),this.minY=Math.min(this.minY,e.y),this.maxY=Math.max(this.maxY,e.y)}addPointMatrix(e,t){const{a:i,b:s,c:r,d:o,tx:a,ty:c}=e,l=i*t.x+r*t.y+a,h=s*t.x+o*t.y+c;this.minX=Math.min(this.minX,l),this.maxX=Math.max(this.maxX,l),this.minY=Math.min(this.minY,h),this.maxY=Math.max(this.maxY,h)}addQuad(e){let t=this.minX,i=this.minY,s=this.maxX,r=this.maxY,o=e[0],a=e[1];t=o<t?o:t,i=a<i?a:i,s=o>s?o:s,r=a>r?a:r,o=e[2],a=e[3],t=o<t?o:t,i=a<i?a:i,s=o>s?o:s,r=a>r?a:r,o=e[4],a=e[5],t=o<t?o:t,i=a<i?a:i,s=o>s?o:s,r=a>r?a:r,o=e[6],a=e[7],t=o<t?o:t,i=a<i?a:i,s=o>s?o:s,r=a>r?a:r,this.minX=t,this.minY=i,this.maxX=s,this.maxY=r}addFrame(e,t,i,s,r){this.addFrameMatrix(e.worldTransform,t,i,s,r)}addFrameMatrix(e,t,i,s,r){const o=e.a,a=e.b,c=e.c,l=e.d,h=e.tx,u=e.ty;let d=this.minX,f=this.minY,m=this.maxX,p=this.maxY,g=o*t+c*i+h,v=a*t+l*i+u;d=g<d?g:d,f=v<f?v:f,m=g>m?g:m,p=v>p?v:p,g=o*s+c*i+h,v=a*s+l*i+u,d=g<d?g:d,f=v<f?v:f,m=g>m?g:m,p=v>p?v:p,g=o*t+c*r+h,v=a*t+l*r+u,d=g<d?g:d,f=v<f?v:f,m=g>m?g:m,p=v>p?v:p,g=o*s+c*r+h,v=a*s+l*r+u,d=g<d?g:d,f=v<f?v:f,m=g>m?g:m,p=v>p?v:p,this.minX=d,this.minY=f,this.maxX=m,this.maxY=p}addVertexData(e,t,i){let s=this.minX,r=this.minY,o=this.maxX,a=this.maxY;for(let c=t;c<i;c+=2){const l=e[c],h=e[c+1];s=l<s?l:s,r=h<r?h:r,o=l>o?l:o,a=h>a?h:a}this.minX=s,this.minY=r,this.maxX=o,this.maxY=a}addVertices(e,t,i,s){this.addVerticesMatrix(e.worldTransform,t,i,s)}addVerticesMatrix(e,t,i,s,r=0,o=r){const a=e.a,c=e.b,l=e.c,h=e.d,u=e.tx,d=e.ty;let f=this.minX,m=this.minY,p=this.maxX,g=this.maxY;for(let v=i;v<s;v+=2){const b=t[v],y=t[v+1],x=a*b+l*y+u,_=h*y+c*b+d;f=Math.min(f,x-r),p=Math.max(p,x+r),m=Math.min(m,_-o),g=Math.max(g,_+o)}this.minX=f,this.minY=m,this.maxX=p,this.maxY=g}addBounds(e){const t=this.minX,i=this.minY,s=this.maxX,r=this.maxY;this.minX=e.minX<t?e.minX:t,this.minY=e.minY<i?e.minY:i,this.maxX=e.maxX>s?e.maxX:s,this.maxY=e.maxY>r?e.maxY:r}addBoundsMask(e,t){const i=e.minX>t.minX?e.minX:t.minX,s=e.minY>t.minY?e.minY:t.minY,r=e.maxX<t.maxX?e.maxX:t.maxX,o=e.maxY<t.maxY?e.maxY:t.maxY;if(i<=r&&s<=o){const a=this.minX,c=this.minY,l=this.maxX,h=this.maxY;this.minX=i<a?i:a,this.minY=s<c?s:c,this.maxX=r>l?r:l,this.maxY=o>h?o:h}}addBoundsMatrix(e,t){this.addFrameMatrix(t,e.minX,e.minY,e.maxX,e.maxY)}addBoundsArea(e,t){const i=e.minX>t.x?e.minX:t.x,s=e.minY>t.y?e.minY:t.y,r=e.maxX<t.x+t.width?e.maxX:t.x+t.width,o=e.maxY<t.y+t.height?e.maxY:t.y+t.height;if(i<=r&&s<=o){const a=this.minX,c=this.minY,l=this.maxX,h=this.maxY;this.minX=i<a?i:a,this.minY=s<c?s:c,this.maxX=r>l?r:l,this.maxY=o>h?o:h}}pad(e=0,t=e){this.isEmpty()||(this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t)}addFramePad(e,t,i,s,r,o){e-=r,t-=o,i+=r,s+=o,this.minX=this.minX<e?this.minX:e,this.maxX=this.maxX>i?this.maxX:i,this.minY=this.minY<t?this.minY:t,this.maxY=this.maxY>s?this.maxY:s}}class ai extends pc{constructor(){super(),this.tempDisplayObjectParent=null,this.transform=new Eg,this.alpha=1,this.visible=!0,this.renderable=!0,this.cullable=!1,this.cullArea=null,this.parent=null,this.worldAlpha=1,this._lastSortedIndex=0,this._zIndex=0,this.filterArea=null,this.filters=null,this._enabledFilters=null,this._bounds=new Ql,this._localBounds=null,this._boundsID=0,this._boundsRect=null,this._localBoundsRect=null,this._mask=null,this._maskRefCount=0,this._destroyed=!1,this.isSprite=!1,this.isMask=!1}static mixin(e){const t=Object.keys(e);for(let i=0;i<t.length;++i){const s=t[i];Object.defineProperty(ai.prototype,s,Object.getOwnPropertyDescriptor(e,s))}}get destroyed(){return this._destroyed}_recursivePostUpdateTransform(){this.parent?(this.parent._recursivePostUpdateTransform(),this.transform.updateTransform(this.parent.transform)):this.transform.updateTransform(this._tempDisplayObjectParent.transform)}updateTransform(){this._boundsID++,this.transform.updateTransform(this.parent.transform),this.worldAlpha=this.alpha*this.parent.worldAlpha}getBounds(e,t){return e||(this.parent?(this._recursivePostUpdateTransform(),this.updateTransform()):(this.parent=this._tempDisplayObjectParent,this.updateTransform(),this.parent=null)),this._bounds.updateID!==this._boundsID&&(this.calculateBounds(),this._bounds.updateID=this._boundsID),t||(this._boundsRect||(this._boundsRect=new dt),t=this._boundsRect),this._bounds.getRectangle(t)}getLocalBounds(e){e||(this._localBoundsRect||(this._localBoundsRect=new dt),e=this._localBoundsRect),this._localBounds||(this._localBounds=new Ql);const t=this.transform,i=this.parent;this.parent=null,this._tempDisplayObjectParent.worldAlpha=(i==null?void 0:i.worldAlpha)??1,this.transform=this._tempDisplayObjectParent.transform;const s=this._bounds,r=this._boundsID;this._bounds=this._localBounds;const o=this.getBounds(!1,e);return this.parent=i,this.transform=t,this._bounds=s,this._bounds.updateID+=this._boundsID-r,o}toGlobal(e,t,i=!1){return i||(this._recursivePostUpdateTransform(),this.parent?this.displayObjectUpdateTransform():(this.parent=this._tempDisplayObjectParent,this.displayObjectUpdateTransform(),this.parent=null)),this.worldTransform.apply(e,t)}toLocal(e,t,i,s){return t&&(e=t.toGlobal(e,i,s)),s||(this._recursivePostUpdateTransform(),this.parent?this.displayObjectUpdateTransform():(this.parent=this._tempDisplayObjectParent,this.displayObjectUpdateTransform(),this.parent=null)),this.worldTransform.applyInverse(e,i)}setParent(e){if(!e||!e.addChild)throw new Error("setParent: Argument must be a Container");return e.addChild(this),e}removeFromParent(){var e;(e=this.parent)==null||e.removeChild(this)}setTransform(e=0,t=0,i=1,s=1,r=0,o=0,a=0,c=0,l=0){return this.position.x=e,this.position.y=t,this.scale.x=i||1,this.scale.y=s||1,this.rotation=r,this.skew.x=o,this.skew.y=a,this.pivot.x=c,this.pivot.y=l,this}destroy(e){this.removeFromParent(),this._destroyed=!0,this.transform=null,this.parent=null,this._bounds=null,this.mask=null,this.cullArea=null,this.filters=null,this.filterArea=null,this.hitArea=null,this.eventMode="auto",this.interactiveChildren=!1,this.emit("destroyed"),this.removeAllListeners()}get _tempDisplayObjectParent(){return this.tempDisplayObjectParent===null&&(this.tempDisplayObjectParent=new rP),this.tempDisplayObjectParent}enableTempParent(){const e=this.parent;return this.parent=this._tempDisplayObjectParent,e}disableTempParent(e){this.parent=e}get x(){return this.position.x}set x(e){this.transform.position.x=e}get y(){return this.position.y}set y(e){this.transform.position.y=e}get worldTransform(){return this.transform.worldTransform}get localTransform(){return this.transform.localTransform}get position(){return this.transform.position}set position(e){this.transform.position.copyFrom(e)}get scale(){return this.transform.scale}set scale(e){this.transform.scale.copyFrom(e)}get pivot(){return this.transform.pivot}set pivot(e){this.transform.pivot.copyFrom(e)}get skew(){return this.transform.skew}set skew(e){this.transform.skew.copyFrom(e)}get rotation(){return this.transform.rotation}set rotation(e){this.transform.rotation=e}get angle(){return this.transform.rotation*ZI}set angle(e){this.transform.rotation=e*QI}get zIndex(){return this._zIndex}set zIndex(e){this._zIndex!==e&&(this._zIndex=e,this.parent&&(this.parent.sortDirty=!0))}get worldVisible(){let e=this;do{if(!e.visible)return!1;e=e.parent}while(e);return!0}get mask(){return this._mask}set mask(e){if(this._mask!==e){if(this._mask){const t=this._mask.isMaskData?this._mask.maskObject:this._mask;t&&(t._maskRefCount--,t._maskRefCount===0&&(t.renderable=!0,t.isMask=!1))}if(this._mask=e,this._mask){const t=this._mask.isMaskData?this._mask.maskObject:this._mask;t&&(t._maskRefCount===0&&(t.renderable=!1,t.isMask=!0),t._maskRefCount++)}}}}class rP extends ai{constructor(){super(...arguments),this.sortDirty=null}}ai.prototype.displayObjectUpdateTransform=ai.prototype.updateTransform;const oP=new Bt;function aP(n,e){return n.zIndex===e.zIndex?n._lastSortedIndex-e._lastSortedIndex:n.zIndex-e.zIndex}const Jw=class np extends ai{constructor(){super(),this.children=[],this.sortableChildren=np.defaultSortableChildren,this.sortDirty=!1}onChildrenChange(e){}addChild(...e){if(e.length>1)for(let t=0;t<e.length;t++)this.addChild(e[t]);else{const t=e[0];t.parent&&t.parent.removeChild(t),t.parent=this,this.sortDirty=!0,t.transform._parentID=-1,this.children.push(t),this._boundsID++,this.onChildrenChange(this.children.length-1),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this)}return e[0]}addChildAt(e,t){if(t<0||t>this.children.length)throw new Error(`${e}addChildAt: The index ${t} supplied is out of bounds ${this.children.length}`);return e.parent&&e.parent.removeChild(e),e.parent=this,this.sortDirty=!0,e.transform._parentID=-1,this.children.splice(t,0,e),this._boundsID++,this.onChildrenChange(t),e.emit("added",this),this.emit("childAdded",e,this,t),e}swapChildren(e,t){if(e===t)return;const i=this.getChildIndex(e),s=this.getChildIndex(t);this.children[i]=t,this.children[s]=e,this.onChildrenChange(i<s?i:s)}getChildIndex(e){const t=this.children.indexOf(e);if(t===-1)throw new Error("The supplied DisplayObject must be a child of the caller");return t}setChildIndex(e,t){if(t<0||t>=this.children.length)throw new Error(`The index ${t} supplied is out of bounds ${this.children.length}`);const i=this.getChildIndex(e);Pa(this.children,i,1),this.children.splice(t,0,e),this.onChildrenChange(t)}getChildAt(e){if(e<0||e>=this.children.length)throw new Error(`getChildAt: Index (${e}) does not exist.`);return this.children[e]}removeChild(...e){if(e.length>1)for(let t=0;t<e.length;t++)this.removeChild(e[t]);else{const t=e[0],i=this.children.indexOf(t);if(i===-1)return null;t.parent=null,t.transform._parentID=-1,Pa(this.children,i,1),this._boundsID++,this.onChildrenChange(i),t.emit("removed",this),this.emit("childRemoved",t,this,i)}return e[0]}removeChildAt(e){const t=this.getChildAt(e);return t.parent=null,t.transform._parentID=-1,Pa(this.children,e,1),this._boundsID++,this.onChildrenChange(e),t.emit("removed",this),this.emit("childRemoved",t,this,e),t}removeChildren(e=0,t=this.children.length){const i=e,s=t,r=s-i;let o;if(r>0&&r<=s){o=this.children.splice(i,r);for(let a=0;a<o.length;++a)o[a].parent=null,o[a].transform&&(o[a].transform._parentID=-1);this._boundsID++,this.onChildrenChange(e);for(let a=0;a<o.length;++a)o[a].emit("removed",this),this.emit("childRemoved",o[a],this,a);return o}else if(r===0&&this.children.length===0)return[];throw new RangeError("removeChildren: numeric values are outside the acceptable range.")}sortChildren(){let e=!1;for(let t=0,i=this.children.length;t<i;++t){const s=this.children[t];s._lastSortedIndex=t,!e&&s.zIndex!==0&&(e=!0)}e&&this.children.length>1&&this.children.sort(aP),this.sortDirty=!1}updateTransform(){this.sortableChildren&&this.sortDirty&&this.sortChildren(),this._boundsID++,this.transform.updateTransform(this.parent.transform),this.worldAlpha=this.alpha*this.parent.worldAlpha;for(let e=0,t=this.children.length;e<t;++e){const i=this.children[e];i.visible&&i.updateTransform()}}calculateBounds(){this._bounds.clear(),this._calculateBounds();for(let e=0;e<this.children.length;e++){const t=this.children[e];if(!(!t.visible||!t.renderable))if(t.calculateBounds(),t._mask){const i=t._mask.isMaskData?t._mask.maskObject:t._mask;i?(i.calculateBounds(),this._bounds.addBoundsMask(t._bounds,i._bounds)):this._bounds.addBounds(t._bounds)}else t.filterArea?this._bounds.addBoundsArea(t._bounds,t.filterArea):this._bounds.addBounds(t._bounds)}this._bounds.updateID=this._boundsID}getLocalBounds(e,t=!1){const i=super.getLocalBounds(e);if(!t)for(let s=0,r=this.children.length;s<r;++s){const o=this.children[s];o.visible&&o.updateTransform()}return i}_calculateBounds(){}_renderWithCulling(e){const t=e.renderTexture.sourceFrame;if(!(t.width>0&&t.height>0))return;let i,s;this.cullArea?(i=this.cullArea,s=this.worldTransform):this._render!==np.prototype._render&&(i=this.getBounds(!0));const r=e.projection.transform;if(r&&(s?(s=oP.copyFrom(s),s.prepend(r)):s=r),i&&t.intersects(i,s))this._render(e);else if(this.cullArea)return;for(let o=0,a=this.children.length;o<a;++o){const c=this.children[o],l=c.cullable;c.cullable=l||!this.cullArea,c.render(e),c.cullable=l}}render(e){var t;if(!(!this.visible||this.worldAlpha<=0||!this.renderable))if(this._mask||(t=this.filters)!=null&&t.length)this.renderAdvanced(e);else if(this.cullable)this._renderWithCulling(e);else{this._render(e);for(let i=0,s=this.children.length;i<s;++i)this.children[i].render(e)}}renderAdvanced(e){var r,o,a;const t=this.filters,i=this._mask;if(t){this._enabledFilters||(this._enabledFilters=[]),this._enabledFilters.length=0;for(let c=0;c<t.length;c++)t[c].enabled&&this._enabledFilters.push(t[c])}const s=t&&((r=this._enabledFilters)==null?void 0:r.length)||i&&(!i.isMaskData||i.enabled&&(i.autoDetect||i.type!==Si.NONE));if(s&&e.batch.flush(),t&&((o=this._enabledFilters)!=null&&o.length)&&e.filter.push(this,this._enabledFilters),i&&e.mask.push(this,this._mask),this.cullable)this._renderWithCulling(e);else{this._render(e);for(let c=0,l=this.children.length;c<l;++c)this.children[c].render(e)}s&&e.batch.flush(),i&&e.mask.pop(this),t&&((a=this._enabledFilters)!=null&&a.length)&&e.filter.pop()}_render(e){}destroy(e){super.destroy(),this.sortDirty=!1;const t=typeof e=="boolean"?e:e==null?void 0:e.children,i=this.removeChildren(0,this.children.length);if(t)for(let s=0;s<i.length;++s)i[s].destroy(e)}get width(){return this.scale.x*this.getLocalBounds().width}set width(e){const t=this.getLocalBounds().width;t!==0?this.scale.x=e/t:this.scale.x=1,this._width=e}get height(){return this.scale.y*this.getLocalBounds().height}set height(e){const t=this.getLocalBounds().height;t!==0?this.scale.y=e/t:this.scale.y=1,this._height=e}};Jw.defaultSortableChildren=!1;let Mi=Jw;Mi.prototype.containerUpdateTransform=Mi.prototype.updateTransform;Object.defineProperties(Ve,{SORTABLE_CHILDREN:{get(){return Mi.defaultSortableChildren},set(n){pt("7.1.0","settings.SORTABLE_CHILDREN is deprecated, use Container.defaultSortableChildren"),Mi.defaultSortableChildren=n}}});const fl=new Tt,lP=new Uint16Array([0,1,2,0,2,3]);class to extends Mi{constructor(e){super(),this._anchor=new Js(this._onAnchorUpdate,this,e?e.defaultAnchor.x:0,e?e.defaultAnchor.y:0),this._texture=null,this._width=0,this._height=0,this._tintColor=new kt(16777215),this._tintRGB=null,this.tint=16777215,this.blendMode=Qe.NORMAL,this._cachedTint=16777215,this.uvs=null,this.texture=e||it.EMPTY,this.vertexData=new Float32Array(8),this.vertexTrimmedData=null,this._transformID=-1,this._textureID=-1,this._transformTrimmedID=-1,this._textureTrimmedID=-1,this.indices=lP,this.pluginName="batch",this.isSprite=!0,this._roundPixels=Ve.ROUND_PIXELS}_onTextureUpdate(){this._textureID=-1,this._textureTrimmedID=-1,this._cachedTint=16777215,this._width&&(this.scale.x=Vr(this.scale.x)*this._width/this._texture.orig.width),this._height&&(this.scale.y=Vr(this.scale.y)*this._height/this._texture.orig.height)}_onAnchorUpdate(){this._transformID=-1,this._transformTrimmedID=-1}calculateVertices(){const e=this._texture;if(this._transformID===this.transform._worldID&&this._textureID===e._updateID)return;this._textureID!==e._updateID&&(this.uvs=this._texture._uvs.uvsFloat32),this._transformID=this.transform._worldID,this._textureID=e._updateID;const t=this.transform.worldTransform,i=t.a,s=t.b,r=t.c,o=t.d,a=t.tx,c=t.ty,l=this.vertexData,h=e.trim,u=e.orig,d=this._anchor;let f=0,m=0,p=0,g=0;if(h?(m=h.x-d._x*u.width,f=m+h.width,g=h.y-d._y*u.height,p=g+h.height):(m=-d._x*u.width,f=m+u.width,g=-d._y*u.height,p=g+u.height),l[0]=i*m+r*g+a,l[1]=o*g+s*m+c,l[2]=i*f+r*g+a,l[3]=o*g+s*f+c,l[4]=i*f+r*p+a,l[5]=o*p+s*f+c,l[6]=i*m+r*p+a,l[7]=o*p+s*m+c,this._roundPixels){const v=Ve.RESOLUTION;for(let b=0;b<l.length;++b)l[b]=Math.round(l[b]*v)/v}}calculateTrimmedVertices(){if(!this.vertexTrimmedData)this.vertexTrimmedData=new Float32Array(8);else if(this._transformTrimmedID===this.transform._worldID&&this._textureTrimmedID===this._texture._updateID)return;this._transformTrimmedID=this.transform._worldID,this._textureTrimmedID=this._texture._updateID;const e=this._texture,t=this.vertexTrimmedData,i=e.orig,s=this._anchor,r=this.transform.worldTransform,o=r.a,a=r.b,c=r.c,l=r.d,h=r.tx,u=r.ty,d=-s._x*i.width,f=d+i.width,m=-s._y*i.height,p=m+i.height;if(t[0]=o*d+c*m+h,t[1]=l*m+a*d+u,t[2]=o*f+c*m+h,t[3]=l*m+a*f+u,t[4]=o*f+c*p+h,t[5]=l*p+a*f+u,t[6]=o*d+c*p+h,t[7]=l*p+a*d+u,this._roundPixels){const g=Ve.RESOLUTION;for(let v=0;v<t.length;++v)t[v]=Math.round(t[v]*g)/g}}_render(e){this.calculateVertices(),e.batch.setObjectRenderer(e.plugins[this.pluginName]),e.plugins[this.pluginName].render(this)}_calculateBounds(){const e=this._texture.trim,t=this._texture.orig;!e||e.width===t.width&&e.height===t.height?(this.calculateVertices(),this._bounds.addQuad(this.vertexData)):(this.calculateTrimmedVertices(),this._bounds.addQuad(this.vertexTrimmedData))}getLocalBounds(e){return this.children.length===0?(this._localBounds||(this._localBounds=new Ql),this._localBounds.minX=this._texture.orig.width*-this._anchor._x,this._localBounds.minY=this._texture.orig.height*-this._anchor._y,this._localBounds.maxX=this._texture.orig.width*(1-this._anchor._x),this._localBounds.maxY=this._texture.orig.height*(1-this._anchor._y),e||(this._localBoundsRect||(this._localBoundsRect=new dt),e=this._localBoundsRect),this._localBounds.getRectangle(e)):super.getLocalBounds.call(this,e)}containsPoint(e){this.worldTransform.applyInverse(e,fl);const t=this._texture.orig.width,i=this._texture.orig.height,s=-t*this.anchor.x;let r=0;return fl.x>=s&&fl.x<s+t&&(r=-i*this.anchor.y,fl.y>=r&&fl.y<r+i)}destroy(e){if(super.destroy(e),this._texture.off("update",this._onTextureUpdate,this),this._anchor=null,typeof e=="boolean"?e:e==null?void 0:e.texture){const t=typeof e=="boolean"?e:e==null?void 0:e.baseTexture;this._texture.destroy(!!t)}this._texture=null}static from(e,t){const i=e instanceof it?e:it.from(e,t);return new to(i)}set roundPixels(e){this._roundPixels!==e&&(this._transformID=-1,this._transformTrimmedID=-1),this._roundPixels=e}get roundPixels(){return this._roundPixels}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){const t=Vr(this.scale.x)||1;this.scale.x=t*e/this._texture.orig.width,this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){const t=Vr(this.scale.y)||1;this.scale.y=t*e/this._texture.orig.height,this._height=e}get anchor(){return this._anchor}set anchor(e){this._anchor.copyFrom(e)}get tint(){return this._tintColor.value}set tint(e){this._tintColor.setValue(e),this._tintRGB=this._tintColor.toLittleEndianNumber()}get tintValue(){return this._tintColor.toNumber()}get texture(){return this._texture}set texture(e){this._texture!==e&&(this._texture&&this._texture.off("update",this._onTextureUpdate,this),this._texture=e||it.EMPTY,this._cachedTint=16777215,this._textureID=-1,this._textureTrimmedID=-1,e&&(e.baseTexture.valid?this._onTextureUpdate():e.once("update",this._onTextureUpdate,this)))}}const Zw=new Bt;ai.prototype._cacheAsBitmap=!1;ai.prototype._cacheData=null;ai.prototype._cacheAsBitmapResolution=null;ai.prototype._cacheAsBitmapMultisample=null;class cP{constructor(){this.textureCacheId=null,this.originalRender=null,this.originalRenderCanvas=null,this.originalCalculateBounds=null,this.originalGetLocalBounds=null,this.originalUpdateTransform=null,this.originalDestroy=null,this.originalMask=null,this.originalFilterArea=null,this.originalContainsPoint=null,this.sprite=null}}Object.defineProperties(ai.prototype,{cacheAsBitmapResolution:{get(){return this._cacheAsBitmapResolution},set(n){n!==this._cacheAsBitmapResolution&&(this._cacheAsBitmapResolution=n,this.cacheAsBitmap&&(this.cacheAsBitmap=!1,this.cacheAsBitmap=!0))}},cacheAsBitmapMultisample:{get(){return this._cacheAsBitmapMultisample},set(n){n!==this._cacheAsBitmapMultisample&&(this._cacheAsBitmapMultisample=n,this.cacheAsBitmap&&(this.cacheAsBitmap=!1,this.cacheAsBitmap=!0))}},cacheAsBitmap:{get(){return this._cacheAsBitmap},set(n){if(this._cacheAsBitmap===n)return;this._cacheAsBitmap=n;let e;n?(this._cacheData||(this._cacheData=new cP),e=this._cacheData,e.originalRender=this.render,e.originalRenderCanvas=this.renderCanvas,e.originalUpdateTransform=this.updateTransform,e.originalCalculateBounds=this.calculateBounds,e.originalGetLocalBounds=this.getLocalBounds,e.originalDestroy=this.destroy,e.originalContainsPoint=this.containsPoint,e.originalMask=this._mask,e.originalFilterArea=this.filterArea,this.render=this._renderCached,this.renderCanvas=this._renderCachedCanvas,this.destroy=this._cacheAsBitmapDestroy):(e=this._cacheData,e.sprite&&this._destroyCachedDisplayObject(),this.render=e.originalRender,this.renderCanvas=e.originalRenderCanvas,this.calculateBounds=e.originalCalculateBounds,this.getLocalBounds=e.originalGetLocalBounds,this.destroy=e.originalDestroy,this.updateTransform=e.originalUpdateTransform,this.containsPoint=e.originalContainsPoint,this._mask=e.originalMask,this.filterArea=e.originalFilterArea)}}});ai.prototype._renderCached=function(n){!this.visible||this.worldAlpha<=0||!this.renderable||(this._initCachedDisplayObject(n),this._cacheData.sprite.transform._worldID=this.transform._worldID,this._cacheData.sprite.worldAlpha=this.worldAlpha,this._cacheData.sprite._render(n))};ai.prototype._initCachedDisplayObject=function(n){var d,f;if((d=this._cacheData)!=null&&d.sprite)return;const e=this.alpha;this.alpha=1,n.batch.flush();const t=this.getLocalBounds(new dt,!0);if((f=this.filters)!=null&&f.length){const m=this.filters[0].padding;t.pad(m)}const i=this.cacheAsBitmapResolution||n.resolution;t.ceil(i),t.width=Math.max(t.width,1/i),t.height=Math.max(t.height,1/i);const s=n.renderTexture.current,r=n.renderTexture.sourceFrame.clone(),o=n.renderTexture.destinationFrame.clone(),a=n.projection.transform,c=jo.create({width:t.width,height:t.height,resolution:i,multisample:this.cacheAsBitmapMultisample??n.multisample}),l=`cacheAsBitmap_${Bo()}`;this._cacheData.textureCacheId=l,rt.addToCache(c.baseTexture,l),it.addToCache(c,l);const h=this.transform.localTransform.copyTo(Zw).invert().translate(-t.x,-t.y);this.render=this._cacheData.originalRender,n.render(this,{renderTexture:c,clear:!0,transform:h,skipUpdateTransform:!1}),n.framebuffer.blit(),n.projection.transform=a,n.renderTexture.bind(s,r,o),this.render=this._renderCached,this.updateTransform=this.displayObjectUpdateTransform,this.calculateBounds=this._calculateCachedBounds,this.getLocalBounds=this._getCachedLocalBounds,this._mask=null,this.filterArea=null,this.alpha=e;const u=new to(c);u.transform.worldTransform=this.transform.worldTransform,u.anchor.x=-(t.x/t.width),u.anchor.y=-(t.y/t.height),u.alpha=e,u._bounds=this._bounds,this._cacheData.sprite=u,this.transform._parentID=-1,this.parent?this.updateTransform():(this.enableTempParent(),this.updateTransform(),this.disableTempParent(null)),this.containsPoint=u.containsPoint.bind(u)};ai.prototype._renderCachedCanvas=function(n){!this.visible||this.worldAlpha<=0||!this.renderable||(this._initCachedDisplayObjectCanvas(n),this._cacheData.sprite.worldAlpha=this.worldAlpha,this._cacheData.sprite._renderCanvas(n))};ai.prototype._initCachedDisplayObjectCanvas=function(n){var h;if((h=this._cacheData)!=null&&h.sprite)return;const e=this.getLocalBounds(new dt,!0),t=this.alpha;this.alpha=1;const i=n.canvasContext.activeContext,s=n._projTransform,r=this.cacheAsBitmapResolution||n.resolution;e.ceil(r),e.width=Math.max(e.width,1/r),e.height=Math.max(e.height,1/r);const o=jo.create({width:e.width,height:e.height,resolution:r}),a=`cacheAsBitmap_${Bo()}`;this._cacheData.textureCacheId=a,rt.addToCache(o.baseTexture,a),it.addToCache(o,a);const c=Zw;this.transform.localTransform.copyTo(c),c.invert(),c.tx-=e.x,c.ty-=e.y,this.renderCanvas=this._cacheData.originalRenderCanvas,n.render(this,{renderTexture:o,clear:!0,transform:c,skipUpdateTransform:!1}),n.canvasContext.activeContext=i,n._projTransform=s,this.renderCanvas=this._renderCachedCanvas,this.updateTransform=this.displayObjectUpdateTransform,this.calculateBounds=this._calculateCachedBounds,this.getLocalBounds=this._getCachedLocalBounds,this._mask=null,this.filterArea=null,this.alpha=t;const l=new to(o);l.transform.worldTransform=this.transform.worldTransform,l.anchor.x=-(e.x/e.width),l.anchor.y=-(e.y/e.height),l.alpha=t,l._bounds=this._bounds,this._cacheData.sprite=l,this.transform._parentID=-1,this.parent?this.updateTransform():(this.parent=n._tempDisplayObjectParent,this.updateTransform(),this.parent=null),this.containsPoint=l.containsPoint.bind(l)};ai.prototype._calculateCachedBounds=function(){this._bounds.clear(),this._cacheData.sprite.transform._worldID=this.transform._worldID,this._cacheData.sprite._calculateBounds(),this._bounds.updateID=this._boundsID};ai.prototype._getCachedLocalBounds=function(){return this._cacheData.sprite.getLocalBounds(null)};ai.prototype._destroyCachedDisplayObject=function(){this._cacheData.sprite._texture.destroy(!0),this._cacheData.sprite=null,rt.removeFromCache(this._cacheData.textureCacheId),it.removeFromCache(this._cacheData.textureCacheId),this._cacheData.textureCacheId=null};ai.prototype._cacheAsBitmapDestroy=function(n){this.cacheAsBitmap=!1,this.destroy(n)};ai.prototype.name=null;Mi.prototype.getChildByName=function(n,e){for(let t=0,i=this.children.length;t<i;t++)if(this.children[t].name===n)return this.children[t];if(e)for(let t=0,i=this.children.length;t<i;t++){const s=this.children[t];if(!s.getChildByName)continue;const r=s.getChildByName(n,!0);if(r)return r}return null};ai.prototype.getGlobalPosition=function(n=new Tt,e=!1){return this.parent?this.parent.toGlobal(this.position,n,e):(n.x=this.position.x,n.y=this.position.y),n};var hP=`varying vec2 vTextureCoord;
uniform sampler2D uSampler;
uniform float uAlpha;
void main(void)
{
gl_FragColor = texture2D(uSampler, vTextureCoord) * uAlpha;
}
`;class uP extends tn{constructor(e=1){super(Q2,hP,{uAlpha:1}),this.alpha=e}get alpha(){return this.uniforms.uAlpha}set alpha(e){this.uniforms.uAlpha=e}}const dP={5:[.153388,.221461,.250301],7:[.071303,.131514,.189879,.214607],9:[.028532,.067234,.124009,.179044,.20236],11:[.0093,.028002,.065984,.121703,.175713,.198596],13:[.002406,.009255,.027867,.065666,.121117,.174868,.197641],15:[489e-6,.002403,.009246,.02784,.065602,.120999,.174697,.197448]},fP=["varying vec2 vBlurTexCoords[%size%];","uniform sampler2D uSampler;","void main(void)","{"," gl_FragColor = vec4(0.0);"," %blur%","}"].join(`
`);function mP(n){const e=dP[n],t=e.length;let i=fP,s="";const r="gl_FragColor += texture2D(uSampler, vBlurTexCoords[%index%]) * %value%;";let o;for(let a=0;a<n;a++){let c=r.replace("%index%",a.toString());o=a,a>=t&&(o=n-a-1),c=c.replace("%value%",e[o].toString()),s+=c,s+=`
`}return i=i.replace("%blur%",s),i=i.replace("%size%",n.toString()),i}const pP=`
attribute vec2 aVertexPosition;
uniform mat3 projectionMatrix;
uniform float strength;
varying vec2 vBlurTexCoords[%size%];
uniform vec4 inputSize;
uniform vec4 outputFrame;
vec4 filterVertexPosition( void )
{
vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;
return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);
}
vec2 filterTextureCoord( void )
{
return aVertexPosition * (outputFrame.zw * inputSize.zw);
}
void main(void)
{
gl_Position = filterVertexPosition();
vec2 textureCoord = filterTextureCoord();
%blur%
}`;function gP(n,e){const t=Math.ceil(n/2);let i=pP,s="",r;e?r="vBlurTexCoords[%index%] = textureCoord + vec2(%sampleIndex% * strength, 0.0);":r="vBlurTexCoords[%index%] = textureCoord + vec2(0.0, %sampleIndex% * strength);";for(let o=0;o<n;o++){let a=r.replace("%index%",o.toString());a=a.replace("%sampleIndex%",`${o-(t-1)}.0`),s+=a,s+=`
`}return i=i.replace("%blur%",s),i=i.replace("%size%",n.toString()),i}class sp extends tn{constructor(e,t=8,i=4,s=tn.defaultResolution,r=5){const o=gP(r,e),a=mP(r);super(o,a),this.horizontal=e,this.resolution=s,this._quality=0,this.quality=i,this.blur=t}apply(e,t,i,s){if(i?this.horizontal?this.uniforms.strength=1/i.width*(i.width/t.width):this.uniforms.strength=1/i.height*(i.height/t.height):this.horizontal?this.uniforms.strength=1/e.renderer.width*(e.renderer.width/t.width):this.uniforms.strength=1/e.renderer.height*(e.renderer.height/t.height),this.uniforms.strength*=this.strength,this.uniforms.strength/=this.passes,this.passes===1)e.applyFilter(this,t,i,s);else{const r=e.getFilterTexture(),o=e.renderer;let a=t,c=r;this.state.blend=!1,e.applyFilter(this,a,c,ys.CLEAR);for(let l=1;l<this.passes-1;l++){e.bindAndClear(a,ys.BLIT),this.uniforms.uSampler=c;const h=c;c=a,a=h,o.shader.bind(this),o.geometry.draw(5)}this.state.blend=!0,e.applyFilter(this,c,i,s),e.returnFilterTexture(r)}}get blur(){return this.strength}set blur(e){this.padding=1+Math.abs(e)*2,this.strength=e}get quality(){return this._quality}set quality(e){this._quality=e,this.passes=e}}class vP extends tn{constructor(e=8,t=4,i=tn.defaultResolution,s=5){super(),this._repeatEdgePixels=!1,this.blurXFilter=new sp(!0,e,t,i,s),this.blurYFilter=new sp(!1,e,t,i,s),this.resolution=i,this.quality=t,this.blur=e,this.repeatEdgePixels=!1}apply(e,t,i,s){const r=Math.abs(this.blurXFilter.strength),o=Math.abs(this.blurYFilter.strength);if(r&&o){const a=e.getFilterTexture();this.blurXFilter.apply(e,t,a,ys.CLEAR),this.blurYFilter.apply(e,a,i,s),e.returnFilterTexture(a)}else o?this.blurYFilter.apply(e,t,i,s):this.blurXFilter.apply(e,t,i,s)}updatePadding(){this._repeatEdgePixels?this.padding=0:this.padding=Math.max(Math.abs(this.blurXFilter.strength),Math.abs(this.blurYFilter.strength))*2}get blur(){return this.blurXFilter.blur}set blur(e){this.blurXFilter.blur=this.blurYFilter.blur=e,this.updatePadding()}get quality(){return this.blurXFilter.quality}set quality(e){this.blurXFilter.quality=this.blurYFilter.quality=e}get blurX(){return this.blurXFilter.blur}set blurX(e){this.blurXFilter.blur=e,this.updatePadding()}get blurY(){return this.blurYFilter.blur}set blurY(e){this.blurYFilter.blur=e,this.updatePadding()}get blendMode(){return this.blurYFilter.blendMode}set blendMode(e){this.blurYFilter.blendMode=e}get repeatEdgePixels(){return this._repeatEdgePixels}set repeatEdgePixels(e){this._repeatEdgePixels=e,this.updatePadding()}}var yP=`varying vec2 vTextureCoord;
uniform sampler2D uSampler;
uniform float m[20];
uniform float uAlpha;
void main(void)
{
vec4 c = texture2D(uSampler, vTextureCoord);
if (uAlpha == 0.0) {
gl_FragColor = c;
return;
}
// Un-premultiply alpha before applying the color matrix. See issue #3539.
if (c.a > 0.0) {
c.rgb /= c.a;
}
vec4 result;
result.r = (m[0] * c.r);
result.r += (m[1] * c.g);
result.r += (m[2] * c.b);
result.r += (m[3] * c.a);
result.r += m[4];
result.g = (m[5] * c.r);
result.g += (m[6] * c.g);
result.g += (m[7] * c.b);
result.g += (m[8] * c.a);
result.g += m[9];
result.b = (m[10] * c.r);
result.b += (m[11] * c.g);
result.b += (m[12] * c.b);
result.b += (m[13] * c.a);
result.b += m[14];
result.a = (m[15] * c.r);
result.a += (m[16] * c.g);
result.a += (m[17] * c.b);
result.a += (m[18] * c.a);
result.a += m[19];
vec3 rgb = mix(c.rgb, result.rgb, uAlpha);
// Premultiply alpha again.
rgb *= result.a;
gl_FragColor = vec4(rgb, result.a);
}
`;class rp extends tn{constructor(){const e={m:new Float32Array([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]),uAlpha:1};super(Gw,yP,e),this.alpha=1}_loadMatrix(e,t=!1){let i=e;t&&(this._multiply(i,this.uniforms.m,e),i=this._colorMatrix(i)),this.uniforms.m=i}_multiply(e,t,i){return e[0]=t[0]*i[0]+t[1]*i[5]+t[2]*i[10]+t[3]*i[15],e[1]=t[0]*i[1]+t[1]*i[6]+t[2]*i[11]+t[3]*i[16],e[2]=t[0]*i[2]+t[1]*i[7]+t[2]*i[12]+t[3]*i[17],e[3]=t[0]*i[3]+t[1]*i[8]+t[2]*i[13]+t[3]*i[18],e[4]=t[0]*i[4]+t[1]*i[9]+t[2]*i[14]+t[3]*i[19]+t[4],e[5]=t[5]*i[0]+t[6]*i[5]+t[7]*i[10]+t[8]*i[15],e[6]=t[5]*i[1]+t[6]*i[6]+t[7]*i[11]+t[8]*i[16],e[7]=t[5]*i[2]+t[6]*i[7]+t[7]*i[12]+t[8]*i[17],e[8]=t[5]*i[3]+t[6]*i[8]+t[7]*i[13]+t[8]*i[18],e[9]=t[5]*i[4]+t[6]*i[9]+t[7]*i[14]+t[8]*i[19]+t[9],e[10]=t[10]*i[0]+t[11]*i[5]+t[12]*i[10]+t[13]*i[15],e[11]=t[10]*i[1]+t[11]*i[6]+t[12]*i[11]+t[13]*i[16],e[12]=t[10]*i[2]+t[11]*i[7]+t[12]*i[12]+t[13]*i[17],e[13]=t[10]*i[3]+t[11]*i[8]+t[12]*i[13]+t[13]*i[18],e[14]=t[10]*i[4]+t[11]*i[9]+t[12]*i[14]+t[13]*i[19]+t[14],e[15]=t[15]*i[0]+t[16]*i[5]+t[17]*i[10]+t[18]*i[15],e[16]=t[15]*i[1]+t[16]*i[6]+t[17]*i[11]+t[18]*i[16],e[17]=t[15]*i[2]+t[16]*i[7]+t[17]*i[12]+t[18]*i[17],e[18]=t[15]*i[3]+t[16]*i[8]+t[17]*i[13]+t[18]*i[18],e[19]=t[15]*i[4]+t[16]*i[9]+t[17]*i[14]+t[18]*i[19]+t[19],e}_colorMatrix(e){const t=new Float32Array(e);return t[4]/=255,t[9]/=255,t[14]/=255,t[19]/=255,t}brightness(e,t){const i=[e,0,0,0,0,0,e,0,0,0,0,0,e,0,0,0,0,0,1,0];this._loadMatrix(i,t)}tint(e,t){const[i,s,r]=kt.shared.setValue(e).toArray(),o=[i,0,0,0,0,0,s,0,0,0,0,0,r,0,0,0,0,0,1,0];this._loadMatrix(o,t)}greyscale(e,t){const i=[e,e,e,0,0,e,e,e,0,0,e,e,e,0,0,0,0,0,1,0];this._loadMatrix(i,t)}blackAndWhite(e){const t=[.3,.6,.1,0,0,.3,.6,.1,0,0,.3,.6,.1,0,0,0,0,0,1,0];this._loadMatrix(t,e)}hue(e,t){e=(e||0)/180*Math.PI;const i=Math.cos(e),s=Math.sin(e),r=Math.sqrt,o=1/3,a=r(o),c=i+(1-i)*o,l=o*(1-i)-a*s,h=o*(1-i)+a*s,u=o*(1-i)+a*s,d=i+o*(1-i),f=o*(1-i)-a*s,m=o*(1-i)-a*s,p=o*(1-i)+a*s,g=i+o*(1-i),v=[c,l,h,0,0,u,d,f,0,0,m,p,g,0,0,0,0,0,1,0];this._loadMatrix(v,t)}contrast(e,t){const i=(e||0)+1,s=-.5*(i-1),r=[i,0,0,0,s,0,i,0,0,s,0,0,i,0,s,0,0,0,1,0];this._loadMatrix(r,t)}saturate(e=0,t){const i=e*2/3+1,s=(i-1)*-.5,r=[i,s,s,0,0,s,i,s,0,0,s,s,i,0,0,0,0,0,1,0];this._loadMatrix(r,t)}desaturate(){this.saturate(-1)}negative(e){const t=[-1,0,0,1,0,0,-1,0,1,0,0,0,-1,1,0,0,0,0,1,0];this._loadMatrix(t,e)}sepia(e){const t=[.393,.7689999,.18899999,0,0,.349,.6859999,.16799999,0,0,.272,.5339999,.13099999,0,0,0,0,0,1,0];this._loadMatrix(t,e)}technicolor(e){const t=[1.9125277891456083,-.8545344976951645,-.09155508482755585,0,11.793603434377337,-.3087833385928097,1.7658908555458428,-.10601743074722245,0,-70.35205161461398,-.231103377548616,-.7501899197440212,1.847597816108189,0,30.950940869491138,0,0,0,1,0];this._loadMatrix(t,e)}polaroid(e){const t=[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0];this._loadMatrix(t,e)}toBGR(e){const t=[0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0];this._loadMatrix(t,e)}kodachrome(e){const t=[1.1285582396593525,-.3967382283601348,-.03992559172921793,0,63.72958762196502,-.16404339962244616,1.0835251566291304,-.05498805115633132,0,24.732407896706203,-.16786010706155763,-.5603416277695248,1.6014850761964943,0,35.62982807460946,0,0,0,1,0];this._loadMatrix(t,e)}browni(e){const t=[.5997023498159715,.34553243048391263,-.2708298674538042,0,47.43192855600873,-.037703249837783157,.8609577587992641,.15059552388459913,0,-36.96841498319127,.24113635128153335,-.07441037908422492,.44972182064877153,0,-7.562075277591283,0,0,0,1,0];this._loadMatrix(t,e)}vintage(e){const t=[.6279345635605994,.3202183420819367,-.03965408211312453,0,9.651285835294123,.02578397704808868,.6441188644374771,.03259127616149294,0,7.462829176470591,.0466055556782719,-.0851232987247891,.5241648018700465,0,5.159190588235296,0,0,0,1,0];this._loadMatrix(t,e)}colorTone(e,t,i,s,r){e=e||.2,t=t||.15,i=i||16770432,s=s||3375104;const o=kt.shared,[a,c,l]=o.setValue(i).toArray(),[h,u,d]=o.setValue(s).toArray(),f=[.3,.59,.11,0,0,a,c,l,e,0,h,u,d,t,0,a-h,c-u,l-d,0,0];this._loadMatrix(f,r)}night(e,t){e=e||.1;const i=[e*-2,-e,0,0,0,-e,0,e,0,0,0,e,e*2,0,0,0,0,0,1,0];this._loadMatrix(i,t)}predator(e,t){const i=[11.224130630493164*e,-4.794486999511719*e,-2.8746118545532227*e,0*e,.40342438220977783*e,-3.6330697536468506*e,9.193157196044922*e,-2.951810836791992*e,0*e,-1.316135048866272*e,-3.2184197902679443*e,-4.2375030517578125*e,7.476448059082031*e,0*e,.8044459223747253*e,0,0,0,1,0];this._loadMatrix(i,t)}lsd(e){const t=[2,-.4,.5,0,0,-.5,2,-.4,0,0,-.4,-.5,3,0,0,0,0,0,1,0];this._loadMatrix(t,e)}reset(){const e=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0];this._loadMatrix(e,!1)}get matrix(){return this.uniforms.m}set matrix(e){this.uniforms.m=e}get alpha(){return this.uniforms.uAlpha}set alpha(e){this.uniforms.uAlpha=e}}rp.prototype.grayscale=rp.prototype.greyscale;var bP=`varying vec2 vFilterCoord;
varying vec2 vTextureCoord;
uniform vec2 scale;
uniform mat2 rotation;
uniform sampler2D uSampler;
uniform sampler2D mapSampler;
uniform highp vec4 inputSize;
uniform vec4 inputClamp;
void main(void)
{
vec4 map = texture2D(mapSampler, vFilterCoord);
map -= 0.5;
map.xy = scale * inputSize.zw * (rotation * map.xy);
gl_FragColor = texture2D(uSampler, clamp(vec2(vTextureCoord.x + map.x, vTextureCoord.y + map.y), inputClamp.xy, inputClamp.zw));
}
`,xP=`attribute vec2 aVertexPosition;
uniform mat3 projectionMatrix;
uniform mat3 filterMatrix;
varying vec2 vTextureCoord;
varying vec2 vFilterCoord;
uniform vec4 inputSize;
uniform vec4 outputFrame;
vec4 filterVertexPosition( void )
{
vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;
return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);
}
vec2 filterTextureCoord( void )
{
return aVertexPosition * (outputFrame.zw * inputSize.zw);
}
void main(void)
{
gl_Position = filterVertexPosition();
vTextureCoord = filterTextureCoord();
vFilterCoord = ( filterMatrix * vec3( vTextureCoord, 1.0) ).xy;
}
`;class wP extends tn{constructor(e,t){const i=new Bt;e.renderable=!1,super(xP,bP,{mapSampler:e._texture,filterMatrix:i,scale:{x:1,y:1},rotation:new Float32Array([1,0,0,1])}),this.maskSprite=e,this.maskMatrix=i,t==null&&(t=20),this.scale=new Tt(t,t)}apply(e,t,i,s){this.uniforms.filterMatrix=e.calculateSpriteMatrix(this.maskMatrix,this.maskSprite),this.uniforms.scale.x=this.scale.x,this.uniforms.scale.y=this.scale.y;const r=this.maskSprite.worldTransform,o=Math.sqrt(r.a*r.a+r.b*r.b),a=Math.sqrt(r.c*r.c+r.d*r.d);o!==0&&a!==0&&(this.uniforms.rotation[0]=r.a/o,this.uniforms.rotation[1]=r.b/o,this.uniforms.rotation[2]=r.c/a,this.uniforms.rotation[3]=r.d/a),e.applyFilter(this,t,i,s)}get map(){return this.uniforms.mapSampler}set map(e){this.uniforms.mapSampler=e}}var SP=`varying vec2 v_rgbNW;
varying vec2 v_rgbNE;
varying vec2 v_rgbSW;
varying vec2 v_rgbSE;
varying vec2 v_rgbM;
varying vec2 vFragCoord;
uniform sampler2D uSampler;
uniform highp vec4 inputSize;
/**
Basic FXAA implementation based on the code on geeks3d.com with the
modification that the texture2DLod stuff was removed since it's
unsupported by WebGL.
--
From:
https://github.com/mitsuhiko/webgl-meincraft
Copyright (c) 2011 by Armin Ronacher.
Some rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* The names of the contributors may not be used to endorse or
promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef FXAA_REDUCE_MIN
#define FXAA_REDUCE_MIN (1.0/ 128.0)
#endif
#ifndef FXAA_REDUCE_MUL
#define FXAA_REDUCE_MUL (1.0 / 8.0)
#endif
#ifndef FXAA_SPAN_MAX
#define FXAA_SPAN_MAX 8.0
#endif
//optimized version for mobile, where dependent
//texture reads can be a bottleneck
vec4 fxaa(sampler2D tex, vec2 fragCoord, vec2 inverseVP,
vec2 v_rgbNW, vec2 v_rgbNE,
vec2 v_rgbSW, vec2 v_rgbSE,
vec2 v_rgbM) {
vec4 color;
vec3 rgbNW = texture2D(tex, v_rgbNW).xyz;
vec3 rgbNE = texture2D(tex, v_rgbNE).xyz;
vec3 rgbSW = texture2D(tex, v_rgbSW).xyz;
vec3 rgbSE = texture2D(tex, v_rgbSE).xyz;
vec4 texColor = texture2D(tex, v_rgbM);
vec3 rgbM = texColor.xyz;
vec3 luma = vec3(0.299, 0.587, 0.114);
float lumaNW = dot(rgbNW, luma);
float lumaNE = dot(rgbNE, luma);
float lumaSW = dot(rgbSW, luma);
float lumaSE = dot(rgbSE, luma);
float lumaM = dot(rgbM, luma);
float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
mediump vec2 dir;
dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));
float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) *
(0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);
float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);
dir = min(vec2(FXAA_SPAN_MAX, FXAA_SPAN_MAX),
max(vec2(-FXAA_SPAN_MAX, -FXAA_SPAN_MAX),
dir * rcpDirMin)) * inverseVP;
vec3 rgbA = 0.5 * (
texture2D(tex, fragCoord * inverseVP + dir * (1.0 / 3.0 - 0.5)).xyz +
texture2D(tex, fragCoord * inverseVP + dir * (2.0 / 3.0 - 0.5)).xyz);
vec3 rgbB = rgbA * 0.5 + 0.25 * (
texture2D(tex, fragCoord * inverseVP + dir * -0.5).xyz +
texture2D(tex, fragCoord * inverseVP + dir * 0.5).xyz);
float lumaB = dot(rgbB, luma);
if ((lumaB < lumaMin) || (lumaB > lumaMax))
color = vec4(rgbA, texColor.a);
else
color = vec4(rgbB, texColor.a);
return color;
}
void main() {
vec4 color;
color = fxaa(uSampler, vFragCoord, inputSize.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);
gl_FragColor = color;
}
`,_P=`
attribute vec2 aVertexPosition;
uniform mat3 projectionMatrix;
varying vec2 v_rgbNW;
varying vec2 v_rgbNE;
varying vec2 v_rgbSW;
varying vec2 v_rgbSE;
varying vec2 v_rgbM;
varying vec2 vFragCoord;
uniform vec4 inputSize;
uniform vec4 outputFrame;
vec4 filterVertexPosition( void )
{
vec2 position = aVertexPosition * max(outputFrame.zw, vec2(0.)) + outputFrame.xy;
return vec4((projectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);
}
void texcoords(vec2 fragCoord, vec2 inverseVP,
out vec2 v_rgbNW, out vec2 v_rgbNE,
out vec2 v_rgbSW, out vec2 v_rgbSE,
out vec2 v_rgbM) {
v_rgbNW = (fragCoord + vec2(-1.0, -1.0)) * inverseVP;
v_rgbNE = (fragCoord + vec2(1.0, -1.0)) * inverseVP;
v_rgbSW = (fragCoord + vec2(-1.0, 1.0)) * inverseVP;
v_rgbSE = (fragCoord + vec2(1.0, 1.0)) * inverseVP;
v_rgbM = vec2(fragCoord * inverseVP);
}
void main(void) {
gl_Position = filterVertexPosition();
vFragCoord = aVertexPosition * outputFrame.zw;
texcoords(vFragCoord, inputSize.zw, v_rgbNW, v_rgbNE, v_rgbSW, v_rgbSE, v_rgbM);
}
`;class TP extends tn{constructor(){super(_P,SP)}}var EP=`precision highp float;
varying vec2 vTextureCoord;
varying vec4 vColor;
uniform float uNoise;
uniform float uSeed;
uniform sampler2D uSampler;
float rand(vec2 co)
{
return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);
}
void main()
{
vec4 color = texture2D(uSampler, vTextureCoord);
float randomValue = rand(gl_FragCoord.xy * uSeed);
float diff = (randomValue - 0.5) * uNoise;
// Un-premultiply alpha before applying the color matrix. See issue #3539.
if (color.a > 0.0) {
color.rgb /= color.a;
}
color.r += diff;
color.g += diff;
color.b += diff;
// Premultiply alpha again.
color.rgb *= color.a;
gl_FragColor = color;
}
`;class CP extends tn{constructor(e=.5,t=Math.random()){super(Gw,EP,{uNoise:0,uSeed:0}),this.noise=e,this.seed=t}get noise(){return this.uniforms.uNoise}set noise(e){this.uniforms.uNoise=e}get seed(){return this.uniforms.uSeed}set seed(e){this.uniforms.uSeed=e}}const Iy={AlphaFilter:uP,BlurFilter:vP,BlurFilterPass:sp,ColorMatrixFilter:rp,DisplacementFilter:wP,FXAAFilter:TP,NoiseFilter:CP};Object.entries(Iy).forEach(([n,e])=>{Object.defineProperty(Iy,n,{get(){return pt("7.1.0",`filters.${n} has moved to ${n}`),e}})});class MP{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||(nn.system.add(this.tickerUpdate,this,Uo.INTERACTION),this.tickerAdded=!0)}removeTickerListener(){this.tickerAdded&&(nn.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}const e=this.events.rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY}))}tickerUpdate(e){this._deltaTime+=e,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this.update())}}const Nr=new MP;class gc{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=gc.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new Tt,this.page=new Tt,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,i){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,i,s,r){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}}class Qh extends gc{constructor(){super(...arguments),this.client=new Tt,this.movement=new Tt,this.offset=new Tt,this.global=new Tt,this.screen=new Tt}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,i){return e.worldTransform.applyInverse(i||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,i,s,r,o,a,c,l,h,u,d,f,m,p){throw new Error("Method not implemented.")}}class Yn extends Qh{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}class ka extends Qh{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}}ka.DOM_DELTA_PIXEL=0,ka.DOM_DELTA_LINE=1,ka.DOM_DELTA_PAGE=2;const AP=2048,IP=new Tt,jf=new Tt;class PP{constructor(e){this.dispatch=new pc,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((i,s)=>i.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;const t=this.mappingTable[e.type];if(t)for(let i=0,s=t.length;i<s;i++)t[i].fn(e);else console.warn(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){Nr.pauseUpdate=!0;const i=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",s=this[i](this.rootTarget,this.rootTarget.eventMode,IP.set(e,t),this.hitTestFn,this.hitPruneFn);return s&&s[0]}propagate(e,t){if(!e.target)return;const i=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let s=0,r=i.length-1;s<r;s++)if(e.currentTarget=i[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=i.length-2;s>=0;s--)if(e.currentTarget=i[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,i=this._allInteractiveElements){if(i.length===0)return;e.eventPhase=e.BUBBLING_PHASE;const s=Array.isArray(t)?t:[t];for(let r=i.length-1;r>=0;r--)s.forEach(o=>{e.currentTarget=i[r],this.notifyTarget(e,o)})}propagationPath(e){const t=[e];for(let i=0;i<AP&&e!==this.rootTarget;i++){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,i,s,r,o=!1){let a=!1;if(this._interactivePrune(e))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Nr.pauseUpdate=!1),e.interactiveChildren&&e.children){const h=e.children;for(let u=h.length-1;u>=0;u--){const d=h[u],f=this.hitTestMoveRecursive(d,this._isInteractive(t)?t:d.eventMode,i,s,r,o||r(e,i));if(f){if(f.length>0&&!f[f.length-1].parent)continue;const m=e.isInteractive();(f.length>0||m)&&(m&&this._allInteractiveElements.push(e),f.push(e)),this._hitElements.length===0&&(this._hitElements=f),a=!0}}}const c=this._isInteractive(t),l=e.isInteractive();return c&&l&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:c&&!r(e,i)&&s(e,i)?l?[e]:[]:null}hitTestRecursive(e,t,i,s,r){if(this._interactivePrune(e)||r(e,i))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Nr.pauseUpdate=!1),e.interactiveChildren&&e.children){const c=e.children;for(let l=c.length-1;l>=0;l--){const h=c[l],u=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,i,s,r);if(u){if(u.length>0&&!u[u.length-1].parent)continue;const d=e.isInteractive();return(u.length>0||d)&&u.push(e),u}}}const o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,i)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!!(!e||e.isMask||!e.visible||!e.renderable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren||e.isMask)}hitPruneFn(e,t){var i;if(e.hitArea&&(e.worldTransform.applyInverse(t,jf),!e.hitArea.contains(jf.x,jf.y)))return!0;if(e._mask){const s=e._mask.isMaskData?e._mask.maskObject:e._mask;if(s&&!((i=s.containsPoint)!=null&&i.call(s,t)))return!0}return!1}hitTestFn(e,t){return e.eventMode==="passive"?!1:e.hitArea?!0:e.containsPoint?e.containsPoint(t):!1}notifyTarget(e,t){var r,o;t=t??e.type;const i=`on${t}`;(o=(r=e.currentTarget)[i])==null||o.call(r,e);const 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 Yn)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}const t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){const s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}const i=this.trackingData(e.pointerId);i.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){var c,l;if(!(e instanceof Yn)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;const t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;const i=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),r=this.findMountedTarget(s.overTargets);if(((c=s.overTargets)==null?void 0:c.length)>0&&r!==t.target){const h=e.type==="mousemove"?"mouseout":"pointerout",u=this.createPointerEvent(e,h,r);if(this.dispatchEvent(u,"pointerout"),i&&this.dispatchEvent(u,"mouseout"),!t.composedPath().includes(r)){const d=this.createPointerEvent(e,"pointerleave",r);for(d.eventPhase=d.AT_TARGET;d.target&&!t.composedPath().includes(d.target);)d.currentTarget=d.target,this.notifyTarget(d),i&&this.notifyTarget(d,"mouseleave"),d.target=d.target.parent;this.freeEvent(d)}this.freeEvent(u)}if(r!==t.target){const h=e.type==="mousemove"?"mouseover":"pointerover",u=this.clonePointerEvent(t,h);this.dispatchEvent(u,"pointerover"),i&&this.dispatchEvent(u,"mouseover");let d=r==null?void 0:r.parent;for(;d&&d!==this.rootTarget.parent&&d!==t.target;)d=d.parent;if(!d||d===this.rootTarget.parent){const f=this.clonePointerEvent(t,"pointerenter");for(f.eventPhase=f.AT_TARGET;f.target&&f.target!==r&&f.target!==this.rootTarget.parent;)f.currentTarget=f.target,this.notifyTarget(f),i&&this.notifyTarget(f,"mouseenter"),f.target=f.target.parent;this.freeEvent(f)}this.freeEvent(u)}const 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")),i&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=(l=t.target)==null?void 0:l.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){var o;if(!(e instanceof Yn)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}const t=this.trackingData(e.pointerId),i=this.createPointerEvent(e),s=i.pointerType==="mouse"||i.pointerType==="pen";this.dispatchEvent(i,"pointerover"),s&&this.dispatchEvent(i,"mouseover"),i.pointerType==="mouse"&&(this.cursor=(o=i.target)==null?void 0:o.cursor);const r=this.clonePointerEvent(i,"pointerenter");for(r.eventPhase=r.AT_TARGET;r.target&&r.target!==this.rootTarget.parent;)r.currentTarget=r.target,this.notifyTarget(r),s&&this.notifyTarget(r,"mouseenter"),r.target=r.target.parent;t.overTargets=i.composedPath(),this.freeEvent(i),this.freeEvent(r)}mapPointerOut(e){if(!(e instanceof Yn)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}const t=this.trackingData(e.pointerId);if(t.overTargets){const i=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),r=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(r),i&&this.dispatchEvent(r,"mouseout");const 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),i&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(r),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof Yn)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}const t=performance.now(),i=this.createPointerEvent(e);if(this.dispatchEvent(i,"pointerup"),i.pointerType==="touch")this.dispatchEvent(i,"touchend");else if(i.pointerType==="mouse"||i.pointerType==="pen"){const a=i.button===2;this.dispatchEvent(i,a?"rightup":"mouseup")}const s=this.trackingData(e.pointerId),r=this.findMountedTarget(s.pressTargetsByButton[e.button]);let o=r;if(r&&!i.composedPath().includes(r)){let a=r;for(;a&&!i.composedPath().includes(a);){if(i.currentTarget=a,this.notifyTarget(i,"pointerupoutside"),i.pointerType==="touch")this.notifyTarget(i,"touchendoutside");else if(i.pointerType==="mouse"||i.pointerType==="pen"){const c=i.button===2;this.notifyTarget(i,c?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){const a=this.clonePointerEvent(i,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});const 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"){const 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(i)}mapPointerUpOutside(e){if(!(e instanceof Yn)){console.warn("EventBoundary cannot map a non-pointer event as a pointer event");return}const t=this.trackingData(e.pointerId),i=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(i){let r=i;for(;r;)s.currentTarget=r,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"),r=r.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof ka)){console.warn("EventBoundary cannot map a non-wheel event as a wheel event");return}const t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let i=1;i<e.length&&e[i].parent===t;i++)t=e[i];return t}createPointerEvent(e,t,i){const s=this.allocateEvent(Yn);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=i??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){const t=this.allocateEvent(ka);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){const i=this.allocateEvent(Yn);return i.nativeEvent=e.nativeEvent,i.originalEvent=e.originalEvent,this.copyPointerData(e,i),this.copyMouseData(e,i),this.copyData(e,i),i.target=e.target,i.path=e.composedPath().slice(),i.type=t??i.type,i}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof Yn&&t instanceof Yn&&(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)}copyMouseData(e,t){e instanceof Qh&&t instanceof Qh&&(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,[]);const t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,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!");const t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}notifyListeners(e,t){const i=e.currentTarget._events[t];if(i&&e.currentTarget.isInteractive())if("fn"in i)i.once&&e.currentTarget.removeListener(t,i.fn,void 0,!0),i.fn.call(i.context,e);else for(let s=0,r=i.length;s<r&&!e.propagationImmediatelyStopped;s++)i[s].once&&e.currentTarget.removeListener(t,i[s].fn,void 0,!0),i[s].fn.call(i[s].context,e)}}const RP=1,kP={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},op=class ap{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new PP(null),Nr.init(this),this.autoPreventDefault=!0,this.eventsAdded=!1,this.rootPointerEvent=new Yn(null),this.rootWheelEvent=new ka(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...ap.defaultEventFeatures},{set:(t,i,s)=>(i==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),t[i]=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){const{view:t,resolution:i}=this.renderer;this.setTargetElement(t),this.resolution=i,ap._defaultEventMode=e.eventMode??"auto",Object.assign(this.features,e.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=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;const i=this.cursorStyles[e];if(i)switch(typeof i){case"string":t&&(this.domElement.style.cursor=i);break;case"function":i(e);break;case"object":t&&Object.assign(this.domElement.style,i);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;const t=this.normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!("cancelable"in e))&&e.preventDefault();for(let i=0,s=t.length;i<s;i++){const r=t[i],o=this.bootstrapEvent(this.rootPointerEvent,r);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Nr.pointerMoved();const t=this.normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){const r=this.bootstrapEvent(this.rootPointerEvent,t[i]);this.rootBoundary.mapEvent(r)}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]);const i=t!==this.domElement?"outside":"",s=this.normalizeToPointerData(e);for(let r=0,o=s.length;r<o;r++){const a=this.bootstrapEvent(this.rootPointerEvent,s[r]);a.type+=i,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;const t=this.normalizeToPointerData(e);for(let i=0,s=t.length;i<s;i++){const r=this.bootstrapEvent(this.rootPointerEvent,t[i]);this.rootBoundary.mapEvent(r)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;const t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this.removeEvents(),this.domElement=e,Nr.domElement=e,this.addEvents()}addEvents(){if(this.eventsAdded||!this.domElement)return;Nr.addTickerListener();const 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;Nr.removeTickerListener();const e=this.domElement.style;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,i){const s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{width:this.domElement.width,height:this.domElement.height,left:0,top:0},r=1/this.resolution;e.x=(t-s.left)*(this.domElement.width/s.width)*r,e.y=(i-s.top)*(this.domElement.height/s.height)*r}normalizeToPointerData(e){const t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let i=0,s=e.changedTouches.length;i<s;i++){const r=e.changedTouches[i];typeof r.button>"u"&&(r.button=0),typeof r.buttons>"u"&&(r.buttons=1),typeof r.isPrimary>"u"&&(r.isPrimary=e.touches.length===1&&e.type==="touchstart"),typeof r.width>"u"&&(r.width=r.radiusX||1),typeof r.height>"u"&&(r.height=r.radiusY||1),typeof r.tiltX>"u"&&(r.tiltX=0),typeof r.tiltY>"u"&&(r.tiltY=0),typeof r.pointerType>"u"&&(r.pointerType="touch"),typeof r.pointerId>"u"&&(r.pointerId=r.identifier||0),typeof r.pressure>"u"&&(r.pressure=r.force||.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),typeof r.layerX>"u"&&(r.layerX=r.offsetX=r.clientX),typeof r.layerY>"u"&&(r.layerY=r.offsetY=r.clientY),r.isNormalized=!0,r.type=e.type,t.push(r)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){const i=e;typeof i.isPrimary>"u"&&(i.isPrimary=!0),typeof i.width>"u"&&(i.width=1),typeof i.height>"u"&&(i.height=1),typeof i.tiltX>"u"&&(i.tiltX=0),typeof i.tiltY>"u"&&(i.tiltY=0),typeof i.pointerType>"u"&&(i.pointerType="mouse"),typeof i.pointerId>"u"&&(i.pointerId=RP),typeof i.pressure>"u"&&(i.pressure=.5),typeof i.twist>"u"&&(i.twist=0),typeof i.tangentialPressure>"u"&&(i.tangentialPressure=0),i.isNormalized=!0,t.push(i)}else t.push(e);return t}normalizeWheelEvent(e){const 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=kP[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}};op.extension={name:"events",type:[$e.RendererSystem,$e.CanvasRendererSystem]},op.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};let lp=op;je.add(lp);function Py(n){return n==="dynamic"||n==="static"}const FP={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,_internalInteractive:void 0,get interactive(){return this._internalInteractive??Py(lp.defaultEventMode)},set interactive(n){pt("7.2.0","Setting interactive is deprecated, use eventMode = 'none'/'passive'/'auto'/'static'/'dynamic' instead."),this._internalInteractive=n,this.eventMode=n?"static":"auto"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??lp.defaultEventMode},set eventMode(n){this._internalInteractive=Py(n),this._internalEventMode=n},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(n,e,t){const i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof t=="object"?t.signal:void 0,r=typeof t=="object"?t.once===!0:!1,o=typeof e=="function"?void 0:e;n=i?`${n}capture`:n;const a=typeof e=="function"?e:e.handleEvent,c=this;s&&s.addEventListener("abort",()=>{c.off(n,a,o)}),r?c.once(n,a,o):c.on(n,a,o)},removeEventListener(n,e,t){const i=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;n=i?`${n}capture`:n,e=typeof e=="function"?e:e.handleEvent,this.off(n,e,s)},dispatchEvent(n){if(!(n instanceof gc))throw new Error("DisplayObject cannot propagate events outside of the Federated Events API");return n.defaultPrevented=!1,n.path=null,n.target=this,n.manager.dispatchEvent(n),!n.defaultPrevented}};ai.mixin(FP);const LP={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,_accessibleActive:!1,_accessibleDiv:null,accessibleType:"button",accessiblePointerEvents:"auto",accessibleChildren:!0,renderId:-1};ai.mixin(LP);const OP=9,Gc=100,$P=0,NP=0,Ry=2,ky=1,DP=-1e3,BP=-1e3,UP=2;class Qw{constructor(e){this.debug=!1,this._isActive=!1,this._isMobileAccessibility=!1,this.pool=[],this.renderId=0,this.children=[],this.androidUpdateCount=0,this.androidUpdateFrequency=500,this._hookDiv=null,(Ks.tablet||Ks.phone)&&this.createTouchHook();const t=document.createElement("div");t.style.width=`${Gc}px`,t.style.height=`${Gc}px`,t.style.position="absolute",t.style.top=`${$P}px`,t.style.left=`${NP}px`,t.style.zIndex=Ry.toString(),this.div=t,this.renderer=e,this._onKeyDown=this._onKeyDown.bind(this),this._onMouseMove=this._onMouseMove.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}createTouchHook(){const e=document.createElement("button");e.style.width=`${ky}px`,e.style.height=`${ky}px`,e.style.position="absolute",e.style.top=`${DP}px`,e.style.left=`${BP}px`,e.style.zIndex=UP.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(){var e;this._isActive||(this._isActive=!0,globalThis.document.addEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown,!1),this.renderer.on("postrender",this.update,this),(e=this.renderer.view.parentNode)==null||e.appendChild(this.div))}deactivate(){var e;!this._isActive||this._isMobileAccessibility||(this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.addEventListener("keydown",this._onKeyDown,!1),this.renderer.off("postrender",this.update),(e=this.div.parentNode)==null||e.removeChild(this.div))}updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&e.isInteractive()&&(e._accessibleActive||this.addChild(e),e.renderId=this.renderId);const t=e.children;if(t)for(let i=0;i<t.length;i++)this.updateAccessibleObjects(t[i])}update(){const e=performance.now();if(Ks.android.device&&e<this.androidUpdateCount||(this.androidUpdateCount=e+this.androidUpdateFrequency,!this.renderer.renderingToScreen))return;this.renderer.lastObjectRendered&&this.updateAccessibleObjects(this.renderer.lastObjectRendered);const{x:t,y:i,width:s,height:r}=this.renderer.view.getBoundingClientRect(),{width:o,height:a,resolution:c}=this.renderer,l=s/o*c,h=r/a*c;let u=this.div;u.style.left=`${t}px`,u.style.top=`${i}px`,u.style.width=`${o}px`,u.style.height=`${a}px`;for(let d=0;d<this.children.length;d++){const f=this.children[d];if(f.renderId!==this.renderId)f._accessibleActive=!1,Pa(this.children,d,1),this.div.removeChild(f._accessibleDiv),this.pool.push(f._accessibleDiv),f._accessibleDiv=null,d--;else{u=f._accessibleDiv;let m=f.hitArea;const p=f.worldTransform;f.hitArea?(u.style.left=`${(p.tx+m.x*p.a)*l}px`,u.style.top=`${(p.ty+m.y*p.d)*h}px`,u.style.width=`${m.width*p.a*l}px`,u.style.height=`${m.height*p.d*h}px`):(m=f.getBounds(),this.capHitArea(m),u.style.left=`${m.x*l}px`,u.style.top=`${m.y*h}px`,u.style.width=`${m.width*l}px`,u.style.height=`${m.height*h}px`,u.title!==f.accessibleTitle&&f.accessibleTitle!==null&&(u.title=f.accessibleTitle),u.getAttribute("aria-label")!==f.accessibleHint&&f.accessibleHint!==null&&u.setAttribute("aria-label",f.accessibleHint)),(f.accessibleTitle!==u.title||f.tabIndex!==u.tabIndex)&&(u.title=f.accessibleTitle,u.tabIndex=f.tabIndex,this.debug&&this.updateDebugHTML(u))}}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);const{width:t,height:i}=this.renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}addChild(e){let t=this.pool.pop();t||(t=document.createElement("button"),t.style.width=`${Gc}px`,t.style.height=`${Gc}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=Ry.toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`displayObject ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this.updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.displayObject=e,this.children.push(e),this.div.appendChild(e._accessibleDiv),e._accessibleDiv.tabIndex=e.tabIndex}_dispatchEvent(e,t){const{displayObject:i}=e.target,s=this.renderer.events.rootBoundary,r=Object.assign(new gc(s),{target:i});s.rootTarget=this.renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(r,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===OP&&this.activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this.deactivate()}destroy(){this.destroyTouchHook(),this.div=null,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),globalThis.removeEventListener("keydown",this._onKeyDown),this.pool=null,this.children=null,this.renderer=null}}Qw.extension={name:"accessibility",type:[$e.RendererPlugin,$e.CanvasRendererPlugin]};je.add(Qw);const eS=class cp{constructor(e){this.stage=new Mi,e=Object.assign({forceCanvas:!1},e),this.renderer=K2(e),cp._plugins.forEach(t=>{t.init.call(this,e)})}render(){this.renderer.render(this.stage)}get view(){var e;return(e=this.renderer)==null?void 0:e.view}get screen(){var e;return(e=this.renderer)==null?void 0:e.screen}destroy(e,t){const i=cp._plugins.slice(0);i.reverse(),i.forEach(s=>{s.destroy.call(this)}),this.stage.destroy(t),this.stage=null,this.renderer.destroy(e),this.renderer=null}};eS._plugins=[];let tS=eS;je.handleByList($e.Application,tS._plugins);class iS{static init(e){Object.defineProperty(this,"resizeTo",{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,i;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,i=globalThis.innerHeight;else{const{clientWidth:s,clientHeight:r}=this._resizeTo;t=s,i=r}this.renderer.resize(t,i),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}}iS.extension=$e.Application;je.add(iS);const Fy={loader:$e.LoadParser,resolver:$e.ResolveParser,cache:$e.CacheParser,detection:$e.DetectionParser};je.handle($e.Asset,n=>{const e=n.ref;Object.entries(Fy).filter(([t])=>!!e[t]).forEach(([t,i])=>je.add(Object.assign(e[t],{extension:e[t].extension??i})))},n=>{const e=n.ref;Object.keys(Fy).filter(t=>!!e[t]).forEach(t=>je.remove(e[t]))});class VP{constructor(e,t=!1){this._loader=e,this._assetList=[],this._isLoading=!1,this._maxConcurrent=1,this.verbose=t}add(e){e.forEach(t=>{this._assetList.push(t)}),this.verbose&&console.log("[BackgroundLoader] assets: ",this._assetList),this._isActive&&!this._isLoading&&this._next()}async _next(){if(this._assetList.length&&this._isActive){this._isLoading=!0;const e=[],t=Math.min(this._assetList.length,this._maxConcurrent);for(let i=0;i<t;i++)e.push(this._assetList.pop());await this._loader.load(e),this._isLoading=!1,this._next()}}get active(){return this._isActive}set active(e){this._isActive!==e&&(this._isActive=e,e&&!this._isLoading&&this._next())}}function el(n,e){if(Array.isArray(e)){for(const t of e)if(n.startsWith(`data:${t}`))return!0;return!1}return n.startsWith(`data:${e}`)}function un(n,e){const t=n.split("?")[0],i=di.extname(t).toLowerCase();return Array.isArray(e)?e.includes(i):i===e}const Hn=(n,e,t=!1)=>(Array.isArray(n)||(n=[n]),e?n.map(i=>typeof i=="string"||t?e(i):i):n),eu=(n,e)=>{const t=e.split("?")[1];return t&&(n+=`?${t}`),n};function nS(n,e,t,i,s){const r=e[t];for(let o=0;o<r.length;o++){const a=r[o];t<e.length-1?nS(n.replace(i[t],a),e,t+1,i,s):s.push(n.replace(i[t],a))}}function XP(n){const e=/\{(.*?)\}/g,t=n.match(e),i=[];if(t){const s=[];t.forEach(r=>{const o=r.substring(1,r.length-1).split(",");s.push(o)}),nS(n,s,0,t,i)}else i.push(n);return i}const tu=n=>!Array.isArray(n);class YP{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){const t=this._cache.get(e);return t||console.warn(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){const i=Hn(e);let s;for(let a=0;a<this.parsers.length;a++){const c=this.parsers[a];if(c.test(t)){s=c.getCacheableAssets(i,t);break}}s||(s={},i.forEach(a=>{s[a]=t}));const r=Object.keys(s),o={cacheKeys:r,keys:i};if(i.forEach(a=>{this._cacheMap.set(a,o)}),r.forEach(a=>{const c=s?s[a]:t;this._cache.has(a)&&this._cache.get(a)!==c&&console.warn("[Cache] already has key:",a),this._cache.set(a,s[a])}),t instanceof it){const a=t;i.forEach(c=>{a.baseTexture!==it.EMPTY.baseTexture&&rt.addToCache(a.baseTexture,c),it.addToCache(a,c)})}}remove(e){if(!this._cacheMap.has(e)){console.warn(`[Assets] Asset id ${e} was not found in the Cache`);return}const t=this._cacheMap.get(e);t.cacheKeys.forEach(i=>{this._cache.delete(i)}),t.keys.forEach(i=>{this._cacheMap.delete(i)})}get parsers(){return this._parsers}}const _o=new YP;class GP{constructor(){this._parsers=[],this._parsersValidated=!1,this.parsers=new Proxy(this._parsers,{set:(e,t,i)=>(this._parsersValidated=!1,e[t]=i,!0)}),this.promiseCache={}}reset(){this._parsersValidated=!1,this.promiseCache={}}_getLoadPromiseAndParser(e,t){const i={promise:null,parser:null};return i.promise=(async()=>{var o,a;let s=null,r=null;if(t.loadParser&&(r=this._parserHash[t.loadParser],r||console.warn(`[Assets] specified load parser "${t.loadParser}" not found while loading ${e}`)),!r){for(let c=0;c<this.parsers.length;c++){const l=this.parsers[c];if(l.load&&((o=l.test)!=null&&o.call(l,e,t,this))){r=l;break}}if(!r)return console.warn(`[Assets] ${e} could not be loaded as we don't know how to parse it, ensure the correct parser has been added`),null}s=await r.load(e,t,this),i.parser=r;for(let c=0;c<this.parsers.length;c++){const l=this.parsers[c];l.parse&&l.parse&&await((a=l.testParse)==null?void 0:a.call(l,s,t,this))&&(s=await l.parse(s,t,this)||s,i.parser=l)}return s})(),i}async load(e,t){this._parsersValidated||this._validateParsers();let i=0;const s={},r=tu(e),o=Hn(e,l=>({alias:[l],src:l})),a=o.length,c=o.map(async l=>{const h=di.toAbsolute(l.src);if(!s[l.src])try{this.promiseCache[h]||(this.promiseCache[h]=this._getLoadPromiseAndParser(h,l)),s[l.src]=await this.promiseCache[h].promise,t&&t(++i/a)}catch(u){throw delete this.promiseCache[h],delete s[l.src],new Error(`[Loader.load] Failed to load ${h}.
${u}`)}});return await Promise.all(c),r?s[o[0].src]:s}async unload(e){const t=Hn(e,i=>({alias:[i],src:i})).map(async i=>{var o,a;const s=di.toAbsolute(i.src),r=this.promiseCache[s];if(r){const c=await r.promise;delete this.promiseCache[s],(a=(o=r.parser)==null?void 0:o.unload)==null||a.call(o,c,i,this)}});await Promise.all(t)}_validateParsers(){this._parsersValidated=!0,this._parserHash=this._parsers.filter(e=>e.name).reduce((e,t)=>(e[t.name]&&console.warn(`[Assets] loadParser name conflict "${t.name}"`),{...e,[t.name]:t}),{})}}var _n=(n=>(n[n.Low=0]="Low",n[n.Normal=1]="Normal",n[n.High=2]="High",n))(_n||{});const HP=".json",jP="application/json",WP={extension:{type:$e.LoadParser,priority:_n.Low},name:"loadJson",test(n){return el(n,jP)||un(n,HP)},async load(n){return await(await Ve.ADAPTER.fetch(n)).json()}};je.add(WP);const zP=".txt",qP="text/plain",KP={name:"loadTxt",extension:{type:$e.LoadParser,priority:_n.Low},test(n){return el(n,qP)||un(n,zP)},async load(n){return await(await Ve.ADAPTER.fetch(n)).text()}};je.add(KP);const JP=["normal","bold","100","200","300","400","500","600","700","800","900"],ZP=[".ttf",".otf",".woff",".woff2"],QP=["font/ttf","font/otf","font/woff","font/woff2"],eR=/^(--|-?[A-Z_])[0-9A-Z_-]*$/i;function tR(n){const e=di.extname(n),t=di.basename(n,e).replace(/(-|_)/g," ").toLowerCase().split(" ").map(r=>r.charAt(0).toUpperCase()+r.slice(1));let i=t.length>0;for(const r of t)if(!r.match(eR)){i=!1;break}let s=t.join(" ");return i||(s=`"${s.replace(/[\\"]/g,"\\$&")}"`),s}const iR=/^[0-9A-Za-z%:/?#\[\]@!\$&'()\*\+,;=\-._~]*$/;function nR(n){return iR.test(n)?n:encodeURI(n)}const sR={extension:{type:$e.LoadParser,priority:_n.Low},name:"loadWebFont",test(n){return el(n,QP)||un(n,ZP)},async load(n,e){var i,s,r;const t=Ve.ADAPTER.getFontFaceSet();if(t){const o=[],a=((i=e.data)==null?void 0:i.family)??tR(n),c=((r=(s=e.data)==null?void 0:s.weights)==null?void 0:r.filter(h=>JP.includes(h)))??["normal"],l=e.data??{};for(let h=0;h<c.length;h++){const u=c[h],d=new FontFace(a,`url(${nR(n)})`,{...l,weight:u});await d.load(),t.add(d),o.push(d)}return o.length===1?o[0]:o}return console.warn("[loadWebFont] FontFace API is not supported. Skipping loading font"),null},unload(n){(Array.isArray(n)?n:[n]).forEach(e=>Ve.ADAPTER.getFontFaceSet().delete(e))}};je.add(sR);const rR=`(function() {
"use strict";
const WHITE_PNG = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=";
async function checkImageBitmap() {
try {
if (typeof createImageBitmap != "function")
return !1;
const imageBlob = await (await fetch(WHITE_PNG)).blob(), imageBitmap = await createImageBitmap(imageBlob);
return imageBitmap.width === 1 && imageBitmap.height === 1;
} catch {
return !1;
}
}
checkImageBitmap().then((result) => {
self.postMessage(result);
});
})();
`;let Fa=null,hp=class{constructor(){Fa||(Fa=URL.createObjectURL(new Blob([rR],{type:"application/javascript"}))),this.worker=new Worker(Fa)}};hp.revokeObjectURL=function(){Fa&&(URL.revokeObjectURL(Fa),Fa=null)};const oR=`(function() {
"use strict";
async function loadImageBitmap(url) {
const response = await fetch(url);
if (!response.ok)
throw new Error(\`[WorkerManager.loadImageBitmap] Failed to fetch \${url}: \${response.status} \${response.statusText}\`);
const imageBlob = await response.blob();
return await createImageBitmap(imageBlob);
}
self.onmessage = async (event) => {
try {
const imageBitmap = await loadImageBitmap(event.data.data[0]);
self.postMessage({
data: imageBitmap,
uuid: event.data.uuid,
id: event.data.id
}, [imageBitmap]);
} catch (e) {
self.postMessage({
error: e,
uuid: event.data.uuid,
id: event.data.id
});
}
};
})();
`;let La=null;class sS{constructor(){La||(La=URL.createObjectURL(new Blob([oR],{type:"application/javascript"}))),this.worker=new Worker(La)}}sS.revokeObjectURL=function(){La&&(URL.revokeObjectURL(La),La=null)};let Ly=0,Wf;class aR{constructor(){this._initialized=!1,this._createdWorkers=0,this.workerPool=[],this.queue=[],this.resolveHash={}}isImageBitmapSupported(){return this._isImageBitmapSupported!==void 0?this._isImageBitmapSupported:(this._isImageBitmapSupported=new Promise(e=>{const{worker:t}=new hp;t.addEventListener("message",i=>{t.terminate(),hp.revokeObjectURL(),e(i.data)})}),this._isImageBitmapSupported)}loadImageBitmap(e){return this._run("loadImageBitmap",[e])}async _initWorkers(){this._initialized||(this._initialized=!0)}getWorker(){Wf===void 0&&(Wf=navigator.hardwareConcurrency||4);let e=this.workerPool.pop();return!e&&this._createdWorkers<Wf&&(this._createdWorkers++,e=new sS().worker,e.addEventListener("message",t=>{this.complete(t.data),this.returnWorker(t.target),this.next()})),e}returnWorker(e){this.workerPool.push(e)}complete(e){e.error!==void 0?this.resolveHash[e.uuid].reject(e.error):this.resolveHash[e.uuid].resolve(e.data),this.resolveHash[e.uuid]=null}async _run(e,t){await this._initWorkers();const i=new Promise((s,r)=>{this.queue.push({id:e,arguments:t,resolve:s,reject:r})});return this.next(),i}next(){if(!this.queue.length)return;const e=this.getWorker();if(!e)return;const t=this.queue.pop(),i=t.id;this.resolveHash[Ly]={resolve:t.resolve,reject:t.reject},e.postMessage({data:t.arguments,uuid:Ly++,id:i})}}const Oy=new aR;function vc(n,e,t){n.resource.internal=!0;const i=new it(n),s=()=>{delete e.promiseCache[t],_o.has(t)&&_o.remove(t)};return i.baseTexture.once("destroyed",()=>{t in e.promiseCache&&(console.warn("[Assets] A BaseTexture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the BaseTexture."),s())}),i.once("destroyed",()=>{n.destroyed||(console.warn("[Assets] A Texture managed by Assets was destroyed instead of unloaded! Use Assets.unload() instead of destroying the Texture."),s())}),i}const lR=[".jpeg",".jpg",".png",".webp",".avif"],cR=["image/jpeg","image/png","image/webp","image/avif"];async function hR(n){const e=await Ve.ADAPTER.fetch(n);if(!e.ok)throw new Error(`[loadImageBitmap] Failed to fetch ${n}: ${e.status} ${e.statusText}`);const t=await e.blob();return await createImageBitmap(t)}const od={name:"loadTextures",extension:{type:$e.LoadParser,priority:_n.High},config:{preferWorkers:!0,preferCreateImageBitmap:!0,crossOrigin:"anonymous"},test(n){return el(n,cR)||un(n,lR)},async load(n,e,t){var a;const i=globalThis.createImageBitmap&&this.config.preferCreateImageBitmap;let s;i?this.config.preferWorkers&&await Oy.isImageBitmapSupported()?s=await Oy.loadImageBitmap(n):s=await hR(n):s=await new Promise((c,l)=>{const h=new Image;h.crossOrigin=this.config.crossOrigin,h.src=n,h.complete?c(h):(h.onload=()=>c(h),h.onerror=u=>l(u))});const r={...e.data};r.resolution??(r.resolution=fr(n)),i&&((a=r.resourceOptions)==null?void 0:a.ownsImageBitmap)===void 0&&(r.resourceOptions={...r.resourceOptions},r.resourceOptions.ownsImageBitmap=!0);const o=new rt(s,r);return o.resource.src=n,vc(o,t,n)},unload(n){n.destroy(!0)}};je.add(od);const uR=".svg",dR="image/svg+xml",fR={extension:{type:$e.LoadParser,priority:_n.High},name:"loadSVG",test(n){return el(n,dR)||un(n,uR)},async testParse(n){return ep.test(n)},async parse(n,e,t){var r;const i=new ep(n,(r=e==null?void 0:e.data)==null?void 0:r.resourceOptions);await i.load();const s=new rt(i,{resolution:fr(n),...e==null?void 0:e.data});return s.resource.src=e.src,vc(s,t,e.src)},async load(n,e){return(await Ve.ADAPTER.fetch(n)).text()},unload:od.unload};je.add(fR);const mR=[".mp4",".m4v",".webm",".ogv"],pR=["video/mp4","video/webm","video/ogg"],gR={name:"loadVideo",extension:{type:$e.LoadParser,priority:_n.High},config:{defaultAutoPlay:!0,defaultUpdateFPS:0,defaultLoop:!1,defaultMuted:!1,defaultPlaysinline:!0},test(n){return el(n,pR)||un(n,mR)},async load(n,e,t){var o;let i;const s=await(await Ve.ADAPTER.fetch(n)).blob(),r=URL.createObjectURL(s);try{const a={autoPlay:this.config.defaultAutoPlay,updateFPS:this.config.defaultUpdateFPS,loop:this.config.defaultLoop,muted:this.config.defaultMuted,playsinline:this.config.defaultPlaysinline,...(o=e==null?void 0:e.data)==null?void 0:o.resourceOptions,autoLoad:!0},c=new Kw(r,a);await c.load();const l=new rt(c,{alphaMode:await _I(),resolution:fr(n),...e==null?void 0:e.data});l.resource.src=n,i=vc(l,t,n),i.baseTexture.once("destroyed",()=>{URL.revokeObjectURL(r)})}catch(a){throw URL.revokeObjectURL(r),a}return i},unload(n){n.destroy(!0)}};je.add(gR);class vR{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{const t=e;this._defaultSearchParams=Object.keys(t).map(i=>`${encodeURIComponent(i)}=${encodeURIComponent(t[i])}`).join("&")}}getAlias(e){const{alias:t,name:i,src:s,srcs:r}=e;return Hn(t||i||s||r,o=>typeof o=="string"?o:Array.isArray(o)?o.map(a=>(a==null?void 0:a.src)??(a==null?void 0:a.srcs)??a):o!=null&&o.src||o!=null&&o.srcs?o.src??o.srcs:o,!0)}addManifest(e){this._manifest&&console.warn("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){const i=[];Array.isArray(t)?t.forEach(s=>{const r=s.src??s.srcs,o=s.alias??s.name;let a;if(typeof o=="string"){const c=this._createBundleAssetId(e,o);i.push(c),a=[o,c]}else{const c=o.map(l=>this._createBundleAssetId(e,l));i.push(...c),a=[...o,...c]}this.add({...s,alias:a,src:r})}):Object.keys(t).forEach(s=>{const r=[s,this._createBundleAssetId(e,s)];if(typeof t[s]=="string")this.add({alias:r,src:t[s]});else if(Array.isArray(t[s]))this.add({alias:r,src:t[s]});else{const o=t[s],a=o.src??o.srcs;this.add({...o,alias:r,src:Array.isArray(a)?a:[a]})}i.push(...r)}),this._bundles[e]=i}add(e,t,i,s,r){const o=[];typeof e=="string"||Array.isArray(e)&&typeof e[0]=="string"?(pt("7.2.0",`Assets.add now uses an object instead of individual parameters.
Please use Assets.add({ alias, src, data, format, loadParser }) instead.`),o.push({alias:e,src:t,data:i,format:s,loadParser:r})):Array.isArray(e)?o.push(...e):o.push(e);let a;a=c=>{this.hasKey(c)&&console.warn(`[Resolver] already has key: ${c} overwriting`)},Hn(o).forEach(c=>{const{src:l,srcs:h}=c;let{data:u,format:d,loadParser:f}=c;const m=Hn(l||h).map(v=>typeof v=="string"?XP(v):Array.isArray(v)?v:[v]),p=this.getAlias(c);Array.isArray(p)?p.forEach(a):a(p);const g=[];m.forEach(v=>{v.forEach(b=>{let y={};if(typeof b!="object"){y.src=b;for(let x=0;x<this._parsers.length;x++){const _=this._parsers[x];if(_.test(b)){y=_.parse(b);break}}}else u=b.data??u,d=b.format??d,f=b.loadParser??f,y={...y,...b};if(!p)throw new Error(`[Resolver] alias is undefined for this asset: ${y.src}`);y=this.buildResolvedAsset(y,{aliases:p,data:u,format:d,loadParser:f}),g.push(y)})}),p.forEach(v=>{this._assetMap[v]=g})})}resolveBundle(e){const t=tu(e);e=Hn(e);const i={};return e.forEach(s=>{const r=this._bundles[s];if(r){const o=this.resolve(r),a={};for(const c in o){const l=o[c];a[this._extractAssetIdFromBundle(s,c)]=l}i[s]=a}}),t?i[e[0]]:i}resolveUrl(e){const t=this.resolve(e);if(typeof e!="string"){const i={};for(const s in t)i[s]=t[s].src;return i}return t.src}resolve(e){const t=tu(e);e=Hn(e);const i={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let r=this._assetMap[s];const o=r[0],a=this._getPreferredOrder(r);a==null||a.priority.forEach(c=>{a.params[c].forEach(l=>{const h=r.filter(u=>u[c]?u[c]===l:!1);h.length&&(r=h)})}),this._resolverHash[s]=r[0]??o}else this._resolverHash[s]=this.buildResolvedAsset({alias:[s],src:s},{});i[s]=this._resolverHash[s]}),t?i[e[0]]:i}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;t<e.length;t++){const i=e[0],s=this._preferredOrder.find(r=>r.params.format.includes(i.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;const t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}buildResolvedAsset(e,t){const{aliases:i,data:s,loadParser:r,format:o}=t;return(this._basePath||this._rootPath)&&(e.src=di.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=i??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...s||{},...e.data},e.loadParser=r??e.loadParser,e.format=o??e.format??di.extname(e.src).slice(1),e.srcs=e.src,e.name=e.alias,e}}class yR{constructor(){this._detections=[],this._initialized=!1,this.resolver=new vR,this.loader=new GP,this.cache=_o,this._backgroundLoader=new VP(this.loader),this._backgroundLoader.active=!0,this.reset()}async init(e={}){var r,o;if(this._initialized){console.warn("[Assets]AssetManager already initialized, did you load before calling this Assets.init()?");return}if(this._initialized=!0,e.defaultSearchParams&&this.resolver.setDefaultSearchParams(e.defaultSearchParams),e.basePath&&(this.resolver.basePath=e.basePath),e.bundleIdentifier&&this.resolver.setBundleIdentifier(e.bundleIdentifier),e.manifest){let a=e.manifest;typeof a=="string"&&(a=await this.load(a)),this.resolver.addManifest(a)}const t=((r=e.texturePreference)==null?void 0:r.resolution)??1,i=typeof t=="number"?[t]:t,s=await this._detectFormats({preferredFormats:(o=e.texturePreference)==null?void 0:o.format,skipDetections:e.skipDetections,detections:this._detections});this.resolver.prefer({params:{format:s,resolution:i}}),e.preferences&&this.setPreferences(e.preferences)}add(e,t,i,s,r){this.resolver.add(e,t,i,s,r)}async load(e,t){this._initialized||await this.init();const i=tu(e),s=Hn(e).map(a=>{if(typeof a!="string"){const c=this.resolver.getAlias(a);return c.some(l=>!this.resolver.hasKey(l))&&this.add(a),Array.isArray(c)?c[0]:c}return this.resolver.hasKey(a)||this.add({alias:a,src:a}),a}),r=this.resolver.resolve(s),o=await this._mapLoadToResolve(r,t);return i?o[s[0]]:o}addBundle(e,t){this.resolver.addBundle(e,t)}async loadBundle(e,t){this._initialized||await this.init();let i=!1;typeof e=="string"&&(i=!0,e=[e]);const s=this.resolver.resolveBundle(e),r={},o=Object.keys(s);let a=0,c=0;const l=()=>{t==null||t(++a/c)},h=o.map(u=>{const d=s[u];return c+=Object.keys(d).length,this._mapLoadToResolve(d,l).then(f=>{r[u]=f})});return await Promise.all(h),i?r[e[0]]:r}async backgroundLoad(e){this._initialized||await this.init(),typeof e=="string"&&(e=[e]);const t=this.resolver.resolve(e);this._backgroundLoader.add(Object.values(t))}async backgroundLoadBundle(e){this._initialized||await this.init(),typeof e=="string"&&(e=[e]);const t=this.resolver.resolveBundle(e);Object.values(t).forEach(i=>{this._backgroundLoader.add(Object.values(i))})}reset(){this.resolver.reset(),this.loader.reset(),this.cache.reset(),this._initialized=!1}get(e){if(typeof e=="string")return _o.get(e);const t={};for(let i=0;i<e.length;i++)t[i]=_o.get(e[i]);return t}async _mapLoadToResolve(e,t){const i=Object.values(e),s=Object.keys(e);this._backgroundLoader.active=!1;const r=await this.loader.load(i,t);this._backgroundLoader.active=!0;const o={};return i.forEach((a,c)=>{const l=r[a.src],h=[a.src];a.alias&&h.push(...a.alias),o[s[c]]=l,_o.set(h,l)}),o}async unload(e){this._initialized||await this.init();const t=Hn(e).map(s=>typeof s!="string"?s.src:s),i=this.resolver.resolve(t);await this._unloadFromResolved(i)}async unloadBundle(e){this._initialized||await this.init(),e=Hn(e);const t=this.resolver.resolveBundle(e),i=Object.keys(t).map(s=>this._unloadFromResolved(t[s]));await Promise.all(i)}async _unloadFromResolved(e){const t=Object.values(e);t.forEach(i=>{_o.remove(i.src)}),await this.loader.unload(t)}async _detectFormats(e){let t=[];e.preferredFormats&&(t=Array.isArray(e.preferredFormats)?e.preferredFormats:[e.preferredFormats]);for(const i of e.detections)e.skipDetections||await i.test()?t=await i.add(t):e.skipDetections||(t=await i.remove(t));return t=t.filter((i,s)=>t.indexOf(i)===s),t}get detections(){return this._detections}get preferWorkers(){return od.config.preferWorkers}set preferWorkers(e){pt("7.2.0","Assets.prefersWorkers is deprecated, use Assets.setPreferences({ preferWorkers: true }) instead."),this.setPreferences({preferWorkers:e})}setPreferences(e){this.loader.parsers.forEach(t=>{t.config&&Object.keys(t.config).filter(i=>i in e).forEach(i=>{t.config[i]=e[i]})})}}const Es=new yR;je.handleByList($e.LoadParser,Es.loader.parsers).handleByList($e.ResolveParser,Es.resolver.parsers).handleByList($e.CacheParser,Es.cache.parsers).handleByList($e.DetectionParser,Es.detections);const bR={extension:$e.CacheParser,test:n=>Array.isArray(n)&&n.every(e=>e instanceof it),getCacheableAssets:(n,e)=>{const t={};return n.forEach(i=>{e.forEach((s,r)=>{t[i+(r===0?"":r+1)]=s})}),t}};je.add(bR);async function rS(n){if("Image"in globalThis)return new Promise(e=>{const t=new Image;t.onload=()=>{e(!0)},t.onerror=()=>{e(!1)},t.src=n});if("createImageBitmap"in globalThis&&"fetch"in globalThis){try{const e=await(await fetch(n)).blob();await createImageBitmap(e)}catch{return!1}return!0}return!1}const xR={extension:{type:$e.DetectionParser,priority:1},test:async()=>rS("data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A="),add:async n=>[...n,"avif"],remove:async n=>n.filter(e=>e!=="avif")};je.add(xR);const wR={extension:{type:$e.DetectionParser,priority:0},test:async()=>rS("data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA="),add:async n=>[...n,"webp"],remove:async n=>n.filter(e=>e!=="webp")};je.add(wR);const $y=["png","jpg","jpeg"],SR={extension:{type:$e.DetectionParser,priority:-1},test:()=>Promise.resolve(!0),add:async n=>[...n,...$y],remove:async n=>n.filter(e=>!$y.includes(e))};je.add(SR);const _R="WorkerGlobalScope"in globalThis&&globalThis instanceof globalThis.WorkerGlobalScope;function Ig(n){return _R?!1:document.createElement("video").canPlayType(n)!==""}const TR={extension:{type:$e.DetectionParser,priority:0},test:async()=>Ig("video/webm"),add:async n=>[...n,"webm"],remove:async n=>n.filter(e=>e!=="webm")};je.add(TR);const ER={extension:{type:$e.DetectionParser,priority:0},test:async()=>Ig("video/mp4"),add:async n=>[...n,"mp4","m4v"],remove:async n=>n.filter(e=>e!=="mp4"&&e!=="m4v")};je.add(ER);const CR={extension:{type:$e.DetectionParser,priority:0},test:async()=>Ig("video/ogg"),add:async n=>[...n,"ogv"],remove:async n=>n.filter(e=>e!=="ogv")};je.add(CR);const MR={extension:$e.ResolveParser,test:od.test,parse:n=>{var e;return{resolution:parseFloat(((e=Ve.RETINA_PREFIX.exec(n))==null?void 0:e[1])??"1"),format:di.extname(n).slice(1),src:n}}};je.add(MR);var ki=(n=>(n[n.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",n[n.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",n[n.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",n[n.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",n[n.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",n[n.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",n[n.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",n[n.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",n[n.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",n[n.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",n[n.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",n[n.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",n[n.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",n[n.COMPRESSED_RGBA8_ETC2_EAC=37496]="COMPRESSED_RGBA8_ETC2_EAC",n[n.COMPRESSED_SRGB8_ETC2=37493]="COMPRESSED_SRGB8_ETC2",n[n.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37497]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",n[n.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37494]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",n[n.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37495]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",n[n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",n[n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",n[n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",n[n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",n[n.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",n[n.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",n[n.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35987]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",n[n.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",n[n.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",n[n.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",n[n.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",n[n.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",n[n.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",n))(ki||{});const iu={33776:.5,33777:.5,33778:1,33779:1,35916:.5,35917:.5,35918:1,35919:1,37488:.5,37489:.5,37490:1,37491:1,37492:.5,37496:1,37493:.5,37497:1,37494:.5,37495:.5,35840:.5,35842:.5,35841:.25,35843:.25,36196:.5,35986:.5,35987:1,34798:1,37808:1,36492:1,36493:1,36494:1,36495:1};let ls,ga;function Ny(){ga={bptc:ls.getExtension("EXT_texture_compression_bptc"),astc:ls.getExtension("WEBGL_compressed_texture_astc"),etc:ls.getExtension("WEBGL_compressed_texture_etc"),s3tc:ls.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:ls.getExtension("WEBGL_compressed_texture_s3tc_srgb"),pvrtc:ls.getExtension("WEBGL_compressed_texture_pvrtc")||ls.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),etc1:ls.getExtension("WEBGL_compressed_texture_etc1"),atc:ls.getExtension("WEBGL_compressed_texture_atc")}}const AR={extension:{type:$e.DetectionParser,priority:2},test:async()=>{const n=Ve.ADAPTER.createCanvas().getContext("webgl");return n?(ls=n,!0):(console.warn("WebGL not available for compressed textures."),!1)},add:async n=>{ga||Ny();const e=[];for(const t in ga)ga[t]&&e.push(t);return[...e,...n]},remove:async n=>(ga||Ny(),n.filter(e=>!(e in ga)))};je.add(AR);class IR extends td{constructor(e,t={width:1,height:1,autoLoad:!0}){let i,s;typeof e=="string"?(i=e,s=new Uint8Array):(i=null,s=e),super(s,t),this.origin=i,this.buffer=s?new Vm(s):null,this._load=null,this.loaded=!1,this.origin!==null&&t.autoLoad!==!1&&this.load(),this.origin===null&&this.buffer&&(this._load=Promise.resolve(this),this.loaded=!0,this.onBlobLoaded(this.buffer.rawBinaryData))}onBlobLoaded(e){}load(){return this._load?this._load:(this._load=fetch(this.origin).then(e=>e.blob()).then(e=>e.arrayBuffer()).then(e=>(this.data=new Uint32Array(e),this.buffer=new Vm(e),this.loaded=!0,this.onBlobLoaded(e),this.update(),this)),this._load)}}class Oo extends IR{constructor(e,t){super(e,t),this.format=t.format,this.levels=t.levels||1,this._width=t.width,this._height=t.height,this._extension=Oo._formatToExtension(this.format),(t.levelBuffers||this.buffer)&&(this._levelBuffers=t.levelBuffers||Oo._createLevelBuffers(e instanceof Uint8Array?e:this.buffer.uint8View,this.format,this.levels,4,4,this.width,this.height))}upload(e,t,i){const s=e.gl;if(!e.context.extensions[this._extension])throw new Error(`${this._extension} textures are not supported on the current machine`);if(!this._levelBuffers)return!1;s.pixelStorei(s.UNPACK_ALIGNMENT,4);for(let r=0,o=this.levels;r<o;r++){const{levelID:a,levelWidth:c,levelHeight:l,levelBuffer:h}=this._levelBuffers[r];s.compressedTexImage2D(s.TEXTURE_2D,a,this.format,c,l,0,h)}return!0}onBlobLoaded(){this._levelBuffers=Oo._createLevelBuffers(this.buffer.uint8View,this.format,this.levels,4,4,this.width,this.height)}static _formatToExtension(e){if(e>=33776&&e<=33779)return"s3tc";if(e>=35916&&e<=35919)return"s3tc_sRGB";if(e>=37488&&e<=37497)return"etc";if(e>=35840&&e<=35843)return"pvrtc";if(e===36196)return"etc1";if(e===35986||e===35987||e===34798)return"atc";if(e>=36492&&e<=36495)return"bptc";if(e===37808)return"astc";throw new Error(`Invalid (compressed) texture format given: ${e}`)}static _createLevelBuffers(e,t,i,s,r,o,a){const c=new Array(i);let l=e.byteOffset,h=o,u=a,d=h+s-1&~(s-1),f=u+r-1&~(r-1),m=d*f*iu[t];for(let p=0;p<i;p++)c[p]={levelID:p,levelWidth:i>1?h:d,levelHeight:i>1?u:f,levelBuffer:new Uint8Array(e.buffer,l,m)},l+=m,h=h>>1||1,u=u>>1||1,d=h+s-1&~(s-1),f=u+r-1&~(r-1),m=d*f*iu[t];return c}}const zf=4,Hc=124,PR=32,Dy=20,RR=542327876,jc={HEIGHT:3,WIDTH:4,MIPMAP_COUNT:7,PIXEL_FORMAT:19},kR={FOURCC:2},Wc={DXGI_FORMAT:0,RESOURCE_DIMENSION:1,MISC_FLAG:2,ARRAY_SIZE:3},FR=1,LR=2,OR=4,$R=64,NR=512,DR=131072,BR=827611204,UR=861165636,VR=894720068,XR=808540228,YR=4,GR={[BR]:ki.COMPRESSED_RGBA_S3TC_DXT1_EXT,[UR]:ki.COMPRESSED_RGBA_S3TC_DXT3_EXT,[VR]:ki.COMPRESSED_RGBA_S3TC_DXT5_EXT},HR={70:ki.COMPRESSED_RGBA_S3TC_DXT1_EXT,71:ki.COMPRESSED_RGBA_S3TC_DXT1_EXT,73:ki.COMPRESSED_RGBA_S3TC_DXT3_EXT,74:ki.COMPRESSED_RGBA_S3TC_DXT3_EXT,76:ki.COMPRESSED_RGBA_S3TC_DXT5_EXT,77:ki.COMPRESSED_RGBA_S3TC_DXT5_EXT,72:ki.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,75:ki.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,78:ki.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,96:ki.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,95:ki.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,98:ki.COMPRESSED_RGBA_BPTC_UNORM_EXT,99:ki.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT};function jR(n){const e=new Uint32Array(n);if(e[0]!==RR)throw new Error("Invalid DDS file magic word");const t=new Uint32Array(n,0,Hc/Uint32Array.BYTES_PER_ELEMENT),i=t[jc.HEIGHT],s=t[jc.WIDTH],r=t[jc.MIPMAP_COUNT],o=new Uint32Array(n,jc.PIXEL_FORMAT*Uint32Array.BYTES_PER_ELEMENT,PR/Uint32Array.BYTES_PER_ELEMENT),a=o[FR];if(a&OR){const c=o[kR.FOURCC];if(c!==XR){const b=GR[c],y=zf+Hc,x=new Uint8Array(n,y);return[new Oo(x,{format:b,width:s,height:i,levels:r})]}const l=zf+Hc,h=new Uint32Array(e.buffer,l,Dy/Uint32Array.BYTES_PER_ELEMENT),u=h[Wc.DXGI_FORMAT],d=h[Wc.RESOURCE_DIMENSION],f=h[Wc.MISC_FLAG],m=h[Wc.ARRAY_SIZE],p=HR[u];if(p===void 0)throw new Error(`DDSParser cannot parse texture data with DXGI format ${u}`);if(f===YR)throw new Error("DDSParser does not support cubemap textures");if(d===6)throw new Error("DDSParser does not supported 3D texture data");const g=new Array,v=zf+Hc+Dy;if(m===1)g.push(new Uint8Array(n,v));else{const b=iu[p];let y=0,x=s,_=i;for(let S=0;S<r;S++){const C=Math.max(1,x+3&-4),M=Math.max(1,_+3&-4),P=C*M*b;y+=P,x=x>>>1,_=_>>>1}let E=v;for(let S=0;S<m;S++)g.push(new Uint8Array(n,E,y)),E+=y}return g.map(b=>new Oo(b,{format:p,width:s,height:i,levels:r}))}throw a&$R?new Error("DDSParser does not support uncompressed texture data."):a&NR?new Error("DDSParser does not supported YUV uncompressed texture data."):a&DR?new Error("DDSParser does not support single-channel (lumninance) texture data!"):a&LR?new Error("DDSParser does not support single-channel (alpha) texture data!"):new Error("DDSParser failed to load a texture file due to an unknown reason!")}const By=[171,75,84,88,32,49,49,187,13,10,26,10],WR=67305985,Un={ENDIANNESS:12,GL_TYPE:16,GL_FORMAT:24,GL_INTERNAL_FORMAT:28,PIXEL_WIDTH:36,PIXEL_HEIGHT:40,PIXEL_DEPTH:44,NUMBER_OF_ARRAY_ELEMENTS:48,NUMBER_OF_FACES:52,NUMBER_OF_MIPMAP_LEVELS:56,BYTES_OF_KEY_VALUE_DATA:60},up=64,Uy={[He.UNSIGNED_BYTE]:1,[He.UNSIGNED_SHORT]:2,[He.INT]:4,[He.UNSIGNED_INT]:4,[He.FLOAT]:4,[He.HALF_FLOAT]:8},zR={[Ie.RGBA]:4,[Ie.RGB]:3,[Ie.RG]:2,[Ie.RED]:1,[Ie.LUMINANCE]:1,[Ie.LUMINANCE_ALPHA]:2,[Ie.ALPHA]:1},qR={[He.UNSIGNED_SHORT_4_4_4_4]:2,[He.UNSIGNED_SHORT_5_5_5_1]:2,[He.UNSIGNED_SHORT_5_6_5]:2};function KR(n,e,t=!1){const i=new DataView(e);if(!JR(n,i))return null;const s=i.getUint32(Un.ENDIANNESS,!0)===WR,r=i.getUint32(Un.GL_TYPE,s),o=i.getUint32(Un.GL_FORMAT,s),a=i.getUint32(Un.GL_INTERNAL_FORMAT,s),c=i.getUint32(Un.PIXEL_WIDTH,s),l=i.getUint32(Un.PIXEL_HEIGHT,s)||1,h=i.getUint32(Un.PIXEL_DEPTH,s)||1,u=i.getUint32(Un.NUMBER_OF_ARRAY_ELEMENTS,s)||1,d=i.getUint32(Un.NUMBER_OF_FACES,s),f=i.getUint32(Un.NUMBER_OF_MIPMAP_LEVELS,s),m=i.getUint32(Un.BYTES_OF_KEY_VALUE_DATA,s);if(l===0||h!==1)throw new Error("Only 2D textures are supported");if(d!==1)throw new Error("CubeTextures are not supported by KTXLoader yet!");if(u!==1)throw new Error("WebGL does not support array textures");const p=4,g=4,v=c+3&-4,b=l+3&-4,y=new Array(u);let x=c*l;r===0&&(x=v*b);let _;if(r!==0?Uy[r]?_=Uy[r]*zR[o]:_=qR[r]:_=iu[a],_===void 0)throw new Error("Unable to resolve the pixel format stored in the *.ktx file!");const E=t?QR(i,m,s):null;let S=x*_,C=c,M=l,P=v,A=b,R=up+m;for(let B=0;B<f;B++){const O=i.getUint32(R,s);let W=R+4;for(let V=0;V<u;V++){let Y=y[V];Y||(Y=y[V]=new Array(f)),Y[B]={levelID:B,levelWidth:f>1||r!==0?C:P,levelHeight:f>1||r!==0?M:A,levelBuffer:new Uint8Array(e,W,S)},W+=S}R+=O+4,R=R%4!==0?R+4-R%4:R,C=C>>1||1,M=M>>1||1,P=C+p-1&-4,A=M+g-1&-4,S=P*A*_}return r!==0?{uncompressed:y.map(B=>{let O=B[0].levelBuffer,W=!1;return r===He.FLOAT?O=new Float32Array(B[0].levelBuffer.buffer,B[0].levelBuffer.byteOffset,B[0].levelBuffer.byteLength/4):r===He.UNSIGNED_INT?(W=!0,O=new Uint32Array(B[0].levelBuffer.buffer,B[0].levelBuffer.byteOffset,B[0].levelBuffer.byteLength/4)):r===He.INT&&(W=!0,O=new Int32Array(B[0].levelBuffer.buffer,B[0].levelBuffer.byteOffset,B[0].levelBuffer.byteLength/4)),{resource:new td(O,{width:B[0].levelWidth,height:B[0].levelHeight}),type:r,format:W?ZR(o):o}}),kvData:E}:{compressed:y.map(B=>new Oo(null,{format:a,width:c,height:l,levels:f,levelBuffers:B})),kvData:E}}function JR(n,e){for(let t=0;t<By.length;t++)if(e.getUint8(t)!==By[t])return console.error(`${n} is not a valid *.ktx file!`),!1;return!0}function ZR(n){switch(n){case Ie.RGBA:return Ie.RGBA_INTEGER;case Ie.RGB:return Ie.RGB_INTEGER;case Ie.RG:return Ie.RG_INTEGER;case Ie.RED:return Ie.RED_INTEGER;default:return n}}function QR(n,e,t){const i=new Map;let s=0;for(;s<e;){const r=n.getUint32(up+s,t),o=up+s+4,a=3-(r+3)%4;if(r===0||r>e-s){console.error("KTXLoader: keyAndValueByteSize out of bounds");break}let c=0;for(;c<r&&n.getUint8(o+c)!==0;c++);if(c===-1){console.error("KTXLoader: Failed to find null byte terminating kvData key");break}const l=new TextDecoder().decode(new Uint8Array(n.buffer,o,c)),h=new DataView(n.buffer,o+c+1,r-c-1);i.set(l,h),s+=4+r+a}return i}const ek={extension:{type:$e.LoadParser,priority:_n.High},name:"loadDDS",test(n){return un(n,".dds")},async load(n,e,t){const i=await(await Ve.ADAPTER.fetch(n)).arrayBuffer(),s=jR(i).map(r=>{const o=new rt(r,{mipmap:$n.OFF,alphaMode:Ri.NO_PREMULTIPLIED_ALPHA,resolution:fr(n),...e.data});return vc(o,t,n)});return s.length===1?s[0]:s},unload(n){Array.isArray(n)?n.forEach(e=>e.destroy(!0)):n.destroy(!0)}};je.add(ek);const tk={extension:{type:$e.LoadParser,priority:_n.High},name:"loadKTX",test(n){return un(n,".ktx")},async load(n,e,t){const i=await(await Ve.ADAPTER.fetch(n)).arrayBuffer(),{compressed:s,uncompressed:r,kvData:o}=KR(n,i),a=s??r,c={mipmap:$n.OFF,alphaMode:Ri.NO_PREMULTIPLIED_ALPHA,resolution:fr(n),...e.data},l=a.map(h=>{a===r&&Object.assign(c,{type:h.type,format:h.format});const u=h.resource??h,d=new rt(u,c);return d.ktxKeyValueData=o,vc(d,t,n)});return l.length===1?l[0]:l},unload(n){Array.isArray(n)?n.forEach(e=>e.destroy(!0)):n.destroy(!0)}};je.add(tk);const ik=["s3tc","s3tc_sRGB","etc","etc1","pvrtc","atc","astc","bptc"],nk={extension:$e.ResolveParser,test:n=>{const e=di.extname(n).slice(1);return["basis","ktx","dds"].includes(e)},parse:n=>{var i,s;const e=n.split("."),t=e.pop();if(["ktx","dds"].includes(t)){const r=e.pop();if(ik.includes(r))return{resolution:parseFloat(((i=Ve.RETINA_PREFIX.exec(n))==null?void 0:i[1])??"1"),format:r,src:n}}return{resolution:parseFloat(((s=Ve.RETINA_PREFIX.exec(n))==null?void 0:s[1])??"1"),format:t,src:n}}};je.add(nk);const zc=new dt,sk=4,oS=class Tl{constructor(e){this.renderer=e,this._rendererPremultipliedAlpha=!1}contextChange(){var t;const e=(t=this.renderer)==null?void 0:t.gl.getContextAttributes();this._rendererPremultipliedAlpha=!!(e&&e.alpha&&e.premultipliedAlpha)}async image(e,t,i,s){const r=new Image;return r.src=await this.base64(e,t,i,s),r}async base64(e,t,i,s){const r=this.canvas(e,s);if(r.toBlob!==void 0)return new Promise((o,a)=>{r.toBlob(c=>{if(!c){a(new Error("ICanvas.toBlob failed!"));return}const l=new FileReader;l.onload=()=>o(l.result),l.onerror=a,l.readAsDataURL(c)},t,i)});if(r.toDataURL!==void 0)return r.toDataURL(t,i);if(r.convertToBlob!==void 0){const o=await r.convertToBlob({type:t,quality:i});return new Promise((a,c)=>{const l=new FileReader;l.onload=()=>a(l.result),l.onerror=c,l.readAsDataURL(o)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e,t){const{pixels:i,width:s,height:r,flipY:o,premultipliedAlpha:a}=this._rawPixels(e,t);o&&Tl._flipY(i,s,r),a&&Tl._unpremultiplyAlpha(i);const c=new BI(s,r,1),l=new ImageData(new Uint8ClampedArray(i.buffer),s,r);return c.context.putImageData(l,0,0),c.canvas}pixels(e,t){const{pixels:i,width:s,height:r,flipY:o,premultipliedAlpha:a}=this._rawPixels(e,t);return o&&Tl._flipY(i,s,r),a&&Tl._unpremultiplyAlpha(i),i}_rawPixels(e,t){const i=this.renderer;if(!i)throw new Error("The Extract has already been destroyed");let s,r=!1,o=!1,a,c=!1;e&&(e instanceof jo?a=e:(a=i.generateTexture(e,{region:t,resolution:i.resolution,multisample:i.multisample}),c=!0,t&&(zc.width=t.width,zc.height=t.height,t=zc)));const l=i.gl;if(a){if(s=a.baseTexture.resolution,t=t??a.frame,r=!1,o=a.baseTexture.alphaMode>0&&a.baseTexture.format===Ie.RGBA,!c){i.renderTexture.bind(a);const f=a.framebuffer.glFramebuffers[i.CONTEXT_UID];f.blitFramebuffer&&i.framebuffer.bind(f.blitFramebuffer)}}else s=i.resolution,t||(t=zc,t.width=i.width/s,t.height=i.height/s),r=!0,o=this._rendererPremultipliedAlpha,i.renderTexture.bind();const h=Math.max(Math.round(t.width*s),1),u=Math.max(Math.round(t.height*s),1),d=new Uint8Array(sk*h*u);return l.readPixels(Math.round(t.x*s),Math.round(t.y*s),h,u,l.RGBA,l.UNSIGNED_BYTE,d),c&&(a==null||a.destroy(!0)),{pixels:d,width:h,height:u,flipY:r,premultipliedAlpha:o}}destroy(){this.renderer=null}static _flipY(e,t,i){const s=t<<2,r=i>>1,o=new Uint8Array(s);for(let a=0;a<r;a++){const c=a*s,l=(i-a-1)*s;o.set(e.subarray(c,c+s)),e.copyWithin(c,l,l+s),e.set(o,l)}}static _unpremultiplyAlpha(e){e instanceof Uint8ClampedArray&&(e=new Uint8Array(e.buffer));const t=e.length;for(let i=0;i<t;i+=4){const s=e[i+3];if(s!==0){const r=255.001/s;e[i]=e[i]*r+.5,e[i+1]=e[i+1]*r+.5,e[i+2]=e[i+2]*r+.5}}}};oS.extension={name:"extract",type:$e.RendererSystem};let rk=oS;je.add(rk);const nu={build(n){const e=n.points;let t,i,s,r,o,a;if(n.type===Ni.CIRC){const m=n.shape;t=m.x,i=m.y,o=a=m.radius,s=r=0}else if(n.type===Ni.ELIP){const m=n.shape;t=m.x,i=m.y,o=m.width,a=m.height,s=r=0}else{const m=n.shape,p=m.width/2,g=m.height/2;t=m.x+p,i=m.y+g,o=a=Math.max(0,Math.min(m.radius,Math.min(p,g))),s=p-o,r=g-a}if(!(o>=0&&a>=0&&s>=0&&r>=0)){e.length=0;return}const c=Math.ceil(2.3*Math.sqrt(o+a)),l=c*8+(s?4:0)+(r?4:0);if(e.length=l,l===0)return;if(c===0){e.length=8,e[0]=e[6]=t+s,e[1]=e[3]=i+r,e[2]=e[4]=t-s,e[5]=e[7]=i-r;return}let h=0,u=c*4+(s?2:0)+2,d=u,f=l;{const m=s+o,p=r,g=t+m,v=t-m,b=i+p;if(e[h++]=g,e[h++]=b,e[--u]=b,e[--u]=v,r){const y=i-p;e[d++]=v,e[d++]=y,e[--f]=y,e[--f]=g}}for(let m=1;m<c;m++){const p=Math.PI/2*(m/c),g=s+Math.cos(p)*o,v=r+Math.sin(p)*a,b=t+g,y=t-g,x=i+v,_=i-v;e[h++]=b,e[h++]=x,e[--u]=x,e[--u]=y,e[d++]=y,e[d++]=_,e[--f]=_,e[--f]=b}{const m=s,p=r+a,g=t+m,v=t-m,b=i+p,y=i-p;e[h++]=g,e[h++]=b,e[--f]=y,e[--f]=g,s&&(e[h++]=v,e[h++]=b,e[--f]=y,e[--f]=v)}},triangulate(n,e){const t=n.points,i=e.points,s=e.indices;if(t.length===0)return;let r=i.length/2;const o=r;let a,c;if(n.type!==Ni.RREC){const h=n.shape;a=h.x,c=h.y}else{const h=n.shape;a=h.x+h.width/2,c=h.y+h.height/2}const l=n.matrix;i.push(n.matrix?l.a*a+l.c*c+l.tx:a,n.matrix?l.b*a+l.d*c+l.ty:c),r++,i.push(t[0],t[1]);for(let h=2;h<t.length;h+=2)i.push(t[h],t[h+1]),s.push(r++,o,r);s.push(o+1,o,r)}};function Vy(n,e=!1){const t=n.length;if(t<6)return;let i=0;for(let s=0,r=n[t-2],o=n[t-1];s<t;s+=2){const a=n[s],c=n[s+1];i+=(a-r)*(c+o),r=a,o=c}if(!e&&i>0||e&&i<=0){const s=t/2;for(let r=s+s%2;r<t;r+=2){const o=t-r-2,a=t-r-1,c=r,l=r+1;[n[o],n[c]]=[n[c],n[o]],[n[a],n[l]]=[n[l],n[a]]}}}const aS={build(n){n.points=n.shape.points.slice()},triangulate(n,e){let t=n.points;const i=n.holes,s=e.points,r=e.indices;if(t.length>=6){Vy(t,!1);const o=[];for(let l=0;l<i.length;l++){const h=i[l];Vy(h.points,!0),o.push(t.length/2),t=t.concat(h.points)}const a=BA(t,o,2);if(!a)return;const c=s.length/2;for(let l=0;l<a.length;l+=3)r.push(a[l]+c),r.push(a[l+1]+c),r.push(a[l+2]+c);for(let l=0;l<t.length;l++)s.push(t[l])}}},ok={build(n){const e=n.shape,t=e.x,i=e.y,s=e.width,r=e.height,o=n.points;o.length=0,s>=0&&r>=0&&o.push(t,i,t+s,i,t+s,i+r,t,i+r)},triangulate(n,e){const t=n.points,i=e.points;if(t.length===0)return;const s=i.length/2;i.push(t[0],t[1],t[2],t[3],t[6],t[7],t[4],t[5]),e.indices.push(s,s+1,s+2,s+1,s+2,s+3)}},ak={build(n){nu.build(n)},triangulate(n,e){nu.triangulate(n,e)}};var An=(n=>(n.MITER="miter",n.BEVEL="bevel",n.ROUND="round",n))(An||{}),Xr=(n=>(n.BUTT="butt",n.ROUND="round",n.SQUARE="square",n))(Xr||{});const Va={adaptive:!0,maxLength:10,minSegments:8,maxSegments:2048,epsilon:1e-4,_segmentsCount(n,e=20){if(!this.adaptive||!n||isNaN(n))return e;let t=Math.ceil(n/this.maxLength);return t<this.minSegments?t=this.minSegments:t>this.maxSegments&&(t=this.maxSegments),t}};class Xy{static curveTo(e,t,i,s,r,o){const a=o[o.length-2],c=o[o.length-1]-t,l=a-e,h=s-t,u=i-e,d=Math.abs(c*u-l*h);if(d<1e-8||r===0)return(o[o.length-2]!==e||o[o.length-1]!==t)&&o.push(e,t),null;const f=c*c+l*l,m=h*h+u*u,p=c*h+l*u,g=r*Math.sqrt(f)/d,v=r*Math.sqrt(m)/d,b=g*p/f,y=v*p/m,x=g*u+v*l,_=g*h+v*c,E=l*(v+b),S=c*(v+b),C=u*(g+y),M=h*(g+y),P=Math.atan2(S-_,E-x),A=Math.atan2(M-_,C-x);return{cx:x+e,cy:_+t,radius:r,startAngle:P,endAngle:A,anticlockwise:l*h>u*c}}static arc(e,t,i,s,r,o,a,c,l){const h=a-o,u=Va._segmentsCount(Math.abs(h)*r,Math.ceil(Math.abs(h)/zh)*40),d=h/(u*2),f=d*2,m=Math.cos(d),p=Math.sin(d),g=u-1,v=g%1/g;for(let b=0;b<=g;++b){const y=b+v*b,x=d+o+f*y,_=Math.cos(x),E=-Math.sin(x);l.push((m*_+p*E)*r+i,(m*-E+p*_)*r+s)}}}class lk{constructor(){this.reset()}begin(e,t,i){this.reset(),this.style=e,this.start=t,this.attribStart=i}end(e,t){this.attribSize=t-this.attribStart,this.size=e-this.start}reset(){this.style=null,this.size=0,this.start=0,this.attribStart=0,this.attribSize=0}}class Pg{static curveLength(e,t,i,s,r,o,a,c){let l=0,h=0,u=0,d=0,f=0,m=0,p=0,g=0,v=0,b=0,y=0,x=e,_=t;for(let E=1;E<=10;++E)h=E/10,u=h*h,d=u*h,f=1-h,m=f*f,p=m*f,g=p*e+3*m*h*i+3*f*u*r+d*a,v=p*t+3*m*h*s+3*f*u*o+d*c,b=x-g,y=_-v,x=g,_=v,l+=Math.sqrt(b*b+y*y);return l}static curveTo(e,t,i,s,r,o,a){const c=a[a.length-2],l=a[a.length-1];a.length-=2;const h=Va._segmentsCount(Pg.curveLength(c,l,e,t,i,s,r,o));let u=0,d=0,f=0,m=0,p=0;a.push(c,l);for(let g=1,v=0;g<=h;++g)v=g/h,u=1-v,d=u*u,f=d*u,m=v*v,p=m*v,a.push(f*c+3*d*v*e+3*u*m*i+p*r,f*l+3*d*v*t+3*u*m*s+p*o)}}function Yy(n,e,t,i,s,r,o,a){const c=n-t*s,l=e-i*s,h=n+t*r,u=e+i*r;let d,f;o?(d=i,f=-t):(d=-i,f=t);const m=c+d,p=l+f,g=h+d,v=u+f;return a.push(m,p,g,v),2}function mo(n,e,t,i,s,r,o,a){const c=t-n,l=i-e;let h=Math.atan2(c,l),u=Math.atan2(s-n,r-e);a&&h<u?h+=Math.PI*2:!a&&h>u&&(u+=Math.PI*2);let d=h;const f=u-h,m=Math.abs(f),p=Math.sqrt(c*c+l*l),g=(15*m*Math.sqrt(p)/Math.PI>>0)+1,v=f/g;if(d+=v,a){o.push(n,e,t,i);for(let b=1,y=d;b<g;b++,y+=v)o.push(n,e,n+Math.sin(y)*p,e+Math.cos(y)*p);o.push(n,e,s,r)}else{o.push(t,i,n,e);for(let b=1,y=d;b<g;b++,y+=v)o.push(n+Math.sin(y)*p,e+Math.cos(y)*p,n,e);o.push(s,r,n,e)}return g*2}function ck(n,e){const t=n.shape;let i=n.points||t.points.slice();const s=e.closePointEps;if(i.length===0)return;const r=n.lineStyle,o=new Tt(i[0],i[1]),a=new Tt(i[i.length-2],i[i.length-1]),c=t.type!==Ni.POLY||t.closeStroke,l=Math.abs(o.x-a.x)<s&&Math.abs(o.y-a.y)<s;if(c){i=i.slice(),l&&(i.pop(),i.pop(),a.set(i[i.length-2],i[i.length-1]));const Y=(o.x+a.x)*.5,L=(a.y+o.y)*.5;i.unshift(Y,L),i.push(Y,L)}const h=e.points,u=i.length/2;let d=i.length;const f=h.length/2,m=r.width/2,p=m*m,g=r.miterLimit*r.miterLimit;let v=i[0],b=i[1],y=i[2],x=i[3],_=0,E=0,S=-(b-x),C=v-y,M=0,P=0,A=Math.sqrt(S*S+C*C);S/=A,C/=A,S*=m,C*=m;const R=r.alignment,B=(1-R)*2,O=R*2;c||(r.cap===Xr.ROUND?d+=mo(v-S*(B-O)*.5,b-C*(B-O)*.5,v-S*B,b-C*B,v+S*O,b+C*O,h,!0)+2:r.cap===Xr.SQUARE&&(d+=Yy(v,b,S,C,B,O,!0,h))),h.push(v-S*B,b-C*B,v+S*O,b+C*O);for(let Y=1;Y<u-1;++Y){v=i[(Y-1)*2],b=i[(Y-1)*2+1],y=i[Y*2],x=i[Y*2+1],_=i[(Y+1)*2],E=i[(Y+1)*2+1],S=-(b-x),C=v-y,A=Math.sqrt(S*S+C*C),S/=A,C/=A,S*=m,C*=m,M=-(x-E),P=y-_,A=Math.sqrt(M*M+P*P),M/=A,P/=A,M*=m,P*=m;const L=y-v,N=b-x,F=y-_,D=E-x,X=L*F+N*D,G=N*F-D*L,K=G<0;if(Math.abs(G)<.001*Math.abs(X)){h.push(y-S*B,x-C*B,y+S*O,x+C*O),X>=0&&(r.join===An.ROUND?d+=mo(y,x,y-S*B,x-C*B,y-M*B,x-P*B,h,!1)+4:d+=2,h.push(y-M*O,x-P*O,y+M*B,x+P*B));continue}const J=(-S+v)*(-C+x)-(-S+y)*(-C+b),oe=(-M+_)*(-P+x)-(-M+y)*(-P+E),le=(L*oe-F*J)/G,ve=(D*J-N*oe)/G,Se=(le-y)*(le-y)+(ve-x)*(ve-x),fe=y+(le-y)*B,ye=x+(ve-x)*B,q=y-(le-y)*O,Z=x-(ve-x)*O,se=Math.min(L*L+N*N,F*F+D*D),H=K?B:O,j=se+H*H*p,$=Se<=j;let U=r.join;if(U===An.MITER&&Se/p>g&&(U=An.BEVEL),$)switch(U){case An.MITER:{h.push(fe,ye,q,Z);break}case An.BEVEL:{K?h.push(fe,ye,y+S*O,x+C*O,fe,ye,y+M*O,x+P*O):h.push(y-S*B,x-C*B,q,Z,y-M*B,x-P*B,q,Z),d+=2;break}case An.ROUND:{K?(h.push(fe,ye,y+S*O,x+C*O),d+=mo(y,x,y+S*O,x+C*O,y+M*O,x+P*O,h,!0)+4,h.push(fe,ye,y+M*O,x+P*O)):(h.push(y-S*B,x-C*B,q,Z),d+=mo(y,x,y-S*B,x-C*B,y-M*B,x-P*B,h,!1)+4,h.push(y-M*B,x-P*B,q,Z));break}}else{switch(h.push(y-S*B,x-C*B,y+S*O,x+C*O),U){case An.MITER:{K?h.push(q,Z,q,Z):h.push(fe,ye,fe,ye),d+=2;break}case An.ROUND:{K?d+=mo(y,x,y+S*O,x+C*O,y+M*O,x+P*O,h,!0)+2:d+=mo(y,x,y-S*B,x-C*B,y-M*B,x-P*B,h,!1)+2;break}}h.push(y-M*B,x-P*B,y+M*O,x+P*O),d+=2}}v=i[(u-2)*2],b=i[(u-2)*2+1],y=i[(u-1)*2],x=i[(u-1)*2+1],S=-(b-x),C=v-y,A=Math.sqrt(S*S+C*C),S/=A,C/=A,S*=m,C*=m,h.push(y-S*B,x-C*B,y+S*O,x+C*O),c||(r.cap===Xr.ROUND?d+=mo(y-S*(B-O)*.5,x-C*(B-O)*.5,y-S*B,x-C*B,y+S*O,x+C*O,h,!1)+2:r.cap===Xr.SQUARE&&(d+=Yy(y,x,S,C,B,O,!1,h)));const W=e.indices,V=Va.epsilon*Va.epsilon;for(let Y=f;Y<d+f-2;++Y)v=h[Y*2],b=h[Y*2+1],y=h[(Y+1)*2],x=h[(Y+1)*2+1],_=h[(Y+2)*2],E=h[(Y+2)*2+1],!(Math.abs(v*(x-E)+y*(E-b)+_*(b-x))<V)&&W.push(Y,Y+1,Y+2)}function hk(n,e){let t=0;const i=n.shape,s=n.points||i.points,r=i.type!==Ni.POLY||i.closeStroke;if(s.length===0)return;const o=e.points,a=e.indices,c=s.length/2,l=o.length/2;let h=l;for(o.push(s[0],s[1]),t=1;t<c;t++)o.push(s[t*2],s[t*2+1]),a.push(h,h+1),h++;r&&a.push(h,l)}function Gy(n,e){n.lineStyle.native?hk(n,e):ck(n,e)}class Rg{static curveLength(e,t,i,s,r,o){const a=e-2*i+r,c=t-2*s+o,l=2*i-2*e,h=2*s-2*t,u=4*(a*a+c*c),d=4*(a*l+c*h),f=l*l+h*h,m=2*Math.sqrt(u+d+f),p=Math.sqrt(u),g=2*u*p,v=2*Math.sqrt(f),b=d/p;return(g*m+p*d*(m-v)+(4*f*u-d*d)*Math.log((2*p+b+m)/(b+v)))/(4*g)}static curveTo(e,t,i,s,r){const o=r[r.length-2],a=r[r.length-1],c=Va._segmentsCount(Rg.curveLength(o,a,e,t,i,s));let l=0,h=0;for(let u=1;u<=c;++u){const d=u/c;l=o+(e-o)*d,h=a+(t-a)*d,r.push(l+(e+(i-e)*d-l)*d,h+(t+(s-t)*d-h)*d)}}}const qf={[Ni.POLY]:aS,[Ni.CIRC]:nu,[Ni.ELIP]:nu,[Ni.RECT]:ok,[Ni.RREC]:ak},Hy=[],qc=[];class su{constructor(e,t=null,i=null,s=null){this.points=[],this.holes=[],this.shape=e,this.lineStyle=i,this.fillStyle=t,this.matrix=s,this.type=e.type}clone(){return new su(this.shape,this.fillStyle,this.lineStyle,this.matrix)}destroy(){this.shape=null,this.holes.length=0,this.holes=null,this.points.length=0,this.points=null,this.lineStyle=null,this.fillStyle=null}}const ra=new Tt,lS=class cS extends fw{constructor(){super(),this.closePointEps=1e-4,this.boundsPadding=0,this.uvsFloat32=null,this.indicesUint16=null,this.batchable=!1,this.points=[],this.colors=[],this.uvs=[],this.indices=[],this.textureIds=[],this.graphicsData=[],this.drawCalls=[],this.batchDirty=-1,this.batches=[],this.dirty=0,this.cacheDirty=-1,this.clearDirty=0,this.shapeIndex=0,this._bounds=new Ql,this.boundsDirty=-1}get bounds(){return this.updateBatches(),this.boundsDirty!==this.dirty&&(this.boundsDirty=this.dirty,this.calculateBounds()),this._bounds}invalidate(){this.boundsDirty=-1,this.dirty++,this.batchDirty++,this.shapeIndex=0,this.points.length=0,this.colors.length=0,this.uvs.length=0,this.indices.length=0,this.textureIds.length=0;for(let e=0;e<this.drawCalls.length;e++)this.drawCalls[e].texArray.clear(),qc.push(this.drawCalls[e]);this.drawCalls.length=0;for(let e=0;e<this.batches.length;e++){const t=this.batches[e];t.reset(),Hy.push(t)}this.batches.length=0}clear(){return this.graphicsData.length>0&&(this.invalidate(),this.clearDirty++,this.graphicsData.length=0),this}drawShape(e,t=null,i=null,s=null){const r=new su(e,t,i,s);return this.graphicsData.push(r),this.dirty++,this}drawHole(e,t=null){if(!this.graphicsData.length)return null;const i=new su(e,null,null,t),s=this.graphicsData[this.graphicsData.length-1];return i.lineStyle=s.lineStyle,s.holes.push(i),this.dirty++,this}destroy(){super.destroy();for(let e=0;e<this.graphicsData.length;++e)this.graphicsData[e].destroy();this.points.length=0,this.points=null,this.colors.length=0,this.colors=null,this.uvs.length=0,this.uvs=null,this.indices.length=0,this.indices=null,this.indexBuffer.destroy(),this.indexBuffer=null,this.graphicsData.length=0,this.graphicsData=null,this.drawCalls.length=0,this.drawCalls=null,this.batches.length=0,this.batches=null,this._bounds=null}containsPoint(e){const t=this.graphicsData;for(let i=0;i<t.length;++i){const s=t[i];if(s.fillStyle.visible&&s.shape&&(s.matrix?s.matrix.applyInverse(e,ra):ra.copyFrom(e),s.shape.contains(ra.x,ra.y))){let r=!1;if(s.holes){for(let o=0;o<s.holes.length;o++)if(s.holes[o].shape.contains(ra.x,ra.y)){r=!0;break}}if(!r)return!0}}return!1}updateBatches(){if(!this.graphicsData.length){this.batchable=!0;return}if(!this.validateBatching())return;this.cacheDirty=this.dirty;const e=this.uvs,t=this.graphicsData;let i=null,s=null;this.batches.length>0&&(i=this.batches[this.batches.length-1],s=i.style);for(let c=this.shapeIndex;c<t.length;c++){this.shapeIndex++;const l=t[c],h=l.fillStyle,u=l.lineStyle;qf[l.type].build(l),l.matrix&&this.transformPoints(l.points,l.matrix),(h.visible||u.visible)&&this.processHoles(l.holes);for(let d=0;d<2;d++){const f=d===0?h:u;if(!f.visible)continue;const m=f.texture.baseTexture,p=this.indices.length,g=this.points.length/2;m.wrapMode=Jn.REPEAT,d===0?this.processFill(l):this.processLine(l);const v=this.points.length/2-g;v!==0&&(i&&!this._compareStyles(s,f)&&(i.end(p,g),i=null),i||(i=Hy.pop()||new lk,i.begin(f,p,g),this.batches.push(i),s=f),this.addUvs(this.points,e,f.texture,g,v,f.matrix))}}const r=this.indices.length,o=this.points.length/2;if(i&&i.end(r,o),this.batches.length===0){this.batchable=!0;return}const a=o>65535;this.indicesUint16&&this.indices.length===this.indicesUint16.length&&a===this.indicesUint16.BYTES_PER_ELEMENT>2?this.indicesUint16.set(this.indices):this.indicesUint16=a?new Uint32Array(this.indices):new Uint16Array(this.indices),this.batchable=this.isBatchable(),this.batchable?this.packBatches():this.buildDrawCalls()}_compareStyles(e,t){return!(!e||!t||e.texture.baseTexture!==t.texture.baseTexture||e.color+e.alpha!==t.color+t.alpha||!!e.native!=!!t.native)}validateBatching(){if(this.dirty===this.cacheDirty||!this.graphicsData.length)return!1;for(let e=0,t=this.graphicsData.length;e<t;e++){const i=this.graphicsData[e],s=i.fillStyle,r=i.lineStyle;if(s&&!s.texture.baseTexture.valid||r&&!r.texture.baseTexture.valid)return!1}return!0}packBatches(){this.batchDirty++,this.uvsFloat32=new Float32Array(this.uvs);const e=this.batches;for(let t=0,i=e.length;t<i;t++){const s=e[t];for(let r=0;r<s.size;r++){const o=s.start+r;this.indicesUint16[o]=this.indicesUint16[o]-s.attribStart}}}isBatchable(){if(this.points.length>65535*2)return!1;const e=this.batches;for(let t=0;t<e.length;t++)if(e[t].style.native)return!1;return this.points.length<cS.BATCHABLE_SIZE*2}buildDrawCalls(){let e=++rt._globalBatch;for(let u=0;u<this.drawCalls.length;u++)this.drawCalls[u].texArray.clear(),qc.push(this.drawCalls[u]);this.drawCalls.length=0;const t=this.colors,i=this.textureIds;let s=qc.pop();s||(s=new Gm,s.texArray=new zm),s.texArray.count=0,s.start=0,s.size=0,s.type=_s.TRIANGLES;let r=0,o=null,a=0,c=!1,l=_s.TRIANGLES,h=0;this.drawCalls.push(s);for(let u=0;u<this.batches.length;u++){const d=this.batches[u],f=8,m=d.style,p=m.texture.baseTexture;c!==!!m.native&&(c=!!m.native,l=c?_s.LINES:_s.TRIANGLES,o=null,r=f,e++),o!==p&&(o=p,p._batchEnabled!==e&&(r===f&&(e++,r=0,s.size>0&&(s=qc.pop(),s||(s=new Gm,s.texArray=new zm),this.drawCalls.push(s)),s.start=h,s.size=0,s.texArray.count=0,s.type=l),p.touched=1,p._batchEnabled=e,p._batchLocation=r,p.wrapMode=Jn.REPEAT,s.texArray.elements[s.texArray.count++]=p,r++)),s.size+=d.size,h+=d.size,a=p._batchLocation,this.addColors(t,m.color,m.alpha,d.attribSize,d.attribStart),this.addTextureIds(i,a,d.attribSize,d.attribStart)}rt._globalBatch=e,this.packAttributes()}packAttributes(){const e=this.points,t=this.uvs,i=this.colors,s=this.textureIds,r=new ArrayBuffer(e.length*3*4),o=new Float32Array(r),a=new Uint32Array(r);let c=0;for(let l=0;l<e.length/2;l++)o[c++]=e[l*2],o[c++]=e[l*2+1],o[c++]=t[l*2],o[c++]=t[l*2+1],a[c++]=i[l],o[c++]=s[l];this._buffer.update(r),this._indexBuffer.update(this.indicesUint16)}processFill(e){e.holes.length?aS.triangulate(e,this):qf[e.type].triangulate(e,this)}processLine(e){Gy(e,this);for(let t=0;t<e.holes.length;t++)Gy(e.holes[t],this)}processHoles(e){for(let t=0;t<e.length;t++){const i=e[t];qf[i.type].build(i),i.matrix&&this.transformPoints(i.points,i.matrix)}}calculateBounds(){const e=this._bounds;e.clear(),e.addVertexData(this.points,0,this.points.length),e.pad(this.boundsPadding,this.boundsPadding)}transformPoints(e,t){for(let i=0;i<e.length/2;i++){const s=e[i*2],r=e[i*2+1];e[i*2]=t.a*s+t.c*r+t.tx,e[i*2+1]=t.b*s+t.d*r+t.ty}}addColors(e,t,i,s,r=0){const o=kt.shared.setValue(t).toLittleEndianNumber(),a=kt.shared.setValue(o).toPremultiplied(i);e.length=Math.max(e.length,r+s);for(let c=0;c<s;c++)e[r+c]=a}addTextureIds(e,t,i,s=0){e.length=Math.max(e.length,s+i);for(let r=0;r<i;r++)e[s+r]=t}addUvs(e,t,i,s,r,o=null){let a=0;const c=t.length,l=i.frame;for(;a<r;){let u=e[(s+a)*2],d=e[(s+a)*2+1];if(o){const f=o.a*u+o.c*d+o.tx;d=o.b*u+o.d*d+o.ty,u=f}a++,t.push(u/l.width,d/l.height)}const h=i.baseTexture;(l.width<h.width||l.height<h.height)&&this.adjustUvs(t,i,c,r)}adjustUvs(e,t,i,s){const r=t.baseTexture,o=1e-6,a=i+s*2,c=t.frame,l=c.width/r.width,h=c.height/r.height;let u=c.x/c.width,d=c.y/c.height,f=Math.floor(e[i]+o),m=Math.floor(e[i+1]+o);for(let p=i+2;p<a;p+=2)f=Math.min(f,Math.floor(e[p]+o)),m=Math.min(m,Math.floor(e[p+1]+o));u-=f,d-=m;for(let p=i;p<a;p+=2)e[p]=(e[p]+u)*l,e[p+1]=(e[p+1]+d)*h}};lS.BATCHABLE_SIZE=100;let uk=lS;class ad{constructor(){this.color=16777215,this.alpha=1,this.texture=it.WHITE,this.matrix=null,this.visible=!1,this.reset()}clone(){const e=new ad;return e.color=this.color,e.alpha=this.alpha,e.texture=this.texture,e.matrix=this.matrix,e.visible=this.visible,e}reset(){this.color=16777215,this.alpha=1,this.texture=it.WHITE,this.matrix=null,this.visible=!1}destroy(){this.texture=null,this.matrix=null}}class kg extends ad{constructor(){super(...arguments),this.width=0,this.alignment=.5,this.native=!1,this.cap=Xr.BUTT,this.join=An.MITER,this.miterLimit=10}clone(){const e=new kg;return e.color=this.color,e.alpha=this.alpha,e.texture=this.texture,e.matrix=this.matrix,e.visible=this.visible,e.width=this.width,e.alignment=this.alignment,e.native=this.native,e.cap=this.cap,e.join=this.join,e.miterLimit=this.miterLimit,e}reset(){super.reset(),this.color=0,this.alignment=.5,this.width=0,this.native=!1,this.cap=Xr.BUTT,this.join=An.MITER,this.miterLimit=10}}const Kf={},dp=class Th extends Mi{constructor(e=null){super(),this.shader=null,this.pluginName="batch",this.currentPath=null,this.batches=[],this.batchTint=-1,this.batchDirty=-1,this.vertexData=null,this._fillStyle=new ad,this._lineStyle=new kg,this._matrix=null,this._holeMode=!1,this.state=Rs.for2d(),this._geometry=e||new uk,this._geometry.refCount++,this._transformID=-1,this._tintColor=new kt(16777215),this.blendMode=Qe.NORMAL}get geometry(){return this._geometry}clone(){return this.finishPoly(),new Th(this._geometry)}set blendMode(e){this.state.blendMode=e}get blendMode(){return this.state.blendMode}get tint(){return this._tintColor.value}set tint(e){this._tintColor.setValue(e)}get fill(){return this._fillStyle}get line(){return this._lineStyle}lineStyle(e=null,t=0,i,s=.5,r=!1){return typeof e=="number"&&(e={width:e,color:t,alpha:i,alignment:s,native:r}),this.lineTextureStyle(e)}lineTextureStyle(e){const t={width:0,texture:it.WHITE,color:e!=null&&e.texture?16777215:0,matrix:null,alignment:.5,native:!1,cap:Xr.BUTT,join:An.MITER,miterLimit:10};e=Object.assign(t,e),this.normalizeColor(e),this.currentPath&&this.startPoly();const i=e.width>0&&e.alpha>0;return i?(e.matrix&&(e.matrix=e.matrix.clone(),e.matrix.invert()),Object.assign(this._lineStyle,{visible:i},e)):this._lineStyle.reset(),this}startPoly(){if(this.currentPath){const e=this.currentPath.points,t=this.currentPath.points.length;t>2&&(this.drawShape(this.currentPath),this.currentPath=new Lo,this.currentPath.closeStroke=!1,this.currentPath.points.push(e[t-2],e[t-1]))}else this.currentPath=new Lo,this.currentPath.closeStroke=!1}finishPoly(){this.currentPath&&(this.currentPath.points.length>2?(this.drawShape(this.currentPath),this.currentPath=null):this.currentPath.points.length=0)}moveTo(e,t){return this.startPoly(),this.currentPath.points[0]=e,this.currentPath.points[1]=t,this}lineTo(e,t){this.currentPath||this.moveTo(0,0);const i=this.currentPath.points,s=i[i.length-2],r=i[i.length-1];return(s!==e||r!==t)&&i.push(e,t),this}_initCurve(e=0,t=0){this.currentPath?this.currentPath.points.length===0&&(this.currentPath.points=[e,t]):this.moveTo(e,t)}quadraticCurveTo(e,t,i,s){this._initCurve();const r=this.currentPath.points;return r.length===0&&this.moveTo(0,0),Rg.curveTo(e,t,i,s,r),this}bezierCurveTo(e,t,i,s,r,o){return this._initCurve(),Pg.curveTo(e,t,i,s,r,o,this.currentPath.points),this}arcTo(e,t,i,s,r){this._initCurve(e,t);const o=this.currentPath.points,a=Xy.curveTo(e,t,i,s,r,o);if(a){const{cx:c,cy:l,radius:h,startAngle:u,endAngle:d,anticlockwise:f}=a;this.arc(c,l,h,u,d,f)}return this}arc(e,t,i,s,r,o=!1){if(s===r)return this;if(!o&&r<=s?r+=zh:o&&s<=r&&(s+=zh),r-s===0)return this;const a=e+Math.cos(s)*i,c=t+Math.sin(s)*i,l=this._geometry.closePointEps;let h=this.currentPath?this.currentPath.points:null;if(h){const u=Math.abs(h[h.length-2]-a),d=Math.abs(h[h.length-1]-c);u<l&&d<l||h.push(a,c)}else this.moveTo(a,c),h=this.currentPath.points;return Xy.arc(a,c,e,t,i,s,r,o,h),this}beginFill(e=0,t){return this.beginTextureFill({texture:it.WHITE,color:e,alpha:t})}normalizeColor(e){const t=kt.shared.setValue(e.color??0);e.color=t.toNumber(),e.alpha??(e.alpha=t.alpha)}beginTextureFill(e){const t={texture:it.WHITE,color:16777215,matrix:null};e=Object.assign(t,e),this.normalizeColor(e),this.currentPath&&this.startPoly();const i=e.alpha>0;return i?(e.matrix&&(e.matrix=e.matrix.clone(),e.matrix.invert()),Object.assign(this._fillStyle,{visible:i},e)):this._fillStyle.reset(),this}endFill(){return this.finishPoly(),this._fillStyle.reset(),this}drawRect(e,t,i,s){return this.drawShape(new dt(e,t,i,s))}drawRoundedRect(e,t,i,s,r){return this.drawShape(new sd(e,t,i,s,r))}drawCircle(e,t,i){return this.drawShape(new id(e,t,i))}drawEllipse(e,t,i,s){return this.drawShape(new nd(e,t,i,s))}drawPolygon(...e){let t,i=!0;const s=e[0];s.points?(i=s.closeStroke,t=s.points):Array.isArray(e[0])?t=e[0]:t=e;const r=new Lo(t);return r.closeStroke=i,this.drawShape(r),this}drawShape(e){return this._holeMode?this._geometry.drawHole(e,this._matrix):this._geometry.drawShape(e,this._fillStyle.clone(),this._lineStyle.clone(),this._matrix),this}clear(){return this._geometry.clear(),this._lineStyle.reset(),this._fillStyle.reset(),this._boundsID++,this._matrix=null,this._holeMode=!1,this.currentPath=null,this}isFastRect(){const e=this._geometry.graphicsData;return e.length===1&&e[0].shape.type===Ni.RECT&&!e[0].matrix&&!e[0].holes.length&&!(e[0].lineStyle.visible&&e[0].lineStyle.width)}_render(e){this.finishPoly();const t=this._geometry;t.updateBatches(),t.batchable?(this.batchDirty!==t.batchDirty&&this._populateBatches(),this._renderBatched(e)):(e.batch.flush(),this._renderDirect(e))}_populateBatches(){const e=this._geometry,t=this.blendMode,i=e.batches.length;this.batchTint=-1,this._transformID=-1,this.batchDirty=e.batchDirty,this.batches.length=i,this.vertexData=new Float32Array(e.points);for(let s=0;s<i;s++){const r=e.batches[s],o=r.style.color,a=new Float32Array(this.vertexData.buffer,r.attribStart*4*2,r.attribSize*2),c=new Float32Array(e.uvsFloat32.buffer,r.attribStart*4*2,r.attribSize*2),l=new Uint16Array(e.indicesUint16.buffer,r.start*2,r.size),h={vertexData:a,blendMode:t,indices:l,uvs:c,_batchRGB:kt.shared.setValue(o).toRgbArray(),_tintRGB:o,_texture:r.style.texture,alpha:r.style.alpha,worldAlpha:1};this.batches[s]=h}}_renderBatched(e){if(this.batches.length){e.batch.setObjectRenderer(e.plugins[this.pluginName]),this.calculateVertices(),this.calculateTints();for(let t=0,i=this.batches.length;t<i;t++){const s=this.batches[t];s.worldAlpha=this.worldAlpha*s.alpha,e.plugins[this.pluginName].render(s)}}}_renderDirect(e){const t=this._resolveDirectShader(e),i=this._geometry,s=this.worldAlpha,r=t.uniforms,o=i.drawCalls;r.translationMatrix=this.transform.worldTransform,kt.shared.setValue(this._tintColor).premultiply(s).toArray(r.tint),e.shader.bind(t),e.geometry.bind(i,t),e.state.set(this.state);for(let a=0,c=o.length;a<c;a++)this._renderDrawCallDirect(e,i.drawCalls[a])}_renderDrawCallDirect(e,t){const{texArray:i,type:s,size:r,start:o}=t,a=i.count;for(let c=0;c<a;c++)e.texture.bind(i.elements[c],c);e.geometry.draw(s,r,o)}_resolveDirectShader(e){let t=this.shader;const i=this.pluginName;if(!t){if(!Kf[i]){const{maxTextures:s}=e.plugins[i],r=new Int32Array(s);for(let c=0;c<s;c++)r[c]=c;const o={tint:new Float32Array([1,1,1,1]),translationMatrix:new Bt,default:Qn.from({uSamplers:r},!0)},a=e.plugins[i]._shader.program;Kf[i]=new es(a,o)}t=Kf[i]}return t}_calculateBounds(){this.finishPoly();const e=this._geometry;if(!e.graphicsData.length)return;const{minX:t,minY:i,maxX:s,maxY:r}=e.bounds;this._bounds.addFrame(this.transform,t,i,s,r)}containsPoint(e){return this.worldTransform.applyInverse(e,Th._TEMP_POINT),this._geometry.containsPoint(Th._TEMP_POINT)}calculateTints(){if(this.batchTint!==this.tint){this.batchTint=this._tintColor.toNumber();for(let e=0;e<this.batches.length;e++){const t=this.batches[e];t._tintRGB=kt.shared.setValue(this._tintColor).multiply(t._batchRGB).toLittleEndianNumber()}}}calculateVertices(){const e=this.transform._worldID;if(this._transformID===e)return;this._transformID=e;const t=this.transform.worldTransform,i=t.a,s=t.b,r=t.c,o=t.d,a=t.tx,c=t.ty,l=this._geometry.points,h=this.vertexData;let u=0;for(let d=0;d<l.length;d+=2){const f=l[d],m=l[d+1];h[u++]=i*f+r*m+a,h[u++]=o*m+s*f+c}}closePath(){const e=this.currentPath;return e&&(e.closeStroke=!0,this.finishPoly()),this}setMatrix(e){return this._matrix=e,this}beginHole(){return this.finishPoly(),this._holeMode=!0,this}endHole(){return this.finishPoly(),this._holeMode=!1,this}destroy(e){this._geometry.refCount--,this._geometry.refCount===0&&this._geometry.dispose(),this._matrix=null,this.currentPath=null,this._lineStyle.destroy(),this._lineStyle=null,this._fillStyle.destroy(),this._fillStyle=null,this._geometry=null,this.shader=null,this.vertexData=null,this.batches.length=0,this.batches=null,super.destroy(e)}};dp.curves=Va,dp._TEMP_POINT=new Tt;let Ki=dp;class dk{constructor(e,t){this.uvBuffer=e,this.uvMatrix=t,this.data=null,this._bufferUpdateId=-1,this._textureUpdateId=-1,this._updateID=0}update(e){if(!e&&this._bufferUpdateId===this.uvBuffer._updateID&&this._textureUpdateId===this.uvMatrix._updateID)return;this._bufferUpdateId=this.uvBuffer._updateID,this._textureUpdateId=this.uvMatrix._updateID;const t=this.uvBuffer.data;(!this.data||this.data.length!==t.length)&&(this.data=new Float32Array(t.length)),this.uvMatrix.multiplyUvs(t,this.data),this._updateID++}}const Jf=new Tt,jy=new Lo,hS=class uS extends Mi{constructor(e,t,i,s=_s.TRIANGLES){super(),this.geometry=e,this.shader=t,this.state=i||Rs.for2d(),this.drawMode=s,this.start=0,this.size=0,this.uvs=null,this.indices=null,this.vertexData=new Float32Array(1),this.vertexDirty=-1,this._transformID=-1,this._roundPixels=Ve.ROUND_PIXELS,this.batchUvs=null}get geometry(){return this._geometry}set geometry(e){this._geometry!==e&&(this._geometry&&(this._geometry.refCount--,this._geometry.refCount===0&&this._geometry.dispose()),this._geometry=e,this._geometry&&this._geometry.refCount++,this.vertexDirty=-1)}get uvBuffer(){return this.geometry.buffers[1]}get verticesBuffer(){return this.geometry.buffers[0]}set material(e){this.shader=e}get material(){return this.shader}set blendMode(e){this.state.blendMode=e}get blendMode(){return this.state.blendMode}set roundPixels(e){this._roundPixels!==e&&(this._transformID=-1),this._roundPixels=e}get roundPixels(){return this._roundPixels}get tint(){return"tint"in this.shader?this.shader.tint:null}set tint(e){this.shader.tint=e}get tintValue(){return this.shader.tintValue}get texture(){return"texture"in this.shader?this.shader.texture:null}set texture(e){this.shader.texture=e}_render(e){const t=this.geometry.buffers[0].data;this.shader.batchable&&this.drawMode===_s.TRIANGLES&&t.length<uS.BATCHABLE_SIZE*2?this._renderToBatch(e):this._renderDefault(e)}_renderDefault(e){const t=this.shader;t.alpha=this.worldAlpha,t.update&&t.update(),e.batch.flush(),t.uniforms.translationMatrix=this.transform.worldTransform.toArray(!0),e.shader.bind(t),e.state.set(this.state),e.geometry.bind(this.geometry,t),e.geometry.draw(this.drawMode,this.size,this.start,this.geometry.instanceCount)}_renderToBatch(e){const t=this.geometry,i=this.shader;i.uvMatrix&&(i.uvMatrix.update(),this.calculateUvs()),this.calculateVertices(),this.indices=t.indexBuffer.data,this._tintRGB=i._tintRGB,this._texture=i.texture;const s=this.material.pluginName;e.batch.setObjectRenderer(e.plugins[s]),e.plugins[s].render(this)}calculateVertices(){const e=this.geometry.buffers[0],t=e.data,i=e._updateID;if(i===this.vertexDirty&&this._transformID===this.transform._worldID)return;this._transformID=this.transform._worldID,this.vertexData.length!==t.length&&(this.vertexData=new Float32Array(t.length));const s=this.transform.worldTransform,r=s.a,o=s.b,a=s.c,c=s.d,l=s.tx,h=s.ty,u=this.vertexData;for(let d=0;d<u.length/2;d++){const f=t[d*2],m=t[d*2+1];u[d*2]=r*f+a*m+l,u[d*2+1]=o*f+c*m+h}if(this._roundPixels){const d=Ve.RESOLUTION;for(let f=0;f<u.length;++f)u[f]=Math.round(u[f]*d)/d}this.vertexDirty=i}calculateUvs(){const e=this.geometry.buffers[1],t=this.shader;t.uvMatrix.isSimple?this.uvs=e.data:(this.batchUvs||(this.batchUvs=new dk(e,t.uvMatrix)),this.batchUvs.update(),this.uvs=this.batchUvs.data)}_calculateBounds(){this.calculateVertices(),this._bounds.addVertexData(this.vertexData,0,this.vertexData.length)}containsPoint(e){if(!this.getBounds().contains(e.x,e.y))return!1;this.worldTransform.applyInverse(e,Jf);const t=this.geometry.getBuffer("aVertexPosition").data,i=jy.points,s=this.geometry.getIndex().data,r=s.length,o=this.drawMode===4?3:1;for(let a=0;a+2<r;a+=o){const c=s[a]*2,l=s[a+1]*2,h=s[a+2]*2;if(i[0]=t[c],i[1]=t[c+1],i[2]=t[l],i[3]=t[l+1],i[4]=t[h],i[5]=t[h+1],jy.contains(Jf.x,Jf.y))return!0}return!1}destroy(e){super.destroy(e),this._cachedTexture&&(this._cachedTexture.destroy(),this._cachedTexture=null),this.geometry=null,this.shader=null,this.state=null,this.uvs=null,this.indices=null,this.vertexData=null}};hS.BATCHABLE_SIZE=100;let ec=hS;class Fg extends Ps{constructor(e,t,i){super();const s=new zt(e),r=new zt(t,!0),o=new zt(i,!0,!0);this.addAttribute("aVertexPosition",s,2,!1,He.FLOAT).addAttribute("aTextureCoord",r,2,!1,He.FLOAT).addIndex(o),this._updateId=-1}get vertexDirtyId(){return this.buffers[0]._updateID}}var fk=`varying vec2 vTextureCoord;
uniform vec4 uColor;
uniform sampler2D uSampler;
void main(void)
{
gl_FragColor = texture2D(uSampler, vTextureCoord) * uColor;
}
`,mk=`attribute vec2 aVertexPosition;
attribute vec2 aTextureCoord;
uniform mat3 projectionMatrix;
uniform mat3 translationMatrix;
uniform mat3 uTextureMatrix;
varying vec2 vTextureCoord;
void main(void)
{
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
vTextureCoord = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;
}
`;class ru extends es{constructor(e,t){const i={uSampler:e,alpha:1,uTextureMatrix:Bt.IDENTITY,uColor:new Float32Array([1,1,1,1])};t=Object.assign({tint:16777215,alpha:1,pluginName:"batch"},t),t.uniforms&&Object.assign(i,t.uniforms),super(t.program||Ts.from(mk,fk),i),this._colorDirty=!1,this.uvMatrix=new Mg(e),this.batchable=t.program===void 0,this.pluginName=t.pluginName,this._tintColor=new kt(t.tint),this._tintRGB=this._tintColor.toLittleEndianNumber(),this._colorDirty=!0,this.alpha=t.alpha}get texture(){return this.uniforms.uSampler}set texture(e){this.uniforms.uSampler!==e&&(!this.uniforms.uSampler.baseTexture.alphaMode!=!e.baseTexture.alphaMode&&(this._colorDirty=!0),this.uniforms.uSampler=e,this.uvMatrix.texture=e)}set alpha(e){e!==this._alpha&&(this._alpha=e,this._colorDirty=!0)}get alpha(){return this._alpha}set tint(e){e!==this.tint&&(this._tintColor.setValue(e),this._tintRGB=this._tintColor.toLittleEndianNumber(),this._colorDirty=!0)}get tint(){return this._tintColor.value}get tintValue(){return this._tintColor.toNumber()}update(){if(this._colorDirty){this._colorDirty=!1;const e=this.texture.baseTexture.alphaMode;kt.shared.setValue(this._tintColor).premultiply(this._alpha,e).toArray(this.uniforms.uColor)}this.uvMatrix.update()&&(this.uniforms.uTextureMatrix=this.uvMatrix.mapCoord)}}class pk extends ec{constructor(e=it.EMPTY,t,i,s,r){const o=new Fg(t,i,s);o.getBuffer("aVertexPosition").static=!1;const a=new ru(e);super(o,a,null,r),this.autoUpdate=!0}get vertices(){return this.geometry.getBuffer("aVertexPosition").data}set vertices(e){this.geometry.getBuffer("aVertexPosition").data=e}_render(e){this.autoUpdate&&this.geometry.getBuffer("aVertexPosition").update(),super._render(e)}}class Wy{constructor(e,t,i){this.geometry=new Ps,this.indexBuffer=null,this.size=i,this.dynamicProperties=[],this.staticProperties=[];for(let s=0;s<e.length;++s){let r=e[s];r={attributeName:r.attributeName,size:r.size,uploadFunction:r.uploadFunction,type:r.type||He.FLOAT,offset:r.offset},t[s]?this.dynamicProperties.push(r):this.staticProperties.push(r)}this.staticStride=0,this.staticBuffer=null,this.staticData=null,this.staticDataUint32=null,this.dynamicStride=0,this.dynamicBuffer=null,this.dynamicData=null,this.dynamicDataUint32=null,this._updateID=0,this.initBuffers()}initBuffers(){const e=this.geometry;let t=0;this.indexBuffer=new zt(NI(this.size),!0,!0),e.addIndex(this.indexBuffer),this.dynamicStride=0;for(let o=0;o<this.dynamicProperties.length;++o){const a=this.dynamicProperties[o];a.offset=t,t+=a.size,this.dynamicStride+=a.size}const i=new ArrayBuffer(this.size*this.dynamicStride*4*4);this.dynamicData=new Float32Array(i),this.dynamicDataUint32=new Uint32Array(i),this.dynamicBuffer=new zt(this.dynamicData,!1,!1);let s=0;this.staticStride=0;for(let o=0;o<this.staticProperties.length;++o){const a=this.staticProperties[o];a.offset=s,s+=a.size,this.staticStride+=a.size}const r=new ArrayBuffer(this.size*this.staticStride*4*4);this.staticData=new Float32Array(r),this.staticDataUint32=new Uint32Array(r),this.staticBuffer=new zt(this.staticData,!0,!1);for(let o=0;o<this.dynamicProperties.length;++o){const a=this.dynamicProperties[o];e.addAttribute(a.attributeName,this.dynamicBuffer,0,a.type===He.UNSIGNED_BYTE,a.type,this.dynamicStride*4,a.offset*4)}for(let o=0;o<this.staticProperties.length;++o){const a=this.staticProperties[o];e.addAttribute(a.attributeName,this.staticBuffer,0,a.type===He.UNSIGNED_BYTE,a.type,this.staticStride*4,a.offset*4)}}uploadDynamic(e,t,i){for(let s=0;s<this.dynamicProperties.length;s++){const r=this.dynamicProperties[s];r.uploadFunction(e,t,i,r.type===He.UNSIGNED_BYTE?this.dynamicDataUint32:this.dynamicData,this.dynamicStride,r.offset)}this.dynamicBuffer._updateID++}uploadStatic(e,t,i){for(let s=0;s<this.staticProperties.length;s++){const r=this.staticProperties[s];r.uploadFunction(e,t,i,r.type===He.UNSIGNED_BYTE?this.staticDataUint32:this.staticData,this.staticStride,r.offset)}this.staticBuffer._updateID++}destroy(){this.indexBuffer=null,this.dynamicProperties=null,this.dynamicBuffer=null,this.dynamicData=null,this.dynamicDataUint32=null,this.staticProperties=null,this.staticBuffer=null,this.staticData=null,this.staticDataUint32=null,this.geometry.destroy()}}var gk=`varying vec2 vTextureCoord;
varying vec4 vColor;
uniform sampler2D uSampler;
void main(void){
vec4 color = texture2D(uSampler, vTextureCoord) * vColor;
gl_FragColor = color;
}`,vk=`attribute vec2 aVertexPosition;
attribute vec2 aTextureCoord;
attribute vec4 aColor;
attribute vec2 aPositionCoord;
attribute float aRotation;
uniform mat3 translationMatrix;
uniform vec4 uColor;
varying vec2 vTextureCoord;
varying vec4 vColor;
void main(void){
float x = (aVertexPosition.x) * cos(aRotation) - (aVertexPosition.y) * sin(aRotation);
float y = (aVertexPosition.x) * sin(aRotation) + (aVertexPosition.y) * cos(aRotation);
vec2 v = vec2(x, y);
v = v + aPositionCoord;
gl_Position = vec4((translationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);
vTextureCoord = aTextureCoord;
vColor = aColor * uColor;
}
`;class dS extends rd{constructor(e){super(e),this.shader=null,this.properties=null,this.tempMatrix=new Bt,this.properties=[{attributeName:"aVertexPosition",size:2,uploadFunction:this.uploadVertices,offset:0},{attributeName:"aPositionCoord",size:2,uploadFunction:this.uploadPosition,offset:0},{attributeName:"aRotation",size:1,uploadFunction:this.uploadRotation,offset:0},{attributeName:"aTextureCoord",size:2,uploadFunction:this.uploadUvs,offset:0},{attributeName:"aColor",size:1,type:He.UNSIGNED_BYTE,uploadFunction:this.uploadTint,offset:0}],this.shader=es.from(vk,gk,{}),this.state=Rs.for2d()}render(e){const t=e.children,i=e._maxSize,s=e._batchSize,r=this.renderer;let o=t.length;if(o===0)return;o>i&&!e.autoResize&&(o=i);let a=e._buffers;a||(a=e._buffers=this.generateBuffers(e));const c=t[0]._texture.baseTexture,l=c.alphaMode>0;this.state.blendMode=hw(e.blendMode,l),r.state.set(this.state);const h=r.gl,u=e.worldTransform.copyTo(this.tempMatrix);u.prepend(r.globalUniforms.uniforms.projectionMatrix),this.shader.uniforms.translationMatrix=u.toArray(!0),this.shader.uniforms.uColor=kt.shared.setValue(e.tintRgb).premultiply(e.worldAlpha,l).toArray(this.shader.uniforms.uColor),this.shader.uniforms.uSampler=c,this.renderer.shader.bind(this.shader);let d=!1;for(let f=0,m=0;f<o;f+=s,m+=1){let p=o-f;p>s&&(p=s),m>=a.length&&a.push(this._generateOneMoreBuffer(e));const g=a[m];g.uploadDynamic(t,f,p);const v=e._bufferUpdateIDs[m]||0;d=d||g._updateID<v,d&&(g._updateID=e._updateID,g.uploadStatic(t,f,p)),r.geometry.bind(g.geometry),h.drawElements(h.TRIANGLES,p*6,h.UNSIGNED_SHORT,0)}}generateBuffers(e){const t=[],i=e._maxSize,s=e._batchSize,r=e._properties;for(let o=0;o<i;o+=s)t.push(new Wy(this.properties,r,s));return t}_generateOneMoreBuffer(e){const t=e._batchSize,i=e._properties;return new Wy(this.properties,i,t)}uploadVertices(e,t,i,s,r,o){let a=0,c=0,l=0,h=0;for(let u=0;u<i;++u){const d=e[t+u],f=d._texture,m=d.scale.x,p=d.scale.y,g=f.trim,v=f.orig;g?(c=g.x-d.anchor.x*v.width,a=c+g.width,h=g.y-d.anchor.y*v.height,l=h+g.height):(a=v.width*(1-d.anchor.x),c=v.width*-d.anchor.x,l=v.height*(1-d.anchor.y),h=v.height*-d.anchor.y),s[o]=c*m,s[o+1]=h*p,s[o+r]=a*m,s[o+r+1]=h*p,s[o+r*2]=a*m,s[o+r*2+1]=l*p,s[o+r*3]=c*m,s[o+r*3+1]=l*p,o+=r*4}}uploadPosition(e,t,i,s,r,o){for(let a=0;a<i;a++){const c=e[t+a].position;s[o]=c.x,s[o+1]=c.y,s[o+r]=c.x,s[o+r+1]=c.y,s[o+r*2]=c.x,s[o+r*2+1]=c.y,s[o+r*3]=c.x,s[o+r*3+1]=c.y,o+=r*4}}uploadRotation(e,t,i,s,r,o){for(let a=0;a<i;a++){const c=e[t+a].rotation;s[o]=c,s[o+r]=c,s[o+r*2]=c,s[o+r*3]=c,o+=r*4}}uploadUvs(e,t,i,s,r,o){for(let a=0;a<i;++a){const c=e[t+a]._texture._uvs;c?(s[o]=c.x0,s[o+1]=c.y0,s[o+r]=c.x1,s[o+r+1]=c.y1,s[o+r*2]=c.x2,s[o+r*2+1]=c.y2,s[o+r*3]=c.x3,s[o+r*3+1]=c.y3,o+=r*4):(s[o]=0,s[o+1]=0,s[o+r]=0,s[o+r+1]=0,s[o+r*2]=0,s[o+r*2+1]=0,s[o+r*3]=0,s[o+r*3+1]=0,o+=r*4)}}uploadTint(e,t,i,s,r,o){for(let a=0;a<i;++a){const c=e[t+a],l=kt.shared.setValue(c._tintRGB).toPremultiplied(c.alpha,c.texture.baseTexture.alphaMode>0);s[o]=l,s[o+r]=l,s[o+r*2]=l,s[o+r*3]=l,o+=r*4}}destroy(){super.destroy(),this.shader&&(this.shader.destroy(),this.shader=null),this.tempMatrix=null}}dS.extension={name:"particle",type:$e.RendererPlugin};je.add(dS);var ld=(n=>(n[n.LINEAR_VERTICAL=0]="LINEAR_VERTICAL",n[n.LINEAR_HORIZONTAL=1]="LINEAR_HORIZONTAL",n))(ld||{});const Kc={willReadFrequently:!0},cs=class qe{static get experimentalLetterSpacingSupported(){let e=qe._experimentalLetterSpacingSupported;if(e!==void 0){const t=Ve.ADAPTER.getCanvasRenderingContext2D().prototype;e=qe._experimentalLetterSpacingSupported="letterSpacing"in t||"textLetterSpacing"in t}return e}constructor(e,t,i,s,r,o,a,c,l){this.text=e,this.style=t,this.width=i,this.height=s,this.lines=r,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=c,this.fontProperties=l}static measureText(e,t,i,s=qe._canvas){i=i??t.wordWrap;const r=t.toFontString(),o=qe.measureFont(r);o.fontSize===0&&(o.fontSize=t.fontSize,o.ascent=t.fontSize);const a=s.getContext("2d",Kc);a.font=r;const c=(i?qe.wordWrap(e,t,s):e).split(/(?:\r\n|\r|\n)/),l=new Array(c.length);let h=0;for(let m=0;m<c.length;m++){const p=qe._measureText(c[m],t.letterSpacing,a);l[m]=p,h=Math.max(h,p)}let u=h+t.strokeThickness;t.dropShadow&&(u+=t.dropShadowDistance);const d=t.lineHeight||o.fontSize+t.strokeThickness;let f=Math.max(d,o.fontSize+t.strokeThickness*2)+t.leading+(c.length-1)*(d+t.leading);return t.dropShadow&&(f+=t.dropShadowDistance),new qe(e,t,u,f,c,l,d+t.leading,h,o)}static _measureText(e,t,i){let s=!1;qe.experimentalLetterSpacingSupported&&(qe.experimentalLetterSpacing?(i.letterSpacing=`${t}px`,i.textLetterSpacing=`${t}px`,s=!0):(i.letterSpacing="0px",i.textLetterSpacing="0px"));let r=i.measureText(e).width;return r>0&&(s?r-=t:r+=(qe.graphemeSegmenter(e).length-1)*t),r}static wordWrap(e,t,i=qe._canvas){const s=i.getContext("2d",Kc);let r=0,o="",a="";const c=Object.create(null),{letterSpacing:l,whiteSpace:h}=t,u=qe.collapseSpaces(h),d=qe.collapseNewlines(h);let f=!u;const m=t.wordWrapWidth+l,p=qe.tokenize(e);for(let g=0;g<p.length;g++){let v=p[g];if(qe.isNewline(v)){if(!d){a+=qe.addLine(o),f=!u,o="",r=0;continue}v=" "}if(u){const y=qe.isBreakingSpace(v),x=qe.isBreakingSpace(o[o.length-1]);if(y&&x)continue}const b=qe.getFromCache(v,l,c,s);if(b>m)if(o!==""&&(a+=qe.addLine(o),o="",r=0),qe.canBreakWords(v,t.breakWords)){const y=qe.wordWrapSplit(v);for(let x=0;x<y.length;x++){let _=y[x],E=_,S=1;for(;y[x+S];){const M=y[x+S];if(!qe.canBreakChars(E,M,v,x,t.breakWords))_+=M;else break;E=M,S++}x+=S-1;const C=qe.getFromCache(_,l,c,s);C+r>m&&(a+=qe.addLine(o),f=!1,o="",r=0),o+=_,r+=C}}else{o.length>0&&(a+=qe.addLine(o),o="",r=0);const y=g===p.length-1;a+=qe.addLine(v,!y),f=!1,o="",r=0}else b+r>m&&(f=!1,a+=qe.addLine(o),o="",r=0),(o.length>0||!qe.isBreakingSpace(v)||f)&&(o+=v,r+=b)}return a+=qe.addLine(o,!1),a}static addLine(e,t=!0){return e=qe.trimRight(e),e=t?`${e}
`:e,e}static getFromCache(e,t,i,s){let r=i[e];return typeof r!="number"&&(r=qe._measureText(e,t,s)+t,i[e]=r),r}static collapseSpaces(e){return e==="normal"||e==="pre-line"}static collapseNewlines(e){return e==="normal"}static trimRight(e){if(typeof e!="string")return"";for(let t=e.length-1;t>=0;t--){const i=e[t];if(!qe.isBreakingSpace(i))break;e=e.slice(0,-1)}return e}static isNewline(e){return typeof e!="string"?!1:qe._newlines.includes(e.charCodeAt(0))}static isBreakingSpace(e,t){return typeof e!="string"?!1:qe._breakingSpaces.includes(e.charCodeAt(0))}static tokenize(e){const t=[];let i="";if(typeof e!="string")return t;for(let s=0;s<e.length;s++){const r=e[s],o=e[s+1];if(qe.isBreakingSpace(r,o)||qe.isNewline(r)){i!==""&&(t.push(i),i=""),t.push(r);continue}i+=r}return i!==""&&t.push(i),t}static canBreakWords(e,t){return t}static canBreakChars(e,t,i,s,r){return!0}static wordWrapSplit(e){return qe.graphemeSegmenter(e)}static measureFont(e){if(qe._fonts[e])return qe._fonts[e];const t={ascent:0,descent:0,fontSize:0},i=qe._canvas,s=qe._context;s.font=e;const r=qe.METRICS_STRING+qe.BASELINE_SYMBOL,o=Math.ceil(s.measureText(r).width);let a=Math.ceil(s.measureText(qe.BASELINE_SYMBOL).width);const c=Math.ceil(qe.HEIGHT_MULTIPLIER*a);if(a=a*qe.BASELINE_MULTIPLIER|0,o===0||c===0)return qe._fonts[e]=t,t;i.width=o,i.height=c,s.fillStyle="#f00",s.fillRect(0,0,o,c),s.font=e,s.textBaseline="alphabetic",s.fillStyle="#000",s.fillText(r,0,a);const l=s.getImageData(0,0,o,c).data,h=l.length,u=o*4;let d=0,f=0,m=!1;for(d=0;d<a;++d){for(let p=0;p<u;p+=4)if(l[f+p]!==255){m=!0;break}if(!m)f+=u;else break}for(t.ascent=a-d,f=h-u,m=!1,d=c;d>a;--d){for(let p=0;p<u;p+=4)if(l[f+p]!==255){m=!0;break}if(!m)f-=u;else break}return t.descent=d-a,t.fontSize=t.ascent+t.descent,qe._fonts[e]=t,t}static clearMetrics(e=""){e?delete qe._fonts[e]:qe._fonts={}}static get _canvas(){var e;if(!qe.__canvas){let t;try{const i=new OffscreenCanvas(0,0);if((e=i.getContext("2d",Kc))!=null&&e.measureText)return qe.__canvas=i,i;t=Ve.ADAPTER.createCanvas()}catch{t=Ve.ADAPTER.createCanvas()}t.width=t.height=10,qe.__canvas=t}return qe.__canvas}static get _context(){return qe.__context||(qe.__context=qe._canvas.getContext("2d",Kc)),qe.__context}};cs.METRICS_STRING="|ÉqÅ",cs.BASELINE_SYMBOL="M",cs.BASELINE_MULTIPLIER=1.4,cs.HEIGHT_MULTIPLIER=2,cs.graphemeSegmenter=(()=>{if(typeof(Intl==null?void 0:Intl.Segmenter)=="function"){const n=new Intl.Segmenter;return e=>[...n.segment(e)].map(t=>t.segment)}return n=>[...n]})(),cs.experimentalLetterSpacing=!1,cs._fonts={},cs._newlines=[10,13],cs._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];let kr=cs;const yk=["serif","sans-serif","monospace","cursive","fantasy","system-ui"],fS=class El{constructor(e){this.styleID=0,this.reset(),Qf(this,e,e)}clone(){const e={};return Qf(e,this,El.defaultStyle),new El(e)}reset(){Qf(this,El.defaultStyle,El.defaultStyle)}get align(){return this._align}set align(e){this._align!==e&&(this._align=e,this.styleID++)}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords!==e&&(this._breakWords=e,this.styleID++)}get dropShadow(){return this._dropShadow}set dropShadow(e){this._dropShadow!==e&&(this._dropShadow=e,this.styleID++)}get dropShadowAlpha(){return this._dropShadowAlpha}set dropShadowAlpha(e){this._dropShadowAlpha!==e&&(this._dropShadowAlpha=e,this.styleID++)}get dropShadowAngle(){return this._dropShadowAngle}set dropShadowAngle(e){this._dropShadowAngle!==e&&(this._dropShadowAngle=e,this.styleID++)}get dropShadowBlur(){return this._dropShadowBlur}set dropShadowBlur(e){this._dropShadowBlur!==e&&(this._dropShadowBlur=e,this.styleID++)}get dropShadowColor(){return this._dropShadowColor}set dropShadowColor(e){const t=Zf(e);this._dropShadowColor!==t&&(this._dropShadowColor=t,this.styleID++)}get dropShadowDistance(){return this._dropShadowDistance}set dropShadowDistance(e){this._dropShadowDistance!==e&&(this._dropShadowDistance=e,this.styleID++)}get fill(){return this._fill}set fill(e){const t=Zf(e);this._fill!==t&&(this._fill=t,this.styleID++)}get fillGradientType(){return this._fillGradientType}set fillGradientType(e){this._fillGradientType!==e&&(this._fillGradientType=e,this.styleID++)}get fillGradientStops(){return this._fillGradientStops}set fillGradientStops(e){bk(this._fillGradientStops,e)||(this._fillGradientStops=e,this.styleID++)}get fontFamily(){return this._fontFamily}set fontFamily(e){this.fontFamily!==e&&(this._fontFamily=e,this.styleID++)}get fontSize(){return this._fontSize}set fontSize(e){this._fontSize!==e&&(this._fontSize=e,this.styleID++)}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle!==e&&(this._fontStyle=e,this.styleID++)}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant!==e&&(this._fontVariant=e,this.styleID++)}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight!==e&&(this._fontWeight=e,this.styleID++)}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing!==e&&(this._letterSpacing=e,this.styleID++)}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight!==e&&(this._lineHeight=e,this.styleID++)}get leading(){return this._leading}set leading(e){this._leading!==e&&(this._leading=e,this.styleID++)}get lineJoin(){return this._lineJoin}set lineJoin(e){this._lineJoin!==e&&(this._lineJoin=e,this.styleID++)}get miterLimit(){return this._miterLimit}set miterLimit(e){this._miterLimit!==e&&(this._miterLimit=e,this.styleID++)}get padding(){return this._padding}set padding(e){this._padding!==e&&(this._padding=e,this.styleID++)}get stroke(){return this._stroke}set stroke(e){const t=Zf(e);this._stroke!==t&&(this._stroke=t,this.styleID++)}get strokeThickness(){return this._strokeThickness}set strokeThickness(e){this._strokeThickness!==e&&(this._strokeThickness=e,this.styleID++)}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline!==e&&(this._textBaseline=e,this.styleID++)}get trim(){return this._trim}set trim(e){this._trim!==e&&(this._trim=e,this.styleID++)}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace!==e&&(this._whiteSpace=e,this.styleID++)}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap!==e&&(this._wordWrap=e,this.styleID++)}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth!==e&&(this._wordWrapWidth=e,this.styleID++)}toFontString(){const e=typeof this.fontSize=="number"?`${this.fontSize}px`:this.fontSize;let t=this.fontFamily;Array.isArray(this.fontFamily)||(t=this.fontFamily.split(","));for(let i=t.length-1;i>=0;i--){let s=t[i].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!yk.includes(s)&&(s=`"${s}"`),t[i]=s}return`${this.fontStyle} ${this.fontVariant} ${this.fontWeight} ${e} ${t.join(",")}`}};fS.defaultStyle={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fillGradientType:ld.LINEAR_VERTICAL,fillGradientStops:[],fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,lineJoin:"miter",miterLimit:10,padding:0,stroke:"black",strokeThickness:0,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};let Jr=fS;function Zf(n){const e=kt.shared,t=i=>{const s=e.setValue(i);return s.alpha===1?s.toHex():s.toRgbaString()};return Array.isArray(n)?n.map(t):t(n)}function bk(n,e){if(!Array.isArray(n)||!Array.isArray(e)||n.length!==e.length)return!1;for(let t=0;t<n.length;++t)if(n[t]!==e[t])return!1;return!0}function Qf(n,e,t){for(const i in t)Array.isArray(e[i])?n[i]=e[i].slice():n[i]=e[i]}const xk={texture:!0,children:!1,baseTexture:!0},mS=class fp extends to{constructor(e,t,i){let s=!1;i||(i=Ve.ADAPTER.createCanvas(),s=!0),i.width=3,i.height=3;const r=it.from(i);r.orig=new dt,r.trim=new dt,super(r),this._ownCanvas=s,this.canvas=i,this.context=i.getContext("2d",{willReadFrequently:!0}),this._resolution=fp.defaultResolution??Ve.RESOLUTION,this._autoResolution=fp.defaultAutoResolution,this._text=null,this._style=null,this._styleListener=null,this._font="",this.text=e,this.style=t,this.localStyleID=-1}static get experimentalLetterSpacing(){return kr.experimentalLetterSpacing}static set experimentalLetterSpacing(e){pt("7.1.0","Text.experimentalLetterSpacing is deprecated, use TextMetrics.experimentalLetterSpacing"),kr.experimentalLetterSpacing=e}updateText(e){const t=this._style;if(this.localStyleID!==t.styleID&&(this.dirty=!0,this.localStyleID=t.styleID),!this.dirty&&e)return;this._font=this._style.toFontString();const i=this.context,s=kr.measureText(this._text||" ",this._style,this._style.wordWrap,this.canvas),r=s.width,o=s.height,a=s.lines,c=s.lineHeight,l=s.lineWidths,h=s.maxLineWidth,u=s.fontProperties;this.canvas.width=Math.ceil(Math.ceil(Math.max(1,r)+t.padding*2)*this._resolution),this.canvas.height=Math.ceil(Math.ceil(Math.max(1,o)+t.padding*2)*this._resolution),i.scale(this._resolution,this._resolution),i.clearRect(0,0,this.canvas.width,this.canvas.height),i.font=this._font,i.lineWidth=t.strokeThickness,i.textBaseline=t.textBaseline,i.lineJoin=t.lineJoin,i.miterLimit=t.miterLimit;let d,f;const m=t.dropShadow?2:1;for(let p=0;p<m;++p){const g=t.dropShadow&&p===0,v=g?Math.ceil(Math.max(1,o)+t.padding*2):0,b=v*this._resolution;if(g){i.fillStyle="black",i.strokeStyle="black";const x=t.dropShadowColor,_=t.dropShadowBlur*this._resolution,E=t.dropShadowDistance*this._resolution;i.shadowColor=kt.shared.setValue(x).setAlpha(t.dropShadowAlpha).toRgbaString(),i.shadowBlur=_,i.shadowOffsetX=Math.cos(t.dropShadowAngle)*E,i.shadowOffsetY=Math.sin(t.dropShadowAngle)*E+b}else i.fillStyle=this._generateFillStyle(t,a,s),i.strokeStyle=t.stroke,i.shadowColor="black",i.shadowBlur=0,i.shadowOffsetX=0,i.shadowOffsetY=0;let y=(c-u.fontSize)/2;c-u.fontSize<0&&(y=0);for(let x=0;x<a.length;x++)d=t.strokeThickness/2,f=t.strokeThickness/2+x*c+u.ascent+y,t.align==="right"?d+=h-l[x]:t.align==="center"&&(d+=(h-l[x])/2),t.stroke&&t.strokeThickness&&this.drawLetterSpacing(a[x],d+t.padding,f+t.padding-v,!0),t.fill&&this.drawLetterSpacing(a[x],d+t.padding,f+t.padding-v)}this.updateTexture()}drawLetterSpacing(e,t,i,s=!1){const r=this._style.letterSpacing;let o=!1;if(kr.experimentalLetterSpacingSupported&&(kr.experimentalLetterSpacing?(this.context.letterSpacing=`${r}px`,this.context.textLetterSpacing=`${r}px`,o=!0):(this.context.letterSpacing="0px",this.context.textLetterSpacing="0px")),r===0||o){s?this.context.strokeText(e,t,i):this.context.fillText(e,t,i);return}let a=t;const c=kr.graphemeSegmenter(e);let l=this.context.measureText(e).width,h=0;for(let u=0;u<c.length;++u){const d=c[u];s?this.context.strokeText(d,a,i):this.context.fillText(d,a,i);let f="";for(let m=u+1;m<c.length;++m)f+=c[m];h=this.context.measureText(f).width,a+=l-h+r,l=h}}updateTexture(){const e=this.canvas;if(this._style.trim){const o=VI(e);o.data&&(e.width=o.width,e.height=o.height,this.context.putImageData(o.data,0,0))}const t=this._texture,i=this._style,s=i.trim?0:i.padding,r=t.baseTexture;t.trim.width=t._frame.width=e.width/this._resolution,t.trim.height=t._frame.height=e.height/this._resolution,t.trim.x=-s,t.trim.y=-s,t.orig.width=t._frame.width-s*2,t.orig.height=t._frame.height-s*2,this._onTextureUpdate(),r.setRealSize(e.width,e.height,this._resolution),t.updateUvs(),this.dirty=!1}_render(e){this._autoResolution&&this._resolution!==e.resolution&&(this._resolution=e.resolution,this.dirty=!0),this.updateText(!0),super._render(e)}updateTransform(){this.updateText(!0),super.updateTransform()}getBounds(e,t){return this.updateText(!0),this._textureID===-1&&(e=!1),super.getBounds(e,t)}getLocalBounds(e){return this.updateText(!0),super.getLocalBounds.call(this,e)}_calculateBounds(){this.calculateVertices(),this._bounds.addQuad(this.vertexData)}_generateFillStyle(e,t,i){const s=e.fill;if(Array.isArray(s)){if(s.length===1)return s[0]}else return s;let r;const o=e.dropShadow?e.dropShadowDistance:0,a=e.padding||0,c=this.canvas.width/this._resolution-o-a*2,l=this.canvas.height/this._resolution-o-a*2,h=s.slice(),u=e.fillGradientStops.slice();if(!u.length){const d=h.length+1;for(let f=1;f<d;++f)u.push(f/d)}if(h.unshift(s[0]),u.unshift(0),h.push(s[s.length-1]),u.push(1),e.fillGradientType===ld.LINEAR_VERTICAL){r=this.context.createLinearGradient(c/2,a,c/2,l+a);const d=i.fontProperties.fontSize+e.strokeThickness;for(let f=0;f<t.length;f++){const m=i.lineHeight*(f-1)+d,p=i.lineHeight*f;let g=p;f>0&&m>p&&(g=(p+m)/2);const v=p+d,b=i.lineHeight*(f+1);let y=v;f+1<t.length&&b<v&&(y=(v+b)/2);const x=(y-g)/l;for(let _=0;_<h.length;_++){let E=0;typeof u[_]=="number"?E=u[_]:E=_/h.length;let S=Math.min(1,Math.max(0,g/l+E*x));S=Number(S.toFixed(5)),r.addColorStop(S,h[_])}}}else{r=this.context.createLinearGradient(a,l/2,c+a,l/2);const d=h.length+1;let f=1;for(let m=0;m<h.length;m++){let p;typeof u[m]=="number"?p=u[m]:p=f/d,r.addColorStop(p,h[m]),f++}}return r}destroy(e){typeof e=="boolean"&&(e={children:e}),e=Object.assign({},xk,e),super.destroy(e),this._ownCanvas&&(this.canvas.height=this.canvas.width=0),this.context=null,this.canvas=null,this._style=null}get width(){return this.updateText(!0),Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this.updateText(!0);const t=Vr(this.scale.x)||1;this.scale.x=t*e/this._texture.orig.width,this._width=e}get height(){return this.updateText(!0),Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this.updateText(!0);const t=Vr(this.scale.y)||1;this.scale.y=t*e/this._texture.orig.height,this._height=e}get style(){return this._style}set style(e){e=e||{},e instanceof Jr?this._style=e:this._style=new Jr(e),this.localStyleID=-1,this.dirty=!0}get text(){return this._text}set text(e){e=String(e??""),this._text!==e&&(this._text=e,this.dirty=!0)}get resolution(){return this._resolution}set resolution(e){this._autoResolution=!1,this._resolution!==e&&(this._resolution=e,this.dirty=!0)}};mS.defaultAutoResolution=!0;let Lg=mS;class wk{constructor(e){this.maxItemsPerFrame=e,this.itemsLeft=0}beginFrame(){this.itemsLeft=this.maxItemsPerFrame}allowedToUpload(){return this.itemsLeft-- >0}}function Sk(n,e){var i;let t=!1;if((i=n==null?void 0:n._textures)!=null&&i.length){for(let s=0;s<n._textures.length;s++)if(n._textures[s]instanceof it){const r=n._textures[s].baseTexture;e.includes(r)||(e.push(r),t=!0)}}return t}function _k(n,e){if(n.baseTexture instanceof rt){const t=n.baseTexture;return e.includes(t)||e.push(t),!0}return!1}function Tk(n,e){if(n._texture&&n._texture instanceof it){const t=n._texture.baseTexture;return e.includes(t)||e.push(t),!0}return!1}function Ek(n,e){return e instanceof Lg?(e.updateText(!0),!0):!1}function Ck(n,e){if(e instanceof Jr){const t=e.toFontString();return kr.measureFont(t),!0}return!1}function Mk(n,e){if(n instanceof Lg){e.includes(n.style)||e.push(n.style),e.includes(n)||e.push(n);const t=n._texture.baseTexture;return e.includes(t)||e.push(t),!0}return!1}function Ak(n,e){return n instanceof Jr?(e.includes(n)||e.push(n),!0):!1}const pS=class gS{constructor(e){this.limiter=new wk(gS.uploadsPerFrame),this.renderer=e,this.uploadHookHelper=null,this.queue=[],this.addHooks=[],this.uploadHooks=[],this.completes=[],this.ticking=!1,this.delayedTick=()=>{this.queue&&this.prepareItems()},this.registerFindHook(Mk),this.registerFindHook(Ak),this.registerFindHook(Sk),this.registerFindHook(_k),this.registerFindHook(Tk),this.registerUploadHook(Ek),this.registerUploadHook(Ck)}upload(e){return new Promise(t=>{e&&this.add(e),this.queue.length?(this.completes.push(t),this.ticking||(this.ticking=!0,nn.system.addOnce(this.tick,this,Uo.UTILITY))):t()})}tick(){setTimeout(this.delayedTick,0)}prepareItems(){for(this.limiter.beginFrame();this.queue.length&&this.limiter.allowedToUpload();){const e=this.queue[0];let t=!1;if(e&&!e._destroyed){for(let i=0,s=this.uploadHooks.length;i<s;i++)if(this.uploadHooks[i](this.uploadHookHelper,e)){this.queue.shift(),t=!0;break}}t||this.queue.shift()}if(this.queue.length)nn.system.addOnce(this.tick,this,Uo.UTILITY);else{this.ticking=!1;const e=this.completes.slice(0);this.completes.length=0;for(let t=0,i=e.length;t<i;t++)e[t]()}}registerFindHook(e){return e&&this.addHooks.push(e),this}registerUploadHook(e){return e&&this.uploadHooks.push(e),this}add(e){for(let t=0,i=this.addHooks.length;t<i&&!this.addHooks[t](e,this.queue);t++);if(e instanceof Mi)for(let t=e.children.length-1;t>=0;t--)this.add(e.children[t]);return this}destroy(){this.ticking&&nn.system.remove(this.tick,this),this.ticking=!1,this.addHooks=null,this.uploadHooks=null,this.renderer=null,this.completes=null,this.queue=null,this.limiter=null,this.uploadHookHelper=null}};pS.uploadsPerFrame=4;let mp=pS;Object.defineProperties(Ve,{UPLOADS_PER_FRAME:{get(){return mp.uploadsPerFrame},set(n){pt("7.1.0","settings.UPLOADS_PER_FRAME is deprecated, use prepare.BasePrepare.uploadsPerFrame"),mp.uploadsPerFrame=n}}});function vS(n,e){return e instanceof rt?(e._glTextures[n.CONTEXT_UID]||n.texture.bind(e),!0):!1}function Ik(n,e){if(!(e instanceof Ki))return!1;const{geometry:t}=e;e.finishPoly(),t.updateBatches();const{batches:i}=t;for(let s=0;s<i.length;s++){const{texture:r}=i[s].style;r&&vS(n,r.baseTexture)}return t.batchable||n.geometry.bind(t,e._resolveDirectShader(n)),!0}function Pk(n,e){return n instanceof Ki?(e.push(n),!0):!1}class yS extends mp{constructor(e){super(e),this.uploadHookHelper=this.renderer,this.registerFindHook(Pk),this.registerUploadHook(vS),this.registerUploadHook(Ik)}}yS.extension={name:"prepare",type:$e.RendererSystem};je.add(yS);var Rk=`#version 300 es
#define SHADER_NAME Tiling-Sprite-100
precision lowp float;
in vec2 vTextureCoord;
out vec4 fragmentColor;
uniform sampler2D uSampler;
uniform vec4 uColor;
uniform mat3 uMapCoord;
uniform vec4 uClampFrame;
uniform vec2 uClampOffset;
void main(void)
{
vec2 coord = vTextureCoord + ceil(uClampOffset - vTextureCoord);
coord = (uMapCoord * vec3(coord, 1.0)).xy;
vec2 unclamped = coord;
coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);
vec4 texSample = texture(uSampler, coord, unclamped == coord ? 0.0f : -32.0f);// lod-bias very negative to force lod 0
fragmentColor = texSample * uColor;
}
`,kk=`#version 300 es
#define SHADER_NAME Tiling-Sprite-300
precision lowp float;
in vec2 aVertexPosition;
in vec2 aTextureCoord;
uniform mat3 projectionMatrix;
uniform mat3 translationMatrix;
uniform mat3 uTransform;
out vec2 vTextureCoord;
void main(void)
{
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;
}
`,Fk=`#version 100
#ifdef GL_EXT_shader_texture_lod
#extension GL_EXT_shader_texture_lod : enable
#endif
#define SHADER_NAME Tiling-Sprite-100
precision lowp float;
varying vec2 vTextureCoord;
uniform sampler2D uSampler;
uniform vec4 uColor;
uniform mat3 uMapCoord;
uniform vec4 uClampFrame;
uniform vec2 uClampOffset;
void main(void)
{
vec2 coord = vTextureCoord + ceil(uClampOffset - vTextureCoord);
coord = (uMapCoord * vec3(coord, 1.0)).xy;
vec2 unclamped = coord;
coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);
#ifdef GL_EXT_shader_texture_lod
vec4 texSample = unclamped == coord
? texture2D(uSampler, coord)
: texture2DLodEXT(uSampler, coord, 0);
#else
vec4 texSample = texture2D(uSampler, coord);
#endif
gl_FragColor = texSample * uColor;
}
`,zy=`#version 100
#define SHADER_NAME Tiling-Sprite-100
precision lowp float;
attribute vec2 aVertexPosition;
attribute vec2 aTextureCoord;
uniform mat3 projectionMatrix;
uniform mat3 translationMatrix;
uniform mat3 uTransform;
varying vec2 vTextureCoord;
void main(void)
{
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
vTextureCoord = (uTransform * vec3(aTextureCoord, 1.0)).xy;
}
`,Lk=`#version 100
#define SHADER_NAME Tiling-Sprite-Simple-100
precision lowp float;
varying vec2 vTextureCoord;
uniform sampler2D uSampler;
uniform vec4 uColor;
void main(void)
{
vec4 texSample = texture2D(uSampler, vTextureCoord);
gl_FragColor = texSample * uColor;
}
`;const Jc=new Bt;class bS extends rd{constructor(e){super(e),e.runners.contextChange.add(this),this.quad=new Tw,this.state=Rs.for2d()}contextChange(){const e=this.renderer,t={globals:e.globalUniforms};this.simpleShader=es.from(zy,Lk,t),this.shader=e.context.webGLVersion>1?es.from(kk,Rk,t):es.from(zy,Fk,t)}render(e){const t=this.renderer,i=this.quad;let s=i.vertices;s[0]=s[6]=e._width*-e.anchor.x,s[1]=s[3]=e._height*-e.anchor.y,s[2]=s[4]=e._width*(1-e.anchor.x),s[5]=s[7]=e._height*(1-e.anchor.y);const r=e.uvRespectAnchor?e.anchor.x:0,o=e.uvRespectAnchor?e.anchor.y:0;s=i.uvs,s[0]=s[6]=-r,s[1]=s[3]=-o,s[2]=s[4]=1-r,s[5]=s[7]=1-o,i.invalidate();const a=e._texture,c=a.baseTexture,l=c.alphaMode>0,h=e.tileTransform.localTransform,u=e.uvMatrix;let d=c.isPowerOfTwo&&a.frame.width===c.width&&a.frame.height===c.height;d&&(c._glTextures[t.CONTEXT_UID]?d=c.wrapMode!==Jn.CLAMP:c.wrapMode===Jn.CLAMP&&(c.wrapMode=Jn.REPEAT));const f=d?this.simpleShader:this.shader,m=a.width,p=a.height,g=e._width,v=e._height;Jc.set(h.a*m/g,h.b*m/v,h.c*p/g,h.d*p/v,h.tx/g,h.ty/v),Jc.invert(),d?Jc.prepend(u.mapCoord):(f.uniforms.uMapCoord=u.mapCoord.toArray(!0),f.uniforms.uClampFrame=u.uClampFrame,f.uniforms.uClampOffset=u.uClampOffset),f.uniforms.uTransform=Jc.toArray(!0),f.uniforms.uColor=kt.shared.setValue(e.tint).premultiply(e.worldAlpha,l).toArray(f.uniforms.uColor),f.uniforms.translationMatrix=e.transform.worldTransform.toArray(!0),f.uniforms.uSampler=a,t.shader.bind(f),t.geometry.bind(i),this.state.blendMode=hw(e.blendMode,l),t.state.set(this.state),t.geometry.draw(this.renderer.gl.TRIANGLES,6,0)}}bS.extension={name:"tilingSprite",type:$e.RendererPlugin};je.add(bS);const xS=class Cl{constructor(e,t,i){this.linkedSheets=[],(e instanceof rt||e instanceof it)&&(e={texture:e,data:t,resolutionFilename:i});const{texture:s,data:r,resolutionFilename:o=null,cachePrefix:a=""}=e;this.cachePrefix=a,this._texture=s instanceof it?s:null,this.baseTexture=s instanceof rt?s:this._texture.baseTexture,this.textures={},this.animations={},this.data=r;const c=this.baseTexture.resource;this.resolution=this._updateResolution(o||(c?c.url:null)),this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}_updateResolution(e=null){const{scale:t}=this.data.meta;let i=fr(e,null);return i===null&&(i=typeof t=="number"?t:parseFloat(t??"1")),i!==1&&this.baseTexture.setResolution(i),i}parse(){return new Promise(e=>{this._callback=e,this._batchIndex=0,this._frameKeys.length<=Cl.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(e){let t=e;const i=Cl.BATCH_SIZE;for(;t-e<i&&t<this._frameKeys.length;){const s=this._frameKeys[t],r=this._frames[s],o=r.frame;if(o){let a=null,c=null;const l=r.trimmed!==!1&&r.sourceSize?r.sourceSize:r.frame,h=new dt(0,0,Math.floor(l.w)/this.resolution,Math.floor(l.h)/this.resolution);r.rotated?a=new dt(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.h)/this.resolution,Math.floor(o.w)/this.resolution):a=new dt(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution),r.trimmed!==!1&&r.spriteSourceSize&&(c=new dt(Math.floor(r.spriteSourceSize.x)/this.resolution,Math.floor(r.spriteSourceSize.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution)),this.textures[s]=new it(this.baseTexture,a,h,c,r.rotated?2:0,r.anchor,r.borders),it.addToCache(this.textures[s],this.cachePrefix+s.toString())}t++}}_processAnimations(){const e=this.data.animations||{};for(const t in e){this.animations[t]=[];for(let i=0;i<e[t].length;i++){const s=e[t][i];this.animations[t].push(this.textures[s])}}}_parseComplete(){const e=this._callback;this._callback=null,this._batchIndex=0,e.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*Cl.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Cl.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(e=!1){var t;for(const i in this.textures)this.textures[i].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,e&&((t=this._texture)==null||t.destroy(),this.baseTexture.destroy()),this._texture=null,this.baseTexture=null,this.linkedSheets=[]}};xS.BATCH_SIZE=1e3;let qy=xS;const Ok=["jpg","png","jpeg","avif","webp","s3tc","s3tc_sRGB","etc","etc1","pvrtc","atc","astc","bptc"];function wS(n,e,t){const i={};if(n.forEach(s=>{i[s]=e}),Object.keys(e.textures).forEach(s=>{i[`${e.cachePrefix}${s}`]=e.textures[s]}),!t){const s=di.dirname(n[0]);e.linkedSheets.forEach((r,o)=>{Object.assign(i,wS([`${s}/${e.data.meta.related_multi_packs[o]}`],r,!0))})}return i}const $k={extension:$e.Asset,cache:{test:n=>n instanceof qy,getCacheableAssets:(n,e)=>wS(n,e,!1)},resolver:{test:n=>{const e=n.split("?")[0].split("."),t=e.pop(),i=e.pop();return t==="json"&&Ok.includes(i)},parse:n=>{var t;const e=n.split(".");return{resolution:parseFloat(((t=Ve.RETINA_PREFIX.exec(n))==null?void 0:t[1])??"1"),format:e[e.length-2],src:n}}},loader:{name:"spritesheetLoader",extension:{type:$e.LoadParser,priority:_n.Normal},async testParse(n,e){return di.extname(e.src).toLowerCase()===".json"&&!!n.frames},async parse(n,e,t){var h,u;const{texture:i,imageFilename:s,cachePrefix:r}=(e==null?void 0:e.data)??{};let o=di.dirname(e.src);o&&o.lastIndexOf("/")!==o.length-1&&(o+="/");let a;if(i&&i.baseTexture)a=i;else{const d=eu(o+(s??n.meta.image),e.src);a=(await t.load([d]))[d]}const c=new qy({texture:a.baseTexture,data:n,resolutionFilename:e.src,cachePrefix:r});await c.parse();const l=(h=n==null?void 0:n.meta)==null?void 0:h.related_multi_packs;if(Array.isArray(l)){const d=[];for(const m of l){if(typeof m!="string")continue;let p=o+m;(u=e.data)!=null&&u.ignoreMultiPack||(p=eu(p,e.src),d.push(t.load({src:p,data:{ignoreMultiPack:!0}})))}const f=await Promise.all(d);c.linkedSheets=f,f.forEach(m=>{m.linkedSheets=[c].concat(c.linkedSheets.filter(p=>p!==m))})}return c},unload(n){n.destroy(!0)}}};je.add($k);class ou{constructor(){this.info=[],this.common=[],this.page=[],this.char=[],this.kerning=[],this.distanceField=[]}}class Eh{static test(e){return typeof e=="string"&&e.startsWith("info face=")}static parse(e){const t=e.match(/^[a-z]+\s+.+$/gm),i={info:[],common:[],page:[],char:[],chars:[],kerning:[],kernings:[],distanceField:[]};for(const r in t){const o=t[r].match(/^[a-z]+/gm)[0],a=t[r].match(/[a-zA-Z]+=([^\s"']+|"([^"]*)")/gm),c={};for(const l in a){const h=a[l].split("="),u=h[0],d=h[1].replace(/"/gm,""),f=parseFloat(d),m=isNaN(f)?d:f;c[u]=m}i[o].push(c)}const s=new ou;return i.info.forEach(r=>s.info.push({face:r.face,size:parseInt(r.size,10)})),i.common.forEach(r=>s.common.push({lineHeight:parseInt(r.lineHeight,10)})),i.page.forEach(r=>s.page.push({id:parseInt(r.id,10),file:r.file})),i.char.forEach(r=>s.char.push({id:parseInt(r.id,10),page:parseInt(r.page,10),x:parseInt(r.x,10),y:parseInt(r.y,10),width:parseInt(r.width,10),height:parseInt(r.height,10),xoffset:parseInt(r.xoffset,10),yoffset:parseInt(r.yoffset,10),xadvance:parseInt(r.xadvance,10)})),i.kerning.forEach(r=>s.kerning.push({first:parseInt(r.first,10),second:parseInt(r.second,10),amount:parseInt(r.amount,10)})),i.distanceField.forEach(r=>s.distanceField.push({distanceRange:parseInt(r.distanceRange,10),fieldType:r.fieldType})),s}}class pp{static test(e){const t=e;return typeof e!="string"&&"getElementsByTagName"in e&&t.getElementsByTagName("page").length&&t.getElementsByTagName("info")[0].getAttribute("face")!==null}static parse(e){const t=new ou,i=e.getElementsByTagName("info"),s=e.getElementsByTagName("common"),r=e.getElementsByTagName("page"),o=e.getElementsByTagName("char"),a=e.getElementsByTagName("kerning"),c=e.getElementsByTagName("distanceField");for(let l=0;l<i.length;l++)t.info.push({face:i[l].getAttribute("face"),size:parseInt(i[l].getAttribute("size"),10)});for(let l=0;l<s.length;l++)t.common.push({lineHeight:parseInt(s[l].getAttribute("lineHeight"),10)});for(let l=0;l<r.length;l++)t.page.push({id:parseInt(r[l].getAttribute("id"),10)||0,file:r[l].getAttribute("file")});for(let l=0;l<o.length;l++){const h=o[l];t.char.push({id:parseInt(h.getAttribute("id"),10),page:parseInt(h.getAttribute("page"),10)||0,x:parseInt(h.getAttribute("x"),10),y:parseInt(h.getAttribute("y"),10),width:parseInt(h.getAttribute("width"),10),height:parseInt(h.getAttribute("height"),10),xoffset:parseInt(h.getAttribute("xoffset"),10),yoffset:parseInt(h.getAttribute("yoffset"),10),xadvance:parseInt(h.getAttribute("xadvance"),10)})}for(let l=0;l<a.length;l++)t.kerning.push({first:parseInt(a[l].getAttribute("first"),10),second:parseInt(a[l].getAttribute("second"),10),amount:parseInt(a[l].getAttribute("amount"),10)});for(let l=0;l<c.length;l++)t.distanceField.push({fieldType:c[l].getAttribute("fieldType"),distanceRange:parseInt(c[l].getAttribute("distanceRange"),10)});return t}}class gp{static test(e){return typeof e=="string"&&e.includes("<font>")?pp.test(Ve.ADAPTER.parseXML(e)):!1}static parse(e){return pp.parse(Ve.ADAPTER.parseXML(e))}}const em=[Eh,pp,gp];function Nk(n){for(let e=0;e<em.length;e++)if(em[e].test(n))return em[e];return null}function Dk(n,e,t,i,s,r){const o=t.fill;if(Array.isArray(o)){if(o.length===1)return o[0]}else return o;let a;const c=t.dropShadow?t.dropShadowDistance:0,l=t.padding||0,h=n.width/i-c-l*2,u=n.height/i-c-l*2,d=o.slice(),f=t.fillGradientStops.slice();if(!f.length){const m=d.length+1;for(let p=1;p<m;++p)f.push(p/m)}if(d.unshift(o[0]),f.unshift(0),d.push(o[o.length-1]),f.push(1),t.fillGradientType===ld.LINEAR_VERTICAL){a=e.createLinearGradient(h/2,l,h/2,u+l);let m=0;const p=(r.fontProperties.fontSize+t.strokeThickness)/u;for(let g=0;g<s.length;g++){const v=r.lineHeight*g;for(let b=0;b<d.length;b++){let y=0;typeof f[b]=="number"?y=f[b]:y=b/d.length;const x=v/u+y*p;let _=Math.max(m,x);_=Math.min(_,1),a.addColorStop(_,d[b]),m=_}}}else{a=e.createLinearGradient(l,u/2,h+l,u/2);const m=d.length+1;let p=1;for(let g=0;g<d.length;g++){let v;typeof f[g]=="number"?v=f[g]:v=p/m,a.addColorStop(v,d[g]),p++}}return a}function Bk(n,e,t,i,s,r,o){const a=t.text,c=t.fontProperties;e.translate(i,s),e.scale(r,r);const l=o.strokeThickness/2,h=-(o.strokeThickness/2);if(e.font=o.toFontString(),e.lineWidth=o.strokeThickness,e.textBaseline=o.textBaseline,e.lineJoin=o.lineJoin,e.miterLimit=o.miterLimit,e.fillStyle=Dk(n,e,o,r,[a],t),e.strokeStyle=o.stroke,o.dropShadow){const u=o.dropShadowColor,d=o.dropShadowBlur*r,f=o.dropShadowDistance*r;e.shadowColor=kt.shared.setValue(u).setAlpha(o.dropShadowAlpha).toRgbaString(),e.shadowBlur=d,e.shadowOffsetX=Math.cos(o.dropShadowAngle)*f,e.shadowOffsetY=Math.sin(o.dropShadowAngle)*f}else e.shadowColor="black",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0;o.stroke&&o.strokeThickness&&e.strokeText(a,l,h+t.lineHeight-c.descent),o.fill&&e.fillText(a,l,h+t.lineHeight-c.descent),e.setTransform(1,0,0,1,0,0),e.fillStyle="rgba(0, 0, 0, 0)"}function Ch(n){return n.codePointAt?n.codePointAt(0):n.charCodeAt(0)}function SS(n){return Array.from?Array.from(n):n.split("")}function Uk(n){typeof n=="string"&&(n=[n]);const e=[];for(let t=0,i=n.length;t<i;t++){const s=n[t];if(Array.isArray(s)){if(s.length!==2)throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${s.length}.`);const r=s[0].charCodeAt(0),o=s[1].charCodeAt(0);if(o<r)throw new Error("[BitmapFont]: Invalid character range.");for(let a=r,c=o;a<=c;a++)e.push(String.fromCharCode(a))}else e.push(...SS(s))}if(e.length===0)throw new Error("[BitmapFont]: Empty set when resolving characters.");return e}const Mr=class hs{constructor(e,t,i){var h;const[s]=e.info,[r]=e.common,[o]=e.page,[a]=e.distanceField,c=fr(o.file),l={};this._ownsTextures=i,this.font=s.face,this.size=s.size,this.lineHeight=r.lineHeight/c,this.chars={},this.pageTextures=l;for(let u=0;u<e.page.length;u++){const{id:d,file:f}=e.page[u];l[d]=t instanceof Array?t[u]:t[f],a!=null&&a.fieldType&&a.fieldType!=="none"&&(l[d].baseTexture.alphaMode=Ri.NO_PREMULTIPLIED_ALPHA,l[d].baseTexture.mipmap=$n.OFF)}for(let u=0;u<e.char.length;u++){const{id:d,page:f}=e.char[u];let{x:m,y:p,width:g,height:v,xoffset:b,yoffset:y,xadvance:x}=e.char[u];m/=c,p/=c,g/=c,v/=c,b/=c,y/=c,x/=c;const _=new dt(m+l[f].frame.x/c,p+l[f].frame.y/c,g,v);this.chars[d]={xOffset:b,yOffset:y,xAdvance:x,kerning:{},texture:new it(l[f].baseTexture,_),page:f}}for(let u=0;u<e.kerning.length;u++){let{first:d,second:f,amount:m}=e.kerning[u];d/=c,f/=c,m/=c,this.chars[f]&&(this.chars[f].kerning[d]=m)}this.distanceFieldRange=a==null?void 0:a.distanceRange,this.distanceFieldType=((h=a==null?void 0:a.fieldType)==null?void 0:h.toLowerCase())??"none"}destroy(){for(const e in this.chars)this.chars[e].texture.destroy(),this.chars[e].texture=null;for(const e in this.pageTextures)this._ownsTextures&&this.pageTextures[e].destroy(!0),this.pageTextures[e]=null;this.chars=null,this.pageTextures=null}static install(e,t,i){let s;if(e instanceof ou)s=e;else{const o=Nk(e);if(!o)throw new Error("Unrecognized data format for font.");s=o.parse(e)}t instanceof it&&(t=[t]);const r=new hs(s,t,i);return hs.available[r.font]=r,r}static uninstall(e){const t=hs.available[e];if(!t)throw new Error(`No font found named '${e}'`);t.destroy(),delete hs.available[e]}static from(e,t,i){if(!e)throw new Error("[BitmapFont] Property `name` is required.");const{chars:s,padding:r,resolution:o,textureWidth:a,textureHeight:c,...l}=Object.assign({},hs.defaultOptions,i),h=Uk(s),u=t instanceof Jr?t:new Jr(t),d=a,f=new ou;f.info[0]={face:u.fontFamily,size:u.fontSize},f.common[0]={lineHeight:u.fontSize};let m=0,p=0,g,v,b,y=0;const x=[];for(let E=0;E<h.length;E++){g||(g=Ve.ADAPTER.createCanvas(),g.width=a,g.height=c,v=g.getContext("2d"),b=new rt(g,{resolution:o,...l}),x.push(new it(b)),f.page.push({id:x.length-1,file:""}));const S=h[E],C=kr.measureText(S,u,!1,g),M=C.width,P=Math.ceil(C.height),A=Math.ceil((u.fontStyle==="italic"?2:1)*M);if(p>=c-P*o){if(p===0)throw new Error(`[BitmapFont] textureHeight ${c}px is too small (fontFamily: '${u.fontFamily}', fontSize: ${u.fontSize}px, char: '${S}')`);--E,g=null,v=null,b=null,p=0,m=0,y=0;continue}if(y=Math.max(P+C.fontProperties.descent,y),A*o+m>=d){if(m===0)throw new Error(`[BitmapFont] textureWidth ${a}px is too small (fontFamily: '${u.fontFamily}', fontSize: ${u.fontSize}px, char: '${S}')`);--E,p+=y*o,p=Math.ceil(p),m=0,y=0;continue}Bk(g,v,C,m,p,o,u);const R=Ch(C.text);f.char.push({id:R,page:x.length-1,x:m/o,y:p/o,width:A,height:P,xoffset:0,yoffset:0,xadvance:M-(u.dropShadow?u.dropShadowDistance:0)-(u.stroke?u.strokeThickness:0)}),m+=(A+2*r)*o,m=Math.ceil(m)}if(!(i!=null&&i.skipKerning))for(let E=0,S=h.length;E<S;E++){const C=h[E];for(let M=0;M<S;M++){const P=h[M],A=v.measureText(C).width,R=v.measureText(P).width,B=v.measureText(C+P).width-(A+R);B&&f.kerning.push({first:Ch(C),second:Ch(P),amount:B})}}const _=new hs(f,x,!0);return hs.available[e]!==void 0&&hs.uninstall(e),hs.available[e]=_,_}};Mr.ALPHA=[["a","z"],["A","Z"]," "],Mr.NUMERIC=[["0","9"]],Mr.ALPHANUMERIC=[["a","z"],["A","Z"],["0","9"]," "],Mr.ASCII=[[" ","~"]],Mr.defaultOptions={resolution:1,textureWidth:512,textureHeight:512,padding:4,chars:Mr.ALPHANUMERIC},Mr.available={};let Ar=Mr;var Vk=`// Pixi texture info\r
varying vec2 vTextureCoord;\r
uniform sampler2D uSampler;\r
\r
// Tint\r
uniform vec4 uColor;\r
\r
// on 2D applications fwidth is screenScale / glyphAtlasScale * distanceFieldRange\r
uniform float uFWidth;\r
\r
void main(void) {\r
\r
// To stack MSDF and SDF we need a non-pre-multiplied-alpha texture.\r
vec4 texColor = texture2D(uSampler, vTextureCoord);\r
\r
// MSDF\r
float median = texColor.r + texColor.g + texColor.b -\r
min(texColor.r, min(texColor.g, texColor.b)) -\r
max(texColor.r, max(texColor.g, texColor.b));\r
// SDF\r
median = min(median, texColor.a);\r
\r
float screenPxDistance = uFWidth * (median - 0.5);\r
float alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);\r
if (median < 0.01) {\r
alpha = 0.0;\r
} else if (median > 0.99) {\r
alpha = 1.0;\r
}\r
\r
// Gamma correction for coverage-like alpha\r
float luma = dot(uColor.rgb, vec3(0.299, 0.587, 0.114));\r
float gamma = mix(1.0, 1.0 / 2.2, luma);\r
float coverage = pow(uColor.a * alpha, gamma); \r
\r
// NPM Textures, NPM outputs\r
gl_FragColor = vec4(uColor.rgb, coverage);\r
}\r
`,Xk=`// Mesh material default fragment\r
attribute vec2 aVertexPosition;\r
attribute vec2 aTextureCoord;\r
\r
uniform mat3 projectionMatrix;\r
uniform mat3 translationMatrix;\r
uniform mat3 uTextureMatrix;\r
\r
varying vec2 vTextureCoord;\r
\r
void main(void)\r
{\r
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);\r
\r
vTextureCoord = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;\r
}\r
`;const Ky=[],Jy=[],Zy=[],Yk=class _S extends Mi{constructor(e,t={}){super();const{align:i,tint:s,maxWidth:r,letterSpacing:o,fontName:a,fontSize:c}=Object.assign({},_S.styleDefaults,t);if(!Ar.available[a])throw new Error(`Missing BitmapFont "${a}"`);this._activePagesMeshData=[],this._textWidth=0,this._textHeight=0,this._align=i,this._tintColor=new kt(s),this._font=void 0,this._fontName=a,this._fontSize=c,this.text=e,this._maxWidth=r,this._maxLineHeight=0,this._letterSpacing=o,this._anchor=new Js(()=>{this.dirty=!0},this,0,0),this._roundPixels=Ve.ROUND_PIXELS,this.dirty=!0,this._resolution=Ve.RESOLUTION,this._autoResolution=!0,this._textureCache={}}updateText(){var A;const e=Ar.available[this._fontName],t=this.fontSize,i=t/e.size,s=new Tt,r=[],o=[],a=[],c=this._text.replace(/(?:\r\n|\r)/g,`
`)||" ",l=SS(c),h=this._maxWidth*e.size/t,u=e.distanceFieldType==="none"?Ky:Jy;let d=null,f=0,m=0,p=0,g=-1,v=0,b=0,y=0,x=0;for(let R=0;R<l.length;R++){const B=l[R],O=Ch(B);if(/(?:\s)/.test(B)&&(g=R,v=f,x++),B==="\r"||B===`
`){o.push(f),a.push(-1),m=Math.max(m,f),++p,++b,s.x=0,s.y+=e.lineHeight,d=null,x=0;continue}const W=e.chars[O];if(!W)continue;d&&W.kerning[d]&&(s.x+=W.kerning[d]);const V=Zy.pop()||{texture:it.EMPTY,line:0,charCode:0,prevSpaces:0,position:new Tt};V.texture=W.texture,V.line=p,V.charCode=O,V.position.x=Math.round(s.x+W.xOffset+this._letterSpacing/2),V.position.y=Math.round(s.y+W.yOffset),V.prevSpaces=x,r.push(V),f=V.position.x+Math.max(W.xAdvance-W.xOffset,W.texture.orig.width),s.x+=W.xAdvance+this._letterSpacing,y=Math.max(y,W.yOffset+W.texture.height),d=O,g!==-1&&h>0&&s.x>h&&(++b,Pa(r,1+g-b,1+R-g),R=g,g=-1,o.push(v),a.push(r.length>0?r[r.length-1].prevSpaces:0),m=Math.max(m,v),p++,s.x=0,s.y+=e.lineHeight,d=null,x=0)}const _=l[l.length-1];_!=="\r"&&_!==`
`&&(/(?:\s)/.test(_)&&(f=v),o.push(f),m=Math.max(m,f),a.push(-1));const E=[];for(let R=0;R<=p;R++){let B=0;this._align==="right"?B=m-o[R]:this._align==="center"?B=(m-o[R])/2:this._align==="justify"&&(B=a[R]<0?0:(m-o[R])/a[R]),E.push(B)}const S=r.length,C={},M=[],P=this._activePagesMeshData;u.push(...P);for(let R=0;R<S;R++){const B=r[R].texture,O=B.baseTexture.uid;if(!C[O]){let W=u.pop();if(!W){const Y=new Fg;let L,N;e.distanceFieldType==="none"?(L=new ru(it.EMPTY),N=Qe.NORMAL):(L=new ru(it.EMPTY,{program:Ts.from(Xk,Vk),uniforms:{uFWidth:0}}),N=Qe.NORMAL_NPM);const F=new ec(Y,L);F.blendMode=N,W={index:0,indexCount:0,vertexCount:0,uvsCount:0,total:0,mesh:F,vertices:null,uvs:null,indices:null}}W.index=0,W.indexCount=0,W.vertexCount=0,W.uvsCount=0,W.total=0;const{_textureCache:V}=this;V[O]=V[O]||new it(B.baseTexture),W.mesh.texture=V[O],W.mesh.tint=this._tintColor.value,M.push(W),C[O]=W}C[O].total++}for(let R=0;R<P.length;R++)M.includes(P[R])||this.removeChild(P[R].mesh);for(let R=0;R<M.length;R++)M[R].mesh.parent!==this&&this.addChild(M[R].mesh);this._activePagesMeshData=M;for(const R in C){const B=C[R],O=B.total;if(!(((A=B.indices)==null?void 0:A.length)>6*O)||B.vertices.length<ec.BATCHABLE_SIZE*2)B.vertices=new Float32Array(8*O),B.uvs=new Float32Array(8*O),B.indices=new Uint16Array(6*O);else{const W=B.total,V=B.vertices;for(let Y=W*4*2;Y<V.length;Y++)V[Y]=0}B.mesh.size=6*O}for(let R=0;R<S;R++){const B=r[R];let O=B.position.x+E[B.line]*(this._align==="justify"?B.prevSpaces:1);this._roundPixels&&(O=Math.round(O));const W=O*i,V=B.position.y*i,Y=B.texture,L=C[Y.baseTexture.uid],N=Y.frame,F=Y._uvs,D=L.index++;L.indices[D*6+0]=0+D*4,L.indices[D*6+1]=1+D*4,L.indices[D*6+2]=2+D*4,L.indices[D*6+3]=0+D*4,L.indices[D*6+4]=2+D*4,L.indices[D*6+5]=3+D*4,L.vertices[D*8+0]=W,L.vertices[D*8+1]=V,L.vertices[D*8+2]=W+N.width*i,L.vertices[D*8+3]=V,L.vertices[D*8+4]=W+N.width*i,L.vertices[D*8+5]=V+N.height*i,L.vertices[D*8+6]=W,L.vertices[D*8+7]=V+N.height*i,L.uvs[D*8+0]=F.x0,L.uvs[D*8+1]=F.y0,L.uvs[D*8+2]=F.x1,L.uvs[D*8+3]=F.y1,L.uvs[D*8+4]=F.x2,L.uvs[D*8+5]=F.y2,L.uvs[D*8+6]=F.x3,L.uvs[D*8+7]=F.y3}this._textWidth=m*i,this._textHeight=(s.y+e.lineHeight)*i;for(const R in C){const B=C[R];if(this.anchor.x!==0||this.anchor.y!==0){let Y=0;const L=this._textWidth*this.anchor.x,N=this._textHeight*this.anchor.y;for(let F=0;F<B.total;F++)B.vertices[Y++]-=L,B.vertices[Y++]-=N,B.vertices[Y++]-=L,B.vertices[Y++]-=N,B.vertices[Y++]-=L,B.vertices[Y++]-=N,B.vertices[Y++]-=L,B.vertices[Y++]-=N}this._maxLineHeight=y*i;const O=B.mesh.geometry.getBuffer("aVertexPosition"),W=B.mesh.geometry.getBuffer("aTextureCoord"),V=B.mesh.geometry.getIndex();O.data=B.vertices,W.data=B.uvs,V.data=B.indices,O.update(),W.update(),V.update()}for(let R=0;R<r.length;R++)Zy.push(r[R]);this._font=e,this.dirty=!1}updateTransform(){this.validate(),this.containerUpdateTransform()}_render(e){this._autoResolution&&this._resolution!==e.resolution&&(this._resolution=e.resolution,this.dirty=!0);const{distanceFieldRange:t,distanceFieldType:i,size:s}=Ar.available[this._fontName];if(i!=="none"){const{a:r,b:o,c:a,d:c}=this.worldTransform,l=Math.sqrt(r*r+o*o),h=Math.sqrt(a*a+c*c),u=(Math.abs(l)+Math.abs(h))/2,d=this.fontSize/s,f=e._view.resolution;for(const m of this._activePagesMeshData)m.mesh.shader.uniforms.uFWidth=u*t*d*f}super._render(e)}getLocalBounds(){return this.validate(),super.getLocalBounds()}validate(){const e=Ar.available[this._fontName];if(!e)throw new Error(`Missing BitmapFont "${this._fontName}"`);this._font!==e&&(this.dirty=!0),this.dirty&&this.updateText()}get tint(){return this._tintColor.value}set tint(e){if(this.tint!==e){this._tintColor.setValue(e);for(let t=0;t<this._activePagesMeshData.length;t++)this._activePagesMeshData[t].mesh.tint=e}}get align(){return this._align}set align(e){this._align!==e&&(this._align=e,this.dirty=!0)}get fontName(){return this._fontName}set fontName(e){if(!Ar.available[e])throw new Error(`Missing BitmapFont "${e}"`);this._fontName!==e&&(this._fontName=e,this.dirty=!0)}get fontSize(){return this._fontSize??Ar.available[this._fontName].size}set fontSize(e){this._fontSize!==e&&(this._fontSize=e,this.dirty=!0)}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get text(){return this._text}set text(e){e=String(e??""),this._text!==e&&(this._text=e,this.dirty=!0)}get maxWidth(){return this._maxWidth}set maxWidth(e){this._maxWidth!==e&&(this._maxWidth=e,this.dirty=!0)}get maxLineHeight(){return this.validate(),this._maxLineHeight}get textWidth(){return this.validate(),this._textWidth}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing!==e&&(this._letterSpacing=e,this.dirty=!0)}get roundPixels(){return this._roundPixels}set roundPixels(e){e!==this._roundPixels&&(this._roundPixels=e,this.dirty=!0)}get textHeight(){return this.validate(),this._textHeight}get resolution(){return this._resolution}set resolution(e){this._autoResolution=!1,this._resolution!==e&&(this._resolution=e,this.dirty=!0)}destroy(e){const{_textureCache:t}=this,i=Ar.available[this._fontName].distanceFieldType==="none"?Ky:Jy;i.push(...this._activePagesMeshData);for(const s of this._activePagesMeshData)this.removeChild(s.mesh);this._activePagesMeshData=[],i.filter(s=>t[s.mesh.texture.baseTexture.uid]).forEach(s=>{s.mesh.texture=it.EMPTY});for(const s in t)t[s].destroy(),delete t[s];this._font=null,this._tintColor=null,this._textureCache=null,super.destroy(e)}};Yk.styleDefaults={align:"left",tint:16777215,maxWidth:0,letterSpacing:0};const Gk=[".xml",".fnt"],Hk={extension:{type:$e.LoadParser,priority:_n.Normal},name:"loadBitmapFont",test(n){return Gk.includes(di.extname(n).toLowerCase())},async testParse(n){return Eh.test(n)||gp.test(n)},async parse(n,e,t){const i=Eh.test(n)?Eh.parse(n):gp.parse(n),{src:s}=e,{page:r}=i,o=[];for(let l=0;l<r.length;++l){const h=r[l].file;let u=di.join(di.dirname(s),h);u=eu(u,s),o.push(u)}const a=await t.load(o),c=o.map(l=>a[l]);return Ar.install(i,c,!0)},async load(n,e){return(await Ve.ADAPTER.fetch(n)).text()},unload(n){n.destroy()}};je.add(Hk);const vp=class va extends Jr{constructor(){super(...arguments),this._fonts=[],this._overrides=[],this._stylesheet="",this.fontsDirty=!1}static from(e){return new va(Object.keys(va.defaultOptions).reduce((t,i)=>({...t,[i]:e[i]}),{}))}cleanFonts(){this._fonts.length>0&&(this._fonts.forEach(e=>{URL.revokeObjectURL(e.src),e.refs--,e.refs===0&&(e.fontFace&&document.fonts.delete(e.fontFace),delete va.availableFonts[e.originalUrl])}),this.fontFamily="Arial",this._fonts.length=0,this.styleID++,this.fontsDirty=!0)}loadFont(e,t={}){const{availableFonts:i}=va;if(i[e]){const s=i[e];return this._fonts.push(s),s.refs++,this.styleID++,this.fontsDirty=!0,Promise.resolve()}return Ve.ADAPTER.fetch(e).then(s=>s.blob()).then(async s=>new Promise((r,o)=>{const a=URL.createObjectURL(s),c=new FileReader;c.onload=()=>r([a,c.result]),c.onerror=o,c.readAsDataURL(s)})).then(async([s,r])=>{const o=Object.assign({family:di.basename(e,di.extname(e)),weight:"normal",style:"normal",display:"auto",src:s,dataSrc:r,refs:1,originalUrl:e,fontFace:null},t);i[e]=o,this._fonts.push(o),this.styleID++;const a=new FontFace(o.family,`url(${o.src})`,{weight:o.weight,style:o.style,display:o.display});o.fontFace=a,await a.load(),document.fonts.add(a),await document.fonts.ready,this.styleID++,this.fontsDirty=!0})}addOverride(...e){const t=e.filter(i=>!this._overrides.includes(i));t.length>0&&(this._overrides.push(...t),this.styleID++)}removeOverride(...e){const t=e.filter(i=>this._overrides.includes(i));t.length>0&&(this._overrides=this._overrides.filter(i=>!t.includes(i)),this.styleID++)}toCSS(e){return[`transform: scale(${e})`,"transform-origin: top left","display: inline-block",`color: ${this.normalizeColor(this.fill)}`,`font-size: ${this.fontSize}px`,`font-family: ${this.fontFamily}`,`font-weight: ${this.fontWeight}`,`font-style: ${this.fontStyle}`,`font-variant: ${this.fontVariant}`,`letter-spacing: ${this.letterSpacing}px`,`text-align: ${this.align}`,`padding: ${this.padding}px`,`white-space: ${this.whiteSpace}`,...this.lineHeight?[`line-height: ${this.lineHeight}px`]:[],...this.wordWrap?[`word-wrap: ${this.breakWords?"break-all":"break-word"}`,`max-width: ${this.wordWrapWidth}px`]:[],...this.strokeThickness?[`-webkit-text-stroke-width: ${this.strokeThickness}px`,`-webkit-text-stroke-color: ${this.normalizeColor(this.stroke)}`,`text-stroke-width: ${this.strokeThickness}px`,`text-stroke-color: ${this.normalizeColor(this.stroke)}`,"paint-order: stroke"]:[],...this.dropShadow?[this.dropShadowToCSS()]:[],...this._overrides].join(";")}toGlobalCSS(){return this._fonts.reduce((e,t)=>`${e}
@font-face {
font-family: "${t.family}";
src: url('${t.dataSrc}');
font-weight: ${t.weight};
font-style: ${t.style};
font-display: ${t.display};
}`,this._stylesheet)}get stylesheet(){return this._stylesheet}set stylesheet(e){this._stylesheet!==e&&(this._stylesheet=e,this.styleID++)}normalizeColor(e){return Array.isArray(e)&&(e=OI(e)),typeof e=="number"?LI(e):e}dropShadowToCSS(){let e=this.normalizeColor(this.dropShadowColor);const t=this.dropShadowAlpha,i=Math.round(Math.cos(this.dropShadowAngle)*this.dropShadowDistance),s=Math.round(Math.sin(this.dropShadowAngle)*this.dropShadowDistance);e.startsWith("#")&&t<1&&(e+=(t*255|0).toString(16).padStart(2,"0"));const r=`${i}px ${s}px`;return this.dropShadowBlur>0?`text-shadow: ${r} ${this.dropShadowBlur}px ${e}`:`text-shadow: ${r} ${e}`}reset(){Object.assign(this,va.defaultOptions)}onBeforeDraw(){const{fontsDirty:e}=this;return this.fontsDirty=!1,this.isSafari&&this._fonts.length>0&&e?new Promise(t=>setTimeout(t,100)):Promise.resolve()}get isSafari(){const{userAgent:e}=Ve.ADAPTER.getNavigator();return/^((?!chrome|android).)*safari/i.test(e)}set fillGradientStops(e){console.warn("[HTMLTextStyle] fillGradientStops is not supported by HTMLText")}get fillGradientStops(){return super.fillGradientStops}set fillGradientType(e){console.warn("[HTMLTextStyle] fillGradientType is not supported by HTMLText")}get fillGradientType(){return super.fillGradientType}set miterLimit(e){console.warn("[HTMLTextStyle] miterLimit is not supported by HTMLText")}get miterLimit(){return super.miterLimit}set trim(e){console.warn("[HTMLTextStyle] trim is not supported by HTMLText")}get trim(){return super.trim}set textBaseline(e){console.warn("[HTMLTextStyle] textBaseline is not supported by HTMLText")}get textBaseline(){return super.textBaseline}set leading(e){console.warn("[HTMLTextStyle] leading is not supported by HTMLText")}get leading(){return super.leading}set lineJoin(e){console.warn("[HTMLTextStyle] lineJoin is not supported by HTMLText")}get lineJoin(){return super.lineJoin}};vp.availableFonts={},vp.defaultOptions={align:"left",breakWords:!1,dropShadow:!1,dropShadowAlpha:1,dropShadowAngle:Math.PI/6,dropShadowBlur:0,dropShadowColor:"black",dropShadowDistance:5,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",letterSpacing:0,lineHeight:0,padding:0,stroke:"black",strokeThickness:0,whiteSpace:"normal",wordWrap:!1,wordWrapWidth:100};let tm=vp;const Zc=class ya extends to{constructor(e="",t={}){super(it.EMPTY),this._text=null,this._style=null,this._autoResolution=!0,this.localStyleID=-1,this.dirty=!1,this._updateID=0,this.ownsStyle=!1;const i=new Image,s=it.from(i,{scaleMode:Ve.SCALE_MODE,resourceOptions:{autoLoad:!1}});s.orig=new dt,s.trim=new dt,this.texture=s;const r="http://www.w3.org/2000/svg",o="http://www.w3.org/1999/xhtml",a=document.createElementNS(r,"svg"),c=document.createElementNS(r,"foreignObject"),l=document.createElementNS(o,"div"),h=document.createElementNS(o,"style");c.setAttribute("width","10000"),c.setAttribute("height","10000"),c.style.overflow="hidden",a.appendChild(c),this.maxWidth=ya.defaultMaxWidth,this.maxHeight=ya.defaultMaxHeight,this._domElement=l,this._styleElement=h,this._svgRoot=a,this._foreignObject=c,this._foreignObject.appendChild(h),this._foreignObject.appendChild(l),this._image=i,this._loadImage=new Image,this._autoResolution=ya.defaultAutoResolution,this._resolution=ya.defaultResolution??Ve.RESOLUTION,this.text=e,this.style=t}measureText(e){var h,u;const{text:t,style:i,resolution:s}=Object.assign({text:this._text,style:this._style,resolution:this._resolution},e);Object.assign(this._domElement,{innerHTML:t,style:i.toCSS(s)}),this._styleElement.textContent=i.toGlobalCSS(),document.body.appendChild(this._svgRoot);const r=this._domElement.getBoundingClientRect();this._svgRoot.remove();const{width:o,height:a}=r;(o>this.maxWidth||a>this.maxHeight)&&console.warn("[HTMLText] Large expanse of text, increase HTMLText.maxWidth or HTMLText.maxHeight property.");const c=Math.min(this.maxWidth,Math.ceil(o)),l=Math.min(this.maxHeight,Math.ceil(a));return this._svgRoot.setAttribute("width",c.toString()),this._svgRoot.setAttribute("height",l.toString()),t!==this._text&&(this._domElement.innerHTML=this._text),i!==this._style&&(Object.assign(this._domElement,{style:(h=this._style)==null?void 0:h.toCSS(s)}),this._styleElement.textContent=(u=this._style)==null?void 0:u.toGlobalCSS()),{width:c+i.padding*2,height:l+i.padding*2}}async updateText(e=!0){const{style:t,_image:i,_loadImage:s}=this;if(this.localStyleID!==t.styleID&&(this.dirty=!0,this.localStyleID=t.styleID),!this.dirty&&e)return;const{width:r,height:o}=this.measureText();i.width=s.width=Math.ceil(Math.max(1,r)),i.height=s.height=Math.ceil(Math.max(1,o)),this._updateID++;const a=this._updateID;await new Promise(c=>{s.onload=async()=>{if(a<this._updateID){c();return}await t.onBeforeDraw(),i.src=s.src,s.onload=null,s.src="",this.updateTexture(),c()};const l=new XMLSerializer().serializeToString(this._svgRoot);s.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(l)}`})}get source(){return this._image}updateTexture(){const{style:e,texture:t,_image:i,resolution:s}=this,{padding:r}=e,{baseTexture:o}=t;t.trim.width=t._frame.width=i.width/s,t.trim.height=t._frame.height=i.height/s,t.trim.x=-r,t.trim.y=-r,t.orig.width=t._frame.width-r*2,t.orig.height=t._frame.height-r*2,this._onTextureUpdate(),o.setRealSize(i.width,i.height,s),this.dirty=!1}_render(e){this._autoResolution&&this._resolution!==e.resolution&&(this._resolution=e.resolution,this.dirty=!0),this.updateText(!0),super._render(e)}_renderCanvas(e){this._autoResolution&&this._resolution!==e.resolution&&(this._resolution=e.resolution,this.dirty=!0),this.updateText(!0),super._renderCanvas(e)}getLocalBounds(e){return this.updateText(!0),super.getLocalBounds(e)}_calculateBounds(){this.updateText(!0),this.calculateVertices(),this._bounds.addQuad(this.vertexData)}_onStyleChange(){this.dirty=!0}destroy(e){var i,s,r,o,a;typeof e=="boolean"&&(e={children:e}),e=Object.assign({},ya.defaultDestroyOptions,e),super.destroy(e);const t=null;this.ownsStyle&&((i=this._style)==null||i.cleanFonts()),this._style=t,(s=this._svgRoot)==null||s.remove(),this._svgRoot=t,(r=this._domElement)==null||r.remove(),this._domElement=t,(o=this._foreignObject)==null||o.remove(),this._foreignObject=t,(a=this._styleElement)==null||a.remove(),this._styleElement=t,this._loadImage.src="",this._loadImage.onload=null,this._loadImage=t,this._image.src="",this._image=t}get width(){return this.updateText(!0),Math.abs(this.scale.x)*this._image.width/this.resolution}set width(e){this.updateText(!0);const t=Vr(this.scale.x)||1;this.scale.x=t*e/this._image.width/this.resolution,this._width=e}get height(){return this.updateText(!0),Math.abs(this.scale.y)*this._image.height/this.resolution}set height(e){this.updateText(!0);const t=Vr(this.scale.y)||1;this.scale.y=t*e/this._image.height/this.resolution,this._height=e}get style(){return this._style}set style(e){this._style!==e&&(e=e||{},e instanceof tm?(this.ownsStyle=!1,this._style=e):e instanceof Jr?(console.warn("[HTMLText] Cloning TextStyle, if this is not what you want, use HTMLTextStyle"),this.ownsStyle=!0,this._style=tm.from(e)):(this.ownsStyle=!0,this._style=new tm(e)),this.localStyleID=-1,this.dirty=!0)}get text(){return this._text}set text(e){e=String(e===""||e===null||e===void 0?" ":e),e=this.sanitiseText(e),this._text!==e&&(this._text=e,this.dirty=!0)}get resolution(){return this._resolution}set resolution(e){this._autoResolution=!1,this._resolution!==e&&(this._resolution=e,this.dirty=!0)}sanitiseText(e){return e.replace(/<br>/gi,"<br/>").replace(/<hr>/gi,"<hr/>").replace(/&nbsp;/gi,"&#160;")}};Zc.defaultDestroyOptions={texture:!0,children:!1,baseTexture:!0},Zc.defaultMaxWidth=2024,Zc.defaultMaxHeight=2024,Zc.defaultAutoResolution=!0;function au(n,e){const t=Math.max(0,Number(n)||0),i=Math.max(0,Number(e)||0);return{inner:Math.min(t,i),outer:Math.max(t,i)}}function TS(n){const e=Math.max(0,Number(n.outerRectW)||0),t=Math.max(0,Number(n.outerRectH)||0);return{innerW:Math.min(e,Math.max(0,Number(n.innerRectW)||0)),innerH:Math.min(t,Math.max(0,Number(n.innerRectH)||0)),outerW:e,outerH:t}}function jk(n,e,t,i,s){if(n==="random")return s();const r=Math.max(1,Math.round(t)),o=Math.max(0,Math.round(e))%r;return i?o/r:r<=1?.5:o/(r-1)}function Qy(n,e,t,i){const s=Math.sqrt(n*n+i()*(e*e-n*n));return{x:Math.cos(t)*s,y:-Math.sin(t)*s,radialAngle:-t*180/Math.PI}}function Wk(n,e){const{innerW:t,innerH:i,outerW:s,outerH:r}=TS(n),o=Math.max(0,(s-t)/2),a=Math.max(0,(r-i)/2),c=o*r,l=t*a,h=c*2+l*2;if(h<=0){const m=s*2+r*2;if(m<=0)return{x:0,y:0,radialAngle:0};let p=e()*m,g,v;return p<s?(g=-s/2+p,v=-r/2):(p-=s)<r?(g=s/2,v=-r/2+p):(p-=r)<s?(g=s/2-p,v=r/2):(p-=s,g=-s/2,v=r/2-p),{x:g,y:v,radialAngle:Math.atan2(v,g)*180/Math.PI}}let u=e()*h,d=0,f=0;return u<c?(d=-s/2+e()*o,f=(e()-.5)*r):(u-=c)<c?(d=t/2+e()*o,f=(e()-.5)*r):(u-=c)<l?(d=(e()-.5)*t,f=-r/2+e()*a):(d=(e()-.5)*t,f=i/2+e()*a),{x:d,y:f,radialAngle:Math.atan2(f,d)*180/Math.PI}}function zk(n,e){if(n.shape==="circle"){const{inner:t,outer:i}=au(n.innerRadius,n.outerRadius);return Qy(t,i,e()*Math.PI*2,e)}if(n.shape==="rect")return Wk(n,e);if(n.shape==="cone"){const{inner:t,outer:i}=au(n.innerRadius,n.outerRadius),s=Math.max(0,Math.min(360,Number(n.coneAngle)||0))/2,r=(Number(n.coneDirection)||0)+(e()-.5)*s*2;return Qy(t,i,r*Math.PI/180,e)}return{x:0,y:0,radialAngle:0}}function qk(n,e,t,i){if(n.shape==="path"||n.shape==="orbit"){if(n.emissionAngleMode==="path-tangent"&&Number.isFinite(e.pathAngle))return(e.pathAngle+t)*Math.PI/180;if(n.emissionAngleMode==="path-normal"&&Number.isFinite(e.pathAngle))return(e.pathAngle-90+t)*Math.PI/180}if(n.emissionAngleMode==="radial"&&n.shape!=="point"&&n.shape!=="orbit")return(e.radialAngle+t)*Math.PI/180;const s=n.emissionAngleMode==="random"?(i()-.5)*Math.max(0,Number(n.spread)||0):0,r=((Number(n.direction)||0)+t+s)*Math.PI/180;return n.shape==="cone"?-r:r}const Yr={normal:0,add:1,multiply:2,screen:3},eb=400;function Li(n,e,t){return n+(e-n)*t}function Qc(n,e){return Number.isFinite(n)?n:e}function _r(n,e,t,i=null){const s=Math.max(1e-4,Math.abs((i==null?void 0:i.scaleX)??n.rootScaleX)),r=Math.max(1e-4,Math.abs((i==null?void 0:i.scaleY)??n.rootScaleY)),o=-((i==null?void 0:i.rotation)??n.rootRotation)*Math.PI/180,a=Math.cos(o),c=Math.sin(o),l=(i==null?void 0:i.centerX)??n.centerX,h=(i==null?void 0:i.centerY)??n.centerY,u=l+a*s*e-c*r*t,d=-h+c*s*e+a*r*t;return{x:u,y:-d}}function eh(n,e,t,i=null){const s=Math.max(1e-4,Math.abs((i==null?void 0:i.scaleX)??n.rootScaleX)),r=Math.max(1e-4,Math.abs((i==null?void 0:i.scaleY)??n.rootScaleY)),o=-((i==null?void 0:i.rotation)??n.rootRotation)*Math.PI/180,a=Math.cos(o),c=Math.sin(o),l=e-((i==null?void 0:i.centerX)??n.centerX),h=-t+((i==null?void 0:i.centerY)??n.centerY);return{x:(a*l+c*h)/s,y:(-c*l+a*h)/r}}function Kk(n,e,t,i=null){const s=Math.max(1e-4,Math.abs((i==null?void 0:i.scaleX)??n.rootScaleX)),r=Math.max(1e-4,Math.abs((i==null?void 0:i.scaleY)??n.rootScaleY)),o=-((i==null?void 0:i.rotation)??n.rootRotation)*Math.PI/180,a=Math.cos(o),c=Math.sin(o),l=a*s*e-c*r*t,h=c*s*e+a*r*t;return{x:l,y:-h}}function tb(n,e,t,i=null){const s=Math.max(1e-4,Math.abs((i==null?void 0:i.scaleX)??n.rootScaleX)),r=Math.max(1e-4,Math.abs((i==null?void 0:i.scaleY)??n.rootScaleY)),o=-((i==null?void 0:i.rotation)??n.rootRotation)*Math.PI/180,a=Math.cos(o),c=Math.sin(o),l=-t;return{x:(a*e+c*l)/s,y:(-c*e+a*l)/r}}function ES(n,e,t){return t<=0||e<0||e>t?0:n==="linear"?1-e/t:n==="inverse"?Math.min(10,t/Math.max(e,t*.1)):1}function Jk(n,e,t,i,s,r,o){const a=n-t,c=e-i,l=Math.hypot(a,c);if(l<=1e-4||l>r)return{x:0,y:0};const h=s*ES(o,l,r)*10;return{x:-c/l*h,y:a/l*h}}function Zk(n,e,t){const i=n.rotation*Math.PI/180,s=Math.cos(i),r=Math.sin(i),o=Math.max(1e-4,Math.abs(n.scaleX??1)),a=Math.max(1e-4,Math.abs(n.scaleY??1)),c=e-n.x,l=t-n.y,h=(s*c+r*l)/o,u=(-r*c+s*l)/a,d=(E,S,C,M)=>{const P=C/o,A=M/a,R=Math.max(1e-4,Math.hypot(P,A)),B=P/R,O=A/R,W=s*B-r*O,V=r*B+s*O;return{x:n.x+s*E*o-r*S*a+W*.05,y:n.y+r*E*o+s*S*a+V*.05,nx:W,ny:V}};if(n.shape==="circle"){const E=Math.max(.001,n.radius),S=Math.hypot(h,u);if(S>=E)return null;const C=S>1e-4?h/S:1,M=S>1e-4?u/S:0;return d(C*E,M*E,C,M)}if(n.shape==="ellipse"){const E=Math.max(.001,n.radiusX),S=Math.max(.001,n.radiusY),C=Math.hypot(h/E,u/S);if(C>=1)return null;const M=C>1e-4?1/C:1,P=C>1e-4?h*M:E,A=C>1e-4?u*M:0,R=Math.max(1e-4,Math.hypot(P/(E*E),A/(S*S)));return d(P,A,P/(E*E)/R,A/(S*S)/R)}if(n.shape==="rect"){const E=Math.max(.001,n.width*.5),S=Math.max(.001,n.height*.5);if(Math.abs(h)>=E||Math.abs(u)>=S)return null;const C=E-Math.abs(h),M=S-Math.abs(u);if(C<M){const A=h>=0?1:-1;return d(A*E,u,A,0)}const P=u>=0?1:-1;return d(h,P*S,0,P)}const f=Math.max(3,Math.min(16,Math.round(n.sides||(n.shape==="custom"?5:6)))),m=Math.max(.001,n.width*.5),p=Math.max(.001,n.height*.5),g=Array.from({length:f},(E,S)=>{const C=Math.PI*.5+S/f*Math.PI*2;return{x:Math.cos(C)*m,y:Math.sin(C)*p}});let v=!1;for(let E=0,S=g.length-1;E<g.length;S=E++){const C=g[E],M=g[S];C.y>u!=M.y>u&&h<(M.x-C.x)*(u-C.y)/(M.y-C.y)+C.x&&(v=!v)}if(!v)return null;let b=g[0].x,y=g[0].y,x=1/0;for(let E=0;E<g.length;E++){const S=g[E],C=g[(E+1)%g.length],M=C.x-S.x,P=C.y-S.y,A=Math.max(1e-4,M*M+P*P),R=Math.min(1,Math.max(0,((h-S.x)*M+(u-S.y)*P)/A)),B=S.x+M*R,O=S.y+P*R,W=Math.hypot(B-h,O-u);W<x&&(x=W,b=B,y=O)}const _=Math.max(1e-4,Math.hypot(b-h,y-u));return d(b,y,(b-h)/_,(y-u)/_)}function Qk(n){return Math.min(1,Math.max(0,1-n.life/Math.max(1e-4,n.maxLife)))}function Ir(n,e,t){let i=(n>>>0^Math.imul(e+1,2654435761)^t)>>>0;return i^=i>>>16,i=Math.imul(i,2146121005),i^=i>>>15,i=Math.imul(i,2221713035),i^=i>>>16,(i>>>0)/4294967296}function oa(n,e,t,i,s){return n==="fixed"?e:n==="curve"?Li(e,t,ws(i,s)):Li(e,t,s)}function im(n,e,t,i,s,r){return n==="curve"?Li(e,t,ws(i,s)):n==="random"?r:e}function ib(n,e,t,i,s){const r=1-s;return r*r*r*n+3*r*r*s*e+3*r*s*s*t+s*s*s*i}function ws(n,e,t="线性"){if(!Array.isArray(n)||n.length===0)return 1;const i=[...n].sort((s,r)=>s.x-r.x);if(e<=i[0].x)return i[0].y;if(e>=i[i.length-1].x)return i[i.length-1].y;for(let s=0;s<i.length-1;s++)if(e>=i[s].x&&e<=i[s+1].x){const r=i[s],o=i[s+1],a=o.x-r.x||1;if(t!=="贝塞尔")return Li(r.y,o.y,(e-r.x)/a);const c=r.x+(r.outX??a/3),l=r.y+(r.outY??(o.y-r.y)/3),h=o.x+(o.inX??-a/3),u=o.y+(o.inY??-(o.y-r.y)/3);let d=0,f=1;for(let m=0;m<14;m++){const p=(d+f)/2;ib(r.x,c,h,o.x,p)<e?d=p:f=p}return ib(r.y,l,u,o.y,(d+f)/2)}return i[i.length-1].y}function nm(n){let e=n>>>0;return function(){e|=0,e=e+1831565813|0;let t=Math.imul(e^e>>>15,1|e);return t=t+Math.imul(t^t>>>7,61|t)^t,((t^t>>>14)>>>0)/4294967296}}function Oa(n){let e=n.replace("#","");return e.length===3&&(e=e.split("").map(t=>t+t).join("")),parseInt(e,16)}function eF(n,e,t){const i=nb(n),s=nb(e),r=Math.round(i[0]+(s[0]-i[0])*t),o=Math.round(i[1]+(s[1]-i[1])*t),a=Math.round(i[2]+(s[2]-i[2])*t);return r<<16|o<<8|a}function yp(n,e){if(!Array.isArray(n)||n.length===0)return 16777215;const t=[...n].sort((i,s)=>i.position-s.position);if(e<=t[0].position)return Oa(t[0].color);if(e>=t[t.length-1].position)return Oa(t[t.length-1].color);for(let i=0;i<t.length-1;i++){const s=t[i],r=t[i+1];if(e<s.position||e>r.position)continue;const o=(e-s.position)/Math.max(1e-4,r.position-s.position);return eF(s.color,r.color,o)}return Oa(t[t.length-1].color)}function nb(n){let e=n.replace("#","");e.length===3&&(e=e.split("").map(i=>i+i).join(""));const t=parseInt(e,16);return[t>>16&255,t>>8&255,t&255]}function sb(n,e){const t=Math.min(255,(n>>16&255)+(e>>16&255)),i=Math.min(255,(n>>8&255)+(e>>8&255)),s=Math.min(255,(n&255)+(e&255));return t<<16|i<<8|s}function tF(){return{sprite:null,boneName:"",mesh:null,meshSignature:"",history:[],bones:[],skinWeights:[],currentWidth:0,currentAlpha:0,currentColor:16777215,resourceId:1,enabled:!1,sampledLength:100,sampledWidth:100}}function Mh(n){n.history.length=0,n.bones.length=0,n.mesh&&(n.mesh.visible=!1)}class iF{constructor(e){T(this,"container");this.container=e}ensureMesh(e,t,i){const s=t.trailResources.find(g=>g.id===e.resourceId)||t.trailResources[0],r=(s==null?void 0:s.texture)||it.EMPTY,o=Number(s==null?void 0:s.rotation)||0,a=Math.max(2,Math.min(16,Math.round(t.trailGridRows))),c=Math.max(2,Math.min(32,Math.round(t.trailGridCols))),l=Math.max(2,Math.min(16,Math.round((s==null?void 0:s.boneCount)??3))),h=`${a}:${c}:${l}:${(s==null?void 0:s.id)??0}:${o}`;if(e.mesh&&e.meshSignature===h)return e.mesh.texture!==r&&(e.mesh.texture=r),e.mesh;e.mesh&&(this.container.removeChild(e.mesh),e.mesh.destroy()),e.meshSignature&&e.meshSignature!==h&&(e.history.length=0,e.bones.length=0);const u=new Float32Array(a*c*2),d=new Float32Array(a*c*2),f=[],m=[];for(let g=0;g<c;g++){const v=g/(c-1),b=v*(l-1),y=Math.min(l-1,Math.floor(b)),x=Math.min(l-1,y+1),_=b-y;for(let E=0;E<a;E++){const S=g*a+E,C=v,M=E/(a-1),P=o*Math.PI/180,A=Math.cos(P),R=Math.sin(P);d[S*2]=.5+A*(C-.5)-R*(M-.5),d[S*2+1]=.5+R*(C-.5)+A*(M-.5),m.push({boneA:y,boneB:x,weight:_})}}for(let g=0;g<c-1;g++)for(let v=0;v<a-1;v++){const b=g*a+v,y=(g+1)*a+v,x=b+1,_=y+1;f.push(b,y,x,y,_,x)}const p=new pk(r,u,d,new Uint16Array(f));return p.visible=!1,p.blendMode=Yr.normal,this.container.addChildAt(p,Math.max(0,this.container.getChildIndex(i))),e.mesh=p,e.meshSignature=h,e.skinWeights=m,p}appendPoint(e,t,i,s){const r=e.history[0];!r||Math.hypot(r.x-t,r.y-i)>.05?e.history.unshift({x:t,y:i}):(r.x=t,r.y=i);const o=Math.max(1,s)*1.5;let a=0,c=e.history.length;for(let l=1;l<e.history.length;l++)if(a+=Math.hypot(e.history[l].x-e.history[l-1].x,e.history[l].y-e.history[l-1].y),a>=o||l>=239){c=l+1;break}e.history.length>c&&(e.history.length=c)}sampleBones(e,t,i){const s=Math.max(2,Math.min(16,Math.round(i))),r=e.history,o=[];if(!r.length)return o;let a=0;for(let l=1;l<r.length;l++)a+=Math.hypot(r[l].x-r[l-1].x,r[l].y-r[l-1].y);const c=Math.min(Math.max(0,t),a);for(let l=0;l<s;l++){const h=c*l/(s-1);let u=0,d=r[r.length-1];for(let f=1;f<r.length;f++){const m=r[f-1],p=r[f],g=Math.hypot(p.x-m.x,p.y-m.y);if(u+g>=h&&g>1e-4){const v=(h-u)/g;d={x:Li(m.x,p.x,v),y:Li(m.y,p.y,v)};break}u+=g}o.push({boneName:`${e.boneName}_trail_${l}`,x:d.x,y:d.y,rotation:0})}for(let l=0;l<o.length;l++){const h=o[Math.min(o.length-1,l+1)],u=o[Math.max(0,l-1)],d=l<o.length-1?h.x-o[l].x:o[l].x-u.x,f=l<o.length-1?h.y-o[l].y:o[l].y-u.y;o[l].rotation=Math.atan2(f,d)*180/Math.PI}if(c+1e-4<Math.max(0,t)&&o.length>1){const l=o[0].rotation,u=(o[o.length-1].rotation-l+540)%360-180;for(let d=0;d<o.length;d++)o[d].rotation=l+u*d/(o.length-1)}return o}skinMesh(e,t,i){if(!e.sprite)return;const s=this.ensureMesh(e,t,e.sprite),r=t.trailResources.find(h=>h.id===i.resourceId)||t.trailResources[0];if(!(r!=null&&r.texture)||i.bones.length<2){s.visible=!1;return}e.resourceId=r.id,s.texture!==r.texture&&(s.texture=r.texture);const o=Math.max(2,Math.min(16,Math.round(t.trailGridRows))),a=Math.max(2,Math.min(32,Math.round(t.trailGridCols))),c=s.vertices,l=[];for(let h=0;h<a;h++){const u=e.skinWeights[h*o],d=i.bones[Math.min(i.bones.length-1,u.boneA)],f=i.bones[Math.min(i.bones.length-1,u.boneB)];l.push({x:Li(d.x,f.x,u.weight),y:Li(d.y,f.y,u.weight)})}for(let h=0;h<a;h++){const u=l[Math.max(0,h-1)],d=l[Math.min(a-1,h+1)],f=d.x-u.x,m=d.y-u.y,p=Math.max(1e-4,Math.hypot(f,m)),g=-m/p,v=f/p,b=h/(a-1),y=r.shapeEnabled?Math.max(0,ws(r.shapeCurve,b)):1;for(let x=0;x<o;x++){const E=(x/(o-1)-.5)*i.width*y,S=(h*o+x)*2;c[S]=l[h].x+g*E,c[S+1]=l[h].y+v*E}}s.tint=i.colorHex,s.alpha=i.alpha,s.blendMode=Yr[r.blend],s.visible=Math.hypot(l[0].x-l[a-1].x,l[0].y-l[a-1].y)>.5&&i.alpha>0}update(e,t,i,s,r,o,a){if(e.sprite=a,e.boneName=i,!t.trail||!e.enabled||e.sampledLength<=0||e.sampledWidth<=0){Mh(e);return}this.ensureMesh(e,t,a);const c=t.trailResources.find(f=>f.id===e.resourceId)||t.trailResources[0];this.appendPoint(e,s,r,e.sampledLength);const l=c!=null&&c.lifeLengthEnabled?Math.max(0,ws(c.lifeLengthCurve,o)):1,h=Math.max(0,e.sampledLength)*l;e.bones=this.sampleBones(e,h,(c==null?void 0:c.boneCount)??3),e.bones[0]&&(e.bones[0].x=s,e.bones[0].y=r);const u=(c==null?void 0:c.widthMode)==="particle"?(Math.abs(a.scale.x)+Math.abs(a.scale.y))*.5:1;e.currentWidth=Math.max(0,e.sampledWidth)*u,e.currentAlpha=(c==null?void 0:c.alphaMode)==="particle"?a.alpha:(c==null?void 0:c.alphaMode)==="curve"?ws(c.alphaCurve,o):(c==null?void 0:c.alpha)??1,e.currentColor=(c==null?void 0:c.colorMode)==="particle"?a.tint:(c==null?void 0:c.colorMode)==="curve"?yp(c.colorGradient,o):Oa((c==null?void 0:c.color)||"#ffffff");const d={bones:e.bones.map(f=>({...f})),activeBoneCount:e.bones.length,width:e.currentWidth,alpha:Math.min(1,Math.max(0,e.currentAlpha)),colorHex:e.currentColor,resourceId:e.resourceId};return this.skinMesh(e,t,d),d}applyState(e,t,i,s){var r;e.sprite=i,e.resourceId=s.resourceId??((r=t.trailResources[0])==null?void 0:r.id)??1,e.bones=s.bones.map(o=>({...o})),e.currentWidth=s.width,e.currentAlpha=s.alpha,this.skinMesh(e,t,s)}drawDebug(e,t,i,s){if(e.clear(),!t||!i.trail)return;const r=Math.max(2,Math.min(16,Math.round(i.trailGridRows))),o=Math.max(2,Math.min(32,Math.round(i.trailGridCols)));e.lineStyle(1,3790847,.72);for(const a of s){const c=a.mesh;if(!(c!=null&&c.visible))continue;const l=c.vertices,h=(u,d)=>{const f=(u*r+d)*2;return{x:l[f],y:l[f+1]}};for(let u=0;u<r;u++)for(let d=0;d<o;d++){const f=h(d,u);d===0?e.moveTo(f.x,f.y):e.lineTo(f.x,f.y)}for(let u=0;u<o;u++)for(let d=0;d<r;d++){const f=h(u,d);d===0?e.moveTo(f.x,f.y):e.lineTo(f.x,f.y)}e.beginFill(9235711,.9);for(let u=0;u<o;u++)for(let d=0;d<r;d++){const f=h(u,d);e.drawCircle(f.x,f.y,1.6)}e.endFill()}}}function nF(n){return{id:1,texture:n,textureName:"star",textureFolder:"",previewUrl:"/images/star.png",imageMode:"fixed",sequencePlayback:"loop-forward",sequenceFps:30,sequenceFrames:[],weight:100,locked:!1,scale:1,anchorX:.5,anchorY:.5,colorMode:"fixed",colorStart:"#ffffff",colorEnd:"#ff4d4d",blend:"normal",colorGradient:[{position:0,color:"#ffffff"},{position:1,color:"#ff4d4d"}],independentAlpha:"off",alpha:1,alphaCurveMode:"跟随导出",alphaCurve:[{x:0,y:0},{x:.1,y:1},{x:.9,y:1},{x:1,y:0}]}}function sF(){return{id:1,texture:null,textureName:"trail",previewUrl:"/images/trail.png",weight:100,locked:!1,rotation:0,colorMode:"particle",color:"#ffffff",colorGradient:[{position:0,color:"#ffffff"},{position:1,color:"#ffffff"}],blend:"normal",alphaMode:"particle",alpha:1,alphaCurve:[{x:0,y:1},{x:1,y:1}],boneCount:3,trailRatio:100,lengthMode:"fixed",length:100,lengthMin:100,lengthMax:100,widthSizeMode:"fixed",width:100,widthMin:100,widthMax:100,widthMode:"particle",lifeLengthEnabled:!1,lifeLengthCurve:[{x:0,y:1},{x:1,y:1}],shapeEnabled:!1,shapeCurve:[{x:0,y:1},{x:1,y:1}]}}function rF(n,e){const t=n.imageResources.filter(r=>r.texture||r.sequenceFrames.some(o=>o.texture));if(!t.length)return nF(n.texture);const i=t.reduce((r,o)=>r+Math.max(0,o.weight),0);if(i<=0)return t[Math.floor(e()*t.length)];let s=e()*i;for(const r of t)if(s-=Math.max(0,r.weight),s<=0)return r;return t[t.length-1]}function oF(n,e){const t=n.trailResources.filter(r=>r.texture);if(!t.length)return n.trailResources[0]||sF();const i=t.reduce((r,o)=>r+Math.max(0,o.weight),0);if(i<=0)return t[Math.min(t.length-1,Math.floor(e*t.length))];let s=e*i;for(const r of t)if(s-=Math.max(0,r.weight),s<=0)return r;return t[t.length-1]}function rb(n,e){if(n.imageMode!=="sequence"||n.sequenceFrames.length<=1)return{index:0,visible:!0};const t=Math.min(120,Math.max(1,Number(n.sequenceFps)||30)),i=Math.max(0,Math.floor(Math.max(0,e)*t)),s=n.sequenceFrames.length-1;return n.sequencePlayback==="once-hide"?{index:Math.min(s,i),visible:i<=s}:n.sequencePlayback==="once-hold"?{index:Math.min(s,i),visible:!0}:n.sequencePlayback==="loop-reverse"?{index:s-i%n.sequenceFrames.length,visible:!0}:{index:i%n.sequenceFrames.length,visible:!0}}function sm(n,e,t){var i;return n.imageMode==="sequence"&&n.sequenceFrames.length?((i=n.sequenceFrames[Math.max(0,Math.min(n.sequenceFrames.length-1,t))])==null?void 0:i.texture)||n.texture||e:n.texture||e}function tc(){return{texture:null,imageResources:[{id:1,texture:null,textureName:"star",textureFolder:"",previewUrl:"/images/star.png",imageMode:"fixed",sequencePlayback:"loop-forward",sequenceFps:30,sequenceFrames:[],weight:100,locked:!1,scale:1,anchorX:.5,anchorY:.5,colorMode:"fixed",colorStart:"#ffffff",colorEnd:"#ff4d4d",colorGradient:[{position:0,color:"#ffffff"},{position:1,color:"#ff4d4d"}],blend:"normal",independentAlpha:"off",alpha:1,alphaCurveMode:"跟随导出",alphaCurve:[{x:0,y:0},{x:.1,y:1},{x:.9,y:1},{x:1,y:0}]}],imageWeightVersion:1,name:"ParticleSystem1",mode:"stream",rate:20,streamBehavior:"normal",loopDurationFrames:30,generateLoopStartAnimation:!1,loopStartUseCustomDuration:!1,loopStartDurationFrames:30,generateLoopEndAnimation:!1,loopEndUseCustomDuration:!1,loopEndDurationFrames:30,burstCount:50,burstLoop:!1,delay:0,duration:1,shape:"point",showShape:!0,shapeRangeVersion:1,innerRadius:0,outerRadius:30,innerRectW:0,innerRectH:0,outerRectW:60,outerRectH:40,spawnPathId:0,spawnPathDistribution:"fixed",radius:30,rectW:60,rectH:40,centerX:0,centerY:0,rootRotation:0,rootScaleX:1,rootScaleY:1,renderLayerMode:"top",renderLayerSpineId:0,renderLayerSlotName:"",renderLayerSlotPosition:"above",renderLayerFollowAttachment:!1,emissionAngleMode:"random",direction:0,spread:360,coneDirection:90,coneAngle:60,lifeMin:.6,lifeMax:1.8,lifeMode:"random",lifeCurve:[{x:0,y:0},{x:1,y:1}],speedMin:30,speedMax:140,speedMode:"random",speedCurve:[{x:0,y:0},{x:1,y:1}],scaleMin:.3,scaleMax:.8,scaleMode:"random",scaleAxisMode:"uniform",scaleYMin:.3,scaleYMax:.8,scaleCurve:[{x:0,y:0},{x:1,y:1}],scaleYCurve:[{x:0,y:0},{x:1,y:1}],scaleEndRatio:.3,initialRotationMode:"random",initialRotationMin:0,initialRotationMax:360,initialRotationCurve:[{x:0,y:0},{x:1,y:1}],alpha:.9,alphaEnd:0,rotationSpeedMin:-180,rotationSpeedMax:180,speedOverLifeEnabled:!1,speedOverLifeMode:"fixed",speedOverLifeMin:1,speedOverLifeMax:1,speedOverLifeCurve:[{x:0,y:1},{x:1,y:1}],scaleOverLifeEnabled:!1,scaleOverLifeMode:"curve",scaleOverLifeAxisMode:"uniform",scaleOverLifeMin:0,scaleOverLifeMax:1,scaleYOverLifeMin:0,scaleYOverLifeMax:1,scaleOverLifeCurve:[{x:0,y:1},{x:1,y:1}],scaleYOverLifeCurve:[{x:0,y:1},{x:1,y:1}],rotationOverLifeEnabled:!1,rotationOverLifeMode:"random",rotationOverLifeCurve:[{x:0,y:0},{x:1,y:1}],gravity:980,gravityMode:"fixed",gravityMin:980,gravityMax:980,gravityDirection:-90,gravityCurve:[{x:0,y:1},{x:1,y:1}],damping:0,seed:0,colorStart:"#ffffff",colorEnd:"#ff4d4d",colorOverLife:!1,blend:"add",alphaMode:"curve",curveMode:"线性",alphaCurve:[{x:0,y:0},{x:.2,y:1},{x:.8,y:1},{x:1,y:0}],textureName:"star",textureFolder:"",alphaScale:1,anchorX:.5,anchorY:.5,independentAlpha:"off",offsetX:0,offsetY:0,noise:!1,noiseAmt:30,noiseRange:100,noiseSpeed:1,useGravity:!1,wind:!1,windX:0,windY:0,windMode:"fixed",windMin:100,windMax:100,windDirection:0,windCurve:[{x:0,y:1},{x:1,y:1}],forceField:!1,forceStrength:10,forceRadius:100,forceCenterX:0,forceCenterY:0,forceFalloff:"linear",showForceFieldShape:!0,vortex:!1,vortexStrength:10,vortexRadius:100,vortexCenterX:0,vortexCenterY:0,vortexFalloff:"linear",showVortexShape:!0,attraction:!1,attractionCenterX:200,attractionCenterY:0,attractionRadius:20,attractionDuration:.5,attractionDelay:.1,attractionDelayMode:"particle",attractionPath:"curve",showAttractionShape:!0,trail:!1,trailConfigVersion:3,trailResources:[{id:1,texture:null,textureName:"trail",previewUrl:"/images/trail.png",weight:100,locked:!1,rotation:0,colorMode:"particle",color:"#ffffff",colorGradient:[{position:0,color:"#ffffff"},{position:1,color:"#ffffff"}],blend:"normal",alphaMode:"particle",alpha:1,alphaCurve:[{x:0,y:1},{x:1,y:1}],boneCount:3,trailRatio:100,lengthMode:"fixed",length:100,lengthMin:100,lengthMax:100,widthSizeMode:"fixed",width:100,widthMin:100,widthMax:100,widthMode:"particle",lifeLengthEnabled:!1,lifeLengthCurve:[{x:0,y:1},{x:1,y:1}],shapeEnabled:!1,shapeCurve:[{x:0,y:1},{x:1,y:1}]}],trailResourceVersion:6,trailTexture:null,trailTextureName:"trail",trailPreviewUrl:"/images/trail.png",trailColorMode:"particle",trailColor:"#ffffff",trailColorGradient:[{position:0,color:"#ffffff"},{position:1,color:"#ffffff"}],trailAlphaMode:"particle",trailAlpha:1,trailAlphaCurve:[{x:0,y:1},{x:1,y:1}],trailBoneCount:3,trailLength:100,trailWidth:100,trailWidthMode:"particle",trailLifeLengthEnabled:!1,trailLifeLengthCurve:[{x:0,y:1},{x:1,y:1}],trailShapeEnabled:!1,trailShapeCurve:[{x:0,y:1},{x:1,y:1}],trailGridRows:4,trailGridCols:4,collision:!1,collisionColliderIds:[],pathFollow:!1,eventEnabled:!1,events:[],emitterFollow:!1,emitterFollowMode:"none",emitterFollowPathId:0,emitterFollowSpineId:0,emitterFollowBoneName:"",emitterFollowBoneOffsetX:0,emitterFollowBoneOffsetY:0,emitterFollowBoneRotation:0,emitterFollowBoneScaleX:1,emitterFollowBoneScaleY:1,emitterAngleMode:"fixed",emitterFollowCurve:[{x:0,y:0},{x:1,y:1}],emitterFollowDuration:2,emitterFollowSpace:"world",emitterFollowDirection:"forward",emitterFollowOffset:0}}function lr(n){var P;const e=tc(),t=n,i=t.shapeRangeVersion!==1,s=Number(t.radius),r=Number(t.rectW),o=Number(t.rectH),a=Number(t.direction),c=Number(t.spread),l=t.shape,h=t.imageWeightVersion!==1,u=t.loopDurationFrames==null,d=t.gravityMode==null,f=Number(t.gravity),m=t.windMode==null,p=Number(t.windX),g=Number(t.windY),v=t.forceFalloff==null,b=Number(t.forceStrength),y=t.trailConfigVersion!==3,x=!Array.isArray(t.trailResources),_=t.trailResourceVersion!==6,E=t.trailTexture,S=String(t.trailTextureName||"trail"),C=String(t.trailPreviewUrl||"/images/trail.png").replace("/trails/trail.png","/images/trail.png");for(const[A,R]of Object.entries(e))t[A]!==void 0&&t[A]!==null||(t[A]=Array.isArray(R)?R.map(B=>typeof B=="object"&&B!==null?{...B}:B):R);i&&(n.innerRadius=0,n.outerRadius=Math.max(0,Number.isFinite(s)?s:e.outerRadius),n.innerRectW=0,n.innerRectH=0,n.outerRectW=Math.max(0,Number.isFinite(r)?r:e.outerRectW),n.outerRectH=Math.max(0,Number.isFinite(o)?o:e.outerRectH),n.coneDirection=Number.isFinite(a)?a:90,n.emissionAngleMode=Number.isFinite(c)&&c>0?"random":"fixed",l==="cone"&&(n.spread=Math.max(0,Number(n.coneAngle)||0)),n.shapeRangeVersion=1),n.shape==="orbit"&&(n.shape="path"),["fixed","random","radial","path-normal","path-tangent"].includes(n.emissionAngleMode)||(n.emissionAngleMode="fixed"),!["circle","rect","cone"].includes(n.shape)&&n.emissionAngleMode==="radial"&&(n.emissionAngleMode="fixed"),n.shape!=="path"&&(n.emissionAngleMode==="path-normal"||n.emissionAngleMode==="path-tangent")&&(n.emissionAngleMode="fixed"),n.spawnPathId=Math.max(0,Math.round(Number(n.spawnPathId)||0)),n.spawnPathDistribution!=="fixed"&&n.spawnPathDistribution!=="random"&&(n.spawnPathDistribution="fixed"),n.renderLayerMode!=="top"&&n.renderLayerMode!=="slot"&&(n.renderLayerMode="top"),n.renderLayerSpineId=Math.max(0,Math.round(Number(n.renderLayerSpineId)||0)),typeof n.renderLayerSlotName!="string"&&(n.renderLayerSlotName=""),n.renderLayerSlotPosition!=="above"&&n.renderLayerSlotPosition!=="below"&&(n.renderLayerSlotPosition="above"),typeof n.renderLayerFollowAttachment!="boolean"&&(n.renderLayerFollowAttachment=!1),typeof n.eventEnabled!="boolean"&&(n.eventEnabled=!1),Array.isArray(n.events)||(n.events=[]);for(const A of n.events){A.id=Math.max(1,Math.round(Number(A.id)||1)),A.event!=="birth"&&A.event!=="death"&&A.event!=="collision"&&(A.event="birth"),A.targetSystemId=Math.max(0,Math.round(Number(A.targetSystemId)||0));const R=Number(A.probability);A.probability=Math.min(1,Math.max(0,Number.isFinite(R)?R:1));const B=Math.round(Number(A.collisionLimit));A.collisionLimit=Math.min(4,Math.max(1,Number.isFinite(B)?B:1));const O=A.inherit,W=["color","scale","rotation","life"],V=Array.isArray(O)?O:O==="all"?[...W]:W.includes(String(O))?[String(O)]:[],Y=[...new Set(V.filter(N=>W.includes(String(N))))],L=Array.isArray(O)?O:null;(!L||L.length!==Y.length||Y.some((N,F)=>N!==L[F]))&&(A.inherit=Y),A.colorInheritMode!=="add"&&A.colorInheritMode!=="replace"&&(A.colorInheritMode="add")}n.innerRadius=Math.max(0,Number(n.innerRadius)||0),n.outerRadius=Math.max(n.innerRadius,Number(n.outerRadius)||0),n.innerRectW=Math.max(0,Number(n.innerRectW)||0),n.innerRectH=Math.max(0,Number(n.innerRectH)||0),n.outerRectW=Math.max(n.innerRectW,Number(n.outerRectW)||0),n.outerRectH=Math.max(n.innerRectH,Number(n.outerRectH)||0);const M=Array.from(new Set((Array.isArray(n.collisionColliderIds)?n.collisionColliderIds:[]).map(A=>Math.round(Number(A))).filter(A=>Number.isFinite(A)&&A>0)));(M.length!==n.collisionColliderIds.length||M.some((A,R)=>A!==n.collisionColliderIds[R]))&&(n.collisionColliderIds=M),n.streamBehavior!=="normal"&&n.streamBehavior!=="loop"&&(n.streamBehavior="normal"),(u||!Number.isFinite(n.loopDurationFrames))&&(n.loopDurationFrames=Math.ceil(Math.max(1/30,Number(n.duration)||1)*30)),n.loopDurationFrames=Math.min(1800,Math.max(1,Math.ceil(n.loopDurationFrames))),typeof n.generateLoopStartAnimation!="boolean"&&(n.generateLoopStartAnimation=!1),typeof n.generateLoopEndAnimation!="boolean"&&(n.generateLoopEndAnimation=!1),typeof n.loopStartUseCustomDuration!="boolean"&&(n.loopStartUseCustomDuration=!1),typeof n.loopEndUseCustomDuration!="boolean"&&(n.loopEndUseCustomDuration=!1),n.loopStartDurationFrames=Math.min(1800,Math.max(1,Math.ceil(Number(n.loopStartDurationFrames)||30))),n.loopEndDurationFrames=Math.min(1800,Math.max(1,Math.ceil(Number(n.loopEndDurationFrames)||30))),(!Array.isArray(n.imageResources)||n.imageResources.length===0)&&(n.imageResources=tc().imageResources);for(const A of n.imageResources){!A.texture&&n.texture&&(A.texture=n.texture),A.textureName||(A.textureName="star"),A.previewUrl==="/particles/star.png"&&(A.previewUrl="/images/star.png"),A.previewUrl||(A.previewUrl=A.textureName==="star"?"/images/star.png":""),A.imageMode!=="fixed"&&A.imageMode!=="sequence"&&(A.imageMode="fixed"),A.sequencePlayback==="once"?A.sequencePlayback="once-hold":A.sequencePlayback==="loop"?A.sequencePlayback="loop-forward":["once-hide","once-hold","loop-forward","loop-reverse"].includes(A.sequencePlayback)||(A.sequencePlayback="loop-forward"),Number.isFinite(A.sequenceFps)||(A.sequenceFps=30),A.sequenceFps=Math.min(120,Math.max(1,Number(A.sequenceFps)||30)),Array.isArray(A.sequenceFrames)||(A.sequenceFrames=[]);for(const R of A.sequenceFrames)typeof R.name!="string"&&(R.name=""),typeof R.previewUrl!="string"&&(R.previewUrl=""),R.texture===void 0&&(R.texture=null);Number.isFinite(A.weight)||(A.weight=100),typeof A.locked!="boolean"&&(A.locked=!1),Number.isFinite(A.scale)||(A.scale=1),Number.isFinite(A.anchorX)||(A.anchorX=.5),Number.isFinite(A.anchorY)||(A.anchorY=.5),A.colorMode!=="fixed"&&A.colorMode!=="random"&&A.colorMode!=="lifetime"&&(A.colorMode=n.colorOverLife?"lifetime":"fixed"),A.colorStart||(A.colorStart=n.colorStart||"#ffffff"),A.colorEnd||(A.colorEnd=n.colorEnd||A.colorStart),(!Array.isArray(A.colorGradient)||A.colorGradient.length<2)&&(A.colorGradient=[{position:0,color:A.colorStart},{position:1,color:A.colorEnd}]),Object.prototype.hasOwnProperty.call(Yr,A.blend)||(A.blend=n.blend||"normal"),["off","fixed","curve"].includes(A.independentAlpha)||(A.independentAlpha=n.independentAlpha||"off"),Number.isFinite(A.alpha)||(A.alpha=Number.isFinite(n.alphaScale)?n.alphaScale:1),["跟随导出","线性","贝塞尔"].includes(A.alphaCurveMode)||(A.alphaCurveMode=n.curveMode||"跟随导出"),(!Array.isArray(A.alphaCurve)||A.alphaCurve.length<2)&&(A.alphaCurve=(n.alphaCurve||[{x:0,y:1},{x:1,y:1}]).map(R=>({...R})))}if(n.imageResources.length===1)n.imageResources[0].weight=100,n.imageResources[0].locked=!1;else if(h){const A=100/n.imageResources.length;n.imageResources.forEach((R,B)=>{R.weight=B===n.imageResources.length-1?100-A*(n.imageResources.length-1):A,R.locked=!1})}if(n.imageWeightVersion=1,d){const A=Number.isFinite(f)&&f!==0?f:980;n.gravity=A,n.gravityMin=A,n.gravityMax=A}if(m){const A=Number.isFinite(p)&&Number.isFinite(g)&&(p!==0||g!==0);n.windMin=A?Math.hypot(p,g):100,n.windMax=n.windMin,n.windDirection=A?Math.atan2(-g,p)*180/Math.PI:0}v&&(n.forceStrength=Number.isFinite(b)&&b!==0?b:10),y&&(n.trailConfigVersion=3,n.trailAlphaCurve=[{x:0,y:1},{x:1,y:1}],n.trailLifeLengthCurve=[{x:0,y:1},{x:1,y:1}],n.trailShapeCurve=[{x:0,y:1},{x:1,y:1}],n.trailGridRows=4,n.trailGridCols=4),(x||!n.trailResources.length)&&(n.trailResources=[{id:1,texture:E||null,textureName:S,previewUrl:C,weight:100,locked:!1,rotation:0,colorMode:n.trailColorMode,color:n.trailColor,colorGradient:n.trailColorGradient.map(A=>({...A})),blend:"normal",alphaMode:n.trailAlphaMode,alpha:n.trailAlpha,alphaCurve:n.trailAlphaCurve.map(A=>({...A})),boneCount:n.trailBoneCount,trailRatio:100,lengthMode:"fixed",length:n.trailLength,lengthMin:n.trailLength,lengthMax:n.trailLength,widthSizeMode:"fixed",width:n.trailWidth,widthMin:n.trailWidth,widthMax:n.trailWidth,widthMode:n.trailWidthMode,lifeLengthEnabled:n.trailLifeLengthEnabled,lifeLengthCurve:n.trailLifeLengthCurve.map(A=>({...A})),shapeEnabled:n.trailShapeEnabled,shapeCurve:n.trailShapeCurve.map(A=>({...A}))}]);for(const A of n.trailResources)A.textureName||(A.textureName="trail"),A.previewUrl==="/trails/trail.png"&&(A.previewUrl="/images/trail.png"),A.previewUrl||(A.previewUrl="/images/trail.png"),Number.isFinite(A.weight)||(A.weight=100),typeof A.locked!="boolean"&&(A.locked=!1),Number.isFinite(A.rotation)||(A.rotation=0),["particle","fixed","curve"].includes(A.colorMode)||(A.colorMode=n.trailColorMode||"particle"),A.color||(A.color=n.trailColor||"#ffffff"),(!Array.isArray(A.colorGradient)||A.colorGradient.length<2)&&(A.colorGradient=(n.trailColorGradient||[{position:0,color:"#ffffff"},{position:1,color:"#ffffff"}]).map(R=>({...R}))),Object.prototype.hasOwnProperty.call(Yr,A.blend)||(A.blend="normal"),["particle","fixed","curve"].includes(A.alphaMode)||(A.alphaMode=n.trailAlphaMode||"particle"),Number.isFinite(A.alpha)||(A.alpha=Number.isFinite(n.trailAlpha)?n.trailAlpha:1),(!Array.isArray(A.alphaCurve)||A.alphaCurve.length<2)&&(A.alphaCurve=(n.trailAlphaCurve||[{x:0,y:1},{x:1,y:1}]).map(R=>({...R}))),Number.isFinite(A.boneCount)||(A.boneCount=Number.isFinite(n.trailBoneCount)?n.trailBoneCount:3),Number.isFinite(A.trailRatio)||(A.trailRatio=100),A.trailRatio=Math.min(100,Math.max(0,A.trailRatio)),["fixed","random"].includes(A.lengthMode)||(A.lengthMode="fixed"),Number.isFinite(A.length)||(A.length=Number.isFinite(n.trailLength)?n.trailLength:100),Number.isFinite(A.lengthMin)||(A.lengthMin=A.length),Number.isFinite(A.lengthMax)||(A.lengthMax=A.length),["fixed","random"].includes(A.widthSizeMode)||(A.widthSizeMode="fixed"),Number.isFinite(A.width)||(A.width=Number.isFinite(n.trailWidth)?n.trailWidth:100),Number.isFinite(A.widthMin)||(A.widthMin=A.width),Number.isFinite(A.widthMax)||(A.widthMax=A.width),["particle","fixed"].includes(A.widthMode)||(A.widthMode=n.trailWidthMode||"particle"),typeof A.lifeLengthEnabled!="boolean"&&(A.lifeLengthEnabled=!!n.trailLifeLengthEnabled),(!Array.isArray(A.lifeLengthCurve)||A.lifeLengthCurve.length<2)&&(A.lifeLengthCurve=(n.trailLifeLengthCurve||[{x:0,y:1},{x:1,y:1}]).map(R=>({...R}))),typeof A.shapeEnabled!="boolean"&&(A.shapeEnabled=!!n.trailShapeEnabled),(!Array.isArray(A.shapeCurve)||A.shapeCurve.length<2)&&(A.shapeCurve=(n.trailShapeCurve||[{x:0,y:1},{x:1,y:1}]).map(R=>({...R})));if(n.trailResources.length===1&&(n.trailResources[0].weight=100,n.trailResources[0].locked=!1),_)for(const A of n.trailResources)A.alphaCurve=((P=A.alphaCurve)==null?void 0:P.length)>=2?A.alphaCurve:[{x:0,y:1},{x:1,y:1}];return n.trailResourceVersion=6,n}class ob extends Mi{constructor(t,i=eb){super();T(this,"pool",[]);T(this,"cfg");T(this,"accumulator",0);T(this,"burstTimer",0);T(this,"_spawnSerial",0);T(this,"_elapsed",0);T(this,"_attractionEnabledAt",0);T(this,"_attractionWasEnabled",!1);T(this,"autoEmission",!0);T(this,"pendingEventSpawns",[]);T(this,"states",[]);T(this,"onParticleEvent",null);T(this,"rng",Math.random);T(this,"_lastSeed",-1);T(this,"trailDebugGfx",new Ki);T(this,"trail");T(this,"colliders",[]);T(this,"followSpawnX",0);T(this,"followSpawnY",0);T(this,"followSpawnAngle",0);T(this,"spawnPathSampler",null);T(this,"spawnPathClosed",!1);T(this,"followExportCurveMode","线性");T(this,"simulationTransform",null);this.cfg=lr(t),this.trail=new iF(this),this._ensurePool(i),this.addChild(this.trailDebugGfx)}setFollowExportCurveMode(t){this.followExportCurveMode=t}resolveCurveMode(t){return t==="跟随导出"?this.followExportCurveMode:t}reseed(){const t=this.cfg.seed;t!==this._lastSeed&&(this._lastSeed=t,this.rng=nm(t>>>0))}_ensurePool(t){for(;this.pool.length<t;){const i=this.pool.length,s=new to(this.cfg.texture);s.blendMode=Yr[this.cfg.blend],s.anchor.set(.5),s.visible=!1,this.addChild(s),this.pool.push({sprite:s,active:!1,boneName:"p_"+i,spawnId:-1,life:0,maxLife:1,x:0,y:0,vx:0,vy:0,scaleStartX:1,scaleStartY:1,alphaStart:1,alphaEnd:1,rotation:0,rotationSpeed:0,speedScale:1,speedScaleTarget:1,scaleOverLifeX:1,scaleOverLifeY:1,noisePhaseX:0,noisePhaseY:0,gravityStrength:980,windStrength:100,attractionActive:!1,attractionElapsed:0,attractionStartWorldX:0,attractionStartWorldY:0,attractionCurveSide:1,trail:tF(),resourceId:1,colorSample:16777215,colorAdd:0,colorOverride:null,currentScaleX:1,currentScaleY:1,imageFrameIndex:0,collisionPaused:!1,collisionCount:0,eventDepth:0})}}setSpawnPathSampler(t,i=!1){this.spawnPathSampler=t,this.spawnPathClosed=i}setColliders(t){this.colliders=t}setAutoEmission(t){this.autoEmission=t}setEmitterFollowSpawn(t,i,s){this.followSpawnX=t,this.followSpawnY=i,this.followSpawnAngle=s}setSimulationTransform(t,i,s,r,o){this.simulationTransform={centerX:t,centerY:i,rotation:s,scaleX:r,scaleY:o}}applyColliders(t,i){if(!this.cfg.collision||!this.colliders.length)return!1;const s=this.cfg;let r=_r(s,t.x,t.y,this.simulationTransform),o=Kk(s,t.vx,t.vy,this.simulationTransform);for(const a of this.colliders){if(!a.enabled)continue;const c=Zk(a,r.x,r.y);if(!c)continue;if(t.collisionCount++,this.emitWorldEvent("collision",t,c.x,c.y,{normalX:c.nx,normalY:c.ny}),a.response==="destroy")return this.kill(i),!0;if(r={x:c.x,y:c.y},a.response==="pause")t.collisionPaused=!0,o={x:0,y:0};else{const u=o.x*c.nx+o.y*c.ny,d=o.x-u*c.nx,f=o.y-u*c.ny,m=Math.min(1,Math.max(0,a.elasticity)),p=1-Math.min(1,Math.max(0,a.friction)),g=u<0?-u*m:u;o.x=d*p+g*c.nx,o.y=f*p+g*c.ny}const l=eh(s,r.x,r.y,this.simulationTransform),h=tb(s,o.x,o.y,this.simulationTransform);t.x=l.x,t.y=l.y,t.vx=h.x,t.vy=h.y}return!1}update(t,i="normal"){var c,l,h,u,d,f;const s=this.cfg;if((s.lifeMode==null||s.speedMode==null||s.scaleMode==null||s.shapeRangeVersion!==1||s.initialRotationMode==null||s.speedOverLifeEnabled==null||s.scaleOverLifeEnabled==null||s.rotationOverLifeEnabled==null||!Array.isArray(s.scaleOverLifeCurve)||s.attraction==null||s.trailBoneCount==null)&&lr(s),this.reseed(),this._elapsed+=t,s.attraction&&!this._attractionWasEnabled){this._attractionEnabledAt=this._elapsed;for(const m of this.pool)m.attractionActive=!1,m.attractionElapsed=0}else if(!s.attraction&&this._attractionWasEnabled)for(const m of this.pool)m.attractionActive=!1;this._attractionWasEnabled=s.attraction;const r=i==="force"||i==="normal"&&(s.delay<=0||this._elapsed>=s.delay),o=i==="force"||i==="normal"&&(s.mode==="burst"||this._elapsed<s.delay+Math.max(1/30,s.duration));if(this.autoEmission&&r&&o)if(s.mode==="stream")for(this.accumulator+=t*s.rate;this.accumulator>=1;)this.accumulator-=1,this.spawnOne();else this.burstTimer+=t,s.burstLoop?this.burstTimer>=1&&(this.burstTimer=0,this.emitBurst()):t>0&&this.burstTimer<=t&&this.emitBurst();if(this.pendingEventSpawns.length&&t>0){const m=[],p=[];for(const g of this.pendingEventSpawns)g.remaining-=t,g.remaining<=0?m.push(g):p.push(g);this.pendingEventSpawns=p;for(const g of m){const v=eh(this.cfg,g.worldX,g.worldY,this.simulationTransform);for(let b=0;b<g.count&&this.spawnOne({x:v.x,y:v.y},g.depth,g.inherit);b++);}}const a=[];for(let m=0;m<this.pool.length;m++){const p=this.pool[m];if(!p.active)continue;if(p.life-=t,p.life<=0){this.kill(m);continue}const g=Qk(p);if(!p.collisionPaused&&s.useGravity){const N=Math.min(1,Math.max(0,ws(s.gravityCurve,g))),F=(s.gravityMode==="random"?p.gravityStrength:s.gravityMin)*N,D=s.gravityDirection*Math.PI/180;p.vx+=Math.cos(D)*F*t,p.vy+=-Math.sin(D)*F*t}if(!p.collisionPaused&&s.wind){const N=Math.min(1,Math.max(0,ws(s.windCurve,g))),F=(s.windMode==="random"?p.windStrength:s.windMin)*N,D=s.windDirection*Math.PI/180;p.vx+=Math.cos(D)*F*t,p.vy+=-Math.sin(D)*F*t}if(!p.collisionPaused&&s.forceField&&s.forceStrength!==0&&s.forceRadius>0){const N=Math.max(1e-4,Math.abs(s.rootScaleX)),F=Math.max(1e-4,Math.abs(s.rootScaleY)),D=-(((c=this.simulationTransform)==null?void 0:c.rotation)??s.rootRotation)*Math.PI/180,X=Math.cos(D),G=Math.sin(D),K=((l=this.simulationTransform)==null?void 0:l.centerX)??s.centerX,J=((h=this.simulationTransform)==null?void 0:h.centerY)??s.centerY,oe=K+X*N*p.x-G*F*p.y,le=-J+G*N*p.x+X*F*p.y,ve=oe,Se=-le,fe=s.forceCenterX-ve,ye=s.forceCenterY-Se,q=Math.hypot(fe,ye);if(q>1e-4&&q<=s.forceRadius){const Z=ES(s.forceFalloff,q,s.forceRadius),se=s.forceStrength*Z*10,H=fe/q*se,j=ye/q*se,$=H,U=-j;p.vx+=(X*$+G*U)/N*t,p.vy+=(-G*$+X*U)/F*t}}if(!p.collisionPaused&&s.vortex&&s.vortexStrength!==0&&s.vortexRadius>0){const N=_r(s,p.x,p.y,this.simulationTransform),F=Jk(N.x,N.y,s.vortexCenterX,s.vortexCenterY,s.vortexStrength,s.vortexRadius,s.vortexFalloff),D=tb(s,F.x,F.y,this.simulationTransform);p.vx+=D.x*t,p.vy+=D.y*t}if(!p.collisionPaused&&s.damping>0){const N=Math.max(0,1-s.damping*t);p.vx*=N,p.vy*=N}if(p.collisionPaused)p.vx=0,p.vy=0;else if(p.x+=p.vx*t,p.y+=p.vy*t,this.applyColliders(p,m))continue;if(s.attraction&&!p.collisionPaused){const N=p.maxLife-p.life;if(s.attractionDelayMode==="particle"?N>=Math.max(0,s.attractionDelay):this._elapsed-this._attractionEnabledAt>=Math.max(0,s.attractionDelay)){const D=_r(s,p.x,p.y,this.simulationTransform),X=s.attractionCenterX,G=s.attractionCenterY,K=Math.max(0,s.attractionRadius);if(!p.attractionActive){if(Math.hypot(X-D.x,G-D.y)<=K){this.kill(m);continue}p.attractionActive=!0,p.attractionElapsed=0,p.attractionStartWorldX=D.x,p.attractionStartWorldY=D.y}p.attractionElapsed+=t;const J=Math.max(1e-4,s.attractionDuration),oe=Math.min(1,p.attractionElapsed/J);let le=Li(p.attractionStartWorldX,X,oe),ve=Li(p.attractionStartWorldY,G,oe);if(s.attractionPath==="curve"){const ye=X-p.attractionStartWorldX,q=G-p.attractionStartWorldY,Z=Math.hypot(ye,q);if(Z>1e-4){const se=Z*.25*p.attractionCurveSide,H=(p.attractionStartWorldX+X)*.5-q/Z*se,j=(p.attractionStartWorldY+G)*.5+ye/Z*se,$=1-oe;le=$*$*p.attractionStartWorldX+2*$*oe*H+oe*oe*X,ve=$*$*p.attractionStartWorldY+2*$*oe*j+oe*oe*G}}const Se=Math.hypot(X-le,G-ve);if(oe>=1||Se<=K){this.kill(m);continue}const fe=eh(s,le,ve,this.simulationTransform);p.x=fe.x,p.y=fe.y,p.vx=0,p.vy=0}}const v=g,b=p.sprite,y=s.imageResources.find(N=>N.id===p.resourceId);if(y){const N=rb(y,p.maxLife-p.life);p.imageFrameIndex=N.index,b.texture=sm(y,s.texture,p.imageFrameIndex),b.visible=N.visible}if(s.speedOverLifeEnabled){const N=Qc(im(s.speedOverLifeMode,s.speedOverLifeMin,s.speedOverLifeMax,s.speedOverLifeCurve,v,p.speedScaleTarget),1),F=p.speedScale===0?N:N/p.speedScale;p.vx*=F,p.vy*=F,p.speedScale=N}let x=p.rotationSpeed;s.rotationOverLifeEnabled&&s.rotationOverLifeMode==="curve"&&(x=Li(s.rotationSpeedMin,s.rotationSpeedMax,ws(s.rotationOverLifeCurve,v))),p.rotation+=x*t;let _=p.x,E=p.y;if(s.noise&&s.noiseAmt>0&&s.noiseRange>0&&s.noiseSpeed>0){const N=p.maxLife-p.life,F=Math.max(0,s.noiseRange)*Math.min(1,Math.max(0,s.noiseAmt)/100)*.5,D=N*Math.max(0,s.noiseSpeed)*Math.PI*2;_+=(Math.sin(p.noisePhaseX+D)-Math.sin(p.noisePhaseX))*F,E+=(Math.sin(p.noisePhaseY+D*.83)-Math.sin(p.noisePhaseY))*F}b.x=_,b.y=E,b.rotation=-p.rotation*Math.PI/180;let S=1,C=1;s.scaleOverLifeEnabled&&(S=im(s.scaleOverLifeMode,s.scaleOverLifeMin,s.scaleOverLifeMax,s.scaleOverLifeCurve,v,p.scaleOverLifeX),C=s.scaleOverLifeAxisMode==="separate"?im(s.scaleOverLifeMode,s.scaleYOverLifeMin,s.scaleYOverLifeMax,s.scaleYOverLifeCurve,v,p.scaleOverLifeY):S),b.scale.set(Qc(p.scaleStartX*S,1),Qc(p.scaleStartY*C,1)),p.currentScaleX=b.scale.x,p.currentScaleY=b.scale.y;const M=s.alphaMode==="curve"?ws(s.alphaCurve,v,this.resolveCurveMode(s.curveMode))*s.alphaScale:s.alpha*s.alphaScale;b.alpha=Qc((y==null?void 0:y.independentAlpha)==="fixed"?y.alpha:(y==null?void 0:y.independentAlpha)==="curve"?ws(y.alphaCurve,v,this.resolveCurveMode(y.alphaCurveMode)):M,1);const P=(y==null?void 0:y.colorStart)||"#ffffff",A=(y==null?void 0:y.colorMode)==="lifetime"?yp(y.colorGradient,v):(y==null?void 0:y.colorMode)==="random"?p.colorSample:Oa(P),R=p.colorOverride??sb(A,p.colorAdd);b.tint=R,b.blendMode=Yr[(y==null?void 0:y.blend)||"normal"];const B=this.trail.update(p.trail,s,p.boneName,_,E,v,b),O=_r(s,_,E,this.simulationTransform),W=((u=this.simulationTransform)==null?void 0:u.rotation)??s.rootRotation,V=Math.abs(((d=this.simulationTransform)==null?void 0:d.scaleX)??s.rootScaleX),Y=Math.abs(((f=this.simulationTransform)==null?void 0:f.scaleY)??s.rootScaleY),L=B?{...B,bones:B.bones.map(N=>{const F=_r(s,N.x,N.y,this.simulationTransform);return{...N,worldX:F.x,worldY:F.y,worldRotation:W-N.rotation}})}:void 0;a.push({boneName:p.boneName,spawnId:p.spawnId,x:_,y:E,rotation:p.rotation,scaleX:b.scale.x,scaleY:b.scale.y,worldX:O.x,worldY:O.y,worldRotation:W+p.rotation,worldScaleX:b.scale.x*V,worldScaleY:b.scale.y*Y,alpha:b.alpha,colorHex:R,resourceId:p.resourceId,imageFrameIndex:p.imageFrameIndex,imageVisible:b.visible,trailState:L,active:!0})}return this.states=a,a}drawTrailMeshDebug(t){this.trail.drawDebug(this.trailDebugGfx,t,this.cfg,this.pool.map(i=>i.trail))}emitBurst(){for(let t=0;t<this.cfg.burstCount;t++)this.spawnOne()}spawnOrigin(){const t=this.cfg;let i=t.offsetX,s=t.offsetY;if(s=-s,t.shape==="path"&&t.spawnPathId>0&&this.spawnPathSampler){const a=this.estimatedEmissionCount(),c=jk(t.spawnPathDistribution,this._spawnSerial,a,this.spawnPathClosed,this.rng),l=this.spawnPathSampler(c);if(l)return{...this.applyFollowToOrigin(l.x+i,l.y+s),radialAngle:0,pathAngle:l.angle}}const r=zk(t,this.rng);return{...this.applyFollowToOrigin(i+r.x,s+r.y),radialAngle:r.radialAngle}}estimatedEmissionCount(){const t=this.cfg;return t.mode==="burst"?Math.max(1,Math.round(t.burstCount)):Math.max(1,Math.floor(t.rate*(t.streamBehavior==="loop"?Math.max(1,t.loopDurationFrames)/30:Math.max(0,t.duration))))}applyFollowToOrigin(t,i){const s=this.followSpawnAngle*Math.PI/180,r=Math.cos(s),o=Math.sin(s);return{x:this.followSpawnX+r*t-o*i,y:this.followSpawnY+o*t+r*i}}spawnEventParticle(t,i,s=1,r,o){if(s>2)return!1;const a=o??(this.cfg.mode==="burst"?this.cfg.burstCount:1),c=Math.max(1,Math.min(eb,Math.round(Number(a)||1))),l=Math.max(0,Number(this.cfg.delay)||0);if(l>0)return this.pendingEventSpawns.push({worldX:t,worldY:i,depth:s,inherit:r,count:c,remaining:l}),!0;const h=eh(this.cfg,t,i,this.simulationTransform);let u=!1;for(let d=0;d<c&&this.spawnOne({x:h.x,y:h.y},s,r);d++)u=!0;return u}emitWorldEvent(t,i,s,r,o){this.onParticleEvent&&this.onParticleEvent({kind:t,worldX:s,worldY:r,rotation:i.rotation,spawnId:i.spawnId,depth:i.eventDepth,colorHex:i.sprite.tint,scaleX:i.currentScaleX,scaleY:i.currentScaleY,maxLife:i.maxLife,collisionCount:i.collisionCount,...o})}emitLocalEvent(t,i,s,r){if(!this.onParticleEvent)return;const o=_r(this.cfg,s,r,this.simulationTransform);this.emitWorldEvent(t,i,o.x,o.y)}spawnOne(t,i=0,s){const r=this.cfg;let o=this.pool.findIndex(C=>!C.active);if(o===-1)return!1;const a=t?{x:t.x,y:t.y,radialAngle:0}:this.spawnOrigin(),{x:c,y:l}=a,h=oa(r.lifeMode,r.lifeMin,r.lifeMax,r.lifeCurve,this.rng()),u=oa(r.speedMode,r.speedMin,r.speedMax,r.speedCurve,this.rng()),d=s!=null&&s.attributes.includes("rotation")?s.data.rotation:0,f=qk(r,a,this.followSpawnAngle,this.rng)+d*Math.PI/180,m=this.pool[o],p=rF(r,this.rng),g=this._spawnSerial++;m.spawnId=g;const v=oF(r,Ir(r.seed,g,1540483477));m.noisePhaseX=Ir(r.seed,g,1757159915)*Math.PI*2,m.noisePhaseY=Ir(r.seed,g,48610963)*Math.PI*2,m.gravityStrength=r.useGravity&&r.gravityMode==="random"?Li(r.gravityMin,r.gravityMax,this.rng()):r.gravityMin,m.windStrength=r.wind&&r.windMode==="random"?Li(r.windMin,r.windMax,this.rng()):r.windMin,m.attractionActive=!1,m.attractionElapsed=0,m.collisionPaused=!1,m.collisionCount=0,m.eventDepth=i,m.attractionCurveSide=Ir(r.seed,g,2738958700)<.5?-1:1,m.trail.history.length=0,m.trail.bones.length=0,m.trail.currentWidth=0,m.trail.currentAlpha=0,m.trail.currentColor=16777215,m.trail.resourceId=v.id;const b=Math.min(100,Math.max(0,Number(v.trailRatio)||0)),y=r.mode==="burst"?Math.max(0,Math.round(r.burstCount)):Math.max(0,Math.floor(r.rate*(r.streamBehavior==="loop"?Math.max(1,r.loopDurationFrames)/30:Math.max(0,r.duration)))),x=b>0&&y===1&&g===0,_=Ir(r.seed,g,668265261)*100,E=(C,M,P,A,R)=>{if(C!=="random")return Math.max(0,Number(M)||0);const B=Math.max(0,Math.min(Number(P)||0,Number(A)||0)),O=Math.max(0,Math.max(Number(P)||0,Number(A)||0));return Li(B,O,Ir(r.seed,g,R))};if(m.trail.sampledLength=E(v.lengthMode,v.length,v.lengthMin,v.lengthMax,374761393),m.trail.sampledWidth=E(v.widthSizeMode,v.width,v.widthMin,v.widthMax,3550635116),m.trail.enabled=r.trail&&(x||_<b)&&m.trail.sampledLength>0&&m.trail.sampledWidth>0,m.trail.mesh&&(m.trail.mesh.visible=!1),m.active=!0,m.life=h,m.maxLife=h,m.x=c,m.y=l,m.trail.enabled&&m.trail.history.push({x:c,y:l}),m.vx=Math.cos(f)*u,m.vy=Math.sin(f)*u,m.scaleStartX=oa(r.scaleMode,r.scaleMin,r.scaleMax,r.scaleCurve,this.rng())*p.scale,m.scaleStartY=r.scaleAxisMode==="separate"?oa(r.scaleMode,r.scaleYMin,r.scaleYMax,r.scaleYCurve,this.rng())*p.scale:m.scaleStartX,m.alphaStart=r.alpha,m.alphaEnd=r.alphaEnd,m.rotation=r.initialRotationMode==="direction"?-Math.atan2(m.vy,m.vx)*180/Math.PI+r.initialRotationMin:oa(r.initialRotationMode,r.initialRotationMin,r.initialRotationMax,r.initialRotationCurve,this.rng())+d,m.rotationSpeed=r.rotationOverLifeEnabled?oa(r.rotationOverLifeMode,r.rotationSpeedMin,r.rotationSpeedMax,r.rotationOverLifeCurve,this.rng()):0,m.speedScale=1,m.speedScaleTarget=r.speedOverLifeMode==="random"?Li(r.speedOverLifeMin,r.speedOverLifeMax,this.rng()):r.speedOverLifeMin,m.scaleOverLifeX=r.scaleOverLifeMode==="random"?Li(r.scaleOverLifeMin,r.scaleOverLifeMax,this.rng()):r.scaleOverLifeMin,m.scaleOverLifeY=r.scaleOverLifeMode==="random"?Li(r.scaleYOverLifeMin,r.scaleYOverLifeMax,this.rng()):r.scaleYOverLifeMin,m.resourceId=p.id,m.colorSample=p.colorMode==="random"?yp(p.colorGradient,Ir(r.seed,g,2654435769)):Oa(p.colorStart),m.colorAdd=0,m.colorOverride=null,s){const C=s.attributes;C.includes("color")&&(s.colorMode==="replace"?m.colorOverride=s.data.colorHex:m.colorAdd=s.data.colorHex),C.includes("scale")&&(m.scaleStartX*=s.data.scaleX,m.scaleStartY*=s.data.scaleY),C.includes("life")&&(m.life=Math.max(1e-4,s.data.life),m.maxLife=m.life)}m.currentScaleX=m.scaleStartX,m.currentScaleY=m.scaleStartY;const S=rb(p,0);return m.imageFrameIndex=S.index,m.sprite.texture=sm(p,r.texture,S.index),m.sprite.anchor.set(p.anchorX,p.anchorY),m.sprite.blendMode=Yr[p.blend],m.sprite.tint=m.colorOverride??sb(m.colorSample,m.colorAdd),m.sprite.visible=!0,this.emitLocalEvent("birth",m,m.x,m.y),!0}kill(t){const i=this.pool[t];i.active&&this.emitLocalEvent("death",i,i.x,i.y),i.active=!1,i.sprite.visible=!1,Mh(i.trail)}clear(){this.pendingEventSpawns.length=0;for(const t of this.pool)t.active=!1,t.sprite.visible=!1,Mh(t.trail)}get activeCount(){let t=0;for(const i of this.pool)i.active&&t++;return t}capture(){const t=[];for(const i of this.pool)i.active&&t.push({boneName:i.boneName,spawnId:i.spawnId,x:i.sprite.x,y:i.sprite.y,rotation:i.rotation,scaleX:i.sprite.scale.x,scaleY:i.sprite.scale.y,...this.captureWorldTransform(i),alpha:i.sprite.alpha,colorHex:i.sprite.tint,resourceId:i.resourceId,imageFrameIndex:i.imageFrameIndex,imageVisible:i.sprite.visible,active:!0,trailState:this.cfg.trail&&i.trail.bones.length?{bones:i.trail.bones.map(s=>{var o;const r=_r(this.cfg,s.x,s.y,this.simulationTransform);return{...s,worldX:r.x,worldY:r.y,worldRotation:(((o=this.simulationTransform)==null?void 0:o.rotation)??this.cfg.rootRotation)-s.rotation}}),activeBoneCount:i.trail.bones.length,width:i.trail.currentWidth,alpha:i.trail.currentAlpha,colorHex:i.trail.currentColor,resourceId:i.trail.resourceId}:void 0});return t}captureWorldTransform(t){var r,o,a;const i=_r(this.cfg,t.sprite.x,t.sprite.y,this.simulationTransform),s=((r=this.simulationTransform)==null?void 0:r.rotation)??this.cfg.rootRotation;return{worldX:i.x,worldY:i.y,worldRotation:s+t.rotation,worldScaleX:t.sprite.scale.x*Math.abs(((o=this.simulationTransform)==null?void 0:o.scaleX)??this.cfg.rootScaleX),worldScaleY:t.sprite.scale.y*Math.abs(((a=this.simulationTransform)==null?void 0:a.scaleY)??this.cfg.rootScaleY)}}apply(t){const i=new Map;for(const s of t)i.set(s.boneName,s);for(const s of this.pool){const r=i.get(s.boneName);if(!r){s.active=!1,s.sprite.visible=!1,s.trail.mesh&&(s.trail.mesh.visible=!1);continue}s.active=r.active;const o=s.sprite;if(o.visible=r.active&&r.imageVisible!==!1,o.x=r.x,o.y=r.y,o.rotation=-r.rotation*Math.PI/180,o.scale.set(r.scaleX,r.scaleY),o.alpha=r.alpha,o.tint=r.colorHex,r.resourceId!=null){const a=this.cfg.imageResources.find(c=>c.id===r.resourceId);a&&(s.imageFrameIndex=r.imageFrameIndex??0,o.texture=sm(a,this.cfg.texture,s.imageFrameIndex),o.anchor.set(a.anchorX,a.anchorY),o.blendMode=Yr[a.blend])}this.cfg.trail&&r.trailState?this.trail.applyState(s.trail,this.cfg,s.sprite,r.trailState):s.trail.mesh&&(s.trail.mesh.visible=!1)}}reset(){this.pendingEventSpawns.length=0;for(const t of this.pool)t.active=!1,t.sprite.visible=!1,Mh(t.trail);this.accumulator=0,this.burstTimer=0,this._spawnSerial=0,this._elapsed=0,this._attractionEnabledAt=0,this._attractionWasEnabled=!1,this._lastSeed=this.cfg.seed,this.rng=nm(this.cfg.seed>>>0)}restartEmissionCycle(){this.pendingEventSpawns.length=0,this.accumulator=0,this.burstTimer=0,this._spawnSerial=0,this._elapsed=0,this._attractionEnabledAt=0,this._attractionWasEnabled=this.cfg.attraction,this._lastSeed=this.cfg.seed,this.rng=nm(this.cfg.seed>>>0)}}const Vo=new Map,$o=new Map;function aF(n){return[...Vo.values()].some(e=>e===n)}function CS(n){if(!(aF(n)||($o.get(n)||0)>0)){$o.delete(n);for(const e of n.textures)e.destroy(!0)}}function lF(n){const e=$o.get(n)||0;e>1?$o.set(n,e-1):$o.delete(n),CS(n)}function cF(n){return Vo.get(n)||null}function cd(n,e){yc(n),Vo.set(n,e)}function hF(n){const e=Vo.get(n);return e?($o.set(e,($o.get(e)||0)+1),e):null}function uF(n,e){const t=Vo.get(n);return t?(cd(e,t),!0):!1}function yc(n){const e=Vo.get(n);e&&(Vo.delete(n),CS(e))}function Zt(n){if(Array.isArray(n))return n.map(e=>Zt(e));if(n&&typeof n=="object"){const e=Object.getPrototypeOf(n);if(e===Object.prototype||e===null){const t={};for(const[i,s]of Object.entries(n))t[i]=Zt(s);return t}}return n}const MS=["3.8","4.0","4.1","4.2","4.3"];function lu(n){const e=String(n||"").trim();return MS.find(t=>e===t||e.startsWith(`${t}.`))||null}function bp(){return MS.join(" / ")}function dF(n){return n==="4.3"?"4.3":"4.2"}function Og(){return{imagesPath:"./images/",spineVersion:"4.2",keyframeCurve:"bezier",fps:30,omitFps:!1,integerFrameAlignment:!0,bonePool:!0,excludeEmptyAnimations:!1,fileName:"SpineParticle.json"}}function AS(n){const e=Object.assign(Og(),n||{});return e.imagesPath=String(e.imagesPath||"./images/"),e.spineVersion=lu(e.spineVersion)||"4.2",e.keyframeCurve=e.keyframeCurve==="bezier"?"bezier":"linear",e.fps=Math.min(240,Math.max(1,Math.round(Number(e.fps)||30))),e.omitFps=e.omitFps===!0,e.integerFrameAlignment=e.integerFrameAlignment!==!1,e.bonePool=e.bonePool!==!1,e.excludeEmptyAnimations=e.excludeEmptyAnimations===!0,e.fileName=String(e.fileName||"SpineParticle.json"),e}const xp=30;function Ah(n,e=1){return Math.min(1800,Math.max(1,Math.ceil(Number(n)||e)))}function IS(n,e=30){const t=Math.max(0,Number(n.lifeMin)||0),i=Math.max(0,Number(n.lifeMax)||0),s=n.lifeMode==="fixed"?t:Math.max(t,i);return Ah(Math.ceil(s*Math.max(1,e)),xp)}function zn(n,e=30){const t=Ah(n.loopDurationFrames),i=IS(n,e),s=n.generateLoopStartAnimation?n.loopStartUseCustomDuration?Ah(n.loopStartDurationFrames,xp):i:0,r=n.generateLoopEndAnimation?n.loopEndUseCustomDuration?Ah(n.loopEndDurationFrames,xp):i:0;return{start:s,loop:t,end:r,total:s+t+r}}function PS(n,e){const t=zn(n,e),s=Math.max(0,Math.ceil(Math.max(0,Number(n.delay)||0)*Math.max(1,e)))+t.start;return{start:s,end:s+t.loop}}function Xa(n){var t,i;const e=new Set;for(const s of n){if(((t=s.config)==null?void 0:t.eventEnabled)===!1)continue;const r=(i=s.config)==null?void 0:i.events;if(Array.isArray(r))for(const o of r)o.targetSystemId>0&&o.targetSystemId!==s.id&&e.add(o.targetSystemId)}return e}function RS(n,e){var r,o;const t=new Map;for(const a of n){if(((r=a.config)==null?void 0:r.eventEnabled)===!1)continue;const c=(o=a.config)==null?void 0:o.events;if(Array.isArray(c))for(const l of c){if(l.targetSystemId<=0||l.targetSystemId===a.id)continue;const h=t.get(l.targetSystemId);h?h.push(a.id):t.set(l.targetSystemId,[a.id])}}const i=new Set,s=[...t.get(e)||[]];for(;s.length;){const a=s.pop();i.has(a)||(i.add(a),s.push(...t.get(a)||[]))}return i.delete(e),i}const fF=.001;function kS(n,e){const t=Math.max(1,Number(e)||30),s=Math.max(0,Number(n)||0)*t+fF*t;return Math.max(0,Math.floor(s))}function FS(n,e,t){const i=Math.max(1,Math.floor(t)-1),s=Math.min(i-1,Math.max(0,Math.floor(Number(n)||0))),r=Math.min(i,Math.max(s+1,Math.floor(Number(e)||i)));return{start:s,end:r}}function rm(n,e,t,i){const s=Math.max(1,Math.floor(i)-1);return FS(n?e:0,n?t:s,i)}function mF(n,e,t){const i=Math.max(1,e-1),s=Math.max(1,t-1),r=n.end>=i?s:n.end;return FS(n.start,r,t)}let th=1,ih=1,nh=1,sh=1;function rh(n,e){const t=new Set(e),i=`${n} Copy`;if(!t.has(i))return i;let s=2;for(;t.has(`${i} ${s}`);)s++;return`${i} ${s}`}const Wo=PA("particle",{state:()=>({editor:{viewScale:1,viewX:0,viewY:0},systems:[],colliders:[],paths:[],spines:[],activeId:0,activeObjectType:"particle",activeObjectId:0,timeline:{playing:!0,loop:!0,abLoop:!1,frame:0,totalFrames:60,playbackStart:0,playbackEnd:59,fps:30,recorded:!1,animation:"animation",animations:["animation"]},settings:{parameterPanelOnRight:!0,tickEnabled:!1,axisFontSize:12,tickWidth:1,showAxisLabels:!0,axisColor:"#7a86ad",undoLimit:20,backgroundX:0,backgroundY:0,backgroundOpacity:1,backgroundImageName:"",backgroundImageData:"",showEmitter:!0,showBones:!1,bonePointDrawSize:1,boneAxisDrawSize:2,showSkinMesh:!1,showGrid:!0,exportSettings:Og()}}),getters:{activeSystemCount:n=>n.systems.length,playbackRange:n=>rm(n.timeline.abLoop,n.timeline.playbackStart,n.timeline.playbackEnd,n.timeline.totalFrames)},actions:{syncSceneSequences(){th=Math.max(th,...this.systems.map(n=>n.id+1),1),ih=Math.max(ih,...this.colliders.map(n=>n.id+1),1),nh=Math.max(nh,...this.paths.map(n=>n.id+1),1),sh=Math.max(sh,...this.spines.map(n=>n.id+1),1)},addSystem(n){const e=tc();n!=null&&n.config&&Object.assign(e,n.config);const t=new Set(this.systems.map(r=>r.config.name));if(t.has(e.name)){let r=0;for(const a of this.systems){const c=/^ParticleSystem(\d+)$/.exec(a.config.name);c&&(r=Math.max(r,parseInt(c[1],10)))}e.name=`ParticleSystem${r+1}`;let o=2;for(;t.has(e.name);)e.name=`ParticleSystem${r+o}`,o++}const i=this.timeline.animations.includes(this.timeline.animation)?this.timeline.animation:this.timeline.animations[0]||"animation",s={id:th++,visible:!0,animation:i,config:e};return this.systems.push(s),this.activeId=s.id,this.activeObjectType="particle",this.activeObjectId=s.id,s},removeSystem(n){var i;const e=this.systems.findIndex(s=>s.id===n);e>=0&&this.systems.splice(e,1),this.activeId===n&&(this.activeId=((i=this.systems[0])==null?void 0:i.id)??0);const t=this.systems.find(s=>s.id===this.activeId);if(t&&(this.timeline.animation=t.animation),this.activeObjectType==="particle"&&this.activeObjectId===n){const s=this.systems[0];this.activeObjectId=(s==null?void 0:s.id)??0}},selectSystem(n){this.activeId=n,this.activeObjectType="particle",this.activeObjectId=n;const e=this.systems.find(t=>t.id===n);e&&(this.timeline.animation=e.animation)},setSystemAnimation(n,e){if(!this.timeline.animations.includes(e))return;const t=this.systems.find(i=>i.id===n);t&&(t.animation=e,this.timeline.animation=e)},addAnimation(){const n=new Set(this.timeline.animations);let e=2,t=`animation${e}`;for(;n.has(t);)t=`animation${++e}`;this.timeline.animations.push(t),this.timeline.animation=t;const i=this.systems.find(s=>s.id===this.activeId);return i&&(i.animation=t),t},renameAnimation(n,e){const t=e.trim(),i=this.timeline.animations.indexOf(n);if(i<0||!t||t!==n&&this.timeline.animations.includes(t))return!1;this.timeline.animations[i]=t;for(const s of this.systems)s.animation===n&&(s.animation=t);return this.timeline.animation===n&&(this.timeline.animation=t),!0},removeAnimation(n){if(this.timeline.animations.length<=1)return!1;const e=this.timeline.animations.indexOf(n);if(e<0)return!1;this.timeline.animations.splice(e,1);const t=this.timeline.animations[Math.min(e,this.timeline.animations.length-1)];for(const i of this.systems)i.animation===n&&(i.animation=t);return this.timeline.animation===n&&(this.timeline.animation=t),!0},addCollider(){const n=ih++,e={id:n,name:`Collider${n}`,visible:!0,shape:"circle",enabled:!0,x:0,y:0,rotation:0,scaleX:1,scaleY:1,radius:50,radiusX:70,radiusY:45,width:120,height:80,sides:6,response:"physics",elasticity:.8,friction:.3,followPath:!1,followPathId:0,followDuration:2,followPathRotation:!1,followCurveMode:"跟随导出",followCurve:[{x:0,y:0},{x:1,y:1}]};return this.colliders.push(e),this.activeObjectType="collision",this.activeObjectId=e.id,e},addPath(){const n=nh++,e={id:n,name:`Path${n}`,visible:!0,enabled:!0,x:0,y:0,rotation:0,scaleX:1,scaleY:1,closed:!1,color:"#ff933e",preset:"",points:[]};return this.paths.push(e),this.activeObjectType="path",this.activeObjectId=e.id,e},addSpine(){const n=sh++,e={id:n,name:`SpineSkeleton${n}`,enabled:!0,visible:!0,x:0,y:0,rotation:0,scaleX:1,scaleY:1,timeOffset:0,skeletonFileName:"",atlasFileName:"",textureFileNames:[],dataVersion:"",sourceBundle:null,selectedAnimation:"",selectedBone:"",selectedSlot:"",animations:[],bones:[],slots:[],assetVersion:0,status:"empty",error:""};return this.spines.push(e),this.activeObjectType="spine",this.activeObjectId=e.id,e},duplicateSelectedObject(){const n=this.activeObjectId;if(!n)return null;if(this.activeObjectType==="particle"){const i=this.systems.find(r=>r.id===n);if(!i)return null;const s=Zt(i);return s.id=th++,s.config.name=rh(i.config.name,this.systems.map(r=>r.config.name)),s.frames=void 0,this.systems.push(s),this.activeId=s.id,this.activeObjectId=s.id,this.timeline.animation=s.animation,s}if(this.activeObjectType==="collision"){const i=this.colliders.find(r=>r.id===n);if(!i)return null;const s=Zt(i);return s.id=ih++,s.name=rh(i.name,this.colliders.map(r=>r.name)),this.colliders.push(s),this.activeObjectId=s.id,s}if(this.activeObjectType==="path"){const i=this.paths.find(r=>r.id===n);if(!i)return null;const s=Zt(i);return s.id=nh++,s.name=rh(i.name,this.paths.map(r=>r.name)),this.paths.push(s),this.activeObjectId=s.id,s}const e=this.spines.find(i=>i.id===n);if(!e)return null;const t=Zt(e);return t.id=sh++,t.name=rh(e.name,this.spines.map(i=>i.name)),t.selectedBone="",t.selectedSlot="",uF(e.id,t.id),this.spines.push(t),this.activeObjectId=t.id,t},selectSceneObject(n,e){if(this.activeObjectType=n,this.activeObjectId=e,n==="particle"){this.activeId=e;const t=this.systems.find(i=>i.id===e);t&&(this.timeline.animation=t.animation)}},removeCollider(n){var t;const e=this.colliders.findIndex(i=>i.id===n);e>=0&&this.colliders.splice(e,1);for(const i of this.systems){const s=lr(i.config);s.collisionColliderIds=s.collisionColliderIds.filter(r=>r!==n)}if(this.activeObjectType==="collision"&&this.activeObjectId===n){const i=this.systems[0];this.activeObjectType=i?"particle":"collision",this.activeObjectId=(i==null?void 0:i.id)??((t=this.colliders[0])==null?void 0:t.id)??0}},removePath(n){var t;const e=this.paths.findIndex(i=>i.id===n);if(e>=0&&this.paths.splice(e,1),this.activeObjectType==="path"&&this.activeObjectId===n){const i=this.systems[0];this.activeObjectType=i?"particle":"path",this.activeObjectId=(i==null?void 0:i.id)??((t=this.paths[0])==null?void 0:t.id)??0}},removeSpine(n){yc(n);const e=this.spines.findIndex(t=>t.id===n);if(e>=0&&this.spines.splice(e,1),this.activeObjectType==="spine"&&this.activeObjectId===n){const t=this.systems[0],i=this.colliders[0],s=this.paths[0],r=this.spines[0];t?(this.activeObjectType="particle",this.activeObjectId=t.id,this.activeId=t.id):i?(this.activeObjectType="collision",this.activeObjectId=i.id):s?(this.activeObjectType="path",this.activeObjectId=s.id):(this.activeObjectType="spine",this.activeObjectId=(r==null?void 0:r.id)??0)}this.recalcTotalFrames()},play(){const n=this.playbackRange;(this.timeline.frame<n.start||this.timeline.frame>=n.end)&&(this.timeline.frame=n.start),this.timeline.playing=!0},pause(){this.timeline.playing=!1},togglePlay(){this.timeline.playing?this.pause():this.play()},toStart(){this.timeline.frame=this.playbackRange.start},previousFrame(){this.timeline.playing=!1,this.timeline.frame=Math.max(this.playbackRange.start,this.timeline.frame-1)},nextFrame(){this.timeline.playing=!1,this.timeline.frame=Math.min(this.playbackRange.end,this.timeline.frame+1)},toEnd(){this.timeline.playing=!1,this.timeline.frame=this.playbackRange.end},toggleLoop(){this.timeline.loop=!this.timeline.loop},toggleABLoop(){this.timeline.abLoop=!this.timeline.abLoop;const n=this.playbackRange;(this.timeline.frame<n.start||this.timeline.frame>n.end)&&(this.timeline.frame=n.start)},setFrame(n){this.timeline.frame=Math.max(0,Math.min(n,this.timeline.totalFrames-1))},setPlaybackStart(n){const e=rm(!0,n,this.timeline.playbackEnd,this.timeline.totalFrames);this.timeline.playbackStart=e.start,this.timeline.playbackEnd=e.end,this.timeline.abLoop&&this.timeline.frame<e.start&&(this.timeline.frame=e.start)},setPlaybackEnd(n){const e=rm(!0,this.timeline.playbackStart,n,this.timeline.totalFrames);this.timeline.playbackStart=e.start,this.timeline.playbackEnd=e.end,this.timeline.abLoop&&this.timeline.frame>e.end&&(this.timeline.frame=e.end)},recalcTotalFrames(){const n=Math.max(1,this.timeline.fps||30),e=u=>{const d=Math.max(0,Number(u.lifeMin)||0),f=Math.max(0,Number(u.lifeMax)||0);return u.lifeMode==="fixed"?d:Math.max(d,f)},t=new Map(this.systems.map(u=>[u.id,u])),i=new Map,s=new Set,r=u=>{const d=i.get(u.id);if(d!=null)return d;if(s.has(u.id))return 0;s.add(u.id);const f=u.config,m=e(f);let p=m;if(f.eventEnabled)for(const g of f.events||[]){const v=t.get(g.targetSystemId);if(!v||v.id===u.id)continue;const b=r(v),y=g.event==="birth"?0:m,x=Math.max(0,Number(v.config.delay)||0);p=Math.max(p,y+x+b)}return s.delete(u.id),i.set(u.id,p),p},o=Xa(this.systems);let a=0;for(const u of this.systems){if(o.has(u.id))continue;const d=u.config,f=Math.max(0,Number(d.delay)||0),m=d.mode==="stream"&&d.streamBehavior==="loop";let p;if(d.mode==="stream"){const g=m?zn(d,n).total/n:Math.max(1/n,Number(d.duration)||0);if(p=f+g,m){let v=0;if(d.eventEnabled){const b=e(d);for(const y of d.events||[]){const x=t.get(y.targetSystemId);if(!x||x.id===u.id)continue;const _=Math.max(0,Number(x.config.delay)||0);v=Math.max(v,(y.event==="birth"?0:b)+_+r(x))}}p+=v}else p+=r(u)}else p=f+r(u);p>a&&(a=p)}for(const u of this.spines){const d=u.animations.find(m=>m.name===u.selectedAnimation);if(!d)continue;const f=Math.max(0,Number(u.timeOffset)||0)+Math.max(0,d.duration||0);f>a&&(a=f)}for(const u of this.colliders){if(!u.followPath||!u.followPathId)continue;const d=Math.max(0,Number(u.followDuration)||0);d>a&&(a=d)}const c=this.timeline.totalFrames,l=Math.max(2,kS(a,n)+1);this.timeline.totalFrames=l;const h=mF({start:this.timeline.playbackStart,end:this.timeline.playbackEnd},c,l);return this.timeline.playbackStart=h.start,this.timeline.playbackEnd=h.end,this.timeline.frame>=l&&(this.timeline.frame=l-1),l}}});/*!
* shared v11.4.16
* (c) 2026 kazuya kawaguchi
* Released under the MIT License.
*/const cu=typeof window<"u",io=(n,e=!1)=>e?Symbol.for(n):Symbol(n),pF=(n,e,t)=>gF({l:n,k:e,s:t}),gF=n=>JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),xi=n=>typeof n=="number"&&isFinite(n),LS=n=>Ng(n)==="[object Date]",Ya=n=>Ng(n)==="[object RegExp]",$g=n=>Yt(n)&&Object.keys(n).length===0,gi=Object.assign,vF=Object.create,Dt=(n=null)=>vF(n);let ab;const Gr=()=>ab||(ab=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Dt()),yF=Object.prototype.hasOwnProperty;function Ln(n,e){return yF.call(n,e)}function Pi(n,e){const t=n[e];return Ln(n,e)?t:void 0}function OS(n){return Ln(Object.prototype,n)}const Jt=Array.isArray,Kt=n=>typeof n=="function",Ge=n=>typeof n=="string",Rt=n=>typeof n=="boolean",Et=n=>n!==null&&typeof n=="object",bF=n=>Et(n)&&Kt(n.then)&&Kt(n.catch),$S=Object.prototype.toString,Ng=n=>$S.call(n),Yt=n=>Ng(n)==="[object Object]",xF=n=>n==null?"":Jt(n)||Yt(n)&&n.toString===$S?JSON.stringify(n,null,2):String(n);function Dg(n,e=""){return n.reduce((t,i,s)=>s===0?t+i:t+e+i,"")}function wF(n,e){typeof console<"u"&&(console.warn("[intlify] "+n),e&&console.warn(e.stack))}function lb(n){return n.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/\//g,"&#x2F;").replace(/=/g,"&#x3D;")}function SF(n){return n.replace(/&(?![a-z0-9#]{2,6};)/gi,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}const _F=/^javascript:/i,TF=/^(?:href|src|action|formaction)$/i,EF=/&#(?:x([0-9a-f]+)|(\d+));?/gi,CF=/&(?:Tab|NewLine);/g,MF=/&colon;?/gi,AF=/[\u0000-\u0020\u007f-\u009f]/g,IF=/(?:^|[\s"'<>/])on\w+\s*=\s*["']?[^"'>]+["']?/i,PF=/(^|[\s"'<>/])on(\w+\s*=)/gi,RF=/(?:^|[\s"'<>/])srcdoc\s*=/i,kF=/(^|[\s"'<>/])s(rcdoc\s*=)/gi,FF=/(^|[\s"'<>/])((?:href|src|action|formaction)\s*=\s*)([^\s"'=<>`]+)/gi;function LF(n,e,t){const i=e||t;if(!i)return n;const s=Number.parseInt(i,e?16:10);return s<=127?String.fromCharCode(s):n}function Bg(n){const e=n.replace(EF,LF).replace(CF,"").replace(MF,":").replace(AF,"");return _F.test(e)}function OF(n){const e=/url\s*\(/gi;let t="",i=0,s;for(;(s=e.exec(n))!==null;){const r=s.index,o=e.lastIndex-1;let a=o+1,c=1,l=null;for(;a<n.length;a++){const d=n[a];if(l){d===l&&(l=null);continue}if(d==='"'||d==="'")l=d;else if(d==="(")c++;else if(d===")"&&(c--,c===0))break}if(c!==0)break;const h=n.slice(o+1,a).trim(),u=h.startsWith('"')&&h.endsWith('"')||h.startsWith("'")&&h.endsWith("'")?h.slice(1,-1).trim():h;t+=n.slice(i,r),t+=Bg(u)?"url(about:blank)":n.slice(r,a+1),i=a+1}return t+n.slice(i)}function cb(n,e){if(TF.test(n)&&Bg(e))return"about:blank";const t=n.toLowerCase()==="style"?OF(e):e;return SF(t)}function $F(n){return n=n.replace(/([\w:-]+)\s*=\s*"([^"]*)"/g,(e,t,i)=>`${t}="${cb(t,i)}"`),n=n.replace(/([\w:-]+)\s*=\s*'([^']*)'/g,(e,t,i)=>`${t}='${cb(t,i)}'`),IF.test(n)&&(n=n.replace(PF,"$1&#111;n$2")),RF.test(n)&&(n=n.replace(kF,"$1&#115;$2")),n=n.replace(FF,(e,t,i,s)=>Bg(s)?`${t}${i}about:blank`:e),n}const hb=n=>!Et(n)||Jt(n);function Ih(n,e){if(hb(n)||hb(e)||e===Object.prototype)throw new Error("Invalid value");const t=[{src:n,des:e}];for(;t.length;){const{src:i,des:s}=t.pop();Object.keys(i).forEach(r=>{if(r==="__proto__")return;const o=i[r];if(Jt(o)){const a=[];a.length=o.length,s[r]=a,t.push({src:o,des:a})}else Et(o)?((!Et(s[r])||Jt(s[r]))&&(s[r]=Dt()),t.push({src:o,des:s[r]})):s[r]=o})}}/*!
* message-compiler v11.4.16
* (c) 2026 kazuya kawaguchi
* Released under the MIT License.
*/function NF(n,e,t){return{line:n,column:e,offset:t}}function wp(n,e,t){return{start:n,end:e}}const Lt={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14},DF=17;function hd(n,e,t={}){const{domain:i,messages:s,args:r}=t,o=n,a=new SyntaxError(String(o));return a.code=n,e&&(a.location=e),a.domain=i,a}function BF(n){throw n}const ss=" ",UF="\r",Ui=`
`,VF="\u2028",XF="\u2029";function YF(n){const e=n;let t=0,i=1,s=1,r=0;const o=S=>e[S]===UF&&e[S+1]===Ui,a=S=>e[S]===Ui,c=S=>e[S]===XF,l=S=>e[S]===VF,h=S=>o(S)||a(S)||c(S)||l(S),u=()=>t,d=()=>i,f=()=>s,m=()=>r,p=S=>o(S)||c(S)||l(S)?Ui:e[S],g=()=>p(t),v=()=>p(t+r);function b(){return r=0,h(t)&&(i++,s=0),o(t)&&t++,t++,s++,e[t]}function y(){return o(t+r)&&r++,r++,e[t+r]}function x(){t=0,i=1,s=1,r=0}function _(S=0){r=S}function E(){const S=t+r;for(;S!==t;)b();r=0}return{index:u,line:d,column:f,peekOffset:m,charAt:p,currentChar:g,currentPeek:v,next:b,peek:y,reset:x,resetPeek:_,skipToPeek:E}}const Bs=void 0,GF=".",ub="'",HF="tokenizer";function jF(n,e={}){const t=e.location!==!1,i=YF(n),s=()=>i.index(),r=()=>NF(i.line(),i.column(),i.index()),o=r(),a=s(),c={currentType:13,offset:a,startLoc:o,endLoc:o,lastType:13,lastOffset:a,lastStartLoc:o,lastEndLoc:o,braceNest:0,inLinked:!1,text:""},l=()=>c,{onError:h}=e;function u(U,z,ee,...ne){const ue=l();if(z.column+=ee,z.offset+=ee,h){const xe=t?wp(ue.startLoc,z):null,be=hd(U,xe,{domain:HF,args:ne});h(be)}}function d(U,z,ee){U.endLoc=r(),U.currentType=z;const ne={type:z};return t&&(ne.loc=wp(U.startLoc,U.endLoc)),ee!=null&&(ne.value=ee),ne}const f=U=>d(U,13);function m(U,z){return U.currentChar()===z?(U.next(),z):(u(Lt.EXPECTED_TOKEN,r(),0,z),"")}function p(U){let z="";for(;U.currentPeek()===ss||U.currentPeek()===Ui;)z+=U.currentPeek(),U.peek();return z}function g(U){const z=p(U);return U.skipToPeek(),z}function v(U){if(U===Bs)return!1;const z=U.charCodeAt(0);return z>=97&&z<=122||z>=65&&z<=90||z===95}function b(U){if(U===Bs)return!1;const z=U.charCodeAt(0);return z>=48&&z<=57}function y(U,z){const{currentType:ee}=z;if(ee!==2)return!1;p(U);const ne=v(U.currentPeek());return U.resetPeek(),ne}function x(U,z){const{currentType:ee}=z;if(ee!==2)return!1;p(U);const ne=U.currentPeek()==="-"?U.peek():U.currentPeek(),ue=b(ne);return U.resetPeek(),ue}function _(U,z){const{currentType:ee}=z;if(ee!==2)return!1;p(U);const ne=U.currentPeek()===ub;return U.resetPeek(),ne}function E(U,z){const{currentType:ee}=z;if(ee!==7)return!1;p(U);const ne=U.currentPeek()===".";return U.resetPeek(),ne}function S(U,z){const{currentType:ee}=z;if(ee!==8)return!1;p(U);const ne=v(U.currentPeek());return U.resetPeek(),ne}function C(U,z){const{currentType:ee}=z;if(!(ee===7||ee===11))return!1;p(U);const ne=U.currentPeek()===":";return U.resetPeek(),ne}function M(U,z){const{currentType:ee}=z;if(ee!==9)return!1;const ne=()=>{const xe=U.currentPeek();return xe==="{"?v(U.peek()):xe==="@"||xe==="|"||xe===":"||xe==="."||xe===ss||!xe?!1:xe===Ui?(U.peek(),ne()):A(U,!1)},ue=ne();return U.resetPeek(),ue}function P(U){p(U);const z=U.currentPeek()==="|";return U.resetPeek(),z}function A(U,z=!0){const ee=(ue=!1,xe="")=>{const be=U.currentPeek();return be==="{"||be==="@"||!be?ue:be==="|"?!(xe===ss||xe===Ui):be===ss?(U.peek(),ee(!0,ss)):be===Ui?(U.peek(),ee(!0,Ui)):!0},ne=ee();return z&&U.resetPeek(),ne}function R(U,z){const ee=U.currentChar();return ee===Bs?Bs:z(ee)?(U.next(),ee):null}function B(U){const z=U.charCodeAt(0);return z>=97&&z<=122||z>=65&&z<=90||z>=48&&z<=57||z===95||z===36}function O(U){return R(U,B)}function W(U){const z=U.charCodeAt(0);return z>=97&&z<=122||z>=65&&z<=90||z>=48&&z<=57||z===95||z===36||z===45}function V(U){return R(U,W)}function Y(U){const z=U.charCodeAt(0);return z>=48&&z<=57}function L(U){return R(U,Y)}function N(U){const z=U.charCodeAt(0);return z>=48&&z<=57||z>=65&&z<=70||z>=97&&z<=102}function F(U){return R(U,N)}function D(U){let z="",ee="";for(;z=L(U);)ee+=z;return ee}function X(U){let z="";for(;;){const ee=U.currentChar();if(ee==="\\"){const ne=U.peek();ne==="{"||ne==="}"||ne==="@"||ne==="|"||ne==="\\"?(z+=ee+ne,U.next(),U.next()):(U.resetPeek(),z+=ee,U.next())}else{if(ee==="{"||ee==="}"||ee==="@"||ee==="|"||!ee)break;if(ee===ss||ee===Ui)if(A(U))z+=ee,U.next();else{if(P(U))break;z+=ee,U.next()}else z+=ee,U.next()}}return z}function G(U){g(U);let z="",ee="";for(;z=V(U);)ee+=z;const ne=U.currentChar();if(ne&&ne!=="}"&&ne!==Bs&&ne!==ss&&ne!==Ui&&ne!==" "){const ue=fe(U);return u(Lt.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,ee+ue),ee+ue}return U.currentChar()===Bs&&u(Lt.UNTERMINATED_CLOSING_BRACE,r(),0),ee}function K(U){g(U);let z="";return U.currentChar()==="-"?(U.next(),z+=`-${D(U)}`):z+=D(U),U.currentChar()===Bs&&u(Lt.UNTERMINATED_CLOSING_BRACE,r(),0),z}function J(U){return U!==ub&&U!==Ui}function oe(U){g(U),m(U,"'");let z="",ee="";for(;z=R(U,J);)z==="\\"?ee+=le(U):ee+=z;const ne=U.currentChar();return ne===Ui||ne===Bs?(u(Lt.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,r(),0),ne===Ui&&(U.next(),m(U,"'")),ee):(m(U,"'"),ee)}function le(U){const z=U.currentChar();switch(z){case"\\":case"'":return U.next(),`\\${z}`;case"u":return ve(U,z,4);case"U":return ve(U,z,6);default:return u(Lt.UNKNOWN_ESCAPE_SEQUENCE,r(),0,z),""}}function ve(U,z,ee){m(U,z);let ne="";for(let ue=0;ue<ee;ue++){const xe=F(U);if(!xe){u(Lt.INVALID_UNICODE_ESCAPE_SEQUENCE,r(),0,`\\${z}${ne}${U.currentChar()}`);break}ne+=xe}return`\\${z}${ne}`}function Se(U){return U!=="{"&&U!=="}"&&U!==ss&&U!==Ui}function fe(U){g(U);let z="",ee="";for(;z=R(U,Se);)ee+=z;return ee}function ye(U){let z="",ee="";for(;z=O(U);)ee+=z;return ee}function q(U){const z=ee=>{const ne=U.currentChar();return ne==="{"||ne==="@"||ne==="|"||ne==="("||ne===")"||!ne||ne===ss?ee:(ee+=ne,U.next(),z(ee))};return z("")}function Z(U){g(U);const z=m(U,"|");return g(U),z}function se(U,z){let ee=null;switch(U.currentChar()){case"{":return z.braceNest>=1&&u(Lt.NOT_ALLOW_NEST_PLACEHOLDER,r(),0),U.next(),ee=d(z,2,"{"),g(U),z.braceNest++,ee;case"}":return z.braceNest>0&&z.currentType===2&&u(Lt.EMPTY_PLACEHOLDER,r(),0),U.next(),ee=d(z,3,"}"),z.braceNest--,z.braceNest>0&&g(U),z.inLinked&&z.braceNest===0&&(z.inLinked=!1),ee;case"@":return z.braceNest>0&&u(Lt.UNTERMINATED_CLOSING_BRACE,r(),0),ee=H(U,z)||f(z),z.braceNest=0,ee;default:{let ue=!0,xe=!0,be=!0;if(P(U))return z.braceNest>0&&u(Lt.UNTERMINATED_CLOSING_BRACE,r(),0),ee=d(z,1,Z(U)),z.braceNest=0,z.inLinked=!1,ee;if(z.braceNest>0&&(z.currentType===4||z.currentType===5||z.currentType===6))return u(Lt.UNTERMINATED_CLOSING_BRACE,r(),0),z.braceNest=0,j(U,z);if(ue=y(U,z))return ee=d(z,4,G(U)),g(U),ee;if(xe=x(U,z))return ee=d(z,5,K(U)),g(U),ee;if(be=_(U,z))return ee=d(z,6,oe(U)),g(U),ee;if(!ue&&!xe&&!be)return ee=d(z,12,fe(U)),u(Lt.INVALID_TOKEN_IN_PLACEHOLDER,r(),0,ee.value),g(U),ee;break}}return ee}function H(U,z){const{currentType:ee}=z;let ne=null;const ue=U.currentChar();switch((ee===7||ee===8||ee===11||ee===9)&&(ue===Ui||ue===ss)&&u(Lt.INVALID_LINKED_FORMAT,r(),0),ue){case"@":return U.next(),ne=d(z,7,"@"),z.inLinked=!0,ne;case".":return g(U),U.next(),d(z,8,".");case":":return g(U),U.next(),d(z,9,":");default:return P(U)?(ne=d(z,1,Z(U)),z.braceNest=0,z.inLinked=!1,ne):E(U,z)||C(U,z)?(g(U),H(U,z)):S(U,z)?(g(U),d(z,11,ye(U))):M(U,z)?(g(U),ue==="{"?se(U,z)||ne:d(z,10,q(U))):(ee===7&&u(Lt.INVALID_LINKED_FORMAT,r(),0),z.braceNest=0,z.inLinked=!1,j(U,z))}}function j(U,z){let ee={type:13};if(z.braceNest>0)return se(U,z)||f(z);if(z.inLinked)return H(U,z)||f(z);switch(U.currentChar()){case"{":return se(U,z)||f(z);case"}":return u(Lt.UNBALANCED_CLOSING_BRACE,r(),0),U.next(),d(z,3,"}");case"@":return H(U,z)||f(z);default:{if(P(U))return ee=d(z,1,Z(U)),z.braceNest=0,z.inLinked=!1,ee;if(A(U))return d(z,0,X(U));break}}return ee}function $(){const{currentType:U,offset:z,startLoc:ee,endLoc:ne}=c;return c.lastType=U,c.lastOffset=z,c.lastStartLoc=ee,c.lastEndLoc=ne,c.offset=s(),c.startLoc=r(),i.currentChar()===Bs?d(c,13):j(i,c)}return{nextToken:$,currentOffset:s,currentPosition:r,context:l}}const WF="parser",zF=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g,qF=/\\([\\@{}|])/g;function KF(n,e){return e}function JF(n,e,t){switch(n){case"\\\\":return"\\";case"\\'":return"'";default:{const i=parseInt(e||t,16);return i<=55295||i>=57344?String.fromCodePoint(i):"�"}}}function ZF(n={}){const e=n.location!==!1,{onError:t}=n;function i(v,b,y,x,..._){const E=v.currentPosition();if(E.offset+=x,E.column+=x,t){const S=e?wp(y,E):null,C=hd(b,S,{domain:WF,args:_});t(C)}}function s(v,b,y){const x={type:v};return e&&(x.start=b,x.end=b,x.loc={start:y,end:y}),x}function r(v,b,y,x){e&&(v.end=b,v.loc&&(v.loc.end=y))}function o(v,b){const y=v.context(),x=s(3,y.offset,y.startLoc);return x.value=b.replace(qF,KF),r(x,v.currentOffset(),v.currentPosition()),x}function a(v,b){const y=v.context(),{lastOffset:x,lastStartLoc:_}=y,E=s(5,x,_);return E.index=parseInt(b,10),v.nextToken(),r(E,v.currentOffset(),v.currentPosition()),E}function c(v,b){const y=v.context(),{lastOffset:x,lastStartLoc:_}=y,E=s(4,x,_);return E.key=b,v.nextToken(),r(E,v.currentOffset(),v.currentPosition()),E}function l(v,b){const y=v.context(),{lastOffset:x,lastStartLoc:_}=y,E=s(9,x,_);return E.value=b.replace(zF,JF),v.nextToken(),r(E,v.currentOffset(),v.currentPosition()),E}function h(v){const b=v.nextToken(),y=v.context(),{lastOffset:x,lastStartLoc:_}=y,E=s(8,x,_);return b.type!==11?(i(v,Lt.UNEXPECTED_EMPTY_LINKED_MODIFIER,y.lastStartLoc,0),E.value="",r(E,x,_),{nextConsumeToken:b,node:E}):(b.value==null&&i(v,Lt.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,rs(b)),E.value=b.value||"",r(E,v.currentOffset(),v.currentPosition()),{node:E})}function u(v,b){const y=v.context(),x=s(7,y.offset,y.startLoc);return x.value=b,r(x,v.currentOffset(),v.currentPosition()),x}function d(v){const b=v.context(),y=s(6,b.offset,b.startLoc);let x=v.nextToken();if(x.type===8){const _=h(v);y.modifier=_.node,x=_.nextConsumeToken||v.nextToken()}switch(x.type!==9&&i(v,Lt.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,rs(x)),x=v.nextToken(),x.type===2&&(x=v.nextToken()),x.type){case 10:x.value==null&&i(v,Lt.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,rs(x)),y.key=u(v,x.value||"");break;case 4:x.value==null&&i(v,Lt.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,rs(x)),y.key=c(v,x.value||"");break;case 5:x.value==null&&i(v,Lt.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,rs(x)),y.key=a(v,x.value||"");break;case 6:x.value==null&&i(v,Lt.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,rs(x)),y.key=l(v,x.value||"");break;default:{i(v,Lt.UNEXPECTED_EMPTY_LINKED_KEY,b.lastStartLoc,0);const _=v.context(),E=s(7,_.offset,_.startLoc);return E.value="",r(E,_.offset,_.startLoc),y.key=E,r(y,_.offset,_.startLoc),{nextConsumeToken:x,node:y}}}return r(y,v.currentOffset(),v.currentPosition()),{node:y}}function f(v){const b=v.context(),y=b.currentType===1?v.currentOffset():b.offset,x=b.currentType===1?b.endLoc:b.startLoc,_=s(2,y,x);_.items=[];let E=null;do{const M=E||v.nextToken();switch(E=null,M.type){case 0:M.value==null&&i(v,Lt.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,rs(M)),_.items.push(o(v,M.value||""));break;case 5:M.value==null&&i(v,Lt.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,rs(M)),_.items.push(a(v,M.value||""));break;case 4:M.value==null&&i(v,Lt.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,rs(M)),_.items.push(c(v,M.value||""));break;case 6:M.value==null&&i(v,Lt.UNEXPECTED_LEXICAL_ANALYSIS,b.lastStartLoc,0,rs(M)),_.items.push(l(v,M.value||""));break;case 7:{const P=d(v);_.items.push(P.node),E=P.nextConsumeToken||null;break}}}while(b.currentType!==13&&b.currentType!==1);const S=b.currentType===1?b.lastOffset:v.currentOffset(),C=b.currentType===1?b.lastEndLoc:v.currentPosition();return r(_,S,C),_}function m(v,b,y,x){const _=v.context();let E=x.items.length===0;const S=s(1,b,y);S.cases=[],S.cases.push(x);do{const C=f(v);E||(E=C.items.length===0),S.cases.push(C)}while(_.currentType!==13);return E&&i(v,Lt.MUST_HAVE_MESSAGES_IN_PLURAL,y,0),r(S,v.currentOffset(),v.currentPosition()),S}function p(v){const b=v.context(),{offset:y,startLoc:x}=b,_=f(v);return b.currentType===13?_:m(v,y,x,_)}function g(v){const b=jF(v,gi({},n)),y=b.context(),x=s(0,y.offset,y.startLoc);return e&&x.loc&&(x.loc.source=v),x.body=p(b),n.onCacheKey&&(x.cacheKey=n.onCacheKey(v)),y.currentType!==13&&i(b,Lt.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,v[y.offset]||""),r(x,b.currentOffset(),b.currentPosition()),x}return{parse:g}}function rs(n){if(n.type===13)return"EOF";const e=(n.value||"").replace(/\r?\n/gu,"\\n");return e.length>10?e.slice(0,9)+"…":e}function QF(n,e={}){const t={ast:n,helpers:new Set};return{context:()=>t,helper:r=>(t.helpers.add(r),r)}}function db(n,e){for(let t=0;t<n.length;t++)Ug(n[t],e)}function Ug(n,e){switch(n.type){case 1:db(n.cases,e),e.helper("plural");break;case 2:db(n.items,e);break;case 6:{Ug(n.key,e),e.helper("linked"),e.helper("type");break}case 5:e.helper("interpolate"),e.helper("list");break;case 4:e.helper("interpolate"),e.helper("named");break}}function eL(n,e={}){const t=QF(n);t.helper("normalize"),n.body&&Ug(n.body,t);const i=t.context();n.helpers=Array.from(i.helpers)}function tL(n){const e=n.body;return e.type===2?fb(e):e.cases.forEach(t=>fb(t)),n}function fb(n){if(n.items.length===1){const e=n.items[0];(e.type===3||e.type===9)&&(n.static=e.value,delete e.value)}else{const e=[];for(let t=0;t<n.items.length;t++){const i=n.items[t];if(!(i.type===3||i.type===9)||i.value==null)break;e.push(i.value)}if(e.length===n.items.length){n.static=Dg(e);for(let t=0;t<n.items.length;t++){const i=n.items[t];(i.type===3||i.type===9)&&delete i.value}}}}function ba(n){switch(n.t=n.type,n.type){case 0:{const e=n;ba(e.body),e.b=e.body,delete e.body;break}case 1:{const e=n,t=e.cases;for(let i=0;i<t.length;i++)ba(t[i]);e.c=t,delete e.cases;break}case 2:{const e=n,t=e.items;for(let i=0;i<t.length;i++)ba(t[i]);e.i=t,delete e.items,e.static&&(e.s=e.static,delete e.static);break}case 3:case 9:case 8:case 7:{const e=n;e.value&&(e.v=e.value,delete e.value);break}case 6:{const e=n;ba(e.key),e.k=e.key,delete e.key,e.modifier&&(ba(e.modifier),e.m=e.modifier,delete e.modifier);break}case 5:{const e=n;e.i=e.index,delete e.index;break}case 4:{const e=n;e.k=e.key,delete e.key;break}}delete n.type}function iL(n,e){const{filename:t,breakLineCode:i,needIndent:s}=e,r=e.location!==!1,o={filename:t,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:i,needIndent:s,indentLevel:0};r&&n.loc&&(o.source=n.loc.source);const a=()=>o;function c(p,g){o.code+=p}function l(p,g=!0){const v=g?i:"";c(s?v+" ".repeat(p):v)}function h(p=!0){const g=++o.indentLevel;p&&l(g)}function u(p=!0){const g=--o.indentLevel;p&&l(g)}function d(){l(o.indentLevel)}return{context:a,push:c,indent:h,deindent:u,newline:d,helper:p=>`_${p}`,needIndent:()=>o.needIndent}}function nL(n,e){const{helper:t}=n;n.push(`${t("linked")}(`),Ga(n,e.key),e.modifier?(n.push(", "),Ga(n,e.modifier),n.push(", _type")):n.push(", undefined, _type"),n.push(")")}function sL(n,e){const{helper:t,needIndent:i}=n;n.push(`${t("normalize")}([`),n.indent(i());const s=e.items.length;for(let r=0;r<s&&(Ga(n,e.items[r]),r!==s-1);r++)n.push(", ");n.deindent(i()),n.push("])")}function rL(n,e){const{helper:t,needIndent:i}=n;if(e.cases.length>1){n.push(`${t("plural")}([`),n.indent(i());const s=e.cases.length;for(let r=0;r<s&&(Ga(n,e.cases[r]),r!==s-1);r++)n.push(", ");n.deindent(i()),n.push("])")}}function oL(n,e){e.body?Ga(n,e.body):n.push("null")}function Ga(n,e){const{helper:t}=n;switch(e.type){case 0:oL(n,e);break;case 1:rL(n,e);break;case 2:sL(n,e);break;case 6:nL(n,e);break;case 8:n.push(JSON.stringify(e.value),e);break;case 7:n.push(JSON.stringify(e.value),e);break;case 5:n.push(`${t("interpolate")}(${t("list")}(${e.index}))`,e);break;case 4:n.push(`${t("interpolate")}(${t("named")}(${JSON.stringify(e.key)}))`,e);break;case 9:n.push(JSON.stringify(e.value),e);break;case 3:n.push(JSON.stringify(e.value),e);break}}const aL=(n,e={})=>{const t=Ge(e.mode)?e.mode:"normal",i=Ge(e.filename)?e.filename:"message.intl";e.sourceMap;const s=e.breakLineCode!=null?e.breakLineCode:t==="arrow"?";":`
`,r=e.needIndent?e.needIndent:t!=="arrow",o=n.helpers||[],a=iL(n,{filename:i,breakLineCode:s,needIndent:r});a.push(t==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),a.indent(r),o.length>0&&(a.push(`const { ${Dg(o.map(h=>`${h}: _${h}`),", ")} } = ctx`),a.newline()),a.push("return "),Ga(a,n),a.deindent(r),a.push("}"),delete n.helpers;const{code:c,map:l}=a.context();return{ast:n,code:c,map:l?l.toJSON():void 0}};function lL(n,e={}){const t=gi({},e),i=!!t.jit,s=!!t.minify,r=t.optimize==null?!0:t.optimize,a=ZF(t).parse(n);return i?(r&&tL(a),s&&ba(a),{ast:a,code:""}):(eL(a,t),aL(a,t))}/*!
* core-base v11.4.16
* (c) 2026 kazuya kawaguchi
* Released under the MIT License.
*/function cL(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Gr().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Gr().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function Xo(n){return Et(n)&&Vg(n)===0&&(Ln(n,"b")||Ln(n,"body"))}const NS=["b","body"];function hL(n){return no(n,NS)}const DS=["c","cases"];function uL(n){return no(n,DS,[])}const BS=["s","static"];function dL(n){return no(n,BS)}const US=["i","items"];function fL(n){return no(n,US,[])}const VS=["t","type"];function Vg(n){return no(n,VS)}const XS=["v","value"];function oh(n,e){const t=no(n,XS);if(t!=null)return t;throw ic(e)}const YS=["m","modifier"];function mL(n){return no(n,YS)}const GS=["k","key"];function pL(n){const e=no(n,GS);if(e)return e;throw ic(6)}function no(n,e,t){for(let i=0;i<e.length;i++){const s=e[i];if(Ln(n,s)&&n[s]!=null)return n[s]}return t}const HS=[...NS,...DS,...BS,...US,...GS,...YS,...XS,...VS];function ic(n){return new Error(`unhandled node type: ${n}`)}function om(n){return t=>gL(t,n)}function gL(n,e){const t=hL(e);if(t==null)throw ic(0);if(Vg(t)===1){const r=uL(t);return n.plural(r.reduce((o,a)=>[...o,mb(n,a)],[]))}else return mb(n,t)}function mb(n,e){const t=dL(e);if(t!=null)return n.type==="text"?t:n.normalize([t]);{const i=fL(e).reduce((s,r)=>[...s,Sp(n,r)],[]);return n.normalize(i)}}function Sp(n,e){const t=Vg(e);switch(t){case 3:return oh(e,t);case 9:return oh(e,t);case 4:{const i=e;if(Ln(i,"k")&&i.k)return n.interpolate(n.named(i.k));if(Ln(i,"key")&&i.key)return n.interpolate(n.named(i.key));throw ic(t)}case 5:{const i=e;if(Ln(i,"i")&&xi(i.i))return n.interpolate(n.list(i.i));if(Ln(i,"index")&&xi(i.index))return n.interpolate(n.list(i.index));throw ic(t)}case 6:{const i=e,s=mL(i),r=pL(i);return n.linked(Sp(n,r),s?Sp(n,s):void 0,n.type)}case 7:return oh(e,t);case 8:return oh(e,t);default:throw new Error(`unhandled node on format message part: ${t}`)}}const vL=n=>n;let ah=Dt();function yL(n,e={}){let t=!1;const i=e.onError||BF;return e.onError=s=>{t=!0,i(s)},{...lL(n,e),detectError:t}}function bL(n,e){if(!__INTLIFY_DROP_MESSAGE_COMPILER__&&Ge(n)){Rt(e.warnHtmlMessage)&&e.warnHtmlMessage;const i=(e.onCacheKey||vL)(n),s=ah[i];if(s)return s;const{ast:r,detectError:o}=yL(n,{...e,location:!1,jit:!0}),a=om(r);return o?a:ah[i]=a}else{if(!Xo(n))return(()=>n);const t=n.cacheKey;if(t){const i=ah[t];return i||(ah[t]=om(n))}else return om(n)}}let nc=null;function xL(n){nc=n}function wL(n,e,t){nc&&nc.emit("i18n:init",{timestamp:Date.now(),i18n:n,version:e,meta:t})}const SL=_L("function:translate");function _L(n){return e=>nc&&nc.emit(n,e)}const Zs={INVALID_ARGUMENT:DF,INVALID_DATE_ARGUMENT:18,INVALID_ISO_DATE_ARGUMENT:19,NOT_SUPPORT_LOCALE_PROMISE_VALUE:21,NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:22,NOT_SUPPORT_LOCALE_TYPE:23},TL=24;function Qs(n){return hd(n,null,void 0)}function Xg(n,e){return e.locale!=null?pb(e.locale):pb(n.locale)}let am;function pb(n){if(Ge(n))return n;if(Kt(n)){if(n.resolvedOnce&&am!=null)return am;if(n.constructor.name==="Function"){const e=n();if(bF(e))throw Qs(Zs.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return am=e}else throw Qs(Zs.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw Qs(Zs.NOT_SUPPORT_LOCALE_TYPE)}function EL(n,e,t){return[...new Set([t,...Jt(e)?e:Et(e)?Object.keys(e).filter(i=>i!=="default"):Ge(e)?[e]:[t]])]}function CL(n,e,t){const i=Ge(t)?t:sc,s=n;let r;Et(e)?(s.__localeChainObjectCache||(s.__localeChainObjectCache=new WeakMap),r=s.__localeChainObjectCache.get(e),r||(r=new Map,s.__localeChainObjectCache.set(e,r))):(s.__localeChainCache||(s.__localeChainCache=new Map),r=s.__localeChainCache.get(e),r||(r=new Map,s.__localeChainCache.set(e,r)));const o=r.get(i);if(o)return o;const a=[];let c=[t];for(;Jt(c);)c=gb(a,c,e);const l=Jt(e)||!Yt(e)?e:e.default?e.default:null;return c=Ge(l)?[l]:l,Jt(c)&&gb(a,c,!1),r.set(i,a),a}function gb(n,e,t){let i=!0;for(let s=0;s<e.length&&Rt(i);s++){const r=e[s];Ge(r)&&(i=ML(n,e[s],t))}return i}function ML(n,e,t){let i;const s=e.split("-");do{const r=s.join("-");i=AL(n,r,t),s.splice(-1,1)}while(s.length&&i===!0);return i}function AL(n,e,t){let i=!1;if(!n.includes(e)&&(i=!0,e)){i=e[e.length-1]!=="!";const s=e.replace(/!/g,"");n.push(s),(Jt(t)||Yt(t))&&t[s]&&(i=t[s])}return i}const so=[];so[0]={w:[0],i:[3,0],"[":[4],o:[7]};so[1]={w:[1],".":[2],"[":[4],o:[7]};so[2]={w:[2],i:[3,0],0:[3,0]};so[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};so[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};so[5]={"'":[4,0],o:8,l:[5,0]};so[6]={'"':[4,0],o:8,l:[6,0]};const IL=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function PL(n){return IL.test(n)}function RL(n){const e=n.charCodeAt(0),t=n.charCodeAt(n.length-1);return e===t&&(e===34||e===39)?n.slice(1,-1):n}function kL(n){if(n==null)return"o";switch(n.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return n;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function FL(n){const e=n.trim();return n.charAt(0)==="0"&&isNaN(parseInt(n))?!1:PL(e)?RL(e):"*"+e}function LL(n){const e=[];let t=-1,i=0,s=0,r,o,a,c,l,h,u;const d=[];d[0]=()=>{o===void 0?o=a:o+=a},d[1]=()=>{o!==void 0&&(e.push(o),o=void 0)},d[2]=()=>{d[0](),s++},d[3]=()=>{if(s>0)s--,i=4,d[0]();else{if(s=0,o===void 0||(o=FL(o),o===!1))return!1;d[1]()}};function f(){const m=n[t+1];if(i===5&&m==="'"||i===6&&m==='"')return t++,a="\\"+m,d[0](),!0}for(;i!==null;)if(t++,r=n[t],!(r==="\\"&&f())){if(c=kL(r),u=so[i],l=u[c]||u.l||8,l===8||(i=l[0],l[1]!==void 0&&(h=d[l[1]],h&&(a=r,h()===!1))))return;if(i===7)return e}}const vb=new Map;function OL(n,e){return Et(n)?Pi(n,e):null}function $L(n,e){if(!Et(n))return null;let t=vb.get(e);if(t||(t=LL(e),t&&vb.set(e,t)),!t)return null;const i=t.length;let s=n,r=0;for(;r<i;){const o=t[r];if(HS.includes(o)&&Xo(s)||!Et(s)||!Ln(s,o))return null;const a=s[o];if(a===void 0||Kt(s))return null;s=a,r++}return s}const NL="11.4.16",ud=-1,sc="en-US",hu="",yb=n=>`${n.charAt(0).toLocaleUpperCase()}${n.substr(1)}`;function DL(){return{upper:(n,e)=>e==="text"&&Ge(n)?n.toUpperCase():e==="vnode"&&Et(n)&&"__v_isVNode"in n?n.children.toUpperCase():n,lower:(n,e)=>e==="text"&&Ge(n)?n.toLowerCase():e==="vnode"&&Et(n)&&"__v_isVNode"in n?n.children.toLowerCase():n,capitalize:(n,e)=>e==="text"&&Ge(n)?yb(n):e==="vnode"&&Et(n)&&"__v_isVNode"in n?yb(n.children):n}}let jS;function BL(n){jS=n}let WS;function UL(n){WS=n}let zS;function VL(n){zS=n}let qS=null;const XL=n=>{qS=n},YL=()=>qS;let KS=null;const bb=n=>{KS=n},GL=()=>KS;let xb=0;function HL(n={}){const e=Kt(n.onWarn)?n.onWarn:wF,t=Ge(n.version)?n.version:NL,i=Ge(n.locale)||Kt(n.locale)?n.locale:sc,s=Kt(i)?sc:i,r=Jt(n.fallbackLocale)||Yt(n.fallbackLocale)||Ge(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:s,o=Yt(n.messages)?n.messages:lm(s),a=Yt(n.datetimeFormats)?n.datetimeFormats:lm(s),c=Yt(n.numberFormats)?n.numberFormats:lm(s),l=gi(Dt(),n.modifiers,DL()),h=n.pluralRules||Dt(),u=Kt(n.missing)?n.missing:null,d=Rt(n.missingWarn)||Ya(n.missingWarn)?n.missingWarn:!0,f=Rt(n.fallbackWarn)||Ya(n.fallbackWarn)?n.fallbackWarn:!0,m=!!n.fallbackFormat,p=!!n.unresolving,g=Kt(n.postTranslation)?n.postTranslation:null,v=Yt(n.processor)?n.processor:null,b=Rt(n.warnHtmlMessage)?n.warnHtmlMessage:!0,y=!!n.escapeParameter,x=Kt(n.messageCompiler)?n.messageCompiler:jS,_=Kt(n.messageResolver)?n.messageResolver:WS||OL,E=Kt(n.localeFallbacker)?n.localeFallbacker:zS||EL,S=Et(n.fallbackContext)?n.fallbackContext:void 0,C=n,M=Et(C.__datetimeFormatters)?C.__datetimeFormatters:new Map,P=Et(C.__numberFormatters)?C.__numberFormatters:new Map,A=Et(C.__meta)?C.__meta:{};xb++;const R={version:t,cid:xb,locale:i,fallbackLocale:r,messages:o,modifiers:l,pluralRules:h,missing:u,missingWarn:d,fallbackWarn:f,fallbackFormat:m,unresolving:p,postTranslation:g,processor:v,warnHtmlMessage:b,escapeParameter:y,messageCompiler:x,messageResolver:_,localeFallbacker:E,fallbackContext:S,onWarn:e,__meta:A};return R.datetimeFormats=a,R.numberFormats=c,R.__datetimeFormatters=M,R.__numberFormatters=P,__INTLIFY_PROD_DEVTOOLS__&&wL(R,t,A),R}const lm=n=>({[n]:Dt()});function JS(n,e,t,i,s){const{missing:r,onWarn:o}=n;if(r!==null){const a=r(n,t,e,s);return Ge(a)?a:e}else return e}function wb(n,e){var i,s;const t=n;Et(e)?(i=t.__localeChainObjectCache)==null||i.delete(e):(s=t.__localeChainCache)==null||s.delete(e)}function lh(n,e,t){wb(n,t),n.fallbackContext&&wb(n.fallbackContext,t),n.localeFallbacker(n,t,e)}function jL(n,e){return n===e?!1:n.split("-")[0]===e.split("-")[0]}function WL(n,e){const t=e.indexOf(n);if(t===-1)return!1;for(let i=t+1;i<e.length;i++)if(jL(n,e[i]))return!0;return!1}function ZS(n,e,t,i,s,r,o){const{fallbackLocale:a,localeFallbacker:c,onWarn:l}=n,h=c(n,a,t);for(let u=0;u<h.length;u++){const d=h[u],f=Pi(Pi(i,d)||{},e);if(Yt(f)&&Ge(d))return d;JS(n,e,d,s,o)}return null}function QS(n,e,t){let i=`${n}__${e}`;return Yt(t)&&!$g(t)&&(i=`${i}__${JSON.stringify(t)}`),i}function e_(n,e,t){for(const i in t){const s=`${e}__${i}`;for(const r of n.keys())(r===s||r.startsWith(`${s}__`))&&n.delete(r)}}function t_(n,e,t,i){const[,s,r,o]=n;let a=t;return Ge(s)?e.key=s:Yt(s)&&Object.keys(s).forEach(c=>{i.includes(c)?a[c]=s[c]:e[c]=s[c]}),Ge(r)?e.locale=r:Yt(r)&&(a=r),Yt(o)&&(a=o),a}function Sb(n,...e){const{datetimeFormats:t,unresolving:i,onWarn:s}=n,{__datetimeFormatters:r}=n;if(!Ge(e[0])&&!LS(e[0])&&!xi(e[0]))return hu;const[o,a,c,l]=_p(...e),h=Rt(c.missingWarn)?c.missingWarn:n.missingWarn,u=Rt(c.fallbackWarn)?c.fallbackWarn:n.fallbackWarn,d=!!c.part,f=Xg(n,c);if(!Ge(o)||o===""){const b=new Intl.DateTimeFormat(f.replace(/!/g,""),l);return d?b.formatToParts(a):b.format(a)}const m=ZS(n,o,f,t,h,u,"datetime format");if(!Ge(m))return i?ud:o;const p=t[m][o],g=QS(m,o,l);let v=r.get(g);return v||(v=new Intl.DateTimeFormat(m,gi({},p,l)),r.set(g,v)),d?v.formatToParts(a):v.format(a)}const i_=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function _p(...n){const[e]=n,t=Dt(),i=Dt();let s;if(Ge(e)){const o=e.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!o)throw Qs(Zs.INVALID_ISO_DATE_ARGUMENT);const a=o[3]?o[3].trim().startsWith("T")?`${o[1].trim()}${o[3].trim()}`:`${o[1].trim()}T${o[3].trim()}`:o[1].trim();s=new Date(a);try{s.toISOString()}catch{throw Qs(Zs.INVALID_ISO_DATE_ARGUMENT)}}else if(LS(e)){if(isNaN(e.getTime()))throw Qs(Zs.INVALID_DATE_ARGUMENT);s=e}else if(xi(e))s=e;else throw Qs(Zs.INVALID_ARGUMENT);const r=t_(n,t,i,i_);return[t.key||"",s,t,r]}function _b(n,e,t){e_(n.__datetimeFormatters,e,t)}function Tb(n,...e){const{numberFormats:t,unresolving:i,onWarn:s}=n,{__numberFormatters:r}=n;if(!xi(e[0]))return hu;const[o,a,c,l]=Tp(...e),h=Rt(c.missingWarn)?c.missingWarn:n.missingWarn,u=Rt(c.fallbackWarn)?c.fallbackWarn:n.fallbackWarn,d=!!c.part,f=Xg(n,c);if(!Ge(o)||o===""){const b=new Intl.NumberFormat(f.replace(/!/g,""),l);return d?b.formatToParts(a):b.format(a)}const m=ZS(n,o,f,t,h,u,"number format");if(!Ge(m))return i?ud:o;const p=t[m][o],g=QS(m,o,l);let v=r.get(g);return v||(v=new Intl.NumberFormat(m,gi({},p,l)),r.set(g,v)),d?v.formatToParts(a):v.format(a)}const n_=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Tp(...n){const[e]=n,t=Dt(),i=Dt();if(!xi(e))throw Qs(Zs.INVALID_ARGUMENT);const s=e,r=t_(n,t,i,n_);return[t.key||"",s,t,r]}function Eb(n,e,t){e_(n.__numberFormatters,e,t)}const zL=n=>n,qL=n=>"",KL="text",JL=n=>n.length===0?"":Dg(n),ZL=xF;function cm(n,e){return n=Math.abs(n),e===2?n===1?0:1:Math.min(n,2)}function QL(n){var t,i;const e=xi(n.pluralIndex)?n.pluralIndex:-1;return xi((t=n.named)==null?void 0:t.count)?n.named.count:xi((i=n.named)==null?void 0:i.n)?n.named.n:e}function eO(n={}){var b,y,x;const e=n.locale,t=QL(n),i=Ge(e)&&n.pluralRules&&Kt(Pi(n.pluralRules,e))?n.pluralRules[e]:cm,s=i===cm?void 0:cm,r=_=>_[i(t,_.length,s)],o=n.list||[],a=_=>o[_],c=n.named||Dt(),l=xi(n.pluralIndex),h=_=>{const E=OS(_)?Pi(c,_):c[_];return l&&!E&&(_==="count"||_==="n")?n.pluralIndex:E};function u(_,E){const S=Kt(n.messages)?n.messages(_,!!E):Et(n.messages)?n.messages[_]:!1;return S||(n.parent?n.parent.message(_):qL)}const d=_=>n.modifiers?Pi(n.modifiers,_):zL,f=Kt((b=n.processor)==null?void 0:b.normalize)?n.processor.normalize:JL,m=Kt((y=n.processor)==null?void 0:y.interpolate)?n.processor.interpolate:ZL,p=Ge((x=n.processor)==null?void 0:x.type)?n.processor.type:KL,v={list:a,named:h,plural:r,linked:(_,...E)=>{const[S,C]=E;let M="text",P="";E.length===1?Et(S)?(P=S.modifier||P,M=S.type||M):Ge(S)&&(P=S||P):E.length===2&&(Ge(S)&&(P=S||P),Ge(C)&&(M=C||M));const A=u(_,!0)(v),R=A===""||A===void 0?_:A,B=M==="vnode"&&Jt(R)&&P?R[0]:R;if(!P)return B;const O=d(P);return Kt(O)?O(B,M):B},message:u,type:p,interpolate:m,normalize:f,values:gi(Dt(),o,c,l?{count:h("count"),n:h("n")}:{})};return v}const Cb=()=>"",er=n=>Kt(n),uu=n=>Ge(n)||Xo(n)||er(n);function Mb(n,...e){const{fallbackFormat:t,postTranslation:i,unresolving:s,messageCompiler:r,fallbackLocale:o,messages:a}=n,[c,l]=Ep(...e),h=Rt(l.missingWarn)?l.missingWarn:n.missingWarn,u=Rt(l.fallbackWarn)?l.fallbackWarn:n.fallbackWarn,d=Rt(l.escapeParameter)?l.escapeParameter:n.escapeParameter,f=!!l.resolvedMessage,m=Ge(l.default)||Rt(l.default)?Rt(l.default)?r?c:()=>c:l.default:t?r?c:()=>c:null,p=t||m!=null&&(Ge(m)||Kt(m)),g=Xg(n,l);d&&tO(l);let[v,b,y]=f?[c,g,Pi(a,g)||Dt()]:s_(n,c,g,o,u,h),x=v,_=c;if(!f&&!uu(x)&&p&&(x=m,_=x),!f&&(!uu(x)||!Ge(b)))return s?ud:c;let E=!1;const S=()=>{E=!0},C=er(x)?x:r_(n,c,b,x,_,S);if(E)return x;const M=sO(n,b,y,l),P=eO(M),A=iO(n,C,P);let R=i?i(A,c):A;if(d&&Ge(R)&&(R=$F(R)),__INTLIFY_PROD_DEVTOOLS__){const B={timestamp:Date.now(),key:Ge(c)?c:er(x)?x.key:"",locale:b||(er(x)?x.locale:""),format:Ge(x)?x:er(x)?x.source:"",message:R};B.meta=gi({},n.__meta,YL()||{}),SL(B)}return R}function tO(n){if(Jt(n.list)&&(n.list=n.list.map(e=>Ge(e)?lb(e):e)),Et(n.named)){const e=n.named,t=Dt();for(const i of Object.keys(e)){const s=e[i];t[i]=Ge(s)?lb(s):s}n.named=t}}function s_(n,e,t,i,s,r){const{messages:o,onWarn:a,messageResolver:c,localeFallbacker:l}=n,h=l(n,i,t);let u=Dt(),d,f=null;const m="translate";for(let p=0;p<h.length&&(d=h[p],u=Pi(o,d)||Dt(),(f=c(u,e))===null&&(f=Pi(u,e)),!uu(f));p++)if(!WL(d,h)){const g=JS(n,e,d,r,m);g!==e&&(f=g)}return[f,d,u]}function r_(n,e,t,i,s,r){const{messageCompiler:o,warnHtmlMessage:a}=n;if(er(i)){const l=i;return l.locale=l.locale||t,l.key=l.key||e,l}if(o==null){const l=(()=>i);return l.locale=t,l.key=e,l}const c=o(i,nO(n,t,s,i,a,r));return c.locale=t,c.key=e,c.source=i,c}function iO(n,e,t){return e(t)}function Ep(...n){const[e,t,i]=n,s=Dt();if(!Ge(e)&&!xi(e)&&!er(e)&&!Xo(e))throw Qs(Zs.INVALID_ARGUMENT);const r=xi(e)?String(e):(er(e),e);return xi(t)?s.plural=t:Ge(t)?s.default=t:Yt(t)&&!$g(t)?s.named=t:Jt(t)&&(s.list=t),xi(i)?s.plural=i:Ge(i)?s.default=i:Yt(i)&&gi(s,i),[r,s]}function nO(n,e,t,i,s,r){return{locale:e,key:t,warnHtmlMessage:s,onError:o=>{throw r&&r(o),o},onCacheKey:o=>pF(e,t,o)}}function sO(n,e,t,i){const{modifiers:s,pluralRules:r,messageResolver:o,fallbackLocale:a,fallbackWarn:c,missingWarn:l,fallbackContext:h}=n,d={locale:e,modifiers:s,pluralRules:r,messages:(f,m)=>{let p=o(t,f);if(p==null&&(h||m)){const[g,,v]=s_(h||n,f,e,a,c,l);p=g??o(v,f)}if(Ge(p)||Xo(p)){let g=!1;const b=r_(n,f,e,p,f,()=>{g=!0});return g?Cb:b}else return er(p)?p:Cb}};return n.processor&&(d.processor=n.processor),i.list&&(d.list=i.list),i.named&&(d.named=i.named),xi(i.plural)&&(d.pluralIndex=i.plural),d}cL();/*!
* vue-i18n v11.4.16
* (c) 2026 kazuya kawaguchi
* Released under the MIT License.
*/const rO="11.4.16";function oO(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Gr().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Gr().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Gr().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Gr().__INTLIFY_PROD_DEVTOOLS__=!1)}const sn={UNEXPECTED_RETURN_TYPE:TL,INVALID_ARGUMENT:25,MUST_BE_CALL_SETUP_TOP:26,NOT_INSTALLED:27,REQUIRED_VALUE:28,INVALID_VALUE:29,NOT_INSTALLED_WITH_PROVIDE:31,UNEXPECTED_ERROR:32,NOT_AVAILABLE_COMPOSITION_IN_LEGACY:34};function dn(n,...e){return hd(n,null,void 0)}const Cp=io("__translateVNode"),Mp=io("__datetimeParts"),Ap=io("__numberParts"),o_=io("__setPluralRules"),a_=io("__injectWithOption"),wa=io("__dispose");let l_=null;{const n=Gr().__VUE_INSTANCE_SETTERS__;Jt(n)&&n.push(e=>{l_=e})}function Fr(n){return!!OS(n)}function rc(n){if(!Et(n)||Xo(n))return n;for(const e in n)if(Ln(n,e))if(!e.includes("."))Et(n[e])&&rc(n[e]);else{const t=e.split("."),i=t.length-1;let s=n,r=!1;for(let a=0;a<i;a++){if(t[a]==="__proto__")throw new Error(`unsafe key: ${t[a]}`);if(t[a]in s||(s[t[a]]=Dt()),!Et(s[t[a]])){r=!0;break}if(Xo(s[t[a]])&&(HS.includes(t[a+1])||t[a+1]==="cacheKey")){r=!0;break}s=s[t[a]]}r||(s[t[i]]=n[e],delete n[e]);const o=s[t[i]];Et(o)&&rc(o)}return n}function Yg(n,e){const{messages:t,__i18n:i,messageResolver:s,flatJson:r}=e,o=Yt(t)?t:Jt(i)?Dt():{[n]:Dt()};if(Jt(i)&&i.forEach(a=>{if("locale"in a&&"resource"in a){const{locale:c,resource:l}=a;if(c){if(Fr(c))return;o[c]=Pi(o,c)||Dt(),Ih(l,o[c])}else Ih(l,o)}else Ge(a)&&Ih(JSON.parse(a),o)}),s==null&&r)for(const a in o)Ln(o,a)&&rc(o[a]);return o}function c_(n){return n.type}function h_(n,e,t){let i=Et(e.messages)?e.messages:Dt();"__i18nGlobal"in t&&(i=Yg(n.locale.value,{messages:i,__i18n:t.__i18nGlobal}));const s=Object.keys(i);s.length&&s.forEach(r=>{n.mergeLocaleMessage(r,i[r])});{if(Et(e.datetimeFormats)){const r=Object.keys(e.datetimeFormats);r.length&&r.forEach(o=>{n.mergeDateTimeFormat(o,e.datetimeFormats[o])})}if(Et(e.numberFormats)){const r=Object.keys(e.numberFormats);r.length&&r.forEach(o=>{n.mergeNumberFormat(o,e.numberFormats[o])})}}}function Ab(n){return Te(fc,null,n,0)}function oc(){return l_??Ku()}const Ib="__INTLIFY_META__",Pb=()=>[],aO=()=>!1;let Rb=0;function kb(n){return((e,t,i,s)=>n(t,i,oc()||void 0,s))}const lO=()=>{const n=oc();let e=null;return n&&(e=c_(n)[Ib])?{[Ib]:e}:null};function du(n={}){const{__root:e,__injectWithOption:t}=n,i=e===void 0,s=n.flatJson,r=cu?De:SC;let o=Rt(n.inheritLocale)?n.inheritLocale:!0;const a=r(e&&o?e.locale.value:Ge(n.locale)?n.locale:sc),c=r(e&&o?e.fallbackLocale.value:Ge(n.fallbackLocale)||Jt(n.fallbackLocale)||Yt(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:a.value),l=r(Yg(a.value,n)),h=r(Yt(n.datetimeFormats)?n.datetimeFormats:{[a.value]:{}}),u=r(Yt(n.numberFormats)?n.numberFormats:{[a.value]:{}});let d=e?e.missingWarn:Rt(n.missingWarn)||Ya(n.missingWarn)?n.missingWarn:!0,f=e?e.fallbackWarn:Rt(n.fallbackWarn)||Ya(n.fallbackWarn)?n.fallbackWarn:!0,m=e?e.fallbackRoot:Rt(n.fallbackRoot)?n.fallbackRoot:!0,p=!!n.fallbackFormat,g=Kt(n.missing)?n.missing:null,v=Kt(n.missing)?kb(n.missing):null,b=Kt(n.postTranslation)?n.postTranslation:null,y=e?e.warnHtmlMessage:Rt(n.warnHtmlMessage)?n.warnHtmlMessage:!0,x=!!n.escapeParameter;const _=e?e.modifiers:Yt(n.modifiers)?n.modifiers:{};let E=n.pluralRules||e&&e.pluralRules,S;S=(()=>{i&&bb(null);const he={version:rO,locale:a.value,fallbackLocale:c.value,messages:l.value,modifiers:_,pluralRules:E,missing:v===null?void 0:v,missingWarn:d,fallbackWarn:f,fallbackFormat:p,unresolving:!0,postTranslation:b===null?void 0:b,warnHtmlMessage:y,escapeParameter:x,messageResolver:n.messageResolver,messageCompiler:n.messageCompiler,__meta:{framework:"vue"}};he.datetimeFormats=h.value,he.numberFormats=u.value;const ge=HL(he);return i&&bb(ge),ge})(),lh(S,a.value,c.value);function M(){return[a.value,c.value,l.value,h.value,u.value]}const P=Fe({get:()=>a.value,set:he=>{S.locale=he,a.value=he}});function A(he){i||(S.fallbackContext=GL());try{return he()}finally{i||(S.fallbackContext=void 0)}}function R(he){A(()=>lh(S,a.value,he))}const B=Fe({get:()=>c.value,set:he=>{c.value=he,S.fallbackLocale=c.value,R(c.value)}}),O=Fe(()=>l.value),W=Fe(()=>h.value),V=Fe(()=>u.value);function Y(){return Kt(b)?b:null}function L(he){b=he,S.postTranslation=he}function N(){return g}function F(he){he!==null&&(v=kb(he)),g=he,S.missing=v}const D=(he,ge,We,Le,Ce,Ze)=>{M();let Ee;try{__INTLIFY_PROD_DEVTOOLS__,Ee=A(()=>he(S))}finally{__INTLIFY_PROD_DEVTOOLS__}if(We!=="translate exists"&&xi(Ee)&&Ee===ud||We==="translate exists"&&!Ee){const[vi,lt]=ge();return e&&m?Le(e):Ce(vi)}else{if(Ze(Ee))return Ee;throw dn(sn.UNEXPECTED_RETURN_TYPE)}};function X(...he){return D(ge=>Reflect.apply(Mb,null,[ge,...he]),()=>Ep(...he),"translate",ge=>Reflect.apply(ge.t,ge,[...he]),ge=>ge,ge=>Ge(ge))}function G(...he){const[ge,We,Le]=he;if(Le&&!Et(Le))throw dn(sn.INVALID_ARGUMENT);return X(ge,We,gi({resolvedMessage:!0},Le||{}))}function K(...he){return D(ge=>Reflect.apply(Sb,null,[ge,...he]),()=>_p(...he),"datetime format",ge=>Reflect.apply(ge.d,ge,[...he]),()=>hu,ge=>Ge(ge)||Jt(ge))}function J(...he){return D(ge=>Reflect.apply(Tb,null,[ge,...he]),()=>Tp(...he),"number format",ge=>Reflect.apply(ge.n,ge,[...he]),()=>hu,ge=>Ge(ge)||Jt(ge))}function oe(he){return he.map(ge=>Ge(ge)||xi(ge)||Rt(ge)?Ab(String(ge)):ge)}const ve={normalize:oe,interpolate:he=>he,type:"vnode"};function Se(...he){return D(ge=>{let We;const Le=ge;try{Le.processor=ve,We=Reflect.apply(Mb,null,[Le,...he])}finally{Le.processor=null}return We},()=>Ep(...he),"translate",ge=>ge[Cp](...he),ge=>[Ab(ge)],ge=>Jt(ge))}function fe(...he){return D(ge=>Reflect.apply(Tb,null,[ge,...he]),()=>Tp(...he),"number format",ge=>ge[Ap](...he),Pb,ge=>Ge(ge)||Jt(ge))}function ye(...he){return D(ge=>Reflect.apply(Sb,null,[ge,...he]),()=>_p(...he),"datetime format",ge=>ge[Mp](...he),Pb,ge=>Ge(ge)||Jt(ge))}function q(he){E=he,S.pluralRules=E}function Z(he,ge){const We=$(he),Le=S.messageResolver(We,ge);return Le===null?Pi(We,ge):Le}function se(he,ge){return D(()=>{if(!he)return!1;const We=Ge(ge)?ge:a.value,Le=Ge(ge)?[We]:S.localeFallbacker(S,c.value,We);for(let Ce=0;Ce<Le.length;Ce++)if(uu(Z(Le[Ce],he)))return!0;return!1},()=>[he],"translate exists",We=>Reflect.apply(We.te,We,[he,ge]),aO,We=>Rt(We))}function H(he){let ge=null;const We=S.localeFallbacker(S,c.value,a.value);for(let Le=0;Le<We.length;Le++){const Ce=Z(We[Le],he);if(Ce!=null){ge=Ce;break}}return ge}function j(he){const ge=H(he);return ge??(e?e.tm(he)||{}:{})}function $(he){return Pi(l.value,he)||{}}function U(he,ge){Fr(he)||(s&&rc(ge),l.value[he]=ge,S.messages=l.value)}function z(he,ge){Fr(he)||(l.value[he]=Pi(l.value,he)||{},s&&rc(ge),Ih(ge,l.value[he]),S.messages=l.value)}function ee(he){return Pi(h.value,he)||{}}function ne(he,ge){Fr(he)||(h.value[he]=ge,S.datetimeFormats=h.value,_b(S,he,ge))}function ue(he,ge){Fr(he)||(h.value[he]=gi(Pi(h.value,he)||{},ge),S.datetimeFormats=h.value,_b(S,he,ge))}function xe(he){return Pi(u.value,he)||{}}function be(he,ge){Fr(he)||(u.value[he]=ge,S.numberFormats=u.value,Eb(S,he,ge))}function Ne(he,ge){Fr(he)||(u.value[he]=gi(Pi(u.value,he)||{},ge),S.numberFormats=u.value,Eb(S,he,ge))}Rb++,ei(c,()=>R(c.value),{deep:!0,flush:"sync"}),e&&cu&&(ei(e.locale,he=>{o&&(a.value=he,S.locale=he,lh(S,a.value,c.value))}),ei(e.fallbackLocale,he=>{o&&(c.value=he,S.fallbackLocale=c.value,lh(S,a.value,c.value))}));const Be={id:Rb,locale:P,fallbackLocale:B,get inheritLocale(){return o},set inheritLocale(he){o=he,he&&e&&(P.value=e.locale.value,B.value=e.fallbackLocale.value)},get availableLocales(){return Object.keys(l.value).sort()},messages:O,get modifiers(){return _},get pluralRules(){return E||{}},get isGlobal(){return i},get missingWarn(){return d},set missingWarn(he){d=he,S.missingWarn=d},get fallbackWarn(){return f},set fallbackWarn(he){f=he,S.fallbackWarn=f},get fallbackRoot(){return m},set fallbackRoot(he){m=he},get fallbackFormat(){return p},set fallbackFormat(he){p=he,S.fallbackFormat=p},get warnHtmlMessage(){return y},set warnHtmlMessage(he){y=he,S.warnHtmlMessage=he},get escapeParameter(){return x},set escapeParameter(he){x=he,S.escapeParameter=he},t:X,getLocaleMessage:$,setLocaleMessage:U,mergeLocaleMessage:z,getPostTranslationHandler:Y,setPostTranslationHandler:L,getMissingHandler:N,setMissingHandler:F,[o_]:q};return Be.datetimeFormats=W,Be.numberFormats=V,Be.rt=G,Be.te=se,Be.tm=j,Be.d=K,Be.n=J,Be.getDateTimeFormat=ee,Be.setDateTimeFormat=ne,Be.mergeDateTimeFormat=ue,Be.getNumberFormat=xe,Be.setNumberFormat=be,Be.mergeNumberFormat=Ne,Be[a_]=t,Be[Cp]=Se,Be[Mp]=ye,Be[Ap]=fe,Be}function cO(n){const e=Ge(n.locale)?n.locale:sc,t=Ge(n.fallbackLocale)||Jt(n.fallbackLocale)||Yt(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:e,i=Kt(n.missing)?n.missing:void 0,s=Rt(n.silentTranslationWarn)||Ya(n.silentTranslationWarn)?!n.silentTranslationWarn:!0,r=Rt(n.silentFallbackWarn)||Ya(n.silentFallbackWarn)?!n.silentFallbackWarn:!0,o=Rt(n.fallbackRoot)?n.fallbackRoot:!0,a=!!n.formatFallbackMessages,c=Yt(n.modifiers)?n.modifiers:{},l=n.pluralizationRules,h=Kt(n.postTranslation)?n.postTranslation:void 0,u=Ge(n.warnHtmlInMessage)?n.warnHtmlInMessage!=="off":!0,d=!!n.escapeParameterHtml,f=Rt(n.sync)?n.sync:!0;let m=n.messages;if(Yt(n.sharedMessages)){const _=n.sharedMessages;m=Object.keys(_).reduce((S,C)=>{if(Fr(C))return S;const M=Pi(S,C)||(S[C]={});return gi(M,_[C]),S},m||{})}const{__i18n:p,__root:g,__injectWithOption:v}=n,b=n.datetimeFormats,y=n.numberFormats,x=n.flatJson;return{locale:e,fallbackLocale:t,messages:m,flatJson:x,datetimeFormats:b,numberFormats:y,missing:i,missingWarn:s,fallbackWarn:r,fallbackRoot:o,fallbackFormat:a,modifiers:c,pluralRules:l,postTranslation:h,warnHtmlMessage:u,escapeParameter:d,messageResolver:n.messageResolver,inheritLocale:f,__i18n:p,__root:g,__injectWithOption:v}}function Ip(n={}){const e=du(cO(n)),{__extender:t}=n,i={id:e.id,get locale(){return e.locale.value},set locale(s){e.locale.value=s},get fallbackLocale(){return e.fallbackLocale.value},set fallbackLocale(s){e.fallbackLocale.value=s},get messages(){return e.messages.value},get datetimeFormats(){return e.datetimeFormats.value},get numberFormats(){return e.numberFormats.value},get availableLocales(){return e.availableLocales},get missing(){return e.getMissingHandler()},set missing(s){e.setMissingHandler(s)},get silentTranslationWarn(){return Rt(e.missingWarn)?!e.missingWarn:e.missingWarn},set silentTranslationWarn(s){e.missingWarn=Rt(s)?!s:s},get silentFallbackWarn(){return Rt(e.fallbackWarn)?!e.fallbackWarn:e.fallbackWarn},set silentFallbackWarn(s){e.fallbackWarn=Rt(s)?!s:s},get modifiers(){return e.modifiers},get formatFallbackMessages(){return e.fallbackFormat},set formatFallbackMessages(s){e.fallbackFormat=s},get postTranslation(){return e.getPostTranslationHandler()},set postTranslation(s){e.setPostTranslationHandler(s)},get sync(){return e.inheritLocale},set sync(s){e.inheritLocale=s},get warnHtmlInMessage(){return e.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(s){e.warnHtmlMessage=s!=="off"},get escapeParameterHtml(){return e.escapeParameter},set escapeParameterHtml(s){e.escapeParameter=s},get pluralizationRules(){return e.pluralRules||{}},__composer:e,t(...s){return Reflect.apply(e.t,e,[...s])},rt(...s){return Reflect.apply(e.rt,e,[...s])},te(s,r){return e.te(s,r)},tm(s){return e.tm(s)},getLocaleMessage(s){return e.getLocaleMessage(s)},setLocaleMessage(s,r){e.setLocaleMessage(s,r)},mergeLocaleMessage(s,r){e.mergeLocaleMessage(s,r)},d(...s){return Reflect.apply(e.d,e,[...s])},getDateTimeFormat(s){return e.getDateTimeFormat(s)},setDateTimeFormat(s,r){e.setDateTimeFormat(s,r)},mergeDateTimeFormat(s,r){e.mergeDateTimeFormat(s,r)},n(...s){return Reflect.apply(e.n,e,[...s])},getNumberFormat(s){return e.getNumberFormat(s)},setNumberFormat(s,r){e.setNumberFormat(s,r)},mergeNumberFormat(s,r){e.mergeNumberFormat(s,r)}};return i.__extender=t,i}function hO(n,e,t){return{beforeCreate(){const i=oc();if(!i)throw dn(sn.UNEXPECTED_ERROR);const s=this.$options;if(s.i18n){const r=gi({},s.i18n);if(s.__i18n&&(r.__i18n=s.__i18n),r.__root=e,this===this.$root)this.$i18n=Fb(n,r);else{r.__injectWithOption=!0,r.__extender=t.__vueI18nExtend,this.$i18n=Ip(r);const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}}else if(s.__i18n)if(this===this.$root)this.$i18n=Fb(n,s);else{this.$i18n=Ip({__i18n:s.__i18n,__injectWithOption:!0,__extender:t.__vueI18nExtend,__root:e});const r=this.$i18n;r.__extender&&(r.__disposer=r.__extender(this.$i18n))}else this.$i18n=n;s.__i18nGlobal&&h_(e,s,s),this.$t=(...r)=>this.$i18n.t(...r),this.$rt=(...r)=>this.$i18n.rt(...r),this.$te=(r,o)=>this.$i18n.te(r,o),this.$d=(...r)=>this.$i18n.d(...r),this.$n=(...r)=>this.$i18n.n(...r),this.$tm=r=>this.$i18n.tm(r),t.__setInstance(i,this.$i18n)},mounted(){},unmounted(){const i=oc();if(!i)throw dn(sn.UNEXPECTED_ERROR);const s=this.$i18n;s&&(delete this.$t,delete this.$rt,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,s!=null&&s.__disposer&&(s.__disposer(),delete s.__disposer,delete s.__extender),t.__deleteInstance(i),delete this.$i18n)}}}function Fb(n,e){n.locale=e.locale||n.locale,n.fallbackLocale=e.fallbackLocale||n.fallbackLocale,n.missing=e.missing||n.missing,n.silentTranslationWarn=e.silentTranslationWarn||n.silentFallbackWarn,n.silentFallbackWarn=e.silentFallbackWarn||n.silentFallbackWarn,n.formatFallbackMessages=e.formatFallbackMessages||n.formatFallbackMessages,n.postTranslation=e.postTranslation||n.postTranslation,n.warnHtmlInMessage=e.warnHtmlInMessage||n.warnHtmlInMessage,n.escapeParameterHtml=e.escapeParameterHtml||n.escapeParameterHtml,n.sync=e.sync||n.sync,n.__composer[o_](e.pluralizationRules||n.pluralizationRules);const t=Yg(n.locale,{messages:e.messages,__i18n:e.__i18n});return Object.keys(t).forEach(i=>n.mergeLocaleMessage(i,t[i])),e.datetimeFormats&&Object.keys(e.datetimeFormats).forEach(i=>n.mergeDateTimeFormat(i,e.datetimeFormats[i])),e.numberFormats&&Object.keys(e.numberFormats).forEach(i=>n.mergeNumberFormat(i,e.numberFormats[i])),n}const Gg={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:n=>n==="parent"||n==="global",default:"parent"},i18n:{type:Object}};function uO({slots:n},e){return e.length===1&&e[0]==="default"?(n.default?n.default():[]).reduce((i,s)=>[...i,...s.type===Me?s.children:[s]],[]):e.reduce((t,i)=>{const s=n[i];return s&&(t[i]=s()),t},Dt())}function u_(){return Me}const dO=qt({name:"i18n-t",props:gi({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:n=>xi(n)||!isNaN(n)}},Gg),setup(n,e){const{slots:t,attrs:i}=e,s=n.i18n||fn({useScope:n.scope,__useComponent:!0});return()=>{const r=()=>{const c=Object.keys(t).filter(u=>u[0]!=="_"),l=Dt();n.locale&&(l.locale=n.locale),n.plural!==void 0&&(l.plural=Ge(n.plural)?+n.plural:n.plural);const h=uO(e,c);return s[Cp](n.keypath,h,l)},o=gi(Dt(),i),a=Ge(n.tag)||Et(n.tag)?n.tag:u_();return Et(a)?ql(a,o,{default:r}):ql(a,o,r())}}}),Lb=dO;function fO(n){return Jt(n)&&!Ge(n[0])}function d_(n,e,t,i){const{slots:s,attrs:r}=e;return()=>{const o=()=>{const l={part:!0};let h=Dt();n.locale&&(l.locale=n.locale),Ge(n.format)?l.key=n.format:Et(n.format)&&(Ge(n.format.key)&&(l.key=n.format.key),h=Object.keys(n.format).reduce((f,m)=>t.includes(m)?gi(Dt(),f,{[m]:n.format[m]}):f,Dt()));const u=i(n.value,l,h);let d=[l.key];return Jt(u)?d=u.map((f,m)=>{const p=s[f.type],g=p?p({[f.type]:f.value,index:m,parts:u}):[f.value];return fO(g)&&(g[0].key=`${f.type}-${m}`),g}):Ge(u)&&(d=[u]),d},a=gi(Dt(),r),c=Ge(n.tag)||Et(n.tag)?n.tag:u_();return Et(c)?ql(c,a,{default:o}):ql(c,a,o())}}const mO=qt({name:"i18n-n",props:gi({value:{type:Number,required:!0},format:{type:[String,Object]}},Gg),setup(n,e){const t=n.i18n||fn({useScope:n.scope,__useComponent:!0});return d_(n,e,n_,(...i)=>t[Ap](...i))}}),Ob=mO;function pO(n,e){const t=n;if(n.mode==="composition")return t.__getInstance(e)||n.global;{const i=t.__getInstance(e);return i!=null?i.__composer:n.global.__composer}}function gO(n){const e=o=>{const{instance:a,value:c}=o;if(!a||!a.$)throw dn(sn.UNEXPECTED_ERROR);const l=pO(n,a.$),h=$b(c);return[Reflect.apply(l.t,l,[...Nb(h)]),l]};return{created:(o,a)=>{const[c,l]=e(a);cu&&(o.__i18nWatcher=ei(l.locale,()=>{a.instance&&a.instance.$forceUpdate()})),o.__composer=l,o.textContent=c},unmounted:o=>{cu&&o.__i18nWatcher&&(o.__i18nWatcher(),o.__i18nWatcher=void 0,delete o.__i18nWatcher),o.__composer&&(o.__composer=void 0,delete o.__composer)},beforeUpdate:(o,{value:a})=>{if(o.__composer){const c=o.__composer,l=$b(a);o.textContent=Reflect.apply(c.t,c,[...Nb(l)])}},getSSRProps:o=>{const[a]=e(o);return{textContent:a}}}}function $b(n){if(Ge(n))return{path:n};if(Yt(n)){if(!("path"in n))throw dn(sn.REQUIRED_VALUE,"path");return n}else throw dn(sn.INVALID_VALUE)}function Nb(n){const{path:e,locale:t,args:i,choice:s,plural:r}=n,o={},a=i||{};return Ge(t)&&(o.locale=t),xi(s)&&(o.plural=s),xi(r)&&(o.plural=r),[e,a,o]}function vO(n,e,...t){const i=Yt(t[0])?t[0]:{};(Rt(i.globalInstall)?i.globalInstall:!0)&&([Lb.name,"I18nT"].forEach(r=>n.component(r,Lb)),[Ob.name,"I18nN"].forEach(r=>n.component(r,Ob)),[Ub.name,"I18nD"].forEach(r=>n.component(r,Ub))),n.directive("t",gO(e))}const yO=io("global-vue-i18n");function bO(n={}){const e=__VUE_I18N_LEGACY_API__&&Rt(n.legacy)?n.legacy:__VUE_I18N_LEGACY_API__,t=Rt(n.globalInjection)?n.globalInjection:!0,i=new Map,[s,r]=xO(n,e),o=io("");function a(u){return i.get(u)||null}function c(u,d){i.set(u,d)}function l(u){i.delete(u)}const h={get mode(){return __VUE_I18N_LEGACY_API__&&e?"legacy":"composition"},async install(u,...d){if(u.__VUE_I18N_SYMBOL__=o,u.provide(u.__VUE_I18N_SYMBOL__,h),Yt(d[0])){const p=d[0];h.__composerExtend=p.__composerExtend,h.__vueI18nExtend=p.__vueI18nExtend}let f=null;!e&&t&&(f=MO(u,h.global)),__VUE_I18N_FULL_INSTALL__&&vO(u,h,...d),__VUE_I18N_LEGACY_API__&&e&&u.mixin(hO(r,r.__composer,h));const m=u.unmount;u.unmount=()=>{f&&f(),h.dispose(),m()}},get global(){return r},dispose(){s.stop()},__instances:i,__getInstance:a,__setInstance:c,__deleteInstance:l};return h}function fn(n={}){const e=oc();if(e==null)throw dn(sn.MUST_BE_CALL_SETUP_TOP);if(!e.isCE&&e.appContext.app!=null&&!e.appContext.app.__VUE_I18N_SYMBOL__)throw dn(sn.NOT_INSTALLED);const t=wO(e),i=_O(t),s=c_(e),r=SO(n,s);if(r==="global")return h_(i,n,s),i;if(r==="parent"){let c=Db(t,e,n.__useComponent);return c==null&&(c=i),c}if(r==="isolated"){if(t.mode!=="composition")throw dn(sn.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const c=t,l=gi({},n),h=Db(t,e);l.__root=h||i;const u=du(l);return c.__composerExtend&&(u[wa]=c.__composerExtend(u)),lg()&&U1(()=>{const f=u[wa];f&&(f(),delete u[wa])}),u}const o=t;let a=o.__getInstance(e);if(a==null){const c=gi({},n);"__i18n"in s&&(c.__i18n=s.__i18n),i&&(c.__root=i),a=du(c),o.__composerExtend&&(a[wa]=o.__composerExtend(a)),EO(o,e,a),o.__setInstance(e,a)}return a}function xO(n,e){const t=ag(),i=__VUE_I18N_LEGACY_API__&&e?t.run(()=>Ip(n)):t.run(()=>du(n));if(i==null)throw dn(sn.UNEXPECTED_ERROR);return[t,i]}function wO(n){const e=ko(n.isCE?yO:n.appContext.app.__VUE_I18N_SYMBOL__);if(!e)throw dn(n.isCE?sn.NOT_INSTALLED_WITH_PROVIDE:sn.UNEXPECTED_ERROR);return e}function SO(n,e){return $g(n)?"__i18n"in e?"local":"global":n.useScope?n.useScope:"local"}function _O(n){return n.mode==="composition"?n.global:n.global.__composer}function Db(n,e,t=!1){let i=null;const s=e.root;let r=TO(e,t);for(;r!=null;){const o=n;if(n.mode==="composition")i=o.__getInstance(r);else if(__VUE_I18N_LEGACY_API__){const a=o.__getInstance(r);a!=null&&(i=a.__composer,t&&i&&!i[a_]&&(i=null))}if(i!=null||s===r)break;r=r.parent}return i}function TO(n,e=!1){return n==null?null:e&&n.vnode.ctx||n.parent}function EO(n,e,t){Sn(()=>{},e),Za(()=>{const i=t;n.__deleteInstance(e);const s=i[wa];s&&(s(),delete i[wa])},e)}const CO=["locale","fallbackLocale","availableLocales"],Bb=["t","rt","d","n","tm","te"];function MO(n,e){const t=Object.create(null);return CO.forEach(s=>{const r=Object.getOwnPropertyDescriptor(e,s);if(!r)throw dn(sn.UNEXPECTED_ERROR);const o=Qt(r.value)?{get(){return r.value.value},set(a){r.value.value=a}}:{get(){return r.get&&r.get()}};Object.defineProperty(t,s,o)}),n.config.globalProperties.$i18n=t,Bb.forEach(s=>{const r=Object.getOwnPropertyDescriptor(e,s);if(!r||!r.value)throw dn(sn.UNEXPECTED_ERROR);Object.defineProperty(n.config.globalProperties,`$${s}`,r)}),()=>{delete n.config.globalProperties.$i18n,Bb.forEach(s=>{delete n.config.globalProperties[`$${s}`]})}}const AO=qt({name:"i18n-d",props:gi({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},Gg),setup(n,e){const t=n.i18n||fn({useScope:n.scope,__useComponent:!0});return d_(n,e,i_,(...i)=>t[Mp](...i))}}),Ub=AO;oO();BL(bL);UL($L);VL(CL);if(__INTLIFY_PROD_DEVTOOLS__){const n=Gr();n.__INTLIFY__=!0,xL(n.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const IO={title:"Spine Particle Editor - Yeomai",resizeTimeline:"Drag to resize the timeline",systems:"Systems",particlesBones:"Particles (bones)",rootBone:"Root bone",hudTip:"Scroll to zoom · Drag with left mouse to pan"},PO={label:"Language",zhCN:"中文",en:"English"},RO={close:"Close",reset:"Reset",add:"Add",remove:"Remove",delete:"Delete",clear:"Clear",cancel:"Cancel",confirm:"Confirm",none:"None",enabled:"Enabled",disabled:"Disabled",fixed:"Fixed",random:"Random",curve:"Curve",followExport:"Follow export",linear:"Linear",bezier:"Bézier",above:"Above",below:"Below",left:"Left",right:"Right",seconds:"s",frames:"f"},kO={settings:"Settings",undo:"Undo (Ctrl+Z)",pan:"Pan canvas (Q)",translate:"Move (W)",rotate:"Rotate (E)",scale:"Scale (R)",zoomIn:"Zoom in",zoomOut:"Zoom out",fitView:"Fit canvas",toggleGrid:"Toggle grid",resetView:"Reset view",background:"Background",backgroundSettings:"Background settings",changeBackground:"Replace image",uploadBackground:"Upload image",clearBackground:"Clear background",noBackground:"No image",backgroundX:"Background X offset",backgroundY:"Background Y offset",backgroundOpacity:"Background opacity",opacity:"Opacity",help:"Help",openHelp:"Open help"},FO={title:"Settings",layout:"Layout",parameterPanelPosition:"Parameter panel position",panelOnRight:"Show parameter panel on the right",history:"History",maxUndo:"Maximum undo steps",canvasGuides:"Canvas guides",emitter:"Emitter point",bones:"Bone links",bonePointSize:"Bone point size",boneAxisSize:"Axis size",skinMesh:"Skin mesh",enableTicks:"Show ticks",tickFontSize:"Tick text size",tickWidth:"Tick line width",axisColor:"Axis color",showAxisLabels:"Show tick values",cacheNote:"Settings are saved automatically in this browser"},LO={title:"Configuration",save:"Save Config",saveTitle:"Save the complete editor configuration (Ctrl+S)",load:"Load Config",loadTitle:"Load an editor configuration file",presets:"Preset list",selectPreset:"Select preset",noPresets:"No presets",saved:"Configuration saved locally",loading:"Loading configuration…",loaded:"Loaded: {name}",presetLoading:"Loading preset…",presetLoaded:"Preset loaded: {name}",presetNamingError:"{message}. Check the preset file name.",presetTransferTitle:"Load Preset",presetDownloading:"Downloading {file}…",presetParsing:"Parsing preset configuration…",presetRestoring:"Parsing and restoring preset resources…",presetComplete:"Preset loaded",presetListError:"Unable to read preset list",presetReadError:"Unable to read preset: {file}"},OO={particleSweep:"1. Particle Sweep",barBlocks:"2. Bar Blocks",forceTrail:"3. Force Field Trail",lightningSequence:"4. Lightning Sequence",texturePivot:"5. Texture Pivot",subEmitter:"6. Sub-emitter"},$O={bezierHint:"Drag square handles · Double-click empty space to add · Double-click a node to delete",linearHint:"Double-click empty space to add · Double-click a node to delete · Drag nodes to adjust",resetTitle:"Restore default curve"},NO={addTitle:"Double-click the color bar to add a stop",color:"Stop color",colorValue:"Stop color value",position:"Stop position",addMiddle:"Add color in the middle",delete:"Delete selected stop",hint:"Double-click to add · Drag a stop to move · Double-click a stop to delete"},DO={angleOffset:"Angle offset",value:"Value",lower:"Min",upper:"Max",rangeLower:"Range min",rangeUpper:"Range max",curveInput:"Curve input →",direction:"Emission direction"},BO={title:"Texture Pivot",zoomOut:"Zoom out",zoomIn:"Zoom in",expand:"Open full-screen pivot editor",interaction:"Click/drag to set pivot · Right-drag to pan · Scroll to zoom",previewAlt:"Pivot preview",noImage:"No image selected",resetCenter:"Center (50%, 50%)",coordinates:"Pivot coordinates (%)",rotationTest:"Pivot rotation test",static:"Static",spin:"Spin",swing:"Swing",rotationAlt:"Rotation test",topLeft:"Top left",top:"Top",topRight:"Top right",left:"Left",center:"Center",right:"Right",bottomLeft:"Bottom left",bottom:"Bottom",bottomRight:"Bottom right"},UO={chooseSequence:"Choose sequence images",chooseLocal:"Choose local image",subfolder:"Subfolder",name:"Name",restore:"Restore {name}",deleteResource:"Delete image resource",imageMode:"Image mode",fixed:"Single image",sequence:"Sequence",playbackMode:"Playback",onceHide:"Once, hide at end",onceHold:"Once, hold last frame",loopForward:"Loop forward",loopReverse:"Loop reverse",playbackFps:"Playback FPS",chooseSequenceMulti:"Choose sequence images (multiple)",weight:"Weight %",unlockWeight:"Unlock weight",lockWeight:"Lock current weight",pivot:"Texture Pivot",collapsePivot:"Collapse pivot editor",expandPivot:"Expand pivot editor",pivotModal:"Full-screen texture pivot editor",pivotModalDesc:"Click or drag on the texture to set the exact particle rotation center",pivotZoomHint:"Zoom from 100% to 400% to align tips or roots precisely:",confirmPivot:"Apply and save pivot",noSequence:"No sequence selected",firstFrame:"Frame 1",firstImage:"first image",lastImage:"last image",pivotOn:"Enabled: X {x}% | Y {y}%",pivotOff:"Disabled, using image center (50%, 50%)",pivotCustom:"Custom pivot: X {x}% | Y {y}%",frameCountOne:"1 frame · {name}",frameCountMany:"{count} frames · {first} → {last}",sequenceSelected:"{count} frames selected, playing {first} to {last}"},VO={play:"Play (D)",pause:"Pause (D)",toStart:"Go to first frame (S)",previous:"Previous frame",next:"Next frame",toEnd:"Go to last frame",continuousLoop:"Continuous loop playback",abLoop:"Independent A/B range loop",abLoopShort:"AB Loop",abRange:"A/B loop range",playbackStart:"Custom playback start frame",playbackEnd:"Custom playback end frame",startFrame:"Playback start frame",endFrame:"Playback end frame",frame:"Frame",emission:"Emitting",particleLife:"Particles alive",spineAnimation:"Spine animation",ownerAnimation:"Owner animation",setOwnerAnimation:"Set the animation that owns this particle system",chooseOwnerAnimation:"Choose owner animation",animationName:"Animation name",renameAnimation:"Rename current animation",rename:"Rename",newAnimation:"+ New",keepOneAnimation:"At least one animation is required",spinePreview:"Spine preview animation",noSpineAnimation:"No Spine animation available",none:"None",systemName:"System {index}",dragLoopDuration:"Drag to change loop duration",dragEmissionDuration:"Drag to change emission duration",dragSpineStart:"Drag to change animation start time",noAnimationData:"No animation data",animationNameEmpty:"Animation name cannot be empty",animationNameDuplicate:"Animation name already exists",animationRenameFailed:"Unable to rename animation",zoomIn:"Zoom in",zoomOut:"Zoom out",zoomFit:"Fit",frameStatus:"Frame {current} / {total}"},XO={title:"Emission",reset:"Reset emission settings",stream:"Stream",burst:"Burst",normalStream:"Standard stream",loopStream:"Loop stream",rate:"Emission rate",duration:"Emission duration",loopDuration:"Emission duration (f)",generateStart:"Generate loop start animation",generateEnd:"Generate loop end animation",customDuration:"Custom duration",auto:"Auto {frames}f",startLoopDuration:"Loop start duration",endLoopDuration:"Loop end duration",loopWarning:"Bone and path following are unavailable in loop stream mode and will be reset when entering or leaving it.",burstCount:"Burst count",delay:"Delay",shapeTitle:"Emitter Shape",shapeReset:"Reset emitter shape settings",shape:"Shape",point:"Point",circle:"Circle",rect:"Rectangle",cone:"Cone",path:"Path",innerDiameter:"Inner diameter",outerDiameter:"Outer diameter",innerRadius:"Inner radius",outerRadius:"Outer radius",coneDirection:"Cone direction",coneAngle:"Cone opening angle",innerWidth:"Inner width",innerHeight:"Inner height",outerWidth:"Outer width",outerHeight:"Outer height",selectPath:"Spawn path",noPath:"No path (point emission)",birthDistribution:"Birth distribution",evenDistribution:"Even spacing",randomDistribution:"Random",emissionAngle:"Emission angle",radial:"Radial (outward)",pathNormal:"Path normal",pathTangent:"Path tangent",fixedAngle:"Fixed angle",baseAngle:"Base angle",randomRange:"Random range",showShape:"Show shape"},YO={title:"Particle Attributes",reset:"Reset particle attribute settings",initialParams:"Initial particle values",initialLife:"Initial life",randomSample:"Random sample →",initialSpeed:"Initial speed",initialScale:"Initial scale",uniform:"Uniform",separateXY:"Separate XY",scaleX:"Scale X",scaleY:"Scale Y",initialRotation:"Initial rotation",lifecycleTitle:"Values over particle life",speedOverLife:"Speed over life",speedMultiplier:"Speed multiplier",lifeTo:"Lifetime →",scaleOverLife:"Scale over life",scaleMultiplier:"Scale multiplier",multiplierX:"Multiplier X",multiplierY:"Multiplier Y",rotationOverLife:"Rotation over life",rotationSpeed:"Rotation speed"},GO={title:"Appearance & Resources",reset:"Reset appearance and resource settings",opacity:"Opacity",curveMode:"Curve mode",transparent:"0 (transparent)",opaque:"1 (opaque)",renderLayer:"Render layer (Spine slot)",top:"Topmost",spineSlot:"Spine slot",selectSpine:"Select Spine",noSpine:"No Spine available",noSlot:"No slot selected",reselect:"Reselect",selectSlot:"Select slot",searchSlots:"Search slots or attachments…",searchSlotsAria:"Search slots",emptySlot:"Empty slot",noMatchingSlots:"No matching slots",above:"Above slot image",below:"Below slot image",followAttachment:"Follow attachment visibility",previewOnly:"Render layer changes only affect the editor preview and are not exported.",imageResources:"Image Resources",addImage:"Add image resource",scale:"Scale",color:"Color",fixedColor:"Fixed color",randomColor:"Random color",lifetime:"Over lifetime",normal:"Normal",add:"Add",multiply:"Multiply",screen:"Screen",fixedColorValue:"Fixed color value",randomColorHint:"Each particle samples a color from the gradient at birth and keeps it for its lifetime",independentAlpha:"Independent opacity",off:"Off"},HO={slotLabelAbove:"{spine} / {slot} · above image",slotLabelBelow:"{spine} / {slot} · below image",resolvedAbove:"Render above {slot} and below the following slot",resolvedBetween:"Render between {previous} and {slot}",warningNoSpine:"No loaded Spine resource. Particles are temporarily rendered on top.",warningNoSelection:"No Spine selected. Particles are temporarily rendered on top.",warningMissingSpine:"The target Spine no longer exists. Particles are temporarily rendered on top.",warningNotReady:"The target Spine is not ready. Particles are temporarily rendered on top.",warningMissingSlot:"The target slot no longer exists. Particles are temporarily rendered on top.",warningFirstSlot:"This is the first slot, so particles cannot render below it and are temporarily shown on top."},jO={completed:"Completed",failed:"Operation failed"},WO={title:"Scene Objects",addParticle:"Add particle system",addParticleShort:"+ Particle",addCollider:"Add collider",addColliderShort:"+ Collider",addPath:"Add path",addPathShort:"+ Path",addSpine:"Add Spine",copyTitle:"Duplicate selected scene object",showParticle:"Show particle system",hideParticle:"Hide particle system",showCollider:"Show collider",hideCollider:"Hide collider",showPath:"Show path",hidePath:"Hide path",showSpine:"Show Spine",hideSpine:"Hide Spine",particle:"Particle",subEmitter:"Sub-emitter",collision:"Collision",path:"Path",deleteParticle:"Delete particle system",deleteCollider:"Delete collider",deletePath:"Delete path",deleteSpine:"Delete Spine",empty:"No scene objects",name:"Name",positionX:"Position X",positionY:"Position Y",offsetX:"Offset X",offsetY:"Offset Y",rotation:"Rotation",scaleX:"Scale X",scaleY:"Scale Y",seed:"Random seed",seedTitle:"Controls random attributes, resource selection, and modifier sampling",randomizeSeed:"Generate a new global random seed",seedHint:"Controls initial random values, resource selection, and modifier sampling. The same seed reproduces the same result.",colliderTitle:"Collider Properties",colliderName:"Collider name",type:"Type",circle:"Circle",ellipse:"Ellipse",rect:"Rectangle",polygon:"Polygon",custom:"Custom",enabled:"Enabled",xPosition:"X position",yPosition:"Y position",scaleXShort:"Scale X",scaleYShort:"Scale Y",radius:"Radius",radiusX:"X radius",radiusY:"Y radius",width:"Width",height:"Height",sides:"Sides",collisionResponse:"Collision response",physics:"Physics (bounce / friction)",pause:"Pause in place",destroy:"Destroy immediately",elasticity:"Elasticity (0-1)",friction:"Friction (0-1)",followPath:"Follow a path",targetPath:"Target path",notSelected:"(Not selected)",moveDuration:"Move duration (s)",followDirection:"Orient along path",moveProgressCurve:"Movement progress curve",moveProgressHelp:"X: elapsed / duration · Y: path progress (0 = start, 1 = end)",pathTitle:"Path Properties",pathName:"Path name",closedPath:"Closed path",pathColor:"Path color",pathHelp:"Controls:",pathHelpItems:["Double-click empty space or a curve to add an anchor","Double-click an anchor to delete it","Double-click, hold on the second click, and drag to create handles","Drag anchors to move them and handles to reshape the curve","Shift + handle drag: symmetric handles","Alt + handle drag: independent handles","Ctrl + click / box select: add nodes","Alt + click / box select: remove nodes","Alt + click empty space: clear selection","Move multiple selected anchors together"],applyPresetShape:"Apply preset shape",choosePreset:"Choose preset…",square:"Square",star:"Star",applyPreset:"Apply preset",clearAnchors:"Clear anchors",panelHint:"Use the buttons above to create a scene object"},zO={title:"Modifiers",reset:"Reset modifiers",damping:"Damping",enableNoise:"Enable movement noise",strength:"Strength",noiseRange:"Wander range",noiseSpeed:"Time speed",noiseHint:"Strength controls influence · Wander range controls maximum offset · Time speed controls variation rate",enableGravity:"Enable gravity",gravityStrength:"Gravity strength",strengthMin:"Strength min",strengthMax:"Strength max",direction:"Direction",gravityOverLife:"Gravity over lifetime",windOverLife:"Wind over lifetime",axisStrength:"Y: strength 0–1",directionHint:"0° right · -90° down · Negative strength reverses direction",enableWind:"Enable wind",windStrength:"Wind strength",enableForceField:"Enable force field",centerX:"Center X",centerY:"Center Y",forceStrength:"Force strength",forceRadius:"Force radius",falloffMode:"Falloff",constant:"Constant",linearFalloff:"Linear (zero at edge)",inverseFalloff:"Inverse distance (strongest at center)",forceHint:"Positive attracts · Negative repels · Drag the force circle on the canvas",showShape:"Show shape",enableVortex:"Enable vortex",vortexHint:"Positive counter-clockwise · Negative clockwise",enableAttraction:"Enable attraction",attractionX:"Attraction point X",attractionY:"Attraction point Y",attractionRadius:"Arrival radius",attractionDuration:"Attraction duration",delay:"Delay",delayMode:"Delay mode",globalTime:"Global time",particleLife:"Per particle life",attractionPath:"Attraction path",straight:"Straight",attractionHint:"Starts attraction after the delay · Dies on reaching the red radius · Drag the attraction circle on the canvas",enableTrail:"Enable trail",trailImages:"Trail Images",addTrailImage:"Add trail image resource",trailRotation:"Rotation",trailBones:"Trail bones",trailRatio:"Trail ratio (%)",trailLength:"Trail length",randomRange:"Random range",lengthRatio:"Length ratio (%)",lengthMin:"Length min (%)",lengthMax:"Length max (%)",trailWidth:"Trail width",widthRatio:"Width ratio (%)",widthMin:"Width min (%)",widthMax:"Width max (%)",widthScale:"Width scale",followParticle:"Follow particle",lifeLengthCurve:"Length over lifetime",shapeCurve:"Shape curve (head to tail width)",colorMode:"Color mode",blendMode:"Blend mode",fixedColor:"Fixed color",alphaMode:"Opacity mode",opacity:"Opacity",gridRows:"Grid rows",gridCols:"Grid columns",trailHint:"Each particle creates a sibling trail bone group according to the resource ratio. Random length and width are fixed at birth and reproducible with the same seed.",enableFollow:"Enable emitter following",followMode:"Follow mode",noFollow:"None",followPath:"Follow path",selectedBone:"Selected bone",emitterAngleMode:"Emitter angle mode",fixedAngle:"Fixed angle",followMoveDirection:"Follow movement direction",moveProgressCurve:"Movement progress curve (0→1)",moveDuration:"Move duration (s)",followSpace:"Follow space",localSpace:"Local space (move emitter)",worldSpace:"World space (move spawn point)",moveDirection:"Movement direction",forward:"Forward (start → end)",reverse:"Reverse (end → start)",followOffset:"Start offset (0-1)",followSpaceHint:"Local space moves the entire emitter. World space moves only the spawn point; existing particles stay in world position.",followTarget:"Follow target: ",noValidBone:"No valid bone is bound. Select a bone in the Spine hierarchy first.",rebind:"Rebind",bind:"Bind",selectedBoneLabel:"Selected bone: ",boneLocalSpace:"Local space (follow bone)",boneWorldSpace:"World space (keep particle position)",offsetX:"Position offset X",offsetY:"Position offset Y",rotationOffset:"Rotation offset",scaleOffsetX:"Scale offset X",scaleOffsetY:"Scale offset Y",boneFollowHint:"The emitter follows only the selected Spine bone position. Particle transforms use the particle system settings and offsets above.",enableCollision:"Enable collision",collisionObjects:"Collision objects",colliderDisabled:"{name} (disabled)",clearCollider:"Remove collider {name}",addCollider:"Add a scene collider",noAvailableColliders:"No colliders available",noCollidersSelected:"No collider selected. Current particles will not collide.",available:"Available",disabled:"Disabled",collisionHint:"Only enabled scene colliders added here participate in this particle system's collisions.",enableSubEmitter:"Enable sub-emitters",triggerTiming:"Choose trigger event",birth:"Birth",death:"Death",collision:"Collision",chooseTarget:"Choose target particle system",noTarget:"None (particle system)",deleteSubEmitter:"Delete this sub-emitter",probability:"Trigger probability",collisionLimit:"Collision trigger limit",inherit:"Inherit",colorInheritMode:"Color inheritance",add:"Add",replace:"Replace",addSubEmitter:"+ Add sub-emitter",inheritNone:"None (default)",inheritAll:"All attributes",inheritColor:"Color",inheritScale:"Size",inheritRotation:"Rotation",inheritLife:"Lifetime"},qO={title:"Spine Properties",name:"Spine name",xPosition:"X position",yPosition:"Y position",rotation:"Rotation",scaleX:"Scale X",scaleY:"Scale Y",startTime:"Start time",resources:"Spine Resources",chooseFolder:"Choose folder and load",folderHint:"Reads JSON / SKEL, Atlas, and all textures from the folder. Assets can still be replaced individually below.",choose:"Choose",chooseMultiple:"Choose multiple",loading:"Loading…",load:"↧ Load",clear:"Clear",supportNote:"Supports Spine 3.8 / 4.0 / 4.1 / 4.2 / 4.3 JSON · Runtime loaded on demand · Fully local",currentResource:"Current asset {version}",animations:"Spine Animations",noAnimations:"No animations available",timelineAnimation:"Timeline animation",no:"None",hierarchy:"Hierarchy",clearBoneTitle:"Click to clear bone selection",noBoneTitle:"No bone selected",clearBone:"Clear selected bone: {name}",currentBone:"Current bone: ",clearSlotTitle:"Click to clear slot selection",noSlotTitle:"No slot selected",clearSlot:"Clear selected slot: {name}",currentSlot:"Current slot: ",notSelected:"Not selected",expandAll:"Expand all",collapseAll:"Collapse all",bones:"Bones",slots:"Slots",notLoaded:"Spine not loaded",searchBones:"Search bones",searchBonesPlaceholder:"Search bone names…",clearSearch:"Clear search",clearBoneSearch:"Clear bone search",noMatchingBones:"No matching bones",expandChildren:"Expand child bones",collapseChildren:"Collapse child bones",notLoadedSlots:"Spine slots not loaded",searchSlots:"Search slots",searchSlotsPlaceholder:"Search slots or attachments…",clearSlotSearch:"Clear slot search",noMatchingSlots:"No matching slots",slotTitle:"{name} (bone: {bone}, attachment: {attachment})",empty:"Empty",textureSummary:"{count} textures: {names}",textureImages:"texture images",missingFolderAssets:"The selected folder is missing: {missing}",chooseAssets:"Select Spine data, Atlas, and all texture images"},KO={title:"Help",subtitle:"Quick start from creating particles to saving and exporting",close:"Close help",closeShort:"Close (Esc)",quickStart:"Quick Start",stepCreate:"Create objects: use + Particle / + Collider / + Path / + Spine in Scene Objects.",stepEdit:"Edit particles: select a particle system, then adjust Emission → Emitter Shape → Particle Attributes → Appearance & Resources → Modifiers.",stepPreview:"Preview: play, pause, step, or scrub on the timeline. Parameter changes are recalculated automatically.",stepExport:"Save and export: Save Config keeps the project; Export Spine JSON / images ZIP / .spine package produces the deliverable.",quickNote:"Reset beside each section restores that section's defaults. Settings are saved automatically in this browser.",commonOps:"Common Actions",eye:"Visibility",eyeDesc:"Show or hide an object independently. Hidden particle systems are not exported.",copyDesc:"Duplicate the selected object for parameter comparisons.",backgroundDesc:"Upload a reference image and adjust its position and opacity for canvas preview only.",settingsDesc:"Manage layout, canvas guides, tick display, and other editor settings.",undoDesc:"Ctrl+Z undoes one step. The maximum history size is configurable.",spineBoneDesc:"Search and select bones in the hierarchy for emitter following.",shortcuts:"Shortcuts",undoShortcut:"Undo",saveShortcut:"Save config",panShortcut:"Pan canvas",translateShortcut:"Move tool",rotateShortcut:"Rotate tool",scaleShortcut:"Scale tool",playShortcut:"Play / pause",startShortcut:"Go to first frame",shortcutNote:"Click the canvas before using Q / W / E / R. Single-key shortcuts are disabled while typing in inputs.",modules:"Module Guide",configTitle:"Configuration",saveConfigDesc:"Save all scene objects and parameters to a project JSON file. Ctrl+S is supported.",loadConfigDesc:"Load a local configuration and restore the complete project.",presetDesc:"Choose a preset from the dropdown. Open the dropdown to refresh the list.",configScope:"Scope",configScopeDesc:"The project includes objects and parameters. Interface settings are stored separately in the browser.",sceneTitle:"Scene Objects",particleDesc:"The core object. Set position, offset, rotation, scale, and random seed. The same seed reproduces the same result.",colliderDesc:"Circle, ellipse, rectangle, polygon, or custom shape with physics, pause, destroy, and path-following responses.",pathDesc:"Bézier path with anchors, handles, closing, color, and preset shapes.",spineDesc:"Load Spine data, Atlas, and textures; browse bones and slots, and use them for emitter following.",sceneCommonDesc:"Objects can be hidden and duplicated independently. Hidden particle systems are not exported.",emissionDesc:"Streaming, burst, delay, and three-part loop streaming with start, loop, and end sections.",burstDesc:"Emit a fixed number of particles once.",delayDesc:"Wait time before emission starts, shown at the left edge of the particle bar.",loopNote:"Loop streaming does not support bone or path following and resets those settings when enabled.",shapeDesc:"Point, circle, rectangle, cone, or path spawn areas. Circle/cone use inner and outer radii; rectangles use inner and outer dimensions.",angleDesc:"Fixed, random, radial, path normal, or path tangent.",initialDesc:"Life, speed, scale, and rotation support fixed, random, and curve modes. Rotation can follow emission direction.",overLifeDesc:"Speed, scale, and rotation can be controlled by lifetime curves.",alphaDesc:"Opacity can be fixed or curved. Curve mode can follow export, linear, or Bézier.",imageDesc:"Single images or sequence frames, weighted image selection, pivots, colors, blend modes, and independent opacity.",sequenceDesc:"Playback can hide after one pass, hold the last frame, loop forward, or loop in reverse.",noiseDesc:"Adds movement noise with strength, range, and speed controls.",gravityDesc:"Gravity, wind, and lifetime strength curves.",forceDesc:"Global force field, vortex, attraction, and collision.",trailDesc:"Independent trail resources with bones, length, width, shape, color, and opacity curves.",followDesc:"The emitter can follow a path or a Spine bone.",collisionDesc:"Choose scene colliders and particle collision response.",exportDesc:"Configure image path, Spine version, keyframe curves, FPS, frame alignment, bone pool, and empty animations.",exportButtonsDesc:"Export Spine JSON, an images ZIP, or a complete .spine project through the connector.",connectorTitle:"Spine Connector",connectorIntro:"The connector sends generated JSON and images to a locally installed and activated Spine editor and converts them into an editable .spine project.",prerequisite:"Requirements",prerequisiteDesc:"Install and activate Spine, then start the desktop connector.",download:"Download",webSide:"Website",webSideDesc:"When the connector reports ready, click Export .spine package.",authorization:"First authorization",authorizationDesc:"Approve the website origin once. The connector stores the local allowlist.",pathSetup:"Application path",pathSetupDesc:"The connector detects Spine automatically. Set the application path manually if detection fails.",downloadResult:"Output",downloadResultDesc:"The downloaded ZIP contains the .spine project and image folder.",version:"Version",versionDesc:"The connector matches Spine 3.8–4.3 from the JSON version.",security:"Security",securityDesc:"The connector listens only on the local machine and deletes temporary conversion files.",differenceTitle:"Config vs. export",differenceDesc:"Save Config preserves editable objects and parameters. Export Spine JSON includes only visible particle systems and bakes collisions, following, trails, and sub-emitters into editable animation data."},JO={confirmLoopFollowEnter:"Enabling loop stream disables particle following and resets its settings. Continue?",confirmLoopFollowExit:"Leaving loop stream disables particle following and resets its settings. Continue?",invalidJson:"The configuration file is not valid JSON",invalidConfigFormat:"This is not a SpineParticle editor configuration",unsupportedConfigVersion:"Unsupported configuration version: {version}",missingScene:"The configuration is missing complete scene data",missingEmbeddedSpine:"The configuration does not contain reusable Spine source assets",chooseJsonConfig:"Choose a .json configuration file",settingsInvalidJson:"The cached settings are not valid JSON",settingsFormat:"This is not a SpineParticle settings cache",settingsVersion:"Unsupported settings version: {version}",settingsMissing:"The settings cache is missing settings",noExportableImages:"The visible particle systems have no exportable images",invalidZipPath:"Invalid ZIP file path",spineFileType:"Spine data must be .json or .skel",atlasFileType:"Atlas files must use .atlas",chooseTexture:"Choose at least one texture image",binaryParseFailed:"Spine binary parsing failed (4.3: {v43}; legacy: {v42})",invalidSpineJson:"Invalid Spine JSON format",unsupportedSpineJsonVersion:"Unsupported Spine JSON version. Supported versions: {versions}",unsupportedSpineDataVersion:"Unsupported Spine data version. Supported versions: {versions}",embeddedReadFailed:"Unable to read embedded Spine file: {name}",missingImageWarning:"Image “{file}” is missing or has unreadable dimensions. Its path was kept.",missingTrailImageWarning:"Trail image “{file}” is missing. Its path was kept.",emptyCacheWarning:"“{name}” has no baked frame cache.",readExportImageFailed:"Unable to read export image: {name}",connectorOffline:"Local Spine connector was not detected. Start the connector first.",connectorHttpError:"Spine connector returned HTTP {status}",invalidTrailUV:"Trail mesh “{name}” has invalid UV data",missingTrailVertices:"Trail mesh “{name}” has no vertex data",trailIndexOutOfRange:"Trail mesh “{name}” has an out-of-range triangle index",invalidTrailHull:"Trail mesh “{name}” has an invalid hull size",trailHullIndexOutOfRange:"Trail mesh “{name}” has an out-of-range hull edge index",invalidInfluenceCount:"Trail mesh “{name}” has an invalid bone influence count",missingBoneReference:"Trail mesh “{name}” references a missing bone",invalidWeight:"Trail mesh “{name}” contains invalid weights",weightSum:"Trail mesh “{name}” vertex weights do not sum to 1",vertexCountMismatch:"Trail mesh “{name}” vertex count does not match its UV count",invalidInherit:"Bone “{name}” has inherit value “{inherit}” incompatible with Spine {version} JSON",trailBoneParent:"Trail bone “{name}” must be a direct child of the particle system bone, not a bone chain",trailSlotEmpty:"Weighted trail slot “{name}” cannot use an empty attachment. Hide the bones with zero scale instead.",spine38Version:"Spine 3.8 export must identify its version as 3.8",spine38Inherit:"Spine 3.8 bone “{name}” must use transform instead of inherit",spine38SlotColor:"Spine 3.8 slot color timelines must use color / twoColor",spine38AttachmentName:"Spine 3.8 hidden attachment frames must explicitly write name: null",spine38RotationAngle:"Spine 3.8 rotation timelines must use angle",spine38Curve:"Spine 3.8 does not support Spine 4.x array curves",unsupportedExportVersion:"Unsupported export version. Supported Spine versions: {versions}",exportVersionMismatch:"Export version mismatch: expected Spine {expected}, JSON reports Spine {actual}",exportMissingBones:"Export result contains no bones",missingAtlasTexture:"Atlas texture was not selected: {name}"},ZO={app:IO,language:PO,common:RO,toolbar:kO,settings:FO,config:LO,presets:OO,curve:$O,gradient:NO,attributeControl:DO,pivot:BO,image:UO,timeline:VO,emission:XO,attributes:YO,appearance:GO,renderLayer:HO,export:{title:"Export Settings",reset:"Reset export settings",imagesPath:"Image path (Spine Images Path)",spineVersion:"Spine version",keyframeCurve:"Keyframe interpolation",linear:"Linear",smoothBezier:"Smooth Bézier",bezierHelp:"Smooth Bézier fits continuous motion within the error tolerance; birth, death, attachment changes, and jumps still use stepped keys.",spine38Help:"Spine 3.8 does not support per-channel array Bézier curves. Export converts them to tolerance-reduced piecewise linear keys.",fps:"Export FPS",omitFps:"Omit fps",fpsHelp:"Changing FPS preserves real animation duration. “Omit fps” only removes the Spine fps metadata.",integerFrames:"Integer frame alignment",bonePool:"Bone object pool",excludeEmpty:"Exclude empty animations",baking:"Recalculating and baking animation",exportJsonTitle:"Export Spine {version} JSON",preparing:"Preparing export…",exportJson:"Export Spine JSON",exportImagesTitle:"Download the images used by the current particle systems as a ZIP",organizingImages:"Collecting images…",exportImages:"Export images ZIP",generatingProject:"Generating project…",exportSpine:"Export .spine package",authorize:"Authorize this site",authorizeTitle:"Authorize this site in the local connector",refreshConnector:"Check connector again",refresh:"Refresh",recalculating:"Recalculating particle animation…",exported:"Exported Spine {version}: {systems} particle systems, {animations} animations, {bones} bones{warning}",resourceWarning:"; {count} resource warnings (export continued without missing images)",timeout:"Baking timed out. Ensure the page is still running and try again.",preparingProject:"Collecting images and calling local Spine…",projectExported:"Generated {fileName}: .spine project with {images} images, Spine {version}",collectingImages:"Collecting images used by the current particle systems…",imagesExported:"Generated {fileName}: {images} images in {folder}/",connectorChecking:"Checking the local Spine connector…",connectorOffline:"Local Spine connector is not running",spineNotFound:"Connector is running, but Spine was not found",notAuthorized:"Connector is running, but this site is not authorized",connectorReady:"Connector available · Spine ready",connectorBusy:"Recalculating and generating the Spine project",connectorGenerate:"Generate a Spine {version} project with the local Spine",unknown:"Unknown",checking:"Checking",offline:"Offline",notFound:"Spine not found",unauthorized:"Not authorized",projectTransferTitle:"Export Spine Package",projectTransferDetail:"Recalculating particle animation…",projectTransferDownload:"Spine project download started",generatingJson:"Generating Spine JSON…",preparingProjectFiles:"Preparing project images…",uploading:"Uploading data to the Spine connector…",spineProcessing:"Spine is converting the project…",downloadingProject:"Downloading the generated Spine project…",handingToBrowser:"Starting browser download…"},transfer:jO,scene:WO,modifiers:zO,spine:qO,help:KO,errors:JO},QO={title:"Spine粒子编辑器-Yeomai",resizeTimeline:"拖动调整时间轴高度",systems:"系统",particlesBones:"粒子(骨骼)",rootBone:"根骨骼",hudTip:"滚轮缩放 · 左键拖动画布"},e$={label:"语言",zhCN:"中文",en:"English"},t$={close:"关闭",reset:"重置",add:"添加",remove:"移除",delete:"删除",clear:"清除",cancel:"取消",confirm:"确定",none:"无",enabled:"启用",disabled:"禁用",fixed:"固定",random:"随机",curve:"曲线",followExport:"跟随导出",linear:"线性",bezier:"贝塞尔",above:"之上",below:"之下",left:"左侧",right:"右侧",seconds:"秒",frames:"帧"},i$={settings:"系统设置",undo:"撤回上一步 (Ctrl+Z)",pan:"拖动画布 (Q)",translate:"位移 (W)",rotate:"旋转 (E)",scale:"缩放 (R)",zoomIn:"放大",zoomOut:"缩小",fitView:"适配画布",toggleGrid:"切换网格",resetView:"重置视图",background:"背景图",backgroundSettings:"背景图显示设置",changeBackground:"更换图像",uploadBackground:"上传图像",clearBackground:"清除背景",noBackground:"未上传图像",backgroundX:"背景图 X 偏移",backgroundY:"背景图 Y 偏移",backgroundOpacity:"背景图透明度",opacity:"透明度",help:"使用说明",openHelp:"查看使用说明"},n$={title:"系统设置",layout:"界面布局",parameterPanelPosition:"参数面板位置",panelOnRight:"参数面板显示在右侧",history:"操作历史",maxUndo:"最大撤回步数",canvasGuides:"画布辅助显示",emitter:"发射点",bones:"骨骼连线",bonePointSize:"骨骼点绘制大小",boneAxisSize:"坐标轴绘制大小",skinMesh:"蒙皮网格",enableTicks:"启用刻度",tickFontSize:"刻度文字大小",tickWidth:"刻度线粗细",axisColor:"坐标轴颜色",showAxisLabels:"显示刻度数值",cacheNote:"整个系统设置会自动保存到当前浏览器"},s$={title:"配置管理",save:"保存配置",saveTitle:"保存全部编辑器配置 (Ctrl+S)",load:"加载配置",loadTitle:"加载本地编辑器配置",presets:"预设列表",selectPreset:"选择预设",noPresets:"无预设文件",saved:"配置已保存到本地",loading:"正在加载配置…",loaded:"已加载:{name}",presetLoading:"正在加载预设…",presetLoaded:"已加载预设:{name}",presetNamingError:"{message},请检查预设文件命名",presetTransferTitle:"加载预设",presetDownloading:"正在下载 {file}…",presetParsing:"正在解析预设配置…",presetRestoring:"正在解析并恢复预设资源…",presetComplete:"预设加载完成",presetListError:"无法读取预设列表",presetReadError:"无法读取预设:{file}"},r$={particleSweep:"1.粒子扫过",barBlocks:"2.长条方块",forceTrail:"3.力场拖尾",lightningSequence:"4.雷电序列帧",texturePivot:"5.贴图轴点",subEmitter:"6.子发射器"},o$={bezierHint:"拖动方形手柄调整弧度 · 双击空白新建 · 双击节点删除",linearHint:"双击空白新建 · 双击节点删除 · 拖动节点调整",resetTitle:"恢复默认曲线"},a$={addTitle:"双击色带添加色标",color:"色标颜色",colorValue:"色标颜色值",position:"色标位置",addMiddle:"在中间新增颜色",delete:"删除当前色标",hint:"双击色带新增 · 拖动色标调整位置 · 双击色标删除"},l$={angleOffset:"角度偏移",value:"数值",lower:"下限",upper:"上限",rangeLower:"范围下限",rangeUpper:"范围上限",curveInput:"曲线输入 →",direction:"发射方向"},c$={title:"贴图轴点",zoomOut:"缩小",zoomIn:"放大",expand:"放大到全屏操作",interaction:"左键点击/拖动设置轴点 · 右键拖动画布 · 滚轮缩放",previewAlt:"轴点预览",noImage:"未选择图片",resetCenter:"复位居中 (50%, 50%)",coordinates:"轴点坐标(%)",rotationTest:"轴心旋转测试",static:"静止",spin:"自转",swing:"摆动",rotationAlt:"旋转测试",topLeft:"左上",top:"正上",topRight:"右上",left:"正左",center:"正中",right:"正右",bottomLeft:"左下",bottom:"正下·底部",bottomRight:"右下"},h$={chooseSequence:"选择序列帧图片",chooseLocal:"选择本地图片",subfolder:"子文件夹",name:"名称",restore:"恢复 {name}",deleteResource:"删除图片资源",imageMode:"图片模式",fixed:"固定",sequence:"序列帧",playbackMode:"播放模式",onceHide:"单次-尾帧消失",onceHold:"单次-尾帧固定",loopForward:"正向循环",loopReverse:"反向循环",playbackFps:"播放帧率",chooseSequenceMulti:"选择序列帧(多选)",weight:"占比%",unlockWeight:"解除占比锁定",lockWeight:"锁定当前占比",pivot:"贴图轴点",collapsePivot:"收起轴点调整",expandPivot:"展开轴点调整",pivotModal:"贴图旋转轴点大图精修",pivotModalDesc:"在下方贴图上任意点击或拖拽,精确设置粒子的旋转/摆动中心",pivotZoomHint:"支持 100% ~ 400% 放大,精确对准尖端或根部:",confirmPivot:"确定并保存轴点",noSequence:"未选择序列帧",firstFrame:"第 1 帧",firstImage:"第一张图片",lastImage:"最后一张图片",pivotOn:"已开启:X {x}% | Y {y}%",pivotOff:"未开启,默认围绕图片正中心 (50%, 50%)",pivotCustom:"轴点已自定义:X {x}% | Y {y}%",frameCountOne:"1 帧 · {name}",frameCountMany:"{count} 帧 · {first} → {last}",sequenceSelected:"已选择 {count} 帧,按 {first}-{last} 顺序播放"},u$={play:"播放 (D)",pause:"暂停 (D)",toStart:"回到第一帧 (S)",previous:"前一帧",next:"后一帧",toEnd:"移动到最后一帧",continuousLoop:"持续循环播放",abLoop:"独立 A/B 区间循环",abLoopShort:"AB 循环",abRange:"AB 循环区间",playbackStart:"自定义播放起始帧",playbackEnd:"自定义播放结束帧",startFrame:"播放起始帧",endFrame:"播放结束帧",frame:"帧",emission:"持续发射",particleLife:"粒子存在",spineAnimation:"Spine 动画",ownerAnimation:"所属动画",setOwnerAnimation:"设置当前粒子系统所属的动画",chooseOwnerAnimation:"选择所属动画",animationName:"动画名称",renameAnimation:"重命名当前动画",rename:"重命名",newAnimation:"+ 新增",keepOneAnimation:"至少需要保留一个动画",spinePreview:"Spine 预览动画",noSpineAnimation:"无可用 Spine 动画",none:"无",systemName:"系统 {index}",dragLoopDuration:"拖动循环段时长",dragEmissionDuration:"拖动持续发射时长",dragSpineStart:"拖动调整动画开始时间",noAnimationData:"暂无可显示的动画数据",animationNameEmpty:"动画名称不能为空",animationNameDuplicate:"动画名称不能重复",animationRenameFailed:"无法修改动画名称",zoomIn:"放大",zoomOut:"缩小",zoomFit:"适中",frameStatus:"帧 {current} / {total}"},d$={title:"发射模式",reset:"重置发射模式参数",stream:"持续",burst:"爆发",normalStream:"常规持续",loopStream:"循环持续",rate:"发射速率",duration:"发射时长",loopDuration:"发射时长 (f)",generateStart:"生成开始循环动画",generateEnd:"生成结束循环动画",customDuration:"指定时长",auto:"自动 {frames}f",startLoopDuration:"开始循环段时长",endLoopDuration:"结束循环段时长",loopWarning:"循环持续模式不支持骨骼跟随和路径跟随;进入或退出时会将粒子跟随设置恢复默认值。",burstCount:"单次数量",delay:"延迟时间",shapeTitle:"发射器形状",shapeReset:"重置发射器形状参数",shape:"形状",point:"点",circle:"圆形",rect:"矩形",cone:"锥形",path:"路径",innerDiameter:"内径",outerDiameter:"外径",innerRadius:"内半径",outerRadius:"外半径",coneDirection:"锥形朝向",coneAngle:"锥形开口角度",innerWidth:"内宽",innerHeight:"内高",outerWidth:"外宽",outerHeight:"外高",selectPath:"选择路径",noPath:"无路径(点发射)",birthDistribution:"出生分布",evenDistribution:"等间距固定分布",randomDistribution:"随机分布",emissionAngle:"发射角度",radial:"径向(中心向外)",pathNormal:"垂直于路径",pathTangent:"沿路径方向",fixedAngle:"固定角度",baseAngle:"基准角度",randomRange:"随机范围",showShape:"显示形状"},f$={title:"粒子属性",reset:"重置粒子属性参数",initialParams:"粒子初始参数",initialLife:"初始生命周期",randomSample:"随机采样 →",initialSpeed:"初始速度",initialScale:"初始缩放",uniform:"统一",separateXY:"XY分离",scaleX:"缩放 X",scaleY:"缩放 Y",initialRotation:"初始旋转",lifecycleTitle:"粒子生命周期变化参数",speedOverLife:"生命周期内速度",speedMultiplier:"速度倍率",lifeTo:"生命周期 →",scaleOverLife:"生命周期内缩放",scaleMultiplier:"缩放倍率",multiplierX:"倍率 X",multiplierY:"倍率 Y",rotationOverLife:"生命周期内旋转",rotationSpeed:"旋转速度"},m$={title:"外观与资源",reset:"重置外观与资源参数",opacity:"透明度",curveMode:"曲线模式",transparent:"0(透明)",opaque:"1(不透明)",renderLayer:"渲染层级(Spine 插槽)",top:"最上层",spineSlot:"Spine 插槽",selectSpine:"请选择 Spine",noSpine:"无可用 Spine",noSlot:"尚未选择插槽",reselect:"重新选择",selectSlot:"选择插槽",searchSlots:"搜索插槽或附件名称…",searchSlotsAria:"搜索插槽",emptySlot:"空插槽",noMatchingSlots:"没有匹配的插槽",above:"在此插槽图片之上",below:"在此插槽图片之下",followAttachment:"随插槽附件显隐",previewOnly:"调整显示层级只影响编辑器预览,不影响导出数据。",imageResources:"图片资源",addImage:"新增图片资源",scale:"缩放",color:"颜色",fixedColor:"固定色",randomColor:"随机颜色",lifetime:"生命周期",normal:"正常",add:"相加",multiply:"相乘",screen:"滤色",fixedColorValue:"固定颜色值",randomColorHint:"每个粒子出生时从色带随机取色,生命周期内保持不变",independentAlpha:"独立透明度",off:"关闭"},p$={slotLabelAbove:"{spine} / {slot} · 图片之上",slotLabelBelow:"{spine} / {slot} · 图片之下",resolvedAbove:"渲染在 {slot} 图片之上、其后插槽之下",resolvedBetween:"渲染在 {previous} 与 {slot} 之间",warningNoSpine:"没有已加载的 Spine,粒子临时显示在最上层。",warningNoSelection:"尚未选择 Spine,粒子临时显示在最上层。",warningMissingSpine:"目标 Spine 不存在,粒子临时显示在最上层。",warningNotReady:"目标 Spine 未就绪,粒子临时显示在最上层。",warningMissingSlot:"目标插槽不存在(资源可能已更换),粒子临时显示在最上层。",warningFirstSlot:"这是第一个插槽,无法显示在其下方,粒子临时显示在最上层。"},g$={completed:"已完成",failed:"操作失败"},v$={title:"场景对象",addParticle:"添加粒子系统",addParticleShort:"+粒子",addCollider:"添加碰撞体",addColliderShort:"+碰撞",addPath:"添加路径",addPathShort:"+路径",addSpine:"添加 Spine",copyTitle:"复制当前选中的场景对象",showParticle:"显示粒子系统",hideParticle:"隐藏粒子系统",showCollider:"显示碰撞体",hideCollider:"隐藏碰撞体",showPath:"显示路径",hidePath:"隐藏路径",showSpine:"显示 Spine",hideSpine:"隐藏 Spine",particle:"粒子",subEmitter:"子发射器",collision:"碰撞",path:"路径",deleteParticle:"删除粒子系统",deleteCollider:"删除碰撞体",deletePath:"删除路径",deleteSpine:"删除 Spine",empty:"场景中暂无对象",name:"名称",positionX:"位置X",positionY:"位置Y",offsetX:"偏移X",offsetY:"偏移Y",rotation:"旋转",scaleX:"缩放X",scaleY:"缩放Y",seed:"随机种子",seedTitle:"控制粒子系统内全部随机属性、资源选择与修改器随机采样",randomizeSeed:"生成新的全局随机种子",seedHint:"控制初始随机参数、资源选择和修改器随机采样;相同种子可复现相同效果",colliderTitle:"碰撞体属性",colliderName:"碰撞体名称",type:"类型",circle:"圆形",ellipse:"椭圆",rect:"矩形",polygon:"多边形",custom:"自定义",enabled:"启用",xPosition:"X 位置",yPosition:"Y 位置",scaleXShort:"缩放 X",scaleYShort:"缩放 Y",radius:"半径",radiusX:"X 半径",radiusY:"Y 半径",width:"宽度",height:"高度",sides:"边数",collisionResponse:"碰撞响应",physics:"物理(弹跳/摩擦)",pause:"暂停(停止不动)",destroy:"消失(立即销毁)",elasticity:"弹性 (0-1)",friction:"摩擦 (0-1)",followPath:"跟随路径移动",targetPath:"目标路径",notSelected:"(未选择)",moveDuration:"移动时长(秒)",followDirection:"方向沿路径",moveProgressCurve:"移动进度曲线",moveProgressHelp:"横轴:实时/移动时长 纵轴:路径进度(0=起点 → 1=终点)",pathTitle:"路径属性",pathName:"路径名称",closedPath:"闭合路径",pathColor:"路径颜色",pathHelp:"操作说明:",pathHelpItems:["双击空白处/曲线:新建锚点","双击锚点:删除节点","双击第二下按住拖动:新建并拉出手柄","拖动锚点移动位置,拖动手柄调整曲线","Shift+拖动手柄:两侧完全对称","Alt+拖动手柄:独立控制单侧","Ctrl+点击/框选:加选节点","Alt+点击/框选:减选节点","Alt+单击空白处:清除全部选中","选中多个节点后可整体拖动"],applyPresetShape:"应用预设形状",choosePreset:"选择预设...",square:"方形",star:"星形",applyPreset:"应用预设",clearAnchors:"清空锚点",panelHint:"使用右上角按钮创建场景对象"},y$={title:"修改器",reset:"重置修改器参数",damping:"阻尼",enableNoise:"开启移动噪声",strength:"强度",noiseRange:"波动范围",noiseSpeed:"时间流速",noiseHint:"强度控制影响比例 · 波动范围控制最大偏移 · 时间流速控制变化速度",enableGravity:"开启重力",gravityStrength:"重力强度",strengthMin:"强度 min",strengthMax:"强度 max",direction:"方向",gravityOverLife:"生命周期内重力",windOverLife:"生命周期内风力",axisStrength:"纵轴:强度 0~1",directionHint:"0° 向右 · -90° 向下 · 负强度会反转方向",enableWind:"开启风力",windStrength:"风力强度",enableForceField:"开启力场",centerX:"中心 X",centerY:"中心 Y",forceStrength:"力场强度",forceRadius:"力场半径",falloffMode:"衰减模式",constant:"恒定(范围内力度不变)",linearFalloff:"线性衰减(边缘为 0)",inverseFalloff:"距离反比(中心最强)",forceHint:"正数吸向中心 · 负数向外排斥 · 可在画布内拖动力场圆",showShape:"显示形状",enableVortex:"开启漩涡",vortexHint:"正数逆时针 · 负数顺时针",enableAttraction:"开启吸附",attractionX:"吸附点 X",attractionY:"吸附点 Y",attractionRadius:"吸附半径",attractionDuration:"吸附时长",delay:"延迟时间",delayMode:"延迟方式",globalTime:"统一时间",particleLife:"单粒子生命",attractionPath:"吸附方式",straight:"直线",attractionHint:"延迟后从当前位置开始吸附 · 到达红色范围即死亡 · 可在画布内拖动吸附圆",enableTrail:"开启拖尾",trailImages:"拖尾独立图片",addTrailImage:"增加拖尾图片资源",trailRotation:"旋转",trailBones:"拖尾骨骼数",trailRatio:"拖尾比例 (%)",trailLength:"拖尾长度",randomRange:"随机范围",lengthRatio:"长度比例 (%)",lengthMin:"长度最小 (%)",lengthMax:"长度最大 (%)",trailWidth:"拖尾宽度",widthRatio:"宽度比例 (%)",widthMin:"宽度最小 (%)",widthMax:"宽度最大 (%)",widthScale:"宽度缩放",followParticle:"跟随粒子",lifeLengthCurve:"生命周期长度曲线",shapeCurve:"形状曲线(首端 → 尾端宽度)",colorMode:"颜色模式",blendMode:"混合模式",fixedColor:"固定颜色",alphaMode:"透明度模式",opacity:"透明度",gridRows:"网格行数",gridCols:"网格列数",trailHint:"每个粒子按资源比例生成一组同级拖尾骨骼;随机长度与宽度在粒子出生时确定,相同种子可稳定复现",enableFollow:"开启发射器跟随",followMode:"跟随模式",noFollow:"无",followPath:"跟随路径",selectedBone:"选中的骨骼",emitterAngleMode:"发射器角度模式",fixedAngle:"固定角度",followMoveDirection:"跟随移动方向",moveProgressCurve:"移动进度曲线 (0→1)",moveDuration:"移动时长 (s)",followSpace:"跟随空间",localSpace:"局部空间(GEN 移动)",worldSpace:"世界空间(粒子生成点移动)",moveDirection:"移动方向",forward:"正向(起点 → 终点)",reverse:"反向(终点 → 起点)",followOffset:"偏移起始点 (0-1)",followSpaceHint:"局部空间会移动整个发射器;世界空间只移动新粒子的生成点,已出生粒子留在世界位置。",followTarget:"跟随目标:",noValidBone:"尚未绑定有效骨骼,请先在 Spine 层级树中选择骨骼。",rebind:"重新绑定",bind:"绑定",selectedBoneLabel:"当前选中骨骼:",boneLocalSpace:"本地空间(随骨骼移动)",boneWorldSpace:"世界空间(粒子生成后保持位置)",offsetX:"位移偏移 X",offsetY:"位移偏移 Y",rotationOffset:"旋转偏移",scaleOffsetX:"缩放偏移 X",scaleOffsetY:"缩放偏移 Y",boneFollowHint:"发射器只跟随所选 Spine 骨骼的位置,不继承 Spine 的旋转或缩放;粒子变换使用粒子系统自身参数和上方偏移。",enableCollision:"开启碰撞",collisionObjects:"参与的碰撞对象",colliderDisabled:"{name}(碰撞体已禁用)",clearCollider:"清除碰撞对象 {name}",addCollider:"加入场景碰撞对象",noAvailableColliders:"没有可加入的碰撞对象",noCollidersSelected:"未选择碰撞对象,当前粒子不会发生碰撞",available:"可用",disabled:"已禁用",collisionHint:"只有已加入且启用的场景碰撞对象会参与当前粒子系统的碰撞",enableSubEmitter:"开启子发射器",triggerTiming:"选择触发时机",birth:"出生",death:"死亡",collision:"碰撞",chooseTarget:"选择目标粒子系统",noTarget:"无(粒子系统)",deleteSubEmitter:"删除该子发射器",probability:"发射概率",collisionLimit:"碰撞次数限制",inherit:"继承",colorInheritMode:"颜色继承方式",add:"相加",replace:"覆盖",addSubEmitter:"+ 新增子发射器",inheritNone:"无(默认值)",inheritAll:"所有属性",inheritColor:"颜色",inheritScale:"大小",inheritRotation:"旋转",inheritLife:"生命周期"},b$={title:"Spine 属性",name:"Spine 名称",xPosition:"X 位置",yPosition:"Y 位置",rotation:"旋转",scaleX:"Scale X",scaleY:"Scale Y",startTime:"开始时间",resources:"Spine 资源",chooseFolder:"选择文件夹并加载",folderHint:"一次读取文件夹中的 JSON / SKEL、Atlas 和全部纹理;仍可在下方单独替换资源。",choose:"选择",chooseMultiple:"选择(多选)",loading:"加载中…",load:"↧ 加载",clear:"清除",supportNote:"支持 Spine 3.8 / 4.0 / 4.1 / 4.2 / 4.3 JSON · 对应版本运行时按需加载 · 本地离线",currentResource:"当前资源 {version}",animations:"Spine 动画",noAnimations:"无可用动画",timelineAnimation:"时间轴播放动画",no:"无",hierarchy:"层级树",clearBoneTitle:"点击清除骨骼选择",noBoneTitle:"当前未选择骨骼",clearBone:"清除选中骨骼:{name}",currentBone:"当前骨骼:",clearSlotTitle:"点击清除插槽选择",noSlotTitle:"当前未选择插槽",clearSlot:"清除选中插槽:{name}",currentSlot:"当前插槽:",notSelected:"未选择",expandAll:"全部展开",collapseAll:"全部折叠",bones:"骨骼",slots:"插槽",notLoaded:"未加载 Spine",searchBones:"搜索骨骼",searchBonesPlaceholder:"搜索骨骼名称…",clearSearch:"清空搜索",clearBoneSearch:"清空骨骼搜索",noMatchingBones:"未找到匹配的骨骼",expandChildren:"展开子骨骼",collapseChildren:"折叠子骨骼",notLoadedSlots:"未加载 Spine 插槽",searchSlots:"搜索插槽",searchSlotsPlaceholder:"搜索插槽或附件名称…",clearSlotSearch:"清空插槽搜索",noMatchingSlots:"未找到匹配的插槽",slotTitle:"{name}(骨骼:{bone},附件:{attachment})",empty:"空",textureSummary:"{count} 张:{names}",textureImages:"纹理图片",missingFolderAssets:"所选文件夹缺少:{missing}",chooseAssets:"请依次选择 Spine 数据、Atlas 和全部纹理图片"},x$={title:"使用说明",subtitle:"从创建粒子到保存、导出的快速入门",close:"关闭使用说明",closeShort:"关闭 (Esc)",quickStart:"快速开始",stepCreate:"创建对象:在左侧“场景对象”中用 +粒子 / +碰撞 / +路径 / +Spine 添加场景对象。",stepEdit:"编辑粒子:选中粒子系统,依次调整“发射模式 → 发射器形状 → 粒子属性 → 外观与资源 → 修改器”。",stepPreview:"查看效果:底部时间轴可播放、暂停、逐帧或拖动;修改参数后会自动重新计算。",stepExport:"保存与导出:用“保存配置”保留工程;“导出 Spine Json / images 包 / .spine 包”输出成品。",quickNote:"每个模块组标题右侧的“重置”可恢复该组默认参数;系统设置会自动保存在当前浏览器。",commonOps:"常用操作",eye:"小眼睛",eyeDesc:"单独显示/隐藏对象;隐藏的粒子系统不会被导出。",copyDesc:"完整复制当前选中对象,方便对比不同参数。",backgroundDesc:"上传参考图并调整位置和透明度,只用于画布预览。",settingsDesc:"管理界面布局、辅助显示、刻度等,自动存入浏览器。",undoDesc:"Ctrl+Z 撤回一步;最大步数可在系统设置中调整。",spineBoneDesc:"在层级树搜索并选择骨骼,可用于粒子发射器跟随。",shortcuts:"快捷键",undoShortcut:"撤回上一步",saveShortcut:"保存配置",panShortcut:"拖动画布",translateShortcut:"位移工具",rotateShortcut:"旋转工具",scaleShortcut:"缩放工具",playShortcut:"播放 / 暂停",startShortcut:"回到第一帧",shortcutNote:"Q / W / E / R 需先点击画布;光标位于输入框时,单键快捷键不会触发。",modules:"功能模块详解",configTitle:"配置管理",saveConfigDesc:"把当前全部场景对象和参数保存为工程 JSON 文件(也支持 Ctrl+S)。",loadConfigDesc:"选择本地配置文件,恢复完整工程。",presetDesc:"从下拉中选择预设快速套用;点击下拉刷新列表。",configScope:"范围",configScopeDesc:"配置包含对象与参数;界面和系统设置单独存于浏览器。",sceneTitle:"场景对象",particleDesc:"核心对象。可设置位置、偏移、旋转、缩放和随机种子;相同种子可复现相同效果。",colliderDesc:"圆形/椭圆/矩形/多边形/自定义,支持物理弹跳、暂停、销毁,以及沿路径移动。",pathDesc:"贝塞尔路径,支持锚点、控制手柄、闭合、颜色和预设形状。",spineDesc:"加载 Spine 数据、Atlas 和纹理,浏览骨骼与插槽,并用于发射器跟随。",sceneCommonDesc:"对象可独立显隐和复制;隐藏的粒子系统不会导出。",emissionDesc:"持续发射、爆发、延迟,以及开始/循环/结束三段式循环持续。",burstDesc:"一次性发射指定数量的粒子。",delayDesc:"发射开始前的等待时间,对应粒子条左端。",loopNote:"循环持续不支持骨骼和路径跟随,切换时会恢复跟随设置。",shapeDesc:"点、圆形、矩形、锥形或路径出生区域。圆/锥支持内外半径,矩形支持内外宽高。",angleDesc:"固定、随机、径向、路径法线或路径切线。",initialDesc:"生命周期、速度、缩放和旋转支持固定、随机、曲线,旋转可跟随发射方向。",overLifeDesc:"速度倍率、缩放倍率、旋转速度可用生命周期曲线控制。",alphaDesc:"透明度支持固定或曲线;曲线模式可跟随导出、线性或贝塞尔。",imageDesc:"单图或序列帧、多图权重随机、轴点、颜色、混合模式和独立透明度。",sequenceDesc:"播放方式有单次隐藏、单次定格、正向循环、反向循环。",noiseDesc:"产生抖动轨迹,并控制强度、范围和速度。",gravityDesc:"重力、风力和生命周期强度曲线。",forceDesc:"全局力场、漩涡、吸附和碰撞。",trailDesc:"独立拖尾资源、骨骼数、长度、宽度、形状、颜色与透明度曲线。",followDesc:"发射器可跟随路径或 Spine 骨骼。",collisionDesc:"选择场景碰撞对象和粒子碰撞响应。",exportDesc:"设置图片路径、Spine 版本、关键帧曲线、FPS、整数帧、骨骼池和空动画。",exportButtonsDesc:"可导出 Spine JSON、images ZIP,或通过连接器生成 .spine 工程。",connectorTitle:"Spine 连接器使用说明",connectorIntro:"连接器把网页生成的 JSON 和图片交给本机已安装并激活的 Spine,转换成可编辑的 .spine 工程。",prerequisite:"前置",prerequisiteDesc:"电脑已安装并激活 Spine,并已启动桌面版连接器。",download:"下载",webSide:"网页端",webSideDesc:"显示“连接器可用 · Spine 已就绪”后,点击“导出 .spine 包”。",authorization:"首次授权",authorizationDesc:"首次连接需核对网站来源并允许一次;本机会保存授权白名单。",pathSetup:"路径设置",pathSetupDesc:"连接器会自动检测 Spine;找不到时可手动指定应用路径。",downloadResult:"下载结果",downloadResultDesc:"得到 ZIP 包,内含 .spine 工程和图片目录。",version:"版本",versionDesc:"连接器按 JSON 版本自动匹配 Spine 3.8~4.3。",security:"安全",securityDesc:"仅监听本机地址,授权保存在连接器,临时文件转换后清理。",differenceTitle:"配置与导出有什么区别?",differenceDesc:"“保存配置”保存全部可继续编辑的对象和参数;“导出 Spine Json”只导出显示中的粒子系统,并把碰撞、跟随、拖尾和子发射器结果烘焙为独立动画数据。"},w$={confirmLoopFollowEnter:"进入循环持续模式后,粒子跟随设置会失效并恢复默认值。是否继续?",confirmLoopFollowExit:"退出循环持续模式后,粒子跟随设置会失效并恢复默认值。是否继续?",invalidJson:"配置文件不是有效的 JSON",invalidConfigFormat:"不是 SpineParticle 编辑器配置文件",unsupportedConfigVersion:"暂不支持配置版本:{version}",missingScene:"配置文件缺少完整场景数据",missingEmbeddedSpine:"配置未包含可复用的 Spine 原始资源",chooseJsonConfig:"请选择 .json 配置文件",settingsInvalidJson:"系统设置缓存不是有效的 JSON",settingsFormat:"不是 SpineParticle 编辑器系统设置缓存",settingsVersion:"暂不支持系统配置版本:{version}",settingsMissing:"系统设置缓存缺少 settings",noExportableImages:"当前可见粒子系统没有可导出的图片",invalidZipPath:"ZIP 文件路径无效",spineFileType:"Spine 数据仅支持 .json 或 .skel",atlasFileType:"图集文件仅支持 .atlas",chooseTexture:"请至少选择一张纹理图片",binaryParseFailed:"Spine 二进制解析失败(4.3:{v43};旧版:{v42})",invalidSpineJson:"Spine JSON 文件格式无效",unsupportedSpineJsonVersion:"Spine JSON 版本不受支持,仅支持 {versions}",unsupportedSpineDataVersion:"Spine 数据版本不受支持,仅支持 {versions}",embeddedReadFailed:"无法读取内嵌 Spine 文件:{name}",missingImageWarning:"图片“{file}”缺失或尺寸不可读,已保留路径。",missingTrailImageWarning:"拖尾图片“{file}”缺失,已保留路径。",emptyCacheWarning:"“{name}”没有可用帧缓存。",readExportImageFailed:"无法读取导出图片:{name}",connectorOffline:"未检测到本地 Spine 连接器,请先启动连接器",connectorHttpError:"Spine 连接器返回错误:HTTP {status}",invalidTrailUV:"拖尾网格“{name}”的 UV 数据无效",missingTrailVertices:"拖尾网格“{name}”缺少顶点数据",trailIndexOutOfRange:"拖尾网格“{name}”的三角形索引越界",invalidTrailHull:"拖尾网格“{name}”的外轮廓数量无效",trailHullIndexOutOfRange:"拖尾网格“{name}”的外轮廓边索引越界",invalidInfluenceCount:"拖尾网格“{name}”包含无效骨骼权重数量",missingBoneReference:"拖尾网格“{name}”引用了不存在的骨骼",invalidWeight:"拖尾网格“{name}”包含无效权重数据",weightSum:"拖尾网格“{name}”的顶点权重之和不为 1",vertexCountMismatch:"拖尾网格“{name}”的顶点数量与 UV 不一致",invalidInherit:"骨骼“{name}”的 inherit 值“{inherit}”不符合 Spine {version} JSON 格式",trailBoneParent:"拖尾骨骼“{name}”必须直接挂在粒子系统骨骼下,不能组成骨骼链",trailSlotEmpty:"加权拖尾插槽“{name}”不能使用空附件,未出现或死亡阶段应将对应骨骼缩放设为 0",spine38Version:"Spine 3.8 导出的版本标识必须为 3.8",spine38Inherit:"Spine 3.8 骨骼“{name}”应使用 transform,不能使用 inherit",spine38SlotColor:"Spine 3.8 插槽颜色时间轴必须使用 color / twoColor",spine38AttachmentName:"Spine 3.8 附件时间轴的隐藏帧必须显式写入 name: null",spine38RotationAngle:"Spine 3.8 旋转时间轴必须使用 angle",spine38Curve:"Spine 3.8 不支持 4.x 数组曲线格式",unsupportedExportVersion:"导出版本不受支持,仅支持 Spine {versions}",exportVersionMismatch:"导出版本不一致:设置为 Spine {expected},JSON 标记为 Spine {actual}",exportMissingBones:"导出结果缺少骨骼",missingAtlasTexture:"Atlas 引用的纹理未选择:{name}"},S$={app:QO,language:e$,common:t$,toolbar:i$,settings:n$,config:s$,presets:r$,curve:o$,gradient:a$,attributeControl:l$,pivot:c$,image:h$,timeline:u$,emission:d$,attributes:f$,appearance:m$,renderLayer:p$,export:{title:"导出设置",reset:"重置导出设置",imagesPath:"图片路径 (Spine Images Path)",spineVersion:"Spine 版本",keyframeCurve:"关键帧插值曲线",linear:"线性 (Linear)",smoothBezier:"平滑贝塞尔 (Smooth Bézier)",bezierHelp:"平滑贝塞尔会在误差允许范围内拟合连续运动;出生、死亡、附件切换和突变仍使用阶跃关键帧。",spine38Help:"Spine 3.8 不支持 4.x 的逐通道数组贝塞尔,导出时会转换为经过容差精简的分段线性关键帧。",fps:"导出 FPS",omitFps:"不写 fps",fpsHelp:"修改 FPS 时保持动画实际秒数不变;“不写 fps”只省略 Spine 的 fps 元数据。",integerFrames:"整数帧对齐",bonePool:"骨骼对象池",excludeEmpty:"排除无内容动画",baking:"正在重新计算并烘焙动画",exportJsonTitle:"导出 Spine {version} JSON",preparing:"正在准备导出…",exportJson:"导出Spine Json",exportImagesTitle:"单独下载当前粒子系统使用的图片 ZIP",organizingImages:"正在整理图片…",exportImages:"导出 images 包",generatingProject:"正在生成工程…",exportSpine:"导出 .spine 包",authorize:"授权当前网站",authorizeTitle:"在本机连接器中授权当前网站",refreshConnector:"重新检测连接器",refresh:"刷新",recalculating:"正在重新计算粒子动画…",exported:"已导出 Spine {version}:{systems} 个粒子系统、{animations} 个动画、{bones} 根骨骼{warning}",resourceWarning:";{count} 条资源提示(缺图仍已导出)",timeout:"重新计算动画超时,请确认页面仍在运行后重试",preparingProject:"正在整理图片并调用本机 Spine…",projectExported:"已生成 {fileName}:包含 .spine 工程和 {images} 张图片,Spine {version}",collectingImages:"正在整理当前粒子系统使用的图片…",imagesExported:"已生成 {fileName}:{folder}/ 内包含 {images} 张图片",connectorChecking:"正在检测本地 Spine 连接器…",connectorOffline:"本地 Spine 连接器未启动",spineNotFound:"连接器已启动,但未找到 Spine",notAuthorized:"连接器已启动,当前网站尚未授权",connectorReady:"连接器可用 · Spine 已就绪",connectorBusy:"正在重新计算并生成 Spine 工程",connectorGenerate:"调用本机 Spine 自动生成 {version} 工程",unknown:"未知",checking:"检测中",offline:"未启动",notFound:"未找到 Spine",unauthorized:"未授权",projectTransferTitle:"导出 Spine 包",projectTransferDetail:"正在重新计算粒子动画…",projectTransferDownload:"Spine 工程包已开始下载",generatingJson:"正在生成 Spine JSON…",preparingProjectFiles:"正在整理工程图片…",uploading:"正在上传数据到 Spine 连接器…",spineProcessing:"Spine 正在转换工程,请稍候…",downloadingProject:"正在下载生成的 Spine 工程包…",handingToBrowser:"正在交给浏览器下载…"},transfer:g$,scene:v$,modifiers:y$,spine:b$,help:x$,errors:w$},f_=[{code:"zh-CN",label:"中文"},{code:"en",label:"English"}],m_="spine-particle.locale";function _$(n){return f_.some(e=>e.code===n)}function T$(n,e){return _$(n)?n:e.some(t=>t.toLowerCase().startsWith("zh"))?"zh-CN":"en"}function E$(){var t;let n=null;if(typeof window<"u")try{n=localStorage.getItem(m_)}catch{}const e=typeof navigator>"u"?[]:(t=navigator.languages)!=null&&t.length?[...navigator.languages]:[navigator.language];return T$(n,e)}const p_=E$(),ac=bO({legacy:!1,locale:p_,fallbackLocale:"en",messages:{"zh-CN":S$,en:ZO}});function g_(n){if(ac.global.locale.value=n,typeof window<"u")try{localStorage.setItem(m_,n)}catch{}typeof document<"u"&&(document.documentElement.lang=n,document.title=ac.global.t("app.title"))}function Ye(n,e){return e?ac.global.t(n,e):ac.global.t(n)}g_(p_);const v_="SpineParticle.SystemSettings",y_=1,hm="SpineParticle.SystemSettings.v1";function ml(n,e,t,i){const s=Number(n);return Math.min(t,Math.max(e,Number.isFinite(s)?s:i))}function C$(n){return{parameterPanelOnRight:n.parameterPanelOnRight,undoLimit:n.undoLimit,showEmitter:n.showEmitter,showBones:n.showBones,bonePointDrawSize:n.bonePointDrawSize,boneAxisDrawSize:n.boneAxisDrawSize,showSkinMesh:n.showSkinMesh,tickEnabled:n.tickEnabled,axisFontSize:n.axisFontSize,tickWidth:n.tickWidth,showAxisLabels:n.showAxisLabels,axisColor:n.axisColor}}function M$(n,e){const t=s=>n[s]==null?!!e[s]:n[s]===!0,i=typeof n.axisColor=="string"&&/^#[0-9a-f]{6}$/i.test(n.axisColor)?n.axisColor:e.axisColor;return{parameterPanelOnRight:t("parameterPanelOnRight"),undoLimit:Math.round(ml(n.undoLimit,1,200,e.undoLimit)),showEmitter:t("showEmitter"),showBones:t("showBones"),bonePointDrawSize:ml(n.bonePointDrawSize,.1,10,e.bonePointDrawSize),boneAxisDrawSize:ml(n.boneAxisDrawSize,.1,10,e.boneAxisDrawSize),showSkinMesh:t("showSkinMesh"),tickEnabled:t("tickEnabled"),axisFontSize:Math.round(ml(n.axisFontSize,8,40,e.axisFontSize)),tickWidth:ml(n.tickWidth,1,5,e.tickWidth),showAxisLabels:t("showAxisLabels"),axisColor:i}}function A$(n){let e;try{e=JSON.parse(n)}catch{throw new Error(Ye("errors.settingsInvalidJson"))}const t=e;if(t.format!==v_)throw new Error(Ye("errors.settingsFormat"));if(t.version!==y_)throw new Error(Ye("errors.settingsVersion",{version:t.version??Ye("export.unknown")}));if(!t.settings||typeof t.settings!="object")throw new Error(Ye("errors.settingsMissing"));return t}function I$(n,e){Object.assign(n.settings,M$(e,n.settings))}let ch=null;function P$(n){ch==null||ch();try{const e=localStorage.getItem(hm);e&&I$(n,A$(e).settings)}catch{try{localStorage.removeItem(hm)}catch{}}ch=ei(()=>C$(n.settings),e=>{const t={format:v_,version:y_,savedAt:new Date().toISOString(),settings:e};try{localStorage.setItem(hm,JSON.stringify(t))}catch{}},{deep:!0})}function R$(n,e=0){if(n<=0)return 1;const t=Math.pow(10,Math.floor(Math.log10(n))),i=[1,2,5,10,20,50,100];let s=1;for(const r of i)if(r*t>=n){s=r*t;break}return Math.max(s,e)}function k$(n,e,t,i,s){if(!t)return;const r=t;r.clear();const o=n.settings;if(!o.tickEnabled){for(const S of s)S.visible=!1;return}const a=0,c=0,l=e.screen.width/n.editor.viewScale,h=e.screen.height/n.editor.viewScale,u=+("0x"+o.axisColor.replace("#",""));r.lineStyle(1.5,u,.35),r.moveTo(-l,c),r.lineTo(l,c),r.moveTo(a,-h),r.lineTo(a,h);const d=n.editor.viewScale,f=R$(50/d),m=l,p=h,g=Math.max(1,o.tickWidth);if(o.tickEnabled){for(let S=0;S<=l;S+=f){const C=Math.round(S/f)*f;C!==0&&(r.lineStyle(g,u,.25),r.moveTo(C,c-4),r.lineTo(C,c+4),r.moveTo(-C,c-4),r.lineTo(-C,c+4))}for(let S=0;S<=h;S+=f)Math.round(S/f)*f!==0&&(r.lineStyle(g,u,.25),r.moveTo(a-4,S),r.lineTo(a+4,S),r.moveTo(a-4,-S),r.lineTo(a+4,-S))}const v=e.screen.width/2+n.editor.viewX,b=e.screen.height*.5+n.editor.viewY,y=o.axisFontSize,x=+("0x"+o.axisColor.replace("#",""));for(;s.length<64;){const S=new Lg("",{fontFamily:"monospace",fontSize:y,fill:x});S.anchor.set(.5,.5),i.addChild(S),s.push(S)}let _=0;const E=o.showAxisLabels&&o.tickEnabled;for(let S=0;S<=l;S+=f){const C=Math.round(S/f)*f;if(C===0||!E||C>m)continue;const M=s[_++];if(!M)break;M.style.fontSize=y,M.text=String(C),M.position.set(v+C*d,b+9),M.visible=!0;const P=s[_++];if(!P)break;P.style.fontSize=y,P.text=String(-C),P.position.set(v-C*d,b+9),P.visible=!0}for(let S=0;S<=h;S+=f){const C=Math.round(S/f)*f;if(C===0||!E||C>p)continue;const M=s[_++];if(!M)break;M.style.fontSize=y,M.text=String(C),M.position.set(v+8,b-S*d),M.visible=!0;const P=s[_++];if(!P)break;P.style.fontSize=y,P.text=String(-C),P.position.set(v+8,b+S*d),P.visible=!0}for(;_<s.length;){const S=s[_++];S&&(S.visible=!1)}}function F$(n,e,t){if(!t)return;const i=t;if(i.clear(),!!n.settings.showEmitter&&n.systems.length)for(const s of n.systems){if(s.visible===!1)continue;const r=e.get(s.id),o=(r==null?void 0:r.x)??s.config.centerX??0,a=-((r==null?void 0:r.y)??s.config.centerY??0),c=n.activeObjectType==="particle"&&s.id===n.activeId,l=c?16763955:9082040,h=c?.4:.2;i.lineStyle(1,l,h),i.drawCircle(o,a,10),i.beginFill(l,c?.8:.4),i.drawCircle(o,a,3),i.endFill(),i.lineStyle(1,l,c?.3:.15),i.moveTo(o-16,a),i.lineTo(o+16,a),i.moveTo(o,a-16),i.lineTo(o,a+16)}}function L$(n,e,t){if(!t)return;const i=t;i.clear();const s=n.systems.find(b=>b.id===n.activeId);if(!s||s.visible===!1)return;const r=s.config;if(!r.showShape)return;const o=e.get(s.id),a=(o==null?void 0:o.x)??r.centerX??0,c=-((o==null?void 0:o.y)??r.centerY??0),l=r.shape;if(l==="point"||l==="path")return;const h=r.rootScaleX??1,u=r.rootScaleY??1,d=-((o==null?void 0:o.rotation)??r.rootRotation??0)*Math.PI/180,f=Math.cos(d),m=Math.sin(d),p=r.offsetX??0,g=r.offsetY??0,v=(b,y)=>{const x=b+p,_=-y-g,E=x*h,S=_*u;return[a+E*f-S*m,c+(E*m+S*f)]};if(l==="circle"){const b=au(r.innerRadius,r.outerRadius);i.lineStyle(2,3991658,.7);const y=48;for(const x of[b.outer,b.inner])if(!(x<=0))for(let _=0;_<=y;_++){const E=_/y*Math.PI*2,[S,C]=v(Math.cos(E)*x,Math.sin(E)*x);_===0?i.moveTo(S,C):i.lineTo(S,C)}}else if(l==="rect"){const b=TS(r);i.lineStyle(2,4885759,.7);for(const[y,x]of[[b.outerW,b.outerH],[b.innerW,b.innerH]]){if(y<=0||x<=0)continue;const _=y/2,E=x/2,S=v(-_,-E),C=v(_,-E),M=v(_,E),P=v(-_,E);i.moveTo(S[0],S[1]),i.lineTo(C[0],C[1]),i.lineTo(M[0],M[1]),i.lineTo(P[0],P[1]),i.lineTo(S[0],S[1])}}else if(l==="cone"){const b=au(r.innerRadius,r.outerRadius),y=r.coneAngle/2*Math.PI/180,x=r.coneDirection*Math.PI/180,_=v(Math.cos(x-y)*b.inner,Math.sin(x-y)*b.inner),E=v(Math.cos(x+y)*b.inner,Math.sin(x+y)*b.inner),S=v(Math.cos(x-y)*b.outer,Math.sin(x-y)*b.outer),C=v(Math.cos(x+y)*b.outer,Math.sin(x+y)*b.outer);i.lineStyle(2,3991658,.7),i.moveTo(_[0],_[1]),i.lineTo(S[0],S[1]),i.moveTo(E[0],E[1]),i.lineTo(C[0],C[1]),i.lineStyle(1,3991658,.5);const M=24;for(const P of[b.outer,b.inner])if(!(P<=0))for(let A=0;A<=M;A++){const R=x-y+2*y*A/M,[B,O]=v(Math.cos(R)*P,Math.sin(R)*P);A===0?i.moveTo(B,O):i.lineTo(B,O)}}}function O$(n,e){if(!e)return;const t=e;t.clear();const i=n.systems.find(c=>c.id===n.activeId);if((i==null?void 0:i.visible)===!1)return;const s=i==null?void 0:i.config;if(!(s!=null&&s.forceField)||!s.showForceFieldShape||s.forceRadius<=0)return;const r=s.forceCenterX,o=-s.forceCenterY,a=s.forceStrength>=0?5818367:16739194;t.lineStyle(2,a,.85),t.beginFill(a,.08),t.drawCircle(r,o,s.forceRadius),t.endFill(),t.lineStyle(1,a,.7),t.moveTo(r-9,o),t.lineTo(r+9,o),t.moveTo(r,o-9),t.lineTo(r,o+9),t.beginFill(a,.95),t.drawCircle(r,o,4),t.endFill()}function $$(n,e){if(!e)return;const t=e;t.clear();const i=n.systems.find(u=>u.id===n.activeId);if((i==null?void 0:i.visible)===!1)return;const s=i==null?void 0:i.config;if(!(s!=null&&s.vortex)||!s.showVortexShape||s.vortexRadius<=0)return;const r=s.vortexCenterX,o=-s.vortexCenterY,a=s.vortexStrength>=0?12156159:16753228;t.lineStyle(2,a,.9),t.beginFill(a,.07),t.drawCircle(r,o,s.vortexRadius),t.endFill(),t.beginFill(a,.95),t.drawCircle(r,o,4),t.endFill();const c=r+Math.min(s.vortexRadius*.65,50),l=s.vortexStrength>=0?-1:1,h=o+l*14;t.lineStyle(2,a,.9),t.moveTo(c,o+l*-8),t.lineTo(c,h),t.moveTo(c,h),t.lineTo(c-4,h-l*5),t.moveTo(c,h),t.lineTo(c+4,h-l*5)}function N$(n,e){if(!e)return;const t=e;t.clear();const i=n.systems.find(l=>l.id===n.activeId);if((i==null?void 0:i.visible)===!1)return;const s=i==null?void 0:i.config;if(!(s!=null&&s.attraction)||!s.showAttractionShape)return;const r=s.attractionCenterX,o=-s.attractionCenterY,a=Math.max(0,s.attractionRadius),c=16731487;a>0&&(t.lineStyle(2,c,.95),t.beginFill(c,.09),t.drawCircle(r,o,a),t.endFill()),t.lineStyle(1,c,.85),t.moveTo(r-10,o),t.lineTo(r+10,o),t.moveTo(r,o-10),t.lineTo(r,o+10),t.beginFill(c,1),t.drawCircle(r,o,a>0?4:6),t.endFill()}function D$(n,e,t){const i=n.rotation*Math.PI/180,s=Math.cos(i),r=Math.sin(i),o=Math.max(1e-4,Math.abs(n.scaleX??1)),a=Math.max(1e-4,Math.abs(n.scaleY??1));return{x:n.x+s*e*o-r*t*a,y:n.y+r*e*o+s*t*a}}function aa(n,e,t){const i=n.rotation*Math.PI/180,s=Math.cos(i),r=Math.sin(i),o=Math.max(1e-4,Math.abs(n.scaleX??1)),a=Math.max(1e-4,Math.abs(n.scaleY??1)),c=e-n.x,l=t-n.y;return{x:(s*c+r*l)/o,y:(-r*c+s*l)/a}}function b_(n,e,t="linear"){if(!n.length)return e;const i=[...n].sort((s,r)=>s.x-r.x);if(e<=i[0].x)return i[0].y;for(let s=1;s<i.length;s++){const r=i[s-1],o=i[s];if(e<=o.x){let a=(e-r.x)/Math.max(1e-4,o.x-r.x);if(t==="bezier"){const c=r.x+(r.outX??(o.x-r.x)/3),l=o.x+(o.inX??-(o.x-r.x)/3);let h=0,u=1;for(let d=0;d<18;d++){const f=(h+u)/2;Vb(r.x,c,l,o.x,f)<e?h=f:u=f}return a=(h+u)/2,Vb(r.y,r.y+(r.outY??(o.y-r.y)/3),o.y+(o.inY??-(o.y-r.y)/3),o.y,a)}return r.y+(o.y-r.y)*a}}return i[i.length-1].y}function Vb(n,e,t,i,s){const r=1-s;return r*r*r*n+3*r*r*s*e+3*r*s*s*t+s*s*s*i}function B$(n,e,t){var r;if(!t)return;const i=t;(r=i.parent)==null||r.addChild(i),i.clear();const s=new Map;for(const o of n.spines)o.visible===!1||!o.selectedBone||o.status!=="ready"||s.set(`${o.id}:${o.selectedBone}`,{spineId:o.id,boneName:o.selectedBone});for(const o of n.systems){if(o.visible===!1)continue;const a=o.config;if(!a.emitterFollow||a.emitterFollowMode!=="bone"||!a.emitterFollowSpineId||!a.emitterFollowBoneName)continue;const c=n.spines.find(l=>l.id===a.emitterFollowSpineId);!c||c.visible===!1||s.set(`${a.emitterFollowSpineId}:${a.emitterFollowBoneName}`,{spineId:a.emitterFollowSpineId,boneName:a.emitterFollowBoneName})}for(const o of s.values()){const a=e==null?void 0:e.getBoneWorldTransform(o.spineId,o.boneName);if(!a)continue;const c=a.x,l=-a.y;i.lineStyle(2,12881151,.95),i.beginFill(12881151,.2),i.drawCircle(c,l,8),i.endFill(),i.beginFill(15919103,1),i.drawCircle(c,l,3.5),i.endFill()}}function U$(n,e,t){if(!t)return;const i=t;if(i.clear(),!n.value)return;const s=e();if(!s)return;const r=s.x,o=-s.y,a=s.scaleX,c=s.scaleY,l=-s.rotation*Math.PI/180,h=Math.cos(l),u=Math.sin(l),d=(p,g)=>{const v=p*a,b=-g*c;return[r+v*h-b*u,o+(v*u+b*h)]},f=(p,g,v,b)=>{const y=d(p,g),x=d(v,b);i.moveTo(y[0],y[1]),i.lineTo(x[0],x[1])},m=26;if(i.lineStyle(2,3526911,.9),i.beginFill(3526911,.25),i.drawCircle(r,o,6),i.endFill(),n.value==="translate")i.lineStyle(2,3526911,.9),f(-m,0,m,0),f(0,-m,0,m),f(m-6,-4,m,0),f(m,0,m-6,4),f(-20,-4,-m,0),f(-m,0,-20,4),f(-4,m-6,0,m),f(0,m,4,m-6),f(-4,-20,0,-m),f(0,-m,4,-20);else if(n.value==="rotate"){i.lineStyle(2,3526911,.8);const p=48;for(let b=0;b<=p;b++){const y=b/p*Math.PI*2,[x,_]=d(Math.cos(y)*m,Math.sin(y)*m);b===0?i.moveTo(x,_):i.lineTo(x,_)}const[g,v]=d(0,m);i.beginFill(3526911,.95),i.drawCircle(g,v,4),i.endFill()}else if(n.value==="scale"){i.lineStyle(2,3526911,.9);const g=[[-m,-m],[m,-m],[m,m],[-m,m]].map(([v,b])=>d(v,b));i.moveTo(g[0][0],g[0][1]),i.lineTo(g[1][0],g[1][1]),i.lineTo(g[2][0],g[2][1]),i.lineTo(g[3][0],g[3][1]),i.lineTo(g[0][0],g[0][1]),i.beginFill(3526911,.9);for(const v of g)i.drawRect(v[0]-3,v[1]-3,6,6);i.endFill()}}function V$(n,e=16777215){const t=Number.parseInt(n.replace("#",""),16);return Number.isFinite(t)?t:e}function X$(n,e,t){if(!t)return;const i=t;i.clear();for(const s of e){if(s.visible===!1)continue;const r=n.activeObjectType==="collision"&&n.activeObjectId===s.id,o=s.enabled?r?16735858:13911899:5792116,a=s.rotation*Math.PI/180,c=Math.cos(a),l=Math.sin(a),h=Math.max(1e-4,Math.abs(s.scaleX??1)),u=Math.max(1e-4,Math.abs(s.scaleY??1)),d=(p,g)=>({x:s.x+c*p*h-l*g*u,y:-(s.y+l*p*h+c*g*u)});let f=[];if(s.shape==="circle"||s.shape==="ellipse"){const p=s.shape==="circle"?s.radius:s.radiusX,g=s.shape==="circle"?s.radius:s.radiusY;f=Array.from({length:49},(v,b)=>{const y=b/48*Math.PI*2;return d(Math.cos(y)*p,Math.sin(y)*g)})}else if(s.shape==="rect"){const p=s.width*.5,g=s.height*.5;f=[d(-p,-g),d(p,-g),d(p,g),d(-p,g),d(-p,-g)]}else{const p=Math.max(3,Math.min(16,Math.round(s.sides)));f=Array.from({length:p+1},(g,v)=>{const b=Math.PI*.5+v%p/p*Math.PI*2;return d(Math.cos(b)*s.width*.5,Math.sin(b)*s.height*.5)})}if(!f.length)continue;i.lineStyle(r?2.5:1.5,o,s.enabled?.95:.45),i.beginFill(o,r?.12:.055),i.moveTo(f[0].x,f[0].y);for(let p=1;p<f.length;p++)i.lineTo(f[p].x,f[p].y);i.endFill();const m=d(0,0);i.lineStyle(1,o,.8),i.moveTo(m.x-7,m.y),i.lineTo(m.x+7,m.y),i.moveTo(m.x,m.y-7),i.lineTo(m.x,m.y+7)}}function Y$(n,e,t){if(!t)return;const i=t;i.clear();const s=n.activeObjectType==="particle"?n.systems.find(o=>o.id===n.activeObjectId):null,r=(s==null?void 0:s.config.shape)==="path"&&!s.config.showShape?s.config.spawnPathId:0;for(const o of n.paths){if(o.id===r||o.visible===!1||!o.enabled||!o.points.length)continue;const a=n.activeObjectType==="path"&&n.activeObjectId===o.id,c=V$(o.color,16749374),l=(f,m)=>{const p=D$(o,f,m);return{x:p.x,y:-p.y}},h=o.points[0],u=l(h.x,h.y);i.lineStyle(a?2.5:1.8,c,a?1:.75),i.moveTo(u.x,u.y);const d=o.closed?o.points.length:o.points.length-1;for(let f=0;f<d;f++){const m=o.points[f],p=o.points[(f+1)%o.points.length],g=l(m.x+m.outX,m.y+m.outY),v=l(p.x+p.inX,p.y+p.inY),b=l(p.x,p.y);i.bezierCurveTo(g.x,g.y,v.x,v.y,b.x,b.y)}a&&o.points.forEach((f,m)=>{const p=l(f.x,f.y),g=l(f.x+f.inX,f.y+f.inY),v=l(f.x+f.outX,f.y+f.outY),b=Math.hypot(f.inX,f.inY)>.01,y=Math.hypot(f.outX,f.outY)>.01;i.lineStyle(1,11121867,.65),b&&(i.moveTo(p.x,p.y),i.lineTo(g.x,g.y)),y&&(i.moveTo(p.x,p.y),i.lineTo(v.x,v.y)),b&&(i.beginFill(14015724,.95),i.drawCircle(g.x,g.y,3),i.endFill()),y&&(i.beginFill(14015724,.95),i.drawCircle(v.x,v.y,3),i.endFill()),i.beginFill(e.has(m)?16777215:c,1),i.lineStyle(1.5,e.has(m)?6126847:16777215,.95),i.drawCircle(p.x,p.y,e.has(m)?5:4),i.endFill()})}}function G$(n,e,t,i){var o;const s=Number.isFinite(e.worldX)&&Number.isFinite(e.worldY),r=Number.isFinite(e.worldRotation);n.push({boneName:e.boneName,x:s?e.worldX:e.x,y:s?-e.worldY:e.y,rotation:r?-e.worldRotation:-e.rotation,parentX:t,parentY:i}),(o=e.trailState)!=null&&o.bones.length&&e.trailState.bones.forEach(a=>{const c=Number.isFinite(a.worldX)&&Number.isFinite(a.worldY),l=Number.isFinite(a.worldRotation);n.push({boneName:a.boneName,x:c?a.worldX:a.x,y:c?-a.worldY:a.y,rotation:l?-a.worldRotation:a.rotation,parentX:t,parentY:i,trail:!0})})}function Xb(n,e,t,i,s,r,o,a){const c=r*.62,l=e+i*r,h=t+s*r,u=Math.max(2.5,r*.32),d=Math.max(1.7,r*.22),f=l-i*u,m=h-s*u,p=-s,g=i;n.lineStyle(o,a,.95),n.moveTo(e-i*c,t-s*c),n.lineTo(f,m),n.lineStyle(0),n.beginFill(a,.95),n.drawPolygon([l,h,f+p*d,m+g*d,f-p*d,m-g*d]),n.endFill()}function H$(n,e,t){if(!t)return;const i=t;if(i.clear(),!e.settings.showBones)return;const s=0,r=0,o=Math.max(.25,Math.abs(e.editor.viewScale)||1),a=Math.min(10,Math.max(.1,Number(e.settings.bonePointDrawSize)||1)),c=Math.min(10,Math.max(.1,Number(e.settings.boneAxisDrawSize)||2)),l=2.5*a/o,h=4.5*c/o,u=Math.max(.65,c*.625)/o;for(const d of n){const f=d.trail?16731533:16747610;i.lineStyle(1,f,d.trail?.65:.35),i.moveTo(d.parentX??s,d.parentY??r),i.lineTo(d.x,d.y);const m=d.rotation*Math.PI/180,p=Math.cos(m),g=Math.sin(m);Xb(i,d.x,d.y,p,g,h,u,15684432),Xb(i,d.x,d.y,g,-p,h,u,5622123),i.beginFill(f,.9),i.drawCircle(d.x,d.y,l),i.endFill()}}function Xi(n){return n.map(e=>({...e,trailState:e.trailState?{...e.trailState,bones:e.trailState.bones.map(t=>({...t}))}:void 0}))}function j$(n){const e=new Map;for(const i of n)for(const s of i)e.has(s.boneName)||e.set(s.boneName,Xi([s])[0]);const t=[...e.keys()].sort((i,s)=>{const r=Number(i.replace(/^p_/,"")),o=Number(s.replace(/^p_/,""));return Number.isFinite(r)&&Number.isFinite(o)?r-o:i.localeCompare(s)});for(let i=0;i<n.length;i++){const s=new Map(n[i].map(r=>[r.boneName,r]));n[i]=t.map(r=>{const o=s.get(r);return o||{...Xi([e.get(r)])[0],alpha:0,imageVisible:!1,trailState:void 0,active:!0}})}}function W$(n){n.length<2||(n[n.length-1]=Xi(n[0]))}function z$(n,e){const t=Math.max(0,n.length-1),i=[];for(let s=0;s<=e;s++){const r=Math.min(t,Math.round(s/e*t));i.push(Xi(n[r]||[]))}return i}function um(n){return`${n.boneName}:${n.spawnId??"legacy"}`}function Yb(n){return{...Xi([n])[0],alpha:0,imageVisible:!1,trailState:void 0,active:!0}}function q$(n,e,t,i){const s=Math.min(n.length,i+1),r=n.slice(Math.max(0,n.length-s)),o=new Map;for(const l of e){if(l.imageVisible===!1||l.alpha<=0)continue;const h=um(l),u=new Map;let d=!1;for(let f=r.length-1;f>=0;f--){const m=r[f].find(p=>um(p)===h);if(m)d=!0,u.set(f,m);else if(d)break}o.set(h,u)}const a=Math.max(0,r.length-1),c=[];for(let l=0;l<=t;l++){const h=Math.min(a,Math.round(l/t*a));c.push(e.map(u=>{var f;if(u.imageVisible===!1||u.alpha<=0)return Xi([u])[0];const d=(f=o.get(um(u)))==null?void 0:f.get(h);return d?Xi([d])[0]:Yb(u)}))}return c[0]=c[0].map(Yb),c[c.length-1]=Xi(e),c}function Gb(n,e){const t=n.length?1:0;for(let i=t;i<e.length;i++)n.push(Xi(e[i]))}function Hb(n,e,t,i){var v;const s=n.config,r=1/Math.max(1,t),o=s.lifeMode==="fixed"?Math.max(0,Number(s.lifeMin)||0):Math.max(0,Number(s.lifeMin)||0,Number(s.lifeMax)||0),a=zn(s,t),c=Math.max(1,Math.ceil(o*t)),l=Math.max(1,Math.ceil(c/a.loop)),h=Math.max(0,Math.ceil(Math.max(0,Number(s.delay)||0)*t)),u=[],d=b=>{const y=b?[[]]:[];e.reset();for(let x=0;x<l;x++){x>0&&e.restartEmissionCycle();for(let _=0;_<a.loop;_++)e.update(r,"force"),b&&y.push(e.capture())}return{seam:e.capture(),warmup:y}},f=d(s.generateLoopStartAnimation),m=Xi(f.seam),p=[Xi(m)];e.restartEmissionCycle();for(let b=0;b<a.loop;b++)e.update(r,"force"),p.push(e.capture());j$(p),W$(p);for(let b=0;b<h;b++)u.push([]);if(s.generateLoopStartAnimation){const b=q$(f.warmup,p[0],a.start,c);for(const y of b)u.push(Xi(y))}else u.push(Xi(p[0]));if(Gb(u,p),s.generateLoopEndAnimation){d(!1);const b=[Xi(p[0])],y=Math.max(1,c+2);for(let x=0;x<y&&e.activeCount>0;x++)e.update(r,"off"),b.push(e.capture());(v=b[b.length-1])!=null&&v.length&&b.push([]),Gb(u,z$(b,a.end))}const g=Xi(u[u.length-1]||[]);for(u.length>i&&(u.length=i);u.length<i;)u.push(Xi(g));n.frames=u,e.apply(u[0]||[])}class K${constructor(){T(this,"container",new Mi);T(this,"entries",new Map)}getSpine(e){var t;return((t=this.entries.get(e))==null?void 0:t.spine)||null}getDrawOrder(e){var i,s;const t=(i=this.entries.get(e))==null?void 0:i.spine;try{const r=(s=t==null?void 0:t.skeleton)==null?void 0:s.drawOrder;return Array.isArray(r)?r.map(o=>{var a;return String(((a=o==null?void 0:o.data)==null?void 0:a.name)||"")}):null}catch{return null}}getSlotLocalMatrix(e,t){var o,a,c;const i=(o=this.entries.get(e))==null?void 0:o.spine,s=(c=(a=i==null?void 0:i.skeleton)==null?void 0:a.findSlot)==null?void 0:c.call(a,t),r=s==null?void 0:s.bone;return r!=null&&r.active?new Bt(r.a,r.c,-r.b,-r.d,r.worldX,r.worldY):null}getSlotParentMatrix(e,t,i){const s=this.getSlotLocalMatrix(e,t);if(!s)return null;const r=-i.rotation*Math.PI/180,o=Math.cos(r),a=Math.sin(r);return new Bt(o*i.scaleX,a*i.scaleX,-a*i.scaleY,o*i.scaleY,i.x,-i.y).append(s)}attachSlotObject(e,t,i,s){var o;const r=(o=this.entries.get(e))==null?void 0:o.spine;if(!(r!=null&&r.addSlotObject))return!1;try{return r.addSlotObject(t,i,{followAttachmentTimeline:s}),!0}catch{return!1}}detachSlotObject(e,t,i){var r,o;const s=(r=this.entries.get(e))==null?void 0:r.spine;try{(o=s==null?void 0:s.removeSlotObject)==null||o.call(s,t,i)}catch{}}destroyEntry(e){var t,i;try{(i=(t=e.spine)==null?void 0:t.removeSlotObjects)==null||i.call(t)}catch{}this.container.removeChild(e.root),e.root.destroy({children:!0})}sync(e,t,i){var s;for(const[r,o]of this.entries)e.some(a=>a.id===r)||(this.destroyEntry(o),this.entries.delete(r));for(const r of e){const o=cF(r.id);let a=this.entries.get(r.id);if(a&&a.assetVersion!==r.assetVersion&&!o&&(this.destroyEntry(a),this.entries.delete(r.id),a=void 0),(!a||a.assetVersion!==r.assetVersion)&&o){a&&this.destroyEntry(a);const d=new Mi,f=new o.SpineClass({skeletonData:o.skeletonData,autoUpdate:!1,darkTint:!1});o.skeletonData.defaultSkin&&f.skeleton.setSkin(o.skeletonData.defaultSkin),o.runtimeVersion==="4.3"?f.skeleton.setupPoseSlots():f.skeleton.setSlotsToSetupPose(),d.addChild(f),this.container.addChild(d),a={root:d,spine:f,runtimeVersion:o.runtimeVersion,assetVersion:r.assetVersion,animation:""},this.entries.set(r.id,a)}if(!a)continue;const c=a.root,l=a.spine,h=r.visible!==!1&&r.enabled;c.visible=h,c.renderable=h,c.position.set(r.x,-r.y),c.rotation=-r.rotation*Math.PI/180,c.scale.set(r.scaleX,r.scaleY),a.animation!==r.selectedAnimation&&(a.animation=r.selectedAnimation,a.runtimeVersion==="4.3"?l.skeleton.setupPose():l.skeleton.setToSetupPose(),l.state.clearTracks(),a.animation&&l.state.setAnimation(0,a.animation,!1));const u=a.runtimeVersion==="4.3"?l.state.getTrack(0):l.state.getCurrent(0);if(u){const d=((s=r.animations.find(m=>m.name===r.selectedAnimation))==null?void 0:s.duration)||0,f=Math.max(0,t/Math.max(1,i)-r.timeOffset);u.trackTime=d>0?Math.min(f,d):f}l.update(0)}}getBoneWorldTransform(e,t){const i=this.entries.get(e),s=i==null?void 0:i.spine.skeleton.findBone(t);if(!i||!s||!s.active)return null;const r=i.runtimeVersion==="4.3"?s.appliedPose:s,o=i.root,a=Math.cos(o.rotation),c=Math.sin(o.rotation),l=a*o.scale.x,h=-c*o.scale.y,u=c*o.scale.x,d=a*o.scale.y,f=l*r.a+h*r.c,m=l*r.b+h*r.d,p=u*r.a+d*r.c,g=u*r.b+d*r.d,v=o.position.x+l*r.worldX+h*r.worldY,b=o.position.y+u*r.worldX+d*r.worldY;return{x:v,y:-b,rotation:-Math.atan2(p,f)*180/Math.PI,scaleX:Math.max(1e-4,Math.hypot(f,p)),scaleY:Math.max(1e-4,Math.hypot(m,g))}}destroy(){for(const e of this.entries.values())this.destroyEntry(e);this.entries.clear(),this.container.removeFromParent(),this.container.destroy({children:!0})}}let x_=class{constructor(){T(this,"entries",{});T(this,"size",0)}add(e){let t=this.entries[e];return this.entries[e]=!0,t?!1:(this.size++,!0)}addAll(e){let t=this.size;for(var i=0,s=e.length;i<s;i++)this.add(e[i]);return t!=this.size}contains(e){return this.entries[e]}clear(){this.entries={},this.size=0}};var Vi;let ut=(Vi=class{constructor(e=0,t=0,i=0,s=0){T(this,"r");T(this,"g");T(this,"b");T(this,"a");this.r=e,this.g=t,this.b=i,this.a=s}set(e,t,i,s){return this.r=e,this.g=t,this.b=i,this.a=s,this.clamp()}setFromColor(e){return this.r=e.r,this.g=e.g,this.b=e.b,this.a=e.a,this}setFromString(e){return e=e.charAt(0)=="#"?e.substr(1):e,this.r=parseInt(e.substr(0,2),16)/255,this.g=parseInt(e.substr(2,2),16)/255,this.b=parseInt(e.substr(4,2),16)/255,this.a=e.length!=8?1:parseInt(e.substr(6,2),16)/255,this}add(e,t,i,s){return this.r+=e,this.g+=t,this.b+=i,this.a+=s,this.clamp()}clamp(){return this.r<0?this.r=0:this.r>1&&(this.r=1),this.g<0?this.g=0:this.g>1&&(this.g=1),this.b<0?this.b=0:this.b>1&&(this.b=1),this.a<0?this.a=0:this.a>1&&(this.a=1),this}static rgba8888ToColor(e,t){e.r=((t&4278190080)>>>24)/255,e.g=((t&16711680)>>>16)/255,e.b=((t&65280)>>>8)/255,e.a=(t&255)/255}static rgb888ToColor(e,t){e.r=((t&16711680)>>>16)/255,e.g=((t&65280)>>>8)/255,e.b=(t&255)/255}toRgb888(){const e=t=>("0"+(t*255).toString(16)).slice(-2);return+("0x"+e(this.r)+e(this.g)+e(this.b))}static fromString(e,t=new Vi){return t.setFromString(e)}},T(Vi,"WHITE",new Vi(1,1,1,1)),T(Vi,"RED",new Vi(1,0,0,1)),T(Vi,"GREEN",new Vi(0,1,0,1)),T(Vi,"BLUE",new Vi(0,0,1,1)),T(Vi,"MAGENTA",new Vi(1,0,1,1)),Vi);var ui;let ke=(ui=class{static clamp(e,t,i){return e<t?t:e>i?i:e}static cosDeg(e){return Math.cos(e*ui.degRad)}static sinDeg(e){return Math.sin(e*ui.degRad)}static atan2Deg(e,t){return Math.atan2(e,t)*ui.degRad}static signum(e){return e>0?1:e<0?-1:0}static toInt(e){return e>0?Math.floor(e):Math.ceil(e)}static cbrt(e){let t=Math.pow(Math.abs(e),.3333333333333333);return e<0?-t:t}static randomTriangular(e,t){return ui.randomTriangularWith(e,t,(e+t)*.5)}static randomTriangularWith(e,t,i){let s=Math.random(),r=t-e;return s<=(i-e)/r?e+Math.sqrt(s*r*(i-e)):t-Math.sqrt((1-s)*r*(t-i))}static isPowerOfTwo(e){return e&&(e&e-1)===0}},T(ui,"PI",3.1415927),T(ui,"PI2",ui.PI*2),T(ui,"invPI2",1/ui.PI2),T(ui,"radiansToDegrees",180/ui.PI),T(ui,"radDeg",ui.radiansToDegrees),T(ui,"degreesToRadians",ui.PI/180),T(ui,"degRad",ui.degreesToRadians),ui);var jn;let Oe=(jn=class{static arrayCopy(e,t,i,s,r){for(let o=t,a=s;o<t+r;o++,a++)i[a]=e[o]}static arrayFill(e,t,i,s){for(let r=t;r<i;r++)e[r]=s}static setArraySize(e,t,i=0){let s=e.length;if(s==t)return e;if(e.length=t,s<t)for(let r=s;r<t;r++)e[r]=i;return e}static ensureArrayCapacity(e,t,i=0){return e.length>=t?e:jn.setArraySize(e,t,i)}static newArray(e,t){let i=new Array(e);for(let s=0;s<e;s++)i[s]=t;return i}static newFloatArray(e){if(jn.SUPPORTS_TYPED_ARRAYS)return new Float32Array(e);{let t=new Array(e);for(let i=0;i<t.length;i++)t[i]=0;return t}}static newShortArray(e){if(jn.SUPPORTS_TYPED_ARRAYS)return new Int16Array(e);{let t=new Array(e);for(let i=0;i<t.length;i++)t[i]=0;return t}}static toFloatArray(e){return jn.SUPPORTS_TYPED_ARRAYS?new Float32Array(e):e}static toSinglePrecision(e){return jn.SUPPORTS_TYPED_ARRAYS?Math.fround(e):e}static webkit602BugfixHelper(e,t){}static contains(e,t,i=!0){for(var s=0;s<e.length;s++)if(e[s]==t)return!0;return!1}static enumValue(e,t){return e[t[0].toUpperCase()+t.slice(1)]}},T(jn,"SUPPORTS_TYPED_ARRAYS",typeof Float32Array<"u"),jn),fu=class{constructor(e){T(this,"items",new Array);T(this,"instantiator");this.instantiator=e}obtain(){return this.items.length>0?this.items.pop():this.instantiator()}free(e){e.reset&&e.reset(),this.items.push(e)}freeAll(e){for(let t=0;t<e.length;t++)this.free(e[t])}clear(){this.items.length=0}},mu=class{constructor(e=0,t=0){T(this,"x");T(this,"y");this.x=e,this.y=t}set(e,t){return this.x=e,this.y=t,this}length(){let e=this.x,t=this.y;return Math.sqrt(e*e+t*t)}normalize(){let e=this.length();return e!=0&&(this.x/=e,this.y/=e),this}},w_=class{constructor(e){T(this,"name");if(!e)throw new Error("name cannot be null.");this.name=e}};var Mo;let pr=(Mo=class extends w_{constructor(t){super(t);T(this,"id",Mo.nextID++);T(this,"bones",null);T(this,"vertices",[]);T(this,"worldVerticesLength",0);T(this,"timelineAttachment",this)}computeWorldVertices(t,i,s,r,o,a){s=o+(s>>1)*a;let c=t.bone.skeleton,l=t.deform,h=this.vertices,u=this.bones;if(!u){l.length>0&&(h=l);let p=t.bone,g=p.worldX,v=p.worldY,b=p.a,y=p.b,x=p.c,_=p.d;for(let E=i,S=o;S<s;E+=2,S+=a){let C=h[E],M=h[E+1];r[S]=C*b+M*y+g,r[S+1]=C*x+M*_+v}return}let d=0,f=0;for(let p=0;p<i;p+=2){let g=u[d];d+=g+1,f+=g}let m=c.bones;if(l.length==0)for(let p=o,g=f*3;p<s;p+=a){let v=0,b=0,y=u[d++];for(y+=d;d<y;d++,g+=3){let x=m[u[d]],_=h[g],E=h[g+1],S=h[g+2];v+=(_*x.a+E*x.b+x.worldX)*S,b+=(_*x.c+E*x.d+x.worldY)*S}r[p]=v,r[p+1]=b}else{let p=l;for(let g=o,v=f*3,b=f<<1;g<s;g+=a){let y=0,x=0,_=u[d++];for(_+=d;d<_;d++,v+=3,b+=2){let E=m[u[d]],S=h[v]+p[b],C=h[v+1]+p[b+1],M=h[v+2];y+=(S*E.a+C*E.b+E.worldX)*M,x+=(S*E.c+C*E.d+E.worldY)*M}r[g]=y,r[g+1]=x}}}copyTo(t){this.bones?(t.bones=new Array(this.bones.length),Oe.arrayCopy(this.bones,0,t.bones,0,this.bones.length)):t.bones=null,this.vertices&&(t.vertices=Oe.newFloatArray(this.vertices.length),Oe.arrayCopy(this.vertices,0,t.vertices,0,this.vertices.length)),t.worldVerticesLength=this.worldVerticesLength,t.timelineAttachment=this.timelineAttachment}},T(Mo,"nextID",0),Mo);var sr;let S_=(sr=class{constructor(e){T(this,"id",sr.nextID());T(this,"regions");T(this,"start",0);T(this,"digits",0);T(this,"setupIndex",0);this.regions=new Array(e)}copy(){let e=new sr(this.regions.length);return Oe.arrayCopy(this.regions,0,e.regions,0,this.regions.length),e.start=this.start,e.digits=this.digits,e.setupIndex=this.setupIndex,e}apply(e,t){let i=e.sequenceIndex;i==-1&&(i=this.setupIndex),i>=this.regions.length&&(i=this.regions.length-1);let s=this.regions[i];t.region!=s&&(t.region=s,t.updateRegion())}getPath(e,t){let i=e,s=(this.start+t).toString();for(let r=this.digits-s.length;r>0;r--)i+="0";return i+=s,i}static nextID(){return sr._nextID++}},T(sr,"_nextID",0),sr);var Oi;(function(n){n[n.hold=0]="hold",n[n.once=1]="once",n[n.loop=2]="loop",n[n.pingpong=3]="pingpong",n[n.onceReverse=4]="onceReverse",n[n.loopReverse=5]="loopReverse",n[n.pingpongReverse=6]="pingpongReverse"})(Oi||(Oi={}));const __=[Oi.hold,Oi.once,Oi.loop,Oi.pingpong,Oi.onceReverse,Oi.loopReverse,Oi.pingpongReverse];let Hg=class{constructor(e,t,i){T(this,"name");T(this,"timelines",[]);T(this,"timelineIds",new x_);T(this,"duration");if(!e)throw new Error("name cannot be null.");this.name=e,this.setTimelines(t),this.duration=i}setTimelines(e){if(!e)throw new Error("timelines cannot be null.");this.timelines=e,this.timelineIds.clear();for(var t=0;t<e.length;t++)this.timelineIds.addAll(e[t].getPropertyIds())}hasTimeline(e){for(let t=0;t<e.length;t++)if(this.timelineIds.contains(e[t]))return!0;return!1}apply(e,t,i,s,r,o,a,c){if(!e)throw new Error("skeleton cannot be null.");s&&this.duration!=0&&(i%=this.duration,t>0&&(t%=this.duration));let l=this.timelines;for(let h=0,u=l.length;h<u;h++)l[h].apply(e,t,i,r,o,a,c)}};var we;(function(n){n[n.setup=0]="setup",n[n.first=1]="first",n[n.replace=2]="replace",n[n.add=3]="add"})(we||(we={}));var Hi;(function(n){n[n.mixIn=0]="mixIn",n[n.mixOut=1]="mixOut"})(Hi||(Hi={}));const ft={rotate:0,x:1,y:2,scaleX:3,scaleY:4,shearX:5,shearY:6,inherit:7,rgb:8,alpha:9,rgb2:10,attachment:11,deform:12,event:13,drawOrder:14,ikConstraint:15,transformConstraint:16,pathConstraintPosition:17,pathConstraintSpacing:18,pathConstraintMix:19,physicsConstraintInertia:20,physicsConstraintStrength:21,physicsConstraintDamping:22,physicsConstraintMass:23,physicsConstraintWind:24,physicsConstraintGravity:25,physicsConstraintMix:26,physicsConstraintReset:27,sequence:28};let ti=class{constructor(e,t){T(this,"propertyIds");T(this,"frames");this.propertyIds=t,this.frames=Oe.newFloatArray(e*this.getFrameEntries())}getPropertyIds(){return this.propertyIds}getFrameEntries(){return 1}getFrameCount(){return this.frames.length/this.getFrameEntries()}getDuration(){return this.frames[this.frames.length-this.getFrameEntries()]}static search1(e,t){let i=e.length;for(let s=1;s<i;s++)if(e[s]>t)return s-1;return i-1}static search(e,t,i){let s=e.length;for(let r=i;r<s;r+=i)if(e[r]>t)return r-i;return s-i}},ks=class extends ti{constructor(t,i,s){super(t,s);T(this,"curves");this.curves=Oe.newFloatArray(t+i*18),this.curves[t-1]=1}setLinear(t){this.curves[t]=0}setStepped(t){this.curves[t]=1}shrink(t){let i=this.getFrameCount()+t*18;if(this.curves.length>i){let s=Oe.newFloatArray(i);Oe.arrayCopy(this.curves,0,s,0,i),this.curves=s}}setBezier(t,i,s,r,o,a,c,l,h,u,d){let f=this.curves,m=this.getFrameCount()+t*18;s==0&&(f[i]=2+m);let p=(r-a*2+l)*.03,g=(o-c*2+h)*.03,v=((a-l)*3-r+u)*.006,b=((c-h)*3-o+d)*.006,y=p*2+v,x=g*2+b,_=(a-r)*.3+p+v*.16666667,E=(c-o)*.3+g+b*.16666667,S=r+_,C=o+E;for(let M=m+18;m<M;m+=2)f[m]=S,f[m+1]=C,_+=y,E+=x,y+=v,x+=b,S+=_,C+=E}getBezierValue(t,i,s,r){let o=this.curves;if(o[r]>t){let h=this.frames[i],u=this.frames[i+s];return u+(t-h)/(o[r]-h)*(o[r+1]-u)}let a=r+18;for(r+=2;r<a;r+=2)if(o[r]>=t){let h=o[r-2],u=o[r-1];return u+(t-h)/(o[r]-h)*(o[r+1]-u)}i+=this.getFrameEntries();let c=o[a-2],l=o[a-1];return l+(t-c)/(this.frames[i]-c)*(this.frames[i+s]-l)}},is=class extends ks{constructor(e,t,i){super(e,t,[i])}getFrameEntries(){return 2}setFrame(e,t,i){e<<=1,this.frames[e]=t,this.frames[e+1]=i}getCurveValue(e){let t=this.frames,i=t.length-2;for(let r=2;r<=i;r+=2)if(t[r]>e){i=r-2;break}let s=this.curves[i>>1];switch(s){case 0:let r=t[i],o=t[i+1];return o+(e-r)/(t[i+2]-r)*(t[i+2+1]-o);case 1:return t[i+1]}return this.getBezierValue(e,i,1,s-2)}getRelativeValue(e,t,i,s,r){if(e<this.frames[0]){switch(i){case we.setup:return r;case we.first:return s+(r-s)*t}return s}let o=this.getCurveValue(e);switch(i){case we.setup:return r+o*t;case we.first:case we.replace:o+=r-s}return s+o*t}getAbsoluteValue(e,t,i,s,r){if(e<this.frames[0]){switch(i){case we.setup:return r;case we.first:return s+(r-s)*t}return s}let o=this.getCurveValue(e);return i==we.setup?r+(o-r)*t:s+(o-s)*t}getAbsoluteValue2(e,t,i,s,r,o){if(e<this.frames[0]){switch(i){case we.setup:return r;case we.first:return s+(r-s)*t}return s}return i==we.setup?r+(o-r)*t:s+(o-s)*t}getScaleValue(e,t,i,s,r,o){const a=this.frames;if(e<a[0]){switch(i){case we.setup:return o;case we.first:return r+(o-r)*t}return r}let c=this.getCurveValue(e)*o;if(t==1)return i==we.add?r+c-o:c;if(s==Hi.mixOut)switch(i){case we.setup:return o+(Math.abs(c)*ke.signum(o)-o)*t;case we.first:case we.replace:return r+(Math.abs(c)*ke.signum(r)-r)*t}else{let l=0;switch(i){case we.setup:return l=Math.abs(o)*ke.signum(c),l+(c-l)*t;case we.first:case we.replace:return l=Math.abs(r)*ke.signum(c),l+(c-l)*t}}return r+(c-o)*t}};class jg extends ks{constructor(e,t,i,s){super(e,t,[i,s])}getFrameEntries(){return 3}setFrame(e,t,i,s){e*=3,this.frames[e]=t,this.frames[e+1]=i,this.frames[e+2]=s}}let pu=class extends is{constructor(t,i,s){super(t,i,ft.rotate+"|"+s);T(this,"boneIndex",0);this.boneIndex=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];l.active&&(l.rotation=this.getRelativeValue(s,o,a,l.rotation,l.data.rotation))}},T_=class extends jg{constructor(t,i,s){super(t,i,ft.x+"|"+s,ft.y+"|"+s);T(this,"boneIndex",0);this.boneIndex=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];if(!l.active)return;let h=this.frames;if(s<h[0]){switch(a){case we.setup:l.x=l.data.x,l.y=l.data.y;return;case we.first:l.x+=(l.data.x-l.x)*o,l.y+=(l.data.y-l.y)*o}return}let u=0,d=0,f=ti.search(h,s,3),m=this.curves[f/3];switch(m){case 0:let p=h[f];u=h[f+1],d=h[f+2];let g=(s-p)/(h[f+3]-p);u+=(h[f+3+1]-u)*g,d+=(h[f+3+2]-d)*g;break;case 1:u=h[f+1],d=h[f+2];break;default:u=this.getBezierValue(s,f,1,m-2),d=this.getBezierValue(s,f,2,m+18-2)}switch(a){case we.setup:l.x=l.data.x+u*o,l.y=l.data.y+d*o;break;case we.first:case we.replace:l.x+=(l.data.x+u-l.x)*o,l.y+=(l.data.y+d-l.y)*o;break;case we.add:l.x+=u*o,l.y+=d*o}}},E_=class extends is{constructor(t,i,s){super(t,i,ft.x+"|"+s);T(this,"boneIndex",0);this.boneIndex=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];l.active&&(l.x=this.getRelativeValue(s,o,a,l.x,l.data.x))}},C_=class extends is{constructor(t,i,s){super(t,i,ft.y+"|"+s);T(this,"boneIndex",0);this.boneIndex=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];l.active&&(l.y=this.getRelativeValue(s,o,a,l.y,l.data.y))}},M_=class extends jg{constructor(t,i,s){super(t,i,ft.scaleX+"|"+s,ft.scaleY+"|"+s);T(this,"boneIndex",0);this.boneIndex=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];if(!l.active)return;let h=this.frames;if(s<h[0]){switch(a){case we.setup:l.scaleX=l.data.scaleX,l.scaleY=l.data.scaleY;return;case we.first:l.scaleX+=(l.data.scaleX-l.scaleX)*o,l.scaleY+=(l.data.scaleY-l.scaleY)*o}return}let u,d,f=ti.search(h,s,3),m=this.curves[f/3];switch(m){case 0:let p=h[f];u=h[f+1],d=h[f+2];let g=(s-p)/(h[f+3]-p);u+=(h[f+3+1]-u)*g,d+=(h[f+3+2]-d)*g;break;case 1:u=h[f+1],d=h[f+2];break;default:u=this.getBezierValue(s,f,1,m-2),d=this.getBezierValue(s,f,2,m+18-2)}if(u*=l.data.scaleX,d*=l.data.scaleY,o==1)a==we.add?(l.scaleX+=u-l.data.scaleX,l.scaleY+=d-l.data.scaleY):(l.scaleX=u,l.scaleY=d);else{let p=0,g=0;if(c==Hi.mixOut)switch(a){case we.setup:p=l.data.scaleX,g=l.data.scaleY,l.scaleX=p+(Math.abs(u)*ke.signum(p)-p)*o,l.scaleY=g+(Math.abs(d)*ke.signum(g)-g)*o;break;case we.first:case we.replace:p=l.scaleX,g=l.scaleY,l.scaleX=p+(Math.abs(u)*ke.signum(p)-p)*o,l.scaleY=g+(Math.abs(d)*ke.signum(g)-g)*o;break;case we.add:l.scaleX+=(u-l.data.scaleX)*o,l.scaleY+=(d-l.data.scaleY)*o}else switch(a){case we.setup:p=Math.abs(l.data.scaleX)*ke.signum(u),g=Math.abs(l.data.scaleY)*ke.signum(d),l.scaleX=p+(u-p)*o,l.scaleY=g+(d-g)*o;break;case we.first:case we.replace:p=Math.abs(l.scaleX)*ke.signum(u),g=Math.abs(l.scaleY)*ke.signum(d),l.scaleX=p+(u-p)*o,l.scaleY=g+(d-g)*o;break;case we.add:l.scaleX+=(u-l.data.scaleX)*o,l.scaleY+=(d-l.data.scaleY)*o}}}},A_=class extends is{constructor(t,i,s){super(t,i,ft.scaleX+"|"+s);T(this,"boneIndex",0);this.boneIndex=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];l.active&&(l.scaleX=this.getScaleValue(s,o,a,c,l.scaleX,l.data.scaleX))}},I_=class extends is{constructor(t,i,s){super(t,i,ft.scaleY+"|"+s);T(this,"boneIndex",0);this.boneIndex=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];l.active&&(l.scaleY=this.getScaleValue(s,o,a,c,l.scaleY,l.data.scaleY))}},P_=class extends jg{constructor(t,i,s){super(t,i,ft.shearX+"|"+s,ft.shearY+"|"+s);T(this,"boneIndex",0);this.boneIndex=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];if(!l.active)return;let h=this.frames;if(s<h[0]){switch(a){case we.setup:l.shearX=l.data.shearX,l.shearY=l.data.shearY;return;case we.first:l.shearX+=(l.data.shearX-l.shearX)*o,l.shearY+=(l.data.shearY-l.shearY)*o}return}let u=0,d=0,f=ti.search(h,s,3),m=this.curves[f/3];switch(m){case 0:let p=h[f];u=h[f+1],d=h[f+2];let g=(s-p)/(h[f+3]-p);u+=(h[f+3+1]-u)*g,d+=(h[f+3+2]-d)*g;break;case 1:u=h[f+1],d=h[f+2];break;default:u=this.getBezierValue(s,f,1,m-2),d=this.getBezierValue(s,f,2,m+18-2)}switch(a){case we.setup:l.shearX=l.data.shearX+u*o,l.shearY=l.data.shearY+d*o;break;case we.first:case we.replace:l.shearX+=(l.data.shearX+u-l.shearX)*o,l.shearY+=(l.data.shearY+d-l.shearY)*o;break;case we.add:l.shearX+=u*o,l.shearY+=d*o}}},R_=class extends is{constructor(t,i,s){super(t,i,ft.shearX+"|"+s);T(this,"boneIndex",0);this.boneIndex=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];l.active&&(l.shearX=this.getRelativeValue(s,o,a,l.shearX,l.data.shearX))}},k_=class extends is{constructor(t,i,s){super(t,i,ft.shearY+"|"+s);T(this,"boneIndex",0);this.boneIndex=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];l.active&&(l.shearY=this.getRelativeValue(s,o,a,l.shearY,l.data.shearY))}},F_=class extends ti{constructor(t,i){super(t,[ft.inherit+"|"+i]);T(this,"boneIndex",0);this.boneIndex=i}getFrameEntries(){return 2}setFrame(t,i,s){t*=2,this.frames[t]=i,this.frames[t+1]=s}apply(t,i,s,r,o,a,c){let l=t.bones[this.boneIndex];if(!l.active)return;if(c==Hi.mixOut){a==we.setup&&(l.inherit=l.data.inherit);return}let h=this.frames;if(s<h[0]){(a==we.setup||a==we.first)&&(l.inherit=l.data.inherit);return}l.inherit=this.frames[ti.search(h,s,2)+1]}},L_=class extends ks{constructor(t,i,s){super(t,i,[ft.rgb+"|"+s,ft.alpha+"|"+s]);T(this,"slotIndex",0);this.slotIndex=s}getFrameEntries(){return 5}setFrame(t,i,s,r,o,a){t*=5,this.frames[t]=i,this.frames[t+1]=s,this.frames[t+2]=r,this.frames[t+3]=o,this.frames[t+4]=a}apply(t,i,s,r,o,a,c){let l=t.slots[this.slotIndex];if(!l.bone.active)return;let h=this.frames,u=l.color;if(s<h[0]){let b=l.data.color;switch(a){case we.setup:u.setFromColor(b);return;case we.first:u.add((b.r-u.r)*o,(b.g-u.g)*o,(b.b-u.b)*o,(b.a-u.a)*o)}return}let d=0,f=0,m=0,p=0,g=ti.search(h,s,5),v=this.curves[g/5];switch(v){case 0:let b=h[g];d=h[g+1],f=h[g+2],m=h[g+3],p=h[g+4];let y=(s-b)/(h[g+5]-b);d+=(h[g+5+1]-d)*y,f+=(h[g+5+2]-f)*y,m+=(h[g+5+3]-m)*y,p+=(h[g+5+4]-p)*y;break;case 1:d=h[g+1],f=h[g+2],m=h[g+3],p=h[g+4];break;default:d=this.getBezierValue(s,g,1,v-2),f=this.getBezierValue(s,g,2,v+18-2),m=this.getBezierValue(s,g,3,v+36-2),p=this.getBezierValue(s,g,4,v+54-2)}o==1?u.set(d,f,m,p):(a==we.setup&&u.setFromColor(l.data.color),u.add((d-u.r)*o,(f-u.g)*o,(m-u.b)*o,(p-u.a)*o))}},O_=class extends ks{constructor(t,i,s){super(t,i,[ft.rgb+"|"+s]);T(this,"slotIndex",0);this.slotIndex=s}getFrameEntries(){return 4}setFrame(t,i,s,r,o){t<<=2,this.frames[t]=i,this.frames[t+1]=s,this.frames[t+2]=r,this.frames[t+3]=o}apply(t,i,s,r,o,a,c){let l=t.slots[this.slotIndex];if(!l.bone.active)return;let h=this.frames,u=l.color;if(s<h[0]){let v=l.data.color;switch(a){case we.setup:u.r=v.r,u.g=v.g,u.b=v.b;return;case we.first:u.r+=(v.r-u.r)*o,u.g+=(v.g-u.g)*o,u.b+=(v.b-u.b)*o}return}let d=0,f=0,m=0,p=ti.search(h,s,4),g=this.curves[p>>2];switch(g){case 0:let v=h[p];d=h[p+1],f=h[p+2],m=h[p+3];let b=(s-v)/(h[p+4]-v);d+=(h[p+4+1]-d)*b,f+=(h[p+4+2]-f)*b,m+=(h[p+4+3]-m)*b;break;case 1:d=h[p+1],f=h[p+2],m=h[p+3];break;default:d=this.getBezierValue(s,p,1,g-2),f=this.getBezierValue(s,p,2,g+18-2),m=this.getBezierValue(s,p,3,g+36-2)}if(o==1)u.r=d,u.g=f,u.b=m;else{if(a==we.setup){let v=l.data.color;u.r=v.r,u.g=v.g,u.b=v.b}u.r+=(d-u.r)*o,u.g+=(f-u.g)*o,u.b+=(m-u.b)*o}}},$_=class extends is{constructor(t,i,s){super(t,i,ft.alpha+"|"+s);T(this,"slotIndex",0);this.slotIndex=s}apply(t,i,s,r,o,a,c){let l=t.slots[this.slotIndex];if(!l.bone.active)return;let h=l.color;if(s<this.frames[0]){let d=l.data.color;switch(a){case we.setup:h.a=d.a;return;case we.first:h.a+=(d.a-h.a)*o}return}let u=this.getCurveValue(s);o==1?h.a=u:(a==we.setup&&(h.a=l.data.color.a),h.a+=(u-h.a)*o)}},N_=class extends ks{constructor(t,i,s){super(t,i,[ft.rgb+"|"+s,ft.alpha+"|"+s,ft.rgb2+"|"+s]);T(this,"slotIndex",0);this.slotIndex=s}getFrameEntries(){return 8}setFrame(t,i,s,r,o,a,c,l,h){t<<=3,this.frames[t]=i,this.frames[t+1]=s,this.frames[t+2]=r,this.frames[t+3]=o,this.frames[t+4]=a,this.frames[t+5]=c,this.frames[t+6]=l,this.frames[t+7]=h}apply(t,i,s,r,o,a,c){let l=t.slots[this.slotIndex];if(!l.bone.active)return;let h=this.frames,u=l.color,d=l.darkColor;if(s<h[0]){let E=l.data.color,S=l.data.darkColor;switch(a){case we.setup:u.setFromColor(E),d.r=S.r,d.g=S.g,d.b=S.b;return;case we.first:u.add((E.r-u.r)*o,(E.g-u.g)*o,(E.b-u.b)*o,(E.a-u.a)*o),d.r+=(S.r-d.r)*o,d.g+=(S.g-d.g)*o,d.b+=(S.b-d.b)*o}return}let f=0,m=0,p=0,g=0,v=0,b=0,y=0,x=ti.search(h,s,8),_=this.curves[x>>3];switch(_){case 0:let E=h[x];f=h[x+1],m=h[x+2],p=h[x+3],g=h[x+4],v=h[x+5],b=h[x+6],y=h[x+7];let S=(s-E)/(h[x+8]-E);f+=(h[x+8+1]-f)*S,m+=(h[x+8+2]-m)*S,p+=(h[x+8+3]-p)*S,g+=(h[x+8+4]-g)*S,v+=(h[x+8+5]-v)*S,b+=(h[x+8+6]-b)*S,y+=(h[x+8+7]-y)*S;break;case 1:f=h[x+1],m=h[x+2],p=h[x+3],g=h[x+4],v=h[x+5],b=h[x+6],y=h[x+7];break;default:f=this.getBezierValue(s,x,1,_-2),m=this.getBezierValue(s,x,2,_+18-2),p=this.getBezierValue(s,x,3,_+36-2),g=this.getBezierValue(s,x,4,_+54-2),v=this.getBezierValue(s,x,5,_+72-2),b=this.getBezierValue(s,x,6,_+90-2),y=this.getBezierValue(s,x,7,_+108-2)}if(o==1)u.set(f,m,p,g),d.r=v,d.g=b,d.b=y;else{if(a==we.setup){u.setFromColor(l.data.color);let E=l.data.darkColor;d.r=E.r,d.g=E.g,d.b=E.b}u.add((f-u.r)*o,(m-u.g)*o,(p-u.b)*o,(g-u.a)*o),d.r+=(v-d.r)*o,d.g+=(b-d.g)*o,d.b+=(y-d.b)*o}}},D_=class extends ks{constructor(t,i,s){super(t,i,[ft.rgb+"|"+s,ft.rgb2+"|"+s]);T(this,"slotIndex",0);this.slotIndex=s}getFrameEntries(){return 7}setFrame(t,i,s,r,o,a,c,l){t*=7,this.frames[t]=i,this.frames[t+1]=s,this.frames[t+2]=r,this.frames[t+3]=o,this.frames[t+4]=a,this.frames[t+5]=c,this.frames[t+6]=l}apply(t,i,s,r,o,a,c){let l=t.slots[this.slotIndex];if(!l.bone.active)return;let h=this.frames,u=l.color,d=l.darkColor;if(s<h[0]){let _=l.data.color,E=l.data.darkColor;switch(a){case we.setup:u.r=_.r,u.g=_.g,u.b=_.b,d.r=E.r,d.g=E.g,d.b=E.b;return;case we.first:u.r+=(_.r-u.r)*o,u.g+=(_.g-u.g)*o,u.b+=(_.b-u.b)*o,d.r+=(E.r-d.r)*o,d.g+=(E.g-d.g)*o,d.b+=(E.b-d.b)*o}return}let f=0,m=0,p=0,g=0,v=0,b=0,y=ti.search(h,s,7),x=this.curves[y/7];switch(x){case 0:let _=h[y];f=h[y+1],m=h[y+2],p=h[y+3],g=h[y+4],v=h[y+5],b=h[y+6];let E=(s-_)/(h[y+7]-_);f+=(h[y+7+1]-f)*E,m+=(h[y+7+2]-m)*E,p+=(h[y+7+3]-p)*E,g+=(h[y+7+4]-g)*E,v+=(h[y+7+5]-v)*E,b+=(h[y+7+6]-b)*E;break;case 1:f=h[y+1],m=h[y+2],p=h[y+3],g=h[y+4],v=h[y+5],b=h[y+6];break;default:f=this.getBezierValue(s,y,1,x-2),m=this.getBezierValue(s,y,2,x+18-2),p=this.getBezierValue(s,y,3,x+36-2),g=this.getBezierValue(s,y,4,x+54-2),v=this.getBezierValue(s,y,5,x+72-2),b=this.getBezierValue(s,y,6,x+90-2)}if(o==1)u.r=f,u.g=m,u.b=p,d.r=g,d.g=v,d.b=b;else{if(a==we.setup){let _=l.data.color,E=l.data.darkColor;u.r=_.r,u.g=_.g,u.b=_.b,d.r=E.r,d.g=E.g,d.b=E.b}u.r+=(f-u.r)*o,u.g+=(m-u.g)*o,u.b+=(p-u.b)*o,d.r+=(g-d.r)*o,d.g+=(v-d.g)*o,d.b+=(b-d.b)*o}}},Sa=class extends ti{constructor(t,i){super(t,[ft.attachment+"|"+i]);T(this,"slotIndex",0);T(this,"attachmentNames");this.slotIndex=i,this.attachmentNames=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,i,s){this.frames[t]=i,this.attachmentNames[t]=s}apply(t,i,s,r,o,a,c){let l=t.slots[this.slotIndex];if(l.bone.active){if(c==Hi.mixOut){a==we.setup&&this.setAttachment(t,l,l.data.attachmentName);return}if(s<this.frames[0]){(a==we.setup||a==we.first)&&this.setAttachment(t,l,l.data.attachmentName);return}this.setAttachment(t,l,this.attachmentNames[ti.search1(this.frames,s)])}}setAttachment(t,i,s){i.setAttachment(s?t.getAttachment(this.slotIndex,s):null)}},B_=class extends ks{constructor(t,i,s,r){super(t,i,[ft.deform+"|"+s+"|"+r.id]);T(this,"slotIndex",0);T(this,"attachment");T(this,"vertices");this.slotIndex=s,this.attachment=r,this.vertices=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,i,s){this.frames[t]=i,this.vertices[t]=s}setBezier(t,i,s,r,o,a,c,l,h,u,d){let f=this.curves,m=this.getFrameCount()+t*18;s==0&&(f[i]=2+m);let p=(r-a*2+l)*.03,g=h*.03-c*.06,v=((a-l)*3-r+u)*.006,b=(c-h+.33333333)*.018,y=p*2+v,x=g*2+b,_=(a-r)*.3+p+v*.16666667,E=c*.3+g+b*.16666667,S=r+_,C=E;for(let M=m+18;m<M;m+=2)f[m]=S,f[m+1]=C,_+=y,E+=x,y+=v,x+=b,S+=_,C+=E}getCurvePercent(t,i){let s=this.curves,r=s[i];switch(r){case 0:let l=this.frames[i];return(t-l)/(this.frames[i+this.getFrameEntries()]-l);case 1:return 0}if(r-=2,s[r]>t){let l=this.frames[i];return s[r+1]*(t-l)/(s[r]-l)}let o=r+18;for(r+=2;r<o;r+=2)if(s[r]>=t){let l=s[r-2],h=s[r-1];return h+(t-l)/(s[r]-l)*(s[r+1]-h)}let a=s[o-2],c=s[o-1];return c+(1-c)*(t-a)/(this.frames[i+this.getFrameEntries()]-a)}apply(t,i,s,r,o,a,c){let l=t.slots[this.slotIndex];if(!l.bone.active)return;let h=l.getAttachment();if(!h||!(h instanceof pr)||h.timelineAttachment!=this.attachment)return;let u=l.deform;u.length==0&&(a=we.setup);let d=this.vertices,f=d[0].length,m=this.frames;if(s<m[0]){switch(a){case we.setup:u.length=0;return;case we.first:if(o==1){u.length=0;return}u.length=f;let x=h;if(x.bones){o=1-o;for(var p=0;p<f;p++)u[p]*=o}else{let _=x.vertices;for(var p=0;p<f;p++)u[p]+=(_[p]-u[p])*o}}return}if(u.length=f,s>=m[m.length-1]){let x=d[m.length-1];if(o==1)if(a==we.add){let _=h;if(_.bones)for(let E=0;E<f;E++)u[E]+=x[E];else{let E=_.vertices;for(let S=0;S<f;S++)u[S]+=x[S]-E[S]}}else Oe.arrayCopy(x,0,u,0,f);else switch(a){case we.setup:{let E=h;if(E.bones)for(let S=0;S<f;S++)u[S]=x[S]*o;else{let S=E.vertices;for(let C=0;C<f;C++){let M=S[C];u[C]=M+(x[C]-M)*o}}break}case we.first:case we.replace:for(let E=0;E<f;E++)u[E]+=(x[E]-u[E])*o;break;case we.add:let _=h;if(_.bones)for(let E=0;E<f;E++)u[E]+=x[E]*o;else{let E=_.vertices;for(let S=0;S<f;S++)u[S]+=(x[S]-E[S])*o}}return}let g=ti.search1(m,s),v=this.getCurvePercent(s,g),b=d[g],y=d[g+1];if(o==1)if(a==we.add){let x=h;if(x.bones)for(let _=0;_<f;_++){let E=b[_];u[_]+=E+(y[_]-E)*v}else{let _=x.vertices;for(let E=0;E<f;E++){let S=b[E];u[E]+=S+(y[E]-S)*v-_[E]}}}else for(let x=0;x<f;x++){let _=b[x];u[x]=_+(y[x]-_)*v}else switch(a){case we.setup:{let _=h;if(_.bones)for(let E=0;E<f;E++){let S=b[E];u[E]=(S+(y[E]-S)*v)*o}else{let E=_.vertices;for(let S=0;S<f;S++){let C=b[S],M=E[S];u[S]=M+(C+(y[S]-C)*v-M)*o}}break}case we.first:case we.replace:for(let _=0;_<f;_++){let E=b[_];u[_]+=(E+(y[_]-E)*v-u[_])*o}break;case we.add:let x=h;if(x.bones)for(let _=0;_<f;_++){let E=b[_];u[_]+=(E+(y[_]-E)*v)*o}else{let _=x.vertices;for(let E=0;E<f;E++){let S=b[E];u[E]+=(S+(y[E]-S)*v-_[E])*o}}}}};var Ao;let Wg=(Ao=class extends ti{constructor(t){super(t,Ao.propertyIds);T(this,"events");this.events=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,i){this.frames[t]=i.time,this.events[t]=i}apply(t,i,s,r,o,a,c){if(!r)return;let l=this.frames,h=this.frames.length;if(i>s)this.apply(t,i,Number.MAX_VALUE,r,o,a,c),i=-1;else if(i>=l[h-1])return;if(s<l[0])return;let u=0;if(i<l[0])u=0;else{u=ti.search1(l,i)+1;let d=l[u];for(;u>0&&l[u-1]==d;)u--}for(;u<h&&s>=l[u];u++)r.push(this.events[u])}},T(Ao,"propertyIds",[""+ft.event]),Ao);var Io;let Fl=(Io=class extends ti{constructor(t){super(t,Io.propertyIds);T(this,"drawOrders");this.drawOrders=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,i,s){this.frames[t]=i,this.drawOrders[t]=s}apply(t,i,s,r,o,a,c){if(c==Hi.mixOut){a==we.setup&&Oe.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length);return}if(s<this.frames[0]){(a==we.setup||a==we.first)&&Oe.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length);return}let l=ti.search1(this.frames,s),h=this.drawOrders[l];if(!h)Oe.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length);else{let u=t.drawOrder,d=t.slots;for(let f=0,m=h.length;f<m;f++)u[f]=d[h[f]]}}},T(Io,"propertyIds",[""+ft.drawOrder]),Io),U_=class extends ks{constructor(t,i,s){super(t,i,[ft.ikConstraint+"|"+s]);T(this,"constraintIndex",0);this.constraintIndex=s}getFrameEntries(){return 6}setFrame(t,i,s,r,o,a,c){t*=6,this.frames[t]=i,this.frames[t+1]=s,this.frames[t+2]=r,this.frames[t+3]=o,this.frames[t+4]=a?1:0,this.frames[t+5]=c?1:0}apply(t,i,s,r,o,a,c){let l=t.ikConstraints[this.constraintIndex];if(!l.active)return;let h=this.frames;if(s<h[0]){switch(a){case we.setup:l.mix=l.data.mix,l.softness=l.data.softness,l.bendDirection=l.data.bendDirection,l.compress=l.data.compress,l.stretch=l.data.stretch;return;case we.first:l.mix+=(l.data.mix-l.mix)*o,l.softness+=(l.data.softness-l.softness)*o,l.bendDirection=l.data.bendDirection,l.compress=l.data.compress,l.stretch=l.data.stretch}return}let u=0,d=0,f=ti.search(h,s,6),m=this.curves[f/6];switch(m){case 0:let p=h[f];u=h[f+1],d=h[f+2];let g=(s-p)/(h[f+6]-p);u+=(h[f+6+1]-u)*g,d+=(h[f+6+2]-d)*g;break;case 1:u=h[f+1],d=h[f+2];break;default:u=this.getBezierValue(s,f,1,m-2),d=this.getBezierValue(s,f,2,m+18-2)}a==we.setup?(l.mix=l.data.mix+(u-l.data.mix)*o,l.softness=l.data.softness+(d-l.data.softness)*o,c==Hi.mixOut?(l.bendDirection=l.data.bendDirection,l.compress=l.data.compress,l.stretch=l.data.stretch):(l.bendDirection=h[f+3],l.compress=h[f+4]!=0,l.stretch=h[f+5]!=0)):(l.mix+=(u-l.mix)*o,l.softness+=(d-l.softness)*o,c==Hi.mixIn&&(l.bendDirection=h[f+3],l.compress=h[f+4]!=0,l.stretch=h[f+5]!=0))}},V_=class extends ks{constructor(t,i,s){super(t,i,[ft.transformConstraint+"|"+s]);T(this,"constraintIndex",0);this.constraintIndex=s}getFrameEntries(){return 7}setFrame(t,i,s,r,o,a,c,l){let h=this.frames;t*=7,h[t]=i,h[t+1]=s,h[t+2]=r,h[t+3]=o,h[t+4]=a,h[t+5]=c,h[t+6]=l}apply(t,i,s,r,o,a,c){let l=t.transformConstraints[this.constraintIndex];if(!l.active)return;let h=this.frames;if(s<h[0]){let y=l.data;switch(a){case we.setup:l.mixRotate=y.mixRotate,l.mixX=y.mixX,l.mixY=y.mixY,l.mixScaleX=y.mixScaleX,l.mixScaleY=y.mixScaleY,l.mixShearY=y.mixShearY;return;case we.first:l.mixRotate+=(y.mixRotate-l.mixRotate)*o,l.mixX+=(y.mixX-l.mixX)*o,l.mixY+=(y.mixY-l.mixY)*o,l.mixScaleX+=(y.mixScaleX-l.mixScaleX)*o,l.mixScaleY+=(y.mixScaleY-l.mixScaleY)*o,l.mixShearY+=(y.mixShearY-l.mixShearY)*o}return}let u,d,f,m,p,g,v=ti.search(h,s,7),b=this.curves[v/7];switch(b){case 0:let y=h[v];u=h[v+1],d=h[v+2],f=h[v+3],m=h[v+4],p=h[v+5],g=h[v+6];let x=(s-y)/(h[v+7]-y);u+=(h[v+7+1]-u)*x,d+=(h[v+7+2]-d)*x,f+=(h[v+7+3]-f)*x,m+=(h[v+7+4]-m)*x,p+=(h[v+7+5]-p)*x,g+=(h[v+7+6]-g)*x;break;case 1:u=h[v+1],d=h[v+2],f=h[v+3],m=h[v+4],p=h[v+5],g=h[v+6];break;default:u=this.getBezierValue(s,v,1,b-2),d=this.getBezierValue(s,v,2,b+18-2),f=this.getBezierValue(s,v,3,b+36-2),m=this.getBezierValue(s,v,4,b+54-2),p=this.getBezierValue(s,v,5,b+72-2),g=this.getBezierValue(s,v,6,b+90-2)}if(a==we.setup){let y=l.data;l.mixRotate=y.mixRotate+(u-y.mixRotate)*o,l.mixX=y.mixX+(d-y.mixX)*o,l.mixY=y.mixY+(f-y.mixY)*o,l.mixScaleX=y.mixScaleX+(m-y.mixScaleX)*o,l.mixScaleY=y.mixScaleY+(p-y.mixScaleY)*o,l.mixShearY=y.mixShearY+(g-y.mixShearY)*o}else l.mixRotate+=(u-l.mixRotate)*o,l.mixX+=(d-l.mixX)*o,l.mixY+=(f-l.mixY)*o,l.mixScaleX+=(m-l.mixScaleX)*o,l.mixScaleY+=(p-l.mixScaleY)*o,l.mixShearY+=(g-l.mixShearY)*o}},X_=class extends is{constructor(t,i,s){super(t,i,ft.pathConstraintPosition+"|"+s);T(this,"constraintIndex",0);this.constraintIndex=s}apply(t,i,s,r,o,a,c){let l=t.pathConstraints[this.constraintIndex];l.active&&(l.position=this.getAbsoluteValue(s,o,a,l.position,l.data.position))}},Y_=class extends is{constructor(t,i,s){super(t,i,ft.pathConstraintSpacing+"|"+s);T(this,"constraintIndex",0);this.constraintIndex=s}apply(t,i,s,r,o,a,c){let l=t.pathConstraints[this.constraintIndex];l.active&&(l.spacing=this.getAbsoluteValue(s,o,a,l.spacing,l.data.spacing))}},G_=class extends ks{constructor(t,i,s){super(t,i,[ft.pathConstraintMix+"|"+s]);T(this,"constraintIndex",0);this.constraintIndex=s}getFrameEntries(){return 4}setFrame(t,i,s,r,o){let a=this.frames;t<<=2,a[t]=i,a[t+1]=s,a[t+2]=r,a[t+3]=o}apply(t,i,s,r,o,a,c){let l=t.pathConstraints[this.constraintIndex];if(!l.active)return;let h=this.frames;if(s<h[0]){switch(a){case we.setup:l.mixRotate=l.data.mixRotate,l.mixX=l.data.mixX,l.mixY=l.data.mixY;return;case we.first:l.mixRotate+=(l.data.mixRotate-l.mixRotate)*o,l.mixX+=(l.data.mixX-l.mixX)*o,l.mixY+=(l.data.mixY-l.mixY)*o}return}let u,d,f,m=ti.search(h,s,4),p=this.curves[m>>2];switch(p){case 0:let g=h[m];u=h[m+1],d=h[m+2],f=h[m+3];let v=(s-g)/(h[m+4]-g);u+=(h[m+4+1]-u)*v,d+=(h[m+4+2]-d)*v,f+=(h[m+4+3]-f)*v;break;case 1:u=h[m+1],d=h[m+2],f=h[m+3];break;default:u=this.getBezierValue(s,m,1,p-2),d=this.getBezierValue(s,m,2,p+18-2),f=this.getBezierValue(s,m,3,p+36-2)}if(a==we.setup){let g=l.data;l.mixRotate=g.mixRotate+(u-g.mixRotate)*o,l.mixX=g.mixX+(d-g.mixX)*o,l.mixY=g.mixY+(f-g.mixY)*o}else l.mixRotate+=(u-l.mixRotate)*o,l.mixX+=(d-l.mixX)*o,l.mixY+=(f-l.mixY)*o}},zo=class extends is{constructor(t,i,s,r){super(t,i,r+"|"+s);T(this,"constraintIndex",0);this.constraintIndex=s}apply(t,i,s,r,o,a,c){let l;if(this.constraintIndex==-1){const h=s>=this.frames[0]?this.getCurveValue(s):0;for(const u of t.physicsConstraints)u.active&&this.global(u.data)&&this.set(u,this.getAbsoluteValue2(s,o,a,this.get(u),this.setup(u),h))}else l=t.physicsConstraints[this.constraintIndex],l.active&&this.set(l,this.getAbsoluteValue(s,o,a,this.get(l),this.setup(l)))}},H_=class extends zo{constructor(e,t,i){super(e,t,i,ft.physicsConstraintInertia)}setup(e){return e.data.inertia}get(e){return e.inertia}set(e,t){e.inertia=t}global(e){return e.inertiaGlobal}},j_=class extends zo{constructor(e,t,i){super(e,t,i,ft.physicsConstraintStrength)}setup(e){return e.data.strength}get(e){return e.strength}set(e,t){e.strength=t}global(e){return e.strengthGlobal}},W_=class extends zo{constructor(e,t,i){super(e,t,i,ft.physicsConstraintDamping)}setup(e){return e.data.damping}get(e){return e.damping}set(e,t){e.damping=t}global(e){return e.dampingGlobal}},z_=class extends zo{constructor(e,t,i){super(e,t,i,ft.physicsConstraintMass)}setup(e){return 1/e.data.massInverse}get(e){return 1/e.massInverse}set(e,t){e.massInverse=1/t}global(e){return e.massGlobal}},q_=class extends zo{constructor(e,t,i){super(e,t,i,ft.physicsConstraintWind)}setup(e){return e.data.wind}get(e){return e.wind}set(e,t){e.wind=t}global(e){return e.windGlobal}},K_=class extends zo{constructor(e,t,i){super(e,t,i,ft.physicsConstraintGravity)}setup(e){return e.data.gravity}get(e){return e.gravity}set(e,t){e.gravity=t}global(e){return e.gravityGlobal}},J_=class extends zo{constructor(e,t,i){super(e,t,i,ft.physicsConstraintMix)}setup(e){return e.data.mix}get(e){return e.mix}set(e,t){e.mix=t}global(e){return e.mixGlobal}};var Po;let Z_=(Po=class extends ti{constructor(t,i){super(t,Po.propertyIds);T(this,"constraintIndex");this.constraintIndex=i}getFrameCount(){return this.frames.length}setFrame(t,i){this.frames[t]=i}apply(t,i,s,r,o,a,c){let l;if(this.constraintIndex!=-1&&(l=t.physicsConstraints[this.constraintIndex],!l.active))return;const h=this.frames;if(i>s)this.apply(t,i,Number.MAX_VALUE,[],o,a,c),i=-1;else if(i>=h[h.length-1])return;if(!(s<h[0])&&(i<h[0]||s>=h[ti.search1(h,i)+1]))if(l!=null)l.reset();else for(const u of t.physicsConstraints)u.active&&u.reset()}},T(Po,"propertyIds",[ft.physicsConstraintReset.toString()]),Po);var Ji;let Q_=(Ji=class extends ti{constructor(t,i,s){super(t,[ft.sequence+"|"+i+"|"+s.sequence.id]);T(this,"slotIndex");T(this,"attachment");this.slotIndex=i,this.attachment=s}getFrameEntries(){return Ji.ENTRIES}getSlotIndex(){return this.slotIndex}getAttachment(){return this.attachment}setFrame(t,i,s,r,o){let a=this.frames;t*=Ji.ENTRIES,a[t]=i,a[t+Ji.MODE]=s|r<<4,a[t+Ji.DELAY]=o}apply(t,i,s,r,o,a,c){let l=t.slots[this.slotIndex];if(!l.bone.active)return;let h=l.attachment,u=this.attachment;if(h!=u&&(!(h instanceof pr)||h.timelineAttachment!=u))return;if(c==Hi.mixOut){a==we.setup&&(l.sequenceIndex=-1);return}let d=this.frames;if(s<d[0]){(a==we.setup||a==we.first)&&(l.sequenceIndex=-1);return}let f=ti.search(d,s,Ji.ENTRIES),m=d[f],p=d[f+Ji.MODE],g=d[f+Ji.DELAY];if(!this.attachment.sequence)return;let v=p>>4,b=this.attachment.sequence.regions.length,y=__[p&15];if(y!=Oi.hold)switch(v+=(s-m)/g+1e-5|0,y){case Oi.once:v=Math.min(b-1,v);break;case Oi.loop:v%=b;break;case Oi.pingpong:{let x=(b<<1)-2;v=x==0?0:v%x,v>=b&&(v=x-v);break}case Oi.onceReverse:v=Math.max(b-1-v,0);break;case Oi.loopReverse:v=b-1-v%b;break;case Oi.pingpongReverse:{let x=(b<<1)-2;v=x==0?0:(v+b-1)%x,v>=b&&(v=x-v)}}l.sequenceIndex=v}},T(Ji,"ENTRIES",3),T(Ji,"MODE",1),T(Ji,"DELAY",2),Ji);var rr;let J$=(rr=class{constructor(e){T(this,"data");T(this,"tracks",new Array);T(this,"timeScale",1);T(this,"unkeyedState",0);T(this,"events",new Array);T(this,"listeners",new Array);T(this,"queue",new Q$(this));T(this,"propertyIDs",new x_);T(this,"animationsChanged",!1);T(this,"trackEntryPool",new fu(()=>new Z$));this.data=e}static emptyAnimation(){return rr._emptyAnimation}update(e){e*=this.timeScale;let t=this.tracks;for(let i=0,s=t.length;i<s;i++){let r=t[i];if(!r)continue;r.animationLast=r.nextAnimationLast,r.trackLast=r.nextTrackLast;let o=e*r.timeScale;if(r.delay>0){if(r.delay-=o,r.delay>0)continue;o=-r.delay,r.delay=0}let a=r.next;if(a){let c=r.trackLast-a.delay;if(c>=0){for(a.delay=0,a.trackTime+=r.timeScale==0?0:(c/r.timeScale+e)*a.timeScale,r.trackTime+=o,this.setCurrent(i,a,!0);a.mixingFrom;)a.mixTime+=e,a=a.mixingFrom;continue}}else if(r.trackLast>=r.trackEnd&&!r.mixingFrom){t[i]=null,this.queue.end(r),this.clearNext(r);continue}if(r.mixingFrom&&this.updateMixingFrom(r,e)){let c=r.mixingFrom;for(r.mixingFrom=null,c&&(c.mixingTo=null);c;)this.queue.end(c),c=c.mixingFrom}r.trackTime+=o}this.queue.drain()}updateMixingFrom(e,t){let i=e.mixingFrom;if(!i)return!0;let s=this.updateMixingFrom(i,t);return i.animationLast=i.nextAnimationLast,i.trackLast=i.nextTrackLast,e.nextTrackLast!=-1&&e.mixTime>=e.mixDuration?((i.totalAlpha==0||e.mixDuration==0)&&(e.mixingFrom=i.mixingFrom,i.mixingFrom!=null&&(i.mixingFrom.mixingTo=e),e.interruptAlpha=i.interruptAlpha,this.queue.end(i)),s):(i.trackTime+=t*i.timeScale,e.mixTime+=t,!1)}apply(e){if(!e)throw new Error("skeleton cannot be null.");this.animationsChanged&&this._animationsChanged();let t=this.events,i=this.tracks,s=!1;for(let d=0,f=i.length;d<f;d++){let m=i[d];if(!m||m.delay>0)continue;s=!0;let p=d==0?we.first:m.mixBlend,g=m.alpha;m.mixingFrom?g*=this.applyMixingFrom(m,e,p):m.trackTime>=m.trackEnd&&!m.next&&(g=0);let v=g>=m.alphaAttachmentThreshold,b=m.animationLast,y=m.getAnimationTime(),x=y,_=t;m.reverse&&(x=m.animation.duration-x,_=null);let E=m.animation.timelines,S=E.length;if(d==0&&g==1||p==we.add){d==0&&(v=!0);for(let C=0;C<S;C++){var r=E[C];r instanceof Sa?this.applyAttachmentTimeline(r,e,x,p,v):r.apply(e,b,x,_,g,p,Hi.mixIn)}}else{let C=m.timelineMode,M=m.shortestRotation,P=!M&&m.timelinesRotation.length!=S<<1;P&&(m.timelinesRotation.length=S<<1);for(let A=0;A<S;A++){let R=E[A],B=C[A]==dm?p:we.setup;!M&&R instanceof pu?this.applyRotateTimeline(R,e,x,g,B,m.timelinesRotation,A<<1,P):R instanceof Sa?this.applyAttachmentTimeline(R,e,x,p,v):R.apply(e,b,x,_,g,B,Hi.mixIn)}}this.queueEvents(m,y),t.length=0,m.nextAnimationLast=y,m.nextTrackLast=m.trackTime}for(var o=this.unkeyedState+zb,a=e.slots,c=0,l=e.slots.length;c<l;c++){var h=a[c];if(h.attachmentState==o){var u=h.data.attachmentName;h.setAttachment(u?e.getAttachment(h.data.index,u):null)}}return this.unkeyedState+=2,this.queue.drain(),s}applyMixingFrom(e,t,i){let s=e.mixingFrom;s.mixingFrom&&this.applyMixingFrom(s,t,i);let r=0;e.mixDuration==0?(r=1,i==we.first&&(i=we.setup)):(r=e.mixTime/e.mixDuration,r>1&&(r=1),i!=we.first&&(i=s.mixBlend));let o=r<s.mixAttachmentThreshold,a=r<s.mixDrawOrderThreshold,c=s.animation.timelines,l=c.length,h=s.alpha*e.interruptAlpha,u=h*(1-r),d=s.animationLast,f=s.getAnimationTime(),m=f,p=null;if(s.reverse?m=s.animation.duration-m:r<s.eventThreshold&&(p=this.events),i==we.add)for(let g=0;g<l;g++)c[g].apply(t,d,m,p,u,i,Hi.mixOut);else{let g=s.timelineMode,v=s.timelineHoldMix,b=s.shortestRotation,y=!b&&s.timelinesRotation.length!=l<<1;y&&(s.timelinesRotation.length=l<<1),s.totalAlpha=0;for(let x=0;x<l;x++){let _=c[x],E=Hi.mixOut,S,C=0;switch(g[x]){case dm:if(!a&&_ instanceof Fl)continue;S=i,C=u;break;case jb:S=we.setup,C=u;break;case Wb:S=i,C=h;break;case fm:S=we.setup,C=h;break;default:S=we.setup;let M=v[x];C=h*Math.max(0,1-M.mixTime/M.mixDuration);break}s.totalAlpha+=C,!b&&_ instanceof pu?this.applyRotateTimeline(_,t,m,C,S,s.timelinesRotation,x<<1,y):_ instanceof Sa?this.applyAttachmentTimeline(_,t,m,S,o&&C>=s.alphaAttachmentThreshold):(a&&_ instanceof Fl&&S==we.setup&&(E=Hi.mixIn),_.apply(t,d,m,p,C,S,E))}}return e.mixDuration>0&&this.queueEvents(s,f),this.events.length=0,s.nextAnimationLast=f,s.nextTrackLast=s.trackTime,r}applyAttachmentTimeline(e,t,i,s,r){var o=t.slots[e.slotIndex];o.bone.active&&(i<e.frames[0]?(s==we.setup||s==we.first)&&this.setAttachment(t,o,o.data.attachmentName,r):this.setAttachment(t,o,e.attachmentNames[ti.search1(e.frames,i)],r),o.attachmentState<=this.unkeyedState&&(o.attachmentState=this.unkeyedState+zb))}setAttachment(e,t,i,s){t.setAttachment(i?e.getAttachment(t.data.index,i):null),s&&(t.attachmentState=this.unkeyedState+tN)}applyRotateTimeline(e,t,i,s,r,o,a,c){if(c&&(o[a]=0),s==1){e.apply(t,0,i,null,1,r,Hi.mixIn);return}let l=t.bones[e.boneIndex];if(!l.active)return;let h=e.frames,u=0,d=0;if(i<h[0])switch(r){case we.setup:l.rotation=l.data.rotation;default:return;case we.first:u=l.rotation,d=l.data.rotation}else u=r==we.setup?l.data.rotation:l.rotation,d=l.data.rotation+e.getCurveValue(i);let f=0,m=d-u;if(m-=Math.ceil(m/360-.5)*360,m==0)f=o[a];else{let p=0,g=0;c?(p=0,g=m):(p=o[a],g=o[a+1]);let v=p-p%360;f=m+v;let b=m>=0,y=p>=0;Math.abs(g)<=90&&ke.signum(g)!=ke.signum(m)&&(Math.abs(p-v)>180?(f+=360*ke.signum(p),y=b):v!=0?f-=360*ke.signum(p):y=b),y!=b&&(f+=360*ke.signum(p)),o[a]=f}o[a+1]=m,l.rotation=u+f*s}queueEvents(e,t){let i=e.animationStart,s=e.animationEnd,r=s-i,o=e.trackLast%r,a=this.events,c=0,l=a.length;for(;c<l;c++){let u=a[c];if(u.time<o)break;u.time>s||this.queue.event(e,u)}let h=!1;if(e.loop)if(r==0)h=!0;else{const u=Math.floor(e.trackTime/r);h=u>0&&u>Math.floor(e.trackLast/r)}else h=t>=s&&e.animationLast<s;for(h&&this.queue.complete(e);c<l;c++){let u=a[c];u.time<i||this.queue.event(e,u)}}clearTracks(){let e=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let t=0,i=this.tracks.length;t<i;t++)this.clearTrack(t);this.tracks.length=0,this.queue.drainDisabled=e,this.queue.drain()}clearTrack(e){if(e>=this.tracks.length)return;let t=this.tracks[e];if(!t)return;this.queue.end(t),this.clearNext(t);let i=t;for(;;){let s=i.mixingFrom;if(!s)break;this.queue.end(s),i.mixingFrom=null,i.mixingTo=null,i=s}this.tracks[t.trackIndex]=null,this.queue.drain()}setCurrent(e,t,i){let s=this.expandToIndex(e);this.tracks[e]=t,t.previous=null,s&&(i&&this.queue.interrupt(s),t.mixingFrom=s,s.mixingTo=t,t.mixTime=0,s.mixingFrom&&s.mixDuration>0&&(t.interruptAlpha*=Math.min(1,s.mixTime/s.mixDuration)),s.timelinesRotation.length=0),this.queue.start(t)}setAnimation(e,t,i=!1){let s=this.data.skeletonData.findAnimation(t);if(!s)throw new Error("Animation not found: "+t);return this.setAnimationWith(e,s,i)}setAnimationWith(e,t,i=!1){if(!t)throw new Error("animation cannot be null.");let s=!0,r=this.expandToIndex(e);r&&(r.nextTrackLast==-1?(this.tracks[e]=r.mixingFrom,this.queue.interrupt(r),this.queue.end(r),this.clearNext(r),r=r.mixingFrom,s=!1):this.clearNext(r));let o=this.trackEntry(e,t,i,r);return this.setCurrent(e,o,s),this.queue.drain(),o}addAnimation(e,t,i=!1,s=0){let r=this.data.skeletonData.findAnimation(t);if(!r)throw new Error("Animation not found: "+t);return this.addAnimationWith(e,r,i,s)}addAnimationWith(e,t,i=!1,s=0){if(!t)throw new Error("animation cannot be null.");let r=this.expandToIndex(e);if(r)for(;r.next;)r=r.next;let o=this.trackEntry(e,t,i,r);return r?(r.next=o,o.previous=r,s<=0&&(s=Math.max(s+r.getTrackComplete()-o.mixDuration,0))):(this.setCurrent(e,o,!0),this.queue.drain(),s<0&&(s=0)),o.delay=s,o}setEmptyAnimation(e,t=0){let i=this.setAnimationWith(e,rr.emptyAnimation(),!1);return i.mixDuration=t,i.trackEnd=t,i}addEmptyAnimation(e,t=0,i=0){let s=this.addAnimationWith(e,rr.emptyAnimation(),!1,i);return i<=0&&(s.delay=Math.max(s.delay+s.mixDuration-t,0)),s.mixDuration=t,s.trackEnd=t,s}setEmptyAnimations(e=0){let t=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let i=0,s=this.tracks.length;i<s;i++){let r=this.tracks[i];r&&this.setEmptyAnimation(r.trackIndex,e)}this.queue.drainDisabled=t,this.queue.drain()}expandToIndex(e){return e<this.tracks.length?this.tracks[e]:(Oe.ensureArrayCapacity(this.tracks,e+1,null),this.tracks.length=e+1,null)}trackEntry(e,t,i,s){let r=this.trackEntryPool.obtain();return r.reset(),r.trackIndex=e,r.animation=t,r.loop=i,r.holdPrevious=!1,r.reverse=!1,r.shortestRotation=!1,r.eventThreshold=0,r.alphaAttachmentThreshold=0,r.mixAttachmentThreshold=0,r.mixDrawOrderThreshold=0,r.animationStart=0,r.animationEnd=t.duration,r.animationLast=-1,r.nextAnimationLast=-1,r.delay=0,r.trackTime=0,r.trackLast=-1,r.nextTrackLast=-1,r.trackEnd=Number.MAX_VALUE,r.timeScale=1,r.alpha=1,r.mixTime=0,r.mixDuration=s?this.data.getMix(s.animation,t):0,r.interruptAlpha=1,r.totalAlpha=0,r.mixBlend=we.replace,r}clearNext(e){let t=e.next;for(;t;)this.queue.dispose(t),t=t.next;e.next=null}_animationsChanged(){this.animationsChanged=!1,this.propertyIDs.clear();let e=this.tracks;for(let t=0,i=e.length;t<i;t++){let s=e[t];if(s){for(;s.mixingFrom;)s=s.mixingFrom;do(!s.mixingTo||s.mixBlend!=we.add)&&this.computeHold(s),s=s.mixingTo;while(s)}}}computeHold(e){let t=e.mixingTo,i=e.animation.timelines,s=e.animation.timelines.length,r=e.timelineMode;r.length=s;let o=e.timelineHoldMix;o.length=0;let a=this.propertyIDs;if(t&&t.holdPrevious){for(let c=0;c<s;c++)r[c]=a.addAll(i[c].getPropertyIds())?fm:Wb;return}e:for(let c=0;c<s;c++){let l=i[c],h=l.getPropertyIds();if(!a.addAll(h))r[c]=dm;else if(!t||l instanceof Sa||l instanceof Fl||l instanceof Wg||!t.animation.hasTimeline(h))r[c]=jb;else{for(let u=t.mixingTo;u;u=u.mixingTo)if(!u.animation.hasTimeline(h)){if(e.mixDuration>0){r[c]=eN,o[c]=u;continue e}break}r[c]=fm}}}getCurrent(e){return e>=this.tracks.length?null:this.tracks[e]}addListener(e){if(!e)throw new Error("listener cannot be null.");this.listeners.push(e)}removeListener(e){let t=this.listeners.indexOf(e);t>=0&&this.listeners.splice(t,1)}clearListeners(){this.listeners.length=0}clearListenerNotifications(){this.queue.clear()}},T(rr,"_emptyAnimation",new Hg("<empty>",[],0)),rr),Z$=class{constructor(){T(this,"animation",null);T(this,"previous",null);T(this,"next",null);T(this,"mixingFrom",null);T(this,"mixingTo",null);T(this,"listener",null);T(this,"trackIndex",0);T(this,"loop",!1);T(this,"holdPrevious",!1);T(this,"reverse",!1);T(this,"shortestRotation",!1);T(this,"eventThreshold",0);T(this,"mixAttachmentThreshold",0);T(this,"alphaAttachmentThreshold",0);T(this,"mixDrawOrderThreshold",0);T(this,"animationStart",0);T(this,"animationEnd",0);T(this,"animationLast",0);T(this,"nextAnimationLast",0);T(this,"delay",0);T(this,"trackTime",0);T(this,"trackLast",0);T(this,"nextTrackLast",0);T(this,"trackEnd",0);T(this,"timeScale",0);T(this,"alpha",0);T(this,"mixTime",0);T(this,"_mixDuration",0);T(this,"interruptAlpha",0);T(this,"totalAlpha",0);T(this,"mixBlend",we.replace);T(this,"timelineMode",new Array);T(this,"timelineHoldMix",new Array);T(this,"timelinesRotation",new Array)}get mixDuration(){return this._mixDuration}set mixDuration(e){this._mixDuration=e}setMixDurationWithDelay(e,t){this._mixDuration=e,t<=0&&(this.previous!=null?t=Math.max(t+this.previous.getTrackComplete()-e,0):t=0),this.delay=t}reset(){this.next=null,this.previous=null,this.mixingFrom=null,this.mixingTo=null,this.animation=null,this.listener=null,this.timelineMode.length=0,this.timelineHoldMix.length=0,this.timelinesRotation.length=0}getAnimationTime(){if(this.loop){let e=this.animationEnd-this.animationStart;return e==0?this.animationStart:this.trackTime%e+this.animationStart}return Math.min(this.trackTime+this.animationStart,this.animationEnd)}setAnimationLast(e){this.animationLast=e,this.nextAnimationLast=e}isComplete(){return this.trackTime>=this.animationEnd-this.animationStart}resetRotationDirections(){this.timelinesRotation.length=0}getTrackComplete(){let e=this.animationEnd-this.animationStart;if(e!=0){if(this.loop)return e*(1+(this.trackTime/e|0));if(this.trackTime<e)return e}return this.trackTime}wasApplied(){return this.nextTrackLast!=-1}isNextReady(){return this.next!=null&&this.nextTrackLast-this.next.delay>=0}},Q$=class{constructor(e){T(this,"objects",[]);T(this,"drainDisabled",!1);T(this,"animState");this.animState=e}start(e){this.objects.push(an.start),this.objects.push(e),this.animState.animationsChanged=!0}interrupt(e){this.objects.push(an.interrupt),this.objects.push(e)}end(e){this.objects.push(an.end),this.objects.push(e),this.animState.animationsChanged=!0}dispose(e){this.objects.push(an.dispose),this.objects.push(e)}complete(e){this.objects.push(an.complete),this.objects.push(e)}event(e,t){this.objects.push(an.event),this.objects.push(e),this.objects.push(t)}drain(){if(this.drainDisabled)return;this.drainDisabled=!0;let e=this.objects;for(let t=0;t<e.length;t+=2){let i=e[t],s=e[t+1],r=this.animState.listeners.slice();switch(i){case an.start:s.listener&&s.listener.start&&s.listener.start(s);for(let a=0;a<r.length;a++){let c=r[a];c.start&&c.start(s)}break;case an.interrupt:s.listener&&s.listener.interrupt&&s.listener.interrupt(s);for(let a=0;a<r.length;a++){let c=r[a];c.interrupt&&c.interrupt(s)}break;case an.end:s.listener&&s.listener.end&&s.listener.end(s);for(let a=0;a<r.length;a++){let c=r[a];c.end&&c.end(s)}case an.dispose:s.listener&&s.listener.dispose&&s.listener.dispose(s);for(let a=0;a<r.length;a++){let c=r[a];c.dispose&&c.dispose(s)}this.animState.trackEntryPool.free(s);break;case an.complete:s.listener&&s.listener.complete&&s.listener.complete(s);for(let a=0;a<r.length;a++){let c=r[a];c.complete&&c.complete(s)}break;case an.event:let o=e[t+++2];s.listener&&s.listener.event&&s.listener.event(s,o);for(let a=0;a<r.length;a++){let c=r[a];c.event&&c.event(s,o)}break}}this.clear(),this.drainDisabled=!1}clear(){this.objects.length=0}};var an;(function(n){n[n.start=0]="start",n[n.interrupt=1]="interrupt",n[n.end=2]="end",n[n.dispose=3]="dispose",n[n.complete=4]="complete",n[n.event=5]="event"})(an||(an={}));const dm=0,jb=1,Wb=2,fm=3,eN=4,zb=1,tN=2;class iN{constructor(e){T(this,"skeletonData");T(this,"animationToMixTime",{});T(this,"defaultMix",0);if(!e)throw new Error("skeletonData cannot be null.");this.skeletonData=e}setMix(e,t,i){let s=this.skeletonData.findAnimation(e);if(!s)throw new Error("Animation not found: "+e);let r=this.skeletonData.findAnimation(t);if(!r)throw new Error("Animation not found: "+t);this.setMixWith(s,r,i)}setMixWith(e,t,i){if(!e)throw new Error("from cannot be null.");if(!t)throw new Error("to cannot be null.");let s=e.name+"."+t.name;this.animationToMixTime[s]=i}getMix(e,t){let i=e.name+"."+t.name,s=this.animationToMixTime[i];return s===void 0?this.defaultMix:s}}let eT=class tT extends pr{constructor(t){super(t);T(this,"color",new ut(1,1,1,1))}copy(){let t=new tT(this.name);return this.copyTo(t),t.color.setFromColor(this.color),t}},$a=class iT extends pr{constructor(t){super(t);T(this,"endSlot",null);T(this,"color",new ut(.2275,.2275,.8078,1))}copy(){let t=new iT(this.name);return this.copyTo(t),t.endSlot=this.endSlot,t.color.setFromColor(this.color),t}},nN=class{constructor(e){T(this,"_image");this._image=e}getImage(){return this._image}};var Ai;(function(n){n[n.Nearest=9728]="Nearest",n[n.Linear=9729]="Linear",n[n.MipMap=9987]="MipMap",n[n.MipMapNearestNearest=9984]="MipMapNearestNearest",n[n.MipMapLinearNearest=9985]="MipMapLinearNearest",n[n.MipMapNearestLinear=9986]="MipMapNearestLinear",n[n.MipMapLinearLinear=9987]="MipMapLinearLinear"})(Ai||(Ai={}));var cr;(function(n){n[n.MirroredRepeat=33648]="MirroredRepeat",n[n.ClampToEdge=33071]="ClampToEdge",n[n.Repeat=10497]="Repeat"})(cr||(cr={}));let sN=class{constructor(){T(this,"texture");T(this,"u",0);T(this,"v",0);T(this,"u2",0);T(this,"v2",0);T(this,"width",0);T(this,"height",0);T(this,"degrees",0);T(this,"offsetX",0);T(this,"offsetY",0);T(this,"originalWidth",0);T(this,"originalHeight",0)}},nT=class{constructor(e){T(this,"pages",new Array);T(this,"regions",new Array);let t=new rN(e),i=new Array(4),s={};s.size=h=>{h.width=parseInt(i[1]),h.height=parseInt(i[2])},s.format=()=>{},s.filter=h=>{h.minFilter=Oe.enumValue(Ai,i[1]),h.magFilter=Oe.enumValue(Ai,i[2])},s.repeat=h=>{i[1].indexOf("x")!=-1&&(h.uWrap=cr.Repeat),i[1].indexOf("y")!=-1&&(h.vWrap=cr.Repeat)},s.pma=h=>{h.pma=i[1]=="true"};var r={};r.xy=h=>{h.x=parseInt(i[1]),h.y=parseInt(i[2])},r.size=h=>{h.width=parseInt(i[1]),h.height=parseInt(i[2])},r.bounds=h=>{h.x=parseInt(i[1]),h.y=parseInt(i[2]),h.width=parseInt(i[3]),h.height=parseInt(i[4])},r.offset=h=>{h.offsetX=parseInt(i[1]),h.offsetY=parseInt(i[2])},r.orig=h=>{h.originalWidth=parseInt(i[1]),h.originalHeight=parseInt(i[2])},r.offsets=h=>{h.offsetX=parseInt(i[1]),h.offsetY=parseInt(i[2]),h.originalWidth=parseInt(i[3]),h.originalHeight=parseInt(i[4])},r.rotate=h=>{let u=i[1];u=="true"?h.degrees=90:u!="false"&&(h.degrees=parseInt(u))},r.index=h=>{h.index=parseInt(i[1])};let o=t.readLine();for(;o&&o.trim().length==0;)o=t.readLine();for(;!(!o||o.trim().length==0||t.readEntry(i,o)==0);)o=t.readLine();let a=null,c=null,l=null;for(;o!==null;)if(o.trim().length==0)a=null,o=t.readLine();else if(a){let h=new sT(a,o);for(;;){let u=t.readEntry(i,o=t.readLine());if(u==0)break;let d=r[i[0]];if(d)d(h);else{c||(c=[]),l||(l=[]),c.push(i[0]);let f=[];for(let m=0;m<u;m++)f.push(parseInt(i[m+1]));l.push(f)}}h.originalWidth==0&&h.originalHeight==0&&(h.originalWidth=h.width,h.originalHeight=h.height),c&&c.length>0&&l&&l.length>0&&(h.names=c,h.values=l,c=null,l=null),h.u=h.x/a.width,h.v=h.y/a.height,h.degrees==90?(h.u2=(h.x+h.height)/a.width,h.v2=(h.y+h.width)/a.height):(h.u2=(h.x+h.width)/a.width,h.v2=(h.y+h.height)/a.height),this.regions.push(h)}else{for(a=new oN(o.trim());t.readEntry(i,o=t.readLine())!=0;){let h=s[i[0]];h&&h(a)}this.pages.push(a)}}findRegion(e){for(let t=0;t<this.regions.length;t++)if(this.regions[t].name==e)return this.regions[t];return null}setTextures(e,t=""){for(let i of this.pages)i.setTexture(e.get(t+i.name))}dispose(){var e;for(let t=0;t<this.pages.length;t++)(e=this.pages[t].texture)==null||e.dispose()}},rN=class{constructor(e){T(this,"lines");T(this,"index",0);this.lines=e.split(/\r\n|\r|\n/)}readLine(){return this.index>=this.lines.length?null:this.lines[this.index++]}readEntry(e,t){if(!t||(t=t.trim(),t.length==0))return 0;let i=t.indexOf(":");if(i==-1)return 0;e[0]=t.substr(0,i).trim();for(let s=1,r=i+1;;s++){let o=t.indexOf(",",r);if(o==-1)return e[s]=t.substr(r).trim(),s;if(e[s]=t.substr(r,o-r).trim(),r=o+1,s==4)return 4}}},oN=class{constructor(e){T(this,"name");T(this,"minFilter",Ai.Nearest);T(this,"magFilter",Ai.Nearest);T(this,"uWrap",cr.ClampToEdge);T(this,"vWrap",cr.ClampToEdge);T(this,"texture",null);T(this,"width",0);T(this,"height",0);T(this,"pma",!1);T(this,"regions",new Array);this.name=e}setTexture(e){this.texture=e,e.setFilters(this.minFilter,this.magFilter),e.setWraps(this.uWrap,this.vWrap);for(let t of this.regions)t.texture=e}},sT=class extends sN{constructor(t,i){super();T(this,"page");T(this,"name");T(this,"x",0);T(this,"y",0);T(this,"offsetX",0);T(this,"offsetY",0);T(this,"originalWidth",0);T(this,"originalHeight",0);T(this,"index",0);T(this,"degrees",0);T(this,"names",null);T(this,"values",null);this.page=t,this.name=i,t.regions.push(this)}},bc=class Pp extends pr{constructor(t,i){super(t);T(this,"region",null);T(this,"path");T(this,"regionUVs",[]);T(this,"uvs",[]);T(this,"triangles",[]);T(this,"color",new ut(1,1,1,1));T(this,"width",0);T(this,"height",0);T(this,"hullLength",0);T(this,"edges",[]);T(this,"parentMesh",null);T(this,"sequence",null);T(this,"tempColor",new ut(0,0,0,0));this.path=i}updateRegion(){if(!this.region)throw new Error("Region not set.");let t=this.regionUVs;(!this.uvs||this.uvs.length!=t.length)&&(this.uvs=Oe.newFloatArray(t.length));let i=this.uvs,s=this.uvs.length,r=this.region.u,o=this.region.v,a=0,c=0;if(this.region instanceof sT){let l=this.region,h=l.page,u=h.width,d=h.height;switch(l.degrees){case 90:r-=(l.originalHeight-l.offsetY-l.height)/u,o-=(l.originalWidth-l.offsetX-l.width)/d,a=l.originalHeight/u,c=l.originalWidth/d;for(let f=0;f<s;f+=2)i[f]=r+t[f+1]*a,i[f+1]=o+(1-t[f])*c;return;case 180:r-=(l.originalWidth-l.offsetX-l.width)/u,o-=l.offsetY/d,a=l.originalWidth/u,c=l.originalHeight/d;for(let f=0;f<s;f+=2)i[f]=r+(1-t[f])*a,i[f+1]=o+(1-t[f+1])*c;return;case 270:r-=l.offsetY/u,o-=l.offsetX/d,a=l.originalHeight/u,c=l.originalWidth/d;for(let f=0;f<s;f+=2)i[f]=r+(1-t[f+1])*a,i[f+1]=o+t[f]*c;return}r-=l.offsetX/u,o-=(l.originalHeight-l.offsetY-l.height)/d,a=l.originalWidth/u,c=l.originalHeight/d}else this.region?(a=this.region.u2-r,c=this.region.v2-o):(r=o=0,a=c=1);for(let l=0;l<s;l+=2)i[l]=r+t[l]*a,i[l+1]=o+t[l+1]*c}getParentMesh(){return this.parentMesh}setParentMesh(t){this.parentMesh=t,t&&(this.bones=t.bones,this.vertices=t.vertices,this.worldVerticesLength=t.worldVerticesLength,this.regionUVs=t.regionUVs,this.triangles=t.triangles,this.hullLength=t.hullLength,this.worldVerticesLength=t.worldVerticesLength)}copy(){if(this.parentMesh)return this.newLinkedMesh();let t=new Pp(this.name,this.path);return t.region=this.region,t.color.setFromColor(this.color),this.copyTo(t),t.regionUVs=new Array(this.regionUVs.length),Oe.arrayCopy(this.regionUVs,0,t.regionUVs,0,this.regionUVs.length),t.uvs=this.uvs instanceof Float32Array?Oe.newFloatArray(this.uvs.length):new Array(this.uvs.length),Oe.arrayCopy(this.uvs,0,t.uvs,0,this.uvs.length),t.triangles=new Array(this.triangles.length),Oe.arrayCopy(this.triangles,0,t.triangles,0,this.triangles.length),t.hullLength=this.hullLength,t.sequence=this.sequence!=null?this.sequence.copy():null,this.edges&&(t.edges=new Array(this.edges.length),Oe.arrayCopy(this.edges,0,t.edges,0,this.edges.length)),t.width=this.width,t.height=this.height,t}computeWorldVertices(t,i,s,r,o,a){this.sequence!=null&&this.sequence.apply(t,this),super.computeWorldVertices(t,i,s,r,o,a)}newLinkedMesh(){let t=new Pp(this.name,this.path);return t.region=this.region,t.color.setFromColor(this.color),t.timelineAttachment=this.timelineAttachment,t.setParentMesh(this.parentMesh?this.parentMesh:this),t.region!=null&&t.updateRegion(),t}},lc=class rT extends pr{constructor(t){super(t);T(this,"lengths",[]);T(this,"closed",!1);T(this,"constantSpeed",!1);T(this,"color",new ut(1,1,1,1))}copy(){let t=new rT(this.name);return this.copyTo(t),t.lengths=new Array(this.lengths.length),Oe.arrayCopy(this.lengths,0,t.lengths,0,this.lengths.length),t.closed=closed,t.constantSpeed=this.constantSpeed,t.color.setFromColor(this.color),t}},oT=class aT extends pr{constructor(t){super(t);T(this,"x",0);T(this,"y",0);T(this,"rotation",0);T(this,"color",new ut(.38,.94,0,1))}computeWorldPosition(t,i){return i.x=this.x*t.a+this.y*t.b+t.worldX,i.y=this.x*t.c+this.y*t.d+t.worldY,i}computeWorldRotation(t){const i=this.rotation*ke.degRad,s=Math.cos(i),r=Math.sin(i),o=s*t.a+r*t.b,a=s*t.c+r*t.d;return ke.atan2Deg(a,o)}copy(){let t=new aT(this.name);return t.x=this.x,t.y=this.y,t.rotation=this.rotation,t.color.setFromColor(this.color),t}};var mt;let dd=(mt=class extends w_{constructor(t,i){super(t);T(this,"x",0);T(this,"y",0);T(this,"scaleX",1);T(this,"scaleY",1);T(this,"rotation",0);T(this,"width",0);T(this,"height",0);T(this,"color",new ut(1,1,1,1));T(this,"path");T(this,"region",null);T(this,"sequence",null);T(this,"offset",Oe.newFloatArray(8));T(this,"uvs",Oe.newFloatArray(8));T(this,"tempColor",new ut(1,1,1,1));this.path=i}updateRegion(){if(!this.region)throw new Error("Region not set.");let t=this.region,i=this.uvs;if(t==null){i[0]=0,i[1]=0,i[2]=0,i[3]=1,i[4]=1,i[5]=1,i[6]=1,i[7]=0;return}let s=this.width/this.region.originalWidth*this.scaleX,r=this.height/this.region.originalHeight*this.scaleY,o=-this.width/2*this.scaleX+this.region.offsetX*s,a=-this.height/2*this.scaleY+this.region.offsetY*r,c=o+this.region.width*s,l=a+this.region.height*r,h=this.rotation*ke.degRad,u=Math.cos(h),d=Math.sin(h),f=this.x,m=this.y,p=o*u+f,g=o*d,v=a*u+m,b=a*d,y=c*u+f,x=c*d,_=l*u+m,E=l*d,S=this.offset;S[0]=p-b,S[1]=v+g,S[2]=p-E,S[3]=_+g,S[4]=y-E,S[5]=_+x,S[6]=y-b,S[7]=v+x,t.degrees==90?(i[0]=t.u2,i[1]=t.v2,i[2]=t.u,i[3]=t.v2,i[4]=t.u,i[5]=t.v,i[6]=t.u2,i[7]=t.v):(i[0]=t.u,i[1]=t.v2,i[2]=t.u,i[3]=t.v,i[4]=t.u2,i[5]=t.v,i[6]=t.u2,i[7]=t.v2)}computeWorldVertices(t,i,s,r){this.sequence!=null&&this.sequence.apply(t,this);let o=t.bone,a=this.offset,c=o.worldX,l=o.worldY,h=o.a,u=o.b,d=o.c,f=o.d,m=0,p=0;m=a[0],p=a[1],i[s]=m*h+p*u+c,i[s+1]=m*d+p*f+l,s+=r,m=a[2],p=a[3],i[s]=m*h+p*u+c,i[s+1]=m*d+p*f+l,s+=r,m=a[4],p=a[5],i[s]=m*h+p*u+c,i[s+1]=m*d+p*f+l,s+=r,m=a[6],p=a[7],i[s]=m*h+p*u+c,i[s+1]=m*d+p*f+l}copy(){let t=new mt(this.name,this.path);return t.region=this.region,t.x=this.x,t.y=this.y,t.scaleX=this.scaleX,t.scaleY=this.scaleY,t.rotation=this.rotation,t.width=this.width,t.height=this.height,Oe.arrayCopy(this.uvs,0,t.uvs,0,8),Oe.arrayCopy(this.offset,0,t.offset,0,8),t.color.setFromColor(this.color),t.sequence=this.sequence!=null?this.sequence.copy():null,t}},T(mt,"X1",0),T(mt,"Y1",1),T(mt,"C1R",2),T(mt,"C1G",3),T(mt,"C1B",4),T(mt,"C1A",5),T(mt,"U1",6),T(mt,"V1",7),T(mt,"X2",8),T(mt,"Y2",9),T(mt,"C2R",10),T(mt,"C2G",11),T(mt,"C2B",12),T(mt,"C2A",13),T(mt,"U2",14),T(mt,"V2",15),T(mt,"X3",16),T(mt,"Y3",17),T(mt,"C3R",18),T(mt,"C3G",19),T(mt,"C3B",20),T(mt,"C3A",21),T(mt,"U3",22),T(mt,"V3",23),T(mt,"X4",24),T(mt,"Y4",25),T(mt,"C4R",26),T(mt,"C4G",27),T(mt,"C4B",28),T(mt,"C4A",29),T(mt,"U4",30),T(mt,"V4",31),mt);class Rp{constructor(e){T(this,"atlas");this.atlas=e}loadSequence(e,t,i){let s=i.regions;for(let r=0,o=s.length;r<o;r++){let a=i.getPath(t,r),c=this.atlas.findRegion(a);if(c==null)throw new Error("Region not found in atlas: "+a+" (sequence: "+e+")");s[r]=c}}newRegionAttachment(e,t,i,s){let r=new dd(t,i);if(s!=null)this.loadSequence(t,i,s);else{let o=this.atlas.findRegion(i);if(!o)throw new Error("Region not found in atlas: "+i+" (region attachment: "+t+")");r.region=o}return r}newMeshAttachment(e,t,i,s){let r=new bc(t,i);if(s!=null)this.loadSequence(t,i,s);else{let o=this.atlas.findRegion(i);if(!o)throw new Error("Region not found in atlas: "+i+" (mesh attachment: "+t+")");r.region=o}return r}newBoundingBoxAttachment(e,t){return new eT(t)}newPathAttachment(e,t){return new lc(t)}newPointAttachment(e,t){return new oT(t)}newClippingAttachment(e,t){return new $a(t)}}let lT=class{constructor(e,t,i){T(this,"index",0);T(this,"name");T(this,"parent",null);T(this,"length",0);T(this,"x",0);T(this,"y",0);T(this,"rotation",0);T(this,"scaleX",1);T(this,"scaleY",1);T(this,"shearX",0);T(this,"shearY",0);T(this,"inherit",oi.Normal);T(this,"skinRequired",!1);T(this,"color",new ut);T(this,"icon");T(this,"visible",!1);if(e<0)throw new Error("index must be >= 0.");if(!t)throw new Error("name cannot be null.");this.index=e,this.name=t,this.parent=i}};var oi;(function(n){n[n.Normal=0]="Normal",n[n.OnlyTranslation=1]="OnlyTranslation",n[n.NoRotationOrReflection=2]="NoRotationOrReflection",n[n.NoScale=3]="NoScale",n[n.NoScaleOrReflection=4]="NoScaleOrReflection"})(oi||(oi={}));let qb=class{constructor(e,t,i){T(this,"data");T(this,"skeleton");T(this,"parent",null);T(this,"children",new Array);T(this,"x",0);T(this,"y",0);T(this,"rotation",0);T(this,"scaleX",0);T(this,"scaleY",0);T(this,"shearX",0);T(this,"shearY",0);T(this,"ax",0);T(this,"ay",0);T(this,"arotation",0);T(this,"ascaleX",0);T(this,"ascaleY",0);T(this,"ashearX",0);T(this,"ashearY",0);T(this,"a",0);T(this,"b",0);T(this,"c",0);T(this,"d",0);T(this,"worldY",0);T(this,"worldX",0);T(this,"inherit",oi.Normal);T(this,"sorted",!1);T(this,"active",!1);if(!e)throw new Error("data cannot be null.");if(!t)throw new Error("skeleton cannot be null.");this.data=e,this.skeleton=t,this.parent=i,this.setToSetupPose()}isActive(){return this.active}update(e){this.updateWorldTransformWith(this.ax,this.ay,this.arotation,this.ascaleX,this.ascaleY,this.ashearX,this.ashearY)}updateWorldTransform(){this.updateWorldTransformWith(this.x,this.y,this.rotation,this.scaleX,this.scaleY,this.shearX,this.shearY)}updateWorldTransformWith(e,t,i,s,r,o,a){this.ax=e,this.ay=t,this.arotation=i,this.ascaleX=s,this.ascaleY=r,this.ashearX=o,this.ashearY=a;let c=this.parent;if(!c){let f=this.skeleton;const m=f.scaleX,p=f.scaleY,g=(i+o)*ke.degRad,v=(i+90+a)*ke.degRad;this.a=Math.cos(g)*s*m,this.b=Math.cos(v)*r*m,this.c=Math.sin(g)*s*p,this.d=Math.sin(v)*r*p,this.worldX=e*m+f.x,this.worldY=t*p+f.y;return}let l=c.a,h=c.b,u=c.c,d=c.d;switch(this.worldX=l*e+h*t+c.worldX,this.worldY=u*e+d*t+c.worldY,this.inherit){case oi.Normal:{const f=(i+o)*ke.degRad,m=(i+90+a)*ke.degRad,p=Math.cos(f)*s,g=Math.cos(m)*r,v=Math.sin(f)*s,b=Math.sin(m)*r;this.a=l*p+h*v,this.b=l*g+h*b,this.c=u*p+d*v,this.d=u*g+d*b;return}case oi.OnlyTranslation:{const f=(i+o)*ke.degRad,m=(i+90+a)*ke.degRad;this.a=Math.cos(f)*s,this.b=Math.cos(m)*r,this.c=Math.sin(f)*s,this.d=Math.sin(m)*r;break}case oi.NoRotationOrReflection:{let f=1/this.skeleton.scaleX,m=1/this.skeleton.scaleY;l*=f,u*=m;let p=l*l+u*u,g=0;p>1e-4?(p=Math.abs(l*d*m-h*f*u)/p,h=u*p,d=l*p,g=Math.atan2(u,l)*ke.radDeg):(l=0,u=0,g=90-Math.atan2(d,h)*ke.radDeg);const v=(i+o-g)*ke.degRad,b=(i+a-g+90)*ke.degRad,y=Math.cos(v)*s,x=Math.cos(b)*r,_=Math.sin(v)*s,E=Math.sin(b)*r;this.a=l*y-h*_,this.b=l*x-h*E,this.c=u*y+d*_,this.d=u*x+d*E;break}case oi.NoScale:case oi.NoScaleOrReflection:{i*=ke.degRad;const f=Math.cos(i),m=Math.sin(i);let p=(l*f+h*m)/this.skeleton.scaleX,g=(u*f+d*m)/this.skeleton.scaleY,v=Math.sqrt(p*p+g*g);v>1e-5&&(v=1/v),p*=v,g*=v,v=Math.sqrt(p*p+g*g),this.inherit==oi.NoScale&&l*d-h*u<0!=(this.skeleton.scaleX<0!=this.skeleton.scaleY<0)&&(v=-v),i=Math.PI/2+Math.atan2(g,p);const b=Math.cos(i)*v,y=Math.sin(i)*v;o*=ke.degRad,a=(90+a)*ke.degRad;const x=Math.cos(o)*s,_=Math.cos(a)*r,E=Math.sin(o)*s,S=Math.sin(a)*r;this.a=p*x+b*E,this.b=p*_+b*S,this.c=g*x+y*E,this.d=g*_+y*S;break}}this.a*=this.skeleton.scaleX,this.b*=this.skeleton.scaleX,this.c*=this.skeleton.scaleY,this.d*=this.skeleton.scaleY}setToSetupPose(){let e=this.data;this.x=e.x,this.y=e.y,this.rotation=e.rotation,this.scaleX=e.scaleX,this.scaleY=e.scaleY,this.shearX=e.shearX,this.shearY=e.shearY,this.inherit=e.inherit}updateAppliedTransform(){let e=this.parent;if(!e){this.ax=this.worldX-this.skeleton.x,this.ay=this.worldY-this.skeleton.y,this.arotation=Math.atan2(this.c,this.a)*ke.radDeg,this.ascaleX=Math.sqrt(this.a*this.a+this.c*this.c),this.ascaleY=Math.sqrt(this.b*this.b+this.d*this.d),this.ashearX=0,this.ashearY=Math.atan2(this.a*this.b+this.c*this.d,this.a*this.d-this.b*this.c)*ke.radDeg;return}let t=e.a,i=e.b,s=e.c,r=e.d,o=1/(t*r-i*s),a=r*o,c=i*o,l=s*o,h=t*o,u=this.worldX-e.worldX,d=this.worldY-e.worldY;this.ax=u*a-d*c,this.ay=d*h-u*l;let f,m,p,g;if(this.inherit==oi.OnlyTranslation)f=this.a,m=this.b,p=this.c,g=this.d;else{switch(this.inherit){case oi.NoRotationOrReflection:{let _=Math.abs(t*r-i*s)/(t*t+s*s);i=-s*this.skeleton.scaleX*_/this.skeleton.scaleY,r=t*this.skeleton.scaleY*_/this.skeleton.scaleX,o=1/(t*r-i*s),a=r*o,c=i*o;break}case oi.NoScale:case oi.NoScaleOrReflection:let v=ke.cosDeg(this.rotation),b=ke.sinDeg(this.rotation);t=(t*v+i*b)/this.skeleton.scaleX,s=(s*v+r*b)/this.skeleton.scaleY;let y=Math.sqrt(t*t+s*s);y>1e-5&&(y=1/y),t*=y,s*=y,y=Math.sqrt(t*t+s*s),this.inherit==oi.NoScale&&o<0!=(this.skeleton.scaleX<0!=this.skeleton.scaleY<0)&&(y=-y);let x=ke.PI/2+Math.atan2(s,t);i=Math.cos(x)*y,r=Math.sin(x)*y,o=1/(t*r-i*s),a=r*o,c=i*o,l=s*o,h=t*o}f=a*this.a-c*this.c,m=a*this.b-c*this.d,p=h*this.c-l*this.a,g=h*this.d-l*this.b}if(this.ashearX=0,this.ascaleX=Math.sqrt(f*f+p*p),this.ascaleX>1e-4){let v=f*g-m*p;this.ascaleY=v/this.ascaleX,this.ashearY=-Math.atan2(f*m+p*g,v)*ke.radDeg,this.arotation=Math.atan2(p,f)*ke.radDeg}else this.ascaleX=0,this.ascaleY=Math.sqrt(m*m+g*g),this.ashearY=0,this.arotation=90-Math.atan2(g,m)*ke.radDeg}getWorldRotationX(){return Math.atan2(this.c,this.a)*ke.radDeg}getWorldRotationY(){return Math.atan2(this.d,this.b)*ke.radDeg}getWorldScaleX(){return Math.sqrt(this.a*this.a+this.c*this.c)}getWorldScaleY(){return Math.sqrt(this.b*this.b+this.d*this.d)}worldToLocal(e){let t=1/(this.a*this.d-this.b*this.c),i=e.x-this.worldX,s=e.y-this.worldY;return e.x=i*this.d*t-s*this.b*t,e.y=s*this.a*t-i*this.c*t,e}localToWorld(e){let t=e.x,i=e.y;return e.x=t*this.a+i*this.b+this.worldX,e.y=t*this.c+i*this.d+this.worldY,e}worldToParent(e){if(e==null)throw new Error("world cannot be null.");return this.parent==null?e:this.parent.worldToLocal(e)}parentToWorld(e){if(e==null)throw new Error("world cannot be null.");return this.parent==null?e:this.parent.localToWorld(e)}worldToLocalRotation(e){let t=ke.sinDeg(e),i=ke.cosDeg(e);return Math.atan2(this.a*t-this.c*i,this.d*i-this.b*t)*ke.radDeg+this.rotation-this.shearX}localToWorldRotation(e){e-=this.rotation-this.shearX;let t=ke.sinDeg(e),i=ke.cosDeg(e);return Math.atan2(i*this.c+t*this.d,i*this.a+t*this.b)*ke.radDeg}rotateWorld(e){e*=ke.degRad;const t=Math.sin(e),i=Math.cos(e),s=this.a,r=this.b;this.a=i*s-t*this.c,this.b=i*r-t*this.d,this.c=t*s+i*this.c,this.d=t*r+i*this.d}},fd=class{constructor(e,t,i){T(this,"name");T(this,"order");T(this,"skinRequired");this.name=e,this.order=t,this.skinRequired=i}},cT=class{constructor(e,t){T(this,"data");T(this,"intValue",0);T(this,"floatValue",0);T(this,"stringValue",null);T(this,"time",0);T(this,"volume",0);T(this,"balance",0);if(!t)throw new Error("data cannot be null.");this.time=e,this.data=t}},hT=class{constructor(e){T(this,"name");T(this,"intValue",0);T(this,"floatValue",0);T(this,"stringValue",null);T(this,"audioPath",null);T(this,"volume",0);T(this,"balance",0);this.name=e}},aN=class{constructor(e,t){T(this,"data");T(this,"bones");T(this,"target");T(this,"bendDirection",0);T(this,"compress",!1);T(this,"stretch",!1);T(this,"mix",1);T(this,"softness",0);T(this,"active",!1);if(!e)throw new Error("data cannot be null.");if(!t)throw new Error("skeleton cannot be null.");this.data=e,this.bones=new Array;for(let s=0;s<e.bones.length;s++){let r=t.findBone(e.bones[s].name);if(!r)throw new Error(`Couldn't find bone ${e.bones[s].name}`);this.bones.push(r)}let i=t.findBone(e.target.name);if(!i)throw new Error(`Couldn't find bone ${e.target.name}`);this.target=i,this.mix=e.mix,this.softness=e.softness,this.bendDirection=e.bendDirection,this.compress=e.compress,this.stretch=e.stretch}isActive(){return this.active}setToSetupPose(){const e=this.data;this.mix=e.mix,this.softness=e.softness,this.bendDirection=e.bendDirection,this.compress=e.compress,this.stretch=e.stretch}update(e){if(this.mix==0)return;let t=this.target,i=this.bones;switch(i.length){case 1:this.apply1(i[0],t.worldX,t.worldY,this.compress,this.stretch,this.data.uniform,this.mix);break;case 2:this.apply2(i[0],i[1],t.worldX,t.worldY,this.bendDirection,this.stretch,this.data.uniform,this.softness,this.mix);break}}apply1(e,t,i,s,r,o,a){let c=e.parent;if(!c)throw new Error("IK bone must have parent.");let l=c.a,h=c.b,u=c.c,d=c.d,f=-e.ashearX-e.arotation,m=0,p=0;switch(e.inherit){case oi.OnlyTranslation:m=(t-e.worldX)*ke.signum(e.skeleton.scaleX),p=(i-e.worldY)*ke.signum(e.skeleton.scaleY);break;case oi.NoRotationOrReflection:let b=Math.abs(l*d-h*u)/Math.max(1e-4,l*l+u*u),y=l/e.skeleton.scaleX,x=u/e.skeleton.scaleY;h=-x*b*e.skeleton.scaleX,d=y*b*e.skeleton.scaleY,f+=Math.atan2(x,y)*ke.radDeg;default:let _=t-c.worldX,E=i-c.worldY,S=l*d-h*u;Math.abs(S)<=1e-4?(m=0,p=0):(m=(_*d-E*h)/S-e.ax,p=(E*l-_*u)/S-e.ay)}f+=Math.atan2(p,m)*ke.radDeg,e.ascaleX<0&&(f+=180),f>180?f-=360:f<-180&&(f+=360);let g=e.ascaleX,v=e.ascaleY;if(s||r){switch(e.inherit){case oi.NoScale:case oi.NoScaleOrReflection:m=t-e.worldX,p=i-e.worldY}const b=e.data.length*g;if(b>1e-4){const y=m*m+p*p;if(s&&y<b*b||r&&y>b*b){const x=(Math.sqrt(y)/b-1)*a+1;g*=x,o&&(v*=x)}}}e.updateWorldTransformWith(e.ax,e.ay,e.arotation+f*a,g,v,e.ashearX,e.ashearY)}apply2(e,t,i,s,r,o,a,c,l){if(e.inherit!=oi.Normal||t.inherit!=oi.Normal)return;let h=e.ax,u=e.ay,d=e.ascaleX,f=e.ascaleY,m=d,p=f,g=t.ascaleX,v=0,b=0,y=0;d<0?(d=-d,v=180,y=-1):(v=0,y=1),f<0&&(f=-f,y=-y),g<0?(g=-g,b=180):b=0;let x=t.ax,_=0,E=0,S=0,C=e.a,M=e.b,P=e.c,A=e.d,R=Math.abs(d-f)<=1e-4;!R||o?(_=0,E=C*x+e.worldX,S=P*x+e.worldY):(_=t.ay,E=C*x+M*_+e.worldX,S=P*x+A*_+e.worldY);let B=e.parent;if(!B)throw new Error("IK parent must itself have a parent.");C=B.a,M=B.b,P=B.c,A=B.d;let O=C*A-M*P,W=E-B.worldX,V=S-B.worldY;O=Math.abs(O)<=1e-4?0:1/O;let Y=(W*A-V*M)*O-h,L=(V*C-W*P)*O-u,N=Math.sqrt(Y*Y+L*L),F=t.data.length*g,D,X;if(N<1e-4){this.apply1(e,i,s,!1,o,!1,l),t.updateWorldTransformWith(x,_,0,t.ascaleX,t.ascaleY,t.ashearX,t.ashearY);return}W=i-B.worldX,V=s-B.worldY;let G=(W*A-V*M)*O-h,K=(V*C-W*P)*O-u,J=G*G+K*K;if(c!=0){c*=d*(g+1)*.5;let ve=Math.sqrt(J),Se=ve-N-F*d+c;if(Se>0){let fe=Math.min(1,Se/(c*2))-1;fe=(Se-c*(1-fe*fe))/ve,G-=fe*G,K-=fe*K,J=G*G+K*K}}e:if(R){F*=d;let ve=(J-N*N-F*F)/(2*N*F);ve<-1?(ve=-1,X=Math.PI*r):ve>1?(ve=1,X=0,o&&(C=(Math.sqrt(J)/(N+F)-1)*l+1,m*=C,a&&(p*=C))):X=Math.acos(ve)*r,C=N+F*ve,M=F*Math.sin(X),D=Math.atan2(K*C-G*M,G*C+K*M)}else{C=d*F,M=f*F;let ve=C*C,Se=M*M,fe=Math.atan2(K,G);P=Se*N*N+ve*J-ve*Se;let ye=-2*Se*N,q=Se-ve;if(A=ye*ye-4*q*P,A>=0){let ne=Math.sqrt(A);ye<0&&(ne=-ne),ne=-(ye+ne)*.5;let ue=ne/q,xe=P/ne,be=Math.abs(ue)<Math.abs(xe)?ue:xe;if(ue=J-be*be,ue>=0){V=Math.sqrt(ue)*r,D=fe-Math.atan2(V,be),X=Math.atan2(V/f,(be-N)/d);break e}}let Z=ke.PI,se=N-C,H=se*se,j=0,$=0,U=N+C,z=U*U,ee=0;P=-C*N/(ve-Se),P>=-1&&P<=1&&(P=Math.acos(P),W=C*Math.cos(P)+N,V=M*Math.sin(P),A=W*W+V*V,A<H&&(Z=P,H=A,se=W,j=V),A>z&&($=P,z=A,U=W,ee=V)),J<=(H+z)*.5?(D=fe-Math.atan2(j*r,se),X=Z*r):(D=fe-Math.atan2(ee*r,U),X=$*r)}let oe=Math.atan2(_,x)*y,le=e.arotation;D=(D-oe)*ke.radDeg+v-le,D>180?D-=360:D<-180&&(D+=360),e.updateWorldTransformWith(h,u,le+D*l,m,p,0,0),le=t.arotation,X=((X+oe)*ke.radDeg-t.ashearX)*y+b-le,X>180?X-=360:X<-180&&(X+=360),t.updateWorldTransformWith(x,_,le+X*l,t.ascaleX,t.ascaleY,t.ashearX,t.ashearY)}},uT=class extends fd{constructor(t){super(t,0,!1);T(this,"bones",new Array);T(this,"_target",null);T(this,"bendDirection",0);T(this,"compress",!1);T(this,"stretch",!1);T(this,"uniform",!1);T(this,"mix",0);T(this,"softness",0)}set target(t){this._target=t}get target(){if(this._target)return this._target;throw new Error("BoneData not set.")}},dT=class extends fd{constructor(t){super(t,0,!1);T(this,"bones",new Array);T(this,"_target",null);T(this,"positionMode",As.Fixed);T(this,"spacingMode",Ti.Fixed);T(this,"rotateMode",No.Chain);T(this,"offsetRotation",0);T(this,"position",0);T(this,"spacing",0);T(this,"mixRotate",0);T(this,"mixX",0);T(this,"mixY",0)}set target(t){this._target=t}get target(){if(this._target)return this._target;throw new Error("SlotData not set.")}};var As;(function(n){n[n.Fixed=0]="Fixed",n[n.Percent=1]="Percent"})(As||(As={}));var Ti;(function(n){n[n.Length=0]="Length",n[n.Fixed=1]="Fixed",n[n.Percent=2]="Percent",n[n.Proportional=3]="Proportional"})(Ti||(Ti={}));var No;(function(n){n[n.Tangent=0]="Tangent",n[n.Chain=1]="Chain",n[n.ChainScale=2]="ChainScale"})(No||(No={}));var Yi;let lN=(Yi=class{constructor(e,t){T(this,"data");T(this,"bones");T(this,"target");T(this,"position",0);T(this,"spacing",0);T(this,"mixRotate",0);T(this,"mixX",0);T(this,"mixY",0);T(this,"spaces",new Array);T(this,"positions",new Array);T(this,"world",new Array);T(this,"curves",new Array);T(this,"lengths",new Array);T(this,"segments",new Array);T(this,"active",!1);if(!e)throw new Error("data cannot be null.");if(!t)throw new Error("skeleton cannot be null.");this.data=e,this.bones=new Array;for(let s=0,r=e.bones.length;s<r;s++){let o=t.findBone(e.bones[s].name);if(!o)throw new Error(`Couldn't find bone ${e.bones[s].name}.`);this.bones.push(o)}let i=t.findSlot(e.target.name);if(!i)throw new Error(`Couldn't find target bone ${e.target.name}`);this.target=i,this.position=e.position,this.spacing=e.spacing,this.mixRotate=e.mixRotate,this.mixX=e.mixX,this.mixY=e.mixY}isActive(){return this.active}setToSetupPose(){const e=this.data;this.position=e.position,this.spacing=e.spacing,this.mixRotate=e.mixRotate,this.mixX=e.mixX,this.mixY=e.mixY}update(e){let t=this.target.getAttachment();if(!(t instanceof lc))return;let i=this.mixRotate,s=this.mixX,r=this.mixY;if(i==0&&s==0&&r==0)return;let o=this.data,a=o.rotateMode==No.Tangent,c=o.rotateMode==No.ChainScale,l=this.bones,h=l.length,u=a?h:h+1,d=Oe.setArraySize(this.spaces,u),f=c?this.lengths=Oe.setArraySize(this.lengths,h):[],m=this.spacing;switch(o.spacingMode){case Ti.Percent:if(c)for(let E=0,S=u-1;E<S;E++){let C=l[E],M=C.data.length,P=M*C.a,A=M*C.c;f[E]=Math.sqrt(P*P+A*A)}Oe.arrayFill(d,1,u,m);break;case Ti.Proportional:let x=0;for(let E=0,S=u-1;E<S;){let C=l[E],M=C.data.length;if(M<Yi.epsilon)c&&(f[E]=0),d[++E]=m;else{let P=M*C.a,A=M*C.c,R=Math.sqrt(P*P+A*A);c&&(f[E]=R),d[++E]=R,x+=R}}if(x>0){x=u/x*m;for(let E=1;E<u;E++)d[E]*=x}break;default:let _=o.spacingMode==Ti.Length;for(let E=0,S=u-1;E<S;){let C=l[E],M=C.data.length;if(M<Yi.epsilon)c&&(f[E]=0),d[++E]=m;else{let P=M*C.a,A=M*C.c,R=Math.sqrt(P*P+A*A);c&&(f[E]=R),d[++E]=(_?M+m:m)*R/M}}}let p=this.computeWorldPositions(t,u,a),g=p[0],v=p[1],b=o.offsetRotation,y=!1;if(b==0)y=o.rotateMode==No.Chain;else{y=!1;let x=this.target.bone;b*=x.a*x.d-x.b*x.c>0?ke.degRad:-.01745329277777778}for(let x=0,_=3;x<h;x++,_+=3){let E=l[x];E.worldX+=(g-E.worldX)*s,E.worldY+=(v-E.worldY)*r;let S=p[_],C=p[_+1],M=S-g,P=C-v;if(c){let A=f[x];if(A!=0){let R=(Math.sqrt(M*M+P*P)/A-1)*i+1;E.a*=R,E.c*=R}}if(g=S,v=C,i>0){let A=E.a,R=E.b,B=E.c,O=E.d,W=0,V=0,Y=0;if(a?W=p[_-1]:d[x+1]==0?W=p[_+2]:W=Math.atan2(P,M),W-=Math.atan2(B,A),y){V=Math.cos(W),Y=Math.sin(W);let L=E.data.length;g+=(L*(V*A-Y*B)-M)*i,v+=(L*(Y*A+V*B)-P)*i}else W+=b;W>ke.PI?W-=ke.PI2:W<-3.1415927&&(W+=ke.PI2),W*=i,V=Math.cos(W),Y=Math.sin(W),E.a=V*A-Y*B,E.b=V*R-Y*O,E.c=Y*A+V*B,E.d=Y*R+V*O}E.updateAppliedTransform()}}computeWorldPositions(e,t,i){let s=this.target,r=this.position,o=this.spaces,a=Oe.setArraySize(this.positions,t*3+2),c=this.world,l=e.closed,h=e.worldVerticesLength,u=h/6,d=Yi.NONE;if(!e.constantSpeed){let L=e.lengths;u-=l?1:2;let N=L[u];this.data.positionMode==As.Percent&&(r*=N);let F;switch(this.data.spacingMode){case Ti.Percent:F=N;break;case Ti.Proportional:F=N/t;break;default:F=1}c=Oe.setArraySize(this.world,8);for(let D=0,X=0,G=0;D<t;D++,X+=3){let K=o[D]*F;r+=K;let J=r;if(l)J%=N,J<0&&(J+=N),G=0;else if(J<0){d!=Yi.BEFORE&&(d=Yi.BEFORE,e.computeWorldVertices(s,2,4,c,0,2)),this.addBeforePosition(J,c,0,a,X);continue}else if(J>N){d!=Yi.AFTER&&(d=Yi.AFTER,e.computeWorldVertices(s,h-6,4,c,0,2)),this.addAfterPosition(J-N,c,0,a,X);continue}for(;;G++){let oe=L[G];if(!(J>oe)){if(G==0)J/=oe;else{let le=L[G-1];J=(J-le)/(oe-le)}break}}G!=d&&(d=G,l&&G==u?(e.computeWorldVertices(s,h-4,4,c,0,2),e.computeWorldVertices(s,0,4,c,4,2)):e.computeWorldVertices(s,G*6+2,8,c,0,2)),this.addCurvePosition(J,c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],a,X,i||D>0&&K==0)}return a}l?(h+=2,c=Oe.setArraySize(this.world,h),e.computeWorldVertices(s,2,h-4,c,0,2),e.computeWorldVertices(s,0,2,c,h-4,2),c[h-2]=c[0],c[h-1]=c[1]):(u--,h-=4,c=Oe.setArraySize(this.world,h),e.computeWorldVertices(s,2,h,c,0,2));let f=Oe.setArraySize(this.curves,u),m=0,p=c[0],g=c[1],v=0,b=0,y=0,x=0,_=0,E=0,S=0,C=0,M=0,P=0,A=0,R=0,B=0,O=0;for(let L=0,N=2;L<u;L++,N+=6)v=c[N],b=c[N+1],y=c[N+2],x=c[N+3],_=c[N+4],E=c[N+5],S=(p-v*2+y)*.1875,C=(g-b*2+x)*.1875,M=((v-y)*3-p+_)*.09375,P=((b-x)*3-g+E)*.09375,A=S*2+M,R=C*2+P,B=(v-p)*.75+S+M*.16666667,O=(b-g)*.75+C+P*.16666667,m+=Math.sqrt(B*B+O*O),B+=A,O+=R,A+=M,R+=P,m+=Math.sqrt(B*B+O*O),B+=A,O+=R,m+=Math.sqrt(B*B+O*O),B+=A+M,O+=R+P,m+=Math.sqrt(B*B+O*O),f[L]=m,p=_,g=E;this.data.positionMode==As.Percent&&(r*=m);let W;switch(this.data.spacingMode){case Ti.Percent:W=m;break;case Ti.Proportional:W=m/t;break;default:W=1}let V=this.segments,Y=0;for(let L=0,N=0,F=0,D=0;L<t;L++,N+=3){let X=o[L]*W;r+=X;let G=r;if(l)G%=m,G<0&&(G+=m),F=0;else if(G<0){this.addBeforePosition(G,c,0,a,N);continue}else if(G>m){this.addAfterPosition(G-m,c,h-4,a,N);continue}for(;;F++){let K=f[F];if(!(G>K)){if(F==0)G/=K;else{let J=f[F-1];G=(G-J)/(K-J)}break}}if(F!=d){d=F;let K=F*6;for(p=c[K],g=c[K+1],v=c[K+2],b=c[K+3],y=c[K+4],x=c[K+5],_=c[K+6],E=c[K+7],S=(p-v*2+y)*.03,C=(g-b*2+x)*.03,M=((v-y)*3-p+_)*.006,P=((b-x)*3-g+E)*.006,A=S*2+M,R=C*2+P,B=(v-p)*.3+S+M*.16666667,O=(b-g)*.3+C+P*.16666667,Y=Math.sqrt(B*B+O*O),V[0]=Y,K=1;K<8;K++)B+=A,O+=R,A+=M,R+=P,Y+=Math.sqrt(B*B+O*O),V[K]=Y;B+=A,O+=R,Y+=Math.sqrt(B*B+O*O),V[8]=Y,B+=A+M,O+=R+P,Y+=Math.sqrt(B*B+O*O),V[9]=Y,D=0}for(G*=Y;;D++){let K=V[D];if(!(G>K)){if(D==0)G/=K;else{let J=V[D-1];G=D+(G-J)/(K-J)}break}}this.addCurvePosition(G*.1,p,g,v,b,y,x,_,E,a,N,i||L>0&&X==0)}return a}addBeforePosition(e,t,i,s,r){let o=t[i],a=t[i+1],c=t[i+2]-o,l=t[i+3]-a,h=Math.atan2(l,c);s[r]=o+e*Math.cos(h),s[r+1]=a+e*Math.sin(h),s[r+2]=h}addAfterPosition(e,t,i,s,r){let o=t[i+2],a=t[i+3],c=o-t[i],l=a-t[i+1],h=Math.atan2(l,c);s[r]=o+e*Math.cos(h),s[r+1]=a+e*Math.sin(h),s[r+2]=h}addCurvePosition(e,t,i,s,r,o,a,c,l,h,u,d){if(e==0||isNaN(e)){h[u]=t,h[u+1]=i,h[u+2]=Math.atan2(r-i,s-t);return}let f=e*e,m=f*e,p=1-e,g=p*p,v=g*p,b=p*e,y=b*3,x=p*y,_=y*e,E=t*v+s*x+o*_+c*m,S=i*v+r*x+a*_+l*m;h[u]=E,h[u+1]=S,d&&(e<.001?h[u+2]=Math.atan2(r-i,s-t):h[u+2]=Math.atan2(S-(i*g+r*b*2+a*f),E-(t*g+s*b*2+o*f)))}},T(Yi,"NONE",-1),T(Yi,"BEFORE",-2),T(Yi,"AFTER",-3),T(Yi,"epsilon",1e-5),Yi),cN=class{constructor(e,t){T(this,"data");T(this,"_bone",null);T(this,"inertia",0);T(this,"strength",0);T(this,"damping",0);T(this,"massInverse",0);T(this,"wind",0);T(this,"gravity",0);T(this,"mix",0);T(this,"_reset",!0);T(this,"ux",0);T(this,"uy",0);T(this,"cx",0);T(this,"cy",0);T(this,"tx",0);T(this,"ty",0);T(this,"xOffset",0);T(this,"xVelocity",0);T(this,"yOffset",0);T(this,"yVelocity",0);T(this,"rotateOffset",0);T(this,"rotateVelocity",0);T(this,"scaleOffset",0);T(this,"scaleVelocity",0);T(this,"active",!1);T(this,"skeleton");T(this,"remaining",0);T(this,"lastTime",0);this.data=e,this.skeleton=t,this.bone=t.bones[e.bone.index],this.inertia=e.inertia,this.strength=e.strength,this.damping=e.damping,this.massInverse=e.massInverse,this.wind=e.wind,this.gravity=e.gravity,this.mix=e.mix}set bone(e){this._bone=e}get bone(){if(this._bone)return this._bone;throw new Error("Bone not set.")}reset(){this.remaining=0,this.lastTime=this.skeleton.time,this._reset=!0,this.xOffset=0,this.xVelocity=0,this.yOffset=0,this.yVelocity=0,this.rotateOffset=0,this.rotateVelocity=0,this.scaleOffset=0,this.scaleVelocity=0}setToSetupPose(){const e=this.data;this.inertia=e.inertia,this.strength=e.strength,this.damping=e.damping,this.massInverse=e.massInverse,this.wind=e.wind,this.gravity=e.gravity,this.mix=e.mix}isActive(){return this.active}update(e){const t=this.mix;if(t==0)return;const i=this.data.x>0,s=this.data.y>0,r=this.data.rotate>0||this.data.shearX>0,o=this.data.scaleX>0,a=this.bone,c=a.data.length;switch(e){case Dr.none:return;case Dr.reset:this.reset();case Dr.update:const l=this.skeleton,h=Math.max(this.skeleton.time-this.lastTime,0);this.remaining+=h,this.lastTime=l.time;const u=a.worldX,d=a.worldY;if(this._reset)this._reset=!1,this.ux=u,this.uy=d;else{let f=this.remaining,m=this.inertia,p=this.data.step,g=this.skeleton.data.referenceScale,v=-1,b=this.data.limit*h,y=b*Math.abs(l.scaleY);if(b*=Math.abs(l.scaleX),i||s){if(i){const x=(this.ux-u)*m;this.xOffset+=x>b?b:x<-b?-b:x,this.ux=u}if(s){const x=(this.uy-d)*m;this.yOffset+=x>y?y:x<-y?-y:x,this.uy=d}if(f>=p){v=Math.pow(this.damping,60*p);const x=this.massInverse*p,_=this.strength,E=this.wind*g*l.scaleX,S=this.gravity*g*l.scaleY;do i&&(this.xVelocity+=(E-this.xOffset*_)*x,this.xOffset+=this.xVelocity*p,this.xVelocity*=v),s&&(this.yVelocity-=(S+this.yOffset*_)*x,this.yOffset+=this.yVelocity*p,this.yVelocity*=v),f-=p;while(f>=p)}i&&(a.worldX+=this.xOffset*t*this.data.x),s&&(a.worldY+=this.yOffset*t*this.data.y)}if(r||o){let x=Math.atan2(a.c,a.a),_=0,E=0,S=0,C=this.cx-a.worldX,M=this.cy-a.worldY;if(C>b?C=b:C<-b&&(C=-b),M>y?M=y:M<-y&&(M=-y),r){S=(this.data.rotate+this.data.shearX)*t;let P=Math.atan2(M+this.ty,C+this.tx)-x-this.rotateOffset*S;this.rotateOffset+=(P-Math.ceil(P*ke.invPI2-.5)*ke.PI2)*m,P=this.rotateOffset*S+x,_=Math.cos(P),E=Math.sin(P),o&&(P=c*a.getWorldScaleX(),P>0&&(this.scaleOffset+=(C*_+M*E)*m/P))}else{_=Math.cos(x),E=Math.sin(x);const P=c*a.getWorldScaleX();P>0&&(this.scaleOffset+=(C*_+M*E)*m/P)}if(f=this.remaining,f>=p){v==-1&&(v=Math.pow(this.damping,60*p));const P=this.massInverse*p,A=this.strength,R=this.wind,B=zg.yDown?-this.gravity:this.gravity,O=c/g;for(;;)if(f-=p,o&&(this.scaleVelocity+=(R*_-B*E-this.scaleOffset*A)*P,this.scaleOffset+=this.scaleVelocity*p,this.scaleVelocity*=v),r){if(this.rotateVelocity-=((R*E+B*_)*O+this.rotateOffset*A)*P,this.rotateOffset+=this.rotateVelocity*p,this.rotateVelocity*=v,f<p)break;const W=this.rotateOffset*S+x;_=Math.cos(W),E=Math.sin(W)}else if(f<p)break}}this.remaining=f}this.cx=a.worldX,this.cy=a.worldY;break;case Dr.pose:i&&(a.worldX+=this.xOffset*t*this.data.x),s&&(a.worldY+=this.yOffset*t*this.data.y)}if(r){let l=this.rotateOffset*t,h=0,u=0,d=0;if(this.data.shearX>0){let f=0;this.data.rotate>0&&(f=l*this.data.rotate,h=Math.sin(f),u=Math.cos(f),d=a.b,a.b=u*d-h*a.d,a.d=h*d+u*a.d),f+=l*this.data.shearX,h=Math.sin(f),u=Math.cos(f),d=a.a,a.a=u*d-h*a.c,a.c=h*d+u*a.c}else l*=this.data.rotate,h=Math.sin(l),u=Math.cos(l),d=a.a,a.a=u*d-h*a.c,a.c=h*d+u*a.c,d=a.b,a.b=u*d-h*a.d,a.d=h*d+u*a.d}if(o){const l=1+this.scaleOffset*t*this.data.scaleX;a.a*=l,a.c*=l}e!=Dr.pose&&(this.tx=c*a.a,this.ty=c*a.c),a.updateAppliedTransform()}translate(e,t){this.ux-=e,this.uy-=t,this.cx-=e,this.cy-=t}rotate(e,t,i){const s=i*ke.degRad,r=Math.cos(s),o=Math.sin(s),a=this.cx-e,c=this.cy-t;this.translate(a*r-c*o-a,a*o+c*r-c)}},hN=class{constructor(e,t){T(this,"data");T(this,"bone");T(this,"color");T(this,"darkColor",null);T(this,"attachment",null);T(this,"attachmentState",0);T(this,"sequenceIndex",-1);T(this,"deform",new Array);if(!e)throw new Error("data cannot be null.");if(!t)throw new Error("bone cannot be null.");this.data=e,this.bone=t,this.color=new ut,this.darkColor=e.darkColor?new ut:null,this.setToSetupPose()}getSkeleton(){return this.bone.skeleton}getAttachment(){return this.attachment}setAttachment(e){this.attachment!=e&&((!(e instanceof pr)||!(this.attachment instanceof pr)||e.timelineAttachment!=this.attachment.timelineAttachment)&&(this.deform.length=0),this.attachment=e,this.sequenceIndex=-1)}setToSetupPose(){this.color.setFromColor(this.data.color),this.darkColor&&this.darkColor.setFromColor(this.data.darkColor),this.data.attachmentName?(this.attachment=null,this.setAttachment(this.bone.skeleton.getAttachment(this.data.index,this.data.attachmentName))):this.attachment=null}},uN=class{constructor(e,t){T(this,"data");T(this,"bones");T(this,"target");T(this,"mixRotate",0);T(this,"mixX",0);T(this,"mixY",0);T(this,"mixScaleX",0);T(this,"mixScaleY",0);T(this,"mixShearY",0);T(this,"temp",new mu);T(this,"active",!1);if(!e)throw new Error("data cannot be null.");if(!t)throw new Error("skeleton cannot be null.");this.data=e,this.bones=new Array;for(let s=0;s<e.bones.length;s++){let r=t.findBone(e.bones[s].name);if(!r)throw new Error(`Couldn't find bone ${e.bones[s].name}.`);this.bones.push(r)}let i=t.findBone(e.target.name);if(!i)throw new Error(`Couldn't find target bone ${e.target.name}.`);this.target=i,this.mixRotate=e.mixRotate,this.mixX=e.mixX,this.mixY=e.mixY,this.mixScaleX=e.mixScaleX,this.mixScaleY=e.mixScaleY,this.mixShearY=e.mixShearY}isActive(){return this.active}setToSetupPose(){const e=this.data;this.mixRotate=e.mixRotate,this.mixX=e.mixX,this.mixY=e.mixY,this.mixScaleX=e.mixScaleX,this.mixScaleY=e.mixScaleY,this.mixShearY=e.mixShearY}update(e){this.mixRotate==0&&this.mixX==0&&this.mixY==0&&this.mixScaleX==0&&this.mixScaleY==0&&this.mixShearY==0||(this.data.local?this.data.relative?this.applyRelativeLocal():this.applyAbsoluteLocal():this.data.relative?this.applyRelativeWorld():this.applyAbsoluteWorld())}applyAbsoluteWorld(){let e=this.mixRotate,t=this.mixX,i=this.mixY,s=this.mixScaleX,r=this.mixScaleY,o=this.mixShearY,a=t!=0||i!=0,c=this.target,l=c.a,h=c.b,u=c.c,d=c.d,f=l*d-h*u>0?ke.degRad:-.01745329277777778,m=this.data.offsetRotation*f,p=this.data.offsetShearY*f,g=this.bones;for(let v=0,b=g.length;v<b;v++){let y=g[v];if(e!=0){let x=y.a,_=y.b,E=y.c,S=y.d,C=Math.atan2(u,l)-Math.atan2(E,x)+m;C>ke.PI?C-=ke.PI2:C<-3.1415927&&(C+=ke.PI2),C*=e;let M=Math.cos(C),P=Math.sin(C);y.a=M*x-P*E,y.b=M*_-P*S,y.c=P*x+M*E,y.d=P*_+M*S}if(a){let x=this.temp;c.localToWorld(x.set(this.data.offsetX,this.data.offsetY)),y.worldX+=(x.x-y.worldX)*t,y.worldY+=(x.y-y.worldY)*i}if(s!=0){let x=Math.sqrt(y.a*y.a+y.c*y.c);x!=0&&(x=(x+(Math.sqrt(l*l+u*u)-x+this.data.offsetScaleX)*s)/x),y.a*=x,y.c*=x}if(r!=0){let x=Math.sqrt(y.b*y.b+y.d*y.d);x!=0&&(x=(x+(Math.sqrt(h*h+d*d)-x+this.data.offsetScaleY)*r)/x),y.b*=x,y.d*=x}if(o>0){let x=y.b,_=y.d,E=Math.atan2(_,x),S=Math.atan2(d,h)-Math.atan2(u,l)-(E-Math.atan2(y.c,y.a));S>ke.PI?S-=ke.PI2:S<-3.1415927&&(S+=ke.PI2),S=E+(S+p)*o;let C=Math.sqrt(x*x+_*_);y.b=Math.cos(S)*C,y.d=Math.sin(S)*C}y.updateAppliedTransform()}}applyRelativeWorld(){let e=this.mixRotate,t=this.mixX,i=this.mixY,s=this.mixScaleX,r=this.mixScaleY,o=this.mixShearY,a=t!=0||i!=0,c=this.target,l=c.a,h=c.b,u=c.c,d=c.d,f=l*d-h*u>0?ke.degRad:-.01745329277777778,m=this.data.offsetRotation*f,p=this.data.offsetShearY*f,g=this.bones;for(let v=0,b=g.length;v<b;v++){let y=g[v];if(e!=0){let x=y.a,_=y.b,E=y.c,S=y.d,C=Math.atan2(u,l)+m;C>ke.PI?C-=ke.PI2:C<-3.1415927&&(C+=ke.PI2),C*=e;let M=Math.cos(C),P=Math.sin(C);y.a=M*x-P*E,y.b=M*_-P*S,y.c=P*x+M*E,y.d=P*_+M*S}if(a){let x=this.temp;c.localToWorld(x.set(this.data.offsetX,this.data.offsetY)),y.worldX+=x.x*t,y.worldY+=x.y*i}if(s!=0){let x=(Math.sqrt(l*l+u*u)-1+this.data.offsetScaleX)*s+1;y.a*=x,y.c*=x}if(r!=0){let x=(Math.sqrt(h*h+d*d)-1+this.data.offsetScaleY)*r+1;y.b*=x,y.d*=x}if(o>0){let x=Math.atan2(d,h)-Math.atan2(u,l);x>ke.PI?x-=ke.PI2:x<-3.1415927&&(x+=ke.PI2);let _=y.b,E=y.d;x=Math.atan2(E,_)+(x-ke.PI/2+p)*o;let S=Math.sqrt(_*_+E*E);y.b=Math.cos(x)*S,y.d=Math.sin(x)*S}y.updateAppliedTransform()}}applyAbsoluteLocal(){let e=this.mixRotate,t=this.mixX,i=this.mixY,s=this.mixScaleX,r=this.mixScaleY,o=this.mixShearY,a=this.target,c=this.bones;for(let l=0,h=c.length;l<h;l++){let u=c[l],d=u.arotation;e!=0&&(d+=(a.arotation-d+this.data.offsetRotation)*e);let f=u.ax,m=u.ay;f+=(a.ax-f+this.data.offsetX)*t,m+=(a.ay-m+this.data.offsetY)*i;let p=u.ascaleX,g=u.ascaleY;s!=0&&p!=0&&(p=(p+(a.ascaleX-p+this.data.offsetScaleX)*s)/p),r!=0&&g!=0&&(g=(g+(a.ascaleY-g+this.data.offsetScaleY)*r)/g);let v=u.ashearY;o!=0&&(v+=(a.ashearY-v+this.data.offsetShearY)*o),u.updateWorldTransformWith(f,m,d,p,g,u.ashearX,v)}}applyRelativeLocal(){let e=this.mixRotate,t=this.mixX,i=this.mixY,s=this.mixScaleX,r=this.mixScaleY,o=this.mixShearY,a=this.target,c=this.bones;for(let l=0,h=c.length;l<h;l++){let u=c[l],d=u.arotation+(a.arotation+this.data.offsetRotation)*e,f=u.ax+(a.ax+this.data.offsetX)*t,m=u.ay+(a.ay+this.data.offsetY)*i,p=u.ascaleX*((a.ascaleX-1+this.data.offsetScaleX)*s+1),g=u.ascaleY*((a.ascaleY-1+this.data.offsetScaleY)*r+1),v=u.ashearY+(a.ashearY+this.data.offsetShearY)*o;u.updateWorldTransformWith(f,m,d,p,g,u.ashearX,v)}}};var qs;let zg=(qs=class{constructor(e){T(this,"data");T(this,"bones");T(this,"slots");T(this,"drawOrder");T(this,"ikConstraints");T(this,"transformConstraints");T(this,"pathConstraints");T(this,"physicsConstraints");T(this,"_updateCache",new Array);T(this,"skin",null);T(this,"color");T(this,"scaleX",1);T(this,"_scaleY",1);T(this,"x",0);T(this,"y",0);T(this,"time",0);if(!e)throw new Error("data cannot be null.");this.data=e,this.bones=new Array;for(let t=0;t<e.bones.length;t++){let i=e.bones[t],s;if(!i.parent)s=new qb(i,this,null);else{let r=this.bones[i.parent.index];s=new qb(i,this,r),r.children.push(s)}this.bones.push(s)}this.slots=new Array,this.drawOrder=new Array;for(let t=0;t<e.slots.length;t++){let i=e.slots[t],s=this.bones[i.boneData.index],r=new hN(i,s);this.slots.push(r),this.drawOrder.push(r)}this.ikConstraints=new Array;for(let t=0;t<e.ikConstraints.length;t++){let i=e.ikConstraints[t];this.ikConstraints.push(new aN(i,this))}this.transformConstraints=new Array;for(let t=0;t<e.transformConstraints.length;t++){let i=e.transformConstraints[t];this.transformConstraints.push(new uN(i,this))}this.pathConstraints=new Array;for(let t=0;t<e.pathConstraints.length;t++){let i=e.pathConstraints[t];this.pathConstraints.push(new lN(i,this))}this.physicsConstraints=new Array;for(let t=0;t<e.physicsConstraints.length;t++){let i=e.physicsConstraints[t];this.physicsConstraints.push(new cN(i,this))}this.color=new ut(1,1,1,1),this.updateCache()}get scaleY(){return qs.yDown?-this._scaleY:this._scaleY}set scaleY(e){this._scaleY=e}updateCache(){let e=this._updateCache;e.length=0;let t=this.bones;for(let d=0,f=t.length;d<f;d++){let m=t[d];m.sorted=m.data.skinRequired,m.active=!m.sorted}if(this.skin){let d=this.skin.bones;for(let f=0,m=this.skin.bones.length;f<m;f++){let p=this.bones[d[f].index];do p.sorted=!1,p.active=!0,p=p.parent;while(p)}}let i=this.ikConstraints,s=this.transformConstraints,r=this.pathConstraints,o=this.physicsConstraints,a=i.length,c=s.length,l=r.length,h=this.physicsConstraints.length,u=a+c+l+h;e:for(let d=0;d<u;d++){for(let f=0;f<a;f++){let m=i[f];if(m.data.order==d){this.sortIkConstraint(m);continue e}}for(let f=0;f<c;f++){let m=s[f];if(m.data.order==d){this.sortTransformConstraint(m);continue e}}for(let f=0;f<l;f++){let m=r[f];if(m.data.order==d){this.sortPathConstraint(m);continue e}}for(let f=0;f<h;f++){const m=o[f];if(m.data.order==d){this.sortPhysicsConstraint(m);continue e}}}for(let d=0,f=t.length;d<f;d++)this.sortBone(t[d])}sortIkConstraint(e){if(e.active=e.target.isActive()&&(!e.data.skinRequired||this.skin&&Oe.contains(this.skin.constraints,e.data,!0)),!e.active)return;let t=e.target;this.sortBone(t);let i=e.bones,s=i[0];if(this.sortBone(s),i.length==1)this._updateCache.push(e),this.sortReset(s.children);else{let r=i[i.length-1];this.sortBone(r),this._updateCache.push(e),this.sortReset(s.children),r.sorted=!0}}sortPathConstraint(e){if(e.active=e.target.bone.isActive()&&(!e.data.skinRequired||this.skin&&Oe.contains(this.skin.constraints,e.data,!0)),!e.active)return;let t=e.target,i=t.data.index,s=t.bone;this.skin&&this.sortPathConstraintAttachment(this.skin,i,s),this.data.defaultSkin&&this.data.defaultSkin!=this.skin&&this.sortPathConstraintAttachment(this.data.defaultSkin,i,s);for(let c=0,l=this.data.skins.length;c<l;c++)this.sortPathConstraintAttachment(this.data.skins[c],i,s);let r=t.getAttachment();r instanceof lc&&this.sortPathConstraintAttachmentWith(r,s);let o=e.bones,a=o.length;for(let c=0;c<a;c++)this.sortBone(o[c]);this._updateCache.push(e);for(let c=0;c<a;c++)this.sortReset(o[c].children);for(let c=0;c<a;c++)o[c].sorted=!0}sortTransformConstraint(e){if(e.active=e.target.isActive()&&(!e.data.skinRequired||this.skin&&Oe.contains(this.skin.constraints,e.data,!0)),!e.active)return;this.sortBone(e.target);let t=e.bones,i=t.length;if(e.data.local)for(let s=0;s<i;s++){let r=t[s];this.sortBone(r.parent),this.sortBone(r)}else for(let s=0;s<i;s++)this.sortBone(t[s]);this._updateCache.push(e);for(let s=0;s<i;s++)this.sortReset(t[s].children);for(let s=0;s<i;s++)t[s].sorted=!0}sortPathConstraintAttachment(e,t,i){let s=e.attachments[t];if(s)for(let r in s)this.sortPathConstraintAttachmentWith(s[r],i)}sortPathConstraintAttachmentWith(e,t){if(!(e instanceof lc))return;let i=e.bones;if(!i)this.sortBone(t);else{let s=this.bones;for(let r=0,o=i.length;r<o;){let a=i[r++];for(a+=r;r<a;)this.sortBone(s[i[r++]])}}}sortPhysicsConstraint(e){const t=e.bone;e.active=t.active&&(!e.data.skinRequired||this.skin!=null&&Oe.contains(this.skin.constraints,e.data,!0)),e.active&&(this.sortBone(t),this._updateCache.push(e),this.sortReset(t.children),t.sorted=!0)}sortBone(e){if(!e||e.sorted)return;let t=e.parent;t&&this.sortBone(t),e.sorted=!0,this._updateCache.push(e)}sortReset(e){for(let t=0,i=e.length;t<i;t++){let s=e[t];s.active&&(s.sorted&&this.sortReset(s.children),s.sorted=!1)}}updateWorldTransform(e){if(e==null)throw new Error("physics is undefined");let t=this.bones;for(let s=0,r=t.length;s<r;s++){let o=t[s];o.ax=o.x,o.ay=o.y,o.arotation=o.rotation,o.ascaleX=o.scaleX,o.ascaleY=o.scaleY,o.ashearX=o.shearX,o.ashearY=o.shearY}let i=this._updateCache;for(let s=0,r=i.length;s<r;s++)i[s].update(e)}updateWorldTransformWith(e,t){if(!t)throw new Error("parent cannot be null.");let i=this.bones;for(let g=1,v=i.length;g<v;g++){let b=i[g];b.ax=b.x,b.ay=b.y,b.arotation=b.rotation,b.ascaleX=b.scaleX,b.ascaleY=b.scaleY,b.ashearX=b.shearX,b.ashearY=b.shearY}let s=this.getRootBone();if(!s)throw new Error("Root bone must not be null.");let r=t.a,o=t.b,a=t.c,c=t.d;s.worldX=r*this.x+o*this.y+t.worldX,s.worldY=a*this.x+c*this.y+t.worldY;const l=(s.rotation+s.shearX)*ke.degRad,h=(s.rotation+90+s.shearY)*ke.degRad,u=Math.cos(l)*s.scaleX,d=Math.cos(h)*s.scaleY,f=Math.sin(l)*s.scaleX,m=Math.sin(h)*s.scaleY;s.a=(r*u+o*f)*this.scaleX,s.b=(r*d+o*m)*this.scaleX,s.c=(a*u+c*f)*this.scaleY,s.d=(a*d+c*m)*this.scaleY;let p=this._updateCache;for(let g=0,v=p.length;g<v;g++){let b=p[g];b!=s&&b.update(e)}}setToSetupPose(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()}setBonesToSetupPose(){for(const e of this.bones)e.setToSetupPose();for(const e of this.ikConstraints)e.setToSetupPose();for(const e of this.transformConstraints)e.setToSetupPose();for(const e of this.pathConstraints)e.setToSetupPose();for(const e of this.physicsConstraints)e.setToSetupPose()}setSlotsToSetupPose(){let e=this.slots;Oe.arrayCopy(e,0,this.drawOrder,0,e.length);for(let t=0,i=e.length;t<i;t++)e[t].setToSetupPose()}getRootBone(){return this.bones.length==0?null:this.bones[0]}findBone(e){if(!e)throw new Error("boneName cannot be null.");let t=this.bones;for(let i=0,s=t.length;i<s;i++){let r=t[i];if(r.data.name==e)return r}return null}findSlot(e){if(!e)throw new Error("slotName cannot be null.");let t=this.slots;for(let i=0,s=t.length;i<s;i++){let r=t[i];if(r.data.name==e)return r}return null}setSkinByName(e){let t=this.data.findSkin(e);if(!t)throw new Error("Skin not found: "+e);this.setSkin(t)}setSkin(e){if(e!=this.skin){if(e)if(this.skin)e.attachAll(this,this.skin);else{let t=this.slots;for(let i=0,s=t.length;i<s;i++){let r=t[i],o=r.data.attachmentName;if(o){let a=e.getAttachment(i,o);a&&r.setAttachment(a)}}}this.skin=e,this.updateCache()}}getAttachmentByName(e,t){let i=this.data.findSlot(e);if(!i)throw new Error(`Can't find slot with name ${e}`);return this.getAttachment(i.index,t)}getAttachment(e,t){if(!t)throw new Error("attachmentName cannot be null.");if(this.skin){let i=this.skin.getAttachment(e,t);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(e,t):null}setAttachment(e,t){if(!e)throw new Error("slotName cannot be null.");let i=this.slots;for(let s=0,r=i.length;s<r;s++){let o=i[s];if(o.data.name==e){let a=null;if(t&&(a=this.getAttachment(s,t),!a))throw new Error("Attachment not found: "+t+", for slot: "+e);o.setAttachment(a);return}}throw new Error("Slot not found: "+e)}findIkConstraint(e){if(!e)throw new Error("constraintName cannot be null.");return this.ikConstraints.find(t=>t.data.name==e)??null}findTransformConstraint(e){if(!e)throw new Error("constraintName cannot be null.");return this.transformConstraints.find(t=>t.data.name==e)??null}findPathConstraint(e){if(!e)throw new Error("constraintName cannot be null.");return this.pathConstraints.find(t=>t.data.name==e)??null}findPhysicsConstraint(e){if(e==null)throw new Error("constraintName cannot be null.");return this.physicsConstraints.find(t=>t.data.name==e)??null}getBoundsRect(e){let t=new mu,i=new mu;return this.getBounds(t,i,void 0,e),{x:t.x,y:t.y,width:i.x,height:i.y}}getBounds(e,t,i=new Array(2),s=null){if(!e)throw new Error("offset cannot be null.");if(!t)throw new Error("size cannot be null.");let r=this.drawOrder,o=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,l=Number.NEGATIVE_INFINITY;for(let h=0,u=r.length;h<u;h++){let d=r[h];if(!d.bone.active)continue;let f=0,m=null,p=null,g=d.getAttachment();if(g instanceof dd)f=8,m=Oe.setArraySize(i,f,0),g.computeWorldVertices(d,m,0,2),p=qs.quadTriangles;else if(g instanceof bc){let v=g;f=v.worldVerticesLength,m=Oe.setArraySize(i,f,0),v.computeWorldVertices(d,0,f,m,0,2),p=v.triangles}else if(g instanceof $a&&s!=null){s.clipStart(d,g);continue}if(m&&p){s!=null&&s.isClipping()&&(s.clipTriangles(m,p,p.length),m=s.clippedVertices,f=s.clippedVertices.length);for(let v=0,b=m.length;v<b;v+=2){let y=m[v],x=m[v+1];o=Math.min(o,y),a=Math.min(a,x),c=Math.max(c,y),l=Math.max(l,x)}}s!=null&&s.clipEndWithSlot(d)}s!=null&&s.clipEnd(),e.set(o,a),t.set(c-o,l-a)}update(e){this.time+=e}physicsTranslate(e,t){const i=this.physicsConstraints;for(let s=0,r=i.length;s<r;s++)i[s].translate(e,t)}physicsRotate(e,t,i){const s=this.physicsConstraints;for(let r=0,o=s.length;r<o;r++)s[r].rotate(e,t,i)}},T(qs,"quadTriangles",[0,1,2,2,3,0]),T(qs,"yDown",!1),qs);var Dr;(function(n){n[n.none=0]="none",n[n.reset=1]="reset",n[n.update=2]="update",n[n.pose=3]="pose"})(Dr||(Dr={}));let fT=class extends fd{constructor(t){super(t,0,!1);T(this,"_bone",null);T(this,"x",0);T(this,"y",0);T(this,"rotate",0);T(this,"scaleX",0);T(this,"shearX",0);T(this,"limit",0);T(this,"step",0);T(this,"inertia",0);T(this,"strength",0);T(this,"damping",0);T(this,"massInverse",0);T(this,"wind",0);T(this,"gravity",0);T(this,"mix",0);T(this,"inertiaGlobal",!1);T(this,"strengthGlobal",!1);T(this,"dampingGlobal",!1);T(this,"massGlobal",!1);T(this,"windGlobal",!1);T(this,"gravityGlobal",!1);T(this,"mixGlobal",!1)}set bone(t){this._bone=t}get bone(){if(this._bone)return this._bone;throw new Error("BoneData not set.")}},gu=class{constructor(){T(this,"name",null);T(this,"bones",new Array);T(this,"slots",new Array);T(this,"skins",new Array);T(this,"defaultSkin",null);T(this,"events",new Array);T(this,"animations",new Array);T(this,"ikConstraints",new Array);T(this,"transformConstraints",new Array);T(this,"pathConstraints",new Array);T(this,"physicsConstraints",new Array);T(this,"x",0);T(this,"y",0);T(this,"width",0);T(this,"height",0);T(this,"referenceScale",100);T(this,"version",null);T(this,"hash",null);T(this,"fps",0);T(this,"imagesPath",null);T(this,"audioPath",null)}findBone(e){if(!e)throw new Error("boneName cannot be null.");let t=this.bones;for(let i=0,s=t.length;i<s;i++){let r=t[i];if(r.name==e)return r}return null}findSlot(e){if(!e)throw new Error("slotName cannot be null.");let t=this.slots;for(let i=0,s=t.length;i<s;i++){let r=t[i];if(r.name==e)return r}return null}findSkin(e){if(!e)throw new Error("skinName cannot be null.");let t=this.skins;for(let i=0,s=t.length;i<s;i++){let r=t[i];if(r.name==e)return r}return null}findEvent(e){if(!e)throw new Error("eventDataName cannot be null.");let t=this.events;for(let i=0,s=t.length;i<s;i++){let r=t[i];if(r.name==e)return r}return null}findAnimation(e){if(!e)throw new Error("animationName cannot be null.");let t=this.animations;for(let i=0,s=t.length;i<s;i++){let r=t[i];if(r.name==e)return r}return null}findIkConstraint(e){if(!e)throw new Error("constraintName cannot be null.");const t=this.ikConstraints;for(let i=0,s=t.length;i<s;i++){const r=t[i];if(r.name==e)return r}return null}findTransformConstraint(e){if(!e)throw new Error("constraintName cannot be null.");const t=this.transformConstraints;for(let i=0,s=t.length;i<s;i++){const r=t[i];if(r.name==e)return r}return null}findPathConstraint(e){if(!e)throw new Error("constraintName cannot be null.");const t=this.pathConstraints;for(let i=0,s=t.length;i<s;i++){const r=t[i];if(r.name==e)return r}return null}findPhysicsConstraint(e){if(!e)throw new Error("constraintName cannot be null.");const t=this.physicsConstraints;for(let i=0,s=t.length;i<s;i++){const r=t[i];if(r.name==e)return r}return null}},Kb=class{constructor(e=0,t,i){T(this,"slotIndex");T(this,"name");T(this,"attachment");this.slotIndex=e,this.name=t,this.attachment=i}},kp=class{constructor(e){T(this,"name");T(this,"attachments",new Array);T(this,"bones",Array());T(this,"constraints",new Array);T(this,"color",new ut(.99607843,.61960787,.30980393,1));if(!e)throw new Error("name cannot be null.");this.name=e}setAttachment(e,t,i){if(!i)throw new Error("attachment cannot be null.");let s=this.attachments;e>=s.length&&(s.length=e+1),s[e]||(s[e]={}),s[e][t]=i}addSkin(e){for(let s=0;s<e.bones.length;s++){let r=e.bones[s],o=!1;for(let a=0;a<this.bones.length;a++)if(this.bones[a]==r){o=!0;break}o||this.bones.push(r)}for(let s=0;s<e.constraints.length;s++){let r=e.constraints[s],o=!1;for(let a=0;a<this.constraints.length;a++)if(this.constraints[a]==r){o=!0;break}o||this.constraints.push(r)}let t=e.getAttachments();for(let s=0;s<t.length;s++){var i=t[s];this.setAttachment(i.slotIndex,i.name,i.attachment)}}copySkin(e){for(let s=0;s<e.bones.length;s++){let r=e.bones[s],o=!1;for(let a=0;a<this.bones.length;a++)if(this.bones[a]==r){o=!0;break}o||this.bones.push(r)}for(let s=0;s<e.constraints.length;s++){let r=e.constraints[s],o=!1;for(let a=0;a<this.constraints.length;a++)if(this.constraints[a]==r){o=!0;break}o||this.constraints.push(r)}let t=e.getAttachments();for(let s=0;s<t.length;s++){var i=t[s];i.attachment&&(i.attachment instanceof bc?(i.attachment=i.attachment.newLinkedMesh(),this.setAttachment(i.slotIndex,i.name,i.attachment)):(i.attachment=i.attachment.copy(),this.setAttachment(i.slotIndex,i.name,i.attachment)))}}getAttachment(e,t){let i=this.attachments[e];return i?i[t]:null}removeAttachment(e,t){let i=this.attachments[e];i&&delete i[t]}getAttachments(){let e=new Array;for(var t=0;t<this.attachments.length;t++){let i=this.attachments[t];if(i)for(let s in i){let r=i[s];r&&e.push(new Kb(t,s,r))}}return e}getAttachmentsForSlot(e,t){let i=this.attachments[e];if(i)for(let s in i){let r=i[s];r&&t.push(new Kb(e,s,r))}}clear(){this.attachments.length=0,this.bones.length=0,this.constraints.length=0}attachAll(e,t){let i=0;for(let s=0;s<e.slots.length;s++){let r=e.slots[s],o=r.getAttachment();if(o&&i<t.attachments.length){let a=t.attachments[i];for(let c in a){let l=a[c];if(o==l){let h=this.getAttachment(i,c);h&&r.setAttachment(h);break}}}i++}}},mT=class{constructor(e,t,i){T(this,"index",0);T(this,"name");T(this,"boneData");T(this,"color",new ut(1,1,1,1));T(this,"darkColor",null);T(this,"attachmentName",null);T(this,"blendMode",Hr.Normal);T(this,"visible",!0);if(e<0)throw new Error("index must be >= 0.");if(!t)throw new Error("name cannot be null.");if(!i)throw new Error("boneData cannot be null.");this.index=e,this.name=t,this.boneData=i}};var Hr;(function(n){n[n.Normal=0]="Normal",n[n.Additive=1]="Additive",n[n.Multiply=2]="Multiply",n[n.Screen=3]="Screen"})(Hr||(Hr={}));let pT=class extends fd{constructor(t){super(t,0,!1);T(this,"bones",new Array);T(this,"_target",null);T(this,"mixRotate",0);T(this,"mixX",0);T(this,"mixY",0);T(this,"mixScaleX",0);T(this,"mixScaleY",0);T(this,"mixShearY",0);T(this,"offsetRotation",0);T(this,"offsetX",0);T(this,"offsetY",0);T(this,"offsetScaleX",0);T(this,"offsetScaleY",0);T(this,"offsetShearY",0);T(this,"relative",!1);T(this,"local",!1)}set target(t){this._target=t}get target(){if(this._target)return this._target;throw new Error("BoneData not set.")}},Fp=class{constructor(e){T(this,"scale",1);T(this,"attachmentLoader");T(this,"linkedMeshes",new Array);this.attachmentLoader=e}readSkeletonData(e){let t=this.scale,i=new gu;i.name="";let s=new dN(e),r=s.readInt32(),o=s.readInt32();i.hash=o==0&&r==0?null:o.toString(16)+r.toString(16),i.version=s.readString(),i.x=s.readFloat(),i.y=s.readFloat(),i.width=s.readFloat(),i.height=s.readFloat(),i.referenceScale=s.readFloat()*t;let a=s.readBoolean();a&&(i.fps=s.readFloat(),i.imagesPath=s.readString(),i.audioPath=s.readString());let c=0;c=s.readInt(!0);for(let h=0;h<c;h++){let u=s.readString();if(!u)throw new Error("String in string table must not be null.");s.strings.push(u)}c=s.readInt(!0);for(let h=0;h<c;h++){let u=s.readString();if(!u)throw new Error("Bone name must not be null.");let d=h==0?null:i.bones[s.readInt(!0)],f=new lT(h,u,d);f.rotation=s.readFloat(),f.x=s.readFloat()*t,f.y=s.readFloat()*t,f.scaleX=s.readFloat(),f.scaleY=s.readFloat(),f.shearX=s.readFloat(),f.shearY=s.readFloat(),f.length=s.readFloat()*t,f.inherit=s.readByte(),f.skinRequired=s.readBoolean(),a&&(ut.rgba8888ToColor(f.color,s.readInt32()),f.icon=s.readString()??void 0,f.visible=s.readBoolean()),i.bones.push(f)}c=s.readInt(!0);for(let h=0;h<c;h++){let u=s.readString();if(!u)throw new Error("Slot name must not be null.");let d=i.bones[s.readInt(!0)],f=new mT(h,u,d);ut.rgba8888ToColor(f.color,s.readInt32());let m=s.readInt32();m!=-1&&ut.rgb888ToColor(f.darkColor=new ut,m),f.attachmentName=s.readStringRef(),f.blendMode=s.readInt(!0),a&&(f.visible=s.readBoolean()),i.slots.push(f)}c=s.readInt(!0);for(let h=0,u;h<c;h++){let d=s.readString();if(!d)throw new Error("IK constraint data name must not be null.");let f=new uT(d);f.order=s.readInt(!0),u=s.readInt(!0);for(let p=0;p<u;p++)f.bones.push(i.bones[s.readInt(!0)]);f.target=i.bones[s.readInt(!0)];let m=s.readByte();f.skinRequired=(m&1)!=0,f.bendDirection=(m&2)!=0?1:-1,f.compress=(m&4)!=0,f.stretch=(m&8)!=0,f.uniform=(m&16)!=0,(m&32)!=0&&(f.mix=(m&64)!=0?s.readFloat():1),(m&128)!=0&&(f.softness=s.readFloat()*t),i.ikConstraints.push(f)}c=s.readInt(!0);for(let h=0,u;h<c;h++){let d=s.readString();if(!d)throw new Error("Transform constraint data name must not be null.");let f=new pT(d);f.order=s.readInt(!0),u=s.readInt(!0);for(let p=0;p<u;p++)f.bones.push(i.bones[s.readInt(!0)]);f.target=i.bones[s.readInt(!0)];let m=s.readByte();f.skinRequired=(m&1)!=0,f.local=(m&2)!=0,f.relative=(m&4)!=0,(m&8)!=0&&(f.offsetRotation=s.readFloat()),(m&16)!=0&&(f.offsetX=s.readFloat()*t),(m&32)!=0&&(f.offsetY=s.readFloat()*t),(m&64)!=0&&(f.offsetScaleX=s.readFloat()),(m&128)!=0&&(f.offsetScaleY=s.readFloat()),m=s.readByte(),(m&1)!=0&&(f.offsetShearY=s.readFloat()),(m&2)!=0&&(f.mixRotate=s.readFloat()),(m&4)!=0&&(f.mixX=s.readFloat()),(m&8)!=0&&(f.mixY=s.readFloat()),(m&16)!=0&&(f.mixScaleX=s.readFloat()),(m&32)!=0&&(f.mixScaleY=s.readFloat()),(m&64)!=0&&(f.mixShearY=s.readFloat()),i.transformConstraints.push(f)}c=s.readInt(!0);for(let h=0,u;h<c;h++){let d=s.readString();if(!d)throw new Error("Path constraint data name must not be null.");let f=new dT(d);f.order=s.readInt(!0),f.skinRequired=s.readBoolean(),u=s.readInt(!0);for(let p=0;p<u;p++)f.bones.push(i.bones[s.readInt(!0)]);f.target=i.slots[s.readInt(!0)];const m=s.readByte();f.positionMode=m&1,f.spacingMode=m>>1&3,f.rotateMode=m>>3&3,(m&128)!=0&&(f.offsetRotation=s.readFloat()),f.position=s.readFloat(),f.positionMode==As.Fixed&&(f.position*=t),f.spacing=s.readFloat(),(f.spacingMode==Ti.Length||f.spacingMode==Ti.Fixed)&&(f.spacing*=t),f.mixRotate=s.readFloat(),f.mixX=s.readFloat(),f.mixY=s.readFloat(),i.pathConstraints.push(f)}c=s.readInt(!0);for(let h=0,u;h<c;h++){const d=s.readString();if(!d)throw new Error("Physics constraint data name must not be null.");const f=new fT(d);f.order=s.readInt(!0),f.bone=i.bones[s.readInt(!0)];let m=s.readByte();f.skinRequired=(m&1)!=0,(m&2)!=0&&(f.x=s.readFloat()),(m&4)!=0&&(f.y=s.readFloat()),(m&8)!=0&&(f.rotate=s.readFloat()),(m&16)!=0&&(f.scaleX=s.readFloat()),(m&32)!=0&&(f.shearX=s.readFloat()),f.limit=((m&64)!=0?s.readFloat():5e3)*t,f.step=1/s.readUnsignedByte(),f.inertia=s.readFloat(),f.strength=s.readFloat(),f.damping=s.readFloat(),f.massInverse=(m&128)!=0?s.readFloat():1,f.wind=s.readFloat(),f.gravity=s.readFloat(),m=s.readByte(),(m&1)!=0&&(f.inertiaGlobal=!0),(m&2)!=0&&(f.strengthGlobal=!0),(m&4)!=0&&(f.dampingGlobal=!0),(m&8)!=0&&(f.massGlobal=!0),(m&16)!=0&&(f.windGlobal=!0),(m&32)!=0&&(f.gravityGlobal=!0),(m&64)!=0&&(f.mixGlobal=!0),f.mix=(m&128)!=0?s.readFloat():1,i.physicsConstraints.push(f)}let l=this.readSkin(s,i,!0,a);l&&(i.defaultSkin=l,i.skins.push(l));{let h=i.skins.length;for(Oe.setArraySize(i.skins,c=h+s.readInt(!0));h<c;h++){let u=this.readSkin(s,i,!1,a);if(!u)throw new Error("readSkin() should not have returned null.");i.skins[h]=u}}c=this.linkedMeshes.length;for(let h=0;h<c;h++){let u=this.linkedMeshes[h];const d=i.skins[u.skinIndex];if(!u.parent)throw new Error("Linked mesh parent must not be null");let f=d.getAttachment(u.slotIndex,u.parent);if(!f)throw new Error(`Parent mesh not found: ${u.parent}`);u.mesh.timelineAttachment=u.inheritTimeline?f:u.mesh,u.mesh.setParentMesh(f),u.mesh.region!=null&&u.mesh.updateRegion()}this.linkedMeshes.length=0,c=s.readInt(!0);for(let h=0;h<c;h++){let u=s.readString();if(!u)throw new Error("Event data name must not be null");let d=new hT(u);d.intValue=s.readInt(!1),d.floatValue=s.readFloat(),d.stringValue=s.readString(),d.audioPath=s.readString(),d.audioPath&&(d.volume=s.readFloat(),d.balance=s.readFloat()),i.events.push(d)}c=s.readInt(!0);for(let h=0;h<c;h++){let u=s.readString();if(!u)throw new Error("Animatio name must not be null.");i.animations.push(this.readAnimation(s,u,i))}return i}readSkin(e,t,i,s){let r=null,o=0;if(i){if(o=e.readInt(!0),o==0)return null;r=new kp("default")}else{let a=e.readString();if(!a)throw new Error("Skin name must not be null.");r=new kp(a),s&&ut.rgba8888ToColor(r.color,e.readInt32()),r.bones.length=e.readInt(!0);for(let c=0,l=r.bones.length;c<l;c++)r.bones[c]=t.bones[e.readInt(!0)];for(let c=0,l=e.readInt(!0);c<l;c++)r.constraints.push(t.ikConstraints[e.readInt(!0)]);for(let c=0,l=e.readInt(!0);c<l;c++)r.constraints.push(t.transformConstraints[e.readInt(!0)]);for(let c=0,l=e.readInt(!0);c<l;c++)r.constraints.push(t.pathConstraints[e.readInt(!0)]);for(let c=0,l=e.readInt(!0);c<l;c++)r.constraints.push(t.physicsConstraints[e.readInt(!0)]);o=e.readInt(!0)}for(let a=0;a<o;a++){let c=e.readInt(!0);for(let l=0,h=e.readInt(!0);l<h;l++){let u=e.readStringRef();if(!u)throw new Error("Attachment name must not be null");let d=this.readAttachment(e,t,r,c,u,s);d&&r.setAttachment(c,u,d)}}return r}readAttachment(e,t,i,s,r,o){let a=this.scale,c=e.readByte();const l=(c&8)!=0?e.readStringRef():r;if(!l)throw new Error("Attachment name must not be null");switch(c&7){case Xs.Region:{let h=(c&16)!=0?e.readStringRef():null;const u=(c&32)!=0?e.readInt32():4294967295,d=(c&64)!=0?this.readSequence(e):null;let f=(c&128)!=0?e.readFloat():0,m=e.readFloat(),p=e.readFloat(),g=e.readFloat(),v=e.readFloat(),b=e.readFloat(),y=e.readFloat();h||(h=l);let x=this.attachmentLoader.newRegionAttachment(i,l,h,d);return x?(x.path=h,x.x=m*a,x.y=p*a,x.scaleX=g,x.scaleY=v,x.rotation=f,x.width=b*a,x.height=y*a,ut.rgba8888ToColor(x.color,u),x.sequence=d,d==null&&x.updateRegion(),x):null}case Xs.BoundingBox:{let h=this.readVertices(e,(c&16)!=0),u=o?e.readInt32():0,d=this.attachmentLoader.newBoundingBoxAttachment(i,l);return d?(d.worldVerticesLength=h.length,d.vertices=h.vertices,d.bones=h.bones,o&&ut.rgba8888ToColor(d.color,u),d):null}case Xs.Mesh:{let h=(c&16)!=0?e.readStringRef():l;const u=(c&32)!=0?e.readInt32():4294967295,d=(c&64)!=0?this.readSequence(e):null,f=e.readInt(!0),m=this.readVertices(e,(c&128)!=0),p=this.readFloatArray(e,m.length,1),g=this.readShortArray(e,(m.length-f-2)*3);let v=[],b=0,y=0;o&&(v=this.readShortArray(e,e.readInt(!0)),b=e.readFloat(),y=e.readFloat()),h||(h=l);let x=this.attachmentLoader.newMeshAttachment(i,l,h,d);return x?(x.path=h,ut.rgba8888ToColor(x.color,u),x.bones=m.bones,x.vertices=m.vertices,x.worldVerticesLength=m.length,x.triangles=g,x.regionUVs=p,d==null&&x.updateRegion(),x.hullLength=f<<1,x.sequence=d,o&&(x.edges=v,x.width=b*a,x.height=y*a),x):null}case Xs.LinkedMesh:{const h=(c&16)!=0?e.readStringRef():l;if(h==null)throw new Error("Path of linked mesh must not be null");const u=(c&32)!=0?e.readInt32():4294967295,d=(c&64)!=0?this.readSequence(e):null,f=(c&128)!=0,m=e.readInt(!0),p=e.readStringRef();let g=0,v=0;o&&(g=e.readFloat(),v=e.readFloat());let b=this.attachmentLoader.newMeshAttachment(i,l,h,d);return b?(b.path=h,ut.rgba8888ToColor(b.color,u),b.sequence=d,o&&(b.width=g*a,b.height=v*a),this.linkedMeshes.push(new fN(b,m,s,p,f)),b):null}case Xs.Path:{const h=(c&16)!=0,u=(c&32)!=0,d=this.readVertices(e,(c&64)!=0),f=Oe.newArray(d.length/6,0);for(let g=0,v=f.length;g<v;g++)f[g]=e.readFloat()*a;const m=o?e.readInt32():0,p=this.attachmentLoader.newPathAttachment(i,l);return p?(p.closed=h,p.constantSpeed=u,p.worldVerticesLength=d.length,p.vertices=d.vertices,p.bones=d.bones,p.lengths=f,o&&ut.rgba8888ToColor(p.color,m),p):null}case Xs.Point:{const h=e.readFloat(),u=e.readFloat(),d=e.readFloat(),f=o?e.readInt32():0,m=this.attachmentLoader.newPointAttachment(i,l);return m?(m.x=u*a,m.y=d*a,m.rotation=h,o&&ut.rgba8888ToColor(m.color,f),m):null}case Xs.Clipping:{const h=e.readInt(!0),u=this.readVertices(e,(c&16)!=0);let d=o?e.readInt32():0,f=this.attachmentLoader.newClippingAttachment(i,l);return f?(f.endSlot=t.slots[h],f.worldVerticesLength=u.length,f.vertices=u.vertices,f.bones=u.bones,o&&ut.rgba8888ToColor(f.color,d),f):null}}return null}readSequence(e){let t=new S_(e.readInt(!0));return t.start=e.readInt(!0),t.digits=e.readInt(!0),t.setupIndex=e.readInt(!0),t}readVertices(e,t){const i=this.scale,s=e.readInt(!0),r=new mN;if(r.length=s<<1,!t)return r.vertices=this.readFloatArray(e,r.length,i),r;let o=new Array,a=new Array;for(let c=0;c<s;c++){let l=e.readInt(!0);a.push(l);for(let h=0;h<l;h++)a.push(e.readInt(!0)),o.push(e.readFloat()*i),o.push(e.readFloat()*i),o.push(e.readFloat())}return r.vertices=Oe.toFloatArray(o),r.bones=a,r}readFloatArray(e,t,i){let s=new Array(t);if(i==1)for(let r=0;r<t;r++)s[r]=e.readFloat();else for(let r=0;r<t;r++)s[r]=e.readFloat()*i;return s}readShortArray(e,t){let i=new Array(t);for(let s=0;s<t;s++)i[s]=e.readInt(!0);return i}readAnimation(e,t,i){e.readInt(!0);let s=new Array,r=this.scale;for(let l=0,h=e.readInt(!0);l<h;l++){let u=e.readInt(!0);for(let d=0,f=e.readInt(!0);d<f;d++){let m=e.readByte(),p=e.readInt(!0),g=p-1;switch(m){case CN:{let v=new Sa(p,u);for(let b=0;b<p;b++)v.setFrame(b,e.readFloat(),e.readStringRef());s.push(v);break}case MN:{let v=e.readInt(!0),b=new L_(p,v,u),y=e.readFloat(),x=e.readUnsignedByte()/255,_=e.readUnsignedByte()/255,E=e.readUnsignedByte()/255,S=e.readUnsignedByte()/255;for(let C=0,M=0;b.setFrame(C,y,x,_,E,S),C!=g;C++){let P=e.readFloat(),A=e.readUnsignedByte()/255,R=e.readUnsignedByte()/255,B=e.readUnsignedByte()/255,O=e.readUnsignedByte()/255;switch(e.readByte()){case ds:b.setStepped(C);break;case fs:gt(e,b,M++,C,0,y,P,x,A,1),gt(e,b,M++,C,1,y,P,_,R,1),gt(e,b,M++,C,2,y,P,E,B,1),gt(e,b,M++,C,3,y,P,S,O,1)}y=P,x=A,_=R,E=B,S=O}s.push(b);break}case AN:{let v=e.readInt(!0),b=new O_(p,v,u),y=e.readFloat(),x=e.readUnsignedByte()/255,_=e.readUnsignedByte()/255,E=e.readUnsignedByte()/255;for(let S=0,C=0;b.setFrame(S,y,x,_,E),S!=g;S++){let M=e.readFloat(),P=e.readUnsignedByte()/255,A=e.readUnsignedByte()/255,R=e.readUnsignedByte()/255;switch(e.readByte()){case ds:b.setStepped(S);break;case fs:gt(e,b,C++,S,0,y,M,x,P,1),gt(e,b,C++,S,1,y,M,_,A,1),gt(e,b,C++,S,2,y,M,E,R,1)}y=M,x=P,_=A,E=R}s.push(b);break}case IN:{let v=e.readInt(!0),b=new N_(p,v,u),y=e.readFloat(),x=e.readUnsignedByte()/255,_=e.readUnsignedByte()/255,E=e.readUnsignedByte()/255,S=e.readUnsignedByte()/255,C=e.readUnsignedByte()/255,M=e.readUnsignedByte()/255,P=e.readUnsignedByte()/255;for(let A=0,R=0;b.setFrame(A,y,x,_,E,S,C,M,P),A!=g;A++){let B=e.readFloat(),O=e.readUnsignedByte()/255,W=e.readUnsignedByte()/255,V=e.readUnsignedByte()/255,Y=e.readUnsignedByte()/255,L=e.readUnsignedByte()/255,N=e.readUnsignedByte()/255,F=e.readUnsignedByte()/255;switch(e.readByte()){case ds:b.setStepped(A);break;case fs:gt(e,b,R++,A,0,y,B,x,O,1),gt(e,b,R++,A,1,y,B,_,W,1),gt(e,b,R++,A,2,y,B,E,V,1),gt(e,b,R++,A,3,y,B,S,Y,1),gt(e,b,R++,A,4,y,B,C,L,1),gt(e,b,R++,A,5,y,B,M,N,1),gt(e,b,R++,A,6,y,B,P,F,1)}y=B,x=O,_=W,E=V,S=Y,C=L,M=N,P=F}s.push(b);break}case PN:{let v=e.readInt(!0),b=new D_(p,v,u),y=e.readFloat(),x=e.readUnsignedByte()/255,_=e.readUnsignedByte()/255,E=e.readUnsignedByte()/255,S=e.readUnsignedByte()/255,C=e.readUnsignedByte()/255,M=e.readUnsignedByte()/255;for(let P=0,A=0;b.setFrame(P,y,x,_,E,S,C,M),P!=g;P++){let R=e.readFloat(),B=e.readUnsignedByte()/255,O=e.readUnsignedByte()/255,W=e.readUnsignedByte()/255,V=e.readUnsignedByte()/255,Y=e.readUnsignedByte()/255,L=e.readUnsignedByte()/255;switch(e.readByte()){case ds:b.setStepped(P);break;case fs:gt(e,b,A++,P,0,y,R,x,B,1),gt(e,b,A++,P,1,y,R,_,O,1),gt(e,b,A++,P,2,y,R,E,W,1),gt(e,b,A++,P,3,y,R,S,V,1),gt(e,b,A++,P,4,y,R,C,Y,1),gt(e,b,A++,P,5,y,R,M,L,1)}y=R,x=B,_=O,E=W,S=V,C=Y,M=L}s.push(b);break}case RN:{let v=new $_(p,e.readInt(!0),u),b=e.readFloat(),y=e.readUnsignedByte()/255;for(let x=0,_=0;v.setFrame(x,b,y),x!=g;x++){let E=e.readFloat(),S=e.readUnsignedByte()/255;switch(e.readByte()){case ds:v.setStepped(x);break;case fs:gt(e,v,_++,x,0,b,E,y,S,1)}b=E,y=S}s.push(v)}}}}for(let l=0,h=e.readInt(!0);l<h;l++){let u=e.readInt(!0);for(let d=0,f=e.readInt(!0);d<f;d++){let m=e.readByte(),p=e.readInt(!0);if(m==EN){let v=new F_(p,u);for(let b=0;b<p;b++)v.setFrame(b,e.readFloat(),e.readByte());s.push(v);continue}let g=e.readInt(!0);switch(m){case pN:s.push(Bi(e,new pu(p,g,u),1));break;case gN:s.push(mm(e,new T_(p,g,u),r));break;case vN:s.push(Bi(e,new E_(p,g,u),r));break;case yN:s.push(Bi(e,new C_(p,g,u),r));break;case bN:s.push(mm(e,new M_(p,g,u),1));break;case xN:s.push(Bi(e,new A_(p,g,u),1));break;case wN:s.push(Bi(e,new I_(p,g,u),1));break;case SN:s.push(mm(e,new P_(p,g,u),1));break;case _N:s.push(Bi(e,new R_(p,g,u),1));break;case TN:s.push(Bi(e,new k_(p,g,u),1))}}}for(let l=0,h=e.readInt(!0);l<h;l++){let u=e.readInt(!0),d=e.readInt(!0),f=d-1,m=new U_(d,e.readInt(!0),u),p=e.readByte(),g=e.readFloat(),v=(p&1)!=0?(p&2)!=0?e.readFloat():1:0,b=(p&4)!=0?e.readFloat()*r:0;for(let y=0,x=0;m.setFrame(y,g,v,b,(p&8)!=0?1:-1,(p&16)!=0,(p&32)!=0),y!=f;y++){p=e.readByte();const _=e.readFloat(),E=(p&1)!=0?(p&2)!=0?e.readFloat():1:0,S=(p&4)!=0?e.readFloat()*r:0;(p&64)!=0?m.setStepped(y):(p&128)!=0&&(gt(e,m,x++,y,0,g,_,v,E,1),gt(e,m,x++,y,1,g,_,b,S,r)),g=_,v=E,b=S}s.push(m)}for(let l=0,h=e.readInt(!0);l<h;l++){let u=e.readInt(!0),d=e.readInt(!0),f=d-1,m=new V_(d,e.readInt(!0),u),p=e.readFloat(),g=e.readFloat(),v=e.readFloat(),b=e.readFloat(),y=e.readFloat(),x=e.readFloat(),_=e.readFloat();for(let E=0,S=0;m.setFrame(E,p,g,v,b,y,x,_),E!=f;E++){let C=e.readFloat(),M=e.readFloat(),P=e.readFloat(),A=e.readFloat(),R=e.readFloat(),B=e.readFloat(),O=e.readFloat();switch(e.readByte()){case ds:m.setStepped(E);break;case fs:gt(e,m,S++,E,0,p,C,g,M,1),gt(e,m,S++,E,1,p,C,v,P,1),gt(e,m,S++,E,2,p,C,b,A,1),gt(e,m,S++,E,3,p,C,y,R,1),gt(e,m,S++,E,4,p,C,x,B,1),gt(e,m,S++,E,5,p,C,_,O,1)}p=C,g=M,v=P,b=A,y=R,x=B,_=O}s.push(m)}for(let l=0,h=e.readInt(!0);l<h;l++){let u=e.readInt(!0),d=i.pathConstraints[u];for(let f=0,m=e.readInt(!0);f<m;f++){const p=e.readByte(),g=e.readInt(!0),v=e.readInt(!0);switch(p){case LN:s.push(Bi(e,new X_(g,v,u),d.positionMode==As.Fixed?r:1));break;case ON:s.push(Bi(e,new Y_(g,v,u),d.spacingMode==Ti.Length||d.spacingMode==Ti.Fixed?r:1));break;case $N:let b=new G_(g,v,u),y=e.readFloat(),x=e.readFloat(),_=e.readFloat(),E=e.readFloat();for(let S=0,C=0,M=b.getFrameCount()-1;b.setFrame(S,y,x,_,E),S!=M;S++){let P=e.readFloat(),A=e.readFloat(),R=e.readFloat(),B=e.readFloat();switch(e.readByte()){case ds:b.setStepped(S);break;case fs:gt(e,b,C++,S,0,y,P,x,A,1),gt(e,b,C++,S,1,y,P,_,R,1),gt(e,b,C++,S,2,y,P,E,B,1)}y=P,x=A,_=R,E=B}s.push(b)}}}for(let l=0,h=e.readInt(!0);l<h;l++){const u=e.readInt(!0)-1;for(let d=0,f=e.readInt(!0);d<f;d++){const m=e.readByte(),p=e.readInt(!0);if(m==GN){const v=new Z_(p,u);for(let b=0;b<p;b++)v.setFrame(b,e.readFloat());s.push(v);continue}const g=e.readInt(!0);switch(m){case NN:s.push(Bi(e,new H_(p,g,u),1));break;case DN:s.push(Bi(e,new j_(p,g,u),1));break;case BN:s.push(Bi(e,new W_(p,g,u),1));break;case UN:s.push(Bi(e,new z_(p,g,u),1));break;case VN:s.push(Bi(e,new q_(p,g,u),1));break;case XN:s.push(Bi(e,new K_(p,g,u),1));break;case YN:s.push(Bi(e,new J_(p,g,u),1))}}}for(let l=0,h=e.readInt(!0);l<h;l++){let u=i.skins[e.readInt(!0)];for(let d=0,f=e.readInt(!0);d<f;d++){let m=e.readInt(!0);for(let p=0,g=e.readInt(!0);p<g;p++){let v=e.readStringRef();if(!v)throw new Error("attachmentName must not be null.");let b=u.getAttachment(m,v),y=e.readByte(),x=e.readInt(!0),_=x-1;switch(y){case kN:{let E=b,S=E.bones,C=E.vertices,M=S?C.length/3*2:C.length,P=e.readInt(!0),A=new B_(x,P,m,E),R=e.readFloat();for(let B=0,O=0;;B++){let W,V=e.readInt(!0);if(V==0)W=S?Oe.newFloatArray(M):C;else{W=Oe.newFloatArray(M);let L=e.readInt(!0);if(V+=L,r==1)for(let N=L;N<V;N++)W[N]=e.readFloat();else for(let N=L;N<V;N++)W[N]=e.readFloat()*r;if(!S)for(let N=0,F=W.length;N<F;N++)W[N]+=C[N]}if(A.setFrame(B,R,W),B==_)break;let Y=e.readFloat();switch(e.readByte()){case ds:A.setStepped(B);break;case fs:gt(e,A,O++,B,0,R,Y,0,1,1)}R=Y}s.push(A);break}case FN:{let E=new Q_(x,m,b);for(let S=0;S<x;S++){let C=e.readFloat(),M=e.readInt32();E.setFrame(S,C,__[M&15],M>>4,e.readFloat())}s.push(E);break}}}}}let o=e.readInt(!0);if(o>0){let l=new Fl(o),h=i.slots.length;for(let u=0;u<o;u++){let d=e.readFloat(),f=e.readInt(!0),m=Oe.newArray(h,0);for(let b=h-1;b>=0;b--)m[b]=-1;let p=Oe.newArray(h-f,0),g=0,v=0;for(let b=0;b<f;b++){let y=e.readInt(!0);for(;g!=y;)p[v++]=g++;m[g+e.readInt(!0)]=g++}for(;g<h;)p[v++]=g++;for(let b=h-1;b>=0;b--)m[b]==-1&&(m[b]=p[--v]);l.setFrame(u,d,m)}s.push(l)}let a=e.readInt(!0);if(a>0){let l=new Wg(a);for(let h=0;h<a;h++){let u=e.readFloat(),d=i.events[e.readInt(!0)],f=new cT(u,d);f.intValue=e.readInt(!1),f.floatValue=e.readFloat(),f.stringValue=e.readString(),f.stringValue==null&&(f.stringValue=d.stringValue),f.data.audioPath&&(f.volume=e.readFloat(),f.balance=e.readFloat()),l.setFrame(h,f)}s.push(l)}let c=0;for(let l=0,h=s.length;l<h;l++)c=Math.max(c,s[l].getDuration());return new Hg(t,s,c)}},dN=class{constructor(e,t=new Array,i=0,s=new DataView(e instanceof ArrayBuffer?e:e.buffer)){T(this,"strings");T(this,"index");T(this,"buffer");this.strings=t,this.index=i,this.buffer=s}readByte(){return this.buffer.getInt8(this.index++)}readUnsignedByte(){return this.buffer.getUint8(this.index++)}readShort(){let e=this.buffer.getInt16(this.index);return this.index+=2,e}readInt32(){let e=this.buffer.getInt32(this.index);return this.index+=4,e}readInt(e){let t=this.readByte(),i=t&127;return(t&128)!=0&&(t=this.readByte(),i|=(t&127)<<7,(t&128)!=0&&(t=this.readByte(),i|=(t&127)<<14,(t&128)!=0&&(t=this.readByte(),i|=(t&127)<<21,(t&128)!=0&&(t=this.readByte(),i|=(t&127)<<28)))),e?i:i>>>1^-(i&1)}readStringRef(){let e=this.readInt(!0);return e==0?null:this.strings[e-1]}readString(){let e=this.readInt(!0);switch(e){case 0:return null;case 1:return""}e--;let t="";for(let i=0;i<e;){let s=this.readUnsignedByte();switch(s>>4){case 12:case 13:t+=String.fromCharCode((s&31)<<6|this.readByte()&63),i+=2;break;case 14:t+=String.fromCharCode((s&15)<<12|(this.readByte()&63)<<6|this.readByte()&63),i+=3;break;default:t+=String.fromCharCode(s),i++}}return t}readFloat(){let e=this.buffer.getFloat32(this.index);return this.index+=4,e}readBoolean(){return this.readByte()!=0}},fN=class{constructor(e,t,i,s,r){T(this,"parent");T(this,"skinIndex");T(this,"slotIndex");T(this,"mesh");T(this,"inheritTimeline");this.mesh=e,this.skinIndex=t,this.slotIndex=i,this.parent=s,this.inheritTimeline=r}},mN=class{constructor(e=null,t=null,i=0){T(this,"bones");T(this,"vertices");T(this,"length");this.bones=e,this.vertices=t,this.length=i}};var Xs;(function(n){n[n.Region=0]="Region",n[n.BoundingBox=1]="BoundingBox",n[n.Mesh=2]="Mesh",n[n.LinkedMesh=3]="LinkedMesh",n[n.Path=4]="Path",n[n.Point=5]="Point",n[n.Clipping=6]="Clipping"})(Xs||(Xs={}));function Bi(n,e,t){let i=n.readFloat(),s=n.readFloat()*t;for(let r=0,o=0,a=e.getFrameCount()-1;e.setFrame(r,i,s),r!=a;r++){let c=n.readFloat(),l=n.readFloat()*t;switch(n.readByte()){case ds:e.setStepped(r);break;case fs:gt(n,e,o++,r,0,i,c,s,l,t)}i=c,s=l}return e}function mm(n,e,t){let i=n.readFloat(),s=n.readFloat()*t,r=n.readFloat()*t;for(let o=0,a=0,c=e.getFrameCount()-1;e.setFrame(o,i,s,r),o!=c;o++){let l=n.readFloat(),h=n.readFloat()*t,u=n.readFloat()*t;switch(n.readByte()){case ds:e.setStepped(o);break;case fs:gt(n,e,a++,o,0,i,l,s,h,t),gt(n,e,a++,o,1,i,l,r,u,t)}i=l,s=h,r=u}return e}function gt(n,e,t,i,s,r,o,a,c,l){e.setBezier(t,i,s,r,a,n.readFloat(),n.readFloat()*l,n.readFloat(),n.readFloat()*l,o,c)}const pN=0,gN=1,vN=2,yN=3,bN=4,xN=5,wN=6,SN=7,_N=8,TN=9,EN=10,CN=0,MN=1,AN=2,IN=3,PN=4,RN=5,kN=0,FN=1,LN=0,ON=1,$N=2,NN=0,DN=1,BN=2,UN=4,VN=5,XN=6,YN=7,GN=8,ds=1,fs=2;class ln{constructor(){T(this,"convexPolygons",new Array);T(this,"convexPolygonsIndices",new Array);T(this,"indicesArray",new Array);T(this,"isConcaveArray",new Array);T(this,"triangles",new Array);T(this,"polygonPool",new fu(()=>new Array));T(this,"polygonIndicesPool",new fu(()=>new Array))}triangulate(e){let t=e,i=e.length>>1,s=this.indicesArray;s.length=0;for(let a=0;a<i;a++)s[a]=a;let r=this.isConcaveArray;r.length=0;for(let a=0,c=i;a<c;++a)r[a]=ln.isConcave(a,i,t,s);let o=this.triangles;for(o.length=0;i>3;){let a=i-1,c=0,l=1;for(;;){e:if(!r[c]){let d=s[a]<<1,f=s[c]<<1,m=s[l]<<1,p=t[d],g=t[d+1],v=t[f],b=t[f+1],y=t[m],x=t[m+1];for(let _=(l+1)%i;_!=a;_=(_+1)%i){if(!r[_])continue;let E=s[_]<<1,S=t[E],C=t[E+1];if(ln.positiveArea(y,x,p,g,S,C)&&ln.positiveArea(p,g,v,b,S,C)&&ln.positiveArea(v,b,y,x,S,C))break e}break}if(l==0){do{if(!r[c])break;c--}while(c>0);break}a=c,c=l,l=(l+1)%i}o.push(s[(i+c-1)%i]),o.push(s[c]),o.push(s[(c+1)%i]),s.splice(c,1),r.splice(c,1),i--;let h=(i+c-1)%i,u=c==i?0:c;r[h]=ln.isConcave(h,i,t,s),r[u]=ln.isConcave(u,i,t,s)}return i==3&&(o.push(s[2]),o.push(s[0]),o.push(s[1])),o}decompose(e,t){let i=e,s=this.convexPolygons;this.polygonPool.freeAll(s),s.length=0;let r=this.convexPolygonsIndices;this.polygonIndicesPool.freeAll(r),r.length=0;let o=this.polygonIndicesPool.obtain();o.length=0;let a=this.polygonPool.obtain();a.length=0;let c=-1,l=0;for(let h=0,u=t.length;h<u;h+=3){let d=t[h]<<1,f=t[h+1]<<1,m=t[h+2]<<1,p=i[d],g=i[d+1],v=i[f],b=i[f+1],y=i[m],x=i[m+1],_=!1;if(c==d){let E=a.length-4,S=ln.winding(a[E],a[E+1],a[E+2],a[E+3],y,x),C=ln.winding(y,x,a[0],a[1],a[2],a[3]);S==l&&C==l&&(a.push(y),a.push(x),o.push(m),_=!0)}_||(a.length>0?(s.push(a),r.push(o)):(this.polygonPool.free(a),this.polygonIndicesPool.free(o)),a=this.polygonPool.obtain(),a.length=0,a.push(p),a.push(g),a.push(v),a.push(b),a.push(y),a.push(x),o=this.polygonIndicesPool.obtain(),o.length=0,o.push(d),o.push(f),o.push(m),l=ln.winding(p,g,v,b,y,x),c=d)}a.length>0&&(s.push(a),r.push(o));for(let h=0,u=s.length;h<u;h++){if(o=r[h],o.length==0)continue;let d=o[0],f=o[o.length-1];a=s[h];let m=a.length-4,p=a[m],g=a[m+1],v=a[m+2],b=a[m+3],y=a[0],x=a[1],_=a[2],E=a[3],S=ln.winding(p,g,v,b,y,x);for(let C=0;C<u;C++){if(C==h)continue;let M=r[C];if(M.length!=3)continue;let P=M[0],A=M[1],R=M[2],B=s[C],O=B[B.length-2],W=B[B.length-1];if(P!=d||A!=f)continue;let V=ln.winding(p,g,v,b,O,W),Y=ln.winding(O,W,y,x,_,E);V==S&&Y==S&&(B.length=0,M.length=0,a.push(O),a.push(W),o.push(R),p=v,g=b,v=O,b=W,C=0)}}for(let h=s.length-1;h>=0;h--)a=s[h],a.length==0&&(s.splice(h,1),this.polygonPool.free(a),o=r[h],r.splice(h,1),this.polygonIndicesPool.free(o));return s}static isConcave(e,t,i,s){let r=s[(t+e-1)%t]<<1,o=s[e]<<1,a=s[(e+1)%t]<<1;return!this.positiveArea(i[r],i[r+1],i[o],i[o+1],i[a],i[a+1])}static positiveArea(e,t,i,s,r,o){return e*(o-s)+i*(t-o)+r*(s-t)>=0}static winding(e,t,i,s,r,o){let a=i-e,c=s-t;return r*c-o*a+a*t-e*c>=0?1:-1}}class vu{constructor(){T(this,"triangulator",new ln);T(this,"clippingPolygon",new Array);T(this,"clipOutput",new Array);T(this,"clippedVertices",new Array);T(this,"clippedUVs",new Array);T(this,"clippedTriangles",new Array);T(this,"scratch",new Array);T(this,"clipAttachment",null);T(this,"clippingPolygons",null)}clipStart(e,t){if(this.clipAttachment)return 0;this.clipAttachment=t;let i=t.worldVerticesLength,s=Oe.setArraySize(this.clippingPolygon,i);t.computeWorldVertices(e,0,i,s,0,2);let r=this.clippingPolygon;vu.makeClockwise(r);let o=this.clippingPolygons=this.triangulator.decompose(r,this.triangulator.triangulate(r));for(let a=0,c=o.length;a<c;a++){let l=o[a];vu.makeClockwise(l),l.push(l[0]),l.push(l[1])}return o.length}clipEndWithSlot(e){this.clipAttachment&&this.clipAttachment.endSlot==e.data&&this.clipEnd()}clipEnd(){this.clipAttachment&&(this.clipAttachment=null,this.clippingPolygons=null,this.clippedVertices.length=0,this.clippedTriangles.length=0,this.clippingPolygon.length=0)}isClipping(){return this.clipAttachment!=null}clipTriangles(e,t,i,s,r,o,a,c){let l,h,u,d,f,m;typeof t=="number"?(l=i,h=s,u=r,d=o,f=a,m=c):(l=t,h=i,u=s,d=r,f=o,m=a),u&&d&&f&&typeof m=="boolean"?this.clipTrianglesRender(e,l,h,u,d,f,m):this.clipTrianglesNoRender(e,l,h)}clipTrianglesNoRender(e,t,i){let s=this.clipOutput,r=this.clippedVertices,o=this.clippedTriangles,a=this.clippingPolygons,c=a.length,l=0;r.length=0,o.length=0;for(let h=0;h<i;h+=3){let u=t[h]<<1,d=e[u],f=e[u+1];u=t[h+1]<<1;let m=e[u],p=e[u+1];u=t[h+2]<<1;let g=e[u],v=e[u+1];for(let b=0;b<c;b++){let y=r.length;if(this.clip(d,f,m,p,g,v,a[b],s)){let x=s.length;if(x==0)continue;let _=x>>1,E=this.clipOutput,S=Oe.setArraySize(r,y+_*2);for(let M=0;M<x;M+=2,y+=2){let P=E[M],A=E[M+1];S[y]=P,S[y+1]=A}y=o.length;let C=Oe.setArraySize(o,y+3*(_-2));_--;for(let M=1;M<_;M++,y+=3)C[y]=l,C[y+1]=l+M,C[y+2]=l+M+1;l+=_+1}else{let x=Oe.setArraySize(r,y+6);x[y]=d,x[y+1]=f,x[y+2]=m,x[y+3]=p,x[y+4]=g,x[y+5]=v,y=o.length;let _=Oe.setArraySize(o,y+3);_[y]=l,_[y+1]=l+1,_[y+2]=l+2,l+=3;break}}}}clipTrianglesRender(e,t,i,s,r,o,a){let c=this.clipOutput,l=this.clippedVertices,h=this.clippedTriangles,u=this.clippingPolygons,d=u.length,f=a?12:8,m=0;l.length=0,h.length=0;for(let p=0;p<i;p+=3){let g=t[p]<<1,v=e[g],b=e[g+1],y=s[g],x=s[g+1];g=t[p+1]<<1;let _=e[g],E=e[g+1],S=s[g],C=s[g+1];g=t[p+2]<<1;let M=e[g],P=e[g+1],A=s[g],R=s[g+1];for(let B=0;B<d;B++){let O=l.length;if(this.clip(v,b,_,E,M,P,u[B],c)){let W=c.length;if(W==0)continue;let V=E-P,Y=M-_,L=v-M,N=P-b,F=1/(V*L+Y*(b-P)),D=W>>1,X=this.clipOutput,G=Oe.setArraySize(l,O+D*f);for(let J=0;J<W;J+=2,O+=f){let oe=X[J],le=X[J+1];G[O]=oe,G[O+1]=le,G[O+2]=r.r,G[O+3]=r.g,G[O+4]=r.b,G[O+5]=r.a;let ve=oe-M,Se=le-P,fe=(V*ve+Y*Se)*F,ye=(N*ve+L*Se)*F,q=1-fe-ye;G[O+6]=y*fe+S*ye+A*q,G[O+7]=x*fe+C*ye+R*q,a&&(G[O+8]=o.r,G[O+9]=o.g,G[O+10]=o.b,G[O+11]=o.a)}O=h.length;let K=Oe.setArraySize(h,O+3*(D-2));D--;for(let J=1;J<D;J++,O+=3)K[O]=m,K[O+1]=m+J,K[O+2]=m+J+1;m+=D+1}else{let W=Oe.setArraySize(l,O+3*f);W[O]=v,W[O+1]=b,W[O+2]=r.r,W[O+3]=r.g,W[O+4]=r.b,W[O+5]=r.a,a?(W[O+6]=y,W[O+7]=x,W[O+8]=o.r,W[O+9]=o.g,W[O+10]=o.b,W[O+11]=o.a,W[O+12]=_,W[O+13]=E,W[O+14]=r.r,W[O+15]=r.g,W[O+16]=r.b,W[O+17]=r.a,W[O+18]=S,W[O+19]=C,W[O+20]=o.r,W[O+21]=o.g,W[O+22]=o.b,W[O+23]=o.a,W[O+24]=M,W[O+25]=P,W[O+26]=r.r,W[O+27]=r.g,W[O+28]=r.b,W[O+29]=r.a,W[O+30]=A,W[O+31]=R,W[O+32]=o.r,W[O+33]=o.g,W[O+34]=o.b,W[O+35]=o.a):(W[O+6]=y,W[O+7]=x,W[O+8]=_,W[O+9]=E,W[O+10]=r.r,W[O+11]=r.g,W[O+12]=r.b,W[O+13]=r.a,W[O+14]=S,W[O+15]=C,W[O+16]=M,W[O+17]=P,W[O+18]=r.r,W[O+19]=r.g,W[O+20]=r.b,W[O+21]=r.a,W[O+22]=A,W[O+23]=R),O=h.length;let V=Oe.setArraySize(h,O+3);V[O]=m,V[O+1]=m+1,V[O+2]=m+2,m+=3;break}}}}clipTrianglesUnpacked(e,t,i,s){let r=this.clipOutput,o=this.clippedVertices,a=this.clippedUVs,c=this.clippedTriangles,l=this.clippingPolygons,h=l.length,u=0;o.length=0,a.length=0,c.length=0;for(let d=0;d<i;d+=3){let f=t[d]<<1,m=e[f],p=e[f+1],g=s[f],v=s[f+1];f=t[d+1]<<1;let b=e[f],y=e[f+1],x=s[f],_=s[f+1];f=t[d+2]<<1;let E=e[f],S=e[f+1],C=s[f],M=s[f+1];for(let P=0;P<h;P++){let A=o.length;if(this.clip(m,p,b,y,E,S,l[P],r)){let R=r.length;if(R==0)continue;let B=y-S,O=E-b,W=m-E,V=S-p,Y=1/(B*W+O*(p-S)),L=R>>1,N=this.clipOutput,F=Oe.setArraySize(o,A+L*2),D=Oe.setArraySize(a,A+L*2);for(let G=0;G<R;G+=2,A+=2){let K=N[G],J=N[G+1];F[A]=K,F[A+1]=J;let oe=K-E,le=J-S,ve=(B*oe+O*le)*Y,Se=(V*oe+W*le)*Y,fe=1-ve-Se;D[A]=g*ve+x*Se+C*fe,D[A+1]=v*ve+_*Se+M*fe}A=c.length;let X=Oe.setArraySize(c,A+3*(L-2));L--;for(let G=1;G<L;G++,A+=3)X[A]=u,X[A+1]=u+G,X[A+2]=u+G+1;u+=L+1}else{let R=Oe.setArraySize(o,A+6);R[A]=m,R[A+1]=p,R[A+2]=b,R[A+3]=y,R[A+4]=E,R[A+5]=S;let B=Oe.setArraySize(a,A+6);B[A]=g,B[A+1]=v,B[A+2]=x,B[A+3]=_,B[A+4]=C,B[A+5]=M,A=c.length;let O=Oe.setArraySize(c,A+3);O[A]=u,O[A+1]=u+1,O[A+2]=u+2,u+=3;break}}}}clip(e,t,i,s,r,o,a,c){let l=c,h=!1,u;a.length%4>=2?(u=c,c=this.scratch):u=this.scratch,u.length=0,u.push(e),u.push(t),u.push(i),u.push(s),u.push(r),u.push(o),u.push(e),u.push(t),c.length=0;let d=a.length-4,f=a;for(let m=0;;m+=2){let p=f[m],g=f[m+1],v=p-f[m+2],b=g-f[m+3],y=c.length,x=u;for(let E=0,S=u.length-2;E<S;){let C=x[E],M=x[E+1];E+=2;let P=x[E],A=x[E+1],R=b*(p-P)>v*(g-A),B=b*(p-C)-v*(g-M);if(B>0){if(R){c.push(P),c.push(A);continue}let O=P-C,W=A-M,V=B/(O*b-W*v);if(V>=0&&V<=1)c.push(C+O*V),c.push(M+W*V);else{c.push(P),c.push(A);continue}}else if(R){let O=P-C,W=A-M,V=B/(O*b-W*v);if(V>=0&&V<=1)c.push(C+O*V),c.push(M+W*V),c.push(P),c.push(A);else{c.push(P),c.push(A);continue}}h=!0}if(y==c.length)return l.length=0,!0;if(c.push(c[0]),c.push(c[1]),m==d)break;let _=c;c=u,c.length=0,u=_}if(l!=c){l.length=0;for(let m=0,p=c.length-2;m<p;m++)l[m]=c[m]}else l.length=l.length-2;return h}static makeClockwise(e){let t=e,i=e.length,s=t[i-2]*t[1]-t[0]*t[i-1],r=0,o=0,a=0,c=0;for(let l=0,h=i-3;l<h;l+=2)r=t[l],o=t[l+1],a=t[l+2],c=t[l+3],s+=r*c-a*o;if(!(s<0))for(let l=0,h=i-2,u=i>>1;l<u;l+=2){let d=t[l],f=t[l+1],m=h-l;t[l]=t[m],t[l+1]=t[m+1],t[m]=d,t[m+1]=f}}}let yu=class{constructor(e){T(this,"attachmentLoader");T(this,"scale",1);T(this,"linkedMeshes",new Array);this.attachmentLoader=e}readSkeletonData(e){let t=this.scale,i=new gu,s=typeof e=="string"?JSON.parse(e):e,r=s.skeleton;if(r&&(i.hash=r.hash,i.version=r.spine,i.x=r.x,i.y=r.y,i.width=r.width,i.height=r.height,i.referenceScale=ae(r,"referenceScale",100)*t,i.fps=r.fps,i.imagesPath=r.images??null,i.audioPath=r.audio??null),s.bones)for(let o=0;o<s.bones.length;o++){let a=s.bones[o],c=null,l=ae(a,"parent",null);l&&(c=i.findBone(l));let h=new lT(i.bones.length,a.name,c);h.length=ae(a,"length",0)*t,h.x=ae(a,"x",0)*t,h.y=ae(a,"y",0)*t,h.rotation=ae(a,"rotation",0),h.scaleX=ae(a,"scaleX",1),h.scaleY=ae(a,"scaleY",1),h.shearX=ae(a,"shearX",0),h.shearY=ae(a,"shearY",0),h.inherit=Oe.enumValue(oi,ae(a,"inherit","Normal")),h.skinRequired=ae(a,"skin",!1);let u=ae(a,"color",null);u&&h.color.setFromString(u),i.bones.push(h)}if(s.slots)for(let o=0;o<s.slots.length;o++){let a=s.slots[o],c=a.name,l=i.findBone(a.bone);if(!l)throw new Error(`Couldn't find bone ${a.bone} for slot ${c}`);let h=new mT(i.slots.length,c,l),u=ae(a,"color",null);u&&h.color.setFromString(u);let d=ae(a,"dark",null);d&&(h.darkColor=ut.fromString(d)),h.attachmentName=ae(a,"attachment",null),h.blendMode=Oe.enumValue(Hr,ae(a,"blend","normal")),h.visible=ae(a,"visible",!0),i.slots.push(h)}if(s.ik)for(let o=0;o<s.ik.length;o++){let a=s.ik[o],c=new uT(a.name);c.order=ae(a,"order",0),c.skinRequired=ae(a,"skin",!1);for(let h=0;h<a.bones.length;h++){let u=i.findBone(a.bones[h]);if(!u)throw new Error(`Couldn't find bone ${a.bones[h]} for IK constraint ${a.name}.`);c.bones.push(u)}let l=i.findBone(a.target);if(!l)throw new Error(`Couldn't find target bone ${a.target} for IK constraint ${a.name}.`);c.target=l,c.mix=ae(a,"mix",1),c.softness=ae(a,"softness",0)*t,c.bendDirection=ae(a,"bendPositive",!0)?1:-1,c.compress=ae(a,"compress",!1),c.stretch=ae(a,"stretch",!1),c.uniform=ae(a,"uniform",!1),i.ikConstraints.push(c)}if(s.transform)for(let o=0;o<s.transform.length;o++){let a=s.transform[o],c=new pT(a.name);c.order=ae(a,"order",0),c.skinRequired=ae(a,"skin",!1);for(let u=0;u<a.bones.length;u++){let d=a.bones[u],f=i.findBone(d);if(!f)throw new Error(`Couldn't find bone ${d} for transform constraint ${a.name}.`);c.bones.push(f)}let l=a.target,h=i.findBone(l);if(!h)throw new Error(`Couldn't find target bone ${l} for transform constraint ${a.name}.`);c.target=h,c.local=ae(a,"local",!1),c.relative=ae(a,"relative",!1),c.offsetRotation=ae(a,"rotation",0),c.offsetX=ae(a,"x",0)*t,c.offsetY=ae(a,"y",0)*t,c.offsetScaleX=ae(a,"scaleX",0),c.offsetScaleY=ae(a,"scaleY",0),c.offsetShearY=ae(a,"shearY",0),c.mixRotate=ae(a,"mixRotate",1),c.mixX=ae(a,"mixX",1),c.mixY=ae(a,"mixY",c.mixX),c.mixScaleX=ae(a,"mixScaleX",1),c.mixScaleY=ae(a,"mixScaleY",c.mixScaleX),c.mixShearY=ae(a,"mixShearY",1),i.transformConstraints.push(c)}if(s.path)for(let o=0;o<s.path.length;o++){let a=s.path[o],c=new dT(a.name);c.order=ae(a,"order",0),c.skinRequired=ae(a,"skin",!1);for(let u=0;u<a.bones.length;u++){let d=a.bones[u],f=i.findBone(d);if(!f)throw new Error(`Couldn't find bone ${d} for path constraint ${a.name}.`);c.bones.push(f)}let l=a.target,h=i.findSlot(l);if(!h)throw new Error(`Couldn't find target slot ${l} for path constraint ${a.name}.`);c.target=h,c.positionMode=Oe.enumValue(As,ae(a,"positionMode","Percent")),c.spacingMode=Oe.enumValue(Ti,ae(a,"spacingMode","Length")),c.rotateMode=Oe.enumValue(No,ae(a,"rotateMode","Tangent")),c.offsetRotation=ae(a,"rotation",0),c.position=ae(a,"position",0),c.positionMode==As.Fixed&&(c.position*=t),c.spacing=ae(a,"spacing",0),(c.spacingMode==Ti.Length||c.spacingMode==Ti.Fixed)&&(c.spacing*=t),c.mixRotate=ae(a,"mixRotate",1),c.mixX=ae(a,"mixX",1),c.mixY=ae(a,"mixY",c.mixX),i.pathConstraints.push(c)}if(s.physics)for(let o=0;o<s.physics.length;o++){const a=s.physics[o],c=new fT(a.name);c.order=ae(a,"order",0),c.skinRequired=ae(a,"skin",!1);const l=a.bone,h=i.findBone(l);if(h==null)throw new Error("Physics bone not found: "+l);c.bone=h,c.x=ae(a,"x",0),c.y=ae(a,"y",0),c.rotate=ae(a,"rotate",0),c.scaleX=ae(a,"scaleX",0),c.shearX=ae(a,"shearX",0),c.limit=ae(a,"limit",5e3)*t,c.step=1/ae(a,"fps",60),c.inertia=ae(a,"inertia",1),c.strength=ae(a,"strength",100),c.damping=ae(a,"damping",1),c.massInverse=1/ae(a,"mass",1),c.wind=ae(a,"wind",0),c.gravity=ae(a,"gravity",0),c.mix=ae(a,"mix",1),c.inertiaGlobal=ae(a,"inertiaGlobal",!1),c.strengthGlobal=ae(a,"strengthGlobal",!1),c.dampingGlobal=ae(a,"dampingGlobal",!1),c.massGlobal=ae(a,"massGlobal",!1),c.windGlobal=ae(a,"windGlobal",!1),c.gravityGlobal=ae(a,"gravityGlobal",!1),c.mixGlobal=ae(a,"mixGlobal",!1),i.physicsConstraints.push(c)}if(s.skins)for(let o=0;o<s.skins.length;o++){let a=s.skins[o],c=new kp(a.name);if(a.bones)for(let l=0;l<a.bones.length;l++){let h=a.bones[l],u=i.findBone(h);if(!u)throw new Error(`Couldn't find bone ${h} for skin ${a.name}.`);c.bones.push(u)}if(a.ik)for(let l=0;l<a.ik.length;l++){let h=a.ik[l],u=i.findIkConstraint(h);if(!u)throw new Error(`Couldn't find IK constraint ${h} for skin ${a.name}.`);c.constraints.push(u)}if(a.transform)for(let l=0;l<a.transform.length;l++){let h=a.transform[l],u=i.findTransformConstraint(h);if(!u)throw new Error(`Couldn't find transform constraint ${h} for skin ${a.name}.`);c.constraints.push(u)}if(a.path)for(let l=0;l<a.path.length;l++){let h=a.path[l],u=i.findPathConstraint(h);if(!u)throw new Error(`Couldn't find path constraint ${h} for skin ${a.name}.`);c.constraints.push(u)}if(a.physics)for(let l=0;l<a.physics.length;l++){let h=a.physics[l],u=i.findPhysicsConstraint(h);if(!u)throw new Error(`Couldn't find physics constraint ${h} for skin ${a.name}.`);c.constraints.push(u)}for(let l in a.attachments){let h=i.findSlot(l);if(!h)throw new Error(`Couldn't find slot ${l} for skin ${a.name}.`);let u=a.attachments[l];for(let d in u){let f=this.readAttachment(u[d],c,h.index,d,i);f&&c.setAttachment(h.index,d,f)}}i.skins.push(c),c.name=="default"&&(i.defaultSkin=c)}for(let o=0,a=this.linkedMeshes.length;o<a;o++){let c=this.linkedMeshes[o],l=c.skin?i.findSkin(c.skin):i.defaultSkin;if(!l)throw new Error(`Skin not found: ${c.skin}`);let h=l.getAttachment(c.slotIndex,c.parent);if(!h)throw new Error(`Parent mesh not found: ${c.parent}`);c.mesh.timelineAttachment=c.inheritTimeline?h:c.mesh,c.mesh.setParentMesh(h),c.mesh.region!=null&&c.mesh.updateRegion()}if(this.linkedMeshes.length=0,s.events)for(let o in s.events){let a=s.events[o],c=new hT(o);c.intValue=ae(a,"int",0),c.floatValue=ae(a,"float",0),c.stringValue=ae(a,"string",""),c.audioPath=ae(a,"audio",null),c.audioPath&&(c.volume=ae(a,"volume",1),c.balance=ae(a,"balance",0)),i.events.push(c)}if(s.animations)for(let o in s.animations){let a=s.animations[o];this.readAnimation(a,o,i)}return i}readAttachment(e,t,i,s,r){let o=this.scale;switch(s=ae(e,"name",s),ae(e,"type","region")){case"region":{let a=ae(e,"path",s),c=this.readSequence(ae(e,"sequence",null)),l=this.attachmentLoader.newRegionAttachment(t,s,a,c);if(!l)return null;l.path=a,l.x=ae(e,"x",0)*o,l.y=ae(e,"y",0)*o,l.scaleX=ae(e,"scaleX",1),l.scaleY=ae(e,"scaleY",1),l.rotation=ae(e,"rotation",0),l.width=e.width*o,l.height=e.height*o,l.sequence=c;let h=ae(e,"color",null);return h&&l.color.setFromString(h),l.region!=null&&l.updateRegion(),l}case"boundingbox":{let a=this.attachmentLoader.newBoundingBoxAttachment(t,s);if(!a)return null;this.readVertices(e,a,e.vertexCount<<1);let c=ae(e,"color",null);return c&&a.color.setFromString(c),a}case"mesh":case"linkedmesh":{let a=ae(e,"path",s),c=this.readSequence(ae(e,"sequence",null)),l=this.attachmentLoader.newMeshAttachment(t,s,a,c);if(!l)return null;l.path=a;let h=ae(e,"color",null);h&&l.color.setFromString(h),l.width=ae(e,"width",0)*o,l.height=ae(e,"height",0)*o,l.sequence=c;let u=ae(e,"parent",null);if(u)return this.linkedMeshes.push(new HN(l,ae(e,"skin",null),i,u,ae(e,"timelines",!0))),l;let d=e.uvs;return this.readVertices(e,l,d.length),l.triangles=e.triangles,l.regionUVs=d,l.region!=null&&l.updateRegion(),l.edges=ae(e,"edges",null),l.hullLength=ae(e,"hull",0)*2,l}case"path":{let a=this.attachmentLoader.newPathAttachment(t,s);if(!a)return null;a.closed=ae(e,"closed",!1),a.constantSpeed=ae(e,"constantSpeed",!0);let c=e.vertexCount;this.readVertices(e,a,c<<1);let l=Oe.newArray(c/3,0);for(let u=0;u<e.lengths.length;u++)l[u]=e.lengths[u]*o;a.lengths=l;let h=ae(e,"color",null);return h&&a.color.setFromString(h),a}case"point":{let a=this.attachmentLoader.newPointAttachment(t,s);if(!a)return null;a.x=ae(e,"x",0)*o,a.y=ae(e,"y",0)*o,a.rotation=ae(e,"rotation",0);let c=ae(e,"color",null);return c&&a.color.setFromString(c),a}case"clipping":{let a=this.attachmentLoader.newClippingAttachment(t,s);if(!a)return null;let c=ae(e,"end",null);c&&(a.endSlot=r.findSlot(c));let l=e.vertexCount;this.readVertices(e,a,l<<1);let h=ae(e,"color",null);return h&&a.color.setFromString(h),a}}return null}readSequence(e){if(e==null)return null;let t=new S_(ae(e,"count",0));return t.start=ae(e,"start",1),t.digits=ae(e,"digits",0),t.setupIndex=ae(e,"setup",0),t}readVertices(e,t,i){let s=this.scale;t.worldVerticesLength=i;let r=e.vertices;if(i==r.length){let c=Oe.toFloatArray(r);if(s!=1)for(let l=0,h=r.length;l<h;l++)c[l]*=s;t.vertices=c;return}let o=new Array,a=new Array;for(let c=0,l=r.length;c<l;){let h=r[c++];a.push(h);for(let u=c+h*4;c<u;c+=4)a.push(r[c]),o.push(r[c+1]*s),o.push(r[c+2]*s),o.push(r[c+3])}t.bones=a,t.vertices=Oe.toFloatArray(o)}readAnimation(e,t,i){let s=this.scale,r=new Array;if(e.slots)for(let a in e.slots){let c=e.slots[a],l=i.findSlot(a);if(!l)throw new Error("Slot not found: "+a);let h=l.index;for(let u in c){let d=c[u];if(!d)continue;let f=d.length;if(u=="attachment"){let m=new Sa(f,h);for(let p=0;p<f;p++){let g=d[p];m.setFrame(p,ae(g,"time",0),ae(g,"name",null))}r.push(m)}else if(u=="rgba"){let m=new L_(f,f<<2,h),p=d[0],g=ae(p,"time",0),v=ut.fromString(p.color);for(let b=0,y=0;;b++){m.setFrame(b,g,v.r,v.g,v.b,v.a);let x=d[b+1];if(!x){m.shrink(y);break}let _=ae(x,"time",0),E=ut.fromString(x.color),S=p.curve;S&&(y=xt(S,m,y,b,0,g,_,v.r,E.r,1),y=xt(S,m,y,b,1,g,_,v.g,E.g,1),y=xt(S,m,y,b,2,g,_,v.b,E.b,1),y=xt(S,m,y,b,3,g,_,v.a,E.a,1)),g=_,v=E,p=x}r.push(m)}else if(u=="rgb"){let m=new O_(f,f*3,h),p=d[0],g=ae(p,"time",0),v=ut.fromString(p.color);for(let b=0,y=0;;b++){m.setFrame(b,g,v.r,v.g,v.b);let x=d[b+1];if(!x){m.shrink(y);break}let _=ae(x,"time",0),E=ut.fromString(x.color),S=p.curve;S&&(y=xt(S,m,y,b,0,g,_,v.r,E.r,1),y=xt(S,m,y,b,1,g,_,v.g,E.g,1),y=xt(S,m,y,b,2,g,_,v.b,E.b,1)),g=_,v=E,p=x}r.push(m)}else if(u=="alpha")r.push(Vn(d,new $_(f,f,h),0,1));else if(u=="rgba2"){let m=new N_(f,f*7,h),p=d[0],g=ae(p,"time",0),v=ut.fromString(p.light),b=ut.fromString(p.dark);for(let y=0,x=0;;y++){m.setFrame(y,g,v.r,v.g,v.b,v.a,b.r,b.g,b.b);let _=d[y+1];if(!_){m.shrink(x);break}let E=ae(_,"time",0),S=ut.fromString(_.light),C=ut.fromString(_.dark),M=p.curve;M&&(x=xt(M,m,x,y,0,g,E,v.r,S.r,1),x=xt(M,m,x,y,1,g,E,v.g,S.g,1),x=xt(M,m,x,y,2,g,E,v.b,S.b,1),x=xt(M,m,x,y,3,g,E,v.a,S.a,1),x=xt(M,m,x,y,4,g,E,b.r,C.r,1),x=xt(M,m,x,y,5,g,E,b.g,C.g,1),x=xt(M,m,x,y,6,g,E,b.b,C.b,1)),g=E,v=S,b=C,p=_}r.push(m)}else if(u=="rgb2"){let m=new D_(f,f*6,h),p=d[0],g=ae(p,"time",0),v=ut.fromString(p.light),b=ut.fromString(p.dark);for(let y=0,x=0;;y++){m.setFrame(y,g,v.r,v.g,v.b,b.r,b.g,b.b);let _=d[y+1];if(!_){m.shrink(x);break}let E=ae(_,"time",0),S=ut.fromString(_.light),C=ut.fromString(_.dark),M=p.curve;M&&(x=xt(M,m,x,y,0,g,E,v.r,S.r,1),x=xt(M,m,x,y,1,g,E,v.g,S.g,1),x=xt(M,m,x,y,2,g,E,v.b,S.b,1),x=xt(M,m,x,y,3,g,E,b.r,C.r,1),x=xt(M,m,x,y,4,g,E,b.g,C.g,1),x=xt(M,m,x,y,5,g,E,b.b,C.b,1)),g=E,v=S,b=C,p=_}r.push(m)}}}if(e.bones)for(let a in e.bones){let c=e.bones[a],l=i.findBone(a);if(!l)throw new Error("Bone not found: "+a);let h=l.index;for(let u in c){let d=c[u],f=d.length;if(f!=0){if(u==="rotate")r.push(Vn(d,new pu(f,f,h),0,1));else if(u==="translate"){let m=new T_(f,f<<1,h);r.push(pm(d,m,"x","y",0,s))}else if(u==="translatex"){let m=new E_(f,f,h);r.push(Vn(d,m,0,s))}else if(u==="translatey"){let m=new C_(f,f,h);r.push(Vn(d,m,0,s))}else if(u==="scale"){let m=new M_(f,f<<1,h);r.push(pm(d,m,"x","y",1,1))}else if(u==="scalex"){let m=new A_(f,f,h);r.push(Vn(d,m,1,1))}else if(u==="scaley"){let m=new I_(f,f,h);r.push(Vn(d,m,1,1))}else if(u==="shear"){let m=new P_(f,f<<1,h);r.push(pm(d,m,"x","y",0,1))}else if(u==="shearx"){let m=new R_(f,f,h);r.push(Vn(d,m,0,1))}else if(u==="sheary"){let m=new k_(f,f,h);r.push(Vn(d,m,0,1))}else if(u==="inherit"){let m=new F_(f,l.index);for(let p=0;p<d.length;p++){let g=d[p];m.setFrame(p,ae(g,"time",0),Oe.enumValue(oi,ae(g,"inherit","Normal")))}r.push(m)}}}}if(e.ik)for(let a in e.ik){let c=e.ik[a],l=c[0];if(!l)continue;let h=i.findIkConstraint(a);if(!h)throw new Error("IK Constraint not found: "+a);let u=i.ikConstraints.indexOf(h),d=new U_(c.length,c.length<<1,u),f=ae(l,"time",0),m=ae(l,"mix",1),p=ae(l,"softness",0)*s;for(let g=0,v=0;;g++){d.setFrame(g,f,m,p,ae(l,"bendPositive",!0)?1:-1,ae(l,"compress",!1),ae(l,"stretch",!1));let b=c[g+1];if(!b){d.shrink(v);break}let y=ae(b,"time",0),x=ae(b,"mix",1),_=ae(b,"softness",0)*s,E=l.curve;E&&(v=xt(E,d,v,g,0,f,y,m,x,1),v=xt(E,d,v,g,1,f,y,p,_,s)),f=y,m=x,p=_,l=b}r.push(d)}if(e.transform)for(let a in e.transform){let c=e.transform[a],l=c[0];if(!l)continue;let h=i.findTransformConstraint(a);if(!h)throw new Error("Transform constraint not found: "+a);let u=i.transformConstraints.indexOf(h),d=new V_(c.length,c.length*6,u),f=ae(l,"time",0),m=ae(l,"mixRotate",1),p=ae(l,"mixX",1),g=ae(l,"mixY",p),v=ae(l,"mixScaleX",1),b=ae(l,"mixScaleY",v),y=ae(l,"mixShearY",1);for(let x=0,_=0;;x++){d.setFrame(x,f,m,p,g,v,b,y);let E=c[x+1];if(!E){d.shrink(_);break}let S=ae(E,"time",0),C=ae(E,"mixRotate",1),M=ae(E,"mixX",1),P=ae(E,"mixY",M),A=ae(E,"mixScaleX",1),R=ae(E,"mixScaleY",A),B=ae(E,"mixShearY",1),O=l.curve;O&&(_=xt(O,d,_,x,0,f,S,m,C,1),_=xt(O,d,_,x,1,f,S,p,M,1),_=xt(O,d,_,x,2,f,S,g,P,1),_=xt(O,d,_,x,3,f,S,v,A,1),_=xt(O,d,_,x,4,f,S,b,R,1),_=xt(O,d,_,x,5,f,S,y,B,1)),f=S,m=C,p=M,g=P,v=A,b=R,v=A,l=E}r.push(d)}if(e.path)for(let a in e.path){let c=e.path[a],l=i.findPathConstraint(a);if(!l)throw new Error("Path constraint not found: "+a);let h=i.pathConstraints.indexOf(l);for(let u in c){let d=c[u],f=d[0];if(!f)continue;let m=d.length;if(u==="position"){let p=new X_(m,m,h);r.push(Vn(d,p,0,l.positionMode==As.Fixed?s:1))}else if(u==="spacing"){let p=new Y_(m,m,h);r.push(Vn(d,p,0,l.spacingMode==Ti.Length||l.spacingMode==Ti.Fixed?s:1))}else if(u==="mix"){let p=new G_(m,m*3,h),g=ae(f,"time",0),v=ae(f,"mixRotate",1),b=ae(f,"mixX",1),y=ae(f,"mixY",b);for(let x=0,_=0;;x++){p.setFrame(x,g,v,b,y);let E=d[x+1];if(!E){p.shrink(_);break}let S=ae(E,"time",0),C=ae(E,"mixRotate",1),M=ae(E,"mixX",1),P=ae(E,"mixY",M),A=f.curve;A&&(_=xt(A,p,_,x,0,g,S,v,C,1),_=xt(A,p,_,x,1,g,S,b,M,1),_=xt(A,p,_,x,2,g,S,y,P,1)),g=S,v=C,b=M,y=P,f=E}r.push(p)}}}if(e.physics)for(let a in e.physics){let c=e.physics[a],l=-1;if(a.length>0){let h=i.findPhysicsConstraint(a);if(!h)throw new Error("Physics constraint not found: "+a);l=i.physicsConstraints.indexOf(h)}for(let h in c){let u=c[h],d=u[0];if(!d)continue;let f=u.length;if(h=="reset"){const p=new Z_(f,l);for(let g=0;d!=null;d=u[g+1],g++)p.setFrame(g,ae(d,"time",0));r.push(p);continue}let m;if(h=="inertia")m=new H_(f,f,l);else if(h=="strength")m=new j_(f,f,l);else if(h=="damping")m=new W_(f,f,l);else if(h=="mass")m=new z_(f,f,l);else if(h=="wind")m=new q_(f,f,l);else if(h=="gravity")m=new K_(f,f,l);else if(h=="mix")m=new J_(f,f,l);else continue;r.push(Vn(u,m,0,1))}}if(e.attachments)for(let a in e.attachments){let c=e.attachments[a],l=i.findSkin(a);if(!l)throw new Error("Skin not found: "+a);for(let h in c){let u=c[h],d=i.findSlot(h);if(!d)throw new Error("Slot not found: "+h);let f=d.index;for(let m in u){let p=u[m],g=l.getAttachment(f,m);for(let v in p){let b=p[v],y=b[0];if(y){if(v=="deform"){let x=g.bones,_=g.vertices,E=x?_.length/3*2:_.length,S=new B_(b.length,b.length,f,g),C=ae(y,"time",0);for(let M=0,P=0;;M++){let A,R=ae(y,"vertices",null);if(!R)A=x?Oe.newFloatArray(E):_;else{A=Oe.newFloatArray(E);let V=ae(y,"offset",0);if(Oe.arrayCopy(R,0,A,V,R.length),s!=1)for(let Y=V,L=Y+R.length;Y<L;Y++)A[Y]*=s;if(!x)for(let Y=0;Y<E;Y++)A[Y]+=_[Y]}S.setFrame(M,C,A);let B=b[M+1];if(!B){S.shrink(P);break}let O=ae(B,"time",0),W=y.curve;W&&(P=xt(W,S,P,M,0,C,O,0,1,1)),C=O,y=B}r.push(S)}else if(v=="sequence"){let x=new Q_(b.length,f,g),_=0;for(let E=0;E<b.length;E++){let S=ae(y,"delay",_),C=ae(y,"time",0),M=Oi[ae(y,"mode","hold")],P=ae(y,"index",0);x.setFrame(E,C,M,P,S),_=S,y=b[E+1]}r.push(x)}}}}}}if(e.drawOrder){let a=new Fl(e.drawOrder.length),c=i.slots.length,l=0;for(let h=0;h<e.drawOrder.length;h++,l++){let u=e.drawOrder[h],d=null,f=ae(u,"offsets",null);if(f){d=Oe.newArray(c,-1);let m=Oe.newArray(c-f.length,0),p=0,g=0;for(let v=0;v<f.length;v++){let b=f[v],y=i.findSlot(b.slot);if(!y)throw new Error("Slot not found: "+y);let x=y.index;for(;p!=x;)m[g++]=p++;d[p+b.offset]=p++}for(;p<c;)m[g++]=p++;for(let v=c-1;v>=0;v--)d[v]==-1&&(d[v]=m[--g])}a.setFrame(l,ae(u,"time",0),d)}r.push(a)}if(e.events){let a=new Wg(e.events.length),c=0;for(let l=0;l<e.events.length;l++,c++){let h=e.events[l],u=i.findEvent(h.name);if(!u)throw new Error("Event not found: "+h.name);let d=new cT(Oe.toSinglePrecision(ae(h,"time",0)),u);d.intValue=ae(h,"int",u.intValue),d.floatValue=ae(h,"float",u.floatValue),d.stringValue=ae(h,"string",u.stringValue),d.data.audioPath&&(d.volume=ae(h,"volume",1),d.balance=ae(h,"balance",0)),a.setFrame(c,d)}r.push(a)}let o=0;for(let a=0,c=r.length;a<c;a++)o=Math.max(o,r[a].getDuration());i.animations.push(new Hg(t,r,o))}},HN=class{constructor(e,t,i,s,r){T(this,"parent");T(this,"skin");T(this,"slotIndex");T(this,"mesh");T(this,"inheritTimeline");this.mesh=e,this.skin=t,this.slotIndex=i,this.parent=s,this.inheritTimeline=r}};function Vn(n,e,t,i){let s=n[0],r=ae(s,"time",0),o=ae(s,"value",t)*i,a=0;for(let c=0;;c++){e.setFrame(c,r,o);let l=n[c+1];if(!l)return e.shrink(a),e;let h=ae(l,"time",0),u=ae(l,"value",t)*i;s.curve&&(a=xt(s.curve,e,a,c,0,r,h,o,u,i)),r=h,o=u,s=l}}function pm(n,e,t,i,s,r){let o=n[0],a=ae(o,"time",0),c=ae(o,t,s)*r,l=ae(o,i,s)*r,h=0;for(let u=0;;u++){e.setFrame(u,a,c,l);let d=n[u+1];if(!d)return e.shrink(h),e;let f=ae(d,"time",0),m=ae(d,t,s)*r,p=ae(d,i,s)*r,g=o.curve;g&&(h=xt(g,e,h,u,0,a,f,c,m,r),h=xt(g,e,h,u,1,a,f,l,p,r)),a=f,c=m,l=p,o=d}}function xt(n,e,t,i,s,r,o,a,c,l){if(n=="stepped")return e.setStepped(i),t;let h=s<<2,u=n[h],d=n[h+1]*l,f=n[h+2],m=n[h+3]*l;return e.setBezier(t,i,s,r,a,u,d,f,m,o,c),t+1}function ae(n,e,t){return n[e]!==void 0?n[e]:t}typeof Math.fround>"u"&&(Math.fround=(function(n){return function(e){return n[0]=e,n[0]}})(new Float32Array(1)));if(typeof window<"u"&&window.PIXI){let n=window.require;window.require=e=>{if(n)return n(e);if(e.startsWith("@pixi/"))return window.PIXI}}const Gs=class Gs extends nN{constructor(t){super(t.resource.source);T(this,"texture");this.texture=it.from(t)}static from(t){return Gs.textureMap.has(t)?Gs.textureMap.get(t):new Gs(t)}setFilters(t,i){this.texture.baseTexture.scaleMode=Gs.toPixiTextureFilter(t),this.texture.baseTexture.mipmap=Gs.toPixiMipMap(t)}setWraps(t,i){this.texture.baseTexture.wrapMode=Gs.toPixiTextureWrap(t)}dispose(){this.texture.destroy()}static toPixiTextureFilter(t){switch(t){case Ai.Nearest:case Ai.MipMapNearestLinear:case Ai.MipMapNearestNearest:return Wn.NEAREST;case Ai.Linear:case Ai.MipMapLinearLinear:case Ai.MipMapLinearNearest:return Wn.LINEAR;default:throw new Error(`Unknown texture filter: ${String(t)}`)}}static toPixiMipMap(t){switch(t){case Ai.Nearest:case Ai.Linear:return $n.OFF;case Ai.MipMapNearestLinear:case Ai.MipMapNearestNearest:case Ai.MipMapLinearLinear:case Ai.MipMapLinearNearest:return $n.ON;default:throw new Error(`Unknown texture filter: ${String(t)}`)}}static toPixiTextureWrap(t){switch(t){case cr.ClampToEdge:return Jn.CLAMP;case cr.MirroredRepeat:return Jn.MIRRORED_REPEAT;case cr.Repeat:return Jn.REPEAT;default:throw new Error(`Unknown texture wrap: ${String(t)}`)}}static toPixiBlending(t){switch(t){case Hr.Normal:return Qe.NORMAL;case Hr.Additive:return Qe.ADD;case Hr.Multiply:return Qe.MULTIPLY;case Hr.Screen:return Qe.SCREEN;default:throw new Error(`Unknown blendMode: ${String(t)}`)}}};T(Gs,"textureMap",new Map);let Yo=Gs;const Hs=class Hs extends ec{constructor(){const t=new Fg;t.getBuffer("aVertexPosition").static=!1,t.getBuffer("aTextureCoord").static=!1;const i=new ru(it.EMPTY);super(t,i);T(this,"name","");T(this,"warnedTwoTint",!1)}updateFromSpineData(t,i,s,r,o,a,c,l){var v,b;this.texture=t.texture;const h=o/(l?12:8)*2,u=this.geometry.getBuffer("aTextureCoord");((v=u.data)==null?void 0:v.length)!==h&&(u.data=new Float32Array(h));const d=this.geometry.getBuffer("aVertexPosition");((b=d.data)==null?void 0:b.length)!==h&&(d.data=new Float32Array(h));let f=0,m=u.data,p=d.data;for(let y=0;y<o;y+=l?12:8){let x=y;p[f]=r[x++],p[f+1]=r[x++],x+=4,m[f]=r[x++],m[f+1]=r[x++],f+=2}l&&!this.warnedTwoTint&&(console.warn("DarkTint is not enabled by default. To enable use a DarkSlotMesh factory while creating the Spine object."),this.warnedTwoTint=!0),Hs.auxColor[0]=r[2],Hs.auxColor[1]=r[3],Hs.auxColor[2]=r[4],Hs.auxColor[3]=r[5],this.tint=Hs.auxColor,this.alpha=Hs.auxColor[3],this.blendMode=Yo.toPixiBlending(i);const g=this.geometry.indexBuffer;if(g.data.length!==a.length)g.data=new Uint32Array(a);else{const y=g.data;for(let x=0;x<c;x++)y[x]=a[x]}this.name=s,u.update(),d.update(),g.update()}};T(Hs,"auxColor",[0,0,0,0]);let Lp=Hs;class jN extends Ps{constructor(e=!1){super();const t=new zt(void 0),i=new zt(void 0,!0),s=new zt(void 0,!0,!0);this.addAttribute("aVertexPosition",t,2,!1,He.FLOAT),this.addAttribute("aTextureCoord",i,2,!1,He.FLOAT),this.addIndex(s)}}const WN=`
attribute vec2 aVertexPosition;
attribute vec2 aTextureCoord;
uniform mat3 projectionMatrix;
uniform mat3 translationMatrix;
uniform mat3 uTextureMatrix;
varying vec2 vTextureCoord;
void main(void)
{
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
vTextureCoord = (uTextureMatrix * vec3(aTextureCoord, 1.0)).xy;
}
`,zN=`
varying vec2 vTextureCoord;
uniform vec4 uColor;
uniform vec4 uDarkColor;
uniform sampler2D uSampler;
void main(void)
{
vec4 texColor = texture2D(uSampler, vTextureCoord);
gl_FragColor.a = texColor.a * uColor.a;
gl_FragColor.rgb = ((texColor.a - 1.0) * uDarkColor.a + 1.0 - texColor.rgb) * uDarkColor.rgb + texColor.rgb * uColor.rgb;
}
`;class qN extends es{constructor(t){const i={uSampler:t??it.EMPTY,alpha:1,uTextureMatrix:Bt.IDENTITY,uColor:new Float32Array([1,1,1,1]),uDarkColor:new Float32Array([0,0,0,0])},s={tint:16777215,darkTint:0,alpha:1,pluginName:"darkTintBatch"};super(Ts.from(WN,zN),i);T(this,"uvMatrix");T(this,"batchable");T(this,"pluginName");T(this,"_tintRGB");T(this,"_darkTintRGB");T(this,"_colorDirty");T(this,"_alpha");T(this,"_tintColor");T(this,"_darkTintColor");this._colorDirty=!1,this.uvMatrix=new Mg(i.uSampler),this.batchable=!0,this.pluginName=s.pluginName,this._tintColor=new kt(s.tint),this._darkTintColor=new kt(s.darkTint),this._tintRGB=this._tintColor.toLittleEndianNumber(),this._darkTintRGB=this._darkTintColor.toLittleEndianNumber(),this._alpha=s.alpha,this._colorDirty=!0}get texture(){return this.uniforms.uSampler}set texture(t){this.uniforms.uSampler!==t&&(!this.uniforms.uSampler.baseTexture.alphaMode!=!t.baseTexture.alphaMode&&(this._colorDirty=!0),this.uniforms.uSampler=t,this.uvMatrix.texture=t)}set alpha(t){t!==this._alpha&&(this._alpha=t,this._colorDirty=!0)}get alpha(){return this._alpha}set tint(t){t!==this.tint&&(this._tintColor.setValue(t),this._tintRGB=this._tintColor.toLittleEndianNumber(),this._colorDirty=!0)}get tint(){return this._tintColor.value}set darkTint(t){t!==this.darkTint&&(this._darkTintColor.setValue(t),this._darkTintRGB=this._darkTintColor.toLittleEndianNumber(),this._colorDirty=!0)}get darkTint(){return this._darkTintColor.value}get tintValue(){return this._tintColor.toNumber()}get darkTintValue(){return this._darkTintColor.toNumber()}update(){this._colorDirty&&(this._colorDirty=!1,kt.shared.setValue(this._tintColor).premultiply(this._alpha,!0).toArray(this.uniforms.uColor),kt.shared.setValue(this._darkTintColor).premultiply(this._alpha,!0).premultiply(1,!1).toArray(this.uniforms.uDarkColor)),this.uvMatrix.update()&&(this.uniforms.uTextureMatrix=this.uvMatrix.mapCoord)}}class KN extends ec{constructor(t){super(new jN,new qN(t),void 0,void 0);T(this,"_darkTintRGB",0)}get darkTint(){return"darkTint"in this.shader?this.shader.darkTint:null}set darkTint(t){this.shader.darkTint=t}get darkTintValue(){return this.shader.darkTintValue}_renderToBatch(t){const i=this.geometry,s=this.shader;s.uvMatrix&&(s.uvMatrix.update(),this.calculateUvs()),this.calculateVertices(),this.indices=i.indexBuffer.data,this._tintRGB=s._tintRGB,this._darkTintRGB=s._darkTintRGB,this._texture=s.texture;const r=this.material.pluginName;t.batch.setObjectRenderer(t.plugins[r]),t.plugins[r].render(this)}}const wi=class wi extends KN{constructor(){super();T(this,"name","")}updateFromSpineData(t,i,s,r,o,a,c,l){var v,b;this.texture=t.texture;const h=o/(l?12:8)*2,u=this.geometry.getBuffer("aTextureCoord");((v=u.data)==null?void 0:v.length)!==h&&(u.data=new Float32Array(h));const d=this.geometry.getBuffer("aVertexPosition");((b=d.data)==null?void 0:b.length)!==h&&(d.data=new Float32Array(h));let f=0,m=u.data,p=d.data;for(let y=0;y<o;y+=l?12:8){let x=y;p[f]=r[x++],p[f+1]=r[x++],x+=4,m[f]=r[x++],m[f+1]=r[x++],f+=2}l?(wi.auxColor[0]=r[8],wi.auxColor[1]=r[9],wi.auxColor[2]=r[10],wi.auxColor[3]=r[11],this.darkTint=wi.auxColor,wi.auxColor[0]=r[2],wi.auxColor[1]=r[3],wi.auxColor[2]=r[4],wi.auxColor[3]=r[5],this.tint=wi.auxColor):(wi.auxColor[0]=r[2],wi.auxColor[1]=r[3],wi.auxColor[2]=r[4],wi.auxColor[3]=r[5],this.tint=wi.auxColor),this.blendMode=Yo.toPixiBlending(i),this.alpha=wi.auxColor[3];const g=this.geometry.indexBuffer;if(g.data.length!==a.length)g.data=new Uint32Array(a);else{const y=g.data;for(let x=0;x<c;x++)y[x]=a[x]}this.name=s,u.update(),d.update(),g.update()}};T(wi,"auxColor",[0,0,0,0]);let Ll=wi;const Ct=class Ct extends Mi{constructor(t,i){if(t instanceof gu)t={...i,skeletonData:t};else if(i)throw new Error("You cannot use options and oldOptions together.");super();T(this,"skeleton");T(this,"state");T(this,"darkTint",!1);T(this,"hasNeverUpdated",!0);T(this,"_debug");T(this,"slotMeshFactory",()=>new Lp);T(this,"beforeUpdateWorldTransforms",()=>{});T(this,"afterUpdateWorldTransforms",()=>{});T(this,"_autoUpdate",!1);T(this,"_ticker",nn.shared);T(this,"meshesCache",new Map);T(this,"lightColor",new ut);T(this,"darkColor",new ut);T(this,"_boundsProvider");T(this,"_boundsPoint",new Tt);T(this,"_boundsSpineID",-1);T(this,"_boundsSpineDirty",!0);T(this,"slotsObject",new Map);T(this,"verticesCache",Oe.newFloatArray(1024));T(this,"clippingSlotToPixiMasks",{});T(this,"currentClippingSlot");const s=t instanceof gu?t:t.skeletonData;this.skeleton=new zg(s);const r=new iN(s);this.state=new J$(r),(t==null?void 0:t.darkTint)!==void 0||(i==null?void 0:i.slotMeshFactory)===void 0?(this.darkTint=(t==null?void 0:t.darkTint)===void 0?this.skeleton.slots.some(o=>!!o.data.darkColor):t==null?void 0:t.darkTint,this.darkTint&&(this.slotMeshFactory=()=>new Ll)):this.initializeMeshFactory(i==null?void 0:i.slotMeshFactory),t!=null&&t.ticker&&(this._ticker=t.ticker),this.autoUpdate=(t==null?void 0:t.autoUpdate)??!0,this.boundsProvider=t.boundsProvider}get debug(){return this._debug}set debug(t){this._debug&&this._debug.unregisterSpine(this),t&&t.registerSpine(this),this._debug=t}get autoUpdate(){return this._autoUpdate}set autoUpdate(t){t&&!this._autoUpdate?this._ticker.add(this.internalUpdate,this):!t&&this._autoUpdate&&this._ticker.remove(this.internalUpdate,this),this._autoUpdate=t}get ticker(){return this._ticker}set ticker(t){t=t??nn.shared,this._ticker!==t&&(this._autoUpdate&&(this._ticker.remove(this.internalUpdate,this),t.add(this.internalUpdate,this)),this._ticker=t)}get boundsProvider(){return this._boundsProvider}set boundsProvider(t){this._boundsProvider=t,t?(this._boundsSpineID=-1,this._boundsSpineDirty=!0,this.interactiveChildren=!1):(this.interactiveChildren=!0,this.hitArea=null),this.hasNeverUpdated||this.calculateBounds()}initializeMeshFactory(t){if(t){this.slotMeshFactory=t;const i=this.slotMeshFactory();i instanceof Ll&&(this.darkTint=!0),i.destroy()}else for(let i=0;i<this.skeleton.slots.length;i++)if(this.skeleton.slots[i].data.darkColor){this.slotMeshFactory=()=>new Ll,this.darkTint=!0;break}}update(t){this.internalUpdate(0,t)}internalUpdate(t,i){this.hasNeverUpdated=!1;const s=i??this._ticker.deltaMS/1e3;this.state.update(s),this.state.apply(this.skeleton),this.beforeUpdateWorldTransforms(this),this.skeleton.update(s),this.skeleton.updateWorldTransform(Dr.update),this.afterUpdateWorldTransforms(this)}updateTransform(){var t;this.renderMeshes(),this.sortChildren(),(t=this.debug)==null||t.renderDebug(this),super.updateTransform()}destroy(t){var i;this.autoUpdate&&(this.autoUpdate=!1),this._ticker=null;for(const[,s]of this.meshesCache)s==null||s.destroy();this.state.clearListeners(),this.debug=void 0,this.meshesCache.clear(),this.slotsObject.clear();for(let s in this.clippingSlotToPixiMasks)(i=this.clippingSlotToPixiMasks[s].mask)==null||i.destroy(),delete this.clippingSlotToPixiMasks[s];super.destroy(t)}resetMeshes(){for(const[,t]of this.meshesCache)t.zIndex=-1,t.visible=!1}_calculateBounds(){this.hasNeverUpdated&&(this.internalUpdate(0,0),this.renderMeshes())}hasMeshForSlot(t){return this.meshesCache.has(t)}getMeshForSlot(t){if(this.hasMeshForSlot(t)){let i=this.meshesCache.get(t);return i.visible=!0,i}else{let i=this.slotMeshFactory();return this.addChild(i),this.meshesCache.set(t,i),i}}getSlotFromRef(t){let i;if(typeof t=="number"?i=this.skeleton.slots[t]:typeof t=="string"?i=this.skeleton.findSlot(t):i=t,!i)throw new Error(`No slot found with the given slot reference: ${t}`);return i}addSlotObject(t,i,s){var a;let r=this.getSlotFromRef(t);const o=(a=this.slotsObject.get(r))==null?void 0:a.container;if(!(o&&o===i)){for(const[c,{container:l}]of this.slotsObject)if(c!==r&&l===i){this.removeSlotObject(c,i);break}o&&this.removeChild(o),this.slotsObject.set(r,{container:i,followAttachmentTimeline:(s==null?void 0:s.followAttachmentTimeline)||!1,followSlotColor:(s==null?void 0:s.followSlotColor)||!1}),this.addChild(i)}}getSlotObject(t){const i=this.slotsObject.get(this.getSlotFromRef(t));return i?i.container:void 0}removeSlotObject(t,i){var o;let s=this.getSlotFromRef(t),r=(o=this.slotsObject.get(s))==null?void 0:o.container;r&&(i&&i!==r||(this.removeChild(r),this.slotsObject.delete(s)))}removeSlotObjects(){for(const[,t]of this.slotsObject)t.container.removeFromParent();this.slotsObject.clear()}updateSlotObject(t,i,s){const{container:r,followAttachmentTimeline:o}=t,a=o?!!i.attachment:!0;if(r.visible=this.skeleton.drawOrder.includes(i)&&a,r.visible){let c=i.bone;const l=r.localTransform;l.a=c.a,l.b=c.c,l.c=-c.b,l.d=-c.d,l.tx=c.worldX,l.ty=c.worldY,r.transform.setFromMatrix(l),r.zIndex=s,r.alpha=this.skeleton.color.a*i.color.a,t.followSlotColor&&this.setSlotObjectTint(r,255*this.skeleton.color.r*i.color.r<<16|255*this.skeleton.color.g*i.color.g<<8|255*this.skeleton.color.b*i.color.b)}}setSlotObjectTint(t,i){const s=t;"tint"in s&&(s.tint=i);for(const r of s.children??[])this.setSlotObjectTint(r,i)}updateAndSetPixiMask(t,i){var a,c;const s=t.attachment;if(s&&s instanceof $a){const l=(a=this.clippingSlotToPixiMasks)[c=t.data.name]||(a[c]={slot:t,vertices:new Array});l.maskComputed=!1,this.currentClippingSlot=l;return}let r=this.currentClippingSlot;const o=this.slotsObject.get(t);if(r&&o){let l=r.mask;if(l||(l=Jb.obtain(),r.mask=l,this.addChild(l)),!r.maskComputed){let h=r.slot,u=h.attachment;r.maskComputed=!0;const d=u.worldVerticesLength,f=r.vertices;u.computeWorldVertices(h,0,d,f,0,2),l.clear().lineStyle(0).beginFill(0).drawPolygon(f).endFill()}o.container.mask=l}else o!=null&&o.container.mask&&(o.container.mask=null);if(r&&r.slot.attachment.endSlot==t.data&&(this.currentClippingSlot=void 0),i){for(const l in this.clippingSlotToPixiMasks){const h=this.clippingSlotToPixiMasks[l];(!(h.slot.attachment instanceof $a)||!h.maskComputed)&&h.mask&&(this.removeChild(h.mask),Jb.free(h.mask),h.mask=void 0)}this.currentClippingSlot=void 0}}renderMeshes(){var r,o;this.resetMeshes();let t=null,i=null;const s=this.skeleton.drawOrder;for(let a=0,c=s.length,l=0;a<c;a++){const h=s[a];let u=this.slotsObject.get(h),d=a+l;u&&(this.updateSlotObject(u,h,d+1),l++),this.updateAndSetPixiMask(h,a===s.length-1);const f=h.darkColor!=null,m=Ct.clipper.isClipping()?2:f?Ct.DARK_VERTEX_SIZE:Ct.VERTEX_SIZE;if(!h.bone.active){Ct.clipper.clipEndWithSlot(h);continue}const p=h.getAttachment();let g,v,b=0;if(p instanceof dd){const y=p;g=y.color,b=m*4,y.computeWorldVertices(h,this.verticesCache,0,m),t=Ct.QUAD_TRIANGLES,i=y.uvs,v=(r=y.region)==null?void 0:r.texture}else if(p instanceof bc){const y=p;g=y.color,b=(y.worldVerticesLength>>1)*m,b>this.verticesCache.length&&(this.verticesCache=Oe.newFloatArray(b)),y.computeWorldVertices(h,0,y.worldVerticesLength,this.verticesCache,0,m),t=y.triangles,i=y.uvs,v=(o=y.region)==null?void 0:o.texture}else if(p instanceof $a){Ct.clipper.clipStart(h,p);continue}else{this.hasMeshForSlot(h)&&(this.getMeshForSlot(h).visible=!1),Ct.clipper.clipEndWithSlot(h);continue}if(v!=null){const x=h.bone.skeleton.color,_=h.color,E=x.a*_.a*g.a;this.lightColor.set(x.r*_.r*g.r,x.g*_.g*g.g,x.b*_.b*g.b,E),h.darkColor!=null?this.darkColor.set(h.darkColor.r,h.darkColor.g,h.darkColor.b,1):this.darkColor.set(0,0,0,1);let S,C,M,P;if(Ct.clipper.isClipping())Ct.clipper.clipTriangles(this.verticesCache,t,t.length,i,this.lightColor,this.darkColor,f),S=Ct.clipper.clippedVertices,C=S.length,M=Ct.clipper.clippedTriangles,P=M.length;else{const R=this.verticesCache;for(let B=2,O=0,W=b;B<W;B+=m,O+=2){let V=B;R[V++]=this.lightColor.r,R[V++]=this.lightColor.g,R[V++]=this.lightColor.b,R[V++]=this.lightColor.a,R[V++]=i[O],R[V++]=i[O+1],f&&(R[V++]=this.darkColor.r,R[V++]=this.darkColor.g,R[V++]=this.darkColor.b,R[V++]=this.darkColor.a)}S=this.verticesCache,C=b,M=t,P=t.length}if(C==0||P==0){Ct.clipper.clipEndWithSlot(h);continue}const A=this.getMeshForSlot(h);A.renderable=!0,A.zIndex=d,A.updateFromSpineData(v,h.data.blendMode,h.data.name,S,C,M,P,f)}Ct.clipper.clipEndWithSlot(h)}Ct.clipper.clipEnd()}calculateBounds(){if(!this._boundsProvider){super.calculateBounds();return}const t=this.transform;if(this._boundsSpineID===t._worldID)return;this.updateBounds();const i=this._localBounds,s=this._boundsPoint;s.set(i.minX,i.minY),t.worldTransform.apply(s,s),this._bounds.minX=s.x,this._bounds.minY=s.y,s.set(i.maxX,i.maxY),t.worldTransform.apply(s,s),this._bounds.maxX=s.x,this._bounds.maxY=s.y}updateBounds(){if(!this._boundsProvider||!this._boundsSpineDirty)return;this._boundsSpineDirty=!1,this._localBounds||(this._localBounds=new Ql);const t=this._boundsProvider.calculateBounds(this),i=this._localBounds;i.clear(),i.minX=t.x,i.minY=t.y,i.maxX=t.x+t.width,i.maxY=t.y+t.height,this.hitArea=this._localBounds.getRectangle()}setBonePosition(t,i){const s=t;if(typeof t=="string"&&(t=this.skeleton.findBone(t)),!t)throw Error(`Cannot set bone position, bone ${String(s)} not found`);if(Ct.vectorAux.set(i.x,i.y),t.parent){const r=t.parent.worldToLocal(Ct.vectorAux);t.x=r.x,t.y=r.y}else t.x=Ct.vectorAux.x,t.y=Ct.vectorAux.y}getBonePosition(t,i){const s=t;return typeof t=="string"&&(t=this.skeleton.findBone(t)),t?(i||(i={x:0,y:0}),i.x=t.worldX,i.y=t.worldY,i):(console.error(`Cannot get bone position! Bone ${String(s)} not found`),i)}skeletonToPixiWorldCoordinates(t){this.worldTransform.apply(t,t)}pixiWorldCoordinatesToSkeleton(t){this.worldTransform.applyInverse(t,t)}pixiWorldCoordinatesToBone(t,i){this.pixiWorldCoordinatesToSkeleton(t),i.parent?i.parent.worldToLocal(t):i.worldToLocal(t)}static from(t,i,s){if(typeof t=="string")return Ct.oldFrom(t,i,s);const{skeleton:r,atlas:o,scale:a=1,darkTint:c,autoUpdate:l,boundsProvider:h,ticker:u}=t,d=`${r}-${o}-${a}`;let f=Ct.skeletonCache[d];if(!f){const m=Es.get(r),p=Es.get(o),g=new Rp(p);let v=m instanceof Uint8Array?new Fp(g):new yu(g);v.scale=a,f=v.readSkeletonData(m),Ct.skeletonCache[d]=f}return new Ct({skeletonData:f,darkTint:c,autoUpdate:l,boundsProvider:h,ticker:u})}static oldFrom(t,i,s){const r=`${t}-${i}-${(s==null?void 0:s.scale)??1}`;let o=Ct.skeletonCache[r];if(o)return new Ct(o,s);const a=Es.get(t),c=Es.get(i),l=new Rp(c);let h=a instanceof Uint8Array?new Fp(l):new yu(l);return h.scale=(s==null?void 0:s.scale)??1,o=h.readSkeletonData(a),Ct.skeletonCache[r]=o,new this(o,s)}get tint(){return this.skeleton.color.toRgb888()}set tint(t){ut.rgb888ToColor(this.skeleton.color,t)}};T(Ct,"vectorAux",new mu),T(Ct,"clipper",new vu),T(Ct,"QUAD_TRIANGLES",[0,1,2,2,3,0]),T(Ct,"VERTEX_SIZE",8),T(Ct,"DARK_VERTEX_SIZE",12),T(Ct,"skeletonCache",Object.create(null));let bu=Ct;const Jb=new fu(()=>new Ki);zg.yDown=!0;const hh="spineTextureAtlasLoader",JN={extension:$e.Asset,resolver:{test:n=>un(n,".atlas"),parse:n=>{var t,i;const e=n.split(".");return{resolution:parseFloat(((i=(t=Ve.RETINA_PREFIX)==null?void 0:t.exec(n))==null?void 0:i[1])??"1"),format:e[e.length-2],src:n}}},loader:{name:hh,extension:{type:$e.LoadParser,priority:_n.Normal,name:hh},test(n){return un(n,".atlas")},async load(n){const e=await Ve.ADAPTER.fetch(n);if(!e.ok)throw new Error(`[${hh}] Failed to fetch ${n}: ${e.status} ${e.statusText}`);return await e.text()},testParse(n,e){const t=un(e.src,".atlas"),i=typeof n=="string",s=e.loadParser===hh;return Promise.resolve((t||s)&&i)},unload(n){n.dispose()},async parse(n,e,t){var c;const i=e.data||{};let s=di.dirname(e.src);s&&s.lastIndexOf("/")!==s.length-1&&(s+="/");const r=new nT(n);if(i.images instanceof rt||typeof i.images=="string"){const l=i.images;i.images={},i.images[r.pages[0].name]=l}const o=[];let a=!0;for(const l of t.parsers)if(l.name=="loadTextures"){a=(c=l.config)==null?void 0:c.preferCreateImageBitmap;break}Es.setPreferences({preferCreateImageBitmap:!1});for(const l of r.pages){const h=l.name,u=i!=null&&i.images?i.images[h]:void 0;if(u instanceof rt)l.setTexture(Yo.from(u));else{const d=u??di.normalize([...s.split(di.sep),h].join(di.sep)),f={src:eu(d,e.src),data:{...i.imageMetadata,alphaMode:l.pma?Ri.PMA:Ri.UNPACK}},m=t.load(f).then(p=>{l.setTexture(Yo.from(p.baseTexture))});o.push(m)}}return await Promise.all(o),Es.setPreferences({preferCreateImageBitmap:a}),r}}};je.add(JN);const uh="spineSkeletonLoader";function ZN(n){return n.hasOwnProperty("bones")}function QN(n){return n instanceof Uint8Array}const eD={extension:$e.Asset,loader:{name:uh,extension:{type:$e.LoadParser,priority:_n.Normal,name:uh},test(n){return un(n,".skel")},async load(n){const e=await Ve.ADAPTER.fetch(n);if(!e.ok)throw new Error(`[${uh}] Failed to fetch ${n}: ${e.status} ${e.statusText}`);return new Uint8Array(await e.arrayBuffer())},testParse(n,e){const t=un(e.src,".json")&&ZN(n),i=un(e.src,".skel")&&QN(n),s=e.loadParser===uh;return Promise.resolve(t||i||s)}}};je.add(eD);class tD extends Ps{constructor(t=!1){super();T(this,"_buffer");T(this,"_indexBuffer");this._buffer=new zt(void 0,t,!1),this._indexBuffer=new zt(void 0,t,!0),this.addAttribute("aVertexPosition",this._buffer,2,!1,He.FLOAT).addAttribute("aTextureCoord",this._buffer,2,!1,He.FLOAT).addAttribute("aColor",this._buffer,4,!0,He.UNSIGNED_BYTE).addAttribute("aDarkColor",this._buffer,4,!0,He.UNSIGNED_BYTE).addAttribute("aTextureId",this._buffer,1,!0,He.FLOAT).addIndex(this._indexBuffer)}}const iD=`
precision highp float;
attribute vec2 aVertexPosition;
attribute vec2 aTextureCoord;
attribute vec4 aColor;
attribute vec4 aDarkColor;
attribute float aTextureId;
uniform mat3 projectionMatrix;
uniform mat3 translationMatrix;
uniform vec4 tint;
varying vec2 vTextureCoord;
varying vec4 vColor;
varying vec4 vDarkColor;
varying float vTextureId;
void main(void){
gl_Position = vec4((projectionMatrix * translationMatrix * vec3(aVertexPosition, 1.0)).xy, 0.0, 1.0);
vTextureCoord = aTextureCoord;
vTextureId = aTextureId;
vColor = aColor * tint;
vDarkColor = aDarkColor * tint;
}
`,nD=`
varying vec2 vTextureCoord;
varying vec4 vColor;
varying vec4 vDarkColor;
varying float vTextureId;
uniform sampler2D uSamplers[%count%];
void main(void){
vec4 color;
%forloop%
gl_FragColor.a = color.a * vColor.a;
gl_FragColor.rgb = ((color.a - 1.0) * vDarkColor.a + 1.0 - color.rgb) * vDarkColor.rgb + color.rgb * vColor.rgb;
}
`;class gT extends Rr{constructor(e){super(e),this.shaderGenerator=new bw(iD,nD),this.geometryClass=tD,this.vertexSize=7}packInterleavedGeometry(e,t,i,s,r){const{uint32View:o,float32View:a}=t,c=s/this.vertexSize,l=e.uvs,h=e.indices,u=e.vertexData,d=e._texture.baseTexture._batchLocation,f=Math.min(e.worldAlpha,1),m=kt.shared.setValue(e._tintRGB).toPremultiplied(f,!0),p=kt.shared.setValue(e._darkTintRGB).premultiply(f,!0).toPremultiplied(1,!1);for(let g=0;g<u.length;g+=2)a[s++]=u[g],a[s++]=u[g+1],a[s++]=l[g],a[s++]=l[g+1],o[s++]=m,o[s++]=p,a[s++]=d;for(let g=0;g<h.length;g++)i[r++]=c+h[g]}}T(gT,"extension",{name:"darkTintBatch",type:$e.RendererPlugin});je.add(gT);function sD(n){return n.replace(/\\/g,"/").split("/").pop()||n}function qg(n,e,t){for(const i of n.pages){const s=e.get(sD(i.name).toLowerCase());if(!s)throw new Error(Ye("errors.missingAtlasTexture",{name:i.name}));s.baseTexture.alphaMode=i.pma?Ri.PMA:Ri.UNPACK,i.setTexture(t.from(s.baseTexture))}}function vT(n,e){const t=new nT(n);return qg(t,e,Yo),new Rp(t)}function rD(n,e,t){return{skeletonData:new yu(vT(e,t)).readSkeletonData(n),SpineClass:bu}}function oD(n,e,t){return{skeletonData:new Fp(vT(e,t)).readSkeletonData(n),SpineClass:bu}}const aD="modulepreload",lD=function(n){return"/"+n},Zb={},Qb=function(e,t,i){let s=Promise.resolve();if(t&&t.length>0){let o=function(l){return Promise.all(l.map(h=>Promise.resolve(h).then(u=>({status:"fulfilled",value:u}),u=>({status:"rejected",reason:u}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),c=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));s=o(t.map(l=>{if(l=lD(l),l in Zb)return;Zb[l]=!0;const h=l.endsWith(".css"),u=h?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${u}`))return;const d=document.createElement("link");if(d.rel=h?"stylesheet":aD,h||(d.as="script"),d.crossOrigin="",d.href=l,c&&d.setAttribute("nonce",c),document.head.appendChild(d),h)return new Promise((f,m)=>{d.addEventListener("load",f),d.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${l}`)))})}))}function r(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return s.then(o=>{for(const a of o||[])a.status==="rejected"&&r(a.reason);return e().catch(r)})};async function yT(){const[n,e]=await Promise.all([Qb(()=>import("./index-Ck8IwYQq.js"),[]),Qb(()=>import("./index-CC5ru70P.js"),__vite__mapDeps([0,1]))]);return{core:n,pixi:e}}async function cD(n,e,t){const{core:i,pixi:s}=await yT(),r=new i.TextureAtlas(e);return qg(r,t,s.SpineTexture),{skeletonData:new i.SkeletonJson(new i.AtlasAttachmentLoader(r)).readSkeletonData(n),SpineClass:s.Spine}}async function hD(n,e,t){const{core:i,pixi:s}=await yT(),r=new i.TextureAtlas(e);return qg(r,t,s.SpineTexture),{skeletonData:new i.SkeletonBinary(new i.AtlasAttachmentLoader(r)).readSkeletonData(n),SpineClass:s.Spine}}function Br(n,e,t){const i=Number(n[e]);return Number.isFinite(i)?i:t}function hn(n,e,t,i){n[e]==null&&(n[e]=Br(n,t,i))}function Kg(n,e,t){if(typeof n.curve!="number")return;const i=Br(n,"time",0),r=Br(e,"time",0)-i,o=n.curve,a=Br(n,"c2",0),c=Br(n,"c3",1),l=Br(n,"c4",1);n.curve=t.flatMap(([h,u])=>[i+r*o,h+(u-h)*a,i+r*c,h+(u-h)*l]),delete n.c2,delete n.c3,delete n.c4}function jr(n,e){if(Array.isArray(n))for(let t=0;t<n.length-1;t++){const i=n[t],s=n[t+1];Kg(i,s,e.map(({key:r,fallback:o})=>[Br(i,r,o),Br(s,r,o)]))}}function uD(n){if(Array.isArray(n))for(let e=0;e<n.length-1;e++)Kg(n[e],n[e+1],[[0,1]])}function la(n,e){const t=typeof n=="string"?n.replace(/^#/,""):"",i=t.length===6?`${t}ff`:t.padEnd(8,"f").slice(0,8),s=[0,2,4,6].map(r=>Number.parseInt(i.slice(r,r+2),16)/255);return e?s:s.slice(0,3)}function e1(n,e){if(Array.isArray(n))for(let t=0;t<n.length-1;t++){const i=n[t],s=n[t+1],r=e?[...la(i.light,!0),...la(i.dark,!1)]:la(i.color,!0),o=e?[...la(s.light,!0),...la(s.dark,!1)]:la(s.color,!0);Kg(i,s,r.map((a,c)=>[a,o[c]]))}}function dD(n){for(const e of n.bones||[])e.inherit==null&&e.transform!=null&&(e.inherit=e.transform);for(const e of n.transform||[])hn(e,"mixRotate","rotateMix",1),hn(e,"mixX","translateMix",1),e.mixY==null&&(e.mixY=e.mixX),hn(e,"mixScaleX","scaleMix",1),e.mixScaleY==null&&(e.mixScaleY=e.mixScaleX),hn(e,"mixShearY","shearMix",1);for(const e of n.path||[])hn(e,"mixRotate","rotateMix",1),hn(e,"mixX","translateMix",1),e.mixY==null&&(e.mixY=e.mixX)}function fD(n){for(const e of n.skins||[])for(const t of Object.values(e.attachments||{}))for(const i of Object.values(t||{}))i.parent!=null&&i.timelines==null&&i.deform!=null&&(i.timelines=i.deform)}function mD(n){for(const e of Object.values(n.slots||{}))e.color&&!e.rgba&&(e.rgba=e.color,delete e.color),e.twoColor&&!e.rgba2&&(e.rgba2=e.twoColor,delete e.twoColor),e1(e.rgba,!1),e1(e.rgba2,!0)}function pD(n){for(const e of Object.values(n.bones||{})){for(const t of e.rotate||[])hn(t,"value","angle",0);jr(e.rotate,[{key:"value",fallback:0}]),jr(e.translate,[{key:"x",fallback:0},{key:"y",fallback:0}]),jr(e.scale,[{key:"x",fallback:1},{key:"y",fallback:1}]),jr(e.shear,[{key:"x",fallback:0},{key:"y",fallback:0}])}}function gD(n){for(const e of Object.values(n.ik||{}))jr(e,[{key:"mix",fallback:1},{key:"softness",fallback:0}])}function vD(n){for(const e of Object.values(n.transform||{})){for(const t of e)hn(t,"mixRotate","rotateMix",1),hn(t,"mixX","translateMix",1),t.mixY==null&&(t.mixY=t.mixX),hn(t,"mixScaleX","scaleMix",1),t.mixScaleY==null&&(t.mixScaleY=t.mixScaleX),hn(t,"mixShearY","shearMix",1);jr(e,[{key:"mixRotate",fallback:1},{key:"mixX",fallback:1},{key:"mixY",fallback:1},{key:"mixScaleX",fallback:1},{key:"mixScaleY",fallback:1},{key:"mixShearY",fallback:1}])}}function yD(n){for(const e of Object.values(n.path||{})){for(const i of["position","spacing"]){const s=e[i];for(const r of s||[])hn(r,"value",i,0);jr(s,[{key:"value",fallback:0}])}const t=e.mix;for(const i of t||[])hn(i,"mixRotate","rotateMix",1),hn(i,"mixX","translateMix",1),i.mixY==null&&(i.mixY=i.mixX);jr(t,[{key:"mixRotate",fallback:1},{key:"mixX",fallback:1},{key:"mixY",fallback:1}])}}function bD(n){if(!n.deform)return;const e=n.attachments||(n.attachments={});for(const[t,i]of Object.entries(n.deform)){const s=e[t]||(e[t]={});for(const[r,o]of Object.entries(i)){const a=s[r]||(s[r]={});for(const[c,l]of Object.entries(o)){const h=a[c]||(a[c]={});h.deform=l,uD(l)}}}delete n.deform}function bT(n){dD(n),fD(n);for(const e of Object.values(n.animations||{}))mD(e),pD(e),gD(e),vD(e),yD(e),bD(e),!e.drawOrder&&e.draworder&&(e.drawOrder=e.draworder);return n}function xD(n){return n.replace(/\\/g,"/").split("/").pop()||n}async function wD(n){const e=await Promise.all(n.map(async t=>{const i=URL.createObjectURL(t);try{return[xD(t.name).toLowerCase(),await it.fromURL(i)]}finally{URL.revokeObjectURL(i)}}));return new Map(e)}function SD(n){const e=new Map;return n.bones.map(t=>{var r;const i=((r=t.parent)==null?void 0:r.name)||null,s=i?(e.get(i)||0)+1:0;return e.set(t.name,s),{name:t.name,parent:i,depth:s}})}function _D(n){return n.slots.map(e=>{var t;return{name:e.name,order:Number(e.index)||0,bone:((t=e.boneData)==null?void 0:t.name)||"",attachment:e.attachmentName||""}})}async function xT(n,e,t){var o;if(!/\.(json|skel)$/i.test(n.name))throw new Error(Ye("errors.spineFileType"));if(!/\.atlas$/i.test(e.name))throw new Error(Ye("errors.atlasFileType"));if(!t.length)throw new Error(Ye("errors.chooseTexture"));const i=await e.text(),s=await wD(t),r=[...s.values()];try{let a,c,l=null,h;if(/\.skel$/i.test(n.name)){const u=await n.arrayBuffer();try{({skeletonData:a,SpineClass:c}=await hD(u,i,s)),h="4.3"}catch(d){try{({skeletonData:a,SpineClass:c}=oD(u,i,s)),h="4.2"}catch(f){const m=d instanceof Error?d.message:String(d),p=f instanceof Error?f.message:String(f);throw new Error(Ye("errors.binaryParseFailed",{v43:m,v42:p}))}}l=lu(a.version)}else{let u;try{u=JSON.parse(await n.text())}catch{throw new Error(Ye("errors.invalidSpineJson"))}if(l=lu((o=u==null?void 0:u.skeleton)==null?void 0:o.spine),!l)throw new Error(Ye("errors.unsupportedSpineJsonVersion",{versions:bp()}));h=dF(l),l==="3.8"&&bT(u);const d=h==="4.3"?await cD(u,i,s):rD(u,i,s);a=d.skeletonData,c=d.SpineClass}if(!l)throw new Error(Ye("errors.unsupportedSpineDataVersion",{versions:bp()}));return{skeletonData:a,textures:r,runtimeVersion:h,SpineClass:c,dataVersion:l,animations:a.animations.map(u=>({name:u.name,duration:u.duration})),bones:SD(a),slots:_D(a)}}catch(a){for(const c of r)c.destroy(!0);throw a}}function Ph(n){return new Promise((e,t)=>{const i=new FileReader;i.onload=()=>e(String(i.result||"")),i.onerror=()=>t(i.error),i.readAsDataURL(n)})}async function TD(n,e,t){return{skeleton:{name:n.name,dataUrl:await Ph(n)},atlas:{name:e.name,dataUrl:await Ph(e)},textures:await Promise.all(t.map(async i=>({name:i.name,dataUrl:await Ph(i)})))}}async function gm(n){const e=await fetch(n.dataUrl);if(!e.ok)throw new Error(Ye("errors.embeddedReadFailed",{name:n.name}));return new File([await e.blob()],n.name)}async function ED(n){return{skeleton:await gm(n.skeleton),atlas:await gm(n.atlas),textures:await Promise.all(n.textures.map(gm))}}const wT="SpineParticle.EditorConfig",ST=1;function _T(n){return{backgroundX:n.backgroundX,backgroundY:n.backgroundY,backgroundOpacity:n.backgroundOpacity,backgroundImageName:n.backgroundImageName,backgroundImageData:n.backgroundImageData,showGrid:n.showGrid,exportSettings:Zt(n.exportSettings)}}function CD(n){return JSON.parse(JSON.stringify(n,(e,t)=>{if(!(e==="texture"||e==="trailTexture"||e==="frames"))return t}))}function TT(n){const e=Zt(n);return delete e.tags,delete e.selectedTag,e}function MD(n){const e=_T(n.settings),t=n.timeline.playbackEnd>=Math.max(1,n.timeline.totalFrames-1);return CD({format:wT,version:ST,savedAt:new Date().toISOString(),editor:Zt(n.editor),settings:e,timeline:{fps:n.timeline.fps,loop:n.timeline.loop,playbackStart:n.timeline.playbackStart,playbackEnd:n.timeline.playbackEnd,playbackEndAuto:t,abLoop:n.timeline.abLoop,animations:[...n.timeline.animations]},selection:{type:n.activeObjectType,id:n.activeObjectId},scene:{systems:n.systems.map(i=>({...Zt(i),frames:void 0})),colliders:n.colliders.map(TT),paths:Zt(n.paths),spines:Zt(n.spines)}})}function AD(n,e,t,i){const s=Math.max(1,i);let r=0;for(const o of n){const a=o.config,c=Math.max(0,Number(a.lifeMin)||0),l=Math.max(0,Number(a.lifeMax)||0),h=a.lifeMode==="fixed"?c:Math.max(c,l),u=a.mode==="stream"?a.streamBehavior==="loop"?zn(a,s).total/s:Math.max(1/s,Number(a.duration)||0):0;let d=Math.max(0,Number(a.delay)||0)+u+h;a.mode==="stream"&&a.streamBehavior==="loop"&&(d=Math.max(0,Number(a.delay)||0)+zn(a,s).total/s),r=Math.max(r,d)}for(const o of t){const a=o.animations.find(c=>c.name===o.selectedAnimation);a&&(r=Math.max(r,Math.max(0,Number(o.timeOffset)||0)+Math.max(0,a.duration||0)))}for(const o of e)o.followPath&&o.followPathId&&(r=Math.max(r,Math.max(0,o.followDuration)||0));return kS(r,s)}function ID(){return`SpineParticle-${new Date().toISOString().replace(/[-:]/g,"").replace(/\.\d{3}Z$/,"").replace("T","-")}.json`}function ET(n){const e=MD(n),t=new Blob([JSON.stringify(e,null,2)],{type:"application/json;charset=utf-8"}),i=URL.createObjectURL(t),s=document.createElement("a");return s.href=i,s.download=ID(),document.body.appendChild(s),s.click(),s.remove(),setTimeout(()=>URL.revokeObjectURL(i),0),e}function CT(n){let e;try{e=JSON.parse(n)}catch{throw new Error(Ye("errors.invalidJson"))}const t=e;if(t.format!==wT)throw new Error(Ye("errors.invalidConfigFormat"));if(t.version!==ST)throw new Error(Ye("errors.unsupportedConfigVersion",{version:t.version??Ye("export.unknown")}));if(!t.scene||!Array.isArray(t.scene.systems)||!Array.isArray(t.scene.colliders)||!Array.isArray(t.scene.paths)||!Array.isArray(t.scene.spines))throw new Error(Ye("errors.missingScene"));return t}async function PD(n){const e=new Map,t=s=>{const r=s==="/particles/star.png"?"/images/star.png":s==="/trails/trail.png"?"/images/trail.png":s||"/images/star.png";let o=e.get(r);return o||(o=it.fromURL(r).then(a=>Ur(a)),e.set(r,o)),o},i=await t("/images/star.png");await Promise.all(n.map(async s=>{var o;const r=lr(s.config);r.texture=i,await Promise.all(r.imageResources.map(async a=>{a.texture=await t(a.previewUrl||"/images/star.png"),await Promise.all(a.sequenceFrames.map(async c=>{c.texture=await t(c.previewUrl||a.previewUrl||"/images/star.png")}))})),await Promise.all(r.trailResources.map(async a=>{a.texture=await t(a.previewUrl||"/images/trail.png")})),r.trailTexture=((o=r.trailResources[0])==null?void 0:o.texture)||null,s.frames=[]}))}async function RD(n){const e=new Map;try{for(const t of n){if(!t.sourceBundle)continue;const i=await ED(t.sourceBundle);e.set(t.id,await xT(i.skeleton,i.atlas,i.textures))}return e}catch(t){for(const i of e.values())for(const s of i.textures)s.destroy(!0);throw t}}function kD(n,e){const t=(e==null?void 0:e.type)||"particle",i=Number(e==null?void 0:e.id)||0;(t==="particle"?n.systems.some(r=>r.id===i):t==="collision"?n.colliders.some(r=>r.id===i):t==="path"?n.paths.some(r=>r.id===i):n.spines.some(r=>r.id===i))?n.selectSceneObject(t,i):n.systems[0]?n.selectSceneObject("particle",n.systems[0].id):n.colliders[0]?n.selectSceneObject("collision",n.colliders[0].id):n.paths[0]?n.selectSceneObject("path",n.paths[0].id):n.spines[0]?n.selectSceneObject("spine",n.spines[0].id):(n.activeObjectType="particle",n.activeObjectId=0,n.activeId=0)}async function FD(n,e){var d,f,m,p,g,v,b,y,x;const t=CT(JSON.stringify(e)),i=Zt(t.scene.systems),s=t.scene.colliders.map(TT),r=Zt(t.scene.paths),o=Zt(t.scene.spines);for(const _ of o)_.sourceBundle==null&&(_.sourceBundle=null),_.dataVersion==null&&(_.dataVersion=""),Array.isArray(_.slots)||(_.slots=[]),typeof _.selectedBone!="string"&&(_.selectedBone=""),typeof _.selectedSlot!="string"&&(_.selectedSlot="");await PD(i);const a=await RD(o),c=new Map(n.spines.map(_=>[_.id,_.assetVersion]));for(const _ of n.spines)yc(_.id);n.systems=i,n.colliders=s,n.paths=r,n.spines=o,Object.assign(n.editor,Zt(t.editor||{}));const l=t.settings;if(l)for(const _ of["backgroundX","backgroundY","backgroundOpacity","backgroundImageName","backgroundImageData","showGrid"])Object.prototype.hasOwnProperty.call(l,_)&&(n.settings[_]=l[_]);n.settings.exportSettings=AS((d=t.settings)==null?void 0:d.exportSettings),n.settings.undoLimit=Math.min(200,Math.max(1,Math.round(Number(n.settings.undoLimit)||20))),n.timeline.fps=Math.max(1,Math.round(Number((f=t.timeline)==null?void 0:f.fps)||30));const h=Math.max(1,Math.floor(Number((m=t.timeline)==null?void 0:m.playbackEnd)||Number.MAX_SAFE_INTEGER)),u=((p=t.timeline)==null?void 0:p.playbackEndAuto)??h>=AD(i,s,o,n.timeline.fps);n.timeline.abLoop=((g=t.timeline)==null?void 0:g.abLoop)===!0,n.timeline.loop=((v=t.timeline)==null?void 0:v.loop)!==!1,n.timeline.animations=Array.isArray((b=t.timeline)==null?void 0:b.animations)&&t.timeline.animations.length?[...new Set(t.timeline.animations.filter(_=>typeof _=="string"&&_.trim()).map(_=>_.trim()))]:["animation"];for(const _ of n.spines){const E=a.get(_.id);if(_.assetVersion=Math.max(Number(_.assetVersion)||0,c.get(_.id)||0)+1,!E){_.status="empty",_.error=_.skeletonFileName?Ye("errors.missingEmbeddedSpine"):"",_.animations=[],_.bones=[],_.slots=[],_.selectedAnimation="";continue}cd(_.id,E),_.dataVersion=E.dataVersion,_.animations=E.animations,_.bones=E.bones,_.slots=E.slots,E.animations.some(S=>S.name===_.selectedAnimation)||(_.selectedAnimation=((y=E.animations[0])==null?void 0:y.name)||""),_.status="ready",_.error=""}n.syncSceneSequences(),kD(n,t.selection),n.timeline.playbackStart=Math.max(0,Math.floor(Number((x=t.timeline)==null?void 0:x.playbackStart)||0)),n.timeline.playbackEnd=h,n.timeline.frame=0,n.timeline.recorded=!1,n.timeline.playing=!0;for(const _ of n.systems)n.timeline.animations.includes(_.animation)||(_.animation=n.timeline.animations[0]);return n.recalcTotalFrames(),u&&(n.timeline.playbackEnd=n.timeline.totalFrames-1),n.timeline.frame=n.timeline.playbackStart,t}async function MT(n,e){return FD(n,CT(e))}async function LD(n,e){if(!/\.json$/i.test(e.name))throw new Error(Ye("errors.chooseJsonConfig"));return MT(n,await e.text())}const md=Go({undoCount:0});let xu=null,tr=null,zr=[],pl=null,ir=null,wu=!1;function Jg(n){return{systems:n.systems.map(t=>{const i=Zt(t);return i.frames=void 0,i}),colliders:Zt(n.colliders),paths:Zt(n.paths),spines:Zt(n.spines),animations:[...n.timeline.animations],settings:_T(n.settings)}}function Zg(n){return JSON.stringify(n,(e,t)=>e==="texture"||e==="trailTexture"?null:typeof t=="string"&&t.startsWith("data:")&&t.length>256?`${t.length}:${t.slice(0,96)}:${t.slice(-48)}`:t)}function AT(n,e=Jg(n),t=Zg(e)){const i=new Map;for(const s of e.spines){const r=hF(s.id);r&&i.set(s.id,r)}return{data:e,signature:t,spineAssets:i}}function Su(n){if(n){for(const e of n.spineAssets.values())lF(e);n.spineAssets.clear()}}function IT(n){for(;zr.length>n;)Su(zr.shift()||null);md.undoCount=zr.length}function PT(){const n=xu;if(!n||!tr||wu)return;const e=Jg(n),t=Zg(e);t!==tr.signature&&(zr.push(tr),tr=AT(n,e,t),IT(n.settings.undoLimit))}function OD(){wu||(ir&&clearTimeout(ir),ir=setTimeout(()=>{ir=null,PT()},250))}function $D(n){const e=n.activeObjectId;return n.activeObjectType==="particle"?n.systems.some(t=>t.id===e):n.activeObjectType==="collision"?n.colliders.some(t=>t.id===e):n.activeObjectType==="path"?n.paths.some(t=>t.id===e):n.spines.some(t=>t.id===e)}function ND(n){var t,i;if(!$D(n)){const s=n.systems[0],r=n.colliders[0],o=n.paths[0],a=n.spines[0];s?(n.activeObjectType="particle",n.activeObjectId=s.id):r?(n.activeObjectType="collision",n.activeObjectId=r.id):o?(n.activeObjectType="path",n.activeObjectId=o.id):(n.activeObjectType="spine",n.activeObjectId=(a==null?void 0:a.id)||0)}const e=n.activeObjectType==="particle"?n.systems.find(s=>s.id===n.activeObjectId):n.systems.find(s=>s.id===n.activeId);n.activeId=(e==null?void 0:e.id)||((t=n.systems[0])==null?void 0:t.id)||0,n.timeline.animation=(e==null?void 0:e.animation)||((i=n.systems[0])==null?void 0:i.animation)||n.timeline.animations[0]||"animation"}function DD(n,e){const t=tr;wu=!0;try{for(const i of n.spines)yc(i.id);n.systems=Zt(e.data.systems),n.colliders=Zt(e.data.colliders),n.paths=Zt(e.data.paths),n.spines=Zt(e.data.spines),n.timeline.animations=[...e.data.animations],Object.assign(n.settings,Zt(e.data.settings));for(const[i,s]of e.spineAssets)cd(i,s);for(const i of n.systems)i.frames=[];n.timeline.recorded=!1,n.timeline.playing=!1,ND(n),n.recalcTotalFrames(),tr=e}finally{wu=!1,Su(t)}}function BD(n){if(!(xu===n&&pl)){pl==null||pl(),ir&&clearTimeout(ir),Su(tr);for(const e of zr)Su(e);zr=[],xu=n,tr=AT(n),md.undoCount=0,pl=ei(()=>Zg(Jg(n)),OD,{flush:"post"})}}function UD(n,e){const t=Math.min(200,Math.max(1,Math.round(Number(e)||20)));n.settings.undoLimit=t,IT(t)}function RT(){const n=xu;if(!n||!tr)return!1;ir&&(clearTimeout(ir),ir=null),PT();const e=zr.pop();return e?(DD(n,e),md.undoCount=zr.length,!0):!1}function VD(n){const e=n instanceof HTMLElement?n:null;return!!(e!=null&&e.closest('input, textarea, select, [contenteditable="true"]'))}function XD(n){function e(i){var r;const s=i.target instanceof Node?i.target:null;n.canvasFocused.value=!!s&&!!((r=n.canvasElement.value)!=null&&r.contains(s))}function t(i){const s=i.key.toLowerCase();if((i.ctrlKey||i.metaKey)&&!i.altKey&&s==="s"){i.preventDefault(),i.stopPropagation(),n.save();return}if((i.ctrlKey||i.metaKey)&&!i.altKey&&s==="z"){i.preventDefault(),i.stopPropagation(),n.undo();return}if(i.ctrlKey||i.metaKey||i.altKey||VD(i.target))return;if(s==="d"){i.preventDefault(),n.togglePlay();return}if(s==="s"){i.preventDefault(),n.toStart();return}if(!n.canvasFocused.value)return;const r={q:"",w:"translate",e:"rotate",r:"scale"};s in r&&(i.preventDefault(),n.setTool(r[s]))}Sn(()=>{document.addEventListener("pointerdown",e,!0),window.addEventListener("keydown",t,!0)}),Za(()=>{document.removeEventListener("pointerdown",e,!0),window.removeEventListener("keydown",t,!0)})}const YD={class:"help-dialog",role:"dialog","aria-modal":"true","aria-labelledby":"help-title"},GD={class:"help-head"},HD={id:"help-title"},jD=["aria-label","title"],WD={class:"help-body"},zD={class:"help-section help-start"},qD={class:"help-note"},KD={class:"help-grid"},JD={class:"help-section"},ZD={class:"help-list"},QD={class:"help-section"},e3={class:"shortcut-list"},t3={class:"help-note"},i3={class:"help-doc-title"},n3=["aria-expanded"],s3={class:"mtitle"},r3={class:"caret"},o3={class:"help-module-body"},a3={class:"help-list"},l3=["aria-expanded"],c3={class:"mtitle"},h3={class:"caret"},u3={class:"help-module-body"},d3={class:"help-list"},f3=["aria-expanded"],m3={class:"mtitle"},p3={class:"caret"},g3={class:"help-module-body"},v3={class:"help-list"},y3=["aria-expanded"],b3={class:"mtitle"},x3={class:"caret"},w3={class:"help-module-body"},S3={class:"help-list"},_3=["aria-expanded"],T3={class:"mtitle"},E3={class:"caret"},C3={class:"help-module-body"},M3={class:"help-list"},A3=["aria-expanded"],I3={class:"mtitle"},P3={class:"caret"},R3={class:"help-module-body"},k3={class:"help-list"},F3=["aria-expanded"],L3={class:"mtitle"},O3={class:"caret"},$3={class:"help-module-body"},N3={class:"help-list"},D3=["aria-expanded"],B3={class:"mtitle"},U3={class:"caret"},V3={class:"help-module-body"},X3={class:"help-list"},Y3=["aria-expanded"],G3={class:"mtitle"},H3={class:"caret"},j3={class:"help-module-body"},W3={class:"connector-intro"},z3={class:"help-list"},q3={class:"help-section help-export"},K3=qt({__name:"HelpDialog",props:{show:{type:Boolean}},emits:["close"],setup(n,{emit:e}){const t=e,i=De(Array.from({length:9},()=>!1));function s(){t("close")}function r(o){o.key==="Escape"&&s()}return Sn(()=>window.addEventListener("keydown",r)),eo(()=>window.removeEventListener("keydown",r)),(o,a)=>n.show?(Q(),te("div",{key:0,class:"help-overlay",role:"presentation",onClick:tt(s,["self"])},[w("section",YD,[w("header",GD,[w("div",null,[w("h2",HD,k(o.$t("help.title")),1),w("p",null,k(o.$t("help.subtitle")),1)]),w("button",{class:"help-close","aria-label":o.$t("help.close"),title:o.$t("help.closeShort"),onClick:s},"✕",8,jD)]),w("div",WD,[w("section",zD,[w("h3",null,k(o.$t("help.quickStart")),1),w("ol",null,[w("li",null,k(o.$t("help.stepCreate")),1),w("li",null,k(o.$t("help.stepEdit")),1),w("li",null,k(o.$t("help.stepPreview")),1),w("li",null,k(o.$t("help.stepExport")),1)]),w("p",qD,k(o.$t("help.quickNote")),1)]),w("div",KD,[w("section",JD,[w("h3",null,k(o.$t("help.commonOps")),1),w("dl",ZD,[w("div",null,[w("dt",null,k(o.$t("help.eye")),1),w("dd",null,k(o.$t("help.eyeDesc")),1)]),w("div",null,[a[9]||(a[9]=w("dt",null,"+Copy",-1)),w("dd",null,k(o.$t("help.copyDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("toolbar.background")),1),w("dd",null,k(o.$t("help.backgroundDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("toolbar.settings")),1),w("dd",null,k(o.$t("help.settingsDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("help.undoShortcut")),1),w("dd",null,k(o.$t("help.undoDesc")),1)]),w("div",null,[a[10]||(a[10]=w("dt",null,"Spine Bone",-1)),w("dd",null,k(o.$t("help.spineBoneDesc")),1)])])]),w("section",QD,[w("h3",null,k(o.$t("help.shortcuts")),1),w("div",e3,[w("div",null,[a[11]||(a[11]=w("kbd",null,"Ctrl/⌘",-1)),a[12]||(a[12]=w("span",null,"+",-1)),a[13]||(a[13]=w("kbd",null,"Z",-1)),w("em",null,k(o.$t("help.undoShortcut")),1)]),w("div",null,[a[14]||(a[14]=w("kbd",null,"Ctrl/⌘",-1)),a[15]||(a[15]=w("span",null,"+",-1)),a[16]||(a[16]=w("kbd",null,"S",-1)),w("em",null,k(o.$t("help.saveShortcut")),1)]),w("div",null,[a[17]||(a[17]=w("kbd",null,"Q",-1)),w("em",null,k(o.$t("help.panShortcut")),1)]),w("div",null,[a[18]||(a[18]=w("kbd",null,"W",-1)),w("em",null,k(o.$t("help.translateShortcut")),1)]),w("div",null,[a[19]||(a[19]=w("kbd",null,"E",-1)),w("em",null,k(o.$t("help.rotateShortcut")),1)]),w("div",null,[a[20]||(a[20]=w("kbd",null,"R",-1)),w("em",null,k(o.$t("help.scaleShortcut")),1)]),w("div",null,[a[21]||(a[21]=w("kbd",null,"D",-1)),w("em",null,k(o.$t("help.playShortcut")),1)]),w("div",null,[a[22]||(a[22]=w("kbd",null,"S",-1)),w("em",null,k(o.$t("help.startShortcut")),1)])]),w("p",t3,k(o.$t("help.shortcutNote")),1)])]),w("div",i3,k(o.$t("help.modules")),1),w("section",{class:Pe(["help-section help-module",{open:i.value[0]}])},[w("button",{type:"button",class:"help-module-head","aria-expanded":i.value[0]?"true":"false",onClick:a[0]||(a[0]=c=>i.value[0]=!i.value[0])},[a[23]||(a[23]=w("span",{class:"mnum"},"1",-1)),w("span",s3,k(o.$t("help.configTitle")),1),w("span",r3,k(i.value[0]?"▾":"▸"),1)],8,n3),pe(w("div",o3,[w("dl",a3,[w("div",null,[w("dt",null,k(o.$t("config.save")),1),w("dd",null,k(o.$t("help.saveConfigDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("config.load")),1),w("dd",null,k(o.$t("help.loadConfigDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("config.selectPreset")),1),w("dd",null,k(o.$t("help.presetDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("help.configScope")),1),w("dd",null,k(o.$t("help.configScopeDesc")),1)])])],512),[[Fi,i.value[0]]])],2),w("section",{class:Pe(["help-section help-module",{open:i.value[1]}])},[w("button",{type:"button",class:"help-module-head","aria-expanded":i.value[1]?"true":"false",onClick:a[1]||(a[1]=c=>i.value[1]=!i.value[1])},[a[24]||(a[24]=w("span",{class:"mnum"},"2",-1)),w("span",c3,k(o.$t("help.sceneTitle")),1),w("span",h3,k(i.value[1]?"▾":"▸"),1)],8,l3),pe(w("div",u3,[w("dl",d3,[w("div",null,[w("dt",null,k(o.$t("scene.particle")),1),w("dd",null,k(o.$t("help.particleDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("scene.collision")),1),w("dd",null,k(o.$t("help.colliderDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("scene.path")),1),w("dd",null,k(o.$t("help.pathDesc")),1)]),w("div",null,[a[25]||(a[25]=w("dt",null,"Spine",-1)),w("dd",null,k(o.$t("help.spineDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("help.commonOps")),1),w("dd",null,k(o.$t("help.sceneCommonDesc")),1)])])],512),[[Fi,i.value[1]]])],2),w("section",{class:Pe(["help-section help-module",{open:i.value[2]}])},[w("button",{type:"button",class:"help-module-head","aria-expanded":i.value[2]?"true":"false",onClick:a[2]||(a[2]=c=>i.value[2]=!i.value[2])},[a[26]||(a[26]=w("span",{class:"mnum"},"3",-1)),w("span",m3,k(o.$t("emission.title")),1),w("span",p3,k(i.value[2]?"▾":"▸"),1)],8,f3),pe(w("div",g3,[w("dl",v3,[w("div",null,[w("dt",null,k(o.$t("emission.stream")),1),w("dd",null,k(o.$t("help.emissionDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("emission.burst")),1),w("dd",null,k(o.$t("help.burstDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("emission.delay")),1),w("dd",null,k(o.$t("help.delayDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("modifiers.showShape")),1),w("dd",null,k(o.$t("help.loopNote")),1)])])],512),[[Fi,i.value[2]]])],2),w("section",{class:Pe(["help-section help-module",{open:i.value[3]}])},[w("button",{type:"button",class:"help-module-head","aria-expanded":i.value[3]?"true":"false",onClick:a[3]||(a[3]=c=>i.value[3]=!i.value[3])},[a[27]||(a[27]=w("span",{class:"mnum"},"4",-1)),w("span",b3,k(o.$t("emission.shapeTitle")),1),w("span",x3,k(i.value[3]?"▾":"▸"),1)],8,y3),pe(w("div",w3,[w("dl",S3,[w("div",null,[w("dt",null,k(o.$t("emission.shape")),1),w("dd",null,k(o.$t("help.shapeDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("emission.emissionAngle")),1),w("dd",null,k(o.$t("help.angleDesc")),1)])])],512),[[Fi,i.value[3]]])],2),w("section",{class:Pe(["help-section help-module",{open:i.value[4]}])},[w("button",{type:"button",class:"help-module-head","aria-expanded":i.value[4]?"true":"false",onClick:a[4]||(a[4]=c=>i.value[4]=!i.value[4])},[a[28]||(a[28]=w("span",{class:"mnum"},"5",-1)),w("span",T3,k(o.$t("attributes.title")),1),w("span",E3,k(i.value[4]?"▾":"▸"),1)],8,_3),pe(w("div",C3,[w("dl",M3,[w("div",null,[w("dt",null,k(o.$t("attributes.initialParams")),1),w("dd",null,k(o.$t("help.initialDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("attributes.lifecycleTitle")),1),w("dd",null,k(o.$t("help.overLifeDesc")),1)])])],512),[[Fi,i.value[4]]])],2),w("section",{class:Pe(["help-section help-module",{open:i.value[5]}])},[w("button",{type:"button",class:"help-module-head","aria-expanded":i.value[5]?"true":"false",onClick:a[5]||(a[5]=c=>i.value[5]=!i.value[5])},[a[29]||(a[29]=w("span",{class:"mnum"},"6",-1)),w("span",I3,k(o.$t("appearance.title")),1),w("span",P3,k(i.value[5]?"▾":"▸"),1)],8,A3),pe(w("div",R3,[w("dl",k3,[w("div",null,[w("dt",null,k(o.$t("appearance.opacity")),1),w("dd",null,k(o.$t("help.alphaDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("appearance.imageResources")),1),w("dd",null,k(o.$t("help.imageDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("image.sequence")),1),w("dd",null,k(o.$t("help.sequenceDesc")),1)])])],512),[[Fi,i.value[5]]])],2),w("section",{class:Pe(["help-section help-module",{open:i.value[6]}])},[w("button",{type:"button",class:"help-module-head","aria-expanded":i.value[6]?"true":"false",onClick:a[6]||(a[6]=c=>i.value[6]=!i.value[6])},[a[30]||(a[30]=w("span",{class:"mnum"},"7",-1)),w("span",L3,k(o.$t("modifiers.title")),1),w("span",O3,k(i.value[6]?"▾":"▸"),1)],8,F3),pe(w("div",$3,[w("dl",N3,[w("div",null,[w("dt",null,k(o.$t("modifiers.enableNoise")),1),w("dd",null,k(o.$t("help.noiseDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("modifiers.enableGravity"))+" / "+k(o.$t("modifiers.enableWind")),1),w("dd",null,k(o.$t("help.gravityDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("modifiers.enableForceField"))+" / "+k(o.$t("modifiers.enableVortex"))+" / "+k(o.$t("modifiers.enableAttraction")),1),w("dd",null,k(o.$t("help.forceDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("modifiers.enableTrail")),1),w("dd",null,k(o.$t("help.trailDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("modifiers.enableFollow")),1),w("dd",null,k(o.$t("help.followDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("modifiers.enableCollision"))+" / "+k(o.$t("modifiers.damping")),1),w("dd",null,k(o.$t("help.collisionDesc")),1)])])],512),[[Fi,i.value[6]]])],2),w("section",{class:Pe(["help-section help-module",{open:i.value[7]}])},[w("button",{type:"button",class:"help-module-head","aria-expanded":i.value[7]?"true":"false",onClick:a[7]||(a[7]=c=>i.value[7]=!i.value[7])},[a[31]||(a[31]=w("span",{class:"mnum"},"8",-1)),w("span",B3,k(o.$t("export.title")),1),w("span",U3,k(i.value[7]?"▾":"▸"),1)],8,D3),pe(w("div",V3,[w("dl",X3,[w("div",null,[w("dt",null,k(o.$t("export.imagesPath")),1),w("dd",null,k(o.$t("help.exportDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("export.spineVersion")),1),a[32]||(a[32]=w("dd",null,"3.8 / 4.0 / 4.1 / 4.2 / 4.3",-1))]),w("div",null,[w("dt",null,k(o.$t("export.keyframeCurve")),1),w("dd",null,k(o.$t("export.bezierHelp")),1)]),w("div",null,[w("dt",null,k(o.$t("export.fps")),1),w("dd",null,k(o.$t("export.fpsHelp")),1)]),w("div",null,[w("dt",null,k(o.$t("export.title")),1),w("dd",null,k(o.$t("help.exportButtonsDesc")),1)])])],512),[[Fi,i.value[7]]])],2),w("section",{class:Pe(["help-section help-module help-connector",{open:i.value[8]}])},[w("button",{type:"button",class:"help-module-head","aria-expanded":i.value[8]?"true":"false",onClick:a[8]||(a[8]=c=>i.value[8]=!i.value[8])},[a[33]||(a[33]=w("span",{class:"mnum"},"9",-1)),w("span",G3,k(o.$t("help.connectorTitle")),1),w("span",H3,k(i.value[8]?"▾":"▸"),1)],8,Y3),pe(w("div",j3,[w("p",W3,k(o.$t("help.connectorIntro")),1),w("dl",z3,[w("div",null,[w("dt",null,k(o.$t("help.prerequisite")),1),w("dd",null,k(o.$t("help.prerequisiteDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("help.download")),1),a[34]||(a[34]=w("dd",null,[w("a",{class:"dl-link",href:"/downloads/connector/SpineParticleConnector-windows-x64.exe",download:""},[yt("Windows"),w("br"),w("small",null,"SpineParticleConnector-windows-x64.exe")]),w("a",{class:"dl-link",href:"/downloads/connector/SpineParticleConnector-macos-universal.zip",download:""},[yt("macOS (Universal)"),w("br"),w("small",null,"SpineParticleConnector-macos-universal.zip")])],-1))]),w("div",null,[w("dt",null,k(o.$t("help.webSide")),1),w("dd",null,k(o.$t("help.webSideDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("help.authorization")),1),w("dd",null,k(o.$t("help.authorizationDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("help.pathSetup")),1),w("dd",null,k(o.$t("help.pathSetupDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("help.downloadResult")),1),w("dd",null,k(o.$t("help.downloadResultDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("help.version")),1),w("dd",null,k(o.$t("help.versionDesc")),1)]),w("div",null,[w("dt",null,k(o.$t("help.security")),1),w("dd",null,k(o.$t("help.securityDesc")),1)])])],512),[[Fi,i.value[8]]])],2),w("section",q3,[w("h3",null,k(o.$t("help.differenceTitle")),1),w("p",null,k(o.$t("help.differenceDesc")),1)])])])])):_e("",!0)}}),li=(n,e)=>{const t=n.__vccOpts||n;for(const[i,s]of e)t[i]=s;return t},J3=li(K3,[["__scopeId","data-v-4bb9bc76"]]);function Na(n){const e=()=>{window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",e),window.removeEventListener("pointercancel",e)};window.addEventListener("pointermove",n),window.addEventListener("pointerup",e),window.addEventListener("pointercancel",e)}function Pn(n,e,t){const i=n.holder.value,s=n.app(),r=i.getBoundingClientRect(),o=Math.max(1e-4,n.store.editor.viewScale),a=e-r.left,c=t-r.top;return{x:(a-s.screen.width/2-n.store.editor.viewX)/o,y:-(c-s.screen.height*.5-n.store.editor.viewY)/o}}function Z3(n,e){const t=n.holder.value,i=n.app(),s=n.store,r=t.getBoundingClientRect(),o=e.clientX-r.left,a=e.clientY-r.top,c=e.deltaY<0?1.12:1/1.12,l=s.editor.viewScale,h=Math.max(.01,l*c),u=i.screen.width/2,d=i.screen.height*.5,f=s.editor.viewX,m=s.editor.viewY,p=(o-u-f)/l,g=(a-d-m)/l;s.editor.viewX=o-u-p*h,s.editor.viewY=a-d-g*h,s.editor.viewScale=h}function Q3(n,e,t){const i=n.store,s=i.editor.viewX,r=i.editor.viewY;Na(o=>{i.editor.viewX=s+(o.clientX-e),i.editor.viewY=r+(o.clientY-t)})}function kT(n,e){const t=Math.max(.01,n.store.editor.viewScale*e);n.store.editor.viewScale=t}function eB(n){kT(n,1.2)}function tB(n){kT(n,1/1.2)}function iB(n){n.store.editor.viewScale=1,n.store.editor.viewX=0,n.store.editor.viewY=0}function nB(n){n.store.editor.viewScale=1,n.store.editor.viewX=0,n.store.editor.viewY=0}function sB(n){n.store.settings.showGrid=!n.store.settings.showGrid}const rB={class:"topbar"},oB=["title"],aB=["disabled","title"],lB={class:"tool-group"},cB=["title"],hB=["title"],uB=["title"],dB=["title"],fB={class:"tool-group"},mB=["title"],pB=["title"],gB=["title"],vB=["title"],yB=["title"],bB=["title"],xB={key:0,class:"background-panel"},wB=["disabled"],SB=["title"],_B={class:"background-position-row"},TB=["aria-label"],EB=["aria-label"],CB={class:"background-opacity-row"},MB=["aria-label"],AB={class:"language-picker"},IB=["value","aria-label"],PB=["value"],RB=["title"],kB={class:"zoom-pct"},FB=qt({__name:"StageToolbar",props:{ctx:{},activeTool:{},showSettings:{type:Boolean},showHelp:{type:Boolean}},emits:["update:activeTool","update:showSettings","update:showHelp","clear-background","background-file"],setup(n,{emit:e}){const t=n,i=e,s=Wo(),{t:r,locale:o}=fn(),a=De(!1),c=De(null),l=Fe(()=>s.settings.backgroundImageName);function h(b){i("update:activeTool",t.activeTool===b?"":b)}function u(){a.value=!a.value,a.value&&i("update:showSettings",!1)}function d(){const b=!t.showSettings;i("update:showSettings",b),b&&(a.value=!1)}function f(){i("update:showHelp",!0),a.value=!1,i("update:showSettings",!1)}function m(b){i("background-file",b)}function p(b=!0){c.value&&(c.value.value=""),i("clear-background",b)}function g(){RT()}function v(b){const y=b.target.value;g_(y)}return(b,y)=>(Q(),te("div",rB,[w("button",{class:"settings-btn",onClick:d,title:I(r)("toolbar.settings")},k(I(r)("toolbar.settings")),9,oB),w("button",{class:"undo-btn",disabled:I(md).undoCount===0,onClick:g,title:I(r)("toolbar.undo")},"↶",8,aB),w("div",lB,[w("button",{class:Pe(["tool-btn",{on:n.activeTool===""}]),onClick:y[0]||(y[0]=x=>h("")),title:I(r)("toolbar.pan")},"✋",10,cB),w("button",{class:Pe(["tool-btn",{on:n.activeTool==="translate"}]),onClick:y[1]||(y[1]=x=>h("translate")),title:I(r)("toolbar.translate")},"✥",10,hB),w("button",{class:Pe(["tool-btn",{on:n.activeTool==="rotate"}]),onClick:y[2]||(y[2]=x=>h("rotate")),title:I(r)("toolbar.rotate")},"⟳",10,uB),w("button",{class:Pe(["tool-btn",{on:n.activeTool==="scale"}]),onClick:y[3]||(y[3]=x=>h("scale")),title:I(r)("toolbar.scale")},"⤢",10,dB)]),w("div",fB,[w("button",{class:"tool-btn",onClick:y[4]||(y[4]=x=>I(eB)(n.ctx)),title:I(r)("toolbar.zoomIn")},"+",8,mB),w("button",{class:"tool-btn",onClick:y[5]||(y[5]=x=>I(tB)(n.ctx)),title:I(r)("toolbar.zoomOut")},"-",8,pB),w("button",{class:"tool-btn",onClick:y[6]||(y[6]=x=>I(iB)(n.ctx)),title:I(r)("toolbar.fitView")},"⤢",8,gB),w("button",{class:Pe(["tool-btn",{on:I(s).settings.showGrid}]),onClick:y[7]||(y[7]=x=>I(sB)(n.ctx)),title:I(r)("toolbar.toggleGrid")},"▦",10,vB),w("button",{class:"tool-btn",onClick:y[8]||(y[8]=x=>I(nB)(n.ctx)),title:I(r)("toolbar.resetView")},"⟳",8,yB)]),w("div",{class:"background-menu",onClick:y[14]||(y[14]=tt(()=>{},["stop"]))},[w("button",{class:Pe(["background-btn",{on:a.value}]),title:I(r)("toolbar.backgroundSettings"),onClick:u},k(I(r)("toolbar.background")),11,bB),a.value?(Q(),te("div",xB,[w("button",{class:"background-upload",onClick:y[9]||(y[9]=x=>{var _;return(_=c.value)==null?void 0:_.click()})},k(l.value?I(r)("toolbar.changeBackground"):I(r)("toolbar.uploadBackground")),1),w("button",{class:"background-clear",disabled:!l.value,onClick:y[10]||(y[10]=x=>p())},k(I(r)("toolbar.clearBackground")),9,wB),w("input",{ref_key:"backgroundFileInput",ref:c,class:"background-file-input",type:"file",accept:"image/png,image/jpeg,image/webp",onChange:m},null,544),w("div",{class:"background-file-name",title:l.value},k(l.value||I(r)("toolbar.noBackground")),9,SB),w("div",_B,[w("label",null,[y[15]||(y[15]=w("span",null,"X",-1)),pe(w("input",{"onUpdate:modelValue":y[11]||(y[11]=x=>I(s).settings.backgroundX=x),type:"number",step:"1","aria-label":I(r)("toolbar.backgroundX")},null,8,TB),[[Je,I(s).settings.backgroundX,void 0,{number:!0}]])]),w("label",null,[y[16]||(y[16]=w("span",null,"Y",-1)),pe(w("input",{"onUpdate:modelValue":y[12]||(y[12]=x=>I(s).settings.backgroundY=x),type:"number",step:"1","aria-label":I(r)("toolbar.backgroundY")},null,8,EB),[[Je,I(s).settings.backgroundY,void 0,{number:!0}]])])]),w("label",CB,[w("span",null,k(I(r)("toolbar.opacity")),1),pe(w("input",{"onUpdate:modelValue":y[13]||(y[13]=x=>I(s).settings.backgroundOpacity=x),type:"range",min:"0",max:"1",step:"0.01","aria-label":I(r)("toolbar.backgroundOpacity")},null,8,MB),[[Je,I(s).settings.backgroundOpacity,void 0,{number:!0}]]),w("b",null,k(Math.round(I(s).settings.backgroundOpacity*100))+"%",1)])])):_e("",!0)]),w("label",AB,[w("span",null,k(I(r)("language.label")),1),w("select",{value:I(o),"aria-label":I(r)("language.label"),onChange:v},[(Q(!0),te(Me,null,It(I(f_),x=>(Q(),te("option",{key:x.code,value:x.code},k(x.label),9,PB))),128))],40,IB)]),w("button",{class:Pe(["help-btn",{on:n.showHelp}]),title:I(r)("toolbar.openHelp"),onClick:f},k(I(r)("toolbar.help")),11,RB),w("span",kB,k(Math.round(I(s).editor.viewScale*100))+"%",1)]))}}),LB=li(FB,[["__scopeId","data-v-6411b316"]]),OB={key:0,class:"settings-panel"},$B={class:"sp-head"},NB={class:"sp-section-title"},DB={class:"sp-switch-row"},BB={class:"sp-switch-control"},UB=["aria-label"],VB={class:"sp-section-title"},XB={class:"sp-row"},YB=["aria-label"],GB={class:"sp-section-title"},HB={class:"sp-chk"},jB={class:"sp-chk"},WB={class:"sp-row"},zB=["aria-label"],qB={class:"sp-row"},KB=["aria-label"],JB={class:"sp-chk"},ZB={class:"sp-chk"},QB={class:"sp-row"},e4={class:"sp-row"},t4={class:"sp-row"},i4={class:"sp-hex"},n4={class:"sp-chk"},s4={class:"sp-cache-note"},r4=qt({__name:"StageSettingsPanel",props:{show:{type:Boolean}},emits:["close"],setup(n,{emit:e}){const t=e,i=Wo(),{t:s}=fn();function r(a){UD(i,Number(a.target.value))}function o(){i.settings.bonePointDrawSize=Math.min(10,Math.max(.1,Number(i.settings.bonePointDrawSize)||1)),i.settings.boneAxisDrawSize=Math.min(10,Math.max(.1,Number(i.settings.boneAxisDrawSize)||2))}return(a,c)=>n.show?(Q(),te("div",OB,[w("div",$B,[yt(k(I(s)("settings.title"))+" ",1),w("button",{class:"sp-close",onClick:c[0]||(c[0]=l=>t("close"))},"✕")]),w("div",NB,k(I(s)("settings.layout")),1),w("label",DB,[w("span",null,k(I(s)("settings.parameterPanelPosition")),1),w("span",BB,[pe(w("input",{type:"checkbox","onUpdate:modelValue":c[1]||(c[1]=l=>I(i).settings.parameterPanelOnRight=l),"aria-label":I(s)("settings.panelOnRight")},null,8,UB),[[_t,I(i).settings.parameterPanelOnRight]]),c[15]||(c[15]=w("span",{class:"sp-switch-ui","aria-hidden":"true"},null,-1)),w("b",null,k(I(i).settings.parameterPanelOnRight?I(s)("common.right"):I(s)("common.left")),1)])]),c[16]||(c[16]=w("div",{class:"sp-divider"},null,-1)),w("div",VB,k(I(s)("settings.history")),1),w("label",XB,[w("span",null,k(I(s)("settings.maxUndo")),1),pe(w("input",{class:"sp-num sp-undo-limit",type:"number",min:"1",max:"200","onUpdate:modelValue":c[2]||(c[2]=l=>I(i).settings.undoLimit=l),"aria-label":I(s)("settings.maxUndo"),onChange:r},null,40,YB),[[Je,I(i).settings.undoLimit,void 0,{number:!0}]])]),c[17]||(c[17]=w("div",{class:"sp-divider"},null,-1)),w("div",GB,k(I(s)("settings.canvasGuides")),1),w("label",HB,[pe(w("input",{type:"checkbox","onUpdate:modelValue":c[3]||(c[3]=l=>I(i).settings.showEmitter=l)},null,512),[[_t,I(i).settings.showEmitter]]),yt(k(I(s)("settings.emitter")),1)]),w("label",jB,[pe(w("input",{type:"checkbox","onUpdate:modelValue":c[4]||(c[4]=l=>I(i).settings.showBones=l)},null,512),[[_t,I(i).settings.showBones]]),yt(k(I(s)("settings.bones")),1)]),I(i).settings.showBones?(Q(),te(Me,{key:0},[w("label",WB,[w("span",null,k(I(s)("settings.bonePointSize")),1),pe(w("input",{class:"sp-num",type:"number",min:"0.1",max:"10",step:"0.1","onUpdate:modelValue":c[5]||(c[5]=l=>I(i).settings.bonePointDrawSize=l),"aria-label":I(s)("settings.bonePointSize"),onChange:o},null,40,zB),[[Je,I(i).settings.bonePointDrawSize,void 0,{number:!0}]])]),w("label",qB,[w("span",null,k(I(s)("settings.boneAxisSize")),1),pe(w("input",{class:"sp-num",type:"number",min:"0.1",max:"10",step:"0.1","onUpdate:modelValue":c[6]||(c[6]=l=>I(i).settings.boneAxisDrawSize=l),"aria-label":I(s)("settings.boneAxisSize"),onChange:o},null,40,KB),[[Je,I(i).settings.boneAxisDrawSize,void 0,{number:!0}]])])],64)):_e("",!0),w("label",JB,[pe(w("input",{type:"checkbox","onUpdate:modelValue":c[7]||(c[7]=l=>I(i).settings.showSkinMesh=l)},null,512),[[_t,I(i).settings.showSkinMesh]]),yt(k(I(s)("settings.skinMesh")),1)]),c[18]||(c[18]=w("div",{class:"sp-divider"},null,-1)),w("label",ZB,[pe(w("input",{type:"checkbox","onUpdate:modelValue":c[8]||(c[8]=l=>I(i).settings.tickEnabled=l)},null,512),[[_t,I(i).settings.tickEnabled]]),yt(k(I(s)("settings.enableTicks")),1)]),I(i).settings.tickEnabled?(Q(),te(Me,{key:1},[w("label",QB,[w("span",null,k(I(s)("settings.tickFontSize")),1),pe(w("input",{type:"range",min:"8",max:"40",step:"1","onUpdate:modelValue":c[9]||(c[9]=l=>I(i).settings.axisFontSize=l)},null,512),[[Je,I(i).settings.axisFontSize,void 0,{number:!0}]]),pe(w("input",{type:"number",min:"8",max:"40","onUpdate:modelValue":c[10]||(c[10]=l=>I(i).settings.axisFontSize=l),class:"sp-num"},null,512),[[Je,I(i).settings.axisFontSize,void 0,{number:!0}]])]),w("label",e4,[w("span",null,k(I(s)("settings.tickWidth")),1),pe(w("input",{type:"range",min:"1",max:"5",step:"0.5","onUpdate:modelValue":c[11]||(c[11]=l=>I(i).settings.tickWidth=l)},null,512),[[Je,I(i).settings.tickWidth,void 0,{number:!0}]]),pe(w("input",{type:"number",min:"1",max:"5","onUpdate:modelValue":c[12]||(c[12]=l=>I(i).settings.tickWidth=l),class:"sp-num"},null,512),[[Je,I(i).settings.tickWidth,void 0,{number:!0}]])]),w("label",t4,[w("span",null,k(I(s)("settings.axisColor")),1),pe(w("input",{type:"color","onUpdate:modelValue":c[13]||(c[13]=l=>I(i).settings.axisColor=l),class:"sp-colr"},null,512),[[Je,I(i).settings.axisColor]]),w("span",i4,k(I(i).settings.axisColor),1)]),w("label",n4,[pe(w("input",{type:"checkbox","onUpdate:modelValue":c[14]||(c[14]=l=>I(i).settings.showAxisLabels=l)},null,512),[[_t,I(i).settings.showAxisLabels]]),yt(k(I(s)("settings.showAxisLabels")),1)])],64)):_e("",!0),w("div",s4,k(I(s)("settings.cacheNote")),1)])):_e("",!0)}}),o4=li(r4,[["__scopeId","data-v-c1ded952"]]);class vm{constructor(){T(this,"sprite",null);T(this,"texture",null);T(this,"loadVersion",0)}createSprite(e){const t=new to(it.EMPTY);return t.anchor.set(.5),t.visible=!1,e.addChild(t),this.sprite=t,t}applyTransform(e,t,i){this.sprite&&(this.sprite.position.set(Number(e)||0,-(Number(t)||0)),this.sprite.alpha=Math.min(1,Math.max(0,Number(i)||0)))}async syncTexture(e){const t=++this.loadVersion;if(!e){this.sprite&&(this.sprite.texture=it.EMPTY,this.sprite.visible=!1),this.texture&&this.texture.destroy(!0),this.texture=null;return}try{const i=await it.fromURL(e);if(t!==this.loadVersion||!this.sprite){i.destroy(!0);return}const s=this.texture;this.texture=i,this.sprite.texture=i,this.sprite.visible=!0,s&&s.destroy(!0)}catch(i){console.error("背景图恢复失败",i)}}static clearStoreBackground(e,t){e.settings.backgroundImageData="",e.settings.backgroundImageName="",t&&(e.settings.backgroundX=0,e.settings.backgroundY=0,e.settings.backgroundOpacity=1)}static async handleFileChange(e,t){var r;const i=t.target,s=(r=i.files)==null?void 0:r[0];if(s)try{e.settings.backgroundImageData=await Ph(s),e.settings.backgroundImageName=s.name}catch(o){console.error("背景图加载失败",o)}finally{i.value=""}}destroy(){this.loadVersion++,this.texture&&this.texture.destroy(!0),this.texture=null,this.sprite=null}}class a4{constructor(e){T(this,"selectedNodes",new Set);T(this,"suppressNextDoubleClick",!1);this.ctx=e}resetSelection(){this.selectedNodes.clear()}activePath(){const e=this.ctx.store;if(e.activeObjectType!=="path")return null;const t=e.paths.find(i=>i.id===e.activeObjectId)||null;return(t==null?void 0:t.visible)===!1?null:t}pathInsertIndex(e,t,i){if(e.points.length<2)return e.points.length;const s=e.closed?e.points.length:e.points.length-1;let r=e.points.length,o=1/0;for(let a=0;a<s;a++){const c=e.points[a],l=e.points[(a+1)%e.points.length],h=l.x-c.x,u=l.y-c.y,d=Math.max(1e-4,h*h+u*u),f=Math.min(1,Math.max(0,((t-c.x)*h+(i-c.y)*u)/d)),m=c.x+h*f,p=c.y+u*f,g=Math.hypot(t-m,i-p);g<o&&(o=g,r=a+1)}return r}onStageDoubleClick(e){const t=this.activePath();if(!t||!t.enabled)return;if(this.suppressNextDoubleClick){this.suppressNextDoubleClick=!1;return}const i=Pn(this.ctx,e.clientX,e.clientY),s=aa(t,i.x,i.y),r=9/Math.max(.01,this.ctx.store.editor.viewScale),o=t.points.findIndex(c=>Math.hypot(c.x-s.x,c.y-s.y)<=r);if(o>=0){t.points.splice(o,1),this.selectedNodes.clear();return}const a=this.pathInsertIndex(t,s.x,s.y);t.points.splice(a,0,{x:s.x,y:s.y,inX:0,inY:0,outX:0,outY:0}),this.selectedNodes.clear(),this.selectedNodes.add(a)}onPointerDown(e){const t=this.activePath();if(!t||!t.enabled)return!1;const i=Pn(this.ctx,e.clientX,e.clientY),s=aa(t,i.x,i.y),r=9/Math.max(.01,this.ctx.store.editor.viewScale);if(e.detail>=2){if(t.points.findIndex(u=>Math.hypot(u.x-s.x,u.y-s.y)<=r)>=0)return!0;const l={x:s.x,y:s.y,inX:0,inY:0,outX:0,outY:0},h=this.pathInsertIndex(t,s.x,s.y);return t.points.splice(h,0,l),this.selectedNodes.clear(),this.selectedNodes.add(h),this.suppressNextDoubleClick=!0,Na(u=>{const d=Pn(this.ctx,u.clientX,u.clientY),f=aa(t,d.x,d.y);l.outX=f.x-l.x,l.outY=f.y-l.y,l.inX=-l.outX,l.inY=-l.outY}),!0}let o=null;for(const c of this.selectedNodes){const l=t.points[c];l&&(Math.hypot(l.x+l.inX-s.x,l.y+l.inY-s.y)<=r&&(o={index:c,side:"in"}),Math.hypot(l.x+l.outX-s.x,l.y+l.outY-s.y)<=r&&(o={index:c,side:"out"}))}if(o){const c=t.points[o.index],l=o.side==="in"?Math.hypot(c.outX,c.outY):Math.hypot(c.inX,c.inY);return Na(u=>{const d=Pn(this.ctx,u.clientX,u.clientY),f=aa(t,d.x,d.y),m=f.x-c.x,p=f.y-c.y;if(o.side==="in"?(c.inX=m,c.inY=p):(c.outX=m,c.outY=p),!u.altKey){const g=Math.max(1e-4,Math.hypot(m,p)),v=u.shiftKey?g:l;o.side==="in"?(c.outX=-m/g*v,c.outY=-p/g*v):(c.inX=-m/g*v,c.inY=-p/g*v)}}),!0}const a=t.points.findIndex(c=>Math.hypot(c.x-s.x,c.y-s.y)<=r);if(a>=0){if(e.altKey)return this.selectedNodes.delete(a),!0;e.ctrlKey||e.metaKey?this.selectedNodes.add(a):this.selectedNodes.has(a)||(this.selectedNodes.clear(),this.selectedNodes.add(a));const c=s,l=[...this.selectedNodes].map(u=>({index:u,x:t.points[u].x,y:t.points[u].y}));return Na(u=>{const d=Pn(this.ctx,u.clientX,u.clientY),f=aa(t,d.x,d.y);for(const m of l)t.points[m.index].x=m.x+f.x-c.x,t.points[m.index].y=m.y+f.y-c.y}),!0}if(e.altKey&&!e.ctrlKey&&!e.metaKey)return this.selectedNodes.clear(),!0;if(e.ctrlKey||e.metaKey||e.altKey){const c=s,l=e.altKey,h=u=>{const d=Pn(this.ctx,u.clientX,u.clientY),f=aa(t,d.x,d.y),m=Math.min(c.x,f.x),p=Math.max(c.x,f.x),g=Math.min(c.y,f.y),v=Math.max(c.y,f.y);t.points.forEach((b,y)=>{b.x>=m&&b.x<=p&&b.y>=g&&b.y<=v&&(l?this.selectedNodes.delete(y):this.selectedNodes.add(y))}),window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",h)};return window.addEventListener("pointerup",h),window.addEventListener("pointercancel",h),!0}return!1}}class l4{constructor(e,t){this.ctx=e,this.getTool=t}onColliderPointerDown(e){const t=this.ctx.store;if(t.activeObjectType!=="collision")return!1;const i=t.colliders.find(b=>b.id===t.activeObjectId);if(!(i!=null&&i.enabled)||i.visible===!1)return!1;const s=Pn(this.ctx,e.clientX,e.clientY),r=i.rotation*Math.PI/180,o=Math.cos(r),a=Math.sin(r),c=Math.max(1e-4,Math.abs(i.scaleX??1)),l=Math.max(1e-4,Math.abs(i.scaleY??1)),h=s.x-i.x,u=s.y-i.y,d=(o*h+a*u)/c,f=(-a*h+o*u)/l;if(!(i.shape==="circle"?Math.hypot(d,f)<=i.radius:i.shape==="ellipse"?Math.hypot(d/Math.max(1,i.radiusX),f/Math.max(1,i.radiusY))<=1:Math.abs(d)<=i.width*.5&&Math.abs(f)<=i.height*.5))return!1;const p=i.x,g=i.y,v=s;return Na(b=>{const y=Pn(this.ctx,b.clientX,b.clientY);i.x=p+y.x-v.x,i.y=g+y.y-v.y}),!0}onForceFieldDown(e){const t=this.ctx.store.systems.find(h=>h.id===this.ctx.store.activeId);if((t==null?void 0:t.visible)===!1)return!1;const i=t==null?void 0:t.config;if(!(i!=null&&i.forceField)||!i.showForceFieldShape||i.forceRadius<=0)return!1;const s=Pn(this.ctx,e.clientX,e.clientY);if(Math.hypot(s.x-i.forceCenterX,s.y-i.forceCenterY)>i.forceRadius)return!1;const o=i.forceCenterX,a=i.forceCenterY;this.ctx.holder.value&&(this.ctx.holder.value.style.cursor="grabbing");const c=h=>{const u=Pn(this.ctx,h.clientX,h.clientY);i.forceCenterX=o+u.x-s.x,i.forceCenterY=a+u.y-s.y},l=()=>{this.ctx.holder.value&&(this.ctx.holder.value.style.cursor=""),window.removeEventListener("pointermove",c),window.removeEventListener("pointerup",l),window.removeEventListener("pointercancel",l)};return window.addEventListener("pointermove",c),window.addEventListener("pointerup",l),window.addEventListener("pointercancel",l),e.preventDefault(),!0}onAttractionDown(e){const t=this.ctx.store.systems.find(u=>u.id===this.ctx.store.activeId);if((t==null?void 0:t.visible)===!1)return!1;const i=t==null?void 0:t.config;if(!(i!=null&&i.attraction)||!i.showAttractionShape)return!1;const s=Pn(this.ctx,e.clientX,e.clientY),r=Math.max(i.attractionRadius,12/Math.max(1e-4,this.ctx.store.editor.viewScale));if(Math.hypot(s.x-i.attractionCenterX,s.y-i.attractionCenterY)>r)return!1;const a=i.attractionCenterX,c=i.attractionCenterY;this.ctx.holder.value&&(this.ctx.holder.value.style.cursor="grabbing");const l=u=>{const d=Pn(this.ctx,u.clientX,u.clientY);i.attractionCenterX=a+d.x-s.x,i.attractionCenterY=c+d.y-s.y},h=()=>{this.ctx.holder.value&&(this.ctx.holder.value.style.cursor=""),window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",h)};return window.addEventListener("pointermove",l),window.addEventListener("pointerup",h),window.addEventListener("pointercancel",h),e.preventDefault(),!0}selectedTransformTarget(){const e=this.ctx.store,t=e.activeObjectId;if(e.activeObjectType==="particle"){const r=e.systems.find(a=>a.id===t);if(!r||r.visible===!1)return null;const o=r.config;return{x:o.centerX,y:o.centerY,rotation:o.rootRotation,scaleX:o.rootScaleX??1,scaleY:o.rootScaleY??1,setPosition:(a,c)=>{o.centerX=a,o.centerY=c},setRotation:a=>{o.rootRotation=a},setScale:(a,c)=>{o.rootScaleX=a,o.rootScaleY=c}}}const s=(e.activeObjectType==="collision"?e.colliders:e.activeObjectType==="path"?e.paths:e.spines).find(r=>r.id===t);return!s||s.visible===!1?null:{x:Number(s.x)||0,y:Number(s.y)||0,rotation:Number(s.rotation)||0,scaleX:Math.max(.05,Number(s.scaleX)||1),scaleY:Math.max(.05,Number(s.scaleY)||1),setPosition:(r,o)=>{s.x=r,s.y=o},setRotation:r=>{s.rotation=r},setScale:(r,o)=>{s.scaleX=r,s.scaleY=o}}}onGizmoDown(e){const t=this.selectedTransformTarget();if(!t)return;const i=this.ctx.app(),s=this.ctx.store,r=s.editor.viewScale,o=this.ctx.holder.value.getBoundingClientRect(),a=o.left+i.screen.width/2+s.editor.viewX+t.x*r,c=o.top+i.screen.height*.5+s.editor.viewY+-t.y*r,l=e.clientX,h=e.clientY,u=this.getTool(),d=t.x,f=t.y,m=t.rotation,p=t.scaleX,g=t.scaleY,v=Math.hypot(l-a,h-c)||1,b=Math.atan2(h-c,l-a);Na(x=>{const _=(x.clientX-l)/r,E=(x.clientY-h)/r;if(u==="translate")t.setPosition(d+_,f-E);else if(u==="rotate"){const S=Math.atan2(x.clientY-c,x.clientX-a);t.setRotation(m-(S-b)*180/Math.PI)}else if(u==="scale"){const C=Math.hypot(x.clientX-a,x.clientY-c)/v;t.setScale(Math.max(.05,p*C),Math.max(.05,g*C))}})}}function t1(n,e,t,i,s){const r=1-s;return r*r*r*n+3*r*r*s*e+3*r*s*s*t+s*s*s*i}function i1(n,e,t){const i=n.rotation*Math.PI/180,s=Math.cos(i),r=Math.sin(i),o=Math.max(1e-4,Math.abs(n.scaleX??1)),a=Math.max(1e-4,Math.abs(n.scaleY??1));return{x:n.x+s*e*o-r*t*a,y:n.y+r*e*o+s*t*a}}function Qg(n,e){if(!n.points.length)return null;if(n.points.length===1)return{...i1(n,n.points[0].x,n.points[0].y),angle:n.rotation};const t=n.closed?n.points.length:n.points.length-1,i=[];let s=0;for(let m=0;m<t;m++){const p=n.points[m],g=n.points[(m+1)%n.points.length];for(let v=0;v<=20;v++){if(m>0&&v===0)continue;const b=v/20,y=t1(p.x,p.x+p.outX,g.x+g.inX,g.x,b),x=t1(p.y,p.y+p.outY,g.y+g.inY,g.y,b),_=i1(n,y,x),E=i[i.length-1];E&&(s+=Math.hypot(_.x-E.x,_.y-E.y)),i.push({..._,distance:s})}}const r=Math.min(1,Math.max(0,e))*s;let o=i.findIndex(m=>m.distance>=r);o<0&&(o=i.length-1);const a=i[o],c=i[Math.max(0,o-1)],l=i[Math.min(i.length-1,o+1)],h=c.distance,u=o>0?(r-h)/Math.max(1e-4,a.distance-h):0,d=c.x+(a.x-c.x)*Math.min(1,Math.max(0,u)),f=c.y+(a.y-c.y)*Math.min(1,Math.max(0,u));return{x:d,y:f,angle:Math.atan2(l.y-c.y,l.x-c.x)*180/Math.PI}}function c4(n,e,t){if(e.renderLayerMode!=="slot")return null;const i=n.find(o=>o.id===e.renderLayerSpineId&&o.enabled&&o.status==="ready");if(!i)return null;const s=i.slots||[],r=s.find(o=>o.name===e.renderLayerSlotName);if(!r)return null;if(e.renderLayerSlotPosition==="below"){let o="";if(t!=null&&t.length){const a=t.indexOf(r.name);if(a===0)return null;a>0&&(o=t[a-1])}if(!o){const a=s.filter(c=>c.order<r.order).sort((c,l)=>l.order-c.order)[0];if(!a)return null;o=a.name}return{spineId:i.id,slotName:o,targetSlotName:r.name,followAttachment:!1}}return{spineId:i.id,slotName:r.name,targetSlotName:r.name,followAttachment:e.renderLayerFollowAttachment}}function _u(n,e,t,i=Math.max(1e-4,Math.abs(n.rootScaleX)),s=Math.max(1e-4,Math.abs(n.rootScaleY))){const r=-n.rootRotation*Math.PI/180,o=Math.cos(r),a=Math.sin(r),c=e-n.centerX,l=-t+n.centerY;return{x:(o*c+a*l)/i,y:(-a*c+o*l)/s}}function h4(n,e,t){const i=Qg(e,t);if(!i)return null;const s=_u(n,i.x,i.y),r=i.angle*Math.PI/180,o=_u(n,i.x+Math.cos(r),i.y+Math.sin(r)),a=Math.atan2(o.y-s.y,o.x-s.x)*180/Math.PI;return{...s,angle:a}}function u4(n,e){return n.colliders.map(t=>{if(!t.followPath||!t.followPathId)return t;const i=n.paths.find(h=>h.id===t.followPathId&&h.enabled);if(!(i!=null&&i.points.length))return t;const s=Math.max(.05,Number(t.followDuration)||2),r=Math.min(1,Math.max(0,e/s)),o=Array.isArray(t.followCurve)?t.followCurve:[{x:0,y:0},{x:1,y:1}],a=t.followCurveMode==="跟随导出"?n.settings.exportSettings.keyframeCurve==="bezier"?"bezier":"linear":t.followCurveMode==="贝塞尔"?"bezier":"linear",c=Math.min(1,Math.max(0,b_(o,r,a))),l=Qg(i,c);return l?{...t,x:l.x,y:l.y,rotation:t.rotation+(t.followPathRotation?l.angle:0)}:t})}class d4{constructor(){T(this,"emitters",new Map);T(this,"configs",new Map);T(this,"store",null);T(this,"eventsSuspended",!1);T(this,"subEmitterState",new Map);T(this,"slotGroups",new Map)}sync(e,t,i,s,r=null){this.store=e;for(const[c,l]of this.emitters){const h=e.systems.find(u=>u.id===c);(!h||this.configs.get(c)!==h.config)&&(l.removeFromParent(),l.destroy({children:!0}),this.emitters.delete(c),this.configs.delete(c))}for(const c of e.systems){i&&!c.config.texture&&(c.config.texture=i);const l=lr(c.config);if(s)for(const u of l.trailResources)!u.texture&&(u.previewUrl==="/images/trail.png"||u.previewUrl==="/trails/trail.png")&&(u.texture=s);if(i)for(const u of l.imageResources)!u.texture&&u.textureName==="star"&&(u.texture=i);if(this.emitters.has(c.id))continue;const h=new ob(c.config);h.onParticleEvent=u=>this.handleParticleEvent(c.id,u),t.addChild(h),this.emitters.set(c.id,h),this.configs.set(c.id,c.config)}const o=Xa(e.systems);for(const c of e.systems){const l=this.emitters.get(c.id);if(!l)continue;l.onParticleEvent||(l.onParticleEvent=u=>this.handleParticleEvent(c.id,u));const h=o.has(c.id);this.subEmitterState.get(c.id)!==h&&(h&&l.clear(),this.subEmitterState.set(c.id,h)),l.setAutoEmission(!h)}const a=new Set;for(const c of e.systems){const l=this.emitters.get(c.id);if(!l)continue;const h=r&&c.config.renderLayerMode==="slot"?r.getDrawOrder(c.config.renderLayerSpineId):null,u=c4(e.spines,c.config,h),d=u&&r?this.ensureSlotGroup(u,r,c.config):null;d?(a.add(d.key),l.parent!==d.compensator&&d.compensator.addChild(l)):l.parent!==t&&t.addChild(l)}for(const[c,l]of[...this.slotGroups])if(!a.has(c)){for(const h of[...l.compensator.children])h instanceof ob&&h.parent===l.compensator&&t.addChild(h);r==null||r.detachSlotObject(l.spineId,l.slotName,l.wrapper),l.wrapper.removeFromParent(),l.wrapper.removeChild(l.compensator),l.compensator.destroy(),l.wrapper.destroy(),this.slotGroups.delete(c)}}ensureSlotGroup(e,t,i){const s=`${e.spineId}:${e.targetSlotName}:${i.renderLayerSlotPosition}`;let r=this.slotGroups.get(s);if(!r){const o=new Mi,a=new Mi;o.addChild(a),r={key:s,spineId:e.spineId,slotName:e.slotName,wrapper:o,compensator:a,followAttachment:i.renderLayerFollowAttachment,attached:!1},this.slotGroups.set(s,r)}return(!r.attached||!r.wrapper.parent||r.slotName!==e.slotName)&&(r.wrapper.parent&&t.detachSlotObject(r.spineId,r.slotName,r.wrapper),r.slotName=e.slotName,r.attached=t.attachSlotObject(r.spineId,r.slotName,r.wrapper,e.followAttachment)),r.attached?r:null}updateRenderCompensation(e,t){if(t)for(const i of this.slotGroups.values()){if(!i.attached||!i.wrapper.parent)continue;const s=e.spines.find(o=>o.id===i.spineId);if(!s)continue;const r=t.getSlotParentMatrix(i.spineId,i.slotName,s);r&&(r.invert(),i.compensator.transform.setFromMatrix(r))}}suspendEvents(e){this.eventsSuspended=e}handleParticleEvent(e,t){if(this.eventsSuspended)return;const i=this.store;if(!i)return;const s=i.systems.find(o=>o.id===e),r=s==null?void 0:s.config;if(!(!(r!=null&&r.eventEnabled)||!Array.isArray(r.events)||!r.events.length)&&!(t.depth>=2))for(const o of r.events){if(o.event!==t.kind||o.event==="collision"&&t.collisionCount>o.collisionLimit||o.targetSystemId<=0||o.targetSystemId===e)continue;const a=Math.min(1,Math.max(0,Number(o.probability)||0));if(a<=0)continue;const c=(Math.imul(o.id+1,2654435761)^Math.imul(t.depth+1,2246822507))>>>0;if(Ir(r.seed>>>0,t.spawnId+1,c)>=a)continue;const h=this.emitters.get(o.targetSystemId);if(!h)continue;const u=Array.isArray(o.inherit)?o.inherit:[],d=u.length?{attributes:u,colorMode:o.colorInheritMode==="replace"?"replace":"add",data:{colorHex:t.colorHex,scaleX:t.scaleX,scaleY:t.scaleY,rotation:t.rotation,life:t.maxLife}}:void 0;h.spawnEventParticle(t.worldX,t.worldY,t.depth+1,d)}}destroy(e){for(const t of this.slotGroups.values()){for(const i of[...t.compensator.children])t.compensator.removeChild(i);t.wrapper.removeFromParent(),t.compensator.destroy(),t.wrapper.destroy()}this.slotGroups.clear();for(const[t,i]of this.emitters)i.removeFromParent(),i.destroy({children:!0}),this.emitters.delete(t),this.configs.delete(t)}}async function f4(){const[n,e]=await Promise.all([it.fromURL("/images/star.png"),it.fromURL("/images/trail.png")]);return{dotTex:n,trailTex:e}}function m4(n,e,t){for(const i of n.systems){i.config.texture=e;const s=lr(i.config);if(t)for(const r of s.trailResources)!r.texture&&(r.previewUrl==="/images/trail.png"||r.previewUrl==="/trails/trail.png")&&(r.texture=t);for(const r of s.imageResources)!r.texture&&r.textureName==="star"&&(r.texture=e)}}const p4={class:"stage-wrap"},g4={key:0,class:"hud"},v4={class:"hud-number hud-system-count"},y4={class:"hud-number hud-particle-count"},b4={class:"hud-tip"},x4=qt({__name:"Stage",setup(n){const e=Wo(),t=De(null),i=De(null),s=De(!1),r=De(!1),o=De(""),a=De(!1);e.settings.undoLimit>0||(e.settings.undoLimit=20),e.settings.parameterPanelOnRight==null&&(e.settings.parameterPanelOnRight=!0),Number.isFinite(e.settings.backgroundX)||(e.settings.backgroundX=0),Number.isFinite(e.settings.backgroundY)||(e.settings.backgroundY=0),Number.isFinite(e.settings.backgroundOpacity)||(e.settings.backgroundOpacity=1),e.settings.backgroundImageName==null&&(e.settings.backgroundImageName=""),e.settings.backgroundImageData==null&&(e.settings.backgroundImageData=""),e.settings.showEmitter==null&&(e.settings.showEmitter=!0),e.settings.showBones==null&&(e.settings.showBones=!1),e.settings.bonePointDrawSize>0||(e.settings.bonePointDrawSize=1),e.settings.boneAxisDrawSize>0||(e.settings.boneAxisDrawSize=2),e.settings.showSkinMesh==null&&(e.settings.showSkinMesh=!1),e.settings.showGrid==null&&(e.settings.showGrid=!0);let c=null,l=null,h=null,u=null,d=null,f=null,m=null,p=null,g=null,v=null,b=null,y=null,x=null,_=null,E=null,S=[],C=0,M=0,P=0,A=0,R=null,B=null;const O=new vm,W=new d4,V={store:e,holder:t,app:()=>c},Y=new a4(V),L=new l4(V,()=>o.value);let N=[];const F=new Map;function D(){l=new Mi,c.stage.addChild(l),_=new Mi,c.stage.addChild(_),O.createSprite(l),x=new Ki,l.addChild(x),E=new K$,l.addChild(E.container),u=new Ki,l.addChild(u),h=new Ki,l.addChild(h),f=new Ki,l.addChild(f),m=new Ki,l.addChild(m),p=new Ki,l.addChild(p),g=new Ki,l.addChild(g),v=new Ki,l.addChild(v),b=new Ki,l.addChild(b),y=new Ki,l.addChild(y),d=new Ki,l.addChild(d)}function X(ye){if(ye.button===0){if(o.value&&L.selectedTransformTarget()){L.onGizmoDown(ye);return}Y.onPointerDown(ye)||L.onColliderPointerDown(ye)||L.onAttractionDown(ye)||L.onForceFieldDown(ye)||Q3(V,ye.clientX,ye.clientY)}}function G(ye){Y.onStageDoubleClick(ye)}function K(ye){Z3(V,ye)}function J(ye=!0){vm.clearStoreBackground(e,ye)}async function oe(ye){await vm.handleFileChange(e,ye)}XD({canvasElement:t,canvasFocused:a,undo:RT,save:()=>ET(e),togglePlay:()=>e.togglePlay(),toStart:()=>e.toStart(),setTool:ye=>{o.value=ye}});function le(){l&&W.sync(e,l,R,B,E)}function ve(ye,q,Z,se){const H=Math.max(2,Math.floor(se)||2);if(ye.config.mode==="stream"&&ye.config.streamBehavior==="loop"){Hb(ye,q,Z,H);return}q.reset();const j=1/Math.max(1,Z),$=[];for(let U=0;U<H;U++)U===0?(q.apply([]),$.push([])):$.push(q.update(j));ye.frames=$}function Se(ye){var se;const q=Math.max(2,Math.floor(e.timeline.totalFrames)||2),Z=Xa(e.systems);W.suspendEvents(!0);try{for(const H of e.systems){if(Z.has(H.id)||(((se=H.frames)==null?void 0:se.length)||0)>=q)continue;const j=W.emitters.get(H.id);j&&ve(H,j,ye,q)}}finally{W.suspendEvents(!1)}e.systems.every(H=>{var j;return(((j=H.frames)==null?void 0:j.length)||0)>=q})&&(e.timeline.recorded=!0)}function fe(){var Z,se,H,j;A=requestAnimationFrame(fe);const ye=performance.now()/1e3;let q=ye-C;if(C=ye,q>.1&&(q=.1),c&&l){l.scale.set(e.editor.viewScale),l.position.set(c.screen.width/2+e.editor.viewX,c.screen.height*.5+e.editor.viewY),O.applyTransform(e.settings.backgroundX,e.settings.backgroundY,e.settings.backgroundOpacity),k$(e,c,x,_,S);const $=Math.max(1,e.timeline.fps),U=e.timeline.frame,z=U/$;E==null||E.sync(e.spines,U,$),le(),W.updateRenderCompensation(e,E),N=u4(e,z);for(const Le of e.systems){const Ce=W.emitters.get(Le.id);if(!Ce)continue;Ce.setFollowExportCurveMode(e.settings.exportSettings.keyframeCurve==="bezier"?"贝塞尔":"线性");const Ze=Le.visible!==!1;Ce.visible=Ze,Ce.renderable=Ze;const Ee=Le.config;Ce.scale.set(Ee.rootScaleX,Ee.rootScaleY);const vi=new Set(Ee.collisionColliderIds);Ce.setColliders(Ee.collision?N.filter(Ut=>vi.has(Ut.id)):[]),Ce.setEmitterFollowSpawn(0,0,0);let lt={x:Ee.centerX,y:Ee.centerY,rotation:Ee.rootRotation};const ce=Ee.emitterFollow&&Ee.emitterFollowMode==="bone"?e.spines.find(Ut=>Ut.id===Ee.emitterFollowSpineId&&Ut.enabled&&Ut.status==="ready"):null,de=ce&&(E==null?void 0:E.getBoneWorldTransform(ce.id,Ee.emitterFollowBoneName))||null,nt=Ee.emitterFollow&&Ee.emitterFollowMode==="path"?e.paths.find(Ut=>Ut.id===Ee.emitterFollowPathId&&Ut.enabled):null,Ft=Math.max(.05,Ee.emitterFollowDuration),Nt=Math.min(1,Math.max(0,z/Ft)),ct=Math.min(1,Math.max(0,b_(Ee.emitterFollowCurve,Nt))),rn=Math.min(1,Math.max(0,Ee.emitterFollowOffset)),Nn=Ee.emitterFollowDirection==="reverse"?(1-rn)*(1-ct):rn+(1-rn)*ct,Ht=nt?Qg(nt,Nn):null;if(de){const Ut=Ee.emitterFollowBoneOffsetX,on=Ee.emitterFollowBoneOffsetY,fi=de.x+Ut,Dn=de.y+on,Fs=Ee.rootRotation+Ee.emitterFollowBoneRotation,Tn=Math.max(1e-4,Math.abs(Ee.rootScaleX*Ee.emitterFollowBoneScaleX)),mn=Math.max(1e-4,Math.abs(Ee.rootScaleY*Ee.emitterFollowBoneScaleY));if(lt={x:fi,y:Dn,rotation:Fs},Ee.emitterFollowSpace==="local")Ce.position.set(fi,-Dn),Ce.rotation=-Fs*Math.PI/180,Ce.scale.set(Tn,mn),Ce.setSimulationTransform(fi,Dn,Fs,Tn,mn);else{Ce.position.set(Ee.centerX,-Ee.centerY),Ce.rotation=-Ee.rootRotation*Math.PI/180,Ce.scale.set(Tn,mn),Ce.setSimulationTransform(Ee.centerX,Ee.centerY,Ee.rootRotation,Tn,mn);const yr=_u(Ee,fi,Dn,Tn,mn),br=-(Fs-Ee.rootRotation);Ce.setEmitterFollowSpawn(yr.x,yr.y,br)}}else if(Ht){const Ut=Ht.angle+(Ee.emitterFollowDirection==="reverse"?180:0),on=Ee.emitterAngleMode==="direction"?Ut:Ee.rootRotation;if(lt={x:Ht.x,y:Ht.y,rotation:on},Ee.emitterFollowSpace==="local")Ce.position.set(Ht.x,-Ht.y),Ce.rotation=-on*Math.PI/180,Ce.setSimulationTransform(Ht.x,Ht.y,on);else{Ce.position.set(Ee.centerX,-Ee.centerY),Ce.rotation=-Ee.rootRotation*Math.PI/180,Ce.setSimulationTransform(Ee.centerX,Ee.centerY,Ee.rootRotation);const fi=_u(Ee,Ht.x,Ht.y),Dn=Ee.emitterAngleMode==="direction"?-(Ut-Ee.rootRotation):0;Ce.setEmitterFollowSpawn(fi.x,fi.y,Dn)}}else Ce.position.set(Ee.centerX,-Ee.centerY),Ce.rotation=-Ee.rootRotation*Math.PI/180,Ce.setSimulationTransform(Ee.centerX,Ee.centerY,Ee.rootRotation);const Di=Ee.shape==="path"&&Ee.spawnPathId>0&&e.paths.find(Ut=>Ut.id===Ee.spawnPathId&&Ut.enabled&&Ut.points.length>0)||null;Ce.setSpawnPathSampler(Di?Ut=>h4(Ee,Di,Ut):null,(Di==null?void 0:Di.closed)===!0),F.set(Le.id,lt)}let ee=0;const ne=[],ue=e.settings.showBones&&e.activeObjectType==="particle"?e.activeObjectId:0,xe=(Le,Ce,Ze)=>{!Le||Le.id!==ue||Le.visible===!1||G$(ne,Ze,Ce.position.x,Ce.position.y)},be=e.timeline,Ne=e.playbackRange,Be=be.fps,he=1/Math.max(1,Be);let ge=P,We=0;if(be.playing?(M+=q,We=Math.floor(M/he),We>0&&(M-=We*he)):(M=0,Se(Be)),be.playing&&We>0)for(let Le=0;Le<We;Le++)if(ge=be.frame,ne.length=0,ee=0,be.recorded){for(const lt of e.systems){const ce=W.emitters.get(lt.id),de=(H=lt.frames)==null?void 0:H[be.frame];if(ce&&de){ce.apply(de);for(const nt of de)nt.active&&(xe(lt,ce,nt),ee++)}}be.frame++;const Ce=e.systems.find(lt=>lt.id===e.activeId),Ze=(Ce==null?void 0:Ce.config.mode)==="stream"&&Ce.config.streamBehavior==="loop"?PS(Ce.config,Be):null,vi=be.loop&&be.abLoop&&(Ze==null?void 0:Ze.start)===Ne.start&&Ze.end===Ne.end?Ne.end-1:Ne.end;if(be.frame>vi)if(be.loop)be.frame=Ne.start;else{be.frame=Ne.end,be.playing=!1;break}}else{W.suspendEvents(!0);try{const Ce=Xa(e.systems);for(const Ze of e.systems){const Ee=W.emitters.get(Ze.id);if(!Ee)continue;!Ce.has(Ze.id)&&Ze.config.mode==="stream"&&Ze.config.streamBehavior==="loop"?(Z=Ze.frames)!=null&&Z.length||Hb(Ze,Ee,Be,be.totalFrames):be.frame===0&&Ee.reset()}}finally{W.suspendEvents(!1)}for(const[Ce,Ze]of W.emitters){const Ee=e.systems.find(nt=>nt.id===Ce),vi=(Ee==null?void 0:Ee.config.mode)==="stream"&&Ee.config.streamBehavior==="loop",lt=vi?(se=Ee.frames)==null?void 0:se[be.frame]:void 0,ce=be.frame===0&&!vi,de=ce?[]:lt||Ze.update(he);if(ce?Ze.apply([]):lt&&Ze.apply(lt),(Ee==null?void 0:Ee.visible)!==!1)for(const nt of de)nt.active&&xe(Ee,Ze,nt);ee+=de.length}for(const Ce of e.systems){if(!Ce.config.texture)continue;Ce.frames=Ce.frames||[];const Ze=W.emitters.get(Ce.id);Ze&&!(Ce.config.mode==="stream"&&Ce.config.streamBehavior==="loop")&&(Ce.frames[be.frame]=Ze.capture())}be.frame++,be.frame>=be.totalFrames&&(be.frame=Ne.start,be.recorded=!0)}else{be.playing||(ge=be.frame);for(const Le of e.systems){const Ce=W.emitters.get(Le.id),Ze=be.playing?P:be.frame,Ee=(j=Le.frames)==null?void 0:j[Ze],vi=Le.config.mode==="stream"&&Le.config.streamBehavior==="loop"&&!!Ee;if((be.recorded||vi)&&Ce&&Ee){Ce.apply(Ee);for(const lt of Ee)lt.active&&(xe(Le,Ce,lt),ee++)}else if(Ce){const lt=be.frame===0?[]:Ce.update(0);if(be.frame===0&&Ce.apply([]),Le.visible!==!1)for(const ce of lt)ce.active&&xe(Le,Ce,ce);ee+=Ce.activeCount}}}P=ge,E==null||E.sync(e.spines,ge,Be);for(const[,Le]of W.emitters)Le.drawTrailMeshDebug(e.settings.showSkinMesh);X$(e,N,v),Y$(e,Y.selectedNodes,b),B$(e,E,u),F$(e,F,h),L$(e,F,f),O$(e,m),$$(e,p),N$(e,g),U$(o,L.selectedTransformTarget.bind(L),y),H$(ne,e,d),i.value&&(i.value.systems=e.systems.length,i.value.particles=ee)}}return Sn(async()=>{const ye=t.value;c=new tS({width:ye.clientWidth||800,height:ye.clientHeight||600,backgroundAlpha:0,antialias:!0}),ye.appendChild(c.view),D(),ei(()=>e.settings.backgroundImageData,Z=>O.syncTexture(Z),{immediate:!0});const q=await f4();R=q.dotTex,B=q.trailTex,m4(e,R,B),i.value={systems:e.systems.length,particles:0},e.timeline.recorded=!1,e.timeline.frame=0,M=0,P=0,e.timeline.playing=!0,e.timeline.loop=!0;for(const Z of e.systems)Z.frames=[];e.recalcTotalFrames(),C=performance.now()/1e3,fe(),ei(()=>e.systems.map(Z=>JSON.stringify(Z.config,(se,H)=>se==="texture"||se==="trailTexture"||se==="previewUrl"?void 0:H)).join("|")+`|colliders:${JSON.stringify(e.colliders)}|paths:${JSON.stringify(e.paths)}`,()=>{e.recalcTotalFrames(),e.timeline.recorded=!1,e.timeline.frame=0;for(const Z of e.systems)Z.frames=[];e.timeline.playing=!0,e.timeline.loop=!0}),BD(e)}),Za(()=>{cancelAnimationFrame(A),E==null||E.destroy(),E=null,O.destroy(),l&&c&&W.destroy(l),c&&(c.destroy(!0,{children:!0}),c=null)}),ei(()=>[e.activeObjectType,e.activeObjectId],()=>Y.resetSelection()),(ye,q)=>(Q(),te("div",p4,[w("div",{ref_key:"holder",ref:t,class:Pe(["stage-holder",{grid:I(e).settings.showGrid}]),tabindex:"0",onWheel:tt(K,["prevent"]),onPointerdown:X,onDblclick:tt(G,["prevent"])},null,34),Te(LB,{ctx:V,"active-tool":o.value,"show-settings":s.value,"show-help":r.value,"onUpdate:activeTool":q[0]||(q[0]=Z=>o.value=Z),"onUpdate:showSettings":q[1]||(q[1]=Z=>s.value=Z),"onUpdate:showHelp":q[2]||(q[2]=Z=>r.value=Z),onClearBackground:J,onBackgroundFile:oe},null,8,["active-tool","show-settings","show-help"]),Te(o4,{show:s.value,onClose:q[3]||(q[3]=Z=>s.value=!1)},null,8,["show"]),Te(J3,{show:r.value,onClose:q[4]||(q[4]=Z=>r.value=!1)},null,8,["show"]),i.value?(Q(),te("div",g4,[yt(k(ye.$t("app.systems"))+": ",1),w("b",v4,k(i.value.systems),1),yt(" · "+k(ye.$t("app.particlesBones"))+": ",1),w("b",y4,k(i.value.particles),1),yt(" · "+k(ye.$t("app.rootBone"))+": ",1),q[5]||(q[5]=w("b",null,"root",-1)),w("span",b4,k(ye.$t("app.hudTip")),1)])):_e("",!0)]))}}),w4=li(x4,[["__scopeId","data-v-1023341a"]]),S4=[{x:0,y:0},{x:1,y:1}],Op=[{x:0,y:1},{x:1,y:1}],_4=[{x:0,y:0},{x:.2,y:1},{x:.8,y:1},{x:1,y:0}],$p=[{x:0,y:0},{x:.1,y:1},{x:.9,y:1},{x:1,y:0}],Np=[{x:0,y:1},{x:1,y:1}],Dp=[{x:0,y:1},{x:1,y:1}],hi=Go({visible:!1,title:"",detail:"",progress:0,indeterminate:!1,failed:!1});let dh=0;function T4(n){return new Promise(e=>window.setTimeout(e,n))}function FT(n,e){const t=++dh,i=performance.now();Object.assign(hi,{visible:!0,title:n,detail:e,progress:0,indeterminate:!1,failed:!1});const s=(o,a)=>{t===dh&&(hi.indeterminate=o==null,o!=null&&(hi.progress=Math.min(100,Math.max(0,o))),a&&(hi.detail=a))},r=async(o,a)=>{if(t!==dh)return;hi.failed=o,hi.indeterminate=!1,hi.progress=o?hi.progress:100,hi.detail=a,await T4(Math.max(180,(o?850:450)-(performance.now()-i))),t===dh&&(hi.visible=!1)};return{update:s,paint:()=>new Promise(o=>requestAnimationFrame(()=>o())),finish:(o=Ye("transfer.completed"))=>r(!1,o),fail:(o=Ye("transfer.failed"))=>r(!0,o)}}async function E4(n,e){if(!n.body)return e(null),n.text();const t=Number(n.headers.get("content-length")),i=Number.isFinite(t)&&t>0,s=n.body.getReader(),r=new TextDecoder;let o=0,a="";for(e(i?0:null);;){const{done:c,value:l}=await s.read();if(c)break;o+=l.byteLength,a+=r.decode(l,{stream:!0}),e(i?Math.min(1,o/t):null)}return a+=r.decode(),i&&e(1),a}const C4="3.8";function Rn(n,e,t){n[e]==null&&n[t]!=null&&(n[e]=n[t]),delete n[t]}function Bp(n){if(!n||typeof n!="object")return;if(Array.isArray(n)){for(const t of n)Bp(t);return}const e=n;Array.isArray(e.curve)&&delete e.curve;for(const t of Object.values(e))Bp(t)}function M4(n){for(const e of n.bones)Rn(e,"transform","inherit");for(const e of n.transform||[])Rn(e,"rotateMix","mixRotate"),e.translateMix==null&&(e.translateMix=e.mixX??e.mixY),e.scaleMix==null&&(e.scaleMix=e.mixScaleX??e.mixScaleY),Rn(e,"shearMix","mixShearY"),delete e.mixX,delete e.mixY,delete e.mixScaleX,delete e.mixScaleY;for(const e of n.path||[])Rn(e,"rotateMix","mixRotate"),e.translateMix==null&&(e.translateMix=e.mixX??e.mixY),delete e.mixX,delete e.mixY;for(const e of n.skins)for(const t of Object.values(e.attachments||{}))for(const i of Object.values(t||{}))i.parent!=null&&Rn(i,"deform","timelines")}function A4(n){for(const e of Object.values(n.slots||{}))Rn(e,"color","rgba"),Rn(e,"twoColor","rgba2")}function I4(n){for(const e of Object.values(n.bones||{}))for(const t of e.rotate||[])Rn(t,"angle","value")}function P4(n){for(const e of Object.values(n.transform||{}))for(const t of e)Rn(t,"rotateMix","mixRotate"),t.translateMix==null&&(t.translateMix=t.mixX??t.mixY),t.scaleMix==null&&(t.scaleMix=t.mixScaleX??t.mixScaleY),Rn(t,"shearMix","mixShearY"),delete t.mixX,delete t.mixY,delete t.mixScaleX,delete t.mixScaleY}function R4(n){for(const e of Object.values(n.path||{})){for(const t of["position","spacing"])for(const i of e[t]||[])Rn(i,t,"value");for(const t of e.mix||[])Rn(t,"rotateMix","mixRotate"),t.translateMix==null&&(t.translateMix=t.mixX??t.mixY),delete t.mixX,delete t.mixY}}function k4(n){if(!n.attachments)return;const e=n.deform||(n.deform={});for(const[t,i]of Object.entries(n.attachments)){const s=e[t]||(e[t]={});for(const[r,o]of Object.entries(i)){const a=s[r]||(s[r]={});for(const[c,l]of Object.entries(o))l.deform&&(a[c]=l.deform)}}delete n.attachments}function F4(n){n.skeleton.spine=C4,M4(n);for(const e of Object.values(n.animations))A4(e),I4(e),P4(e),R4(e),k4(e);return Bp(n.animations),n}function L4(n,e,t,i,s=!1){if(s){let c=0;for(let l=0;l<n.values.length;l++)c=Math.max(c,Math.abs(n.values[l]-e.values[l])/Math.max(1e-9,i[l]??i[0]??.001));return c}const r=t.frame-e.frame,o=r<=0?0:(n.frame-e.frame)/r;let a=0;for(let c=0;c<n.values.length;c++){const l=e.values[c]+(t.values[c]-e.values[c])*o;a=Math.max(a,Math.abs(n.values[c]-l)/Math.max(1e-9,i[c]??i[0]??.001))}return a}function LT(n,e,t=new Set,i=new Set){if(n.length<=2)return n.slice();const s=new Set([0,n.length-1]);for(let a=1;a<n.length-1;a++)t.has(n[a].frame)&&s.add(a);for(let a=0;a<n.length;a++)i.has(n[a].frame)&&s.add(a);const r=()=>[...s].sort((a,c)=>a-c);let o=!0;for(;o;){o=!1;const a=r();for(let c=0;c<a.length-1;c++){const l=a[c],h=a[c+1],u=i.has(n[l].frame);let d=-1,f=1;for(let m=l+1;m<h;m++){const p=L4(n[m],n[l],n[h],e,u);p>f&&(f=p,d=m)}d>=0&&(s.add(d),o=!0)}}return r().map(a=>n[a])}function n1(n,e,t,i,s){const r=t-e+1;if(r<2)return 0;const o=s?e:t,a=s?e+1:t-1,c=s?e+2:t-2,l=Math.abs(n[a].frame-n[o].frame);if(r>=3&&l>0&&Math.abs(Math.abs(n[c].frame-n[a].frame)-l)<1e-6){const u=n[o].values[i],d=n[a].values[i],f=n[c].values[i];return s?(-3*u+4*d-f)/(2*l):(3*u-4*d+f)/(2*l)}const h=n[a].frame-n[o].frame;return h?(n[a].values[i]-n[o].values[i])/h:0}function s1(n,e,t){const i=n[t].frame-n[e].frame,s=[];for(let r=0;r<n[e].values.length;r++){const o=n[e].values[r],a=n[t].values[r],c=Math.min(...n.slice(e,t+1).map(d=>d.values[r])),l=Math.max(...n.slice(e,t+1).map(d=>d.values[r])),h=o+n1(n,e,t,r,!0)*i/3,u=a-n1(n,e,t,r,!1)*i/3;s.push([Math.max(c,Math.min(l,h)),Math.max(c,Math.min(l,u))])}return{values:s}}function O4(n,e,t,i,s){const r=1-s;return r*r*r*n+3*r*r*s*e+3*r*s*s*t+s*s*s*i}function $4(n,e,t,i,s,r=!1){if(r){let l=0;for(let h=0;h<n.values.length;h++)l=Math.max(l,Math.abs(n.values[h]-e.values[h])/Math.max(1e-9,s[h]??s[0]??.001));return l}const o=t.frame-e.frame,a=o<=0?0:(n.frame-e.frame)/o;let c=0;for(let l=0;l<n.values.length;l++){const h=i.values[l],u=O4(e.values[l],h[0],h[1],t.values[l],a);c=Math.max(c,Math.abs(n.values[l]-u)/Math.max(1e-9,s[l]??s[0]??.001))}return c}function OT(n,e,t=new Set,i=new Set){if(n.length<=1)return{samples:n.slice(),controls:[]};const s=new Set([0,n.length-1]);for(let c=1;c<n.length-1;c++)t.has(n[c].frame)&&s.add(c);for(let c=0;c<n.length;c++)i.has(n[c].frame)&&s.add(c);const r=()=>[...s].sort((c,l)=>c-l);let o=!0;for(;o;){o=!1;const c=r();for(let l=0;l<c.length-1;l++){const h=c[l],u=c[l+1];if(u-h<=1)continue;const d=i.has(n[h].frame),f=s1(n,h,u);let m=-1,p=1;for(let g=h+1;g<u;g++){const v=$4(n[g],n[h],n[u],f,e,d);v>p&&(p=v,m=g)}m>=0&&(s.add(m),o=!0)}}const a=r();return{samples:a.map(c=>n[c]),controls:a.slice(0,-1).map((c,l)=>s1(n,c,a[l+1]))}}function N4(n){if(!n.length)return[];const e=[n[0]];for(let t=1;t<n.length;t++){let i=n[t];for(;i-e[t-1]>180;)i-=360;for(;i-e[t-1]<-180;)i+=360;e.push(i)}return e}function pi(n){if(!Number.isFinite(n))return 0;const e=Math.round(n*1e5)/1e5;return Object.is(e,-0)?0:e}function D4(n,e,t,i){const s=Math.max(2,Math.min(16,Math.round(Number(n.trailGridRows)||2))),r=Math.max(2,Math.min(32,Math.round(Number(n.trailGridCols)||2))),o=Math.max(2,t.length),a=e.lengthMode==="random"?Math.max(1,Number(e.lengthMin)||0,Number(e.lengthMax)||0):Math.max(.001,Number(e.length)||100),c=e.widthSizeMode==="random"?Math.max(1,Number(e.widthMin)||0,Number(e.widthMax)||0):Math.max(.001,Number(e.width)||100),l=(Number(e.rotation)||0)*Math.PI/180,h=Math.cos(l),u=Math.sin(l),d=[],f=[],m=[],p=[],g=[];for(let y=0;y<r;y++)g.push({col:y,row:0});for(let y=1;y<s;y++)g.push({col:r-1,row:y});for(let y=r-2;y>=0;y--)g.push({col:y,row:s-1});for(let y=s-2;y>=1;y--)g.push({col:0,row:y});const v=g.length;for(let y=1;y<r-1;y++)for(let x=1;x<s-1;x++)g.push({col:y,row:x});const b=new Map;for(let y=0;y<g.length;y++){const{col:x,row:_}=g[y];b.set(`${x}:${_}`,y);const E=x/(r-1),S=E*(o-1),C=Math.min(o-1,Math.floor(S)),M=Math.min(o-1,C+1),P=S-C,A=_/(s-1),R=.5+h*(E-.5)-u*(A-.5),B=.5+u*(E-.5)+h*(A-.5);d.push(pi(R),pi(B));const O=(.5-A)*c;C===M||P<1e-6?m.push(1,t[C],0,pi(O),1):m.push(2,t[C],0,pi(O),pi(1-P),t[M],0,pi(O),pi(P))}for(let y=0;y<r-1;y++)for(let x=0;x<s-1;x++){const _=b.get(`${y}:${x}`),E=b.get(`${y+1}:${x}`),S=b.get(`${y}:${x+1}`),C=b.get(`${y+1}:${x+1}`);f.push(_,E,S,E,C,S)}for(let y=0;y<v;y++)p.push(y*2,(y+1)%v*2);return{type:"mesh",path:i,uvs:d,triangles:f,vertices:m,hull:v,edges:p,width:a,height:c}}const r1={normal:"normal",add:"additive",multiply:"multiply",screen:"screen"},o1=.1,a1=.1,l1=.01,fh=.01;function B4(n,e){return String(n||"").trim().replace(/[\\/:*?"<>|\s]+/g,"_").replace(/^_+|_+$/g,"")||e}function $T(n,e){let t=n,i=2;for(;e.has(t);)t=`${n}_${i++}`;return e.add(t),t}function U4(n){return n.replace(/\.[^./\\]+$/,"")}function NT(n,e){return U4([n,e].filter(Boolean).join("/").replace(/\\/g,"/").replace(/\/{2,}/g,"/").replace(/^\.\//,""))}function V4(n){var i,s;const e=Number(((i=n==null?void 0:n.orig)==null?void 0:i.width)??(n==null?void 0:n.width))||0,t=Number(((s=n==null?void 0:n.orig)==null?void 0:s.height)??(n==null?void 0:n.height))||0;return{width:e,height:t}}function mh(n){return Math.round(Math.max(0,Math.min(1,n))*255).toString(16).padStart(2,"0")}function c1(n,e){return[(n>>16&255)/255,(n>>8&255)/255,(n&255)/255,Math.max(0,Math.min(1,e))]}function Ol(n,e){return pi(n/e)}function X4(n,e){const t=n.config,i=t.lifeMode==="fixed"?Math.max(0,Number(t.lifeMin)||0):Math.max(0,Number(t.lifeMin)||0,Number(t.lifeMax)||0),s=Math.max(0,Number(t.delay)||0);let r;return t.mode!=="stream"?r=s+i:t.streamBehavior!=="loop"?r=s+Math.max(1/e,Number(t.duration)||0)+i:r=s+zn(t,e).total/e,Math.max(1,Math.ceil(r*e)+1)}function Y4(n,e,t){const i=n.config;if(i.mode!=="stream"||i.streamBehavior!=="loop")return new Set;const s=PS(i,e),r=Math.max(1,t)/Math.max(1,e);return new Set([Math.round(s.start*r),Math.round(s.end*r)])}function Tu(n,e){return e?n.boneName:`${n.spawnId??"legacy"}_${n.boneName}`}function G4(n,e,t,i){const s=new Set;for(const r of n)for(const o of r)s.add(Tu(o,e));return[...s].sort().map((r,o)=>({key:r,name:$T(`${i}_${o}`,t),states:n.map(a=>a.find(c=>Tu(c,e)===r)||null)}))}function h1(n,e){const t=new Set(e.states.map(i=>i==null?void 0:i.resourceId).filter(i=>typeof i=="number"));return n.config.imageResources.filter(i=>t.has(i.id))}function H4(n,e,t,i){const s=e*t/i,r=Math.min(n.states.length-1,Math.max(0,Math.floor(s))),o=Math.min(n.states.length-1,r+1),a=n.states[r],c=n.states[o];if(!a||!c||Tu(a,!0)!==Tu(c,!0)||a.spawnId!==c.spawnId)return a;const l=s-r;if(l<=1e-6)return a;const h=(d,f)=>(d??0)+((f??d??0)-(d??0))*l,u=a.trailState&&c.trailState&&a.trailState.resourceId===c.trailState.resourceId?{...a.trailState,width:h(a.trailState.width,c.trailState.width),alpha:h(a.trailState.alpha,c.trailState.alpha),bones:a.trailState.bones.map((d,f)=>{const m=c.trailState.bones[f]||d;return{...d,worldX:h(d.worldX??d.x,m.worldX??m.x),worldY:h(d.worldY??d.y,m.worldY??m.y),worldRotation:h(d.worldRotation??-d.rotation,m.worldRotation??-m.rotation)}})}:a.trailState;return{...a,worldX:h(a.worldX,c.worldX),worldY:h(a.worldY,c.worldY),worldRotation:h(a.worldRotation,c.worldRotation),worldScaleX:h(a.worldScaleX,c.worldScaleX),worldScaleY:h(a.worldScaleY,c.worldScaleY),alpha:h(a.alpha,c.alpha),trailState:u}}function u1(n,e){return!n||n==="跟随导出"?e.keyframeCurve:n==="贝塞尔"?"bezier":"linear"}function ca(n,e,t,i,s,r=new Set,o=new Set,a=s.keyframeCurve){if(!n.length)return[];const c=new Set(r);for(const u of o)c.add(u);const l=a==="bezier"&&s.spineVersion!=="3.8"?OT(n,i,c,o):{samples:LT(n,i,c,o),controls:[]},h=l.samples.map(u=>{const d={time:Ol(u.frame,e)};return t.forEach((f,m)=>{d[f]=pi(u.values[m])}),o.has(u.frame)&&(d.curve="stepped"),d});for(let u=0;u<l.controls.length;u++){if(h[u].curve==="stepped")continue;const d=Number(h[u].time)||0,f=Number(h[u+1].time)||0,m=[];for(let p=0;p<t.length;p++){const g=l.controls[u].values[p];m.push(pi(d+(f-d)/3),pi(g[0]),pi(d+(f-d)*2/3),pi(g[1]))}h[u].curve=m}return h}function j4(n){const e=new Set;for(let t=0;t<n.length;t++){const i=n[t],s=t?n[t-1]:null,r=!!i&&!!s&&i.spawnId!==s.spawnId;(!!i!=!!s||r)&&(t>0&&s&&e.add(t-1),i&&e.add(t))}return e}function W4(n){const e=new Set;for(let t=0;t<n.length;t++){const i=n[t];if(!(i!=null&&i.active))continue;const s=n[t+1];(!(s!=null&&s.active)||s.spawnId!==i.spawnId)&&e.add(t)}return e}function z4(n){const e=new Set;for(let t=0;t<n.length;t++)n[t]&&(n[t+1]||e.add(t));return e}function q4(n){const e=new Set;for(let t=0;t<n.length;t++){const i=n[t],s=t?n[t-1]:void 0;!!i!=!!s&&(t>0&&s&&e.add(t-1),i&&e.add(t))}return e}function K4(n,e){var i;if(!n.shapeEnabled||!((i=n.shapeCurve)!=null&&i.length))return 1;const t=[...n.shapeCurve].sort((s,r)=>s.x-r.x);if(e<=t[0].x)return Math.max(0,t[0].y);for(let s=1;s<t.length;s++){const r=t[s-1],o=t[s];if(e<=o.x){const a=(e-r.x)/Math.max(1e-6,o.x-r.x);return Math.max(0,r.y+(o.y-r.y)*a)}}return Math.max(0,t[t.length-1].y)}function J4(n,e,t,i=new Set){const s=[];let r=Symbol();return n.forEach((o,a)=>{(o!==r||i.has(a))&&(s.push(t(o,a)),r=o)}),s}function Z4(n,e,t){const i=n.imageMode==="sequence"?n.sequenceFrames[e]:void 0,s=(i==null?void 0:i.name)||n.textureName||`image_${n.id}`,r=(i==null?void 0:i.texture)||n.texture,o=V4(r);(!o.width||!o.height)&&t.push({code:"missing-image",message:Ye("errors.missingImageWarning",{file:s})});const a=o.width||1,c=o.height||1;return{path:NT(n.textureFolder,s),x:pi((.5-n.anchorX)*a),y:pi((n.anchorY-.5)*c),width:pi(a),height:pi(c)}}function d1(n,e){const t=[];for(const s of e){const r=s.imageMode==="sequence"?Math.max(1,s.sequenceFrames.length):1;for(let o=0;o<r;o++)t.push(`${s.id}_${o}`)}const i=t.length>1;return new Map(t.map((s,r)=>[s,i?`${n}_${r}`:n]))}function Q4(n,e,t,i,s=i.keyframeCurve,r=new Set,o=new Set){if(!n.length)return[];const a=new Set;for(let d=1;d<e.length;d++){const f=e[d],m=e[d-1],p=(f==null?void 0:f.replace(/_\d+$/,""))??null,g=(m==null?void 0:m.replace(/_\d+$/,""))??null;p!==g&&(a.add(d),a.add(d-1))}for(const d of r)a.add(d);for(const d of o)a.add(d);const c=n.map((d,f)=>({frame:f,values:d})),l=1/255,h=s==="bezier"&&i.spineVersion!=="3.8"?OT(c,[l,l,l,.01],a,r):{samples:LT(c,[l,l,l,.01],a,r),controls:[]},u=h.samples.map(d=>{const f={time:Ol(d.frame,t),color:`${mh(d.values[0])}${mh(d.values[1])}${mh(d.values[2])}${mh(d.values[3])}`};return r.has(d.frame)&&(f.curve="stepped"),f});if(h.controls.length)for(let d=0;d<h.controls.length;d++){if(u[d].curve==="stepped")continue;const f=Ol(h.samples[d].frame,t),m=Ol(h.samples[d+1].frame,t),p=[];for(let g=0;g<4;g++){const v=h.controls[d].values[g];p.push(pi(f+(m-f)/3),pi(v[0]),pi(f+(m-f)*2/3),pi(v[1]))}u[d].curve=p}return u}function f1(n,e,t,i,s,r,o=r.keyframeCurve,a=new Set,c=new Set){var d;const l=(d=n.slots)[e]||(d[e]={}),h=J4(t,s,(f,m)=>({time:Ol(m,s),name:f??null}),c);h.length&&(l.attachment=h);const u=Q4(i,t,s,r,o,a,c);u.length&&(l.rgba=u)}function m1(n){var p;const e=n.settings,t=Math.max(1,Number(n.timeline.fps)||30),i=Math.max(1,Math.round(e.fps||30)),s=e.integerFrameAlignment?i:t,r=[],o=n.systems.filter(g=>g.visible!==!1),a=Xa(n.systems),c={skeleton:{hash:"",spine:e.spineVersion,x:0,y:0,width:0,height:0,images:e.imagesPath||"./images/"},bones:[{name:"root"}],slots:[],skins:[{name:"default",attachments:{}}],animations:{}};e.omitFps||(c.skeleton.fps=i);const l=c.skins[0].attachments,h=new Set(["root"]),u=[...new Set([...n.timeline.animations.length?n.timeline.animations:["animation"],...o.map(g=>g.animation||"animation")])],d=new Map;for(const g of o){const v=((p=g.frames)==null?void 0:p.length)||0,b=a.has(g.id)?v:Math.min(v,X4(g,t)),y=(g.frames||[]).slice(0,b);y.length||r.push({code:"empty-cache",message:Ye("errors.emptyCacheWarning",{name:g.config.name})});const x=$T(B4(g.config.name,`system_${g.id}`),h);c.bones.push({name:x,parent:"root"});const _=G4(y,e.bonePool,h,x),E=Math.max(0,(b-1)/t),S=Math.max(1,Math.ceil(E*s)+1),C=Y4(g,t,s),M=d.get(g.animation)||[];M.push({system:g,tracks:_,targetFrames:S,boundaryFrames:C,attachmentPrefix:x}),d.set(g.animation,M);for(const P of _){c.bones.push({name:P.name,parent:x});const A=h1(g,P),R=new Set(A.map(Y=>Y.blend)),B=[],O=[];for(const Y of R){const L=`${P.name}_${Y}`;B.push(L),c.slots.push({name:L,bone:P.name,color:"ffffff00",blend:r1[Y]});const N=l[L]||(l[L]={}),F=A.filter(X=>X.blend===Y),D=d1(x,F);for(const X of F){const G=X.imageMode==="sequence"?Math.max(1,X.sequenceFrames.length):1;for(let K=0;K<G;K++){const J=D.get(`${X.id}_${K}`);J&&(N[J]=Z4(X,K,r))}}}if(g.config.trail)for(const Y of g.config.trailResources){if(!P.states.some(G=>{var K;return((K=G==null?void 0:G.trailState)==null?void 0:K.resourceId)===Y.id}))continue;const L=Math.max(2,Math.min(16,Math.round(Y.boneCount||3))),N=[];for(let G=0;G<L;G++){const K=`${P.name}_trail_${Y.id}_${G}`;N.push(K),c.bones.push({name:K,parent:x})}const F=`${P.name}_trail_${Y.id}`;O.push(F),c.slots.push({name:F,bone:N[0],color:"ffffff00",blend:r1[Y.blend]});const D=N.map(G=>c.bones.findIndex(K=>K.name===G)),X=NT("",Y.textureName||`trail_${Y.id}`);(l[F]||(l[F]={}))[`trail_${Y.id}`]=D4(g.config,Y,D,X),Y.texture||r.push({code:"missing-image",message:Ye("errors.missingTrailImageWarning",{file:Y.textureName||Y.id})})}const W=new Set([...B,...O]),V=c.slots.filter(Y=>W.has(String(Y.name)));V.length&&(c.slots=c.slots.filter(Y=>!V.includes(Y)),c.slots.push(...V.filter(Y=>O.includes(String(Y.name))),...V.filter(Y=>B.includes(String(Y.name)))))}}for(const g of u){const v=d.get(g)||[],b={bones:{},slots:{}};let y=!1;for(const{system:x,tracks:_,targetFrames:E,boundaryFrames:S,attachmentPrefix:C}of v)for(const M of _){const P=Array.from({length:E},(J,oe)=>H4(M,oe,t,s)),A=P.map(J=>!!(J!=null&&J.active)),R=[],B=[],O=[];P.forEach((J,oe)=>{J!=null&&J.active&&(R.push({frame:oe,values:[J.worldX??J.x,J.worldY??J.y]}),B.push(J.worldRotation??J.rotation),O.push({frame:oe,values:[J.worldScaleX??J.scaleX,J.worldScaleY??J.scaleY]}))});const W=N4(B),V=R.map((J,oe)=>({frame:J.frame,values:[W[oe]??0]})),Y=j4(P);for(const J of S)Y.add(J);const L=W4(P),N={},F=ca(R,s,["x","y"],[o1,o1],e,Y,L),D=ca(V,s,["value"],[l1],e,Y,L),X=ca(O,s,["x","y"],[fh,fh],e,Y,L);F.length&&(N.translate=F),D.length&&(N.rotate=D),X.length&&(N.scale=X),Object.keys(N).length&&(b.bones[M.name]=N,y=!0);const G=h1(x,M),K=new Set(G.map(J=>J.blend));for(const J of K){const oe=G.filter(Z=>Z.blend===J),le=d1(C,oe),ve=[],Se=[];let fe=16777215;for(let Z=0;Z<E;Z++){const se=P[Z],H=se?x.config.imageResources.find(U=>U.id===se.resourceId):void 0,j=!!se&&A[Z]&&se.imageVisible!==!1&&(H==null?void 0:H.blend)===J;se&&(H==null?void 0:H.blend)===J&&(fe=se.colorHex);const $=j?le.get(`${H.id}_${se.imageFrameIndex??0}`):void 0;ve.push($??null),Se.push(c1(fe,j?se.alpha:0))}const ye=oe.filter(Z=>Z.independentAlpha==="curve").map(Z=>u1(Z.alphaCurveMode,e)),q=ye.length?ye.includes("bezier")?"bezier":"linear":u1(x.config.alphaMode==="curve"?x.config.curveMode:void 0,e);f1(b,`${M.name}_${J}`,ve,Se,s,e,q,L,S),ve.some(Boolean)&&(y=!0)}if(x.config.trail)for(const J of x.config.trailResources){const oe=Math.max(2,Math.min(16,Math.round(J.boneCount||3))),le=P.map($=>{var U;return((U=$==null?void 0:$.trailState)==null?void 0:U.resourceId)===J.id?$.trailState:void 0}),ve=le.find($=>!!$);if(!ve)continue;const Se=q4(le),fe=z4(le),ye=J.widthSizeMode==="random"?Math.max(1,Number(J.widthMin)||0,Number(J.widthMax)||0):Math.max(.001,Number(J.width)||100);let q=ve;const Z=le.map($=>($&&(q=$),q));for(let $=0;$<oe;$++){const U=[],z=[],ee=[],ne=new Set(Se);for(const ge of S)ne.add(ge);const ue=K4(J,$/Math.max(1,oe-1));Z.forEach((ge,We)=>{const Le=ge==null?void 0:ge.bones[Math.min(ge.bones.length-1,$)];if(!Le)return;const Ce={x:Le.worldX??Le.x,y:Le.worldY??Le.y,rotation:Le.worldRotation??-Le.rotation};U.push({frame:We,values:[Ce.x,Ce.y]}),z.push({frame:We,values:[Ce.rotation]}),ee.push({frame:We,values:[1,Math.max(0,ge.width/ye)*ue]})});const xe=`${M.name}_trail_${J.id}_${$}`,be={},Ne=ca(U,s,["x","y"],[a1,a1],e,ne,fe),Be=ca(z,s,["value"],[l1],e,ne,fe),he=ca(ee,s,["x","y"],[fh,fh],e,ne,fe);Ne.length&&(be.translate=Ne),Be.length&&(be.rotate=Be),he.length&&(be.scale=he),Object.keys(be).length&&(b.bones[xe]=be)}const se=le.map(()=>`trail_${J.id}`);let H=ve.colorHex;const j=le.map($=>($&&(H=$.colorHex),c1(H,$?$.alpha:0)));f1(b,`${M.name}_trail_${J.id}`,se,j,s,e,e.keyframeCurve,fe,S),y=!0}}(y||!e.excludeEmptyAnimations)&&(c.animations[g]=b)}!Object.keys(c.animations).length&&!e.excludeEmptyAnimations&&(c.animations.animation={bones:{},slots:{}});const f=e.spineVersion==="3.8"?F4(c):c,m=JSON.stringify(f,null,2);return{json:f,text:m,warnings:r,particleSystemCount:o.length,animationCount:Object.keys(f.animations).length,boneCount:f.bones.length}}function eU(n,e){const t=new Blob([n.text],{type:"application/json;charset=utf-8"}),i=URL.createObjectURL(t),s=document.createElement("a");s.href=i,s.download=/\.json$/i.test(e)?e:`${e||"SpineParticle"}.json`,s.style.display="none",document.body.appendChild(s),s.click(),s.remove(),setTimeout(()=>URL.revokeObjectURL(i),1e3)}class FK{constructor(){T(this,"array",[])}add(e){const t=this.contains(e);return this.array[e|0]=e|0,!t}contains(e){return this.array[e|0]!==void 0}remove(e){this.array[e|0]=void 0}clear(){this.array.length=0}}class tU{constructor(){T(this,"entries",{});T(this,"size",0)}add(e){const t=this.entries[e];return this.entries[e]=!0,t?!1:(this.size++,!0)}addAll(e){const t=this.size;for(let i=0,s=e.length;i<s;i++)this.add(e[i]);return t!==this.size}contains(e){return this.entries[e]}clear(){this.entries={},this.size=0}}const yn=class yn{constructor(e=0,t=0,i=0,s=0){T(this,"r");T(this,"g");T(this,"b");T(this,"a");this.r=e,this.g=t,this.b=i,this.a=s}set(e,t,i,s){return this.r=e,this.g=t,this.b=i,this.a=s,this.clamp()}setFromColor(e){return this.r=e.r,this.g=e.g,this.b=e.b,this.a=e.a,this}setFromString(e){return e=e.charAt(0)==="#"?e.substr(1):e,this.r=parseInt(e.substr(0,2),16)/255,this.g=parseInt(e.substr(2,2),16)/255,this.b=parseInt(e.substr(4,2),16)/255,this.a=e.length!==8?1:parseInt(e.substr(6,2),16)/255,this}add(e,t,i,s){return this.r+=e,this.g+=t,this.b+=i,this.a+=s,this.clamp()}clamp(){return this.r<0?this.r=0:this.r>1&&(this.r=1),this.g<0?this.g=0:this.g>1&&(this.g=1),this.b<0?this.b=0:this.b>1&&(this.b=1),this.a<0?this.a=0:this.a>1&&(this.a=1),this}static rgba8888ToColor(e,t){e.r=((t&4278190080)>>>24)/255,e.g=((t&16711680)>>>16)/255,e.b=((t&65280)>>>8)/255,e.a=(t&255)/255}static rgb888ToColor(e,t){e.r=((t&16711680)>>>16)/255,e.g=((t&65280)>>>8)/255,e.b=(t&255)/255}toRgb888(){const e=t=>`0${(t*255).toString(16)}`.slice(-2);return+`0x${e(this.r)}${e(this.g)}${e(this.b)}`}static fromString(e,t=new yn){return t.setFromString(e)}};T(yn,"WHITE",new yn(1,1,1,1)),T(yn,"RED",new yn(1,0,0,1)),T(yn,"GREEN",new yn(0,1,0,1)),T(yn,"BLUE",new yn(0,0,1,1)),T(yn,"MAGENTA",new yn(1,0,1,1));let at=yn;const ni=class ni{static clamp(e,t,i){return e<t?t:e>i?i:e}static cosDeg(e){return Math.cos(e*ni.degRad)}static sinDeg(e){return Math.sin(e*ni.degRad)}static atan2Deg(e,t){return Math.atan2(e,t)*ni.radDeg}static signum(e){return e>0?1:e<0?-1:0}static toInt(e){return e>0?Math.floor(e):Math.ceil(e)}static cbrt(e){const t=Math.pow(Math.abs(e),.3333333333333333);return e<0?-t:t}static randomTriangular(e,t){return ni.randomTriangularWith(e,t,(e+t)*.5)}static randomTriangularWith(e,t,i){const s=Math.random(),r=t-e;return s<=(i-e)/r?e+Math.sqrt(s*r*(i-e)):t-Math.sqrt((1-s)*r*(t-i))}static isPowerOfTwo(e){return e&&(e&e-1)===0}};T(ni,"epsilon",1e-5),T(ni,"epsilon2",ni.epsilon*ni.epsilon),T(ni,"PI",3.1415927),T(ni,"PI2",ni.PI*2),T(ni,"invPI2",1/ni.PI2),T(ni,"radiansToDegrees",180/ni.PI),T(ni,"radDeg",ni.radiansToDegrees),T(ni,"degreesToRadians",ni.PI/180),T(ni,"degRad",ni.degreesToRadians);let Re=ni;const Cn=class Cn{apply(e,t,i){return t===void 0||i===void 0?this.applyInternal(e):e+(t-e)*this.applyInternal(i)}};T(Cn,"linear",new class extends Cn{applyInternal(e){return e}}),T(Cn,"smooth",new class extends Cn{applyInternal(e){return e*e*(3-2*e)}}),T(Cn,"slowFast",new class extends Cn{applyInternal(e){return e*e}}),T(Cn,"fastSlow",new class extends Cn{applyInternal(e){return(e-1)*(e-1)*-1+1}}),T(Cn,"circle",new class extends Cn{applyInternal(e){return e<=.5?(e*=2,(1-Math.sqrt(1-e*e))/2):(e--,e*=2,(Math.sqrt(1-e*e)+1)/2)}});let Da=Cn;class iU extends Da{constructor(t){super();T(this,"power",2);this.power=t}applyInternal(t){return t<=.5?Math.pow(t*2,this.power)/2:Math.pow((t-1)*2,this.power)/(this.power%2===0?-2:2)+1}}class LK extends iU{constructor(e){super(e)}applyInternal(e){return Math.pow(e-1,this.power)*(this.power%2===0?-1:1)+1}}const Or=class Or{static arrayCopy(e,t,i,s,r){for(let o=t,a=s;o<t+r;o++,a++)i[a]=e[o]}static arrayFill(e,t,i,s){for(let r=t;r<i;r++)e[r]=s}static setArraySize(e,t,i=0){const s=e.length;if(s===t)return e;if(e.length=t,s<t)for(let r=s;r<t;r++)e[r]=i;return e}static ensureArrayCapacity(e,t,i=0){return e.length>=t?e:Or.setArraySize(e,t,i)}static newArray(e,t){const i=[];for(let s=0;s<e;s++)i[s]=t;return i}static newFloatArray(e){if(Or.SUPPORTS_TYPED_ARRAYS)return new Float32Array(e);{const t=[];for(let i=0;i<t.length;i++)t[i]=0;return t}}static newShortArray(e){if(Or.SUPPORTS_TYPED_ARRAYS)return new Int16Array(e);{const t=[];for(let i=0;i<t.length;i++)t[i]=0;return t}}static toFloatArray(e){return Or.SUPPORTS_TYPED_ARRAYS?new Float32Array(e):e}static toSinglePrecision(e){return Or.SUPPORTS_TYPED_ARRAYS?Math.fround(e):e}static webkit602BugfixHelper(e){}static contains(e,t,i=!0){for(let s=0;s<e.length;s++)if(e[s]===t)return!0;return!1}static enumValue(e,t){return e[t[0].toUpperCase()+t.slice(1)]}};T(Or,"SUPPORTS_TYPED_ARRAYS",typeof Float32Array<"u");let Ke=Or;class OK{static logBones(e){for(let t=0;t<e.bones.length;t++){const i=e.bones[t].appliedPose;console.log(`${i.bone.data.name}, ${i.a}, ${i.b}, ${i.c}, ${i.d}, ${i.worldX}, ${i.worldY}`)}}}class nU{constructor(e){T(this,"items",[]);T(this,"instantiator");this.instantiator=e}obtain(){return this.items.length>0?this.items.pop():this.instantiator()}free(e){var t;(t=e.reset)==null||t.call(e),this.items.push(e)}freeAll(e){for(let t=0;t<e.length;t++)this.free(e[t])}clear(){this.items.length=0}}class p1{constructor(e=0,t=0){T(this,"x");T(this,"y");this.x=e,this.y=t}set(e,t){return this.x=e,this.y=t,this}length(){const e=this.x,t=this.y;return Math.sqrt(e*e+t*t)}normalize(){const e=this.length();return e!==0&&(this.x/=e,this.y/=e),this}}class $K{constructor(){T(this,"maxDelta",.064);T(this,"framesPerSecond",0);T(this,"delta",0);T(this,"totalTime",0);T(this,"lastTime",Date.now()/1e3);T(this,"frameCount",0);T(this,"frameTime",0)}update(){const e=Date.now()/1e3;this.delta=e-this.lastTime,this.frameTime+=this.delta,this.totalTime+=this.delta,this.delta>this.maxDelta&&(this.delta=this.maxDelta),this.lastTime=e,this.frameCount++,this.frameTime>1&&(this.framesPerSecond=this.frameCount/this.frameTime,this.frameTime=0,this.frameCount=0)}}class NK{constructor(e=32){T(this,"values");T(this,"addedValues",0);T(this,"lastValue",0);T(this,"mean",0);T(this,"dirty",!0);this.values=new Array(e)}hasEnoughData(){return this.addedValues>=this.values.length}addValue(e){this.addedValues<this.values.length&&this.addedValues++,this.values[this.lastValue++]=e,this.lastValue>this.values.length-1&&(this.lastValue=0),this.dirty=!0}getMean(){if(this.hasEnoughData()){if(this.dirty){let e=0;for(let t=0;t<this.values.length;t++)e+=this.values[t];this.mean=e/this.values.length,this.dirty=!1}return this.mean}return 0}}class sU{constructor(e){T(this,"_image");this._image=e}getImage(){return this._image}}var Ha;(function(n){n[n.Nearest=9728]="Nearest",n[n.Linear=9729]="Linear",n[n.MipMap=9987]="MipMap",n[n.MipMapNearestNearest=9984]="MipMapNearestNearest",n[n.MipMapLinearNearest=9985]="MipMapLinearNearest",n[n.MipMapNearestLinear=9986]="MipMapNearestLinear",n[n.MipMapLinearLinear=9987]="MipMapLinearLinear"})(Ha||(Ha={}));var ja;(function(n){n[n.MirroredRepeat=33648]="MirroredRepeat",n[n.ClampToEdge=33071]="ClampToEdge",n[n.Repeat=10497]="Repeat"})(ja||(ja={}));class DT{constructor(){T(this,"texture");T(this,"u",0);T(this,"v",0);T(this,"u2",0);T(this,"v2",0);T(this,"width",0);T(this,"height",0);T(this,"degrees",0);T(this,"offsetX",0);T(this,"offsetY",0);T(this,"originalWidth",0);T(this,"originalHeight",0)}}class DK extends sU{setFilters(e,t){}setWraps(e,t){}dispose(){}}class BK{constructor(e){T(this,"pages",[]);T(this,"regions",[]);const t=new rU(e),i=new Array(4),s={};s.size=h=>{h.width=parseInt(i[1]),h.height=parseInt(i[2])},s.format=()=>{},s.filter=h=>{h.minFilter=Ke.enumValue(Ha,i[1]),h.magFilter=Ke.enumValue(Ha,i[2])},s.repeat=h=>{i[1].indexOf("x")!==-1&&(h.uWrap=ja.Repeat),i[1].indexOf("y")!==-1&&(h.vWrap=ja.Repeat)},s.pma=h=>{h.pma=i[1]==="true"};var r={};r.xy=h=>{h.x=parseInt(i[1]),h.y=parseInt(i[2])},r.size=h=>{h.width=parseInt(i[1]),h.height=parseInt(i[2])},r.bounds=h=>{h.x=parseInt(i[1]),h.y=parseInt(i[2]),h.width=parseInt(i[3]),h.height=parseInt(i[4])},r.offset=h=>{h.offsetX=parseInt(i[1]),h.offsetY=parseInt(i[2])},r.orig=h=>{h.originalWidth=parseInt(i[1]),h.originalHeight=parseInt(i[2])},r.offsets=h=>{h.offsetX=parseInt(i[1]),h.offsetY=parseInt(i[2]),h.originalWidth=parseInt(i[3]),h.originalHeight=parseInt(i[4])},r.rotate=h=>{const u=i[1];u==="true"?h.degrees=90:u!=="false"&&(h.degrees=parseInt(u))},r.index=h=>{h.index=parseInt(i[1])};let o=t.readLine();for(;o&&o.trim().length===0;)o=t.readLine();for(;!(!o||o.trim().length===0||t.readEntry(i,o)===0);)o=t.readLine();let a=null,c=null,l=null;for(;o!==null;)if(o.trim().length===0)a=null,o=t.readLine();else if(a){const h=new BT(a,o);for(;;){const u=t.readEntry(i,o=t.readLine());if(u===0)break;const d=r[i[0]];if(d)d(h);else{c||(c=[]),l||(l=[]),c.push(i[0]);const f=[];for(let m=0;m<u;m++)f.push(parseInt(i[m+1]));l.push(f)}}h.originalWidth===0&&h.originalHeight===0&&(h.originalWidth=h.width,h.originalHeight=h.height),c&&c.length>0&&l&&l.length>0&&(h.names=c,h.values=l,c=null,l=null),h.u=h.x/a.width,h.v=h.y/a.height,h.degrees===90?(h.u2=(h.x+h.height)/a.width,h.v2=(h.y+h.width)/a.height):(h.u2=(h.x+h.width)/a.width,h.v2=(h.y+h.height)/a.height),this.regions.push(h)}else{for(a=new oU(o.trim());t.readEntry(i,o=t.readLine())!==0;){const h=s[i[0]];h&&h(a)}this.pages.push(a)}}findRegion(e){for(let t=0;t<this.regions.length;t++)if(this.regions[t].name===e)return this.regions[t];return null}setTextures(e,t=""){for(const i of this.pages)i.setTexture(e.get(t+i.name))}dispose(){var e;for(let t=0;t<this.pages.length;t++)(e=this.pages[t].texture)==null||e.dispose()}}class rU{constructor(e){T(this,"lines");T(this,"index",0);this.lines=e.split(/\r\n|\r|\n/)}readLine(){return this.index>=this.lines.length?null:this.lines[this.index++]}readEntry(e,t){if(!t||(t=t.trim(),t.length===0))return 0;const i=t.indexOf(":");if(i===-1)return 0;e[0]=t.substr(0,i).trim();for(let s=1,r=i+1;;s++){const o=t.indexOf(",",r);if(o===-1)return e[s]=t.substr(r).trim(),s;if(e[s]=t.substr(r,o-r).trim(),r=o+1,s===4)return 4}}}class oU{constructor(e){T(this,"name");T(this,"minFilter",Ha.Nearest);T(this,"magFilter",Ha.Nearest);T(this,"uWrap",ja.ClampToEdge);T(this,"vWrap",ja.ClampToEdge);T(this,"texture",null);T(this,"width",0);T(this,"height",0);T(this,"pma",!1);T(this,"regions",[]);this.name=e}setTexture(e){this.texture=e,e.setFilters(this.minFilter,this.magFilter),e.setWraps(this.uWrap,this.vWrap);for(const t of this.regions)t.texture=e}}class BT extends DT{constructor(t,i){super();T(this,"page");T(this,"name");T(this,"x",0);T(this,"y",0);T(this,"offsetX",0);T(this,"offsetY",0);T(this,"originalWidth",0);T(this,"originalHeight",0);T(this,"index",0);T(this,"degrees",0);T(this,"names",null);T(this,"values",null);this.page=t,this.name=i,t.regions.push(this)}}const Ru=class Ru{constructor(e){T(this,"name");T(this,"timelineAttachment");T(this,"timelineSlots",Ru.empty);if(!e)throw new Error("name cannot be null.");this.name=e,this.timelineAttachment=this}isTimelineActive(e,t,i){let s=e[t];if(s.bone.isActive()){const r=(i?s.getAppliedPose():s.getPose()).getAttachment();if(r!=null&&r.timelineAttachment===this)return!0}for(let r=0,o=this.timelineSlots.length;r<o;r++){if(s=e[this.timelineSlots[r]],!s.bone.isActive())continue;const a=(i?s.getAppliedPose():s.getPose()).getAttachment();if(a!=null&&a.timelineAttachment===this)return!0}return!1}};T(Ru,"empty",[]);let Eu=Ru;const ku=class ku extends Eu{constructor(t){super(t);T(this,"id",ku.nextID++);T(this,"bones",null);T(this,"vertices",[]);T(this,"worldVerticesLength",0)}computeWorldVertices(t,i,s,r,o,a,c){r=a+(r>>1)*c;const l=i.appliedPose.deform;let h=this.vertices;const u=this.bones;if(!u){l.length>0&&(h=l);const p=i.bone.appliedPose,g=p.worldX,v=p.worldY,b=p.a,y=p.b,x=p.c,_=p.d;for(let E=s,S=a;S<r;E+=2,S+=c){const C=h[E],M=h[E+1];o[S]=C*b+M*y+g,o[S+1]=C*x+M*_+v}return}let d=0,f=0;for(let p=0;p<s;p+=2){const g=u[d];d+=g+1,f+=g}const m=t.bones;if(l.length===0)for(let p=a,g=f*3;p<r;p+=c){let v=0,b=0,y=u[d++];for(y+=d;d<y;d++,g+=3){const x=m[u[d]].appliedPose,_=h[g],E=h[g+1],S=h[g+2];v+=(_*x.a+E*x.b+x.worldX)*S,b+=(_*x.c+E*x.d+x.worldY)*S}o[p]=v,o[p+1]=b}else{const p=l;for(let g=a,v=f*3,b=f<<1;g<r;g+=c){let y=0,x=0,_=u[d++];for(_+=d;d<_;d++,v+=3,b+=2){const E=m[u[d]].appliedPose,S=h[v]+p[b],C=h[v+1]+p[b+1],M=h[v+2];y+=(S*E.a+C*E.b+E.worldX)*M,x+=(S*E.c+C*E.d+E.worldY)*M}o[g]=y,o[g+1]=x}}}copyTo(t){this.bones?(t.bones=[],Ke.arrayCopy(this.bones,0,t.bones,0,this.bones.length)):t.bones=null,this.vertices&&(t.vertices=Ke.newFloatArray(this.vertices.length),Ke.arrayCopy(this.vertices,0,t.vertices,0,this.vertices.length)),t.worldVerticesLength=this.worldVerticesLength,t.timelineAttachment=this.timelineAttachment,t.timelineSlots=this.timelineSlots}};T(ku,"nextID",0);let gr=ku;class Zr extends gr{constructor(t,i){super(t);T(this,"sequence");T(this,"regionUVs",[]);T(this,"triangles",[]);T(this,"hullLength",0);T(this,"path");T(this,"color",new at(1,1,1,1));T(this,"sourceMesh",null);T(this,"edges",[]);T(this,"width",0);T(this,"height",0);T(this,"tempColor",new at(0,0,0,0));this.sequence=i}copy(){if(this.sourceMesh)return this.newLinkedMesh();const t=new Zr(this.name,this.sequence.copy());return t.path=this.path,t.color.setFromColor(this.color),this.copyTo(t),t.regionUVs=[],Ke.arrayCopy(this.regionUVs,0,t.regionUVs,0,this.regionUVs.length),t.triangles=[],Ke.arrayCopy(this.triangles,0,t.triangles,0,this.triangles.length),t.hullLength=this.hullLength,this.edges&&(t.edges=[],Ke.arrayCopy(this.edges,0,t.edges,0,this.edges.length)),t.width=this.width,t.height=this.height,t}updateSequence(){this.sequence.update(this)}getSourceMesh(){return this.sourceMesh}setSourceMesh(t){this.sourceMesh=t,t&&(this.bones=t.bones,this.vertices=t.vertices,this.worldVerticesLength=t.worldVerticesLength,this.regionUVs=t.regionUVs,this.triangles=t.triangles,this.hullLength=t.hullLength,this.worldVerticesLength=t.worldVerticesLength,this.edges=t.edges,this.width=t.width,this.height=t.height)}newLinkedMesh(){const t=new Zr(this.name,this.sequence.copy());return t.timelineAttachment=this.timelineAttachment,t.path=this.path,t.color.setFromColor(this.color),t.setSourceMesh(this.sourceMesh?this.sourceMesh:this),t.updateSequence(),t}static computeUVs(t,i,s){if(!t)throw new Error("Region not set.");const r=s.length;let o=t.u,a=t.v,c=0,l=0;if(t instanceof BT){const h=t.page,u=h.width,d=h.height;switch(t.degrees){case 90:o-=(t.originalHeight-t.offsetY-t.height)/u,a-=(t.originalWidth-t.offsetX-t.width)/d,c=t.originalHeight/u,l=t.originalWidth/d;for(let f=0;f<r;f+=2)s[f]=o+i[f+1]*c,s[f+1]=a+(1-i[f])*l;return;case 180:o-=(t.originalWidth-t.offsetX-t.width)/u,a-=t.offsetY/d,c=t.originalWidth/u,l=t.originalHeight/d;for(let f=0;f<r;f+=2)s[f]=o+(1-i[f])*c,s[f+1]=a+(1-i[f+1])*l;return;case 270:o-=t.offsetY/u,a-=t.offsetX/d,c=t.originalHeight/u,l=t.originalWidth/d;for(let f=0;f<r;f+=2)s[f]=o+(1-i[f+1])*c,s[f+1]=a+i[f]*l;return;default:o-=t.offsetX/u,a-=(t.originalHeight-t.offsetY-t.height)/d,c=t.originalWidth/u,l=t.originalHeight/d}}else t?(c=t.u2-o,l=t.v2-a):(o=a=0,c=l=1);for(let h=0;h<r;h+=2)s[h]=o+i[h]*c,s[h+1]=a+i[h+1]*l}}const bt=class bt extends Eu{constructor(t,i){super(t);T(this,"sequence");T(this,"x",0);T(this,"y",0);T(this,"scaleX",1);T(this,"scaleY",1);T(this,"rotation",0);T(this,"width",0);T(this,"height",0);T(this,"path");T(this,"color",new at(1,1,1,1));T(this,"tempColor",new at(1,1,1,1));this.sequence=i}copy(){const t=new bt(this.name,this.sequence.copy());return t.path=this.path,t.x=this.x,t.y=this.y,t.scaleX=this.scaleX,t.scaleY=this.scaleY,t.rotation=this.rotation,t.width=this.width,t.height=this.height,t.color.setFromColor(this.color),t}computeWorldVertices(t,i,s,r,o){const a=t.bone.appliedPose,c=a.worldX,l=a.worldY,h=a.a,u=a.b,d=a.c,f=a.d;let m=i[0],p=i[1];s[r]=m*h+p*u+c,s[r+1]=m*d+p*f+l,r+=o,m=i[2],p=i[3],s[r]=m*h+p*u+c,s[r+1]=m*d+p*f+l,r+=o,m=i[4],p=i[5],s[r]=m*h+p*u+c,s[r+1]=m*d+p*f+l,r+=o,m=i[6],p=i[7],s[r]=m*h+p*u+c,s[r+1]=m*d+p*f+l}getOffsets(t){return this.sequence.offsets[this.sequence.resolveIndex(t)]}updateSequence(){this.sequence.update(this)}static computeUVs(t,i,s,r,o,a,c,l,h,u){if(!t)throw new Error("Region not set.");const d=c/t.originalWidth*r,f=l/t.originalHeight*o,m=-c/2*r+t.offsetX*d,p=-l/2*o+t.offsetY*f,g=m+t.width*d,v=p+t.height*f,b=a*Re.degRad,y=Math.cos(b),x=Math.sin(b),_=m*y+i,E=m*x,S=p*y+s,C=p*x,M=g*y+i,P=g*x,A=v*y+s,R=v*x;h[0]=_-C,h[1]=S+E,h[2]=_-R,h[3]=A+E,h[4]=M-R,h[5]=A+P,h[6]=M-C,h[7]=S+P,t==null?(u[0]=0,u[1]=0,u[2]=0,u[3]=1,u[4]=1,u[5]=1,u[6]=1,u[7]=0):(u[1]=t.v2,u[2]=t.u,u[5]=t.v,u[6]=t.u2,t.degrees===90?(u[0]=t.u2,u[3]=t.v2,u[4]=t.u,u[7]=t.v):(u[0]=t.u,u[3]=t.v,u[4]=t.u2,u[7]=t.v2))}};T(bt,"X1",0),T(bt,"Y1",1),T(bt,"C1R",2),T(bt,"C1G",3),T(bt,"C1B",4),T(bt,"C1A",5),T(bt,"U1",6),T(bt,"V1",7),T(bt,"X2",8),T(bt,"Y2",9),T(bt,"C2R",10),T(bt,"C2G",11),T(bt,"C2B",12),T(bt,"C2A",13),T(bt,"U2",14),T(bt,"V2",15),T(bt,"X3",16),T(bt,"Y3",17),T(bt,"C3R",18),T(bt,"C3G",19),T(bt,"C3B",20),T(bt,"C3A",21),T(bt,"U3",22),T(bt,"V3",23),T(bt,"X4",24),T(bt,"Y4",25),T(bt,"C4R",26),T(bt,"C4G",27),T(bt,"C4B",28),T(bt,"C4A",29),T(bt,"U4",30),T(bt,"V4",31);let Wa=bt;const _a=class _a{constructor(e,t){T(this,"id",_a.nextID());T(this,"regions");T(this,"pathSuffix");T(this,"uvs");T(this,"offsets");T(this,"start",0);T(this,"digits",0);T(this,"setupIndex",0);this.regions=new Array(e),this.pathSuffix=t}copy(){const e=this.regions.length,t=new _a(e,this.pathSuffix);if(Ke.arrayCopy(this.regions,0,t.regions,0,e),t.start=this.start,t.digits=this.digits,t.setupIndex=this.setupIndex,this.uvs!=null){const i=this.uvs[0].length;t.uvs=[];for(let s=0;s<e;s++)t.uvs[s]=Ke.newFloatArray(i),Ke.arrayCopy(this.uvs[s],0,t.uvs[s],0,i)}if(this.offsets!=null){t.offsets=[];for(let i=0;i<e;i++)t.offsets[i]=[],Ke.arrayCopy(this.offsets[i],0,t.offsets[i],0,8)}return t}update(e){const t=this.regions.length;if(e instanceof Wa){this.uvs=[],this.offsets=[];for(let i=0;i<t;i++)this.uvs[i]=Ke.newFloatArray(8),this.offsets[i]=[],Wa.computeUVs(this.regions[i],e.x,e.y,e.scaleX,e.scaleY,e.rotation,e.width,e.height,this.offsets[i],this.uvs[i])}else if(e instanceof Zr){const i=e.regionUVs;this.uvs=[],this.offsets=void 0;for(let s=0;s<t;s++)this.uvs[s]=Ke.newFloatArray(i.length),Zr.computeUVs(this.regions[s],i,this.uvs[s])}}resolveIndex(e){let t=e.sequenceIndex;return t===-1&&(t=this.setupIndex),t>=this.regions.length&&(t=this.regions.length-1),t}getUVs(e){return this.uvs[e]}hasPathSuffix(){return this.pathSuffix}getPath(e,t){if(!this.pathSuffix)return e;let i=e;const s=(this.start+t).toString();for(let r=this.digits-s.length;r>0;r--)i+="0";return i+=s,i}static nextID(){return _a._nextID++}};T(_a,"_nextID",0);let za=_a;var $i;(function(n){n[n.hold=0]="hold",n[n.once=1]="once",n[n.loop=2]="loop",n[n.pingpong=3]="pingpong",n[n.onceReverse=4]="onceReverse",n[n.loopReverse=5]="loopReverse",n[n.pingpongReverse=6]="pingpongReverse"})($i||($i={}));const UT=[$i.hold,$i.once,$i.loop,$i.pingpong,$i.onceReverse,$i.loopReverse,$i.pingpongReverse];class e0{constructor(e,t,i){T(this,"name");T(this,"timelines",[]);T(this,"timelineIds");T(this,"bones");T(this,"color",new at(1,1,1,1));T(this,"duration");if(!e)throw new Error("name cannot be null.");this.name=e,this.duration=i,this.timelineIds=new tU,this.bones=[],this.setTimelines(t)}setTimelines(e){if(!e)throw new Error("timelines cannot be null.");this.timelines=e;const t=e.length;this.timelineIds.clear(),this.bones.length=0;const i=new Set,s=e;for(let r=0;r<t;r++){const o=s[r];this.timelineIds.addAll(o.propertyIds),lU(o)&&i.add(o.boneIndex)&&this.bones.push(o.boneIndex)}}hasTimeline(e){for(let t=0;t<e.length;t++)if(this.timelineIds.contains(e[t]))return!0;return!1}apply(e,t,i,s,r,o,a,c,l,h){if(!e)throw new Error("skeleton cannot be null.");s&&this.duration!==0&&(i%=this.duration,t>0&&(t%=this.duration));const u=this.timelines;for(let d=0,f=u.length;d<f;d++)u[d].apply(e,t,i,r,o,a,c,l,h)}}var ze;(function(n){n[n.current=0]="current",n[n.setup=1]="setup",n[n.first=2]="first"})(ze||(ze={}));var ot;(function(n){n[n.rotate=0]="rotate",n[n.x=1]="x",n[n.y=2]="y",n[n.scaleX=3]="scaleX",n[n.scaleY=4]="scaleY",n[n.shearX=5]="shearX",n[n.shearY=6]="shearY",n[n.inherit=7]="inherit",n[n.rgb=8]="rgb",n[n.alpha=9]="alpha",n[n.rgb2=10]="rgb2",n[n.attachment=11]="attachment",n[n.deform=12]="deform",n[n.event=13]="event",n[n.drawOrder=14]="drawOrder",n[n.drawOrderFolder=15]="drawOrderFolder",n[n.ikConstraint=16]="ikConstraint",n[n.transformConstraint=17]="transformConstraint",n[n.pathConstraintPosition=18]="pathConstraintPosition",n[n.pathConstraintSpacing=19]="pathConstraintSpacing",n[n.pathConstraintMix=20]="pathConstraintMix",n[n.physicsConstraintInertia=21]="physicsConstraintInertia",n[n.physicsConstraintStrength=22]="physicsConstraintStrength",n[n.physicsConstraintDamping=23]="physicsConstraintDamping",n[n.physicsConstraintMass=24]="physicsConstraintMass",n[n.physicsConstraintWind=25]="physicsConstraintWind",n[n.physicsConstraintGravity=26]="physicsConstraintGravity",n[n.physicsConstraintMix=27]="physicsConstraintMix",n[n.physicsConstraintReset=28]="physicsConstraintReset",n[n.sequence=29]="sequence",n[n.sliderTime=30]="sliderTime",n[n.sliderMix=31]="sliderMix"})(ot||(ot={}));let Gt=class{constructor(e,...t){T(this,"propertyIds");T(this,"frames");T(this,"additive",!1);T(this,"instant",!1);this.propertyIds=t,this.frames=Ke.newFloatArray(e*this.getFrameEntries())}getPropertyIds(){return this.propertyIds}getFrameEntries(){return 1}getFrameCount(){return this.frames.length/this.getFrameEntries()}getDuration(){return this.frames[this.frames.length-this.getFrameEntries()]}static search(e,t,i=1){const s=e.length;for(let r=i;r<s;r+=i)if(e[r]>t)return r-i;return s-i}};function aU(n){return typeof n=="object"&&n!==null&&typeof n.slotIndex=="number"}class qo extends Gt{constructor(t,i,...s){super(t,...s);T(this,"curves");this.curves=Ke.newFloatArray(t+i*18),this.curves[t-1]=1}setLinear(t){this.curves[t]=0}setStepped(t){this.curves[t]=1}shrink(t){const i=this.getFrameCount()+t*18;if(this.curves.length>i){const s=Ke.newFloatArray(i);Ke.arrayCopy(this.curves,0,s,0,i),this.curves=s}}setBezier(t,i,s,r,o,a,c,l,h,u,d){const f=this.curves;let m=this.getFrameCount()+t*18;s===0&&(f[i]=2+m);const p=(r-a*2+l)*.03,g=(o-c*2+h)*.03,v=((a-l)*3-r+u)*.006,b=((c-h)*3-o+d)*.006;let y=p*2+v,x=g*2+b,_=(a-r)*.3+p+v*.16666667,E=(c-o)*.3+g+b*.16666667,S=r+_,C=o+E;for(let M=m+18;m<M;m+=2)f[m]=S,f[m+1]=C,_+=y,E+=x,y+=v,x+=b,S+=_,C+=E}getBezierValue(t,i,s,r){const o=this.curves;if(o[r]>t){const h=this.frames[i],u=this.frames[i+s];return u+(t-h)/(o[r]-h)*(o[r+1]-u)}const a=r+18;for(r+=2;r<a;r+=2)if(o[r]>=t){const h=o[r-2],u=o[r-1];return u+(t-h)/(o[r]-h)*(o[r+1]-u)}i+=this.getFrameEntries();const c=o[a-2],l=o[a-1];return l+(t-c)/(this.frames[i]-c)*(this.frames[i+s]-l)}}class nr extends qo{constructor(e,t,i){super(e,t,i)}getFrameEntries(){return 2}setFrame(e,t,i){e<<=1,this.frames[e]=t,this.frames[e+1]=i}getCurveValue(e){const t=this.frames;let i=t.length-2;for(let r=2;r<=i;r+=2)if(t[r]>e){i=r-2;break}const s=this.curves[i>>1];switch(s){case 0:{const r=t[i],o=t[i+1];return o+(e-r)/(t[i+2]-r)*(t[i+2+1]-o)}case 1:return t[i+1]}return this.getBezierValue(e,i,1,s-2)}getRelativeValue(e,t,i,s,r,o){if(e<this.frames[0])return nr.beforeFirstKey(i,t,r,o);const a=this.getCurveValue(e);return i===ze.setup?o+a*t:r+(s?a:a+o-r)*t}getAbsoluteValue(e,t,i,s,r,o,a){return a===void 0?this.getAbsoluteValue1(e,t,i,s,r,o):this.getAbsoluteValue2(e,t,i,s,r,o,a)}getAbsoluteValue1(e,t,i,s,r,o){if(e<this.frames[0])return nr.beforeFirstKey(i,t,r,o);const a=this.getCurveValue(e);return i===ze.setup?o+(s?a:a-o)*t:r+(s?a:a-r)*t}getAbsoluteValue2(e,t,i,s,r,o,a){return e<this.frames[0]?nr.beforeFirstKey(i,t,r,o):i===ze.setup?o+(s?a:a-o)*t:r+(s?a:a-r)*t}getScaleValue(e,t,i,s,r,o,a){if(e<this.frames[0])return nr.beforeFirstKey(i,t,o,a);const c=this.getCurveValue(e)*a;if(t===1&&!s)return c;let l=i===ze.setup?a:o;return s?l+(c-a)*t:r?l+(Math.abs(c)*Math.sign(l)-l)*t:(l=Math.abs(l)*Math.sign(c),l+(c-l)*t)}static beforeFirstKey(e,t,i,s){switch(e){case ze.setup:return s;case ze.first:return i+(s-i)*t;case ze.current:return i}}}function lU(n){return typeof n=="object"&&n!==null&&typeof n.boneIndex=="number"}class Ko extends nr{constructor(t,i,s,r){super(t,i,`${r}|${s}`);T(this,"boneIndex");this.boneIndex=s,this.additive=!0}apply(t,i,s,r,o,a,c,l,h){const u=t.bones[this.boneIndex];u.active&&this.apply1(h?u.appliedPose:u.pose,u.data.setupPose,s,o,a,c,l)}}class t0 extends qo{constructor(t,i,s,r,o){super(t,i,`${r}|${s}`,`${o}|${s}`);T(this,"boneIndex");this.boneIndex=s,this.additive=!0}getFrameEntries(){return 3}setFrame(t,i,s,r){t*=3,this.frames[t]=i,this.frames[t+1]=s,this.frames[t+2]=r}apply(t,i,s,r,o,a,c,l,h){const u=t.bones[this.boneIndex];u.active&&this.apply1(h?u.appliedPose:u.pose,u.data.setupPose,s,o,a,c,l)}}class Cu extends Ko{constructor(e,t,i){super(e,t,i,ot.rotate)}apply1(e,t,i,s,r,o,a){e.rotation=this.getRelativeValue(i,s,r,o,e.rotation,t.rotation)}}class VT extends t0{constructor(e,t,i){super(e,t,i,ot.x,ot.y)}apply1(e,t,i,s,r,o,a){const c=this.frames;if(i<c[0]){switch(r){case ze.setup:e.x=t.x,e.y=t.y;break;case ze.first:e.x+=(t.x-e.x)*s,e.y+=(t.y-e.y)*s;break}return}let l=0,h=0;const u=Gt.search(c,i,3),d=this.curves[u/3];switch(d){case 0:{const f=c[u];l=c[u+1],h=c[u+2];const m=(i-f)/(c[u+3]-f);l+=(c[u+3+1]-l)*m,h+=(c[u+3+2]-h)*m;break}case 1:l=c[u+1],h=c[u+2];break;default:l=this.getBezierValue(i,u,1,d-2),h=this.getBezierValue(i,u,2,d+18-2)}r===ze.setup?(e.x=t.x+l*s,e.y=t.y+h*s):o?(e.x+=l*s,e.y+=h*s):(e.x+=(t.x+l-e.x)*s,e.y+=(t.y+h-e.y)*s)}}class XT extends Ko{constructor(e,t,i){super(e,t,i,ot.x)}apply1(e,t,i,s,r,o,a){e.x=this.getRelativeValue(i,s,r,o,e.x,t.x)}}class YT extends Ko{constructor(e,t,i){super(e,t,i,ot.y)}apply1(e,t,i,s,r,o,a){e.y=this.getRelativeValue(i,s,r,o,e.y,t.y)}}class GT extends t0{constructor(e,t,i){super(e,t,i,ot.scaleX,ot.scaleY)}apply1(e,t,i,s,r,o,a){const c=this.frames;if(i<c[0]){switch(r){case ze.setup:e.scaleX=t.scaleX,e.scaleY=t.scaleY;break;case ze.first:e.scaleX+=(t.scaleX-e.scaleX)*s,e.scaleY+=(t.scaleY-e.scaleY)*s;break}return}let l,h;const u=Gt.search(c,i,3),d=this.curves[u/3];switch(d){case 0:{const f=c[u];l=c[u+1],h=c[u+2];const m=(i-f)/(c[u+3]-f);l+=(c[u+3+1]-l)*m,h+=(c[u+3+2]-h)*m;break}case 1:l=c[u+1],h=c[u+2];break;default:l=this.getBezierValue(i,u,1,d-2),h=this.getBezierValue(i,u,2,d+18-2)}if(l*=t.scaleX,h*=t.scaleY,s===1&&!o)e.scaleX=l,e.scaleY=h;else{let f=0,m=0;r===ze.setup?(f=t.scaleX,m=t.scaleY):(f=e.scaleX,m=e.scaleY),o?(e.scaleX=f+(l-t.scaleX)*s,e.scaleY=m+(h-t.scaleY)*s):a?(e.scaleX=f+(Math.abs(l)*Math.sign(f)-f)*s,e.scaleY=m+(Math.abs(h)*Math.sign(m)-m)*s):(f=Math.abs(f)*Math.sign(l),m=Math.abs(m)*Math.sign(h),e.scaleX=f+(l-f)*s,e.scaleY=m+(h-m)*s)}}}class HT extends Ko{constructor(e,t,i){super(e,t,i,ot.scaleX)}apply1(e,t,i,s,r,o,a){e.scaleX=this.getScaleValue(i,s,r,o,a,e.scaleX,t.scaleX)}}class jT extends Ko{constructor(e,t,i){super(e,t,i,ot.scaleY)}apply1(e,t,i,s,r,o,a){e.scaleY=this.getScaleValue(i,s,r,o,a,e.scaleY,t.scaleY)}}class WT extends t0{constructor(e,t,i){super(e,t,i,ot.shearX,ot.shearY)}apply1(e,t,i,s,r,o,a){const c=this.frames;if(i<c[0]){switch(r){case ze.setup:e.shearX=t.shearX,e.shearY=t.shearY;break;case ze.first:e.shearX+=(t.shearX-e.shearX)*s,e.shearY+=(t.shearY-e.shearY)*s;break}return}let l=0,h=0;const u=Gt.search(c,i,3),d=this.curves[u/3];switch(d){case 0:{const f=c[u];l=c[u+1],h=c[u+2];const m=(i-f)/(c[u+3]-f);l+=(c[u+3+1]-l)*m,h+=(c[u+3+2]-h)*m;break}case 1:l=c[u+1],h=c[u+2];break;default:l=this.getBezierValue(i,u,1,d-2),h=this.getBezierValue(i,u,2,d+18-2)}r===ze.setup?(e.shearX=t.shearX+l*s,e.shearY=t.shearY+h*s):o?(e.shearX+=l*s,e.shearY+=h*s):(e.shearX+=(t.shearX+l-e.shearX)*s,e.shearY+=(t.shearY+h-e.shearY)*s)}}class zT extends Ko{constructor(e,t,i){super(e,t,i,ot.shearX)}apply1(e,t,i,s,r,o,a){e.shearX=this.getRelativeValue(i,s,r,o,e.shearX,t.shearX)}}class qT extends Ko{constructor(e,t,i){super(e,t,i,ot.shearY)}apply1(e,t,i,s,r,o,a){e.shearY=this.getRelativeValue(i,s,r,o,e.shearY,t.shearY)}}class KT extends Gt{constructor(t,i){super(t,`${ot.inherit}|${i}`);T(this,"boneIndex");this.boneIndex=i,this.instant=!0}getFrameEntries(){return 2}setFrame(t,i,s){t*=2,this.frames[t]=i,this.frames[t+1]=s}apply(t,i,s,r,o,a,c,l,h){const u=t.bones[this.boneIndex];if(!u.active)return;const d=h?u.appliedPose:u.pose;if(l)a!==ze.current&&(d.inherit=u.data.setupPose.inherit);else{const f=this.frames;s<f[0]?a!==ze.current&&(d.inherit=u.data.setupPose.inherit):d.inherit=this.frames[Gt.search(f,s,2)+1]}}}class pd extends qo{constructor(t,i,s,...r){super(t,i,...r);T(this,"slotIndex");this.slotIndex=s}apply(t,i,s,r,o,a,c,l,h){const u=t.slots[this.slotIndex];u.bone.active&&this.apply1(u,h?u.appliedPose:u.pose,s,o,a,c)}}class JT extends pd{constructor(e,t,i){super(e,t,i,`${ot.rgb}|${i}`,`${ot.alpha}|${i}`)}getFrameEntries(){return 5}setFrame(e,t,i,s,r,o){e*=5,this.frames[e]=t,this.frames[e+1]=i,this.frames[e+2]=s,this.frames[e+3]=r,this.frames[e+4]=o}apply1(e,t,i,s,r,o){const a=t.color,c=this.frames;if(i<c[0]){const p=e.data.setupPose.color;switch(r){case ze.setup:a.setFromColor(p);break;case ze.first:a.add((p.r-a.r)*s,(p.g-a.g)*s,(p.b-a.b)*s,(p.a-a.a)*s);break}return}let l=0,h=0,u=0,d=0;const f=Gt.search(c,i,5),m=this.curves[f/5];switch(m){case 0:{const p=c[f];l=c[f+1],h=c[f+2],u=c[f+3],d=c[f+4];const g=(i-p)/(c[f+5]-p);l+=(c[f+5+1]-l)*g,h+=(c[f+5+2]-h)*g,u+=(c[f+5+3]-u)*g,d+=(c[f+5+4]-d)*g;break}case 1:l=c[f+1],h=c[f+2],u=c[f+3],d=c[f+4];break;default:l=this.getBezierValue(i,f,1,m-2),h=this.getBezierValue(i,f,2,m+18-2),u=this.getBezierValue(i,f,3,m+36-2),d=this.getBezierValue(i,f,4,m+54-2)}if(s===1)a.set(l,h,u,d);else if(r===ze.setup){const p=e.data.setupPose.color;a.set(p.r+(l-p.r)*s,p.g+(h-p.g)*s,p.b+(u-p.b)*s,p.a+(d-p.a)*s)}else a.add((l-a.r)*s,(h-a.g)*s,(u-a.b)*s,(d-a.a)*s)}}class ZT extends pd{constructor(e,t,i){super(e,t,i,`${ot.rgb}|${i}`)}getFrameEntries(){return 4}setFrame(e,t,i,s,r){e<<=2,this.frames[e]=t,this.frames[e+1]=i,this.frames[e+2]=s,this.frames[e+3]=r}apply1(e,t,i,s,r,o){const a=t.color;let c=0,l=0,h=0;const u=this.frames;if(i<u[0]){const m=e.data.setupPose.color;switch(r){case ze.setup:{a.r=m.r,a.g=m.g,a.b=m.b;break}case ze.first:{a.r+=(m.r-a.r)*s,a.g+=(m.g-a.g)*s,a.b+=(m.b-a.b)*s;break}}return}const d=Gt.search(u,i,4),f=this.curves[d>>2];switch(f){case 0:{const m=u[d];c=u[d+1],l=u[d+2],h=u[d+3];const p=(i-m)/(u[d+4]-m);c+=(u[d+4+1]-c)*p,l+=(u[d+4+2]-l)*p,h+=(u[d+4+3]-h)*p;break}case 1:c=u[d+1],l=u[d+2],h=u[d+3];break;default:c=this.getBezierValue(i,d,1,f-2),l=this.getBezierValue(i,d,2,f+18-2),h=this.getBezierValue(i,d,3,f+36-2)}if(s!==1)if(r===ze.setup){const m=e.data.setupPose.color;c=m.r+(c-m.r)*s,l=m.g+(l-m.g)*s,h=m.b+(h-m.b)*s}else c=a.r+(c-a.r)*s,l=a.g+(l-a.g)*s,h=a.b+(h-a.b)*s;a.r=c<0?0:c>1?1:c,a.g=l<0?0:l>1?1:l,a.b=h<0?0:h>1?1:h}}class QT extends nr{constructor(t,i,s){super(t,i,`${ot.alpha}|${s}`);T(this,"slotIndex",0);this.slotIndex=s}apply(t,i,s,r,o,a,c,l,h){const u=t.slots[this.slotIndex];if(!u.bone.active)return;const d=(h?u.appliedPose:u.pose).color;let f=0;const m=this.frames;if(s<m[0]){const p=u.data.setupPose.color.a;switch(a){case ze.setup:d.a=p;break;case ze.first:d.a+=(p-d.a)*o;break}return}if(f=this.getCurveValue(s),o!==1)if(a===ze.setup){const p=u.data.setupPose.color;f=p.a+(f-p.a)*o}else f=d.a+(f-d.a)*o;d.a=f<0?0:f>1?1:f}}class eE extends pd{constructor(e,t,i){super(e,t,i,`${ot.rgb}|${i}`,`${ot.alpha}|${i}`,`${ot.rgb2}|${i}`)}getFrameEntries(){return 8}setFrame(e,t,i,s,r,o,a,c,l){e<<=3,this.frames[e]=t,this.frames[e+1]=i,this.frames[e+2]=s,this.frames[e+3]=r,this.frames[e+4]=o,this.frames[e+5]=a,this.frames[e+6]=c,this.frames[e+7]=l}apply1(e,t,i,s,r,o){const a=t.color,c=t.darkColor;let l=0,h=0,u=0;const d=this.frames;if(i<d[0]){const y=e.data.setupPose,x=y.color,_=y.darkColor;switch(r){case ze.setup:{a.setFromColor(x),c.r=_.r,c.g=_.g,c.b=_.b;break}case ze.first:{a.add((x.r-a.r)*s,(x.g-a.g)*s,(x.b-a.b)*s,(x.a-a.a)*s),c.r+=(_.r-c.r)*s,c.g+=(_.g-c.g)*s,c.b+=(_.b-c.b)*s;break}}return}let f=0,m=0,p=0,g=0;const v=Gt.search(d,i,8),b=this.curves[v>>3];switch(b){case 0:{const y=d[v];f=d[v+1],m=d[v+2],p=d[v+3],g=d[v+4],l=d[v+5],h=d[v+6],u=d[v+7];const x=(i-y)/(d[v+8]-y);f+=(d[v+8+1]-f)*x,m+=(d[v+8+2]-m)*x,p+=(d[v+8+3]-p)*x,g+=(d[v+8+4]-g)*x,l+=(d[v+8+5]-l)*x,h+=(d[v+8+6]-h)*x,u+=(d[v+8+7]-u)*x;break}case 1:f=d[v+1],m=d[v+2],p=d[v+3],g=d[v+4],l=d[v+5],h=d[v+6],u=d[v+7];break;default:f=this.getBezierValue(i,v,1,b-2),m=this.getBezierValue(i,v,2,b+18-2),p=this.getBezierValue(i,v,3,b+36-2),g=this.getBezierValue(i,v,4,b+54-2),l=this.getBezierValue(i,v,5,b+72-2),h=this.getBezierValue(i,v,6,b+90-2),u=this.getBezierValue(i,v,7,b+108-2)}if(s===1)a.set(f,m,p,g);else if(r===ze.setup){const y=e.data.setupPose;let x=y.color;a.set(x.r+(f-x.r)*s,x.g+(m-x.g)*s,x.b+(p-x.b)*s,x.a+(g-x.a)*s),x=y.darkColor,l=x.r+(l-x.r)*s,h=x.g+(h-x.g)*s,u=x.b+(u-x.b)*s}else a.add((f-a.r)*s,(m-a.g)*s,(p-a.b)*s,(g-a.a)*s),l=c.r+(l-c.r)*s,h=c.g+(h-c.g)*s,u=c.b+(u-c.b)*s;c.r=l<0?0:l>1?1:l,c.g=h<0?0:h>1?1:h,c.b=u<0?0:u>1?1:u}}class tE extends pd{constructor(e,t,i){super(e,t,i,`${ot.rgb}|${i}`,`${ot.rgb2}|${i}`)}getFrameEntries(){return 7}setFrame(e,t,i,s,r,o,a,c){e*=7,this.frames[e]=t,this.frames[e+1]=i,this.frames[e+2]=s,this.frames[e+3]=r,this.frames[e+4]=o,this.frames[e+5]=a,this.frames[e+6]=c}apply1(e,t,i,s,r,o){const a=t.color,c=t.darkColor;let l=0,h=0,u=0,d=0,f=0,m=0;const p=this.frames;if(i<p[0]){const b=e.data.setupPose,y=b.color,x=b.darkColor;switch(r){case ze.setup:a.r=y.r,a.g=y.g,a.b=y.b,c.r=x.r,c.g=x.g,c.b=x.b;break;case ze.first:a.r+=(y.r-a.r)*s,a.g+=(y.g-a.g)*s,a.b+=(y.b-a.b)*s,c.r+=(x.r-c.r)*s,c.g+=(x.g-c.g)*s,c.b+=(x.b-c.b)*s;break}return}const g=Gt.search(p,i,7),v=this.curves[g/7];switch(v){case 0:{const b=p[g];l=p[g+1],h=p[g+2],u=p[g+3],d=p[g+4],f=p[g+5],m=p[g+6];const y=(i-b)/(p[g+7]-b);l+=(p[g+7+1]-l)*y,h+=(p[g+7+2]-h)*y,u+=(p[g+7+3]-u)*y,d+=(p[g+7+4]-d)*y,f+=(p[g+7+5]-f)*y,m+=(p[g+7+6]-m)*y;break}case 1:l=p[g+1],h=p[g+2],u=p[g+3],d=p[g+4],f=p[g+5],m=p[g+6];break;default:l=this.getBezierValue(i,g,1,v-2),h=this.getBezierValue(i,g,2,v+18-2),u=this.getBezierValue(i,g,3,v+36-2),d=this.getBezierValue(i,g,4,v+54-2),f=this.getBezierValue(i,g,5,v+72-2),m=this.getBezierValue(i,g,6,v+90-2)}if(s!==1)if(r===ze.setup){const b=e.data.setupPose;let y=b.color;l=y.r+(l-y.r)*s,h=y.g+(h-y.g)*s,u=y.b+(u-y.b)*s,y=b.darkColor,d=y.r+(d-y.r)*s,f=y.g+(f-y.g)*s,m=y.b+(m-y.b)*s}else l=a.r+(l-a.r)*s,h=a.g+(h-a.g)*s,u=a.b+(u-a.b)*s,d=c.r+(d-c.r)*s,f=c.g+(f-c.g)*s,m=c.b+(m-c.b)*s;a.r=l<0?0:l>1?1:l,a.g=h<0?0:h>1?1:h,a.b=u<0?0:u>1?1:u,c.r=d<0?0:d>1?1:d,c.g=f<0?0:f>1?1:f,c.b=m<0?0:m>1?1:m}}class $l extends Gt{constructor(t,i){super(t,`${ot.attachment}|${i}`);T(this,"slotIndex",0);T(this,"attachmentNames");this.slotIndex=i,this.attachmentNames=new Array(t),this.instant=!0}getFrameCount(){return this.frames.length}setFrame(t,i,s){this.frames[t]=i,this.attachmentNames[t]=s}apply(t,i,s,r,o,a,c,l,h){const u=t.slots[this.slotIndex];if(!u.bone.active)return;const d=h?u.appliedPose:u.pose;l||s<this.frames[0]?a!==ze.current&&this.setAttachment(t,d,u.data.attachmentName):this.setAttachment(t,d,this.attachmentNames[Gt.search(this.frames,s)])}setAttachment(t,i,s){i.setAttachment(s?t.getAttachment(this.slotIndex,s):null)}}class iE extends qo{constructor(t,i,s,r){super(t,i,`${ot.deform}|${s}|${r.id}`);T(this,"slotIndex");T(this,"attachment");T(this,"vertices");this.slotIndex=s,this.attachment=r,this.vertices=new Array(t),this.additive=!0}getFrameCount(){return this.frames.length}setFrame(t,i,s){this.frames[t]=i,this.vertices[t]=s}setBezier(t,i,s,r,o,a,c,l,h,u,d){const f=this.curves;let m=this.getFrameCount()+t*18;s===0&&(f[i]=2+m);const p=(r-a*2+l)*.03,g=h*.03-c*.06,v=((a-l)*3-r+u)*.006,b=(c-h+.33333333)*.018;let y=p*2+v,x=g*2+b,_=(a-r)*.3+p+v*.16666667,E=c*.3+g+b*.16666667,S=r+_,C=E;for(let M=m+18;m<M;m+=2)f[m]=S,f[m+1]=C,_+=y,E+=x,y+=v,x+=b,S+=_,C+=E}getCurvePercent(t,i){const s=this.curves;let r=s[i];switch(r){case 0:{const l=this.frames[i];return(t-l)/(this.frames[i+this.getFrameEntries()]-l)}case 1:return 0}if(r-=2,s[r]>t){const l=this.frames[i];return s[r+1]*(t-l)/(s[r]-l)}const o=r+18;for(r+=2;r<o;r+=2)if(s[r]>=t){const l=s[r-2],h=s[r-1];return h+(t-l)/(s[r]-l)*(s[r+1]-h)}const a=s[o-2],c=s[o-1];return c+(1-c)*(t-a)/(this.frames[i+this.getFrameEntries()]-a)}apply(t,i,s,r,o,a,c,l,h){const u=t.slots;if(!this.attachment.isTimelineActive(u,this.slotIndex,h))return;const d=this.attachment.timelineSlots,f=this.frames;if(s<f[0]){this.applyBeforeFirst(u[this.slotIndex],h,o,a);for(const b of d)this.applyBeforeFirst(u[b],h,o,a);return}let m,p,g;if(s>=f[f.length-1])g=0,m=this.vertices[f.length-1],p=null;else{const b=Gt.search(f,s);g=this.getCurvePercent(s,b),m=this.vertices[b],p=this.vertices[b+1]}const v=this.vertices[0].length;this.applyToSlot(u[this.slotIndex],h,m,p,g,v,o,a,c);for(const b of d)this.applyToSlot(u[b],h,m,p,g,v,o,a,c)}applyBeforeFirst(t,i,s,r){if(!t.bone.active)return;const o=i?t.appliedPose:t.pose;if(o.attachment==null||o.attachment.timelineAttachment!==this.attachment)return;const a=o.deform;switch(a.length===0&&(r=ze.setup),r){case ze.setup:a.length=0;break;case ze.first:{if(s===1){a.length=0;return}const c=this.vertices[0].length;a.length=c;const l=a,h=o.attachment;if(h.bones===null){const u=h.vertices;for(let d=0;d<c;d++)l[d]+=(u[d]-l[d])*s}else{s=1-s;for(let u=0;u<c;u++)l[u]*=s}}}}applyToSlot(t,i,s,r,o,a,c,l,h){if(!t.bone.active)return;const u=i?t.appliedPose:t.pose;if(u.attachment===null||u.attachment.timelineAttachment!==this.attachment)return;const d=u.attachment,f=u.deform;f.length===0&&(l=ze.setup);const m=l===ze.setup;if(f.length=a,r===null)if(c===1)if(h&&!m)if(d.bones)for(let p=0;p<a;p++)f[p]+=s[p];else{const p=d.vertices;for(let g=0;g<a;g++)f[g]+=s[g]-p[g]}else Ke.arrayCopy(s,0,f,0,a);else if(m)if(d.bones)for(let p=0;p<a;p++)f[p]=s[p]*c;else{const p=d.vertices;for(let g=0;g<a;g++){const v=p[g];f[g]=v+(s[g]-v)*c}}else if(h)if(d.bones)for(let p=0;p<a;p++)f[p]+=s[p]*c;else{const p=d.vertices;for(let g=0;g<a;g++)f[g]+=(s[g]-p[g])*c}else for(let p=0;p<a;p++)f[p]+=(s[p]-f[p])*c;else if(c===1)if(h&&!m)if(d.bones)for(let p=0;p<a;p++){const g=s[p];f[p]+=g+(r[p]-g)*o}else{const p=d.vertices;for(let g=0;g<a;g++){const v=s[g];f[g]+=v+(r[g]-v)*o-p[g]}}else if(o===0)Ke.arrayCopy(s,0,f,0,a);else for(let p=0;p<a;p++){const g=s[p];f[p]=g+(r[p]-g)*o}else if(m)if(d.bones)for(let p=0;p<a;p++){const g=s[p];f[p]=(g+(r[p]-g)*o)*c}else{const p=d.vertices;for(let g=0;g<a;g++){const v=s[g],b=p[g];f[g]=b+(v+(r[g]-v)*o-b)*c}}else if(h)if(d.bones)for(let p=0;p<a;p++){const g=s[p];f[p]+=(g+(r[p]-g)*o)*c}else{const p=d.vertices;for(let g=0;g<a;g++){const v=s[g];f[g]+=(v+(r[g]-v)*o-p[g])*c}}else for(let p=0;p<a;p++){const g=s[p];f[p]+=(g+(r[p]-g)*o-f[p])*c}}}const Mn=class Mn extends Gt{constructor(t,i,s){super(t,`${ot.sequence}|${i}|${s.sequence.id}`);T(this,"slotIndex");T(this,"attachment");this.slotIndex=i,this.attachment=s,this.instant=!0}getFrameEntries(){return Mn.ENTRIES}getSlotIndex(){return this.slotIndex}getAttachment(){return this.attachment}setFrame(t,i,s,r,o){const a=this.frames;t*=Mn.ENTRIES,a[t]=i,a[t+Mn.MODE]=s|r<<4,a[t+Mn.DELAY]=o}apply(t,i,s,r,o,a,c,l,h){const u=t.slots;if(!this.attachment.isTimelineActive(u,this.slotIndex,h))return;const d=this.attachment.timelineSlots,f=this.frames;if(l||s<f[0]){if(a!==ze.current){this.setupPose(u[this.slotIndex],h);for(const b of d)this.setupPose(u[b],h)}return}const m=Gt.search(f,s,Mn.ENTRIES),p=f[m],g=f[m+Mn.MODE],v=f[m+Mn.DELAY];this.applyToSlot(u[this.slotIndex],h,s,p,g,v);for(const b of d)this.applyToSlot(u[b],h,s,p,g,v)}setupPose(t,i){if(!t.bone.active)return;const s=i?t.appliedPose:t.pose;s.attachment===null||s.attachment.timelineAttachment!==this.attachment||(s.sequenceIndex=-1)}applyToSlot(t,i,s,r,o,a){if(!t.bone.active)return;const c=i?t.appliedPose:t.pose;if(c.attachment===null||c.attachment.timelineAttachment!==this.attachment)return;let l=o>>4,h=c.attachment.sequence.regions.length;const u=UT[o&15];if(u!==$i.hold)switch(l+=(s-r)/a+1e-5|0,u){case $i.once:l=Math.min(h-1,l);break;case $i.loop:l%=h;break;case $i.pingpong:{const d=(h<<1)-2;l=d===0?0:l%d,l>=h&&(l=d-l);break}case $i.onceReverse:l=Math.max(h-1-l,0);break;case $i.loopReverse:l=h-1-l%h;break;case $i.pingpongReverse:{const d=(h<<1)-2;l=d===0?0:(l+h-1)%d,l>=h&&(l=d-l)}}c.sequenceIndex=l}};T(Mn,"ENTRIES",3),T(Mn,"MODE",1),T(Mn,"DELAY",2);let Mu=Mn;const Fu=class Fu extends Gt{constructor(t){super(t,...Fu.propertyIds);T(this,"events");this.events=new Array(t),this.instant=!0}getFrameCount(){return this.frames.length}setFrame(t,i){this.frames[t]=i.time,this.events[t]=i}apply(t,i,s,r,o,a,c,l,h){if(!r)return;const u=this.frames,d=this.frames.length;if(i>s)this.apply(null,i,Number.MAX_VALUE,r,0,a,!1,!1,!1),i=-1;else if(i>=u[d-1])return;if(s<u[0])return;let f=0;if(i<u[0])f=0;else{f=Gt.search(u,i)+1;const m=u[f];for(;f>0&&u[f-1]===m;)f--}for(;f<d&&s>=u[f];f++)r.push(this.events[f])}};T(Fu,"propertyIds",[`${ot.event}`]);let cc=Fu;const Ta=class Ta extends Gt{constructor(t){super(t,...Ta.propertyIds);T(this,"drawOrders");this.drawOrders=new Array(t),this.instant=!0}getFrameCount(){return this.frames.length}setFrame(t,i,s){this.frames[t]=i,this.drawOrders[t]=s}apply(t,i,s,r,o,a,c,l,h){const u=h?t.drawOrder.appliedPose:t.drawOrder.pose,d=t.slots;if(l||s<this.frames[0]){a!==ze.current&&Ke.arrayCopy(d,0,u,0,t.slots.length);return}const f=this.drawOrders[Gt.search(this.frames,s)];if(!f)Ke.arrayCopy(d,0,u,0,t.slots.length);else for(let m=0,p=f.length;m<p;m++)u[m]=d[f[m]]}};T(Ta,"propertyID",`${ot.drawOrder}`),T(Ta,"propertyIds",[Ta.propertyID]);let qr=Ta;const Dl=class Dl extends Gt{constructor(t,i,s){super(t,...Dl.propertyIds(i));T(this,"slots");T(this,"inFolder");T(this,"drawOrders");this.slots=i,this.drawOrders=new Array(t),this.inFolder=new Array(s);for(const r of i)this.inFolder[r]=!0;this.instant=!0}static propertyIds(t){const i=t.length,s=new Array(i);for(let r=0;r<i;r++)s[r]=`${Dl.propertyID}|${t[r]}`;return s}getFrameCount(){return this.frames.length}getSlots(){return this.slots}getDrawOrders(){return this.drawOrders}setFrame(t,i,s){this.frames[t]=i,this.drawOrders[t]=s}apply(t,i,s,r,o,a,c,l,h){const u=h?t.drawOrder.appliedPose:t.drawOrder.pose,d=t.slots;if(l||s<this.frames[0])a!==ze.current&&this.setup(u,d);else{const f=this.drawOrders[Gt.search(this.frames,s)];if(!f)this.setup(u,d);else{const m=this.inFolder,p=this.slots;for(let g=0,v=0,b=p.length;!(m[u[g].data.index]&&(u[g]=d[p[f[v]]],++v===b));g++);}}}setup(t,i){const{inFolder:s,slots:r}=this;for(let o=0,a=0,c=r.length;!(s[t[o].data.index]&&(t[o]=i[r[a]],++a===c));o++);}};T(Dl,"propertyID",`${ot.drawOrderFolder}`);let qa=Dl;function cU(n){return typeof n=="object"&&n!==null&&typeof n.constraintIndex=="number"}class nE extends qo{constructor(t,i,s){super(t,i,`${ot.ikConstraint}|${s}`);T(this,"constraintIndex",0);this.constraintIndex=s}getFrameEntries(){return 6}setFrame(t,i,s,r,o,a,c){t*=6,this.frames[t]=i,this.frames[t+1]=s,this.frames[t+2]=r,this.frames[t+3]=o,this.frames[t+4]=a?1:0,this.frames[t+5]=c?1:0}apply(t,i,s,r,o,a,c,l,h){const u=t.constraints[this.constraintIndex];if(!u.active)return;const d=h?u.appliedPose:u.pose,f=this.frames;if(s<f[0]){const y=u.data.setupPose;switch(a){case ze.setup:{d.mix=y.mix,d.softness=y.softness,d.bendDirection=y.bendDirection,d.compress=y.compress,d.stretch=y.stretch;break}case ze.first:{d.mix+=(y.mix-d.mix)*o,d.softness+=(y.softness-d.softness)*o,d.bendDirection=y.bendDirection,d.compress=y.compress,d.stretch=y.stretch;break}}return}let m=0,p=0;const g=Gt.search(f,s,6),v=this.curves[g/6];switch(v){case 0:{const y=f[g];m=f[g+1],p=f[g+2];const x=(s-y)/(f[g+6]-y);m+=(f[g+6+1]-m)*x,p+=(f[g+6+2]-p)*x;break}case 1:m=f[g+1],p=f[g+2];break;default:m=this.getBezierValue(s,g,1,v-2),p=this.getBezierValue(s,g,2,v+18-2)}const b=a===ze.setup?u.data.setupPose:d;d.mix=b.mix+(m-b.mix)*o,d.softness=b.softness+(p-b.softness)*o,l?a===ze.setup&&(d.bendDirection=b.bendDirection,d.compress=b.compress,d.stretch=b.stretch):(d.bendDirection=f[g+3],d.compress=f[g+4]!==0,d.stretch=f[g+5]!==0)}}class sE extends qo{constructor(t,i,s){super(t,i,`${ot.transformConstraint}|${s}`);T(this,"constraintIndex",0);this.constraintIndex=s,this.additive=!0}getFrameEntries(){return 7}setFrame(t,i,s,r,o,a,c,l){const h=this.frames;t*=7,h[t]=i,h[t+1]=s,h[t+2]=r,h[t+3]=o,h[t+4]=a,h[t+5]=c,h[t+6]=l}apply(t,i,s,r,o,a,c,l,h){const u=t.constraints[this.constraintIndex];if(!u.active)return;const d=h?u.appliedPose:u.pose,f=this.frames;if(s<f[0]){const S=u.data.setupPose;switch(a){case ze.setup:{d.mixRotate=S.mixRotate,d.mixX=S.mixX,d.mixY=S.mixY,d.mixScaleX=S.mixScaleX,d.mixScaleY=S.mixScaleY,d.mixShearY=S.mixShearY;break}case ze.first:{d.mixRotate+=(S.mixRotate-d.mixRotate)*o,d.mixX+=(S.mixX-d.mixX)*o,d.mixY+=(S.mixY-d.mixY)*o,d.mixScaleX+=(S.mixScaleX-d.mixScaleX)*o,d.mixScaleY+=(S.mixScaleY-d.mixScaleY)*o,d.mixShearY+=(S.mixShearY-d.mixShearY)*o;break}}return}let m,p,g,v,b,y;const x=Gt.search(f,s,7),_=this.curves[x/7];switch(_){case 0:{const S=f[x];m=f[x+1],p=f[x+2],g=f[x+3],v=f[x+4],b=f[x+5],y=f[x+6];const C=(s-S)/(f[x+7]-S);m+=(f[x+7+1]-m)*C,p+=(f[x+7+2]-p)*C,g+=(f[x+7+3]-g)*C,v+=(f[x+7+4]-v)*C,b+=(f[x+7+5]-b)*C,y+=(f[x+7+6]-y)*C;break}case 1:m=f[x+1],p=f[x+2],g=f[x+3],v=f[x+4],b=f[x+5],y=f[x+6];break;default:m=this.getBezierValue(s,x,1,_-2),p=this.getBezierValue(s,x,2,_+18-2),g=this.getBezierValue(s,x,3,_+36-2),v=this.getBezierValue(s,x,4,_+54-2),b=this.getBezierValue(s,x,5,_+72-2),y=this.getBezierValue(s,x,6,_+90-2)}const E=a===ze.setup?u.data.setupPose:d;c?(d.mixRotate=E.mixRotate+m*o,d.mixX=E.mixX+p*o,d.mixY=E.mixY+g*o,d.mixScaleX=E.mixScaleX+v*o,d.mixScaleY=E.mixScaleY+b*o,d.mixShearY=E.mixShearY+y*o):(d.mixRotate=E.mixRotate+(m-E.mixRotate)*o,d.mixX=E.mixX+(p-E.mixX)*o,d.mixY=E.mixY+(g-E.mixY)*o,d.mixScaleX=E.mixScaleX+(v-E.mixScaleX)*o,d.mixScaleY=E.mixScaleY+(b-E.mixScaleY)*o,d.mixShearY=E.mixShearY+(y-E.mixShearY)*o)}}class xc extends nr{constructor(t,i,s,r){super(t,i,`${r}|${s}`);T(this,"constraintIndex");this.constraintIndex=s}}class rE extends xc{constructor(e,t,i){super(e,t,i,ot.pathConstraintPosition),this.additive=!0}apply(e,t,i,s,r,o,a,c,l){const h=e.constraints[this.constraintIndex];if(h.active){const u=l?h.appliedPose:h.pose;u.position=this.getAbsoluteValue(i,r,o,a,u.position,h.data.setupPose.position)}}}class oE extends xc{constructor(e,t,i){super(e,t,i,ot.pathConstraintSpacing)}apply(e,t,i,s,r,o,a,c,l){const h=e.constraints[this.constraintIndex];if(h.active){const u=l?h.appliedPose:h.pose;u.spacing=this.getAbsoluteValue(i,r,o,!1,u.spacing,h.data.setupPose.spacing)}}}class aE extends qo{constructor(t,i,s){super(t,i,`${ot.pathConstraintMix}|${s}`);T(this,"constraintIndex");this.constraintIndex=s}getFrameEntries(){return 4}setFrame(t,i,s,r,o){const a=this.frames;t<<=2,a[t]=i,a[t+1]=s,a[t+2]=r,a[t+3]=o}apply(t,i,s,r,o,a,c,l,h){const u=t.constraints[this.constraintIndex];if(!u.active)return;const d=h?u.appliedPose:u.pose,f=this.frames;if(s<f[0]){const x=u.data.setupPose;switch(a){case ze.setup:{d.mixRotate=x.mixRotate,d.mixX=x.mixX,d.mixY=x.mixY;break}case ze.first:{d.mixRotate+=(x.mixRotate-d.mixRotate)*o,d.mixX+=(x.mixX-d.mixX)*o,d.mixY+=(x.mixY-d.mixY)*o;break}}return}let m,p,g;const v=Gt.search(f,s,4),b=this.curves[v>>2];switch(b){case 0:{const x=f[v];m=f[v+1],p=f[v+2],g=f[v+3];const _=(s-x)/(f[v+4]-x);m+=(f[v+4+1]-m)*_,p+=(f[v+4+2]-p)*_,g+=(f[v+4+3]-g)*_;break}case 1:m=f[v+1],p=f[v+2],g=f[v+3];break;default:m=this.getBezierValue(s,v,1,b-2),p=this.getBezierValue(s,v,2,b+18-2),g=this.getBezierValue(s,v,3,b+36-2)}const y=a===ze.setup?u.data.setupPose:d;c?(d.mixRotate=y.mixRotate+m*o,d.mixX=y.mixX+p*o,d.mixY=y.mixY+g*o):(d.mixRotate=y.mixRotate+(m-y.mixRotate)*o,d.mixX=y.mixX+(p-y.mixX)*o,d.mixY=y.mixY+(g-y.mixY)*o)}}class ro extends xc{constructor(e,t,i,s){super(e,t,i,s)}apply(e,t,i,s,r,o,a,c,l){if(a&&!this.additive&&(a=!1),this.constraintIndex===-1){const h=i>=this.frames[0]?this.getCurveValue(i):0,u=e.physics;for(const d of u)if(d.active&&this.global(d.data)){const f=l?d.appliedPose:d.pose;this.set(f,this.getAbsoluteValue(i,r,o,a,this.get(f),this.get(d.data.setupPose),h))}}else{const h=e.constraints[this.constraintIndex];if(h.active){const u=l?h.appliedPose:h.pose;this.set(u,this.getAbsoluteValue(i,r,o,a,this.get(u),this.get(h.data.setupPose)))}}}}class lE extends ro{constructor(e,t,i){super(e,t,i,ot.physicsConstraintInertia)}get(e){return e.inertia}set(e,t){e.inertia=t}global(e){return e.inertiaGlobal}}class cE extends ro{constructor(e,t,i){super(e,t,i,ot.physicsConstraintStrength)}get(e){return e.strength}set(e,t){e.strength=t}global(e){return e.strengthGlobal}}class hE extends ro{constructor(e,t,i){super(e,t,i,ot.physicsConstraintDamping)}get(e){return e.damping}set(e,t){e.damping=t}global(e){return e.dampingGlobal}}class uE extends ro{constructor(e,t,i){super(e,t,i,ot.physicsConstraintMass)}get(e){return 1/e.massInverse}set(e,t){e.massInverse=1/t}global(e){return e.massGlobal}}class dE extends ro{constructor(e,t,i){super(e,t,i,ot.physicsConstraintWind),this.additive=!0}get(e){return e.wind}set(e,t){e.wind=t}global(e){return e.windGlobal}}class fE extends ro{constructor(e,t,i){super(e,t,i,ot.physicsConstraintGravity),this.additive=!0}get(e){return e.gravity}set(e,t){e.gravity=t}global(e){return e.gravityGlobal}}class mE extends ro{constructor(e,t,i){super(e,t,i,ot.physicsConstraintMix)}get(e){return e.mix}set(e,t){e.mix=t}global(e){return e.mixGlobal}}const Lu=class Lu extends Gt{constructor(t,i){super(t,...Lu.propertyIds);T(this,"constraintIndex");this.constraintIndex=i,this.instant=!0}getFrameCount(){return this.frames.length}setFrame(t,i){this.frames[t]=i}apply(t,i,s,r,o,a,c,l,h){let u;if(this.constraintIndex!==-1&&(u=t.constraints[this.constraintIndex],!u.active))return;const d=this.frames;if(i>s)this.apply(t,i,Number.MAX_VALUE,[],o,a,!1,!1,!1),i=-1;else if(i>=d[d.length-1])return;if(!(s<d[0])&&(i<d[0]||s>=d[Gt.search(d,i)+1]))if(u!=null)u.reset(t);else for(const f of t.physics)f.active&&f.reset(t)}};T(Lu,"propertyIds",[ot.physicsConstraintReset.toString()]);let Au=Lu;class pE extends xc{constructor(e,t,i){super(e,t,i,ot.sliderTime)}apply(e,t,i,s,r,o,a,c,l){const h=e.constraints[this.constraintIndex];if(h.active){const u=l?h.appliedPose:h.pose;u.time=this.getAbsoluteValue(i,r,o,a,u.time,h.data.setupPose.time)}}}class gE extends xc{constructor(e,t,i){super(e,t,i,ot.sliderMix),this.additive=!0}apply(e,t,i,s,r,o,a,c,l){const h=e.constraints[this.constraintIndex];if(h.active){const u=l?h.appliedPose:h.pose;u.mix=this.getAbsoluteValue(i,r,o,a,u.mix,h.data.setupPose.mix)}}}const Bl=class Bl{constructor(e){T(this,"data");T(this,"tracks",[]);T(this,"timeScale",1);T(this,"unkeyedState",0);T(this,"events",[]);T(this,"listeners",[]);T(this,"queue",new uU(this));T(this,"propertyIds",new Map);T(this,"animationsChanged",!1);T(this,"trackEntryPool",new nU(()=>new hU));this.data=e}update(e){e*=this.timeScale;const t=this.tracks;for(let i=0,s=t.length;i<s;i++){const r=t[i];if(!r)continue;r.animationLast=r.nextAnimationLast,r.trackLast=r.nextTrackLast;let o=e*r.timeScale;if(r.delay>0){if(r.delay-=o,r.delay>0)continue;o=-r.delay,r.delay=0}let a=r.next;if(a){const c=r.trackLast-a.delay;if(c>=0){for(a.delay=0,a.trackTime+=r.timeScale===0?0:(c/r.timeScale+e)*a.timeScale,r.trackTime+=o,this.setTrack(i,a,!0);a.mixingFrom;)a.mixTime+=e,a=a.mixingFrom;continue}}else if(r.trackLast>=r.trackEnd&&!r.mixingFrom){t[i]=null,this.queue.end(r),this.clearNext(r);continue}if(r.mixingFrom&&this.updateMixingFrom(r,e)){let c=r.mixingFrom;for(r.mixingFrom=null,c&&(c.mixingTo=null);c;)this.queue.end(c),c=c.mixingFrom}r.trackTime+=o}this.queue.drain()}updateMixingFrom(e,t){const i=e.mixingFrom;if(!i)return!0;const s=this.updateMixingFrom(i,t);if(i.animationLast=i.nextAnimationLast,i.trackLast=i.nextTrackLast,e.nextTrackLast!==-1&&e.mixTime>=e.mixDuration){if(i.totalAlpha===0||e.mixDuration===0){if(e.mixingFrom=i.mixingFrom,i.mixingFrom!=null&&(i.mixingFrom.mixingTo=e),i.totalAlpha===0)for(let r=e;r.mixingTo!=null;r=r.mixingTo)r.keepHold=!0;this.queue.end(i)}return s}return i.trackTime+=t*i.timeScale,e.mixTime+=t,!1}apply(e){if(!e)throw new Error("skeleton cannot be null.");this.animationsChanged&&this._animationsChanged();const t=this.events,i=this.tracks;let s=!1;for(let a=0,c=i.length;a<c;a++){const l=i[a];if(!l||l.delay>0)continue;s=!0;let h=l.alpha;l.mixingFrom?h*=this.applyMixingFrom(l,e):l.trackTime>=l.trackEnd&&!l.next&&(h=0);let u=l.animationLast,d=l.getAnimationTime(),f=d,m=t;l.reverse&&(f=l.animation.duration-f,m=null);const p=l.animation.timelines,g=p.length;if(a===0&&h===1)for(let v=0;v<g;v++){Ke.webkit602BugfixHelper(h);const b=p[v];b instanceof $l?this.applyAttachmentTimeline(b,e,f,ze.setup,!0):b.apply(e,u,f,m,h,ze.setup,!1,!1,!1)}else{const v=l.timelineMode,b=h>=l.alphaAttachmentThreshold,y=l.additive,x=y||l.shortestRotation,_=!x&&l.timelinesRotation.length!==g<<1;_&&(l.timelinesRotation.length=g<<1);for(let E=0;E<g;E++){const S=p[E],C=v[E]&b1;!x&&S instanceof Cu?this.applyRotateTimeline(S,e,f,h,C,l.timelinesRotation,E<<1,_):S instanceof $l?this.applyAttachmentTimeline(S,e,f,C,b):(Ke.webkit602BugfixHelper(h),S.apply(e,u,f,m,h,C,y,!1,!1))}}l.reverse&&this.eventsReverse(l,u,d),this.queueEvents(l,d),t.length=0,l.nextAnimationLast=d,l.nextTrackLast=l.trackTime}const r=this.unkeyedState+x1,o=e.slots;for(let a=0,c=e.slots.length;a<c;a++){const l=o[a];if(l.attachmentState===r){const h=l.data.attachmentName;l.pose.setAttachment(h?e.getAttachment(l.data.index,h):null)}}return this.unkeyedState+=2,this.queue.drain(),s}applyMixingFrom(e,t){const i=e.mixingFrom,s=i.mixingFrom!==null?this.applyMixingFrom(i,t):1,r=e.mix(),o=i.alpha*s,a=1-r*e.alpha,c=o*(1-r),l=a>0?c/a:o,h=i.animation.timelines,u=h.length,d=i.timelineMode,f=i.timelineHoldMix,m=r<i.mixAttachmentThreshold,p=r<i.mixDrawOrderThreshold,g=i.additive,v=g||i.shortestRotation,b=!v&&i.timelinesRotation.length!==u<<1;b&&(i.timelinesRotation.length=u<<1);const y=i.timelinesRotation;let x=i.animationLast,_=i.getAnimationTime(),E=_,S=null;i.reverse?E=i.animation.duration-E:r<i.eventThreshold&&(S=this.events),i.totalAlpha=0;for(let C=0;C<u;C++){const M=h[C],P=d[C],A=P&b1;let R=0;if((P&ph)!==0){const B=f[C];R=B==null?l:l*(1-B.mix())}else{if(!p&&M instanceof qr&&A===ze.current)continue;R=c}if(i.totalAlpha+=R,!v&&M instanceof Cu)this.applyRotateTimeline(M,t,E,R,A,y,C<<1,b);else if(M instanceof $l)this.applyAttachmentTimeline(M,t,E,A,m&&R>=i.alphaAttachmentThreshold);else{const B=!p||!(M instanceof qr)||A===ze.current;M.apply(t,x,E,S,R,A,g,B,!1)}}return i.reverse&&r<i.eventThreshold&&this.eventsReverse(i,x,_),e.mixDuration>0&&this.queueEvents(i,_),this.events.length=0,i.nextAnimationLast=_,i.nextTrackLast=i.trackTime,r}applyAttachmentTimeline(e,t,i,s,r){const o=t.slots[e.slotIndex];if(!o.bone.active||!r&&o.attachmentState===this.unkeyedState+w1)return;let a=i<e.frames[0],c=null;if(a||(c=e.attachmentNames[Gt.search(e.frames,i)],a=!r&&c==null),a){if(s===ze.current)return;c=o.data.attachmentName}o.pose.setAttachment(c==null?null:t.getAttachment(o.data.index,c)),r?o.attachmentState=this.unkeyedState+w1:a||(o.attachmentState=this.unkeyedState+x1)}applyRotateTimeline(e,t,i,s,r,o,a,c){if(c&&(o[a]=0),s===1){e.apply(t,0,i,null,1,r,!1,!1,!1);return}const l=t.bones[e.boneIndex];if(!l.active)return;const h=l.pose,u=l.data.setupPose,d=e.frames;let f,m;if(i<d[0]){switch(r){case ze.setup:{h.rotation=u.rotation;return}case ze.current:return}f=h.rotation,m=u.rotation}else f=r===ze.setup?u.rotation:h.rotation,m=u.rotation+e.getCurveValue(i);let p=0,g=m-f;if(g-=Math.ceil(g/360-.5)*360,g===0)p=o[a];else{let v=0,b=0;c?(v=0,b=g):(v=o[a],b=o[a+1]);const y=v-v%360;p=g+y;let x=g>=0,_=v>=0;Math.abs(b)<=90&&Re.signum(b)!==Re.signum(g)&&(Math.abs(v-y)>180?(p+=360*Re.signum(v),_=x):y!==0?p-=360*Re.signum(v):_=x),_!==x&&(p+=360*Re.signum(v)),o[a]=p}o[a+1]=g,h.rotation=f+p*s}queueEvents(e,t){const i=e.animationStart,s=e.animationEnd,r=s-i,o=e.reverse;let a=e.trackLast%r;o&&(a=r-a);const c=this.events;let l=0,h=c.length;for(;l<h;l++){const d=c[l];if(d.time<a!==o)break;d.time>=i&&d.time<=s&&this.queue.event(e,d)}let u=!1;if(e.loop)if(r===0)u=!0;else{const d=Math.floor(e.trackTime/r);u=d>0&&d>Math.floor(e.trackLast/r)}else u=t>=s&&e.animationLast<s;for(u&&this.queue.complete(e);l<h;l++){const d=c[l];d.time>=i&&d.time<=s&&this.queue.event(e,d)}}eventsReverse(e,t,i){const s=e.animation.duration,r=s-t,o=s-i,a=e.animation.timelines;for(let c=0,l=e.animation.timelines.length;c<l;c++){const h=a[c];if(!(h instanceof cc))continue;const u=h.events,d=h.frames,f=d.length;if(r>=o){for(let m=0;m<f;m++)if(!(d[m]<o)){if(d[m]>=r)break;this.events.push(u[m])}}else{for(let p=0;p<f&&!(d[p]>=r);p++)this.events.push(u[p]);let m=0;for(;m<f&&!(d[m]>=o);m++);for(;m<f;m++)this.events.push(u[m])}}}clearTracks(){const e=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let t=0,i=this.tracks.length;t<i;t++)this.clearTrack(t);this.tracks.length=0,this.queue.drainDisabled=e,this.queue.drain()}clearTrack(e){if(e<0)throw new Error("trackIndex must be >= 0.");if(e>=this.tracks.length)return;const t=this.tracks[e];if(!t)return;this.queue.end(t),this.clearNext(t);let i=t;for(;;){const s=i.mixingFrom;if(!s)break;this.queue.end(s),i.mixingFrom=null,i.mixingTo=null,i=s}this.tracks[t.trackIndex]=null,this.queue.drain()}setTrack(e,t,i){const s=this.expandToIndex(e);this.tracks[e]=t,t.previous=null,s&&(s.next=null,i&&this.queue.interrupt(s),t.mixingFrom=s,s.mixingTo=t,t.mixTime=0,s.timelinesRotation.length=0),this.queue.start(t)}setAnimation(e,t,i=!1){return typeof t=="string"?this.setAnimation1(e,t,i):this.setAnimation2(e,t,i)}setAnimation1(e,t,i=!1){const s=this.data.skeletonData.findAnimation(t);if(!s)throw new Error(`Animation not found: ${t}`);return this.setAnimation2(e,s,i)}setAnimation2(e,t,i=!1){if(e<0)throw new Error("trackIndex must be >= 0.");if(!t)throw new Error("animation cannot be null.");let s=!0,r=this.expandToIndex(e);r&&(r.nextTrackLast===-1&&r.animation===t?(this.tracks[e]=r.mixingFrom,this.queue.interrupt(r),this.queue.end(r),this.clearNext(r),r=r.mixingFrom,s=!1):this.clearNext(r));const o=this.trackEntry(e,t,i,r);return this.setTrack(e,o,s),this.queue.drain(),o}addAnimation(e,t,i=!1,s=0){return typeof t=="string"?this.addAnimation1(e,t,i,s):this.addAnimation2(e,t,i,s)}addAnimation1(e,t,i=!1,s=0){const r=this.data.skeletonData.findAnimation(t);if(!r)throw new Error(`Animation not found: ${t}`);return this.addAnimation2(e,r,i,s)}addAnimation2(e,t,i=!1,s=0){if(e<0)throw new Error("trackIndex must be >= 0.");if(!t)throw new Error("animation cannot be null.");let r=this.expandToIndex(e);if(r)for(;r.next;)r=r.next;const o=this.trackEntry(e,t,i,r);return r?(r.next=o,o.previous=r,s<=0&&(s=Math.max(s+r.getTrackComplete()-o.mixDuration,0))):(this.setTrack(e,o,!0),this.queue.drain(),s<0&&(s=0)),o.delay=s,o}setEmptyAnimation(e,t=0){const i=this.setAnimation(e,Bl.emptyAnimation,!1);return i.mixDuration=t,i.trackEnd=t,i}addEmptyAnimation(e,t=0,i=0){const s=this.addAnimation(e,Bl.emptyAnimation,!1,i);return i<=0&&(s.delay=Math.max(s.delay+s.mixDuration-t,0)),s.mixDuration=t,s.trackEnd=t,s}setEmptyAnimations(e=0){const t=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let i=0,s=this.tracks.length;i<s;i++){const r=this.tracks[i];r&&this.setEmptyAnimation(r.trackIndex,e)}this.queue.drainDisabled=t,this.queue.drain()}expandToIndex(e){return e<this.tracks.length?this.tracks[e]:(Ke.ensureArrayCapacity(this.tracks,e+1,null),this.tracks.length=e+1,null)}trackEntry(e,t,i,s){const r=this.trackEntryPool.obtain();return r.reset(),r.trackIndex=e,r.animation=t,r.loop=i,r.additive=!1,r.reverse=!1,r.shortestRotation=!1,r.eventThreshold=0,r.alphaAttachmentThreshold=0,r.mixAttachmentThreshold=0,r.mixDrawOrderThreshold=0,r.animationStart=0,r.animationEnd=t.duration,r.animationLast=-1,r.nextAnimationLast=-1,r.delay=0,r.trackTime=0,r.trackLast=-1,r.nextTrackLast=-1,r.trackEnd=Number.MAX_VALUE,r.timeScale=1,r.alpha=1,r.mixTime=0,r.mixDuration=s?this.data.getMix(s.animation,t):0,r.totalAlpha=0,r.keepHold=!1,r}clearNext(e){let t=e.next;for(;t;)this.queue.dispose(t),t=t.next;e.next=null}_animationsChanged(){this.animationsChanged=!1;const e=this.tracks;for(let t=0,i=e.length;t<i;t++){const s=e[t];if(!s)continue;let r=s;for(;r.mixingFrom;)r=r.mixingFrom;do this.computeHold(r,s),r=r.mixingTo;while(r)}this.propertyIds.clear()}computeHold(e,t){var h,u;const i=e.animation.timelines,s=e.animation.timelines.length,r=e.timelineMode;r.length=s;const o=e.timelineHoldMix;o.length=0;const a=e.additive,c=e.keepHold,l=e.mixingTo;for(let d=0;d<s;d++){const f=i[d],m=f.propertyIds,p=this.from(t,f,m);if(a&&f.additive){r[d]=p;continue}let g;if(l===null||f.instant||l.additive&&f.additive||!((h=l.animation)!=null&&h.hasTimeline(m)))g=p;else{g=p|ph;for(let v=l.mixingTo;v!=null;v=v.mixingTo)if(v.additive&&f.additive||!((u=v.animation)!=null&&u.hasTimeline(m))){v.mixDuration>0&&(o[d]=v);break}}c&&(g=g&~ph|r[d]&ph),r[d]=g}}from(e,t,i){const s=this.propertyIds;let r=dU;for(let o=0,a=i.length;o<a;o++){const c=s.get(i[o]);if(c===void 0)s.set(i[o],e);else{if(c!==e){for(;++o<a;)s.has(i[o])||s.set(i[o],e);return v1}r=y1}}if(t instanceof qa){const o=s.get(qr.propertyID);if(o!=null)return o!==e?v1:y1}return r}getTrack(e){if(e<0)throw new Error("trackIndex must be >= 0.");return e>=this.tracks.length?null:this.tracks[e]}addListener(e){if(!e)throw new Error("listener cannot be null.");this.listeners.push(e)}removeListener(e){const t=this.listeners.indexOf(e);t>=0&&this.listeners.splice(t,1)}clearListeners(){this.listeners.length=0}clearListenerNotifications(){this.queue.clear()}};T(Bl,"emptyAnimation",new e0("<empty>",[],0));let g1=Bl;class hU{constructor(){T(this,"animation",null);T(this,"previous",null);T(this,"next",null);T(this,"mixingFrom",null);T(this,"mixingTo",null);T(this,"listener",null);T(this,"trackIndex",0);T(this,"loop",!1);T(this,"additive",!1);T(this,"reverse",!1);T(this,"shortestRotation",!1);T(this,"keepHold",!1);T(this,"eventThreshold",0);T(this,"mixAttachmentThreshold",0);T(this,"alphaAttachmentThreshold",0);T(this,"mixDrawOrderThreshold",0);T(this,"animationStart",0);T(this,"animationEnd",0);T(this,"animationLast",0);T(this,"nextAnimationLast",0);T(this,"delay",0);T(this,"trackTime",0);T(this,"trackLast",0);T(this,"nextTrackLast",0);T(this,"trackEnd",0);T(this,"timeScale",0);T(this,"alpha",0);T(this,"mixTime",0);T(this,"mixDuration",0);T(this,"totalAlpha",0);T(this,"mixInterpolation",Da.linear);T(this,"timelineMode",[]);T(this,"timelineHoldMix",[]);T(this,"timelinesRotation",[])}setMixDuration(e,t){this.mixDuration=e,t!==void 0&&(t<=0&&(t=this.previous==null?0:Math.max(t+this.previous.getTrackComplete()-e,0)),this.delay=t)}setMixInterpolation(e){if(!e)throw new Error("mixInterpolation cannot be null.");this.mixInterpolation=e}mix(){if(this.mixDuration===0)return 1;let e=this.mixTime/this.mixDuration;return e>=1?1:this.mixInterpolation===Da.linear?e:(e=this.mixInterpolation.apply(e),e<0?0:e>1?1:e)}reset(){this.next=null,this.previous=null,this.mixingFrom=null,this.mixingTo=null,this.mixInterpolation=Da.linear,this.animation=null,this.listener=null,this.timelineMode.length=0,this.timelineHoldMix.length=0,this.timelinesRotation.length=0}getAnimationTime(){if(!this.loop)return Math.min(this.trackTime+this.animationStart,this.animationEnd);const e=this.animationEnd-this.animationStart;return e===0?this.animationStart:this.trackTime%e+this.animationStart}setAnimationLast(e){this.animationLast=e,this.nextAnimationLast=e}isComplete(){return this.trackTime>=this.animationEnd-this.animationStart}resetRotationDirections(){this.timelinesRotation.length=0}getTrackComplete(){const e=this.animationEnd-this.animationStart;if(e!==0){if(this.loop)return e*(1+(this.trackTime/e|0));if(this.trackTime<e)return e}return this.trackTime}wasApplied(){return this.nextTrackLast!==-1}isNextReady(){return this.next!=null&&this.nextTrackLast-this.next.delay>=0}}class uU{constructor(e){T(this,"objects",[]);T(this,"drainDisabled",!1);T(this,"animState");this.animState=e}start(e){this.objects.push(cn.start),this.objects.push(e),this.animState.animationsChanged=!0}interrupt(e){this.objects.push(cn.interrupt),this.objects.push(e)}end(e){this.objects.push(cn.end),this.objects.push(e),this.animState.animationsChanged=!0}dispose(e){this.objects.push(cn.dispose),this.objects.push(e)}complete(e){this.objects.push(cn.complete),this.objects.push(e)}event(e,t){this.objects.push(cn.event),this.objects.push(e),this.objects.push(t)}drain(){var e,t,i,s,r,o;if(!this.drainDisabled){this.drainDisabled=!0;for(let a=0;a<this.objects.length;a+=2){const c=this.objects,l=c[a],h=c[a+1],u=this.animState.listeners.slice();switch(l){case cn.start:(e=h.listener)!=null&&e.start&&h.listener.start(h);for(let d=0;d<u.length;d++){const f=u[d];f.start&&f.start(h)}break;case cn.interrupt:(t=h.listener)!=null&&t.interrupt&&h.listener.interrupt(h);for(let d=0;d<u.length;d++){const f=u[d];f.interrupt&&f.interrupt(h)}break;case cn.end:(i=h.listener)!=null&&i.end&&h.listener.end(h);for(let d=0;d<u.length;d++){const f=u[d];f.end&&f.end(h)}case cn.dispose:(s=h.listener)!=null&&s.dispose&&h.listener.dispose(h);for(let d=0;d<u.length;d++){const f=u[d];f.dispose&&f.dispose(h)}this.animState.trackEntryPool.free(h);break;case cn.complete:(r=h.listener)!=null&&r.complete&&h.listener.complete(h);for(let d=0;d<u.length;d++){const f=u[d];f.complete&&f.complete(h)}break;case cn.event:{const d=c[a+++2];(o=h.listener)!=null&&o.event&&h.listener.event(h,d);for(let f=0;f<u.length;f++){const m=u[f];m.event&&m.event(h,d)}break}}}this.clear(),this.drainDisabled=!1}}clear(){this.objects.length=0}}var cn;(function(n){n[n.start=0]="start",n[n.interrupt=1]="interrupt",n[n.end=2]="end",n[n.dispose=3]="dispose",n[n.complete=4]="complete",n[n.event=5]="event"})(cn||(cn={}));class VK{start(e){}interrupt(e){}end(e){}dispose(e){}complete(e){}event(e,t){}}const v1=0,dU=1,y1=2,b1=3,ph=4,x1=1,w1=2;class i0 extends gr{constructor(t){super(t);T(this,"color",new at(1,1,1,1))}copy(){const t=new i0(this.name);return this.copyTo(t),t.color.setFromColor(this.color),t}}class gd extends gr{constructor(t){super(t);T(this,"endSlot",null);T(this,"convex",!1);T(this,"inverse",!1);T(this,"color",new at(.2275,.2275,.8078,1))}copy(){const t=new gd(this.name);return this.copyTo(t),t.endSlot=this.endSlot,t.convex=this.convex,t.inverse=this.inverse,t.color.setFromColor(this.color),t}}class hc extends gr{constructor(t){super(t);T(this,"lengths",[]);T(this,"closed",!1);T(this,"constantSpeed",!1);T(this,"color",new at(1,1,1,1))}copy(){const t=new hc(this.name);return this.copyTo(t),t.lengths=[],Ke.arrayCopy(this.lengths,0,t.lengths,0,this.lengths.length),t.closed=this.closed,t.constantSpeed=this.constantSpeed,t.color.setFromColor(this.color),t}}class n0 extends gr{constructor(t){super(t);T(this,"x",0);T(this,"y",0);T(this,"rotation",0);T(this,"color",new at(.38,.94,0,1))}computeWorldPosition(t,i){return i.x=this.x*t.a+this.y*t.b+t.worldX,i.y=this.x*t.c+this.y*t.d+t.worldY,i}computeWorldRotation(t){const i=this.rotation*Re.degRad,s=Math.cos(i),r=Math.sin(i),o=s*t.a+r*t.b,a=s*t.c+r*t.d;return Re.atan2Deg(a,o)}copy(){const t=new n0(this.name);return t.x=this.x,t.y=this.y,t.rotation=this.rotation,t.color.setFromColor(this.color),t}}class s0{constructor(e,t){T(this,"name");T(this,"setupPose");T(this,"skinRequired",!1);if(e==null)throw new Error("name cannot be null.");this.name=e,this.setupPose=t}}class vd extends s0{constructor(t,i,s){super(i,new Up);T(this,"index",0);T(this,"parent",null);T(this,"length",0);T(this,"color",new at);T(this,"icon");T(this,"iconSize",1);T(this,"iconRotation",0);T(this,"visible",!1);if(t<0)throw new Error("index must be >= 0.");if(!i)throw new Error("name cannot be null.");this.index=t,this.parent=s}copy(t){const i=new vd(this.index,this.name,t);return i.length=this.length,i.setupPose.set(this.setupPose),i}}var ri;(function(n){n[n.Normal=0]="Normal",n[n.OnlyTranslation=1]="OnlyTranslation",n[n.NoRotationOrReflection=2]="NoRotationOrReflection",n[n.NoScale=3]="NoScale",n[n.NoScaleOrReflection=4]="NoScaleOrReflection"})(ri||(ri={}));class Up{constructor(){T(this,"bone");T(this,"x",0);T(this,"y",0);T(this,"rotation",0);T(this,"scaleX",0);T(this,"scaleY",0);T(this,"shearX",0);T(this,"shearY",0);T(this,"inherit",ri.Normal);T(this,"a",0);T(this,"b",0);T(this,"c",0);T(this,"d",0);T(this,"worldY",0);T(this,"worldX",0);T(this,"world",0);T(this,"local",0)}set(e){if(e==null)throw new Error("pose cannot be null.");this.x=e.x,this.y=e.y,this.rotation=e.rotation,this.scaleX=e.scaleX,this.scaleY=e.scaleY,this.shearX=e.shearX,this.shearY=e.shearY,this.inherit=e.inherit}setPosition(e,t){this.x=e,this.y=t}setScale(e,t){this.scaleX=e,this.scaleY=t===void 0?e:t}getInherit(){return this.inherit}setInherit(e){if(e==null)throw new Error("inherit cannot be null.");this.inherit=e}update(e,t){this.world!==e._update&&this.updateWorldTransform(e)}updateWorldTransform(e){this.local===e._update?this.updateLocalTransform(e):this.world=e._update;const t=this.rotation,i=this.scaleX,s=this.scaleY,r=this.shearX,o=this.shearY;if(!this.bone.parent){const d=e.scaleX,f=e.scaleY,m=(t+r)*Re.degRad,p=(t+90+o)*Re.degRad;this.a=Math.cos(m)*i*d,this.b=Math.cos(p)*s*d,this.c=Math.sin(m)*i*f,this.d=Math.sin(p)*s*f,this.worldX=this.x*d+e.x,this.worldY=this.y*f+e.y;return}const a=this.bone.parent.appliedPose;let c=a.a,l=a.b,h=a.c,u=a.d;switch(this.worldX=c*this.x+l*this.y+a.worldX,this.worldY=h*this.x+u*this.y+a.worldY,this.inherit){case ri.Normal:{const d=(t+r)*Re.degRad,f=(t+90+o)*Re.degRad,m=Math.cos(d)*i,p=Math.cos(f)*s,g=Math.sin(d)*i,v=Math.sin(f)*s;this.a=c*m+l*g,this.b=c*p+l*v,this.c=h*m+u*g,this.d=h*p+u*v;return}case ri.OnlyTranslation:{const d=e.scaleX,f=e.scaleY,m=(t+r)*Re.degRad,p=(t+90+o)*Re.degRad;this.a=Math.cos(m)*i*d,this.b=Math.cos(p)*s*d,this.c=Math.sin(m)*i*f,this.d=Math.sin(p)*s*f;break}case ri.NoRotationOrReflection:{const d=e.scaleX,f=e.scaleY,m=1/d,p=1/f;c*=m,h*=p;let g=c*c+h*h,v=0;g>Re.epsilon2?(g=Math.abs(c*u*p-l*m*h)/g,l=h*g,u=c*g,v=t-Re.atan2Deg(h,c)):(c=0,h=0,v=t-90+Re.atan2Deg(u,l));const b=(v+r)*Re.degRad,y=(v+o+90)*Re.degRad,x=Math.cos(b)*i,_=Math.cos(y)*s,E=Math.sin(b)*i,S=Math.sin(y)*s;this.a=(c*x-l*E)*d,this.b=(c*_-l*S)*d,this.c=(h*x+u*E)*f,this.d=(h*_+u*S)*f;break}case ri.NoScale:case ri.NoScaleOrReflection:{const d=e.scaleX,f=e.scaleY,m=1/d,p=1/f,g=t*Re.degRad,v=Math.cos(g),b=Math.sin(g);let y=(c*v+l*b)*m,x=(h*v+u*b)*p;const _=1/Math.sqrt(y*y+x*x);y*=_,x*=_;let E=-x,S=y;this.inherit===ri.NoScale&&c*u-l*h<0!=(d<0!=f<0)&&(E=-E,S=-S);const C=r*Re.degRad,M=(90+o)*Re.degRad,P=Math.cos(C)*i,A=Math.cos(M)*s,R=Math.sin(C)*i,B=Math.sin(M)*s;this.a=(y*P+E*R)*d,this.b=(y*A+E*B)*d,this.c=(x*P+S*R)*f,this.d=(x*A+S*B)*f;break}}}updateLocalTransform(e){this.local=0,this.world=e._update;const t=e.scaleX,i=e.scaleY;if(!this.bone.parent){const v=1/t,b=1/i;this.x=(this.worldX-e.x)*v,this.y=(this.worldY-e.y)*b,this.set5(this.a*v,this.b*v,this.c*b,this.d*b,0);return}const s=this.bone.parent.appliedPose;let r=s.a,o=s.b,a=s.c,c=s.d;const l=r*c-o*a,h=1/(r*c-o*a),u=c*h,d=o*h,f=a*h,m=r*h,p=this.worldX-s.worldX,g=this.worldY-s.worldY;switch(this.x=p*u-g*d,this.y=g*m-p*f,this.inherit){case ri.Normal:this.set5(u*this.a-d*this.c,u*this.b-d*this.d,m*this.c-f*this.a,m*this.d-f*this.b,0);break;case ri.OnlyTranslation:{const v=1/t,b=1/i;this.set5(this.a*v,this.b*v,this.c*b,this.d*b,0);break}case ri.NoRotationOrReflection:{const v=1/t,b=1/i;r*=v,a*=b;const y=this.a*v,x=this.b*v,_=this.c*b,E=this.d*b,S=1/(r*r+a*a),C=1/Math.abs(l*v*b);this.set5((r*y+a*_)*S,(r*x+a*E)*S,(r*_-a*y)*C,(r*E-a*x)*C,Re.atan2Deg(a,r));break}case ri.NoScale:case ri.NoScaleOrReflection:{const v=1/t,b=1/i,y=this.a*v,x=this.b*v,_=this.c*b,E=this.d*b;let S=c*this.a-o*this.c,C=r*this.c-a*this.a;l<0&&(S=-S,C=-C);let M=Re.atan2Deg(C,S);this.rotation=M,M*=Re.degRad;const P=Math.cos(M),A=Math.sin(M);let R=(r*P+o*A)*v,B=(a*P+c*A)*b;const O=1/Math.sqrt(R*R+B*B);R*=O,B*=O;const W=this.inherit===ri.NoScale&&l<0!=(t<0!=i<0)?-1:1;this.set4(R*y+B*_,R*x+B*E,(R*_-B*y)*W,(R*E-B*x)*W)}}}set4(e,t,i,s){const r=e*e+i*i,o=t*t+s*s;r>Re.epsilon2?(this.shearX=Re.atan2Deg(i,e),this.scaleX=Math.sqrt(r)):(this.shearX=0,this.scaleX=0),this.scaleY=Math.sqrt(o),o>Re.epsilon2?(this.shearY=Re.atan2Deg(s,t),e*s-t*i<0?(this.scaleY=-this.scaleY,this.shearY+=90):this.shearY-=90,this.shearY>180?this.shearY-=360:this.shearY<=-180&&(this.shearY+=360)):this.shearY=0}set5(e,t,i,s,r){this.shearX=0;const o=e*e+i*i,a=t*t+s*s;if(o>Re.epsilon2){const c=Re.atan2Deg(i,e);this.rotation=c+r,this.scaleX=Math.sqrt(o),this.scaleY=Math.sqrt(a),a>Re.epsilon2?(this.shearY=Re.atan2Deg(s,t),e*s-t*i<0?(this.scaleY=-this.scaleY,this.shearY+=90-c):this.shearY-=90+c,this.shearY>180?this.shearY-=360:this.shearY<=-180&&(this.shearY+=360)):this.shearY=0}else this.scaleX=0,this.scaleY=Math.sqrt(a),this.shearY=0,this.rotation=a>Re.epsilon2?Re.atan2Deg(s,t)-90+r:r}validateLocalTransform(e){this.local===e._update&&this.updateLocalTransform(e)}modifyLocal(e){this.local===e._update&&this.updateLocalTransform(e),this.world=0,this.resetWorld(e,e._update)}modifyWorld(e){const t=e._update;this.local=t,this.world=t,this.resetWorld(e,t)}resetWorld(e,t){const i=this.bone.children;for(let s=0,r=i.length;s<r;s++){const o=i[s].appliedPose;o.world===t&&(o.local===t&&o.updateLocalTransform(e),o.world=0,o.resetWorld(e,t))}}getWorldRotationX(){return Re.atan2Deg(this.c,this.a)}getWorldRotationY(){return Re.atan2Deg(this.d,this.b)}getWorldScaleX(){return Math.sqrt(this.a*this.a+this.c*this.c)}getWorldScaleY(){return Math.sqrt(this.b*this.b+this.d*this.d)}worldToLocal(e){if(e==null)throw new Error("world cannot be null.");const t=this.a*this.d-this.b*this.c,i=e.x-this.worldX,s=e.y-this.worldY;return e.x=(i*this.d-s*this.b)/t,e.y=(s*this.a-i*this.c)/t,e}localToWorld(e){if(e==null)throw new Error("local cannot be null.");const t=e.x,i=e.y;return e.x=t*this.a+i*this.b+this.worldX,e.y=t*this.c+i*this.d+this.worldY,e}worldToParent(e){if(e==null)throw new Error("world cannot be null.");return this.bone.parent==null?e:this.bone.parent.appliedPose.worldToLocal(e)}parentToWorld(e){if(e==null)throw new Error("world cannot be null.");return this.bone.parent==null?e:this.bone.parent.appliedPose.localToWorld(e)}worldToLocalRotation(e){e*=Re.degRad;const t=Math.sin(e),i=Math.cos(e);return Re.atan2Deg(this.a*t-this.c*i,this.d*i-this.b*t)+this.rotation-this.shearX}localToWorldRotation(e){e=(e-this.rotation-this.shearX)*Re.degRad;const t=Math.sin(e),i=Math.cos(e);return Re.atan2Deg(i*this.c+t*this.d,i*this.a+t*this.b)}rotateWorld(e){e*=Re.degRad;const t=Math.sin(e),i=Math.cos(e),s=this.a,r=this.b;this.a=i*s-t*this.c,this.b=i*r-t*this.d,this.c=t*s+i*this.c,this.d=t*r+i*this.d}}class vE{constructor(e,t,i){T(this,"data");T(this,"pose");T(this,"constrainedPose");T(this,"appliedPose");if(e==null)throw new Error("data cannot be null.");this.data=e,this.pose=t,this.constrainedPose=i,this.appliedPose=t}setupPose(){this.pose.set(this.data.setupPose)}getData(){return this.data}getPose(){return this.pose}getAppliedPose(){return this.appliedPose}unconstrained(){this.appliedPose=this.pose}constrained(){this.appliedPose=this.constrainedPose}resetConstrained(){this.constrainedPose.set(this.pose)}}class yE extends vE{constructor(t,i,s){super(t,i,s);T(this,"active",!1);this.setupPose()}isActive(){return this.active}}class Nl extends yE{constructor(t,i){super(t,new Up,new Up);T(this,"parent",null);T(this,"children",[]);T(this,"sorted",!1);this.parent=i,this.appliedPose.bone=this,this.constrainedPose.bone=this}copy(t){const i=new Nl(this.data,t);return i.pose.set(this.pose),i}}class wc extends yE{constructor(e,t,i){super(e,t,i)}isSourceActive(){return!0}}class fU{constructor(e){T(this,"_setupPose");T(this,"pose");T(this,"constrainedPose");T(this,"appliedPose");this._setupPose=e,this.pose=[...e],this.constrainedPose=[],this.appliedPose=this.pose}setupPose(){this.pose.length=this._setupPose.length,Ke.arrayCopy(this._setupPose,0,this.pose,0,this._setupPose.length)}unconstrained(){this.appliedPose=this.pose}constrained(){this.appliedPose=this.constrainedPose}resetConstrained(){this.constrainedPose.length=this.pose.length,Ke.arrayCopy(this.pose,0,this.constrainedPose,0,this.pose.length)}}class Sc extends s0{constructor(e,t){super(e,t)}}var en;(function(n){n[n.None=0]="None",n[n.Uniform=1]="Uniform",n[n.Volume=2]="Volume"})(en||(en={}));let r0=class{constructor(e,t){T(this,"time",0);T(this,"data");T(this,"intValue",0);T(this,"floatValue",0);T(this,"stringValue",null);T(this,"volume",0);T(this,"balance",0);if(!t)throw new Error("data cannot be null.");this.time=e,this.data=t}};class bE{constructor(e){T(this,"name");T(this,"_audioPath",null);T(this,"setupPose",new r0(-1,this));this.name=e}get audioPath(){return this._audioPath}set audioPath(e){if(e==null)throw new Error("audioPath cannot be null.");this._audioPath=e}}class Vp{constructor(){T(this,"bendDirection",0);T(this,"compress",!1);T(this,"stretch",!1);T(this,"mix",0);T(this,"softness",0)}set(e){this.mix=e.mix,this.softness=e.softness,this.bendDirection=e.bendDirection,this.compress=e.compress,this.stretch=e.stretch}}class Lr extends wc{constructor(t,i){super(t,new Vp,new Vp);T(this,"bones");T(this,"target");if(!i)throw new Error("skeleton cannot be null.");this.bones=[];for(const s of t.bones)this.bones.push(i.bones[s.index].constrainedPose);this.target=i.bones[t.target.index]}copy(t){var i=new Lr(this.data,t);return i.pose.set(this.pose),i}update(t,i){const s=this.appliedPose;if(s.mix===0)return;const r=this.target.appliedPose,o=this.bones;switch(o.length){case 1:Lr.apply(t,o[0],r.worldX,r.worldY,s.compress,s.stretch,this.data.scaleYMode,s.mix);break;case 2:Lr.apply(t,o[0],o[1],r.worldX,r.worldY,s.bendDirection,s.stretch,this.data.scaleYMode,s.softness,s.mix);break}}sort(t){t.sortBone(this.target);const i=this.bones[0].bone;t.sortBone(i),t._updateCache.push(this),i.sorted=!1,t.sortReset(i.children),t.constrained(i),this.bones.length>1&&t.constrained(this.bones[1].bone)}isSourceActive(){return this.target.active}static apply(t,i,s,r,o,a,c,l,h,u){typeof s=="number"?Lr.apply1(t,i,s,r,o,a,c,l):Lr.apply2(t,i,s,r,o,a,c,l,h,u)}static apply1(t,i,s,r,o,a,c,l){i.modifyLocal(t);const h=i.bone.parent.appliedPose;let u=h.a,d=h.b,f=h.c,m=h.d,p=-i.shearX-i.rotation,g=0,v=0;switch(i.inherit){case ri.OnlyTranslation:g=(s-i.worldX)*Re.signum(t.scaleX),v=(r-i.worldY)*Re.signum(t.scaleY);break;case ri.NoRotationOrReflection:{const b=Math.abs(u*m-d*f)/Math.max(Re.epsilon,u*u+f*f),y=u/t.scaleX,x=f/t.scaleY;d=-x*b*t.scaleX,m=y*b*t.scaleY,p+=Re.atan2Deg(x,y)}default:{const b=s-h.worldX,y=r-h.worldY,x=u*m-d*f;Math.abs(x)<=Re.epsilon?(g=0,v=0):(g=(b*m-y*d)/x-i.x,v=(y*u-b*f)/x-i.y)}}if(p+=Re.atan2Deg(v,g),i.scaleX<0&&(p+=180),p>180?p-=360:p<=-180&&(p+=360),i.rotation+=p*l,o||a){switch(i.inherit){case ri.NoScale:case ri.NoScaleOrReflection:g=s-i.worldX,v=r-i.worldY}const b=i.bone.data.length*i.scaleX;if(b>Re.epsilon){const y=g*g+v*v;if(o&&y<b*b||a&&y>b*b){const x=(Math.sqrt(y)/b-1)*l+1;switch(i.scaleX*=x,c){case en.Uniform:i.scaleY*=x;break;case en.Volume:i.scaleY/=x<.7?.25+.642857*x:x}}}}}static apply2(t,i,s,r,o,a,c,l,h,u){if(i.inherit!==ri.Normal||s.inherit!==ri.Normal)return;i.modifyLocal(t),s.modifyLocal(t);let d=i.x,f=i.y,m=i.scaleX,p=i.scaleY,g=s.scaleX,v=0,b=0,y=0;m<0?(m=-m,v=180,y=-1):(v=0,y=1),p<0&&(p=-p,y=-y),g<0?(g=-g,b=180):b=0;let x=0,_=0,E=i.a,S=i.b,C=i.c,M=i.d;const P=Math.abs(m-p)<=Re.epsilon;!P||c?(s.y=0,x=E*s.x+i.worldX,_=C*s.x+i.worldY):(x=E*s.x+S*s.y+i.worldX,_=C*s.x+M*s.y+i.worldY);const A=i.bone.parent.appliedPose;E=A.a,S=A.b,C=A.c,M=A.d;let R=E*M-S*C,B=x-A.worldX,O=_-A.worldY;R=Math.abs(R)<=Re.epsilon?0:1/R;const W=(B*M-O*S)*R-d,V=(O*E-B*C)*R-f;let Y=Math.sqrt(W*W+V*V),L=s.bone.data.length*g,N,F;if(Y<Re.epsilon){Lr.apply(t,i,r,o,!1,c,en.None,u),s.rotation=0;return}B=r-A.worldX,O=o-A.worldY;let D=(B*M-O*S)*R-d,X=(O*E-B*C)*R-f,G=D*D+X*X;if(h!==0){h*=m*(g+1)*.5;const J=Math.sqrt(G),oe=J-Y-L*m+h;if(oe>0){let le=Math.min(1,oe/(h*2))-1;le=(oe-h*(1-le*le))/J,D-=le*D,X-=le*X,G=D*D+X*X}}e:if(P){L*=m;let J=(G-Y*Y-L*L)/(2*Y*L);if(J<-1)J=-1,F=Math.PI*a;else if(J>1){if(J=1,F=0,c)switch(E=(Math.sqrt(G)/(Y+L)-1)*u+1,i.scaleX*=E,l){case en.Uniform:i.scaleY*=E;break;case en.Volume:i.scaleY/=E<.7?.25+.642857*E:E}}else F=Math.acos(J)*a;E=Y+L*J,S=L*Math.sin(F),N=Math.atan2(X*E-D*S,D*E+X*S)}else{E=m*L,S=p*L;const J=E*E,oe=S*S,le=Math.atan2(X,D);C=oe*Y*Y+J*G-J*oe;const ve=-2*oe*Y,Se=oe-J;if(M=ve*ve-4*Se*C,M>=0){let U=Math.sqrt(M);ve<0&&(U=-U),U=-(ve+U)*.5;let z=U/Se,ee=C/U;const ne=Math.abs(z)<Math.abs(ee)?z:ee;if(z=G-ne*ne,z>=0){O=Math.sqrt(z)*a,N=le-Math.atan2(O,ne),F=Math.atan2(O/p,(ne-Y)/m);break e}}let fe=Re.PI,ye=Y-E,q=ye*ye,Z=0,se=0,H=Y+E,j=H*H,$=0;C=-E*Y/(J-oe),C>=-1&&C<=1&&(C=Math.acos(C),B=E*Math.cos(C)+Y,O=S*Math.sin(C),M=B*B+O*O,M<q&&(fe=C,q=M,ye=B,Z=O),M>j&&(se=C,j=M,H=B,$=O)),G<=(q+j)*.5?(N=le-Math.atan2(Z*a,ye),F=fe*a):(N=le-Math.atan2($*a,H),F=se*a)}const K=Math.atan2(s.y,s.x)*y;N=(N-K)*Re.radDeg+v-i.rotation,N>180?N-=360:N<=-180&&(N+=360),i.rotation+=N*u,F=((F+K)*Re.radDeg-s.shearX)*y+b-s.rotation,F>180?F-=360:F<=-180&&(F+=360),s.rotation+=F*u}}class Rh extends Sc{constructor(t){super(t,new Vp);T(this,"bones",[]);T(this,"_target",null);T(this,"_scaleYMode",en.None)}set target(t){this._target=t}get target(){if(!this._target)throw new Error("target cannot be null.");return this._target}set scaleYMode(t){this._scaleYMode=t}get scaleYMode(){if(this._scaleYMode==null)throw new Error("scaleYMode cannot be null.");return this._scaleYMode}create(t){return new Lr(this,t)}}class Xp{constructor(){T(this,"position",0);T(this,"spacing",0);T(this,"mixRotate",0);T(this,"mixX",0);T(this,"mixY",0)}set(e){this.position=e.position,this.spacing=e.spacing,this.mixRotate=e.mixRotate,this.mixX=e.mixX,this.mixY=e.mixY}}class kh extends Sc{constructor(t){super(t,new Xp);T(this,"bones",[]);T(this,"_slot",null);T(this,"positionMode",Is.Fixed);T(this,"spacingMode",Ei.Fixed);T(this,"rotateMode",Do.Chain);T(this,"offsetRotation",0)}set slot(t){this._slot=t}get slot(){if(this._slot)return this._slot;throw new Error("SlotData not set.")}create(t){return new Yp(this,t)}}var Is;(function(n){n[n.Fixed=0]="Fixed",n[n.Percent=1]="Percent"})(Is||(Is={}));var Ei;(function(n){n[n.Length=0]="Length",n[n.Fixed=1]="Fixed",n[n.Percent=2]="Percent",n[n.Proportional=3]="Proportional"})(Ei||(Ei={}));var Do;(function(n){n[n.Tangent=0]="Tangent",n[n.Chain=1]="Chain",n[n.ChainScale=2]="ChainScale"})(Do||(Do={}));const Gn=class Gn extends wc{constructor(t,i){super(t,new Xp,new Xp);T(this,"data");T(this,"bones");T(this,"slot");T(this,"spaces",[]);T(this,"positions",[]);T(this,"world",[]);T(this,"curves",[]);T(this,"lengths",[]);T(this,"segments",[]);if(!i)throw new Error("skeleton cannot be null.");this.data=t,this.bones=[];for(const s of this.data.bones)this.bones.push(i.bones[s.index].constrainedPose);this.slot=i.slots[t.slot.index]}copy(t){var i=new Gn(this.data,t);return i.pose.set(this.pose),i}update(t,i){const s=this.slot.appliedPose.attachment;if(!(s instanceof hc))return;const r=this.appliedPose,o=r.mixRotate,a=r.mixX,c=r.mixY;if(o===0&&a===0&&c===0)return;const l=this.data,h=l.rotateMode===Do.Tangent,u=l.rotateMode===Do.ChainScale,d=this.bones,f=d.length,m=h?f:f+1,p=Ke.setArraySize(this.spaces,m),g=u?this.lengths=Ke.setArraySize(this.lengths,f):[],v=r.spacing;switch(l.spacingMode){case Ei.Percent:if(u)for(let S=0,C=m-1;S<C;S++){const M=d[S],P=M.bone.data.length,A=P*M.a,R=P*M.c;g[S]=Math.sqrt(A*A+R*R)}Ke.arrayFill(p,1,m,v);break;case Ei.Proportional:{let S=0;for(let C=0,M=m-1;C<M;){const P=d[C],A=P.bone.data.length;if(A<Re.epsilon)u&&(g[C]=0),p[++C]=v;else{const R=A*P.a,B=A*P.c,O=Math.sqrt(R*R+B*B);u&&(g[C]=O),p[++C]=O,S+=O}}if(S>0){S=m/S*v;for(let C=1;C<m;C++)p[C]*=S}break}default:{const S=l.spacingMode===Ei.Length;for(let C=0,M=m-1;C<M;){const P=d[C],A=P.bone.data.length;if(A<Re.epsilon)u&&(g[C]=0),p[++C]=v;else{const R=A*P.a,B=A*P.c,O=Math.sqrt(R*R+B*B);u&&(g[C]=O),p[++C]=(S?Math.max(0,A+v):v)*O/A}}}}const b=this.computeWorldPositions(t,s,m,h);let y=b[0],x=b[1],_=l.offsetRotation,E=!1;if(_===0)E=l.rotateMode===Do.Chain;else{E=!1;const S=this.slot.bone.appliedPose;_*=S.a*S.d-S.b*S.c>0?Re.degRad:-Re.degRad}for(let S=0,C=3;S<f;S++,C+=3){const M=d[S];M.modifyWorld(t),M.worldX+=(y-M.worldX)*a,M.worldY+=(x-M.worldY)*c;const P=b[C],A=b[C+1],R=P-y,B=A-x;if(u){const O=g[S];if(O!==0){const W=(Math.sqrt(R*R+B*B)/O-1)*o+1;M.a*=W,M.c*=W}}if(y=P,x=A,o>0){let O=M.a,W=M.b,V=M.c,Y=M.d,L=0,N=0,F=0;if(h?L=b[C-1]:p[S+1]===0?L=b[C+2]:L=Math.atan2(B,R),L-=Math.atan2(V,O),E){N=Math.cos(L),F=Math.sin(L);const D=M.bone.data.length;y+=(D*(N*O-F*V)-R)*o,x+=(D*(F*O+N*V)-B)*o}else L+=_;L>Re.PI?L-=Re.PI2:L<-Re.PI&&(L+=Re.PI2),L*=o,N=Math.cos(L),F=Math.sin(L),M.a=N*O-F*V,M.b=N*W-F*Y,M.c=F*O+N*V,M.d=F*W+N*Y}}}computeWorldPositions(t,i,s,r){const o=this.slot;let a=this.appliedPose.position,c=this.spaces,l=Ke.setArraySize(this.positions,s*3+2),h=this.world;const u=i.closed;let d=i.worldVerticesLength,f=d/6,m=Gn.NONE;if(!i.constantSpeed){const F=i.lengths;f-=u?1:2;const D=F[f];this.data.positionMode===Is.Percent&&(a*=D);let X;switch(this.data.spacingMode){case Ei.Percent:X=D;break;case Ei.Proportional:X=D/s;break;default:X=1}h=Ke.setArraySize(this.world,8);for(let G=0,K=0,J=0;G<s;G++,K+=3){const oe=c[G]*X;a+=oe;let le=a;if(u)le%=D,le<0&&(le+=D),J=0;else if(le<0){m!==Gn.BEFORE&&(m=Gn.BEFORE,i.computeWorldVertices(t,o,2,4,h,0,2)),this.addBeforePosition(le,h,0,l,K);continue}else if(le>D){m!==Gn.AFTER&&(m=Gn.AFTER,i.computeWorldVertices(t,o,d-6,4,h,0,2)),this.addAfterPosition(le-D,h,0,l,K);continue}for(;;J++){const ve=F[J];if(!(le>ve)){if(J===0)le/=ve;else{const Se=F[J-1];le=(le-Se)/(ve-Se)}break}}J!==m&&(m=J,u&&J===f?(i.computeWorldVertices(t,o,d-4,4,h,0,2),i.computeWorldVertices(t,o,0,4,h,4,2)):i.computeWorldVertices(t,o,J*6+2,8,h,0,2)),this.addCurvePosition(le,h[0],h[1],h[2],h[3],h[4],h[5],h[6],h[7],l,K,r||G>0&&oe===0)}return l}u?(d+=2,h=Ke.setArraySize(this.world,d),i.computeWorldVertices(t,o,2,d-4,h,0,2),i.computeWorldVertices(t,o,0,2,h,d-4,2),h[d-2]=h[0],h[d-1]=h[1]):(f--,d-=4,h=Ke.setArraySize(this.world,d),i.computeWorldVertices(t,o,2,d,h,0,2));const p=Ke.setArraySize(this.curves,f);let g=0,v=h[0],b=h[1],y=0,x=0,_=0,E=0,S=0,C=0,M=0,P=0,A=0,R=0,B=0,O=0,W=0,V=0;for(let F=0,D=2;F<f;F++,D+=6)y=h[D],x=h[D+1],_=h[D+2],E=h[D+3],S=h[D+4],C=h[D+5],M=(v-y*2+_)*.1875,P=(b-x*2+E)*.1875,A=((y-_)*3-v+S)*.09375,R=((x-E)*3-b+C)*.09375,B=M*2+A,O=P*2+R,W=(y-v)*.75+M+A*.16666667,V=(x-b)*.75+P+R*.16666667,g+=Math.sqrt(W*W+V*V),W+=B,V+=O,B+=A,O+=R,g+=Math.sqrt(W*W+V*V),W+=B,V+=O,g+=Math.sqrt(W*W+V*V),W+=B+A,V+=O+R,g+=Math.sqrt(W*W+V*V),p[F]=g,v=S,b=C;this.data.positionMode===Is.Percent&&(a*=g);let Y;switch(this.data.spacingMode){case Ei.Percent:Y=g;break;case Ei.Proportional:Y=g/s;break;default:Y=1}const L=this.segments;let N=0;for(let F=0,D=0,X=0,G=0;F<s;F++,D+=3){const K=c[F]*Y;a+=K;let J=a;if(u)J%=g,J<0&&(J+=g),X=0,G=0;else if(J<0){this.addBeforePosition(J,h,0,l,D);continue}else if(J>g){this.addAfterPosition(J-g,h,d-4,l,D);continue}for(;;X++){const oe=p[X];if(!(J>oe)){if(X===0)J/=oe;else{const le=p[X-1];J=(J-le)/(oe-le)}break}}if(X!==m){m=X;let oe=X*6;for(v=h[oe],b=h[oe+1],y=h[oe+2],x=h[oe+3],_=h[oe+4],E=h[oe+5],S=h[oe+6],C=h[oe+7],M=(v-y*2+_)*.03,P=(b-x*2+E)*.03,A=((y-_)*3-v+S)*.006,R=((x-E)*3-b+C)*.006,B=M*2+A,O=P*2+R,W=(y-v)*.3+M+A*.16666667,V=(x-b)*.3+P+R*.16666667,N=Math.sqrt(W*W+V*V),L[0]=N,oe=1;oe<8;oe++)W+=B,V+=O,B+=A,O+=R,N+=Math.sqrt(W*W+V*V),L[oe]=N;W+=B,V+=O,N+=Math.sqrt(W*W+V*V),L[8]=N,W+=B+A,V+=O+R,N+=Math.sqrt(W*W+V*V),L[9]=N,G=0}for(J*=N;;G++){const oe=L[G];if(!(J>oe)){if(G===0)J/=oe;else{const le=L[G-1];J=G+(J-le)/(oe-le)}break}}this.addCurvePosition(J*.1,v,b,y,x,_,E,S,C,l,D,r||F>0&&K===0)}return l}addBeforePosition(t,i,s,r,o){const a=i[s],c=i[s+1],l=i[s+2]-a,h=i[s+3]-c,u=Math.atan2(h,l);r[o]=a+t*Math.cos(u),r[o+1]=c+t*Math.sin(u),r[o+2]=u}addAfterPosition(t,i,s,r,o){const a=i[s+2],c=i[s+3],l=a-i[s],h=c-i[s+1],u=Math.atan2(h,l);r[o]=a+t*Math.cos(u),r[o+1]=c+t*Math.sin(u),r[o+2]=u}addCurvePosition(t,i,s,r,o,a,c,l,h,u,d,f){if(t===0||Number.isNaN(t)){u[d]=i,u[d+1]=s,u[d+2]=Math.atan2(o-s,r-i);return}const m=t*t,p=m*t,g=1-t,v=g*g,b=v*g,y=g*t,x=y*3,_=g*x,E=x*t,S=i*b+r*_+a*E+l*p,C=s*b+o*_+c*E+h*p;u[d]=S,u[d+1]=C,f&&(t<.001?u[d+2]=Math.atan2(o-s,r-i):u[d+2]=Math.atan2(C-(s*v+o*y*2+c*m),S-(i*v+r*y*2+a*m)))}sort(t){const i=this.slot.data.index,s=this.slot.bone;t.skin!=null&&this.sortPathSlot(t,t.skin,i,s),t.data.defaultSkin!=null&&t.data.defaultSkin!==t.skin&&this.sortPathSlot(t,t.data.defaultSkin,i,s),this.sortPath(t,this.slot.pose.attachment,s);const r=this.bones,o=this.bones.length;for(let a=0;a<o;a++){const c=r[a].bone;t.sortBone(c),t.constrained(c)}t._updateCache.push(this);for(let a=0;a<o;a++)t.sortReset(r[a].bone.children);for(let a=0;a<o;a++)r[a].bone.sorted=!0}sortPathSlot(t,i,s,r){const o=i.getAttachments();for(let a=0,c=o.length;a<c;a++){const l=o[a];l.slotIndex===s&&this.sortPath(t,l.attachment,r)}}sortPath(t,i,s){if(!(i instanceof hc))return;const r=i.bones;if(r==null)t.sortBone(s);else{const o=t.bones;for(let a=0,c=r.length;a<c;){let l=r[a++];for(l+=a;a<l;)t.sortBone(o[r[a++]])}}}isSourceActive(){return this.slot.bone.active}};T(Gn,"NONE",-1),T(Gn,"BEFORE",-2),T(Gn,"AFTER",-3);let Yp=Gn;var To;(function(n){n[n.none=0]="none",n[n.reset=1]="reset",n[n.update=2]="update",n[n.pose=3]="pose"})(To||(To={}));class Gp{constructor(){T(this,"inertia",0);T(this,"strength",0);T(this,"damping",0);T(this,"massInverse",0);T(this,"wind",0);T(this,"gravity",0);T(this,"mix",0)}set(e){this.inertia=e.inertia,this.strength=e.strength,this.damping=e.damping,this.massInverse=e.massInverse,this.wind=e.wind,this.gravity=e.gravity,this.mix=e.mix}}class Hp{constructor(){T(this,"color",new at(1,1,1,1));T(this,"darkColor",null);T(this,"attachment",null);T(this,"sequenceIndex",0);T(this,"deform",[])}SlotPose(){}set(e){if(e==null)throw new Error("pose cannot be null.");this.color.setFromColor(e.color),this.darkColor!=null&&e.darkColor!=null&&this.darkColor.setFromColor(e.darkColor),this.attachment=e.attachment,this.sequenceIndex=e.sequenceIndex,this.deform.length=0,this.deform.push(...e.deform)}getAttachment(){return this.attachment}setAttachment(e){this.attachment!==e&&((!(e instanceof gr)||!(this.attachment instanceof gr)||e.timelineAttachment!==this.attachment.timelineAttachment)&&(this.deform.length=0),this.attachment=e,this.sequenceIndex=-1)}}class o0 extends vE{constructor(t,i){super(t,new Hp,new Hp);T(this,"skeleton");T(this,"bone");T(this,"attachmentState",0);if(!i)throw new Error("skeleton cannot be null.");this.skeleton=i,this.bone=i.bones[t.boneData.index],t.setupPose.darkColor!=null&&(this.pose.darkColor=new at,this.constrainedPose.darkColor=new at),this.setupPose()}copy(t,i,s){const r=new o0(t.data,this.skeleton);return this.data.setupPose.darkColor!=null&&(r.pose.darkColor=new at,r.constrainedPose.darkColor=new at),r.pose.set(t.pose),r}setupPose(){this.pose.color.setFromColor(this.data.setupPose.color),this.pose.darkColor&&this.pose.darkColor.setFromColor(this.data.setupPose.darkColor),this.pose.sequenceIndex=this.data.setupPose.sequenceIndex,this.data.attachmentName?(this.pose.attachment=null,this.pose.setAttachment(this.skeleton.getAttachment(this.data.index,this.data.attachmentName))):this.pose.setAttachment(null)}}const Eo=class Eo{constructor(e){T(this,"data");T(this,"bones");T(this,"slots");T(this,"drawOrder");T(this,"constraints");T(this,"physics");T(this,"_updateCache",[]);T(this,"resetCache",[]);T(this,"skin",null);T(this,"color");T(this,"scaleX",1);T(this,"_scaleY",1);T(this,"x",0);T(this,"y",0);T(this,"time",0);T(this,"windX",1);T(this,"windY",0);T(this,"gravityX",0);T(this,"gravityY",1);T(this,"_update",0);if(!e)throw new Error("data cannot be null.");this.data=e,this.bones=[];for(let t=0;t<e.bones.length;t++){const i=e.bones[t];let s;if(!i.parent)s=new Nl(i,null);else{const r=this.bones[i.parent.index];s=new Nl(i,r),r.children.push(s)}this.bones.push(s)}this.slots=[];for(const t of this.data.slots)this.slots.push(new o0(t,this));this.drawOrder=new fU(this.slots),this.physics=[],this.constraints=[];for(const t of this.data.constraints){const i=t.create(this);i instanceof yd&&this.physics.push(i),this.constraints.push(i)}this.color=new at(1,1,1,1),this.updateCache()}static get yDir(){return Eo.yDown?-1:1}get scaleY(){return this._scaleY*Eo.yDir}set scaleY(e){this._scaleY=e}updateCache(){this._updateCache.length=0,this.resetCache.length=0,this.drawOrder.unconstrained();const e=this.slots;for(let o=0,a=e.length;o<a;o++)e[o].unconstrained();const t=this.bones,i=t.length;for(let o=0,a=i;o<a;o++){const c=t[o];c.sorted=c.data.skinRequired,c.active=!c.sorted,c.unconstrained()}if(this.skin){const o=this.skin.bones;for(let a=0,c=this.skin.bones.length;a<c;a++){let l=this.bones[o[a].index];do l.sorted=!1,l.active=!0,l=l.parent;while(l)}}const s=this.constraints;let r=this.constraints.length;for(let o=0;o<r;o++)s[o].unconstrained();for(let o=0;o<r;o++){const a=s[o];a.active=a.isSourceActive()&&(!a.data.skinRequired||this.skin!=null&&this.skin.constraints.includes(a.data)),a.active&&a.sort(this)}for(let o=0;o<i;o++)this.sortBone(t[o]);r=this._updateCache.length;for(let o=0;o<r;o++){const a=this._updateCache[o];a instanceof Nl&&(this._updateCache[o]=a.appliedPose)}}constrained(e){e.pose===e.appliedPose&&(e.constrained(),this.resetCache.push(e))}sortBone(e){if(e.sorted||!e.active)return;const t=e.parent;t&&this.sortBone(t),e.sorted=!0,this._updateCache.push(e)}sortReset(e){for(let t=0,i=e.length;t<i;t++){const s=e[t];s.active&&(s.sorted&&this.sortReset(s.children),s.sorted=!1)}}updateWorldTransform(e){this._update++,this.drawOrder.appliedPose===this.drawOrder.constrainedPose&&this.drawOrder.resetConstrained();const t=this.resetCache;for(let s=0,r=this.resetCache.length;s<r;s++)t[s].resetConstrained();const i=this._updateCache;for(let s=0,r=this._updateCache.length;s<r;s++)i[s].update(this,e)}setupPose(){this.setupPoseBones(),this.setupPoseSlots()}setupPoseBones(){const e=this.bones;for(let i=0,s=e.length;i<s;i++)e[i].setupPose();const t=this.constraints;for(let i=0,s=t.length;i<s;i++)t[i].setupPose()}setupPoseSlots(){this.drawOrder.setupPose();const e=this.slots;for(let t=0,i=e.length;t<i;t++)e[t].setupPose()}getRootBone(){return this.bones.length===0?null:this.bones[0]}findBone(e){if(!e)throw new Error("boneName cannot be null.");const t=this.bones;for(let i=0,s=t.length;i<s;i++)if(t[i].data.name===e)return t[i];return null}findSlot(e){if(!e)throw new Error("slotName cannot be null.");const t=this.slots;for(let i=0,s=t.length;i<s;i++)if(t[i].data.name===e)return t[i];return null}setSkin(e){typeof e=="string"?this.setSkinByName(e):this.setSkinBySkin(e)}setSkinByName(e){const t=this.data.findSkin(e);if(!t)throw new Error(`Skin not found: ${e}`);this.setSkin(t)}setSkinBySkin(e){if(e!==this.skin){if(e)if(this.skin)e.attachAll(this,this.skin);else{const t=this.slots;for(let i=0,s=t.length;i<s;i++){const r=t[i],o=r.data.attachmentName;if(o){const a=e.getAttachment(i,o);a&&r.pose.setAttachment(a)}}}this.skin=e,this.updateCache()}}getAttachment(e,t){return typeof e=="string"?this.getAttachmentByName(e,t):this.getAttachmentByIndex(e,t)}getAttachmentByName(e,t){const i=this.data.findSlot(e);if(!i)throw new Error(`Can't find slot with name ${e}`);return this.getAttachment(i.index,t)}getAttachmentByIndex(e,t){if(!t)throw new Error("placeholder cannot be null.");if(this.skin){const i=this.skin.getAttachment(e,t);if(i)return i}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(e,t):null}setAttachment(e,t){if(!e)throw new Error("slotName cannot be null.");const i=this.findSlot(e);if(!i)throw new Error(`Slot not found: ${e}`);let s=null;if(t&&(s=this.getAttachment(i.data.index,t),!s))throw new Error(`Attachment not found: ${t}, for slot: ${e}`);i.pose.setAttachment(s)}findConstraint(e,t){if(e==null)throw new Error("constraintName cannot be null.");if(t==null)throw new Error("type cannot be null.");const i=this.constraints;for(let s=0,r=i.length;s<r;s++){const o=i[s];if(o instanceof t&&o.data.name===e)return o}return null}getBoundsRect(e){const t=new p1,i=new p1;return this.getBounds(t,i,void 0,e),{x:t.x,y:t.y,width:i.x,height:i.y}}getBounds(e,t,i=new Array(2),s=null){if(!e)throw new Error("offset cannot be null.");if(!t)throw new Error("size cannot be null.");const r=this.drawOrder.appliedPose,o=r;let a=Number.POSITIVE_INFINITY,c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,h=Number.NEGATIVE_INFINITY;for(let u=0,d=r.length;u<d;u++){const f=o[u];if(!f.bone.active)continue;let m=0,p=null,g=null;const v=f.appliedPose.attachment;if(v){if(v instanceof Wa)m=8,p=Ke.setArraySize(i,m,0),v.computeWorldVertices(f,v.getOffsets(f.appliedPose),p,0,2),g=Eo.quadTriangles;else if(v instanceof Zr)m=v.worldVerticesLength,p=Ke.setArraySize(i,m,0),v.computeWorldVertices(this,f,0,m,p,0,2),g=v.triangles;else if(v instanceof gd&&s){s.clipEnd(f),s.clipStart(this,f,v);continue}if(p&&g){s!=null&&s.isClipping()&&s.clipTriangles(p,g,g.length)&&(p=s.clippedVertices,m=s.clippedVertices.length);for(let b=0,y=p.length;b<y;b+=2){const x=p[b],_=p[b+1];a=Math.min(a,x),c=Math.min(c,_),l=Math.max(l,x),h=Math.max(h,_)}}}s&&s.clipEnd(f)}s&&s.clipEnd(),e.set(a,c),t.set(l-a,h-c)}setScale(e,t){this.scaleX=e,this.scaleY=t}setPosition(e,t){this.x=e,this.y=t}update(e){this.time+=e}physicsTranslate(e,t){const i=this.physics;for(let s=0,r=i.length;s<r;s++)i[s].translate(e,t)}physicsRotate(e,t,i){const s=this.physics;for(let r=0,o=s.length;r<o;r++)s[r].rotate(e,t,i)}};T(Eo,"quadTriangles",[0,1,2,2,3,0]),T(Eo,"yDown",!1);let jp=Eo;class yd extends wc{constructor(t,i){super(t,new Gp,new Gp);T(this,"bone");T(this,"_reset",!0);T(this,"ux",0);T(this,"uy",0);T(this,"cx",0);T(this,"cy",0);T(this,"tx",0);T(this,"ty",0);T(this,"xOffset",0);T(this,"xLag",0);T(this,"xVelocity",0);T(this,"yOffset",0);T(this,"yLag",0);T(this,"yVelocity",0);T(this,"rotateOffset",0);T(this,"rotateLag",0);T(this,"rotateVelocity",0);T(this,"scaleOffset",0);T(this,"scaleLag",0);T(this,"scaleVelocity",0);T(this,"remaining",0);T(this,"lastTime",0);if(i==null)throw new Error("skeleton cannot be null.");this.bone=i.bones[t.bone.index].constrainedPose}copy(t){var i=new yd(this.data,t);return i.pose.set(this.pose),i}reset(t){this.remaining=0,this.lastTime=t.time,this._reset=!0,this.xOffset=0,this.xLag=0,this.xVelocity=0,this.yOffset=0,this.yLag=0,this.yVelocity=0,this.rotateOffset=0,this.rotateLag=0,this.rotateVelocity=0,this.scaleOffset=0,this.scaleLag=0,this.scaleVelocity=0}translate(t,i){this.ux-=t,this.uy-=i,this.cx-=t,this.cy-=i}rotate(t,i,s){const r=s*Re.degRad,o=Math.cos(r),a=Math.sin(r),c=this.cx-t,l=this.cy-i;this.translate(c*o-l*a-c,c*a+l*o-l)}update(t,i){const s=this.appliedPose,r=s.mix;if(r===0)return;const o=this.data.x>0,a=this.data.y>0,c=this.data.rotate>0||this.data.shearX>0,l=this.data.scaleX>0,h=this.bone;let u=h.bone.data.length,d=this.data.step,f=0;if(i!==To.none){switch(h.modifyWorld(t),i){case To.reset:this.reset(t);case To.update:{const m=Math.max(t.time-this.lastTime,0),p=this.remaining;this.remaining+=m,this.lastTime=t.time;const g=h.worldX,v=h.worldY;if(this._reset)this._reset=!1,this.ux=g,this.uy=v;else{let b=this.remaining,y=s.inertia,x=t.data.referenceScale,_=-1,E=0,S=0,C=this.data.limit*m,M=C*Math.abs(t.scaleY);if(C*=Math.abs(t.scaleX),o||a){if(o){const P=(this.ux-g)*y;this.xOffset+=P>C?C:P<-C?-C:P,this.ux=g}if(a){const P=(this.uy-v)*y;this.yOffset+=P>M?M:P<-M?-M:P,this.uy=v}if(b>=d){const P=this.xOffset,A=this.yOffset;_=s.damping**(60*d),E=d*s.massInverse,S=s.strength;const R=x*s.wind,B=x*s.gravity,O=(R*t.windX+B*t.gravityX)*t.scaleX,W=(R*t.windY+B*t.gravityY)*t.scaleY;do o&&(this.xVelocity+=(O-this.xOffset*S)*E,this.xOffset+=this.xVelocity*d,this.xVelocity*=_),a&&(this.yVelocity-=(W+this.yOffset*S)*E,this.yOffset+=this.yVelocity*d,this.yVelocity*=_),b-=d;while(b>=d);this.xLag=this.xOffset-P,this.yLag=this.yOffset-A}f=Math.max(0,1-b/d),o&&(h.worldX+=(this.xOffset-this.xLag*f)*r*this.data.x),a&&(h.worldY+=(this.yOffset-this.yLag*f)*r*this.data.y)}if(c||l){let P=Math.atan2(h.c,h.a),A=0,R=0,B=0,O=this.cx-h.worldX,W=this.cy-h.worldY;if(O>C?O=C:O<-C&&(O=-C),W>M?W=M:W<-M&&(W=-M),b=this.remaining,c){B=(this.data.rotate+this.data.shearX)*r,f=this.rotateLag*Math.max(0,1-p/d);let V=Math.atan2(W+this.ty,O+this.tx)-P-(this.rotateOffset-f)*B;this.rotateOffset+=(V-Math.ceil(V*Re.invPI2-.5)*Re.PI2)*y,V=(this.rotateOffset-f)*B+P,A=Math.cos(V),R=Math.sin(V),l&&(V=u*h.getWorldScaleX(),V>0&&(this.scaleOffset+=(O*A+W*R)*y/V))}else{A=Math.cos(P),R=Math.sin(P);const V=u*h.getWorldScaleX()-this.scaleLag*Math.max(0,1-p/d);V>0&&(this.scaleOffset+=(O*A+W*R)*y/V)}if(b>=d){_===-1&&(_=s.damping**(60*d),E=d*s.massInverse,S=s.strength);const V=s.wind*t.windX+s.gravity*t.gravityX,Y=(s.wind*t.windY+s.gravity*t.gravityY)*jp.yDir,L=this.rotateOffset,N=this.scaleOffset,F=u/x;for(;;)if(b-=d,l&&(this.scaleVelocity+=(V*A-Y*R-this.scaleOffset*S)*E,this.scaleOffset+=this.scaleVelocity*d,this.scaleVelocity*=_),c){if(this.rotateVelocity-=((V*R+Y*A)*F+this.rotateOffset*S)*E,this.rotateOffset+=this.rotateVelocity*d,this.rotateVelocity*=_,b<d)break;const D=this.rotateOffset*B+P;A=Math.cos(D),R=Math.sin(D)}else if(b<d)break;this.rotateLag=this.rotateOffset-L,this.scaleLag=this.scaleOffset-N}f=Math.max(0,1-b/d)}this.remaining=b}this.cx=h.worldX,this.cy=h.worldY;break}case To.pose:f=Math.max(0,1-this.remaining/d),o&&(h.worldX+=(this.xOffset-this.xLag*f)*r*this.data.x),a&&(h.worldY+=(this.yOffset-this.yLag*f)*r*this.data.y)}if(c){let m=(this.rotateOffset-this.rotateLag*f)*r,p=0,g=0,v=0;if(this.data.shearX>0){let b=0;this.data.rotate>0&&(b=m*this.data.rotate,p=Math.sin(b),g=Math.cos(b),v=h.b,h.b=g*v-p*h.d,h.d=p*v+g*h.d),b+=m*this.data.shearX,p=Math.sin(b),g=Math.cos(b),v=h.a,h.a=g*v-p*h.c,h.c=p*v+g*h.c}else m*=this.data.rotate,p=Math.sin(m),g=Math.cos(m),v=h.a,h.a=g*v-p*h.c,h.c=p*v+g*h.c,v=h.b,h.b=g*v-p*h.d,h.d=p*v+g*h.d}if(l){let m=1+(this.scaleOffset-this.scaleLag*f)*r*this.data.scaleX;switch(h.a*=m,h.c*=m,this.data.scaleYMode){case en.Uniform:h.b*=m,h.d*=m;break;case en.Volume:m=Math.abs(m),m=m>=.7?1/m:4-3.67347*m,h.b*=m,h.d*=m}}i!==To.pose&&(this.tx=u*h.a,this.ty=u*h.c)}}sort(t){const i=this.bone.bone;t.sortBone(i),t._updateCache.push(this),t.sortReset(i.children),t.constrained(i)}isSourceActive(){return this.bone.bone.active}}class Fh extends Sc{constructor(t){super(t,new Gp);T(this,"_bone",null);T(this,"x",0);T(this,"y",0);T(this,"rotate",0);T(this,"scaleX",0);T(this,"shearX",0);T(this,"limit",0);T(this,"step",0);T(this,"inertiaGlobal",!1);T(this,"strengthGlobal",!1);T(this,"dampingGlobal",!1);T(this,"massGlobal",!1);T(this,"windGlobal",!1);T(this,"gravityGlobal",!1);T(this,"mixGlobal",!1);T(this,"_scaleYMode",en.None)}set bone(t){this._bone=t}get bone(){if(this._bone)return this._bone;throw new Error("BoneData not set.")}get scaleYMode(){return this._scaleYMode}set scaleYMode(t){if(t==null)throw new Error("scaleYMode cannot be null.");this._scaleYMode=t}create(t){return new yd(this,t)}}typeof Math.fround>"u"&&(Math.fround=(n=>e=>(n[0]=e,n[0]))(new Float32Array(1)));class Wp{constructor(){T(this,"time",0);T(this,"mix",0)}set(e){this.time=e.time,this.mix=e.mix}}const Ul=class Ul extends wc{constructor(t,i){super(t,new Wp,new Wp);T(this,"bone",null);if(!i)throw new Error("skeleton cannot be null.");t.bone!=null&&(this.bone=i.bones[t.bone.index])}copy(t){var i=new Ul(this.data,t);return i.pose.set(this.pose),i}update(t,i){const s=this.appliedPose;if(s.mix===0)return;const r=this.data,o=r.animation,a=this.bone;if(a!==null){if(!a.active)return;r.local&&a.appliedPose.validateLocalTransform(t),s.time=r.offset+(r.property.value(t,a.appliedPose,r.local,Ul.offsets)-r.property.offset)*r.scale,r.loop?s.time=o.duration+s.time%o.duration:s.time=Math.max(0,s.time)}const c=t.bones,l=o.bones;for(let h=0,u=o.bones.length;h<u;h++)c[l[h]].appliedPose.modifyLocal(t);o.apply(t,s.time,s.time,r.loop,null,s.mix,ze.current,r.additive,!1,!0)}sort(t){const i=this.bone,s=this.data;i&&!s.local&&t.sortBone(i),t._updateCache.push(this);const r=t.bones,o=s.animation.bones;for(let d=0,f=s.animation.bones.length;d<f;d++){const m=r[o[d]];m.sorted=!1,t.sortReset(m.children),t.constrained(m)}const a=s.animation.timelines,c=t.slots,l=t.constraints,h=t.physics,u=t.physics.length;for(let d=0,f=s.animation.timelines.length;d<f;d++){const m=a[d];if(aU(m))t.constrained(c[m.slotIndex]);else if(m instanceof qr||m instanceof qa)t.drawOrder.constrained();else if(m instanceof ro)if(m.constraintIndex===-1)for(let p=0;p<u;p++)t.constrained(h[p]);else t.constrained(l[m.constraintIndex]);else if(cU(m)){const p=m.constraintIndex;p!==-1&&t.constrained(l[p])}}}};T(Ul,"offsets",[0,0,0,0,0,0]);let zp=Ul;class Co extends Sc{constructor(t){super(t,new Wp);T(this,"animation");T(this,"additive",!1);T(this,"loop",!1);T(this,"bone",null);T(this,"property");T(this,"scale",0);T(this,"offset",0);T(this,"local",!1);T(this,"max",0)}create(t){return new zp(this,t)}}class xE{constructor(){T(this,"name",null);T(this,"bones",[]);T(this,"slots",[]);T(this,"skins",[]);T(this,"defaultSkin",null);T(this,"events",[]);T(this,"animations",[]);T(this,"constraints",[]);T(this,"x",0);T(this,"y",0);T(this,"width",0);T(this,"height",0);T(this,"referenceScale",100);T(this,"version",null);T(this,"hash",null);T(this,"fps",30);T(this,"imagesPath",null);T(this,"audioPath",null)}findBone(e){if(!e)throw new Error("boneName cannot be null.");const t=this.bones;for(let i=0,s=t.length;i<s;i++)if(t[i].name===e)return t[i];return null}findSlot(e){if(!e)throw new Error("slotName cannot be null.");const t=this.slots;for(let i=0,s=t.length;i<s;i++)if(t[i].name===e)return t[i];return null}findSkin(e){if(!e)throw new Error("skinName cannot be null.");const t=this.skins;for(let i=0,s=t.length;i<s;i++)if(t[i].name===e)return t[i];return null}findEvent(e){if(!e)throw new Error("eventDataName cannot be null.");const t=this.events;for(let i=0,s=t.length;i<s;i++)if(t[i].name===e)return t[i];return null}findSliderAnimations(e){const t=this.constraints;for(let i=0,s=this.constraints.length;i<s;i++){const r=t[i];r instanceof Co&&r.animation!=null&&e.push(r.animation)}return e}findAnimation(e){if(!e)throw new Error("animationName cannot be null.");const t=this.animations;for(let i=0,s=t.length;i<s;i++)if(t[i].name===e)return t[i];return null}findConstraint(e,t){if(!e)throw new Error("constraintName cannot be null.");if(t==null)throw new Error("type cannot be null.");const i=this.constraints;for(let s=0,r=this.constraints.length;s<r;s++){const o=i[s];if(o instanceof t&&o.name===e)return o}return null}}class S1{constructor(e=0,t,i){T(this,"slotIndex",0);T(this,"placeholder");T(this,"attachment");this.slotIndex=e,this.placeholder=t,this.attachment=i}}class qp{constructor(e){T(this,"name");T(this,"attachments",[]);T(this,"bones",[]);T(this,"constraints",[]);T(this,"color",new at(.99607843,.61960787,.30980393,1));if(!e)throw new Error("name cannot be null.");this.name=e}setAttachment(e,t,i){if(!i)throw new Error("attachment cannot be null.");const s=this.attachments;e>=s.length&&(s.length=e+1),s[e]||(s[e]={}),s[e][t]=i}addSkin(e){for(let i=0;i<e.bones.length;i++){const s=e.bones[i];let r=!1;for(let o=0;o<this.bones.length;o++)if(this.bones[o]===s){r=!0;break}r||this.bones.push(s)}for(let i=0;i<e.constraints.length;i++){const s=e.constraints[i];let r=!1;for(let o=0;o<this.constraints.length;o++)if(this.constraints[o]===s){r=!0;break}r||this.constraints.push(s)}const t=e.getAttachments();for(let i=0;i<t.length;i++){const s=t[i];this.setAttachment(s.slotIndex,s.placeholder,s.attachment)}}copySkin(e){for(let i=0;i<e.bones.length;i++){const s=e.bones[i];let r=!1;for(let o=0;o<this.bones.length;o++)if(this.bones[o]===s){r=!0;break}r||this.bones.push(s)}for(let i=0;i<e.constraints.length;i++){const s=e.constraints[i];let r=!1;for(let o=0;o<this.constraints.length;o++)if(this.constraints[o]===s){r=!0;break}r||this.constraints.push(s)}const t=e.getAttachments();for(let i=0;i<t.length;i++){const s=t[i];s.attachment&&(s.attachment instanceof Zr?(s.attachment=s.attachment.newLinkedMesh(),this.setAttachment(s.slotIndex,s.placeholder,s.attachment)):(s.attachment=s.attachment.copy(),this.setAttachment(s.slotIndex,s.placeholder,s.attachment)))}}getAttachment(e,t){const i=this.attachments[e];return i?i[t]:null}removeAttachment(e,t){const i=this.attachments[e];i&&delete i[t]}getAttachments(){const e=[];for(let t=0;t<this.attachments.length;t++){const i=this.attachments[t];if(i)for(const s in i){const r=i[s];r&&e.push(new S1(t,s,r))}}return e}getAttachmentsForSlot(e,t){const i=this.attachments[e];if(i)for(const s in i){const r=i[s];r&&t.push(new S1(e,s,r))}}clear(){this.attachments.length=0,this.bones.length=0,this.constraints.length=0}attachAll(e,t){let i=0;for(let s=0;s<e.slots.length;s++){const r=e.slots[s],o=r.pose.getAttachment();if(o&&i<t.attachments.length){const a=t.attachments[i];for(const c in a){const l=a[c];if(o===l){const h=this.getAttachment(i,c);h&&r.pose.setAttachment(h);break}}}i++}}}class wE extends s0{constructor(t,i,s){super(i,new Hp);T(this,"index",0);T(this,"boneData");T(this,"attachmentName",null);T(this,"blendMode",Iu.Normal);T(this,"visible",!0);if(t<0)throw new Error("index must be >= 0.");if(!s)throw new Error("boneData cannot be null.");this.index=t,this.boneData=s}}var Iu;(function(n){n[n.Normal=0]="Normal",n[n.Additive=1]="Additive",n[n.Multiply=2]="Multiply",n[n.Screen=3]="Screen"})(Iu||(Iu={}));class Kp{constructor(){T(this,"mixRotate",0);T(this,"mixX",0);T(this,"mixY",0);T(this,"mixScaleX",0);T(this,"mixScaleY",0);T(this,"mixShearY",0)}set(e){this.mixRotate=e.mixRotate,this.mixX=e.mixX,this.mixY=e.mixY,this.mixScaleX=e.mixScaleX,this.mixScaleY=e.mixScaleY,this.mixShearY=e.mixShearY}}class a0 extends wc{constructor(t,i){super(t,new Kp,new Kp);T(this,"bones");T(this,"source");if(!i)throw new Error("skeleton cannot be null.");this.bones=[];for(const r of t.bones)this.bones.push(i.bones[r.index].constrainedPose);const s=i.bones[t.source.index];if(s==null)throw new Error("source cannot be null.");this.source=s}copy(t){var i=new a0(this.data,t);return i.pose.set(this.pose),i}update(t,i){const s=this.appliedPose;if(s.mixRotate===0&&s.mixX===0&&s.mixY===0&&s.mixScaleX===0&&s.mixScaleY===0&&s.mixShearY===0)return;const r=this.data,o=r.localSource,a=r.localTarget,c=r.additive,l=r.clamp,h=r.offsets,u=this.source.appliedPose;o&&u.validateLocalTransform(t);const d=r.properties,f=r.properties.length,m=this.bones;for(let p=0,g=this.bones.length;p<g;p++){const v=m[p];a?v.modifyLocal(t):v.modifyWorld(t);for(let b=0;b<f;b++){const y=d[b],x=y.value(t,u,o,h)-y.offset,_=y.to;for(let E=0,S=y.to.length;E<S;E++){const C=_[E];if(C.mix(s)!==0){let M=C.offset+x*C.scale;l&&(C.offset<C.max?M=Re.clamp(M,C.offset,C.max):M=Re.clamp(M,C.max,C.offset)),C.apply(t,s,v,M,a,c)}}}}}sort(t){this.data.localSource||t.sortBone(this.source);const i=this.bones,s=this.bones.length,r=!this.data.localTarget;if(r)for(let o=0;o<s;o++)t.sortBone(i[o].bone);t._updateCache.push(this);for(let o=0;o<s;o++){const a=i[o].bone;t.sortReset(a.children),t.constrained(a)}for(let o=0;o<s;o++)i[o].bone.sorted=r}isSourceActive(){return this.source.active}}const yi=class yi extends Sc{constructor(t){super(t,new Kp);T(this,"bones",[]);T(this,"_source",null);T(this,"offsets",[0,0,0,0,0,0]);T(this,"offsetX",0);T(this,"offsetY",0);T(this,"localSource",!1);T(this,"localTarget",!1);T(this,"additive",!1);T(this,"clamp",!1);T(this,"properties",[])}set source(t){this._source=t}get source(){if(this._source)return this._source;throw new Error("BoneData not set.")}create(t){return new a0(this,t)}getOffsetRotation(){return this.offsets[yi.ROTATION]}setOffsetRotation(t){this.offsets[yi.ROTATION]=t}getOffsetX(){return this.offsets[yi.X]}setOffsetX(t){this.offsets[yi.X]=t}getOffsetY(){return this.offsets[yi.Y]}setOffsetY(t){this.offsets[yi.Y]=t}getOffsetScaleX(){return this.offsets[yi.SCALEX]}setOffsetScaleX(t){this.offsets[yi.SCALEX]=t}getOffsetScaleY(){return this.offsets[yi.SCALEY]}setOffsetScaleY(t){this.offsets[yi.SCALEY]=t}getOffsetShearY(){return this.offsets[yi.SHEARY]}setOffsetShearY(t){this.offsets[yi.SHEARY]=t}};T(yi,"ROTATION",0),T(yi,"X",1),T(yi,"Y",2),T(yi,"SCALEX",3),T(yi,"SCALEY",4),T(yi,"SHEARY",5);let At=yi;class tl{constructor(){T(this,"offset",0);T(this,"to",[])}}class il{constructor(){T(this,"offset",0);T(this,"max",0);T(this,"scale",0)}}class Jp extends tl{value(e,t,i,s){if(i)return t.rotation+s[At.ROTATION];const r=e.scaleX,o=e.scaleY;let a=Math.atan2(t.c/o,t.a/r)*Re.radDeg+((t.a*t.d-t.b*t.c)*r*o>0?s[At.ROTATION]:-s[At.ROTATION]);return a<0&&(a+=360),a}}class SE extends il{mix(e){return e.mixRotate}apply(e,t,i,s,r,o){if(r)i.rotation+=(o?s:s-i.rotation)*t.mixRotate;else{const a=e.scaleX,c=e.scaleY,l=1/a,h=1/c,u=i.a*l,d=i.b*l,f=i.c*h,m=i.d*h;s*=Re.degRad,o||(s-=Math.atan2(f,u)),s>Re.PI?s-=Re.PI2:s<-Re.PI&&(s+=Re.PI2),s*=t.mixRotate;const p=Math.cos(s),g=Math.sin(s);i.a=(p*u-g*f)*a,i.b=(p*d-g*m)*a,i.c=(g*u+p*f)*c,i.d=(g*d+p*m)*c}}}class Zp extends tl{value(e,t,i,s){return i?t.x+s[At.X]:(s[At.X]*t.a+s[At.Y]*t.b+t.worldX)/e.scaleX}}class _E extends il{mix(e){return e.mixX}apply(e,t,i,s,r,o){r?i.x+=(o?s:s-i.x)*t.mixX:(o||(s-=i.worldX/e.scaleX),i.worldX+=s*t.mixX*e.scaleX)}}class Qp extends tl{value(e,t,i,s){return i?t.y+s[At.Y]:(s[At.X]*t.c+s[At.Y]*t.d+t.worldY)/e.scaleY}}class TE extends il{mix(e){return e.mixY}apply(e,t,i,s,r,o){r?i.y+=(o?s:s-i.y)*t.mixY:(o||(s-=i.worldY/e.scaleY),i.worldY+=s*t.mixY*e.scaleY)}}class eg extends tl{value(e,t,i,s){if(i)return t.scaleX+s[At.SCALEX];const r=t.a/e.scaleX,o=t.c/e.scaleY;return Math.sqrt(r*r+o*o)+s[At.SCALEX]}}class EE extends il{mix(e){return e.mixScaleX}apply(e,t,i,s,r,o){if(r)o?i.scaleX*=1+(s-1)*t.mixScaleX:i.scaleX!==0&&(i.scaleX+=(s-i.scaleX)*t.mixScaleX);else if(o){const a=1+(s-1)*t.mixScaleX;i.a*=a,i.c*=a}else{let a=i.a/e.scaleX,c=i.c/e.scaleY,l=Math.sqrt(a*a+c*c);l!==0&&(l=1+(s-l)*t.mixScaleX/l,i.a*=l,i.c*=l)}}}class tg extends tl{value(e,t,i,s){if(i)return t.scaleY+s[At.SCALEY];const r=t.b/e.scaleX,o=t.d/e.scaleY;return Math.sqrt(r*r+o*o)+s[At.SCALEY]}}class CE extends il{mix(e){return e.mixScaleY}apply(e,t,i,s,r,o){if(r)o?i.scaleY*=1+(s-1)*t.mixScaleY:i.scaleY!==0&&(i.scaleY+=(s-i.scaleY)*t.mixScaleY);else if(o){const a=1+(s-1)*t.mixScaleY;i.b*=a,i.d*=a}else{let a=i.b/e.scaleX,c=i.d/e.scaleY,l=Math.sqrt(a*a+c*c);l!==0&&(l=1+(s-l)*t.mixScaleY/l,i.b*=l,i.d*=l)}}}class ig extends tl{value(e,t,i,s){if(i)return t.shearY+s[At.SHEARY];const r=1/e.scaleX,o=1/e.scaleY;return(Math.atan2(t.d*o,t.b*r)-Math.atan2(t.c*o,t.a*r))*Re.radDeg-90+s[At.SHEARY]}}class ME extends il{mix(e){return e.mixShearY}apply(e,t,i,s,r,o){if(r)o||(s-=i.shearY),i.shearY+=s*t.mixShearY;else{const a=e.scaleX,c=e.scaleY,l=i.b/a,h=i.d/c,u=Math.atan2(h,l);s=(s+90)*Re.degRad,o?s-=Re.PI/2:(s-=u-Math.atan2(i.c/c,i.a/a),s>Re.PI?s-=Re.PI2:s<-Re.PI&&(s+=Re.PI2)),s=u+s*t.mixShearY;const d=Math.sqrt(l*l+h*h);i.b=Math.cos(s)*d*a,i.d=Math.sin(s)*d*c}}}class YK{constructor(e){T(this,"scale",1);T(this,"attachmentLoader");T(this,"linkedMeshes",[]);this.attachmentLoader=e}readSkeletonData(e){const t=this.scale,i=new xE;i.name="";const s=new mU(e),r=s.readInt32(),o=s.readInt32();i.hash=o===0&&r===0?null:o.toString(16)+r.toString(16),i.version=s.readString(),i.x=s.readFloat(),i.y=s.readFloat(),i.width=s.readFloat(),i.height=s.readFloat(),i.referenceScale=s.readFloat()*t;const a=s.readBoolean();a&&(i.fps=s.readFloat(),i.imagesPath=s.readString(),i.audioPath=s.readString());let c=0;c=s.readInt(!0);for(let m=0;m<c;m++){const p=s.readString();if(!p)throw new Error("String in string table must not be null.");s.strings.push(p)}const l=i.bones;c=s.readInt(!0);for(let m=0;m<c;m++){const p=s.readString();if(!p)throw new Error("Bone name must not be null.");const g=m===0?null:l[s.readInt(!0)],v=new vd(m,p,g),b=v.setupPose;b.rotation=s.readFloat(),b.x=s.readFloat()*t,b.y=s.readFloat()*t,b.scaleX=s.readFloat(),b.scaleY=s.readFloat(),b.shearX=s.readFloat(),b.shearY=s.readFloat(),b.inherit=s.readByte(),v.length=s.readFloat()*t,v.skinRequired=s.readBoolean(),a&&(at.rgba8888ToColor(v.color,s.readInt32()),v.icon=s.readString()??void 0,v.iconSize=s.readFloat(),v.iconRotation=s.readFloat(),v.visible=s.readBoolean()),l.push(v)}c=s.readInt(!0);for(let m=0;m<c;m++){const p=s.readString();if(!p)throw new Error("Slot name must not be null.");const g=l[s.readInt(!0)],v=new wE(m,p,g);at.rgba8888ToColor(v.setupPose.color,s.readInt32());const b=s.readInt32();b!==-1&&at.rgb888ToColor(v.setupPose.darkColor=new at,b),v.attachmentName=s.readStringRef(),v.blendMode=s.readInt(!0),a&&(v.visible=s.readBoolean()),i.slots.push(v)}const h=i.constraints,u=s.readInt(!0);for(let m=0;m<u;m++){const p=s.readString();if(!p)throw new Error("Constraint data name must not be null.");let g;switch(s.readByte()){case OU:{const v=new Rh(p);g=s.readInt(!0);for(let x=0;x<g;x++)v.bones.push(l[s.readInt(!0)]);v.target=l[s.readInt(!0)];const b=s.readByte();v.skinRequired=(b&1)!==0,(b&2)!==0&&(v.scaleYMode=s.readUnsignedByte());const y=v.setupPose;y.bendDirection=(b&4)!==0?-1:1,y.compress=(b&8)!==0,y.stretch=(b&16)!==0,(b&32)!==0&&(y.mix=(b&64)!==0?s.readFloat():1),(b&128)!==0&&(y.softness=s.readFloat()*t),h.push(v);break}case NU:{const v=new At(p);g=s.readInt(!0);for(let x=0;x<g;x++)v.bones.push(l[s.readInt(!0)]);v.source=l[s.readInt(!0)];let b=s.readUnsignedByte();v.skinRequired=(b&1)!==0,v.localSource=(b&2)!==0,v.localTarget=(b&4)!==0,v.additive=(b&8)!==0,v.clamp=(b&16)!==0,g=b>>5;for(let x=0,_;x<g;x++){let E=1,S;switch(s.readByte()){case 0:S=new Jp;break;case 1:{E=t,S=new Zp;break}case 2:{E=t,S=new Qp;break}case 3:S=new eg;break;case 4:S=new tg;break;case 5:S=new ig;break;default:S=null}if(S){S.offset=s.readFloat()*E,_=s.readByte();for(let C=0;C<_;C++){let M=1,P;switch(s.readByte()){case 0:P=new SE;break;case 1:{M=t,P=new _E;break}case 2:{M=t,P=new TE;break}case 3:P=new EE;break;case 4:P=new CE;break;case 5:P=new ME;break;default:P=null}P&&(P.offset=s.readFloat()*M,P.max=s.readFloat()*M,P.scale=s.readFloat()*M/E,S.to[C]=P)}v.properties[x]=S}}b=s.readByte(),(b&1)!==0&&(v.offsets[At.ROTATION]=s.readFloat()),(b&2)!==0&&(v.offsets[At.X]=s.readFloat()*t),(b&4)!==0&&(v.offsets[At.Y]=s.readFloat()*t),(b&8)!==0&&(v.offsets[At.SCALEX]=s.readFloat()),(b&16)!==0&&(v.offsets[At.SCALEY]=s.readFloat()),(b&32)!==0&&(v.offsets[At.SHEARY]=s.readFloat()),b=s.readByte();const y=v.setupPose;(b&1)!==0&&(y.mixRotate=s.readFloat()),(b&2)!==0&&(y.mixX=s.readFloat()),(b&4)!==0&&(y.mixY=s.readFloat()),(b&8)!==0&&(y.mixScaleX=s.readFloat()),(b&16)!==0&&(y.mixScaleY=s.readFloat()),(b&32)!==0&&(y.mixShearY=s.readFloat()),h.push(v);break}case $U:{const v=new kh(p);g=s.readInt(!0);for(let x=0;x<g;x++)v.bones.push(l[s.readInt(!0)]);v.slot=i.slots[s.readInt(!0)];const b=s.readByte();v.skinRequired=(b&1)!==0,v.positionMode=b>>1&1,v.spacingMode=b>>2&3,v.rotateMode=b>>4&3,(b&128)!==0&&(v.offsetRotation=s.readFloat());const y=v.setupPose;y.position=s.readFloat(),v.positionMode===Is.Fixed&&(y.position*=t),y.spacing=s.readFloat(),(v.spacingMode===Ei.Length||v.spacingMode===Ei.Fixed)&&(y.spacing*=t),y.mixRotate=s.readFloat(),y.mixX=s.readFloat(),y.mixY=s.readFloat(),h.push(v);break}case DU:{const v=new Fh(p);v.bone=l[s.readInt(!0)];let b=s.readByte();if(v.skinRequired=(b&1)!==0,(b&2)!==0&&(v.x=s.readFloat()),(b&4)!==0&&(v.y=s.readFloat()),(b&8)!==0&&(v.rotate=s.readFloat()),(b&16)!==0){let x=s.readFloat();x<-2?(v.scaleYMode=en.Volume,x=-2-x):x<0&&(v.scaleYMode=en.Uniform,x=-1-x),v.scaleX=x}(b&32)!==0&&(v.shearX=s.readFloat()),v.limit=((b&64)!==0?s.readFloat():5e3)*t,v.step=1/s.readUnsignedByte();const y=v.setupPose;y.inertia=s.readFloat(),y.strength=s.readFloat(),y.damping=s.readFloat(),y.massInverse=(b&128)!==0?s.readFloat():1,y.wind=s.readFloat(),y.gravity=s.readFloat(),b=s.readByte(),(b&1)!==0&&(v.inertiaGlobal=!0),(b&2)!==0&&(v.strengthGlobal=!0),(b&4)!==0&&(v.dampingGlobal=!0),(b&8)!==0&&(v.massGlobal=!0),(b&16)!==0&&(v.windGlobal=!0),(b&32)!==0&&(v.gravityGlobal=!0),(b&64)!==0&&(v.mixGlobal=!0),y.mix=(b&128)!==0?s.readFloat():1,h.push(v);break}case BU:{const v=new Co(p),b=s.readByte();if(v.skinRequired=(b&1)!==0,v.loop=(b&2)!==0,v.additive=(b&4)!==0,(b&8)!==0){const y=s.readFloat();a&&(b&64)!==0?v.max=y:v.setupPose.time=y}if((b&16)!==0&&(v.setupPose.mix=(b&32)!==0?s.readFloat():1),(b&64)!==0){v.local=(b&128)!==0,v.bone=l[s.readInt(!0)];const y=s.readFloat();let x=1;switch(s.readByte()){case 0:v.property=new Jp;break;case 1:{x=t,v.property=new Zp;break}case 2:{x=t,v.property=new Qp;break}case 3:v.property=new eg;break;case 4:v.property=new tg;break;case 5:v.property=new ig;break;default:continue}v.property.offset=y*x,v.offset=s.readFloat(),v.scale=s.readFloat()/x}h.push(v);break}}}const d=this.readSkin(s,i,!0,a);d&&(i.defaultSkin=d,i.skins.push(d));{let m=i.skins.length;for(Ke.setArraySize(i.skins,c=m+s.readInt(!0));m<c;m++){const p=this.readSkin(s,i,!1,a);if(!p)throw new Error("readSkin() should not have returned null.");i.skins[m]=p}}c=this.linkedMeshes.length;for(let m=0;m<c;m++){const p=this.linkedMeshes[m],g=i.skins[p.skinIndex];if(!p.source)throw new Error("Linked mesh parent must not be null");const v=g.getAttachment(p.sourceIndex,p.source);if(!v)throw new Error(`Source mesh not found: ${p.source}`);p.mesh.timelineAttachment=p.inheritTimelines?v:p.mesh,p.mesh.setSourceMesh(v),p.mesh.updateSequence()}this.linkedMeshes.length=0,c=s.readInt(!0);for(let m=0;m<c;m++){const p=s.readString();if(!p)throw new Error("Event data name must not be null");const g=new bE(p),v=g.setupPose;v.intValue=s.readInt(!1),v.floatValue=s.readFloat(),v.stringValue=s.readString(),g._audioPath=s.readString(),g.audioPath&&(v.volume=s.readFloat(),v.balance=s.readFloat()),i.events.push(g)}const f=i.animations;c=s.readInt(!0);for(let m=0;m<c;m++){const p=s.readString();if(!p)throw new Error("Animation name must not be null.");f.push(this.readAnimation(s,p,i,a))}for(let m=0;m<u;m++){const p=h[m];p instanceof Co&&(p.animation=f[s.readInt(!0)])}return i}readSkin(e,t,i,s){let r=null,o=0;if(i){if(o=e.readInt(!0),o===0)return null;r=new qp("default")}else{const a=e.readString();if(!a)throw new Error("Skin name must not be null.");r=new qp(a),s&&at.rgba8888ToColor(r.color,e.readInt32());let c=e.readInt(!0),l=t.bones,h=r.bones;for(let u=0;u<c;u++)h[u]=l[e.readInt(!0)];c=e.readInt(!0),l=t.constraints,h=r.constraints;for(let u=0;u<c;u++)h[u]=l[e.readInt(!0)];o=e.readInt(!0)}for(let a=0;a<o;a++){const c=e.readInt(!0);for(let l=0,h=e.readInt(!0);l<h;l++){const u=e.readStringRef();if(!u)throw new Error("Attachment name must not be null");const d=this.readAttachment(e,t,r,c,u,s);d&&r.setAttachment(c,u,d)}}return r}readAttachment(e,t,i,s,r,o){const a=this.scale,c=e.readByte(),l=(c&8)!==0?e.readStringRef():r;if(!l)throw new Error("Attachment name must not be null");switch(c&7){case Ys.Region:{let h=(c&16)!==0?e.readStringRef():null;const u=(c&32)!==0?e.readInt32():4294967295,d=this.readSequence(e,(c&64)!==0),f=(c&128)!==0?e.readFloat():0,m=e.readFloat(),p=e.readFloat(),g=e.readFloat(),v=e.readFloat(),b=e.readFloat(),y=e.readFloat();h||(h=l);const x=this.attachmentLoader.newRegionAttachment(i,r,l,h,d);return x?(x.path=h,x.x=m*a,x.y=p*a,x.scaleX=g,x.scaleY=v,x.rotation=f,x.width=b*a,x.height=y*a,at.rgba8888ToColor(x.color,u),x.updateSequence(),x):null}case Ys.BoundingBox:{const h=this.readVertices(e,(c&16)!==0),u=o?e.readInt32():0,d=this.attachmentLoader.newBoundingBoxAttachment(i,r,l);return d?(d.worldVerticesLength=h.length,d.vertices=h.vertices,d.bones=h.bones,o&&at.rgba8888ToColor(d.color,u),d):null}case Ys.Mesh:{let h=(c&16)!==0?e.readStringRef():l;const u=(c&32)!==0?e.readInt32():4294967295,d=this.readSequence(e,(c&64)!==0),f=e.readInt(!0),m=this.readVertices(e,(c&128)!==0),p=this.readFloatArray(e,m.length,1),g=this.readShortArray(e,(m.length-f-2)*3),v=e.readInt(!0);let b=null;if(v>0){b=[];for(let S=0;S<v;S++)b[S]=e.readInt(!0)}let y=[],x=0,_=0;o&&(y=this.readShortArray(e,e.readInt(!0)),x=e.readFloat(),_=e.readFloat()),h||(h=l);const E=this.attachmentLoader.newMeshAttachment(i,r,l,h,d);return E?(E.path=h,at.rgba8888ToColor(E.color,u),E.hullLength=f<<1,E.bones=m.bones,E.vertices=m.vertices,E.worldVerticesLength=m.length,E.regionUVs=p,E.triangles=g,b&&(E.timelineSlots=b),o&&(E.edges=y,E.width=x*a,E.height=_*a),E.updateSequence(),E):null}case Ys.LinkedMesh:{const h=(c&16)!==0?e.readStringRef():l;if(h==null)throw new Error("Path of linked mesh must not be null");const u=(c&32)!==0?e.readInt32():4294967295,d=this.readSequence(e,(c&64)!==0),f=(c&128)!==0,m=e.readInt(!0),p=e.readInt(!0),g=e.readStringRef();let v=0,b=0;o&&(v=e.readFloat(),b=e.readFloat());const y=this.attachmentLoader.newMeshAttachment(i,r,l,h,d);return y?(y.path=h,at.rgba8888ToColor(y.color,u),o&&(y.width=v*a,y.height=b*a),this.linkedMeshes.push(new pU(y,p,s,m,g,f)),y):null}case Ys.Path:{const h=(c&16)!==0,u=(c&32)!==0,d=this.readVertices(e,(c&64)!==0),f=this.readFloatArray(e,d.length/6,a),m=o?e.readInt32():0,p=this.attachmentLoader.newPathAttachment(i,r,l);return p?(p.closed=h,p.constantSpeed=u,p.worldVerticesLength=d.length,p.vertices=d.vertices,p.bones=d.bones,p.lengths=f,o&&at.rgba8888ToColor(p.color,m),p):null}case Ys.Point:{const h=e.readFloat(),u=e.readFloat(),d=e.readFloat(),f=o?e.readInt32():0,m=this.attachmentLoader.newPointAttachment(i,r,l);return m?(m.x=u*a,m.y=d*a,m.rotation=h,o&&at.rgba8888ToColor(m.color,f),m):null}case Ys.Clipping:{const h=e.readInt(!0),u=this.readVertices(e,(c&16)!==0),d=o?e.readInt32():0,f=this.attachmentLoader.newClippingAttachment(i,r,l);return f?(f.endSlot=t.slots[h],f.convex=(c&32)!==0,f.inverse=(c&64)!==0,f.worldVerticesLength=u.length,f.vertices=u.vertices,f.bones=u.bones,o&&at.rgba8888ToColor(f.color,d),f):null}}}readSequence(e,t){if(!t)return new za(1,!1);const i=new za(e.readInt(!0),!0);return i.start=e.readInt(!0),i.digits=e.readInt(!0),i.setupIndex=e.readInt(!0),i}readVertices(e,t){const i=this.scale,r=e.readInt(!0)<<1;if(!t)return new _1(null,this.readFloatArray(e,r,i),r);const o=e.readInt(!0),a=[],c=[];for(let l=0,h=0;l<o;){const u=e.readInt(!0);a[l++]=u;for(let d=0;d<u;d++,h+=3)a[l++]=e.readInt(!0),c[h]=e.readFloat()*i,c[h+1]=e.readFloat()*i,c[h+2]=e.readFloat()}return new _1(a,Ke.toFloatArray(c),r)}readFloatArray(e,t,i){const s=[];if(i===1)for(let r=0;r<t;r++)s[r]=e.readFloat();else for(let r=0;r<t;r++)s[r]=e.readFloat()*i;return s}readShortArray(e,t){const i=[];for(let s=0;s<t;s++)i[s]=e.readInt(!0);return i}readAnimation(e,t,i,s){e.readInt(!0);const r=[],o=this.scale;for(let f=0,m=e.readInt(!0);f<m;f++){const p=e.readInt(!0);for(let g=0,v=e.readInt(!0);g<v;g++){const b=e.readByte(),y=e.readInt(!0),x=y-1;switch(b){case IU:{const _=new $l(y,p);for(let E=0;E<y;E++)_.setFrame(E,e.readFloat(),e.readStringRef());r.push(_);break}case PU:{const _=e.readInt(!0),E=new JT(y,_,p);let S=e.readFloat(),C=e.readUnsignedByte()/255,M=e.readUnsignedByte()/255,P=e.readUnsignedByte()/255,A=e.readUnsignedByte()/255;for(let R=0,B=0;E.setFrame(R,S,C,M,P,A),R!==x;R++){const O=e.readFloat(),W=e.readUnsignedByte()/255,V=e.readUnsignedByte()/255,Y=e.readUnsignedByte()/255,L=e.readUnsignedByte()/255;switch(e.readByte()){case ms:E.setStepped(R);break;case ps:vt(e,E,B++,R,0,S,O,C,W,1),vt(e,E,B++,R,1,S,O,M,V,1),vt(e,E,B++,R,2,S,O,P,Y,1),vt(e,E,B++,R,3,S,O,A,L,1)}S=O,C=W,M=V,P=Y,A=L}r.push(E);break}case RU:{const _=e.readInt(!0),E=new ZT(y,_,p);let S=e.readFloat(),C=e.readUnsignedByte()/255,M=e.readUnsignedByte()/255,P=e.readUnsignedByte()/255;for(let A=0,R=0;E.setFrame(A,S,C,M,P),A!==x;A++){const B=e.readFloat(),O=e.readUnsignedByte()/255,W=e.readUnsignedByte()/255,V=e.readUnsignedByte()/255;switch(e.readByte()){case ms:E.setStepped(A);break;case ps:vt(e,E,R++,A,0,S,B,C,O,1),vt(e,E,R++,A,1,S,B,M,W,1),vt(e,E,R++,A,2,S,B,P,V,1)}S=B,C=O,M=W,P=V}r.push(E);break}case kU:{const _=e.readInt(!0),E=new eE(y,_,p);let S=e.readFloat(),C=e.readUnsignedByte()/255,M=e.readUnsignedByte()/255,P=e.readUnsignedByte()/255,A=e.readUnsignedByte()/255,R=e.readUnsignedByte()/255,B=e.readUnsignedByte()/255,O=e.readUnsignedByte()/255;for(let W=0,V=0;E.setFrame(W,S,C,M,P,A,R,B,O),W!==x;W++){const Y=e.readFloat(),L=e.readUnsignedByte()/255,N=e.readUnsignedByte()/255,F=e.readUnsignedByte()/255,D=e.readUnsignedByte()/255,X=e.readUnsignedByte()/255,G=e.readUnsignedByte()/255,K=e.readUnsignedByte()/255;switch(e.readByte()){case ms:E.setStepped(W);break;case ps:vt(e,E,V++,W,0,S,Y,C,L,1),vt(e,E,V++,W,1,S,Y,M,N,1),vt(e,E,V++,W,2,S,Y,P,F,1),vt(e,E,V++,W,3,S,Y,A,D,1),vt(e,E,V++,W,4,S,Y,R,X,1),vt(e,E,V++,W,5,S,Y,B,G,1),vt(e,E,V++,W,6,S,Y,O,K,1)}S=Y,C=L,M=N,P=F,A=D,R=X,B=G,O=K}r.push(E);break}case FU:{const _=e.readInt(!0),E=new tE(y,_,p);let S=e.readFloat(),C=e.readUnsignedByte()/255,M=e.readUnsignedByte()/255,P=e.readUnsignedByte()/255,A=e.readUnsignedByte()/255,R=e.readUnsignedByte()/255,B=e.readUnsignedByte()/255;for(let O=0,W=0;E.setFrame(O,S,C,M,P,A,R,B),O!==x;O++){const V=e.readFloat(),Y=e.readUnsignedByte()/255,L=e.readUnsignedByte()/255,N=e.readUnsignedByte()/255,F=e.readUnsignedByte()/255,D=e.readUnsignedByte()/255,X=e.readUnsignedByte()/255;switch(e.readByte()){case ms:E.setStepped(O);break;case ps:vt(e,E,W++,O,0,S,V,C,Y,1),vt(e,E,W++,O,1,S,V,M,L,1),vt(e,E,W++,O,2,S,V,P,N,1),vt(e,E,W++,O,3,S,V,A,F,1),vt(e,E,W++,O,4,S,V,R,D,1),vt(e,E,W++,O,5,S,V,B,X,1)}S=V,C=Y,M=L,P=N,A=F,R=D,B=X}r.push(E);break}case LU:{const _=new QT(y,e.readInt(!0),p);let E=e.readFloat(),S=e.readUnsignedByte()/255;for(let C=0,M=0;_.setFrame(C,E,S),C!==x;C++){const P=e.readFloat(),A=e.readUnsignedByte()/255;switch(e.readByte()){case ms:_.setStepped(C);break;case ps:vt(e,_,M++,C,0,E,P,S,A,1)}E=P,S=A}r.push(_)}}}}for(let f=0,m=e.readInt(!0);f<m;f++){const p=e.readInt(!0);for(let g=0,v=e.readInt(!0);g<v;g++){const b=e.readByte(),y=e.readInt(!0);if(b===AU){const _=new KT(y,p);for(let E=0;E<y;E++)_.setFrame(E,e.readFloat(),e.readByte());r.push(_);continue}const x=e.readInt(!0);switch(b){case yU:mi(e,r,new Cu(y,x,p),1);break;case bU:mi(e,r,new VT(y,x,p),o);break;case xU:mi(e,r,new XT(y,x,p),o);break;case wU:mi(e,r,new YT(y,x,p),o);break;case SU:mi(e,r,new GT(y,x,p),1);break;case _U:mi(e,r,new HT(y,x,p),1);break;case TU:mi(e,r,new jT(y,x,p),1);break;case EU:mi(e,r,new WT(y,x,p),1);break;case CU:mi(e,r,new zT(y,x,p),1);break;case MU:mi(e,r,new qT(y,x,p),1);break}}}for(let f=0,m=e.readInt(!0);f<m;f++){const p=e.readInt(!0),g=e.readInt(!0),v=g-1,b=new nE(g,e.readInt(!0),p);let y=e.readByte(),x=e.readFloat(),_=(y&1)!==0?(y&2)!==0?e.readFloat():1:0,E=(y&4)!==0?e.readFloat()*o:0;for(let S=0,C=0;b.setFrame(S,x,_,E,(y&8)!==0?1:-1,(y&16)!==0,(y&32)!==0),S!==v;S++){y=e.readByte();const M=e.readFloat(),P=(y&1)!==0?(y&2)!==0?e.readFloat():1:0,A=(y&4)!==0?e.readFloat()*o:0;(y&64)!==0?b.setStepped(S):(y&128)!==0&&(vt(e,b,C++,S,0,x,M,_,P,1),vt(e,b,C++,S,1,x,M,E,A,o)),x=M,_=P,E=A}r.push(b)}for(let f=0,m=e.readInt(!0);f<m;f++){const p=e.readInt(!0),g=e.readInt(!0),v=g-1,b=new sE(g,e.readInt(!0),p);let y=e.readFloat(),x=e.readFloat(),_=e.readFloat(),E=e.readFloat(),S=e.readFloat(),C=e.readFloat(),M=e.readFloat();for(let P=0,A=0;b.setFrame(P,y,x,_,E,S,C,M),P!==v;P++){const R=e.readFloat(),B=e.readFloat(),O=e.readFloat(),W=e.readFloat(),V=e.readFloat(),Y=e.readFloat(),L=e.readFloat();switch(e.readByte()){case ms:b.setStepped(P);break;case ps:vt(e,b,A++,P,0,y,R,x,B,1),vt(e,b,A++,P,1,y,R,_,O,1),vt(e,b,A++,P,2,y,R,E,W,1),vt(e,b,A++,P,3,y,R,S,V,1),vt(e,b,A++,P,4,y,R,C,Y,1),vt(e,b,A++,P,5,y,R,M,L,1)}y=R,x=B,_=O,E=W,S=V,C=Y,M=L}r.push(b)}for(let f=0,m=e.readInt(!0);f<m;f++){const p=e.readInt(!0),g=i.constraints[p];for(let v=0,b=e.readInt(!0);v<b;v++){const y=e.readByte(),x=e.readInt(!0),_=e.readInt(!0);switch(y){case XU:mi(e,r,new rE(x,_,p),g.positionMode===Is.Fixed?o:1);break;case YU:mi(e,r,new oE(x,_,p),g.spacingMode===Ei.Length||g.spacingMode===Ei.Fixed?o:1);break;case GU:{const E=new aE(x,_,p);let S=e.readFloat(),C=e.readFloat(),M=e.readFloat(),P=e.readFloat();for(let A=0,R=0,B=E.getFrameCount()-1;E.setFrame(A,S,C,M,P),A!==B;A++){const O=e.readFloat(),W=e.readFloat(),V=e.readFloat(),Y=e.readFloat();switch(e.readByte()){case ms:E.setStepped(A);break;case ps:vt(e,E,R++,A,0,S,O,C,W,1),vt(e,E,R++,A,1,S,O,M,V,1),vt(e,E,R++,A,2,S,O,P,Y,1)}S=O,C=W,M=V,P=Y}r.push(E)}}}}for(let f=0,m=e.readInt(!0);f<m;f++){const p=e.readInt(!0)-1;for(let g=0,v=e.readInt(!0);g<v;g++){const b=e.readByte(),y=e.readInt(!0);if(b===ZU){const _=new Au(y,p);for(let E=0;E<y;E++)_.setFrame(E,e.readFloat());r.push(_);continue}const x=e.readInt(!0);switch(b){case HU:mi(e,r,new lE(y,x,p),1);break;case jU:mi(e,r,new cE(y,x,p),1);break;case WU:mi(e,r,new hE(y,x,p),1);break;case zU:mi(e,r,new uE(y,x,p),1);break;case qU:mi(e,r,new dE(y,x,p),1);break;case KU:mi(e,r,new fE(y,x,p),1);break;case JU:mi(e,r,new mE(y,x,p),1);break;default:throw new Error("Unknown physics timeline type.")}}}for(let f=0,m=e.readInt(!0);f<m;f++){const p=e.readInt(!0);for(let g=0,v=e.readInt(!0);g<v;g++){const b=e.readByte(),y=e.readInt(!0),x=e.readInt(!0);switch(b){case QU:mi(e,r,new pE(y,x,p),1);break;case e5:mi(e,r,new gE(y,x,p),1);break;default:throw new Error(`Uknown slider type: ${b}`)}}}for(let f=0,m=e.readInt(!0);f<m;f++){const p=i.skins[e.readInt(!0)];for(let g=0,v=e.readInt(!0);g<v;g++){const b=e.readInt(!0);for(let y=0,x=e.readInt(!0);y<x;y++){const _=e.readStringRef();if(!_)throw new Error("attachmentName must not be null.");const E=p.getAttachment(b,_),S=e.readByte(),C=e.readInt(!0),M=C-1;switch(S){case UU:{const P=E,A=P.bones,R=P.vertices,B=A?R.length/3*2:R.length,O=e.readInt(!0),W=new iE(C,O,b,P);let V=e.readFloat();for(let Y=0,L=0;;Y++){let N,F=e.readInt(!0);if(F===0)N=A?Ke.newFloatArray(B):R;else{N=Ke.newFloatArray(B);const X=e.readInt(!0);if(F+=X,o===1)for(let G=X;G<F;G++)N[G]=e.readFloat();else for(let G=X;G<F;G++)N[G]=e.readFloat()*o;if(!A)for(let G=0,K=N.length;G<K;G++)N[G]+=R[G]}if(W.setFrame(Y,V,N),Y===M)break;const D=e.readFloat();switch(e.readByte()){case ms:W.setStepped(Y);break;case ps:vt(e,W,L++,Y,0,V,D,0,1,1)}V=D}r.push(W);break}case VU:{const P=new Mu(C,b,E);for(let A=0;A<C;A++){const R=e.readFloat(),B=e.readInt32();P.setFrame(A,R,UT[B&15],B>>4,e.readFloat())}r.push(P);break}}}}}const a=i.slots.length,c=e.readInt(!0);if(c>0){const f=new qr(c);for(let m=0;m<c;m++)f.setFrame(m,e.readFloat(),T1(e,a));r.push(f)}const l=e.readInt(!0);for(let f=0;f<l;f++){const m=e.readInt(!0),p=new Array(m);for(let b=0;b<m;b++)p[b]=e.readInt(!0);const g=e.readInt(!0),v=new qa(g,p,a);for(let b=0;b<g;b++)v.setFrame(b,e.readFloat(),T1(e,m));r.push(v)}const h=e.readInt(!0);if(h>0){const f=new cc(h);for(let m=0;m<h;m++){const p=e.readFloat(),g=i.events[e.readInt(!0)],v=new r0(p,g);v.intValue=e.readInt(!1),v.floatValue=e.readFloat(),v.stringValue=e.readString(),v.stringValue==null&&(v.stringValue=g.setupPose.stringValue),v.data.audioPath&&(v.volume=e.readFloat(),v.balance=e.readFloat()),f.setFrame(m,v)}r.push(f)}let u=0;for(let f=0,m=r.length;f<m;f++)u=Math.max(u,r[f].getDuration());const d=new e0(t,r,u);return s&&at.rgba8888ToColor(d.color,e.readInt32()),d}}class mU{constructor(e,t=[],i=0,s=new DataView(e instanceof ArrayBuffer?e:e.buffer)){T(this,"strings");T(this,"index");T(this,"buffer");this.strings=t,this.index=i,this.buffer=s}readByte(){return this.buffer.getInt8(this.index++)}readUnsignedByte(){return this.buffer.getUint8(this.index++)}readShort(){const e=this.buffer.getInt16(this.index);return this.index+=2,e}readInt32(){const e=this.buffer.getInt32(this.index);return this.index+=4,e}readInt(e){let t=this.readByte(),i=t&127;return(t&128)!==0&&(t=this.readByte(),i|=(t&127)<<7,(t&128)!==0&&(t=this.readByte(),i|=(t&127)<<14,(t&128)!==0&&(t=this.readByte(),i|=(t&127)<<21,(t&128)!==0&&(t=this.readByte(),i|=(t&127)<<28)))),e?i:i>>>1^-(i&1)}readStringRef(){const e=this.readInt(!0);return e===0?null:this.strings[e-1]}readString(){let e=this.readInt(!0);switch(e){case 0:return null;case 1:return""}e--;let t="";for(let i=0;i<e;){const s=this.readUnsignedByte();switch(s>>4){case 12:case 13:t+=String.fromCharCode((s&31)<<6|this.readByte()&63),i+=2;break;case 14:t+=String.fromCharCode((s&15)<<12|(this.readByte()&63)<<6|this.readByte()&63),i+=3;break;default:t+=String.fromCharCode(s),i++}}return t}readFloat(){const e=this.buffer.getFloat32(this.index);return this.index+=4,e}readBoolean(){return this.readByte()!==0}}let pU=class{constructor(e,t,i,s,r,o){T(this,"source");T(this,"skinIndex");T(this,"slotIndex");T(this,"sourceIndex");T(this,"mesh");T(this,"inheritTimelines");this.mesh=e,this.skinIndex=t,this.slotIndex=i,this.sourceIndex=s,this.source=r,this.inheritTimelines=o}};class _1{constructor(e=null,t,i=0){T(this,"bones");T(this,"vertices");T(this,"length");this.bones=e,this.vertices=t,this.length=i}}var Ys;(function(n){n[n.Region=0]="Region",n[n.BoundingBox=1]="BoundingBox",n[n.Mesh=2]="Mesh",n[n.LinkedMesh=3]="LinkedMesh",n[n.Path=4]="Path",n[n.Point=5]="Point",n[n.Clipping=6]="Clipping"})(Ys||(Ys={}));function mi(n,e,t,i){t instanceof nr?gU(n,e,t,i):vU(n,e,t,i)}function gU(n,e,t,i){let s=n.readFloat(),r=n.readFloat()*i;for(let o=0,a=0,c=t.getFrameCount()-1;t.setFrame(o,s,r),o!==c;o++){const l=n.readFloat(),h=n.readFloat()*i;switch(n.readByte()){case ms:t.setStepped(o);break;case ps:vt(n,t,a++,o,0,s,l,r,h,i)}s=l,r=h}e.push(t)}function vU(n,e,t,i){let s=n.readFloat(),r=n.readFloat()*i,o=n.readFloat()*i;for(let a=0,c=0,l=t.getFrameCount()-1;t.setFrame(a,s,r,o),a!==l;a++){const h=n.readFloat(),u=n.readFloat()*i,d=n.readFloat()*i;switch(n.readByte()){case ms:t.setStepped(a);break;case ps:vt(n,t,c++,a,0,s,h,r,u,i),vt(n,t,c++,a,1,s,h,o,d,i)}s=h,r=u,o=d}e.push(t)}function T1(n,e){const t=n.readInt(!0);if(t===0)return null;const i=new Array(e).fill(-1),s=new Array(e-t);let r=0,o=0;for(let a=0;a<t;a++){const c=n.readInt(!0);for(;r!==c;)s[o++]=r++;i[r+n.readInt(!0)]=r++}for(;r<e;)s[o++]=r++;for(let a=e-1;a>=0;a--)i[a]===-1&&(i[a]=s[--o]);return i}function vt(n,e,t,i,s,r,o,a,c,l){e.setBezier(t,i,s,r,a,n.readFloat(),n.readFloat()*l,n.readFloat(),n.readFloat()*l,o,c)}const yU=0,bU=1,xU=2,wU=3,SU=4,_U=5,TU=6,EU=7,CU=8,MU=9,AU=10,IU=0,PU=1,RU=2,kU=3,FU=4,LU=5,OU=0,$U=1,NU=2,DU=3,BU=4,UU=0,VU=1,XU=0,YU=1,GU=2,HU=0,jU=1,WU=2,zU=4,qU=5,KU=6,JU=7,ZU=8,QU=0,e5=1,ms=1,ps=2;class t5{constructor(e){T(this,"attachmentLoader");T(this,"scale",1);T(this,"linkedMeshes",[]);this.attachmentLoader=e}readSkeletonData(e){const t=this.scale,i=new xE,s=typeof e=="string"?JSON.parse(e):e,r=s.skeleton;if(r&&(i.hash=r.hash,i.version=r.spine,i.x=r.x,i.y=r.y,i.width=r.width,i.height=r.height,i.referenceScale=re(r,"referenceScale",100)*t,i.fps=r.fps,i.imagesPath=r.images??null,i.audioPath=r.audio??null),s.bones)for(let o=0;o<s.bones.length;o++){const a=s.bones[o];let c=null;const l=re(a,"parent",null);l&&(c=i.findBone(l));const h=new vd(i.bones.length,a.name,c);h.length=re(a,"length",0)*t;const u=h.setupPose;u.x=re(a,"x",0)*t,u.y=re(a,"y",0)*t,u.rotation=re(a,"rotation",0),u.scaleX=re(a,"scaleX",1),u.scaleY=re(a,"scaleY",1),u.shearX=re(a,"shearX",0),u.shearY=re(a,"shearY",0),u.inherit=Ke.enumValue(ri,re(a,"inherit","Normal")),h.skinRequired=re(a,"skin",!1);const d=re(a,"color",null);d&&h.color.setFromString(d),h.icon=re(a,"icon",void 0),h.iconSize=re(a,"iconSize",1),h.iconRotation=re(a,"iconRotation",0),i.bones.push(h)}if(s.slots)for(let o=0;o<s.slots.length;o++){const a=s.slots[o],c=a.name,l=i.findBone(a.bone);if(!l)throw new Error(`Couldn't find bone ${a.bone} for slot ${c}`);const h=new wE(i.slots.length,c,l),u=re(a,"color",null);u&&h.setupPose.color.setFromString(u);const d=re(a,"dark",null);d&&(h.setupPose.darkColor=at.fromString(d)),h.attachmentName=re(a,"attachment",null),h.blendMode=Ke.enumValue(Iu,re(a,"blend","normal")),h.visible=re(a,"visible",!0),i.slots.push(h)}if(s.constraints)for(const o of s.constraints){const a=o.name,c=re(o,"skin",!1);switch(re(o,"type",!1)){case"ik":{const l=new Rh(a);l.skinRequired=c;for(let m=0;m<o.bones.length;m++){const p=i.findBone(o.bones[m]);if(!p)throw new Error(`Couldn't find bone ${o.bones[m]} for IK constraint ${a}.`);l.bones.push(p)}const h=o.target,u=i.findBone(h);if(!u)throw new Error(`Couldn't find target bone ${h} for IK constraint ${a}.`);l.target=u;const d=re(o,"scaleY",null);d!=null&&(l.scaleYMode=Ke.enumValue(en,d));const f=l.setupPose;f.mix=re(o,"mix",1),f.softness=re(o,"softness",0)*t,f.bendDirection=re(o,"bendPositive",!0)?1:-1,f.compress=re(o,"compress",!1),f.stretch=re(o,"stretch",!1),i.constraints.push(l);break}case"transform":{const l=new At(a);l.skinRequired=c;for(let x=0;x<o.bones.length;x++){const _=o.bones[x],E=i.findBone(_);if(!E)throw new Error(`Couldn't find bone ${_} for transform constraint ${o.name}.`);l.bones.push(E)}const h=o.source,u=i.findBone(h);if(!u)throw new Error(`Couldn't find source bone ${h} for transform constraint ${o.name}.`);l.source=u,l.localSource=re(o,"localSource",!1),l.localTarget=re(o,"localTarget",!1),l.additive=re(o,"additive",!1),l.clamp=re(o,"clamp",!1);let d=!1,f=!1,m=!1,p=!1,g=!1,v=!1;const b=Object.entries(re(o,"properties",{}));for(const[x,_]of b){const E=this.fromProperty(x),S=this.propertyScale(x,t);E.offset=re(_,"offset",0)*S;const C=Object.entries(re(_,"to",{}));for(const[M,P]of C){let A=1,R;switch(M){case"rotate":{d=!0,R=new SE;break}case"x":{f=!0,R=new _E,A=t;break}case"y":{m=!0,R=new TE,A=t;break}case"scaleX":{p=!0,R=new EE;break}case"scaleY":{g=!0,R=new CE;break}case"shearY":{v=!0,R=new ME;break}default:throw new Error(`Invalid transform constraint to property: ${M}`)}R.offset=re(P,"offset",0)*A,R.max=re(P,"max",1)*A,R.scale=re(P,"scale",1)*A/S,E.to.push(R)}E.to.length>0&&l.properties.push(E)}l.offsets[At.ROTATION]=re(o,"rotation",0),l.offsets[At.X]=re(o,"x",0)*t,l.offsets[At.Y]=re(o,"y",0)*t,l.offsets[At.SCALEX]=re(o,"scaleX",0),l.offsets[At.SCALEY]=re(o,"scaleY",0),l.offsets[At.SHEARY]=re(o,"shearY",0);const y=l.setupPose;d&&(y.mixRotate=re(o,"mixRotate",1)),f&&(y.mixX=re(o,"mixX",1)),m&&(y.mixY=re(o,"mixY",y.mixX)),p&&(y.mixScaleX=re(o,"mixScaleX",1)),g&&(y.mixScaleY=re(o,"mixScaleY",y.mixScaleX)),v&&(y.mixShearY=re(o,"mixShearY",1)),i.constraints.push(l);break}case"path":{const l=new kh(a);l.skinRequired=c;for(let f=0;f<o.bones.length;f++){const m=o.bones[f],p=i.findBone(m);if(!p)throw new Error(`Couldn't find bone ${m} for path constraint ${o.name}.`);l.bones.push(p)}const h=o.slot,u=i.findSlot(h);if(!u)throw new Error(`Couldn't find slot ${h} for path constraint ${o.name}.`);l.slot=u,l.positionMode=Ke.enumValue(Is,re(o,"positionMode","Percent")),l.spacingMode=Ke.enumValue(Ei,re(o,"spacingMode","Length")),l.rotateMode=Ke.enumValue(Do,re(o,"rotateMode","Tangent")),l.offsetRotation=re(o,"rotation",0);const d=l.setupPose;d.position=re(o,"position",0),l.positionMode===Is.Fixed&&(d.position*=t),d.spacing=re(o,"spacing",0),(l.spacingMode===Ei.Length||l.spacingMode===Ei.Fixed)&&(d.spacing*=t),d.mixRotate=re(o,"mixRotate",1),d.mixX=re(o,"mixX",1),d.mixY=re(o,"mixY",d.mixX),i.constraints.push(l);break}case"physics":{const l=new Fh(a);l.skinRequired=c;const h=o.bone,u=i.findBone(h);if(u==null)throw new Error(`Physics bone not found: ${h}`);l.bone=u,l.x=re(o,"x",0),l.y=re(o,"y",0),l.rotate=re(o,"rotate",0),l.scaleX=re(o,"scaleX",0);const d=re(o,"scaleY",null);d!=null&&(l.scaleYMode=Ke.enumValue(en,d)),l.shearX=re(o,"shearX",0),l.limit=re(o,"limit",5e3)*t,l.step=1/re(o,"fps",60);const f=l.setupPose;f.inertia=re(o,"inertia",.5),f.strength=re(o,"strength",100),f.damping=re(o,"damping",.85),f.massInverse=1/re(o,"mass",1),f.wind=re(o,"wind",0),f.gravity=re(o,"gravity",0),f.mix=re(o,"mix",1),l.inertiaGlobal=re(o,"inertiaGlobal",!1),l.strengthGlobal=re(o,"strengthGlobal",!1),l.dampingGlobal=re(o,"dampingGlobal",!1),l.massGlobal=re(o,"massGlobal",!1),l.windGlobal=re(o,"windGlobal",!1),l.gravityGlobal=re(o,"gravityGlobal",!1),l.mixGlobal=re(o,"mixGlobal",!1),i.constraints.push(l);break}case"slider":{const l=new Co(a);l.skinRequired=c,l.additive=re(o,"additive",!1),l.loop=re(o,"loop",!1),l.setupPose.mix=re(o,"mix",1);const h=o.bone;if(h){if(l.bone=i.findBone(h),!l.bone)throw new Error(`Slider bone not found: ${h}`);const u=o.property;l.property=this.fromProperty(u);const d=this.propertyScale(u,t);l.property.offset=re(o,"from",0)*d,l.offset=re(o,"to",0),l.scale=re(o,"scale",1)/d,l.max=re(o,"max",0),l.local=re(o,"local",!1)}else l.setupPose.time=re(o,"time",0);i.constraints.push(l);break}}}if(s.skins)for(let o=0;o<s.skins.length;o++){const a=s.skins[o],c=new qp(a.name);if(a.bones)for(let l=0;l<a.bones.length;l++){const h=a.bones[l],u=i.findBone(h);if(!u)throw new Error(`Couldn't find bone ${h} for skin ${a.name}.`);c.bones.push(u)}if(a.ik)for(let l=0;l<a.ik.length;l++){const h=a.ik[l],u=i.findConstraint(h,Rh);if(!u)throw new Error(`Couldn't find IK constraint ${h} for skin ${a.name}.`);c.constraints.push(u)}if(a.transform)for(let l=0;l<a.transform.length;l++){const h=a.transform[l],u=i.findConstraint(h,At);if(!u)throw new Error(`Couldn't find transform constraint ${h} for skin ${a.name}.`);c.constraints.push(u)}if(a.path)for(let l=0;l<a.path.length;l++){const h=a.path[l],u=i.findConstraint(h,kh);if(!u)throw new Error(`Couldn't find path constraint ${h} for skin ${a.name}.`);c.constraints.push(u)}if(a.physics)for(let l=0;l<a.physics.length;l++){const h=a.physics[l],u=i.findConstraint(h,Fh);if(!u)throw new Error(`Couldn't find physics constraint ${h} for skin ${a.name}.`);c.constraints.push(u)}if(a.slider)for(let l=0;l<a.slider.length;l++){const h=a.slider[l],u=i.findConstraint(h,Co);if(!u)throw new Error(`Couldn't find slider constraint ${h} for skin ${a.name}.`);c.constraints.push(u)}for(const l in a.attachments){const h=i.findSlot(l);if(!h)throw new Error(`Couldn't find skin slot ${l} for skin ${a.name}.`);const u=a.attachments[l];for(const d in u){const f=this.readAttachment(u[d],c,h.index,d,i);f&&c.setAttachment(h.index,d,f)}}i.skins.push(c),c.name==="default"&&(i.defaultSkin=c)}for(let o=0,a=this.linkedMeshes.length;o<a;o++){const c=this.linkedMeshes[o],l=c.skin?i.findSkin(c.skin):i.defaultSkin;if(!l)throw new Error(`Skin not found: ${c.skin}`);const h=l.getAttachment(c.sourceIndex,c.source);if(!h)throw new Error(`Source mesh not found: ${c.source}`);c.mesh.timelineAttachment=c.inheritTimelines?h:c.mesh,c.mesh.setSourceMesh(h),c.mesh.updateSequence();e:if(c.inheritTimelines&&c.slotIndex!==c.sourceIndex){const u=h.timelineSlots;for(const f of u)if(f===c.slotIndex)break e;const d=[...u];d[u.length]=c.slotIndex,h.timelineSlots=d}}if(this.linkedMeshes.length=0,s.events)for(const o in s.events){const a=s.events[o],c=new bE(o),l=c.setupPose;l.intValue=re(a,"int",0),l.floatValue=re(a,"float",0),l.stringValue=re(a,"string",""),c._audioPath=re(a,"audio",null),c.audioPath&&(l.volume=re(a,"volume",l.volume),l.balance=re(a,"balance",l.balance)),i.events.push(c)}if(s.animations)for(const o in s.animations){const a=s.animations[o];this.readAnimation(a,o,i)}if(s.constraints)for(const o in s.constraints){const a=s.constraints[o];if(a.type==="slider"){const c=i.findConstraint(a.name,Co),l=a.animation,h=i.findAnimation(l);if(!h)throw new Error(`Slider animation not found: ${l}`);c.animation=h}}return i}fromProperty(e){let t;switch(e){case"rotate":t=new Jp;break;case"x":t=new Zp;break;case"y":t=new Qp;break;case"scaleX":t=new eg;break;case"scaleY":t=new tg;break;case"shearY":t=new ig;break;default:throw new Error(`Invalid transform constraint from property: ${e}`)}return t}propertyScale(e,t){switch(e){case"x":case"y":return t;default:return 1}}readAttachment(e,t,i,s,r){const o=this.scale,a=re(e,"name",s);switch(re(e,"type","region")){case"region":{const c=re(e,"path",a),l=this.readSequence(re(e,"sequence",null)),h=this.attachmentLoader.newRegionAttachment(t,s,a,c,l);if(!h)return null;h.path=c,h.x=re(e,"x",0)*o,h.y=re(e,"y",0)*o,h.scaleX=re(e,"scaleX",1),h.scaleY=re(e,"scaleY",1),h.rotation=re(e,"rotation",0),h.width=e.width*o,h.height=e.height*o;const u=re(e,"color",null);return u&&h.color.setFromString(u),h.updateSequence(),h}case"boundingbox":{const c=this.attachmentLoader.newBoundingBoxAttachment(t,s,a);if(!c)return null;this.readVertices(e,c,e.vertexCount<<1);const l=re(e,"color",null);return l&&c.color.setFromString(l),c}case"mesh":case"linkedmesh":{const c=re(e,"path",a),l=this.readSequence(re(e,"sequence",null)),h=this.attachmentLoader.newMeshAttachment(t,s,a,c,l);if(!h)return null;h.path=c;const u=re(e,"color",null);u&&h.color.setFromString(u),h.width=re(e,"width",0)*o,h.height=re(e,"height",0)*o;const d=re(e,"source",null);if(d){let m=i;const p=re(e,"slot",null);if(p){const g=r.findSlot(p);if(!g)throw new Error(`Source mesh slot not found: ${p}`);m=g.index}return this.linkedMeshes.push(new i5(h,re(e,"skin",null),i,m,d,re(e,"timelines",!0))),h}const f=e.uvs;return this.readVertices(e,h,f.length),h.triangles=e.triangles,h.regionUVs=f,h.edges=re(e,"edges",null),h.hullLength=re(e,"hull",0)*2,h.updateSequence(),h}case"path":{const c=this.attachmentLoader.newPathAttachment(t,s,a);if(!c)return null;c.closed=re(e,"closed",!1),c.constantSpeed=re(e,"constantSpeed",!0);const l=e.vertexCount;this.readVertices(e,c,l<<1);const h=Ke.newArray(l/3,0);for(let d=0;d<e.lengths.length;d++)h[d]=e.lengths[d]*o;c.lengths=h;const u=re(e,"color",null);return u&&c.color.setFromString(u),c}case"point":{const c=this.attachmentLoader.newPointAttachment(t,s,a);if(!c)return null;c.x=re(e,"x",0)*o,c.y=re(e,"y",0)*o,c.rotation=re(e,"rotation",0);const l=re(e,"color",null);return l&&c.color.setFromString(l),c}case"clipping":{const c=this.attachmentLoader.newClippingAttachment(t,s,a);if(!c)return null;const l=re(e,"end",null);l&&(c.endSlot=r.findSlot(l)),c.convex=re(e,"convex",!1),c.inverse=re(e,"inverse",!1);const h=e.vertexCount;this.readVertices(e,c,h<<1);const u=re(e,"color",null);return u&&c.color.setFromString(u),c}}return null}readSequence(e){if(e==null)return new za(1,!1);const t=new za(re(e,"count",0),!0);return t.start=re(e,"start",1),t.digits=re(e,"digits",0),t.setupIndex=re(e,"setup",0),t}readVertices(e,t,i){const s=this.scale;t.worldVerticesLength=i;const r=e.vertices;if(i===r.length){const c=Ke.toFloatArray(r);if(s!==1)for(let l=0,h=r.length;l<h;l++)c[l]*=s;t.vertices=c;return}const o=[],a=[];for(let c=0,l=r.length;c<l;){const h=r[c++];a.push(h);for(let u=c+h*4;c<u;c+=4)a.push(r[c]),o.push(r[c+1]*s),o.push(r[c+2]*s),o.push(r[c+3])}t.bones=a,t.vertices=Ke.toFloatArray(o)}readAnimation(e,t,i){const s=this.scale,r=[];if(e.slots)for(const l in e.slots){const h=e.slots[l],u=i.findSlot(l);if(!u)throw new Error(`Slot not found: ${l}`);const d=u.index;for(const f in h){const m=h[f];if(!m)continue;const p=m.length;switch(f){case"attachment":{const g=new $l(p,d);for(let v=0;v<p;v++){const b=m[v];g.setFrame(v,re(b,"time",0),re(b,"name",null))}r.push(g);break}case"rgba":{const g=new JT(p,p<<2,d);let v=m[0],b=re(v,"time",0),y=at.fromString(v.color);for(let x=0,_=0;;x++){g.setFrame(x,b,y.r,y.g,y.b,y.a);const E=m[x+1];if(!E){g.shrink(_);break}const S=re(E,"time",0),C=at.fromString(E.color),M=v.curve;M&&(_=wt(M,g,_,x,0,b,S,y.r,C.r,1),_=wt(M,g,_,x,1,b,S,y.g,C.g,1),_=wt(M,g,_,x,2,b,S,y.b,C.b,1),_=wt(M,g,_,x,3,b,S,y.a,C.a,1)),b=S,y=C,v=E}r.push(g);break}case"rgb":{const g=new ZT(p,p*3,d);let v=m[0],b=re(v,"time",0),y=at.fromString(v.color);for(let x=0,_=0;;x++){g.setFrame(x,b,y.r,y.g,y.b);const E=m[x+1];if(!E){g.shrink(_);break}const S=re(E,"time",0),C=at.fromString(E.color),M=v.curve;M&&(_=wt(M,g,_,x,0,b,S,y.r,C.r,1),_=wt(M,g,_,x,1,b,S,y.g,C.g,1),_=wt(M,g,_,x,2,b,S,y.b,C.b,1)),b=S,y=C,v=E}r.push(g);break}case"alpha":{gn(r,m,new QT(p,p,d),0,1);break}case"rgba2":{const g=new eE(p,p*7,d);let v=m[0],b=re(v,"time",0),y=at.fromString(v.light),x=at.fromString(v.dark);for(let _=0,E=0;;_++){g.setFrame(_,b,y.r,y.g,y.b,y.a,x.r,x.g,x.b);const S=m[_+1];if(!S){g.shrink(E);break}const C=re(S,"time",0),M=at.fromString(S.light),P=at.fromString(S.dark),A=v.curve;A&&(E=wt(A,g,E,_,0,b,C,y.r,M.r,1),E=wt(A,g,E,_,1,b,C,y.g,M.g,1),E=wt(A,g,E,_,2,b,C,y.b,M.b,1),E=wt(A,g,E,_,3,b,C,y.a,M.a,1),E=wt(A,g,E,_,4,b,C,x.r,P.r,1),E=wt(A,g,E,_,5,b,C,x.g,P.g,1),E=wt(A,g,E,_,6,b,C,x.b,P.b,1)),b=C,y=M,x=P,v=S}r.push(g);break}case"rgb2":{const g=new tE(p,p*6,d);let v=m[0],b=re(v,"time",0),y=at.fromString(v.light),x=at.fromString(v.dark);for(let _=0,E=0;;_++){g.setFrame(_,b,y.r,y.g,y.b,x.r,x.g,x.b);const S=m[_+1];if(!S){g.shrink(E);break}const C=re(S,"time",0),M=at.fromString(S.light),P=at.fromString(S.dark),A=v.curve;A&&(E=wt(A,g,E,_,0,b,C,y.r,M.r,1),E=wt(A,g,E,_,1,b,C,y.g,M.g,1),E=wt(A,g,E,_,2,b,C,y.b,M.b,1),E=wt(A,g,E,_,3,b,C,x.r,P.r,1),E=wt(A,g,E,_,4,b,C,x.g,P.g,1),E=wt(A,g,E,_,5,b,C,x.b,P.b,1)),b=C,y=M,x=P,v=S}r.push(g);break}default:throw new Error(`Invalid timeline type for a slot: ${m.name} (${h.name})`)}}}if(e.bones)for(const l in e.bones){const h=e.bones[l],u=i.findBone(l);if(!u)throw new Error(`Bone not found: ${l}`);const d=u.index;for(const f in h){const m=h[f],p=m.length;if(p!==0)switch(f){case"rotate":gn(r,m,new Cu(p,p,d),0,1);break;case"translate":ym(r,m,new VT(p,p<<1,d),"x","y",0,s);break;case"translatex":gn(r,m,new XT(p,p,d),0,s);break;case"translatey":gn(r,m,new YT(p,p,d),0,s);break;case"scale":ym(r,m,new GT(p,p<<1,d),"x","y",1,1);break;case"scalex":gn(r,m,new HT(p,p,d),1,1);break;case"scaley":gn(r,m,new jT(p,p,d),1,1);break;case"shear":ym(r,m,new WT(p,p<<1,d),"x","y",0,1);break;case"shearx":gn(r,m,new zT(p,p,d),0,1);break;case"sheary":gn(r,m,new qT(p,p,d),0,1);break;case"inherit":{const g=new KT(p,u.index);for(let v=0;v<m.length;v++){const b=m[v];g.setFrame(v,re(b,"time",0),Ke.enumValue(ri,re(b,"inherit","Normal")))}r.push(g);break}default:throw new Error(`Invalid timeline type for a bone: ${m.name} (${h.name})`)}}}if(e.ik)for(const l in e.ik){const h=e.ik[l];let u=h[0];if(!u)continue;const d=i.findConstraint(l,Rh);if(!d)throw new Error(`IK Constraint not found: ${l}`);const f=new nE(h.length,h.length<<1,i.constraints.indexOf(d));let m=re(u,"time",0),p=re(u,"mix",1),g=re(u,"softness",0)*s;for(let v=0,b=0;;v++){f.setFrame(v,m,p,g,re(u,"bendPositive",!0)?1:-1,re(u,"compress",!1),re(u,"stretch",!1));const y=h[v+1];if(!y){f.shrink(b);break}const x=re(y,"time",0),_=re(y,"mix",1),E=re(y,"softness",0)*s,S=u.curve;S&&(b=wt(S,f,b,v,0,m,x,p,_,1),b=wt(S,f,b,v,1,m,x,g,E,s)),m=x,p=_,g=E,u=y}r.push(f)}if(e.transform)for(const l in e.transform){const h=e.transform[l];let u=h[0];if(!u)continue;const d=i.findConstraint(l,At);if(!d)throw new Error(`Transform constraint not found: ${l}`);const f=new sE(h.length,h.length*6,i.constraints.indexOf(d));let m=re(u,"time",0),p=re(u,"mixRotate",1),g=re(u,"mixX",1),v=re(u,"mixY",g),b=re(u,"mixScaleX",1),y=re(u,"mixScaleY",1),x=re(u,"mixShearY",1);for(let _=0,E=0;;_++){f.setFrame(_,m,p,g,v,b,y,x);const S=h[_+1];if(!S){f.shrink(E);break}const C=re(S,"time",0),M=re(S,"mixRotate",1),P=re(S,"mixX",1),A=re(S,"mixY",P),R=re(S,"mixScaleX",1),B=re(S,"mixScaleY",1),O=re(S,"mixShearY",1),W=u.curve;W&&(E=wt(W,f,E,_,0,m,C,p,M,1),E=wt(W,f,E,_,1,m,C,g,P,1),E=wt(W,f,E,_,2,m,C,v,A,1),E=wt(W,f,E,_,3,m,C,b,R,1),E=wt(W,f,E,_,4,m,C,y,B,1),E=wt(W,f,E,_,5,m,C,x,O,1)),m=C,p=M,g=P,v=A,b=R,y=B,x=O,u=S}r.push(f)}if(e.path)for(const l in e.path){const h=e.path[l],u=i.findConstraint(l,kh);if(!u)throw new Error(`Path constraint not found: ${l}`);const d=i.constraints.indexOf(u);for(const f in h){const m=h[f];let p=m[0];if(!p)continue;const g=m.length;switch(f){case"position":{const v=new rE(g,g,d);gn(r,m,v,0,u.positionMode===Is.Fixed?s:1);break}case"spacing":{const v=new oE(g,g,d);gn(r,m,v,0,u.spacingMode===Ei.Length||u.spacingMode===Ei.Fixed?s:1);break}case"mix":{const v=new aE(g,g*3,d);let b=re(p,"time",0),y=re(p,"mixRotate",1),x=re(p,"mixX",1),_=re(p,"mixY",x);for(let E=0,S=0;;E++){v.setFrame(E,b,y,x,_);const C=m[E+1];if(!C){v.shrink(S);break}const M=re(C,"time",0),P=re(C,"mixRotate",1),A=re(C,"mixX",1),R=re(C,"mixY",A),B=p.curve;B&&(S=wt(B,v,S,E,0,b,M,y,P,1),S=wt(B,v,S,E,1,b,M,x,A,1),S=wt(B,v,S,E,2,b,M,_,R,1)),b=M,y=P,x=A,_=R,p=C}r.push(v);break}}}}if(e.physics)for(const l in e.physics){const h=e.physics[l];let u=-1;if(l.length>0){const d=i.findConstraint(l,Fh);if(!d)throw new Error(`Physics constraint not found: ${l}`);u=i.constraints.indexOf(d)}for(const d in h){const f=h[d];let m=f[0];if(!m)continue;const p=f.length;let g,v=0;if(d==="reset"){const b=new Au(p,u);for(let y=0;m!=null;m=f[y+1],y++)b.setFrame(y,re(m,"time",0));r.push(b);continue}switch(d){case"inertia":g=new lE(p,p,u);break;case"strength":g=new cE(p,p,u);break;case"damping":g=new hE(p,p,u);break;case"mass":g=new uE(p,p,u);break;case"wind":g=new dE(p,p,u);break;case"gravity":g=new fE(p,p,u);break;case"mix":{v=1,g=new mE(p,p,u);break}default:continue}gn(r,f,g,v,1)}}if(e.slider)for(const l in e.slider){const h=e.slider[l],u=i.findConstraint(l,Co);if(!u)throw new Error(`Slider not found: ${l}`);const d=i.constraints.indexOf(u);for(const f in h){const m=h[f];if(!m[0])continue;const g=m.length;switch(f){case"time":gn(r,m,new pE(g,g,d),1,1);break;case"mix":gn(r,m,new gE(g,g,d),1,1);break}}}if(e.attachments)for(const l in e.attachments){const h=e.attachments[l],u=i.findSkin(l);if(!u)throw new Error(`Skin not found: ${l}`);for(const d in h){const f=h[d],m=i.findSlot(d);if(!m)throw new Error(`Attachment slot not found: ${d}`);const p=m.index;for(const g in f){const v=f[g],b=u.getAttachment(p,g);if(!b)throw new Error(`Timeline attachment not found: ${g}`);for(const y in v){const x=v[y];let _=x[0];if(_){if(y==="deform"){const E=b.bones,S=b.vertices,C=E?S.length/3*2:S.length,M=new iE(x.length,x.length,p,b);let P=re(_,"time",0);for(let A=0,R=0;;A++){let B;const O=re(_,"vertices",null);if(!O)B=E?Ke.newFloatArray(C):S;else{B=Ke.newFloatArray(C);const L=re(_,"offset",0);if(Ke.arrayCopy(O,0,B,L,O.length),s!==1)for(let N=L,F=N+O.length;N<F;N++)B[N]*=s;if(!E)for(let N=0;N<C;N++)B[N]+=S[N]}M.setFrame(A,P,B);const W=x[A+1];if(!W){M.shrink(R);break}const V=re(W,"time",0),Y=_.curve;Y&&(R=wt(Y,M,R,A,0,P,V,0,1,1)),P=V,_=W}r.push(M)}else if(y==="sequence"){const E=new Mu(x.length,p,b);let S=0;for(let C=0;C<x.length;C++){const M=re(_,"delay",S),P=re(_,"time",0),A=$i[re(_,"mode","hold")],R=re(_,"index",0);E.setFrame(C,P,A,R,M),S=M,_=x[C+1]}r.push(E)}}}}}}if(e.drawOrder){const l=new qr(e.drawOrder.length),h=i.slots.length;let u=0;for(const d of e.drawOrder)l.setFrame(u++,re(d,"time",0),E1(i,d,h,null));r.push(l)}if(e.drawOrderFolder)for(const l of e.drawOrderFolder){const h=re(l,"slots",[]),u=new Array(h.length);let d=0;for(const g of h){const v=i.findSlot(g);if(!v)throw new Error(`Draw order folder slot not found: ${g}`);u[d++]=v.index}const f=re(l,"keys",[]),m=new qa(f.length,u,i.slots.length);let p=0;for(const g of f)m.setFrame(p++,re(g,"time",0),E1(i,g,u.length,u));r.push(m)}if(e.events){const l=new cc(e.events.length);let h=0;for(let u=0;u<e.events.length;u++,h++){const d=e.events[u],f=i.findEvent(d.name);if(!f)throw new Error(`Event not found: ${d.name}`);const m=f.setupPose,p=new r0(Ke.toSinglePrecision(re(d,"time",0)),f);p.intValue=re(d,"int",m.intValue),p.floatValue=re(d,"float",m.floatValue),p.stringValue=re(d,"string",m.stringValue),p.data.audioPath&&(p.volume=re(d,"volume",m.volume),p.balance=re(d,"balance",m.volume)),l.setFrame(h,p)}r.push(l)}let o=0;for(let l=0,h=r.length;l<h;l++)o=Math.max(o,r[l].getDuration());const a=new e0(t,r,o),c=re(e,"color",null);c!==null&&a.color.setFromString(c),i.animations.push(a)}}class i5{constructor(e,t,i,s,r,o){T(this,"source");T(this,"skin");T(this,"slotIndex");T(this,"sourceIndex");T(this,"mesh");T(this,"inheritTimelines");this.mesh=e,this.skin=t,this.slotIndex=i,this.sourceIndex=s,this.source=r,this.inheritTimelines=o}}function gn(n,e,t,i,s){let r=e[0],o=r.time??0,a=(r.value??i)*s,c=0;for(let l=0;;l++){t.setFrame(l,o,a);const h=e[l+1];if(!h){t.shrink(c),n.push(t);return}const u=h.time??0,d=(h.value??i)*s;r.curve&&(c=wt(r.curve,t,c,l,0,o,u,a,d,s)),o=u,a=d,r=h}}function ym(n,e,t,i,s,r,o){let a=e[0],c=a.time??0,l=(a[i]??r)*o,h=(a[s]??r)*o,u=0;for(let d=0;;d++){t.setFrame(d,c,l,h);const f=e[d+1];if(!f){t.shrink(u),n.push(t);return}const m=f.time??0,p=(f[i]??r)*o,g=(f[s]??r)*o,v=a.curve;v&&(u=wt(v,t,u,d,0,c,m,l,p,o),u=wt(v,t,u,d,1,c,m,h,g,o)),c=m,l=p,h=g,a=f}}function E1(n,e,t,i){const s=e.offsets;if(!s)return null;const r=new Array(t).fill(-1),o=new Array(t-s.length);let a=0,c=0;for(const l of s){const h=n.findSlot(l.slot);if(h==null)throw new Error(`Draw order slot not found: ${l.slot}`);let u=0;if(!i)u=h.index;else{u=-1;for(let d=0;d<t;d++)if(i[d]===h.index){u=d;break}if(u===-1)throw new Error(`Slot not in folder: ${l.slot}`)}for(;a!==u;)o[c++]=a++;r[a+l.offset]=a++}for(;a<t;)o[c++]=a++;for(let l=t-1;l>=0;l--)r[l]===-1&&(r[l]=o[--c]);return r}function wt(n,e,t,i,s,r,o,a,c,l){if(n==="stepped")return e.setStepped(i),t;const h=s<<2,u=n[h],d=n[h+1]*l,f=n[h+2],m=n[h+3]*l;return e.setBezier(t,i,s,r,a,u,d,f,m,o,c),t+1}function re(n,e,t){return n[e]!==void 0?n[e]:t}class n5{newRegionAttachment(e,t,i,s){return new dd(t,i)}newMeshAttachment(e,t,i,s){return new bc(t,i)}newBoundingBoxAttachment(e,t){return new eT(t)}newPathAttachment(e,t){return new lc(t)}newPointAttachment(e,t){return new oT(t)}newClippingAttachment(e,t){return new $a(t)}}class s5{sequence(e){for(let t=0;t<e.regions.length;t++){if(e.regions[t])continue;const i=new DT;i.u=0,i.v=0,i.u2=1,i.v2=1,i.width=1,i.height=1,i.originalWidth=1,i.originalHeight=1,i.offsetX=0,i.offsetY=0,i.degrees=0,e.regions[t]=i}return e}newRegionAttachment(e,t,i,s,r){return new Wa(i,this.sequence(r))}newMeshAttachment(e,t,i,s,r){return new Zr(i,this.sequence(r))}newBoundingBoxAttachment(e,t,i){return new i0(i)}newPathAttachment(e,t,i){return new hc(i)}newPointAttachment(e,t,i){return new n0(i)}newClippingAttachment(e,t,i){return new gd(i)}}const r5=new Set(["normal","onlyTranslation","noRotationOrReflection","noScale","noScaleOrReflection"]);function o5(n,e,t){const i=n.uvs,s=n.vertices,r=n.triangles;if(!Array.isArray(i)||!i.length||i.length%2)throw new Error(Ye("errors.invalidTrailUV",{name:e}));if(!Array.isArray(s)||!s.length)throw new Error(Ye("errors.missingTrailVertices",{name:e}));const o=i.length/2;if(!Array.isArray(r)||r.some(h=>!Number.isInteger(h)||h<0||h>=o))throw new Error(Ye("errors.trailIndexOutOfRange",{name:e}));const a=Number(n.hull)||0;if(!Number.isInteger(a)||a<0||a>o)throw new Error(Ye("errors.invalidTrailHull",{name:e}));if(Array.isArray(n.edges)&&n.edges.some(h=>!Number.isInteger(h)||h<0||h>=o*2||h%2))throw new Error(Ye("errors.trailHullIndexOutOfRange",{name:e}));if(s.length===i.length)return;let c=0,l=0;for(;c<s.length;){const h=s[c++];if(!Number.isInteger(h)||h<1)throw new Error(Ye("errors.invalidInfluenceCount",{name:e}));let u=0;for(let d=0;d<h;d++){const f=s[c++],m=s[c++],p=s[c++],g=s[c++];if(!Number.isInteger(f)||f<0||f>=t)throw new Error(Ye("errors.missingBoneReference",{name:e}));if(![m,p,g].every(Number.isFinite)||g<0)throw new Error(Ye("errors.invalidWeight",{name:e}));u+=g}if(Math.abs(u-1)>.001)throw new Error(Ye("errors.weightSum",{name:e}));l++}if(c!==s.length||l!==o)throw new Error(Ye("errors.vertexCountMismatch",{name:e}))}function a5(n,e){var r,o,a,c;const t=Array.isArray(n.bones)?n.bones:[],i=new Map(t.map(l=>[String(l.name||""),l])),s=new Set;for(const l of t){if(l.inherit!=null&&!r5.has(l.inherit))throw new Error(Ye("errors.invalidInherit",{name:l.name||"",inherit:l.inherit,version:e}));if(/_trail_\d+_\d+$/.test(String(l.name||""))){const h=i.get(String(l.parent||""));if(!h||/_trail_\d+_\d+$/.test(String(h.name||"")))throw new Error(Ye("errors.trailBoneParent",{name:l.name||""}))}}for(const l of Array.isArray(n.skins)?n.skins:[]){const h=(l==null?void 0:l.attachments)||{};for(const u of Object.keys(h))for(const d of Object.keys(h[u]||{})){const f=h[u][d];(f==null?void 0:f.type)==="mesh"&&(o5(f,d,t.length),((r=f.vertices)==null?void 0:r.length)!==((o=f.uvs)==null?void 0:o.length)&&s.add(u))}}for(const l of Object.values(n.animations||{}))for(const h of s){const u=(c=(a=l==null?void 0:l.slots)==null?void 0:a[h])==null?void 0:c.attachment;if(Array.isArray(u)&&u.some(d=>!(d!=null&&d.name)))throw new Error(Ye("errors.trailSlotEmpty",{name:h}))}}function l5(n){var e;if(String(((e=n==null?void 0:n.skeleton)==null?void 0:e.spine)||"")!=="3.8")throw new Error(Ye("errors.spine38Version"));for(const t of n.bones||[])if(t.inherit!=null)throw new Error(Ye("errors.spine38Inherit",{name:t.name||""}));for(const t of Object.values(n.animations||{})){for(const s of Object.values(t.slots||{})){if(s.rgba||s.rgba2)throw new Error(Ye("errors.spine38SlotColor"));for(const r of s.attachment||[])if(!Object.prototype.hasOwnProperty.call(r,"name"))throw new Error(Ye("errors.spine38AttachmentName"))}for(const s of Object.values(t.bones||{}))for(const r of s.rotate||[])if(r.value!=null||r.angle==null)throw new Error(Ye("errors.spine38RotationAngle"));const i=[t];for(;i.length;){const s=i.pop();if(!(!s||typeof s!="object")){if(!Array.isArray(s)&&Array.isArray(s.curve))throw new Error(Ye("errors.spine38Curve"));i.push(...Object.values(s))}}}}function C1(n,e){var o;const t=JSON.parse(n),i=lu((o=t==null?void 0:t.skeleton)==null?void 0:o.spine);if(!i)throw new Error(Ye("errors.unsupportedExportVersion",{versions:bp()}));if(e&&i!==e)throw new Error(Ye("errors.exportVersionMismatch",{expected:e,actual:i}));a5(t,i),i==="3.8"&&l5(t);const s=i==="3.8"?bT(JSON.parse(JSON.stringify(t))):t,r=i==="4.3"?new t5(new s5).readSkeletonData(s):new yu(new n5).readSkeletonData(s);if(!r.bones.length)throw new Error(Ye("errors.exportMissingBones"));return{version:i,bones:r.bones.length,slots:r.slots.length,animations:r.animations.length}}const AE="http://127.0.0.1:27843";class Pu extends Error{constructor(t,i="CONNECTOR_ERROR",s){super(t);T(this,"code");T(this,"pairUrl");this.name="SpineConnectorError",this.code=i,this.pairUrl=s}}function ng(n,e){return String(n||"").trim().replace(/[\\/:*?"<>|]+/g,"_").replace(/^\.+/,"")||e}function c5(n,e){const t=/\.([a-z0-9]{2,5})$/i.exec(n);return t?`.${t[1].toLowerCase()}`:e.includes("jpeg")?".jpg":e.includes("webp")?".webp":e.includes("gif")?".gif":".png"}function h5(n,e,t){const i=String(n||"").replace(/\\/g,"/").split("/").filter(Boolean).map(r=>ng(r,"images")),s=ng(e.replace(/\.[^./\\]+$/,""),"image");return[...i,`${s}${c5(e,t)}`].join("/")}async function bm(n,e,t){if(!n)return null;const i=await fetch(n);if(!i.ok)throw new Error(Ye("errors.readExportImageFailed",{name:t}));const s=await i.blob(),r=new Uint8Array(await s.arrayBuffer());let o="";const a=32768;for(let c=0;c<r.length;c+=a)o+=String.fromCharCode(...r.subarray(c,c+a));return{path:h5(e,t,s.type),dataBase64:btoa(o)}}async function IE(n,e){const t=[];let i=0;const s=o=>o.finally(()=>{i++,e==null||e(i,t.length)});for(const o of n.filter(a=>a.visible!==!1)){for(const a of o.config.imageResources)if(a.imageMode==="sequence"&&a.sequenceFrames.length)for(const c of a.sequenceFrames)t.push(s(bm(c.previewUrl,a.textureFolder,c.name||a.textureName)));else t.push(s(bm(a.previewUrl,a.textureFolder,a.textureName)));if(o.config.trail)for(const a of o.config.trailResources)t.push(s(bm(a.previewUrl,"",a.textureName)))}const r=new Map;for(const o of await Promise.all(t))o&&!r.has(o.path)&&r.set(o.path,o);return[...r.values()]}async function u5(){try{const n=await fetch(`${AE}/v1/health`,{cache:"no-store"});if(!n.ok)throw new Error(`HTTP ${n.status}`);return{available:!0,...await n.json()}}catch(n){return{available:!1,authorized:!1,error:n instanceof Error?n.message:String(n)}}}async function d5(n,e){const t=await IE(n.systems,(s,r)=>{e==null||e({phase:"images",progress:r?s/r:1})}),i=JSON.stringify({schemaVersion:1,projectName:n.projectName,spineVersion:n.spineVersion,skeletonJson:n.skeletonJson,images:t});return new Promise((s,r)=>{const o=new XMLHttpRequest;o.open("POST",`${AE}/v1/convert`),o.responseType="blob",o.setRequestHeader("Content-Type","application/json"),o.upload.onprogress=a=>{e==null||e({phase:"upload",progress:a.lengthComputable&&a.total>0?a.loaded/a.total:null})},o.upload.onloadend=()=>e==null?void 0:e({phase:"processing",progress:null}),o.onprogress=a=>{e==null||e({phase:"download",progress:a.lengthComputable&&a.total>0?a.loaded/a.total:null})},o.onerror=()=>r(new Pu(Ye("errors.connectorOffline"),"CONNECTOR_OFFLINE")),o.onload=async()=>{const a=o.response;if(o.status<200||o.status>=300){let h={};try{h=JSON.parse(await a.text())}catch{}r(new Pu(Ye("errors.connectorHttpError",{status:o.status}),h.code,h.pairUrl));return}const c=o.getResponseHeader("X-Spine-File-Name");let l=`${ng(n.projectName,"SpineParticle")}.zip`;if(c)try{l=decodeURIComponent(c)}catch{}s({blob:a,fileName:l,spineEditorVersion:o.getResponseHeader("X-Spine-Editor-Version")||n.spineVersion,imageCount:t.length})},o.send(i)})}function f5(n,e){const t=URL.createObjectURL(n),i=document.createElement("a");i.href=t,i.download=/\.zip$/i.test(e)?e:`${e}.zip`,i.style.display="none",document.body.appendChild(i),i.click(),i.remove(),setTimeout(()=>URL.revokeObjectURL(t),1e3)}const m5=Array.from({length:256},(n,e)=>{let t=e;for(let i=0;i<8;i++)t=t&1?3988292384^t>>>1:t>>>1;return t>>>0});function p5(n){let e=4294967295;for(const t of n)e=m5[(e^t)&255]^e>>>8;return(e^4294967295)>>>0}function g5(n){const e=String(n||"").replace(/\\/g,"/").split("/").filter(t=>t&&t!==".");if(!e.length||e.some(t=>t===".."))throw new Error(Ye("errors.invalidZipPath"));return e.join("/")}function v5(n=new Date){const e=Math.max(1980,n.getFullYear());return{time:n.getHours()<<11|n.getMinutes()<<5|Math.floor(n.getSeconds()/2),date:e-1980<<9|n.getMonth()+1<<5|n.getDate()}}function xm(n){const e=new Uint8Array(n);return{bytes:e,view:new DataView(e.buffer)}}function M1(n){const e=new Uint8Array(n.reduce((i,s)=>i+s.length,0));let t=0;for(const i of n)e.set(i,t),t+=i.length;return e}function y5(n){const e=new TextEncoder,t=[],i=[],s=v5();let r=0;for(const c of n){const l=e.encode(g5(c.name)),h=p5(c.data),u=xm(30);u.view.setUint32(0,67324752,!0),u.view.setUint16(4,20,!0),u.view.setUint16(6,2048,!0),u.view.setUint16(10,s.time,!0),u.view.setUint16(12,s.date,!0),u.view.setUint32(14,h,!0),u.view.setUint32(18,c.data.length,!0),u.view.setUint32(22,c.data.length,!0),u.view.setUint16(26,l.length,!0),t.push(u.bytes,l,c.data);const d=xm(46);d.view.setUint32(0,33639248,!0),d.view.setUint16(4,20,!0),d.view.setUint16(6,20,!0),d.view.setUint16(8,2048,!0),d.view.setUint16(12,s.time,!0),d.view.setUint16(14,s.date,!0),d.view.setUint32(16,h,!0),d.view.setUint32(20,c.data.length,!0),d.view.setUint32(24,c.data.length,!0),d.view.setUint16(28,l.length,!0),d.view.setUint32(42,r,!0),i.push(d.bytes,l),r+=u.bytes.length+l.length+c.data.length}const o=M1(i),a=xm(22);return a.view.setUint32(0,101010256,!0),a.view.setUint16(8,n.length,!0),a.view.setUint16(10,n.length,!0),a.view.setUint32(12,o.length,!0),a.view.setUint32(16,r,!0),new Blob([M1([...t,o,a.bytes])],{type:"application/zip"})}function b5(n){const e=atob(n),t=new Uint8Array(e.length);for(let i=0;i<e.length;i++)t[i]=e.charCodeAt(i);return t}function x5(n){const t=String(n||"./images/").replace(/\\/g,"/").replace(/^\.\//,"").replace(/^\/+|\/+$/g,"").split("/").filter(Boolean);return!t.length||t.some(i=>i===".."||/^[a-z]+:/i.test(i))?"images":t.join("/")}function w5(n){return String(n||"SpineParticle").replace(/\.json$/i,"").replace(/[\\/:*?"<>|]+/g,"_").replace(/^\.+/,"")||"SpineParticle"}async function S5(n){const e=await IE(n.systems);if(!e.length)throw new Error(Ye("errors.noExportableImages"));const t=x5(n.imagesPath);return{blob:y5(e.map(s=>({name:`${t}/${s.path}`,data:b5(s.dataBase64)}))),imageCount:e.length,folder:t}}function _5(n,e){const t=`${w5(e)}-images.zip`,i=URL.createObjectURL(n),s=document.createElement("a");return s.href=i,s.download=t,s.style.display="none",document.body.appendChild(s),s.click(),s.remove(),setTimeout(()=>URL.revokeObjectURL(i),1e3),t}function T5(n){const{t:e}=fn();n.settings.exportSettings=AS(n.settings.exportSettings);const t=Fe(()=>n.settings.exportSettings),i=De(!1),s=De(null),r=De(""),o=De(!1),a=De(null),c=De(""),l=De(""),h=Fe(()=>{const C=a.value;return C?C.available?C.spineFound?C.authorized?e("export.connectorReady"):e("export.notAuthorized"):e("export.spineNotFound"):e("export.connectorOffline"):e("export.connectorChecking")}),u=Fe(()=>{var C,M,P,A,R,B;return{ready:!!((C=a.value)!=null&&C.available)&&!!((M=a.value)!=null&&M.spineFound)&&!!((P=a.value)!=null&&P.authorized),warning:!!((A=a.value)!=null&&A.available)&&(!((R=a.value)!=null&&R.spineFound)||!((B=a.value)!=null&&B.authorized))}}),d=Fe(()=>{var C,M,P;return!!((C=a.value)!=null&&C.available)&&!!((M=a.value)!=null&&M.spineFound)&&!!((P=a.value)!=null&&P.authorized)}),f=Fe(()=>{const C=a.value;return!(C!=null&&C.available)||!C.spineFound||C.authorized||typeof window>"u"?"":`http://127.0.0.1:27843/pair?origin=${encodeURIComponent(window.location.origin)}`}),m=Fe(()=>{const C=a.value;return C?C.available?C.spineFound?C.authorized?"":e("export.unauthorized"):e("export.notFound"):e("export.offline"):e("export.checking")}),p=Fe(()=>i.value?e("export.connectorBusy"):m.value?`${e("common.disabled")}: ${m.value}`:e("export.connectorGenerate",{version:t.value.spineVersion}));Sn(()=>{b(),g=window.setInterval(b,3e3)});let g,v=0;eo(()=>{g!==void 0&&window.clearInterval(g)});async function b(){const C=++v,M=await u5();if(C!==v)return;a.value=M;const P=l.value;(P==="CONNECTOR_OFFLINE"?M.available:P==="SPINE_NOT_FOUND"?M.available&&M.spineFound:P==="ORIGIN_NOT_ALLOWED"?M.available&&M.spineFound&&M.authorized:!!P&&M.available&&M.spineFound&&M.authorized)&&(l.value="",c.value="",o.value&&(o.value=!1,r.value=""))}function y(){return new Promise(C=>requestAnimationFrame(()=>C()))}async function x(C){n.timeline.playing=!1,n.timeline.frame=0,n.timeline.recorded=!1;for(const A of n.systems)A.frames=void 0;n.recalcTotalFrames(),await y(),n.timeline.playing=!0;const M=n.timeline.totalFrames/Math.max(1,n.timeline.fps)*1e3,P=performance.now()+Math.max(8e3,M*2.5+3e3);for(;!n.timeline.recorded;){if(performance.now()>P)throw new Error(e("export.timeout"));C==null||C(Math.min(.98,n.timeline.frame/Math.max(1,n.timeline.totalFrames-1))),await new Promise(A=>setTimeout(A,50))}C==null||C(1)}async function _(){if(!i.value){i.value=!0,s.value="json",o.value=!1,l.value="",c.value="",r.value=e("export.recalculating");try{await x();const C=m1({systems:n.systems,timeline:n.timeline,settings:t.value});C1(C.text,t.value.spineVersion),eU(C,t.value.fileName);const M=C.warnings.length?e("export.resourceWarning",{count:C.warnings.length}):"";r.value=e("export.exported",{version:t.value.spineVersion,systems:C.particleSystemCount,animations:C.animationCount,bones:C.boneCount,warning:M})}catch(C){o.value=!0,r.value=C instanceof Error?C.message:String(C)}finally{i.value=!1,s.value=null}}}async function E(){if(i.value)return;i.value=!0,s.value="spine",o.value=!1,l.value="",c.value="",r.value=e("export.recalculating");const C=FT(e("export.projectTransferTitle"),e("export.projectTransferDetail"));try{await C.paint(),await x(R=>C.update(R*18,e("export.recalculating"))),C.update(20,e("export.generatingJson"));const M=m1({systems:n.systems,timeline:n.timeline,settings:t.value});C1(M.text,t.value.spineVersion),r.value=e("export.preparingProject");const P=t.value.fileName.replace(/\.json$/i,"")||"SpineParticle",A=await d5({projectName:P,spineVersion:t.value.spineVersion,skeletonJson:M.text,systems:n.systems},({phase:R,progress:B})=>{R==="images"?C.update(B==null?null:22+B*18,e("export.preparingProjectFiles")):R==="upload"?C.update(B==null?null:40+B*30,e("export.uploading")):R==="processing"?C.update(null,e("export.spineProcessing")):C.update(B==null?null:82+B*16,e("export.downloadingProject"))});C.update(99,e("export.handingToBrowser")),f5(A.blob,A.fileName),r.value=e("export.projectExported",{fileName:A.fileName,images:A.imageCount,version:A.spineEditorVersion}),await b(),await C.finish(e("export.projectTransferDownload"))}catch(M){const P=M instanceof Error?M.message:String(M);o.value=!0,l.value=M instanceof Pu?M.code:"",M instanceof Pu&&M.pairUrl&&(c.value=M.pairUrl),r.value=P,await b(),await C.fail(P)}finally{i.value=!1,s.value=null}}async function S(){if(!i.value){i.value=!0,s.value="images",o.value=!1,l.value="",c.value="",r.value=e("export.collectingImages");try{const C=await S5({systems:n.systems,imagesPath:t.value.imagesPath}),M=_5(C.blob,t.value.fileName);r.value=e("export.imagesExported",{fileName:M,folder:C.folder,images:C.imageCount})}catch(C){o.value=!0,r.value=C instanceof Error?C.message:String(C)}finally{i.value=!1,s.value=null}}}return{exportSettings:t,exportBusy:i,exportTarget:s,exportMessage:r,exportError:o,connectorHealth:a,connectorPairUrl:c,connectorExportErrorCode:l,connectorStatusText:h,connectorStatusClass:u,connectorReady:d,connectorAuthorizationUrl:f,connectorDisabledReason:m,connectorButtonTitle:p,connectorHealthTimer:g,connectorHealthRequestId:v,refreshConnectorHealth:b,nextPaint:y,prepareExportFrames:x,exportSpineJson:_,exportSpineProject:E,exportSpineImages:S}}function E5(n){const e=De(null),t=De(""),i=De([]),s=De(!1),r=De(""),o=De(!1);function a(){ET(n),o.value=!1,r.value=Ye("config.saved")}async function c(u){var m;const d=u.target,f=(m=d.files)==null?void 0:m[0];if(f){r.value=Ye("config.loading"),o.value=!1;try{await LD(n,f),r.value=Ye("config.loaded",{name:f.name})}catch(p){o.value=!0,r.value=p instanceof Error?p.message:String(p)}finally{d.value=""}}}async function l(){try{const u=await fetch(`/Preset/index.json?t=${Date.now()}`,{cache:"no-store"});if(!u.ok)throw new Error(Ye("config.presetListError"));const d=await u.json();i.value=Array.isArray(d)?d.filter(f=>!!f&&typeof f.name=="string"&&typeof f.file=="string"):[]}catch{i.value=[]}}async function h(){const u=t.value;if(!u)return;s.value=!0,o.value=!1,r.value=Ye("config.presetLoading");const d=FT(Ye("config.presetTransferTitle"),Ye("config.presetDownloading",{file:u}));try{await d.paint();const f=await fetch(`/Preset/${encodeURIComponent(u)}`,{cache:"no-store"});if(!f.ok)throw new Error(Ye("config.presetReadError",{file:u}));const m=await E4(f,p=>{d.update(p==null?null:p*55,Ye("config.presetDownloading",{file:u}))});d.update(58,Ye("config.presetParsing")),d.update(70,Ye("config.presetRestoring")),await MT(n,m),r.value=Ye("config.presetLoaded",{name:u.replace(/\.json$/i,"")}),await d.finish(Ye("config.presetComplete"))}catch(f){o.value=!0;const m=f instanceof Error?f.message:String(f);r.value=Ye("config.presetNamingError",{message:m}),await d.fail(m)}finally{s.value=!1,t.value=""}}return Sn(l),{configFileInput:e,selectedPreset:t,presetOptions:i,presetLoading:s,configMessage:r,configError:o,saveConfig:a,onConfigFileChange:c,refreshPresets:l,loadSelectedPreset:h}}function C5(n){const e=De(null),t=De(null),i=De(null),s=De(null),r=De(null);function o(){var D;const N=(D=n.value)==null?void 0:D.config;if(!N)return;const F=Math.max(0,...N.trailResources.map(X=>X.id))+1;N.trailResources.push({id:F,texture:null,textureName:"trail",previewUrl:"/images/trail.png",weight:100,locked:!1,rotation:0,colorMode:"particle",color:"#ffffff",colorGradient:[{position:0,color:"#ffffff"},{position:1,color:"#ffffff"}],blend:"normal",alphaMode:"particle",alpha:1,alphaCurve:Np.map(X=>({...X})),boneCount:3,trailRatio:100,lengthMode:"fixed",length:100,lengthMin:100,lengthMax:100,widthSizeMode:"fixed",width:100,widthMin:100,widthMax:100,widthMode:"particle",lifeLengthEnabled:!1,lifeLengthCurve:Op.map(X=>({...X})),shapeEnabled:!1,shapeCurve:Dp.map(X=>({...X}))}),m()}function a(N){var F;r.value=N,(F=s.value)==null||F.click()}function c(N,F){var G;const D=(G=n.value)==null?void 0:G.config;if(!D)return;const X=N==="trailGridCols"?32:16;D[N]=Math.min(X,Math.max(2,Math.round(Number(F)||2)))}function l(N,F){var X;const D=(X=n.value)==null?void 0:X.config.trailResources.find(G=>G.id===N);D&&(D.boneCount=Math.min(16,Math.max(2,Math.round(Number(F)||2))))}function h(N,F){var X;const D=(X=n.value)==null?void 0:X.config.trailResources.find(G=>G.id===N);D&&(D.rotation=Math.max(-360,Math.min(360,Number(F)||0)))}async function u(N){var J,oe;const F=N.target,D=(J=F.files)==null?void 0:J[0],X=(oe=n.value)==null?void 0:oe.config,G=X==null?void 0:X.trailResources.find(le=>le.id===r.value);if(!D||!G){F.value="";return}const K=await C(D);G.texture=Ur(await it.fromURL(K)),G.previewUrl=K,G.textureName=D.name.replace(/\.[^.]+$/,"")||"trail",F.value="",r.value=null}async function d(N){var X;const F=(X=n.value)==null?void 0:X.config,D=F==null?void 0:F.trailResources.find(G=>G.id===N);D&&(D.texture=Ur(await it.fromURL("/images/trail.png")),D.previewUrl="/images/trail.png",D.textureName="trail",D.weight=100,D.locked=!1,D.rotation=0,D.boneCount=3,D.trailRatio=100,D.lengthMode="fixed",D.length=100,D.lengthMin=100,D.lengthMax=100,D.widthSizeMode="fixed",D.width=100,D.widthMin=100,D.widthMax=100,D.widthMode="particle",D.lifeLengthEnabled=!1,D.lifeLengthCurve=Op.map(G=>({...G})),D.shapeEnabled=!1,D.shapeCurve=Dp.map(G=>({...G})),D.colorMode="particle",D.color="#ffffff",D.colorGradient=[{position:0,color:"#ffffff"},{position:1,color:"#ffffff"}],D.blend="normal",D.alphaMode="particle",D.alpha=1,D.alphaCurve=Np.map(G=>({...G})),m())}function f(N){var X;const F=(X=n.value)==null?void 0:X.config.trailResources;if(!F||F.length<=1)return;const D=F.findIndex(G=>G.id===N);D>=0&&F.splice(D,1),m()}function m(){var G;const N=(G=n.value)==null?void 0:G.config.trailResources;if(!(N!=null&&N.length))return;if(N.length===1){N[0].weight=100,N[0].locked=!1;return}const F=N.filter(K=>K.locked),D=N.filter(K=>!K.locked);let X=F.reduce((K,J)=>K+Math.max(0,Number(J.weight)||0),0);X>100&&(W(F,100,!0),X=100),W(D,100-X)}function p(N,F){var oe;const D=(oe=n.value)==null?void 0:oe.config.trailResources;if(!(D!=null&&D.length))return;if(D.length===1){D[0].weight=100,D[0].locked=!1;return}const X=D.find(le=>le.id===N);if(!X||X.locked)return;const G=D.filter(le=>le.id!==N&&le.locked).reduce((le,ve)=>le+Math.max(0,Number(ve.weight)||0),0),K=Math.max(0,100-G),J=D.filter(le=>le.id!==N&&!le.locked);X.weight=O(Math.min(K,Math.max(0,Number(F)||0))),J.length?W(J,K-X.weight,!0):X.weight=O(K)}function g(N){var X;const F=(X=n.value)==null?void 0:X.config.trailResources;if(!F||F.length===1)return;const D=F.find(G=>G.id===N);D&&(D.locked=!D.locked)}function v(N,F){const D=F.target;N.color=P(D.value,N.color),D.value=N.color}function b(N,F){v(N,F),F.target.blur()}function y(){var D;const N=(D=n.value)==null?void 0:D.config;if(!N)return;const F=Math.max(0,...N.imageResources.map(X=>X.id))+1;N.imageResources.push({id:F,texture:N.texture,textureName:"star",textureFolder:"",previewUrl:"/images/star.png",imageMode:"fixed",sequencePlayback:"loop-forward",sequenceFps:30,sequenceFrames:[],weight:100,locked:!1,scale:1,anchorX:.5,anchorY:.5,colorMode:"fixed",colorStart:"#ffffff",colorEnd:"#ff4d4d",colorGradient:[{position:0,color:"#ffffff"},{position:1,color:"#ff4d4d"}],blend:"normal",independentAlpha:"off",alpha:1,alphaCurveMode:"跟随导出",alphaCurve:$p.map(X=>({...X}))}),V()}function x(N){var F;i.value=N,(F=e.value)==null||F.click()}function _(N){var F;i.value=N,(F=t.value)==null||F.click()}async function E(N){var oe,le;const F=N.target,D=(oe=F.files)==null?void 0:oe[0],X=(le=n.value)==null?void 0:le.config,G=X==null?void 0:X.imageResources.find(ve=>ve.id===i.value);if(!D||!G){F.value="";return}const K=await C(D),J=Ur(await it.fromURL(K));G.texture=J,G.previewUrl=K,G.textureFolder="",G.textureName=D.name.replace(/\.[^.]+$/,"")||"particle",F.value="",i.value=null}async function S(N){var K;const F=N.target,D=Array.from(F.files||[]).sort((J,oe)=>J.name.localeCompare(oe.name,void 0,{numeric:!0,sensitivity:"base"})),X=(K=n.value)==null?void 0:K.config,G=X==null?void 0:X.imageResources.find(J=>J.id===i.value);if(!D.length||!G){F.value="";return}G.sequenceFrames=await Promise.all(D.map(async J=>{const oe=await C(J);return{name:J.name,previewUrl:oe,texture:Ur(await it.fromURL(oe))}})),G.imageMode="sequence",F.value="",i.value=null}function C(N){return new Promise((F,D)=>{const X=new FileReader;X.onload=()=>F(String(X.result||"")),X.onerror=()=>D(X.error),X.readAsDataURL(N)})}function M(N){var X;const F=(X=n.value)==null?void 0:X.config,D=F==null?void 0:F.imageResources.find(G=>G.id===N);!F||!D||(D.texture=F.texture,D.textureName="star",D.textureFolder="",D.previewUrl="/images/star.png",D.imageMode="fixed",D.sequencePlayback="loop-forward",D.sequenceFps=30,D.sequenceFrames=[],D.scale=1,D.anchorX=.5,D.anchorY=.5,D.colorMode="fixed",D.colorStart="#ffffff",D.colorEnd="#ff4d4d",D.colorGradient=[{position:0,color:"#ffffff"},{position:1,color:"#ff4d4d"}],D.blend="normal",D.independentAlpha="off",D.alpha=1,D.alphaCurveMode="跟随导出",D.alphaCurve=$p.map(G=>({...G})),D.locked=!1,V())}function P(N,F){let D=N.trim().replace(/^#/,"");return/^[0-9a-f]{3}$/i.test(D)&&(D=D.split("").map(X=>X+X).join("")),/^[0-9a-f]{6}$/i.test(D)?`#${D.toLowerCase()}`:F}function A(N,F){const D=F.target;N.colorStart=P(D.value,N.colorStart),D.value=N.colorStart}function R(N,F){A(N,F),F.target.blur()}function B(N){var X;const F=(X=n.value)==null?void 0:X.config.imageResources;if(!F||F.length<=1)return;const D=F.findIndex(G=>G.id===N);D>=0&&F.splice(D,1),V()}function O(N){return Math.round(N)}function W(N,F,D=!1){if(!N.length)return;const X=Math.max(0,O(F)),G=D?N.reduce((J,oe)=>J+Math.max(0,Number(oe.weight)||0),0):0;let K=0;N.forEach((J,oe)=>{const le=oe===N.length-1,ve=O(le?X-K:G>0?X*Math.max(0,Number(J.weight)||0)/G:X/N.length);J.weight=ve,K+=ve})}function V(){var G;const N=(G=n.value)==null?void 0:G.config.imageResources;if(!(N!=null&&N.length))return;if(N.length===1){N[0].weight=100,N[0].locked=!1;return}const F=N.filter(K=>K.locked),D=N.filter(K=>!K.locked);let X=F.reduce((K,J)=>K+Math.max(0,Number(J.weight)||0),0);X>100&&(W(F,100,!0),X=100),W(D,100-X)}function Y(N,F){var oe;const D=(oe=n.value)==null?void 0:oe.config.imageResources;if(!(D!=null&&D.length))return;if(D.length===1){D[0].weight=100,D[0].locked=!1;return}const X=D.find(le=>le.id===N);if(!X||X.locked)return;const G=D.filter(le=>le.id!==N&&le.locked).reduce((le,ve)=>le+Math.max(0,Number(ve.weight)||0),0),K=Math.max(0,100-G),J=D.filter(le=>le.id!==N&&!le.locked);if(X.weight=O(Math.min(K,Math.max(0,Number(F)||0))),!J.length){X.weight=O(K);return}W(J,K-X.weight,!0)}function L(N){var X;const F=(X=n.value)==null?void 0:X.config.imageResources;if(!F||F.length===1)return;const D=F.find(G=>G.id===N);D&&(D.locked=!D.locked)}return{textureFileInput:e,sequenceFileInput:t,pendingResourceId:i,trailTextureFileInput:s,pendingTrailResourceId:r,addTrailResource:o,openTrailTexturePicker:a,onTrailRigChange:c,onTrailResourceBoneCountChange:l,onTrailResourceRotationChange:h,onTrailTextureFile:u,resetTrailTexture:d,removeTrailResource:f,rebalanceTrailWeights:m,setTrailResourceWeight:p,toggleTrailResourceLock:g,setTrailColor:v,commitTrailColor:b,addImageResource:y,openTexturePicker:x,openSequencePicker:_,onTextureFile:E,onSequenceFiles:S,readFileAsDataUrl:C,resetTexture:M,normalizeHex:P,setResourceFixedColor:A,commitResourceFixedColor:R,removeImageResource:B,roundWeight:O,distributeImageWeights:W,rebalanceImageWeights:V,setResourceWeight:Y,toggleResourceLock:L}}function M5(){const n=Wo(),{t:e}=fn(),{exportSettings:t,exportBusy:i,exportTarget:s,exportMessage:r,exportError:o,connectorPairUrl:a,connectorStatusText:c,connectorStatusClass:l,connectorReady:h,connectorAuthorizationUrl:u,connectorDisabledReason:d,connectorButtonTitle:f,refreshConnectorHealth:m,exportSpineJson:p,exportSpineProject:g,exportSpineImages:v}=T5(n),{configFileInput:b,selectedPreset:y,presetOptions:x,presetLoading:_,configMessage:E,configError:S,saveConfig:C,onConfigFileChange:M,refreshPresets:P,loadSelectedPreset:A}=E5(n);function R(ie){return ie==="跟随导出"?t.value.keyframeCurve==="bezier"?"bezier":"linear":ie==="贝塞尔"?"bezier":"linear"}n.systems.length||n.addSystem();const B=Fe(()=>{const ie=n.systems.findIndex(me=>me.id===n.activeId);return ie>=0?ie:0}),O=Fe(()=>n.systems[B.value]||null),{textureFileInput:W,sequenceFileInput:V,trailTextureFileInput:Y,addTrailResource:L,openTrailTexturePicker:N,onTrailRigChange:F,onTrailResourceBoneCountChange:D,onTrailResourceRotationChange:X,onTrailTextureFile:G,resetTrailTexture:K,removeTrailResource:J,setTrailResourceWeight:oe,toggleTrailResourceLock:le,setTrailColor:ve,commitTrailColor:Se,addImageResource:fe,openTexturePicker:ye,openSequencePicker:q,onTextureFile:Z,onSequenceFiles:se,resetTexture:H,setResourceFixedColor:j,commitResourceFixedColor:$,removeImageResource:U,setResourceWeight:z,toggleResourceLock:ee}=C5(O),ne=Fe(()=>O.value?IS(O.value.config,n.timeline.fps):30),ue=Fe(()=>{var me;const ie=(me=O.value)==null?void 0:me.config;return ie?Math.max(1,Math.ceil(Number(ie.loopDurationFrames)||1)):1}),xe=Fe(()=>n.activeObjectType),be=Fe(()=>n.activeObjectType==="collision"&&n.colliders.find(ie=>ie.id===n.activeObjectId)||null),Ne=Fe(()=>n.activeObjectType==="path"&&n.paths.find(ie=>ie.id===n.activeObjectId)||null),Be=Fe(()=>n.activeObjectType==="spine"&&n.spines.find(ie=>ie.id===n.activeObjectId)||null),he=Fe(()=>n.activeObjectType==="particle"?n.systems.some(ie=>ie.id===n.activeObjectId):n.activeObjectType==="collision"?n.colliders.some(ie=>ie.id===n.activeObjectId):n.activeObjectType==="path"?n.paths.some(ie=>ie.id===n.activeObjectId):n.spines.some(ie=>ie.id===n.activeObjectId)),ge=Fe(()=>{const ie=n.spines.find(me=>me.selectedBone&&me.bones.some(Ae=>Ae.name===me.selectedBone));return ie?{spine:ie,boneName:ie.selectedBone}:null}),We=Fe(()=>{var Ae;const ie=(Ae=O.value)==null?void 0:Ae.config;if(!ie||ie.emitterFollowMode!=="bone")return null;const me=n.spines.find(st=>st.id===ie.emitterFollowSpineId);return!me||!me.bones.some(st=>st.name===ie.emitterFollowBoneName)?null:{spine:me,boneName:ie.emitterFollowBoneName}}),Le=De(!1),Ce=De(""),Ze=Fe(()=>n.spines.filter(ie=>ie.enabled&&ie.visible!==!1&&ie.status==="ready")),Ee=Fe(()=>n.spines.find(ie=>{var me;return ie.id===((me=O.value)==null?void 0:me.config.renderLayerSpineId)})||null),vi=Fe(()=>{const ie=Ee.value;return!!ie&&ie.enabled&&ie.visible!==!1&&ie.status==="ready"}),lt=Fe(()=>{var ie;return[...((ie=Ee.value)==null?void 0:ie.slots)||[]].sort((me,Ae)=>me.order-Ae.order)}),ce=Fe(()=>{const ie=Ce.value.trim().toLocaleLowerCase();return ie?lt.value.filter(me=>me.name.toLocaleLowerCase().includes(ie)||me.attachment.toLocaleLowerCase().includes(ie)):lt.value}),de=Fe(()=>lt.value.find(ie=>{var me;return ie.name===((me=O.value)==null?void 0:me.config.renderLayerSlotName)})||null),nt=Fe(()=>{const ie=de.value;return ie&&lt.value.filter(me=>me.order<ie.order).sort((me,Ae)=>Ae.order-me.order)[0]||null}),Ft=Fe(()=>{var st;const ie=(st=O.value)==null?void 0:st.config,me=Ee.value,Ae=de.value;return!ie||!me||!Ae?"":e(ie.renderLayerSlotPosition==="below"?"renderLayer.slotLabelBelow":"renderLayer.slotLabelAbove",{spine:me.name,slot:Ae.name})}),Nt=Fe(()=>{var Ae;const ie=(Ae=O.value)==null?void 0:Ae.config,me=de.value;return!ie||!me?"":ie.renderLayerSlotPosition==="above"?e("renderLayer.resolvedAbove",{slot:me.name}):nt.value?e("renderLayer.resolvedBetween",{previous:nt.value.name,slot:me.name}):""}),ct=Fe(()=>{var Ae;const ie=(Ae=O.value)==null?void 0:Ae.config;if(!ie||ie.renderLayerMode!=="slot")return"";if(!Ze.value.length)return e("renderLayer.warningNoSpine");if(!ie.renderLayerSpineId)return e("renderLayer.warningNoSelection");const me=Ee.value;return me?!me.enabled||me.status!=="ready"?e("renderLayer.warningNotReady"):ie.renderLayerSlotName?de.value?ie.renderLayerSlotPosition==="below"&&!nt.value?e("renderLayer.warningFirstSlot"):"":e("renderLayer.warningMissingSlot"):"":e("renderLayer.warningMissingSpine")});function rn(){var me;const ie=(me=O.value)==null?void 0:me.config;ie&&(ie.renderLayerMode="slot",!ie.renderLayerSpineId&&Ze.value.length&&(ie.renderLayerSpineId=Ze.value[0].id),Le.value=!ie.renderLayerSlotName)}function Nn(ie){var Ae;const me=(Ae=O.value)==null?void 0:Ae.config;me&&(me.renderLayerSpineId=Math.max(0,Math.round(Number(ie.target.value)||0)),me.renderLayerSlotName="",Le.value=!0)}function Ht(ie){var Ae;const me=(Ae=O.value)==null?void 0:Ae.config;me&&(me.renderLayerSlotName=ie.name,Le.value=!1,Ce.value="")}function Di(){var me;const ie=(me=O.value)==null?void 0:me.config;ie&&(ie.renderLayerSlotName="",ie.renderLayerSlotPosition="above")}const Ut=De(!1),on=Fe(()=>{var me;const ie=new Set(((me=O.value)==null?void 0:me.config.collisionColliderIds)||[]);return n.colliders.filter(Ae=>ie.has(Ae.id))}),fi=Fe(()=>{var me;const ie=new Set(((me=O.value)==null?void 0:me.config.collisionColliderIds)||[]);return n.colliders.filter(Ae=>!ie.has(Ae.id))});ei(()=>{var ie,me;return[(ie=O.value)==null?void 0:ie.id,(me=O.value)==null?void 0:me.config.collision]},()=>{Ut.value=!1}),ei(()=>{var ie;return(ie=O.value)==null?void 0:ie.id},()=>{Le.value=!1,Ce.value=""});function Dn(ie){var Ae;const me=(Ae=O.value)==null?void 0:Ae.config;!me||me.collisionColliderIds.includes(ie)||(me.collisionColliderIds.push(ie),Ut.value=!1)}function Fs(ie){var Ae;const me=(Ae=O.value)==null?void 0:Ae.config;me&&(me.collisionColliderIds=me.collisionColliderIds.filter(st=>st!==ie))}da(()=>{for(const ie of n.systems)ie.visible==null&&(ie.visible=!0);for(const ie of n.colliders)ie.visible==null&&(ie.visible=!0);for(const ie of n.paths)ie.visible==null&&(ie.visible=!0);for(const ie of n.spines)ie.visible==null&&(ie.visible=!0)}),da(()=>{if(!O.value)return;const ie=lr(O.value.config);ie.lifeMode==="curve"&&(ie.lifeMode="random"),ie.speedMode==="curve"&&(ie.speedMode="random"),ie.scaleMode==="curve"&&(ie.scaleMode="random"),ie.initialRotationMode==="curve"&&(ie.initialRotationMode="random"),ie.mode==="stream"&&!(ie.duration>0)&&(ie.duration=1),ie.streamBehavior==="loop"&&(ie.emitterFollow||ie.emitterFollowMode!=="none")&&Jo(ie)}),da(()=>{const ie=new Set(n.colliders.map(Ae=>Ae.id)),me=new Set(n.systems.map(Ae=>Ae.id));for(const Ae of n.systems){const st=lr(Ae.config),ci=st.collisionColliderIds.filter(pn=>ie.has(pn));ci.length!==st.collisionColliderIds.length&&(st.collisionColliderIds=ci),st.spawnPathId>0&&!n.paths.some(pn=>pn.id===st.spawnPathId)&&(st.spawnPathId=0,(st.emissionAngleMode==="path-normal"||st.emissionAngleMode==="path-tangent")&&(st.emissionAngleMode="fixed"));const ea=RS(n.systems,Ae.id);for(const pn of st.events||[])pn.targetSystemId>0&&(pn.targetSystemId===Ae.id||ea.has(pn.targetSystemId)||!me.has(pn.targetSystemId))&&(pn.targetSystemId=0);if(st.emitterFollowMode!=="bone")continue;const wd=n.spines.find(pn=>pn.id===st.emitterFollowSpineId);!!(wd!=null&&wd.bones.some(pn=>pn.name===st.emitterFollowBoneName))||(st.emitterFollowMode="none",st.emitterFollowSpineId=0,st.emitterFollowBoneName="")}}),da(()=>{for(const ie of n.systems){const me=lr(ie.config);me.renderLayerMode!=="slot"||!me.renderLayerSpineId||n.spines.some(Ae=>Ae.id===me.renderLayerSpineId)||(me.renderLayerSpineId=0,me.renderLayerSlotName="")}}),da(()=>{for(const ie of n.colliders)ie.followPathId==null&&(ie.followPathId=0),ie.followDuration>0||(ie.followDuration=2),ie.followPathRotation==null&&(ie.followPathRotation=!1),["跟随导出","线性","贝塞尔"].includes(ie.followCurveMode)||(ie.followCurveMode="跟随导出"),(!Array.isArray(ie.followCurve)||ie.followCurve.length<2)&&(ie.followCurve=[{x:0,y:0},{x:1,y:1}])});const Tn=Go({config:!0,scene:!1,emitMode:!0,shape:!0,attr:!0,look:!0,mods:!0,export:!1});function mn(ie){Tn[ie]=!Tn[ie]}function yr(ie){var Ae;const me=(Ae=O.value)==null?void 0:Ae.config;me&&(me.mode=ie,ie==="stream"&&!(me.duration>0)&&(me.duration=1))}function br(ie){var st;const me=(st=O.value)==null?void 0:st.config;if(!me)return;const Ae=Math.min(1800,Math.max(1,Math.ceil(Number(ie)||1)));me.loopDurationFrames=Ae}function Jo(ie){const me=tc();ie.emitterFollow=!1,ie.emitterFollowMode="none",ie.emitterFollowPathId=me.emitterFollowPathId,ie.emitterFollowSpineId=me.emitterFollowSpineId,ie.emitterFollowBoneName=me.emitterFollowBoneName,ie.emitterFollowBoneOffsetX=me.emitterFollowBoneOffsetX,ie.emitterFollowBoneOffsetY=me.emitterFollowBoneOffsetY,ie.emitterFollowBoneRotation=me.emitterFollowBoneRotation,ie.emitterFollowBoneScaleX=me.emitterFollowBoneScaleX,ie.emitterFollowBoneScaleY=me.emitterFollowBoneScaleY,ie.emitterAngleMode=me.emitterAngleMode,ie.emitterFollowCurve=me.emitterFollowCurve.map(Ae=>({...Ae})),ie.emitterFollowDuration=me.emitterFollowDuration,ie.emitterFollowSpace=me.emitterFollowSpace,ie.emitterFollowDirection=me.emitterFollowDirection,ie.emitterFollowOffset=me.emitterFollowOffset}function nl(ie){var ci;const me=(ci=O.value)==null?void 0:ci.config;if(!me||me.streamBehavior===ie)return;const Ae=ie==="loop",st=e(Ae?"errors.confirmLoopFollowEnter":"errors.confirmLoopFollowExit");window.confirm(st)&&(Jo(me),me.streamBehavior=ie,Ae||(me.generateLoopStartAnimation=!1,me.generateLoopEndAnimation=!1))}function _c(ie,me){var ci;const Ae=(ci=O.value)==null?void 0:ci.config;if(!Ae)return;const st=me.target.checked;ie==="start"?Ae.generateLoopStartAnimation=st:Ae.generateLoopEndAnimation=st}function Tc(ie,me){var ci;const Ae=(ci=O.value)==null?void 0:ci.config;if(!Ae)return;const st=Math.min(1800,Math.max(1,Math.ceil(Number(me.target.value)||30)));ie==="start"?Ae.loopStartDurationFrames=st:Ae.loopEndDurationFrames=st}function sl(ie,me){var ci;const Ae=(ci=O.value)==null?void 0:ci.config;if(!Ae)return;const st=me.target.checked;ie==="start"?Ae.loopStartUseCustomDuration=st:Ae.loopEndUseCustomDuration=st}function Ec(ie,me){const Ae=ie.target.value;if(me.emitterFollowMode=Ae,Ae!=="bone"){me.emitterFollowSpineId=0,me.emitterFollowBoneName="";return}Zo(me)}function Zo(ie){const me=ge.value;if(!me){ie.emitterFollowMode="none",ie.emitterFollowSpineId=0,ie.emitterFollowBoneName="";return}ie.emitterFollowMode="bone",ie.emitterFollowSpineId=me.spine.id,ie.emitterFollowBoneName=me.boneName}const Cc={emitMode:["mode","rate","streamBehavior","loopDurationFrames","generateLoopStartAnimation","loopStartUseCustomDuration","loopStartDurationFrames","generateLoopEndAnimation","loopEndUseCustomDuration","loopEndDurationFrames","burstCount","burstLoop","delay","duration"],shape:["shape","showShape","shapeRangeVersion","innerRadius","outerRadius","innerRectW","innerRectH","outerRectW","outerRectH","spawnPathId","spawnPathDistribution","radius","rectW","rectH","emissionAngleMode","direction","spread","coneDirection","coneAngle"],attr:["lifeMin","lifeMax","lifeMode","lifeCurve","speedMin","speedMax","speedMode","speedCurve","scaleMin","scaleMax","scaleMode","scaleAxisMode","scaleYMin","scaleYMax","scaleCurve","scaleYCurve","scaleEndRatio","initialRotationMode","initialRotationMin","initialRotationMax","initialRotationCurve","rotationSpeedMin","rotationSpeedMax","speedOverLifeEnabled","speedOverLifeMode","speedOverLifeMin","speedOverLifeMax","speedOverLifeCurve","scaleOverLifeEnabled","scaleOverLifeMode","scaleOverLifeAxisMode","scaleOverLifeMin","scaleOverLifeMax","scaleYOverLifeMin","scaleYOverLifeMax","scaleOverLifeCurve","scaleYOverLifeCurve","rotationOverLifeEnabled","rotationOverLifeMode","rotationOverLifeCurve"],look:["texture","imageResources","imageWeightVersion","alpha","alphaEnd","colorStart","colorEnd","colorOverLife","blend","alphaMode","curveMode","alphaCurve","textureName","textureFolder","alphaScale","anchorX","anchorY","independentAlpha","renderLayerMode","renderLayerSpineId","renderLayerSlotName","renderLayerSlotPosition","renderLayerFollowAttachment"],mods:["noise","noiseAmt","noiseRange","noiseSpeed","useGravity","gravity","gravityMode","gravityMin","gravityMax","gravityDirection","gravityCurve","wind","windX","windY","windMode","windMin","windMax","windDirection","windCurve","forceField","forceStrength","forceRadius","forceCenterX","forceCenterY","forceFalloff","showForceFieldShape","vortex","vortexStrength","vortexRadius","vortexCenterX","vortexCenterY","vortexFalloff","showVortexShape","attraction","attractionCenterX","attractionCenterY","attractionRadius","attractionDuration","attractionDelay","attractionDelayMode","attractionPath","showAttractionShape","trail","trailConfigVersion","trailResources","trailResourceVersion","trailTexture","trailTextureName","trailPreviewUrl","trailColorMode","trailColor","trailColorGradient","trailAlphaMode","trailAlpha","trailAlphaCurve","trailBoneCount","trailLength","trailWidth","trailWidthMode","trailLifeLengthEnabled","trailLifeLengthCurve","trailShapeEnabled","trailShapeCurve","trailGridRows","trailGridCols","collision","collisionColliderIds","pathFollow","eventEnabled","events","emitterFollow","emitterFollowMode","emitterFollowPathId","emitterFollowSpineId","emitterFollowBoneName","emitterFollowBoneOffsetX","emitterFollowBoneOffsetY","emitterFollowBoneRotation","emitterFollowBoneScaleX","emitterFollowBoneScaleY","emitterAngleMode","emitterFollowCurve","emitterFollowDuration","emitterFollowSpace","emitterFollowDirection","emitterFollowOffset","damping"]};function bd(ie){var st;const me=(st=O.value)==null?void 0:st.config;if(ie==="export"){n.settings.exportSettings=Og();return}if(!me)return;const Ae=tc();for(const ci of Cc[ie])me[ci]=Ae[ci]}function rl(){t.value.fps=Math.min(240,Math.max(1,Math.round(Number(t.value.fps)||30)))}function xr(ie){var me;n.selectSystem(((me=n.systems[ie])==null?void 0:me.id)??0)}function Qo(){n.addSystem()}function xd(){n.addCollider()}function Mc(){n.addPath()}function FE(){n.addSpine()}function LE(){n.duplicateSelectedObject()}function Ls(ie,me,Ae=0,st=0,ci=0,ea=0){return{x:ie,y:me,inX:Ae,inY:st,outX:ci,outY:ea}}function OE(){const ie=Ne.value;if(!(!ie||!ie.preset))if(ie.preset==="circle"){const Ae=60.751328;ie.points=[Ls(110,0,0,-Ae,0,Ae),Ls(0,110,Ae,0,-Ae,0),Ls(-110,0,0,Ae,0,-Ae),Ls(0,-110,-Ae,0,Ae,0)],ie.closed=!0}else if(ie.preset==="square")ie.points=[Ls(-100,-100),Ls(100,-100),Ls(100,100),Ls(-100,100)],ie.closed=!0;else{const me=ie.preset==="star"?10:6;ie.points=Array.from({length:me},(Ae,st)=>{const ci=ie.preset==="star"&&st%2?50:110,ea=-Math.PI*.5+st/me*Math.PI*2;return Ls(Math.cos(ea)*ci,Math.sin(ea)*ci)}),ie.closed=!0}}function $E(){Ne.value&&(Ne.value.points=[])}function NE(){O.value&&(O.value.config.seed=Math.floor(Math.random()*999999)+1)}function DE(ie){var Ae;const me=(Ae=O.value)==null?void 0:Ae.config;!me||ie==="direction"||(me.speedOverLifeMode=ie,ie==="curve"&&me.speedOverLifeMin===me.speedOverLifeMax&&(me.speedOverLifeMin=0,me.speedOverLifeMax=1))}function l0(){var me;const ie=(me=O.value)==null?void 0:me.config;!ie||ie.scaleOverLifeMode!=="curve"||(ie.scaleOverLifeMin===ie.scaleOverLifeMax&&(ie.scaleOverLifeMin=0,ie.scaleOverLifeMax=1),ie.scaleYOverLifeMin===ie.scaleYOverLifeMax&&(ie.scaleYOverLifeMin=0,ie.scaleYOverLifeMax=1))}function BE(ie){var Ae;const me=(Ae=O.value)==null?void 0:Ae.config;!me||ie==="direction"||(me.scaleOverLifeMode=ie,l0())}const UE={point:{emissionAngleMode:"random",direction:0,spread:360},circle:{innerRadius:0,outerRadius:100,emissionAngleMode:"fixed",direction:-90,spread:0},rect:{innerRectW:0,innerRectH:0,outerRectW:200,outerRectH:100,emissionAngleMode:"fixed",direction:-90,spread:0},cone:{innerRadius:0,outerRadius:100,coneAngle:90,coneDirection:90,emissionAngleMode:"random",direction:90,spread:90},path:{spawnPathId:0,spawnPathDistribution:"fixed",emissionAngleMode:"fixed",direction:0,spread:0}};function VE(){var Ae;const ie=(Ae=O.value)==null?void 0:Ae.config;if(!ie)return;const me=UE[ie.shape];me&&Object.assign(ie,me)}function XE(){var me;const ie=(me=O.value)==null?void 0:me.config;!ie||ie.spawnPathId>0||(ie.emissionAngleMode==="path-normal"||ie.emissionAngleMode==="path-tangent")&&(ie.emissionAngleMode="fixed")}return{store:n,exportSettings:t,exportBusy:i,exportTarget:s,exportMessage:r,exportError:o,connectorPairUrl:a,connectorStatusText:c,connectorStatusClass:l,connectorReady:h,connectorAuthorizationUrl:u,connectorDisabledReason:d,connectorButtonTitle:f,refreshConnectorHealth:m,exportSpineJson:p,exportSpineProject:g,exportSpineImages:v,configFileInput:b,selectedPreset:y,presetOptions:x,presetLoading:_,configMessage:E,configError:S,saveConfig:C,onConfigFileChange:M,refreshPresets:P,loadSelectedPreset:A,resolvedCurveEditorMode:R,sys:O,textureFileInput:W,sequenceFileInput:V,trailTextureFileInput:Y,addTrailResource:L,openTrailTexturePicker:N,onTrailRigChange:F,onTrailResourceBoneCountChange:D,onTrailResourceRotationChange:X,onTrailTextureFile:G,resetTrailTexture:K,removeTrailResource:J,setTrailResourceWeight:oe,toggleTrailResourceLock:le,setTrailColor:ve,commitTrailColor:Se,addImageResource:fe,openTexturePicker:ye,openSequencePicker:q,onTextureFile:Z,onSequenceFiles:se,resetTexture:H,setResourceFixedColor:j,commitResourceFixedColor:$,removeImageResource:U,setResourceWeight:z,toggleResourceLock:ee,automaticLoopDuration:ne,loopDurationFrames:ue,activeObjectType:xe,activeCollider:be,activePath:Ne,activeSpine:Be,canCopyObject:he,selectedSpineBone:ge,boundSpineBone:We,renderLayerSlotPickerOpen:Le,renderLayerSlotSearch:Ce,renderLayerReadySpines:Ze,renderLayerSpineReady:vi,renderLayerSlots:lt,renderLayerFilteredSlots:ce,renderLayerSlotLabel:Ft,renderLayerResolvedLabel:Nt,renderLayerWarning:ct,setRenderLayerSlotMode:rn,selectRenderLayerSpine:Nn,pickRenderLayerSlot:Ht,clearRenderLayerSlot:Di,collisionPickerOpen:Ut,selectedCollisionBodies:on,availableCollisionBodies:fi,addCollisionBody:Dn,removeCollisionBody:Fs,collapsed:Tn,toggle:mn,setEmitMode:yr,setLoopDurationFrames:br,setStreamBehavior:nl,setLoopSection:_c,setLoopSectionDuration:Tc,setLoopCustomDuration:sl,onEmitterFollowModeChange:Ec,bindSelectedBone:Zo,resetModule:bd,normalizeExportFps:rl,select:xr,addSys:Qo,addCollider:xd,addPath:Mc,addSpine:FE,copySelectedObject:LE,applyPathPreset:OE,clearPathAnchors:$E,randomizeSeed:NE,setSpeedOverLifeMode:DE,prepareScaleOverLifeCurve:l0,setScaleOverLifeMode:BE,onShapeChange:VE,onSpawnPathChange:XE,LINEAR_CURVE:S4,FLAT_CURVE:Op,ALPHA_CURVE:_4,RESOURCE_ALPHA_CURVE:$p,TRAIL_ALPHA_CURVE:Np,TRAIL_SHAPE_CURVE:Dp}}const PE=Symbol("particle-panel");function A5(){const n=M5();return lx(PE,n),n}function oo(){const n=ko(PE);if(!n)throw new Error("Particle panel sections require a ParticlePanel parent");return n}const I5={class:"group config-management"},P5={class:"caret"},R5={class:"group-body config-management-body"},k5={class:"config-toolbar"},F5=["title"],L5=["title"],O5=["aria-label","disabled"],$5={value:""},N5=["value"],D5=qt({__name:"ProjectConfigSection",setup(n){const{configFileInput:e,selectedPreset:t,presetOptions:i,presetLoading:s,configMessage:r,configError:o,saveConfig:a,onConfigFileChange:c,refreshPresets:l,loadSelectedPreset:h,collapsed:u,toggle:d,select:f}=oo(),{t:m}=fn(),p={"1.粒子扫过.json":"presets.particleSweep","2.长条方块.json":"presets.barBlocks","3.力场拖尾.json":"presets.forceTrail","4.雷电序列帧.json":"presets.lightningSequence","5.贴图轴点.json":"presets.texturePivot","6.子发射器.json":"presets.subEmitter"};function g(v){const b=p[v.file];return b?m(b):v.name}return(v,b)=>(Q(),te("div",I5,[w("div",{class:"group-head",onClick:b[0]||(b[0]=y=>I(d)("config"))},[w("span",P5,k(I(u).config?"▸":"▾"),1),w("span",null,k(v.$t("config.title")),1)]),pe(w("div",R5,[w("div",k5,[w("button",{title:v.$t("config.saveTitle"),onClick:b[1]||(b[1]=(...y)=>I(a)&&I(a)(...y))},k(v.$t("config.save")),9,F5),w("button",{title:v.$t("config.loadTitle"),onClick:b[2]||(b[2]=y=>{var x;return(x=I(e))==null?void 0:x.click()})},k(v.$t("config.load")),9,L5),pe(w("select",{"onUpdate:modelValue":b[3]||(b[3]=y=>Qt(t)?t.value=y:null),"aria-label":v.$t("config.presets"),disabled:!I(i).length||I(s),onPointerdown:b[4]||(b[4]=(...y)=>I(l)&&I(l)(...y)),onFocus:b[5]||(b[5]=(...y)=>I(l)&&I(l)(...y)),onChange:b[6]||(b[6]=(...y)=>I(h)&&I(h)(...y))},[w("option",$5,k(I(i).length?v.$t("config.selectPreset"):v.$t("config.noPresets")),1),(Q(!0),te(Me,null,It(I(i),y=>(Q(),te("option",{key:y.file,value:y.file},k(g(y)),9,N5))),128))],40,O5),[[St,I(t)]]),w("input",{ref_key:"configFileInput",ref:e,hidden:"",type:"file",accept:".json,application/json",onChange:b[7]||(b[7]=(...y)=>I(c)&&I(c)(...y))},null,544)]),I(r)?(Q(),te("div",{key:0,class:Pe(["config-message",{error:I(o)}])},k(I(r)),3)):_e("",!0)],512),[[Fi,!I(u).config]])]))}}),B5=li(D5,[["__scopeId","data-v-09679738"]]),U5={class:"ns-label"},V5=["min","max","step","value","disabled"],X5=["min","max","step","value","disabled"],Y5=qt({__name:"NumSlider",props:{label:{},modelValue:{},min:{},max:{},step:{},disabled:{type:Boolean}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,i=e,s=De(String(t.modelValue));ei(()=>t.modelValue,c=>{s.value=String(c)});function r(c){const l=parseFloat(c.target.value);Number.isNaN(l)||i("update:modelValue",l)}function o(c){s.value=c.target.value;const l=parseFloat(s.value);Number.isNaN(l)||i("update:modelValue",l)}function a(){const c=parseFloat(s.value);Number.isNaN(c)&&(s.value=String(t.modelValue))}return(c,l)=>(Q(),te("div",{class:Pe(["ns",{disabled:n.disabled}])},[w("span",U5,k(n.label),1),w("input",{type:"range",class:"ns-range",min:n.min,max:n.max,step:n.step,value:n.modelValue,disabled:n.disabled,onInput:r},null,40,V5),w("input",{type:"number",class:"ns-num",min:n.min,max:n.max,step:n.step,value:s.value,disabled:n.disabled,onInput:o,onBlur:a},null,40,X5)],2))}}),Ue=li(Y5,[["__scopeId","data-v-7c2fbed0"]]),G5={class:"ce"},H5={class:"ce-editor"},j5={class:"ce-grid"},W5=["x1","x2","y2"],z5=["y1","x2","y2"],q5=["x","y","width","height"],K5=["d"],J5={key:0,class:"ce-handles"},Z5=["x1","y1","x2","y2"],Q5=["cx","cy","onPointerdown"],e8=["x1","y1","x2","y2"],t8=["cx","cy","onPointerdown"],i8=["cx","cy"],n8=["cx","cy","onPointerdown","onDblclick"],s8={class:"ce-nav"},r8={class:"ce-tip"},o8=["title"],Tr=8,a8=qt({__name:"CurveEditor",props:{modelValue:{},defaultValue:{default:()=>[{x:0,y:0},{x:1,y:1}]},mode:{default:"linear"}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,i=e,s=De(null),r=De(300),o=De(110);let a=null;function c(){if(!s.value)return;const A=s.value.getBoundingClientRect();r.value=A.width,o.value=A.height}function l(A){return Tr+A*(r.value-Tr*2)}function h(A){return Tr+(1-A)*(o.value-Tr*2)}function u(){return[...t.modelValue].sort((A,R)=>A.x-R.x)}function d(A){i("update:modelValue",[...A].sort((R,B)=>R.x-B.x))}function f(){d(t.defaultValue.map(A=>({...A})))}const m=Fe(()=>u());function p(A){const R=m.value[A],B=m.value[Math.max(0,A-1)];return{x:R.x-(R.x-B.x)/3,y:R.y-(R.y-B.y)/3}}function g(A){const R=m.value[A],B=m.value[Math.min(m.value.length-1,A+1)];return{x:R.x+(B.x-R.x)/3,y:R.y+(B.y-R.y)/3}}function v(A){const R=m.value[A],B=p(A);return{x:R.x+(R.inX??B.x-R.x),y:R.y+(R.inY??B.y-R.y)}}function b(A){const R=m.value[A],B=g(A);return{x:R.x+(R.outX??B.x-R.x),y:R.y+(R.outY??B.y-R.y)}}const y=Fe(()=>{if(!m.value.length)return"";let A=`M ${l(m.value[0].x)} ${h(m.value[0].y)}`;for(let R=1;R<m.value.length;R++){const B=m.value[R];if(t.mode==="bezier"){const O=b(R-1),W=v(R);A+=` C ${l(O.x)} ${h(O.y)} ${l(W.x)} ${h(W.y)} ${l(B.x)} ${h(B.y)}`}else A+=` L ${l(B.x)} ${h(B.y)}`}return A});function x(A,R){const B=s.value.getBoundingClientRect(),O=(A-B.left-Tr)/(r.value-Tr*2),W=(R-B.top-Tr)/(o.value-Tr*2);return{x:Math.min(1,Math.max(0,Math.round(O*100)/100)),y:Math.min(1,Math.max(0,Math.round((1-W)*100)/100))}}let _=0;function E(A){if(A.target.classList.contains("ce-hit")||Date.now()-_<400)return;const{x:R,y:B}=x(A.clientX,A.clientY),O=u().filter(W=>Math.abs(W.x-R)>.02);O.push({x:R,y:B}),d(O)}let S={t:0,i:-1,x:0,y:0};function C(A,R){A.stopPropagation();const B=u().findIndex(Y=>Math.abs(Y.x-m.value[R].x)<1e-6&&Math.abs(Y.y-m.value[R].y)<1e-6);if(B<0)return;const O=Date.now();if(O-S.t<300&&S.i===R&&Math.abs(A.clientX-S.x)<8&&Math.abs(A.clientY-S.y)<8){S={t:0,i:-1,x:0,y:0},P(R);return}S={t:O,i:R,x:A.clientX,y:A.clientY};const W=Y=>{(Math.abs(Y.clientX-A.clientX)>8||Math.abs(Y.clientY-A.clientY)>8)&&(S={t:0,i:-1,x:0,y:0});const{x:L,y:N}=x(Y.clientX,Y.clientY),F=u();F[B]={x:L,y:N},d(F)},V=()=>{window.removeEventListener("pointermove",W),window.removeEventListener("pointerup",V)};window.addEventListener("pointermove",W),window.addEventListener("pointerup",V)}function M(A,R,B){A.stopPropagation();const O=V=>{const Y=x(V.clientX,V.clientY),L=u(),N=L[R],F=B==="in"?L[Math.max(0,R-1)].x:N.x,D=B==="in"?N.x:L[Math.min(L.length-1,R+1)].x,X=Math.min(D,Math.max(F,Y.x)),G=Math.round((X-N.x)*100)/100,K=Math.round((Y.y-N.y)*100)/100;L[R]=B==="in"?{...N,inX:G,inY:K}:{...N,outX:G,outY:K},d(L)},W=()=>{window.removeEventListener("pointermove",O),window.removeEventListener("pointerup",W)};window.addEventListener("pointermove",O),window.addEventListener("pointerup",W)}function P(A,R){R==null||R.stopPropagation();const B=u();B.length<=2||(_=Date.now(),d(B.filter((O,W)=>W!==A)))}return Sn(()=>{c(),a=new ResizeObserver(c),s.value&&a.observe(s.value)}),Za(()=>{a==null||a.disconnect()}),(A,R)=>(Q(),te("div",G5,[w("div",H5,[(Q(),te("svg",{ref_key:"svg",ref:s,class:"ce-svg",onDblclick:E},[w("g",j5,[(Q(),te(Me,null,It([.25,.5,.75],B=>w("line",{key:"v"+B,x1:l(B),y1:"0",x2:l(B),y2:h(0)},null,8,W5)),64)),(Q(),te(Me,null,It([.25,.5,.75],B=>w("line",{key:"h"+B,x1:"0",y1:h(B),x2:l(1),y2:h(B)},null,8,z5)),64))]),w("rect",{x:l(0),y:h(1),width:l(1)-l(0),height:h(0)-h(1),class:"ce-frame",fill:"none"},null,8,q5),w("path",{d:y.value,class:"ce-line",fill:"none"},null,8,K5),n.mode==="bezier"?(Q(),te("g",J5,[(Q(!0),te(Me,null,It(m.value,(B,O)=>(Q(),te(Me,{key:"handles-"+O},[O>0?(Q(),te("line",{key:0,x1:l(B.x),y1:h(B.y),x2:l(v(O).x),y2:h(v(O).y)},null,8,Z5)):_e("",!0),O>0?(Q(),te("circle",{key:1,cx:l(v(O).x),cy:h(v(O).y),r:"4",onPointerdown:W=>M(W,O,"in")},null,40,Q5)):_e("",!0),O<m.value.length-1?(Q(),te("line",{key:2,x1:l(B.x),y1:h(B.y),x2:l(b(O).x),y2:h(b(O).y)},null,8,e8)):_e("",!0),O<m.value.length-1?(Q(),te("circle",{key:3,cx:l(b(O).x),cy:h(b(O).y),r:"4",onPointerdown:W=>M(W,O,"out")},null,40,t8)):_e("",!0)],64))),128))])):_e("",!0),(Q(!0),te(Me,null,It(m.value,(B,O)=>(Q(),te("g",{key:O},[w("circle",{cx:l(B.x),cy:h(B.y),r:"5",class:"ce-node"},null,8,i8),w("circle",{cx:l(B.x),cy:h(B.y),r:"9",class:"ce-hit",onPointerdown:W=>C(W,O),onDblclick:W=>P(O,W)},null,40,n8)]))),128))],544)),w("div",s8,[w("span",r8,k(n.mode==="bezier"?A.$t("curve.bezierHint"):A.$t("curve.linearHint")),1)])]),w("button",{class:"ce-reset",type:"button",title:A.$t("curve.resetTitle"),onClick:f},k(A.$t("common.reset")),9,o8)]))}}),bs=li(a8,[["__scopeId","data-v-8f475293"]]),l8={class:"spine-editor"},c8={class:"editor-title"},h8={class:"field wide"},u8={class:"grid three"},d8={class:"field"},f8={class:"field"},m8={class:"field"},p8={class:"grid three"},g8={class:"field"},v8={class:"field"},y8={class:"field"},b8={class:"section-title"},x8=["disabled"],w8={class:"folder-hint"},S8={class:"asset-row"},_8=["title"],T8={class:"asset-row"},E8=["title"],C8={class:"asset-row"},M8=["title"],A8={class:"asset-actions"},I8=["disabled"],P8={class:"runtime-note"},R8={key:0},k8={key:0,class:"error"},F8={class:"section-box"},L8={class:"section-title"},O8={key:0,class:"empty"},$8={key:1,class:"field wide"},N8={value:""},D8=["value"],B8={class:"section-box"},U8={class:"tree-title-row"},V8={class:"section-title"},X8=["disabled","title"],Y8=["disabled","title"],G8={class:"tree-tabs"},H8={key:0,class:"empty"},j8={key:1,class:"bone-search"},W8=["aria-label","placeholder"],z8=["title","aria-label"],q8={key:2,class:"empty"},K8={key:3,class:"bone-tree"},J8=["onClick","onKeydown"],Z8=["title","onClick"],Q8={key:1,class:"bone-leaf"},eV={class:"bone-name"},tV={key:0,class:"empty"},iV={key:1,class:"bone-search"},nV=["aria-label","placeholder"],sV=["title","aria-label"],rV={key:2,class:"empty"},oV={key:3,class:"bone-tree slot-tree"},aV=["title","onClick","onKeydown"],lV={class:"slot-order"},cV={class:"bone-name"},hV={class:"slot-attachment"},uV=qt({__name:"SpineObjectPanel",props:{spineObject:{}},setup(n){const e=n,{t}=fn(),i=Wo(),s=De(null),r=De(null),o=De(null),a=De(null),c=De(new Set),l=De(""),h=De("bone"),u=De(""),d=De(null),f=De(null),m=De([]);e.spineObject.selectedBone==null&&(e.spineObject.selectedBone=""),e.spineObject.selectedSlot==null&&(e.spineObject.selectedSlot=""),Array.isArray(e.spineObject.slots)||(e.spineObject.slots=[]),e.spineObject.sourceBundle==null&&(e.spineObject.sourceBundle=null),e.spineObject.dataVersion==null&&(e.spineObject.dataVersion="");const p=Fe(()=>{var X;return((X=d.value)==null?void 0:X.name)||e.spineObject.skeletonFileName}),g=Fe(()=>{var X;return((X=f.value)==null?void 0:X.name)||e.spineObject.atlasFileName}),v=Fe(()=>m.value.length?m.value.map(X=>X.name):e.spineObject.textureFileNames),b=Fe(()=>v.value.length?t("spine.textureSummary",{count:v.value.length,names:v.value.join(", ")}):"PNG / JPEG / WebP..."),y=Fe(()=>new Set(e.spineObject.bones.map(X=>X.parent).filter(X=>!!X))),x=Fe(()=>new Map(e.spineObject.bones.map(X=>[X.name,X]))),_=Fe(()=>e.spineObject.bones.filter(X=>{var J;const G=l.value.trim().toLocaleLowerCase();if(G)return X.name.toLocaleLowerCase().includes(G);let K=X.parent;for(;K;){if(c.value.has(K))return!1;K=((J=x.value.get(K))==null?void 0:J.parent)||null}return!0})),E=Fe(()=>y.value.size>0&&[...y.value].every(X=>c.value.has(X))),S=Fe(()=>{const X=u.value.trim().toLocaleLowerCase(),G=[...e.spineObject.slots].sort((K,J)=>K.order-J.order);return X?G.filter(K=>K.name.toLocaleLowerCase().includes(X)||K.attachment.toLocaleLowerCase().includes(X)):G});function C(X){const G=e.spineObject.selectedBone===X;for(const K of i.spines)K.selectedBone="";G||(e.spineObject.selectedBone=X)}function M(X){const G=e.spineObject.selectedSlot===X;for(const K of i.spines)K.selectedSlot="";G||(e.spineObject.selectedSlot=X)}function P(X){c.value.has(X)?c.value.delete(X):c.value.add(X)}function A(){c.value=E.value?new Set:new Set(y.value)}function R(X){var G;return((G=X.target.files)==null?void 0:G[0])||null}function B(X){d.value=R(X)}function O(X){f.value=R(X)}function W(X){m.value=Array.from(X.target.files||[])}function V(X){return X.name.replace(/\.[^.]+$/,"").toLocaleLowerCase()}async function Y(X){const G=Array.from(X.target.files||[]);if(!G.length)return;const K=G.filter(fe=>/\.(json|skel)$/i.test(fe.name)),J=G.filter(fe=>/\.atlas$/i.test(fe.name)),oe=G.filter(fe=>/\.(png|jpe?g|webp|wepb)$/i.test(fe.name)),le=J.map(fe=>({atlas:fe,skeleton:K.find(ye=>V(ye)===V(fe))})).find(fe=>fe.skeleton),ve=(le==null?void 0:le.skeleton)||K[0]||null,Se=(le==null?void 0:le.atlas)||J[0]||null;if(d.value=ve,f.value=Se,m.value=oe,!ve||!Se||!oe.length){const fe=[!ve&&"JSON / SKEL",!Se&&"Atlas",!oe.length&&t("spine.textureImages")].filter(Boolean).join(", ");e.spineObject.status="error",e.spineObject.error=t("spine.missingFolderAssets",{missing:fe});return}await F()}function L(){i.recalcTotalFrames()}function N(){L(),i.timeline.frame=0}async function F(){var K;const X=d.value,G=f.value;if(!X||!G||!m.value.length){e.spineObject.status="error",e.spineObject.error=t("spine.chooseAssets");return}e.spineObject.status="loading",e.spineObject.error="";try{const J=await xT(X,G,m.value);cd(e.spineObject.id,J),e.spineObject.skeletonFileName=X.name,e.spineObject.atlasFileName=G.name,e.spineObject.textureFileNames=m.value.map(oe=>oe.name),e.spineObject.dataVersion=J.dataVersion,e.spineObject.animations=J.animations,e.spineObject.bones=J.bones,e.spineObject.slots=J.slots,e.spineObject.selectedBone="",e.spineObject.selectedSlot="",l.value="",u.value="",c.value=new Set,e.spineObject.selectedAnimation=((K=J.animations[0])==null?void 0:K.name)||"",e.spineObject.assetVersion++,e.spineObject.status="ready",L(),i.timeline.frame=0;try{e.spineObject.sourceBundle=await TD(X,G,m.value)}catch(oe){e.spineObject.sourceBundle=null,console.warn("Spine 配置资源嵌入失败",oe)}}catch(J){e.spineObject.status="error",e.spineObject.error=J instanceof Error?J.message:String(J)}}function D(){yc(e.spineObject.id),d.value=null,f.value=null,m.value=[],s.value&&(s.value.value=""),r.value&&(r.value.value=""),o.value&&(o.value.value=""),a.value&&(a.value.value=""),e.spineObject.skeletonFileName="",e.spineObject.atlasFileName="",e.spineObject.textureFileNames=[],e.spineObject.dataVersion="",e.spineObject.sourceBundle=null,e.spineObject.animations=[],e.spineObject.bones=[],e.spineObject.slots=[],e.spineObject.selectedBone="",e.spineObject.selectedSlot="",l.value="",u.value="",c.value=new Set,e.spineObject.selectedAnimation="",e.spineObject.assetVersion++,e.spineObject.status="empty",e.spineObject.error="",L()}return(X,G)=>(Q(),te("div",l8,[w("div",c8,k(X.$t("spine.title")),1),w("label",h8,[w("span",null,k(X.$t("spine.name")),1),pe(w("input",{"onUpdate:modelValue":G[0]||(G[0]=K=>n.spineObject.name=K)},null,512),[[Je,n.spineObject.name]])]),w("div",u8,[w("label",d8,[w("span",null,k(X.$t("spine.xPosition")),1),pe(w("input",{"onUpdate:modelValue":G[1]||(G[1]=K=>n.spineObject.x=K),type:"number"},null,512),[[Je,n.spineObject.x,void 0,{number:!0}]])]),w("label",f8,[w("span",null,k(X.$t("spine.yPosition")),1),pe(w("input",{"onUpdate:modelValue":G[2]||(G[2]=K=>n.spineObject.y=K),type:"number"},null,512),[[Je,n.spineObject.y,void 0,{number:!0}]])]),w("label",m8,[w("span",null,k(X.$t("spine.rotation")),1),pe(w("input",{"onUpdate:modelValue":G[3]||(G[3]=K=>n.spineObject.rotation=K),type:"number"},null,512),[[Je,n.spineObject.rotation,void 0,{number:!0}]])])]),w("div",p8,[w("label",g8,[G[20]||(G[20]=w("span",null,"Scale X",-1)),pe(w("input",{"onUpdate:modelValue":G[4]||(G[4]=K=>n.spineObject.scaleX=K),type:"number",step:"0.05"},null,512),[[Je,n.spineObject.scaleX,void 0,{number:!0}]])]),w("label",v8,[G[21]||(G[21]=w("span",null,"Scale Y",-1)),pe(w("input",{"onUpdate:modelValue":G[5]||(G[5]=K=>n.spineObject.scaleY=K),type:"number",step:"0.05"},null,512),[[Je,n.spineObject.scaleY,void 0,{number:!0}]])]),w("label",y8,[w("span",null,k(X.$t("spine.startTime")),1),pe(w("input",{"onUpdate:modelValue":G[6]||(G[6]=K=>n.spineObject.timeOffset=K),type:"number",min:"0",step:"0.033333",onChange:L},null,544),[[Je,n.spineObject.timeOffset,void 0,{number:!0}]])])]),G[22]||(G[22]=w("div",{class:"divider"},null,-1)),w("div",b8,k(X.$t("spine.resources")),1),w("input",{ref_key:"skeletonInput",ref:s,hidden:"",type:"file",accept:".json,.skel,application/json,application/octet-stream",onChange:B},null,544),w("input",{ref_key:"atlasInput",ref:r,hidden:"",type:"file",accept:".atlas,text/plain",onChange:O},null,544),w("input",{ref_key:"textureInput",ref:o,hidden:"",type:"file",multiple:"",accept:".png,.jpg,.jpeg,.webp,.wepb,image/png,image/jpeg,image/webp",onChange:W},null,544),w("input",{ref_key:"folderInput",ref:a,hidden:"",type:"file",multiple:"",webkitdirectory:"",directory:"",onChange:Y},null,544),w("button",{class:"folder-select",disabled:n.spineObject.status==="loading",onClick:G[7]||(G[7]=K=>{var J;return(J=a.value)==null?void 0:J.click()})},k(X.$t("spine.chooseFolder")),9,x8),w("div",w8,k(X.$t("spine.folderHint")),1),w("div",S8,[w("div",{class:"asset-name",title:p.value},k(p.value||"JSON / SKEL..."),9,_8),w("button",{onClick:G[8]||(G[8]=K=>{var J;return(J=s.value)==null?void 0:J.click()})},k(X.$t("spine.choose")),1)]),w("div",T8,[w("div",{class:"asset-name",title:g.value},k(g.value||"Atlas..."),9,E8),w("button",{onClick:G[9]||(G[9]=K=>{var J;return(J=r.value)==null?void 0:J.click()})},k(X.$t("spine.choose")),1)]),w("div",C8,[w("div",{class:"asset-name",title:v.value.join(", ")},k(b.value),9,M8),w("button",{onClick:G[10]||(G[10]=K=>{var J;return(J=o.value)==null?void 0:J.click()})},k(X.$t("spine.chooseMultiple")),1)]),w("div",A8,[w("button",{class:"load",disabled:n.spineObject.status==="loading",onClick:F},k(n.spineObject.status==="loading"?X.$t("spine.loading"):X.$t("spine.load")),9,I8),w("button",{class:"clear",onClick:D},k(X.$t("spine.clear")),1)]),w("div",P8,[yt(k(X.$t("spine.supportNote"))+" ",1),n.spineObject.dataVersion?(Q(),te("span",R8," · "+k(X.$t("spine.currentResource",{version:n.spineObject.dataVersion})),1)):_e("",!0)]),n.spineObject.error?(Q(),te("div",k8,k(n.spineObject.error),1)):_e("",!0),w("div",F8,[w("div",L8,k(X.$t("spine.animations")),1),n.spineObject.animations.length?(Q(),te("label",$8,[w("span",null,k(X.$t("spine.timelineAnimation")),1),pe(w("select",{"onUpdate:modelValue":G[11]||(G[11]=K=>n.spineObject.selectedAnimation=K),onChange:N},[w("option",N8,k(X.$t("spine.no")),1),(Q(!0),te(Me,null,It(n.spineObject.animations,K=>(Q(),te("option",{key:K.name,value:K.name},k(K.name)+"("+k(K.duration.toFixed(2))+"s) ",9,D8))),128))],544),[[St,n.spineObject.selectedAnimation]])])):(Q(),te("div",O8,k(X.$t("spine.noAnimations")),1))]),w("div",B8,[w("div",U8,[w("div",V8,k(X.$t("spine.hierarchy")),1),h.value==="bone"?(Q(),te("button",{key:0,class:Pe(["selected-bone",{active:n.spineObject.selectedBone}]),disabled:!n.spineObject.selectedBone,title:n.spineObject.selectedBone?X.$t("spine.clearBoneTitle"):X.$t("spine.noBoneTitle"),onClick:G[12]||(G[12]=K=>n.spineObject.selectedBone="")},[n.spineObject.selectedBone?(Q(),te(Me,{key:0},[yt(k(X.$t("spine.clearBone",{name:""})),1),w("strong",null,k(n.spineObject.selectedBone),1)],64)):(Q(),te(Me,{key:1},[yt(k(X.$t("spine.currentBone")),1),w("strong",null,k(X.$t("spine.notSelected")),1)],64))],10,X8)):(Q(),te("button",{key:1,class:Pe(["selected-bone",{active:n.spineObject.selectedSlot}]),disabled:!n.spineObject.selectedSlot,title:n.spineObject.selectedSlot?X.$t("spine.clearSlotTitle"):X.$t("spine.noSlotTitle"),onClick:G[13]||(G[13]=K=>n.spineObject.selectedSlot="")},[n.spineObject.selectedSlot?(Q(),te(Me,{key:0},[yt(k(X.$t("spine.clearSlot",{name:""})),1),w("strong",null,k(n.spineObject.selectedSlot),1)],64)):(Q(),te(Me,{key:1},[yt(k(X.$t("spine.currentSlot")),1),w("strong",null,k(X.$t("spine.notSelected")),1)],64))],10,Y8)),h.value==="bone"&&n.spineObject.bones.length?(Q(),te("button",{key:2,class:"tree-action",onClick:A},k(E.value?X.$t("spine.expandAll"):X.$t("spine.collapseAll")),1)):_e("",!0)]),w("div",G8,[w("button",{class:Pe({on:h.value==="bone"}),onClick:G[14]||(G[14]=K=>h.value="bone")},k(X.$t("spine.bones")),3),w("button",{class:Pe({on:h.value==="slot"}),onClick:G[15]||(G[15]=K=>h.value="slot")},k(X.$t("spine.slots")),3)]),h.value==="bone"?(Q(),te(Me,{key:0},[n.spineObject.bones.length?(Q(),te("div",j8,[pe(w("input",{"onUpdate:modelValue":G[16]||(G[16]=K=>l.value=K),type:"search","aria-label":X.$t("spine.searchBones"),placeholder:X.$t("spine.searchBonesPlaceholder")},null,8,W8),[[Je,l.value,void 0,{trim:!0}]]),l.value?(Q(),te("button",{key:0,title:X.$t("spine.clearSearch"),"aria-label":X.$t("spine.clearBoneSearch"),onClick:G[17]||(G[17]=K=>l.value="")},"✕",8,z8)):_e("",!0)])):(Q(),te("div",H8,k(X.$t("spine.notLoaded")),1)),n.spineObject.bones.length&&!_.value.length?(Q(),te("div",q8,k(X.$t("spine.noMatchingBones")),1)):n.spineObject.bones.length?(Q(),te("div",K8,[(Q(!0),te(Me,null,It(_.value,K=>(Q(),te("div",{key:K.name,class:Pe(["bone",{selected:n.spineObject.selectedBone===K.name}]),style:Vt({paddingLeft:`${6+K.depth*16}px`}),role:"button",tabindex:"0",onClick:J=>C(K.name),onKeydown:Wr(tt(J=>C(K.name),["prevent"]),["enter"])},[y.value.has(K.name)?(Q(),te("button",{key:0,class:"bone-toggle",title:c.value.has(K.name)?X.$t("spine.expandChildren"):X.$t("spine.collapseChildren"),onClick:tt(J=>P(K.name),["stop"])},k(c.value.has(K.name)?"▸":"▾"),9,Z8)):(Q(),te("span",Q8,"•")),w("span",eV,k(K.name),1)],46,J8))),128))])):_e("",!0)],64)):(Q(),te(Me,{key:1},[n.spineObject.slots.length?(Q(),te("div",iV,[pe(w("input",{"onUpdate:modelValue":G[18]||(G[18]=K=>u.value=K),type:"search","aria-label":X.$t("spine.searchSlots"),placeholder:X.$t("spine.searchSlotsPlaceholder")},null,8,nV),[[Je,u.value,void 0,{trim:!0}]]),u.value?(Q(),te("button",{key:0,title:X.$t("spine.clearSearch"),"aria-label":X.$t("spine.clearSlotSearch"),onClick:G[19]||(G[19]=K=>u.value="")},"✕",8,sV)):_e("",!0)])):(Q(),te("div",tV,k(X.$t("spine.notLoadedSlots")),1)),n.spineObject.slots.length&&!S.value.length?(Q(),te("div",rV,k(X.$t("spine.noMatchingSlots")),1)):n.spineObject.slots.length?(Q(),te("div",oV,[(Q(!0),te(Me,null,It(S.value,K=>(Q(),te("div",{key:K.name,class:Pe(["bone slot-row",{selected:n.spineObject.selectedSlot===K.name}]),role:"button",tabindex:"0",title:X.$t("spine.slotTitle",{name:K.name,bone:K.bone||"-",attachment:K.attachment||X.$t("spine.empty")}),onClick:J=>M(K.name),onKeydown:Wr(tt(J=>M(K.name),["prevent"]),["enter"])},[w("span",lV,k(K.order+1),1),w("span",cV,k(K.name),1),w("span",hV,k(K.attachment||X.$t("spine.empty")),1)],42,aV))),128))])):_e("",!0)],64))])]))}}),dV=li(uV,[["__scopeId","data-v-35137928"]]),fV={class:"group"},mV={class:"caret"},pV={class:"scene-actions"},gV=["title"],vV=["title"],yV=["title"],bV=["title"],xV=["disabled","title"],wV={class:"group-body"},SV={class:"tree scene-tree"},_V=["onClick"],TV={key:0,class:"sub-branch"},EV={key:1,class:"tdot"},CV={class:"tlabel"},MV=["title","aria-label","onClick"],AV={viewBox:"0 0 24 24","aria-hidden":"true"},IV={key:0,class:"eye-slash",d:"M4 4l16 16"},PV=["title","onClick"],RV=["onClick"],kV={class:"tlabel"},FV=["title","aria-label","onClick"],LV={viewBox:"0 0 24 24","aria-hidden":"true"},OV={key:0,class:"eye-slash",d:"M4 4l16 16"},$V={class:"scene-object-kind"},NV=["title","onClick"],DV=["onClick"],BV={class:"tlabel"},UV=["title","aria-label","onClick"],VV={viewBox:"0 0 24 24","aria-hidden":"true"},XV={key:0,class:"eye-slash",d:"M4 4l16 16"},YV={class:"scene-object-kind"},GV=["title","onClick"],HV=["onClick"],jV={class:"tlabel"},WV=["title","aria-label","onClick"],zV={viewBox:"0 0 24 24","aria-hidden":"true"},qV={key:0,class:"eye-slash",d:"M4 4l16 16"},KV=["title","onClick"],JV={key:0,class:"empty"},ZV={class:"row"},QV={class:"seed-row scene-seed"},eX={for:"system-seed"},tX=["title"],iX=["title"],nX={class:"seed-hint"},sX={class:"object-editor-title"},rX={class:"field-block"},oX={class:"field-grid"},aX={class:"field-block"},lX={value:"circle"},cX={value:"ellipse"},hX={value:"rect"},uX={value:"polygon"},dX={value:"custom"},fX={class:"field-block check-field"},mX={class:"field-grid"},pX={class:"compact-field"},gX={class:"compact-field"},vX={class:"field-grid"},yX={class:"compact-field"},bX={class:"compact-field"},xX={key:1,class:"field-grid"},wX={class:"compact-field"},SX={class:"compact-field"},_X={key:2,class:"field-grid"},TX={class:"compact-field"},EX={class:"compact-field"},CX={class:"field-block"},MX={value:"physics"},AX={value:"pause"},IX={value:"destroy"},PX={key:4,class:"field-grid"},RX={class:"compact-field"},kX={class:"compact-field"},FX={class:"collider-follow-section"},LX={class:"follow-path"},OX={class:"field-block"},$X={value:0},NX=["value"],DX={class:"field-grid"},BX={class:"compact-field"},UX={class:"compact-field"},VX={value:"跟随导出"},XX={value:"线性"},YX={value:"贝塞尔"},GX={class:"follow-path"},HX={class:"collider-curve-title"},jX={class:"object-editor-title"},WX={class:"field-block"},zX={class:"field-grid"},qX={class:"compact-field"},KX={class:"compact-field"},JX={class:"field-grid"},ZX={class:"compact-field"},QX={class:"compact-field"},eY={class:"setting-line"},tY={class:"setting-line"},iY={class:"path-help"},nY={class:"field-block"},sY={value:""},rY={value:"circle"},oY={value:"square"},aY={value:"polygon"},lY={value:"star"},cY={key:4,class:"panel-hint"},hY=qt({__name:"SceneObjectsSection",setup(n){const{store:e,resolvedCurveEditorMode:t,sys:i,activeObjectType:s,activeCollider:r,activePath:o,activeSpine:a,canCopyObject:c,collapsed:l,toggle:h,addSys:u,addCollider:d,addPath:f,addSpine:m,copySelectedObject:p,applyPathPreset:g,clearPathAnchors:v,randomizeSeed:b,LINEAR_CURVE:y}=oo(),x=Fe(()=>{const _=new Map(e.systems.map(A=>[A.id,A])),E=new Map;for(const A of e.systems)if(A.config.eventEnabled!==!1)for(const R of A.config.events||[])R.targetSystemId<=0||R.targetSystemId===A.id||!_.has(R.targetSystemId)||E.has(R.targetSystemId)||E.set(R.targetSystemId,A.id);const S=new Map;for(const[A,R]of E){const B=S.get(R);B?B.push(A):S.set(R,[A])}const C=[],M=new Set,P=(A,R)=>{if(!M.has(A.id)){M.add(A.id),C.push({system:A,depth:R});for(const B of S.get(A.id)||[]){const O=_.get(B);O&&P(O,R+1)}}};for(const A of e.systems)E.has(A.id)||P(A,0);for(const A of e.systems)M.has(A.id)||P(A,0);return C});return(_,E)=>(Q(),te("div",fV,[w("div",{class:"group-head scene-head",onClick:E[5]||(E[5]=S=>I(h)("scene"))},[w("span",mV,k(I(l).scene?"▸":"▾"),1),w("span",null,k(_.$t("scene.title")),1),w("div",pV,[w("button",{class:"scene-add",title:_.$t("scene.addParticle"),onClick:E[0]||(E[0]=tt((...S)=>I(u)&&I(u)(...S),["stop"]))},k(_.$t("scene.addParticleShort")),9,gV),w("button",{class:"scene-add",title:_.$t("scene.addCollider"),onClick:E[1]||(E[1]=tt((...S)=>I(d)&&I(d)(...S),["stop"]))},k(_.$t("scene.addColliderShort")),9,vV),w("button",{class:"scene-add",title:_.$t("scene.addPath"),onClick:E[2]||(E[2]=tt((...S)=>I(f)&&I(f)(...S),["stop"]))},k(_.$t("scene.addPathShort")),9,yV),w("button",{class:"scene-add",title:_.$t("scene.addSpine"),onClick:E[3]||(E[3]=tt((...S)=>I(m)&&I(m)(...S),["stop"]))},"+Spine",8,bV),w("button",{class:"scene-add",disabled:!I(c),title:_.$t("scene.copyTitle"),onClick:E[4]||(E[4]=tt((...S)=>I(p)&&I(p)(...S),["stop"]))},"+Copy",8,xV)])]),pe(w("div",wV,[w("div",SV,[(Q(!0),te(Me,null,It(x.value,S=>(Q(),te("div",{key:`particle-${S.system.id}`,class:Pe(["tree-item scene-object-item",{on:I(s)==="particle"&&S.system.id===I(e).activeObjectId,"scene-object-child":S.depth>0}]),style:Vt(S.depth>0?{paddingLeft:`${S.depth*18}px`}:void 0),onClick:C=>I(e).selectSystem(S.system.id)},[S.depth>0?(Q(),te("span",TV,"└")):(Q(),te("span",EV,"●")),w("span",CV,k(S.system.config.name||"ParticleSystem"),1),w("button",{class:Pe(["scene-object-eye",{off:S.system.visible===!1}]),title:S.system.visible===!1?_.$t("scene.showParticle"):_.$t("scene.hideParticle"),"aria-label":S.system.visible===!1?_.$t("scene.showParticle"):_.$t("scene.hideParticle"),onClick:tt(C=>S.system.visible=S.system.visible===!1,["stop"])},[(Q(),te("svg",AV,[E[50]||(E[50]=w("path",{d:"M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z"},null,-1)),E[51]||(E[51]=w("circle",{cx:"12",cy:"12",r:"2.8"},null,-1)),S.system.visible===!1?(Q(),te("path",IV)):_e("",!0)]))],10,MV),w("span",{class:Pe(["scene-object-kind",{"sub-emitter-kind":S.depth>0}])},k(S.depth>0?_.$t("scene.subEmitter"):_.$t("scene.particle")),3),w("button",{class:"scene-object-delete",title:_.$t("scene.deleteParticle"),onClick:tt(C=>I(e).removeSystem(S.system.id),["stop"])},"✕",8,PV)],14,_V))),128)),(Q(!0),te(Me,null,It(I(e).colliders,S=>(Q(),te("div",{key:`collision-${S.id}`,class:Pe(["tree-item scene-object-item",{on:I(s)==="collision"&&S.id===I(e).activeObjectId}]),onClick:C=>I(e).selectSceneObject("collision",S.id)},[E[54]||(E[54]=w("span",{class:"tdot collision-dot"},"■",-1)),w("span",kV,k(S.name),1),w("button",{class:Pe(["scene-object-eye",{off:S.visible===!1}]),title:S.visible===!1?_.$t("scene.showCollider"):_.$t("scene.hideCollider"),"aria-label":S.visible===!1?_.$t("scene.showCollider"):_.$t("scene.hideCollider"),onClick:tt(C=>S.visible=S.visible===!1,["stop"])},[(Q(),te("svg",LV,[E[52]||(E[52]=w("path",{d:"M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z"},null,-1)),E[53]||(E[53]=w("circle",{cx:"12",cy:"12",r:"2.8"},null,-1)),S.visible===!1?(Q(),te("path",OV)):_e("",!0)]))],10,FV),w("span",$V,k(_.$t("scene.collision")),1),w("button",{class:"scene-object-delete",title:_.$t("scene.deleteCollider"),onClick:tt(C=>I(e).removeCollider(S.id),["stop"])},"✕",8,NV)],10,RV))),128)),(Q(!0),te(Me,null,It(I(e).paths,S=>(Q(),te("div",{key:`path-${S.id}`,class:Pe(["tree-item scene-object-item",{on:I(s)==="path"&&S.id===I(e).activeObjectId}]),onClick:C=>I(e).selectSceneObject("path",S.id)},[E[57]||(E[57]=w("span",{class:"tdot path-dot"},"◇",-1)),w("span",BV,k(S.name),1),w("button",{class:Pe(["scene-object-eye",{off:S.visible===!1}]),title:S.visible===!1?_.$t("scene.showPath"):_.$t("scene.hidePath"),"aria-label":S.visible===!1?_.$t("scene.showPath"):_.$t("scene.hidePath"),onClick:tt(C=>S.visible=S.visible===!1,["stop"])},[(Q(),te("svg",VV,[E[55]||(E[55]=w("path",{d:"M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z"},null,-1)),E[56]||(E[56]=w("circle",{cx:"12",cy:"12",r:"2.8"},null,-1)),S.visible===!1?(Q(),te("path",XV)):_e("",!0)]))],10,UV),w("span",YV,k(_.$t("scene.path")),1),w("button",{class:"scene-object-delete",title:_.$t("scene.deletePath"),onClick:tt(C=>I(e).removePath(S.id),["stop"])},"✕",8,GV)],10,DV))),128)),(Q(!0),te(Me,null,It(I(e).spines,S=>(Q(),te("div",{key:`spine-${S.id}`,class:Pe(["tree-item scene-object-item",{on:I(s)==="spine"&&S.id===I(e).activeObjectId}]),onClick:C=>I(e).selectSceneObject("spine",S.id)},[E[60]||(E[60]=w("span",{class:"tdot spine-dot"},"◆",-1)),w("span",jV,k(S.name),1),w("button",{class:Pe(["scene-object-eye",{off:S.visible===!1}]),title:S.visible===!1?_.$t("scene.showSpine"):_.$t("scene.hideSpine"),"aria-label":S.visible===!1?_.$t("scene.showSpine"):_.$t("scene.hideSpine"),onClick:tt(C=>S.visible=S.visible===!1,["stop"])},[(Q(),te("svg",zV,[E[58]||(E[58]=w("path",{d:"M2.5 12s3.5-6 9.5-6 9.5 6 9.5 6-3.5 6-9.5 6-9.5-6-9.5-6Z"},null,-1)),E[59]||(E[59]=w("circle",{cx:"12",cy:"12",r:"2.8"},null,-1)),S.visible===!1?(Q(),te("path",qV)):_e("",!0)]))],10,WV),E[61]||(E[61]=w("span",{class:"scene-object-kind"},"Spine",-1)),w("button",{class:"scene-object-delete",title:_.$t("scene.deleteSpine"),onClick:tt(C=>I(e).removeSpine(S.id),["stop"])},"✕",8,KV)],10,HV))),128)),!I(e).systems.length&&!I(e).colliders.length&&!I(e).paths.length&&!I(e).spines.length?(Q(),te("div",JV,k(_.$t("scene.empty")),1)):_e("",!0)]),I(s)==="particle"&&I(i)?(Q(),te(Me,{key:0},[w("label",ZV,[w("span",null,k(_.$t("scene.name")),1),pe(w("input",{"onUpdate:modelValue":E[6]||(E[6]=S=>I(i).config.name=S),class:"inp"},null,512),[[Je,I(i).config.name]])]),Te(Ue,{label:_.$t("scene.positionX"),min:-2e3,max:2e3,step:1,modelValue:I(i).config.centerX,"onUpdate:modelValue":E[7]||(E[7]=S=>I(i).config.centerX=S)},null,8,["label","modelValue"]),Te(Ue,{label:_.$t("scene.positionY"),min:-2e3,max:2e3,step:1,modelValue:I(i).config.centerY,"onUpdate:modelValue":E[8]||(E[8]=S=>I(i).config.centerY=S)},null,8,["label","modelValue"]),Te(Ue,{label:_.$t("scene.offsetX"),min:-2e3,max:2e3,step:1,modelValue:I(i).config.offsetX,"onUpdate:modelValue":E[9]||(E[9]=S=>I(i).config.offsetX=S)},null,8,["label","modelValue"]),Te(Ue,{label:_.$t("scene.offsetY"),min:-2e3,max:2e3,step:1,modelValue:I(i).config.offsetY,"onUpdate:modelValue":E[10]||(E[10]=S=>I(i).config.offsetY=S)},null,8,["label","modelValue"]),Te(Ue,{label:_.$t("scene.rotation"),min:-360,max:360,step:1,modelValue:I(i).config.rootRotation,"onUpdate:modelValue":E[11]||(E[11]=S=>I(i).config.rootRotation=S)},null,8,["label","modelValue"]),Te(Ue,{label:_.$t("scene.scaleX"),min:.05,max:10,step:.05,modelValue:I(i).config.rootScaleX,"onUpdate:modelValue":E[12]||(E[12]=S=>I(i).config.rootScaleX=S)},null,8,["label","modelValue"]),Te(Ue,{label:_.$t("scene.scaleY"),min:.05,max:10,step:.05,modelValue:I(i).config.rootScaleY,"onUpdate:modelValue":E[13]||(E[13]=S=>I(i).config.rootScaleY=S)},null,8,["label","modelValue"]),w("div",QV,[w("label",eX,k(_.$t("scene.seed")),1),pe(w("input",{id:"system-seed",class:"seed-input",type:"number",min:"0",step:"1","onUpdate:modelValue":E[14]||(E[14]=S=>I(i).config.seed=S),title:_.$t("scene.seedTitle")},null,8,tX),[[Je,I(i).config.seed,void 0,{number:!0}]]),w("button",{class:"seed-random",title:_.$t("scene.randomizeSeed"),onClick:E[15]||(E[15]=(...S)=>I(b)&&I(b)(...S))},"⚄",8,iX)]),w("div",nX,k(_.$t("scene.seedHint")),1)],64)):I(r)?(Q(),te(Me,{key:1},[w("div",sX,k(_.$t("scene.colliderTitle")),1),w("label",rX,[w("span",null,k(_.$t("scene.colliderName")),1),pe(w("input",{"onUpdate:modelValue":E[16]||(E[16]=S=>I(r).name=S),class:"inp"},null,512),[[Je,I(r).name]])]),w("div",oX,[w("label",aX,[w("span",null,k(_.$t("scene.type")),1),pe(w("select",{"onUpdate:modelValue":E[17]||(E[17]=S=>I(r).shape=S),class:"inp"},[w("option",lX,k(_.$t("scene.circle")),1),w("option",cX,k(_.$t("scene.ellipse")),1),w("option",hX,k(_.$t("scene.rect")),1),w("option",uX,k(_.$t("scene.polygon")),1),w("option",dX,k(_.$t("scene.custom")),1)],512),[[St,I(r).shape]])]),w("label",fX,[w("span",null,k(_.$t("scene.enabled")),1),pe(w("input",{"onUpdate:modelValue":E[18]||(E[18]=S=>I(r).enabled=S),type:"checkbox"},null,512),[[_t,I(r).enabled]])])]),w("div",mX,[w("label",pX,[w("span",null,k(_.$t("scene.xPosition")),1),pe(w("input",{"onUpdate:modelValue":E[19]||(E[19]=S=>I(r).x=S),type:"number",class:"inp"},null,512),[[Je,I(r).x,void 0,{number:!0}]])]),w("label",gX,[w("span",null,k(_.$t("scene.yPosition")),1),pe(w("input",{"onUpdate:modelValue":E[20]||(E[20]=S=>I(r).y=S),type:"number",class:"inp"},null,512),[[Je,I(r).y,void 0,{number:!0}]])])]),Te(Ue,{label:_.$t("scene.rotation"),min:-360,max:360,step:1,modelValue:I(r).rotation,"onUpdate:modelValue":E[21]||(E[21]=S=>I(r).rotation=S)},null,8,["label","modelValue"]),w("div",vX,[w("label",yX,[w("span",null,k(_.$t("scene.scaleXShort")),1),pe(w("input",{"onUpdate:modelValue":E[22]||(E[22]=S=>I(r).scaleX=S),type:"number",min:"0.05",step:"0.05",class:"inp"},null,512),[[Je,I(r).scaleX,void 0,{number:!0}]])]),w("label",bX,[w("span",null,k(_.$t("scene.scaleYShort")),1),pe(w("input",{"onUpdate:modelValue":E[23]||(E[23]=S=>I(r).scaleY=S),type:"number",min:"0.05",step:"0.05",class:"inp"},null,512),[[Je,I(r).scaleY,void 0,{number:!0}]])])]),I(r).shape==="circle"?(Q(),Pt(Ue,{key:0,label:_.$t("scene.radius"),min:1,max:1e3,step:1,modelValue:I(r).radius,"onUpdate:modelValue":E[24]||(E[24]=S=>I(r).radius=S)},null,8,["label","modelValue"])):I(r).shape==="ellipse"?(Q(),te("div",xX,[w("label",wX,[w("span",null,k(_.$t("scene.radiusX")),1),pe(w("input",{"onUpdate:modelValue":E[25]||(E[25]=S=>I(r).radiusX=S),type:"number",min:"1",class:"inp"},null,512),[[Je,I(r).radiusX,void 0,{number:!0}]])]),w("label",SX,[w("span",null,k(_.$t("scene.radiusY")),1),pe(w("input",{"onUpdate:modelValue":E[26]||(E[26]=S=>I(r).radiusY=S),type:"number",min:"1",class:"inp"},null,512),[[Je,I(r).radiusY,void 0,{number:!0}]])])])):(Q(),te("div",_X,[w("label",TX,[w("span",null,k(_.$t("scene.width")),1),pe(w("input",{"onUpdate:modelValue":E[27]||(E[27]=S=>I(r).width=S),type:"number",min:"1",class:"inp"},null,512),[[Je,I(r).width,void 0,{number:!0}]])]),w("label",EX,[w("span",null,k(_.$t("scene.height")),1),pe(w("input",{"onUpdate:modelValue":E[28]||(E[28]=S=>I(r).height=S),type:"number",min:"1",class:"inp"},null,512),[[Je,I(r).height,void 0,{number:!0}]])])])),I(r).shape==="polygon"||I(r).shape==="custom"?(Q(),Pt(Ue,{key:3,label:_.$t("scene.sides"),min:3,max:16,step:1,modelValue:I(r).sides,"onUpdate:modelValue":E[29]||(E[29]=S=>I(r).sides=S)},null,8,["label","modelValue"])):_e("",!0),w("label",CX,[w("span",null,k(_.$t("scene.collisionResponse")),1),pe(w("select",{"onUpdate:modelValue":E[30]||(E[30]=S=>I(r).response=S),class:"inp"},[w("option",MX,k(_.$t("scene.physics")),1),w("option",AX,k(_.$t("scene.pause")),1),w("option",IX,k(_.$t("scene.destroy")),1)],512),[[St,I(r).response]])]),I(r).response==="physics"?(Q(),te("div",PX,[w("label",RX,[w("span",null,k(_.$t("scene.elasticity")),1),pe(w("input",{"onUpdate:modelValue":E[31]||(E[31]=S=>I(r).elasticity=S),type:"number",min:"0",max:"1",step:"0.01",class:"inp"},null,512),[[Je,I(r).elasticity,void 0,{number:!0}]])]),w("label",kX,[w("span",null,k(_.$t("scene.friction")),1),pe(w("input",{"onUpdate:modelValue":E[32]||(E[32]=S=>I(r).friction=S),type:"number",min:"0",max:"1",step:"0.01",class:"inp"},null,512),[[Je,I(r).friction,void 0,{number:!0}]])])])):_e("",!0),w("div",FX,[w("label",LX,[pe(w("input",{"onUpdate:modelValue":E[33]||(E[33]=S=>I(r).followPath=S),type:"checkbox"},null,512),[[_t,I(r).followPath]]),yt(k(_.$t("scene.followPath")),1)]),I(r).followPath?(Q(),te(Me,{key:0},[w("label",OX,[w("span",null,k(_.$t("scene.targetPath")),1),pe(w("select",{"onUpdate:modelValue":E[34]||(E[34]=S=>I(r).followPathId=S),class:"inp"},[w("option",$X,k(_.$t("scene.notSelected")),1),(Q(!0),te(Me,null,It(I(e).paths,S=>(Q(),te("option",{key:S.id,value:S.id},k(S.name),9,NX))),128))],512),[[St,I(r).followPathId,void 0,{number:!0}]])]),w("div",DX,[w("label",BX,[w("span",null,k(_.$t("scene.moveDuration")),1),pe(w("input",{"onUpdate:modelValue":E[35]||(E[35]=S=>I(r).followDuration=S),type:"number",min:"0.05",step:"0.05",class:"inp"},null,512),[[Je,I(r).followDuration,void 0,{number:!0}]])]),w("label",UX,[w("span",null,k(_.$t("appearance.curveMode")),1),pe(w("select",{"onUpdate:modelValue":E[36]||(E[36]=S=>I(r).followCurveMode=S),class:"inp"},[w("option",VX,k(_.$t("common.followExport")),1),w("option",XX,k(_.$t("common.linear")),1),w("option",YX,k(_.$t("common.bezier")),1)],512),[[St,I(r).followCurveMode]])])]),w("label",GX,[pe(w("input",{"onUpdate:modelValue":E[37]||(E[37]=S=>I(r).followPathRotation=S),type:"checkbox"},null,512),[[_t,I(r).followPathRotation]]),yt(k(_.$t("scene.followDirection")),1)]),w("div",HX,[yt(k(_.$t("scene.moveProgressCurve"))+" ",1),w("small",null,k(_.$t("scene.moveProgressHelp")),1)]),Te(bs,{"model-value":I(r).followCurve||I(y),"default-value":I(y),mode:I(t)(I(r).followCurveMode),"onUpdate:modelValue":E[38]||(E[38]=S=>I(r).followCurve=S)},null,8,["model-value","default-value","mode"])],64)):_e("",!0)])],64)):I(o)?(Q(),te(Me,{key:2},[w("div",jX,k(_.$t("scene.pathTitle")),1),w("label",WX,[w("span",null,k(_.$t("scene.pathName")),1),pe(w("input",{"onUpdate:modelValue":E[39]||(E[39]=S=>I(o).name=S),class:"inp"},null,512),[[Je,I(o).name]])]),w("div",zX,[w("label",qX,[w("span",null,k(_.$t("scene.xPosition")),1),pe(w("input",{"onUpdate:modelValue":E[40]||(E[40]=S=>I(o).x=S),type:"number",class:"inp"},null,512),[[Je,I(o).x,void 0,{number:!0}]])]),w("label",KX,[w("span",null,k(_.$t("scene.yPosition")),1),pe(w("input",{"onUpdate:modelValue":E[41]||(E[41]=S=>I(o).y=S),type:"number",class:"inp"},null,512),[[Je,I(o).y,void 0,{number:!0}]])])]),Te(Ue,{label:_.$t("scene.rotation"),min:-360,max:360,step:1,modelValue:I(o).rotation,"onUpdate:modelValue":E[42]||(E[42]=S=>I(o).rotation=S)},null,8,["label","modelValue"]),w("div",JX,[w("label",ZX,[w("span",null,k(_.$t("scene.scaleXShort")),1),pe(w("input",{"onUpdate:modelValue":E[43]||(E[43]=S=>I(o).scaleX=S),type:"number",min:"0.05",step:"0.05",class:"inp"},null,512),[[Je,I(o).scaleX,void 0,{number:!0}]])]),w("label",QX,[w("span",null,k(_.$t("scene.scaleYShort")),1),pe(w("input",{"onUpdate:modelValue":E[44]||(E[44]=S=>I(o).scaleY=S),type:"number",min:"0.05",step:"0.05",class:"inp"},null,512),[[Je,I(o).scaleY,void 0,{number:!0}]])])]),w("label",eY,[w("span",null,k(_.$t("scene.closedPath")),1),pe(w("input",{"onUpdate:modelValue":E[45]||(E[45]=S=>I(o).closed=S),type:"checkbox"},null,512),[[_t,I(o).closed]])]),w("label",tY,[w("span",null,k(_.$t("scene.pathColor")),1),pe(w("input",{"onUpdate:modelValue":E[46]||(E[46]=S=>I(o).color=S),type:"color",class:"path-color"},null,512),[[Je,I(o).color]])]),w("div",iY,[w("span",null,k(_.$t("scene.pathHelp")),1),w("ul",null,[w("li",null,k(_.$t("scene.pathHelpItems.0")),1),w("li",null,k(_.$t("scene.pathHelpItems.1")),1),w("li",null,k(_.$t("scene.pathHelpItems.2")),1),w("li",null,k(_.$t("scene.pathHelpItems.3")),1),w("li",null,k(_.$t("scene.pathHelpItems.4")),1),w("li",null,k(_.$t("scene.pathHelpItems.5")),1),w("li",null,k(_.$t("scene.pathHelpItems.6")),1),w("li",null,k(_.$t("scene.pathHelpItems.7")),1),w("li",null,k(_.$t("scene.pathHelpItems.8")),1),w("li",null,k(_.$t("scene.pathHelpItems.9")),1)])]),w("label",nY,[w("span",null,k(_.$t("scene.applyPresetShape")),1),pe(w("select",{"onUpdate:modelValue":E[47]||(E[47]=S=>I(o).preset=S),class:"inp"},[w("option",sY,k(_.$t("scene.choosePreset")),1),w("option",rY,k(_.$t("scene.circle")),1),w("option",oY,k(_.$t("scene.square")),1),w("option",aY,k(_.$t("scene.polygon")),1),w("option",lY,k(_.$t("scene.star")),1)],512),[[St,I(o).preset]])]),w("button",{class:"path-action primary",onClick:E[48]||(E[48]=(...S)=>I(g)&&I(g)(...S))},k(_.$t("scene.applyPreset")),1),w("button",{class:"path-action",onClick:E[49]||(E[49]=(...S)=>I(v)&&I(v)(...S))},k(_.$t("scene.clearAnchors")),1)],64)):I(a)?(Q(),Pt(dV,{key:3,"spine-object":I(a)},null,8,["spine-object"])):(Q(),te("div",cY,k(_.$t("scene.panelHint")),1))],512),[[Fi,!I(l).scene]])]))}}),uY=li(hY,[["__scopeId","data-v-5573409f"]]),dY={class:"group"},fY={class:"caret"},mY=["title"],pY={class:"group-body"},gY={class:"segs"},vY={class:"segs stream-behavior-segs"},yY={key:2,class:"stream-loop-options"},bY={class:"loop-section-row"},xY={class:"switch-row"},wY=["checked"],SY={key:0,class:"loop-duration-control"},_Y={class:"switch-row loop-duration-toggle"},TY=["checked"],EY={class:"loop-section-duration"},CY=["value","aria-label"],MY={key:1},AY={key:2,class:"loop-auto-duration"},IY={class:"loop-section-row"},PY={class:"switch-row"},RY=["checked"],kY={key:0,class:"loop-duration-control"},FY={class:"switch-row loop-duration-toggle"},LY=["checked"],OY={class:"loop-section-duration"},$Y=["value","aria-label"],NY={key:1},DY={key:2,class:"loop-auto-duration"},BY={key:3,class:"modifier-hint stream-loop-hint"},UY={class:"group"},VY={class:"caret"},XY=["title"],YY={class:"group-body"},GY={class:"row"},HY={value:"point"},jY={value:"circle"},WY={value:"rect"},zY={value:"cone"},qY={value:"path"},KY={class:"row"},JY={value:0},ZY=["value","disabled"],QY={key:0,class:"row"},e6={value:"fixed"},t6={value:"random"},i6={class:"row"},n6={value:"fixed"},s6={value:"random"},r6={key:0,value:"radial"},o6={key:1,value:"path-normal"},a6={key:2,value:"path-tangent"},l6={key:6,class:"switch-row"},c6=qt({__name:"EmissionSection",setup(n){const{store:e,sys:t,automaticLoopDuration:i,loopDurationFrames:s,collapsed:r,toggle:o,setEmitMode:a,setLoopDurationFrames:c,setStreamBehavior:l,setLoopSection:h,setLoopSectionDuration:u,setLoopCustomDuration:d,resetModule:f,select:m,onShapeChange:p,onSpawnPathChange:g}=oo();return(v,b)=>(Q(),te(Me,null,[w("div",dY,[w("div",{class:"group-head",onClick:b[1]||(b[1]=y=>I(o)("emitMode"))},[w("span",fY,k(I(r).emitMode?"▸":"▾"),1),w("span",null,k(v.$t("emission.title")),1),w("button",{class:"group-reset",title:v.$t("emission.reset"),onClick:b[0]||(b[0]=tt(y=>I(f)("emitMode"),["stop"]))},k(v.$t("common.reset")),9,mY)]),pe(w("div",pY,[w("div",gY,[w("button",{class:Pe(["seg",{on:I(t).config.mode==="stream"}]),onClick:b[2]||(b[2]=y=>I(a)("stream"))},k(v.$t("emission.stream")),3),w("button",{class:Pe(["seg",{on:I(t).config.mode==="burst"}]),onClick:b[3]||(b[3]=y=>I(a)("burst"))},k(v.$t("emission.burst")),3)]),I(t).config.mode==="stream"?(Q(),te(Me,{key:0},[w("div",vY,[w("button",{class:Pe(["seg",{on:I(t).config.streamBehavior==="normal"}]),onClick:b[4]||(b[4]=y=>I(l)("normal"))},k(v.$t("emission.normalStream")),3),w("button",{class:Pe(["seg",{on:I(t).config.streamBehavior==="loop"}]),onClick:b[5]||(b[5]=y=>I(l)("loop"))},k(v.$t("emission.loopStream")),3)]),Te(Ue,{label:v.$t("emission.rate"),min:1,max:300,step:1,modelValue:I(t).config.rate,"onUpdate:modelValue":b[6]||(b[6]=y=>I(t).config.rate=y)},null,8,["label","modelValue"]),I(t).config.streamBehavior==="normal"?(Q(),Pt(Ue,{key:0,label:v.$t("emission.duration"),min:1/30,max:60,step:1/30,modelValue:I(t).config.duration,"onUpdate:modelValue":b[7]||(b[7]=y=>I(t).config.duration=y)},null,8,["label","modelValue"])):(Q(),Pt(Ue,{key:1,label:v.$t("emission.loopDuration"),min:1,max:1800,step:1,"model-value":I(s),"onUpdate:modelValue":I(c)},null,8,["label","model-value","onUpdate:modelValue"])),I(t).config.streamBehavior==="loop"?(Q(),te("div",yY,[w("div",bY,[w("label",xY,[w("input",{type:"checkbox",checked:I(t).config.generateLoopStartAnimation,onChange:b[8]||(b[8]=y=>I(h)("start",y))},null,40,wY),b[36]||(b[36]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(v.$t("emission.generateStart")),1)]),I(t).config.generateLoopStartAnimation?(Q(),te("div",SY,[w("label",_Y,[w("input",{type:"checkbox",checked:I(t).config.loopStartUseCustomDuration,onChange:b[9]||(b[9]=y=>I(d)("start",y))},null,40,TY),b[37]||(b[37]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(v.$t("emission.customDuration")),1)]),w("label",EY,[I(t).config.loopStartUseCustomDuration?(Q(),te("input",{key:0,value:I(t).config.loopStartDurationFrames,type:"number",min:"1",max:"1800",step:"1","aria-label":v.$t("emission.startLoopDuration"),onChange:b[10]||(b[10]=y=>I(u)("start",y))},null,40,CY)):_e("",!0),I(t).config.loopStartUseCustomDuration?(Q(),te("span",MY,"f")):(Q(),te("span",AY,k(v.$t("emission.auto",{frames:I(i)})),1))])])):_e("",!0)]),w("div",IY,[w("label",PY,[w("input",{type:"checkbox",checked:I(t).config.generateLoopEndAnimation,onChange:b[11]||(b[11]=y=>I(h)("end",y))},null,40,RY),b[38]||(b[38]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(v.$t("emission.generateEnd")),1)]),I(t).config.generateLoopEndAnimation?(Q(),te("div",kY,[w("label",FY,[w("input",{type:"checkbox",checked:I(t).config.loopEndUseCustomDuration,onChange:b[12]||(b[12]=y=>I(d)("end",y))},null,40,LY),b[39]||(b[39]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(v.$t("emission.customDuration")),1)]),w("label",OY,[I(t).config.loopEndUseCustomDuration?(Q(),te("input",{key:0,value:I(t).config.loopEndDurationFrames,type:"number",min:"1",max:"1800",step:"1","aria-label":v.$t("emission.endLoopDuration"),onChange:b[13]||(b[13]=y=>I(u)("end",y))},null,40,$Y)):_e("",!0),I(t).config.loopEndUseCustomDuration?(Q(),te("span",NY,"f")):(Q(),te("span",DY,k(v.$t("emission.auto",{frames:I(i)})),1))])])):_e("",!0)])])):_e("",!0),I(t).config.streamBehavior==="loop"?(Q(),te("div",BY,k(v.$t("emission.loopWarning")),1)):_e("",!0)],64)):(Q(),Pt(Ue,{key:1,label:v.$t("emission.burstCount"),min:1,max:1e3,step:1,modelValue:I(t).config.burstCount,"onUpdate:modelValue":b[14]||(b[14]=y=>I(t).config.burstCount=y)},null,8,["label","modelValue"])),Te(Ue,{label:v.$t("emission.delay"),min:0,max:5,step:.1,modelValue:I(t).config.delay,"onUpdate:modelValue":b[15]||(b[15]=y=>I(t).config.delay=y)},null,8,["label","modelValue"])],512),[[Fi,!I(r).emitMode]])]),w("div",UY,[w("div",{class:"group-head",onClick:b[17]||(b[17]=y=>I(o)("shape"))},[w("span",VY,k(I(r).shape?"▸":"▾"),1),w("span",null,k(v.$t("emission.shapeTitle")),1),w("button",{class:"group-reset",title:v.$t("emission.shapeReset"),onClick:b[16]||(b[16]=tt(y=>I(f)("shape"),["stop"]))},k(v.$t("common.reset")),9,XY)]),pe(w("div",YY,[w("label",GY,[w("span",null,k(v.$t("emission.shape")),1),pe(w("select",{"onUpdate:modelValue":b[18]||(b[18]=y=>I(t).config.shape=y),class:"inp",onChange:b[19]||(b[19]=(...y)=>I(p)&&I(p)(...y))},[w("option",HY,k(v.$t("emission.point")),1),w("option",jY,k(v.$t("emission.circle")),1),w("option",WY,k(v.$t("emission.rect")),1),w("option",zY,k(v.$t("emission.cone")),1),w("option",qY,k(v.$t("emission.path")),1)],544),[[St,I(t).config.shape]])]),I(t).config.shape==="circle"||I(t).config.shape==="cone"?(Q(),te(Me,{key:0},[Te(Ue,{label:I(t).config.shape==="cone"?v.$t("emission.innerDiameter"):v.$t("emission.innerRadius"),min:0,max:I(t).config.outerRadius,step:1,modelValue:I(t).config.innerRadius,"onUpdate:modelValue":b[20]||(b[20]=y=>I(t).config.innerRadius=y)},null,8,["label","max","modelValue"]),Te(Ue,{label:I(t).config.shape==="cone"?v.$t("emission.outerDiameter"):v.$t("emission.outerRadius"),min:I(t).config.innerRadius,max:300,step:1,modelValue:I(t).config.outerRadius,"onUpdate:modelValue":b[21]||(b[21]=y=>I(t).config.outerRadius=y)},null,8,["label","min","modelValue"])],64)):_e("",!0),I(t).config.shape==="cone"?(Q(),te(Me,{key:1},[Te(Ue,{label:v.$t("emission.coneDirection"),min:-360,max:360,step:1,modelValue:I(t).config.coneDirection,"onUpdate:modelValue":b[22]||(b[22]=y=>I(t).config.coneDirection=y)},null,8,["label","modelValue"]),Te(Ue,{label:v.$t("emission.coneAngle"),min:1,max:360,step:1,modelValue:I(t).config.coneAngle,"onUpdate:modelValue":b[23]||(b[23]=y=>I(t).config.coneAngle=y)},null,8,["label","modelValue"])],64)):I(t).config.shape==="rect"?(Q(),te(Me,{key:2},[Te(Ue,{label:v.$t("emission.innerWidth"),min:0,max:I(t).config.outerRectW,step:1,modelValue:I(t).config.innerRectW,"onUpdate:modelValue":b[24]||(b[24]=y=>I(t).config.innerRectW=y)},null,8,["label","max","modelValue"]),Te(Ue,{label:v.$t("emission.innerHeight"),min:0,max:I(t).config.outerRectH,step:1,modelValue:I(t).config.innerRectH,"onUpdate:modelValue":b[25]||(b[25]=y=>I(t).config.innerRectH=y)},null,8,["label","max","modelValue"]),Te(Ue,{label:v.$t("emission.outerWidth"),min:I(t).config.innerRectW,max:400,step:1,modelValue:I(t).config.outerRectW,"onUpdate:modelValue":b[26]||(b[26]=y=>I(t).config.outerRectW=y)},null,8,["label","min","modelValue"]),Te(Ue,{label:v.$t("emission.outerHeight"),min:I(t).config.innerRectH,max:400,step:1,modelValue:I(t).config.outerRectH,"onUpdate:modelValue":b[27]||(b[27]=y=>I(t).config.outerRectH=y)},null,8,["label","min","modelValue"])],64)):I(t).config.shape==="path"?(Q(),te(Me,{key:3},[w("label",KY,[w("span",null,k(v.$t("emission.selectPath")),1),pe(w("select",{"onUpdate:modelValue":b[28]||(b[28]=y=>I(t).config.spawnPathId=y),class:"inp",onChange:b[29]||(b[29]=(...y)=>I(g)&&I(g)(...y))},[w("option",JY,k(v.$t("emission.noPath")),1),(Q(!0),te(Me,null,It(I(e).paths,y=>(Q(),te("option",{key:y.id,value:y.id,disabled:!y.enabled},k(y.name),9,ZY))),128))],544),[[St,I(t).config.spawnPathId,void 0,{number:!0}]])]),I(t).config.spawnPathId>0?(Q(),te("label",QY,[w("span",null,k(v.$t("emission.birthDistribution")),1),pe(w("select",{"onUpdate:modelValue":b[30]||(b[30]=y=>I(t).config.spawnPathDistribution=y),class:"inp"},[w("option",e6,k(v.$t("emission.evenDistribution")),1),w("option",t6,k(v.$t("emission.randomDistribution")),1)],512),[[St,I(t).config.spawnPathDistribution]])])):_e("",!0)],64)):_e("",!0),b[41]||(b[41]=w("div",{class:"divider"},null,-1)),w("label",i6,[w("span",null,k(v.$t("emission.emissionAngle")),1),pe(w("select",{"onUpdate:modelValue":b[31]||(b[31]=y=>I(t).config.emissionAngleMode=y),class:"inp"},[w("option",n6,k(v.$t("common.fixed")),1),w("option",s6,k(v.$t("common.random")),1),I(t).config.shape==="circle"||I(t).config.shape==="rect"||I(t).config.shape==="cone"?(Q(),te("option",r6,k(v.$t("emission.radial")),1)):_e("",!0),I(t).config.shape==="path"&&I(t).config.spawnPathId>0?(Q(),te("option",o6,k(v.$t("emission.pathNormal")),1)):_e("",!0),I(t).config.shape==="path"&&I(t).config.spawnPathId>0?(Q(),te("option",a6,k(v.$t("emission.pathTangent")),1)):_e("",!0)],512),[[St,I(t).config.emissionAngleMode]])]),I(t).config.emissionAngleMode==="fixed"?(Q(),Pt(Ue,{key:4,label:v.$t("emission.fixedAngle"),min:-360,max:360,step:1,modelValue:I(t).config.direction,"onUpdate:modelValue":b[32]||(b[32]=y=>I(t).config.direction=y)},null,8,["label","modelValue"])):I(t).config.emissionAngleMode==="random"?(Q(),te(Me,{key:5},[Te(Ue,{label:v.$t("emission.baseAngle"),min:-360,max:360,step:1,modelValue:I(t).config.direction,"onUpdate:modelValue":b[33]||(b[33]=y=>I(t).config.direction=y)},null,8,["label","modelValue"]),Te(Ue,{label:v.$t("emission.randomRange"),min:0,max:360,step:1,modelValue:I(t).config.spread,"onUpdate:modelValue":b[34]||(b[34]=y=>I(t).config.spread=y)},null,8,["label","modelValue"])],64)):_e("",!0),I(t).config.shape!=="point"?(Q(),te("label",l6,[pe(w("input",{type:"checkbox","onUpdate:modelValue":b[35]||(b[35]=y=>I(t).config.showShape=y)},null,512),[[_t,I(t).config.showShape]]),b[40]||(b[40]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(v.$t("emission.showShape")),1)])):_e("",!0)],512),[[Fi,!I(r).shape]])])],64))}}),h6=li(c6,[["__scopeId","data-v-dec7323c"]]),u6={class:"pac"},d6={class:"pac-head"},f6={class:"pac-label"},m6={key:0,class:"pac-modes"},p6=["onClick"],g6={class:"pac-range"},v6={class:"pac-curve"},y6={class:"pac-axis"},b6=qt({__name:"ParticleAttributeControl",props:{label:{},mode:{},valueMin:{},valueMax:{},curve:{},defaultCurve:{default:()=>[{x:0,y:0},{x:1,y:1}]},min:{},max:{},step:{default:1},allowDirection:{type:Boolean,default:!1},allowCurve:{type:Boolean,default:!0},showModes:{type:Boolean,default:!0},curveLabel:{default:""}},emits:["update:mode","update:valueMin","update:valueMax","update:curve"],setup(n){const e=n,{t}=fn(),i=Fe(()=>{const s=[{label:t("common.fixed"),value:"fixed"},{label:t("common.random"),value:"random"}];return e.allowCurve&&s.push({label:t("common.curve"),value:"curve"}),e.allowDirection&&s.push({label:t("attributeControl.direction"),value:"direction"}),s});return(s,r)=>(Q(),te("div",u6,[w("div",d6,[w("span",f6,k(n.label),1),n.showModes?(Q(),te("div",m6,[(Q(!0),te(Me,null,It(i.value,o=>(Q(),te("button",{key:o.value,class:Pe(["pac-mode",{on:n.mode===o.value}]),onClick:a=>s.$emit("update:mode",o.value)},k(o.label),11,p6))),128))])):_e("",!0)]),n.mode==="fixed"||n.mode==="direction"?(Q(),Pt(Ue,{key:0,label:n.mode==="direction"?s.$t("attributeControl.angleOffset"):s.$t("attributeControl.value"),min:n.min,max:n.max,step:n.step,"model-value":n.valueMin,"onUpdate:modelValue":r[0]||(r[0]=o=>s.$emit("update:valueMin",o))},null,8,["label","min","max","step","model-value"])):n.mode==="random"?(Q(),te(Me,{key:1},[Te(Ue,{label:s.$t("attributeControl.lower"),min:n.min,max:n.max,step:n.step,"model-value":n.valueMin,"onUpdate:modelValue":r[1]||(r[1]=o=>s.$emit("update:valueMin",o))},null,8,["label","min","max","step","model-value"]),Te(Ue,{label:s.$t("attributeControl.upper"),min:n.min,max:n.max,step:n.step,"model-value":n.valueMax,"onUpdate:modelValue":r[2]||(r[2]=o=>s.$emit("update:valueMax",o))},null,8,["label","min","max","step","model-value"])],64)):(Q(),te(Me,{key:2},[w("div",g6,[Te(Ue,{label:s.$t("attributeControl.rangeLower"),min:n.min,max:n.max,step:n.step,"model-value":n.valueMin,"onUpdate:modelValue":r[3]||(r[3]=o=>s.$emit("update:valueMin",o))},null,8,["label","min","max","step","model-value"]),Te(Ue,{label:s.$t("attributeControl.rangeUpper"),min:n.min,max:n.max,step:n.step,"model-value":n.valueMax,"onUpdate:modelValue":r[4]||(r[4]=o=>s.$emit("update:valueMax",o))},null,8,["label","min","max","step","model-value"])]),w("div",v6,[Te(bs,{"model-value":n.curve,"default-value":n.defaultCurve,"onUpdate:modelValue":r[5]||(r[5]=o=>s.$emit("update:curve",o))},null,8,["model-value","default-value"]),w("div",y6,[r[6]||(r[6]=w("span",null,"0",-1)),w("span",null,k(n.curveLabel||s.$t("attributeControl.curveInput")),1),r[7]||(r[7]=w("span",null,"1",-1))])])],64))]))}}),Us=li(b6,[["__scopeId","data-v-a3a8dde3"]]),x6={class:"group"},w6={class:"caret"},S6=["title"],_6={class:"group-body attr-body"},T6={class:"attr-section-title"},E6={class:"attr-axis-head"},C6={class:"axis-modes"},M6={class:"attr-section-title life-title"},A6={class:"life-item"},I6={class:"switch-row"},P6={class:"life-item"},R6={class:"switch-row"},k6={class:"axis-modes life-axis"},F6={class:"life-item"},L6={class:"switch-row"},O6=qt({__name:"ParticleAttributesSection",setup(n){const{sys:e,collapsed:t,toggle:i,resetModule:s,setSpeedOverLifeMode:r,prepareScaleOverLifeCurve:o,setScaleOverLifeMode:a,LINEAR_CURVE:c,FLAT_CURVE:l}=oo();return(h,u)=>(Q(),te("div",x6,[w("div",{class:"group-head",onClick:u[1]||(u[1]=d=>I(i)("attr"))},[w("span",w6,k(I(t).attr?"▸":"▾"),1),w("span",null,k(h.$t("attributes.title")),1),w("button",{class:"group-reset",title:h.$t("attributes.reset"),onClick:u[0]||(u[0]=tt(d=>I(s)("attr"),["stop"]))},k(h.$t("common.reset")),9,S6)]),pe(w("div",_6,[w("div",T6,k(h.$t("attributes.initialParams")),1),Te(Us,{label:h.$t("attributes.initialLife"),"allow-curve":!1,mode:I(e).config.lifeMode,"onUpdate:mode":u[2]||(u[2]=d=>I(e).config.lifeMode=d),"value-min":I(e).config.lifeMin,"onUpdate:valueMin":u[3]||(u[3]=d=>I(e).config.lifeMin=d),"value-max":I(e).config.lifeMax,"onUpdate:valueMax":u[4]||(u[4]=d=>I(e).config.lifeMax=d),curve:I(e).config.lifeCurve,"onUpdate:curve":u[5]||(u[5]=d=>I(e).config.lifeCurve=d),min:.1,max:10,step:.1,"curve-label":h.$t("attributes.randomSample")},null,8,["label","mode","value-min","value-max","curve","curve-label"]),Te(Us,{label:h.$t("attributes.initialSpeed"),"allow-curve":!1,mode:I(e).config.speedMode,"onUpdate:mode":u[6]||(u[6]=d=>I(e).config.speedMode=d),"value-min":I(e).config.speedMin,"onUpdate:valueMin":u[7]||(u[7]=d=>I(e).config.speedMin=d),"value-max":I(e).config.speedMax,"onUpdate:valueMax":u[8]||(u[8]=d=>I(e).config.speedMax=d),curve:I(e).config.speedCurve,"onUpdate:curve":u[9]||(u[9]=d=>I(e).config.speedCurve=d),min:0,max:1e3,step:1,"curve-label":h.$t("attributes.randomSample")},null,8,["label","mode","value-min","value-max","curve","curve-label"]),w("div",E6,[w("span",null,k(h.$t("attributes.initialScale")),1),w("div",C6,[w("button",{class:Pe(["axis-mode",{on:I(e).config.scaleAxisMode==="uniform"}]),onClick:u[10]||(u[10]=d=>I(e).config.scaleAxisMode="uniform")},k(h.$t("attributes.uniform")),3),w("button",{class:Pe(["axis-mode",{on:I(e).config.scaleAxisMode==="separate"}]),onClick:u[11]||(u[11]=d=>I(e).config.scaleAxisMode="separate")},k(h.$t("attributes.separateXY")),3)])]),Te(Us,{label:I(e).config.scaleAxisMode==="uniform"?h.$t("attributes.initialScale"):h.$t("attributes.scaleX"),"allow-curve":!1,mode:I(e).config.scaleMode,"onUpdate:mode":u[12]||(u[12]=d=>I(e).config.scaleMode=d),"value-min":I(e).config.scaleMin,"onUpdate:valueMin":u[13]||(u[13]=d=>I(e).config.scaleMin=d),"value-max":I(e).config.scaleMax,"onUpdate:valueMax":u[14]||(u[14]=d=>I(e).config.scaleMax=d),curve:I(e).config.scaleCurve,"onUpdate:curve":u[15]||(u[15]=d=>I(e).config.scaleCurve=d),min:0,max:5,step:.05,"curve-label":h.$t("attributes.randomSample")},null,8,["label","mode","value-min","value-max","curve","curve-label"]),I(e).config.scaleAxisMode==="separate"?(Q(),Pt(Us,{key:0,label:h.$t("attributes.scaleY"),"show-modes":!1,"allow-curve":!1,mode:I(e).config.scaleMode,"onUpdate:mode":u[16]||(u[16]=d=>I(e).config.scaleMode=d),"value-min":I(e).config.scaleYMin,"onUpdate:valueMin":u[17]||(u[17]=d=>I(e).config.scaleYMin=d),"value-max":I(e).config.scaleYMax,"onUpdate:valueMax":u[18]||(u[18]=d=>I(e).config.scaleYMax=d),curve:I(e).config.scaleYCurve,"onUpdate:curve":u[19]||(u[19]=d=>I(e).config.scaleYCurve=d),min:0,max:5,step:.05,"curve-label":h.$t("attributes.randomSample")},null,8,["label","mode","value-min","value-max","curve","curve-label"])):_e("",!0),Te(Us,{label:h.$t("attributes.initialRotation"),"allow-direction":"","allow-curve":!1,mode:I(e).config.initialRotationMode,"onUpdate:mode":u[20]||(u[20]=d=>I(e).config.initialRotationMode=d),"value-min":I(e).config.initialRotationMin,"onUpdate:valueMin":u[21]||(u[21]=d=>I(e).config.initialRotationMin=d),"value-max":I(e).config.initialRotationMax,"onUpdate:valueMax":u[22]||(u[22]=d=>I(e).config.initialRotationMax=d),curve:I(e).config.initialRotationCurve,"onUpdate:curve":u[23]||(u[23]=d=>I(e).config.initialRotationCurve=d),min:-360,max:360,step:1,"curve-label":h.$t("attributes.randomSample")},null,8,["label","mode","value-min","value-max","curve","curve-label"]),w("div",M6,k(h.$t("attributes.lifecycleTitle")),1),w("div",A6,[w("label",I6,[pe(w("input",{type:"checkbox","onUpdate:modelValue":u[24]||(u[24]=d=>I(e).config.speedOverLifeEnabled=d)},null,512),[[_t,I(e).config.speedOverLifeEnabled]]),u[44]||(u[44]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(h.$t("attributes.speedOverLife")),1)]),I(e).config.speedOverLifeEnabled?(Q(),Pt(Us,{key:0,label:h.$t("attributes.speedMultiplier"),mode:I(e).config.speedOverLifeMode,"onUpdate:mode":I(r),"value-min":I(e).config.speedOverLifeMin,"onUpdate:valueMin":u[25]||(u[25]=d=>I(e).config.speedOverLifeMin=d),"value-max":I(e).config.speedOverLifeMax,"onUpdate:valueMax":u[26]||(u[26]=d=>I(e).config.speedOverLifeMax=d),curve:I(e).config.speedOverLifeCurve,"onUpdate:curve":u[27]||(u[27]=d=>I(e).config.speedOverLifeCurve=d),"default-curve":I(l),min:0,max:3,step:.05,"curve-label":h.$t("attributes.lifeTo")},null,8,["label","mode","onUpdate:mode","value-min","value-max","curve","default-curve","curve-label"])):_e("",!0)]),w("div",P6,[w("label",R6,[pe(w("input",{type:"checkbox","onUpdate:modelValue":u[28]||(u[28]=d=>I(e).config.scaleOverLifeEnabled=d),onChange:u[29]||(u[29]=(...d)=>I(o)&&I(o)(...d))},null,544),[[_t,I(e).config.scaleOverLifeEnabled]]),u[45]||(u[45]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(h.$t("attributes.scaleOverLife")),1)]),I(e).config.scaleOverLifeEnabled?(Q(),te(Me,{key:0},[w("div",k6,[w("button",{class:Pe(["axis-mode",{on:I(e).config.scaleOverLifeAxisMode==="uniform"}]),onClick:u[30]||(u[30]=d=>I(e).config.scaleOverLifeAxisMode="uniform")},k(h.$t("attributes.uniform")),3),w("button",{class:Pe(["axis-mode",{on:I(e).config.scaleOverLifeAxisMode==="separate"}]),onClick:u[31]||(u[31]=d=>I(e).config.scaleOverLifeAxisMode="separate")},k(h.$t("attributes.separateXY")),3)]),Te(Us,{label:I(e).config.scaleOverLifeAxisMode==="uniform"?h.$t("attributes.scaleMultiplier"):h.$t("attributes.multiplierX"),mode:I(e).config.scaleOverLifeMode,"onUpdate:mode":I(a),"value-min":I(e).config.scaleOverLifeMin,"onUpdate:valueMin":u[32]||(u[32]=d=>I(e).config.scaleOverLifeMin=d),"value-max":I(e).config.scaleOverLifeMax,"onUpdate:valueMax":u[33]||(u[33]=d=>I(e).config.scaleOverLifeMax=d),curve:I(e).config.scaleOverLifeCurve,"onUpdate:curve":u[34]||(u[34]=d=>I(e).config.scaleOverLifeCurve=d),"default-curve":I(l),min:0,max:3,step:.05,"curve-label":h.$t("attributes.lifeTo")},null,8,["label","mode","onUpdate:mode","value-min","value-max","curve","default-curve","curve-label"]),I(e).config.scaleOverLifeAxisMode==="separate"?(Q(),Pt(Us,{key:0,label:h.$t("attributes.multiplierY"),"show-modes":!1,mode:I(e).config.scaleOverLifeMode,"onUpdate:mode":u[35]||(u[35]=d=>I(e).config.scaleOverLifeMode=d),"value-min":I(e).config.scaleYOverLifeMin,"onUpdate:valueMin":u[36]||(u[36]=d=>I(e).config.scaleYOverLifeMin=d),"value-max":I(e).config.scaleYOverLifeMax,"onUpdate:valueMax":u[37]||(u[37]=d=>I(e).config.scaleYOverLifeMax=d),curve:I(e).config.scaleYOverLifeCurve,"onUpdate:curve":u[38]||(u[38]=d=>I(e).config.scaleYOverLifeCurve=d),"default-curve":I(l),min:0,max:3,step:.05,"curve-label":h.$t("attributes.lifeTo")},null,8,["label","mode","value-min","value-max","curve","default-curve","curve-label"])):_e("",!0)],64)):_e("",!0)]),w("div",F6,[w("label",L6,[pe(w("input",{type:"checkbox","onUpdate:modelValue":u[39]||(u[39]=d=>I(e).config.rotationOverLifeEnabled=d)},null,512),[[_t,I(e).config.rotationOverLifeEnabled]]),u[46]||(u[46]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(h.$t("attributes.rotationOverLife")),1)]),I(e).config.rotationOverLifeEnabled?(Q(),Pt(Us,{key:0,label:h.$t("attributes.rotationSpeed"),mode:I(e).config.rotationOverLifeMode,"onUpdate:mode":u[40]||(u[40]=d=>I(e).config.rotationOverLifeMode=d),"value-min":I(e).config.rotationSpeedMin,"onUpdate:valueMin":u[41]||(u[41]=d=>I(e).config.rotationSpeedMin=d),"value-max":I(e).config.rotationSpeedMax,"onUpdate:valueMax":u[42]||(u[42]=d=>I(e).config.rotationSpeedMax=d),curve:I(e).config.rotationOverLifeCurve,"onUpdate:curve":u[43]||(u[43]=d=>I(e).config.rotationOverLifeCurve=d),"default-curve":I(c),min:-720,max:720,step:10,"curve-label":h.$t("attributes.lifeTo")},null,8,["label","mode","value-min","value-max","curve","default-curve","curve-label"])):_e("",!0)])],512),[[Fi,!I(t).attr]])]))}}),$6=li(O6,[["__scopeId","data-v-3bbf0b5e"]]),N6={class:"gradient-editor"},D6=["title"],B6=["title","onClick","onDblclick","onPointerdown"],U6={key:0,class:"gradient-controls"},V6=["value","aria-label"],X6=["value","aria-label"],Y6={class:"gradient-position"},G6=["value","aria-label"],H6=["title"],j6=["title","disabled"],W6={class:"gradient-hint"},z6=qt({__name:"ColorGradientEditor",props:{modelValue:{}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,i=e,s=De(null),r=De(0),o=Fe(()=>t.modelValue[r.value]||null),a=Fe(()=>[...t.modelValue].sort((C,M)=>C.position-M.position)),c=Fe(()=>{const C=a.value;return C.length?`linear-gradient(90deg, ${C.map(M=>`${M.color} ${l(M.position)*100}%`).join(", ")})`:"#ffffff"});ei(()=>t.modelValue.length,C=>{r.value>=C&&(r.value=Math.max(0,C-1))});function l(C){return Math.min(1,Math.max(0,Number(C)||0))}function h(){return t.modelValue.map(C=>({position:l(C.position),color:C.color}))}function u(C,M){const P=h();P[C]&&(P[C]={...P[C],...M},i("update:modelValue",P))}function d(C){u(r.value,{color:C.target.value})}function f(C){var A;const M=C.target,P=S(M.value,((A=o.value)==null?void 0:A.color)||"#ffffff");M.value=P,u(r.value,{color:P})}function m(C){const M=C.target;f(C),M.blur()}function p(C){const M=Number(C.target.value);Number.isFinite(M)&&u(r.value,{position:l(M/100)})}function g(C){const M=h();M.push({position:l(C),color:_(M,C)}),r.value=M.length-1,i("update:modelValue",M)}function v(C){if(!s.value)return;const M=s.value.getBoundingClientRect();g((C.clientX-M.left)/Math.max(1,M.width))}function b(){const C=a.value;let M=.5;if(C.length>1){let P=-1;for(let A=0;A<C.length-1;A++){const R=C[A+1].position-C[A].position;R>P&&(P=R,M=(C[A].position+C[A+1].position)/2)}}g(M)}function y(C){if(t.modelValue.length<=2||C<0)return;const M=h().filter((P,A)=>A!==C);r.value=Math.min(C,M.length-1),i("update:modelValue",M)}function x(C,M){if(!s.value)return;r.value=M;const P=R=>{const B=s.value.getBoundingClientRect();u(M,{position:l((R.clientX-B.left)/Math.max(1,B.width))})},A=()=>{window.removeEventListener("pointermove",P),window.removeEventListener("pointerup",A),window.removeEventListener("pointercancel",A)};window.addEventListener("pointermove",P),window.addEventListener("pointerup",A),window.addEventListener("pointercancel",A),C.preventDefault()}function _(C,M){const P=[...C].sort((A,R)=>A.position-R.position);if(!P.length)return"#ffffff";if(M<=P[0].position)return P[0].color;if(M>=P[P.length-1].position)return P[P.length-1].color;for(let A=0;A<P.length-1;A++){const R=P[A],B=P[A+1];if(M<R.position||M>B.position)continue;const O=(M-R.position)/Math.max(1e-4,B.position-R.position);return E(R.color,B.color,O)}return P[P.length-1].color}function E(C,M,P){const A=W=>{const V=parseInt(W.replace("#","").padEnd(6,"0").slice(0,6),16);return[V>>16&255,V>>8&255,V&255]},R=A(C),B=A(M),O=W=>Math.round(R[W]+(B[W]-R[W])*P);return`#${[O(0),O(1),O(2)].map(W=>W.toString(16).padStart(2,"0")).join("")}`}function S(C,M){let P=C.trim().replace(/^#/,"");return/^[0-9a-f]{3}$/i.test(P)&&(P=P.split("").map(A=>A+A).join("")),/^[0-9a-f]{6}$/i.test(P)?`#${P.toLowerCase()}`:M}return(C,M)=>(Q(),te("div",N6,[w("div",{ref_key:"bar",ref:s,class:"gradient-bar",style:Vt({background:c.value}),title:C.$t("gradient.addTitle"),onDblclick:v},[(Q(!0),te(Me,null,It(n.modelValue,(P,A)=>(Q(),te("button",{key:A,type:"button",class:Pe(["gradient-stop",{selected:A===r.value}]),style:Vt({left:`${l(P.position)*100}%`,"--stop-color":P.color}),title:`${Math.round(l(P.position)*100)}% · ${P.color}`,onClick:tt(R=>r.value=A,["stop"]),onDblclick:tt(R=>y(A),["stop"]),onPointerdown:tt(R=>x(R,A),["stop"])},null,46,B6))),128))],44,D6),o.value?(Q(),te("div",U6,[w("input",{type:"color",class:"gradient-color",value:o.value.color,"aria-label":C.$t("gradient.color"),onInput:d},null,40,V6),w("input",{type:"text",class:"gradient-hex-input",value:o.value.color,"aria-label":C.$t("gradient.colorValue"),spellcheck:"false",onChange:f,onKeydown:Wr(m,["enter"])},null,40,X6),w("label",Y6,[w("input",{type:"number",min:"0",max:"100",step:"1",value:Math.round(l(o.value.position)*100),"aria-label":C.$t("gradient.position"),onInput:p},null,40,G6),M[1]||(M[1]=w("span",null,"%",-1))]),w("button",{type:"button",class:"gradient-action",title:C.$t("gradient.addMiddle"),onClick:b},"+",8,H6),w("button",{type:"button",class:"gradient-action danger",title:C.$t("gradient.delete"),disabled:n.modelValue.length<=2,onClick:M[0]||(M[0]=P=>y(r.value))},"×",8,j6)])):_e("",!0),w("div",W6,k(C.$t("gradient.hint")),1)]))}}),RE=li(z6,[["__scopeId","data-v-cb6cfaf8"]]),q6={class:"pivot-toolbar"},K6={class:"pivot-hint"},J6={class:"pivot-zoom"},Z6=["disabled","title"],Q6=["disabled","title"],eG=["title"],tG=["title"],iG=["src","alt"],nG={key:2,class:"pivot-empty"},sG={class:"pivot-bottom"},rG={class:"pivot-card"},oG={class:"pivot-presets"},aG=["title","aria-label","onClick"],lG={class:"pivot-card"},cG={class:"pivot-card-head"},hG={class:"pivot-coords"},uG=["value"],dG=["value"],fG={class:"pivot-card-head pivot-rotate-head"},mG={class:"pivot-rotate-state"},pG={class:"pivot-rotate-body"},gG={class:"pivot-rotate-modes"},vG={class:"pivot-rotate-preview"},yG=["src","alt"],wm=1e3,bG=qt({__name:"PivotEditor",props:{previewUrl:{},anchorX:{},anchorY:{},large:{type:Boolean,default:!1}},emits:["update:anchorX","update:anchorY","fullscreen"],setup(n,{emit:e}){const t=n,i=e,{t:s}=fn(),r=Fe(()=>[{icon:"↖",label:s("pivot.topLeft"),x:0,y:0},{icon:"↑",label:s("pivot.top"),x:50,y:0},{icon:"↗",label:s("pivot.topRight"),x:100,y:0},{icon:"←",label:s("pivot.left"),x:0,y:50},{icon:"◯",label:s("pivot.center"),x:50,y:50},{icon:"→",label:s("pivot.right"),x:100,y:50},{icon:"↙",label:s("pivot.bottomLeft"),x:0,y:100},{icon:"↓",label:s("pivot.bottom"),x:50,y:100},{icon:"↘",label:s("pivot.bottomRight"),x:100,y:100}]),o=De(null),a=De(null),c=De({w:0,h:0}),l=De({w:1,h:1}),h=De(100),u=De({x:0,y:0}),d=De(!1),f=De("static");let m=null;const p=L=>Math.min(wm,Math.max(-wm,Number.isFinite(L)?L:0)),g=Fe(()=>p(t.anchorX*100).toFixed(1)),v=Fe(()=>p(t.anchorY*100).toFixed(1));function b(L,N){const F=l.value.w/Math.max(1,l.value.h);let D=L,X=D/F;return X>N&&(X=N,D=X*F),{w:Math.max(1,D),h:Math.max(1,X)}}const y=Fe(()=>{const L=t.large?26:12,N=Math.max(1,c.value.w-L*2),F=Math.max(1,c.value.h-L*2);return b(N,F)}),x=Fe(()=>({width:`${y.value.w}px`,height:`${y.value.h}px`,transform:`translate(${u.value.x}px, ${u.value.y}px) scale(${h.value/100})`})),_=Fe(()=>{const L=h.value/100;return{x:c.value.w/2+u.value.x+(p(t.anchorX*100)/100-.5)*y.value.w*L,y:c.value.h/2+u.value.y+(p(t.anchorY*100)/100-.5)*y.value.h*L}}),E=Fe(()=>{const L=t.large?128:72,N=b(L,L);return{width:`${N.w}px`,height:`${N.h}px`,transformOrigin:`${p(t.anchorX*100)}% ${p(t.anchorY*100)}%`}});function S(L,N){const F=wm/100;i("update:anchorX",Math.min(F,Math.max(-F,Number.isFinite(L)?L:0))),i("update:anchorY",Math.min(F,Math.max(-F,Number.isFinite(N)?N:0)))}function C(L){const N=a.value;if(!N)return;const F=N.getBoundingClientRect();F.width<=0||F.height<=0||S((L.clientX-F.left)/F.width,(L.clientY-F.top)/F.height)}function M(L){if(!t.previewUrl)return;if(L.button===2){P(L);return}if(L.button!==0)return;L.preventDefault(),C(L);const N=D=>C(D),F=()=>{window.removeEventListener("pointermove",N),window.removeEventListener("pointerup",F),window.removeEventListener("pointercancel",F)};window.addEventListener("pointermove",N),window.addEventListener("pointerup",F),window.addEventListener("pointercancel",F)}function P(L){L.preventDefault(),d.value=!0;const N=L.clientX,F=L.clientY,D=u.value.x,X=u.value.y,G=J=>{u.value={x:D+J.clientX-N,y:X+J.clientY-F}},K=()=>{d.value=!1,window.removeEventListener("pointermove",G),window.removeEventListener("pointerup",K),window.removeEventListener("pointercancel",K)};window.addEventListener("pointermove",G),window.addEventListener("pointerup",K),window.addEventListener("pointercancel",K)}function A(L){const N=L.deltaY<0?1.12:.8928571428571428,F=Math.min(400,Math.max(100,Math.round(h.value*N)));if(F===h.value)return;const D=o.value;if(!D){h.value=F;return}const X=D.getBoundingClientRect(),G=L.clientX-X.left,K=L.clientY-X.top,J=F/h.value;u.value={x:u.value.x+(G-X.width/2-u.value.x)*(1-J),y:u.value.y+(K-X.height/2-u.value.y)*(1-J)},h.value=F}function R(L){const N=L.target;l.value={w:N.naturalWidth||1,h:N.naturalHeight||1}}function B(L){h.value=Math.min(400,Math.max(100,h.value+L))}function O(){S(.5,.5)}function W(L){S(L.x/100,L.y/100)}function V(L){return Math.abs(p(t.anchorX*100)-L.x)<.05&&Math.abs(p(t.anchorY*100)-L.y)<.05}function Y(L,N){const F=p(Number(N.target.value));i(L==="x"?"update:anchorX":"update:anchorY",F/100)}return ei(()=>t.previewUrl,()=>{l.value={w:1,h:1},u.value={x:0,y:0},h.value=100}),Sn(()=>{o.value&&(m=new ResizeObserver(L=>{var F;const N=(F=L[0])==null?void 0:F.contentRect;N&&(c.value={w:N.width,h:N.height})}),m.observe(o.value))}),eo(()=>{m==null||m.disconnect(),m=null}),(L,N)=>(Q(),te("div",{class:Pe(["pivot-editor",{"pivot-large":n.large}])},[w("div",q6,[w("div",K6,[N[9]||(N[9]=w("span",{class:"pivot-hint-icon"},"⊕",-1)),w("span",null,k(L.$t("pivot.title")),1)]),w("div",J6,[w("button",{type:"button",disabled:h.value<=100,title:L.$t("pivot.zoomOut"),onClick:N[0]||(N[0]=F=>B(-25))},"−",8,Z6),w("span",null,k(h.value)+"%",1),w("button",{type:"button",disabled:h.value>=400,title:L.$t("pivot.zoomIn"),onClick:N[1]||(N[1]=F=>B(25))},"+",8,Q6)]),n.large?_e("",!0):(Q(),te("button",{key:0,type:"button",class:"pivot-expand",title:L.$t("pivot.expand"),onClick:N[2]||(N[2]=F=>L.$emit("fullscreen"))},"⤢",8,eG))]),w("div",{ref_key:"stageRef",ref:o,class:Pe(["pivot-stage",{panning:d.value}]),title:L.$t("pivot.interaction"),onPointerdown:M,onWheel:tt(A,["prevent"]),onContextmenu:N[3]||(N[3]=tt(()=>{},["prevent"]))},[n.previewUrl?(Q(),te("div",{key:0,ref_key:"boxRef",ref:a,class:"pivot-box",style:Vt(x.value)},[w("img",{src:n.previewUrl,alt:L.$t("pivot.previewAlt"),draggable:"false",onLoad:R},null,40,iG)],4)):_e("",!0),n.previewUrl?(Q(),te(Me,{key:1},[w("div",{class:"pivot-cross vertical",style:Vt({left:`${_.value.x}px`})},null,4),w("div",{class:"pivot-cross horizontal",style:Vt({top:`${_.value.y}px`})},null,4),w("div",{class:"pivot-marker",style:Vt({left:`${_.value.x}px`,top:`${_.value.y}px`})},null,4),w("div",{class:"pivot-badge",style:Vt({left:`${_.value.x}px`,top:`${_.value.y}px`})},"X: "+k(g.value)+"% | Y: "+k(v.value)+"%",5)],64)):(Q(),te("div",nG,k(L.$t("pivot.noImage")),1))],42,tG),w("div",sG,[w("div",rG,[w("div",oG,[(Q(!0),te(Me,null,It(r.value,F=>(Q(),te("button",{key:F.label,type:"button",class:Pe(["pivot-preset",{on:V(F)}]),title:`${F.label}(${F.x}%, ${F.y}%)`,"aria-label":F.label,onClick:D=>W(F)},k(F.icon),11,aG))),128))]),w("button",{type:"button",class:"pivot-reset",onClick:O},"↺ "+k(L.$t("pivot.resetCenter")),1)]),w("div",lG,[w("div",cG,[w("span",null,[N[10]||(N[10]=w("span",{class:"pivot-card-icon"},"◎",-1)),yt(" "+k(L.$t("pivot.coordinates")),1)])]),w("div",hG,[w("label",null,[N[11]||(N[11]=yt("X: ",-1)),w("input",{type:"number",min:"-1000",max:"1000",step:"0.1",value:g.value,onInput:N[4]||(N[4]=F=>Y("x",F))},null,40,uG),N[12]||(N[12]=w("span",null,"%",-1))]),w("label",null,[N[13]||(N[13]=yt("Y: ",-1)),w("input",{type:"number",min:"-1000",max:"1000",step:"0.1",value:v.value,onInput:N[5]||(N[5]=F=>Y("y",F))},null,40,dG),N[14]||(N[14]=w("span",null,"%",-1))])]),n.large?(Q(),te(Me,{key:0},[w("div",fG,[w("span",null,[N[15]||(N[15]=w("span",{class:"pivot-card-icon"},"✥",-1)),yt(" "+k(L.$t("pivot.rotationTest")),1)]),w("span",mG,k(f.value==="static"?L.$t("pivot.static"):f.value==="spin"?L.$t("pivot.spin"):L.$t("pivot.swing")),1)]),w("div",pG,[w("div",gG,[w("button",{type:"button",class:Pe({on:f.value==="static"}),onClick:N[6]||(N[6]=F=>f.value="static")},k(L.$t("pivot.static")),3),w("button",{type:"button",class:Pe({on:f.value==="spin"}),onClick:N[7]||(N[7]=F=>f.value="spin")},"↻ "+k(L.$t("pivot.spin")),3),w("button",{type:"button",class:Pe({on:f.value==="swing"}),onClick:N[8]||(N[8]=F=>f.value="swing")},"⇄ "+k(L.$t("pivot.swing")),3)]),w("div",vG,[n.previewUrl?(Q(),te("img",{key:0,src:n.previewUrl,alt:L.$t("pivot.rotationAlt"),draggable:"false",class:Pe(f.value),style:Vt(E.value)},null,14,yG)):_e("",!0)])])],64)):_e("",!0)])])],2))}}),A1=li(bG,[["__scopeId","data-v-a5622844"]]),xG={class:"image-card"},wG={class:"imgrow"},SG=["title"],_G=["src","alt"],TG={key:1,viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"#8a93bb","stroke-width":"1.6"},EG={class:"img-fields"},CG={key:0,class:"row"},MG={class:"row"},AG=["placeholder"],IG={class:"img-actions"},PG=["title"],RG=["title","disabled"],kG={class:"thumb-note"},FG={key:0,class:"row"},LG={value:"fixed"},OG={value:"sequence"},$G={class:"row"},NG={value:"once-hide"},DG={value:"once-hold"},BG={value:"loop-forward"},UG={value:"loop-reverse"},VG={class:"row"},XG={class:"sequence-note"},YG={class:"resource-weight-row"},GG=["disabled","title"],HG={key:0,viewBox:"0 0 24 24","aria-hidden":"true"},jG={key:1,viewBox:"0 0 24 24","aria-hidden":"true"},WG={key:2,class:"pivot-toggle-row"},zG={class:"pivot-toggle-text"},qG={class:"pivot-toggle-title"},KG=["title"],JG=["title"],ZG=["aria-label"],QG={class:"pivot-modal-head"},eH={class:"pivot-modal-info"},tH={class:"pivot-modal-title"},iH={class:"pivot-modal-badge"},nH={class:"pivot-modal-desc"},sH=["title"],rH={class:"pivot-modal-hint"},oH={class:"pivot-modal-actions"},I1="SpineParticle.PivotPanels.v1",aH=qt({__name:"ImageResourceCard",props:{resource:{},resourceCount:{},defaultFile:{},namePlaceholder:{default:"particle"},showFolder:{type:Boolean,default:!0},supportsSequence:{type:Boolean,default:!1},pivotKey:{}},emits:["pick","pickSequence","reset","remove","updateWeight","toggleLock"],setup(n,{emit:e}){const t=n,i=e,{t:s}=fn(),r=Fe(()=>{var M,P;if(t.resource.imageMode==="sequence"){const A=t.resource.sequenceFrames||[];if(!A.length)return s("image.noSequence");const R=((M=A[0])==null?void 0:M.name)||s("image.firstFrame"),B=((P=A[A.length-1])==null?void 0:P.name)||R;return A.length===1?s("image.frameCountOne",{name:R}):s("image.frameCountMany",{count:A.length,first:R,last:B})}const C=t.resource.textureName||t.defaultFile.replace(/\.[^.]+$/,"");return C.includes(".")?C:`${C}.png`}),o=Fe(()=>{var C,M;return t.resource.imageMode==="sequence"?((M=(C=t.resource.sequenceFrames)==null?void 0:C[0])==null?void 0:M.previewUrl)||"":t.resource.previewUrl});function a(){try{const C=JSON.parse(sessionStorage.getItem(I1)||"{}");return C&&typeof C=="object"?C:{}}catch{return{}}}const c=a(),l=Fe(()=>t.pivotKey||`particle-image:${t.resource.id}`),h=Fe(()=>typeof t.resource.anchorX=="number"&&typeof t.resource.anchorY=="number"),u=Fe(()=>Math.abs((t.resource.anchorX??.5)-.5)<1e-4&&Math.abs((t.resource.anchorY??.5)-.5)<1e-4),d=typeof c[l.value]=="boolean",f=De(d?c[l.value]:!u.value);ei(f,C=>{c[l.value]=C;try{sessionStorage.setItem(I1,JSON.stringify(c))}catch{}}),ei(l,C=>{f.value=typeof c[C]=="boolean"?c[C]:!u.value}),ei(()=>u.value,C=>{C||(f.value=!0)},{immediate:!0});const m=De(!1),p=De(.5),g=De(.5),v=Fe(()=>{const C=((t.resource.anchorX??.5)*100).toFixed(1),M=((t.resource.anchorY??.5)*100).toFixed(1);return f.value?s("image.pivotOn",{x:C,y:M}):u.value?s("image.pivotOff"):s("image.pivotCustom",{x:C,y:M})});function b(){p.value=t.resource.anchorX??.5,g.value=t.resource.anchorY??.5,m.value=!0}function y(){f.value||(t.resource.anchorX=.5,t.resource.anchorY=.5,m.value=!1)}function x(C){C&&(t.resource.anchorX=p.value,t.resource.anchorY=g.value),m.value=!1}function _(C){C.key==="Escape"&&m.value&&x(!1)}Sn(()=>window.addEventListener("keydown",_)),eo(()=>window.removeEventListener("keydown",_));const E=Fe(()=>{var A,R;const C=t.resource.sequenceFrames||[];if(!C.length)return s("image.noSequence");const M=((A=C[0])==null?void 0:A.name)||s("image.firstImage"),P=((R=C[C.length-1])==null?void 0:R.name)||s("image.lastImage");return s("image.sequenceSelected",{count:C.length,first:M,last:P})});function S(){t.supportsSequence&&t.resource.imageMode==="sequence"?i("pickSequence",t.resource.id):i("pick",t.resource.id)}return(C,M)=>(Q(),te(Me,null,[w("div",xG,[w("div",wG,[w("button",{class:"img-thumb",title:n.supportsSequence&&n.resource.imageMode==="sequence"?C.$t("image.chooseSequence"):C.$t("image.chooseLocal"),onClick:S},[o.value?(Q(),te("img",{key:0,src:o.value,alt:n.resource.textureName},null,8,_G)):(Q(),te("svg",TG,[...M[19]||(M[19]=[w("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"},null,-1),w("circle",{cx:"8.5",cy:"8.5",r:"1.6"},null,-1),w("path",{d:"M21 15l-5-5-9 9"},null,-1)])]))],8,SG),w("div",EG,[n.showFolder?(Q(),te("label",CG,[w("span",null,k(C.$t("image.subfolder")),1),pe(w("input",{"onUpdate:modelValue":M[0]||(M[0]=P=>n.resource.textureFolder=P),type:"text",class:"inp",placeholder:"subfolder/"},null,512),[[Je,n.resource.textureFolder]])])):_e("",!0),w("label",MG,[w("span",null,k(C.$t("image.name")),1),pe(w("input",{"onUpdate:modelValue":M[1]||(M[1]=P=>n.resource.textureName=P),type:"text",class:"inp",placeholder:n.namePlaceholder},null,8,AG),[[Je,n.resource.textureName]])])]),w("div",IG,[w("button",{class:"mini-btn2",title:C.$t("image.restore",{name:n.defaultFile}),onClick:M[2]||(M[2]=P=>C.$emit("reset",n.resource.id))},"⟳",8,PG),w("button",{class:"mini-btn2",title:C.$t("image.deleteResource"),disabled:n.resourceCount===1,onClick:M[3]||(M[3]=P=>C.$emit("remove",n.resource.id))},"🗑",8,RG)])]),w("div",kG,k(r.value),1),n.supportsSequence?(Q(),te("label",FG,[w("span",null,k(C.$t("image.imageMode")),1),pe(w("select",{"onUpdate:modelValue":M[4]||(M[4]=P=>n.resource.imageMode=P),class:"inp"},[w("option",LG,k(C.$t("image.fixed")),1),w("option",OG,k(C.$t("image.sequence")),1)],512),[[St,n.resource.imageMode]])])):_e("",!0),n.supportsSequence&&n.resource.imageMode==="sequence"?(Q(),te(Me,{key:1},[w("label",$G,[w("span",null,k(C.$t("image.playbackMode")),1),pe(w("select",{"onUpdate:modelValue":M[5]||(M[5]=P=>n.resource.sequencePlayback=P),class:"inp"},[w("option",NG,k(C.$t("image.onceHide")),1),w("option",DG,k(C.$t("image.onceHold")),1),w("option",BG,k(C.$t("image.loopForward")),1),w("option",UG,k(C.$t("image.loopReverse")),1)],512),[[St,n.resource.sequencePlayback]])]),w("label",VG,[w("span",null,k(C.$t("image.playbackFps")),1),pe(w("input",{"onUpdate:modelValue":M[6]||(M[6]=P=>n.resource.sequenceFps=P),type:"number",min:"1",max:"120",step:"1",class:"inp"},null,512),[[Je,n.resource.sequenceFps,void 0,{number:!0}]])]),w("button",{class:"sequence-pick",onClick:M[7]||(M[7]=P=>C.$emit("pickSequence",n.resource.id))},k(C.$t("image.chooseSequenceMulti")),1),w("div",XG,k(E.value),1)],64)):_e("",!0),w("div",YG,[Te(Ue,{class:"resource-weight-control",label:C.$t("image.weight"),min:0,max:100,step:1,"model-value":n.resource.weight,disabled:n.resource.locked||n.resourceCount===1,"onUpdate:modelValue":M[8]||(M[8]=P=>C.$emit("updateWeight",n.resource.id,P))},null,8,["label","model-value","disabled"]),w("button",{class:Pe(["weight-lock",{on:n.resource.locked}]),disabled:n.resourceCount===1,title:n.resource.locked?C.$t("image.unlockWeight"):C.$t("image.lockWeight"),onClick:M[9]||(M[9]=P=>C.$emit("toggleLock",n.resource.id))},[n.resource.locked?(Q(),te("svg",HG,[...M[20]||(M[20]=[w("rect",{x:"5",y:"10",width:"14",height:"10",rx:"2"},null,-1),w("path",{d:"M8 10V7a4 4 0 0 1 8 0v3"},null,-1)])])):(Q(),te("svg",jG,[...M[21]||(M[21]=[w("rect",{x:"5",y:"10",width:"14",height:"10",rx:"2"},null,-1),w("path",{d:"M16 10V7a4 4 0 0 0-7.5-2"},null,-1)])]))],10,GG)]),iM(C.$slots,"default",{},void 0),h.value?(Q(),te("div",WG,[M[23]||(M[23]=w("div",{class:"pivot-toggle-icon"},"◎",-1)),w("div",zG,[w("div",qG,k(C.$t("image.pivot")),1),w("div",{class:"pivot-toggle-sub",title:v.value},k(v.value),9,KG)]),w("label",{class:"pivot-switch",title:f.value?C.$t("image.collapsePivot"):C.$t("image.expandPivot")},[pe(w("input",{"onUpdate:modelValue":M[10]||(M[10]=P=>f.value=P),type:"checkbox",onChange:y},null,544),[[_t,f.value]]),M[22]||(M[22]=w("span",{class:"pivot-switch-ui"},null,-1))],8,JG)])):_e("",!0),h.value&&f.value?(Q(),Pt(A1,{key:3,"preview-url":o.value,"anchor-x":n.resource.anchorX??.5,"anchor-y":n.resource.anchorY??.5,"onUpdate:anchorX":M[11]||(M[11]=P=>n.resource.anchorX=P),"onUpdate:anchorY":M[12]||(M[12]=P=>n.resource.anchorY=P),onFullscreen:b},null,8,["preview-url","anchor-x","anchor-y"])):_e("",!0)]),(Q(),Pt(ux,{to:"body"},[m.value?(Q(),te("div",{key:0,class:"pivot-modal-backdrop",onPointerdown:M[18]||(M[18]=tt(P=>x(!1),["self"]))},[w("div",{class:"pivot-modal",role:"dialog","aria-modal":"true","aria-label":C.$t("image.pivotModal")},[w("div",QG,[M[24]||(M[24]=w("div",{class:"pivot-modal-icon"},"◎",-1)),w("div",eH,[w("div",tH,[yt(k(C.$t("image.pivotModal"))+" ",1),w("span",iH,k(n.resource.textureName||n.defaultFile),1)]),w("div",nH,k(C.$t("image.pivotModalDesc")),1)]),w("button",{type:"button",class:"pivot-modal-close",title:C.$t("common.close"),onClick:M[13]||(M[13]=P=>x(!1))},"✕",8,sH)]),w("div",rH,k(C.$t("image.pivotZoomHint")),1),Te(A1,{large:"","preview-url":o.value,"anchor-x":p.value,"anchor-y":g.value,"onUpdate:anchorX":M[14]||(M[14]=P=>p.value=P),"onUpdate:anchorY":M[15]||(M[15]=P=>g.value=P)},null,8,["preview-url","anchor-x","anchor-y"]),w("div",oH,[w("button",{type:"button",class:"pivot-modal-cancel",onClick:M[16]||(M[16]=P=>x(!1))},k(C.$t("common.cancel")),1),w("button",{type:"button",class:"pivot-modal-confirm",onClick:M[17]||(M[17]=P=>x(!0))},k(C.$t("image.confirmPivot")),1)])],8,ZG)],32)):_e("",!0)]))],64))}}),kE=li(aH,[["__scopeId","data-v-89f1e08d"]]),lH={class:"group"},cH={class:"caret"},hH=["title"],uH={class:"group-body"},dH={class:"look-title"},fH={class:"seg"},mH={class:"row"},pH={value:"跟随导出"},gH={value:"线性"},vH={value:"贝塞尔"},yH={class:"curve-wrap"},bH={class:"curve-labels"},xH={class:"look-title"},wH={class:"seg"},SH={class:"row"},_H=["value"],TH={value:0},EH=["value"],CH={class:"render-layer-current"},MH=["title"],AH={key:0,class:"slot-picker"},IH=["placeholder","aria-label"],PH={class:"slot-list"},RH=["onClick"],kH={class:"slot-order"},FH={class:"slot-name"},LH={class:"slot-attachment"},OH={key:0,class:"modifier-hint"},$H={class:"seg"},NH={class:"switch-row render-layer-switch"},DH=["disabled"],BH={key:0,class:"modifier-hint"},UH={key:2,class:"modifier-hint render-layer-warning"},VH={class:"modifier-hint"},XH={class:"look-title image-title"},YH=["title"],GH={class:"row resource-color-row"},HH=["onUpdate:modelValue"],jH={value:"fixed"},WH={value:"random"},zH={value:"lifetime"},qH=["onUpdate:modelValue"],KH={value:"normal"},JH={value:"add"},ZH={value:"multiply"},QH={value:"screen"},ej={key:0,class:"row resource-color-picker"},tj=["onUpdate:modelValue"],ij=["value","aria-label","onChange","onKeydown"],nj={key:0,class:"random-color-hint"},sj={class:"resource-alpha-head"},rj={class:"alpha-modes"},oj=["onClick"],aj=["onClick"],lj=["onClick"],cj={class:"row"},hj=["onUpdate:modelValue"],uj={value:"跟随导出"},dj={value:"线性"},fj={value:"贝塞尔"},mj={class:"resource-alpha-curve"},pj=qt({__name:"ParticleAppearanceSection",setup(n){const{resolvedCurveEditorMode:e,sys:t,textureFileInput:i,sequenceFileInput:s,addImageResource:r,openTexturePicker:o,openSequencePicker:a,onTextureFile:c,onSequenceFiles:l,resetTexture:h,setResourceFixedColor:u,commitResourceFixedColor:d,removeImageResource:f,setResourceWeight:m,toggleResourceLock:p,collapsed:g,toggle:v,resetModule:b,select:y,renderLayerSlotPickerOpen:x,renderLayerSlotSearch:_,renderLayerReadySpines:E,renderLayerSpineReady:S,renderLayerFilteredSlots:C,renderLayerSlotLabel:M,renderLayerResolvedLabel:P,renderLayerWarning:A,setRenderLayerSlotMode:R,selectRenderLayerSpine:B,pickRenderLayerSlot:O,clearRenderLayerSlot:W,ALPHA_CURVE:V,RESOURCE_ALPHA_CURVE:Y}=oo();return(L,N)=>(Q(),te("div",lH,[w("div",{class:"group-head",onClick:N[1]||(N[1]=F=>I(v)("look"))},[w("span",cH,k(I(g).look?"▸":"▾"),1),w("span",null,k(L.$t("appearance.title")),1),w("button",{class:"group-reset",title:L.$t("appearance.reset"),onClick:N[0]||(N[0]=tt(F=>I(b)("look"),["stop"]))},k(L.$t("common.reset")),9,hH)]),pe(w("div",uH,[w("div",dH,k(L.$t("appearance.opacity")),1),w("div",fH,[w("button",{class:Pe(["seg-btn",{active:I(t).config.alphaMode==="curve"}]),onClick:N[2]||(N[2]=F=>I(t).config.alphaMode="curve")},k(L.$t("common.curve")),3),w("button",{class:Pe(["seg-btn",{active:I(t).config.alphaMode==="fixed"}]),onClick:N[3]||(N[3]=F=>I(t).config.alphaMode="fixed")},k(L.$t("common.fixed")),3)]),I(t).config.alphaMode==="fixed"?(Q(),Pt(Ue,{key:0,label:L.$t("appearance.opacity"),min:0,max:1,step:.01,modelValue:I(t).config.alpha,"onUpdate:modelValue":N[4]||(N[4]=F=>I(t).config.alpha=F)},null,8,["label","modelValue"])):(Q(),te(Me,{key:1},[w("label",mH,[w("span",null,k(L.$t("appearance.curveMode")),1),pe(w("select",{"onUpdate:modelValue":N[5]||(N[5]=F=>I(t).config.curveMode=F),class:"inp"},[w("option",pH,k(L.$t("common.followExport")),1),w("option",gH,k(L.$t("common.linear")),1),w("option",vH,k(L.$t("common.bezier")),1)],512),[[St,I(t).config.curveMode]])]),w("div",yH,[Te(bs,{modelValue:I(t).config.alphaCurve,"onUpdate:modelValue":N[6]||(N[6]=F=>I(t).config.alphaCurve=F),"default-value":I(V),mode:I(e)(I(t).config.curveMode)},null,8,["modelValue","default-value","mode"]),w("div",bH,[w("span",null,k(L.$t("appearance.transparent")),1),w("span",null,k(L.$t("attributes.lifeTo")),1),w("span",null,k(L.$t("appearance.opaque")),1)])])],64)),w("div",xH,k(L.$t("appearance.renderLayer")),1),w("div",wH,[w("button",{class:Pe(["seg-btn",{active:I(t).config.renderLayerMode==="top"}]),onClick:N[7]||(N[7]=F=>I(t).config.renderLayerMode="top")},k(L.$t("appearance.top")),3),w("button",{class:Pe(["seg-btn",{active:I(t).config.renderLayerMode==="slot"}]),onClick:N[8]||(N[8]=(...F)=>I(R)&&I(R)(...F))},k(L.$t("appearance.spineSlot")),3)]),I(t).config.renderLayerMode==="slot"?(Q(),te(Me,{key:2},[w("label",SH,[N[19]||(N[19]=w("span",null,"Spine",-1)),w("select",{class:"inp",value:I(t).config.renderLayerSpineId,onChange:N[9]||(N[9]=(...F)=>I(B)&&I(B)(...F))},[w("option",TH,k(I(E).length?L.$t("appearance.selectSpine"):L.$t("appearance.noSpine")),1),(Q(!0),te(Me,null,It(I(E),F=>(Q(),te("option",{key:F.id,value:F.id},k(F.name),9,EH))),128))],40,_H)]),I(S)?(Q(),te(Me,{key:0},[w("div",CH,[w("span",{class:"render-layer-text",title:I(M)},k(I(M)||L.$t("appearance.noSlot")),9,MH),w("button",{class:"mini-btn",onClick:N[10]||(N[10]=F=>x.value=!I(x))},k(I(M)?L.$t("appearance.reselect"):L.$t("appearance.selectSlot")),1),I(t).config.renderLayerSlotName?(Q(),te("button",{key:0,class:"mini-btn ghost",onClick:N[11]||(N[11]=(...F)=>I(W)&&I(W)(...F))},k(L.$t("common.clear")),1)):_e("",!0)]),I(x)?(Q(),te("div",AH,[pe(w("input",{"onUpdate:modelValue":N[12]||(N[12]=F=>Qt(_)?_.value=F:null),class:"inp",type:"search",placeholder:L.$t("appearance.searchSlots"),"aria-label":L.$t("appearance.searchSlotsAria")},null,8,IH),[[Je,I(_),void 0,{trim:!0}]]),w("div",PH,[(Q(!0),te(Me,null,It(I(C),F=>(Q(),te("button",{key:F.name,class:Pe(["slot-item",{on:I(t).config.renderLayerSlotName===F.name}]),onClick:D=>I(O)(F)},[w("span",kH,k(F.order+1),1),w("span",FH,k(F.name),1),w("span",LH,k(F.attachment||L.$t("appearance.emptySlot")),1)],10,RH))),128)),I(C).length?_e("",!0):(Q(),te("div",OH,k(L.$t("appearance.noMatchingSlots")),1))])])):_e("",!0),I(t).config.renderLayerSlotName?(Q(),te(Me,{key:1},[w("div",$H,[w("button",{class:Pe(["seg-btn",{active:I(t).config.renderLayerSlotPosition==="above"}]),onClick:N[13]||(N[13]=F=>I(t).config.renderLayerSlotPosition="above")},k(L.$t("appearance.above")),3),w("button",{class:Pe(["seg-btn",{active:I(t).config.renderLayerSlotPosition==="below"}]),onClick:N[14]||(N[14]=F=>I(t).config.renderLayerSlotPosition="below")},k(L.$t("appearance.below")),3)]),w("label",NH,[pe(w("input",{"onUpdate:modelValue":N[15]||(N[15]=F=>I(t).config.renderLayerFollowAttachment=F),type:"checkbox",disabled:I(t).config.renderLayerSlotPosition==="below"},null,8,DH),[[_t,I(t).config.renderLayerFollowAttachment]]),N[20]||(N[20]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(L.$t("appearance.followAttachment")),1)]),I(P)?(Q(),te("div",BH,k(I(P)),1)):_e("",!0)],64)):_e("",!0),I(A)?(Q(),te("div",UH,k(I(A)),1)):_e("",!0),w("div",VH,k(L.$t("appearance.previewOnly")),1)],64)):_e("",!0)],64)):_e("",!0),w("div",XH,[w("span",null,k(L.$t("appearance.imageResources")),1),w("button",{class:"image-add",title:L.$t("appearance.addImage"),onClick:N[16]||(N[16]=(...F)=>I(r)&&I(r)(...F))},"+",8,YH)]),(Q(!0),te(Me,null,It(I(t).config.imageResources,F=>(Q(),Pt(kE,{key:`${I(t).id}:${F.id}`,resource:F,"resource-count":I(t).config.imageResources.length,"pivot-key":`${I(t).id}:${F.id}`,"supports-sequence":"","default-file":"star.png",onPick:I(o),onPickSequence:I(a),onReset:I(h),onRemove:I(f),onUpdateWeight:I(m),onToggleLock:I(p)},{default:Hu(()=>[Te(Ue,{label:L.$t("appearance.scale"),min:.1,max:3,step:.05,modelValue:F.scale,"onUpdate:modelValue":D=>F.scale=D},null,8,["label","modelValue","onUpdate:modelValue"]),N[21]||(N[21]=w("div",{class:"resource-divider"},null,-1)),w("label",GH,[w("span",null,k(L.$t("appearance.color")),1),pe(w("select",{"onUpdate:modelValue":D=>F.colorMode=D,class:"inp"},[w("option",jH,k(L.$t("appearance.fixedColor")),1),w("option",WH,k(L.$t("appearance.randomColor")),1),w("option",zH,k(L.$t("appearance.lifetime")),1)],8,HH),[[St,F.colorMode]]),pe(w("select",{"onUpdate:modelValue":D=>F.blend=D,class:"inp blend-select"},[w("option",KH,k(L.$t("appearance.normal")),1),w("option",JH,k(L.$t("appearance.add")),1),w("option",ZH,k(L.$t("appearance.multiply")),1),w("option",QH,k(L.$t("appearance.screen")),1)],8,qH),[[St,F.blend]])]),F.colorMode==="fixed"?(Q(),te("label",ej,[w("span",null,k(L.$t("appearance.fixedColor")),1),pe(w("input",{type:"color","onUpdate:modelValue":D=>F.colorStart=D,class:"colr"},null,8,tj),[[Je,F.colorStart]]),w("input",{type:"text",class:"hex-input",value:F.colorStart,spellcheck:"false","aria-label":L.$t("appearance.fixedColorValue"),onChange:D=>I(u)(F,D),onKeydown:Wr(D=>I(d)(F,D),["enter"])},null,40,ij)])):(Q(),te(Me,{key:1},[Te(RE,{modelValue:F.colorGradient,"onUpdate:modelValue":D=>F.colorGradient=D},null,8,["modelValue","onUpdate:modelValue"]),F.colorMode==="random"?(Q(),te("div",nj,k(L.$t("appearance.randomColorHint")),1)):_e("",!0)],64)),w("div",sj,[w("span",null,k(L.$t("appearance.independentAlpha")),1),w("div",rj,[w("button",{class:Pe({on:F.independentAlpha==="off"}),onClick:D=>F.independentAlpha="off"},k(L.$t("appearance.off")),11,oj),w("button",{class:Pe({on:F.independentAlpha==="fixed"}),onClick:D=>F.independentAlpha="fixed"},k(L.$t("common.fixed")),11,aj),w("button",{class:Pe({on:F.independentAlpha==="curve"}),onClick:D=>F.independentAlpha="curve"},k(L.$t("common.curve")),11,lj)])]),F.independentAlpha==="fixed"?(Q(),Pt(Ue,{key:2,label:L.$t("appearance.opacity"),min:0,max:1,step:.01,modelValue:F.alpha,"onUpdate:modelValue":D=>F.alpha=D},null,8,["label","modelValue","onUpdate:modelValue"])):F.independentAlpha==="curve"?(Q(),te(Me,{key:3},[w("label",cj,[w("span",null,k(L.$t("appearance.curveMode")),1),pe(w("select",{"onUpdate:modelValue":D=>F.alphaCurveMode=D,class:"inp"},[w("option",uj,k(L.$t("common.followExport")),1),w("option",dj,k(L.$t("common.linear")),1),w("option",fj,k(L.$t("common.bezier")),1)],8,hj),[[St,F.alphaCurveMode]])]),w("div",mj,[Te(bs,{modelValue:F.alphaCurve,"onUpdate:modelValue":D=>F.alphaCurve=D,"default-value":I(Y),mode:I(e)(F.alphaCurveMode)},null,8,["modelValue","onUpdate:modelValue","default-value","mode"])])],64)):_e("",!0)]),_:2},1032,["resource","resource-count","pivot-key","onPick","onPickSequence","onReset","onRemove","onUpdateWeight","onToggleLock"]))),128)),w("input",{ref_key:"textureFileInput",ref:i,class:"file-input",type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",onChange:N[17]||(N[17]=(...F)=>I(c)&&I(c)(...F))},null,544),w("input",{ref_key:"sequenceFileInput",ref:s,class:"file-input",type:"file",multiple:"",accept:"image/png,image/jpeg,image/webp,image/gif",onChange:N[18]||(N[18]=(...F)=>I(l)&&I(l)(...F))},null,544)],512),[[Fi,!I(g).look]])]))}}),gj=li(pj,[["__scopeId","data-v-86902cc8"]]),vj={class:"group"},yj={class:"caret"},bj=["title"],xj={class:"group-body"},wj={class:"modifier-item damping-item"},Sj={class:"modifier-item"},_j={class:"switch-row modifier-switch"},Tj={key:0,class:"modifier-params"},Ej={class:"modifier-hint"},Cj={class:"modifier-item"},Mj={class:"switch-row modifier-switch"},Aj={key:0,class:"modifier-params gravity-params"},Ij={class:"modifier-mode-row"},Pj={class:"gravity-curve-title"},Rj={class:"gravity-curve-axis"},kj={class:"modifier-hint"},Fj={class:"modifier-item"},Lj={class:"switch-row modifier-switch"},Oj={key:0,class:"modifier-params gravity-params"},$j={class:"modifier-mode-row"},Nj={class:"gravity-curve-title"},Dj={class:"gravity-curve-axis"},Bj={class:"modifier-hint"},Uj={class:"modifier-item"},Vj={class:"switch-row modifier-switch"},Xj={key:0,class:"modifier-params"},Yj={class:"row"},Gj={value:"constant"},Hj={value:"linear"},jj={value:"inverse"},Wj={class:"modifier-hint"},zj={class:"switch-row"},qj={class:"modifier-item"},Kj={class:"switch-row modifier-switch"},Jj={key:0,class:"modifier-params"},Zj={class:"row"},Qj={value:"constant"},eW={value:"linear"},tW={value:"inverse"},iW={class:"modifier-hint"},nW={class:"switch-row"},sW={class:"modifier-item"},rW={class:"switch-row modifier-switch"},oW={key:0,class:"modifier-params"},aW={class:"row"},lW={value:"global"},cW={value:"particle"},hW={class:"row"},uW={value:"linear"},dW={value:"curve"},fW={class:"modifier-hint"},mW={class:"switch-row"},pW={class:"modifier-item"},gW={class:"switch-row modifier-switch"},vW={key:0,class:"modifier-params trail-params"},yW={class:"trail-section-head"},bW={class:"trail-section-title"},xW=["title"],wW={class:"row"},SW=["onUpdate:modelValue"],_W={value:"fixed"},TW={value:"random"},EW={class:"row"},CW=["onUpdate:modelValue"],MW={value:"fixed"},AW={value:"random"},IW={class:"row"},PW=["onUpdate:modelValue"],RW={value:"particle"},kW={value:"fixed"},FW={class:"switch-row trail-sub-switch"},LW=["onUpdate:modelValue"],OW={class:"switch-row trail-sub-switch"},$W=["onUpdate:modelValue"],NW={class:"trail-mode-head"},DW={class:"alpha-modes"},BW=["onClick"],UW=["onClick"],VW=["onClick"],XW={class:"row"},YW=["onUpdate:modelValue"],GW={value:"normal"},HW={value:"add"},jW={value:"multiply"},WW={value:"screen"},zW={key:6,class:"row trail-fixed-color"},qW=["onUpdate:modelValue"],KW=["value","onChange","onKeydown"],JW={class:"trail-mode-head"},ZW={class:"alpha-modes"},QW=["onClick"],e7=["onClick"],t7=["onClick"],i7={class:"trail-grid-row"},n7={class:"modifier-hint"},s7={class:"modifier-item"},r7={class:"switch-row modifier-switch"},o7=["disabled"],a7={key:0,class:"modifier-params emitter-follow-params"},l7={class:"field-block"},c7=["value"],h7={value:"none"},u7={value:"path"},d7={key:0,value:"bone"},f7={class:"field-block"},m7={value:0},p7=["value"],g7={class:"field-block"},v7={value:"fixed"},y7={value:"direction"},b7={class:"gravity-curve-title"},x7={class:"field-grid follow-grid"},w7={class:"compact-field"},S7={class:"compact-field"},_7={value:"local"},T7={value:"world"},E7={class:"field-block"},C7={value:"forward"},M7={value:"reverse"},A7={class:"modifier-hint"},I7={key:0,class:"bone-follow-target"},P7={key:1,class:"bone-follow-missing"},R7={class:"field-block"},k7={value:"local"},F7={value:"world"},L7={class:"field-grid follow-grid"},O7={class:"compact-field"},$7={class:"compact-field"},N7={class:"bone-follow-transform-grid"},D7={class:"compact-field"},B7={class:"compact-field"},U7={class:"compact-field"},V7={class:"modifier-hint"},X7={class:"modifier-item"},Y7={class:"switch-row modifier-switch"},G7={key:0,class:"modifier-params collision-filter-params"},H7={class:"collision-filter-title"},j7={class:"collision-filter-tags"},W7=["title"],z7=["aria-label","onClick"],q7=["disabled","title"],K7={key:0,class:"collision-filter-empty"},J7={key:1,class:"collision-filter-picker"},Z7=["onClick"],Q7={class:"modifier-hint"},e9={class:"modifier-item events-item"},t9={class:"switch-row modifier-switch"},i9={key:0,class:"event-rules"},n9={class:"event-selects"},s9=["onUpdate:modelValue","title"],r9={value:"birth"},o9={value:"death"},a9={value:"collision"},l9=["onUpdate:modelValue","title"],c9={value:0},h9=["value"],u9=["title","onClick"],d9={class:"event-probability"},f9=["onUpdate:modelValue"],m9={key:0,class:"event-probability event-collision-limit"},p9=["value","onInput"],g9={class:"event-probability event-inherit"},v9=["onClick"],y9={class:"inherit-summary"},b9={key:1,class:"event-probability event-color-mode"},x9=["onUpdate:modelValue"],w9={value:"add"},S9={value:"replace"},_9={class:"inherit-check"},T9={class:"inherit-check"},E9=["onClick"],C9={class:"inherit-check"},M9=qt({__name:"ParticleModifiersSection",setup(n){const{store:e,sys:t,trailTextureFileInput:i,addTrailResource:s,openTrailTexturePicker:r,onTrailRigChange:o,onTrailResourceBoneCountChange:a,onTrailResourceRotationChange:c,onTrailTextureFile:l,resetTrailTexture:h,removeTrailResource:u,setTrailResourceWeight:d,toggleTrailResourceLock:f,setTrailColor:m,commitTrailColor:p,selectedSpineBone:g,boundSpineBone:v,collisionPickerOpen:b,selectedCollisionBodies:y,availableCollisionBodies:x,addCollisionBody:_,removeCollisionBody:E,collapsed:S,toggle:C,onEmitterFollowModeChange:M,bindSelectedBone:P,resetModule:A,select:R,LINEAR_CURVE:B,FLAT_CURVE:O,TRAIL_ALPHA_CURVE:W,TRAIL_SHAPE_CURVE:V}=oo(),{t:Y}=fn(),L=Fe(()=>{var $;const H=($=t.value)==null?void 0:$.id;if(!H)return[];const j=RS(e.systems,H);return e.systems.filter(U=>U.id!==H&&!j.has(U.id))}),N=Fe(()=>[{key:"color",label:Y("modifiers.inheritColor")},{key:"scale",label:Y("modifiers.inheritScale")},{key:"rotation",label:Y("modifiers.inheritRotation")},{key:"life",label:Y("modifiers.inheritLife")}]),F=De(null),D=Fe(()=>{var $;const H=F.value,j=($=t.value)==null?void 0:$.config.events;return!H||!Array.isArray(j)?null:j.find(U=>U.id===H.ruleId)||null});function X(H){return Array.isArray(H.inherit)||(H.inherit=[]),H.inherit}function G(H){const j=X(H);return j.length?j.length===N.value.length?Y("modifiers.inheritAll"):N.value.filter($=>j.includes($.key)).map($=>$.label).join("、"):Y("modifiers.inheritNone")}function K(H,j){return X(H).includes(j)}function J(H,j){const $=X(H),U=$.indexOf(j);U>=0?$.splice(U,1):$.push(j)}function oe(H){X(H).splice(0)}function le(H){X(H).splice(0,X(H).length,...N.value.map(j=>j.key))}function ve(H,j){var xe;if(((xe=F.value)==null?void 0:xe.ruleId)===H.id){F.value=null;return}const $=j.currentTarget;if(!$)return;const U=$.getBoundingClientRect(),z=Math.max(168,U.width),ee=212,ne=Math.min(Math.max(8,U.left),Math.max(8,window.innerWidth-z-8));let ue=U.bottom+4;ue+ee>window.innerHeight-8&&(ue=Math.max(8,U.top-ee-4)),F.value={ruleId:H.id,left:ne,top:ue,width:z}}function Se(){F.value=null}function fe(){Se()}function ye(H){H.key==="Escape"&&Se()}Sn(()=>{document.addEventListener("pointerdown",Se),window.addEventListener("scroll",fe,!0),window.addEventListener("resize",fe),window.addEventListener("keydown",ye)}),eo(()=>{document.removeEventListener("pointerdown",Se),window.removeEventListener("scroll",fe,!0),window.removeEventListener("resize",fe),window.removeEventListener("keydown",ye)});function q(){var $;const H=($=t.value)==null?void 0:$.config;if(!H)return;Array.isArray(H.events)||(H.events=[]);const j=Math.max(0,...H.events.map(U=>U.id))+1;H.events.push({id:j,event:"birth",targetSystemId:0,probability:1,collisionLimit:1,inherit:[],colorInheritMode:"add"})}function Z(H){var j;(j=t.value)==null||j.config.events.splice(H,1)}function se(H,j){const $=j.target,U=Math.round(Number($.value));H.collisionLimit=Math.min(4,Math.max(1,Number.isFinite(U)?U:1)),$.value=String(H.collisionLimit)}return(H,j)=>(Q(),te(Me,null,[w("div",vj,[w("div",{class:"group-head",onClick:j[1]||(j[1]=$=>I(C)("mods"))},[w("span",yj,k(I(S).mods?"▸":"▾"),1),w("span",null,k(H.$t("modifiers.title")),1),w("button",{class:"group-reset",title:H.$t("modifiers.reset"),onClick:j[0]||(j[0]=tt($=>I(A)("mods"),["stop"]))},k(H.$t("common.reset")),9,bj)]),pe(w("div",xj,[w("div",wj,[Te(Ue,{label:H.$t("modifiers.damping"),min:0,max:2,step:.05,modelValue:I(t).config.damping,"onUpdate:modelValue":j[2]||(j[2]=$=>I(t).config.damping=$)},null,8,["label","modelValue"])]),w("div",Sj,[w("label",_j,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[3]||(j[3]=$=>I(t).config.noise=$)},null,512),[[_t,I(t).config.noise]]),j[74]||(j[74]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.enableNoise")),1)]),I(t).config.noise?(Q(),te("div",Tj,[Te(Ue,{label:H.$t("modifiers.strength"),min:0,max:100,step:1,modelValue:I(t).config.noiseAmt,"onUpdate:modelValue":j[4]||(j[4]=$=>I(t).config.noiseAmt=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.noiseRange"),min:0,max:500,step:1,modelValue:I(t).config.noiseRange,"onUpdate:modelValue":j[5]||(j[5]=$=>I(t).config.noiseRange=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.noiseSpeed"),min:0,max:10,step:.1,modelValue:I(t).config.noiseSpeed,"onUpdate:modelValue":j[6]||(j[6]=$=>I(t).config.noiseSpeed=$)},null,8,["label","modelValue"]),w("div",Ej,k(H.$t("modifiers.noiseHint")),1)])):_e("",!0)]),w("div",Cj,[w("label",Mj,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[7]||(j[7]=$=>I(t).config.useGravity=$)},null,512),[[_t,I(t).config.useGravity]]),j[75]||(j[75]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.enableGravity")),1)]),I(t).config.useGravity?(Q(),te("div",Aj,[w("div",Ij,[w("button",{class:Pe(["axis-mode",{on:I(t).config.gravityMode==="fixed"}]),onClick:j[8]||(j[8]=$=>I(t).config.gravityMode="fixed")},k(H.$t("common.fixed")),3),w("button",{class:Pe(["axis-mode",{on:I(t).config.gravityMode==="random"}]),onClick:j[9]||(j[9]=$=>I(t).config.gravityMode="random")},k(H.$t("common.random")),3)]),I(t).config.gravityMode==="fixed"?(Q(),Pt(Ue,{key:0,label:H.$t("modifiers.gravityStrength"),min:-3e3,max:3e3,step:10,modelValue:I(t).config.gravityMin,"onUpdate:modelValue":j[10]||(j[10]=$=>I(t).config.gravityMin=$)},null,8,["label","modelValue"])):(Q(),te(Me,{key:1},[Te(Ue,{label:H.$t("modifiers.strengthMin"),min:-3e3,max:3e3,step:10,modelValue:I(t).config.gravityMin,"onUpdate:modelValue":j[11]||(j[11]=$=>I(t).config.gravityMin=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.strengthMax"),min:-3e3,max:3e3,step:10,modelValue:I(t).config.gravityMax,"onUpdate:modelValue":j[12]||(j[12]=$=>I(t).config.gravityMax=$)},null,8,["label","modelValue"])],64)),Te(Ue,{label:H.$t("modifiers.direction"),min:-360,max:360,step:1,modelValue:I(t).config.gravityDirection,"onUpdate:modelValue":j[13]||(j[13]=$=>I(t).config.gravityDirection=$)},null,8,["label","modelValue"]),w("div",Pj,[w("span",null,k(H.$t("modifiers.gravityOverLife")),1),w("span",null,k(H.$t("modifiers.axisStrength")),1)]),Te(bs,{modelValue:I(t).config.gravityCurve,"onUpdate:modelValue":j[14]||(j[14]=$=>I(t).config.gravityCurve=$),"default-value":I(O)},null,8,["modelValue","default-value"]),w("div",Rj,[j[76]||(j[76]=w("span",null,"0",-1)),w("span",null,k(H.$t("attributes.lifeTo")),1),j[77]||(j[77]=w("span",null,"1",-1))]),w("div",kj,k(H.$t("modifiers.directionHint")),1)])):_e("",!0)]),w("div",Fj,[w("label",Lj,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[15]||(j[15]=$=>I(t).config.wind=$)},null,512),[[_t,I(t).config.wind]]),j[78]||(j[78]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.enableWind")),1)]),I(t).config.wind?(Q(),te("div",Oj,[w("div",$j,[w("button",{class:Pe(["axis-mode",{on:I(t).config.windMode==="fixed"}]),onClick:j[16]||(j[16]=$=>I(t).config.windMode="fixed")},k(H.$t("common.fixed")),3),w("button",{class:Pe(["axis-mode",{on:I(t).config.windMode==="random"}]),onClick:j[17]||(j[17]=$=>I(t).config.windMode="random")},k(H.$t("common.random")),3)]),I(t).config.windMode==="fixed"?(Q(),Pt(Ue,{key:0,label:H.$t("modifiers.windStrength"),min:-3e3,max:3e3,step:10,modelValue:I(t).config.windMin,"onUpdate:modelValue":j[18]||(j[18]=$=>I(t).config.windMin=$)},null,8,["label","modelValue"])):(Q(),te(Me,{key:1},[Te(Ue,{label:H.$t("modifiers.strengthMin"),min:-3e3,max:3e3,step:10,modelValue:I(t).config.windMin,"onUpdate:modelValue":j[19]||(j[19]=$=>I(t).config.windMin=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.strengthMax"),min:-3e3,max:3e3,step:10,modelValue:I(t).config.windMax,"onUpdate:modelValue":j[20]||(j[20]=$=>I(t).config.windMax=$)},null,8,["label","modelValue"])],64)),Te(Ue,{label:H.$t("modifiers.direction"),min:-360,max:360,step:1,modelValue:I(t).config.windDirection,"onUpdate:modelValue":j[21]||(j[21]=$=>I(t).config.windDirection=$)},null,8,["label","modelValue"]),w("div",Nj,[w("span",null,k(H.$t("modifiers.windOverLife")),1),w("span",null,k(H.$t("modifiers.axisStrength")),1)]),Te(bs,{modelValue:I(t).config.windCurve,"onUpdate:modelValue":j[22]||(j[22]=$=>I(t).config.windCurve=$),"default-value":I(O)},null,8,["modelValue","default-value"]),w("div",Dj,[j[79]||(j[79]=w("span",null,"0",-1)),w("span",null,k(H.$t("attributes.lifeTo")),1),j[80]||(j[80]=w("span",null,"1",-1))]),w("div",Bj,k(H.$t("modifiers.directionHint")),1)])):_e("",!0)]),w("div",Uj,[w("label",Vj,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[23]||(j[23]=$=>I(t).config.forceField=$)},null,512),[[_t,I(t).config.forceField]]),j[81]||(j[81]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.enableForceField")),1)]),I(t).config.forceField?(Q(),te("div",Xj,[Te(Ue,{label:H.$t("modifiers.centerX"),min:-5e3,max:5e3,step:1,modelValue:I(t).config.forceCenterX,"onUpdate:modelValue":j[24]||(j[24]=$=>I(t).config.forceCenterX=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.centerY"),min:-5e3,max:5e3,step:1,modelValue:I(t).config.forceCenterY,"onUpdate:modelValue":j[25]||(j[25]=$=>I(t).config.forceCenterY=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.forceStrength"),min:-300,max:300,step:1,modelValue:I(t).config.forceStrength,"onUpdate:modelValue":j[26]||(j[26]=$=>I(t).config.forceStrength=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.forceRadius"),min:1,max:2e3,step:1,modelValue:I(t).config.forceRadius,"onUpdate:modelValue":j[27]||(j[27]=$=>I(t).config.forceRadius=$)},null,8,["label","modelValue"]),w("label",Yj,[w("span",null,k(H.$t("modifiers.falloffMode")),1),pe(w("select",{"onUpdate:modelValue":j[28]||(j[28]=$=>I(t).config.forceFalloff=$),class:"inp"},[w("option",Gj,k(H.$t("modifiers.constant")),1),w("option",Hj,k(H.$t("modifiers.linearFalloff")),1),w("option",jj,k(H.$t("modifiers.inverseFalloff")),1)],512),[[St,I(t).config.forceFalloff]])]),w("div",Wj,k(H.$t("modifiers.forceHint")),1),w("label",zj,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[29]||(j[29]=$=>I(t).config.showForceFieldShape=$)},null,512),[[_t,I(t).config.showForceFieldShape]]),j[82]||(j[82]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.showShape")),1)])])):_e("",!0)]),w("div",qj,[w("label",Kj,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[30]||(j[30]=$=>I(t).config.vortex=$)},null,512),[[_t,I(t).config.vortex]]),j[83]||(j[83]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.enableVortex")),1)]),I(t).config.vortex?(Q(),te("div",Jj,[Te(Ue,{label:H.$t("modifiers.centerX"),min:-5e3,max:5e3,step:1,modelValue:I(t).config.vortexCenterX,"onUpdate:modelValue":j[31]||(j[31]=$=>I(t).config.vortexCenterX=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.centerY"),min:-5e3,max:5e3,step:1,modelValue:I(t).config.vortexCenterY,"onUpdate:modelValue":j[32]||(j[32]=$=>I(t).config.vortexCenterY=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.forceStrength"),min:-300,max:300,step:1,modelValue:I(t).config.vortexStrength,"onUpdate:modelValue":j[33]||(j[33]=$=>I(t).config.vortexStrength=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.forceRadius"),min:1,max:2e3,step:1,modelValue:I(t).config.vortexRadius,"onUpdate:modelValue":j[34]||(j[34]=$=>I(t).config.vortexRadius=$)},null,8,["label","modelValue"]),w("label",Zj,[w("span",null,k(H.$t("modifiers.falloffMode")),1),pe(w("select",{"onUpdate:modelValue":j[35]||(j[35]=$=>I(t).config.vortexFalloff=$),class:"inp"},[w("option",Qj,k(H.$t("modifiers.constant")),1),w("option",eW,k(H.$t("modifiers.linearFalloff")),1),w("option",tW,k(H.$t("modifiers.inverseFalloff")),1)],512),[[St,I(t).config.vortexFalloff]])]),w("div",iW,k(H.$t("modifiers.vortexHint")),1),w("label",nW,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[36]||(j[36]=$=>I(t).config.showVortexShape=$)},null,512),[[_t,I(t).config.showVortexShape]]),j[84]||(j[84]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.showShape")),1)])])):_e("",!0)]),w("div",sW,[w("label",rW,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[37]||(j[37]=$=>I(t).config.attraction=$)},null,512),[[_t,I(t).config.attraction]]),j[85]||(j[85]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.enableAttraction")),1)]),I(t).config.attraction?(Q(),te("div",oW,[Te(Ue,{label:H.$t("modifiers.attractionX"),min:-5e3,max:5e3,step:1,modelValue:I(t).config.attractionCenterX,"onUpdate:modelValue":j[38]||(j[38]=$=>I(t).config.attractionCenterX=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.attractionY"),min:-5e3,max:5e3,step:1,modelValue:I(t).config.attractionCenterY,"onUpdate:modelValue":j[39]||(j[39]=$=>I(t).config.attractionCenterY=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.attractionRadius"),min:0,max:2e3,step:1,modelValue:I(t).config.attractionRadius,"onUpdate:modelValue":j[40]||(j[40]=$=>I(t).config.attractionRadius=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.attractionDuration"),min:.05,max:30,step:.05,modelValue:I(t).config.attractionDuration,"onUpdate:modelValue":j[41]||(j[41]=$=>I(t).config.attractionDuration=$)},null,8,["label","modelValue"]),Te(Ue,{label:H.$t("modifiers.delay"),min:0,max:30,step:.05,modelValue:I(t).config.attractionDelay,"onUpdate:modelValue":j[42]||(j[42]=$=>I(t).config.attractionDelay=$)},null,8,["label","modelValue"]),w("label",aW,[w("span",null,k(H.$t("modifiers.delayMode")),1),pe(w("select",{"onUpdate:modelValue":j[43]||(j[43]=$=>I(t).config.attractionDelayMode=$),class:"inp"},[w("option",lW,k(H.$t("modifiers.globalTime")),1),w("option",cW,k(H.$t("modifiers.particleLife")),1)],512),[[St,I(t).config.attractionDelayMode]])]),w("label",hW,[w("span",null,k(H.$t("modifiers.attractionPath")),1),pe(w("select",{"onUpdate:modelValue":j[44]||(j[44]=$=>I(t).config.attractionPath=$),class:"inp"},[w("option",uW,k(H.$t("modifiers.straight")),1),w("option",dW,k(H.$t("common.curve")),1)],512),[[St,I(t).config.attractionPath]])]),w("div",fW,k(H.$t("modifiers.attractionHint")),1),w("label",mW,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[45]||(j[45]=$=>I(t).config.showAttractionShape=$)},null,512),[[_t,I(t).config.showAttractionShape]]),j[86]||(j[86]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.showShape")),1)])])):_e("",!0)]),w("div",pW,[w("label",gW,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[46]||(j[46]=$=>I(t).config.trail=$)},null,512),[[_t,I(t).config.trail]]),j[87]||(j[87]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.enableTrail")),1)]),I(t).config.trail?(Q(),te("div",vW,[w("div",yW,[w("div",bW,k(H.$t("modifiers.trailImages")),1),w("button",{class:"image-add",title:H.$t("modifiers.addTrailImage"),onClick:j[47]||(j[47]=(...$)=>I(s)&&I(s)(...$))},"+",8,xW)]),(Q(!0),te(Me,null,It(I(t).config.trailResources,$=>(Q(),Pt(kE,{key:$.id,resource:$,"resource-count":I(t).config.trailResources.length,"default-file":"trail.png","name-placeholder":"trail","show-folder":!1,onPick:I(r),onReset:I(h),onRemove:I(u),onUpdateWeight:I(d),onToggleLock:I(f)},{default:Hu(()=>[j[90]||(j[90]=w("div",{class:"resource-divider"},null,-1)),Te(Ue,{label:H.$t("modifiers.trailRotation"),min:-360,max:360,step:1,"model-value":$.rotation,"onUpdate:modelValue":U=>I(c)($.id,U)},null,8,["label","model-value","onUpdate:modelValue"]),Te(Ue,{label:H.$t("modifiers.trailBones"),min:2,max:16,step:1,"model-value":$.boneCount,"onUpdate:modelValue":U=>I(a)($.id,U)},null,8,["label","model-value","onUpdate:modelValue"]),Te(Ue,{label:H.$t("modifiers.trailRatio"),min:0,max:100,step:1,modelValue:$.trailRatio,"onUpdate:modelValue":U=>$.trailRatio=U},null,8,["label","modelValue","onUpdate:modelValue"]),w("label",wW,[w("span",null,k(H.$t("modifiers.trailLength")),1),pe(w("select",{"onUpdate:modelValue":U=>$.lengthMode=U,class:"inp"},[w("option",_W,k(H.$t("common.fixed")),1),w("option",TW,k(H.$t("modifiers.randomRange")),1)],8,SW),[[St,$.lengthMode]])]),$.lengthMode==="fixed"?(Q(),Pt(Ue,{key:0,label:H.$t("modifiers.lengthRatio"),min:0,max:500,step:1,modelValue:$.length,"onUpdate:modelValue":U=>$.length=U},null,8,["label","modelValue","onUpdate:modelValue"])):(Q(),te(Me,{key:1},[Te(Ue,{label:H.$t("modifiers.lengthMin"),min:0,max:500,step:1,modelValue:$.lengthMin,"onUpdate:modelValue":U=>$.lengthMin=U},null,8,["label","modelValue","onUpdate:modelValue"]),Te(Ue,{label:H.$t("modifiers.lengthMax"),min:0,max:500,step:1,modelValue:$.lengthMax,"onUpdate:modelValue":U=>$.lengthMax=U},null,8,["label","modelValue","onUpdate:modelValue"])],64)),w("label",EW,[w("span",null,k(H.$t("modifiers.trailWidth")),1),pe(w("select",{"onUpdate:modelValue":U=>$.widthSizeMode=U,class:"inp"},[w("option",MW,k(H.$t("common.fixed")),1),w("option",AW,k(H.$t("modifiers.randomRange")),1)],8,CW),[[St,$.widthSizeMode]])]),$.widthSizeMode==="fixed"?(Q(),Pt(Ue,{key:2,label:H.$t("modifiers.widthRatio"),min:0,max:500,step:1,modelValue:$.width,"onUpdate:modelValue":U=>$.width=U},null,8,["label","modelValue","onUpdate:modelValue"])):(Q(),te(Me,{key:3},[Te(Ue,{label:H.$t("modifiers.widthMin"),min:0,max:500,step:1,modelValue:$.widthMin,"onUpdate:modelValue":U=>$.widthMin=U},null,8,["label","modelValue","onUpdate:modelValue"]),Te(Ue,{label:H.$t("modifiers.widthMax"),min:0,max:500,step:1,modelValue:$.widthMax,"onUpdate:modelValue":U=>$.widthMax=U},null,8,["label","modelValue","onUpdate:modelValue"])],64)),w("label",IW,[w("span",null,k(H.$t("modifiers.widthScale")),1),pe(w("select",{"onUpdate:modelValue":U=>$.widthMode=U,class:"inp"},[w("option",RW,k(H.$t("modifiers.followParticle")),1),w("option",kW,k(H.$t("common.fixed")),1)],8,PW),[[St,$.widthMode]])]),w("label",FW,[pe(w("input",{type:"checkbox","onUpdate:modelValue":U=>$.lifeLengthEnabled=U},null,8,LW),[[_t,$.lifeLengthEnabled]]),j[88]||(j[88]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.lifeLengthCurve")),1)]),$.lifeLengthEnabled?(Q(),Pt(bs,{key:4,modelValue:$.lifeLengthCurve,"onUpdate:modelValue":U=>$.lifeLengthCurve=U,"default-value":I(O)},null,8,["modelValue","onUpdate:modelValue","default-value"])):_e("",!0),w("label",OW,[pe(w("input",{type:"checkbox","onUpdate:modelValue":U=>$.shapeEnabled=U},null,8,$W),[[_t,$.shapeEnabled]]),j[89]||(j[89]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.shapeCurve")),1)]),$.shapeEnabled?(Q(),Pt(bs,{key:5,modelValue:$.shapeCurve,"onUpdate:modelValue":U=>$.shapeCurve=U,"default-value":I(V)},null,8,["modelValue","onUpdate:modelValue","default-value"])):_e("",!0),w("div",NW,[w("span",null,k(H.$t("modifiers.colorMode")),1),w("div",DW,[w("button",{class:Pe(["axis-mode",{on:$.colorMode==="particle"}]),onClick:U=>$.colorMode="particle"},k(H.$t("modifiers.followParticle")),11,BW),w("button",{class:Pe(["axis-mode",{on:$.colorMode==="fixed"}]),onClick:U=>$.colorMode="fixed"},k(H.$t("common.fixed")),11,UW),w("button",{class:Pe(["axis-mode",{on:$.colorMode==="curve"}]),onClick:U=>$.colorMode="curve"},k(H.$t("common.curve")),11,VW)])]),w("label",XW,[w("span",null,k(H.$t("modifiers.blendMode")),1),pe(w("select",{"onUpdate:modelValue":U=>$.blend=U,class:"inp"},[w("option",GW,k(H.$t("appearance.normal")),1),w("option",HW,k(H.$t("appearance.add")),1),w("option",jW,k(H.$t("appearance.multiply")),1),w("option",WW,k(H.$t("appearance.screen")),1)],8,YW),[[St,$.blend]])]),$.colorMode==="fixed"?(Q(),te("label",zW,[w("span",null,k(H.$t("modifiers.fixedColor")),1),pe(w("input",{class:"colr",type:"color","onUpdate:modelValue":U=>$.color=U},null,8,qW),[[Je,$.color]]),w("input",{class:"hex-input",value:$.color,onChange:U=>I(m)($,U),onKeydown:Wr(tt(U=>I(p)($,U),["prevent"]),["enter"])},null,40,KW)])):$.colorMode==="curve"?(Q(),Pt(RE,{key:7,modelValue:$.colorGradient,"onUpdate:modelValue":U=>$.colorGradient=U},null,8,["modelValue","onUpdate:modelValue"])):_e("",!0),w("div",JW,[w("span",null,k(H.$t("modifiers.alphaMode")),1),w("div",ZW,[w("button",{class:Pe(["axis-mode",{on:$.alphaMode==="particle"}]),onClick:U=>$.alphaMode="particle"},k(H.$t("modifiers.followParticle")),11,QW),w("button",{class:Pe(["axis-mode",{on:$.alphaMode==="fixed"}]),onClick:U=>$.alphaMode="fixed"},k(H.$t("common.fixed")),11,e7),w("button",{class:Pe(["axis-mode",{on:$.alphaMode==="curve"}]),onClick:U=>$.alphaMode="curve"},k(H.$t("common.curve")),11,t7)])]),$.alphaMode==="fixed"?(Q(),Pt(Ue,{key:8,label:H.$t("modifiers.opacity"),min:0,max:1,step:.01,modelValue:$.alpha,"onUpdate:modelValue":U=>$.alpha=U},null,8,["label","modelValue","onUpdate:modelValue"])):_e("",!0),$.alphaMode==="curve"?(Q(),Pt(bs,{key:9,modelValue:$.alphaCurve,"onUpdate:modelValue":U=>$.alphaCurve=U,"default-value":I(W)},null,8,["modelValue","onUpdate:modelValue","default-value"])):_e("",!0)]),_:2},1032,["resource","resource-count","onPick","onReset","onRemove","onUpdateWeight","onToggleLock"]))),128)),w("input",{ref_key:"trailTextureFileInput",ref:i,class:"file-input",type:"file",accept:"image/png,image/jpeg,image/webp",onChange:j[48]||(j[48]=(...$)=>I(l)&&I(l)(...$))},null,544),w("div",i7,[Te(Ue,{label:H.$t("modifiers.gridRows"),min:2,max:16,step:1,"model-value":I(t).config.trailGridRows,"onUpdate:modelValue":j[49]||(j[49]=$=>I(o)("trailGridRows",$))},null,8,["label","model-value"]),Te(Ue,{label:H.$t("modifiers.gridCols"),min:2,max:32,step:1,"model-value":I(t).config.trailGridCols,"onUpdate:modelValue":j[50]||(j[50]=$=>I(o)("trailGridCols",$))},null,8,["label","model-value"])]),w("div",n7,k(H.$t("modifiers.trailHint")),1)])):_e("",!0)]),w("div",s7,[w("label",r7,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[51]||(j[51]=$=>I(t).config.emitterFollow=$),disabled:I(t).config.streamBehavior==="loop"},null,8,o7),[[_t,I(t).config.emitterFollow]]),j[91]||(j[91]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.enableFollow")),1)]),I(t).config.emitterFollow&&I(t).config.streamBehavior!=="loop"?(Q(),te("div",a7,[w("label",l7,[w("span",null,k(H.$t("modifiers.followMode")),1),w("select",{value:I(t).config.emitterFollowMode,class:"inp",onChange:j[52]||(j[52]=$=>I(M)($,I(t).config))},[w("option",h7,k(H.$t("modifiers.noFollow")),1),w("option",u7,k(H.$t("modifiers.followPath")),1),I(g)||I(t).config.emitterFollowMode==="bone"?(Q(),te("option",d7,k(H.$t("modifiers.selectedBone")),1)):_e("",!0)],40,c7)]),I(t).config.emitterFollowMode==="path"?(Q(),te(Me,{key:0},[w("label",f7,[w("span",null,k(H.$t("modifiers.followPath")),1),pe(w("select",{"onUpdate:modelValue":j[53]||(j[53]=$=>I(t).config.emitterFollowPathId=$),class:"inp"},[w("option",m7,k(H.$t("modifiers.noFollow")),1),(Q(!0),te(Me,null,It(I(e).paths,$=>(Q(),te("option",{key:$.id,value:$.id},k($.name),9,p7))),128))],512),[[St,I(t).config.emitterFollowPathId,void 0,{number:!0}]])]),w("label",g7,[w("span",null,k(H.$t("modifiers.emitterAngleMode")),1),pe(w("select",{"onUpdate:modelValue":j[54]||(j[54]=$=>I(t).config.emitterAngleMode=$),class:"inp"},[w("option",v7,k(H.$t("modifiers.fixedAngle")),1),w("option",y7,k(H.$t("modifiers.followMoveDirection")),1)],512),[[St,I(t).config.emitterAngleMode]])]),w("div",b7,[w("span",null,k(H.$t("modifiers.moveProgressCurve")),1)]),Te(bs,{modelValue:I(t).config.emitterFollowCurve,"onUpdate:modelValue":j[55]||(j[55]=$=>I(t).config.emitterFollowCurve=$),"default-value":I(B)},null,8,["modelValue","default-value"]),w("div",x7,[w("label",w7,[w("span",null,k(H.$t("modifiers.moveDuration")),1),pe(w("input",{"onUpdate:modelValue":j[56]||(j[56]=$=>I(t).config.emitterFollowDuration=$),type:"number",min:"0.05",step:"0.05",class:"inp"},null,512),[[Je,I(t).config.emitterFollowDuration,void 0,{number:!0}]])]),w("label",S7,[w("span",null,k(H.$t("modifiers.followSpace")),1),pe(w("select",{"onUpdate:modelValue":j[57]||(j[57]=$=>I(t).config.emitterFollowSpace=$),class:"inp"},[w("option",_7,k(H.$t("modifiers.localSpace")),1),w("option",T7,k(H.$t("modifiers.worldSpace")),1)],512),[[St,I(t).config.emitterFollowSpace]])])]),w("label",E7,[w("span",null,k(H.$t("modifiers.moveDirection")),1),pe(w("select",{"onUpdate:modelValue":j[58]||(j[58]=$=>I(t).config.emitterFollowDirection=$),class:"inp"},[w("option",C7,k(H.$t("modifiers.forward")),1),w("option",M7,k(H.$t("modifiers.reverse")),1)],512),[[St,I(t).config.emitterFollowDirection]])]),Te(Ue,{label:H.$t("modifiers.followOffset"),min:0,max:1,step:.01,modelValue:I(t).config.emitterFollowOffset,"onUpdate:modelValue":j[59]||(j[59]=$=>I(t).config.emitterFollowOffset=$)},null,8,["label","modelValue"]),w("div",A7,k(H.$t("modifiers.followSpaceHint")),1)],64)):I(t).config.emitterFollowMode==="bone"?(Q(),te(Me,{key:1},[I(v)?(Q(),te("div",I7,[yt(k(H.$t("modifiers.followTarget")),1),w("strong",null,k(I(v).spine.name)+" / "+k(I(v).boneName),1)])):(Q(),te("div",P7,k(H.$t("modifiers.noValidBone")),1)),I(g)&&(!I(v)||I(g).spine.id!==I(v).spine.id||I(g).boneName!==I(v).boneName)?(Q(),te("button",{key:2,class:"bone-follow-rebind",onClick:j[60]||(j[60]=$=>I(P)(I(t).config))},k(I(v)?H.$t("modifiers.rebind"):H.$t("modifiers.bind"))+k(H.$t("modifiers.selectedBoneLabel"))+k(I(g).spine.name)+" / "+k(I(g).boneName),1)):_e("",!0),I(v)?(Q(),te(Me,{key:3},[w("label",R7,[w("span",null,k(H.$t("modifiers.followSpace")),1),pe(w("select",{"onUpdate:modelValue":j[61]||(j[61]=$=>I(t).config.emitterFollowSpace=$),class:"inp"},[w("option",k7,k(H.$t("modifiers.boneLocalSpace")),1),w("option",F7,k(H.$t("modifiers.boneWorldSpace")),1)],512),[[St,I(t).config.emitterFollowSpace]])]),w("div",L7,[w("label",O7,[w("span",null,k(H.$t("modifiers.offsetX")),1),pe(w("input",{"onUpdate:modelValue":j[62]||(j[62]=$=>I(t).config.emitterFollowBoneOffsetX=$),type:"number",step:"1",class:"inp"},null,512),[[Je,I(t).config.emitterFollowBoneOffsetX,void 0,{number:!0}]])]),w("label",$7,[w("span",null,k(H.$t("modifiers.offsetY")),1),pe(w("input",{"onUpdate:modelValue":j[63]||(j[63]=$=>I(t).config.emitterFollowBoneOffsetY=$),type:"number",step:"1",class:"inp"},null,512),[[Je,I(t).config.emitterFollowBoneOffsetY,void 0,{number:!0}]])])]),w("div",N7,[w("label",D7,[w("span",null,k(H.$t("modifiers.rotationOffset")),1),pe(w("input",{"onUpdate:modelValue":j[64]||(j[64]=$=>I(t).config.emitterFollowBoneRotation=$),type:"number",step:"1",class:"inp"},null,512),[[Je,I(t).config.emitterFollowBoneRotation,void 0,{number:!0}]])]),w("label",B7,[w("span",null,k(H.$t("modifiers.scaleOffsetX")),1),pe(w("input",{"onUpdate:modelValue":j[65]||(j[65]=$=>I(t).config.emitterFollowBoneScaleX=$),type:"number",step:"0.05",class:"inp"},null,512),[[Je,I(t).config.emitterFollowBoneScaleX,void 0,{number:!0}]])]),w("label",U7,[w("span",null,k(H.$t("modifiers.scaleOffsetY")),1),pe(w("input",{"onUpdate:modelValue":j[66]||(j[66]=$=>I(t).config.emitterFollowBoneScaleY=$),type:"number",step:"0.05",class:"inp"},null,512),[[Je,I(t).config.emitterFollowBoneScaleY,void 0,{number:!0}]])])]),w("div",V7,k(H.$t("modifiers.boneFollowHint")),1)],64)):_e("",!0)],64)):_e("",!0)])):_e("",!0)]),w("div",X7,[w("label",Y7,[pe(w("input",{type:"checkbox","onUpdate:modelValue":j[67]||(j[67]=$=>I(t).config.collision=$)},null,512),[[_t,I(t).config.collision]]),j[92]||(j[92]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.enableCollision")),1)]),I(t).config.collision?(Q(),te("div",G7,[w("div",H7,k(H.$t("modifiers.collisionObjects")),1),w("div",j7,[(Q(!0),te(Me,null,It(I(y),$=>(Q(),te("span",{key:$.id,class:Pe(["collision-filter-tag",{disabled:!$.enabled}]),title:$.enabled?$.name:H.$t("modifiers.colliderDisabled",{name:$.name})},[w("span",null,k($.name),1),w("button",{type:"button","aria-label":H.$t("modifiers.clearCollider",{name:$.name}),onClick:U=>I(E)($.id)},"×",8,z7)],10,W7))),128)),w("button",{type:"button",class:Pe(["collision-filter-add",{active:I(b)}]),disabled:I(x).length===0,title:I(x).length?H.$t("modifiers.addCollider"):H.$t("modifiers.noAvailableColliders"),onClick:j[68]||(j[68]=$=>b.value=!I(b))},"+",10,q7)]),I(y).length===0?(Q(),te("div",K7,k(H.$t("modifiers.noCollidersSelected")),1)):_e("",!0),I(b)&&I(x).length?(Q(),te("div",J7,[(Q(!0),te(Me,null,It(I(x),$=>(Q(),te("button",{key:$.id,type:"button",onClick:U=>I(_)($.id)},[w("span",null,k($.name),1),w("small",null,k($.enabled?H.$t("modifiers.available"):H.$t("modifiers.disabled")),1)],8,Z7))),128))])):_e("",!0),w("div",Q7,k(H.$t("modifiers.collisionHint")),1)])):_e("",!0)]),w("div",e9,[w("label",t9,[pe(w("input",{"onUpdate:modelValue":j[69]||(j[69]=$=>I(t).config.eventEnabled=$),type:"checkbox"},null,512),[[_t,I(t).config.eventEnabled]]),j[93]||(j[93]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(H.$t("modifiers.enableSubEmitter")),1)]),I(t).config.eventEnabled?(Q(),te("div",i9,[(Q(!0),te(Me,null,It(I(t).config.events,($,U)=>(Q(),te("div",{key:$.id,class:"event-card"},[w("div",n9,[pe(w("select",{"onUpdate:modelValue":z=>$.event=z,class:"inp event-select",title:H.$t("modifiers.triggerTiming")},[w("option",r9,k(H.$t("modifiers.birth")),1),w("option",o9,k(H.$t("modifiers.death")),1),w("option",a9,k(H.$t("modifiers.collision")),1)],8,s9),[[St,$.event]]),pe(w("select",{"onUpdate:modelValue":z=>$.targetSystemId=z,class:"inp event-target",title:H.$t("modifiers.chooseTarget")},[w("option",c9,k(H.$t("modifiers.noTarget")),1),(Q(!0),te(Me,null,It(L.value,z=>(Q(),te("option",{key:z.id,value:z.id},k(z.config.name||`ParticleSystem${z.id}`),9,h9))),128))],8,l9),[[St,$.targetSystemId,void 0,{number:!0}]]),w("button",{type:"button",class:"event-remove",title:H.$t("modifiers.deleteSubEmitter"),onClick:z=>Z(U)},"✕",8,u9)]),w("label",d9,[w("span",null,k(H.$t("modifiers.probability")),1),pe(w("input",{"onUpdate:modelValue":z=>$.probability=z,type:"number",min:"0",max:"1",step:"0.01",class:"inp"},null,8,f9),[[Je,$.probability,void 0,{number:!0}]])]),$.event==="collision"?(Q(),te("label",m9,[w("span",null,k(H.$t("modifiers.collisionLimit")),1),w("input",{value:$.collisionLimit??1,type:"number",min:"1",max:"4",step:"1",class:"inp",onInput:z=>se($,z)},null,40,p9)])):_e("",!0),w("div",g9,[w("span",null,k(H.$t("modifiers.inherit")),1),w("button",{type:"button",class:"inherit-trigger",onPointerdown:j[70]||(j[70]=tt(()=>{},["stop"])),onClick:tt(z=>ve($,z),["stop"])},[w("span",y9,k(G($)),1),j[94]||(j[94]=w("i",null,"⌄",-1))],40,v9)]),K($,"color")?(Q(),te("label",b9,[w("span",null,k(H.$t("modifiers.colorInheritMode")),1),pe(w("select",{"onUpdate:modelValue":z=>$.colorInheritMode=z,class:"inp"},[w("option",w9,k(H.$t("modifiers.add")),1),w("option",S9,k(H.$t("modifiers.replace")),1)],8,x9),[[St,$.colorInheritMode]])])):_e("",!0)]))),128)),w("button",{type:"button",class:"event-add",onClick:q},k(H.$t("modifiers.addSubEmitter")),1)])):_e("",!0)])],512),[[Fi,!I(S).mods]])]),(Q(),Pt(ux,{to:"body"},[F.value&&D.value?(Q(),te("div",{key:0,class:"inherit-menu",style:Vt({left:`${F.value.left}px`,top:`${F.value.top}px`,width:`${F.value.width}px`}),onPointerdown:j[73]||(j[73]=tt(()=>{},["stop"]))},[w("button",{type:"button",class:"inherit-option",onClick:j[71]||(j[71]=$=>oe(D.value))},[w("span",_9,k(X(D.value).length===0?"✓":""),1),yt(k(H.$t("modifiers.inheritNone")),1)]),w("button",{type:"button",class:"inherit-option",onClick:j[72]||(j[72]=$=>le(D.value))},[w("span",T9,k(X(D.value).length===4?"✓":""),1),yt(k(H.$t("modifiers.inheritAll")),1)]),j[95]||(j[95]=w("div",{class:"inherit-divider"},null,-1)),(Q(!0),te(Me,null,It(N.value,$=>(Q(),te("button",{key:$.key,type:"button",class:"inherit-option",onClick:U=>J(D.value,$.key)},[w("span",C9,k(K(D.value,$.key)?"✓":""),1),yt(k($.label),1)],8,E9))),128))],36)):_e("",!0)]))],64))}}),A9=li(M9,[["__scopeId","data-v-f5ccc52c"]]),I9={class:"group"},P9={class:"caret"},R9=["title"],k9={class:"group-body export-settings"},F9={class:"export-field"},L9={class:"export-field"},O9={class:"export-field"},$9={value:"linear"},N9={value:"bezier"},D9={class:"export-help"},B9={key:0,class:"export-help"},U9={class:"export-fps-row"},V9={class:"export-field export-fps-field"},X9={class:"export-checkbox"},Y9={class:"export-help"},G9={class:"export-switches"},H9={class:"switch-row export-switch"},j9={class:"switch-row export-switch"},W9={class:"switch-row export-switch export-switch-last"},z9=qt({__name:"ExportSettingsSection",setup(n){const{exportSettings:e,collapsed:t,toggle:i,resetModule:s,normalizeExportFps:r,select:o}=oo();return(a,c)=>(Q(),te("div",I9,[w("div",{class:"group-head",onClick:c[1]||(c[1]=l=>I(i)("export"))},[w("span",P9,k(I(t).export?"▸":"▾"),1),w("span",null,k(a.$t("export.title")),1),w("button",{class:"group-reset",title:a.$t("export.reset"),onClick:c[0]||(c[0]=tt(l=>I(s)("export"),["stop"]))},k(a.$t("common.reset")),9,R9)]),pe(w("div",k9,[w("label",F9,[w("span",null,k(a.$t("export.imagesPath")),1),pe(w("input",{"onUpdate:modelValue":c[2]||(c[2]=l=>I(e).imagesPath=l),class:"inp export-input",type:"text",placeholder:"./images/"},null,512),[[Je,I(e).imagesPath,void 0,{trim:!0}]])]),w("label",L9,[w("span",null,k(a.$t("export.spineVersion")),1),pe(w("select",{"onUpdate:modelValue":c[3]||(c[3]=l=>I(e).spineVersion=l),class:"inp export-input"},[...c[11]||(c[11]=[RM('<option value="3.8" data-v-63cfb71e>Spine 3.8</option><option value="4.0" data-v-63cfb71e>Spine 4.0</option><option value="4.1" data-v-63cfb71e>Spine 4.1</option><option value="4.2" data-v-63cfb71e>Spine 4.2</option><option value="4.3" data-v-63cfb71e>Spine 4.3</option>',5)])],512),[[St,I(e).spineVersion]])]),w("label",O9,[w("span",null,k(a.$t("export.keyframeCurve")),1),pe(w("select",{"onUpdate:modelValue":c[4]||(c[4]=l=>I(e).keyframeCurve=l),class:"inp export-input"},[w("option",$9,k(a.$t("export.linear")),1),w("option",N9,k(a.$t("export.smoothBezier")),1)],512),[[St,I(e).keyframeCurve]])]),w("div",D9,k(a.$t("export.bezierHelp")),1),I(e).spineVersion==="3.8"?(Q(),te("div",B9,k(a.$t("export.spine38Help")),1)):_e("",!0),w("div",U9,[w("label",V9,[w("span",null,k(a.$t("export.fps")),1),pe(w("input",{"onUpdate:modelValue":c[5]||(c[5]=l=>I(e).fps=l),class:"inp export-input",type:"number",min:"1",max:"240",step:"1",onChange:c[6]||(c[6]=(...l)=>I(r)&&I(r)(...l))},null,544),[[Je,I(e).fps,void 0,{number:!0}]])]),w("label",X9,[pe(w("input",{"onUpdate:modelValue":c[7]||(c[7]=l=>I(e).omitFps=l),type:"checkbox"},null,512),[[_t,I(e).omitFps]]),yt(k(a.$t("export.omitFps")),1)])]),w("div",Y9,k(a.$t("export.fpsHelp")),1),w("div",G9,[w("label",H9,[pe(w("input",{"onUpdate:modelValue":c[8]||(c[8]=l=>I(e).integerFrameAlignment=l),type:"checkbox"},null,512),[[_t,I(e).integerFrameAlignment]]),c[12]||(c[12]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(a.$t("export.integerFrames")),1)]),w("label",j9,[pe(w("input",{"onUpdate:modelValue":c[9]||(c[9]=l=>I(e).bonePool=l),type:"checkbox"},null,512),[[_t,I(e).bonePool]]),c[13]||(c[13]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(a.$t("export.bonePool")),1)]),w("label",W9,[pe(w("input",{"onUpdate:modelValue":c[10]||(c[10]=l=>I(e).excludeEmptyAnimations=l),type:"checkbox"},null,512),[[_t,I(e).excludeEmptyAnimations]]),c[14]||(c[14]=w("span",{class:"switch-ui"},null,-1)),w("span",null,k(a.$t("export.excludeEmpty")),1)])])],512),[[Fi,!I(t).export]])]))}}),q9=li(z9,[["__scopeId","data-v-63cfb71e"]]),K9={class:"spine-export-actions"},J9=["disabled","title"],Z9=["disabled","title"],Q9=["disabled","title"],ez={key:0},tz=["href","title"],iz=["title"],nz=["href"],sz=qt({__name:"ParticleExportFooter",setup(n){const{exportSettings:e,exportBusy:t,exportTarget:i,exportMessage:s,exportError:r,connectorPairUrl:o,connectorStatusText:a,connectorStatusClass:c,connectorReady:l,connectorAuthorizationUrl:h,connectorDisabledReason:u,connectorButtonTitle:d,refreshConnectorHealth:f,exportSpineJson:m,exportSpineProject:p,exportSpineImages:g}=oo();return(v,b)=>(Q(),te(Me,null,[w("div",K9,[w("button",{type:"button",class:"export-spine-json",disabled:I(t),title:I(t)?v.$t("export.baking"):v.$t("export.exportJsonTitle",{version:I(e).spineVersion}),onClick:b[0]||(b[0]=(...y)=>I(m)&&I(m)(...y))},k(I(t)&&I(i)==="json"?v.$t("export.preparing"):v.$t("export.exportJson")),9,J9),w("button",{type:"button",class:"export-spine-images",disabled:I(t),title:v.$t("export.exportImagesTitle"),onClick:b[1]||(b[1]=(...y)=>I(g)&&I(g)(...y))},k(I(t)&&I(i)==="images"?v.$t("export.organizingImages"):v.$t("export.exportImages")),9,Z9),w("button",{type:"button",class:"export-spine-project",disabled:I(t)||!I(l),title:I(d),onClick:b[2]||(b[2]=(...y)=>I(p)&&I(p)(...y))},[w("span",null,k(I(t)&&I(i)==="spine"?v.$t("export.generatingProject"):v.$t("export.exportSpine")),1),!I(t)&&I(u)?(Q(),te("small",ez,k(I(u)),1)):_e("",!0)],8,Q9)]),w("div",{class:Pe(["connector-status",I(c)])},[b[5]||(b[5]=w("span",{class:"connector-dot"},null,-1)),yt(k(I(a))+" ",1),I(h)?(Q(),te("a",{key:0,href:I(h),target:"_blank",rel:"noopener",title:v.$t("export.authorizeTitle")},k(v.$t("export.authorize")),9,tz)):_e("",!0),w("button",{type:"button",title:v.$t("export.refreshConnector"),onClick:b[3]||(b[3]=(...y)=>I(f)&&I(f)(...y))},k(v.$t("export.refresh")),9,iz)],2),I(s)?(Q(),te("div",{key:0,class:Pe(["export-message",{error:I(r)}])},[yt(k(I(s))+" ",1),I(o)?(Q(),te("a",{key:0,href:I(o),target:"_blank",rel:"noopener",onClick:b[4]||(b[4]=y=>o.value="")},k(v.$t("export.authorize")),9,nz)):_e("",!0)],2)):_e("",!0)],64))}}),rz=li(sz,[["__scopeId","data-v-33af5045"]]),oz={class:"panel"},az={class:"panel-header"},lz={class:"panel-scroll"},cz=qt({__name:"ParticlePanel",setup(n){const{activeObjectType:e,sys:t}=A5();return(i,s)=>(Q(),te("div",oz,[w("div",az,[w("span",null,k(i.$t("app.title")),1)]),w("div",lz,[Te(B5),Te(uY),I(e)==="particle"&&I(t)?(Q(),te(Me,{key:0},[Te(h6),Te($6),Te(gj),Te(A9),Te(q9)],64)):_e("",!0)]),Te(rz)]))}}),hz=li(cz,[["__scopeId","data-v-14a55de6"]]),ha=n=>Math.max(0,Number(n)||0);function uz(n,e){const t=Math.max(1,e),i=new Map(n.map(b=>[b.id,b])),s=new Set;for(const b of n)if(b.config.eventEnabled)for(const y of b.config.events||[])y.targetSystemId>0&&y.targetSystemId!==b.id&&i.has(y.targetSystemId)&&s.add(y.targetSystemId);const r=new Map;for(const b of n)if(b.config.eventEnabled)for(const y of b.config.events||[]){if(y.targetSystemId<=0||y.targetSystemId===b.id||!i.has(y.targetSystemId))continue;const x=r.get(y.targetSystemId);x?x.push({parent:b,rule:y}):r.set(y.targetSystemId,[{parent:b,rule:y}])}const o=b=>ha(b.delay),a=b=>ha(b.delay),c=b=>{const y=o(b);return b.mode!=="stream"?y:b.streamBehavior==="loop"?y+zn(b,t).total/t:y+Math.max(1/t,Number(b.duration)||0)},l=b=>{const y=ha(b.lifeMin),x=ha(b.lifeMax);return b.lifeMode==="fixed"?y:Math.min(y,x)},h=b=>{const y=ha(b.lifeMin),x=ha(b.lifeMax);return b.lifeMode==="fixed"?y:Math.max(y,x)},u=new Map,d=new Map,f=new Set,m=new Set,p=b=>{const y=u.get(b.id);if(y!=null)return y;if(f.has(b.id))return o(b.config);f.add(b.id);let x=1/0;for(const{parent:_,rule:E}of r.get(b.id)||[]){const S=s.has(_.id)?p(_)+a(_.config):o(_.config),C=E.event==="death"?l(_.config):0;x=Math.min(x,S+C)}return Number.isFinite(x)||(x=o(b.config)),f.delete(b.id),u.set(b.id,x),x},g=b=>{const y=d.get(b.id);if(y!=null)return y;if(m.has(b.id))return c(b.config);m.add(b.id);let x=-1/0;for(const{parent:_,rule:E}of r.get(b.id)||[]){const S=s.has(_.id)?g(_)+a(_.config):c(_.config),C=E.event==="birth"?0:h(_.config);x=Math.max(x,S+C)}return Number.isFinite(x)||(x=c(b.config)),m.delete(b.id),d.set(b.id,x),x},v=new Map;for(const b of s){const y=i.get(b);if(!y)continue;const x=p(y),_=g(y);v.set(b,{firstTrigger:x,lastTrigger:_,end:Math.max(x,_)+h(y.config)})}return v}const dz={class:"timeline"},fz={class:"tl-controls"},mz=["title"],pz=["title"],gz=["title"],vz=["title"],yz=["title"],bz=["title","aria-label"],xz={class:"tl-ab-loop"},wz=["title"],Sz={class:"tl-ab-title"},_z=["title"],Tz=["max","aria-label","onKeydown"],Ez=["title"],Cz=["min","max","aria-label","onKeydown"],Mz={class:"tl-frame"},Az={class:"tl-legend"},Iz=["disabled","title"],Pz={class:"tl-animation-menu-title"},Rz=["onClick"],kz={key:0},Fz={class:"tl-animation-editor"},Lz=["aria-label"],Oz=["title"],$z={key:0,class:"tl-animation-error"},Nz={class:"tl-animation-actions"},Dz=["disabled"],Bz={key:1,class:"tl-animation-hint"},Uz={class:"tl-anim tl-spine-preview"},Vz=["value","disabled"],Xz={value:""},Yz=["value"],Gz={class:"tl-zoom"},Hz={class:"tl-ticks"},jz={class:"tl-ticklabel"},Wz={class:"tl-lanes"},zz=["onPointerdown"],qz={class:"lane-name"},Kz=["title","onPointerdown"],Jz=["title","onPointerdown"],Zz=["title","onPointerdown"],Qz={class:"lane-name"},eq={key:0,class:"tl-empty"},tq=qt({__name:"Timeline",setup(n){const e=Wo(),{t}=fn(),i=De(null),s=De(null),r=De(!1),o=De("animation"),a=De("");da(()=>{(!Array.isArray(e.timeline.animations)||!e.timeline.animations.length)&&(e.timeline.animations=["animation"]),e.timeline.animations.includes(e.timeline.animation)||(e.timeline.animation=e.timeline.animations[0]);for(const $ of e.systems)(!$.animation||!e.timeline.animations.includes($.animation))&&($.animation=e.timeline.animations[0])});const c=Fe(()=>e.systems.find($=>$.id===e.activeId)||null);function l(){c.value&&(r.value=!r.value,o.value=c.value.animation,a.value="")}function h($){const U=c.value;U&&(e.setSystemAnimation(U.id,$),o.value=$,a.value="")}function u(){const $=e.addAnimation();o.value=$,a.value=""}function d(){var z;const $=((z=c.value)==null?void 0:z.animation)||e.timeline.animation,U=o.value.trim();if(!U){a.value=t("timeline.animationNameEmpty");return}if(U!==$&&e.timeline.animations.includes(U)){a.value=t("timeline.animationNameDuplicate");return}if(!e.renameAnimation($,U)){a.value=t("timeline.animationRenameFailed");return}o.value=U,a.value=""}function f(){var z,ee;const $=((z=c.value)==null?void 0:z.animation)||e.timeline.animation;if(!e.removeAnimation($)){a.value=t("timeline.keepOneAnimation");return}const U=((ee=c.value)==null?void 0:ee.animation)||e.timeline.animation;o.value=U,a.value=""}function m($){var U;(U=s.value)!=null&&U.contains($.target)||(r.value=!1)}Sn(()=>document.addEventListener("pointerdown",m)),eo(()=>document.removeEventListener("pointerdown",m));const p=Fe(()=>Math.max(1,e.timeline.fps||30)),g=De(Math.max(120,e.timeline.totalFrames)),v=De({}),b=De({}),y=De({}),x=De({}),_=De(String(e.timeline.playbackStart)),E=De(String(e.timeline.playbackEnd));ei(()=>e.timeline.playbackStart,$=>{_.value=String($)}),ei(()=>e.timeline.playbackEnd,$=>{E.value=String($)});const S=Fe(()=>e.timeline.totalFrames);ei(S,$=>{$>g.value&&(g.value=Math.min(2e3,$))});const C=Fe(()=>g.value<=30?t("timeline.zoomIn"):g.value>=300?t("timeline.zoomOut"):t("timeline.zoomFit")),M=Fe(()=>e.spines.filter($=>$.selectedAnimation&&$.animations.some(U=>U.name===$.selectedAnimation&&U.duration>0))),P=Fe(()=>(e.activeObjectType==="spine"?e.spines.find(U=>U.id===e.activeObjectId&&U.animations.length):null)||e.spines.find(U=>U.animations.length)||null);function A($){const U=P.value;U&&(U.selectedAnimation=$.target.value,e.recalcTotalFrames(),e.timeline.frame=0)}function R(){e.setPlaybackStart(Number(_.value)),_.value=String(e.timeline.playbackStart)}function B(){e.setPlaybackEnd(Number(E.value)),E.value=String(e.timeline.playbackEnd)}function O(){var U;const $=((U=i.value)==null?void 0:U.clientWidth)||600;return g.value/$}const W=Fe(()=>{const $=[],U=g.value;let z=1;g.value<=10?z=1:g.value<=50?z=5:g.value<=200?z=10:g.value<=500?z=50:z=100;for(let ee=0;ee<=U;ee+=z)$.push({f:ee,px:ee/O()});return $}),V=Fe(()=>e.timeline.frame/O()),Y=Fe(()=>Xa(e.systems)),L=Fe(()=>uz(e.systems,p.value));function N($){return Y.value.has($.id)}function F($){var z;return(N($)?((z=L.value.get($.id))==null?void 0:z.firstTrigger)??0:0)*p.value/O()+4}function D($){var ee;const U=$.config;if(N($)){const ne=((ee=L.value.get($.id))==null?void 0:ee.firstTrigger)??0,ue=v.value[$.id]??Math.max(0,Number(U.delay)||0);return(ne+ue)*p.value/O()}return(v.value[$.id]??Math.max(0,Number(U.delay)||0))*p.value/O()}function X($){const U=$.config,z=Math.max(0,Number(U.lifeMin)||0),ee=Math.max(0,Number(U.lifeMax)||0);return U.lifeMode==="fixed"?z:Math.max(z,ee)}function G($){if(N($)){const U=L.value.get($.id),z=(U==null?void 0:U.firstTrigger)??0,ee=(U==null?void 0:U.end)??z;return Math.max(0,ee-z)*p.value/O()}return J($)}function K($){if(N($)||$.config.mode!=="stream")return 0;if($.config.streamBehavior==="loop"){const z=$.config;return(y.value[$.id]??zn(z,p.value).loop)/O()}return(b.value[$.id]??Math.max(1/p.value,Number($.config.duration)||1))*p.value/O()}function J($){if(N($))return G($);const U=$.config;return U.mode==="stream"&&U.streamBehavior==="loop"?le($)+K($)+ve($):K($)+X($)*p.value/O()}function oe($){const U=$.config;return U.mode==="stream"&&U.streamBehavior==="loop"}function le($){return oe($)?zn($.config,p.value).start/O():0}function ve($){return oe($)?zn($.config,p.value).end/O():0}function Se($){var U;return((U=$.animations.find(z=>z.name===$.selectedAnimation))==null?void 0:U.duration)||0}function fe($){return(x.value[$.id]??Math.max(0,Number($.timeOffset)||0))*p.value/O()}function ye($){return Se($)*p.value/O()}function q($){const U=$.deltaY<0?.8:1.25;let z=g.value*U;z=Math.min(2e3,Math.max(10,z)),g.value=Math.round(z)}function Z($){const U=i.value;e.pause();const z=ne=>{const ue=U.getBoundingClientRect(),xe=Math.floor((ne.clientX-ue.left)/ue.width*g.value);e.timeline.frame=Math.max(0,Math.min(xe,S.value-1))};z($);const ee=()=>{window.removeEventListener("pointermove",z),window.removeEventListener("pointerup",ee)};window.addEventListener("pointermove",z),window.addEventListener("pointerup",ee)}function se($,U){$.stopPropagation();const z=$.clientX,ee=Math.max(0,Number(U.config.delay)||0),ne=O()/p.value,ue=Be=>{const he=(Be.clientX-z)*ne,ge=Math.max(0,Math.min(ee+he,600));v.value[U.id]=Math.round(ge*p.value)/p.value},xe=Be=>{window.removeEventListener("pointermove",ue),window.removeEventListener("pointerup",be),window.removeEventListener("pointercancel",Ne);const he=v.value[U.id];delete v.value[U.id],Be&&he!=null&&he!==ee&&(U.config.delay=he)},be=()=>xe(!0),Ne=()=>xe(!1);window.addEventListener("pointermove",ue),window.addEventListener("pointerup",be),window.addEventListener("pointercancel",Ne)}function H($,U){var Le;$.stopPropagation();const z=oe(U),ee=Math.max(0,Number(U.config.duration)||0),ne=zn(U.config,p.value).loop,ue=O()/p.value,xe=((Le=$.currentTarget.closest(".lane-bar"))==null?void 0:Le.getBoundingClientRect().left)??$.clientX,be=le(U);let Ne=!1;const Be=Ce=>{if(Ne=!0,z){const Ze=Math.min(1800,Math.max(1,Math.round((Ce.clientX-xe-be)/O())));y.value[U.id]=Ze}else{const Ze=Math.max(1/p.value,Math.min((Ce.clientX-xe)*ue,600));b.value[U.id]=Math.round(Ze*p.value)/p.value}},he=Ce=>{window.removeEventListener("pointermove",Be),window.removeEventListener("pointerup",ge),window.removeEventListener("pointercancel",We);const Ze=b.value[U.id],Ee=y.value[U.id];delete b.value[U.id],delete y.value[U.id],Ce&&Ne&&z&&Ee!=null&&Ee!==ne?U.config.loopDurationFrames=Ee:Ce&&Ne&&!z&&Ze!=null&&Ze!==ee&&(U.config.duration=Ze)},ge=()=>he(!0),We=()=>he(!1);window.addEventListener("pointermove",Be),window.addEventListener("pointerup",ge),window.addEventListener("pointercancel",We)}function j($,U){$.stopPropagation();const z=$.clientX,ee=Math.max(0,Number(U.timeOffset)||0),ne=O()/p.value,ue=Be=>{const he=Math.max(0,Math.min(ee+(Be.clientX-z)*ne,600));x.value[U.id]=Math.round(he*p.value)/p.value},xe=Be=>{window.removeEventListener("pointermove",ue),window.removeEventListener("pointerup",be),window.removeEventListener("pointercancel",Ne);const he=x.value[U.id];delete x.value[U.id],Be&&he!=null&&he!==ee&&(U.timeOffset=he,e.recalcTotalFrames())},be=()=>xe(!0),Ne=()=>xe(!1);window.addEventListener("pointermove",ue),window.addEventListener("pointerup",be),window.addEventListener("pointercancel",Ne)}return($,U)=>{var z,ee,ne;return Q(),te("div",dz,[w("div",fz,[w("button",{class:Pe(["tl-btn",{on:I(e).timeline.playing}]),onClick:U[0]||(U[0]=ue=>I(e).togglePlay()),title:I(e).timeline.playing?$.$t("timeline.pause"):$.$t("timeline.play")},k(I(e).timeline.playing?"❚❚":"▶"),11,mz),w("button",{class:"tl-btn",onClick:U[1]||(U[1]=ue=>I(e).toStart()),title:$.$t("timeline.toStart")},"⏮",8,pz),w("button",{class:"tl-btn",onClick:U[2]||(U[2]=ue=>I(e).previousFrame()),title:$.$t("timeline.previous")},"◀",8,gz),w("button",{class:"tl-btn",onClick:U[3]||(U[3]=ue=>I(e).nextFrame()),title:$.$t("timeline.next")},"▶",8,vz),w("button",{class:"tl-btn",onClick:U[4]||(U[4]=ue=>I(e).toEnd()),title:$.$t("timeline.toEnd")},"⏭",8,yz),w("button",{class:Pe(["tl-btn",{on:I(e).timeline.loop}]),title:$.$t("timeline.continuousLoop"),"aria-label":$.$t("timeline.continuousLoop"),onClick:U[5]||(U[5]=ue=>I(e).toggleLoop())},"⟳",10,bz),w("div",xz,[w("button",{class:Pe(["tl-ab-toggle",{on:I(e).timeline.abLoop}]),title:$.$t("timeline.abLoop"),onClick:U[6]||(U[6]=ue=>I(e).toggleABLoop())},[w("span",null,k($.$t("timeline.abLoopShort")),1),U[12]||(U[12]=w("i",{class:"tl-switch"},[w("b")],-1))],10,wz),I(e).timeline.abLoop?(Q(),te("div",{key:0,class:"tl-ab-popover",onPointerdown:U[9]||(U[9]=tt(()=>{},["stop"]))},[w("div",Sz,k($.$t("timeline.abRange")),1),w("label",{class:"tl-range",title:$.$t("timeline.playbackStart")},[U[13]||(U[13]=w("span",null,"A",-1)),pe(w("input",{"onUpdate:modelValue":U[7]||(U[7]=ue=>_.value=ue),type:"number",min:"0",max:Math.max(0,I(e).timeline.playbackEnd-1),"aria-label":$.$t("timeline.startFrame"),onChange:R,onKeydown:Wr(tt(R,["prevent"]),["enter"])},null,40,Tz),[[Je,_.value]])],8,_z),w("label",{class:"tl-range",title:$.$t("timeline.playbackEnd")},[U[14]||(U[14]=w("span",null,"B",-1)),pe(w("input",{"onUpdate:modelValue":U[8]||(U[8]=ue=>E.value=ue),type:"number",min:I(e).timeline.playbackStart+1,max:Math.max(1,I(e).timeline.totalFrames-1),"aria-label":$.$t("timeline.endFrame"),onChange:B,onKeydown:Wr(tt(B,["prevent"]),["enter"])},null,40,Cz),[[Je,E.value]])],8,Ez)],32)):_e("",!0)]),w("span",Mz,k($.$t("timeline.frameStatus",{current:I(e).timeline.frame,total:Math.max(0,I(e).timeline.totalFrames-1)})),1),w("span",Az,[U[15]||(U[15]=w("i",{class:"legend-emission"},null,-1)),yt(k($.$t("timeline.emission"))+" ",1),U[16]||(U[16]=w("i",{class:"legend-life"},null,-1)),yt(k($.$t("timeline.particleLife"))+" ",1),U[17]||(U[17]=w("i",{class:"legend-spine"},null,-1)),yt(k($.$t("timeline.spineAnimation")),1)]),w("div",{ref_key:"animationMenuRef",ref:s,class:"tl-anim tl-owner-animation"},[w("span",null,k($.$t("timeline.ownerAnimation")),1),w("button",{class:"tl-animation-trigger",disabled:!c.value,title:$.$t("timeline.setOwnerAnimation"),onClick:tt(l,["stop"])},[w("span",null,k(((z=c.value)==null?void 0:z.animation)||I(e).timeline.animation),1),U[18]||(U[18]=w("i",null,"⌄",-1))],8,Iz),r.value?(Q(),te("div",{key:0,class:"tl-animation-menu",onPointerdown:U[11]||(U[11]=tt(()=>{},["stop"]))},[w("div",Pz,k($.$t("timeline.chooseOwnerAnimation")),1),(Q(!0),te(Me,null,It(I(e).timeline.animations,ue=>{var xe,be;return Q(),te("button",{key:ue,class:Pe(["tl-animation-option",{on:((xe=c.value)==null?void 0:xe.animation)===ue}]),onClick:Ne=>h(ue)},[w("span",null,k(ue),1),((be=c.value)==null?void 0:be.animation)===ue?(Q(),te("i",kz,"✓")):_e("",!0)],10,Rz)}),128)),w("div",Fz,[pe(w("input",{"onUpdate:modelValue":U[10]||(U[10]=ue=>o.value=ue),class:"tl-animation-name",maxlength:"64","aria-label":$.$t("timeline.animationName"),onKeydown:Wr(d,["enter"])},null,40,Lz),[[Je,o.value]]),w("button",{title:$.$t("timeline.renameAnimation"),onClick:d},k($.$t("timeline.rename")),9,Oz)]),a.value?(Q(),te("div",$z,k(a.value),1)):_e("",!0),w("div",Nz,[w("button",{onClick:u},k($.$t("timeline.newAnimation")),1),w("button",{disabled:I(e).timeline.animations.length<=1,onClick:f},k($.$t("common.delete")),9,Dz)]),I(e).timeline.animations.length<=1?(Q(),te("div",Bz,k($.$t("timeline.keepOneAnimation")),1)):_e("",!0)],32)):_e("",!0)],512),w("label",Uz,[yt(k($.$t("timeline.spinePreview"))+" ",1),w("select",{class:"tl-sel",value:((ee=P.value)==null?void 0:ee.selectedAnimation)||"",disabled:!P.value,onChange:A},[w("option",Xz,k(P.value?$.$t("timeline.none"):$.$t("timeline.noSpineAnimation")),1),(Q(!0),te(Me,null,It(((ne=P.value)==null?void 0:ne.animations)||[],ue=>(Q(),te("option",{key:ue.name,value:ue.name},k(ue.name)+"("+k(ue.duration.toFixed(2))+"s) ",9,Yz))),128))],40,Vz)]),w("span",Gz,k(C.value),1)]),w("div",{class:"tl-viewport",ref_key:"vpRef",ref:i,onWheel:tt(q,["prevent"]),onPointerdown:Z},[w("div",Hz,[(Q(!0),te(Me,null,It(W.value,ue=>(Q(),te("div",{key:ue.f,class:"tl-tickline",style:Vt({left:ue.px+"px"})},[w("span",jz,k(ue.f)+"f",1)],4))),128))]),w("div",{class:"tl-playhead",style:Vt({left:V.value+"px"})},null,4),w("div",Wz,[(Q(!0),te(Me,null,It(I(e).systems,(ue,xe)=>(Q(),te("div",{key:ue.id,class:"tl-lane"},[w("span",{class:Pe(["lane-ico",{"sub-lane-ico":N(ue)}]),style:Vt({left:F(ue)+"px"})},"●",6),w("div",{class:Pe(["lane-bar",{"sub-emitter-bar":N(ue)}]),style:Vt({left:D(ue)+"px",width:G(ue)+"px"}),onPointerdown:tt(be=>se(be,ue),["stop"])},[w("span",qz,k(ue.config.name||$.$t("timeline.systemName",{index:xe+1})),1),w("span",{class:Pe(["bar-life",{"loop-life":!N(ue)&&oe(ue)}]),style:Vt({width:J(ue)+"px"})},null,6),!N(ue)&&oe(ue)?(Q(),te(Me,{key:0},[le(ue)?(Q(),te("span",{key:0,class:"bar-loop-transition bar-loop-start",style:Vt({width:le(ue)+"px"})},null,4)):_e("",!0),w("span",{class:"bar-emission bar-loop",style:Vt({left:le(ue)+"px",width:K(ue)+"px"})},[w("span",{class:"bar-handle",title:$.$t("timeline.dragLoopDuration"),onPointerdown:tt(be=>H(be,ue),["stop"])},null,40,Kz)],4),ve(ue)?(Q(),te("span",{key:1,class:"bar-loop-transition bar-loop-end",style:Vt({left:le(ue)+K(ue)+"px",width:ve(ue)+"px"})},null,4)):_e("",!0)],64)):!N(ue)&&ue.config.mode==="stream"?(Q(),te("span",{key:1,class:"bar-emission",style:Vt({width:K(ue)+"px"})},[w("span",{class:"bar-handle",title:$.$t("timeline.dragEmissionDuration"),onPointerdown:tt(be=>H(be,ue),["stop"])},null,40,Jz)],4)):_e("",!0)],46,zz)]))),128)),(Q(!0),te(Me,null,It(M.value,ue=>(Q(),te("div",{key:`spine-${ue.id}`,class:"tl-lane spine-lane"},[U[19]||(U[19]=w("span",{class:"lane-ico spine-ico"},"◆",-1)),w("div",{class:"spine-bar",style:Vt({left:fe(ue)+"px",width:ye(ue)+"px"}),title:$.$t("timeline.dragSpineStart"),onPointerdown:tt(xe=>j(xe,ue),["stop"])},[w("span",Qz,k(ue.name)+" · "+k(ue.selectedAnimation),1)],44,Zz)]))),128)),!I(e).systems.length&&!M.value.length?(Q(),te("div",eq,k($.$t("timeline.noAnimationData")),1)):_e("",!0)])],544)])}}}),iq=li(tq,[["__scopeId","data-v-6213c4a4"]]),nq={class:"transfer-heading"},sq={key:0},rq={class:"transfer-detail"},oq=qt({__name:"TransferProgressOverlay",setup(n){const e=De(null);return ei(()=>hi.visible,async t=>{var i;t&&(await Gu(),(i=e.value)==null||i.focus({preventScroll:!0}))},{flush:"post"}),(t,i)=>(Q(),Pt(WM,{name:"transfer-fade"},{default:Hu(()=>[I(hi).visible?(Q(),te("div",{key:0,ref_key:"overlayElement",ref:e,class:"transfer-overlay",role:"dialog","aria-modal":"true","aria-live":"polite",tabindex:"-1",onPointerdown:i[0]||(i[0]=tt(()=>{},["stop","prevent"])),onPointerup:i[1]||(i[1]=tt(()=>{},["stop","prevent"])),onClick:i[2]||(i[2]=tt(()=>{},["stop","prevent"])),onDblclick:i[3]||(i[3]=tt(()=>{},["stop","prevent"])),onContextmenu:i[4]||(i[4]=tt(()=>{},["stop","prevent"])),onWheel:i[5]||(i[5]=tt(()=>{},["stop","prevent"])),onKeydown:i[6]||(i[6]=tt(()=>{},["stop","prevent"]))},[w("div",{class:Pe(["transfer-dialog",{failed:I(hi).failed}])},[w("div",nq,[w("span",null,k(I(hi).title),1),I(hi).indeterminate?_e("",!0):(Q(),te("strong",sq,k(Math.round(I(hi).progress))+"%",1))]),w("div",{class:Pe(["transfer-track",{indeterminate:I(hi).indeterminate}])},[w("div",{class:"transfer-bar",style:Vt(I(hi).indeterminate?void 0:{width:`${I(hi).progress}%`})},null,4)],2),w("div",rq,k(I(hi).detail),1)],2)],544)):_e("",!0)]),_:1}))}}),aq=li(oq,[["__scopeId","data-v-592b922e"]]),lq=["inert","aria-hidden"],cq={class:"right"},hq={class:"stage-area"},uq=["title"],dq=qt({__name:"App",setup(n){const e=Wo();P$(e);const t=De(360),i=De(180);function s(o){o.preventDefault();const a=l=>{const h=e.settings.parameterPanelOnRight?window.innerWidth-l.clientX:l.clientX,u=Math.max(240,Math.min(h,window.innerWidth-200));t.value=u},c=()=>{window.removeEventListener("pointermove",a),window.removeEventListener("pointerup",c)};window.addEventListener("pointermove",a),window.addEventListener("pointerup",c)}function r(o){o.preventDefault();const a=o.clientY,c=i.value,l=u=>{const d=Math.max(80,Math.min(c+(a-u.clientY),window.innerHeight-200));i.value=d},h=()=>{window.removeEventListener("pointermove",l),window.removeEventListener("pointerup",h)};window.addEventListener("pointermove",l),window.addEventListener("pointerup",h)}return(o,a)=>(Q(),te(Me,null,[w("div",{class:Pe(["layout",{"panel-right":I(e).settings.parameterPanelOnRight}]),inert:I(hi).visible?!0:void 0,"aria-hidden":I(hi).visible?"true":void 0},[w("div",{class:"parameter-panel",style:Vt({width:t.value+"px"})},[Te(hz)],4),w("div",{class:"resizer-col",onPointerdown:s},null,32),w("div",cq,[w("div",hq,[Te(w4)]),w("div",{class:"resizer-row",onPointerdown:r,title:o.$t("app.resizeTimeline")},null,40,uq),w("div",{class:"timeline-area",style:Vt({height:i.value+"px"})},[Te(iq)],4)])],10,lq),Te(aq)],64))}}),fq=li(dq,[["__scopeId","data-v-07c42c10"]]);wA(fq).use(TA()).use(ac).mount("#app");export{w1 as $,Es as A,Iu as B,kt as C,Mi as D,$e as E,nn as F,Ps as G,at as H,Tt as I,xE as J,Ki as K,_n as L,$n as M,Zr as N,gd as O,Ts as P,Ql as Q,Wa as R,Wn as S,sU as T,Ke as U,p1 as V,Jn as W,YK as X,t5 as Y,hc as Z,Lg as _,it as a,Gp as a$,x1 as a0,QT as a1,e0 as a2,VK as a3,Eu as a4,$l as a5,mU as a6,Nl as a7,vd as a8,Up as a9,Zp as aA,Qp as aB,ph as aC,Lr as aD,Rh as aE,Vp as aF,nE as aG,ri as aH,KT as aI,FK as aJ,Da as aK,b1 as aL,Re as aM,ze as aN,Yp as aO,kh as aP,aE as aQ,Xp as aR,rE as aS,oE as aT,yd as aU,hE as aV,Fh as aW,fE as aX,lE as aY,uE as aZ,mE as a_,Ko as aa,t0 as ab,i0 as ac,v1 as ad,wc as ae,Sc as af,xc as ag,qo as ah,nr as ai,OK as aj,iE as ak,fU as al,qa as am,qr as an,r0 as ao,bE as ap,uU as aq,cc as ar,cn as as,y1 as at,DK as au,tl as av,Jp as aw,eg as ax,tg as ay,ig as az,Ha as b,gr as b$,Au as b0,cE as b1,ro as b2,dE as b3,n0 as b4,nU as b5,vE as b6,yE as b7,s0 as b8,Is as b9,pE as bA,o0 as bB,pd as bC,wE as bD,Hp as bE,Ei as bF,tU as bG,oU as bH,BT as bI,DT as bJ,$K as bK,Gt as bL,il as bM,SE as bN,EE as bO,CE as bP,ME as bQ,_E as bR,TE as bS,hU as bT,a0 as bU,At as bV,Kp as bW,sE as bX,VT as bY,XT as bZ,YT as b_,iU as ba,LK as bb,ot as bc,tE as bd,eE as be,JT as bf,ZT as bg,Do as bh,Cu as bi,dU as bj,GT as bk,HT as bl,en as bm,jT as bn,za as bo,$i as bp,UT as bq,Mu as br,WT as bs,zT as bt,qT as bu,S1 as bv,zp as bw,Co as bx,gE as by,Wp as bz,ja as c,NK as c0,lU as c1,cU as c2,aU as c3,Qe as d,je as e,BK as f,rt as g,Ri as h,eu as i,un as j,zt as k,He as l,es as m,Bt as n,Mg as o,di as p,ec as q,Rr as r,Ve as s,bw as t,Fg as u,ru as v,jp as w,To as x,g1 as y,qp as z};