=this.lines.length?null:this.lines[this.index++]}readEntry(t,n){if(n==null||(n=n.trim(),n.length==0))return 0;const e=n.indexOf(":");if(e==-1)return 0;t[0]=n.substr(0,e).trim();for(let i=1,r=e+1;;i++){const h=n.indexOf(",",r);if(h==-1)return t[i]=n.substr(r).trim(),i;if(t[i]=n.substr(r,h-r).trim(),r=h+1,i==4)return 4}}}class ts{constructor(){this.minFilter=Bt.Nearest,this.magFilter=Bt.Nearest,this.uWrap=fe.ClampToEdge,this.vWrap=fe.ClampToEdge}setFilters(){const t=this.baseTexture,n=this.minFilter;n==Bt.Linear?t.scaleMode=H.SCALE_MODES.LINEAR:this.minFilter==Bt.Nearest?t.scaleMode=H.SCALE_MODES.NEAREST:(t.mipmap=H.MIPMAP_MODES.POW2,n==Bt.MipMapNearestNearest?t.scaleMode=H.SCALE_MODES.NEAREST:t.scaleMode=H.SCALE_MODES.LINEAR)}}class es extends Vn{}class ns{constructor(){this.array=new Array}add(t){const n=this.contains(t);return this.array[t|0]=t|0,!n}contains(t){return this.array[t|0]!=null}remove(t){this.array[t|0]=void 0}clear(){this.array.length=0}}class ss{constructor(){this.entries={},this.size=0}add(t){const n=this.entries[t];return this.entries[t]=!0,n?!1:(this.size++,!0)}addAll(t){const n=this.size;for(let e=0,i=t.length;e1&&(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(c,t){c.r=((t&4278190080)>>>24)/255,c.g=((t&16711680)>>>16)/255,c.b=((t&65280)>>>8)/255,c.a=(t&255)/255}static rgb888ToColor(c,t){c.r=((t&16711680)>>>16)/255,c.g=((t&65280)>>>8)/255,c.b=(t&255)/255}static fromString(c){return new Je().setFromString(c)}};let _=Je;_.WHITE=new Je(1,1,1,1),_.RED=new Je(1,0,0,1),_.GREEN=new Je(0,1,0,1),_.BLUE=new Je(0,0,1,1),_.MAGENTA=new Je(1,0,1,1);const Fe=class{static clamp(c,t,n){return c p&&p>1e-4){const y=(S/p-1)*l+1;w*=y,h&&(b*=y)}}t.updateWorldTransformWith(t.ax,t.ay,t.arotation+u*l,w,b,t.ashearX,t.ashearY)}apply2(t,n,e,i,r,h,l,s,a){const o=t.ax,d=t.ay;let f=t.ascaleX,u=t.ascaleY,m=f,g=u,x=n.ascaleX;const E=t.matrix;let w=0,b=0,p=0;f<0?(f=-f,w=180,p=-1):(w=0,p=1),u<0&&(u=-u,p=-p),x<0?(x=-x,b=180):b=0;const S=n.ax;let y=0,M=0,T=0,k=E.a,I=E.c,R=E.b,V=E.d;const F=Math.abs(f-u)<=1e-4;!F||h?(y=0,M=k*S+E.tx,T=R*S+E.ty):(y=n.ay,M=k*S+I*y+E.tx,T=R*S+V*y+E.ty);const B=t.parent.matrix;if(!B)throw new Error("IK parent must itself have a parent.");k=B.a,I=B.c,R=B.b,V=B.d;const Y=1/(k*V-I*R);let N=M-B.tx,q=T-B.ty;const z=(N*V-q*I)*Y-o,D=(q*k-N*R)*Y-d,X=Math.sqrt(z*z+D*D);let L=n.data.length*x,O,W;if(X<1e-4){this.apply1(t,e,i,!1,h,!1,a),n.updateWorldTransformWith(S,y,0,n.ascaleX,n.ascaleY,n.ashearX,n.ashearY);return}N=e-B.tx,q=i-B.ty;let U=(N*V-q*I)*Y-o,$=(q*k-N*R)*Y-d,G=U*U+$*$;if(s!=0){s*=f*(x+1)*.5;const ct=Math.sqrt(G),Xt=ct-X-L*f+s;if(Xt>0){let Ut=Math.min(1,Xt/(s*2))-1;Ut=(Xt-s*(1-Ut*Ut))/ct,U-=Ut*U,$-=Ut*$,G=U*U+$*$}}t:if(F){L*=f;let ct=(G-X*X-L*L)/(2*X*L);ct<-1?(ct=-1,W=Math.PI*r):ct>1?(ct=1,W=0,h&&(k=(Math.sqrt(G)/(X+L)-1)*a+1,m*=k,l&&(g*=k))):W=Math.acos(ct)*r,k=X+L*ct,I=L*Math.sin(W),O=Math.atan2($*k-U*I,U*k+$*I)}else{k=f*L,I=u*L;const ct=k*k,Xt=I*I,Ut=Math.atan2($,U);R=Xt*X*X+ct*G-ct*Xt;const de=-2*Xt*X,Me=Xt-ct;if(V=de*de-4*Me*R,V>=0){let Nt=Math.sqrt(V);de<0&&(Nt=-Nt),Nt=-(de+Nt)*.5;const We=Nt/Me,pr=R/Nt,yn=Math.abs(We) =this.lines.length?null:this.lines[this.index++]}readEntry(t,n){if(n==null||(n=n.trim(),n.length==0))return 0;const e=n.indexOf(":");if(e==-1)return 0;t[0]=n.substr(0,e).trim();for(let i=1,r=e+1;;i++){const h=n.indexOf(",",r);if(h==-1)return t[i]=n.substr(r).trim(),i;if(t[i]=n.substr(r,h-r).trim(),r=h+1,i==4)return 4}}}class ts{constructor(){this.minFilter=Bt.Nearest,this.magFilter=Bt.Nearest,this.uWrap=fe.ClampToEdge,this.vWrap=fe.ClampToEdge}setFilters(){const t=this.baseTexture,n=this.minFilter;n==Bt.Linear?t.scaleMode=H.SCALE_MODES.LINEAR:this.minFilter==Bt.Nearest?t.scaleMode=H.SCALE_MODES.NEAREST:(t.mipmap=H.MIPMAP_MODES.POW2,n==Bt.MipMapNearestNearest?t.scaleMode=H.SCALE_MODES.NEAREST:t.scaleMode=H.SCALE_MODES.LINEAR)}}class es extends Vn{}class ns{constructor(){this.array=new Array}add(t){const n=this.contains(t);return this.array[t|0]=t|0,!n}contains(t){return this.array[t|0]!=null}remove(t){this.array[t|0]=void 0}clear(){this.array.length=0}}class ss{constructor(){this.entries={},this.size=0}add(t){const n=this.entries[t];return this.entries[t]=!0,n?!1:(this.size++,!0)}addAll(t){const n=this.size;for(let e=0,i=t.length;e1&&(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(c,t){c.r=((t&4278190080)>>>24)/255,c.g=((t&16711680)>>>16)/255,c.b=((t&65280)>>>8)/255,c.a=(t&255)/255}static rgb888ToColor(c,t){c.r=((t&16711680)>>>16)/255,c.g=((t&65280)>>>8)/255,c.b=(t&255)/255}static fromString(c){return new Je().setFromString(c)}};let _=Je;_.WHITE=new Je(1,1,1,1),_.RED=new Je(1,0,0,1),_.GREEN=new Je(0,1,0,1),_.BLUE=new Je(0,0,1,1),_.MAGENTA=new Je(1,0,1,1);const Fe=class{static clamp(c,t,n){return ch&&or&&d=s[s.length-He.ENTRIES]){let g=s[s.length+He.PREV_ROTATION];switch(h){case A.setup:a.rotation=a.data.rotation+g*r;break;case A.first:case A.replace:g+=a.data.rotation-a.rotation,g-=(16384-(16384.499999999996-g/360|0))*360;case A.add:a.rotation+=g*r}return}const o=Et.binarySearch(s,e,He.ENTRIES),d=s[o+He.PREV_ROTATION],f=s[o],u=this.getCurvePercent((o>>1)-1,1-(e-f)/(s[o+He.PREV_TIME]-f));let m=s[o+He.ROTATION]-d;switch(m=d+(m-(16384-(16384.499999999996-m/360|0))*360)*u,h){case A.setup:a.rotation=a.data.rotation+(m-(16384-(16384.499999999996-m/360|0))*360)*r;break;case A.first:case A.replace:m+=a.data.rotation-a.rotation;case A.add:a.rotation+=(m-(16384-(16384.499999999996-m/360|0))*360)*r}}};let Vt=He;Vt.ENTRIES=2,Vt.PREV_TIME=-2,Vt.PREV_ROTATION=-1,Vt.ROTATION=1;const Dt=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t*Dt.ENTRIES)}getPropertyId(){return(1<<24)+this.boneIndex}setFrame(t,n,e,i){t*=Dt.ENTRIES,this.frames[t]=n,this.frames[t+Dt.X]=e,this.frames[t+Dt.Y]=i}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.bones[this.boneIndex];if(!a.active)return;if(e=s[s.length-Dt.ENTRIES])o=s[s.length+Dt.PREV_X],d=s[s.length+Dt.PREV_Y];else{const f=Et.binarySearch(s,e,Dt.ENTRIES);o=s[f+Dt.PREV_X],d=s[f+Dt.PREV_Y];const u=s[f],m=this.getCurvePercent(f/Dt.ENTRIES-1,1-(e-u)/(s[f+Dt.PREV_TIME]-u));o+=(s[f+Dt.X]-o)*m,d+=(s[f+Dt.Y]-d)*m}switch(h){case A.setup:a.x=a.data.x+o*r,a.y=a.data.y+d*r;break;case A.first:case A.replace:a.x+=(a.data.x+o-a.x)*r,a.y+=(a.data.y+d-a.y)*r;break;case A.add:a.x+=o*r,a.y+=d*r}}};let Jt=Dt;Jt.ENTRIES=3,Jt.PREV_TIME=-3,Jt.PREV_X=-2,Jt.PREV_Y=-1,Jt.X=1,Jt.Y=2;let te=class extends Jt{constructor(t){super(t)}getPropertyId(){return(2<<24)+this.boneIndex}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.bones[this.boneIndex];if(!a.active)return;if(e=s[s.length-te.ENTRIES])o=s[s.length+te.PREV_X]*a.data.scaleX,d=s[s.length+te.PREV_Y]*a.data.scaleY;else{const f=Et.binarySearch(s,e,te.ENTRIES);o=s[f+te.PREV_X],d=s[f+te.PREV_Y];const u=s[f],m=this.getCurvePercent(f/te.ENTRIES-1,1-(e-u)/(s[f+te.PREV_TIME]-u));o=(o+(s[f+te.X]-o)*m)*a.data.scaleX,d=(d+(s[f+te.Y]-d)*m)*a.data.scaleY}if(r==1)h==A.add?(a.scaleX+=o-a.data.scaleX,a.scaleY+=d-a.data.scaleY):(a.scaleX=o,a.scaleY=d);else{let f=0,u=0;if(l==J.mixOut)switch(h){case A.setup:f=a.data.scaleX,u=a.data.scaleY,a.scaleX=f+(Math.abs(o)*C.signum(f)-f)*r,a.scaleY=u+(Math.abs(d)*C.signum(u)-u)*r;break;case A.first:case A.replace:f=a.scaleX,u=a.scaleY,a.scaleX=f+(Math.abs(o)*C.signum(f)-f)*r,a.scaleY=u+(Math.abs(d)*C.signum(u)-u)*r;break;case A.add:f=a.scaleX,u=a.scaleY,a.scaleX=f+(Math.abs(o)*C.signum(f)-a.data.scaleX)*r,a.scaleY=u+(Math.abs(d)*C.signum(u)-a.data.scaleY)*r}else switch(h){case A.setup:f=Math.abs(a.data.scaleX)*C.signum(o),u=Math.abs(a.data.scaleY)*C.signum(d),a.scaleX=f+(o-f)*r,a.scaleY=u+(d-u)*r;break;case A.first:case A.replace:f=Math.abs(a.scaleX)*C.signum(o),u=Math.abs(a.scaleY)*C.signum(d),a.scaleX=f+(o-f)*r,a.scaleY=u+(d-u)*r;break;case A.add:f=C.signum(o),u=C.signum(d),a.scaleX=Math.abs(a.scaleX)*f+(o-Math.abs(a.data.scaleX)*f)*r,a.scaleY=Math.abs(a.scaleY)*u+(d-Math.abs(a.data.scaleY)*u)*r}}}},ee=class extends Jt{constructor(t){super(t)}getPropertyId(){return(3<<24)+this.boneIndex}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.bones[this.boneIndex];if(!a.active)return;if(e=s[s.length-ee.ENTRIES])o=s[s.length+ee.PREV_X],d=s[s.length+ee.PREV_Y];else{const f=Et.binarySearch(s,e,ee.ENTRIES);o=s[f+ee.PREV_X],d=s[f+ee.PREV_Y];const u=s[f],m=this.getCurvePercent(f/ee.ENTRIES-1,1-(e-u)/(s[f+ee.PREV_TIME]-u));o=o+(s[f+ee.X]-o)*m,d=d+(s[f+ee.Y]-d)*m}switch(h){case A.setup:a.shearX=a.data.shearX+o*r,a.shearY=a.data.shearY+d*r;break;case A.first:case A.replace:a.shearX+=(a.data.shearX+o-a.shearX)*r,a.shearY+=(a.data.shearY+d-a.shearY)*r;break;case A.add:a.shearX+=o*r,a.shearY+=d*r}}};const ft=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t*ft.ENTRIES)}getPropertyId(){return(5<<24)+this.slotIndex}setFrame(t,n,e,i,r,h){t*=ft.ENTRIES,this.frames[t]=n,this.frames[t+ft.R]=e,this.frames[t+ft.G]=i,this.frames[t+ft.B]=r,this.frames[t+ft.A]=h}apply(t,n,e,i,r,h,l){const s=t.slots[this.slotIndex];if(!s.bone.active)return;const a=this.frames;if(e=a[a.length-ft.ENTRIES]){const m=a.length;o=a[m+ft.PREV_R],d=a[m+ft.PREV_G],f=a[m+ft.PREV_B],u=a[m+ft.PREV_A]}else{const m=Et.binarySearch(a,e,ft.ENTRIES);o=a[m+ft.PREV_R],d=a[m+ft.PREV_G],f=a[m+ft.PREV_B],u=a[m+ft.PREV_A];const g=a[m],x=this.getCurvePercent(m/ft.ENTRIES-1,1-(e-g)/(a[m+ft.PREV_TIME]-g));o+=(a[m+ft.R]-o)*x,d+=(a[m+ft.G]-d)*x,f+=(a[m+ft.B]-f)*x,u+=(a[m+ft.A]-u)*x}if(r==1)s.color.set(o,d,f,u);else{const m=s.color;h==A.setup&&m.setFromColor(s.data.color),m.add((o-m.r)*r,(d-m.g)*r,(f-m.b)*r,(u-m.a)*r)}}};let Lt=ft;Lt.ENTRIES=5,Lt.PREV_TIME=-5,Lt.PREV_R=-4,Lt.PREV_G=-3,Lt.PREV_B=-2,Lt.PREV_A=-1,Lt.R=1,Lt.G=2,Lt.B=3,Lt.A=4;const nt=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t*nt.ENTRIES)}getPropertyId(){return(14<<24)+this.slotIndex}setFrame(t,n,e,i,r,h,l,s,a){t*=nt.ENTRIES,this.frames[t]=n,this.frames[t+nt.R]=e,this.frames[t+nt.G]=i,this.frames[t+nt.B]=r,this.frames[t+nt.A]=h,this.frames[t+nt.R2]=l,this.frames[t+nt.G2]=s,this.frames[t+nt.B2]=a}apply(t,n,e,i,r,h,l){const s=t.slots[this.slotIndex];if(!s.bone.active)return;const a=this.frames;if(e=a[a.length-nt.ENTRIES]){const E=a.length;o=a[E+nt.PREV_R],d=a[E+nt.PREV_G],f=a[E+nt.PREV_B],u=a[E+nt.PREV_A],m=a[E+nt.PREV_R2],g=a[E+nt.PREV_G2],x=a[E+nt.PREV_B2]}else{const E=Et.binarySearch(a,e,nt.ENTRIES);o=a[E+nt.PREV_R],d=a[E+nt.PREV_G],f=a[E+nt.PREV_B],u=a[E+nt.PREV_A],m=a[E+nt.PREV_R2],g=a[E+nt.PREV_G2],x=a[E+nt.PREV_B2];const w=a[E],b=this.getCurvePercent(E/nt.ENTRIES-1,1-(e-w)/(a[E+nt.PREV_TIME]-w));o+=(a[E+nt.R]-o)*b,d+=(a[E+nt.G]-d)*b,f+=(a[E+nt.B]-f)*b,u+=(a[E+nt.A]-u)*b,m+=(a[E+nt.R2]-m)*b,g+=(a[E+nt.G2]-g)*b,x+=(a[E+nt.B2]-x)*b}if(r==1)s.color.set(o,d,f,u),s.darkColor.set(m,g,x,1);else{const E=s.color,w=s.darkColor;h==A.setup&&(E.setFromColor(s.data.color),w.setFromColor(s.data.darkColor)),E.add((o-E.r)*r,(d-E.g)*r,(f-E.b)*r,(u-E.a)*r),w.add((m-w.r)*r,(g-w.g)*r,(x-w.b)*r,0)}}};let yt=nt;yt.ENTRIES=8,yt.PREV_TIME=-8,yt.PREV_R=-7,yt.PREV_G=-6,yt.PREV_B=-5,yt.PREV_A=-4,yt.PREV_R2=-3,yt.PREV_G2=-2,yt.PREV_B2=-1,yt.R=1,yt.G=2,yt.B=3,yt.A=4,yt.R2=5,yt.G2=6,yt.B2=7;let en=class{constructor(t){this.frames=v.newFloatArray(t),this.attachmentNames=new Array(t)}getPropertyId(){return(4<<24)+this.slotIndex}getFrameCount(){return this.frames.length}setFrame(t,n,e){this.frames[t]=n,this.attachmentNames[t]=e}apply(t,n,e,i,r,h,l){const s=t.slots[this.slotIndex];if(!s.bone.active)return;if(l==J.mixOut){h==A.setup&&this.setAttachment(t,s,s.data.attachmentName);return}const a=this.frames;if(e=a[a.length-1]?o=a.length-1:o=Et.binarySearch(a,e,1)-1;const d=this.attachmentNames[o];t.slots[this.slotIndex].setAttachment(d==null?null:t.getAttachment(this.slotIndex,d))}setAttachment(t,n,e){n.setAttachment(e==null?null:t.getAttachment(this.slotIndex,e))}},Vi=null,hs=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t),this.frameVertices=new Array(t),Vi==null&&(Vi=v.newFloatArray(64))}getPropertyId(){return(6<<27)+Number(this.attachment.id)+this.slotIndex}setFrame(t,n,e){this.frames[t]=n,this.frameVertices[t]=e}apply(t,n,e,i,r,h,l){const s=t.slots[this.slotIndex];if(!s.bone.active)return;const a=s.getAttachment();if(!(a instanceof ze)||a.deformAttachment!=this.attachment)return;const o=s.deform;o.length==0&&(h=A.setup);const d=this.frameVertices,f=d[0].length,u=this.frames;if(e=u[u.length-1]){const p=d[u.length-1];if(r==1)if(h==A.add){const S=a;if(S.bones==null){const y=S.vertices;for(let M=0;M0&&s[o-1]==d;)o--}for(;o=s[o];o++)i.push(this.events[o])}},xn=class{constructor(t){this.frames=v.newFloatArray(t),this.drawOrders=new Array(t)}getPropertyId(){return 8<<24}getFrameCount(){return this.frames.length}setFrame(t,n,e){this.frames[t]=n,this.drawOrders[t]=e}apply(t,n,e,i,r,h,l){const s=t.drawOrder,a=t.slots;if(l==J.mixOut&&h==A.setup){v.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length);return}const o=this.frames;if(e=s[s.length-ut.ENTRIES]){const m=s.length;o=s[m+ut.PREV_ROTATE],d=s[m+ut.PREV_TRANSLATE],f=s[m+ut.PREV_SCALE],u=s[m+ut.PREV_SHEAR]}else{const m=Et.binarySearch(s,e,ut.ENTRIES);o=s[m+ut.PREV_ROTATE],d=s[m+ut.PREV_TRANSLATE],f=s[m+ut.PREV_SCALE],u=s[m+ut.PREV_SHEAR];const g=s[m],x=this.getCurvePercent(m/ut.ENTRIES-1,1-(e-g)/(s[m+ut.PREV_TIME]-g));o+=(s[m+ut.ROTATE]-o)*x,d+=(s[m+ut.TRANSLATE]-d)*x,f+=(s[m+ut.SCALE]-f)*x,u+=(s[m+ut.SHEAR]-u)*x}if(h==A.setup){const m=a.data;a.rotateMix=m.rotateMix+(o-m.rotateMix)*r,a.translateMix=m.translateMix+(d-m.translateMix)*r,a.scaleMix=m.scaleMix+(f-m.scaleMix)*r,a.shearMix=m.shearMix+(u-m.shearMix)*r}else a.rotateMix+=(o-a.rotateMix)*r,a.translateMix+=(d-a.translateMix)*r,a.scaleMix+=(f-a.scaleMix)*r,a.shearMix+=(u-a.shearMix)*r}};let _t=ut;_t.ENTRIES=5,_t.PREV_TIME=-5,_t.PREV_ROTATE=-4,_t.PREV_TRANSLATE=-3,_t.PREV_SCALE=-2,_t.PREV_SHEAR=-1,_t.ROTATE=1,_t.TRANSLATE=2,_t.SCALE=3,_t.SHEAR=4;const ue=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t*ue.ENTRIES)}getPropertyId(){return(11<<24)+this.pathConstraintIndex}setFrame(t,n,e){t*=ue.ENTRIES,this.frames[t]=n,this.frames[t+ue.VALUE]=e}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.pathConstraints[this.pathConstraintIndex];if(!a.active)return;if(e=s[s.length-ue.ENTRIES])o=s[s.length+ue.PREV_VALUE];else{const d=Et.binarySearch(s,e,ue.ENTRIES);o=s[d+ue.PREV_VALUE];const f=s[d],u=this.getCurvePercent(d/ue.ENTRIES-1,1-(e-f)/(s[d+ue.PREV_TIME]-f));o+=(s[d+ue.VALUE]-o)*u}h==A.setup?a.position=a.data.position+(o-a.data.position)*r:a.position+=(o-a.position)*r}};let Te=ue;Te.ENTRIES=2,Te.PREV_TIME=-2,Te.PREV_VALUE=-1,Te.VALUE=1;let ke=class extends Te{constructor(t){super(t)}getPropertyId(){return(12<<24)+this.pathConstraintIndex}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.pathConstraints[this.pathConstraintIndex];if(!a.active)return;if(e=s[s.length-ke.ENTRIES])o=s[s.length+ke.PREV_VALUE];else{const d=Et.binarySearch(s,e,ke.ENTRIES);o=s[d+ke.PREV_VALUE];const f=s[d],u=this.getCurvePercent(d/ke.ENTRIES-1,1-(e-f)/(s[d+ke.PREV_TIME]-f));o+=(s[d+ke.VALUE]-o)*u}h==A.setup?a.spacing=a.data.spacing+(o-a.data.spacing)*r:a.spacing+=(o-a.spacing)*r}};const Ot=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t*Ot.ENTRIES)}getPropertyId(){return(13<<24)+this.pathConstraintIndex}setFrame(t,n,e,i){t*=Ot.ENTRIES,this.frames[t]=n,this.frames[t+Ot.ROTATE]=e,this.frames[t+Ot.TRANSLATE]=i}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.pathConstraints[this.pathConstraintIndex];if(!a.active)return;if(e=s[s.length-Ot.ENTRIES])o=s[s.length+Ot.PREV_ROTATE],d=s[s.length+Ot.PREV_TRANSLATE];else{const f=Et.binarySearch(s,e,Ot.ENTRIES);o=s[f+Ot.PREV_ROTATE],d=s[f+Ot.PREV_TRANSLATE];const u=s[f],m=this.getCurvePercent(f/Ot.ENTRIES-1,1-(e-u)/(s[f+Ot.PREV_TIME]-u));o+=(s[f+Ot.ROTATE]-o)*m,d+=(s[f+Ot.TRANSLATE]-d)*m}h==A.setup?(a.rotateMix=a.data.rotateMix+(o-a.data.rotateMix)*r,a.translateMix=a.data.translateMix+(d-a.data.translateMix)*r):(a.rotateMix+=(o-a.rotateMix)*r,a.translateMix+=(d-a.translateMix)*r)}};let me=Ot;me.ENTRIES=3,me.PREV_TIME=-3,me.PREV_ROTATE=-2,me.PREV_TRANSLATE=-1,me.ROTATE=1,me.TRANSLATE=2;const mt=class{constructor(t){this.tracks=new Array,this.timeScale=1,this.unkeyedState=0,this.events=new Array,this.listeners=new Array,this.queue=new fs(this),this.propertyIDs=new ns,this.animationsChanged=!1,this.trackEntryPool=new An(()=>new Xn),this.data=t}update(t){t*=this.timeScale;const n=this.tracks;for(let e=0,i=n.length;e0){if(r.delay-=h,r.delay>0)continue;h=-r.delay,r.delay=0}let l=r.next;if(l!=null){const s=r.trackLast-l.delay;if(s>=0){for(l.delay=0,l.trackTime+=r.timeScale==0?0:(s/r.timeScale+t)*l.timeScale,r.trackTime+=h,this.setCurrent(e,l,!0);l.mixingFrom!=null;)l.mixTime+=t,l=l.mixingFrom;continue}}else if(r.trackLast>=r.trackEnd&&r.mixingFrom==null){n[e]=null,this.queue.end(r),this.disposeNext(r);continue}if(r.mixingFrom!=null&&this.updateMixingFrom(r,t)){let s=r.mixingFrom;for(r.mixingFrom=null,s!=null&&(s.mixingTo=null);s!=null;)this.queue.end(s),s=s.mixingFrom}r.trackTime+=h}this.queue.drain()}updateMixingFrom(t,n){const e=t.mixingFrom;if(e==null)return!0;const i=this.updateMixingFrom(e,n);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!=null&&(e.mixingFrom.mixingTo=t),t.interruptAlpha=e.interruptAlpha,this.queue.end(e)),i):(e.trackTime+=n*e.timeScale,t.mixTime+=n,!1)}apply(t){if(t==null)throw new Error("skeleton cannot be null.");this.animationsChanged&&this._animationsChanged();const n=this.events,e=this.tracks;let i=!1;for(let l=0,s=e.length;l0)continue;i=!0;const o=l==0?A.first:a.mixBlend;let d=a.alpha;a.mixingFrom!=null?d*=this.applyMixingFrom(a,t,o):a.trackTime>=a.trackEnd&&a.next==null&&(d=0);const f=a.animationLast,u=a.getAnimationTime(),m=a.animation.timelines.length,g=a.animation.timelines;if(l==0&&d==1||o==A.add)for(let x=0;x0&&(u>1e-5&&(u=(u+(r.ascaleX-u+this.data.offsetScaleX)*e)/u),m>1e-5&&(m=(m+(r.ascaleY-m+this.data.offsetScaleY)*e)/m));const g=a.ashearY;if(i>0){let x=r.ashearY-g+this.data.offsetShearY;x-=(16384-(16384.499999999996-x/360|0))*360,a.shearY+=x*i}a.updateWorldTransformWith(d,f,o,u,m,a.ashearX,g)}}applyRelativeLocal(){const t=this.rotateMix,n=this.translateMix,e=this.scaleMix,i=this.shearMix,r=this.target;r.appliedValid||r.updateAppliedTransform();const h=this.bones;for(let l=0,s=h.length;l0&&(u>1e-5&&(u*=(r.ascaleX-1+this.data.offsetScaleX)*e+1),m>1e-5&&(m*=(r.ascaleY-1+this.data.offsetScaleY)*e+1));let g=a.ashearY;i>0&&(g+=(r.ashearY+this.data.offsetShearY)*i),a.updateWorldTransformWith(d,f,o,u,m,a.ashearX,g)}}};const Tn=class{constructor(t){if(this._updateCache=new Array,this.updateCacheReset=new Array,this.time=0,this.scaleX=1,this.scaleY=1,this.x=0,this.y=0,t==null)throw new Error("data cannot be null.");this.data=t,this.bones=new Array;for(let n=0;n=0;b--)g[b]=-1;const x=v.newArray(d-m,0);let E=0,w=0;for(let b=0;b=s[s.length-le.ENTRIES])o=s[s.length+le.PREV_X]*a.data.scaleX,d=s[s.length+le.PREV_Y]*a.data.scaleY;else{const f=Ct.binarySearch(s,e,le.ENTRIES);o=s[f+le.PREV_X],d=s[f+le.PREV_Y];const u=s[f],m=this.getCurvePercent(f/le.ENTRIES-1,1-(e-u)/(s[f+le.PREV_TIME]-u));o=(o+(s[f+le.X]-o)*m)*a.data.scaleX,d=(d+(s[f+le.Y]-d)*m)*a.data.scaleY}if(r==1)h==A.add?(a.scaleX+=o-a.data.scaleX,a.scaleY+=d-a.data.scaleY):(a.scaleX=o,a.scaleY=d);else{let f=0,u=0;if(l==J.mixOut)switch(h){case A.setup:f=a.data.scaleX,u=a.data.scaleY,a.scaleX=f+(Math.abs(o)*C.signum(f)-f)*r,a.scaleY=u+(Math.abs(d)*C.signum(u)-u)*r;break;case A.first:case A.replace:f=a.scaleX,u=a.scaleY,a.scaleX=f+(Math.abs(o)*C.signum(f)-f)*r,a.scaleY=u+(Math.abs(d)*C.signum(u)-u)*r;break;case A.add:f=a.scaleX,u=a.scaleY,a.scaleX=f+(Math.abs(o)*C.signum(f)-a.data.scaleX)*r,a.scaleY=u+(Math.abs(d)*C.signum(u)-a.data.scaleY)*r}else switch(h){case A.setup:f=Math.abs(a.data.scaleX)*C.signum(o),u=Math.abs(a.data.scaleY)*C.signum(d),a.scaleX=f+(o-f)*r,a.scaleY=u+(d-u)*r;break;case A.first:case A.replace:f=Math.abs(a.scaleX)*C.signum(o),u=Math.abs(a.scaleY)*C.signum(d),a.scaleX=f+(o-f)*r,a.scaleY=u+(d-u)*r;break;case A.add:f=C.signum(o),u=C.signum(d),a.scaleX=Math.abs(a.scaleX)*f+(o-Math.abs(a.data.scaleX)*f)*r,a.scaleY=Math.abs(a.scaleY)*u+(d-Math.abs(a.data.scaleY)*u)*r}}}},ce=class extends ge{constructor(t){super(t)}getPropertyId(){return(3<<24)+this.boneIndex}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.bones[this.boneIndex];if(e=s[s.length-ce.ENTRIES])o=s[s.length+ce.PREV_X],d=s[s.length+ce.PREV_Y];else{const f=Ct.binarySearch(s,e,ce.ENTRIES);o=s[f+ce.PREV_X],d=s[f+ce.PREV_Y];const u=s[f],m=this.getCurvePercent(f/ce.ENTRIES-1,1-(e-u)/(s[f+ce.PREV_TIME]-u));o=o+(s[f+ce.X]-o)*m,d=d+(s[f+ce.Y]-d)*m}switch(h){case A.setup:a.shearX=a.data.shearX+o*r,a.shearY=a.data.shearY+d*r;break;case A.first:case A.replace:a.shearX+=(a.data.shearX+o-a.shearX)*r,a.shearY+=(a.data.shearY+d-a.shearY)*r;break;case A.add:a.shearX+=o*r,a.shearY+=d*r}}};const gt=class extends jt{constructor(c){super(c),this.frames=v.newFloatArray(c*gt.ENTRIES)}getPropertyId(){return(5<<24)+this.slotIndex}setFrame(c,t,n,e,i,r){c*=gt.ENTRIES,this.frames[c]=t,this.frames[c+gt.R]=n,this.frames[c+gt.G]=e,this.frames[c+gt.B]=i,this.frames[c+gt.A]=r}apply(c,t,n,e,i,r,h){const l=c.slots[this.slotIndex],s=this.frames;if(n=s[s.length-gt.ENTRIES]){const u=s.length;a=s[u+gt.PREV_R],o=s[u+gt.PREV_G],d=s[u+gt.PREV_B],f=s[u+gt.PREV_A]}else{const u=Ct.binarySearch(s,n,gt.ENTRIES);a=s[u+gt.PREV_R],o=s[u+gt.PREV_G],d=s[u+gt.PREV_B],f=s[u+gt.PREV_A];const m=s[u],g=this.getCurvePercent(u/gt.ENTRIES-1,1-(n-m)/(s[u+gt.PREV_TIME]-m));a+=(s[u+gt.R]-a)*g,o+=(s[u+gt.G]-o)*g,d+=(s[u+gt.B]-d)*g,f+=(s[u+gt.A]-f)*g}if(i==1)l.color.set(a,o,d,f);else{const u=l.color;r==A.setup&&u.setFromColor(l.data.color),u.add((a-u.r)*i,(o-u.g)*i,(d-u.b)*i,(f-u.a)*i)}}};let se=gt;se.ENTRIES=5,se.PREV_TIME=-5,se.PREV_R=-4,se.PREV_G=-3,se.PREV_B=-2,se.PREV_A=-1,se.R=1,se.G=2,se.B=3,se.A=4;const st=class extends jt{constructor(c){super(c),this.frames=v.newFloatArray(c*st.ENTRIES)}getPropertyId(){return(14<<24)+this.slotIndex}setFrame(c,t,n,e,i,r,h,l,s){c*=st.ENTRIES,this.frames[c]=t,this.frames[c+st.R]=n,this.frames[c+st.G]=e,this.frames[c+st.B]=i,this.frames[c+st.A]=r,this.frames[c+st.R2]=h,this.frames[c+st.G2]=l,this.frames[c+st.B2]=s}apply(c,t,n,e,i,r,h){const l=c.slots[this.slotIndex],s=this.frames;if(n=s[s.length-st.ENTRIES]){const x=s.length;a=s[x+st.PREV_R],o=s[x+st.PREV_G],d=s[x+st.PREV_B],f=s[x+st.PREV_A],u=s[x+st.PREV_R2],m=s[x+st.PREV_G2],g=s[x+st.PREV_B2]}else{const x=Ct.binarySearch(s,n,st.ENTRIES);a=s[x+st.PREV_R],o=s[x+st.PREV_G],d=s[x+st.PREV_B],f=s[x+st.PREV_A],u=s[x+st.PREV_R2],m=s[x+st.PREV_G2],g=s[x+st.PREV_B2];const E=s[x],w=this.getCurvePercent(x/st.ENTRIES-1,1-(n-E)/(s[x+st.PREV_TIME]-E));a+=(s[x+st.R]-a)*w,o+=(s[x+st.G]-o)*w,d+=(s[x+st.B]-d)*w,f+=(s[x+st.A]-f)*w,u+=(s[x+st.R2]-u)*w,m+=(s[x+st.G2]-m)*w,g+=(s[x+st.B2]-g)*w}if(i==1)l.color.set(a,o,d,f),l.darkColor.set(u,m,g,1);else{const x=l.color,E=l.darkColor;r==A.setup&&(x.setFromColor(l.data.color),E.setFromColor(l.data.darkColor)),x.add((a-x.r)*i,(o-x.g)*i,(d-x.b)*i,(f-x.a)*i),E.add((u-E.r)*i,(m-E.g)*i,(g-E.b)*i,0)}}};let Tt=st;Tt.ENTRIES=8,Tt.PREV_TIME=-8,Tt.PREV_R=-7,Tt.PREV_G=-6,Tt.PREV_B=-5,Tt.PREV_A=-4,Tt.PREV_R2=-3,Tt.PREV_G2=-2,Tt.PREV_B2=-1,Tt.R=1,Tt.G=2,Tt.B=3,Tt.A=4,Tt.R2=5,Tt.G2=6,Tt.B2=7;let Dn=class{constructor(t){this.frames=v.newFloatArray(t),this.attachmentNames=new Array(t)}getPropertyId(){return(4<<24)+this.slotIndex}getFrameCount(){return this.frames.length}setFrame(t,n,e){this.frames[t]=n,this.attachmentNames[t]=e}apply(t,n,e,i,r,h,l){const s=t.slots[this.slotIndex];if(l==J.mixOut&&h==A.setup){const f=s.data.attachmentName;s.setAttachment(f==null?null:t.getAttachment(this.slotIndex,f));return}const a=this.frames;if(e=a[a.length-1]?o=a.length-1:o=Ct.binarySearch(a,e,1)-1;const d=this.attachmentNames[o];t.slots[this.slotIndex].setAttachment(d==null?null:t.getAttachment(this.slotIndex,d))}},$i=null,Wi=class extends jt{constructor(t){super(t),this.frames=v.newFloatArray(t),this.frameVertices=new Array(t),$i==null&&($i=v.newFloatArray(64))}getPropertyId(){return(6<<27)+Number(this.attachment.id)+this.slotIndex}setFrame(t,n,e){this.frames[t]=n,this.frameVertices[t]=e}apply(t,n,e,i,r,h,l){const s=t.slots[this.slotIndex],a=s.getAttachment();if(!(a instanceof Ge)||!a.applyDeform(this.attachment))return;const o=s.attachmentVertices;o.length==0&&(h=A.setup);const d=this.frameVertices,f=d[0].length,u=this.frames;if(e=u[u.length-1]){const p=d[u.length-1];if(r==1)if(h==A.add){const S=a;if(S.bones==null){const y=S.vertices;for(let M=0;M0&&s[o-1]==d;)o--}for(;o=s[o];o++)i.push(this.events[o])}},Ln=class{constructor(t){this.frames=v.newFloatArray(t),this.drawOrders=new Array(t)}getPropertyId(){return 8<<24}getFrameCount(){return this.frames.length}setFrame(t,n,e){this.frames[t]=n,this.drawOrders[t]=e}apply(t,n,e,i,r,h,l){const s=t.drawOrder,a=t.slots;if(l==J.mixOut&&h==A.setup){v.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length);return}const o=this.frames;if(e=s[s.length-Xe.ENTRIES])o=s[s.length+Xe.PREV_VALUE];else{const d=Ct.binarySearch(s,e,Xe.ENTRIES);o=s[d+Xe.PREV_VALUE];const f=s[d],u=this.getCurvePercent(d/Xe.ENTRIES-1,1-(e-f)/(s[d+Xe.PREV_TIME]-f));o+=(s[d+Xe.VALUE]-o)*u}h==A.setup?a.spacing=a.data.spacing+(o-a.data.spacing)*r:a.spacing+=(o-a.spacing)*r}};const qt=class extends jt{constructor(c){super(c),this.frames=v.newFloatArray(c*qt.ENTRIES)}getPropertyId(){return(13<<24)+this.pathConstraintIndex}setFrame(c,t,n,e){c*=qt.ENTRIES,this.frames[c]=t,this.frames[c+qt.ROTATE]=n,this.frames[c+qt.TRANSLATE]=e}apply(c,t,n,e,i,r,h){const l=this.frames,s=c.pathConstraints[this.pathConstraintIndex];if(n0&&(u>1e-5&&(u=(u+(r.ascaleX-u+this.data.offsetScaleX)*e)/u),m>1e-5&&(m=(m+(r.ascaleY-m+this.data.offsetScaleY)*e)/m));const g=a.ashearY;if(i>0){let x=r.ashearY-g+this.data.offsetShearY;x-=(16384-(16384.499999999996-x/360|0))*360,a.shearY+=x*i}a.updateWorldTransformWith(d,f,o,u,m,a.ashearX,g)}}applyRelativeLocal(){const t=this.rotateMix,n=this.translateMix,e=this.scaleMix,i=this.shearMix,r=this.target;r.appliedValid||r.updateAppliedTransform();const h=this.bones;for(let l=0,s=h.length;l0&&(u>1e-5&&(u*=(r.ascaleX-1+this.data.offsetScaleX)*e+1),m>1e-5&&(m*=(r.ascaleY-1+this.data.offsetScaleY)*e+1));let g=a.ashearY;i>0&&(g+=(r.ashearY+this.data.offsetShearY)*i),a.updateWorldTransformWith(d,f,o,u,m,a.ashearX,g)}}getOrder(){return this.data.order}};const In=class{constructor(t){if(this._updateCache=new Array,this.updateCacheReset=new Array,this.time=0,this.scaleX=1,this.scaleY=1,this.x=0,this.y=0,t==null)throw new Error("data cannot be null.");this.data=t,this.bones=new Array;for(let n=0;n=l[a];a++)e.push(this.events[a])}};let vn=rr;vn.propertyIds=[`${ot.event}`];const ar=class extends bt{constructor(c){super(c,ar.propertyIds),this.drawOrders=new Array(c)}getFrameCount(){return this.frames.length}setFrame(c,t,n){this.frames[c]=t,this.drawOrders[c]=n}apply(c,t,n,e,i,r,h){if(h==J.mixOut){r==A.setup&&v.arrayCopy(c.slots,0,c.drawOrder,0,c.slots.length);return}if(ne||this.queue.event(c,o)}let a=!1;for(c.loop?a=i==0||r>c.trackTime%i:a=t>=e&&c.animationLast0){const I=S.a,R=S.c,V=S.b,F=S.d;let B=0,Y=0,N=0;if(r?B=u[b-1]:o[w+1]==0?B=u[b+2]:B=Math.atan2(k,T),B-=Math.atan2(V,I),E){Y=Math.cos(B),N=Math.sin(B);const q=p.data.length;m+=(q*(Y*I-N*V)-T)*t,g+=(q*(N*I+Y*V)-k)*t}else B+=x;B>C.PI?B-=C.PI2:B<-C.PI&&(B+=C.PI2),B*=t,Y=Math.cos(B),N=Math.sin(B),S.a=Y*I-N*V,S.c=Y*R-N*F,S.b=N*I+Y*V,S.d=N*R+Y*F}p.updateAppliedTransform()}}computeWorldPositions(c,t,n){const e=this.target;let i=this.position;const r=this.spaces,h=v.setArraySize(this.positions,t*3+2);let l=this.world;const s=c.closed;let a=c.worldVerticesLength,o=a/6,d=Le.NONE;if(!c.constantSpeed){const q=c.lengths;o-=s?1:2;const z=q[o];this.data.positionMode==dt.Percent&&(i*=z);let D;switch(this.data.spacingMode){case kt.Percent:D=z;break;case kt.Proportional:D=z/t;break;default:D=1}l=v.setArraySize(this.world,8);for(let X=0,L=0,O=0;Xh&&or&&d=s[s.length-He.ENTRIES]){let g=s[s.length+He.PREV_ROTATION];switch(h){case A.setup:a.rotation=a.data.rotation+g*r;break;case A.first:case A.replace:g+=a.data.rotation-a.rotation,g-=(16384-(16384.499999999996-g/360|0))*360;case A.add:a.rotation+=g*r}return}const o=Et.binarySearch(s,e,He.ENTRIES),d=s[o+He.PREV_ROTATION],f=s[o],u=this.getCurvePercent((o>>1)-1,1-(e-f)/(s[o+He.PREV_TIME]-f));let m=s[o+He.ROTATION]-d;switch(m=d+(m-(16384-(16384.499999999996-m/360|0))*360)*u,h){case A.setup:a.rotation=a.data.rotation+(m-(16384-(16384.499999999996-m/360|0))*360)*r;break;case A.first:case A.replace:m+=a.data.rotation-a.rotation;case A.add:a.rotation+=(m-(16384-(16384.499999999996-m/360|0))*360)*r}}};let Vt=He;Vt.ENTRIES=2,Vt.PREV_TIME=-2,Vt.PREV_ROTATION=-1,Vt.ROTATION=1;const Dt=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t*Dt.ENTRIES)}getPropertyId(){return(1<<24)+this.boneIndex}setFrame(t,n,e,i){t*=Dt.ENTRIES,this.frames[t]=n,this.frames[t+Dt.X]=e,this.frames[t+Dt.Y]=i}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.bones[this.boneIndex];if(!a.active)return;if(e=s[s.length-Dt.ENTRIES])o=s[s.length+Dt.PREV_X],d=s[s.length+Dt.PREV_Y];else{const f=Et.binarySearch(s,e,Dt.ENTRIES);o=s[f+Dt.PREV_X],d=s[f+Dt.PREV_Y];const u=s[f],m=this.getCurvePercent(f/Dt.ENTRIES-1,1-(e-u)/(s[f+Dt.PREV_TIME]-u));o+=(s[f+Dt.X]-o)*m,d+=(s[f+Dt.Y]-d)*m}switch(h){case A.setup:a.x=a.data.x+o*r,a.y=a.data.y+d*r;break;case A.first:case A.replace:a.x+=(a.data.x+o-a.x)*r,a.y+=(a.data.y+d-a.y)*r;break;case A.add:a.x+=o*r,a.y+=d*r}}};let Jt=Dt;Jt.ENTRIES=3,Jt.PREV_TIME=-3,Jt.PREV_X=-2,Jt.PREV_Y=-1,Jt.X=1,Jt.Y=2;let te=class extends Jt{constructor(t){super(t)}getPropertyId(){return(2<<24)+this.boneIndex}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.bones[this.boneIndex];if(!a.active)return;if(e=s[s.length-te.ENTRIES])o=s[s.length+te.PREV_X]*a.data.scaleX,d=s[s.length+te.PREV_Y]*a.data.scaleY;else{const f=Et.binarySearch(s,e,te.ENTRIES);o=s[f+te.PREV_X],d=s[f+te.PREV_Y];const u=s[f],m=this.getCurvePercent(f/te.ENTRIES-1,1-(e-u)/(s[f+te.PREV_TIME]-u));o=(o+(s[f+te.X]-o)*m)*a.data.scaleX,d=(d+(s[f+te.Y]-d)*m)*a.data.scaleY}if(r==1)h==A.add?(a.scaleX+=o-a.data.scaleX,a.scaleY+=d-a.data.scaleY):(a.scaleX=o,a.scaleY=d);else{let f=0,u=0;if(l==J.mixOut)switch(h){case A.setup:f=a.data.scaleX,u=a.data.scaleY,a.scaleX=f+(Math.abs(o)*C.signum(f)-f)*r,a.scaleY=u+(Math.abs(d)*C.signum(u)-u)*r;break;case A.first:case A.replace:f=a.scaleX,u=a.scaleY,a.scaleX=f+(Math.abs(o)*C.signum(f)-f)*r,a.scaleY=u+(Math.abs(d)*C.signum(u)-u)*r;break;case A.add:f=a.scaleX,u=a.scaleY,a.scaleX=f+(Math.abs(o)*C.signum(f)-a.data.scaleX)*r,a.scaleY=u+(Math.abs(d)*C.signum(u)-a.data.scaleY)*r}else switch(h){case A.setup:f=Math.abs(a.data.scaleX)*C.signum(o),u=Math.abs(a.data.scaleY)*C.signum(d),a.scaleX=f+(o-f)*r,a.scaleY=u+(d-u)*r;break;case A.first:case A.replace:f=Math.abs(a.scaleX)*C.signum(o),u=Math.abs(a.scaleY)*C.signum(d),a.scaleX=f+(o-f)*r,a.scaleY=u+(d-u)*r;break;case A.add:f=C.signum(o),u=C.signum(d),a.scaleX=Math.abs(a.scaleX)*f+(o-Math.abs(a.data.scaleX)*f)*r,a.scaleY=Math.abs(a.scaleY)*u+(d-Math.abs(a.data.scaleY)*u)*r}}}},ee=class extends Jt{constructor(t){super(t)}getPropertyId(){return(3<<24)+this.boneIndex}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.bones[this.boneIndex];if(!a.active)return;if(e=s[s.length-ee.ENTRIES])o=s[s.length+ee.PREV_X],d=s[s.length+ee.PREV_Y];else{const f=Et.binarySearch(s,e,ee.ENTRIES);o=s[f+ee.PREV_X],d=s[f+ee.PREV_Y];const u=s[f],m=this.getCurvePercent(f/ee.ENTRIES-1,1-(e-u)/(s[f+ee.PREV_TIME]-u));o=o+(s[f+ee.X]-o)*m,d=d+(s[f+ee.Y]-d)*m}switch(h){case A.setup:a.shearX=a.data.shearX+o*r,a.shearY=a.data.shearY+d*r;break;case A.first:case A.replace:a.shearX+=(a.data.shearX+o-a.shearX)*r,a.shearY+=(a.data.shearY+d-a.shearY)*r;break;case A.add:a.shearX+=o*r,a.shearY+=d*r}}};const ft=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t*ft.ENTRIES)}getPropertyId(){return(5<<24)+this.slotIndex}setFrame(t,n,e,i,r,h){t*=ft.ENTRIES,this.frames[t]=n,this.frames[t+ft.R]=e,this.frames[t+ft.G]=i,this.frames[t+ft.B]=r,this.frames[t+ft.A]=h}apply(t,n,e,i,r,h,l){const s=t.slots[this.slotIndex];if(!s.bone.active)return;const a=this.frames;if(e=a[a.length-ft.ENTRIES]){const m=a.length;o=a[m+ft.PREV_R],d=a[m+ft.PREV_G],f=a[m+ft.PREV_B],u=a[m+ft.PREV_A]}else{const m=Et.binarySearch(a,e,ft.ENTRIES);o=a[m+ft.PREV_R],d=a[m+ft.PREV_G],f=a[m+ft.PREV_B],u=a[m+ft.PREV_A];const g=a[m],x=this.getCurvePercent(m/ft.ENTRIES-1,1-(e-g)/(a[m+ft.PREV_TIME]-g));o+=(a[m+ft.R]-o)*x,d+=(a[m+ft.G]-d)*x,f+=(a[m+ft.B]-f)*x,u+=(a[m+ft.A]-u)*x}if(r==1)s.color.set(o,d,f,u);else{const m=s.color;h==A.setup&&m.setFromColor(s.data.color),m.add((o-m.r)*r,(d-m.g)*r,(f-m.b)*r,(u-m.a)*r)}}};let Lt=ft;Lt.ENTRIES=5,Lt.PREV_TIME=-5,Lt.PREV_R=-4,Lt.PREV_G=-3,Lt.PREV_B=-2,Lt.PREV_A=-1,Lt.R=1,Lt.G=2,Lt.B=3,Lt.A=4;const nt=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t*nt.ENTRIES)}getPropertyId(){return(14<<24)+this.slotIndex}setFrame(t,n,e,i,r,h,l,s,a){t*=nt.ENTRIES,this.frames[t]=n,this.frames[t+nt.R]=e,this.frames[t+nt.G]=i,this.frames[t+nt.B]=r,this.frames[t+nt.A]=h,this.frames[t+nt.R2]=l,this.frames[t+nt.G2]=s,this.frames[t+nt.B2]=a}apply(t,n,e,i,r,h,l){const s=t.slots[this.slotIndex];if(!s.bone.active)return;const a=this.frames;if(e=a[a.length-nt.ENTRIES]){const E=a.length;o=a[E+nt.PREV_R],d=a[E+nt.PREV_G],f=a[E+nt.PREV_B],u=a[E+nt.PREV_A],m=a[E+nt.PREV_R2],g=a[E+nt.PREV_G2],x=a[E+nt.PREV_B2]}else{const E=Et.binarySearch(a,e,nt.ENTRIES);o=a[E+nt.PREV_R],d=a[E+nt.PREV_G],f=a[E+nt.PREV_B],u=a[E+nt.PREV_A],m=a[E+nt.PREV_R2],g=a[E+nt.PREV_G2],x=a[E+nt.PREV_B2];const w=a[E],b=this.getCurvePercent(E/nt.ENTRIES-1,1-(e-w)/(a[E+nt.PREV_TIME]-w));o+=(a[E+nt.R]-o)*b,d+=(a[E+nt.G]-d)*b,f+=(a[E+nt.B]-f)*b,u+=(a[E+nt.A]-u)*b,m+=(a[E+nt.R2]-m)*b,g+=(a[E+nt.G2]-g)*b,x+=(a[E+nt.B2]-x)*b}if(r==1)s.color.set(o,d,f,u),s.darkColor.set(m,g,x,1);else{const E=s.color,w=s.darkColor;h==A.setup&&(E.setFromColor(s.data.color),w.setFromColor(s.data.darkColor)),E.add((o-E.r)*r,(d-E.g)*r,(f-E.b)*r,(u-E.a)*r),w.add((m-w.r)*r,(g-w.g)*r,(x-w.b)*r,0)}}};let yt=nt;yt.ENTRIES=8,yt.PREV_TIME=-8,yt.PREV_R=-7,yt.PREV_G=-6,yt.PREV_B=-5,yt.PREV_A=-4,yt.PREV_R2=-3,yt.PREV_G2=-2,yt.PREV_B2=-1,yt.R=1,yt.G=2,yt.B=3,yt.A=4,yt.R2=5,yt.G2=6,yt.B2=7;let en=class{constructor(t){this.frames=v.newFloatArray(t),this.attachmentNames=new Array(t)}getPropertyId(){return(4<<24)+this.slotIndex}getFrameCount(){return this.frames.length}setFrame(t,n,e){this.frames[t]=n,this.attachmentNames[t]=e}apply(t,n,e,i,r,h,l){const s=t.slots[this.slotIndex];if(!s.bone.active)return;if(l==J.mixOut){h==A.setup&&this.setAttachment(t,s,s.data.attachmentName);return}const a=this.frames;if(e=a[a.length-1]?o=a.length-1:o=Et.binarySearch(a,e,1)-1;const d=this.attachmentNames[o];t.slots[this.slotIndex].setAttachment(d==null?null:t.getAttachment(this.slotIndex,d))}setAttachment(t,n,e){n.setAttachment(e==null?null:t.getAttachment(this.slotIndex,e))}},Vi=null,hs=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t),this.frameVertices=new Array(t),Vi==null&&(Vi=v.newFloatArray(64))}getPropertyId(){return(6<<27)+Number(this.attachment.id)+this.slotIndex}setFrame(t,n,e){this.frames[t]=n,this.frameVertices[t]=e}apply(t,n,e,i,r,h,l){const s=t.slots[this.slotIndex];if(!s.bone.active)return;const a=s.getAttachment();if(!(a instanceof ze)||a.deformAttachment!=this.attachment)return;const o=s.deform;o.length==0&&(h=A.setup);const d=this.frameVertices,f=d[0].length,u=this.frames;if(e=u[u.length-1]){const p=d[u.length-1];if(r==1)if(h==A.add){const S=a;if(S.bones==null){const y=S.vertices;for(let M=0;M0&&s[o-1]==d;)o--}for(;o=s[o];o++)i.push(this.events[o])}},xn=class{constructor(t){this.frames=v.newFloatArray(t),this.drawOrders=new Array(t)}getPropertyId(){return 8<<24}getFrameCount(){return this.frames.length}setFrame(t,n,e){this.frames[t]=n,this.drawOrders[t]=e}apply(t,n,e,i,r,h,l){const s=t.drawOrder,a=t.slots;if(l==J.mixOut&&h==A.setup){v.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length);return}const o=this.frames;if(e=s[s.length-ut.ENTRIES]){const m=s.length;o=s[m+ut.PREV_ROTATE],d=s[m+ut.PREV_TRANSLATE],f=s[m+ut.PREV_SCALE],u=s[m+ut.PREV_SHEAR]}else{const m=Et.binarySearch(s,e,ut.ENTRIES);o=s[m+ut.PREV_ROTATE],d=s[m+ut.PREV_TRANSLATE],f=s[m+ut.PREV_SCALE],u=s[m+ut.PREV_SHEAR];const g=s[m],x=this.getCurvePercent(m/ut.ENTRIES-1,1-(e-g)/(s[m+ut.PREV_TIME]-g));o+=(s[m+ut.ROTATE]-o)*x,d+=(s[m+ut.TRANSLATE]-d)*x,f+=(s[m+ut.SCALE]-f)*x,u+=(s[m+ut.SHEAR]-u)*x}if(h==A.setup){const m=a.data;a.rotateMix=m.rotateMix+(o-m.rotateMix)*r,a.translateMix=m.translateMix+(d-m.translateMix)*r,a.scaleMix=m.scaleMix+(f-m.scaleMix)*r,a.shearMix=m.shearMix+(u-m.shearMix)*r}else a.rotateMix+=(o-a.rotateMix)*r,a.translateMix+=(d-a.translateMix)*r,a.scaleMix+=(f-a.scaleMix)*r,a.shearMix+=(u-a.shearMix)*r}};let _t=ut;_t.ENTRIES=5,_t.PREV_TIME=-5,_t.PREV_ROTATE=-4,_t.PREV_TRANSLATE=-3,_t.PREV_SCALE=-2,_t.PREV_SHEAR=-1,_t.ROTATE=1,_t.TRANSLATE=2,_t.SCALE=3,_t.SHEAR=4;const ue=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t*ue.ENTRIES)}getPropertyId(){return(11<<24)+this.pathConstraintIndex}setFrame(t,n,e){t*=ue.ENTRIES,this.frames[t]=n,this.frames[t+ue.VALUE]=e}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.pathConstraints[this.pathConstraintIndex];if(!a.active)return;if(e=s[s.length-ue.ENTRIES])o=s[s.length+ue.PREV_VALUE];else{const d=Et.binarySearch(s,e,ue.ENTRIES);o=s[d+ue.PREV_VALUE];const f=s[d],u=this.getCurvePercent(d/ue.ENTRIES-1,1-(e-f)/(s[d+ue.PREV_TIME]-f));o+=(s[d+ue.VALUE]-o)*u}h==A.setup?a.position=a.data.position+(o-a.data.position)*r:a.position+=(o-a.position)*r}};let Te=ue;Te.ENTRIES=2,Te.PREV_TIME=-2,Te.PREV_VALUE=-1,Te.VALUE=1;let ke=class extends Te{constructor(t){super(t)}getPropertyId(){return(12<<24)+this.pathConstraintIndex}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.pathConstraints[this.pathConstraintIndex];if(!a.active)return;if(e=s[s.length-ke.ENTRIES])o=s[s.length+ke.PREV_VALUE];else{const d=Et.binarySearch(s,e,ke.ENTRIES);o=s[d+ke.PREV_VALUE];const f=s[d],u=this.getCurvePercent(d/ke.ENTRIES-1,1-(e-f)/(s[d+ke.PREV_TIME]-f));o+=(s[d+ke.VALUE]-o)*u}h==A.setup?a.spacing=a.data.spacing+(o-a.data.spacing)*r:a.spacing+=(o-a.spacing)*r}};const Ot=class extends Ht{constructor(t){super(t),this.frames=v.newFloatArray(t*Ot.ENTRIES)}getPropertyId(){return(13<<24)+this.pathConstraintIndex}setFrame(t,n,e,i){t*=Ot.ENTRIES,this.frames[t]=n,this.frames[t+Ot.ROTATE]=e,this.frames[t+Ot.TRANSLATE]=i}apply(t,n,e,i,r,h,l){const s=this.frames,a=t.pathConstraints[this.pathConstraintIndex];if(!a.active)return;if(e=s[s.length-Ot.ENTRIES])o=s[s.length+Ot.PREV_ROTATE],d=s[s.length+Ot.PREV_TRANSLATE];else{const f=Et.binarySearch(s,e,Ot.ENTRIES);o=s[f+Ot.PREV_ROTATE],d=s[f+Ot.PREV_TRANSLATE];const u=s[f],m=this.getCurvePercent(f/Ot.ENTRIES-1,1-(e-u)/(s[f+Ot.PREV_TIME]-u));o+=(s[f+Ot.ROTATE]-o)*m,d+=(s[f+Ot.TRANSLATE]-d)*m}h==A.setup?(a.rotateMix=a.data.rotateMix+(o-a.data.rotateMix)*r,a.translateMix=a.data.translateMix+(d-a.data.translateMix)*r):(a.rotateMix+=(o-a.rotateMix)*r,a.translateMix+=(d-a.translateMix)*r)}};let me=Ot;me.ENTRIES=3,me.PREV_TIME=-3,me.PREV_ROTATE=-2,me.PREV_TRANSLATE=-1,me.ROTATE=1,me.TRANSLATE=2;const mt=class{constructor(t){this.tracks=new Array,this.timeScale=1,this.unkeyedState=0,this.events=new Array,this.listeners=new Array,this.queue=new fs(this),this.propertyIDs=new ns,this.animationsChanged=!1,this.trackEntryPool=new An(()=>new Xn),this.data=t}update(t){t*=this.timeScale;const n=this.tracks;for(let e=0,i=n.length;e0){if(r.delay-=h,r.delay>0)continue;h=-r.delay,r.delay=0}let l=r.next;if(l!=null){const s=r.trackLast-l.delay;if(s>=0){for(l.delay=0,l.trackTime+=r.timeScale==0?0:(s/r.timeScale+t)*l.timeScale,r.trackTime+=h,this.setCurrent(e,l,!0);l.mixingFrom!=null;)l.mixTime+=t,l=l.mixingFrom;continue}}else if(r.trackLast>=r.trackEnd&&r.mixingFrom==null){n[e]=null,this.queue.end(r),this.disposeNext(r);continue}if(r.mixingFrom!=null&&this.updateMixingFrom(r,t)){let s=r.mixingFrom;for(r.mixingFrom=null,s!=null&&(s.mixingTo=null);s!=null;)this.queue.end(s),s=s.mixingFrom}r.trackTime+=h}this.queue.drain()}updateMixingFrom(t,n){const e=t.mixingFrom;if(e==null)return!0;const i=this.updateMixingFrom(e,n);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!=null&&(e.mixingFrom.mixingTo=t),t.interruptAlpha=e.interruptAlpha,this.queue.end(e)),i):(e.trackTime+=n*e.timeScale,t.mixTime+=n,!1)}apply(t){if(t==null)throw new Error("skeleton cannot be null.");this.animationsChanged&&this._animationsChanged();const n=this.events,e=this.tracks;let i=!1;for(let l=0,s=e.length;l0)continue;i=!0;const o=l==0?A.first:a.mixBlend;let d=a.alpha;a.mixingFrom!=null?d*=this.applyMixingFrom(a,t,o):a.trackTime>=a.trackEnd&&a.next==null&&(d=0);const f=a.animationLast,u=a.getAnimationTime(),m=a.animation.timelines.length,g=a.animation.timelines;if(l==0&&d==1||o==A.add)for(let x=0;x0&&(u>1e-5&&(u=(u+(r.ascaleX-u+this.data.offsetScaleX)*e)/u),m>1e-5&&(m=(m+(r.ascaleY-m+this.data.offsetScaleY)*e)/m));const g=a.ashearY;if(i>0){let x=r.ashearY-g+this.data.offsetShearY;x-=(16384-(16384.499999999996-x/360|0))*360,a.shearY+=x*i}a.updateWorldTransformWith(d,f,o,u,m,a.ashearX,g)}}applyRelativeLocal(){const t=this.rotateMix,n=this.translateMix,e=this.scaleMix,i=this.shearMix,r=this.target;r.appliedValid||r.updateAppliedTransform();const h=this.bones;for(let l=0,s=h.length;l0&&(u>1e-5&&(u*=(r.ascaleX-1+this.data.offsetScaleX)*e+1),m>1e-5&&(m*=(r.ascaleY-1+this.data.offsetScaleY)*e+1));let g=a.ashearY;i>0&&(g+=(r.ashearY+this.data.offsetShearY)*i),a.updateWorldTransformWith(d,f,o,u,m,a.ashearX,g)}}};const Tn=class{constructor(t){if(this._updateCache=new Array,this.updateCacheReset=new Array,this.time=0,this.scaleX=1,this.scaleY=1,this.x=0,this.y=0,t==null)throw new Error("data cannot be null.");this.data=t,this.bones=new Array;for(let n=0;n=0;b--)g[b]=-1;const x=v.newArray(d-m,0);let E=0,w=0;for(let b=0;b