@esotericsoftware/spine-canvas 4.0.24 → 4.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
var spine=(()=>{var Ue=Object.defineProperty,bs=t=>Ue(t,"__esModule",{value:!0}),ws=(t,s)=>{bs(t);for(var e in s)Ue(t,e,{get:s[e],enumerable:!0})},We={};ws(We,{AlphaTimeline:()=>le,Animation:()=>Lt,AnimationState:()=>xe,AnimationStateAdapter:()=>As,AnimationStateData:()=>ks,AssetManager:()=>ei,AssetManagerBase:()=>is,AtlasAttachmentLoader:()=>Is,Attachment:()=>$t,AttachmentTimeline:()=>yt,BinaryInput:()=>os,BlendMode:()=>qt,Bone:()=>Ye,BoneData:()=>Ce,BoundingBoxAttachment:()=>Ut,CURRENT:()=>Ze,CanvasTexture:()=>ds,ClippingAttachment:()=>ve,Color:()=>L,ConstraintData:()=>Wt,CurveTimeline:()=>at,CurveTimeline1:()=>nt,CurveTimeline2:()=>Dt,DebugUtils:()=>ys,DeformTimeline:()=>ce,Downloader:()=>rs,DrawOrderTimeline:()=>vt,Event:()=>Ie,EventData:()=>Te,EventQueue:()=>Je,EventTimeline:()=>Pt,EventType:()=>tt,FIRST:()=>be,FakeTexture:()=>Cs,HOLD_FIRST:()=>Ot,HOLD_MIX:()=>Qe,HOLD_SUBSEQUENT:()=>we,IkConstraint:()=>as,IkConstraintData:()=>Xe,IkConstraintTimeline:()=>de,IntSet:()=>ps,Interpolation:()=>ze,JitterEffect:()=>ti,MathUtils:()=>X,MeshAttachment:()=>kt,MixBlend:()=>$,MixDirection:()=>mt,PathAttachment:()=>It,PathConstraint:()=>Tt,PathConstraintData:()=>Me,PathConstraintMixTimeline:()=>ge,PathConstraintPositionTimeline:()=>ue,PathConstraintSpacingTimeline:()=>me,PointAttachment:()=>ke,Pool:()=>Rt,PositionMode:()=>dt,Pow:()=>qe,PowOut:()=>_e,RGB2Timeline:()=>he,RGBA2Timeline:()=>oe,RGBATimeline:()=>ae,RGBTimeline:()=>ne,RegionAttachment:()=>E,RotateMode:()=>Ct,RotateTimeline:()=>Bt,SETUP:()=>pe,SUBSEQUENT:()=>Nt,ScaleTimeline:()=>Kt,ScaleXTimeline:()=>te,ScaleYTimeline:()=>ee,ShearTimeline:()=>se,ShearXTimeline:()=>ie,ShearYTimeline:()=>re,Skeleton:()=>Ts,SkeletonBinary:()=>Xs,SkeletonBounds:()=>Qs,SkeletonClipping:()=>Ve,SkeletonData:()=>Fe,SkeletonJson:()=>Zs,SkeletonRenderer:()=>De,Skin:()=>zt,SkinEntry:()=>Re,Slot:()=>ns,SlotData:()=>Be,SpacingMode:()=>Q,StringSet:()=>jt,SwirlEffect:()=>cs,Texture:()=>Se,TextureAtlas:()=>ts,TextureAtlasPage:()=>es,TextureAtlasRegion:()=>Ae,TextureFilter:()=>St,TextureRegion:()=>Ke,TextureWrap:()=>At,TimeKeeper:()=>vs,Timeline:()=>J,TrackEntry:()=>$e,TransformConstraint:()=>ls,TransformConstraintData:()=>Pe,TransformConstraintTimeline:()=>fe,TransformMode:()=>et,TranslateTimeline:()=>Jt,TranslateXTimeline:()=>Qt,TranslateYTimeline:()=>Zt,Triangulator:()=>st,Utils:()=>B,Vector2:()=>Vt,VertexAttachment:()=>ct,WindowedMean:()=>Ss});var ps=class{constructor(){this.array=new Array}add(t){let s=this.contains(t);return this.array[t|0]=t|0,!s}contains(t){return this.array[t|0]!=null}remove(t){this.array[t|0]=void 0}clear(){this.array.length=0}},jt=class{constructor(){this.entries={},this.size=0}add(t){let s=this.entries[t];return this.entries[t]=!0,s?!1:(this.size++,!0)}addAll(t){let s=this.size;for(var e=0,a=t.length;e<a;e++)this.add(t[e]);return s!=this.size}contains(t){return this.entries[t]}clear(){this.entries={},this.size=0}},pt=class{constructor(t=0,s=0,e=0,a=0){this.r=t,this.g=s,this.b=e,this.a=a}set(t,s,e,a){return this.r=t,this.g=s,this.b=e,this.a=a,this.clamp()}setFromColor(t){return this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a,this}setFromString(t){return t=t.charAt(0)=="#"?t.substr(1):t,this.r=parseInt(t.substr(0,2),16)/255,this.g=parseInt(t.substr(2,2),16)/255,this.b=parseInt(t.substr(4,2),16)/255,this.a=t.length!=8?1:parseInt(t.substr(6,2),16)/255,this}add(t,s,e,a){return this.r+=t,this.g+=s,this.b+=e,this.a+=a,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(t,s){t.r=((s&4278190080)>>>24)/255,t.g=((s&16711680)>>>16)/255,t.b=((s&65280)>>>8)/255,t.a=(s&255)/255}static rgb888ToColor(t,s){t.r=((s&16711680)>>>16)/255,t.g=((s&65280)>>>8)/255,t.b=(s&255)/255}static fromString(t){return new pt().setFromString(t)}},L=pt;L.WHITE=new pt(1,1,1,1),L.RED=new pt(1,0,0,1),L.GREEN=new pt(0,1,0,1),L.BLUE=new pt(0,0,1,1),L.MAGENTA=new pt(1,0,1,1);var ut=class{static clamp(t,s,e){return t<s?s:t>e?e:t}static cosDeg(t){return Math.cos(t*ut.degRad)}static sinDeg(t){return Math.sin(t*ut.degRad)}static signum(t){return t>0?1:t<0?-1:0}static toInt(t){return t>0?Math.floor(t):Math.ceil(t)}static cbrt(t){let s=Math.pow(Math.abs(t),1/3);return t<0?-s:s}static randomTriangular(t,s){return ut.randomTriangularWith(t,s,(t+s)*.5)}static randomTriangularWith(t,s,e){let a=Math.random(),r=s-t;return a<=(e-t)/r?t+Math.sqrt(a*r*(e-t)):s-Math.sqrt((1-a)*r*(s-e))}static isPowerOfTwo(t){return t&&(t&t-1)==0}},X=ut;X.PI=3.1415927,X.PI2=ut.PI*2,X.radiansToDegrees=180/ut.PI,X.radDeg=ut.radiansToDegrees,X.degreesToRadians=ut.PI/180,X.degRad=ut.degreesToRadians;var ze=class{apply(t,s,e){return t+(s-t)*this.applyInternal(e)}},qe=class extends ze{constructor(t){super();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}},_e=class extends qe{constructor(t){super(t)}applyInternal(t){return Math.pow(t-1,this.power)*(this.power%2==0?-1:1)+1}},Yt=class{static arrayCopy(t,s,e,a,r){for(let c=s,l=a;c<s+r;c++,l++)e[l]=t[c]}static arrayFill(t,s,e,a){for(let r=s;r<e;r++)t[r]=a}static setArraySize(t,s,e=0){let a=t.length;if(a==s)return t;if(t.length=s,a<s)for(let r=a;r<s;r++)t[r]=e;return t}static ensureArrayCapacity(t,s,e=0){return t.length>=s?t:Yt.setArraySize(t,s,e)}static newArray(t,s){let e=new Array(t);for(let a=0;a<t;a++)e[a]=s;return e}static newFloatArray(t){if(Yt.SUPPORTS_TYPED_ARRAYS)return new Float32Array(t);{let s=new Array(t);for(let e=0;e<s.length;e++)s[e]=0;return s}}static newShortArray(t){if(Yt.SUPPORTS_TYPED_ARRAYS)return new Int16Array(t);{let s=new Array(t);for(let e=0;e<s.length;e++)s[e]=0;return s}}static toFloatArray(t){return Yt.SUPPORTS_TYPED_ARRAYS?new Float32Array(t):t}static toSinglePrecision(t){return Yt.SUPPORTS_TYPED_ARRAYS?Math.fround(t):t}static webkit602BugfixHelper(t,s){}static contains(t,s,e=!0){for(var a=0;a<t.length;a++)if(t[a]==s)return!0;return!1}static enumValue(t,s){return t[s[0].toUpperCase()+s.slice(1)]}},B=Yt;B.SUPPORTS_TYPED_ARRAYS=typeof Float32Array!="undefined";var ys=class{static logBones(t){for(let s=0;s<t.bones.length;s++){let e=t.bones[s];console.log(e.data.name+", "+e.a+", "+e.b+", "+e.c+", "+e.d+", "+e.worldX+", "+e.worldY)}}},Rt=class{constructor(t){this.items=new Array,this.instantiator=t}obtain(){return this.items.length>0?this.items.pop():this.instantiator()}free(t){t.reset&&t.reset(),this.items.push(t)}freeAll(t){for(let s=0;s<t.length;s++)this.free(t[s])}clear(){this.items.length=0}},Vt=class{constructor(t=0,s=0){this.x=t,this.y=s}set(t,s){return this.x=t,this.y=s,this}length(){let t=this.x,s=this.y;return Math.sqrt(t*t+s*s)}normalize(){let t=this.length();return t!=0&&(this.x/=t,this.y/=t),this}},vs=class{constructor(){this.maxDelta=.064,this.framesPerSecond=0,this.delta=0,this.totalTime=0,this.lastTime=Date.now()/1e3,this.frameCount=0,this.frameTime=0}update(){let t=Date.now()/1e3;this.delta=t-this.lastTime,this.frameTime+=this.delta,this.totalTime+=this.delta,this.delta>this.maxDelta&&(this.delta=this.maxDelta),this.lastTime=t,this.frameCount++,this.frameTime>1&&(this.framesPerSecond=this.frameCount/this.frameTime,this.frameTime=0,this.frameCount=0)}},Ss=class{constructor(t=32){this.addedValues=0,this.lastValue=0,this.mean=0,this.dirty=!0,this.values=new Array(t)}hasEnoughData(){return this.addedValues>=this.values.length}addValue(t){this.addedValues<this.values.length&&this.addedValues++,this.values[this.lastValue++]=t,this.lastValue>this.values.length-1&&(this.lastValue=0),this.dirty=!0}getMean(){if(this.hasEnoughData()){if(this.dirty){let t=0;for(let s=0;s<this.values.length;s++)t+=this.values[s];this.mean=t/this.values.length,this.dirty=!1}return this.mean}return 0}},$t=class{constructor(t){if(!t)throw new Error("name cannot be null.");this.name=t}},He=class extends $t{constructor(t){super(t);this.id=He.nextID++,this.bones=null,this.vertices=null,this.worldVerticesLength=0,this.deformAttachment=this}computeWorldVertices(t,s,e,a,r,c){e=r+(e>>1)*c;let l=t.bone.skeleton,i=t.deform,o=this.vertices,n=this.bones;if(!n){i.length>0&&(o=i);let u=t.bone,m=u.worldX,x=u.worldY,p=u.a,y=u.b,g=u.c,w=u.d;for(let b=s,v=r;v<e;b+=2,v+=c){let A=o[b],S=o[b+1];a[v]=A*p+S*y+m,a[v+1]=A*g+S*w+x}return}let h=0,d=0;for(let u=0;u<s;u+=2){let m=n[h];h+=m+1,d+=m}let f=l.bones;if(i.length==0)for(let u=r,m=d*3;u<e;u+=c){let x=0,p=0,y=n[h++];for(y+=h;h<y;h++,m+=3){let g=f[n[h]],w=o[m],b=o[m+1],v=o[m+2];x+=(w*g.a+b*g.b+g.worldX)*v,p+=(w*g.c+b*g.d+g.worldY)*v}a[u]=x,a[u+1]=p}else{let u=i;for(let m=r,x=d*3,p=d<<1;m<e;m+=c){let y=0,g=0,w=n[h++];for(w+=h;h<w;h++,x+=3,p+=2){let b=f[n[h]],v=o[x]+u[p],A=o[x+1]+u[p+1],S=o[x+2];y+=(v*b.a+A*b.b+b.worldX)*S,g+=(v*b.c+A*b.d+b.worldY)*S}a[m]=y,a[m+1]=g}}}copyTo(t){this.bones?(t.bones=new Array(this.bones.length),B.arrayCopy(this.bones,0,t.bones,0,this.bones.length)):t.bones=null,this.vertices?(t.vertices=B.newFloatArray(this.vertices.length),B.arrayCopy(this.vertices,0,t.vertices,0,this.vertices.length)):t.vertices=null,t.worldVerticesLength=this.worldVerticesLength,t.deformAttachment=this.deformAttachment}},ct=He;ct.nextID=0;var Lt=class{constructor(t,s,e){if(this.timelines=null,this.timelineIds=null,!t)throw new Error("name cannot be null.");this.name=t,this.setTimelines(s),this.duration=e}setTimelines(t){if(!t)throw new Error("timelines cannot be null.");this.timelines=t,this.timelineIds=new jt;for(var s=0;s<t.length;s++)this.timelineIds.addAll(t[s].getPropertyIds())}hasTimeline(t){for(let s=0;s<t.length;s++)if(this.timelineIds.contains(t[s]))return!0;return!1}apply(t,s,e,a,r,c,l,i){if(!t)throw new Error("skeleton cannot be null.");a&&this.duration!=0&&(e%=this.duration,s>0&&(s%=this.duration));let o=this.timelines;for(let n=0,h=o.length;n<h;n++)o[n].apply(t,s,e,r,c,l,i)}},$;(function(t){t[t.setup=0]="setup",t[t.first=1]="first",t[t.replace=2]="replace",t[t.add=3]="add"})($||($={}));var mt;(function(t){t[t.mixIn=0]="mixIn",t[t.mixOut=1]="mixOut"})(mt||(mt={}));var _={rotate:0,x:1,y:2,scaleX:3,scaleY:4,shearX:5,shearY:6,rgb:7,alpha:8,rgb2:9,attachment:10,deform:11,event:12,drawOrder:13,ikConstraint:14,transformConstraint:15,pathConstraintPosition:16,pathConstraintSpacing:17,pathConstraintMix:18},J=class{constructor(t,s){this.propertyIds=null,this.frames=null,this.propertyIds=s,this.frames=B.newFloatArray(t*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(t,s){let e=t.length;for(let a=1;a<e;a++)if(t[a]>s)return a-1;return e-1}static search(t,s,e){let a=t.length;for(let r=e;r<a;r+=e)if(t[r]>s)return r-e;return a-e}},at=class extends J{constructor(t,s,e){super(t,e);this.curves=null,this.curves=B.newFloatArray(t+s*18),this.curves[t-1]=1}setLinear(t){this.curves[t]=0}setStepped(t){this.curves[t]=1}shrink(t){let s=this.getFrameCount()+t*18;if(this.curves.length>s){let e=B.newFloatArray(s);B.arrayCopy(this.curves,0,e,0,s),this.curves=e}}setBezier(t,s,e,a,r,c,l,i,o,n,h){let d=this.curves,f=this.getFrameCount()+t*18;e==0&&(d[s]=2+f);let u=(a-c*2+i)*.03,m=(r-l*2+o)*.03,x=((c-i)*3-a+n)*.006,p=((l-o)*3-r+h)*.006,y=u*2+x,g=m*2+p,w=(c-a)*.3+u+x*.16666667,b=(l-r)*.3+m+p*.16666667,v=a+w,A=r+b;for(let S=f+18;f<S;f+=2)d[f]=v,d[f+1]=A,w+=y,b+=g,y+=x,g+=p,v+=w,A+=b}getBezierValue(t,s,e,a){let r=this.curves;if(r[a]>t){let o=this.frames[s],n=this.frames[s+e];return n+(t-o)/(r[a]-o)*(r[a+1]-n)}let c=a+18;for(a+=2;a<c;a+=2)if(r[a]>=t){let o=r[a-2],n=r[a-1];return n+(t-o)/(r[a]-o)*(r[a+1]-n)}s+=this.getFrameEntries();let l=r[c-2],i=r[c-1];return i+(t-l)/(this.frames[s]-l)*(this.frames[s+e]-i)}},nt=class extends at{constructor(t,s,e){super(t,s,[e])}getFrameEntries(){return 2}setFrame(t,s,e){t<<=1,this.frames[t]=s,this.frames[t+1]=e}getCurveValue(t){let s=this.frames,e=s.length-2;for(let r=2;r<=e;r+=2)if(s[r]>t){e=r-2;break}let a=this.curves[e>>1];switch(a){case 0:let r=s[e],c=s[e+1];return c+(t-r)/(s[e+2]-r)*(s[e+2+1]-c);case 1:return s[e+1]}return this.getBezierValue(t,e,1,a-2)}},Dt=class extends at{constructor(t,s,e,a){super(t,s,[e,a])}getFrameEntries(){return 3}setFrame(t,s,e,a){t*=3,this.frames[t]=s,this.frames[t+1]=e,this.frames[t+2]=a}},Bt=class extends nt{constructor(t,s,e){super(t,s,_.rotate+"|"+e);this.boneIndex=0,this.boneIndex=e}apply(t,s,e,a,r,c,l){let i=t.bones[this.boneIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.rotation=i.data.rotation;return;case 1:i.rotation+=(i.data.rotation-i.rotation)*r}return}let n=this.getCurveValue(e);switch(c){case 0:i.rotation=i.data.rotation+n*r;break;case 1:case 2:n+=i.data.rotation-i.rotation;case 3:i.rotation+=n*r}}},Jt=class extends Dt{constructor(t,s,e){super(t,s,_.x+"|"+e,_.y+"|"+e);this.boneIndex=0,this.boneIndex=e}apply(t,s,e,a,r,c,l){let i=t.bones[this.boneIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.x=i.data.x,i.y=i.data.y;return;case 1:i.x+=(i.data.x-i.x)*r,i.y+=(i.data.y-i.y)*r}return}let n=0,h=0,d=J.search(o,e,3),f=this.curves[d/3];switch(f){case 0:let u=o[d];n=o[d+1],h=o[d+2];let m=(e-u)/(o[d+3]-u);n+=(o[d+3+1]-n)*m,h+=(o[d+3+2]-h)*m;break;case 1:n=o[d+1],h=o[d+2];break;default:n=this.getBezierValue(e,d,1,f-2),h=this.getBezierValue(e,d,2,f+18-2)}switch(c){case 0:i.x=i.data.x+n*r,i.y=i.data.y+h*r;break;case 1:case 2:i.x+=(i.data.x+n-i.x)*r,i.y+=(i.data.y+h-i.y)*r;break;case 3:i.x+=n*r,i.y+=h*r}}},Qt=class extends nt{constructor(t,s,e){super(t,s,_.x+"|"+e);this.boneIndex=0,this.boneIndex=e}apply(t,s,e,a,r,c,l){let i=t.bones[this.boneIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.x=i.data.x;return;case 1:i.x+=(i.data.x-i.x)*r}return}let n=this.getCurveValue(e);switch(c){case 0:i.x=i.data.x+n*r;break;case 1:case 2:i.x+=(i.data.x+n-i.x)*r;break;case 3:i.x+=n*r}}},Zt=class extends nt{constructor(t,s,e){super(t,s,_.y+"|"+e);this.boneIndex=0,this.boneIndex=e}apply(t,s,e,a,r,c,l){let i=t.bones[this.boneIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.y=i.data.y;return;case 1:i.y+=(i.data.y-i.y)*r}return}let n=this.getCurveValue(e);switch(c){case 0:i.y=i.data.y+n*r;break;case 1:case 2:i.y+=(i.data.y+n-i.y)*r;break;case 3:i.y+=n*r}}},Kt=class extends Dt{constructor(t,s,e){super(t,s,_.scaleX+"|"+e,_.scaleY+"|"+e);this.boneIndex=0,this.boneIndex=e}apply(t,s,e,a,r,c,l){let i=t.bones[this.boneIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.scaleX=i.data.scaleX,i.scaleY=i.data.scaleY;return;case 1:i.scaleX+=(i.data.scaleX-i.scaleX)*r,i.scaleY+=(i.data.scaleY-i.scaleY)*r}return}let n,h,d=J.search(o,e,3),f=this.curves[d/3];switch(f){case 0:let u=o[d];n=o[d+1],h=o[d+2];let m=(e-u)/(o[d+3]-u);n+=(o[d+3+1]-n)*m,h+=(o[d+3+2]-h)*m;break;case 1:n=o[d+1],h=o[d+2];break;default:n=this.getBezierValue(e,d,1,f-2),h=this.getBezierValue(e,d,2,f+18-2)}if(n*=i.data.scaleX,h*=i.data.scaleY,r==1)c==3?(i.scaleX+=n-i.data.scaleX,i.scaleY+=h-i.data.scaleY):(i.scaleX=n,i.scaleY=h);else{let u=0,m=0;if(l==1)switch(c){case 0:u=i.data.scaleX,m=i.data.scaleY,i.scaleX=u+(Math.abs(n)*X.signum(u)-u)*r,i.scaleY=m+(Math.abs(h)*X.signum(m)-m)*r;break;case 1:case 2:u=i.scaleX,m=i.scaleY,i.scaleX=u+(Math.abs(n)*X.signum(u)-u)*r,i.scaleY=m+(Math.abs(h)*X.signum(m)-m)*r;break;case 3:i.scaleX+=(n-i.data.scaleX)*r,i.scaleY+=(h-i.data.scaleY)*r}else switch(c){case 0:u=Math.abs(i.data.scaleX)*X.signum(n),m=Math.abs(i.data.scaleY)*X.signum(h),i.scaleX=u+(n-u)*r,i.scaleY=m+(h-m)*r;break;case 1:case 2:u=Math.abs(i.scaleX)*X.signum(n),m=Math.abs(i.scaleY)*X.signum(h),i.scaleX=u+(n-u)*r,i.scaleY=m+(h-m)*r;break;case 3:i.scaleX+=(n-i.data.scaleX)*r,i.scaleY+=(h-i.data.scaleY)*r}}}},te=class extends nt{constructor(t,s,e){super(t,s,_.scaleX+"|"+e);this.boneIndex=0,this.boneIndex=e}apply(t,s,e,a,r,c,l){let i=t.bones[this.boneIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.scaleX=i.data.scaleX;return;case 1:i.scaleX+=(i.data.scaleX-i.scaleX)*r}return}let n=this.getCurveValue(e)*i.data.scaleX;if(r==1)c==3?i.scaleX+=n-i.data.scaleX:i.scaleX=n;else{let h=0;if(l==1)switch(c){case 0:h=i.data.scaleX,i.scaleX=h+(Math.abs(n)*X.signum(h)-h)*r;break;case 1:case 2:h=i.scaleX,i.scaleX=h+(Math.abs(n)*X.signum(h)-h)*r;break;case 3:i.scaleX+=(n-i.data.scaleX)*r}else switch(c){case 0:h=Math.abs(i.data.scaleX)*X.signum(n),i.scaleX=h+(n-h)*r;break;case 1:case 2:h=Math.abs(i.scaleX)*X.signum(n),i.scaleX=h+(n-h)*r;break;case 3:i.scaleX+=(n-i.data.scaleX)*r}}}},ee=class extends nt{constructor(t,s,e){super(t,s,_.scaleY+"|"+e);this.boneIndex=0,this.boneIndex=e}apply(t,s,e,a,r,c,l){let i=t.bones[this.boneIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.scaleY=i.data.scaleY;return;case 1:i.scaleY+=(i.data.scaleY-i.scaleY)*r}return}let n=this.getCurveValue(e)*i.data.scaleY;if(r==1)c==3?i.scaleY+=n-i.data.scaleY:i.scaleY=n;else{let h=0;if(l==1)switch(c){case 0:h=i.data.scaleY,i.scaleY=h+(Math.abs(n)*X.signum(h)-h)*r;break;case 1:case 2:h=i.scaleY,i.scaleY=h+(Math.abs(n)*X.signum(h)-h)*r;break;case 3:i.scaleY+=(n-i.data.scaleY)*r}else switch(c){case 0:h=Math.abs(i.data.scaleY)*X.signum(n),i.scaleY=h+(n-h)*r;break;case 1:case 2:h=Math.abs(i.scaleY)*X.signum(n),i.scaleY=h+(n-h)*r;break;case 3:i.scaleY+=(n-i.data.scaleY)*r}}}},se=class extends Dt{constructor(t,s,e){super(t,s,_.shearX+"|"+e,_.shearY+"|"+e);this.boneIndex=0,this.boneIndex=e}apply(t,s,e,a,r,c,l){let i=t.bones[this.boneIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.shearX=i.data.shearX,i.shearY=i.data.shearY;return;case 1:i.shearX+=(i.data.shearX-i.shearX)*r,i.shearY+=(i.data.shearY-i.shearY)*r}return}let n=0,h=0,d=J.search(o,e,3),f=this.curves[d/3];switch(f){case 0:let u=o[d];n=o[d+1],h=o[d+2];let m=(e-u)/(o[d+3]-u);n+=(o[d+3+1]-n)*m,h+=(o[d+3+2]-h)*m;break;case 1:n=o[d+1],h=o[d+2];break;default:n=this.getBezierValue(e,d,1,f-2),h=this.getBezierValue(e,d,2,f+18-2)}switch(c){case 0:i.shearX=i.data.shearX+n*r,i.shearY=i.data.shearY+h*r;break;case 1:case 2:i.shearX+=(i.data.shearX+n-i.shearX)*r,i.shearY+=(i.data.shearY+h-i.shearY)*r;break;case 3:i.shearX+=n*r,i.shearY+=h*r}}},ie=class extends nt{constructor(t,s,e){super(t,s,_.shearX+"|"+e);this.boneIndex=0,this.boneIndex=e}apply(t,s,e,a,r,c,l){let i=t.bones[this.boneIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.shearX=i.data.shearX;return;case 1:i.shearX+=(i.data.shearX-i.shearX)*r}return}let n=this.getCurveValue(e);switch(c){case 0:i.shearX=i.data.shearX+n*r;break;case 1:case 2:i.shearX+=(i.data.shearX+n-i.shearX)*r;break;case 3:i.shearX+=n*r}}},re=class extends nt{constructor(t,s,e){super(t,s,_.shearY+"|"+e);this.boneIndex=0,this.boneIndex=e}apply(t,s,e,a,r,c,l){let i=t.bones[this.boneIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.shearY=i.data.shearY;return;case 1:i.shearY+=(i.data.shearY-i.shearY)*r}return}let n=this.getCurveValue(e);switch(c){case 0:i.shearY=i.data.shearY+n*r;break;case 1:case 2:i.shearY+=(i.data.shearY+n-i.shearY)*r;break;case 3:i.shearY+=n*r}}},ae=class extends at{constructor(t,s,e){super(t,s,[_.rgb+"|"+e,_.alpha+"|"+e]);this.slotIndex=0,this.slotIndex=e}getFrameEntries(){return 5}setFrame(t,s,e,a,r,c){t*=5,this.frames[t]=s,this.frames[t+1]=e,this.frames[t+2]=a,this.frames[t+3]=r,this.frames[t+4]=c}apply(t,s,e,a,r,c,l){let i=t.slots[this.slotIndex];if(!i.bone.active)return;let o=this.frames,n=i.color;if(e<o[0]){let p=i.data.color;switch(c){case 0:n.setFromColor(p);return;case 1:n.add((p.r-n.r)*r,(p.g-n.g)*r,(p.b-n.b)*r,(p.a-n.a)*r)}return}let h=0,d=0,f=0,u=0,m=J.search(o,e,5),x=this.curves[m/5];switch(x){case 0:let p=o[m];h=o[m+1],d=o[m+2],f=o[m+3],u=o[m+4];let y=(e-p)/(o[m+5]-p);h+=(o[m+5+1]-h)*y,d+=(o[m+5+2]-d)*y,f+=(o[m+5+3]-f)*y,u+=(o[m+5+4]-u)*y;break;case 1:h=o[m+1],d=o[m+2],f=o[m+3],u=o[m+4];break;default:h=this.getBezierValue(e,m,1,x-2),d=this.getBezierValue(e,m,2,x+18-2),f=this.getBezierValue(e,m,3,x+18*2-2),u=this.getBezierValue(e,m,4,x+18*3-2)}r==1?n.set(h,d,f,u):(c==0&&n.setFromColor(i.data.color),n.add((h-n.r)*r,(d-n.g)*r,(f-n.b)*r,(u-n.a)*r))}},ne=class extends at{constructor(t,s,e){super(t,s,[_.rgb+"|"+e]);this.slotIndex=0,this.slotIndex=e}getFrameEntries(){return 4}setFrame(t,s,e,a,r){t<<=2,this.frames[t]=s,this.frames[t+1]=e,this.frames[t+2]=a,this.frames[t+3]=r}apply(t,s,e,a,r,c,l){let i=t.slots[this.slotIndex];if(!i.bone.active)return;let o=this.frames,n=i.color;if(e<o[0]){let x=i.data.color;switch(c){case 0:n.r=x.r,n.g=x.g,n.b=x.b;return;case 1:n.r+=(x.r-n.r)*r,n.g+=(x.g-n.g)*r,n.b+=(x.b-n.b)*r}return}let h=0,d=0,f=0,u=J.search(o,e,4),m=this.curves[u>>2];switch(m){case 0:let x=o[u];h=o[u+1],d=o[u+2],f=o[u+3];let p=(e-x)/(o[u+4]-x);h+=(o[u+4+1]-h)*p,d+=(o[u+4+2]-d)*p,f+=(o[u+4+3]-f)*p;break;case 1:h=o[u+1],d=o[u+2],f=o[u+3];break;default:h=this.getBezierValue(e,u,1,m-2),d=this.getBezierValue(e,u,2,m+18-2),f=this.getBezierValue(e,u,3,m+18*2-2)}if(r==1)n.r=h,n.g=d,n.b=f;else{if(c==0){let x=i.data.color;n.r=x.r,n.g=x.g,n.b=x.b}n.r+=(h-n.r)*r,n.g+=(d-n.g)*r,n.b+=(f-n.b)*r}}},le=class extends nt{constructor(t,s,e){super(t,s,_.alpha+"|"+e);this.slotIndex=0,this.slotIndex=e}apply(t,s,e,a,r,c,l){let i=t.slots[this.slotIndex];if(!i.bone.active)return;let o=i.color;if(e<this.frames[0]){let h=i.data.color;switch(c){case 0:o.a=h.a;return;case 1:o.a+=(h.a-o.a)*r}return}let n=this.getCurveValue(e);r==1?o.a=n:(c==0&&(o.a=i.data.color.a),o.a+=(n-o.a)*r)}},oe=class extends at{constructor(t,s,e){super(t,s,[_.rgb+"|"+e,_.alpha+"|"+e,_.rgb2+"|"+e]);this.slotIndex=0,this.slotIndex=e}getFrameEntries(){return 8}setFrame(t,s,e,a,r,c,l,i,o){t<<=3,this.frames[t]=s,this.frames[t+1]=e,this.frames[t+2]=a,this.frames[t+3]=r,this.frames[t+4]=c,this.frames[t+5]=l,this.frames[t+6]=i,this.frames[t+7]=o}apply(t,s,e,a,r,c,l){let i=t.slots[this.slotIndex];if(!i.bone.active)return;let o=this.frames,n=i.color,h=i.darkColor;if(e<o[0]){let b=i.data.color,v=i.data.darkColor;switch(c){case 0:n.setFromColor(b),h.r=v.r,h.g=v.g,h.b=v.b;return;case 1:n.add((b.r-n.r)*r,(b.g-n.g)*r,(b.b-n.b)*r,(b.a-n.a)*r),h.r+=(v.r-h.r)*r,h.g+=(v.g-h.g)*r,h.b+=(v.b-h.b)*r}return}let d=0,f=0,u=0,m=0,x=0,p=0,y=0,g=J.search(o,e,8),w=this.curves[g>>3];switch(w){case 0:let b=o[g];d=o[g+1],f=o[g+2],u=o[g+3],m=o[g+4],x=o[g+5],p=o[g+6],y=o[g+7];let v=(e-b)/(o[g+8]-b);d+=(o[g+8+1]-d)*v,f+=(o[g+8+2]-f)*v,u+=(o[g+8+3]-u)*v,m+=(o[g+8+4]-m)*v,x+=(o[g+8+5]-x)*v,p+=(o[g+8+6]-p)*v,y+=(o[g+8+7]-y)*v;break;case 1:d=o[g+1],f=o[g+2],u=o[g+3],m=o[g+4],x=o[g+5],p=o[g+6],y=o[g+7];break;default:d=this.getBezierValue(e,g,1,w-2),f=this.getBezierValue(e,g,2,w+18-2),u=this.getBezierValue(e,g,3,w+18*2-2),m=this.getBezierValue(e,g,4,w+18*3-2),x=this.getBezierValue(e,g,5,w+18*4-2),p=this.getBezierValue(e,g,6,w+18*5-2),y=this.getBezierValue(e,g,7,w+18*6-2)}if(r==1)n.set(d,f,u,m),h.r=x,h.g=p,h.b=y;else{if(c==0){n.setFromColor(i.data.color);let b=i.data.darkColor;h.r=b.r,h.g=b.g,h.b=b.b}n.add((d-n.r)*r,(f-n.g)*r,(u-n.b)*r,(m-n.a)*r),h.r+=(x-h.r)*r,h.g+=(p-h.g)*r,h.b+=(y-h.b)*r}}},he=class extends at{constructor(t,s,e){super(t,s,[_.rgb+"|"+e,_.rgb2+"|"+e]);this.slotIndex=0,this.slotIndex=e}getFrameEntries(){return 7}setFrame(t,s,e,a,r,c,l,i){t*=7,this.frames[t]=s,this.frames[t+1]=e,this.frames[t+2]=a,this.frames[t+3]=r,this.frames[t+4]=c,this.frames[t+5]=l,this.frames[t+6]=i}apply(t,s,e,a,r,c,l){let i=t.slots[this.slotIndex];if(!i.bone.active)return;let o=this.frames,n=i.color,h=i.darkColor;if(e<o[0]){let b=i.data.color,v=i.data.darkColor;switch(c){case 0:n.r=b.r,n.g=b.g,n.b=b.b,h.r=v.r,h.g=v.g,h.b=v.b;return;case 1:n.r+=(b.r-n.r)*r,n.g+=(b.g-n.g)*r,n.b+=(b.b-n.b)*r,h.r+=(v.r-h.r)*r,h.g+=(v.g-h.g)*r,h.b+=(v.b-h.b)*r}return}let d=0,f=0,u=0,m=0,x=0,p=0,y=0,g=J.search(o,e,7),w=this.curves[g/7];switch(w){case 0:let b=o[g];d=o[g+1],f=o[g+2],u=o[g+3],x=o[g+4],p=o[g+5],y=o[g+6];let v=(e-b)/(o[g+7]-b);d+=(o[g+7+1]-d)*v,f+=(o[g+7+2]-f)*v,u+=(o[g+7+3]-u)*v,x+=(o[g+7+4]-x)*v,p+=(o[g+7+5]-p)*v,y+=(o[g+7+6]-y)*v;break;case 1:d=o[g+1],f=o[g+2],u=o[g+3],x=o[g+4],p=o[g+5],y=o[g+6];break;default:d=this.getBezierValue(e,g,1,w-2),f=this.getBezierValue(e,g,2,w+18-2),u=this.getBezierValue(e,g,3,w+18*2-2),x=this.getBezierValue(e,g,4,w+18*3-2),p=this.getBezierValue(e,g,5,w+18*4-2),y=this.getBezierValue(e,g,6,w+18*5-2)}if(r==1)n.r=d,n.g=f,n.b=u,h.r=x,h.g=p,h.b=y;else{if(c==0){let b=i.data.color,v=i.data.darkColor;n.r=b.r,n.g=b.g,n.b=b.b,h.r=v.r,h.g=v.g,h.b=v.b}n.r+=(d-n.r)*r,n.g+=(f-n.g)*r,n.b+=(u-n.b)*r,h.r+=(x-h.r)*r,h.g+=(p-h.g)*r,h.b+=(y-h.b)*r}}},yt=class extends J{constructor(t,s){super(t,[_.attachment+"|"+s]);this.slotIndex=0,this.slotIndex=s,this.attachmentNames=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,s,e){this.frames[t]=s,this.attachmentNames[t]=e}apply(t,s,e,a,r,c,l){let i=t.slots[this.slotIndex];if(!!i.bone.active){if(l==1){c==0&&this.setAttachment(t,i,i.data.attachmentName);return}if(e<this.frames[0]){(c==0||c==1)&&this.setAttachment(t,i,i.data.attachmentName);return}this.setAttachment(t,i,this.attachmentNames[J.search1(this.frames,e)])}}setAttachment(t,s,e){s.setAttachment(e?t.getAttachment(this.slotIndex,e):null)}},ce=class extends at{constructor(t,s,e,a){super(t,s,[_.deform+"|"+e+"|"+a.id]);this.slotIndex=0,this.attachment=null,this.vertices=null,this.slotIndex=e,this.attachment=a,this.vertices=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,s,e){this.frames[t]=s,this.vertices[t]=e}setBezier(t,s,e,a,r,c,l,i,o,n,h){let d=this.curves,f=this.getFrameCount()+t*18;e==0&&(d[s]=2+f);let u=(a-c*2+i)*.03,m=o*.03-l*.06,x=((c-i)*3-a+n)*.006,p=(l-o+.33333333)*.018,y=u*2+x,g=m*2+p,w=(c-a)*.3+u+x*.16666667,b=l*.3+m+p*.16666667,v=a+w,A=b;for(let S=f+18;f<S;f+=2)d[f]=v,d[f+1]=A,w+=y,b+=g,y+=x,g+=p,v+=w,A+=b}getCurvePercent(t,s){let e=this.curves,a=e[s];switch(a){case 0:let i=this.frames[s];return(t-i)/(this.frames[s+this.getFrameEntries()]-i);case 1:return 0}if(a-=2,e[a]>t){let i=this.frames[s];return e[a+1]*(t-i)/(e[a]-i)}let r=a+18;for(a+=2;a<r;a+=2)if(e[a]>=t){let i=e[a-2],o=e[a-1];return o+(t-i)/(e[a]-i)*(e[a+1]-o)}let c=e[r-2],l=e[r-1];return l+(1-l)*(t-c)/(this.frames[s+this.getFrameEntries()]-c)}apply(t,s,e,a,r,c,l){let i=t.slots[this.slotIndex];if(!i.bone.active)return;let o=i.getAttachment();if(!(o instanceof ct)||o.deformAttachment!=this.attachment)return;let n=i.deform;n.length==0&&(c=0);let h=this.vertices,d=h[0].length,f=this.frames;if(e<f[0]){let g=o;switch(c){case 0:n.length=0;return;case 1:if(r==1){n.length=0;return}if(n.length=d,g.bones){r=1-r;for(var u=0;u<d;u++)n[u]*=r}else{let w=g.vertices;for(var u=0;u<d;u++)n[u]+=(w[u]-n[u])*r}}return}if(n.length=d,e>=f[f.length-1]){let g=h[f.length-1];if(r==1)if(c==3){let w=o;if(w.bones)for(let b=0;b<d;b++)n[b]+=g[b];else{let b=w.vertices;for(let v=0;v<d;v++)n[v]+=g[v]-b[v]}}else B.arrayCopy(g,0,n,0,d);else switch(c){case 0:{let b=o;if(b.bones)for(let v=0;v<d;v++)n[v]=g[v]*r;else{let v=b.vertices;for(let A=0;A<d;A++){let S=v[A];n[A]=S+(g[A]-S)*r}}break}case 1:case 2:for(let b=0;b<d;b++)n[b]+=(g[b]-n[b])*r;break;case 3:let w=o;if(w.bones)for(let b=0;b<d;b++)n[b]+=g[b]*r;else{let b=w.vertices;for(let v=0;v<d;v++)n[v]+=(g[v]-b[v])*r}}return}let m=J.search1(f,e),x=this.getCurvePercent(e,m),p=h[m],y=h[m+1];if(r==1)if(c==3){let g=o;if(g.bones)for(let w=0;w<d;w++){let b=p[w];n[w]+=b+(y[w]-b)*x}else{let w=g.vertices;for(let b=0;b<d;b++){let v=p[b];n[b]+=v+(y[b]-v)*x-w[b]}}}else for(let g=0;g<d;g++){let w=p[g];n[g]=w+(y[g]-w)*x}else switch(c){case 0:{let w=o;if(w.bones)for(let b=0;b<d;b++){let v=p[b];n[b]=(v+(y[b]-v)*x)*r}else{let b=w.vertices;for(let v=0;v<d;v++){let A=p[v],S=b[v];n[v]=S+(A+(y[v]-A)*x-S)*r}}break}case 1:case 2:for(let w=0;w<d;w++){let b=p[w];n[w]+=(b+(y[w]-b)*x-n[w])*r}break;case 3:let g=o;if(g.bones)for(let w=0;w<d;w++){let b=p[w];n[w]+=(b+(y[w]-b)*x)*r}else{let w=g.vertices;for(let b=0;b<d;b++){let v=p[b];n[b]+=(v+(y[b]-v)*x-w[b])*r}}}}},Ge=class extends J{constructor(t){super(t,Ge.propertyIds);this.events=null,this.events=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,s){this.frames[t]=s.time,this.events[t]=s}apply(t,s,e,a,r,c,l){if(!a)return;let i=this.frames,o=this.frames.length;if(s>e)this.apply(t,s,Number.MAX_VALUE,a,r,c,l),s=-1;else if(s>=i[o-1])return;if(e<i[0])return;let n=0;if(s<i[0])n=0;else{n=J.search1(i,s)+1;let h=i[n];for(;n>0&&i[n-1]==h;)n--}for(;n<o&&e>=i[n];n++)a.push(this.events[n])}},Pt=Ge;Pt.propertyIds=[""+_.event];var je=class extends J{constructor(t){super(t,je.propertyIds);this.drawOrders=null,this.drawOrders=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,s,e){this.frames[t]=s,this.drawOrders[t]=e}apply(t,s,e,a,r,c,l){if(l==1){c==0&&B.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length);return}if(e<this.frames[0]){(c==0||c==1)&&B.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length);return}let i=this.drawOrders[J.search1(this.frames,e)];if(!i)B.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length);else{let o=t.drawOrder,n=t.slots;for(let h=0,d=i.length;h<d;h++)o[h]=n[i[h]]}}},vt=je;vt.propertyIds=[""+_.drawOrder];var de=class extends at{constructor(t,s,e){super(t,s,[_.ikConstraint+"|"+e]);this.ikConstraintIndex=0,this.ikConstraintIndex=e}getFrameEntries(){return 6}setFrame(t,s,e,a,r,c,l){t*=6,this.frames[t]=s,this.frames[t+1]=e,this.frames[t+2]=a,this.frames[t+3]=r,this.frames[t+4]=c?1:0,this.frames[t+5]=l?1:0}apply(t,s,e,a,r,c,l){let i=t.ikConstraints[this.ikConstraintIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.mix=i.data.mix,i.softness=i.data.softness,i.bendDirection=i.data.bendDirection,i.compress=i.data.compress,i.stretch=i.data.stretch;return;case 1:i.mix+=(i.data.mix-i.mix)*r,i.softness+=(i.data.softness-i.softness)*r,i.bendDirection=i.data.bendDirection,i.compress=i.data.compress,i.stretch=i.data.stretch}return}let n=0,h=0,d=J.search(o,e,6),f=this.curves[d/6];switch(f){case 0:let u=o[d];n=o[d+1],h=o[d+2];let m=(e-u)/(o[d+6]-u);n+=(o[d+6+1]-n)*m,h+=(o[d+6+2]-h)*m;break;case 1:n=o[d+1],h=o[d+2];break;default:n=this.getBezierValue(e,d,1,f-2),h=this.getBezierValue(e,d,2,f+18-2)}c==0?(i.mix=i.data.mix+(n-i.data.mix)*r,i.softness=i.data.softness+(h-i.data.softness)*r,l==1?(i.bendDirection=i.data.bendDirection,i.compress=i.data.compress,i.stretch=i.data.stretch):(i.bendDirection=o[d+3],i.compress=o[d+4]!=0,i.stretch=o[d+5]!=0)):(i.mix+=(n-i.mix)*r,i.softness+=(h-i.softness)*r,l==0&&(i.bendDirection=o[d+3],i.compress=o[d+4]!=0,i.stretch=o[d+5]!=0))}},fe=class extends at{constructor(t,s,e){super(t,s,[_.transformConstraint+"|"+e]);this.transformConstraintIndex=0,this.transformConstraintIndex=e}getFrameEntries(){return 7}setFrame(t,s,e,a,r,c,l,i){let o=this.frames;t*=7,o[t]=s,o[t+1]=e,o[t+2]=a,o[t+3]=r,o[t+4]=c,o[t+5]=l,o[t+6]=i}apply(t,s,e,a,r,c,l){let i=t.transformConstraints[this.transformConstraintIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){let y=i.data;switch(c){case 0:i.mixRotate=y.mixRotate,i.mixX=y.mixX,i.mixY=y.mixY,i.mixScaleX=y.mixScaleX,i.mixScaleY=y.mixScaleY,i.mixShearY=y.mixShearY;return;case 1:i.mixRotate+=(y.mixRotate-i.mixRotate)*r,i.mixX+=(y.mixX-i.mixX)*r,i.mixY+=(y.mixY-i.mixY)*r,i.mixScaleX+=(y.mixScaleX-i.mixScaleX)*r,i.mixScaleY+=(y.mixScaleY-i.mixScaleY)*r,i.mixShearY+=(y.mixShearY-i.mixShearY)*r}return}let n,h,d,f,u,m,x=J.search(o,e,7),p=this.curves[x/7];switch(p){case 0:let y=o[x];n=o[x+1],h=o[x+2],d=o[x+3],f=o[x+4],u=o[x+5],m=o[x+6];let g=(e-y)/(o[x+7]-y);n+=(o[x+7+1]-n)*g,h+=(o[x+7+2]-h)*g,d+=(o[x+7+3]-d)*g,f+=(o[x+7+4]-f)*g,u+=(o[x+7+5]-u)*g,m+=(o[x+7+6]-m)*g;break;case 1:n=o[x+1],h=o[x+2],d=o[x+3],f=o[x+4],u=o[x+5],m=o[x+6];break;default:n=this.getBezierValue(e,x,1,p-2),h=this.getBezierValue(e,x,2,p+18-2),d=this.getBezierValue(e,x,3,p+18*2-2),f=this.getBezierValue(e,x,4,p+18*3-2),u=this.getBezierValue(e,x,5,p+18*4-2),m=this.getBezierValue(e,x,6,p+18*5-2)}if(c==0){let y=i.data;i.mixRotate=y.mixRotate+(n-y.mixRotate)*r,i.mixX=y.mixX+(h-y.mixX)*r,i.mixY=y.mixY+(d-y.mixY)*r,i.mixScaleX=y.mixScaleX+(f-y.mixScaleX)*r,i.mixScaleY=y.mixScaleY+(u-y.mixScaleY)*r,i.mixShearY=y.mixShearY+(m-y.mixShearY)*r}else i.mixRotate+=(n-i.mixRotate)*r,i.mixX+=(h-i.mixX)*r,i.mixY+=(d-i.mixY)*r,i.mixScaleX+=(f-i.mixScaleX)*r,i.mixScaleY+=(u-i.mixScaleY)*r,i.mixShearY+=(m-i.mixShearY)*r}},ue=class extends nt{constructor(t,s,e){super(t,s,_.pathConstraintPosition+"|"+e);this.pathConstraintIndex=0,this.pathConstraintIndex=e}apply(t,s,e,a,r,c,l){let i=t.pathConstraints[this.pathConstraintIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.position=i.data.position;return;case 1:i.position+=(i.data.position-i.position)*r}return}let n=this.getCurveValue(e);c==0?i.position=i.data.position+(n-i.data.position)*r:i.position+=(n-i.position)*r}},me=class extends nt{constructor(t,s,e){super(t,s,_.pathConstraintSpacing+"|"+e);this.pathConstraintIndex=0,this.pathConstraintIndex=e}apply(t,s,e,a,r,c,l){let i=t.pathConstraints[this.pathConstraintIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.spacing=i.data.spacing;return;case 1:i.spacing+=(i.data.spacing-i.spacing)*r}return}let n=this.getCurveValue(e);c==0?i.spacing=i.data.spacing+(n-i.data.spacing)*r:i.spacing+=(n-i.spacing)*r}},ge=class extends at{constructor(t,s,e){super(t,s,[_.pathConstraintMix+"|"+e]);this.pathConstraintIndex=0,this.pathConstraintIndex=e}getFrameEntries(){return 4}setFrame(t,s,e,a,r){let c=this.frames;t<<=2,c[t]=s,c[t+1]=e,c[t+2]=a,c[t+3]=r}apply(t,s,e,a,r,c,l){let i=t.pathConstraints[this.pathConstraintIndex];if(!i.active)return;let o=this.frames;if(e<o[0]){switch(c){case 0:i.mixRotate=i.data.mixRotate,i.mixX=i.data.mixX,i.mixY=i.data.mixY;return;case 1:i.mixRotate+=(i.data.mixRotate-i.mixRotate)*r,i.mixX+=(i.data.mixX-i.mixX)*r,i.mixY+=(i.data.mixY-i.mixY)*r}return}let n,h,d,f=J.search(o,e,4),u=this.curves[f>>2];switch(u){case 0:let m=o[f];n=o[f+1],h=o[f+2],d=o[f+3];let x=(e-m)/(o[f+4]-m);n+=(o[f+4+1]-n)*x,h+=(o[f+4+2]-h)*x,d+=(o[f+4+3]-d)*x;break;case 1:n=o[f+1],h=o[f+2],d=o[f+3];break;default:n=this.getBezierValue(e,f,1,u-2),h=this.getBezierValue(e,f,2,u+18-2),d=this.getBezierValue(e,f,3,u+18*2-2)}if(c==0){let m=i.data;i.mixRotate=m.mixRotate+(n-m.mixRotate)*r,i.mixX=m.mixX+(h-m.mixX)*r,i.mixY=m.mixY+(d-m.mixY)*r}else i.mixRotate+=(n-i.mixRotate)*r,i.mixX+=(h-i.mixX)*r,i.mixY+=(d-i.mixY)*r}},xe=class{constructor(t){this.data=null,this.tracks=new Array,this.timeScale=1,this.unkeyedState=0,this.events=new Array,this.listeners=new Array,this.queue=new Je(this),this.propertyIDs=new jt,this.animationsChanged=!1,this.trackEntryPool=new Rt(()=>new $e),this.data=t}static emptyAnimation(){return ye||(ye=new Lt("<empty>",[],0)),ye}update(t){t*=this.timeScale;let s=this.tracks;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(!r)continue;r.animationLast=r.nextAnimationLast,r.trackLast=r.nextTrackLast;let c=t*r.timeScale;if(r.delay>0){if(r.delay-=c,r.delay>0)continue;c=-r.delay,r.delay=0}let l=r.next;if(l){let i=r.trackLast-l.delay;if(i>=0){for(l.delay=0,l.trackTime+=r.timeScale==0?0:(i/r.timeScale+t)*l.timeScale,r.trackTime+=c,this.setCurrent(e,l,!0);l.mixingFrom;)l.mixTime+=t,l=l.mixingFrom;continue}}else if(r.trackLast>=r.trackEnd&&!r.mixingFrom){s[e]=null,this.queue.end(r),this.clearNext(r);continue}if(r.mixingFrom&&this.updateMixingFrom(r,t)){let i=r.mixingFrom;for(r.mixingFrom=null,i&&(i.mixingTo=null);i;)this.queue.end(i),i=i.mixingFrom}r.trackTime+=c}this.queue.drain()}updateMixingFrom(t,s){let e=t.mixingFrom;if(!e)return!0;let a=this.updateMixingFrom(e,s);return e.animationLast=e.nextAnimationLast,e.trackLast=e.nextTrackLast,t.mixTime>0&&t.mixTime>=t.mixDuration?((e.totalAlpha==0||t.mixDuration==0)&&(t.mixingFrom=e.mixingFrom,e.mixingFrom&&(e.mixingFrom.mixingTo=t),t.interruptAlpha=e.interruptAlpha,this.queue.end(e)),a):(e.trackTime+=s*e.timeScale,t.mixTime+=s,!1)}apply(t){if(!t)throw new Error("skeleton cannot be null.");this.animationsChanged&&this._animationsChanged();let s=this.events,e=this.tracks,a=!1;for(let d=0,f=e.length;d<f;d++){let u=e[d];if(!u||u.delay>0)continue;a=!0;let m=d==0?$.first:u.mixBlend,x=u.alpha;u.mixingFrom?x*=this.applyMixingFrom(u,t,m):u.trackTime>=u.trackEnd&&!u.next&&(x=0);let p=u.animationLast,y=u.getAnimationTime(),g=y,w=s;u.reverse&&(g=u.animation.duration-g,w=null);let b=u.animation.timelines,v=b.length;if(d==0&&x==1||m==$.add)for(let A=0;A<v;A++){B.webkit602BugfixHelper(x,m);var r=b[A];r instanceof yt?this.applyAttachmentTimeline(r,t,g,m,!0):r.apply(t,p,g,w,x,m,mt.mixIn)}else{let A=u.timelineMode,S=u.timelinesRotation.length!=v<<1;S&&(u.timelinesRotation.length=v<<1);for(let I=0;I<v;I++){let Y=b[I],F=A[I]==Nt?m:$.setup;Y instanceof Bt?this.applyRotateTimeline(Y,t,g,x,F,u.timelinesRotation,I<<1,S):Y instanceof yt?this.applyAttachmentTimeline(Y,t,g,m,!0):(B.webkit602BugfixHelper(x,m),Y.apply(t,p,g,w,x,F,mt.mixIn))}}this.queueEvents(u,y),s.length=0,u.nextAnimationLast=y,u.nextTrackLast=u.trackTime}for(var c=this.unkeyedState+pe,l=t.slots,i=0,o=t.slots.length;i<o;i++){var n=l[i];if(n.attachmentState==c){var h=n.data.attachmentName;n.setAttachment(h?t.getAttachment(n.data.index,h):null)}}return this.unkeyedState+=2,this.queue.drain(),a}applyMixingFrom(t,s,e){let a=t.mixingFrom;a.mixingFrom&&this.applyMixingFrom(a,s,e);let r=0;t.mixDuration==0?(r=1,e==$.first&&(e=$.setup)):(r=t.mixTime/t.mixDuration,r>1&&(r=1),e!=$.first&&(e=a.mixBlend));let c=r<a.attachmentThreshold,l=r<a.drawOrderThreshold,i=a.animation.timelines,o=i.length,n=a.alpha*t.interruptAlpha,h=n*(1-r),d=a.animationLast,f=a.getAnimationTime(),u=f,m=null;if(a.reverse?u=a.animation.duration-u:r<a.eventThreshold&&(m=this.events),e==$.add)for(let x=0;x<o;x++)i[x].apply(s,d,u,m,h,e,mt.mixOut);else{let x=a.timelineMode,p=a.timelineHoldMix,y=a.timelinesRotation.length!=o<<1;y&&(a.timelinesRotation.length=o<<1),a.totalAlpha=0;for(let g=0;g<o;g++){let w=i[g],b=mt.mixOut,v,A=0;switch(x[g]){case Nt:if(!l&&w instanceof vt)continue;v=e,A=h;break;case be:v=$.setup,A=h;break;case we:v=e,A=n;break;case Ot:v=$.setup,A=n;break;default:v=$.setup;let S=p[g];A=n*Math.max(0,1-S.mixTime/S.mixDuration);break}a.totalAlpha+=A,w instanceof Bt?this.applyRotateTimeline(w,s,u,A,v,a.timelinesRotation,g<<1,y):w instanceof yt?this.applyAttachmentTimeline(w,s,u,v,c):(B.webkit602BugfixHelper(A,e),l&&w instanceof vt&&v==$.setup&&(b=mt.mixIn),w.apply(s,d,u,m,A,v,b))}}return t.mixDuration>0&&this.queueEvents(a,f),this.events.length=0,a.nextAnimationLast=f,a.nextTrackLast=a.trackTime,r}applyAttachmentTimeline(t,s,e,a,r){var c=s.slots[t.slotIndex];!c.bone.active||(e<t.frames[0]?(a==$.setup||a==$.first)&&this.setAttachment(s,c,c.data.attachmentName,r):this.setAttachment(s,c,t.attachmentNames[J.search1(t.frames,e)],r),c.attachmentState<=this.unkeyedState&&(c.attachmentState=this.unkeyedState+pe))}setAttachment(t,s,e,a){s.setAttachment(e?t.getAttachment(s.data.index,e):null),a&&(s.attachmentState=this.unkeyedState+Ze)}applyRotateTimeline(t,s,e,a,r,c,l,i){if(i&&(c[l]=0),a==1){t.apply(s,0,e,null,1,r,mt.mixIn);return}let o=s.bones[t.boneIndex];if(!o.active)return;let n=t.frames,h=0,d=0;if(e<n[0])switch(r){case $.setup:o.rotation=o.data.rotation;default:return;case $.first:h=o.rotation,d=o.data.rotation}else h=r==$.setup?o.data.rotation:o.rotation,d=o.data.rotation+t.getCurveValue(e);let f=0,u=d-h;if(u-=(16384-(16384.499999999996-u/360|0))*360,u==0)f=c[l];else{let m=0,x=0;i?(m=0,x=u):(m=c[l],x=c[l+1]);let p=u>0,y=m>=0;X.signum(x)!=X.signum(u)&&Math.abs(x)<=90&&(Math.abs(m)>180&&(m+=360*X.signum(m)),y=p),f=u+m-m%360,y!=p&&(f+=360*X.signum(m)),c[l]=f}c[l+1]=u,o.rotation=h+f*a}queueEvents(t,s){let e=t.animationStart,a=t.animationEnd,r=a-e,c=t.trackLast%r,l=this.events,i=0,o=l.length;for(;i<o;i++){let h=l[i];if(h.time<c)break;h.time>a||this.queue.event(t,h)}let n=!1;for(t.loop?n=r==0||c>t.trackTime%r:n=s>=a&&t.animationLast<a,n&&this.queue.complete(t);i<o;i++){let h=l[i];h.time<e||this.queue.event(t,h)}}clearTracks(){let t=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let s=0,e=this.tracks.length;s<e;s++)this.clearTrack(s);this.tracks.length=0,this.queue.drainDisabled=t,this.queue.drain()}clearTrack(t){if(t>=this.tracks.length)return;let s=this.tracks[t];if(!s)return;this.queue.end(s),this.clearNext(s);let e=s;for(;;){let a=e.mixingFrom;if(!a)break;this.queue.end(a),e.mixingFrom=null,e.mixingTo=null,e=a}this.tracks[s.trackIndex]=null,this.queue.drain()}setCurrent(t,s,e){let a=this.expandToIndex(t);this.tracks[t]=s,s.previous=null,a&&(e&&this.queue.interrupt(a),s.mixingFrom=a,a.mixingTo=s,s.mixTime=0,a.mixingFrom&&a.mixDuration>0&&(s.interruptAlpha*=Math.min(1,a.mixTime/a.mixDuration)),a.timelinesRotation.length=0),this.queue.start(s)}setAnimation(t,s,e=!1){let a=this.data.skeletonData.findAnimation(s);if(!a)throw new Error("Animation not found: "+s);return this.setAnimationWith(t,a,e)}setAnimationWith(t,s,e=!1){if(!s)throw new Error("animation cannot be null.");let a=!0,r=this.expandToIndex(t);r&&(r.nextTrackLast==-1?(this.tracks[t]=r.mixingFrom,this.queue.interrupt(r),this.queue.end(r),this.clearNext(r),r=r.mixingFrom,a=!1):this.clearNext(r));let c=this.trackEntry(t,s,e,r);return this.setCurrent(t,c,a),this.queue.drain(),c}addAnimation(t,s,e=!1,a=0){let r=this.data.skeletonData.findAnimation(s);if(!r)throw new Error("Animation not found: "+s);return this.addAnimationWith(t,r,e,a)}addAnimationWith(t,s,e=!1,a=0){if(!s)throw new Error("animation cannot be null.");let r=this.expandToIndex(t);if(r)for(;r.next;)r=r.next;let c=this.trackEntry(t,s,e,r);return r?(r.next=c,c.previous=r,a<=0&&(a+=r.getTrackComplete()-c.mixDuration)):(this.setCurrent(t,c,!0),this.queue.drain()),c.delay=a,c}setEmptyAnimation(t,s=0){let e=this.setAnimationWith(t,xe.emptyAnimation(),!1);return e.mixDuration=s,e.trackEnd=s,e}addEmptyAnimation(t,s=0,e=0){let a=this.addAnimationWith(t,xe.emptyAnimation(),!1,e);return e<=0&&(a.delay+=a.mixDuration-s),a.mixDuration=s,a.trackEnd=s,a}setEmptyAnimations(t=0){let s=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let e=0,a=this.tracks.length;e<a;e++){let r=this.tracks[e];r&&this.setEmptyAnimation(r.trackIndex,t)}this.queue.drainDisabled=s,this.queue.drain()}expandToIndex(t){return t<this.tracks.length?this.tracks[t]:(B.ensureArrayCapacity(this.tracks,t+1,null),this.tracks.length=t+1,null)}trackEntry(t,s,e,a){let r=this.trackEntryPool.obtain();return r.reset(),r.trackIndex=t,r.animation=s,r.loop=e,r.holdPrevious=!1,r.eventThreshold=0,r.attachmentThreshold=0,r.drawOrderThreshold=0,r.animationStart=0,r.animationEnd=s.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.interruptAlpha=1,r.mixTime=0,r.mixDuration=a?this.data.getMix(a.animation,s):0,r.mixBlend=$.replace,r}clearNext(t){let s=t.next;for(;s;)this.queue.dispose(s),s=s.next;t.next=null}_animationsChanged(){this.animationsChanged=!1,this.propertyIDs.clear();let t=this.tracks;for(let s=0,e=t.length;s<e;s++){let a=t[s];if(!!a){for(;a.mixingFrom;)a=a.mixingFrom;do(!a.mixingTo||a.mixBlend!=$.add)&&this.computeHold(a),a=a.mixingTo;while(a)}}}computeHold(t){let s=t.mixingTo,e=t.animation.timelines,a=t.animation.timelines.length,r=t.timelineMode;r.length=a;let c=t.timelineHoldMix;c.length=0;let l=this.propertyIDs;if(s&&s.holdPrevious){for(let i=0;i<a;i++)r[i]=l.addAll(e[i].getPropertyIds())?Ot:we;return}t:for(let i=0;i<a;i++){let o=e[i],n=o.getPropertyIds();if(!l.addAll(n))r[i]=Nt;else if(!s||o instanceof yt||o instanceof vt||o instanceof Pt||!s.animation.hasTimeline(n))r[i]=be;else{for(let h=s.mixingTo;h;h=h.mixingTo)if(!h.animation.hasTimeline(n)){if(t.mixDuration>0){r[i]=Qe,c[i]=h;continue t}break}r[i]=Ot}}}getCurrent(t){return t>=this.tracks.length?null:this.tracks[t]}addListener(t){if(!t)throw new Error("listener cannot be null.");this.listeners.push(t)}removeListener(t){let s=this.listeners.indexOf(t);s>=0&&this.listeners.splice(s,1)}clearListeners(){this.listeners.length=0}clearListenerNotifications(){this.queue.clear()}},$e=class{constructor(){this.animation=null,this.previous=null,this.next=null,this.mixingFrom=null,this.mixingTo=null,this.listener=null,this.trackIndex=0,this.loop=!1,this.holdPrevious=!1,this.reverse=!1,this.eventThreshold=0,this.attachmentThreshold=0,this.drawOrderThreshold=0,this.animationStart=0,this.animationEnd=0,this.animationLast=0,this.nextAnimationLast=0,this.delay=0,this.trackTime=0,this.trackLast=0,this.nextTrackLast=0,this.trackEnd=0,this.timeScale=0,this.alpha=0,this.mixTime=0,this.mixDuration=0,this.interruptAlpha=0,this.totalAlpha=0,this.mixBlend=$.replace,this.timelineMode=new Array,this.timelineHoldMix=new Array,this.timelinesRotation=new Array}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 t=this.animationEnd-this.animationStart;return t==0?this.animationStart:this.trackTime%t+this.animationStart}return Math.min(this.trackTime+this.animationStart,this.animationEnd)}setAnimationLast(t){this.animationLast=t,this.nextAnimationLast=t}isComplete(){return this.trackTime>=this.animationEnd-this.animationStart}resetRotationDirections(){this.timelinesRotation.length=0}getTrackComplete(){let t=this.animationEnd-this.animationStart;if(t!=0){if(this.loop)return t*(1+(this.trackTime/t|0));if(this.trackTime<t)return t}return this.trackTime}},Je=class{constructor(t){this.objects=[],this.drainDisabled=!1,this.animState=null,this.animState=t}start(t){this.objects.push(tt.start),this.objects.push(t),this.animState.animationsChanged=!0}interrupt(t){this.objects.push(tt.interrupt),this.objects.push(t)}end(t){this.objects.push(tt.end),this.objects.push(t),this.animState.animationsChanged=!0}dispose(t){this.objects.push(tt.dispose),this.objects.push(t)}complete(t){this.objects.push(tt.complete),this.objects.push(t)}event(t,s){this.objects.push(tt.event),this.objects.push(t),this.objects.push(s)}drain(){if(this.drainDisabled)return;this.drainDisabled=!0;let t=this.objects,s=this.animState.listeners;for(let e=0;e<t.length;e+=2){let a=t[e],r=t[e+1];switch(a){case tt.start:r.listener&&r.listener.start&&r.listener.start(r);for(let l=0;l<s.length;l++)s[l].start&&s[l].start(r);break;case tt.interrupt:r.listener&&r.listener.interrupt&&r.listener.interrupt(r);for(let l=0;l<s.length;l++)s[l].interrupt&&s[l].interrupt(r);break;case tt.end:r.listener&&r.listener.end&&r.listener.end(r);for(let l=0;l<s.length;l++)s[l].end&&s[l].end(r);case tt.dispose:r.listener&&r.listener.dispose&&r.listener.dispose(r);for(let l=0;l<s.length;l++)s[l].dispose&&s[l].dispose(r);this.animState.trackEntryPool.free(r);break;case tt.complete:r.listener&&r.listener.complete&&r.listener.complete(r);for(let l=0;l<s.length;l++)s[l].complete&&s[l].complete(r);break;case tt.event:let c=t[e+++2];r.listener&&r.listener.event&&r.listener.event(r,c);for(let l=0;l<s.length;l++)s[l].event&&s[l].event(r,c);break}}this.clear(),this.drainDisabled=!1}clear(){this.objects.length=0}},tt;(function(t){t[t.start=0]="start",t[t.interrupt=1]="interrupt",t[t.end=2]="end",t[t.dispose=3]="dispose",t[t.complete=4]="complete",t[t.event=5]="event"})(tt||(tt={}));var As=class{start(t){}interrupt(t){}end(t){}dispose(t){}complete(t){}event(t,s){}},Nt=0,be=1,we=2,Ot=3,Qe=4,pe=1,Ze=2,ye=null,ks=class{constructor(t){if(this.skeletonData=null,this.animationToMixTime={},this.defaultMix=0,!t)throw new Error("skeletonData cannot be null.");this.skeletonData=t}setMix(t,s,e){let a=this.skeletonData.findAnimation(t);if(!a)throw new Error("Animation not found: "+t);let r=this.skeletonData.findAnimation(s);if(!r)throw new Error("Animation not found: "+s);this.setMixWith(a,r,e)}setMixWith(t,s,e){if(!t)throw new Error("from cannot be null.");if(!s)throw new Error("to cannot be null.");let a=t.name+"."+s.name;this.animationToMixTime[a]=e}getMix(t,s){let e=t.name+"."+s.name,a=this.animationToMixTime[e];return a===void 0?this.defaultMix:a}},Ut=class extends ct{constructor(t){super(t);this.color=new L(1,1,1,1)}copy(){let t=new Ut(this.name);return this.copyTo(t),t.color.setFromColor(this.color),t}},ve=class extends ct{constructor(t){super(t);this.endSlot=null,this.color=new L(.2275,.2275,.8078,1)}copy(){let t=new ve(this.name);return this.copyTo(t),t.endSlot=this.endSlot,t.color.setFromColor(this.color),t}},Se=class{constructor(t){this._image=t}getImage(){return this._image}},St;(function(t){t[t.Nearest=9728]="Nearest",t[t.Linear=9729]="Linear",t[t.MipMap=9987]="MipMap",t[t.MipMapNearestNearest=9984]="MipMapNearestNearest",t[t.MipMapLinearNearest=9985]="MipMapLinearNearest",t[t.MipMapNearestLinear=9986]="MipMapNearestLinear",t[t.MipMapLinearLinear=9987]="MipMapLinearLinear"})(St||(St={}));var At;(function(t){t[t.MirroredRepeat=33648]="MirroredRepeat",t[t.ClampToEdge=33071]="ClampToEdge",t[t.Repeat=10497]="Repeat"})(At||(At={}));var Ke=class{constructor(){this.u=0,this.v=0,this.u2=0,this.v2=0,this.width=0,this.height=0,this.degrees=0,this.offsetX=0,this.offsetY=0,this.originalWidth=0,this.originalHeight=0}},Cs=class extends Se{setFilters(t,s){}setWraps(t,s){}dispose(){}},ts=class{constructor(t){this.pages=new Array,this.regions=new Array;let s=new Ys(t),e=new Array(4),a=null,r=null,c={};c.size=()=>{a.width=parseInt(e[1]),a.height=parseInt(e[2])},c.format=()=>{},c.filter=()=>{a.minFilter=B.enumValue(St,e[1]),a.magFilter=B.enumValue(St,e[2])},c.repeat=()=>{e[1].indexOf("x")!=-1&&(a.uWrap=At.Repeat),e[1].indexOf("y")!=-1&&(a.vWrap=At.Repeat)},c.pma=()=>{a.pma=e[1]=="true"};var l={};l.xy=()=>{r.x=parseInt(e[1]),r.y=parseInt(e[2])},l.size=()=>{r.width=parseInt(e[1]),r.height=parseInt(e[2])},l.bounds=()=>{r.x=parseInt(e[1]),r.y=parseInt(e[2]),r.width=parseInt(e[3]),r.height=parseInt(e[4])},l.offset=()=>{r.offsetX=parseInt(e[1]),r.offsetY=parseInt(e[2])},l.orig=()=>{r.originalWidth=parseInt(e[1]),r.originalHeight=parseInt(e[2])},l.offsets=()=>{r.offsetX=parseInt(e[1]),r.offsetY=parseInt(e[2]),r.originalWidth=parseInt(e[3]),r.originalHeight=parseInt(e[4])},l.rotate=()=>{let h=e[1];h=="true"?r.degrees=90:h!="false"&&(r.degrees=parseInt(h))},l.index=()=>{r.index=parseInt(e[1])};let i=s.readLine();for(;i&&i.trim().length==0;)i=s.readLine();for(;!(!i||i.trim().length==0||s.readEntry(e,i)==0);)i=s.readLine();let o=null,n=null;for(;i!==null;)if(i.trim().length==0)a=null,i=s.readLine();else if(a){for(r=new Ae,r.page=a,r.name=i;;){let h=s.readEntry(e,i=s.readLine());if(h==0)break;let d=l[e[0]];if(d)d();else{o||(o=[],n=[]),o.push(e[0]);let f=[];for(let u=0;u<h;u++)f.push(parseInt(e[u+1]));n.push(f)}}r.originalWidth==0&&r.originalHeight==0&&(r.originalWidth=r.width,r.originalHeight=r.height),o&&o.length>0&&(r.names=o,r.values=n,o=null,n=null),r.u=r.x/a.width,r.v=r.y/a.height,r.degrees==90?(r.u2=(r.x+r.height)/a.width,r.v2=(r.y+r.width)/a.height):(r.u2=(r.x+r.width)/a.width,r.v2=(r.y+r.height)/a.height),this.regions.push(r)}else{for(a=new es,a.name=i.trim();s.readEntry(e,i=s.readLine())!=0;){let h=c[e[0]];h&&h()}this.pages.push(a)}}findRegion(t){for(let s=0;s<this.regions.length;s++)if(this.regions[s].name==t)return this.regions[s];return null}setTextures(t,s=""){for(let e of this.pages)e.setTexture(t.get(s+e.name))}dispose(){for(let t=0;t<this.pages.length;t++)this.pages[t].texture.dispose()}},Ys=class{constructor(t){this.lines=null,this.index=0,this.lines=t.split(/\r\n|\r|\n/)}readLine(){return this.index>=this.lines.length?null:this.lines[this.index++]}readEntry(t,s){if(!s||(s=s.trim(),s.length==0))return 0;let e=s.indexOf(":");if(e==-1)return 0;t[0]=s.substr(0,e).trim();for(let a=1,r=e+1;;a++){let c=s.indexOf(",",r);if(c==-1)return t[a]=s.substr(r).trim(),a;if(t[a]=s.substr(r,c-r).trim(),r=c+1,a==4)return 4}}},es=class{constructor(){this.name=null,this.minFilter=St.Nearest,this.magFilter=St.Nearest,this.uWrap=At.ClampToEdge,this.vWrap=At.ClampToEdge,this.texture=null,this.width=0,this.height=0,this.pma=!1}setTexture(t){this.texture=t,t.setFilters(this.minFilter,this.magFilter),t.setWraps(this.uWrap,this.vWrap)}},Ae=class extends Ke{constructor(){super(...arguments);this.page=null,this.name=null,this.x=0,this.y=0,this.offsetX=0,this.offsetY=0,this.originalWidth=0,this.originalHeight=0,this.index=0,this.degrees=0,this.names=null,this.values=null}},kt=class extends ct{constructor(t){super(t);this.region=null,this.path=null,this.regionUVs=null,this.uvs=null,this.triangles=null,this.color=new L(1,1,1,1),this.width=0,this.height=0,this.hullLength=0,this.edges=null,this.parentMesh=null,this.tempColor=new L(0,0,0,0)}updateUVs(){let t=this.regionUVs;(!this.uvs||this.uvs.length!=t.length)&&(this.uvs=B.newFloatArray(t.length));let s=this.uvs,e=this.uvs.length,a=this.region.u,r=this.region.v,c=0,l=0;if(this.region instanceof Ae){let i=this.region,o=i.page.texture.getImage(),n=o.width,h=o.height;switch(i.degrees){case 90:a-=(i.originalHeight-i.offsetY-i.height)/n,r-=(i.originalWidth-i.offsetX-i.width)/h,c=i.originalHeight/n,l=i.originalWidth/h;for(let d=0;d<e;d+=2)s[d]=a+t[d+1]*c,s[d+1]=r+(1-t[d])*l;return;case 180:a-=(i.originalWidth-i.offsetX-i.width)/n,r-=i.offsetY/h,c=i.originalWidth/n,l=i.originalHeight/h;for(let d=0;d<e;d+=2)s[d]=a+(1-t[d])*c,s[d+1]=r+(1-t[d+1])*l;return;case 270:a-=i.offsetY/n,r-=i.offsetX/h,c=i.originalHeight/n,l=i.originalWidth/h;for(let d=0;d<e;d+=2)s[d]=a+(1-t[d+1])*c,s[d+1]=r+t[d]*l;return}a-=i.offsetX/n,r-=(i.originalHeight-i.offsetY-i.height)/h,c=i.originalWidth/n,l=i.originalHeight/h}else this.region?(c=this.region.u2-a,l=this.region.v2-r):(a=r=0,c=l=1);for(let i=0;i<e;i+=2)s[i]=a+t[i]*c,s[i+1]=r+t[i+1]*l}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 kt(this.name);return t.region=this.region,t.path=this.path,t.color.setFromColor(this.color),this.copyTo(t),t.regionUVs=new Array(this.regionUVs.length),B.arrayCopy(this.regionUVs,0,t.regionUVs,0,this.regionUVs.length),t.uvs=new Array(this.uvs.length),B.arrayCopy(this.uvs,0,t.uvs,0,this.uvs.length),t.triangles=new Array(this.triangles.length),B.arrayCopy(this.triangles,0,t.triangles,0,this.triangles.length),t.hullLength=this.hullLength,this.edges&&(t.edges=new Array(this.edges.length),B.arrayCopy(this.edges,0,t.edges,0,this.edges.length)),t.width=this.width,t.height=this.height,t}newLinkedMesh(){let t=new kt(this.name);return t.region=this.region,t.path=this.path,t.color.setFromColor(this.color),t.deformAttachment=this.deformAttachment,t.setParentMesh(this.parentMesh?this.parentMesh:this),t.updateUVs(),t}},It=class extends ct{constructor(t){super(t);this.lengths=null,this.closed=!1,this.constantSpeed=!1,this.color=new L(1,1,1,1)}copy(){let t=new It(this.name);return this.copyTo(t),t.lengths=new Array(this.lengths.length),B.arrayCopy(this.lengths,0,t.lengths,0,this.lengths.length),t.closed=closed,t.constantSpeed=this.constantSpeed,t.color.setFromColor(this.color),t}},ke=class extends ct{constructor(t){super(t);this.x=0,this.y=0,this.rotation=0,this.color=new L(.38,.94,0,1)}computeWorldPosition(t,s){return s.x=this.x*t.a+this.y*t.b+t.worldX,s.y=this.x*t.c+this.y*t.d+t.worldY,s}computeWorldRotation(t){let s=X.cosDeg(this.rotation),e=X.sinDeg(this.rotation),a=s*t.a+e*t.b,r=s*t.c+e*t.d;return Math.atan2(r,a)*X.radDeg}copy(){let t=new ke(this.name);return t.x=this.x,t.y=this.y,t.rotation=this.rotation,t.color.setFromColor(this.color),t}},ss=class extends $t{constructor(t){super(t);this.x=0,this.y=0,this.scaleX=1,this.scaleY=1,this.rotation=0,this.width=0,this.height=0,this.color=new L(1,1,1,1),this.path=null,this.rendererObject=null,this.region=null,this.offset=B.newFloatArray(8),this.uvs=B.newFloatArray(8),this.tempColor=new L(1,1,1,1)}updateOffset(){let t=this.region,s=this.width/this.region.originalWidth*this.scaleX,e=this.height/this.region.originalHeight*this.scaleY,a=-this.width/2*this.scaleX+this.region.offsetX*s,r=-this.height/2*this.scaleY+this.region.offsetY*e,c=a+this.region.width*s,l=r+this.region.height*e,i=this.rotation*Math.PI/180,o=Math.cos(i),n=Math.sin(i),h=this.x,d=this.y,f=a*o+h,u=a*n,m=r*o+d,x=r*n,p=c*o+h,y=c*n,g=l*o+d,w=l*n,b=this.offset;b[0]=f-x,b[1]=m+u,b[2]=f-w,b[3]=g+u,b[4]=p-w,b[5]=g+y,b[6]=p-x,b[7]=m+y}setRegion(t){this.region=t;let s=this.uvs;t.degrees==90?(s[2]=t.u,s[3]=t.v2,s[4]=t.u,s[5]=t.v,s[6]=t.u2,s[7]=t.v,s[0]=t.u2,s[1]=t.v2):(s[0]=t.u,s[1]=t.v2,s[2]=t.u,s[3]=t.v,s[4]=t.u2,s[5]=t.v,s[6]=t.u2,s[7]=t.v2)}computeWorldVertices(t,s,e,a){let r=this.offset,c=t.worldX,l=t.worldY,i=t.a,o=t.b,n=t.c,h=t.d,d=0,f=0;d=r[0],f=r[1],s[e]=d*i+f*o+c,s[e+1]=d*n+f*h+l,e+=a,d=r[2],f=r[3],s[e]=d*i+f*o+c,s[e+1]=d*n+f*h+l,e+=a,d=r[4],f=r[5],s[e]=d*i+f*o+c,s[e+1]=d*n+f*h+l,e+=a,d=r[6],f=r[7],s[e]=d*i+f*o+c,s[e+1]=d*n+f*h+l}copy(){let t=new ss(this.name);return t.region=this.region,t.rendererObject=this.rendererObject,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,B.arrayCopy(this.uvs,0,t.uvs,0,8),B.arrayCopy(this.offset,0,t.offset,0,8),t.color.setFromColor(this.color),t}},E=ss;E.X1=0,E.Y1=1,E.C1R=2,E.C1G=3,E.C1B=4,E.C1A=5,E.U1=6,E.V1=7,E.X2=8,E.Y2=9,E.C2R=10,E.C2G=11,E.C2B=12,E.C2A=13,E.U2=14,E.V2=15,E.X3=16,E.Y3=17,E.C3R=18,E.C3G=19,E.C3B=20,E.C3A=21,E.U3=22,E.V3=23,E.X4=24,E.Y4=25,E.C4R=26,E.C4G=27,E.C4B=28,E.C4A=29,E.U4=30,E.V4=31;var Is=class{constructor(t){this.atlas=null,this.atlas=t}newRegionAttachment(t,s,e){let a=this.atlas.findRegion(e);if(!a)throw new Error("Region not found in atlas: "+e+" (region attachment: "+s+")");a.renderObject=a;let r=new E(s);return r.setRegion(a),r}newMeshAttachment(t,s,e){let a=this.atlas.findRegion(e);if(!a)throw new Error("Region not found in atlas: "+e+" (mesh attachment: "+s+")");a.renderObject=a;let r=new kt(s);return r.region=a,r}newBoundingBoxAttachment(t,s){return new Ut(s)}newPathAttachment(t,s){return new It(s)}newPointAttachment(t,s){return new ke(s)}newClippingAttachment(t,s){return new ve(s)}},Ce=class{constructor(t,s,e){if(this.index=0,this.name=null,this.parent=null,this.length=0,this.x=0,this.y=0,this.rotation=0,this.scaleX=1,this.scaleY=1,this.shearX=0,this.shearY=0,this.transformMode=et.Normal,this.skinRequired=!1,this.color=new L,t<0)throw new Error("index must be >= 0.");if(!s)throw new Error("name cannot be null.");this.index=t,this.name=s,this.parent=e}},et;(function(t){t[t.Normal=0]="Normal",t[t.OnlyTranslation=1]="OnlyTranslation",t[t.NoRotationOrReflection=2]="NoRotationOrReflection",t[t.NoScale=3]="NoScale",t[t.NoScaleOrReflection=4]="NoScaleOrReflection"})(et||(et={}));var Ye=class{constructor(t,s,e){if(this.data=null,this.skeleton=null,this.parent=null,this.children=new Array,this.x=0,this.y=0,this.rotation=0,this.scaleX=0,this.scaleY=0,this.shearX=0,this.shearY=0,this.ax=0,this.ay=0,this.arotation=0,this.ascaleX=0,this.ascaleY=0,this.ashearX=0,this.ashearY=0,this.a=0,this.b=0,this.c=0,this.d=0,this.worldY=0,this.worldX=0,this.sorted=!1,this.active=!1,!t)throw new Error("data cannot be null.");if(!s)throw new Error("skeleton cannot be null.");this.data=t,this.skeleton=s,this.parent=e,this.setToSetupPose()}isActive(){return this.active}update(){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(t,s,e,a,r,c,l){this.ax=t,this.ay=s,this.arotation=e,this.ascaleX=a,this.ascaleY=r,this.ashearX=c,this.ashearY=l;let i=this.parent;if(!i){let f=this.skeleton,u=e+90+l,m=f.scaleX,x=f.scaleY;this.a=X.cosDeg(e+c)*a*m,this.b=X.cosDeg(u)*r*m,this.c=X.sinDeg(e+c)*a*x,this.d=X.sinDeg(u)*r*x,this.worldX=t*m+f.x,this.worldY=s*x+f.y;return}let o=i.a,n=i.b,h=i.c,d=i.d;switch(this.worldX=o*t+n*s+i.worldX,this.worldY=h*t+d*s+i.worldY,this.data.transformMode){case et.Normal:{let f=e+90+l,u=X.cosDeg(e+c)*a,m=X.cosDeg(f)*r,x=X.sinDeg(e+c)*a,p=X.sinDeg(f)*r;this.a=o*u+n*x,this.b=o*m+n*p,this.c=h*u+d*x,this.d=h*m+d*p;return}case et.OnlyTranslation:{let f=e+90+l;this.a=X.cosDeg(e+c)*a,this.b=X.cosDeg(f)*r,this.c=X.sinDeg(e+c)*a,this.d=X.sinDeg(f)*r;break}case et.NoRotationOrReflection:{let f=o*o+h*h,u=0;f>1e-4?(f=Math.abs(o*d-n*h)/f,o/=this.skeleton.scaleX,h/=this.skeleton.scaleY,n=h*f,d=o*f,u=Math.atan2(h,o)*X.radDeg):(o=0,h=0,u=90-Math.atan2(d,n)*X.radDeg);let m=e+c-u,x=e+l-u+90,p=X.cosDeg(m)*a,y=X.cosDeg(x)*r,g=X.sinDeg(m)*a,w=X.sinDeg(x)*r;this.a=o*p-n*g,this.b=o*y-n*w,this.c=h*p+d*g,this.d=h*y+d*w;break}case et.NoScale:case et.NoScaleOrReflection:{let f=X.cosDeg(e),u=X.sinDeg(e),m=(o*f+n*u)/this.skeleton.scaleX,x=(h*f+d*u)/this.skeleton.scaleY,p=Math.sqrt(m*m+x*x);p>1e-5&&(p=1/p),m*=p,x*=p,p=Math.sqrt(m*m+x*x),this.data.transformMode==et.NoScale&&o*d-n*h<0!=(this.skeleton.scaleX<0!=this.skeleton.scaleY<0)&&(p=-p);let y=Math.PI/2+Math.atan2(x,m),g=Math.cos(y)*p,w=Math.sin(y)*p,b=X.cosDeg(c)*a,v=X.cosDeg(90+l)*r,A=X.sinDeg(c)*a,S=X.sinDeg(90+l)*r;this.a=m*b+g*A,this.b=m*v+g*S,this.c=x*b+w*A,this.d=x*v+w*S;break}}this.a*=this.skeleton.scaleX,this.b*=this.skeleton.scaleX,this.c*=this.skeleton.scaleY,this.d*=this.skeleton.scaleY}setToSetupPose(){let t=this.data;this.x=t.x,this.y=t.y,this.rotation=t.rotation,this.scaleX=t.scaleX,this.scaleY=t.scaleY,this.shearX=t.shearX,this.shearY=t.shearY}getWorldRotationX(){return Math.atan2(this.c,this.a)*X.radDeg}getWorldRotationY(){return Math.atan2(this.d,this.b)*X.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)}updateAppliedTransform(){let t=this.parent;if(!t){this.ax=this.worldX-this.skeleton.x,this.ay=this.worldY-this.skeleton.y,this.arotation=Math.atan2(this.c,this.a)*X.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)*X.radDeg;return}let s=t.a,e=t.b,a=t.c,r=t.d,c=1/(s*r-e*a),l=this.worldX-t.worldX,i=this.worldY-t.worldY;this.ax=l*r*c-i*e*c,this.ay=i*s*c-l*a*c;let o=c*r,n=c*s,h=c*e,d=c*a,f=o*this.a-h*this.c,u=o*this.b-h*this.d,m=n*this.c-d*this.a,x=n*this.d-d*this.b;if(this.ashearX=0,this.ascaleX=Math.sqrt(f*f+m*m),this.ascaleX>1e-4){let p=f*x-u*m;this.ascaleY=p/this.ascaleX,this.ashearY=Math.atan2(f*u+m*x,p)*X.radDeg,this.arotation=Math.atan2(m,f)*X.radDeg}else this.ascaleX=0,this.ascaleY=Math.sqrt(u*u+x*x),this.ashearY=0,this.arotation=90-Math.atan2(x,u)*X.radDeg}worldToLocal(t){let s=1/(this.a*this.d-this.b*this.c),e=t.x-this.worldX,a=t.y-this.worldY;return t.x=e*this.d*s-a*this.b*s,t.y=a*this.a*s-e*this.c*s,t}localToWorld(t){let s=t.x,e=t.y;return t.x=s*this.a+e*this.b+this.worldX,t.y=s*this.c+e*this.d+this.worldY,t}worldToLocalRotation(t){let s=X.sinDeg(t),e=X.cosDeg(t);return Math.atan2(this.a*s-this.c*e,this.d*e-this.b*s)*X.radDeg+this.rotation-this.shearX}localToWorldRotation(t){t-=this.rotation-this.shearX;let s=X.sinDeg(t),e=X.cosDeg(t);return Math.atan2(e*this.c+s*this.d,e*this.a+s*this.b)*X.radDeg}rotateWorld(t){let s=this.a,e=this.b,a=this.c,r=this.d,c=X.cosDeg(t),l=X.sinDeg(t);this.a=c*s-l*a,this.b=c*e-l*r,this.c=l*s+c*a,this.d=l*e+c*r}},Wt=class{constructor(t,s,e){this.name=t,this.order=s,this.skinRequired=e}},is=class{constructor(t,s="",e=null){this.pathPrefix=null,this.assets={},this.errors={},this.toLoad=0,this.loaded=0,this.textureLoader=t,this.pathPrefix=s,this.downloader=e||new rs}start(t){return this.toLoad++,this.pathPrefix+t}success(t,s,e){this.toLoad--,this.loaded++,this.assets[s]=e,t&&t(s,e)}error(t,s,e){this.toLoad--,this.loaded++,this.errors[s]=e,t&&t(s,e)}loadAll(){return new Promise((s,e)=>{let a=()=>{if(this.isLoadingComplete()){this.hasErrors()?e(this.errors):s(this);return}requestAnimationFrame(a)};requestAnimationFrame(a)})}setRawDataURI(t,s){this.downloader.rawDataUris[this.pathPrefix+t]=s}loadBinary(t,s=null,e=null){t=this.start(t),this.downloader.downloadBinary(t,a=>{this.success(s,t,a)},(a,r)=>{this.error(e,t,`Couldn't load binary ${t}: status ${a}, ${r}`)})}loadText(t,s=null,e=null){t=this.start(t),this.downloader.downloadText(t,a=>{this.success(s,t,a)},(a,r)=>{this.error(e,t,`Couldn't load text ${t}: status ${a}, ${r}`)})}loadJson(t,s=null,e=null){t=this.start(t),this.downloader.downloadJson(t,a=>{this.success(s,t,a)},(a,r)=>{this.error(e,t,`Couldn't load JSON ${t}: status ${a}, ${r}`)})}loadTexture(t,s=null,e=null){if(t=this.start(t),!!!(typeof window!="undefined"&&typeof navigator!="undefined"&&window.document))fetch(t,{mode:"cors"}).then(c=>c.ok?c.blob():(this.error(e,t,`Couldn't load image: ${t}`),null)).then(c=>c?createImageBitmap(c,{premultiplyAlpha:"none",colorSpaceConversion:"none"}):null).then(c=>{c&&this.success(s,t,this.textureLoader(c))});else{let c=new Image;c.crossOrigin="anonymous",c.onload=()=>{this.success(s,t,this.textureLoader(c))},c.onerror=()=>{this.error(e,t,`Couldn't load image: ${t}`)},this.downloader.rawDataUris[t]&&(t=this.downloader.rawDataUris[t]),c.src=t}}loadTextureAtlas(t,s=null,e=null,a=null){let r=t.lastIndexOf("/"),c=r>=0?t.substring(0,r+1):"";t=this.start(t),this.downloader.downloadText(t,l=>{try{let i=new ts(l),o=i.pages.length,n=!1;for(let h of i.pages)this.loadTexture(a==null?c+h.name:a[h.name],(d,f)=>{n||(h.setTexture(f),--o==0&&this.success(s,t,i))},(d,f)=>{n||this.error(e,t,`Couldn't load texture atlas ${t} page image: ${d}`),n=!0})}catch(i){this.error(e,t,`Couldn't parse texture atlas ${t}: ${i.message}`)}},(l,i)=>{this.error(e,t,`Couldn't load texture atlas ${t}: status ${l}, ${i}`)})}get(t){return this.assets[this.pathPrefix+t]}require(t){t=this.pathPrefix+t;let s=this.assets[t];if(s)return s;let e=this.errors[t];throw Error("Asset not found: "+t+(e?`
|
|
2
|
-
`+e:""))}remove(t){t=this.pathPrefix+t;let s=this.assets[t];return s.dispose&&s.dispose(),delete this.assets[t],s}removeAll(){for(let t in this.assets){let s=this.assets[t];s.dispose&&s.dispose()}this.assets={}}isLoadingComplete(){return this.toLoad==0}getToLoad(){return this.toLoad}getLoaded(){return this.loaded}dispose(){this.removeAll()}hasErrors(){return Object.keys(this.errors).length>0}getErrors(){return this.errors}},rs=class{constructor(){this.callbacks={},this.rawDataUris={}}dataUriToString(t){if(!t.startsWith("data:"))throw new Error("Not a data URI.");let s=t.indexOf("base64,");return s!=-1?(s+="base64,".length,atob(t.substr(s))):t.substr(t.indexOf(",")+1)}base64ToUint8Array(t){for(var s=window.atob(t),e=s.length,a=new Uint8Array(e),r=0;r<e;r++)a[r]=s.charCodeAt(r);return a}dataUriToUint8Array(t){if(!t.startsWith("data:"))throw new Error("Not a data URI.");let s=t.indexOf("base64,");if(s==-1)throw new Error("Not a binary data URI.");return s+="base64,".length,this.base64ToUint8Array(t.substr(s))}downloadText(t,s,e){if(this.start(t,s,e))return;if(this.rawDataUris[t]){try{let c=this.rawDataUris[t];this.finish(t,200,this.dataUriToString(c))}catch(c){this.finish(t,400,JSON.stringify(c))}return}let a=new XMLHttpRequest;a.overrideMimeType("text/html"),a.open("GET",t,!0);let r=()=>{this.finish(t,a.status,a.responseText)};a.onload=r,a.onerror=r,a.send()}downloadJson(t,s,e){this.downloadText(t,a=>{s(JSON.parse(a))},e)}downloadBinary(t,s,e){if(this.start(t,s,e))return;if(this.rawDataUris[t]){try{let c=this.rawDataUris[t];this.finish(t,200,this.dataUriToUint8Array(c))}catch(c){this.finish(t,400,JSON.stringify(c))}return}let a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer";let r=()=>{this.finish(t,a.status,a.response)};a.onload=()=>{a.status==200||a.status==0?this.finish(t,200,new Uint8Array(a.response)):r()},a.onerror=r,a.send()}start(t,s,e){let a=this.callbacks[t];try{if(a)return!0;this.callbacks[t]=a=[]}finally{a.push(s,e)}}finish(t,s,e){let a=this.callbacks[t];delete this.callbacks[t];let r=s==200||s==0?[e]:[s,e];for(let c=r.length-1,l=a.length;c<l;c+=2)a[c].apply(null,r)}},Ie=class{constructor(t,s){if(this.data=null,this.intValue=0,this.floatValue=0,this.stringValue=null,this.time=0,this.volume=0,this.balance=0,!s)throw new Error("data cannot be null.");this.time=t,this.data=s}},Te=class{constructor(t){this.name=null,this.intValue=0,this.floatValue=0,this.stringValue=null,this.audioPath=null,this.volume=0,this.balance=0,this.name=t}},as=class{constructor(t,s){if(this.data=null,this.bones=null,this.target=null,this.bendDirection=0,this.compress=!1,this.stretch=!1,this.mix=1,this.softness=0,this.active=!1,!t)throw new Error("data cannot be null.");if(!s)throw new Error("skeleton cannot be null.");this.data=t,this.mix=t.mix,this.softness=t.softness,this.bendDirection=t.bendDirection,this.compress=t.compress,this.stretch=t.stretch,this.bones=new Array;for(let e=0;e<t.bones.length;e++)this.bones.push(s.findBone(t.bones[e].name));this.target=s.findBone(t.target.name)}isActive(){return this.active}update(){if(this.mix==0)return;let t=this.target,s=this.bones;switch(s.length){case 1:this.apply1(s[0],t.worldX,t.worldY,this.compress,this.stretch,this.data.uniform,this.mix);break;case 2:this.apply2(s[0],s[1],t.worldX,t.worldY,this.bendDirection,this.stretch,this.data.uniform,this.softness,this.mix);break}}apply1(t,s,e,a,r,c,l){let i=t.parent,o=i.a,n=i.b,h=i.c,d=i.d,f=-t.ashearX-t.arotation,u=0,m=0;switch(t.data.transformMode){case et.OnlyTranslation:u=s-t.worldX,m=e-t.worldY;break;case et.NoRotationOrReflection:let y=Math.abs(o*d-n*h)/(o*o+h*h),g=o/t.skeleton.scaleX,w=h/t.skeleton.scaleY;n=-w*y*t.skeleton.scaleX,d=g*y*t.skeleton.scaleY,f+=Math.atan2(w,g)*X.radDeg;default:let b=s-i.worldX,v=e-i.worldY,A=o*d-n*h;u=(b*d-v*n)/A-t.ax,m=(v*o-b*h)/A-t.ay}f+=Math.atan2(m,u)*X.radDeg,t.ascaleX<0&&(f+=180),f>180?f-=360:f<-180&&(f+=360);let x=t.ascaleX,p=t.ascaleY;if(a||r){switch(t.data.transformMode){case et.NoScale:case et.NoScaleOrReflection:u=s-t.worldX,m=e-t.worldY}let y=t.data.length*x,g=Math.sqrt(u*u+m*m);if(a&&g<y||r&&g>y&&y>1e-4){let w=(g/y-1)*l+1;x*=w,c&&(p*=w)}}t.updateWorldTransformWith(t.ax,t.ay,t.arotation+f*l,x,p,t.ashearX,t.ashearY)}apply2(t,s,e,a,r,c,l,i,o){let n=t.ax,h=t.ay,d=t.ascaleX,f=t.ascaleY,u=d,m=f,x=s.ascaleX,p=0,y=0,g=0;d<0?(d=-d,p=180,g=-1):(p=0,g=1),f<0&&(f=-f,g=-g),x<0?(x=-x,y=180):y=0;let w=s.ax,b=0,v=0,A=0,S=t.a,I=t.b,Y=t.c,F=t.d,P=Math.abs(d-f)<=1e-4;!P||c?(b=0,v=S*w+t.worldX,A=Y*w+t.worldY):(b=s.ay,v=S*w+I*b+t.worldX,A=Y*w+F*b+t.worldY);let R=t.parent;S=R.a,I=R.b,Y=R.c,F=R.d;let M=1/(S*F-I*Y),C=v-R.worldX,T=A-R.worldY,O=(C*F-T*I)*M-n,z=(T*S-C*Y)*M-h,V=Math.sqrt(O*O+z*z),q=s.data.length*x,j,H;if(V<1e-4){this.apply1(t,e,a,!1,c,!1,o),s.updateWorldTransformWith(w,b,0,s.ascaleX,s.ascaleY,s.ashearX,s.ashearY);return}C=e-R.worldX,T=a-R.worldY;let N=(C*F-T*I)*M-n,D=(T*S-C*Y)*M-h,G=N*N+D*D;if(i!=0){i*=d*(x+1)*.5;let Z=Math.sqrt(G),it=Z-V-q*d+i;if(it>0){let rt=Math.min(1,it/(i*2))-1;rt=(it-i*(1-rt*rt))/Z,N-=rt*N,D-=rt*D,G=N*N+D*D}}t:if(P){q*=d;let Z=(G-V*V-q*q)/(2*V*q);Z<-1?(Z=-1,H=Math.PI*r):Z>1?(Z=1,H=0,c&&(S=(Math.sqrt(G)/(V+q)-1)*o+1,u*=S,l&&(m*=S))):H=Math.acos(Z)*r,S=V+q*Z,I=q*Math.sin(H),j=Math.atan2(D*S-N*I,N*S+D*I)}else{S=d*q,I=f*q;let Z=S*S,it=I*I,rt=Math.atan2(D,N);Y=it*V*V+Z*G-Z*it;let wt=-2*it*V,Xt=it-Z;if(F=wt*wt-4*Xt*Y,F>=0){let Mt=Math.sqrt(F);wt<0&&(Mt=-Mt),Mt=-(wt+Mt)*.5;let gs=Mt/Xt,xs=Y/Mt,Ft=Math.abs(gs)<Math.abs(xs)?gs:xs;if(Ft*Ft<=G){T=Math.sqrt(G-Ft*Ft)*r,j=rt-Math.atan2(T,Ft),H=Math.atan2(T/f,(Ft-V)/d);break t}}let Et=X.PI,Ht=V-S,Ne=Ht*Ht,fs=0,us=0,Gt=V+S,Oe=Gt*Gt,ms=0;Y=-S*V/(Z-it),Y>=-1&&Y<=1&&(Y=Math.acos(Y),C=S*Math.cos(Y)+V,T=I*Math.sin(Y),F=C*C+T*T,F<Ne&&(Et=Y,Ne=F,Ht=C,fs=T),F>Oe&&(us=Y,Oe=F,Gt=C,ms=T)),G<=(Ne+Oe)*.5?(j=rt-Math.atan2(fs*r,Ht),H=Et*r):(j=rt-Math.atan2(ms*r,Gt),H=us*r)}let K=Math.atan2(b,w)*g,ht=t.arotation;j=(j-K)*X.radDeg+p-ht,j>180?j-=360:j<-180&&(j+=360),t.updateWorldTransformWith(n,h,ht+j*o,u,m,0,0),ht=s.arotation,H=((H+K)*X.radDeg-s.ashearX)*g+y-ht,H>180?H-=360:H<-180&&(H+=360),s.updateWorldTransformWith(w,b,ht+H*o,s.ascaleX,s.ascaleY,s.ashearX,s.ashearY)}},Xe=class extends Wt{constructor(t){super(t,0,!1);this.bones=new Array,this.target=null,this.bendDirection=1,this.compress=!1,this.stretch=!1,this.uniform=!1,this.mix=1,this.softness=0}},Me=class extends Wt{constructor(t){super(t,0,!1);this.bones=new Array,this.target=null,this.positionMode=null,this.spacingMode=null,this.rotateMode=null,this.offsetRotation=0,this.position=0,this.spacing=0,this.mixRotate=0,this.mixX=0,this.mixY=0}},dt;(function(t){t[t.Fixed=0]="Fixed",t[t.Percent=1]="Percent"})(dt||(dt={}));var Q;(function(t){t[t.Length=0]="Length",t[t.Fixed=1]="Fixed",t[t.Percent=2]="Percent",t[t.Proportional=3]="Proportional"})(Q||(Q={}));var Ct;(function(t){t[t.Tangent=0]="Tangent",t[t.Chain=1]="Chain",t[t.ChainScale=2]="ChainScale"})(Ct||(Ct={}));var gt=class{constructor(t,s){if(this.data=null,this.bones=null,this.target=null,this.position=0,this.spacing=0,this.mixRotate=0,this.mixX=0,this.mixY=0,this.spaces=new Array,this.positions=new Array,this.world=new Array,this.curves=new Array,this.lengths=new Array,this.segments=new Array,this.active=!1,!t)throw new Error("data cannot be null.");if(!s)throw new Error("skeleton cannot be null.");this.data=t,this.bones=new Array;for(let e=0,a=t.bones.length;e<a;e++)this.bones.push(s.findBone(t.bones[e].name));this.target=s.findSlot(t.target.name),this.position=t.position,this.spacing=t.spacing,this.mixRotate=t.mixRotate,this.mixX=t.mixX,this.mixY=t.mixY}isActive(){return this.active}update(){let t=this.target.getAttachment();if(!(t instanceof It))return;let s=this.mixRotate,e=this.mixX,a=this.mixY;if(s==0&&e==0&&a==0)return;let r=this.data,c=r.rotateMode==Ct.Tangent,l=r.rotateMode==Ct.ChainScale,i=this.bones,o=i.length,n=c?o:o+1,h=B.setArraySize(this.spaces,n),d=l?this.lengths=B.setArraySize(this.lengths,o):null,f=this.spacing;switch(r.spacingMode){case Q.Percent:if(l)for(let b=0,v=n-1;b<v;b++){let A=i[b],S=A.data.length;if(S<gt.epsilon)d[b]=0;else{let I=S*A.a,Y=S*A.c;d[b]=Math.sqrt(I*I+Y*Y)}}B.arrayFill(h,1,n,f);break;case Q.Proportional:let g=0;for(let b=0,v=n-1;b<v;){let A=i[b],S=A.data.length;if(S<gt.epsilon)l&&(d[b]=0),h[++b]=f;else{let I=S*A.a,Y=S*A.c,F=Math.sqrt(I*I+Y*Y);l&&(d[b]=F),h[++b]=F,g+=F}}if(g>0){g=n/g*f;for(let b=1;b<n;b++)h[b]*=g}break;default:let w=r.spacingMode==Q.Length;for(let b=0,v=n-1;b<v;){let A=i[b],S=A.data.length;if(S<gt.epsilon)l&&(d[b]=0),h[++b]=f;else{let I=S*A.a,Y=S*A.c,F=Math.sqrt(I*I+Y*Y);l&&(d[b]=F),h[++b]=(w?S+f:f)*F/S}}}let u=this.computeWorldPositions(t,n,c),m=u[0],x=u[1],p=r.offsetRotation,y=!1;if(p==0)y=r.rotateMode==Ct.Chain;else{y=!1;let g=this.target.bone;p*=g.a*g.d-g.b*g.c>0?X.degRad:-X.degRad}for(let g=0,w=3;g<o;g++,w+=3){let b=i[g];b.worldX+=(m-b.worldX)*e,b.worldY+=(x-b.worldY)*a;let v=u[w],A=u[w+1],S=v-m,I=A-x;if(l){let Y=d[g];if(Y!=0){let F=(Math.sqrt(S*S+I*I)/Y-1)*s+1;b.a*=F,b.c*=F}}if(m=v,x=A,s>0){let Y=b.a,F=b.b,P=b.c,R=b.d,M=0,C=0,T=0;if(c?M=u[w-1]:h[g+1]==0?M=u[w+2]:M=Math.atan2(I,S),M-=Math.atan2(P,Y),y){C=Math.cos(M),T=Math.sin(M);let O=b.data.length;m+=(O*(C*Y-T*P)-S)*s,x+=(O*(T*Y+C*P)-I)*s}else M+=p;M>X.PI?M-=X.PI2:M<-X.PI&&(M+=X.PI2),M*=s,C=Math.cos(M),T=Math.sin(M),b.a=C*Y-T*P,b.b=C*F-T*R,b.c=T*Y+C*P,b.d=T*F+C*R}b.updateAppliedTransform()}}computeWorldPositions(t,s,e){let a=this.target,r=this.position,c=this.spaces,l=B.setArraySize(this.positions,s*3+2),i=null,o=t.closed,n=t.worldVerticesLength,h=n/6,d=gt.NONE;if(!t.constantSpeed){let z=t.lengths;h-=o?1:2;let V=z[h];this.data.positionMode==dt.Percent&&(r*=V);let q;switch(this.data.spacingMode){case Q.Percent:q=V;break;case Q.Proportional:q=V/s;break;default:q=1}i=B.setArraySize(this.world,8);for(let j=0,H=0,N=0;j<s;j++,H+=3){let D=c[j]*q;r+=D;let G=r;if(o)G%=V,G<0&&(G+=V),N=0;else if(G<0){d!=gt.BEFORE&&(d=gt.BEFORE,t.computeWorldVertices(a,2,4,i,0,2)),this.addBeforePosition(G,i,0,l,H);continue}else if(G>V){d!=gt.AFTER&&(d=gt.AFTER,t.computeWorldVertices(a,n-6,4,i,0,2)),this.addAfterPosition(G-V,i,0,l,H);continue}for(;;N++){let K=z[N];if(!(G>K)){if(N==0)G/=K;else{let ht=z[N-1];G=(G-ht)/(K-ht)}break}}N!=d&&(d=N,o&&N==h?(t.computeWorldVertices(a,n-4,4,i,0,2),t.computeWorldVertices(a,0,4,i,4,2)):t.computeWorldVertices(a,N*6+2,8,i,0,2)),this.addCurvePosition(G,i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],l,H,e||j>0&&D==0)}return l}o?(n+=2,i=B.setArraySize(this.world,n),t.computeWorldVertices(a,2,n-4,i,0,2),t.computeWorldVertices(a,0,2,i,n-4,2),i[n-2]=i[0],i[n-1]=i[1]):(h--,n-=4,i=B.setArraySize(this.world,n),t.computeWorldVertices(a,2,n,i,0,2));let f=B.setArraySize(this.curves,h),u=0,m=i[0],x=i[1],p=0,y=0,g=0,w=0,b=0,v=0,A=0,S=0,I=0,Y=0,F=0,P=0,R=0,M=0;for(let z=0,V=2;z<h;z++,V+=6)p=i[V],y=i[V+1],g=i[V+2],w=i[V+3],b=i[V+4],v=i[V+5],A=(m-p*2+g)*.1875,S=(x-y*2+w)*.1875,I=((p-g)*3-m+b)*.09375,Y=((y-w)*3-x+v)*.09375,F=A*2+I,P=S*2+Y,R=(p-m)*.75+A+I*.16666667,M=(y-x)*.75+S+Y*.16666667,u+=Math.sqrt(R*R+M*M),R+=F,M+=P,F+=I,P+=Y,u+=Math.sqrt(R*R+M*M),R+=F,M+=P,u+=Math.sqrt(R*R+M*M),R+=F+I,M+=P+Y,u+=Math.sqrt(R*R+M*M),f[z]=u,m=b,x=v;this.data.positionMode==dt.Percent&&(r*=u);let C;switch(this.data.spacingMode){case Q.Percent:C=u;break;case Q.Proportional:C=u/s;break;default:C=1}let T=this.segments,O=0;for(let z=0,V=0,q=0,j=0;z<s;z++,V+=3){let H=c[z]*C;r+=H;let N=r;if(o)N%=u,N<0&&(N+=u),q=0;else if(N<0){this.addBeforePosition(N,i,0,l,V);continue}else if(N>u){this.addAfterPosition(N-u,i,n-4,l,V);continue}for(;;q++){let D=f[q];if(!(N>D)){if(q==0)N/=D;else{let G=f[q-1];N=(N-G)/(D-G)}break}}if(q!=d){d=q;let D=q*6;for(m=i[D],x=i[D+1],p=i[D+2],y=i[D+3],g=i[D+4],w=i[D+5],b=i[D+6],v=i[D+7],A=(m-p*2+g)*.03,S=(x-y*2+w)*.03,I=((p-g)*3-m+b)*.006,Y=((y-w)*3-x+v)*.006,F=A*2+I,P=S*2+Y,R=(p-m)*.3+A+I*.16666667,M=(y-x)*.3+S+Y*.16666667,O=Math.sqrt(R*R+M*M),T[0]=O,D=1;D<8;D++)R+=F,M+=P,F+=I,P+=Y,O+=Math.sqrt(R*R+M*M),T[D]=O;R+=F,M+=P,O+=Math.sqrt(R*R+M*M),T[8]=O,R+=F+I,M+=P+Y,O+=Math.sqrt(R*R+M*M),T[9]=O,j=0}for(N*=O;;j++){let D=T[j];if(!(N>D)){if(j==0)N/=D;else{let G=T[j-1];N=j+(N-G)/(D-G)}break}}this.addCurvePosition(N*.1,m,x,p,y,g,w,b,v,l,V,e||z>0&&H==0)}return l}addBeforePosition(t,s,e,a,r){let c=s[e],l=s[e+1],i=s[e+2]-c,o=s[e+3]-l,n=Math.atan2(o,i);a[r]=c+t*Math.cos(n),a[r+1]=l+t*Math.sin(n),a[r+2]=n}addAfterPosition(t,s,e,a,r){let c=s[e+2],l=s[e+3],i=c-s[e],o=l-s[e+1],n=Math.atan2(o,i);a[r]=c+t*Math.cos(n),a[r+1]=l+t*Math.sin(n),a[r+2]=n}addCurvePosition(t,s,e,a,r,c,l,i,o,n,h,d){if(t==0||isNaN(t)){n[h]=s,n[h+1]=e,n[h+2]=Math.atan2(r-e,a-s);return}let f=t*t,u=f*t,m=1-t,x=m*m,p=x*m,y=m*t,g=y*3,w=m*g,b=g*t,v=s*p+a*w+c*b+i*u,A=e*p+r*w+l*b+o*u;n[h]=v,n[h+1]=A,d&&(t<.001?n[h+2]=Math.atan2(r-e,a-s):n[h+2]=Math.atan2(A-(e*x+r*y*2+l*f),v-(s*x+a*y*2+c*f)))}},Tt=gt;Tt.NONE=-1,Tt.BEFORE=-2,Tt.AFTER=-3,Tt.epsilon=1e-5;var ns=class{constructor(t,s){if(this.data=null,this.bone=null,this.color=null,this.darkColor=null,this.attachment=null,this.attachmentTime=0,this.attachmentState=0,this.deform=new Array,!t)throw new Error("data cannot be null.");if(!s)throw new Error("bone cannot be null.");this.data=t,this.bone=s,this.color=new L,this.darkColor=t.darkColor?new L:null,this.setToSetupPose()}getSkeleton(){return this.bone.skeleton}getAttachment(){return this.attachment}setAttachment(t){this.attachment!=t&&((!(t instanceof ct)||!(this.attachment instanceof ct)||t.deformAttachment!=this.attachment.deformAttachment)&&(this.deform.length=0),this.attachment=t,this.attachmentTime=this.bone.skeleton.time)}setAttachmentTime(t){this.attachmentTime=this.bone.skeleton.time-t}getAttachmentTime(){return this.bone.skeleton.time-this.attachmentTime}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}},ls=class{constructor(t,s){if(this.data=null,this.bones=null,this.target=null,this.mixRotate=0,this.mixX=0,this.mixY=0,this.mixScaleX=0,this.mixScaleY=0,this.mixShearY=0,this.temp=new Vt,this.active=!1,!t)throw new Error("data cannot be null.");if(!s)throw new Error("skeleton cannot be null.");this.data=t,this.mixRotate=t.mixRotate,this.mixX=t.mixX,this.mixY=t.mixY,this.mixScaleX=t.mixScaleX,this.mixScaleY=t.mixScaleY,this.mixShearY=t.mixShearY,this.bones=new Array;for(let e=0;e<t.bones.length;e++)this.bones.push(s.findBone(t.bones[e].name));this.target=s.findBone(t.target.name)}isActive(){return this.active}update(){this.mixRotate==0&&this.mixX==0&&this.mixY==0&&this.mixScaleX==0&&this.mixScaleX==0&&this.mixShearY==0||(this.data.local?this.data.relative?this.applyRelativeLocal():this.applyAbsoluteLocal():this.data.relative?this.applyRelativeWorld():this.applyAbsoluteWorld())}applyAbsoluteWorld(){let t=this.mixRotate,s=this.mixX,e=this.mixY,a=this.mixScaleX,r=this.mixScaleY,c=this.mixShearY,l=s!=0||e!=0,i=this.target,o=i.a,n=i.b,h=i.c,d=i.d,f=o*d-n*h>0?X.degRad:-X.degRad,u=this.data.offsetRotation*f,m=this.data.offsetShearY*f,x=this.bones;for(let p=0,y=x.length;p<y;p++){let g=x[p];if(t!=0){let w=g.a,b=g.b,v=g.c,A=g.d,S=Math.atan2(h,o)-Math.atan2(v,w)+u;S>X.PI?S-=X.PI2:S<-X.PI&&(S+=X.PI2),S*=t;let I=Math.cos(S),Y=Math.sin(S);g.a=I*w-Y*v,g.b=I*b-Y*A,g.c=Y*w+I*v,g.d=Y*b+I*A}if(l){let w=this.temp;i.localToWorld(w.set(this.data.offsetX,this.data.offsetY)),g.worldX+=(w.x-g.worldX)*s,g.worldY+=(w.y-g.worldY)*e}if(a!=0){let w=Math.sqrt(g.a*g.a+g.c*g.c);w!=0&&(w=(w+(Math.sqrt(o*o+h*h)-w+this.data.offsetScaleX)*a)/w),g.a*=w,g.c*=w}if(r!=0){let w=Math.sqrt(g.b*g.b+g.d*g.d);w!=0&&(w=(w+(Math.sqrt(n*n+d*d)-w+this.data.offsetScaleY)*r)/w),g.b*=w,g.d*=w}if(c>0){let w=g.b,b=g.d,v=Math.atan2(b,w),A=Math.atan2(d,n)-Math.atan2(h,o)-(v-Math.atan2(g.c,g.a));A>X.PI?A-=X.PI2:A<-X.PI&&(A+=X.PI2),A=v+(A+m)*c;let S=Math.sqrt(w*w+b*b);g.b=Math.cos(A)*S,g.d=Math.sin(A)*S}g.updateAppliedTransform()}}applyRelativeWorld(){let t=this.mixRotate,s=this.mixX,e=this.mixY,a=this.mixScaleX,r=this.mixScaleY,c=this.mixShearY,l=s!=0||e!=0,i=this.target,o=i.a,n=i.b,h=i.c,d=i.d,f=o*d-n*h>0?X.degRad:-X.degRad,u=this.data.offsetRotation*f,m=this.data.offsetShearY*f,x=this.bones;for(let p=0,y=x.length;p<y;p++){let g=x[p];if(t!=0){let w=g.a,b=g.b,v=g.c,A=g.d,S=Math.atan2(h,o)+u;S>X.PI?S-=X.PI2:S<-X.PI&&(S+=X.PI2),S*=t;let I=Math.cos(S),Y=Math.sin(S);g.a=I*w-Y*v,g.b=I*b-Y*A,g.c=Y*w+I*v,g.d=Y*b+I*A}if(l){let w=this.temp;i.localToWorld(w.set(this.data.offsetX,this.data.offsetY)),g.worldX+=w.x*s,g.worldY+=w.y*e}if(a!=0){let w=(Math.sqrt(o*o+h*h)-1+this.data.offsetScaleX)*a+1;g.a*=w,g.c*=w}if(r!=0){let w=(Math.sqrt(n*n+d*d)-1+this.data.offsetScaleY)*r+1;g.b*=w,g.d*=w}if(c>0){let w=Math.atan2(d,n)-Math.atan2(h,o);w>X.PI?w-=X.PI2:w<-X.PI&&(w+=X.PI2);let b=g.b,v=g.d;w=Math.atan2(v,b)+(w-X.PI/2+m)*c;let A=Math.sqrt(b*b+v*v);g.b=Math.cos(w)*A,g.d=Math.sin(w)*A}g.updateAppliedTransform()}}applyAbsoluteLocal(){let t=this.mixRotate,s=this.mixX,e=this.mixY,a=this.mixScaleX,r=this.mixScaleY,c=this.mixShearY,l=this.target,i=this.bones;for(let o=0,n=i.length;o<n;o++){let h=i[o],d=h.arotation;if(t!=0){let y=l.arotation-d+this.data.offsetRotation;y-=(16384-(16384.499999999996-y/360|0))*360,d+=y*t}let f=h.ax,u=h.ay;f+=(l.ax-f+this.data.offsetX)*s,u+=(l.ay-u+this.data.offsetY)*e;let m=h.ascaleX,x=h.ascaleY;a!=0&&m!=0&&(m=(m+(l.ascaleX-m+this.data.offsetScaleX)*a)/m),r!=0&&x!=0&&(x=(x+(l.ascaleY-x+this.data.offsetScaleY)*r)/x);let p=h.ashearY;if(c!=0){let y=l.ashearY-p+this.data.offsetShearY;y-=(16384-(16384.499999999996-y/360|0))*360,p+=y*c}h.updateWorldTransformWith(f,u,d,m,x,h.ashearX,p)}}applyRelativeLocal(){let t=this.mixRotate,s=this.mixX,e=this.mixY,a=this.mixScaleX,r=this.mixScaleY,c=this.mixShearY,l=this.target,i=this.bones;for(let o=0,n=i.length;o<n;o++){let h=i[o],d=h.arotation+(l.arotation+this.data.offsetRotation)*t,f=h.ax+(l.ax+this.data.offsetX)*s,u=h.ay+(l.ay+this.data.offsetY)*e,m=h.ascaleX*((l.ascaleX-1+this.data.offsetScaleX)*a+1),x=h.ascaleY*((l.ascaleY-1+this.data.offsetScaleY)*r+1),p=h.ashearY+(l.ashearY+this.data.offsetShearY)*c;h.updateWorldTransformWith(f,u,d,m,x,h.ashearX,p)}}},Ts=class{constructor(t){if(this.data=null,this.bones=null,this.slots=null,this.drawOrder=null,this.ikConstraints=null,this.transformConstraints=null,this.pathConstraints=null,this._updateCache=new Array,this.skin=null,this.color=null,this.time=0,this.scaleX=1,this.scaleY=1,this.x=0,this.y=0,!t)throw new Error("data cannot be null.");this.data=t,this.bones=new Array;for(let s=0;s<t.bones.length;s++){let e=t.bones[s],a;if(!e.parent)a=new Ye(e,this,null);else{let r=this.bones[e.parent.index];a=new Ye(e,this,r),r.children.push(a)}this.bones.push(a)}this.slots=new Array,this.drawOrder=new Array;for(let s=0;s<t.slots.length;s++){let e=t.slots[s],a=this.bones[e.boneData.index],r=new ns(e,a);this.slots.push(r),this.drawOrder.push(r)}this.ikConstraints=new Array;for(let s=0;s<t.ikConstraints.length;s++){let e=t.ikConstraints[s];this.ikConstraints.push(new as(e,this))}this.transformConstraints=new Array;for(let s=0;s<t.transformConstraints.length;s++){let e=t.transformConstraints[s];this.transformConstraints.push(new ls(e,this))}this.pathConstraints=new Array;for(let s=0;s<t.pathConstraints.length;s++){let e=t.pathConstraints[s];this.pathConstraints.push(new Tt(e,this))}this.color=new L(1,1,1,1),this.updateCache()}updateCache(){let t=this._updateCache;t.length=0;let s=this.bones;for(let n=0,h=s.length;n<h;n++){let d=s[n];d.sorted=d.data.skinRequired,d.active=!d.sorted}if(this.skin){let n=this.skin.bones;for(let h=0,d=this.skin.bones.length;h<d;h++){let f=this.bones[n[h].index];do f.sorted=!1,f.active=!0,f=f.parent;while(f)}}let e=this.ikConstraints,a=this.transformConstraints,r=this.pathConstraints,c=e.length,l=a.length,i=r.length,o=c+l+i;t:for(let n=0;n<o;n++){for(let h=0;h<c;h++){let d=e[h];if(d.data.order==n){this.sortIkConstraint(d);continue t}}for(let h=0;h<l;h++){let d=a[h];if(d.data.order==n){this.sortTransformConstraint(d);continue t}}for(let h=0;h<i;h++){let d=r[h];if(d.data.order==n){this.sortPathConstraint(d);continue t}}}for(let n=0,h=s.length;n<h;n++)this.sortBone(s[n])}sortIkConstraint(t){if(t.active=t.target.isActive()&&(!t.data.skinRequired||this.skin&&B.contains(this.skin.constraints,t.data,!0)),!t.active)return;let s=t.target;this.sortBone(s);let e=t.bones,a=e[0];if(this.sortBone(a),e.length==1)this._updateCache.push(t),this.sortReset(a.children);else{let r=e[e.length-1];this.sortBone(r),this._updateCache.push(t),this.sortReset(a.children),r.sorted=!0}}sortPathConstraint(t){if(t.active=t.target.bone.isActive()&&(!t.data.skinRequired||this.skin&&B.contains(this.skin.constraints,t.data,!0)),!t.active)return;let s=t.target,e=s.data.index,a=s.bone;this.skin&&this.sortPathConstraintAttachment(this.skin,e,a),this.data.defaultSkin&&this.data.defaultSkin!=this.skin&&this.sortPathConstraintAttachment(this.data.defaultSkin,e,a);for(let i=0,o=this.data.skins.length;i<o;i++)this.sortPathConstraintAttachment(this.data.skins[i],e,a);let r=s.getAttachment();r instanceof It&&this.sortPathConstraintAttachmentWith(r,a);let c=t.bones,l=c.length;for(let i=0;i<l;i++)this.sortBone(c[i]);this._updateCache.push(t);for(let i=0;i<l;i++)this.sortReset(c[i].children);for(let i=0;i<l;i++)c[i].sorted=!0}sortTransformConstraint(t){if(t.active=t.target.isActive()&&(!t.data.skinRequired||this.skin&&B.contains(this.skin.constraints,t.data,!0)),!t.active)return;this.sortBone(t.target);let s=t.bones,e=s.length;if(t.data.local)for(let a=0;a<e;a++){let r=s[a];this.sortBone(r.parent),this.sortBone(r)}else for(let a=0;a<e;a++)this.sortBone(s[a]);this._updateCache.push(t);for(let a=0;a<e;a++)this.sortReset(s[a].children);for(let a=0;a<e;a++)s[a].sorted=!0}sortPathConstraintAttachment(t,s,e){let a=t.attachments[s];if(!!a)for(let r in a)this.sortPathConstraintAttachmentWith(a[r],e)}sortPathConstraintAttachmentWith(t,s){if(!(t instanceof It))return;let e=t.bones;if(!e)this.sortBone(s);else{let a=this.bones;for(let r=0,c=e.length;r<c;){let l=e[r++];for(l+=r;r<l;)this.sortBone(a[e[r++]])}}}sortBone(t){if(t.sorted)return;let s=t.parent;s&&this.sortBone(s),t.sorted=!0,this._updateCache.push(t)}sortReset(t){for(let s=0,e=t.length;s<e;s++){let a=t[s];!a.active||(a.sorted&&this.sortReset(a.children),a.sorted=!1)}}updateWorldTransform(){let t=this.bones;for(let e=0,a=t.length;e<a;e++){let r=t[e];r.ax=r.x,r.ay=r.y,r.arotation=r.rotation,r.ascaleX=r.scaleX,r.ascaleY=r.scaleY,r.ashearX=r.shearX,r.ashearY=r.shearY}let s=this._updateCache;for(let e=0,a=s.length;e<a;e++)s[e].update()}updateWorldTransformWith(t){let s=this.getRootBone(),e=t.a,a=t.b,r=t.c,c=t.d;s.worldX=e*this.x+a*this.y+t.worldX,s.worldY=r*this.x+c*this.y+t.worldY;let l=s.rotation+90+s.shearY,i=X.cosDeg(s.rotation+s.shearX)*s.scaleX,o=X.cosDeg(l)*s.scaleY,n=X.sinDeg(s.rotation+s.shearX)*s.scaleX,h=X.sinDeg(l)*s.scaleY;s.a=(e*i+a*n)*this.scaleX,s.b=(e*o+a*h)*this.scaleX,s.c=(r*i+c*n)*this.scaleY,s.d=(r*o+c*h)*this.scaleY;let d=this._updateCache;for(let f=0,u=d.length;f<u;f++){let m=d[f];m!=s&&m.update()}}setToSetupPose(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()}setBonesToSetupPose(){let t=this.bones;for(let r=0,c=t.length;r<c;r++)t[r].setToSetupPose();let s=this.ikConstraints;for(let r=0,c=s.length;r<c;r++){let l=s[r];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}let e=this.transformConstraints;for(let r=0,c=e.length;r<c;r++){let l=e[r],i=l.data;l.mixRotate=i.mixRotate,l.mixX=i.mixX,l.mixY=i.mixY,l.mixScaleX=i.mixScaleX,l.mixScaleY=i.mixScaleY,l.mixShearY=i.mixShearY}let a=this.pathConstraints;for(let r=0,c=a.length;r<c;r++){let l=a[r],i=l.data;l.position=i.position,l.spacing=i.spacing,l.mixRotate=i.mixRotate,l.mixX=i.mixX,l.mixY=i.mixY}}setSlotsToSetupPose(){let t=this.slots;B.arrayCopy(t,0,this.drawOrder,0,t.length);for(let s=0,e=t.length;s<e;s++)t[s].setToSetupPose()}getRootBone(){return this.bones.length==0?null:this.bones[0]}findBone(t){if(!t)throw new Error("boneName cannot be null.");let s=this.bones;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.data.name==t)return r}return null}findSlot(t){if(!t)throw new Error("slotName cannot be null.");let s=this.slots;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.data.name==t)return r}return null}setSkinByName(t){let s=this.data.findSkin(t);if(!s)throw new Error("Skin not found: "+t);this.setSkin(s)}setSkin(t){if(t!=this.skin){if(t)if(this.skin)t.attachAll(this,this.skin);else{let s=this.slots;for(let e=0,a=s.length;e<a;e++){let r=s[e],c=r.data.attachmentName;if(c){let l=t.getAttachment(e,c);l&&r.setAttachment(l)}}}this.skin=t,this.updateCache()}}getAttachmentByName(t,s){return this.getAttachment(this.data.findSlot(t).index,s)}getAttachment(t,s){if(!s)throw new Error("attachmentName cannot be null.");if(this.skin){let e=this.skin.getAttachment(t,s);if(e)return e}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,s):null}setAttachment(t,s){if(!t)throw new Error("slotName cannot be null.");let e=this.slots;for(let a=0,r=e.length;a<r;a++){let c=e[a];if(c.data.name==t){let l=null;if(s&&(l=this.getAttachment(a,s),!l))throw new Error("Attachment not found: "+s+", for slot: "+t);c.setAttachment(l);return}}throw new Error("Slot not found: "+t)}findIkConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.ikConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.data.name==t)return r}return null}findTransformConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.transformConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.data.name==t)return r}return null}findPathConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.pathConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.data.name==t)return r}return null}getBoundsRect(){let t=new Vt,s=new Vt;return this.getBounds(t,s),{x:t.x,y:t.y,width:s.x,height:s.y}}getBounds(t,s,e=new Array(2)){if(!t)throw new Error("offset cannot be null.");if(!s)throw new Error("size cannot be null.");let a=this.drawOrder,r=Number.POSITIVE_INFINITY,c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(let o=0,n=a.length;o<n;o++){let h=a[o];if(!h.bone.active)continue;let d=0,f=null,u=h.getAttachment();if(u instanceof E)d=8,f=B.setArraySize(e,d,0),u.computeWorldVertices(h.bone,f,0,2);else if(u instanceof kt){let m=u;d=m.worldVerticesLength,f=B.setArraySize(e,d,0),m.computeWorldVertices(h,0,d,f,0,2)}if(f)for(let m=0,x=f.length;m<x;m+=2){let p=f[m],y=f[m+1];r=Math.min(r,p),c=Math.min(c,y),l=Math.max(l,p),i=Math.max(i,y)}}t.set(r,c),s.set(l-r,i-c)}update(t){this.time+=t}},Fe=class{constructor(){this.name=null,this.bones=new Array,this.slots=new Array,this.skins=new Array,this.defaultSkin=null,this.events=new Array,this.animations=new Array,this.ikConstraints=new Array,this.transformConstraints=new Array,this.pathConstraints=new Array,this.x=0,this.y=0,this.width=0,this.height=0,this.version=null,this.hash=null,this.fps=0,this.imagesPath=null,this.audioPath=null}findBone(t){if(!t)throw new Error("boneName cannot be null.");let s=this.bones;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findSlot(t){if(!t)throw new Error("slotName cannot be null.");let s=this.slots;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findSkin(t){if(!t)throw new Error("skinName cannot be null.");let s=this.skins;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findEvent(t){if(!t)throw new Error("eventDataName cannot be null.");let s=this.events;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findAnimation(t){if(!t)throw new Error("animationName cannot be null.");let s=this.animations;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findIkConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.ikConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findTransformConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.transformConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findPathConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.pathConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}},Re=class{constructor(t=0,s=null,e=null){this.slotIndex=t,this.name=s,this.attachment=e}},zt=class{constructor(t){if(this.name=null,this.attachments=new Array,this.bones=Array(),this.constraints=new Array,!t)throw new Error("name cannot be null.");this.name=t}setAttachment(t,s,e){if(!e)throw new Error("attachment cannot be null.");let a=this.attachments;t>=a.length&&(a.length=t+1),a[t]||(a[t]={}),a[t][s]=e}addSkin(t){for(let a=0;a<t.bones.length;a++){let r=t.bones[a],c=!1;for(let l=0;l<this.bones.length;l++)if(this.bones[l]==r){c=!0;break}c||this.bones.push(r)}for(let a=0;a<t.constraints.length;a++){let r=t.constraints[a],c=!1;for(let l=0;l<this.constraints.length;l++)if(this.constraints[l]==r){c=!0;break}c||this.constraints.push(r)}let s=t.getAttachments();for(let a=0;a<s.length;a++){var e=s[a];this.setAttachment(e.slotIndex,e.name,e.attachment)}}copySkin(t){for(let a=0;a<t.bones.length;a++){let r=t.bones[a],c=!1;for(let l=0;l<this.bones.length;l++)if(this.bones[l]==r){c=!0;break}c||this.bones.push(r)}for(let a=0;a<t.constraints.length;a++){let r=t.constraints[a],c=!1;for(let l=0;l<this.constraints.length;l++)if(this.constraints[l]==r){c=!0;break}c||this.constraints.push(r)}let s=t.getAttachments();for(let a=0;a<s.length;a++){var e=s[a];!e.attachment||(e.attachment instanceof kt?(e.attachment=e.attachment.newLinkedMesh(),this.setAttachment(e.slotIndex,e.name,e.attachment)):(e.attachment=e.attachment.copy(),this.setAttachment(e.slotIndex,e.name,e.attachment)))}}getAttachment(t,s){let e=this.attachments[t];return e?e[s]:null}removeAttachment(t,s){let e=this.attachments[t];e&&(e[s]=null)}getAttachments(){let t=new Array;for(var s=0;s<this.attachments.length;s++){let e=this.attachments[s];if(e)for(let a in e){let r=e[a];r&&t.push(new Re(s,a,r))}}return t}getAttachmentsForSlot(t,s){let e=this.attachments[t];if(e)for(let a in e){let r=e[a];r&&s.push(new Re(t,a,r))}}clear(){this.attachments.length=0,this.bones.length=0,this.constraints.length=0}attachAll(t,s){let e=0;for(let a=0;a<t.slots.length;a++){let r=t.slots[a],c=r.getAttachment();if(c&&e<s.attachments.length){let l=s.attachments[e];for(let i in l){let o=l[i];if(c==o){let n=this.getAttachment(e,i);n&&r.setAttachment(n);break}}}e++}}},Be=class{constructor(t,s,e){if(this.index=0,this.name=null,this.boneData=null,this.color=new L(1,1,1,1),this.darkColor=null,this.attachmentName=null,this.blendMode=null,t<0)throw new Error("index must be >= 0.");if(!s)throw new Error("name cannot be null.");if(!e)throw new Error("boneData cannot be null.");this.index=t,this.name=s,this.boneData=e}},qt;(function(t){t[t.Normal=0]="Normal",t[t.Additive=1]="Additive",t[t.Multiply=2]="Multiply",t[t.Screen=3]="Screen"})(qt||(qt={}));var Pe=class extends Wt{constructor(t){super(t,0,!1);this.bones=new Array,this.target=null,this.mixRotate=0,this.mixX=0,this.mixY=0,this.mixScaleX=0,this.mixScaleY=0,this.mixShearY=0,this.offsetRotation=0,this.offsetX=0,this.offsetY=0,this.offsetScaleX=0,this.offsetScaleY=0,this.offsetShearY=0,this.relative=!1,this.local=!1}},Xs=class{constructor(t){this.scale=1,this.attachmentLoader=null,this.linkedMeshes=new Array,this.attachmentLoader=t}readSkeletonData(t){let s=this.scale,e=new Fe;e.name="";let a=new os(t),r=a.readInt32(),c=a.readInt32();e.hash=c==0&&r==0?null:c.toString(16)+r.toString(16),e.version=a.readString(),e.x=a.readFloat(),e.y=a.readFloat(),e.width=a.readFloat(),e.height=a.readFloat();let l=a.readBoolean();l&&(e.fps=a.readFloat(),e.imagesPath=a.readString(),e.audioPath=a.readString());let i=0;i=a.readInt(!0);for(let n=0;n<i;n++)a.strings.push(a.readString());i=a.readInt(!0);for(let n=0;n<i;n++){let h=a.readString(),d=n==0?null:e.bones[a.readInt(!0)],f=new Ce(n,h,d);f.rotation=a.readFloat(),f.x=a.readFloat()*s,f.y=a.readFloat()*s,f.scaleX=a.readFloat(),f.scaleY=a.readFloat(),f.shearX=a.readFloat(),f.shearY=a.readFloat(),f.length=a.readFloat()*s,f.transformMode=a.readInt(!0),f.skinRequired=a.readBoolean(),l&&L.rgba8888ToColor(f.color,a.readInt32()),e.bones.push(f)}i=a.readInt(!0);for(let n=0;n<i;n++){let h=a.readString(),d=e.bones[a.readInt(!0)],f=new Be(n,h,d);L.rgba8888ToColor(f.color,a.readInt32());let u=a.readInt32();u!=-1&&L.rgb888ToColor(f.darkColor=new L,u),f.attachmentName=a.readStringRef(),f.blendMode=a.readInt(!0),e.slots.push(f)}i=a.readInt(!0);for(let n=0,h;n<i;n++){let d=new Xe(a.readString());d.order=a.readInt(!0),d.skinRequired=a.readBoolean(),h=a.readInt(!0);for(let f=0;f<h;f++)d.bones.push(e.bones[a.readInt(!0)]);d.target=e.bones[a.readInt(!0)],d.mix=a.readFloat(),d.softness=a.readFloat()*s,d.bendDirection=a.readByte(),d.compress=a.readBoolean(),d.stretch=a.readBoolean(),d.uniform=a.readBoolean(),e.ikConstraints.push(d)}i=a.readInt(!0);for(let n=0,h;n<i;n++){let d=new Pe(a.readString());d.order=a.readInt(!0),d.skinRequired=a.readBoolean(),h=a.readInt(!0);for(let f=0;f<h;f++)d.bones.push(e.bones[a.readInt(!0)]);d.target=e.bones[a.readInt(!0)],d.local=a.readBoolean(),d.relative=a.readBoolean(),d.offsetRotation=a.readFloat(),d.offsetX=a.readFloat()*s,d.offsetY=a.readFloat()*s,d.offsetScaleX=a.readFloat(),d.offsetScaleY=a.readFloat(),d.offsetShearY=a.readFloat(),d.mixRotate=a.readFloat(),d.mixX=a.readFloat(),d.mixY=a.readFloat(),d.mixScaleX=a.readFloat(),d.mixScaleY=a.readFloat(),d.mixShearY=a.readFloat(),e.transformConstraints.push(d)}i=a.readInt(!0);for(let n=0,h;n<i;n++){let d=new Me(a.readString());d.order=a.readInt(!0),d.skinRequired=a.readBoolean(),h=a.readInt(!0);for(let f=0;f<h;f++)d.bones.push(e.bones[a.readInt(!0)]);d.target=e.slots[a.readInt(!0)],d.positionMode=a.readInt(!0),d.spacingMode=a.readInt(!0),d.rotateMode=a.readInt(!0),d.offsetRotation=a.readFloat(),d.position=a.readFloat(),d.positionMode==dt.Fixed&&(d.position*=s),d.spacing=a.readFloat(),(d.spacingMode==Q.Length||d.spacingMode==Q.Fixed)&&(d.spacing*=s),d.mixRotate=a.readFloat(),d.mixX=a.readFloat(),d.mixY=a.readFloat(),e.pathConstraints.push(d)}let o=this.readSkin(a,e,!0,l);o&&(e.defaultSkin=o,e.skins.push(o));{let n=e.skins.length;for(B.setArraySize(e.skins,i=n+a.readInt(!0));n<i;n++)e.skins[n]=this.readSkin(a,e,!1,l)}i=this.linkedMeshes.length;for(let n=0;n<i;n++){let h=this.linkedMeshes[n],f=(h.skin?e.findSkin(h.skin):e.defaultSkin).getAttachment(h.slotIndex,h.parent);h.mesh.deformAttachment=h.inheritDeform?f:h.mesh,h.mesh.setParentMesh(f),h.mesh.updateUVs()}this.linkedMeshes.length=0,i=a.readInt(!0);for(let n=0;n<i;n++){let h=new Te(a.readStringRef());h.intValue=a.readInt(!1),h.floatValue=a.readFloat(),h.stringValue=a.readString(),h.audioPath=a.readString(),h.audioPath&&(h.volume=a.readFloat(),h.balance=a.readFloat()),e.events.push(h)}i=a.readInt(!0);for(let n=0;n<i;n++)e.animations.push(this.readAnimation(a,a.readString(),e));return e}readSkin(t,s,e,a){let r=null,c=0;if(e){if(c=t.readInt(!0),c==0)return null;r=new zt("default")}else{r=new zt(t.readStringRef()),r.bones.length=t.readInt(!0);for(let l=0,i=r.bones.length;l<i;l++)r.bones[l]=s.bones[t.readInt(!0)];for(let l=0,i=t.readInt(!0);l<i;l++)r.constraints.push(s.ikConstraints[t.readInt(!0)]);for(let l=0,i=t.readInt(!0);l<i;l++)r.constraints.push(s.transformConstraints[t.readInt(!0)]);for(let l=0,i=t.readInt(!0);l<i;l++)r.constraints.push(s.pathConstraints[t.readInt(!0)]);c=t.readInt(!0)}for(let l=0;l<c;l++){let i=t.readInt(!0);for(let o=0,n=t.readInt(!0);o<n;o++){let h=t.readStringRef(),d=this.readAttachment(t,s,r,i,h,a);d&&r.setAttachment(i,h,d)}}return r}readAttachment(t,s,e,a,r,c){let l=this.scale,i=t.readStringRef();switch(i||(i=r),t.readByte()){case xt.Region:{let o=t.readStringRef(),n=t.readFloat(),h=t.readFloat(),d=t.readFloat(),f=t.readFloat(),u=t.readFloat(),m=t.readFloat(),x=t.readFloat(),p=t.readInt32();o||(o=i);let y=this.attachmentLoader.newRegionAttachment(e,i,o);return y?(y.path=o,y.x=h*l,y.y=d*l,y.scaleX=f,y.scaleY=u,y.rotation=n,y.width=m*l,y.height=x*l,L.rgba8888ToColor(y.color,p),y.updateOffset(),y):null}case xt.BoundingBox:{let o=t.readInt(!0),n=this.readVertices(t,o),h=c?t.readInt32():0,d=this.attachmentLoader.newBoundingBoxAttachment(e,i);return d?(d.worldVerticesLength=o<<1,d.vertices=n.vertices,d.bones=n.bones,c&&L.rgba8888ToColor(d.color,h),d):null}case xt.Mesh:{let o=t.readStringRef(),n=t.readInt32(),h=t.readInt(!0),d=this.readFloatArray(t,h<<1,1),f=this.readShortArray(t),u=this.readVertices(t,h),m=t.readInt(!0),x=null,p=0,y=0;c&&(x=this.readShortArray(t),p=t.readFloat(),y=t.readFloat()),o||(o=i);let g=this.attachmentLoader.newMeshAttachment(e,i,o);return g?(g.path=o,L.rgba8888ToColor(g.color,n),g.bones=u.bones,g.vertices=u.vertices,g.worldVerticesLength=h<<1,g.triangles=f,g.regionUVs=d,g.updateUVs(),g.hullLength=m<<1,c&&(g.edges=x,g.width=p*l,g.height=y*l),g):null}case xt.LinkedMesh:{let o=t.readStringRef(),n=t.readInt32(),h=t.readStringRef(),d=t.readStringRef(),f=t.readBoolean(),u=0,m=0;c&&(u=t.readFloat(),m=t.readFloat()),o||(o=i);let x=this.attachmentLoader.newMeshAttachment(e,i,o);return x?(x.path=o,L.rgba8888ToColor(x.color,n),c&&(x.width=u*l,x.height=m*l),this.linkedMeshes.push(new Ms(x,h,a,d,f)),x):null}case xt.Path:{let o=t.readBoolean(),n=t.readBoolean(),h=t.readInt(!0),d=this.readVertices(t,h),f=B.newArray(h/3,0);for(let x=0,p=f.length;x<p;x++)f[x]=t.readFloat()*l;let u=c?t.readInt32():0,m=this.attachmentLoader.newPathAttachment(e,i);return m?(m.closed=o,m.constantSpeed=n,m.worldVerticesLength=h<<1,m.vertices=d.vertices,m.bones=d.bones,m.lengths=f,c&&L.rgba8888ToColor(m.color,u),m):null}case xt.Point:{let o=t.readFloat(),n=t.readFloat(),h=t.readFloat(),d=c?t.readInt32():0,f=this.attachmentLoader.newPointAttachment(e,i);return f?(f.x=n*l,f.y=h*l,f.rotation=o,c&&L.rgba8888ToColor(f.color,d),f):null}case xt.Clipping:{let o=t.readInt(!0),n=t.readInt(!0),h=this.readVertices(t,n),d=c?t.readInt32():0,f=this.attachmentLoader.newClippingAttachment(e,i);return f?(f.endSlot=s.slots[o],f.worldVerticesLength=n<<1,f.vertices=h.vertices,f.bones=h.bones,c&&L.rgba8888ToColor(f.color,d),f):null}}return null}readVertices(t,s){let e=this.scale,a=s<<1,r=new Fs;if(!t.readBoolean())return r.vertices=this.readFloatArray(t,a,e),r;let c=new Array,l=new Array;for(let i=0;i<s;i++){let o=t.readInt(!0);l.push(o);for(let n=0;n<o;n++)l.push(t.readInt(!0)),c.push(t.readFloat()*e),c.push(t.readFloat()*e),c.push(t.readFloat())}return r.vertices=B.toFloatArray(c),r.bones=l,r}readFloatArray(t,s,e){let a=new Array(s);if(e==1)for(let r=0;r<s;r++)a[r]=t.readFloat();else for(let r=0;r<s;r++)a[r]=t.readFloat()*e;return a}readShortArray(t){let s=t.readInt(!0),e=new Array(s);for(let a=0;a<s;a++)e[a]=t.readShort();return e}readAnimation(t,s,e){t.readInt(!0);let a=new Array,r=this.scale,c=new L,l=new L;for(let h=0,d=t.readInt(!0);h<d;h++){let f=t.readInt(!0);for(let u=0,m=t.readInt(!0);u<m;u++){let x=t.readByte(),p=t.readInt(!0),y=p-1;switch(x){case Ws:{let g=new yt(p,f);for(let w=0;w<p;w++)g.setFrame(w,t.readFloat(),t.readStringRef());a.push(g);break}case zs:{let g=t.readInt(!0),w=new ae(p,g,f),b=t.readFloat(),v=t.readUnsignedByte()/255,A=t.readUnsignedByte()/255,S=t.readUnsignedByte()/255,I=t.readUnsignedByte()/255;for(let Y=0,F=0;w.setFrame(Y,b,v,A,S,I),Y!=y;Y++){let P=t.readFloat(),R=t.readUnsignedByte()/255,M=t.readUnsignedByte()/255,C=t.readUnsignedByte()/255,T=t.readUnsignedByte()/255;switch(t.readByte()){case lt:w.setStepped(Y);break;case ot:U(t,w,F++,Y,0,b,P,v,R,1),U(t,w,F++,Y,1,b,P,A,M,1),U(t,w,F++,Y,2,b,P,S,C,1),U(t,w,F++,Y,3,b,P,I,T,1)}b=P,v=R,A=M,S=C,I=T}a.push(w);break}case qs:{let g=t.readInt(!0),w=new ne(p,g,f),b=t.readFloat(),v=t.readUnsignedByte()/255,A=t.readUnsignedByte()/255,S=t.readUnsignedByte()/255;for(let I=0,Y=0;w.setFrame(I,b,v,A,S),I!=y;I++){let F=t.readFloat(),P=t.readUnsignedByte()/255,R=t.readUnsignedByte()/255,M=t.readUnsignedByte()/255;switch(t.readByte()){case lt:w.setStepped(I);break;case ot:U(t,w,Y++,I,0,b,F,v,P,1),U(t,w,Y++,I,1,b,F,A,R,1),U(t,w,Y++,I,2,b,F,S,M,1)}b=F,v=P,A=R,S=M}a.push(w);break}case _s:{let g=t.readInt(!0),w=new oe(p,g,f),b=t.readFloat(),v=t.readUnsignedByte()/255,A=t.readUnsignedByte()/255,S=t.readUnsignedByte()/255,I=t.readUnsignedByte()/255,Y=t.readUnsignedByte()/255,F=t.readUnsignedByte()/255,P=t.readUnsignedByte()/255;for(let R=0,M=0;w.setFrame(R,b,v,A,S,I,Y,F,P),R!=y;R++){let C=t.readFloat(),T=t.readUnsignedByte()/255,O=t.readUnsignedByte()/255,z=t.readUnsignedByte()/255,V=t.readUnsignedByte()/255,q=t.readUnsignedByte()/255,j=t.readUnsignedByte()/255,H=t.readUnsignedByte()/255;switch(t.readByte()){case lt:w.setStepped(R);break;case ot:U(t,w,M++,R,0,b,C,v,T,1),U(t,w,M++,R,1,b,C,A,O,1),U(t,w,M++,R,2,b,C,S,z,1),U(t,w,M++,R,3,b,C,I,V,1),U(t,w,M++,R,4,b,C,Y,q,1),U(t,w,M++,R,5,b,C,F,j,1),U(t,w,M++,R,6,b,C,P,H,1)}b=C,v=T,A=O,S=z,I=V,Y=q,F=j,P=H}a.push(w);break}case Hs:{let g=t.readInt(!0),w=new he(p,g,f),b=t.readFloat(),v=t.readUnsignedByte()/255,A=t.readUnsignedByte()/255,S=t.readUnsignedByte()/255,I=t.readUnsignedByte()/255,Y=t.readUnsignedByte()/255,F=t.readUnsignedByte()/255;for(let P=0,R=0;w.setFrame(P,b,v,A,S,I,Y,F),P!=y;P++){let M=t.readFloat(),C=t.readUnsignedByte()/255,T=t.readUnsignedByte()/255,O=t.readUnsignedByte()/255,z=t.readUnsignedByte()/255,V=t.readUnsignedByte()/255,q=t.readUnsignedByte()/255;switch(t.readByte()){case lt:w.setStepped(P);break;case ot:U(t,w,R++,P,0,b,M,v,C,1),U(t,w,R++,P,1,b,M,A,T,1),U(t,w,R++,P,2,b,M,S,O,1),U(t,w,R++,P,3,b,M,I,z,1),U(t,w,R++,P,4,b,M,Y,V,1),U(t,w,R++,P,5,b,M,F,q,1)}b=M,v=C,A=T,S=O,I=z,Y=V,F=q}a.push(w);break}case Gs:{let g=new le(p,t.readInt(!0),f),w=t.readFloat(),b=t.readUnsignedByte()/255;for(let v=0,A=0;g.setFrame(v,w,b),v!=y;v++){let S=t.readFloat(),I=t.readUnsignedByte()/255;switch(t.readByte()){case lt:g.setStepped(v);break;case ot:U(t,g,A++,v,0,w,S,b,I,1)}w=S,b=I}a.push(g);break}}}}for(let h=0,d=t.readInt(!0);h<d;h++){let f=t.readInt(!0);for(let u=0,m=t.readInt(!0);u<m;u++){let x=t.readByte(),p=t.readInt(!0),y=t.readInt(!0);switch(x){case Rs:a.push(bt(t,new Bt(p,y,f),1));break;case Bs:a.push(Ee(t,new Jt(p,y,f),r));break;case Ps:a.push(bt(t,new Qt(p,y,f),r));break;case Es:a.push(bt(t,new Zt(p,y,f),r));break;case Vs:a.push(Ee(t,new Kt(p,y,f),1));break;case Ls:a.push(bt(t,new te(p,y,f),1));break;case Ds:a.push(bt(t,new ee(p,y,f),1));break;case Ns:a.push(Ee(t,new se(p,y,f),1));break;case Os:a.push(bt(t,new ie(p,y,f),1));break;case Us:a.push(bt(t,new re(p,y,f),1))}}}for(let h=0,d=t.readInt(!0);h<d;h++){let f=t.readInt(!0),u=t.readInt(!0),m=u-1,x=new de(u,t.readInt(!0),f),p=t.readFloat(),y=t.readFloat(),g=t.readFloat()*r;for(let w=0,b=0;x.setFrame(w,p,y,g,t.readByte(),t.readBoolean(),t.readBoolean()),w!=m;w++){let v=t.readFloat(),A=t.readFloat(),S=t.readFloat()*r;switch(t.readByte()){case lt:x.setStepped(w);break;case ot:U(t,x,b++,w,0,p,v,y,A,1),U(t,x,b++,w,1,p,v,g,S,r)}p=v,y=A,g=S}a.push(x)}for(let h=0,d=t.readInt(!0);h<d;h++){let f=t.readInt(!0),u=t.readInt(!0),m=u-1,x=new fe(u,t.readInt(!0),f),p=t.readFloat(),y=t.readFloat(),g=t.readFloat(),w=t.readFloat(),b=t.readFloat(),v=t.readFloat(),A=t.readFloat();for(let S=0,I=0;x.setFrame(S,p,y,g,w,b,v,A),S!=m;S++){let Y=t.readFloat(),F=t.readFloat(),P=t.readFloat(),R=t.readFloat(),M=t.readFloat(),C=t.readFloat(),T=t.readFloat();switch(t.readByte()){case lt:x.setStepped(S);break;case ot:U(t,x,I++,S,0,p,Y,y,F,1),U(t,x,I++,S,1,p,Y,g,P,1),U(t,x,I++,S,2,p,Y,w,R,1),U(t,x,I++,S,3,p,Y,b,M,1),U(t,x,I++,S,4,p,Y,v,C,1),U(t,x,I++,S,5,p,Y,A,T,1)}p=Y,y=F,g=P,w=R,b=M,v=C,A=T}a.push(x)}for(let h=0,d=t.readInt(!0);h<d;h++){let f=t.readInt(!0),u=e.pathConstraints[f];for(let m=0,x=t.readInt(!0);m<x;m++)switch(t.readByte()){case js:a.push(bt(t,new ue(t.readInt(!0),t.readInt(!0),f),u.positionMode==dt.Fixed?r:1));break;case $s:a.push(bt(t,new me(t.readInt(!0),t.readInt(!0),f),u.spacingMode==Q.Length||u.spacingMode==Q.Fixed?r:1));break;case Js:let p=new ge(t.readInt(!0),t.readInt(!0),f),y=t.readFloat(),g=t.readFloat(),w=t.readFloat(),b=t.readFloat();for(let v=0,A=0,S=p.getFrameCount()-1;p.setFrame(v,y,g,w,b),v!=S;v++){let I=t.readFloat(),Y=t.readFloat(),F=t.readFloat(),P=t.readFloat();switch(t.readByte()){case lt:p.setStepped(v);break;case ot:U(t,p,A++,v,0,y,I,g,Y,1),U(t,p,A++,v,1,y,I,w,F,1),U(t,p,A++,v,2,y,I,b,P,1)}y=I,g=Y,w=F,b=P}a.push(p)}}for(let h=0,d=t.readInt(!0);h<d;h++){let f=e.skins[t.readInt(!0)];for(let u=0,m=t.readInt(!0);u<m;u++){let x=t.readInt(!0);for(let p=0,y=t.readInt(!0);p<y;p++){let g=t.readStringRef(),w=f.getAttachment(x,g),b=w.bones,v=w.vertices,A=b?v.length/3*2:v.length,S=t.readInt(!0),I=S-1,Y=t.readInt(!0),F=new ce(S,Y,x,w),P=t.readFloat();for(let R=0,M=0;;R++){let C,T=t.readInt(!0);if(T==0)C=b?B.newFloatArray(A):v;else{C=B.newFloatArray(A);let z=t.readInt(!0);if(T+=z,r==1)for(let V=z;V<T;V++)C[V]=t.readFloat();else for(let V=z;V<T;V++)C[V]=t.readFloat()*r;if(!b)for(let V=0,q=C.length;V<q;V++)C[V]+=v[V]}if(F.setFrame(R,P,C),R==I)break;let O=t.readFloat();switch(t.readByte()){case lt:F.setStepped(R);break;case ot:U(t,F,M++,R,0,P,O,0,1,1)}P=O}a.push(F)}}}let i=t.readInt(!0);if(i>0){let h=new vt(i),d=e.slots.length;for(let f=0;f<i;f++){let u=t.readFloat(),m=t.readInt(!0),x=B.newArray(d,0);for(let w=d-1;w>=0;w--)x[w]=-1;let p=B.newArray(d-m,0),y=0,g=0;for(let w=0;w<m;w++){let b=t.readInt(!0);for(;y!=b;)p[g++]=y++;x[y+t.readInt(!0)]=y++}for(;y<d;)p[g++]=y++;for(let w=d-1;w>=0;w--)x[w]==-1&&(x[w]=p[--g]);h.setFrame(f,u,x)}a.push(h)}let o=t.readInt(!0);if(o>0){let h=new Pt(o);for(let d=0;d<o;d++){let f=t.readFloat(),u=e.events[t.readInt(!0)],m=new Ie(f,u);m.intValue=t.readInt(!1),m.floatValue=t.readFloat(),m.stringValue=t.readBoolean()?t.readString():u.stringValue,m.data.audioPath&&(m.volume=t.readFloat(),m.balance=t.readFloat()),h.setFrame(d,m)}a.push(h)}let n=0;for(let h=0,d=a.length;h<d;h++)n=Math.max(n,a[h].getDuration());return new Lt(s,a,n)}},os=class{constructor(t,s=new Array,e=0,a=new DataView(t.buffer)){this.strings=s,this.index=e,this.buffer=a}readByte(){return this.buffer.getInt8(this.index++)}readUnsignedByte(){return this.buffer.getUint8(this.index++)}readShort(){let t=this.buffer.getInt16(this.index);return this.index+=2,t}readInt32(){let t=this.buffer.getInt32(this.index);return this.index+=4,t}readInt(t){let s=this.readByte(),e=s&127;return(s&128)!=0&&(s=this.readByte(),e|=(s&127)<<7,(s&128)!=0&&(s=this.readByte(),e|=(s&127)<<14,(s&128)!=0&&(s=this.readByte(),e|=(s&127)<<21,(s&128)!=0&&(s=this.readByte(),e|=(s&127)<<28)))),t?e:e>>>1^-(e&1)}readStringRef(){let t=this.readInt(!0);return t==0?null:this.strings[t-1]}readString(){let t=this.readInt(!0);switch(t){case 0:return null;case 1:return""}t--;let s="",e=0;for(let a=0;a<t;){let r=this.readByte();switch(r>>4){case 12:case 13:s+=String.fromCharCode((r&31)<<6|this.readByte()&63),a+=2;break;case 14:s+=String.fromCharCode((r&15)<<12|(this.readByte()&63)<<6|this.readByte()&63),a+=3;break;default:s+=String.fromCharCode(r),a++}}return s}readFloat(){let t=this.buffer.getFloat32(this.index);return this.index+=4,t}readBoolean(){return this.readByte()!=0}},Ms=class{constructor(t,s,e,a,r){this.mesh=t,this.skin=s,this.slotIndex=e,this.parent=a,this.inheritDeform=r}},Fs=class{constructor(t=null,s=null){this.bones=t,this.vertices=s}},xt;(function(t){t[t.Region=0]="Region",t[t.BoundingBox=1]="BoundingBox",t[t.Mesh=2]="Mesh",t[t.LinkedMesh=3]="LinkedMesh",t[t.Path=4]="Path",t[t.Point=5]="Point",t[t.Clipping=6]="Clipping"})(xt||(xt={}));function bt(t,s,e){let a=t.readFloat(),r=t.readFloat()*e;for(let c=0,l=0,i=s.getFrameCount()-1;s.setFrame(c,a,r),c!=i;c++){let o=t.readFloat(),n=t.readFloat()*e;switch(t.readByte()){case lt:s.setStepped(c);break;case ot:U(t,s,l++,c,0,a,o,r,n,e)}a=o,r=n}return s}function Ee(t,s,e){let a=t.readFloat(),r=t.readFloat()*e,c=t.readFloat()*e;for(let l=0,i=0,o=s.getFrameCount()-1;s.setFrame(l,a,r,c),l!=o;l++){let n=t.readFloat(),h=t.readFloat()*e,d=t.readFloat()*e;switch(t.readByte()){case lt:s.setStepped(l);break;case ot:U(t,s,i++,l,0,a,n,r,h,e),U(t,s,i++,l,1,a,n,c,d,e)}a=n,r=h,c=d}return s}function U(t,s,e,a,r,c,l,i,o,n){s.setBezier(e,a,r,c,i,t.readFloat(),t.readFloat()*n,t.readFloat(),t.readFloat()*n,l,o)}var Rs=0,Bs=1,Ps=2,Es=3,Vs=4,Ls=5,Ds=6,Ns=7,Os=8,Us=9,Ws=0,zs=1,qs=2,_s=3,Hs=4,Gs=5,js=0,$s=1,Js=2,lt=1,ot=2,Qs=class{constructor(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.boundingBoxes=new Array,this.polygons=new Array,this.polygonPool=new Rt(()=>B.newFloatArray(16))}update(t,s){if(!t)throw new Error("skeleton cannot be null.");let e=this.boundingBoxes,a=this.polygons,r=this.polygonPool,c=t.slots,l=c.length;e.length=0,r.freeAll(a),a.length=0;for(let i=0;i<l;i++){let o=c[i];if(!o.bone.active)continue;let n=o.getAttachment();if(n instanceof Ut){let h=n;e.push(h);let d=r.obtain();d.length!=h.worldVerticesLength&&(d=B.newFloatArray(h.worldVerticesLength)),a.push(d),h.computeWorldVertices(o,0,h.worldVerticesLength,d,0,2)}}s?this.aabbCompute():(this.minX=Number.POSITIVE_INFINITY,this.minY=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY,this.maxY=Number.NEGATIVE_INFINITY)}aabbCompute(){let t=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY,e=Number.NEGATIVE_INFINITY,a=Number.NEGATIVE_INFINITY,r=this.polygons;for(let c=0,l=r.length;c<l;c++){let i=r[c],o=i;for(let n=0,h=i.length;n<h;n+=2){let d=o[n],f=o[n+1];t=Math.min(t,d),s=Math.min(s,f),e=Math.max(e,d),a=Math.max(a,f)}}this.minX=t,this.minY=s,this.maxX=e,this.maxY=a}aabbContainsPoint(t,s){return t>=this.minX&&t<=this.maxX&&s>=this.minY&&s<=this.maxY}aabbIntersectsSegment(t,s,e,a){let r=this.minX,c=this.minY,l=this.maxX,i=this.maxY;if(t<=r&&e<=r||s<=c&&a<=c||t>=l&&e>=l||s>=i&&a>=i)return!1;let o=(a-s)/(e-t),n=o*(r-t)+s;if(n>c&&n<i||(n=o*(l-t)+s,n>c&&n<i))return!0;let h=(c-s)/o+t;return!!(h>r&&h<l||(h=(i-s)/o+t,h>r&&h<l))}aabbIntersectsSkeleton(t){return this.minX<t.maxX&&this.maxX>t.minX&&this.minY<t.maxY&&this.maxY>t.minY}containsPoint(t,s){let e=this.polygons;for(let a=0,r=e.length;a<r;a++)if(this.containsPointPolygon(e[a],t,s))return this.boundingBoxes[a];return null}containsPointPolygon(t,s,e){let a=t,r=t.length,c=r-2,l=!1;for(let i=0;i<r;i+=2){let o=a[i+1],n=a[c+1];if(o<e&&n>=e||n<e&&o>=e){let h=a[i];h+(e-o)/(n-o)*(a[c]-h)<s&&(l=!l)}c=i}return l}intersectsSegment(t,s,e,a){let r=this.polygons;for(let c=0,l=r.length;c<l;c++)if(this.intersectsSegmentPolygon(r[c],t,s,e,a))return this.boundingBoxes[c];return null}intersectsSegmentPolygon(t,s,e,a,r){let c=t,l=t.length,i=s-a,o=e-r,n=s*r-e*a,h=c[l-2],d=c[l-1];for(let f=0;f<l;f+=2){let u=c[f],m=c[f+1],x=h*m-d*u,p=h-u,y=d-m,g=i*y-o*p,w=(n*p-i*x)/g;if((w>=h&&w<=u||w>=u&&w<=h)&&(w>=s&&w<=a||w>=a&&w<=s)){let b=(n*y-o*x)/g;if((b>=d&&b<=m||b>=m&&b<=d)&&(b>=e&&b<=r||b>=r&&b<=e))return!0}h=u,d=m}return!1}getPolygon(t){if(!t)throw new Error("boundingBox cannot be null.");let s=this.boundingBoxes.indexOf(t);return s==-1?null:this.polygons[s]}getWidth(){return this.maxX-this.minX}getHeight(){return this.maxY-this.minY}},st=class{constructor(){this.convexPolygons=new Array,this.convexPolygonsIndices=new Array,this.indicesArray=new Array,this.isConcaveArray=new Array,this.triangles=new Array,this.polygonPool=new Rt(()=>new Array),this.polygonIndicesPool=new Rt(()=>new Array)}triangulate(t){let s=t,e=t.length>>1,a=this.indicesArray;a.length=0;for(let l=0;l<e;l++)a[l]=l;let r=this.isConcaveArray;r.length=0;for(let l=0,i=e;l<i;++l)r[l]=st.isConcave(l,e,s,a);let c=this.triangles;for(c.length=0;e>3;){let l=e-1,i=0,o=1;for(;;){t:if(!r[i]){let d=a[l]<<1,f=a[i]<<1,u=a[o]<<1,m=s[d],x=s[d+1],p=s[f],y=s[f+1],g=s[u],w=s[u+1];for(let b=(o+1)%e;b!=l;b=(b+1)%e){if(!r[b])continue;let v=a[b]<<1,A=s[v],S=s[v+1];if(st.positiveArea(g,w,m,x,A,S)&&st.positiveArea(m,x,p,y,A,S)&&st.positiveArea(p,y,g,w,A,S))break t}break}if(o==0){do{if(!r[i])break;i--}while(i>0);break}l=i,i=o,o=(o+1)%e}c.push(a[(e+i-1)%e]),c.push(a[i]),c.push(a[(i+1)%e]),a.splice(i,1),r.splice(i,1),e--;let n=(e+i-1)%e,h=i==e?0:i;r[n]=st.isConcave(n,e,s,a),r[h]=st.isConcave(h,e,s,a)}return e==3&&(c.push(a[2]),c.push(a[0]),c.push(a[1])),c}decompose(t,s){let e=t,a=this.convexPolygons;this.polygonPool.freeAll(a),a.length=0;let r=this.convexPolygonsIndices;this.polygonIndicesPool.freeAll(r),r.length=0;let c=this.polygonIndicesPool.obtain();c.length=0;let l=this.polygonPool.obtain();l.length=0;let i=-1,o=0;for(let n=0,h=s.length;n<h;n+=3){let d=s[n]<<1,f=s[n+1]<<1,u=s[n+2]<<1,m=e[d],x=e[d+1],p=e[f],y=e[f+1],g=e[u],w=e[u+1],b=!1;if(i==d){let v=l.length-4,A=st.winding(l[v],l[v+1],l[v+2],l[v+3],g,w),S=st.winding(g,w,l[0],l[1],l[2],l[3]);A==o&&S==o&&(l.push(g),l.push(w),c.push(u),b=!0)}b||(l.length>0?(a.push(l),r.push(c)):(this.polygonPool.free(l),this.polygonIndicesPool.free(c)),l=this.polygonPool.obtain(),l.length=0,l.push(m),l.push(x),l.push(p),l.push(y),l.push(g),l.push(w),c=this.polygonIndicesPool.obtain(),c.length=0,c.push(d),c.push(f),c.push(u),o=st.winding(m,x,p,y,g,w),i=d)}l.length>0&&(a.push(l),r.push(c));for(let n=0,h=a.length;n<h;n++){if(c=r[n],c.length==0)continue;let d=c[0],f=c[c.length-1];l=a[n];let u=l.length-4,m=l[u],x=l[u+1],p=l[u+2],y=l[u+3],g=l[0],w=l[1],b=l[2],v=l[3],A=st.winding(m,x,p,y,g,w);for(let S=0;S<h;S++){if(S==n)continue;let I=r[S];if(I.length!=3)continue;let Y=I[0],F=I[1],P=I[2],R=a[S],M=R[R.length-2],C=R[R.length-1];if(Y!=d||F!=f)continue;let T=st.winding(m,x,p,y,M,C),O=st.winding(M,C,g,w,b,v);T==A&&O==A&&(R.length=0,I.length=0,l.push(M),l.push(C),c.push(P),m=p,x=y,p=M,y=C,S=0)}}for(let n=a.length-1;n>=0;n--)l=a[n],l.length==0&&(a.splice(n,1),this.polygonPool.free(l),c=r[n],r.splice(n,1),this.polygonIndicesPool.free(c));return a}static isConcave(t,s,e,a){let r=a[(s+t-1)%s]<<1,c=a[t]<<1,l=a[(t+1)%s]<<1;return!this.positiveArea(e[r],e[r+1],e[c],e[c+1],e[l],e[l+1])}static positiveArea(t,s,e,a,r,c){return t*(c-a)+e*(s-c)+r*(a-s)>=0}static winding(t,s,e,a,r,c){let l=e-t,i=a-s;return r*i-c*l+l*s-t*i>=0?1:-1}},Ve=class{constructor(){this.triangulator=new st,this.clippingPolygon=new Array,this.clipOutput=new Array,this.clippedVertices=new Array,this.clippedTriangles=new Array,this.scratch=new Array}clipStart(t,s){if(this.clipAttachment)return 0;this.clipAttachment=s;let e=s.worldVerticesLength,a=B.setArraySize(this.clippingPolygon,e);s.computeWorldVertices(t,0,e,a,0,2);let r=this.clippingPolygon;Ve.makeClockwise(r);let c=this.clippingPolygons=this.triangulator.decompose(r,this.triangulator.triangulate(r));for(let l=0,i=c.length;l<i;l++){let o=c[l];Ve.makeClockwise(o),o.push(o[0]),o.push(o[1])}return c.length}clipEndWithSlot(t){this.clipAttachment&&this.clipAttachment.endSlot==t.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(t,s,e,a,r,c,l,i){let o=this.clipOutput,n=this.clippedVertices,h=this.clippedTriangles,d=this.clippingPolygons,f=this.clippingPolygons.length,u=i?12:8,m=0;n.length=0,h.length=0;t:for(let x=0;x<a;x+=3){let p=e[x]<<1,y=t[p],g=t[p+1],w=r[p],b=r[p+1];p=e[x+1]<<1;let v=t[p],A=t[p+1],S=r[p],I=r[p+1];p=e[x+2]<<1;let Y=t[p],F=t[p+1],P=r[p],R=r[p+1];for(let M=0;M<f;M++){let C=n.length;if(this.clip(y,g,v,A,Y,F,d[M],o)){let T=o.length;if(T==0)continue;let O=A-F,z=Y-v,V=y-Y,q=F-g,j=1/(O*V+z*(g-F)),H=T>>1,N=this.clipOutput,D=B.setArraySize(n,C+H*u);for(let K=0;K<T;K+=2){let ht=N[K],Z=N[K+1];D[C]=ht,D[C+1]=Z,D[C+2]=c.r,D[C+3]=c.g,D[C+4]=c.b,D[C+5]=c.a;let it=ht-Y,rt=Z-F,wt=(O*it+z*rt)*j,Xt=(q*it+V*rt)*j,Et=1-wt-Xt;D[C+6]=w*wt+S*Xt+P*Et,D[C+7]=b*wt+I*Xt+R*Et,i&&(D[C+8]=l.r,D[C+9]=l.g,D[C+10]=l.b,D[C+11]=l.a),C+=u}C=h.length;let G=B.setArraySize(h,C+3*(H-2));H--;for(let K=1;K<H;K++)G[C]=m,G[C+1]=m+K,G[C+2]=m+K+1,C+=3;m+=H+1}else{let T=B.setArraySize(n,C+3*u);T[C]=y,T[C+1]=g,T[C+2]=c.r,T[C+3]=c.g,T[C+4]=c.b,T[C+5]=c.a,i?(T[C+6]=w,T[C+7]=b,T[C+8]=l.r,T[C+9]=l.g,T[C+10]=l.b,T[C+11]=l.a,T[C+12]=v,T[C+13]=A,T[C+14]=c.r,T[C+15]=c.g,T[C+16]=c.b,T[C+17]=c.a,T[C+18]=S,T[C+19]=I,T[C+20]=l.r,T[C+21]=l.g,T[C+22]=l.b,T[C+23]=l.a,T[C+24]=Y,T[C+25]=F,T[C+26]=c.r,T[C+27]=c.g,T[C+28]=c.b,T[C+29]=c.a,T[C+30]=P,T[C+31]=R,T[C+32]=l.r,T[C+33]=l.g,T[C+34]=l.b,T[C+35]=l.a):(T[C+6]=w,T[C+7]=b,T[C+8]=v,T[C+9]=A,T[C+10]=c.r,T[C+11]=c.g,T[C+12]=c.b,T[C+13]=c.a,T[C+14]=S,T[C+15]=I,T[C+16]=Y,T[C+17]=F,T[C+18]=c.r,T[C+19]=c.g,T[C+20]=c.b,T[C+21]=c.a,T[C+22]=P,T[C+23]=R),C=h.length;let O=B.setArraySize(h,C+3);O[C]=m,O[C+1]=m+1,O[C+2]=m+2,m+=3;continue t}}}}clip(t,s,e,a,r,c,l,i){let o=i,n=!1,h=null;l.length%4>=2?(h=i,i=this.scratch):h=this.scratch,h.length=0,h.push(t),h.push(s),h.push(e),h.push(a),h.push(r),h.push(c),h.push(t),h.push(s),i.length=0;let d=l,f=l.length-4;for(let u=0;;u+=2){let m=d[u],x=d[u+1],p=d[u+2],y=d[u+3],g=m-p,w=x-y,b=h,v=h.length-2,A=i.length;for(let I=0;I<v;I+=2){let Y=b[I],F=b[I+1],P=b[I+2],R=b[I+3],M=g*(R-y)-w*(P-p)>0;if(g*(F-y)-w*(Y-p)>0){if(M){i.push(P),i.push(R);continue}let C=R-F,T=P-Y,O=C*(p-m)-T*(y-x);if(Math.abs(O)>1e-6){let z=(T*(x-F)-C*(m-Y))/O;i.push(m+(p-m)*z),i.push(x+(y-x)*z)}else i.push(m),i.push(x)}else if(M){let C=R-F,T=P-Y,O=C*(p-m)-T*(y-x);if(Math.abs(O)>1e-6){let z=(T*(x-F)-C*(m-Y))/O;i.push(m+(p-m)*z),i.push(x+(y-x)*z)}else i.push(m),i.push(x);i.push(P),i.push(R)}n=!0}if(A==i.length)return o.length=0,!0;if(i.push(i[0]),i.push(i[1]),u==f)break;let S=i;i=h,i.length=0,h=S}if(o!=i){o.length=0;for(let u=0,m=i.length-2;u<m;u++)o[u]=i[u]}else o.length=o.length-2;return n}static makeClockwise(t){let s=t,e=t.length,a=s[e-2]*s[1]-s[0]*s[e-1],r=0,c=0,l=0,i=0;for(let o=0,n=e-3;o<n;o+=2)r=s[o],c=s[o+1],l=s[o+2],i=s[o+3],a+=r*i-l*c;if(!(a<0))for(let o=0,n=e-2,h=e>>1;o<h;o+=2){let d=s[o],f=s[o+1],u=n-o;s[o]=s[u],s[o+1]=s[u+1],s[u]=d,s[u+1]=f}}},Zs=class{constructor(t){this.attachmentLoader=null,this.scale=1,this.linkedMeshes=new Array,this.attachmentLoader=t}readSkeletonData(t){let s=this.scale,e=new Fe,a=typeof t=="string"?JSON.parse(t):t,r=a.skeleton;if(r&&(e.hash=r.hash,e.version=r.spine,e.x=r.x,e.y=r.y,e.width=r.width,e.height=r.height,e.fps=r.fps,e.imagesPath=r.images),a.bones)for(let c=0;c<a.bones.length;c++){let l=a.bones[c],i=null,o=k(l,"parent",null);o&&(i=e.findBone(o));let n=new Ce(e.bones.length,l.name,i);n.length=k(l,"length",0)*s,n.x=k(l,"x",0)*s,n.y=k(l,"y",0)*s,n.rotation=k(l,"rotation",0),n.scaleX=k(l,"scaleX",1),n.scaleY=k(l,"scaleY",1),n.shearX=k(l,"shearX",0),n.shearY=k(l,"shearY",0),n.transformMode=B.enumValue(et,k(l,"transform","Normal")),n.skinRequired=k(l,"skin",!1);let h=k(l,"color",null);h&&n.color.setFromString(h),e.bones.push(n)}if(a.slots)for(let c=0;c<a.slots.length;c++){let l=a.slots[c],i=e.findBone(l.bone),o=new Be(e.slots.length,l.name,i),n=k(l,"color",null);n&&o.color.setFromString(n);let h=k(l,"dark",null);h&&(o.darkColor=L.fromString(h)),o.attachmentName=k(l,"attachment",null),o.blendMode=B.enumValue(qt,k(l,"blend","normal")),e.slots.push(o)}if(a.ik)for(let c=0;c<a.ik.length;c++){let l=a.ik[c],i=new Xe(l.name);i.order=k(l,"order",0),i.skinRequired=k(l,"skin",!1);for(let o=0;o<l.bones.length;o++)i.bones.push(e.findBone(l.bones[o]));i.target=e.findBone(l.target),i.mix=k(l,"mix",1),i.softness=k(l,"softness",0)*s,i.bendDirection=k(l,"bendPositive",!0)?1:-1,i.compress=k(l,"compress",!1),i.stretch=k(l,"stretch",!1),i.uniform=k(l,"uniform",!1),e.ikConstraints.push(i)}if(a.transform)for(let c=0;c<a.transform.length;c++){let l=a.transform[c],i=new Pe(l.name);i.order=k(l,"order",0),i.skinRequired=k(l,"skin",!1);for(let n=0;n<l.bones.length;n++)i.bones.push(e.findBone(l.bones[n]));let o=l.target;i.target=e.findBone(o),i.local=k(l,"local",!1),i.relative=k(l,"relative",!1),i.offsetRotation=k(l,"rotation",0),i.offsetX=k(l,"x",0)*s,i.offsetY=k(l,"y",0)*s,i.offsetScaleX=k(l,"scaleX",0),i.offsetScaleY=k(l,"scaleY",0),i.offsetShearY=k(l,"shearY",0),i.mixRotate=k(l,"mixRotate",1),i.mixX=k(l,"mixX",1),i.mixY=k(l,"mixY",i.mixX),i.mixScaleX=k(l,"mixScaleX",1),i.mixScaleY=k(l,"mixScaleY",i.mixScaleX),i.mixShearY=k(l,"mixShearY",1),e.transformConstraints.push(i)}if(a.path)for(let c=0;c<a.path.length;c++){let l=a.path[c],i=new Me(l.name);i.order=k(l,"order",0),i.skinRequired=k(l,"skin",!1);for(let n=0;n<l.bones.length;n++)i.bones.push(e.findBone(l.bones[n]));let o=l.target;i.target=e.findSlot(o),i.positionMode=B.enumValue(dt,k(l,"positionMode","Percent")),i.spacingMode=B.enumValue(Q,k(l,"spacingMode","Length")),i.rotateMode=B.enumValue(Ct,k(l,"rotateMode","Tangent")),i.offsetRotation=k(l,"rotation",0),i.position=k(l,"position",0),i.positionMode==dt.Fixed&&(i.position*=s),i.spacing=k(l,"spacing",0),(i.spacingMode==Q.Length||i.spacingMode==Q.Fixed)&&(i.spacing*=s),i.mixRotate=k(l,"mixRotate",1),i.mixX=k(l,"mixX",1),i.mixY=k(l,"mixY",i.mixX),e.pathConstraints.push(i)}if(a.skins)for(let c=0;c<a.skins.length;c++){let l=a.skins[c],i=new zt(l.name);if(l.bones)for(let o=0;o<l.bones.length;o++)i.bones.push(e.findBone(l.bones[o]));if(l.ik)for(let o=0;o<l.ik.length;o++)i.constraints.push(e.findIkConstraint(l.ik[o]));if(l.transform)for(let o=0;o<l.transform.length;o++)i.constraints.push(e.findTransformConstraint(l.transform[o]));if(l.path)for(let o=0;o<l.path.length;o++)i.constraints.push(e.findPathConstraint(l.path[o]));for(let o in l.attachments){let n=e.findSlot(o),h=l.attachments[o];for(let d in h){let f=this.readAttachment(h[d],i,n.index,d,e);f&&i.setAttachment(n.index,d,f)}}e.skins.push(i),i.name=="default"&&(e.defaultSkin=i)}for(let c=0,l=this.linkedMeshes.length;c<l;c++){let i=this.linkedMeshes[c],n=(i.skin?e.findSkin(i.skin):e.defaultSkin).getAttachment(i.slotIndex,i.parent);i.mesh.deformAttachment=i.inheritDeform?n:i.mesh,i.mesh.setParentMesh(n),i.mesh.updateUVs()}if(this.linkedMeshes.length=0,a.events)for(let c in a.events){let l=a.events[c],i=new Te(c);i.intValue=k(l,"int",0),i.floatValue=k(l,"float",0),i.stringValue=k(l,"string",""),i.audioPath=k(l,"audio",null),i.audioPath&&(i.volume=k(l,"volume",1),i.balance=k(l,"balance",0)),e.events.push(i)}if(a.animations)for(let c in a.animations){let l=a.animations[c];this.readAnimation(l,c,e)}return e}readAttachment(t,s,e,a,r){let c=this.scale;switch(a=k(t,"name",a),k(t,"type","region")){case"region":{let l=k(t,"path",a),i=this.attachmentLoader.newRegionAttachment(s,a,l);if(!i)return null;i.path=l,i.x=k(t,"x",0)*c,i.y=k(t,"y",0)*c,i.scaleX=k(t,"scaleX",1),i.scaleY=k(t,"scaleY",1),i.rotation=k(t,"rotation",0),i.width=t.width*c,i.height=t.height*c;let o=k(t,"color",null);return o&&i.color.setFromString(o),i.updateOffset(),i}case"boundingbox":{let l=this.attachmentLoader.newBoundingBoxAttachment(s,a);if(!l)return null;this.readVertices(t,l,t.vertexCount<<1);let i=k(t,"color",null);return i&&l.color.setFromString(i),l}case"mesh":case"linkedmesh":{let l=k(t,"path",a),i=this.attachmentLoader.newMeshAttachment(s,a,l);if(!i)return null;i.path=l;let o=k(t,"color",null);o&&i.color.setFromString(o),i.width=k(t,"width",0)*c,i.height=k(t,"height",0)*c;let n=k(t,"parent",null);if(n)return this.linkedMeshes.push(new Ks(i,k(t,"skin",null),e,n,k(t,"deform",!0))),i;let h=t.uvs;return this.readVertices(t,i,h.length),i.triangles=t.triangles,i.regionUVs=h,i.updateUVs(),i.edges=k(t,"edges",null),i.hullLength=k(t,"hull",0)*2,i}case"path":{let l=this.attachmentLoader.newPathAttachment(s,a);if(!l)return null;l.closed=k(t,"closed",!1),l.constantSpeed=k(t,"constantSpeed",!0);let i=t.vertexCount;this.readVertices(t,l,i<<1);let o=B.newArray(i/3,0);for(let h=0;h<t.lengths.length;h++)o[h]=t.lengths[h]*c;l.lengths=o;let n=k(t,"color",null);return n&&l.color.setFromString(n),l}case"point":{let l=this.attachmentLoader.newPointAttachment(s,a);if(!l)return null;l.x=k(t,"x",0)*c,l.y=k(t,"y",0)*c,l.rotation=k(t,"rotation",0);let i=k(t,"color",null);return i&&l.color.setFromString(i),l}case"clipping":{let l=this.attachmentLoader.newClippingAttachment(s,a);if(!l)return null;let i=k(t,"end",null);i&&(l.endSlot=r.findSlot(i));let o=t.vertexCount;this.readVertices(t,l,o<<1);let n=k(t,"color",null);return n&&l.color.setFromString(n),l}}return null}readVertices(t,s,e){let a=this.scale;s.worldVerticesLength=e;let r=t.vertices;if(e==r.length){let i=B.toFloatArray(r);if(a!=1)for(let o=0,n=r.length;o<n;o++)i[o]*=a;s.vertices=i;return}let c=new Array,l=new Array;for(let i=0,o=r.length;i<o;){let n=r[i++];l.push(n);for(let h=i+n*4;i<h;i+=4)l.push(r[i]),c.push(r[i+1]*a),c.push(r[i+2]*a),c.push(r[i+3])}s.bones=l,s.vertices=B.toFloatArray(c)}readAnimation(t,s,e){let a=this.scale,r=new Array;if(t.slots)for(let l in t.slots){let i=t.slots[l],o=e.findSlot(l).index;for(let n in i){let h=i[n];if(!h)continue;let d=h.length;if(n=="attachment"){let f=new yt(d,o);for(let u=0;u<d;u++){let m=h[u];f.setFrame(u,k(m,"time",0),m.name)}r.push(f)}else if(n=="rgba"){let f=new ae(d,d<<2,o),u=h[0],m=k(u,"time",0),x=L.fromString(u.color);for(let p=0,y=0;;p++){f.setFrame(p,m,x.r,x.g,x.b,x.a);let g=h[p+1];if(!g){f.shrink(y);break}let w=k(g,"time",0),b=L.fromString(g.color),v=u.curve;v&&(y=W(v,f,y,p,0,m,w,x.r,b.r,1),y=W(v,f,y,p,1,m,w,x.g,b.g,1),y=W(v,f,y,p,2,m,w,x.b,b.b,1),y=W(v,f,y,p,3,m,w,x.a,b.a,1)),m=w,x=b,u=g}r.push(f)}else if(n=="rgb"){let f=new ne(d,d*3,o),u=h[0],m=k(u,"time",0),x=L.fromString(u.color);for(let p=0,y=0;;p++){f.setFrame(p,m,x.r,x.g,x.b);let g=h[p+1];if(!g){f.shrink(y);break}let w=k(g,"time",0),b=L.fromString(g.color),v=u.curve;v&&(y=W(v,f,y,p,0,m,w,x.r,b.r,1),y=W(v,f,y,p,1,m,w,x.g,b.g,1),y=W(v,f,y,p,2,m,w,x.b,b.b,1)),m=w,x=b,u=g}r.push(f)}else if(n=="alpha")r.push(ft(h,new le(d,d,o),0,1));else if(n=="rgba2"){let f=new oe(d,d*7,o),u=h[0],m=k(u,"time",0),x=L.fromString(u.light),p=L.fromString(u.dark);for(let y=0,g=0;;y++){f.setFrame(y,m,x.r,x.g,x.b,x.a,p.r,p.g,p.b);let w=h[y+1];if(!w){f.shrink(g);break}let b=k(w,"time",0),v=L.fromString(w.light),A=L.fromString(w.dark),S=u.curve;S&&(g=W(S,f,g,y,0,m,b,x.r,v.r,1),g=W(S,f,g,y,1,m,b,x.g,v.g,1),g=W(S,f,g,y,2,m,b,x.b,v.b,1),g=W(S,f,g,y,3,m,b,x.a,v.a,1),g=W(S,f,g,y,4,m,b,p.r,A.r,1),g=W(S,f,g,y,5,m,b,p.g,A.g,1),g=W(S,f,g,y,6,m,b,p.b,A.b,1)),m=b,x=v,p=A,u=w}r.push(f)}else if(n=="rgb2"){let f=new he(d,d*6,o),u=h[0],m=k(u,"time",0),x=L.fromString(u.light),p=L.fromString(u.dark);for(let y=0,g=0;;y++){f.setFrame(y,m,x.r,x.g,x.b,p.r,p.g,p.b);let w=h[y+1];if(!w){f.shrink(g);break}let b=k(w,"time",0),v=L.fromString(w.light),A=L.fromString(w.dark),S=u.curve;S&&(g=W(S,f,g,y,0,m,b,x.r,v.r,1),g=W(S,f,g,y,1,m,b,x.g,v.g,1),g=W(S,f,g,y,2,m,b,x.b,v.b,1),g=W(S,f,g,y,3,m,b,p.r,A.r,1),g=W(S,f,g,y,4,m,b,p.g,A.g,1),g=W(S,f,g,y,5,m,b,p.b,A.b,1)),m=b,x=v,p=A,u=w}r.push(f)}}}if(t.bones)for(let l in t.bones){let i=t.bones[l],o=e.findBone(l).index;for(let n in i){let h=i[n],d=h.length;if(d!=0){if(n==="rotate")r.push(ft(h,new Bt(d,d,o),0,1));else if(n==="translate"){let f=new Jt(d,d<<1,o);r.push(Le(h,f,"x","y",0,a))}else if(n==="translatex"){let f=new Qt(d,d,o);r.push(ft(h,f,0,a))}else if(n==="translatey"){let f=new Zt(d,d,o);r.push(ft(h,f,0,a))}else if(n==="scale"){let f=new Kt(d,d<<1,o);r.push(Le(h,f,"x","y",1,1))}else if(n==="scalex"){let f=new te(d,d,o);r.push(ft(h,f,1,1))}else if(n==="scaley"){let f=new ee(d,d,o);r.push(ft(h,f,1,1))}else if(n==="shear"){let f=new se(d,d<<1,o);r.push(Le(h,f,"x","y",0,1))}else if(n==="shearx"){let f=new ie(d,d,o);r.push(ft(h,f,0,1))}else if(n==="sheary"){let f=new re(d,d,o);r.push(ft(h,f,0,1))}}}}if(t.ik)for(let l in t.ik){let i=t.ik[l],o=i[0];if(!o)continue;let n=e.findIkConstraint(l),h=e.ikConstraints.indexOf(n),d=new de(i.length,i.length<<1,h),f=k(o,"time",0),u=k(o,"mix",1),m=k(o,"softness",0)*a;for(let x=0,p=0;;x++){d.setFrame(x,f,u,m,k(o,"bendPositive",!0)?1:-1,k(o,"compress",!1),k(o,"stretch",!1));let y=i[x+1];if(!y){d.shrink(p);break}let g=k(y,"time",0),w=k(y,"mix",1),b=k(y,"softness",0)*a,v=o.curve;v&&(p=W(v,d,p,x,0,f,g,u,w,1),p=W(v,d,p,x,1,f,g,m,b,a)),f=g,u=w,m=b,o=y}r.push(d)}if(t.transform)for(let l in t.transform){let i=t.transform[l],o=i[0];if(!o)continue;let n=e.findTransformConstraint(l),h=e.transformConstraints.indexOf(n),d=new fe(i.length,i.length*6,h),f=k(o,"time",0),u=k(o,"mixRotate",1),m=k(o,"mixX",1),x=k(o,"mixY",m),p=k(o,"mixScaleX",1),y=k(o,"mixScaleY",p),g=k(o,"mixShearY",1);for(let w=0,b=0;;w++){d.setFrame(w,f,u,m,x,p,y,g);let v=i[w+1];if(!v){d.shrink(b);break}let A=k(v,"time",0),S=k(v,"mixRotate",1),I=k(v,"mixX",1),Y=k(v,"mixY",I),F=k(v,"mixScaleX",1),P=k(v,"mixScaleY",F),R=k(v,"mixShearY",1),M=o.curve;M&&(b=W(M,d,b,w,0,f,A,u,S,1),b=W(M,d,b,w,1,f,A,m,I,1),b=W(M,d,b,w,2,f,A,x,Y,1),b=W(M,d,b,w,3,f,A,p,F,1),b=W(M,d,b,w,4,f,A,y,P,1),b=W(M,d,b,w,5,f,A,g,R,1)),f=A,u=S,m=I,x=Y,p=F,y=P,p=F,o=v}r.push(d)}if(t.path)for(let l in t.path){let i=t.path[l],o=e.findPathConstraint(l),n=e.pathConstraints.indexOf(o);for(let h in i){let d=i[h],f=d[0];if(!f)continue;let u=d.length;if(h==="position"){let m=new ue(u,u,n);r.push(ft(d,m,0,o.positionMode==dt.Fixed?a:1))}else if(h==="spacing"){let m=new me(u,u,n);r.push(ft(d,m,0,o.spacingMode==Q.Length||o.spacingMode==Q.Fixed?a:1))}else if(h==="mix"){let m=new ge(u,u*3,n),x=k(f,"time",0),p=k(f,"mixRotate",1),y=k(f,"mixX",1),g=k(f,"mixY",y);for(let w=0,b=0;;w++){m.setFrame(w,x,p,y,g);let v=d[w+1];if(!v){m.shrink(b);break}let A=k(v,"time",0),S=k(v,"mixRotate",1),I=k(v,"mixX",1),Y=k(v,"mixY",I),F=f.curve;F&&(b=W(F,m,b,w,0,x,A,p,S,1),b=W(F,m,b,w,1,x,A,y,I,1),b=W(F,m,b,w,2,x,A,g,Y,1)),x=A,p=S,y=I,g=Y,f=v}r.push(m)}}}if(t.deform)for(let l in t.deform){let i=t.deform[l],o=e.findSkin(l);for(let n in i){let h=i[n],d=e.findSlot(n).index;for(let f in h){let u=h[f],m=u[0];if(!m)continue;let x=o.getAttachment(d,f),p=x.bones,y=x.vertices,g=p?y.length/3*2:y.length,w=new ce(u.length,u.length,d,x),b=k(m,"time",0);for(let v=0,A=0;;v++){let S,I=k(m,"vertices",null);if(!I)S=p?B.newFloatArray(g):y;else{S=B.newFloatArray(g);let R=k(m,"offset",0);if(B.arrayCopy(I,0,S,R,I.length),a!=1)for(let M=R,C=M+I.length;M<C;M++)S[M]*=a;if(!p)for(let M=0;M<g;M++)S[M]+=y[M]}w.setFrame(v,b,S);let Y=u[v+1];if(!Y){w.shrink(A);break}let F=k(Y,"time",0),P=m.curve;P&&(A=W(P,w,A,v,0,b,F,0,1,1)),b=F,m=Y}r.push(w)}}}if(t.drawOrder){let l=new vt(t.drawOrder.length),i=e.slots.length,o=0;for(let n=0;n<t.drawOrder.length;n++,o++){let h=t.drawOrder[n],d=null,f=k(h,"offsets",null);if(f){d=B.newArray(i,-1);let u=B.newArray(i-f.length,0),m=0,x=0;for(let p=0;p<f.length;p++){let y=f[p],g=e.findSlot(y.slot).index;for(;m!=g;)u[x++]=m++;d[m+y.offset]=m++}for(;m<i;)u[x++]=m++;for(let p=i-1;p>=0;p--)d[p]==-1&&(d[p]=u[--x])}l.setFrame(o,k(h,"time",0),d)}r.push(l)}if(t.events){let l=new Pt(t.events.length),i=0;for(let o=0;o<t.events.length;o++,i++){let n=t.events[o],h=e.findEvent(n.name),d=new Ie(B.toSinglePrecision(k(n,"time",0)),h);d.intValue=k(n,"int",h.intValue),d.floatValue=k(n,"float",h.floatValue),d.stringValue=k(n,"string",h.stringValue),d.data.audioPath&&(d.volume=k(n,"volume",1),d.balance=k(n,"balance",0)),l.setFrame(i,d)}r.push(l)}let c=0;for(let l=0,i=r.length;l<i;l++)c=Math.max(c,r[l].getDuration());e.animations.push(new Lt(s,r,c))}},Ks=class{constructor(t,s,e,a,r){this.mesh=t,this.skin=s,this.slotIndex=e,this.parent=a,this.inheritDeform=r}};function ft(t,s,e,a){let r=t[0],c=k(r,"time",0),l=k(r,"value",e)*a,i=0;for(let o=0;;o++){s.setFrame(o,c,l);let n=t[o+1];if(!n)return s.shrink(i),s;let h=k(n,"time",0),d=k(n,"value",e)*a;r.curve&&(i=W(r.curve,s,i,o,0,c,h,l,d,a)),c=h,l=d,r=n}}function Le(t,s,e,a,r,c){let l=t[0],i=k(l,"time",0),o=k(l,e,r)*c,n=k(l,a,r)*c,h=0;for(let d=0;;d++){s.setFrame(d,i,o,n);let f=t[d+1];if(!f)return s.shrink(h),s;let u=k(f,"time",0),m=k(f,e,r)*c,x=k(f,a,r)*c,p=l.curve;p&&(h=W(p,s,h,d,0,i,u,o,m,c),h=W(p,s,h,d,1,i,u,n,x,c)),i=u,o=m,n=x,l=f}}function W(t,s,e,a,r,c,l,i,o,n){if(t=="stepped")return s.setStepped(a),e;let h=r<<2,d=t[h],f=t[h+1]*n,u=t[h+2],m=t[h+3]*n;return s.setBezier(e,a,r,c,i,d,f,u,m,l,o),e+1}function k(t,s,e){return t[s]!==void 0?t[s]:e}(()=>{typeof Math.fround=="undefined"&&(Math.fround=function(t){return function(s){return t[0]=s,t[0]}}(new Float32Array(1)))})();var ti=class{constructor(t,s){this.jitterX=0,this.jitterY=0,this.jitterX=t,this.jitterY=s}begin(t){}transform(t,s,e,a){t.x+=X.randomTriangular(-this.jitterX,this.jitterY),t.y+=X.randomTriangular(-this.jitterX,this.jitterY)}end(){}},hs=class{constructor(t){this.centerX=0,this.centerY=0,this.radius=0,this.angle=0,this.worldX=0,this.worldY=0,this.radius=t}begin(t){this.worldX=t.x+this.centerX,this.worldY=t.y+this.centerY}transform(t,s,e,a){let r=this.angle*X.degreesToRadians,c=t.x-this.worldX,l=t.y-this.worldY,i=Math.sqrt(c*c+l*l);if(i<this.radius){let o=hs.interpolation.apply(0,r,(this.radius-i)/this.radius),n=Math.cos(o),h=Math.sin(o);t.x=n*c-h*l+this.worldX,t.y=h*c+n*l+this.worldY}}end(){}},cs=hs;cs.interpolation=new _e(2);var ds=class extends Se{constructor(t){super(t)}setFilters(t,s){}setWraps(t,s){}dispose(){}},ei=class extends is{constructor(t="",s=null){super(e=>new ds(e),t,s)}},_t=class{constructor(t){this.triangleRendering=!1,this.debugRendering=!1,this.vertices=B.newFloatArray(8*1024),this.tempColor=new L,this.ctx=t}draw(t){this.triangleRendering?this.drawTriangles(t):this.drawImages(t)}drawImages(t){let s=this.ctx,e=this.tempColor,a=t.color,r=t.drawOrder;this.debugRendering&&(s.strokeStyle="green");for(let c=0,l=r.length;c<l;c++){let i=r[c],o=i.bone;if(!o.active)continue;let n=i.getAttachment();if(!(n instanceof E))continue;let h=n.region,d=h.page.texture.getImage(),f=i.color,u=n.color;e.set(a.r*f.r*u.r,a.g*f.g*u.g,a.b*f.b*u.b,a.a*f.a*u.a),s.save(),s.transform(o.a,o.c,o.b,o.d,o.worldX,o.worldY),s.translate(n.offset[0],n.offset[1]),s.rotate(n.rotation*Math.PI/180);let m=n.width/h.originalWidth;s.scale(m*n.scaleX,m*n.scaleY);let x=h.width,p=h.height;if(s.translate(x/2,p/2),n.region.degrees==90){let y=x;x=p,p=y,s.rotate(-Math.PI/2)}s.scale(1,-1),s.translate(-x/2,-p/2),s.globalAlpha=e.a,s.drawImage(d,h.x,h.y,x,p,0,0,x,p),this.debugRendering&&s.strokeRect(0,0,x,p),s.restore()}}drawTriangles(t){let s=this.ctx,e=this.tempColor,a=t.color,r=t.drawOrder,c=null,l=this.vertices,i=null;for(let n=0,h=r.length;n<h;n++){let d=r[n],f=d.getAttachment(),u,m;if(f instanceof E){let x=f;l=this.computeRegionVertices(d,x,!1),i=_t.QUAD_TRIANGLES,m=x.region,u=m.page.texture.getImage()}else if(f instanceof kt){let x=f;l=this.computeMeshVertices(d,x,!1),i=x.triangles,u=x.region.renderObject.page.texture.getImage()}else continue;if(u){d.data.blendMode!=c&&(c=d.data.blendMode);let x=d.color,p=f.color;e.set(a.r*x.r*p.r,a.g*x.g*p.g,a.b*x.b*p.b,a.a*x.a*p.a),s.globalAlpha=e.a;for(var o=0;o<i.length;o+=3){let y=i[o]*8,g=i[o+1]*8,w=i[o+2]*8,b=l[y],v=l[y+1],A=l[y+6],S=l[y+7],I=l[g],Y=l[g+1],F=l[g+6],P=l[g+7],R=l[w],M=l[w+1],C=l[w+6],T=l[w+7];this.drawTriangle(u,b,v,A,S,I,Y,F,P,R,M,C,T),this.debugRendering&&(s.strokeStyle="green",s.beginPath(),s.moveTo(b,v),s.lineTo(I,Y),s.lineTo(R,M),s.lineTo(b,v),s.stroke())}}}this.ctx.globalAlpha=1}drawTriangle(t,s,e,a,r,c,l,i,o,n,h,d,f){let u=this.ctx;a*=t.width,r*=t.height,i*=t.width,o*=t.height,d*=t.width,f*=t.height,u.beginPath(),u.moveTo(s,e),u.lineTo(c,l),u.lineTo(n,h),u.closePath(),c-=s,l-=e,n-=s,h-=e,i-=a,o-=r,d-=a,f-=r;var m=1/(i*f-d*o),x=(f*c-o*n)*m,p=(f*l-o*h)*m,y=(i*n-d*c)*m,g=(i*h-d*l)*m,w=s-x*a-y*r,b=e-p*a-g*r;u.save(),u.transform(x,p,y,g,w,b),u.clip(),u.drawImage(t,0,0),u.restore()}computeRegionVertices(t,s,e){let a=t.bone.skeleton.color,r=t.color,c=s.color,l=a.a*r.a*c.a,i=e?l:1,o=this.tempColor;o.set(a.r*r.r*c.r*i,a.g*r.g*c.g*i,a.b*r.b*c.b*i,l),s.computeWorldVertices(t.bone,this.vertices,0,_t.VERTEX_SIZE);let n=this.vertices,h=s.uvs;return n[E.C1R]=o.r,n[E.C1G]=o.g,n[E.C1B]=o.b,n[E.C1A]=o.a,n[E.U1]=h[0],n[E.V1]=h[1],n[E.C2R]=o.r,n[E.C2G]=o.g,n[E.C2B]=o.b,n[E.C2A]=o.a,n[E.U2]=h[2],n[E.V2]=h[3],n[E.C3R]=o.r,n[E.C3G]=o.g,n[E.C3B]=o.b,n[E.C3A]=o.a,n[E.U3]=h[4],n[E.V3]=h[5],n[E.C4R]=o.r,n[E.C4G]=o.g,n[E.C4B]=o.b,n[E.C4A]=o.a,n[E.U4]=h[6],n[E.V4]=h[7],n}computeMeshVertices(t,s,e){let a=t.bone.skeleton.color,r=t.color,c=s.color,l=a.a*r.a*c.a,i=e?l:1,o=this.tempColor;o.set(a.r*r.r*c.r*i,a.g*r.g*c.g*i,a.b*r.b*c.b*i,l);let n=s.worldVerticesLength/2,h=this.vertices;h.length<s.worldVerticesLength&&(this.vertices=h=B.newFloatArray(s.worldVerticesLength)),s.computeWorldVertices(t,0,s.worldVerticesLength,h,0,_t.VERTEX_SIZE);let d=s.uvs;for(let f=0,u=0,m=2;f<n;f++)h[m++]=o.r,h[m++]=o.g,h[m++]=o.b,h[m++]=o.a,h[m++]=d[u++],h[m++]=d[u++],m+=2;return h}},De=_t;return De.QUAD_TRIANGLES=[0,1,2,2,3,0],De.VERTEX_SIZE=2+2+4,We})();
|
|
2
|
+
`+e:""))}remove(t){t=this.pathPrefix+t;let s=this.assets[t];return s.dispose&&s.dispose(),delete this.assets[t],s}removeAll(){for(let t in this.assets){let s=this.assets[t];s.dispose&&s.dispose()}this.assets={}}isLoadingComplete(){return this.toLoad==0}getToLoad(){return this.toLoad}getLoaded(){return this.loaded}dispose(){this.removeAll()}hasErrors(){return Object.keys(this.errors).length>0}getErrors(){return this.errors}},rs=class{constructor(){this.callbacks={},this.rawDataUris={}}dataUriToString(t){if(!t.startsWith("data:"))throw new Error("Not a data URI.");let s=t.indexOf("base64,");return s!=-1?(s+="base64,".length,atob(t.substr(s))):t.substr(t.indexOf(",")+1)}base64ToUint8Array(t){for(var s=window.atob(t),e=s.length,a=new Uint8Array(e),r=0;r<e;r++)a[r]=s.charCodeAt(r);return a}dataUriToUint8Array(t){if(!t.startsWith("data:"))throw new Error("Not a data URI.");let s=t.indexOf("base64,");if(s==-1)throw new Error("Not a binary data URI.");return s+="base64,".length,this.base64ToUint8Array(t.substr(s))}downloadText(t,s,e){if(this.start(t,s,e))return;if(this.rawDataUris[t]){try{let c=this.rawDataUris[t];this.finish(t,200,this.dataUriToString(c))}catch(c){this.finish(t,400,JSON.stringify(c))}return}let a=new XMLHttpRequest;a.overrideMimeType("text/html"),a.open("GET",t,!0);let r=()=>{this.finish(t,a.status,a.responseText)};a.onload=r,a.onerror=r,a.send()}downloadJson(t,s,e){this.downloadText(t,a=>{s(JSON.parse(a))},e)}downloadBinary(t,s,e){if(this.start(t,s,e))return;if(this.rawDataUris[t]){try{let c=this.rawDataUris[t];this.finish(t,200,this.dataUriToUint8Array(c))}catch(c){this.finish(t,400,JSON.stringify(c))}return}let a=new XMLHttpRequest;a.open("GET",t,!0),a.responseType="arraybuffer";let r=()=>{this.finish(t,a.status,a.response)};a.onload=()=>{a.status==200||a.status==0?this.finish(t,200,new Uint8Array(a.response)):r()},a.onerror=r,a.send()}start(t,s,e){let a=this.callbacks[t];try{if(a)return!0;this.callbacks[t]=a=[]}finally{a.push(s,e)}}finish(t,s,e){let a=this.callbacks[t];delete this.callbacks[t];let r=s==200||s==0?[e]:[s,e];for(let c=r.length-1,l=a.length;c<l;c+=2)a[c].apply(null,r)}},Ie=class{constructor(t,s){if(this.data=null,this.intValue=0,this.floatValue=0,this.stringValue=null,this.time=0,this.volume=0,this.balance=0,!s)throw new Error("data cannot be null.");this.time=t,this.data=s}},Te=class{constructor(t){this.name=null,this.intValue=0,this.floatValue=0,this.stringValue=null,this.audioPath=null,this.volume=0,this.balance=0,this.name=t}},as=class{constructor(t,s){if(this.data=null,this.bones=null,this.target=null,this.bendDirection=0,this.compress=!1,this.stretch=!1,this.mix=1,this.softness=0,this.active=!1,!t)throw new Error("data cannot be null.");if(!s)throw new Error("skeleton cannot be null.");this.data=t,this.mix=t.mix,this.softness=t.softness,this.bendDirection=t.bendDirection,this.compress=t.compress,this.stretch=t.stretch,this.bones=new Array;for(let e=0;e<t.bones.length;e++)this.bones.push(s.findBone(t.bones[e].name));this.target=s.findBone(t.target.name)}isActive(){return this.active}update(){if(this.mix==0)return;let t=this.target,s=this.bones;switch(s.length){case 1:this.apply1(s[0],t.worldX,t.worldY,this.compress,this.stretch,this.data.uniform,this.mix);break;case 2:this.apply2(s[0],s[1],t.worldX,t.worldY,this.bendDirection,this.stretch,this.data.uniform,this.softness,this.mix);break}}apply1(t,s,e,a,r,c,l){let i=t.parent,o=i.a,n=i.b,h=i.c,d=i.d,f=-t.ashearX-t.arotation,u=0,m=0;switch(t.data.transformMode){case et.OnlyTranslation:u=s-t.worldX,m=e-t.worldY;break;case et.NoRotationOrReflection:let y=Math.abs(o*d-n*h)/(o*o+h*h),g=o/t.skeleton.scaleX,w=h/t.skeleton.scaleY;n=-w*y*t.skeleton.scaleX,d=g*y*t.skeleton.scaleY,f+=Math.atan2(w,g)*X.radDeg;default:let b=s-i.worldX,v=e-i.worldY,A=o*d-n*h;u=(b*d-v*n)/A-t.ax,m=(v*o-b*h)/A-t.ay}f+=Math.atan2(m,u)*X.radDeg,t.ascaleX<0&&(f+=180),f>180?f-=360:f<-180&&(f+=360);let x=t.ascaleX,p=t.ascaleY;if(a||r){switch(t.data.transformMode){case et.NoScale:case et.NoScaleOrReflection:u=s-t.worldX,m=e-t.worldY}let y=t.data.length*x,g=Math.sqrt(u*u+m*m);if(a&&g<y||r&&g>y&&y>1e-4){let w=(g/y-1)*l+1;x*=w,c&&(p*=w)}}t.updateWorldTransformWith(t.ax,t.ay,t.arotation+f*l,x,p,t.ashearX,t.ashearY)}apply2(t,s,e,a,r,c,l,i,o){let n=t.ax,h=t.ay,d=t.ascaleX,f=t.ascaleY,u=d,m=f,x=s.ascaleX,p=0,y=0,g=0;d<0?(d=-d,p=180,g=-1):(p=0,g=1),f<0&&(f=-f,g=-g),x<0?(x=-x,y=180):y=0;let w=s.ax,b=0,v=0,A=0,S=t.a,I=t.b,Y=t.c,F=t.d,P=Math.abs(d-f)<=1e-4;!P||c?(b=0,v=S*w+t.worldX,A=Y*w+t.worldY):(b=s.ay,v=S*w+I*b+t.worldX,A=Y*w+F*b+t.worldY);let R=t.parent;S=R.a,I=R.b,Y=R.c,F=R.d;let M=1/(S*F-I*Y),C=v-R.worldX,T=A-R.worldY,O=(C*F-T*I)*M-n,z=(T*S-C*Y)*M-h,V=Math.sqrt(O*O+z*z),q=s.data.length*x,j,H;if(V<1e-4){this.apply1(t,e,a,!1,c,!1,o),s.updateWorldTransformWith(w,b,0,s.ascaleX,s.ascaleY,s.ashearX,s.ashearY);return}C=e-R.worldX,T=a-R.worldY;let N=(C*F-T*I)*M-n,D=(T*S-C*Y)*M-h,G=N*N+D*D;if(i!=0){i*=d*(x+1)*.5;let Z=Math.sqrt(G),it=Z-V-q*d+i;if(it>0){let rt=Math.min(1,it/(i*2))-1;rt=(it-i*(1-rt*rt))/Z,N-=rt*N,D-=rt*D,G=N*N+D*D}}t:if(P){q*=d;let Z=(G-V*V-q*q)/(2*V*q);Z<-1?(Z=-1,H=Math.PI*r):Z>1?(Z=1,H=0,c&&(S=(Math.sqrt(G)/(V+q)-1)*o+1,u*=S,l&&(m*=S))):H=Math.acos(Z)*r,S=V+q*Z,I=q*Math.sin(H),j=Math.atan2(D*S-N*I,N*S+D*I)}else{S=d*q,I=f*q;let Z=S*S,it=I*I,rt=Math.atan2(D,N);Y=it*V*V+Z*G-Z*it;let wt=-2*it*V,Xt=it-Z;if(F=wt*wt-4*Xt*Y,F>=0){let Mt=Math.sqrt(F);wt<0&&(Mt=-Mt),Mt=-(wt+Mt)*.5;let gs=Mt/Xt,xs=Y/Mt,Ft=Math.abs(gs)<Math.abs(xs)?gs:xs;if(Ft*Ft<=G){T=Math.sqrt(G-Ft*Ft)*r,j=rt-Math.atan2(T,Ft),H=Math.atan2(T/f,(Ft-V)/d);break t}}let Et=X.PI,Ht=V-S,Ne=Ht*Ht,fs=0,us=0,Gt=V+S,Oe=Gt*Gt,ms=0;Y=-S*V/(Z-it),Y>=-1&&Y<=1&&(Y=Math.acos(Y),C=S*Math.cos(Y)+V,T=I*Math.sin(Y),F=C*C+T*T,F<Ne&&(Et=Y,Ne=F,Ht=C,fs=T),F>Oe&&(us=Y,Oe=F,Gt=C,ms=T)),G<=(Ne+Oe)*.5?(j=rt-Math.atan2(fs*r,Ht),H=Et*r):(j=rt-Math.atan2(ms*r,Gt),H=us*r)}let K=Math.atan2(b,w)*g,ht=t.arotation;j=(j-K)*X.radDeg+p-ht,j>180?j-=360:j<-180&&(j+=360),t.updateWorldTransformWith(n,h,ht+j*o,u,m,0,0),ht=s.arotation,H=((H+K)*X.radDeg-s.ashearX)*g+y-ht,H>180?H-=360:H<-180&&(H+=360),s.updateWorldTransformWith(w,b,ht+H*o,s.ascaleX,s.ascaleY,s.ashearX,s.ashearY)}},Xe=class extends Wt{constructor(t){super(t,0,!1);this.bones=new Array,this.target=null,this.bendDirection=1,this.compress=!1,this.stretch=!1,this.uniform=!1,this.mix=1,this.softness=0}},Me=class extends Wt{constructor(t){super(t,0,!1);this.bones=new Array,this.target=null,this.positionMode=null,this.spacingMode=null,this.rotateMode=null,this.offsetRotation=0,this.position=0,this.spacing=0,this.mixRotate=0,this.mixX=0,this.mixY=0}},dt;(function(t){t[t.Fixed=0]="Fixed",t[t.Percent=1]="Percent"})(dt||(dt={}));var Q;(function(t){t[t.Length=0]="Length",t[t.Fixed=1]="Fixed",t[t.Percent=2]="Percent",t[t.Proportional=3]="Proportional"})(Q||(Q={}));var Ct;(function(t){t[t.Tangent=0]="Tangent",t[t.Chain=1]="Chain",t[t.ChainScale=2]="ChainScale"})(Ct||(Ct={}));var gt=class{constructor(t,s){if(this.data=null,this.bones=null,this.target=null,this.position=0,this.spacing=0,this.mixRotate=0,this.mixX=0,this.mixY=0,this.spaces=new Array,this.positions=new Array,this.world=new Array,this.curves=new Array,this.lengths=new Array,this.segments=new Array,this.active=!1,!t)throw new Error("data cannot be null.");if(!s)throw new Error("skeleton cannot be null.");this.data=t,this.bones=new Array;for(let e=0,a=t.bones.length;e<a;e++)this.bones.push(s.findBone(t.bones[e].name));this.target=s.findSlot(t.target.name),this.position=t.position,this.spacing=t.spacing,this.mixRotate=t.mixRotate,this.mixX=t.mixX,this.mixY=t.mixY}isActive(){return this.active}update(){let t=this.target.getAttachment();if(!(t instanceof It))return;let s=this.mixRotate,e=this.mixX,a=this.mixY;if(s==0&&e==0&&a==0)return;let r=this.data,c=r.rotateMode==Ct.Tangent,l=r.rotateMode==Ct.ChainScale,i=this.bones,o=i.length,n=c?o:o+1,h=B.setArraySize(this.spaces,n),d=l?this.lengths=B.setArraySize(this.lengths,o):null,f=this.spacing;switch(r.spacingMode){case Q.Percent:if(l)for(let b=0,v=n-1;b<v;b++){let A=i[b],S=A.data.length;if(S<gt.epsilon)d[b]=0;else{let I=S*A.a,Y=S*A.c;d[b]=Math.sqrt(I*I+Y*Y)}}B.arrayFill(h,1,n,f);break;case Q.Proportional:let g=0;for(let b=0,v=n-1;b<v;){let A=i[b],S=A.data.length;if(S<gt.epsilon)l&&(d[b]=0),h[++b]=f;else{let I=S*A.a,Y=S*A.c,F=Math.sqrt(I*I+Y*Y);l&&(d[b]=F),h[++b]=F,g+=F}}if(g>0){g=n/g*f;for(let b=1;b<n;b++)h[b]*=g}break;default:let w=r.spacingMode==Q.Length;for(let b=0,v=n-1;b<v;){let A=i[b],S=A.data.length;if(S<gt.epsilon)l&&(d[b]=0),h[++b]=f;else{let I=S*A.a,Y=S*A.c,F=Math.sqrt(I*I+Y*Y);l&&(d[b]=F),h[++b]=(w?S+f:f)*F/S}}}let u=this.computeWorldPositions(t,n,c),m=u[0],x=u[1],p=r.offsetRotation,y=!1;if(p==0)y=r.rotateMode==Ct.Chain;else{y=!1;let g=this.target.bone;p*=g.a*g.d-g.b*g.c>0?X.degRad:-X.degRad}for(let g=0,w=3;g<o;g++,w+=3){let b=i[g];b.worldX+=(m-b.worldX)*e,b.worldY+=(x-b.worldY)*a;let v=u[w],A=u[w+1],S=v-m,I=A-x;if(l){let Y=d[g];if(Y!=0){let F=(Math.sqrt(S*S+I*I)/Y-1)*s+1;b.a*=F,b.c*=F}}if(m=v,x=A,s>0){let Y=b.a,F=b.b,P=b.c,R=b.d,M=0,C=0,T=0;if(c?M=u[w-1]:h[g+1]==0?M=u[w+2]:M=Math.atan2(I,S),M-=Math.atan2(P,Y),y){C=Math.cos(M),T=Math.sin(M);let O=b.data.length;m+=(O*(C*Y-T*P)-S)*s,x+=(O*(T*Y+C*P)-I)*s}else M+=p;M>X.PI?M-=X.PI2:M<-X.PI&&(M+=X.PI2),M*=s,C=Math.cos(M),T=Math.sin(M),b.a=C*Y-T*P,b.b=C*F-T*R,b.c=T*Y+C*P,b.d=T*F+C*R}b.updateAppliedTransform()}}computeWorldPositions(t,s,e){let a=this.target,r=this.position,c=this.spaces,l=B.setArraySize(this.positions,s*3+2),i=null,o=t.closed,n=t.worldVerticesLength,h=n/6,d=gt.NONE;if(!t.constantSpeed){let z=t.lengths;h-=o?1:2;let V=z[h];this.data.positionMode==dt.Percent&&(r*=V);let q;switch(this.data.spacingMode){case Q.Percent:q=V;break;case Q.Proportional:q=V/s;break;default:q=1}i=B.setArraySize(this.world,8);for(let j=0,H=0,N=0;j<s;j++,H+=3){let D=c[j]*q;r+=D;let G=r;if(o)G%=V,G<0&&(G+=V),N=0;else if(G<0){d!=gt.BEFORE&&(d=gt.BEFORE,t.computeWorldVertices(a,2,4,i,0,2)),this.addBeforePosition(G,i,0,l,H);continue}else if(G>V){d!=gt.AFTER&&(d=gt.AFTER,t.computeWorldVertices(a,n-6,4,i,0,2)),this.addAfterPosition(G-V,i,0,l,H);continue}for(;;N++){let K=z[N];if(!(G>K)){if(N==0)G/=K;else{let ht=z[N-1];G=(G-ht)/(K-ht)}break}}N!=d&&(d=N,o&&N==h?(t.computeWorldVertices(a,n-4,4,i,0,2),t.computeWorldVertices(a,0,4,i,4,2)):t.computeWorldVertices(a,N*6+2,8,i,0,2)),this.addCurvePosition(G,i[0],i[1],i[2],i[3],i[4],i[5],i[6],i[7],l,H,e||j>0&&D==0)}return l}o?(n+=2,i=B.setArraySize(this.world,n),t.computeWorldVertices(a,2,n-4,i,0,2),t.computeWorldVertices(a,0,2,i,n-4,2),i[n-2]=i[0],i[n-1]=i[1]):(h--,n-=4,i=B.setArraySize(this.world,n),t.computeWorldVertices(a,2,n,i,0,2));let f=B.setArraySize(this.curves,h),u=0,m=i[0],x=i[1],p=0,y=0,g=0,w=0,b=0,v=0,A=0,S=0,I=0,Y=0,F=0,P=0,R=0,M=0;for(let z=0,V=2;z<h;z++,V+=6)p=i[V],y=i[V+1],g=i[V+2],w=i[V+3],b=i[V+4],v=i[V+5],A=(m-p*2+g)*.1875,S=(x-y*2+w)*.1875,I=((p-g)*3-m+b)*.09375,Y=((y-w)*3-x+v)*.09375,F=A*2+I,P=S*2+Y,R=(p-m)*.75+A+I*.16666667,M=(y-x)*.75+S+Y*.16666667,u+=Math.sqrt(R*R+M*M),R+=F,M+=P,F+=I,P+=Y,u+=Math.sqrt(R*R+M*M),R+=F,M+=P,u+=Math.sqrt(R*R+M*M),R+=F+I,M+=P+Y,u+=Math.sqrt(R*R+M*M),f[z]=u,m=b,x=v;this.data.positionMode==dt.Percent&&(r*=u);let C;switch(this.data.spacingMode){case Q.Percent:C=u;break;case Q.Proportional:C=u/s;break;default:C=1}let T=this.segments,O=0;for(let z=0,V=0,q=0,j=0;z<s;z++,V+=3){let H=c[z]*C;r+=H;let N=r;if(o)N%=u,N<0&&(N+=u),q=0;else if(N<0){this.addBeforePosition(N,i,0,l,V);continue}else if(N>u){this.addAfterPosition(N-u,i,n-4,l,V);continue}for(;;q++){let D=f[q];if(!(N>D)){if(q==0)N/=D;else{let G=f[q-1];N=(N-G)/(D-G)}break}}if(q!=d){d=q;let D=q*6;for(m=i[D],x=i[D+1],p=i[D+2],y=i[D+3],g=i[D+4],w=i[D+5],b=i[D+6],v=i[D+7],A=(m-p*2+g)*.03,S=(x-y*2+w)*.03,I=((p-g)*3-m+b)*.006,Y=((y-w)*3-x+v)*.006,F=A*2+I,P=S*2+Y,R=(p-m)*.3+A+I*.16666667,M=(y-x)*.3+S+Y*.16666667,O=Math.sqrt(R*R+M*M),T[0]=O,D=1;D<8;D++)R+=F,M+=P,F+=I,P+=Y,O+=Math.sqrt(R*R+M*M),T[D]=O;R+=F,M+=P,O+=Math.sqrt(R*R+M*M),T[8]=O,R+=F+I,M+=P+Y,O+=Math.sqrt(R*R+M*M),T[9]=O,j=0}for(N*=O;;j++){let D=T[j];if(!(N>D)){if(j==0)N/=D;else{let G=T[j-1];N=j+(N-G)/(D-G)}break}}this.addCurvePosition(N*.1,m,x,p,y,g,w,b,v,l,V,e||z>0&&H==0)}return l}addBeforePosition(t,s,e,a,r){let c=s[e],l=s[e+1],i=s[e+2]-c,o=s[e+3]-l,n=Math.atan2(o,i);a[r]=c+t*Math.cos(n),a[r+1]=l+t*Math.sin(n),a[r+2]=n}addAfterPosition(t,s,e,a,r){let c=s[e+2],l=s[e+3],i=c-s[e],o=l-s[e+1],n=Math.atan2(o,i);a[r]=c+t*Math.cos(n),a[r+1]=l+t*Math.sin(n),a[r+2]=n}addCurvePosition(t,s,e,a,r,c,l,i,o,n,h,d){if(t==0||isNaN(t)){n[h]=s,n[h+1]=e,n[h+2]=Math.atan2(r-e,a-s);return}let f=t*t,u=f*t,m=1-t,x=m*m,p=x*m,y=m*t,g=y*3,w=m*g,b=g*t,v=s*p+a*w+c*b+i*u,A=e*p+r*w+l*b+o*u;n[h]=v,n[h+1]=A,d&&(t<.001?n[h+2]=Math.atan2(r-e,a-s):n[h+2]=Math.atan2(A-(e*x+r*y*2+l*f),v-(s*x+a*y*2+c*f)))}},Tt=gt;Tt.NONE=-1,Tt.BEFORE=-2,Tt.AFTER=-3,Tt.epsilon=1e-5;var ns=class{constructor(t,s){if(this.data=null,this.bone=null,this.color=null,this.darkColor=null,this.attachment=null,this.attachmentTime=0,this.attachmentState=0,this.deform=new Array,!t)throw new Error("data cannot be null.");if(!s)throw new Error("bone cannot be null.");this.data=t,this.bone=s,this.color=new L,this.darkColor=t.darkColor?new L:null,this.setToSetupPose()}getSkeleton(){return this.bone.skeleton}getAttachment(){return this.attachment}setAttachment(t){this.attachment!=t&&((!(t instanceof ct)||!(this.attachment instanceof ct)||t.deformAttachment!=this.attachment.deformAttachment)&&(this.deform.length=0),this.attachment=t,this.attachmentTime=this.bone.skeleton.time)}setAttachmentTime(t){this.attachmentTime=this.bone.skeleton.time-t}getAttachmentTime(){return this.bone.skeleton.time-this.attachmentTime}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}},ls=class{constructor(t,s){if(this.data=null,this.bones=null,this.target=null,this.mixRotate=0,this.mixX=0,this.mixY=0,this.mixScaleX=0,this.mixScaleY=0,this.mixShearY=0,this.temp=new Vt,this.active=!1,!t)throw new Error("data cannot be null.");if(!s)throw new Error("skeleton cannot be null.");this.data=t,this.mixRotate=t.mixRotate,this.mixX=t.mixX,this.mixY=t.mixY,this.mixScaleX=t.mixScaleX,this.mixScaleY=t.mixScaleY,this.mixShearY=t.mixShearY,this.bones=new Array;for(let e=0;e<t.bones.length;e++)this.bones.push(s.findBone(t.bones[e].name));this.target=s.findBone(t.target.name)}isActive(){return this.active}update(){this.mixRotate==0&&this.mixX==0&&this.mixY==0&&this.mixScaleX==0&&this.mixScaleX==0&&this.mixShearY==0||(this.data.local?this.data.relative?this.applyRelativeLocal():this.applyAbsoluteLocal():this.data.relative?this.applyRelativeWorld():this.applyAbsoluteWorld())}applyAbsoluteWorld(){let t=this.mixRotate,s=this.mixX,e=this.mixY,a=this.mixScaleX,r=this.mixScaleY,c=this.mixShearY,l=s!=0||e!=0,i=this.target,o=i.a,n=i.b,h=i.c,d=i.d,f=o*d-n*h>0?X.degRad:-X.degRad,u=this.data.offsetRotation*f,m=this.data.offsetShearY*f,x=this.bones;for(let p=0,y=x.length;p<y;p++){let g=x[p];if(t!=0){let w=g.a,b=g.b,v=g.c,A=g.d,S=Math.atan2(h,o)-Math.atan2(v,w)+u;S>X.PI?S-=X.PI2:S<-X.PI&&(S+=X.PI2),S*=t;let I=Math.cos(S),Y=Math.sin(S);g.a=I*w-Y*v,g.b=I*b-Y*A,g.c=Y*w+I*v,g.d=Y*b+I*A}if(l){let w=this.temp;i.localToWorld(w.set(this.data.offsetX,this.data.offsetY)),g.worldX+=(w.x-g.worldX)*s,g.worldY+=(w.y-g.worldY)*e}if(a!=0){let w=Math.sqrt(g.a*g.a+g.c*g.c);w!=0&&(w=(w+(Math.sqrt(o*o+h*h)-w+this.data.offsetScaleX)*a)/w),g.a*=w,g.c*=w}if(r!=0){let w=Math.sqrt(g.b*g.b+g.d*g.d);w!=0&&(w=(w+(Math.sqrt(n*n+d*d)-w+this.data.offsetScaleY)*r)/w),g.b*=w,g.d*=w}if(c>0){let w=g.b,b=g.d,v=Math.atan2(b,w),A=Math.atan2(d,n)-Math.atan2(h,o)-(v-Math.atan2(g.c,g.a));A>X.PI?A-=X.PI2:A<-X.PI&&(A+=X.PI2),A=v+(A+m)*c;let S=Math.sqrt(w*w+b*b);g.b=Math.cos(A)*S,g.d=Math.sin(A)*S}g.updateAppliedTransform()}}applyRelativeWorld(){let t=this.mixRotate,s=this.mixX,e=this.mixY,a=this.mixScaleX,r=this.mixScaleY,c=this.mixShearY,l=s!=0||e!=0,i=this.target,o=i.a,n=i.b,h=i.c,d=i.d,f=o*d-n*h>0?X.degRad:-X.degRad,u=this.data.offsetRotation*f,m=this.data.offsetShearY*f,x=this.bones;for(let p=0,y=x.length;p<y;p++){let g=x[p];if(t!=0){let w=g.a,b=g.b,v=g.c,A=g.d,S=Math.atan2(h,o)+u;S>X.PI?S-=X.PI2:S<-X.PI&&(S+=X.PI2),S*=t;let I=Math.cos(S),Y=Math.sin(S);g.a=I*w-Y*v,g.b=I*b-Y*A,g.c=Y*w+I*v,g.d=Y*b+I*A}if(l){let w=this.temp;i.localToWorld(w.set(this.data.offsetX,this.data.offsetY)),g.worldX+=w.x*s,g.worldY+=w.y*e}if(a!=0){let w=(Math.sqrt(o*o+h*h)-1+this.data.offsetScaleX)*a+1;g.a*=w,g.c*=w}if(r!=0){let w=(Math.sqrt(n*n+d*d)-1+this.data.offsetScaleY)*r+1;g.b*=w,g.d*=w}if(c>0){let w=Math.atan2(d,n)-Math.atan2(h,o);w>X.PI?w-=X.PI2:w<-X.PI&&(w+=X.PI2);let b=g.b,v=g.d;w=Math.atan2(v,b)+(w-X.PI/2+m)*c;let A=Math.sqrt(b*b+v*v);g.b=Math.cos(w)*A,g.d=Math.sin(w)*A}g.updateAppliedTransform()}}applyAbsoluteLocal(){let t=this.mixRotate,s=this.mixX,e=this.mixY,a=this.mixScaleX,r=this.mixScaleY,c=this.mixShearY,l=this.target,i=this.bones;for(let o=0,n=i.length;o<n;o++){let h=i[o],d=h.arotation;if(t!=0){let y=l.arotation-d+this.data.offsetRotation;y-=(16384-(16384.499999999996-y/360|0))*360,d+=y*t}let f=h.ax,u=h.ay;f+=(l.ax-f+this.data.offsetX)*s,u+=(l.ay-u+this.data.offsetY)*e;let m=h.ascaleX,x=h.ascaleY;a!=0&&m!=0&&(m=(m+(l.ascaleX-m+this.data.offsetScaleX)*a)/m),r!=0&&x!=0&&(x=(x+(l.ascaleY-x+this.data.offsetScaleY)*r)/x);let p=h.ashearY;if(c!=0){let y=l.ashearY-p+this.data.offsetShearY;y-=(16384-(16384.499999999996-y/360|0))*360,p+=y*c}h.updateWorldTransformWith(f,u,d,m,x,h.ashearX,p)}}applyRelativeLocal(){let t=this.mixRotate,s=this.mixX,e=this.mixY,a=this.mixScaleX,r=this.mixScaleY,c=this.mixShearY,l=this.target,i=this.bones;for(let o=0,n=i.length;o<n;o++){let h=i[o],d=h.arotation+(l.arotation+this.data.offsetRotation)*t,f=h.ax+(l.ax+this.data.offsetX)*s,u=h.ay+(l.ay+this.data.offsetY)*e,m=h.ascaleX*((l.ascaleX-1+this.data.offsetScaleX)*a+1),x=h.ascaleY*((l.ascaleY-1+this.data.offsetScaleY)*r+1),p=h.ashearY+(l.ashearY+this.data.offsetShearY)*c;h.updateWorldTransformWith(f,u,d,m,x,h.ashearX,p)}}},Ts=class{constructor(t){if(this.data=null,this.bones=null,this.slots=null,this.drawOrder=null,this.ikConstraints=null,this.transformConstraints=null,this.pathConstraints=null,this._updateCache=new Array,this.skin=null,this.color=null,this.time=0,this.scaleX=1,this.scaleY=1,this.x=0,this.y=0,!t)throw new Error("data cannot be null.");this.data=t,this.bones=new Array;for(let s=0;s<t.bones.length;s++){let e=t.bones[s],a;if(!e.parent)a=new Ye(e,this,null);else{let r=this.bones[e.parent.index];a=new Ye(e,this,r),r.children.push(a)}this.bones.push(a)}this.slots=new Array,this.drawOrder=new Array;for(let s=0;s<t.slots.length;s++){let e=t.slots[s],a=this.bones[e.boneData.index],r=new ns(e,a);this.slots.push(r),this.drawOrder.push(r)}this.ikConstraints=new Array;for(let s=0;s<t.ikConstraints.length;s++){let e=t.ikConstraints[s];this.ikConstraints.push(new as(e,this))}this.transformConstraints=new Array;for(let s=0;s<t.transformConstraints.length;s++){let e=t.transformConstraints[s];this.transformConstraints.push(new ls(e,this))}this.pathConstraints=new Array;for(let s=0;s<t.pathConstraints.length;s++){let e=t.pathConstraints[s];this.pathConstraints.push(new Tt(e,this))}this.color=new L(1,1,1,1),this.updateCache()}updateCache(){let t=this._updateCache;t.length=0;let s=this.bones;for(let n=0,h=s.length;n<h;n++){let d=s[n];d.sorted=d.data.skinRequired,d.active=!d.sorted}if(this.skin){let n=this.skin.bones;for(let h=0,d=this.skin.bones.length;h<d;h++){let f=this.bones[n[h].index];do f.sorted=!1,f.active=!0,f=f.parent;while(f)}}let e=this.ikConstraints,a=this.transformConstraints,r=this.pathConstraints,c=e.length,l=a.length,i=r.length,o=c+l+i;t:for(let n=0;n<o;n++){for(let h=0;h<c;h++){let d=e[h];if(d.data.order==n){this.sortIkConstraint(d);continue t}}for(let h=0;h<l;h++){let d=a[h];if(d.data.order==n){this.sortTransformConstraint(d);continue t}}for(let h=0;h<i;h++){let d=r[h];if(d.data.order==n){this.sortPathConstraint(d);continue t}}}for(let n=0,h=s.length;n<h;n++)this.sortBone(s[n])}sortIkConstraint(t){if(t.active=t.target.isActive()&&(!t.data.skinRequired||this.skin&&B.contains(this.skin.constraints,t.data,!0)),!t.active)return;let s=t.target;this.sortBone(s);let e=t.bones,a=e[0];if(this.sortBone(a),e.length==1)this._updateCache.push(t),this.sortReset(a.children);else{let r=e[e.length-1];this.sortBone(r),this._updateCache.push(t),this.sortReset(a.children),r.sorted=!0}}sortPathConstraint(t){if(t.active=t.target.bone.isActive()&&(!t.data.skinRequired||this.skin&&B.contains(this.skin.constraints,t.data,!0)),!t.active)return;let s=t.target,e=s.data.index,a=s.bone;this.skin&&this.sortPathConstraintAttachment(this.skin,e,a),this.data.defaultSkin&&this.data.defaultSkin!=this.skin&&this.sortPathConstraintAttachment(this.data.defaultSkin,e,a);for(let i=0,o=this.data.skins.length;i<o;i++)this.sortPathConstraintAttachment(this.data.skins[i],e,a);let r=s.getAttachment();r instanceof It&&this.sortPathConstraintAttachmentWith(r,a);let c=t.bones,l=c.length;for(let i=0;i<l;i++)this.sortBone(c[i]);this._updateCache.push(t);for(let i=0;i<l;i++)this.sortReset(c[i].children);for(let i=0;i<l;i++)c[i].sorted=!0}sortTransformConstraint(t){if(t.active=t.target.isActive()&&(!t.data.skinRequired||this.skin&&B.contains(this.skin.constraints,t.data,!0)),!t.active)return;this.sortBone(t.target);let s=t.bones,e=s.length;if(t.data.local)for(let a=0;a<e;a++){let r=s[a];this.sortBone(r.parent),this.sortBone(r)}else for(let a=0;a<e;a++)this.sortBone(s[a]);this._updateCache.push(t);for(let a=0;a<e;a++)this.sortReset(s[a].children);for(let a=0;a<e;a++)s[a].sorted=!0}sortPathConstraintAttachment(t,s,e){let a=t.attachments[s];if(!!a)for(let r in a)this.sortPathConstraintAttachmentWith(a[r],e)}sortPathConstraintAttachmentWith(t,s){if(!(t instanceof It))return;let e=t.bones;if(!e)this.sortBone(s);else{let a=this.bones;for(let r=0,c=e.length;r<c;){let l=e[r++];for(l+=r;r<l;)this.sortBone(a[e[r++]])}}}sortBone(t){if(t.sorted)return;let s=t.parent;s&&this.sortBone(s),t.sorted=!0,this._updateCache.push(t)}sortReset(t){for(let s=0,e=t.length;s<e;s++){let a=t[s];!a.active||(a.sorted&&this.sortReset(a.children),a.sorted=!1)}}updateWorldTransform(){let t=this.bones;for(let e=0,a=t.length;e<a;e++){let r=t[e];r.ax=r.x,r.ay=r.y,r.arotation=r.rotation,r.ascaleX=r.scaleX,r.ascaleY=r.scaleY,r.ashearX=r.shearX,r.ashearY=r.shearY}let s=this._updateCache;for(let e=0,a=s.length;e<a;e++)s[e].update()}updateWorldTransformWith(t){let s=this.getRootBone(),e=t.a,a=t.b,r=t.c,c=t.d;s.worldX=e*this.x+a*this.y+t.worldX,s.worldY=r*this.x+c*this.y+t.worldY;let l=s.rotation+90+s.shearY,i=X.cosDeg(s.rotation+s.shearX)*s.scaleX,o=X.cosDeg(l)*s.scaleY,n=X.sinDeg(s.rotation+s.shearX)*s.scaleX,h=X.sinDeg(l)*s.scaleY;s.a=(e*i+a*n)*this.scaleX,s.b=(e*o+a*h)*this.scaleX,s.c=(r*i+c*n)*this.scaleY,s.d=(r*o+c*h)*this.scaleY;let d=this._updateCache;for(let f=0,u=d.length;f<u;f++){let m=d[f];m!=s&&m.update()}}setToSetupPose(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()}setBonesToSetupPose(){let t=this.bones;for(let r=0,c=t.length;r<c;r++)t[r].setToSetupPose();let s=this.ikConstraints;for(let r=0,c=s.length;r<c;r++){let l=s[r];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}let e=this.transformConstraints;for(let r=0,c=e.length;r<c;r++){let l=e[r],i=l.data;l.mixRotate=i.mixRotate,l.mixX=i.mixX,l.mixY=i.mixY,l.mixScaleX=i.mixScaleX,l.mixScaleY=i.mixScaleY,l.mixShearY=i.mixShearY}let a=this.pathConstraints;for(let r=0,c=a.length;r<c;r++){let l=a[r],i=l.data;l.position=i.position,l.spacing=i.spacing,l.mixRotate=i.mixRotate,l.mixX=i.mixX,l.mixY=i.mixY}}setSlotsToSetupPose(){let t=this.slots;B.arrayCopy(t,0,this.drawOrder,0,t.length);for(let s=0,e=t.length;s<e;s++)t[s].setToSetupPose()}getRootBone(){return this.bones.length==0?null:this.bones[0]}findBone(t){if(!t)throw new Error("boneName cannot be null.");let s=this.bones;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.data.name==t)return r}return null}findSlot(t){if(!t)throw new Error("slotName cannot be null.");let s=this.slots;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.data.name==t)return r}return null}setSkinByName(t){let s=this.data.findSkin(t);if(!s)throw new Error("Skin not found: "+t);this.setSkin(s)}setSkin(t){if(t!=this.skin){if(t)if(this.skin)t.attachAll(this,this.skin);else{let s=this.slots;for(let e=0,a=s.length;e<a;e++){let r=s[e],c=r.data.attachmentName;if(c){let l=t.getAttachment(e,c);l&&r.setAttachment(l)}}}this.skin=t,this.updateCache()}}getAttachmentByName(t,s){return this.getAttachment(this.data.findSlot(t).index,s)}getAttachment(t,s){if(!s)throw new Error("attachmentName cannot be null.");if(this.skin){let e=this.skin.getAttachment(t,s);if(e)return e}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,s):null}setAttachment(t,s){if(!t)throw new Error("slotName cannot be null.");let e=this.slots;for(let a=0,r=e.length;a<r;a++){let c=e[a];if(c.data.name==t){let l=null;if(s&&(l=this.getAttachment(a,s),!l))throw new Error("Attachment not found: "+s+", for slot: "+t);c.setAttachment(l);return}}throw new Error("Slot not found: "+t)}findIkConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.ikConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.data.name==t)return r}return null}findTransformConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.transformConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.data.name==t)return r}return null}findPathConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.pathConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.data.name==t)return r}return null}getBoundsRect(){let t=new Vt,s=new Vt;return this.getBounds(t,s),{x:t.x,y:t.y,width:s.x,height:s.y}}getBounds(t,s,e=new Array(2)){if(!t)throw new Error("offset cannot be null.");if(!s)throw new Error("size cannot be null.");let a=this.drawOrder,r=Number.POSITIVE_INFINITY,c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY;for(let o=0,n=a.length;o<n;o++){let h=a[o];if(!h.bone.active)continue;let d=0,f=null,u=h.getAttachment();if(u instanceof E)d=8,f=B.setArraySize(e,d,0),u.computeWorldVertices(h.bone,f,0,2);else if(u instanceof kt){let m=u;d=m.worldVerticesLength,f=B.setArraySize(e,d,0),m.computeWorldVertices(h,0,d,f,0,2)}if(f)for(let m=0,x=f.length;m<x;m+=2){let p=f[m],y=f[m+1];r=Math.min(r,p),c=Math.min(c,y),l=Math.max(l,p),i=Math.max(i,y)}}t.set(r,c),s.set(l-r,i-c)}update(t){this.time+=t}},Fe=class{constructor(){this.name=null,this.bones=new Array,this.slots=new Array,this.skins=new Array,this.defaultSkin=null,this.events=new Array,this.animations=new Array,this.ikConstraints=new Array,this.transformConstraints=new Array,this.pathConstraints=new Array,this.x=0,this.y=0,this.width=0,this.height=0,this.version=null,this.hash=null,this.fps=0,this.imagesPath=null,this.audioPath=null}findBone(t){if(!t)throw new Error("boneName cannot be null.");let s=this.bones;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findSlot(t){if(!t)throw new Error("slotName cannot be null.");let s=this.slots;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findSkin(t){if(!t)throw new Error("skinName cannot be null.");let s=this.skins;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findEvent(t){if(!t)throw new Error("eventDataName cannot be null.");let s=this.events;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findAnimation(t){if(!t)throw new Error("animationName cannot be null.");let s=this.animations;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findIkConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.ikConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findTransformConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.transformConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}findPathConstraint(t){if(!t)throw new Error("constraintName cannot be null.");let s=this.pathConstraints;for(let e=0,a=s.length;e<a;e++){let r=s[e];if(r.name==t)return r}return null}},Re=class{constructor(t=0,s=null,e=null){this.slotIndex=t,this.name=s,this.attachment=e}},zt=class{constructor(t){if(this.name=null,this.attachments=new Array,this.bones=Array(),this.constraints=new Array,!t)throw new Error("name cannot be null.");this.name=t}setAttachment(t,s,e){if(!e)throw new Error("attachment cannot be null.");let a=this.attachments;t>=a.length&&(a.length=t+1),a[t]||(a[t]={}),a[t][s]=e}addSkin(t){for(let a=0;a<t.bones.length;a++){let r=t.bones[a],c=!1;for(let l=0;l<this.bones.length;l++)if(this.bones[l]==r){c=!0;break}c||this.bones.push(r)}for(let a=0;a<t.constraints.length;a++){let r=t.constraints[a],c=!1;for(let l=0;l<this.constraints.length;l++)if(this.constraints[l]==r){c=!0;break}c||this.constraints.push(r)}let s=t.getAttachments();for(let a=0;a<s.length;a++){var e=s[a];this.setAttachment(e.slotIndex,e.name,e.attachment)}}copySkin(t){for(let a=0;a<t.bones.length;a++){let r=t.bones[a],c=!1;for(let l=0;l<this.bones.length;l++)if(this.bones[l]==r){c=!0;break}c||this.bones.push(r)}for(let a=0;a<t.constraints.length;a++){let r=t.constraints[a],c=!1;for(let l=0;l<this.constraints.length;l++)if(this.constraints[l]==r){c=!0;break}c||this.constraints.push(r)}let s=t.getAttachments();for(let a=0;a<s.length;a++){var e=s[a];!e.attachment||(e.attachment instanceof kt?(e.attachment=e.attachment.newLinkedMesh(),this.setAttachment(e.slotIndex,e.name,e.attachment)):(e.attachment=e.attachment.copy(),this.setAttachment(e.slotIndex,e.name,e.attachment)))}}getAttachment(t,s){let e=this.attachments[t];return e?e[s]:null}removeAttachment(t,s){let e=this.attachments[t];e&&(e[s]=null)}getAttachments(){let t=new Array;for(var s=0;s<this.attachments.length;s++){let e=this.attachments[s];if(e)for(let a in e){let r=e[a];r&&t.push(new Re(s,a,r))}}return t}getAttachmentsForSlot(t,s){let e=this.attachments[t];if(e)for(let a in e){let r=e[a];r&&s.push(new Re(t,a,r))}}clear(){this.attachments.length=0,this.bones.length=0,this.constraints.length=0}attachAll(t,s){let e=0;for(let a=0;a<t.slots.length;a++){let r=t.slots[a],c=r.getAttachment();if(c&&e<s.attachments.length){let l=s.attachments[e];for(let i in l){let o=l[i];if(c==o){let n=this.getAttachment(e,i);n&&r.setAttachment(n);break}}}e++}}},Be=class{constructor(t,s,e){if(this.index=0,this.name=null,this.boneData=null,this.color=new L(1,1,1,1),this.darkColor=null,this.attachmentName=null,this.blendMode=null,t<0)throw new Error("index must be >= 0.");if(!s)throw new Error("name cannot be null.");if(!e)throw new Error("boneData cannot be null.");this.index=t,this.name=s,this.boneData=e}},qt;(function(t){t[t.Normal=0]="Normal",t[t.Additive=1]="Additive",t[t.Multiply=2]="Multiply",t[t.Screen=3]="Screen"})(qt||(qt={}));var Pe=class extends Wt{constructor(t){super(t,0,!1);this.bones=new Array,this.target=null,this.mixRotate=0,this.mixX=0,this.mixY=0,this.mixScaleX=0,this.mixScaleY=0,this.mixShearY=0,this.offsetRotation=0,this.offsetX=0,this.offsetY=0,this.offsetScaleX=0,this.offsetScaleY=0,this.offsetShearY=0,this.relative=!1,this.local=!1}},Xs=class{constructor(t){this.scale=1,this.attachmentLoader=null,this.linkedMeshes=new Array,this.attachmentLoader=t}readSkeletonData(t){let s=this.scale,e=new Fe;e.name="";let a=new os(t),r=a.readInt32(),c=a.readInt32();e.hash=c==0&&r==0?null:c.toString(16)+r.toString(16),e.version=a.readString(),e.x=a.readFloat(),e.y=a.readFloat(),e.width=a.readFloat(),e.height=a.readFloat();let l=a.readBoolean();l&&(e.fps=a.readFloat(),e.imagesPath=a.readString(),e.audioPath=a.readString());let i=0;i=a.readInt(!0);for(let n=0;n<i;n++)a.strings.push(a.readString());i=a.readInt(!0);for(let n=0;n<i;n++){let h=a.readString(),d=n==0?null:e.bones[a.readInt(!0)],f=new Ce(n,h,d);f.rotation=a.readFloat(),f.x=a.readFloat()*s,f.y=a.readFloat()*s,f.scaleX=a.readFloat(),f.scaleY=a.readFloat(),f.shearX=a.readFloat(),f.shearY=a.readFloat(),f.length=a.readFloat()*s,f.transformMode=a.readInt(!0),f.skinRequired=a.readBoolean(),l&&L.rgba8888ToColor(f.color,a.readInt32()),e.bones.push(f)}i=a.readInt(!0);for(let n=0;n<i;n++){let h=a.readString(),d=e.bones[a.readInt(!0)],f=new Be(n,h,d);L.rgba8888ToColor(f.color,a.readInt32());let u=a.readInt32();u!=-1&&L.rgb888ToColor(f.darkColor=new L,u),f.attachmentName=a.readStringRef(),f.blendMode=a.readInt(!0),e.slots.push(f)}i=a.readInt(!0);for(let n=0,h;n<i;n++){let d=new Xe(a.readString());d.order=a.readInt(!0),d.skinRequired=a.readBoolean(),h=a.readInt(!0);for(let f=0;f<h;f++)d.bones.push(e.bones[a.readInt(!0)]);d.target=e.bones[a.readInt(!0)],d.mix=a.readFloat(),d.softness=a.readFloat()*s,d.bendDirection=a.readByte(),d.compress=a.readBoolean(),d.stretch=a.readBoolean(),d.uniform=a.readBoolean(),e.ikConstraints.push(d)}i=a.readInt(!0);for(let n=0,h;n<i;n++){let d=new Pe(a.readString());d.order=a.readInt(!0),d.skinRequired=a.readBoolean(),h=a.readInt(!0);for(let f=0;f<h;f++)d.bones.push(e.bones[a.readInt(!0)]);d.target=e.bones[a.readInt(!0)],d.local=a.readBoolean(),d.relative=a.readBoolean(),d.offsetRotation=a.readFloat(),d.offsetX=a.readFloat()*s,d.offsetY=a.readFloat()*s,d.offsetScaleX=a.readFloat(),d.offsetScaleY=a.readFloat(),d.offsetShearY=a.readFloat(),d.mixRotate=a.readFloat(),d.mixX=a.readFloat(),d.mixY=a.readFloat(),d.mixScaleX=a.readFloat(),d.mixScaleY=a.readFloat(),d.mixShearY=a.readFloat(),e.transformConstraints.push(d)}i=a.readInt(!0);for(let n=0,h;n<i;n++){let d=new Me(a.readString());d.order=a.readInt(!0),d.skinRequired=a.readBoolean(),h=a.readInt(!0);for(let f=0;f<h;f++)d.bones.push(e.bones[a.readInt(!0)]);d.target=e.slots[a.readInt(!0)],d.positionMode=a.readInt(!0),d.spacingMode=a.readInt(!0),d.rotateMode=a.readInt(!0),d.offsetRotation=a.readFloat(),d.position=a.readFloat(),d.positionMode==dt.Fixed&&(d.position*=s),d.spacing=a.readFloat(),(d.spacingMode==Q.Length||d.spacingMode==Q.Fixed)&&(d.spacing*=s),d.mixRotate=a.readFloat(),d.mixX=a.readFloat(),d.mixY=a.readFloat(),e.pathConstraints.push(d)}let o=this.readSkin(a,e,!0,l);o&&(e.defaultSkin=o,e.skins.push(o));{let n=e.skins.length;for(B.setArraySize(e.skins,i=n+a.readInt(!0));n<i;n++)e.skins[n]=this.readSkin(a,e,!1,l)}i=this.linkedMeshes.length;for(let n=0;n<i;n++){let h=this.linkedMeshes[n],f=(h.skin?e.findSkin(h.skin):e.defaultSkin).getAttachment(h.slotIndex,h.parent);h.mesh.deformAttachment=h.inheritDeform?f:h.mesh,h.mesh.setParentMesh(f),h.mesh.updateUVs()}this.linkedMeshes.length=0,i=a.readInt(!0);for(let n=0;n<i;n++){let h=new Te(a.readStringRef());h.intValue=a.readInt(!1),h.floatValue=a.readFloat(),h.stringValue=a.readString(),h.audioPath=a.readString(),h.audioPath&&(h.volume=a.readFloat(),h.balance=a.readFloat()),e.events.push(h)}i=a.readInt(!0);for(let n=0;n<i;n++)e.animations.push(this.readAnimation(a,a.readString(),e));return e}readSkin(t,s,e,a){let r=null,c=0;if(e){if(c=t.readInt(!0),c==0)return null;r=new zt("default")}else{r=new zt(t.readStringRef()),r.bones.length=t.readInt(!0);for(let l=0,i=r.bones.length;l<i;l++)r.bones[l]=s.bones[t.readInt(!0)];for(let l=0,i=t.readInt(!0);l<i;l++)r.constraints.push(s.ikConstraints[t.readInt(!0)]);for(let l=0,i=t.readInt(!0);l<i;l++)r.constraints.push(s.transformConstraints[t.readInt(!0)]);for(let l=0,i=t.readInt(!0);l<i;l++)r.constraints.push(s.pathConstraints[t.readInt(!0)]);c=t.readInt(!0)}for(let l=0;l<c;l++){let i=t.readInt(!0);for(let o=0,n=t.readInt(!0);o<n;o++){let h=t.readStringRef(),d=this.readAttachment(t,s,r,i,h,a);d&&r.setAttachment(i,h,d)}}return r}readAttachment(t,s,e,a,r,c){let l=this.scale,i=t.readStringRef();switch(i||(i=r),t.readByte()){case xt.Region:{let o=t.readStringRef(),n=t.readFloat(),h=t.readFloat(),d=t.readFloat(),f=t.readFloat(),u=t.readFloat(),m=t.readFloat(),x=t.readFloat(),p=t.readInt32();o||(o=i);let y=this.attachmentLoader.newRegionAttachment(e,i,o);return y?(y.path=o,y.x=h*l,y.y=d*l,y.scaleX=f,y.scaleY=u,y.rotation=n,y.width=m*l,y.height=x*l,L.rgba8888ToColor(y.color,p),y.updateOffset(),y):null}case xt.BoundingBox:{let o=t.readInt(!0),n=this.readVertices(t,o),h=c?t.readInt32():0,d=this.attachmentLoader.newBoundingBoxAttachment(e,i);return d?(d.worldVerticesLength=o<<1,d.vertices=n.vertices,d.bones=n.bones,c&&L.rgba8888ToColor(d.color,h),d):null}case xt.Mesh:{let o=t.readStringRef(),n=t.readInt32(),h=t.readInt(!0),d=this.readFloatArray(t,h<<1,1),f=this.readShortArray(t),u=this.readVertices(t,h),m=t.readInt(!0),x=null,p=0,y=0;c&&(x=this.readShortArray(t),p=t.readFloat(),y=t.readFloat()),o||(o=i);let g=this.attachmentLoader.newMeshAttachment(e,i,o);return g?(g.path=o,L.rgba8888ToColor(g.color,n),g.bones=u.bones,g.vertices=u.vertices,g.worldVerticesLength=h<<1,g.triangles=f,g.regionUVs=d,g.updateUVs(),g.hullLength=m<<1,c&&(g.edges=x,g.width=p*l,g.height=y*l),g):null}case xt.LinkedMesh:{let o=t.readStringRef(),n=t.readInt32(),h=t.readStringRef(),d=t.readStringRef(),f=t.readBoolean(),u=0,m=0;c&&(u=t.readFloat(),m=t.readFloat()),o||(o=i);let x=this.attachmentLoader.newMeshAttachment(e,i,o);return x?(x.path=o,L.rgba8888ToColor(x.color,n),c&&(x.width=u*l,x.height=m*l),this.linkedMeshes.push(new Ms(x,h,a,d,f)),x):null}case xt.Path:{let o=t.readBoolean(),n=t.readBoolean(),h=t.readInt(!0),d=this.readVertices(t,h),f=B.newArray(h/3,0);for(let x=0,p=f.length;x<p;x++)f[x]=t.readFloat()*l;let u=c?t.readInt32():0,m=this.attachmentLoader.newPathAttachment(e,i);return m?(m.closed=o,m.constantSpeed=n,m.worldVerticesLength=h<<1,m.vertices=d.vertices,m.bones=d.bones,m.lengths=f,c&&L.rgba8888ToColor(m.color,u),m):null}case xt.Point:{let o=t.readFloat(),n=t.readFloat(),h=t.readFloat(),d=c?t.readInt32():0,f=this.attachmentLoader.newPointAttachment(e,i);return f?(f.x=n*l,f.y=h*l,f.rotation=o,c&&L.rgba8888ToColor(f.color,d),f):null}case xt.Clipping:{let o=t.readInt(!0),n=t.readInt(!0),h=this.readVertices(t,n),d=c?t.readInt32():0,f=this.attachmentLoader.newClippingAttachment(e,i);return f?(f.endSlot=s.slots[o],f.worldVerticesLength=n<<1,f.vertices=h.vertices,f.bones=h.bones,c&&L.rgba8888ToColor(f.color,d),f):null}}return null}readVertices(t,s){let e=this.scale,a=s<<1,r=new Fs;if(!t.readBoolean())return r.vertices=this.readFloatArray(t,a,e),r;let c=new Array,l=new Array;for(let i=0;i<s;i++){let o=t.readInt(!0);l.push(o);for(let n=0;n<o;n++)l.push(t.readInt(!0)),c.push(t.readFloat()*e),c.push(t.readFloat()*e),c.push(t.readFloat())}return r.vertices=B.toFloatArray(c),r.bones=l,r}readFloatArray(t,s,e){let a=new Array(s);if(e==1)for(let r=0;r<s;r++)a[r]=t.readFloat();else for(let r=0;r<s;r++)a[r]=t.readFloat()*e;return a}readShortArray(t){let s=t.readInt(!0),e=new Array(s);for(let a=0;a<s;a++)e[a]=t.readShort();return e}readAnimation(t,s,e){t.readInt(!0);let a=new Array,r=this.scale,c=new L,l=new L;for(let h=0,d=t.readInt(!0);h<d;h++){let f=t.readInt(!0);for(let u=0,m=t.readInt(!0);u<m;u++){let x=t.readByte(),p=t.readInt(!0),y=p-1;switch(x){case Ws:{let g=new yt(p,f);for(let w=0;w<p;w++)g.setFrame(w,t.readFloat(),t.readStringRef());a.push(g);break}case zs:{let g=t.readInt(!0),w=new ae(p,g,f),b=t.readFloat(),v=t.readUnsignedByte()/255,A=t.readUnsignedByte()/255,S=t.readUnsignedByte()/255,I=t.readUnsignedByte()/255;for(let Y=0,F=0;w.setFrame(Y,b,v,A,S,I),Y!=y;Y++){let P=t.readFloat(),R=t.readUnsignedByte()/255,M=t.readUnsignedByte()/255,C=t.readUnsignedByte()/255,T=t.readUnsignedByte()/255;switch(t.readByte()){case lt:w.setStepped(Y);break;case ot:U(t,w,F++,Y,0,b,P,v,R,1),U(t,w,F++,Y,1,b,P,A,M,1),U(t,w,F++,Y,2,b,P,S,C,1),U(t,w,F++,Y,3,b,P,I,T,1)}b=P,v=R,A=M,S=C,I=T}a.push(w);break}case qs:{let g=t.readInt(!0),w=new ne(p,g,f),b=t.readFloat(),v=t.readUnsignedByte()/255,A=t.readUnsignedByte()/255,S=t.readUnsignedByte()/255;for(let I=0,Y=0;w.setFrame(I,b,v,A,S),I!=y;I++){let F=t.readFloat(),P=t.readUnsignedByte()/255,R=t.readUnsignedByte()/255,M=t.readUnsignedByte()/255;switch(t.readByte()){case lt:w.setStepped(I);break;case ot:U(t,w,Y++,I,0,b,F,v,P,1),U(t,w,Y++,I,1,b,F,A,R,1),U(t,w,Y++,I,2,b,F,S,M,1)}b=F,v=P,A=R,S=M}a.push(w);break}case _s:{let g=t.readInt(!0),w=new oe(p,g,f),b=t.readFloat(),v=t.readUnsignedByte()/255,A=t.readUnsignedByte()/255,S=t.readUnsignedByte()/255,I=t.readUnsignedByte()/255,Y=t.readUnsignedByte()/255,F=t.readUnsignedByte()/255,P=t.readUnsignedByte()/255;for(let R=0,M=0;w.setFrame(R,b,v,A,S,I,Y,F,P),R!=y;R++){let C=t.readFloat(),T=t.readUnsignedByte()/255,O=t.readUnsignedByte()/255,z=t.readUnsignedByte()/255,V=t.readUnsignedByte()/255,q=t.readUnsignedByte()/255,j=t.readUnsignedByte()/255,H=t.readUnsignedByte()/255;switch(t.readByte()){case lt:w.setStepped(R);break;case ot:U(t,w,M++,R,0,b,C,v,T,1),U(t,w,M++,R,1,b,C,A,O,1),U(t,w,M++,R,2,b,C,S,z,1),U(t,w,M++,R,3,b,C,I,V,1),U(t,w,M++,R,4,b,C,Y,q,1),U(t,w,M++,R,5,b,C,F,j,1),U(t,w,M++,R,6,b,C,P,H,1)}b=C,v=T,A=O,S=z,I=V,Y=q,F=j,P=H}a.push(w);break}case Hs:{let g=t.readInt(!0),w=new he(p,g,f),b=t.readFloat(),v=t.readUnsignedByte()/255,A=t.readUnsignedByte()/255,S=t.readUnsignedByte()/255,I=t.readUnsignedByte()/255,Y=t.readUnsignedByte()/255,F=t.readUnsignedByte()/255;for(let P=0,R=0;w.setFrame(P,b,v,A,S,I,Y,F),P!=y;P++){let M=t.readFloat(),C=t.readUnsignedByte()/255,T=t.readUnsignedByte()/255,O=t.readUnsignedByte()/255,z=t.readUnsignedByte()/255,V=t.readUnsignedByte()/255,q=t.readUnsignedByte()/255;switch(t.readByte()){case lt:w.setStepped(P);break;case ot:U(t,w,R++,P,0,b,M,v,C,1),U(t,w,R++,P,1,b,M,A,T,1),U(t,w,R++,P,2,b,M,S,O,1),U(t,w,R++,P,3,b,M,I,z,1),U(t,w,R++,P,4,b,M,Y,V,1),U(t,w,R++,P,5,b,M,F,q,1)}b=M,v=C,A=T,S=O,I=z,Y=V,F=q}a.push(w);break}case Gs:{let g=new le(p,t.readInt(!0),f),w=t.readFloat(),b=t.readUnsignedByte()/255;for(let v=0,A=0;g.setFrame(v,w,b),v!=y;v++){let S=t.readFloat(),I=t.readUnsignedByte()/255;switch(t.readByte()){case lt:g.setStepped(v);break;case ot:U(t,g,A++,v,0,w,S,b,I,1)}w=S,b=I}a.push(g);break}}}}for(let h=0,d=t.readInt(!0);h<d;h++){let f=t.readInt(!0);for(let u=0,m=t.readInt(!0);u<m;u++){let x=t.readByte(),p=t.readInt(!0),y=t.readInt(!0);switch(x){case Rs:a.push(bt(t,new Bt(p,y,f),1));break;case Bs:a.push(Ee(t,new Jt(p,y,f),r));break;case Ps:a.push(bt(t,new Qt(p,y,f),r));break;case Es:a.push(bt(t,new Zt(p,y,f),r));break;case Vs:a.push(Ee(t,new Kt(p,y,f),1));break;case Ls:a.push(bt(t,new te(p,y,f),1));break;case Ds:a.push(bt(t,new ee(p,y,f),1));break;case Ns:a.push(Ee(t,new se(p,y,f),1));break;case Os:a.push(bt(t,new ie(p,y,f),1));break;case Us:a.push(bt(t,new re(p,y,f),1))}}}for(let h=0,d=t.readInt(!0);h<d;h++){let f=t.readInt(!0),u=t.readInt(!0),m=u-1,x=new de(u,t.readInt(!0),f),p=t.readFloat(),y=t.readFloat(),g=t.readFloat()*r;for(let w=0,b=0;x.setFrame(w,p,y,g,t.readByte(),t.readBoolean(),t.readBoolean()),w!=m;w++){let v=t.readFloat(),A=t.readFloat(),S=t.readFloat()*r;switch(t.readByte()){case lt:x.setStepped(w);break;case ot:U(t,x,b++,w,0,p,v,y,A,1),U(t,x,b++,w,1,p,v,g,S,r)}p=v,y=A,g=S}a.push(x)}for(let h=0,d=t.readInt(!0);h<d;h++){let f=t.readInt(!0),u=t.readInt(!0),m=u-1,x=new fe(u,t.readInt(!0),f),p=t.readFloat(),y=t.readFloat(),g=t.readFloat(),w=t.readFloat(),b=t.readFloat(),v=t.readFloat(),A=t.readFloat();for(let S=0,I=0;x.setFrame(S,p,y,g,w,b,v,A),S!=m;S++){let Y=t.readFloat(),F=t.readFloat(),P=t.readFloat(),R=t.readFloat(),M=t.readFloat(),C=t.readFloat(),T=t.readFloat();switch(t.readByte()){case lt:x.setStepped(S);break;case ot:U(t,x,I++,S,0,p,Y,y,F,1),U(t,x,I++,S,1,p,Y,g,P,1),U(t,x,I++,S,2,p,Y,w,R,1),U(t,x,I++,S,3,p,Y,b,M,1),U(t,x,I++,S,4,p,Y,v,C,1),U(t,x,I++,S,5,p,Y,A,T,1)}p=Y,y=F,g=P,w=R,b=M,v=C,A=T}a.push(x)}for(let h=0,d=t.readInt(!0);h<d;h++){let f=t.readInt(!0),u=e.pathConstraints[f];for(let m=0,x=t.readInt(!0);m<x;m++)switch(t.readByte()){case js:a.push(bt(t,new ue(t.readInt(!0),t.readInt(!0),f),u.positionMode==dt.Fixed?r:1));break;case $s:a.push(bt(t,new me(t.readInt(!0),t.readInt(!0),f),u.spacingMode==Q.Length||u.spacingMode==Q.Fixed?r:1));break;case Js:let p=new ge(t.readInt(!0),t.readInt(!0),f),y=t.readFloat(),g=t.readFloat(),w=t.readFloat(),b=t.readFloat();for(let v=0,A=0,S=p.getFrameCount()-1;p.setFrame(v,y,g,w,b),v!=S;v++){let I=t.readFloat(),Y=t.readFloat(),F=t.readFloat(),P=t.readFloat();switch(t.readByte()){case lt:p.setStepped(v);break;case ot:U(t,p,A++,v,0,y,I,g,Y,1),U(t,p,A++,v,1,y,I,w,F,1),U(t,p,A++,v,2,y,I,b,P,1)}y=I,g=Y,w=F,b=P}a.push(p)}}for(let h=0,d=t.readInt(!0);h<d;h++){let f=e.skins[t.readInt(!0)];for(let u=0,m=t.readInt(!0);u<m;u++){let x=t.readInt(!0);for(let p=0,y=t.readInt(!0);p<y;p++){let g=t.readStringRef(),w=f.getAttachment(x,g),b=w.bones,v=w.vertices,A=b?v.length/3*2:v.length,S=t.readInt(!0),I=S-1,Y=t.readInt(!0),F=new ce(S,Y,x,w),P=t.readFloat();for(let R=0,M=0;;R++){let C,T=t.readInt(!0);if(T==0)C=b?B.newFloatArray(A):v;else{C=B.newFloatArray(A);let z=t.readInt(!0);if(T+=z,r==1)for(let V=z;V<T;V++)C[V]=t.readFloat();else for(let V=z;V<T;V++)C[V]=t.readFloat()*r;if(!b)for(let V=0,q=C.length;V<q;V++)C[V]+=v[V]}if(F.setFrame(R,P,C),R==I)break;let O=t.readFloat();switch(t.readByte()){case lt:F.setStepped(R);break;case ot:U(t,F,M++,R,0,P,O,0,1,1)}P=O}a.push(F)}}}let i=t.readInt(!0);if(i>0){let h=new vt(i),d=e.slots.length;for(let f=0;f<i;f++){let u=t.readFloat(),m=t.readInt(!0),x=B.newArray(d,0);for(let w=d-1;w>=0;w--)x[w]=-1;let p=B.newArray(d-m,0),y=0,g=0;for(let w=0;w<m;w++){let b=t.readInt(!0);for(;y!=b;)p[g++]=y++;x[y+t.readInt(!0)]=y++}for(;y<d;)p[g++]=y++;for(let w=d-1;w>=0;w--)x[w]==-1&&(x[w]=p[--g]);h.setFrame(f,u,x)}a.push(h)}let o=t.readInt(!0);if(o>0){let h=new Pt(o);for(let d=0;d<o;d++){let f=t.readFloat(),u=e.events[t.readInt(!0)],m=new Ie(f,u);m.intValue=t.readInt(!1),m.floatValue=t.readFloat(),m.stringValue=t.readBoolean()?t.readString():u.stringValue,m.data.audioPath&&(m.volume=t.readFloat(),m.balance=t.readFloat()),h.setFrame(d,m)}a.push(h)}let n=0;for(let h=0,d=a.length;h<d;h++)n=Math.max(n,a[h].getDuration());return new Lt(s,a,n)}},os=class{constructor(t,s=new Array,e=0,a=new DataView(t.buffer)){this.strings=s,this.index=e,this.buffer=a}readByte(){return this.buffer.getInt8(this.index++)}readUnsignedByte(){return this.buffer.getUint8(this.index++)}readShort(){let t=this.buffer.getInt16(this.index);return this.index+=2,t}readInt32(){let t=this.buffer.getInt32(this.index);return this.index+=4,t}readInt(t){let s=this.readByte(),e=s&127;return(s&128)!=0&&(s=this.readByte(),e|=(s&127)<<7,(s&128)!=0&&(s=this.readByte(),e|=(s&127)<<14,(s&128)!=0&&(s=this.readByte(),e|=(s&127)<<21,(s&128)!=0&&(s=this.readByte(),e|=(s&127)<<28)))),t?e:e>>>1^-(e&1)}readStringRef(){let t=this.readInt(!0);return t==0?null:this.strings[t-1]}readString(){let t=this.readInt(!0);switch(t){case 0:return null;case 1:return""}t--;let s="",e=0;for(let a=0;a<t;){let r=this.readUnsignedByte();switch(r>>4){case 12:case 13:s+=String.fromCharCode((r&31)<<6|this.readByte()&63),a+=2;break;case 14:s+=String.fromCharCode((r&15)<<12|(this.readByte()&63)<<6|this.readByte()&63),a+=3;break;default:s+=String.fromCharCode(r),a++}}return s}readFloat(){let t=this.buffer.getFloat32(this.index);return this.index+=4,t}readBoolean(){return this.readByte()!=0}},Ms=class{constructor(t,s,e,a,r){this.mesh=t,this.skin=s,this.slotIndex=e,this.parent=a,this.inheritDeform=r}},Fs=class{constructor(t=null,s=null){this.bones=t,this.vertices=s}},xt;(function(t){t[t.Region=0]="Region",t[t.BoundingBox=1]="BoundingBox",t[t.Mesh=2]="Mesh",t[t.LinkedMesh=3]="LinkedMesh",t[t.Path=4]="Path",t[t.Point=5]="Point",t[t.Clipping=6]="Clipping"})(xt||(xt={}));function bt(t,s,e){let a=t.readFloat(),r=t.readFloat()*e;for(let c=0,l=0,i=s.getFrameCount()-1;s.setFrame(c,a,r),c!=i;c++){let o=t.readFloat(),n=t.readFloat()*e;switch(t.readByte()){case lt:s.setStepped(c);break;case ot:U(t,s,l++,c,0,a,o,r,n,e)}a=o,r=n}return s}function Ee(t,s,e){let a=t.readFloat(),r=t.readFloat()*e,c=t.readFloat()*e;for(let l=0,i=0,o=s.getFrameCount()-1;s.setFrame(l,a,r,c),l!=o;l++){let n=t.readFloat(),h=t.readFloat()*e,d=t.readFloat()*e;switch(t.readByte()){case lt:s.setStepped(l);break;case ot:U(t,s,i++,l,0,a,n,r,h,e),U(t,s,i++,l,1,a,n,c,d,e)}a=n,r=h,c=d}return s}function U(t,s,e,a,r,c,l,i,o,n){s.setBezier(e,a,r,c,i,t.readFloat(),t.readFloat()*n,t.readFloat(),t.readFloat()*n,l,o)}var Rs=0,Bs=1,Ps=2,Es=3,Vs=4,Ls=5,Ds=6,Ns=7,Os=8,Us=9,Ws=0,zs=1,qs=2,_s=3,Hs=4,Gs=5,js=0,$s=1,Js=2,lt=1,ot=2,Qs=class{constructor(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.boundingBoxes=new Array,this.polygons=new Array,this.polygonPool=new Rt(()=>B.newFloatArray(16))}update(t,s){if(!t)throw new Error("skeleton cannot be null.");let e=this.boundingBoxes,a=this.polygons,r=this.polygonPool,c=t.slots,l=c.length;e.length=0,r.freeAll(a),a.length=0;for(let i=0;i<l;i++){let o=c[i];if(!o.bone.active)continue;let n=o.getAttachment();if(n instanceof Ut){let h=n;e.push(h);let d=r.obtain();d.length!=h.worldVerticesLength&&(d=B.newFloatArray(h.worldVerticesLength)),a.push(d),h.computeWorldVertices(o,0,h.worldVerticesLength,d,0,2)}}s?this.aabbCompute():(this.minX=Number.POSITIVE_INFINITY,this.minY=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY,this.maxY=Number.NEGATIVE_INFINITY)}aabbCompute(){let t=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY,e=Number.NEGATIVE_INFINITY,a=Number.NEGATIVE_INFINITY,r=this.polygons;for(let c=0,l=r.length;c<l;c++){let i=r[c],o=i;for(let n=0,h=i.length;n<h;n+=2){let d=o[n],f=o[n+1];t=Math.min(t,d),s=Math.min(s,f),e=Math.max(e,d),a=Math.max(a,f)}}this.minX=t,this.minY=s,this.maxX=e,this.maxY=a}aabbContainsPoint(t,s){return t>=this.minX&&t<=this.maxX&&s>=this.minY&&s<=this.maxY}aabbIntersectsSegment(t,s,e,a){let r=this.minX,c=this.minY,l=this.maxX,i=this.maxY;if(t<=r&&e<=r||s<=c&&a<=c||t>=l&&e>=l||s>=i&&a>=i)return!1;let o=(a-s)/(e-t),n=o*(r-t)+s;if(n>c&&n<i||(n=o*(l-t)+s,n>c&&n<i))return!0;let h=(c-s)/o+t;return!!(h>r&&h<l||(h=(i-s)/o+t,h>r&&h<l))}aabbIntersectsSkeleton(t){return this.minX<t.maxX&&this.maxX>t.minX&&this.minY<t.maxY&&this.maxY>t.minY}containsPoint(t,s){let e=this.polygons;for(let a=0,r=e.length;a<r;a++)if(this.containsPointPolygon(e[a],t,s))return this.boundingBoxes[a];return null}containsPointPolygon(t,s,e){let a=t,r=t.length,c=r-2,l=!1;for(let i=0;i<r;i+=2){let o=a[i+1],n=a[c+1];if(o<e&&n>=e||n<e&&o>=e){let h=a[i];h+(e-o)/(n-o)*(a[c]-h)<s&&(l=!l)}c=i}return l}intersectsSegment(t,s,e,a){let r=this.polygons;for(let c=0,l=r.length;c<l;c++)if(this.intersectsSegmentPolygon(r[c],t,s,e,a))return this.boundingBoxes[c];return null}intersectsSegmentPolygon(t,s,e,a,r){let c=t,l=t.length,i=s-a,o=e-r,n=s*r-e*a,h=c[l-2],d=c[l-1];for(let f=0;f<l;f+=2){let u=c[f],m=c[f+1],x=h*m-d*u,p=h-u,y=d-m,g=i*y-o*p,w=(n*p-i*x)/g;if((w>=h&&w<=u||w>=u&&w<=h)&&(w>=s&&w<=a||w>=a&&w<=s)){let b=(n*y-o*x)/g;if((b>=d&&b<=m||b>=m&&b<=d)&&(b>=e&&b<=r||b>=r&&b<=e))return!0}h=u,d=m}return!1}getPolygon(t){if(!t)throw new Error("boundingBox cannot be null.");let s=this.boundingBoxes.indexOf(t);return s==-1?null:this.polygons[s]}getWidth(){return this.maxX-this.minX}getHeight(){return this.maxY-this.minY}},st=class{constructor(){this.convexPolygons=new Array,this.convexPolygonsIndices=new Array,this.indicesArray=new Array,this.isConcaveArray=new Array,this.triangles=new Array,this.polygonPool=new Rt(()=>new Array),this.polygonIndicesPool=new Rt(()=>new Array)}triangulate(t){let s=t,e=t.length>>1,a=this.indicesArray;a.length=0;for(let l=0;l<e;l++)a[l]=l;let r=this.isConcaveArray;r.length=0;for(let l=0,i=e;l<i;++l)r[l]=st.isConcave(l,e,s,a);let c=this.triangles;for(c.length=0;e>3;){let l=e-1,i=0,o=1;for(;;){t:if(!r[i]){let d=a[l]<<1,f=a[i]<<1,u=a[o]<<1,m=s[d],x=s[d+1],p=s[f],y=s[f+1],g=s[u],w=s[u+1];for(let b=(o+1)%e;b!=l;b=(b+1)%e){if(!r[b])continue;let v=a[b]<<1,A=s[v],S=s[v+1];if(st.positiveArea(g,w,m,x,A,S)&&st.positiveArea(m,x,p,y,A,S)&&st.positiveArea(p,y,g,w,A,S))break t}break}if(o==0){do{if(!r[i])break;i--}while(i>0);break}l=i,i=o,o=(o+1)%e}c.push(a[(e+i-1)%e]),c.push(a[i]),c.push(a[(i+1)%e]),a.splice(i,1),r.splice(i,1),e--;let n=(e+i-1)%e,h=i==e?0:i;r[n]=st.isConcave(n,e,s,a),r[h]=st.isConcave(h,e,s,a)}return e==3&&(c.push(a[2]),c.push(a[0]),c.push(a[1])),c}decompose(t,s){let e=t,a=this.convexPolygons;this.polygonPool.freeAll(a),a.length=0;let r=this.convexPolygonsIndices;this.polygonIndicesPool.freeAll(r),r.length=0;let c=this.polygonIndicesPool.obtain();c.length=0;let l=this.polygonPool.obtain();l.length=0;let i=-1,o=0;for(let n=0,h=s.length;n<h;n+=3){let d=s[n]<<1,f=s[n+1]<<1,u=s[n+2]<<1,m=e[d],x=e[d+1],p=e[f],y=e[f+1],g=e[u],w=e[u+1],b=!1;if(i==d){let v=l.length-4,A=st.winding(l[v],l[v+1],l[v+2],l[v+3],g,w),S=st.winding(g,w,l[0],l[1],l[2],l[3]);A==o&&S==o&&(l.push(g),l.push(w),c.push(u),b=!0)}b||(l.length>0?(a.push(l),r.push(c)):(this.polygonPool.free(l),this.polygonIndicesPool.free(c)),l=this.polygonPool.obtain(),l.length=0,l.push(m),l.push(x),l.push(p),l.push(y),l.push(g),l.push(w),c=this.polygonIndicesPool.obtain(),c.length=0,c.push(d),c.push(f),c.push(u),o=st.winding(m,x,p,y,g,w),i=d)}l.length>0&&(a.push(l),r.push(c));for(let n=0,h=a.length;n<h;n++){if(c=r[n],c.length==0)continue;let d=c[0],f=c[c.length-1];l=a[n];let u=l.length-4,m=l[u],x=l[u+1],p=l[u+2],y=l[u+3],g=l[0],w=l[1],b=l[2],v=l[3],A=st.winding(m,x,p,y,g,w);for(let S=0;S<h;S++){if(S==n)continue;let I=r[S];if(I.length!=3)continue;let Y=I[0],F=I[1],P=I[2],R=a[S],M=R[R.length-2],C=R[R.length-1];if(Y!=d||F!=f)continue;let T=st.winding(m,x,p,y,M,C),O=st.winding(M,C,g,w,b,v);T==A&&O==A&&(R.length=0,I.length=0,l.push(M),l.push(C),c.push(P),m=p,x=y,p=M,y=C,S=0)}}for(let n=a.length-1;n>=0;n--)l=a[n],l.length==0&&(a.splice(n,1),this.polygonPool.free(l),c=r[n],r.splice(n,1),this.polygonIndicesPool.free(c));return a}static isConcave(t,s,e,a){let r=a[(s+t-1)%s]<<1,c=a[t]<<1,l=a[(t+1)%s]<<1;return!this.positiveArea(e[r],e[r+1],e[c],e[c+1],e[l],e[l+1])}static positiveArea(t,s,e,a,r,c){return t*(c-a)+e*(s-c)+r*(a-s)>=0}static winding(t,s,e,a,r,c){let l=e-t,i=a-s;return r*i-c*l+l*s-t*i>=0?1:-1}},Ve=class{constructor(){this.triangulator=new st,this.clippingPolygon=new Array,this.clipOutput=new Array,this.clippedVertices=new Array,this.clippedTriangles=new Array,this.scratch=new Array}clipStart(t,s){if(this.clipAttachment)return 0;this.clipAttachment=s;let e=s.worldVerticesLength,a=B.setArraySize(this.clippingPolygon,e);s.computeWorldVertices(t,0,e,a,0,2);let r=this.clippingPolygon;Ve.makeClockwise(r);let c=this.clippingPolygons=this.triangulator.decompose(r,this.triangulator.triangulate(r));for(let l=0,i=c.length;l<i;l++){let o=c[l];Ve.makeClockwise(o),o.push(o[0]),o.push(o[1])}return c.length}clipEndWithSlot(t){this.clipAttachment&&this.clipAttachment.endSlot==t.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(t,s,e,a,r,c,l,i){let o=this.clipOutput,n=this.clippedVertices,h=this.clippedTriangles,d=this.clippingPolygons,f=this.clippingPolygons.length,u=i?12:8,m=0;n.length=0,h.length=0;t:for(let x=0;x<a;x+=3){let p=e[x]<<1,y=t[p],g=t[p+1],w=r[p],b=r[p+1];p=e[x+1]<<1;let v=t[p],A=t[p+1],S=r[p],I=r[p+1];p=e[x+2]<<1;let Y=t[p],F=t[p+1],P=r[p],R=r[p+1];for(let M=0;M<f;M++){let C=n.length;if(this.clip(y,g,v,A,Y,F,d[M],o)){let T=o.length;if(T==0)continue;let O=A-F,z=Y-v,V=y-Y,q=F-g,j=1/(O*V+z*(g-F)),H=T>>1,N=this.clipOutput,D=B.setArraySize(n,C+H*u);for(let K=0;K<T;K+=2){let ht=N[K],Z=N[K+1];D[C]=ht,D[C+1]=Z,D[C+2]=c.r,D[C+3]=c.g,D[C+4]=c.b,D[C+5]=c.a;let it=ht-Y,rt=Z-F,wt=(O*it+z*rt)*j,Xt=(q*it+V*rt)*j,Et=1-wt-Xt;D[C+6]=w*wt+S*Xt+P*Et,D[C+7]=b*wt+I*Xt+R*Et,i&&(D[C+8]=l.r,D[C+9]=l.g,D[C+10]=l.b,D[C+11]=l.a),C+=u}C=h.length;let G=B.setArraySize(h,C+3*(H-2));H--;for(let K=1;K<H;K++)G[C]=m,G[C+1]=m+K,G[C+2]=m+K+1,C+=3;m+=H+1}else{let T=B.setArraySize(n,C+3*u);T[C]=y,T[C+1]=g,T[C+2]=c.r,T[C+3]=c.g,T[C+4]=c.b,T[C+5]=c.a,i?(T[C+6]=w,T[C+7]=b,T[C+8]=l.r,T[C+9]=l.g,T[C+10]=l.b,T[C+11]=l.a,T[C+12]=v,T[C+13]=A,T[C+14]=c.r,T[C+15]=c.g,T[C+16]=c.b,T[C+17]=c.a,T[C+18]=S,T[C+19]=I,T[C+20]=l.r,T[C+21]=l.g,T[C+22]=l.b,T[C+23]=l.a,T[C+24]=Y,T[C+25]=F,T[C+26]=c.r,T[C+27]=c.g,T[C+28]=c.b,T[C+29]=c.a,T[C+30]=P,T[C+31]=R,T[C+32]=l.r,T[C+33]=l.g,T[C+34]=l.b,T[C+35]=l.a):(T[C+6]=w,T[C+7]=b,T[C+8]=v,T[C+9]=A,T[C+10]=c.r,T[C+11]=c.g,T[C+12]=c.b,T[C+13]=c.a,T[C+14]=S,T[C+15]=I,T[C+16]=Y,T[C+17]=F,T[C+18]=c.r,T[C+19]=c.g,T[C+20]=c.b,T[C+21]=c.a,T[C+22]=P,T[C+23]=R),C=h.length;let O=B.setArraySize(h,C+3);O[C]=m,O[C+1]=m+1,O[C+2]=m+2,m+=3;continue t}}}}clip(t,s,e,a,r,c,l,i){let o=i,n=!1,h=null;l.length%4>=2?(h=i,i=this.scratch):h=this.scratch,h.length=0,h.push(t),h.push(s),h.push(e),h.push(a),h.push(r),h.push(c),h.push(t),h.push(s),i.length=0;let d=l,f=l.length-4;for(let u=0;;u+=2){let m=d[u],x=d[u+1],p=d[u+2],y=d[u+3],g=m-p,w=x-y,b=h,v=h.length-2,A=i.length;for(let I=0;I<v;I+=2){let Y=b[I],F=b[I+1],P=b[I+2],R=b[I+3],M=g*(R-y)-w*(P-p)>0;if(g*(F-y)-w*(Y-p)>0){if(M){i.push(P),i.push(R);continue}let C=R-F,T=P-Y,O=C*(p-m)-T*(y-x);if(Math.abs(O)>1e-6){let z=(T*(x-F)-C*(m-Y))/O;i.push(m+(p-m)*z),i.push(x+(y-x)*z)}else i.push(m),i.push(x)}else if(M){let C=R-F,T=P-Y,O=C*(p-m)-T*(y-x);if(Math.abs(O)>1e-6){let z=(T*(x-F)-C*(m-Y))/O;i.push(m+(p-m)*z),i.push(x+(y-x)*z)}else i.push(m),i.push(x);i.push(P),i.push(R)}n=!0}if(A==i.length)return o.length=0,!0;if(i.push(i[0]),i.push(i[1]),u==f)break;let S=i;i=h,i.length=0,h=S}if(o!=i){o.length=0;for(let u=0,m=i.length-2;u<m;u++)o[u]=i[u]}else o.length=o.length-2;return n}static makeClockwise(t){let s=t,e=t.length,a=s[e-2]*s[1]-s[0]*s[e-1],r=0,c=0,l=0,i=0;for(let o=0,n=e-3;o<n;o+=2)r=s[o],c=s[o+1],l=s[o+2],i=s[o+3],a+=r*i-l*c;if(!(a<0))for(let o=0,n=e-2,h=e>>1;o<h;o+=2){let d=s[o],f=s[o+1],u=n-o;s[o]=s[u],s[o+1]=s[u+1],s[u]=d,s[u+1]=f}}},Zs=class{constructor(t){this.attachmentLoader=null,this.scale=1,this.linkedMeshes=new Array,this.attachmentLoader=t}readSkeletonData(t){let s=this.scale,e=new Fe,a=typeof t=="string"?JSON.parse(t):t,r=a.skeleton;if(r&&(e.hash=r.hash,e.version=r.spine,e.x=r.x,e.y=r.y,e.width=r.width,e.height=r.height,e.fps=r.fps,e.imagesPath=r.images),a.bones)for(let c=0;c<a.bones.length;c++){let l=a.bones[c],i=null,o=k(l,"parent",null);o&&(i=e.findBone(o));let n=new Ce(e.bones.length,l.name,i);n.length=k(l,"length",0)*s,n.x=k(l,"x",0)*s,n.y=k(l,"y",0)*s,n.rotation=k(l,"rotation",0),n.scaleX=k(l,"scaleX",1),n.scaleY=k(l,"scaleY",1),n.shearX=k(l,"shearX",0),n.shearY=k(l,"shearY",0),n.transformMode=B.enumValue(et,k(l,"transform","Normal")),n.skinRequired=k(l,"skin",!1);let h=k(l,"color",null);h&&n.color.setFromString(h),e.bones.push(n)}if(a.slots)for(let c=0;c<a.slots.length;c++){let l=a.slots[c],i=e.findBone(l.bone),o=new Be(e.slots.length,l.name,i),n=k(l,"color",null);n&&o.color.setFromString(n);let h=k(l,"dark",null);h&&(o.darkColor=L.fromString(h)),o.attachmentName=k(l,"attachment",null),o.blendMode=B.enumValue(qt,k(l,"blend","normal")),e.slots.push(o)}if(a.ik)for(let c=0;c<a.ik.length;c++){let l=a.ik[c],i=new Xe(l.name);i.order=k(l,"order",0),i.skinRequired=k(l,"skin",!1);for(let o=0;o<l.bones.length;o++)i.bones.push(e.findBone(l.bones[o]));i.target=e.findBone(l.target),i.mix=k(l,"mix",1),i.softness=k(l,"softness",0)*s,i.bendDirection=k(l,"bendPositive",!0)?1:-1,i.compress=k(l,"compress",!1),i.stretch=k(l,"stretch",!1),i.uniform=k(l,"uniform",!1),e.ikConstraints.push(i)}if(a.transform)for(let c=0;c<a.transform.length;c++){let l=a.transform[c],i=new Pe(l.name);i.order=k(l,"order",0),i.skinRequired=k(l,"skin",!1);for(let n=0;n<l.bones.length;n++)i.bones.push(e.findBone(l.bones[n]));let o=l.target;i.target=e.findBone(o),i.local=k(l,"local",!1),i.relative=k(l,"relative",!1),i.offsetRotation=k(l,"rotation",0),i.offsetX=k(l,"x",0)*s,i.offsetY=k(l,"y",0)*s,i.offsetScaleX=k(l,"scaleX",0),i.offsetScaleY=k(l,"scaleY",0),i.offsetShearY=k(l,"shearY",0),i.mixRotate=k(l,"mixRotate",1),i.mixX=k(l,"mixX",1),i.mixY=k(l,"mixY",i.mixX),i.mixScaleX=k(l,"mixScaleX",1),i.mixScaleY=k(l,"mixScaleY",i.mixScaleX),i.mixShearY=k(l,"mixShearY",1),e.transformConstraints.push(i)}if(a.path)for(let c=0;c<a.path.length;c++){let l=a.path[c],i=new Me(l.name);i.order=k(l,"order",0),i.skinRequired=k(l,"skin",!1);for(let n=0;n<l.bones.length;n++)i.bones.push(e.findBone(l.bones[n]));let o=l.target;i.target=e.findSlot(o),i.positionMode=B.enumValue(dt,k(l,"positionMode","Percent")),i.spacingMode=B.enumValue(Q,k(l,"spacingMode","Length")),i.rotateMode=B.enumValue(Ct,k(l,"rotateMode","Tangent")),i.offsetRotation=k(l,"rotation",0),i.position=k(l,"position",0),i.positionMode==dt.Fixed&&(i.position*=s),i.spacing=k(l,"spacing",0),(i.spacingMode==Q.Length||i.spacingMode==Q.Fixed)&&(i.spacing*=s),i.mixRotate=k(l,"mixRotate",1),i.mixX=k(l,"mixX",1),i.mixY=k(l,"mixY",i.mixX),e.pathConstraints.push(i)}if(a.skins)for(let c=0;c<a.skins.length;c++){let l=a.skins[c],i=new zt(l.name);if(l.bones)for(let o=0;o<l.bones.length;o++)i.bones.push(e.findBone(l.bones[o]));if(l.ik)for(let o=0;o<l.ik.length;o++)i.constraints.push(e.findIkConstraint(l.ik[o]));if(l.transform)for(let o=0;o<l.transform.length;o++)i.constraints.push(e.findTransformConstraint(l.transform[o]));if(l.path)for(let o=0;o<l.path.length;o++)i.constraints.push(e.findPathConstraint(l.path[o]));for(let o in l.attachments){let n=e.findSlot(o),h=l.attachments[o];for(let d in h){let f=this.readAttachment(h[d],i,n.index,d,e);f&&i.setAttachment(n.index,d,f)}}e.skins.push(i),i.name=="default"&&(e.defaultSkin=i)}for(let c=0,l=this.linkedMeshes.length;c<l;c++){let i=this.linkedMeshes[c],n=(i.skin?e.findSkin(i.skin):e.defaultSkin).getAttachment(i.slotIndex,i.parent);i.mesh.deformAttachment=i.inheritDeform?n:i.mesh,i.mesh.setParentMesh(n),i.mesh.updateUVs()}if(this.linkedMeshes.length=0,a.events)for(let c in a.events){let l=a.events[c],i=new Te(c);i.intValue=k(l,"int",0),i.floatValue=k(l,"float",0),i.stringValue=k(l,"string",""),i.audioPath=k(l,"audio",null),i.audioPath&&(i.volume=k(l,"volume",1),i.balance=k(l,"balance",0)),e.events.push(i)}if(a.animations)for(let c in a.animations){let l=a.animations[c];this.readAnimation(l,c,e)}return e}readAttachment(t,s,e,a,r){let c=this.scale;switch(a=k(t,"name",a),k(t,"type","region")){case"region":{let l=k(t,"path",a),i=this.attachmentLoader.newRegionAttachment(s,a,l);if(!i)return null;i.path=l,i.x=k(t,"x",0)*c,i.y=k(t,"y",0)*c,i.scaleX=k(t,"scaleX",1),i.scaleY=k(t,"scaleY",1),i.rotation=k(t,"rotation",0),i.width=t.width*c,i.height=t.height*c;let o=k(t,"color",null);return o&&i.color.setFromString(o),i.updateOffset(),i}case"boundingbox":{let l=this.attachmentLoader.newBoundingBoxAttachment(s,a);if(!l)return null;this.readVertices(t,l,t.vertexCount<<1);let i=k(t,"color",null);return i&&l.color.setFromString(i),l}case"mesh":case"linkedmesh":{let l=k(t,"path",a),i=this.attachmentLoader.newMeshAttachment(s,a,l);if(!i)return null;i.path=l;let o=k(t,"color",null);o&&i.color.setFromString(o),i.width=k(t,"width",0)*c,i.height=k(t,"height",0)*c;let n=k(t,"parent",null);if(n)return this.linkedMeshes.push(new Ks(i,k(t,"skin",null),e,n,k(t,"deform",!0))),i;let h=t.uvs;return this.readVertices(t,i,h.length),i.triangles=t.triangles,i.regionUVs=h,i.updateUVs(),i.edges=k(t,"edges",null),i.hullLength=k(t,"hull",0)*2,i}case"path":{let l=this.attachmentLoader.newPathAttachment(s,a);if(!l)return null;l.closed=k(t,"closed",!1),l.constantSpeed=k(t,"constantSpeed",!0);let i=t.vertexCount;this.readVertices(t,l,i<<1);let o=B.newArray(i/3,0);for(let h=0;h<t.lengths.length;h++)o[h]=t.lengths[h]*c;l.lengths=o;let n=k(t,"color",null);return n&&l.color.setFromString(n),l}case"point":{let l=this.attachmentLoader.newPointAttachment(s,a);if(!l)return null;l.x=k(t,"x",0)*c,l.y=k(t,"y",0)*c,l.rotation=k(t,"rotation",0);let i=k(t,"color",null);return i&&l.color.setFromString(i),l}case"clipping":{let l=this.attachmentLoader.newClippingAttachment(s,a);if(!l)return null;let i=k(t,"end",null);i&&(l.endSlot=r.findSlot(i));let o=t.vertexCount;this.readVertices(t,l,o<<1);let n=k(t,"color",null);return n&&l.color.setFromString(n),l}}return null}readVertices(t,s,e){let a=this.scale;s.worldVerticesLength=e;let r=t.vertices;if(e==r.length){let i=B.toFloatArray(r);if(a!=1)for(let o=0,n=r.length;o<n;o++)i[o]*=a;s.vertices=i;return}let c=new Array,l=new Array;for(let i=0,o=r.length;i<o;){let n=r[i++];l.push(n);for(let h=i+n*4;i<h;i+=4)l.push(r[i]),c.push(r[i+1]*a),c.push(r[i+2]*a),c.push(r[i+3])}s.bones=l,s.vertices=B.toFloatArray(c)}readAnimation(t,s,e){let a=this.scale,r=new Array;if(t.slots)for(let l in t.slots){let i=t.slots[l],o=e.findSlot(l).index;for(let n in i){let h=i[n];if(!h)continue;let d=h.length;if(n=="attachment"){let f=new yt(d,o);for(let u=0;u<d;u++){let m=h[u];f.setFrame(u,k(m,"time",0),m.name)}r.push(f)}else if(n=="rgba"){let f=new ae(d,d<<2,o),u=h[0],m=k(u,"time",0),x=L.fromString(u.color);for(let p=0,y=0;;p++){f.setFrame(p,m,x.r,x.g,x.b,x.a);let g=h[p+1];if(!g){f.shrink(y);break}let w=k(g,"time",0),b=L.fromString(g.color),v=u.curve;v&&(y=W(v,f,y,p,0,m,w,x.r,b.r,1),y=W(v,f,y,p,1,m,w,x.g,b.g,1),y=W(v,f,y,p,2,m,w,x.b,b.b,1),y=W(v,f,y,p,3,m,w,x.a,b.a,1)),m=w,x=b,u=g}r.push(f)}else if(n=="rgb"){let f=new ne(d,d*3,o),u=h[0],m=k(u,"time",0),x=L.fromString(u.color);for(let p=0,y=0;;p++){f.setFrame(p,m,x.r,x.g,x.b);let g=h[p+1];if(!g){f.shrink(y);break}let w=k(g,"time",0),b=L.fromString(g.color),v=u.curve;v&&(y=W(v,f,y,p,0,m,w,x.r,b.r,1),y=W(v,f,y,p,1,m,w,x.g,b.g,1),y=W(v,f,y,p,2,m,w,x.b,b.b,1)),m=w,x=b,u=g}r.push(f)}else if(n=="alpha")r.push(ft(h,new le(d,d,o),0,1));else if(n=="rgba2"){let f=new oe(d,d*7,o),u=h[0],m=k(u,"time",0),x=L.fromString(u.light),p=L.fromString(u.dark);for(let y=0,g=0;;y++){f.setFrame(y,m,x.r,x.g,x.b,x.a,p.r,p.g,p.b);let w=h[y+1];if(!w){f.shrink(g);break}let b=k(w,"time",0),v=L.fromString(w.light),A=L.fromString(w.dark),S=u.curve;S&&(g=W(S,f,g,y,0,m,b,x.r,v.r,1),g=W(S,f,g,y,1,m,b,x.g,v.g,1),g=W(S,f,g,y,2,m,b,x.b,v.b,1),g=W(S,f,g,y,3,m,b,x.a,v.a,1),g=W(S,f,g,y,4,m,b,p.r,A.r,1),g=W(S,f,g,y,5,m,b,p.g,A.g,1),g=W(S,f,g,y,6,m,b,p.b,A.b,1)),m=b,x=v,p=A,u=w}r.push(f)}else if(n=="rgb2"){let f=new he(d,d*6,o),u=h[0],m=k(u,"time",0),x=L.fromString(u.light),p=L.fromString(u.dark);for(let y=0,g=0;;y++){f.setFrame(y,m,x.r,x.g,x.b,p.r,p.g,p.b);let w=h[y+1];if(!w){f.shrink(g);break}let b=k(w,"time",0),v=L.fromString(w.light),A=L.fromString(w.dark),S=u.curve;S&&(g=W(S,f,g,y,0,m,b,x.r,v.r,1),g=W(S,f,g,y,1,m,b,x.g,v.g,1),g=W(S,f,g,y,2,m,b,x.b,v.b,1),g=W(S,f,g,y,3,m,b,p.r,A.r,1),g=W(S,f,g,y,4,m,b,p.g,A.g,1),g=W(S,f,g,y,5,m,b,p.b,A.b,1)),m=b,x=v,p=A,u=w}r.push(f)}}}if(t.bones)for(let l in t.bones){let i=t.bones[l],o=e.findBone(l).index;for(let n in i){let h=i[n],d=h.length;if(d!=0){if(n==="rotate")r.push(ft(h,new Bt(d,d,o),0,1));else if(n==="translate"){let f=new Jt(d,d<<1,o);r.push(Le(h,f,"x","y",0,a))}else if(n==="translatex"){let f=new Qt(d,d,o);r.push(ft(h,f,0,a))}else if(n==="translatey"){let f=new Zt(d,d,o);r.push(ft(h,f,0,a))}else if(n==="scale"){let f=new Kt(d,d<<1,o);r.push(Le(h,f,"x","y",1,1))}else if(n==="scalex"){let f=new te(d,d,o);r.push(ft(h,f,1,1))}else if(n==="scaley"){let f=new ee(d,d,o);r.push(ft(h,f,1,1))}else if(n==="shear"){let f=new se(d,d<<1,o);r.push(Le(h,f,"x","y",0,1))}else if(n==="shearx"){let f=new ie(d,d,o);r.push(ft(h,f,0,1))}else if(n==="sheary"){let f=new re(d,d,o);r.push(ft(h,f,0,1))}}}}if(t.ik)for(let l in t.ik){let i=t.ik[l],o=i[0];if(!o)continue;let n=e.findIkConstraint(l),h=e.ikConstraints.indexOf(n),d=new de(i.length,i.length<<1,h),f=k(o,"time",0),u=k(o,"mix",1),m=k(o,"softness",0)*a;for(let x=0,p=0;;x++){d.setFrame(x,f,u,m,k(o,"bendPositive",!0)?1:-1,k(o,"compress",!1),k(o,"stretch",!1));let y=i[x+1];if(!y){d.shrink(p);break}let g=k(y,"time",0),w=k(y,"mix",1),b=k(y,"softness",0)*a,v=o.curve;v&&(p=W(v,d,p,x,0,f,g,u,w,1),p=W(v,d,p,x,1,f,g,m,b,a)),f=g,u=w,m=b,o=y}r.push(d)}if(t.transform)for(let l in t.transform){let i=t.transform[l],o=i[0];if(!o)continue;let n=e.findTransformConstraint(l),h=e.transformConstraints.indexOf(n),d=new fe(i.length,i.length*6,h),f=k(o,"time",0),u=k(o,"mixRotate",1),m=k(o,"mixX",1),x=k(o,"mixY",m),p=k(o,"mixScaleX",1),y=k(o,"mixScaleY",p),g=k(o,"mixShearY",1);for(let w=0,b=0;;w++){d.setFrame(w,f,u,m,x,p,y,g);let v=i[w+1];if(!v){d.shrink(b);break}let A=k(v,"time",0),S=k(v,"mixRotate",1),I=k(v,"mixX",1),Y=k(v,"mixY",I),F=k(v,"mixScaleX",1),P=k(v,"mixScaleY",F),R=k(v,"mixShearY",1),M=o.curve;M&&(b=W(M,d,b,w,0,f,A,u,S,1),b=W(M,d,b,w,1,f,A,m,I,1),b=W(M,d,b,w,2,f,A,x,Y,1),b=W(M,d,b,w,3,f,A,p,F,1),b=W(M,d,b,w,4,f,A,y,P,1),b=W(M,d,b,w,5,f,A,g,R,1)),f=A,u=S,m=I,x=Y,p=F,y=P,p=F,o=v}r.push(d)}if(t.path)for(let l in t.path){let i=t.path[l],o=e.findPathConstraint(l),n=e.pathConstraints.indexOf(o);for(let h in i){let d=i[h],f=d[0];if(!f)continue;let u=d.length;if(h==="position"){let m=new ue(u,u,n);r.push(ft(d,m,0,o.positionMode==dt.Fixed?a:1))}else if(h==="spacing"){let m=new me(u,u,n);r.push(ft(d,m,0,o.spacingMode==Q.Length||o.spacingMode==Q.Fixed?a:1))}else if(h==="mix"){let m=new ge(u,u*3,n),x=k(f,"time",0),p=k(f,"mixRotate",1),y=k(f,"mixX",1),g=k(f,"mixY",y);for(let w=0,b=0;;w++){m.setFrame(w,x,p,y,g);let v=d[w+1];if(!v){m.shrink(b);break}let A=k(v,"time",0),S=k(v,"mixRotate",1),I=k(v,"mixX",1),Y=k(v,"mixY",I),F=f.curve;F&&(b=W(F,m,b,w,0,x,A,p,S,1),b=W(F,m,b,w,1,x,A,y,I,1),b=W(F,m,b,w,2,x,A,g,Y,1)),x=A,p=S,y=I,g=Y,f=v}r.push(m)}}}if(t.deform)for(let l in t.deform){let i=t.deform[l],o=e.findSkin(l);for(let n in i){let h=i[n],d=e.findSlot(n).index;for(let f in h){let u=h[f],m=u[0];if(!m)continue;let x=o.getAttachment(d,f),p=x.bones,y=x.vertices,g=p?y.length/3*2:y.length,w=new ce(u.length,u.length,d,x),b=k(m,"time",0);for(let v=0,A=0;;v++){let S,I=k(m,"vertices",null);if(!I)S=p?B.newFloatArray(g):y;else{S=B.newFloatArray(g);let R=k(m,"offset",0);if(B.arrayCopy(I,0,S,R,I.length),a!=1)for(let M=R,C=M+I.length;M<C;M++)S[M]*=a;if(!p)for(let M=0;M<g;M++)S[M]+=y[M]}w.setFrame(v,b,S);let Y=u[v+1];if(!Y){w.shrink(A);break}let F=k(Y,"time",0),P=m.curve;P&&(A=W(P,w,A,v,0,b,F,0,1,1)),b=F,m=Y}r.push(w)}}}if(t.drawOrder){let l=new vt(t.drawOrder.length),i=e.slots.length,o=0;for(let n=0;n<t.drawOrder.length;n++,o++){let h=t.drawOrder[n],d=null,f=k(h,"offsets",null);if(f){d=B.newArray(i,-1);let u=B.newArray(i-f.length,0),m=0,x=0;for(let p=0;p<f.length;p++){let y=f[p],g=e.findSlot(y.slot).index;for(;m!=g;)u[x++]=m++;d[m+y.offset]=m++}for(;m<i;)u[x++]=m++;for(let p=i-1;p>=0;p--)d[p]==-1&&(d[p]=u[--x])}l.setFrame(o,k(h,"time",0),d)}r.push(l)}if(t.events){let l=new Pt(t.events.length),i=0;for(let o=0;o<t.events.length;o++,i++){let n=t.events[o],h=e.findEvent(n.name),d=new Ie(B.toSinglePrecision(k(n,"time",0)),h);d.intValue=k(n,"int",h.intValue),d.floatValue=k(n,"float",h.floatValue),d.stringValue=k(n,"string",h.stringValue),d.data.audioPath&&(d.volume=k(n,"volume",1),d.balance=k(n,"balance",0)),l.setFrame(i,d)}r.push(l)}let c=0;for(let l=0,i=r.length;l<i;l++)c=Math.max(c,r[l].getDuration());e.animations.push(new Lt(s,r,c))}},Ks=class{constructor(t,s,e,a,r){this.mesh=t,this.skin=s,this.slotIndex=e,this.parent=a,this.inheritDeform=r}};function ft(t,s,e,a){let r=t[0],c=k(r,"time",0),l=k(r,"value",e)*a,i=0;for(let o=0;;o++){s.setFrame(o,c,l);let n=t[o+1];if(!n)return s.shrink(i),s;let h=k(n,"time",0),d=k(n,"value",e)*a;r.curve&&(i=W(r.curve,s,i,o,0,c,h,l,d,a)),c=h,l=d,r=n}}function Le(t,s,e,a,r,c){let l=t[0],i=k(l,"time",0),o=k(l,e,r)*c,n=k(l,a,r)*c,h=0;for(let d=0;;d++){s.setFrame(d,i,o,n);let f=t[d+1];if(!f)return s.shrink(h),s;let u=k(f,"time",0),m=k(f,e,r)*c,x=k(f,a,r)*c,p=l.curve;p&&(h=W(p,s,h,d,0,i,u,o,m,c),h=W(p,s,h,d,1,i,u,n,x,c)),i=u,o=m,n=x,l=f}}function W(t,s,e,a,r,c,l,i,o,n){if(t=="stepped")return s.setStepped(a),e;let h=r<<2,d=t[h],f=t[h+1]*n,u=t[h+2],m=t[h+3]*n;return s.setBezier(e,a,r,c,i,d,f,u,m,l,o),e+1}function k(t,s,e){return t[s]!==void 0?t[s]:e}(()=>{typeof Math.fround=="undefined"&&(Math.fround=function(t){return function(s){return t[0]=s,t[0]}}(new Float32Array(1)))})();var ti=class{constructor(t,s){this.jitterX=0,this.jitterY=0,this.jitterX=t,this.jitterY=s}begin(t){}transform(t,s,e,a){t.x+=X.randomTriangular(-this.jitterX,this.jitterY),t.y+=X.randomTriangular(-this.jitterX,this.jitterY)}end(){}},hs=class{constructor(t){this.centerX=0,this.centerY=0,this.radius=0,this.angle=0,this.worldX=0,this.worldY=0,this.radius=t}begin(t){this.worldX=t.x+this.centerX,this.worldY=t.y+this.centerY}transform(t,s,e,a){let r=this.angle*X.degreesToRadians,c=t.x-this.worldX,l=t.y-this.worldY,i=Math.sqrt(c*c+l*l);if(i<this.radius){let o=hs.interpolation.apply(0,r,(this.radius-i)/this.radius),n=Math.cos(o),h=Math.sin(o);t.x=n*c-h*l+this.worldX,t.y=h*c+n*l+this.worldY}}end(){}},cs=hs;cs.interpolation=new _e(2);var ds=class extends Se{constructor(t){super(t)}setFilters(t,s){}setWraps(t,s){}dispose(){}},ei=class extends is{constructor(t="",s=null){super(e=>new ds(e),t,s)}},_t=class{constructor(t){this.triangleRendering=!1,this.debugRendering=!1,this.vertices=B.newFloatArray(8*1024),this.tempColor=new L,this.ctx=t}draw(t){this.triangleRendering?this.drawTriangles(t):this.drawImages(t)}drawImages(t){let s=this.ctx,e=this.tempColor,a=t.color,r=t.drawOrder;this.debugRendering&&(s.strokeStyle="green");for(let c=0,l=r.length;c<l;c++){let i=r[c],o=i.bone;if(!o.active)continue;let n=i.getAttachment();if(!(n instanceof E))continue;let h=n.region,d=h.page.texture.getImage(),f=i.color,u=n.color;e.set(a.r*f.r*u.r,a.g*f.g*u.g,a.b*f.b*u.b,a.a*f.a*u.a),s.save(),s.transform(o.a,o.c,o.b,o.d,o.worldX,o.worldY),s.translate(n.offset[0],n.offset[1]),s.rotate(n.rotation*Math.PI/180);let m=n.width/h.originalWidth;s.scale(m*n.scaleX,m*n.scaleY);let x=h.width,p=h.height;if(s.translate(x/2,p/2),n.region.degrees==90){let y=x;x=p,p=y,s.rotate(-Math.PI/2)}s.scale(1,-1),s.translate(-x/2,-p/2),s.globalAlpha=e.a,s.drawImage(d,h.x,h.y,x,p,0,0,x,p),this.debugRendering&&s.strokeRect(0,0,x,p),s.restore()}}drawTriangles(t){let s=this.ctx,e=this.tempColor,a=t.color,r=t.drawOrder,c=null,l=this.vertices,i=null;for(let n=0,h=r.length;n<h;n++){let d=r[n],f=d.getAttachment(),u,m;if(f instanceof E){let x=f;l=this.computeRegionVertices(d,x,!1),i=_t.QUAD_TRIANGLES,m=x.region,u=m.page.texture.getImage()}else if(f instanceof kt){let x=f;l=this.computeMeshVertices(d,x,!1),i=x.triangles,u=x.region.renderObject.page.texture.getImage()}else continue;if(u){d.data.blendMode!=c&&(c=d.data.blendMode);let x=d.color,p=f.color;e.set(a.r*x.r*p.r,a.g*x.g*p.g,a.b*x.b*p.b,a.a*x.a*p.a),s.globalAlpha=e.a;for(var o=0;o<i.length;o+=3){let y=i[o]*8,g=i[o+1]*8,w=i[o+2]*8,b=l[y],v=l[y+1],A=l[y+6],S=l[y+7],I=l[g],Y=l[g+1],F=l[g+6],P=l[g+7],R=l[w],M=l[w+1],C=l[w+6],T=l[w+7];this.drawTriangle(u,b,v,A,S,I,Y,F,P,R,M,C,T),this.debugRendering&&(s.strokeStyle="green",s.beginPath(),s.moveTo(b,v),s.lineTo(I,Y),s.lineTo(R,M),s.lineTo(b,v),s.stroke())}}}this.ctx.globalAlpha=1}drawTriangle(t,s,e,a,r,c,l,i,o,n,h,d,f){let u=this.ctx;a*=t.width,r*=t.height,i*=t.width,o*=t.height,d*=t.width,f*=t.height,u.beginPath(),u.moveTo(s,e),u.lineTo(c,l),u.lineTo(n,h),u.closePath(),c-=s,l-=e,n-=s,h-=e,i-=a,o-=r,d-=a,f-=r;var m=1/(i*f-d*o),x=(f*c-o*n)*m,p=(f*l-o*h)*m,y=(i*n-d*c)*m,g=(i*h-d*l)*m,w=s-x*a-y*r,b=e-p*a-g*r;u.save(),u.transform(x,p,y,g,w,b),u.clip(),u.drawImage(t,0,0),u.restore()}computeRegionVertices(t,s,e){let a=t.bone.skeleton.color,r=t.color,c=s.color,l=a.a*r.a*c.a,i=e?l:1,o=this.tempColor;o.set(a.r*r.r*c.r*i,a.g*r.g*c.g*i,a.b*r.b*c.b*i,l),s.computeWorldVertices(t.bone,this.vertices,0,_t.VERTEX_SIZE);let n=this.vertices,h=s.uvs;return n[E.C1R]=o.r,n[E.C1G]=o.g,n[E.C1B]=o.b,n[E.C1A]=o.a,n[E.U1]=h[0],n[E.V1]=h[1],n[E.C2R]=o.r,n[E.C2G]=o.g,n[E.C2B]=o.b,n[E.C2A]=o.a,n[E.U2]=h[2],n[E.V2]=h[3],n[E.C3R]=o.r,n[E.C3G]=o.g,n[E.C3B]=o.b,n[E.C3A]=o.a,n[E.U3]=h[4],n[E.V3]=h[5],n[E.C4R]=o.r,n[E.C4G]=o.g,n[E.C4B]=o.b,n[E.C4A]=o.a,n[E.U4]=h[6],n[E.V4]=h[7],n}computeMeshVertices(t,s,e){let a=t.bone.skeleton.color,r=t.color,c=s.color,l=a.a*r.a*c.a,i=e?l:1,o=this.tempColor;o.set(a.r*r.r*c.r*i,a.g*r.g*c.g*i,a.b*r.b*c.b*i,l);let n=s.worldVerticesLength/2,h=this.vertices;h.length<s.worldVerticesLength&&(this.vertices=h=B.newFloatArray(s.worldVerticesLength)),s.computeWorldVertices(t,0,s.worldVerticesLength,h,0,_t.VERTEX_SIZE);let d=s.uvs;for(let f=0,u=0,m=2;f<n;f++)h[m++]=o.r,h[m++]=o.g,h[m++]=o.b,h[m++]=o.a,h[m++]=d[u++],h[m++]=d[u++],m+=2;return h}},De=_t;return De.QUAD_TRIANGLES=[0,1,2,2,3,0],De.VERTEX_SIZE=2+2+4,We})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@esotericsoftware/spine-canvas",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.27",
|
|
4
4
|
"description": "The official Spine Runtimes for the web.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -30,6 +30,6 @@
|
|
|
30
30
|
},
|
|
31
31
|
"homepage": "https://github.com/esotericsoftware/spine-runtimes#readme",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@esotericsoftware/spine-core": "^4.0.
|
|
33
|
+
"@esotericsoftware/spine-core": "^4.0.27"
|
|
34
34
|
}
|
|
35
35
|
}
|