@galacean/engine-spine 0.0.0-experimental-engine-spine-20240821 → 0.0.0-experimental-engine-spine-20241107
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -43
- package/dist/browser.js +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/package.json +62 -8
- package/types/SpineAnimationRenderer.d.ts +43 -60
- package/types/SpineGenerator.d.ts +1 -4
- package/types/index.d.ts +2 -2
- package/types/loader/EditorSpineAtlasLoader.d.ts +1 -1
- package/types/loader/LoaderUtils.d.ts +1 -1
- package/types/loader/SpineLoader.d.ts +3 -3
- package/types/loader/SpineResource.d.ts +33 -0
- package/types/util/BlendMode.d.ts +2 -2
package/dist/browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@galacean/engine")):"function"==typeof define&&define.amd?define(["exports","@galacean/engine"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).Galacean=t.Galacean||{},t.Galacean.Spine={}),t.Galacean)}(this,(function(t,e){"use strict";function n(t,e,n,r,a,i,s){try{var o=t[i](s),l=o.value}catch(t){return void n(t)}o.done?e(l):Promise.resolve(l).then(r,a)}function r(t){return function(){var e=this,r=arguments;return new Promise((function(a,i){var s=t.apply(e,r);function o(t){n(s,a,i,o,l,"next",t)}function l(t){n(s,a,i,o,l,"throw",t)}o(void 0)}))}}function a(t,e){return a=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},a(t,e)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}function s(t,e,n,r){var a,i=arguments.length,s=i<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,r);else for(var o=t.length-1;o>=0;o--)(a=t[o])&&(s=(i<3?a(s):i>3?a(e,n,s):a(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s}function o(t,e){var n,r,a,i,s={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return i={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(o){return function(l){return function(o){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,o[0]&&(s=0)),s;)try{if(n=1,r&&(a=2&o[0]?r.return:o[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,o[1])).done)return a;switch(r=0,a&&(o=[2&o[0],a.value]),o[0]){case 0:case 1:a=o;break;case 4:return s.label++,{value:o[1],done:!1};case 5:s.label++,r=o[1],o=[0];continue;case 7:o=s.ops.pop(),s.trys.pop();continue;default:if(!(a=s.trys,(a=a.length>0&&a[a.length-1])||6!==o[0]&&2!==o[0])){s=0;continue}if(3===o[0]&&(!a||o[1]>a[0]&&o[1]<a[3])){s.label=o[1];break}if(6===o[0]&&s.label<a[1]){s.label=a[1],a=o;break}if(a&&s.label<a[2]){s.label=a[2],s.ops.push(o);break}a[2]&&s.ops.pop(),s.trys.pop();continue}o=e.call(t,s)}catch(t){o=[6,t],r=0}finally{n=a=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,l])}}}function l(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function h(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return l(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function u(t,e){return null!=e&&"undefined"!=typeof Symbol&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](t):t instanceof e}"function"==typeof SuppressedError&&SuppressedError;var c=function(){function t(){this.array=new Array}var e=t.prototype;return e.add=function(t){var e=this.contains(t);return this.array[0|t]=0|t,!e},e.contains=function(t){return null!=this.array[0|t]},e.remove=function(t){this.array[0|t]=void 0},e.clear=function(){this.array.length=0},t}(),d=function(){function t(t,e,n,r){void 0===t&&(t=0),void 0===e&&(e=0),void 0===n&&(n=0),void 0===r&&(r=0),this.r=t,this.g=e,this.b=n,this.a=r}var e=t.prototype;return e.set=function(t,e,n,r){return this.r=t,this.g=e,this.b=n,this.a=r,this.clamp(),this},e.setFromColor=function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a,this},e.setFromString=function(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=(8!=t.length?255:parseInt(t.substr(6,2),16))/255,this},e.add=function(t,e,n,r){return this.r+=t,this.g+=e,this.b+=n,this.a+=r,this.clamp(),this},e.clamp=function(){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},t.rgba8888ToColor=function(t,e){t.r=((4278190080&e)>>>24)/255,t.g=((16711680&e)>>>16)/255,t.b=((65280&e)>>>8)/255,t.a=(255&e)/255},t.rgb888ToColor=function(t,e){t.r=((16711680&e)>>>16)/255,t.g=((65280&e)>>>8)/255,t.b=(255&e)/255},t}();d.WHITE=new d(1,1,1,1),d.RED=new d(1,0,0,1),d.GREEN=new d(0,1,0,1),d.BLUE=new d(0,0,1,1),d.MAGENTA=new d(1,0,1,1);var f=function(){function t(){}return t.clamp=function(t,e,n){return t<e?e:t>n?n:t},t.cosDeg=function(e){return Math.cos(e*t.degRad)},t.sinDeg=function(e){return Math.sin(e*t.degRad)},t.signum=function(t){return t>0?1:t<0?-1:0},t.toInt=function(t){return t>0?Math.floor(t):Math.ceil(t)},t.cbrt=function(t){var e=Math.pow(Math.abs(t),1/3);return t<0?-e:e},t.randomTriangular=function(e,n){return t.randomTriangularWith(e,n,.5*(e+n))},t.randomTriangularWith=function(t,e,n){var r=Math.random(),a=e-t;return r<=(n-t)/a?t+Math.sqrt(r*a*(n-t)):e-Math.sqrt((1-r)*a*(e-n))},t}();f.PI=3.1415927,f.PI2=2*f.PI,f.radiansToDegrees=180/f.PI,f.radDeg=f.radiansToDegrees,f.degreesToRadians=f.PI/180,f.degRad=f.degreesToRadians;var p=function(){function t(){}return t.prototype.apply=function(t,e,n){return t+(e-t)*this.applyInternal(n)},t}(),v=function(t){function e(e){var n;return(n=t.call(this)||this).power=2,n.power=e,n}return i(e,t),e.prototype.applyInternal=function(t){return t<=.5?Math.pow(2*t,this.power)/2:Math.pow(2*(t-1),this.power)/(this.power%2==0?-2:2)+1},e}(p),m=function(t){function e(e){return t.call(this,e)}return i(e,t),e.prototype.applyInternal=function(t){return Math.pow(t-1,this.power)*(this.power%2==0?-1:1)+1},e}(v),g=function(){function t(){}return t.arrayCopy=function(t,e,n,r,a){for(var i=e,s=r;i<e+a;i++,s++)n[s]=t[i]},t.setArraySize=function(t,e,n){void 0===n&&(n=0);var r=t.length;if(r==e)return t;if(t.length=e,r<e)for(var a=r;a<e;a++)t[a]=n;return t},t.ensureArrayCapacity=function(e,n,r){return void 0===r&&(r=0),e.length>=n?e:t.setArraySize(e,n,r)},t.newArray=function(t,e){for(var n=new Array(t),r=0;r<t;r++)n[r]=e;return n},t.newFloatArray=function(e){if(t.SUPPORTS_TYPED_ARRAYS)return new Float32Array(e);for(var n=new Array(e),r=0;r<n.length;r++)n[r]=0;return n},t.newShortArray=function(e){if(t.SUPPORTS_TYPED_ARRAYS)return new Int16Array(e);for(var n=new Array(e),r=0;r<n.length;r++)n[r]=0;return n},t.toFloatArray=function(e){return t.SUPPORTS_TYPED_ARRAYS?new Float32Array(e):e},t.toSinglePrecision=function(e){return t.SUPPORTS_TYPED_ARRAYS?Math.fround(e):e},t.webkit602BugfixHelper=function(t,e){},t.contains=function(t,e,n){for(var r=0;r<t.length;r++)if(t[r]==e)return!0;return!1},t}();g.SUPPORTS_TYPED_ARRAYS="undefined"!=typeof Float32Array;var w=function(){function t(){}return t.logBones=function(t){for(var e=0;e<t.bones.length;e++){var n=t.bones[e];console.log(n.data.name+", "+n.a+", "+n.b+", "+n.c+", "+n.d+", "+n.worldX+", "+n.worldY)}},t}(),x=function(){function t(t){this.items=new Array,this.instantiator=t}var e=t.prototype;return e.obtain=function(){return this.items.length>0?this.items.pop():this.instantiator()},e.free=function(t){t.reset&&t.reset(),this.items.push(t)},e.freeAll=function(t){for(var e=0;e<t.length;e++)this.free(t[e])},e.clear=function(){this.items.length=0},t}(),y=function(){function t(t,e){void 0===t&&(t=0),void 0===e&&(e=0),this.x=t,this.y=e}var e=t.prototype;return e.set=function(t,e){return this.x=t,this.y=e,this},e.length=function(){var t=this.x,e=this.y;return Math.sqrt(t*t+e*e)},e.normalize=function(){var t=this.length();return 0!=t&&(this.x/=t,this.y/=t),this},t}(),E=function(){function t(){this.maxDelta=.064,this.framesPerSecond=0,this.delta=0,this.totalTime=0,this.lastTime=Date.now()/1e3,this.frameCount=0,this.frameTime=0}return t.prototype.update=function(){var 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)},t}(),b=function(){function t(t){void 0===t&&(t=32),this.addedValues=0,this.lastValue=0,this.mean=0,this.dirty=!0,this.values=new Array(t)}var e=t.prototype;return e.hasEnoughData=function(){return this.addedValues>=this.values.length},e.addValue=function(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},e.getMean=function(){if(this.hasEnoughData()){if(this.dirty){for(var t=0,e=0;e<this.values.length;e++)t+=this.values[e];this.mean=t/this.values.length,this.dirty=!1}return this.mean}return 0},t}();function M(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}var T=function(t){if(null==t)throw new Error("name cannot be null.");this.name=t},S=function(t){function e(n){var r;return(r=t.call(this,n)||this).id=(65535&e.nextID++)<<11,r.worldVerticesLength=0,r.deformAttachment=M(r),r}i(e,t);var n=e.prototype;return n.computeWorldVertices=function(t,e,n,r,a,i){n=a+(n>>1)*i;var s=t.bone.skeleton,o=t.deform,l=this.vertices,h=this.bones;if(null!=h){for(var u=0,c=0,d=0;d<e;d+=2){var f=h[u];u+=f+1,c+=f}var p=s.bones;if(0==o.length)for(var v=a,m=3*c;v<n;v+=i){var g=0,w=0,x=h[u++];for(x+=u;u<x;u++,m+=3){var y=p[h[u]],E=l[m],b=l[m+1],M=l[m+2];g+=(E*y.a+b*y.b+y.worldX)*M,w+=(E*y.c+b*y.d+y.worldY)*M}r[v]=g,r[v+1]=w}else for(var T=o,S=a,A=3*c,I=c<<1;S<n;S+=i){var R=0,C=0,P=h[u++];for(P+=u;u<P;u++,A+=3,I+=2){var V=p[h[u]],_=l[A]+T[I],k=l[A+1]+T[I+1],F=l[A+2];R+=(_*V.a+k*V.b+V.worldX)*F,C+=(_*V.c+k*V.d+V.worldY)*F}r[S]=R,r[S+1]=C}}else{o.length>0&&(l=o);for(var B=t.bone,N=B.worldX,O=B.worldY,D=B.a,L=B.b,X=B.c,Y=B.d,W=e,U=a;U<n;W+=2,U+=i){var q=l[W],H=l[W+1];r[U]=q*D+H*L+N,r[U+1]=q*X+H*Y+O}}},n.copyTo=function(t){null!=this.bones?(t.bones=new Array(this.bones.length),g.arrayCopy(this.bones,0,t.bones,0,this.bones.length)):t.bones=null,null!=this.vertices?(t.vertices=g.newFloatArray(this.vertices.length),g.arrayCopy(this.vertices,0,t.vertices,0,this.vertices.length)):t.vertices=null,t.worldVerticesLength=this.worldVerticesLength,t.deformAttachment=this.deformAttachment},e}(T);S.nextID=0;var A,I,R,C=function(){function t(t,e,n){if(null==t)throw new Error("name cannot be null.");if(null==e)throw new Error("timelines cannot be null.");this.name=t,this.timelines=e,this.timelineIds=[];for(var r=0;r<e.length;r++)this.timelineIds[e[r].getPropertyId()]=!0;this.duration=n}var e=t.prototype;return e.hasTimeline=function(t){return 1==this.timelineIds[t]},e.apply=function(t,e,n,r,a,i,s,o){if(null==t)throw new Error("skeleton cannot be null.");r&&0!=this.duration&&(n%=this.duration,e>0&&(e%=this.duration));for(var l=this.timelines,h=0,u=l.length;h<u;h++)l[h].apply(t,e,n,a,i,s,o)},t.binarySearch=function(t,e,n){void 0===n&&(n=1);var r=0,a=t.length/n-2;if(0==a)return n;for(var i=a>>>1;;){if(t[(i+1)*n]<=e?r=i+1:a=i,r==a)return(r+1)*n;i=r+a>>>1}},t.linearSearch=function(t,e,n){for(var r=0,a=t.length-n;r<=a;r+=n)if(t[r]>e)return r;return-1},t}();t.MixBlend=void 0,(A=t.MixBlend||(t.MixBlend={}))[A.setup=0]="setup",A[A.first=1]="first",A[A.replace=2]="replace",A[A.add=3]="add",t.MixDirection=void 0,(I=t.MixDirection||(t.MixDirection={}))[I.mixIn=0]="mixIn",I[I.mixOut=1]="mixOut",t.TimelineType=void 0,(R=t.TimelineType||(t.TimelineType={}))[R.rotate=0]="rotate",R[R.translate=1]="translate",R[R.scale=2]="scale",R[R.shear=3]="shear",R[R.attachment=4]="attachment",R[R.color=5]="color",R[R.deform=6]="deform",R[R.event=7]="event",R[R.drawOrder=8]="drawOrder",R[R.ikConstraint=9]="ikConstraint",R[R.transformConstraint=10]="transformConstraint",R[R.pathConstraintPosition=11]="pathConstraintPosition",R[R.pathConstraintSpacing=12]="pathConstraintSpacing",R[R.pathConstraintMix=13]="pathConstraintMix",R[R.twoColor=14]="twoColor";var P=function(){function t(e){if(e<=0)throw new Error("frameCount must be > 0: "+e);this.curves=g.newFloatArray((e-1)*t.BEZIER_SIZE)}var e=t.prototype;return e.getFrameCount=function(){return this.curves.length/t.BEZIER_SIZE+1},e.setLinear=function(e){this.curves[e*t.BEZIER_SIZE]=t.LINEAR},e.setStepped=function(e){this.curves[e*t.BEZIER_SIZE]=t.STEPPED},e.getCurveType=function(e){var n=e*t.BEZIER_SIZE;if(n==this.curves.length)return t.LINEAR;var r=this.curves[n];return r==t.LINEAR?t.LINEAR:r==t.STEPPED?t.STEPPED:t.BEZIER},e.setCurve=function(e,n,r,a,i){var s=.03*(2*-n+a),o=.03*(2*-r+i),l=.006*(3*(n-a)+1),h=.006*(3*(r-i)+1),u=2*s+l,c=2*o+h,d=.3*n+s+.16666667*l,f=.3*r+o+.16666667*h,p=e*t.BEZIER_SIZE,v=this.curves;v[p++]=t.BEZIER;for(var m=d,g=f,w=p+t.BEZIER_SIZE-1;p<w;p+=2)v[p]=m,v[p+1]=g,d+=u,f+=c,u+=l,c+=h,m+=d,g+=f},e.getCurvePercent=function(e,n){n=f.clamp(n,0,1);var r=this.curves,a=e*t.BEZIER_SIZE,i=r[a];if(i==t.LINEAR)return n;if(i==t.STEPPED)return 0;for(var s=0,o=++a,l=a+t.BEZIER_SIZE-1;a<l;a+=2)if((s=r[a])>=n){var h=void 0,u=void 0;return a==o?(h=0,u=0):(h=r[a-2],u=r[a-1]),u+(r[a+1]-u)*(n-h)/(s-h)}var c=r[a-1];return c+(1-c)*(n-s)/(1-s)},t}();P.LINEAR=0,P.STEPPED=1,P.BEZIER=2,P.BEZIER_SIZE=19;var V=function(t){function e(e){var n;return(n=t.call(this,e)||this).frames=g.newFloatArray(e<<1),n}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return 0+this.boneIndex},n.setFrame=function(t,n,r){t<<=1,this.frames[t]=n,this.frames[t+e.ROTATION]=r},n.apply=function(t,n,r,a,i,s,o){var l=this.frames,h=t.bones[this.boneIndex];if(h.active)if(r<l[0])switch(s){case 0:return void(h.rotation=h.data.rotation);case 1:var u=h.data.rotation-h.rotation;h.rotation+=(u-360*(16384-(16384.499999999996-u/360|0)))*i}else if(r>=l[l.length-e.ENTRIES]){var c=l[l.length+e.PREV_ROTATION];switch(s){case 0:h.rotation=h.data.rotation+c*i;break;case 1:case 2:c+=h.data.rotation-h.rotation,c-=360*(16384-(16384.499999999996-c/360|0));case 3:h.rotation+=c*i}}else{var d=C.binarySearch(l,r,e.ENTRIES),f=l[d+e.PREV_ROTATION],p=l[d],v=this.getCurvePercent((d>>1)-1,1-(r-p)/(l[d+e.PREV_TIME]-p)),m=l[d+e.ROTATION]-f;switch(m=f+(m-360*(16384-(16384.499999999996-m/360|0)))*v,s){case 0:h.rotation=h.data.rotation+(m-360*(16384-(16384.499999999996-m/360|0)))*i;break;case 1:case 2:m+=h.data.rotation-h.rotation;case 3:h.rotation+=(m-360*(16384-(16384.499999999996-m/360|0)))*i}}},e}(P);V.ENTRIES=2,V.PREV_TIME=-2,V.PREV_ROTATION=-1,V.ROTATION=1;var _=function(t){function e(n){var r;return(r=t.call(this,n)||this).frames=g.newFloatArray(n*e.ENTRIES),r}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(1<<24)+this.boneIndex},n.setFrame=function(t,n,r,a){t*=e.ENTRIES,this.frames[t]=n,this.frames[t+e.X]=r,this.frames[t+e.Y]=a},n.apply=function(t,n,r,a,i,s,o){var l=this.frames,h=t.bones[this.boneIndex];if(h.active)if(r<l[0])switch(s){case 0:return h.x=h.data.x,void(h.y=h.data.y);case 1:h.x+=(h.data.x-h.x)*i,h.y+=(h.data.y-h.y)*i}else{var u=0,c=0;if(r>=l[l.length-e.ENTRIES])u=l[l.length+e.PREV_X],c=l[l.length+e.PREV_Y];else{var d=C.binarySearch(l,r,e.ENTRIES);u=l[d+e.PREV_X],c=l[d+e.PREV_Y];var f=l[d],p=this.getCurvePercent(d/e.ENTRIES-1,1-(r-f)/(l[d+e.PREV_TIME]-f));u+=(l[d+e.X]-u)*p,c+=(l[d+e.Y]-c)*p}switch(s){case 0:h.x=h.data.x+u*i,h.y=h.data.y+c*i;break;case 1:case 2:h.x+=(h.data.x+u-h.x)*i,h.y+=(h.data.y+c-h.y)*i;break;case 3:h.x+=u*i,h.y+=c*i}}},e}(P);_.ENTRIES=3,_.PREV_TIME=-3,_.PREV_X=-2,_.PREV_Y=-1,_.X=1,_.Y=2;var k=function(t){function e(e){return t.call(this,e)}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(2<<24)+this.boneIndex},n.apply=function(t,n,r,a,i,s,o){var l=this.frames,h=t.bones[this.boneIndex];if(h.active)if(r<l[0])switch(s){case 0:return h.scaleX=h.data.scaleX,void(h.scaleY=h.data.scaleY);case 1:h.scaleX+=(h.data.scaleX-h.scaleX)*i,h.scaleY+=(h.data.scaleY-h.scaleY)*i}else{var u=0,c=0;if(r>=l[l.length-e.ENTRIES])u=l[l.length+e.PREV_X]*h.data.scaleX,c=l[l.length+e.PREV_Y]*h.data.scaleY;else{var d=C.binarySearch(l,r,e.ENTRIES);u=l[d+e.PREV_X],c=l[d+e.PREV_Y];var p=l[d],v=this.getCurvePercent(d/e.ENTRIES-1,1-(r-p)/(l[d+e.PREV_TIME]-p));u=(u+(l[d+e.X]-u)*v)*h.data.scaleX,c=(c+(l[d+e.Y]-c)*v)*h.data.scaleY}if(1==i)3==s?(h.scaleX+=u-h.data.scaleX,h.scaleY+=c-h.data.scaleY):(h.scaleX=u,h.scaleY=c);else{var m=0,g=0;if(1==o)switch(s){case 0:m=h.data.scaleX,g=h.data.scaleY,h.scaleX=m+(Math.abs(u)*f.signum(m)-m)*i,h.scaleY=g+(Math.abs(c)*f.signum(g)-g)*i;break;case 1:case 2:m=h.scaleX,g=h.scaleY,h.scaleX=m+(Math.abs(u)*f.signum(m)-m)*i,h.scaleY=g+(Math.abs(c)*f.signum(g)-g)*i;break;case 3:m=h.scaleX,g=h.scaleY,h.scaleX=m+(Math.abs(u)*f.signum(m)-h.data.scaleX)*i,h.scaleY=g+(Math.abs(c)*f.signum(g)-h.data.scaleY)*i}else switch(s){case 0:m=Math.abs(h.data.scaleX)*f.signum(u),g=Math.abs(h.data.scaleY)*f.signum(c),h.scaleX=m+(u-m)*i,h.scaleY=g+(c-g)*i;break;case 1:case 2:m=Math.abs(h.scaleX)*f.signum(u),g=Math.abs(h.scaleY)*f.signum(c),h.scaleX=m+(u-m)*i,h.scaleY=g+(c-g)*i;break;case 3:m=f.signum(u),g=f.signum(c),h.scaleX=Math.abs(h.scaleX)*m+(u-Math.abs(h.data.scaleX)*m)*i,h.scaleY=Math.abs(h.scaleY)*g+(c-Math.abs(h.data.scaleY)*g)*i}}}},e}(_),F=function(t){function e(e){return t.call(this,e)}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(3<<24)+this.boneIndex},n.apply=function(t,n,r,a,i,s,o){var l=this.frames,h=t.bones[this.boneIndex];if(h.active)if(r<l[0])switch(s){case 0:return h.shearX=h.data.shearX,void(h.shearY=h.data.shearY);case 1:h.shearX+=(h.data.shearX-h.shearX)*i,h.shearY+=(h.data.shearY-h.shearY)*i}else{var u=0,c=0;if(r>=l[l.length-e.ENTRIES])u=l[l.length+e.PREV_X],c=l[l.length+e.PREV_Y];else{var d=C.binarySearch(l,r,e.ENTRIES);u=l[d+e.PREV_X],c=l[d+e.PREV_Y];var f=l[d],p=this.getCurvePercent(d/e.ENTRIES-1,1-(r-f)/(l[d+e.PREV_TIME]-f));u+=(l[d+e.X]-u)*p,c+=(l[d+e.Y]-c)*p}switch(s){case 0:h.shearX=h.data.shearX+u*i,h.shearY=h.data.shearY+c*i;break;case 1:case 2:h.shearX+=(h.data.shearX+u-h.shearX)*i,h.shearY+=(h.data.shearY+c-h.shearY)*i;break;case 3:h.shearX+=u*i,h.shearY+=c*i}}},e}(_),B=function(t){function e(n){var r;return(r=t.call(this,n)||this).frames=g.newFloatArray(n*e.ENTRIES),r}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(5<<24)+this.slotIndex},n.setFrame=function(t,n,r,a,i,s){t*=e.ENTRIES,this.frames[t]=n,this.frames[t+e.R]=r,this.frames[t+e.G]=a,this.frames[t+e.B]=i,this.frames[t+e.A]=s},n.apply=function(t,n,r,a,i,s,o){var l=t.slots[this.slotIndex];if(l.bone.active){var h=this.frames;if(r<h[0])switch(s){case 0:return void l.color.setFromColor(l.data.color);case 1:var u=l.color,c=l.data.color;u.add((c.r-u.r)*i,(c.g-u.g)*i,(c.b-u.b)*i,(c.a-u.a)*i)}else{var d=0,f=0,p=0,v=0;if(r>=h[h.length-e.ENTRIES]){var m=h.length;d=h[m+e.PREV_R],f=h[m+e.PREV_G],p=h[m+e.PREV_B],v=h[m+e.PREV_A]}else{var g=C.binarySearch(h,r,e.ENTRIES);d=h[g+e.PREV_R],f=h[g+e.PREV_G],p=h[g+e.PREV_B],v=h[g+e.PREV_A];var w=h[g],x=this.getCurvePercent(g/e.ENTRIES-1,1-(r-w)/(h[g+e.PREV_TIME]-w));d+=(h[g+e.R]-d)*x,f+=(h[g+e.G]-f)*x,p+=(h[g+e.B]-p)*x,v+=(h[g+e.A]-v)*x}if(1==i)l.color.set(d,f,p,v);else{var y=l.color;0==s&&y.setFromColor(l.data.color),y.add((d-y.r)*i,(f-y.g)*i,(p-y.b)*i,(v-y.a)*i)}}}},e}(P);B.ENTRIES=5,B.PREV_TIME=-5,B.PREV_R=-4,B.PREV_G=-3,B.PREV_B=-2,B.PREV_A=-1,B.R=1,B.G=2,B.B=3,B.A=4;var N=function(t){function e(n){var r;return(r=t.call(this,n)||this).frames=g.newFloatArray(n*e.ENTRIES),r}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(14<<24)+this.slotIndex},n.setFrame=function(t,n,r,a,i,s,o,l,h){t*=e.ENTRIES,this.frames[t]=n,this.frames[t+e.R]=r,this.frames[t+e.G]=a,this.frames[t+e.B]=i,this.frames[t+e.A]=s,this.frames[t+e.R2]=o,this.frames[t+e.G2]=l,this.frames[t+e.B2]=h},n.apply=function(t,n,r,a,i,s,o){var l=t.slots[this.slotIndex];if(l.bone.active){var h=this.frames;if(r<h[0])switch(s){case 0:return l.color.setFromColor(l.data.color),void l.darkColor.setFromColor(l.data.darkColor);case 1:var u=l.color,c=l.darkColor,d=l.data.color,f=l.data.darkColor;u.add((d.r-u.r)*i,(d.g-u.g)*i,(d.b-u.b)*i,(d.a-u.a)*i),c.add((f.r-c.r)*i,(f.g-c.g)*i,(f.b-c.b)*i,0)}else{var p=0,v=0,m=0,g=0,w=0,x=0,y=0;if(r>=h[h.length-e.ENTRIES]){var E=h.length;p=h[E+e.PREV_R],v=h[E+e.PREV_G],m=h[E+e.PREV_B],g=h[E+e.PREV_A],w=h[E+e.PREV_R2],x=h[E+e.PREV_G2],y=h[E+e.PREV_B2]}else{var b=C.binarySearch(h,r,e.ENTRIES);p=h[b+e.PREV_R],v=h[b+e.PREV_G],m=h[b+e.PREV_B],g=h[b+e.PREV_A],w=h[b+e.PREV_R2],x=h[b+e.PREV_G2],y=h[b+e.PREV_B2];var M=h[b],T=this.getCurvePercent(b/e.ENTRIES-1,1-(r-M)/(h[b+e.PREV_TIME]-M));p+=(h[b+e.R]-p)*T,v+=(h[b+e.G]-v)*T,m+=(h[b+e.B]-m)*T,g+=(h[b+e.A]-g)*T,w+=(h[b+e.R2]-w)*T,x+=(h[b+e.G2]-x)*T,y+=(h[b+e.B2]-y)*T}if(1==i)l.color.set(p,v,m,g),l.darkColor.set(w,x,y,1);else{var S=l.color,A=l.darkColor;0==s&&(S.setFromColor(l.data.color),A.setFromColor(l.data.darkColor)),S.add((p-S.r)*i,(v-S.g)*i,(m-S.b)*i,(g-S.a)*i),A.add((w-A.r)*i,(x-A.g)*i,(y-A.b)*i,0)}}}},e}(P);N.ENTRIES=8,N.PREV_TIME=-8,N.PREV_R=-7,N.PREV_G=-6,N.PREV_B=-5,N.PREV_A=-4,N.PREV_R2=-3,N.PREV_G2=-2,N.PREV_B2=-1,N.R=1,N.G=2,N.B=3,N.A=4,N.R2=5,N.G2=6,N.B2=7;var O=function(){function t(t){this.frames=g.newFloatArray(t),this.attachmentNames=new Array(t)}var e=t.prototype;return e.getPropertyId=function(){return(4<<24)+this.slotIndex},e.getFrameCount=function(){return this.frames.length},e.setFrame=function(t,e,n){this.frames[t]=e,this.attachmentNames[t]=n},e.apply=function(t,e,n,r,a,i,s){var o=t.slots[this.slotIndex];if(o.bone.active)if(1!=s){var l=this.frames;if(n<l[0])0!=i&&1!=i||this.setAttachment(t,o,o.data.attachmentName);else{var h=0;h=n>=l[l.length-1]?l.length-1:C.binarySearch(l,n,1)-1;var u=this.attachmentNames[h];t.slots[this.slotIndex].setAttachment(null==u?null:t.getAttachment(this.slotIndex,u))}}else 0==i&&this.setAttachment(t,o,o.data.attachmentName)},e.setAttachment=function(t,e,n){e.attachment=null==n?null:t.getAttachment(this.slotIndex,n)},t}(),D=null,L=function(t){function e(e){var n;return(n=t.call(this,e)||this).frames=g.newFloatArray(e),n.frameVertices=new Array(e),null==D&&(D=g.newFloatArray(64)),n}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(6<<27)+ +this.attachment.id+this.slotIndex},n.setFrame=function(t,e,n){this.frames[t]=e,this.frameVertices[t]=n},n.apply=function(t,e,n,r,a,i,s){var o=t.slots[this.slotIndex];if(o.bone.active){var l=o.getAttachment();if(u(l,S)&&l.deformAttachment==this.attachment){var h=o.deform;0==h.length&&(i=0);var c=this.frameVertices,d=c[0].length,f=this.frames;if(n<f[0]){var p=l;switch(i){case 0:return void(h.length=0);case 1:if(1==a){h.length=0;break}var v=g.setArraySize(h,d);if(null==p.bones)for(var m=p.vertices,w=0;w<d;w++)v[w]+=(m[w]-v[w])*a;else{a=1-a;for(w=0;w<d;w++)v[w]*=a}}}else{var x=g.setArraySize(h,d);if(n>=f[f.length-1]){var y=c[f.length-1];if(1==a)if(3==i){var E=l;if(null==E.bones)for(var b=E.vertices,M=0;M<d;M++)x[M]+=y[M]-b[M];else for(var T=0;T<d;T++)x[T]+=y[T]}else g.arrayCopy(y,0,x,0,d);else switch(i){case 0:var A=l;if(null==A.bones)for(var I=A.vertices,R=0;R<d;R++){var P=I[R];x[R]=P+(y[R]-P)*a}else for(var V=0;V<d;V++)x[V]=y[V]*a;break;case 1:case 2:for(var _=0;_<d;_++)x[_]+=(y[_]-x[_])*a;break;case 3:var k=l;if(null==k.bones)for(var F=k.vertices,B=0;B<d;B++)x[B]+=(y[B]-F[B])*a;else for(var N=0;N<d;N++)x[N]+=y[N]*a}}else{var O=C.binarySearch(f,n),D=c[O-1],L=c[O],X=f[O],Y=this.getCurvePercent(O-1,1-(n-X)/(f[O-1]-X));if(1==a)if(3==i){var W=l;if(null==W.bones)for(var U=W.vertices,q=0;q<d;q++){var H=D[q];x[q]+=H+(L[q]-H)*Y-U[q]}else for(var j=0;j<d;j++){var G=D[j];x[j]+=G+(L[j]-G)*Y}}else for(var z=0;z<d;z++){var Z=D[z];x[z]=Z+(L[z]-Z)*Y}else switch(i){case 0:var Q=l;if(null==Q.bones)for(var J=Q.vertices,K=0;K<d;K++){var $=D[K],tt=J[K];x[K]=tt+($+(L[K]-$)*Y-tt)*a}else for(var et=0;et<d;et++){var nt=D[et];x[et]=(nt+(L[et]-nt)*Y)*a}break;case 1:case 2:for(var rt=0;rt<d;rt++){var at=D[rt];x[rt]+=(at+(L[rt]-at)*Y-x[rt])*a}break;case 3:var it=l;if(null==it.bones)for(var st=it.vertices,ot=0;ot<d;ot++){var lt=D[ot];x[ot]+=(lt+(L[ot]-lt)*Y-st[ot])*a}else for(var ht=0;ht<d;ht++){var ut=D[ht];x[ht]+=(ut+(L[ht]-ut)*Y)*a}}}}}}},e}(P),X=function(){function t(t){this.frames=g.newFloatArray(t),this.events=new Array(t)}var e=t.prototype;return e.getPropertyId=function(){return 7<<24},e.getFrameCount=function(){return this.frames.length},e.setFrame=function(t,e){this.frames[t]=e.time,this.events[t]=e},e.apply=function(t,e,n,r,a,i,s){if(null!=r){var o=this.frames,l=this.frames.length;if(e>n)this.apply(t,e,Number.MAX_VALUE,r,a,i,s),e=-1;else if(e>=o[l-1])return;if(!(n<o[0])){var h=0;if(e<o[0])h=0;else for(var u=o[h=C.binarySearch(o,e)];h>0&&o[h-1]==u;)h--;for(;h<l&&n>=o[h];h++)r.push(this.events[h])}}},t}(),Y=function(){function t(t){this.frames=g.newFloatArray(t),this.drawOrders=new Array(t)}var e=t.prototype;return e.getPropertyId=function(){return 8<<24},e.getFrameCount=function(){return this.frames.length},e.setFrame=function(t,e,n){this.frames[t]=e,this.drawOrders[t]=n},e.apply=function(t,e,n,r,a,i,s){var o=t.drawOrder,l=t.slots;if(1!=s){var h=this.frames;if(n<h[0])0!=i&&1!=i||g.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length);else{var u=0;u=n>=h[h.length-1]?h.length-1:C.binarySearch(h,n)-1;var c=this.drawOrders[u];if(null==c)g.arrayCopy(l,0,o,0,l.length);else for(var d=0,f=c.length;d<f;d++)o[d]=l[c[d]]}}else 0==i&&g.arrayCopy(t.slots,0,t.drawOrder,0,t.slots.length)},t}(),W=function(t){function e(n){var r;return(r=t.call(this,n)||this).frames=g.newFloatArray(n*e.ENTRIES),r}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(9<<24)+this.ikConstraintIndex},n.setFrame=function(t,n,r,a,i,s,o){t*=e.ENTRIES,this.frames[t]=n,this.frames[t+e.MIX]=r,this.frames[t+e.SOFTNESS]=a,this.frames[t+e.BEND_DIRECTION]=i,this.frames[t+e.COMPRESS]=s?1:0,this.frames[t+e.STRETCH]=o?1:0},n.apply=function(t,n,r,a,i,s,o){var l=this.frames,h=t.ikConstraints[this.ikConstraintIndex];if(h.active)if(r<l[0])switch(s){case 0:return h.mix=h.data.mix,h.softness=h.data.softness,h.bendDirection=h.data.bendDirection,h.compress=h.data.compress,void(h.stretch=h.data.stretch);case 1:h.mix+=(h.data.mix-h.mix)*i,h.softness+=(h.data.softness-h.softness)*i,h.bendDirection=h.data.bendDirection,h.compress=h.data.compress,h.stretch=h.data.stretch}else if(r>=l[l.length-e.ENTRIES])0==s?(h.mix=h.data.mix+(l[l.length+e.PREV_MIX]-h.data.mix)*i,h.softness=h.data.softness+(l[l.length+e.PREV_SOFTNESS]-h.data.softness)*i,1==o?(h.bendDirection=h.data.bendDirection,h.compress=h.data.compress,h.stretch=h.data.stretch):(h.bendDirection=l[l.length+e.PREV_BEND_DIRECTION],h.compress=0!=l[l.length+e.PREV_COMPRESS],h.stretch=0!=l[l.length+e.PREV_STRETCH])):(h.mix+=(l[l.length+e.PREV_MIX]-h.mix)*i,h.softness+=(l[l.length+e.PREV_SOFTNESS]-h.softness)*i,0==o&&(h.bendDirection=l[l.length+e.PREV_BEND_DIRECTION],h.compress=0!=l[l.length+e.PREV_COMPRESS],h.stretch=0!=l[l.length+e.PREV_STRETCH]));else{var u=C.binarySearch(l,r,e.ENTRIES),c=l[u+e.PREV_MIX],d=l[u+e.PREV_SOFTNESS],f=l[u],p=this.getCurvePercent(u/e.ENTRIES-1,1-(r-f)/(l[u+e.PREV_TIME]-f));0==s?(h.mix=h.data.mix+(c+(l[u+e.MIX]-c)*p-h.data.mix)*i,h.softness=h.data.softness+(d+(l[u+e.SOFTNESS]-d)*p-h.data.softness)*i,1==o?(h.bendDirection=h.data.bendDirection,h.compress=h.data.compress,h.stretch=h.data.stretch):(h.bendDirection=l[u+e.PREV_BEND_DIRECTION],h.compress=0!=l[u+e.PREV_COMPRESS],h.stretch=0!=l[u+e.PREV_STRETCH])):(h.mix+=(c+(l[u+e.MIX]-c)*p-h.mix)*i,h.softness+=(d+(l[u+e.SOFTNESS]-d)*p-h.softness)*i,0==o&&(h.bendDirection=l[u+e.PREV_BEND_DIRECTION],h.compress=0!=l[u+e.PREV_COMPRESS],h.stretch=0!=l[u+e.PREV_STRETCH]))}},e}(P);W.ENTRIES=6,W.PREV_TIME=-6,W.PREV_MIX=-5,W.PREV_SOFTNESS=-4,W.PREV_BEND_DIRECTION=-3,W.PREV_COMPRESS=-2,W.PREV_STRETCH=-1,W.MIX=1,W.SOFTNESS=2,W.BEND_DIRECTION=3,W.COMPRESS=4,W.STRETCH=5;var U=function(t){function e(n){var r;return(r=t.call(this,n)||this).frames=g.newFloatArray(n*e.ENTRIES),r}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(10<<24)+this.transformConstraintIndex},n.setFrame=function(t,n,r,a,i,s){t*=e.ENTRIES,this.frames[t]=n,this.frames[t+e.ROTATE]=r,this.frames[t+e.TRANSLATE]=a,this.frames[t+e.SCALE]=i,this.frames[t+e.SHEAR]=s},n.apply=function(t,n,r,a,i,s,o){var l=this.frames,h=t.transformConstraints[this.transformConstraintIndex];if(h.active)if(r<l[0]){var u=h.data;switch(s){case 0:return h.rotateMix=u.rotateMix,h.translateMix=u.translateMix,h.scaleMix=u.scaleMix,void(h.shearMix=u.shearMix);case 1:h.rotateMix+=(u.rotateMix-h.rotateMix)*i,h.translateMix+=(u.translateMix-h.translateMix)*i,h.scaleMix+=(u.scaleMix-h.scaleMix)*i,h.shearMix+=(u.shearMix-h.shearMix)*i}}else{var c=0,d=0,f=0,p=0;if(r>=l[l.length-e.ENTRIES]){var v=l.length;c=l[v+e.PREV_ROTATE],d=l[v+e.PREV_TRANSLATE],f=l[v+e.PREV_SCALE],p=l[v+e.PREV_SHEAR]}else{var m=C.binarySearch(l,r,e.ENTRIES);c=l[m+e.PREV_ROTATE],d=l[m+e.PREV_TRANSLATE],f=l[m+e.PREV_SCALE],p=l[m+e.PREV_SHEAR];var g=l[m],w=this.getCurvePercent(m/e.ENTRIES-1,1-(r-g)/(l[m+e.PREV_TIME]-g));c+=(l[m+e.ROTATE]-c)*w,d+=(l[m+e.TRANSLATE]-d)*w,f+=(l[m+e.SCALE]-f)*w,p+=(l[m+e.SHEAR]-p)*w}if(0==s){var x=h.data;h.rotateMix=x.rotateMix+(c-x.rotateMix)*i,h.translateMix=x.translateMix+(d-x.translateMix)*i,h.scaleMix=x.scaleMix+(f-x.scaleMix)*i,h.shearMix=x.shearMix+(p-x.shearMix)*i}else h.rotateMix+=(c-h.rotateMix)*i,h.translateMix+=(d-h.translateMix)*i,h.scaleMix+=(f-h.scaleMix)*i,h.shearMix+=(p-h.shearMix)*i}},e}(P);U.ENTRIES=5,U.PREV_TIME=-5,U.PREV_ROTATE=-4,U.PREV_TRANSLATE=-3,U.PREV_SCALE=-2,U.PREV_SHEAR=-1,U.ROTATE=1,U.TRANSLATE=2,U.SCALE=3,U.SHEAR=4;var q=function(t){function e(n){var r;return(r=t.call(this,n)||this).frames=g.newFloatArray(n*e.ENTRIES),r}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(11<<24)+this.pathConstraintIndex},n.setFrame=function(t,n,r){t*=e.ENTRIES,this.frames[t]=n,this.frames[t+e.VALUE]=r},n.apply=function(t,n,r,a,i,s,o){var l=this.frames,h=t.pathConstraints[this.pathConstraintIndex];if(h.active)if(r<l[0])switch(s){case 0:return void(h.position=h.data.position);case 1:h.position+=(h.data.position-h.position)*i}else{var u=0;if(r>=l[l.length-e.ENTRIES])u=l[l.length+e.PREV_VALUE];else{var c=C.binarySearch(l,r,e.ENTRIES);u=l[c+e.PREV_VALUE];var d=l[c],f=this.getCurvePercent(c/e.ENTRIES-1,1-(r-d)/(l[c+e.PREV_TIME]-d));u+=(l[c+e.VALUE]-u)*f}0==s?h.position=h.data.position+(u-h.data.position)*i:h.position+=(u-h.position)*i}},e}(P);q.ENTRIES=2,q.PREV_TIME=-2,q.PREV_VALUE=-1,q.VALUE=1;var H=function(t){function e(e){return t.call(this,e)}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(12<<24)+this.pathConstraintIndex},n.apply=function(t,n,r,a,i,s,o){var l=this.frames,h=t.pathConstraints[this.pathConstraintIndex];if(h.active)if(r<l[0])switch(s){case 0:return void(h.spacing=h.data.spacing);case 1:h.spacing+=(h.data.spacing-h.spacing)*i}else{var u=0;if(r>=l[l.length-e.ENTRIES])u=l[l.length+e.PREV_VALUE];else{var c=C.binarySearch(l,r,e.ENTRIES);u=l[c+e.PREV_VALUE];var d=l[c],f=this.getCurvePercent(c/e.ENTRIES-1,1-(r-d)/(l[c+e.PREV_TIME]-d));u+=(l[c+e.VALUE]-u)*f}0==s?h.spacing=h.data.spacing+(u-h.data.spacing)*i:h.spacing+=(u-h.spacing)*i}},e}(q),j=function(t){function e(n){var r;return(r=t.call(this,n)||this).frames=g.newFloatArray(n*e.ENTRIES),r}i(e,t);var n=e.prototype;return n.getPropertyId=function(){return(13<<24)+this.pathConstraintIndex},n.setFrame=function(t,n,r,a){t*=e.ENTRIES,this.frames[t]=n,this.frames[t+e.ROTATE]=r,this.frames[t+e.TRANSLATE]=a},n.apply=function(t,n,r,a,i,s,o){var l=this.frames,h=t.pathConstraints[this.pathConstraintIndex];if(h.active)if(r<l[0])switch(s){case 0:return h.rotateMix=h.data.rotateMix,void(h.translateMix=h.data.translateMix);case 1:h.rotateMix+=(h.data.rotateMix-h.rotateMix)*i,h.translateMix+=(h.data.translateMix-h.translateMix)*i}else{var u=0,c=0;if(r>=l[l.length-e.ENTRIES])u=l[l.length+e.PREV_ROTATE],c=l[l.length+e.PREV_TRANSLATE];else{var d=C.binarySearch(l,r,e.ENTRIES);u=l[d+e.PREV_ROTATE],c=l[d+e.PREV_TRANSLATE];var f=l[d],p=this.getCurvePercent(d/e.ENTRIES-1,1-(r-f)/(l[d+e.PREV_TIME]-f));u+=(l[d+e.ROTATE]-u)*p,c+=(l[d+e.TRANSLATE]-c)*p}0==s?(h.rotateMix=h.data.rotateMix+(u-h.data.rotateMix)*i,h.translateMix=h.data.translateMix+(c-h.data.translateMix)*i):(h.rotateMix+=(u-h.rotateMix)*i,h.translateMix+=(c-h.translateMix)*i)}},e}(P);j.ENTRIES=3,j.PREV_TIME=-3,j.PREV_ROTATE=-2,j.PREV_TRANSLATE=-1,j.ROTATE=1,j.TRANSLATE=2;var G=function(){function e(t){this.tracks=new Array,this.timeScale=1,this.unkeyedState=0,this.events=new Array,this.listeners=new Array,this.queue=new Q(this),this.propertyIDs=new c,this.animationsChanged=!1,this.trackEntryPool=new x((function(){return new Z})),this.data=t}var n=e.prototype;return n.update=function(t){t*=this.timeScale;for(var e=this.tracks,n=0,r=e.length;n<r;n++){var a=e[n];if(null!=a){a.animationLast=a.nextAnimationLast,a.trackLast=a.nextTrackLast;var i=t*a.timeScale;if(a.delay>0){if(a.delay-=i,a.delay>0)continue;i=-a.delay,a.delay=0}var s=a.next;if(null!=s){var o=a.trackLast-s.delay;if(o>=0){for(s.delay=0,s.trackTime+=0==a.timeScale?0:(o/a.timeScale+t)*s.timeScale,a.trackTime+=i,this.setCurrent(n,s,!0);null!=s.mixingFrom;)s.mixTime+=t,s=s.mixingFrom;continue}}else if(a.trackLast>=a.trackEnd&&null==a.mixingFrom){e[n]=null,this.queue.end(a),this.disposeNext(a);continue}if(null!=a.mixingFrom&&this.updateMixingFrom(a,t)){var l=a.mixingFrom;for(a.mixingFrom=null,null!=l&&(l.mixingTo=null);null!=l;)this.queue.end(l),l=l.mixingFrom}a.trackTime+=i}}this.queue.drain()},n.updateMixingFrom=function(t,e){var n=t.mixingFrom;if(null==n)return!0;var r=this.updateMixingFrom(n,e);return n.animationLast=n.nextAnimationLast,n.trackLast=n.nextTrackLast,t.mixTime>0&&t.mixTime>=t.mixDuration?(0!=n.totalAlpha&&0!=t.mixDuration||(t.mixingFrom=n.mixingFrom,null!=n.mixingFrom&&(n.mixingFrom.mixingTo=t),t.interruptAlpha=n.interruptAlpha,this.queue.end(n)),r):(n.trackTime+=e*n.timeScale,t.mixTime+=e,!1)},n.apply=function(n){if(null==n)throw new Error("skeleton cannot be null.");this.animationsChanged&&this._animationsChanged();for(var r=this.events,a=this.tracks,i=!1,s=0,o=a.length;s<o;s++){var l=a[s];if(!(null==l||l.delay>0)){i=!0;var h=0==s?t.MixBlend.first:l.mixBlend,c=l.alpha;null!=l.mixingFrom?c*=this.applyMixingFrom(l,n,h):l.trackTime>=l.trackEnd&&null==l.next&&(c=0);var d=l.animationLast,f=l.getAnimationTime(),p=l.animation.timelines.length,v=l.animation.timelines;if(0==s&&1==c||h==t.MixBlend.add)for(var m=0;m<p;m++){g.webkit602BugfixHelper(c,h);var w=v[m];u(w,O)?this.applyAttachmentTimeline(w,n,f,h,!0):w.apply(n,d,f,r,c,h,t.MixDirection.mixIn)}else{var x=l.timelineMode,y=0==l.timelinesRotation.length;y&&g.setArraySize(l.timelinesRotation,p<<1,null);for(var E=l.timelinesRotation,b=0;b<p;b++){var M=v[b],T=x[b]==e.SUBSEQUENT?h:t.MixBlend.setup;u(M,V)?this.applyRotateTimeline(M,n,f,c,T,E,b<<1,y):u(M,O)?this.applyAttachmentTimeline(M,n,f,h,!0):(g.webkit602BugfixHelper(c,h),M.apply(n,d,f,r,c,T,t.MixDirection.mixIn))}}this.queueEvents(l,f),r.length=0,l.nextAnimationLast=f,l.nextTrackLast=l.trackTime}}for(var S=this.unkeyedState+e.SETUP,A=n.slots,I=0,R=n.slots.length;I<R;I++){var C=A[I];if(C.attachmentState==S){var P=C.data.attachmentName;C.attachment=null==P?null:n.getAttachment(C.data.index,P)}}return this.unkeyedState+=2,this.queue.drain(),i},n.applyMixingFrom=function(n,r,a){var i=n.mixingFrom;null!=i.mixingFrom&&this.applyMixingFrom(i,r,a);var s=0;0==n.mixDuration?(s=1,a==t.MixBlend.first&&(a=t.MixBlend.setup)):((s=n.mixTime/n.mixDuration)>1&&(s=1),a!=t.MixBlend.first&&(a=i.mixBlend));var o=s<i.eventThreshold?this.events:null,l=s<i.attachmentThreshold,h=s<i.drawOrderThreshold,c=i.animationLast,d=i.getAnimationTime(),f=i.animation.timelines.length,p=i.animation.timelines,v=i.alpha*n.interruptAlpha,m=v*(1-s);if(a==t.MixBlend.add)for(var w=0;w<f;w++)p[w].apply(r,c,d,o,m,a,t.MixDirection.mixOut);else{var x=i.timelineMode,y=i.timelineHoldMix,E=0==i.timelinesRotation.length;E&&g.setArraySize(i.timelinesRotation,f<<1,null);var b=i.timelinesRotation;i.totalAlpha=0;for(var M=0;M<f;M++){var T=p[M],S=t.MixDirection.mixOut,A=void 0,I=0;switch(x[M]){case e.SUBSEQUENT:if(!h&&u(T,Y))continue;A=a,I=m;break;case e.FIRST:A=t.MixBlend.setup,I=m;break;case e.HOLD_SUBSEQUENT:A=a,I=v;break;case e.HOLD_FIRST:A=t.MixBlend.setup,I=v;break;default:A=t.MixBlend.setup;var R=y[M];I=v*Math.max(0,1-R.mixTime/R.mixDuration)}i.totalAlpha+=I,u(T,V)?this.applyRotateTimeline(T,r,d,I,A,b,M<<1,E):u(T,O)?this.applyAttachmentTimeline(T,r,d,A,l):(g.webkit602BugfixHelper(I,a),h&&u(T,Y)&&A==t.MixBlend.setup&&(S=t.MixDirection.mixIn),T.apply(r,c,d,o,I,A,S))}}return n.mixDuration>0&&this.queueEvents(i,d),this.events.length=0,i.nextAnimationLast=d,i.nextTrackLast=i.trackTime,s},n.applyAttachmentTimeline=function(n,r,a,i,s){var o=r.slots[n.slotIndex];if(o.bone.active){var l,h=n.frames;if(a<h[0])i!=t.MixBlend.setup&&i!=t.MixBlend.first||this.setAttachment(r,o,o.data.attachmentName,s);else l=a>=h[h.length-1]?h.length-1:C.binarySearch(h,a)-1,this.setAttachment(r,o,n.attachmentNames[l],s);o.attachmentState<=this.unkeyedState&&(o.attachmentState=this.unkeyedState+e.SETUP)}},n.setAttachment=function(t,n,r,a){n.attachment=null==r?null:t.getAttachment(n.data.index,r),a&&(n.attachmentState=this.unkeyedState+e.CURRENT)},n.applyRotateTimeline=function(e,n,r,a,i,s,o,l){if(l&&(s[o]=0),1!=a){var h=e,u=h.frames,c=n.bones[h.boneIndex];if(c.active){var d=0,p=0;if(r<u[0])switch(i){case t.MixBlend.setup:c.rotation=c.data.rotation;default:return;case t.MixBlend.first:d=c.rotation,p=c.data.rotation}else if(d=i==t.MixBlend.setup?c.data.rotation:c.rotation,r>=u[u.length-V.ENTRIES])p=c.data.rotation+u[u.length+V.PREV_ROTATION];else{var v=C.binarySearch(u,r,V.ENTRIES),m=u[v+V.PREV_ROTATION],g=u[v],w=h.getCurvePercent((v>>1)-1,1-(r-g)/(u[v+V.PREV_TIME]-g));p=u[v+V.ROTATION]-m,p=m+(p-=360*(16384-(16384.499999999996-p/360|0)))*w+c.data.rotation,p-=360*(16384-(16384.499999999996-p/360|0))}var x=0,y=p-d;if(0==(y-=360*(16384-(16384.499999999996-y/360|0))))x=s[o];else{var E=0,b=0;l?(E=0,b=y):(E=s[o],b=s[o+1]);var M=y>0,T=E>=0;f.signum(b)!=f.signum(y)&&Math.abs(b)<=90&&(Math.abs(E)>180&&(E+=360*f.signum(E)),T=M),x=y+E-E%360,T!=M&&(x+=360*f.signum(E)),s[o]=x}s[o+1]=y,d+=x*a,c.rotation=d-360*(16384-(16384.499999999996-d/360|0))}}else e.apply(n,0,r,null,1,i,t.MixDirection.mixIn)},n.queueEvents=function(t,e){for(var n=t.animationStart,r=t.animationEnd,a=r-n,i=t.trackLast%a,s=this.events,o=0,l=s.length;o<l;o++){var h=s[o];if(h.time<i)break;h.time>r||this.queue.event(t,h)}for((t.loop?0==a||i>t.trackTime%a:e>=r&&t.animationLast<r)&&this.queue.complete(t);o<l;o++){s[o].time<n||this.queue.event(t,s[o])}},n.clearTracks=function(){var t=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(var e=0,n=this.tracks.length;e<n;e++)this.clearTrack(e);this.tracks.length=0,this.queue.drainDisabled=t,this.queue.drain()},n.clearTrack=function(t){if(!(t>=this.tracks.length)){var e=this.tracks[t];if(null!=e){this.queue.end(e),this.disposeNext(e);for(var n=e;;){var r=n.mixingFrom;if(null==r)break;this.queue.end(r),n.mixingFrom=null,n.mixingTo=null,n=r}this.tracks[e.trackIndex]=null,this.queue.drain()}}},n.setCurrent=function(t,e,n){var r=this.expandToIndex(t);this.tracks[t]=e,null!=r&&(n&&this.queue.interrupt(r),e.mixingFrom=r,r.mixingTo=e,e.mixTime=0,null!=r.mixingFrom&&r.mixDuration>0&&(e.interruptAlpha*=Math.min(1,r.mixTime/r.mixDuration)),r.timelinesRotation.length=0),this.queue.start(e)},n.setAnimation=function(t,e,n){var r=this.data.skeletonData.findAnimation(e);if(null==r)throw new Error("Animation not found: "+e);return this.setAnimationWith(t,r,n)},n.setAnimationWith=function(t,e,n){if(null==e)throw new Error("animation cannot be null.");var r=!0,a=this.expandToIndex(t);null!=a&&(-1==a.nextTrackLast?(this.tracks[t]=a.mixingFrom,this.queue.interrupt(a),this.queue.end(a),this.disposeNext(a),a=a.mixingFrom,r=!1):this.disposeNext(a));var i=this.trackEntry(t,e,n,a);return this.setCurrent(t,i,r),this.queue.drain(),i},n.addAnimation=function(t,e,n,r){var a=this.data.skeletonData.findAnimation(e);if(null==a)throw new Error("Animation not found: "+e);return this.addAnimationWith(t,a,n,r)},n.addAnimationWith=function(t,e,n,r){if(null==e)throw new Error("animation cannot be null.");var a=this.expandToIndex(t);if(null!=a)for(;null!=a.next;)a=a.next;var i=this.trackEntry(t,e,n,a);if(null==a)this.setCurrent(t,i,!0),this.queue.drain();else if(a.next=i,r<=0){var s=a.animationEnd-a.animationStart;0!=s?(a.loop?r+=s*(1+(a.trackTime/s|0)):r+=Math.max(s,a.trackTime),r-=this.data.getMix(a.animation,e)):r=a.trackTime}return i.delay=r,i},n.setEmptyAnimation=function(t,n){var r=this.setAnimationWith(t,e.emptyAnimation,!1);return r.mixDuration=n,r.trackEnd=n,r},n.addEmptyAnimation=function(t,n,r){r<=0&&(r-=n);var a=this.addAnimationWith(t,e.emptyAnimation,!1,r);return a.mixDuration=n,a.trackEnd=n,a},n.setEmptyAnimations=function(t){var e=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(var n=0,r=this.tracks.length;n<r;n++){var a=this.tracks[n];null!=a&&this.setEmptyAnimation(a.trackIndex,t)}this.queue.drainDisabled=e,this.queue.drain()},n.expandToIndex=function(t){return t<this.tracks.length?this.tracks[t]:(g.ensureArrayCapacity(this.tracks,t+1,null),this.tracks.length=t+1,null)},n.trackEntry=function(e,n,r,a){var i=this.trackEntryPool.obtain();return i.trackIndex=e,i.animation=n,i.loop=r,i.holdPrevious=!1,i.eventThreshold=0,i.attachmentThreshold=0,i.drawOrderThreshold=0,i.animationStart=0,i.animationEnd=n.duration,i.animationLast=-1,i.nextAnimationLast=-1,i.delay=0,i.trackTime=0,i.trackLast=-1,i.nextTrackLast=-1,i.trackEnd=Number.MAX_VALUE,i.timeScale=1,i.alpha=1,i.interruptAlpha=1,i.mixTime=0,i.mixDuration=null==a?0:this.data.getMix(a.animation,n),i.mixBlend=t.MixBlend.replace,i},n.disposeNext=function(t){for(var e=t.next;null!=e;)this.queue.dispose(e),e=e.next;t.next=null},n._animationsChanged=function(){this.animationsChanged=!1,this.propertyIDs.clear();for(var e=0,n=this.tracks.length;e<n;e++){var r=this.tracks[e];if(null!=r){for(;null!=r.mixingFrom;)r=r.mixingFrom;do{null!=r.mixingFrom&&r.mixBlend==t.MixBlend.add||this.computeHold(r),r=r.mixingTo}while(null!=r)}}},n.computeHold=function(t){var n=t.mixingTo,r=t.animation.timelines,a=t.animation.timelines.length,i=g.setArraySize(t.timelineMode,a);t.timelineHoldMix.length=0;var s=g.setArraySize(t.timelineHoldMix,a),o=this.propertyIDs;if(null!=n&&n.holdPrevious)for(var l=0;l<a;l++)i[l]=o.add(r[l].getPropertyId())?e.HOLD_FIRST:e.HOLD_SUBSEQUENT;else t:for(var h=0;h<a;h++){var c=r[h],d=c.getPropertyId();if(o.add(d))if(null==n||u(c,O)||u(c,Y)||u(c,X)||!n.animation.hasTimeline(d))i[h]=e.FIRST;else{for(var f=n.mixingTo;null!=f;f=f.mixingTo)if(!f.animation.hasTimeline(d)){if(t.mixDuration>0){i[h]=e.HOLD_MIX,s[h]=f;continue t}break}i[h]=e.HOLD_FIRST}else i[h]=e.SUBSEQUENT}},n.getCurrent=function(t){return t>=this.tracks.length?null:this.tracks[t]},n.addListener=function(t){if(null==t)throw new Error("listener cannot be null.");this.listeners.push(t)},n.removeListener=function(t){var e=this.listeners.indexOf(t);e>=0&&this.listeners.splice(e,1)},n.clearListeners=function(){this.listeners.length=0},n.clearListenerNotifications=function(){this.queue.clear()},e}();G.emptyAnimation=new C("<empty>",[],0),G.SUBSEQUENT=0,G.FIRST=1,G.HOLD_SUBSEQUENT=2,G.HOLD_FIRST=3,G.HOLD_MIX=4,G.SETUP=1,G.CURRENT=2;var z,Z=function(){function e(){this.mixBlend=t.MixBlend.replace,this.timelineMode=new Array,this.timelineHoldMix=new Array,this.timelinesRotation=new Array}var n=e.prototype;return n.reset=function(){this.next=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},n.getAnimationTime=function(){if(this.loop){var t=this.animationEnd-this.animationStart;return 0==t?this.animationStart:this.trackTime%t+this.animationStart}return Math.min(this.trackTime+this.animationStart,this.animationEnd)},n.setAnimationLast=function(t){this.animationLast=t,this.nextAnimationLast=t},n.isComplete=function(){return this.trackTime>=this.animationEnd-this.animationStart},n.resetRotationDirections=function(){this.timelinesRotation.length=0},e}(),Q=function(){function t(t){this.objects=[],this.drainDisabled=!1,this.animState=t}var e=t.prototype;return e.start=function(t){this.objects.push(0),this.objects.push(t),this.animState.animationsChanged=!0},e.interrupt=function(t){this.objects.push(1),this.objects.push(t)},e.end=function(t){this.objects.push(2),this.objects.push(t),this.animState.animationsChanged=!0},e.dispose=function(t){this.objects.push(3),this.objects.push(t)},e.complete=function(t){this.objects.push(4),this.objects.push(t)},e.event=function(t,e){this.objects.push(5),this.objects.push(t),this.objects.push(e)},e.drain=function(){if(!this.drainDisabled){this.drainDisabled=!0;for(var t=this.objects,e=this.animState.listeners,n=0;n<t.length;n+=2){var r=t[n],a=t[n+1];switch(r){case 0:null!=a.listener&&a.listener.start&&a.listener.start(a);for(var i=0;i<e.length;i++)e[i].start&&e[i].start(a);break;case 1:null!=a.listener&&a.listener.interrupt&&a.listener.interrupt(a);for(var s=0;s<e.length;s++)e[s].interrupt&&e[s].interrupt(a);break;case 2:null!=a.listener&&a.listener.end&&a.listener.end(a);for(var o=0;o<e.length;o++)e[o].end&&e[o].end(a);case 3:null!=a.listener&&a.listener.dispose&&a.listener.dispose(a);for(var l=0;l<e.length;l++)e[l].dispose&&e[l].dispose(a);this.animState.trackEntryPool.free(a);break;case 4:null!=a.listener&&a.listener.complete&&a.listener.complete(a);for(var h=0;h<e.length;h++)e[h].complete&&e[h].complete(a);break;case 5:var u=t[2+n++];null!=a.listener&&a.listener.event&&a.listener.event(a,u);for(var c=0;c<e.length;c++)e[c].event&&e[c].event(a,u)}}this.clear(),this.drainDisabled=!1}},e.clear=function(){this.objects.length=0},t}();t.EventType=void 0,(z=t.EventType||(t.EventType={}))[z.start=0]="start",z[z.interrupt=1]="interrupt",z[z.end=2]="end",z[z.dispose=3]="dispose",z[z.complete=4]="complete",z[z.event=5]="event";var J=function(){function t(){}var e=t.prototype;return e.start=function(t){},e.interrupt=function(t){},e.end=function(t){},e.dispose=function(t){},e.complete=function(t){},e.event=function(t,e){},t}(),K=function(){function t(t){if(this.animationToMixTime={},this.defaultMix=0,null==t)throw new Error("skeletonData cannot be null.");this.skeletonData=t}var e=t.prototype;return e.setMix=function(t,e,n){var r=this.skeletonData.findAnimation(t);if(null==r)throw new Error("Animation not found: "+t);var a=this.skeletonData.findAnimation(e);if(null==a)throw new Error("Animation not found: "+e);this.setMixWith(r,a,n)},e.setMixWith=function(t,e,n){if(null==t)throw new Error("from cannot be null.");if(null==e)throw new Error("to cannot be null.");var r=t.name+"."+e.name;this.animationToMixTime[r]=n},e.getMix=function(t,e){var n=t.name+"."+e.name,r=this.animationToMixTime[n];return void 0===r?this.defaultMix:r},t}();function $(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function tt(t,e,n){return e&&$(t.prototype,e),n&&$(t,n),t}var et,nt,rt=function(){function t(t){this._image=t}return t.prototype.getImage=function(){return this._image},t.filterFromString=function(t){switch(t.toLowerCase()){case"nearest":return 9728;case"linear":return 9729;case"mipmap":case"mipmaplinearlinear":return 9987;case"mipmapnearestnearest":return 9984;case"mipmaplinearnearest":return 9985;case"mipmapnearestlinear":return 9986;default:throw new Error("Unknown texture filter "+t)}},t.wrapFromString=function(t){switch(t.toLowerCase()){case"mirroredtepeat":return 33648;case"clamptoedge":return 33071;case"repeat":return 10497;default:throw new Error("Unknown texture wrap "+t)}},t}();t.TextureFilter=void 0,(et=t.TextureFilter||(t.TextureFilter={}))[et.Nearest=9728]="Nearest",et[et.Linear=9729]="Linear",et[et.MipMap=9987]="MipMap",et[et.MipMapNearestNearest=9984]="MipMapNearestNearest",et[et.MipMapLinearNearest=9985]="MipMapLinearNearest",et[et.MipMapNearestLinear=9986]="MipMapNearestLinear",et[et.MipMapLinearLinear=9987]="MipMapLinearLinear",t.TextureWrap=void 0,(nt=t.TextureWrap||(t.TextureWrap={}))[nt.MirroredRepeat=33648]="MirroredRepeat",nt[nt.ClampToEdge=33071]="ClampToEdge",nt[nt.Repeat=10497]="Repeat";var at=function(){this.u=0,this.v=0,this.u2=0,this.v2=0,this.width=0,this.height=0,this.rotate=!1,this.offsetX=0,this.offsetY=0,this.originalWidth=0,this.originalHeight=0},it=function(t){function e(){return t.apply(this,arguments)}i(e,t);var n=e.prototype;return n.setFilters=function(t,e){},n.setWraps=function(t,e){},n.dispose=function(){},e}(rt),st=function(){function e(t,e){this.pages=new Array,this.regions=new Array,this.load(t,e)}var n=e.prototype;return n.load=function(e,n){if(null==n)throw new Error("textureLoader cannot be null.");for(var r=new ot(e),a=new Array(4),i=null;;){var s=r.readLine();if(null==s)break;if(0==(s=s.trim()).length)i=null;else if(i){var o=new ht;o.name=s,o.page=i;var l=r.readValue();"true"==l.toLocaleLowerCase()?o.degrees=90:"false"==l.toLocaleLowerCase()?o.degrees=0:o.degrees=parseFloat(l),o.rotate=90==o.degrees,r.readTuple(a);var h=parseInt(a[0]),u=parseInt(a[1]);r.readTuple(a);var c=parseInt(a[0]),d=parseInt(a[1]);o.u=h/i.width,o.v=u/i.height,o.rotate?(o.u2=(h+d)/i.width,o.v2=(u+c)/i.height):(o.u2=(h+c)/i.width,o.v2=(u+d)/i.height),o.x=h,o.y=u,o.width=Math.abs(c),o.height=Math.abs(d),4==r.readTuple(a)&&4==r.readTuple(a)&&r.readTuple(a),o.originalWidth=parseInt(a[0]),o.originalHeight=parseInt(a[1]),r.readTuple(a),o.offsetX=parseInt(a[0]),o.offsetY=parseInt(a[1]),o.index=parseInt(r.readValue()),o.texture=i.texture,this.regions.push(o)}else{(i=new lt).name=s,2==r.readTuple(a)&&(i.width=parseInt(a[0]),i.height=parseInt(a[1]),r.readTuple(a)),r.readTuple(a),i.minFilter=rt.filterFromString(a[0]),i.magFilter=rt.filterFromString(a[1]);var f=r.readValue();i.uWrap=t.TextureWrap.ClampToEdge,i.vWrap=t.TextureWrap.ClampToEdge,"x"==f?i.uWrap=t.TextureWrap.Repeat:"y"==f?i.vWrap=t.TextureWrap.Repeat:"xy"==f&&(i.uWrap=i.vWrap=t.TextureWrap.Repeat),i.texture=n(s),i.texture.setFilters(i.minFilter,i.magFilter),i.texture.setWraps(i.uWrap,i.vWrap),i.width=i.texture.getImage().width,i.height=i.texture.getImage().height,this.pages.push(i)}}},n.findRegion=function(t){for(var e=0;e<this.regions.length;e++)if(this.regions[e].name==t)return this.regions[e];return null},n.dispose=function(){for(var t=0;t<this.pages.length;t++)this.pages[t].texture.dispose()},e}(),ot=function(){function t(t){this.index=0,this.lines=t.split(/\r\n|\r|\n/)}var e=t.prototype;return e.readLine=function(){return this.index>=this.lines.length?null:this.lines[this.index++]},e.readValue=function(){var t=this.readLine(),e=t.indexOf(":");if(-1==e)throw new Error("Invalid line: "+t);return t.substring(e+1).trim()},e.readTuple=function(t){var e=this.readLine(),n=e.indexOf(":");if(-1==n)throw new Error("Invalid line: "+e);for(var r=0,a=n+1;r<3;r++){var i=e.indexOf(",",a);if(-1==i)break;t[r]=e.substr(a,i-a).trim(),a=i+1}return t[r]=e.substring(a).trim(),r+1},t}(),lt=function(){},ht=function(t){function e(){return t.apply(this,arguments)}return i(e,t),e}(at),ut=function(){function t(t,e,n){this.assets={},this.errors={},this.toLoad=0,this.loaded=0,this.rawDataUris={},this._engine=t,this.pathPrefix=e||"",this.textureLoader=n}var n=t.prototype;return n.downloadText=function(t,n,r){e.request(t,{type:"text"}).then((function(t){n(t)})).catch((function(t){r(t)}))},n.downloadBinary=function(t,e,n){var r=new XMLHttpRequest;this.rawDataUris[t]&&(t=this.rawDataUris[t]),r.open("GET",t,!0),r.responseType="arraybuffer",r.onload=function(){200==r.status?e(new Uint8Array(r.response)):n(r.status,r.responseText)},r.onerror=function(){n(r.status,r.responseText)},r.send()},n.setRawDataURI=function(t,e){this.rawDataUris[this.pathPrefix+t]=e},n.loadBinary=function(t,e,n){var r=this;void 0===e&&(e=null),void 0===n&&(n=null),t=this.pathPrefix+t,this.toLoad++,this.downloadBinary(t,(function(n){r.assets[t]=n,e&&e(t,n),r.onLoad(),r.loaded++}),(function(e,a){r.errors[t]="Couldn't load binary "+t+": status "+status+", "+a,n&&n("Couldn't load binary "+t+": status "+status+", "+a),r.onLoad(),r.loaded++}))},n.loadText=function(t,e,n){var r=this;void 0===e&&(e=null),void 0===n&&(n=null),t=this.pathPrefix+t,this.toLoad++,this.downloadText(t,(function(n){r.assets[t]=n,e&&e(t,n),r.onLoad(),r.loaded++}),(function(e){r.errors[t]="Couldn't load text "+t+": "+JSON.stringify(e),n&&n("Couldn't load text "+t+": "+JSON.stringify(e)),r.onLoad(),r.loaded++}))},n.loadImage=function(t,e,n){var r=this;void 0===e&&(e=null),void 0===n&&(n=null);var a=t=this.pathPrefix+t;this.toLoad++;var i=new Image;i.crossOrigin="anonymous",i.onload=function(n){r.assets[a]=i,r.onLoad(),r.loaded++,e&&e(t,i)},i.onerror=function(e){r.errors[t]="Couldn't load image "+t,r.onLoad(),r.loaded++,n&&n("Couldn't load image "+t)},this.rawDataUris[t]&&(t=this.rawDataUris[t]),i.src=t},n.loadTexture=function(t,n,r){var a=this;void 0===n&&(n=null),void 0===r&&(r=null);var i=t=this.pathPrefix+t;this.toLoad++,this.rawDataUris[t]&&(t=this.rawDataUris[t]),e.request(t,{type:"image"}).then((function(e){var r=a.textureLoader(e);a.assets[i]=r,a.onLoad(),a.loaded++,n&&n(t,r)})).catch((function(t){r(t)}))},n.loadEngineTexture=function(t,e,n,r){var a=this;void 0===n&&(n=null),void 0===r&&(r=null);var i=t=this.pathPrefix+t;this.toLoad++,this.rawDataUris[t]&&(t=this.rawDataUris[t]),this.engine.resourceManager.load({url:t,type:e}).then((function(e){var r=a.textureLoader(e);a.assets[i]=r,a.onLoad(),a.loaded++,n&&n(t,r)})).catch((function(t){r(t)}))},n.loadTextureAtlas=function(t,e,n){var r=this;void 0===e&&(e=null),void 0===n&&(n=null);var a=t.lastIndexOf("/")>=0?t.substring(0,t.lastIndexOf("/")):"";t=this.pathPrefix+t,this.toLoad++,this.downloadText(t,(function(i){var s=function(){var s=c.value,h=!1;r.loadTexture(s,(function(s,u){if(o.count++,o.count==l.length)if(h)r.errors[t]="Couldn't load texture atlas page "+s+"} of atlas "+t,n&&n("Couldn't load texture atlas page "+s+" of atlas "+t),r.onLoad(),r.loaded++;else try{var c=new st(i,(function(t){return r.get(""==a?t:a+"/"+t)}));r.assets[t]=c,e&&e(t,c),r.onLoad(),r.loaded++}catch(e){var d=e;r.errors[t]="Couldn't load texture atlas "+t+": "+d.message,n&&n("Couldn't load texture atlas "+t+": "+d.message),r.onLoad(),r.loaded++}}),(function(e){h=!0,o.count++,o.count==l.length&&(r.errors[t]="Couldn't load texture atlas page "+e+"} of atlas "+t,n&&n("Couldn't load texture atlas page "+e+" of atlas "+t),r.onLoad(),r.loaded++)}))},o={count:0},l=new Array;try{new st(i,(function(t){return l.push(""==a?t:a+"/"+t),new it(new Image)}))}catch(e){var u=e;return r.errors[t]="Couldn't load texture atlas "+t+": "+u.message,n&&n("Couldn't load texture atlas "+t+": "+u.message),r.onLoad(),void r.loaded++}for(var c,d=h(l);!(c=d()).done;)s()}),(function(e){r.errors[t]="Couldn't load texture atlas "+t+": "+JSON.stringify(e),n&&n("Couldn't load texture atlas "+t+": "+JSON.stringify(e)),r.onLoad(),r.loaded++}))},n.get=function(t){return t=this.pathPrefix+t,this.assets[t]},n.remove=function(t){t=this.pathPrefix+t;var e=this.assets[t];e.dispose&&e.dispose(),this.assets[t]=null},n.removeAll=function(){for(var t in this.assets){var e=this.assets[t];e.dispose&&e.dispose()}this.assets={}},n.isLoadingComplete=function(){return 0==this.toLoad},n.onLoad=function(){this.toLoad--,0===this.toLoad&&this.onLoadComplete()},n.getToLoad=function(){return this.toLoad},n.getLoaded=function(){return this.loaded},n.dispose=function(){this.removeAll()},n.hasErrors=function(){return Object.keys(this.errors).length>0},n.getErrors=function(){return this.errors},tt(t,[{key:"engine",get:function(){return this._engine}}]),t}(),ct=function(t){function e(e){var n;return(n=t.call(this,e)||this).x=0,n.y=0,n.scaleX=1,n.scaleY=1,n.rotation=0,n.width=0,n.height=0,n.color=new d(1,1,1,1),n.offset=g.newFloatArray(8),n.uvs=g.newFloatArray(8),n.tempColor=new d(1,1,1,1),n}i(e,t);var n=e.prototype;return n.updateOffset=function(){var t=this.width/this.region.originalWidth*this.scaleX,n=this.height/this.region.originalHeight*this.scaleY,r=-this.width/2*this.scaleX+this.region.offsetX*t,a=-this.height/2*this.scaleY+this.region.offsetY*n,i=r+this.region.width*t,s=a+this.region.height*n,o=this.rotation*Math.PI/180,l=Math.cos(o),h=Math.sin(o),u=r*l+this.x,c=r*h,d=a*l+this.y,f=a*h,p=i*l+this.x,v=i*h,m=s*l+this.y,g=s*h,w=this.offset;w[e.OX1]=u-f,w[e.OY1]=d+c,w[e.OX2]=u-g,w[e.OY2]=m+c,w[e.OX3]=p-g,w[e.OY3]=m+v,w[e.OX4]=p-f,w[e.OY4]=d+v},n.setRegion=function(t){this.region=t;var e=this.uvs;t.rotate?(e[2]=t.u,e[3]=t.v2,e[4]=t.u,e[5]=t.v,e[6]=t.u2,e[7]=t.v,e[0]=t.u2,e[1]=t.v2):(e[0]=t.u,e[1]=t.v2,e[2]=t.u,e[3]=t.v,e[4]=t.u2,e[5]=t.v,e[6]=t.u2,e[7]=t.v2)},n.computeWorldVertices=function(t,n,r,a){var i=this.offset,s=t.worldX,o=t.worldY,l=t.a,h=t.b,u=t.c,c=t.d,d=0,f=0;d=i[e.OX1],f=i[e.OY1],n[r]=d*l+f*h+s,n[r+1]=d*u+f*c+o,r+=a,d=i[e.OX2],f=i[e.OY2],n[r]=d*l+f*h+s,n[r+1]=d*u+f*c+o,r+=a,d=i[e.OX3],f=i[e.OY3],n[r]=d*l+f*h+s,n[r+1]=d*u+f*c+o,r+=a,d=i[e.OX4],f=i[e.OY4],n[r]=d*l+f*h+s,n[r+1]=d*u+f*c+o},n.copy=function(){var t=new e(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,g.arrayCopy(this.uvs,0,t.uvs,0,8),g.arrayCopy(this.offset,0,t.offset,0,8),t.color.setFromColor(this.color),t},e}(T);ct.OX1=0,ct.OY1=1,ct.OX2=2,ct.OY2=3,ct.OX3=4,ct.OY3=5,ct.OX4=6,ct.OY4=7,ct.X1=0,ct.Y1=1,ct.C1R=2,ct.C1G=3,ct.C1B=4,ct.C1A=5,ct.U1=6,ct.V1=7,ct.X2=8,ct.Y2=9,ct.C2R=10,ct.C2G=11,ct.C2B=12,ct.C2A=13,ct.U2=14,ct.V2=15,ct.X3=16,ct.Y3=17,ct.C3R=18,ct.C3G=19,ct.C3B=20,ct.C3A=21,ct.U3=22,ct.V3=23,ct.X4=24,ct.Y4=25,ct.C4R=26,ct.C4G=27,ct.C4B=28,ct.C4A=29,ct.U4=30,ct.V4=31;var dt,ft=function(t){function e(e){var n;return(n=t.call(this,e)||this).color=new d(1,1,1,1),n.tempColor=new d(0,0,0,0),n}i(e,t);var n=e.prototype;return n.updateUVs=function(){var t=this.regionUVs;null!=this.uvs&&this.uvs.length==t.length||(this.uvs=g.newFloatArray(t.length));var e=this.uvs,n=this.uvs.length,r=this.region.u,a=this.region.v,i=0,s=0;if(u(this.region,ht)){var o=this.region,l=o.texture.getImage().width,h=o.texture.getImage().height;switch(o.degrees){case 90:r-=(o.originalHeight-o.offsetY-o.height)/l,a-=(o.originalWidth-o.offsetX-o.width)/h,i=o.originalHeight/l,s=o.originalWidth/h;for(var c=0;c<n;c+=2)e[c]=r+t[c+1]*i,e[c+1]=a+(1-t[c])*s;return;case 180:r-=(o.originalWidth-o.offsetX-o.width)/l,a-=o.offsetY/h,i=o.originalWidth/l,s=o.originalHeight/h;for(var d=0;d<n;d+=2)e[d]=r+(1-t[d])*i,e[d+1]=a+(1-t[d+1])*s;return;case 270:r-=o.offsetY/l,a-=o.offsetX/h,i=o.originalHeight/l,s=o.originalWidth/h;for(var f=0;f<n;f+=2)e[f]=r+(1-t[f+1])*i,e[f+1]=a+t[f]*s;return}r-=o.offsetX/l,a-=(o.originalHeight-o.offsetY-o.height)/h,i=o.originalWidth/l,s=o.originalHeight/h}else null==this.region?(r=a=0,i=s=1):(i=this.region.u2-r,s=this.region.v2-a);for(var p=0;p<n;p+=2)e[p]=r+t[p]*i,e[p+1]=a+t[p+1]*s},n.getParentMesh=function(){return this.parentMesh},n.setParentMesh=function(t){this.parentMesh=t,null!=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)},n.copy=function(){if(null!=this.parentMesh)return this.newLinkedMesh();var t=new e(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),g.arrayCopy(this.regionUVs,0,t.regionUVs,0,this.regionUVs.length),t.uvs=new Array(this.uvs.length),g.arrayCopy(this.uvs,0,t.uvs,0,this.uvs.length),t.triangles=new Array(this.triangles.length),g.arrayCopy(this.triangles,0,t.triangles,0,this.triangles.length),t.hullLength=this.hullLength,null!=this.edges&&(t.edges=new Array(this.edges.length),g.arrayCopy(this.edges,0,t.edges,0,this.edges.length)),t.width=this.width,t.height=this.height,t},n.newLinkedMesh=function(){var t=new e(this.name);return t.region=this.region,t.path=this.path,t.color.setFromColor(this.color),t.deformAttachment=this.deformAttachment,t.setParentMesh(null!=this.parentMesh?this.parentMesh:this),t.updateUVs(),t},e}(S),pt=function(t){function e(e){var n;return(n=t.call(this,e)||this).color=new d(1,1,1,1),n}return i(e,t),e.prototype.copy=function(){var t=new e(this.name);return this.copyTo(t),t.color.setFromColor(this.color),t},e}(S),vt=function(t){function e(e){var n;return(n=t.call(this,e)||this).closed=!1,n.constantSpeed=!1,n.color=new d(1,1,1,1),n}return i(e,t),e.prototype.copy=function(){var t=new e(this.name);return this.copyTo(t),t.lengths=new Array(this.lengths.length),g.arrayCopy(this.lengths,0,t.lengths,0,this.lengths.length),t.closed=closed,t.constantSpeed=this.constantSpeed,t.color.setFromColor(this.color),t},e}(S),mt=function(t){function e(e){var n;return(n=t.call(this,e)||this).color=new d(.38,.94,0,1),n.name=e,n}i(e,t);var n=e.prototype;return n.computeWorldPosition=function(t,e){return e.x=this.x*t.a+this.y*t.b+t.worldX,e.y=this.x*t.c+this.y*t.d+t.worldY,e},n.computeWorldRotation=function(t){var e=f.cosDeg(this.rotation),n=f.sinDeg(this.rotation),r=e*t.a+n*t.b,a=e*t.c+n*t.d;return Math.atan2(a,r)*f.radDeg},n.copy=function(){var t=new e(this.name);return t.x=this.x,t.y=this.y,t.rotation=this.rotation,t.color.setFromColor(this.color),t},e}(S),gt=function(t){function e(e){var n;return(n=t.call(this,e)||this).color=new d(.2275,.2275,.8078,1),n}return i(e,t),e.prototype.copy=function(){var t=new e(this.name);return this.copyTo(t),t.endSlot=this.endSlot,t.color.setFromColor(this.color),t},e}(S),wt=function(){function t(t){this.atlas=t}var e=t.prototype;return e.newRegionAttachment=function(t,e,n){var r=this.atlas.findRegion(n);if(null==r)throw new Error("Region not found in atlas: "+n+" (region attachment: "+e+")");r.renderObject=r;var a=new ct(e);return a.setRegion(r),a},e.newMeshAttachment=function(t,e,n){var r=this.atlas.findRegion(n);if(null==r)throw new Error("Region not found in atlas: "+n+" (mesh attachment: "+e+")");r.renderObject=r;var a=new ft(e);return a.region=r,a},e.newBoundingBoxAttachment=function(t,e){return new pt(e)},e.newPathAttachment=function(t,e){return new vt(e)},e.newPointAttachment=function(t,e){return new mt(e)},e.newClippingAttachment=function(t,e){return new gt(e)},t}();t.BlendMode=void 0,(dt=t.BlendMode||(t.BlendMode={}))[dt.Normal=0]="Normal",dt[dt.Additive=1]="Additive",dt[dt.Multiply=2]="Multiply",dt[dt.Screen=3]="Screen";var xt,yt=function(t,e,n){if(this.x=0,this.y=0,this.rotation=0,this.scaleX=1,this.scaleY=1,this.shearX=0,this.shearY=0,this.transformMode=0,this.skinRequired=!1,this.color=new d,t<0)throw new Error("index must be >= 0.");if(null==e)throw new Error("name cannot be null.");this.index=t,this.name=e,this.parent=n};t.TransformMode=void 0,(xt=t.TransformMode||(t.TransformMode={}))[xt.Normal=0]="Normal",xt[xt.OnlyTranslation=1]="OnlyTranslation",xt[xt.NoRotationOrReflection=2]="NoRotationOrReflection",xt[xt.NoScale=3]="NoScale",xt[xt.NoScaleOrReflection=4]="NoScaleOrReflection";var Et,bt,Mt,Tt=function(){function e(t,e,n){if(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.appliedValid=!1,this.a=0,this.b=0,this.c=0,this.d=0,this.worldY=0,this.worldX=0,this.sorted=!1,this.active=!1,null==t)throw new Error("data cannot be null.");if(null==e)throw new Error("skeleton cannot be null.");this.data=t,this.skeleton=e,this.parent=n,this.setToSetupPose()}var n=e.prototype;return n.isActive=function(){return this.active},n.update=function(){this.updateWorldTransformWith(this.x,this.y,this.rotation,this.scaleX,this.scaleY,this.shearX,this.shearY)},n.updateWorldTransform=function(){this.updateWorldTransformWith(this.x,this.y,this.rotation,this.scaleX,this.scaleY,this.shearX,this.shearY)},n.updateWorldTransformWith=function(e,n,r,a,i,s,o){this.ax=e,this.ay=n,this.arotation=r,this.ascaleX=a,this.ascaleY=i,this.ashearX=s,this.ashearY=o,this.appliedValid=!0;var l=this.parent;if(null==l){var h=this.skeleton,u=r+90+o,c=h.scaleX,d=h.scaleY;return this.a=f.cosDeg(r+s)*a*c,this.b=f.cosDeg(u)*i*c,this.c=f.sinDeg(r+s)*a*d,this.d=f.sinDeg(u)*i*d,this.worldX=e*c+h.x,void(this.worldY=n*d+h.y)}var p=l.a,v=l.b,m=l.c,g=l.d;switch(this.worldX=p*e+v*n+l.worldX,this.worldY=m*e+g*n+l.worldY,this.data.transformMode){case t.TransformMode.Normal:var w=r+90+o,x=f.cosDeg(r+s)*a,y=f.cosDeg(w)*i,E=f.sinDeg(r+s)*a,b=f.sinDeg(w)*i;return this.a=p*x+v*E,this.b=p*y+v*b,this.c=m*x+g*E,void(this.d=m*y+g*b);case t.TransformMode.OnlyTranslation:var M=r+90+o;this.a=f.cosDeg(r+s)*a,this.b=f.cosDeg(M)*i,this.c=f.sinDeg(r+s)*a,this.d=f.sinDeg(M)*i;break;case t.TransformMode.NoRotationOrReflection:var T=p*p+m*m,S=0;T>1e-4?(T=Math.abs(p*g-v*m)/T,p/=this.skeleton.scaleX,v=(m/=this.skeleton.scaleY)*T,g=p*T,S=Math.atan2(m,p)*f.radDeg):(p=0,m=0,S=90-Math.atan2(g,v)*f.radDeg);var A=r+s-S,I=r+o-S+90,R=f.cosDeg(A)*a,C=f.cosDeg(I)*i,P=f.sinDeg(A)*a,V=f.sinDeg(I)*i;this.a=p*R-v*P,this.b=p*C-v*V,this.c=m*R+g*P,this.d=m*C+g*V;break;case t.TransformMode.NoScale:case t.TransformMode.NoScaleOrReflection:var _=f.cosDeg(r),k=f.sinDeg(r),F=(p*_+v*k)/this.skeleton.scaleX,B=(m*_+g*k)/this.skeleton.scaleY,N=Math.sqrt(F*F+B*B);N>1e-5&&(N=1/N),F*=N,B*=N,N=Math.sqrt(F*F+B*B),this.data.transformMode==t.TransformMode.NoScale&&p*g-v*m<0!=(this.skeleton.scaleX<0!=this.skeleton.scaleY<0)&&(N=-N);var O=Math.PI/2+Math.atan2(B,F),D=Math.cos(O)*N,L=Math.sin(O)*N,X=f.cosDeg(s)*a,Y=f.cosDeg(90+o)*i,W=f.sinDeg(s)*a,U=f.sinDeg(90+o)*i;this.a=F*X+D*W,this.b=F*Y+D*U,this.c=B*X+L*W,this.d=B*Y+L*U}this.a*=this.skeleton.scaleX,this.b*=this.skeleton.scaleX,this.c*=this.skeleton.scaleY,this.d*=this.skeleton.scaleY},n.setToSetupPose=function(){var 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},n.getWorldRotationX=function(){return Math.atan2(this.c,this.a)*f.radDeg},n.getWorldRotationY=function(){return Math.atan2(this.d,this.b)*f.radDeg},n.getWorldScaleX=function(){return Math.sqrt(this.a*this.a+this.c*this.c)},n.getWorldScaleY=function(){return Math.sqrt(this.b*this.b+this.d*this.d)},n.updateAppliedTransform=function(){this.appliedValid=!0;var t=this.parent;if(null==t)return this.ax=this.worldX,this.ay=this.worldY,this.arotation=Math.atan2(this.c,this.a)*f.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,void(this.ashearY=Math.atan2(this.a*this.b+this.c*this.d,this.a*this.d-this.b*this.c)*f.radDeg);var e=t.a,n=t.b,r=t.c,a=t.d,i=1/(e*a-n*r),s=this.worldX-t.worldX,o=this.worldY-t.worldY;this.ax=s*a*i-o*n*i,this.ay=o*e*i-s*r*i;var l=i*a,h=i*e,u=i*n,c=i*r,d=l*this.a-u*this.c,p=l*this.b-u*this.d,v=h*this.c-c*this.a,m=h*this.d-c*this.b;if(this.ashearX=0,this.ascaleX=Math.sqrt(d*d+v*v),this.ascaleX>1e-4){var g=d*m-p*v;this.ascaleY=g/this.ascaleX,this.ashearY=Math.atan2(d*p+v*m,g)*f.radDeg,this.arotation=Math.atan2(v,d)*f.radDeg}else this.ascaleX=0,this.ascaleY=Math.sqrt(p*p+m*m),this.ashearY=0,this.arotation=90-Math.atan2(m,p)*f.radDeg},n.worldToLocal=function(t){var e=this.a,n=this.b,r=this.c,a=this.d,i=1/(e*a-n*r),s=t.x-this.worldX,o=t.y-this.worldY;return t.x=s*a*i-o*n*i,t.y=o*e*i-s*r*i,t},n.localToWorld=function(t){var e=t.x,n=t.y;return t.x=e*this.a+n*this.b+this.worldX,t.y=e*this.c+n*this.d+this.worldY,t},n.worldToLocalRotation=function(t){var e=f.sinDeg(t),n=f.cosDeg(t);return Math.atan2(this.a*e-this.c*n,this.d*n-this.b*e)*f.radDeg+this.rotation-this.shearX},n.localToWorldRotation=function(t){t-=this.rotation-this.shearX;var e=f.sinDeg(t),n=f.cosDeg(t);return Math.atan2(n*this.c+e*this.d,n*this.a+e*this.b)*f.radDeg},n.rotateWorld=function(t){var e=this.a,n=this.b,r=this.c,a=this.d,i=f.cosDeg(t),s=f.sinDeg(t);this.a=i*e-s*r,this.b=i*n-s*a,this.c=s*e+i*r,this.d=s*n+i*a,this.appliedValid=!1},e}(),St=function(t,e,n){this.name=t,this.order=e,this.skinRequired=n},At=function(t,e){if(null==e)throw new Error("data cannot be null.");this.time=t,this.data=e},It=function(t){this.name=t},Rt=function(){function e(t,e){if(this.bendDirection=0,this.compress=!1,this.stretch=!1,this.mix=1,this.softness=0,this.active=!1,null==t)throw new Error("data cannot be null.");if(null==e)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(var n=0;n<t.bones.length;n++)this.bones.push(e.findBone(t.bones[n].name));this.target=e.findBone(t.target.name)}var n=e.prototype;return n.isActive=function(){return this.active},n.apply=function(){this.update()},n.update=function(){var t=this.target,e=this.bones;switch(e.length){case 1:this.apply1(e[0],t.worldX,t.worldY,this.compress,this.stretch,this.data.uniform,this.mix);break;case 2:this.apply2(e[0],e[1],t.worldX,t.worldY,this.bendDirection,this.stretch,this.softness,this.mix)}},n.apply1=function(e,n,r,a,i,s,o){e.appliedValid||e.updateAppliedTransform();var l=e.parent,h=l.a,u=l.b,c=l.c,d=l.d,p=-e.ashearX-e.arotation,v=0,m=0;switch(e.data.transformMode){case t.TransformMode.OnlyTranslation:v=n-e.worldX,m=r-e.worldY;break;case t.TransformMode.NoRotationOrReflection:var g=Math.abs(h*d-u*c)/(h*h+c*c),w=h/e.skeleton.scaleX,x=c/e.skeleton.scaleY;u=-x*g*e.skeleton.scaleX,d=w*g*e.skeleton.scaleY,p+=Math.atan2(x,w)*f.radDeg;default:var y=n-l.worldX,E=r-l.worldY,b=h*d-u*c;v=(y*d-E*u)/b-e.ax,m=(E*h-y*c)/b-e.ay}p+=Math.atan2(m,v)*f.radDeg,e.ascaleX<0&&(p+=180),p>180?p-=360:p<-180&&(p+=360);var M=e.ascaleX,T=e.ascaleY;if(a||i){switch(e.data.transformMode){case t.TransformMode.NoScale:case t.TransformMode.NoScaleOrReflection:v=n-e.worldX,m=r-e.worldY}var S=e.data.length*M,A=Math.sqrt(v*v+m*m);if(a&&A<S||i&&A>S&&S>1e-4){var I=(A/S-1)*o+1;M*=I,s&&(T*=I)}}e.updateWorldTransformWith(e.ax,e.ay,e.arotation+p*o,M,T,e.ashearX,e.ashearY)},n.apply2=function(t,e,n,r,a,i,s,o){if(0!=o){t.appliedValid||t.updateAppliedTransform(),e.appliedValid||e.updateAppliedTransform();var l=t.ax,h=t.ay,u=t.ascaleX,c=u,d=t.ascaleY,p=e.ascaleX,v=0,m=0,g=0;u<0?(u=-u,v=180,g=-1):(v=0,g=1),d<0&&(d=-d,g=-g),p<0?(p=-p,m=180):m=0;var w=e.ax,x=0,y=0,E=0,b=t.a,M=t.b,T=t.c,S=t.d,A=Math.abs(u-d)<=1e-4;A?(y=b*w+M*(x=e.ay)+t.worldX,E=T*w+S*x+t.worldY):(x=0,y=b*w+t.worldX,E=T*w+t.worldY);var I=t.parent;b=I.a,M=I.b,T=I.c;var R,C,P=1/(b*(S=I.d)-M*T),V=y-I.worldX,_=E-I.worldY,k=(V*S-_*M)*P-l,F=(_*b-V*T)*P-h,B=Math.sqrt(k*k+F*F),N=e.data.length*p;if(B<1e-4)return this.apply1(t,n,r,!1,i,!1,o),void e.updateWorldTransformWith(w,x,0,e.ascaleX,e.ascaleY,e.ashearX,e.ashearY);var O=((V=n-I.worldX)*S-(_=r-I.worldY)*M)*P-l,D=(_*b-V*T)*P-h,L=O*O+D*D;if(0!=s){s*=u*(p+1)/2;var X=Math.sqrt(L),Y=X-B-N*u+s;if(Y>0){var W=Math.min(1,Y/(2*s))-1;L=(O-=(W=(Y-s*(1-W*W))/X)*O)*O+(D-=W*D)*D}}t:if(A){var U=(L-B*B-(N*=u)*N)/(2*B*N);U<-1?U=-1:U>1&&(U=1,i&&(c*=(Math.sqrt(L)/(B+N)-1)*o+1)),C=Math.acos(U)*a,b=B+N*U,M=N*Math.sin(C),R=Math.atan2(D*b-O*M,O*b+D*M)}else{var q=(b=u*N)*b,H=(M=d*N)*M,j=Math.atan2(D,O),G=-2*H*B,z=H-q;if((S=G*G-4*z*(T=H*B*B+q*L-q*H))>=0){var Z=Math.sqrt(S);G<0&&(Z=-Z);var Q=(Z=-(G+Z)/2)/z,J=T/Z,K=Math.abs(Q)<Math.abs(J)?Q:J;if(K*K<=L){_=Math.sqrt(L-K*K)*a,R=j-Math.atan2(_,K),C=Math.atan2(_/d,(K-B)/u);break t}}var $=f.PI,tt=B-b,et=tt*tt,nt=0,rt=0,at=B+b,it=at*at,st=0;(T=-b*B/(q-H))>=-1&&T<=1&&(T=Math.acos(T),(S=(V=b*Math.cos(T)+B)*V+(_=M*Math.sin(T))*_)<et&&($=T,et=S,tt=V,nt=_),S>it&&(rt=T,it=S,at=V,st=_)),L<=(et+it)/2?(R=j-Math.atan2(nt*a,tt),C=$*a):(R=j-Math.atan2(st*a,at),C=rt*a)}var ot=Math.atan2(x,w)*g,lt=t.arotation;(R=(R-ot)*f.radDeg+v-lt)>180?R-=360:R<-180&&(R+=360),t.updateWorldTransformWith(l,h,lt+R*o,c,t.ascaleY,0,0),lt=e.arotation,(C=((C+ot)*f.radDeg-e.ashearX)*g+m-lt)>180?C-=360:C<-180&&(C+=360),e.updateWorldTransformWith(w,x,lt+C*o,e.ascaleX,e.ascaleY,e.ashearX,e.ashearY)}else e.updateWorldTransform()},e}(),Ct=function(t){function e(e){var n;return(n=t.call(this,e,0,!1)||this).bones=new Array,n.bendDirection=1,n.compress=!1,n.stretch=!1,n.uniform=!1,n.mix=1,n.softness=0,n}return i(e,t),e}(St),Pt=function(t){function e(e){var n;return(n=t.call(this,e,0,!1)||this).bones=new Array,n}return i(e,t),e}(St);t.PositionMode=void 0,(Et=t.PositionMode||(t.PositionMode={}))[Et.Fixed=0]="Fixed",Et[Et.Percent=1]="Percent",t.SpacingMode=void 0,(bt=t.SpacingMode||(t.SpacingMode={}))[bt.Length=0]="Length",bt[bt.Fixed=1]="Fixed",bt[bt.Percent=2]="Percent",t.RotateMode=void 0,(Mt=t.RotateMode||(t.RotateMode={}))[Mt.Tangent=0]="Tangent",Mt[Mt.Chain=1]="Chain",Mt[Mt.ChainScale=2]="ChainScale";var Vt,_t=function(){function e(t,e){if(this.position=0,this.spacing=0,this.rotateMix=0,this.translateMix=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,null==t)throw new Error("data cannot be null.");if(null==e)throw new Error("skeleton cannot be null.");this.data=t,this.bones=new Array;for(var n=0,r=t.bones.length;n<r;n++)this.bones.push(e.findBone(t.bones[n].name));this.target=e.findSlot(t.target.name),this.position=t.position,this.spacing=t.spacing,this.rotateMix=t.rotateMix,this.translateMix=t.translateMix}var n=e.prototype;return n.isActive=function(){return this.active},n.apply=function(){this.update()},n.update=function(){var n=this.target.getAttachment();if(u(n,vt)){var r=this.rotateMix,a=this.translateMix,i=r>0;if(a>0||i){var s=this.data,o=s.spacingMode==t.SpacingMode.Percent,l=s.rotateMode,h=l==t.RotateMode.Tangent,c=l==t.RotateMode.ChainScale,d=this.bones.length,p=h?d:d+1,v=this.bones,m=g.setArraySize(this.spaces,p),w=null,x=this.spacing;if(c||!o){c&&(w=g.setArraySize(this.lengths,d));for(var y=s.spacingMode==t.SpacingMode.Length,E=0,b=p-1;E<b;){var M=v[E],T=M.data.length;if(T<e.epsilon)c&&(w[E]=0),m[++E]=0;else if(o){if(c){var S=T*M.a,A=T*M.c,I=Math.sqrt(S*S+A*A);w[E]=I}m[++E]=x}else{var R=T*M.a,C=T*M.c,P=Math.sqrt(R*R+C*C);c&&(w[E]=P),m[++E]=(y?T+x:x)*P/T}}}else for(var V=1;V<p;V++)m[V]=x;var _=this.computeWorldPositions(n,p,h,s.positionMode==t.PositionMode.Percent,o),k=_[0],F=_[1],B=s.offsetRotation,N=!1;if(0==B)N=l==t.RotateMode.Chain;else{N=!1;var O=this.target.bone;B*=O.a*O.d-O.b*O.c>0?f.degRad:-f.degRad}for(var D=0,L=3;D<d;D++,L+=3){var X=v[D];X.worldX+=(k-X.worldX)*a,X.worldY+=(F-X.worldY)*a;var Y=_[L],W=_[L+1],U=Y-k,q=W-F;if(c){var H=w[D];if(0!=H){var j=(Math.sqrt(U*U+q*q)/H-1)*r+1;X.a*=j,X.c*=j}}if(k=Y,F=W,i){var G=X.a,z=X.b,Z=X.c,Q=X.d,J=0,K=0,$=0;if(J=h?_[L-1]:0==m[D+1]?_[L+2]:Math.atan2(q,U),J-=Math.atan2(Z,G),N){K=Math.cos(J),$=Math.sin(J);var tt=X.data.length;k+=(tt*(K*G-$*Z)-U)*r,F+=(tt*($*G+K*Z)-q)*r}else J+=B;J>f.PI?J-=f.PI2:J<-f.PI&&(J+=f.PI2),J*=r,K=Math.cos(J),$=Math.sin(J),X.a=K*G-$*Z,X.b=K*z-$*Q,X.c=$*G+K*Z,X.d=$*z+K*Q}X.appliedValid=!1}}}},n.computeWorldPositions=function(t,n,r,a,i){var s=this.target,o=this.position,l=this.spaces,h=g.setArraySize(this.positions,3*n+2),u=null,c=t.closed,d=t.worldVerticesLength,f=d/6,p=e.NONE;if(!t.constantSpeed){var v=t.lengths,m=v[f-=c?1:2];if(a&&(o*=m),i)for(var w=1;w<n;w++)l[w]*=m;u=g.setArraySize(this.world,8);for(var x=0,y=0,E=0;x<n;x++,y+=3){var b=l[x],M=o+=b;if(c)(M%=m)<0&&(M+=m),E=0;else{if(M<0){p!=e.BEFORE&&(p=e.BEFORE,t.computeWorldVertices(s,2,4,u,0,2)),this.addBeforePosition(M,u,0,h,y);continue}if(M>m){p!=e.AFTER&&(p=e.AFTER,t.computeWorldVertices(s,d-6,4,u,0,2)),this.addAfterPosition(M-m,u,0,h,y);continue}}for(;;E++){var T=v[E];if(!(M>T)){if(0==E)M/=T;else{var S=v[E-1];M=(M-S)/(T-S)}break}}E!=p&&(p=E,c&&E==f?(t.computeWorldVertices(s,d-4,4,u,0,2),t.computeWorldVertices(s,0,4,u,4,2)):t.computeWorldVertices(s,6*E+2,8,u,0,2)),this.addCurvePosition(M,u[0],u[1],u[2],u[3],u[4],u[5],u[6],u[7],h,y,r||x>0&&0==b)}return h}c?(d+=2,u=g.setArraySize(this.world,d),t.computeWorldVertices(s,2,d-4,u,0,2),t.computeWorldVertices(s,0,2,u,d-4,2),u[d-2]=u[0],u[d-1]=u[1]):(f--,d-=4,u=g.setArraySize(this.world,d),t.computeWorldVertices(s,2,d,u,0,2));for(var A=g.setArraySize(this.curves,f),I=0,R=u[0],C=u[1],P=0,V=0,_=0,k=0,F=0,B=0,N=0,O=0,D=0,L=0,X=0,Y=0,W=0,U=0,q=0,H=2;q<f;q++,H+=6)P=u[H],V=u[H+1],_=u[H+2],k=u[H+3],X=2*(N=.1875*(R-2*P+_))+(D=.09375*(3*(P-_)-R+(F=u[H+4]))),Y=2*(O=.1875*(C-2*V+k))+(L=.09375*(3*(V-k)-C+(B=u[H+5]))),W=.75*(P-R)+N+.16666667*D,U=.75*(V-C)+O+.16666667*L,I+=Math.sqrt(W*W+U*U),W+=X,U+=Y,X+=D,Y+=L,I+=Math.sqrt(W*W+U*U),W+=X,U+=Y,I+=Math.sqrt(W*W+U*U),W+=X+D,U+=Y+L,I+=Math.sqrt(W*W+U*U),A[q]=I,R=F,C=B;if(o*=a?I:I/t.lengths[f-1],i)for(var j=1;j<n;j++)l[j]*=I;for(var G=this.segments,z=0,Z=0,Q=0,J=0,K=0;Z<n;Z++,Q+=3){var $=l[Z],tt=o+=$;if(c)(tt%=I)<0&&(tt+=I),J=0;else{if(tt<0){this.addBeforePosition(tt,u,0,h,Q);continue}if(tt>I){this.addAfterPosition(tt-I,u,d-4,h,Q);continue}}for(;;J++){var et=A[J];if(!(tt>et)){if(0==J)tt/=et;else{var nt=A[J-1];tt=(tt-nt)/(et-nt)}break}}if(J!=p){p=J;var rt=6*J;for(R=u[rt],C=u[rt+1],P=u[rt+2],V=u[rt+3],_=u[rt+4],k=u[rt+5],X=2*(N=.03*(R-2*P+_))+(D=.006*(3*(P-_)-R+(F=u[rt+6]))),Y=2*(O=.03*(C-2*V+k))+(L=.006*(3*(V-k)-C+(B=u[rt+7]))),W=.3*(P-R)+N+.16666667*D,U=.3*(V-C)+O+.16666667*L,z=Math.sqrt(W*W+U*U),G[0]=z,rt=1;rt<8;rt++)W+=X,U+=Y,X+=D,Y+=L,z+=Math.sqrt(W*W+U*U),G[rt]=z;W+=X,U+=Y,z+=Math.sqrt(W*W+U*U),G[8]=z,W+=X+D,U+=Y+L,z+=Math.sqrt(W*W+U*U),G[9]=z,K=0}for(tt*=z;;K++){var at=G[K];if(!(tt>at)){if(0==K)tt/=at;else{var it=G[K-1];tt=K+(tt-it)/(at-it)}break}}this.addCurvePosition(.1*tt,R,C,P,V,_,k,F,B,h,Q,r||Z>0&&0==$)}return h},n.addBeforePosition=function(t,e,n,r,a){var i=e[n],s=e[n+1],o=e[n+2]-i,l=e[n+3]-s,h=Math.atan2(l,o);r[a]=i+t*Math.cos(h),r[a+1]=s+t*Math.sin(h),r[a+2]=h},n.addAfterPosition=function(t,e,n,r,a){var i=e[n+2],s=e[n+3],o=i-e[n],l=s-e[n+1],h=Math.atan2(l,o);r[a]=i+t*Math.cos(h),r[a+1]=s+t*Math.sin(h),r[a+2]=h},n.addCurvePosition=function(t,e,n,r,a,i,s,o,l,h,u,c){if(0==t||isNaN(t))return h[u]=e,h[u+1]=n,void(h[u+2]=Math.atan2(a-n,r-e));var d=t*t,f=d*t,p=1-t,v=p*p,m=v*p,g=p*t,w=3*g,x=p*w,y=w*t,E=e*m+r*x+i*y+o*f,b=n*m+a*x+s*y+l*f;h[u]=E,h[u+1]=b,c&&(h[u+2]=t<.001?Math.atan2(a-n,r-e):Math.atan2(b-(n*v+a*g*2+s*d),E-(e*v+r*g*2+i*d)))},e}();_t.NONE=-1,_t.BEFORE=-2,_t.AFTER=-3,_t.epsilon=1e-5,Math.fround||(Math.fround=(Vt=new Float32Array(1),function(t){return Vt[0]=t,Vt[0]}));var kt,Ft=function(){function t(t){this.toLoad=new Array,this.assets={},this.clientId=t}return t.prototype.loaded=function(){var t=0;for(var e in this.assets)t++;return t},t}(),Bt=function(){function t(t){void 0===t&&(t=""),this.clientAssets={},this.queuedAssets={},this.rawAssets={},this.errors={},this.pathPrefix=t}var e=t.prototype;return e.queueAsset=function(t,e,n){var r=this.clientAssets[t];return null==r&&(r=new Ft(t),this.clientAssets[t]=r),null!==e&&(r.textureLoader=e),r.toLoad.push(n),this.queuedAssets[n]!==n&&(this.queuedAssets[n]=n,!0)},e.loadText=function(t,e){var n=this;if(e=this.pathPrefix+e,this.queueAsset(t,null,e)){var r=new XMLHttpRequest;r.overrideMimeType("text/html"),r.onreadystatechange=function(){r.readyState==XMLHttpRequest.DONE&&(r.status>=200&&r.status<300?n.rawAssets[e]=r.responseText:n.errors[e]="Couldn't load text "+e+": status "+r.status+", "+r.responseText)},r.open("GET",e,!0),r.send()}},e.loadJson=function(t,e){var n=this;if(e=this.pathPrefix+e,this.queueAsset(t,null,e)){var r=new XMLHttpRequest;r.overrideMimeType("text/html"),r.onreadystatechange=function(){r.readyState==XMLHttpRequest.DONE&&(r.status>=200&&r.status<300?n.rawAssets[e]=JSON.parse(r.responseText):n.errors[e]="Couldn't load text "+e+": status "+r.status+", "+r.responseText)},r.open("GET",e,!0),r.send()}},e.loadTexture=function(t,e,n){var r=this;if(n=this.pathPrefix+n,this.queueAsset(t,e,n))if(!!("undefined"==typeof window||"undefined"==typeof navigator||!window.document)&&"undefined"!=typeof importScripts){fetch(n,{mode:"cors"}).then((function(t){return t.ok||(r.errors[n]="Couldn't load image "+n),t.blob()})).then((function(t){return createImageBitmap(t,{premultiplyAlpha:"none",colorSpaceConversion:"none"})})).then((function(t){r.rawAssets[n]=t}))}else{var a=new Image;a.crossOrigin="anonymous",a.onload=function(t){r.rawAssets[n]=a},a.onerror=function(t){r.errors[n]="Couldn't load image "+n},a.src=n}},e.get=function(t,e){e=this.pathPrefix+e;var n=this.clientAssets[t];return null==n||n.assets[e]},e.updateClientAssets=function(t){for(var e=!!("undefined"==typeof window||"undefined"==typeof navigator||!window.document)&&"undefined"!=typeof importScripts,n=0;n<t.toLoad.length;n++){var r=t.toLoad[n],a=t.assets[r];if(null==a){var i=this.rawAssets[r];if(null==i)continue;e?u(i,ImageBitmap)?t.assets[r]=t.textureLoader(i):t.assets[r]=i:u(i,HTMLImageElement)?t.assets[r]=t.textureLoader(i):t.assets[r]=i}}},e.isLoadingComplete=function(t){var e=this.clientAssets[t];return null==e||(this.updateClientAssets(e),e.toLoad.length==e.loaded())},e.dispose=function(){},e.hasErrors=function(){return Object.keys(this.errors).length>0},e.getErrors=function(){return this.errors},t}(),Nt=function(){function t(t,e){if(this.deform=new Array,null==t)throw new Error("data cannot be null.");if(null==e)throw new Error("bone cannot be null.");this.data=t,this.bone=e,this.color=new d,this.darkColor=null==t.darkColor?null:new d,this.setToSetupPose()}var e=t.prototype;return e.getSkeleton=function(){return this.bone.skeleton},e.getAttachment=function(){return this.attachment},e.setAttachment=function(t){this.attachment!=t&&(this.attachment=t,this.attachmentTime=this.bone.skeleton.time,this.deform.length=0)},e.setAttachmentTime=function(t){this.attachmentTime=this.bone.skeleton.time-t},e.getAttachmentTime=function(){return this.bone.skeleton.time-this.attachmentTime},e.setToSetupPose=function(){this.color.setFromColor(this.data.color),null!=this.darkColor&&this.darkColor.setFromColor(this.data.darkColor),null==this.data.attachmentName?this.attachment=null:(this.attachment=null,this.setAttachment(this.bone.skeleton.getAttachment(this.data.index,this.data.attachmentName)))},t}(),Ot=function(){function t(t,e){if(this.rotateMix=0,this.translateMix=0,this.scaleMix=0,this.shearMix=0,this.temp=new y,this.active=!1,null==t)throw new Error("data cannot be null.");if(null==e)throw new Error("skeleton cannot be null.");this.data=t,this.rotateMix=t.rotateMix,this.translateMix=t.translateMix,this.scaleMix=t.scaleMix,this.shearMix=t.shearMix,this.bones=new Array;for(var n=0;n<t.bones.length;n++)this.bones.push(e.findBone(t.bones[n].name));this.target=e.findBone(t.target.name)}var e=t.prototype;return e.isActive=function(){return this.active},e.apply=function(){this.update()},e.update=function(){this.data.local?this.data.relative?this.applyRelativeLocal():this.applyAbsoluteLocal():this.data.relative?this.applyRelativeWorld():this.applyAbsoluteWorld()},e.applyAbsoluteWorld=function(){for(var t=this.rotateMix,e=this.translateMix,n=this.scaleMix,r=this.shearMix,a=this.target,i=a.a,s=a.b,o=a.c,l=a.d,h=i*l-s*o>0?f.degRad:-f.degRad,u=this.data.offsetRotation*h,c=this.data.offsetShearY*h,d=this.bones,p=0,v=d.length;p<v;p++){var m=d[p],g=!1;if(0!=t){var w=m.a,x=m.b,y=m.c,E=m.d,b=Math.atan2(o,i)-Math.atan2(y,w)+u;b>f.PI?b-=f.PI2:b<-f.PI&&(b+=f.PI2),b*=t;var M=Math.cos(b),T=Math.sin(b);m.a=M*w-T*y,m.b=M*x-T*E,m.c=T*w+M*y,m.d=T*x+M*E,g=!0}if(0!=e){var S=this.temp;a.localToWorld(S.set(this.data.offsetX,this.data.offsetY)),m.worldX+=(S.x-m.worldX)*e,m.worldY+=(S.y-m.worldY)*e,g=!0}if(n>0){var A=Math.sqrt(m.a*m.a+m.c*m.c),I=Math.sqrt(i*i+o*o);A>1e-5&&(A=(A+(I-A+this.data.offsetScaleX)*n)/A),m.a*=A,m.c*=A,A=Math.sqrt(m.b*m.b+m.d*m.d),I=Math.sqrt(s*s+l*l),A>1e-5&&(A=(A+(I-A+this.data.offsetScaleY)*n)/A),m.b*=A,m.d*=A,g=!0}if(r>0){var R=m.b,C=m.d,P=Math.atan2(C,R),V=Math.atan2(l,s)-Math.atan2(o,i)-(P-Math.atan2(m.c,m.a));V>f.PI?V-=f.PI2:V<-f.PI&&(V+=f.PI2),V=P+(V+c)*r;var _=Math.sqrt(R*R+C*C);m.b=Math.cos(V)*_,m.d=Math.sin(V)*_,g=!0}g&&(m.appliedValid=!1)}},e.applyRelativeWorld=function(){for(var t=this.rotateMix,e=this.translateMix,n=this.scaleMix,r=this.shearMix,a=this.target,i=a.a,s=a.b,o=a.c,l=a.d,h=i*l-s*o>0?f.degRad:-f.degRad,u=this.data.offsetRotation*h,c=this.data.offsetShearY*h,d=this.bones,p=0,v=d.length;p<v;p++){var m=d[p],g=!1;if(0!=t){var w=m.a,x=m.b,y=m.c,E=m.d,b=Math.atan2(o,i)+u;b>f.PI?b-=f.PI2:b<-f.PI&&(b+=f.PI2),b*=t;var M=Math.cos(b),T=Math.sin(b);m.a=M*w-T*y,m.b=M*x-T*E,m.c=T*w+M*y,m.d=T*x+M*E,g=!0}if(0!=e){var S=this.temp;a.localToWorld(S.set(this.data.offsetX,this.data.offsetY)),m.worldX+=S.x*e,m.worldY+=S.y*e,g=!0}if(n>0){var A=(Math.sqrt(i*i+o*o)-1+this.data.offsetScaleX)*n+1;m.a*=A,m.c*=A,A=(Math.sqrt(s*s+l*l)-1+this.data.offsetScaleY)*n+1,m.b*=A,m.d*=A,g=!0}if(r>0){var I=Math.atan2(l,s)-Math.atan2(o,i);I>f.PI?I-=f.PI2:I<-f.PI&&(I+=f.PI2);var R=m.b,C=m.d;I=Math.atan2(C,R)+(I-f.PI/2+c)*r;var P=Math.sqrt(R*R+C*C);m.b=Math.cos(I)*P,m.d=Math.sin(I)*P,g=!0}g&&(m.appliedValid=!1)}},e.applyAbsoluteLocal=function(){var t=this.rotateMix,e=this.translateMix,n=this.scaleMix,r=this.shearMix,a=this.target;a.appliedValid||a.updateAppliedTransform();for(var i=this.bones,s=0,o=i.length;s<o;s++){var l=i[s];l.appliedValid||l.updateAppliedTransform();var h=l.arotation;if(0!=t){var u=a.arotation-h+this.data.offsetRotation;h+=(u-=360*(16384-(16384.499999999996-u/360|0)))*t}var c=l.ax,d=l.ay;0!=e&&(c+=(a.ax-c+this.data.offsetX)*e,d+=(a.ay-d+this.data.offsetY)*e);var f=l.ascaleX,p=l.ascaleY;0!=n&&(f>1e-5&&(f=(f+(a.ascaleX-f+this.data.offsetScaleX)*n)/f),p>1e-5&&(p=(p+(a.ascaleY-p+this.data.offsetScaleY)*n)/p));var v=l.ashearY;if(0!=r){var m=a.ashearY-v+this.data.offsetShearY;m-=360*(16384-(16384.499999999996-m/360|0)),l.shearY+=m*r}l.updateWorldTransformWith(c,d,h,f,p,l.ashearX,v)}},e.applyRelativeLocal=function(){var t=this.rotateMix,e=this.translateMix,n=this.scaleMix,r=this.shearMix,a=this.target;a.appliedValid||a.updateAppliedTransform();for(var i=this.bones,s=0,o=i.length;s<o;s++){var l=i[s];l.appliedValid||l.updateAppliedTransform();var h=l.arotation;0!=t&&(h+=(a.arotation+this.data.offsetRotation)*t);var u=l.ax,c=l.ay;0!=e&&(u+=(a.ax+this.data.offsetX)*e,c+=(a.ay+this.data.offsetY)*e);var d=l.ascaleX,f=l.ascaleY;0!=n&&(d>1e-5&&(d*=(a.ascaleX-1+this.data.offsetScaleX)*n+1),f>1e-5&&(f*=(a.ascaleY-1+this.data.offsetScaleY)*n+1));var p=l.ashearY;0!=r&&(p+=(a.ashearY+this.data.offsetShearY)*r),l.updateWorldTransformWith(u,c,h,d,f,l.ashearX,p)}},t}(),Dt=function(){function t(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,null==t)throw new Error("data cannot be null.");this.data=t,this.bones=new Array;for(var e=0;e<t.bones.length;e++){var n=t.bones[e],r=void 0;if(null==n.parent)r=new Tt(n,this,null);else{var a=this.bones[n.parent.index];r=new Tt(n,this,a),a.children.push(r)}this.bones.push(r)}this.slots=new Array,this.drawOrder=new Array;for(var i=0;i<t.slots.length;i++){var s=t.slots[i],o=this.bones[s.boneData.index],l=new Nt(s,o);this.slots.push(l),this.drawOrder.push(l)}this.ikConstraints=new Array;for(var h=0;h<t.ikConstraints.length;h++){var u=t.ikConstraints[h];this.ikConstraints.push(new Rt(u,this))}this.transformConstraints=new Array;for(var c=0;c<t.transformConstraints.length;c++){var f=t.transformConstraints[c];this.transformConstraints.push(new Ot(f,this))}this.pathConstraints=new Array;for(var p=0;p<t.pathConstraints.length;p++){var v=t.pathConstraints[p];this.pathConstraints.push(new _t(v,this))}this.color=new d(1,1,1,1),this.updateCache()}var e=t.prototype;return e.updateCache=function(){var t=this._updateCache;t.length=0,this.updateCacheReset.length=0;for(var e=this.bones,n=0,r=e.length;n<r;n++){var a=e[n];a.sorted=a.data.skinRequired,a.active=!a.sorted}if(null!=this.skin)for(var i=this.skin.bones,s=0,o=this.skin.bones.length;s<o;s++){var l=this.bones[i[s].index];do{l.sorted=!1,l.active=!0,l=l.parent}while(null!=l)}var h=this.ikConstraints,u=this.transformConstraints,c=this.pathConstraints,d=h.length,f=u.length,p=c.length,v=d+f+p;t:for(var m=0;m<v;m++){for(var g=0;g<d;g++){var w=h[g];if(w.data.order==m){this.sortIkConstraint(w);continue t}}for(var x=0;x<f;x++){var y=u[x];if(y.data.order==m){this.sortTransformConstraint(y);continue t}}for(var E=0;E<p;E++){var b=c[E];if(b.data.order==m){this.sortPathConstraint(b);continue t}}}for(var M=0,T=e.length;M<T;M++)this.sortBone(e[M])},e.sortIkConstraint=function(t){if(t.active=t.target.isActive()&&(!t.data.skinRequired||null!=this.skin&&g.contains(this.skin.constraints,t.data,!0)),t.active){var e=t.target;this.sortBone(e);var n=t.bones,r=n[0];if(this.sortBone(r),n.length>1){var a=n[n.length-1];this._updateCache.indexOf(a)>-1||this.updateCacheReset.push(a)}this._updateCache.push(t),this.sortReset(r.children),n[n.length-1].sorted=!0}},e.sortPathConstraint=function(t){if(t.active=t.target.bone.isActive()&&(!t.data.skinRequired||null!=this.skin&&g.contains(this.skin.constraints,t.data,!0)),t.active){var e=t.target,n=e.data.index,r=e.bone;null!=this.skin&&this.sortPathConstraintAttachment(this.skin,n,r),null!=this.data.defaultSkin&&this.data.defaultSkin!=this.skin&&this.sortPathConstraintAttachment(this.data.defaultSkin,n,r);for(var a=0,i=this.data.skins.length;a<i;a++)this.sortPathConstraintAttachment(this.data.skins[a],n,r);var s=e.getAttachment();u(s,vt)&&this.sortPathConstraintAttachmentWith(s,r);for(var o=t.bones,l=o.length,h=0;h<l;h++)this.sortBone(o[h]);this._updateCache.push(t);for(var c=0;c<l;c++)this.sortReset(o[c].children);for(var d=0;d<l;d++)o[d].sorted=!0}},e.sortTransformConstraint=function(t){if(t.active=t.target.isActive()&&(!t.data.skinRequired||null!=this.skin&&g.contains(this.skin.constraints,t.data,!0)),t.active){this.sortBone(t.target);var e=t.bones,n=e.length;if(t.data.local)for(var r=0;r<n;r++){var a=e[r];this.sortBone(a.parent),this._updateCache.indexOf(a)>-1||this.updateCacheReset.push(a)}else for(var i=0;i<n;i++)this.sortBone(e[i]);this._updateCache.push(t);for(var s=0;s<n;s++)this.sortReset(e[s].children);for(var o=0;o<n;o++)e[o].sorted=!0}},e.sortPathConstraintAttachment=function(t,e,n){var r=t.attachments[e];if(r)for(var a in r)this.sortPathConstraintAttachmentWith(r[a],n)},e.sortPathConstraintAttachmentWith=function(t,e){if(u(t,vt)){var n=t.bones;if(null==n)this.sortBone(e);else for(var r=this.bones,a=0;a<n.length;)for(var i=n[a++],s=a+i;a<s;a++){var o=n[a];this.sortBone(r[o])}}},e.sortBone=function(t){if(!t.sorted){var e=t.parent;null!=e&&this.sortBone(e),t.sorted=!0,this._updateCache.push(t)}},e.sortReset=function(t){for(var e=0,n=t.length;e<n;e++){var r=t[e];r.active&&(r.sorted&&this.sortReset(r.children),r.sorted=!1)}},e.updateWorldTransform=function(){for(var t=this.updateCacheReset,e=0,n=t.length;e<n;e++){var 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,r.appliedValid=!0}for(var a=this._updateCache,i=0,s=a.length;i<s;i++)a[i].update()},e.setToSetupPose=function(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()},e.setBonesToSetupPose=function(){for(var t=this.bones,e=0,n=t.length;e<n;e++)t[e].setToSetupPose();for(var r=this.ikConstraints,a=0,i=r.length;a<i;a++){var s=r[a];s.mix=s.data.mix,s.softness=s.data.softness,s.bendDirection=s.data.bendDirection,s.compress=s.data.compress,s.stretch=s.data.stretch}for(var o=this.transformConstraints,l=0,h=o.length;l<h;l++){var u=o[l],c=u.data;u.rotateMix=c.rotateMix,u.translateMix=c.translateMix,u.scaleMix=c.scaleMix,u.shearMix=c.shearMix}for(var d=this.pathConstraints,f=0,p=d.length;f<p;f++){var v=d[f],m=v.data;v.position=m.position,v.spacing=m.spacing,v.rotateMix=m.rotateMix,v.translateMix=m.translateMix}},e.setSlotsToSetupPose=function(){var t=this.slots;g.arrayCopy(t,0,this.drawOrder,0,t.length);for(var e=0,n=t.length;e<n;e++)t[e].setToSetupPose()},e.getRootBone=function(){return 0==this.bones.length?null:this.bones[0]},e.findBone=function(t){if(null==t)throw new Error("boneName cannot be null.");for(var e=this.bones,n=0,r=e.length;n<r;n++){var a=e[n];if(a.data.name==t)return a}return null},e.findBoneIndex=function(t){if(null==t)throw new Error("boneName cannot be null.");for(var e=this.bones,n=0,r=e.length;n<r;n++)if(e[n].data.name==t)return n;return-1},e.findSlot=function(t){if(null==t)throw new Error("slotName cannot be null.");for(var e=this.slots,n=0,r=e.length;n<r;n++){var a=e[n];if(a.data.name==t)return a}return null},e.findSlotIndex=function(t){if(null==t)throw new Error("slotName cannot be null.");for(var e=this.slots,n=0,r=e.length;n<r;n++)if(e[n].data.name==t)return n;return-1},e.setSkinByName=function(t){var e=this.data.findSkin(t);if(null==e)throw new Error("Skin not found: "+t);this.setSkin(e)},e.setSkin=function(t){if(t!=this.skin){if(null!=t)if(null!=this.skin)t.attachAll(this,this.skin);else for(var e=this.slots,n=0,r=e.length;n<r;n++){var a=e[n],i=a.data.attachmentName;if(null!=i){var s=t.getAttachment(n,i);null!=s&&a.setAttachment(s)}}this.skin=t,this.updateCache()}},e.getAttachmentByName=function(t,e){return this.getAttachment(this.data.findSlotIndex(t),e)},e.getAttachment=function(t,e){if(null==e)throw new Error("attachmentName cannot be null.");if(null!=this.skin){var n=this.skin.getAttachment(t,e);if(null!=n)return n}return null!=this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null},e.setAttachment=function(t,e){if(null==t)throw new Error("slotName cannot be null.");for(var n=this.slots,r=0,a=n.length;r<a;r++){var i=n[r];if(i.data.name==t){var s=null;if(null!=e&&null==(s=this.getAttachment(r,e)))throw new Error("Attachment not found: "+e+", for slot: "+t);return void i.setAttachment(s)}}throw new Error("Slot not found: "+t)},e.findIkConstraint=function(t){if(null==t)throw new Error("constraintName cannot be null.");for(var e=this.ikConstraints,n=0,r=e.length;n<r;n++){var a=e[n];if(a.data.name==t)return a}return null},e.findTransformConstraint=function(t){if(null==t)throw new Error("constraintName cannot be null.");for(var e=this.transformConstraints,n=0,r=e.length;n<r;n++){var a=e[n];if(a.data.name==t)return a}return null},e.findPathConstraint=function(t){if(null==t)throw new Error("constraintName cannot be null.");for(var e=this.pathConstraints,n=0,r=e.length;n<r;n++){var a=e[n];if(a.data.name==t)return a}return null},e.getBounds=function(t,e,n){if(void 0===n&&(n=new Array(2)),null==t)throw new Error("offset cannot be null.");if(null==e)throw new Error("size cannot be null.");for(var r=this.drawOrder,a=Number.POSITIVE_INFINITY,i=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,o=Number.NEGATIVE_INFINITY,l=0,h=r.length;l<h;l++){var c=r[l];if(c.bone.active){var d=0,f=null,p=c.getAttachment();if(u(p,ct))d=8,f=g.setArraySize(n,d,0),p.computeWorldVertices(c.bone,f,0,2);else if(u(p,ft)){var v=p;d=v.worldVerticesLength,f=g.setArraySize(n,d,0),v.computeWorldVertices(c,0,d,f,0,2)}if(null!=f)for(var m=0,w=f.length;m<w;m+=2){var x=f[m],y=f[m+1];a=Math.min(a,x),i=Math.min(i,y),s=Math.max(s,x),o=Math.max(o,y)}}}t.set(a,i),e.set(s-a,o-i)},e.update=function(t){this.time+=t},t}(),Lt=function(){function t(){this.bones=new Array,this.slots=new Array,this.skins=new Array,this.events=new Array,this.animations=new Array,this.ikConstraints=new Array,this.transformConstraints=new Array,this.pathConstraints=new Array,this.fps=0}var e=t.prototype;return e.findBone=function(t){if(null==t)throw new Error("boneName cannot be null.");for(var e=this.bones,n=0,r=e.length;n<r;n++){var a=e[n];if(a.name==t)return a}return null},e.findBoneIndex=function(t){if(null==t)throw new Error("boneName cannot be null.");for(var e=this.bones,n=0,r=e.length;n<r;n++)if(e[n].name==t)return n;return-1},e.findSlot=function(t){if(null==t)throw new Error("slotName cannot be null.");for(var e=this.slots,n=0,r=e.length;n<r;n++){var a=e[n];if(a.name==t)return a}return null},e.findSlotIndex=function(t){if(null==t)throw new Error("slotName cannot be null.");for(var e=this.slots,n=0,r=e.length;n<r;n++)if(e[n].name==t)return n;return-1},e.findSkin=function(t){if(null==t)throw new Error("skinName cannot be null.");for(var e=this.skins,n=0,r=e.length;n<r;n++){var a=e[n];if(a.name==t)return a}return null},e.findEvent=function(t){if(null==t)throw new Error("eventDataName cannot be null.");for(var e=this.events,n=0,r=e.length;n<r;n++){var a=e[n];if(a.name==t)return a}return null},e.findAnimation=function(t){if(null==t)throw new Error("animationName cannot be null.");for(var e=this.animations,n=0,r=e.length;n<r;n++){var a=e[n];if(a.name==t)return a}return null},e.findIkConstraint=function(t){if(null==t)throw new Error("constraintName cannot be null.");for(var e=this.ikConstraints,n=0,r=e.length;n<r;n++){var a=e[n];if(a.name==t)return a}return null},e.findTransformConstraint=function(t){if(null==t)throw new Error("constraintName cannot be null.");for(var e=this.transformConstraints,n=0,r=e.length;n<r;n++){var a=e[n];if(a.name==t)return a}return null},e.findPathConstraint=function(t){if(null==t)throw new Error("constraintName cannot be null.");for(var e=this.pathConstraints,n=0,r=e.length;n<r;n++){var a=e[n];if(a.name==t)return a}return null},e.findPathConstraintIndex=function(t){if(null==t)throw new Error("pathConstraintName cannot be null.");for(var e=this.pathConstraints,n=0,r=e.length;n<r;n++)if(e[n].name==t)return n;return-1},t}(),Xt=function(t,e,n){if(this.color=new d(1,1,1,1),t<0)throw new Error("index must be >= 0.");if(null==e)throw new Error("name cannot be null.");if(null==n)throw new Error("boneData cannot be null.");this.index=t,this.name=e,this.boneData=n},Yt=function(t){function e(e){var n;return(n=t.call(this,e,0,!1)||this).bones=new Array,n.rotateMix=0,n.translateMix=0,n.scaleMix=0,n.shearMix=0,n.offsetRotation=0,n.offsetX=0,n.offsetY=0,n.offsetScaleX=0,n.offsetScaleY=0,n.offsetShearY=0,n.relative=!1,n.local=!1,n}return i(e,t),e}(St),Wt=function(t,e,n){this.slotIndex=t,this.name=e,this.attachment=n},Ut=function(){function t(t){if(this.attachments=new Array,this.bones=Array(),this.constraints=new Array,null==t)throw new Error("name cannot be null.");this.name=t}var e=t.prototype;return e.setAttachment=function(t,e,n){if(null==n)throw new Error("attachment cannot be null.");var r=this.attachments;t>=r.length&&(r.length=t+1),r[t]||(r[t]={}),r[t][e]=n},e.addSkin=function(t){for(var e=0;e<t.bones.length;e++){for(var n=t.bones[e],r=!1,a=0;a<this.bones.length;a++)if(this.bones[a]==n){r=!0;break}r||this.bones.push(n)}for(var i=0;i<t.constraints.length;i++){for(var s=t.constraints[i],o=!1,l=0;l<this.constraints.length;l++)if(this.constraints[l]==s){o=!0;break}o||this.constraints.push(s)}for(var h=t.getAttachments(),u=0;u<h.length;u++){var c=h[u];this.setAttachment(c.slotIndex,c.name,c.attachment)}},e.copySkin=function(t){for(var e=0;e<t.bones.length;e++){for(var n=t.bones[e],r=!1,a=0;a<this.bones.length;a++)if(this.bones[a]==n){r=!0;break}r||this.bones.push(n)}for(var i=0;i<t.constraints.length;i++){for(var s=t.constraints[i],o=!1,l=0;l<this.constraints.length;l++)if(this.constraints[l]==s){o=!0;break}o||this.constraints.push(s)}for(var h=t.getAttachments(),c=0;c<h.length;c++){var d=h[c];null!=d.attachment&&(u(d.attachment,ft)?(d.attachment=d.attachment.newLinkedMesh(),this.setAttachment(d.slotIndex,d.name,d.attachment)):(d.attachment=d.attachment.copy(),this.setAttachment(d.slotIndex,d.name,d.attachment)))}},e.getAttachment=function(t,e){var n=this.attachments[t];return n?n[e]:null},e.removeAttachment=function(t,e){var n=this.attachments[t];n&&(n[e]=null)},e.getAttachments=function(){for(var t=new Array,e=0;e<this.attachments.length;e++){var n=this.attachments[e];if(n)for(var r in n){var a=n[r];a&&t.push(new Wt(e,r,a))}}return t},e.getAttachmentsForSlot=function(t,e){var n=this.attachments[t];if(n)for(var r in n){var a=n[r];a&&e.push(new Wt(t,r,a))}},e.clear=function(){this.attachments.length=0,this.bones.length=0,this.constraints.length=0},e.attachAll=function(t,e){for(var n=0,r=0;r<t.slots.length;r++){var a=t.slots[r],i=a.getAttachment();if(i&&n<e.attachments.length){var s=e.attachments[n];for(var o in s){if(i==s[o]){var l=this.getAttachment(n,o);null!=l&&a.setAttachment(l);break}}}n++}},t}();t.AttachmentType=void 0,(kt=t.AttachmentType||(t.AttachmentType={}))[kt.Region=0]="Region",kt[kt.BoundingBox=1]="BoundingBox",kt[kt.Mesh=2]="Mesh",kt[kt.LinkedMesh=3]="LinkedMesh",kt[kt.Path=4]="Path",kt[kt.Point=5]="Point",kt[kt.Clipping=6]="Clipping";var qt=function(){function e(t){this.scale=1,this.linkedMeshes=new Array,this.attachmentLoader=t}var n=e.prototype;return n.readSkeletonData=function(n){var r=this.scale,a=new Lt;a.name="";var i=new Ht(n);if(a.hash=i.readString(),a.version=i.readString(),"3.8.75"==a.version)throw new Error("Unsupported skeleton data, please export with a newer version of Spine.");a.x=i.readFloat(),a.y=i.readFloat(),a.width=i.readFloat(),a.height=i.readFloat();var s=i.readBoolean();s&&(a.fps=i.readFloat(),a.imagesPath=i.readString(),a.audioPath=i.readString());var o=0;o=i.readInt(!0);for(var l=0;l<o;l++)i.strings.push(i.readString());o=i.readInt(!0);for(var h=0;h<o;h++){var u=i.readString(),c=0==h?null:a.bones[i.readInt(!0)],f=new yt(h,u,c);f.rotation=i.readFloat(),f.x=i.readFloat()*r,f.y=i.readFloat()*r,f.scaleX=i.readFloat(),f.scaleY=i.readFloat(),f.shearX=i.readFloat(),f.shearY=i.readFloat(),f.length=i.readFloat()*r,f.transformMode=e.TransformModeValues[i.readInt(!0)],f.skinRequired=i.readBoolean(),s&&d.rgba8888ToColor(f.color,i.readInt32()),a.bones.push(f)}o=i.readInt(!0);for(var p=0;p<o;p++){var v=i.readString(),m=a.bones[i.readInt(!0)],w=new Xt(p,v,m);d.rgba8888ToColor(w.color,i.readInt32());var x=i.readInt32();-1!=x&&d.rgb888ToColor(w.darkColor=new d,x),w.attachmentName=i.readStringRef(),w.blendMode=e.BlendModeValues[i.readInt(!0)],a.slots.push(w)}o=i.readInt(!0);for(var y,E=0;E<o;E++){var b=new Ct(i.readString());b.order=i.readInt(!0),b.skinRequired=i.readBoolean(),y=i.readInt(!0);for(var M=0;M<y;M++)b.bones.push(a.bones[i.readInt(!0)]);b.target=a.bones[i.readInt(!0)],b.mix=i.readFloat(),b.softness=i.readFloat()*r,b.bendDirection=i.readByte(),b.compress=i.readBoolean(),b.stretch=i.readBoolean(),b.uniform=i.readBoolean(),a.ikConstraints.push(b)}o=i.readInt(!0);for(var T,S=0;S<o;S++){var A=new Yt(i.readString());A.order=i.readInt(!0),A.skinRequired=i.readBoolean(),T=i.readInt(!0);for(var I=0;I<T;I++)A.bones.push(a.bones[i.readInt(!0)]);A.target=a.bones[i.readInt(!0)],A.local=i.readBoolean(),A.relative=i.readBoolean(),A.offsetRotation=i.readFloat(),A.offsetX=i.readFloat()*r,A.offsetY=i.readFloat()*r,A.offsetScaleX=i.readFloat(),A.offsetScaleY=i.readFloat(),A.offsetShearY=i.readFloat(),A.rotateMix=i.readFloat(),A.translateMix=i.readFloat(),A.scaleMix=i.readFloat(),A.shearMix=i.readFloat(),a.transformConstraints.push(A)}o=i.readInt(!0);for(var R,C=0;C<o;C++){var P=new Pt(i.readString());P.order=i.readInt(!0),P.skinRequired=i.readBoolean(),R=i.readInt(!0);for(var V=0;V<R;V++)P.bones.push(a.bones[i.readInt(!0)]);P.target=a.slots[i.readInt(!0)],P.positionMode=e.PositionModeValues[i.readInt(!0)],P.spacingMode=e.SpacingModeValues[i.readInt(!0)],P.rotateMode=e.RotateModeValues[i.readInt(!0)],P.offsetRotation=i.readFloat(),P.position=i.readFloat(),P.positionMode==t.PositionMode.Fixed&&(P.position*=r),P.spacing=i.readFloat(),P.spacingMode!=t.SpacingMode.Length&&P.spacingMode!=t.SpacingMode.Fixed||(P.spacing*=r),P.rotateMix=i.readFloat(),P.translateMix=i.readFloat(),a.pathConstraints.push(P)}var _=this.readSkin(i,a,!0,s);null!=_&&(a.defaultSkin=_,a.skins.push(_));var k=a.skins.length;for(g.setArraySize(a.skins,o=k+i.readInt(!0));k<o;k++)a.skins[k]=this.readSkin(i,a,!1,s);o=this.linkedMeshes.length;for(var F=0;F<o;F++){var B=this.linkedMeshes[F],N=null==B.skin?a.defaultSkin:a.findSkin(B.skin);if(null==N)throw new Error("Skin not found: "+B.skin);var O=N.getAttachment(B.slotIndex,B.parent);if(null==O)throw new Error("Parent mesh not found: "+B.parent);B.mesh.deformAttachment=B.inheritDeform?O:B.mesh,B.mesh.setParentMesh(O),B.mesh.updateUVs()}this.linkedMeshes.length=0,o=i.readInt(!0);for(var D=0;D<o;D++){var L=new It(i.readStringRef());L.intValue=i.readInt(!1),L.floatValue=i.readFloat(),L.stringValue=i.readString(),L.audioPath=i.readString(),null!=L.audioPath&&(L.volume=i.readFloat(),L.balance=i.readFloat()),a.events.push(L)}o=i.readInt(!0);for(var X=0;X<o;X++)a.animations.push(this.readAnimation(i,i.readString(),a));return a},n.readSkin=function(t,e,n,r){var a=null,i=0;if(n){if(0==(i=t.readInt(!0)))return null;a=new Ut("default")}else{(a=new Ut(t.readStringRef())).bones.length=t.readInt(!0);for(var s=0,o=a.bones.length;s<o;s++)a.bones[s]=e.bones[t.readInt(!0)];for(var l=0,h=t.readInt(!0);l<h;l++)a.constraints.push(e.ikConstraints[t.readInt(!0)]);for(var u=0,c=t.readInt(!0);u<c;u++)a.constraints.push(e.transformConstraints[t.readInt(!0)]);for(var d=0,f=t.readInt(!0);d<f;d++)a.constraints.push(e.pathConstraints[t.readInt(!0)]);i=t.readInt(!0)}for(var p=0;p<i;p++)for(var v=t.readInt(!0),m=0,g=t.readInt(!0);m<g;m++){var w=t.readStringRef(),x=this.readAttachment(t,e,a,v,w,r);null!=x&&a.setAttachment(v,w,x)}return a},n.readAttachment=function(n,r,a,i,s,o){var l=this.scale,h=n.readStringRef();null==h&&(h=s);var u=n.readByte();switch(e.AttachmentTypeValues[u]){case t.AttachmentType.Region:var c=n.readStringRef(),f=n.readFloat(),p=n.readFloat(),v=n.readFloat(),m=n.readFloat(),w=n.readFloat(),x=n.readFloat(),y=n.readFloat(),E=n.readInt32();null==c&&(c=h);var b=this.attachmentLoader.newRegionAttachment(a,h,c);return null==b?null:(b.path=c,b.x=p*l,b.y=v*l,b.scaleX=m,b.scaleY=w,b.rotation=f,b.width=x*l,b.height=y*l,d.rgba8888ToColor(b.color,E),b.updateOffset(),b);case t.AttachmentType.BoundingBox:var M=n.readInt(!0),T=this.readVertices(n,M),S=o?n.readInt32():0,A=this.attachmentLoader.newBoundingBoxAttachment(a,h);return null==A?null:(A.worldVerticesLength=M<<1,A.vertices=T.vertices,A.bones=T.bones,o&&d.rgba8888ToColor(A.color,S),A);case t.AttachmentType.Mesh:var I=n.readStringRef(),R=n.readInt32(),C=n.readInt(!0),P=this.readFloatArray(n,C<<1,1),V=this.readShortArray(n),_=this.readVertices(n,C),k=n.readInt(!0),F=null,B=0,N=0;o&&(F=this.readShortArray(n),B=n.readFloat(),N=n.readFloat()),null==I&&(I=h);var O=this.attachmentLoader.newMeshAttachment(a,h,I);return null==O?null:(O.path=I,d.rgba8888ToColor(O.color,R),O.bones=_.bones,O.vertices=_.vertices,O.worldVerticesLength=C<<1,O.triangles=V,O.regionUVs=P,O.updateUVs(),O.hullLength=k<<1,o&&(O.edges=F,O.width=B*l,O.height=N*l),O);case t.AttachmentType.LinkedMesh:var D=n.readStringRef(),L=n.readInt32(),X=n.readStringRef(),Y=n.readStringRef(),W=n.readBoolean(),U=0,q=0;o&&(U=n.readFloat(),q=n.readFloat()),null==D&&(D=h);var H=this.attachmentLoader.newMeshAttachment(a,h,D);return null==H?null:(H.path=D,d.rgba8888ToColor(H.color,L),o&&(H.width=U*l,H.height=q*l),this.linkedMeshes.push(new jt(H,X,i,Y,W)),H);case t.AttachmentType.Path:for(var j=n.readBoolean(),G=n.readBoolean(),z=n.readInt(!0),Z=this.readVertices(n,z),Q=g.newArray(z/3,0),J=0,K=Q.length;J<K;J++)Q[J]=n.readFloat()*l;var $=o?n.readInt32():0,tt=this.attachmentLoader.newPathAttachment(a,h);return null==tt?null:(tt.closed=j,tt.constantSpeed=G,tt.worldVerticesLength=z<<1,tt.vertices=Z.vertices,tt.bones=Z.bones,tt.lengths=Q,o&&d.rgba8888ToColor(tt.color,$),tt);case t.AttachmentType.Point:var et=n.readFloat(),nt=n.readFloat(),rt=n.readFloat(),at=o?n.readInt32():0,it=this.attachmentLoader.newPointAttachment(a,h);return null==it?null:(it.x=nt*l,it.y=rt*l,it.rotation=et,o&&d.rgba8888ToColor(it.color,at),it);case t.AttachmentType.Clipping:var st=n.readInt(!0),ot=n.readInt(!0),lt=this.readVertices(n,ot),ht=o?n.readInt32():0,ut=this.attachmentLoader.newClippingAttachment(a,h);return null==ut?null:(ut.endSlot=r.slots[st],ut.worldVerticesLength=ot<<1,ut.vertices=lt.vertices,ut.bones=lt.bones,o&&d.rgba8888ToColor(ut.color,ht),ut)}return null},n.readVertices=function(t,e){var n=e<<1,r=new Gt,a=this.scale;if(!t.readBoolean())return r.vertices=this.readFloatArray(t,n,a),r;for(var i=new Array,s=new Array,o=0;o<e;o++){var l=t.readInt(!0);s.push(l);for(var h=0;h<l;h++)s.push(t.readInt(!0)),i.push(t.readFloat()*a),i.push(t.readFloat()*a),i.push(t.readFloat())}return r.vertices=g.toFloatArray(i),r.bones=s,r},n.readFloatArray=function(t,e,n){var r=new Array(e);if(1==n)for(var a=0;a<e;a++)r[a]=t.readFloat();else for(var i=0;i<e;i++)r[i]=t.readFloat()*n;return r},n.readShortArray=function(t){for(var e=t.readInt(!0),n=new Array(e),r=0;r<e;r++)n[r]=t.readShort();return n},n.readAnimation=function(n,r,a){for(var i=new Array,s=this.scale,o=0,l=new d,h=new d,u=0,c=n.readInt(!0);u<c;u++)for(var f=n.readInt(!0),p=0,v=n.readInt(!0);p<v;p++){var m=n.readByte(),w=n.readInt(!0);switch(m){case e.SLOT_ATTACHMENT:var x=new O(w);x.slotIndex=f;for(var y=0;y<w;y++)x.setFrame(y,n.readFloat(),n.readStringRef());i.push(x),o=Math.max(o,x.frames[w-1]);break;case e.SLOT_COLOR:var E=new B(w);E.slotIndex=f;for(var b=0;b<w;b++){var M=n.readFloat();d.rgba8888ToColor(l,n.readInt32()),E.setFrame(b,M,l.r,l.g,l.b,l.a),b<w-1&&this.readCurve(n,b,E)}i.push(E),o=Math.max(o,E.frames[(w-1)*B.ENTRIES]);break;case e.SLOT_TWO_COLOR:var T=new N(w);T.slotIndex=f;for(var S=0;S<w;S++){var A=n.readFloat();d.rgba8888ToColor(l,n.readInt32()),d.rgb888ToColor(h,n.readInt32()),T.setFrame(S,A,l.r,l.g,l.b,l.a,h.r,h.g,h.b),S<w-1&&this.readCurve(n,S,T)}i.push(T),o=Math.max(o,T.frames[(w-1)*N.ENTRIES])}}for(var I=0,R=n.readInt(!0);I<R;I++)for(var P=n.readInt(!0),D=0,G=n.readInt(!0);D<G;D++){var z=n.readByte(),Z=n.readInt(!0);switch(z){case e.BONE_ROTATE:var Q=new V(Z);Q.boneIndex=P;for(var J=0;J<Z;J++)Q.setFrame(J,n.readFloat(),n.readFloat()),J<Z-1&&this.readCurve(n,J,Q);i.push(Q),o=Math.max(o,Q.frames[(Z-1)*V.ENTRIES]);break;case e.BONE_TRANSLATE:case e.BONE_SCALE:case e.BONE_SHEAR:var K=void 0,$=1;z==e.BONE_SCALE?K=new k(Z):z==e.BONE_SHEAR?K=new F(Z):(K=new _(Z),$=s),K.boneIndex=P;for(var tt=0;tt<Z;tt++)K.setFrame(tt,n.readFloat(),n.readFloat()*$,n.readFloat()*$),tt<Z-1&&this.readCurve(n,tt,K);i.push(K),o=Math.max(o,K.frames[(Z-1)*_.ENTRIES])}}for(var et=0,nt=n.readInt(!0);et<nt;et++){var rt=n.readInt(!0),at=n.readInt(!0),it=new W(at);it.ikConstraintIndex=rt;for(var st=0;st<at;st++)it.setFrame(st,n.readFloat(),n.readFloat(),n.readFloat()*s,n.readByte(),n.readBoolean(),n.readBoolean()),st<at-1&&this.readCurve(n,st,it);i.push(it),o=Math.max(o,it.frames[(at-1)*W.ENTRIES])}for(var ot=0,lt=n.readInt(!0);ot<lt;ot++){var ht=n.readInt(!0),ut=n.readInt(!0),ct=new U(ut);ct.transformConstraintIndex=ht;for(var dt=0;dt<ut;dt++)ct.setFrame(dt,n.readFloat(),n.readFloat(),n.readFloat(),n.readFloat(),n.readFloat()),dt<ut-1&&this.readCurve(n,dt,ct);i.push(ct),o=Math.max(o,ct.frames[(ut-1)*U.ENTRIES])}for(var ft=0,pt=n.readInt(!0);ft<pt;ft++)for(var vt=n.readInt(!0),mt=a.pathConstraints[vt],gt=0,wt=n.readInt(!0);gt<wt;gt++){var xt=n.readByte(),yt=n.readInt(!0);switch(xt){case e.PATH_POSITION:case e.PATH_SPACING:var Et=void 0,bt=1;xt==e.PATH_SPACING?(Et=new H(yt),mt.spacingMode!=t.SpacingMode.Length&&mt.spacingMode!=t.SpacingMode.Fixed||(bt=s)):(Et=new q(yt),mt.positionMode==t.PositionMode.Fixed&&(bt=s)),Et.pathConstraintIndex=vt;for(var Mt=0;Mt<yt;Mt++)Et.setFrame(Mt,n.readFloat(),n.readFloat()*bt),Mt<yt-1&&this.readCurve(n,Mt,Et);i.push(Et),o=Math.max(o,Et.frames[(yt-1)*q.ENTRIES]);break;case e.PATH_MIX:var Tt=new j(yt);Tt.pathConstraintIndex=vt;for(var St=0;St<yt;St++)Tt.setFrame(St,n.readFloat(),n.readFloat(),n.readFloat()),St<yt-1&&this.readCurve(n,St,Tt);i.push(Tt),o=Math.max(o,Tt.frames[(yt-1)*j.ENTRIES])}}for(var It=0,Rt=n.readInt(!0);It<Rt;It++)for(var Ct=a.skins[n.readInt(!0)],Pt=0,Vt=n.readInt(!0);Pt<Vt;Pt++)for(var _t=n.readInt(!0),kt=0,Ft=n.readInt(!0);kt<Ft;kt++){var Bt=Ct.getAttachment(_t,n.readStringRef()),Nt=null!=Bt.bones,Ot=Bt.vertices,Dt=Nt?Ot.length/3*2:Ot.length,Lt=n.readInt(!0),Xt=new L(Lt);Xt.slotIndex=_t,Xt.attachment=Bt;for(var Yt=0;Yt<Lt;Yt++){var Wt=n.readFloat(),Ut=void 0,qt=n.readInt(!0);if(0==qt)Ut=Nt?g.newFloatArray(Dt):Ot;else{Ut=g.newFloatArray(Dt);var Ht=n.readInt(!0);if(qt+=Ht,1==s)for(var jt=Ht;jt<qt;jt++)Ut[jt]=n.readFloat();else for(var Gt=Ht;Gt<qt;Gt++)Ut[Gt]=n.readFloat()*s;if(!Nt)for(var zt=0,Zt=Ut.length;zt<Zt;zt++)Ut[zt]+=Ot[zt]}Xt.setFrame(Yt,Wt,Ut),Yt<Lt-1&&this.readCurve(n,Yt,Xt)}i.push(Xt),o=Math.max(o,Xt.frames[Lt-1])}var Qt=n.readInt(!0);if(Qt>0){for(var Jt=new Y(Qt),Kt=a.slots.length,$t=0;$t<Qt;$t++){for(var te=n.readFloat(),ee=n.readInt(!0),ne=g.newArray(Kt,0),re=Kt-1;re>=0;re--)ne[re]=-1;for(var ae=g.newArray(Kt-ee,0),ie=0,se=0,oe=0;oe<ee;oe++){for(var le=n.readInt(!0);ie!=le;)ae[se++]=ie++;ne[ie+n.readInt(!0)]=ie++}for(;ie<Kt;)ae[se++]=ie++;for(var he=Kt-1;he>=0;he--)-1==ne[he]&&(ne[he]=ae[--se]);Jt.setFrame($t,te,ne)}i.push(Jt),o=Math.max(o,Jt.frames[Qt-1])}var ue=n.readInt(!0);if(ue>0){for(var ce=new X(ue),de=0;de<ue;de++){var fe=n.readFloat(),pe=a.events[n.readInt(!0)],ve=new At(fe,pe);ve.intValue=n.readInt(!1),ve.floatValue=n.readFloat(),ve.stringValue=n.readBoolean()?n.readString():pe.stringValue,null!=ve.data.audioPath&&(ve.volume=n.readFloat(),ve.balance=n.readFloat()),ce.setFrame(de,ve)}i.push(ce),o=Math.max(o,ce.frames[ue-1])}return new C(r,i,o)},n.readCurve=function(t,n,r){switch(t.readByte()){case e.CURVE_STEPPED:r.setStepped(n);break;case e.CURVE_BEZIER:this.setCurve(r,n,t.readFloat(),t.readFloat(),t.readFloat(),t.readFloat())}},n.setCurve=function(t,e,n,r,a,i){t.setCurve(e,n,r,a,i)},e}();qt.AttachmentTypeValues=[0,1,2,3,4,5,6],qt.TransformModeValues=[t.TransformMode.Normal,t.TransformMode.OnlyTranslation,t.TransformMode.NoRotationOrReflection,t.TransformMode.NoScale,t.TransformMode.NoScaleOrReflection],qt.PositionModeValues=[t.PositionMode.Fixed,t.PositionMode.Percent],qt.SpacingModeValues=[t.SpacingMode.Length,t.SpacingMode.Fixed,t.SpacingMode.Percent],qt.RotateModeValues=[t.RotateMode.Tangent,t.RotateMode.Chain,t.RotateMode.ChainScale],qt.BlendModeValues=[t.BlendMode.Normal,t.BlendMode.Additive,t.BlendMode.Multiply,t.BlendMode.Screen],qt.BONE_ROTATE=0,qt.BONE_TRANSLATE=1,qt.BONE_SCALE=2,qt.BONE_SHEAR=3,qt.SLOT_ATTACHMENT=0,qt.SLOT_COLOR=1,qt.SLOT_TWO_COLOR=2,qt.PATH_POSITION=0,qt.PATH_SPACING=1,qt.PATH_MIX=2,qt.CURVE_LINEAR=0,qt.CURVE_STEPPED=1,qt.CURVE_BEZIER=2;var Ht=function(){function t(t,e,n,r){void 0===e&&(e=new Array),void 0===n&&(n=0),void 0===r&&(r=new DataView(t.buffer)),this.strings=e,this.index=n,this.buffer=r}var e=t.prototype;return e.readByte=function(){return this.buffer.getInt8(this.index++)},e.readShort=function(){var t=this.buffer.getInt16(this.index);return this.index+=2,t},e.readInt32=function(){var t=this.buffer.getInt32(this.index);return this.index+=4,t},e.readInt=function(t){var e=this.readByte(),n=127&e;return 128&e&&(n|=(127&(e=this.readByte()))<<7,128&e&&(n|=(127&(e=this.readByte()))<<14,128&e&&(n|=(127&(e=this.readByte()))<<21,128&e&&(n|=(127&(e=this.readByte()))<<28)))),t?n:n>>>1^-(1&n)},e.readStringRef=function(){var t=this.readInt(!0);return 0==t?null:this.strings[t-1]},e.readString=function(){var t=this.readInt(!0);switch(t){case 0:return null;case 1:return""}t--;for(var e="",n=0;n<t;){var r=this.readByte();switch(r>>4){case 12:case 13:e+=String.fromCharCode((31&r)<<6|63&this.readByte()),n+=2;break;case 14:e+=String.fromCharCode((15&r)<<12|(63&this.readByte())<<6|63&this.readByte()),n+=3;break;default:e+=String.fromCharCode(r),n++}}return e},e.readFloat=function(){var t=this.buffer.getFloat32(this.index);return this.index+=4,t},e.readBoolean=function(){return 0!=this.readByte()},t}(),jt=function(t,e,n,r,a){this.mesh=t,this.skin=e,this.slotIndex=n,this.parent=r,this.inheritDeform=a},Gt=function(t,e){void 0===t&&(t=null),void 0===e&&(e=null),this.bones=t,this.vertices=e},zt=function(){function t(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.boundingBoxes=new Array,this.polygons=new Array,this.polygonPool=new x((function(){return g.newFloatArray(16)}))}var e=t.prototype;return e.update=function(t,e){if(null==t)throw new Error("skeleton cannot be null.");var n=this.boundingBoxes,r=this.polygons,a=this.polygonPool,i=t.slots,s=i.length;n.length=0,a.freeAll(r),r.length=0;for(var o=0;o<s;o++){var l=i[o];if(l.bone.active){var h=l.getAttachment();if(u(h,pt)){var c=h;n.push(c);var d=a.obtain();d.length!=c.worldVerticesLength&&(d=g.newFloatArray(c.worldVerticesLength)),r.push(d),c.computeWorldVertices(l,0,c.worldVerticesLength,d,0,2)}}}e?this.aabbCompute():(this.minX=Number.POSITIVE_INFINITY,this.minY=Number.POSITIVE_INFINITY,this.maxX=Number.NEGATIVE_INFINITY,this.maxY=Number.NEGATIVE_INFINITY)},e.aabbCompute=function(){for(var t=Number.POSITIVE_INFINITY,e=Number.POSITIVE_INFINITY,n=Number.NEGATIVE_INFINITY,r=Number.NEGATIVE_INFINITY,a=this.polygons,i=0,s=a.length;i<s;i++)for(var o=a[i],l=o,h=0,u=o.length;h<u;h+=2){var c=l[h],d=l[h+1];t=Math.min(t,c),e=Math.min(e,d),n=Math.max(n,c),r=Math.max(r,d)}this.minX=t,this.minY=e,this.maxX=n,this.maxY=r},e.aabbContainsPoint=function(t,e){return t>=this.minX&&t<=this.maxX&&e>=this.minY&&e<=this.maxY},e.aabbIntersectsSegment=function(t,e,n,r){var a=this.minX,i=this.minY,s=this.maxX,o=this.maxY;if(t<=a&&n<=a||e<=i&&r<=i||t>=s&&n>=s||e>=o&&r>=o)return!1;var l=(r-e)/(n-t),h=l*(a-t)+e;if(h>i&&h<o)return!0;if((h=l*(s-t)+e)>i&&h<o)return!0;var u=(i-e)/l+t;return u>a&&u<s||(u=(o-e)/l+t)>a&&u<s},e.aabbIntersectsSkeleton=function(t){return this.minX<t.maxX&&this.maxX>t.minX&&this.minY<t.maxY&&this.maxY>t.minY},e.containsPoint=function(t,e){for(var n=this.polygons,r=0,a=n.length;r<a;r++)if(this.containsPointPolygon(n[r],t,e))return this.boundingBoxes[r];return null},e.containsPointPolygon=function(t,e,n){for(var r=t,a=t.length,i=a-2,s=!1,o=0;o<a;o+=2){var l=r[o+1],h=r[i+1];if(l<n&&h>=n||h<n&&l>=n){var u=r[o];u+(n-l)/(h-l)*(r[i]-u)<e&&(s=!s)}i=o}return s},e.intersectsSegment=function(t,e,n,r){for(var a=this.polygons,i=0,s=a.length;i<s;i++)if(this.intersectsSegmentPolygon(a[i],t,e,n,r))return this.boundingBoxes[i];return null},e.intersectsSegmentPolygon=function(t,e,n,r,a){for(var i=t,s=t.length,o=e-r,l=n-a,h=e*a-n*r,u=i[s-2],c=i[s-1],d=0;d<s;d+=2){var f=i[d],p=i[d+1],v=u*p-c*f,m=u-f,g=c-p,w=o*g-l*m,x=(h*m-o*v)/w;if((x>=u&&x<=f||x>=f&&x<=u)&&(x>=e&&x<=r||x>=r&&x<=e)){var y=(h*g-l*v)/w;if((y>=c&&y<=p||y>=p&&y<=c)&&(y>=n&&y<=a||y>=a&&y<=n))return!0}u=f,c=p}return!1},e.getPolygon=function(t){if(null==t)throw new Error("boundingBox cannot be null.");var e=this.boundingBoxes.indexOf(t);return-1==e?null:this.polygons[e]},e.getWidth=function(){return this.maxX-this.minX},e.getHeight=function(){return this.maxY-this.minY},t}(),Zt=function(){function t(){this.convexPolygons=new Array,this.convexPolygonsIndices=new Array,this.indicesArray=new Array,this.isConcaveArray=new Array,this.triangles=new Array,this.polygonPool=new x((function(){return new Array})),this.polygonIndicesPool=new x((function(){return new Array}))}var e=t.prototype;return e.triangulate=function(e){var n=e,r=e.length>>1,a=this.indicesArray;a.length=0;for(var i=0;i<r;i++)a[i]=i;var s=this.isConcaveArray;s.length=0;for(var o=0,l=r;o<l;++o)s[o]=t.isConcave(o,r,n,a);var h=this.triangles;for(h.length=0;r>3;){for(var u=r-1,c=0,d=1;;){t:if(!s[c]){for(var f=a[u]<<1,p=a[c]<<1,v=a[d]<<1,m=n[f],g=n[f+1],w=n[p],x=n[p+1],y=n[v],E=n[v+1],b=(d+1)%r;b!=u;b=(b+1)%r)if(s[b]){var M=a[b]<<1,T=n[M],S=n[M+1];if(t.positiveArea(y,E,m,g,T,S)&&t.positiveArea(m,g,w,x,T,S)&&t.positiveArea(w,x,y,E,T,S))break t}break}if(0==d){do{if(!s[c])break;c--}while(c>0);break}u=c,c=d,d=(d+1)%r}h.push(a[(r+c-1)%r]),h.push(a[c]),h.push(a[(c+1)%r]),a.splice(c,1),s.splice(c,1);var A=(--r+c-1)%r,I=c==r?0:c;s[A]=t.isConcave(A,r,n,a),s[I]=t.isConcave(I,r,n,a)}return 3==r&&(h.push(a[2]),h.push(a[0]),h.push(a[1])),h},e.decompose=function(e,n){var r=e,a=this.convexPolygons;this.polygonPool.freeAll(a),a.length=0;var i=this.convexPolygonsIndices;this.polygonIndicesPool.freeAll(i),i.length=0;var s=this.polygonIndicesPool.obtain();s.length=0;var o=this.polygonPool.obtain();o.length=0;for(var l=-1,h=0,u=0,c=n.length;u<c;u+=3){var d=n[u]<<1,f=n[u+1]<<1,p=n[u+2]<<1,v=r[d],m=r[d+1],g=r[f],w=r[f+1],x=r[p],y=r[p+1],E=!1;if(l==d){var b=o.length-4,M=t.winding(o[b],o[b+1],o[b+2],o[b+3],x,y),T=t.winding(x,y,o[0],o[1],o[2],o[3]);M==h&&T==h&&(o.push(x),o.push(y),s.push(p),E=!0)}E||(o.length>0?(a.push(o),i.push(s)):(this.polygonPool.free(o),this.polygonIndicesPool.free(s)),(o=this.polygonPool.obtain()).length=0,o.push(v),o.push(m),o.push(g),o.push(w),o.push(x),o.push(y),(s=this.polygonIndicesPool.obtain()).length=0,s.push(d),s.push(f),s.push(p),h=t.winding(v,m,g,w,x,y),l=d)}o.length>0&&(a.push(o),i.push(s));for(var S=0,A=a.length;S<A;S++)if(0!=(s=i[S]).length)for(var I=s[0],R=s[s.length-1],C=(o=a[S]).length-4,P=o[C],V=o[C+1],_=o[C+2],k=o[C+3],F=o[0],B=o[1],N=o[2],O=o[3],D=t.winding(P,V,_,k,F,B),L=0;L<A;L++)if(L!=S){var X=i[L];if(3==X.length){var Y=X[0],W=X[1],U=X[2],q=a[L],H=q[q.length-2],j=q[q.length-1];if(Y==I&&W==R){var G=t.winding(P,V,_,k,H,j),z=t.winding(H,j,F,B,N,O);G==D&&z==D&&(q.length=0,X.length=0,o.push(H),o.push(j),s.push(U),P=_,V=k,_=H,k=j,L=0)}}}for(var Z=a.length-1;Z>=0;Z--)0==(o=a[Z]).length&&(a.splice(Z,1),this.polygonPool.free(o),s=i[Z],i.splice(Z,1),this.polygonIndicesPool.free(s));return a},t.isConcave=function(t,e,n,r){var a=r[(e+t-1)%e]<<1,i=r[t]<<1,s=r[(t+1)%e]<<1;return!this.positiveArea(n[a],n[a+1],n[i],n[i+1],n[s],n[s+1])},t.positiveArea=function(t,e,n,r,a,i){return t*(i-r)+n*(e-i)+a*(r-e)>=0},t.winding=function(t,e,n,r,a,i){var s=n-t,o=r-e;return a*o-i*s+s*e-t*o>=0?1:-1},t}(),Qt=function(){function t(){this.triangulator=new Zt,this.clippingPolygon=new Array,this.clipOutput=new Array,this.clippedVertices=new Array,this.clippedTriangles=new Array,this.scratch=new Array}var e=t.prototype;return e.clipStart=function(e,n){if(null!=this.clipAttachment)return 0;this.clipAttachment=n;var r=n.worldVerticesLength,a=g.setArraySize(this.clippingPolygon,r);n.computeWorldVertices(e,0,r,a,0,2);var i=this.clippingPolygon;t.makeClockwise(i);for(var s=this.clippingPolygons=this.triangulator.decompose(i,this.triangulator.triangulate(i)),o=0,l=s.length;o<l;o++){var h=s[o];t.makeClockwise(h),h.push(h[0]),h.push(h[1])}return s.length},e.clipEndWithSlot=function(t){null!=this.clipAttachment&&this.clipAttachment.endSlot==t.data&&this.clipEnd()},e.clipEnd=function(){null!=this.clipAttachment&&(this.clipAttachment=null,this.clippingPolygons=null,this.clippedVertices.length=0,this.clippedTriangles.length=0,this.clippingPolygon.length=0)},e.isClipping=function(){return null!=this.clipAttachment},e.clipTriangles=function(t,e,n,r,a,i,s,o){var l=this.clipOutput,h=this.clippedVertices,u=this.clippedTriangles,c=this.clippingPolygons,d=this.clippingPolygons.length,f=o?12:8,p=0;h.length=0,u.length=0;t:for(var v=0;v<r;v+=3)for(var m=n[v]<<1,w=t[m],x=t[m+1],y=a[m],E=a[m+1],b=t[m=n[v+1]<<1],M=t[m+1],T=a[m],S=a[m+1],A=t[m=n[v+2]<<1],I=t[m+1],R=a[m],C=a[m+1],P=0;P<d;P++){var V=h.length;if(!this.clip(w,x,b,M,A,I,c[P],l)){var _=g.setArraySize(h,V+3*f);_[V]=w,_[V+1]=x,_[V+2]=i.r,_[V+3]=i.g,_[V+4]=i.b,_[V+5]=i.a,o?(_[V+6]=y,_[V+7]=E,_[V+8]=s.r,_[V+9]=s.g,_[V+10]=s.b,_[V+11]=s.a,_[V+12]=b,_[V+13]=M,_[V+14]=i.r,_[V+15]=i.g,_[V+16]=i.b,_[V+17]=i.a,_[V+18]=T,_[V+19]=S,_[V+20]=s.r,_[V+21]=s.g,_[V+22]=s.b,_[V+23]=s.a,_[V+24]=A,_[V+25]=I,_[V+26]=i.r,_[V+27]=i.g,_[V+28]=i.b,_[V+29]=i.a,_[V+30]=R,_[V+31]=C,_[V+32]=s.r,_[V+33]=s.g,_[V+34]=s.b,_[V+35]=s.a):(_[V+6]=y,_[V+7]=E,_[V+8]=b,_[V+9]=M,_[V+10]=i.r,_[V+11]=i.g,_[V+12]=i.b,_[V+13]=i.a,_[V+14]=T,_[V+15]=S,_[V+16]=A,_[V+17]=I,_[V+18]=i.r,_[V+19]=i.g,_[V+20]=i.b,_[V+21]=i.a,_[V+22]=R,_[V+23]=C),V=u.length;var k=g.setArraySize(u,V+3);k[V]=p,k[V+1]=p+1,k[V+2]=p+2,p+=3;continue t}var F=l.length;if(0!=F){for(var B=M-I,N=A-b,O=w-A,D=I-x,L=1/(B*O+N*(x-I)),X=F>>1,Y=this.clipOutput,W=g.setArraySize(h,V+X*f),U=0;U<F;U+=2){var q=Y[U],H=Y[U+1];W[V]=q,W[V+1]=H,W[V+2]=i.r,W[V+3]=i.g,W[V+4]=i.b,W[V+5]=i.a;var j=q-A,G=H-I,z=(B*j+N*G)*L,Z=(D*j+O*G)*L,Q=1-z-Z;W[V+6]=y*z+T*Z+R*Q,W[V+7]=E*z+S*Z+C*Q,o&&(W[V+8]=s.r,W[V+9]=s.g,W[V+10]=s.b,W[V+11]=s.a),V+=f}V=u.length;var J=g.setArraySize(u,V+3*(X-2));X--;for(var K=1;K<X;K++)J[V]=p,J[V+1]=p+K,J[V+2]=p+K+1,V+=3;p+=X+1}}},e.clip=function(t,e,n,r,a,i,s,o){var l=o,h=!1,u=null;s.length%4>=2?(u=o,o=this.scratch):u=this.scratch,u.length=0,u.push(t),u.push(e),u.push(n),u.push(r),u.push(a),u.push(i),u.push(t),u.push(e),o.length=0;for(var c=s,d=s.length-4,f=0;;f+=2){for(var p=c[f],v=c[f+1],m=c[f+2],g=c[f+3],w=p-m,x=v-g,y=u,E=u.length-2,b=o.length,M=0;M<E;M+=2){var T=y[M],S=y[M+1],A=y[M+2],I=y[M+3],R=w*(I-g)-x*(A-m)>0;if(w*(S-g)-x*(T-m)>0){if(R){o.push(A),o.push(I);continue}var C=I-S,P=A-T,V=C*(m-p)-P*(g-v);if(Math.abs(V)>1e-6){var _=(P*(v-S)-C*(p-T))/V;o.push(p+(m-p)*_),o.push(v+(g-v)*_)}else o.push(p),o.push(v)}else if(R){var k=I-S,F=A-T,B=k*(m-p)-F*(g-v);if(Math.abs(B)>1e-6){var N=(F*(v-S)-k*(p-T))/B;o.push(p+(m-p)*N),o.push(v+(g-v)*N)}else o.push(p),o.push(v);o.push(A),o.push(I)}h=!0}if(b==o.length)return l.length=0,!0;if(o.push(o[0]),o.push(o[1]),f==d)break;var O=o;(o=u).length=0,u=O}if(l!=o){l.length=0;for(var D=0,L=o.length-2;D<L;D++)l[D]=o[D]}else l.length=l.length-2;return h},t.makeClockwise=function(t){for(var e=t,n=t.length,r=e[n-2]*e[1]-e[0]*e[n-1],a=0,i=0,s=0,o=0,l=n-3;o<l;o+=2)a=e[o],i=e[o+1],s=e[o+2],r+=a*e[o+3]-s*i;if(!(r<0))for(var h=0,u=n-2,c=n>>1;h<c;h+=2){var d=e[h],f=e[h+1],p=u-h;e[h]=e[p],e[h+1]=e[p+1],e[p]=d,e[p+1]=f}},t}(),Jt=function(){function e(t){this.scale=1,this.linkedMeshes=new Array,this.attachmentLoader=t}var n=e.prototype;return n.readSkeletonData=function(n){var r=this.scale,a=new Lt,i="string"==typeof n?JSON.parse(n):n,s=i.skeleton;if(null!=s){if(a.hash=s.hash,a.version=s.spine,"3.8.75"==a.version)throw new Error("Unsupported skeleton data, please export with a newer version of Spine.");a.x=s.x,a.y=s.y,a.width=s.width,a.height=s.height,a.fps=s.fps,a.imagesPath=s.images}if(i.bones)for(var o=0;o<i.bones.length;o++){var l=i.bones[o],h=null,u=this.getValue(l,"parent",null);if(null!=u&&null==(h=a.findBone(u)))throw new Error("Parent bone not found: "+u);var c=new yt(a.bones.length,l.name,h);c.length=this.getValue(l,"length",0)*r,c.x=this.getValue(l,"x",0)*r,c.y=this.getValue(l,"y",0)*r,c.rotation=this.getValue(l,"rotation",0),c.scaleX=this.getValue(l,"scaleX",1),c.scaleY=this.getValue(l,"scaleY",1),c.shearX=this.getValue(l,"shearX",0),c.shearY=this.getValue(l,"shearY",0),c.transformMode=e.transformModeFromString(this.getValue(l,"transform","normal")),c.skinRequired=this.getValue(l,"skin",!1),a.bones.push(c)}if(i.slots)for(var f=0;f<i.slots.length;f++){var p=i.slots[f],v=p.name,m=p.bone,g=a.findBone(m);if(null==g)throw new Error("Slot bone not found: "+m);var w=new Xt(a.slots.length,v,g),x=this.getValue(p,"color",null);null!=x&&w.color.setFromString(x);var y=this.getValue(p,"dark",null);null!=y&&(w.darkColor=new d(1,1,1,1),w.darkColor.setFromString(y)),w.attachmentName=this.getValue(p,"attachment",null),w.blendMode=e.blendModeFromString(this.getValue(p,"blend","normal")),a.slots.push(w)}if(i.ik)for(var E=0;E<i.ik.length;E++){var b=i.ik[E],M=new Ct(b.name);M.order=this.getValue(b,"order",0),M.skinRequired=this.getValue(b,"skin",!1);for(var T=0;T<b.bones.length;T++){var S=b.bones[T],A=a.findBone(S);if(null==A)throw new Error("IK bone not found: "+S);M.bones.push(A)}var I=b.target;if(M.target=a.findBone(I),null==M.target)throw new Error("IK target bone not found: "+I);M.mix=this.getValue(b,"mix",1),M.softness=this.getValue(b,"softness",0)*r,M.bendDirection=this.getValue(b,"bendPositive",!0)?1:-1,M.compress=this.getValue(b,"compress",!1),M.stretch=this.getValue(b,"stretch",!1),M.uniform=this.getValue(b,"uniform",!1),a.ikConstraints.push(M)}if(i.transform)for(var R=0;R<i.transform.length;R++){var C=i.transform[R],P=new Yt(C.name);P.order=this.getValue(C,"order",0),P.skinRequired=this.getValue(C,"skin",!1);for(var V=0;V<C.bones.length;V++){var _=C.bones[V],k=a.findBone(_);if(null==k)throw new Error("Transform constraint bone not found: "+_);P.bones.push(k)}var F=C.target;if(P.target=a.findBone(F),null==P.target)throw new Error("Transform constraint target bone not found: "+F);P.local=this.getValue(C,"local",!1),P.relative=this.getValue(C,"relative",!1),P.offsetRotation=this.getValue(C,"rotation",0),P.offsetX=this.getValue(C,"x",0)*r,P.offsetY=this.getValue(C,"y",0)*r,P.offsetScaleX=this.getValue(C,"scaleX",0),P.offsetScaleY=this.getValue(C,"scaleY",0),P.offsetShearY=this.getValue(C,"shearY",0),P.rotateMix=this.getValue(C,"rotateMix",1),P.translateMix=this.getValue(C,"translateMix",1),P.scaleMix=this.getValue(C,"scaleMix",1),P.shearMix=this.getValue(C,"shearMix",1),a.transformConstraints.push(P)}if(i.path)for(var B=0;B<i.path.length;B++){var N=i.path[B],O=new Pt(N.name);O.order=this.getValue(N,"order",0),O.skinRequired=this.getValue(N,"skin",!1);for(var D=0;D<N.bones.length;D++){var L=N.bones[D],X=a.findBone(L);if(null==X)throw new Error("Transform constraint bone not found: "+L);O.bones.push(X)}var Y=N.target;if(O.target=a.findSlot(Y),null==O.target)throw new Error("Path target slot not found: "+Y);O.positionMode=e.positionModeFromString(this.getValue(N,"positionMode","percent")),O.spacingMode=e.spacingModeFromString(this.getValue(N,"spacingMode","length")),O.rotateMode=e.rotateModeFromString(this.getValue(N,"rotateMode","tangent")),O.offsetRotation=this.getValue(N,"rotation",0),O.position=this.getValue(N,"position",0),O.positionMode==t.PositionMode.Fixed&&(O.position*=r),O.spacing=this.getValue(N,"spacing",0),O.spacingMode!=t.SpacingMode.Length&&O.spacingMode!=t.SpacingMode.Fixed||(O.spacing*=r),O.rotateMix=this.getValue(N,"rotateMix",1),O.translateMix=this.getValue(N,"translateMix",1),a.pathConstraints.push(O)}if(i.skins)for(var W=0;W<i.skins.length;W++){var U=i.skins[W],q=new Ut(U.name);if(U.bones)for(var H=0;H<U.bones.length;H++){var j=a.findBone(U.bones[H]);if(null==j)throw new Error("Skin bone not found: "+U.bones[W]);q.bones.push(j)}if(U.ik)for(var G=0;G<U.ik.length;G++){var z=a.findIkConstraint(U.ik[G]);if(null==z)throw new Error("Skin IK constraint not found: "+U.ik[W]);q.constraints.push(z)}if(U.transform)for(var Z=0;Z<U.transform.length;Z++){var Q=a.findTransformConstraint(U.transform[Z]);if(null==Q)throw new Error("Skin transform constraint not found: "+U.transform[W]);q.constraints.push(Q)}if(U.path)for(var J=0;J<U.path.length;J++){var K=a.findPathConstraint(U.path[J]);if(null==K)throw new Error("Skin path constraint not found: "+U.path[W]);q.constraints.push(K)}for(var $ in U.attachments){var tt=a.findSlot($);if(null==tt)throw new Error("Slot not found: "+$);var et=U.attachments[$];for(var nt in et){var rt=this.readAttachment(et[nt],q,tt.index,nt,a);null!=rt&&q.setAttachment(tt.index,nt,rt)}}a.skins.push(q),"default"==q.name&&(a.defaultSkin=q)}for(var at=0,it=this.linkedMeshes.length;at<it;at++){var st=this.linkedMeshes[at],ot=null==st.skin?a.defaultSkin:a.findSkin(st.skin);if(null==ot)throw new Error("Skin not found: "+st.skin);var lt=ot.getAttachment(st.slotIndex,st.parent);if(null==lt)throw new Error("Parent mesh not found: "+st.parent);st.mesh.deformAttachment=st.inheritDeform?lt:st.mesh,st.mesh.setParentMesh(lt),st.mesh.updateUVs()}if(this.linkedMeshes.length=0,i.events)for(var ht in i.events){var ut=i.events[ht],ct=new It(ht);ct.intValue=this.getValue(ut,"int",0),ct.floatValue=this.getValue(ut,"float",0),ct.stringValue=this.getValue(ut,"string",""),ct.audioPath=this.getValue(ut,"audio",null),null!=ct.audioPath&&(ct.volume=this.getValue(ut,"volume",1),ct.balance=this.getValue(ut,"balance",0)),a.events.push(ct)}if(i.animations)for(var dt in i.animations){var ft=i.animations[dt];this.readAnimation(ft,dt,a)}return a},n.readAttachment=function(t,e,n,r,a){var i=this.scale;switch(r=this.getValue(t,"name",r),this.getValue(t,"type","region")){case"region":var s=this.getValue(t,"path",r),o=this.attachmentLoader.newRegionAttachment(e,r,s);if(null==o)return null;o.path=s,o.x=this.getValue(t,"x",0)*i,o.y=this.getValue(t,"y",0)*i,o.scaleX=this.getValue(t,"scaleX",1),o.scaleY=this.getValue(t,"scaleY",1),o.rotation=this.getValue(t,"rotation",0),o.width=t.width*i,o.height=t.height*i;var l=this.getValue(t,"color",null);return null!=l&&o.color.setFromString(l),o.updateOffset(),o;case"boundingbox":var h=this.attachmentLoader.newBoundingBoxAttachment(e,r);if(null==h)return null;this.readVertices(t,h,t.vertexCount<<1);var u=this.getValue(t,"color",null);return null!=u&&h.color.setFromString(u),h;case"mesh":case"linkedmesh":var c=this.getValue(t,"path",r),d=this.attachmentLoader.newMeshAttachment(e,r,c);if(null==d)return null;d.path=c;var f=this.getValue(t,"color",null);null!=f&&d.color.setFromString(f),d.width=this.getValue(t,"width",0)*i,d.height=this.getValue(t,"height",0)*i;var p=this.getValue(t,"parent",null);if(null!=p)return this.linkedMeshes.push(new Kt(d,this.getValue(t,"skin",null),n,p,this.getValue(t,"deform",!0))),d;var v=t.uvs;return this.readVertices(t,d,v.length),d.triangles=t.triangles,d.regionUVs=v,d.updateUVs(),d.edges=this.getValue(t,"edges",null),d.hullLength=2*this.getValue(t,"hull",0),d;case"path":var m=this.attachmentLoader.newPathAttachment(e,r);if(null==m)return null;m.closed=this.getValue(t,"closed",!1),m.constantSpeed=this.getValue(t,"constantSpeed",!0);var w=t.vertexCount;this.readVertices(t,m,w<<1);for(var x=g.newArray(w/3,0),y=0;y<t.lengths.length;y++)x[y]=t.lengths[y]*i;m.lengths=x;var E=this.getValue(t,"color",null);return null!=E&&m.color.setFromString(E),m;case"point":var b=this.attachmentLoader.newPointAttachment(e,r);if(null==b)return null;b.x=this.getValue(t,"x",0)*i,b.y=this.getValue(t,"y",0)*i,b.rotation=this.getValue(t,"rotation",0);var M=this.getValue(t,"color",null);return null!=M&&b.color.setFromString(M),b;case"clipping":var T=this.attachmentLoader.newClippingAttachment(e,r);if(null==T)return null;var S=this.getValue(t,"end",null);if(null!=S){var A=a.findSlot(S);if(null==A)throw new Error("Clipping end slot not found: "+S);T.endSlot=A}var I=t.vertexCount;this.readVertices(t,T,I<<1);var R=this.getValue(t,"color",null);return null!=R&&T.color.setFromString(R),T}return null},n.readVertices=function(t,e,n){var r=this.scale;e.worldVerticesLength=n;var a=t.vertices;if(n!=a.length){for(var i=new Array,s=new Array,o=0,l=a.length;o<l;){var h=a[o++];s.push(h);for(var u=o+4*h;o<u;o+=4)s.push(a[o]),i.push(a[o+1]*r),i.push(a[o+2]*r),i.push(a[o+3])}e.bones=s,e.vertices=g.toFloatArray(i)}else{var c=g.toFloatArray(a);if(1!=r)for(var d=0,f=a.length;d<f;d++)c[d]*=r;e.vertices=c}},n.readAnimation=function(e,n,r){var a=this.scale,i=new Array,s=0;if(e.slots)for(var o in e.slots){var l=e.slots[o],h=r.findSlotIndex(o);if(-1==h)throw new Error("Slot not found: "+o);for(var u in l){var c=l[u];if("attachment"==u){var f=new O(c.length);f.slotIndex=h;for(var p=0,v=0;v<c.length;v++){var m=c[v];f.setFrame(p++,this.getValue(m,"time",0),m.name)}i.push(f),s=Math.max(s,f.frames[f.getFrameCount()-1])}else if("color"==u){var w=new B(c.length);w.slotIndex=h;for(var x=0,y=0;y<c.length;y++){var E=c[y],b=new d;b.setFromString(E.color),w.setFrame(x,this.getValue(E,"time",0),b.r,b.g,b.b,b.a),this.readCurve(E,w,x),x++}i.push(w),s=Math.max(s,w.frames[(w.getFrameCount()-1)*B.ENTRIES])}else{if("twoColor"!=u)throw new Error("Invalid timeline type for a slot: "+u+" ("+o+")");var M=new N(c.length);M.slotIndex=h;for(var T=0,S=0;S<c.length;S++){var A=c[S],I=new d,R=new d;I.setFromString(A.light),R.setFromString(A.dark),M.setFrame(T,this.getValue(A,"time",0),I.r,I.g,I.b,I.a,R.r,R.g,R.b),this.readCurve(A,M,T),T++}i.push(M),s=Math.max(s,M.frames[(M.getFrameCount()-1)*N.ENTRIES])}}}if(e.bones)for(var P in e.bones){var D=e.bones[P],G=r.findBoneIndex(P);if(-1==G)throw new Error("Bone not found: "+P);for(var z in D){var Z=D[z];if("rotate"===z){var Q=new V(Z.length);Q.boneIndex=G;for(var J=0,K=0;K<Z.length;K++){var $=Z[K];Q.setFrame(J,this.getValue($,"time",0),this.getValue($,"angle",0)),this.readCurve($,Q,J),J++}i.push(Q),s=Math.max(s,Q.frames[(Q.getFrameCount()-1)*V.ENTRIES])}else{if("translate"!==z&&"scale"!==z&&"shear"!==z)throw new Error("Invalid timeline type for a bone: "+z+" ("+P+")");var tt=null,et=1,nt=0;"scale"===z?(tt=new k(Z.length),nt=1):"shear"===z?tt=new F(Z.length):(tt=new _(Z.length),et=a),tt.boneIndex=G;for(var rt=0,at=0;at<Z.length;at++){var it=Z[at],st=this.getValue(it,"x",nt),ot=this.getValue(it,"y",nt);tt.setFrame(rt,this.getValue(it,"time",0),st*et,ot*et),this.readCurve(it,tt,rt),rt++}i.push(tt),s=Math.max(s,tt.frames[(tt.getFrameCount()-1)*_.ENTRIES])}}}if(e.ik)for(var lt in e.ik){var ht=e.ik[lt],ut=r.findIkConstraint(lt),ct=new W(ht.length);ct.ikConstraintIndex=r.ikConstraints.indexOf(ut);for(var dt=0,ft=0;ft<ht.length;ft++){var pt=ht[ft];ct.setFrame(dt,this.getValue(pt,"time",0),this.getValue(pt,"mix",1),this.getValue(pt,"softness",0)*a,this.getValue(pt,"bendPositive",!0)?1:-1,this.getValue(pt,"compress",!1),this.getValue(pt,"stretch",!1)),this.readCurve(pt,ct,dt),dt++}i.push(ct),s=Math.max(s,ct.frames[(ct.getFrameCount()-1)*W.ENTRIES])}if(e.transform)for(var vt in e.transform){var mt=e.transform[vt],gt=r.findTransformConstraint(vt),wt=new U(mt.length);wt.transformConstraintIndex=r.transformConstraints.indexOf(gt);for(var xt=0,yt=0;yt<mt.length;yt++){var Et=mt[yt];wt.setFrame(xt,this.getValue(Et,"time",0),this.getValue(Et,"rotateMix",1),this.getValue(Et,"translateMix",1),this.getValue(Et,"scaleMix",1),this.getValue(Et,"shearMix",1)),this.readCurve(Et,wt,xt),xt++}i.push(wt),s=Math.max(s,wt.frames[(wt.getFrameCount()-1)*U.ENTRIES])}if(e.path)for(var bt in e.path){var Mt=e.path[bt],Tt=r.findPathConstraintIndex(bt);if(-1==Tt)throw new Error("Path constraint not found: "+bt);var St=r.pathConstraints[Tt];for(var It in Mt){var Rt=Mt[It];if("position"===It||"spacing"===It){var Ct=null,Pt=1;"spacing"===It?(Ct=new H(Rt.length),St.spacingMode!=t.SpacingMode.Length&&St.spacingMode!=t.SpacingMode.Fixed||(Pt=a)):(Ct=new q(Rt.length),St.positionMode==t.PositionMode.Fixed&&(Pt=a)),Ct.pathConstraintIndex=Tt;for(var Vt=0,_t=0;_t<Rt.length;_t++){var kt=Rt[_t];Ct.setFrame(Vt,this.getValue(kt,"time",0),this.getValue(kt,It,0)*Pt),this.readCurve(kt,Ct,Vt),Vt++}i.push(Ct),s=Math.max(s,Ct.frames[(Ct.getFrameCount()-1)*q.ENTRIES])}else if("mix"===It){var Ft=new j(Rt.length);Ft.pathConstraintIndex=Tt;for(var Bt=0,Nt=0;Nt<Rt.length;Nt++){var Ot=Rt[Nt];Ft.setFrame(Bt,this.getValue(Ot,"time",0),this.getValue(Ot,"rotateMix",1),this.getValue(Ot,"translateMix",1)),this.readCurve(Ot,Ft,Bt),Bt++}i.push(Ft),s=Math.max(s,Ft.frames[(Ft.getFrameCount()-1)*j.ENTRIES])}}}if(e.deform)for(var Dt in e.deform){var Lt=e.deform[Dt],Xt=r.findSkin(Dt);if(null==Xt)throw new Error("Skin not found: "+Dt);for(var Yt in Lt){var Wt=Lt[Yt],Ut=r.findSlotIndex(Yt);if(-1==Ut)throw new Error("Slot not found: "+Wt.name);for(var qt in Wt){var Ht=Wt[qt],jt=Xt.getAttachment(Ut,qt);if(null==jt)throw new Error("Deform attachment not found: "+Ht.name);var Gt=null!=jt.bones,zt=jt.vertices,Zt=Gt?zt.length/3*2:zt.length,Qt=new L(Ht.length);Qt.slotIndex=Ut,Qt.attachment=jt;for(var Jt=0,Kt=0;Kt<Ht.length;Kt++){var $t=Ht[Kt],te=void 0,ee=this.getValue($t,"vertices",null);if(null==ee)te=Gt?g.newFloatArray(Zt):zt;else{te=g.newFloatArray(Zt);var ne=this.getValue($t,"offset",0);if(g.arrayCopy(ee,0,te,ne,ee.length),1!=a)for(var re=ne,ae=re+ee.length;re<ae;re++)te[re]*=a;if(!Gt)for(var ie=0;ie<Zt;ie++)te[ie]+=zt[ie]}Qt.setFrame(Jt,this.getValue($t,"time",0),te),this.readCurve($t,Qt,Jt),Jt++}i.push(Qt),s=Math.max(s,Qt.frames[Qt.getFrameCount()-1])}}}var se=e.drawOrder;if(null==se&&(se=e.draworder),null!=se){for(var oe=new Y(se.length),le=r.slots.length,he=0,ue=0;ue<se.length;ue++){var ce=se[ue],de=null,fe=this.getValue(ce,"offsets",null);if(null!=fe){de=g.newArray(le,-1);for(var pe=g.newArray(le-fe.length,0),ve=0,me=0,ge=0;ge<fe.length;ge++){var we=fe[ge],xe=r.findSlotIndex(we.slot);if(-1==xe)throw new Error("Slot not found: "+we.slot);for(;ve!=xe;)pe[me++]=ve++;de[ve+we.offset]=ve++}for(;ve<le;)pe[me++]=ve++;for(var ye=le-1;ye>=0;ye--)-1==de[ye]&&(de[ye]=pe[--me])}oe.setFrame(he++,this.getValue(ce,"time",0),de)}i.push(oe),s=Math.max(s,oe.frames[oe.getFrameCount()-1])}if(e.events){for(var Ee=new X(e.events.length),be=0,Me=0;Me<e.events.length;Me++){var Te=e.events[Me],Se=r.findEvent(Te.name);if(null==Se)throw new Error("Event not found: "+Te.name);var Ae=new At(g.toSinglePrecision(this.getValue(Te,"time",0)),Se);Ae.intValue=this.getValue(Te,"int",Se.intValue),Ae.floatValue=this.getValue(Te,"float",Se.floatValue),Ae.stringValue=this.getValue(Te,"string",Se.stringValue),null!=Ae.data.audioPath&&(Ae.volume=this.getValue(Te,"volume",1),Ae.balance=this.getValue(Te,"balance",0)),Ee.setFrame(be++,Ae)}i.push(Ee),s=Math.max(s,Ee.frames[Ee.getFrameCount()-1])}if(isNaN(s))throw new Error("Error while parsing animation, duration is NaN");r.animations.push(new C(n,i,s))},n.readCurve=function(t,e,n){if(t.hasOwnProperty("curve"))if("stepped"==t.curve)e.setStepped(n);else{var r=t.curve;e.setCurve(n,r,this.getValue(t,"c2",0),this.getValue(t,"c3",1),this.getValue(t,"c4",1))}},n.getValue=function(t,e,n){return void 0!==t[e]?t[e]:n},e.blendModeFromString=function(e){if("normal"==(e=e.toLowerCase()))return t.BlendMode.Normal;if("additive"==e)return t.BlendMode.Additive;if("multiply"==e)return t.BlendMode.Multiply;if("screen"==e)return t.BlendMode.Screen;throw new Error("Unknown blend mode: "+e)},e.positionModeFromString=function(e){if("fixed"==(e=e.toLowerCase()))return t.PositionMode.Fixed;if("percent"==e)return t.PositionMode.Percent;throw new Error("Unknown position mode: "+e)},e.spacingModeFromString=function(e){if("length"==(e=e.toLowerCase()))return t.SpacingMode.Length;if("fixed"==e)return t.SpacingMode.Fixed;if("percent"==e)return t.SpacingMode.Percent;throw new Error("Unknown position mode: "+e)},e.rotateModeFromString=function(e){if("tangent"==(e=e.toLowerCase()))return t.RotateMode.Tangent;if("chain"==e)return t.RotateMode.Chain;if("chainscale"==e)return t.RotateMode.ChainScale;throw new Error("Unknown rotate mode: "+e)},e.transformModeFromString=function(e){if("normal"==(e=e.toLowerCase()))return t.TransformMode.Normal;if("onlytranslation"==e)return t.TransformMode.OnlyTranslation;if("norotationorreflection"==e)return t.TransformMode.NoRotationOrReflection;if("noscale"==e)return t.TransformMode.NoScale;if("noscaleorreflection"==e)return t.TransformMode.NoScaleOrReflection;throw new Error("Unknown transform mode: "+e)},e}(),Kt=function(t,e,n,r,a){this.mesh=t,this.skin=e,this.slotIndex=n,this.parent=r,this.inheritDeform=a},$t=function(){function t(t,e){this.jitterX=0,this.jitterY=0,this.jitterX=t,this.jitterY=e}var e=t.prototype;return e.begin=function(t){},e.transform=function(t,e,n,r){t.x+=f.randomTriangular(-this.jitterX,this.jitterY),t.y+=f.randomTriangular(-this.jitterX,this.jitterY)},e.end=function(){},t}(),te=function(){function t(t){this.centerX=0,this.centerY=0,this.radius=0,this.angle=0,this.worldX=0,this.worldY=0,this.radius=t}var e=t.prototype;return e.begin=function(t){this.worldX=t.x+this.centerX,this.worldY=t.y+this.centerY},e.transform=function(e,n,r,a){var i=this.angle*f.degreesToRadians,s=e.x-this.worldX,o=e.y-this.worldY,l=Math.sqrt(s*s+o*o);if(l<this.radius){var h=t.interpolation.apply(0,i,(this.radius-l)/this.radius),u=Math.cos(h),c=Math.sin(h);e.x=u*s-c*o+this.worldX,e.y=c*s+u*o+this.worldY}},e.end=function(){},t}();function ee(t,e,n){var r=new wt(t);return"json"===n?new Jt(r).readSkeletonData(e):new qt(r).readSkeletonData(new Uint8Array(e))}function ne(t,e,n){return re.apply(this,arguments)}function re(){return(re=r((function(t,n,r){var a,i;return o(this,(function(s){switch(s.label){case 0:i=t.map((function(t,a){var i=n[a],s=e.AssetType.Texture2D;return"ktx"===i?s=e.AssetType.KTX:"ktx2"===i&&(s=e.AssetType.KTX2),oe(t,r,s)})),s.label=1;case 1:return s.trys.push([1,3,,4]),[4,Promise.all(i)];case 2:return a=s.sent(),[3,4];case 3:throw s.sent();case 4:return[2,a]}}))}))).apply(this,arguments)}function ae(t,e){return ie.apply(this,arguments)}function ie(){return(ie=r((function(t,n){var r,a,i,s,l,u,c,d,f,p,v,m;return o(this,(function(o){switch(o.label){case 0:g=new URL(t),w=g.origin+g.pathname,r=w.endsWith("/")?w:w.substring(0,w.lastIndexOf("/")+1),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,e.request(t,{type:"text"})];case 2:return a=o.sent(),[3,4];case 3:throw s=o.sent(),new Error("Spine Atlas: "+t+" load error: "+s);case 4:for(l=function(){},u=new st(a,(function(){return{setFilters:l,setWraps:l,getImage:function(){return{width:0,height:0}}}})),c=[],d=h(u.pages);!(f=d()).done;)p=f.value,v=r+p.name,c.push(oe(v,n));o.label=5;case 5:return o.trys.push([5,7,,8]),[4,Promise.all(c)];case 6:return i=o.sent(),[3,8];case 7:throw m=o.sent(),new Error("Spine Texture: load error: "+m);case 8:return[2,u=se(a,i)]}var g,w}))}))).apply(this,arguments)}function se(t,e){var n=0,r=new st(t,(function(t){return function(t,e,n){var r=e.find((function(e){return e.name===t}))||e[n];return a=r,new le(new Image,a);var a}(t,e,n++)}));return r}function oe(t,n,r){return void 0===r&&(r=e.AssetType.Texture2D),n.resourceManager.load({url:t,type:r})}te.interpolation=new m(2);var le=function(n){function r(t,e){var r,a;return(r=n.call(this,t)||this).texture=e,null==(a=r.texture)||a.generateMipmaps(),r}i(r,n);var a=r.prototype;return a.getImage=function(){return this.texture},a.setFilters=function(n,r){n===t.TextureFilter.Nearest?this.texture.filterMode=e.TextureFilterMode.Point:r===t.TextureFilter.MipMapLinearLinear?this.texture.filterMode=e.TextureFilterMode.Trilinear:this.texture.filterMode=e.TextureFilterMode.Bilinear},a.setWraps=function(t,e){this.texture.wrapModeU=this._convertWrapMode(t),this.texture.wrapModeV=this._convertWrapMode(e)},a.dispose=function(){},a._convertWrapMode=function(n){switch(n){case t.TextureWrap.ClampToEdge:return e.TextureWrapMode.Clamp;case t.TextureWrap.Repeat:return e.TextureWrapMode.Repeat;case t.TextureWrap.MirroredRepeat:return e.TextureWrapMode.Mirror;default:throw new Error("Unsupported texture wrap mode.")}},r}(rt),he=function(){function t(t,e){void 0===e&&(e=1),this._type=t,this._lastElementIndex=e-1;for(var n=this._elements=new Array(e),r=0;r<e;++r)n[r]=new t}var e=t.prototype;return e.get=function(){return this._lastElementIndex<0?new this._type:this._elements[this._lastElementIndex--]},e.return=function(t){this._elements[++this._lastElementIndex]=t},t}(),ue=function(){function t(t){this._usedElementCount=0,this._type=t,this._elements=[]}var e=t.prototype;return e.get=function(){var t=this._usedElementCount,e=this._elements;if(this._usedElementCount++,e.length===t){var n=new this._type;return e.push(n),n}return e[t]},e.clear=function(){this._usedElementCount=0},t}(),ce=e.BlendFactor.SourceAlpha,de=e.BlendFactor.One,fe=e.BlendFactor.DestinationColor,pe=e.BlendFactor.Zero,ve=e.BlendFactor.OneMinusSourceColor,me=e.BlendFactor.OneMinusSourceAlpha,ge=e.BlendOperation.Add;function we(e,n){var r=e.renderState.blendState.targetBlendState;switch(n){case t.BlendMode.Additive:r.sourceColorBlendFactor=ce,r.destinationColorBlendFactor=de,r.sourceAlphaBlendFactor=de,r.destinationAlphaBlendFactor=de,r.colorBlendOperation=r.alphaBlendOperation=ge;break;case t.BlendMode.Multiply:r.sourceColorBlendFactor=fe,r.destinationColorBlendFactor=me,r.sourceAlphaBlendFactor=de,r.destinationAlphaBlendFactor=me,r.colorBlendOperation=r.alphaBlendOperation=ge;break;case t.BlendMode.Screen:r.sourceColorBlendFactor=de,r.destinationColorBlendFactor=ve,r.sourceAlphaBlendFactor=de,r.destinationAlphaBlendFactor=ve,r.colorBlendOperation=r.alphaBlendOperation=ge;break;default:r.sourceColorBlendFactor=ce,r.destinationColorBlendFactor=me,r.sourceAlphaBlendFactor=de,r.destinationAlphaBlendFactor=me,r.colorBlendOperation=r.alphaBlendOperation=ge}}var xe=1/0,ye=-1/0,Ee=function(){function e(){this._clipper=new Qt,this._subRenderItems=[],this._separateSlots=new Map,this._separateSlotTextureMap=new Map}var n=e.prototype;return n.getMaxVertexCount=function(t){for(var e=new Set,n=t.skins,r=n.length,a=0;a<r;a++){var i=n[a];this._collectUniqueAttachments(i,e)}return this._calculateTotalVertexCount(e)},n.buildPrimitive=function(n,r){var a=r.setting,i=a.useClipping,s=void 0===i||i,o=a.zSpacing,l=void 0===o?.01:o,h=this,u=h._clipper,c=h._separateSlots,d=h._subRenderItems,f=h._separateSlotTextureMap,p=e.bounds;p.min.set(xe,xe,xe),p.max.set(ye,ye,ye);var v=0,m=0,g=n.drawOrder,w=g.length,x=r.engine,y=r._indices,E=r._vertices,b=r._vertexCount,M=r._subPrimitives,T=e.tempVerts,S=e.tempTexture,A=e.tempBlendMode,I=e.subRenderItemPool,R=e.subPrimitivePool;d.length=0,I.clear();var C,P,V=r._vertices,_=0,k=0,F=t.BlendMode.Normal,B=null,N=0;e.tempBlendMode=null,e.tempTexture=null;for(var O=0;O<w;++O){var D=g[O];if(D.bone.active){var L=D.getAttachment(),X=null,Y=l*O,W=0,U=u.isClipping(),q=U?2:e.VERTEX_SIZE;if(L){switch(L.constructor){case ct:var H=L;X=H.color,W=4*q,H.computeWorldVertices(D.bone,T,0,q),C=e.QUAD_TRIANGLES,P=H.uvs,B=H.region.renderObject.texture;break;case ft:var j=L;X=j.color,(W=(j.worldVerticesLength>>1)*q)>V.length&&(e.tempVerts=new Array(W)),j.computeWorldVertices(D,0,j.worldVerticesLength,T,0,q),C=j.triangles,P=j.uvs,B=j.region.renderObject.texture;break;case gt:if(s){var G=L;u.clipStart(D,G)}continue;default:s&&u.clipEndWithSlot(D);continue}if(null!=B){var z=void 0,Z=void 0,Q=void 0,J=void 0,K=D.bone.skeleton.color,$=D.color,tt=K.a*$.a*X.a,et=e.tempColor,nt=e.tempDark;if(et.set(K.r*$.r*X.r,K.g*$.g*X.g,K.b*$.b*X.b,tt),U)u.clipTriangles(T,W,C,C.length,P,et,nt,!1),Z=(z=u.clippedVertices).length,J=(Q=u.clippedTriangles).length;else{for(var rt=T,at=et.r,it=et.g,st=et.b,ot=et.a,lt=2,ht=0,ut=W;lt<ut;lt+=q,ht+=2)rt[lt]=at,rt[lt+1]=it,rt[lt+2]=st,rt[lt+3]=ot,rt[lt+4]=P[ht],rt[lt+5]=P[ht+1];z=T,Z=W,Q=C,J=C.length}if(0==Z||0==J){u.clipEndWithSlot(D);continue}for(var dt=v/e.VERTEX_STRIDE,pt=E,vt=v,mt=0;mt<Z;){var wt=z[mt++],xt=z[mt++];pt[vt++]=wt,pt[vt++]=xt,pt[vt++]=Y,pt[vt++]=z[mt++],pt[vt++]=z[mt++],pt[vt++]=z[mt++],pt[vt++]=z[mt++],pt[vt++]=z[mt++],pt[vt++]=z[mt++],this._expandByPoint(wt,xt,Y)}v=vt;var yt=y;for(vt=m,mt=0;mt<J;vt++,mt++)yt[vt]=Q[mt]+dt;m+=J;var Et=D.data,bt=Et.name;F=Et.blendMode;var Mt=null!==A&&A!==Et.blendMode,Tt=null!==S&&S!==B,St=c.get(bt);if(St||Mt||Tt){if(k>0){var At=M[N];At&&N++;var It=At||R.get();It.start=_,It.count=k;var Rt=I.get();Rt.subPrimitive=It,Rt.texture=S,Rt.blendMode=A,d.push(Rt),_+=k,k=0}if(St){var Ct=f.get(bt);if(Ct){var Pt=B.texture;Ct.filterMode=Pt.filterMode,Ct.wrapModeU=Pt.wrapModeU,Ct.wrapModeV=Pt.wrapModeV}var Vt=M[N];Vt&&N++;var _t=Vt||R.get();_t.start=_,_t.count=J;var kt=I.get();kt.blendMode=F,kt.subPrimitive=_t,kt.texture=B,kt.slotName=bt,d.push(kt),_+=J,k=0}else k+=J}else k+=J;S=B,A=F}u.clipEndWithSlot(D)}else s&&u.clipEndWithSlot(D)}else u.clipEndWithSlot(D)}if(k>0){var Ft=M[N];Ft&&N++;var Bt=Ft||R.get();Bt.start=_,Bt.count=k;var Nt=I.get();Nt.blendMode=F,Nt.subPrimitive=Bt,Nt.texture=B,d.push(Nt),k=0}u.clipEnd();var Ot=M.length,Dt=d.length;if(Dt<Ot)for(var Lt=Dt;Lt<Ot;Lt++){var Xt=M[Lt];R.return(Xt)}r._clearSubPrimitives();for(var Yt=0,Wt=Dt;Yt<Wt;++Yt){var Ut=d[Yt],qt=Ut.slotName,Ht=Ut.blendMode,jt=Ut.texture;r._addSubPrimitive(Ut.subPrimitive);var Gt=jt.texture;f.has(qt)&&(Gt=f.get(qt));var zt=Gt.instanceId+"_"+Ht,Zt=Se._materialCache.get(zt);Zt||(Zt=this._createMaterialForTexture(Gt,x,Ht),Se._materialCache.set(zt,Zt)),r.setMaterial(Yt,Zt)}if(m>b)return r._createBuffer(m),void this.buildPrimitive(n,r);r._vertexBuffer.setData(E),r._indexBuffer.setData(y)},n.addSeparateSlot=function(t){this._separateSlots.set(t,t)},n.addSeparateSlotTexture=function(t,e){this._separateSlotTextureMap.set(t,e)},n._createMaterialForTexture=function(t,e,n){var r=Se._getDefaultMaterial(e);return r.shaderData.setTexture("material_SpineTexture",t),we(r,n),r},n._expandByPoint=function(t,n,r){var a=e.bounds,i=a.min,s=a.max,o=Math.min(i.x,t),l=Math.min(i.y,n),h=Math.min(i.z,r),u=Math.max(s.x,t),c=Math.max(s.y,n),d=Math.max(s.z,r);i.set(o,l,h),s.set(u,c,d)},n._collectUniqueAttachments=function(t,e){for(var n=t.attachments,r=0,a=n.length;r<a;r++){var i=n[r];for(var s in i){var o=i[s];o&&!e.has(o)&&e.add(o)}}},n._calculateTotalVertexCount=function(t){var n=0,r=e.QUAD_TRIANGLES.length;return t.forEach((function(t){u(t,ct)?n+=r:u(t,ft)&&(n+=t.triangles.length)})),n},e}();Ee.QUAD_TRIANGLES=[0,1,2,2,3,0],Ee.VERTEX_SIZE=8,Ee.VERTEX_STRIDE=9,Ee.tempDark=new d,Ee.tempColor=new d,Ee.tempVerts=new Array(8),Ee.tempBlendMode=null,Ee.tempTexture=null,Ee.subPrimitivePool=new he(e.SubPrimitive),Ee.subRenderItemPool=new ue((function(){})),Ee.bounds=new e.BoundingBox(new e.Vector3(xe,xe,xe),new e.Vector3(ye,ye,ye));var be=function(n){function r(a){var i,s=e.Shader.find("galacean-spine-shader")||e.Shader.create("galacean-spine-shader",r._spineVS,r._spineFS),o=(i=n.call(this,a,s)||this).renderState;return o.blendState.targetBlendState.enabled=!0,we(M(i),t.BlendMode.Normal),o.depthState.writeEnabled=!1,o.rasterState.cullMode=e.CullMode.Off,o.renderQueueType=e.RenderQueueType.Transparent,i}return i(r,n),r}(e.Material);be._spineVS="\n uniform mat4 renderer_MVPMat;\n\n attribute vec3 POSITION;\n attribute vec2 TEXCOORD_0;\n attribute vec4 COLOR_0;\n \n varying vec2 v_uv;\n varying vec4 v_color;\n \n void main()\n {\n gl_Position = renderer_MVPMat * vec4(POSITION, 1.0);\n \n v_uv = TEXCOORD_0;\n v_color = COLOR_0;\n }\n ",be._spineFS="\n uniform sampler2D material_SpineTexture;\n\n varying vec2 v_uv;\n varying vec4 v_color;\n \n void main()\n {\n vec4 baseColor = texture2D(material_SpineTexture, v_uv);\n gl_FragColor = baseColor * v_color;\n }\n ";var Me,Te,Se=function(n){function r(t){var a;(a=n.call(this,t)||this).setting=new Ae,a.defaultState=new Ie,a._subPrimitives=[],a._needResizeBuffer=!1,a._vertexCount=0;var i=new e.Primitive(a._engine);return a._primitive=i,i.addVertexElement(r._positionVertexElement),i.addVertexElement(r._colorVertexElement),i.addVertexElement(r._uvVertexElement),a}i(r,n);var a=r.prototype;return a.addSeparateSlot=function(t){this._skeleton||console.error("Skeleton not found!"),this._skeleton.findSlot(t)?r._spineGenerator.addSeparateSlot(t):console.warn("Slot: "+t+" not find.")},a._onEnable=function(){this._initializeDefaultState()},a.update=function(t){var e=this._state,n=this._skeleton;e&&n&&(e.update(t),e.apply(n),n.updateWorldTransform(),r._spineGenerator.buildPrimitive(this._skeleton,this),this._isContainDirtyFlag(4)&&(this._onWorldVolumeChanged(),this._setDirtyFlagFalse(4)),this._isContainDirtyFlag(2)&&this._calculateGeneratorBounds(this.bounds))},a._render=function(t){var e=this._primitive,n=this._subPrimitives,r=this._materials,a=this._engine,i=a._renderElementPool.get();i.set(this.priority,this._distanceForSort);var s=a._subRenderElementPool;if(n){for(var o=0,l=n.length;o<l;o++){var h=r[o];if(h){(h.destroyed||h.shader.destroyed)&&(h=this.engine._meshMagentaMaterial);var u=s.get();u.set(this,h,e,n[o]),i.addSubRenderElement(u)}}t.camera._renderPipeline.pushRenderElement(t,i)}},a._updateBounds=function(t){this._calculateGeneratorBounds(t)},a._calculateGeneratorBounds=function(t){var n=Ee.bounds;e.BoundingBox.transform(n,this.entity.transform.worldMatrix,t)},a._cloneTo=function(t){t.resource=this._resource},a._onDestroy=function(){var t=this,e=t._primitive,r=t._subPrimitives,a=t._resource;r.length=0,e&&e.destroy(),a&&this._addResourceReferCount(a,-1),this._clearMaterialCache(),this._primitive=null,this._resource=null,this._skeleton=null,this._state=null,this.setting=null,n.prototype._onDestroy.call(this)},a._createBuffer=function(t){var n=this._engine,r=this._primitive;this._vertexCount=t,this._vertices=new Float32Array(t*Ee.VERTEX_STRIDE),this._indices=new Uint16Array(t);var a=4*Ee.VERTEX_STRIDE,i=new e.Buffer(n,e.BufferBindFlag.VertexBuffer,this._vertices,e.BufferUsage.Dynamic),s=new e.Buffer(n,e.BufferBindFlag.IndexBuffer,this._indices,e.BufferUsage.Dynamic);this._indexBuffer=s,this._vertexBuffer=i;var o=new e.VertexBufferBinding(i,a);this._primitive.setVertexBufferBinding(0,o);var l=new e.IndexBufferBinding(s,e.IndexFormat.UInt16);r.setIndexBufferBinding(l)},a._addSubPrimitive=function(t){this._subPrimitives.push(t)},a._clearSubPrimitives=function(){this._subPrimitives.length=0},a._isContainDirtyFlag=function(t){return!!(this._dirtyUpdateFlag&t)},a._setDirtyFlagFalse=function(t){this._dirtyUpdateFlag&=~t},a._onWorldVolumeChanged=function(){this._dirtyUpdateFlag|=1},a._onAnimationStart=function(){this._dirtyUpdateFlag|=2},a._onAnimationComplete=function(t){t.loop||this._setDirtyFlagFalse(2)},a._clearMaterialCache=function(){this._materials.forEach((function(e){var n,a=e.shaderData.getTexture("material_SpineTexture"),i=(n=e.renderState.blendState.targetBlendState).sourceColorBlendFactor===ce&&n.destinationColorBlendFactor===de&&n.sourceAlphaBlendFactor===de&&n.destinationAlphaBlendFactor===de&&n.colorBlendOperation===ge&&n.alphaBlendOperation===ge?t.BlendMode.Additive:n.sourceColorBlendFactor===fe&&n.destinationColorBlendFactor===pe&&n.sourceAlphaBlendFactor===de&&n.destinationAlphaBlendFactor===pe&&n.colorBlendOperation===ge&&n.alphaBlendOperation===ge?t.BlendMode.Multiply:n.sourceColorBlendFactor===de&&n.destinationColorBlendFactor===ve&&n.sourceAlphaBlendFactor===de&&n.destinationAlphaBlendFactor===ve&&n.colorBlendOperation===ge&&n.alphaBlendOperation===ge?t.BlendMode.Screen:t.BlendMode.Normal,s=a.instanceId+"_"+i;r._materialCache.delete(s)}))},a._initializeDefaultState=function(){var t=this.skeleton,e=this.state;if(t&&e){var n=this.defaultState,r=n.animationName,a=n.skinName,i=n.loop,s=n.scale;t.scaleX=s,t.scaleY=s,"default"!==a&&(t.setSkinByName(a),t.setToSetupPose()),r&&e.setAnimation(0,r,i)}},r._getDefaultMaterial=function(t){var e=this._defaultMaterial;if(e){if(e.engine===t)return e.clone();e.destroy(!0),e=null}return(e=new be(t)).isGCIgnored=!0,this._defaultMaterial=e,e.clone()},tt(r,[{key:"resource",get:function(){return this._resource},set:function(t){var e=this;if(!t)return this._state=null,this._skeleton=null,void(this._resource=null);this._resource=t,this._addResourceReferCount(t,1);var n=t.skeletonData;this._skeleton=new Dt(n);var a=r._animationDataCache.get(n);a||(a=new K(n),r._animationDataCache.set(n,a)),this._state=new G(a),r._spineGenerator.getMaxVertexCount(n),this._createBuffer(0),this._initializeDefaultState(),this._dirtyUpdateFlag|=4,this._state.addListener({start:function(){e._onAnimationStart()},complete:function(t){e._onAnimationComplete(t)}})}},{key:"state",get:function(){return this._state}},{key:"skeleton",get:function(){return this._skeleton}}]),r}(e.Renderer);Se._spineGenerator=new Ee,Se._positionVertexElement=new e.VertexElement("POSITION",0,e.VertexElementFormat.Vector3,0),Se._colorVertexElement=new e.VertexElement("COLOR_0",12,e.VertexElementFormat.Vector4,0),Se._uvVertexElement=new e.VertexElement("TEXCOORD_0",28,e.VertexElementFormat.Vector2,0),Se._materialCache=new Map,Se._animationDataCache=new Map,s([e.deepClone],Se.prototype,"setting",void 0),s([e.deepClone],Se.prototype,"defaultState",void 0),s([e.ignoreClone],Se.prototype,"_primitive",void 0),s([e.ignoreClone],Se.prototype,"_subPrimitives",void 0),s([e.ignoreClone],Se.prototype,"_indexBuffer",void 0),s([e.ignoreClone],Se.prototype,"_vertexBuffer",void 0),s([e.ignoreClone],Se.prototype,"_vertices",void 0),s([e.ignoreClone],Se.prototype,"_indices",void 0),s([e.ignoreClone],Se.prototype,"_needResizeBuffer",void 0),s([e.ignoreClone],Se.prototype,"_vertexCount",void 0),s([e.ignoreClone],Se.prototype,"_resource",void 0),s([e.ignoreClone],Se.prototype,"_skeleton",void 0),s([e.ignoreClone],Se.prototype,"_state",void 0),function(t){t[t.TransformVolume=1]="TransformVolume",t[t.AnimationVolume=2]="AnimationVolume",t[t.InitialVolume=4]="InitialVolume"}(Me||(Me={})),function(t){t[t.WorldVolume=1]="WorldVolume"}(Te||(Te={}));var Ae=function(t,e){void 0===t&&(t=.01),void 0===e&&(e=!0),this.zSpacing=t,this.useClipping=e},Ie=function(t,e,n,r){void 0===t&&(t=1),void 0===e&&(e=!0),void 0===n&&(n=null),void 0===r&&(r="default"),this.scale=t,this.loop=e,this.animationName=n,this.skinName=r},Re=function(t){function e(e,n){var r;return(r=t.call(this,e)||this).textures=[],r._skeletonData=n,r._associationTextureInSkeletonData(n),r}i(e,t);var n=e.prototype;return n._onDestroy=function(){t.prototype._onDestroy.call(this);var e=this.textures,n=this._skeletonData;e&&this._disassociationSuperResource(e),this._clearAttachmentTextures(n),Se._animationDataCache.delete(n),this._skeletonData=null},n._disassociationSuperResource=function(t){for(var e=0,n=t.length;e<n;e++)t[e]._disassociationSuperResource(this)},n._associationTextureInSkeletonData=function(t){var e=this;t.skins.forEach((function(t){t.attachments.forEach((function(t){var n,r=Object.values(t)[0],a=null==r||null==(n=r.region)?void 0:n.texture.texture;a&&!e.textures.find((function(t){return t.instanceId===a.instanceId}))&&(e.textures.push(a),a._associationSuperResource(e))}))}))},n._clearAttachmentTextures=function(t){t.skins.forEach((function(t){t.attachments.forEach((function(t){var e,n=Object.values(t)[0];(null==n||null==(e=n.region)?void 0:e.texture)&&(n.region.texture.texture=null)}))}))},tt(e,[{key:"skeletonData",get:function(){return this._skeletonData}}]),e}(e.ReferResource),Ce=function(){function t(t,e,n){void 0===e&&(e=0),this.data=t,this._dataView=new DataView(t.buffer,t.byteOffset+e,null!=n?n:t.byteLength-e),this._position=0}var e=t.prototype;return e.nextUint16=function(){var t=this._dataView.getUint16(this._position,!0);return this._position+=2,t},e.nextStr=function(){var t=this.nextUint16(),e=new Uint8Array(this.data.buffer,this._position+this._dataView.byteOffset,t);return this._position+=t,this.decodeText(e)},e.nextImageData=function(){return new Uint8Array(this.data.buffer,this.data.byteOffset+this._position)},e.decodeText=function(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);for(var e="",n=0,r=t.length;n<r;n++)e+=String.fromCharCode(t[n]);return decodeURIComponent(encodeURIComponent(e))},t}(),Pe=function(t){function n(){return t.apply(this,arguments)}i(n,t);var a=n.prototype;return a.load=function(t,n){var a=this;return new e.AssetPromise(r((function(e){var r,i,s,l;return o(this,(function(o){switch(o.label){case 0:return t.urls?[4,a._handleOriginAsset(t,n)]:[3,2];case 1:return r=o.sent(),[3,7];case 2:return[4,a.request(t.url,{type:"arraybuffer"})];case 3:return i=o.sent(),s=new Ce(new Uint8Array(i)),(l=s.nextStr()).startsWith("spine")?[4,a._handleEditorAsset(i,s,l,n)]:[3,5];case 4:return r=o.sent(),[3,7];case 5:return[4,a._handleOriginAsset(t,n,i)];case 6:r=o.sent(),o.label=7;case 7:return e(r),[2]}}))})))},a._handleEditorAsset=function(t,e,n,a){return r((function(){var r,i,s,l,h,u,c,d,f,p,v;return o(this,(function(o){switch(o.label){case 0:return s=n.startsWith("spine:skel")?"skel":"json",l=a.engine,"skel"===s?(i=e.nextStr(),r=e.nextImageData()):(h=new TextDecoder("utf-8"),u=h.decode(new Uint8Array(t)),c=JSON.parse(u),d=c.data,f=c.atlas,i=f.refId,r=d),[4,a.getResourceByRef({refId:i})];case 1:return p=o.sent(),v=ee(p,r,s),[2,new Re(l,v)]}}))}))()},a._handleOriginAsset=function(t,e,a){var i=this;return r((function(){var r,s,l,h,u,c,d,f,p,v,m,g,w,x,y,E,b,M,T,S,A,I,R,C,P,V,_,k,F;return o(this,(function(o){switch(o.label){case 0:if(r=(t.params||{}).fileExtensions,s={skeletonPath:"",skeletonExtension:"",atlasPath:"",imagePaths:[],imageExtensions:[]},l=e.engine,!a)return[3,2];if(h=n.verifyFileExtensions(r,!1),n.deriveAndAssignSpineAsset(t.url,h,s),u=s.skeletonPath,c=s.atlasPath,!u||!c)throw new Error("Failed to load spine assets. Please check the file path and ensure the file extension is included.");return[4,ae(c,l)];case 1:return d=o.sent(),f=i._determineSkeletonDataType(a),p=f.data,v=f.type,m=ee(d,p,v),[2,new Re(l,m)];case 2:for(r=n.verifyFileExtensions(r,!0),g=0;g<t.urls.length;g+=1)w=t.urls[g],x=r&&r[g]||null,n.parseAndAssignSpineAsset(w,x,s);if(y=s.skeletonPath,E=s.atlasPath,b=s.imagePaths,M=s.skeletonExtension,T=s.imageExtensions,!y||!E)throw new Error("Failed to load spine assets. Please check the file path and ensure the file extension is included.");return S="json"===M?i.request(y,{type:"text"}):i.request(y,{type:"arraybuffer"}),A="json"===M?"json":"skel",I=[S],b.length>0?(I=I.concat([i.request(E,{type:"text"}),ne(b,T,l)]),[4,Promise.all(I)]):[3,4];case 3:return _=o.sent(),C=_[0],P=_[1],V=_[2],R=se(P,V),[3,6];case 4:return I.push(ae(E,l)),[4,Promise.all(I)];case 5:k=o.sent(),C=k[0],R=k[1],o.label=6;case 6:return F=ee(R,C,A),[2,new Re(l,F)];case 7:return[2]}}))}))()},a._determineSkeletonDataType=function(t){var e,n;try{var r=new TextDecoder("utf-8").decode(t);JSON.parse(r),e=r,n="json"}catch(r){e=t,n="skel"}return{data:e,type:n}},n.parseAndAssignSpineAsset=function(t,e,r){var a=n.imageExtensions,i=n.skeletonExtensions,s=n.getUrlExtension(t,e);s&&(i.includes(s)&&(r.skeletonPath=t,r.skeletonExtension=s),"atlas"===s&&(r.atlasPath=t),a.includes(s)&&(r.imagePaths.push(t),r.imageExtensions.push(s)))},n.deriveAndAssignSpineAsset=function(t,e,r){var a=n.getUrlExtension(t,e);if(a){r.skeletonPath=t,r.skeletonExtension=a;var i,s=/(\.(json|bin|skel))$/;if(s.test(t)&&(i=t.replace(s,"")),i){var o=i+".atlas";r.atlasPath=o}}},n.verifyFileExtensions=function(t,e){return t?e&&!Array.isArray(t)?(console.error("Expect fileExtensions to be an array."),[]):e||"string"==typeof t?t:(console.error("Expect fileExtensions to be a string."),null):null},n.getUrlExtension=function(t,e){if(e)return e;var n=t.match(/\/([^\/?#]+)\.([a-zA-Z0-9]+)(\?|#|$)|\?[^#]*\.([a-zA-Z0-9]+)(\?|#|$)/);return n?n[2]||n[4]:null},n}(e.Loader);Pe.imageExtensions=["png","jpg","webp","jpeg","ktx","ktx2"],Pe.skeletonExtensions=["skel","json","bin"],Pe=s([e.resourceLoader("spine",["json","bin","skel"])],Pe);var Ve=function(t){function n(){return t.apply(this,arguments)}return i(n,t),n.prototype.load=function(t,n){var a=this;return new e.AssetPromise(r((function(e){var r,i,s,l,h,u,c;return o(this,(function(o){switch(o.label){case 0:return[4,a.request(t.url,{type:"text"})];case 1:return r=o.sent(),i=JSON.parse(r),s=i.data,l=i.textures,h=l.map((function(t){return n.getResourceByRef({refId:t.refId})})),[4,Promise.all(h)];case 2:return u=o.sent(),c=se(s,u),e(c),[2]}}))})))},n}(e.Loader);Ve=s([e.resourceLoader("EditorSpineAtlas",["atlas"])],Ve);var _e="0.0.0-experimental-engine-spine-20240821";e.Loader.registerClass("SpineAnimationRenderer",Se),console.log("Galacean spine version: "+_e),t.Animation=C,t.AnimationState=G,t.AnimationStateAdapter=J,t.AnimationStateData=K,t.AssetManager=ut,t.AtlasAttachmentLoader=wt,t.Attachment=T,t.AttachmentTimeline=O,t.Bone=Tt,t.BoneData=yt,t.BoundingBoxAttachment=pt,t.ClippingAttachment=gt,t.Color=d,t.ColorTimeline=B,t.ConstraintData=St,t.CurveTimeline=P,t.DebugUtils=w,t.DeformTimeline=L,t.DrawOrderTimeline=Y,t.Event=At,t.EventData=It,t.EventQueue=Q,t.EventTimeline=X,t.FakeTexture=it,t.IkConstraint=Rt,t.IkConstraintData=Ct,t.IkConstraintTimeline=W,t.IntSet=c,t.Interpolation=p,t.JitterEffect=$t,t.MathUtils=f,t.MeshAttachment=ft,t.PathAttachment=vt,t.PathConstraint=_t,t.PathConstraintData=Pt,t.PathConstraintMixTimeline=j,t.PathConstraintPositionTimeline=q,t.PathConstraintSpacingTimeline=H,t.PointAttachment=mt,t.Pool=x,t.Pow=v,t.PowOut=m,t.RegionAttachment=ct,t.RotateTimeline=V,t.ScaleTimeline=k,t.SharedAssetManager=Bt,t.ShearTimeline=F,t.Skeleton=Dt,t.SkeletonBinary=qt,t.SkeletonBounds=zt,t.SkeletonClipping=Qt,t.SkeletonData=Lt,t.SkeletonDataResource=Re,t.SkeletonJson=Jt,t.Skin=Ut,t.SkinEntry=Wt,t.Slot=Nt,t.SlotData=Xt,t.SpineAnimationRenderer=Se,t.SwirlEffect=te,t.Texture=rt,t.TextureAtlas=st,t.TextureAtlasPage=lt,t.TextureAtlasRegion=ht,t.TextureRegion=at,t.TimeKeeper=E,t.TrackEntry=Z,t.TransformConstraint=Ot,t.TransformConstraintData=Yt,t.TransformConstraintTimeline=U,t.TranslateTimeline=_,t.Triangulator=Zt,t.TwoColorTimeline=N,t.Utils=g,t.Vector2=y,t.VertexAttachment=S,t.WindowedMean=b,t.createTextureAtlas=se,t.version=_e,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@galacean/engine")):"function"==typeof define&&define.amd?define(["exports","@galacean/engine"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).Galacean=t.Galacean||{},t.Galacean.Spine={}),t.Galacean)}(this,(function(t,e){"use strict";function s(t,e,s,i){var n,a=arguments.length,r=a<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,s,i);else for(var o=t.length-1;o>=0;o--)(n=t[o])&&(r=(a<3?n(r):a>3?n(e,s,r):n(e,s))||r);return a>3&&r&&Object.defineProperty(e,s,r),r}"function"==typeof SuppressedError&&SuppressedError;class i{entries={};size=0;add(t){let e=this.entries[t];return this.entries[t]=!0,!e&&(this.size++,!0)}addAll(t){let e=this.size;for(var s=0,i=t.length;s<i;s++)this.add(t[s]);return e!=this.size}contains(t){return this.entries[t]}clear(){this.entries={},this.size=0}}class n{r;g;b;a;static WHITE=new n(1,1,1,1);static RED=new n(1,0,0,1);static GREEN=new n(0,1,0,1);static BLUE=new n(0,0,1,1);static MAGENTA=new n(1,0,1,1);constructor(t=0,e=0,s=0,i=0){this.r=t,this.g=e,this.b=s,this.a=i}set(t,e,s,i){return this.r=t,this.g=e,this.b=s,this.a=i,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=8!=t.length?1:parseInt(t.substr(6,2),16)/255,this}add(t,e,s,i){return this.r+=t,this.g+=e,this.b+=s,this.a+=i,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,e){t.r=((4278190080&e)>>>24)/255,t.g=((16711680&e)>>>16)/255,t.b=((65280&e)>>>8)/255,t.a=(255&e)/255}static rgb888ToColor(t,e){t.r=((16711680&e)>>>16)/255,t.g=((65280&e)>>>8)/255,t.b=(255&e)/255}toRgb888(){const t=t=>("0"+(255*t).toString(16)).slice(-2);return Number("0x"+t(this.r)+t(this.g)+t(this.b))}static fromString(t){return(new n).setFromString(t)}}class a{static PI=3.1415927;static PI2=2*a.PI;static invPI2=1/a.PI2;static radiansToDegrees=180/a.PI;static radDeg=a.radiansToDegrees;static degreesToRadians=a.PI/180;static degRad=a.degreesToRadians;static clamp(t,e,s){return t<e?e:t>s?s:t}static cosDeg(t){return Math.cos(t*a.degRad)}static sinDeg(t){return Math.sin(t*a.degRad)}static atan2Deg(t,e){return Math.atan2(t,e)*a.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 e=Math.pow(Math.abs(t),1/3);return t<0?-e:e}static randomTriangular(t,e){return a.randomTriangularWith(t,e,.5*(t+e))}static randomTriangularWith(t,e,s){let i=Math.random(),n=e-t;return i<=(s-t)/n?t+Math.sqrt(i*n*(s-t)):e-Math.sqrt((1-i)*n*(e-s))}static isPowerOfTwo(t){return t&&!(t&t-1)}}class r{apply(t,e,s){return t+(e-t)*this.applyInternal(s)}}class o extends r{power=2;constructor(t){super(),this.power=t}applyInternal(t){return t<=.5?Math.pow(2*t,this.power)/2:Math.pow(2*(t-1),this.power)/(this.power%2==0?-2:2)+1}}class l{static SUPPORTS_TYPED_ARRAYS="undefined"!=typeof Float32Array;static arrayCopy(t,e,s,i,n){for(let a=e,r=i;a<e+n;a++,r++)s[r]=t[a]}static arrayFill(t,e,s,i){for(let n=e;n<s;n++)t[n]=i}static setArraySize(t,e,s=0){let i=t.length;if(i==e)return t;if(t.length=e,i<e)for(let n=i;n<e;n++)t[n]=s;return t}static ensureArrayCapacity(t,e,s=0){return t.length>=e?t:l.setArraySize(t,e,s)}static newArray(t,e){let s=new Array(t);for(let i=0;i<t;i++)s[i]=e;return s}static newFloatArray(t){if(l.SUPPORTS_TYPED_ARRAYS)return new Float32Array(t);{let e=new Array(t);for(let t=0;t<e.length;t++)e[t]=0;return e}}static newShortArray(t){if(l.SUPPORTS_TYPED_ARRAYS)return new Int16Array(t);{let e=new Array(t);for(let t=0;t<e.length;t++)e[t]=0;return e}}static toFloatArray(t){return l.SUPPORTS_TYPED_ARRAYS?new Float32Array(t):t}static toSinglePrecision(t){return l.SUPPORTS_TYPED_ARRAYS?Math.fround(t):t}static webkit602BugfixHelper(t,e){}static contains(t,e,s=!0){for(var i=0;i<t.length;i++)if(t[i]==e)return!0;return!1}static enumValue(t,e){return t[e[0].toUpperCase()+e.slice(1)]}}class h{items=new Array;instantiator;constructor(t){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 e=0;e<t.length;e++)this.free(t[e])}clear(){this.items.length=0}}class c{x;y;constructor(t=0,e=0){this.x=t,this.y=e}set(t,e){return this.x=t,this.y=e,this}length(){let t=this.x,e=this.y;return Math.sqrt(t*t+e*e)}normalize(){let t=this.length();return 0!=t&&(this.x/=t,this.y/=t),this}}class d{name;constructor(t){if(!t)throw new Error("name cannot be null.");this.name=t}}class u extends d{static nextID=0;id=u.nextID++;bones=null;vertices=[];worldVerticesLength=0;timelineAttachment=this;constructor(t){super(t)}computeWorldVertices(t,e,s,i,n,a){s=n+(s>>1)*a;let r=t.bone.skeleton,o=t.deform,l=this.vertices,h=this.bones;if(!h){o.length>0&&(l=o);let r=t.bone,h=r.worldX,c=r.worldY,d=r.a,u=r.b,m=r.c,f=r.d;for(let t=e,r=n;r<s;t+=2,r+=a){let e=l[t],s=l[t+1];i[r]=e*d+s*u+h,i[r+1]=e*m+s*f+c}return}let c=0,d=0;for(let t=0;t<e;t+=2){let t=h[c];c+=t+1,d+=t}let u=r.bones;if(0==o.length)for(let t=n,e=3*d;t<s;t+=a){let s=0,n=0,a=h[c++];for(a+=c;c<a;c++,e+=3){let t=u[h[c]],i=l[e],a=l[e+1],r=l[e+2];s+=(i*t.a+a*t.b+t.worldX)*r,n+=(i*t.c+a*t.d+t.worldY)*r}i[t]=s,i[t+1]=n}else{let t=o;for(let e=n,r=3*d,o=d<<1;e<s;e+=a){let s=0,n=0,a=h[c++];for(a+=c;c<a;c++,r+=3,o+=2){let e=u[h[c]],i=l[r]+t[o],a=l[r+1]+t[o+1],d=l[r+2];s+=(i*e.a+a*e.b+e.worldX)*d,n+=(i*e.c+a*e.d+e.worldY)*d}i[e]=s,i[e+1]=n}}}copyTo(t){this.bones?(t.bones=new Array(this.bones.length),l.arrayCopy(this.bones,0,t.bones,0,this.bones.length)):t.bones=null,this.vertices&&(t.vertices=l.newFloatArray(this.vertices.length),l.arrayCopy(this.vertices,0,t.vertices,0,this.vertices.length)),t.worldVerticesLength=this.worldVerticesLength,t.timelineAttachment=this.timelineAttachment}}class m{static _nextID=0;id=m.nextID();regions;start=0;digits=0;setupIndex=0;constructor(t){this.regions=new Array(t)}copy(){let t=new m(this.regions.length);return l.arrayCopy(this.regions,0,t.regions,0,this.regions.length),t.start=this.start,t.digits=this.digits,t.setupIndex=this.setupIndex,t}apply(t,e){let s=t.sequenceIndex;-1==s&&(s=this.setupIndex),s>=this.regions.length&&(s=this.regions.length-1);let i=this.regions[s];e.region!=i&&(e.region=i,e.updateRegion())}getPath(t,e){let s=t,i=(this.start+e).toString();for(let t=this.digits-i.length;t>0;t--)s+="0";return s+=i,s}static nextID(){return m._nextID++}}var f;!function(t){t[t.hold=0]="hold",t[t.once=1]="once",t[t.loop=2]="loop",t[t.pingpong=3]="pingpong",t[t.onceReverse=4]="onceReverse",t[t.loopReverse=5]="loopReverse",t[t.pingpongReverse=6]="pingpongReverse"}(f||(f={}));const p=[f.hold,f.once,f.loop,f.pingpong,f.onceReverse,f.loopReverse,f.pingpongReverse];class g{name;timelines=[];timelineIds=new i;duration;constructor(t,e,s){if(!t)throw new Error("name cannot be null.");this.name=t,this.setTimelines(e),this.duration=s}setTimelines(t){if(!t)throw new Error("timelines cannot be null.");this.timelines=t,this.timelineIds.clear();for(var e=0;e<t.length;e++)this.timelineIds.addAll(t[e].getPropertyIds())}hasTimeline(t){for(let e=0;e<t.length;e++)if(this.timelineIds.contains(t[e]))return!0;return!1}apply(t,e,s,i,n,a,r,o){if(!t)throw new Error("skeleton cannot be null.");i&&0!=this.duration&&(s%=this.duration,e>0&&(e%=this.duration));let l=this.timelines;for(let i=0,h=l.length;i<h;i++)l[i].apply(t,e,s,n,a,r,o)}}var x,w;t.MixBlend=void 0,(x=t.MixBlend||(t.MixBlend={}))[x.setup=0]="setup",x[x.first=1]="first",x[x.replace=2]="replace",x[x.add=3]="add",t.MixDirection=void 0,(w=t.MixDirection||(t.MixDirection={}))[w.mixIn=0]="mixIn",w[w.mixOut=1]="mixOut";const b={rotate:0,x:1,y:2,scaleX:3,scaleY:4,shearX:5,shearY:6,inherit:7,rgb:8,alpha:9,rgb2:10,attachment:11,deform:12,event:13,drawOrder:14,ikConstraint:15,transformConstraint:16,pathConstraintPosition:17,pathConstraintSpacing:18,pathConstraintMix:19,physicsConstraintInertia:20,physicsConstraintStrength:21,physicsConstraintDamping:22,physicsConstraintMass:23,physicsConstraintWind:24,physicsConstraintGravity:25,physicsConstraintMix:26,physicsConstraintReset:27,sequence:28};class y{propertyIds;frames;constructor(t,e){this.propertyIds=e,this.frames=l.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,e){let s=t.length;for(let i=1;i<s;i++)if(t[i]>e)return i-1;return s-1}static search(t,e,s){let i=t.length;for(let n=s;n<i;n+=s)if(t[n]>e)return n-s;return i-s}}class M extends y{curves;constructor(t,e,s){super(t,s),this.curves=l.newFloatArray(t+18*e),this.curves[t-1]=1}setLinear(t){this.curves[t]=0}setStepped(t){this.curves[t]=1}shrink(t){let e=this.getFrameCount()+18*t;if(this.curves.length>e){let t=l.newFloatArray(e);l.arrayCopy(this.curves,0,t,0,e),this.curves=t}}setBezier(t,e,s,i,n,a,r,o,l,h,c){let d=this.curves,u=this.getFrameCount()+18*t;0==s&&(d[e]=2+u);let m=.03*(i-2*a+o),f=.03*(n-2*r+l),p=.006*(3*(a-o)-i+h),g=.006*(3*(r-l)-n+c),x=2*m+p,w=2*f+g,b=.3*(a-i)+m+.16666667*p,y=.3*(r-n)+f+.16666667*g,M=i+b,S=n+y;for(let t=u+18;u<t;u+=2)d[u]=M,d[u+1]=S,b+=x,y+=w,x+=p,w+=g,M+=b,S+=y}getBezierValue(t,e,s,i){let n=this.curves;if(n[i]>t){let a=this.frames[e],r=this.frames[e+s];return r+(t-a)/(n[i]-a)*(n[i+1]-r)}let a=i+18;for(i+=2;i<a;i+=2)if(n[i]>=t){let e=n[i-2],s=n[i-1];return s+(t-e)/(n[i]-e)*(n[i+1]-s)}e+=this.getFrameEntries();let r=n[a-2],o=n[a-1];return o+(t-r)/(this.frames[e]-r)*(this.frames[e+s]-o)}}class S extends M{constructor(t,e,s){super(t,e,[s])}getFrameEntries(){return 2}setFrame(t,e,s){t<<=1,this.frames[t]=e,this.frames[t+1]=s}getCurveValue(t){let e=this.frames,s=e.length-2;for(let i=2;i<=s;i+=2)if(e[i]>t){s=i-2;break}let i=this.curves[s>>1];switch(i){case 0:let i=e[s],n=e[s+1];return n+(t-i)/(e[s+2]-i)*(e[s+2+1]-n);case 1:return e[s+1]}return this.getBezierValue(t,s,1,i-2)}getRelativeValue(e,s,i,n,a){if(e<this.frames[0]){switch(i){case t.MixBlend.setup:return a;case t.MixBlend.first:return n+(a-n)*s}return n}let r=this.getCurveValue(e);switch(i){case t.MixBlend.setup:return a+r*s;case t.MixBlend.first:case t.MixBlend.replace:r+=a-n}return n+r*s}getAbsoluteValue(e,s,i,n,a){if(e<this.frames[0]){switch(i){case t.MixBlend.setup:return a;case t.MixBlend.first:return n+(a-n)*s}return n}let r=this.getCurveValue(e);return i==t.MixBlend.setup?a+(r-a)*s:n+(r-n)*s}getAbsoluteValue2(e,s,i,n,a,r){if(e<this.frames[0]){switch(i){case t.MixBlend.setup:return a;case t.MixBlend.first:return n+(a-n)*s}return n}return i==t.MixBlend.setup?a+(r-a)*s:n+(r-n)*s}getScaleValue(e,s,i,n,r,o){if(e<this.frames[0]){switch(i){case t.MixBlend.setup:return o;case t.MixBlend.first:return r+(o-r)*s}return r}let l=this.getCurveValue(e)*o;if(1==s)return i==t.MixBlend.add?r+l-o:l;if(n==t.MixDirection.mixOut)switch(i){case t.MixBlend.setup:return o+(Math.abs(l)*a.signum(o)-o)*s;case t.MixBlend.first:case t.MixBlend.replace:return r+(Math.abs(l)*a.signum(r)-r)*s}else{let e=0;switch(i){case t.MixBlend.setup:return e=Math.abs(o)*a.signum(l),e+(l-e)*s;case t.MixBlend.first:case t.MixBlend.replace:return e=Math.abs(r)*a.signum(l),e+(l-e)*s}}return r+(l-o)*s}}class v extends M{constructor(t,e,s,i){super(t,e,[s,i])}getFrameEntries(){return 3}setFrame(t,e,s,i){t*=3,this.frames[t]=e,this.frames[t+1]=s,this.frames[t+2]=i}}class k extends S{boneIndex=0;constructor(t,e,s){super(t,e,b.rotate+"|"+s),this.boneIndex=s}apply(t,e,s,i,n,a,r){let o=t.bones[this.boneIndex];o.active&&(o.rotation=this.getRelativeValue(s,n,a,o.rotation,o.data.rotation))}}class I extends v{boneIndex=0;constructor(t,e,s){super(t,e,b.x+"|"+s,b.y+"|"+s),this.boneIndex=s}apply(e,s,i,n,a,r,o){let l=e.bones[this.boneIndex];if(!l.active)return;let h=this.frames;if(i<h[0]){switch(r){case t.MixBlend.setup:return l.x=l.data.x,void(l.y=l.data.y);case t.MixBlend.first:l.x+=(l.data.x-l.x)*a,l.y+=(l.data.y-l.y)*a}return}let c=0,d=0,u=y.search(h,i,3),m=this.curves[u/3];switch(m){case 0:let t=h[u];c=h[u+1],d=h[u+2];let e=(i-t)/(h[u+3]-t);c+=(h[u+3+1]-c)*e,d+=(h[u+3+2]-d)*e;break;case 1:c=h[u+1],d=h[u+2];break;default:c=this.getBezierValue(i,u,1,m-2),d=this.getBezierValue(i,u,2,m+18-2)}switch(r){case t.MixBlend.setup:l.x=l.data.x+c*a,l.y=l.data.y+d*a;break;case t.MixBlend.first:case t.MixBlend.replace:l.x+=(l.data.x+c-l.x)*a,l.y+=(l.data.y+d-l.y)*a;break;case t.MixBlend.add:l.x+=c*a,l.y+=d*a}}}class A extends S{boneIndex=0;constructor(t,e,s){super(t,e,b.x+"|"+s),this.boneIndex=s}apply(t,e,s,i,n,a,r){let o=t.bones[this.boneIndex];o.active&&(o.x=this.getRelativeValue(s,n,a,o.x,o.data.x))}}class B extends S{boneIndex=0;constructor(t,e,s){super(t,e,b.y+"|"+s),this.boneIndex=s}apply(t,e,s,i,n,a,r){let o=t.bones[this.boneIndex];o.active&&(o.y=this.getRelativeValue(s,n,a,o.y,o.data.y))}}class T extends v{boneIndex=0;constructor(t,e,s){super(t,e,b.scaleX+"|"+s,b.scaleY+"|"+s),this.boneIndex=s}apply(e,s,i,n,r,o,l){let h=e.bones[this.boneIndex];if(!h.active)return;let c,d,u=this.frames;if(i<u[0]){switch(o){case t.MixBlend.setup:return h.scaleX=h.data.scaleX,void(h.scaleY=h.data.scaleY);case t.MixBlend.first:h.scaleX+=(h.data.scaleX-h.scaleX)*r,h.scaleY+=(h.data.scaleY-h.scaleY)*r}return}let m=y.search(u,i,3),f=this.curves[m/3];switch(f){case 0:let t=u[m];c=u[m+1],d=u[m+2];let e=(i-t)/(u[m+3]-t);c+=(u[m+3+1]-c)*e,d+=(u[m+3+2]-d)*e;break;case 1:c=u[m+1],d=u[m+2];break;default:c=this.getBezierValue(i,m,1,f-2),d=this.getBezierValue(i,m,2,f+18-2)}if(c*=h.data.scaleX,d*=h.data.scaleY,1==r)o==t.MixBlend.add?(h.scaleX+=c-h.data.scaleX,h.scaleY+=d-h.data.scaleY):(h.scaleX=c,h.scaleY=d);else{let e=0,s=0;if(l==t.MixDirection.mixOut)switch(o){case t.MixBlend.setup:e=h.data.scaleX,s=h.data.scaleY,h.scaleX=e+(Math.abs(c)*a.signum(e)-e)*r,h.scaleY=s+(Math.abs(d)*a.signum(s)-s)*r;break;case t.MixBlend.first:case t.MixBlend.replace:e=h.scaleX,s=h.scaleY,h.scaleX=e+(Math.abs(c)*a.signum(e)-e)*r,h.scaleY=s+(Math.abs(d)*a.signum(s)-s)*r;break;case t.MixBlend.add:h.scaleX+=(c-h.data.scaleX)*r,h.scaleY+=(d-h.data.scaleY)*r}else switch(o){case t.MixBlend.setup:e=Math.abs(h.data.scaleX)*a.signum(c),s=Math.abs(h.data.scaleY)*a.signum(d),h.scaleX=e+(c-e)*r,h.scaleY=s+(d-s)*r;break;case t.MixBlend.first:case t.MixBlend.replace:e=Math.abs(h.scaleX)*a.signum(c),s=Math.abs(h.scaleY)*a.signum(d),h.scaleX=e+(c-e)*r,h.scaleY=s+(d-s)*r;break;case t.MixBlend.add:h.scaleX+=(c-h.data.scaleX)*r,h.scaleY+=(d-h.data.scaleY)*r}}}}class C extends S{boneIndex=0;constructor(t,e,s){super(t,e,b.scaleX+"|"+s),this.boneIndex=s}apply(t,e,s,i,n,a,r){let o=t.bones[this.boneIndex];o.active&&(o.scaleX=this.getScaleValue(s,n,a,r,o.scaleX,o.data.scaleX))}}class F extends S{boneIndex=0;constructor(t,e,s){super(t,e,b.scaleY+"|"+s),this.boneIndex=s}apply(t,e,s,i,n,a,r){let o=t.bones[this.boneIndex];o.active&&(o.scaleY=this.getScaleValue(s,n,a,r,o.scaleY,o.data.scaleY))}}class E extends v{boneIndex=0;constructor(t,e,s){super(t,e,b.shearX+"|"+s,b.shearY+"|"+s),this.boneIndex=s}apply(e,s,i,n,a,r,o){let l=e.bones[this.boneIndex];if(!l.active)return;let h=this.frames;if(i<h[0]){switch(r){case t.MixBlend.setup:return l.shearX=l.data.shearX,void(l.shearY=l.data.shearY);case t.MixBlend.first:l.shearX+=(l.data.shearX-l.shearX)*a,l.shearY+=(l.data.shearY-l.shearY)*a}return}let c=0,d=0,u=y.search(h,i,3),m=this.curves[u/3];switch(m){case 0:let t=h[u];c=h[u+1],d=h[u+2];let e=(i-t)/(h[u+3]-t);c+=(h[u+3+1]-c)*e,d+=(h[u+3+2]-d)*e;break;case 1:c=h[u+1],d=h[u+2];break;default:c=this.getBezierValue(i,u,1,m-2),d=this.getBezierValue(i,u,2,m+18-2)}switch(r){case t.MixBlend.setup:l.shearX=l.data.shearX+c*a,l.shearY=l.data.shearY+d*a;break;case t.MixBlend.first:case t.MixBlend.replace:l.shearX+=(l.data.shearX+c-l.shearX)*a,l.shearY+=(l.data.shearY+d-l.shearY)*a;break;case t.MixBlend.add:l.shearX+=c*a,l.shearY+=d*a}}}class Y extends S{boneIndex=0;constructor(t,e,s){super(t,e,b.shearX+"|"+s),this.boneIndex=s}apply(t,e,s,i,n,a,r){let o=t.bones[this.boneIndex];o.active&&(o.shearX=this.getRelativeValue(s,n,a,o.shearX,o.data.shearX))}}class R extends S{boneIndex=0;constructor(t,e,s){super(t,e,b.shearY+"|"+s),this.boneIndex=s}apply(t,e,s,i,n,a,r){let o=t.bones[this.boneIndex];o.active&&(o.shearY=this.getRelativeValue(s,n,a,o.shearY,o.data.shearY))}}class P extends y{boneIndex=0;constructor(t,e){super(t,[b.inherit+"|"+e]),this.boneIndex=e}getFrameEntries(){return 2}setFrame(t,e,s){t*=2,this.frames[t]=e,this.frames[t+1]=s}apply(e,s,i,n,a,r,o){let l=e.bones[this.boneIndex];if(!l.active)return;if(o==t.MixDirection.mixOut)return void(r==t.MixBlend.setup&&(l.inherit=l.data.inherit));let h=this.frames;i<h[0]?r!=t.MixBlend.setup&&r!=t.MixBlend.first||(l.inherit=l.data.inherit):l.inherit=this.frames[y.search(h,i,2)+1]}}class _ extends M{slotIndex=0;constructor(t,e,s){super(t,e,[b.rgb+"|"+s,b.alpha+"|"+s]),this.slotIndex=s}getFrameEntries(){return 5}setFrame(t,e,s,i,n,a){t*=5,this.frames[t]=e,this.frames[t+1]=s,this.frames[t+2]=i,this.frames[t+3]=n,this.frames[t+4]=a}apply(e,s,i,n,a,r,o){let l=e.slots[this.slotIndex];if(!l.bone.active)return;let h=this.frames,c=l.color;if(i<h[0]){let e=l.data.color;switch(r){case t.MixBlend.setup:return void c.setFromColor(e);case t.MixBlend.first:c.add((e.r-c.r)*a,(e.g-c.g)*a,(e.b-c.b)*a,(e.a-c.a)*a)}return}let d=0,u=0,m=0,f=0,p=y.search(h,i,5),g=this.curves[p/5];switch(g){case 0:let t=h[p];d=h[p+1],u=h[p+2],m=h[p+3],f=h[p+4];let e=(i-t)/(h[p+5]-t);d+=(h[p+5+1]-d)*e,u+=(h[p+5+2]-u)*e,m+=(h[p+5+3]-m)*e,f+=(h[p+5+4]-f)*e;break;case 1:d=h[p+1],u=h[p+2],m=h[p+3],f=h[p+4];break;default:d=this.getBezierValue(i,p,1,g-2),u=this.getBezierValue(i,p,2,g+18-2),m=this.getBezierValue(i,p,3,g+36-2),f=this.getBezierValue(i,p,4,g+54-2)}1==a?c.set(d,u,m,f):(r==t.MixBlend.setup&&c.setFromColor(l.data.color),c.add((d-c.r)*a,(u-c.g)*a,(m-c.b)*a,(f-c.a)*a))}}class X extends M{slotIndex=0;constructor(t,e,s){super(t,e,[b.rgb+"|"+s]),this.slotIndex=s}getFrameEntries(){return 4}setFrame(t,e,s,i,n){t<<=2,this.frames[t]=e,this.frames[t+1]=s,this.frames[t+2]=i,this.frames[t+3]=n}apply(e,s,i,n,a,r,o){let l=e.slots[this.slotIndex];if(!l.bone.active)return;let h=this.frames,c=l.color;if(i<h[0]){let e=l.data.color;switch(r){case t.MixBlend.setup:return c.r=e.r,c.g=e.g,void(c.b=e.b);case t.MixBlend.first:c.r+=(e.r-c.r)*a,c.g+=(e.g-c.g)*a,c.b+=(e.b-c.b)*a}return}let d=0,u=0,m=0,f=y.search(h,i,4),p=this.curves[f>>2];switch(p){case 0:let t=h[f];d=h[f+1],u=h[f+2],m=h[f+3];let e=(i-t)/(h[f+4]-t);d+=(h[f+4+1]-d)*e,u+=(h[f+4+2]-u)*e,m+=(h[f+4+3]-m)*e;break;case 1:d=h[f+1],u=h[f+2],m=h[f+3];break;default:d=this.getBezierValue(i,f,1,p-2),u=this.getBezierValue(i,f,2,p+18-2),m=this.getBezierValue(i,f,3,p+36-2)}if(1==a)c.r=d,c.g=u,c.b=m;else{if(r==t.MixBlend.setup){let t=l.data.color;c.r=t.r,c.g=t.g,c.b=t.b}c.r+=(d-c.r)*a,c.g+=(u-c.g)*a,c.b+=(m-c.b)*a}}}class V extends S{slotIndex=0;constructor(t,e,s){super(t,e,b.alpha+"|"+s),this.slotIndex=s}apply(e,s,i,n,a,r,o){let l=e.slots[this.slotIndex];if(!l.bone.active)return;let h=l.color;if(i<this.frames[0]){let e=l.data.color;switch(r){case t.MixBlend.setup:return void(h.a=e.a);case t.MixBlend.first:h.a+=(e.a-h.a)*a}return}let c=this.getCurveValue(i);1==a?h.a=c:(r==t.MixBlend.setup&&(h.a=l.data.color.a),h.a+=(c-h.a)*a)}}class D extends M{slotIndex=0;constructor(t,e,s){super(t,e,[b.rgb+"|"+s,b.alpha+"|"+s,b.rgb2+"|"+s]),this.slotIndex=s}getFrameEntries(){return 8}setFrame(t,e,s,i,n,a,r,o,l){t<<=3,this.frames[t]=e,this.frames[t+1]=s,this.frames[t+2]=i,this.frames[t+3]=n,this.frames[t+4]=a,this.frames[t+5]=r,this.frames[t+6]=o,this.frames[t+7]=l}apply(e,s,i,n,a,r,o){let l=e.slots[this.slotIndex];if(!l.bone.active)return;let h=this.frames,c=l.color,d=l.darkColor;if(i<h[0]){let e=l.data.color,s=l.data.darkColor;switch(r){case t.MixBlend.setup:return c.setFromColor(e),d.r=s.r,d.g=s.g,void(d.b=s.b);case t.MixBlend.first:c.add((e.r-c.r)*a,(e.g-c.g)*a,(e.b-c.b)*a,(e.a-c.a)*a),d.r+=(s.r-d.r)*a,d.g+=(s.g-d.g)*a,d.b+=(s.b-d.b)*a}return}let u=0,m=0,f=0,p=0,g=0,x=0,w=0,b=y.search(h,i,8),M=this.curves[b>>3];switch(M){case 0:let t=h[b];u=h[b+1],m=h[b+2],f=h[b+3],p=h[b+4],g=h[b+5],x=h[b+6],w=h[b+7];let e=(i-t)/(h[b+8]-t);u+=(h[b+8+1]-u)*e,m+=(h[b+8+2]-m)*e,f+=(h[b+8+3]-f)*e,p+=(h[b+8+4]-p)*e,g+=(h[b+8+5]-g)*e,x+=(h[b+8+6]-x)*e,w+=(h[b+8+7]-w)*e;break;case 1:u=h[b+1],m=h[b+2],f=h[b+3],p=h[b+4],g=h[b+5],x=h[b+6],w=h[b+7];break;default:u=this.getBezierValue(i,b,1,M-2),m=this.getBezierValue(i,b,2,M+18-2),f=this.getBezierValue(i,b,3,M+36-2),p=this.getBezierValue(i,b,4,M+54-2),g=this.getBezierValue(i,b,5,M+72-2),x=this.getBezierValue(i,b,6,M+90-2),w=this.getBezierValue(i,b,7,M+108-2)}if(1==a)c.set(u,m,f,p),d.r=g,d.g=x,d.b=w;else{if(r==t.MixBlend.setup){c.setFromColor(l.data.color);let t=l.data.darkColor;d.r=t.r,d.g=t.g,d.b=t.b}c.add((u-c.r)*a,(m-c.g)*a,(f-c.b)*a,(p-c.a)*a),d.r+=(g-d.r)*a,d.g+=(x-d.g)*a,d.b+=(w-d.b)*a}}}class O extends M{slotIndex=0;constructor(t,e,s){super(t,e,[b.rgb+"|"+s,b.rgb2+"|"+s]),this.slotIndex=s}getFrameEntries(){return 7}setFrame(t,e,s,i,n,a,r,o){t*=7,this.frames[t]=e,this.frames[t+1]=s,this.frames[t+2]=i,this.frames[t+3]=n,this.frames[t+4]=a,this.frames[t+5]=r,this.frames[t+6]=o}apply(e,s,i,n,a,r,o){let l=e.slots[this.slotIndex];if(!l.bone.active)return;let h=this.frames,c=l.color,d=l.darkColor;if(i<h[0]){let e=l.data.color,s=l.data.darkColor;switch(r){case t.MixBlend.setup:return c.r=e.r,c.g=e.g,c.b=e.b,d.r=s.r,d.g=s.g,void(d.b=s.b);case t.MixBlend.first:c.r+=(e.r-c.r)*a,c.g+=(e.g-c.g)*a,c.b+=(e.b-c.b)*a,d.r+=(s.r-d.r)*a,d.g+=(s.g-d.g)*a,d.b+=(s.b-d.b)*a}return}let u=0,m=0,f=0,p=0,g=0,x=0,w=y.search(h,i,7),b=this.curves[w/7];switch(b){case 0:let t=h[w];u=h[w+1],m=h[w+2],f=h[w+3],p=h[w+4],g=h[w+5],x=h[w+6];let e=(i-t)/(h[w+7]-t);u+=(h[w+7+1]-u)*e,m+=(h[w+7+2]-m)*e,f+=(h[w+7+3]-f)*e,p+=(h[w+7+4]-p)*e,g+=(h[w+7+5]-g)*e,x+=(h[w+7+6]-x)*e;break;case 1:u=h[w+1],m=h[w+2],f=h[w+3],p=h[w+4],g=h[w+5],x=h[w+6];break;default:u=this.getBezierValue(i,w,1,b-2),m=this.getBezierValue(i,w,2,b+18-2),f=this.getBezierValue(i,w,3,b+36-2),p=this.getBezierValue(i,w,4,b+54-2),g=this.getBezierValue(i,w,5,b+72-2),x=this.getBezierValue(i,w,6,b+90-2)}if(1==a)c.r=u,c.g=m,c.b=f,d.r=p,d.g=g,d.b=x;else{if(r==t.MixBlend.setup){let t=l.data.color,e=l.data.darkColor;c.r=t.r,c.g=t.g,c.b=t.b,d.r=e.r,d.g=e.g,d.b=e.b}c.r+=(u-c.r)*a,c.g+=(m-c.g)*a,c.b+=(f-c.b)*a,d.r+=(p-d.r)*a,d.g+=(g-d.g)*a,d.b+=(x-d.b)*a}}}class N extends y{slotIndex=0;attachmentNames;constructor(t,e){super(t,[b.attachment+"|"+e]),this.slotIndex=e,this.attachmentNames=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,e,s){this.frames[t]=e,this.attachmentNames[t]=s}apply(e,s,i,n,a,r,o){let l=e.slots[this.slotIndex];l.bone.active&&(o!=t.MixDirection.mixOut?i<this.frames[0]?r!=t.MixBlend.setup&&r!=t.MixBlend.first||this.setAttachment(e,l,l.data.attachmentName):this.setAttachment(e,l,this.attachmentNames[y.search1(this.frames,i)]):r==t.MixBlend.setup&&this.setAttachment(e,l,l.data.attachmentName))}setAttachment(t,e,s){e.setAttachment(s?t.getAttachment(this.slotIndex,s):null)}}class L extends M{slotIndex=0;attachment;vertices;constructor(t,e,s,i){super(t,e,[b.deform+"|"+s+"|"+i.id]),this.slotIndex=s,this.attachment=i,this.vertices=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,e,s){this.frames[t]=e,this.vertices[t]=s}setBezier(t,e,s,i,n,a,r,o,l,h,c){let d=this.curves,u=this.getFrameCount()+18*t;0==s&&(d[e]=2+u);let m=.03*(i-2*a+o),f=.03*l-.06*r,p=.006*(3*(a-o)-i+h),g=.018*(r-l+.33333333),x=2*m+p,w=2*f+g,b=.3*(a-i)+m+.16666667*p,y=.3*r+f+.16666667*g,M=i+b,S=y;for(let t=u+18;u<t;u+=2)d[u]=M,d[u+1]=S,b+=x,y+=w,x+=p,w+=g,M+=b,S+=y}getCurvePercent(t,e){let s=this.curves,i=s[e];switch(i){case 0:let s=this.frames[e];return(t-s)/(this.frames[e+this.getFrameEntries()]-s);case 1:return 0}if(i-=2,s[i]>t){let n=this.frames[e];return s[i+1]*(t-n)/(s[i]-n)}let n=i+18;for(i+=2;i<n;i+=2)if(s[i]>=t){let e=s[i-2],n=s[i-1];return n+(t-e)/(s[i]-e)*(s[i+1]-n)}let a=s[n-2],r=s[n-1];return r+(1-r)*(t-a)/(this.frames[e+this.getFrameEntries()]-a)}apply(e,s,i,n,a,r,o){let h=e.slots[this.slotIndex];if(!h.bone.active)return;let c=h.getAttachment();if(!c)return;if(!(c instanceof u)||c.timelineAttachment!=this.attachment)return;let d=h.deform;0==d.length&&(r=t.MixBlend.setup);let m=this.vertices,f=m[0].length,p=this.frames;if(i<p[0]){switch(r){case t.MixBlend.setup:return void(d.length=0);case t.MixBlend.first:if(1==a)return void(d.length=0);d.length=f;let e=c;if(e.bones){a=1-a;for(g=0;g<f;g++)d[g]*=a}else{let t=e.vertices;for(var g=0;g<f;g++)d[g]+=(t[g]-d[g])*a}}return}if(d.length=f,i>=p[p.length-1]){let e=m[p.length-1];if(1==a)if(r==t.MixBlend.add){let t=c;if(t.bones)for(let t=0;t<f;t++)d[t]+=e[t];else{let s=t.vertices;for(let t=0;t<f;t++)d[t]+=e[t]-s[t]}}else l.arrayCopy(e,0,d,0,f);else switch(r){case t.MixBlend.setup:{let t=c;if(t.bones)for(let t=0;t<f;t++)d[t]=e[t]*a;else{let s=t.vertices;for(let t=0;t<f;t++){let i=s[t];d[t]=i+(e[t]-i)*a}}break}case t.MixBlend.first:case t.MixBlend.replace:for(let t=0;t<f;t++)d[t]+=(e[t]-d[t])*a;break;case t.MixBlend.add:let s=c;if(s.bones)for(let t=0;t<f;t++)d[t]+=e[t]*a;else{let t=s.vertices;for(let s=0;s<f;s++)d[s]+=(e[s]-t[s])*a}}return}let x=y.search1(p,i),w=this.getCurvePercent(i,x),b=m[x],M=m[x+1];if(1==a)if(r==t.MixBlend.add){let t=c;if(t.bones)for(let t=0;t<f;t++){let e=b[t];d[t]+=e+(M[t]-e)*w}else{let e=t.vertices;for(let t=0;t<f;t++){let s=b[t];d[t]+=s+(M[t]-s)*w-e[t]}}}else for(let t=0;t<f;t++){let e=b[t];d[t]=e+(M[t]-e)*w}else switch(r){case t.MixBlend.setup:{let t=c;if(t.bones)for(let t=0;t<f;t++){let e=b[t];d[t]=(e+(M[t]-e)*w)*a}else{let e=t.vertices;for(let t=0;t<f;t++){let s=b[t],i=e[t];d[t]=i+(s+(M[t]-s)*w-i)*a}}break}case t.MixBlend.first:case t.MixBlend.replace:for(let t=0;t<f;t++){let e=b[t];d[t]+=(e+(M[t]-e)*w-d[t])*a}break;case t.MixBlend.add:let e=c;if(e.bones)for(let t=0;t<f;t++){let e=b[t];d[t]+=(e+(M[t]-e)*w)*a}else{let t=e.vertices;for(let e=0;e<f;e++){let s=b[e];d[e]+=(s+(M[e]-s)*w-t[e])*a}}}}}class q extends y{static propertyIds=[""+b.event];events;constructor(t){super(t,q.propertyIds),this.events=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,e){this.frames[t]=e.time,this.events[t]=e}apply(t,e,s,i,n,a,r){if(!i)return;let o=this.frames,l=this.frames.length;if(e>s)this.apply(t,e,Number.MAX_VALUE,i,n,a,r),e=-1;else if(e>=o[l-1])return;if(s<o[0])return;let h=0;if(e<o[0])h=0;else{h=y.search1(o,e)+1;let t=o[h];for(;h>0&&o[h-1]==t;)h--}for(;h<l&&s>=o[h];h++)i.push(this.events[h])}}class U extends y{static propertyIds=[""+b.drawOrder];drawOrders;constructor(t){super(t,U.propertyIds),this.drawOrders=new Array(t)}getFrameCount(){return this.frames.length}setFrame(t,e,s){this.frames[t]=e,this.drawOrders[t]=s}apply(e,s,i,n,a,r,o){if(o==t.MixDirection.mixOut)return void(r==t.MixBlend.setup&&l.arrayCopy(e.slots,0,e.drawOrder,0,e.slots.length));if(i<this.frames[0])return void(r!=t.MixBlend.setup&&r!=t.MixBlend.first||l.arrayCopy(e.slots,0,e.drawOrder,0,e.slots.length));let h=y.search1(this.frames,i),c=this.drawOrders[h];if(c){let t=e.drawOrder,s=e.slots;for(let e=0,i=c.length;e<i;e++)t[e]=s[c[e]]}else l.arrayCopy(e.slots,0,e.drawOrder,0,e.slots.length)}}class W extends M{constraintIndex=0;constructor(t,e,s){super(t,e,[b.ikConstraint+"|"+s]),this.constraintIndex=s}getFrameEntries(){return 6}setFrame(t,e,s,i,n,a,r){t*=6,this.frames[t]=e,this.frames[t+1]=s,this.frames[t+2]=i,this.frames[t+3]=n,this.frames[t+4]=a?1:0,this.frames[t+5]=r?1:0}apply(e,s,i,n,a,r,o){let l=e.ikConstraints[this.constraintIndex];if(!l.active)return;let h=this.frames;if(i<h[0]){switch(r){case t.MixBlend.setup:return l.mix=l.data.mix,l.softness=l.data.softness,l.bendDirection=l.data.bendDirection,l.compress=l.data.compress,void(l.stretch=l.data.stretch);case t.MixBlend.first:l.mix+=(l.data.mix-l.mix)*a,l.softness+=(l.data.softness-l.softness)*a,l.bendDirection=l.data.bendDirection,l.compress=l.data.compress,l.stretch=l.data.stretch}return}let c=0,d=0,u=y.search(h,i,6),m=this.curves[u/6];switch(m){case 0:let t=h[u];c=h[u+1],d=h[u+2];let e=(i-t)/(h[u+6]-t);c+=(h[u+6+1]-c)*e,d+=(h[u+6+2]-d)*e;break;case 1:c=h[u+1],d=h[u+2];break;default:c=this.getBezierValue(i,u,1,m-2),d=this.getBezierValue(i,u,2,m+18-2)}r==t.MixBlend.setup?(l.mix=l.data.mix+(c-l.data.mix)*a,l.softness=l.data.softness+(d-l.data.softness)*a,o==t.MixDirection.mixOut?(l.bendDirection=l.data.bendDirection,l.compress=l.data.compress,l.stretch=l.data.stretch):(l.bendDirection=h[u+3],l.compress=0!=h[u+4],l.stretch=0!=h[u+5])):(l.mix+=(c-l.mix)*a,l.softness+=(d-l.softness)*a,o==t.MixDirection.mixIn&&(l.bendDirection=h[u+3],l.compress=0!=h[u+4],l.stretch=0!=h[u+5]))}}class z extends M{constraintIndex=0;constructor(t,e,s){super(t,e,[b.transformConstraint+"|"+s]),this.constraintIndex=s}getFrameEntries(){return 7}setFrame(t,e,s,i,n,a,r,o){let l=this.frames;l[t*=7]=e,l[t+1]=s,l[t+2]=i,l[t+3]=n,l[t+4]=a,l[t+5]=r,l[t+6]=o}apply(e,s,i,n,a,r,o){let l=e.transformConstraints[this.constraintIndex];if(!l.active)return;let h,c,d,u,m,f,p=this.frames;if(i<p[0]){let e=l.data;switch(r){case t.MixBlend.setup:return l.mixRotate=e.mixRotate,l.mixX=e.mixX,l.mixY=e.mixY,l.mixScaleX=e.mixScaleX,l.mixScaleY=e.mixScaleY,void(l.mixShearY=e.mixShearY);case t.MixBlend.first:l.mixRotate+=(e.mixRotate-l.mixRotate)*a,l.mixX+=(e.mixX-l.mixX)*a,l.mixY+=(e.mixY-l.mixY)*a,l.mixScaleX+=(e.mixScaleX-l.mixScaleX)*a,l.mixScaleY+=(e.mixScaleY-l.mixScaleY)*a,l.mixShearY+=(e.mixShearY-l.mixShearY)*a}return}let g=y.search(p,i,7),x=this.curves[g/7];switch(x){case 0:let t=p[g];h=p[g+1],c=p[g+2],d=p[g+3],u=p[g+4],m=p[g+5],f=p[g+6];let e=(i-t)/(p[g+7]-t);h+=(p[g+7+1]-h)*e,c+=(p[g+7+2]-c)*e,d+=(p[g+7+3]-d)*e,u+=(p[g+7+4]-u)*e,m+=(p[g+7+5]-m)*e,f+=(p[g+7+6]-f)*e;break;case 1:h=p[g+1],c=p[g+2],d=p[g+3],u=p[g+4],m=p[g+5],f=p[g+6];break;default:h=this.getBezierValue(i,g,1,x-2),c=this.getBezierValue(i,g,2,x+18-2),d=this.getBezierValue(i,g,3,x+36-2),u=this.getBezierValue(i,g,4,x+54-2),m=this.getBezierValue(i,g,5,x+72-2),f=this.getBezierValue(i,g,6,x+90-2)}if(r==t.MixBlend.setup){let t=l.data;l.mixRotate=t.mixRotate+(h-t.mixRotate)*a,l.mixX=t.mixX+(c-t.mixX)*a,l.mixY=t.mixY+(d-t.mixY)*a,l.mixScaleX=t.mixScaleX+(u-t.mixScaleX)*a,l.mixScaleY=t.mixScaleY+(m-t.mixScaleY)*a,l.mixShearY=t.mixShearY+(f-t.mixShearY)*a}else l.mixRotate+=(h-l.mixRotate)*a,l.mixX+=(c-l.mixX)*a,l.mixY+=(d-l.mixY)*a,l.mixScaleX+=(u-l.mixScaleX)*a,l.mixScaleY+=(m-l.mixScaleY)*a,l.mixShearY+=(f-l.mixShearY)*a}}class G extends S{constraintIndex=0;constructor(t,e,s){super(t,e,b.pathConstraintPosition+"|"+s),this.constraintIndex=s}apply(t,e,s,i,n,a,r){let o=t.pathConstraints[this.constraintIndex];o.active&&(o.position=this.getAbsoluteValue(s,n,a,o.position,o.data.position))}}class $ extends S{constraintIndex=0;constructor(t,e,s){super(t,e,b.pathConstraintSpacing+"|"+s),this.constraintIndex=s}apply(t,e,s,i,n,a,r){let o=t.pathConstraints[this.constraintIndex];o.active&&(o.spacing=this.getAbsoluteValue(s,n,a,o.spacing,o.data.spacing))}}class j extends M{constraintIndex=0;constructor(t,e,s){super(t,e,[b.pathConstraintMix+"|"+s]),this.constraintIndex=s}getFrameEntries(){return 4}setFrame(t,e,s,i,n){let a=this.frames;a[t<<=2]=e,a[t+1]=s,a[t+2]=i,a[t+3]=n}apply(e,s,i,n,a,r,o){let l=e.pathConstraints[this.constraintIndex];if(!l.active)return;let h,c,d,u=this.frames;if(i<u[0]){switch(r){case t.MixBlend.setup:return l.mixRotate=l.data.mixRotate,l.mixX=l.data.mixX,void(l.mixY=l.data.mixY);case t.MixBlend.first:l.mixRotate+=(l.data.mixRotate-l.mixRotate)*a,l.mixX+=(l.data.mixX-l.mixX)*a,l.mixY+=(l.data.mixY-l.mixY)*a}return}let m=y.search(u,i,4),f=this.curves[m>>2];switch(f){case 0:let t=u[m];h=u[m+1],c=u[m+2],d=u[m+3];let e=(i-t)/(u[m+4]-t);h+=(u[m+4+1]-h)*e,c+=(u[m+4+2]-c)*e,d+=(u[m+4+3]-d)*e;break;case 1:h=u[m+1],c=u[m+2],d=u[m+3];break;default:h=this.getBezierValue(i,m,1,f-2),c=this.getBezierValue(i,m,2,f+18-2),d=this.getBezierValue(i,m,3,f+36-2)}if(r==t.MixBlend.setup){let t=l.data;l.mixRotate=t.mixRotate+(h-t.mixRotate)*a,l.mixX=t.mixX+(c-t.mixX)*a,l.mixY=t.mixY+(d-t.mixY)*a}else l.mixRotate+=(h-l.mixRotate)*a,l.mixX+=(c-l.mixX)*a,l.mixY+=(d-l.mixY)*a}}class H extends S{constraintIndex=0;constructor(t,e,s,i){super(t,e,i+"|"+s),this.constraintIndex=s}apply(t,e,s,i,n,a,r){let o;if(-1==this.constraintIndex){const e=s>=this.frames[0]?this.getCurveValue(s):0;for(const i of t.physicsConstraints)i.active&&this.global(i.data)&&this.set(i,this.getAbsoluteValue2(s,n,a,this.get(i),this.setup(i),e))}else o=t.physicsConstraints[this.constraintIndex],o.active&&this.set(o,this.getAbsoluteValue(s,n,a,this.get(o),this.setup(o)))}}class J extends H{constructor(t,e,s){super(t,e,s,b.physicsConstraintInertia)}setup(t){return t.data.inertia}get(t){return t.inertia}set(t,e){t.inertia=e}global(t){return t.inertiaGlobal}}class K extends H{constructor(t,e,s){super(t,e,s,b.physicsConstraintStrength)}setup(t){return t.data.strength}get(t){return t.strength}set(t,e){t.strength=e}global(t){return t.strengthGlobal}}class Q extends H{constructor(t,e,s){super(t,e,s,b.physicsConstraintDamping)}setup(t){return t.data.damping}get(t){return t.damping}set(t,e){t.damping=e}global(t){return t.dampingGlobal}}class Z extends H{constructor(t,e,s){super(t,e,s,b.physicsConstraintMass)}setup(t){return 1/t.data.massInverse}get(t){return 1/t.massInverse}set(t,e){t.massInverse=1/e}global(t){return t.massGlobal}}class tt extends H{constructor(t,e,s){super(t,e,s,b.physicsConstraintWind)}setup(t){return t.data.wind}get(t){return t.wind}set(t,e){t.wind=e}global(t){return t.windGlobal}}class et extends H{constructor(t,e,s){super(t,e,s,b.physicsConstraintGravity)}setup(t){return t.data.gravity}get(t){return t.gravity}set(t,e){t.gravity=e}global(t){return t.gravityGlobal}}class st extends H{constructor(t,e,s){super(t,e,s,b.physicsConstraintMix)}setup(t){return t.data.mix}get(t){return t.mix}set(t,e){t.mix=e}global(t){return t.mixGlobal}}class it extends y{static propertyIds=[b.physicsConstraintReset.toString()];constraintIndex;constructor(t,e){super(t,it.propertyIds),this.constraintIndex=e}getFrameCount(){return this.frames.length}setFrame(t,e){this.frames[t]=e}apply(t,e,s,i,n,a,r){let o;if(-1!=this.constraintIndex&&(o=t.physicsConstraints[this.constraintIndex],!o.active))return;const l=this.frames;if(e>s)this.apply(t,e,Number.MAX_VALUE,[],n,a,r),e=-1;else if(e>=l[l.length-1])return;if(!(s<l[0])&&(e<l[0]||s>=l[y.search1(l,e)+1]))if(null!=o)o.reset();else for(const e of t.physicsConstraints)e.active&&e.reset()}}class nt extends y{static ENTRIES=3;static MODE=1;static DELAY=2;slotIndex;attachment;constructor(t,e,s){super(t,[b.sequence+"|"+e+"|"+s.sequence.id]),this.slotIndex=e,this.attachment=s}getFrameEntries(){return nt.ENTRIES}getSlotIndex(){return this.slotIndex}getAttachment(){return this.attachment}setFrame(t,e,s,i,n){let a=this.frames;a[t*=nt.ENTRIES]=e,a[t+nt.MODE]=s|i<<4,a[t+nt.DELAY]=n}apply(e,s,i,n,a,r,o){let l=e.slots[this.slotIndex];if(!l.bone.active)return;let h=l.attachment,c=this.attachment;if(!(h==c||h instanceof u&&h.timelineAttachment==c))return;let d=this.frames;if(i<d[0])return void(r!=t.MixBlend.setup&&r!=t.MixBlend.first||(l.sequenceIndex=-1));let m=y.search(d,i,nt.ENTRIES),g=d[m],x=d[m+nt.MODE],w=d[m+nt.DELAY];if(!this.attachment.sequence)return;let b=x>>4,M=this.attachment.sequence.regions.length,S=p[15&x];if(S!=f.hold)switch(b+=(i-g)/w+1e-5|0,S){case f.once:b=Math.min(M-1,b);break;case f.loop:b%=M;break;case f.pingpong:{let t=(M<<1)-2;b=0==t?0:b%t,b>=M&&(b=t-b);break}case f.onceReverse:b=Math.max(M-1-b,0);break;case f.loopReverse:b=M-1-b%M;break;case f.pingpongReverse:{let t=(M<<1)-2;b=0==t?0:(b+M-1)%t,b>=M&&(b=t-b)}}l.sequenceIndex=b}}class at{static _emptyAnimation=new g("<empty>",[],0);static emptyAnimation(){return at._emptyAnimation}data;tracks=new Array;timeScale=1;unkeyedState=0;events=new Array;listeners=new Array;queue=new ot(this);propertyIDs=new i;animationsChanged=!1;trackEntryPool=new h((()=>new rt));constructor(t){this.data=t}update(t){t*=this.timeScale;let e=this.tracks;for(let s=0,i=e.length;s<i;s++){let i=e[s];if(!i)continue;i.animationLast=i.nextAnimationLast,i.trackLast=i.nextTrackLast;let n=t*i.timeScale;if(i.delay>0){if(i.delay-=n,i.delay>0)continue;n=-i.delay,i.delay=0}let a=i.next;if(a){let e=i.trackLast-a.delay;if(e>=0){for(a.delay=0,a.trackTime+=0==i.timeScale?0:(e/i.timeScale+t)*a.timeScale,i.trackTime+=n,this.setCurrent(s,a,!0);a.mixingFrom;)a.mixTime+=t,a=a.mixingFrom;continue}}else if(i.trackLast>=i.trackEnd&&!i.mixingFrom){e[s]=null,this.queue.end(i),this.clearNext(i);continue}if(i.mixingFrom&&this.updateMixingFrom(i,t)){let t=i.mixingFrom;for(i.mixingFrom=null,t&&(t.mixingTo=null);t;)this.queue.end(t),t=t.mixingFrom}i.trackTime+=n}this.queue.drain()}updateMixingFrom(t,e){let s=t.mixingFrom;if(!s)return!0;let i=this.updateMixingFrom(s,e);return s.animationLast=s.nextAnimationLast,s.trackLast=s.nextTrackLast,t.mixTime>0&&t.mixTime>=t.mixDuration?(0!=s.totalAlpha&&0!=t.mixDuration||(t.mixingFrom=s.mixingFrom,s.mixingFrom&&(s.mixingFrom.mixingTo=t),t.interruptAlpha=s.interruptAlpha,this.queue.end(s)),i):(s.trackTime+=e*s.timeScale,t.mixTime+=e,!1)}apply(e){if(!e)throw new Error("skeleton cannot be null.");this.animationsChanged&&this._animationsChanged();let s=this.events,i=this.tracks,n=!1;for(let r=0,o=i.length;r<o;r++){let o=i[r];if(!o||o.delay>0)continue;n=!0;let h=0==r?t.MixBlend.first:o.mixBlend,c=o.alpha;o.mixingFrom?c*=this.applyMixingFrom(o,e,h):o.trackTime>=o.trackEnd&&!o.next&&(c=0);let d=c>=o.alphaAttachmentThreshold,u=o.animationLast,m=o.getAnimationTime(),f=m,p=s;o.reverse&&(f=o.animation.duration-f,p=null);let g=o.animation.timelines,x=g.length;if(0==r&&1==c||h==t.MixBlend.add){0==r&&(d=!0);for(let s=0;s<x;s++){l.webkit602BugfixHelper(c,h);var a=g[s];a instanceof N?this.applyAttachmentTimeline(a,e,f,h,d):a.apply(e,u,f,p,c,h,t.MixDirection.mixIn)}}else{let s=o.timelineMode,i=o.shortestRotation,n=!i&&o.timelinesRotation.length!=x<<1;n&&(o.timelinesRotation.length=x<<1);for(let a=0;a<x;a++){let r=g[a],m=s[a]==ht?h:t.MixBlend.setup;!i&&r instanceof k?this.applyRotateTimeline(r,e,f,c,m,o.timelinesRotation,a<<1,n):r instanceof N?this.applyAttachmentTimeline(r,e,f,h,d):(l.webkit602BugfixHelper(c,h),r.apply(e,u,f,p,c,m,t.MixDirection.mixIn))}}this.queueEvents(o,m),s.length=0,o.nextAnimationLast=m,o.nextTrackLast=o.trackTime}for(var r=this.unkeyedState+ft,o=e.slots,h=0,c=e.slots.length;h<c;h++){var d=o[h];if(d.attachmentState==r){var u=d.data.attachmentName;d.setAttachment(u?e.getAttachment(d.data.index,u):null)}}return this.unkeyedState+=2,this.queue.drain(),n}applyMixingFrom(e,s,i){let n=e.mixingFrom;n.mixingFrom&&this.applyMixingFrom(n,s,i);let a=0;0==e.mixDuration?(a=1,i==t.MixBlend.first&&(i=t.MixBlend.setup)):(a=e.mixTime/e.mixDuration,a>1&&(a=1),i!=t.MixBlend.first&&(i=n.mixBlend));let r=a<n.mixAttachmentThreshold,o=a<n.mixDrawOrderThreshold,h=n.animation.timelines,c=h.length,d=n.alpha*e.interruptAlpha,u=d*(1-a),m=n.animationLast,f=n.getAnimationTime(),p=f,g=null;if(n.reverse?p=n.animation.duration-p:a<n.eventThreshold&&(g=this.events),i==t.MixBlend.add)for(let e=0;e<c;e++)h[e].apply(s,m,p,g,u,i,t.MixDirection.mixOut);else{let e=n.timelineMode,a=n.timelineHoldMix,f=n.shortestRotation,x=!f&&n.timelinesRotation.length!=c<<1;x&&(n.timelinesRotation.length=c<<1),n.totalAlpha=0;for(let w=0;w<c;w++){let c,b=h[w],y=t.MixDirection.mixOut,M=0;switch(e[w]){case ht:if(!o&&b instanceof U)continue;c=i,M=u;break;case ct:c=t.MixBlend.setup,M=u;break;case dt:c=i,M=d;break;case ut:c=t.MixBlend.setup,M=d;break;default:c=t.MixBlend.setup;let e=a[w];M=d*Math.max(0,1-e.mixTime/e.mixDuration)}n.totalAlpha+=M,!f&&b instanceof k?this.applyRotateTimeline(b,s,p,M,c,n.timelinesRotation,w<<1,x):b instanceof N?this.applyAttachmentTimeline(b,s,p,c,r&&M>=n.alphaAttachmentThreshold):(l.webkit602BugfixHelper(M,i),o&&b instanceof U&&c==t.MixBlend.setup&&(y=t.MixDirection.mixIn),b.apply(s,m,p,g,M,c,y))}}return e.mixDuration>0&&this.queueEvents(n,f),this.events.length=0,n.nextAnimationLast=f,n.nextTrackLast=n.trackTime,a}applyAttachmentTimeline(e,s,i,n,a){var r=s.slots[e.slotIndex];r.bone.active&&(i<e.frames[0]?n!=t.MixBlend.setup&&n!=t.MixBlend.first||this.setAttachment(s,r,r.data.attachmentName,a):this.setAttachment(s,r,e.attachmentNames[y.search1(e.frames,i)],a),r.attachmentState<=this.unkeyedState&&(r.attachmentState=this.unkeyedState+ft))}setAttachment(t,e,s,i){e.setAttachment(s?t.getAttachment(e.data.index,s):null),i&&(e.attachmentState=this.unkeyedState+pt)}applyRotateTimeline(e,s,i,n,r,o,l,h){if(h&&(o[l]=0),1==n)return void e.apply(s,0,i,null,1,r,t.MixDirection.mixIn);let c=s.bones[e.boneIndex];if(!c.active)return;let d=0,u=0;if(i<e.frames[0])switch(r){case t.MixBlend.setup:c.rotation=c.data.rotation;default:return;case t.MixBlend.first:d=c.rotation,u=c.data.rotation}else d=r==t.MixBlend.setup?c.data.rotation:c.rotation,u=c.data.rotation+e.getCurveValue(i);let m=0,f=u-d;if(f-=360*Math.ceil(f/360-.5),0==f)m=o[l];else{let t=0,e=0;h?(t=0,e=f):(t=o[l],e=o[l+1]);let s=t-t%360;m=f+s;let i=f>=0,n=t>=0;Math.abs(e)<=90&&a.signum(e)!=a.signum(f)&&(Math.abs(t-s)>180?(m+=360*a.signum(t),n=i):0!=s?m-=360*a.signum(t):n=i),n!=i&&(m+=360*a.signum(t)),o[l]=m}o[l+1]=f,c.rotation=d+m*n}queueEvents(t,e){let s=t.animationStart,i=t.animationEnd,n=i-s,a=t.trackLast%n,r=this.events,o=0,l=r.length;for(;o<l;o++){let e=r[o];if(e.time<a)break;e.time>i||this.queue.event(t,e)}let h=!1;if(t.loop)if(0==n)h=!0;else{const e=Math.floor(t.trackTime/n);h=e>0&&e>Math.floor(t.trackLast/n)}else h=e>=i&&t.animationLast<i;for(h&&this.queue.complete(t);o<l;o++){let e=r[o];e.time<s||this.queue.event(t,e)}}clearTracks(){let t=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let t=0,e=this.tracks.length;t<e;t++)this.clearTrack(t);this.tracks.length=0,this.queue.drainDisabled=t,this.queue.drain()}clearTrack(t){if(t>=this.tracks.length)return;let e=this.tracks[t];if(!e)return;this.queue.end(e),this.clearNext(e);let s=e;for(;;){let t=s.mixingFrom;if(!t)break;this.queue.end(t),s.mixingFrom=null,s.mixingTo=null,s=t}this.tracks[e.trackIndex]=null,this.queue.drain()}setCurrent(t,e,s){let i=this.expandToIndex(t);this.tracks[t]=e,e.previous=null,i&&(s&&this.queue.interrupt(i),e.mixingFrom=i,i.mixingTo=e,e.mixTime=0,i.mixingFrom&&i.mixDuration>0&&(e.interruptAlpha*=Math.min(1,i.mixTime/i.mixDuration)),i.timelinesRotation.length=0),this.queue.start(e)}setAnimation(t,e,s=!1){let i=this.data.skeletonData.findAnimation(e);if(!i)throw new Error("Animation not found: "+e);return this.setAnimationWith(t,i,s)}setAnimationWith(t,e,s=!1){if(!e)throw new Error("animation cannot be null.");let i=!0,n=this.expandToIndex(t);n&&(-1==n.nextTrackLast?(this.tracks[t]=n.mixingFrom,this.queue.interrupt(n),this.queue.end(n),this.clearNext(n),n=n.mixingFrom,i=!1):this.clearNext(n));let a=this.trackEntry(t,e,s,n);return this.setCurrent(t,a,i),this.queue.drain(),a}addAnimation(t,e,s=!1,i=0){let n=this.data.skeletonData.findAnimation(e);if(!n)throw new Error("Animation not found: "+e);return this.addAnimationWith(t,n,s,i)}addAnimationWith(t,e,s=!1,i=0){if(!e)throw new Error("animation cannot be null.");let n=this.expandToIndex(t);if(n)for(;n.next;)n=n.next;let a=this.trackEntry(t,e,s,n);return n?(n.next=a,a.previous=n,i<=0&&(i+=n.getTrackComplete()-a.mixDuration)):(this.setCurrent(t,a,!0),this.queue.drain()),a.delay=i,a}setEmptyAnimation(t,e=0){let s=this.setAnimationWith(t,at.emptyAnimation(),!1);return s.mixDuration=e,s.trackEnd=e,s}addEmptyAnimation(t,e=0,s=0){let i=this.addAnimationWith(t,at.emptyAnimation(),!1,s);return s<=0&&(i.delay+=i.mixDuration-e),i.mixDuration=e,i.trackEnd=e,i}setEmptyAnimations(t=0){let e=this.queue.drainDisabled;this.queue.drainDisabled=!0;for(let e=0,s=this.tracks.length;e<s;e++){let s=this.tracks[e];s&&this.setEmptyAnimation(s.trackIndex,t)}this.queue.drainDisabled=e,this.queue.drain()}expandToIndex(t){return t<this.tracks.length?this.tracks[t]:(l.ensureArrayCapacity(this.tracks,t+1,null),this.tracks.length=t+1,null)}trackEntry(e,s,i,n){let a=this.trackEntryPool.obtain();return a.reset(),a.trackIndex=e,a.animation=s,a.loop=i,a.holdPrevious=!1,a.reverse=!1,a.shortestRotation=!1,a.eventThreshold=0,a.alphaAttachmentThreshold=0,a.mixAttachmentThreshold=0,a.mixDrawOrderThreshold=0,a.animationStart=0,a.animationEnd=s.duration,a.animationLast=-1,a.nextAnimationLast=-1,a.delay=0,a.trackTime=0,a.trackLast=-1,a.nextTrackLast=-1,a.trackEnd=Number.MAX_VALUE,a.timeScale=1,a.alpha=1,a.mixTime=0,a.mixDuration=n?this.data.getMix(n.animation,s):0,a.interruptAlpha=1,a.totalAlpha=0,a.mixBlend=t.MixBlend.replace,a}clearNext(t){let e=t.next;for(;e;)this.queue.dispose(e),e=e.next;t.next=null}_animationsChanged(){this.animationsChanged=!1,this.propertyIDs.clear();let e=this.tracks;for(let s=0,i=e.length;s<i;s++){let i=e[s];if(i){for(;i.mixingFrom;)i=i.mixingFrom;do{i.mixingTo&&i.mixBlend==t.MixBlend.add||this.computeHold(i),i=i.mixingTo}while(i)}}}computeHold(t){let e=t.mixingTo,s=t.animation.timelines,i=t.animation.timelines.length,n=t.timelineMode;n.length=i;let a=t.timelineHoldMix;a.length=0;let r=this.propertyIDs;if(e&&e.holdPrevious)for(let t=0;t<i;t++)n[t]=r.addAll(s[t].getPropertyIds())?ut:dt;else t:for(let o=0;o<i;o++){let i=s[o],l=i.getPropertyIds();if(r.addAll(l))if(!e||i instanceof N||i instanceof U||i instanceof q||!e.animation.hasTimeline(l))n[o]=ct;else{for(let s=e.mixingTo;s;s=s.mixingTo)if(!s.animation.hasTimeline(l)){if(t.mixDuration>0){n[o]=mt,a[o]=s;continue t}break}n[o]=ut}else n[o]=ht}}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 e=this.listeners.indexOf(t);e>=0&&this.listeners.splice(e,1)}clearListeners(){this.listeners.length=0}clearListenerNotifications(){this.queue.clear()}}class rt{animation=null;previous=null;next=null;mixingFrom=null;mixingTo=null;listener=null;trackIndex=0;loop=!1;holdPrevious=!1;reverse=!1;shortestRotation=!1;eventThreshold=0;mixAttachmentThreshold=0;alphaAttachmentThreshold=0;mixDrawOrderThreshold=0;animationStart=0;animationEnd=0;animationLast=0;nextAnimationLast=0;delay=0;trackTime=0;trackLast=0;nextTrackLast=0;trackEnd=0;timeScale=0;alpha=0;mixTime=0;_mixDuration=0;interruptAlpha=0;totalAlpha=0;get mixDuration(){return this._mixDuration}set mixDuration(t){this._mixDuration=t}setMixDurationWithDelay(t,e){this._mixDuration=t,null!=this.previous&&e<=0&&(e+=this.previous.getTrackComplete()-t),this.delay=e}mixBlend=t.MixBlend.replace;timelineMode=new Array;timelineHoldMix=new Array;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 0==t?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(0!=t){if(this.loop)return t*(1+(this.trackTime/t|0));if(this.trackTime<t)return t}return this.trackTime}wasApplied(){return-1!=this.nextTrackLast}isNextReady(){return null!=this.next&&this.nextTrackLast-this.next.delay>=0}}class ot{objects=[];drainDisabled=!1;animState;constructor(t){this.animState=t}start(e){this.objects.push(t.EventType.start),this.objects.push(e),this.animState.animationsChanged=!0}interrupt(e){this.objects.push(t.EventType.interrupt),this.objects.push(e)}end(e){this.objects.push(t.EventType.end),this.objects.push(e),this.animState.animationsChanged=!0}dispose(e){this.objects.push(t.EventType.dispose),this.objects.push(e)}complete(e){this.objects.push(t.EventType.complete),this.objects.push(e)}event(e,s){this.objects.push(t.EventType.event),this.objects.push(e),this.objects.push(s)}drain(){if(this.drainDisabled)return;this.drainDisabled=!0;let e=this.objects,s=this.animState.listeners;for(let i=0;i<e.length;i+=2){let n=e[i],a=e[i+1];switch(n){case t.EventType.start:a.listener&&a.listener.start&&a.listener.start(a);for(let t=0;t<s.length;t++){let e=s[t];e.start&&e.start(a)}break;case t.EventType.interrupt:a.listener&&a.listener.interrupt&&a.listener.interrupt(a);for(let t=0;t<s.length;t++){let e=s[t];e.interrupt&&e.interrupt(a)}break;case t.EventType.end:a.listener&&a.listener.end&&a.listener.end(a);for(let t=0;t<s.length;t++){let e=s[t];e.end&&e.end(a)}case t.EventType.dispose:a.listener&&a.listener.dispose&&a.listener.dispose(a);for(let t=0;t<s.length;t++){let e=s[t];e.dispose&&e.dispose(a)}this.animState.trackEntryPool.free(a);break;case t.EventType.complete:a.listener&&a.listener.complete&&a.listener.complete(a);for(let t=0;t<s.length;t++){let e=s[t];e.complete&&e.complete(a)}break;case t.EventType.event:let n=e[2+i++];a.listener&&a.listener.event&&a.listener.event(a,n);for(let t=0;t<s.length;t++){let e=s[t];e.event&&e.event(a,n)}}}this.clear(),this.drainDisabled=!1}clear(){this.objects.length=0}}var lt;t.EventType=void 0,(lt=t.EventType||(t.EventType={}))[lt.start=0]="start",lt[lt.interrupt=1]="interrupt",lt[lt.end=2]="end",lt[lt.dispose=3]="dispose",lt[lt.complete=4]="complete",lt[lt.event=5]="event";const ht=0,ct=1,dt=2,ut=3,mt=4,ft=1,pt=2;class gt{skeletonData;animationToMixTime={};defaultMix=0;constructor(t){if(!t)throw new Error("skeletonData cannot be null.");this.skeletonData=t}setMix(t,e,s){let i=this.skeletonData.findAnimation(t);if(!i)throw new Error("Animation not found: "+t);let n=this.skeletonData.findAnimation(e);if(!n)throw new Error("Animation not found: "+e);this.setMixWith(i,n,s)}setMixWith(t,e,s){if(!t)throw new Error("from cannot be null.");if(!e)throw new Error("to cannot be null.");let i=t.name+"."+e.name;this.animationToMixTime[i]=s}getMix(t,e){let s=t.name+"."+e.name,i=this.animationToMixTime[s];return void 0===i?this.defaultMix:i}}class xt extends u{color=new n(1,1,1,1);constructor(t){super(t)}copy(){let t=new xt(this.name);return this.copyTo(t),t.color.setFromColor(this.color),t}}class wt extends u{endSlot=null;color=new n(.2275,.2275,.8078,1);constructor(t){super(t)}copy(){let t=new wt(this.name);return this.copyTo(t),t.endSlot=this.endSlot,t.color.setFromColor(this.color),t}}class bt{_image;constructor(t){this._image=t}getImage(){return this._image}}var yt,Mt,St,vt,kt,It,At,Bt,Tt;t.TextureFilter=void 0,(yt=t.TextureFilter||(t.TextureFilter={}))[yt.Nearest=9728]="Nearest",yt[yt.Linear=9729]="Linear",yt[yt.MipMap=9987]="MipMap",yt[yt.MipMapNearestNearest=9984]="MipMapNearestNearest",yt[yt.MipMapLinearNearest=9985]="MipMapLinearNearest",yt[yt.MipMapNearestLinear=9986]="MipMapNearestLinear",yt[yt.MipMapLinearLinear=9987]="MipMapLinearLinear",t.TextureWrap=void 0,(Mt=t.TextureWrap||(t.TextureWrap={}))[Mt.MirroredRepeat=33648]="MirroredRepeat",Mt[Mt.ClampToEdge=33071]="ClampToEdge",Mt[Mt.Repeat=10497]="Repeat";class Ct{texture;u=0;v=0;u2=0;v2=0;width=0;height=0;degrees=0;offsetX=0;offsetY=0;originalWidth=0;originalHeight=0}class Ft{pages=new Array;regions=new Array;constructor(e){let s=new Et(e),i=new Array(4),n={size:t=>{t.width=parseInt(i[1]),t.height=parseInt(i[2])},format:()=>{},filter:e=>{e.minFilter=l.enumValue(t.TextureFilter,i[1]),e.magFilter=l.enumValue(t.TextureFilter,i[2])},repeat:e=>{-1!=i[1].indexOf("x")&&(e.uWrap=t.TextureWrap.Repeat),-1!=i[1].indexOf("y")&&(e.vWrap=t.TextureWrap.Repeat)},pma:t=>{t.pma="true"==i[1]}};var a={xy:t=>{t.x=parseInt(i[1]),t.y=parseInt(i[2])},size:t=>{t.width=parseInt(i[1]),t.height=parseInt(i[2])},bounds:t=>{t.x=parseInt(i[1]),t.y=parseInt(i[2]),t.width=parseInt(i[3]),t.height=parseInt(i[4])},offset:t=>{t.offsetX=parseInt(i[1]),t.offsetY=parseInt(i[2])},orig:t=>{t.originalWidth=parseInt(i[1]),t.originalHeight=parseInt(i[2])},offsets:t=>{t.offsetX=parseInt(i[1]),t.offsetY=parseInt(i[2]),t.originalWidth=parseInt(i[3]),t.originalHeight=parseInt(i[4])},rotate:t=>{let e=i[1];"true"==e?t.degrees=90:"false"!=e&&(t.degrees=parseInt(e))},index:t=>{t.index=parseInt(i[1])}};let r=s.readLine();for(;r&&0==r.trim().length;)r=s.readLine();for(;r&&0!=r.trim().length&&0!=s.readEntry(i,r);)r=s.readLine();let o=null,h=null,c=null;for(;null!==r;)if(0==r.trim().length)o=null,r=s.readLine();else if(o){let t=new Rt(o,r);for(;;){let e=s.readEntry(i,r=s.readLine());if(0==e)break;let n=a[i[0]];if(n)n(t);else{h||(h=[]),c||(c=[]),h.push(i[0]);let t=[];for(let s=0;s<e;s++)t.push(parseInt(i[s+1]));c.push(t)}}0==t.originalWidth&&0==t.originalHeight&&(t.originalWidth=t.width,t.originalHeight=t.height),h&&h.length>0&&c&&c.length>0&&(t.names=h,t.values=c,h=null,c=null),t.u=t.x/o.width,t.v=t.y/o.height,90==t.degrees?(t.u2=(t.x+t.height)/o.width,t.v2=(t.y+t.width)/o.height):(t.u2=(t.x+t.width)/o.width,t.v2=(t.y+t.height)/o.height),this.regions.push(t)}else{for(o=new Yt(r.trim());0!=s.readEntry(i,r=s.readLine());){let t=n[i[0]];t&&t(o)}this.pages.push(o)}}findRegion(t){for(let e=0;e<this.regions.length;e++)if(this.regions[e].name==t)return this.regions[e];return null}setTextures(t,e=""){for(let s of this.pages)s.setTexture(t.get(e+s.name))}dispose(){for(let t=0;t<this.pages.length;t++)this.pages[t].texture?.dispose()}}class Et{lines;index=0;constructor(t){this.lines=t.split(/\r\n|\r|\n/)}readLine(){return this.index>=this.lines.length?null:this.lines[this.index++]}readEntry(t,e){if(!e)return 0;if(0==(e=e.trim()).length)return 0;let s=e.indexOf(":");if(-1==s)return 0;t[0]=e.substr(0,s).trim();for(let i=1,n=s+1;;i++){let s=e.indexOf(",",n);if(-1==s)return t[i]=e.substr(n).trim(),i;if(t[i]=e.substr(n,s-n).trim(),n=s+1,4==i)return 4}}}class Yt{name;minFilter=t.TextureFilter.Nearest;magFilter=t.TextureFilter.Nearest;uWrap=t.TextureWrap.ClampToEdge;vWrap=t.TextureWrap.ClampToEdge;texture=null;width=0;height=0;pma=!1;regions=new Array;constructor(t){this.name=t}setTexture(t){this.texture=t,t.setFilters(this.minFilter,this.magFilter),t.setWraps(this.uWrap,this.vWrap);for(let e of this.regions)e.texture=t}}class Rt extends Ct{page;name;x=0;y=0;offsetX=0;offsetY=0;originalWidth=0;originalHeight=0;index=0;degrees=0;names=null;values=null;constructor(t,e){super(),this.page=t,this.name=e,t.regions.push(this)}}class Pt extends u{region=null;path;regionUVs=[];uvs=[];triangles=[];color=new n(1,1,1,1);width=0;height=0;hullLength=0;edges=[];parentMesh=null;sequence=null;tempColor=new n(0,0,0,0);constructor(t,e){super(t),this.path=e}updateRegion(){if(!this.region)throw new Error("Region not set.");let t=this.regionUVs;this.uvs&&this.uvs.length==t.length||(this.uvs=l.newFloatArray(t.length));let e=this.uvs,s=this.uvs.length,i=this.region.u,n=this.region.v,a=0,r=0;if(this.region instanceof Rt){let o=this.region,l=o.page,h=l.width,c=l.height;switch(o.degrees){case 90:i-=(o.originalHeight-o.offsetY-o.height)/h,n-=(o.originalWidth-o.offsetX-o.width)/c,a=o.originalHeight/h,r=o.originalWidth/c;for(let o=0;o<s;o+=2)e[o]=i+t[o+1]*a,e[o+1]=n+(1-t[o])*r;return;case 180:i-=(o.originalWidth-o.offsetX-o.width)/h,n-=o.offsetY/c,a=o.originalWidth/h,r=o.originalHeight/c;for(let o=0;o<s;o+=2)e[o]=i+(1-t[o])*a,e[o+1]=n+(1-t[o+1])*r;return;case 270:i-=o.offsetY/h,n-=o.offsetX/c,a=o.originalHeight/h,r=o.originalWidth/c;for(let o=0;o<s;o+=2)e[o]=i+(1-t[o+1])*a,e[o+1]=n+t[o]*r;return}i-=o.offsetX/h,n-=(o.originalHeight-o.offsetY-o.height)/c,a=o.originalWidth/h,r=o.originalHeight/c}else this.region?(a=this.region.u2-i,r=this.region.v2-n):(i=n=0,a=r=1);for(let o=0;o<s;o+=2)e[o]=i+t[o]*a,e[o+1]=n+t[o+1]*r}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 Pt(this.name,this.path);return t.region=this.region,t.color.setFromColor(this.color),this.copyTo(t),t.regionUVs=new Array(this.regionUVs.length),l.arrayCopy(this.regionUVs,0,t.regionUVs,0,this.regionUVs.length),t.uvs=new Array(this.uvs.length),l.arrayCopy(this.uvs,0,t.uvs,0,this.uvs.length),t.triangles=new Array(this.triangles.length),l.arrayCopy(this.triangles,0,t.triangles,0,this.triangles.length),t.hullLength=this.hullLength,t.sequence=null!=this.sequence?this.sequence.copy():null,this.edges&&(t.edges=new Array(this.edges.length),l.arrayCopy(this.edges,0,t.edges,0,this.edges.length)),t.width=this.width,t.height=this.height,t}computeWorldVertices(t,e,s,i,n,a){null!=this.sequence&&this.sequence.apply(t,this),super.computeWorldVertices(t,e,s,i,n,a)}newLinkedMesh(){let t=new Pt(this.name,this.path);return t.region=this.region,t.color.setFromColor(this.color),t.timelineAttachment=this.timelineAttachment,t.setParentMesh(this.parentMesh?this.parentMesh:this),null!=t.region&&t.updateRegion(),t}}class _t extends u{lengths=[];closed=!1;constantSpeed=!1;color=new n(1,1,1,1);constructor(t){super(t)}copy(){let t=new _t(this.name);return this.copyTo(t),t.lengths=new Array(this.lengths.length),l.arrayCopy(this.lengths,0,t.lengths,0,this.lengths.length),t.closed=closed,t.constantSpeed=this.constantSpeed,t.color.setFromColor(this.color),t}}class Xt extends u{x=0;y=0;rotation=0;color=new n(.38,.94,0,1);constructor(t){super(t)}computeWorldPosition(t,e){return e.x=this.x*t.a+this.y*t.b+t.worldX,e.y=this.x*t.c+this.y*t.d+t.worldY,e}computeWorldRotation(t){const e=this.rotation*a.degRad,s=Math.cos(e),i=Math.sin(e),n=s*t.a+i*t.b,r=s*t.c+i*t.d;return a.atan2Deg(r,n)}copy(){let t=new Xt(this.name);return t.x=this.x,t.y=this.y,t.rotation=this.rotation,t.color.setFromColor(this.color),t}}class Vt extends d{x=0;y=0;scaleX=1;scaleY=1;rotation=0;width=0;height=0;color=new n(1,1,1,1);path;region=null;sequence=null;offset=l.newFloatArray(8);uvs=l.newFloatArray(8);tempColor=new n(1,1,1,1);constructor(t,e){super(t),this.path=e}updateRegion(){if(!this.region)throw new Error("Region not set.");let t=this.region,e=this.uvs;if(null==t)return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e[4]=1,e[5]=1,e[6]=1,void(e[7]=0);let s=this.width/this.region.originalWidth*this.scaleX,i=this.height/this.region.originalHeight*this.scaleY,n=-this.width/2*this.scaleX+this.region.offsetX*s,r=-this.height/2*this.scaleY+this.region.offsetY*i,o=n+this.region.width*s,l=r+this.region.height*i,h=this.rotation*a.degRad,c=Math.cos(h),d=Math.sin(h),u=this.x,m=this.y,f=n*c+u,p=n*d,g=r*c+m,x=r*d,w=o*c+u,b=o*d,y=l*c+m,M=l*d,S=this.offset;S[0]=f-x,S[1]=g+p,S[2]=f-M,S[3]=y+p,S[4]=w-M,S[5]=y+b,S[6]=w-x,S[7]=g+b,90==t.degrees?(e[0]=t.u2,e[1]=t.v2,e[2]=t.u,e[3]=t.v2,e[4]=t.u,e[5]=t.v,e[6]=t.u2,e[7]=t.v):(e[0]=t.u,e[1]=t.v2,e[2]=t.u,e[3]=t.v,e[4]=t.u2,e[5]=t.v,e[6]=t.u2,e[7]=t.v2)}computeWorldVertices(t,e,s,i){null!=this.sequence&&this.sequence.apply(t,this);let n=t.bone,a=this.offset,r=n.worldX,o=n.worldY,l=n.a,h=n.b,c=n.c,d=n.d,u=0,m=0;u=a[0],m=a[1],e[s]=u*l+m*h+r,e[s+1]=u*c+m*d+o,s+=i,u=a[2],m=a[3],e[s]=u*l+m*h+r,e[s+1]=u*c+m*d+o,s+=i,u=a[4],m=a[5],e[s]=u*l+m*h+r,e[s+1]=u*c+m*d+o,s+=i,u=a[6],m=a[7],e[s]=u*l+m*h+r,e[s+1]=u*c+m*d+o}copy(){let t=new Vt(this.name,this.path);return t.region=this.region,t.x=this.x,t.y=this.y,t.scaleX=this.scaleX,t.scaleY=this.scaleY,t.rotation=this.rotation,t.width=this.width,t.height=this.height,l.arrayCopy(this.uvs,0,t.uvs,0,8),l.arrayCopy(this.offset,0,t.offset,0,8),t.color.setFromColor(this.color),t.sequence=null!=this.sequence?this.sequence.copy():null,t}static X1=0;static Y1=1;static C1R=2;static C1G=3;static C1B=4;static C1A=5;static U1=6;static V1=7;static X2=8;static Y2=9;static C2R=10;static C2G=11;static C2B=12;static C2A=13;static U2=14;static V2=15;static X3=16;static Y3=17;static C3R=18;static C3G=19;static C3B=20;static C3A=21;static U3=22;static V3=23;static X4=24;static Y4=25;static C4R=26;static C4G=27;static C4B=28;static C4A=29;static U4=30;static V4=31}class Dt{atlas;constructor(t){this.atlas=t}loadSequence(t,e,s){let i=s.regions;for(let n=0,a=i.length;n<a;n++){let a=s.getPath(e,n),r=this.atlas.findRegion(a);if(null==r)throw new Error("Region not found in atlas: "+a+" (sequence: "+t+")");i[n]=r}}newRegionAttachment(t,e,s,i){let n=new Vt(e,s);if(null!=i)this.loadSequence(e,s,i);else{let t=this.atlas.findRegion(s);if(!t)throw new Error("Region not found in atlas: "+s+" (region attachment: "+e+")");n.region=t}return n}newMeshAttachment(t,e,s,i){let n=new Pt(e,s);if(null!=i)this.loadSequence(e,s,i);else{let t=this.atlas.findRegion(s);if(!t)throw new Error("Region not found in atlas: "+s+" (mesh attachment: "+e+")");n.region=t}return n}newBoundingBoxAttachment(t,e){return new xt(e)}newPathAttachment(t,e){return new _t(e)}newPointAttachment(t,e){return new Xt(e)}newClippingAttachment(t,e){return new wt(e)}}class Ot{index=0;name;parent=null;length=0;x=0;y=0;rotation=0;scaleX=1;scaleY=1;shearX=0;shearY=0;inherit=t.Inherit.Normal;skinRequired=!1;color=new n;icon;visible=!1;constructor(t,e,s){if(t<0)throw new Error("index must be >= 0.");if(!e)throw new Error("name cannot be null.");this.index=t,this.name=e,this.parent=s}}t.Inherit=void 0,(St=t.Inherit||(t.Inherit={}))[St.Normal=0]="Normal",St[St.OnlyTranslation=1]="OnlyTranslation",St[St.NoRotationOrReflection=2]="NoRotationOrReflection",St[St.NoScale=3]="NoScale",St[St.NoScaleOrReflection=4]="NoScaleOrReflection";class Nt{data;skeleton;parent=null;children=new Array;x=0;y=0;rotation=0;scaleX=0;scaleY=0;shearX=0;shearY=0;ax=0;ay=0;arotation=0;ascaleX=0;ascaleY=0;ashearX=0;ashearY=0;a=0;b=0;c=0;d=0;worldY=0;worldX=0;inherit=t.Inherit.Normal;sorted=!1;active=!1;constructor(t,e,s){if(!t)throw new Error("data cannot be null.");if(!e)throw new Error("skeleton cannot be null.");this.data=t,this.skeleton=e,this.parent=s,this.setToSetupPose()}isActive(){return this.active}update(t){this.updateWorldTransformWith(this.ax,this.ay,this.arotation,this.ascaleX,this.ascaleY,this.ashearX,this.ashearY)}updateWorldTransform(){this.updateWorldTransformWith(this.x,this.y,this.rotation,this.scaleX,this.scaleY,this.shearX,this.shearY)}updateWorldTransformWith(e,s,i,n,r,o,l){this.ax=e,this.ay=s,this.arotation=i,this.ascaleX=n,this.ascaleY=r,this.ashearX=o,this.ashearY=l;let h=this.parent;if(!h){let t=this.skeleton;const h=t.scaleX,c=t.scaleY,d=(i+o)*a.degRad,u=(i+90+l)*a.degRad;return this.a=Math.cos(d)*n*h,this.b=Math.cos(u)*r*h,this.c=Math.sin(d)*n*c,this.d=Math.sin(u)*r*c,this.worldX=e*h+t.x,void(this.worldY=s*c+t.y)}let c=h.a,d=h.b,u=h.c,m=h.d;switch(this.worldX=c*e+d*s+h.worldX,this.worldY=u*e+m*s+h.worldY,this.inherit){case t.Inherit.Normal:{const t=(i+o)*a.degRad,e=(i+90+l)*a.degRad,s=Math.cos(t)*n,h=Math.cos(e)*r,f=Math.sin(t)*n,p=Math.sin(e)*r;return this.a=c*s+d*f,this.b=c*h+d*p,this.c=u*s+m*f,void(this.d=u*h+m*p)}case t.Inherit.OnlyTranslation:{const t=(i+o)*a.degRad,e=(i+90+l)*a.degRad;this.a=Math.cos(t)*n,this.b=Math.cos(e)*r,this.c=Math.sin(t)*n,this.d=Math.sin(e)*r;break}case t.Inherit.NoRotationOrReflection:{let t=1/this.skeleton.scaleX,e=1/this.skeleton.scaleY;c*=t,u*=e;let s=c*c+u*u,h=0;s>1e-4?(s=Math.abs(c*m*e-d*t*u)/s,d=u*s,m=c*s,h=Math.atan2(u,c)*a.radDeg):(c=0,u=0,h=90-Math.atan2(m,d)*a.radDeg);const f=(i+o-h)*a.degRad,p=(i+l-h+90)*a.degRad,g=Math.cos(f)*n,x=Math.cos(p)*r,w=Math.sin(f)*n,b=Math.sin(p)*r;this.a=c*g-d*w,this.b=c*x-d*b,this.c=u*g+m*w,this.d=u*x+m*b;break}case t.Inherit.NoScale:case t.Inherit.NoScaleOrReflection:{i*=a.degRad;const e=Math.cos(i),s=Math.sin(i);let h=(c*e+d*s)/this.skeleton.scaleX,f=(u*e+m*s)/this.skeleton.scaleY,p=Math.sqrt(h*h+f*f);p>1e-5&&(p=1/p),h*=p,f*=p,p=Math.sqrt(h*h+f*f),this.inherit==t.Inherit.NoScale&&c*m-d*u<0!=(this.skeleton.scaleX<0!=this.skeleton.scaleY<0)&&(p=-p),i=Math.PI/2+Math.atan2(f,h);const g=Math.cos(i)*p,x=Math.sin(i)*p;o*=a.degRad,l=(90+l)*a.degRad;const w=Math.cos(o)*n,b=Math.cos(l)*r,y=Math.sin(o)*n,M=Math.sin(l)*r;this.a=h*w+g*y,this.b=h*b+g*M,this.c=f*w+x*y,this.d=f*b+x*M;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,this.inherit=t.inherit}updateAppliedTransform(){let e=this.parent;if(!e)return this.ax=this.worldX-this.skeleton.x,this.ay=this.worldY-this.skeleton.y,this.arotation=Math.atan2(this.c,this.a)*a.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,void(this.ashearY=Math.atan2(this.a*this.b+this.c*this.d,this.a*this.d-this.b*this.c)*a.radDeg);let s,i,n,r,o=e.a,l=e.b,h=e.c,c=e.d,d=1/(o*c-l*h),u=c*d,m=l*d,f=h*d,p=o*d,g=this.worldX-e.worldX,x=this.worldY-e.worldY;if(this.ax=g*u-x*m,this.ay=x*p-g*f,this.inherit==t.Inherit.OnlyTranslation)s=this.a,i=this.b,n=this.c,r=this.d;else{switch(this.inherit){case t.Inherit.NoRotationOrReflection:{let t=Math.abs(o*c-l*h)/(o*o+h*h);l=-h*this.skeleton.scaleX*t/this.skeleton.scaleY,c=o*this.skeleton.scaleY*t/this.skeleton.scaleX,d=1/(o*c-l*h),u=c*d,m=l*d;break}case t.Inherit.NoScale:case t.Inherit.NoScaleOrReflection:let e=a.cosDeg(this.rotation),s=a.sinDeg(this.rotation);o=(o*e+l*s)/this.skeleton.scaleX,h=(h*e+c*s)/this.skeleton.scaleY;let i=Math.sqrt(o*o+h*h);i>1e-5&&(i=1/i),o*=i,h*=i,i=Math.sqrt(o*o+h*h),this.inherit==t.Inherit.NoScale&&d<0!=(this.skeleton.scaleX<0!=this.skeleton.scaleY<0)&&(i=-i);let n=a.PI/2+Math.atan2(h,o);l=Math.cos(n)*i,c=Math.sin(n)*i,d=1/(o*c-l*h),u=c*d,m=l*d,f=h*d,p=o*d}s=u*this.a-m*this.c,i=u*this.b-m*this.d,n=p*this.c-f*this.a,r=p*this.d-f*this.b}if(this.ashearX=0,this.ascaleX=Math.sqrt(s*s+n*n),this.ascaleX>1e-4){let t=s*r-i*n;this.ascaleY=t/this.ascaleX,this.ashearY=-Math.atan2(s*i+n*r,t)*a.radDeg,this.arotation=Math.atan2(n,s)*a.radDeg}else this.ascaleX=0,this.ascaleY=Math.sqrt(i*i+r*r),this.ashearY=0,this.arotation=90-Math.atan2(r,i)*a.radDeg}getWorldRotationX(){return Math.atan2(this.c,this.a)*a.radDeg}getWorldRotationY(){return Math.atan2(this.d,this.b)*a.radDeg}getWorldScaleX(){return Math.sqrt(this.a*this.a+this.c*this.c)}getWorldScaleY(){return Math.sqrt(this.b*this.b+this.d*this.d)}worldToLocal(t){let e=1/(this.a*this.d-this.b*this.c),s=t.x-this.worldX,i=t.y-this.worldY;return t.x=s*this.d*e-i*this.b*e,t.y=i*this.a*e-s*this.c*e,t}localToWorld(t){let e=t.x,s=t.y;return t.x=e*this.a+s*this.b+this.worldX,t.y=e*this.c+s*this.d+this.worldY,t}worldToParent(t){if(null==t)throw new Error("world cannot be null.");return null==this.parent?t:this.parent.worldToLocal(t)}parentToWorld(t){if(null==t)throw new Error("world cannot be null.");return null==this.parent?t:this.parent.localToWorld(t)}worldToLocalRotation(t){let e=a.sinDeg(t),s=a.cosDeg(t);return Math.atan2(this.a*e-this.c*s,this.d*s-this.b*e)*a.radDeg+this.rotation-this.shearX}localToWorldRotation(t){t-=this.rotation-this.shearX;let e=a.sinDeg(t),s=a.cosDeg(t);return Math.atan2(s*this.c+e*this.d,s*this.a+e*this.b)*a.radDeg}rotateWorld(t){t*=a.degRad;const e=Math.sin(t),s=Math.cos(t),i=this.a,n=this.b;this.a=s*i-e*this.c,this.b=s*n-e*this.d,this.c=e*i+s*this.c,this.d=e*n+s*this.d}}class Lt{name;order;skinRequired;constructor(t,e,s){this.name=t,this.order=e,this.skinRequired=s}}class qt{callbacks={};rawDataUris={};dataUriToString(t){if(!t.startsWith("data:"))throw new Error("Not a data URI.");let e=t.indexOf("base64,");return-1!=e?(e+=7,atob(t.substr(e))):t.substr(t.indexOf(",")+1)}base64ToUint8Array(t){for(var e=window.atob(t),s=e.length,i=new Uint8Array(s),n=0;n<s;n++)i[n]=e.charCodeAt(n);return i}dataUriToUint8Array(t){if(!t.startsWith("data:"))throw new Error("Not a data URI.");let e=t.indexOf("base64,");if(-1==e)throw new Error("Not a binary data URI.");return e+=7,this.base64ToUint8Array(t.substr(e))}downloadText(t,e,s){if(this.start(t,e,s))return;if(this.rawDataUris[t]){try{let e=this.rawDataUris[t];this.finish(t,200,this.dataUriToString(e))}catch(e){this.finish(t,400,JSON.stringify(e))}return}let i=new XMLHttpRequest;i.overrideMimeType("text/html"),i.open("GET",t,!0);let n=()=>{this.finish(t,i.status,i.responseText)};i.onload=n,i.onerror=n,i.send()}downloadJson(t,e,s){this.downloadText(t,(t=>{e(JSON.parse(t))}),s)}downloadBinary(t,e,s){if(this.start(t,e,s))return;if(this.rawDataUris[t]){try{let e=this.rawDataUris[t];this.finish(t,200,this.dataUriToUint8Array(e))}catch(e){this.finish(t,400,JSON.stringify(e))}return}let i=new XMLHttpRequest;i.open("GET",t,!0),i.responseType="arraybuffer";let n=()=>{this.finish(t,i.status,i.response)};i.onload=()=>{200==i.status||0==i.status?this.finish(t,200,new Uint8Array(i.response)):n()},i.onerror=n,i.send()}start(t,e,s){let i=this.callbacks[t];try{if(i)return!0;this.callbacks[t]=i=[]}finally{i.push(e,s)}}finish(t,e,s){let i=this.callbacks[t];delete this.callbacks[t];let n=200==e||0==e?[s]:[e,s];for(let t=n.length-1,e=i.length;t<e;t+=2)i[t].apply(null,n)}}class Ut{data;intValue=0;floatValue=0;stringValue=null;time=0;volume=0;balance=0;constructor(t,e){if(!e)throw new Error("data cannot be null.");this.time=t,this.data=e}}class Wt{name;intValue=0;floatValue=0;stringValue=null;audioPath=null;volume=0;balance=0;constructor(t){this.name=t}}class zt{data;bones;target;bendDirection=0;compress=!1;stretch=!1;mix=1;softness=0;active=!1;constructor(t,e){if(!t)throw new Error("data cannot be null.");if(!e)throw new Error("skeleton cannot be null.");this.data=t,this.bones=new Array;for(let s=0;s<t.bones.length;s++){let i=e.findBone(t.bones[s].name);if(!i)throw new Error(`Couldn't find bone ${t.bones[s].name}`);this.bones.push(i)}let s=e.findBone(t.target.name);if(!s)throw new Error(`Couldn't find bone ${t.target.name}`);this.target=s,this.mix=t.mix,this.softness=t.softness,this.bendDirection=t.bendDirection,this.compress=t.compress,this.stretch=t.stretch}isActive(){return this.active}setToSetupPose(){const t=this.data;this.mix=t.mix,this.softness=t.softness,this.bendDirection=t.bendDirection,this.compress=t.compress,this.stretch=t.stretch}update(t){if(0==this.mix)return;let e=this.target,s=this.bones;switch(s.length){case 1:this.apply1(s[0],e.worldX,e.worldY,this.compress,this.stretch,this.data.uniform,this.mix);break;case 2:this.apply2(s[0],s[1],e.worldX,e.worldY,this.bendDirection,this.stretch,this.data.uniform,this.softness,this.mix)}}apply1(e,s,i,n,r,o,l){let h=e.parent;if(!h)throw new Error("IK bone must have parent.");let c=h.a,d=h.b,u=h.c,m=h.d,f=-e.ashearX-e.arotation,p=0,g=0;switch(e.inherit){case t.Inherit.OnlyTranslation:p=(s-e.worldX)*a.signum(e.skeleton.scaleX),g=(i-e.worldY)*a.signum(e.skeleton.scaleY);break;case t.Inherit.NoRotationOrReflection:let n=Math.abs(c*m-d*u)/Math.max(1e-4,c*c+u*u),r=c/e.skeleton.scaleX,o=u/e.skeleton.scaleY;d=-o*n*e.skeleton.scaleX,m=r*n*e.skeleton.scaleY,f+=Math.atan2(o,r)*a.radDeg;default:let l=s-h.worldX,x=i-h.worldY,w=c*m-d*u;Math.abs(w)<=1e-4?(p=0,g=0):(p=(l*m-x*d)/w-e.ax,g=(x*c-l*u)/w-e.ay)}f+=Math.atan2(g,p)*a.radDeg,e.ascaleX<0&&(f+=180),f>180?f-=360:f<-180&&(f+=360);let x=e.ascaleX,w=e.ascaleY;if(n||r){switch(e.inherit){case t.Inherit.NoScale:case t.Inherit.NoScaleOrReflection:p=s-e.worldX,g=i-e.worldY}const a=e.data.length*x;if(a>1e-4){const t=p*p+g*g;if(n&&t<a*a||r&&t>a*a){const e=(Math.sqrt(t)/a-1)*l+1;x*=e,o&&(w*=e)}}}e.updateWorldTransformWith(e.ax,e.ay,e.arotation+f*l,x,w,e.ashearX,e.ashearY)}apply2(e,s,i,n,r,o,l,h,c){if(e.inherit!=t.Inherit.Normal||s.inherit!=t.Inherit.Normal)return;let d=e.ax,u=e.ay,m=e.ascaleX,f=e.ascaleY,p=m,g=f,x=s.ascaleX,w=0,b=0,y=0;m<0?(m=-m,w=180,y=-1):(w=0,y=1),f<0&&(f=-f,y=-y),x<0?(x=-x,b=180):b=0;let M=s.ax,S=0,v=0,k=0,I=e.a,A=e.b,B=e.c,T=e.d,C=Math.abs(m-f)<=1e-4;!C||o?(S=0,v=I*M+e.worldX,k=B*M+e.worldY):(S=s.ay,v=I*M+A*S+e.worldX,k=B*M+T*S+e.worldY);let F=e.parent;if(!F)throw new Error("IK parent must itself have a parent.");I=F.a,A=F.b,B=F.c,T=F.d;let E=I*T-A*B,Y=v-F.worldX,R=k-F.worldY;E=Math.abs(E)<=1e-4?0:1/E;let P,_,X=(Y*T-R*A)*E-d,V=(R*I-Y*B)*E-u,D=Math.sqrt(X*X+V*V),O=s.data.length*x;if(D<1e-4)return this.apply1(e,i,n,!1,o,!1,c),void s.updateWorldTransformWith(M,S,0,s.ascaleX,s.ascaleY,s.ashearX,s.ashearY);Y=i-F.worldX,R=n-F.worldY;let N=(Y*T-R*A)*E-d,L=(R*I-Y*B)*E-u,q=N*N+L*L;if(0!=h){h*=m*(x+1)*.5;let t=Math.sqrt(q),e=t-D-O*m+h;if(e>0){let s=Math.min(1,e/(2*h))-1;s=(e-h*(1-s*s))/t,N-=s*N,L-=s*L,q=N*N+L*L}}t:if(C){O*=m;let t=(q-D*D-O*O)/(2*D*O);t<-1?(t=-1,_=Math.PI*r):t>1?(t=1,_=0,o&&(I=(Math.sqrt(q)/(D+O)-1)*c+1,p*=I,l&&(g*=I))):_=Math.acos(t)*r,I=D+O*t,A=O*Math.sin(_),P=Math.atan2(L*I-N*A,N*I+L*A)}else{I=m*O,A=f*O;let t=I*I,e=A*A,s=Math.atan2(L,N);B=e*D*D+t*q-t*e;let i=-2*e*D,n=e-t;if(T=i*i-4*n*B,T>=0){let t=Math.sqrt(T);i<0&&(t=-t),t=.5*-(i+t);let e=t/n,a=B/t,o=Math.abs(e)<Math.abs(a)?e:a;if(e=q-o*o,e>=0){R=Math.sqrt(e)*r,P=s-Math.atan2(R,o),_=Math.atan2(R/f,(o-D)/m);break t}}let o=a.PI,l=D-I,h=l*l,c=0,d=0,u=D+I,p=u*u,g=0;B=-I*D/(t-e),B>=-1&&B<=1&&(B=Math.acos(B),Y=I*Math.cos(B)+D,R=A*Math.sin(B),T=Y*Y+R*R,T<h&&(o=B,h=T,l=Y,c=R),T>p&&(d=B,p=T,u=Y,g=R)),q<=.5*(h+p)?(P=s-Math.atan2(c*r,l),_=o*r):(P=s-Math.atan2(g*r,u),_=d*r)}let U=Math.atan2(S,M)*y,W=e.arotation;P=(P-U)*a.radDeg+w-W,P>180?P-=360:P<-180&&(P+=360),e.updateWorldTransformWith(d,u,W+P*c,p,g,0,0),W=s.arotation,_=((_+U)*a.radDeg-s.ashearX)*y+b-W,_>180?_-=360:_<-180&&(_+=360),s.updateWorldTransformWith(M,S,W+_*c,s.ascaleX,s.ascaleY,s.ashearX,s.ashearY)}}class Gt extends Lt{bones=new Array;_target=null;set target(t){this._target=t}get target(){if(this._target)return this._target;throw new Error("BoneData not set.")}bendDirection=0;compress=!1;stretch=!1;uniform=!1;mix=0;softness=0;constructor(t){super(t,0,!1)}}class $t extends Lt{bones=new Array;_target=null;set target(t){this._target=t}get target(){if(this._target)return this._target;throw new Error("SlotData not set.")}positionMode=t.PositionMode.Fixed;spacingMode=t.SpacingMode.Fixed;rotateMode=t.RotateMode.Chain;offsetRotation=0;position=0;spacing=0;mixRotate=0;mixX=0;mixY=0;constructor(t){super(t,0,!1)}}t.PositionMode=void 0,(vt=t.PositionMode||(t.PositionMode={}))[vt.Fixed=0]="Fixed",vt[vt.Percent=1]="Percent",t.SpacingMode=void 0,(kt=t.SpacingMode||(t.SpacingMode={}))[kt.Length=0]="Length",kt[kt.Fixed=1]="Fixed",kt[kt.Percent=2]="Percent",kt[kt.Proportional=3]="Proportional",t.RotateMode=void 0,(It=t.RotateMode||(t.RotateMode={}))[It.Tangent=0]="Tangent",It[It.Chain=1]="Chain",It[It.ChainScale=2]="ChainScale";class jt{static NONE=-1;static BEFORE=-2;static AFTER=-3;static epsilon=1e-5;data;bones;target;position=0;spacing=0;mixRotate=0;mixX=0;mixY=0;spaces=new Array;positions=new Array;world=new Array;curves=new Array;lengths=new Array;segments=new Array;active=!1;constructor(t,e){if(!t)throw new Error("data cannot be null.");if(!e)throw new Error("skeleton cannot be null.");this.data=t,this.bones=new Array;for(let s=0,i=t.bones.length;s<i;s++){let i=e.findBone(t.bones[s].name);if(!i)throw new Error(`Couldn't find bone ${t.bones[s].name}.`);this.bones.push(i)}let s=e.findSlot(t.target.name);if(!s)throw new Error(`Couldn't find target bone ${t.target.name}`);this.target=s,this.position=t.position,this.spacing=t.spacing,this.mixRotate=t.mixRotate,this.mixX=t.mixX,this.mixY=t.mixY}isActive(){return this.active}setToSetupPose(){const t=this.data;this.position=t.position,this.spacing=t.spacing,this.mixRotate=t.mixRotate,this.mixX=t.mixX,this.mixY=t.mixY}update(e){let s=this.target.getAttachment();if(!(s instanceof _t))return;let i=this.mixRotate,n=this.mixX,r=this.mixY;if(0==i&&0==n&&0==r)return;let o=this.data,h=o.rotateMode==t.RotateMode.Tangent,c=o.rotateMode==t.RotateMode.ChainScale,d=this.bones,u=d.length,m=h?u:u+1,f=l.setArraySize(this.spaces,m),p=c?this.lengths=l.setArraySize(this.lengths,u):[],g=this.spacing;switch(o.spacingMode){case t.SpacingMode.Percent:if(c)for(let t=0,e=m-1;t<e;t++){let e=d[t],s=e.data.length,i=s*e.a,n=s*e.c;p[t]=Math.sqrt(i*i+n*n)}l.arrayFill(f,1,m,g);break;case t.SpacingMode.Proportional:let e=0;for(let t=0,s=m-1;t<s;){let s=d[t],i=s.data.length;if(i<jt.epsilon)c&&(p[t]=0),f[++t]=g;else{let n=i*s.a,a=i*s.c,r=Math.sqrt(n*n+a*a);c&&(p[t]=r),f[++t]=r,e+=r}}if(e>0){e=m/e*g;for(let t=1;t<m;t++)f[t]*=e}break;default:let s=o.spacingMode==t.SpacingMode.Length;for(let t=0,e=m-1;t<e;){let e=d[t],i=e.data.length;if(i<jt.epsilon)c&&(p[t]=0),f[++t]=g;else{let n=i*e.a,a=i*e.c,r=Math.sqrt(n*n+a*a);c&&(p[t]=r),f[++t]=(s?i+g:g)*r/i}}}let x=this.computeWorldPositions(s,m,h),w=x[0],b=x[1],y=o.offsetRotation,M=!1;if(0==y)M=o.rotateMode==t.RotateMode.Chain;else{M=!1;let t=this.target.bone;y*=t.a*t.d-t.b*t.c>0?a.degRad:-a.degRad}for(let t=0,e=3;t<u;t++,e+=3){let s=d[t];s.worldX+=(w-s.worldX)*n,s.worldY+=(b-s.worldY)*r;let o=x[e],l=x[e+1],u=o-w,m=l-b;if(c){let e=p[t];if(0!=e){let t=(Math.sqrt(u*u+m*m)/e-1)*i+1;s.a*=t,s.c*=t}}if(w=o,b=l,i>0){let n=s.a,r=s.b,o=s.c,l=s.d,c=0,d=0,p=0;if(c=h?x[e-1]:0==f[t+1]?x[e+2]:Math.atan2(m,u),c-=Math.atan2(o,n),M){d=Math.cos(c),p=Math.sin(c);let t=s.data.length;w+=(t*(d*n-p*o)-u)*i,b+=(t*(p*n+d*o)-m)*i}else c+=y;c>a.PI?c-=a.PI2:c<-a.PI&&(c+=a.PI2),c*=i,d=Math.cos(c),p=Math.sin(c),s.a=d*n-p*o,s.b=d*r-p*l,s.c=p*n+d*o,s.d=p*r+d*l}s.updateAppliedTransform()}}computeWorldPositions(e,s,i){let n=this.target,a=this.position,r=this.spaces,o=l.setArraySize(this.positions,3*s+2),h=this.world,c=e.closed,d=e.worldVerticesLength,u=d/6,m=jt.NONE;if(!e.constantSpeed){let f=e.lengths;u-=c?1:2;let p,g=f[u];switch(this.data.positionMode==t.PositionMode.Percent&&(a*=g),this.data.spacingMode){case t.SpacingMode.Percent:p=g;break;case t.SpacingMode.Proportional:p=g/s;break;default:p=1}h=l.setArraySize(this.world,8);for(let t=0,l=0,x=0;t<s;t++,l+=3){let s=r[t]*p;a+=s;let w=a;if(c)w%=g,w<0&&(w+=g),x=0;else{if(w<0){m!=jt.BEFORE&&(m=jt.BEFORE,e.computeWorldVertices(n,2,4,h,0,2)),this.addBeforePosition(w,h,0,o,l);continue}if(w>g){m!=jt.AFTER&&(m=jt.AFTER,e.computeWorldVertices(n,d-6,4,h,0,2)),this.addAfterPosition(w-g,h,0,o,l);continue}}for(;;x++){let t=f[x];if(!(w>t)){if(0==x)w/=t;else{let e=f[x-1];w=(w-e)/(t-e)}break}}x!=m&&(m=x,c&&x==u?(e.computeWorldVertices(n,d-4,4,h,0,2),e.computeWorldVertices(n,0,4,h,4,2)):e.computeWorldVertices(n,6*x+2,8,h,0,2)),this.addCurvePosition(w,h[0],h[1],h[2],h[3],h[4],h[5],h[6],h[7],o,l,i||t>0&&0==s)}return o}c?(d+=2,h=l.setArraySize(this.world,d),e.computeWorldVertices(n,2,d-4,h,0,2),e.computeWorldVertices(n,0,2,h,d-4,2),h[d-2]=h[0],h[d-1]=h[1]):(u--,d-=4,h=l.setArraySize(this.world,d),e.computeWorldVertices(n,2,d,h,0,2));let f,p=l.setArraySize(this.curves,u),g=0,x=h[0],w=h[1],b=0,y=0,M=0,S=0,v=0,k=0,I=0,A=0,B=0,T=0,C=0,F=0,E=0,Y=0;for(let t=0,e=2;t<u;t++,e+=6)b=h[e],y=h[e+1],M=h[e+2],S=h[e+3],v=h[e+4],k=h[e+5],I=.1875*(x-2*b+M),A=.1875*(w-2*y+S),B=.09375*(3*(b-M)-x+v),T=.09375*(3*(y-S)-w+k),C=2*I+B,F=2*A+T,E=.75*(b-x)+I+.16666667*B,Y=.75*(y-w)+A+.16666667*T,g+=Math.sqrt(E*E+Y*Y),E+=C,Y+=F,C+=B,F+=T,g+=Math.sqrt(E*E+Y*Y),E+=C,Y+=F,g+=Math.sqrt(E*E+Y*Y),E+=C+B,Y+=F+T,g+=Math.sqrt(E*E+Y*Y),p[t]=g,x=v,w=k;switch(this.data.positionMode==t.PositionMode.Percent&&(a*=g),this.data.spacingMode){case t.SpacingMode.Percent:f=g;break;case t.SpacingMode.Proportional:f=g/s;break;default:f=1}let R=this.segments,P=0;for(let t=0,e=0,n=0,l=0;t<s;t++,e+=3){let s=r[t]*f;a+=s;let u=a;if(c)u%=g,u<0&&(u+=g),n=0;else{if(u<0){this.addBeforePosition(u,h,0,o,e);continue}if(u>g){this.addAfterPosition(u-g,h,d-4,o,e);continue}}for(;;n++){let t=p[n];if(!(u>t)){if(0==n)u/=t;else{let e=p[n-1];u=(u-e)/(t-e)}break}}if(n!=m){m=n;let t=6*n;for(x=h[t],w=h[t+1],b=h[t+2],y=h[t+3],M=h[t+4],S=h[t+5],v=h[t+6],k=h[t+7],I=.03*(x-2*b+M),A=.03*(w-2*y+S),B=.006*(3*(b-M)-x+v),T=.006*(3*(y-S)-w+k),C=2*I+B,F=2*A+T,E=.3*(b-x)+I+.16666667*B,Y=.3*(y-w)+A+.16666667*T,P=Math.sqrt(E*E+Y*Y),R[0]=P,t=1;t<8;t++)E+=C,Y+=F,C+=B,F+=T,P+=Math.sqrt(E*E+Y*Y),R[t]=P;E+=C,Y+=F,P+=Math.sqrt(E*E+Y*Y),R[8]=P,E+=C+B,Y+=F+T,P+=Math.sqrt(E*E+Y*Y),R[9]=P,l=0}for(u*=P;;l++){let t=R[l];if(!(u>t)){if(0==l)u/=t;else{let e=R[l-1];u=l+(u-e)/(t-e)}break}}this.addCurvePosition(.1*u,x,w,b,y,M,S,v,k,o,e,i||t>0&&0==s)}return o}addBeforePosition(t,e,s,i,n){let a=e[s],r=e[s+1],o=e[s+2]-a,l=e[s+3]-r,h=Math.atan2(l,o);i[n]=a+t*Math.cos(h),i[n+1]=r+t*Math.sin(h),i[n+2]=h}addAfterPosition(t,e,s,i,n){let a=e[s+2],r=e[s+3],o=a-e[s],l=r-e[s+1],h=Math.atan2(l,o);i[n]=a+t*Math.cos(h),i[n+1]=r+t*Math.sin(h),i[n+2]=h}addCurvePosition(t,e,s,i,n,a,r,o,l,h,c,d){if(0==t||isNaN(t))return h[c]=e,h[c+1]=s,void(h[c+2]=Math.atan2(n-s,i-e));let u=t*t,m=u*t,f=1-t,p=f*f,g=p*f,x=f*t,w=3*x,b=f*w,y=w*t,M=e*g+i*b+a*y+o*m,S=s*g+n*b+r*y+l*m;h[c]=M,h[c+1]=S,d&&(h[c+2]=t<.001?Math.atan2(n-s,i-e):Math.atan2(S-(s*p+n*x*2+r*u),M-(e*p+i*x*2+a*u)))}}class Ht{data;_bone=null;set bone(t){this._bone=t}get bone(){if(this._bone)return this._bone;throw new Error("Bone not set.")}inertia=0;strength=0;damping=0;massInverse=0;wind=0;gravity=0;mix=0;_reset=!0;ux=0;uy=0;cx=0;cy=0;tx=0;ty=0;xOffset=0;xVelocity=0;yOffset=0;yVelocity=0;rotateOffset=0;rotateVelocity=0;scaleOffset=0;scaleVelocity=0;active=!1;skeleton;remaining=0;lastTime=0;constructor(t,e){this.data=t,this.skeleton=e,this.bone=e.bones[t.bone.index],this.inertia=t.inertia,this.strength=t.strength,this.damping=t.damping,this.massInverse=t.massInverse,this.wind=t.wind,this.gravity=t.gravity,this.mix=t.mix}reset(){this.remaining=0,this.lastTime=this.skeleton.time,this._reset=!0,this.xOffset=0,this.xVelocity=0,this.yOffset=0,this.yVelocity=0,this.rotateOffset=0,this.rotateVelocity=0,this.scaleOffset=0,this.scaleVelocity=0}setToSetupPose(){const t=this.data;this.inertia=t.inertia,this.strength=t.strength,this.damping=t.damping,this.massInverse=t.massInverse,this.wind=t.wind,this.gravity=t.gravity,this.mix=t.mix}isActive(){return this.active}update(e){const s=this.mix;if(0==s)return;const i=this.data.x>0,n=this.data.y>0,r=this.data.rotate>0||this.data.shearX>0,o=this.data.scaleX>0,l=this.bone,h=l.data.length;switch(e){case t.Physics.none:return;case t.Physics.reset:this.reset();case t.Physics.update:const e=this.skeleton,c=Math.max(this.skeleton.time-this.lastTime,0);this.remaining+=c,this.lastTime=e.time;const d=l.worldX,u=l.worldY;if(this._reset)this._reset=!1,this.ux=d,this.uy=u;else{let t=this.remaining,m=this.inertia,f=this.data.step,p=this.skeleton.data.referenceScale,g=-1,x=this.data.limit*c,w=x*Math.abs(e.scaleY);if(x*=Math.abs(e.scaleX),i||n){if(i){const t=(this.ux-d)*m;this.xOffset+=t>x?x:t<-x?-x:t,this.ux=d}if(n){const t=(this.uy-u)*m;this.yOffset+=t>w?w:t<-w?-w:t,this.uy=u}if(t>=f){g=Math.pow(this.damping,60*f);const e=this.massInverse*f,s=this.strength,a=this.wind*p,r=(Qt.yDown?-this.gravity:this.gravity)*p;do{i&&(this.xVelocity+=(a-this.xOffset*s)*e,this.xOffset+=this.xVelocity*f,this.xVelocity*=g),n&&(this.yVelocity-=(r+this.yOffset*s)*e,this.yOffset+=this.yVelocity*f,this.yVelocity*=g),t-=f}while(t>=f)}i&&(l.worldX+=this.xOffset*s*this.data.x),n&&(l.worldY+=this.yOffset*s*this.data.y)}if(r||o){let e=Math.atan2(l.c,l.a),i=0,n=0,c=0,d=this.cx-l.worldX,u=this.cy-l.worldY;if(d>x?d=x:d<-x&&(d=-x),u>w?u=w:u<-w&&(u=-w),r){c=(this.data.rotate+this.data.shearX)*s;let t=Math.atan2(u+this.ty,d+this.tx)-e-this.rotateOffset*c;this.rotateOffset+=(t-Math.ceil(t*a.invPI2-.5)*a.PI2)*m,t=this.rotateOffset*c+e,i=Math.cos(t),n=Math.sin(t),o&&(t=h*l.getWorldScaleX(),t>0&&(this.scaleOffset+=(d*i+u*n)*m/t))}else{i=Math.cos(e),n=Math.sin(e);const t=h*l.getWorldScaleX();t>0&&(this.scaleOffset+=(d*i+u*n)*m/t)}if(t=this.remaining,t>=f){-1==g&&(g=Math.pow(this.damping,60*f));const s=this.massInverse*f,a=this.strength,l=this.wind,d=Qt.yDown?-this.gravity:this.gravity,u=h/p;for(;;)if(t-=f,o&&(this.scaleVelocity+=(l*i-d*n-this.scaleOffset*a)*s,this.scaleOffset+=this.scaleVelocity*f,this.scaleVelocity*=g),r){if(this.rotateVelocity-=((l*n+d*i)*u+this.rotateOffset*a)*s,this.rotateOffset+=this.rotateVelocity*f,this.rotateVelocity*=g,t<f)break;const r=this.rotateOffset*c+e;i=Math.cos(r),n=Math.sin(r)}else if(t<f)break}}this.remaining=t}this.cx=l.worldX,this.cy=l.worldY;break;case t.Physics.pose:i&&(l.worldX+=this.xOffset*s*this.data.x),n&&(l.worldY+=this.yOffset*s*this.data.y)}if(r){let t=this.rotateOffset*s,e=0,i=0,n=0;if(this.data.shearX>0){let s=0;this.data.rotate>0&&(s=t*this.data.rotate,e=Math.sin(s),i=Math.cos(s),n=l.b,l.b=i*n-e*l.d,l.d=e*n+i*l.d),s+=t*this.data.shearX,e=Math.sin(s),i=Math.cos(s),n=l.a,l.a=i*n-e*l.c,l.c=e*n+i*l.c}else t*=this.data.rotate,e=Math.sin(t),i=Math.cos(t),n=l.a,l.a=i*n-e*l.c,l.c=e*n+i*l.c,n=l.b,l.b=i*n-e*l.d,l.d=e*n+i*l.d}if(o){const t=1+this.scaleOffset*s*this.data.scaleX;l.a*=t,l.c*=t}e!=t.Physics.pose&&(this.tx=h*l.a,this.ty=h*l.c),l.updateAppliedTransform()}translate(t,e){this.ux-=t,this.uy-=e,this.cx-=t,this.cy-=e}rotate(t,e,s){const i=s*a.degRad,n=Math.cos(i),r=Math.sin(i),o=this.cx-t,l=this.cy-e;this.translate(o*n-l*r-o,o*r+l*n-l)}}class Jt{data;bone;color;darkColor=null;attachment=null;attachmentState=0;sequenceIndex=-1;deform=new Array;constructor(t,e){if(!t)throw new Error("data cannot be null.");if(!e)throw new Error("bone cannot be null.");this.data=t,this.bone=e,this.color=new n,this.darkColor=t.darkColor?new n:null,this.setToSetupPose()}getSkeleton(){return this.bone.skeleton}getAttachment(){return this.attachment}setAttachment(t){this.attachment!=t&&(t instanceof u&&this.attachment instanceof u&&t.timelineAttachment==this.attachment.timelineAttachment||(this.deform.length=0),this.attachment=t,this.sequenceIndex=-1)}setToSetupPose(){this.color.setFromColor(this.data.color),this.darkColor&&this.darkColor.setFromColor(this.data.darkColor),this.data.attachmentName?(this.attachment=null,this.setAttachment(this.bone.skeleton.getAttachment(this.data.index,this.data.attachmentName))):this.attachment=null}}class Kt{data;bones;target;mixRotate=0;mixX=0;mixY=0;mixScaleX=0;mixScaleY=0;mixShearY=0;temp=new c;active=!1;constructor(t,e){if(!t)throw new Error("data cannot be null.");if(!e)throw new Error("skeleton cannot be null.");this.data=t,this.bones=new Array;for(let s=0;s<t.bones.length;s++){let i=e.findBone(t.bones[s].name);if(!i)throw new Error(`Couldn't find bone ${t.bones[s].name}.`);this.bones.push(i)}let s=e.findBone(t.target.name);if(!s)throw new Error(`Couldn't find target bone ${t.target.name}.`);this.target=s,this.mixRotate=t.mixRotate,this.mixX=t.mixX,this.mixY=t.mixY,this.mixScaleX=t.mixScaleX,this.mixScaleY=t.mixScaleY,this.mixShearY=t.mixShearY}isActive(){return this.active}setToSetupPose(){const t=this.data;this.mixRotate=t.mixRotate,this.mixX=t.mixX,this.mixY=t.mixY,this.mixScaleX=t.mixScaleX,this.mixScaleY=t.mixScaleY,this.mixShearY=t.mixShearY}update(t){0==this.mixRotate&&0==this.mixX&&0==this.mixY&&0==this.mixScaleX&&0==this.mixScaleY&&0==this.mixShearY||(this.data.local?this.data.relative?this.applyRelativeLocal():this.applyAbsoluteLocal():this.data.relative?this.applyRelativeWorld():this.applyAbsoluteWorld())}applyAbsoluteWorld(){let t=this.mixRotate,e=this.mixX,s=this.mixY,i=this.mixScaleX,n=this.mixScaleY,r=this.mixShearY,o=0!=e||0!=s,l=this.target,h=l.a,c=l.b,d=l.c,u=l.d,m=h*u-c*d>0?a.degRad:-a.degRad,f=this.data.offsetRotation*m,p=this.data.offsetShearY*m,g=this.bones;for(let m=0,x=g.length;m<x;m++){let x=g[m];if(0!=t){let e=x.a,s=x.b,i=x.c,n=x.d,r=Math.atan2(d,h)-Math.atan2(i,e)+f;r>a.PI?r-=a.PI2:r<-a.PI&&(r+=a.PI2),r*=t;let o=Math.cos(r),l=Math.sin(r);x.a=o*e-l*i,x.b=o*s-l*n,x.c=l*e+o*i,x.d=l*s+o*n}if(o){let t=this.temp;l.localToWorld(t.set(this.data.offsetX,this.data.offsetY)),x.worldX+=(t.x-x.worldX)*e,x.worldY+=(t.y-x.worldY)*s}if(0!=i){let t=Math.sqrt(x.a*x.a+x.c*x.c);0!=t&&(t=(t+(Math.sqrt(h*h+d*d)-t+this.data.offsetScaleX)*i)/t),x.a*=t,x.c*=t}if(0!=n){let t=Math.sqrt(x.b*x.b+x.d*x.d);0!=t&&(t=(t+(Math.sqrt(c*c+u*u)-t+this.data.offsetScaleY)*n)/t),x.b*=t,x.d*=t}if(r>0){let t=x.b,e=x.d,s=Math.atan2(e,t),i=Math.atan2(u,c)-Math.atan2(d,h)-(s-Math.atan2(x.c,x.a));i>a.PI?i-=a.PI2:i<-a.PI&&(i+=a.PI2),i=s+(i+p)*r;let n=Math.sqrt(t*t+e*e);x.b=Math.cos(i)*n,x.d=Math.sin(i)*n}x.updateAppliedTransform()}}applyRelativeWorld(){let t=this.mixRotate,e=this.mixX,s=this.mixY,i=this.mixScaleX,n=this.mixScaleY,r=this.mixShearY,o=0!=e||0!=s,l=this.target,h=l.a,c=l.b,d=l.c,u=l.d,m=h*u-c*d>0?a.degRad:-a.degRad,f=this.data.offsetRotation*m,p=this.data.offsetShearY*m,g=this.bones;for(let m=0,x=g.length;m<x;m++){let x=g[m];if(0!=t){let e=x.a,s=x.b,i=x.c,n=x.d,r=Math.atan2(d,h)+f;r>a.PI?r-=a.PI2:r<-a.PI&&(r+=a.PI2),r*=t;let o=Math.cos(r),l=Math.sin(r);x.a=o*e-l*i,x.b=o*s-l*n,x.c=l*e+o*i,x.d=l*s+o*n}if(o){let t=this.temp;l.localToWorld(t.set(this.data.offsetX,this.data.offsetY)),x.worldX+=t.x*e,x.worldY+=t.y*s}if(0!=i){let t=(Math.sqrt(h*h+d*d)-1+this.data.offsetScaleX)*i+1;x.a*=t,x.c*=t}if(0!=n){let t=(Math.sqrt(c*c+u*u)-1+this.data.offsetScaleY)*n+1;x.b*=t,x.d*=t}if(r>0){let t=Math.atan2(u,c)-Math.atan2(d,h);t>a.PI?t-=a.PI2:t<-a.PI&&(t+=a.PI2);let e=x.b,s=x.d;t=Math.atan2(s,e)+(t-a.PI/2+p)*r;let i=Math.sqrt(e*e+s*s);x.b=Math.cos(t)*i,x.d=Math.sin(t)*i}x.updateAppliedTransform()}}applyAbsoluteLocal(){let t=this.mixRotate,e=this.mixX,s=this.mixY,i=this.mixScaleX,n=this.mixScaleY,a=this.mixShearY,r=this.target,o=this.bones;for(let l=0,h=o.length;l<h;l++){let h=o[l],c=h.arotation;0!=t&&(c+=(r.arotation-c+this.data.offsetRotation)*t);let d=h.ax,u=h.ay;d+=(r.ax-d+this.data.offsetX)*e,u+=(r.ay-u+this.data.offsetY)*s;let m=h.ascaleX,f=h.ascaleY;0!=i&&0!=m&&(m=(m+(r.ascaleX-m+this.data.offsetScaleX)*i)/m),0!=n&&0!=f&&(f=(f+(r.ascaleY-f+this.data.offsetScaleY)*n)/f);let p=h.ashearY;0!=a&&(p+=(r.ashearY-p+this.data.offsetShearY)*a),h.updateWorldTransformWith(d,u,c,m,f,h.ashearX,p)}}applyRelativeLocal(){let t=this.mixRotate,e=this.mixX,s=this.mixY,i=this.mixScaleX,n=this.mixScaleY,a=this.mixShearY,r=this.target,o=this.bones;for(let l=0,h=o.length;l<h;l++){let h=o[l],c=h.arotation+(r.arotation+this.data.offsetRotation)*t,d=h.ax+(r.ax+this.data.offsetX)*e,u=h.ay+(r.ay+this.data.offsetY)*s,m=h.ascaleX*((r.ascaleX-1+this.data.offsetScaleX)*i+1),f=h.ascaleY*((r.ascaleY-1+this.data.offsetScaleY)*n+1),p=h.ashearY+(r.ashearY+this.data.offsetShearY)*a;h.updateWorldTransformWith(d,u,c,m,f,h.ashearX,p)}}}class Qt{static quadTriangles=[0,1,2,2,3,0];static yDown=!1;data;bones;slots;drawOrder;ikConstraints;transformConstraints;pathConstraints;physicsConstraints;_updateCache=new Array;skin=null;color;scaleX=1;_scaleY=1;get scaleY(){return Qt.yDown?-this._scaleY:this._scaleY}set scaleY(t){this._scaleY=t}x=0;y=0;time=0;constructor(t){if(!t)throw new Error("data cannot be null.");this.data=t,this.bones=new Array;for(let e=0;e<t.bones.length;e++){let s,i=t.bones[e];if(i.parent){let t=this.bones[i.parent.index];s=new Nt(i,this,t),t.children.push(s)}else s=new Nt(i,this,null);this.bones.push(s)}this.slots=new Array,this.drawOrder=new Array;for(let e=0;e<t.slots.length;e++){let s=t.slots[e],i=this.bones[s.boneData.index],n=new Jt(s,i);this.slots.push(n),this.drawOrder.push(n)}this.ikConstraints=new Array;for(let e=0;e<t.ikConstraints.length;e++){let s=t.ikConstraints[e];this.ikConstraints.push(new zt(s,this))}this.transformConstraints=new Array;for(let e=0;e<t.transformConstraints.length;e++){let s=t.transformConstraints[e];this.transformConstraints.push(new Kt(s,this))}this.pathConstraints=new Array;for(let e=0;e<t.pathConstraints.length;e++){let s=t.pathConstraints[e];this.pathConstraints.push(new jt(s,this))}this.physicsConstraints=new Array;for(let e=0;e<t.physicsConstraints.length;e++){let s=t.physicsConstraints[e];this.physicsConstraints.push(new Ht(s,this))}this.color=new n(1,1,1,1),this.updateCache()}updateCache(){this._updateCache.length=0;let t=this.bones;for(let e=0,s=t.length;e<s;e++){let s=t[e];s.sorted=s.data.skinRequired,s.active=!s.sorted}if(this.skin){let t=this.skin.bones;for(let e=0,s=this.skin.bones.length;e<s;e++){let s=this.bones[t[e].index];do{s.sorted=!1,s.active=!0,s=s.parent}while(s)}}let e=this.ikConstraints,s=this.transformConstraints,i=this.pathConstraints,n=this.physicsConstraints,a=e.length,r=s.length,o=i.length,l=this.physicsConstraints.length,h=a+r+o+l;t:for(let t=0;t<h;t++){for(let s=0;s<a;s++){let i=e[s];if(i.data.order==t){this.sortIkConstraint(i);continue t}}for(let e=0;e<r;e++){let i=s[e];if(i.data.order==t){this.sortTransformConstraint(i);continue t}}for(let e=0;e<o;e++){let s=i[e];if(s.data.order==t){this.sortPathConstraint(s);continue t}}for(let e=0;e<l;e++){const s=n[e];if(s.data.order==t){this.sortPhysicsConstraint(s);continue t}}}for(let e=0,s=t.length;e<s;e++)this.sortBone(t[e])}sortIkConstraint(t){if(t.active=t.target.isActive()&&(!t.data.skinRequired||this.skin&&l.contains(this.skin.constraints,t.data,!0)),!t.active)return;let e=t.target;this.sortBone(e);let s=t.bones,i=s[0];if(this.sortBone(i),1==s.length)this._updateCache.push(t),this.sortReset(i.children);else{let e=s[s.length-1];this.sortBone(e),this._updateCache.push(t),this.sortReset(i.children),e.sorted=!0}}sortPathConstraint(t){if(t.active=t.target.bone.isActive()&&(!t.data.skinRequired||this.skin&&l.contains(this.skin.constraints,t.data,!0)),!t.active)return;let e=t.target,s=e.data.index,i=e.bone;this.skin&&this.sortPathConstraintAttachment(this.skin,s,i),this.data.defaultSkin&&this.data.defaultSkin!=this.skin&&this.sortPathConstraintAttachment(this.data.defaultSkin,s,i);for(let t=0,e=this.data.skins.length;t<e;t++)this.sortPathConstraintAttachment(this.data.skins[t],s,i);let n=e.getAttachment();n instanceof _t&&this.sortPathConstraintAttachmentWith(n,i);let a=t.bones,r=a.length;for(let t=0;t<r;t++)this.sortBone(a[t]);this._updateCache.push(t);for(let t=0;t<r;t++)this.sortReset(a[t].children);for(let t=0;t<r;t++)a[t].sorted=!0}sortTransformConstraint(t){if(t.active=t.target.isActive()&&(!t.data.skinRequired||this.skin&&l.contains(this.skin.constraints,t.data,!0)),!t.active)return;this.sortBone(t.target);let e=t.bones,s=e.length;if(t.data.local)for(let t=0;t<s;t++){let s=e[t];this.sortBone(s.parent),this.sortBone(s)}else for(let t=0;t<s;t++)this.sortBone(e[t]);this._updateCache.push(t);for(let t=0;t<s;t++)this.sortReset(e[t].children);for(let t=0;t<s;t++)e[t].sorted=!0}sortPathConstraintAttachment(t,e,s){let i=t.attachments[e];if(i)for(let t in i)this.sortPathConstraintAttachmentWith(i[t],s)}sortPathConstraintAttachmentWith(t,e){if(!(t instanceof _t))return;let s=t.bones;if(s){let t=this.bones;for(let e=0,i=s.length;e<i;){let i=s[e++];for(i+=e;e<i;)this.sortBone(t[s[e++]])}}else this.sortBone(e)}sortPhysicsConstraint(t){const e=t.bone;t.active=e.active&&(!t.data.skinRequired||null!=this.skin&&l.contains(this.skin.constraints,t.data,!0)),t.active&&(this.sortBone(e),this._updateCache.push(t),this.sortReset(e.children),e.sorted=!0)}sortBone(t){if(!t)return;if(t.sorted)return;let e=t.parent;e&&this.sortBone(e),t.sorted=!0,this._updateCache.push(t)}sortReset(t){for(let e=0,s=t.length;e<s;e++){let s=t[e];s.active&&(s.sorted&&this.sortReset(s.children),s.sorted=!1)}}updateWorldTransform(t){if(null==t)throw new Error("physics is undefined");let e=this.bones;for(let t=0,s=e.length;t<s;t++){let s=e[t];s.ax=s.x,s.ay=s.y,s.arotation=s.rotation,s.ascaleX=s.scaleX,s.ascaleY=s.scaleY,s.ashearX=s.shearX,s.ashearY=s.shearY}let s=this._updateCache;for(let e=0,i=s.length;e<i;e++)s[e].update(t)}updateWorldTransformWith(t,e){let s=this.getRootBone();if(!s)throw new Error("Root bone must not be null.");let i=e.a,n=e.b,r=e.c,o=e.d;s.worldX=i*this.x+n*this.y+e.worldX,s.worldY=r*this.x+o*this.y+e.worldY;const l=(s.rotation+s.shearX)*a.degRad,h=(s.rotation+90+s.shearY)*a.degRad,c=Math.cos(l)*s.scaleX,d=Math.cos(h)*s.scaleY,u=Math.sin(l)*s.scaleX,m=Math.sin(h)*s.scaleY;s.a=(i*c+n*u)*this.scaleX,s.b=(i*d+n*m)*this.scaleX,s.c=(r*c+o*u)*this.scaleY,s.d=(r*d+o*m)*this.scaleY;let f=this._updateCache;for(let e=0,i=f.length;e<i;e++){let i=f[e];i!=s&&i.update(t)}}setToSetupPose(){this.setBonesToSetupPose(),this.setSlotsToSetupPose()}setBonesToSetupPose(){for(const t of this.bones)t.setToSetupPose();for(const t of this.ikConstraints)t.setToSetupPose();for(const t of this.transformConstraints)t.setToSetupPose();for(const t of this.pathConstraints)t.setToSetupPose();for(const t of this.physicsConstraints)t.setToSetupPose()}setSlotsToSetupPose(){let t=this.slots;l.arrayCopy(t,0,this.drawOrder,0,t.length);for(let e=0,s=t.length;e<s;e++)t[e].setToSetupPose()}getRootBone(){return 0==this.bones.length?null:this.bones[0]}findBone(t){if(!t)throw new Error("boneName cannot be null.");let e=this.bones;for(let s=0,i=e.length;s<i;s++){let i=e[s];if(i.data.name==t)return i}return null}findSlot(t){if(!t)throw new Error("slotName cannot be null.");let e=this.slots;for(let s=0,i=e.length;s<i;s++){let i=e[s];if(i.data.name==t)return i}return null}setSkinByName(t){let e=this.data.findSkin(t);if(!e)throw new Error("Skin not found: "+t);this.setSkin(e)}setSkin(t){if(t!=this.skin){if(t)if(this.skin)t.attachAll(this,this.skin);else{let e=this.slots;for(let s=0,i=e.length;s<i;s++){let i=e[s],n=i.data.attachmentName;if(n){let e=t.getAttachment(s,n);e&&i.setAttachment(e)}}}this.skin=t,this.updateCache()}}getAttachmentByName(t,e){let s=this.data.findSlot(t);if(!s)throw new Error(`Can't find slot with name ${t}`);return this.getAttachment(s.index,e)}getAttachment(t,e){if(!e)throw new Error("attachmentName cannot be null.");if(this.skin){let s=this.skin.getAttachment(t,e);if(s)return s}return this.data.defaultSkin?this.data.defaultSkin.getAttachment(t,e):null}setAttachment(t,e){if(!t)throw new Error("slotName cannot be null.");let s=this.slots;for(let i=0,n=s.length;i<n;i++){let n=s[i];if(n.data.name==t){let s=null;if(e&&(s=this.getAttachment(i,e),!s))throw new Error("Attachment not found: "+e+", for slot: "+t);return void n.setAttachment(s)}}throw new Error("Slot not found: "+t)}findIkConstraint(t){if(!t)throw new Error("constraintName cannot be null.");return this.ikConstraints.find((e=>e.data.name==t))??null}findTransformConstraint(t){if(!t)throw new Error("constraintName cannot be null.");return this.transformConstraints.find((e=>e.data.name==t))??null}findPathConstraint(t){if(!t)throw new Error("constraintName cannot be null.");return this.pathConstraints.find((e=>e.data.name==t))??null}findPhysicsConstraint(t){if(null==t)throw new Error("constraintName cannot be null.");return this.physicsConstraints.find((e=>e.data.name==t))??null}getBoundsRect(){let t=new c,e=new c;return this.getBounds(t,e),{x:t.x,y:t.y,width:e.x,height:e.y}}getBounds(t,e,s=new Array(2),i=null){if(!t)throw new Error("offset cannot be null.");if(!e)throw new Error("size cannot be null.");let n=this.drawOrder,a=Number.POSITIVE_INFINITY,r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,h=Number.NEGATIVE_INFINITY;for(let t=0,e=n.length;t<e;t++){let e=n[t];if(!e.bone.active)continue;let c=0,d=null,u=null,m=e.getAttachment();if(m instanceof Vt)c=8,d=l.setArraySize(s,c,0),m.computeWorldVertices(e,d,0,2),u=Qt.quadTriangles;else if(m instanceof Pt){let t=m;c=t.worldVerticesLength,d=l.setArraySize(s,c,0),t.computeWorldVertices(e,0,c,d,0,2),u=t.triangles}else if(m instanceof wt&&null!=i){i.clipStart(e,m);continue}if(d&&u){null!=i&&i.isClipping()&&(i.clipTriangles(d,u,u.length),d=i.clippedVertices,c=i.clippedVertices.length);for(let t=0,e=d.length;t<e;t+=2){let e=d[t],s=d[t+1];a=Math.min(a,e),r=Math.min(r,s),o=Math.max(o,e),h=Math.max(h,s)}}null!=i&&i.clipEndWithSlot(e)}null!=i&&i.clipEnd(),t.set(a,r),e.set(o-a,h-r)}update(t){this.time+=t}physicsTranslate(t,e){const s=this.physicsConstraints;for(let i=0,n=s.length;i<n;i++)s[i].translate(t,e)}physicsRotate(t,e,s){const i=this.physicsConstraints;for(let n=0,a=i.length;n<a;n++)i[n].rotate(t,e,s)}}t.Physics=void 0,(At=t.Physics||(t.Physics={}))[At.none=0]="none",At[At.reset=1]="reset",At[At.update=2]="update",At[At.pose=3]="pose";class Zt extends Lt{_bone=null;set bone(t){this._bone=t}get bone(){if(this._bone)return this._bone;throw new Error("BoneData not set.")}x=0;y=0;rotate=0;scaleX=0;shearX=0;limit=0;step=0;inertia=0;strength=0;damping=0;massInverse=0;wind=0;gravity=0;mix=0;inertiaGlobal=!1;strengthGlobal=!1;dampingGlobal=!1;massGlobal=!1;windGlobal=!1;gravityGlobal=!1;mixGlobal=!1;constructor(t){super(t,0,!1)}}class te{name=null;bones=new Array;slots=new Array;skins=new Array;defaultSkin=null;events=new Array;animations=new Array;ikConstraints=new Array;transformConstraints=new Array;pathConstraints=new Array;physicsConstraints=new Array;x=0;y=0;width=0;height=0;referenceScale=100;version=null;hash=null;fps=0;imagesPath=null;audioPath=null;findBone(t){if(!t)throw new Error("boneName cannot be null.");let e=this.bones;for(let s=0,i=e.length;s<i;s++){let i=e[s];if(i.name==t)return i}return null}findSlot(t){if(!t)throw new Error("slotName cannot be null.");let e=this.slots;for(let s=0,i=e.length;s<i;s++){let i=e[s];if(i.name==t)return i}return null}findSkin(t){if(!t)throw new Error("skinName cannot be null.");let e=this.skins;for(let s=0,i=e.length;s<i;s++){let i=e[s];if(i.name==t)return i}return null}findEvent(t){if(!t)throw new Error("eventDataName cannot be null.");let e=this.events;for(let s=0,i=e.length;s<i;s++){let i=e[s];if(i.name==t)return i}return null}findAnimation(t){if(!t)throw new Error("animationName cannot be null.");let e=this.animations;for(let s=0,i=e.length;s<i;s++){let i=e[s];if(i.name==t)return i}return null}findIkConstraint(t){if(!t)throw new Error("constraintName cannot be null.");const e=this.ikConstraints;for(let s=0,i=e.length;s<i;s++){const i=e[s];if(i.name==t)return i}return null}findTransformConstraint(t){if(!t)throw new Error("constraintName cannot be null.");const e=this.transformConstraints;for(let s=0,i=e.length;s<i;s++){const i=e[s];if(i.name==t)return i}return null}findPathConstraint(t){if(!t)throw new Error("constraintName cannot be null.");const e=this.pathConstraints;for(let s=0,i=e.length;s<i;s++){const i=e[s];if(i.name==t)return i}return null}findPhysicsConstraint(t){if(!t)throw new Error("constraintName cannot be null.");const e=this.physicsConstraints;for(let s=0,i=e.length;s<i;s++){const i=e[s];if(i.name==t)return i}return null}}class ee{slotIndex;name;attachment;constructor(t=0,e,s){this.slotIndex=t,this.name=e,this.attachment=s}}class se{name;attachments=new Array;bones=Array();constraints=new Array;color=new n(.99607843,.61960787,.30980393,1);constructor(t){if(!t)throw new Error("name cannot be null.");this.name=t}setAttachment(t,e,s){if(!s)throw new Error("attachment cannot be null.");let i=this.attachments;t>=i.length&&(i.length=t+1),i[t]||(i[t]={}),i[t][e]=s}addSkin(t){for(let e=0;e<t.bones.length;e++){let s=t.bones[e],i=!1;for(let t=0;t<this.bones.length;t++)if(this.bones[t]==s){i=!0;break}i||this.bones.push(s)}for(let e=0;e<t.constraints.length;e++){let s=t.constraints[e],i=!1;for(let t=0;t<this.constraints.length;t++)if(this.constraints[t]==s){i=!0;break}i||this.constraints.push(s)}let e=t.getAttachments();for(let t=0;t<e.length;t++){var s=e[t];this.setAttachment(s.slotIndex,s.name,s.attachment)}}copySkin(t){for(let e=0;e<t.bones.length;e++){let s=t.bones[e],i=!1;for(let t=0;t<this.bones.length;t++)if(this.bones[t]==s){i=!0;break}i||this.bones.push(s)}for(let e=0;e<t.constraints.length;e++){let s=t.constraints[e],i=!1;for(let t=0;t<this.constraints.length;t++)if(this.constraints[t]==s){i=!0;break}i||this.constraints.push(s)}let e=t.getAttachments();for(let t=0;t<e.length;t++){var s=e[t];s.attachment&&(s.attachment instanceof Pt?(s.attachment=s.attachment.newLinkedMesh(),this.setAttachment(s.slotIndex,s.name,s.attachment)):(s.attachment=s.attachment.copy(),this.setAttachment(s.slotIndex,s.name,s.attachment)))}}getAttachment(t,e){let s=this.attachments[t];return s?s[e]:null}removeAttachment(t,e){let s=this.attachments[t];s&&delete s[e]}getAttachments(){let t=new Array;for(var e=0;e<this.attachments.length;e++){let s=this.attachments[e];if(s)for(let i in s){let n=s[i];n&&t.push(new ee(e,i,n))}}return t}getAttachmentsForSlot(t,e){let s=this.attachments[t];if(s)for(let i in s){let n=s[i];n&&e.push(new ee(t,i,n))}}clear(){this.attachments.length=0,this.bones.length=0,this.constraints.length=0}attachAll(t,e){let s=0;for(let i=0;i<t.slots.length;i++){let n=t.slots[i],a=n.getAttachment();if(a&&s<e.attachments.length){let t=e.attachments[s];for(let e in t){if(a==t[e]){let t=this.getAttachment(s,e);t&&n.setAttachment(t);break}}}s++}}}class ie{index=0;name;boneData;color=new n(1,1,1,1);darkColor=null;attachmentName=null;blendMode=t.BlendMode.Normal;visible=!0;constructor(t,e,s){if(t<0)throw new Error("index must be >= 0.");if(!e)throw new Error("name cannot be null.");if(!s)throw new Error("boneData cannot be null.");this.index=t,this.name=e,this.boneData=s}}t.BlendMode=void 0,(Bt=t.BlendMode||(t.BlendMode={}))[Bt.Normal=0]="Normal",Bt[Bt.Additive=1]="Additive",Bt[Bt.Multiply=2]="Multiply",Bt[Bt.Screen=3]="Screen";class ne extends Lt{bones=new Array;_target=null;set target(t){this._target=t}get target(){if(this._target)return this._target;throw new Error("BoneData not set.")}mixRotate=0;mixX=0;mixY=0;mixScaleX=0;mixScaleY=0;mixShearY=0;offsetRotation=0;offsetX=0;offsetY=0;offsetScaleX=0;offsetScaleY=0;offsetShearY=0;relative=!1;local=!1;constructor(t){super(t,0,!1)}}class ae{scale=1;attachmentLoader;linkedMeshes=new Array;constructor(t){this.attachmentLoader=t}readSkeletonData(e){let s=this.scale,i=new te;i.name="";let a=new re(e),r=a.readInt32(),o=a.readInt32();i.hash=0==o&&0==r?null:o.toString(16)+r.toString(16),i.version=a.readString(),i.x=a.readFloat(),i.y=a.readFloat(),i.width=a.readFloat(),i.height=a.readFloat(),i.referenceScale=a.readFloat()*s;let h=a.readBoolean();h&&(i.fps=a.readFloat(),i.imagesPath=a.readString(),i.audioPath=a.readString());let c=0;c=a.readInt(!0);for(let t=0;t<c;t++){let t=a.readString();if(!t)throw new Error("String in string table must not be null.");a.strings.push(t)}c=a.readInt(!0);for(let t=0;t<c;t++){let e=a.readString();if(!e)throw new Error("Bone name must not be null.");let r=0==t?null:i.bones[a.readInt(!0)],o=new Ot(t,e,r);o.rotation=a.readFloat(),o.x=a.readFloat()*s,o.y=a.readFloat()*s,o.scaleX=a.readFloat(),o.scaleY=a.readFloat(),o.shearX=a.readFloat(),o.shearY=a.readFloat(),o.length=a.readFloat()*s,o.inherit=a.readByte(),o.skinRequired=a.readBoolean(),h&&(n.rgba8888ToColor(o.color,a.readInt32()),o.icon=a.readString()??void 0,o.visible=a.readBoolean()),i.bones.push(o)}c=a.readInt(!0);for(let t=0;t<c;t++){let e=a.readString();if(!e)throw new Error("Slot name must not be null.");let s=i.bones[a.readInt(!0)],r=new ie(t,e,s);n.rgba8888ToColor(r.color,a.readInt32());let o=a.readInt32();-1!=o&&n.rgb888ToColor(r.darkColor=new n,o),r.attachmentName=a.readStringRef(),r.blendMode=a.readInt(!0),h&&(r.visible=a.readBoolean()),i.slots.push(r)}c=a.readInt(!0);for(let t,e=0;e<c;e++){let e=a.readString();if(!e)throw new Error("IK constraint data name must not be null.");let n=new Gt(e);n.order=a.readInt(!0),t=a.readInt(!0);for(let e=0;e<t;e++)n.bones.push(i.bones[a.readInt(!0)]);n.target=i.bones[a.readInt(!0)];let r=a.readByte();n.skinRequired=!!(1&r),n.bendDirection=2&r?1:-1,n.compress=!!(4&r),n.stretch=!!(8&r),n.uniform=!!(16&r),32&r&&(n.mix=64&r?a.readFloat():1),128&r&&(n.softness=a.readFloat()*s),i.ikConstraints.push(n)}c=a.readInt(!0);for(let t,e=0;e<c;e++){let e=a.readString();if(!e)throw new Error("Transform constraint data name must not be null.");let n=new ne(e);n.order=a.readInt(!0),t=a.readInt(!0);for(let e=0;e<t;e++)n.bones.push(i.bones[a.readInt(!0)]);n.target=i.bones[a.readInt(!0)];let r=a.readByte();n.skinRequired=!!(1&r),n.local=!!(2&r),n.relative=!!(4&r),8&r&&(n.offsetRotation=a.readFloat()),16&r&&(n.offsetX=a.readFloat()*s),32&r&&(n.offsetY=a.readFloat()*s),64&r&&(n.offsetScaleX=a.readFloat()),128&r&&(n.offsetScaleY=a.readFloat()),r=a.readByte(),1&r&&(n.offsetShearY=a.readFloat()),2&r&&(n.mixRotate=a.readFloat()),4&r&&(n.mixX=a.readFloat()),8&r&&(n.mixY=a.readFloat()),16&r&&(n.mixScaleX=a.readFloat()),32&r&&(n.mixScaleY=a.readFloat()),64&r&&(n.mixShearY=a.readFloat()),i.transformConstraints.push(n)}c=a.readInt(!0);for(let e,n=0;n<c;n++){let n=a.readString();if(!n)throw new Error("Path constraint data name must not be null.");let r=new $t(n);r.order=a.readInt(!0),r.skinRequired=a.readBoolean(),e=a.readInt(!0);for(let t=0;t<e;t++)r.bones.push(i.bones[a.readInt(!0)]);r.target=i.slots[a.readInt(!0)];const o=a.readByte();r.positionMode=1&o,r.spacingMode=o>>1&3,r.rotateMode=o>>3&3,128&o&&(r.offsetRotation=a.readFloat()),r.position=a.readFloat(),r.positionMode==t.PositionMode.Fixed&&(r.position*=s),r.spacing=a.readFloat(),r.spacingMode!=t.SpacingMode.Length&&r.spacingMode!=t.SpacingMode.Fixed||(r.spacing*=s),r.mixRotate=a.readFloat(),r.mixX=a.readFloat(),r.mixY=a.readFloat(),i.pathConstraints.push(r)}c=a.readInt(!0);for(let t=0;t<c;t++){const t=a.readString();if(!t)throw new Error("Physics constraint data name must not be null.");const e=new Zt(t);e.order=a.readInt(!0),e.bone=i.bones[a.readInt(!0)];let n=a.readByte();e.skinRequired=!!(1&n),2&n&&(e.x=a.readFloat()),4&n&&(e.y=a.readFloat()),8&n&&(e.rotate=a.readFloat()),16&n&&(e.scaleX=a.readFloat()),32&n&&(e.shearX=a.readFloat()),e.limit=(64&n?a.readFloat():5e3)*s,e.step=1/a.readUnsignedByte(),e.inertia=a.readFloat(),e.strength=a.readFloat(),e.damping=a.readFloat(),e.massInverse=128&n?a.readFloat():1,e.wind=a.readFloat(),e.gravity=a.readFloat(),n=a.readByte(),1&n&&(e.inertiaGlobal=!0),2&n&&(e.strengthGlobal=!0),4&n&&(e.dampingGlobal=!0),8&n&&(e.massGlobal=!0),16&n&&(e.windGlobal=!0),32&n&&(e.gravityGlobal=!0),64&n&&(e.mixGlobal=!0),e.mix=128&n?a.readFloat():1,i.physicsConstraints.push(e)}let d=this.readSkin(a,i,!0,h);d&&(i.defaultSkin=d,i.skins.push(d));{let t=i.skins.length;for(l.setArraySize(i.skins,c=t+a.readInt(!0));t<c;t++){let e=this.readSkin(a,i,!1,h);if(!e)throw new Error("readSkin() should not have returned null.");i.skins[t]=e}}c=this.linkedMeshes.length;for(let t=0;t<c;t++){let e=this.linkedMeshes[t];const s=i.skins[e.skinIndex];if(!e.parent)throw new Error("Linked mesh parent must not be null");let n=s.getAttachment(e.slotIndex,e.parent);if(!n)throw new Error(`Parent mesh not found: ${e.parent}`);e.mesh.timelineAttachment=e.inheritTimeline?n:e.mesh,e.mesh.setParentMesh(n),null!=e.mesh.region&&e.mesh.updateRegion()}this.linkedMeshes.length=0,c=a.readInt(!0);for(let t=0;t<c;t++){let t=a.readString();if(!t)throw new Error("Event data name must not be null");let e=new Wt(t);e.intValue=a.readInt(!1),e.floatValue=a.readFloat(),e.stringValue=a.readString(),e.audioPath=a.readString(),e.audioPath&&(e.volume=a.readFloat(),e.balance=a.readFloat()),i.events.push(e)}c=a.readInt(!0);for(let t=0;t<c;t++){let t=a.readString();if(!t)throw new Error("Animatio name must not be null.");i.animations.push(this.readAnimation(a,t,i))}return i}readSkin(t,e,s,i){let a=null,r=0;if(s){if(r=t.readInt(!0),0==r)return null;a=new se("default")}else{let s=t.readString();if(!s)throw new Error("Skin name must not be null.");a=new se(s),i&&n.rgba8888ToColor(a.color,t.readInt32()),a.bones.length=t.readInt(!0);for(let s=0,i=a.bones.length;s<i;s++)a.bones[s]=e.bones[t.readInt(!0)];for(let s=0,i=t.readInt(!0);s<i;s++)a.constraints.push(e.ikConstraints[t.readInt(!0)]);for(let s=0,i=t.readInt(!0);s<i;s++)a.constraints.push(e.transformConstraints[t.readInt(!0)]);for(let s=0,i=t.readInt(!0);s<i;s++)a.constraints.push(e.pathConstraints[t.readInt(!0)]);for(let s=0,i=t.readInt(!0);s<i;s++)a.constraints.push(e.physicsConstraints[t.readInt(!0)]);r=t.readInt(!0)}for(let s=0;s<r;s++){let s=t.readInt(!0);for(let n=0,r=t.readInt(!0);n<r;n++){let n=t.readStringRef();if(!n)throw new Error("Attachment name must not be null");let r=this.readAttachment(t,e,a,s,n,i);r&&a.setAttachment(s,n,r)}}return a}readAttachment(t,e,s,i,a,r){let o=this.scale,h=t.readByte();const c=8&h?t.readStringRef():a;if(!c)throw new Error("Attachment name must not be null");switch(7&h){case Tt.Region:{let e=16&h?t.readStringRef():null;const i=32&h?t.readInt32():4294967295,a=64&h?this.readSequence(t):null;let r=128&h?t.readFloat():0,l=t.readFloat(),d=t.readFloat(),u=t.readFloat(),m=t.readFloat(),f=t.readFloat(),p=t.readFloat();e||(e=c);let g=this.attachmentLoader.newRegionAttachment(s,c,e,a);return g?(g.path=e,g.x=l*o,g.y=d*o,g.scaleX=u,g.scaleY=m,g.rotation=r,g.width=f*o,g.height=p*o,n.rgba8888ToColor(g.color,i),g.sequence=a,null==a&&g.updateRegion(),g):null}case Tt.BoundingBox:{let e=this.readVertices(t,!!(16&h)),i=r?t.readInt32():0,a=this.attachmentLoader.newBoundingBoxAttachment(s,c);return a?(a.worldVerticesLength=e.length,a.vertices=e.vertices,a.bones=e.bones,r&&n.rgba8888ToColor(a.color,i),a):null}case Tt.Mesh:{let e=16&h?t.readStringRef():c;const i=32&h?t.readInt32():4294967295,a=64&h?this.readSequence(t):null,l=t.readInt(!0),d=this.readVertices(t,!!(128&h)),u=this.readFloatArray(t,d.length,1),m=this.readShortArray(t,3*(d.length-l-2));let f=[],p=0,g=0;r&&(f=this.readShortArray(t,t.readInt(!0)),p=t.readFloat(),g=t.readFloat()),e||(e=c);let x=this.attachmentLoader.newMeshAttachment(s,c,e,a);return x?(x.path=e,n.rgba8888ToColor(x.color,i),x.bones=d.bones,x.vertices=d.vertices,x.worldVerticesLength=d.length,x.triangles=m,x.regionUVs=u,null==a&&x.updateRegion(),x.hullLength=l<<1,x.sequence=a,r&&(x.edges=f,x.width=p*o,x.height=g*o),x):null}case Tt.LinkedMesh:{const e=16&h?t.readStringRef():c;if(null==e)throw new Error("Path of linked mesh must not be null");const a=32&h?t.readInt32():4294967295,l=64&h?this.readSequence(t):null,d=!!(128&h),u=t.readInt(!0),m=t.readStringRef();let f=0,p=0;r&&(f=t.readFloat(),p=t.readFloat());let g=this.attachmentLoader.newMeshAttachment(s,c,e,l);return g?(g.path=e,n.rgba8888ToColor(g.color,a),g.sequence=l,r&&(g.width=f*o,g.height=p*o),this.linkedMeshes.push(new oe(g,u,i,m,d)),g):null}case Tt.Path:{const e=!!(16&h),i=!!(32&h),a=this.readVertices(t,!!(64&h)),d=l.newArray(a.length/6,0);for(let e=0,s=d.length;e<s;e++)d[e]=t.readFloat()*o;const u=r?t.readInt32():0,m=this.attachmentLoader.newPathAttachment(s,c);return m?(m.closed=e,m.constantSpeed=i,m.worldVerticesLength=a.length,m.vertices=a.vertices,m.bones=a.bones,m.lengths=d,r&&n.rgba8888ToColor(m.color,u),m):null}case Tt.Point:{const e=t.readFloat(),i=t.readFloat(),a=t.readFloat(),l=r?t.readInt32():0,h=this.attachmentLoader.newPointAttachment(s,c);return h?(h.x=i*o,h.y=a*o,h.rotation=e,r&&n.rgba8888ToColor(h.color,l),h):null}case Tt.Clipping:{const i=t.readInt(!0),a=this.readVertices(t,!!(16&h));let o=r?t.readInt32():0,l=this.attachmentLoader.newClippingAttachment(s,c);return l?(l.endSlot=e.slots[i],l.worldVerticesLength=a.length,l.vertices=a.vertices,l.bones=a.bones,r&&n.rgba8888ToColor(l.color,o),l):null}}return null}readSequence(t){let e=new m(t.readInt(!0));return e.start=t.readInt(!0),e.digits=t.readInt(!0),e.setupIndex=t.readInt(!0),e}readVertices(t,e){const s=this.scale,i=t.readInt(!0),n=new le;if(n.length=i<<1,!e)return n.vertices=this.readFloatArray(t,n.length,s),n;let a=new Array,r=new Array;for(let e=0;e<i;e++){let e=t.readInt(!0);r.push(e);for(let i=0;i<e;i++)r.push(t.readInt(!0)),a.push(t.readFloat()*s),a.push(t.readFloat()*s),a.push(t.readFloat())}return n.vertices=l.toFloatArray(a),n.bones=r,n}readFloatArray(t,e,s){let i=new Array(e);if(1==s)for(let s=0;s<e;s++)i[s]=t.readFloat();else for(let n=0;n<e;n++)i[n]=t.readFloat()*s;return i}readShortArray(t,e){let s=new Array(e);for(let i=0;i<e;i++)s[i]=t.readInt(!0);return s}readAnimation(e,s,i){e.readInt(!0);let n=new Array,a=this.scale;for(let t=0,s=e.readInt(!0);t<s;t++){let t=e.readInt(!0);for(let s=0,i=e.readInt(!0);s<i;s++){let s=e.readByte(),i=e.readInt(!0),a=i-1;switch(s){case ve:{let s=new N(i,t);for(let t=0;t<i;t++)s.setFrame(t,e.readFloat(),e.readStringRef());n.push(s);break}case ke:{let s=e.readInt(!0),r=new _(i,s,t),o=e.readFloat(),l=e.readUnsignedByte()/255,h=e.readUnsignedByte()/255,c=e.readUnsignedByte()/255,d=e.readUnsignedByte()/255;for(let t=0,s=0;r.setFrame(t,o,l,h,c,d),t!=a;t++){let i=e.readFloat(),n=e.readUnsignedByte()/255,a=e.readUnsignedByte()/255,u=e.readUnsignedByte()/255,m=e.readUnsignedByte()/255;switch(e.readByte()){case qe:r.setStepped(t);break;case Ue:de(e,r,s++,t,0,o,i,l,n,1),de(e,r,s++,t,1,o,i,h,a,1),de(e,r,s++,t,2,o,i,c,u,1),de(e,r,s++,t,3,o,i,d,m,1)}o=i,l=n,h=a,c=u,d=m}n.push(r);break}case Ie:{let s=e.readInt(!0),r=new X(i,s,t),o=e.readFloat(),l=e.readUnsignedByte()/255,h=e.readUnsignedByte()/255,c=e.readUnsignedByte()/255;for(let t=0,s=0;r.setFrame(t,o,l,h,c),t!=a;t++){let i=e.readFloat(),n=e.readUnsignedByte()/255,a=e.readUnsignedByte()/255,d=e.readUnsignedByte()/255;switch(e.readByte()){case qe:r.setStepped(t);break;case Ue:de(e,r,s++,t,0,o,i,l,n,1),de(e,r,s++,t,1,o,i,h,a,1),de(e,r,s++,t,2,o,i,c,d,1)}o=i,l=n,h=a,c=d}n.push(r);break}case Ae:{let s=e.readInt(!0),r=new D(i,s,t),o=e.readFloat(),l=e.readUnsignedByte()/255,h=e.readUnsignedByte()/255,c=e.readUnsignedByte()/255,d=e.readUnsignedByte()/255,u=e.readUnsignedByte()/255,m=e.readUnsignedByte()/255,f=e.readUnsignedByte()/255;for(let t=0,s=0;r.setFrame(t,o,l,h,c,d,u,m,f),t!=a;t++){let i=e.readFloat(),n=e.readUnsignedByte()/255,a=e.readUnsignedByte()/255,p=e.readUnsignedByte()/255,g=e.readUnsignedByte()/255,x=e.readUnsignedByte()/255,w=e.readUnsignedByte()/255,b=e.readUnsignedByte()/255;switch(e.readByte()){case qe:r.setStepped(t);break;case Ue:de(e,r,s++,t,0,o,i,l,n,1),de(e,r,s++,t,1,o,i,h,a,1),de(e,r,s++,t,2,o,i,c,p,1),de(e,r,s++,t,3,o,i,d,g,1),de(e,r,s++,t,4,o,i,u,x,1),de(e,r,s++,t,5,o,i,m,w,1),de(e,r,s++,t,6,o,i,f,b,1)}o=i,l=n,h=a,c=p,d=g,u=x,m=w,f=b}n.push(r);break}case Be:{let s=e.readInt(!0),r=new O(i,s,t),o=e.readFloat(),l=e.readUnsignedByte()/255,h=e.readUnsignedByte()/255,c=e.readUnsignedByte()/255,d=e.readUnsignedByte()/255,u=e.readUnsignedByte()/255,m=e.readUnsignedByte()/255;for(let t=0,s=0;r.setFrame(t,o,l,h,c,d,u,m),t!=a;t++){let i=e.readFloat(),n=e.readUnsignedByte()/255,a=e.readUnsignedByte()/255,f=e.readUnsignedByte()/255,p=e.readUnsignedByte()/255,g=e.readUnsignedByte()/255,x=e.readUnsignedByte()/255;switch(e.readByte()){case qe:r.setStepped(t);break;case Ue:de(e,r,s++,t,0,o,i,l,n,1),de(e,r,s++,t,1,o,i,h,a,1),de(e,r,s++,t,2,o,i,c,f,1),de(e,r,s++,t,3,o,i,d,p,1),de(e,r,s++,t,4,o,i,u,g,1),de(e,r,s++,t,5,o,i,m,x,1)}o=i,l=n,h=a,c=f,d=p,u=g,m=x}n.push(r);break}case Te:{let s=new V(i,e.readInt(!0),t),r=e.readFloat(),o=e.readUnsignedByte()/255;for(let t=0,i=0;s.setFrame(t,r,o),t!=a;t++){let n=e.readFloat(),a=e.readUnsignedByte()/255;switch(e.readByte()){case qe:s.setStepped(t);break;case Ue:de(e,s,i++,t,0,r,n,o,a,1)}r=n,o=a}n.push(s)}}}}for(let t=0,s=e.readInt(!0);t<s;t++){let t=e.readInt(!0);for(let s=0,i=e.readInt(!0);s<i;s++){let s=e.readByte(),i=e.readInt(!0);if(s==Se){let s=new P(i,t);for(let t=0;t<i;t++)s.setFrame(t,e.readFloat(),e.readByte());n.push(s);continue}let r=e.readInt(!0);switch(s){case ue:n.push(he(e,new k(i,r,t),1));break;case me:n.push(ce(e,new I(i,r,t),a));break;case fe:n.push(he(e,new A(i,r,t),a));break;case pe:n.push(he(e,new B(i,r,t),a));break;case ge:n.push(ce(e,new T(i,r,t),1));break;case xe:n.push(he(e,new C(i,r,t),1));break;case we:n.push(he(e,new F(i,r,t),1));break;case be:n.push(ce(e,new E(i,r,t),1));break;case ye:n.push(he(e,new Y(i,r,t),1));break;case Me:n.push(he(e,new R(i,r,t),1))}}}for(let t=0,s=e.readInt(!0);t<s;t++){let t=e.readInt(!0),s=e.readInt(!0),i=s-1,r=new W(s,e.readInt(!0),t),o=e.readByte(),l=e.readFloat(),h=1&o?2&o?e.readFloat():1:0,c=4&o?e.readFloat()*a:0;for(let t=0,s=0;r.setFrame(t,l,h,c,8&o?1:-1,!!(16&o),!!(32&o)),t!=i;t++){o=e.readByte();const i=e.readFloat(),n=1&o?2&o?e.readFloat():1:0,d=4&o?e.readFloat()*a:0;64&o?r.setStepped(t):128&o&&(de(e,r,s++,t,0,l,i,h,n,1),de(e,r,s++,t,1,l,i,c,d,a)),l=i,h=n,c=d}n.push(r)}for(let t=0,s=e.readInt(!0);t<s;t++){let t=e.readInt(!0),s=e.readInt(!0),i=s-1,a=new z(s,e.readInt(!0),t),r=e.readFloat(),o=e.readFloat(),l=e.readFloat(),h=e.readFloat(),c=e.readFloat(),d=e.readFloat(),u=e.readFloat();for(let t=0,s=0;a.setFrame(t,r,o,l,h,c,d,u),t!=i;t++){let i=e.readFloat(),n=e.readFloat(),m=e.readFloat(),f=e.readFloat(),p=e.readFloat(),g=e.readFloat(),x=e.readFloat();switch(e.readByte()){case qe:a.setStepped(t);break;case Ue:de(e,a,s++,t,0,r,i,o,n,1),de(e,a,s++,t,1,r,i,l,m,1),de(e,a,s++,t,2,r,i,h,f,1),de(e,a,s++,t,3,r,i,c,p,1),de(e,a,s++,t,4,r,i,d,g,1),de(e,a,s++,t,5,r,i,u,x,1)}r=i,o=n,l=m,h=f,c=p,d=g,u=x}n.push(a)}for(let s=0,r=e.readInt(!0);s<r;s++){let s=e.readInt(!0),r=i.pathConstraints[s];for(let i=0,o=e.readInt(!0);i<o;i++){const i=e.readByte(),o=e.readInt(!0),l=e.readInt(!0);switch(i){case Ee:n.push(he(e,new G(o,l,s),r.positionMode==t.PositionMode.Fixed?a:1));break;case Ye:n.push(he(e,new $(o,l,s),r.spacingMode==t.SpacingMode.Length||r.spacingMode==t.SpacingMode.Fixed?a:1));break;case Re:let i=new j(o,l,s),h=e.readFloat(),c=e.readFloat(),d=e.readFloat(),u=e.readFloat();for(let t=0,s=0,n=i.getFrameCount()-1;i.setFrame(t,h,c,d,u),t!=n;t++){let n=e.readFloat(),a=e.readFloat(),r=e.readFloat(),o=e.readFloat();switch(e.readByte()){case qe:i.setStepped(t);break;case Ue:de(e,i,s++,t,0,h,n,c,a,1),de(e,i,s++,t,1,h,n,d,r,1),de(e,i,s++,t,2,h,n,u,o,1)}h=n,c=a,d=r,u=o}n.push(i)}}}for(let t=0,s=e.readInt(!0);t<s;t++){const t=e.readInt(!0)-1;for(let s=0,i=e.readInt(!0);s<i;s++){const s=e.readByte(),i=e.readInt(!0);if(s==Le){const s=new it(i,t);for(let t=0;t<i;t++)s.setFrame(t,e.readFloat());n.push(s);continue}const a=e.readInt(!0);switch(s){case Pe:n.push(he(e,new J(i,a,t),1));break;case _e:n.push(he(e,new K(i,a,t),1));break;case Xe:n.push(he(e,new Q(i,a,t),1));break;case Ve:n.push(he(e,new Z(i,a,t),1));break;case De:n.push(he(e,new tt(i,a,t),1));break;case Oe:n.push(he(e,new et(i,a,t),1));break;case Ne:n.push(he(e,new st(i,a,t),1))}}}for(let t=0,s=e.readInt(!0);t<s;t++){let t=i.skins[e.readInt(!0)];for(let s=0,i=e.readInt(!0);s<i;s++){let s=e.readInt(!0);for(let i=0,r=e.readInt(!0);i<r;i++){let i=e.readStringRef();if(!i)throw new Error("attachmentName must not be null.");let r=t.getAttachment(s,i),o=e.readByte(),h=e.readInt(!0),c=h-1;switch(o){case Ce:{let t=r,i=t.bones,o=t.vertices,d=i?o.length/3*2:o.length,u=e.readInt(!0),m=new L(h,u,s,t),f=e.readFloat();for(let t=0,s=0;;t++){let n,r=e.readInt(!0);if(0==r)n=i?l.newFloatArray(d):o;else{n=l.newFloatArray(d);let t=e.readInt(!0);if(r+=t,1==a)for(let s=t;s<r;s++)n[s]=e.readFloat();else for(let s=t;s<r;s++)n[s]=e.readFloat()*a;if(!i)for(let t=0,e=n.length;t<e;t++)n[t]+=o[t]}if(m.setFrame(t,f,n),t==c)break;let h=e.readFloat();switch(e.readByte()){case qe:m.setStepped(t);break;case Ue:de(e,m,s++,t,0,f,h,0,1,1)}f=h}n.push(m);break}case Fe:{let t=new nt(h,s,r);for(let s=0;s<h;s++){let i=e.readFloat(),n=e.readInt32();t.setFrame(s,i,p[15&n],n>>4,e.readFloat())}n.push(t);break}}}}}let r=e.readInt(!0);if(r>0){let t=new U(r),s=i.slots.length;for(let i=0;i<r;i++){let n=e.readFloat(),a=e.readInt(!0),r=l.newArray(s,0);for(let t=s-1;t>=0;t--)r[t]=-1;let o=l.newArray(s-a,0),h=0,c=0;for(let t=0;t<a;t++){let t=e.readInt(!0);for(;h!=t;)o[c++]=h++;r[h+e.readInt(!0)]=h++}for(;h<s;)o[c++]=h++;for(let t=s-1;t>=0;t--)-1==r[t]&&(r[t]=o[--c]);t.setFrame(i,n,r)}n.push(t)}let o=e.readInt(!0);if(o>0){let t=new q(o);for(let s=0;s<o;s++){let n=e.readFloat(),a=i.events[e.readInt(!0)],r=new Ut(n,a);r.intValue=e.readInt(!1),r.floatValue=e.readFloat(),r.stringValue=e.readString(),null==r.stringValue&&(r.stringValue=a.stringValue),r.data.audioPath&&(r.volume=e.readFloat(),r.balance=e.readFloat()),t.setFrame(s,r)}n.push(t)}let h=0;for(let t=0,e=n.length;t<e;t++)h=Math.max(h,n[t].getDuration());return new g(s,n,h)}}class re{strings;index;buffer;constructor(t,e=new Array,s=0,i=new DataView(t instanceof ArrayBuffer?t:t.buffer)){this.strings=e,this.index=s,this.buffer=i}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 e=this.readByte(),s=127&e;return 128&e&&(e=this.readByte(),s|=(127&e)<<7,128&e&&(e=this.readByte(),s|=(127&e)<<14,128&e&&(e=this.readByte(),s|=(127&e)<<21,128&e&&(e=this.readByte(),s|=(127&e)<<28)))),t?s:s>>>1^-(1&s)}readStringRef(){let t=this.readInt(!0);return 0==t?null:this.strings[t-1]}readString(){let t=this.readInt(!0);switch(t){case 0:return null;case 1:return""}t--;let e="";for(let s=0;s<t;){let t=this.readUnsignedByte();switch(t>>4){case 12:case 13:e+=String.fromCharCode((31&t)<<6|63&this.readByte()),s+=2;break;case 14:e+=String.fromCharCode((15&t)<<12|(63&this.readByte())<<6|63&this.readByte()),s+=3;break;default:e+=String.fromCharCode(t),s++}}return e}readFloat(){let t=this.buffer.getFloat32(this.index);return this.index+=4,t}readBoolean(){return 0!=this.readByte()}}class oe{parent;skinIndex;slotIndex;mesh;inheritTimeline;constructor(t,e,s,i,n){this.mesh=t,this.skinIndex=e,this.slotIndex=s,this.parent=i,this.inheritTimeline=n}}class le{bones;vertices;length;constructor(t=null,e=null,s=0){this.bones=t,this.vertices=e,this.length=s}}function he(t,e,s){let i=t.readFloat(),n=t.readFloat()*s;for(let a=0,r=0,o=e.getFrameCount()-1;e.setFrame(a,i,n),a!=o;a++){let o=t.readFloat(),l=t.readFloat()*s;switch(t.readByte()){case qe:e.setStepped(a);break;case Ue:de(t,e,r++,a,0,i,o,n,l,s)}i=o,n=l}return e}function ce(t,e,s){let i=t.readFloat(),n=t.readFloat()*s,a=t.readFloat()*s;for(let r=0,o=0,l=e.getFrameCount()-1;e.setFrame(r,i,n,a),r!=l;r++){let l=t.readFloat(),h=t.readFloat()*s,c=t.readFloat()*s;switch(t.readByte()){case qe:e.setStepped(r);break;case Ue:de(t,e,o++,r,0,i,l,n,h,s),de(t,e,o++,r,1,i,l,a,c,s)}i=l,n=h,a=c}return e}function de(t,e,s,i,n,a,r,o,l,h){e.setBezier(s,i,n,a,o,t.readFloat(),t.readFloat()*h,t.readFloat(),t.readFloat()*h,r,l)}!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"}(Tt||(Tt={}));const ue=0,me=1,fe=2,pe=3,ge=4,xe=5,we=6,be=7,ye=8,Me=9,Se=10,ve=0,ke=1,Ie=2,Ae=3,Be=4,Te=5,Ce=0,Fe=1,Ee=0,Ye=1,Re=2,Pe=0,_e=1,Xe=2,Ve=4,De=5,Oe=6,Ne=7,Le=8,qe=1,Ue=2;class We{convexPolygons=new Array;convexPolygonsIndices=new Array;indicesArray=new Array;isConcaveArray=new Array;triangles=new Array;polygonPool=new h((()=>new Array));polygonIndicesPool=new h((()=>new Array));triangulate(t){let e=t,s=t.length>>1,i=this.indicesArray;i.length=0;for(let t=0;t<s;t++)i[t]=t;let n=this.isConcaveArray;n.length=0;for(let t=0,a=s;t<a;++t)n[t]=We.isConcave(t,s,e,i);let a=this.triangles;for(a.length=0;s>3;){let t=s-1,r=0,o=1;for(;;){t:if(!n[r]){let a=i[t]<<1,l=i[r]<<1,h=i[o]<<1,c=e[a],d=e[a+1],u=e[l],m=e[l+1],f=e[h],p=e[h+1];for(let a=(o+1)%s;a!=t;a=(a+1)%s){if(!n[a])continue;let t=i[a]<<1,s=e[t],r=e[t+1];if(We.positiveArea(f,p,c,d,s,r)&&We.positiveArea(c,d,u,m,s,r)&&We.positiveArea(u,m,f,p,s,r))break t}break}if(0==o){do{if(!n[r])break;r--}while(r>0);break}t=r,r=o,o=(o+1)%s}a.push(i[(s+r-1)%s]),a.push(i[r]),a.push(i[(r+1)%s]),i.splice(r,1),n.splice(r,1),s--;let l=(s+r-1)%s,h=r==s?0:r;n[l]=We.isConcave(l,s,e,i),n[h]=We.isConcave(h,s,e,i)}return 3==s&&(a.push(i[2]),a.push(i[0]),a.push(i[1])),a}decompose(t,e){let s=t,i=this.convexPolygons;this.polygonPool.freeAll(i),i.length=0;let n=this.convexPolygonsIndices;this.polygonIndicesPool.freeAll(n),n.length=0;let a=this.polygonIndicesPool.obtain();a.length=0;let r=this.polygonPool.obtain();r.length=0;let o=-1,l=0;for(let t=0,h=e.length;t<h;t+=3){let h=e[t]<<1,c=e[t+1]<<1,d=e[t+2]<<1,u=s[h],m=s[h+1],f=s[c],p=s[c+1],g=s[d],x=s[d+1],w=!1;if(o==h){let t=r.length-4,e=We.winding(r[t],r[t+1],r[t+2],r[t+3],g,x),s=We.winding(g,x,r[0],r[1],r[2],r[3]);e==l&&s==l&&(r.push(g),r.push(x),a.push(d),w=!0)}w||(r.length>0?(i.push(r),n.push(a)):(this.polygonPool.free(r),this.polygonIndicesPool.free(a)),r=this.polygonPool.obtain(),r.length=0,r.push(u),r.push(m),r.push(f),r.push(p),r.push(g),r.push(x),a=this.polygonIndicesPool.obtain(),a.length=0,a.push(h),a.push(c),a.push(d),l=We.winding(u,m,f,p,g,x),o=h)}r.length>0&&(i.push(r),n.push(a));for(let t=0,e=i.length;t<e;t++){if(a=n[t],0==a.length)continue;let s=a[0],o=a[a.length-1];r=i[t];let l=r.length-4,h=r[l],c=r[l+1],d=r[l+2],u=r[l+3],m=r[0],f=r[1],p=r[2],g=r[3],x=We.winding(h,c,d,u,m,f);for(let l=0;l<e;l++){if(l==t)continue;let e=n[l];if(3!=e.length)continue;let w=e[0],b=e[1],y=e[2],M=i[l],S=M[M.length-2],v=M[M.length-1];if(w!=s||b!=o)continue;let k=We.winding(h,c,d,u,S,v),I=We.winding(S,v,m,f,p,g);k==x&&I==x&&(M.length=0,e.length=0,r.push(S),r.push(v),a.push(y),h=d,c=u,d=S,u=v,l=0)}}for(let t=i.length-1;t>=0;t--)r=i[t],0==r.length&&(i.splice(t,1),this.polygonPool.free(r),a=n[t],n.splice(t,1),this.polygonIndicesPool.free(a));return i}static isConcave(t,e,s,i){let n=i[(e+t-1)%e]<<1,a=i[t]<<1,r=i[(t+1)%e]<<1;return!this.positiveArea(s[n],s[n+1],s[a],s[a+1],s[r],s[r+1])}static positiveArea(t,e,s,i,n,a){return t*(a-i)+s*(e-a)+n*(i-e)>=0}static winding(t,e,s,i,n,a){let r=s-t,o=i-e;return n*o-a*r+r*e-t*o>=0?1:-1}}class ze{triangulator=new We;clippingPolygon=new Array;clipOutput=new Array;clippedVertices=new Array;clippedUVs=new Array;clippedTriangles=new Array;scratch=new Array;clipAttachment=null;clippingPolygons=null;clipStart(t,e){if(this.clipAttachment)return 0;this.clipAttachment=e;let s=e.worldVerticesLength,i=l.setArraySize(this.clippingPolygon,s);e.computeWorldVertices(t,0,s,i,0,2);let n=this.clippingPolygon;ze.makeClockwise(n);let a=this.clippingPolygons=this.triangulator.decompose(n,this.triangulator.triangulate(n));for(let t=0,e=a.length;t<e;t++){let e=a[t];ze.makeClockwise(e),e.push(e[0]),e.push(e[1])}return a.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 null!=this.clipAttachment}clipTriangles(t,e,s,i,n,a,r,o){let l,h,c,d,u,m;"number"==typeof e?(l=s,h=i,c=n,d=a,u=r,m=o):(l=e,h=s,c=i,d=n,u=a,m=r),c&&d&&u&&"boolean"==typeof m?this.clipTrianglesRender(t,l,h,c,d,u,m):this.clipTrianglesNoRender(t,l,h)}clipTrianglesNoRender(t,e,s){let i=this.clipOutput,n=this.clippedVertices,a=this.clippedTriangles,r=this.clippingPolygons,o=r.length,h=0;n.length=0,a.length=0;for(let c=0;c<s;c+=3){let s=e[c]<<1,d=t[s],u=t[s+1];s=e[c+1]<<1;let m=t[s],f=t[s+1];s=e[c+2]<<1;let p=t[s],g=t[s+1];for(let t=0;t<o;t++){let e=n.length;if(!this.clip(d,u,m,f,p,g,r[t],i)){let t=l.setArraySize(n,e+6);t[e]=d,t[e+1]=u,t[e+2]=m,t[e+3]=f,t[e+4]=p,t[e+5]=g,e=a.length;let s=l.setArraySize(a,e+3);s[e]=h,s[e+1]=h+1,s[e+2]=h+2,h+=3;break}{let t=i.length;if(0==t)continue;let s=t>>1,r=this.clipOutput,o=l.setArraySize(n,e+2*s);for(let s=0;s<t;s+=2,e+=2){let t=r[s],i=r[s+1];o[e]=t,o[e+1]=i}e=a.length;let c=l.setArraySize(a,e+3*(s-2));s--;for(let t=1;t<s;t++,e+=3)c[e]=h,c[e+1]=h+t,c[e+2]=h+t+1;h+=s+1}}}}clipTrianglesRender(t,e,s,i,n,a,r){let o=this.clipOutput,h=this.clippedVertices,c=this.clippedTriangles,d=this.clippingPolygons,u=d.length,m=r?12:8,f=0;h.length=0,c.length=0;for(let p=0;p<s;p+=3){let s=e[p]<<1,g=t[s],x=t[s+1],w=i[s],b=i[s+1];s=e[p+1]<<1;let y=t[s],M=t[s+1],S=i[s],v=i[s+1];s=e[p+2]<<1;let k=t[s],I=t[s+1],A=i[s],B=i[s+1];for(let t=0;t<u;t++){let e=h.length;if(!this.clip(g,x,y,M,k,I,d[t],o)){let t=l.setArraySize(h,e+3*m);t[e]=g,t[e+1]=x,t[e+2]=n.r,t[e+3]=n.g,t[e+4]=n.b,t[e+5]=n.a,r?(t[e+6]=w,t[e+7]=b,t[e+8]=a.r,t[e+9]=a.g,t[e+10]=a.b,t[e+11]=a.a,t[e+12]=y,t[e+13]=M,t[e+14]=n.r,t[e+15]=n.g,t[e+16]=n.b,t[e+17]=n.a,t[e+18]=S,t[e+19]=v,t[e+20]=a.r,t[e+21]=a.g,t[e+22]=a.b,t[e+23]=a.a,t[e+24]=k,t[e+25]=I,t[e+26]=n.r,t[e+27]=n.g,t[e+28]=n.b,t[e+29]=n.a,t[e+30]=A,t[e+31]=B,t[e+32]=a.r,t[e+33]=a.g,t[e+34]=a.b,t[e+35]=a.a):(t[e+6]=w,t[e+7]=b,t[e+8]=y,t[e+9]=M,t[e+10]=n.r,t[e+11]=n.g,t[e+12]=n.b,t[e+13]=n.a,t[e+14]=S,t[e+15]=v,t[e+16]=k,t[e+17]=I,t[e+18]=n.r,t[e+19]=n.g,t[e+20]=n.b,t[e+21]=n.a,t[e+22]=A,t[e+23]=B),e=c.length;let s=l.setArraySize(c,e+3);s[e]=f,s[e+1]=f+1,s[e+2]=f+2,f+=3;break}{let t=o.length;if(0==t)continue;let s=M-I,i=k-y,d=g-k,u=I-x,p=1/(s*d+i*(x-I)),T=t>>1,C=this.clipOutput,F=l.setArraySize(h,e+T*m);for(let o=0;o<t;o+=2,e+=m){let t=C[o],l=C[o+1];F[e]=t,F[e+1]=l,F[e+2]=n.r,F[e+3]=n.g,F[e+4]=n.b,F[e+5]=n.a;let h=t-k,c=l-I,m=(s*h+i*c)*p,f=(u*h+d*c)*p,g=1-m-f;F[e+6]=w*m+S*f+A*g,F[e+7]=b*m+v*f+B*g,r&&(F[e+8]=a.r,F[e+9]=a.g,F[e+10]=a.b,F[e+11]=a.a)}e=c.length;let E=l.setArraySize(c,e+3*(T-2));T--;for(let t=1;t<T;t++,e+=3)E[e]=f,E[e+1]=f+t,E[e+2]=f+t+1;f+=T+1}}}}clipTrianglesUnpacked(t,e,s,i){let n=this.clipOutput,a=this.clippedVertices,r=this.clippedUVs,o=this.clippedTriangles,h=this.clippingPolygons,c=h.length,d=0;a.length=0,r.length=0,o.length=0;for(let u=0;u<s;u+=3){let s=e[u]<<1,m=t[s],f=t[s+1],p=i[s],g=i[s+1];s=e[u+1]<<1;let x=t[s],w=t[s+1],b=i[s],y=i[s+1];s=e[u+2]<<1;let M=t[s],S=t[s+1],v=i[s],k=i[s+1];for(let t=0;t<c;t++){let e=a.length;if(!this.clip(m,f,x,w,M,S,h[t],n)){let t=l.setArraySize(a,e+6);t[e]=m,t[e+1]=f,t[e+2]=x,t[e+3]=w,t[e+4]=M,t[e+5]=S;let s=l.setArraySize(r,e+6);s[e]=p,s[e+1]=g,s[e+2]=b,s[e+3]=y,s[e+4]=v,s[e+5]=k,e=o.length;let i=l.setArraySize(o,e+3);i[e]=d,i[e+1]=d+1,i[e+2]=d+2,d+=3;break}{let t=n.length;if(0==t)continue;let s=w-S,i=M-x,h=m-M,c=S-f,u=1/(s*h+i*(f-S)),I=t>>1,A=this.clipOutput,B=l.setArraySize(a,e+2*I),T=l.setArraySize(r,e+2*I);for(let n=0;n<t;n+=2,e+=2){let t=A[n],a=A[n+1];B[e]=t,B[e+1]=a;let r=t-M,o=a-S,l=(s*r+i*o)*u,d=(c*r+h*o)*u,m=1-l-d;T[e]=p*l+b*d+v*m,T[e+1]=g*l+y*d+k*m}e=o.length;let C=l.setArraySize(o,e+3*(I-2));I--;for(let t=1;t<I;t++,e+=3)C[e]=d,C[e+1]=d+t,C[e+2]=d+t+1;d+=I+1}}}}clip(t,e,s,i,n,a,r,o){let l,h=o,c=!1;r.length%4>=2?(l=o,o=this.scratch):l=this.scratch,l.length=0,l.push(t),l.push(e),l.push(s),l.push(i),l.push(n),l.push(a),l.push(t),l.push(e),o.length=0;let d=r.length-4,u=r;for(let t=0;;t+=2){let e=u[t],s=u[t+1],i=e-u[t+2],n=s-u[t+3],a=o.length,r=l;for(let t=0,a=l.length-2;t<a;){let a=r[t],l=r[t+1];t+=2;let h=r[t],d=r[t+1],u=n*(e-h)>i*(s-d),m=n*(e-a)-i*(s-l);if(m>0){if(u){o.push(h),o.push(d);continue}let t=h-a,e=d-l,s=m/(t*n-e*i);if(!(s>=0&&s<=1)){o.push(h),o.push(d);continue}o.push(a+t*s),o.push(l+e*s)}else if(u){let t=h-a,e=d-l,s=m/(t*n-e*i);if(!(s>=0&&s<=1)){o.push(h),o.push(d);continue}o.push(a+t*s),o.push(l+e*s),o.push(h),o.push(d)}c=!0}if(a==o.length)return h.length=0,!0;if(o.push(o[0]),o.push(o[1]),t==d)break;let m=o;(o=l).length=0,l=m}if(h!=o){h.length=0;for(let t=0,e=o.length-2;t<e;t++)h[t]=o[t]}else h.length=h.length-2;return c}static makeClockwise(t){let e=t,s=t.length,i=e[s-2]*e[1]-e[0]*e[s-1],n=0,a=0,r=0,o=0;for(let t=0,l=s-3;t<l;t+=2)n=e[t],a=e[t+1],r=e[t+2],o=e[t+3],i+=n*o-r*a;if(!(i<0))for(let t=0,i=s-2,n=s>>1;t<n;t+=2){let s=e[t],n=e[t+1],a=i-t;e[t]=e[a],e[t+1]=e[a+1],e[a]=s,e[a+1]=n}}}class Ge{attachmentLoader;scale=1;linkedMeshes=new Array;constructor(t){this.attachmentLoader=t}readSkeletonData(e){let s=this.scale,i=new te,a="string"==typeof e?JSON.parse(e):e,r=a.skeleton;if(r&&(i.hash=r.hash,i.version=r.spine,i.x=r.x,i.y=r.y,i.width=r.width,i.height=r.height,i.referenceScale=Ke(r,"referenceScale",100)*s,i.fps=r.fps,i.imagesPath=r.images??null,i.audioPath=r.audio??null),a.bones)for(let e=0;e<a.bones.length;e++){let n=a.bones[e],r=null,o=Ke(n,"parent",null);o&&(r=i.findBone(o));let h=new Ot(i.bones.length,n.name,r);h.length=Ke(n,"length",0)*s,h.x=Ke(n,"x",0)*s,h.y=Ke(n,"y",0)*s,h.rotation=Ke(n,"rotation",0),h.scaleX=Ke(n,"scaleX",1),h.scaleY=Ke(n,"scaleY",1),h.shearX=Ke(n,"shearX",0),h.shearY=Ke(n,"shearY",0),h.inherit=l.enumValue(t.Inherit,Ke(n,"inherit","Normal")),h.skinRequired=Ke(n,"skin",!1);let c=Ke(n,"color",null);c&&h.color.setFromString(c),i.bones.push(h)}if(a.slots)for(let e=0;e<a.slots.length;e++){let s=a.slots[e],r=s.name,o=i.findBone(s.bone);if(!o)throw new Error(`Couldn't find bone ${s.bone} for slot ${r}`);let h=new ie(i.slots.length,r,o),c=Ke(s,"color",null);c&&h.color.setFromString(c);let d=Ke(s,"dark",null);d&&(h.darkColor=n.fromString(d)),h.attachmentName=Ke(s,"attachment",null),h.blendMode=l.enumValue(t.BlendMode,Ke(s,"blend","normal")),h.visible=Ke(s,"visible",!0),i.slots.push(h)}if(a.ik)for(let t=0;t<a.ik.length;t++){let e=a.ik[t],n=new Gt(e.name);n.order=Ke(e,"order",0),n.skinRequired=Ke(e,"skin",!1);for(let t=0;t<e.bones.length;t++){let s=i.findBone(e.bones[t]);if(!s)throw new Error(`Couldn't find bone ${e.bones[t]} for IK constraint ${e.name}.`);n.bones.push(s)}let r=i.findBone(e.target);if(!r)throw new Error(`Couldn't find target bone ${e.target} for IK constraint ${e.name}.`);n.target=r,n.mix=Ke(e,"mix",1),n.softness=Ke(e,"softness",0)*s,n.bendDirection=Ke(e,"bendPositive",!0)?1:-1,n.compress=Ke(e,"compress",!1),n.stretch=Ke(e,"stretch",!1),n.uniform=Ke(e,"uniform",!1),i.ikConstraints.push(n)}if(a.transform)for(let t=0;t<a.transform.length;t++){let e=a.transform[t],n=new ne(e.name);n.order=Ke(e,"order",0),n.skinRequired=Ke(e,"skin",!1);for(let t=0;t<e.bones.length;t++){let s=e.bones[t],a=i.findBone(s);if(!a)throw new Error(`Couldn't find bone ${s} for transform constraint ${e.name}.`);n.bones.push(a)}let r=e.target,o=i.findBone(r);if(!o)throw new Error(`Couldn't find target bone ${r} for transform constraint ${e.name}.`);n.target=o,n.local=Ke(e,"local",!1),n.relative=Ke(e,"relative",!1),n.offsetRotation=Ke(e,"rotation",0),n.offsetX=Ke(e,"x",0)*s,n.offsetY=Ke(e,"y",0)*s,n.offsetScaleX=Ke(e,"scaleX",0),n.offsetScaleY=Ke(e,"scaleY",0),n.offsetShearY=Ke(e,"shearY",0),n.mixRotate=Ke(e,"mixRotate",1),n.mixX=Ke(e,"mixX",1),n.mixY=Ke(e,"mixY",n.mixX),n.mixScaleX=Ke(e,"mixScaleX",1),n.mixScaleY=Ke(e,"mixScaleY",n.mixScaleX),n.mixShearY=Ke(e,"mixShearY",1),i.transformConstraints.push(n)}if(a.path)for(let e=0;e<a.path.length;e++){let n=a.path[e],r=new $t(n.name);r.order=Ke(n,"order",0),r.skinRequired=Ke(n,"skin",!1);for(let t=0;t<n.bones.length;t++){let e=n.bones[t],s=i.findBone(e);if(!s)throw new Error(`Couldn't find bone ${e} for path constraint ${n.name}.`);r.bones.push(s)}let o=n.target,h=i.findSlot(o);if(!h)throw new Error(`Couldn't find target slot ${o} for path constraint ${n.name}.`);r.target=h,r.positionMode=l.enumValue(t.PositionMode,Ke(n,"positionMode","Percent")),r.spacingMode=l.enumValue(t.SpacingMode,Ke(n,"spacingMode","Length")),r.rotateMode=l.enumValue(t.RotateMode,Ke(n,"rotateMode","Tangent")),r.offsetRotation=Ke(n,"rotation",0),r.position=Ke(n,"position",0),r.positionMode==t.PositionMode.Fixed&&(r.position*=s),r.spacing=Ke(n,"spacing",0),r.spacingMode!=t.SpacingMode.Length&&r.spacingMode!=t.SpacingMode.Fixed||(r.spacing*=s),r.mixRotate=Ke(n,"mixRotate",1),r.mixX=Ke(n,"mixX",1),r.mixY=Ke(n,"mixY",r.mixX),i.pathConstraints.push(r)}if(a.physics)for(let t=0;t<a.physics.length;t++){const e=a.physics[t],n=new Zt(e.name);n.order=Ke(e,"order",0),n.skinRequired=Ke(e,"skin",!1);const r=e.bone,o=i.findBone(r);if(null==o)throw new Error("Physics bone not found: "+r);n.bone=o,n.x=Ke(e,"x",0),n.y=Ke(e,"y",0),n.rotate=Ke(e,"rotate",0),n.scaleX=Ke(e,"scaleX",0),n.shearX=Ke(e,"shearX",0),n.limit=Ke(e,"limit",5e3)*s,n.step=1/Ke(e,"fps",60),n.inertia=Ke(e,"inertia",1),n.strength=Ke(e,"strength",100),n.damping=Ke(e,"damping",1),n.massInverse=1/Ke(e,"mass",1),n.wind=Ke(e,"wind",0),n.gravity=Ke(e,"gravity",0),n.mix=Ke(e,"mix",1),n.inertiaGlobal=Ke(e,"inertiaGlobal",!1),n.strengthGlobal=Ke(e,"strengthGlobal",!1),n.dampingGlobal=Ke(e,"dampingGlobal",!1),n.massGlobal=Ke(e,"massGlobal",!1),n.windGlobal=Ke(e,"windGlobal",!1),n.gravityGlobal=Ke(e,"gravityGlobal",!1),n.mixGlobal=Ke(e,"mixGlobal",!1),i.physicsConstraints.push(n)}if(a.skins)for(let t=0;t<a.skins.length;t++){let e=a.skins[t],s=new se(e.name);if(e.bones)for(let t=0;t<e.bones.length;t++){let n=e.bones[t],a=i.findBone(n);if(!a)throw new Error(`Couldn't find bone ${n} for skin ${e.name}.`);s.bones.push(a)}if(e.ik)for(let t=0;t<e.ik.length;t++){let n=e.ik[t],a=i.findIkConstraint(n);if(!a)throw new Error(`Couldn't find IK constraint ${n} for skin ${e.name}.`);s.constraints.push(a)}if(e.transform)for(let t=0;t<e.transform.length;t++){let n=e.transform[t],a=i.findTransformConstraint(n);if(!a)throw new Error(`Couldn't find transform constraint ${n} for skin ${e.name}.`);s.constraints.push(a)}if(e.path)for(let t=0;t<e.path.length;t++){let n=e.path[t],a=i.findPathConstraint(n);if(!a)throw new Error(`Couldn't find path constraint ${n} for skin ${e.name}.`);s.constraints.push(a)}if(e.physics)for(let t=0;t<e.physics.length;t++){let n=e.physics[t],a=i.findPhysicsConstraint(n);if(!a)throw new Error(`Couldn't find physics constraint ${n} for skin ${e.name}.`);s.constraints.push(a)}for(let t in e.attachments){let n=i.findSlot(t);if(!n)throw new Error(`Couldn't find slot ${t} for skin ${e.name}.`);let a=e.attachments[t];for(let t in a){let e=this.readAttachment(a[t],s,n.index,t,i);e&&s.setAttachment(n.index,t,e)}}i.skins.push(s),"default"==s.name&&(i.defaultSkin=s)}for(let t=0,e=this.linkedMeshes.length;t<e;t++){let e=this.linkedMeshes[t],s=e.skin?i.findSkin(e.skin):i.defaultSkin;if(!s)throw new Error(`Skin not found: ${e.skin}`);let n=s.getAttachment(e.slotIndex,e.parent);if(!n)throw new Error(`Parent mesh not found: ${e.parent}`);e.mesh.timelineAttachment=e.inheritTimeline?n:e.mesh,e.mesh.setParentMesh(n),null!=e.mesh.region&&e.mesh.updateRegion()}if(this.linkedMeshes.length=0,a.events)for(let t in a.events){let e=a.events[t],s=new Wt(t);s.intValue=Ke(e,"int",0),s.floatValue=Ke(e,"float",0),s.stringValue=Ke(e,"string",""),s.audioPath=Ke(e,"audio",null),s.audioPath&&(s.volume=Ke(e,"volume",1),s.balance=Ke(e,"balance",0)),i.events.push(s)}if(a.animations)for(let t in a.animations){let e=a.animations[t];this.readAnimation(e,t,i)}return i}readAttachment(t,e,s,i,n){let a=this.scale;switch(i=Ke(t,"name",i),Ke(t,"type","region")){case"region":{let s=Ke(t,"path",i),n=this.readSequence(Ke(t,"sequence",null)),r=this.attachmentLoader.newRegionAttachment(e,i,s,n);if(!r)return null;r.path=s,r.x=Ke(t,"x",0)*a,r.y=Ke(t,"y",0)*a,r.scaleX=Ke(t,"scaleX",1),r.scaleY=Ke(t,"scaleY",1),r.rotation=Ke(t,"rotation",0),r.width=t.width*a,r.height=t.height*a,r.sequence=n;let o=Ke(t,"color",null);return o&&r.color.setFromString(o),null!=r.region&&r.updateRegion(),r}case"boundingbox":{let s=this.attachmentLoader.newBoundingBoxAttachment(e,i);if(!s)return null;this.readVertices(t,s,t.vertexCount<<1);let n=Ke(t,"color",null);return n&&s.color.setFromString(n),s}case"mesh":case"linkedmesh":{let n=Ke(t,"path",i),r=this.readSequence(Ke(t,"sequence",null)),o=this.attachmentLoader.newMeshAttachment(e,i,n,r);if(!o)return null;o.path=n;let l=Ke(t,"color",null);l&&o.color.setFromString(l),o.width=Ke(t,"width",0)*a,o.height=Ke(t,"height",0)*a,o.sequence=r;let h=Ke(t,"parent",null);if(h)return this.linkedMeshes.push(new $e(o,Ke(t,"skin",null),s,h,Ke(t,"timelines",!0))),o;let c=t.uvs;return this.readVertices(t,o,c.length),o.triangles=t.triangles,o.regionUVs=c,null!=o.region&&o.updateRegion(),o.edges=Ke(t,"edges",null),o.hullLength=2*Ke(t,"hull",0),o}case"path":{let s=this.attachmentLoader.newPathAttachment(e,i);if(!s)return null;s.closed=Ke(t,"closed",!1),s.constantSpeed=Ke(t,"constantSpeed",!0);let n=t.vertexCount;this.readVertices(t,s,n<<1);let r=l.newArray(n/3,0);for(let e=0;e<t.lengths.length;e++)r[e]=t.lengths[e]*a;s.lengths=r;let o=Ke(t,"color",null);return o&&s.color.setFromString(o),s}case"point":{let s=this.attachmentLoader.newPointAttachment(e,i);if(!s)return null;s.x=Ke(t,"x",0)*a,s.y=Ke(t,"y",0)*a,s.rotation=Ke(t,"rotation",0);let n=Ke(t,"color",null);return n&&s.color.setFromString(n),s}case"clipping":{let s=this.attachmentLoader.newClippingAttachment(e,i);if(!s)return null;let a=Ke(t,"end",null);a&&(s.endSlot=n.findSlot(a));let r=t.vertexCount;this.readVertices(t,s,r<<1);let o=Ke(t,"color",null);return o&&s.color.setFromString(o),s}}return null}readSequence(t){if(null==t)return null;let e=new m(Ke(t,"count",0));return e.start=Ke(t,"start",1),e.digits=Ke(t,"digits",0),e.setupIndex=Ke(t,"setup",0),e}readVertices(t,e,s){let i=this.scale;e.worldVerticesLength=s;let n=t.vertices;if(s==n.length){let t=l.toFloatArray(n);if(1!=i)for(let e=0,s=n.length;e<s;e++)t[e]*=i;return void(e.vertices=t)}let a=new Array,r=new Array;for(let t=0,e=n.length;t<e;){let e=n[t++];r.push(e);for(let s=t+4*e;t<s;t+=4)r.push(n[t]),a.push(n[t+1]*i),a.push(n[t+2]*i),a.push(n[t+3])}e.bones=r,e.vertices=l.toFloatArray(a)}readAnimation(e,s,i){let a=this.scale,r=new Array;if(e.slots)for(let t in e.slots){let s=e.slots[t],a=i.findSlot(t);if(!a)throw new Error("Slot not found: "+t);let o=a.index;for(let t in s){let e=s[t];if(!e)continue;let i=e.length;if("attachment"==t){let t=new N(i,o);for(let s=0;s<i;s++){let i=e[s];t.setFrame(s,Ke(i,"time",0),Ke(i,"name",null))}r.push(t)}else if("rgba"==t){let t=new _(i,i<<2,o),s=e[0],a=Ke(s,"time",0),l=n.fromString(s.color);for(let i=0,r=0;;i++){t.setFrame(i,a,l.r,l.g,l.b,l.a);let o=e[i+1];if(!o){t.shrink(r);break}let h=Ke(o,"time",0),c=n.fromString(o.color),d=s.curve;d&&(r=Je(d,t,r,i,0,a,h,l.r,c.r,1),r=Je(d,t,r,i,1,a,h,l.g,c.g,1),r=Je(d,t,r,i,2,a,h,l.b,c.b,1),r=Je(d,t,r,i,3,a,h,l.a,c.a,1)),a=h,l=c,s=o}r.push(t)}else if("rgb"==t){let t=new X(i,3*i,o),s=e[0],a=Ke(s,"time",0),l=n.fromString(s.color);for(let i=0,r=0;;i++){t.setFrame(i,a,l.r,l.g,l.b);let o=e[i+1];if(!o){t.shrink(r);break}let h=Ke(o,"time",0),c=n.fromString(o.color),d=s.curve;d&&(r=Je(d,t,r,i,0,a,h,l.r,c.r,1),r=Je(d,t,r,i,1,a,h,l.g,c.g,1),r=Je(d,t,r,i,2,a,h,l.b,c.b,1)),a=h,l=c,s=o}r.push(t)}else if("alpha"==t)r.push(je(e,new V(i,i,o),0,1));else if("rgba2"==t){let t=new D(i,7*i,o),s=e[0],a=Ke(s,"time",0),l=n.fromString(s.light),h=n.fromString(s.dark);for(let i=0,r=0;;i++){t.setFrame(i,a,l.r,l.g,l.b,l.a,h.r,h.g,h.b);let o=e[i+1];if(!o){t.shrink(r);break}let c=Ke(o,"time",0),d=n.fromString(o.light),u=n.fromString(o.dark),m=s.curve;m&&(r=Je(m,t,r,i,0,a,c,l.r,d.r,1),r=Je(m,t,r,i,1,a,c,l.g,d.g,1),r=Je(m,t,r,i,2,a,c,l.b,d.b,1),r=Je(m,t,r,i,3,a,c,l.a,d.a,1),r=Je(m,t,r,i,4,a,c,h.r,u.r,1),r=Je(m,t,r,i,5,a,c,h.g,u.g,1),r=Je(m,t,r,i,6,a,c,h.b,u.b,1)),a=c,l=d,h=u,s=o}r.push(t)}else if("rgb2"==t){let t=new O(i,6*i,o),s=e[0],a=Ke(s,"time",0),l=n.fromString(s.light),h=n.fromString(s.dark);for(let i=0,r=0;;i++){t.setFrame(i,a,l.r,l.g,l.b,h.r,h.g,h.b);let o=e[i+1];if(!o){t.shrink(r);break}let c=Ke(o,"time",0),d=n.fromString(o.light),u=n.fromString(o.dark),m=s.curve;m&&(r=Je(m,t,r,i,0,a,c,l.r,d.r,1),r=Je(m,t,r,i,1,a,c,l.g,d.g,1),r=Je(m,t,r,i,2,a,c,l.b,d.b,1),r=Je(m,t,r,i,3,a,c,h.r,u.r,1),r=Je(m,t,r,i,4,a,c,h.g,u.g,1),r=Je(m,t,r,i,5,a,c,h.b,u.b,1)),a=c,l=d,h=u,s=o}r.push(t)}}}if(e.bones)for(let s in e.bones){let n=e.bones[s],o=i.findBone(s);if(!o)throw new Error("Bone not found: "+s);let h=o.index;for(let e in n){let s=n[e],i=s.length;if(0!=i)if("rotate"===e)r.push(je(s,new k(i,i,h),0,1));else if("translate"===e){let t=new I(i,i<<1,h);r.push(He(s,t,"x","y",0,a))}else if("translatex"===e){let t=new A(i,i,h);r.push(je(s,t,0,a))}else if("translatey"===e){let t=new B(i,i,h);r.push(je(s,t,0,a))}else if("scale"===e){let t=new T(i,i<<1,h);r.push(He(s,t,"x","y",1,1))}else if("scalex"===e){let t=new C(i,i,h);r.push(je(s,t,1,1))}else if("scaley"===e){let t=new F(i,i,h);r.push(je(s,t,1,1))}else if("shear"===e){let t=new E(i,i<<1,h);r.push(He(s,t,"x","y",0,1))}else if("shearx"===e){let t=new Y(i,i,h);r.push(je(s,t,0,1))}else if("sheary"===e){let t=new R(i,i,h);r.push(je(s,t,0,1))}else if("inherit"===e){let e=new P(i,o.index);for(let i=0;i<s.length;i++){let n=s[i];e.setFrame(i,Ke(n,"time",0),l.enumValue(t.Inherit,Ke(n,"inherit","Normal")))}r.push(e)}}}if(e.ik)for(let t in e.ik){let s=e.ik[t],n=s[0];if(!n)continue;let o=i.findIkConstraint(t);if(!o)throw new Error("IK Constraint not found: "+t);let l=i.ikConstraints.indexOf(o),h=new W(s.length,s.length<<1,l),c=Ke(n,"time",0),d=Ke(n,"mix",1),u=Ke(n,"softness",0)*a;for(let t=0,e=0;;t++){h.setFrame(t,c,d,u,Ke(n,"bendPositive",!0)?1:-1,Ke(n,"compress",!1),Ke(n,"stretch",!1));let i=s[t+1];if(!i){h.shrink(e);break}let r=Ke(i,"time",0),o=Ke(i,"mix",1),l=Ke(i,"softness",0)*a,m=n.curve;m&&(e=Je(m,h,e,t,0,c,r,d,o,1),e=Je(m,h,e,t,1,c,r,u,l,a)),c=r,d=o,u=l,n=i}r.push(h)}if(e.transform)for(let t in e.transform){let s=e.transform[t],n=s[0];if(!n)continue;let a=i.findTransformConstraint(t);if(!a)throw new Error("Transform constraint not found: "+t);let o=i.transformConstraints.indexOf(a),l=new z(s.length,6*s.length,o),h=Ke(n,"time",0),c=Ke(n,"mixRotate",1),d=Ke(n,"mixX",1),u=Ke(n,"mixY",d),m=Ke(n,"mixScaleX",1),f=Ke(n,"mixScaleY",m),p=Ke(n,"mixShearY",1);for(let t=0,e=0;;t++){l.setFrame(t,h,c,d,u,m,f,p);let i=s[t+1];if(!i){l.shrink(e);break}let a=Ke(i,"time",0),r=Ke(i,"mixRotate",1),o=Ke(i,"mixX",1),g=Ke(i,"mixY",o),x=Ke(i,"mixScaleX",1),w=Ke(i,"mixScaleY",x),b=Ke(i,"mixShearY",1),y=n.curve;y&&(e=Je(y,l,e,t,0,h,a,c,r,1),e=Je(y,l,e,t,1,h,a,d,o,1),e=Je(y,l,e,t,2,h,a,u,g,1),e=Je(y,l,e,t,3,h,a,m,x,1),e=Je(y,l,e,t,4,h,a,f,w,1),e=Je(y,l,e,t,5,h,a,p,b,1)),h=a,c=r,d=o,u=g,m=x,f=w,m=x,n=i}r.push(l)}if(e.path)for(let s in e.path){let n=e.path[s],o=i.findPathConstraint(s);if(!o)throw new Error("Path constraint not found: "+s);let l=i.pathConstraints.indexOf(o);for(let e in n){let s=n[e],i=s[0];if(!i)continue;let h=s.length;if("position"===e){let e=new G(h,h,l);r.push(je(s,e,0,o.positionMode==t.PositionMode.Fixed?a:1))}else if("spacing"===e){let e=new $(h,h,l);r.push(je(s,e,0,o.spacingMode==t.SpacingMode.Length||o.spacingMode==t.SpacingMode.Fixed?a:1))}else if("mix"===e){let t=new j(h,3*h,l),e=Ke(i,"time",0),n=Ke(i,"mixRotate",1),a=Ke(i,"mixX",1),o=Ke(i,"mixY",a);for(let r=0,l=0;;r++){t.setFrame(r,e,n,a,o);let h=s[r+1];if(!h){t.shrink(l);break}let c=Ke(h,"time",0),d=Ke(h,"mixRotate",1),u=Ke(h,"mixX",1),m=Ke(h,"mixY",u),f=i.curve;f&&(l=Je(f,t,l,r,0,e,c,n,d,1),l=Je(f,t,l,r,1,e,c,a,u,1),l=Je(f,t,l,r,2,e,c,o,m,1)),e=c,n=d,a=u,o=m,i=h}r.push(t)}}}if(e.physics)for(let t in e.physics){let s=e.physics[t],n=-1;if(t.length>0){let e=i.findPhysicsConstraint(t);if(!e)throw new Error("Physics constraint not found: "+t);n=i.physicsConstraints.indexOf(e)}for(let t in s){let e=s[t],i=e[0];if(!i)continue;let a,o=e.length;if("reset"!=t){if("inertia"==t)a=new J(o,o,n);else if("strength"==t)a=new K(o,o,n);else if("damping"==t)a=new Q(o,o,n);else if("mass"==t)a=new Z(o,o,n);else if("wind"==t)a=new tt(o,o,n);else if("gravity"==t)a=new et(o,o,n);else{if("mix"!=t)continue;a=new st(o,o,n)}r.push(je(e,a,0,1))}else{const t=new it(o,n);for(let s=0;null!=i;i=e[s+1],s++)t.setFrame(s,Ke(i,"time",0));r.push(t)}}}if(e.attachments)for(let t in e.attachments){let s=e.attachments[t],n=i.findSkin(t);if(!n)throw new Error("Skin not found: "+t);for(let t in s){let e=s[t],o=i.findSlot(t);if(!o)throw new Error("Slot not found: "+t);let h=o.index;for(let t in e){let s=e[t],i=n.getAttachment(h,t);for(let t in s){let e=s[t],n=e[0];if(n)if("deform"==t){let t=i.bones,s=i.vertices,o=t?s.length/3*2:s.length,c=new L(e.length,e.length,h,i),d=Ke(n,"time",0);for(let i=0,r=0;;i++){let h,u=Ke(n,"vertices",null);if(u){h=l.newFloatArray(o);let e=Ke(n,"offset",0);if(l.arrayCopy(u,0,h,e,u.length),1!=a)for(let t=e,s=t+u.length;t<s;t++)h[t]*=a;if(!t)for(let t=0;t<o;t++)h[t]+=s[t]}else h=t?l.newFloatArray(o):s;c.setFrame(i,d,h);let m=e[i+1];if(!m){c.shrink(r);break}let f=Ke(m,"time",0),p=n.curve;p&&(r=Je(p,c,r,i,0,d,f,0,1,1)),d=f,n=m}r.push(c)}else if("sequence"==t){let t=new nt(e.length,h,i),s=0;for(let i=0;i<e.length;i++){let a=Ke(n,"delay",s),r=Ke(n,"time",0),o=f[Ke(n,"mode","hold")],l=Ke(n,"index",0);t.setFrame(i,r,o,l,a),s=a,n=e[i+1]}r.push(t)}}}}}if(e.drawOrder){let t=new U(e.drawOrder.length),s=i.slots.length,n=0;for(let a=0;a<e.drawOrder.length;a++,n++){let r=e.drawOrder[a],o=null,h=Ke(r,"offsets",null);if(h){o=l.newArray(s,-1);let t=l.newArray(s-h.length,0),e=0,n=0;for(let s=0;s<h.length;s++){let a=h[s],r=i.findSlot(a.slot);if(!r)throw new Error("Slot not found: "+r);let l=r.index;for(;e!=l;)t[n++]=e++;o[e+a.offset]=e++}for(;e<s;)t[n++]=e++;for(let e=s-1;e>=0;e--)-1==o[e]&&(o[e]=t[--n])}t.setFrame(n,Ke(r,"time",0),o)}r.push(t)}if(e.events){let t=new q(e.events.length),s=0;for(let n=0;n<e.events.length;n++,s++){let a=e.events[n],r=i.findEvent(a.name);if(!r)throw new Error("Event not found: "+a.name);let o=new Ut(l.toSinglePrecision(Ke(a,"time",0)),r);o.intValue=Ke(a,"int",r.intValue),o.floatValue=Ke(a,"float",r.floatValue),o.stringValue=Ke(a,"string",r.stringValue),o.data.audioPath&&(o.volume=Ke(a,"volume",1),o.balance=Ke(a,"balance",0)),t.setFrame(s,o)}r.push(t)}let o=0;for(let t=0,e=r.length;t<e;t++)o=Math.max(o,r[t].getDuration());i.animations.push(new g(s,r,o))}}class $e{parent;skin;slotIndex;mesh;inheritTimeline;constructor(t,e,s,i,n){this.mesh=t,this.skin=e,this.slotIndex=s,this.parent=i,this.inheritTimeline=n}}function je(t,e,s,i){let n=t[0],a=Ke(n,"time",0),r=Ke(n,"value",s)*i,o=0;for(let l=0;;l++){e.setFrame(l,a,r);let h=t[l+1];if(!h)return e.shrink(o),e;let c=Ke(h,"time",0),d=Ke(h,"value",s)*i;n.curve&&(o=Je(n.curve,e,o,l,0,a,c,r,d,i)),a=c,r=d,n=h}}function He(t,e,s,i,n,a){let r=t[0],o=Ke(r,"time",0),l=Ke(r,s,n)*a,h=Ke(r,i,n)*a,c=0;for(let d=0;;d++){e.setFrame(d,o,l,h);let u=t[d+1];if(!u)return e.shrink(c),e;let m=Ke(u,"time",0),f=Ke(u,s,n)*a,p=Ke(u,i,n)*a,g=r.curve;g&&(c=Je(g,e,c,d,0,o,m,l,f,a),c=Je(g,e,c,d,1,o,m,h,p,a)),o=m,l=f,h=p,r=u}}function Je(t,e,s,i,n,a,r,o,l,h){if("stepped"==t)return e.setStepped(i),s;let c=n<<2,d=t[c],u=t[c+1]*h,m=t[c+2],f=t[c+3]*h;return e.setBezier(s,i,n,a,o,d,u,m,f,r,l),s+1}function Ke(t,e,s){return void 0!==t[e]?t[e]:s}var Qe;function Ze(t,e,s){const i=new Dt(t);return"json"===s?new Ge(i).readSkeletonData(e):new ae(i).readSkeletonData(new Uint8Array(e))}async function ts(t,s,i){let n;const a=t.map(((t,n)=>{const a=s[n];let r=e.AssetType.Texture2D;return"ktx"===a?r=e.AssetType.KTX:"ktx2"===a&&(r=e.AssetType.KTX2),is(t,i,r)}));try{n=await Promise.all(a)}catch(t){throw t}return n}async function es(t,s){const i=function(t){const e=new URL(t),s=e.origin+e.pathname;return s.endsWith("/")?s:s.substring(0,s.lastIndexOf("/")+1)}(t);let n,a;try{n=await e.request(t,{type:"text"})}catch(e){throw new Error(`Spine Atlas: ${t} load error: ${e}`)}let r=new Ft(n);const o=[];for(let t of r.pages){const e=i+t.name;o.push(is(e,s))}try{a=await Promise.all(o)}catch(t){throw new Error(`Spine Texture: load error: ${t}`)}return r=ss(n,a),r}function ss(t,e){const s=new Ft(t);return s.pages.forEach(((t,s)=>{const i=function(t){return new ns(new Image,t)}(e.find((e=>e.name===t.name))||e[s]);t.setTexture(i)})),s}function is(t,s,i=e.AssetType.Texture2D){return s.resourceManager.load({url:t,type:i})}void 0===Math.fround&&(Math.fround=(Qe=new Float32Array(1),function(t){return Qe[0]=t,Qe[0]}));class ns extends bt{constructor(t,e){super(t),this.texture=e,this.texture.generateMipmaps()}getImage(){return this.texture}setFilters(s,i){s===t.TextureFilter.Nearest?this.texture.filterMode=e.TextureFilterMode.Point:i===t.TextureFilter.MipMapLinearLinear?this.texture.filterMode=e.TextureFilterMode.Trilinear:this.texture.filterMode=e.TextureFilterMode.Bilinear}setWraps(t,e){this.texture.wrapModeU=this._convertWrapMode(t),this.texture.wrapModeV=this._convertWrapMode(e)}dispose(){}_convertWrapMode(s){switch(s){case t.TextureWrap.ClampToEdge:return e.TextureWrapMode.Clamp;case t.TextureWrap.Repeat:return e.TextureWrapMode.Repeat;case t.TextureWrap.MirroredRepeat:return e.TextureWrapMode.Mirror;default:throw new Error("Unsupported texture wrap mode.")}}}class as{constructor(t,e=1){this._type=t,this._lastElementIndex=e-1;const s=this._elements=new Array(e);for(let i=0;i<e;++i)s[i]=new t}get(){return this._lastElementIndex<0?new this._type:this._elements[this._lastElementIndex--]}return(t){this._elements[++this._lastElementIndex]=t}}class rs{constructor(t){this._usedElementCount=0,this._type=t,this._elements=[]}get(){const{_usedElementCount:t,_elements:e}=this;if(this._usedElementCount++,e.length===t){const t=new this._type;return e.push(t),t}return e[t]}clear(){this._usedElementCount=0}}const{SourceAlpha:os,One:ls,DestinationColor:hs,Zero:cs,OneMinusSourceColor:ds,OneMinusSourceAlpha:us}=e.BlendFactor,{Add:ms}=e.BlendOperation;function fs(e,s,i){const n=e.renderState.blendState.targetBlendState;switch(s){case t.BlendMode.Additive:n.sourceColorBlendFactor=i?ls:os,n.destinationColorBlendFactor=ls,n.sourceAlphaBlendFactor=ls,n.destinationAlphaBlendFactor=ls,n.colorBlendOperation=n.alphaBlendOperation=ms;break;case t.BlendMode.Multiply:n.sourceColorBlendFactor=hs,n.destinationColorBlendFactor=us,n.sourceAlphaBlendFactor=ls,n.destinationAlphaBlendFactor=us,n.colorBlendOperation=n.alphaBlendOperation=ms;break;case t.BlendMode.Screen:n.sourceColorBlendFactor=ls,n.destinationColorBlendFactor=ds,n.sourceAlphaBlendFactor=ls,n.destinationAlphaBlendFactor=ds,n.colorBlendOperation=n.alphaBlendOperation=ms;break;default:n.sourceColorBlendFactor=i?ls:os,n.destinationColorBlendFactor=us,n.sourceAlphaBlendFactor=ls,n.destinationAlphaBlendFactor=us,n.colorBlendOperation=n.alphaBlendOperation=ms}}class ps{}const gs=1/0,xs=-1/0;class ws{static{this.QUAD_TRIANGLES=[0,1,2,2,3,0]}static{this.VERTEX_SIZE=8}static{this.VERTEX_STRIDE=9}static{this.tempDark=new n}static{this.tempColor=new n}static{this.tempVerts=new Array(8)}static{this.tempBlendMode=null}static{this.tempTexture=null}static{this.subPrimitivePool=new as(e.SubPrimitive)}static{this.subRenderItemPool=new rs(ps)}static{this.bounds=new e.BoundingBox(new e.Vector3(gs,gs,gs),new e.Vector3(xs,xs,xs))}buildPrimitive(e,s){const{_clipper:i,_separateSlots:n,_subRenderItems:a,_separateSlotTextureMap:r}=this,{bounds:o}=ws;o.min.set(gs,gs,gs),o.max.set(xs,xs,xs);let l=0,h=0;const c=e.drawOrder,d=c.length,{engine:u,_indices:m,_vertices:f,_vertexCount:p,_subPrimitives:g,zSpacing:x,premultipliedAlpha:w}=s;let{tempVerts:b,tempTexture:y,tempBlendMode:M,subRenderItemPool:S,subPrimitivePool:v}=ws;a.length=0,S.clear();let k,I,A=s._vertices,B=0,T=0,C=t.BlendMode.Normal,F=null,E=0;ws.tempBlendMode=null,ws.tempTexture=null;for(let t=0;t<d;++t){const e=c[t];if(!e.bone.active){i.clipEndWithSlot(e);continue}const s=e.getAttachment();let o=null;const d=x*t;let u=0;const p=i.isClipping();let Y=p?2:ws.VERTEX_SIZE;if(s){switch(s.constructor){case Vt:const t=s;o=t.color,u=4*Y,t.computeWorldVertices(e,b,0,Y),k=ws.QUAD_TRIANGLES,I=t.uvs,F=t.region.texture;break;case Pt:const n=s;o=n.color,u=(n.worldVerticesLength>>1)*Y,u>A.length&&(ws.tempVerts=new Array(u)),n.computeWorldVertices(e,0,n.worldVerticesLength,b,0,Y),k=n.triangles,I=n.uvs,F=n.region.texture;break;case wt:let a=s;i.clipStart(e,a);continue;default:i.clipEndWithSlot(e);continue}if(null!=F){let t,s,c,x,A=e.bone.skeleton.color,R=e.color,P=ws.tempColor,_=ws.tempDark;if(P.r=A.r*R.r*o.r,P.g=A.g*R.g*o.g,P.b=A.b*R.b*o.b,P.a=A.a*R.a*o.a,w&&(P.r*=P.a,P.g*=P.a,P.b*=P.a),p)i.clipTriangles(b,k,k.length,I,P,_,!1),t=i.clippedVertices,s=t.length,c=i.clippedTriangles,x=c.length;else{let e=b;const{r:i,g:n,b:a,a:r}=P;for(let t=2,s=0,o=u;t<o;t+=Y,s+=2)e[t]=i,e[t+1]=n,e[t+2]=a,e[t+3]=r,e[t+4]=I[s],e[t+5]=I[s+1];t=b,s=u,c=k,x=k.length}if(0==s||0==x){i.clipEndWithSlot(e);continue}let X=l/ws.VERTEX_STRIDE,V=f,D=l,O=0;for(;O<s;){let e=t[O++],s=t[O++];V[D++]=e,V[D++]=s,V[D++]=d,V[D++]=t[O++],V[D++]=t[O++],V[D++]=t[O++],V[D++]=t[O++],V[D++]=t[O++],V[D++]=t[O++],this._expandByPoint(e,s,d)}l=D;let N=m;for(D=h,O=0;O<x;D++,O++)N[D]=c[O]+X;h+=x;const L=e.data,q=L.name;C=L.blendMode;const U=null!==M&&M!==L.blendMode,W=null!==y&&y!==F,z=n.get(q);if(z||U||W){if(T>0){const t=g[E];t&&E++;const e=t||v.get();e.start=B,e.count=T;const s=S.get();s.subPrimitive=e,s.texture=y,s.blendMode=M,a.push(s),B+=T,T=0}if(z){const t=r.get(q);if(t){const e=F.texture;t.filterMode=e.filterMode,t.wrapModeU=e.wrapModeU,t.wrapModeV=e.wrapModeV}const e=g[E];e&&E++;const s=e||v.get();s.start=B,s.count=x;const i=S.get();i.blendMode=C,i.subPrimitive=s,i.texture=F,i.slotName=q,a.push(i),B+=x,T=0}else T+=x}else T+=x;y=F,M=C}i.clipEndWithSlot(e)}else i.clipEndWithSlot(e)}if(T>0){const t=g[E];t&&E++;const e=t||v.get();e.start=B,e.count=T;const s=S.get();s.blendMode=C,s.subPrimitive=e,s.texture=F,a.push(s),T=0}i.clipEnd();const Y=g.length,R=a.length;if(R<Y)for(let t=R;t<Y;t++){const e=g[t];v.return(e)}s._clearSubPrimitives();for(let t=0,e=R;t<e;++t){const e=a[t],{slotName:i,blendMode:n,texture:o}=e;s._addSubPrimitive(e.subPrimitive);let l=o.texture;r.has(i)&&(l=r.get(i));const h=`${l.instanceId}_${n}`;let c=ys._materialCache.get(h);c||(c=this._createMaterialForTexture(l,u,n,w),ys._materialCache.set(h,c)),s.setMaterial(t,c)}if(h>p)return s._createAndBindBuffer(h),void this.buildPrimitive(e,s);s._vertexBuffer.setData(f),s._indexBuffer.setData(m)}addSeparateSlot(t){this._separateSlots.set(t,t)}addSeparateSlotTexture(t,e){this._separateSlotTextureMap.set(t,e)}_createMaterialForTexture(t,e,s,i){const n=ys._getDefaultMaterial(e);return n.shaderData.setTexture("material_SpineTexture",t),fs(n,s,i),n}_expandByPoint(t,e,s){const{bounds:{min:i,max:n}}=ws,a=Math.min(i.x,t),r=Math.min(i.y,e),o=Math.min(i.z,s),l=Math.max(n.x,t),h=Math.max(n.y,e),c=Math.max(n.z,s);i.set(a,r,o),n.set(l,h,c)}constructor(){this._clipper=new ze,this._subRenderItems=[],this._separateSlots=new Map,this._separateSlotTextureMap=new Map}}class bs extends e.Material{static{this._spineVS="\n uniform mat4 renderer_MVPMat;\n\n attribute vec3 POSITION;\n attribute vec2 TEXCOORD_0;\n attribute vec4 COLOR_0;\n \n varying vec2 v_uv;\n varying vec4 v_color;\n \n void main()\n {\n gl_Position = renderer_MVPMat * vec4(POSITION, 1.0);\n \n v_uv = TEXCOORD_0;\n v_color = COLOR_0;\n }\n "}static{this._spineFS="\n uniform sampler2D material_SpineTexture;\n\n varying vec2 v_uv;\n varying vec4 v_color;\n \n void main()\n {\n vec4 baseColor = texture2D(material_SpineTexture, v_uv);\n gl_FragColor = baseColor * v_color;\n }\n "}constructor(s){super(s,e.Shader.find("galacean-spine-shader")||e.Shader.create("galacean-spine-shader",bs._spineVS,bs._spineFS));const i=this.renderState;i.blendState.targetBlendState.enabled=!0,fs(this,t.BlendMode.Normal,!1),i.depthState.writeEnabled=!1,i.rasterState.cullMode=e.CullMode.Off,i.renderQueueType=e.RenderQueueType.Transparent}}class ys extends e.Renderer{static{this._spineGenerator=new ws}static{this._positionVertexElement=new e.VertexElement("POSITION",0,e.VertexElementFormat.Vector3,0)}static{this._colorVertexElement=new e.VertexElement("COLOR_0",12,e.VertexElementFormat.Vector4,0)}static{this._uvVertexElement=new e.VertexElement("TEXCOORD_0",28,e.VertexElementFormat.Vector2,0)}static{this._materialCache=new Map}static _getDefaultMaterial(t){let e=this._defaultMaterial;if(e){if(e.engine===t)return e.clone();e.destroy(!0),e=null}return e=new bs(t),e.isGCIgnored=!0,this._defaultMaterial=e,e.clone()}get state(){return this._state}get skeleton(){return this._skeleton}constructor(t){super(t),this.zSpacing=.01,this.premultipliedAlpha=!1,this.defaultConfig=new Ms,this._subPrimitives=[],this._vertices=new Float32Array,this._indices=new Uint16Array,this._needResizeBuffer=!1,this._vertexCount=0,this._needsInitialize=!1;const s=new e.Primitive(this._engine);this._primitive=s,s.addVertexElement(ys._positionVertexElement),s.addVertexElement(ys._colorVertexElement),s.addVertexElement(ys._uvVertexElement)}_onEnable(){this._applyDefaultConfig()}update(e){this._needsInitialize&&(this._initialize(),this._needsInitialize=!1);const{_state:s,_skeleton:i}=this;s&&i&&(s.update(e),s.apply(i),i.update(e),i.updateWorldTransform(t.Physics.update),ys._spineGenerator.buildPrimitive(this._skeleton,this),this._isContainDirtyFlag(4)&&(this._onWorldVolumeChanged(),this._setDirtyFlagFalse(4)),this._isContainDirtyFlag(2)&&this._calculateGeneratorBounds(this.bounds))}_render(t){const{_primitive:e,_subPrimitives:s}=this,{_materials:i,_engine:n}=this,a=n._renderElementPool.get();a.set(this.priority,this._distanceForSort);const r=n._subRenderElementPool;if(s){for(let t=0,n=s.length;t<n;t++){let n=i[t];if(!n)continue;(n.destroyed||n.shader.destroyed)&&(n=this.engine._meshMagentaMaterial);const o=r.get();o.set(this,n,e,s[t]),a.addSubRenderElement(o)}t.camera._renderPipeline.pushRenderElement(t,a)}}_updateBounds(t){this._calculateGeneratorBounds(t)}_calculateGeneratorBounds(t){const{bounds:s}=ws;e.BoundingBox.transform(s,this.entity.transform.worldMatrix,t)}_setSkeleton(t){this._skeleton!==t&&(this._skeleton=t,this._needsInitialize=!!t)}_setState(t){this._state!==t&&(this._state=t,this._needsInitialize=!!t)}_cloneTo(t){const e=this._skeleton.data,s=new gt(e),i=new Qt(e),n=new at(s);t._setSkeleton(i),t._setState(n)}_onDestroy(){const{_primitive:t,_subPrimitives:e}=this;e.length=0,t&&t.destroy(),this._clearMaterialCache(),this._primitive=null,this._resource=null,this._skeleton=null,this._state=null,super._onDestroy()}_createAndBindBuffer(t){const{_engine:s,_primitive:i}=this;this._vertexCount=t,this._vertices=new Float32Array(t*ws.VERTEX_STRIDE),this._indices=new Uint16Array(t);const n=4*ws.VERTEX_STRIDE,a=new e.Buffer(s,e.BufferBindFlag.VertexBuffer,this._vertices,e.BufferUsage.Dynamic),r=new e.Buffer(s,e.BufferBindFlag.IndexBuffer,this._indices,e.BufferUsage.Dynamic);this._indexBuffer=r,this._vertexBuffer=a;const o=new e.VertexBufferBinding(a,n);this._primitive.setVertexBufferBinding(0,o);const l=new e.IndexBufferBinding(r,e.IndexFormat.UInt16);i.setIndexBufferBinding(l)}_addSubPrimitive(t){this._subPrimitives.push(t)}_clearSubPrimitives(){this._subPrimitives.length=0}_isContainDirtyFlag(t){return!!(this._dirtyUpdateFlag&t)}_setDirtyFlagFalse(t){this._dirtyUpdateFlag&=~t}_onWorldVolumeChanged(){this._dirtyUpdateFlag|=1}_initialize(){this._applyDefaultConfig(),this._dirtyUpdateFlag|=4,this._state.addListener({start:()=>{this._onAnimationStart()},complete:t=>{this._onAnimationComplete(t)}})}_onAnimationStart(){this._dirtyUpdateFlag|=2}_onAnimationComplete(t){t.loop||this._setDirtyFlagFalse(2)}_clearMaterialCache(){this._materials.forEach((e=>{const s=e.shaderData.getTexture("material_SpineTexture"),i=function(e){const s=e.renderState.blendState.targetBlendState;return s.sourceColorBlendFactor===os&&s.destinationColorBlendFactor===ls&&s.sourceAlphaBlendFactor===ls&&s.destinationAlphaBlendFactor===ls&&s.colorBlendOperation===ms&&s.alphaBlendOperation===ms?t.BlendMode.Additive:s.sourceColorBlendFactor===hs&&s.destinationColorBlendFactor===cs&&s.sourceAlphaBlendFactor===ls&&s.destinationAlphaBlendFactor===cs&&s.colorBlendOperation===ms&&s.alphaBlendOperation===ms?t.BlendMode.Multiply:s.sourceColorBlendFactor===ls&&s.destinationColorBlendFactor===ds&&s.sourceAlphaBlendFactor===ls&&s.destinationAlphaBlendFactor===ds&&s.colorBlendOperation===ms&&s.alphaBlendOperation===ms?t.BlendMode.Screen:t.BlendMode.Normal}(e),n=`${s.instanceId}_${i}`;ys._materialCache.delete(n)}))}_applyDefaultConfig(){const{skeleton:t,state:e}=this;if(t&&e){const{animationName:s,skinName:i,loop:n}=this.defaultConfig;"default"!==i&&(t.setSkinByName(i),t.setToSetupPose()),s&&e.setAnimation(0,s,n)}}get resource(){return this._resource}set resource(t){if(!t)return this._state=null,this._skeleton=null,void(this._resource=null);this._resource=t;const{skeletonData:e,stateData:s}=t,i=new Qt(e),n=new at(s);this._setSkeleton(i),this._setState(n)}}s([e.assignmentClone],ys.prototype,"zSpacing",void 0),s([e.assignmentClone],ys.prototype,"premultipliedAlpha",void 0),s([e.deepClone],ys.prototype,"defaultConfig",void 0),s([e.ignoreClone],ys.prototype,"_primitive",void 0),s([e.ignoreClone],ys.prototype,"_subPrimitives",void 0),s([e.ignoreClone],ys.prototype,"_indexBuffer",void 0),s([e.ignoreClone],ys.prototype,"_vertexBuffer",void 0),s([e.ignoreClone],ys.prototype,"_vertices",void 0),s([e.ignoreClone],ys.prototype,"_indices",void 0),s([e.ignoreClone],ys.prototype,"_needResizeBuffer",void 0),s([e.ignoreClone],ys.prototype,"_vertexCount",void 0),s([e.ignoreClone],ys.prototype,"_resource",void 0),s([e.ignoreClone],ys.prototype,"_skeleton",void 0),s([e.ignoreClone],ys.prototype,"_state",void 0),s([e.ignoreClone],ys.prototype,"_needsInitialize",void 0);class Ms{constructor(t=!0,e=null,s="default"){this.loop=t,this.animationName=e,this.skinName=s}}class Ss extends e.ReferResource{constructor(t,e,s){super(t),this._texturesInSpineAtlas=[],this.url=s,this._skeletonData=e,this._stateData=new gt(e),this._associationTextureInSkeletonData(e),this._createTemplate()}get skeletonData(){return this._skeletonData}get stateData(){return this._stateData}instantiate(){return this._template.clone()}_onDestroy(){super._onDestroy(),this._disassociationSuperResource(),this._skeletonData=null,this._stateData=null}_createTemplate(){const t=this._extractFileName(this.url),s=new e.Entity(this.engine,t),i=s.addComponent(ys),n=new Qt(this._skeletonData),a=new at(this._stateData);i._setSkeleton(n),i._setState(a),s._markAsTemplate(this),this._template=s}_associationTextureInSkeletonData(t){const{skins:e,slots:s}=t,i=this._texturesInSpineAtlas;for(let t=0,n=e.length;t<n;t++)for(let n=0,a=s.length;n<a;n++){const a=s[n],r=e[t].getAttachment(a.index,a.name),o=r?.region?.texture.texture;o&&(i.includes(o)||(i.push(o),o._associationSuperResource(this)))}}_disassociationSuperResource(){const t=this._texturesInSpineAtlas;for(let e=0,s=t.length;e<s;e++)t[e]._disassociationSuperResource(this)}_extractFileName(t){if(!t)return"Spine Entity";const e=t.match(/\/([^\/]+?)(\.[^\/]*)?$/);return e?e[1]:"Spine Entity"}}class vs{constructor(t,e=0,s){this.data=t,this._dataView=new DataView(t.buffer,t.byteOffset+e,s??t.byteLength-e),this._position=0}nextUint16(){const t=this._dataView.getUint16(this._position,!0);return this._position+=2,t}nextStr(){const t=this.nextUint16(),e=new Uint8Array(this.data.buffer,this._position+this._dataView.byteOffset,t);return this._position+=t,this.decodeText(e)}nextImageData(){return new Uint8Array(this.data.buffer,this.data.byteOffset+this._position)}decodeText(t){if("undefined"!=typeof TextDecoder)return(new TextDecoder).decode(t);let e="";for(let s=0,i=t.length;s<i;s++)e+=String.fromCharCode(t[s]);return decodeURIComponent(encodeURIComponent(e))}}class ks extends e.Loader{static{this.imageExtensions=["png","jpg","webp","jpeg","ktx","ktx2"]}static{this.skeletonExtensions=["skel","json","bin"]}static parseAndAssignSpineAsset(t,e,s){const{imageExtensions:i,skeletonExtensions:n}=ks,a=ks.getUrlExtension(t,e);a&&(n.includes(a)&&(s.skeletonPath=t,s.skeletonExtension=a),"atlas"===a&&(s.atlasPath=t),i.includes(a)&&(s.imagePaths.push(t),s.imageExtensions.push(a)))}static deriveAndAssignSpineAsset(t,e,s){const i=ks.getUrlExtension(t,e);if(!i)return;s.skeletonPath=t,s.skeletonExtension=i;const n=/(\.(json|bin|skel))$/;let a;if(n.test(t)&&(a=t.replace(n,"")),a){const t=a+".atlas";s.atlasPath=t}}static verifyFileExtensions(t,e){return t?e&&!Array.isArray(t)?(console.error("Expect fileExtensions to be an array."),[]):e||"string"==typeof t?t:(console.error("Expect fileExtensions to be a string."),null):null}static getUrlExtension(t,e){if(e)return e;const s=t.match(/\/([^\/?#]+)\.([a-zA-Z0-9]+)(\?|#|$)|\?[^#]*\.([a-zA-Z0-9]+)(\?|#|$)/);return s?s[2]||s[4]:null}load(t,s){return new e.AssetPromise((async e=>{let i;if(t.urls)i=await this._handleOriginAsset(t,s);else{const e=await this.request(t.url,{type:"arraybuffer"}),n=new vs(new Uint8Array(e)),a=n.nextStr();i=a.startsWith("spine")?await this._handleEditorAsset(t,e,n,a,s):await this._handleOriginAsset(t,s,e)}e(i)}))}async _handleEditorAsset(t,e,s,i,n){let a,r;const o=i.startsWith("spine:skel")?"skel":"json",{engine:l}=n;if("skel"===o)r=s.nextStr(),a=s.nextImageData();else{const t=new TextDecoder("utf-8").decode(new Uint8Array(e)),{data:s,atlas:i}=JSON.parse(t);r=i.refId,a=s}const h=Ze(await n.getResourceByRef({refId:r}),a,o);return new Ss(l,h,t.url)}async _handleOriginAsset(t,e,s){let{fileExtensions:i}=t.params||{},n={skeletonPath:"",skeletonExtension:"",atlasPath:"",imagePaths:[],imageExtensions:[]};const{engine:a}=e;if(s){const e=ks.verifyFileExtensions(i,!1);ks.deriveAndAssignSpineAsset(t.url,e,n);const{skeletonPath:r,atlasPath:o}=n;if(!r||!o)throw new Error("Failed to load spine assets. Please check the file path and ensure the file extension is included.");const l=await es(o,a),{data:h,type:c}=this._determineSkeletonDataType(s),d=Ze(l,h,c);return new Ss(a,d,r)}{i=ks.verifyFileExtensions(i,!0);for(let e=0;e<t.urls.length;e+=1){const s=t.urls[e],a=i&&i[e]||null;ks.parseAndAssignSpineAsset(s,a,n)}const{skeletonPath:e,atlasPath:s,imagePaths:r,skeletonExtension:o,imageExtensions:l}=n;if(!e||!s)throw new Error("Failed to load spine assets. Please check the file path and ensure the file extension is included.");const h="json"===o?"json":"skel";let c,d,u=["json"===o?this.request(e,{type:"text"}):this.request(e,{type:"arraybuffer"})];if(r.length>0){let t,e;u=u.concat([this.request(s,{type:"text"}),ts(r,l,a)]),[d,t,e]=await Promise.all(u),c=ss(t,e)}else u.push(es(s,a)),[d,c]=await Promise.all(u);const m=Ze(c,d,h);return new Ss(a,m,e)}}_determineSkeletonDataType(t){let e,s;try{const i=new TextDecoder("utf-8").decode(t);JSON.parse(i),e=i,s="json"}catch(i){e=t,s="skel"}return{data:e,type:s}}}ks=s([e.resourceLoader("spine",["json","bin","skel"])],ks);class Is extends e.Loader{load(t,s){return new e.AssetPromise((async e=>{const i=await this.request(t.url,{type:"text"}),{data:n,textures:a}=JSON.parse(i),r=a.map((t=>s.getResourceByRef({refId:t.refId})));e(ss(n,await Promise.all(r)))}))}}Is=s([e.resourceLoader("EditorSpineAtlas",["atlas"])],Is);const As="0.0.0-experimental-engine-spine-20241107";e.Loader.registerClass("SpineAnimationRenderer",ys),console.log(`Galacean spine version: ${As}`),t.AlphaTimeline=V,t.Animation=g,t.AnimationState=at,t.AnimationStateAdapter=class{start(t){}interrupt(t){}end(t){}dispose(t){}complete(t){}event(t,e){}},t.AnimationStateData=gt,t.AssetManagerBase=class{pathPrefix="";textureLoader;downloader;assets={};errors={};toLoad=0;loaded=0;constructor(t,e="",s=new qt){this.textureLoader=t,this.pathPrefix=e,this.downloader=s}start(t){return this.toLoad++,this.pathPrefix+t}success(t,e,s){this.toLoad--,this.loaded++,this.assets[e]=s,t&&t(e,s)}error(t,e,s){this.toLoad--,this.loaded++,this.errors[e]=s,t&&t(e,s)}loadAll(){return new Promise(((t,e)=>{let s=()=>{this.isLoadingComplete()?this.hasErrors()?e(this.errors):t(this):requestAnimationFrame(s)};requestAnimationFrame(s)}))}setRawDataURI(t,e){this.downloader.rawDataUris[this.pathPrefix+t]=e}loadBinary(t,e=()=>{},s=()=>{}){t=this.start(t),this.downloader.downloadBinary(t,(s=>{this.success(e,t,s)}),((e,i)=>{this.error(s,t,`Couldn't load binary ${t}: status ${e}, ${i}`)}))}loadText(t,e=()=>{},s=()=>{}){t=this.start(t),this.downloader.downloadText(t,(s=>{this.success(e,t,s)}),((e,i)=>{this.error(s,t,`Couldn't load text ${t}: status ${e}, ${i}`)}))}loadJson(t,e=()=>{},s=()=>{}){t=this.start(t),this.downloader.downloadJson(t,(s=>{this.success(e,t,s)}),((e,i)=>{this.error(s,t,`Couldn't load JSON ${t}: status ${e}, ${i}`)}))}loadTexture(t,e=()=>{},s=()=>{}){if(t=this.start(t),!!("undefined"==typeof window||"undefined"==typeof navigator||!window.document))fetch(t,{mode:"cors"}).then((e=>e.ok?e.blob():(this.error(s,t,`Couldn't load image: ${t}`),null))).then((t=>t?createImageBitmap(t,{premultiplyAlpha:"none",colorSpaceConversion:"none"}):null)).then((s=>{s&&this.success(e,t,this.textureLoader(s))}));else{let i=new Image;i.crossOrigin="anonymous",i.onload=()=>{this.success(e,t,this.textureLoader(i))},i.onerror=()=>{this.error(s,t,`Couldn't load image: ${t}`)},this.downloader.rawDataUris[t]&&(t=this.downloader.rawDataUris[t]),i.src=t}}loadTextureAtlas(t,e=()=>{},s=()=>{},i){let n=t.lastIndexOf("/"),a=n>=0?t.substring(0,n+1):"";t=this.start(t),this.downloader.downloadText(t,(n=>{try{let r=new Ft(n),o=r.pages.length,l=!1;for(let n of r.pages)this.loadTexture(i?i[n.name]:a+n.name,((s,i)=>{l||(n.setTexture(i),0==--o&&this.success(e,t,r))}),((e,i)=>{l||this.error(s,t,`Couldn't load texture atlas ${t} page image: ${e}`),l=!0}))}catch(e){this.error(s,t,`Couldn't parse texture atlas ${t}: ${e.message}`)}}),((e,i)=>{this.error(s,t,`Couldn't load texture atlas ${t}: status ${e}, ${i}`)}))}get(t){return this.assets[this.pathPrefix+t]}require(t){t=this.pathPrefix+t;let e=this.assets[t];if(e)return e;let s=this.errors[t];throw Error("Asset not found: "+t+(s?"\n"+s:""))}remove(t){t=this.pathPrefix+t;let e=this.assets[t];return e.dispose&&e.dispose(),delete this.assets[t],e}removeAll(){for(let t in this.assets){let e=this.assets[t];e.dispose&&e.dispose()}this.assets={}}isLoadingComplete(){return 0==this.toLoad}getToLoad(){return this.toLoad}getLoaded(){return this.loaded}dispose(){this.removeAll()}hasErrors(){return Object.keys(this.errors).length>0}getErrors(){return this.errors}},t.AtlasAttachmentLoader=Dt,t.Attachment=d,t.AttachmentTimeline=N,t.BinaryInput=re,t.Bone=Nt,t.BoneData=Ot,t.BoundingBoxAttachment=xt,t.CURRENT=pt,t.ClippingAttachment=wt,t.Color=n,t.ConstraintData=Lt,t.CurveTimeline=M,t.CurveTimeline1=S,t.CurveTimeline2=v,t.DebugUtils=class{static logBones(t){for(let e=0;e<t.bones.length;e++){let s=t.bones[e];console.log(s.data.name+", "+s.a+", "+s.b+", "+s.c+", "+s.d+", "+s.worldX+", "+s.worldY)}}},t.DeformTimeline=L,t.Downloader=qt,t.DrawOrderTimeline=U,t.Event=Ut,t.EventData=Wt,t.EventQueue=ot,t.EventTimeline=q,t.FIRST=ct,t.FakeTexture=class extends bt{setFilters(t,e){}setWraps(t,e){}dispose(){}},t.HOLD_FIRST=ut,t.HOLD_MIX=mt,t.HOLD_SUBSEQUENT=dt,t.IkConstraint=zt,t.IkConstraintData=Gt,t.IkConstraintTimeline=W,t.InheritTimeline=P,t.IntSet=class{array=new Array;add(t){let e=this.contains(t);return this.array[0|t]=0|t,!e}contains(t){return null!=this.array[0|t]}remove(t){this.array[0|t]=void 0}clear(){this.array.length=0}},t.Interpolation=r,t.MathUtils=a,t.MeshAttachment=Pt,t.PathAttachment=_t,t.PathConstraint=jt,t.PathConstraintData=$t,t.PathConstraintMixTimeline=j,t.PathConstraintPositionTimeline=G,t.PathConstraintSpacingTimeline=$,t.PhysicsConstraintDampingTimeline=Q,t.PhysicsConstraintGravityTimeline=et,t.PhysicsConstraintInertiaTimeline=J,t.PhysicsConstraintMassTimeline=Z,t.PhysicsConstraintMixTimeline=st,t.PhysicsConstraintResetTimeline=it,t.PhysicsConstraintStrengthTimeline=K,t.PhysicsConstraintTimeline=H,t.PhysicsConstraintWindTimeline=tt,t.PointAttachment=Xt,t.Pool=h,t.Pow=o,t.PowOut=class extends o{constructor(t){super(t)}applyInternal(t){return Math.pow(t-1,this.power)*(this.power%2==0?-1:1)+1}},t.RGB2Timeline=O,t.RGBA2Timeline=D,t.RGBATimeline=_,t.RGBTimeline=X,t.RegionAttachment=Vt,t.RotateTimeline=k,t.SETUP=ft,t.SUBSEQUENT=ht,t.ScaleTimeline=T,t.ScaleXTimeline=C,t.ScaleYTimeline=F,t.SequenceTimeline=nt,t.ShearTimeline=E,t.ShearXTimeline=Y,t.ShearYTimeline=R,t.Skeleton=Qt,t.SkeletonBinary=ae,t.SkeletonBounds=class{minX=0;minY=0;maxX=0;maxY=0;boundingBoxes=new Array;polygons=new Array;polygonPool=new h((()=>l.newFloatArray(16)));update(t,e){if(!t)throw new Error("skeleton cannot be null.");let s=this.boundingBoxes,i=this.polygons,n=this.polygonPool,a=t.slots,r=a.length;s.length=0,n.freeAll(i),i.length=0;for(let t=0;t<r;t++){let e=a[t];if(!e.bone.active)continue;let r=e.getAttachment();if(r instanceof xt){let t=r;s.push(t);let a=n.obtain();a.length!=t.worldVerticesLength&&(a=l.newFloatArray(t.worldVerticesLength)),i.push(a),t.computeWorldVertices(e,0,t.worldVerticesLength,a,0,2)}}e?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,e=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,i=Number.NEGATIVE_INFINITY,n=this.polygons;for(let a=0,r=n.length;a<r;a++){let r=n[a],o=r;for(let n=0,a=r.length;n<a;n+=2){let a=o[n],r=o[n+1];t=Math.min(t,a),e=Math.min(e,r),s=Math.max(s,a),i=Math.max(i,r)}}this.minX=t,this.minY=e,this.maxX=s,this.maxY=i}aabbContainsPoint(t,e){return t>=this.minX&&t<=this.maxX&&e>=this.minY&&e<=this.maxY}aabbIntersectsSegment(t,e,s,i){let n=this.minX,a=this.minY,r=this.maxX,o=this.maxY;if(t<=n&&s<=n||e<=a&&i<=a||t>=r&&s>=r||e>=o&&i>=o)return!1;let l=(i-e)/(s-t),h=l*(n-t)+e;if(h>a&&h<o)return!0;if(h=l*(r-t)+e,h>a&&h<o)return!0;let c=(a-e)/l+t;return c>n&&c<r||(c=(o-e)/l+t,c>n&&c<r)}aabbIntersectsSkeleton(t){return this.minX<t.maxX&&this.maxX>t.minX&&this.minY<t.maxY&&this.maxY>t.minY}containsPoint(t,e){let s=this.polygons;for(let i=0,n=s.length;i<n;i++)if(this.containsPointPolygon(s[i],t,e))return this.boundingBoxes[i];return null}containsPointPolygon(t,e,s){let i=t,n=t.length,a=n-2,r=!1;for(let t=0;t<n;t+=2){let n=i[t+1],o=i[a+1];if(n<s&&o>=s||o<s&&n>=s){let l=i[t];l+(s-n)/(o-n)*(i[a]-l)<e&&(r=!r)}a=t}return r}intersectsSegment(t,e,s,i){let n=this.polygons;for(let a=0,r=n.length;a<r;a++)if(this.intersectsSegmentPolygon(n[a],t,e,s,i))return this.boundingBoxes[a];return null}intersectsSegmentPolygon(t,e,s,i,n){let a=t,r=t.length,o=e-i,l=s-n,h=e*n-s*i,c=a[r-2],d=a[r-1];for(let t=0;t<r;t+=2){let r=a[t],u=a[t+1],m=c*u-d*r,f=c-r,p=d-u,g=o*p-l*f,x=(h*f-o*m)/g;if((x>=c&&x<=r||x>=r&&x<=c)&&(x>=e&&x<=i||x>=i&&x<=e)){let t=(h*p-l*m)/g;if((t>=d&&t<=u||t>=u&&t<=d)&&(t>=s&&t<=n||t>=n&&t<=s))return!0}c=r,d=u}return!1}getPolygon(t){if(!t)throw new Error("boundingBox cannot be null.");let e=this.boundingBoxes.indexOf(t);return-1==e?null:this.polygons[e]}getWidth(){return this.maxX-this.minX}getHeight(){return this.maxY-this.minY}},t.SkeletonClipping=ze,t.SkeletonData=te,t.SkeletonJson=Ge,t.Skin=se,t.SkinEntry=ee,t.Slot=Jt,t.SlotData=ie,t.SpineAnimationRenderer=ys,t.SpineResource=Ss,t.StringSet=i,t.Texture=bt,t.TextureAtlas=Ft,t.TextureAtlasPage=Yt,t.TextureAtlasRegion=Rt,t.TextureRegion=Ct,t.TimeKeeper=class{maxDelta=.064;framesPerSecond=0;delta=0;totalTime=0;lastTime=Date.now()/1e3;frameCount=0;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)}},t.Timeline=y,t.TrackEntry=rt,t.TransformConstraint=Kt,t.TransformConstraintData=ne,t.TransformConstraintTimeline=z,t.TranslateTimeline=I,t.TranslateXTimeline=A,t.TranslateYTimeline=B,t.Triangulator=We,t.Utils=l,t.Vector2=c,t.VertexAttachment=u,t.WindowedMean=class{values;addedValues=0;lastValue=0;mean=0;dirty=!0;constructor(t=32){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 e=0;e<this.values.length;e++)t+=this.values[e];this.mean=t/this.values.length,this.dirty=!1}return this.mean}return 0}},t.createTextureAtlas=ss,t.version=As,Object.defineProperty(t,"__esModule",{value:!0})}));
|